В стековой памяти данные записываются в заранее определенном порядке, поэтому она безадресная. При аппаратной реализации стековая память строится по принципу сдвигового регистра. Различают несколько видов стековой памяти.
Первым пришел – первым вышел (FIFO).
Рис.39
По шине данных ШиД данные подаются слово за словом в линейный массив памяти. При поступлении очередного слова на вход памяти предыдущее слово сдвигается в следующую ячейку памяти. Двоичный счетчик стека Ст2 считает количество записанных слов. В момент заполнения памяти счетчик стека выдает сигнал Стек полный. Запись прекращается, и стек переходит либо в режим хранения, либо в режим считывания. Первое записанное слово считывается первым и выдается на шину выхода Ши.Вых.
Существует другой принцип реализации стека –
Первым пришел - последним вышел (LIFO).
Рис.40
В этой реализации стековой памяти считывание выполняется в порядке, обратном записи. Большое распространение получили циклические стеки (FIFO).
|
|
Рис.41
При считывании данных на ШиВых они одновременно записываются в освободившуюся ячейку. Таким образом, при считывании всех данных массива, они остаются в памяти. Циклические стеки используются при многократном использовании данных.
Хранение больших объемов данных в аппаратных стеках экономически невыгодно, поэтому часто строят стековую память с применением элементов оперативной памяти.
Рассмотрим пример стековой памяти на 16 полубайтовых слов
(Рис. 41).
Рис.42
В этой памяти используется микросхема оперативной памяти 555РУ2. Двоичный четырехразрядный счетчик задает последовательность адресов, по которым с шины данных записываются четырехразрядные слова при сигнале разрешения записи W= 0 и сигнале обращения к памяти CS=0. Образуется стек FIFO. Считывание из стека происходит под управлением счетчика при подаче сигнала считывания W=1 и CS=0.