한줄요약 : 파이프라인 방식
이 적용된 프로세서
에서 의존성으로 발생할 수 있는 문제!
원인에 따라 크게 3가지로 구분해보자면,
구조적 해저드(structural hazard)
데이터 해저드 (data hazard)
컨트롤 해저드(control hazard)
프로세서의 자원이 부족해서 발생하는 해저드이다.
H/W를 추가/업그레이드하여 해결할 수 있는 해저드이다.
ex) Pipelining을 적용시킨 시스템에서 F단계와 M단계가 동시에 처리될 때, 메모리가 부족하다면 Structural hazard
가 발생할 수 있다. 그 이유는 F단계, M단계 모두 메모리 접근 연산을 수행하게 되는데, 여기서 메모리가 부족하면 delay가 생길 수 있기 때문이다.
파이프라인 프로세서
에서는 피연산자를 읽는 F
단계에 있는 명령어와, 최종적으로 결과를 쓰는 W
단계의 명령어가 동시에 작동
하므로 레지스터 파일은 반드시 최대 두 개의 읽기와 한 번의 쓰기가 동시에 가능해야 하며, 또 이 작업이 사이클마다 가능하게 지원해야 한다. 레지스터 파일에 많은 읽기와 쓰기를 동시에 처리하도록 하는 것(멀티 포트화)은 매우 어려운 작업이며 반도체 설계 공간도 전력도 모두 많이 소비하게 된다. 대안으로 적은 수의 읽기/쓰기 포트를 가지는 작은 크기의 컴포넌트를 여러 개 두는 방법을 쓴다. 이 단위를 캐시에서는 뱅크, 레지스터 파일은 클러스터라 부른다.