Ввод/вывод с прямым доступом к памяти

Прямым доступом к памяти (ПДП) называют процесс обмена информацией между периферийными устройствами (ПУ) и памятью, или между двумя областями памяти, непосредственно, минуя процессор.

Прямой доступ к памяти называют также обменом информацией по каналам DMA (Direct Memory Access).

Напомним, что пересылка слова информации между периферийным устройством и памятью, или между двумя областями памяти в предыдущих описанных способах обмена проходит в два этапа. На первом этапе процессор получает это слово из памяти или периферийного устройства и записывает в свой регистр (AL, AX, EAX). На втором этапе он записывает этот байт в место назначения. Этот способ, характерный как для программно-управляемого обмена, так и при обмене по прерыванию, имеет два недостатка:

- во время перемещения слова процессор не может заниматься ничем другим;

- на перемещение слова требуется два шага.

Это кажется мелочью, но если нужно переместить не одно слово, а целый блок это становится существенным. А обмен информацией с такими периферийными устройствами как HDD, FDD, CD и DVD – накопителями, а также Streamer’ами, осуществляется, как правило, большими массивами данных (блоками) и с большой скоростью. Звуковые карты также очень интенсивно пересылают блоки байт, и в настоящее время широко используются такие периферийные интерфейсы, как USB, Fire Wire и др. Кроме того, следует учесть, что большой объем пересылок информации необходим и при осуществлении регенерации оперативной памяти.

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

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

Контроллер DMA, таким образом, при обмене информацией берет на себя целый ряд вспомогательных операций, таких как:

- буферизация данных;

- преобразование форматов данных;

- формирование очередного адреса в памяти;

- подсчет количества слов переданных данных;

и т.п.

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

Принцип организации системы прямого доступа к памяти иллюстрирован на рис.XIII.2.

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

Рис.XIII.2 Иллюстрация принципа организации прямого доступа к

памяти.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: