AMD suspecte une vulnérabilité sur ses processeurs Zen 3, apporté par le "Predictive Store Forwarding" |
————— 06 Avril 2021 à 14h31 —— 13059 vues
AMD suspecte une vulnérabilité sur ses processeurs Zen 3, apporté par le "Predictive Store Forwarding" |
————— 06 Avril 2021 à 14h31 —— 13059 vues
En septembre 2020, Agner Fog portait sur notre comptoir une fonctionnalité commune à Ice Lake et Zen 2 : nommé « renommage mémoire », cette amélioration consiste en la capacité de garder proche du cœur du processeur une partie des écritures en mémoire, afin d’y accéder gratuitement à la prochaine utilisation. Si, dans Zen 3, cette amélioration n’est pas présente, AMD a tout de même intégré quelque chose de proche : le PSF, pour Predictive Store Forwarding.
En interne, un processeur ne va pas directement effectuer ses écritures en mémoire vive, ni même en cache : après traitement, les micro-instructions de stockage RAM sont rassemblées dans une Store Queue, qui est traitée en parallèle du reste du programme. De même, une Load Queue existe également pour garder trace des dernières demandes — entre autres pour tracer quelle instruction est exécutable ou non, les processeurs effectuant des réordonnancements (fonctionnement Out-of-Order) sur une fenêtre d’environ 100 instructions. Vous le voyez sûrement venir : des raccourcis (Store-to-Load Forwarding) ont été intégrés entre ces deux files, permettant de réduire sensiblement la latence entre chargement et rangement à la même adresse, un fait très courant dans les codes effectuant des spills, c’est-à-dire des passages des valeurs entre fonctions/contexte par la pile.
Load et Store Queue telles que présentées par les rouges
Comme beaucoup de circuits logiques intégrés dans un processeur, ces bypass sont sujets à de la prédiction, faisant évoluer le Store-to-Load Forwarding (STLF) en Predictive Store Forwarding (PSF). L’idée est de noter le comportement précédent des chargements et rangements afin de précharger les valeurs avant d’avoir calculé les adresses concernées. Comme à l’accoutumée dans le domaine, si le calcul est validé, la transaction s’effectue, sinon le processeur doit annuler le STLF spéculé, menant à un léger retard dans l’exécution. En utilisant un timer précis et un canal auxiliaire (le classique remplissage du cache et mesure fine des temps de chargement de chaque ligne de cache) tout en exécutant un processus pirate sur le même cœur logique, il serait possible de déduire si l’accès ou non a eu lieu. Si AMD ne permet pas d’accéder par ce biais à des zones mémoires appartenant au noyau, cela n’empêche pas des possibles fuites sur des processus critiques utilisateurs (saisie de mot de passe dans un navigateur web par exemple).
Pour autant, AMD conseille de garder la fonctionnalité activée par défaut — il suffit de quelques bits de configuration pour la retirer —, et pour cause : cela aurait une influence sur les performances... d’après la maison-mère, en tout cas. En effet, Phoronix a testé l’influence du PSF sur son set de benchmarks maison, et les résultats se tiennent dans un mouchoir de poche avec moins de 0,5 % de différence sur un Ryzen 7 5800X sur plus de 100 applications. Une tempête dans un verre d’eau ?
Un poil avant ?Intel également devrait faire face à une pénurie | Un peu plus tard ...Comptoiroscope • Outriders avec du DLSS dedans |