3 9 8 Глава 6. Системы ввода/вывода
DC выполняет раскодирование адреса, разрешая работу с соответствующим регис­тром модуля или ВУ.
Узел управления вводом/выводом по сути играет роль местного устройства управления МВВ. На него возлагаются две задачи: обеспечение взаимодействия с ЦП и координация работы всех составляющих МВВ. Связь с ЦП реализуется посредством линий управления, по которым из ЦП в модуль поступают сигналы, служащие для синхронизации операций ввода и вывода. В обратном направлении передаются сигналы, информирующие о происходящих в модуле событиях, напри­мер сигналы прерывания. Часть линий управления может задействоваться моду­лем для арбитража. Вторая функция узла управления реализуется с помощью внут­ренних сигналов управления.
Со стороны «малого»интерфейса МВВ обеспечивает подключение внешних устройств и взаимодействие с ними. Эта часть МВВ более унифицирована, по­скольку внешние устройства всегда подгоняются под один из стандартных прото­колов. Каждое из внешних устройств «обслуживается»- своим узлом «малого» ин­терфейса, который реализует принятый для данного ВУ стандартный протокол взаимодействия.
При управлении широким спектром ВУ модуль должен по возможности осво­бождать ЦП от знания деталей конкретных ВУ, так чтобы ЦП мог управлять лю­бым устройством с помощью простых команд чтения и записи. МВВ при этом бе­рет на себя задачи синхронизации, согласования форматов данных и т. п.
Модуль ввода/вывода, который берет на себя детальное управление ВУ и об­щается с ЦП только с помощью команд высокого уровня, часто называют каналом ввода/выводанлжпроцессоромввода/вывода.НажболеепржмшнвшшМВВ,тре-бующий детального управления со стороны ЦП, называют контроллером ввода/ вывода или контроллеромустройства. Какправило, контроллеры ввода/вывода типичны для микроЭВМ, а каналы ввода/вывода — для универсальных ВМ.
Методы управления вводом/выводом
В ВМ находят применение три способа организации ввода/вывода (В/ВЫВ):
-   программно управляемый ввод/вывод;
-   ввод/вывод по прерываниям;
-  прямой доступ к памяти.
При программно управляемом вводе/выводе все связанные с этим действия про­исходят по инициативе центрального процессора и под его полным контролем. ЦП выполняет программу, которая обеспечивает прямое управление процессом вво­да/вывода, включая проверку состояния устройства, выдачу команд ввода или вывода. Выдав в МВВ команду, центральный процессор должен ожидать заверше­ния ее выполнения, и, поскольку ЦП работает быстрее, чем МВВ, это приводит к потере времени.
Ввод/вывод по прерываниям во многом совпадает с программно управляемым методом. Отличие состоит в том, что после выдачи команды ввода/вывода ЦП не должен циклически опрашивать МВВ для выяснения состояния устройства. Вме­сто этого процессор может продолжать выполнение других команд до тех пор, пока
Методы управления вводом/выводом 3 9 9
не получит запрос прерывания от МВБ, извещающий о завершении выполнения ранее выданной команды В/ВЫВ. Как и при программно управляемом В/ВЫВ, ЦП отвечает за извлечение данных из памяти (при выводе) и запись данных в па­мять (при вводе).
Повышение как скорости В/ВЫВ, так и эффективности использования ЦП обеспечивает третий способ В/ВЫВ — прямой доступ к памяти (ПДП). В этом режиме основная память и модуль ввода/вывода обмениваются информацией на­прямую, минуя процессор.
Программно управляемый ввод/вывод
Наиболее простым методом управления вводом/выводом является программно управляемыйввод/вывод,частоаазываемьштакжевводом/выводомсопросом.Зд,есъ ввод/вывод происходит под полным контролем центрального процессора и реа­лизуется специальной процедурой ввода/вьшода. В этой процедуре ЦП с помощью команды ввода/вывода сообщает модулю ввода/вывода, а через него и внешнему устройству о предстоящей операции. Адрес модуля и ВУ, к которому производит­ся обращение, указывается в адресной части команды ввода или вывода. Модуль исполняет затребованное действие, после чего устанавливает в единицу соответ­ствующий бит в своем регистре состояния. Ничего другого, чтобы уведомить ЦП, модуль не предпринимает. Следовательно, для определения момента за­вершения операции или пересылки очередного элемента блока данных про­цессор должен периодически опрашивать и анализировать содержимое регис­тра состояния МВБ.
Иллюстрация процедуры программно управляемого ввода блокаданных с уст­ройства ввода приведена на рис. 8.6. Данные читаются пословно. Для каждого чи­таемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВБ, то есть доступно для считывания.
Процедура начинается с выдачи процессором команды ввода, в которой указан адрес конкретного МВБ и конкретного ВУ. Существуют четыре типа команд В/ВЫВ, которые может получить МВБ: управление, проверка, чтение и за­пись.
Команды управления используются для активизации ВУ и указания требуемой операции. Например, в устройство памяти на магнитной ленте может быть выдана команда перемотки или продвижения на одну запись. Для каждого типа ВУ харак­терны специфичные для него команды управления.
Команда проверки применяется для проверки различных ситуаций- возникаю­щих в МВБ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП спосо­бен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя операция ввода/вьшода и не возникли ли в ходе ее выполнения какие-либо ошибки. Действие команды сводится к установке или сбросу соответствующих разрядов регистра состояния МВБ.
Команда чтения побуждает модуль получить элемент данных из ВУ и занести его в регистр данных (РД). ЦП может получить этот элемент данных, запросив МВБ поместить его на шину данных.
Команда записи заставляет модуль принять элемент данных (байт или слово) с шины данных и переслать его в РД с последующей передачей в ВУ.
Если к МВБ подключено несколько ВУ, то в процедуре ввода/вывода нужно производить циклический опрос всехустройств, с которыми в данный момент прох изводятся операции В/ВЫВ.
Из блок-схемы (см. рис. 8.6) явно виден основной недостаток программно упх равляемого В/ВЫВ — неэффективное использование процессора из-за ожидания готовности очередной порции информации, в течение которого никаких иных пох л езных действий ЦП не выполняет. Крометого, пересылка даже одного слова трех бует выполнения нескольких команд. ЦП должен тратить время на анализ битов состояния МВБ, запись в МВБ битов управления, чтение или запись данных со скоростью, определяемой внешним устройством. Все это также отрицательно сках зывается на эффективности ввода/вывода.
Главным аргументом в пользу программно управляемого ввода/вывода являх ется простота МВБ, поскольку основные функции по управлению В/ВЫВ берет на себя процессор. При одновременной работе с несколькими ВУ приоритет уст­ройств легко изменить программными средствами (последовательностью опроса). Наконец, подключение к СВВ новых внешних устройств или отключение ранее подключенных также реализуется без особых сложностей.
Ввод/вывод по прерываниям
Как уже отмечалось, основным недостатком программно управляемого В/ВЫВ являются простои процессора в ожидании, пока модуль ввода/вывода выполнит очередную операцию. Альтернативой может быть вариант, когда ЦП выдает ко-
Hosted by uCoz