
- •Розділ 4 побудова модулів пам'яті мікропроцесорних систем
- •4.1 Класифікація систем пам'яті
- •4.2. Побудова модулів постійного запам'ятовувального пристрою
- •4.3. Побудова модулів оперативного запам'ятовувального пристрою статичного типу
- •4.4. Побудова модулів оперативного запам'ятовувального пристрою динамічного типу
- •4.5. Принципи організації кеш-пам'яті
- •4.6. Принципи організації стекової пам'яті
4.6. Принципи організації стекової пам'яті
Степовою пам'яттю, або стеком, називають пам'ять, в якій реалізовано принцип: останній увійшов — перший вийшов {LIFO — Last Input First Output), тобто дані, записані останніми, зчитуються першими. У МПС стекова пам'ять використовується для викликів підпрограм, в тому числі і вкладених, та оброблення переривань.
За способом реалізації розрізняють апаратний і апаратно-програмний стеки.
Апаратний стек — сукупність регістрів, зв'язок між якими організовано так, що під час записування і зчитування даних вміст стеку автоматично зсувається. Принцип роботи апаратного 8-рівневого стеку наведено на рис. 4.15.
Під час записування слова 1 у стек воно розміщується у першій вільній комірці пам'яті (у першому регістрі) — вершині стеку. Наступне слово зсуває попереднє на одну комірку вгору, займає його місце і т. д. Запис слова 9 призводить до переповнення стеку і втрати слова 1. Зчитування слів зі стеку здійснюється у зворотному порядку, тобто спочатку зчитується слово 9, що записано останнім. Зчитування відбувається у зворотному порядку, наприклад, зчитування слова 6 неможливе, доки не будуть зчитані слова 7, 8,9.
Рис. 4.15. Принцип роботи апаратного стеку
Рис. 4.16. Принцип роботи апаратно-програмного стеку
Інформаційна ємність апаратного стеку визначається як N п, де кількість n-розрядних слів дорівнює кількості регістрів, яка може бути кілька десятків. Апаратні стеки, що застосовуються у РIС- процесорах, мають 2, 8 або 16 регістрів (N = 2,8,16), в яких розміщуються 12-, 14-, 16-розрядні слова (п = 12,14,16). Основною перевагою апаратного стеку є висока швидкодія, а недоліком — обмежена інформаційна ємність.
Апаратно-програмний стек реалізується через використання частини ОЗП статичного типу та спеціального регістра SP (Stack Pointer — покажчик стеку), який містить адресу останньої зайнятої комірки стеку. Принцип роботи апаратно-програмного стеку для МП мікропроцесорів 80 86 показано на рис. 4.16. В апаратно-програмному стеку під час запису і зчитування фізичного зсуву даних не відбувається. Зсув даних буває після зміни значення регістра SP. На початку програми в регістр SP заносять адресу вершини стеку. Після кожної операції запису (зчитування) вміст регістра SP змінюється. Для МП 80 86 одночасно можна записувати у стек або зчитувати з нього двобайтові слова, тому значення регістра SP змінюється на два.
Рис. 4.17. Робота стеку під час виклику підпрограм
Під час запису в стек значення регістра SP зменшується на два (стек «зростає» в область малих адрес), а під час зчитування зі стеку — збільшується на два. Отже, покажчик стеку SP завжди містить адресу комірки, до якої відбулося останнє звернення. У деяких командах, наприклад, у командах викликів підпрограм CALL, переривань ІNT, повернень з підпрограм RET, звернення до стеку здійснюється автоматично. Під час виклику підпрограми (рис. 4.17) у стеку запам'ятовується адреса команди, наступної після виклику команди ADD, тобто вміст програмного лічильника PC запам'ятовується у верхній незайнятій комірці стеку, а покажчик стеку зменшується на два.
Після повернення з підпрограми за командою RET вміст верхньої комірки стеку перезаписується у програмний лічильник PC, покажчик стеку SP збільшується на два. Після цього починає виконуватися команда ADD. Крім команд CALL, INT і RET, для роботи зі стеком використовуються також команди PUSH і POP, призначені для тимчасового запам'ятовування у стек умісту регістрів і відновлення, тобто пересилання інформації зі стеку в регістри. У МП Intel, починаючи з МП i286, існують команди PUSHA і РОРА (PUSH All і POP All), призначені для тимчасового запам'ятовування у стеку і відновлення вмісту всіх регістрів МП. До апаратно-програмного стеку можна звернутися також як до ОЗП з довільною вибіркою. У МП i8086 для цього використовують непряму адресацію за допомогою регістра ВР. Тому в стек можна записати значення параметрів підпрограм перед їх безпосереднім викликом.
Використання стекової пам'яті дає змогу підвищити швидкодію МПС, зменшуючи тривалість однієї з найповільніших операцій — звернення до зовнішньої пам'яті.
Контрольні запитання
1. Дайте визначення і наведіть приклади енергозалежних та енергонезалежних ЗП.
2. Які є типи систем пам'яті?
3. Порівняйте за швидкодією типи систем пам'яті.
4. Визначте інформаційну ємність у бітах та кількість ліній шини даних для ЗП, позначених: а) 1024 8; б) 4048 16.
5. Як визначити питому вартість ЗП?
6. Для чого призначений ПЗП?
7. Як виконано елементи пам'яті в ПЗП різних типів?
8. Дайте визначення комірки пам'яті.
9. Назвіть типи ПЗП.
10. Як здійснюється занесення інформації у ВІС ПЗП, програмовані маскою?
11. Як заноситься інформація у ВІС однократно програмованого ПЗП?
12. Як здійснюється занесення та стирання інформації у ПЗП EPROM?
13. Як здійснюється запис інформації у флеш-пам'ять і її стирання?
14. Наведіть приклад нарощування ємності ПЗП удвічі?
15. Поясніть поняття банку пам'яті.
16. Наведіть приклад побудови модуля ПЗП у 16-розрядній МПС на базі 8-розрядних ВІС ПЗП.
17. Що таке елемент пам'яті статичного ОЗП?
18. Що таке одно- та багаторозрядна організації матриці накопичувача ОЗП?
19. Назвіть основні параметри ОЗП статичного типу.
20. Як співвідносяться значення потужності у режимах читання-запису інформації та режимі зберігання інформації?
21. Як здійснюється нарощування розрядності у модулі статичного ОЗП?
22. Які особливості має побудова модулів оперативної пам'яті для МПС на базі 16-розрядних процесорів?
23. Які сигнали використовуються для вибірки банків пам'яті ОЗП?
24. Назвіть чотири можливих випадки звернення до пам'яті у 16-розрядних процесорах?
25. Що таке маршрутизування байта?
26. Які рекомендації можна дати щодо розміщення даних у стеку?
27. Що такс елемент пам'яті динамічного ОЗП?
28. Назвіть основні параметри ОЗП динамічного типу.
29. Порівняйте параметри ОЗП статичного і динамічного типів. Назвіть недоліки і переваги ОЗП динамічного типу.
30. Схарактеризуйте способи адресування ОЗП динамічного типу.
31. Що таке режим регенерації пам'яті?
32. Які функції виконує контролер динамічної пам'яті?
33. Поясніть призначення сигналів і .
34. Наведіть визначення і призначення кеш-пам'яті.
35. У чому полягає принцип часової локальності?
36. У чому полягає принцип просторової локальності?
37. Поясніть принцип дії кеш-пам'яті з прямим відображенням.
38. Поясніть принцип дії повністю асоціативної кеш-пам'яті.
39. Поясніть принцип дії множинної асоціативної кеш-пам'яті.
40. Порівняйте два види кеш-пам'яті з прямим відображенням та повністю асоціативну.
41. Порівняйте повністю асоціативну кеш-пам'ять з множинною асоціативною кеш-пам'яттю.
42. Як відновлюється інформація в ОЗП за способом наскрізного запису?
43. Як відновлюється інформація в ОЗП за способом зворотного запису?
44. Дайте визначення стокової пам'яті.
45. Яке призначення стекової пам'яті?
46. Поясніть принцип дії апаратного стеку.
47. Поясніть принцип дії апаратно-програмного стеку.
48. Дайте порівняльну характеристику апаратного та апаратно-програмного стеків.
49. Поясніть призначення регістра SP.
50. Які операції виконує процесор за командами CALL, RET, PUSH, POP, PUSHA, POPA?