|
||
Глава 8
Системы ввода/вывода
Помимо центрального процессора (ЦП) и памяти, третьим ключевым элементом архитектуры ВМ является система ввода/вывода (СВВ). Система ввода/вывода призвана обеспечить обмен информацией между ядром ВМ и разнообразными внешними устройствами (ВУ). Технические и программные средства СВВ несут ответственность за физическое и логическое сопряжение ядра вычислительной машиныжВУ.
В процессе эволюции вычислительных машин системам ввода/вывода по сравнению с прочими элементами архитектуры уделялось несколько меньшее внимание. Косвенным, подтверждением этого можно считать, например, то, что многие программы контроля производительности (бенчмарки) вообще не учитывают влияние операций ввода/вывода (В/ВЫВ) на эффективность ВМ. Следствием подобного отношения стал существенный разрыв в производительности процессора и памяти, с одной стороны, и скоростью ввода/вывода — с другой.
Технически система ввода/вывода в рамках ВМ реализуется комплексом модулей ввода/вывода (МВБ). Модуль ввода/вывода выполняет сопряжение ВУ с ядром ВМ и различные коммуникационные операции между ними. Две основные функции МВБ:
- обеспечение интерфейса с ЦП и памятью ("большой" интерфейсу,
- обеспечение интерфейса с одним или несколькими периферийными устрой-
ствами ("малый" интерфейс).
Анализируя архитектуру известных ВМ, можно выделить три основных способа подключения СВВ к ядру процессора (рис. 8.1).
В варианте с раздельными шинами памяти и ввода/вывода (см. рис. 8.1, а) обмен информацией между ЦП и памятью физически отделен от ввода/вывода, поскольку обеспечивается полностью независимыми шинами. Это дает возможность осуществлять обращение к памяти одновременно с выполнением ввода/вывода. Кроме того, данный архитектурный вариант ВМ позволяет специализировать каждую из шин, учесть формат пересылаемых данных, особенности синхронизации обмена и т. п. В частности, шина ввода/вывода, с учетом характеристик реальных ВУ, может иметь меньшую пропускную способность, что позволяет снизить затраты на ее реализацию. Недостатком решения можно считать большое количество точек подключения к ЦП.
|
||
|
||
|
|||
3 8 8 Глава 8. Системы ввода/вывода
|
|||
|
|||
|
|
||
|
|||
|
|||
|
|||
Рис. 8 .1 . Место системы ввода/вывода в архитектуре вычислительной машины ^ — раздельными шинами памяти и ввода/вывода; б — с совместно используемыми линиями данных и адреса; в — подключение на общих правахс процессором и памятью
Второй вариант — с совместно используемыми линиями данных и адреса (см. рис. 8.1, б). Память и СВВ имеют общие для них линии адреса и линии данных, разделяя их во времени. В то же время управление памятью и СВВ, а также синхронизация их взаимодействия с процессором осуществляются независимо по раздельным линиям управления. Это позволяет учесть особенности процедур обращения к памяти и к модулям ввода/вывода и добиться наибольшей эффективности доступа к ячейкам памяти и внешним устройствам.
Последний тип архитектуры ВМ предполагает подключение СВВ к системной шине на общих правах с процессором и памятью (см. рис. 8,1, в). Преимущества и недостатки такого подхода обсуждались при рассмотрении вопросов организации шин (глава 4). Потенциально возможен также вариант подключения внешних устройств к системной шине напрямую, без использования МВВ, но против него можно выдвинуть сразу несколько аргументов. Во-первых, в этом случае ЦП пришлось бы оснащать универсальными схемами для управления любым ВУ. При большом разнообразии внешних устройств, имеющих к тому же различные принципы действия, такие схемы оказываются чересчур сложными и избыточными. Во-вторых, пересылка данных при вводе и выводе происходит значительно медленнее, чем при обмене между ЦП и памятью, и было бы невыгодно задействовать для обмена информацией с ВУ высокоскоростную системную шину. И, наконец, в ВУ часто используются иные форматы данных и длина слова, чем в ВМ, к которым они подключены.
Адресное пространство системы ввода/вывода
Как и обращение к памяти, операции ввода/вывода также предполагают наличие некоторой системы адресации, позволяющей выбрать один из модулей СВВ, атакже одно из подключенных к нему внешних устройств. Адрес модуля и ВУ является
|
|||
|
|||