根据以下数据计算平均内存访问时间?
Calculation of the average memory access time based on the following data?
考虑以下信息
- 假设缓存是物理寻址的
- TLB 命中率为 95%,访问时间 = 1 个周期
- 缓存命中率为90%,再次访问时间=1个周期
- 页面错误为 1%,发生在 TLB 和缓存都未命中时
- TLB访问和缓存访问是顺序的
- 主存访问时间为5个周期
- 磁盘访问时间为 100 个周期
- 页面 table 始终保存在主内存中
根据以下信息,平均内存访问时间是多少?
我的方法 => 我给出了我对这个问题的理解方法。请检查。
平均内存访问时间
==>
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
考虑以下信息
- 假设缓存是物理寻址的
- TLB 命中率为 95%,访问时间 = 1 个周期
- 缓存命中率为90%,再次访问时间=1个周期
- 页面错误为 1%,发生在 TLB 和缓存都未命中时
- TLB访问和缓存访问是顺序的
- 主存访问时间为5个周期
- 磁盘访问时间为 100 个周期
- 页面 table 始终保存在主内存中
根据以下信息,平均内存访问时间是多少?
我的方法 => 我给出了我对这个问题的理解方法。请检查。
平均内存访问时间
==>
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