Программная модель кэш-памяти
К описанной в разд. 8.1 программной модели учебной ЭВМ может быть подключена программная модель кэш-памяти, структура которой в общем виде отображена на рис. 5.2. Конкретная реализация кэш-памяти в описываемой программной модели показана на рис. 8.15. Кэш-памягь содержит N ячеек (в модели N может выбираться из множества (4, 8, 16, 32», каждая из которых включает разрядное поле тега (адреса ОЗУ), шестиразрядное поле данных и три однобитовых признака (флага). □ Z — признак занятости ячейки; □ U — признак использования; □ W — признак записи в ячейку. Таким образом, каждая ячейка кэш-памяти может дублировать одну любую ячейку ОЗУ, причем отмечается ее занятость (в начале работы модели все ячейки кэш-памяти свободны, (Страница259) Рис. 8.15. Структура модели кэш-памяти Текущее состояние кэш-памяти отображается на экране в отдельном окне в форме таблицы, причем количество строк соответствует выбранному числу ячеек кэш. Столбцы таблицы определяют содержимое полей ячеек, например, так, как показано в табл. 8.3. Таблица 8.3. Пример текущего состояния кэш-памяти
Для настройки параметров кэш-памяти можно воспользоваться диалоговым окном Кэш-память,вызываемым командой Вид Кэш-память,а затем нажать первую кнопку на панели инструментов открытого окна. После этих действий появится диалоговое окно Параметры кэш-памяти,позволяющее выбрать размер кэш-памяти, способ записи в нее информации и алгоритм замещения ячеек. Напомним, что при сквозной записи при кэш-попадании в процессорных циклах записи осуществляется запись как в ячейку кэш-памяти, так и в ячейку ОЗУ, а при обратной записи — только в ячейку кэш-памяти, причем эта ячейка отмечается битом записи (Wi=1). При очистке ячеек, отмеченных битом записи, необходимо переписать измененное значение поля данных в соответствующую ячейку ОЗУ. При кэш-промахе следует поместить в кэш-память адресуемую процессором ячейку. При наличии свободных ячеек кэш-памяти требуемое слово помещается в одну из них (в порядке очереди). При отсутствии свободных ячеек следует отыскать ячейку кэш-памяти, содержимое которой можно удалить, записав на его место требуемые данные (команду). Поиск такой ячейки осуществляется с использованием алгоритма замещения строк, В модели реализованы три различных алгоритма замещения строк: □ случайное замещение, при реализации которого номер ячейки кэш-памяти выбирается случайным образом; □ очередь, при которой выбор замещаемой ячейки определяется временем пребывания ее в кэш-памяти; □ бит использования, случайный выбор осуществляется только из тех ячеек, которые имеют нулевое значение флага использования. Напомним, что бит использования устанавливается в 1 при любом обращении к ячейке, однако, как только все биты Ui установятся в 1, все они тут же сбрасываются в 0, так что в кэш всегда ячейки разбиты на два непересекающихся подмножества по значению бита U — те, обращение к которым состоялось относительно недавно (после последнего сброса вектора U) имеют значение U=1, иные — со значением U=0 являются "кандидатами на удаление" при использовании алгоритма замещения "бит использования". Если в параметрах кэш-памяти установлен флаг "с учетом бита записи", то все три алгоритма замещения осуществляют поиск "кандидата на удаление" прежде всего среди тех ячеек, признак записи которых не установлен, а при отсутствии таких ячеек (что крайне маловероятно) — среди всех ячеек кэш-памяти. При снятом флаге "с учетом бита записи" поиск осуществляется по всем ячейкам кэш-памяти без учета значения W. Оценка эффективности работы системы с кэш-памятью определяется числом кэш-попаданий по отношению к общему числу обращений к памяти. Учитывая разницу в алгоритмах записи в режимах сквозной и обратной записи» эффективность использования кэш-памяти вычисляется по следующим выражениям (соответственно для сквозной и обратной записи):
где: □ K — коэффициент эффективности работы кэш-памяти; □ S0 — общее число обращений к памяти; □ SK — число кэш-попаданий; □ □
|