Память с последовательным доступом

Как отмечалось выше, в микропроцессорных системах широко применяется память, действующая по двум принципам – FIFO и L1FO.

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

В качестве примера на рис. 7.6 приведена логическая схема регистрового файла типа ИР-26 (или матрицы памяти К155РП1), содержащего:

  • четыре файл-регистра, каждый из которых позволяет хранить 4-разрядное слово, имеет 4-разрядный вход для записи данных, два перемножающих входа разрешения записи и четыре выхода данных, где j – порядковый номер выхода (), / – порядковый номер регистра ();
  • логические элементы 1 + 5, предназначенные для управления входами &.ЕрегистровВ режиме записи на входы логических элементов подаются два адресных сигнала –и, а также сигнал разрешения записи;
  • инверторы 6 -г 9 и логические элементы 4И–ИЛ И–НЕ, выполняющие функции 4-разрядного мультиплексора, позволяющего вывести на выход содержимое одного из регистровв режиме чтения согласно выбранному адресному коду;
  • четыре логических элемента 2И–НЕ (11, 12, 13, 14), предназначенных для разрешения вывода слова данных(файла) при из регистрового файла или перевода регистрового файла в Z-состояние при

Рассмотрим работу регистрового файла в режимах записи и чтения. Режим записи. На основании схемы, приведенной на рис. 7.6, составим выражения для сигналов разрешения записи регистров

(1)

Запись данных в регистры происходит, если произведение сигналов разрешения равно 1. Используя (1), запишем выражения для произведений сигналов разрешения:

(2)

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

Схема регистрового файла

Рис. 7.6. Схема регистрового файла

Таблица 7.1

0

0

0

1

0

0

0

0

0

1

0

1

0

0

0

1

0

0

0

1

0

0

1

1

0

0

0

1

1

Ф

ф

ф

ф

ф

ф

В табл. 7.1 обозначено:– четырехразрядное слово, хранимое в i-м регистре (), i – порядковый номер регистра (i = 0, 1, 2, 3);– предыдущее состояние регистра.

Режим считывания. Если на вход разрешения считывания подан сигнал активного низкого уровня RE# = 0, то логические элементы 11÷14 открываются и выбранное адресным кодом слово появляется на выходах. Рассмотрим более подробно прохождение j-го разряда слова через мультиплексорную часть на выход регистрового файла при условии, что. Из приведенной на рис. 7.6 схемы видно, что для всех логических элементов 4И–ИЛИ–НЕ:

  • • подключение адресных сигналов выполнено одинаково;
  • • у-е разрядывыходного слова i-го регистра RG/ подключены к одноименным выводам.

Пользуясь схемой, запишем выражение для j-го разряда выходного сигнала:

(3)

где-й разряд слова на выходе i-го регистра;, 1,2,4.

На основании (3) составим таблицу функционирования регистрового файла в режиме считывания (табл. 7.2) для сигнала разрешения >. Из табл. 7.2 следует, что при выбранном адресном коде на выходах логических элементов 4И–ИЛИ–НЕ и, следовательно, на выходахпоявляются одновременно все разряды одного слова. Если, то логические элементынезависимо от значений адресных сигналовнаходятся в Z-состоянии и выходы регистрового файла практически отключены от внешних цепей. В табл. 7.2 для этого случая значения адресных сигналов помечены символом Ф (0 или I).

Таблица 7.2

Входы считывания

Выходы

0

0

0

0

0

1

0

1

0

0

1

1

1

Ф

ф

Z

Z

Z

Z

Наличие третьего Z-состояния позволяет соединять выходы 128 регистровых файлов, что дает 512 мест для расположения 4-разрядных слов.

Буфер FIFO. Память, действующая по принципу первым пришелпервым ушел (First-In First-Out – FIFO), организуется в виде буфера, в котором, как правило, используется способ считывания продвижением данных к выходу в порядке очереди, как в сдвигающих регистрах. Особенностью буфера FIFO является то, что запись и считывание данных осуществляются по двум различным управляющим входам и могут вестись с различными скоростями. Буферы имеют средства индикации, информирующие о его состоянии: буфер полон или буфер пуст. Одно из применений буферов FIFO – организация очереди команд. При выполнении программы значительное время расходуется на выборку команд из внешней оперативной памяти. Наличие в микропроцессоре буфера с очередными командами выполняемой программы значительно ускоряет работу' программы. Поэтому в микропроцессоре имеются средства, которые стремятся поддерживать заполненным буфер очереди команд. Очередные команды считываются из памяти во время выполнения текущей команды, когда шина данных/адреса остается свободной. После завершения текущей команды следующая команда считывается из буфера. При этом повышается быстродействие микропроцессора, поскольку не требуется обращения к внешней памяти.

Рассмотрим принципы построения и работы буфера, предназначенного для описанной выше организации очереди команд в микропроцессорной системе. Буфер содержит (см. рис. 7.7):

  • • регистровый файл RG для хранения команд;
  • • два суммирующих двоичных счетчика для формирования адресов записи (СГ|) и считывания (СГ2). Число возможных состояний,

Схема буфера FIFO

Рис. 7.7. Схема буфера FIFO

или модуль счетчика, выбирается равным емкости регистрового файла, которая определяется числом регистров;

  • • схему сравнения для фиксации двух состояний регистрового файла (регистровый файл пустой или полный);
  • • Л5-триггер и два логических элемента И, предназначенных для индикации состояний буфера (файлового регистра).

В исходном состоянии счетчики сброшены подачей сигнала Сброс на R-входы.

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

При записи подаются команды на входы D данных регистрового файла из оперативной памяти микропроцессорной системы, а также тактовые (прямоугольные) импульсы:

  • на вход разрешения записи EW;
  • на вход счетчика СТ1, а с его выходов снимается адресный код, который поступает на адресные входы записи AW регистрового файла.

Исходя из принципа работы регистрового файла, команды располагаются в его регистрах в порядке очереди согласно адресным кодам: в регистрах с меньшими номерами хранятся команды, поступившие в числе первых.

При чтении подаются импульсы:

  • на вход разрешения чтения ER;
  • на вход счетчика СТ2. С его выходов снимается адресный код, который поступает на адресные входы чтения AR регистрового файла.

В процессе чтения происходит увеличение адресного кода, поэтому первыми считываются те команды, которые поступили в регистровый файл первыми, т.е. соблюдается принцип первым пришелпервым ушел.

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

В режиме записи тактовые импульсы поступают на R-вход (S = 0), устанавливая триггер в состояние, при котором 0=1. Если в этом режиме схема сравнения зафиксирует равенство показаний счетчиков, то на ее выходе появится единичный сигнал. В результате перемножения единичных сигналов на выходе нижнего элемента И сформируется сигнал индикации состояния Буфер полон. Заполнение всех регистров регистрового файла данными обусловлено тем, что сумма показаний обоих счетчиков равна модулю. Следовательно, все адреса регистрового файла, или регистры, заняты.

В режиме чтения тактовые импульсы поступают на 5-вход (R = 0), устанавливая триггер в состояние, при котором (Q=1. Если в этом режиме схема сравнения зафиксирует равенство показаний счетчиков, то на ее выходе появится единичный сигнал. В результате перемножения единичных сигналов на выходе верхнего элемента И сформируется сигнал индикации состояния Буфер пуст, так как все ранее записанные данные считаны.

Стек. Память, действующая по принципу последним пришелпервым ушел (Last-In First-Out – LIFO), организуется в виде стека. При этом используется способ считывания продвижением адреса обращения к ячейкам памяти вдоль очереди данных при фиксированном их расположении. Стек представляет собой область основной памяти, которая предназначена для организации прерываний микропроцессора при обслуживании внешних устройств (мыши, клавиатуры и др.). По запросу внешнего устройства на прерывание микропроцессор приостанавливает работу основной программы и приступает к выполнению подпрограммы, обслуживающей запрашиваемое внешнее устройство. Чтобы сохранить сведения о своем состоянии, микропроцессор выгружает содержимое внутренних регистров в стек. По завершении работы подпрограммы содержимое внутренних регистров возвращается из стека, восстанавливается прежнее состояние микропроцессора и прерванная программа продолжает работу.

Под стек отводится область оперативной памяти для хранения адресов возврата и состояний микропроцессора (содержимого регистров) при вызове подпрограмм и обслуживании прерываний. В стек можно только последовательно добавлять или извлекать из него элементы данных. Типовой стек, применяемый в большинстве микропроцессоров, заполняется в сторону уменьшения адресов. Для занесения данных и извлечения их из стека используется специальный регистр-счетчик – указатель стека (Stack Pointer – SP). Указатель стека размешается в микропроцессоре и всегда показывает на последнюю заполненную ячейку с адресом А, называемую вершиной стека (Top of Stack – TOS).

Операция записи в стек элемента данных инициируется командой PUSH. При этом содержимое указателя стека SP уменьшается на 1 или 2 (и более) в зависимости от длины элемента (байт, два байта), формируя адрес ячейки (А – 1 или А – 2), в которую помещается элемент 1. Затем содержимое указателя стека SP уменьшается на 1 или 2, формируя адрес ячейки (А – 2 или А – 4), в которую помещается элемент 2, и т.д. Этот принцип взаимодействия указателя SP со стеком при записи в стек 5 однобайтных элементов проиллюстрирован на рис. 7.8, а.

Работа стека в режиме записи (а) и считывания (б)

Рис. 7.8. Работа стека в режиме записи (а) и считывания (б)

При операции считывания (команда POP) сначала из стека извлекается элемент данных, поступивший в стек последним. После этого содержимое указателя SP увеличивается на 1 или 2, формируя адрес ячейки + 1 или А+ 2) для считывания предпоследнего поступившего в стек элемента и т.д. После считывания всех элементов содержимое указателя стека увеличивается на 1 или 2. На рис. 7.8 показан процесс извлечения из стека 4 однобайтных элементов.

 
< Пред   СОДЕРЖАНИЕ     След >