Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vasya.doc
Скачиваний:
2
Добавлен:
27.11.2019
Размер:
542.21 Кб
Скачать

Програмне введення –виведення

Методы выполнения процедур ввода-вывода можно разделить на три груп­пы. При программируемом вводе-выводе данные циркулируют между процессо­ром и модулем ввода-вывода. Весь процесс обмена идет под полным контролем процессора (точнее, программы, которую процессор выполняет). Процессор ана­лизирует текущее состояние устройства, передает команды чтения данных с уст­ройства или передачи ему данных (для общности принято называть такую опе­рацию "записью на устройство", хотя для многих типов устройств никакой запи­си фактически не выполняется). После того как процессор передаст некоторую команду модулю ввода-вывода, процессор должен выждать, пока команда будет выполнена, и только после этого передавать следующую. Поскольку, как прави­ло, внешнее устройство работает на несколько порядков медленнее, чем процес­сор, на ожидание понапрасну тратится масса времени.

Более производителен метод ввода-вывода по прерыванию. При обмене данными по этому методу процессор, передав модулю команду ввода-вывода, продолжает вы­полнять дальнейшие команды программы до тех пор, пока не будет прерван моду­лем, извещающим, что выполнение ранее переданной команды завершено. При вы­полнении операций ввода-вывода этими двумя методами на процессор возлагается ответственность за извлечение нужных данных из оперативной памяти при их пере­сылке на внешнее устройство или за размещение данных в оперативной памяти приприеме их от внешнего устройства. Альтернативный метод получил наименование режима прямого доступа к памяти direct memory access (DMA). В этом режиме модуль ввода-вывода и оперативная память обмениваются данным^ напрямую, не вовлекая процессор в эту процедуру.

В настоящем разделе мы рассмотрим методику программируемого ввода-вывода, а две другие методики будут описаны в последующих разделах этой главы.

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

Анализ методики программируемого ввода-вывода мы начнем с команд, пере­даваемых процессором модулю, а затем рассмотрим, как эти команды соотносятся с инструкциями ввода-вывода, которые процессор извлекает из программы.

Команды ввода-вывода

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

Команды управления. Служат для активизации внешнего устройства и задаюттип операции, которую устройство должно выполнить.

Команды опроса состояния. Используются для анализа отдельных пара­метров текущего состояния модуля и (или) подключенного к нему внешнего устройства.

Команда чтения. Инициирует прием модулем ввода-вывода очереднойпорции данных от внешнего устройства.

Команда записи. Инициирует передачу модулем ввода-вывода порции дан­ных внешнему устройству. Передаваемые данные (как правило байт или слово), выставляются процессором на линии данных системной магистрали.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]