Гипертранспортировка

23 январь, 2002 - 00:00Леонід Бараш
Если рассмотреть рост быстродействия компонентов вычислительных систем, то здесь первенство, бесспорно, принадлежит процессорам. Однако интегральную производительность традиционно сдерживает шинная архитектура. Так, если производительность процессоров удваивается приблизительно каждые 18 месяцев, то этот показатель для шин ввода/вывода составляет 3 года. Технология HyperTransport, разработанная компанией AMD и ее партнерами, призвана поддержать быстрые процессоры как сегодняшнего дня, так и следующих поколений.
Нельзя сказать, что индустрия никак не реагировала на проблему "бутылочного горлышка" в высокопроизводительных вычислительных системах, созданную традиционными шинными архитектурами. Было предложено несколько новых стандартов, среди которых основными считаются RapidI/O от компании Motorola и InfiniBand, поддерживаемый Intel. Первый фокусируется на передаче данных внутри устройства, т. е. между процессорами, памятью, шинами I/O и коммуникационными каналами, тогда как второй ориентирован на высокоуровневую сетевую архитектуру, включающую коммуникации между системами.


Преследуемые цели

Технология HyperTransport (HT), как и RapidI/O, предназначена, в первую очередь, для обмена данными между микросхемами, хотя и не ограничивается только этой областью применения. По отношению к InfiniBand она является скорее дополнительной, нежели конкурирующей.

По мнению разработчиков, использование технологии HyperTransport позволит сделать очередной шаг вперед по дороге, у которой нет конца. В частности:
  • улучшить производительность вычислительной системы за счет увеличения полосы пропускания каналов I/O, уменьшения количества шин внутри системы, сокращения времени отклика и вывода низкоскоростных устройств из зоны критических информационных каналов;
  • упростить дизайн системы посредством использования общего протокола для всех каналов "внутри шасси", а также минимального количества выводов;
  • повысить гибкость системы I/O с помощью модульной архитектуры и возможности реализации входящих и выходящих каналов с различной полосой пропускания;
  • поддержать совместимость с традиционными системами, став дополнением к стандартным внешним шинам и требуя (или нет) минимальных изменений в существующих операционных системах и драйверах;
  • обеспечить высокий уровень масштабируемости микропроцессорных систем.

Архитектура

Концептуально архитектура HT-канала I/O может быть отображена на пять уровней, которые структурно подобны уровням эталонной модели ISO:
  • физический уровень определяет физические и электрические характеристики протокола. Это уровень интерфейса с физическим миром, и он включает шины данных, управляющих и тактовых сигналов;
  • канальный уровень обеспечивает инициализацию и конфигурацию канала, соединение и разрыв связи, контроль обмена данными с помощью CRC, управление потоком;
  • уровень протокола включает команды, управление виртуальными каналами, по которым они передаются, и порядок выдачи команд для управления их потоком;
  • уровень транзакций использует управляющие пакеты, поставляемые уровнем протокола, для выполнения таких действий, как операции чтения и записи;
  • уровень сессии обеспечивает правила для согласования изменения состояний, вызванных механизмами управления режимом электропитания, а также прерываниями и состояниями активности системы. Он также отвечает за оптимизацию ширины канала и частоты передачи.

Опишем несколько подробнее эти уровни.


Физический уровень

Гипертранспортировка
Рис. 1

Он базируется на двух разнонаправленных симплексных каналах, обеспечивающих связь типа точка--точка между двумя устройствами (рис. 1). Каждый канал, состоящий из двух проводников, поддерживает максимальную частоту передачи сигналов 1,6 GHz, что интегрально позволяет достичь пропускной способности 12,8 GBps.

Ширина шины данных может составлять 2, 4, 8, 16 или 32 бита. Для передачи команд, адресов и данных (CAD) используется один и тот же набор проводников, что значительно уменьшает количество выводов. Все виды информации передаются в форме пакетов, длина которых должна быть кратна четырем байтам. Пакет данных сопровождается одним или более тактовыми импульсами (Clock -- CLK), отличающими его от команд и адресов. При передаче данных каждую группу из восьми или менее бит предваряет один сигнал CLK. Это позволяет уменьшить расфазировку между сигналами системного генератора и сигналами, передающимися по каналу. Для передачи большинства из них достаточно двух выводов на один бит.

Для передачи сигналов технология HyperTransport использует один из видов низковольтной дифференциальной сигнализации (Low Voltage Differential Signaling -- LVDS), особенностью которого является низкий перепад напряжения -- всего 1,2 В вместо обычных 2,5 В. Тем не менее это позволяет получить канал длиной до 70 см и пропускной способностью 800 Mbps.


Канальный уровень

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

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


Уровни протокола и транзакций

Все команды, предусмотренные спецификацией HyperTransport, имеют длину четыре или восемь байтов с 6-битовым заголовком, определяющим их тип. Наиболее часто используемыми являются команды чтения/записи. За ними обычно следуют пакеты данных, которые имеют длину от четырех до 64 байтов с инкрементом четыре байта. Если необходимо передать менее 4 байтов, пакет дополняется до необходимого минимума, считывание же выполняется с помощью четырехбайтовой маски, находящейся в соответствующем поле, предшествующем данным. Адреса устройств, подключенных к шинам PCI, отображаются на выделенное адресное пространство, исключая тем самым необходимость в отдельной памяти и шинах управления.

Механизм передачи данных между главным мостом (host bridge), являющимся интерфейсом к хост-процессору, и другими HT-устройствами использует концепцию потока. Принадлежность пакета к потоку указывается в поле заголовка Unit ID. Канал может обеспечить одновременное управление несколькими потоками между устройствами. Технология HyperTransport позволяет соединять их цепочкой, так что потоки могут передаваться через промежуточное устройство транзитом.


Уровень сессии

Для оптимизации ширины канала технология HyperTransport использует соглашения стандарта Plug'n'Play. Необходимая информация выставляется на регистры управления и применяется затем конфигурационными программами для выбора оптимальной ширины каждого канала данных. При "холодном" старте на каналы подается напряжение и выполняется синхронизация в соответствии с протоколом. Встроенное ПО (firmware) или BIOS опрашивает все каналы системы, перепрограммирует их до максимально возможной ширины и с помощью "горячего" старта включает эту информацию в систему.

Аналогично выполняется и оптимизация по рабочей частоте каналов. Во время "холодного" старта на все каналы подается тактовая частота 200 MHz. Далее для каждого из них встроенное ПО читает соответствующий регистр, чтобы определить, какую частоту поддерживает данный канал. После конфигурации всех устройств встроенное ПО генерирует необходимые сигналы, устанавливающие нужный режим работы каналов.

Следует отметить, что каналы HyperTransport являются конвейерными и поддерживают механизм расщепленных транзакций, при котором они помечаются источником, и ответы могут возвращаться к источнику с несоблюдением порядка (out of order).

Так же, как и в случае с PCI, драйверы уникальны для каждого из HT-устройств, хотя и очень сходны с первыми. Поэтому портирование для драйверов эквивалентных устройств не должно вызывать проблем.


Топология

Гипертранспортировка
Рис. 2

Система взаимодействующих HT-устройств может быть организована в виде одной или более цепочек, соединяющихся на одном конце с хостом с помощью главного моста. Устройства могут связываться посредством одного или двух каналов. Одноканальное устройство должно всегда подключаться к концу цепочки, поэтому в цепочке оно может быть только единственным. Устройство, имеющее два канала и не являющееся мостом, называется туннелем. Примеры "блоков" для построения HT-структуры приведены на рис. 2.

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

Гипертранспортировка
Рис. 3
Гипертранспортировка
Рис. 4
Гипертранспортировка
Рис. 5

Изолированная цепочка не должна содержать таких устройств, как мост к другой HT-цепочке. Она может включать только периферийные HT-устройства (например, сетевую карту Ethernet) или мосты к другим шинам I/O (например, к PCI). В то же время цепочка оканчивается на одном конце (или на обоих) мостом. В простейшем случае она содержит главный мост на одном конце и ни к чему не подсоединяется на другом.

Несколько цепочек могут быть объединены в дерево с помощью мостов. В технологии HyperTransport мост имеет первичный (primary, Р) канал, по которому передается восходящий поток к хосту, и один или более вторичных (secondary, S). По отношению к устройствам, подключенным с помощью вторичных каналов, такой мост является главным. Корень HT-дерева подсоединяется к хосту. Хост может содержать множество мостов, каждый из которых поддерживает изолированную цепочку HT-устройств или дерево (рис. 3).

Ряд производителей разработали HT-коммутаторы, позволяющие значительно повысить гибкость и масштабируемость системы. HT-коммутатор может управлять множеством потоков данных, а также соединениями между HT-устройствами. Так, 4-портовый коммутатор группирует потоки данных от нескольких портов в один высокоскоростной поток или выполняет маршрутизацию порт--порт. Одновременно с этим он может поддерживать и низкоскоростные шины. На рис. 4 приведен пример шинной архитектуры на базе технологии HyperTransport (для сравнения на рис. 5 представлена традиционная архитектура).

Технология HyperTransport может быть использована в сетевых и телекоммуникационных устройствах, компьютерах и во встраиваемых вычислительных системах. Она поддержана практически всеми ведущими IT-компаниями, в числе которых Cisco, Sun, Texas Instruments, Hewlett-Packard, Aser Labs.