앞서 단일 사이클 데이터패스에 제어를 추가했던 것처럼 파이프라인 데이터패스에도 제어를 추가해보자. 최대한 단일 사이클 데이터패스에서 사용했던 제어를 가지고 온다. 따라서 6개의 신호(RegWrite, ALUSrc, PCSrc, MemRead, MemWrite, MemtoReg)와 ALUOp에 대한 내용은 이전 글을 참고해도 좋다.
[컴퓨터구조] Processor(3): 제어 유닛 (control unit)
[컴퓨터구조] Processor(3): 제어 유닛 (control unit)
앞의 글에서는 데이터패스를 간단히 구성해보았다. [컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위
turtle2.tistory.com
다만, 마지막 3개의 단계에 맞추어서 세 그룹으로 재편성해보았다.
먼저 단일 사이클 구현에서와 같이 매 클럭 사이클마다 PC에 쓰기가 자동으로 행해진다. 따라서 PC를 위한 쓰기 신호는 따로 존재하지 않는다. 같은 논리로 파이프라인 레지스터 역시 매 클럭 사이클마다 쓰기가 자동으로 행해지기 때문에 쓰기 신호가 따로 없다.
제어선을 파이프라인 단계에 따라 다섯 그룹으로 나눌 수 있다.
- IF: 특별히 제어할 것이 없다.
- ID: 특별히 제어할 것이 없다.
- EX: ALUOp, ALUSrc
- MEM: Branch(beq), MemRead(적재), MemWrite(저장)
- WB: MemtoReg(레지스터 파일에 ALU 결과를 보낼 것인가 메모리 값을 보낼 것인가를 결정), RegWrite
제어를 구현하는 것은 각 단계에서 7개의 제어 신호 값을 그 명령어의 각 단계에 해당하는 값으로 설정하는 것을 의미한다. 이 제어선들은 명령어 해독 단계(ID)에서 생성한다. 이렇게 생성한 제어 신호는 파이프라인 레지스터를 확장해 제어 정보를 포함하도록 함으로써 전달된다.
이를 포함한 전체 파이프라인 데이터패스를 확인해보자.
'Computer > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] Pipelining(5): 제어 해저드 (Control Hazard) (1) | 2024.06.07 |
---|---|
[컴퓨터구조] Pipelining(4): 데이터 해저드 (Data Hazard) (0) | 2024.06.02 |
[컴퓨터구조] Pipelining(2): 파이프라인 데이터패스 (0) | 2024.06.01 |
[컴퓨터구조] Pipelining(1): 파이프라이닝이란 (0) | 2024.06.01 |