一块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字节
页面大小为4KB的虚拟内存
1)找出缓存的未命中率
1/6(1因为它加载了一棵新树(我认为),而6是总实时)= 17%
0/6(如果我们必须加载下一棵树,我不明白为什么为0)= 0%
2)执行了多少页错误? 答案: 9页错误
3) TLB中的未命中率是多少? 答案: 9/6 * 4096 0,03%
我们在课堂上回答了所有这些问题,但我不明白其中很多人可以解释一下吗?
单向和双向有什么区别?如果它更大应该是更少的失误率,是吗?问题是如何计算?