
- •Регистры для хранения данных
- •Регистры сдвига
- •Двоичный счет
- •X Его работа основана на том, что ж-триггер изменяет состояние выхода, когда на вход с приходит тактовый импульс при условии
- •Запоминающие устройства
- •Постоянные запоминающие устройства (пзу)
- •Простейшие пзу на микросхемах
- •Флэш-память
- •Организация ЛазН-памяти
- •Многоуровневые ячейки
Лекция
8. Регистры и запоминающие устройства
Лекция 8. РЕГИСТРЫ И ЗАПОМИНАЮЩИЕ
УСТРОЙСТВА
Регистры
Регистром называется последовательностное логическое устройство, предназначенное для хранения многоразрядных двоичных чисел и выполнения преобразований над ними. Регистр представляет собой совокупность триггеров, число которых соответствует числу разрядов в слове. Количество триггеров соответствует разрядности регистра. С каждым регистром обычно связано комбинационное цифровое устройство, с помощью которого обеспечивается выполнение некоторых операций над словами. Фактически любое цифровое устройство можно представить в виде совокупности регистров, соединенных друг с другом при помощи комбинационных цифровых устройств.
Функциональное назначение регистра определяет набор операций, которые может выполнять этот регистр. Типичными являются следующие операции: о прием слова в регистр; о передача слова из регистра;
о сдвиг слова влево или вправо на заданное число разрядов; о преобразование последовательного кода слова в параллельный и обратно;
о установка регистра в начальное состояние (сброс).
Регистры классифицируются по следующим видам: о накопительные (регистры памяти); о сдвигающие.
В свою очередь сдвигающие регистры делятся: о по способу ввода-вывода информации:
параллельные - запись и считывание информации происходит одновременно на все входы и со всех выходов;
последовательные - запись и считывание информации происходит в первый триггер, а та информация, которая была в этом триггере, перезаписывается в следующий - то же самое происходит и с остальными триггерами;
комбинированные;
о по направлению передачи информации:
однонаправленные;
реверсивные.
Регистры для хранения данных
Регистры хранения используются для приема, хранения и выдачи многоразрядного кода. Они представляют собой совокупность одноступенчатых триггеров (как правило, Б-типа) с общим входом синхронизации. Иногда в регистре имеется также и общий вход асинхронной установки всех триггеров в «0».
Рис.
8.1. Регистр
данных на
Б-триггерах
Мы рассмотрели, как Б-триггер запоминает один бит информации, когда на вход тактового сигнала приходит фронт импульса. Для того чтобы обеспечить хранение байта данных (или большего количества информации), необходимо объединить восемь (или более) триггеров и подать на них единый управляющий сигнал.
Такой регистр является неотъемлемой частью любой вычислительной системы (см. рис. 8.1).
Регистры сдвига
Регистр сдвига - регистр, обеспечивающий, помимо хранения информации, сдвиг влево или вправо всех разрядов одновременно на одинаковое число позиций. При этом выдвигаемые за пределы регистра разряды теряются, а в освобождающиеся разряды заносится информация, поступающая по отдельному внешнему входу регистра сдвига. Обычно эти регистры при подаче синхросигнала обеспечивают сдвиг кода на одну позицию влево или вправо. Но существуют и универсальные регистры сдвига, которые выполняют сдвиг как влево, так и вправо в зависимости от значения сигнала на специальном управляющем входе или при подаче синхросигналов на разные входы регистра. Регистр сдвига может быть спроектирован и таким образом, чтобы выполнять сдвиг одновременно не на одну, а на несколько позиций.
Регистры сдвига, или сдвигающие регистры, могут быть выполнены на синхронных К8-, Б- или Ж-триггерах. Два примера представлены на рис. 8.2.
Любой сдвигающий регистр имеет вход последовательного ввода информации и выход последовательного вывода информации. Выходы (входы) параллельного вывода (ввода) информации могут отсутствовать. Когда на вход С1оск поступает управляющий сигнал (перепад из 0 в 1), в триггерах 0-3 происходит одновременно переписывание данных со входа триггера на его выход. Таким образом, данные в регистре сдвигаются вправо на одну позицию. Такие регистры называют еще регистрами ПРО (Ркв! 1при1 - Пгз! Ои1ри1). Это название отражает порядок перемещения информации в регистре (первым вошел - первым вышел). Помимо обычных, существуют реверсивные регистры сдвига. Они предназначены для сдвига как в одну, так и в другую сторону.
Рис.
8.2. Схема
регистра сдвига на синхронных Б-триггерах
(а) и синхронных К8-триггерах
(б)
На сдвигающих регистрах с последовательным входом можно построить запоминающее устройство с последовательным доступом информации. Хранение одного бита информации осуществляется в каждом отдельном триггере. Тактовый сигнал обеспечивает сдвиг данных. Рециркуляция информации обеспечивается подключением выхода регистра сдвига к его входу через мультиплексор 2 х1 (см. рис. 8.3). Если А = 0, то при подаче импульсов на вход С1оск обеспечивается рециркуляция информации, а если А = 1, то производится запись значения X в регистр сдвига.
Рис.
8.3. Хранение
информации в регистре сдвига Таким
образом, область применения регистров
сдвига - это преобразование последовательного
кода в параллельный и наоборот. Это
нужно, например, при работе с диском
(при записи преобразование параллельного
кода в последовательный, при считывании
- последовательного в параллельный),
при работе с модемом, для других устройств
последовательного ввода-вывода.
Кроме
того, регистры сдвига могут использоваться
при умножении чисел. Вспомните запись
числа в двоичной системе счисления:
если вы хотите умножить его на 102, это
означает, что все цифры нужно сдвинуть
влево на 1 разряд, а справа приписать
0. Рассмотрим процедуру умножения двух
чисел в двоичной системе счисления:
1 0 1 1 1 1 0 1 1 0 1 1111
Видно, что процедура умножения столбиком состоит из поразрядного умножения, сдвига и сложения. Таким образом, для реализации арифметического умножения двух чисел можно применить схему логического умножения, регистр сдвига и сумматор. Для деления необходимы, соответственно, действия вычитания и сдвига в обратном направлении. У некоторых микропроцессоров операции умножения и деления даже не включены в основную систему команд, и их приходится реализовывать программным способом.