- •Архітектура пеом
- •1. Інтервальний таймер і8253/і8254 на платі івм рс: принцип будови та функціонування
- •2.Програмування інтервального таймера на рівні портів
- •3.!Читання конcтант перерахунку каналів інтервального таймера і8253/і8254
- •4.! Читання байту стану каналів 0-2 інтервального таймера: спосіб 1, 2.
- •5.! Системний час в івм рс: таймер bios (таймер ос).
- •6.Засоби bios та ос для роботи з таймером bios.
- •7.Реальний час в івм рс: годинник реального часу (rtc)
- •8.Функціональна схема годинника реального часу та порти доступу (rtc) на платі ibm pc.
- •9. Керуючі та регістри стану годинника реального часу (rtc).
- •10.Сигнальне переривання від годинника реального часу (rtc).
- •11. Періодичне переривання від годинника реального часу (rtc).
- •12.Програмування годинника реального часу (rtc).
- •13.Апаратна реалізація порту послідовної передачі даних на платі ibm pc, принцип побудови уапп.
- •14. Порти асинхронного адаптера та їх призначення
- •16. Контролер прямого доступу до пам’яті (dma). Призначення і основні функції
- •17.! Регістри каналів контролера прямого доступу до пам’яті (dma).
- •18.!Алгоритм ініціалізації контролера прямого доступу до пам’яті (dma).
- •19.! Реалізація прямого доступу до пам’яті (пдп) в івм рс ат
- •20.! Контролер переривань на платі івм рс (і8259): принцип будови та функціонування
- •21.Загальна схема переривань в івм рс ат
- •22.Види переривань: апаратні та програмні переривання
- •23.Особливості обробки апаратних переривань, пріоритети обслуговування запитів на переривання та їх зміна.
- •24. Суть і призначення векторів переривань. Таблиця векторів переривань та зміна її елементів.
- •25.! Порти доступу до контролера переривань на платі івм рс
- •27.Керування пам`яттю. Сегментація пам`яті.
- •28.Дескрипторні таблиці. Селектори сегментів.
- •29.Сторінкова організація пам`яті, сторінкове перетворення адреси.
- •30.Алгоритм сегмента сторінкової адресації.
17.! Регістри каналів контролера прямого доступу до пам’яті (dma).
18.!Алгоритм ініціалізації контролера прямого доступу до пам’яті (dma).
Контролер прямого доступу до пам'яті.
Прямий доступ до пам'яті (DMA) - це метод безпосереднього звернення до пам'яті, минаючи процесор. Процесор відповідає тільки за програмування DMA: настроювання на певний тип передачі, завдання початкової адреси і розміру масиву обмінюваних даних. Зазвичай DMA використовується для обміну масивами даних між системною пам'яттю і пристроями введення-виведення.
Обмін даними між процесором і пристроями введення-виведення здійснюється з системної шини, "господарем" якої є процесор. При використанні контролера DMA на час обміну даними він повинен отримати управління системною шиною, тобто стати її "господарем". По закінченні обміну підсистема DMA повертає процесору право керування шиною.
Архітектура комп'ютера PC AT включає в себе підсистему DMA, що складається з двох контролерів DMA Intel 8237, регістра старшого адреси DMA і регістрів сторінок DMA. Ці контролери забезпечують 7 каналів DMA.
Система забезпечує передачу даних по каналах DMA як по одному байту за цикл DMA, так і по два байти за цикл, виходячи з можливостей архітектури процесора (двухбайтного шини даних). Щоб зберегти спадкоємність підсистеми DMA в PC AT з аналогічною підсистемою в PC XT каскадирование "байтного" контролера DMA з розподілом каналів XT здійснюється через "немов" контролер DMA.
Загальний алгоритм ПДП.
Для здійснення прямого доступу до пам'яті контролер повинен виконати ряд послідовних операцій:
прийняти запит (DREQ) від пристрою введення-виведення;
сформувати запит (HRQ) в процесор на захоплення шини;
прийняти сигнал (HLDA), що підтверджує захоплення шини;
сформувати сигнал (DACK), що повідомляє влаштуванню про початок обміну даними;
видати адресу осередки пам'яті, призначеної для обміну;
виробити сигнали (MEMR, IOW або MEMW, IOR), що забезпечують управління обміном;
по закінченні циклу DMA або повторити цикл DMA, змінивши адресу, або припинити цикл.
Ініціалізація каналу DMA
Для ініціалізації каналу програма повинна виконати наступні кроки:
скинути тригер байтів командою запису в регістр 0Ch;
задати режим роботи каналу, виконавши запис за адресою 0Bh в регістр режиму MR;
заслати молодші 16 бітів 20-бітового адреси області пам'яті, яка буде використана для передачі даних, в регістр базового Адес (адреса порту залежить від номера каналу: 0 канал використовує адресу 00h, 1 канал - 02h, 2 канал - 04h, 3 канал - 06h );
заслати номер сторінки (старші 4 біти 20-бітового адреси) в регістр сторінок 81h;
завантажити регістр циклів прямого доступу до пам'яті CWR значенням, на 1 менше необхідної кількості переданих байтів (адреси цих портів для каналів 0 ... 3, відповідно, 01h, 03h, 05h, 07h;
дозволити роботу каналу, виконавши запис в регістр маски каналів за адресою 0Ah.
Відразу після дозволу канал починає передачу даних. Після закінчення передачі даних пристрій зазвичай виробляє переривання, яке служить ознакою закінчення передачі даних.
