Cachegeheugen versus virtueel geheugen
Het verschil tussen cachegeheugen en virtueel geheugen bestaat in het doel waarvoor deze twee worden gebruikt en in het fysieke bestaan. Cachegeheugen is een type geheugen dat wordt gebruikt om de toegangstijd tot het hoofdgeheugen te verbeteren. Het bevindt zich tussen de CPU en het hoofdgeheugen en er kunnen verschillende caches zijn, zoals L1, L2 en L3. Het type hardware dat wordt gebruikt voor het cachegeheugen is veel duurder dan het RAM (Random Access Memory) dat wordt gebruikt voor het hoofdgeheugen, omdat het cachegeheugen veel sneller is. Om deze reden is de capaciteit van het cachegeheugen erg klein. Virtueel geheugen is een geheugenbeheertechniek die wordt gebruikt om efficiënt gebruik te maken van RAM (hoofdgeheugen) terwijl er voor elk programma een afzonderlijke geheugenruimte wordt geboden die zelfs groter is dan de werkelijke fysieke RAM-capaciteit (hoofdgeheugen). Hier wordt de harde schijf gebruikt om het geheugen uit te breiden. De items in het fysieke RAM-geheugen worden heen en weer overgedragen met de harde schijf.
Wat is cachegeheugen?
Cachegeheugen is een type geheugen dat tussen de CPU (Central Processing Unit) en het RAM (Random Access-geheugen) ligt. Het doel van cachegeheugen is om de geheugentoegangstijd van de CPU vanuit het RAM te verminderen. Het cachegeheugen is veel sneller dan RAM. De toegangstijd op de cache is dus veel korter dan de toegangstijd op RAM. Maar de kosten van geheugen dat wordt gebruikt voor cachegeheugen zijn veel hoger dan de kosten van geheugen dat wordt gebruikt voor RAM, en daarom is de capaciteit van cachegeheugen erg klein. Het type geheugen dat wordt gebruikt voor cachegeheugen wordt SRAM (Static Random Access Memory) genoemd.
Telkens wanneer de CPU toegang wil tot geheugen, controleert deze eerst of wat hij nodig heeft zich in het cachegeheugen bevindt. Zo ja, dan zou het toegang kunnen krijgen met de minste latentie. Als het zich niet in de cache bevindt, wordt de gevraagde inhoud van het RAM naar de cache gekopieerd en heeft alleen de CPU er toegang toe vanuit de cache. Hier wordt bij het kopiëren van inhoud uit de cache niet alleen de inhoud in het gevraagde geheugenadres maar ook de nabijgelegen inhoud naar de cache gekopieerd. Dus de volgende keer is de kans groot dat er een cache-treffer optreedt, aangezien de meeste computerprogramma's meestal toegang hebben tot gegevens in de buurt of als laatst gebruikte gegevens. Dus vanwege de cache wordt de gemiddelde geheugenlatentie verminderd.
In de CPU zijn er drie soorten caches: instructiecache om programma-instructies op te slaan, gegevenscache om gegevensitems op te slaan en de vertaalbuffer om geheugentoewijzingen op te slaan. Voor gegevenscache zijn er over het algemeen caches met meerdere niveaus. Dat wil zeggen, er zijn verschillende caches zoals L1, L2 en L3. L1-cache is het snelste maar kleinste cachegeheugen dat zich het dichtst bij de CPU bevindt. L2-cache is langzamer dan L1, maar groter dan L1 en bevindt zich na de L1-cache. Vanwege deze hiërarchie kan tegen lagere kosten een betere gemiddelde geheugentoegangstijd worden bereikt.
Wat is virtueel geheugen?
Virtueel geheugen is een geheugenbeheertechniek die wordt gebruikt in computersystemen. Er is geen hardware die virtueel geheugen wordt genoemd, maar het is een concept dat RAM en de harde schijf gebruikt om een virtuele adresruimte voor programma's te bieden. Het eerste RAM-geheugen is verdeeld in brokken die pagina's worden genoemd en ze worden geïdentificeerd door fysieke geheugenadressen. Op de harde schijf is een speciaal gedeelte gereserveerd waar dit in Linux de swap wordt genoemd en in Windows een paginabestand. Wanneer een programma wordt gestart, krijgt het een virtuele adresruimte die zelfs groter kan zijn dan het daadwerkelijke fysieke geheugen. Virtuele geheugenruimte is ook verdeeld in brokken die pagina's worden genoemd en elk van deze virtuele geheugenpagina kan worden toegewezen aan een fysieke pagina. De tabel met de naam paginatabel houdt deze mapping bij. Als het fysieke geheugen onvoldoende ruimte heeft, wordt erbepaalde fysieke pagina's worden naar dat speciale gedeelte op de harde schijf gepusht. Wanneer een pagina die naar de harde schijf is geduwd opnieuw nodig is, wordt deze naar het fysieke geheugen gebracht door een andere geselecteerde pagina uit het fysieke geheugen op de harde schijf te plaatsen.
Wat is het verschil tussen cachegeheugen en virtueel geheugen?
• Cachegeheugen is een type geheugen dat wordt gebruikt om de toegangstijd van het hoofdgeheugen te verbeteren. Het is een sneller type geheugen dat zich tussen CPU en RAM bevindt om de gemiddelde latentie voor geheugentoegang te verminderen. Virtueel geheugen is een geheugenbeheermethode waarbij het een concept is waarmee programma's hun eigen virtuele geheugenruimte krijgen, die zelfs groter is dan het echte beschikbare fysieke RAM.
• Cachegeheugen is een type hardwaregeheugen dat fysiek aanwezig is. Aan de andere kant is er geen hardware die virtueel geheugen wordt genoemd, omdat het een concept is dat RAM, harde schijf, geheugenbeheereenheid en software gebruikt om een virtueel type geheugen te bieden.
• Beheer van cachegeheugen wordt volledig gedaan door hardware. Virtueel geheugen wordt beheerd door het besturingssysteem (software).
• Cachegeheugen ligt tussen RAM en de processor. Bij gegevensoverdracht zijn RAM, cachegeheugen en de processor betrokken. Virtueel geheugen daarentegen omvat de overdracht van gegevens tussen RAM en harde schijf.
• Cachegeheugens nemen kleine formaten aan, zoals kilobytes en megabytes. Bij virtueel geheugen zijn daarentegen enorme formaten betrokken die gigabytes in beslag nemen.
• Bij virtueel geheugen zijn datastructuren betrokken, zoals paginatabellen waarin de mapping tussen fysiek geheugen en virtueel geheugen wordt opgeslagen. Maar dit type datastructuren is niet nodig voor cachegeheugen.
Samenvatting:
Cachegeheugen versus virtueel geheugen
Cachegeheugen wordt gebruikt om de toegangstijd van het hoofdgeheugen te verbeteren, terwijl virtueel geheugen een geheugenbeheermethode is. Cachegeheugen is een echte hardware, maar er is geen hardware die virtueel geheugen wordt genoemd. RAM, harde schijf en diverse andere hardware produceren samen met het besturingssysteem het concept dat virtueel geheugen wordt genoemd om grote en geïsoleerde virtuele geheugenruimtes aan elk programma te bieden. De inhoud in het cachegeheugen wordt beheerd door hardware, terwijl de inhoud in het virtuele geheugen wordt beheerd door het besturingssysteem.
Afbeeldingen beleefdheid:
- Cachegeheugenproces door Hellisp (CC BY-SA 3.0)
- Virtueel geheugen door Ehamberg (CC BY-SA 3.0)