20

这是Silberschatz 等人的第 9 版操作系统概念中的一段:

在 TLB 中找到感兴趣的页码的次数百分比称为命中率。例如,80% 的命中率意味着我们有 80% 的时间在 TLB 中找到所需的页码。如果访问内存需要 100 纳秒,那么当页码在 TLB 中时,映射内存访问需要 100 纳秒。如果我们无法在 TLB 中找到页号,那么我们必须首先访问内存以获取页表和帧号(100 纳秒),然后访问内存中所需的字节(100 纳秒),总共需要 200 纳秒。(我们假设页表查找只需要一次内存访问,但它可能需要更多,正如我们将看到的那样。)为了找到有效的内存访问时间,我们按其概率加权情况:有效访问时间 = 0.80 × 100 + 0。

但在同一本书的第 8 版中 在此处输入图像描述

我很困惑

有效访问时间

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

4

6 回答 6

30

如果在 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
于 2015-07-01T00:43:24.783 回答
8

这里的有效时间只是使用命中或未命中的相对概率的平均时间。因此,如果命中发生率为 80%,而未命中发生率为 20%,那么大量命中/未命中的有效时间(即平均时间)将为 0.8 *(命中时间)+ 0.2 *(未命中时间) )。

于 2013-08-31T16:43:04.227 回答
8

EAT的通用公式

命中率 = a

主存访问时间 = m

关联查找(TLB 访问)= e

吃 = (m + e) a + (2m + e) (1 - a)

    = 2m - ma + e
于 2016-12-03T14:43:38.610 回答
4

在 TLB 中,经常访问的页号和帧号的副本被保存在存储到内存中的页表中。

它首先研究 TLB。如果找到,它将转到内存位置,因此总访问时间等于:

20 + 100 = 120 ns

现在,如果缺少 TLB,那么您需要先搜索 TLB,然后再搜索存储在内存中的页表。所以一个内存访问加上一个特定的页面访问,只不过是另一个内存访问。所以总时间等于:

20 + 100 + 100 = 220 ns

有效内存访问时间等于:

0.80 * 120 + 0.20* 220 = 140 ns
于 2015-05-05T13:15:22.093 回答
-2

有效访问时间是访问内存所花费的总时间(即主内存和缓存访问时间的总和)除以内存引用的总数。

于 2015-03-04T03:32:09.873 回答
-4

平均访问时间是命中时间+未命中率*未命中时间,不同意@Paul R 的回答

于 2015-11-25T20:49:07.253 回答