본문 바로가기

컴퓨터/컴퓨터구조

파이프라인 해저드

다음 명령어가 다음 클럭 사이클에 실행될 수 없는 상황, 세가지 종류가 있다.


구조적 해저드

같은 클럭 사이클에 실행하기를 원하는 명령어의 조합을 하드웨어가 지원할 수 없다는 것을 의미한다.

에) 세탁소에서는 독립된 세탁기와 건조기를 사용하지 않고 세탁기와 건조기가 같이 붙어 있는 기계를 사용

MIPS 명령어 집합은 파이프라이닝 하도록 설계되었기 때문에 설계자가 파이프라인을 설계할 때 구조적 해저드를 피하는 것이 비교적 용이하다.



데이터 해저드

어떤 단계가 다른 단계가 끝나기를 기다려야 하기 때문에 파이프라인이 지연되어야 하는 경우

예) 옷을 개다가 한 짝이 없는 양말을 발견해서 다른 짝을 찾느라 시간이 지연됨

컴퓨터 파이프라인에서는 어떤 명령어가 아직 파이프라인에 있는 앞선 명령어에 종속성을 가질 때 데이터 해저드가 일어난다.

해결책 

별도의 하드웨어를 추가하여 정상적으로는 얻을 수 없는 값을 내부 자원으로부터 일찍 받아온다.(forwarding or  bypassing)



제어 해저드

다른 명령어들이 실핸중에 한 명령어의 결과치에 기반을 둔 결정을 할 필요가 있을 때 일어난다.

예)유니품 세탁이 예약 되었을 때 세탁물이 얼마나 더러운지를 알아내면 선택할 세제와 물 온도가 결정되지만 알 수가 없어 지연됨

해결책

1) 지연: 분기 명령어를 가져온 직후 지연시켜서, 파이프라인이 분기의 결과를 판단하고 어는 주소에서 다음 명령어를 가져올지 알게 될 때가지 기다리게 하는 것

2) 예측: 대부분의 컴퓨터가 분기 명령어를 다루기 위해서 예측을 사용한다. 분기가 항상 실패한다고 예측하는 것이다. 예측이 옳으면 파이프라인은 최고 속도로 진행된다.


'컴퓨터 > 컴퓨터구조' 카테고리의 다른 글

파이프라이닝  (0) 2013.04.30