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