MMU and MPU

    MMU,存储器管理单元,用于实现虚拟内存和内存的分区保护,这是应用处理器与嵌入式处理器的分水岭。电脑和数码产品所使用的处理器几乎清一色地都带MMU。但是MMU也引入了不确定性,这有时是嵌入式领域——尤其是实时系统不可接受的。然而对于安全关键(safety-critical)的嵌入式系统,还是不能没有内存的分区保护的。为解决矛盾,于是就有了MPU。可以把MPU认为是MMU的功能子集,它只支持分区保护,不支持具有"定位决定性"的虚拟内存机制。

    Cortex-M3有一个可选的存储器保护单元。配上它之后,就可以对特权级访问和用户级访问分别施加不同的访问限制。当检测到犯规(violated)时, MPU 就会产生一个 fault 异常,可以由fault异常的服务例程来分析该错误,并且在可能时改正它。

    MPU 有很多玩法。最常见的就是由操作系统使用 MPU,以使特权级代码的数据,包括操作系统本身的数据不被其它用户程序弄坏。
    MPU在保护内存时是按区管理的("区"的原文是 region)。它可以把某些内存 region设置成只读,从而避免了那里的内容意外被更改;还可以在多任务系统中把不同任务之间的数据区隔离。一句话,它会使嵌入式系统变得更加健壮,  更加可靠(很多行业标准,尤其是航空的,就规定了必须使用 MPU来行使保护)。


    MMU的两个主要作用:

        (1) 安全性:规定访问权限

        (2) 提供地址空间:把不连续的空间转换成连续的。

猜你喜欢

转载自blog.csdn.net/xiaozhiwise/article/details/111549204
MMU