ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 1265
Скачиваний: 6
3 9 6 Глава 8. Системы ввода/вывода
Фактор старения характерен как для механических, так и для электронных эле-
ментов СВВ. В механических элементах он выражается в виде износа, следствием
чего может быть неточное позиционирование головок считывания/записи на внеш-
них запоминающих устройствах или неправильная подача бумаги в принтерах.
Старение электронных элементов обычно выражается в изменении электричес-
ких параметров схем, приводящем к нарушению управления и синхронизации. Так,
отклонения в параметрах электронных компонентов в состоянии вызвать недопу-
стимый "перекос" сигналов, передаваемых между ЦП и МВБ или внутри МВБ.
Источником ошибок может стать и несовершенство системного программного
обеспечения (ПО):
Ш
непредвиденные последовательности команд или кодовые комбинации;
-
некорректное распределение памяти;
-
недостаточный размер буфера ввода/вывода;
* недостаточно продуманные и оттестированные комбинации системных модулей.
Среди ошибок, порождаемых пользовательским ПО, наиболее частыми явля-
ются:
Я нарушение последовательности выполнения программы;
- некорректные процедуры.
Вероятность возникновения ошибки внутри процессора для современных ЦП
оценивается величиной порядка в то время как для остальных составляю-
щих ВМ она лежит в диапазоне
Способы обнаружения и исправления ошибок ввода/вывода практически не
отличаются от рассмотренных в главе 5.
Структура модуля
Структура МВВ в значительной мере зависит от числа и сложности внешних уст-
ройств, которыми он управляет, однако в самом общем виде такой модуль можно
представить в форме, показанной на рис. 8,5.
Связь модуля ввода/вывода с ядром ВМ осуществляется посредством систем-
ной или специализированной шины. С этой стороны в МВВ реализуется так назы-
ваемый "большой" интерфейс. Большие различия в архитектуре систем команд
и шин ВМ являются причиной того, что со стороны "большого" интерфейса моду-
ли ввода/вывода достаточно трудно унифицировать, и часто МВВ, созданные для
одних ВМ, не могут быть использованы в других. Тем не менее в структурном пла-
не они достаточно схожи.
Данные, передаваемые в модуль и из него, буферизируются в регистре данных.
Буферизация позволяет компенсировать различие в быстродействии ядра ВМ и внеш-
них устройств. Разрядность регистра, как правило, совпадает с шириной шины
данных со стороны «большого» интерфейса (2, 4 или 8 байт). В свою очередь,
большинство ВУ ориентировано на побайтовый обмен информацией. Побайтовая
пересылка информации по «широкой» системной шине — крайне неэффективное
решение, поэтому со стороны «малого» интерфейса регистр данных часто допол-
няют узлом упаковки/распаковки (на схеме не показан). Этот узел при вводе обес-
печивает последовательное побайтовое заполнение регистра данных (упаковку),
Модули ввода/вывода 3 9 7
Рис. 8.5. Структура модуля ввода/вывода
а при выводе — последовательную побайтовую выдачу содержимого регистра на
ВУ (распаковку). В результате при обмене данными через «большой» интерфейс
занята вся ширина шины данных. В МВБ, рассчитанных на работу с большим чис-
лом ВУ, могут входить несколько регистров данных, что позволяет независимо
хранить текущие данные каждого из внешних устройств.
Помимо регистра данных в составе МВБ имеются также регистр управления
и регистр состояния (либо совмещенный регистр управления/состояния).
В
регистре управления
(РУ) фиксируются поступившие из ЦП команды уп-
равления модулем или подключенными к нему внешними устройствами. Отдель-
ные разряды регистра могут представлять такие команды, как очистка регистров
МВБ, сброс ВУ, начало чтения, начало записи и т. п. В сложных МВВ присутству-
ет несколько регистров управления, например регистр управляющих сигналов для
модуля в целом и отдельные РУ для каждого из ВУ.
Регистр состояния
(PC) служит для хранения битов состояния МВВ и под-
ключенных к нему ВУ. Содержимое определенного разряда регистра может ха-
рактеризовать, например, готовность устройства ввода к приему очередной порции
данных, занятость устройства вывода или нахождение ВУ в автономном режиме
(offline). В МВВ не исключается наличие и более одного регистра состояния.
Процедура ввода/вывода предполагает возможность работы с каждым регист-
ром МВВ или внешним устройством по отдельности. Такая возможность обеспе-
чивается системой адресации. Каждому модулю в адресном пространстве ввода/
вывода (совмещенном или раздельном) выделяется уникальный набор адресов,
количество адресов в котором зависит от числа адресуемых элементов. Поступив-
ший из ЦП адрес с помощью селектора адреса проверяется на принадлежность
к диапазону, выделенному данному МВВ. В случае подтверждения дешифратор
3 9 8 Глава 6. Системы ввода/вывода
DC выполняет раскодирование адреса, разрешая работу с соответствующим регис-
тром модуля или ВУ.
Узел управления вводом/выводом по сути играет роль местного устройства
управления МВВ. На него возлагаются две задачи: обеспечение взаимодействия
с ЦП и координация работы всех составляющих МВВ. Связь с ЦП реализуется
посредством линий управления, по которым из ЦП в модуль поступают сигналы,
служащие для синхронизации операций ввода и вывода. В обратном направлении
передаются сигналы, информирующие о происходящих в модуле событиях, напри-
мер сигналы прерывания. Часть линий управления может задействоваться моду-
лем для арбитража. Вторая функция узла управления реализуется с помощью внут-
ренних сигналов управления.
Со стороны «малого»интерфейса МВВ обеспечивает подключение внешних
устройств и взаимодействие с ними. Эта часть МВВ более унифицирована, по-
скольку внешние устройства всегда подгоняются под один из стандартных прото-
колов. Каждое из внешних устройств «обслуживается»- своим узлом «малого» ин-
терфейса, который реализует принятый для данного ВУ стандартный протокол
взаимодействия.
При управлении широким спектром ВУ модуль должен по возможности осво-
бождать ЦП от знания деталей конкретных ВУ, так чтобы ЦП мог управлять лю-
бым устройством с помощью простых команд чтения и записи. МВВ при этом бе-
рет на себя задачи синхронизации, согласования форматов данных и т. п.
Модуль ввода/вывода, который берет на себя детальное управление ВУ и об-
щается с ЦП только с помощью команд высокого уровня, часто называют
каналом
ввода/вывода
или
процессором ввода/вывода.
Наиболее примитивный МВВ, тре-
бующий детального управления со стороны ЦП, называют
контроллером ввода/
вывода или контроллером устройства.
Как правило, контроллеры ввода/вывода
типичны для микроЭВМ, а каналы ввода/вывода — для универсальных ВМ.
Методы управления вводом/выводом
В ВМ находят применение три способа организации ввода/вывода (В/ВЫВ):
- программно управляемый ввод/вывод;
- ввод/вывод по прерываниям;
- прямой доступ к памяти.
При
программно управляемом вводе/выводе
все связанные с этим действия про-
исходят по инициативе центрального процессора и под его полным контролем. ЦП
выполняет программу, которая обеспечивает прямое управление процессом вво-
да/вывода, включая проверку состояния устройства, выдачу команд ввода или
вывода. Выдав в МВВ команду, центральный процессор должен ожидать заверше-
ния ее выполнения, и, поскольку ЦП работает быстрее, чем МВВ, это приводит
к потере времени.
Ввод/вывод по прерываниям
во многом совпадает с программно управляемым
методом. Отличие состоит в том, что после выдачи команды ввода/вывода ЦП не
должен циклически опрашивать МВВ для выяснения состояния устройства. Вме-
сто этого процессор может продолжать выполнение других команд до тех пор, пока
Методы управления вводом/выводом 3 9 9
не получит запрос прерывания от МВВ, извещающий о завершении выполнения
ранее выданной команды В/ВЫВ. Как и при программно управляемом В/ВЫВ,
ЦП отвечает за извлечение данных из памяти (при выводе) и запись данных в па-
мять (при вводе).
Повышение как скорости В/ВЫВ, так и эффективности использования ЦП
обеспечивает третий способ В/ВЫВ —
прямой доступ к памяти
(ПДП). В этом
режиме основная память и модуль ввода/вывода обмениваются информацией на-
прямую, минуя процессор.
Программно управляемый ввод/вывод
Наиболее простым методом управления вводом/выводом является
программно
управляемый ввод/вывод,
часто называемый также
вводом/выводом с опросом.
Здесь
ввод/вывод происходит под полным контролем центрального процессора и реа-
лизуется специальной процедурой ввода/вывода. В этой процедуре ЦП с помощью
команды ввода/вывода сообщает модулю ввода/вывода, а через него и внешнему
устройству о предстоящей операции. Адрес модуля и ВУ, к которому производит-
ся обращение, указывается в адресной части команды ввода или вывода. Модуль
исполняет затребованное действие, после чего устанавливает в единицу соответ-
ствующий бит в своем регистре состояния. Ничего другого, чтобы уведомить
ЦП, модуль не предпринимает. Следовательно, для определения момента за-
вершения операции или пересылки очередного элемента блока данных про-
цессор должен периодически опрашивать и анализировать содержимое регис-
тра состояния МВВ.
Иллюстрация процедуры программно управляемого ввода блока данных с уст-
ройства ввода приведена на рис. 8.6. Данные читаются пословно. Для каждого чи-
таемого слова ЦП должен оставаться в цикле проверки, пока не определит, что
слово находится в регистре данных МВВ, то есть доступно для считывания.
Процедура начинается с выдачи процессором команды ввода, в которой указан
адрес конкретного МВВ и конкретного ВУ. Существуют четыре типа команд
В/ВЫВ, которые может получить МВВ: управление, проверка, чтение и за-
пись.
Команды управления
используются для активизации ВУ и указания требуемой
операции. Например, в устройство памяти на магнитной ленте может быть выдана
команда перемотки или продвижения на одну запись. Для каждого типа ВУ харак-
терны специфичные для него команды управления.
Команда проверки
применяется для проверки различных ситуаций- возникаю-
щих в МВВ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП спосо-
бен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя
операция ввода/вывода и не возникли ли в ходе ее выполнения какие-либо ошибки.
Действие команды сводится к установке или сбросу соответствующих разрядов
регистра состояния МВВ.
Команда чтения
побуждает модуль получить элемент данных из ВУ и занести
его в регистр данных (РД). ЦП может получить этот элемент данных, запросив
МВВ поместить его на шину данных.
Команда записи
заставляет модуль принять элемент данных (байт или слово)
с шины данных и переслать его в РД с последующей передачей в ВУ.
4 0 0 Глава 8. Системы ввода/вывода
Рис. 8.6. Программно управляемый ввод данных
Если к МВВ подключено несколько ВУ, то в процедуре ввода/вывода нужно
производить циклический опрос всех устройств, с которыми в данный момент прох
изводятся операции В/ВЫВ.
Из блок-схемы (см. рис. 8.6) явно виден основной недостаток программно упх
равляемого В/ВЫВ — неэффективное использование процессора из-за ожидания
готовности очередной порции информации, в течение которого никаких иных пох
лезных действий ЦП не выполняет. Кроме того, пересылка даже одного слова трех
бует выполнения нескольких команд. ЦП должен тратить время на анализ битов
состояния МВВ, запись в МВВ битов управления, чтение или запись данных со
скоростью, определяемой внешним устройством. Все это также отрицательно сках
зывается на эффективности ввода/вывода.
Главным аргументом в пользу программно управляемого ввода/вывода являх
ется простота МВВ, поскольку основные функции по управлению В/ВЫВ берет
на себя процессор. При одновременной работе с несколькими ВУ приоритет уст-
ройств легко изменить программными средствами (последовательностью опроса).
Наконец, подключение к СВВ новых внешних устройств или отключение ранее
подключенных также реализуется без особых сложностей.
Ввод/вывод по прерываниям
Как уже отмечалось, основным недостатком программно управляемого В/ВЫВ
являются простои процессора в ожидании, пока модуль ввода/вывода выполнит
очередную операцию. Альтернативой может быть вариант, когда ЦП выдает ко-