Interested Article - Барабанный процессор
- 2020-03-17
- 1
Barrel процессор , барабанный процессор, представляет собой процессор , который после каждого такта переключается между потоками команд . Эта архитектура процессора также известна как «interleaved» (чередующаяся) или «fine-grained» (мелкозернистая) временная многопоточность . В отличие от одновременной многопоточности в современных суперскалярных архитектурах, данная технология не позволяет выполнять несколько команд за один цикл.
Как и при вытесняющей многозадачности , каждому потоку выполнения присваивается свой собственный программный счётчик и другие аппаратные регистры для сохранения контекста каждого потока. Barrel процессор может гарантировать, что каждый поток будет выполняться через каждые n циклов, в отличие от процессора с вытесняющей многозадачностью, который, как правило, запускает один поток выполнения в течение сотен или тысяч циклов, в то время как все остальные потоки ждут своей очереди.
Приём проектирования, называющийся , может по схеме однозадачного процессора сгенерировать соответствующую ему схему Barrel процессора. Сгенерированный таким образом n -поточный Barrel процессор, действует так же, как многопроцессорная система, собранная из n отдельных копий оригинального однозадачного процессора, каждый из которых работает примерно на 1/ n от исходной скорости.
История
Одним из старейших примеров барабанного процессора являлся процессор ввода-вывода в суперкомпьютере . Он был способен исполнять одну инструкцию или часть сложной инструкции от каждого из 10 различных виртуальных процессоров, называвшихся также периферийными процессорами, перед возвратом к первому процессору.
Барабанные процессоры также могут быть использованы в качестве центральных процессоров в больших системах. Например, Tera (1988) имел Barrel процессор со 128 потоками на ядро. MTA-архитектура получила дальнейшее развитие в последующих продуктах, таких как , представленные в 2012 году они ориентированы на приложения для интеллектуального анализа данных .
Barrel процессоры могут быть использованы для снижения затрат на железо. Микрокод Xerox Alto исполнялся на barrel процессоре, который реализовывал два центральных процессора, видеоконтроллер, контроллер Ethernet, контроллер диска, а также другие устройства ввода/вывода.
Barrel процессоры также можно найти во встраиваемых системах, где они особенно полезны, благодаря их детерминированной производительности потоков в режиме . Примером может служить XMOS (2007), barrel процессор с восемью потоками на ядро. XS1 используется в контроллерах Ethernet, USB, аудио и других устройствах, где производительность ввода/вывода имеет решающее значение. Barrel процессоры также используются в специализированных устройствах, например восьмипоточный сетевой процессор IP3023 (2004).
Преимущества перед однопоточными процессорами
Однозадачный процессор тратит много тактов на NOOP -операции, не делая ничего полезного, каждый раз, когда происходит промах мимо кэша или при простое конвейера . Преимущества использования barrel процессоров по сравнению с однозадачными процессорами в следующем:
- Способность выполнять полезную работу других потоков, в то время как приостановленный поток ожидает.
- Проектирование n -поточного Barrel процессора с длинной конвейера n гораздо проще, чем проектирование однозадачного процессора, поскольку у barrel процессора простой конвейера минимален и не требует создания схем упреждающего чтения (не нуждается в предсказаниях переходов).
- Для приложений реального времени barrel процессор может гарантировать, что «в реальном времени» поток будет выполняться с точным таймингом, независимо от того, что происходит с другими потоками, даже если другой поток блокируется в бесконечном цикле или постоянно прерывается через аппаратные прерывания.
Недостатки по сравнению с однопоточными процессорами
Есть несколько недостатков barrel процессоров .
- Состояние каждого потока должно храниться на чипе (обычно в регистрах), чтобы избежать дорогостоящих переключений контекста вне кристалла. Для этого требуется большее количество регистров, по сравнению с обычными процессорами.
- Если все потоки будут разделять один и тот же кэш, то это уменьшит общую производительность системы. Чтобы этого избежать, лучше разделить кэш-памяти на блоки под каждый поток отдельно, но это может значительно увеличить число транзисторов (и, следовательно, стоимость) такого процессора. (Однако, в режиме жёсткого реального времени во встраиваемых системах, где barrel процессоры встречаются чаще, стоимость доступа к памяти, как правило, рассчитана исходя из предположения о худшем промахе мимо кэша, так что это незначительная проблема. Кроме того, некоторые barrel процессоры, такие как XMOS XS1, не имеют кэша вообще.)
Примечания
- от 3 марта 2016 на Wayback Machine — См. страницы 2-44 с иллюстрациями чередования «барабана».
- . Дата обращения: 11 августа 2012. 22 февраля 2012 года.
- 12 июля 2014 года.
- 9 августа 2012 года.
- PARC, Xerox . BitSevers. Дата обращения: 11 октября 2016. 4 сентября 2017 года.
Ссылки
- Embedded.com article examines Ubicom’s IP3023 processor
- (French and English)
- 2020-03-17
- 1