origin: https://www.amobbs.com/thread-5676525-1-1.html
之前一直以为ARM, A-R-M, M排在最后也最便宜,肯定性能最低,但最近意外发现并非如此,M7居然完全碾压R7和A7!
如下表所示,我从ARM网站,eembc.org网站查到的结果,竟然发现M7的性能比A7和R7都强
从表中可以看出,M核性能、实时性、成本和能效最高, R核的总线带宽更高还支持多核, A核带MMU可以跑Linux, Android。另一个没有列出的是M核响应中断最快捷。
看来NXP, ST, Atmel积极发展M7产品还是对的。NXP最狠,做了600MHz M7的i.MX RT,还屌丝价 <3$/片 @ 10k量。
分析了一下,感觉有以下原因。
1: Cortex-A系列CoreMark反而最低,估计主要是没有TCM, 而Dcache命中率很难高上去(相比之下,Icache的命中率却往往很高,对于大多核心算法甚至高达100%)。另一方面, A和R的跑分不如预期,可能也受其过长的流水线影响,分支预测失败时重装填流水线付出了较大代价。当然了,流水线级数多才能飙主频。
2: R7,A9的CoreMark不如M7, 但DMIPS比M7好,说明测试基准影响还是明显的。显然CoreMark对基于TCM的实时性能更有亲和性,对基于Cache的平均性能更有破坏性
3:带TCM的核(R#,M7)均有一个总线slave接口供DMA存取TCM. 当然了,DMA这头会有等待周期,并且只有在CPU不访问TCM时才理会DMA。
4: ECC和双核锁步都是与safety(也称为安全,但注意和security是不同的意思)有关的。ECC通过在RAM中加入额外的bit检查和纠正RAM中的数据错误;双核锁步(lockstep)则是两个完全相同的核给予完全相同的激励,期待完全相同的响应,以确信CPU在正常工作。这类土豪的用法只出现在使命关键(safety critical)类系统中,比如草上飞的,云里走的,浪里破的,救人命的… M7也支持这两项,这是要革R系列中低端产品的命啊
这都是我个人在对CPU理解层次上的猜测,不太有信心,希望有高人指正
-------------------------------------------------------
看了上面的表,有几个问题,感觉以前看了假的宣传:
1、IAR CoreMark比armcc低10%,然而,大家都说IAR优化更好
2、R系列:R5比A5占用的面积还大,R7比A7占用的面积还大;R系列明显CoreMark和主频比同代A系列主频高
3、同代R系列的流水线比A系列要长
通篇对比下来,除了没有MMU和SIMD以外,R系列分分钟干死同代A系列的节奏。然而,我基本上都没听说过R系列的消息……
-----------------------------------------------------------------------------
IAR在Cortex-M上确实是跑分神器。但是Cortex-A上的表现被追上,或许和IAR深耕MCU和ARM在A系列上编译器开发更专注有关。
R系列其实是低调的小霸主,在硬盘,modem, 和一些safety-critical的应用中还是很受欢迎的。但现在看起来确实被A和M两面夹击。
其实R系列和A的架构是兼容的,就是A系列上的分支出来的,M则自成一派。
从上面数据看,我倒是觉得要是M带了MMU和SIMD,才是要革所有中低端R和A的命
---------------------------------------------------------------------------
不是这么对比的,首先A9已经是好多年前的内核了,现在的都是A73了。
差别很大的,A系列针对的是复杂的应用环境,不是M7这样单片机的简单逻辑的计算,乱序和顺序的差别也非常大,
其他不说,A8 A9的性能差别就非常大,实际测试过AM335和IMX6S,同样的运行于800Mhz,针对同一个USB摄像头图像处理的软件性能表现相差一倍多,这其中内存带宽,处理器自带的NEON,浮点处理器,L1,L2缓存等都影响很大,不能从单个coremark来说处理器性能。
---------------------------------------------------------------------------
意外发现,Cortex-M7的性能和诸多关键参数碾压A7和R7
最新推荐文章于 2024-08-01 15:23:34 发布