Кэш-память
- Зачем.Локальность.За всё время существования вычислительной техники устойчиво наблюдаются два явления:
- Основная память работает значительно медленнее процессора.
- Обращения к памяти происходят локально в пространстве и времени.
- Организация буферизации:
- Вся оперативная память может быть разбита на блоки.
- Кэш состоит из строк вида: бит достоверности, тэг, блок, возможная дополнительная информация.
- Обмен между ОЗу и кэше происходит блоками.
- Среднее время доступа = время доступа к нужному полю кэш-строки + ( 1 - коэффициент совпадения) время доступа к основной памяти.
- Виды:
- прямого отображения
- полностью ассоциативный
- n-канальный множественно-ассоциативный кэш
- Промахи
- стратегии записи:
- Сквозная.
- Обратная.
- С процессом записи связана еще одна проблема: а что происходит, если нужно записать что-либо в ячейку, которая в текущий момент не находится в кэш-памяти? Должны ли данные переноситься в кэш-память или просто записываться в основную память? Ни один из вариантов не является во всех отношениях лучшим. В большинстве разработок, в которых применяется обратная запись, данные переносятся в кэш-память. Эта технология называется заполнением по записи (write allocation). С другой стороны, в тех разработках, где применяется сквозная запись, обычно элемент в кэш-память при записи не помещается, поскольку эта возможность усложняет разработку. Заполнение по аписи полезно только в том случае, если имеют место повторные записи в одно и то же слово или в разные слова в пределах одной строки кэш-памяти.
- Разделение кэш-памяти на память данных и память инструкций.
- Разделенная кэш-память позволяет осуществлять параллельный доступ, а общая — нет. К тому же, поскольку команды обычно не меняются во время выполнения, содержание командной кэш-памяти никогда не приходится записывать обратно в основную память, что упрощает реализацию.
- Уровни кэш-памяти.
- пример из Marsa
- Tools-Data Cache Simulator
- пример на предсказании не перехода.
- Управление кэшированием. Текущие абстракции.