Увеличение производительности кэшпамяти
Формула для среднего времени доступа к памяти в системах с кэш-памятью выглядит следующим образом:
Среднее время доступа = Время обращения при попадании + Доля промахов x Потери при промахе
Эта формула наглядно показывает пути оптимизации работы кэш-памяти: сокращение доли промахов, сокращение потерь при промахе, а также сокращение времени обращения к кэш-памяти при попадании. Ниже на рисунке 3.23 кратко представлены различные методы, которые используются в настоящее время для увеличения производительности кэш-памяти. Использование тех или иных методов определяется прежде всего целью разработки, при этом конструкторы современных компьютеров заботятся о том, чтобы система оказалась сбалансированной по всем параметрам.
| Метод | Доля промахов |
Потери при промахе |
Время обращения при попадании | Сложность аппаратуры | Примечания |
| Увеличение размера блока | + | - | 0 | ||
| Повышение степени ассоциативности | + | - | 1 | ||
| Кэш-память с вспомогательным кэшем | + | 2 | |||
| Псевдоассоциативные кэши | + | 2 | |||
| Аппаратная предварительная выборка команд и данных | + | 2 | Предварительная выборка данных затруднена | ||
| Предварительная выборка под управлением компилятора | + | 3 | Требует также неблокируемой кэш-памяти | ||
| Специальные методы для уменьшения промахов | + | 0 | Вопрос ПО | ||
| Установка приоритетов промахов по чтению над записями | + | 1 | Просто для однопроцессорных систем | ||
| Использование подблоков | + | + | 1 | Сквозная запись + подблок на 1 слово помогают записям | |
| Пересылка требуемого слова первым | + | 2 | |||
| Неблокируемые кэши | + | 3 | |||
| Кэши второго уровня | + | 2 | Достаточно дорогое оборудование | ||
| Простые кэши малого размера | - | + | 0 | ||
| Обход преобразования адресов во время индексации кэш-памяти | + | 2 | |||
| Конвейеризация операций записи для быстрого попадания при записи | + | 1 |