Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000544.doc
Скачиваний:
26
Добавлен:
30.04.2022
Размер:
14.75 Mб
Скачать

3.2. Общие принципы организации ввода-вывода

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

Для сопряжения внешнего устройства с конкретной ЭВМ служат так называемые интерфейсные устройства (или просто интерфейсы). Интерфейс ввода-вывода поддерживает протокол обмена данными по шине ввода/вывода и управляет действиями периферийного устройства в соответствии с командами процессора ЭВМ: преобразует данные из внутреннего представления ЭВМ в форматы, используемые конкретным внешним устройством, и выполняет обратное преобразование в формат, используемый процессором конкретной ЭВМ. Конструктивно периферийные устройства (объекты управления) обычно выполняются как самостоятельные устройства, размещаемые отдельно от ЭВМ, интерфейсы же почти всегда объединяются с процессором и памятью в "блок процессора". Периферийными устройствами являются: дисплеи, печатающие устройства, АЦП и ЦАП, накопители на магнитных носителях, технологическое и сетевое оборудование.

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

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

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

3.2.1. Программный режим ввода-вывода

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

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

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

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

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

Быстродействующие ВУ могут не иметь регистра состояния, т.к. не требуется проверять флаг готовности.