ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CPU 성능 향상을 위한 다중 프로세싱
    IT 2021. 6. 12. 07:57
    반응형

    성능을 달성하기 위한 또 다른 전략은 여러 프로그램이나 스레드를 병렬로 실행하는 것입니다. 이 연구 영역은 병렬 컴퓨팅이라고 합니다. 플린의 분류에서, 이 전략은 여러 다중 데이터 지침 또는 MIMD로 알려져 있다. 이 목적을 위해 사용된 한 가지 기술은 다중 프로세싱(MP)이었습니다. 이 기술의 킥오프는 소수의 CPU가 메모리 시스템에 대한 일관된 보기를 공유하는 대칭 다중 처리(SMP)라고 합니다. 이 구성표에서 각 CPU에는 메모리에 대한 지속적으로 업데이트된 뷰를 유지하기 위한 추가 하드웨어가 있습니다. 부실한 메모리 조회를 방지하기 위해 CPU는 동일한 프로그램에서 협력할 수 있으며 프로그램은 한 CPU에서 다른 CPU로 마이그레이션 할 수 있습니다. 협력 CPU 수를 몇 개 이상으로 늘리기 위해 1990년에는 균일하지 않은 메모리 액세스(NUMA) 및 디렉터리 기반 일관성 프로토콜과 같은 방식이 도입되었습니다. SMP 시스템은 소수의 CPU로 제한되며 NUMA 시스템은 수천 개의 프로세서로 구축되었습니다. 처음에는 프로세서 간의 상호 연결을 구현하기 위해 여러 개의 개별 CPU와 보드를 사용하여 다중 프로세싱을 구축했습니다. 프로세서와 상호 연결이 단일 실리콘 칩에 구현되면 이 기술을 멀티코어 프로세서라고 합니다.

    그 후, 그것은 하나의 프로그램과 매우 좁은 평행이 있었다는 것을 인식했다. 단일 프로그램에는 별도로 또는 병렬로 실행할 수 있는 여러 스레드(또는 함수)가 있을 수 있습니다. 이 기술의 초기 예 중 일부는 계산된 와이어의 별도의 와이어로 직접 메모리 액세스와 같은 입력/출력 처리를 구현했습니다. 1970년대에는 시스템이 여러 컴퓨팅 스레드를 병렬로 실행하도록 설계되었을 때 이 기술에 대한 보다 일반적인 접근 방식이 도입되었습니다. 이 기술을 다중 스레딩(MT)이라고 합니다. 이 방법은 MP의 경우 전체 CPU와 달리 소수의 구성 요소만 CPU 내에서 복제되어 MT 내에서 복제되기 때문에 멀티프로세싱보다 비효율적인 것으로 간주됩니다. MT에서 실행 단위와 캐시를 포함한 메모리 시스템이 여러 스레드 간에 공유됩니다. MT의 단점은 멀티스레딩에 대한 하드웨어 지원이 MP보다 소프트웨어에 더 많이 표시되므로 감독자 소프트웨어와 운영 체제는 MT를 지원하기 위해 더 큰 변경 사항을 거쳐야 한다는 것입니다. 구현된 MT의 한 가지 유형은 데이터가 외부 메모리에서 반환될 때까지 스레드가 마비될 때까지 실행되는 다중 스레드 블록이라고 합니다. 이 계획에서 CPU는 다른 와이어로 빠르게 전환해야 하며 스위치는 UltraSPARC기술과 같은 CPU 클럭 주기를 수행하는 경우가 많습니다. 또 다른 유형의 MT는 CPU 클럭 주기 내에서 여러 스레드 명령이 병렬로 실행되는 동시 멀티스레딩이라고 합니다.

    덜 일반적이지만 점점 더 중요해지는 CPU 패러다임(그리고 실제로 일반적으로 컴퓨팅)은 벡터를 다룹니다. 위에서 설명한 프로세서는 모두 일종의 스칼라 장치라고 합니다. 이름에서 알 수 있듯이 벡터 프로세서는 명령의 컨텍스트에서 여러 데이터 조각을 처리하므로 명령당 한 조각을 처리하는 스칼라 프로세서와 대조됩니다. 이러한 두 데이터 처리 체계는 일반적으로 각각 SISD(단일 명령, 단일 데이터) 및 SIMD(단일 명령, 다중 데이터)라고 합니다. 데이터 벡터를 처리하는 CPU를 만드는 데 있어 가장 큰 유용성은 대량 또는 점 제품과 같은 작업이 필요한 작업의 최적화에 있습니다. 이러한 유형의 작업의 몇 가지 고전적인 예는 멀티미디어 응용 프로그램(이미지, 비디오 및 사운드) 뿐만 아니라 다양한 유형의 과학 및 엔지니어링 작업입니다. Scalar CPU는 데이터 집합의 모든 명령과 값을 읽고 디코딩하고 실행하는 전체 프로세스를 완료해야 하지만 벡터 CPU는 단일 명령으로 비교적 큰 데이터 집합에서 간단한 작업을 수행할 수 있습니다. 물론 응용 프로그램에 대규모 데이터 집합에 작업을 적용하는 많은 단계가 필요한 경우에만 가능합니다.

    크레이-1과 같은 대부분의 초기 벡터 CPU는 거의 독점적으로 과학 연구 및 암호화 응용 프로그램과 관련이 있었습니다. 그러나 멀티미디어가 디지털 미디어로 크게 전환됨에 따라 범용 CPU에서 일종의 SIMD에 대한 필요성이 중요해졌습니다. 범용 프로세서에 부동점 단위를 포함하는 것이 일반화된 직후, 범용 CPU용 SIMD 실행 단위의 사양 및 구현도 나타나기 시작했습니다. 인텔의 MMX와 같은 초기 SIMD 사양 중 일부는 정수만을 위한 것입니다. SIMD의 혜택을 받은 많은 응용 프로그램이 주로 부동 포인트 숫자를 처리했기 때문에 일부 소프트웨어 개발자에게는 상당한 장애물이 입증되었습니다. 점진적으로 이러한 초기 설계는 일반적으로 ISA와 관련된 일반적인 최신 SIMD 사양으로 정제되고 다시 조정되었습니다. 주목할 만한 현대 예는 인텔의 SSE와 PowerPC 관련 AltiVec (VMX라고도 함)를 포함한다.

Designed by Tistory.