Прямой доступ к памяти реализуется с помощью DMA - контроллера.
 Контроллер содержит несколько регистров:
  - регистр адреса памяти
- счетчик байтов
- управляющие регистры, могут содержать:
 - порт ввода-вывода
 - чтение или запись
 - единицы переноса (побайтно или пословно)
Без контроллера происходит следующее:
  - Процессор дает команду дисковому контроллеру прочитать данные в буфер, 
- Считываются данные в буфер, контроллер проверяет контрольную сумму считанных данных (проверка на ошибки). Процессор, до прерывания, переключается на другие задания.
- Контроллер диска инициирует прерывание
- Операционная система начинает работать и может считывать из буфера данные в память

 Работа DMA - контроллера
 С контроллером происходит следующее:
  - Процессор программирует контроллер (какие данные и куда переместить)
- Процессор дает команду дисковому контроллеру прочитать данные в буфер
- Считываются данные в буфер, контроллер диска проверяет контрольную сумму считанных данных, (процессор, до прерывания, переключается на другие задания).
- Контроллер DMA посылает запрос на чтение дисковому контроллеру
- Контроллер диска поставляет данные на шину, адрес памяти уже находится на шине, происходит запись данных в память
- Когда запись закончена, контроллер диска посылает подтверждение DMA контроллеру
- DMA контроллер увеличивает используемый адрес и уменьшает значение счетчика байтов
- Все повторяется с пункта 4, пока значение счетчика не станет равной нулю.
- Контроллер DMA инициирует прерывание 
Операционной системе не нужно копировать данные в память, они уже там.