高速缓存中的命中和未命中率以及平均时间计算

sid*_*uff 6 memory computer-science cpu-usage computer-architecture

我正试图解决一个客观类型的问题,来检查.我实际上不知道正确的答案,也不知道如何得到它,需要你的帮助.谢谢 .

问题: 在某个系统中,主存储器访问时间为100 ns.缓存比主内存快10倍,并使用写入协议.如果读取请求的命中率是0.92,并且CPU生成的内存请求的85%用于读取,则剩余的用于写入; 然后考虑读写请求的平均时间是

a)14.62ns

b)348.47ns

c)29.62ns

d)296.2ns

我的工作 ::::

那么,内存访问时间= 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)
Run Code Online (Sandbox Code Playgroud)

直写操作:缓存位置和主存储器位置同时更新.

假设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)
Run Code Online (Sandbox Code Playgroud)

//*0.92是读取请求的命中率,但是没有给出写入请求的命中率?

如果我假设写请求的命中率与读请求的命中率相同,那么,

  = 0.85(0.92*10+0.08*100)+0.15(0.92*(10+100)+0.08*100)
  =31 ns
Run Code Online (Sandbox Code Playgroud)

如果我认为写入请求的命中率是0%那么,

  = 0.85(0.92*10+0.08*100)+0.15(0*110+1*100)
  =29.62 ns
Run Code Online (Sandbox Code Playgroud)

小智 0

在直写策略的情况下,当发生缓存未命中时,直接从主存读取数据时,

Tavg(for write)=Hw*Tm +(1-Hw)*Tm = Tm
Run Code Online (Sandbox Code Playgroud)

Hw=写入命中率,Tm=访问主存的时间

在这个公式中,在缓存命中和未命中的两种情况下,我们可以在 Tm 时间内同时更新和读取数据,因为通常 Tm>>Tc。所以读取的Tc可以忽略。

因此,您不需要知道这个问题的写入命中率。答案是 29.62ns