В случае передачи данных в режиме прямого доступа к памяти (ПДП) внешнее устройство связано с памятью непосредственно, минуя внутренние регистры процессора (рис. 2.6). В процессорах с возможностью ПДП имеется специальный вход запроса прямого доступа (DMR), который активизируется внешним устройством для выполнения передачи данных.
При поступлении запроса на ПДП процессор завершает выполнение текущей команды, блокирует свои шины данных, адреса и вырабатывает сигнал разрешения прямого доступа (DMG), который воспринимается устройством, запросившим ПДП. Процессор после этого переходит в состояние ожидания, а управление передачами информации по шине адреса и шине данных возлагается на контроллер устройства, захватившего шины. Контроллер ПДП становится активным устройством в интерфейсе. В случае передачи блока данных контроллер должен обеспечить выдачу начального адреса, переадресацию памяти после передачи каждого информационного слова и подсчет числа передаваемых слов.
Передача управления обменом процессору после завершения процедуры ПДП выполняется в одних случаях снятием сигнала запроса DMR, в других случаях - при помощи прерывания.
Контроллеры ПДП выполняются в виде программируемых БИС. Перед началом работы системы контроллер ПДП должен быть инициализирован: с помощью сигнала RESET обнуляется счетчик числа передаваемых слов; в соответствующие регистры заносятся начальный адрес зоны памяти для прямого доступа и число передаваемых слов. Обращение к регистрам контроллера ПДП производится процессором так же, как к регистрам внешних устройств в режиме программного обмена по заданным адресам.
Контроллеров ПДП в системе может быть несколько. В этом случае они объединяются, например, дейзи-цепочкой.
В таблице 2.1 представлены инициаторы обмена и управляющие (активные) устройства в рассмотренных выше режимах.
Таблица 2.1
Режим обмена
Инициатор обмена
Управляет обменом
(активное устройство)
Программно-управляемая передача данных (адресный обмен)