슈퍼스칼라

위키백과 ― 우리 모두의 백과사전.

Broom icon.svg 이 문서는 편집 지침에 맞춰 다듬어야 합니다. 이 문서를 정리해 주세요.

슈퍼스칼라(Superscalar)는 CPU 내에 파이프라인을 여러 개 두어 명령어를 동시에 실행하는 기술이다.

ILP를 최대한 적용하여 실행하면 CPU 처리 속도가 빨라진다.

데이터 의존성, 자원 의존성, 프로시저 의존성이 존재하는 경우에는 동시에 실행되어서는 안 된다.

데이터 의존성

ADD R1, R2, R3 : R2와 R3를 더해서 R1에 저장한다.

DIV R4, R1, R5 : R1을 R5로 나누어서 R4에 저장한다.

R1 = 8

R2 = 1

R3 = 3

R5 = 2


일때, 두명령어를 순차적으로 실행하면,

R1 = 4

R4 = 2

실행 순서를 바꿔 실행하면

R1 = 4

R4 = 4

R4에 잘못된 결과가 저장된다.

첫 번째 명령어에 의해 값이 정해지는 데이터를 두 번째 명령어에서 읽게 되는 경우에는 두 명령어의 실행 순서가 변경되어서는 안 되며, 이것을 'READ AFTER WRITER 의존성'이라고 한다.