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

Опубликовано: 22 Марта, 2023

Введение

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

Одно решение для более высоких скоростей передачи данных называется HyperTransport. Большинство пользователей узнают это по некоторым продуктам AMD. На самом деле HyperTransport был изобретен в AMD (с помощью некоторых отраслевых партнеров), хотя сейчас он управляется и продвигается независимой группой под названием HyperTransport Consortium.

HyperTransport — это система соединения «точка-точка», ориентированная на связь между микросхемами. С самого начала он был разработан для обеспечения высокой скорости и низкой задержки. Это требование сегодня и в будущем, поскольку тактовые частоты ЦП продолжают расти. Связь между чипами особенно требует малой задержки и высокой производительности.

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

Еще одним преимуществом технологии «точка-точка» является то, что она не страдает от ухудшения производительности, как шины PCI, по мере увеличения количества подключенных устройств. HyperTransport использует прямое соединение только между двумя устройствами. Дополнительные устройства могут быть подключены только с использованием метода гирляндной цепи. Это означает, что производительность будет такой же, как и при подключении большего количества устройств.

Пакетный

HyperTransport основан на пакетах. Это позволяет HyperTransport играть роль межсоединения для многих различных целей. Эта технология может использоваться для соединения процессорных ядер, ОЗУ и ЦП или даже внешнего запоминающего устройства. Для получения дополнительной информации об этих типах памяти см. мои предыдущие статьи о компьютерной памяти здесь, здесь и здесь. Поскольку технология HyperTransport основана на пакетах, взаимосвязанное оборудование образует то, что большинство считает сетью. В случае суперкомпьютера сеть процессоров, соединенных между собой по технологии «точка-точка», может быть очень полезной.

Низкие накладные расходы на пакеты

Как и большинство сетей, сеть HyperTransport будет иметь характеристики производительности. HyperTransport оказался очень хорошим, если сравнить его производительность с другими технологиями межсоединений, такими как PCI Express. Одной из причин, по которой HyperTransport выгодно отличается от аналогов, является низкая нагрузка на пакеты, заложенная в эту технологию.

HyperTransport требовал 8-байтового пакета управления запросом на чтение для операций чтения. Для операций записи HyperTransport использует 8-байтовый пакет управления запросом на запись и 4-байтовый пакет ответа на чтение. Это оно. Это все накладные расходы; 8 байт для операции чтения и 12 байт для операции записи. PCI Express требует от 20 до 24 байт служебных данных для операций чтения и записи. Очевидно, это большое преимущество HyperTransport.

Но не все идеально для HyperTransport. Я должен быть справедливым по отношению к технологии PCI Express. С HyperTransport пакет данных, который следует за управляющим пакетом (пакетами), может иметь размер от 4 до 64 байтов. Пакет данных для PCI Express может иметь размер до 4096 байт. Таким образом, в некоторых случаях PCI Express может иметь меньшую нагрузку на пакеты, чем HyperTransport. Однако, по моему мнению, и у меня нет никаких данных, подтверждающих это, для большинства операций чтения/записи потребуются относительно небольшие пакеты данных; таким образом давая преимущество HyperTransport. Особенно это касается передачи данных между процессорами.

Изображение 20106
Рисунок 1: Диаграмма служебных данных пакетов для HyperTransport и PCI Express.

Предоставлено www.hypertransport.org.

Пропускная способность

HyperTransport изначально был разработан, чтобы обеспечить значительно более высокую пропускную способность, чем другие конкурирующие технологии. Один из способов сделать это — обеспечить двойную скорость передачи данных (DDR). Обычно, когда данные передаются в цифровом виде между двумя точками, данные считываются либо как высокие, либо как низкие, что представляет либо 1, либо 0. Эти данные считываются всякий раз, когда часы выдают высокий сигнал. В DDR данные можно считывать по переднему и заднему фронтам тактового сигнала. Это означает, что за один полный тактовый цикл данные передачи, поддерживающие DDR, могут быть считаны дважды, что в два раза увеличивает скорость передачи данных.

Низкая задержка

Низкая задержка — это конструктивный параметр, который с самого начала был в центре внимания технологии HyperTransport. HyperTransport может частично добиться этого, используя один тактовый сигнал на набор из 8 битовых путей данных. Это важно, поскольку в других технологиях, таких как PCI Express, часы встроены в сложную схему кодирования/декодирования на обоих концах канала передачи данных. Метод, используемый HyperTransport, эффективен для уменьшения задержки по сравнению с другими технологиями, поскольку передающему устройству не нужно тратить время на кодирование часов, а принимающему устройству не нужно тратить время на декодирование часов.

Чередование приоритетных запросов

Еще одним аспектом HyperTransport, который способствует его высокой производительности, является то, что они называют чередованием приоритетных запросов (PRI). Это действительно крутая идея. На рисунке 2 ниже показано, как работает PRI. Проблема, которую решает PRI, заключается в следующем: когда ЦП находится в середине длинной последовательности обмена данными с периферийным устройством B, а периферийному устройству A необходимо установить связь с ЦП, устройству A, как правило, потребуется подождать, пока устройство B не завершит обмен данными, чтобы продолжить. со своей связью; это может занять довольно много времени и, очевидно, снизит общую производительность.

Технология PRI позволяет периферийному устройству A вставлять пакет PRI в поток данных устройства B. Этот пакет PRI считывается ЦП, который затем может начать последовательность связи с устройством A по другому каналу связи.

Изображение 20107
Фигура 2:

Диаграмма, объясняющая PRI. Предоставлено www.hypertransport.org

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

Однако не все эти приложения используют HyperTransport одинаковым образом. Некоторые процессоры включают технологию HyperTransport прямо в процессор. К таким процессорам относится множество предложений от AMD, Transmetta, Broadcom и PMC Sierra. Другие процессоры, например G5 от PowerMac, используют HyperTransport в качестве высокопроизводительной шины ввода-вывода, которая передает данные от PCI, PCI Express, USB и других технологий через систему. HyperTransport обеспечивает превосходную производительность в обоих сценариях использования.

Вывод

Хотя HyperTransport — превосходная технология со многими преимуществами производительности, на рынке все еще есть место для других технологий. Инженеры должны тщательно учитывать свои потребности, чтобы выбрать технологию, подходящую для конкретного приложения. В следующих статьях я более подробно расскажу о некоторых из этих других технологий межсоединений.