Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
17
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

Детерминированное отображение участков озу в процессорный кэш

Упрощенная структура процессорного кэша, основанного на детерминированном отображении, показана на рис. 51.

Рис.51. Процессорный кэш с детерминированным отображением

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

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

Детерминированное отображение выполняется по следующему алгоритму. Адрес данных разбивается на три части: смещение, индекс и ключ.

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

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

Легко заметить, что из-за того, что для индексации используется не весь адрес, а только отдельная группа бит адреса данных, то отображение областей ОЗУ на записи процессорного кэша выполняется неоднозначно. Если длина записи процессорного кэша равна машинных слов и процессорный кэш включает в себя записей, то на одну и туже запись процессорного кэша будет отображаться каждый -ый блок ОЗУ длиной , как показано на рис. 52.

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

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

Рис.52. Отображение областей ОЗУ на процессорный кэш при детерминированном отображении

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

Действительно, правило замещения, использованное в кэше с детерминированным отображением, не учитывает состав рабочего множества процесса. Если в рабочем множестве процесса одновременно окажутся области ОЗУ с одинаковым индексом, которые должны отображаться на одну и туже запись процессорного кэша, то в ходе исполнения программы этого процесса кэш будет постоянно перегружаться. Возникнет ситуация, напоминающая явление пробуксовки в системе виртуальной памяти.

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