2013-08-31 120 views
10

这是Operating System Concepts, 9th edition一款由Silberschatz等人:计算有效访问时间

倍感兴趣的页面数量 发现的TLB被称为命中率的百分比。例如,80%的命中率, 意味着我们在TLB的80%中找到期望的页码数。如果访问内存需要100纳秒,那么当TLB的页码为 时,映射内存访问需要100纳秒。如果我们无法在TLB中找到页码,那么我们必须为页表和帧号(100 纳秒)首次访问存储器,然后访问存储器中所需的字节(100 纳秒),总共200纳秒。 (我们假设一个 页表查找只需要一次内存访问,但是我们可以看到,它可能需要更多的, )。为了找到有效的内存访问时间,我们通过它的概率权重 :有效访问时间= 0.80×100 + 0.20× = 120纳秒

但在同一本书的第8版 enter image description here

我感到困惑与

有效访问时间

有人可以为我解释吗?

+1

“有效访问时间”本质上是从内存获取值所需的(加权)平均时间。如果从存储器中读取100个请求,那么其中的80个请求将花费100 ns,其中20个请求将花费200个(使用第9版速度),因此总时间为12,000 ns,平均时间为120 ns每次访问。没有单个内存访问将需要120纳秒;每个将采取100或200纳秒。 (一个普通家庭有2.3个孩子,但任何一个真正的家庭都有0,1,2或3个孩子 - 或者是一个整数的孩子;你看不到很多'十分之三的孩子'在四处游荡)。 –

+1

这里的问题是作者试图在第9版中简化一些东西,并犯了一个错误。他试图将TLB的20ns访问时间与80ns的内存时间结合起来,以达到100ns的时间。如果是这样,一个小姐将需要20ns + 80ns + 80ns = 180ns,而不是200ns。这是第9版的错字。 – kainaw

回答

5

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

-1

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

+2

看起来像一个评论而不是答案 – sqluser

2

在TLB中,维护了一个经常访问的页码和帧号的副本,它是从存储在内存中的页表中获得的。

它首先看TLB。如果找到了,它关系到内存位置,因此总访问时间等于:

20 + 100 = 120 ns 

现在,如果TLB丢失,那么你需要首先搜索TLB,那么它存储到内存中的页表。所以一个内存访问加上一个特定的页面访问,除了另一个内存访问。所以,总的时间是等于:

20 + 100 + 100 = 220 ns 

有效的存储器存取时间是等于:

0.80 * 120 + 0.20* 220 = 140 ns 
17

在这种情况下,该页面在TLB(TLB命中)发现的总时间会是在TLB加访问内存的时间搜索的时间,所以

TLB_hit_time := TLB_search_time + memory_access_time 

在这种情况下,该页面未在TLB中找到(TLB错过)​​的总时间将是搜索TLB的时间(你没有发现任何事情克,但搜索nontheless),加上访问内存来获取页表和帧,再加上访问内存来获取数据的时间的时间,所以

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 
+0

如果它是一个3级分页系统,TLB_hit_time是否等于:TLB_search_time + 3 * memory_access_time和TLB_miss_time是TLB_search_time + 3 *(memory_access_time + memory_access_time)并且EAT会是相同的? – qwerty

+0

@qwerty是的,EAT将是相同的。在你的例子中,memory_access_time总是3 *,因为你总是需要经历3级的页面,所以EAT独立于所使用的分页系统 – Santiago

-2

平均存取时间是加权平均撞时间+未命中率*未命中时, 与@保罗的r答案

0

通式不同意对EAT

命中率=一个

主存储器存取时间=米

关联查找(TLB访问)= e

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

= 2m - ma + e