|
Comment ça marche : les processeurs dual
core En
intégrant deux coeurs au lieu d'un dans leurs processeurs, AMD et Intel
contournent les limites des puces traditionnelles. A la clé, une puissance de
calcul plus élevée et un fonctionnement plus fluide des
logiciels.
Stanislas
Odinot , L'Ordinateur Individuel,
le
20/07/2005 à 07h00
Ils arrivent ! Dès cet été, certains PC de bureau seront
équipés de processeurs « dual core » (double coeur, en français) tels que
l'Athlon 64 X2 d'AMD et le Pentium D d'Intel. Les portables leur emboîteront le
pas quelques mois après. Intel et AMD en sont convaincus : d'ici à deux ans,
tous les ordinateurs seront dotés de ce nouveau type de puce. Pour quels
bénéfices ? Augmenter la puissance de calcul et, surtout, faire fonctionner de
manière plus « fluide » plusieurs logiciels en même temps.
Dérivé de celui des ordinateurs à deux processeurs
(biprocesseurs), utilisé depuis longtemps, le principe du double coeur est très
simple : il consiste à faire tenir l'équivalent de deux processeurs dans un même
circuit intégré (une seule puce, donc). Pour prendre une image, c'est un peu
comme si l'on doublait les unités de travail dans une fabrique. Un processeur
peut en effet être considéré comme une sorte d'usine. De l'extérieur, on ne voit
qu'un bâtiment auquel aboutissent différentes voies de communication ; dans le
cas d'un processeur, c'est le boîtier « à pattes » que l'on insère dans son
support, sur la carte mère, et qui échange des informations avec les autres
composants (mémoire, circuit graphique, etc.) via différents « bus »
(équivalents à des « fils électriques »).
Traiter plus de données simultanément
Comme dans une usine abritant des unités de montage avec
des machines outils et des salles de stockage temporaire, le boîtier du
processeur contient un ensemble complexe d'unités de calcul et de mémoires
composées de minitransistors - plusieurs millions dans les modèles actuels -
intégrés dans un pavé de silicium de seulement quelques millimètres carrés.
C'est précisément cette partie « productive » que l'on appelle le coeur.
L'intérêt du dual core est évident : en utilisant deux coeurs au lieu d'un, un processeur
peut traiter plus de données simultanément.
Pourquoi procéder ainsi ? Parce que le modèle à simple
coeur utilisé sur les processeurs classiques a atteint ses limites. Jusqu'alors,
les concepteurs de processeurs augmentaient la puissance de calcul de leurs
puces en les faisant travailler à une fréquence plus élevée (des mégahertz puis
des gigahertz), comme quand on augmente la cadence de travail dans une usine.
L'ennui, c'est qu'en faisant grimper la fréquence, on augmente aussi la chaleur
dissipée par le circuit intégré (chaque transistor consommant et dégageant une
certaine quantité d'énergie à chaque cycle d'horloge), ce qui engendre des
problèmes de refroidissement. D'où l'idée d'arrêter la course à la fréquence et
de doubler les coeurs des processeurs.
Un gain en puissance qui n'est pas toujours garanti
A priori, on pourrait penser qu'en procédant ainsi on
double la puissance de calcul. La réalité est plus nuancée. Car pour profiter
pleinement de deux coeurs, comme de deux processeurs ou de deux chaînes de
production dans une usine, il faut leur donner du grain à moudre, en leur
faisant partager des tâches ou en les faisant travailler en parallèle. Or, la
plupart des logiciels actuels ne sont pas conçus pour exploiter deux processeurs
ou deux coeurs : ils travaillent principalement de façon « séquentielle », en
enchaînant des tâches élémentaires (des threads, ou « processus légers »
dans le jargon informatique) qui ne peuvent pas être traitées indépendamment les
unes des autres et donc pas réparties entre deux unités de calcul. Les logiciels
de ce type ne tirent pas vraiment parti des processeurs dual core puisqu'ils n'utilisent
qu'un seul coeur... tant qu'ils fonctionnent seuls.
Tout change en effet quand on fait tourner simultanément
plusieurs logiciels, comme on le fait lorsqu'on utilise en même temps un
navigateur Web, un traitement de texte, un lecteur audio et un programme de
décompression de données, par exemple, avec un système d'exploitation multitâche
comme Windows, Mac OS ou Linux. Dans ce genre de situation - très fréquente
aujourd'hui -, un processeur classique (monocoeur, donc) donne l'illusion de
tout faire en même temps.
En réalité, chaque logiciel travaille en alternance, le
processeur basculant constamment d'un programme à un autre. Sous le contrôle du
système d'exploitation, qui gère les priorités des différents programmes, il
consacre ainsi de courtes périodes de temps à chaque tâche. Et c'est parce qu'il
fait tout cela très rapidement (plusieurs millions de fois par seconde) qu'on a
une impression de simultanéité. Toutefois, comme certaines tâches sont plus
gourmandes en calcul - ou d'une priorité plus élevée - que d'autres, le
processeur peut être très occupé ; voilà pourquoi l'ordinateur manque parfois de
réactivité quand on utilise plusieurs programmes simultanément.
Vers des processeurs à huit coeurs
Et c'est cet aspect que le dual core va sensiblement
améliorer, le système d'exploitation pouvant répartir les logiciels entre les
deux coeurs. Ainsi, quand on fait tourner deux programmes « classiques » en même
temps, chacun utilise un coeur comme s'il disposait d'un processeur entier pour
lui seul. Même au-delà de deux logiciels, on obtient un fonctionnement plus
fluide, le processeur n'étant pas complètement « bloqué » quand l'un de ses
coeurs est monopolisé par un calcul lourd. D'autres programmes peuvent cependant
tirer parti du dual core, même quand ils opèrent seuls : ce sont les logiciels dits
« multithreads », capables de lancer plusieurs tâches indépendantes en même
temps (des programmes multitâches, en quelque sorte). Dans ce cas, les
threads sont répartis
entre les deux coeurs du processeur, ce qui augmente la vitesse d'exécution
globale du logiciel. Ce sont ces programmes que l'on dit « optimisés pour
le dual core ».
Pour l'heure, les programmes multithreads sont encore peu
nombreux (il s'agit surtout de logiciels de traitement audio ou vidéo), mais ils
devraient se multiplier avec la généralisation des processeurs dual core dans les ordinateurs
grand public. En outre, l'apport du double coeur est déjà bien réel aujourd'hui
puisque les systèmes d'exploitation actuels sont eux-mêmes multithreads.
On le voit, le dual
core améliorera sensiblement les performances et
le confort d'utilisation des ordinateurs. Et ce n'est qu'un début : AMD et Intel
annoncent déjà des puces à quatre et même à huit coeurs pour 2007. Le multitâche
ne sera alors plus une illusion mais une réalité...
Hyper-threading : un faux dual core
En 2002, Intel avait déjà réalisé un premier pas en
direction du dual core avec l'hyper-threading
(souvent estampillé HT sur les processeurs), une technologie
dont ont bénéficié de nombreux Pentium 4. Le principe : doubler, non pas le
coeur complet d'un processeur, mais certaines de ses unités internes. En
simulant ainsi la présence d'un deuxième processeur (appelé processeur
« logique », par opposition à processeur physique), cette technique permet aux
logiciels de réaliser plusieurs tâches en parallèle.
Les programmes qui ont été adaptés pour profiter
de l'hyper-threading sont multithreads ; ils tirent donc naturellement parti des processeurs dual core. Intel a intégré sa
technologie hyper-threading sur certains de ses processeurs dual
core (comme le Pentium 4 Extreme Edition
840).
Mais face à cette configuration particulière, Windows XP,
qui gère alors quatre processeurs (deux logiques, ceux de l'hyper-threading, et deux
physiques, les coeurs), patine un peu : de nombreux tests ont montré que la
cohabitation de ces deux technologies ralentit même l'exécution de certains
logiciels... |

|