[gull] Linux sur processeur Core Duo?

Daniel Cordey dc at mjt.ch
Mon Aug 14 13:09:09 CEST 2006


On Monday 14 August 2006 12:51, Marc Mongenet wrote:

> C'est du code x86 qui est chargé pour être mis dans les caches.

Je ne parlais que de la cache instruction (quand elle est separee de la cache 
data).

> - Mais, au moment de charger dans le cache d'instruction L1, un
>   petit pré-décodage peut être fait, et quelques méta-informations
>   conservées avec chaque instruction dans le cache, ce qui fait que
>   ce qui est stocké en cache d'instruction L1 a une largeur d'un
>   multiple un peu supérieur à 8.

Oui. mais c'est surtout a largeur du bus memeoire qui impose le nombre 
de "mots" charge en une seule fois dans la cache de plus haut niveau. En 
general, un bus de 128 bits va faire que l'on charge 4 instructions 32 bits a 
la fois. Maintenant, j'avoue ne pas avoir suivi les details des bus 
larges "256 bits" et leurs modes de gestion des multi-cores... Mais, ce 
seront tres certainement des multiples de 4 mots 32 bits ou plus; j'imagine.

> - Le Pentium 4 charge l'instruction x86, mais fait le décodage complet
>   pour sauver des µops dans le cache L1. Du coup le cache
>   d'instructions du Pentium 4 s'appelle un "trace cache" et si l'on
>   observe un boot Linux sur Pentium 4 on peut lire:
>   "CPU: Trace cache: 12K uops, L1 D cache: 8K"

Donc, la cache de niveau 1 Inst. est 50% plus grande que la cache data du meme 
niveau... Mais ce n'est pas la cache de niveau 1 qui est connectee 
directement au bus memoire. ET c'est de cette derniere dont je parle quand il 
s'agit des "load" groupes. Ce qui est fait entre les caches L1,L2 et L3 est 
naturellement interne au CPU. Meme si celui-ci est en fait un dual-core. Dans 
ce cas, on a une sorte de cache-bus entre les cores du chip. Ce bus a une 
largeur et un frequence differente de celle du bus memoire.

dc


> EPIC est une évolution du concept VLIW.

Oui.

dc



More information about the gull mailing list