Канальная архитектура
Канальная архитектура — это концепция организации вычислительной системы, при которой управление вводом-выводом данных передаётся специализированным процессорам (каналам), работающим независимо от центрального процессора. В такой архитектуре центральный процессор не участвует в непосредственной передаче данных между периферийными устройствами и оперативной памятью, а лишь инициирует операции ввода-вывода, после чего канал выполняет их автономно. Канальная архитектура была широко распространена в мейнфреймах и суперкомпьютерах второй половины XX века, а её принципы легли в основу современных высокопроизводительных систем ввода-вывода, таких как Direct Memory Access (DMA).
История
Предпосылки появления
В ранних компьютерах, таких как ENIAC (1945) и UNIVAC I (1951), ввод-вывод осуществлялся напрямую центральным процессором. Процессор был вынужден останавливать выполнение основной программы на время передачи каждого байта данных, что приводило к крайне низкой эффективности — до 90 % времени процессор простаивал в ожидании завершения операций с медленными периферийными устройствами (перфолентами, магнитными лентами, принтерами). С ростом производительности процессоров и объёмов обрабатываемых данных это стало серьёзным ограничением.
Разработка IBM
Первую практическую реализацию канальной архитектуры предложила корпорация IBM в 1964 году в рамках семейства мейнфреймов System/360. Архитекторы IBM, в том числе Джин Амдал, разработали концепцию каналов ввода-вывода — специализированных процессоров, которые могли выполнять программы ввода-вывода (так называемые «канальные программы»), состоящие из команд Channel Command Words (CCW). Каналы работали асинхронно по отношению к центральному процессору, что позволяло одновременно выполнять вычисления и обмен данными с несколькими устройствами.
Система/360 поддерживала три типа каналов:
- Мультиплексорный канал — для одновременной работы с множеством медленных устройств (терминалы, принтеры).
- Селекторный канал — для высокоскоростной передачи данных с одним устройством (магнитные ленты, диски).
- Блочный мультиплексорный канал — комбинированный тип, появившийся позже, для работы с быстрыми дисковыми массивами.
Развитие в СССР
В Советском Союзе канальная архитектура была реализована в серии Единой системы электронных вычислительных машин (ЕС ЭВМ), выпускавшейся с 1971 года. ЕС ЭВМ являлась клоном IBM System/360 и System/370, поэтому полностью унаследовала канальную организацию ввода-вывода. В частности, в машинах ЕС-1020, ЕС-1030, ЕС-1045 и ЕС-1060 использовались каналы, совместимые с IBM CCW. Позднее, в 1980-х годах, в СССР была разработана собственная архитектура «Эльбрус» (например, «Эльбрус-1» и «Эльбрус-2»), которая также применяла канальные процессоры для управления вводом-выводом, хотя и с отличной от IBM системой команд.
Упадок и наследие
С распространением персональных компьютеров в 1980-х годах канальная архитектура в классическом виде уступила место более простым решениям, таким как шина ISA, а затем PCI. Однако ключевые принципы — автономный ввод-вывод и распараллеливание операций — сохранились в технологии Direct Memory Access (DMA), которая используется во всех современных компьютерах. В мейнфреймах IBM (серия z/Architecture) канальная архитектура продолжает применяться до сих пор, обеспечивая высокую надёжность и производительность в корпоративных и банковских системах.
Принцип работы
Основные компоненты
Канальная архитектура включает следующие элементы:
- Центральный процессор (CPU) — выполняет основную программу и инициирует операции ввода-вывода.
- Канал ввода-вывода — специализированный процессор, который интерпретирует канальные программы и управляет передачей данных.
- Контроллер устройства — аппаратный блок, связывающий канал с конкретным периферийным устройством (диск, лента, принтер).
- Периферийное устройство — внешнее оборудование (накопители, принтеры, терминалы).
Процесс выполнения операции
- Инициализация: Программа, выполняемая на CPU, формирует запрос на ввод-вывод (например, чтение блока данных с диска). CPU создаёт в памяти канальную программу — последовательность команд CCW, каждая из которых содержит код операции (чтение, запись, управление), адрес данных, счётчик байтов и флаги.
- Запуск канала: CPU передаёт управление каналу, указывая адрес первой команды канальной программы. С этого момента CPU освобождается и может продолжать выполнение других задач.
- Автономное выполнение: Канал последовательно выбирает команды CCW из памяти, декодирует их и взаимодействует с контроллером устройства. Контроллер управляет физической передачей данных (например, позиционированием головок диска), а канал отслеживает статус и подсчитывает переданные байты.
- Завершение: После выполнения всех команд канальной программы канал генерирует прерывание, сообщая CPU о завершении операции. CPU обрабатывает прерывание и проверяет статус (успех или ошибка).
Многоканальность и мультиплексирование
В больших системах устанавливалось несколько каналов (до 16 и более), каждый из которых мог обслуживать до 256 устройств. Мультиплексорные каналы позволяли одновременно передавать данные от нескольких медленных устройств, чередуя байты или слова. Селекторные каналы, напротив, работали с одним устройством за раз, но на максимальной скорости.
Классификация каналов
По типу обслуживаемых устройств
- Мультиплексорный канал: Предназначен для работы с большим числом низкоскоростных устройств (терминалы, принтеры, картридеры). Поддерживает одновременную передачу данных от нескольких устройств за счёт временного мультиплексирования.
- Селекторный канал: Ориентирован на одно высокоскоростное устройство (например, дисковый накопитель). Передача данных ведётся непрерывным потоком, без переключения между устройствами.
- Блочный мультиплексорный канал: Комбинированный тип, появившийся в 1970-х годах. Позволяет обслуживать несколько быстрых устройств, передавая данные блоками. Широко использовался с дисковыми массивами.
По способу управления
- Байт-мультиплексный канал: Передаёт данные по одному байту за раз. Используется для медленных устройств.
- Блок-мультиплексный канал: Передаёт данные блоками (обычно 512 байт или более). Применяется для дисков и лент.
Преимущества и недостатки
Преимущества
- Распараллеливание: Центральный процессор освобождается от рутинных операций ввода-вывода, что позволяет одновременно выполнять вычисления и обмен данными. В многозадачных системах это повышает общую пропускную способность.
- Масштабируемость: Добавление новых каналов и устройств не требует изменения архитектуры CPU. Система может обслуживать сотни периферийных устройств.
- Надёжность: Каналы работают независимо, и сбой в одном канале не влияет на работу других. Канальные программы могут включать проверки ошибок и повторные попытки.
- Гибкость: Канальные программы легко модифицируются без изменения аппаратного обеспечения. Поддерживаются сложные цепочки операций (например, чтение, затем запись, затем сравнение).
Недостатки
- Сложность: Разработка и отладка канальных программ требуют высокой квалификации. Ошибки в CCW могут приводить к потере данных или сбоям системы.
- Стоимость: Каналы — это дополнительные процессоры, что увеличивает стоимость системы. В мейнфреймах канальная архитектура оправдана, но для малых систем она была избыточна.
- Задержки: Взаимодействие CPU и канала через прерывания и общие области памяти может создавать накладные расходы, особенно при большом числе коротких операций.
Применение
Мейнфреймы
Канальная архитектура остаётся основой ввода-вывода в мейнфреймах IBM z/Architecture (серии z15, z16). Эти системы используются в банках, страховых компаниях, государственных учреждениях и на транспорте для обработки транзакций в реальном времени. Например, в системах резервирования авиабилетов (Sabre, Amadeus) канальная архитектура обеспечивает одновременную работу тысяч терминалов.
Суперкомпьютеры
В 1970–1980-х годах канальная архитектура применялась в суперкомпьютерах Cray (Cray-1, Cray X-MP). В современных суперкомпьютерах, таких как «Ломоносов» (МГУ) или «Кристофари» (Россия), прямого наследования канальной архитектуры нет, но её принципы используются в подсистемах ввода-вывода с DMA.
Промышленные системы
В автоматизированных системах управления (АСУ ТП) канальная архитектура применялась для сбора данных с датчиков и управления исполнительными механизмами. Например, в советских системах «Смена» и «Тракт» использовались каналы для связи с сотнями датчиков.
Интересные факты
- В IBM System/360 каналы имели собственные регистры и могли выполнять арифметические операции (например, подсчёт контрольных сумм), что делало их полноценными процессорами.
- В СССР канальная архитектура ЕС ЭВМ была полностью совместима с IBM, что позволяло использовать западное периферийное оборудование (например, диски IBM 2314) через советские контроллеры.
- В 1980-х годах в Институте точной механики и вычислительной техники (ИТМиВТ) под руководством Б. А. Бабаяна была разработана архитектура «Эльбрус-3», которая включала до 16 канальных процессоров, работающих с производительностью до 100 Мбайт/с каждый.
- Канальная архитектура вдохновила создание технологии Fibre Channel (1994), которая используется в современных системах хранения данных (SAN).
Источники
- IBM Corporation. «IBM System/360 Principles of Operation». First Edition, 1964.
- А. П. Ершов, М. Р. Шура-Бура. «Единая система ЭВМ». — М.: Наука, 1975.
- Б. А. Бабаян, А. А. Березин. «Архитектура ЭВМ «Эльбрус»». — М.: ИТМиВТ, 1985.
- W. Stallings. «Computer Organization and Architecture: Designing for Performance». 11th Edition, Pearson, 2019.
- J. L. Hennessy, D. A. Patterson. «Computer Architecture: A Quantitative Approach». 6th Edition, Morgan Kaufmann, 2017.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →