MMU会加速系统?

本文探讨了MMU在系统中的作用及其对性能的影响。通过在不同编译平台和优先级设置下的测试,展示了打开MMU与关闭I/Dcache相比,系统性能提升显著。进一步分析了MMU如何通过限制cache工作范围和存取方法,提高cache效率,从而加速系统运行。同时,提出了在特定条件下关闭I/Dcache,仅打开MMU也能实现系统加速的观点,为优化策略提供了新的视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MMU 这个东西,说实话,对于我这种整天和单片机打交道的人来说,既熟悉又陌生。就像自己的手掌一样,知道是用来做什么的,却不知道手上有多少条纹路,多少条深沟浅壑……


我一直以为打开MMU会拖慢整个系统的速度,在做RTEMS系统移植ARM的时候,都把MMU关闭的。利用相关的协处理器指令,关闭MMU。但最近看到一个测试,的确让我出乎意料……

下面是MCUZONE在AT91sam9261公板上做得一个测试。我在相关的芯片上也做了测试,证明这个测试是真的。结果是非常有说服力的。相关的代码可以在ATMEL官方网站获得(已经上传优快云,需要的朋友请点击链接获取:http://download.youkuaiyun.com/source/3436299)。


MCUZone做了比较多的工作,在IAR、Keil、GNU的编译平台下,不同的优先级别下,都做了测试,做了详细的对比。报告我也上传了优快云,有兴趣的朋友请移步:http://download.youkuaiyun.com/source/3436504。下面列出报告的结论部分,供大家参考。


至于相对于关闭I/D cache和MMU:

  • 为什么不打开I/D Cache,只打开MMU的情况下,也是有所加速的。
  • 打开I/D cahce,不开MMU,系统也有提速。
  • 打开MMU和I/D cache,提升速度是巨大的。

后面两种情况还能解释。cache肯定会加速系统的;MMU限定了cache工作的范围和存取的方法。使得cache工作的更加有效率,比如说,MMU配置正确的情况下datacache不会缓存IO口的数据 ,使得cache工作更有效率,从而加速系统。然而第一种情况,实在是难以解释?MMU也会影响CPU的流水线吗?呵呵,多想了,不过有一些细节还没有想通。恳请哪位大神出来赐教。




评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值