设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即Cache每组内共有4个字块)的Cache组织。
(1)画出主存地址字段中各段的位数。
(2)设Cache的初态为空,CPU依次从主存第0,1,2,…,89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?
(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍?
(1)根据每字块有8个字,每字32位(4字节),得出主存地址字段中字块内地址为3+2=5位。
根据Cache容量为16KB=214B,字块大小为8*32/8=32=25B,得Cache地址共14位,Cache共有214-5=29块。
根据四路组相联映射,Cache共分为29/22=27组。
主存字块标记(10位)
组地址(7位)
字块内地址(5位)
(2)由于每个字块中有8个字,而且初态为空,因此CPU读第0号单元时,未命中,必须访问主存,同时将该字所在的主存块调入Cache第0组中的任一块内,接着CPU读第1~7号单元时均命中。同理,CPU读第8,16,…,88号时均未命中。可见,CPU在连续读90个字***有12次未命中,而后8次循环读90个字全部命中,命中率为:
(3)设Cache的周期为t,则主存周期为6t,没有Cache的访问时间为6t*90*8,有Cache的访问时间为t(90*8-12)+6t*12,则有Cache和无Cache相比,速度提高的倍数为:
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
(1)根据每字块有8个字,每字32位(4字节),得出主存地址字段中字块内地址为3+2=5位。
根据Cache容量为16KB=214B,字块大小为8*32/8=32=25B,得Cache地址共14位,Cache共有214-5=29块。
根据四路组相联映射,Cache共分为29/22=27组。
主存字块标记(10位)
组地址(7位)
字块内地址(5位)
(2)由于每个字块中有8个字,而且初态为空,因此CPU读第0号单元时,未命中,必须访问主存,同时将该字所在的主存块调入Cache第0组中的任一块内,接着CPU读第1~7号单元时均命中。同理,CPU读第8,16,…,88号时均未命中。可见,CPU在连续读90个字***有12次未命中,而后8次循环读90个字全部命中,命中率为:
(3)设Cache的周期为t,则主存周期为6t,没有Cache的访问时间为6t*90*8,有Cache的访问时间为t(90*8-12)+6t*12,则有Cache和无Cache相比,速度提高的倍数为: