本文概述
- 分页的缺点
- 如何减小页表大小
- 如何减少有效访问时间
- 参考地点
- 转换后备缓冲区(TLB)
- Page表的大小可能非常大, 因此浪费了主内存。
- CPU将花费更多时间从主存储器读取单个字。
- 可以通过增加页面大小来减小页面表的大小, 但这将导致内部碎片, 并且还会浪费页面。
- 其他方法是使用多级分页, 但这会增加有效的访问时间, 因此这不是一种实用的方法。
- CPU可以使用内部存储有页表的寄存器, 以便访问页表的访问时间可以减少, 但是该寄存器并不便宜, 并且与页表大小相比非常小, 因此, 这也不是实用的方法。
- 为了克服分页中的许多缺点, 我们必须寻找一种比寄存器便宜并且比主存储器更快的存储器, 以便可以减少CPU一次又一次访问页表所花费的时间, 并且只能集中访问实际单词。
转换后备缓冲区(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命中率, 则有效访问时间将减少。
- 在多级寻呼的情况下, 有效的访问时间将增加。
推荐阅读
- 系统树状目录
- 无需等待的同步机制
- 处理死锁的策略
- 最短剩余时间优先(SRTF)调度算法
- SRTF GATE 2011示例
- 系统睡眠与唤醒
- 最短作业优先(SJF)调度
- 系统单级目录
- Deep RL Bootcamp Lecture 2: Sampling-based Approximations and Function Fitting