Вопрос 22.модули ввода/вывода.
Модуль ввода/вывода (МВВ) в составе вычислительной машины отвечает за управление подключенными к нему одним или несколькими ПУ и за обмен данными между этими устройствами, с одной стороны, и основной памятью или регистрами ЦП — с другой. Основные функции МВВ можно сформулировать следующим образом:
■ локализация данных;
■ управление и синхронизация;
■ обмен информацией;
■ буферизация данных;
■ обнаружение ошибок.
Локализация данных
Под локализацией данных будем понимать возможность обращения к одному из ПУ, а также адресации данных на нем.
Адрес ПУ обычно содержится в адресной части команд ввода/вывода. Как уже отмечалось, в состав СВВ могут входить несколько модулей ввода/вывода. К каждому МВВ может быть подключено несколько ПУ, поэтому каждому модулю назначается определенный диапазон адресов, независимо от того, является ли пространство адресов совмещенным или раздельным. Старшие разряды обеспечивают выбор одного из МВВ в рамках системы ввода/вывода. Младшие разряды адреса представляют собой уникальные адреса регистров данного модуля или подключенных к нему ПУ. Одной из функций МВВ является проверка «попадания» поступившего адреса в выделенный данному модулю диапазон адресов. При положительном ответе для простейших периферийных устройств (клавиатура, принтер и т. п.) адрес ПУ однозначно определяет и расположение данных на этом устройстве. Для более сложных ПУ, таких как внешние запоминающие устройства, информация о местонахождении данных требует детализации. Так, для ЗУ на магнитном диске необходимо указать номер цилиндра, номер сектора и т. п. Эта часть адресной информации передается в МВВ не по шине адреса, а в виде служебных сообщений, пересылаемых по шине данных. Обработка такой информации в модуле, естественно, сложнее, чем выбор нужного регистра или ПУ. В частности, она может требовать от МВВ организации процедуры поиска на носителе информации.
Управление и синхронизация
Функция управления и синхронизации заключается в том, что МВВ должен координировать перемещение данных между внутренними ресурсами ВМ и периферийными устройствами. При разработке системы управления и синхронизации модуля ввода/вывода необходимо учитывать целый ряд факторов.
Прежде всего, нужно принимать во внимание, что центральный процессор может взаимодействовать одновременно с несколькими ПУ, причем быстродействие подключаемых к МВВ периферийных устройств варьируется в очень широких пределах — от нескольких байтов в секунду в терминалах до десятков миллионов байтов в секунду при обмене с магнитными дисками. Если в системе используются шины, каждое взаимодействие между ЦП и МВВ включает в себя одну или несколько процедур арбитража.
В отличие от обмена с памятью, процессы ввода/вывода и работа ЦП протекают не синхронно. Очередная порция информации может быть выдана на устройство вывода лишь тогда, когда это устройство готово их принять. Аналогично, ввод допустим только в случае доступности информации на устройстве ввода.
Обмен информацией
Основной функцией МВВ является обеспечение обмена информацией. Со стороны «большого» интерфейса — это обмен с ЦП, а со стороны «малого» интерфейса — обмен с ПУ. В таком плане требования к МВВ диктуются последовательностью операций, выполняемых процессором при вводе/выводе:
1. Выбор требуемого периферийного устройства.
2. Определение состояния МВВ и ПУ.
3. Выдача указания модулю ввода/вывода на подключение нужного ПУ к процессору.
4. Получение от МВВ подтверждения о подключении затребованного ПУ к процессору.
5. Распознавание сигнала готовности устройства к передаче очередной порции информации.
6. Прием (передача) порции информации.
7. Циклическое повторение двух предшествующих пунктов до завершения передачи информации в полном объеме.
8. Логическое отсоединение ПУ от процессора.
С учетом описанной процедуры функция обмена информацией с ЦП включает в себя:
■ распознавание команды: МВВ получает команды из ЦП в виде сигналов на шине управления;
■ пересылку данных между МВВ и ЦП;
■ извещение о состоянии: из-за того что ПУ — медленные устройства, важно знать состояние модуля ввода/вывода. Так, в момент получения запроса на пересылку данных в центральный процессор МВВ может быть не готов выполнить эту пересылку, поскольку еще не завершил предыдущую команду. Этот факт должен быть сообщен процессору с помощью соответствующего сигнала. Возможны также сигналы, уведомляющие о возникших ошибках;
■ распознавание адреса: МВВ обязан распознавать адрес каждого ПУ, которым он управляет.
Помимо обмена с процессором, МВВ должен обеспечивать функцию обмена информацией с ПУ. Такой обмен также включает в себя передачу данных, команд и информации о состоянии.
Буферизация
Несмотря на различия в скорости обмена информацией для разных ПУ, все они в этом плане значительно отстают от ЦП и памяти. Такое различие компенсируется за счет буферизации. При выводе информации на ПУ данные пересылаются из основной памяти в МВВ с большой скоростью. В модуле эти данные буферизируются и затем направляются в ПУ со скоростью, свойственной последнему. При вводе из ПУ данные буферизируются так, чтобы не заставлять память работать в режиме медленной передачи. Таким образом, МВВ должен обеспечивать работу как со скоростью памяти, так и со скоростью ПУ.
Обнаружение ошибок
Еще одной из важнейших функций МВВ является обнаружение ошибок, возникающих в процессе ввода/вывода. Центральный процессор следует оповещать о каждом случае обнаружения ошибки. Ошибки могут быть вызваны самыми разнообразными факторами:
■ загрязнение и влага;
■ повышенная или пониженная температура окружающей среды;
■ электромагнитное облучение;
■ скачки напряжения питания.
■ старение элементной базы;
■ ошибки в системном программном обеспечении;
■ ошибки в пользовательском программном обеспечении.
Вопрос 23.Структура модуля ввода-вывода.
Структура МВВ в значительной мере зависит от числа и сложности периферийных устройств, которыми он управляет, однако в самом общем виде такой модуль можно представить в форме, показанной на рис. 8.4.
Связь модуля ввода/вывода с ядром ВМ осуществляется посредством системной или специализированной шины. С этой стороны МВВ реализуется так называемый «большой» интерфейс. Большие различия в архитектуре систем команд и шин ВМ являются причиной того, что со стороны «большого» интерфейса модули ввода/ вывода достаточно трудно унифицировать, и часто МВВ, созданные для одних ВМ, не могут быть использованы в других. Тем не менее в структурном плане они достаточно схожи.
Данные, передаваемые между МВВ и ядром вычислительной машины, буферизируются в регистре данных, благодаря чему удается компенсировать различие в быстродействии ядра ВМ и периферийных устройств. Разрядность регистра, как правило, совпадает с количеством линий в шине, подключаемой со стороны «большого» интерфейса (обычно 4 или 8 байтов). В то же время большинство ПУ ориентировано на побайтовый обмен информацией. Побайтовая пересылка информации по «широкой» системной шине — крайне неэффективное решение, поэтому со стороны «малого» интерфейса регистр данных часто дополняют узлом упаковки/ распаковки (на схеме не показан). Этот узел при вводе обеспечивает последовательное побайтовое заполнение регистра данных (упаковку), а при выводе — последовательную побайтовую выдачу содержимого регистра на ПУ (распаковку).
В результате обмен данными через «большой» интерфейс выполняется за один такт. МВВ может содержать несколько регистров данных, что позволяет независимо хранить текущие данные каждого из периферийных устройств, подключенных к данному модулю ввода/вывода.
Помимо регистра данных, в составе МВВ имеются также регистр управления и регистр состояния (либо совмещенный регистр управления/состояния).
В регистре управления (РУ) фиксируются поступившие из ЦП команды управления модулем или подключенными к нему периферийными устройствами. Отдельные разряды регистра могут представлять такие команды, как очистка регистров МВВ, сброс ПУ, начало чтения, начало записи и т. п. В сложных МВВ присутствует несколько регистров управления, например регистр управляющих сигналов для модуля в целом и отдельные РУ для каждого из ПУ.
Регистр состояния (РС) служит для хранения битов состояния МВВ и подключенных к нему ПУ. Содержимое определенного разряда регистра может характеризовать, например, готовность устройства ввода к приему очередной порции данных, занятость устройства вывода или нахождение ПУ в автономном режиме (offline). В МВВ не исключается наличие и более одного регистра состояния.
Процедура ввода/вывода предполагает возможность работы с каждым регистром МВВ или периферийным устройством по отдельности. Такая возможность обеспечивается системой адресации. Каждому модулю в адресном пространстве ввода/ вывода (совмещенном или раздельном) выделяется уникальный набор адресов, количество адресов в котором зависит от числа адресуемых элементов. Поступивший из ЦП адрес с помощью селектора адреса проверяется на принадлежность к диапазону, выделенному данному МВВ. В случае подтверждения дешифратор адреса выполняет раскодирование адреса, разрешая работу с соответствующим регистром модуля или ПУ.
Узел управления вводом/выводом, по сути, играет роль местного устройства управления МВВ. На него возлагаются две задачи: обеспечение взаимодействия с ЦП и координация работы всех составляющих МВВ. Связь с ЦП реализуется посредством линий управления, по которым из ЦП в модуль поступают сигналы, служащие для синхронизации операций ввода и вывода. В обратном направлении передаются сигналы, информирующие о происходящих в модуле событиях, например сигналы прерывания. Часть линий управления может задействоваться модулем для арбитража. Вторая функция узла управления реализуется с помощью внутренних сигналов управления.
Со стороны «малого» интерфейса МВВ обеспечивает подключение периферийных устройств и взаимодействие с ними. Эта часть МВВ более унифицирована, поскольку периферийные устройства всегда «подгоняются» под один из стандартных протоколов. Каждое из периферийных устройств обслуживается своим узлом «малого» интерфейса, который реализует принятый для данного ПУ стандартный протокол взаимодействия.
При управлении широким спектром ПУ модуль должен по возможности освобождать ЦП от знания деталей конкретных ПУ, так чтобы ЦП мог управлять любымустройством с помощью простых команд чтения и записи. МВВ при этом берет на себя задачи синхронизации, согласования форматов данных и т. п.
Модуль ввода/вывода, который берет на себя детальное управление ПУ и общается с ЦП только с помощью команд высокого уровня, часто называют каналом ввода/вывода или процессором ввода/вывода. Наиболее примитивный МВВ, требующий детального управления со стороны ЦП, называют контроллером ввода/вывода или контроллером устройства. Как правило, контроллеры ввода/вывода типичны для микроЭВМ, а каналы ввода/вывода — для больших универсальных ВМ.