Стволовый переключатель

редактировать
Схема 4-битного рычажного переключателя с перекладиной. 'x' обозначает входные биты, а y обозначает выходные биты.

A цилиндрический сдвигатель - это цифровая схема, которая может сдвигать слово данных на указанное количество бит без использования какой-либо последовательной логики, только чистая комбинационная логика. Один из способов реализовать это - как последовательность мультиплексоров, где выход одного мультиплексора соединен со входом следующего мультиплексора способом, который зависит от расстояния сдвига. В современных микропроцессорах для сдвига и поворота на n битов часто используется цилиндрический сдвигатель, обычно в пределах одного тактового цикла.

. Например, возьмем четырехразрядный цилиндрический сдвигатель со входами A, B, C и D. Устройство сдвига может изменять порядок битов ABCD как DABC, CDAB или BCDA; в этом случае биты не теряются. То есть он может сдвинуть все выходы вправо на три позиции (и, таким образом, создать любую циклическую комбинацию A, B, C и D). Цилиндрический переключатель имеет множество применений, в том числе является полезным компонентом в микропроцессорах (наряду с ALU ).

Содержание

  • 1 Реализация
  • 2 Стоимость
  • 3 Использование
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
  • 7 Дополнительная литература

Реализация

Барабанный переключатель часто реализуется как каскад параллельных мультиплексоров 2 × 1. Для 8-битного цилиндрического устройства сдвига используются два промежуточных сигнала, которые сдвигаются на четыре и два бита или передают одни и те же данные в зависимости от значения S [2] и S [1]. Затем этот сигнал сдвигается другим мультиплексором, которым управляет S [0]:

int1 = IN, если S [2] == 0 = IN << 4, if S[2] == 1 int2 = int1, if S[1] == 0 = int1 << 2, if S[1] == 1 OUT = int2, if S[0] == 0 = int2 << 1, if S[0] == 1

Сдвигатели большего размера имеют дополнительные ступени..

Стоимость

Количество мультиплексоров, необходимых для n-битового слова, составляет n log 2 ⁡ n {\ displaystyle n \ log _ {2} n}{\ displaystyle n \ log _ {2} n} . Пять общих размеров слов и необходимое количество мультиплексоров перечислены ниже:

  • 128-бит - 128 × log 2 ⁡ 128 = 128 × 7 = 896 {\ displaystyle 128 \ times \ log _ {2} 128 = 128 \ times 7 = 896}{\ displaystyle 128 \ times \ log _ {2} 128 = 128 \ times 7 = 896}
  • 64-разрядный - 64 × log 2 ⁡ 64 = 64 × 6 = 384 {\ displaystyle 64 \ times \ log _ {2} 64 = 64 \ times 6 = 384}{\ displaystyle 64 \ times \ log _ {2} 64 = 64 \ times 6 = 384}
  • 32-битный - 32 × log 2 ⁡ 32 = 32 × 5 = 160 {\ displaystyle 32 \ times \ log _ {2} 32 = 32 \ times 5 = 160}{\ displaystyle 32 \ times \ log _ {2} 32 = 32 \ times 5 = 160}
  • 16 бит - 16 × журнал 2 ⁡ 16 = 16 × 4 = 64 {\ displaystyle 16 \ times \ log _ {2} 16 = 16 \ times 4 = 64}{\ displaystyle 16 \ times \ log _ {2} 16 = 16 \ times 4 = 64 }
  • 8-битный - 8 × log 2 ⁡ 8 = 8 × 3 = 24 {\ displaystyle 8 \ times \ log _ {2} 8 = 8 \ times 3 = 24}{\ displaystyle 8 \ times \ log _ {2} 8 = 8 \ times 3 = 24}

Стоимость критического пути в FO4 (приблизительно, без задержки передачи):

  • 32-битное: от 18 FO4 до 14 FO4

Использует

Обычно цилиндрический сдвигатель используется в аппаратной реализации с плавающей запятой арифметика. Для операции сложения или вычитания с плавающей запятой значения двух чисел должны быть выровнены, что требует сдвига меньшего числа вправо, увеличения его экспоненты, пока оно не совпадет с показатель степени большего числа. Это делается путем вычитания показателей степени и с помощью сдвига ствола для сдвига меньшего числа вправо на разницу за один цикл. Если бы использовался простой сдвигатель, сдвиг на n битовых позиций потребовал бы n тактов.

См. Также

Ссылки

Внешние ссылки

Дополнительная литература

  • Кронинг, Дэниел; Стрихман, Офер (2008). Процедуры принятия решений. Спрингер. ISBN 978-3-540-74104-6.

Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включены в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.

Последняя правка сделана 2021-05-11 13:05:24
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте