Cache

Från Rilpedia

(Omdirigerad från Cashad)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Cache (från franska cacher, "gömma") är en term inom programmering och datorteknik som beskriver en samling av data som är kopior av originaldata som lagras någon annanstans eller som har beräknats tidigare. Cacheminnen används ofta där det är dyrt att hämta eller beräkna om, och är i praktiken ett temporärt lagringsutrymme där ofta använda data lagars för snabb åtkomst. När data har lagrats kan framtida åtkomster hämta datan från det snabba cacheminnet. På det sättet kan långsamma operationer mot en större och långsammare datamängd undvikas.

Cacheminnen har visat sig vara extremt effektiva i många data- och datortekniska områden eftersom program ofta hämtar data på typiska sätt. Dataåtkomster tenderar ofta att göras "nära" varann, och samma data används ofta om och om igen.

Innehåll

Funktion

Ett cacheminne består av ett antal datavärden, som vart och ett är en kopia av originalvärden från ett annat långsammare lagringsmedium. Cachedata organiseras i form av inlägg i ett register med någon form av unik adress eller tag (engelska: "etikett") som för varje cachat datavärde identifierar originalvärdet det kopierats från.

När en cacheanvändare vill komma åt datavärden med en viss tag från lagringsmediet söker den först i cachen. Om ett inlägg i cacheregistret existerar med samma tag används motsvarande datavärde. Denna situation kallas för en cacheträff. Om cacheregistret däremot inte innehåller den sökta tagen inträffar en cachemiss. Det sökta datavärdet måste nu hämtas eller beräknas, varpå det lagras i cacheminnet redo för nästa åtkomst.

Om cacheminnet har begränsad lagringskapacitet fylls det så småningom upp med cachade datavärden. Cacheminnet måste radera andra datavärden för att få plats för nya värden. Varje cacheminne har en speciell heuristik för att bestämma vilka datavärden som raderas. En vanlig sådan, least recently used eller LRU raderar de äldsta inläggen i cacheminnet; eftersom gamla inlägg inte använts på länge är det troligt att de inte kommer att användas snart i framtiden heller.

Tillämpningar

Processorer

Cache-teknik används på många olika nivåer i systembyggen; en CPU har exempelvis ofta två (eller ibland ännu fler) nivåer av cacheminnen, varav det minsta är det snabbaste (och dyraste). Ibland kan processorer använda separata cacheminnen för instruktioner och data, vilka då kallas instruktionscache respektive datacache.

Webbservrar

Webbservrar använder ofta en cache av sidor genererade i förväg så att dynamsikt genererade sidor inte behöver beräknas varje gång de efterfrågas. Detta kan vara till fördel för dynamiska sidor som belastas hårt eller är kostsamma att beräkna.

Webläsare

Ytterligare en cachefunktion finns i webbläsare, som sparar de webbsidor användaren besöker så att de inte behöver hämtas igen vid nästa besök på sidan. De redan hämtade sidorna lagras som ordinarie filer i ett särskilt webbcache på användarens dator.

Diskcache

Operativsystem eller tilläggsprogram använder sig ibland av diskcache för att öka hastigheten på hårddisk- och CD-läsning och -skrivning.

Se även

Externa länkar

Personliga verktyg