Микропроцессоры и микроконтроллеры

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципы работы микропроцессоров :: Краткая характеристика обмена с прямым доступом в память

Краткая характеристика обмена с прямым доступом в память

Обмен с прямым доступом в память – ПДП (англ. DMADirectMemoryAccess) – специальный режим обмена данными между внешним устройством и памятью МП-системы, реализуемый без участия процессора. Этот вид обмена применяют для пересылки блоков информации большого объема. Для реализации обмена в системе должен присутствовать контроллер ПДП – устройство, формирующее адреса и сигналы управления для памяти и ВУ.

Контроллер ПДП содержит несколько (3-4) идентичных каналов обмена. Каждый канал может обеспечивать обмен с одним ВУ. В начале работы системы должна быть выполнена настройка контроллера ПДП – каждому каналу программно должны быть заданы адрес блока памяти, его размер и направление обмена (память ® ВУ или наоборот).

Обмен начинается по сигналу запроса от ВУ, поступающему на контроллер ПДП на определенный канал. Контроллер передает этот сигнал на процессор (часто сигнал называется Hold). В результате процессор прекращает выполнение текущей программы и переводит буферы адреса и данных в третье состояние, отключаясь от системных шин.

Далее контроллер ПДП начинает циклически формировать адреса и сигналы управления, необходимые для реализации пересылки блока данных в нужном направлении. Адреса ячеек памяти выдаются на системную ША, формируются требуемые сигналы управления Чтение/Запись для памяти и Ввод/Вывод для ВУ. Сама пересылка производится по ШД. Таким образом, контроллер ПДП выполняет те же действия, что и процессор, реализующий пересылки с памятью и ВУ.

Обмен завершается, когда контроллер ПДП выполнит передачу заданного количества байт. При этом сигнал Hold обнуляется, и процессор продолжает выполнение программы.

Эффективность режима ПДП по сравнению с программным обменом объясняется тем, что все действия по управлению памятью и ВУ контроллер ПДП реализует автоматически, а не в результате выполнения команд программы. Поскольку программы нет, не затрачивается время на чтение команд из памяти.