DMA

Среда, 9, ноября, 2011

DMA (Direct Memory Access — "прямой доступ к памяти", или ПДП). Это способ (механизм, технология) обмена данными между внешним устройством и памятью без участия процессора, что может заметно снизить нагрузку на процессор и повысить общую производительность системы. Необходимо сказать, что "прямой доступ к памяти" существовал в электронной вычислительной технике задолго до появления первых ПК. Он осуществляется через DMA-контроллер — специальный чип, получающий первоначальную команду на перенос данных от центрального процессора. Каналы DMA предназначены для передачи массивов информации по 8 — или 16-битным шинам одновременно. В отличие от портов ввода/вывода каналы DMA непосредственно не сообщаются с центральным процессором, они работают напрямую с системной памятью. Всего каналов DMA — 8 (от 0 до 7).



style="display:inline-block;width:580px;height:400px"
data-ad-client="ca-pub-4420784113687006"
data-ad-slot="4236668964">


Первоначально DMA-контроллер задумывался, прежде всего, для разгрузки CPU от тривиальных задач, например, контроля флоппи — дисководов или жестких дисков (на PC/XT DMA-каналов было 4). Начиная с компьютеров PC/AT передача данных от жестких дисков и к ним стала осуществляться уже не через каналы DMA, а через программируемый ввод/вывод.

Начиная с Intel 80386, процессоры располагают собственным устройством управления памятью (MMU — Memory Management Unit), которое пересчитывает логические адреса в физические. DMA-контроллеры "ничего не знают" о разрядности адресов. Поэтому, чтобы иметь возможность применять DMA вместе с управлением виртуальной памятью, нужно зарезервировать в качестве DMA-буфера какую-то область памяти в первом мегабайте адресного пространства, где логические и физические адреса совпадают. В эту область DMA-контроллер записывает данные, прежде чем они будут скопированы процессором из этого буфера. Эта технология, называемая двойной буферизацией, неэффективна.

Основными "потребителями" каналов DMA являются звуковые карты, CD-ROM-дисководы более ранних выпусков. В обоих случаях скорость передачи не превышает 500 Кб/с. Максимально возможная скорость передачи данных по DMA-каналам (около 2 Мб/с) значительно перекрывает потребности 8-битной звуковой карты. Если же необходимо осуществить быстрый обмен информацией, то в этом случае DMA не используется — процессор берет на себя управление процессом переноса информации, перекрывая все допустимые способности DMA-каналов.

Еще одно замечание. Возможность использования одного IRQ несколькими картами расширения требует поддержки со стороны драйверов и реализуется на уровне конкретного программного продукта. Использование разными картами (или устройствами) одного канала DMA в принципе возможно, но связано со множеством проблем и поэтому не рекомендуется. Простейший пример! При одновременном использовании DMA-канала звуковой картой и портом принтера может возникнуть треск в динамиках или "зависание" воспроизведения звука.

Небольшое уточнение. Цикл DMA начинается с запроса DMA от исполнителя, желающего произвести обмен. После освобождения шины текущим задатчиком (например, процессором) контроллер DMA формирует соответствующий сигнал — "DACK" (DMA Acknowledge — подтверждение ПДП), говорящий о предоставлении канала DMA запросившему его устройству.

DMA-канал

Разрядность

Назначение

0

8

свободен (ранее использовался в PC/XT для обновления памяти

1

8

обычно задействуется под звуковые или сетевые карты

2

8

контроллер floppy-дисководов

3

8

свободен (в PC/XT обеспечивал передачу данных от HD), иногда используется EPP-функцией параллельного порта

4

16

каскадирование для 8-разрядного контроллера (координация между "старым" и "новым" чипами DMA)

5

16

свободен (часто задействуется под 16-разрядные звуковые карты)

6

16

свободен

7

16

свободен

Поделиться в соц. сетях

Видео
  • Установка Windows 8
  • Установка Windows 7 32 bit Полная установка OS
  • Установка Windows 10. Активация. Тест. Обновление с Windows 7/8/8.1 до Windows 10
  • Установка Windows 7 на флешку|USB

Оставьте свой комментарий к статье



Читайте нас в социальных сетях: VK, Facebook, Twitter, OK, Google+