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. 树莓派3B+学习笔记:9、更改软件源

    树莓派系统安装完成后,由于默认软件源服务器访问速度慢,安装软件耗时会很长,可以通过更改软件源来加快软件的安装速度. 系统安装完成后默认软件源如下: 更改镜像源前需要自行查找镜像源,并记下网址: 1.阿 ...

  2. Django模型定义参考

    字段 对字段名称的限制 字段名不能是Python的保留字,否则会导致语法错误 字段名不能有多个连续下划线,否则影响ORM查询操作 Django模型字段类 字段类 说明 AutoField 自增ID字段 ...

  3. C语言read函数的那些坑

    今天在复习UNIX文件系统,用到那个read函数,但是无意中却掉到一个坑里了,用了一个多小时才找到问题根源,这里记录一下. 问题是这样的:我需要使用read和write函数把键盘输入的信息复制到输出. ...

  4. (数据科学学习手札49)Scala中的模式匹配

    一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...

  5. 20155328 实验四 Android程序设计 实验报告

    20155328 实验四 Android程序设计 第24章 初识Android 提交点1:完成HelloWorld并显示自己的学号 安装Android Studio后,创建了属于自己的Project( ...

  6. Wiki版产品需求---产品需求文档到底是谁的?产品到底是谁的?

    在听了测试的一通唠叨之后,"内部实现一堆逻辑,只有一句话的需求文档","文档那么简单,我们怎么测试啊",心中突然想起来自己曾经干的一件当时觉得还不错的事情,但是 ...

  7. 【转载】漫谈C++:良好的编程习惯与编程要点

    原文: 漫谈C++:良好的编程习惯与编程要点 阅读目录 以良好的方式编写C++ class Class with pointer member(s):记得写Big Three static与类 正文 ...

  8. Django模型层:单表操作

    一 ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装

  9. VirtualBox主机和虚拟机互相通信

    默认情况下VirtualBox虚拟机网络设置为网络地址转换,虚拟机中的地址一般是10.0.2.x,虚拟机中访问主机只需要访问默认网关地址即可,但是主机访问虚拟机就需要增加一些配置了,方法有以下几种: ...

  10. new表达式,operator new和placement new介绍

    new/delete是c++中动态构造对象的表达式 ,一般情况下的new/delete都是指的new/delete表达式,这是一个操作符,和sizeof一样,不能改变其意义. new/delete表达 ...