stringtranslate.com

Бочковой процессор

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

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

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

История

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

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

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

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

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

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

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

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

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

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

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

Недостатки

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

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

Рекомендации

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

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