Титульная страница Лабораторный практикум Программа Дополнительно
 Учебное пособие
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Учебное пособие -> Глава 10. Цифровой логический уровень: организация памяти

 

Глава 10. Цифровой логический уровень: организация памяти

Защелки

Чтобы создать один бит памяти, нужна схема, которая каким-то образом ««запоминает» предыдущие входные значения. Такую схему можно сконструировать из двух вентилей НЕ-ИЛИ:

Рисунок 1 – SR-защелка НЕ-ИЛИ в состоянии 0 (а); защелка НЕ-ИЛИ в состоянии 1 (б)

 

Аналогичные схемы можно построить и из других вентилей.

 

У SR-защелки есть два входа: S (Setting — установка) и R (Resetting — сброс), а также есть два комплиментарных выхода: Q и . В отличие от комбинаторной схемы, выходные сигналы защелки не определяются текущими входными сигналами.

Предположим, что S = 0 и R = 0 (вообще сигнал на этих входах равен 0 большую часть времени). Предположим также, что Q=0. Так как Q возвращается в верхний вентиль НЕ-ИЛИ и оба входа этого вентиля равны 0, то его выход, , равен 1. Единица возвращается в нижний вентиль, у которого в итоге один вход равен 0, другой — 1, а на выходе получается Q = 0. Такое положение вещей  состоятельно .

Другая ситуация: Q = 1, a R=0 и S=0 . Верхний вентиль имеет входы 0 и 1 и выход  (то есть 0), который возвращается в нижний вентиль. Такое положение вещей также состоятельно.

Положение, когда оба выхода равны 0, не состоятельно, поскольку в этом случае оба вентиля имели бы на входе два нуля, что привело бы к единице на выходе, а не к нулю. Точно так же невозможно иметь оба выхода равные 1, поскольку это привело бы к входным сигналам 0 и 1, что вызывает на выходе 0, а не 1.

Вывод: при R = S = 0 защелка имеет два устойчивых состояния, которые обозначим 0 и 1 в зависимости от Q.

Рассмотрим действие входных сигналов на состояние SR-защелки. Предположим, S принимает значение 1, в то время как Q = 0. Тогда входные сигналы верхнего вентиля равны 1 и 0, что ведет к выходному сигналу =0. Это изменение делает оба входа в нижний вентиль равными 0, и, следовательно, выходной сигнал равняется 1. Таким образом, установка S в значение 1 переключает состояние с 0 на 1. Установка R в значение 1, когда защелка находится в состоянии 0, не вызывает изменений, поскольку выход нижнего вентиля НЕ-ИЛИ равен 0 как для входов 10, так и для входов 11.

Следовательно, установка S в значение 1 при состоянии защелки 1 (Q=1) не вызывает изменений, но установка R в значение 1 приводит к изменению состояния защелки. Таким образом, если S принимает значение 1, то Q равняется 1 независимо от предыдущего состояния защелки. Сходным образом переход R в значение 1 вызывает Q = 0.

Вывод: схема «запоминает», какой сигнал был последним: S или R. Используя это свойство, можно строить компьютерную память.

 

 

 

Синхронные SR-защелки

Часто удобно, чтобы защелка меняла состояние только в определенные моменты времени. Чтобы достичь этой цели, необходимо изменить основную схему и в результате получим синхронную SR-защелку:

 

Данная схема имеет дополнительный синхронизирующий вход, который по большей части равен 0.

Если вход равен 0, то оба выхода вентилей И равны 0, и независимо от значений S и R защелка не меняет свое состояние. Когда значение синхронизирующего входа равно 1, действие вентилей И прекращается, и состояние защелки становится зависимым от S и R.

Для обозначения факта появления единицы на синхронизирующем входе часто используются термины включение и стробирование.

Предположим, S = R = 1. Единственное приемлемое состояние при S = R = 1 - это Q =  = 0, но как только оба входа возвращаются к 0, защелка должна перейти в одно из двух устойчивых состояний. Если один из входов принимает значение 0 раньше, чем другой, оставшийся в состоянии 1 «побеждает», потому что именно единичный вход управляет состоянием защелки. Если оба входа переходят к 0 одновременно (что очень маловероятно), защелка выбирает одно из своих устойчивых состояний произвольным образом.

 

Синхронные D-защелки

Чтобы разрешить ситуацию с неопределенностью SR-защелки в случае, если S = R= 1, нужно не дать ей возникнуть. На рисунке изображена схема защелки только с одним входом D.

Так как входной сигнал в  нижний вентиль И всегда является обратным кодом входного сигнала в верхний вентиль И, ситуация, когда оба входа равны 1, никогда не возникает.

Когда D = 1 и синхронизирующий вход равен 1, защелка переходит в состояние Q = 1.

Когда D = 0 и синхронизирующий вход равен 1, защелка переходит в состояние Q = 0.

В результате, когда синхронизирующий вход равен 1, текущее значение D отбирается и сохраняется в защелке. Такая схема называется синхронной D-защелкой и представляет собой память объемом 1 бит. Сохраненное значение всегда доступно на выходе Q. Чтобы загрузить в память текущее значение D нужно пустить положительный импульс по линии синхронизирующего сигнала.

Такая схема требует 11 транзисторов для хранения 1 бит памяти.

 

Триггеры

В схеме триггер смена состояния происходит при переходе синхронизирующего сигнала с 0 на 1 (фронт) или с 1 на 0 (спад). При этом длина синхронизирующего импульса не имеет значения, поскольку переходы происходят быстро.

Различие между триггером и защелкой:

-       триггер запускается перепадом сигнала

-       защелка запускается уровнем сигнала.

 

На рисунке представлена схема генерирования очень короткого импульса на фронте синхронизирующего сигнала.

Этот импульс можно подавать в D-защелку.

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

Предположим, что мы измеряем напряжение в четырех точках: a, b, c и d. Входной сигнал в точке a представляет собой длинный синхронизирующий импульс. Сигнал в точке b показан над ним. Отметим, что этот сигнал инвертирован и подается с некоторой задержкой. Время задержки зависит от типа инвертора и обычно составляет несколько наносекунд.

Сигнал в точке с тоже подается с задержкой, но эта задержка обусловлена только временем прохождения сигнала (со скоростью света). Если физическое расстояние между точками а и с составляет, например, 20 мкм, тогда задержка на распространение сигнала равна 0,0001 нс. Таким образом, сигнал в точке с практически идентичен сигналу в точке а.

Когда входные сигналы b и с подвергаются операции И, в результате получается короткий импульс, длина которого (D) равна вентильной задержке инвертора (обычно 5 нс и ниже). Выходной сигнал вентиля И — данный импульс, сдвинутый из-за задержки вентиля И. Этот временной сдвиг означает только то, что D-защелка активизируется с определенной задержкой после фронта синхронизирующего импульса. Он никак не влияет

на длину импульса.

Рисунок 2 – временная диаграмма для четырех точек

 

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

Рисунок 3 - D-триггер

 

Стандартные обозначения защелок и триггеров показаны на рисунке:

Рисунок 4 - D-защелки и D-триггеры

 

(a) - защелка, состояние которой загружается тогда, когда синхронизирующий сигнал СК (clock) равен 1.

(b) - защелка, у которой синхронизирующий сигнал обычно равен 1, но переходит на 0, чтобы загрузить состояние из линии D.

(c) – триггер, изменяет состояние на фронте синхронизирующего импульса (переход от 0 к 1)

(d) – триггеры, изменяет состояние на спаде (переход от 0 к 1).

Защелки и триггеры также имеют выход Q, а у некоторых есть два дополнительных входа: Set (установка) или Preset (предварительная установка) и Reset (сброс) или Clear (очистка). Первый вход (Set или Preset) устанавливает Q = 1, а второй (Reset или Clear) — Q = 0.

 

Организация памяти

Пример организации памяти, которая содержит четыре 3-разрядных слова. Каждая операция считывает или записывает целое 3-разрядное слово. Общий объем памяти -12 бит.

Рисунок 5 - Логическая блок-схема для памяти 4x3. Каждый ряд представляет одно из 3-разрядных слов. При считывании и записи всегда считывается или записывается целое слово

Организация памяти очень проста благодаря своей регулярной структуре. Микросхема содержит 8 входных линий, в частности 3 входа для данных — ,  и ; 2 входа для адресов —  и ; 3 входа для управления — CS (Chip Select — выбор элемента памяти), RD (ReaD — чтение, этот сигнал позволяет отличать считывание от записи) и ОЕ (Output Enable — разрешение выдачи выходных сигналов), а также 3 выходные линии для данных — ,  и . Такую память в принципе можно поместить в корпус с 14 выводами (включая питание и землю).

Чтобы выбрать микросхему памяти, внешняя логика должна установить сигнал CS в 1, а также установить сигнал RD в 1 для чтения и в 0 для записи. Две адресные линии должны указывать, какое из четырех 3- разрядных слов нужно считывать или записывать. При считывании входные линии для данных не используются. Выбирается слово и помещается на выходные линии для данных. При записи биты, находящиеся на входных линиях для данных, загружаются в выбранное слово памяти; выходные линии при этом не используются.

Работа памяти (запись):

1.     Четыре вентиля И для выбора слов в левой части схемы формируют декодер.

2.     Входные инверторы расположены так, что каждый вентиль запускается определенным адресом.

3.     Каждый вентиль приводит в действие линию выбора слов (для слов 0, 1, 2 и 3).

4.     Когда микросхема должна производить запись, вертикальная линия CS-RD получает значение 1, запуская один из четырех вентилей записи.

5.     Выбор вентиля зависит от того, какая именно линия выбора слов равна 1.

6.     Выходной сигнал вентиля записи приводит в действие все сигналы СК для выбранного слова, загружая входные данные в триггеры для этого слова. Запись производится только в том случае, если сигнал CS равен 1, a RD — 0, при этом записывается только слово, выбранное адресами  и , остальные слова не меняются.

Работа памяти (считывание):

1.     Декодирование адреса происходит точно так же, как и при записи. Но в данном случае линия CS-RD принимает значение 0, поэтому все вентили записи блокируются, и ни один из триггеров не меняется.

2.     Вместо этого линия выбора слов запускает вентили И, связанные с битами Q выбранного слова.

3.     Выбранное слово передает свои данные в 4-входовые вентили ИЛИ, расположенные в нижней части схемы, а остальные три слова выдают 0. Следовательно, выход вентилей ИЛИ идентичен значению, сохраненному в данном слове.

4.     Остальные три слова никак не влияют на выходные данные.

 

 
Завозкин С.Ю., Трофимов С.Н. "Архитектура вычислительных систем"