Структура модуля
Структура МВВ в значительной мере зависит от числа и сложности внешних устройств, которыми он управляет, однако в самом общем виде такой модуль можно представить в форме, показанной на рис. 8.5.
Связь модуля входа/вывода с ядром ВМ осуществляется посредством системной или специализированной шипы. С этой стороны в МВВ реализуется так называемый «большой» интерфейс. Большие различия в архитектуре систем команд и шин ВМ являются причиной, того, что со стороны «большого» интерфейса модули ввода/вывода достаточно трудно унифицировать, и часто МВВ, созданные для одних ВМ, не могут быть использованы в других. Тем не менее в структурном плане они достаточно схожи.
Данные, передаваемые в модуль из него, буферизируются в регистре данных. Буферизация позволяет компенсировав различие в быстродействии ядра ВМ и внешних устройств. Разрядность регистра, как правило, совпадает с шириной шины данных со стороны «большого» интерфейса (2, 4 или 8 байт). В свою очередь» большинство ВУ ориентировано на побайтовый обмен информацией. Побайтовая пересылка информации по «широкой» системной шине — крайне неэффективное решение, поэтому со стороны «малого» интерфейса регистр данных часто дополняют узлом упаковки/распаковки (на схеме не показан). Этот узел при вводе обеспечивает последовательное побайтовое заполнение регистра данных (упаковку),
а при выводе — последовательную побайтовую выдачу содержимого регистра па ВУ (распаковку). В результате при обмене данными через «большой» интерфейс занята вся ширина шины данных. В МВВ, рассчитанных на работу с большим числом ВУ, могут входить несколько регистров данных, что позволяет независимо хранить текущие данные каждого из внешних устройств.
Помимо регистра данных в составе МВВ имеются также регистр управлений и регистр состояния (либо совмещенный регистр управления/состояния).
В регистре управления (РУ) фиксируются поступившие из ЦП команды управления модулем или подключенными к нему внешними устройствами. Отдельные разряды регистра могут представлять такие команды, как очистка регистров МВВ, сброс ВУ, начало чтения, начало записи и т.п. В сложных МВВ присутствует несколько регистров управления, например регистр управляющих сигналов для модуля в целом и отдельные РУ для каждого из ВУ.
Регистр состояния (PC) служит для хранения битов состояния МВВ и подключенных к нему ВУ. Содержимое определенного разряда регистра может характеризовать, например, готовность устройства ввода к приему очередной порции данных, занятость устройства вывода или нахождение ВУ в автономном режиме (online). В МВВ не исключается наличие и более одного регистра состояния.
Процедура ввода/вывода предполагает возможность работы с каждым регистром МВВ или внешним устройством по отдельности. Такая возможность обеспечивается системой адресации. Каждому модулю в адресном пространстве ввода/вывода (совмещенном или раздельном) выделяется уникальный набор адресов, количество адресов в котором зависит от числа адресуемых элементов. Поступивший из ЦП адрес с помощью селектора адреса проверяется на принадлежность к диапазону, выделенному данному МВВ. В случае подтверждения дешифратор DC выполняет раскодирование адреса, разрешая работу с соответствующим регистром модуля или ВУ.
Узел управления вводом/выводом по сути играет роль местного устройства управления МВБ. На него возлагаются две задачи: обеспечение взаимодействия ЦП и координация работы всех составляющих МВВ. Связь с ЦП реализуется посредством линии управления, по которым из ЦП в модуль поступают сигналы, служащие для синхронизации операций ввода и вывода. В обратном направлении передаются сигналы, информирующие о происходящих в модуле событиях, например сигналы прерывания. Часть линий управления может задействоваться модулем для арбитража. Вторая функция узла управления реализуется с помощью внутренних сигналов управления.
Со стороны «малого» интерфейса МВВ обеспечивает подключение внешних устройств и взаимодействие с ними. Эта часть МВВ более унифицирована, поскольку внешние устройства всегда подгоняются под один из стандартных протоколов. Каждое из внешних устройств «обслуживается» своим узлом «малого», интерфейса, который реализует принятый для данного ВУ стандартный протокол взаимодействия.
При управлении широким спектром ВУ модуль должен по возможности освобождать ЦП от знания деталей конкретных БУ, так чтобы ЦП мог управлять любым устройством с помощью простых команд чтения и записи. МВВ при этом берет на себя задачи синхронизации, согласования форматов данных и т. п.
Модуль ввода/вывода, который берет на себя детальное управление ВУ и общается с ЦП только с помощью команд высокого уровня, часто называют каналом ввода/вывода или процессором, ввода/вывода. Наиболее примитивный МВВ, требующий детального управления со стороны ЦП, называют контроллером ввода/ вывода или контроллером устройства. Как правило, контроллеры ввода/вывода типичны для микроЭВМ, а каналы ввода/вывода — для универсальных ВМ.
- Глава 8
- Системы ввода/вывода
- Адресное пространство системы ввода/вывода
- Внешние устройства
- Управление и синхронизация
- Обмен информацией
- Буферизация
- Обнаружение ошибок
- Структура модуля
- Методы управления вводом/выводом
- Программно управляемый ввод/вывод
- Ввод/вывод по прерываниям
- Реализация ввода/вывода по прерываниям
- Прямой доступ к памяти
- Каналы и процессоры ввода/вывода
- Канальная подсистема