本文概述
分页的缺点
- Page表的大小可能非常大, 因此浪费了主内存。
- CPU将花费更多时间从主存储器读取单个字。
如何减小页表大小
- 可以通过增加页面大小来减小页面表的大小, 但这将导致内部碎片, 并且还会浪费页面。
- 其他方法是使用多级分页, 但这会增加有效的访问时间, 因此这不是一种实用的方法。
如何减少有效访问时间
- CPU可以使用内部存储有页表的寄存器, 以便访问页表的访问时间可以减少, 但是该寄存器并不便宜, 并且与页表大小相比非常小, 因此, 这也不是实用的方法。
- 为了克服分页中的许多缺点, 我们必须寻找一种比寄存器便宜并且比主存储器更快的存储器, 以便可以减少CPU一次又一次访问页表所花费的时间, 并且只能集中访问实际单词。
参考地点
在操作系统中, 引用局部性的概念指出, 与其将整个线程加载到主存储器中, OS只能加载主存储器中CPU经常访问的那些页数, 以及与此相关的OS还可以仅加载与许多页面相对应的那些页面表条目。
转换后备缓冲区(TLB)
转换后备缓冲区可以定义为内存缓存, 可用于减少一次又一次访问页表所花费的时间。
它是一个更靠近CPU的内存缓存, CPU访问TLB所花费的时间比访问主内存所花费的时间短。
换句话说, 我们可以说TLB比主存储器更快, 更小, 但比寄存器便宜且更大。
TLB遵循引用局部性的概念, 这意味着它仅包含CPU经常访问的许多页面的条目。
在翻译后备缓冲区中, 有标记和键, 借助它们可以完成映射。
TLB命中是在翻译后备缓冲区中找到所需条目的条件。如果发生这种情况, CPU只需访问主存储器中的实际位置。
但是, 如果在TLB中找不到条目(TLB丢失), 则CPU必须访问主存储器中的页表, 然后访问主存储器中的实际帧。
因此, 在TLB命中的情况下, 有效访问时间将比TLB未命中的情况要短。
如果TLB命中的概率为P%(TLB命中率), 则TLB未命中的概率(TLB未命中率)将为(1-P)%。
因此, 有效访问时间可以定义为:
EAT = P (t + m) + (1 - p) (t + k.m + m)
如果已实现单级分页, 则p→TLB命中率, t→访问TLB所需的时间, m→访问主存储器所需的时间k = 1。
通过公式, 我们知道
- 如果提高TLB命中率, 则有效访问时间将减少。
- 在多级寻呼的情况下, 有效的访问时间将增加。
评论前必须登录!
注册