Выдача команд на устройства ввода-вывода

Чтобы выдать команду на устройство ввода-вывода, процессор должен уметь обратиться к устройству и предоставить ему одно или несколько командных слов. Для обращения к устройству используются два метода: ввод-вывод с отображением на память и специальные инструкции ввода-вывода. При вводе-выводе с отображением на память устройствам ввода-вывода выделяется часть адресного пространства. Чтение или запись с указанием этих адресов интерпретируется как команда устройству ввода-вывода.

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

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

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

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





Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: