Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Антонов О.С., Хiхловська I.В. Обчислювальна тех...doc
Скачиваний:
15
Добавлен:
01.09.2019
Размер:
4.12 Mб
Скачать

Стекова пам’ять

Стекова пам’ять — це частина ОЗП зі спрощеною формою адресації. Стекова пам’ять у МП К580ВМ80А призначена для тимчасового зберігання адрес та даних, наприклад, адреси повернення до основної програми при зверненні до підпрограм і організована апаратно-програмно. Якщо команди у ОЗП розміщуються у 8-розрядних послідовно адресованих комірках пам’яті з нарощуванням адрес, то стек як частина ОЗП заповнюється з боку комірок зі старшими адресами у бік молодших адрес. Стекова пам’ять використовує вказівник стека SP для адресування входу у стек. Обмін зі стеком реалізується двобайтовими даними з регістрових пар за допомогою команд PUSH RP (завантаження стеку), PОP RP (розвантаження стеку), з лічильника команд за допомогою команди САLL А16 (звернення до підпрограми) та RET (повернення з підпрограми) та команди RST (рестарт). На рис. 7.8 представлена організація стекової пам’яті.

Початкове завантаження вказівника стека визначає найбільшу адресу стекової пам’яті; за цією адресою у стек дані не записуються, це щось навроди захисного шару між стековою пам’яттю та ОЗП з боку старших адрес. При завантаженні у стек двобайтового числа з регістрової пари за адресою SP-1 буде завантажено дане зі старшого регістра, а за адресою SP-2 — з молодшого регістра.

Рисунок 7.8 — Організація стекової пам’яті

Припустимо, що вміст регістрової пари ВС дорівнює 2631Н, а вміст регістрової пари DE — ABCDH. Після виконання команди PUSН В у комірку пам’яті з адресою SP-1 буде записане число 26Н, а за адресою SP-2 — число 31Н. Після виконання наступної команди PUSН D вміст вказівника стека стане SP-4. За адресою SP-3 буде записане число ABH, а за адресою SP-4 — число CDH. При розвантаженні стека вказівник стека збільшується на 2 при кожному зверненні. Стек працює за принципом LIFO (LAST INPUT — FIRST OUTPUT) — останній увійшов — перший вийшов. Наприклад, при виконанні команди РОР Н у регістровій парі HL буде записане число ABCDH, а значення вказівника стека становитиме SP-2.

Функціонування мпс

Для виконання команди програми необхідна взаємодія якнайменш двох підсистем МПС: підсистеми центрального процесорного елементу та підсистеми пам’яті. Команда зчитується з ППЗП, декодується та виконується. На всі процедури, залежно від типу команди витрачається від одного до п’яти машинних циклів М1...М5.

У кожному циклі МП один раз звертається до пам’яті або пристрою введення-виведення.

Кожний з машинних циклів складається з трьох-п’яти машинних тактів Т1...Т5, тривалість такту визначається періодом тактових імпульсів ГТІ (рис.7.9).

Рисунок 7.9 — Часова діаграма циклу з п'яти тактів

Такти відраховуються від фронтів імпульсів F1. Якщо МП К580ВМ80А працює на частоті 2 МГц, то тривалість одного такту складає 0,5 мкс. За цей час у системі виконується одна або водночас декілька елементарних дій — мікрооперацій. Набір керувальних сигналів, які керують самим МП, змінюються кожного такту, а у МПС сигнали керування оновлюються тільки на початку кожного машинного циклу команди, тобто за кілька тактів — від 4 до 18 залежно від команди.

У МПС може вироблятися до 10 різних ССПЦ, тобто до 10 різних типів машинних циклів, які показані у табл. 7.1.

Виконання будь-якої команди завжди починається з основного машинного циклу М1, який складається з чотирьох або п’яти тактів:

Т1 — з програмного лічильника (РС) через буфер адреси (БА) на ША МП видає адресу комірки ППЗП з кодом операції виконуваної команди, після чого вміст РС збільшується на 1 (інкрементується); у інших циклах М2...М5 на такті Т1 на ША видається адреса комірки пам’яті для зчитування або запису даних або номер (адреса) пристрою введення-виведення. Одночасно у Т1 кожного циклу у СКФ по ШД поступає слово стану процесора (ССПЦ).

Таблиця 7.1 — Типи машинних циклів

Тип циклу

Код ССПЦ

1

Вибірка коду операції команди

01000000

2

Читання пам’яті

01000001

3

Запис у пам’ять

00000000

4

Читання із стеку

01100001

5

Запис у стек

00100000

6

Читання з пристрою введення

01000010

7

Запис у пристрій виведення

00001000

8

Дозвіл переривань

11000100

9

Дозвіл останову

01010001

10

Дозвіл переривань під час останову

11010100

Т2 — ССПЦ фіксується у регістрі СКФ, після чого формуються сигнали ПР (DBIN) та ( ) для керування подальшим зчитуванням у МП коду операції та його декодування. Одночасно у Т2 аналізуються сигнали готовності ГОТ (READY), запиту захоплення шин ЗЗХ (HOLD) та ЗУП (HАLТ). При виконанні Т2 у машинних циклах М2...М5 ССПЦ також фіксується у СКФ, але далі виконуються дії залежні від команди.

Т3 — за адресою пам’яті, поданого на ША, зчитується з пам’яті код операції команди та поступає з ШД на регістр коду операції МП (РКОП) для декодування. При виконанні інших циклів М2...М5 у такті Т3 вибираються дані з пам’яті, пристроїв введення, стеку або дані виводяться у пам’ять, пристрої виведення та стек.

Т4, Т5 — у МП розшифровується прийнятий код операції команди, визначається її формат, виконуються однобайтні команди або формуються машинні цикли М2...М5 для виконування двох- та трьохбайтових команд. При виконанні циклів М2...М5 у Т4 виконуються дії залежно від команди, а Т5 може бути відсутній.