[gull] Linux sur processeur Core Duo?

Daniel Cordey dc at mjt.ch
Fri Aug 4 14:17:57 CEST 2006


On Friday 04 August 2006 13:44, Marc Mongenet wrote:

> Notons toutefois que l'architecture x86-64 a 2 fois plus de registres
> que l'architecture x86. Cela donne un gain de vitesse de quelques
> pourcents, voire quelques dizaines de pourcents.

Ce serait merveilleux si la simle adjonction de registres pouvait donner des 
gains de plusieurs dizaines de pourcents... Plutot que de doubler la vitesse 
d'une generation de processeur, il suffirait de mettre assez de registres a 
disposition pour doubler sa vitessee... Helas, tois fois helas, il n'en est 
rien. A moins d'avoir une application tres specifique qui beneficierait d'une 
augmentation du nombre de registre, au point de faire un bon en performance, 
le gain est malheureusement tres limite. Les applications dont je parle sont 
surtout des applications de caculs dont 99% du temps se passes dans quelques 
fonctions... Alors, oui, dans ce cas, il est possible d'obtenir des gains 
importants.

Depuis pret de 20 ans, on n'a cesse d'augmenter le nomber de registres et d'en 
augmenter la taille. Les exemples ou, en doublant le nombre de registres, en 
augmentant la cache, changeant le mode d'acces de celle-ci (ex: un cycle de 
moins pour acceder a une cache niveau 2), tunant le compilateur, augmentant 
la vitesse du bus memoire et celle du CPU... on a finalement obtenu un gain 
de moins de 50% sont nombreux. Dans le tuning des processeurs, cela fait 
longtemps que l'on sait que le meilleur booster de performance est 
l'augmentation de la taille de la cache principale, pas l'augmentation du 
nombre de registre. L'augmentation simple du nombre de registres offre des 
gains de 2-3 % en general. Ceci est une valeur statistique basee sur les 
processeurs RISCS des 20 dernieres annees.

Aussi, le passage de 32 a 64 bits a ete l'occasion de leurer les utilisateurs 
avec le nombre de registres. C'est tres simple... si vous disposez de 32 
registres memoires en 32 bits, et que vous desiriez offrir un processeur 
compatible en 64 bits, il vous faudra disposer aussi de 32 registres en 64 
bits. Or, pour assurer la compatibilte en 32 bits (et pour des raisons de 
techniques internes), on doit pouvoir conserver l'acces a ces registres 32 
bits. Pour eviter d'avoir 32 registres 32 bits + 32 registres 64 bits, chaque 
registre 64 bits est en fait constitues de 2 registres 32 bits... accessibles 
separement. On a donc bien doubler le nombre de registres 32 bits, mais pas 
celui des registres 64 bits. Si l'on tient compte qu'en mode 64 bits, on 
download dans la cache des paquets deux fois plus gros, on s'apercoit que la 
charge sur le bus memoire et la cache est deux fois plus important !!! Les 
explications concernant l'impact sur les performances ont ete clairement 
expliques sur les processeurs RISCS depuis 20 ans par HP, IBM, SGI, etc. 
Toutefois, le public cible des processeurs *86 etant moins pointu, jen n'ai 
jamais vu d'explication claire et non ambigue de la part d'Intel et AMD 
lorsqu'il sortaient un nouveau modele... au contraire, c'est l'ecran de 
fumee... et la desilusion systemaqtique. COntrairement a HP, IBM, SUN, etc. 
Intel ne sort pas forcement un processeur pour offrir clairement 30% de 
performances suplementaires, mais pour des raisons qui sont propres au 
marketing d'Intel et AMD... parfois, il s'agit simplement de consommer moins, 
parfois on essaie de reduier les cout de productions, etc. Il est rare que 
l'un des deux sorte un CPU pour aller vraiment plus vite est explique 
clairement comment il a atteind cet objectif. Sans doute ont-ils peur que 
l'on realise que les autres modeles encore en vente sont a jeter... Intel et 
AMD sont parfaitement au courant des faiblesses et des atouts du concurent. 
Chacun se garde bien de deterrer la hache de guerre...

dc



More information about the gull mailing list