关于带写分配策略的单级分层写回缓存平均写入时间公式的商榷
写分配策略下单级写回缓存的平均写入访问时间公式澄清
各位,咱们来掰扯清楚采用写分配策略的单级写回缓存的平均写入访问时间公式——我发现有个流传较广的公式其实并不完整。
首先先说说那个有问题的公式:
写入操作平均访问时间公式:
Twrite = (H)(Tc) + (1-H)(Tc + Tm + (x*Tm))
其中各参数的定义:
H:缓存命中率Tc:缓存访问时间Tm:内存访问时间x:脏缓存块的比例
为什么说这个公式不对呢?根据Hamacher和Patterson的经典计算机体系结构著作,写分配策略下发生写缺失时,完整的操作流程是这样的:
- 访问缓存,确认发生写缺失(这一步耗时
Tc) - 定位到要替换的缓存块:如果该块是脏块,需要先将其回写到主存(耗时
x*Tm,x代表脏块的比例) - 将包含目标写入字的缓存块从主存调入缓存(耗时
Tm) - 最后更新缓存中的目标字(这一步同样需要
Tc的时间)
所以正确的平均写入访问时间公式应该是:Twrite = (H)(Tc) + (1-H)(Tc + Tm + (x*Tm) + Tc )
咱们拆解一下这个公式的逻辑:
- 当写命中时(概率为
H):直接访问并更新缓存,仅需Tc的时间 - 当写缺失时(概率为
1-H):- 第一个
Tc:用于确认缓存缺失的访问时间 Tm:调入目标缓存块的内存访问耗时x*Tm:脏块回写主存的额外耗时(只有替换脏块时才会触发,因此用比例x加权)- 末尾的
Tc:缓存块调入后,更新目标字的缓存操作时间
- 第一个
内容的提问来源于stack exchange,提问作者Zephyr
相关产品推荐
相关产品推荐

