Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 16.10.2006 | Доступ: свободный | Студентов: 10263 / 3480 | Оценка: 4.50 / 4.16 | Длительность: 23:53:00
ISBN: 978-5-9556-0054-3
Специальности: Разработчик аппаратуры
Лекция 12:

Оперативная память

Функциональная схема памяти типа LIFO (рис. 12.7) проще по структуре, чем схема памяти FIFO, так как она содержит только один счетчик и не требует мультиплексирования. В данном случае считаем, что используется память с двунаправленной шиной входных/выходных данных.

Функциональная схема памяти типа LIFO

Рис. 12.7. Функциональная схема памяти типа LIFO

Счетчик адреса необходим реверсивный, с раздельными тактовыми входами прямого и обратного счета (например, ИЕ7). После проведения цикла записи по заднему фронту сигнала "–Зап." счетчик увеличивает свой выходной код (адрес памяти) на единицу. Перед проведением цикла чтения по переднему фронту сигнала "–Чт." счетчик уменьшает свой выходной код на единицу. Такая организация перебора адресов позволяет организовать чтение из памяти в порядке, обратном порядку записи в память.

Например, пусть исходное состояние счетчика 2. Пусть мы производим три цикла записи: первый - в адрес 2, второй - в адрес 3, третий - в адрес 4. После третьего цикла записи счетчик будет выдавать код 5. Затем проведем три цикла чтения: первый - из адреса 4 (перед чтением адрес уменьшился на единицу), второй - из адреса 3, третий - из адреса 2. После третьего цикла чтения счетчик будет выдавать код 2. Мы вернулись в исходное состояние, прочитав записанную информацию в обратном порядке.

Исходное состояние счетчика в данной схеме вообще-то не слишком важно, так как не важен текущий адрес памяти, в который производится запись и из которого потом производится чтение. Однако в случае, когда используется начальный сброс счетчика в нулевое состояние (по сигналу "Сброс"), можно довольно просто организовать контроль за переполнением памяти LIFO из-за слишком большого количества записанной в нее информации. Для контроля переполнения можно использовать выходной сигнал переноса старшего счетчика (>15).

Временные диаграммы циклов записи и чтения приведены на рис. 12.8.

В цикле записи по сигналу "-Зап." открывается входной буфер АП5 и входные (записываемые) данные поступают на входы/выходы памяти. Одновременно по этому же сигналу память переходит в режим записи. В результате в текущий адрес памяти записываются входные данные, после чего адрес увеличивается на единицу. Входные данные должны начинаться до начала сигнала "-Зап." и заканчиваться после его конца.

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

Временные диаграммы циклов записи (а) и чтения (б) для памяти типа LIFO

Рис. 12.8. Временные диаграммы циклов записи (а) и чтения (б) для памяти типа LIFO

Условия правильной работы схемы следующие. Длительность сигнала записи должна быть не меньше минимально допустимой длительности сигнала –WR памяти. Период следования сигналов "–Зап." не должен быть меньше суммы времени срабатывания счетчиков и длительности сигнала "–Зап.". Длительность сигнала чтения должна быть не меньше суммы времени срабатывания счетчика, времени выборки адреса памяти и задержки выходного буфера данных. Период следования сигналов "–Чт." также не должен быть меньше этой же суммы. Память должна быть нетактируемой, например, КР541РУ2.

Наконец, третий тип памяти для временного хранения данных - память для хранения массивов данных. Рассмотрим вариант схемы такой памяти типа FIFO (рис. 12.9).

Адреса памяти в данном случае задаются одним единственным счетчиком, который работает в режиме только прямого счета. Перед началом работы необходимо сбросить счетчик (сигнал "Сброс"). Затем производится запись массива данных. При этом после каждого цикла записи по заднему фронту сигнала "–Зап." выходной код счетчика увеличивается на единицу. После окончания записи всего массива снова надо сбросить счетчик в нуль (сигнал "Сброс"), а затем производить чтение массива, начиная с нулевого адреса. При этом после каждого цикла чтения по заднему фронту сигнала "–Чт." выходной код счетчика опять же увеличивается на единицу. В результате массив данных читается в том же порядке, что и был записан. Контроль за длиной записываемого и читаемого массивов возлагается на внешнее по отношению к приведенной схеме устройство.

Функциональная схема памяти для хранения массивов данных

Рис. 12.9. Функциональная схема памяти для хранения массивов данных

Для данной схемы должна использоваться нетактируемая память (например, КР541РУ2) с двунаправленной шиной входных/выходных данных. Считаем, что данные подаются на схему и читаются из схемы также по двунаправленной шине данных. Между памятью и этой шиной включается двунаправленный буфер (типа АП6), который может понадобиться, например, для обеспечения большого выходного тока и малого входного тока со стороны внешней двунаправленной шины данных (это типичная ситуация при построении микропроцессорных и компьютерных систем). Буфер этот открывается на передачу данных в память по сигналу "–Зап." (сигнал –EZ становится равным нулю, сигнал T также нулевой) и открывается для чтения данных из памяти по сигналу "–Чт." (сигнал –EZ становится равным нулю, сигнал T равен единице).

Условия правильной работы схемы следующие. Длительность сигнала записи "–Зап." должна быть не менее минимальной длительности сигнала –WR памяти. Входные (записываемые) данные должны начинаться до начала сигнала "–Зап.", а заканчиваться после его окончания. Длительность сигнала чтения "–Чт." не должна быть меньше суммы задержки буфера и времени выборки адреса памяти. Действительными читаемые данные будут по заднему фронту сигнала "–Чт.". За период следования сигналов "–Зап." и "–Чт." схема должна успевать выполнить операцию записи и чтения соответственно, кроме того, должен успеть полностью переключиться счетчик адреса памяти.

Али Анарбек
Али Анарбек
Илья Леонтьев
Илья Леонтьев

по заданию преподавателя, надо после каждого теста делать скриншот, но я решил вначале сделать все тесты, а потом делать скрин и теперь не могу вообще зайти в эти тесты