我正在尝试解决一个客观类型的问题,正在检查中。我实际上不知道正确的答案,也不知道如何获得它,需要您的帮助。谢谢你 。

问题:
在某些系统中,主存储器访问时间为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

10-04 20:12