상세 컨텐츠

본문 제목

[컴퓨터 구조] 4.6 Pipelined Datapath and Control

전공/컴퓨터 구조

by blacksmith16 2020. 10. 26. 13:40

본문

여기서는 4.4장에서 완성했던 기존의 Single-Cycle Datapath를 Pipelined Datapath로 바꾸는 과정을 살펴볼 예정이다. 우선 회로를 아래 다섯 단계로 나누어 표시해보자.

  • IF(Instruction Fetch)
  • ID(Instruction Decode, Register File Read)
  • EX(Execute, Address Calculation)
  • MEM(Memory Access)
  • WB(Write Back)

위 이미지 (강의 교재 figure 4.33) 과 같이 나눌 수 있는데, 여기서 파란색 선은 다른 단계로 데이터가 전달되는 상황임을 표시한 것이다. 위쪽 파란 선은 MEM에서 IF로, 아래쪽 파란 선은 WB에서 ID로 데이터가 전달되는 부분이다. WB -> ID의 Right-to-Left 상황은 Data Hazard와 Control Hazard를 유발한다. 이것을 해결하는 방법은 둘째 치고, 각 단계에서 각기 다른 Instruction을 수행해야 하므로 단계마다 다른 데이터를 이용해 연산을 해야한다. 따라서 단계의 사이사이에 사용할 데이터를 저장하는 레지스터를 추가한다.

추가된 레지스터의 이름은 양쪽의 두 단계의 이름을 합친 IF/ID, ID/EX, EX/MEM, MEM/WB이다. 이 레지스터들도 State Element이므로 각 클럭마다 상태가 업데이트 되어야 한다. 따라서 위 이미지 (강의 교재 figure 4.35) 의 회로에는 이 레지스터들과 PC에 Clock 입력이 있어야 한다.

Representing Pipeline Operation

파이프라인의 상태를 표현할 때 우리는 다음 두 가지 방식을 사용할 것이다.

  1. "Single-clock-cycle" pipeline diagram : 특정 사이클에서 사용되는 부분을 표시하고 단계 별로 어떤 Instruction을 실행하고 있는지 표시한 그림이다.
  2. "Multi-clock-cycle" pipeline diagram : 아래 이미지 (강의 교재 figure 4.34) 참고

IF for Load

제일 첫 번째 단계인 IF 단계의 다이어그램이다. 아래 이미지 (강의 교재 figure 4.36) 를 보고 Single-clock-cycle 다이어그램이 어떻게 생겼는지 살펴보길 바란다.

WB for Load

이번에는 WB 단계인데, 우선 이미지 (강의 교재 figure 4.38) 부터 보자.

다른 단계를 건너뛰고 바로 WB 단계를 소개하는 이유는 위 회로에서 오류가 하나 있기 때문이다. 그것은 바로 ID 단계의 Write Data로 값을 넘기는 부분인데, 이대로 회로를 사용한다면 넘어간 데이터가 쓰여질 레지스터는 ID 단계에서 실행 중인 Instruction의 Write Register이어서 엉뚱한 곳에 쓰이게 된다. 이를 해결하기 위해서는 WB 단계의 Instruction에서 사용하는 Write Register 넘버를 같이 넘겨줘야 한다. 그렇게 구성한 회로는 아래 이미지 (강의 교재 figur 4.41) 에 있다.

Pipelined Control

지금까지 작성한 회로는 동작 상으로는 문제가 없겠지만 뭔가 부족한 점이 하나 있다. 바로 Control의 부재이다. Control 신호도 앞선 데이터들과 마찬가지로 Instruction마다 다르기 때문에 단계가 넘어갈 때마다 레지스터에 저장해 주어야 한다. 그러나 모든 신호를 매번 다 저장하면 공간낭비이므로 단계별로 사용하는 신호를 나눈 다음, 더이상 필요없는 신호들은 다음 단계로 갈 때 저장하지 않도록 한다. 아래 표 (강의 교재 figure 4.49) 는 단계 별로 Control 신호를 나눈 것이다.

그리고 Control 신호를 저장할 레지스터를 덧붙인 상태의 회로는 아래 (강의 교재 figure 4.51) 와 같이 생겼다.

완성!은 아직 아니고 Hazard를 해결하는 걸 조금 더 해야한다. 그건 다음 포스팅에서 다룰 예정이다.

관련글 더보기

댓글 영역