Ays*_*ari 15 caching memory-management tlb
这是Silberschatz等人的第9版操作系统概念的一段:
在TLB中找到感兴趣的页面编号的次数称为命中率.例如,80%的命中率意味着我们在80%的时间内在TLB中找到所需的页码.如果访问内存需要100纳秒,那么当页码在TLB中时,映射内存访问需要100纳秒.如果我们无法在TLB中找到页码,那么我们必须首先访问页表和帧号(100纳秒)的内存,然后访问内存中所需的字节(100纳秒),总共200纳秒.(我们假设页面表查找只需要一次内存访问,但它可能需要更多内容,我们将会看到.)为了找到有效的内存访问时间,我们通过概率对案例进行加权:有效访问时间= 0.80 ×100 + 0.
但是在同一本书的第8版中

我很困惑
有效的访问时间
有人可以帮我解释一下吗?
San*_*ago 23
如果在TLB(TLB命中)中找到页面,则总时间将是TLB中搜索的时间加上访问内存的时间,因此
TLB_hit_time := TLB_search_time + memory_access_time
Run Code Online (Sandbox Code Playgroud)
如果在TLB(TLB未命中)中找不到页面,则总时间将是搜索TLB的时间(您没有找到任何内容,但仍未搜索)以及访问内存以获取页面表的时间和框架,加上访问内存以获取数据的时间,所以
TLB_miss_time := TLB_search_time + memory_access_time + memory_access_time
Run Code Online (Sandbox Code Playgroud)
但是在个别情况下,当您想知道TLB性能的平均度量时,您使用有效访问时间,即先前度量的加权平均值
EAT := TLB_miss_time * (1- hit_ratio) + TLB_hit_time * hit_ratio
Run Code Online (Sandbox Code Playgroud)
要么
EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
(TLB_search_time + memory_access_time) * hit_ratio
Run Code Online (Sandbox Code Playgroud)
这里的有效时间只是使用命中或未命中的相对概率的平均时间.因此,如果在80%的时间内发生命中并且在20%的时间内发生未命中,则在大量命中/未命中的有效时间(即平均时间)将是0.8*(命中时间)+ 0.2*(未命中时间) ).
EAT 的通用公式
命中率 = a
主存访问时间 = m
关联查找(TLB 访问)= e
吃 = (m + e) a + (2m + e) (1 - a)
= 2m - ma + e
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58530 次 |
| 最近记录: |