"Архитектура ввода-вывода персональных ЭВМ IBM PC" - читать интересную книгу автора (Лукач Ю.С.)

Примечание: В таблицу не включены устройства, базовый адрес
ввода-вывода которых может настраиваться (сетевые адаптеры,
контроллеры стриммерных лент и т.д.).


2. Контроллер прямого доступа к памяти

Контроллер прямого доступа к памяти (ПДП, DMA - Direct
Memory Access) обеспечивает высокоскоростной обмен данными между
устройствами ввода-вывода и ОЗУ без использования центрального
процессора, что позволяет освободить процессор для выполнения
вычислений параллельно с обменом и независимо от него. Наиболее
часто возможности ПДП используются при работе с дисковыми
накопителями, однако реализовано использование ПДП адаптерами
накопителей на магнитной ленте и рядом других устройств.
Ощутимые приемущества дает использование ПДП в процессе обмена с
устройствами, принимающими или передающими данные достаточно
большими порциями с высокой скоростью.

В IBM PC-подобных компьютерах функции контроллера ПДП
выполняет микросхема 8237А фирмы INTEL (советский аналог
КР580ВТ57) или ее аналоги 8237А-4 и 8237А-5, работающие с
тактовой частотой 4 и 5 Мгц соответственно (стандартная
микросхема 8237А работает на частоте 3 Мгц). Контроллер имеет 4
независимых канала, каждый из которых может обслуживать одно
периферийное устройство.


2.1. Принципы работы контроллера ПДП

В работе ПДП различаются 2 главных цикла: цикл ожидания
(Idle cycle) и активный цикл (Active cycle). Каждый цикл
подразделяется на ряд состояний, занимающих по времени один
период часов (тик). Из цикла ожидания контроллер может быть
переведен в состояние программирования (Program Condition) путем
подачи на вход RESET сигнала высокого уровня, длительностью не
менее 300 нc и следующей за ним подачи сигнала низкого уровня
(уровня 0) на вывод CS (Chip Select). В состоянии програм-
мирования контроллер будет находится до тех пор, пока на выводе
CS сохранится сигнал низкого уровня. В процессе программирования
контроллеру задаются:

- начальный адрес памяти для обмена;
- уменьшенное на единицу число передаваемых байтов;
- направление обмена,

а также устанавливаются требуемые режимы работы (разрешить или
запретить циклическое изменение приоритетов, автоинициализацию,
задать направление изменения адреса при обмене и т. д.).