ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6720
Скачиваний: 8
Память
163
соединить полученный сигнал с изначальным сигналом с помощью логической
функции И (см. рис. 3.20,
в,
сигнал С),
Память
Память является необходимым компонентом любого компьютера. Без памяти не
было бы компьютеров, по крайней мере таких, какие есть сейчас. Память исполь-
зуется как для хранения команд, которые нужно выполнить, так и данных. В сле-
дующих разделах мы рассмотрим основные компоненты памяти, начиная с уровня
вентилей. Мы увидим, как они работают и как из них можно получить память боль-
шой емкости.
Защелки
Чтобы создать один бит памяти, нам нужна схема, которая каким-то образом «за-
поминает» предыдущие входные значения. Такую схему можно сконструировать
из двух вентилей НЕ-ИЛИ, как показано на рис. 3.21,
а.
Аналогичные схемы мож-
но построить из вентилей НЕ-И. Мы не будем упоминать эти схемы в дальнейшем,
поскольку они, по существу, идентичны схемам с вентилями НЕ-ИЛИ.
Q
А
0
0
1
1
В
0
1
0
1
НЕ-
ИЛИ
1
0
0
0
Рис. 3 . 2 1
. Защелка НЕ-ИЛИ в состоянии 0 (а); защелка НЕ-ИЛИ в состоянии 1
(б);
таблица истинности для функции НЕ-ИЛИ (Й)
Схема, изображенная на рис. 3.21,
а,
называется SR-защелкой. У нее есть два
входа: S (setting — установка) и R (resetting — сброс). У нее также есть два компле-
ментарных
1
(дополнительных) выхода: Q и Q. В отличие от комбинационной схе-
мы, выходные сигналы защелки не определяются текущими входными сигналами.
Чтобы увидеть, как это осуществляется, предположим, что S=0 и R=0 (вообще
они равны 0 большую часть времени). Чтобы провести доказательство, предполо-
жим также, что Q=0. Так как Q возвращается в верхний вентиль НЕ-ИЛИ и оба
входа этого вентиля равны 0, то его выход, Q, равен 1. Единица возвращается в ниж-
ний вентиль, у которого в итоге один вход равен 0, а другой — 1, а на выходе получа-
ется Q=0. Такое положение вещей, по крайней мере, состоятельно (рис. 3.21,
а).
От англ.
complementary —
дополняющий. —
Примеч. пер.
1 6 4 Глава 3. Цифровой логический уровень
А теперь давайте представим, что Q=l, a R и S все еще равны 0. Верхний вен-
тиль имеет входы 0 и 1 и выход Q (то есть 0), который возвращается в нижний
вентиль. Такое положение вещей, изображенное на рис. 3.21,
б,
также состоятель-
но. Положение, когда оба выхода равны 0, несостоятельно, поскольку в этом слу-
чае оба вентиля имели бы на входе два нуля, что привело бы к единице на выходе,
а не к нулю. Точно так же невозможно иметь оба выхода равных 1, поскольку это
привело бы к входным сигналам 0 и 1, что вызывает на выходе 0, ане 1. Наш вывод
прост: при R=S=0 защелка имеет два стабильных состояния, которые мы будем
называть 0 и 1 в зависимости от Q.
А сейчас давайте рассмотрим действие входных сигналов на состояние защел-
ки. Предположим, что S принимает значение 1, в то время как Q=0. Тогда входные
сигналы верхнего вентиля будут 1 и 0, что приведет к выходному сигналу Q=0.
Это изменение делает оба входа в нижний вентиль равными 0 и, следовательно,
выходной сигнал равным 1. Таким образом, установка S на значение 1 переключа-
ет состояние с 0 на 1. Установка R на значение 1, когда защелка находится в состо-
янии 0, не вызывается изменений, поскольку выход нижнего вентиля НЕ-ИЛИ
равен 0 и для входов 10, и для входов 11.
Используя подобную аргументацию, легко увидеть, что установка S на значе-
ние 1 при состоянии защелки 1 (то есть при Q=l) не вызывает изменений, но уста-
новка R на значение 1 приводит к изменению состояния защелки. Таким образом,
если S принимает значение 1, то Q будет равно 1 независимо от предыдущего со-
стояния защелки. Сходным образом переход R на значение 1 вызывает Q=0. Схе-
ма «запоминает», какой сигнал был в последний раз: S или R. Используя это свой-
ство, мы можем конструировать компьютерную память.
Синхронные SR-защелки
Часто бывает удобно сделать так, чтобы защелка меняла состояние только в опре-
деленные моменты. Чтобы достичь этой цели, мы немного изменили основную
схему и получили
синхронную SR-защелку
(рис. 3.22).
Тактовый п
генератор
Рис. 3.22. Синхронная SR-защелка
Эта схема имеет дополнительный синхронизирующий вход, который обычно
равен 0. Если этот вход равен 0, то оба выхода вентилей И равны 0 независимо от S
и R, и защелка не меняет состояние. Когда значение синхронизирующего входа
равно 1, действие вентилей И исчезает и состояние защелки становится зависи-
мым от S и R. Для обозначения того факта, что синхронизирующий вход равен 1
Память
165
(то есть состояние схемы зависит от значений S и R), часто используется термин
стробировать.
До сих пор мы скрывали, что происходит, если S=R=1. И по понятным причи-
нам: когда и R, и S в конце концов возвращаются к 0, схема становится недетерми-
нированной. Единственное состоятельное положение при S=R=1 — это Q=Q=0,
но как только оба входа возвращаются к 0, защелка должна перейти в одно из двух
стабильных состояний. Если один из входов принимает значение 0 раньше, чем
другой, оставшийся в состоянии 1 «побеждает», потому что когда один из вхо-
дов равен 1, он управляет состоянием защелки. Если оба входа переходят к 0 од-
новременно (что маловероятно), защелка переходит в одно из своих состояний
наугад.
Синхронные D-за щелки
Чтобы разрешить неопределенность SR-защелки (неопределенность возникает
в случае, если S=R=1), нужно предотвратить появление подобной неопределенно-
сти. На рис. 3.23 изображена схема защелки только с одним входом D. Так как
входной сигнал в нижний вентиль И всегда является обратным кодом входного
сигнала в верхний вентиль И, ситуация, когда оба входа равны 1, никогда не воз-
никает. Когда D=l и синхронизирующий вход равен 1, защелка переходит в со-
стояние Q,= l. Когда D=0 и синхронизирующий вход равен 1, защелка переходит
в состояние Q=0. Другими словами, когда синхронизирующий вход равен 1, теку-
щее значение D отбирается и сохраняется в защелке. Такая схема, которая называ-
ется
синхронной
D-защелкой, представляет собой память объемом 1 бит. Значение,
которое было сохранено, всегда доступно на выходе Q. Чтобы загрузить в память
текущее значение D, нужно пустить положительный импульс по линии синхрони-
зирующего сигнала.
Q
Рис. 3.23. Синхронная D-защелка
Такая схема требует наличия 11 транзисторов. Более сложные схемы могут
хранить 1 бит, имея всего 6 транзисторов. На практике обычно используются по-
следние.
Триггеры (flip-flops)
Многие схемы выбирают значение на определенной линии в определенный мо-
мент времени и запоминают его. В такой схеме, которая называется
триггером,
166
Глава 3. Цифровой логический уровень
переход состояния происходит не тогда, когда синхронизирующий сигнал равен 1,
а во время перехода синхронизирующего сигнала с 0 на 1 (нарастающий фронт)
или с 1 на 0 (задний фронт). Следовательно, длина синхронизирующего импульса
не имеет значения, поскольку переходы происходят быстро.
Подчеркнем еще раз различие между триггером и защелкой. Триггер запускает-
ся фронтом сигнала, а защелка запускается уровнем сигнала. Обратите внима-
ние, что в литературе эти термины часто путаются. Многие авторы используют
термин «триггер», когда речь идет о защелке, и наоборот
1
.
Существует несколько подходов к разработке триггеров. Например, если бы
существовал способ генерирования очень короткого импульса на нарастающем фрон-
те синхронизирующего сигнала, этот импульс можно было бы подавать в D-за-
щелку. В действительности такой способ существует. Соответствующая схема по-
казана на рис. 3.24,
а.
Ь И с
Время
Рис. 3.24. Генератор импульса (а); временная диаграмма для четырехточекнасхеме(б)
На первый взгляд может показаться, что выход вентиля И всегда будет нуле-
вым, поскольку функция И от любого сигнала с его инверсией дает 0, но на самом
деле ситуация несколько более тонкая. При прохождении сигнала через инвертор
происходит небольшая, но все-таки не нулевая задержка. Данная схема работает
именно благодаря этой задержке. Предположим, что мы измеряем напряжение
в четырех точках а, Ь, с и d. Входовый сигнал в точке а представляет собой длинный
синхронизирующий импульс (см. нижний график на рис. 3.24,
б).
Сигнал в точке b
показан над ним. Отметим, что этот сигнал инвертирован и подается с некоторой
1
В отечественной литературе термин «защелка* (latch) не используется, i оворят о триггерах, Однако
при этом вводится понятие Т-триггера, который здесь называется настоящим триггером. —
Примеч.
научн. ред
Память
167
задержкой. Время задержки зависит от типа инвертора и обычно составляет не-
сколько наносекунд.
Сигнал в точке с тоже подается с задержкой, но эта задержка обусловлена толь-
ко временем прохождения сигнала (со скоростью света). Если физическое рассто-
яние между а и с, например, 20 микрон, тогда задержка на распространение сигна-
ла составляет 0,0001 не, что, конечно, незначительно по сравнению со временем,
которое требуется на прохождение сигнала через инвертор. Таким образом, сиг-
нал в точке с практически идентичен сигналу в точке а.
Когда входные сигналы b и с подвергаются операции И, в результате получает-
ся короткий импульс, длина которого (Д) равна вентильной задержке инвертора
(обычно 5 не и меньше). Выходной сигнал вентиля И — данный импульс, сдвину-
тый из-за задержки вентиля И (см. верхний график на рис. 3 24,
б).
Этот времен-
ной сдвиг означает только то, что D-защелка активизируется с определенной за-
держкой после нарастающего фронта синхронизирующего импульса Он никак не
влияет на длину импульса. В памяти со временем цикла в 50 не импульс в 5 не
(который сообщает, когда нужно выбирать линию D) достаточно короткий, и в этом
случае полная схема может быть такой, какая изображена на рис. 3.25. Следует
упомянуть, что такая схема триггера проста для понимания, но на практике обыч-
но используются более сложные триггеры.
Q
Рис. 3.25. D-триггер
Стандартные изображения защелок и триггеров показаны на рис 3 26 На рис.3 26,
а
изображена защелка, состояние которой загружается тогда, когда синхронизирующий
сигнал СК (от слова clock) равен 1, в противоположность защелке, изображенной
на рис. 3 26,
6,
у которой синхронизирующий сигнал обычно равен 1, но переходит
на 0, чтобы загрузить состояние из D. На рис. 3.26,
виг
изображены триггеры.
То, что это триггеры, а не защелки, показано с помощью уголка при синхронизиру-
ющем входе. Триггер на рис. 3.26,
в
изменяет состояние на возрастающем фронте
синхронизирующего импульса (переход от 0 к 1), тогда как триггер на рис 3 26,
г
изменяет состояние на заднем фронте (переход от 0 к 1). Многие (хотя не все)
защелки и триггеры также имеют выход
£
У, а у некоторых есть два дополнитель-
ных входа.
Set
(установка) или
Preset
(предварительная установка) и
Reset
(сброс)
или
Clear
(очистка). Первый вход
(Set
или
Preset)
устанавливает Q=l, а второй
(Reset или Clear) —
Q=0.