ARMv8-A编程指导之MMU(1)

        内存管理单元MMU的一个重要功能是使系统可以运行多个任务,让这些独立的程序可以运行在各自的私有虚拟内存空间。它们不需要知道系统的物理内存映射,即地址由硬件进行访问,或其他程序可能在同时执行。

        你可以对每个程序使用相同的虚拟内存地址。即使物理内存粹片化,你仍可以工作在一个连续的虚拟内存映射。系统中虚拟地址映射与实际上的物理内存映射是分开的。你可以在虚拟内存空间进行写,编译,和编译应用。

        在下图中显示了一个例子,系统中描述了虚拟和物理内存的视角。在单个系统中不同的处理器和设备可能有不同虚拟和物理地址映射。OS对MMU编程来在这两种内存视角中进行转换。

        为实现它,虚拟内存系统中的硬件必须提供地址转换,该转换由处理器发起的虚拟地址转化为主存中的物理地址。

        当在内存中放置代码时,你(编译器和链接器)使用的是虚拟地址。实际的物理系统使用的是物理地址。

        MMU使用虚拟地址的最高位来在转换表中索引页表项,并建立访问哪个块。MMU将代码的虚拟地址转化为实际系统中的物理内存。转换自动在硬件中进行并对应用透明。除了地址转换,MMU控制内存访问权限,内存顺序和内存每个区域的cache策略。

        MMU使任务或应用能够不用知道系统的物理内存映射,或其他程序可以在同时执行。这让你可以对多个程序使用相同的虚拟内存地址空间。

        即使物理内存不连续,它让你可以工作在连续的虚拟物理内存映射。虚拟地址和实际的物理内存映射使分开的。应用被写,编译和链接都运行在虚拟内存空间。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值