Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / ГосЭк2.doc
Скачиваний:
37
Добавлен:
28.05.2015
Размер:
790.53 Кб
Скачать

11. Передача данных с прямым доступом к памяти (Лекц, м.Гук)

Передача данных с прямым доступом к памяти (ПДП или DMA – direct memory access), представляет собой способ высокоскоростного обмена данными между оперативной памятью и различными (периферийными) устройствами ЭВМ, требующий минимального участия процессора (только на стадиях инициирования и завершения).

В этом режиме процессор используется только она стадии запуска и завершения операции ввода-вывода и освобождается от непосредственного управления ею. Такой режим предполагает непосредственную передачу информации между периферийным устройством и оперативной памятью, что и обусловило его название. Строго говоря, идея обмена информацией между периферийным устройством и оперативной памятью, минуя процессор, появилась давно, а в популярных в 1970-80-годах ЭВМ серииIBM-360 (ЕС ЭВМ) была непосредственно реализована в архитектуре ввода-вывода, еще до использования термина “прямой доступ к памяти”.

Первоначально данный способ использовался только для подключения устройств, обеспечивающих быструю передачу данных, например, таких, как жесткие диски, так как требующиеся для организации этого режима аппаратные средства были относительно дороги. Впоследствии, по мере удешевления аппаратуры, по схеме прямого доступа стали подключаться и медленные устройства (типа принтеров, подключаемых через порт LPT), управление передачей данных для которых ранее с малыми затратами времени осуществлялось непосредственно процессором.

Непосредственное управление режимом прямого доступа к памяти осуществляется каналом прямого доступа. На начальном этапе операции процессор инициализирует контроллер, указывая ему:

- начальный адрес области оперативной памяти, с которой будет производиться обмен (ввод или вывод);

- значение счетчика, равное количеству байтов, которое требуется передать;

- дополнительные параметры операции (в числе которых и направление передачи: ввод или вывод).

После этого процессор переходит к выполнению других задач, а управление передачей данных (до ее завершения) осуществляет контроллер ПДП. В разных ЭВМ циклы работы контроллеров ПДП, во время которых производится передача байта (или нескольких байтов, слова, слов) данных могут различаться. Различными могут быть также само исполнение и расположение контроллеров или каналов прямого доступа. Например, в ПЭВМ четыре канала прямого доступа входят в один контроллер, включенный в микросхемы чипсета. Известны ЭВМ, в которых часть узлов управления размещалась в самих устройствах, работающих с прямым доступом к памяти.

Однако, общий порядок циклов обмена с прямым доступом, примерно, одинаков и сводится к следующим шагам.

Получив от устройства, управление обменом данными которого с памятью осуществляет контроллер, информацию о готовности устройства принять (при выводе в устройство) или передать (при вводе из устройства) данные, контроллер запрашивает управление шиной данных памяти. При этом приоритет контроллера выше, чем приоритет процессора. Это значит, что, если в режиме ПДП устройство передает данные с очень высокой скоростью, то контроллер может полностью блокировать доступ процессора к памяти на время передачи.

Получив управление шиной памяти, контроллер выставляет на шину адрес памяти, по которому следует прочитать данные при выводе или куда их следует записать при вводе. Далее при вводе данных он получает данные от устройства, выставляет их на шину данных памяти и выдает управляющий сигнал на запуск цикла записи в память.

При выводе данных контроллер запускает цикл чтения памяти по установленному им адресу, по завершении которого считывает данные с шины данных памяти и передает их в устройство, осуществляющее обмен.

Если устройство передает данные с высокой скоростью, то контроллер запрашивает управление шиной не на один цикл памяти, а сразу на несколько циклов, организуя, таким образом, передачу целого пакета данных, что позволяет передавать их через контроллер быстрее. (Эти два способа могут также называться захватом цикла и управлением шиной – bus mastering, соответственно; иногда о ПДП говорят, как о частном случае bus mastering.)

Один из вариантов обмена в режиме прямого доступа к памяти показан на рис.

Рис. Примерный вид временной диаграммы обмена данными с прямым доступом к памяти

Здесь DRQ и DACK – управляющие сигналы интерфейса с внешним устройством – запрос прямого доступа и подтверждение прямого доступа, соответственно; HRQ и HLDA – управляющие сигналы запроса (захвата) шины контроллером и подтверждения захвата, соответственно. AEN – сигнал блокировки дешифрации адреса внешним устройством для того, чтобы какое-либо внешнее устройство ошибочно не приняло адрес памяти за собственный. ADDR – адрес памяти (выставляется контроллером); IOW, IOR, MEMR, MEMW – управляющие сигналы записи и чтения ввода-вывода и памяти соответственно.

Сам контроллер содержит в себе схемы управления, буферы данных и адреса, а также регистры (счетчики) адреса памяти и количества передаваемых в операции слов.

Следует учитывать, что по современным нормам скорость передачи данных по каналу DMA не слишком высокая. Первоначально она составляла 2 Мб/с, специальные модификации в пакетных режимах, позволили поднять ее до 100 Мб/с и выше (Ultra DMA)

В ряде ЭВМ (в том числе и в более новых ПЭВМ) принцип прямого доступа к памяти реализуется непосредственно в управлении шинами расширения, например, шиной PCI. Однако, обычно классический режим прямого доступа различным образом эмулируется для совместимости с более ранними аппаратными и программными средствами.

При последующем развитии концепций организации ввода-вывода режим прямого доступа трансформировался в более общие способы управления интерфейсными шинами и установления связей между устройствами ЭВМ.

Соседние файлы в папке Lectures