Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Процессор ствола является процессор , который переключается между потоками исполнения на каждом цикле . Этот метод проектирования ЦП также известен как «чередование» или «мелкозернистая» временная многопоточность . В отличие от одновременной многопоточности в современных суперскалярных архитектурах, она обычно не позволяет выполнять несколько инструкций за один цикл.

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

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

История [ править ]

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

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

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

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

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

Примером может служить XMOS XCore XS1 (2007 г.), четырехступенчатый цилиндрический процессор с восемью потоками на ядро. (Более новые процессоры от XMOS также имеют такую ​​же архитектуру.) XS1 используется в Ethernet, USB, аудиоустройствах и устройствах управления, а также в других приложениях, где производительность ввода-вывода критична. Когда XS1 запрограммирован на языке «XC», может быть реализован программно управляемый прямой доступ к памяти .

Процессоры Barrel также использовались в специализированных устройствах, таких как восьмипоточный процессор ввода-вывода Ubicom IP3023 (2004). Некоторые 8-битные микроконтроллеры от Padauk Technology имеют цилиндрические процессоры с числом потоков до 8 на ядро.

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

Преимущества [ править ]

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

  • Возможность выполнять полезную работу с другими потоками, пока остановленный поток ожидает.
  • Проектирование п -WAY процессора ствола с п -deep трубопровода гораздо проще , чем разработка однозадачного процессора , так как процессор бочки не имеет стойло трубопровода и не требует подач вперед схем.
  • Для реального времени приложений, процессор бочки может гарантировать , что « в реальное время» поток может выполнять с точным временем, независимо от того , что происходит с другими потоками, даже если другой поток блокируется в бесконечном цикле или непрерывно прерывается по аппаратные прерывания .

Недостатки [ править ]

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

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

См. Также [ править ]

  • Суперпоточность
  • Многозадачность компьютера
  • Одновременная многопоточность (SMT)
  • Hyper Threading
  • Векторный процессор
  • Cray XMT

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • В статье о программной периферии на Embedded.com рассматривается процессор Ubicom IP3023
  • Оценка дизайна гаммы 60
  • Histoire et architecture du Gamma 60 (французский и английский)