Принципы построения подсистемы ввода-вывода
1. Использование специальных устройств (мостов), называемых контроллерами
периферийных устройств (КПУ), которые предназначены для сопряжения ПУ с
системным интерфейсом требуемого уровня.
2. Архитектурно КПУ представляют собой совокупность трех адресных пространств
(для самого сложного контроллера). Более простые контроллеры могут содержать
одно или два адресных пространства, например, в интерфейсе ISA присутствуют
только пространство ввода/вывода
и пространство памяти, а в интерфейсе PCI
присутствует еще и конфигурационное адресное пространство.
x
x+1
CNF Area
MEM Area
IO Area - пространство ввода/вывода
IO Area
MEM Area - пространство памяти
CNF Area - конфигурационное пространство
Рис. 3. 62. Адресные пространства КПУ
В каждом из адресных пространств размещаются регистры (ячейки памяти
контроллера), доступные через соответствующую область физического адресного
пространства интерфейса.
Через пространство ввода вывода осуществляется пересылка данных. Содержимое
регистра КПУ пересылается в ячейку основной памяти и обратно.
В адресном пространстве памяти контроллера отображаются в последовательных
ячейках данные, полученные
от ПУ и в случае необходимости пересылаются в
основную память.
Конфигурационное пространство памяти используется для настройки и
конфигурирования ПУ. Обмен данными через конфигурационное пространство не
осуществляется. На интерфейсе ISA из-за отсутствия конфигурационного адресного
пространства используется спецификация Plug and Play, где каждое устройство
“говорит” само за себя.
3. Способы ввода/вывода:
) Программный. При котором
программа (драйвер) исполняя команды ввода/вывода
процессора читает или записывает регистры контроллера периферийных устройств.
Реализуется средняя скорость передачи данных. Как правило, любой контроллер
имеет 3 типа регистров:
регистры команд, куда записываются коды действий, которые должен выполнить
контроллер;
регистр состояния. Программа, читая содержимое этого регистра, определяет
состояние контроллера и ПУ;
регистры дынных, через которые происходит обмен данными с ПУ.
Недостатки:
Неэффективное использование процессора, т.к. процессор занимается вводом-
выводом и вынужден ожидать готовность ПУ.
Быстродействующие ПУ не могут быть обслужены через этот способ ввода-
вывода, т.к. процессор исполняет программу, которая располагается в кэш-
памяти.