首页 文章

使用写分配策略写回缓存公式

提问于
浏览
1

如果我们将 hierarchical single level write back cachewrite allocate policy 一起考虑,则 write operation 期间的平均访问时间公式由下式给出: -

Twrite =(H)(Tc)(1-H)(Tc Tm(x * Tm)) .

哪里,

H =缓存的命中率 .

Tc =缓存的访问时间 .

Tm =内存的访问时间 .

x =脏的高速缓存块的一部分 .

上述公式在本网站给出https://gateoverflow.in/14480/formula-write-back-write-through-access-time-parallel-serial?show=14502#a14502

但是,我认为这个公式并不完全正确 . 根据我的说法,在写入分配的情况下,我们首先在缓存中找到要替换的块,如果它是脏的,我们更新主内存 . 现在我们将包含该字的所需高速缓存块带入高速缓存然后 update the cache . 这是我在hamacher和patterson书中读到的内容 .

所以不应该是公式

Twrite =(H)(Tc)(1-H)(Tc Tm(x * Tm) Tc ) . ?

这里我添加了 extra Tc 时间,一旦从主存储器中取出块,就需要更新缓存中的字 . 第一个Tc是我们在未命中的情况下添加的时间,因为它的 hierarchical 缓存

1 回答

  • 1

    我建议你再次检查写分配策略 . Norman P. Jouppi写的miss miss polocies非常好paper .

    顾名思义,写入分配,在写入未命中的情况下在缓存中分配条目 . 如果为写入未命中分配的行是脏的,我们需要使用脏缓存行的内容更新主存储器 . 因此,更新脏缓存行的主内存所花费的时间将是

    x * Tm
    

    使用脏缓存行的内容更新主内存后,可以使用它来存储写入未命中的数据 . 因此我们需要访问缓存 . 所以我们的新时代将是

    Tc + (x * Tm)
    

    但是,当缓存未命中时,我们只会执行此操作 . 因此整个事物需要乘以未命中率 .

    (1-H)(Tc + (x * Tm))
    

    以上公式涵盖了未命中的情况 . 当它成为命中时,我们只需要访问缓存 . 这将是Tc乘以命中率

    Tc * H
    

    添加它们会给我们平均访问时间:

    (Tc * H) + (1-H)(Tc + (x * Tm))
    

相关问题