打印
[国产单片机]

好多51处理器性能水分极大

[复制链接]
3805|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我写了一个开源性能测试,现在已的10多种处理器与手机,路由器,包括51单片机上运行,
注51没有显示器,用我串口助手当显示器,成绩运算结果由串口送到pc的串中上,
所有源码与可执行文件与hex固件请从我的开源下载


特别是随着51版的程序搞定后,对主流51芯片进行测试,发现某些51芯片的性能水份太大了。

相关帖子

沙发
开源测试|  楼主 | 2018-8-13 15:01 | 只看该作者
https://gitee.com/test386/test
源码与hex固件请到以上网站下载
这是已测试的10多种处理器

使用特权

评论回复
板凳
开源测试|  楼主 | 2018-8-13 15:03 | 只看该作者
51处理器版,由于51不支持gcc,有个高人对程序进行了修改,已完全能在51上运行,修改的程序已打包,内开开源代码。

使用特权

评论回复
地板
开源测试|  楼主 | 2018-8-13 15:03 | 只看该作者

Rebuild target 'Target 1'
compiling Test386-51.c...
Test386-51.c(59): error C174: return-expression on void-function
Test386-51.c(159): error C241: 'main': auto segment too large
Target not created
Description
The required space for local objects exceeds the model dependent maximum. The maximum segment sizes are defined as follows: SMALL 128 bytes COMPACT 256 bytes LARGE 65535 bytes
Rebuild target 'Target 1'
compiling Test386-51.c...
linking...
Program Size: data=23.2 xdata=3451 code=8924
"Test386-51" - 0 Error(s), 0 Warning(s).
Rebuild target 'Target 1'
compiling Test386-51.c...
linking...
Program Size: data=23.2 xdata=3451 code=8980
creating hex file from "Test386-51"...
"Test386-51" - 0 Error(s), 0 Warning(s).
*/

使用特权

评论回复
5
linqing171| | 2018-8-13 22:23 | 只看该作者
做数**算还是别看8051了,一个32位乘以32位,要倒腾16次乘法和一堆加法,还有大量的跳转控制。能有同频率ARM下的百分之一就非常不错了。
他们所谓的测试MIPS,是执行 unsigned char i; i=255; while(i--); 然后外面加上一个大的循环,来测试的。

使用特权

评论回复
6
linqing171| | 2018-8-13 22:40 | 只看该作者
看了一下代码。xdata会比data慢一倍;printf是无缓存的默认版本,和操作系统下的不同。
还测试双精度浮点数的运算能力了,8051肯定垫底,只是没有看到测试结果。

使用特权

评论回复
7
ayb_ice| | 2018-8-14 08:39 | 只看该作者
51运算能力本来就不是强项
GPIO操作51倒是很强

使用特权

评论回复
评论
开源测试 2018-8-14 08:58 回复TA
stc 15小时算完 
8
开源测试|  楼主 | 2018-8-14 08:58 | 只看该作者
linqing171 发表于 2018-8-13 22:40
看了一下代码。xdata会比data慢一倍;printf是无缓存的默认版本,和操作系统下的不同。
还测试双精度浮点数 ...

已有stc的芯片完成运算了,15小时算完。

使用特权

评论回复
9
ayb_ice| | 2018-8-14 09:03 | 只看该作者
开源测试 发表于 2018-8-14 08:58
已有stc的芯片完成运算了,15小时算完。

51主要是指针能力很弱,通用指针更是弱

使用特权

评论回复
10
sxhhhjicbb| | 2018-8-14 13:13 | 只看该作者
不是同一位宽的cpu,没有可比性。

使用特权

评论回复
11
df_flying| | 2018-8-14 13:59 | 只看该作者
定位不同,市场分工不同,51本来就不适合多浮点运算的场合。处理器的性能其实跟其指令集,内部架构,编译器优化,工艺等都有关系,对比的前提是尽量一致性下才有意义

使用特权

评论回复
12
lu0754| | 2018-8-14 17:02 | 只看该作者
用51运算脑子进水了,运算用 Cortex-M内核是秒杀51

使用特权

评论回复
13
hp34401a| | 2018-8-14 21:53 | 只看该作者
用i7,i9 试试

使用特权

评论回复
14
linqing171| | 2018-8-14 21:59 | 只看该作者
开源测试 发表于 2018-8-14 08:58
已有stc的芯片完成运算了,15小时算完。

哈哈,哥们,你应该先用奔腾4,大概评估一下计算10%的运算量,然后用stc先跑一下10%看看。
不过你的代码在STC下应该能提速一倍。

使用特权

评论回复
15
linqing171| | 2018-8-14 22:05 | 只看该作者
他这个数**算,单指针和双指针的提升不是绝对的。
最主要的还是 寄存器和寻址范围的位宽,如果32位的,应该能提高几十倍。如果有浮点单元或者浮点指令就更强悍了。可惜51连个浮点数归一化的移位都要算半天。
再一个就是主频,8051的产品都是做低端市场的,很少有上百兆的。
最后才是架构和多指针等提升只有50%的这种可以忽略的选项。高手过招10%也很大差距,可惜前面几个差距太大了,这个只能作为次要矛盾了。

使用特权

评论回复
16
eydj2008| | 2018-8-15 08:19 | 只看该作者
我是来看结果的, 结果 结果 结果呢   这测试就简单了

使用特权

评论回复
17
teddeng| | 2018-8-15 11:18 | 只看该作者
你不会拿你家厨房里的水瓢去浇地,同样,你也不会拿抽水机往你家厨房的炒锅里添水,,
这么比纯粹就是**。。。

使用特权

评论回复
评论
jackyhuang1988 2018-8-16 09:47 回复TA
这个比喻好 
18
开源测试|  楼主 | 2018-8-15 14:20 | 只看该作者

i7已测过了,到我开源网站去看结果,i9还没测过。

使用特权

评论回复
19
开源测试|  楼主 | 2018-8-15 14:21 | 只看该作者
eydj2008 发表于 2018-8-15 08:19
我是来看结果的, 结果 结果 结果呢   这测试就简单了

结果我的开源网站上有的,

使用特权

评论回复
20
开源测试|  楼主 | 2018-8-15 14:38 | 只看该作者

只用到vc2017,i5就非常牛比了,用icc估计进1秒

使用特权

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

本版积分规则

2

主题

15

帖子

0

粉丝