Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
стр 103-113.doc
Скачиваний:
11
Добавлен:
21.11.2019
Размер:
3.61 Mб
Скачать

Тэг Строка Слово (байт)

Структура кэш-памяти для нашего случая будет иметь вид как на рисунке 3.6.

Адрес Блок Тэг Данные Адреса, которые использует

строки достоверности этот элемент

1 111 15, 31, 47,….

-

-

-

-

0 001 1, 17, 33,…

0000 0, 16, 32,…

Рис. 6.4 Кэш-память прямого отображения

Из рисунка видно, что в первую строку кэша можно помещать только первую, семнадцатую, тридцать третью и т.д. строки основной памяти.

Каждый элемент кэш-памяти состоит из четырех частей:

  • адрес строки кэша;

  • блок достоверности, управляющая информация (указывает есть ли достоверные данные в элементе или нет, и т.д.);

  • поле «Тег», указывает соответствующую строку памяти, из которой поступили данные;

  • поле «Данные» содержит копию данных основной памяти, поле данных вмещает одну строку в 16 байт.

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

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

В кэш-памяти «прямого отображения» искомое слово может находиться только в одном месте кэша. Когда процессор выдает адрес памяти, аппаратное обеспечение выделяет из этого адреса 4 бита поля «строка» и использует их для поиска в кэше одного из 16 элементов (строк). Если этот элемент действителен (бит достоверности – 1), то производится сравнение поля «Тэг» ОП и поля «Тэг» кэша. Если поля равны, это значит «удачное обращение» - hit. Если элемент кэш-памяти недействителен (бит достоверности – 0, или поля «Тег» не совпадают, то нужного слова в кэше нет 0 - miss. В этом случае 16-ти байтная строка вызывается из ОП и сохраняется в кэше. Все это происходит параллельно и время на поиск данных существенно сокращается.

Итак, при каждом обращении к основной памяти по физическому адресу просматривается содержимое кэш-памяти с целью определения, не находятся ли там нужные данные. Зачастую, кэш-память не является адресуемой, поэтому поиск данных осуществляется по содержимому – по взятому из запроса значению поля «Тэг - адрес в ОП». Далее возможны два варианта:

  • если данные обнаруживаются в кэше, т.е. произошло кэш-попадание (cache-hit), они считываются из нее и результат передается источнику запроса;

  • если нужные данные отсутствуют в кэш-памяти, т.е. произошел кэш-промах (cache-miss), они считываются из основной памяти и одновременно копируются из ОП в кэш.

На практике в кэш-память считывается не один элемент данных, к которому произошло обращение, а целый блок данных, что увеличивает вероятность попадания в кэш. Покажем на примере эффективность применения кэш-памяти. Пусть имеется ОП со средним временем доступа t1=60,0 нс и кэш-память, имеющая время доступа к данным t2=12,0 нс, а p – вероятность кэш-попадания, причем p=0,8, тогда среднее время доступа к данным t в системе с кэш-памятью равно:

t = t1 ­(1-p) + t2p = 60,0*0,2 + 12,0*0,8 = 21,6 нс

Очевидно, что полученное среднее время доступа к такой системе больше чем среднее время доступа непосредственно к кэшу, но значительно меньше времени доступа к ОП. В реальных системах вероятность попадания в кэш близка к 0,9. Столь высокое значение hit rate связано с наличием у данных объективных свойств – локальность обращения, которое включает пространственную локальность (если произошло обращение по некоторому адресу, то с высокой степенью вероятности произойдет обращение к соседним адресам), временную локальность (если произошло обращение по некоторому адресу, то в ближайшее время будет обращение по этому же адресу). Однако, несмотря на свою простоту и высокое быстродействие кэш-память прямого доступа обладает большими недостатками, вытекающими из того факта, что различные строки основной памяти конкурируют за одну и ту же область кэш-памяти. Решение этих проблем достигается на пути конструирования различных видов иерархии кэш-памяти.

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