cache L2 : adresses réelles ou virtuelles ?

cache L2 : adresses réelles ou virtuelles ? - Carte mère - Hardware

Marsh Posté le 21-06-2003 à 18:02:56    

Les données qui sont dans le cache L2 (et puis dans le L1, aussi :D ), elles sont identifiées par leur adresse réelle ou leur adresse virtuelle :??:  
 
A priori, ca parait bête comme question, mais en fait j'en sais absolument rien. Vous avez une idée ?

Reply

Marsh Posté le 21-06-2003 à 18:02:56   

Reply

Marsh Posté le 21-06-2003 à 18:20:30    

D'apres mes souvenir, le L1 d'un PIV est de 8ko et est du type 4-way set associative donc c'est pour moi une adresse virtuelle.
 
Ca reste a confirmé, je suis pas sur du tout.  :whistle:

Reply

Marsh Posté le 21-06-2003 à 18:23:55    

noelemac a écrit :

D'apres mes souvenir, le L1 d'un PIV est de 8ko et est du type 4-way set associative donc c'est pour moi une adresse virtuelle.
 
Ca reste a confirmé, je suis pas sur du tout.  :whistle:  

Je vois pas comment tu en déduis qu'il s'agit d'adresses virtuelles :??:  

Reply

Marsh Posté le 21-06-2003 à 18:43:33    

mrBebert a écrit :

Je vois pas comment tu en déduis qu'il s'agit d'adresses virtuelles :??:  


 
Et bien pour moi, un processeur ne sait pas que le cache existe, il croit s'adresser directement a la ram du PC. Mais en faite, il s'adresse en premier au cache et si la donnée n'est pas dans le cache, c'est la donnée de la ram qui est transmise.
 
Comme a chaque adresse RAM il doit exister une adresse dans le cache et que le cache est bcp plus petit que la ram, l'adresse est pour moi forcement virtuel.
 
Par exemple (bidon), si la ram est composé d'adresse allant de 1 a 100, si le cache est 10 fois plus petit, il aura des adresses allant de 1 a 10.  
Comment faire si le processeur demande l'adresse 27 ? et bien on fait 27 modulo 10 = 7  et on va voire a l'adresse 7 du cache. On compare le tag et si c'est le meme, on sait que la donnée dans le cache est bonne, pas besoins d'aller dans la ram.
 
Ca c'est le principe de la correspondance directe, avec la méthode K-way set associative mapping, le principe est différent mais il reste le meme pb, le cache est plus petit que la ram, donc il faut bien pouvoir trouver une correspondance entre chaque adresse RAM et adresse du Cache.

Reply

Marsh Posté le 21-06-2003 à 18:46:25    

apres tout dépend de la def que l'on a de "virtuel", c'est vague.
 
Mais je peut aussi me trompé, je suis pas sur, c'est pas une question courante  ;)

Reply

Marsh Posté le 21-06-2003 à 18:49:50    

Je parle pas de l'adresse dans le cache (ca existe cette notion :??: ), mais de l'adresse en RAM de la donnée cachée.
Dans ton exemple, quand il cherche la donnée à l'adresse 27 et qu'il va voir dans le cache, il faut qu'il sache si la donnée qui s'y trouve est bien celle de l'adresse 27 et pas celle de l'adresse 17 ou 37. Donc le cache doit garder non seulement la donnée mais aussi son adresse.
Son adresse réelle ou virtuelle ? [:figti]

Reply

Marsh Posté le 21-06-2003 à 18:53:04    

noelemac a écrit :

apres tout dépend de la def que l'on a de "virtuel", c'est vague.
 
Mais je peut aussi me trompé, je suis pas sur, c'est pas une question courante  ;)  

virtuel dans le sens "mémoire virtuelle" :D  
C'est à dire la gestion de la mémoire où chaque processus a son propre espace d'adresses, et où le proc (avec sa TLB) doit convertir ces adresses en adresses physiques.

Reply

Marsh Posté le 21-06-2003 à 18:58:50    

mrBebert a écrit :

Je parle pas de l'adresse dans le cache (ca existe cette notion :??: ), mais de l'adresse en RAM de la donnée cachée.
Dans ton exemple, quand il cherche la donnée à l'adresse 27 et qu'il va voir dans le cache, il faut qu'il sache si la donnée qui s'y trouve est bien celle de l'adresse 27 et pas celle de l'adresse 17 ou 37. Donc le cache doit garder non seulement la donnée mais aussi son adresse.
Son adresse réelle ou virtuelle ? [:figti]  


 
Le cache est composé de la donnée (heureusement ;-) ) et d'un tag. Ce tag sert a savoir si la donnée dans le cache est bien la donnée que le processeur cherche.  
 
exemple:
 


RAM                           cache
adress    donnée              tag   donnée     ligne
00 0000   13579245            00    13579245   0000
00 0001   AFE41FFF            01    FEA16354   0001
..................
01 0000   77777777
01 0001   ........
ect...
 


 
Pour aller chercher la donnée a l'adresse 00 0000 il va a la ligne 0000 du cache et regarde si le tag vaut 00. si oui, la donnée est ok.
Pour aller chercher la donnée a l'adresse 01 0000 il va a la ligne 0000 du cache et regarde si le tag vaut 01. ici non donc ce n'est pas la bonne donnée.

Reply

Marsh Posté le 21-06-2003 à 19:12:54    

Oui, d'accord. Il n'y a pas l'adresse entière dans le cache.
Une partie de l'adresse sert à choisir la ligne, l'autre partie constituant ce que tu appelles le tag.

Reply

Marsh Posté le 21-06-2003 à 19:22:27    

mrBebert a écrit :

Oui, d'accord. Il n'y a pas l'adresse entière dans le cache.
Une partie de l'adresse sert à choisir la ligne, l'autre partie constituant ce que tu appelles le tag.


 
Oui voila,  c'est en gros le principe.
 
Apres, pour le cache du PIV L1, il y a sur 1 ligne, 4 données. C'est un 4-way set associative. Pour trouver une donnée il faut:
- le numéro de la ligne
- le numéro du bloc (l'un des 4 bloc)
- le numéro de la donnée dans le bloc.
 
J'ai tout un cours la dessus mais c'est sur papier. Tu le trouvera peut etre sur le site ici:
 
http://www.lifl.fr/~meftali/
 
http://www.lifl.fr/~meftali/TDMIAS2/td6.pdf

Reply

Marsh Posté le 21-06-2003 à 19:22:27   

Reply

Marsh Posté le 21-06-2003 à 21:51:56    

Non, y a pas ce que cherche. Ca parle bien de mémoire paginée, avec les adresses manipulées par le programme différentes de celles où sont physiquement stockées les informations, mais rien sur ce qu'il y a dans les caches [:proy]

Reply

Marsh Posté le 21-06-2003 à 22:07:12    

mrBebert a écrit :

Non, y a pas ce que cherche. Ca parle bien de mémoire paginée, avec les adresses manipulées par le programme différentes de celles où sont physiquement stockées les informations, mais rien sur ce qu'il y a dans les caches [:proy]  


 
j'ai bien des cours mais ils font une trentaine de page, a scanné j'eb ai pour un moment, sans parler de la taille...

Reply

Marsh Posté le 21-06-2003 à 23:21:11    

T'embête pas à tout scanner ;)  
J'essaierais de faire des recherches demain.
 
J'en viens quand même à penser qu'il s'agit d'adresses réelles. A vérifier [:figti]


Message édité par mrbebert le 21-06-2003 à 23:21:46
Reply

Marsh Posté le 21-06-2003 à 23:36:59    

au faite, pk cette question ? elle est assez etrange non ?
 
Je pense que sur l'architecture des ordinateurs, des questions de cette ordre y'en a des centaines.  
 
comment marche un cache avec correspondance directe,
comment marche un cache en correspondance associative,  
comment marche un cache en correspondance associative avec ensemble de bloc,  
comment marche un algorithme de remplacement LRU (Least Recently Used), LFU (Least Frequently Used), FIFO, Random,  
a quoi sert la pagination, la segmentation. etc...  :pt1cable:  
 
Y'a certainement des livres de références la dessus qui t'apporterons toutes ces réponses.

Reply

Marsh Posté le 22-06-2003 à 00:08:37    

Oui, au moins quelques centaines, mais il faut bien en prendre une pour commencer :D  
 
Disons que je m'intéresse un peu (à mon modeste niveau de connaissances et de compréhension :sweat: ) au fonctionnement des processeurs, et cette question m'est subitement venue à l'esprit :)  
Et je ne me rappelle pas avoir vu quelque part cette info [:proy]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed