Прямий доступ до пам’яті в ПЕОМ

ПДП-контролер обчислювальних систем PC AT реалізований на двох

каскадно увімкнених ВІС i8237A (багатофункціональний контролер прямого дос-

тупу), регістра старшої адреси ПДП та регістрів сторінок ПДП. Контролери забезпечують 7 каналів ПДП як по одному байту за цикл ПДП, так і по два байти

за цикл.

Для здійснення ПДП контролер повинен виконати ряд послідовних операцій:

· прийняти запит (DREQ) від пристрою вводу/виводу;

· сформувати запит (HRQ) у процесор на захоплення шини;

· прийняти сигнал (HLDA), що підтверджує захоплення шини;

 

 


· сформувати сигнал (DACK), що повідомляє пристрій про початок обміну даними;

· видати адресу комірки пам’яті, призначеної для обміну;

· сформувати сигнали (MEMR, IOW або MEMW, IOR), що забезпечують керування обміном;

· після закінчення циклу ПДП або повторити цикл ПДП, змінивши адресу, або перервати цикл.

Контролери ПДП забезпечують формування лише 16 молодших розрядів

адреси пам’яті. Причому старша частина адреси (A15 – A8 для ПДП1 або A16 –

A9 для ПДП2) під час циклу ПДП по шині даних поступає в регістр старшої адреси ПДП та далі на шину адреси, а молодша частина адреси (A7 – A0 для

ПДП1 або A8 – A1 для ПДП2) видається на шину безпосередньо з контролера.

Розряд A16 з регістра сторінок ПДП забороняється, коли вибрано ПДП2. Розряд A0 не з’єднаний з ПДП2 і завжди містить нуль при передачі слова. Це означає, що розмір блока даних, який може бути переданий або адресований, вимірюється не

байтами (8 біт), а словами (16 біт); слова завжди повинні бути розміщені на

парній межі.

Старші 8 адресних розрядів (A23 – A16) зберігаються у формувачі розширен- ня адреси на базі мікросхеми 74LS612, у так званому регістрів сторінки, який разом з контролерами i8237A визначає повну (24-розрядну) адресу для кожного каналу.

 

 

Таблиця 1 – Адреси портів вводу/виводу регістрів сторінок

 

Канал ПДП Адреса порту
  087h
  083h
  081h
  082h
  Hi
  08Bh
  089h
  08Ah
Refresh 08Fh

 

Для каналів 0 – 3 молодші розряди адреси пам’яті (A0 – A15) формуються контролером 1, а старші (A16 – A23) – регістром сторінки (74LS612). Для каналів

5 – 7 принцип формування адреси інший: розряд A0 встановлюється на нульовому рівні, розряди A1 –A16 формуються контролером 2, а розряди A17 – A23 –

регістром сторінки.

При формуванні адреси пам’яті необхідно дотримуватись таких правил:

· адреса слова, що передається, завжди повинна бути парною;

· максимальний розмір блока даних, який може пересилатись або адресува- тись при 16-розрдних передачах, удвічі перевищує розмір блока при байтових передачах;

 


· швидкість 16-розрядних ПДП-передач у два рази вища порівняно з передачею тієї самої інформації байтами в блочному режимі.

Призначення та формати регістрів КПДП

У складі контролера є спільні регістри команд (керування), стану та

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

Регістр станів (STAT)

Вміст регістра станів може бути прочитаний мікропроцесором. Регістр

містить інформацію про стан каналів у даний момент часу. Розряди 0 – 3 регістра встановлюються кожного разу, коли процес ПДП завершений. Розряди 4 –7

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

 

 

Таблиця 2 – Формат регістра стану

 

Біт Призначення
D0 1 – ПДП каналу 0 завершений
D1 1 – ПДП каналу 1 завершений
D2 1 – ПДП каналу 2 завершений
D3 1 – ПДП каналу 3 завершений
D4 1 – незадоволений запит каналу 0
D5 1 – незадоволений запит каналу 1
D6 1 – незадоволений запит каналу 2
D7 1 – незадоволений запит каналу 3

Регістр команд (CR)

Регістр керує операціями контролера ПДП, програмується мікропроцесором.

Регістр недоступний для читання.

 

 

Таблиця 3 – Формат регістра команд

 

Біт Призначення
  D0 0 – дозвіл режиму П – П 1 – заборона режиму П – П
    D1 0 – заборона захвачення адреси каналу 0 1 – дозвіл захвачення адреси каналу 0 ´– якщо розряд 0 містить 0
  D2 0 – дозвіл контролера ПДП 1 – блокування контролера ПДП
    D3 0 – нормальна синхронізація 1 – стиснена синхронізація ´– якщо розряд 0 містить 1
  D4 0 – фіксований пріоритет 1 – циклічний пріоритет
    D5 0 – вкорочений імпульс запису MEMW 1 – подовжений імпульс запису MEMW ´– якщо розряд 3 містить 1

 


Продовження таблиці 3

 

  D6 0 – DREQ активний низьким 1 – DREQ активний високим
  D7 0 – DACK активний низьким 1 – DACK активний високим

 

Регістр режиму (MOD)

Цей регістр є в кожному каналі. Розряди 0, 1 вказують, у регістр режиму

якого каналу треба здійснити запис, а розряди 2 – 7 – інформацію безпосередньо для відповідного регістра режиму. Для регістра режиму дозволений лише запис

інформації.

 

 

Таблиця 4 – Формат регістра режиму

 

Біт Призначення
  D1, D0 Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – канал 3
    D3, D2 Тип циклу ПДП: 00 – перевірка 01 – запис у пам’ять 10 – читання з пам’яті 11 – заборонена комбінація ´– якщо розряди 6, 7 дорівнюють 11
    D4 Автоініціалізація: 1 – є 0 – немає
    D5 Принцип зміни адреси: 0 – збільшення адреси 1 – зменшення адреси
  D7, D6 Режим обслуговування: 00 – режим за вимогою 01 – одиничний режим 10 – блочний режим 11 – каскадний режим

 

Регістр маски (MASK)

Кожен канал має свій розряд у 4-розрядному регістрі маски, який може бути

встановлений, щоб заблокувати DREQ, що приходить. Кожен розряд 4- розрядного регістра маски може бути встановлений бо скинений під керуванням програми. Регістр маски не може бути зчитаний мікропроцесором.

 


Таблиця 5 – Формат байта встановлення або скидання одного розряду маски

 

Біт Призначення
  D1, D0 Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – канал 3
  D2 1 – встановити маску 0 – скинути маску
D3 – D7 Не використовуються

 

Таблиця 6 – Формат байта для запису інформації у всі розряди маски

 

Біт Призначення
  D0 1 – встановити маску каналу 0 0 – скинути маску каналу 0
  D1 1 – встановити маску каналу 1 0 – скинути маску каналу 1
  D2 1 – встановити маску каналу 2 0 – скинути маску каналу 2
  D3 1 – встановити маску каналу 3 0 – скинути маску каналу 3
D4 – D7 Не використовуються

 

Регістр запиту (REQ)

Контролер ПДП може реагувати на запити по обслуговуванню ПДП, які

будуть ініціюватися програмно, як і при DREQ. Кожен канал має свій розряд у 4-

розрядному регістрі запиту. Ці розряди немасковані, пріоритет їх встановлюється шифратором пріоритетів. Регістр запиту не може бути прочитаний мікропроцесо- ром.

 

 

Таблиця 7 – Формат регістра запитів

 

Біт Призначення
  D1, D0 Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – канал 3
  D2 1 – встановити запит 0 – скинути запит
D3 – D7 Не використовуються

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: