数据量翻倍,未命中怎么涨
运行下面这段程序,填写它打印出来的结果。
BLK = 4
LINES = 4
def sim(addrs, ways=1):
sets = LINES // ways
tags = [[None] * ways for _ in range(sets)]
order = [[] for _ in range(sets)]
hit = 0
miss = 0
for a in addrs:
b = a // BLK
s = b % sets
if b in tags[s]:
hit = hit + 1
order[s].remove(b)
order[s].append(b)
else:
miss = miss + 1
if None in tags[s]:
tags[s][tags[s].index(None)] = b
else:
old = order[s].pop(0)
tags[s][tags[s].index(old)] = b
order[s].append(b)
return hit, miss
for n in (8, 16, 24, 32):
print(str(n) + "-" + str(sim(list(range(n)) * 2)[1]), end="/")
全部评论