Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OEVM_Lec_2011(1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.92 Mб
Скачать

Алгоритм псевдо lru.

Когда в цикле считывания обнаруживается промах, в кэш необходимо передать информацию из ОП (строку), при этом приходится выбирать из 4-х строк множества. Если есть бит недостоверности, то нет проблем. А если все строки достоверны (1111), то выбирается строка с привлечением LRU.

3 бита LRU изменяются при каждом попадании и заполнении, следующим образом: если последнее обращение во множестве было к строке L0 и L1, то бит B0=1, а если к L2 и L3, то бит B0=0, и т.д. (см. рисунок).

Чтение из кэш осуществляется по физическому адресу, поступающему из устройства сегментации или страничного преобразования по ША. Он позволяет извлекать информацию с точностью до байта, используя дешифратор строки DCC, который сравнивает значение старших 21 бит физического адреса с кодами тегов соответствующего множества. При попадании, строка одного из направлений массива передается в буферный регистр, из которого, требуемый байт (слово, двойное слово) передается на внутреннюю ШД процессора. Часто строка из буферного регистра передаётся как 16-байтный код в устройство предвыборки команд, минуя ВШД. При промахе, если не срабатывает одна из схем сравнения D1  D4, МП включает режим чтения внешнего кэш или ОЗУ по данному ФА.

Блок LRU содержит память также из 128 строк, по 7 бит в строке. Три бита каждой строки LRU B0, B1, B2 служат для определения правила замены. Четыре оставшиеся бита памяти строки LRU используются для определения достоверности данных, хранимых в кэш. При очистке кэш или сбросе МП все биты достоверности устанавливаются в 0. При промахе и новой записи бит, соответствующий направлению и строке, устанавливается в 1. При вычислениях МП может объявить часть строк недостоверными и соответствующие биты B3-B6 LRU установить в 0. Эти недостоверные строки впоследствии используются в первую очередь для записи новых данных в кэш. Если все биты B3-B6 = 1, то замена данных в кэш определяется в соответствии с состоянием <B0, B1, B2>. Если данные в кэш становятся частично достоверными, то соответствующие биты достоверности не устанавливаются в 1.

2. Как найти блок, находящийся в кэш-памяти?

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]