Barrel shifter

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Принцип действия устройства быстрого сдвига
Принцип построения схемы быстрого сдвига

Barrel shifter (устройство быстрого сдвига) — цифровая электронная схема, производящая сдвиг данных на указанное число позиций за один такт синхронизации. Устройство быстрого сдвига также может производить циклический сдвиг и расширение знакового бита.

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

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

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

Недостатки (для barrel shift, реализующего циклический сдвиг):[1]

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

Ресурсоемкость [править]

Количество мультиплексоров, необходимое для реализации n-битового устройства сдвига по схеме barrel составляет \scriptstyle n\log_2n [2]. Для пяти часто используемых размеров количество мультиплексоров составляет:

  • 128-бит — \scriptstyle 128\times\log_2(128) = 128\times7 = 896
  • 64-бит — \scriptstyle 64\times\log_2(64) = 64\times6 = 384
  • 32-бит — \scriptstyle 32\times\log_2(32) = 32\times5 = 160
  • 16-бит — \scriptstyle 16\times\log_2(16) = 16\times4 = 64 [2]
  • 8-бит — \scriptstyle 8\times\log_2(8) = 8\times3 = 24[2]

Стоимость критического пути в единицах Fan-out-of-4 (FO4) оценивается (без учета задержки в проводниках) как:

  • 32-bit: от 18 FO4 до 14 FO4[3]

Примечания [править]

  1. cseweb.ucsd.edu/classes/wi09/cse242a/slides/shifter.ppt slide 6
  2. 1 2 3 conference.spit.ac.in/ieee_colloquium/VLSI_and_Embedded_Systems/spit-176.pdf
  3. David T. Wang, Revisiting the FO4 Metric. Estimating the FO4 depth of the critical path // RealWorldTech, August 15, 2002

Литература [править]

  • Wayne Wolf 6.2 Combinational Shifters // Modern VLSI Design: IP-Based Design. — 4th ed.. — Prentice Hall, 2009. — 627 p. — (Prentice Hall Modern Semiconductor Design Series). — ISBN 0137145004