DMA

Описание BIOS | Общая информация | Описание настроек | Описание ошибок

DMA #

Direct Memory Access - "прямой доступ к памяти" - режим обмена данными между памятью и устройством ввода/вывода, управляемый специальным устройством (контроллером DMA) и выполняемый без участия центрального процессора. Использование этого режима значительно ускоряет пересылку данных, так как исключает пересылки данных в процессор и обратно. "Прямой доступ к памяти" осуществляется через DMA-контроллер - специальный чип, получающий первоначальную команду на перенос данных от центрального процессора. Каналы DMA предназначены для передачи массивов информации по 8- или 16-битным шинам одновременно. В отличие от портов ввода/вывода каналы DMA непосредственно не сообщаются с центральным процессором, они работают напрямую с системной памятью. Всего каналов DMA - 8 (от 0 до 7). Первоначально DMA-контроллер задумывался, прежде всего, для разгрузки CPU от тривиальных задач, например, контроля флоппи- дисководов или жестких дисков. Начиная с компьютеров PC/AT передача данных от жестких дисков и к ним стала осуществляться уже не через каналы DMA, а через программируемый ввод/вывод. Начиная с Intel 80386, процессоры располагают собственным устройством управления памятью (MMU - Memory Management Unit), которое пересчитывает логические адреса в физические. DMA-контроллеры "ничего не знают" о разрядности адресов. Поэтому, чтобы иметь возможность применять DMA вместе с управлением виртуальной памятью, нужно зарезервировать в качестве DMA-буфера какую-то область памяти в первом мегабайте адресного пространства, где логические и физические адреса совпадают. В эту область DMA-контроллер записывает данные, прежде чем они будут скопированы процессором из этого буфера. Эта технология, называемая двойной буферизацией, неэффективна. Основными "потребителями" каналов DMA являются звуковые карты, CD-ROM-дисководы более ранних выпусков. В обоих случаях скорость передачи не превышает 500 Кб/с. Максимально возможная скорость передачи данных по DMA-каналам (около 2 Мб/с) значительно перекрывает потребности 8-битной звуковой карты. Если же необходимо осуществить быстрый обмен информацией, то в этом случае DMA не используется - процессор берет на себя управление процессом переноса информации, перекрывая все допустимые способности DMA-каналов.

DMA-каналРазрядностьНазначение
08свободен (ранее использовался в PC/XT для обновления памяти
18обычно задействуется под звуковые или сетевые карты
28контроллер floppy-дисководов
38свободен (в PC/XT обеспечивал передачу данных от HD), иногда используется EPP-функцией параллельного порта
416каскадирование для 8-разрядного контроллера (координация между "старым" и "новым" чипами DMA)
516свободен (часто задействуется под 16-разрядные звуковые карты)
616свободен
716свободен