2011-03-14 6 views
2

Récemment, je lisais du matériel sur le cache du processeur. Je me demande comment le cpu recherche le cache L1 et L2 et dans quel format les données du cache cpu sont-elles stockées?Comment rechercher le cache L1 et L2?

Je pense qu'un balayage linéaire de la mémoire cache serait inefficace, existe-t-il de meilleures solutions?

Merci.

Répondre

2

Il utilise les bits d'index et les étiquettes extraites de l'adresse, il est à la recherche.

dites que vous accédez à quelque 32 bits adresse ADDR

ADDR a le bit: 31 -------------------------- 0 , [------ tag | index | offset]

Ensuite, en fonction de la taille de votre cache: Disons que vous disposez d'un cache 32K, Direct Mapped avec 32 octets par bloc.

Offset bits sont utilisés pour trouver les données dans chaque ligne, car 8 octets est une taille minimum de données à être introduits dans le cache (bien que vous obtenez toujours les 32bytes plein, mais dans les 32bytes vous aurez vos données.)

Cela représente un cache avec 1024 lignes ou ensembles, à nouveau chaque ligne avec 32 octets. Afin d'indexer les 1024 ensembles, vous avez besoin de 10 bits. Ainsi, les 10 bits de votre adresse sont utilisés comme index dans le cache. Les bits de décalage sont utilisés pour voir où se trouvent les données à l'intérieur de cette ligne, et les bits de balise sont utilisés pour correspondre à l'adresse que vous cherchez car deux ou plusieurs adresses seront mappées dans la même ligne du cache. Cela a du sens?

Questions connexes