* 지난 번에 공부했던 명령어 파이프라인 내용과 이어진다. 그 내용을 숙지하고 있어야 이번 글 내용이 이해가 될 것이다.
보러 가기: https://yiyj1030.tistory.com/485?category=514953
슈퍼스칼라 프로세서란?
슈퍼스칼라 프로세서는 여러 파이프라인을 이용하여 독립적으로 명령어를 실행함으로써 명령어를 프로그램 순서와 다르게 실행할 수 있다. 슈퍼스칼라 프로세서의 기본 구조에서는 파이프라인으로 구현된 여러 개의 기능 유닛이 명령어의 병렬 처리를 지원한다.
예시) 4단계 파이프라인과 명령어를 병렬 처리할 수 있는 2등급 슈퍼스칼라를 생각해보자. 2등급이라는 것은 2개의 명령어를 병렬처리한다는 것을 나타낸다. 파이프라이닝 동작을 위한 단계는 다음과 같이 정의된다.
- 명령어 인출 단계(FI)
- 명령어 해독 단계(DI)
- 연산 수행 단계(EX)
- 연산 결과 저장 단계(WB)
k 단계인 일반 파이프라이닝 프로세서에서 명령어 N개를 실행하는데 걸리는 시간은 다음과 같았었다.(지난 시간 복습)
m등급을 가진 k단계의 슈퍼 스칼라 프로세서에서 명령어 N개를 실행하는데 걸리는 시간은 다음과 같다.
슈퍼스칼라를 통해 얻을 수 있는 속도 향상은 다음과 같이 계산된다.
따라서 명령어 개수 N이 무한히 많아지면 속도 향상은 m배가 된다. 즉 일반 파이프라이닝보다 슈퍼스칼라 등급의 배수만큼 속도가 빨라진다.
슈퍼파이프라이닝이란?
파이프라이닝에서 단계의 클록 주기를 절반 이하로 줄여서 명령어 실행 속도를 2배 이상 높이는 방법이다. 슈퍼파이프라이닝 등급이 n이면 기능 유닛의 클록 사이클 시간은 기본 사이클의 1/n이 된다.
예시) 2등급의 슈퍼파이프라이닝. 이 경우 기능 유닛의 클록 사이클 시간이 기본 사이클의 1/2이 된다.
n등급, k단계의 슈퍼파이프라이닝 구조에서 N개의 명령을 실행하는 데 걸리는 시간은 다음과 같다.
슈퍼파이프라이닝를 통해 얻을 수 있는 속도 향상은 다음과 같이 계산된다.
따라서 명령어 개수 N이 무한히 많아지면 속도 향상은 n배가 된다. 즉 일반 파이프라이닝보다 슈퍼파이프라이닝 등급의 배수만큼 속도가 빨라진다.
현대의 고성능 CPU
슈퍼파이프라이닝 슈퍼스칼라 : 슈퍼파이프라이닝과 슈퍼스칼라 프로세스가 결합된 형태
n등급의 슈퍼파이프라이닝과 m등급 슈퍼스칼라프로세서를 사용할 때, N개의 명령어를 실행하는 데 걸리는 시간은 다음 과 같다. SS와 SPI가 결합된 형태다.
그리고 속도 향상은 다음과 같다. N이 무한대로 커지면 mn배의 속도 향상을 얻을 수 있다.
댓글