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