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