Cache
Fra fransk 'cache' via amerikansk engelsk med betydningen skjulested, gemmested. Anvendes inden for edb om et lager, der bruges til at opbevare den hyppigst brugte del af en større datamængde. Det svarer til dagliglivets håndtaske eller turrygsæk, der indeholder de mest nødvendige genstande, som er praktiske at have lige ved hånden.
Ethvert lagringsmedium har en pris pr. lagret bit som står i forhold til den anvendte teknologi og tilgangshastigheden, og lagre findes derfor i praksis i visse naturlige størrelser, der vokser i rækken CPU-register, arbejdslager, baggrundslager. Kan en datamængde ikke i sin helhed være i et bestemt lager, må det lagres i et større lager og hentes og skrives efter behov. Det større lager er normalt væsentlig langsommere at læse og skrive i. For at spare tid og ressourcer kan man udnytte, at brugen af data har et vist mønster, og gemme de mest brugte dele et sted med hurtigere eller mere direkte tilgang end resten.
Gevinsten i hastighed afhænger meget af sandsynligheden for at data, der skal bruges, faktisk allerede befinder sig i cachen. Kaldes denne sandsynlighed H for "hit-rate", bliver den forventede tilgangstid T = TC + (1-H)TL, hvor TC og TL er tilgangstiden for data i henholdsvis cache og det egentlige lager (se tilgangstid for arbejdslager og baggrundslager). Hvis H er 90% og TL er 10 gange TC, fås et T på 2TC, hvilket er 5 gange bedre end TL. Når H i dette tilfælde bliver mindre end 0.1, vil T blive større end TL, og cachen vil da forsinke i stedet. En cache vil derfor normalt kun være fornuftig med en høj hit-rate.
En cache bruges på en lidt anden måde end et normalt lager; data lagres normalt i små blokke, og da der er tale om småstykker af et større lagerområde, der er placeret på tilfældige steder i cachen, sker adresseringen til en vis grad efter indhold snarere end placering.
Cachen indeholder principielt en arbejdskopi af de originale data, men man søger ofte at begrænse ajourføring af originalen mest mulig, se f.eks. cache flush og lazy write. Dette kan give problemer med konsistens af data (se cache coherency), hvis data benyttes af flere uafhængige processorer med cache, f.eks. i multiprocessorer, ved DMA, eller i lokalnet.
Caching bruges i mange sammenhænge, se f.eks cache lager (som er et registerlager indskudt mellem CPU og arbejdslager), disk cache, virtuelt lager og RAM-disk (som er arbejdslager reserveret for data lagret i filsystemet), og DNS og WWW (som indeholder data, der egentlig er lagret og vedligeholdes på et andet system i et datanet). I forbindelse med masselagre er der ofte indskudt dedikerede diske, der fungerer som cache.

