[gull] Above Meltdown & Spectre

Daniel Cordey dc at pxcluster.com
Wed Feb 7 00:22:04 CET 2018


On 22. 01. 18 06:51, Dominik Madon wrote:
>
> L'Itanium est un processeur VLIW (very large instruction word) embarquant plusieurs opérations dans une seule instruction. L'idée était de simplifier le dispatch dans les unités de calcul (ALU, Ld/St, FP) par un précalcul du processeur. Le microcode est apparu bien avant l'Itanium, notamment pour exécuter les instructions à virgule flottante qui nécessitent, pour certaines, plusieurs micro-instructions.

Petite rectification... Itanium n'est pas à proprement parlé un 
processeur VLIW. Cette dénomination lui est régulièrement faussement 
attribuée par le simple fait que les gens se contente de voir que les 
"mots" d'instructions font 128 bits. Il est vrai que certains 
processeurs (des protos dans des unis) manipulaient des instructions de 
128 bits et revendiquaient la classification de VLIW (à juste titre). 
Or, les "mots" de 128 bits de l'Itanium contiennent en fait trois 
instructions et le processeur peut charger 2 mots (de 128 bits) à chaque 
cycle, offrant le potentiel d'exécuter 6 instructions en parallèle à 
chaque cycle. Ce qui change avec Itanium par rapport à un bête 
processeur VLIW est la fonction dévolue au compilateur. Alors que les 
autres processeurs VLIW compte toujours à OOOE (Out-Of-Order Execution), 
Itanium en est dépourvu et l'à remplacé par la notion d'EPIC (Explicit 
Parallel Innstruction Computing) et l'utilisation des prédicats. C'est 
parce que, tout seul et sans les techniques de compilation, Itanium 
exécute mal les opération en // qu'il est catégorisé comme EPIC en 
combinaison avec le compilateur (dont il dépend).

Le microcode est bien apparu avant Itanium, puisqu'on en retrouve les 
prémices au début des années 50, avec l'introduction de la notion de 
"conditional execution"; qui n'était que l'extension des développements 
datant de 1947 au MIT. Dans les années 70, son usage était indispensable 
à toute personne qui développait un CPU à base de "bit slice". Avec 
l'arrivée des processeurs RISC dans les années 80, sont usage a diminué 
et il est resté utilisé de manière sporadique pour des parties 
spécifiques, comme le traitement des exceptions en cas d'absence de FPU 
ou l'émulation de IA-32 sous Itanium justement.

>> Je ne suis pas d'accord pour entendre que la "misprediction" ne coûte
>> rien...

Sachant que la majorité du code se résume à l'exécution de LOAD & STORE 
(mesure sur des millions de lignes de code ayant permit de définir 
l'architecture HP-PA, ~80% !!!), je demande à voir l'effet sur un 
serveur WEB ou de base de données... Le monde se focalise 
essentiellement sur des micro-benchmarks débiles qui n'ont quasi aucun 
impact dans le monde réel. Soyons sérieux, si les techniques de 
limitation du "branch misprediction" sont utiles dans certain cas, sont 
impact est souvent largement surévalué. Qui plus est, la plupart du 
temps ces "techniques" se résument à faire une moyenne sur les trois 
derniers branchements à cette adresse... et encore ne faut-il pas en 
avoir trop... car les registres de "misprediction" sont très limités... 
La taille, et surtout l'architecture, de la cache et du TLB ont beaucoup 
plus d'impact que cette fameuse technique de "misprediction".

>> en temps écoulé peut-être mais c'est oublier la consommation
>> énergétique et la dissipation de chaleur et partant probablement la
>> durée de vie de la puce.

Faut-il se préoccuper de la consommation des "misprediction" lorsque 
l'on voit que la majorité des gens dans les transports publiques jouent 
a Candycrush ou regarde des vidéos... :-) Sans compter que la batterie 
(ou le clavier) rendra l'âme bien longtemps avant la puce... :-)

Et les OS qui mettent 15 minutes à s'éteindre ? Je suis d'accord que 
l'on doit chercher à minimiser l'impact de chaque instruction sur la 
durée de vie de la batterie. Mais les GPUs sont sans doute 10 fois plus 
gourmands; et là, rien n'est trop beau... il suffit de voir l'hystérie 
de certains quand on leur montre des emojis qui bougent... très utile !
> Oui, c'est vrai, cela consomme de l'énergie en plus.

Disons, que je vais choisir un autre système de chauffage chez moi :-)

dc


	



More information about the gull mailing list