Прямой доступ к памяти, иногда называемый DMA, представляет собой способ передачи данных из памяти произвольного доступа в другую часть компьютера, не занимая центральный процессор. Эта возможность встроена в большинство современных компьютерных систем. Это позволяет компьютеру выполнять сразу несколько задач, что в конечном итоге ускоряет работу компьютера.
Так же, как владелец малого бизнеса имеет дело со всеми отчетами и информацией, входящей или выходящей из его офиса, центральный блок обработки данных компьютера должен обрабатывать все входные или выходные данные компьютера. До прямого доступа к памяти загрузка или выгрузка данных занимала всё внимание центрального процессора. Он мог выполнять только одну задачу за один раз.
Компьютер с прямым доступом к памяти похож на владельца малого бизнеса с несколькими помощниками. Вместо того, чтобы иметь дело со всей информацией напрямую, центральный процессор может делегировать задачу контроллеру прямого доступа к памяти. Это устройство, встроено в материнскую плату, которое осуществляет прямой доступ к операциям в памяти. Центральный процессор может выполнять другие задачи когда происходит загрузка или выгрузка данных. Когда делегированная задача завершена, контроллер DMA сообщает об этом центральному блоку обработки данных.
Каждый порт на компьютере имеет, по меньшей мере, один канал прямого доступа к памяти, который может быть назначен устройствам, подключенным через этот порт. Для правильной работы каждому устройству должен быть назначен другой канал. Большинство карт, которые могут быть установлены в компьютере, например, звуковые, сетевые или видеокарты, для выполнения своих задач могут использовать прямой доступ к памяти.
Многоядерные процессоры также могут использовать прямой доступ к памяти. Обычно они имеют тип временной памяти, называемой локальной или блокнотной памятью. Когда действие, над которым они работают, завершено, они могут перенести данные из локальной памяти в основную память с использованием канала прямого доступа.
Недостатком DMA является то, что он может вызвать потерю согласованности кеша. В основном это означает, что данные перемещаются всё время и могут храниться в нескольких временных местах. Проблема заключается в том, что когда компьютер запрашивает доступ к информации, он может не получить доступ к самой последней информации. Производители компьютеров могут справиться с этим с помощью специального оборудования или путём программирования операционной системы для защиты от потери согласованности кеша.