Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по ВС.doc
Скачиваний:
227
Добавлен:
22.03.2016
Размер:
1.1 Mб
Скачать

Программный ввод-вывод

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

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

При программном вводе-выводе не может быть обеспечена работа быстрых ПУ, например, дисковых накопителей. Затраты времени на передачу одного байта из ПУ в память машины, т.е. на выполнение процессором функций «канала», даже при высоком быстродействии современных процессоров, сравнительно велики, поэтому для обслуживания быстрых ПУ используют прямой доступ к памяти. Программный ввод-вывод характерен для персональных компьютеров и микроЭВМ при подключении к ним сравнительно медленных ПУ.

Прямой доступ в память

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

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

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