Прямой доступ к оперативной памяти
Хотя ввод-вывод по прерываниям эффективнее программно управляемого,оба эти метода страдают двумя недостатками:
темп передачи при вводе-выводе ограничен скоростью, с которой процессор в состоянии опросить и обслужить устройство;
процессор вовлечен в управление передачей всего массива данных. Для каждой пересылки то ли одиночной порции данных, то ли блока данных он должен выполнить определенное количество команд.
Когда пересылаются большие объемы данных, требуется более эффективный способ ввода-вывода — прямой доступ к оперативной памяти (ПДП). В общем случае ПДП предполагает наличие в подсистеме ввода-вывода дополнительного модуля — контроллера прямого доступа к оперативной памяти (КПДП), способного брать на себя функции процессора по управлению обменом данными и обеспечивать прямую пересылку информации между оперативной памятью и ПУ, 6ез участия процессора. Структура канала прямого доступа в оперативную память приведена на рис. 25.4.
Рис. 25.4. Обобщенная структура канала прямого доступа
Если процессор желает прочитать или записать блок данных, он, прежде всего, должен поместить в КПДП информацию, определяющую предстоящее действие. Этот процесс называется инициализацией КПДП и включает в себя занесение в контроллер КПДП следующих четырех параметров:
вида операции (чтение, запись, размер порции обмена и т.п.);
адреса периферийного устройства;
адреса начальной ячейки блока оперативной памяти, откуда будет извлекаться или куда будет вводиться информация;
количества порций данных, подлежащих чтению или записи.
Первый параметр определяет направление пересылки данных: из оперативной памяти в ПУ или наоборот. За исходную точку обычно принимается оперативную память, поэтому под чтением снимают считывание данных из оперативной памяти и выдачуих в устройство вывода, а под записью — прием данных из ПУ и запись в оперативную память. Вид операции запоминается в устройстве управления контроллера.
К каналу прямого доступа в оперативную память обычно могут быть подключены несколько ПУ, а адрес устройства ввода-вывода уточняет какое из них должно участвовать в предстоящем обмене данными. Этот адрес запоминается в устройстве управления КПДП.
Третий параметр — адрес начальной ячейки — хранится в регистре адреса (РА) контроллера. После передачи каждой порции обмена содержимое РА автоматически увеличивается на единицу, то есть в нем формируется адрес следующей порции данных в оперативной памяти.
Размер данных, которые должны быть введены в оперативную память или выведены из оперативной памяти, заносится в счетчик данных (СД) контроллера. После передачи каждой порции обмена содержимое СД автоматически уменьшается на единицу. Нулевое состояние СД свидетельствует о том, что пересылка всех данных завершена.
После инициализации процесс пересылки информации может быть начат в любой момент. Инициаторами обмена вправе выступать как процессор, так и ПУ. Устройство желающее начать операцию ввода-вывода, извещает об этом контроллер КПДП подачей соответствующего сигнала. Получив такой сигнал контроллер КПДП производит обмен порцией данных с ПУ (например, читает данные из ПУ), после чего выполняет запись введенной порции данных в оперативную память.
После пересылки каждой порции данных логика управления прибавляет единицу ксодержимому РА (формирует адрес следующей ячейкиоперативной памяти) и уменьшаетна единицу содержимое СД (ведет подсчет переданных порций).
Когда пересылка завершена (при нулевом значении в СД), КПДП выдает запрос на прерывание процессору. Аналогичный запрос на прерывание по завершению операции ввода-вывода выдает в процессор и ПУ. Процессор обрабатывает полученные запросы на прерывание и определяет, как же закончилась операция ввода-вывода.
Дата добавления: 2020-08-31; просмотров: 377;