Прямой доступ к памяти (DMA) — режим обмена данными между устройствами компьютера или между устройством и основной памятью, в котором центральный процессор (ЦП) не участвует. 12
Процесс чтения данных с устройства при прямом доступе к памяти происходит так: 1
- ЦП записывает значения в регистры контроллера DMA, отправляет устройству (например, диску) команду на чтение данных. 1
- Устройство читает данные и записывает их в свою внутреннюю память (буфер). 1
- Контроллер DMA устанавливает на адресную шину адрес памяти ПК, отправляет устройству запрос на чтение данных из внутренней памяти (буфера) устройства. 1
- Устройство получает запрос и пересылает очередное слово из своей внутренней памяти (буфера) в оперативную память ПК по адресу, находящемуся на адресной шине. 1
- Затем устройство посылает контроллеру DMA сигнал, сообщающий об окончании записи. 1
- Контроллер DMA увеличивает адрес памяти ПК и выставляет его на адресную шину, уменьшает значение своего счётчика байтов, снова отправляет запрос на чтение данных из внутренней памяти (буфера) устройства. 1
- Цикл повторяется, пока значение счётчика не станет равно нулю. 1
- После окончания цикла устройство инициирует прерывание процессора, сообщающее о завершении переноса данных. 1
Так как при прямом доступе к памяти данные не пересылаются в ЦП и обратно, скорость передачи увеличивается. 12