Barrel shifter

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Barrel shifter (пристрій швидкого зсуву) — цифрова електронна схема, яка виконує зсув даних на вказане число позицій за один такт синхронізації. Пристрій швидкого зсуву також може виконувати циклічний зсув і розширення знакового біта.

Принцип роботи[ред. | ред. код]

Принцип дії пристрою швидкого зсуву

На вхід пристрою подається дві групи вхідних даних по N біт кожна і N керуючих сигналів, на виході з'являється N біт даних. Кількість розрядів, на які виконується зсув, визначається позицією керуючого сигналу високого рівня (всі інші керуючі сигнали повинні мати низький рівень), операція, яку необхідно виконати, визначається подачею вхідних даних. Наприклад:

  • при подачі даних на «вхід 1» і нулів на «вхід 0» буде здійснений правий зсув;
  • при подачі даних на обидва входи буде здійснений циклічний зсув.

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

Недоліки (для циклічного barrel shifter'а)[1]:

  • Вхідна ємність пропорційна розрядності N.
  • Кількість транзисторів пропорційна квадрату розрядності N2
  • Потрібен декодер для формування керуючих сигналів.

В процесорах x86 пристрої зсуву застосовуються, починаючи з Intel 80386.[2]

Ресурсомісткість[ред. | ред. код]

Кількість мультиплексорів, необхідних для реалізації n-бітового пристрою зсуву за схемою barrel shifter становить [3] Для п'яти найчастіше використовуваних розмірів кількість мультиплексорів становить:

  • 128-біт —
  • 64-біт —
  • 32-біт —
  • 16-біт — [3]
  • 8-біт — [3]

Застосування[ред. | ред. код]

Пристрої бітового зсуву найчастіше використовуються для апаратної реалізації арифметики над числами з рухомою комою.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]