Pentium III-S et Celeron Tualatin
By Franck
Sommaire:

Pentium III-S : Le Test

Le Pentium III-S a la particularité de posséder 512Ko de cache L2 sur la puce. Ce n'est pas le premier processeur à inclure une telle quantité de cache en full-speed, car ce fut déjà le cas pour certaines versions de Pentium Pro ainsi que pour le Pentium III Xeon. En revanche, c'est la première fois qu'une telle quantité de cache bénéficie de la technologie ATC.




Pentium !!! Coppermine


Pentium !!!-S Tualatin

 

En théorie, quels sont les avantages d'un cache deux fois plus gros ? Cela signifie tout d'abord deux fois plus de données présentes dans le cache, et donc un taux de réussite plus important. Cette inflation de cache est d'autant plus appréciable qu'elle est accompagnée du mécanisme automatique de préchargement des données.
Mais un cache plus gros signifie également deux fois plus de cache à gérer. Plusieurs choix sont alors envisageables :

  • Augmenter l'associativité du cache, donc dans ce cas passer d'un cache associatif à 8 voies vers un cache à 16 voies, découpant ainsi les 512Ko en 16 blocs de 32Ko. L'inflation du nombre de voies a pour avantage de diminuer les conflits entre deux zones mémoire mappées dans le cache, et au final d'augmenter le taux de succès. Mais ajouter des voies augmente également le temps de recherche, car il faut alors parcourir 16 blocs au lieu de 8.


  • Augmenter la taille des lignes de cache. Ceci permet évidemment de mettre en cache deux fois plus de données, mais multiplie également par deux le temps de chargement d'une ligne. Qui plus est, le bus du L2 étant de 256 bits, soit 32 octets, une ligne d'une taille supérieure à 32 octets nécessiterait plus d'un cycle pour être transférée (c'est pourtant le choix adopté sur le Pentium 4, qui possède des lignes de 64 octets).


  • Augmenter la taille des blocs. C'est en fait la solution retenue pour le PIII-S. Le cache est découpé en 8 blocs de 64Ko, chaque bloc comportant ainsi 2048 lignes. En comparaison, le Coppermine possède 8 blocs de 32Ko, soit 1024 lignes par blocs. Quelles sont les répercussions de ce choix ? Tout d'abord, d'une façon générale le temps d'accès à un bloc augmente avec sa taille, nous pouvons donc nous attendre à un temps d'accès au L2 légèrement plus élevé sur le PIII-S que sur le Coppermine. En revanche, plus de lignes signifie moins de conflits dans chaque bloc, donc un taux de succès du cache plus important.

Vérifions cela sur les courbes de débit et de latence.

  • Les débits mémoires

Nous avons comparé les débits mémoire entre le Pentium III-S 1,13GHz et le Céléron Tualatin 1,2GHz.

 

 
Céléron Tualatin 1,2 GHz
Pentium III-S 1,13 GHz
Débit L1 (pic)
9360 Mo/s
8920 Mo/s
Débit L2 (moyen)
5280 Mo/s
4550 Mo/s
Débit mémoire (moyen)
785 Mo/s
911 Mo/s

Le débit maximum théorique est de 9064Mo/s pour le PIII-S (8x1133), pour une valeur lue de 8920Mo/s. Une fois de plus, on mesure ici les performances élevées du cache L1 en lecture. Le débit mémoire théorique est de 133x8 = 1066MHz, pour une value lue de 911Mo/s.

Les 512Ko de L2 du Pentium III-S apparaissent nettement sur la courbe. Nous remarquons également que la décroissance après le L2 est beaucoup moins nette que dans le cas du Céléron, pour lequel la décroissance s'effectue sur 32Ko passée la barrière des 256Ko. Le Pentium III-S possède quant à lui une décroissance beaucoup plus étendue, qui traduit un taux d'échec moins important une fois passée la taille du L2. Nous pouvons donner deux explications (complémentaires) à ce phénomène :

  • les blocs de taille plus importante diminuent les conflits et donc le taux d'échec du cache.

  • Le Data Prefetch Logic, dont l'effet tend également à faire diminuer le taux d'échec du cache.

Pour vérifier cela, nous avons regardé l'effet de l'ajout d'un prefetch logiciel sur la courbe d'un Pentium III Coppermine. Ainsi, pour chaque copie de blocs de 64 octets, nous avons ajouté deux instructions prefetcht1 (prefetch dans le cache L2 uniquement, afin de conserver le principe du prefetch hardware) afin de monter le bloc suivant depuis la mémoire centrale. Voyons ce que l'on obtient alors :

 

Les débits du L1 et du L2 diminuent fortement, ce qui est normal, car la mesure prend également en compte les instructions de prefetch qui s'ajoutent aux instructions de copie. En revanche, il est intéressant de noter la différence de la pente de décroissance passés les 256Ko. La courbe sans prefetch décroît pour atteindre le pallier de la mémoire en 32Ko. La courbe avec prefetch quant à elle décroît sur 64Ko, passant même au dessus de la courbe d'origine entre 272Ko et 320Ko. On obtient donc sur la courbe avec prefetch le même effet que celui observé sur le Pentium III-S.
Ainsi, il semble bien que ce soit le prefetch (logiciel ou hardware) qui tende à augmenter le débit mémoire dans une zone située après le cache L2.La décroissance est encore plus lente sur le Pentium III-S, ce qui s'explique par la taille des blocs qui tendent encore à diminuer le taux d'échecs après le cap du L2.

On note cependant que cet effet n'est pas visible sur le Céléron Tualatin. Comme le montre sa courbe de débit, il se comporte comme un Pentium III Coppermine sans prefetch hardware, décroissant en 32Ko.
Pourquoi ? Plusieurs raisons sont envisageables :

  • Le FSB à 100MHz du Céléron est trop faible pour permettre au mécanisme de DPL de se déclencher. En effet, comme nous l'avons évoqué plus haut, le DPL utilise une partie de la bande passante mémoire, et son effet est d'autant plus remarquable que cette bande passante est élevée


  • Le cache L2 du Céléron a des blocs deux fois plus petits que ceux du Pentium III-S, et les blocs de grande taille du Pentium III-S sont une des raisons de la décroissance particulière de sa courbe, et ce en plus du DPL.

Une troisième raison pourrait être que le mécanisme de prefetch hardware est désactivé sur le Céléron Tualatin. Nous avons essayé d'en savoir plus à partir de la datasheet Intel sur le Céléron Tualatin (disponible ici), et à notre grande surprise, le Data Prefetch Logic n'est pas du tout mentionné, alors qu'il l'est dans les datasheets du Pentium III Tualatin (ici) et du Pentium III-S (ici).

Tout ceci est très intrigant ! Cependant nous nous garderons de conclure hâtivement, et essaierons d'en savoir plus à ce sujet.

  • Les temps de latence

Nous avons mesuré les temps de latence en lecture du Pentium III-S et les avons comparés à ceux du Pentium III Coppermine.


Le cache L2 du PIII-S a un temps de latence moyen en de 8 cycles, contre 7 pour le Coppermine. Il s'agit là encore un effet de l'augmentation de la taille des blocs (mais négatif celui-ci). En effet, comme nous l'avons évoqué plus haut, le temps d'accès à un bloc augmente avec sa taille, et l'effet est une augmentation générale du temps d'accès au cache.

 

 

Suite ( Comparatif : Tualatin VS Coppermine )

Fermer