Barrel shifter (пристрій швидкого зсуву) — цифрова електронна схема, яка виконує зсув даних на вказане число позицій за один такт синхронізації. Пристрій швидкого зсуву також може виконувати циклічний зсув і розширення знакового біта.
Принцип роботи
На вхід пристрою подається дві групи вхідних даних по N біт кожна і N керуючих сигналів, на виході з'являється N біт даних. Кількість розрядів, на які виконується зсув, визначається позицією керуючого сигналу високого рівня (всі інші керуючі сигнали повинні мати низький рівень), операція, яку необхідно виконати, визначається подачею вхідних даних. Наприклад:
при подачі даних на «вхід 1» і нулів на «вхід 0» буде здійснений правий зсув;
при подачі даних на обидва входи буде здійснений циклічний зсув.
Пристрій швидкого зсуву застосовується в цілочисельних арифметичних операціях (де зсув на один розряд еквівалентний множенню або діленню на два) і в операціях над числами з рухомою комою для вирівнювання операндів при виконанні додавання і віднімання. Мантиса числа, що має менший порядок, зсувається вправо, кількість позицій, на які проводиться зсув, дорівнює різниці порядків чисел. Після зсуву порядки чисел стають рівними.
Кількість транзисторів пропорційна квадрату розрядності N2
Потрібен декодер для формування керуючих сигналів.
В процесорах x86 пристрої зсуву застосовуються, починаючи з Intel 80386.[2]
Ресурсомісткість
Кількість мультиплексорів, необхідних для реалізації n-бітового пристрою зсуву за схемою barrel shifter становить [3] Для п'яти найчастіше використовуваних розмірів кількість мультиплексорів становить: