S3C2440里面带的是MMU,而现在流行的Cortex-M3/4 里面带的是MPU。

MMU vs MPU

内存是现代计算机最重要的组件之一。因此,它的内容不能被任何错误的应用所篡改。这个功能可以通过MMU(Memory Management Unit)或者MPU(Memory Protection Unit)来实现。尽管这个两个东西有同样的基本功能,但是它们之间还是存在一些不同。MMU被认为是比MPU更先进的设备。MMU能完成MPU的所有工作,并且它还具备MPU没有的一些高级特性。

MMU具备而MPU不具备的特性包括:缓存控制,总线仲裁,bank切换。这些特性是更复杂的计算机所需要的,以便信息处理流程更顺畅无误。通过使用MMU,你能优化你的计算机性能,因为它可以让微处理器不用关心上述:缓存控制,总线仲裁,bank切换任务,由独立的MMU单元来全权负责。

如果你使用的是简单计算机,不需要做多任务或者相关处理,使用MMU可能不是最好的做法。首先要考虑的是价格和复杂性,因为使用先进的MMU会带来更高的价格和复杂度。相比于简单的MPU,使用MMU会给系统带来不必要的负担。如果主处理器不够快,使用MMU会造成一些问题。

选择MMU还是MPU更大程度上取决于构建系统的规模和复杂度。如果的你系统足够大使用MMU会带来好处。如果你构建一个可靠地简单系统,MMU是不建议选择的。MPU将提供必要的功能,同时降低复杂性和成本。

总结:

MMU比MPU更先进

MMU能覆盖MPU的所有功能

MMU能实现缓存控制,总线仲裁,Bank切换,而MPU不能

MPU比MMU更简单,使用开销也更少

Memory is one important component in modern computing. As such, it is necessary that its contents are not corrupted by any errant application. This function can be done by an MMU (Memory Management Unit) or by an MPU (Memory Protection Unit). Although they both do the same basic function, there are a number of differences between an MMU and an MPU. An MMU is considered to be a more advanced device than an MPU. An MMU is capable of doing the job of an MPU along with other more advanced features that are absent in the latter.

The features that are present in an MMU and not in the MPU include cache control, bus arbitration, and bank switching. All these features are necessary in more complex computers as they allow the flow of information to be smoother and without any problem. By using an MMU, you can also optimize the performance of your computer as it would off-load the said tasks from the microprocessor.

But if you are dealing with a very simple computer that does not do multi-tasking and other related processes, using an MMU may not be the best thing to do. The primary consideration would be price and complexity as employing the more advanced MMU would be more costly and more complex. It may also tax the system unnecessarily as MMU units utilize more overhead compared to the far simpler MPUs. If the main processor used is not fast enough, using an MMU may cause problems.

Choosing between an MMU and MPU is largely dependent on the scale and complexity of the system being built. An MMU is recommended if your system is large enough to benefit from its capabilities. If you are building a relatively simply system, using an MMU is not advisable. An MPU would provide the necessary capabilities while keeping complexity and cost down.

Summary:

An MMU is more advanced than an MPU
An MMU is able to do the job of an MPU
An MMU is capable of cache control while an MPU is not
An MMU is capable of bus arbitration while an MPU is not
An MMU is capable of bank switching while an MPU is not
An MPU is simpler and uses less overhead than an MMU

MMU 和 MPU的区别的更多相关文章

  1. ARM系列产品

    ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Intel的StrongARM ARM11系列 Intel的Xscale 其中,ARM7.ARM9.ARM9E和A ...

  2. ARM architectures

    https://gitorious.org/freebsd/freebsd/raw/56c5165837bf08f50ca4a08c6b2da91f73852960:sys/arm/include/a ...

  3. ARM架构解析

    ARM架构解析 (2014-11-23 21:56:53) 转载▼ 标签: francis_hao arm架构 arm核 soc 分类: MCU 先来谈一下ARM的发展史:1978年12月5日,物理学 ...

  4. ARM架构

    ARM架构(过去称作进阶精简指令集机器(Advanced RISC Machine),更早称作Acorn RISC Machine)是一个32位元精简指令集(RISC) 中央处理器(processor ...

  5. 我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯

    关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程. 中文网络教程链接(链接至 altera中文官网,点击观看) Quartus II 软件设计系列:基础 Qu ...

  6. 关于ARM CM3的启动文件分析

    下面以ARM Cortex_M3裸核的启动代码为例,做一下简单的分析.首先,在启动文件中完成了三项工作: 1.  堆栈以及堆的初始化 2.  定位中断向量表 3.  调用Reset Handler. ...

  7. 10.1-uC/OS-III任务堆栈空间

    1.设置任务优先级 嵌入式系统中的重要的应用应该被设置为高优先级,一些显示操作就应该被设置为低优先级. 然而, 由于实时系统的复杂性, 在大多数情况下任务的优先级是不能被事先确定的.多数系统中,不是所 ...

  8. ARM architecture

    http://en.wikipedia.org/wiki/ARM_architecture ARM architecture     ARM architectures The ARM logo De ...

  9. arm cpu的架构及分类说明

    今天在编译mplayer for mx27ads的时候, 碰到了armv5te与armv6优化的问题. 默认的交叉编译器支持armv5te也支持armv6,就默认使用了mplayer中mpeg4的ar ...

随机推荐

  1. uni-app 下拉至指定高度固定view

    uni.createSelectorQuery().select(‘#salyt’).boundingClientRect(function(rects){ console.log(rects) va ...

  2. flex tooltip css

    <?xml version="1.0"?> <!-- tooltips/ToolTipStyleManager.mxml --> <mx:Applic ...

  3. 【LG3243】[HNOI2015]菜肴制作

    题面 洛谷 题解 首先我们有个非常显然的思路, 就是直接拓扑排序,用小根堆代替队列再按顺序输出,但是很显然是错的, 因为这只保证了字典序最小,而无法保证答案最优,\(<2,4>,<3 ...

  4. 【LG3723】[AHOI2017/HNOI2017]礼物

    [LG3723][AHOI2017/HNOI2017]礼物 题面 洛谷 题解 首先我们将\(c\)看作一个可以为负的整数,那么我们就可以省去讨论在哪个手环加\(c\)的繁琐步骤了 设我们当前已经选好了 ...

  5. 1130: [POI2008]POD Subdivision of Kingdom

    1130: [POI2008]POD Subdivision of Kingdom https://lydsy.com/JudgeOnline/problem.php?id=1130 分析: 有效状态 ...

  6. Mybatis JPA-集成方案+源码

    2018-04-18 update 当前文章已过时,请访问代码仓库查看当前版本wiki. github https://github.com/cnsvili/mybatis-jpa gitee htt ...

  7. SpringBoot (1) idea下的环境搭建及demo

    1.Spring Boot简介 wiki上的介绍: Spring Boot是Spring的常规配置解决方案,用于创建可以“运行”的独立的,生产级的基于Spring的应用程序.[22]它预先配置了Spr ...

  8. selenium +java 多个类公用driver问题

    问题点:太久没有写selenium代码,居然把driver公用的问题忘记了,即:每写一个测试类,执行过程中都会新建一个窗口,这样应该说是非常不专业的. 大概想了一个方法,虽然看起来也不怎么专业,但感觉 ...

  9. Vue学习计划基础笔记(六) - 组件基础

    组件基础 目标: 掌握组件的构建方式 掌握如何复用组件.父子组件如何传值.如何向父组件发送消息 掌握如何通过插槽分发内容 了解解析dom模板时的注意事项 了解动态组件 组件 组件理解起来大概上就和ph ...

  10. “错误: 编码GBK的不可映射字符” 的解决方案

    命令行下,用javac命令编译java程序时,如果文档的编码为“utf-8”,并且含有中文字符时,会出现乱码现象,编译通过不了.如图: 解决方案:编译时指定编码方式,防止乱码.如下: