Стекова пам’ять - вчися як на парах!

Стекової називають пам'ять, доступ до якої організований за принципом: "останнім записаний - першим лічений" (Last Input First Output - LIFO). Використання принципу доступу до пам'яті на основі механізму LIFO почалося з великих ЕОМ. Застосування стековой пам'яті виявилося дуже ефективним при побудові компілює і інтерпретує програм, при обчисленні арифметичних виразів з використанням польського інверсного запису. У малих ЕОМ вона стала широко використовуватися в зв'язку зі зручностями реалізації процедур виклику підпрограм і при обробці переривань.

Принцип роботи стековой пам'яті полягає в наступному (див. Рис. 4.15). Коли слово А поміщається в стек, воно розташовується в першій вільній комірці пам'яті. Наступне записується слово переміщує попереднє на одну клітинку вгору і займає його місце і т. Д. Запис 8-го коду, після H, призводить до переповнення стека і втрати коду A. Зчитування слів з стека здійснюється в зворотному порядку, починаючи з коду H, який був записаний останнім. Зауважимо, що вибірка, наприклад, коду E неможлива до вибірки коду F, що визначається механізмом звернення при записі і читанні типу LIFO. Для фіксації переповнення стека бажано формувати ознака переповнення.

Мал. 4.15. Принцип роботи стековой пам'яті.

Переміщення даних при записі і зчитуванні інформації в стековой пам'яті подібно до того, як це має місце в зсувних регістрах. З точки зору реалізації механізму доступу до стековой пам'яті виділяють апаратний і апаратно-програмний (зовнішній) стеки.

Апаратний стек являє собою сукупність регістрів, зв'язку між якими організовані таким чином, що під час запису і зчитуванні даних вміст стека автоматично зсувається. Зазвичай ємність апаратного стека обмежена діапазоном від декількох регістрів до декількох десятків регістрів, тому в більшості МП такий стек використовується для зберігання вмісту програмного лічильника і його називають стеком команд. Основна перевага апаратного стека - високу швидкодію, а недолік - обмежена ємність.

Записи по темі