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

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

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

Более сложную структуру имеет двунаправленный буфер с периодическим режимом обмена типа LIFO. Он позволяет выдавать и принимать массивы данных произвольной длины (а не фиксированной длины, как в предыдущем случае) с заданной скоростью. Такая задача возникает, в частности, при проектировании адаптеров локальных сетей. Несмотря на то, что данные читаются из буфера в порядке, обратном тому, в котором они были записаны в буфер, на обмене информацией между двумя буферами это никак не отражается.

Пусть, например, устройство 1 передает информацию в устройство 2, а в качестве промежуточного устройства (устройство 3) выступает кабель сети (рис. 12.13).

Обмен между двумя устройствами через два буфера типа LIFO

Рис. 12.13. Обмен между двумя устройствами через два буфера типа LIFO

Устройство 1 записывает в буфер 1 массив в прямом порядке, буфер 1 выдает этот массив в устройство 3 (сеть) в обратном порядке, буфер 2 принимает массив из сети в обратном порядке, а устройство 2 читает принятую информацию опять же в прямом порядке: то есть читается информация в том же порядке, в каком она и писалась. То же самое происходит и при передаче информации из устройства 2 в устройство 1.

Схема буфера LIFO (рис. 12.14) включает в себя, помимо памяти и двунаправленного буфера, реверсивный счетчик (типа ИЕ7) и реверсивный регистр сдвига (типа ИР24), служащий для преобразования параллельного кода в последовательный при передаче в сеть и последовательного кода в параллельный при приеме из сети. Режимы работы буфера задаются двумя триггерами, один из которых разрешает режим передачи в сеть, а другой - режим приема из сети.

Двунаправленный буфер типа LIFO

Рис. 12.14. Двунаправленный буфер типа LIFO

Перед началом работы оба триггера сброшены в нуль, счетчик также сброшен в нуль сигналом "Сброс". Сначала в память записывается передаваемый в сеть массив данных. Запись производится сигналом "–Зап.", задний фронт которого увеличивает выходной код счетчика (адрес памяти) на единицу. После окончания записи массива сигналом "Разр.пер." разрешается передача массива в сеть. В режиме передачи по сигналу строба передачи (TxC) перебираются адреса памяти в обратном порядке (счетчик работает в режиме обратного счета). Данные, читаемые из памяти, записываются в сдвиговый регистр и выдаются в сеть в последовательном коде (TxD). После того как счетчик досчитает до нуля, вырабатывается сигнал переноса <0, который сбрасывает в нуль триггер передачи. То есть в сеть выдается весь массив, записанный в память, независимо от его длины, причем массив выдается в обратном порядке.

В режиме приема информации из сети записывается единица в триггер разрешения приема по сигналу "Разр. пр.". Принимаемые из сети данные в последовательном коде RxD записываются в сдвиговый регистр, а из него уже в параллельном коде - в память. Запись производится по сигналу строба приема RxC, задним фронтом которого переключается счетчик, работающий в режиме инверсного счета. После окончания приема по сигналу "Конец приема" сбрасывается триггер разрешения приема. После этого производится чтение информации из памяти по сигналу "–Чт.". Задним фронтом этого сигнала переключается счетчик, работающий в режиме прямого счета. То есть массив читается в порядке, обратном тому, в котором он пришел из сети.

Условия правильной работы данной схемы аналогичны тем, что были сформулированы для предыдущих рассмотренных схем буферов. Сигналы стробов записи и чтения должны иметь такую длительность, чтобы осуществлять соответственно запись в память и чтение из памяти. Период следования этих сигналов должен быть таким, чтобы успевали производиться операции записи и чтения, а также успевал переключаться счетчик.

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

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

Передающий буфер с непрерывным режимом работы

Рис. 12.15. Передающий буфер с непрерывным режимом работы

Счетчик чтения непрерывно перебирает адреса памяти с частотой тактового генератора. Читаемая из памяти информация записывается в выходной регистр и выдается на выход. В момент записи по сигналу "–Зап." мультиплексор подает на адресные входы памяти выходной код счетчика записи. На память подается сигнал –WR, вложенный в сигнал "–Зап." (он начинается после начала сигнала "–Зап." и заканчивается раньше этого сигнала ). Это достигается применением цепочки из двух инверторов и элемента 2И-НЕ. Такая последовательность сигналов позволяет записать в память входные данные по адресу записи со счетчика записи и не изменять содержимое ячеек памяти с другими адресами.

Перед началом записи памяти счетчик записи сбрасывается в нуль по сигналу "Сброс". После каждой операции записи по заднему фронту сигнала "–Зап." код на выходе счетчика записи увеличивается на единицу. То есть для того чтобы записать всю память, необходимо сбросить счетчик и произвести столько циклов записи, сколько ячеек имеется в памяти.

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

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

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

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

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

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