Кусок кода MIPS:
.data
first-node : .word 10,next-node
next-node: .......
.text
la $s0,first-node
move $s1,$zero
loop:
la $t0,0($s0)
add $s1,$s1,$t0
lw $s0,4($s0)
bne $s0,$zero,loop
мы получили список из 4096 узлов,
Кэш-память в одну сторону
16 набор
Размер блока: 128 байт
Виртуальная память с размером страницы 4 КБ
1) Определение скорости пропуска кэша
- Скорость пропускапервая 16 операция?** Ответ: ** 4/4 + 2 (4, потому что в цикле 4 экземпляра и 2 в цикле перед циклом) - 4/6 = 66%
- частота промаха 17-й итерации Ответ:
1/6 (1, потому что оно загружает новое дерево (я думаю), а 6 - общее количество экземпляров) = 17%
- Коэффициент промаха 18-й- 32-я итерация? Ответ:
0/6 (я не понял, почему 0, если нам нужно загрузить следующее дерево) = 0%
- И общее количество пропущенных? Ответ: 4 * 16 + 1 * 15/16 * 16 * 6 = 5% (эту часть я не могу понять)
2) Сколько ошибок страниц было выполнено? Ответ: Ошибка 9 страниц
3) Какова частота пропусков в TLB? Ответ: 9/6 * 4096 0,03%
Мы ответили на все эти вопросы в классе, но многие из них я не понял, может кто-нибудь объяснить мне?
Также Какая разница между односторонним и двухсторонним?Если оно больше, должно быть меньше промахов, да?проблема в том, как рассчитать?