stringtranslate.com

Регистр сдвига

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

В большинстве случаев несколько параллельных сдвиговых регистров будут использоваться для создания большего пула памяти, известного как « битовый массив ». Данные сохранялись в массиве и параллельно считывались обратно, часто в виде компьютерного слова , при этом каждый бит последовательно сохранялся в сдвиговых регистрах. При проектировании битовых массивов существует неизбежный компромисс; размещение большего количества триггеров в ряд позволяет одному сдвиговому устройству хранить больше битов, но требует больше тактовых циклов, чтобы протолкнуть данные через все сдвиговые устройства, прежде чем данные можно будет снова прочитать.

Сдвиговые регистры могут иметь как параллельные , так и последовательные входы и выходы. Они часто настраиваются как «последовательный вход, параллельный выход» (SIPO) или как «параллельный вход, последовательный выход» (PISO). Существуют также типы с последовательным и параллельным входом и типы с последовательным и параллельным выходом. Существуют также «двунаправленные» регистры сдвига, которые позволяют осуществлять сдвиг в обоих направлениях: L → R или R → L. Последовательный вход и последний выход сдвигового регистра также можно соединить для создания «циклического сдвигового регистра». Регистр PIPO (параллельный вход, параллельный выход) — это просто регистр D-типа и не является сдвиговым регистром, но он очень быстрый — выходной сигнал выдается в течение одного тактового импульса. «Универсальный» сдвиговый регистр обеспечивает двунаправленный последовательный вход и выход, а также параллельный вход и параллельный выход.

Последовательный вход и последовательный выход (SISO)

Разрушительное считывание

Это простейший вид сдвиговых регистров. Строка данных представлена ​​в позиции «вход данных» и сдвигается на одну ступень вправо каждый раз, когда «продвижение данных» становится высоким . При каждом перемещении крайний левый бит (т. е. «вход данных») сдвигается на выход первого триггера . Крайний правый бит (т. е. «выход данных») смещается и теряется.

Данные сохраняются после каждого триггера на выходе «Q», поэтому в этой схеме доступно четыре «слота» хранения, следовательно, это 4-битный регистр. Чтобы получить представление о схеме сдвига, представьте, что в регистре хранится 0000 (поэтому все слоты памяти пусты). Поскольку «входящие данные» представляют в регистр 1,0,1,1,0,0,0,0 (именно в этом порядке, с импульсом «продвижения данных» каждый раз — это называется тактированием или стробированием) в регистр, это результат. Правый столбец соответствует выходному выводу крайнего правого триггера и так далее.

Таким образом, последовательный вывод всего регистра равен 00010110. Можно видеть, что если бы данные продолжали вводить, они получили бы именно то, что было введено (10110000), но со смещением на четыре цикла «продвижения данных». Такое расположение является аппаратным эквивалентом очереди . Кроме того, в любой момент весь регистр можно обнулить, установив на выводах сброса (R) высокий уровень.

Такая схема выполняет деструктивное считывание  — каждая цифра теряется после ее смещения из крайнего правого бита.

Последовательный вход-параллельный выход (SIPO)

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

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

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

Параллельный вход и последовательный выход (PISO)

В этой конфигурации ввод данных по линиям D1–D4 осуществляется в параллельном формате, причем D1 является старшим битом. Для записи данных в регистр линия управления записью/сдвигом должна находиться в низком состоянии. Для сдвига данных линия управления W/S переводится в ВЫСОКИЙ уровень и регистры синхронизируются. Теперь это устройство действует как сдвиговый регистр PISO с D1 в качестве входа данных. Однако, пока количество тактовых циклов не превышает длину строки данных, выход данных Q будет представлять собой параллельные данные, считываемые по порядку.

4-битный регистр сдвига PISO

Анимация ниже показывает последовательность записи/сдвига, включая внутреннее состояние сдвигового регистра.

Использование

Toshiba TC4015BP двойной сдвиговый регистр SIPO

Последовательное и параллельное преобразование

Одним из наиболее распространенных применений сдвигового регистра является преобразование последовательного и параллельного интерфейсов.

Задерживать

Регистры сдвига с последовательным входом и выходом можно использовать в качестве простых схем задержки. [1]

Куча

Несколько двунаправленных сдвиговых регистров также могут быть подключены параллельно для аппаратной реализации стека .

Больше контактов ввода/вывода

Регистры сдвига обычно подключаются к микроконтроллерам , когда требуется больше контактов ввода/вывода общего назначения , чем доступно, иногда через последовательный периферийный интерфейс в конфигурации шлейфового подключения , что позволяет получить доступ к любому количеству двоичных устройств, используя только два-четыре контакта. хотя и медленнее, чем параллельный ввод-вывод.

Для большего количества выходов используются регистры сдвига SIPO. Параллельные выходы сдвигового регистра и желаемое состояние всех этих устройств могут быть отправлены из микроконтроллера с использованием одного последовательного соединения.

Для большего количества входов используются регистры сдвига PISO. Каждый двоичный вход (например, кнопка или более сложная схема) подключается к параллельному входу сдвигового регистра, затем данные последовательно отправляются обратно в микроконтроллер.

Удлинители импульсов

Сдвиговые регистры также можно использовать в качестве расширителей импульсов. По сравнению с моностабильными мультивибраторами , синхронизация не зависит от значений компонентов, но требует внешнего тактового сигнала, а точность синхронизации ограничена степенью детализации этого тактового сигнала. Примером такого расширителя импульсов является Ronja Twister , в котором пять сдвиговых регистров 74164 таким образом создают ядро ​​логики синхронизации (схема).

Обработка данных

В ранних компьютерах для обработки данных использовались сдвиговые регистры: два числа, которые нужно было сложить, сохранялись в двух сдвиговых регистрах и тактировались в арифметико-логическое устройство (АЛУ) , а результат подавался обратно на вход одного из сдвиговых регистров. регистры (аккумулятор), что было на один бит длиннее, поскольку двоичное сложение может привести только к ответу того же размера или на один бит длиннее.

Операции битового сдвига

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

Память сдвигового регистра

Очень большие сдвиговые регистры с последовательным входом и выходом (размером в тысячи бит) использовались аналогично более ранней памяти с линией задержки в некоторых устройствах, построенных в начале 1970-х годов. Сдвиговым регистрам не нужно много выводов или логика декодирования адресов, поэтому в то время они были намного дешевле, чем память с произвольным доступом . [2] Такую память сдвигового регистра иногда называли циркулирующей памятью .

Datapoint 3300 , например, хранил свой терминальный дисплей из 25 строк по 72 столбца с 6-битными символами верхнего регистра, используя 54 200-битных сдвиговых регистра (расположенных на 6 дорожках по 9 пакетов), обеспечивая хранение 1800 символов. Конструкция сдвигового регистра означала, что прокрутку дисплея терминала можно было выполнить, просто приостановив вывод данных на дисплей, чтобы пропустить одну строку символов. [3] Аналогичный дизайн использовался для терминала Apple I. [4]

История

Один из первых известных примеров сдвигового регистра был в Mark 2 Colossus , машине для взлома кодов, построенной в 1944 году. Это было шестиступенчатое устройство, построенное из электронных ламп и тиратронов . [5] Сдвиговый регистр также использовался в машине IAS , построенной Джоном фон Нейманом и другими в Институте перспективных исследований в конце 1940-х годов. Регистры сдвига появились в интегральных схемах в 1960-х годах, о чем свидетельствуют ранние патенты Фрэнка Ванласа [6] и Кента Смита [7] , работавших в General Instrument .

Смотрите также

Рекомендации

  1. ^ US4530107A, Уильямс, Маршалл, «Схема задержки сдвигового регистра», выпущено 16 июля 1985 г. 
  2. ^ Ширрифф, Кен (2014). «Внутри Intel 1405: фотографии памяти сдвигового регистра 1970 года». Блог Кена Ширриффа . Архивировано из оригинала 28 июля 2023 г. Проверено 6 августа 2023 г.
  3. ^ bitsavers.org, Руководство по обслуживанию DataPoint 3300 , декабрь 1976 г.
  4. ^ Ширрифф, Кен. «Внутри памяти сдвигового регистра Apple-1». Блог Кена Ширриффа . Архивировано из оригинала 6 июня 2023 г. Проверено 4 августа 2023 г.
  5. ^ Флауэрс, Томас Х. (1983), «Дизайн колосса», Анналы истории вычислений , 5 (3): 246, doi : 10.1109/MAHC.1983.10079, S2CID  39816473
  6. ^ «Система сдвиговых регистров» .
  7. ^ «Электронная система сдвиговых регистров» .