- •Министерство образования российской федерации
- •Введение
- •Цель работы
- •Теоретические сведения
- •Выбор обобщённой структурной схемы и обзор метода моделирования
- •Описание алгоритма моделирования.
- •Объекты и средства исследования
- •Подготовка к работе Массивы Nblok, KaskRd, KashWr.
- •Массив MesiPr..
- •Функция InKash
- •Функция Other
- •Порядок работы
- •Результаты работы Тестовые примеры моделирования
- •Варианты заданий для выполнения лабораторной работы
- •Контрольные вопросы
- •Библиографический список
Массив MesiPr..
Массив содержит в себе информацию о содержимом MESI протокола. Массив трёхмерный:
— 1-ое измерение - номер кэша
— 2-ое и 3-е измерение - сам MESI протокол (2-ое измерение - признак строки, 3-е - номер блока, хранящегося в строке кэша).
Признаки строк кэш храняться в числовом виде: 1-М, 2-Е,3 - S, 4 -I.
Функция _MESI(возвращает символьное значение признака строки кэш).На входе:числовое значение признака строки кэш.
На выходе:символьное значение признака строки кэш.
Функция Last(изменяет MESI протокол при записи в кэш блока ОП и присваивает строке кэш, в которую записан данный блок, соответствую-щий признак).
На входе:номер кэш; признак строки, в которую должен быть записан блок ОП; номер блока ОП, который надо записать в кэш.
На выходе:процедура изменяет содержимое MESI протоколов (они хранятся в массиве MesiPR).
Функция InKash
На входе: номер блока ОП.
На выходе:номер строки кэш, помеченного маркером на экране монитора, где находится данный блок ОП, если его там нет, то возвращается 0.
Функция Other
На входе: номер блока ОП; номер кэш, где находится данный блок; номер строки, где находится данный блок.
На выходе: функция возвращает 0, если в других кэш нет данного блока ОП, иначе возвращается признак той строки другого кэш, где хранится этот блок.
Функция ClearPR
(удаляет блок ОП из кэш, помеченного маркером (на экране монитора).
На входе:номер блока ОП, который надо удалить из кэш.
На выходе:процедура изменяет содержимое MESI протоколов (они хранятся в массиве MesiPR).
Функция Npr
На выходе:номер процессора, который должен произвести действие с памятью.
^
Процедура TForm1.N1Click
(очищает весь кэш, помеченного маркером (на экране монитора).
Процедура Akt
(осуществляет само моделирование MESI протоколов).
На входе:номер блока ОП, над которым процессор должен произвести действие.На выходе:процедура изменяет содержимое MESI протоколов (они хранятся в массиве MesiPR), выводит сообщения в окно «Хронология», заносит информацию в массивы KashRd и KashWr, которые обрабатывает процедура TForml.Timer1Timer и выводит сообщения о производимых процессором действиях.
Порядок работы
В окне, появляющемся в Windows после запуска программы есть 6 основных полей.
Внизу расположены 4 окна - сами MESI-протоколы (данная мультипроцессорная система состоит из 4-х процессоров и поэтому требуется 4 MESI-протокола, для каждого кэша). Окно разделено на два столбца: первый - признак блока оперативной памяти, хранимого в данной строке кэш; второй - номер блока оперативной памяти, хранимого в данной строке кэш. То есть, чтобы получить информацию о содержимом нужной строки КП, нужно выбрать строчку одном из этих окон (наверху над каждым окном написано к кэшу какого процессора относится данный MESI-протокол: 1-му, 2-му, 3-му или 4-му процессору), номер строки будет соответствовать номеру строки в КП; первый символ в строке будет обозначать статус строки: M,E,S или I, а во втором столбце будет находиться номер блока, хранимого в данной строке кэш памяти.
Справа находятся «блоки оперативной памяти» каждый блок пронумерован.
Над каждым окном MESI-протокола находится маркер. Если маркер над этим окном помечен, то работа (чтение из ОП или запись в ОП) идёт с данным кэш. Например, если помечено первое окно MESI-протокола, то данные будут из оперативной памяти будут считываться или записываться первым процессором.
Два маркера: «Чтение из памяти» и «Запись в память» - означают действие производимое процессором: чтение или запись данных в память.
Маркер «Удалить блок из кэш» - при нажатии на кнопку, обозначающую блок ОП происходит удаление соответствующего блока из кэша процессора.
Кнопка «Очистить кэш» нужна для того чтобы удалить все блоки из кэша процессора.
Как работать с данной программой моделирования?
Для начала, выберите процессор который будет производить какие-либо действия с памятью, поставив маркер над нужным окном MESI-протокола (см. выше их описание). Затем поставить маркер «Чтение из памяти» или «Запись в память» для того, чтобы указать какое действие с памятью будет производить процессор.
Для того, чтобы выбранный процессор выполнил нужное действие, нужно нажать указателем «мыши» на кнопку в окне «блоки оперативной памяти». Процессор будет записывать или считывать блок памяти, на который Вы указали стрелкой «мыши». Все изменения, которые произошли в MESI-протоколах в результате проведённых процессором действий отражаются в окнах MESI-протоколов.
Вверху находится окно в котором последовательно описываются все действия процессоров над содержимым оперативной памяти и кэша, приводящие к изменениям в MESI протоколах.