Передачу данных между микро-ЭВМ и периферийными устройствами обычно называют вводом-выводом информации. Желательно, чтобы такая передача происходила с большой скоростью. В общем случае различают по крайней мере три способа ввода-вывода: программно-управляемый, с отображением в памяти и с прямым доступом к памяти. Все эти способы сейчас широко используются. Чтобы получить полное представление о том, что такое ввод-вывод с прямым доступом к памяти (ПДП), следует ознакомиться со всеми названными способами. Программно-управляемый ввод-вывод и ввод-вывод с отображением в памяти могут быть реализованы с использованием прерываний; при этом выполнение ввода-вывода может инициироваться периферийными устройствами.
ПРОГРАММНО-УПРАВЛЯЕМЫЙ ВВОД-ВЫВОД
При использовании данного способа ввода-вывода всеми операциями управляет программа центрального процессора. Другими словами, периферийное устройство выполняет действия по вводу или выводу данных под управлением ЦП. Обычно в набор команд машины включены команды ввода-вывода, которые служат для передачи данных к периферийным устройствам и из этих устройств через порты ввода-вывода. Все данные, которыми ЦП обменивается с периферийными устройствами, проходят через эти порты, и для осуществления ввода-вывода требуется использование ресурсов ЦП. Блок-схема системы программно-управляемого ввода-вывода типичной микро-ЭВМ показана на рис. 7.1. В табл. 7.1 приведен пример фрагмента программы, служащего для вывода данных в периферийное устройство.
Программно-управляемый ввод-вывод прост в реализации и не требует никаких затрат адресов памяти. Кроме того, в распоряжении программиста имеются специальные команды для пересылки данных в процессе обмена информацией с периферийными устройствами. По сравнению с другими способами программно-управляемый ввод-вывод относительно дешев. Однако ему присущи следующие недостатки. Так как устройства ввода-вывода работают асинхронно по отношению к ЦП, последний не может узнать, в какой момент периферийное устройство готово к пересылке данных, и должен периодически опрашивать устройство для выяснения его готовности. Это приводит к снижению эффективности операции ввода-вывода. Кроме того, в связи с тем что ЦП участвует в действиях по вводу-выводу, его ресурсы оказываются занятыми в течение пересылки и опроса и не могут быть использованы для выполнения других задач. По этим причинам применение программно-управляемого ввода-вывода ограничивается работой с низкоскоростными устройствами.