L'Intel Core Duo débarque sur Desktop

Publié le 05/04/2006 par
Imprimer
Un SSE amélioré
Au delà du dual core, l’architecture du Core Duo, nom de code Yonah, se caractérise par un ensemble d’améliorations regroupées sous la dénomination marketing de « Digital Media Boost ».

Première caractéristique, la fonctionnalité de fusion des micros opérations introduite avec le Pentium M est maintenant étendues aux instructions de type SSE. Dans le cadre d’un processeur fonctionnant en Out-Of-Order, les macro instructions x86 sont décomposées en opérations basiques appelées micro-opérations. Toutefois cette décomposition a aussi des défauts, puisque la pression sur des étapes à bande passante limitée (rename, retire) ou à capacité limitée (reorder-buffer ou reservation-station) est accrue.


Afin de limiter cette pression tout en bénéficiant de l’exécution O-O-O, Intel gère certaines micro-opérations comme une seule micro-op fusionnée qui sera traitée comme telle par toute une partie du pipeline, l’exécution à proprement parler s’effectuant toujours de manière non fusionnée. Selon Intel, ceci permet de réduire de 10% le nombre de micro opérations traitées, et en pratique le gain typique serait de 5% pour les calculs d’entiers et 9% pour les calculs flottants.

Désormais donc, les opérations SSE de type load-and-op (chargement d’une donnée depuis la mémoire puis calcul sur cette donnée) peuvent bénéficier des avantages induits par la Fusion sur le Yonah. De plus, le décodage des instructions SSE est accéléré puisque les trois canaux de décodage d’instructions du Yonah sont capables de décoder les instructions SSE, contre un seul auparavant.

Il ne s’agit pas de la seule amélioration côté SSE puisque Intel a également intégré au sein du Yonah les dernières instructions SSE3. Plus exactement, 10 des 13 instructions du SSE3 sont intégrées :

- 3 instructions SIMD 128 bits pour la duplication de données (movsldup, movshdup, movddup)
- 1 instruction SIMD 128 bits pour le chargement de données non alignées (lddqu)
- 2 instructions SIMD 128 bits pour l’addition en calcul vertical (addsubps, addsubpd)
- 4 instructions SIMD 128 bits pour l’addition / soustraction en calcul horizontal (haddps, hsubps, haddpd, hsubpd)

Ainsi, le Yonah ne supporte pas l’instruction x87 fisttp destinée à la conversion de flottants en entiers ni les instructions monitor et mwait destinées à la synchronisation des thread en HyperThreading : rien de dramatique d’autant que le Yonah comme le Pentium M ne sont pas dotés de l’HyperThreading, une technologie peu bénéfique sur ce type d’architecture à pipeline court.
D’autres améliorations
Le SSE n’est pas le seul point qui a été amélioré sur le Core Duo puisque les performances de l’instruction IDIV (division entière signée) l’ont également été, cette amélioration variant en fonction des magnitudes de nombres impliqués dans l’opération : on peut par exemple passer de 12 cycles sur Dothan à 4 sur Yonah, ou de 20 à 12, dans les cas ou les améliorations sont les plus importantes, soit un gain très appréciable pour ce type d’opération. Les instructions SSE2 de type shuffle et unpack (SHUFPD, UNPCKHPD ou UNPCKLPD) sont également 30% plus rapides.

On finira sur ce sujet en notant que le Core Duo n’intègre pas l’EM64T, qui étends au 64 bits le jeu d’instructions x86. Toutefois, les gains offerts par les applications EM64T/AMD64 étant encore limités par rapport aux versions classiques, cette absence n’est pas dès plus dramatique : mieux vaut un dual core 32 bits qu’un mono core 64 bits ...
Vos réactions

Top articles