# HyperTransport

L'HyperTransport (anciennement Lightning Data Transport ou LDT) est un bus local série/parallèle plus rapide que le bus PCI et qui utilise le même nombre de broches.

## Historique

HyperTransport est une technologie issue des laboratoires Digital. À la suite de la disparition de Digital, le développement fut repris par AMD, IBM et nVidia qui avaient acquis une licence.

## Versions et caractéristiques

Le bus hypertransport a connu différentes évolutions offrant une bande passante théorique de :
* 1.x : 12,8 Go/s : échanges jusqu'à 800 MHz ;
* 2.0 : 22,4 Go/s : les échanges se font jusqu'à 1,6 GHz ;
* 3.0 : 41,6 Go/s : les échanges se font jusqu'à 2,6 GHz ;
* 3.1 : 51,2 Go/s : les échanges se font jusqu'à 3,2 GHz.

## Utilisation

La technologie HyperTransport est actuellement utilisée principalement comme bus mémoire (communication entre le chipset et le processeur) dans certaines architectures comme le K8 (Athlon 64, Opteron, etc.) ou certains PowerPC comme le PowerPC 970 d’IBM utilisé dans les Power Mac G5.
Contrairement au bus mémoire traditionnel des machines Intel qui est relié au bus d'entrées-sorties qu'en un seul point (le chipset Northbridge, qui est donc un goulot d'étranglement), le bus HyperTransport dispose d'une architecture commutée comme un réseau sur laquelle plusieurs chipsets peuvent connecter des bus d'entrées-sorties. Par exemple, des cartes mères classiques pour machines bi-Opteron disposent souvent d'un bus PCI relié au bus HyperTransport par un pont AMD8131 tandis qu'un bus PCI Express (indépendant de l'autre) est relié en un autre endroit par un chipset nVidia nForce. Ainsi, un processeur peut accéder aux périphériques cachés derrière un des 2 bus d'entrées-sorties sans gêner les accès d'un autre processeur à un autre bus.
Selon le nombre de processeurs et la présence de port d'extension HTX, la topologie du bus HyperTransport peut varier d'un lien unique à des formes étranges telles qu'un carré avec une seule diagonale, ou des choses indescriptibles pour les cartes mères à 8 processeurs.
Les processeurs Intel ont adopté une structure similaire à ceux d'AMD avec la technologie QuickPath Interconnect.

### Mode de fonctionnement (en cours)

Le port HyperTransport fonctionne comme un réseau point à point : chaque nœud du réseau est connecté à 1 (nœud de fin de chaîne) ou à 2 nœuds. Dans ce cas il peut faire transiter des échanges et pas seulement en recevoir ou en émettre. On distingue aussi le Host Bridge qui est la puce gérant le réseau (la plupart des échanges vont passer par elle, même s'ils ne lui sont pas destinés).

## Architecture matérielle

En réalité l'architecture du port HyperTransport est très flexible et l'on peut ajouter des composants spécifiques ayant plus de deux entrées sur le bus permettant d'étendre facilement l'architecture du bus. De plus l'HyperTransport permet des DMA (direct memory access)(accès direct à la mémoire), c'est-à-dire que la mémoire vive de l'ordinateur peut être connectée au host bridge pour être accessible par n'importe quel nœud du bus.

## Mode de transmission

Le port HyperTransport est fait, du point de vue matériel, de liens unidirectionnels qui sont doublés pour couvrir les échanges en émission et réception. D'une largeur de 2 à 32 bits chacun, ils permettent des connexions entre 300 et 800 MHz pour la version 1.1. À ces lignes de données s'ajoutent : une ligne de contrôle (CTL), une ligne d'horloge (CLK) pour 8 lignes de données, et d'autres lignes de signaux utilisées pour l'initialisation (power on reset...).
Le mode de fonctionnement du bus à proprement parler passe par la structure de paquets. On y distingue deux types : les paquets de contrôle et les paquets de données (on pourrait même ajouter les paquets d'information qui servent généralement à gérer la vitesse du bus pour un transfert optimal). La distinction entre ces 2 types de paquets se fait d'une manière extrêmement simple : si la ligne CTL (de contrôle) est à niveau haut alors la transmission concerne un paquet de contrôle, sinon il s'agit d'un paquet de données.

### Routage

Les périphériques branchés au bus ne communiquent pas directement entre eux, ils émettent des paquets qui seront routés par un module HOST BRIDGE. Même si les deux périphériques sont côte à côte sur le bus, les paquets de communication passent par un module HOST BRIDGE ; ceci rallonge un peu le temps de communication, mais permet surtout d'avoir une gestion centralisée du bus, et ainsi d'éviter plus facilement les conflits.

### Canal virtuel

On distingue de nombreux modes d'émission sur le bus HyperTransport selon le type de paquet de contrôle (écriture, lecture, écriture suivie d'une lecture — posted / non posted request). Le démultiplexage de ces paquets se fait dans des canaux virtuels (virtual channels, implémentés dans les modules HyperTransport des périphériques connectés au bus) qui permettent à la logique interne des périphériques de distinguer la nature des informations ou des ordres qu'ils reçoivent.

## Infinity Fabric

Infinity Fabric (IF) est un sur-ensemble d’HyperTransport annoncé par AMD en 2016 en tant qu’interconnexion pour ses GPU et CPU. Il est également utilisable comme interconnexion interpuce pour la communication entre les CPU et les GPU (pour Heterogeneous System Architecture), un arrangement connu sous le nom d’Infinity Architecture$^,$$^,$. La société a déclaré que l’Infinity Fabric passerait de 30 Go/s à 512 Go/s et serait utilisé dans les processeurs basés sur Zen et les GPU Vega qui ont ensuite été lancés en 2017.
Sur les processeurs Zen et Zen+, les interconnexions de données « SDF » sont exécutées à la même fréquence que l’horloge de la mémoire DRAM (MEMCLK), une décision prise pour supprimer la latence causée par les différentes vitesses d’horloge. Par conséquent, l’utilisation d’un module de RAM plus rapide rend l’ensemble du bus plus rapide. Les liaisons ont une largeur de 32 bits, comme dans HT, mais 8 transferts sont effectués par cycle (paquets de 128 bits) par rapport aux 2 d’origine. Des modifications électriques sont effectuées pour une meilleure efficacité énergétique. Sur les processeurs Zen 2 et Zen 3, le bus IF est sur une horloge séparée, soit dans un rapport de 1:1 ou 2:1 par rapport à l’horloge DRAM, en raison des problèmes initiaux de Zen avec la DRAM à haut débit affectant la vitesse de l’IF, et donc la stabilité du système. La largeur du bus a également été doublée. Sur les processeurs Zen 4 et ultérieurs, le bus IF est capable de fonctionner avec une horloge asynchrone par rapport à la DRAM, pour permettre les fréquences d’horloge plus élevées dont la DDR5 est capable.