
Depuis de nombreuses années, Le CPU (Central Processing Unit, ou microprocesseur) fait l'objet d'une course à la performance, mettant en scène des concurrents qui se livrent à une lutte toujours plus acharnée pour l'obtention de la première place dans les benchmarks. Dans cette optique, les différents constructeurs adoptent souvent des approches différentes, parfois même divergentes. Par contre il reste une donnée constante : pour une architecture donnée, la voie principale permettant d'améliorer les performances est l'augmentation de la fréquence. Malheureusement, cette méthode a plusieurs inconvénients. Premièrement, elle est de plus en plus difficilement applicable car l'augmentation de la fréquence n'est pas proportionnelle à l'évolution des procédés de fabrication. Deuxièmement, ladite évolution devient difficile et coûte cher. Enfin troisièmement, la consommation de courant - donc la dissipation thermique - augmente bien plus vite que la fréquence pour une finesse de gravure donnée. En d'autres termes, les processeurs évoluent moins vite et ont tendance à chauffer de plus en plus.
Lors de l'Intel Developer Forum (IDF), ce sont des solutions envisageables pour lutter contre ce problème qui ont été évoquées. Pour rappel, l'IDF est un évènement semestriel majeur durant lequel le leader mondial des microprocesseurs expose toutes ses nouveautés, ses projets, et fait la démonstration de ses produits phares. C'est ainsi que le fondeur de Santa Clara a offert à la vue des participants un serveur équipé de quatre Itanium "Montecito" bi-core, chacun doté d'une fonction similaire à l'HyperThreading, appelée "Coarse-Grained Multi-Threading (CMT)". Quatre CPU bi-core et CMT, cela équivaut à seize processeurs logiques, et c'est ce qu'affichait le système d'exploitation utilisé : Windows 2003 Server. Mais Intel ne s'est pas arrêté là, et a également fait la démonstration d'un Xeon bi-core et doté de l'HyperThreading : le "Smithfield"; tout en annonçant la sortie prochaine du "Yonah", une version bi-core de l'actuel "Dothan", le core qui équipe les Pentium-M.
La messe est donc dite : l'heure du multi-core est venue. Vous en avez certainement déjà entendu parler étant donné que tous les sites de hardware y vont de leur news à chaque fois qu'un constructeur fait une annonce sur le sujet. Nombre d'entre vous se retrouvent certainement un peu perdus dans ce qui semble être l'avenir de l'industrie des microprocesseurs. Cet article a donc pour but de vous éclairer sur ce phénomène qui débarque à grand fracas dans l'univers de l'informatique, que ce soit pour le monde du x86 ou pour le reste. Nous allons donc nous intéresser aux choix techniques d'Intel et d'AMD, tout en analysant les possibilités de l'utilisation de processeurs multi-core et multi-threading, un principe intéressant dont nous étudieront les variantes. Parallèlement, nous aborderons les perspectives de l'utilisation combinée de ces techniques dans des processeurs spécialement conçus pour faire du multi-threading massif, tels que le "Niagara" de Sun, un cas tout à fait spécial et particulièrement intéressant... Avant d'aller plus loin cependant, rappellons quelques notions essentielles :
Qu'est-ce qu'un thread ?
Littéralement, un thread est un fil. En fait, à tout programme est associé un processus, ou plusieurs, et tout processus comprend au moins un thread. Il s'agit donc de la plus petite division d'un programme. Et c'est ce "fil" que suit un CPU lors de l'exécution d'un programme.
Qu'est-ce qu'un cycle ?
Un cycle peut se comparer à une "impulsion". C'est un "top" d'horloge, soit le laps de temps pendant lequel un processeur exécutera une action simple ou durant lequel une instruction subira une opération dans une unité de calcul. Le nombre de cycles par seconde correspond en fait à la fréquence, il est donc de trois milliards pour un CPU cadencé à 3 GHz.