DMA (англ. Direct Memory Access, прямой доступ к памяти) – это механизм, который позволяет некоторым устройствам (DMA-устройствам) осуществлять обмен данными с оперативной памятью компьютера напрямую, минуя центральный процессор.
DMA позволяет значительно ускорить скорость передачи данных между устройствами и памятью, так как центральный процессор не участвует непосредственно в переносе данных. Вместо этого процессор инициирует DMA-передачу, указывает параметры передачи (источник, приемник, объем данных) в регистрах DMA-контроллера, а затем DMA-контроллер самостоятельно выполняет перенос данных, пока процессор может заниматься другими задачами.
Основные преимущества DMA:
- Повышение производительности за счет разгрузки процессора от рутинных операций передачи данных
- Возможность параллельной работы процессора и периферии
- Уменьшение загрузки шины и системной памяти
- Упрощение программирования ввода-вывода
DMA широко используется в таких устройствах как видеокарты, контроллеры дисков, сетевые адаптеры, звуковые карты и др. Наиболее распространен встроенный DMA-контроллер, который является частью микросхемы северного моста чипсета. Также существуют внешние DMA-контроллеры, подключаемые к шине расширения.
Современные ОС и драйверы устройств активно используют возможности DMA для оптимизации работы с периферией. Правильное применение DMA может значительно повысить быстродействие всей системы.