• Piplelined Processing
중복 실행 방법에서 새로운 작업은 현재 작업 Set 중 첫번째 작업이 끝나면 시작될 수 있다.
아래의 그림을 비교해보면 이해가 쉽다.
pipeline에서도 sigle-cycle에서 공부했던 5가지 단계가 동일하게 적용된다.
(IF/ID/EX/MEM/WB)
• Pipelined Performance
파이프라인을 통해 성능향상이 많이 이루어진 것을 확인해볼 수 있다.
그러나 만약 balanced 되어있지 않으면, 성능향상은 작아진다.
또한 각 명령어 당 수행시간은 감소하지 않는다.
RISC-V ISA는 파이프라이닝에 적합한데, 이는 32-bit 고정 길이 명령어를 가지고 있고, 제한된 명령어 포맷과 load/store 주소지정방식을 가지고 있기 때문이다.
• Pipline Registers
이전 Cycle에 생성된 정보를 유지하기 위해 Stage 사이에 레지스터가 필요하다.
다음은 Load 명령어가 실행할때 각 단계별로 실제로 사용되는 유닛이다.
절반 왼쪽에 칠해진 부분은 Read, 오른쪽은 Write이다.
IF
ID
EX
MEM
WB
lw 명령어가 WB 단계에 있을때, IF/ID 단계에서는 이미 다른 명령어가 실행중이기 때문에 충돌이 발생한다.
따라서 Write reg의 번호를 유지하기 위해 아래 그림처럼 path를 수정하게 된다.
ex) lw x1, 0(x1)일 경우 x1을 유지시키기 위함이다.
• Multi-Cycle Pipeline Diagram
위의 그림은 리소스 사용을 보여주는 형태이다.
Single-Cycle 구현처럼 Pipeline 구현도 Control 신호를 추가해야 한다.
단, Single-Cycle과 달리, 하나의 명령어가 다른 명령어의 Control에 영향을 미치지 않아야 한다!
'CS > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] #11 Memory(2) (0) | 2024.06.11 |
---|---|
[컴퓨터구조] #10 Memory(1) (0) | 2024.06.11 |
[컴퓨터구조] #8 Processor (0) | 2024.06.03 |
[컴퓨터구조] #7 ISA(3) (0) | 2024.04.23 |
[컴퓨터구조] #6 ISA(2) (0) | 2024.04.23 |