[gull] x86_64

Daniel Cordey dc at mjt.ch
Mon Jun 5 09:33:38 CEST 2006


On Saturday 03 June 2006 00:54, Marc Mongenet wrote:

> Dans ce cas, 'architecture' et 'jeu d'instructions' sont effectivement
> assez similaires.

Il y a des limites floues en ce qui concerne cette association. Une 
architecture de type multi-core AMD 64 n'a plus grand chose a voir avec celle 
d'un 8086, bien que le jeu d'instruction de ce dernier soit compris par 
l'AMD. Cette correspondance est quand meme limitee. De meme que la notion de 
jeu d'instructions est aussi assez ambigue. Rajouter des regitsres a un 
processeur n'est pas equivalent a rajouter des instructions; mais l'ancien 
processeur ne peut tourner des codes utilisant les nouveaux registres... On 
parlera a lors de famille de processeurs.

> C'est le sens que j'utilise d'habitude. Intel aussi 
> il semble, car "ia64" signifie "Intel Architecture 64".

Intel noie le poisson afin d'occulter les deficiences de sa strategie. Le mot 
IA32 est venu bin apres IA32. Le jeu d'instruction IA64 a ete defini dans la 
premiere moitie des annees 90, par un ingenieur d'HP ayant travaille pendant 
plusieurs mois dans les d'Intel pour definir le jeu d'instruction de 
l'Itanium. Ce n'est qu'apres coup que le marketing d'Intel a eu la brillante 
idee de nommer le jeu d'instruction des x86 : IA 32. Esperant ainsi leurer 
les gens pour leur faire croire que la suite de leur processeur 32 bits etait 
l'Itanium. A partir du moment ou le mode d'emulation n'a pas recu assez de 
ressources pour etre developpe correctement, c'etait vraiment prendre les 
gens pour des idiots.

> Il me semble que ce sens correspond plus ou moins au sens du
> fameux bouquin "Computer Architecture, a Quantitative Approach".
> On y lit "In the past, the term 'computer architecture' only referred
> to instruction set design."

"In the past", soit jusqu'au debut des annees 80...

> Mouais, c'est assez flou, ça m'avance pas beaucoup. :)

:-)

> Mais si je cherche sub-architecture sur le Web, je vois que
> ce sont plutôt les générations de processeurs (i386, i486,
> i586, etc.), qui sont considérées...

Le kernel doit prendre la notion d'architecture aus sens large. En dehors du 
simple jeu d'instruction et du nombre de registres, qui n'est qu'un probleme 
de compilateur, il faut aussi traiter les "chipsets", la maniere de faire du 
DMA, etc. Il y a donc une difference dans la signification et la porte du mot 
architecture suivant que l'on se place du point de vue du kernel ou du 
compilateur.

> On parle aussi de microarchitecture, par exemple de la
> microarchitecture NetBurst du Pentium 4. Peut-être est-ce
> ce que tu appelles 'architecture'?

Oui, dans le cas de ma remarque initiale.

> Je ne saurai pas dire pour la PA-RISC, je les connais mal.
> Mais je ne comprends pas comment on peut «etre une evolution
> d'un modele precedent, mais avec plus de registres; sans changer les
> modes d'adressage ni le heu d'instruction». Comme peut-on
> adresser plus de registres avec les mêmes instructions?

Voir l'exellent explication de Leo. Je rajouterai que les processeurs RISC ont 
drsatiquement reduit le nombre de mode d'adressage. Dans un 68020, on pouvait 
compter jusqu'a 13 modes d'adressage pour certaines instructions. Dans la 
plupart (voir tous) des processeurs RISCs seuls les instructions 
LOAD/STORE/BRANCH peuvent adresser la memoire alors que les autres 
instructions ne manipulent que des registres. Ce justement ce qui a permit 
une grande simplification* du jeu d'instruction (en plus d'etre reduit). Du 
coup, on ne s'etonne pas lorsque les statistiques vous donnent 80% de 
LOAD/STORE dans des programmes :-)

> Il y avait des bits inutiles dans le jeu d'instructions ?

Non, des bits "reserves" ! N'oublions pas que dans le cas de jeu 
d'instructions VLIW, cette notion devient plus floue.

dc

*Initialement, RISC signifie "Reduced Instruction Set Computer". Il a existe a 
des CPUS avec un jeu d'instruction tres reduit (IBM 801, stanford), mais cela 
s'est avere trop limite pour un usage plus general. Tous les processeurs 
RISCs (HP-PA, SPARC, POWER, ALPHA, MIPS, etc.) ont derives de cette 
definition initiale en rajoutant des instructions avec le temps. Seul l'usage 
massif des registres et la simplification des modes d'adressage a ete 
conserve. 




More information about the gull mailing list