一、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更简单,使用开销也更少
如st cotex-A8就支持MMU,Cortex-M3就只支持MPU
二、MCU和MPU
MPU (Micro Processor Unit),叫微处理器(不是微控制器)
MCU(Mirco Controller Unit),叫微控制器
MCU和MPU的主要差别。一个典型的MCU通常使用片内flash存储器来存储和执行程序代码。以这种方式存储程序意味着MCU有非常快的启动时间,上电能够快速执行代码,片内存储还有个优势是可以加密程序。使用片内存储方式唯一不足就是总存储空间受MCU本身所限。目前市场上绝大多数flash型MCU最大空间为2M字节,从各种应用上看,这证明了是一个限制因素。而MPU没有存储空间的限制,MPU使用外部存储器提供程序和数据空间。程序一般放在非易失性存储器如NAND或者串行Flash内,启动时,程序载入到外部DRAM中,然后开始执行。这意味着MPU没有MCU启动运行来的快,但MPU可扩展的外部DRAM和NVM容量能达到数百Mbytes,甚至上Gbytes。另一个不同是供电,一般MCU仅仅需要单电压供电,而MPU需要几路不同的电压分别给IO,内核,DDR等供电,开发者往往需要在电路板上设计附加的电源转换芯片。
MPU和MCU的区别本质上是因为应用定位不同,为了满足不同的应用场景而按不同方式优化出来的两类器件。MPU注重通过较为强大的运算/处理能力,执行复杂多样的大型程序,通常需要外挂大容量的存储器。而MCU通常运行较为单一的任务,执行对于硬件设备的管理/控制功能。通常不需要很强的运算/处理能力,因此也不需要有大容量的存储器来支撑运行大程序。通常以单片集成的方式在单个芯片内部集成小容量的存储器实现系统的“单片化”。
st 公司新推出的MP1系列就是MPU芯片