Barrel процесор являє собою процесор, який переключається між потоками виконання на кожному циклі. Цей метод проектування процесора також відомий як «чергувальна» або «дрібнозерниста» часова багатопотоковість. На відміну від одночасної багатопотоковості в сучасних суперскалярних архітектурах, дана технологія не дозволяє виконання декількох команд в одному циклі.

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

Техніка під назвою C-уповільнення може автоматично генерувати відповідну конструкцію процесора Barrel для однозадачної конструкції процесора. Процесор Barrel n-шляху згенерований таким чином, діє так само, як n окремих багатопроцесорних копій оригінального однозадачного процесора, кожен з яких працює приблизно на 1 / n від вихідної швидкості.

Історія

ред.

Переваги в порівнянні з однопотоковими процесорами

ред.

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

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

Недоліки в порівнянні з однопотоковими процесорами

ред.

Є кілька недоліків Barrel процесорів.

  • Стан кожного потоку повинен зберігатися на чипі (зазвичай в регістрах), щоб уникнути дорогих перемикань контексту поза кристалом. Для цього потрібна велика кількість регістрів, в порівнянні зі звичайними процесорами.
  • Або всі потоки повинні розділяти один і той же кеш, який уповільнює загальну продуктивність системи, або повинен бути один блок кеш-пам'яті для кожного потоку виконання, що може значно збільшити число транзисторів (і, отже, вартість) такого процесора. (Проте, в режимі жорсткого реального часу у вбудованих системах, де Barrel процесори часто зустрічаються, вартість доступу до пам'яті, як правило, розрахована виходячи з припущення про найгіршу поведінку кешу, так що це незначне занепокоєння. Крім того, деякі Barrel процесори, такі як XMOS XS1, не мають кешу взагалі.)

Примітки

ред.

Посилання

ред.