당신은 포장 마차를 방지하기 위해 파일 전송을 등록해야합니다.
당신은 밀접하게 (and $12, $2, $5
가) $2
를 등록 사용하는 데 필요한 두 번째 명령을 보면,하지만이 아니었다면 이전 명령 (sub $2, $1, $3
)에서 계산 된 값은 따라서 클럭 사이클 5에 레지스터 파일에 다시 기록 얻을 것이다 레지스터 파일 전달 때문에 두 번째 명령어는 레지스터 $2
이 쓰여질 때까지 실속해야합니다. 포워딩은 명령어 1의 ALU 연산 결과와 명령어 2의 ALU 연산에 대한 첫 번째 인수 사이에 하늘색 선으로 표시됩니다.
마찬가지로 세 번째 명령 (or $13, $6, $2
)도 마찬가지로 $ 2를 사용해야합니다 실제로 첫 번째 명령에 의해 레지스터 파일에 다시 기록됩니다. 따라서 다시 말하면, 스톨 (stall)을 방지하기 위해 레지스터 전달은 세 번째 명령어의 인수로 첫 번째 명령어의 결과를 사용하는 데 사용됩니다.
한편, 네 번째 명령어 (add $14, $2, $2
)는 파이프 라인 레지스터 전달을 사용할 필요가 없습니다. 첫 번째 명령어의 결과가 사이클 5의 첫 번째 절반에서 다시 쓰여지고 따라서 내용이 이미 업데이트되어 있으므로 네 번째 명령에서 필요합니다.