Differenza Tra Memoria Cache E Memoria Virtuale

Sommario:

Differenza Tra Memoria Cache E Memoria Virtuale
Differenza Tra Memoria Cache E Memoria Virtuale

Video: Differenza Tra Memoria Cache E Memoria Virtuale

Video: Differenza Tra Memoria Cache E Memoria Virtuale
Video: Memoria CACHE | Cos'è e come funziona? 2024, Aprile
Anonim

Memoria cache vs memoria virtuale

La differenza tra memoria cache e memoria virtuale esiste nello scopo per cui queste due vengono utilizzate e nell'esistenza fisica. La memoria cache è un tipo di memoria utilizzato per migliorare il tempo di accesso alla memoria principale. Risiede tra la CPU e la memoria principale e possono esserci diversi livelli di cache come L1, L2 e L3. Il tipo di hardware utilizzato per la memoria cache è molto più costoso della RAM (Random Access Memory) utilizzata per la memoria principale perché la memoria cache è molto più veloce. Per questo motivo, la capacità della memoria cache è molto ridotta. La memoria virtuale è una tecnica di gestione della memoria utilizzata per utilizzare in modo efficiente la RAM (memoria principale) fornendo allo stesso tempo uno spazio di memoria separato per ciascun programma che è anche più grande della capacità effettiva della RAM fisica (memoria principale). Qui il disco rigido viene utilizzato per espandere la memoria. Gli elementi nella RAM fisica vengono trasferiti avanti e indietro con il disco rigido.

Cos'è la memoria cache?

La memoria cache è un tipo di memoria che si trova tra la CPU (Central Processing Unit) e la RAM (Random Access memory). Lo scopo della memoria cache è ridurre il tempo di accesso alla memoria della CPU dalla RAM. La memoria cache è molto più veloce della RAM. Quindi il tempo di accesso sulla cache è molto inferiore al tempo di accesso sulla RAM. Ma il costo della memoria utilizzata per la memoria cache è molto più alto del costo della memoria utilizzata per la RAM e, quindi, la capacità della memoria cache è molto ridotta. Il tipo di memoria utilizzato per la memoria cache è chiamato SRAM (Static Random Access Memory).

Ogni volta che la CPU vuole accedere alla memoria, controlla prima se ciò di cui ha bisogno risiede nella memoria cache. Se sì, sarebbe in grado di accedervi con la minima latenza. Se non risiede nella cache, il contenuto richiesto verrà copiato dalla RAM alla cache e solo la CPU vi accederà dalla cache. Qui, quando si copia il contenuto dalla cache, non solo il contenuto nell'indirizzo di memoria richiesto, ma anche il contenuto nelle vicinanze viene copiato nella cache. Quindi, la prossima volta che c'è un'alta probabilità che si verifichi un hit nella cache poiché la maggior parte dei programmi per computer accede ai dati nelle vicinanze o ai dati dell'ultimo accesso la maggior parte delle volte. Quindi, a causa della cache, la latenza media della memoria è ridotta.

Differenza tra memoria cache e memoria virtuale
Differenza tra memoria cache e memoria virtuale

Nella CPU, ci sono tre tipi di cache: cache delle istruzioni per memorizzare le istruzioni del programma, cache dei dati per memorizzare gli elementi di dati e buffer di ricerca delle traduzioni per memorizzare i mapping di memoria. Per la cache dei dati, generalmente, ci sono cache multilivello. Cioè, ci sono diverse cache come L1, L2 e L3. La cache L1 è la memoria cache più veloce ma più piccola più vicina alla CPU. La cache L2 è più lenta di L1, ma più grande di L1 e risiede dopo la cache L1. A causa di questa gerarchia, è possibile ottenere un tempo medio di accesso alla memoria migliore a un costo inferiore.

Cos'è la memoria virtuale?

La memoria virtuale è una tecnica di gestione della memoria utilizzata nei sistemi informatici. Non esiste un hardware chiamato memoria virtuale, ma è un concetto che utilizza la RAM e il disco rigido per fornire uno spazio di indirizzi virtuale per i programmi. La prima RAM è divisa in blocchi chiamati pagine e sono identificati da indirizzi di memoria fisica. Nell'hard disk è riservata una porzione speciale dove, in Linux, si chiama swap e, in Windows, si chiama file di paging. Quando un programma viene avviato, gli viene assegnato uno spazio di indirizzi virtuali che può essere anche più grande della memoria fisica effettiva. Lo spazio di memoria virtuale è anche diviso in blocchi chiamati pagine e ciascuna di questa pagina di memoria virtuale può essere mappata su una pagina fisica. La tabella chiamata tabella delle pagine tiene traccia di questa mappatura. Quando la memoria fisica esaurisce lo spazio, ciò che viene fatto è,alcune pagine fisiche vengono inviate a quella parte speciale del disco rigido. Quando una pagina inserita nuovamente nel disco rigido è nuovamente necessaria, viene portata nella memoria fisica inserendo un'altra pagina selezionata dalla memoria fisica nel disco rigido.

Memoria cache vs memoria virtuale
Memoria cache vs memoria virtuale

Qual è la differenza tra memoria cache e memoria virtuale?

• La memoria cache è un tipo di memoria utilizzato per migliorare il tempo di accesso alla memoria principale. È un tipo di memoria più veloce che risiede tra CPU e RAM per ridurre la latenza media di accesso alla memoria. La memoria virtuale è un metodo di gestione della memoria in cui è un concetto che consente ai programmi di ottenere il proprio spazio di memoria virtuale, che è persino più grande della RAM fisica reale disponibile.

• La memoria cache è un tipo di memoria hardware effettivamente esistente fisicamente. D'altra parte, non esiste un hardware chiamato memoria virtuale poiché è un concetto che utilizza RAM, disco rigido, unità di gestione della memoria e software per fornire un tipo di memoria virtuale.

• La gestione della memoria cache viene eseguita completamente dall'hardware. La memoria virtuale è gestita dal sistema operativo (software).

• La memoria cache si trova tra la RAM e il processore. I trasferimenti di dati coinvolgono RAM, memoria cache e processore. La memoria virtuale, d'altra parte, comporta il trasferimento di dati tra RAM e disco rigido.

• Le memorie cache hanno dimensioni ridotte come kilobyte e megabyte. La memoria virtuale, d'altra parte, coinvolge dimensioni enormi che richiedono gigabyte.

• La memoria virtuale coinvolge strutture di dati come tabelle di pagine che memorizzano il mapping tra la memoria fisica e la memoria virtuale. Ma questo tipo di strutture dati non è necessario per la memoria cache.

Sommario:

Memoria cache vs memoria virtuale

La memoria cache viene utilizzata per migliorare il tempo di accesso alla memoria principale mentre la memoria virtuale è un metodo di gestione della memoria. La memoria cache è un hardware reale, ma non esiste un hardware chiamato memoria virtuale. RAM, disco rigido e vari altri hardware insieme al sistema operativo producono il concetto chiamato memoria virtuale per fornire spazi di memoria virtuale ampi e isolati a ciascun programma. Il contenuto nella memoria cache è gestito dall'hardware mentre il contenuto nella memoria virtuale è gestito dal sistema operativo.

Immagini per gentile concessione:

  1. Processo di memoria cache di Hellisp (CC BY-SA 3.0)
  2. Memoria virtuale di Ehamberg (CC BY-SA 3.0)

Raccomandato: