Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шмидт 2 Организация, адресация, кэширование пам....doc
Скачиваний:
8
Добавлен:
05.11.2018
Размер:
901.12 Кб
Скачать

Р исунок 28. Схема функционирования кэш-памяти

Интуитивно понятно, что эффективность кэширования зависит от вероятности попадания в кэш. Использование кэш-памяти имеет смысл только при высокой вероятности кэш-попадания.

Вероятность обнаружения данных в кэше зависит от разных факторов, таких, например, как объем кэша, объем кэшируемой памяти, алгоритм замещения данных в кэше, особенности выполняемой программы, время ее работы, уровень мультипрограммирования и других особенностей вычислительного процесса. Тем не менее в большинстве реализаций кэш-памяти процент кэш-попаданий оказывается весьма высоким — свыше 90 %. Такое высокое значение вероятности нахождения данных в кэш-памяти объясняется наличием у данных объективных свойств: пространственной и временной локальности.

Временная локальность - если произошло обращение по некоторому адресу, то следующее обращение по тому же адресу с большой вероятностью произойдет в ближайшее время.

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

Способы отображения основной памяти на кэш (архитектура кэш-памяти).

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

Итак, архитектура кэш-памяти определяется тем, каким образом достаточно большая по размеру основная память отобража­ется на сравнительно небольшой кэш. Существуют, вообще го­воря, три разновидности отображения: кэш-память с прямым отображением (direct-mapped cache), частично, или наборно-ассоциативная (set-associative cache) и полностью ассоциативная (fully associative cache). Все эти архитектуры, так или иначе, используются для построения кэш-памяти современных микропроцессоров.

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

Самой простой организацией обладает кэш-память с прямым отображением. В этом случае адрес памяти полностью определяет используемую строку кэша. Таким образом, один или несколько блоков оперативной памяти строго соответствуют одной строке кэша, однако поскольку занимать ее в одно и то же время может только один из них, то для каждой строки используется специ­альный признак — тег (tag). Более подробно рассмотрим работу кэш-памяти с прямым отображением по схеме, изображенной на рисунке 28.

Р исунок 29. Кэш память с прямым отображением.

Допустим, что некоторый микропроцессор использует 10-разрядный адрес, размер кэша составляет 8 строк, а длина каждой строки — 8 байт. В какой-то момент времени процессор хочет прочитать два байта информации, хранимой в оперативной памяти, с адреса 0010001100. Для кэш-памяти этот адрес подразделяется на три части. В данном случае три младших разряда называются смещением (offset) и полностью определяют положение каждого из восьми байт в строке. Средние три разряда позволяют однозначно выбрать одну из восьми строк (line) кэша. Оставшиеся старшие разряды несут информацию о теге. И только в том случае, если тег строки кэша совпадает со значением, определяемым старшими разрядами адреса, байты информации считываются из кэш - памяти. В противном случае чтение должно идти из основной па­мяти или информация в строке должна быть заменена. Разумеется, в случае ее замены меняется и значение ее тега.

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