mips结构的tlb(MMU)分析

本文深入分析了MIPS架构的MMU(TLB)工作原理,包括TLB条目结构、地址转换过程及其在隐藏保护、连续存储空间分配等方面的重要作用。通过TLB指令如tlbr、tlbwi等进行操作,并详细阐述了地址转换的步骤,强调了地址空间的有效性和权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,基于mips架构的mmu(TLB)的分析

首先说一下和tlb有关的几个重要的寄存器:
EntryHi:CP0寄存器号    10
      包含了输入的关键字VPN2和记住当前活动的ASID

EntryLo0-1:CP0寄存器号 2-3
      包含了输出用到的关键字,以及标志位
PageMask:CP0寄存器号   5
      配置映射页的大小
Index:CP0寄存器号      0
      指定要写入或者读取的tlb表项
Random:CP0寄存器号     1
       这时一个随机数寄存器,被tlbwr用来将一个新的tlb表项写入到一个随机的位置
BadVAddr:CP0寄存器号  8
    记录最近一次导致tlb或寻址错误例外的虚拟地址。
Context:CP0寄存器号    4
XContext:CP0寄存器号   20
       用来加速tlb重填自陷处理。o高位是可读写的,低位取自未能转换的地址的VPN。在一次tlb重填自陷后,Context就会包含一个指向映射gg相应出错地址所需要的页表记录的指针。XContext相似。


EntryHi:
VPN2(虚拟页号):这部分是程序地址的高位(低位的页内地址0-13位略去了)。0-12位属于页内地址,程序地址的第13位在两个可能的输出值之间进行选择。(注意:当重填异常发生后,硬件自动设置该寄存器的值;当想要写入另外的tlb表项或检测tlb时,只能手工设置)

ASID(地址空间标识符):这部分时操作系统对当前地址空间的标识。异常不会影响该域。

R(64位版本):这是一个地址区域选择符。可以看作是EntryHi(VPN2)的更多位,只不过是64位MIPS虚拟地址的最高位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值