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

Calculation of the average memory access time based on the following data?

考虑以下信息

根据以下信息,平均内存访问时间是多少?

我的方法 => 我给出了我对这个问题的理解方法。请检查。

平均内存访问时间

==>

Probability of NO page fault (Memory access time) 
+ 
Probability of page fault (Page fault service time)

==>

0.99 ( TLB hit (TLB access time + cache hit + cache miss) + TLB miss (TLB access time + Page table access时间 + 缓存命中 + 缓存未命中) )

+

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

==>

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 : 我下周期中考试,需要练习这样的题

在你的情况下,棘手的行是 cache is physically addressed 意思是在命中它之前我们必须执行转换(因为程序使用虚拟地址)

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

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

减少后

缓存命中场景的成本

注意:无论如何我们都会为缓存访问支付 1 个周期

上次减少前

注意:无论如何我们都会为 TLB 支付 1 个周期的费用

1 + 0.95*1.5 + 0.05*5.95 = 1 + 1.425 + 0.2975 = 2.7225