Цель работы – ознакомиться с организацией и принципом работы кэш-памяти, а также алгоритмами замещения при различных режимах записи.
Теоретические положения:
Между медленнодействующей динамической основной памятью (ОП) и процессором размещается небольшая, но быстродействующая буферная память. В процессе работы системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии – производится отображение участков ОП на буферную память. Если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться существенного повышения производительности ЭВМ. Такая буферная память называется кэш-памятью. Кэш-память скрыта от программиста в том смысле, что он не может ее адресовать.
В общем виде использование кэш-памяти поясним следующим образом. Когда ЦП пытается прочитать слово из основной памяти, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово, извлеченное из кэш-памяти. Такая ситуация называется кэш-попаданием. При отсутствии слова в кэше, то есть при кэш-промахе, требуемое слово передается в ЦП из основной памяти, но одновременно из ОП в кэш-память пересылается блок данных, содержащий это слово.
На эффективность применения кэш-памяти в иерархической системе памяти наиболее существенно влияют:
· емкость кэш-памяти;
· размер строки;
· способ отображения основной памяти на кэш-память;
· алгоритм замещения информации в заполненной кэш-памяти;
· алгоритм согласования содержимого основной и кэш-памяти;
· число уровней кэш-памяти.
К программной модели учебной ЭВМ может быть подключена программная модель кэш-памяти, реализация которой отображена на рисунке 13. Кэш-память содержит N ячеек (в модели N может выбираться из множества {4, 8, 16, 32}), каждая из которых включает трехразрядное поле тега (адреса ОЗУ), шестиразрядное поле данных и три однобитовых признака (флага):
Z – признак занятости ячейки;
U – признак использования;
W – признак записи в ячейку.
Таким образом, каждая ячейка кэш-памяти может дублировать одну любую ячейку ОЗУ, причем отмечается ее занятость (в начале работы модели все ячейки кэш-памяти свободны, Zi = 0), факт записи информации в ячейку во время пребывания ее в кэш-памяти, а также использование ячейки (т. е. любое обращение к ней).
Вариант задания:
№ варианта
Номера команд программы
RD #6
CALL 006
WR11
WRR2
PUSH R2
RET
JMP 002
Пояснение к варианту задания:
Номера варианта
Режим записи
Алгоритм замещения
Сквозная
СЗ, без учета бита записи
Обратная
О, с учетом бита записи
Последовательность состояний кэш-памяти размером 4 ячейки при однократном выполнении программы (команды 1-7):
RD #6 WR R2
CALL 006 PUSH R2
JMP 002 RET
WR 11 JMP 002
Последовательность микрокоманд при выполнении команды wr с отметкой тех микрокоманд, в которых возможна модификация кэш-памяти:
Для варианта кэш-памяти размером 8 ячеек – последовательность номеров замещаемых ячеек кэш-памяти для второго варианта параметров кэш-памяти при двукратном выполнении программы (команды 1-7):