Kešēšana (kešatmiņa) — definīcija, darbības princips un stratēģijas
Kešēšana ir datorzinātnē lietots termins. Kešatmiņas (izrunā "cash" /ˈkæʃ/ KASH ) būtība ir vienkārša: daudzas darbības vai piekļuve datiem ir laikietilpīgas vai dārgas, tāpēc to rezultātu saglabāšana īslaicīgā, ātri pieejamā atmiņā parasti samazina kopējo izpildes laiku. Parasti lieto divu veidu datu glabāšanas līdzekļus: viens ir liels, bet lēnāk pieejams; otrs — mazāks, taču daudz ātrāk piekļūstams. Kešatmiņas pamatideja ir saglabāt datu kopiju uz ātrāka nesēja, tādējādi izmantojot šo kopiju, nevis atkārtoti izgūt vai pārrēķināt oriģinālos datus. Ja kešatmiņā ir vajadzīgā informācija, lietojumprogramma vai sistēma var to izmantot daudz ātrāk — to sauc par kešēšanas "hit". Ja dati kešā nav, ir "miss" un jāpiekļūst lēnākam avotam, pēc tam parasti kešatmiņā tiek ievietota kopija. Tādejādi vidējais piekļuves laiks samazinās.
Jaunas vērtības ievietošana kešatmiņā bieži nozīmē, ka ir jāaizstāj kāda vecāka vērtība. Pastāv dažādas metodes (parasti sauktas par aizvietošanas stratēģijām), kā izlemt, kuru ierakstu noņemt. Kešatmiņu lietojuma piemēri aptver datus operētājsistēmu līmenī, tīmekli, datubāzes, DNS, kā arī procesoru līmeņa kešus.
Buferis ir ļoti līdzīgs kešatmiņai, taču atšķiras ar to, ka buferi pārvalda pašas lietojumprogrammas un klients parasti zina, ka buferis pastāv. Kešatmiņas gadījumā piekļuves klients nav obligāti informēts par kešēšanu.
Tipiskas lietojumprogrammas piekļūst datiem, izmantojot lokalitātes principu: ja tiek piekļūts vienam datublokam, ļoti iespējams, ka drīz tiks piekļūts arī "tuvam" blokam. To sauc par atsauces lokalitāti (temporal un spatial locality), un tā ir viens no galvenajiem iemesliem, kāpēc kešēšana bieži uzlabo veiktspēju.
Kešatmiņas darbības pamati
Galvenie jēdzieni:
- Hit — pieprasītie dati ir kešatmiņā; piekļuve ātra.
- Miss — dati nav kešā; jāiegūst no lēnākā avota (miss penalty).
- Hit rate — daļa pieprasījumu, kas beidzas ar hit; augstāks hit rate nozīmē labāku efektivitāti.
- Miss penalty — papildu laiks, kas nepieciešams, lai apstrādātu miss (datu ielāde no galvenā avota).
- Associativity — veids, kā kešatmiņa organizē iespēju, kur saglabāt blokus (tieša adresācija, daļēji asociatīva, pilnīgi asociatīva).
Kešēšanas stratēģijas un aizvietošanas algoritmi
Kad kešatmiņa ir pilna, jāizvēlas, kuru elementu izņemt. Biežāk sastopamie algoritmi:
- LRU (Least Recently Used) — izņem vismazāk nesen izmantoto ierakstu. Izdevīgs, ja pēdējā piekļuve prognozē nākamo.
- FIFO (First In, First Out) — izņem visilgāk turēto ierakstu. Vienkāršs, bet ne vienmēr optimāls.
- LFU (Least Frequently Used) — izņem vismazāk bieži izmantoto ierakstu; noderīgi, ja vēlamība ir ilgtermiņa populāriem elementiem.
- Random — izlases izvēle; vienkārši un reizēm pietiekami laba liela mēroga sistēmām.
- CLOCK — efektīva aptuvena LRU īstenošana, populāra operētājsistēmu lapu menedžmentā.
- ARC/Adaptive — adaptīvi algoritmi, kas kombinē LRU un LFU priekšrocības, piemēram, Redo/Adaptive Replacement Cache.
Pierakstīšanas politikas (write policies)
Bieži jāizlemj, kā rīkoties, ja tiek mainīti dati:
- Write-through — rakstot kešā, izmaiņas tūlīt tiek ierakstītas arī galvenajā atmiņā. Nodrošina konsekvenci, bet palielina aizkavēšanos.
- Write-back (Write-behind) — izmaiņas vispirms saglabājas kešā, galvenajā atmiņā tiek atjauninātas vēlāk (kad ieraksts tiek izņemts). Samazina rakstīšanas skaitu, bet sarežģī datu integritāti un prasa sinhronizāciju.
- Write-around — rakstot dati tiek rakstīti tieši galvenajā avotā, apejot kešu; noderīgi lieliem, reti lasītiem ierakstiem, tomēr var pasliktināt lasīšanas veiktspēju.
- Write-allocate / No-write-allocate — nosaka, vai pēc rakstīšanas tiek arī ielādēts ieraksts kešā (write-allocate) vai nē (no-write-allocate).
Kešatmiņu veidi un piemēri
- CPU kešatmiņas — L1, L2, L3 keši procesoros, kas saglabā instrukcijas un datus, lai samazinātu piekļuves laiku atmiņai.
- Operētājsistēmas lapu keši un failu keši — diska I/O samazināšanai.
- Datubāzu starpkārtas (in-memory) keši — Redis, Memcached, ko izmanto, lai ātri atdotu bieži pieprasītus datus.
- Tīmekļa kešēšana — pārlūkprogrammu keši, CDN (satiksmes satura nodrošināšana), starpniekserveru keši, lai samazinātu atbildes laiku un slodzi uz serveriem.
- DNS kešēšana — ierakstu saglabāšana ar TTL, lai samazinātu DNS vaicājumu skaitu.
Kešēšana daudzprocesoru/izklātās sistēmās
Daudzprocesoru sistēmās un izklātās platformās parādās papildu problēmas — keškoherences un datu saskaņotība starp vairākiem kešiem. Pastāv protokoli (piem., MESI), kas nodrošina, ka izmaiņas vienā kešā tiek izplatītas vai bloķētas, lai izvairītos no neatbilstībām. Lielos tīmekļa lietojumos tiek izmantotas stratēģijas, lai izvairītos no konfliktējošiem rakstiem, piemēram, shardēšana, reģistru invalidācija vai laika zīmju (versioning) lietošana.
Veiktspējas rādītāji un dizaina kompromisi
Kešēšanas dizainā jāņem vērā vairāki faktori:
- Kešatmiņas izmērs — lielāks izmērs var uzlabot hit rate, bet palielina izmaksas un meklēšanas laiku (atkarībā no organizācijas).
- Bloka izmērs — lielāki bloki var uzlabot telpisko lokalitāti, bet radīt nelietderīgu datu pārsūtīšanu.
- Asociativitāte — palielināta asociativitāte samazina konfliktiem pamatoto miss skaitu, bet palielina sarežģītību un izmaksas.
- Prefetching — prognozējot nākamos pieprasījumus, sistēma var iepriekš ielādēt datus kešā; tas var uzlabot sniegumu, bet riskē ar lieku trafiku.
- Kešēšanas "sasilšana" (cache warming) — ja kešs tiek zaudēts (restart), pirmie pieprasījumi būs lēni, līdz kešs "uzsilst".
Datu derīguma un konsekvences jautājumi
Kešēšana var radīt problēmas ar datu svaigumu. Izplatītas pieejas to risināšanai:
- TTL (time-to-live) — ierobežo, cik ilgi ieraksts tiek uzskatīts par derīgu.
- Invalidācija — atjaunināšanas laikā tiek noņemtas vai atjauninātas saistītās keškopijas.
- Versiju numuri un keš-busting — pievieno versijas identifikatorus kešrajām, lai izvairītos no vecu datu izsniegšanas.
Drošība un privātums
Kešēšana var izraisīt datu drošības riskus, īpaši, ja kešā glabā sensitīvu informāciju. Rekomendācijas:
- Nekešēt sensitīvus personu datus bez šifrēšanas vai atbilstošas piekļuves kontroles.
- Izvairīties no kešēšanas privātā satura pārlūkprogrammu vai CDN līmenī.
- Rūpēties par kešainfiltrācijas un kešapoliju drošību, lai novērstu kešatmiņu "poisoning".
Labas prakses un ieteikumi
- Mēriet pirms optimizējat: analizējiet hit rate, latentci, trafiku un izmaksas, lai izvēlētos pareizo risinājumu.
- Izvēlieties piemērotu aizvietošanas politiku atkarībā no lietojuma rakstura (piem., LRU bieži der web kešiem, LFU — populārām ilgtermiņa ierakstu kopām).
- Uzstādiet saprātīgas TTL un invalidācijas stratēģijas, lai sabalansētu veiktspēju un datu svaigumu.
- Optimizējiet kešatmiņas atslēgas (key normalization, namespaces, versioning) — izvairieties no dubultu atslēgu radīšanas.
- Automatizējiet monitoringu un brīdināšanu par hit rate kritumiem, kešapopulācijas izmaiņām vai pārmērīgu miss penalty.
- Izmantojiet CDN un pārlūkprogrammu kešus statiskajam saturam, lai samazinātu serveru slodzi un uzlabotu lietotāja pieredzi.
Kopsavilkums
Kešēšana ir spēcīgs paņēmiens, kas samazina vidējo piekļuves laiku un samazina slodzi uz lēnākām sistēmām, izmantojot īslaicīgas datu kopijas ātrā atmiņā. Tomēr efektīva kešēšana prasa rūpīgu dizainu: pareizu izmēru, aizvietošanas algoritmu, pierakstīšanas politiku, invalidācijas mehānismus un drošības pasākumus. Pareizi pielietota kešēšana var būtiski uzlabot lietojumprogrammu veiktspēju un lietotāja pieredzi; nepareizi — radīt novecojušus datus, drošības riskus vai nevajadzīgas izmaksas.
Kā darbojas kešatmiņas
Kešatmiņa ir atmiņas bloks, kurā tiek glabāti dati, kas, visticamāk, tiks izmantoti atkārtoti. Kešatmiņu bieži izmanto procesors un cietais disks, kā arī tīmekļa pārlūkprogrammas un tīmekļa serveri.
Kešatmiņu veido daudzi ieraksti, ko sauc par kopfondu. Katrā ierakstā ir datu bits, kas ir citā vietā esoša datu bita kopija. Kešatmiņā parasti izmanto tā saukto dublējošo krātuvi. Salīdzinot ar kešatmiņu, piekļuve rezerves krātuvēm ir lēna vai dārga. Piemēram, diska kešatmiņā kā dublējošo krātuvi izmanto cieto disku. Katram ierakstam ir pievienota arī neliela informācija, ko sauc par tagu. Šo tagu izmanto, lai atrastu vietu, kur ir saglabāti sākotnējie dati.
Kešatmiņas lasīšanai
Ja klients (procesors, tīmekļa pārlūkprogramma, operētājsistēma) vēlas piekļūt kādam datu elementam, kas, pēc tā domām, atrodas dublējuma krātuvē, tas vispirms pārbauda, vai šis datu elements ir atrodams kešatmiņā. Ja dati ir atrodami kešatmiņā, klients var tos izmantot, un viņam nav jāizmanto galvenā atmiņa. To sauc par kešatmiņas trāpījumu. Piemēram, tīmekļa pārlūkprogramma var pārbaudīt lokālo kešatmiņu diskā, lai pārliecinātos, vai tai ir lokāla tīmekļa lapas satura kopija konkrētā URL adresē. Šajā piemērā URL ir tags, un tīmekļa lapas saturs ir datu bāze.
Cita iespējama situācija ir tāda, ka datubāzē nav iespējams atrast datubāzi ar birku. To sauc par kešatmiņas iztrūkumu. Datubāze ir jāiegūst no dublējuma krātuves. Parasti to kopē kešatmiņā, lai nākamreiz tas vairs nebūtu jāpaņem no dublējuma krātuves.
Kešatmiņas lielums ir ierobežots. Lai atbrīvotu vietu iepriekš neievietotajam ierakstam, no kešatmiņas var nākties dzēst citu kešatmiņas ierakstu. Lai atrastu ierakstu, kuru vislabāk dzēst, tiek izmantoti īpaši noteikumi. Šos noteikumus parasti sauc par eiristiku. Eiristiku, ko izmanto ieraksta atrašanai, sauc par aizstāšanas politiku. Ļoti vienkāršu izmantoto noteikumu sauc par vismazāk pēdējā laikā izmantoto (jeb LRU). Tas vienkārši izvēlas ierakstu, kas tika izmantots visilgāk. Citas heiristikas ir uzskaitītas kešatmiņas algoritmā..
Rakstīšanas kešatmiņas
Kešatmiņas var izmantot arī datu ierakstīšanai; priekšrocība ir tā, ka klients var turpināt darbību, tiklīdz ieraksts ir ierakstīts kešatmiņā; tam nav jāgaida, kamēr ieraksts tiek ierakstīts dublējuma krātuvē.
Tomēr ieraksts kādā brīdī ir jāieraksta dublējuma krātuvē. Laiku, kad tas notiek, kontrolē rakstīšanas politika.
Ierakstīšanas kešatmiņā katrs ieraksts tiek nekavējoties ierakstīts rezerves krātuvē, kā arī tiek saglabāts kešatmiņā.
Otra iespēja ir tikai rakstīt uz kešatmiņu un vēlāk rakstīt uz dublējuma krātuvi. To dēvē par rakstīšanas atpakaļ (vai rakstīšanas aiz muguras) kešatmiņu. Kešatmiņā tiek atzīmēti ieraksti, kas vēl nav ierakstīti rezerves krātuvē; izmantotā atzīme bieži tiek saukta par netīro karodziņu. Pirms ieraksti tiek dzēsti no kešatmiņas, tie tiek ierakstīti rezerves krātuvē. To sauc par slinku rakstīšanu. Neizpildes gadījumā atpakaļatpakaļatmiņas kešatmiņā (kad nepieciešams bloku aizstāt ar citu) bieži vien būs nepieciešamas divas piekļuves atmiņai: viena, lai iegūtu vajadzīgo datu, un otra, lai aizvietotos datus no kešatmiņas ierakstītu atmiņā.
Kešatmiņas politikā var būt arī noteikts, ka kešatmiņā ir jāieraksta konkrēts datu kopums. Klients var būt veicis daudzas izmaiņas kešatmiņā esošajā datos. Pēc tam, kad tas ir beidzis, tas var skaidri pateikt kešatmiņai, lai tā ieraksta atpakaļ šo datu.
Piešķiršana bez rakstīšanas ir kešatmiņas politika, kurā kešatmiņā tiek saglabāti tikai nolasījumi. Tas ļauj izvairīties no nepieciešamības izmantot rakstīšanas atpakaļ vai rakstīšanas caur kešatmiņu. Rakstīšana visu laiku tiek veikta uz rezerves krātuvi.
Klients nav lietojumprogramma, kas izmaina datus dublējuma krātuvē. Ja dati mainās dublējuma krātuvē, kopija kešatmiņā būs novecojusi jeb novecojusi. Vai arī, ja klients atjaunina datus kešatmiņā, šo datu kopijas citos kešatmiņā kļūst novecojušas. Pastāv īpaši saziņas protokoli, kas ļauj kešatmiņas pārvaldītājiem sazināties savā starpā, lai saglabātu datu nozīmīgumu. Tos sauc par koherences protokoliem.


Procesora atmiņas kešatmiņas shēma
Aizstājamā ieraksta atlase
Kešatmiņa ir maza, un lielāko daļu laika tā būs pilna vai gandrīz pilna. Tāpēc, kad tiek pievienota jauna vērtība, vecā vērtība ir jādzēš. Šo atlasi var veikt dažādos veidos:
- Pirmais iekšā, pirmais ārā: Vienkārši nomainiet ierakstu, kas kešatmiņā tika pievienots visilgāk.
- Vismazāk lietots nesen: Šī ideja ir līdzīga iepriekš minētajai FIFO, bet, kad ieraksts tiek izmantots, tā laika zīmogs/vecums tiek atjaunināts.
- Visretāk izmanto: Arī šajā gadījumā, līdzīgi kā FIFO gadījumā, tā vietā, lai izmantotu laika zīmogu, izmanto skaitītāju, kas tiek palielināts katru reizi, kad tiek izmantots ieraksts.
- Izvēlēties ierakstu pēc nejaušības principa
Vēsture
Vārds kešatmiņa pirmo reizi skaitļošanas tehnikā tika lietots 1967. gadā, kad tika sagatavots zinātnisks raksts publicēšanai žurnālā IBM Systems Journal. Raksts bija par jaunu atmiņas uzlabojumu 85. modelī. Modelis 85 bija IBM System/360 produktu līnijas dators. Žurnāla redaktors vēlējās labāku vārdu ātrgaitas bufera apzīmēšanai, kas tika izmantots rakstā. Viņš nesaņēma ieteikumus un ierosināja vārdu cache no franču valodas cacher, kas nozīmē "paslēpt". Raksts tika publicēts 1968. gada sākumā, un autori saņēma IBM apbalvojumu. Viņu darbs tika plaši atzinīgi novērtēts un uzlabots. Datorliteratūrā kešatmiņa drīz vien kļuva par standarta lietojumu.
Kur izmanto kešatmiņas
Procesora kešatmiņas
Nelielas atmiņas, kas atrodas procesora mikroshēmā vai tās tuvumā, var būt ātrākas par daudz lielāku galveno atmiņu. Lielākajā daļā procesoru kopš 80. gadiem ir izmantota viena vai vairākas kešatmiņas. Mūsdienu vispārējas nozīmes CPU personālajos datoros var būt pat pusducis. Katra kešatmiņa var būt specializēta dažādām programmu izpildes uzdevuma daļām.
Disku kešatmiņas
Procesora kešatmiņas parasti pilnībā pārvalda aparatūra, bet citas kešatmiņas pārvalda cita veida programmatūra. Operētājsistēma parasti pārvalda galvenās atmiņas lapu kešatmiņu. Lietotāji ārpus datorzinātnes šo kešatmiņu parasti sauc par virtuālo atmiņu. To pārvalda operētājsistēmas kodols.
Mūsdienu cietajos diskos ir diska buferi. Tos dažkārt dēvē par "diska kešatmiņu", taču tas ir nepareizi. Šo buferu galvenā funkcija ir sakārtot diska ierakstus un pārvaldīt datu nolasīšanu. Atkārtoti kešatmiņas trāpījumi ir reti, jo buferis ir ļoti mazs, salīdzinot ar cietā diska izmēru.
Vietējie cietie diski ir ātri salīdzinājumā ar citām datu glabāšanas ierīcēm, piemēram, attālinātiem serveriem, vietējiem lentes diskdziņiem vai optiskajiem spēļu automātiem. Vietējo cieto disku kā kešatmiņas izmantošana ir hierarhiskās glabāšanas pārvaldības galvenā koncepcija.
Tīmekļa kešatmiņas
Tīmekļa pārlūkprogrammas un tīmekļa starpniekserveri izmanto kešatmiņu, lai saglabātu iepriekšējās atbildes no tīmekļa serveriem, piemēram, tīmekļa lapas. Tīmekļa kešatmiņas samazina informācijas apjomu, kas jāpārraida pa tīklu. Kešatmiņā iepriekš saglabāto informāciju bieži vien var izmantot atkārtoti. Tas samazina joslas platumu un apstrādes prasības tīmekļa serverim, kā arī palīdz uzlabot tīmekļa lietotāju reaģēšanas spēju.
Mūsdienu tīmekļa pārlūkprogrammās tiek izmantota iebūvēta tīmekļa kešatmiņa, bet daži interneta pakalpojumu sniedzēji vai organizācijas izmanto arī kešēšanas starpniekserveri. Tā ir tīmekļa kešatmiņa, kas ir koplietojama visiem attiecīgā tīkla lietotājiem.
Meklētājprogrammas bieži vien indeksētās tīmekļa lapas dara pieejamas arī no savas kešatmiņas. Piemēram, Google pie katra meklēšanas rezultāta piedāvā saiti "Cached". Tas ir noderīgi, ja tīmekļa lapas uz laiku nav pieejamas no tīmekļa servera.
Kešēšana ar neuzticamiem tīkliem
Ierakstīšanas caurlaides darbība ir izplatīta neuzticamos tīklos (piemēram, Ethernet LAN). Protokols, ko izmanto, lai nodrošinātu, ka dati rakstīšanas kešatmiņā ir jēgpilni, ja tiek izmantotas vairākas rakstīšanas kešatmiņas, šādā gadījumā ir ļoti sarežģīts.
Piemēram, tīmekļa lapu kešatmiņas un klienta puses tīkla failu sistēmas kešatmiņas (piemēram, NFS vai SMB) parasti ir tikai lasāmās vai rakstāmās, lai tīkla protokols būtu vienkāršs un uzticams.
Atšķirība starp buferi un kešatmiņu
Buferis un kešatmiņa nav savstarpēji izslēdzoši jēdzieni; tos bieži izmanto arī kopā. Tomēr to izmantošanas iemesli ir atšķirīgi. Buferis ir vieta atmiņā, ko tradicionāli izmanto tāpēc, ka CPU instrukcijas nevar tieši adresēt datus, kas glabājas perifērijas ierīcēs. Datora atmiņa tiek izmantota kā starpposma krātuve.
Turklāt šādu buferi var būt iespējams izmantot, ja tiek montēts vai demontēts liels datu bloks (kā to pieprasa datu glabāšanas ierīce) vai ja datus var piegādāt citā secībā, nekā tie ir sagatavoti. Arī visu datu buferi parasti pārsūta secīgi (piemēram, uz cieto disku), tāpēc buferēšana pati par sevi dažkārt palielina pārsūtīšanas veiktspēju. Šīs priekšrocības ir pat tad, ja buferizētie dati tiek ierakstīti buferī vienu reizi un nolasīti no bufera vienu reizi.
Kešatmiņa arī palielina pārsūtīšanas veiktspēju. Daļa no palielinājuma rodas arī no tā, ka vairāki mazi pārskaitījumi apvienojas vienā lielā blokā. Taču galvenais veiktspējas pieaugums rodas tāpēc, ka ir liela iespēja, ka viens un tas pats datu kopums no kešatmiņas tiks nolasīts vairākas reizes vai ka drīz tiks nolasīti uzrakstītie dati. Vienīgais kešatmiņas mērķis ir samazināt piekļuves lēnākai datu glabāšanai. Kešatmiņa parasti ir arī abstrakcijas slānis, kas veidots tā, lai būtu neredzams no blakus esošo slāņu viedokļa. Tādējādi lietojumprogrammas vai klienti var nezināt, ka ir kešatmiņa.
Jautājumi un atbildes
J: Kas ir kešatmiņa?
A: Kešēšana ir datorzinātnē lietots termins, kas attiecas uz bieži izmantoto datu kopiju glabāšanu, lai tiem piekļūtu ātrāk, nekā atkārtoti iegūstot vai aprēķinot oriģinālos datus.
J: Kā darbojas kešēšana?
A: Kešēšana darbojas, izmantojot divu veidu datu nesējus - vienu, kas parasti ir diezgan liels, bet lēni pieejams, un otru, kam var piekļūt daudz ātrāk, bet kas parasti ir mazāks. Kešēšanas ideja ir izmantot ātrāko datu nesēju datu kopiju glabāšanai, lai piekļuve oriģinālajiem datiem aizņemtu mazāk laika vai būtu lētāka.
J: Kas ir buferis?
A: Buferis ir līdzīgs kešatmiņai, jo tajā tiek glabātas datu kopijas ātrākai piekļuvei, tomēr, izmantojot buferi, klients, kas piekļūst datiem, zina, ka pastāv buferis, un to pārvalda lietojumprogramma, savukārt, izmantojot kešatmiņu, klientiem nav jāzina, ka pastāv kešatmiņa.
J: Ko nozīmē atsauču lokalizācijas princips?
A: Atsauces lokālums nozīmē, ka, lietojumprogrammai piekļūstot noteiktiem strukturētu datu blokiem, tā, visticamāk, piekļūs arī citiem blokiem, kas atrodas tuvu tiem, kuriem sākotnēji tika piekļūts. Tas palīdz kešatmiņām labi darboties, jo tās parasti ir nelielas salīdzinājumā ar visiem pieejamajiem datiem.
Jautājums: Kāpēc lielākām kešatmiņām nepieciešams ilgāks laiks, lai meklētu ierakstus?
A: Lielākas kešatmiņas prasa vairāk laika, jo tajās ir vairāk saglabātās informācijas, un tāpēc to meklēšanai nepieciešams vairāk laika. Tās ir arī dārgākas, jo to glabāšanai ir vajadzīgi lielāki resursi.
J: Kā lokālums var palīdzēt uzlabot kešatmiņu darbību?
A. Lokalitāte palīdz uzlabot kešatmiņas darbību, jo, kad lietojumprogrammas piekļūst noteiktiem strukturētu datu blokiem, tām, visticamāk, būs vajadzīgi arī citi tuvumā esoši bloki, kurus tad var ātri iegūt no kešatmiņas, nevis iegūt tos no citur vai pārrēķināt no jauna.