Лекция: Стековая память.

Стеком называется запоминающее устройство с последовательным доступом, в котором слова считываются в порядке, обратном записи, т.е. по правилу LIFO(Last in First out) – последним вошел – первым вышел.

 

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

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

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

Для моделирования стека используется реверсивный счетчик, который называется указателем стека. Предполагается, что на счетчике все время находится адрес ячейки памяти, которая соответствует вершине стека. Сначала на счетчик УС заносится некоторый начальный адрес(после заполнения ячейки). Когда слово нужно поместить в стек, а слово записывается по адресу, записанному в УС, и УС уменьшается на 1. Реализуется следующие операции: (УС):=(УС)-1; ((УС)):=(Р2).

Таким образом, после записи очередного слова в стек УС хранит адрес ячейки, в которую было произведено последнее обращение. Чтение информации из ячейки памяти реализуется следующим образом (Р2):=((УС)); (УС):=(УС)+1, т.е. из указателя стека выбирается число, определяющее адрес последней запятой ячейки, и содержимое этой ячейки передается в выходной регистр. После этого к содержимому УС прибавляется 1. Встречающиеся на практике вариации описанной схемы работы в основном касаются того, как продвигается УС.

 

 

еще рефераты
Еще работы по информатике