mmu学习总结

当几个app同时运行时
1 它们同时保存在 sdram 上
2 它们的地址各不相同

链接地址:
程序运行时,所处地址

一般情况下编译某个app时,需要单独指定它的链接地址

linux 上app 的程序起始地址都是一样的。
当cpu 运行app 读取指令的时候,都是从上述相同的地址去读。

引入虚拟地址的原因
1 让app以同样的链接地址,进行编译。 (好的可移植性)

如何实现 1g 的app,可以在 64M的内存上运行
1 首先app时存储在 emmc 上的
2 当运行app 时,linux设备一般都会把数据搬到 ddr上
3 app 的 va0 映射到实际地址上的 pa0
va1 到 映射到实际地址的pa 1上。
运行 va2时,没用了实际物理地址可用,那么可能把 pa0 的数据置换出来,放进va2的数据。

TCB 是什么?
cpu内核发出 va 请求读数据,TCB 接收到该地址。
那为什么 TCB 先接收该地址呢?
因为TCB是mmu中的一块高速缓存(也是一种 cache 是cpu内核和物理内存之间的cache)。
它缓存了最近查找过的VA对应的页表项,如果TCB缓存了va的页表项,就不必做 translation
table walk 了,否则就去物理内存中读取页表保存在TCB中,TCB缓存可以减少访问物理内存的次数

mmu 权限管理
app1 不能访问 app2的内存空间
a 完全不允许访问
b 允许系统模式访问
不允许用户模式访问
c 用户模式下,根据描述符中的ap决定
参考:MMU部件以及对内存权限的控制

怎么使用 mmu
a 在内存中创建页表
b 把页表的基址告诉mmu
c 启动mmu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值