📜  门| GATE-CS-2014-(Set-3)|第65章

📅  最后修改于: 2021-06-29 02:41:18             🧑  作者: Mango

考虑具有TLB的寻呼硬件。假设整个页表和所有页都在物理内存中。搜索TLB需要10毫秒,而访问物理内存则需要80毫秒。如果TLB命中率为0.6,则有效内存访问时间(以毫秒为单位)为_________。
(A) 120
(B) 122
(C) 124
(D) 118答案: (B)
说明: TLB代表转换后备缓冲区。在虚拟内存系统中,CPU生成虚拟内存地址。但是,数据存储在实际的物理内存中,也就是说,我们需要在内存总线上放置一个物理内存地址,才能从内存电路中获取数据。因此,操作系统会维护一个特殊的表,称为Page表。该表包含虚拟地址和物理地址之间的映射。因此,每次cpu生成虚拟地址时,都必须查找操作系统页表以找到相应的物理地址。为了加快速度,提供了称为TLB的硬件支持。 TLB是页表的高速缓存,即包含最近访问的虚拟到物理转换。 TLB命中率-TLB命中是在TLB中已经找到虚拟到物理地址转换的次数了,而不是一直到位于较慢物理内存中的页表。 TLB命中率不过是TLB命中率/查询到TLB的总次数之比。如果在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性能的平均量度时,可以使用有效访问时间,即先前量度的加权平均值。

饮食:= TLB_miss_time *(1- hit_ratio)+ TLB_hit_time * hit_ratio。

饮食:=(TLB_search_time + 2 * memory_access_time)*(1- hit_ratio)+(TLB_search_time + memory_access_time)* hit_ratio。

由于页表和页都在物理内存中
T(eff)=命中率*(TLB访问时间+主存储器访问时间)+
(1 –命中率)*(TLB访问时间+ 2 *主内存时间)
= 0.6 *(10 + 80)+(1-0.6)*(10 + 2 * 80)
= 0.6 *(90)+ 0.4 *(170)
= 122

此解决方案由Nitika Bansal提供这个问题的测验