Прямой кэш карты и его отсутствие - PullRequest
2 голосов
/ 26 ноября 2011

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

Кэш прямой карты. Нам дан кеш с 1024 блоками. каждый блок - это слово MIPS (32 бита). Кэш использует обратную запись всякий раз, когда отсутствует запись случается. Основная память состоит из 2 ^ 30 слов. Изначально кеш пуст.
Определите общее количество пропусков кэша для следующих последовательностей команд.

lw $s0, 4($sp) 
lw $s0, 8($sp) 
sw $s0, 8($sp) 
sw $s1, 4($sp) 
lw $s0, 4($sp)

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

1 Ответ

2 голосов
/ 01 декабря 2011

Не зная выравнивания $ SP, невозможно определить, сколько промахов в кеше у вас будет.Если SP выровнен по 32-байтовой границе, то при первом доступе будет пропущена только одна строка кэша.Если SP содержит адрес 0x18, то у вас будет два пропущенных строки в кэше, потому что 4 ($ sp) и 8 ($ sp) будут обращаться к разным строкам кэша.

...