计算有效访问时间

时间:2013-08-31 16:38:55

标签: caching memory-management tlb

这是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版中 enter image description here

我对

感到困惑
  

有效访问时间

有人可以帮我解释一下吗?

6 个答案:

答案 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的回答