Ввод-вывод по прерываниям


 

 

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

 
 

 

 


Рис. 25.2. Алгоритм обработки прерывания в процессоре

 

Рассмотрим процесс ввода блока данных с использованием ввода-вывода по прерыва­ниям. При этом оставим без внимания такие подробности, как сохранение и восстановления контекста, действия, выполняемые при завершении пересылки бло­ка данных, а также в случае возникновения ошибок.

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

Обмен очередной порцией данных происходит по команде «Ввод» из процессора. Контроллер внешнего интерфейса ПУ помещает информацию из выходного буфера на шины данных внешнего интерфейса. После выдачи очередной порции информации контроллер ПУ готов к следующему сеансу обмена.

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

Алгоритм операции обмена по прерываниям приведен на рис. 25.3.

 

 


Рис. 25.3. Алгоритм операции обмена по прерываниям

 

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

 

 



Дата добавления: 2020-08-31; просмотров: 575;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.