计算机组成原理cache映像问题!

问题描述:

计算机组成原理cache映像问题!
某计算机的cache采用4路组相联映像,已知cache容量为16KB,主存容量为2MB,每个字块有8个字,每个字有32位.(1)主存地址多少位(按字节编址),各字段如何划分(各需多少位)?(2)设cache起始为空,CPU从主存单元0,1,……100.依次读出101个字(主存一次读一个字),并重复按此次序读11次,问命中率多少?若cache速度是主存5倍,问采用cache与无cache比较速度提高多少?

(1)

2MB=2^21,

16KB=2^14,

32位=4字节=2^2,

8个字=2^3,

4路(即4个块)=2^2;

组号=14-2-3-2=7;

区号=21-14=7;

划分的对应关系如下:


(2)

一开始cache无内容,第一轮全部不命中,以后十次全部命中,所以命中率是:10/11=91%;

设cache读取时间为1,主存读取时间为5,无cache的访问时间:11*5=55,有cache访问时间:

第一次先访问cache,再访问主存,时间为1*(1+5),后10次只访问cache,时间为10*1,

所以有cache的访问时间是10*1+1*(5+1)=16,所以速度提高的倍数是55/16=3.44;

有些人会算出来是3.67,是错的,其实第一次既要访问cache,又要访问主存.