Лекция: Программная модель кэш-памяти

К описанной в разд. 8.1 программной модели учебной ЭВМ может быть под­ключена программная модель кэш-памяти, структура которой в общем виде отображена на рис. 5.2. Конкретная реализация кэш-памяти в описываемой программной модели показана на рис. 8.15.

Кэш-память содержит N ячеек (в модели N может выбираться из множест­ва {4, 8, 16, 32}), каждая из которых включает трехразрядное поле тега (адре­са ОЗУ), шестиразрядное поле данных и три однобитовых признака (флага):

□ Z — признак занятости ячейки;
□ U — признак использования;

□ W — признак записи в ячейку.

Таким образом, каждая ячейка кэш-памяти может дублировать одну любую ячейку ОЗУ, причем отмечается ее занятость (в начале работы модели все ячейки кэш-памяти свободны, VZ, = 0), факт записи информации в ячейку во время пребывания ее в кэш-памяти, а также использование ячейки (т. е. лю­бое обращение к ней).

Рис. 8.15.Структура модели кэш-памяти

Текущее состояние кэш-памяти отображается на экране в отдельном окне в форме таблицы, причем количество строк соответствует выбранному числу ячеек кэш. Столбцы таблицы определяют содержимое полей ячеек, например, так, как показано в табл. 8.3.

Таблица 8.3. Пример текущего состояния кэш-памяти

 

  Теги Данные Z U W

Для настройки параметров кэш-памяти можно воспользоваться диалоговым окном Кэш-память,вызываемым командой Вид| Кэш-память,а затем на­жать первую кнопку на панели инструментов открытого окна. После этих действий появится диалоговое окно Параметры кэш-памяти,позволяющее выбрать размер кэш-памяти, способ записи в нее информации и алгоритм замещения ячеек.

Напомним, что при сквозной записи при кэш-попадании в процессорных циклах записи осуществляется запись как в ячейку кэш-памяти, так и в ячей­ку ОЗУ, а при обратной записи — только в ячейку кэш-памяти, причем эта ячейка отмечается битом записи (Wt:= 1). При очистке ячеек, отмеченных

битом записи, необходимо переписать измененное значение ноля данных в соответствующую ячейку ОЗУ.

При кэш-промахе следует поместить в кэш-память адресуемую процессором ячейку. При наличии свободных ячеек кэш-памяти требуемое слово помеща­ется в одну из них (в порядке очереди). При отсутствии свободных ячеек сле­дует отыскать ячейку кэш-памяти, содержимое которой можно удалить, запи­сав на его место требуемые данные (команду). Поиск такой ячейки осуществ­ляется с использованием алгоритма замещения строк.

В модели реализованы три различных алгоритма замещения строк:

случайное замещение, при реализации которого номер ячейки кэш-памяти
выбирается случайным образом;

очередь, при которой выбор замещаемой ячейки определяется временем
пребывания ее в кэш-памяти;

бит использования, случайный выбор осуществляется только из тех ячеек, которые имеют нулевое значение флага использования.

Напомним, что бит использования устанавливается в 1 при любом обращении к ячейке, однако, как только все биты U, установятся в 1, все они тут же сбрасываются в 0, так что в кэш всегда ячейки разбиты на два непересекаю­щихся подмножества по значению бита U — те, обращение к которым со­стоялось относительно недавно {после последнего сброса вектора U) имеют значение U = 1, иные — со значением U = 0 являются «кандидатами на уда­ление» при использовании алгоритма замещения «бит использования».

Если в параметрах кэш-памяти установлен флаг «с учетом бита записи», то все три алгоритма замещения осуществляют поиск «кандидата на удаление» прежде всего среди тех ячеек, признак записи которых не установлен, а при отсутствии таких ячеек (что крайне маловероятно) — среди всех ячеек кэш­памяти. При снятом флаге «с учетом бита записи» поиск осуществляется по всем ячейкам кэш-памяти без учета значения W.

Оценка эффективности работы системы с кэш-памятью определяется числом кэш-попаданий по отношению к общему числу обращений к памяти. Учиты­вая разницу в алгоритмах записи в режимах сквозной и обратной записи, эф­фективность использования кэш-памяти вычисляется по следующим выра­жениям (соответственно для сквозной и обратной записи):

 

где:

К — коэффициент эффективности работы кэш-памяти;

So— общее число обращений к памяти;

SK— число кэш-попаданий;

SK— число сквозных записей при кэш-попадании (в режиме сквозной
записи);

S'K— число обратных записей (в режиме обратной записи).

еще рефераты
Еще работы по информатике