InfiniBand или PCI-X — в этом ли вопрос?

Хотя читателям термин InfiniBand может показаться незнакомым, на самом деле
наш еженедельник уже писал об этих двух новых технологиях ввода/вывода ("Компьютерное
Обозрение", # 2, 1999 и #
18, 19, 2000
). Правда, там InfiniBand фигурировала под своей "девичьей
фамилией" — NGIO (Next Generation I/O). Причиной изменения имени явилось
то, что в августе 1998 г. две отдельные индустриальные группы, одна из которых,
возглавляемая такими компаниями, как Intel, Microsoft и Sun, разрабатывала NGIO,
а вторая (Compaq, IBM, Hewlett-Packard) — Future I/O, объединили свои усилия
в создании перспективной технологии ввода/вывода и образовали InfiniBand Trade
Association (ITA). Сегодня эта ассоциация насчитывает в своих рядах 202 компании.

Почему же мы возвращаемся к пройденной теме? Дело в том, что в октябре прошлого
года ITA опубликовала спецификацию 1.0 для серверной коммутируемой (не шинной)
архитектуры, а 29 января корпорация Intel объявила о начале поставок опытных образцов
продукции семейства InfiniBand. Дальнейшие поставки компонентов архитектуры InfiniBand
намечены на последующие месяцы текущего года, а появление первых систем с ее поддержкой
— на конец 2001 г. Поэтому, наверное, наступило время, если не расставить все
по местам, то, по крайней мере, рассмотреть вопрос, порождаемый существованием
на рынке двух новых технологий ввода/вывода, а именно: являются ли они конкурирующими
или дополнительными? Однако, прежде чем проводить сравнение, напомним об особенностях
каждой из них. И первой в нашем кратком обзоре будет…

…технология PCI-X

Известно, что шина PCI предусматривает тактовые частоты 33 и 66 MHz. При 64-разрядной шине это позволяет получить пропускную способность 533 MBps. Дальнейшему повышению частоты препятствует следующее требование стандарта: периферийное устройство должно декодировать полученный сигнал в течение того же такта, на котором происходит отправка, и на следующем выставить ответ. При частоте 66 MHz для этой операции остается всего 3 нс. В спецификации PCI-X эта проблема решается с помощью межрегистрового протокола (register-to-register protocol). В соответствии с ним сигнал отправителя удерживается на протяжении следующего такта специальным триггерным регистром, предоставляя устройству полный такт для декодирования. Это позволяет повысить частоту тактирования шины до 133 MHz и при ширине в 64 разряда достичь скорости 1 GBps. Кроме увеличения тактовой частоты, повышение производительности достигается с помощью таких усовершенствований протокола, как введение новой фазы транзакции (attribute phase), механизма расщепленных транзакций (split transactions) и ряда других.

Атрибутивная фаза использует 36-битовое поле, которое описывает транзакцию на шине более детально, чем традиционный протокол PCI. В частности, оно включает информацию об объеме и порядке транзакции, идентификаторе устройства-инициатора транзакции. Все вместе это позволяет снизить требования к порядку выполнения транзакций, применить более эффективные алгоритмы управления буфером и повысить степень утилизации шины и остальных системных ресурсов.


Рис. 1

Суть механизма расщепленных транзакций заключается в следующем. В соответствии
с протоколом PCI устройство, запросившее данные, определяет момент их готовности
путем постоянного опроса источника, что по существу приостанавливает работу шины.
Новый протокол устраняет фазу опроса. Согласно ему, устройство-инициатор посылает
источнику данных только сигнал запроса, получая в ответ квитанцию. После этого
связь между устройствами прекращается, и регистр освобождается для обработки другой
информации. Когда данные будут готовы, источник инициирует новую транзакцию и
пошлет их запросившему устройству.


Рис. 2

Остановимся на отдельных характеристиках архитектуры PCI-X, делающих ее весьма
привлекательной как для производителей, так и для пользователей ПК. Прежде всего
отметим, что спецификация поддерживает до 256 шинных сегментов, каждый из которых
инициализируется независимо от других. Основной ее особенностью является обратная
совместимость с существующими шинами, адаптерами, устройствами и драйверами спецификации
PCI. Поэтому могут существовать как однородные системы, содержащие только адаптеры
PCI-X, так и смешанные, включающие также и адаптеры PCI. Следует сказать, что
максимальная частота шины 133 MHz поддерживается лишь в том случае, когда сегмент
содержит только один разъем. При двух разъемах она снижается до 100 MHz, а при
четырех — до 66 MHz. Примеры таких систем приведены на рис. 1 и 2.

Технология InfiniBand

В отличие от PCI-X, в основе которой лежит параллельная разделяемая архитектура, InfiniBand исповедует прямо противоположные принципы: последовательный метод передачи и соединения типа точка—точка. Технология реализует сетевой подход к решению проблемы повышения эффективности механизмов обмена между системой хостов и периферийными устройствами (ими, в частности, могут быть и компьютеры). Архитектура InfiniBand базируется на четырех ключевых компонентах, своеобразных строительных блоках, с помощью которых можно создавать весьма сложные распределенные вычислительные системы. Это адаптер каналов подключения главной машины (Host Channel Adapter — HCA), адаптер каналов подключения целевой машины (Target Channel Adapter — TCA), многоступенчатый коммутатор (Multistage Switch) и маршрутизатор (Router). Каждое устройство оборудовано одним или более портами для соединения с другим посредством одного, четырех или двенадцати каналов. Каналы однонаправленные и имеют пропускную способность по 2,5 Gbps.

Обмен данными между устройствами осуществляется с помощью сообщений. Протокол обмена может базироваться либо на принципах пакетной коммутации, либо опираться на механизм предварительного соединения. Это позволяет использовать его как для поблочного, так и для потокового типов трафика. Пакет содержит до 4096 байт полезных данных, поэтому более длинные сообщения передаются несколькими пакетами. Обработка сообщений возлагается на операционную систему, тогда как манипуляция пакетами осуществляется на сетевом уровне. Остановимся теперь кратко на функциях каждого компонента.

HCA устанавливается внутри сервера или рабочей станции, выполняющей функции хоста. Он является интерфейсом между контроллером памяти и внешним миром и служит для подключения хост-машин к сетевой инфраструктуре, построенной на основе технологии InfiniBand. HCA реализует протокол обмена сообщениями и основной механизм прямого доступа к памяти (DMA). Он подключается к одному или более коммутаторам InfiniBand и может обмениваться сообщениями с одним или несколькими TCA.


Рис. 3

TCA служит для подключения к сети InfiniBand различных устройств, таких, как диски,
дисковые массивы или сетевые контроллеры. Он, в свою очередь, является интерфейсом
между коммутатором InfiniBand и контроллерами ввода/вывода периферийных устройств.
Эти контроллеры не обязательно должны быть одного типа или принадлежать к одному
классу, что позволяет объединять в одну систему разные устройства. Следует заметить,
что TCA может взаимодействовать с HCA и напрямую.

Коммутаторы InfiniBand образуют ядро сетевой инфраструктуры. С помощью множества
каналов они соединяются между собой и с TCA (рис. 3). При этом могут быть реализованы
такие механизмы, как группировка каналов (link aggregation) и балансировка нагрузки
(load balancing).


Рис. 4

Если коммутаторы функционируют в пределах одной подсети, образованной непосредственно
подсоединенными устройствами, то маршрутизаторы InfiniBand объединяют эти подсети,
устанавливая связь между несколькими коммутаторами. На рис. 4 представлена возможная
схема сети InfiniBand.

Сетевая архитектура и обмен с помощью сообщений позволяют использовать InfiniBand
для построения кластеров (рис. 5). Здесь узлы кластера обмениваются информацией
с помощью HCA. Ядром инфраструктуры служат коммутаторы, к которым посредством
TCA могут подсоединяться разделяемая массовая память, компьютеры и сетевые устройства.


Рис. 5

Таким образом, в рамках технологии InfiniBand подсистемы рассматриваются как части
коммутируемого пула ресурсов, а основная идея заключается в том, чтобы максимально
упростить процессы объединения устройств и расширения системы. Заметим, что подробные
сведения о линейке продукции InfiniBand будут представлены на Intel Development
Forum, который состоится 27 февраля—1 марта во Дворце съездов, но не в московском,
а в Сан-Хосе (Калифорния).

Попробуем теперь в рамках данной базовой информации провести некоторый сравнительный анализ двух технологий.

Белое и черное

Прежде всего из вышеизложенного более или менее очевидно, что рассматриваемые технологии занимают хотя и пересекающиеся, но разные ниши в подсистемах ввода/вывода. PCI-X является достаточно гибкой архитектурой, реализующей аппаратный интерфейс между чипсетом и периферийными картами с высокой пропускной способностью и малым временем задержки. Он больше сфокусирован на локальном вводе/выводе. Возможно, PCI-X останется неоспоримым стандартом как шина расширения в пределах одного шасси. InfiniBand, напротив, имеет ярко выраженную направленность на распределенный ввод/вывод. Для связи между серверами и внешними ресурсами он использует высокоуровневый командный протокол и здесь конкурирует с Fibre Channel и Ethernet. Поэтому вряд ли можно сказать, что обе технологии решают одну и ту же проблему, скорее, — различные части одной проблемы.

На успех новой технологии чрезвычайно сильное влияние оказывает наличие обратной совместимости. PCI-X на 100% совместима с PCI в обоих направлениях, а ведь PCI в настоящее время является доминирующим интерфейсом. Сегодня трудно представить, что кто-нибудь разрабатывает или модифицирует ПК без PCI. Это же касается и серверов. В то же время InfiniBand ни по аппаратной части, ни по программной не совместима ни с одним из существующих сегодня интерфейсов.

Сделаем несколько комментариев по поводу использования InfiniBand для построения кластеров. Несмотря на то что кластерная технология развивается достаточно долго и является в определенном смысле зрелой, она имеет весьма узкую нишу. Кластер все еще остается скорее опцией, чем стандартным решением. Сегодня для связи компьютеров в кластер применяются разные высокоскоростные интерфейсы как стандартизованные (Ethernet, Fibre Channel, 1394), так и патентованные разработки компаний-производителей. InfiniBand определяет собственный интерфейс, однако основной трудностью при создании кластера является не аппаратное решение, а программное обеспечение.

Кластеризация заключается не в том, чтобы заменить коммутаторы и разъемы. Прежде всего необходима значительная модификация прикладного ПО. Несмотря на то что основной сферой применения кластеров остаются научные приложения и тяжелые базы данных, они все же получили достаточное распространение и в ряде других приложений. Поэтому для перехода на InfiniBand придется проделать титаническую работу по модификации как существующих приложений, так и операционных систем. Современные технологии кластеризации опираются на PCI. Но ни PCI, ни приходящий ему на смену PCI-X физически и технически не устарели, так что для их компрометации Intel должна действовать либо в эмоциональной, либо в финансовой сфере. Intel позиционирует InfiniBand как технологию, которая должна заменить чуть ли не все остальные технологии связи компонентов вычислительных систем — от Ethernet в локальных сетях и Fibre Channel в SAN до внутренних соединений в компьютере.

На пути замены сетевых технологий InfiniBand, безусловно, столкнется с инерцией рынка по отношению к существующим стандартам. Препятствий будет еще больше при попытке использования ее для организации связей внутри компьютера. Правда, следующие генерации InfiniBand позволят предоставить большую, чем в случае PCI-X, пропускную способность, однако в ряде случаев это не совсем достаточный аргумент. InfiniBand реализует последовательный обмен, недостатком которого в случае применения механизма предварительного соединения является большое время задержки — следствие непроизводительных затрат протокола. Время же задержки для PCI-X определяется чисто аппаратным решением.

Даже из столь краткого обзора особенностей обеих технологий можно сделать вывод,
что они не являются конкурентами и не исключают взаимно друг друга. Скорее всего,
PCI-X следует рассматривать как технологию сегодняшнего дня, в то время как InfiniBand
— будущего. Правда, InfiniBand слишком универсальна, чтобы хорошо выполнять все
возложенные на нее функции. А в настоящее время рынок тяготеет к упрощенным специализированным
решениям. Тем не менее не нужно забывать, что за спиной этой технологии стоит
корпорация Intel, которая, как показала история микропроцессоров, умеет находить
весомые аргументы и для индустрии, и для рынка.