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

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

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

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

□ U — признак использования;

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

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

Программная модель кэш-памяти - student2.ru

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

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

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

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

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

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

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

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

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

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

Напомним, что бит использования устанавливается в 1 при любом обращении к ячейке, однако, как только все биты Ut установятся в 1, все они тут же сбрасываются в 0, так что в кэш всегда ячейки разбиты на два непересекающихся подмножества по значению бита U — те, обращение к которым состоялось относительно недавно {после последнего сброса вектора U ) имеют значение U = 1, иные — со значением U = 0 являются "кандидатами на удаление" при использовании алгоритма замещения "бит использования". Если в параметрах кэш-памяти установлен флаг "с учетом бита записи", то все три алгоритма замещения осуществляют поиск "кандидата на удаление" прежде всего среди тех ячеек, признак записи которых не установлен, а при отсутствии таких ячеек (что крайне маловероятно) — среди всех ячеек кэшпамяти. При снятом флаге "с учетом бита записи" поиск осуществляется по всем ячейкам кэш-памяти без учета значения W.

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

Программная модель кэш-памяти - student2.ru

где:

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

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

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

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

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

Вспомогательные таблицы

В данном разделе представлены вспомогательные таблицы (табл. 8.4—8.8) для работы с моделью учебной ЭВМ.

Таблица 8.4. Таблица команд учебной ЭВМ

МЛ\СТ
NOP JMP   MOV  
IN JZ RD RD RDI
OUT JNZ WR WR  
IRET JS ADD ADD ADI
WRRB JNS SUB SUB SBI
WRSP JO MUL MUL MULI
PUSH JNO DIV DIV DIVI
POP JRNZ   IN  
RET INT El OUT  
HLT CALL DI    
Таблица 8.5.Типы адресации, их коды и обозначение
Обозначение Код Тип адресации Пример команды
  Прямая (регистровая) ADD 23 (ADD R3)
# Непосредственная ADD #33
@ Косвенная ADD @33
Обозначение Код Тип адресации Пример команды
[ ] Относительная ADD [33]
@R Косвенно-регистровая ADD @R3
@R+ Индексная с постинкрементом ADD @R3+
-@R Индексная с преддекрементом ADD -@R3
                   

В табл. 8.6 приняты следующие обозначения:

□ DD — данные, формируемые командой в качестве (второго) операнда: прямо или косвенно адресуемая ячейка памяти или трехразрядный непосредственный операнд;

□ R* — содержимое регистра или косвенно адресуемая через регистр ячейка памяти;

□ ADR* — два младших разряда ADR поля регистра CR;

□ V — адрес памяти, соответствующий вектору прерывания;

□ М(*) — ячейка памяти, прямо или косвенно адресуемая в команде; О I — пятиразрядный непосредственный операнд со знаком.

Таблица 8.6. Система команд учебной ЭВМ

Программная модель кэш-памяти - student2.ru

Программная модель кэш-памяти - student2.ru

Программная модель кэш-памяти - student2.ru

Таблица 8.7.Таблица кодов ASCII (фрагмент)

                   
  I A В С D Е F
      @ Р £ P         A Р а Р
    ! А Q а q         Б С б с
      В R b r         В т в т
    # С S с s         Г У г У
    $ D т d t         Д ф д -в-
    % Е и е u         Е X е X
    & F V f V         Ж Ц ж ц
    « G W g w         ч ч
    ( Н X h X         И ш и ш
    ) I Y i У         й щ й Щ
А         J Z j z         к ъ к ъ
В     + ; К [ k {         л ы л ы
С       < L             м ь м ь
D     - = М ] m }         н э н э
Е       > N   n           щ ю Щ ю
F     / ? О _           п я п я

Программная модель кэш-памяти - student2.ru

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

Таблица 8.8. Перевод НЕХ-кодов в десятичные числа

адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.

Для того чтобы получить результат выполнения программы, пользователь должен:

- ввести программу в память ЭВМ;

- определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;

- установить в PC стартовый адрес программы; □ перевести модель в режим Работа.

Каждое из этих действий выполняется посредством интерфейса модели, описанного в главе 8. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программыс последующим ассемблированием.

Цель настоящей лабораторной работы — знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шагнекоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.

Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел (см. форматы команд на рис. 8.3, коды команд и способов адресации в табл. 8.2—8.4).

В настоящей лабораторной работе будем программировать ЭВМ в машинных кодах.

Пример

Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаги зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 9.1).

Таблица 9.1.Команды и коды

Последовательность Значения
Команды RD #20 WR 30 ADD #5 WR @30   JNZ 002
Коды 21 1 020 22 0 030 23 1 005 22 2 030   12 0 002

Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асе, PC и ячейки ОЗУ 020 и 030) в табл. 9.2.

Таблица 9.2.Содержимое регистров

PC Асс М(30) М(20) PC Асс М(30) М(20)
   
         
       
       

Номер варианта выбираем по двум последним цифрам в зачетной книжке. Если номер больше 28 то от цифры отнимаем 28.

Задание для нечетных вариантов

Наши рекомендации