Haswell d'Intel (ou au moins les produits intégrant le processeur graphique Iris Pro 5200) et les POWER7 et POWER8 d'IBM incluent tous des DRAM intégrés, "eDRAM".
Un problème important qui empêchait eDRAM de devenir monnaie courante jusqu’à récemment est que le processus de fabrication de DRAM n’est pas intrinsèquement compatible avec les processus logiques, de sorte que des étapes supplémentaires doivent être incluses (ce qui augmente le coût et diminue le rendement) lorsque eDRAM est souhaité. Il doit donc y avoir une raison impérieuse de vouloir l’intégrer pour compenser ce désavantage économique. La mémoire DRAM peut également être placée sur une puce distincte fabriquée indépendamment de la CPU, mais intégrée dans celle-ci, dans le même boîtier. Ceci fournit la plupart des avantages de la localité sans les difficultés de fabrication des deux de manière vraiment intégrée.
Un autre problème est que la mémoire DRAM n’est pas semblable à la mémoire SRAM en ce sens qu’elle ne stocke pas son contenu indéfiniment tant que le système est sous tension, et sa lecture détruit également les données stockées, qui doivent ensuite être réécrites. Par conséquent, il doit être actualisé périodiquement et après chaque lecture. Et, comme une cellule DRAM est basée sur un condensateur, chargez ou déchargez-la suffisamment pour que les fuites ne corrompent pas sa valeur avant que le prochain rafraîchissement ne prenne un temps fini. Ce temps de charge n’est pas nécessaire avec la mémoire SRAM, qui n’est qu’un verrou; par conséquent, elle peut être cadencée au même rythme que le processeur, alors que la mémoire DRAM est limitée à environ 1 GHz tout en maintenant une consommation électrique raisonnable. Cela donne à la mémoire DRAM une latence inhérente supérieure à celle de la mémoire SRAM, ce qui rend inutile son utilisation pour tous les caches, sauf les plus grands, pour lesquels le taux de perte réduit sera rentable.
En outre, en ce qui concerne la latence, une grande partie de la difficulté réside dans la distance physique que les signaux doivent parcourir. La lumière ne peut voyager que 10 cm dans la période d'horloge d'un processeur de 3 GHz. Bien entendu, les signaux ne traversent pas la matrice en ligne droite et ne se propagent pas à une vitesse proche de la vitesse de la lumière en raison de la nécessité de la mise en tampon et du déploiement, ce qui entraîne des délais de propagation. Ainsi, la distance maximale qu'une mémoire peut être éloignée d'une unité centrale afin de maintenir un cycle d'horloge de latence est de quelques centimètres au maximum, ce qui limite la quantité de mémoire pouvant être hébergée dans la zone disponible. Le processeur Nehalem d’Intel a en fait réduit la capacité du cache L2 par rapport à Penryn, en partie pour améliorer sa latence, ce qui a permis d'améliorer les performances.
Il convient également de noter que le taux d'accès au cache est très élevé pour la plupart des charges de travail: bien supérieur à 90% dans presque tous les cas pratiques et assez rarement même au-dessus de 99%. Ainsi, l’avantage d’inclure des mémoires plus volumineuses à la mémoire est intrinsèquement limité à la réduction de l’impact de ces quelques pour cent de ratés. Les processeurs destinés au marché des serveurs d'entreprise (tels que POWER) disposent généralement d'énormes caches et peuvent inclure rentablement l'eDRAM car il est utile de prendre en charge les grands ensembles de travail de nombreuses charges de travail d'entreprise. Haswell a prévu de prendre en charge le GPU, car les textures sont volumineuses et ne peuvent pas être hébergées en cache. Ce sont les cas d'utilisation de l'eDRAM aujourd'hui, pas les charges de travail de bureau ou HPC classiques, qui sont très bien servies par les hiérarchies de cache typiques.
Pour résoudre certains problèmes soulevés dans les commentaires:
Ces caches eDRAM ne peuvent pas être utilisés à la place de la mémoire principale car ils sont conçus comme caches de victime L4. Cela signifie qu'elles sont volatiles et que leur contenu est adressable de manière à ce que les données qui y sont stockées ne soient pas traitées comme résidant dans un emplacement spécifique et puissent être supprimées à tout moment. Il est difficile de concilier ces propriétés avec l’obligation pour la RAM d’être directement mappée et persistante, mais leur modification rendrait les caches inutiles pour l’objectif recherché. Il est bien sûr possible d’incorporer des mémoires de conception plus conventionnelle, comme dans les microcontrôleurs, mais cela n’est pas justifiable pour les systèmes à mémoire importante, car une faible latence n’est pas aussi bénéfique dans la mémoire principale que dans une mémoire cache. ou ajouter un cache est une proposition plus intéressante.
En ce qui concerne la possibilité de caches très volumineux avec une capacité de l'ordre de gigaoctets, un cache doit uniquement être au plus de la taille de l'ensemble de travail de l'application. Les applications HPC peuvent traiter des jeux de données en téraoctets, mais ils ont une bonne localisation temporelle et spatiale et leurs jeux de travail ne sont généralement pas très grands. Les applications avec de grands ensembles de travail sont, par exemple, des bases de données et des logiciels ERP, mais le marché des processeurs optimisés pour ce type de charge de travail est limité. À moins que le logiciel n'en ait vraiment besoin, l'ajout de plus de cache permet d'obtenir des rendements en diminution très rapide. Récemment, nous avons vu des processeurs obtenir des instructions de prélecture, de sorte que les caches peuvent être utilisés plus efficacement: vous pouvez utiliser ces instructions pour éviter les erreurs causées par l'imprévisibilité des modèles d'accès en mémoire, plutôt que par la taille absolue de l'ensemble de travail,
* L'amélioration de la latence n'était pas uniquement due à la taille physique réduite du cache, mais également à la réduction de l'associativité. Des changements importants ont été apportés à l’ensemble de la hiérarchie du cache dans Nehalem pour plusieurs raisons différentes, qui ne sont pas toutes axées sur l’amélioration des performances. Donc, si cela suffit à titre d'exemple, ce n'est pas un compte rendu complet.