Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба 4 АК K1810.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
638 Кб
Скачать

Фізична організація пам'яті

Пам'ять організована, як 2 банка пам'яті по 512к - старший банк D15-D8 та молодший (D7-D0). Для адресації комірок пам'яті використовують розряди A19-A1. Байт з парною адресою пересилається по лінії D7-D0, непарний – по лініях D15-D8.

Для вибірки використовуються сигнали: A0 (вибирає молодший банк при A0=0) та BHE , як наведено в таблиці 5.

Таблиця 5. Вибірка банків пам'яті

Ошиб

A 0

Банк, що вибирається

Лінії шини даних, по яких передаються дані

1

2

3

4

0

0

Обидва

D15-D0

1

0

Молодший

D7-D0

0

1

Старший

D15-D8

1

1

Заборонений стан

-

Переривання

Мікропроцесор дозволяє опрацьовувати 256 типів переривань із номерами 0 - 255, які поділяють на:

      1. Зовнішні апаратні:

        1. масковані - блокуються програмно (по входу INT);

        2. немасковані - по входу NMI (програмно не блокуються).

      2. Внутрішні апаратні.

      3. Програмні.

Запити на зовнішні переривання МП сприймає та опрацьовує після виконання біжучої команди. Зовнішні переривання надходять на МП по двох виводах INT та NMI і діляться на масковані та немасковані.

Запити на масковані переривання видаються за сигналом INT, реакція на запит залежить від стана біта IF регістра ознак. Заборона переривання INT здійснюється установкою в „0" внутрішнього тригера дозволу переривань командою CLI, дозвіл - командою STI, що встановлює тригер в „1". Якщо переривання дозволені, після його розпізнання мікропроцесор формує цикл підтвердження переривання для зовнішнього пристрою, що запросив переривання. Зовнішній пристрій у відповідь на цикл підтвердження переривання формує та видає в МП номер переривання, яке відбулось. Цей номер носить назву вектора переривання.

При немаскованому перериванні запит надходить по входу NMI.

Опрацювання переривання не залежить від стана біта IF регістра ознак. Немасковані переривання використовуються для повідомлення процесора в „загрожуючих" режимах (можливість від'єднання живлення, помилка пам'яті і т.д.). Для переривань NMI немає підтвердження, а МП реагує на перехід в стан лог. 1 на цьому вході, активний сигнал NMI має залишатися не менше як у двох машинних тактах.

Внутрішні апаратні переривання ділять на переривання через помилку ділення та покрокового виконання програми. Переривання через помилку ділення проходять під час виконання команд ділення DIV та IDIV, якщо результат ділення перевищує можливу допустиму величину. Покрокове переривання виникає при TF=1 після виконання кожної команди, або пари команд, перша з яких - префікс заміни сегмента.

Програмні переривання ділять на:

  1. Переривання по відлагоджувальними точками.

  2. Переривання по переповненню.

  3. Переривання за вектором.

Переривання за відлагоджувальними точками генерується за однобайтною командою INT3.

Переривання за переповненням генерується по однобайтній команді INTO. Якщо біт OF регістра ознак рівний одиниці, то по команді INTO відбувається перехід на відповідну процедуру, інакше виконується наступна команда.

Переривання за вектором виконується по двобайтній команді INTx, де x = 0..FF, усі можливі переривання можуть бути викликані за допомогою команди INTx із відповідним номером вектора. Номери вектора переривання для всіх можливих переривань наведені в таблиці 6.

Запити на переривання опрацьовуються після виконання біжучої команди. Якщо одночасно надходять переривання різного типу, то опрацьовується переривання з вищим пріоритетом.

Таблиця 6. Переривання в КР1810ВМ86

Тип переривання

Номер вектора

Пріоритет

Переривання через помилку ділення

0

1(вищий)

Покрокове переривання

1

4 (найнижчий)

Немасковане переривання (по вх. NMI)

2

2

Переривання за відлагоджувальній точці INT3

3

1

Переривання за переповненням INT0

4

1

Переривання за вектором INTx

х

1

Масковані переривання (по входу INT)

х

3

Процедура опрацювання переривання визначається номером вектора переривання і береться з таблиці векторів переривань, що розміщена в початкових адресах адресного простору МП. Кожен із елементів таблиці має довжину 32 біта і складається зі зміщення (молодші 16 біт) та сегмента (старші 16 біт) адреси початку підпрограми переривань. При надходженні будь-якого переривання МП визначає номер вектора переривання, зберігає в стеку вміст лічильника команд, сегмента коду та регістра ознак, потім вибирає з таблиці згідно з номером зміщення та сегмент адреси початку підпрограми опрацювання переривань, скидає біт дозволу переривань IF в регістрі ознак і переходить до викання команди, записаної за згаданою адресою. Якщо в підпрограмі опрацювання переривання використовуються регістри МП, їх попередній стан має бути збережений у стеку. У випадку, коли в процесі опрацювання переривання необхідно дозволити масковані переривання, то можна скористуватись командою STI. В кінці підпрограми опрацювання переривання стан усіх регістрів МП, що були збережені у стеку, необхідно відновити. Підпрограма опрацювання переривань повинна закінчуватися командою IRET, яка повертає зі стеку збережений уміст лічильника команд, уміст регістра ознак та уміст сегментного регістра. Так як перед виконанням підпрограми обробки переривань біт дозволу переривань був встановлений в 1, то після повернення із підпрограми переривання і далі будуть дозволені.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]