Learning
토픽 22 / 111·CPU (Central Processing Unit)

슈퍼스칼라 (Superscalar)

슈퍼스칼라 (Superscalar)

여러 개의 실행 유닛을 병렬로 배치하여 한 클럭에 2개 이상의 명령어를 동시에 인출·실행할 수 있는 병렬 처리 구조

목적: IPC 증가(>1), 처리량 극대화, 하드웨어 병렬성 활용

특징: 다중 파이프라인, 동적 스케줄링, 다중 실행유닛, 명령어 병렬성(ILP)

구성요소: ① 다중 인출 유닛 ② 다중 디코더 ③ 다중 실행 유닛(ALU, FPU, LSU) ④ 재정렬 버퍼

기술요소

  • 비순차실행(Out-of-Order): 의존성 없는 명령어 먼저 실행
  • Tomasulo 알고리즘: 예약 스테이션 기반 동적 스케줄링, 레지스터 리네이밍으로 WAR/WAW 해결
  • 레지스터 리네이밍: WAR/WAW 해저드 제거, 물리 레지스터 매핑
  • 분기예측: 투기적 실행, 2-level/gshare/perceptron
  • 재정렬 버퍼(ROB): 순차적 커밋, 예외 처리

성능 제약: 분기 예측 실패, 메모리 지연, 명령어 간 의존성, 전력/복잡도, 수확 체감(8-way 이상 효율 저하)

장점: 높은 IPC(2~4), 성능 향상, 기존 코드 호환

단점: 복잡한 하드웨어, 높은 전력, 스케줄링 오버헤드

적용사례: Intel Core(4-way), AMD Ryzen, ARM Cortex-A76

비교: 슈퍼스칼라(단일스레드/ILP) vs SMT(다중스레드/TLP) vs VLIW(컴파일러의존)

연관: 파이프라인, 비순차실행, SMT, 분기예측