A mon sens, il y a 5 moyens pour un CPU d'augmenter ses perfs, actuellement, mais elles ont toutes des défauts :s
1 : la classique, utilisée par Intel (et les autres) : on augmente la fréquence. le problème, c'est que pour augmenter la fréquence, on doit augmenter la taille du pipeline, et donc baisser le rendement. ce qui induit que on augmente la fréquence, mais on baisse l'efficacité, donc on est au même point.
Intel utilise ca avec le Netbusrt
2 : Augmenter la vitesse de communication vers l'extérieur, en boostant le FSB. On passe de bus SDR a des DDR ou QDR, voire des bus HT ou autres tres rapides.
Ils font tous ca :
K7 : DDR
K8 : lien HT
Pentium-M : P6 + bus QDR
P4 : bus QDR bien rapide
3 : technique plus maligne, mais moins facile a mettre en oeuvre : on augmente l'efficacité du CPU. On monte moins en fréquence (un CPU efficace a un pipeline court) mais on travaille plus a fréquence égale. reste que certains programmes dépendent plus de la vitesse que de l'efficacité.
Intel et AMD utilise ca, avec les Pentium-M et K7/K8
4 : Augmenter le cache. ca marche, mais c'est pas super efficace. ca coute cher, le gain est pas effectif pour toutes les application, un truc qui se contente de 512Ko ira pas plus vite avec 2Mo. c'est plus du bricolage que de l'optimisation réelle si on ne change pas le CPU derrière.
Pour moi l'augmentation du cache, c'est un leurre.
5 : le multi-core. Ca c'est spécial. en theorie, le gain est de 100%, mais en pratique c'est moins. Ca coute cher, ca chauffe plus (donc soit on met 2 CPU moins rapide, soit on a un monstre qui chauffe la maison).
Le gain en utilisation courante est faible, en tout cas avec windows.
Et le gros problème, c'est que on ne peut pas multi-threadé tout les programmes. Le gain sur un jeu est assez faible.
En fait, les quelques jeux optimisés SMP utilisent un CPU pour le rendu, et le deuxième pour des taches annexes, genre le son, l'IA et le moteur physique. Donc par exemple, sur UT 2004, on a un gain de 20/30% en activant le SMP (sur Mac, sur PC, je sais pas)
En fait, le truc qui marchent bien, mais demande un optimisation préalable, c'est les jeux d'instructions type SIMD (Altivec, SSE, SSE2). Bien utilisé, on a des gains appréciables sur pas mal d'applications.
Par exemple, sur Mac OS X (je me réfere au Mac parce que l'OS est récent, et bien optimisé SIMD/SMP) on a plus de gains en utilisant un G4 a la place d'un G3 de même fréquence que en passant de 1 a 2 G4.
toujours en me référant aux macs, il suffit de regarder ce qui c'est passé :
G4 :
on a un processeur efficace (pipeline court), on a des caches a mort (1Mo L2 et 2Mo L3 dans certains modèles), on a du Multicore (enfin du SMP normale, mais conceptuellement, c'est la même chose), on a aussi un jeu d'instructions SIMD tres performant.
Mais on a un bus lent (166SDR) et une fréquence assez basse (1500).
Conclusion, un G5, moins efficace a fréquence égale, avec moins de cache (seulement 512Ko L2), du SIMD moins performant (Altivec est moins efficace sur G5), met une claque au G4 parce que il va plus vite et a un bus tres rapide (1/2 CPU)
Finalement, pour ceux qui ont eu la patience de lire mon pavé, je pense que a part si on trouve une architecture qui travaille différemment (en vectoriel, ou tres efficae et tres rapide en même temps) la solution Intel avec le Netburst étaient le meilleur choix. Et je ne pense pas que le multi-core soit la revolution que on en fait, parce que les gains seront faibles, et que ca demande bcp de travail en plus au programmeur pour que ce soit efficace.