콤퓨타

[컴퓨터구조] CPU의 구조와 기능 - 3

찹쌀동수육 2021. 12. 16. 22:41

슈퍼스칼라(Superscalar)

 - CPU의 처리 속도를 더 높이기 위해서 내부에 2개 이상의 명령어 파이프라인을 포함시킨 구조.

 - 매 클록 주기마다 각 명령어 파이프라인이 별도의 명령어를 인출하여 동시에 실행하기에 이론적으로 프로그램의 처리속도가 파이프라인의 수만큼 향상할 수 있음.

 - 파이프라인의 수(m개)에 따라 m-way Superscalar라고 부를 수 있음.

 

슈퍼스칼라에 의한 속도향상

파이프라인이 1개일 때, 실행 시간

T(1) = k + N - 1 (N:실행할 명령어의 개수)

파이프라인이 m개일 때, 실행 시간

파이프라인이 1개일 때 보다 m개일 때 얼마나 속도가 향상되었는가?

 

슈퍼스칼라의 속도 저하 요인

 - 속도 저하는 속도향상 Sp<m 일때를 의미한다.

 - 명령어들 간의 데이터 의존관계

 - 하드웨어 이용에 대한 경합이 발생

  = 동시에 실행 가능한 명령어 수 보다 파이프라인의 개수가 더 많음. ( 동시 실행 가능한 명령어 수 < m )

 

 - 해결방법

  = 명령어 실행 순서를 재배치하여 명령어들 간의 데이터 의존성을 제거해준다.

  = 하드웨어를 추가 설치하여 하드웨어에 대한 경합을 감소시켜준다.