这是Silberschatz等人Operating System Concepts, 9th edition的段落:
找到感兴趣的页码的次数百分比 TLB称为命中率。例如,80%的命中率 意味着我们在TLB中找到所需页码的80% 时间。如果访问内存需要100纳秒,那么a 当页码在时,映射内存访问需要100纳秒 TLB。如果我们无法在TLB中找到页码,那么我们必须这样做 第一个访问页面表和帧号的内存(100 纳秒)然后访问内存中的所需字节(100 纳秒),总共200纳秒。 (我们假设一个 页表查找只需要一次内存访问,但它可能需要更多, 我们将看到。)为了找到有效的内存访问时间,我们加权 案例按其概率:有效访问时间= 0.80×100 + 0.20 ×200 = 120纳秒
但是在同一本书的第8版中
我对
感到困惑有效访问时间
有人可以帮我解释一下吗?
答案 0 :(得分:20)
如果在TLB(TLB命中)中找到页面,则总时间将是TLB中的搜索时间加上访问内存的时间,因此
TLB_hit_time := TLB_search_time + memory_access_time
如果在TLB(TLB未命中)中找不到页面,则总时间将是搜索TLB的时间(您没有找到任何内容,但仍未搜索)以及访问内存以获取内存的时间页面表和框架,以及访问内存以获取数据的时间,所以
TLB_miss_time := TLB_search_time + memory_access_time + memory_access_time
但是在个别情况下,当您想知道TLB性能的平均度量时,您使用有效访问时间,即先前度量的加权平均值
EAT := TLB_miss_time * (1- hit_ratio) + TLB_hit_time * hit_ratio
或
EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
(TLB_search_time + memory_access_time) * hit_ratio
答案 1 :(得分:6)
这里的有效时间只是使用命中或未命中的相对概率的平均时间。因此,如果在80%的时间内发生命中并且在20%的时间内发生未命中,则在大量命中/未命中的有效时间(即平均时间)将是0.8 *(命中时间)+ 0.2 *(未命中时间) )。
答案 2 :(得分:2)
在TLB中,保存了经常访问的页码和帧号的副本,该副本来自存储在存储器中的页表。
首先考虑TLB。如果找到,它将进入内存位置,因此总访问时间等于:
20 + 100 = 120 ns
现在如果缺少TLB,那么首先需要搜索TLB,然后搜索存储在内存中的页表。所以一个内存访问加上一个特定的页面访问,只有另一个内存访问。所以总时间等于:
20 + 100 + 100 = 220 ns
有效的内存访问时间等于:
0.80 * 120 + 0.20* 220 = 140 ns
答案 3 :(得分:1)
EAT的通用公式
命中率= a
主内存访问时间= m
关联查找(TLB访问)= e
EAT =(m + e)a +(2m + e)(1-a)
= 2m - ma + e
答案 4 :(得分:-1)
有效访问时间访问内存所花费的总时间(即主内存和缓存访问时间的总和)除以内存引用总数。
答案 5 :(得分:-2)
平均访问时间是命中时间+未命中率*未命中时间, 不同意@Paul R的回答