Вопрос 21.Адресация пространства системы ввода/вывода.
Помимо центрального процессора (ЦП) и памяти, третьим ключевым элементом архитектуры ВМ является система ввода/вывода (СВВ), обеспечивающая обмен информацией между ядром ВМ и разнообразными периферийными устройствами (ПУ). Технические и программные средства СВВ несут ответственность за физическое и логическое сопряжение ядра вычислительной машины и ПУ.
Технически система ввода/вывода в рамках ВМ реализуется совокупностью модулей ввода/вывода (МВВ). Модуль ввода/вывода выполняет сопряжение ПУ с ядром вычислительной машины и различные коммуникационные операции между ними. Две основные функции МВВ:
- обеспечение интерфейса с ЦП и памятью («большой» интерфейс);
- обеспечение интерфейса с одним или несколькими периферийными устройствами («малый» интерфейс).
Анализируя архитектуру известных ВМ, можно выделить три основных способа подключения СВВ к ядру вычислительной машины (рис. 6.1)
В варианте с раздельными шинами памяти и ввода/вывода (см. рис. 6.1, а) обмен информацией между ЦП и памятью физически отделен от ввода/вывода, посколькуобеспечивается полностью независимыми шинами. Это дает возможность обращаться к памяти одновременно с выполнением ввода/вывода. Кроме того, данный архитектурный вариант ВМ позволяет специализировать каждую из шин, учесть формат пересылаемых данных, особенности синхронизации обмена и т. п. В частности, шина ввода/вывода, с учетом характеристик реальных ПУ, может иметь меньшую пропускную способность, что позволяет снизить затраты на ее реализацию. Недостатком решения можно считать большое количество точек подключения к ЦП.
Второй вариант — с совместно используемыми линиями данных и адреса (см. рис. 6.1, б). Память и СВВ имеют общие для них линии адреса и линии данных, разделяя их во времени. В то же время управление памятью и СВВ, а также синхронизация их взаимодействия с процессором осуществляются независимо по раздельным линиям управления. Это позволяет учесть особенности процедур обращения к памяти и к модулям ввода/вывода и добиться наибольшей эффективности доступа к ячейкам памяти и периферийным устройствам.
Третий тип архитектуры ВМ предполагает подключение СВВ к системной шине на общих правах с процессором и памятью (см. рис. 6.1, в). Преимущества и недостатки такого подхода обсуждались при рассмотрении вопросов организации шин. Потенциально возможен также вариант подключения периферийных устройств к системной шине напрямую, без использования МВВ, но против него можно выдвинуть сразу несколько аргументов. Во-первых, в этом случае ЦП пришлось бы оснащать универсальными схемами для управления любым ПУ. При большом разнообразии периферийных устройств, имеющих к тому же различные принципы действия, такие схемы оказываются чересчур сложными и избыточными. Во- вторых, пересылка данных при вводе и выводе происходит значительно медленнее, чем при обмене между ЦП и памятью, и было бы невыгодно задействовать для обмена информацией с ПУ высокоскоростную системную шину. И наконец, в ПУ часто используются иные форматы данных и длина слова, чем в ВМ, к которым они подключены.
Адресное пространство ввода/вывода может быть совмещено с адресным пространством памяти или может быть выделенным.
При совмещении адресного пространства для адресации модулей ввода/вывода отводится определенная область адресов (рис. 6.2). Обычно все операции с модулем ввода/вывода осуществляются с использованием входящих в него внутренних регистров: управления, состояния, данных. Фактически процедура ввода/вывода сводится к записи информации в одни регистры МВВ и считыванию ее из других регистров. Это позволяет рассматривать регистры МВВ как ячейки основной памяти и работать с ними с помощью обычных команд обращения к памяти, при этом в системе команд ВМ вообще могут отсутствовать специальные команды ввода и вывода. Так, модификацию регистров МВВ можно производить непосредственно с помощью арифметических и логических команд. Адреса регистрам МВВ назначаются в области адресного пространства памяти, отведенной под систему ввода/ вывода.
Рис. 6.2. Распределение совмещенного адресного пространства
Такой подход представляется вполне оправданным, если учесть, что ввод/вывод обычно составляет малую часть всех операций, выполняемых вычислительной машиной, чаще всего не более 1% от общего числа команд в программе.
К достоинствам совмещенного адресного пространства можно отнести:
■ унификацию операций обращения к памяти и периферийным устройствам;
■ возможность увеличения числа подключаемых периферийных устройств;
■ возможность внепроцессорного обмена данными между периферийными устройствами, если в системе команд есть команды пересылки между ячейками памяти;
■ возможность обмена информацией не только с аккумулятором, но и с любым регистром центрального процессора.
Недостаткисовмещенного адресного пространства:
■ сокращение области адресного пространства памяти;
■ усложнение декодирующих схем адресов в СВВ;
■ трудности распознавания операций передачи информации при вводе/выводе среди других операций.
Совмещенное адресное пространство используется в вычислительных машинах MIPSи SPARC.
В случае выделенного адресного пространства для обращения к модулям ввода/ вывода применяются специальные команды и отдельная система адресов. Это позволяет разделить тракты для работы с памятью и тракты ввода/вывода, что дает возможность совмещать во времени обмен с памятью и ввод/вывод. Кроме того, адресное пространство памяти может быть использовано по прямому назначению в полном объеме. В вычислительных машинах фирмы IBMи ВМ на базе процессоров фирмы Intelсистема ввода/вывода, как правило, организуется в соответствии с концепцией выделенного адресного пространства.
Достоинства выделенного адресного пространства:
■ адрес периферийного устройства в команде ввода/вывода может быть коротким, благодаря чему сокращается длина таких команд и упрощаются схемы дешифрации адреса;
■ программы становятся более наглядными, так как операции ввода/вывода выполняются с помощью специальных команд;
■ разработка СВВ может проводиться отдельно от разработки памяти.
Недостатки выделенного адресного пространства:
■ ввод/вывод производится только через аккумулятор центрального процессора;
■ малая разрядность адреса периферийного устройства ограничивает число подключаемых ПУ.