[TIL] 2022.11.21. [pipelining]

2022. 11. 22. 00:33

오늘의 공부는...

 

파이프라인 해저드에 대해 알아보자.

 

파이프라인 해저드란?

-> 다음 명령어가 다음 클럭 사이클에 실행될 수 없는 상황이 있다. 이러한 사건을 해저드(hazard)라 부른다.

이는 세 가지 종류가 있다.

 

첫 번째는 구조적 해저드(strcutural hazard)이다.

 

주어진 클럭 사이클에 실행되도록 되어 있는 명령어 조합을 하드웨어가 지원하지 못해서 계획된 명령어가 적절한 클럭 사이클에 실행될 수 없는 사건이다.

 

천천히 살펴보자.

 

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

 

이것은 필요한 자원이 바쁘게된다면 발생한다.

 

이후 스케줄된 파이프라인 계획이 틀어진다.

 

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

 

그러나 메모리가 두 개가 아니고 하나라고 생각해 보자.

 

기존의 파이프 라인에 명령어가 추가된다면 같은 클럭 사이클에 첫 번째 명령어는 메모리에서 데이터를 접근하고, 추가된 명령어는 같은 메모리에서 명령어를 가져오게 된다. 앞의 파이프라인에 메모리가 하나라면 구조적 해저드를 피할 수 없을 것이다.

 

 

그리고 다른 해저드도 나타난다.

 

다른 경우에 대해서 Forwarding을 적용할 수 있다.

 

기다리지 않고 extra connections을 발생시켜 해결한다.

 

Forwarding으로 해결이 안 될 경우 bubble이 발생하는 것을 감안하기도 한다.

 

※ 해당 게시물은 컴퓨터 구조 및 설계 (RISC-V)를 토대로 작성되었으며, 문제가 될 시 삭제하겠습니다.

BELATED ARTICLES

more