Benutzer:Kimomo
aus Wikipedia, der freien Enzyklopädie
HyperTransport (HT) ist eine bidirektionale Hochgeschwindigkeitsverbindung zwischen mehreren integrierten Schaltkreisen. Die Topologie wird oft fälschlicherweise als "Bus" bezeichnet, ist aber in Wirklichkeit ein Baum. Oftmals fehlen jedoch Verzweigungen, so dass sich die Topologie einer Kette ergibt. Ein spezielles Fall ist die Topologie in einem Multiprozessor Opteron System, indem die Prozessoren zu einer (fast) beliebigen Topologie verschaltet sein können. Je zwei Geräte sind miteinander verbunden, wobei diese Verbindung als "Link" bezeichnet wird und aus zwei (einzelnen) unidirektionalen Punkt-zu-Punkt-Verbindung besteht. Im Gegensatz zu einem Bus sind eben nicht alle Geräte an gemeinsamen Leitungen angeschlossen (vergleiche auc PCI Express).
HT ist ein offener Industriestandard, bei dem keine Lizenzgebühren für Produkte anfallen, wenn der Hersteller Mitglied im HyperTransport-Konsortium ist. Die Entwicklung und Standardisierung wird von diesem herstellerübergreifenden Konsortium übernommen, dem viele namenhafte Firmen wie AMD, nVidia, IBM und Apple angehören.
The technology is used by AMD and Transmeta in x86 processors, PMC-Sierra, Broadcom, and Raza Microelectronics in MIPS microprocessors, AMD, NVIDIA, VIA, SiS, and HP in PC chipsets, HP, Sun Microsystems, IBM, and IWill in servers, Cray, Newisys, and QLogic in high performance computing, and Cisco Systems in routers. Notably missing from this list is semiconductor giant Intel, which continues to use a shared bus architecture.
Inhaltsverzeichnis |
[Bearbeiten] Aufbau eines 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. Die aktuelle Hypertransport Spezifikation 3.0 [1] sieht Geschwindigkeiten von 200 MHz bis maximal 2.6 GHz vor, wobei Produkte die im Frühjahr 2007 erhältlich sind maximal 1000MHz unterstützen und auch noch der Hypertransport Spezifikation 1.x [2] oder 2.x [3] entsprechen.
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 mit einem DDR-Protokoll übertragen, so dass sich die effektive Datenrate verdoppelt. Beim Einschalten wird ein Protokoll ausgeführt, dass sicherstellt, dass die beiden Endpunkte eines Links mit der jeweiligen maximalen Frequenz und der maximal verfügbaren Linkbreite miteinander kommunizieren. Dabei können auch assymetrische Linkkonfigurationen entstehen.
Weitere Details im Abschnitt Elektrische Details.
[Bearbeiten] 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. Meistens sind Bridges auch Tunnel. So kann ein Tunnel zum Beispiel eine HT-zu-PCIe Bridge enthalten. Ein Cave markiert das Ende der Kette und besitzt nur eine Kommunikationsseite. Ein Beispiel für eine einfache HT-Kette ist die Verschaltung von einer Cave, einem Tunnel in der Mitte und einer weiteren Cave am Ende der Kette.
[Bearbeiten] 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,8 oder 12 Byte groß, während die Größe von Datenpakete 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 fertig gestellt 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.
[Bearbeiten] Leistungsdaten
Bei HT sind Links mit unterschiedliche Breiten und Taktfrequenz möglich, so dass entsprechend mehr oder weniger Daten übertragen werden. Bei 32 Bit Link-Breite und 2,6 GHz Takt sind gleichzeitig je Richtungen brutto 20,8 GByte/s möglich. Die Links eines Opteron im Sockel F können bei 1GHz und 16-bit Breite immerhin 4 GByte/s pro Richtung übertragen. 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 Hypertransport also gut sehen lassen. Die generelle Protokollausführung begünstigt niedrige Latenzzeiten und einen niedrigen Overhead, da z.B. im Vergleich zu PCI Express die Größe der notwendigen Kontrollinformationen pro Datenpaket geringer ist und auch keine 8B/10B Kodierung notwendig ist. Eine weitere Fähigkeit die die Latenz senken kann ist, 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; [4]).
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.
[Bearbeiten] HTX
Mit HTX ist seit Version 2.0 auch ein Steckkartenstandard definiert, so dass es nun möglich ist, einzelne Karten direkt mit einem nativen HT-Interface zu produzieren. Bei dieser Lösung wird ein HT-Link eines Opteron Prozessors direkt mit der Steckkarte verbunden, es befinden sich keine weiteren Chips oder Bridges zwischen Peripheriegerät und Prozessor, wie dies etwa bei herkömmlichen Pentium Systemen und PCIe Geräten immer der Fall ist. Zusammen mit der sowieso schon guten Latenz der HyperTransport Technologie ergibt dies eine extrem gute effektive Latenzzeit für die Kommunikation zwischen Prozessor und Peripheriegerät. Die Firma QLogic bietet mit ihrem Infiniband-Adapter mit HTX-Konnektor einen Netzwerkadapter an und wirbt mit sehr geringen Latenzen (1,29 µs MPI-Latency).
HTX unterstützt Linkbreiten von 8 und 16 bit bei bis zu 800MHz Takt.
[Bearbeiten] Elektrische Details
Das elektrische Interface 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 gesampled 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
[Bearbeiten] Anwendungsgebiete für HyperTransport
[Bearbeiten] Frontsidebus-Ersatz
Haupteinsatzgebiet für HyperTransport ist der Ersatz des Frontsidebus, der gegenwärtig für fast jede Prozessorgeneration unterschiedlich ist. Ein Pentium-Prozessor kann beispielsweise nicht mit Chips zusammen betrieben werden, die für den Frontsidebus eines Pentium 4 entwickelt wurden. In einem traditionellen System verbindet der Frontsidebus den(die) Prozessor(en) mit Chips, die die Anbindung an Peripheriegeräte und den Speicher organisieren. HyperTransport ermöglicht hier einen standardisierten Ersatz, der gleichzeitig kostengünstig auf Mainboards implementiert werden kann.
Ein Beispiel für eine Computerarchitektur bei der der Frontsidebus durch HyperTransport ersetzt wurde, ist die AMD64-Familie. Daneben existieren inzwischen auch andere Prozessoren, die ihre Verbindung zur Peripherie über Hypertransport organisieren.
[Bearbeiten] Multiprozessor-Verbindungen
Another use for HyperTransport is as an interconnect for NUMA multiprocessor computers. AMD uses HyperTransport with a proprietary cache coherency extension as part of their Direct Connect Architecture in their Opteron and Athlon64 line of processors. The HORUS interconnect from Newisys extends this concept to larger clusters.
Ein weiteres Anwendungsgebiet für HyperTransport ist die Verbindung von NUMA-Prozessoren in Multiprozessor-Systemen, wie sie derzeit bei AMDs Opteron-Reihe praktiziert wird.
Hierbei benutzt AMD ein erweitertes Protokoll zwischen den einzelnen Prozessoren, dass auch Cache-Kohärenz Informationen trägt. Dies ist nicht unähnlich dem Frontsidebus bei Intel, welcher auch das Cache-Kohärenz Protokoll zwischen den Prozessoren eines Multiprozessor Systems überträgt. Bei den Opteron Systemen ergibt sich die Leistungsfähigkeit der Architektur u.A. dadurch, dass jeder Prozessor einen eigenen Speichercontroller in das System einbringt, und durch die Punkt-zu-Punkt Verbindungen von Hypertransport, insbesondere in Systemen mit mehr als 2 Prozessoren, nicht sämtlicher Verkehr über einen einzigen Bus muss. Ein Opteron besitzt 3 Hypertransport Links, von denen maximal 2 kohärent zur Verbindung mit anderen Prozessoren eingesetzt werden können. Übrige Links können zur Verbindung von Peripherie eingesetzt werden. Intern besitzt der Opteron einen Crossbar-Switch, sodass hier keine Hypertransport Kette vorliegt, sondern ein geschaltetes Netzwerk.
[Bearbeiten] Backplane-Ersatz für Router oder Switches
HyperTransport can also be used as a bus in routers and switches. Routers and switches have multiple connections ports and data has to be forwarded between these ports as fast as possible. E.g. a four port 100 MBit/s Ethernet router needs a bus that is 800 MBit/s fast (100 MBit/s * 4 ports * 2 directions). HyperTransport greatly exceeds the bandwidth needed for this application. However, Hypertransport has largely fallen out of favor with the networking community, in favor of SPI 4.2 and PCI-Express.
HyperTransport kann 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.
Siehe auch: Rapid I/O
[Bearbeiten] HTX and Co-processor interconnect
The issue of bandwidth between CPUs and co-processors has usually been the major stumbling block to their practical implementation. After years without an officially recognized one, a connector designed for such expansion using a HyperTransport interface was introduced and is known as HyperTransport eXpansion (HTX). Using the same mechanical connector as a 16-lane PCI-Express slot (plus an x1 connector for power pins), HTX allows plug-in cards to be developed which support direct access to a CPU and DMA access to the system RAM. The initial card for this slot was the QLogic InfiniPath InfiniBand HCA. Recently, co-processors such as FPGAs have appeared which can access the HyperTransport bus and become first-class citizens on the motherboard. Current generation FPGAs from both of the main manufacturers (Altera and Xilinx) can directly support the HyperTransport interface and have IP Cores available.
The current HTX standard is limited to 16 bits and 800 MHz. For shorter lengths and higher widths, alternatives include a Samtec connector [5] supporting 32-bit, 2.8GHz operation.
AMD has announced an initiative named Torrenza in September 21 2006 to further promote the usage of HyperTransport for plug-in cards and coprocessors.
[Bearbeiten] Geschichtliches
Hypertransport ging aus einem Projekt von AMD mit dem Namen Lightning Data Transport (LDT) hervor. Derzeitige Versionen:
- Hypertransport 1.05: 0,2...0,8 GHz, DDR-Technologie, max. 32 Lanes/Richtung (Februar 2001)
- Hypertransport 2.0: 0,2...1,4 GHz, DDR-Technologie, max. 32 Lanes/Richtung (Februar 2004)
- Hypertransport 3.0: 0,2...2,6 GHz, DDR-Technologie, max. 32 Lanes/Richtung (April 2006)
[Bearbeiten] Implementations
- AMD AMD64 and Direct Connect Architecture based CPUs.
- SiByte MIPS cpus from Broadcom
- PMC-Sierra RM9000X2 MIPS CPU
- ht_tunnel from OpenCores project (MPL licence)
- ATI Radeon® Xpress 200 for AMD Processor
- NVIDIA nForce™ chipsets
- nForce™ Professional MCPs (Media and Communication Processor)
- nForce 4 series
- nForce™ 500 series
- nForce™ 600 series
- ServerWorks HT-2000 HyperTransport™ SystemI/O™ Controller
- The IBM CPC925 and CPC945 PowerPC 970 northbridges
- Raza Thread Processors
[Bearbeiten] Quellen
- ↑ HyperTransport™ I/O Link Specification, Revision 3.00a, Stand Februar 2007
- ↑ HyperTransport™ I/O Link Specification, Revision 1.05], Stand Februar 2007
- ↑ HyperTransport™ I/O Link Specification, Revision 2.0b, Stand Februar 2007
- ↑ HyperTransport™ Low Latency
- ↑ http://www.hypertransport.org/docs/spec/HTC20021219-0017-0001.pdf