Barrel shifter




Главная
Новости
Статьи
Ремонт
Каркасный дом
Несущие конструкции
Металлические конструкции
Прочность дорог
Дорожные материалы
Стальные конструкции
Воздухоопорные сооружения
Грунтовые основания




23.01.2021


21.01.2021


21.01.2021


20.01.2021


19.01.2021


19.01.2021


15.01.2021


15.01.2021


15.01.2021


15.01.2021





Яндекс.Метрика
         » » Barrel shifter

Barrel shifter

18.12.2020

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

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

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

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

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

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

В процессорах x86 применяются, начиная с Intel 80386.

Ресурсоёмкость

Количество мультиплексоров, необходимое для реализации n-битового устройства сдвига, по схеме barrel составляет n log 2 ⁡ n {displaystyle scriptstyle nlog _{2}n} . Для пяти часто используемых размеров количество мультиплексоров составляет:

  • 128-бит — 128 × log 2 ⁡ ( 128 ) = 128 × 7 = 896 {displaystyle scriptstyle 128 imes log _{2}(128)=128 imes 7=896}
  • 64-бит — 64 × log 2 ⁡ ( 64 ) = 64 × 6 = 384 {displaystyle scriptstyle 64 imes log _{2}(64)=64 imes 6=384}
  • 32-бит — 32 × log 2 ⁡ ( 32 ) = 32 × 5 = 160 {displaystyle scriptstyle 32 imes log _{2}(32)=32 imes 5=160}
  • 16-бит — 16 × log 2 ⁡ ( 16 ) = 16 × 4 = 64 {displaystyle scriptstyle 16 imes log _{2}(16)=16 imes 4=64}
  • 8-бит — 8 × log 2 ⁡ ( 8 ) = 8 × 3 = 24 {displaystyle scriptstyle 8 imes log _{2}(8)=8 imes 3=24}

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

  • 32-bit: от 18 FO4 до 14 FO4