Сдвигающие регистры
В зависимости от параллельного или последовательного способа записи и считывания цифровой информации различают сдвигающие регистры: - с параллельной записью и параллельным считыванием; - с параллельной записью и последовательным считыванием; - с последовательной записью и последовательным считыванием; - с последовательной записью и параллельным считыванием. Сдвигающие регистры помимо перечисленных обеспечивают выполнение следующих дополнительных микроопераций: - сдвиг слова вправо; - сдвиг слова влево; - преобразование последовательного кода, принимаемого разряд за разрядом, в параллельный; - преобразование параллельного кода в последовательный, выдаваемый разряд за разрядом; - поразрядные логические микрооперации (логическое умножение, логическое сложение и т.д.) При реализации различных операций в арифметических и других устройствах ЭВМ широкое применение находят различные операции сдвига слов, записанных в регистры. Сдвиги, как операции, входят в состав системы команд всех ЭВМ. Операция сдвига кода - это перемещение в регистре всех разрядов слова на одинаковое число разрядов влево или вправо. В этом случае разряды слова, вышедшие из разрядной сетки регистра влево (или вправо) либо теряются, либо передаются последовательно, разряд за разрядом, во внешнее устройство, подключенное к регистру. В освободившиеся при этом разряды регистра записываются нули. Рассмотрим примеры сдвига числа на один разряд влево и вправо (таблица 3.1). Суть сдвига вправо состоит в том, что цифра из i-ого разряда, имевшаяся до сдвига, передается в (i-1)-й, более младший разряд; из (i-1)-го разряда в (i-2)-й и т.д. Суть сдвига влево заключается в том, что цифра, имевшаяся в i-м разряде регистра до сдвига, передается в соседний левый (i+1)-й, более старший разряд; из (i+1)-го разряда в (i+2)-ой разряд и т.д.
Таблица 3.1 – Иллюстрация сдвига числа в регистре
Сдвигающие регистры, в которых ввод и вывод двоичного слова производится в последовательном коде (с использованием операции сдвига) называют последовательными регистрами. Последовательный сдвигающий влево регистр, построенный на D-триггерах, показан на рисунке 3.15.
Рисунок 3.15 - Сдвигающий влево регистр на триггерах D-типа
Сдвигающий вправо последовательный регистр с параллельной записью кода, построенный на универсальных JK-триггерах, приведен на рисунке 3.16. Рисунок 3.16 – Сдвигающий вправо регистр с параллельной записью информационного кода
Регистр, приведенный на рисунке 3.16, функционирует следующим образом. По сигналу W0 " СБРОС", поданному на шину R, осуществляется обнуление триггеров регистра по входам R через соответствующие логические элементы И-НЕ. Запись данных осуществляется под управлением сигнала W1, который подается на объединенные входы элементов И-НЕ, управляющих записью. На вторые входы соответствующих схем И-НЕ поступают сигналы Хi -ой цифры кода. Обнуление и подача записываемой в регистр информации производятся в отсутствии синхросигнала СИ (в два такта, что является недостатком данного способа записи). В момент прихода СИ на входы С триггеров сигнал с выхода Qi-ого триггера воздействует на вход (i-1)-ый триггер, с выхода Q(i-1)-ого, на вход (i-2)-ого триггера, передавая им свое состояние, т.е. происходит сдвиг вправо на один разряд от старших разрядов к младшим. Иногда регистр должен иметь возможность сдвига информации в двух направлениях параллельной записью и считыванием числа. В этом случае используются реверсивные регистры такие, как показано на рисунке 3.17. Этот регистр организован на базе D-триггеров.
Рисунок 3.17 - Реверсивный сдвигающий регистр
Узлы записи информации в данном регистре перезаписывают информацию во время действия фронта тактового импульса Т. По шине W подается сигнал разрешения записи, а на входы Xi - данные для записи в соответствующие разряды. Для записи параллельных данных используются элементы И-ИЛИ-НЕ. С помощью этого же узла и шин > и < можно управлять направлением сдвига.
|