Le principe même du SMT, c'est de partager des ressources processeurs entre 2 processus. Car avec d'énormes pipelines (~ 30 étages) et 5 unités en parallèle, il y a souvent des "bulles", des bouts de pipelines "vides". En moyenne, il y a un ipc de 3, cela veut dire 3 instructions exécutés, cela laisse ~40% d'inactivités.
Le SMT permet d'utiliser ces cycles inutilisés. Cela n'est pas idiot. Le gain est bien plus faible à cause de la pression sur les caches. En jouant 2 processus, on tue la localité des données. D'où le fait que les premier SMT utilisant 4 threads puis Intel est passé à 2.
AMD dans ses bulldozers, a fait un truc intermédiaire : dédier des ALU et pas seulement des bancs de registres. L'erreur a été de faire croire que c'était des vrai cpu complet.
D'un point de vue sécurité, c'est toujours du partage de ressource. Donc, si on peut mesurer les performances, on peut savoir l'usage des ressource de l'autre thread, ce qui est clairement une attaque side-channel.
[^] # Re: HT et performances...
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Rumeurs sur l'hyper-threading - TLBleed. Évalué à 8.
Le principe même du SMT, c'est de partager des ressources processeurs entre 2 processus. Car avec d'énormes pipelines (~ 30 étages) et 5 unités en parallèle, il y a souvent des "bulles", des bouts de pipelines "vides". En moyenne, il y a un ipc de 3, cela veut dire 3 instructions exécutés, cela laisse ~40% d'inactivités.
Le SMT permet d'utiliser ces cycles inutilisés. Cela n'est pas idiot. Le gain est bien plus faible à cause de la pression sur les caches. En jouant 2 processus, on tue la localité des données. D'où le fait que les premier SMT utilisant 4 threads puis Intel est passé à 2.
AMD dans ses bulldozers, a fait un truc intermédiaire : dédier des ALU et pas seulement des bancs de registres. L'erreur a été de faire croire que c'était des vrai cpu complet.
D'un point de vue sécurité, c'est toujours du partage de ressource. Donc, si on peut mesurer les performances, on peut savoir l'usage des ressource de l'autre thread, ce qui est clairement une attaque side-channel.
"La première sécurité est la liberté"