Design 8-Stage Pipelined Processor with Cache Memory 1 - Deeper Pipelining

Pipelining ID Stage



일반적인 MIPS architecture ID stage에서는,

register file에의 read/write 동작과 branch decision,
그리고 branch address 혹은 jump address의 계산과
control signal을 만들어내는 동작을 하게 된다.

이를 위 그림과 같은 모습으로 pipelining하였으며
 또한 EX stage에의 load를 좀 더 줄이기 위하여
ALU control signal generate ID 0 stage에서 initiating하여
ALU source data ALU control signal
EX stage에 돌입하기 전에 모두 준비해 놓을 수 있도록 하였다

EX stage에서 넘어온 동작들은 노란색 글씨로 표시하였다.

 Branch address의 연산에는 32-bit Kogge-Stone adder를 사용하였는데,
 ID 0 stage에서는 propagate, generate의 연산과
1, 2 stage까지를 수행하고 ID 1 stage에서 나머지 3, 4, 5 stage
 최종 결과값을 구하도록 하였다.

아래 그림에 기존 ID stage에서의 worst-case delay를 가지는 영역과
 이를 pipelining한 모습을 표시하였다.



Pipelining EX Stage




MIPS architecture EX stage에서는
ALU control signal generate와 이에 따라 forward data를 포함하여 
어떤 data operation source data로 사용할지 결정하는 동작과
 모든 ALU operation을 수행하게 된다.

이를 아래와 같은 모습으로 3-stage pipelining하였다.
 ID stage에서 설명한 것과 같이,
 EX stage에 걸리는 load가 너무 크므로
 이를 최소화하여 clock constraint를 맞추기 위해
control signal generate
source data decision EX stage에 돌입하기 전에 모두 연산을 완료하도록 하였다.

따라서 EX 0 stage에서 따로 data를 준비하는 과정은 필요하지 않고 연산이 곧바로 수행할 수 있게 된다.

 Adder를 한 개만 넣었기 때문에,
 set less than operation을 포함한 subtract 연산을 수행하기 위하여
EX 0 stage에는 adder의 부분이 포함되지 않고
2’s complement를 이용한 subtract 연산을 수행하기 위한
carry in decision과 역시 2’s complement를 이용한
subtract 혹은 NOR/NAND 등의 invert가 포함된 logical operation을 수행하기 위한
source data invert 동작이 먼저 수행된다.

 EX stage에도 역시 Kogge-Stone adder를 사용하였는데,
 EX 0 stage에서 XOR operation AND operation이 수행이 완료되므로
propagate generate는 준비가 된다.
따라서 EX 1 stage에서 바로 operation을 시작할 수 있으므로
1,2,3,4 stage를 연산한 후 EX 2 stage에서 5 stage sign flag를 포함한
 나머지 결과값을 연산한다.
아래 그림에서 기존 EX stage delay chain과 이를 pipelining한 모습을 확인할 수 있다.



댓글

이 블로그의 인기 게시물

중국 컵라면 강사부 홍소우육면 康师傅 红烧牛肉面 캉시푸 홍샤오니우러우미엔

Hilton 등급 없이 Visa Infinite 카드로 룸 업그레이드 받고 Hilton Gold Fast Track 달성하기

토탈워:삼국 예약판매 스틸북 개봉기 Total war:Three kingdoms Steel book edition