求取命中率、效率及平均访问时间主讲人:刘爽例4.7假设CPU执行某段程序时,共访问Cache命中2000次,访问主存50次。已知:Cache的存取周期为50ns,主存的存取周期为200ns。求Cache–主存系统的命中率、效率和平均访问时间。命中率•CACHE的容量于块长是影响CACHE效率的重要因素,通常用“命中率”来衡量CACHE的效率。命中率是指CPU要访问的信息已在CACHE内的比率。命中率•因为CACHE的容量远远小于内存,它只可能存放内存的一部分数据。CPU自然是先访问CACHE,再访问主存,如果数据在CACHE中为命中,在不在内存中为不命中,这就有个比例问题,这个比例就是命中率。命中率的计算公式求命中率H所需要的条件有:访问CACHE的总命中次数𝑁𝑐、访问主存的总次数𝑁𝑚。命中率H=𝑁𝑐𝑁𝑐+𝑁𝑚求例题4.7中的命中率题目条件:假设CPU执行某段程序时,共访问CACHE命中2000次,访问主存50次。已知:CACHE的存取周期为50NS,主存的存取周期为200NS。求CACHE-主存系统的命中率。解:由题意:𝑁𝑐=2000,𝑁m=50根据公式命中率h=𝑁𝑐𝑁𝑐+𝑁𝑚很容易算出命中率h=20002000+50=97%访问效率、平均访问时间的计算公式Cache-主存系统的平均访问时间ta=ht𝑐+(1−h)tm访问效率e=t𝑐ta*100%=t𝑐ht𝑐+(1−h)tm*100%其中,t𝑐指命中时的cache访问时间,tm为未命中时的主存访问时间,1-h为未命中率求例题4.7中的访问效率•题目条件:假设CPU执行某段程序时,共访问CACHE命中2000次,访问主存50次。已知:CACHE的存取周期为50NS,主存的存取周期为200NS。求CACHE-主存系统的访问效率。分析:由于题设条件中并没有提到平均访问时间,而且平均访问时间需要自己求取。所以只能通过题目的其他条件来进行运算。题目中提到,主存的存取周期为200ns,cache的存取周期为50ns。从这个条件可以看出访问主存的时间是访问cache时间的4倍(主存存取周期200ns/cache存取周期50ns=4)。设访问cache的时间为t,则平均访问时间可以用h*t+(1-h)*4t来表示。将数据代入公式很容易就知道t作为一个不确定的变量,是能够直接约掉的。求例题4.7中的访问效率•题目条件:假设CPU执行某段程序时,共访问CACHE命中2000次,访问主存50次。已知:CACHE的存取周期为50NS,主存的存取周期为200NS。求CACHE-主存系统的访问效率。解:e=t0.97∗t+1−0.97∗4t*100%=91.7%求例题4.7中的平均访问时间解:平均访问时间ta=ht𝑐+(1−h)tm=0.97*50ns+(1-0.97)*200ns=54.5ns练习已知:CPU执行一段时间程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,已知Cache存取周期为50ns,主存存取周期为250ns。求:1、cache-主存系统的命中率2、Cache/主存系统的效率3、平均访问时间解:命中率h=𝑁𝑐𝑁𝑐+𝑁𝑚=19001900+100=95%平均访问时间ta=ht𝑐+(1−h)tm=0.95*50+0.05*250=60ns访问效率e=t𝑐ta*100%=5060=83.3%