Временная местность - это свойство, проявляемое приложениями и способ доступа к данным. Нет единого практического кеш-дизайна, оптимального для всех случаев.
Конечно, приложения имеют определенную форму пространственной локальности (доступ к соседним блокам), однако временная локальность не всегда существует, например. потоковое поведение.
Самое важное, что следует учитывать при разработке кеша для временной локации, - это политика распределения блоков замены и кэша. Подход LRU подходит к оптимальному случаю для большинства приложений, но не для всех (существуют патологические случаи) и практичен только для кешей с ограниченной ассоциативностью (например, 4-х способами). Дизайнер кэша также может выбрать политику распределения для записи (например, write-no-allocate с оптимизацией буфера объединения записи/объединения).
Оптимизация временных местоположений, как правило, представляет собой программную задачу, в которой могут быть применены несколько методов, таких как блокирование и игнорирование кэша алгоритмов. Существует также очень полезная метрика/метод, где вы можете охарактеризовать временную локальность приложений и называется повторное использование. Этот метод предполагает полностью ассоциативный кеш с заменой LRU и размером кеширования одного слова. Обычно это моделируется как стек, а когда попадает в кеш, положение в стеке дает вам расстояние (тогда вы перемещаете это вверху стека и оставляете отверстие), тогда вы можете генерировать гистограммы и посмотрим, что произойдет.
Здесь может быть бесконечное обсуждение мест, потому что это тема исследования навсегда.
Bigger is * not * better. Когерентность кэша становится дороже, более вероятно, что ложное совместное использование становится более продолжительным. –
Что происходит с кэшем? – user602774
Вы не дали сценарий для этого. В некоторых случаях, возможно, компилятор мог хранить данные в регистре, который так же быстро, как может быть. –