Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Дослідження структури та принципу роботи контролера прямого доступу до пам’яті на прикладі підсистеми контролера ПДП персонального комп’ютера типу IBM PC AT

Тип роботи: 
Лабораторна робота
К-сть сторінок: 
21
Мова: 
Українська
Оцінка: 

на шину LA23-LA17, зробити паузу, щоб дати можливість іншим пристроям дешифрувати адреси і видати, якщо потрібно, активний сигнал -MEMCS16.  Після цього адаптер повинен видати розряди адреси на шину SA19-SA0, -BHE разом із сигналом BALE, знову дати можливість пристроям дешифрирувати адреси і тільки тоді видати потрібну команду (-MEMR, -MEMW, -ІOR чи -ІOW) і дані, якщо виконується цикл запису.  Тобто  адаптер відпрацьовує звичайний, з погляду  роботи пасивних для шини пристроїв, цикл так, як це робить процесор.

Необхідно також пам'ятати, що не можна скільки завгодно довго тримати шину під керуванням, не віддаючи її мікропроцесору.  Це зв'язано необхідністю регенерації пам'яті.  Запити на регенерацію надходять черезкожні 15 мкс. Запит повинний бути обслугований до того, як надійде наступний запит.  Тому не слід займати шину на час більш 15 мкс.
 
Канали контролерів ПДП
 Канали контролера 1 (0, 1, 2 і 3) призначені для виконання побайтних передач ПДП з 8-розрядними портами (блоками до 64  байт).  З чотирьох каналів контролера 2 (4, 5, 6, 7) канали 5, 6 і 7 призначені для обміну словами з 16-розрядними портами (блоками до 128  байт). На відміну від мікропроцесора підсистема ПДП передає слова тільки по парній границі адреси.  Канал 4 використовується для каскадного  об'єднання з контролером 2. Таким чином, усі запити каналів 0-3  контролера 1 обробляються через канал 4 контролери 2. Це приводить до того, що всі канали контролера 1 (канали 0, 1, 2 і 3) мають більшвисокий пріоритет у порівнянні з каналами контролера 2 (канали 5, 6, 7).  Розподіл каналів контролерів ПДП приведене в табл. 3.
       
Табл. 3. Розподіл каналів контролерів ПДП
каналВикористання в ATРозподіл
0Резерв8
1Адаптер інтерфейса SDLC   8
2Адаптер НГМД8
3Резерв8
4Використовується для каскадування контролерів16
5Резерв16
6Резерв16
7Резерв16
 
Регістри сторінок
Регістр сторінок  знаходяться в пам'яті і містить 8 старших розрядів 24-розрядної адреси. Разом з контролерами ПДП він визначає повну (24-розрядну) адресу для каналів ПДП. У табл. 4. приведені адреси портів регістрів сторінок для каналів ПДП.
 
Табл. 4. Адреси портів регістрів сторінок
Канал ПДПАдрес порта регістра сторінки
0087h
1083h
2081h
3082h
4-
508Вh
6089h
708Ah
регенерація08Fh *
Вміст регістра сторінок з метою регенерації повинний бути  00h.
 
 
Адресація портів
 У табл. 5 приведені адреси портів – регістрів адреси ОП і керування/стану контролерів ПДП, а також формати регістрів.
Табл. 5. Адреси портів
Функциї регістрівформатАдресат портівЧитання/запис
DMA1DMA2
Регістр стану (STAT(Read Status Regіster)8008h0D0hЧитання
Регістр команд (CR)(Wrіte Command Regіster)8Запис
Регістр режиму (MOD(Wrіte Mode Regіster)600Bh0D6hЗапис
Регістр режиму (MOD) *** (Read Mode Regіster)Читання
Запис одиночних розрядів регістра маски(Wrіte Sіngle askRegіster)400Ah0D4hЗапис
Регістр команд (CR) *** (Read Command Regіster)8Читання
Запис усіх розрядів маски (Wrіte Mask Regіster)400Fh0DEhЗапис
Регістр маски (MASK) ***  (Read Mask Regіster)Читання
Програмний регістр запитів (REQ)** (Wrіte Request Regіster)4009h0D2hЗапис
(Read Request Regіster) Регістр запитів ***     Читання
Базовый и текучий регистры адреса - канал 016000h0C0hЗапис
Текущий регистр адреса - канал 016000h0C0hЧитання
Базовый и текучий регистры cчетчика канал 016001h0C2hЗапис
Поточний регістр лічильника - канал 016001h0C2hЧитання
Базовый и текучий регистры адреса - канал 116002h0C4hЗапис
Поточний регістр адреси - канал 116002h0C4hЧитання
Базовий і поточний регістри cчетчика - канал 116003h0C6hЗапис
Поточний регістр лічильника  - канал 116003h0C6hЧитання
Базовий і поточний регістри адреси - канал 216004h0C8hЗапис
Базовий і поточний регістри адреси - канал 216004h0C8hЧитання
Поточний регістр адреси - канал 216005h0CAhЗапис
регістри cчетчика Базовий і поточний канал 216005h0CAhЧитання
Поточний регістр лічильника - канал 216006h0CChЗапис
Базовий і поточний регістри адреси - канал 316006h0CChЧитання
Поточний регістр адреси -  канал 316007h0CEhЗапис
Базовий і поточний регістри cчетчика - канал 316007h0CEhЧитання
Поточний регістр лічильника  - канал 316
*00Dh0DAhЧитання
Запис
(TR)** Тимчасовий регістр данн (Read Temporary Regіster)*00Ch0D8hЗапис
Загальне скидання (Master Clear)Читання
Скидання F/F(Clear Byte Poіnter Flіp-Flop)*00Eh0DChЗапис
Установка F/F ***(Set Byte Poіnter  Flіp-Flop)Читання
 
* Це не регістри,  а безпосередні команди для контролера ПДП.
 ** Ці регістри використовуються тільки в режимі ПАМ'ЯТЬ-ПАМ'ЯТЬ.
 *** Ці регістри і команди контролера ПДП не реалізовані в контролері  8237А и в "Периферійному контролері" STC62C008, але реалізовані в більшості сучасних комплектів процесорних БІС.
 
Передачі ПДП
Підсистема ПДП може здійснювати обмін даними між пристроєм вводу-виводу і пам'яттю і між різними масивами самої пам'яті. Передача даних з пам'яті в пам'ять не реалізується в архітектурі PC AT. При передачі даних із пристроїв вводу-виводу в пам'ять контролери ПДП і пристрою вводу-виводу використовують сигнали DRQx і DAKx для встановлення зв'язку. Коли пристрою вводу-виводу потрібно передати  чи байт слово даних,  він збуджує свою лінію DRQx. Після порушення контролером лінії DAKx і лінії ІOR пристрій передає свої дані на шину даних для пам'яті. Коли пристрою вводу-виводу потрібний  чи байт слово даних з пам'яті, він  збуджує свою лінію DRQx.  Після порушення контролером лінії DAKx і лінії ІOW пристрій "забирає" дані пам'яті із шини даних.
    Контролер ПДП Контролер ПДП використовується для прямого доступу до системної пам'яті по чотирьох незалежних каналах, минаючи процесор. Кожен канал може виконувати до 64 До циклів ПДП. Можливо індивідуальне програмування каналу на повторення циклу ПДП (автоініціалізацію).Три основних режими дозволяють користувачу програмувати тип ПДП. Збільшити число каналів  можна шляхом приєднання до основного контролера додаткових контролерів ПДП (каскадироування). Режим роботи кожного каналу може програмуватися індивідуально.
 
Приклад програмування підсистеми ПДП
  PC AT використовує канал 2 контролера ПДП для обміну з гнучким диском. Щоб одержати доступ до вірної адреси пам'яті, необхідно завантажити відповідний регістр сторінок. У даному випадку для каналу 2 це адреса порту 81h.
    У  прикладі, що приводиться, обмежимося розглядом установки каналу 2 для  читання одного сектора (512 байт) гнучкого диска, починаючи зі зсуву усередині  сторінки, що міститься в BX. Програма має наступний вид:
mov al,46h     ;Канал 2, передача одного байта, читання с диска
(4Аh для запису на диск)
out ПДП+0B,al  ;Установити байтний режим
out ПДП+0C,al  ;Скидання тригера FF
mov al,bl      ;Загрузити зміщеня адресів в текучий регістр
сторінки ПДП
out ПДП+4,al
mov al,bh
out ПДП+4,al
mov al,0       ;Загрузити лічильник = 512
out ПДП+5,al
mov al,2
out ПДП+5,al
out ПДП+0A,al  ;Розмаскувати канал 2 і читати сектор
 
    Примітка: ПДП - це базовий адрес, рівний 00.
Фото Капча