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: Che differenza c'è tra etica e deontologia? 2024, Luglio
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 utilizzata per migliorare il tempo di accesso della 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 è persino maggiore 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 (memoria ad accesso casuale). 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 superiore al 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 latenza minima. 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 vicino viene copiato nella cache. Quindi, la prossima volta che c'è un' alta probabilità che si verifichi un hit della cache poiché la maggior parte dei programmi per computer accede ai dati vicini o ai dati a cui è stato effettuato l'ultimo accesso la maggior parte delle volte. Quindi, grazie alla cache, la latenza media della memoria è ridotta.

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

Nella CPU, ci sono tre tipi di cache: cache di istruzioni per memorizzare le istruzioni del programma, cache di dati per memorizzare elementi di dati e buffer di traduzione Look-aside per memorizzare le mappature di memoria. Per la cache dei dati, in genere, 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. Grazie a 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 virtuali 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 page file. Quando un programma viene avviato, gli viene assegnato uno spazio di indirizzi virtuale 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 denominata page table tiene traccia di questa mappatura. Quando la memoria fisica esaurisce lo spazio, ciò che viene fatto è che alcune pagine fisiche vengono inviate a quella parte speciale del disco rigido. Quando una qualsiasi pagina inviata al disco rigido è nuovamente necessaria, viene trasferita alla memoria fisica inserendo un' altra pagina selezionata dalla memoria fisica al disco rigido.

Memoria cache vs memoria virtuale
Memoria cache vs memoria virtuale
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 utilizzata 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 vera RAM fisica disponibile.

• La memoria cache è un tipo di memoria hardware che esiste effettivamente 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 virtuale di memoria.

• 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 la RAM, la memoria cache e il processore. La memoria virtuale, invece, comporta il trasferimento di dati tra RAM e hard disk.

• Le memorie cache richiedono dimensioni ridotte, ad esempio Kilobyte e Megabyte. La memoria virtuale, d' altra parte, coinvolge enormi dimensioni che richiedono gigabyte.

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

Riepilogo:

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.

Consigliato: