728x90
반응형
Hazard Detection
- 각 파이프라인 사이 위치하는 정보를 전달하는 파이프라인 레지스터에서 hazard를 감지
- Hazard 유형
- EX/MEM단계의 Rd 레지스터와 ID/EX 단계의 Rs1 레지스터가 같은 경우
- EX/MEM단계의 Rd 레지스터와 ID/EX 단계의 Rs2 레지스터가 같은 경우
- MEM/WB단계의 Rd 레지스터와 ID/EX 단계의 Rs1 레지스터가 같은 경우
- MEM/WB단계의 Rd 레지스터와 ID/EX 단계의 Rs2 레지스터가 같은 경우
- 문제
- 앞선 Instruction이 register에 write를 하지 않은 명령어라면 forwarding을 하면 안됩니다.
- x0는 항상 0으로 고정되어 있기에 어떠한 값도 안써지기 때문에 x0에 대한 계산에 대해 nonzero result value를 forwarding 하면 안됩니다.
- 따라서 register에 write될 instruction만 forwarding하고 x0에 대해서는 forwarding을 하면 안됩니다.
EX Hazard
- 명령어 A가 EX 단계에서 어떤 레지스터에 값을 쓰는 작업을 수행하고 있다고 가정
- 바로 다음에 오는 명령어 B가 ID 단계를 거쳐 EX 단계로 진입할 준비가 되었으며, 명령어 A의 결과값을 필요할 때 발생하는 Hazard
MEM Hazard
한 명령어가 메모리로부터 데이터를 읽거나 메모리에 데이터를 쓰는 작업을 수행할 때 다른 명령어와의 데이터 의존성으로 인해 발생
* 가장 최근에 값이 바뀐 애와 dependency가 있는 것이다.
728x90
반응형
'Computer Science > Computer Architecture' 카테고리의 다른 글
[Computer Architecture] Exceptions (0) | 2024.03.03 |
---|---|
[Computer Architecture] Pipeline Hazards (0) | 2024.03.03 |
[Computer Architecture] Enhancing Performance with Pipelining (0) | 2024.03.03 |
[Computer Architecture] Datapath (0) | 2024.02.29 |
[Computer Architecture] Clocking Methodology (1) | 2024.02.29 |