Cacheminne vs virtuellt minne
Skillnaden mellan cacheminne och virtuellt minne finns i det syfte för vilket dessa två används och i den fysiska existensen. Cacheminne är en typ av minne som används för att förbättra åtkomsttiden för huvudminnet. Det finns mellan CPU: n och huvudminnet, och det kan finnas flera nivåer av cacheminn som L1, L2 och L3. Den typ av maskinvara som används för cacheminne är mycket dyrare än RAM (Random Access Memory) som används för huvudminnet eftersom cacheminnet är mycket snabbare. Av denna anledning är cacheminnets kapacitet mycket liten. Virtuellt minne är en teknik för minneshantering som används för att effektivt använda RAM (huvudminne) samtidigt som det ger ett separat minnesutrymme för varje program som är ännu större än den faktiska fysiska RAM-kapaciteten (huvudminnet). Här används hårddisken för att utöka minnet. Objekten i det fysiska RAM-minnet överförs fram och tillbaka med hårddisken.
Vad är cacheminne?
Cacheminne är en typ av minne som ligger mellan CPU (Central Processing Unit) och RAM (Random Access-minne). Syftet med cacheminnet är att minska CPU-minnets åtkomsttid från RAM-minnet. Cacheminnet är mycket snabbare än RAM. Så åtkomsttid på cache är mycket mindre än åtkomsttiden på RAM. Men kostnaden för minne som används för cacheminne är mycket högre än kostnaden för minne som används för RAM, och därmed är kapaciteten för cacheminne mycket liten. Den typ av minne som används för cacheminne kallas SRAM (Static Random Access Memory).
Närhelst CPU vill komma åt minne kontrollerar den först om det finns behov i cacheminnet. Om ja, skulle den kunna komma åt den med minst latens. Om det inte finns i cache, kommer det begärda innehållet att kopieras från RAM till cachen och då kommer endast CPU att komma åt det från cachen. Här, när du kopierar innehåll från cachen, kopieras inte bara innehållet i den begärda minnesadressen utan även det närliggande innehållet till cachen. Så nästa gång det finns stor sannolikhet för en cacheträff att inträffa eftersom de flesta datorprogram har tillgång till närliggande data eller senast åtkomst till data oftast. Så på grund av cachen minskar den genomsnittliga minnestiden.
I CPU finns det tre typer av cachar: Instruktionscache för att lagra programinstruktioner, Data-cache för att lagra dataobjekt och Översättningsbuffert för översättning för att lagra minneskartläggningar. För datacache finns det generellt cacheminnen på flera nivåer. Det vill säga det finns flera cachar som L1, L2 och L3. L1-cache är det snabbaste men minsta cacheminnet som ligger närmast CPU: n. L2-cache är långsammare än L1, men större än L1 och finns efter L1-cache. På grund av denna hierarki kan en bättre genomsnittlig minnesåtkomsttid uppnås till en lägre kostnad.
Vad är virtuellt minne?
Virtuellt minne är en teknik för minneshantering som används i datorsystem. Det finns ingen hårdvara som kallas virtuellt minne, men det är ett koncept som använder RAM och hårddisken för att ge ett virtuellt adressutrymme för program. Första RAM är uppdelat i bitar som kallas sidor och de identifieras av fysiska minnesadresser. På hårddisken reserveras en speciell del där det i Linux kallas swap och i Windows kallas det en sidfil. När ett program startas ges det ett virtuellt adressutrymme som kan vara ännu större än det faktiska fysiska minnet. Virtuellt minnesutrymme är också uppdelat i bitar som kallas sidor och var och en av den här virtuella minnessidan kan mappas till en fysisk sida. Tabellen kallad sidtabell håller reda på denna kartläggning. När det fysiska minnet tar slut på utrymme är vad som görs,vissa fysiska sidor skjuts till den speciella delen på hårddisken. När någon sida som trycks till hårddisken behövs igen, tas den till det fysiska minnet genom att lägga till en annan vald sida från det fysiska minnet till hårddisken.
Vad är skillnaden mellan cacheminne och virtuellt minne?
• Cacheminne är en typ av minne som används för att förbättra huvudminnets åtkomsttid. Det är en snabbare typ av minne som finns mellan CPU och RAM för att minska den genomsnittliga minnesåtkomst latensen. Virtuellt minne är en minneshanteringsmetod där det är ett koncept som låter program få sitt eget virtuella minnesutrymme, vilket är ännu större än det verkliga fysiska RAM-minnet som finns tillgängligt.
• Cacheminne är en typ av maskinvaruminne som faktiskt finns fysiskt. Å andra sidan finns det ingen hårdvara som kallas virtuellt minne eftersom det är ett koncept som använder RAM, hårddisk, minneshanteringsenhet och programvara för att tillhandahålla en virtuell minnestyp.
• Cache-minneshantering görs helt av hårdvara. Virtuellt minne hanteras av operativsystemet (programvara).
• Cacheminnet ligger mellan RAM och processorn. Dataöverföringar involverar RAM, cacheminne och processorn. Virtuellt minne, å andra sidan, innebär överföring av data mellan RAM och hårddisk.
• Cacheminnen tar små storlekar som Kilobytes och Megabyte. Virtuellt minne, å andra sidan, involverar stora storlekar som tar gigabyte.
• Virtuellt minne innefattar datastrukturer som sidotabeller som lagrar kartläggning mellan fysiskt minne och virtuellt minne. Men den här typen av datastrukturer är inte nödvändig för cacheminnet.
Sammanfattning:
Cacheminne vs virtuellt minne
Cacheminne används för att förbättra huvudminnets åtkomsttid medan virtuellt minne är en minneshanteringsmetod. Cacheminne är en faktisk maskinvara, men det finns ingen hårdvara som kallas virtuellt minne. RAM, hårddisk och diverse annan hårdvara tillsammans med operativsystemet producerar konceptet som kallas virtuellt minne för att ge stora och isolerade virtuella minnesutrymmen till varje program. Innehållet i cacheminnet hanteras av maskinvara medan innehållet i det virtuella minnet hanteras av operativsystemet.
Bilder med tillstånd:
- Cache-minnesprocess av Hellisp (CC BY-SA 3.0)
- Virtuellt minne av Ehamberg (CC BY-SA 3.0)