Barrel shifter (устройство быстрого сдвига) — цифровая электронная схема, производящая сдвиг данных на указанное число позиций за один такт синхронизации. Устройство быстрого сдвига также может производить циклический сдвиг и расширение знакового бита.
На вход устройства подаётся две группы входных данных по N бит каждая и N управляющих сигналов, на выходе получается N бит данных. Количество разрядов, на которые производится сдвиг, определяется позицией управляющего сигнала высокого уровня (все остальные управляющие сигналы должны иметь низкий уровень), выполняемая операция определяется подачей входных данных. Например: при подаче данных на «вход 1» и нулей на «вход 0» будет произведён правый сдвиг; при подаче данных на оба входа будет произведён циклический сдвиг.
Устройство быстрого сдвига применяется в целочисленных арифметических операциях (где сдвиг на один разряд эквивалентен умножению или делению на два) и в операциях над числами с плавающей запятой для выравнивания операндов при выполнении сложения и вычитания. Мантисса числа, имеющего меньший порядок, сдвигается вправо, количество позиций, на которые производится сдвиг, равно разнице порядков чисел. После сдвига порядки чисел становятся равными.
Недостатки (для barrel shift, реализующего циклический сдвиг):An Interconnect-Centric Approach to Cyclic Shifter Design : slide 6 Входная ёмкость пропорциональна разрядности N. Количество транзисторов пропорционально квадрату разрядности N2 Требуется декодер для формирования управляющих сигналов.
В процессорах x86 применяются, начиная с Intel 80386. : "У 386-го процессора ... заменили последовательный регистр сдвига параллельным (barrel shifter, производит любой вид сдвига на любое число бит за фиксированное время)."
Ресурсоёмкость
Количество мультиплексоров, необходимое для реализации n-битового устройства сдвига, по схеме barrel составляет . Для пяти часто используемых размеров количество мультиплексоров составляет:
128-бит — 64-бит — 32-бит — 16-бит — * VLSI Implementation of a Barrel Shifter // Proceedings of SPIT-IEEE Colloquium and International Conference, Mumbai, India Vol2, 150 8-бит —
Стоимость критического пути в единицах Fan-out-of-4 (FO4) оценивается (без учёта задержки в проводниках) как: 32-bit: от 18 FO4 до 14 FO4David T. Wang, Revisiting the FO4 Metric. Estimating the FO4 depth of the critical path // RealWorldTech, August 15, 2002
См. также Logarithmic Shifter
Примечания
Литература
Ссылки Design alternatives for barrel shifters, Matthew R. Pillmeier VLSI Implementation of a Barrel Shifter // Proceedings of SPIT-IEEE Colloquium and International Conference, Mumbai, India Vol2, 150 Barrel Shifters // Bill Cowan, CS251 – Spring 2008 An Interconnect-Centric Approach to Cyclic Shifter Design Shifters and Adders // Somayyeh Koohi