Спочатку контролер жорсткого диска IBM PC / AT не підтримував DMA, і вимагав передачі всіх даних дискового введення / виведення інструкціями REP INSW / REP OUTSW через порт 0x1f0.

На початку 90х років диски MFM / RLL вимерли, змінившись дисками IDE, але регістровий інтерфейс ПЗ до контролера не змінився.

Низька продуктивність такого контролера стала серйозною проблемою, особливо на системах PCI. Крім вимоги декількох циклів PCI на 2 байти переданих даних, це призводило до завантаження процесора дисковим введенням-виведенням.

Для вирішення проблеми ряд компаній, у тому числі Intel, розробили контролери IDE з підтримкою DMA.

Контролери були і є несумісні за ПЗ між різними виробниками, хоча сумісність всіх Intel IDE / ATA / SATA знизу вгору більш-менш підтримується.

Також особливістю цієї підтримки є використання нових команд протоколу IDE / ATA, а значить, і вимога підтримки DMA не тільки контролером, а й самим жорстким диском.

Близько 2000 року підтримка DMA по шині IDE / ATA розвинулася в бік збільшення тактової частоти шини, що зажадало нового типу кабелю від контролера до диску з подвоєним числом провідників меншого розміру. Ця технологія називалася Ultra DMA (UDMA).

Багато операційних систем вимагали дій адміністратора для використання IDE DMA. Так, наприклад, стандартні ядра Linux до приблизно 2004 року не мали такої підтримки, було потрібно перестроювання ядра з відредагованим файлом конфігурації.

У сімействі Windows підтримка IDE DMA з'явилася спочатку тільки для Intel в пакетах оновлень до Windows NT4, і вимагала на більшості систем ручного редагування реєстру для задіяння.

У Windows 2000 ця вимога зникла, але з'явилася вимога обов'язкової вписки[що це?] навіть не-завантажувальних дисків в BIOS і обов'язкового виставлення режиму DMA для них в налаштуваннях BIOS. Ці налаштування BIOS ставали видимі ядру ОС через технологію ACPI, і ОС не дозволяла включити DMA для диска, що не вписаного в BIOS.

Для порівняння: NT4 підтримувала і довільний розмір диска, і DMA без вписки диска в BIOS.

У системах Linux для включення або виключення IDE DMA вручну може застосовуватися команда hdparm .

Сучасні версії ядра автоматично включають DMA режим, що можна спостерігати в повідомленнях налагодження (рядки виду ata1.00: configured for UDMA/133 або hda: UDMA/33 mode selected).

Див. такожРедагувати

  • PIO — перший тип інтерфейсу обміну, використаний для з'єднання дисків ATA і комп'ютера
  • Parallel ATA
  • Serial ATA