某计算机系统主存大小为32 K个字 CaChe大小为4 K个字 采用组相联地址映像 每组含4
问题详情
某计算机系统主存大小为32 K个字,CaChe大小为4 K个字,采用组相联地址映像,每组含4块,每块64字。假设CaChe开始为空,CPU从主存地址单元0开始顺序读取4 352个字,重复此过程10遍。若CaChe的速度是主存的10倍,采用LRU替换算法。请画出主存和CaChe的地址格式,并求采用CaChe后获得的加速比。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:×
已知:主存大小为32K字,Cache(高速缓存)大小为4K字,则主存和Cache的地址长度分别为15位和12位。又已知:每组含4块,每块64字。则组内块号占2位,块内地址占6位。所以主存和Cache的地址中组号分别占(15—2—6)=7位和(12—2—6)=4位。CPU访问主存地址单元0读一个字,Cache不命中,但是把该字所在块装入Cache,以后访问主存地址单元1、2、…、63分别读一个字,Cache都命中。Cache容量为4K字=4096个字,所以在CPI.J从主存地址单元0开始顺序读取4095个字的过程中,每读64个字,不命中一次。4096/64=64,因此,共不命中64次。从访问主存地址单元4096开始,Cache不命中,要发生替换。由于采用组相联,所以主存地址单元4096所存储的字将进入Cache中的第O组。由于采用LRU替换算法。所以替换的是Cache中第0组第一块。在读入主存地址单元4096、4097、…、4351共256个字的过程中,共需要装入(4352—4096)/64=4块,替换的恰好是Cache中第0组的4块。在此过程中共发生4次不命中。所以在第一遍中,共访问了4352次,其中不命中64+4=68次。在第二遍重复上述过程时,开始的256次访问,即访问主存地址单元0、1、…、255,共需要装入256/64=4块,替换的恰好是Cache中第0组的4块。在此过程中共发生4次不命中。此后访问主存地址单元256、257、…、4095全部命中。在读入主存地址单元4096、4097、…、4351共256个字的过程中,共需要装入(4352—4096)/64=4块,替换的恰好是Cache中第0组的4块。在此过程中共发生4次不命中。所以在第二遍中,共访问了4352次,其中不命中8次。第三遍到第十遍的情况与第二遍相同。因此重复此过程10遍,共访问4352×10=43520次,其中不命中68+8×9=68+72=140次。设Cache的存取周期为T,则采用Cache后获得的加速比:SP=(43520×10T)/[(43520—140)×T+140×10T]=435200/(43380+1400)=435200/44780=9.72。