Barrel shifterBarrel shifter (устройство быстрого сдвига) — цифровая электронная схема, производящая сдвиг данных на указанное число позиций за один такт синхронизации. Устройство быстрого сдвига также может производить циклический сдвиг и расширение знакового бита. На вход устройства подаётся две группы входных данных по N бит каждая и N управляющих сигналов, на выходе получается N бит данных. Количество разрядов, на которые производится сдвиг, определяется позицией управляющего сигнала высокого уровня (все остальные управляющие сигналы должны иметь низкий уровень), выполняемая операция определяется подачей входных данных. Например:
Устройство быстрого сдвига применяется в целочисленных арифметических операциях (где сдвиг на один разряд эквивалентен умножению или делению на два) и в операциях над числами с плавающей запятой для выравнивания операндов при выполнении сложения и вычитания. Мантисса числа, имеющего меньший порядок, сдвигается вправо, количество позиций, на которые производится сдвиг, равно разнице порядков чисел. После сдвига порядки чисел становятся равными. Недостатки (для barrel shift, реализующего циклический сдвиг):[1]
В процессорах x86 применяются, начиная с Intel 80386.[2] РесурсоёмкостьКоличество мультиплексоров, необходимое для реализации n-битового устройства сдвига, по схеме barrel составляет [3]. Для пяти часто используемых размеров количество мультиплексоров составляет: Стоимость критического пути в единицах Fan-out-of-4 (FO4) оценивается (без учёта задержки в проводниках) как:
См. такжеПримечания
Литература
Ссылки
|
Portal di Ensiklopedia Dunia