Расскажи о правилах работы кеша (cache).
AI答案
sobes.tech AI
Кеш хранит копии данных, чтобы ускорить доступ к ним. Основные правила:
-
Правило близости (Locality of Reference):
- Временная близость: Если элемент данных был использован недавно, вероятно, он будет использован снова в ближайшее время.
- Пространственная близость: Если элемент данных был использован, вероятно, соседние с ним элементы также будут использованы в ближайшее время.
-
Правила замещения (Cache Replacement Policies): Определяют, какой блок данных удалить из кеша, когда он заполнен и требуется место для новых данных. Распространенные политики:
- FIFO (First-In, First-Out): Удаляется самый "старый" блок.
- LRU (Least Recently Used): Удаляется блок, к которому обращались наименее давно.
- LFU (Least Frequently Used): Удаляется блок, который использовался наименее часто.
-
Правила записи (Cache Writing Policies): Определяют, когда изменения в кеше синхронизируются с основной памятью.
- Write-Through: Данные записываются одновременно и в кеш, и в основную память. Обеспечивает согласованность, но медленнее.
- Write-Back: Данные сначала записываются только в кеш. Основная память обновляется позже, когда блок удаляется из кеша или явно помечается как "грязный" (измененный). Быстрее, но требует механизма отслеживания изменений.
-
Правила при промахе кеша (Cache Miss Handling): Определяют, как система реагирует, когда запрашиваемые данные отсутствуют в кеше.
- Система извлекает данные из следующего уровня памяти (например, из основной памяти).
- Данные помещаются в кеш (возможно, заменяя существующий блок), и затем предоставляются запросившему процессу.
-
Правила когерентности (Cache Coherence Rules): Важны в многопроцессорных системах, где несколько процессоров могут иметь копии одних и тех же данных в своих локальных кешах. Обеспечивают согласованность данных между всеми кешами. Примеры протоколов: MSI, MESI.
-
Правила инвалидации/обновления (Cache Invalidation/Update): При изменении данных в одном месте (например, в кеше одного процессора), необходимо либо инвалидировать (сделать недействительной) копию в других кешах, либо обновить ее, чтобы избежать использования устаревших данных.