<aside> 💡 선 요약 분기 결정까지 기다리기(stall) 단순한 branch prediction PC produce 단계를 ID까지 땡겨오는 방법(JALR 제외)
</aside>
PC 값 결정하기!
분기문이라면 PC+imm 또는 rs1+imm으로 넘어가야 하고 그냥 연산이라면 PC+4로 넘어가야 한다.
그러나 PC의 연산이 끝나기 전에 다음 단계로 넘어가면 분기문을 건너뛰는 등의 상황이 발생!
모든 instruction은 pc를 IF에서 읽는다.
ID에서는 분기문인지 판별한 뒤 PC+4로 업데이트 하거나, 다음 스테이지로 넘긴다. 나중에 ALU에서 연산 하고 MEM 단계의 branch gate에서 PC를 업데이트한다.


ID나 MEM 다음에 IF가 실행되어야 control hazard를 해결할 수 있다!
우선 control-flow가 없는, 단순 연산의 경우부터 보자.

첫 번째 클락이다. IF가 진행되었고, PC를 읽었고, 현재 연산의 타입은 모른다!

두 번째 클락이다. ID가 진행되어 ADD인 것을 알았고, PC를 업데이트한다. 방금 업데이트 했으므로 두번째 instruction의 IF는 진행하지 못하고 Stall된다!

세 번째 클락이다. 이제서야 두 번째 inst의 IF가 진행되었다.
이후는 동일하다.

