Бочковой процессор - Barrel processor

А баррель процессор это ЦПУ что переключается между потоки исполнения по каждому цикл. Эта Дизайн процессора метод также известен как "чередующийся" или "мелкозернистый" временная многопоточность. в отличие одновременная многопоточность в современном суперскалярный архитектур, он обычно не позволяет выполнять несколько инструкций за один цикл.

подобно вытесняющая многозадачность, каждому потоку выполнения назначается свой счетчик команд и другие аппаратные регистры (каждый поток архитектурное состояние ). Бочкообразный процессор может гарантировать, что каждый поток будет выполнять одну инструкцию каждые п циклы, в отличие от вытесняющая многозадачность машина, которая обычно запускает один поток выполнения в течение десятков миллионов циклов, в то время как все остальные потоки ждут своей очереди.

Техника называется C-замедление может автоматически генерировать соответствующий проект цилиндрического процессора из однозадачного дизайна процессора. An пполученный таким образом бочкообразный процессор действует как п отдельный многопроцессорность копии исходного однозадачного процессора, каждая из которых работает примерно на 1 /п исходная скорость.[нужна цитата ]

История

Одним из самых ранних примеров цилиндрического процессора была система обработки ввода-вывода в CDC 6000 серии суперкомпьютеры. Эти казнили один инструкция (или часть инструкции) от каждого из 10 различных виртуальных процессоров (называемых периферийными процессорами) перед возвратом к первому процессору.[1]

Одним из мотивов создания цилиндрических процессоров было снижение затрат на оборудование. В случае PPU CDC 6x00 цифровая логика процессора была намного быстрее, чем основная память, поэтому вместо десяти отдельных процессоров для PPU используется десять отдельных основных блоков памяти, но все они используют один набор логика процессора.

Другой пример - Honeywell 800, который имел 8 групп регистров, позволяющих запускать до 8 параллельных программ. После каждой инструкции процессор (в большинстве случаев) последовательно переключался на следующую активную программу.[2]

Цилиндрические процессоры также использовались в качестве крупных центральных процессоров. В Тера MTA (1988) был разработан крупномасштабный цилиндрический процессор со 128 потоками на ядро.[3][4] Архитектура MTA постоянно развивается в следующих продуктах, таких как Крей Урика-ГД, первоначально представленный в 2012 году (как YarcData uRiKA) и предназначенный для приложений интеллектуального анализа данных.[5]

Процессоры типа Barrel также встречаются во встраиваемых системах, где они особенно полезны благодаря своей детерминированности. в реальном времени производительность потока. Примером может служить XMOS XCore XS1 (2007), четырехступенчатый цилиндрический процессор с восемью потоками на ядро. XS1 используется в устройствах Ethernet, USB, аудио и управления, а также в других приложениях, где производительность ввода-вывода имеет решающее значение. Цилиндрические процессоры также использовались в специализированных устройствах, таких как восьмипоточные Ubicom Сетевой процессор ввода-вывода IP3023 (2004 г.). Некоторые 8-битные микроконтроллеры от Padauk Technology имеют цилиндрические процессоры с числом потоков до 8 на ядро.

Сравнение с однопоточными процессорами

Преимущества

Однозадачный процессор много времени бездействует, не делая ничего полезного, когда промах в кеше или стойло трубопровода происходит. Преимущества использования цилиндрических процессоров перед однозадачными процессорами включают:

Недостатки

У цилиндрических процессоров есть несколько недостатков.

  • Состояние каждого потока должно храниться на кристалле, обычно в регистрах, чтобы избежать дорогостоящих переключений контекста вне кристалла. Для этого требуется большое количество регистров по сравнению с типичными процессорами.
  • Либо все потоки должны иметь один и тот же тайник, что снижает общую производительность системы, или должна быть одна единица кеша для каждого потока выполнения, что может значительно увеличить количество транзисторов и, следовательно, стоимость такого процессора. Однако в жесткий режим реального времени встроенные системы там, где часто встречаются цилиндрические процессоры, затраты на доступ к памяти обычно рассчитываются с учетом наихудшего поведения кеша, поэтому это не вызывает особого беспокойства.[нужна цитата ] Некоторые цилиндрические процессоры, такие как XMOS XS1 вообще не имеют кеша.

Смотрите также

использованная литература

  1. ^ CDC Cyber ​​170 Computer Systems; Модели 720, 730, 750 и 760; Модель 176 (уровень В); Набор инструкций процессора; Набор инструкций PPU - См. Стр. 2-44, где изображен вращающийся «бочонок».
  2. ^ Справочное руководство для программистов Honeywell 800 (PDF). 1960. с. 17.
  3. ^ «Архивная копия». Архивировано из оригинал на 2012-02-22. Получено 2012-08-11.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
  4. ^ «Архивная копия». Архивировано из оригинал в 2014-07-12. Получено 2014-08-19.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
  5. ^ «Подразделение Cray YarcData запускает новое устройство для работы с графиком больших данных» (Пресс-релиз). Сиэтл, Вашингтон и Санта-Клара, Калифорния: Cray Inc., 29 февраля 2012 г.. Получено 2017-08-24.

внешние ссылки