Sobes.tech
Middle

Opowiedz mi o zasadach działania pamięci podręcznej.

sobes.tech AI

Odpowiedź od AI

Pamięć podręczna przechowuje kopie danych, aby przyspieszyć dostęp do nich. Główne zasady:

  1. Zasada lokalności (Locality of Reference):

    • Lokalność czasowa: Jeśli element danych był niedawno używany, prawdopodobnie zostanie użyty ponownie wkrótce.
    • Lokalność przestrzenna: Jeśli element danych był używany, prawdopodobnie sąsiednie elementy również będą używane wkrótce.
  2. Polityki wymiany pamięci podręcznej (Cache Replacement Policies): Określają, który blok danych usunąć, gdy cache jest pełna i potrzebne jest miejsce na nowe dane. Popularne polityki:

    • FIFO (First-In, First-Out): Usuwa najstarszy blok.
    • LRU (Least Recently Used): Usuwa blok, do którego odwoływano się najrzadziej.
    • LFU (Least Frequently Used): Usuwa blok, który był używany najrzadziej.
  3. Polityki zapisu do cache (Cache Writing Policies): Określają, kiedy zmiany w cache są synchronizowane z główną pamięcią.

    • Write-Through: Dane są zapisywane jednocześnie do cache i głównej pamięci. Zapewnia spójność, ale jest wolniejsze.
    • Write-Back: Dane najpierw są zapisywane tylko do cache. Główna pamięć jest aktualizowana później, gdy blok jest usuwany z cache lub wyraźnie oznaczony jako "brudny" (zmieniony). Jest szybsze, ale wymaga mechanizmu śledzenia zmian.
  4. Obsługa nieudanych odwołań do cache (Cache Miss Handling): Określają, jak system reaguje, gdy żądane dane nie znajdują się w cache.

    • System pobiera dane z następnego poziomu pamięci (np. z głównej pamięci).
    • Dane są umieszczane w cache (ewentualnie zastępując istniejący blok), a następnie udostępniane procesowi żądającemu.
  5. Zasady spójności cache (Cache Coherence Rules): Ważne w systemach wieloprocesorowych, gdzie kilka procesorów może mieć kopie tych samych danych w swoich lokalnych cache. Zapewniają spójność danych między wszystkimi cache. Przykłady protokołów: MSI, MESI.

  6. Zasady unieważniania/aktualizacji (Cache Invalidation/Update): Gdy dane są zmieniane w jednym miejscu (np. w cache jednego procesora), konieczne jest unieważnienie (uczynić nieważną) kopii w innych cache lub jej aktualizacja, aby uniknąć używania przestarzałych danych.