存储器管理——具有快表的地址变换机构
局部性原理:时间局部性、空间局部性
时间局部性:被访问过的数据不久后很可能再次被问。(因为程序中存在大量的循环)
空间局部性:被访问的存储单元附近的存储单元,不久后很可能被访问。(连续存放)
快表(联想寄存器TLB):用来存放当前访问的若干页表项,以加速地址变换的过程。是一种访问速度比内存快很多的高速缓冲存储器。
与快表对应的内存中的页表常称为:慢表
快表匹配前需要:CPU给出逻辑地址,得出页号、页内偏移量,将页号与快表匹配
快表匹配成功后:直接取出对应的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。
若快表命中,访问某个逻辑地址仅需访存几次:一次
快表匹配失败后:需要访问内存中的页表,找到对应页表项,得到页面存放的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。
快表未命中,访问某个逻辑地址需要访存几次:两次
快表中副本的由来:在找到页表项后,应同时将其存入快表,以便后面可能的再次访问。但若快表己满,则必须按照一定的算法对旧的页表项进行替换
因为局部性原理,快表的命中率可以达到:90%以上
具有快表的地址变换及机构的地址变换过程:
1.算页号、页内偏移量
2.检查页号合法性
3.查快表。若命中,即可知道页面存放的内存块号,可直接进行5;若未命中则进行4
4.查页表,找到页面存放的内存块号,并且将页表项复制到快表中
5.根据内存块号与页内偏移量得到物理地址
6.访问目标内存单元
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界