명령어 파이프라이닝
●명령어 파이프라이닝

●파이프라인 위험
1.데이터 위험(data hazard) 이란 데이터 의존적인 두 명령어를 동시에 실행하는 경우, 파이프라인이 제대로 작동하지 않는 것을 의미하며 예를 들면, 명령어 B가 명령어 A의 연산 결과인 R에 의존하는 경우, 명령어 A의 결과 저장 단계가 완료되어야 명령어 B가 R을 사용할 수 있음
2.제어 위험(control hazard) 이란 분기(branch)나 조건문 등으로 인해 다음에 실행할 명령어가 무엇인지 결정되지 않아 파이프라인이 멈추게 되는 것을 의미하며 분기 예측 기법이 사용되기도 하지만, 예측에 실패하면 계산된 파이프라인은 모두 버려야 해서 성능 저하가 발생
3.구조적 위험(structural hazard) 이란 한 명령어가 자원을 사용하면, 해당 자원이 필요한 다른 명령어는 멈추게 되어 파이프라인이 제대로 작동하지 않는 것을 의미하며, 서로 다른 명령어가 동시에 ALU, 레지스터와 같은 CPU 자원을 사용하려 할 때 발생