Cache Simulator :: Хит против мисс - PullRequest
0 голосов
/ 04 января 2019

Для кэша: размер 1 МБ, 4-полосная привязка и 32 ББ на блок.Объем памяти 16 МБ (поэтому phy_address - 24 бита) (см .: http://people.duke.edu/~tkb13/courses/ece250-2018su/homeworks/homework5.pdf - стр. 6)

Трассировка:

store 0xd53170 4 7d2f13ac *// instr phys_addr access_size data*

load 0xd53172 1 *// instr phys_add access_size*

Я написал c-программу, которая выполняла следующее:

./cachesim traces/example.txt 1024 4 32

Вывод:

store 0xd53170 miss

load 0xd53172 hit 13

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

tag=0x35, set=0x98b, offset=0x10 (and 0x12 for load)

Дайте мне знать, если вы можете ответить, почему 2-я строка пропущена против.

Спасибо!

1 Ответ

0 голосов
/ 04 января 2019

В документе утверждается, что «Кэш является записывающим и записывающим без выделения».

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

store 0xd53170 miss (переслать в память, ничего не выделять в кеше)

load 0xd53172 miss (строка нераспределяется в кеше, так что это промах)

Вероятно, вы неправильно справляетесь с ошибками записи в вашем симуляторе.

...