-
둘 이상의 명령을 처리하기 위한 슈퍼 스칼라IT 2021. 6. 11. 08:06반응형
Superscalar는 클럭 주기당 두 개 이상의 명령을 실행할 수 있는 프로세서 마이크로아키텍처 유형을 지정하는 데 사용되는 용어입니다. 이 용어는 클럭 주기당 하나의 명령만 실행할 수 있는 스칼라 마이크로 아키텍처와는 반대로 사용됩니다. 플린의 분류에서 스칼라(모노코어) 프로세서는 SISD 형 프로세서이며, 슈퍼스칼라(멀티코어) 프로세서는 MIMD 형 프로세서입니다.
슈퍼 스칼라 마이크로 아키텍처는 파이프 라인 구조 덕분에 후자의 흐름 병렬화뿐만 아니라 교육 병렬을 사용합니다. superscalar 프로세서의 일반적인 구조는 다음과 같은 단계가 있는 파이프 라인으로 구성됩니다. 가져오기와 디코딩, 출시와 실행 그리고 사용과 종료입니다. 슈퍼스칼라 프로세서에서 프로세서는 각 단계에서 두 개 이상의 명령을 처리합니다. 파이프라인의 지정된 단계에서 최대 명령 수를 학위라고 하므로 읽기(가져오기)에서 4도의 슈퍼스칼라 프로세서는 사이클당 최대 4개의 지침을 읽을 수 있습니다. 구현 단계의 정도는 기능 단위의 수와 유형에 따라 달라집니다. superscalar 프로세서는 일반적으로 다음과 같은 유형의 독립적인 기능 단위를 가지고 있습니다. 논리 산술 단위, 로드와 저장소 단위, 부동점 단위와 분기 단위를 가지고 있습니다.
superscalar 프로세서는 지침에 위험이 없는 경우에만 동시에 하나 이상의 명령을 실행할 수 있습니다. 문 간의 종속성 유형은 다음과 같습니다. 구조 의존성, 이것은 두 개의 명령이 동일한 기능 단위 유형을 필요로 하고 그 숫자가 충분하지 않을 때 발생합니다. 데이터 종속성은 명령문이 실행하기 위해 다른 명령문의 결과가 필요할 때 발생합니다. 종속성 또는 거짓 종속성 또는 이름을 작성하면 두 문이 동일한 메모리에 작성해야 할 때 발생합니다. 제어 종속성은 명령문이 제어 구조에 종속되고 제어 구조의 평가가 끝날 때까지 올바른 흐름을 결정할 수 없는 경우 발생한다. 명령 간의 종속성 감지 및 해상도는 정적(컴파일 중) 또는 동적일 수 있으며, 즉 프로그램이 실행될 때 일반적으로 명령의 코딩 및 릴리스 단계에서 실행될 수 있습니다. 명령 간의 종속성의 검출 및 동적 해결은 일반적으로 장애에서 실행이라고도 하는 프로그램의 순서와 다른 순서로 지침을 실행할 수 있도록 하는 Tomasulo 알고리즘의 일부 변형에 의해 수행됩니다. superscalar 프로세서의 효율성은 메모리 계층 구조의 성능에 의해 병렬 및 다른 한편으로는 실행할 수 있는 충분한 명령으로 프로세서를 공급하는데 어려움에 의해 한 손에 제한됩니다.
일반적으로 파이프라인 프로세서의 경우, 슈퍼스칼라 프로세서의 경우, 파이프라인의 정지로 문제가 곱되어 더 많은 수의 지침에 영향을 미칩니다. 이러한 이유로 프로세서 제조업체는 투기적 실행 기술과 추적 캐시뿐만 아니라 점점 더 정교한 홉 예측 알고리즘을 설계합니다. Superscalar 아키텍처는 복잡한 구조와 자원의 사용이 좋지 않아 충분한 병렬 지침을 찾는데 어려움을 겪습니다. 병렬화 가능한 지침의 더 많은 수를 얻는 한 가지 방법은 명령 창, 즉 발사 단위가 지정된 시간에 릴리스 될 후보로 간주하는 지침 집합을 늘리는 것입니다. 불행히도 superscalar 프로세서의 복잡성은 회로의 일반적인 둔화를 초래하는 그 창의 크기에 대해 불균형적으로 증가합니다. 병렬화 가능한 지침을 얻는 또 다른 방법은 동시 멀티태스킹 또는 동시 멀티스레딩이라고 하는 한 번에 두 개 이상의 프로그램의 지침을 조작하는 것입니다.
초기 superscalar CPU는 두 개의 ALUS와 하나의 FPU를 가지고 있지만, Power PC 970 같은 현대적인 프로세서는 4개의 ALUS와 두 개의 FPU를 포함합니다. 이들은 두 SIMD단위를 가집니다. 디스패처가 이러한 장치를 가능한 한 열심히 작동하게 하는데 효율적이지 않으면 프로세서의 전반적인 성능이 저하됩니다. 1965년에 지어진 시모어 크레이의 CDC 6600은 RISCCPU의 마이크로컴퓨터에 개념을 도입한 최초의 슈퍼스칼라 아키텍처입니다. 이 가능성은 risc 코어의 단순성으로 인해 동일한 칩에 더 많은 실행 단위를 배치할 수 있게 했습니다. 이는 80~90년대의 기존 CISC에 비해 RISC 시스템의 속도의 이유 중 하나였지만, 제조 공정이 개선되고 트랜지스터가 같은 칩에 배치될 수 있기 때문에 IA-32와 같은 복잡한 설계조차도 슈퍼 스케일러가 될 수 있습니다. 1998년부터 개발된 대부분의 CPU는 슈퍼 스케일러입니다. 컨트롤과 디스패치 유닛의 실질적인 개선이 불가능한 시점에서, 더 이상 슈퍼 스케일링 설계가 더 많은 것을 스스로 줄 수 없는 것 같습니다. 가능한 솔루션 중 하나는 디스패치 로직을 칩에서 컴파일러로 옮기는 것입니다. 이것은 VLIW (매우 긴 명령 워드)프로세서의 기본 원칙이며, 여기서 병렬성은 정적 슈퍼 스케일러라고도 하는 명령 형식으로 명시적으로 이루어집니다.
'IT' 카테고리의 다른 글
벡터 프로세서와 SIMD (0) 2021.06.13 CPU 성능 향상을 위한 다중 프로세싱 (0) 2021.06.12 ILP 세분화 및 슈퍼스칼라 아키텍처 (0) 2021.06.10 컴퓨팅의 역사와 소프트웨어 처리법 (0) 2021.06.09 병렬 컴퓨터의 클래스에는 무엇이 있을까? (0) 2021.06.08