Microthreading
Vue d'ensemble
Le micro-threading améliore l'efficacité des transferts et de l'utilisation des ressources de l'architecture DRAM en réduisant la granularité de l'accès aux lignes et aux colonnes. Cette technologie autorise des tailles de transfert quatre fois plus petites que les DRAM traditionnelles grâce à l'utilisation d'un circuit de lignes et de colonnes indépendant pour chaque quadrant d'espace mémoire physique. L'adressabilité indépendante de chaque quadrant complémente également les charges de travail de la mémoire à threads requises par les processeurs multicœurs et graphiques modernes. Cette architecture unique permet au micro-threading de préserver la bande passante de données du dispositif tout en réduisant la consommation d'énergie par transaction.
Fonctionnement d'une DRAM traditionnelle
Les améliorations apportées au débit de l'interface DRAM ont rapidement dépassé les améliorations qu'a pu connaître le débit du noyau. Alors que les débits de données des interfaces DRAM ont augmenté de manière considérable à chaque génération, la fréquence du noyau des DRAM est restée relativement constante. Au fil du temps, la taille de prélecture du noyau s'est accrue afin de ne pas se laisser distancer par les améliorations de la bande passante de l'interface. L'augmentation de la taille de prélecture a pour effet d'accroître la « granularité » d'accès (une mesure de la quantité de données auxquelles le système accède) et de fournir une quantité de données supérieure à la quantité nécessaire aux applications graphiques ou multicœurs. La récupération des données en excès est inefficace et gaspille la puissance de signalisation et de la DRAM.
La granularité d'accès est fonction de l'accessibilité des données à l'intérieur de l'architecture mémoire. Une DRAM classique se compose de huit banques de stockage. Dans ce type de DRAM, chaque banque est généralement subdivisée en deux demi-banques, notées « A » et « B ». Dans une DRAM de ce type comportant 32 broches de données, chaque demi-banque « A » est reliée à 16 broches de données et chaque demi-banque « B » est reliée à 16 broches. Les banques sont situées dans des quadrants opposés de la puce physique, chaque quadrant disposant de son propre circuit de lignes et de colonnes. Chaque demi-banque fonctionne en parallèle en réponse aux commandes des lignes et des colonnes.

Une commande de ligne sélectionne une seule moitié de banque de la banque adressée, captant et verrouillant ainsi la ligne en question. Les contraintes physiques en matière de synchronisation ont pour effet d'introduire un délai (tRR) avant de pouvoir accéder à une autre banque. Des contraintes similaires s'appliquent aux commandes de colonne (tCC). Toutefois, l'intervalle de synchronisation des lignes est généralement le double de l'intervalle de synchronisation des colonnes. C'est pourquoi il est possible d'envoyer deux commandes de colonne pendant le délai obligatoire requis pour une seule activation de ligne.
La longueur de prélecture de colonne, c'est-à-dire la quantité de données transmises par transaction, est déterminée par les retards de synchronisation de ligne et de colonne respectifs ainsi que par le taux de transfert en bits, selon la formule suivante :
Prélecture = retard de synchronisation/taux de transfert en bits
Le noyau d'une DRAM standard fonctionne généralement à des fréquences allant jusqu'à 200 MHz, tandis que celui d'une DRAM hautes performances standard peut fonctionner jusqu'à 400 MHz. Il est difficile de dépasser une fréquence de noyau de 400 MHz avec les technologies de DRAM standard sans diminuer le rendement de la production ou augmenter les coûts. C'est pourquoi une prélecture de colonne de 16 bits est requise pour que le noyau d'une DRAM hautes performances puisse supporter des débits de données supérieures à 3 200 MHz, puisque les noyaux de DRAM sont organisés de telle manière que chaque demi-banque fonctionne avec la même opération de colonne ou de ligne.
De plus :
Granularité de la colonne = (prélecture de la colonne) x (nombre de broches de données par demi-banque) x (nombre de demi-banques par accès)
Ou :
Pour une DRAM de 32 bits avec 16 broches de données par demi-banque :
Granularité de la colonne par accès = 16 x 16 x 2 = 512 bits ou 64 octets.
En outre, pendant l'intervalle de synchronisation de la ligne, afin de conserver la bande passante crête, au moins deux opérations de colonne doivent être réalisées. On parle généralement dans ce cas de deux CAS par RAS (deux signaux d'échantillonnage d'adresse de colonne par signal d'échantillonnage d'adresse de ligne). Il en résulte une granularité de ligne de 128 octets. Cette granularité d'accès importante se traduit par une utilisation inefficace des données et de la consommation d'énergie dans le cas d'applications graphiques en 3D.
Comment le micro-threading améliore-t-il l'efficacité ?
Utilisant en grande partie les mêmes ressources de noyau que dans l'exemple précédent, un noyau DRAM à micro-threads se compose de 16 banques, chacune d'entre elles étant équivalente à une demi-banque d'un noyau de DRAM classique. Les banques paires sont connectées aux broches de données A et les banques impaires aux broches de données B (avec 16 broches également dans chaque cas). Cependant, contrairement à un noyau traditionnel, chaque quadrant (contenant quatre banques) peut fonctionner de manière indépendante grâce à un circuit de lignes et de colonnes indépendant pour chaque quadrant. Par ailleurs, l'accès simultané entrelacé à plusieurs banques de mémoire autorise des accès simultanés au quadrant inférieur sur le même côté physique du noyau que l'accès précédent.

Le micro-threading permet quatre accès simultanés indépendants au noyau de la DRAM. Bien que le même intervalle de temps que dans un noyau traditionnel doive s'écouler avant de pouvoir accéder à une autre ligne d'une banque ou d'un quadrant de banques particulier, les trois banques des autres quadrants restent indépendamment accessibles pendant la même période. Bien qu'un intervalle de synchronisation de colonne doive s'écouler avant de pouvoir accéder à la deuxième colonne de la ligne activée précédemment, il est possible d'accéder simultanément aux colonnes des lignes des autres quadrants. Pour résumer, grâce à cet entrelacement et à cette indépendance des quadrants, il est possible d'accéder à quatre lignes (une par banque et par quadrant) et huit colonnes (deux dans chaque ligne) pendant l'intervalle de synchronisation de ligne (par rapport à une seule ligne et deux colonnes dans un DRAM classique).
Les synchronisations sont semblables à celles d'un noyau de DRAM classique, mais chaque colonne n'envoie des données que pendant la moitié de l'intervalle de synchronisation de colonne. La colonne entrelacée envoie des données pendant la seconde moitié de l'intervalle. Le micro-threading réduit la taille minimale de la granularité de transfert tout en assurant une fréquence de noyau économique et à haut rendement. En entrelaçant les accès aux colonnes à partir de quatre banques différentes, un noyau de DRAM à micro-threads (d'une longueur de prélecture de colonne et d'une fréquence de noyau données) peut prendre en charge des débits de données deux fois plus élevés que ceux d'un noyau de DRAM traditionnel. Inversement, l'utilisation du micro-threading pour le fonctionnement des colonnes permet à un noyau de DRAM de prendre en charge de manière économique un débit et une granularité donnés tout en divisant par deux le temps de cycle de colonne (tCC) par rapport à un noyau DRAM traditionnel.

Grâce au mcro-threading, la granularité de la colonne est à présent la suivante :
Prélecture de la colonne/2 x 16 broches = 16/2 x 16 = 128 bits ou 16 octets (soit le quart de l'ancienne valeur).
La granularité de ligne est de 32 octets (ici aussi, le quart de l'ancienne valeur). La granularité plus fine du micro-threading aboutit à une amélioration des performances dans de nombreuses applications. Par exemple, dans une application graphique avec une granularité d'accès de colonne de 8 octets avec la technologie de micro-threading, la puissance de calcul et l'efficacité énergétique augmentent respectivement de 29 % et de 67 % par rapport à la technique classique.
Résumé : Défis commerciaux et avantages du micro-threading en matière de performances
- L'augmentation de la longueur de prélecture a été utilisée pour permettre aux vitesses des noyaux de DRAM de suivre les améliorations apportées à la bande passante de l'interface. Il en résulte cependant une réduction de l'efficacité des noyaux des DRAM à transférer des données utiles.
- Le micro-threading offre une approche alternative qui permet d'accroître l'efficacité des transferts et de réduire la granularité d'accès avec pratiquement le même noyau de DRAM.
- Le micro-threading préserve le haut niveau de bande passante de données soutenue tout en réduisant la consommation d'énergie.
- Le micro-threading permet d'obtenir un débit de données du noyau de DRAM deux fois supérieur aux techniques conventionnelles.
- Le micro-threading ouvre la voie à de nouvelles augmentations de la bande passante de données et offre des rapports de prélecture de noyau supérieurs.
