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:
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.