Открыть сервис

Канальная архитектура

Канальная архитектура — это концепция организации вычислительной системы, при которой управление вводом-выводом данных передаётся специализированным процессорам (каналам), работающим независимо от центрального процессора. В такой архитектуре центральный процессор не участвует в непосредственной передаче данных между периферийными устройствами и оперативной памятью, а лишь инициирует операции ввода-вывода, после чего канал выполняет их автономно. Канальная архитектура была широко распространена в мейнфреймах и суперкомпьютерах второй половины 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) — выполняет основную программу и инициирует операции ввода-вывода.
  • Канал ввода-вывода — специализированный процессор, который интерпретирует канальные программы и управляет передачей данных.
  • Контроллер устройства — аппаратный блок, связывающий канал с конкретным периферийным устройством (диск, лента, принтер).
  • Периферийное устройство — внешнее оборудование (накопители, принтеры, терминалы).

Процесс выполнения операции

  1. Инициализация: Программа, выполняемая на CPU, формирует запрос на ввод-вывод (например, чтение блока данных с диска). CPU создаёт в памяти канальную программу — последовательность команд CCW, каждая из которых содержит код операции (чтение, запись, управление), адрес данных, счётчик байтов и флаги.
  2. Запуск канала: CPU передаёт управление каналу, указывая адрес первой команды канальной программы. С этого момента CPU освобождается и может продолжать выполнение других задач.
  3. Автономное выполнение: Канал последовательно выбирает команды CCW из памяти, декодирует их и взаимодействует с контроллером устройства. Контроллер управляет физической передачей данных (например, позиционированием головок диска), а канал отслеживает статус и подсчитывает переданные байты.
  4. Завершение: После выполнения всех команд канальной программы канал генерирует прерывание, сообщая 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 →