STM32与MSP430运算效率对比

[复制链接]
20378|48
 楼主| owlcjy 发表于 2010-4-14 19:50 | 显示全部楼层 |阅读模式
本帖最后由 owlcjy 于 2010-4-14 19:55 编辑

STM32MSP430运算效率对比

STM32使用STM32F101
MSP430使用MSP430F5438
时钟都设置为内部8M
定义以下变量:
unsigned int i,j,k;
unsigned char a,b,c;
float f1,f2,f3;
初始化为:
i=0;
a=1;
b=2;
c=3;
f1=0.1234;
f2=3456.6789;
以上定义和初始均不计入总运算时间。
同样执行以下语句:


//////////////////////////////////////////////////


for(i=0;i<100;i++)//t=4118


{


;

}
//////////////////////////////////////////////////

for(i=0;i<1000;i++)//t=40630


{



;


}

//////////////////////////////////////////////////

for(i=0;i<100;i++)//t=134768


{


f3=f1*f2;//t=281;

}

//////////////////////////////////////////////////

f3=f1*f2;//t=1291;
 楼主| owlcjy 发表于 2010-4-14 19:50 | 显示全部楼层
本帖最后由 owlcjy 于 2010-4-14 19:55 编辑

19 点 52 分 30 秒.GIF 运行时间如表格

通过实验发现,在处理整形运算时,STM32的速度略快于MSP430,在做浮点运算时,速度远远快于MSP430,在需要复杂运算的环境中,STM32极大优势,速度不可同日而语,当然功耗也是。
again_gyf 发表于 2010-4-14 20:17 | 显示全部楼层
有啥意思呢!
robin7513 发表于 2010-4-14 20:38 | 显示全部楼层
楼主够严谨的!支持一下!
xsgy123 发表于 2010-4-14 22:19 | 显示全部楼层
深层次的研究就有点意思了
machunshui 发表于 2010-4-15 08:18 | 显示全部楼层
msp430的指令效率本来就不是一般的差。
在寄存器里面的纯计算还不错,
要是牵涉到从RAM到寄存器传输数据,
或者到从寄存器到RAM传输数据,

msp430的效率那简直惨不忍睹
午夜霓虹 发表于 2010-4-15 08:30 | 显示全部楼层
这个比法不太好啊,msp430是16位的,stm32是32位的cpu,你应该拿32位的dsp来比。
zhjerry 发表于 2010-4-15 08:32 | 显示全部楼层
关于整形运算补充2句:
unsigned int 在MSP430里面默认16位而在STM32里面默认32位,这里是按照默认设置进行的。
如果把MSP430的整形数强制为32位(unsigned long),大家一起做32位整形运算,估计效果和浮点数的情形差不多,你可以试试。
笑苍天 发表于 2010-4-15 09:00 | 显示全部楼层
比的不错,对我选型有一定帮助
IJK 发表于 2010-4-15 09:25 | 显示全部楼层
关于整形运算补充2句:
for(i=0;i<100;i++)//t=4118
{
;
}
其实里面没什么运算,如果里面进行乘法运算,估计效果和浮点数的情形差不多,甚至430会更差。
hxlwjn 发表于 2010-4-15 11:55 | 显示全部楼层
MSP430是16位的,STM32是32位的,这样比好像不公平。
香水城 发表于 2010-4-15 12:19 | 显示全部楼层
STM32的目标之一就是挤占16位单片机的市场,因为STM32在性能上有优势,价钱也不差。
草履虫 发表于 2010-4-15 12:20 | 显示全部楼层
转网上的一篇51,ARM,DSP的比较(仅结论部分):
首先要强调的是,这几种微控制器都可以通过提高晶振的振荡频率来缩短指令周期,但是这些控制器的振荡频率是有一定限制的,例如单片机不超过40 MHz,而LPC2114的频率不超过60 MHz,TMS320F2812的最高频率为150 MHz。在同样的工作频率下,ARM指令运行的指令周期远远高于传统的单片机。 因为传统的单片机没有采用流水线机制,而ARM核和DSP都采用了流水线,但是由于访问外设和RAM等存储器要加一定的时钟周期,因此ARM不是真正可以实现单周期运行的,特别是不能实现单周期的乘法指令,而DSP可以实现真正的单周期乘法指令,速度要远远高于ARM微控制器。(转)
LZ的比较只能说明,ARM部分方面胜于单片机。关键时候未必有单片机快。
rasar 发表于 2010-4-15 12:45 | 显示全部楼层
hehe ,路过
auzxj 发表于 2010-4-15 14:08 | 显示全部楼层
to13楼
关键时候未必有单片机快。

关键时候是什么时候
ayb_ice 发表于 2010-4-15 15:59 | 显示全部楼层
LZ怎么不比一下IO的操作速度呢还有两个内存移动呢
灵动系统 发表于 2010-4-15 16:08 | 显示全部楼层
不怎么公平啊!比了没意义!
 楼主| owlcjy 发表于 2010-4-15 16:14 | 显示全部楼层
谢谢提醒。 8# zhjerry
 楼主| owlcjy 发表于 2010-4-15 16:15 | 显示全部楼层
本帖最后由 owlcjy 于 2010-4-15 16:19 编辑
关于整形运算补充2句:
unsigned int 在MSP430里面默认16位而在STM32里面默认32位,这里是按照默认设置进行的。
如果把MSP430的整形数强制为32位(unsigned long),大家一起做32位整形运算,估计效果和浮点数的情形 ...
zhjerry 发表于 2010-4-15 08:32

谢谢提醒,我错误的以为STM32 int型是16位,所以看来以上测量真的有很大漏洞,等我重新测一遍。
我的测量只是一种不严谨的测量,仅供参考。
午夜霓虹 发表于 2010-4-15 17:05 | 显示全部楼层
好像有个标准的测试方法,你可以参考一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

86

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部