Каналы прямого доступа к памяти - DMA
Механизм прямого доступа к памяти (Direct Memory Access - DMA) позволяет устройствам компьютера получать непосредственный доступ к оперативной памяти, расположенной на системной плате компьютера. Центральный процессор может заниматься своими делами и не отвлекаться на передачу данных. Это позволяет значительно ускорить работу программ и повысить производительность работы компьютера.
Особенно важно использование каналов прямого доступа в случае большого потока данных между оперативной памятью и устройством. В качестве примера такого устройства можно привести звуковой адаптер. Если программа передает информацию звуковому адаптеру, не через канал прямого доступа, тогда выполнение остальных функций замедляется.
Управление прямым доступом к памяти осуществляется специальной микросхемой контроллера DMA. Компьютеры IBM PC и IBM PC/XT содержали один такой контроллер. Он позволял организовать четыре канала прямого доступа к памяти для четырех различных устройств. На современных моделях компьютеров IBM PC/AT установлено два контроллера прямого доступа к памяти. Это позволило увеличить количество каналов прямого доступа к памяти до восьми. Один канал прямого доступа используется для объединения контроллеров DMA и не может быть использован для других устройств.
Обычно каналы прямого доступа используются следующим образом. Для компьютеров IBM PC и IBM PC/XT:
Номер канала | Для чего используется |
DMA0 | Зарезервирован для системной платы. Недоступен для устройств расширения |
DMA1 | Свободен |
DMA2 | Контроллер накопителей на гибких магнитных дисках |
DMA3 | Контроллер накопителей на жестких магнитных дисках |
Только один канал прямого доступа к памяти свободен для использования его другими устройствами.
В компьютере IBM PC/AT имеется значительно больше свободных каналов прямого доступа:
Номер канала | Для чего используется |
DMA0 | Зарезервирован для системной платы. Недоступно для устройств расширения (16 бит) |
DMA1 | Свободно (8 бит) |
DMA2 | Контроллер накопителей на гибких магнитных дисках (8 бит) |
DMA3 | Свободен (8 бит) |
DMA4 | Для подключения второго контроллера DMA |
DMA5 | Свободен (16 бит) |
DMA6 | Свободен (16 бит) |
DMA7 | Свободен (16 бит) |
Каналы прямого доступа к памяти используются большинством современных плат расширения. Вот далеко не полный список таких устройств:
Если в вашем компьютере установлено несколько устройств, использующих каналы прямого доступа, каждое устройство должно пользоваться собственным каналом прямого доступа. Если несколько устройств работают с одним каналом прямого доступа, возможно возникновение конфликтных ситуаций и, как результат, "зависание" компьютера.
Так же как номера аппаратных прерываний и адреса портов ввода/вывода, номера каналов прямого доступа, используемые платами расширения, выбираются с помощью специальных переключателей или перемычек.
Диагностические программы, в том числе Microsoft Diagnostics, CheckIt for DOS, и CheckIt for Windows, не позволяют автоматически определить, какие из каналов прямого доступа задействованы аппаратурой компьютера. Отчасти это связано с тем, что каналы прямого доступа задействуются только в моменты передачи данных.