WIPIVERSE

슈퍼스칼라

슈퍼스칼라(superscalar)는 컴퓨터 중앙처리장치(CPU)의 설계 방식 중 하나로, 단일 프로세서 내에서 명령어 수준 병렬성(instruction-level parallelism, ILP)을 구현하는 구조를 가리킨다. '다중 이슈 프로세서(multiple-issue processor)'라고도 불린다.

슈퍼스칼라 프로세서는 한 클럭 사이클에 최대 하나의 명령어만 실행할 수 있는 스칼라 프로세서(scalar processor)와 달리, 프로세서 내부에 여러 개의 실행 장치(execution unit)를 두고 여러 명령어를 동시에 디스패치하여 한 클럭 사이클 동안 하나 이상의 명령어를 실행하거나 실행을 시작할 수 있다. 각 실행 장치는 별도의 프로세서나 코어가 아니라, 산술 논리 장치(ALU)나 부동소수점 장치(FPU)와 같이 단일 CPU 내에 포함된 실행 자원이다.

슈퍼스칼라 CPU는 일반적으로 파이프라인(pipeline) 방식도 함께 사용하지만, 이 둘은 서로 다른 성능 향상 기법으로 구분된다. 슈퍼스칼라는 다중 실행 장치를 사용하여 여러 명령어를 병렬로 실행하는 반면, 파이프라인은 하나의 실행 장치를 여러 단계로 나누어 동시에 여러 명령어를 처리한다.

슈퍼스칼라 기술의 특징은 다음과 같다: 명령어가 순차적인 명령어 스트림에서 발행되며, CPU가 런타임에 명령어 간의 데이터 의존성을 동적으로 확인하고, 클럭 사이클당 다중 명령어를 실행할 수 있다.

역사적으로 1964년 시모어 크레이(Seymour Cray)의 CDC 6600은 사이클당 여러 명령어를 발행할 수는 없었지만 다중 기능 장치를 통해 명령어를 동시에 실행할 수 있었던 초기 영향으로 자주 인용된다. 1967년 IBM 시스템/360 모델 91은 토마술로 알고리즘(Tomasulo's algorithm)을 통해 비순차적 명령어 처리(out-of-order execution)를 도입한 또 다른 초기 사례이다. 최초의 상업용 단일 칩 슈퍼스칼라 마이크로프로세서로는 인텔 i960CA(1989), AMD 29050(1990), 모토로라 MC88110(1991) 등이 있다. 인텔 P5 펜티엄은 최초의 슈퍼스칼라 x86 프로세서였다. 1998년 이후 개발된 대부분의 범용 CPU는 저전력 및 임베디드 시스템용을 제외하고 본질적으로 모두 슈퍼스칼라 구조를 채택하고 있다.

슈퍼스칼라 기술의 성능 향상은 명령어 스트림 내의 본질적인 병렬성 정도, 의존성 확인 로직과 레지스터 이름 변경(register renaming) 회로의 복잡성, 분기 명령어 처리 등 세 가지 핵심 요소에 의해 제한된다. 이러한 한계로 인해 VLIW(very long instruction word), EPIC, 동시 멀티스레딩(SMT), 멀티코어 컴퓨팅 등의 대체 아키텍처 연구가 진행되었다.

슈퍼스칼라 프로세서는 여러 실행 장치가 전체 프로세서가 아니라는 점에서 멀티코어 프로세서와 다르며, 여러 명령어가 다양한 실행 단계에 동시에 존재할 수 있다는 점에서 파이프라인 프로세서와도 구별된다. 그러나 이들 기술은 상호 배타적이지 않으며, 단일 프로세서에서 결합되어 사용되기도 한다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기