Существование двух копий данных – в КЭШе и оперативной памяти – порождает проблему согласования данных.
Вытеснение данных из КЭШа
23. Если данные не были изменены, то нужно просто сбросить бит действительности
24. Если данные были изменены, то нужно скопировать их в основную память
2) Если во время нахождения данных в КЭШе были изменены данные в основной памяти – копия в КЭШе становится недостоверной.
Есть 2 варианта решения проблемы:
25. Сквозная запись – при каждой записи в основную память просматривается кэш. Если элемент найден в КЭШе, переписываются обе копии, если нет – только то, что в основной памяти
26. Обратная запись – при каждой записи в основную память просматривается кэш. Если элемент найден в КЭШе, переписывается только копия в КЭШе, если нет – то, что в основной памяти.
В некоторых алгоритмах замещения предусмотрена первоочередная выгрузка модифицированных, грязных данных. Также модифицированные данные могут выгружаться не только, когда нужно освободить кэш, но и в фоновом режиме, когда ОС больше нечем заняться.
|
|
Детерминированный и случайный способы отображения основной памяти на кэш.
Работа с КЭШем (алгоритм поиска, алгоритм замещения) напрямую зависит от способа отображения основной памяти на кэш.
Способы бывают разные, но основное требование к отображению – ПРОЗРАЧНОСТЬ. То есть правило отображения основной памяти на кэш не должно зависеть от работы программ и пользователей, должно быть постоянным.
Широко распространены 2 основные схемы отображения:
- случайное
- детерминированное