Стекова пам’ять (магазинна) - студопедія

У разі апаратної реалізації осередку стековой пам'яті утворюють одномірний масив, в якому сусідні осередки пов'язані один з одним розрядними ланцюгами передачі слів (рис. 4.4). При цьому можливі два типи пристроїв (а, б), принципи функціонування яких різні. Розглянемо спочатку структуру на
Мал. 4.4, а.

Стекова пам'ять (магазинна) - студопедія

Запис нового слова, що надійшов з ШІВх. виробляється в верхню (нульову) осередок, при цьому буде видалено всі слова (включаючи слово в осередку 0) зсуваються вниз, в сусідні осередки, номери яких на одиницю більше. Зчитування можливо тільки з верхньої (нульовий) осередки пам'яті. Основний режим - це зчитування з видаленням. При цьому всі інші слова в пам'яті зсуваються вгору, в сусідні осередки з меншими номерами. У такій пам'яті реалізується правило: останній прийшов - перший пішов. Стеки подібного типу прийнято називати стеками LIFO (Last In - First Out).

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

Про першому слові, посилає в стек, кажуть, що воно розташовується на дні стека. Про останній надісланому (за часом) в стек слові кажуть, що воно знаходиться в вершині стека. Таким чином, осередок N-1 - дно стека, а осередок 0 - вершина.

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


Крім розглянутої вище стековой пам'яті типу LIFO в ЕОМ використовуються стекові пам'яті іншого типу, що реалізують правило: перший прийшов - перший пішов. Стеки подібного типу прийнято називати стеками FIFO (First In - First Out). Така стековая пам'ять широко використовується для організації різного роду черг (команд, даних, запитів і т.д.). Узагальнена структура апаратного стека типу FIFO представлена ​​на рис. 4.4, б.

Як і в попередньому випадку, осередки стековой пам'яті утворюють одномірний масив, в якому сусідні осередки пов'язані один з одним розрядними ланцюгами передачі слів. Запис нового слова, що надійшов з ШІВх. здійснюється у верхню (нульову) осередок, після чого воно відразу переміщається вниз і записується в останню за рахунком незаповнену клітинку. Якщо стек перед записом був порожній, слово відразу потрапляє в осередок з номером N-1, тобто на дно стека. Зчитування можливо тільки з нижньої комірки з номером N-1 (дно стека). Основний режим - це зчитування з видаленням. При цьому всі наступні (записані) слова зсуваються вниз, в сусідні осередки, номери яких на одиницю більше. При заповненні стека лічильник (СчСт) забороняє подальші операції записи в стек.

Таким чином, на відміну від стека LIFO, в стеку FIFO переміщається НЕ дно, а вершина. Записуються в стек FIFO слова поступово просуваються від вершини до дна, звідки і зчитуються в міру необхідності, причому темп запису і зчитування визначаються зовнішніми керуючими сигналами і не пов'язані один з одним.

Програмна реалізація стека FIFO в цьому розділі не розглядається, оскільки на практиці використовується досить рідко.