Поиск по базе сайта:
Тема: Системні ресурси (продовження) Прямий доступ до пам\

Тема: Системні ресурси (продовження) Прямий доступ до пам'яті dma




Скачати 311.13 Kb.
НазваТема: Системні ресурси (продовження) Прямий доступ до пам'яті dma
Дата конвертації15.11.2012
Розмір311.13 Kb.
ТипДокументи
1. /AKC/БЛАНК_контролю_нау.doc
2. /AKC/КОНТРОЛЬНА_АКС.doc
3. /AKC/ЛЕКЦIф_м1/01_ЛЕКЦIЯ__1.doc
4. /AKC/ЛЕКЦIф_м1/02_ЛЕКЦIЯ__2.doc
5. /AKC/ЛЕКЦIф_м1/03_ЛЕКЦIЯ__3.doc
6. /AKC/ЛЕКЦIф_м1/04_ЛЕКЦIЯ__4.doc
7. /AKC/ЛЕКЦIф_м1/05_ЛЕКЦIЯ__5.doc
8. /AKC/ЛЕКЦIф_м1/06_ЛЕКЦIЯ__6.doc
9. /AKC/ЛЕКЦIф_м1/07_ЛЕКЦIЯ__7.doc
10. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/01_x86.doc
11. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/02_Поколiння_процесорiв_з_1_по_7.doc
12. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/03_Процесори_молодших_поколiнь.doc
13. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/04_Мiкропроцесори_шостого_поколiння.doc
14. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/05_Архiтектура_IA64.doc
15. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/06_Огляд_сучасних_процесорiв.doc
16. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/_00_ЛЕКЦIЯ__8.doc
17. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/_ПРОЦЕСОРИ_мат.doc
18. /AKC/ЛЕКЦIф_м1/ЛЕКЦIЯ__8_процесори/_Типи процесорiв.doc
19. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_01_ОРГАНIЗАЦ_ПАМ+.doc
20. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_02_ДИНАМIЧНА_ПАМ+.doc
21. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_03_ТАЙМIНГИ+.doc
22. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_а_ЛЕКЦIЯ_ОП.doc
23. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_б_ЛЕКЦIЯ_Таймiнги.doc
24. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_10/10_в_ЛЕКЦIЯ_Огляд_ОП.doc
25. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_00_Фiзична структура HDD.doc
26. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_01_НАКОПИЧУВАЧI_+.doc
27. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_02_ЛЕКЦIЯ_RAID_.doc
28. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_02_ПРИСТР_ЗБЕРЕЖ_ДАНИХ_1+.doc
29. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_03_IDE.doc
30. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_11/11_04_SCSI_.doc
31. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_12/12_01_ШИНИ_розширення.doc
32. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_12/12_01а_PCI.doc
33. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_12/12_01б_PCI_express.doc
34. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_00_Iнтерфейси.doc
35. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_01_СОМ.doc
36. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_02_LPT.doc
37. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_03+06_Iнтерфейси.doc
38. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_04_USB+FireWire.doc
39. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_05_Fibre Channel.doc
40. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_07_Bluetooth.doc
41. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_13/13_08_IrDa.doc
42. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_14/14_00_Вiдесистема.doc
43. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_14/14_00_вiдеоадаптер.doc
44. /AKC/ЛЕКЦIф_м2/ЛЕКЦIЯ_14/14_01_Аудио_ГУК_Р12.doc
45. /AKC/ПИТАННЯ+модуль2+акс.doc
46. /AKC/ПИТАННЯ_МОДУЛЬ_ь1+.doc
47. /AKC/тесты с ответами.doc
Національний авіаційний унуверситет
Завдання на контрольну роботу завданям курсової роботи з дисципліни «Архітектура комп’ютерних систем»
Тема 1 Класичні основи побудови еом. Покоління комп’ютерів
Тема 2 Основні архітектури кс
Тема: Системні ресурси Системними ресурсами
Тема: Системні ресурси. (продовження) Система переривань
Тема: Системні ресурси (продовження) Прямий доступ до пам'яті dma
1. Поняття системної плати
Тема організація введення-виведення І bios
X86 Intel 80x86
Архітектура і мікроархітектура процесорів. Покоління процесорів
Мікропроцесори фірми Intel молодших поколінь
Мікропроцесори шостого покоління
Архітектура ia-64
Arhitektura komp system
Рис 1 Верхній рівень структурної організації комп‘ютера
Зміст Введення
Тип процессора Микро-архитектура
Підсистеми пам'яті
Динамічне озп. Конструктивні особливості
Таймінги пам'яті поняття «таймінгів»
Тема 12. Класифікація запам’ятовуючих пристроїв. Типи оперативної пам’яті план лекції Поняття «пам’ять еом»
Тема 13. Таймінги
Arhitektura komp system
Тема 14. Фізична структура жорсткого диску
Жорсткі диски. Введення 2 Фізичний пристрій жорсткого диска 2
Raid-масиви початкового рівня Що таке raid?
Устройства хранения данных
Интерфейс ide ata/atapi и sата
Arhitektura komp system
8. pci/pci-x
Шини pci/pci-x
Шина pci express Шина pci express
Usb fireWire ps/2 ata (ide)/ атарі
Інтерфейс rs-232C — com-порт
Паралельний інтерфейс — lpt-порт
Універсальна послідовна шина
Usb (Universal Serial Bus універсальна послідовна шина) є промисловим стандартом розширення архітектури рс, орієнтованим на інтеграцію з телефонією І пристроями побутової електроніки. Версія 1
Fibre Channel Fibre Channel
Arhitektura komp system
Arhitektura komp system
Arhitektura komp system
Тема 11. Відеоадаптер
Img src= 44 html 2f3a33e
Питання до модуля №2
2) Основні компоненти машини фон Неймана 3) Які покоління комп’ютерів характеризуються децентралізацією управління процедурами вводу-виводу (системи переривання програм)
Які принципи програмно-керованих еом не використовувалися Нейманом

Тема: Системні ресурси (продовження)

Прямий доступ до пам'яті -- DMA

Прямий доступ до пам'яті (Direct Memory Access» DMA) - це обмін між системною пам'яттю (ОЗУ) і пристроєм, що виконується без безпосереднього участі процесора. Обмін здійснює контролер прямого доступу. Для пристроїв ISA в архітектурі PC/AT присутній централізований контролер DMA. сумісний з «історичною» мікросхемою i8237A. Для пристроїв шини PCI (і всіх її «родичів») контролер є частиною пристрою - майстра шини (bus master). Штатного централізованого контролера DMA, як це було в архітектурі ISA, для шини PCI немає1.

Багатоканальний контролер DMA програмований по командах від центрального процесора, присутній на системній платі PC-сумісного комп'ютера. Спочатку він використовувався пристроями шини ISA, тепер він використовується інтегрованою традиційною периферією: контролером НГМД портами LPT і СОМ і деякими вбудованими аудиозасобами. Процесор при обміні з DMA зайнятий тільки ініціалізацією контролера, це зводиться до запису в його регістри кількох байтів, які задають початкову адресу і розмір блоку пам'яті, який пересилається, напрям і режим обміну. Потім обмін продукують системна шина і контролер DMA, а ініціатором обміну виступає пристрій, що сигналізує контролеру DMA про свою готовності до обміну. Під час операцій DMA процесор може продовжувати роботу, якщо вибраний режим обміну не займає всієї пропускної здатності шини, яка задіяна процесором в даний момент (шини пам'яті, шини PCI, через які підключається ISA в сучасних комп'ютерах). Контролер DMA можна вважати найпростішим співпроцесором вводу-виводу, який розвантажує центральний процесор від рутинних операцій обміну.

У PC/AT доступні 7 каналів DMA: чотири 8-бітних (номери 0-3) і три 16-бітових (5-7), підключені до первинного та вторинного контролерам відповідно.

Канал 4 потрібно для каскадування (з'єднання контролерів), канал 2 - для контролера НГМД. Контролери DMA програмно сумісні з мікросхемами i8237, що використовувалися в перших моделях PC/XT і AT. Стандартні канали і адреси регістрів наведено в таблиці 3.

Таблиця 3. Стандартні канали прямого доступу до пам'яті



16-бітні канали DMA 5 - 7 забезпечують передачу тільки 16-бітових слів по парних адресам. Вони можуть бути використані і інтелектуальними пристроями для прямого керування шиною (bus mastering) ISA. При цьому контролер DMA, фактично, лише грає роль арбітра шини. Інтелектуальний контролер може виконувати більш ефективні процедури обміну, ніж стандартний контролер DMA. Однак архітектура шини ISA обмежує доступний простір пам'яті областю в 16 Мбайт, що за нинішніми мірками замало. Деякі операційні системи для таких адаптерів дозволяють під буфери резервувати область у межах молодших 16 Мбайт.

У контролерах 8237А регістри адрес і лічильники передач є 16-розрядними. Для розширення розрядності адреси застосовуються зовнішні регістри сторінок, що завантажуються програмно (і не модифікуються автоматично). Це сковує свободу використання контролера: передача не повинна перетинати кордонів 64-кілобайт (для 8-бітних каналів) або 128-кілобайт (для 16-бітних) сторінок. Стандартні регістри сторінок розширюють адресу тільки до 24 біт (адресуються тільки 16 Мбайт ОЗУ). Обмеження на доступну пам'ять для режиму DMA в нових машинах можуть бути зняті застосуванням розширення регістрів сторінок, але про ці не зовсім стандартні можливості, звичайно ж, має «знати» і програмне забезпечення.

Для інтерфейсу ПУ кожен канал DMA представляється парою сигналів: запит обміну - DRQx. підтвердження обміну -- DACKx#. В операціях по каналу DMA адресується поточна комірка пам'яті, адреса порту не фігурує, а вказується тільки пара сигналів, що відповідає номеру каналу.

Стандартний контролер DMA на шині ISA з частотою 8 МГц працює повільно, навіть у блокових передачах пропускна здатність не перевищує 1 Мбайт/с для 8-бітних каналів і 2 Мбайт/с для 16-бітових. Програмно-керований ввід-вивід, що виконується інструкціями REP INS/OUTS на тій же шині, може працювати в два рази швидше. З цієї причини для обміну даними з контролерами жорстких дисків стандартні канали DMA використовували рідко, при обміні РIO.

З появою шин МСА і EISA з'явився новий контролер DMA, програмно-сумісний з контролером AT, який має і додаткові можливості конфігурування. Він може працювати в більш продуктивних режимах (Туре А, В, С) зі швидкостями до 33 Мбайт/с. У системах PCI для обміну з пристроями системної плати можливе використання контролерів DMA з типом Type F (режим одиночної передачі або передачі за запитом і тільки з інкремент адреси).

За стандартними каналах DMA можливе звернення як до системної пам'яті (розташованої на системній платі), так і до пам'яті, підключеного до шин ISA і PCI. Звернення до 8-розрядної пам'яті, розташованої на адаптерах, допустимо тільки з 8-бітовим каналах (перетворення циклів виконувати нікому). Однак ПУ, що використовують ці канали, можуть розташовуватися лише в слотах ISA/EISA або на системній платі (контролер НГМД, LPT-порт в режимі ЕСР або Fast Centronics, аудіокодек). Якщо ці пристрої системної плати використовуються каналами DMA, то дані канали стають недоступними для абонентів шини ISA. Контролерам АТА, розташованим на системній платі, стандартні канали DMA не потрібні.

На час перехідного періоду, пов'язаного з відходом шини ISA необхідна була можливість емуляції каналів DMA для пристроїв шини PCI, що було обумовлено вимогою сумісності звукових карт PCI з існуючим програмним забезпеченням, що в багатьох випадках працює з апаратними засобами безпосередньо, без будь-яких драйверів. Фактичний стандарт на програмну модель звукової карти SB16 передбачає доставку цифрового потоку для каналу DMA. Існують два механізми емуляції каналів DMA: PC/PCI і DDMA. Механізм PC/PCI був розроблений фірмою Intel для забезпечення можливості використання слотів ISA блокнотними ПК, що підключаються до док-станції по шині PCI. Альтернативне рішення - механізм DDMA (Distributed Direct Memory Access - розподілений прямий доступ до пам'яті). Як відомо, контролери DMA для шини ISA розташовуються на системній платі, і керування декількома каналами виконується через одні й ті ж регістри. DDMA дозволяє «розчленувати» стандартний контролер і окремі його канали, які емалюються засобами карт PCI. Обидва цих механізми були реалізовані лише як частина мосту між первинною шиною РСI і шиною ISA. Тому їх підтримка може забезпечуватися (або не забезпечуватися) лише на системній платі і вирішуватися з CMOS Setup. Для інших карт розширення (наприклад, адаптерів локальних мереж, контролерів інтерфейсів) завдання емуляції DMA не виникає, оскільки з ними ПО, як правило, працює через драйвери, що поставляються разом з цими картами.


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

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

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

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

Передача даних у разі ПДП можлива по одному з наступних режимів:

  • Режим одиночної (поциклової) передачі. У цьому випадку за час надання ПДП виконується тільки один цикл передачі даних, і для наступної передачі треба знову ж таки запросити ПДП. Однак адресу пам'яті, з яким здійснюється обмін, автоматично змінюється після кожного циклу. Цей режим дозволяє процесору вставляти свої цикли обміну після кожного циклу ПДП.

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

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

  • Каскадний режим дозволяє об'єднувати контролери для збільшення кількості каналів ПДП.

  • В принципі, можливий режим передачі в режимі ПДП з пам'яті в пам'ять, але в комп'ютері він не використовується.

Як і у випадку контролера переривань, можливі дві схеми пріоритетів каналів ПДП, обрані програмно, - фіксований і циклічний. Вихідна схема - фіксовані пріоритети, причому нульовий канал має максимальний пріоритет, а сьомий - мінімальний. Під час обслуговування будь-якого запиту ПДП інші запити не можуть втрутитися, але після завершення обслуговування даного запиту буде обслуговуватися запит з найбільшим пріоритетом. Як і у випадку контролера переривань. Можливо програмне маскування кожного каналу ПДП.

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

Стандартний розподіл каналів запиту прямого доступу до пам'яті представлено в табл. 6.

Як і у випадку з контролерами переривань, тут застосовується два контролера, причому один з них каскадується через інший. На кожній лінії DRQ повинен бути один вихід ISA-пристрої. Канали, які першому контролеру ПДП (сигнали DRQ0 ... DRQ3), призначені лише для 8-бітного обміну, а відповідні другого контролера (DRQ5. .. DRQ7) - для 16-бітного. Канал DRQ4 використовується для каскадування двох контролерів ПДП і тому недоступний користувачам. Тип запиту DRQ0 має найвищий пріоритет, сигнал DRQ7 - найнижчий. У IBM PC XT канал DRQ0 використовувався для регенерації динамічної пам'яті. Кожен канал ПДП може передавати дані в межах 16-мегабайтного адресного простору блоками довжиною до 64 Кбайт (канали 0, 1, 2, 3) або до 128 Кбайт (канали 5, 6, 7).

Табл. 6. Стандартне розподіл каналів прямого доступу до пам'яті.

Номер каналу ПДП

Призначення

0

Резервний

1

Контролер бісинхронного обміну SDLC

2

Накопичувач на гнучкому диску

3

Резервний

4

Каскадування першого контролера

5

Резервний

6

Резервний

7

Резервний

Канали DMA використовуються високошвидкісними пристроями для безпосереднього взаємодії з основною пам'яттю. Ці канали дозволяють пристроям зберігати та видавати дані безпосередньо з пам'яті, не взаємодіючи з ЦП. Отримати призначення DMA-каналу можуть тільки певні пристрої, такі як хост-адаптери SCSI і звукові карти. У старих комп'ютерах для призначення компонентів надавалося лише чотири DMA-каналу. У нових комп'ютерах передбачено вісім DMA-каналів з номерами від 0 до 7 (див. рис. 3).




Природно, звичайному користувачеві запам\'ятати всю цю інформацію про розподіл ресурсів досить складно, до того ж при найменшій помилці можливі неприємності. Саме з цих міркувань фірмами Compaq Computer, Intel, Microsoft і Phoenix Technologies в 1993 році була запропонована технологія Plug-and-Play (PnP), яка покладає всі турботи про конфігурацію комп\'ютера на сам комп\'ютер. Користувач при цьому може навіть нічого не знати про адресний простір переривань і каналів прямого доступу, він просто підключає плату, і вона одразу ж починає працювати правильно. Правда, при цьому всі компоненти комп\'ютера (базова система вводу/виводу, BIOS, операційна система, прикладне програмне забезпечення, яке підключає пристрої) повинні підтримувати режим PnP. Зрештою, технологія PnP повинна працювати на всіх використовуваних інтерфейсах комп\'ютера.

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

Після завантаження операційної системи вступає в дію спеціальний програмний драйвер - менеджер конфігурації (configuration manager), який за допомогою драйверів-нумераторів шин (bus enumerators) визначає пристрої, що вимагають системних ресурсів. Якщо підключений пристрій не підтримує PnP і не може видати інформацію про себе, то така інформація повинна бути закладена в сформовану вручну базу даних. Вся зібрана інформація про поточну конфігурації зберігається в оперативній пам\'яті, в області hardware tree. Цю інформацію в подальшому використовує програма-арбітр ресурсів (resource arbitrator) при розподілі системних ресурсів між пристроями. Після цього менеджер конфігурації через нумератори шин повідомляє PnP-пристроїв про те, які ресурси комп\'ютера їм присвоєні, і дана інформація надалі зберігається в програмно доступних регістрах (або flash-EPROM) цих пристроїв. На цьому робота PnP з розподілу ресурсів закінчується, і далі комп\'ютер функціонує як завжди, звертаючись до всіх пристроїв стандартним чином.

Відзначимо також, що в деяких комп\'ютерах передбачена можливість так званого «гарячого підключення» зовнішніх пристроїв (тобто без виключення живлення комп\'ютера). Режим PnP повинен підтримувати і цю можливість, розподіляючи ресурси не тільки при початковому завантаженні, але і в міру підключення нових пристроїв.

Підсистема прямого доступу до пам\'яті


Прямий доступ до пам\'яті (ПДП) - Direct Memory Access (DMA) - Використовується для високошвидкісної передачі даних між пристроями вводу-виводу і оперативною пам\'яттю без втручання ЦП. Типовим прикладом використання DMA є контролери дисководів і вінчестера. У системах IBM PC XT / AT використовується контролер DMA Intel 8237A (рис. 13.5), Що забезпечує чотири 8-бітових каналу DMA. У IBM PC AT застосовується каскадне включення двох контролерів DMA (рис. 13.6): 8237A, що забезпечує чотири 8-бітових каналу, і 8237A-5, що забезпечує чотири 16-бітових каналу (див. табл. 13.2).

Таблиця 13.2. Канали DMA в IBM PC AT

Канал

Призначення

Розрядність

0

Пристрій на шині ISA

8

1

Контролер інтерфейсу SDLC

8

2

Контролер дисководу

8

3

Контролер вінчестера

8

4

Використовується для каскадування

16

5

Пристрій на шині ISA

16

6

Пристрій на шині ISA

16

7

Пристрій на шині ISA

16



Рис. 13.5. Структура контролера DMA Intel 8237A



Рис. 13.6.Каскадне включення контролерів у IBM PC AT

В активному циклі обслуговування підсистеми DMA можливо в одному з чотирьох режимів:

  • режим одиночної передачі (Single Transfer Mode);

  • режим передачі блоку (Block Transfer Mode);

  • режим передачі на вимогу (Demand Transfer Mode);

  • каскадний режим (Cascade Mode).

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

Для 8-бітних каналів DMA регістр сторінки визначає біти 16-23 фізичної адреси, а регістр бази - біти 0-15:

2 16

3

8 7 0

5

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

регістр бази

Для 16-бітових каналів DMA використовується тільки 7 біт регістра сторінки, що визначають біти 17-23 фізичної адреси. При цьому регістр бази каналу задає біти 1-16. Біт A0 завжди виставляється в 0, щоб гарантувати вирівняну передачу слова пам'яті:

23 17

16 15 8 7 1

0

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

регістр бази

0

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

  • SI - пасивний стан;

  • S0 - перша стан обслуговування підсистеми DMA, Що виникає по дійсному запитом (DREQ);

  • S1, S2, S3, S4 - робочі стану;

  • SW - стан очікування.



Тема: Системні ресурси (продовження)

Простір вводу-виводу

Стандартне розподіл адрес в адресному просторі пристроїв введення / виводу персонального комп'ютера наведено в табл. 4.

Як уже зазначалося, стандарт допускає адресацію 64К пристроїв введення / виводу (тобто можна використовувати 16 розрядів адреси). Однак переважна більшість плат розширення для спрощення апаратури використовує тільки 10 молодших розрядів, що відповідає за все 1К (або 1024) адрес (від 000 до 3FF в шістнадцятковому коді). При цьому 16-розрядні порти введення / виводу мають парні адреси, тобто їх може бути всього 512.

Табл. 8.4. Розподіл адрес пристроїв введення / виводу.

Адреса

Призначення

000 ... 01F

Контролер ПДП 1

020 ... 03F

Контролер переривань 1

040 ... 05F

Програмований таймер

060 ... 06F

Контролер клавіатури

070 ... 07F

Годинник реального часу

080 ... 09F

Регістр сторінки ПДП

0A0 ... 0BF

Контролер переривань 2

0С0 ... 0DF

Контролер ПДП 2

0F0 ... 0FF

Математичний співпроцесор

170 ... 177

Накопичувач на жорсткому диску (друга)

1F0 ... 1F7

Накопичувач на жорсткому диску (перший)

200 ... 207

Ігровий порт (джойстик)

278 ... 27F

Паралельний порт LPT2

2С0 ... 2DF

Адаптер EGA 2

2F8 ... 2FF

Послідовний порт COM2

300 ... 31F

Прототипну плати

320 ... 32F

Накопичувач на жорсткому диску XT

360 ... 36F

Резервні адреси







370 ... 377

Накопичувач на гнучкому диску (друга)

378 ... 37F

Паралельний порт LPT1

380 ... 38F

Контролер бісінхронного обміну SDLC2

3A0 ... 3AF

Контролер бісінхронного обміну SDLC1

3B0 ... 3DF

Адаптер VGA

3B0 ... 3BF

Адаптер дисплея MDA та принтера

3C0 ... 3CF

Адаптер EGA 1

3D0 ... 3DF

Адаптер СGA

3F0 ... 3F7

Накопичувач на гнучкому диску (перший)

3F8 ... 3FF

Послідовний порт COM1

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

Процесори сімейства х86 мають роздільну адресацію пам'яті та портів вводу-виводу. Це роздільність забезпечується виділенням спеціальних інструкцій вводу-виводу, за допомогою яких можлива передача даних між портами і регістрами процесора (або портами і пам'яттю). Інструкції вводу-виводу породжують шинні цикли обміну, в яких виробляються сигнали читання з порту і записи в порт. На шині ISA це сигнали IORD# і IOWR#. Відповідно, вони і відрізняють простір вводу-виводу від простору пам'яті, де відповідні операції читання і запису виробляють сигнали MEMRDK до MEMWR#, на шині РСI поділ пам'яті і простору вводу-виводу відбувається інакше - тут тип операції: кодується 4-байтного командою в залежності від типу інструкції, що виконується процесором.

В інструкціях вводу-виводу використовується 16-бітна адресація, що обумовлена розміром простору введення-виведення в 64 кбайт. Для дешифрування адрес портів та оригінального ПК з 16 біт використовувалися тільки молодші 10 (A0 --A9), що забезпечувало звернення до портів в діапазоні адрес 0-3FFh. Старші біти адреси хоча і надходять на шину, але пристроями ігноруються. У результаті звернення за адресами, приміром, 378h, 778h, B78h і F78h, сприймається пристроями однаково. Це спрощення, націлене на зниження вартості як системної плати, так і схем плат адаптерів, для шипи ISA ніхто не відміняв. Застарілі адаптери (legacy card) для шини ISA для старших бітів адреси не мають навіть друкованих ламелей на своєму червоному роз'ємі. Згодом перейшли до 12-бітної адресації пристроїв шини ISA але її приходиться застосовувати з огляду на можливу наявність пристроїв з 10-бітної адресацією. У адаптерах для шин МСА і РСI використовуються всі 16 біт адреси, повна дешифрування адреси застосовується і в сучасних системних платах. Карта розподілу адрес вводу-виводу стандартний пристроїв PC наведена в табл. 1. Ця карта передбачає 10-бітну дешифрування адреси. Природно, що в конкретному комп'ютері реально присутні не всі перераховані пристрої, але в той же час там можуть опинитися інші, які не потрапили в таблицю.

Адреси портів вводу-виводу використовуються для забезпечення зв'язку між пристроями та програмним забезпеченням. Адреса порту вводу-виводу використовується для надсилання та отримання даних, пов'язаних з компонентом. Як і у випадку з запитами на переривання, для кожного компонента призначається унікальний порт вводу-виводу. У комп'ютері є 65535 портів вводу-виводу, кожному з яких присвоюється шістнадцяткова адреса в діапазоні від 0000 до FFFF. На рис. 2 наведена таблиця найбільш поширених портів вводу-виводу.



Порти вводу-виводу. Перше, що треба знати: стандартний діапазон адрес використовуваних портів вводу-виводу для IBM PC-сумісних комп'ютерів (виняток складають комп'ютери з шиною EISA) становить від 1 до 3FFh включно. Сюди входять порти контролерів клавіатури, жорстких і гнучких дисків, EGA/VGA, Послідовних і паралельних портів і т.д. (табл. 4).

Таблиця 4.Розподіл адрес портів вводу-виводу

Діапазон адрес

Використання

АТ

ХТ

00 - 01F

000 - 01F

Контролер DMA № 1

020 - 03F

020 - 021

Контролер переривань № 1

040 - 05F

040 - 043

Таймер

--

069 - 063

Програмований або периферійний інтерфейс, PPI

060 - 06F

--

Контролер клавіатури 8042

070 - 07F

--

RTC, CMOS, RAM

080 - 09F

080 - 083

Порти DMA (регістри сторінок)

0A0 - DBF

--

Контролер переривань № 2

0C0 - 0DF

--

Контролер DMA № 2

0F0 - 0FF

--

Математичний співпроцесор

170 - 177

--

Жорсткий диск (вторинний)

1F0 - 1F7

--

Жорсткий диск

200 - 207

200 - 20F

Ігровий порт

278 - 27F

278 - 27F

Паралельний порт № 2

2C0 - 2DF

2C0 - 2DF

Адаптер EGA № 2

2F8 - 2FF

2F8 - 2FF

Послідовний порт № 2

300 - 31F

--

Плати прототипів

--

320 - 32F

Жорсткий диск

370 - 377

--

Контролер флоппі (вторинний)

378 - 37F

378 - 37F

Паралельний порт № 1

3B0 - 3DF

3B0 - 3DF

Адаптер VGA

3C0 - 3CF

3C0 - 3CF

Адаптер EGA № 1

3D0 - 3DF

3D0 - 3DF

Адаптери CGA і EGA

3F0 - 3F7

3F0 - 3F7

Контролер флоппі

3F8 - 3FF

3F8 - 3FF

Послідовний порт № 1

Діапазон адрес портів вводу-виводу з 300h по 31Fh призначається для так званих плат-прототипів (proto--type card), які можуть бути розроблені незалежними виробниками. Про це слід пам'ятати, оскільки велика кількість плат різних існуючих адаптерів дійсно використовують цей діапазон адрес.

Нагадаємо, що порти вводу-виводу, як правило, використовуються блоками. Інакше кажучи, завжди є певний базовий адресу порту (часто це вказується в документації), а безпосередньо за ним може слідувати ще кілька адрес, також використовуються для регістрів цього пристрою. Простіше за все «за замовчуванням» припустити, що адаптер після базового займає ще 15 адрес, хоча на практиці число послідовно задіяних портів для одного пристрою зазвичай менше.

Найпростіший приклад, на якому можна проілюструвати сказане, - це адаптер паралельного інтерфейсу. Як відомо, частіше за все цей адаптер використовується для підключення принтера (принтер-порт). Так ось, починаючи з базового, кожен такий адаптер реально займає всього три адреси. Перший відповідає регістру даних, що посилаються від комп'ютера, другий (базова адреса плюс 1) - регістру статусу і третій (базова адреса плюс 2) - регістру управління. Таким чином, наприклад, для LPT1, базова адреса якого 370h, використовуються також порти 371h і 372h. Слід зазначити, що, взагалі кажучи, для адаптера паралельного інтерфейсу в адресному просторі портів резервується 16 адрес: від 370h до 37F.

Нагадаємо також, що число читаних і записуваних регістрів не завжди збігається з кількістю портів, які безпосередньо адресуються. Взяти, наприклад, послідовний адаптер, який займає всього 8 послідовних адрес (COM1: від 3F8h до 3FFh), але з допомогою певного «трюку» звернення може відбуватися до 11 регістрів.

Найчастіше можлива така ситуація, коли всі або деякі контролери та адаптери для таких пристроїв, як послідовні і паралельні інтерфейси, bus--mouse, джойстик, вінчестер і привід флоппі-дисків, виконані на одній платі (наприклад, Super AT I/O або AT Multi I/O Card). Установка діапазонів адрес, а також заборону або дозвіл будь-якого з цих пристроїв, здійснюється встановленням або видаленням спеціальних перемичок (джамперів) або включенням-виключенням двопозиційних перемикачів (DIP -- switches). Втім для стандартних пристроїв такі перемикання забезпечують лише «первинність» одного з пристроїв. Наприклад, перший контролер для приводів флоппі-дисків має діапазон адрес 3F1-3F7h, А другий - 370 - 377h. Аналогічно і для вінчестерів: перший 1F0-1F7h, другий 170 - 177h.

Вибір базових адрес стандартних пристроїв (3F8h, 3F0h. 378h і т. п.) пояснюється прагненням до економії. Ці адреси вибиралися так, щоб в їх дешифрування брало участь максимальна кількість одиниць і мінімальне - нулів (логічні схеми «І-НЕ» застосовуються частіше, ніж схеми «АБО», а застосування більш складних схем для дешифрування було небажано).

Кожній шині призначається своя область адрес вводу, і дешифратор адрес, розташований на системній платі, при читанні відкриває відповідні буфери даних, так що реально зчитуватися будуть дані тільки з однієї шини. Під час запису в порти дані (і сигнал запису) можуть поширюватися і по всіх шинах комп'ютера (широкомовно). У стандартному розподілі адреси 0h-0FFh відведені для пристроїв системної плати. За наявності (і дозволу роботи) периферійних пристроїв на системній платі читання за цими адресами не поширюється на шини розширення. Для сучасних плат з вбудованому периферією і декількома шинами (ISA, PCI) розподілом адрес керує BIOS через регістри конфігурування чипсету, а в ієрархії шин РСI (і PCI-E) діапазони адрес задаються програмуванням мостів.

Таблиця 1. Стандартна карта портів вводу-виводу




Тема: Системні ресурси (продовження)

Системні пристрої

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

Тактовий генератор


Системний тактовий генератор генерує сигнали синхронізації для роботи мікропроцесора, всіх контролерів і системної шини. Для забезпечення високої стабільності тактових частот та їх незалежності від температури застосовуються кварцові резонатори, тобто кристали кварцу, що мають высокостабильную частоту власних коливань. Як правило, до складу системної плати входить кілька кварцових резонаторів, кожний з яких забезпечує свій тактовий сигнал. Тактову частоту процесора можна вибирати шляхом установки перемичок на системній платі. Це дозволяє користувачеві модернізувати комп'ютер шляхом заміни процесора на інший, розрахований на більш високу тактову частоту. Іноді вдається змусити процесор працювати на більш високою тактовою частотою, ніж та, на яку він розрахований, але тут потрібно бути обережним, тому що підвищення частоти веде не тільки до збільшення споживаної потужності і перегріву мікросхеми, але й до помилок і збоїв у роботі, причому виявляються тільки в окремих режимах, наприклад, у багатозадачному.

У комп'ютерах на базі процесорів 486 та Pentium застосовується розподіл опорної тактової частоти для синхронізації системної шини і внутрішнє множення частоти в процесорах. Наприклад, у процесорі 486DX2-66 використовується множення на два тактової частоти 33,3 МГц, а в процесорах сімейства Pentium застосовується множення на 2,5 (при опорної частоті 60 МГц частота процесора 150 МГц) або на 3 (при опорної частоті 66,6 МГц частота процесора 200 МГц).

У загальному випадку в комп'ютері існують наступні тактові частоти:

  • Host Bus Clock (CLK2IN) - це опорна частота (зовнішня частота шини процесора). Саме з неї можуть утворюватися інші частоти і саме вона задається перемичками (джампери);

  • CPU Clock (Core Speed) - це внутрішня частота процесора, на якій працює його обчислювальний ядро. Може збігатися з Host Bus Clock або виходити з неї множенням на 1,5, 2, 2,5, 3, 4. Множення повинно бути передбачено в конструкції процесора.

  • ISA Bus Clock (ATCLK, BBUSCLK) - це тактова частота системної шини ISA (сигнал SYSCLK). За стандартом вона повинна бути близька до 8 МГц, але в BIOS Setup є можливість вибрати її через коефіцієнт розподілу частоти Host Bus Clock. Іноді комп'ютер залишається дієздатним і при частоті шини ISA близько 20 МГц, але зазвичай плати розширення ISA розробляються з розрахунку на 8 МГц, і при великих частотах вони перестають працювати. Не слід розраховувати, що комп'ютер стане удвічі швидше за подвоєння цієї частоти. Для каналів прямого доступу до пам'яті на системній платі використовується ще один тактовий сигнал SCLK, Частота якого, як правило, становить половину від ISA Bus Clock.

  • PCI Bus Clock - це тактова частота системної шини PCI, яка за стандартом має бути 25 - 33,3 МГц. Її зазвичай отримують діленням частоти Host Bus Clock на потрібний коефіцієнт. У комп'ютерах передбачається можливість її збільшення до 75 або навіть 83 МГц, але з міркувань надійності роботи рекомендується дотримуватися стандартних значень.

  • VLB Bus Clock - це частота локальної шини VLB, що визначається аналогічно PCI Bus Clock.

Контролер переривань

Контролери радіальних переривань в перших комп'ютерах виконувалися на мікросхемах i8259, кожна з яких мала 8 входів запиту переривань. У IBM PC AT застосовувалося два таких мікросхеми, в результаті чого кількість входів запитів переривань збільшилася до 15. Режими роботи контролерів переривань визначаються процесором шляхом запису відповідних керуючих кодів за адресами в просторі пристроїв введення / виводу.

Про циклах обміну по перериваннях вже говорилося в розділі 2.2.2. Під час отримання запиту переривання на один з входів IRQ і задоволенні цього запиту контролер переривань виробляє вихідний сигнал запиту переривання, що надходить на процесор. У відповідь на це процесор контролер запитує про те, переривання з яким адресою вектора необхідно обслужити. Всього переривань може бути 256 (від 00 до FF). Номер переривання, отриманий від контролера, процесор множить на 4 і отримує, таким чином, адрес пам'яті, де зберігається адреса початку програми обробки переривань (вектор переривання). Присвоєння кожному з каналів IRQ свого номера процесор здійснює на етапі ініціалізації контролера.

Контролер переривань може виконувати наступний набір операцій:

  • маскування запитів на переривання, тобто тимчасова заборона реакції на них;

  • встановлення пріоритетів запитів з різних входів, то є дозвіл конфліктів при одночасному прихід декількох запитів на переривання;

  • робота в якості основного контролера (Master) або підлеглого (Slave).

Для маскування переривань використовується внутрішній регістр контролера, програмно доступний процесору як по запису, так і з читання. Замаскований може бути кожен запит (по кожній з ліній IRQ), Шляхом встановлення відповідного біта маскування в записуваному в контролер керуючого байті.

Схема пріоритетів переривань може бути задана процесором програмним шляхом. У базовому варіанті всі пріоритети фіксовані (тобто IRQ0 має вищий пріоритет, а IRQ7 - Нижчий). Але в принципі вищий пріоритет задається для кожного з входів запитів, можна також встановити циклічне перемикання пріоритетів (останній обслужений запит одержує нижчий пріоритет), забезпечуючи тим самим всім запитам рівні пріоритети. Якщо під час обробки переривання з меншим рівнем пріоритету приходить більш пріоритетний запит, то процесор переходить на програму обробки більш пріоритетного запиту, а після її виконання повертається до програми обробки менш пріоритетного запиту. Відзначимо, що немаскіруемое переривання NMI має пріоритет вище будь-якого іншого апаратного переривання.

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

Контроллер 8259 передбачає можливість вибору способу розпізнавання запиту на переривання - по фронту сигналу IRQ і за рівнем цього сигналу. В архітектурі комп'ютера типу PC використовується запит по фронту.

При каскадування контролерів основному контролеру треба вказати, до якого з його входів підключений підлеглий контролер, а підлеглому контролеру необхідно вказати, до якого входу основного контролера підключений його вихідний сигнал запиту.

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

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

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

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

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

Передача даних у разі ПДП можлива по одному з наступних режимів:

  • Режим одиночної (поцікловой) передачі. У цьому випадку за час надання ПДП виконується тільки один цикл передачі даних, і для наступної передачі треба знову ж таки запросити ПДП. Однак адресу пам'яті, з яким здійснюється обмін, автоматично змінюється після кожного циклу. Цей режим дозволяє процесору вставляти свої цикли обміну після кожного циклу ПДП.

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

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

  • Каскадний режим дозволяє об'єднувати контролери для збільшення кількості каналів ПДП.

  • У принципі, можливий режим передачі в режимі ПДП з пам'яті в пам'ять, але в комп'ютері він не використовується.

Як і у випадку контролера переривань, Можливі дві схеми пріоритетів каналів ПДП, Обрані програмно, - фіксований і циклічний. Вихідна схема - фіксовані пріоритети, причому нульовий канал має максимальний пріоритет, а сьомий - мінімальний. Під час обслуговування будь-якого запиту ПДП інші запити не можуть втрутитися, але після завершення обслуговування даного запиту буде обслуговуватися запит з найбільшим пріоритетом. Як і у випадку контролера переривань, Можливо програмне маскування кожного каналу ПДП.

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

Системний таймер і годинник реального часу

В якості системного таймера комп'ютера використовується мікросхема трьохканальному 16-розрядного таймера i8254 або її аналог. Таймер призначений для отримання програмно керованих тимчасових затримок і генерації сигналів заданої частоти. Таймер дозволяє підвищити ефективність програмування процесів управління і синхронізації зовнішніх пристроїв, особливо в реальному часі.

Таймер містить три незалежні канали (0, 1 і 2), кожен з яких може бути, в принципі, запрограмований на роботу в одному із шести режимів рахунку:

  • переривання термінального рахунку;

  • програмований генератор одиночного імпульсу;

  • генератор імпульсів заданої частоти;

  • генератор прямокутних імпульсів типу "меандр";

  • програмно формується строб;

  • апаратно формується стрибає.

На кожен канал можуть подаватися вхідні синхросигналами. З кожного каналу можна отримувати сигнал з частотою, що дорівнює вхідний частоті, діленої на довільне 16-розрядне число. У комп'ютері на всі входи надходять синхросигналами частотою 1,19 МГц. Всі канали таймера в комп'ютері мають спеціальне призначення, тому особливої свободи у виборі режиму роботи або перепризначення функцій у користувача немає.

  • Вихід каналу 0 пов'язаний з сигналом запиту переривання IRQ0 і забезпечує переривання для лічильника реального часу (використовується режим роботи 3). Користувачу не рекомендується перепрограмувати цей канал. При старті комп'ютера канал програмується так, щоб видавати імпульси приблизно 18,2 рази в секунду. З цього переривання програмно збільшується стан лічильника реального часу. Користувач може читати стан даного лічильника зі спеціально виділеної комірки пам'яті і застосовувати його для затримок у своїх програмах.

  • Вихід каналу 1 генерує сигнал запиту регенерації динамічної пам'яті (режим роботи 2). Використання цього каналу не передбачені, може призвести до втрати вмісту оперативної пам'яті.

  • Вихід каналу 2 генерує звуковий сигнал для вбудованого динаміка комп'ютера (режим роботи 3). Проте вирішення цього тонального сигналу проводиться установкою виділених розрядів (0 і 1) програмно доступного паралельного порту контролера периферійних пристроїв. Один розряд (0) дозволяє роботу каналу, інший розряд (1) пропускає вихідний сигнал на динамік.

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

Підсистема годин реального часу в перших комп'ютерах виконувалася на мікросхемі контролера MC146818 фірми Motorola. Цей контролер містить 64 байти СMOS-пам'яті, з яких перші 14 байт використовуються для годинника реального часу, а інші 50 байт зберігають інформацію про конфігурацію системи.

Для вхідного тактового сигналу контролера застосовується спеціальний "вартовий" кварцовий генератор з частотою 32 768 кГц, що дозволяє за допомогою поділу частоти отримати імпульси з частотою 1 Гц. Контролер вважає секунди, хвилини, години, дні тижня, місяці і роки. Причому працює він навіть при відключенні живлення комп'ютера, підживлюючи від батареї чи акумулятора. Це дозволяє зберігати дані часу постійно.

Крім лічильника поточного часу, контролер має у своєму складі будильник. Будильник може формувати переривання (IRQ8) З програмно заданою періодичністю. Стани всіх лічильників (секунд, хвилин, годин і т.д.) програмно доступні як з читання, так і по запису, що дозволяє встановлювати потрібний час і стежити за ним.









Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації