슈퍼스칼라

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 찾기

슈퍼스칼라(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 의존성'이라고 한다.