两轮访问,第二轮还中不中

运行下面这段程序,填写它打印出来的结果。 BLK = 4 LINES = 4 def sim(addrs, ways=1): sets = LINES // ways tags = [[None] * ways for _

开始练习 →

同样装不下,换个顺序试试

运行下面这段程序,填写它打印出来的结果。 BLK = 4 LINES = 4 def sim(addrs, ways=1): sets = LINES // ways tags = [[None] * ways for _

开始练习 →

自己写:把未命中分类

数出三种未命中各有多少:第一次见到的算冷,其余算非冷。

开始练习 →

用全相联把冲突分出来

同一串访问,分别用直接映射和全相联跑一次。差出来的那部分就是冲突未命中。

开始练习 →

⚠️ 只看总数看不出该修哪一种

两段程序未命中次数完全一样,但一段全是冷未命中、一段大半是冲突。把两段的「总数 / 冷 / 非冷」都打出来。

开始练习 →

为什么不用挂钟时间当答案

量缓存的影响时,用「未命中次数」而不是「跑了多少毫秒」,因为【0】。

开始练习 →

数据量多大时开始变慢

数据量慢慢变大,未命中次数【0】。

开始练习 →

量之前要先做什么

要量准缓存的影响,测量之前必须【0】。

开始练习 →

数据量翻倍,未命中怎么涨

运行下面这段程序,填写它打印出来的结果。 BLK = 4 LINES = 4 def sim(addrs, ways=1): sets = LINES // ways tags = [[None] * ways for _

开始练习 →

自己写:扫描数据量

对 8、16、24、32 四种数据量各量一次未命中次数。

开始练习 →