打印
[M0]

几张图了解CM0与CM3,CM4的内核差别

[复制链接]
31487|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这里做简化说明, 差别很多, 这几张图只是为了给大家一个简单明了的初步认识,
先看架构方面的差别

再看指令集差别:

最后来个性能的简单对比,CoreMark与CRC函数为例

实际上差别还有很多,但这三张图大致说明了主要差别.

相关帖子

沙发
zhanzr21|  楼主 | 2017-1-19 18:04 | 只看该作者
图片从英飞凌的培训文档中找的. XMC1是CortexM0,XMC4是CortexM4

使用特权

评论回复
板凳
Jonathon_Li| | 2017-1-19 20:01 | 只看该作者
M3是1.25DMIPS/MHZ,M0是0.85DMIPS/MHZ.

但是不知道现在的增强型8051性能有多少?这个一直没查到

使用特权

评论回复
地板
zhanzr21|  楼主 | 2017-1-19 20:56 | 只看该作者
Jonathon_Li 发表于 2017-1-19 20:01
M3是1.25DMIPS/MHZ,M0是0.85DMIPS/MHZ.

但是不知道现在的增强型8051性能有多少?这个一直没查到 ...

增强版本的8051有好几家厂商,你说的是SiliconLab的CIP51吗, 关于这个官方有实验数据的

使用特权

评论回复
5
Jonathon_Li| | 2017-1-20 09:21 | 只看该作者
zhanzr21 发表于 2017-1-19 20:56
增强版本的8051有好几家厂商,你说的是SiliconLab的CIP51吗, 关于这个官方有实验数据的 ...

反正增强型的8051了,应该差不多吧?现在许多Soc都是基于8051的,比如ti的ble模块什么的。国产的更多这种用法。

使用特权

评论回复
6
zhanzr21|  楼主 | 2017-1-20 15:41 | 只看该作者
Jonathon_Li 发表于 2017-1-20 09:21
反正增强型的8051了,应该差不多吧?现在许多Soc都是基于8051的,比如ti的ble模块什么的。国产的更多这种 ...

差很多的, 最老的8051是intel的模型,只要是内核上有增强的都叫增强型
比如intel的8051一个指令周期=12个时钟周期
有的8051是一个指令=6个
有的是1x3
有的1x2
Silabs的CIP51是1x1, 而且乘法除法指令都优化了
还有流水线
所以说性能上其实差别很大的

使用特权

评论回复
7
aaronhu| | 2017-1-20 17:41 | 只看该作者
Cool ! simple is best !

使用特权

评论回复
8
Jonathon_Li| | 2017-1-20 20:00 | 只看该作者
zhanzr21 发表于 2017-1-20 15:41
差很多的, 最老的8051是intel的模型,只要是内核上有增强的都叫增强型
比如intel的8051一个指令周期=12个 ...

我碰到的几个都是1x1的,51核直接keil设备库里面就有。乘除法这种就不能算了。
不知道1x1的,性能有多高?
手上到是有个大算法代码,1x1的跑一遍大约8ms,有空移植到m0上看下,不知道需要几ms。

使用特权

评论回复
9
zhanzr21|  楼主 | 2017-1-20 22:08 | 只看该作者
Jonathon_Li 发表于 2017-1-20 20:00
我碰到的几个都是1x1的,51核直接keil设备库里面就有。乘除法这种就不能算了。
不知道1x1的,性能有多高 ...

乘除法算的
比如8位的div mul这种指令都是硬件实现的 老51(intel版本的) 跟 CIP51所需的指令周期不是一样的, 这个软件无能为力的
16bit 32bit的乘除法 倒是软件实现的 但是底层的mul div所需周期不同 软件实现的性能肯定不一样的

使用特权

评论回复
10
yjmwxwx| | 2017-1-22 23:12 | 只看该作者
让M0算浮点数除法能比的过51么?
最近写M0的汇编,感觉指令真的很少写起来很别扭。现在用到个浮点数乘法,除了变成整数有没有什么先进的算法, 算了那些太高级的数学算法实在是看不懂啊

使用特权

评论回复
11
zhanzr21|  楼主 | 2017-1-23 00:40 | 只看该作者
yjmwxwx 发表于 2017-1-22 23:12
让M0算浮点数除法能比的过51么?
最近写M0的汇编,感觉指令真的很少写起来很别扭。现在用到个浮点数乘法, ...

8051有很多种,没法比,但是相同指令频率相比, 没有见过有超过M0的数学性能的8bit 8051 Core,虽然不排除这种可能性
因为两者都是软件实现Float算术的, 单精度的浮点是32bit的, M0一个word的访问就能access, 8位的寄存器要倒腾几次?

使用特权

评论回复
12
linqing171| | 2017-2-4 19:58 | 只看该作者
8051即使再有流水线也不行。 所谓的1*1只是口号,你看看真正的所有指令都是单周期么?
8051做数**算更完全没有办法比mips了。运算速度上被秒不是一条街,大量32位数学计算的时候,同样晶振下差个几十倍吧。

但是8051和arm等比逻辑运算的代码密度,还是有优势的。单纯的简单逻辑,单字节指令就可以,ARM有单字节指令么? 51一条指令 可以读内存,然后简单计算,然后再写到内存里面,ARM可以么? 平均起来讲,51做控制的场合代码密度略高,按以前的项目经验大约能省10~20%的flash。

使用特权

评论回复
13
linqing171| | 2017-2-4 20:00 | 只看该作者
zhanzr21 发表于 2017-1-23 00:40
8051有很多种,没法比,但是相同指令频率相比, 没有见过有超过M0的数学性能的8bit 8051 Core,虽然不排除这 ...

8次乘法,结果均为16位; 然后这些结果再都加起来,还有就是大量的循环跳转代码。

使用特权

评论回复
14
chenzhi658| | 2017-2-7 12:41 | 只看该作者

使用特权

评论回复
15
dalongchan| | 2017-2-8 13:02 | 只看该作者
zhanzr21 发表于 2017-1-19 18:04
图片从英飞凌的培训文档中找的. XMC1是CortexM0,XMC4是CortexM4

很好

使用特权

评论回复
16
tian_000| | 2017-2-15 10:38 | 只看该作者
很好的资料,多谢楼主分享。

使用特权

评论回复
17
lesun01| | 2017-2-15 14:32 | 只看该作者
学习了。。。。

使用特权

评论回复
18
lesun01| | 2017-2-15 14:32 | 只看该作者
{:lol:

使用特权

评论回复
19
余小贤| | 2017-2-18 10:53 | 只看该作者

使用特权

评论回复
20
strang| | 2017-2-24 09:21 | 只看该作者
不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:每天都進步

91

主题

1013

帖子

34

粉丝