我正在尝试解决一个客观类型的问题,正在检查中。我实际上不知道正确的答案,也不知道如何获得它,需要您的帮助。谢谢你 。
问题:
在某些系统中,主存储器访问时间为100 ns。高速缓存比主存储器快10倍,并使用直写协议(protocol)。如果读取请求的命中率为0.92,并且CPU生成的内存请求的85%用于读取,其余的用于写入;那么读和写请求的平均时间考虑是
a)14.62ns
b)348.47ns
c)29.62ns
d)296.2秒
我的工作::::
好了,内存访问时间= 100ns
缓存访问时间为= 10 ns(快10倍)
In order to find avg time we have a formula
Tavg = hc+(1-h)M
where h = hit rate
(1-h) = miss rate
c = time to access information from cache
M = miss penalty (time to access main memory)
直写操作:高速缓存位置和主内存位置同时更新。
假定由CPU生成的请求的85%是读取请求,而15%是写请求。
Tavg = 0.85(avg time for read request)+ 0.15(avg time for write request)
= 0.85(0.92*10+0.08*100)+0.15(avg time for write request)
//* 0.92是读取请求的命中率,但未提供写入请求的命中率??
如果我假设写入请求的命中率与读取请求的命中率相同,
= 0.85(0.92*10+0.08*100)+0.15(0.92*(10+100)+0.08*100)
=31 ns
如果我假设写入请求的命中率为0%,
= 0.85(0.92*10+0.08*100)+0.15(0*110+1*100)
=29.62 ns
最佳答案
您的第二个假设是正确的。
使用直写式高速缓存,它将立即将修改后的块写入内存,然后再写入磁盘。由于没有给出磁盘访问时间,因此从等式中将其消除。我的表示法几乎没有什么不同,但是我会以这种方式发布给以后的读者。我使用了 William Stallings 操作系统:内部和设计原则中给出的表示法。
给出:
Tm = 100ns
Tc = 10ns /* 10x faster than Tm */
Hr = 0.92 /* Hit rate reading */
85% reading => 15% of the time writing
解决方案:
The effective access time for reading:
Te_r = Hr * Tc + (1-Hr)Tm = 0.92*10 + (1 - 0.92)100 = 9.2 + 8 = 17.2
The effective access time for writing, is determined from the Hit rate Hw,
which is always 0, because the data must be immediately written onto the
memory.
Te_w = Hw * Tc + (1-Hw)Tm = 0*10 + (1 - 0)100 = 100
Taking into account the percentage:
0.85*17.2 + 0.15*100 = 14.62 + 15 = 29.62
Q.E.D