Введение

Цифровая схема, используемая в компьютерах.

Сдвигатель ствола — это цифровая схема, способная сдвигать слово данных на заданное количество бит без использования последовательной логики, а только комбинационной, то есть он по своей сути реализует двоичную операцию. Однако теоретически его также можно использовать для реализации унарных операций, таких как логический сдвиг влево, при условии ограничения фиксированным количеством бит (например, в блоке генерации адресов). Один из способов реализации сдвигателя ствола — это последовательное соединение мультиплексоров, где выход одного мультиплексора подключен к входу следующего таким образом, что зависит от величины сдвига. Сдвигатель ствола часто применяется для сдвига и циклических сдвигов n бит в современных микропроцессорах, как правило, за один тактовый цикл. Например, рассмотрим четырехбитный сдвигатель ствола с входами A, B, C и D. Этот сдвигатель может циклически менять порядок битов ABCD на DABC, CDAB или BCDA; при этом биты не теряются. То есть, он может сдвинуть все выходные биты до трех позиций вправо (и, следовательно, создать любую циклическую комбинацию A, B, C и D). Сдвигатель ствола имеет широкий спектр применения, включая использование в качестве полезного компонента в микропроцессорах (вместе с АЛУ).

Применение

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