User:SergKonduk/Sandbox

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

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

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

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

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