DMA або прямий доступ до пам’яті

Термін DMA напевно не раз зустрічався читачам в різних комп’ютерних статтях. Що ж він означає, чи впливає це поняття на роботу комп’ютера, і якщо так, то як? В цьому ми і спробуємо розібратися.

Принцип роботи

Більшість пристроїв ПК потребують періодичний обмін даними не тільки з центральним процесором (ЦП), а й з оперативною пам’яттю. У перших варіантах персональних комп’ютерів процес обміну даними будь-якого пристрою з ОЗУ протікав за допомогою процесора. Такий метод отримав назву PIO (Programmable Input-Output, програмований введення-виведення). Однак цей метод мав ряд недоліків. Перш за все, було очевидно, що оскільки процесор завантажений безліччю завдань, то він не завжди може відволікатися на те, щоб керувати процесом читання і запису даних ОЗУ, тим більше, що обсяг цих даних в результаті прогресу комп’ютерної техніки все збільшувався і збільшувався.

Так з’явилася ідея технології DMA (скорочення від Direct Memory Access, тобто Прямий Доступ до Пам’яті), яка полягає в тому, щоб дозволити різним пристроям звертатися до оперативної пам’яті безпосередньо, минаючи ЦП. Також часто використовується російська абревіатура даної технології – ПДП.

Спочатку практична реалізація цієї технології (в материнських платах на основі шини ISA) була здійснена за допомогою вбудованого в материнську плату контролера ПДП, який був покликаний керувати процесом обміну даними між пристроєм і ОЗУ. При цьому процесор також не був повністю виключений з цього процесу. Перш за все, механізм ПДП Ініціалізувати самим процесором, однак в хід процесу передачі даних він не втручався, займаючись в цей час іншими завданнями. Після того, як обмін інформацією між пристроєм і ОЗУ завершувався, то процесор отримував відповідне переривання, яке ніс у собі йому контролера DMA.

У шині ISA також використовувалися спеціальні канали ПДП, які часто закріплювалися за окремим пристроєм:

  1. оновлення DRAM
  2. Апаратний призначений для користувача канал, зазвичай використовувався для 8-бітних звукових карт
  3. Контролер дисковода гнучких дисків
  4. Жорсткий диск. Канал не використовувався для жорстких дисків з підтримкою PIO, а потім з UDMA. Також канал використовувався для деяких звукових карт і паралельного порту
  5. Каскадне переривання від XT-контролера ПДП
  6. Призначений для користувача канал, іноді використовувався для жорстких дисків або 16-бітних звукових карт
  7. Призначений для користувача канал
  8. Призначений для користувача канал

Зазвичай дані канали можна було встановлювати програмним шляхом, але на деяких старих пристроях, наприклад, картах розширення для підключення накопичувачів CD-ROM, необхідно було вручну встановлювати значення потрібних каналів за допомогою перемичок.

сучасна реалізація

Починаючи з появи шини введення-виведення PCI, концепція практичної реалізації ПДП зазнала змін. У материнських платах з шиною PCI більше не використовувався контролер DMA, а замість цього стала застосовуватися технологія Bus Mastering. Суть цієї технології полягає в тому, що будь-який пристрій може звернутися до шини і повністю використовувати її в своїх цілях, в тому числі, і для доступу до оперативної пам’яті. Крім того, в шині PCI відпала необхідність у використанні каналів доступу до пам’яті. Подібний механізм використовується також і в наступників шини PCI -сверхбистрих шинах AGP і PCI-Express.

Прямий доступ до пам’яті можуть використовувати будь-які пристрої, розташовані в слотах розширення материнської плати, або підключення до неї за допомогою внутрішніх шин. Це можуть бути, наприклад, жорсткі диски, накопичувачі для оптичних дисків, відеокарти, звукові і мережеві карти, і т.д. Крім того, технологія DMA може використовуватися як всередині процесорів – для передачі даних між окремими ядрами, так і всередині самої оперативної пам’яті – для обміну даними між різними ділянками пам’яті.

Сучасні операційні системи, такі як MS Windows, вміють управляти режимом ПДП для багатьох пристроїв. Зокрема, користувач має можливість включити або виключити режим DMA для жорстких дисків.

У жорстких дисках з інтерфейсом IDE технологія ПДП отримала свій розвиток у вигляді додаткових режимів ПДП, які отримали назву Ultra DMA (UDMA). Всього стандарт Ultra DMA підтримує 8 основних режимів передачі даних, які забезпечують швидкість від 16,7 до 167 МБ / c. Використання режимів Ultra DMA для вінчестерів дозволило значно збільшити пропускну здатність шини IDE. Включити або змінити режим Ultra DMA для жорстких дисків можна за допомогою спеціальної опції BIOS, зазвичай носить назву DMA (UDMA) Mode.

висновок

Поява технології ПДП дозволило розвантажити процесор і позбавити його від великого обсягу рутинної роботи з пересилання даних між оперативною пам’яттю і пристроями, розташованими на материнській платі або підключеними до неї. Особливо важливим є використання різновиди технології ПДП – Ultra DMA в вінчестерах на основі інтерфейсу IDE, що дозволяє значно прискорити обмін даними між накопичувачем IDE і материнською платою.

Ссылка на основную публикацию