数码之家

 找回密码
 立即注册
搜索
查看: 6247|回复: 27

[C51] 终于找到了关于STC8A的性能测评,看来51孱弱的性能还是受限于古老的架构啊

[复制链接]
发表于 2022-2-5 12:43:47 | 显示全部楼层 |阅读模式
以下结论来自网络上别人的横向测评结果,非本人所写:

网上一直搜不到STC的Dhrystone数据,只看到STC号称Dhrystone测试“比传统51快69.7倍”, 到底快69.7倍是多少?不知道。所以我自己买了个开发板来试验。

STC8A8K64S4A,据说STC8是最快的STC,就它了。

24M主频,实测每254ms完成一次dhrystone,折算2.24DMIPS,或者0.09DMIPS/MHz。

这个成绩……确实比NRF24LE1快几倍,不过同频性能不到AVR的1/5,STM8的1/3。24M的STC8A8K64S4A, 相当于4.5M的AVR, 或者6.7M的STM8, 或者1.8M的STM32的性能。对了STC自称主频高?如果跑到35M, 相当于6.6M的AVR, 或者10M的STM8, 或者2.6M的STM32.

编译器是sdcc, 优化选项用--opt-code-size和--opt-code-speed基本没区别。

大概有人会说sdcc不如iar和keil,我事先声明,我这儿没有,也不会装iar和keil,谁觉得这俩快,请自己实测,dhrystone程序网上到处都有。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2022-2-5 13:08:40 | 显示全部楼层
没毛病,比传统51块,大概是89c51什么的

车比人快,也没火箭快啊
回复 支持 反对

使用道具 举报

发表于 2022-2-5 13:48:06 | 显示全部楼层
不管咋样也就是个增强型51,能快到哪去。不过单片机这东西不是电脑CPU,不用追求高速,要高速直接上ARM就行,单片机还是要看性价比,你点个8字管用ARM的话就智障了不是
回复 支持 5 反对 0

使用道具 举报

发表于 2022-2-5 13:54:43 | 显示全部楼层
stc简单,方便,在简单的小项目上比较好用。要大项目还是arm什么的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-5 17:47:19 | 显示全部楼层
本帖最后由 sadate 于 2022-2-5 18:25 编辑

不用跟STM32那种32位单片机比,和同为8位机的AVR和STM8比都差了一大截不是?这都2022年了,也不是传统的51了,都是号称1T的增强型8052了,相同主频下才是AVR的1/5, STM8的1/3,   还是这般孱弱,看来架构的影响力才是关键,不能抱残守缺啊。主要是官网页面上吹嘘得太厉害,又没有实际数据佐证他的说法。
回复 支持 反对

使用道具 举报

发表于 2022-2-5 23:57:26 来自手机浏览器 | 显示全部楼层
多快也没多大用,读DS18B20一样要花这么多时间,与IIC通信用51也一样快,红外遥控解码也一样要用这多时间才行。
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-6 00:42:00 | 显示全部楼层
跑分意义不大, 适合STC的地方 STC够用就可以了
回复 支持 反对

使用道具 举报

发表于 2022-2-6 08:57:57 | 显示全部楼层
不被断供不被卡脖子的芯片已经不错了,现在已经开始16位32位开发了
回复 支持 反对

使用道具 举报

发表于 2022-2-7 08:45:28 | 显示全部楼层
控制芯片又不是计算芯片。再说51的代码密度比较高。
回复 支持 反对

使用道具 举报

发表于 2022-2-7 10:10:49 | 显示全部楼层
【STC8A8K64S4A,据说STC8是最快的STC,就它了。】这个就错了,应该说的是STC16, 即升级后的STC32G/F。
回复 支持 反对

使用道具 举报

发表于 2022-2-7 10:12:21 | 显示全部楼层
另外增加了DMA, 硬件运算单元(MDU)后,经优化的程序速度比传统51快很多,自己测试,普通四轴的解算、滤波等绰绰有余了。。。
回复 支持 反对

使用道具 举报

发表于 2022-2-7 12:07:47 | 显示全部楼层
自行车再快也就那样,但是也还在生产,不断优化,一样的道理
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-12 14:02:00 | 显示全部楼层
网上不是说stc8比stm8要快很多吗,这图看上去还差一截?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-12 21:22:14 | 显示全部楼层
本帖最后由 sadate 于 2022-2-12 21:36 编辑

由于51古老的架构问题, 在寄存器间传递数据都需要通过累加器A来做中转,各种指令都必须以累加器A为操作的中心,数据在A和其他寄存器之间挪来挪去,消耗了大量本该节省下来的时间, 自然性能上不去,就算增强型8051采用了多级流水线技术对这种情况也是助力有限。
但如果51针对这一点改进的话,那就不再是51了,指令集都变化了,也就不能继承传统的51代码了,所以问题可以说是无解的。
现在能做的也就是在硬件除法器啥的上面做点文章,可是不是所有的代码的瓶颈都在除法运算上啊,所以提高也是相对有限的。
现在STC已经添加了DMA和硬件除法器, 要是能博采众家之长,将AVR的PLL锁相环倍频技术也吸收过来就好了,你看AVR虽然只有16MHz主频,但可以通过PLL 4倍频到64MHz,立马妥妥的Fast PWM出来了,超过基本时钟的PWM太有用了,无论玩电机控制还是音频播放都是溜溜的, 不像STC的PWM再高级,也只能受限于MCU的基准时钟频率。

打赏

参与人数 1家元 +10 收起 理由
玛德陛下 + 10 謝謝分享

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-12 23:28:00 | 显示全部楼层
A累加器,还是架构问题啊
回复 支持 反对

使用道具 举报

发表于 2022-2-15 18:47:09 | 显示全部楼层
楼主不用纠结,够用就行,关键是顺手吧,都是工具,何必追求这么高,
回复 支持 反对

使用道具 举报

发表于 2022-2-24 19:15:23 | 显示全部楼层
sadate 发表于 2022-2-12 21:22
由于51古老的架构问题, 在寄存器间传递数据都需要通过累加器A来做中转,各种指令都必须以累加器A为操作的 ...

AVR好多型号的可以20MHz运行,甚至超频到24M(有这样的Boot loader),但内核电压得到5V,基本上低于4.5就没法超了
回复 支持 反对

使用道具 举报

发表于 2022-2-24 19:17:41 | 显示全部楼层
51基本上是冯诺依曼构架,内部数据调取和处理上效率并不好,而AVR是哈佛构架,本身同频性能就会好于冯诺依曼2~4倍,而且AVR的外设以及IO功能更丰富,内存也更大,干嘛非抱着51不放呢,喵喵喵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-25 09:04:02 | 显示全部楼层
不是抱着51不放,学习成本也是成本,51靠着多年累积下来的积累,学习资料极大丰富,受众人口多,这也是它为什么饱受诟病却依旧屹立不倒的原因。51的架构已经变无可变了,在外设、价格上多下下功夫,还是有自己独立的生存空间的。
回复 支持 反对

使用道具 举报

发表于 2022-10-5 14:25:09 | 显示全部楼层
sadate 发表于 2022-2-12 21:22
由于51古老的架构问题, 在寄存器间传递数据都需要通过累加器A来做中转,各种指令都必须以累加器A为操作的 ...

其实不是不能同时兼顾优化和51指令兼容,而是要做的话就得引入硬件虚拟化和指令动态翻译技术了,这两玩意都是电老虎,单片机上面不适合也不合算的,在低成本低速应用场合,51还是够看的,但真的有些落伍了,现在好多产品都在推物联网,ESP8266/ESP32它不香吗。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-22 07:31 , Processed in 0.327601 second(s), 18 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表