Программируемый ввод-вывод

 

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

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

• Управление. Команды этой категории используются для того, чтобы привести внешнее устройство в действие и сообщить ему, что нужно делать. Например, блоку с магнитной лентойможно отдать команду перемотки или перемещения вперед на одну запись.

• Состояние. Используется для проверки состояния контроллера ввода-вывода и соответствующих периферийных устройств.

• Передача. Используется для чтения и/или записи данных в регистры процессора и внешние устройства и из регистров процессора и внешних устройств.

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