파이프라인과 DataPath, Control

Pieline Register

파이프라인은 각 스테이지에서 나온 값을 저장할 레지스터가 필요. 그래서 각 스테이지 사이에 레지스터를 둠

Single-clock-cycle pipeline diagram

파이프라인이 싱글 사이클일 때, 특정 사이클을 보여줄 때 사용

예시) Load 명령어의 파이프라인

기존 Mips의 Pipe에서 Load 명령어를 실행한다면 WB스테이지에서 값을 가져온 후 레지스터로 되돌아온 후, 주소에 값을 저장하게 된다. 하지만 파이프라인을 사용할 시 해당 레지스터에는 다른 명령어의 주소값이 들어가 있게 되므로, 이를 해결하기 위해 load의 datapath(푸른 선)를 추가하여 문제를 해결. dataPath를 추가함으로써 단계가 진행될 때, 같이 데이터가 넘어가는 방식

Multi-clock-cycle diagram

여러 사이클의 파이프 라인을 보여 줌

Single-Cycle Pipeline Diagram

특정한 사이클의 파이프라인을 보여줌

현재 예시의 사이클에서는 add, lw, add, sub, lw 총 5개의 명령어가 한 사이클에서 실행되는 상태. 파이프라인은 여러개의 명령어를 pararell 하게 실행시키기에 throughtput(시간당 작업량)을 증가시켜서 성능을 향상함

Pipeline Control

각 스테이지에서 다음과 같은 시그널이 필요

ID: RegisterWrite

EX: ALU Resrouce, ALUOP, RegDst

MEM: Branch, MemWrite, MemRead,

WB: MemtoReg

이런 시그널은 ID에서 생성되는데, 이를 각 스테이지 별로 전달하기 위해 PipeLine Control이 사용된다.

따라서 Pipeline의 Control을 포함한 Diagram은 다음과 같이 된다.

'컴퓨터 구조' 카테고리의 다른 글

Hazard  (0) 2023.09.24
Pipeline의 개념과 성능  (0) 2023.07.11
ALU Control  (0) 2023.07.11
프로세서의 명령어 실행 과정  (0) 2023.07.07
실수의 표현과 연산  (0) 2023.07.06