Информация о N-way множестве ассоциативных стилей - PullRequest
4 голосов
/ 04 мая 2009

Некоторые ресурсы, на которые я ходил в Интернете, не согласны с тем, как работает ассоциативное кэширование .

Например, аппаратные секреты, кажется, считают, что это работает так:

Тогда основная оперативная память делится на такое же количество блоков доступно в кеш памяти. Сохраняя 512 КБ 4-сторонний набор ассоциативных примеров, Основная оперативная память будет разделена на 2048 блоки, одинаковое количество блоков доступно внутри кеша памяти. Каждый блок памяти связан с набором строк внутри кэша, так же, как в кеше прямого отображения.

http://www.hardwaresecrets.com/printpage/481/8

Кажется, они говорят, что каждый блок кэша (4 строки кэша) отображается на определенный блок непрерывной оперативной памяти. Они говорят, что несмежные блоки системной памяти (RAM) не могут отображаться на один и тот же блок кэша.

Это изображение того, как аппаратные секреты считают, что это работает. http://www.hardwaresecrets.com/fullimage.php?image=7864

Сравните это с картиной википедии с установленным ассоциативным кэшем http://upload.wikimedia.org/wikipedia/commons/9/93/Cache%2Cassociative-fill-both.png.

Браун не согласен с аппаратными секретами

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

http://www.spsu.edu/cs/faculty/bbrown/web_lectures/cache/

То есть несмежные блоки системной памяти могут отображаться в один и тот же блок кэша.

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

Кто прав? Если на самом деле используется шагание, как оно работает и у меня есть правильное техническое имя? Как мне найти шаг для конкретной системы? это основано на системе подкачки? Может кто-нибудь указать мне URL, который объясняет ассоциативный кеш N-way подробно?

также смотрите: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/set.html

Ответы [ 2 ]

6 голосов
/ 04 мая 2009

Когда я преподаю архитектуру кеш-памяти моим ученикам, я начинаю с кеша с прямым отображением. Как только это будет понято, вы можете думать о N-образном множестве ассоциативных кешей как о параллельных блоках кеша с прямым отображением. Чтобы понять, что обе цифры могут быть правильными, вам нужно сначала понять назначение кэшей set-assoc.

Они предназначены для решения проблемы «алиасинга» в кеше с прямым отображением, где несколько ячеек памяти могут отображаться на определенную запись в кеше. Это показано на рисунке в Википедии. Таким образом, вместо удаления записи в кеше мы можем использовать N-way кеш для хранения других «псевдонимов» областей памяти.

Фактически диаграмма аппаратных секретов будет правильной, если предположить, что порядок замены таков, что первый кусок основной памяти сопоставлен с Путем-1, а второй - с Путем-2 и так далее, и так далее. Тем не менее, одинаково возможно, чтобы первая часть основной памяти была распределена по нескольким путям.

Надеюсь, это объяснение поможет!

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

0 голосов
/ 10 февраля 2017

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

...