Relazione tra la riga della cache e la pagina di memoria

8
  1. Se sono corretto, una pagina in una memoria principale è l'unità più piccola per i dati di trasferimento tra la memoria principale e un dispositivo di archiviazione esterno, come un disco rigido. Una linea cache di una memoria principale è l'unità più piccola per trasferire i dati tra la memoria principale e le cache della cpu.

  2. Mi chiedo se una dimensione della pagina è sempre o meglio essere un numero naturale di dimensioni della linea della cache? Se la dimensione della linea della cache è 64 byte e la dimensione della pagina della memoria è 4KB, ciascuna pagina contiene 4KB / 64 byte == 64 linee della cache.

  3. Una pagina e una linea della cache sono entrambi oggetti fissi in una memoria? O sono solo un blocco contiguo di una memoria di una certa dimensione, che può iniziare e fluttuare ovunque all'interno della memoria?

  4. È sempre che una linea della cache non può estendersi su più di una pagina, cioè parte di una linea della cache si trova in una pagina e l'altra parte della linea della cache si trova in un'altra pagina?

Grazie.

    
posta Tim 15.01.2015 - 15:47
fonte

1 risposta

6
  1. Una linea cache è l'unità più piccola a cui è possibile toccare la memoria fisica. Significato quando si legge / scrive 1 byte, una riga di cache completa che lo contiene viene letto nella cache della CPU e riscritto. Si noti che anche le istruzioni che ignorano la cache per scrivere (istruzioni di streaming effimere) scrivono nelle dimensioni delle linee della cache. A seconda della CPU, le dimensioni della linea cache sono in genere 32/64/128 byte. Quando le pagine di memoria sono scritte su disco, sono scritte interamente. Ciò si verifica quando la pressione della memoria è troppo alta o con processi di ibernazione (e probabilmente per altri usi). Verranno anche letti interi quando necessario di nuovo. Questo è principalmente dovuto al fatto che il kernel non ha modo di sapere se la pagina è parzialmente o completamente utilizzata. Altre operazioni di lettura / scrittura della memoria esterna possono avere granularità arbitraria (es .: fwrite (..)).

  2. Le dimensioni della pagina dipendono dalla CPU / GPU. Per la maggior parte delle CPU, le dimensioni delle pagine saranno almeno di 4KB e generalmente supportano un mix di 4KB / 64KB / 2MB / 4MB / 16MB / 1GB (non necessariamente tutte supportate contemporaneamente). La dimensione sarà sempre una potenza di due.

  3. Sia una pagina che una linea della cache sono contigue e richiedono di essere allineate alle rispettive dimensioni. Una linea cache da 64 byte è sempre allineata a 64 byte e una pagina da 2 MB è sempre allineata a 2MB.

  4. A causa della # 3, una linea della cache non può estendersi su 2 pagine poiché le dimensioni della pagina saranno sempre più grandi di una linea della cache e saranno sempre un multiplo delle dimensioni di una linea della cache.

Guarda questa fonte eccellente per una grande quantità di informazioni riguardanti la memoria: link

    
risposta data 18.03.2015 - 23:35
fonte

Leggi altre domande sui tag