배럴 프로세서

Barrel processor

배럴 프로세서는 사이클마다 실행 스레드를 전환하는 CPU입니다.이 CPU 설계 기술은 "인터리브" 또는 "세밀한" 시간 멀티스레딩이라고도 합니다.현대의 슈퍼스칼라 아키텍처에서의 동시 멀티스레딩과는 달리 일반적으로 하나의 사이클에서 여러 명령을 실행할 수 없습니다.

프리엠프티브 멀티태스킹과 마찬가지로 각 실행 스레드에는 자체 프로그램 카운터 및 기타 하드웨어 레지스터(각 스레드의 아키텍처 상태)가 할당됩니다.배럴 프로세서는 일반적으로 수천만 사이클 동안 실행되는 하나의 스레드를 실행하는 프리엠프티브 멀티태스킹 머신과는 달리 각 스레드가 n 사이클마다 하나의 명령을 실행하도록 보장할 수 있습니다.

C-슬로우라고 불리는 기술은 싱글태스킹 프로세서 설계에서 대응하는 배럴 프로세서 설계를 자동으로 생성할 수 있습니다.이렇게 생성된 n방향 배럴 프로세서는 원래 싱글태스킹 프로세서의 n개의 개별 멀티프로세싱 복사본과 거의 동일하게 동작하며, 각각은 [citation needed]원래 속도의 약 1/n으로 동작합니다.

역사

배럴 프로세서의 초기 예 중 하나는 CDC 6000 시리즈 슈퍼컴퓨터의 I/O 처리 시스템입니다.이들은 첫 번째 [1]프로세서로 돌아가기 전에 10개의 서로 다른 가상 프로세서(페럴 프로세서라고 불린다)에서 각각 하나의 명령(또는 명령의 일부)을 실행했습니다.CDC 6000 시리즈에서는, 다음과 같이 읽습니다.주변기기 프로세서는 배럴 프로세서로 일괄적으로 구현됩니다.각각은 다른 루틴과 독립적으로 루틴을 실행합니다.버스 마스터링 또는 다이렉트 메모리 액세스의 느슨한 이전 버전입니다."

배럴 프로세서의 한 가지 동기는 하드웨어 비용을 절감하는 것이었습니다.CDC 6x00 PPU의 경우 프로세서의 디지털 로직이 코어 메모리보다 훨씬 빨랐기 때문에 10개의 프로세서가 있는 것이 아니라 PPU용 코어 메모리 유닛이 10개 있지만 모두 단일 프로세서 로직 세트를 공유합니다.

또 다른 예로는 Honeywell 800이 있는데, 8개의 레지스터 그룹이 있어 최대 8개의 동시 프로그램을 사용할 수 있습니다.각 명령 후에 프로세서는 [2](대부분의 경우) 순서대로 다음 활성 프로그램으로 전환됩니다.

배럴 프로세서는 대규모 중앙 프로세서로도 사용되고 있습니다.테라 MTA(1988)는 코어당 128개의 [3][4]스레드를 가진 대규모 배럴 프로세서 설계입니다.MTA 아키텍처는 데이터 마이닝 애플리케이션을 [5]대상으로 2012년에 처음 도입된 Cray Urika-GD와 같은 후속 제품에서 지속적으로 발전하고 있습니다.

배럴 프로세서는 임베디드 시스템에서도 볼 수 있으며 결정론적 실시간 스레드 성능에 특히 유용합니다.

를 들어 XMOS XCore XS1(2007)이 있습니다.XMOS XCore XS1(2007)은 코어당8개의 스레드를 가진 4단 배럴 프로세서입니다.(XMOS의 새로운 프로세서도 같은 타입의 아키텍처를 갖추고 있습니다).XS1은 이더넷, USB, 오디오 및 제어 장치 및 I/O 성능이 중요한 기타 애플리케이션에 있습니다.XS1이 'XC' 언어로 프로그래밍된 경우 소프트웨어 제어 직접 메모리 액세스가 구현될 수 있습니다.

배럴 프로세서는 8 스레드 Ubicom IP3023 네트워크 I/O 프로세서(2004)와 같은 특수 장치에도 사용되고 있습니다.Padauk Technology의 일부 8비트 마이크로 컨트롤러는 코어당 최대 8개의 스레드를 가진 배럴 프로세서를 갖추고 있습니다.

싱글 스레드 프로세서와의 비교

이점

싱글태스킹프로세서는 캐시 미스나 파이프라인의 스톨이 발생할 때마다 유용한 작업을 하지 않고 많은 시간을 아이돌 상태로 보냅니다.배럴 프로세서를 싱글태스킹 프로세서에 비해 사용하는 장점은 다음과 같습니다.

  • 정지된 스레드가 대기하는 동안 다른 스레드에서 유용한 작업을 수행할 수 있습니다.
  • 배럴 프로세서는 파이프라인 스톨이 없고 피드포워드 회로가 필요 없기 때문에 n-way 배럴 프로세서를 n-deep 파이프라인으로 설계하는 것은 싱글태스킹 프로세서를 설계하는 것보다 훨씬 간단합니다.
  • 실시간 애플리케이션의 경우, 배럴 프로세서는 다른 스레드가 무한 루프잠기거나 하드웨어 인터럽트에 의해 지속적으로 중단되는 경우에도 다른 스레드에 무슨 일이 발생하더라도 "실시간" 스레드가 정확한 타이밍으로 실행될 수 있음을 보증할 수 있습니다.

단점들

배럴 프로세서에는 몇 가지 단점이 있습니다.

  • 값비싼 오프칩 컨텍스트스위치를 피하기 위해 각 스레드의 상태를 온칩(일반적으로 레지스터에 저장)으로 유지해야 합니다.여기에는 일반 프로세서에 비해 많은 레지스터가 필요합니다.
  • 모든 스레드가 동일한 캐시를 공유하여 전체적인 시스템 성능을 저하시키거나 각 실행 스레드에 대해 하나의 캐시 유닛이 있어야 하며, 이는 트랜지스터 카운트를 크게 증가시켜 CPU의 비용을 증가시킬 수 있습니다.그러나 배럴 프로세서가 자주 사용되는 하드 실시간 임베디드 시스템에서는 일반적으로 최악의 캐시 동작을 가정하여 메모리 액세스 비용이 계산되므로 이는 사소한 [citation needed]문제입니다.XMOS XS1과 같은 일부 배럴 프로세서에는 캐시가 전혀 없습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ CDC Cyber 170 컴퓨터 시스템, 모델 720, 730, 750 760, 모델 176(레벨 B), CPU 명령 세트, PPU 명령 세트 -- 회전하는 "배럴"에 대한 그림은 2-44페이지를 참조하십시오.
  2. ^ Honeywell 800 Programmers' Reference Manual (PDF). 1960. p. 17.
  3. ^ "Archived copy". Archived from the original on 2012-02-22. Retrieved 2012-08-11.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  4. ^ "Archived copy". Archived from the original on 2014-07-12. Retrieved 2014-08-19.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  5. ^ "Cray's YarcData division launches new big data graph appliance" (Press release). Seattle, WA and Santa Clara, CA: Cray Inc. February 29, 2012. Retrieved 2017-08-24.

외부 링크