Pentium 4 : Voyage au cur du CPU | ||||||||||||||||||||||||||||||||||
By Franck | ||||||||||||||||||||||||||||||||||
Les Mémoires caches - Le cache L2
Le rôle du cache L2 du Pentium 4 est particulièrement critique. A la
différence des autres processeurs, le L2 du Pentium 4 n'est pas une simple
extension du L1, mais les deux caches jouent un rôle complémentaire, car
comme nous l'avons vu, le cache L1 s'appuie énormément sur le L2.
Le cache L2 du Pentium 4 utilise la technologie ATC (Advanced Transfer Cache), utilisée sur les Pentium !!! Coppermine et Tualatin. Cela signifie qu'il est intégré au noyau et fonctionne à la vitesse du processeur, et que le bus d'échange est large de 256 bits. Le L2 est accessible tous les 2 cycles, et le constructeur annonce une latence de 7 cycles, à comparer avec les 4 cycles du Pentium !!! et les 5 cycles du Pentium !!!-S. Le cache L2 du Pentium 4 est de type inclusif, tout comme il l'était sur le Pentium !!!. Dans ce mode de fonctionnement, en cas d'échec en lecture sur le cache L1, une ligne de cache du L2 est dupliquée vers le cache L1 (si bien sûr la donnée recherchée est présente dans le L2). Il en résulte que certaines lignes du L2 sont redondantes avec les lignes du L1. Ainsi, la taille du cache L2 « efficace » (c'est-à-dire susceptible de répondre à un échec du L1) est tronquée du nombre de lignes dupliquées dans le L1, soit dans le pire des cas la taille totale du L1. Il en découle que plus le L1 est grand, moins le L2 est efficace. Et cela tombe bien, le L1 du Pentium 4 n'est que de 8Ko. L'alternative à cette méthode
est la gestion exclusive, utilisée par AMD sur sa gamme à cache intégré
(Athlon et Duron). Dans ce mode, en cas d'échec en lecture sur le cache
L1, une nouvelle ligne de cache est chargée, et la ligne ainsi remplacée
est copiée dans le L2. Le L2 ne contient alors que des données évincées
du L1. Ainsi, aucune donnée n'est redondante, et la taille de cache effective
est alors égale à la somme des L1 et L2. Le L2 du Pentium 4 utilise des lignes de cache de 128 octets, soit quatre fois plus longues que sur Pentium !!!. Ces lignes de cache sont « sectorisées », c'est-à-dire qu'elles sont composées de deux secteurs de 64 octets chacun. Cela permet en fait de moduler le comportement du cache. En effet, en cas de mise en cache depuis la mémoire centrale, ce sont des blocs de 128 octets qui sont remontés, et ce afin de limiter les accès au bus mémoire. Cependant, comme on l'a vu dans le paragraphe précédent, le cache L1 utilise des lignes de 64 octets, et donc les échanges entre les deux caches ne peuvent s'effectuer que par paquets de 64 octets. Les conséquences de lignes de cache plus longues sont les mêmes que celles expliquées dans le paragraphe précédent sur le cache L1, à savoir des accès moins fréquents à la mémoire, mais également un cache davantage pollué par des données inutiles, et surtout un taux d'échecs plus élevé. Ces effets indésirables sont d'autant plus marqués que le cache L2 et de taille faible, et à ce titre le Pentium 4 Willamette fait figure de lanterne rouge. Mais Intel pense à tout :) et afin de réduire le taux d'échec, le Pentium 4 possède un mécanisme repris plus tard sur la gamme Tualatin : le prefetching hardware. - Le prefetching Le prefetching consiste à anticiper les données et les instructions dont le processeur aura besoin, et ainsi les précharger depuis la hiérarchie mémoire (le L2 ou la mémoire centrale). Le Pentium 4 possède trois mécanismes de prefetching :
|
||||||||||||||||||||||||||||||||||
Close |