Принципи організації кеш-пам'яті та стекової пам'яті

стекова пам'ять використовується для викликів підпрограм, у тому числі і вкладених, та оброблення переривань.

За способом реалізації розрізняють апаратний і апаратно-програмний стеки.

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

Рис. 5. 35. Принцип роботи апаратного стека

Під час записування слова 1 у стек воно розміщується у першій вільній комірці пам'яті (у першому регістрі) - вершині стека. Наступне слово зсуває попереднє на одну комірку вгору, займає його місце і т. д. Запис слова 9 призводить до переповнення стека і втрати слова 1. Зчитування слів зі стека здійснюється у зворотному порядку, тобто спочатку зчитується слово 9, записане останнім. Зчитування відбувається у зворотному порядку, наприклад, зчитування слова 6 не можливе, поки не будуть зчитані слова 7, 8 та 9.

Інформаційна ємність апаратного стека визначається як Nxn, де кількість n-розрядних слів N дорівнює Кількості регістрів, яка може складати декілька десятків. Апаратні стеки, застосовувані у /YC-процесорах, мають 2, 8 або 16 регістрів (N = 2, 8, 16), у яких розміщуються 12-, 14- або 16-розрядні слова (п = 12, 14, 16). Основною перевагою апаратного стека є висока швидкодія, а недоліком - обмежена інформаційна ємність.

Апаратно-програмний стек реалізується через використання частини ОЗП статичного типу та спеціального регістра SP (Stack Pointer - вказівник стека), який містить адресу останньої зайнятої комірки стека. Принцип роботи апаратно-програмного стека для мікропроцесорів 80x86 показано на рис

5. 36. У апаратно-програмному стеку фізичного зсуву даних під час запису і зчитування не відбувається. Зсув даних буває за зміною значення SP. На початку програми в регістр SP заносять адресу вершини стека. Після кожної операції запису (зчитування) вміст регістра SP змінюється. Для МП 80x86 одночасно можна записувати у стек або зчитувати з нього двобайтові слова, тому SP змінюється на два.

Рис. 5. 36. Принцип роботи апаратно-програмного стека

Під час запису у стек значення SP зменшується на два (стек «росте» в область малих адрес), а під час зчитування зі стека - збільшується на два. Отже, вказівник стека SP завжди містить адресу комірки, до якої відбулося останнє звернення. У деяких командах, наприклад у командах викликів підпрограм CALL, переривань INT, повернень з підпрограм RET, звернення до стека здійснюється автоматично. Під час виклику підпрограми (рис. 5. 37) у стеку запам'ятовується адреса команди, наступної після виклику команди ADD, тобто вміст програмного лічильника PC запам'ятовується у верхній незайнятій комірці стека, а вказівник стека зменшується на два.

Після повернення з підпрограми за командою RET уміст верхньої комірки стека перезаписується у програмний лічильник PC, вказівник стека SP збільшується на два. Після цього починає виконуватися команда ADD. Крім команд CALL, INT і RET, для роботи зі стеком використовують також команди PUSH і POP, призначені для тимчасового запам'ятовування у стек умісту регістрів і відновлення, тобто пересилання інформації зі стека у регістри. У МП Intel, починаючи з /286, існують команди PUSHA і POP A (PUSH All і POP All), призначені для

1 2 3 4 5

Схожі роботи

Реферати

Курсові

Дипломні