Memoria cache: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
Etichette: Modifica da mobile Modifica da web per mobile
Riga 47:
=== Cache Direct Mapped ===
[[File:Direct Mapped Cache.svg|thumb|right|upright=2.1|Direct Mapped Cache]]
Nella cache Direct Mapped - Mappata Direttamente ogni blocco di memoria può essere memorizzato in una sola entry di cache. La entry (cioè la mamma di pellet) dove memorizzare il blocco è ''direttamente derivata'' dall'indirizzo di memoria (da cui il nome "Direct-Mapped" - mappata direttamente).
[[File:Cache Addressing.svg|thumb|left|upright=1.2|Cache addressing]]
La dimensione della cache è più piccola della MM, perciò l'indirizzo di memoria deve essere ridotto per adattarsi allo spazio di cache. Tutti i dati di memoria devono poter essere memorizzati in uno spazio più piccolo, ma ovviamente non tutti contemporaneamente. Molti algoritmi, chiamati ''[[:en:hash function|hash coding]]'' (o hashing), sono usati per far questo. La soluzione comune<ref>Un altro possibile algoritmo di codifica hash (''[[hash coding]]''), però usato qualche volta solo per il [[Translation Lookaside Buffer|TLB]], è il "''bit [[XORing]] "'' dell'indirizzo. La riduzione dell'indirizzo è ottenuta facendo un [[Disgiunzione esclusiva|XOR]] (exclusive OR - OR esclusivo) tra coppie di bit. Questo metodo genera un indirizzamento pseudo-casuale.</ref> per ottenere l'indirizzo di cache è di usare direttamente una parte dell'indirizzo di memoria, e precisamente il campo chiamato '''Index''' (indice), cioè, escludendo l''''[[offset]]''', i bit meno significativi dell'indirizzo ([[Bit meno significativo|Least significant bit]] - LSB), vedi fig. ''Cache addressing''. L''''[[offset]]''' (offset della linea) è invece il campo dell'indirizzo usato per l'indirizzamento interno della linea di cache a livello di byte. Per esempio avendo un indirizzamento di memoria a 32 bit (4 GB di spazio), e una dimensione di cache di 4 MB con una linea di cache di 256 B, i bit meno significativi (8-21), l'''Index'', sono usati per selezionare l'indirizzo della linea di cache. Questa soluzione di indirizzamento lineare, nella [[:en:Paging|Demand-Paging Virtual memory]] ([[Memoria virtuale]]), (vedi anche sotto [[#Indirizzamento virtuale, fisico e pseudo virtuale|Indirizzamento Virtuale]]), permette la memorizzazione di una pagina completa di memoria ([[:en:Page|Memory page]]) nella cache.