问答题 设某机主存容量为16MB,Cache的容量为8KB,且按字节编址。每字块8个字,每字32位。设计一个4路组相联映射的Cache组织。
问答题 画出主存地址字段中各段的位数。
【正确答案】主存地址字段如图所示。
[*]
图 主存地址字段
【答案解析】
问答题 设Cache初态为空,CPU依次从主存0,1,2,…,99号单元中读出100个字(主存一次读出一个字),并重复此次序10次,问命中率是多少?
【正确答案】由于Cache初态为空,因此CPU读0号单元时不命中,必须访存,同时将该字所在的主存块调入Cache(调入内存一定是一整块调入,而一块包括8个单元),接着CPU读1~7号单元均命中。同理,CPU读8,16,…,96号单元均不命中。可见,CPU在连续读100个字中共有13次未命中,而后9次循环读100个字全部命中,命中率为 [*]
【答案解析】
问答题 若Cache速度是主存速度的5倍,试问有Cache和无Cache相比,速度提高多少倍?
【正确答案】设主存存取周期为5t,Cache的存取周期为t,没有Cache的访问时间是5t×1000,有Cache存取周期为t×(1000-13)+5t×13,则有Cache和无Cache相比,速度提高的倍数为 [*]
【答案解析】
问答题 系统的效率是多少?
【正确答案】系统的效率为 [*]
【答案解析】
问答题 某计算机的主存地址位数为32位,按字节编址。假定数据Cache中最多存放128个主存块,采用4路组相联方式,块大小为64B,每块设置了1位有效位。采用一次性写回策略,为此每块设置了1位“脏位”。要求: 1)分别指出主存地址中标记(Tag)、组号(Index)和块内地址(Offset)3部分的位置和位数。 2)计算该数据Cache的总位数。
【正确答案】主存地址由标记(Tag)、组号(Index)和块内地址(Offset)3部分组成,标记字段在前,组号字段居中,块内地址字段在后。 1)因为块大小为64B,所以块内地址字段为6位;因为Cache中有128个主存块,采用4路组相联,Cache分为32组(128/4=32),所以组号字段为5位;标记字段为剩余位,32-5-6=21位。 2)数据Cache的总位数应包括标记项的总位数和数据块的位数。每个Cache块对应一个标记项,标记项中应包括标记字段、有效位和“脏位”(仅适用于写回法)。因此,标记项的总位数=128×(21+1+1)=128×23=2944位。又由于数据块位数=128×64×8=65536位,因此数据Cache的总位数=2944+65536=68480位。 写回法指CPU在执行写操作时,被写数据只写入Cache,不写入主存。仅当需要替换时,才把已经修改过的Cache块写回到主存。如果“脏位”为“1”,则必须先把这一块写回到主存中去之后才能调入新的块;如果“脏位”为“0”,则这一块不必写回主存,只要用新调入的块覆盖掉这一块即可。
【答案解析】