Процессор барреля

ЦП, который переключается между потоками выполнения на каждом цикле

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

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

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

История

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

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

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

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

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

Ранним примером является версия «Dual CPU» четырехбитного COP400 , представленная National Semiconductor в 1981 году. Этот однокристальный микроконтроллер содержит два якобы независимых ЦП, которые совместно используют инструкции, память и большинство устройств ввода-вывода. В действительности, двойные ЦП представляют собой один двухпоточный процессор-баррель. Он работает путем дублирования определенных разделов процессора — тех, которые хранят архитектурное состояние , — но не дублирования основных ресурсов выполнения, таких как АЛУ , шины и память. Отдельные архитектурные состояния устанавливаются с дублированными A (аккумуляторами), B (регистрами указателей), C (флагами переноса), N (указатели стека) и PC (счетчиками программ). [6]

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

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

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

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

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

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

Недостатки

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

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

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

Ссылки

  1. ^ Компьютерные системы CDC Cyber ​​170; Модели 720, 730, 750 и 760; Модель 176 (уровень B); Набор инструкций ЦП; Набор инструкций ППУ. Архивировано 03.03.2016 на Wayback Machine . Иллюстрацию вращающегося «бочки» см. на стр. 2-44.
  2. Honeywell 800 Справочное руководство программиста (PDF) . 1960. стр. 17.
  3. ^ "Архивная копия". Архивировано из оригинала 2012-02-22 . Получено 2012-08-11 .{{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка )
  4. ^ "Cray History". Архивировано из оригинала 2014-07-12 . Получено 2014-08-19 .
  5. ^ "Cray's YarcData division launches new big data Graph Appliance" (пресс-релиз). Сиэтл, Вашингтон и Санта-Клара, Калифорния: Cray Inc. 29 февраля 2012 г. Архивировано из оригинала 2017-03-18 . Получено 2017-08-24 .
  6. ^ "COPS Microcontrollers Data Book". National Semiconductor . Получено 19 января 2022 г.
  • Программные периферийные устройства Статья Embedded.com рассматривает процессор IP3023 компании Ubicom
  • Оценка конструкции Gamma 60
  • Histoire et Architecture du Gamma 60 (французский и английский)
Взято с "https://en.wikipedia.org/w/index.php?title=Barrel_processor&oldid=1241386283"