搜索
bottom↓
回复: 96

娱乐项目:比试STM32和DSP的数据计算能力

  [复制链接]

出300入477汤圆

发表于 2012-12-17 12:46:10 | 显示全部楼层 |阅读模式
虽然本人主要使用STM32,但我还是要说,STM32的数据计算能力,比起DSP差的太远了!
昨天本人在另一帖里面已经比较了一些操作,STM32大约比同频的DSP慢3倍
[http://www.amobbs.com/thread-5511970-1-1.html]
今天再比较一些,呵呵,只为学术研究,没有其他褒贬意义,毕竟是完全不同的东西嘛。
例如,有100个整数采样数据的一个数组DataArr[100],现在需要找出其中的最大值。
DSP(TMS320F2812)花费的时间如下:

RPT #99 (下面的指令执行100次)
MAXL ACC,@DataArr

只需两条指令完成任务,耗时101时钟周期

对STM32,完成同样任务需要多少时间呢?
最简单的写法,在C语言的层次上循环,肯定太慢了
对100个数据的每一个,需执行如下操作:
加载数据到寄存器,2时钟
比较原来数据寄存器和当前数据寄存器,1时钟
条件mov到原来数据寄存器,1时钟
循环跳回,3时钟
也就是每个数据一共需要2+1+1+3=7个时钟
循环100次就是700个时钟

在做这个操作的时候,它比DSP慢了7倍之多!
不过ARM可以用ldm同时加载多寄存器来优化,这样就减少了循环跳回的开销
优化的做法:
ldm加载10个数据到寄存器,11个时钟
对每个数据做比较和条件mov,2×10=20个时钟
循环跳回,3时钟
合计,也就是每10个数据用了34个时钟,
如果100个数据就是340个时钟

这还是比DSP慢3倍多。

不知有没有哪个ARM汇编高手能想到更快的做法,可以说出来给大家讨论一下。。。



阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入24汤圆

发表于 2012-12-17 12:56:24 | 显示全部楼层
这样对比太片面了,拿DSP得专用指令和MCU的通用指令作对比。

出0入0汤圆

发表于 2012-12-17 13:00:31 | 显示全部楼层
这个就像:四轮轿车比自行车快多了 一样的道理。
使用场合不一样。

出110入0汤圆

发表于 2012-12-17 13:01:31 | 显示全部楼层
用STM32F4比的?

出300入477汤圆

 楼主| 发表于 2012-12-17 13:04:45 | 显示全部楼层
本帖最后由 redroof 于 2012-12-17 13:14 编辑
20061002838 发表于 2012-12-17 12:56
这样对比太片面了,拿DSP得专用指令和MCU的通用指令作对比。


呵呵,我说了这是娱乐项目啊,就是专门比较数据处理指令的
普通的算术和逻辑指令,大部分都是每个周期1条,大家只要比主频就行了。
STM32F4不是号称带有DSP功能吗,那就试着来跟真正的DSP比一下数据处理能力啊^_^

其实我还想比一个,就是“最最最基本”的memcpy(搬数据)
DSP用硬件循环去执行mov指令,可以在102个时钟周期里面搬100个数据
ARM呢?
极限速度是LDM+STM,用全部寄存器做缓冲,也要200多个时钟周期才能搬100个数据
结果它还是比DSP慢了2倍以上

搬数据可不算专用指令哦!它实在是太通用了。。。

出300入477汤圆

 楼主| 发表于 2012-12-17 13:08:52 | 显示全部楼层
Flyback 发表于 2012-12-17 13:01
用STM32F4比的?

F1和F4在数据处理方面差不了多少,比起DSP来说,相差太远了。
DSP一个硬件循环就把ARM甩开几条街。
个人感觉,要想真正跟DSP比速度,除非加上硬件循环,不然连门都没有。

且而,RISC结构的所有算术逻辑指令只能操作寄存器,而加载寄存器要花额外的时间。DSP可以直接在单周期之内操作内存数据(实际的加载时间隐藏在执行流水线里面,因为它内部有多条总线)

出0入24汤圆

发表于 2012-12-17 13:26:21 | 显示全部楼层
redroof 发表于 2012-12-17 13:04
呵呵,我说了这是娱乐项目啊,就是专门比较数据处理指令的
普通的算术和逻辑指令,大部分都是每个周期1条 ...

架构上的缺陷是可以弥补的
如果你非要比较的话,那把功耗、价格、开发工具也算进去嘛
STM32F4现在可以做到40块钱,40块钱你能买什么样地DSP,168M的M4能不能甩你60M的DSP几条街?

出300入477汤圆

 楼主| 发表于 2012-12-17 13:34:59 | 显示全部楼层
20061002838 发表于 2012-12-17 13:26
架构上的缺陷是可以弥补的
如果你非要比较的话,那把功耗、价格、开发工具也算进去嘛
STM32F4现在可以做 ...

呵呵,您说反了。
外设的缺陷好弥补,比如STM32现在的PWM功能比TI C2000差很远,但将来造一个新型号,带一个高级PWM外设就OK了
可是CPU架构是没法改的,同频的ARM处理数据的能力大约就是只有DSP的1/3。
除非说服ARM去造一个完全不兼容传统ARM的核心,去实现DSP的特殊指令,特别是硬件循环,否则在数据处理能力上就是无解的。
如果只靠增加频率,DSP的频率也不低哦,150M的28xx,运算能力远超168M的Cortex M4(也就是STM32F4)
40M的古老的24xx,做16位计算的处理能力也照样高于72M的CortexM3(TI的24xx的32位处理能力肯定低于ARM,因为它是16位的核心)

DSP的缺点是比ARM贵,而且要发挥作用很多时候需要写汇编。如果纯写C,效率似乎低于同频的ARM,而且DSP的功耗也高。
呵呵,鱼和熊掌不能兼得嘛。

出0入0汤圆

发表于 2012-12-17 13:58:00 | 显示全部楼层
DSP -> 计算密集,逻辑复杂
FPGA -> 计算密集,逻辑简单
MCU -> 计算简单,逻辑复杂
凡事无绝对,以上只是比较适合的请况。

楼主的分析基本正确。DSP的执行效率比MCU高,但是C编译过去比较难搞,很多时候发挥性能还得汇编。/
比较复杂逻辑的话DSP的效率会直线下降,比如循环层数太多,还不如MCU。

很多应用场合,300M DSP 可以轻松超越1G ARM。但有时相反。
PS:2812还不算真正DSP。

出0入0汤圆

发表于 2012-12-17 13:59:38 | 显示全部楼层
另外,TI的东西都贵。跟DSP还是ARM没关

出0入0汤圆

发表于 2012-12-17 14:13:28 | 显示全部楼层
TI的MCU一概不用,太贵,偶尔会用用TI的其它类芯片。

出0入0汤圆

发表于 2012-12-17 14:14:48 | 显示全部楼层
那M4花那么大精力宣传的FPU是干嘛用的?

出0入618汤圆

发表于 2012-12-17 14:16:21 | 显示全部楼层
20061002838 发表于 2012-12-17 13:26
架构上的缺陷是可以弥补的
如果你非要比较的话,那把功耗、价格、开发工具也算进去嘛
STM32F4现在可以做 ...

40块钱可以买到BF531和BF592,体验800MMACs的快感……

出300入477汤圆

 楼主| 发表于 2012-12-17 19:03:29 来自手机 | 显示全部楼层
gzhuli 发表于 2012-12-17 14:16 40块钱可以买到BF531和BF592,体验800MMACs的快感……

前辈,有没有blackfin系列的fft的bench mark数据啊,贴出来让大家参考一下,看看各种架构的处理器的运算能力。
我没用过adi的dsp

出0入0汤圆

发表于 2012-12-17 19:30:17 | 显示全部楼层
可以用 STM32F4 和 TMS320  弄个型号对比  同时计算一个浮点  或是 数据处理 来看看

出0入25汤圆

发表于 2012-12-17 19:48:51 | 显示全部楼层
redroof 发表于 2012-12-17 13:34
呵呵,您说反了。
外设的缺陷好弥补,比如STM32现在的PWM功能比TI C2000差很远,但将来造一个新型号,带 ...

“除非说服ARM去造一个完全不兼容传统ARM的核心,去实现DSP的特殊指令,特别是硬件循环,否则在数据处理能力上就是无解的。”

这还用说服吗??Cortex-M指令集本来就和传统的ARM或Thumb完全不兼容(注意,不要抠字眼,你既无法用Thumb指令集编写完整的STM32程序,并且STM32一条ARM指令都不认识),,完全就是一个全新的东西,你感觉出不适了吗???ARM7和Cortex-M0都是数据和程序总线公用的冯诺依曼结构,而Cortex-M3是数据和程序总线分开的哈佛结构,你用的时候感觉出不适了吗???

技术本身不是最关键的因素,ARM的生态系统才是真正关键!!!!




出0入618汤圆

发表于 2012-12-17 20:21:06 | 显示全部楼层
redroof 发表于 2012-12-17 19:03
前辈,有没有blackfin系列的fft的bench mark数据啊,贴出来让大家参考一下,看看各种架构的处理器的运算 ...

Blackfin是16位的,官方的数据基本上都是16位的,不过http://ez.analog.com/thread/10388里面提到BF533的32位FFT性能:
        Size FFT  Cycles
             8      217
            16      447
            32     1011
            64     2203
           128     5315
           256    11747
           512    27643
          1024    60334

凭借着400MHz主频的优势,CM4和F28xx看来都没法追。
不过Blackfin的外设就简陋了一些,因为Blackfin主要是面向多媒体音视频处理的,PWM应用TI还是有很大优势。

出300入477汤圆

 楼主| 发表于 2012-12-17 20:35:40 来自手机 | 显示全部楼层
XIVN1987 发表于 2012-12-17 19:48 “除非说服ARM去造一个完全不兼容传统ARM的核心,去实现DSP的特殊指令,特别是硬件循环,否则在数据处理 ...

cortexM的指令集就是以前的thumb指令集的扩展,以前的thumb汇编程序可以直接用哦!可不是完全新造的。
它有分开的指令和数据总线,但内存地址是统一的。不像c2000 dsp有分开的程序区和数据区

出300入477汤圆

 楼主| 发表于 2012-12-17 20:42:17 来自手机 | 显示全部楼层
gzhuli 发表于 2012-12-17 20:21 Blackfin是16位的,官方的数据基本上都是16位的,不过http://ez.analog.com/thread/10388里面提到BF533的 ...

bf533的双alu看来确实有用哦,相同fft的时钟数只有ti28xx的80%左右
下面是ti的数据:

Ti提供的FFT库,Q31、32-bit Real FFT、0等待的存储空间运算的速度是最快的。
128:需要6509个cycles;
256:需要14756个cycles;
512:需要33081个cycles;
1024:需要73422个cycles;

出0入25汤圆

发表于 2012-12-17 20:54:30 | 显示全部楼层
redroof 发表于 2012-12-17 20:35
cortexM的指令集就是以前的thumb指令集的扩展,以前的thumb汇编程序可以直接用哦!可不是完全新造的。
它 ...


“cortexM的指令集就是以前的thumb指令集的扩展,以前的thumb汇编程序可以直接用哦!可不是完全新造的。”
我只知道独立的Thumb指令集根本就写不了程序,因为它缺少很多必要的指令,只能作为ARM指令集的辅助来减少程序大小。。。。现在这个Thumb-2指令集和完全重新编写一个指令集又有多大区别,就算增加了那个你说的那个指令大家又会觉得有别扭吗????

“它有分开的指令和数据总线,但内存地址是统一的。不像c2000 dsp有分开的程序区和数据区”
其实,我倒觉得是不是地址空间统一倒没有太大影响,倒是程序总线和数据总线分开和公用对性能才有影响;另外,难道ARM出个像DSP那样的多条数据总线的Cortex-M5就不是ARM了吗???在我看来,ARM其实更多的是一个商标而不是一种技术,至于这个商标为什么有这么大的能量是因为它背后所代表的生态系统。。。。你有没有想过:如果非得从技术上考虑的话,Cortex-M根本就不是ARM,因为他根本就不能执行ARM指令。。。。

出0入24汤圆

发表于 2012-12-17 20:58:39 | 显示全部楼层
gzhuli 发表于 2012-12-17 14:16
40块钱可以买到BF531和BF592,体验800MMACs的快感……

呵呵,把BF531给漏掉了
不过BF531控制能力偏弱,只能称为DSP不能称为DSC。

出0入0汤圆

发表于 2012-12-17 20:58:55 | 显示全部楼层
redroof 发表于 2012-12-17 20:42
bf533的双alu看来确实有用哦,相同fft的时钟数只有ti28xx的80%左右
下面是ti的数据:

呵呵,哪里找的ti的数据?以下是复数fft运算性能:

本帖子中包含更多资源

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

x

出300入477汤圆

 楼主| 发表于 2012-12-17 21:01:54 来自手机 | 显示全部楼层
XIVN1987 发表于 2012-12-17 20:54 “cortexM的指令集就是以前的thumb指令集的扩展,以前的thumb汇编程序可以直接用哦!可不是完全新造的。 ...

呵呵,这倒也是 。
cortexM核心确实是新造的,跟以前并不兼容,只是为了使用以前的商标和生态系统

出0入24汤圆

发表于 2012-12-17 21:11:26 | 显示全部楼层
redroof 发表于 2012-12-17 13:34
呵呵,您说反了。
外设的缺陷好弥补,比如STM32现在的PWM功能比TI C2000差很远,但将来造一个新型号,带 ...

呵呵,架构的缺陷可以通过主频和价格来弥补。
同等频率上M4是比不过DSP,但是你架不住人家主频高,价格低啊。
对于高端的DSC,M4是没得比,但是你敢说中低端DSC感受不到M4的压力么?
如果市场对cortex-M4反应良好,说不定ARM就给你搞个M5出来,搞的性能可以跟TMS320F28335火拼,这不是没可能的。

另外附一个ADI官网找到的,Blackfin 的基准测试

话说Blackfin 的对手应该是C55x才对
链接是 http://www.analog.com/zh/process ... comparison/fca.html
上面还有一些其他的测试

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-12-17 21:12:23 | 显示全部楼层
fickle 发表于 2012-12-17 20:58
呵呵,哪里找的ti的数据?以下是复数fft运算性能:

如果记得没错的话,1024点fft,28335不会超过1ms。

出300入477汤圆

 楼主| 发表于 2012-12-17 21:14:57 来自手机 | 显示全部楼层
fickle 发表于 2012-12-17 20:58 呵呵,哪里找的ti的数据?以下是复数fft运算性能:

我的数据来自网上某人的转载,我也找不到ti的原始出处了。
不过我这个是定点小数q31的,你这个是浮点的
奇怪啊,定点比浮点还慢。。。

出0入0汤圆

发表于 2012-12-17 21:17:09 | 显示全部楼层
呵呵,不奇怪。因此,以为c2000系列最后的芯片是tms320f28335.

出0入0汤圆

发表于 2012-12-17 21:19:07 | 显示全部楼层
呵呵,最好写成最后了。不过,也没错。335的后继产品28346虽然主频达300M,但好像脱离了c2000的主线。

出300入477汤圆

 楼主| 发表于 2012-12-17 21:24:38 来自手机 | 显示全部楼层
fickle 发表于 2012-12-17 21:19 呵呵,最好写成最后了。不过,也没错。335的后继产品28346虽然主频达300M,但好像脱离了c2000的主线。 ...

我以为是2812呢,
我写的参数就是2812的,不过28335如果用定点也是一样。
定点小数计算后还要移位,所以确实比原生的浮点要慢

出0入24汤圆

发表于 2012-12-17 21:26:49 | 显示全部楼层
redroof 发表于 2012-12-17 21:01
呵呵,这倒也是 。
cortexM核心确实是新造的,跟以前并不兼容,只是为了使用以前的商标和生态系统 ...

ARM基本上每代架构都不是向前兼容的,这可以让ARM甩掉包袱,轻装上阵。
相反,对于Intel,先抢兼容即使优势,也是包袱。向前兼容让Intel干掉了一个有一个的竞争对手,也让Intel背上了沉重的包袱,尾大不掉。
如果Intel放弃向前兼容,重新设计一款RISC起来,不知道要甩掉ARM几条街,无论是性能还是功耗。要知道ARM在玩ARM9的时候,Intel用ARM指令集设计了XScale,直接导致现在见不到ARM10内核的处理器,间接导致ARM现在用Cortex这个代号(呵呵,这一条是传言,但是如果是你,ARM8被StrongARM完虐,ARM10被XScale完虐,你还敢用ARM12这个代号么?)

出300入477汤圆

 楼主| 发表于 2012-12-17 21:31:46 来自手机 | 显示全部楼层
20061002838 发表于 2012-12-17 21:11 呵呵,架构的缺陷可以通过主频和价格来弥补。 同等频率上M4是比不过DSP,但是你架不住人家主频高,价格低 ...
c55好像用的很少哦。想快就直接用c64了,主频上1G,每周期8条指令,飞快,优化好了旧一点的电脑cpu都没得比。。。 blackfin就更没得比了

出0入0汤圆

发表于 2012-12-17 21:31:58 | 显示全部楼层
redroof 发表于 2012-12-17 21:24
我以为是2812呢,
我写的参数就是2812的,不过28335如果用定点也是一样。
定点小数计算后还要移位,所以确 ...

2812必将是个将要退出的芯片。甚至带浮点核的28035计算性能都超越定点28x芯片。

本帖子中包含更多资源

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

x

出0入24汤圆

发表于 2012-12-17 21:34:14 | 显示全部楼层
redroof 发表于 2012-12-17 21:31
c55好像用的很少哦。想快就直接用c64了,主频上1G,每周期8条指令,飞快,优化好了旧一点的电脑cpu都没得 ...

但是C2000是DSC,你拿这两个比,不合适啊。

出0入0汤圆

发表于 2012-12-17 21:34:29 | 显示全部楼层
redroof 发表于 2012-12-17 21:31
c55好像用的很少哦。想快就直接用c64了,主频上1G,每周期8条指令,飞快,优化好了旧一点的电脑cpu都没得 ...

恩,不错。最近,看上了c6000系列的6748,不过仿真器没地方搞,这个郁闷。

出300入477汤圆

 楼主| 发表于 2012-12-17 21:39:55 来自手机 | 显示全部楼层
fickle 发表于 2012-12-17 21:31 2812必将是个将要退出的芯片。甚至带浮点核的28035计算性能都超越定点28x芯片。 ...

是啊,2812都出来10年了,该淘汰了。
可是它还能跟最新出的cortexm4比运算速度哦!当然仅限整数

出300入477汤圆

 楼主| 发表于 2012-12-17 21:48:03 来自手机 | 显示全部楼层
20061002838 发表于 2012-12-17 21:34 但是C2000是DSC,你拿这两个比,不合适啊。

这是跟blackfin比的。
专门做控制用,c28差不多已经是最高性能的了。

出0入0汤圆

发表于 2012-12-17 21:48:13 | 显示全部楼层
redroof 发表于 2012-12-17 21:39
是啊,2812都出来10年了,该淘汰了。
可是它还能跟最新出的cortexm4比运算速度哦!当然仅限整数

恩,除了性能不错外,想必芯片背后的软指标更是无法短时间超越的。下图是ti给出的库(还幻想着arm也有呢,超喜欢jlink仿真器缘故)

本帖子中包含更多资源

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

x

出300入477汤圆

 楼主| 发表于 2012-12-17 22:02:07 来自手机 | 显示全部楼层
本帖最后由 redroof 于 2012-12-17 22:05 编辑
20061002838 发表于 2012-12-17 21:26 ARM基本上每代架构都不是向前兼容的,这可以让ARM甩掉包袱,轻装上阵。 相反,对于Intel,先抢兼容即使优 ...
intel要是敢不兼容,安腾就是先例。 它可是业界老大哦,安腾的性能也超高,真正的低频高效,当年可是被宣传成未来的主流的,号称x64架构。现在照样死的很惨。。。

出0入24汤圆

发表于 2012-12-17 22:21:45 | 显示全部楼层
redroof 发表于 2012-12-17 22:02
intel要是敢不兼容,安腾就是先例。 它可是业界老大哦,安腾的性能也超高,真正的低频高效,当年可是被宣 ...

生态系统的问题。如果当初Microsoft支持,现在基本上没x86啥事了。

出0入24汤圆

发表于 2012-12-17 22:25:05 | 显示全部楼层
fickle 发表于 2012-12-17 21:48
恩,除了性能不错外,想必芯片背后的软指标更是无法短时间超越的。下图是ti给出的库(还幻想着arm也有呢 ...

ARM也正在做
CMSIS包含DSP库,内容很丰富,不过都是C写的,不知道以后会不会改成汇编的。
如果ARM想真正推开M4,一个优秀的DSP库是必须的,这个库只能由ARM来做。

出0入0汤圆

发表于 2012-12-17 22:47:43 | 显示全部楼层
学习来啦

出0入0汤圆

发表于 2012-12-17 22:58:00 | 显示全部楼层
F4的1024FFT 1ms。

出300入477汤圆

 楼主| 发表于 2012-12-18 08:26:54 来自手机 | 显示全部楼层
kmani 发表于 2012-12-17 22:58 F4的1024FFT 1ms。

是32位吗?
16位用m3的库就可以实现了,但是跟专用dsp相差还是很远。
有m4专用的程序代码或官方文档吗?我很想看看

出300入477汤圆

 楼主| 发表于 2012-12-18 08:41:15 来自手机 | 显示全部楼层
20061002838 发表于 2012-12-17 22:21 生态系统的问题。如果当初Microsoft支持,现在基本上没x86啥事了。

Ms当然支持过安腾,也有安腾版的Windows,
只是用户不支持它而已

出0入0汤圆

发表于 2012-12-18 09:09:28 来自手机 | 显示全部楼层
同频的对比没意思

出0入0汤圆

发表于 2012-12-18 09:33:40 | 显示全部楼层
过于片面!
DSP,FPGA,MCU应用场合不同.

人人认为汽车比自行车快,但在北京,深圳,很多时候,自行车比汽车快.
何况STM32还分很多种型号呢!

观点,只供娱乐了啊

出0入0汤圆

发表于 2012-12-18 09:51:58 | 显示全部楼层
那是坑定的啦!DSP在计算处理能力的!

出0入0汤圆

发表于 2012-12-18 10:46:48 | 显示全部楼层
redroof 发表于 2012-12-18 08:26
是32位吗?
16位用m3的库就可以实现了,但是跟专用dsp相差还是很远。
有m4专用的程序代码或官方文档吗? ...

我是从一个PDF里面看到的,没有程序。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-12-18 10:50:40 | 显示全部楼层
同样期待ARM的汇编DSP库,不过在网上看到有人用汇编实现了部分的DSP函数

出0入0汤圆

发表于 2012-12-18 10:56:17 | 显示全部楼层
同时用过c2000的DSP和Stm32 的M3
个为感觉是,两者数据计算能力上有点差别,但很小,网上找到一份用Stm32做FFT的BenchMark,括号内为28x的数据:
1024 32bit CFFT:122111个周期(132823)
1024 32bit RFFT:78634个周期(73422)
手工汇编打造,lz有兴趣可以联系Pdf作者获取源代码测试。
同主频下,28x内核DSP在CM3前确实没有多大优势,这与大家印象中专注运算的DSP相差甚远。
其实C2000专注控制,真正需要数据处理的场合它也不够用。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-12-18 11:26:40 来自手机 | 显示全部楼层
好帖子,顶起来

出300入477汤圆

 楼主| 发表于 2012-12-18 12:39:01 | 显示全部楼层
Ca_guo 发表于 2012-12-18 10:56
同时用过c2000的DSP和Stm32 的M3
个为感觉是,两者数据计算能力上有点差别,但很小,网上找到一份用Stm32做 ...

这个库比ST的快那么多啊!
ST或者ARM应该赶紧吧这个作者高薪聘请过去才是

出0入0汤圆

发表于 2012-12-18 12:48:27 | 显示全部楼层
20061002838 发表于 2012-12-17 13:26
架构上的缺陷是可以弥补的
如果你非要比较的话,那把功耗、价格、开发工具也算进去嘛
STM32F4现在可以做 ...

40可以买得到400MHZ的BLACKFIN 的DSP 了,不过内部SRAM不大,没内部FLASH。

出0入0汤圆

发表于 2012-12-18 12:52:12 | 显示全部楼层
redroof 发表于 2012-12-18 12:39
这个库比ST的快那么多啊!
ST或者ARM应该赶紧吧这个作者高薪聘请过去才是
...

一直觉得官方发布的库只是书写规范、稳定性好,要讲效率并不见得是最好的
要写出高效的算法,一方面要对算法有十分深刻的见解,另一方面要对所使用工具了如指掌
官方很多时候只具备第二方面,真正把算法玩得出神入化的在民间高手中。

出0入0汤圆

发表于 2012-12-18 13:17:57 | 显示全部楼层
技术人员比较容易较真
不管能不能比,比一下又不会导致地球毁灭。

存在就有其合理性。MCU, CPU, GPU, DSP, NP, CPLD, FPGA, ASIC

出0入25汤圆

发表于 2012-12-18 13:40:09 | 显示全部楼层
xiangxiadage 发表于 2012-12-18 13:17
技术人员比较容易较真
不管能不能比,比一下又不会导致地球毁灭。


不仅仅是较真,,我们也确实想了解一下Cortex-M的运算性能达到什么样的水平,能不能胜任DSP2812这种的DSC的应用场合需求,,,通过各位大侠和前辈的讲解,我们也确实有了一些感性的认识,我觉得非常有意义啊!!!!!!

出0入0汤圆

发表于 2012-12-18 14:01:43 | 显示全部楼层
这个东西各有各的用处,还是要具体看用在哪里了。

出300入477汤圆

 楼主| 发表于 2012-12-18 18:35:16 来自手机 | 显示全部楼层
Ca_guo 发表于 2012-12-18 10:56 同时用过c2000的DSP和Stm32 的M3 个为感觉是,两者数据计算能力上有点差别,但很小,网上找到一份用Stm32做 ...

各位高手,能找到一个比我主帖里面更快的求100个整数最大值的arm算法吗?反正我能想到的最快的做法就是那个了,仍然要340个周期。比dsp慢3倍多。
求最大值可不是什么怪操作吧~

出0入0汤圆

发表于 2012-12-18 19:40:12 | 显示全部楼层
Ca_guo 发表于 2012-12-18 10:56
同时用过c2000的DSP和Stm32 的M3
个为感觉是,两者数据计算能力上有点差别,但很小,网上找到一份用Stm32做 ...

呵呵,是的。这个曾经炒到800元的2812,由于其只有定点核,无疑是老了。

ti被arm逼得,加进了浮点核,推出2833x和035。如果想使用ti的芯片,且做前瞻性设计,高端选用28335,而关注成本话选用28035。

出0入0汤圆

发表于 2012-12-18 19:41:31 | 显示全部楼层
redroof 发表于 2012-12-18 18:35
各位高手,能找到一个比我主帖里面更快的求100个整数最大值的arm算法吗?反正我能想到的最快的做法就是那 ...

LZ你真无聊呀... 专有指令的比较意义不大的说...但数据搬运,STM32也有DMA的,根本不需要用循环,
你怎么不用个没除法指令的DSP算算32位除法来和M3比?
用非浮点DSP去和STM32F4的FPU比浮点运算?

出0入0汤圆

发表于 2012-12-18 19:44:10 | 显示全部楼层
spacefram 发表于 2012-12-18 12:48
40可以买得到400MHZ的BLACKFIN 的DSP 了,不过内部SRAM不大,没内部FLASH。

确实,ti的c2000系列的346、c5000和c6000等等系列芯片,由于没有内部flash,不知道如何加密的?如果不能保密的话,使用于产品设计恐怕要慎重。

出300入477汤圆

 楼主| 发表于 2012-12-18 20:06:28 来自手机 | 显示全部楼层
本帖最后由 redroof 于 2012-12-18 20:11 编辑
snoopyzz 发表于 2012-12-18 19:41 LZ你真无聊呀... 专有指令的比较意义不大的说...但数据搬运,STM32也有DMA的,根本不需要用循环, 你怎么不 ...
呵呵,都说了是娱乐嘛
另外,您知道吗,没除法指令的dsp算除法差不多也是每个时钟除一位,跟stm32的硬除法器一样快。 因为有硬件无开消循环,只要有个除一位的指令就够了,用硬件循环一下搞定。

出0入0汤圆

发表于 2012-12-19 10:09:08 | 显示全部楼层
stm32f3XX也带dsp了,到时再比比看吧!

出300入477汤圆

 楼主| 发表于 2012-12-20 08:31:49 来自手机 | 显示全部楼层
chengtao 发表于 2012-12-19 10:09 stm32f3XX也带dsp了,到时再比比看吧!

f3和f4是一样的核心,
倒是f3的高精度ad很有意思,有空了要试一试。。。

出0入18汤圆

发表于 2012-12-20 09:01:40 | 显示全部楼层
比较全面的比较  呵呵

出0入0汤圆

发表于 2013-1-18 15:08:02 | 显示全部楼层
dsp有多条总线,循环优化;arm作为通用型核必然不想搞多总线,循环优化
本身没有可比性,技术比较可以搞,但强调arm生态系统商业策略经营等非技术问题就没有意义
有些arm粉丝非要强调arm如何先进很愚蠢,又不是自己设计的,估计多半有点“站好队”的想法,防止出现自己搞了多年的东西是“行将就木的低级货”
很纠结的情绪啊,为自己打上个arm支持者的标签。

楼主搞的比较很有意思,有意思的不是技术本身,这个n年前就有人搞过,倒是让我看到了不少忧心忡忡的技术员,一些芯片经销商和一些懂了些技术的销售人员的心态

出0入0汤圆

发表于 2013-8-10 15:13:20 | 显示全部楼层
好帖,讨论的过程比结论更加有意义!

出0入21汤圆

发表于 2013-8-10 15:46:23 | 显示全部楼层
对比对比,好看

出0入0汤圆

发表于 2013-8-10 16:19:15 | 显示全部楼层
mark....
顶一个...

出0入0汤圆

发表于 2014-2-21 20:41:03 | 显示全部楼层
20061002838 发表于 2012-12-17 22:25
ARM也正在做
CMSIS包含DSP库,内容很丰富,不过都是C写的,不知道以后会不会改成汇编的。
如果ARM想真正 ...

大师,我现在想用STM32F4去处理一些比较复杂的算法,想到它的DSP,所以想研究一下
还望大师晒一些新手入门的资料,或者方法啊!

在此谢过!

出0入0汤圆

发表于 2014-2-21 21:34:27 | 显示全部楼层
thumb2条件mov可不是1条指令啊 您还需要IT指令呢

出0入0汤圆

发表于 2014-8-4 15:13:11 | 显示全部楼层
运用场合不一样啊

出0入0汤圆

发表于 2014-8-4 15:13:43 | 显示全部楼层
本帖最后由 kerry007 于 2014-8-4 15:16 编辑

一个是功能逻辑,一个是强大的数字处理

出0入0汤圆

发表于 2014-9-28 14:13:21 | 显示全部楼层
其实大家都有误区。
1  你测试的STM32代码是不是你用汇编做的,算法是否最优化。如果你调用的是厂家提供的STM32DSP库的话。   如果你可以用汇编写。起码可以提高3-5倍。
2  其实DSP芯片厂家提供的DSP库。基本就是针对芯片最优化的汇编算法。只不过包装成了C库。

如果综合控制与DSP处理结合应用。DSP 占不到什么便宜。 但是单纯做DSP算法,它才有2-3倍的优势。
要不然DSP厂家也不会再这几年降价幅度这麽大。就是因为ARM的芯片价格上有太大的优势。

以上见解并没做实际测试。只是根据芯片主频 ,根据汇编代码的行数得出的大概结论。


出150入0汤圆

发表于 2014-9-28 14:18:48 | 显示全部楼层
结果呢 数据呢

出0入0汤圆

发表于 2014-9-28 14:31:29 | 显示全部楼层
好帖,讨论的过程比结论更加有意义~~长见识了

出0入0汤圆

发表于 2014-9-28 14:42:17 | 显示全部楼层
跟最新的Cortex-M7比,差别还大吗?

出300入477汤圆

 楼主| 发表于 2014-9-29 09:28:11 | 显示全部楼层
yebx 发表于 2014-9-28 14:42
跟最新的Cortex-M7比,差别还大吗?

M7有双发射,如果指令排列合适,每个时钟可以执行2条指令。
动态跳转预测应该可以保证绝大部分循环都可以预测成功,这样跳转指令就变成了单周期。
只是不确定它的跳转指令能不能和其他指令做双发射,还有它的双发射有没有别的什么限制?
比如以前的老奔腾,双流水线一个可以执行所有指令,另一个只能执行ALU指令,结果要求编译器必须正确的排列指令才能用上。。。

出0入0汤圆

发表于 2014-9-29 14:33:19 | 显示全部楼层
learner123 发表于 2013-1-18 15:08
dsp有多条总线,循环优化;arm作为通用型核必然不想搞多总线,循环优化
本身没有可比性,技术比较可以搞, ...

一个新是视角来看待这个讨论,很有意思。

合适就好,最快的未必是自己需要的,
就好比最漂亮的女人未必适合做老婆。

出0入0汤圆

发表于 2014-10-21 14:31:43 | 显示全部楼层
干嘛要做循环呢。对于我的应用。我一般不用循环。直接用代码填写。因为我的DSP算法中应用的循环次数不多。
不比DSP内存少,代码不但要放到内存里,还要用做数据内存用,并且内存地址还不是连续的。
F4 有的是代码空间。 并且读速度和主频一样。
可不象DSP外挂的内存。如过超过页面。还需要等待时间。
还有需要说明的是F4浮点乘加指令需要3个时钟才能执行完成。所以要安排好汇编代码计算与数据读取的代码位置排列。以达到高效利用

出0入0汤圆

发表于 2014-10-21 14:40:09 | 显示全部楼层
还有我不是说STM32比DSP快。同主频的情况下,那是肯定没得比的。
但是某些应用场合用DSP确实不太划算。
我们要从应用的角度来选择到底用什么最合适。

出0入0汤圆

发表于 2014-10-21 14:40:58 | 显示全部楼层
不能这样比较的

出0入0汤圆

发表于 2015-2-28 11:33:17 | 显示全部楼层
好帖子,学到了不少东西!

出0入300汤圆

发表于 2015-2-28 11:53:00 | 显示全部楼层
大部分人都对速度没有什么要求的,并且根本就没有要提高效率的任何想法,他们要的是尽可能的得到结果,无论什么过程

出0入0汤圆

发表于 2015-2-28 13:35:57 | 显示全部楼层
ARM和DSP价格差距太大,如果把这个因素考虑进去,就平衡了。

出0入0汤圆

发表于 2015-2-28 13:59:12 | 显示全部楼层
我啥也不说,就是来膜拜大牛们的

出0入0汤圆

发表于 2015-5-25 13:11:22 | 显示全部楼层
还在考虑学DSP还是STM32

出0入0汤圆

发表于 2015-5-25 13:27:24 | 显示全部楼层
20061002838 发表于 2012-12-17 13:26
架构上的缺陷是可以弥补的
如果你非要比较的话,那把功耗、价格、开发工具也算进去嘛
STM32F4现在可以做 ...

ADI的blackfin 16RMB就可以有400MHz了.

出0入0汤圆

发表于 2015-5-25 13:28:38 | 显示全部楼层
据说DSP有硬件乘法器等,ARM只能靠一般地计算,肯定慢很多,

出0入0汤圆

发表于 2015-5-25 17:00:34 | 显示全部楼层
太精彩了,长见识了。膜拜大神们。

出0入0汤圆

发表于 2016-11-24 10:55:23 | 显示全部楼层
难道stm吹嘘了半天的m4支持的dsp指令那么弱?

出30入0汤圆

发表于 2018-5-11 09:38:51 | 显示全部楼层
redroof 发表于 2012-12-17 13:34
呵呵,您说反了。
外设的缺陷好弥补,比如STM32现在的PWM功能比TI C2000差很远,但将来造一个新型号,带 ...

按照我的代码测试结果,2812在跑逻辑指令方面,比STM32F407慢两倍。我们公司是做分析仪器的,没有设计到浮点计算,程序使用C实现,都是通用的功能。
因此,我决定把公司的2812平台换成STM32f407。

出30入0汤圆

发表于 2018-5-11 09:42:24 | 显示全部楼层
挂一段产品的通用程序的代码比比呗,不加优化,用不用嵌入式操作系统都行,

出105入79汤圆

发表于 2021-12-14 23:51:46 | 显示全部楼层
2021年底,TI的DSP,28335, 120元,150Mhz

STM32H743, 480Mhz,40元 ,应该已经打平了。

出0入0汤圆

发表于 2021-12-15 11:42:57 | 显示全部楼层
有参考价值的娱乐项目

出0入0汤圆

发表于 2021-12-15 14:14:14 | 显示全部楼层
现在可以再打一场,比比看

出0入0汤圆

发表于 2023-9-24 16:19:16 | 显示全部楼层
今天看来这个娱乐项目仍然很有价值,
兆易 GD32H7,M7核,主频600M
先楫 HPM6000,RISC-V核,主频800MHz~1GHz
计算三角函数,FFT这类算法,这类MCU相当于TI哪款DSP的运算能力
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 07:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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