Caching 根据以下数据计算平均内存访问时间?

Caching 根据以下数据计算平均内存访问时间?,caching,operating-system,paging,tlb,Caching,Operating System,Paging,Tlb,考虑以下信息 假设缓存是物理寻址的 TLB命中率为95%,访问时间=1个周期 缓存命中率为90%,再次访问时间=1个周期 页面错误为1%,在TLB和缓存中都发生未命中时发生 TLB访问和缓存访问是顺序的 主存储器访问时间为5个周期 磁盘访问时间为100个周期 页表始终保存在主内存中 根据以下信息,平均内存访问时间是多少 我的方法=>我给出了我如何理解这个问题的方法。请检查一下 平均内存访问时间 ==> ==> 0.99(TLB命中(TLB访问时间+缓存命中+缓存未命中)+TLB未命中(TLB

考虑以下信息

  • 假设缓存是物理寻址的
  • TLB命中率为95%,访问时间=1个周期
  • 缓存命中率为90%,再次访问时间=1个周期
  • 页面错误为1%,在TLB和缓存中都发生未命中时发生
  • TLB访问和缓存访问是顺序的
  • 主存储器访问时间为5个周期
  • 磁盘访问时间为100个周期
  • 页表始终保存在主内存中
根据以下信息,平均内存访问时间是多少

我的方法=>我给出了我如何理解这个问题的方法。请检查一下

平均内存访问时间

==>

==>

0.99(TLB命中(TLB访问时间+缓存命中+缓存未命中)+TLB未命中(TLB访问时间+页表访问时间+缓存命中+缓存未命中)

+

0.01(TLB访问时间+页表访问时间+磁盘访问时间)

==>

0.99(0.95(1+0.90(1)+0.10(1+5))+0.05(1+5+0.90(1)+0.10(1+5)

+

0.01(1+5+100)

给出的表达式正确吗

请让我知道,我的方法是正确的还是我犯了一些错误

有人能帮我吗


PS:我下周要进行期中考试,需要练习这些问题

在你的情况下,棘手的问题是缓存是物理寻址的这意味着在开始之前,我们必须进行翻译(因为程序使用虚拟地址)

我建立下面的概率树来计算平均值。我们将从叶子中减去它来计算整个平均值。规则非常简单:我们计算分支成本并将其乘以概率,就像您在计算中所做的那样。我得到的值是2.7225

第一次请假减少,页面错误

减量后

缓存命中场景的成本 注意:无论如何,我们为缓存访问支付1个周期的费用

上次减价前 注:我们为TLB支付1个周期的费用


老兄,你在忙着工作吗?你的数字是0.99和0.01吗?@Ivan,1%是页面错误。因此,我使用99%表示无页面错误。@Willturner如果出现页面错误,为什么不在缓存尝试时间中包含1个周期?@Ivan,它只是1个周期。即使我加上它,结果也不会有太大的改变。事实上,我的教授告诉我答案是3个周期,但我得到了大约4个周期,这就是为什么我认为我犯了一些错误。你能回答这个问题吗?是的,你的答案是正确的。只是一个疑问,为什么在第一棵树中有两种类型的页面错误。在这个问题中,如果TLB和缓存都未命中,则会发生PF?@willturner是的,这是一个错误。如果我们在TLB中有页面,这意味着我们在主存中有页面,这意味着在读取时没有页面错误,谢谢你纠正了这一点。现在平均时间增大0.01:)敬礼。很好的解释。谢谢,现在一切都好了!!我将在所有此类问题上使用此方法,甚至在考试中:)
Probability of NO page fault (Memory access time) 
+ 
Probability of page fault (Page fault service time)
1 + 0.95*1.5 + 0.05*5.95 = 1 + 1.425 + 0.2975 = 2.7225