Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

ОЗУ магазинного типа (стековая память)



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

Магазинная (стековая) память организуется по принципу “Последний пришел, первый вышел” (LIFO- Last In First Out), или “Первый пришел, первый вышел” (FIFO- First In First Out). Принцип организации стековой памяти показан на рисунке 3.8.1.

Рисунок 3.8.1- Организации стековой памяти

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

В случае организации типа FIFO новое слово заносится в верхнюю ячейку, ранее записанные слова выталкиваются вниз.

Для адресации стека используется специальный регистр адреса, который называют указателем стека УС (Steak Pointer- SP). Чаще используют память типа “последний пришел, первый вышел”. Организуется следующим образом (см. рисунок 3.8.2):

Рисунок 3.8.2- Адресация стека типа LIFO с помощью УС

Перед началом работы в указатель стека заносится адрес ячейки ОП, в которую будет записываться первое слово (или байт). Дальнейшая адресация осуществляется автоматически путем увеличения или уменьшения адреса на единицу при выполнении операций записи стека (команда PUSH) или его чтения (команда POP). Физический же процесс записи и считывания данных происходит точно так же, как в обычной памяти с произвольным доступом.

Возможные изменения состояния УС стековой памяти типа LIFO при записи- чтении показаны на следующем рисунке:

Рисунок 3.8.3- Изменение состояния УС при записи и чтении стековой памяти типа LIFO

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





Дата публикования: 2014-11-04; Прочитано: 1731 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...