Организация ввода/вывода микопроцессоров
Вводом/выводом (ВВ) называется передача данных между микропроцессором и памятью и внешними устройствами (ВУ). Архитектура ВВ (режимы работы, особенности прерываний, скорость обмена и др.) является решающим фактором эффективности всей системы в целом. Критическую роль средства ВВ играют в управляющих ЭВМ, и часто определяют выбор машины для конкретного применения.
Модель внешних устройств
Подключение внешних устройств к системной шине осуществляется посредством электронных схем-контроллеров ВВ (интерфейсами ВВ), служащие для согласования электрических параметров и ввода/вывода данных и управляющей информации.
В процессе ввода/вывода передается информация двух видов: команды управления и собственно данные. Команды от процессора инициируют действия, связанные непосредственно с передачей данных или же служебные действия - запуск устройства, запрещение прерываний и т.п. Внешние устройства сигнализируют о своём состоянии с помощью слов состояния; они содержат информацию об определенных режимах работы, например о готовности устройства к передаче данных, о наличии ошибок при обмене и т.п. Состояние обычно представляется в некоторой кодированной форме - один бит для каждого признака либо код ошибки.
Регистр, содержащий группу бит, к которому процессор обращается в операциях ВВ, образует порт ВВ. Таким образом, наиболее общая модель внешнего устройства, которое может выполнять ввод и вывод, содержит следующие регистры ВВ: регистр выходных данных (выходной порт), регистр входных данных (входной порт), регистр управления и регистр состояния (см. рис.) Каждый из этих регистров имеет однозначный адрес, который идентифицируется дешифратором адреса. В зависимости от особенностей устройства общая модель конкретизируется, например, регистры состояния и управления объединяются в один регистр, в устройстве ввода (вывода) имеется только регистр входных (выходных) данных, для ввода и вывода используется двунаправленный порт.
Рис. 3.1. Программная модель внешнего устройства
Непосредственные действия, связанные с вводом/выводом, реализуются одним из двух способов, различающихся адресацией регистров ВВ.
Интерфейс с "изолированными шинами" характеризуется раздельной адресацией памяти и внешних устройств при обмене информацией. Изолированный ВВ предполагает наличие специальных команд ввода/вывода, например Intel 80x86. При выполнении команды ввода IN содержимое адресуемого входного регистра PORT передается в аккумулятор процессора, а при выполнении команды OUT содержимое аккумулятора передается в выходной порт PORT. В процессоре могут быть и другие команды, относящиеся к ВВ и связанные с проверкой и модификацией содержимого регистра управления и состояния.
Таким образом, адресное пространство портов ввода и вывода изолировано от адресного пространства памяти, т.е. в ЭВМ один и тот же адрес могут иметь порт ВВ и ячейка памяти. Разделение адресных пространств осуществляется с помощью управляющих сигналов, относящихся к системам ВВ и памяти (-MEMR - считывание данных из памяти, -MEMW - запись данных в память, -IOR - чтение порта ВВ, -IOW - запись в порт ВВ).
В случае совмещённой шины устройства ВВ делят с памятью одно адресное пространство, в котором некоторый небольшой сегмент отводится устройствам ВВ. Специальных команд в/в при этом не используется, доступ идёт аналогично доступу к памяти. Для адресации адресных пространств используются 2 управляющих сигнала (-MEMR - считывание данных из памяти, -MEMW - запись данных в память).
Если, например, адресное пространство памяти составляет 64 Кбайт, а для программного обеспечения достаточно 32 Кбайт, то область адресов от 0 до 32 К-1 используется для памяти, от 32 К до 64 К-1 - для ввода/вывода.
В операционных системах ЭВМ имеется набор подпрограмм (драйверов ВВ), управляющих операциями ВВ стандартных внешних устройств. Благодаря им пользователь может не знать многих особенностей ВУ и интерфейсов ВВ, а применять четкие программные протоколы.