Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Архітектура ПЕОМ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
237.56 Кб
Скачать

14. Порти асинхронного адаптера та їх призначення

На етапі ініціалізації системи модуль POST BIOS тестує наявні асинхронні адаптери і ініціалізує перші два. Їх базові адреси розташовуються в області даних BIOS починаючи з адреси 0000:0400 h.

Перший адаптер COM1 має базовий адресу 3F8h і займає діапазон адрес від 3F8h до 3FFh. Другий адаптер COM2 має базовий адресу 2F8h і займає адреси 2F8h ... 2FFh.

Асинхронні адаптери можуть виробляти переривання:

COM1 - IRQ4 (відповідає INT 0Ch)

COM2 - IRQ3 (відповідає INT 0Bh)

Розглянемо призначення окремих бітів цих портів.

Порт 3F8h.

Цей порт відповідає регістру переданих даних. Для передачі в порт 3F8h необхідно записати передається байт даних. Після прийому даних від зовнішнього пристрою вони можуть бути прочитані з цього порту.

Залежно від стану старшого біта керуючого слова, виведеного в керуючий регістр з адресою 3FBh, призначення порту 3F8h може змінюватися. Якщо цей біт дорівнює 0, порт використовується для запису даних, що передаються. Якщо ж біт дорівнює 1, порт використовується для виведення значення молодшого байта дільника частоти тактового генератора. Змінюючи вміст дільника, можна змінювати швидкість передачі даних. Старший байт дільника записується в порт 3F9h.

Порт 3F9h.

Порт використовується або як регістр управління переривань від асинхронного адаптера або (після виведення в порт 3F9h байти з встановленим в 1 старшим бітом) для виведення значення старшого байта дільника частоти тактового генератора.

Порт 3FAh.

Регістр ідентифікації переривання. Зчитуючи його вміст, програма може визначити причину переривання.

Порт 3FBh.

Керуючий регістр, доступний по запису та читання.

Порт 3FCh.

Регістр управління модемом. Управляє станом вихідних ліній DTR, RTS, ліній, специфічних для модемів OUT1 і OUT2, для запуску діагностики з'єднаних разом замкнутих вході і виході асинхронного адаптера.

Порт 3FDh.

Регістр стану лінії

Порт 3FEh.

Регістр стану модему

15.??????

16. Контролер прямого доступу до пам’яті (dma). Призначення і основні функції

Прями́й до́ступ до па́м'яті ( англ. Direct Memory Access, DMA) - режим обміну даними між пристроями або ж між пристроєм і основною пам'яттю (RAM) без участі центрального процесора (ЦП). У результаті швидкість передачі збільшується, так як дані не пересилаються в ЦП і назад.

Крім того, дані пересилаються відразу пачками слів, адреси яких розташовані поспіль, що дозволяє використання т. зв. «Пакетного» (burst) режиму роботи шини : 1 цикл адреси та наступні за ним численні цикли даних.

Аналогічна оптимізація роботи ЦП з пам'яттю вкрай утруднена.

В оригінальній архітектурі IBM PC (шина ISA) був можливий лише за наявності апаратного DMA-контролера (мікросхема з індексом Intel 8237).

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

ЦП програмує контролер DMA, встановлюючи його регістри. Потім процесор дає команду пристрою (наприклад, диску) прочитати дані у внутрішній буфер. DMA-контролер починає роботу, посилаючи пристрою запит читання (при цьому пристрій навіть не знає, чи прийшов запит від процесора або від контролера DMA). Адреса пам'яті вже знаходиться на адресній шині, так що пристрій знає, куди слід переслати наступне слово зі свого внутрішнього буфера. Коли запис закінчено, пристрій посилає сигнал підтвердження контролеру DMA. Потім контролер збільшує використовувану адресу пам'яті і зменшує значення свого лічильника байтів. Після чого запит читання повторюється, поки значення лічильника не стане дорівнювати нулю. По завершенні циклу копіювання пристрій ініціює переривання процесора, що означає завершення перенесення даних.

Контролер може бути багатоканальним, здатним паралельно виконувати кілька операцій

Контролер прямого доступу до пам'яті

Контролер прямого доступу до пам'яті має більш складну структуру в порівнянні з контролером переривань. Що пов'язано з його більш складними функціями. На час прямого доступу до пам'яті контролер ПДП стає задатчиком (активним пристроєм) системної шини, виставляючи всі основні сигнали на шини самостійно. Проте всі режими роботи контролера ПДП, всі його параметри встановлюються процесором на етапі ініціалізації контролера. Зокрема, процесор визначає тип розв'язуваної задачі, задає початкову адресу масиву даних, який передається або приймається, а також розмір цього масиву.

У персональному комп'ютері застосовується два чотирьохканальних контролера ПДП типу i8237, що забезпечують 7 каналів ПДП (один канал задіяний під каскадування контролерів за тим же принципом, що і контролери переривань). Крім власне контролерів ПДП в підсистему ПДП входять також програмно доступні регістр старшого байту адреси і регістри сторінок ПДП.

Отримавши сигнал запиту ПДП по одній з ліній DRQ, Контролер формує запит процесору на захоплення шини і, отримавши дозвіл від процесора, повідомляє про надання ПДП запит прямо доступ пристрою по відповідній лінії DACK. Після цього проводиться цикл ПДП. Пересилати дані з пристрою вводу/виводу в пам'ять або навпаки. При цьому сам контролер ПДП формує тільки 16 молодших розрядів адреси пам'яті, а вісім старших розрядів містяться в реєстрі сторінок. Свій власний регістр сторінок відповідає кожному з каналів ПДП.