Когда невозможно использовать пространственную локальность в кеше? - PullRequest
0 голосов
/ 28 июня 2018

Нам дан процессор, чьи инструкции работают с 8-байтовыми операндами и чьи инструкции также кодируются с использованием 8 байтов. Мы используем 16 килобайт, Ассоциативный кеш с 4 путями, содержащий 1024 набора. Всего в кеше 4 * 1024 = 4096 строк. Это означает, что каждая строка кэша имеет размер 16 КБ = 4096 = 4 байта, поэтому каждый операнд и каждая инструкция должны храниться в двух строках кэша, что потребует 2 доступа к кэшу для каждой операции загрузки / сохранения и выборок команд. Нам говорят, что кэш не может применять пространственную локальность, но почему? Что означает пространственная локальность в этом контексте?

1 Ответ

0 голосов
/ 29 июня 2018

То есть ваша машина вообще не имеет однобайтовых загрузок / хранилищ?

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

(Если у вас нет аппаратной предварительной выборки для обнаружения последовательного доступа и начала выборки соседних строк кэша ...)

...