PowerPC PPC460-S MMU(二)

本文详细介绍了PowerPC PPC460的MMU工作原理,包括页识别的虚拟地址形成、地址空间识别符、TLB匹配过程,以及地址转译的步骤。在页识别部分,解释了如何根据MSR的IS和DS位区分用户态和系统态的地址空间。地址转译则阐述了如何将虚拟地址转换为物理地址。
摘要由CSDN通过智能技术生成

OverView

每个TLB Entry通过4个类域来实现页识别、转译、访问控制以及存储属性的定义。
关于每个域的属性可直接参考手册定义表,下面主要介绍4个类域的技术支持:

1. 页识别 Page Identification

1)虚拟地址产生 Virtual Address Formation
2)地址空间识别符 Address Space Identifier
  • 针对两个独立的虚拟地址空间,由识别符的0和1来区别;
    一个针对于系统的中断处理以及系统级代码和数据的访存;
    一个针对于应用层的代码与数据的访存;

  • 通常,用户态时,MSR的IS(取指)以及DS(取值)位会标记为1,
    以允许应用层的代码和数据的访存;
    然后,当发生中断时,MSR的IS、DS自动清零,通过系统级的TLB
    便可以访问中断的代码以及数据区(也就是说,此时的TLB Entry中
    TS=0 <–TS与MSR的IS、DS保持对应);
    当然,操作系统也可能把一些系统级的代码与数据区置于应用层地址
    空间(当然,对应的TS=1),这样在用户态就可以访问。(例如:
    一些共享的系统库函数);那么,此时,如果系统级代码要想访问
    这些区域时,也就需要首先设置MSR[IS,DS] = 1来获取应用层的TLB
    (除非在系统级TLB中也存在同样可选的定义)。

  • 由上,当应用层代码运行时(MSR[IS,DS] = 1),使用TLB entries
    需要设置TS=1;反言之,在系统级时(MSR[IS,DS] = 0),TS=0;
    当然,尽管在用户模式,也可以设置MSR[IS,DS]=0(特权模式也一样),
    但此时需要注意的是,如果是中断发生导致的MSR清零,在修改MSR
    [IS,DS]=1时,需要建立对应的页表入口,以保证系统级的中断处理代码
    (TS=0)能够正常访问和执行。

* Note:*
* 对于中断处理Handler的有效地址,软件应尽可能保证为其找到 *
* 有效的TLB entry(TS=0,SX=1),否则引起异常后也会导致 *
* SRR0/SSR1(保存中断地址及MS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值