# HyperTransport

HyperTransport (HT) ist eine bidirektionale Hochgeschwindigkeitsverbindung zwischen mehreren integrierten Schaltkreisen, die aus einem Projekt von AMD mit dem Namen Lightning Data Transport (LDT) hervorging.
HT ist ein offener Industriestandard, bei dem keine Lizenzgebühren anfallen. Die Entwicklung und Standardisierung wird vom herstellerübergreifenden HT-Konsortium übernommen, dem viele namhafte Unternehmen wie AMD, Nvidia, IBM und Apple angehören.

## Technisches
### Aufbau eines Links

Diese Verbindung wird als „Link“ bezeichnet und besteht aus zwei (einzelnen) unidirektionalen Punkt-zu-Punkt-Verbindungen. Noch zu Bus-Takt-Zeiten wurde jede einzelne Information bzw. jedes einzelne Signal freigeschaltet und weitergeleitet. HT-Technologie ermöglicht ein direktes Weiterleiten der Signale durch direkte Geräte- bzw. Chip-Verbindungen (Links).
Bei HT ist jede der beiden unidirektionalen Punkt-zu-Punkt-Verbindungen eines Links 2, 4, 8, 16 oder 32 Bit breit. Unterschiedliche Linkbreiten für beide Richtungen sind explizit erlaubt. Des Weiteren kennt HT eine Reihe von unterschiedlichen Taktfrequenzen, mit denen der Link betrieben werden kann. Es ist nicht erforderlich, dass jedes Gerät alle Taktfrequenzen unterstützt, jedoch müssen alle Geräte das Minimum von 200 MHz unterstützen. Die Daten werden im DDR-Verfahren übertragen, so dass sich die effektive Datenrate verdoppelt.

#### Elektrische Details

Die elektrische Schnittstelle von HT benutzt zur Übertragung der Daten differentielle Signalpaare mit niedriger Spannung (1,2 Volt ± 5 %). Die Terminierung muss laut HT-Spezifikation beim Empfänger „on-die“ und mit 100 Ohm Impedanz stattfinden.
Weitere elektrische Leitungen pro Richtung eines Links sind:
* Für je 8 Bit Datenbreite gibt es eine Taktleitung, welche vom Sender zum Empfänger verläuft, mit der die Daten auf den 8 Datenleitungen beim Empfänger abgetastet werden (quell-synchrone Taktung).
* Eine Leitung, die anzeigt, ob das momentane Paket ein Kontrollpaket ist oder nicht.
* Eine Leitung, die anzeigt, ob Strom und Takt stabil anliegen.
* Eine Leitung für den Reset.
Für x86-Systeme sind zwei zusätzliche Leitungen verlangt:
* eine für das An- und Abschalten des Links für die Dauer einer Taktfrequenzänderung (bei Cool’n’Quiet bzw. SpeedStep)
* zeigt an, ob der Link aktiv ist

### Geräteklassen

Es wird zwischen drei Geräteklassen hinsichtlich ihrer Funktion und Lage innerhalb der HT-Kette unterschieden. Dazu zählen Cave, Tunnel und Bridge.
Die HT Bridge ist der Vermittler zwischen der primären Seite, mit CPU und Speicher, und der sekundären Seite mit den HT-Geräten (der Chain). Ein Tunnel besitzt zwei Seiten mit jeweils einer Empfangs- und einer Sendeeinheit. Der Tunnel kann z. B. eine Netzwerkkarte oder eine Bridge zu einem weiteren Protokoll sein. Ein Cave markiert das Ende der Kette und besitzt nur eine Kommunikationsseite. Durch die Verschaltung von mindestens einer Bridge und einem Cave kann eine einfache HT-Kette aufgebaut werden.

#### HT-Pakete

HT arbeitet paketbasiert mit einer Paketgröße, die ein Vielfaches von 4 Byte ist. Es gibt zwei Arten von Paketen: Daten- und Kontrollpakete. Letztere sind 4 oder 8 Byte groß, während die Größe von Datenpaketen von 4 bis 64 Bytes (in 4-Byte-Schritten) variiert. Müssen weniger als 4 Byte Daten übertragen werden, so wird der Rest des Pakets mit beliebigen Bits aufgefüllt.
Kontrollpakete können drei Typen annehmen: Info-, Anforderungs- und Antwortpakete. Infopakete sind immer 4 Bytes lang. Diese werden nur für die Kommunikation mit dem gegenüberliegenden Gerät eines Links verwendet und werden deswegen nicht zwischengespeichert oder geroutet. Infopakete stellen die niedrigste Ebene des HT-Protokolls dar und werden für Informationen über Flusskontrolle, zur Link-Synchronisation und zur Fehlerbehebung verwendet.
Anforderungspakete mit Adresse sind 8 Bytes lang, sonst 4. Die Adresse ist hierbei 40 Bit groß. Ein optionales Feature ist die Übertragung von 64-Bit-Adressen in Anforderungspaketen. Dies wird für jeden Link separat zwischen den beiden Teilnehmern ausgehandelt. In diesem Fall steigt die Größe eines Anforderungspakets auf 12 Byte.
Es sind verschiedene Typen von Anforderungen möglich, wie normales Lesen oder Schreiben von Daten, atomares Lesen-Verändern-Schreiben, Broadcast uvm. Antwortpakete sind immer 4 Byte groß und dienen nur zur Information, dass eine zuvor gesendete Anforderung fertiggestellt wurde. Eventuelle Daten (z. B. bei einer Leseanforderung) werden nicht direkt im Antwortpaket gesendet, sondern folgen diesem direkt danach in Form eines oder mehrerer Datenpakete.

### Leistungsdaten

Bei HT sind Links mit unterschiedlichen Breiten und Taktfrequenz möglich, so dass entsprechend mehr oder weniger Daten übertragen werden. Bei 32 Bit Link-Breite und 1,4 GHz Taktfrequenz sind gleichzeitig je Richtung brutto 11,2 GByte/s möglich. Da neben den Nutzdaten auch Adressen und Kontrollinformationen mit in den Paketen enthalten sind, muss man hiervon aber noch einen gewissen Overhead abziehen, so dass die tatsächlich nutzbare Bandbreite ein wenig darunter liegt.
Im Vergleich mit anderen technischen Standards wie PCI Express oder Rapid I/O kann sich HT also gut sehen lassen. Bei HT ist insbesondere die Fähigkeit hervorzuheben, dass dringende Kontrollpakete (z. B. Anforderungen) jederzeit zwischen einzelne Datenpakete eingefügt werden können, auch wenn die Bandbreite des Links bereits voll ausgeschöpft wird. (Priority Request Interleaving)
Diese Fähigkeit macht HT zusammen mit dem hohen Takt zu einer Verbindungslösung, die sehr niedrige Latenzzeiten aufweist, was insbesondere für Anwendungen im HPC-Bereich wichtig ist.

### Spezifikationen

| HyperTransport Version | Datum | max. HT- Taktfrequenz | max. HT-Linkbreite pro Richtung | max. Bandbreite pro Richtung | Gesamtbandbreite (max.) |
| 1.0 | Februar 2001 | 800 MHz | 32 Bit | 6,4 GB/s | 12,8 GB/s |
| 1.1 | 2002 | 800 MHz | 32 Bit | 6,4 GB/s | 12,8 GB/s |
| 2.0 | Februar 2004 | 1400 MHz | 32 Bit | 11,2 GB/s | 22,4 GB/s |
| 3.0 | April 2006 | 2600 MHz | 32 Bit | 20,8 GB/s | 41,6 GB/s |
| 3.1 | August 2008 | 3200 MHz | 32 Bit | 25,6 GB/s | 51,2 GB/s |
* Minimale HT-Taktfrequenz: 200 MHz
* Minimale HT-Linkbreite pro Richtung: 2 Bit

## Anwendungsgebiete
### Backplane-Ersatz

Haupteinsatzgebiet für HyperTransport wird der Ersatz von Backplane-Bussen sein, die gegenwärtig für fast jede Prozessorgeneration unterschiedlich sind.
Um ein traditionelles System erweitern zu können, muss die Backplane Schnittstellen zu anderen Standard-Schnittstellen wie z. B. AGP oder PCI haben. Diese werden meist in einen Controller mit dem Namen Northbridge integriert. Ein Computer mit HyperTransport ist flexibel. Ein einziger HyperTransport↔PCI-Adapterchip funktioniert in jeder Maschine und erlaubt den PCI-Karten, mit jeder CPU zu kommunizieren. AMD ersetzt damit in der AMD64-Familie die Prozessor-Backplane.
HyperTransport könnte auch die Backplane in Routern und Switches ersetzen. Diese Geräte haben mehrere Ports, und die ankommenden Daten müssen so schnell wie möglich zwischen den entsprechenden Ports weitergeleitet werden. Ein Ethernet-Switch mit 4 Ports benötigt beispielsweise eine Backplane mit 800 Mbit/s (100 Mbit/s × 4 Ports × 2 Richtungen). Mit HyperTransport könnte man Switches bauen, die aus vier HyperTransport↔Ethernet-Umsetzern bestehen und HT als Backplane benutzen.

### Multiprozessor-Verbindungen

Ein weiteres Anwendungsgebiet für HyperTransport ist die Verbindung von NUMA-Prozessoren in Multiprozessor-Systemen, wie sie derzeit bei AMDs Opteron-Reihe praktiziert wird.
Unter dem Namen „Torrenza“ betreibt AMD eine Initiative zur Einbindung von speziellen Prozessoren, wie z. B. Physikbeschleunigern oder SIMD-CPUs in die Rechnerarchitektur. Obwohl nicht streng an HyperTransport gebunden, ist es eine bevorzugte Technik zur Anbindung solcher Prozessoren im Rahmen von Torrenza. Tatsächlich gibt es Planungen zur Entwicklung von Coprozessoren, die Sockel-kompatibel mit dem AMD Opteron sind.

### HTX

Mit HTX ist ab Version 2.0 auch ein Steckkartenstandard definiert, so dass es nun möglich ist, einzelne Karten direkt mit einem nativen HT-Interface zu produzieren. Verglichen mit einer Lösung, bei der zwischen Karte und HT-Link noch ein anderer Busstandard (z. B. PCI-X) benutzt wird, sinkt damit noch einmal die effektive Latenz; z. B. bietet Pathscale einen InfiniBand-Adapter mit HTX-Konnektor an und wirbt mit sehr geringen Latenzen (1,29 µs MPI-Latenz).