Sobes.tech
Middle

Ispričaj mi o pravilima rada keš memorije.

sobes.tech АИ

Одговор од АИ

Кеш меморија чува копије података како би убрзала приступ њима. Основна правила:

  1. Правило локалности (Locality of Reference):

    • Временска локалност: Ако је елемент података недавно коришћен, вероватно ће се поново користити ускоро.
    • Просторна локалност: Ако је елемент података коришћен, вероватно ће и суседни елементи ускоро бити коришћени.
  2. Политике замене кеша (Cache Replacement Policies): Одређују који блок података да се уклони када је кеш пун и потребно је место за нове податке. Чести политике:

    • FIFO (First-In, First-Out): Уклања нај"старији" блок.
    • LRU (Least Recently Used): Уклања блок који је најмање недавно коришћен.
    • LFU (Least Frequently Used): Уклања блок који је најмање често коришћен.
  3. Политике писања у кеш (Cache Writing Policies): Одређују када се промене у кешу синхронизују са главном меморијом.

    • Write-Through: Податци се истовремено пишу у кеш и у главну меморију. Обезбеђује конзистентност, али је спорије.
    • Write-Back: Податци се најпре пишу само у кеш. Главна меморија се ажурира касније, када се блок уклони из кеша или експлицитно означи као "загађен" (промењен). Брже је, али захтева механизам за праћење промена.
  4. Обрада пропуста у кешу (Cache Miss Handling): Одређује како систем реагује када тражени подаци нису у кешу.

    • Систем извлачи податке из следећег нивоа меморије (нпр. из главне меморије).
    • Податци се постављају у кеш (можда замењујући постојећи блок), а затим се пружају процесу који их је затражио.
  5. Правила когерентности кеша (Cache Coherence Rules): Важна у системима са више процесора, где више процесора може имати копије истих података у својим локалним кешевима. Обезбеђују конзистентност података између свих кешева. Примери протокола: MSI, MESI.

  6. Правила инвалидитета/ажурирања (Cache Invalidation/Update): Када се подаци промене на једном месту (нпр. у кешу једног процесора), потребно је инвалидовати (учинити неважећим) копију у другим кешевима или је ажурирати, како би се избегло коришћење застарелих података.