5 단 파이프 라인 (IF-ID-EX-MEM-WB) 에서 다음 명령의 실행을 고려하십시오. "SD N (R2), R1"은 레지스터 R1의 데이터를 저장하는 것을 의미합니다. 메모리 위치 M [N + R2], "ADD R3, R1, R2"는 R1 + R2 연산을 수행하고 그 결과를 R3에 저장하고 NOP는 버블이다.파이프 라인 위험 처리
내가 알고있는 것에 대해 레지스터는 ID 단계에서 읽혀집니다. 나는 다음과 같은 지시 사항이있는 경우
그래서 :
I1: SD 0(R2), R6
NOP
I2: ADD R3, R1, R2
를 한 후 실행 (나는 분명히 보이는 희망)
R2 is read
^ Store M[0+R2] <- R6
^ ^
I1: | IF | ID | EX | MEM | WB |
NOP: |////|////|////|////|////|
I2: | IF | ID | EX | MEM | WB |
v
R2 is read
I1 4주기에 위험이 거기에 다음과 같은 간다 두 지침 모두 R2에 동시에 액세스하기 때문에 MEM 단계에 있고 I2는 ID 단계에 있습니까? R2가 ID 단계에서만 읽혀 지므로 MEM 단계에서 액세스되지 않으므로 위험하지 않습니까?