русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Архитектура и организация подсистемы DMA (КПДП) в ПК. Управляющая информация и программирование

Прямой доступ к памяти DMA – метод обмена данными периферийного устройства с памятью без участия процессора.
IBM PC XT и XT-совместимые ПЭВМ имеют один 4-канальный контроллер DMA 8237А. Назначение каналов следующее:
0 - обмен память-память; 1 - свободен (может использоваться сетевыми адаптерами); 2 - обмен с контроллером гибких дисков; 3 - обмен с контроллером жестких дисков.

Все 4 канала выполняют побайтовую передачу данных с 8-разрядными портами  обслуживаемых  устройств (максимальный размер блока64 Кбайт). IBM PC AT и  AT-подобные  ПЭВМ  имеют  два  контроллера  DMA 8237А, работающие в каскадном режиме (см. рис. 1).
Для сохранения преемственности с ХТ-компьютерами  каналы  1-й микросхемы номеруются  0-3,  а  каналы 2-ой микросхемы номеруются как 4-7 и предназначены для обмена данными с 16-разрядными портами обслуживающих  устройств  (максимальный размер блока 128 Кбайт при обмене 16-разрядными словами только по четной границе адреса).

Назначение каналов следующие:
0 - свободен; 1 - адаптер SDLC; 2 - контроллер накопителей на гибких дисках; 3 - контроллер накопителей на жестких дисках; 4 - каскад с первым контроллером DMA; 5, 6, 7 - свободны.

Так как  цепочечные команды микропроцессоров 80286 и выше более быстродействующие,  то они используются при обмене  данных  с жесткими дисками и канал 3 первой микросхемы освободился.

Управление каналами  0  - 3 осуществляется аналогично PC/ХТ. Каналы 4 - 7 предназначены для обмена 16-разрядными  словами.  В связи с этим возникает ряд отличий в работе с этими каналами:
- бит 0 в данных, заносимых в регистры начального и текущего адреса,  всегда подразумевается равным 0,  поэтому через эти регистры передаются биты 1 - 16 полного 23-разрядного адреса (а не биты 0 - 15 полного 20-разрядного адреса, как это реализовано на ХТ-подобных ПЭВМ),  по этой же причине в страничные регистры каналов 4 - 7 заносятся биты 17 - 23 полного адреса,  а не биты 16 - 23, как это надо сделать при работе с каналами 0 - 3;
- поскольку передача осуществляется 16-разрядными словами, в регистры текущего и начального счетчика циклов заносится не число байт, а число слов, уменьшенное на единицу;
- размеры страниц памяти,  в пределах которых возможен обмен в течение одной передачи составляют 20000h байтов.
Программное управление контроллером DMA осуществляется через порты ввода-вывода.  Доступ к каждому регистру контроллера может быть осуществлен через свои порты ввода-вывода.

Порты 0h-7h для DMA1 (C0h-CEh для DMA2; далее будут  указываться порты DMA1) предназначены для записи исходных значений в регистры начального и текущего адреса, начального и  текущего счетчика циклов для всех 4-х каналов. Так как порты  восьмиразрядные, а регистры, в которые  через  них заносятся данные, 16-разрядные, то запись производится в два приема. Перед первой командой вывода в требуемый порт необходимо сбросить триггер-защелку, для чего выполняется команда вывода  произвольного значения в порт Ch, после чего в требуемый порт  выводится  младший байт 16-разрядного значения и затем старший байт следующей команды вывода в тот же порт. Запись в порт 8h инициализирует команду DMA.
Запись в  порт Bh устанавливает значение в регистре режимов одного из 4-х каналов DMA.  Биты 0 и 1 задают номер канала (00 - 0, 01 - 1, 10 - 2, 11 - 3). В биты 2 - 7 заносятся значения, передаваемые соответственно в биты 0 - 6 регистра режимов.
Запись в  порт   Dh  задает  программный  сброс  контроллера (Master Clear).  Вывод любого байта в этот порт имеет тот же эффект, что и аппаратный сброс контроллера. При программном сбросе очищаются регистры команд,  состояния,  запросов и  рабочий  регистр. Так же сбрасывается триггер-защелка и устанавливается все биты масок в регистре масок.  После программного сброса контроллер переходит в цикл ожидания.

Вывод любого байта в порт Eh очищает регистр масок - сбрасывает  биты  масок всех 4-х каналов DMA и таким образом разрешает прием запросов на DMA по всем каналам.

Через порт Fh можно задать произвольное значение регистра масок DMA.  Для этого необходимо в битах 0 - 3 передаваемого  байта установить  требуемое значение масок каналов 0 - 3 соответственно и вывести это значение в порт.

Страничные регистры  DMA  предназначены  для  задания  номера страницы памяти,  с которой будет производится обмен. Под номером страницы понимаются старшие 4  бита  полного  20-битового  адреса ОЗУ, т.е. начальные сегментные адреса страниц будут кратны 10000h (0,  10000h,  20000h, ..., 90000h). Напомним, что архитектура DMA позволяет  работать  только со страницей памяти размером 64 К,  а логика,  обеспечивающая переключение страниц  устроена  так,  что страницы имеют жесткие границы. Из-за этой особенности невозможно с помощью DMA осуществить обмен с блоками памяти, пересекающими границу между двумя такими страницами.

Просмотров: 5958

Вернуться в оглавление:Шпаргалки по компьютеру




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.