Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Разновидности ОЗУ по доступу к информации




В зависимости от того, в каком порядке может записываться или читаться информация, существуют две разновидности ОЗУ:

· ОЗУ с параллельным или произвольным доступом (это наиболее универсальная схема);

· ОЗУ с последовательным доступом (это более специфическая схема).

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

Последовательный доступ к памяти предполагает более простой порядок общения с памятью. В этом случае не надо задавать код адреса записываемой или читаемой ячейки, так как адрес памяти формируется схемой автоматически. Для записи информации надо всего лишь подать код записываемых данных и сопроводить его стробом записи. Для чтения информации надо подать строб чтения и получить читаемые данные. Автоматическое задание адреса при этом осуществляется внутренними счетчиками, меняющими свое состояние по каждому обращению к памяти. Например, десять последовательных циклов записи запишут информацию в десять последовательно расположенных ячеек памяти. Недостаток такого подхода очевиден: мы не имеем возможности записывать или читать ячейки с произвольными адресами в любом порядке. Зато существенно упрощается и ускоряется процедура обмена с памятью (запись и чтение). И самое главное – в микропроцессорных системах широко используется последовательный доступ для реализации некоторых функциональных возможностей. Поэтому в данном разделе будут рассмотрены некоторые типы ОЗУ с последовательным доступом.

Можно выделить два основных типа оперативной памяти с последовательным доступом:

· память типа «первым вошел – первым вышел» (FIFO, First In – First Out);

· память типа «последним вошел – первым вышел» (LIFO, Last In – First Out).

Два первых типа памяти подразумевают возможность чередования операций записи и чтения в памяти. При этом память FIFO выдает читаемые данные в том же порядке, в котором они были записаны, а память LIFO – в порядке, обратном тому, в котором они были записаны в память. Память FIFO можно сравнить со сдвиговым регистром, на выходе которого данные появляются в том же порядке, в котором они были в него записаны. А память LIFO обычно сравнивают с магазином для подачи патронов в автомате или пистолете, в котором первым выдается патрон, вставленный в магазин последним.

Для памяти FIFO требуется хранение двух кодов адреса (адрес для записи и адрес для чтения), для памяти LIFO достаточно одного кода адреса.

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

Хранение массивов в памяти предполагает, что сначала в память записывается целиком большой массив данных, а потом этот же массив целиком читается из памяти. Эта память также может быть устроена по двум принципам (FIFO и LIFO). В первом случае (FIFO) записанный массив читается в том же порядке, в котором и был записан, во втором случае (LIFO) – в противоположном порядке (начиная с конца). В обоих этих случаях для общения с памятью требуется хранить только один код адреса памяти.

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

На Рис. 1.13 представлена функциональная схема памяти типа FIFO. В данном примере реализована память типа FIFO с организацией 256х8.

 

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

Адрес ячейки памяти к которой осуществляется обращение задается двумя счетчиками – «счетчиком записи» (D1) и «счетчиком чтения» (D2), выходные коды которых мультиплексируются с помощью буферов (D3, D4). Запись данных в память осуществляется по сигналу WR, чтение данных из памяти – по сигналу чтение RD. Задний фронтом сигнала WR переключает «счетчик записи» (значение счетчика увеличивается на 1), а задний фронт сигнала RD переключает «счетчик чтения» (значение счетчика увеличивается на 1). В результате чего каждая последующая запись осуществляется в следующую по порядку ячейку памяти. Точно так же каждое последующее чтение производится из следующей по порядку ячейки памяти.

По сигналу WR производится запись входных данных по адресу определяемым «счетчиком записи», т.к. передача данных от входа к выходу разрешена буферу D3 (сигнал WR подается на вход разрешения выхода OE буфера D3). Входные (записываемые) данные должны выставляться раньше начала сигнала WR, и удерживаться до окончания сигнала WR

По сигналу RD производится чтение данных по адресу определяемым «счетчиком чтения», т.к. передача данных от входа к выходу разрешена буферу D4 (сигнал RD подается на вход разрешения выхода OE буфера D4). Содержимое ячейки памяти будет присутствовать на шине данных во время сигнала RD.

Следует отметить, что для корректной работы необходимо обеспечить начало записи и начало чтения по одному и тому же адресу (запись и чтение с одной и той же ячейки памяти). Реализовать это можно установив «счетчик записи» и «счетчик чтения» в ноль сигналом RESET.

Запись начинается с нулевого адреса памяти и производится по последовательно нарастающим адресам. Точно так же чтение начинается с нулевого адреса памяти и производится по последовательно нарастающим адресам. Операции записи и чтения могут чередоваться. Временные диаграммы циклов записи и чтения показаны на Рис. 1.14.

 

Рис. 1.14 Временная диаграмма работы памяти типа FIFO

Функциональная схема памяти типа LIFO представлена на Рис. 1.15. Для ее реализации необходим реверсивный счетчик, с раздельными тактовыми входами прямого и обратного счета. Этот счетчик одновременно выполняет функцию «счетчика записи» и «счетчика чтения».

 

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

После проведения цикла записи по заднему фронту сигнала WR счетчик увеличивает свой выходной код (адрес ячейки памяти) на единицу. Перед проведением цикла чтения по переднему фронту сигнала RD счетчик уменьшает свой выходной код (адрес ячейки памяти) на единицу. Такая организация перебора адресов (ячеек памяти) позволяет организовать чтение из памяти в порядке, обратном порядку записи в память.

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

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

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

 

Рис. 1.16 Временная диаграмма записи-чтения памяти типа LIFO

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

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...