Next: Conclusion Up: Hiérarchie mémoire Previous: Caches de l'UltraSPARC

Caches du PentiumPro

Le PentiumPro intègre un cache d'instructions et un cache de données de 8 Koctets chacun, ce qui est petit pour un microprocesseur de cette génération mais il est à noter que le cache de données peut servir un load et un store par cycle. Le PentiumPro intègre dans le même boîtier un second niveau de cache très rapide chargé de compenser la faible capacité des caches primaires.

Cache primaire d'instructions

Le cache primaire d'instructions du PentiumPro a une taille de 8 Koctets (soit quatre fois moins que le MIPS R10000). Ce cache est associatif par ensemble à quatre voies. La taille d'une ligne de cache est de 32 octets. Il est virtuellement indexé et physiquement étiqueté.

Contrairement au cache d'instructions du Pentium, le cache du PentiumPro n'accède à chaque cycle qu'à une ligne de cache (au maximum 16 octets). Cette restriction, par rapport au Pentium, est compensée par les mécanismes d'exécution dans le désordre présents à d'autres étages du pipeline.

Le cache d'instructions fournit le résultat d'une lecture en deux cycles et demi, mais supporte un accès par cycle. Ce long délai est surprenant par rapport aux microprocesseurs de même génération (MIPS R10000 et UltraSPARC), mais ne représente finalement qu'un ratio normal par rapport à la profondeur totale du pipeline (1/5 de la profondeur du pipeline).

Cache primaire de données

Les performances du PentiumPro sont très dépendantes des performances de son cache de données, car un code xxx86 produit un nombre de références à la mémoire plus important que son équivalent sur un microprocesseur RISC (ceci essentiellement à cause du faible nombre de registres défini par le jeu d'instructions xxx86).

Le cache de données du PentiumPro a donc été conçu de manière à supporter trois accès par cycle : un accès en lecture (unité load), un accès en écriture (unité store) et un accès de mise à jour en provenance du cache secondaire. Ce cache est non-bloquant. Il est entrelacé sur quatre bancs (soit deux fois moins que le Pentium), est associatif par ensemble à deux voies et supporte des requêtes simultanées sur les bancs différents. Le cache est entièrement pipeliné. L'accès total au cache dure trois cycles : un cycle de génération d'adresse et deux cycles d'accès aux données proprement dit.

La taille du cache est seulement de 8 Koctets organisée en lignes de 32 octets. Cette faible taille peut s'expliquer par la complexité de mise en oeuvre du cache (trois accès par cycle et cache non-bloquant) mais impose la présence obligatoire d'un cache secondaire très performant.

Cache secondaire

Le PentiumPro atteint des fréquences d'horloge déjà très élevées (200 MHz). Sans un cache secondaire très performant, les performances d'un tel microprocesseur seraient pauvres. De telles fréquences ne peuvent être maitrisées sur une carte par la plupart des intégrateurs de PC. Un cache secondaire ayant une fréquence d'horloge de 66 MHz (couramment utilisée pour le Pentium) conduirait à des performances peu en rapport avec le potentiel du PentiumPro.

Intel a donc fait le choix technologique d'intégrer un cache secondaire avec le microprocesseur sur un composant séparé mais au sein d'un même boîtier (MCM).

Actuellement, le PentiumPro est commercialisé avec un cache secondaire de 256 Koctets, mais courant 1996, Intel commercialisera le PentiumPro avec un cache de 256 ou 512 Koctets. Les premières listes de prix annoncées par Intel donnent un facteur de 1,5 entre l'option 256 koctets et l'option 512 Koctets.

Le cache secondaire, associatif par ensemble à quatre voies, utilise la même taille de ligne (32 octets) que le cache primaire. Il est physiquement indexé et physiquement étiqueté. De plus, le cache secondaire du PentiumPro est aussi non-bloquant. Sa latence est de trois cycles, mais il accepte, à un cycle donné, un accès par cycle processeur. huit octets sont retournés, à chaque cycle, aux caches primaires. Il lui faut donc quatre cycles pour transférer une ligne entière de cache vers le cache primaire. À noter que le cache secondaire retourne toujours le mot demandé dans le premier transfert. Ceci réduit le temps d'attente du microprocesseur.

Il est à noter de plus que le PentiumPro est le premier microprocesseur de la famille Intel xxx86 à posséder à la fois un bus dédié au second niveau de cache (invisible de l'extérieur du MCM) et un bus système.



Next: Conclusion Up: Hiérarchie mémoire Previous: Caches de l'UltraSPARC


flloansi@IRISA.irisa.fr
Tue Jun 4 09:57:56 MET DST 1996