打印

STM32和LM速度比较

[复制链接]
12904|45
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shockwave|  楼主 | 2008-4-24 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天有点空,正好手上有STM32和LM两个开发板。
想比较两个速度差异,结果出乎意料。
STM32
时钟72M,flash 2个等待周期这样算flash速度24M(但有取指预缓冲,号称可以接近72M)。
LM
时钟50M,号称flash单周期。
两个程序一样,都跑到最高速度。
测试结果:
stm32:
-O0:43662   fortime 43662
-O1:53730   fortime 79119
-O2:54960   fortime 98090
-O3:53650   fortime 99858
lm:
-O0: 45618   45618
-O2: 54702   78244
-O2: 55988   97843
-O3: 56177   100598
两个片子速度差不多,互有胜负。不过这个结果只能参考。个人程序不一样,结果是有差异的。
单比速度的话,看来72M的STM32看来还是有点弱,但STM32有它的优势,USB、DMA,12bitAD等等。
沙发
12分| | 2008-4-24 16:53 | 只看该作者

内核决定的吧

使用特权

评论回复
板凳
香水城| | 2008-4-24 20:49 | 只看该作者

关键要看你的测试程序是如何写的

使用特权

评论回复
地板
shockwave|  楼主 | 2008-4-25 09:43 | 只看该作者

re:两个都是cortex m3的核

都放在flash中跑。
STM32号称的72M的flash(用预取指缓冲实现),是假设指令为16位的时候。
但cortex核决定了是16位和32位混合的,所以72M的速度就会打折。
当然如果个人程序编译出来16位代码多点,相应速度就会快点,如果反之,速度就会慢点。

使用特权

评论回复
5
smartsheep| | 2008-4-25 10:13 | 只看该作者

能公布你的测试代码吗?


有没有用过 DHRY program ?

使用特权

评论回复
6
shockwave|  楼主 | 2008-4-25 10:19 | 只看该作者

re:smartsheep

就是用的DHRY。

使用特权

评论回复
7
yangbo_zd| | 2008-4-25 11:47 | 只看该作者

我也测试过


我的程序72M的STM32比50M的LM3S快14%

结果的确和测试程序是有关系的,所以到底速度怎么样一定要自己测过才知道

使用特权

评论回复
8
Jian14| | 2008-4-25 11:54 | 只看该作者

ST的FLASH不能实现“分支预测”

    跟ARM7一样,CORTEX-M3也是使用“取指、译码、执行”三级流水线,但不同的是CORTEX-M3有分支预测功能,即如果“译码”区的指令是BL等跳转指令,内核会自动把跳转指令指向的指令覆盖到“取指”区,然后按顺序运行,流水线不会因为跳转而被全部清空!
    ST的FLASH使用两级FIFO,如果需要分支预测,不好意思,首先要把FIFO清空,然后按跳转的地址把FIFO填满才能执行,相当于ARM7,没有分支预测了!

使用特权

评论回复
9
smartsheep| | 2008-4-25 15:42 | 只看该作者

这些数据代表什么含义?

-O0:43662   fortime 43662
-O1:53730   fortime 79119
-O2:54960   fortime 98090
-O3:53650   fortime 99858

这个数据代表什么含义?

我测了我的片子输出:
Dhrystones per Second: 7235.8
这个数又有什么意义? 怎样换算成MIPS? 

使用特权

评论回复
10
ijk| | 2008-4-25 17:13 | 只看该作者

看样子

看样子,从另一个侧面证实,Luminary的FLASH确实运行在50M Hz

使用特权

评论回复
11
香水城| | 2008-4-25 22:43 | 只看该作者

我对楼主做这样测试所产生的意义感兴趣

根据你的结论(尽管需要进一步证实),你是否认为STM32这个产品有问题?还是认为不值得使用?即使在相同的运行速度、相同的价格下你也会有这种想法吗?即使STM32还有很多其他优点?

我想知道这个结论对你的选型会产生什么影响,难道你的产品对MCU的运行速度很敏感?

使用特权

评论回复
12
usecoolful| | 2008-4-26 01:42 | 只看该作者

。。。。。。。。。。。。。。。。

“我对楼主做这样测试所产生的意义感兴趣

根据你的结论(尽管需要进一步证实),你是否认为STM32这个产品有问题?还是认为不值得使用?即使在相同的运行速度、相同的价格下你也会有这种想法吗?即使STM32还有很多其他优点?

我想知道这个结论对你的选型会产生什么影响,难道你的产品对MCU的运行速度很敏感?”



好像语气 很不友好啊 ,讨论问题何必觉得像斗气。

使用特权

评论回复
13
香水城| | 2008-4-26 01:54 | 只看该作者

大家的出发点不同,为什么“觉得像斗气”?

楼主是从一个侧面来看问题,而我是从整体的应用角度来参与讨论,居然被这位朋友当成是不友好的语气,郁闷~~~~~~~~~

难道需要顺着网友的思路讨论才算是友好的表现吗?不可以改变一下视角来看问题吗?


说实话,我很欣赏楼主的探索精神,也对楼主的测试感兴趣,不管结果如何,我不想让大家的思路和注意力只局限在单纯的运算速度上面,毕竟单片机的应用特点不是以运算作为主项。

使用特权

评论回复
14
usecoolful| | 2008-4-26 02:32 | 只看该作者

也许是大家的理解出发点不同

“根据你的结论(尽管需要进一步证实),你是否认为STM32这个产品有问题?还是认为不值得使用?即使在相同的运行速度、相同的价格下你也会有这种想法吗?即使STM32还有很多其他优点?
我想知道这个结论对你的选型会产生什么影响,难道你的产品对MCU的运行速度很敏感?”


因为使用 的 全是反问句,感觉不是让人很舒服。版主的意思想提一些自己的看法,但是全是 反问,好像是在竭力维护STM32。

不要郁闷。^_^

产品各有优缺点,做些比较也无可厚非,多点信息可以多点参考,并不能说因为一些缺点,就完全甫否定一个产品,也不因为一点优点就捧上天。
这些芯片更多是实时控制系统方面用(如不用Cache),运算速度的少量差异,实际使用中也许就不算什么,甚至更低的运算速度也可以,还是产品定位决定。

使用特权

评论回复
15
shockwave|  楼主 | 2008-4-26 10:37 | 只看该作者

我只是一时好奇,测试下。

看看72M带预取指的FLASH和单周期50M速度差别多大,并把我的个人结果和大家分享。探讨下,谁的速度占优势。没别的意思。如果香版主以后不欢迎这样的比较,那我就不发了。

使用特权

评论回复
16
shockwave|  楼主 | 2008-4-26 10:42 | 只看该作者

re:9楼

这些数字代表1秒跑多少圈。

使用特权

评论回复
17
shockwave|  楼主 | 2008-4-26 10:46 | 只看该作者

8楼分析的很透彻。

如果32位指令多,跳转指令多的话,flash预取指缓存效率就要下降了。

使用特权

评论回复
18
zheng79| | 2008-4-26 11:32 | 只看该作者

STM32是款不错的CPU,外设灵活

但72MHz有较大的“误导性”,实际上没有想像的那么快,不要认为72MHz就比36MHz快一倍啊!

使用特权

评论回复
19
MicroMMU| | 2008-4-26 19:30 | 只看该作者

stm32实际上不是完整的M3内核,而是载减速版

的M3,如MPU,中断系统,指令分支预测。

使用特权

评论回复
20
money123| | 2008-4-27 14:52 | 只看该作者

ST的FLASH是老旧的技术

    其实单周期FLASH不是LM独有的,TI的28系列DSP早就使用了,它的FLASH号称可以上100多兆,和ZLGMCU说"LM3的FLASH其实可以上100MHz,只是为了稳定...",这和TI的FLASH相敏合.LM是新公司,技术一穷二白,但又有大财团给钱,一上来就用最新的技术,如单周期FLASH,ROM固化API,带PHY的以太网等, 不象ST,NXP的老公司,手上一堆不新不旧的技术,不愿意扔,又不敢搞搞新意思......

使用特权

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

本版积分规则

5

主题

104

帖子

0

粉丝