pipelinehazardbranch-prediction

명령어 파이프라인과 hazard를 설명해 주세요

예상 시간
9
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

data hazard는 무엇인가요?

부가 설명

세탁기를 떠올리면 파이프라인이 조금 덜 추상적입니다. 세탁, 헹굼, 탈수를 한 벌씩 끝까지 처리한 뒤 다음 벌을 시작하면 느립니다. 각 단계가 동시에 다른 옷을 처리하면 전체 처리량이 올라갑니다. CPU 명령어도 비슷하게 단계를 겹칩니다.

하지만 모든 명령어가 독립적이지는 않습니다. 바로 앞 계산 결과가 필요하면 기다려야 하고, if문의 방향을 아직 모르면 다음에 가져올 명령어가 애매해집니다. branch prediction은 일단 예측하고 진행하는 방식인데, 틀리면 잘못 가져온 작업을 버려야 합니다. 그래서 분기 예측 실패는 파이프라인 비용으로 이어집니다.

한 줄 정리

파이프라인은 명령어 단계를 겹쳐 처리량을 높이고, hazard는 그 흐름을 멈추게 만드는 의존성과 분기 문제입니다.