Э. Таненбаум - Архитектура компьютера (1127755), страница 47
Текст из файла (страница 47)
Наш вывод прост: при л = 5 = 0 защелка имеет два устойчивых состояния, которые мы будем называть 0 и 1 в зависимости от ф А сейчас давайте рассмотрим действие входных сигналов на состояние защелки. Предположим, что 5 принимает значение 1, в то время как Я = О. Тогда входные сигналы верхнего вентиля равны 1 и О, что ведет к выходному сигналу 0 = О. Это изменение делает оба входа в нижний вентиль равными О, и, следовательно, выходной сигнал равняется 1. Таким образом, установка 5 в значение 1 переключает состояние с 0 на 1. Установка Я в значение 1, когда защелка находится в состоянии О, не вызывает изменений, поскольку выход нижнего вентиля НЕ-ИЛИ равен 0 как для входов 10, так и для входов 11.
Использовав подобную аргументацию, легко увидеть, что установка 5 в значение 1 при состоянии защелки 1 (то есть при Я = 1) не вызывает изменений, но установка )т в значение 1 приводит к изменению состояния защелки. Таким образом, если 5 принимает значение 1, то Я равняется 1 независимо от предыдущего состояния защелки. Сходным образом переход Я в значение 1 вызывает Я = О. Схема «запоминает», какой сигнал был последним: 5 или Я. Используя это свойство, мы можем строить компьютерную память. Синхронные Зй-защелки Часто удобно, чтобы защелка меняла состояние только в определенные моменты.
Чтобы достичь этой цели, немного изменим основную схему и получим синхронную БК-защелку (рис 3.22). Тактовый П генератор Рис. 3.22. Синхронная ЗН-защелке Эта схема имеет дополнительный синхронизирующий вход, который по большей части равен О. Если этот вход равен О, то оба выхода вентилей И равны О, и независимо от значений 5 и тт' защелка не меняет свое состояние.
Когда значе- Память 187 ние синхронизирующего входа равно 1, действие вентилей И прекращается, и состояние защелки становится зависимым от 5 и Я. Для обозначения факта появления единицы на синхронизирующем входе часто используются термины включение и стробирование. До сих пор мы не выясняли, что происходит, когда 5 = Д = 1. И по понятным причинам: когда и Я, и 5 в конце концов возвращаются к О, схема становится не- детерминированной. Единственное приемлемое состояние при 5 = А = 1 — зто Ц = (1 = О, но как только оба входа возвращаются к О, защелка должна перейти в одно из двух устойчивых состояний.
Если один из входов принимает значение О раныпе, чем другой, оставшийся в состоянии 1 «побеждает», потому что именно единичный вход управляет состоянием защелки. Если оба входа переходят к О одновременно (что очень маловероятно), защелка выбирает одно из своих устойчивых состояний произвольным образом. Синхронные 0-защелки Чтобы разрешить ситуацию с неопределенностью БК-защелки (неопределенность возникает в случае, если 5 = Я = 1), нужно не дать ей возникнуть. На рис. 3.23 изображена схема защелки только с одним входом Р. Так как входной сигнал в нижний вентиль И всегда является обратным кодом входного сигнала в верхний вентиль И, ситуация, когда оба входа равны 1, никогда не возникает.
Когда В = 1 и синхронизирующий вход равен 1, защелка переходит в состояние Я = 1. Когда 1) = О и синхронизирующий вход равен 1, защелка переходит в состояние Я = О. Другими словами, когда синхронизирующий вход равен 1, текущее значение й отбирается и сохраняется в защелке.
Такая схема, которая называется синхронной Р-защелкой, представляет собой память объемом 1 бит. Сохраненное значение всегда доступно на выходе ф Чтобы загрузить в память текущее значение )3, нужно пустить положительный импульс по линии синхронизирующего сигнала. Рис. 3.23.
Синхронная 0-защелка Такая схема требует 11 транзисторов. Более сложные схемы (именно они обычно используются на практике) могут хранить 1 бит всего на 6 транзисторах. Триггеры Многие схемы при необходимости выбирают значение на определенной линии в заданный момент времени и запоминают его, В такой схеме, которая называется триггером (Й1р-1)ор), смена состояния происходит не тогда, когда синхронизи- 188 Глава 3. Цифровой логический уровень рующий сигнал равен 1, а при переходе синхронизирующего сигнала с О на 1 (фронт) или с 1 на О (спад).
Следовательно, длина синхронизирующего импульса не имеет значения, поскольку переходы происходят быстро. Подчеркнем еще раз различие между триггером и защелкой. Триггер запускается перепадом сигнала, а защелка запускается уровнем сигнала. Обратите внимание, что в литературе эти термины часто путают. Многие авторы используют термин «триггер», когда речь идет о защелке, и наоборот'. Существуют несколько подходов к разработке триггеров.
Например, если бы существовал способ генерирования очень короткого импульса на фронте синхронизирующего сигнала, этот импульс можно было бы подавать в П-защелку. В действительности такой способ существует. Соответствующая схема показана на рис. 3.24, а. ьис Время †ь- Рис. 3.24. Генератор импульса (е); временная диаграмма для четырех точек не схеме (б) На первый взгляд может показаться, что выход вентиля И всегда будет нулевым, поскольку функция И от любого сигнала с его инверсией дает О, но на самом деле ситуация несколько сложнее.
При прохождении сигнала через инвертор происходит небольшая, но все-таки не нулевая задержка. Данная схема работает именно благодаря этой задержке. Предположим, мы измеряем напряжение в четырех точках: а, Ь, с и с(. Входной сигнал в точке а представляет собой длинный синхронизирующий импульс (нижний график на рис. 3.24, б). Сигнал в точке Ь показан над ним.
Отметим, что этот сигнал инвертирован и подается ' В отечественной литературе термин «защелка» ()ассп) вообще не используется, говорят о триггерах. Однако при этом вводится понятие Т-триггера, который и является «настоящим» триггером. — Примеч. научи. ред. Память 189 с некоторой задержкой. Время задержки зависит от типа инвертора и обычно составляет несколько наносекунд. Сигнал в точке с тоже подается с задержкой, но эта задержка обусловлена только временем прохождения сигнала (со скоростью света). Если физическое расстояние между точками а и с составляет, например, 20 микрон, тогда задержка на распространение сигнала равна 0,0001 нс, что, конечно, незначительно по сравнению с временем прохождения сигнала через инвертор. Таким образом, сигнал в точке с практически идентичен сигналу в точке а.
Когда входные сигналы Ь и с подвергаются операции И, в результате получается короткий импульс, длина которого (Ь) равна вентильной задержке инвертора (обычно 5 нс и ниже). Выходной сигнал вентиля И вЂ” данный импульс, сдвинутый из-за задержки вентиля И (верхний график на рис. 3.24, б). Этот временной сдвиг означает только то, что В-защелка активизируется с определенной задержкой после фронта синхронизирующего импульса. Он никак не влияет на длину импульса. В памяти со временем цикла в 50 нс импульс в 5 нс (который сообщает, когда нужно выбирать линию .О) достаточно короткий, и в этом случае полная схема может быть такой, как на рис.
3.25. Следует упомянуть, что такая схема триггера проста для понимания, но на практике обычно используются более сложные триггеры. Рис. 3.26. П-триггер Стандартные обозначения защелок и триггеров показаны на рис. 3.26. На рис. 3.26, а изображена защелка, состояние которой загружается тогда, когда синхронизирующий сигнал СК (от слова с1оск) равен 1, в противоположность защелке, изображенной на рис. 3.26, б, у которой синхронизирующий сигнал обычно равен 1, но переходит на О, чтобы загрузить состояние из линии П. На рис. 3.26, в и г изображены триггеры. О том, что это триггеры, а не защелки, говорит уголок на синхронизирующем входе. Трипер на рис. 3.26, в изменяет состояние на фронте синхронизирующего импульса (переход от 0 к 1), тогда как триггер на рис.
3.26, г изменяет состояние на спаде (переход от 0 к 1). Многие (хотя не все) защелки и триггеры также имеют выход Я а у некоторых есть два дополнительных входа: Бет (установка) или Ргезет (предварительная установка) и Везет (сброс) или С1еаг (очистка). Первый вход (Бес или Ргезет) устанавливает Я = 1, а второй (Везет нли С1еаг) — Я = О. 190 Глава 3. Цифровой логический уровень Рие. 3.2Е. П-защелки и П-триггеры Регистры Существуют различные конфигурации триггеров. На рис.
3.27, а изображена схема, содержащая два независимых В-триггера с сигналами предварительной установки и очистки. Хотя эти два триггера находятся на одной микросхеме с 14 выводами, они не связаны между собой. Совершенно по-другому устроен «восьмикратный» триггер, изображенный на рис. 3.27, б. Здесь, в отличие от предыдущей схемы, у восьми триггеров нет выхода Я и линий предварительной установки, а все синхронизнрующие линии связаны вместе и управляются выводом 11. Сами три1теры того же типа, что и на рис. 3.28, г, но инвертирующие входы аннулируются инвертором, связанным с выводом 11, поэтому триггеры запускаются при переходе от О к 1.
Все восемь сигналов очистки тоже объединены, поэтому когда вывод 1 переходит в состояние О, все триггеры переходят в состояние О. Вели вам не понятно, почему вывод 11 инвертируется на входе, а затем инвертируется снова при каждом сигнале СК, то ответ прост: входной сигнал не имеет достаточной мощности, чтобы запустить все восемь триггеров; входной инвертор на самом деле используется в качестве усилителя. Одна из причин объединения линий синхронизации и линий очистки в микросхеме на рис. 3.27, б — экономия выводов. В то же время микросхема данной конфигурации несколько отличается от восьми не связанных между собой триггеров и используется в качестве одного 8-разрядного регистра.
Две такие микросхемы могут работать параллельно, образуя 16-разрядный регистр. Для этого нужно связать соответствующие выводы 1 и 11. Регистры и их применение мы рассмотрим более подробно в главе 4. Организация памяти Хотя мы и совершили переход от простой памяти емкостью 1 бит (см. рис. 3.23) к 8-разрядной памяти (см. рис. 3.2?, б), чтобы построить память большого объема, требуется другой способ организации, при котором можно обращаться к отдельным словам. Пример организации памяти, которая удовлетворяет этому критерию, показан на рис. 3.28. Эта память содержит четыре 3-разрядных слова.
Каждая операция считывает или записывает целое 3-разрядное слово. Хотя общий объем памяти (12 бит) не намного больше, чем у 8-разрядного триггера, та- Память 1 91 кая память требует меньшего количества выводов и, что особенно важно, подобная организация применима для построения памяти большого объема. исс Земля мсс Земля Рис. 3.27. Сдвоенный 0-триггер (а), «восьмикратный» триггер (б) 192 Глава 3. Цифровой логический уровень Входные данные й ~2 ~з А1 Ас О1 НО Ог Оз ОЕ Разрешение вывода = СЗ НО ° ОЕ Рис. 3.28. Логическая блок-схема для памяти 4 х 3.