Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Тема 1.3. Пам`ять МП

Лекція №5. Стекова пам`ять. Види стеків та їх організація.

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

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

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

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

 

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

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

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

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

 

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

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

 

Рис. 3. Робота стека під час виклику підпрограм

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

Використання стекової пам'яті дозволяє підвищити швидкодію МПС, зменшуючи час однієї з найповільніших операцій - звернення до зовніш­ньої пам'яті.

 

 




Переглядів: 1747

<== попередня сторінка | наступна сторінка ==>
Дайте відповіді на контрольні питання | Лекція 1

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.011 сек.