ASID 与 MIPS 中 TLB相关寄存器

ASID

  • 为了提高TLB的性能,将TLB分成Global和process-specific。global 是指常驻在tlb中不会被刷出的,例如内核空间的翻译,process-specific 是指每个进程独有的地址空间,当发生进程切换的时候,这部分tlb可以被刷出,为了支持process-specific的tlb,arm提出了ASID(Adress Space ID)的硬件解决方案,这样TLB就可以识别出这个 TLB 页表项是属于哪一个进程的。
  • 在 MIPS 中,有两个地方会出现ASID,每一个TLB表项会有一个ASID,标识这个表项是属于哪一个进程的,CP0_EntryHI 中的ASID是当前进程的ASID,所以进程对TLB的查询操作,即使VPN命中,但若该表项不是global且ASID与CP0_EntryHi的ASID不一致,则也视作TLB缺失 – 这样就不用每次切换进程都要 flush 所有 tlb

MIPS 中 TLB/MMU 相关寄存器

TLB 关键字域
  • EntryHi 包含 VPN2 和 ASID 字段
    • VPN2 就是 TLB 表项对应的虚拟页表号,在 MIPS 设计中,一个 TLB 表项存储的是两个相邻虚拟页对应的物理页框号,所以 VPN2 只有 21 位(除去页内偏移12位和第13位)
    • ASID 字段,是当前进程的ASID,在对 TLB 访问查询中起到验证的作用(具体见 ASID 部分)。
  • EntryLo0-1
    • PFN 对应的
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值