ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ILP 세분화 및 슈퍼스칼라 아키텍처
    IT 2021. 6. 10. 08:26
    반응형

    병렬 주의를 높이는 가장 간단한 방법 중 하나는 이전 명령문이 실행되기 전에 문을 읽고 디코딩하는 첫 번째 단계를 시작하는 것입니다. 이것은 명령 파이프 라이닝으로 알려진 기술의 가장 간단한 형태이며, 거의 모든 현대 범용 CPU에서 사용된다. 실행 경로를 개별 단계로 분할하면 파이프라인을 사용하면 언제든지 두 개 이상의 명령을 실행할 수 있습니다. 이 분리는 실행 파이프라인을 떠나 제거될 때까지 각 단계에서 명령이 더 완벽하게 이루어지는 어셈블리 라인과 비교할 수 있습니다.

    그러나 파이프라인은 다음 작업을 완료하기 위해 이전 작업의 결과를 완료해야 하는 상황의 가능성을 소개합니다. 데이터 종속성 충돌이라고 도는 조건입니다. 이에 대처하기 위해서는 이러한 종류의 조건을 확인하기 위해 추가 주의를 기울여야 하며, 이 경우 명령 파이프의 일부가 지연되어야 합니다. 당연히 이를 위해서는 추가 회로가 필요하며, 튜브 프로세서는 서브 스케일러보다 더 복잡하지만 그다지 복잡하지는 않습니다. 튜브 프로세서는 거의 완전히 스케일링될 수 있으며 갑작스러운 파이프 정지(단계에서 두 개 이상의 클럭 사이클을 지속되는 명령)에 의해서만 억제될 수 있습니다. 그것은 한 번에 두 개의 지침을 읽고 디스 패치할 때 주기당 최대 2개의 지침을 완료할 수 있습니다.

    명령 파이프 라이닝 아이디어에 대한 추가 개선은 CPU 구성 요소의 유휴 시간을 더욱 줄이는 방법의 개발로 이어졌습니다. 슈퍼 스케일러라고 하는 디자인에는 긴 명령 파이프와 여러 개의 동일한 실행 단위가 포함됩니다. superscalar 파이프라인에서는 여러 지침을 읽고 디스패처에게 전달되며, 디스패처는 명령이 병렬로 실행될 수 있는지 여부를 동시에 결정합니다. 이 경우 사용 가능한 실행 단위로 파견되어 여러 명령을 동시에 실행할 수 있습니다. 일반적으로 superscalar CPU가 대기 실행 단위로 동시에 디스패치할 수 있는 지침이 많을수록 지정된 주기에서 더 많은 지침이 완료됩니다. superscalar CPU 아키텍처를 설계하는데 어려움이 있는 대부분은 효율적인 디스패처를 만드는 데 있습니다. 디스패처는 명령을 병렬로 실행할 수 있는지 여부를 신속하고 정확하게 결정할 수 있을 뿐만 아니라 가능한 한 많은 실행 단위를 바쁘게 유지하는 방식으로 디스 패치할 수 있어야 합니다. 이를 위해서는 명령 파이프를 가능한 한 자주 채워야 하며, 상당한 양의 CPU 캐시에 대한 슈퍼스칼라 아키텍처의 필요성이 증가합니다. 또한 포크 예측, 투기적 실행 및 주문 외 실행과 같은 위험을 방지하는 기술을 생성하여 높은 수준의 성능을 유지하는 데 중요합니다. 조건부 명령이 소요되는 분기(또는 경로)를 예측하면 CPU는 조건부 명령이 완료될 때까지 전체 채널이 기다려야 하는 횟수를 최소화할 수 있습니다. 투기적 실행은 조건부 작업이 완료된 후 필요하지 않을 수 있는 코드 부분을 실행할 때 성능이 저하되는 경우가 많습니다. 실행 순서 외부는 데이터 종속성으로 인해 지연을 줄이기 위해 명령이 실행되는 순서를 변경합니다. 또한 개별 다중 데이터 지침의 경우 최신 프로세서는 동일한 유형의 다량의 데이터가 처리된 경우 파이프라인의 일부를 비활성화하여 단일 문이 여러 번 실행될 때 CPU가 캡처 및 디코딩 단계를 건너뛰므로 특히 비디오 제작 및 사진 처리 소프트웨어와 같은 고도로 모노가 없는 프로그램 엔진에서 성능이 상당히 향상됩니다.

    CPU의 일부가 슈퍼스칼라이고 부품이 없는 경우, 스케줄 정지로 인해 슈퍼스칼라가 아닌 부품이 성능에 어려움을 겪습니다. 원래 인텔 펜티엄 (P5)에는 각각 시계 주기당 하나의 명령을 받아 들일 수 있는 두 개의 superscalar ALUS가 있었지만 FPU는 시계 주기당 하나의 명령을 받아들일 수 없었습니다. 따라서 P5는 정수의 부분에 슈퍼 스칼라 했지만 부동 쉼표(또는 소수점) 번호의 superscalar는 아니었다. 인텔의 펜티엄 아키텍처의 후속 버전인 P6의 부동 포인트 기능에 슈퍼 스케일 기능을 추가했습니다. 이에 따라서 이러한 지침의 성능에 상당한 기간 동안 증가 생산하였습니다.

    superscalar 디자인과 간단한 배관 모두 단일 프로세서가 사이클당 하나의 명령(IPC)을 초과하는 비율로 명령 실행을 완료할 수 있도록 하여 CPU의 ILP를 증가시게 됩니다. 대부분의 최신 CPU 디자인은 적어도 다소 슈퍼 스케일러이며, 지난 10년 동안 거의 모든 범용 CPU 디자인은 슈퍼 스케일러입니다. 최근 몇 년 동안 높은 ILP 컴퓨터 디자인에 대한 강조 중 일부는 CPU 하드웨어에서 소프트웨어 인터페이스 또는 ISA로 옮겨갔습니다. 매우 긴 명령 단어 또는 VLIW전략은 일부 ILP가 소프트웨어에 의해 직접 암시적이 되어 CPU가 ILP에 상당한 부스트를 제공하기 위해 수행해야 하는 작업의 양을 줄여 설계의 복잡성을 줄입니다.

Designed by Tistory.