Опишем несколько подробнее эти уровни.
Физический уровень
Рис. 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.