MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
可能很多xdjm都知道MMU的基本功能:提供从物理地址到逻辑地址的映射。但如果说MMU是整个嵌入式系统软硬件层次与定位的分水岭,却是为何?近日,我在这个问题上做了一些思考与总结,拿出来分享一下,还希望xdjm们能多多参与讨论讨论^_^
总体而言,处理器是否有MMU是个定位分水岭。大体而言,有MMU的系统在应用程序的开发和使用习惯上更像通用PC,无MMU的系统则更像俗称的“单片机”系统。在设计开发平台时,是否支持MMU是极其重要的决策。MMU所带来的区别如下表所示:
注:这里讲的处理器是指通用处理器,不包含DSP。
上表列出的条目都是比较本质性的区别,在相当长的时间内还会很“顽固”。但也有很多以前是明显区别正在减弱,这主要是由于中高端无MMU系统功能在加强,基本上体现在:
1、越来越多的32位机进军无MMU系统,而以前多见于8/16位机。现在新型32位机正迎来全面取代中 高端8/16位机(价格10 RMB以上)的潮流,ARM处理器是这个潮流中最明显的代表。
2、功能复杂强大的数据接口越来越普及,数量也变多。如USB,以太网,Wi-Fi,ISA总线,PCMCIA/SD/CF接口,大分辨率LCD接口。
3、对NAND Flash的支持普及,以及以PSRAM为代表的大容量RAM也在普及,使得无MMU的系统有以MB为单位计算存储器的趋势,这为大型系统软件提供了的可能性与必要性。
4、由于FPGA的普及,常常可以使用无MMU的系统胜任专业的、高性能要求的任务。
5、伴随着支持越来越强大的硬件,文件系统,网络协议栈,图形用户界面的支持也越发到位。
6、系统软件中,除了RTOS以外,其它的组件在规模和功能上越来越与带MMU的系统接近。
转自:http://ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1915798&bbs_page_no=913&bbs_id=9999