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