Sobes.tech
Middle

Pastāsti man par kešatmiņas darbības noteikumiem.

sobes.tech AI

Atbilde no AI

Kešatmiņa glabā datu kopijas, lai paātrinātu piekļuvi tiem. Galvenie noteikumi:

  1. Atrašanās vietas noteikums (Locality of Reference):

    • Laika tuvums: Ja datu elements tika nesen izmantots, ir liela iespēja, ka tas tiks izmantots vēlreiz tuvākajā nākotnē.
    • Telpiska tuvums: Ja datu elements tika izmantots, ir liela iespēja, ka blakus esošie elementi arī tiks izmantoti tuvākajā nākotnē.
  2. Aizvietošanas noteikumi (Cache Replacement Policies): Nosaka, kuru datu bloku jāizņem no kešatmiņas, kad tā ir pilna un nepieciešama vieta jauniem datiem. Izplatītākās politikas:

    • FIFO (First-In, First-Out): Noņem visvecāko bloku.
    • LRU (Least Recently Used): Noņem to bloku, pie kura visilgāk nav bijusi piekļuve.
    • LFU (Least Frequently Used): Noņem to bloku, kuru vismazāk ir izmantojuši.
  3. Rakstīšanas noteikumi (Cache Writing Policies): Nosaka, kad kešatmiņā veiktās izmaiņas jāsinhronizē ar galveno atmiņu.

    • Write-Through: Dati tiek rakstīti vienlaicīgi gan kešatmiņā, gan galvenajā atmiņā. Nodrošina saskaņotību, bet ir lēnāka.
    • Write-Back: Dati vispirms tiek rakstīti tikai kešatmiņā. Galvenā atmiņa tiek atjaunināta vēlāk, kad bloks tiek izņemts vai skaidri marķēts kā "netīrs" (izmainīts). Ātrāka, bet prasa izmaiņu uzraudzības mehānismu.
  4. Kešatmiņas kļūdu apstrāde (Cache Miss Handling): Nosaka, kā sistēma reaģē, ja pieprasītie dati nav kešatmiņā.

    • Dati tiek iegūti no nākamā līmeņa atmiņas (piemēram, galvenās atmiņas).
    • Dati tiek ievietoti kešatmiņā (var aizstāt esošo bloku), un pēc tam tiek nodrošināti pieprasītajam procesam.
  5. Koherences noteikumi (Cache Coherence Rules): Svarīgi daudzprocesoru sistēmās, kur vairākas procesora kopijas var saturēt vienus un tos pašus datus. Nodrošina datu saskaņotību starp visām kešatmiņām. Piemēri: MSI, MESI protokoli.

  6. Invalīdu un atjaunināšanas noteikumi (Cache Invalidation/Update): Kad dati tiek mainīti vienā vietā (piemēram, vienā procesora kešatmiņā), nepieciešams vai nu invalīdēt (padarīt nederīgu) citu kešatmiņu kopijas, vai tās atjaunināt, lai izvairītos no novecojušu datu izmantošanas.