Pendant des années, le créer une interconnexion qui permettrait un accès cohérent à la RAM non seulement au niveau des multiples cœurs d’un processeur, mais aussi par le reste des composants qui l’accompagnent dans le PC dont le Périphériques d’E / S.
La énième norme avec laquelle ils cherchent à atteindre cet objectif est le soi-disant CXL o Compute Express Link, qui a été adoptée par presque tous les principaux acteurs de l’industrie, indiquant que nous nous dirigeons vers sa mise en œuvre de manière massive.
Sommaire
Plusieurs tentatives ont été faites pour créer une interface de communication cohérente pour les périphériques au fil des ans et diverses normes ont été proposées.
Par exemple, AMD a promu il y a quelques années ce qu’ils appelaient HSA mais il est tombé dans l’oubli en raison du manque de support d’Intel, dans le cas du CXL nous avons une norme qui est prise en charge par Intel et AMD, qui garantit que tous les processeurs et cartes mères du futur seront pris en charge.
Mais la clé est que CXL n’est pas un nouveau protocole mais plutôt une amélioration par rapport au PCI Express, Il ne s’agit que de donner une cohérence de mémoire, ou également appelée cohérence de cache, avec le processeur système à tous les périphériques connectés au port PCI Express. et nous le verrons pour la première fois dans la version 5.0 du protocole.
Tous les périphériques qui utilisent le port PCIe pour se connecter à notre PC ont les lignes connectées à un périphérique appelé PCI Express Bridge, qui est l’interface d’E / S qui sert de pont entre le Southbridge ou le gestionnaire de périphériques. E / S et divers périphériques PCI Express.
Le problème avec le processeur communiquant avec les différents dispositifs est que généralement chacun des éléments d’E / S a son propre espace d’adressage en mémoire, et un élément matériel intermédiaire est nécessaire pour traduire l’envoi et la réception de données vers et depuis. des appareils.
C’est la raison pour laquelle, dans un SoC, lorsque vous souhaitez que le GPU ait accès à l’espace cohérent du CPU, il n’est pas connecté en tant que périphérique via les ports PCi Express mais est connecté directement au Southbridge.
Les accélérateurs sont des processeurs multimédias qui exécutent une tâche spécifique ou un ensemble de tâches mieux qu’un processeur, consommant beaucoup moins et / ou exécutant ces tâches en moins de temps. C’est pourquoi les processeurs au lieu de faire certaines tâches, ils demandent aux accélérateurs de les faire et retournent le résultat ou la confirmation que l’accélérateur a fait le travail.
Là où cela est extrêmement important, c’est face à des configurations MCM hétérogènes ou à des configurations avec des puces qui combinent plusieurs processeurs de nature différente dans le même interposeur mais partageant la même mémoire physique, ce qui permettra l’intégration d’accélérateurs. supplémentaire sans changer le reste des composants MCM.
Mais pour les Data Centers du futur, nous verrons plusieurs de ces MCM interconnectés les uns avec les autres formant un seul système, c’est à ce stade qu’il est important que tous les périphériques d’E / S puissent être connectés les uns aux autres. aux autres.
Ce que nous avons maintenant dans le cas de protocoles comme Infinity Fabric d’AMD, c’est que nous pouvons communiquer plusieurs cœurs de processeur entre eux, mais ils ont besoin d’accéder aux périphériques pour être centralisés afin qu’ils partagent tous. le même accès que si chaque processeur avait votre interface d’E / S rendrait extrêmement difficile l’utilisation de périphériques d’E / S affectés à un autre processeur dans le MCM.
Ce que permet le CXL, c’est que les accélérateurs et les périphériques d’E / S situés dans différents chiplets du même processeur peuvent communiquer entre eux et non seulement avec les éléments de la même puce mais entre plusieurs chiplets de manière transparente, permettant tous la même vue de mémoire système.
Alors que CXL 1.1 va être intégré dans certaines implémentations de PCI Express 5.0, avec Intel Xeon Sapphire Rapids étant le premier à l’intégrer, nous n’avons toujours pas de date pour la version 2.0 du protocole mais nous avons des informations sur la bonne . des nouvelles qui
L’une des nouvelles fonctionnalités qui ont été ajoutées dans la version 2.0 du CXL sont les commutateurs dits CXL, qui ont la même application que les commutateurs PCI Express.
Les commutateurs nous permettent simplement d’attribuer les ports PCIe du système à différents périphériques d’E / S, afin que nous puissions attribuer un contrôleur PCIe à 24 voies comme suit: 16 ports pour les graphiques, 4 pour le chipset et 4 pour NVMe.
Mais ils sont également importants pour communiquer directement les périphériques entre eux, le piège des commutateurs PCIe est que les voies PCIe peuvent non seulement être utilisées pour communiquer le CPU avec les périphériques mais aussi entre elles, par exemple on peut rendre l’accès graphique un solide disque connecté à un autre port PCIe.
Cette fonctionnalité n’a pas été trouvée dans la version 1.1 du protocole CXL mais dans la version 2.0.
Une autre des choses les plus importantes dans le monde des centres de données est la mémoire persistante: nous parlons de mémoire qui serait presque aussi rapide que la DRAM mais qui stockerait des données de mémoire persistantes comme NAND Flash.
Un exemple de ce type de mémoire serait la 3D Xpoint qui était vendue jusqu’à relativement récemment par Intel sous le nom d’Optane. Avec l’utilisation d’interfaces CXL pour accéder à ce type de mémoire, il est possible pour plusieurs processeurs d’accéder à ce type de mémoire au lieu d’une seule.
Une autre nouveauté du protocole CXL 2.0 est l’ajout de matériel pour le cryptage et le décryptage des données sur les interfaces CXL.
Ces accélérateurs prennent les données d’entrée et de sortie et finissent par appliquer un algorithme en temps réel pour décoder les données à la volée, permettant uniquement au matériel doté de la routine de décryptage appropriée de crypter et de décrypter les données.
Cela peut non seulement être utilisé pour stocker des données, mais également pour appliquer des algorithmes via ces accélérateurs de compression et / ou de décompression de données pour augmenter la quantité de données efficaces envoyées sur le bus.