. Новые шины. Часть 3. Шина HyperTransport — альтернативы нет?
Новые шины. Часть 3. Шина HyperTransport — альтернативы нет?

Новые шины. Часть 3. Шина HyperTransport — альтернативы нет?

Нынешняя шумиха вокруг шины PCI Express (будущего стандарта для внутрикомпьютерной периферии), раздутая не в последнюю очередь благодаря усилиям корпорации Intel, как-то отодвинула на второй план еще одну очень прогрессивную технологию последовательной передачи данных — шину HyperTransport (далее — HT), продвигаемую, в частности, корпорацией AMD и уже достаточно долго используемую в индустрии. Вместе с тем, в НТ заложено ничуть не меньше великолепных решений и ее потенциал отнюдь не меньше, чем у PCI Express, хотя и ориентированы они все же на разные применения.

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

Исторически HyperTransport разрабатывался AMD в качестве процессорной шины нового поколения специально для процессоров с интегрированным контроллером памяти (архитектура AMD64). Напомним, что в многопроцессорных системах на основе процессоров AMD Opteron подсистема памяти «размазана» по всем процессорам — у каждого есть своя локальная память, подключенная через интегрированный контроллер, и каждый процессор может обращаться к памяти любого из процессоров. Это позволяет увеличить производительность и объем подсистемы памяти (типичного «бутылочного горлышка» SMP-систем) пропорционально числу работающих с ней процессоров, тем самым заметно увеличивая масштабируемость системы 1 . Такая архитектура известна уже очень давно — например, процессоры Silicon Graphics (SGI) в мощных графических станциях. От них архитектура и получила свое название — Non-Uniform Memory Architecture (NUMA). «Неоднородная» она потому, что «накладные расходы» на обращение к разным участкам памяти сильно отличаются: локальная память «быстрая», а память соседа — «медленная», причем чем «дальше» расположен сосед, тем медленнее память. Медлительность эта является следствием того, что для обращения к соседу требуется проделать целый ряд операций — переслать по межпроцессорной шине запрос, дождаться его выполнения контроллером памяти адресата, вернуть данные по шине обратно. Очевидно, что чем быстрее при этом шина, тем более «однородна» память 2 . Исходя из этих соображений и проектировалась новая шина (тогда еще называвшаяся Lightning Transport) — обеспечить пропускную способность, не меньшую, чем у оперативной памяти, и минимальные задержки на передачу данных и сообщений по этой шине. Получилось действительно неплохо, что даже дало AMD повод назвать свою схему не NUMA, а SUMA — Slightly Uniform Memory Architecture, то есть «почти однородная» архитектура памяти.

Но разработчики не стали делать типичную быструю узкоспециализированную процессорную (системную) шину. Напротив, в соответствии с веяниями времени они соорудили очень быструю последовательную шину данных и предусмотрели возможности для ее «переноса» в более простые и медленные варианты с уменьшенными частотами и разрядностью (в отличие от PCI Express, которая, наоборот, масштабируется «вверх» — от 1x к 16х и 32x). Ее продвижением занялся основанный в 2001 году HyperTransport Consortium. Типичный пример использования шин НТ показан на рисунке 1.

Рис. 1. Пример четырехпроцессорной системы на AMD Opteron.Жирными черными линиями показаны линки HyperTransport(кроме тех, что идут к памяти — это уже шины DDR SDRAM).

Понятие «последовательная шина» вовсе не определяется ее однобитной шириной. Куда важнее то, что параллельные шины жестко привязаны к их физической реализации, а последовательные — передают любые данные посредством пакетов через некоторую абстрактную физическую среду и поэтому не привязаны к той или иной реализации, которая может быть как «чисто последовательной», вроде PCI Express 1x, так и «параллельной» — вроде HyperTransport (минимальная ширина которой — два бита) или той же PCI Express 16x. Поэтому HT с полным правом может называется последовательной шиной — любые данные, передаваемые по ней, упаковываются в пакеты стандартного вида. Требования быстродействия, конечно, наложили на протокол передачи данных сильнейшие ограничения — столь изящной «layered architecture», как у Intel мы здесь не увидим, да и влияние физической реализации линков HT на общую архитектуру шины очень заметно. Поэтому мы пойдем «снизу вверх» — от электрической разводки шины к протоколам передачи данных и к топологии сложных HT-соединений. Читать дальше >>>

На схемотехническом уровне разводка НТ выглядит очень просто — в чем-то даже проще, нежели у PCI Express. Как и в случае с PCI Express, предусмотрены только соединения точка-точка, двунаправленные (одно направление на прием, другое на передачу), используется низковольтная дифференциальная сигнальная пара (напряжение высокого и низкого уровней +1,7В и –0,3В, импеданс 100 Ом, терминаторы шины встроены в кристаллы контроллеров). Возможно использование 2, 4, 8, 16 или 32 линии на каждое направление (каждая линия — два проводника), причем «ширина» направлений, в отличие от PCI Express, не обязана быть одинаковой (например, разрешается использовать две линии на прием и 32 на передачу, см. рис. 2).

Данные передаются по традиционной схеме DDR — есть дополнительные линии для тактового сигнала, передача данных синхронизируется по началу и окончанию каждого тактового импульса (то есть за такт данные передаются дважды). Передача и прием данных в НТ тактируются независимо, причем если ширина направления превышает 8 бит, то тактирующих линий больше одной — каждые 8 бит тактируются отдельной линией. 3 Питание предусмотрено только для нужд самой шины — это линия +2,5В, все остальное устройство HyperTransport должно получать его от внешнего источника. Для наглядности на рис. 2 показан пример структур шины HT.

Рис. 2. Пример структуры шины HyperTransport(ширина в одном направлении 4 бита, в другом — 16 бит). 4

«Базовая» тактовая частота шины HT — 200 МГц (напомним, что данные передаются каждый полутакт , то есть частота передачи данных составляет 400 МГц). Это минимально возможная частота функционирования шины, она определяет и минимальную пропускную способность HT-линка: два бита (минимальная ширина направления) x 200 МГц (минимальная частота) x 2 (DDR) = 100 Мбайт/сек. В отличие от PCI Express, где 20% от этой величины «съедает» кодирование 8/10 это «честные» 100 Мбайт/с, то есть теоретически все они доступны устройству (пакетирование, конечно, снизит реальную пропускную способность). Все последующие тактовые частоты определяются как кратные данной — 400МГц, 600МГц, 800МГц (HyperTransport 1.0–1.1), 1000 МГц (последние ревизии HT 1.x и HT 2.0), 1200 и 1400 МГц (HT 2.0), см. таблицу 1.

Таблица 1. Тактовые частоты и скорость передачи данных шины HyperTransport

📎📎📎📎📎📎📎📎📎📎