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

 
 
 
«Design and programming are human activities; forget that and all is lost.»
Bjarne Stroustrup
Русский | Українська


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

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

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

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

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

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

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

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