MIPS-底层内存管理与TLB

MIPS虚拟地址和物理地址映射关系图

虚拟与物理地址映射关系图

做存储器地址转换的原因

  1. 隐藏和保护,因为软件只能看到虚拟地址,看不到真实的物理地址。运行在用户特权级的程序,最终被映射到的地址位于kuseg的范围内
  2. 给程序分配连续的存储空间。因为连续的地址空间可以使得程度具有更快的运行速度,虽然在物理地址中映射的空间不一定是连续的,但是在虚拟地址中是连续的地址空间。
  3. 扩大地址范围。有些CPU不能直接访问他们物理存储器的全部范围,如果想访问更大的范围,需要使用MMU
  4. 使存储器映射适应你的程序。在一个大的操作系统里,有可能运行者一个程度的多个拷贝,此时使用同样的程度地址要容易得多。
  5. 按需调页。操作系统只有在真正用到这块内存资源时才会分配。
  6. 重定位。MMU允许程序在物理内存的任意地址上运行

TLB/MMU的硬件及其作用

TLB可以将虚拟地址转换为物理地址,实质上是一块cache,因为cache面积较大,较为昂贵,所以不能支持太多的表项。在TLB的转换过程中每一个表项通常对应于一个4KB大小的页。这就使TLB可以用有限的表项映射更大范围的物理地址。
每一个表项中含有一个虚拟地址(VPN)以及物理地址(PFN),当程度给出一个虚拟地址后,将会在TLB表项中寻找VPN与其对应,如果对应则给出PFN,如果没有找到对应的VPN则会引起TLB重填异常。
上文说在TLB的转换过程中每一个表项通常对应于一个4KB大小的页,这就使得低12位的地址不参与查找,同时在MIPS CPU中采用的是一个TLB表项对应两个相邻的虚拟页面,这使得倒数第13位也不参与查找,也就是低13位不参与查找过程。
TLB数据项
如上图所示,显示的是一个TLB表项所需的所有寄存器部分

  1. EntryHi寄存器存有VPN2以及ASID
  2. PageMask可以创建映射大于4KB大小的页(与EntryHi一起构成了输入域)
  3. EntryLo0-1存有PFN以及四个标志位G,V,D,C(TLB的输出域)
    寄存器
    其中VPN2指的就是虚拟地址,0-13位不参与查找,对于超过CPU使用的高位区域要全部置0或1,在64位的MIPS中,因为有R值的存在,要和R值匹配。仅使用32位指令集时,因为符号位扩展的,这些情况不必考虑。在低于VPN2的位有部分0区域的存在,此部分用于小范围的页地址的扩展,把部分位转换为需查找虚拟地址范围,比如页大小为1KB,需向下延伸两位。
    ASID指的是地址空间标识符,如果使用的多个地址空间,操作系统将会维护此区域。如果输出域的G位被置1,则意味着屏蔽了ASID,表示在全局查找。ASID是一个8位的域,允许同时映射256个不同的地址空间,如果用光了可以挑选一个扔出TLB的进程。
    PageMask寄存器允许你通过设置TLB域来映射更大的页,通常为4KB-16MB之间,并且每次以4倍递增
    寄存器
    如上图所示为EntryLo0-1的寄存器域结构
    PFN即物理地址,和VPN相对应,图中所示32位MIPS中可支持2的38次方的字节地址范围(26+12)
    C寄存器域指的是此地址是否选择高速缓存的工作方式(嵌入式)
    D位指的是写允许为,1表示允许写入
    V位指的是该如果该位为0,则表示对与该项匹配的地址的任何使用都将导致异常
    G位指的是是否屏蔽ASID的值,如果置1则表示将全局搜索,忽略ASID的匹配

Index寄存器用于选择TLB的表项
Random用于实现随机替换策略
Wired寄存器,在TLB从0开始向上,凡是索引值小雨下限值的表项不受随机替换的影响,Wired允许你指定这个下限值,可将这些槽用于永久转换地址项


Context寄存器能够帮助32位虚拟地址空间的TLB重填过程

TLB/MMU控制指令

tlbr 在索引处读出TLB表项
tlbwi 在索引处写入TLB表项
tlbwr 重填过程中采用此命令写入新的TLB表项
tlbp 寻找匹配的TLB表项,并将该项的索引保存到index寄存器

页表和重填机制

TLB未命中时,采用异常处理代码如下
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值