Программный обмен. Вывод информации. Аппаратное и программное обеспечение
Программный ввод-вывод – это наиболее простой способ обмена данными между процессором и внешним устройством, часто называемый также вводом/выводом с опросом.
Ввод/вывод происходит под полным контролем центрального процессора и реализуется специальной процедурой ввода/вывода. В этой процедуре ЦП с помощью команды ввода/вывода сообщает модулю ввода/вывода, а через него и внешнему устройству о предстоящей операции. Адрес модуля и ВУ, к которому производится обращение, указывается в адресной части команды ввода или вывода. Модуль исполняет затребованное действие, после чего устанавливает в единицу соответствующий бит в своем регистре состояния. Ничего другого, чтобы уведомить ЦП, модуль не предпринимает. Следовательно, для определения момента завершения операции или пересылки очередного элемента блока данных процессор должен периодически опрашивать и анализировать содержимое регистра состояния МВВ.
Иллюстрация процедуры программно управляемого ввода блока данных с устройства ввода приведена на рис. данные читаются пословно. Для каждого читаемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВВ, то есть доступно для считывания.
Процедура начинается с выдачи процессором команды ввода, в которой указан адрес конкретного МВВ и конкретного ВУ. Существуют четыре типа команд В/ВЫВ, которые может получить МВВ: управление, проверка, чтение и запись.
Команды управления используются для активизации ВУ и указания требуемой операции. Например, в устройство памяти на магнитной ленте может быть выдана команда перемотки или продвижения на одну запись. Для каждого типа ВУ характерны специфичные для него команды управления.
Команда проверки применяется для проверки различных ситуаций- возникающих в МВВ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП способен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя операция ввода/вывода и не возникли ли в ходе ее выполнения какие-либо ошибки. Действие команды сводится к установке или сбросу соответствующих разрядов регистра состояния МВВ.
Команда чтения побуждает модуль получить элемент данных из ВУ и занести его в регистр данных (РД). ЦП может получить этот элемент данных, запросив МВВ поместить его на шину данных.
Команда записи заставляет модуль принять элемент данных (байт или слово) с шины данных и переслать его в РД с последующей передачей в ВУ.
Если к МВВ подключено несколько ВУ, то в процедуре ввода/вывода нужно производить циклический опрос всех устройств, с которыми в данный момент прох изводятся операции В/ВЫВ.
Из блок-схемы (см. рис. 8.6) явно виден основной недостаток программно управляемого В/ВЫВ - неэффективное использование процессора из-за ожидания готовности очередной порции информации, в течение которого никаких иных пох лезных действий ЦП не выполняет. Кроме того, пересылка даже одного слова трех бует выполнения нескольких команд. ЦП должен тратить время на анализ битов состояния МВВ, запись в МВВ битов управления, чтение или запись данных со скоростью, определяемой внешним устройством. Все это также отрицательно сках зывается на эффективности ввода/вывода.
Главным аргументом в пользу программно управляемого ввода/вывода являх ется простота МВВ, поскольку основные функции по управлению В/ВЫВ берет на себя процессор. При одновременной работе с несколькими ВУ приоритет устройств легко изменить программными средствами (последовательностью опроса). Наконец, подключение к СВВ новых внешних устройств или
+
Известны два типа программно-управляемой передачи данных: синхронная, асинхронная.
Синхронная передача данныххарактерна для периферийных устройств, для которых известны временные соотношения. При этом типе передачи устройство ввода-вывода должно быть готово к приему или передаче данных за время, равное времени выполнения определенной команды процессора. Синхронная передача реализуется при минимальных затратах технических и программных средств.
Асинхронная передача данных, иногда называемая обменом посредством “рукопожатия”, широко используется в микроЭВМ. При такой передаче данных ЭВМ перед выполнением операции ввода-вывода проверяет состояние периферийного устройства. Блок-схема алгоритма асинхронного программного обмена (фрагмента некоторой программы) приведена на рис. 16.
Обычно при обмене необходимо:
- проверить состояние устройства (чтение регистра состояния (PC));
- активизировать устройство, если последнее готово к обмену;
- передать данные (чтение регистра данных (РД), запись РД);
- дезактивировать устройство.
Асинхронная передача является идеальной в смысле согласования временных различий между периферийными устройствами и процессором. Недостаток ее в том, что процессор вынужден ожидать, пока периферийное устройство не будет готово к обмену. Это приводит не только к непроизводительным затратам времени МП (при наличии длительных задержек), но и во многих случаях является просто недопустимым. Например, в процессах управления в этом случае возникает необходимость сохранения уровня сигналов управления на время ожидания передачи. Методом, позволяющим устранить подобные трудности, является передача данных с прерыванием программы.
Рис. 16. Блок-схема алгоритма асинхронного программного обмена
Дата добавления: 2016-06-13; просмотров: 3057;