Sobes.tech
Middle

Räägi mulle vahemälu tööreeglitest.

sobes.tech AI

Vastus AI-lt

Cache hoiab andmekopeid, et kiirendada nendele juurdepääsu. Peamised reeglid:

  1. Lähedusreegel (Locality of Reference):

    • Ajutine lähedus: Kui andmeelementi kasutati hiljuti, on tõenäoline, et seda kasutatakse uuesti lähitulevikus.
    • Ruumi lähedus: Kui andmeelementi kasutati, on tõenäoline, et selle kõrval olevad elemendid kasutatavad ka lähitulevikus.
  2. Asendamise reeglid (Cache Replacement Policies): Määravad, millist andmekildu eemaldada cache'ist, kui see on täis ja vaja on ruumi uutele andmetele. Levinumad poliitikad:

    • FIFO (First-In, First-Out): Eemaldatakse vanim blokk.
    • LRU (Least Recently Used): Eemaldatakse kõige vähem hiljuti kasutatud blokk.
    • LFU (Least Frequently Used): Eemaldatakse kõige vähem kasutatud blokk.
  3. Kirjutamise reeglid (Cache Writing Policies): Määravad, millal tehakse muudatused cache'is ja peamises mälus sünkroniseeritud.

    • Write-Through: Andmed kirjutatakse samaaegselt nii cache'i kui peamisse mällu. Tagab kooskõla, kuid on aeglasem.
    • Write-Back: Andmed kirjutatakse esmalt ainult cache'i. Peamine mälu uuendatakse hiljem, kui blokk eemaldatakse või selgelt märgistatakse "mustaks" (muudetud). Kiirem, kuid nõuab muudatuste jälgimise mehhanismi.
  4. Cache'i möödaläinud juhtumid (Cache Miss Handling): Määrab, kuidas süsteem reageerib, kui nõutavad andmed puuduvad cache'ist.

    • Andmed tuuakse järgmise taseme mälust (näiteks peamisest mälust).
    • Andmed paigutatakse cache'i (võib asendada olemasoleva bloki) ja seejärel edastatakse taotlevale protsessile.
  5. Koherentsuse reeglid (Cache Coherence Rules): Oluline mitmeprotsessorilistes süsteemides, kus mitu protsessorit võivad omada sama andmete koopiat. Tagab andmete kooskõla kõigi cache'ide vahel. Näited: MSI, MESI protokollid.

  6. Kehtetuks muutmise / uuendamise reeglid (Cache Invalidation/Update): Kui andmed muutuvad ühes kohas (näiteks ühe protsessori cache'is), tuleb kas kehtetuks teha (teha kehtetuks) teiste cache'ide koopiad või neid uuendada, et vältida vananenud andmete kasutamist.