Принципы работы кэш-памяти
Цель работы – ознакомиться с организацией и принципом работы кэш-памяти, а также алгоритмами замещения при различных режимах записи.
Теоретические положения:
Между медленнодействующей динамической основной памятью (ОП) и процессором размещается небольшая, но быстродействующая буферная память. В процессе работы системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии – производится отображение участков ОП на буферную память. Если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться существенного повышения производительности ЭВМ. Такая буферная память называется кэш-памятью. Кэш-память скрыта от программиста в том смысле, что он не может ее адресовать.
В общем виде использование кэш-памяти поясним следующим образом. Когда ЦП пытается прочитать слово из основной памяти, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово, извлеченное из кэш-памяти. Такая ситуация называется кэш-попаданием. При отсутствии слова в кэше, то есть при кэш-промахе, требуемое слово передается в ЦП из основной памяти, но одновременно из ОП в кэш-память пересылается блок данных, содержащий это слово.
На эффективность применения кэш-памяти в иерархической системе памяти наиболее существенно влияют:
· емкость кэш-памяти;
· размер строки;
· способ отображения основной памяти на кэш-память;
· алгоритм замещения информации в заполненной кэш-памяти;
· алгоритм согласования содержимого основной и кэш-памяти;
· число уровней кэш-памяти.
К программной модели учебной ЭВМ может быть подключена программная модель кэш-памяти, реализация которой отображена на рисунке 13. Кэш-память содержит N ячеек (в модели N может выбираться из множества {4, 8, 16, 32}), каждая из которых включает трехразрядное поле тега (адреса ОЗУ), шестиразрядное поле данных и три однобитовых признака (флага):
Z – признак занятости ячейки;
U – признак использования;
W – признак записи в ячейку.
Таким образом, каждая ячейка кэш-памяти может дублировать одну любую ячейку ОЗУ, причем отмечается ее занятость (в начале работы модели все ячейки кэш-памяти свободны, Zi = 0), факт записи информации в ячейку во время пребывания ее в кэш-памяти, а также использование ячейки (т. е. любое обращение к ней).
Вариант задания:
№ варианта | Номера команд программы | ||||||
RD #99 | WR R6 | MOV R7, R6 | ADD R7 | PUSH R7 | CALL 006 | POP R8 |
Пояснение к варианту задания:
Номера варианта | Режим записи | Алгоритм замещения |
Сквозная | БИ, без учета бита записи | |
Обратная | БИ, с учетом бита записи |
![]() |
Последовательность состояний кэш-памяти размером 4 ячейки при выполнении программы (команды 1-7):
RD #99 PUSH R7
![]() |
WR R6 CALL 006
![]() |
MOV R7, R6 POP R8
ADD R7
Последовательность микрокоманд при выполнении команды wr с отметкой тех микрокоманд, в которых возможна модификация кэш-памяти:
Для варианта кэш-памяти размером 8 ячеек – последовательность номеров замещаемых ячеек кэш-памяти для второго варианта параметров кэш-памяти при выполнении программы (команды 1-7):
![]() | ![]() |
RD #99 PUSH R7
![]() | ![]() | ||
WR R6 CALL 006
![]() |
![]() |
MOV R7, R6 POP R8
![]() |
ADD R7