EX1: On considère une mémoire hiérarchique (centrale + cache) par :
- Taille de la mémoire = 1 giga mots de 16 bits (adressable par mots de 16 bits)
- Taille du cache= 1 méga mots de 16 bits (adressable par mots de 16 bits) - Des blocks de cache de taille 256 mots de 16 bits Pour les différentes structures du cache suivantes : a- Cache directe (direct mapped cache) b- Cache totalement associatif (fully associative cache) c- Cache associatif à 2 voies (2-way set-associative cache) d- Cache associatif à 4 voies (4-way set-associative cache) e- Cache associatif à 8 voies (8-way set-associative cache) Questions : Pour les 5 différentes structures du cache 1- Calculer les structures d’adresses dans le cache; 2- Calculer le nombre de blocks dans le cache ; 3- Calculer le nombre d’ensembles dans le cache
Solution : MC : Adresse= 30 bits (Mots à 2 Bytes (16 bits)
Block=256 mots ; offset=8 bits
Dans MC : nbre de blocks= 230/28= 222 = 4 Mega blocks dans MC
Dans Cache : 1 M mots : il y a 220/28= 212 = 4 Kilo blocks dans cache(12 bits adresse pour block dans cache)
a- Direct mapping : tag :10 bits index : 12 bits offset :8 bits
b- Fully associative : tag : 22 bits offset : 8 bits c- 2-way associative : nbre de sets= 212/2= 211 = 2K sets dans cache : tag :11 index :11 offset :8 d- 4-way associative : tag :12 index :10 offset :8 (1 K sets dans cache, set = 4 blocks) e- 8-way associative : tag :13 index :9 offset :8 (512 sets dans cache, set = 8 blocks) Exercice 2: Un cache possède une capacité de 64 KO, des lignes de 128 octets, et un degré d’associativité égal à 4. Le système qui contient le cache utilise des adresses de 32 bits.
1- Donnez le format d’adresses dans le cache.
2- Pour chacune des adresses ci-dessus, indiquez le numéro de l’ensemble (set) contenu dans le cache ; et celui de l’octet référencé dans la ligne du cache. Adresses : 0xABC89987 ; 32651987 ; 228945DB ; 48569CAC