Контроллер ПДП. Устройство, функции, работа.

В этой статье рассмотрим устройство, функции, работу контроллера прямого доступа памяти или контроллер ПДП. В англоязычном произношении это контроллер DMA, от слов Direct Memory Access. В самом названии контроллера прямого доступа памяти отражена суть его назначения: это доступ к оперативной памяти со стороны устройств ввода‐вывода или переферийных устройств, а также «винчестера» или привода компакт‐дисков, не задействуя при этом центральный процессор.

Обычно обмен данными происходит с участием центрального процессора. Процессор управляет обменом информацией и участвует в нём, поэтому такой обмен называется программным. Например, необходимо ввести в память из устройства ввода информацию. Сначала эта информация передаётся из порта устройства ввода в регистры процессора, а затем уже помещается в оперативную память. Объём передаваемой информации при программном обмене невелик, обычно несколько байт или слов. И при этом процессор должен каждый раз выполнять команду на передачу этой информации. Это очень влияет на быстродействие и производительность компьютерной системы. Такой режим называется режим PIO в англоязычном обозначначении и преводится как программный ввод‐вывод.

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

Контроллер ПДП или контроллер DMA имеет в своём составе такие элементы:

регистры управления и состояния;

регистр адреса;

регистр‐счётчик байт;

Общая организация контроллера ПДП приведена на рисунке.

структурная схема контроллера ПДП

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

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

Регистр состояния служит для указания состояния контроллера ПДП, а именно: счётчиков каналов и наличия или отсутствия запросов ПДП.

В регистр адреса при инициализации контроллера передаётся начальный или конечный адрес массива памяти в который помещаются данные, а в регистр‐счётчик байт число передаваемых байт. После каждого переданного байта счётчик уменьшает первоначальное значение числа передаваемых байт на «1» или на «2», если передаются слова. Таким образом контролируется процесс передачи данных между памятью и устройствоми ввода‐вывода, при достижении в счётчике байт «нуля» режим работы ПДП завершается, контроллер ПДП возращает управление шиной процессору. А затем, в зависимости от ситуации, устройства либо снова начинают процесс инициализации режима ПДП, либо управление осуществляет центральный процессор.

Работа контроллера прямого доступа памяти происходит в такой последовательности:

алгоритм работы контроллера ПДП

1.Интерфейс устройства ввода‐вывода при наличии у него готовых данных для оперативной памяти или готовности принять данные от оперативной памяти, выдаёт сигнал запроса ПДП.

2.Контроллер ПДП формирует сигнал запроса шины и получает управление шиной от центрального процессора.

3.На шину адреса помещается адрес ячейки памяти, который контроллер ПДП выдаёт из своего регистра адреса.

4.Контроллер ПДП выдаёт подтверждение интерфейсу устройства ввода‐вывода на ввод или вывод данных.

5.Данные помещаются на шину данных, при этом при выводе данных, они поступают из оперативной памяти, а при вводе данные поступают от интерфейса устройства ввода‐вывода.

6.Данные, в случае вывода фиксируются интерфейсом устройства ввода‐вывода, а в случае ввода, данные поступают в ячейку памяти, адрес которой помещён на шине адреса.

7.Контроллер освобождает шину и управление шиной возращается центральному процессору.

8.Если происходил ввод данных в оперативную память, то счётчик байт вычитает из своего значения «1», а регистр адреса прибавляет «1», тем самым указывая на следующую свободную ячейку памяти. Если счётчик байт не содержит «0», то алгоритм повторяется, в противном случае передача данных останавливается.

Мы рассмотрели устройство функции работу контроллера ПДП. В некотором смысле, если подойти к данному вопросу с юмором, контроллер DMA убирает «бюрократическую проволочку» при передаче информации между оперативной памятью и устройствами ввода‐вывода, чем повышает быстродействие компьютерной системы.

Наверх