39 2 Глава 8. Системы ввода/вывода
Модули ввода/вывода Функции модуля
Модуль ввода/вывода в составе вычислительной машины отвечает за управление одним или несколькими ВУ и за обмен данными между этими устройствами с од­ной стороны, и основной памятью или регистрами ЦП — с другой. Основные функ­ции МВБ можно сформулировать следующим образом:
-   локализация данных;
-  управление и синхронизация;
-   обмен информацией;
-   буферизация данных;
-   обнаружение ошибок.
Локализацияданных
Под, локализацией данных будем понимать возможность обращения к одному из ВУ, а также адресации данных на нем.
Адрес ВУ обычно содержится в адресной части команд ввода/вывода. Как уже отмечалось, в состав СВВ могут входить несколько модулей ввода/вывода. Каж­дому модулю назначается определенный диапазон адресов, независимо от того, является ли пространство адресов совмещенным или раздельным. Старшие раз­ряды в адресах диапазона, выделенного модулю, обычно одинаковы и обеспечива­ют выбор одного из МВБ в рамках системы ввода/вывода. Младшие разряды адреса представляют собой уникальные адреса регистров данного модуля или подклю­ченных к нему ВУ.
Одной из функций МВБ является проверка вхождения поступившего по шине адреса в выделенный данному модулю диапазон адресов. При положительном от­вете модуль должен обеспечить дешифровку поступившего адреса и перенаправ­ление информации к адресуемому объекту или от него.
Для простейших внешних устройств (клавиатура, принтер и т. п.) адрес ВУ однозначно определяет и расположение данных на этом устройстве. Для более сложных ВУ, таких как внешние запоминающие устройства, информация о место­нахождении данных требует детализации. Так, для ЗУ на магнитной ленте необ­ходимо указать номер записи, а для магнитного диска — номер цилиндра, номер сектора и т. п. Эта часть адресной информации передается в МВБ не по шине ад­реса, а в виде служебных сообщений, пересылаемых по шине данных. Обработка такой информации в модуле, естественно, сложнее, чем выбор нужного регистра или ВУ. В частности, она может требовать от МВБ организации процедуры поис­ка на носителе информации.
Управление и синхронизация
Функция управления и синхронизации заключается в том, что МВБ должен коор­динировать перемещение данных между внутренними ресурсами ВМ и внешними устройствами. При разработке системы управления и синхронизации модуля вво­да/вывода необходимо учитывать целый ряд факторов.
Модули ввода/вывода 393
Прежде всего, нужно принимать во внимание, что ЦП может взаимодейство­вать одновременно с несколькими ВУ, причем быстродействие подключаемых к МВБ внешних устройств варьируется в очень широких пределах — от несколь­ких байтов в секунду в терминалах до десятков миллионов байтов в секунду при обмене с магнитными дисками. Если в системе используются шины, каждое взаи­модействие между ЦП и МВБ включает в себя одну или несколько процедур ар­битража.
В отличие от обмена с памятью процессы ввода/вывода и работа ЦП протека­ют не синхронно. Очередная порция информация может быть выдана на устрой­ство выводалишь тогда, когда это устройство готово их принять. Аналогично, ввод от устройства ввода допустим только в случае доступности информации на уст­ройстве ввода. Несинхронный характер процессов ввода/вывода предполагает об­мен сигналами, аналогичный процедуре «рукопожатия» (handshake), описанной в главе 4. Для двухпроводной системы синхронизации эта процедура состоит из четырех шагов, которые применительно к операции вывода можно описать следу­ющим образом:
1.  Центральный процессор с помощью сигналаДД - 1 (данные достоверны) изве-
2.   Приняв данные, устройство вывода сообщает процессору об их получении сиг­налом ДП= 1 (данные приняты).
3.   Получив подтверждение, ЦП обнуляет сигнал ДД и снимает данные с шины, после чего может выставить на шину новые данные.
4.   Обнаружив, что ДД = 0, устройство вывода, в свою очередь, устанавливает в ну­левое состояние сигнал ДД после чего оно готово для обработки принятых дан­ных все время до получения очередного сигнала ДД = 1.
Описанную процедуру иллюстрирует рис. 8.4 (в скобках указаны номера ша­гов).
Таким образом, модуль ввода/вывода обязан снабдить центральный процессор информацией о собственной готовности к обмену, а также о готовности подклю­ченных к модулю ВУ. Помимо этого, процессор должен обладать оперативными сведениями и об иных происходящих в СВВ событиях.
Обмен информацией
Основной функцией МВВ является обеспечение обмена информацией. Со сторо­ны «большого» интерфейса— это обмен с ЦП, а со стороны «малого» интерфей­са — обмен с ВУ. В таком плане требования к МВВ непосредственно проистекают
39 4 Глава 8. Системы ввода/вывода
из типовой последовательности операций, выполняемых процессором при вводе/ выводе. ,
1.   Выбор требуемого внешнего устройства.
2.   Определение состояния МВБ и ВУ.
3.   Выдача указания модулю ввода/вывода на подключение нужного ВУ к про­цессору.
4.   Получение от МВБ подтверждения о подключении затребованного ВУ к про­цессору.
5.   Распознавание сигнала готовности устройства к передаче очередной порции информации.
6.   Прием (передача) порции информации.
7.   Циклическое повторение двух предшествующих пунктов до завершения пере­дачи информации в полном объеме.
8.   Логическое отсоединение ВУ от процессора.
С учетом описанной процедуры функция обмена информацией с ЦП включает в себя:
дешифровку команды: МВБ получает команды из ЦП в виде сигналов на шине
управления;
пересылку данных между МВБ и ЦП по шине данных;.
извещение о состоянии: из-за того, что ВУ — медленные устройства, важно знать
состояние модуля ввода/вывода. Так, в момент получения запроса на пересыл­ку данных в центральный процессор МВБ может быть не готов выполнить эту пересылку, поскольку еще не завершил предыдущую команду. Этот факт дол­жен быть сообщен процессору с помощью соответствующего сигнала. Возмож­ны также сигналы, уведомляющие о возникших ошибках;
распознавание адреса; МВБ обязан распознавать адрес каждого ВУ, которым
он управляет.
Наряду с обеспечением обмена с процессором МВБ должен выполнять функ­цию обмена информацией с ВУ, Такой обмен также включает в себя передачу дан­ных, команд и информации о состоянии.
Буферизация
Важной задачей модуля ввода/вывода является буферизация данных, необходи­мость которой иллюстрирует табл. 8.1 [120].
Таблица 8.1. Примеры устройств ввода/вывода, упорядоченные по режимуработы, субъекту и скорости передачи данных
Устройств
Режим работы
Партнер
Скорость
ППрОДГИ! ДП1ИЙПГ.
Кбайт/с
Клавиатура
Ввод
Человек
0.01
Мышь
Ввод
Человек
0.02
Модули ввода/вывода 3 9 S
Устройство
Режим работы
Партнер
Скорость передачи данных, Кбайт/с
Сканер
Ввод
Человек
200
Строчный принтер
Вывод
Человек
1
Лазерный принтер
Вывод
Человек
100
Графический дисплей
Вывод
Человек
30 000
Локальная сеть
Ввод/вывод
ВМ
200
Гибкий диск
Память
ВМ
50
Оптический диск
Память
ВМ
500
Магнитный диск
Память
ВМ
2000
Несмотря на различия в скорости обмена информацией для разных ВУ, все они в этом плане значительно отстают от ЦП и памяти. Такое различие компенсирует­ся за счет буферизации. При выводе информации на ВУ данные пересылаются из основной памяти в МВБ с большой скоростью. В модуле эти данные буферизиру-ются и затем направляются в ВУ со скоростью, свойственной последнему. При вводе из ВУ данные буферизируются так, чтобы не заставлять память работать в режиме медленной передачи. Таким образом, МВБ должен обладать способное-
Обнаружение ошибок
Еще одной из важнейших функций МВБ является обнаружение ошибок, возника­ющих в процессе ввода/вывода. Центральный процессор следует оповещать о каж­дом случае обнаружения ошибки. Причинами возникновения последних бывают самые разнообразные факторы, которые в первом приближении можно свести к следующим группам:
в воздействие внешней среды;
-   старение элементной базы;
-   системное программное обеспечение;
-   пользовательское программное обеспечение.
Из наиболее "активных", факторов окружения ВМ следует выделить:
-   загрязнение и влагу;
-   повышенную или пониженную температуру окружающей среды; -электромагнитное облучение;
-  скачки напряжения питания.
Степень влияния каждого из этих факторов зависит от типаи конструкции МВБ и ВУ, Так, к загрязнению наиболее чувствительны оптические и механические элементы ВУ, в то время как работа электронных компонентов СВВ в большей степени зависит от температуры внешней среды, электромагнитного воздействия и стабильности питающего напряжения.
3 9 6 Глава 8. Системы ввода/вывода
Фактор старения характерен как для механических, так и для электронных эле­ментов, СВВ. В механических элементах он выражается в виде износа, следствием чего может быть неточное позиционирование головок считывания/записи на внеш­них запоминающих устройствах или неправильная подача бумаги в принтерах. Старение электронных элементов обычно выражается в изменении электричес­ких параметров схем, приводящем к нарушению управления и синхронизации. Так, отклонения в параметрах электронных компонентов в состоянии вызвать недопу­стимый "перекос" сигналов, передаваемых между ЦП и МВБ или внутри МВБ.
Источником ошибок может стать и несовершенство системного программного обеспечения (ПО):
Ш непредвиденные последовательности команд или кодовые комбинации;
-   некорректное распределение памяти;
-   недостаточный размер буфера ввода/вывода;
* недостаточно продуманные и оттестированные комбинации системных модулей.
Среди ошибок, порождаемых пользовательским ПО, наиболее частыми явля­ются:
Я нарушение последовательности выполнения программы;
-   некорректные процедуры.
Вероятность возникновения ошибки внутри процессора для современных ЦП оценивается величиной порядка 10"', в то время как для остальных составляю­щих ВМ она лежит в диапазоне Ю^-КГ12.
Способы обнаружения и исправления ошибок ввода/вывода практически не отличаются от рассмотренных в главе 5.
Структура модуля
Структура МВБ в значительной мере зависит от числа и сложности внешних уст­ройств, которыми он управляет, однако в самом общем виде такой модуль можно представить в форме, показанной на рис. 8,5.
Связь модуля ввода/вывода с ядром ВМ осуществляется посредством систем­ной или специализированной шины. С этой стороны в МВБ реализуется так назы­ваемый "большой" интерфейс. Большие различия в архитектуре систем команд и шин ВМ являются причиной того, что со стороны "большого" интерфейса моду­ли ввода/вывода достаточно трудно унифицировать, и часто МВБ, созданные для одних ВМ, не могут быть использованы в других. Тем не менее в структурном пла­не они достаточно схожи.
Данные, передаваемые в модуль и из него, буферизируются в регистре данных. Буферизация позволяет компенсировать различие в быстродействии ядра ВМ и внеш­них устройств. Разрядность регистра, как правило, совпадает с шириной шины данных со стороны «большого» интерфейса (2, 4 или 8 байт). В свою очередь, большинство ВУ ориентировано на побайтовый обмен информацией. Побайтовая пересылка информации по «широкой» системной шине — крайне неэффективное решение, поэтому со стороны «малого» интерфейса регистр данных часто допол­няют узлом упаковки/распаковки (на схеме не показан). Этот узел при вводе обес­печивает последовательное побайтовое заполнение регистра данных (упаковку),
Hosted by uCoz