Регистрами называют устройства для хранения одного двоичного числа. Количество разрядов в регистрах, выпускаемых отдельно, обычно не превышает восьми, но в составе других микросхем могут быть и регистры с большей разрядностью — вплоть до 128 или 256 битов в «продвинутых» микропроцессорах. Большинство типов электронных запоминающих устройств, вообще говоря, можно рассматривать как совокупность регистров. Но собственно регистры, как входящие в состав процессоров, так и выпускаемые отдельно, отличаются тем, что позволяют не только записывать и считывать информацию, но и производить некоторые простейшие операции, — например, сдвиг разрядов.
Простейший регистр — это упомянутый ранее статический D-триггер. Четыре таких триггера, входящих в микросхему 561ТМЗ, образуют четырехразрядный регистр с параллельной записью и считыванием, причем тактовый вход в этой микросхеме у всех четырех разрядов общий. Как и сам триггер, такой регистр называют «защелкой».
Если регистр-защелка позволяет осуществлять только параллельную запись, то последовательный регистр (пример — 561ИР2), наоборот, имеет возможность записи только через один вход, который является D-входом самого младшего разряда. Последовательный регистр является неким обобщением конструкции D-триггера. Работу динамического D-триггера можно рассматривать, как процесс сдвига информации от входа через первый триггер ко второму при поступлении соответствующих перепадов на тактовом входе. В последовательном регистре, который в простейшем случае представляет собой просто последовательное соединение таких триггеров, происходит нечто подобное — с каждым фронтом тактового импульса информация сдвигается от младшего разряда к старшему, при этом в младший разряд записывается состояние входа. Считывать информацию при этом можно из каждого разряда в отдельности, как и в случае регистра-защелки. Такие регистры получили еще название сдвиговых. Они широко используются для последовательного ввода и вывода информации — скажем, для вывода восьми битов через последовательный порт RS-232 достаточно записать их в такой регистр, а потом подать на него восемь тактовых импульсов с нужной частотой.
Сдвиговый регистр можно закольцевать — соединить выход старшего разряда со входом младшего и получить нечто подобное слону из анекдота, который засунул хобот себе в известное место. Однако в случае одного сдвигового регистра такое соединение приведет к тому же результату, что и для слона, т. е. оно довольно бесполезно практически, ибо мы без дополнительных ухищрений запись информации производить уже не сможем. Поэтому используют объединение параллельной и последовательной записи/считывания в одном устройстве (пример — четырехразрядный регистр 561ИР9 или восьмиразрядный 561ИР6).
* * *
Заметки на полях
Такие сдвиговые регистры с параллельной записью и последовательным считыванием информации — неотъемлемая часть устройств памяти большой емкости, без них чтение и запись в большие массивы запоминающих ячеек были бы невозможны. Имеются они, например, в матрицах цифровых камер. Интересное применение таких регистров — организация последовательного интерфейса SPI, широко используемого для скоростного обмена информацией между различными микросхемами (например, между энергонезависимой памятью вроде флэш-карточек и микроконтроллером).
В SPI наличествуют два восьмибитовых регистра, соединенных в кольцо входами/выходами, но они разделены пространственно: один регистр находится в одном устройстве, другой — в другом. Если подавать тактовые импульсы на оба регистра одновременно (это осуществляет одно из устройств — ведущее), то после подачи ровно 8 импульсов устройства обменяются содержимым своих регистров.
* * *
Счетчики