Прямой доступ к оперативной памяти

Хотя ввод-вывод по прерываниям эффективнее программно управляемого,оба эти метода страдают двумя недостатками:

темп передачи при вводе-выводе ограничен скоростью, с которой процессор в состоя­нии опросить и обслужить устройство;

процессор вовлечен в управление передачей всего массива данных. Для каждой пересылки то ли одиночной порции данных, то ли блока данных он должен вы­полнить определенное количество команд.

Когда пересылаются большие объемы данных, требуется более эффективный способ ввода-вывода — прямой доступ к оперативной памяти (ПДП). В общем случае ПДП предполагает на­личие в подсистеме ввода-вывода дополнительного модуля — контроллера прямого дос­тупа к оперативной памяти (КПДП), способного брать на себя функции процессора по управлению обменом данными и обеспечивать прямую пересылку информации между оперативной памятью и ПУ, 6ез участия процессора. Структура канала прямого доступа в оперативную память приведена на рис. 25.4.

 
 


Рис. 25.4. Обобщенная структура канала прямого доступа

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

вида операции (чтение, запись, размер порции обмена и т.п.);

адреса периферийного устройства;

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

количества порций данных, подлежащих чтению или записи.

Первый параметр определяет направление пересылки данных: из оперативной памяти в ПУ или наоборот. За исходную точку обычно принимается оперативную память, поэтому под чтением снимают считывание данных из оперативной памяти и выдачуих в устройство вывода, а под записью — прием данных из ПУ и запись в оперативную память. Вид операции запоминается в устройстве управления контроллера.

К каналу прямого доступа в оперативную память обычно могут быть подключены несколько ПУ, а адрес устройства ввода-вывода уточняет какое из них должно участвовать в предстоящем обмене данными. Этот адрес запоминается в устройстве управления КПДП.

Третий параметр — адрес начальной ячейки — хранится в регистре адреса (РА) контроллера. После передачи каждой порции обмена содержимое РА автоматически увеличивается на единицу, то есть в нем формируется адрес следующей порции данных в оперативной памяти.

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

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

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

Когда пересылка завершена (при нулевом значении в СД), КПДП выдает запрос на прерывание процессору. Аналогичный запрос на прерывание по завершению операции ввода-вывода выдает в процессор и ПУ. Процессор обрабатывает полученные запросы на прерывание и определяет, как же закончилась операция ввода-вывода.


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



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