两种访问模式,TLB 差多少
运行下面这段程序,填写它打印出来的结果。
PAGE = 16
PT = {0: 3, 1: 0, 2: 5}
def split(va):
return va // PAGE, va % PAGE
def translate(va):
vp, off = split(va)
if vp not in PT:
return -1
return PT[vp] * PAGE + off
ENTRIES = 4
def tlb_run(vas):
tags = [-1] * ENTRIES
hit = 0
miss = 0
for va in vas:
vp = va // PAGE
line = vp % ENTRIES
if tags[line] == vp:
hit = hit + 1
else:
miss = miss + 1
tags[line] = vp
return hit, miss
same = tlb_run(list(range(8)))
jump = tlb_run([i * PAGE for i in range(8)])
print(str(same[0]) + "-" + str(same[1]) + "/"
+ str(jump[0]) + "-" + str(jump[1]))
全部评论