打印

纯技术,讨论cortex-a8对dsp的冲击

[复制链接]
17452|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
alex74|  楼主 | 2009-2-4 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我有10年以上的dsp和各种cpu开发经验。长期做TI,ADI,PHILIPS,ARM,X86的汇编优化,对最新的arm coretex-a8发表一些纯技术看法,希望大家指正。

开始讨论之前,先发几个内核的结构图:
首先是TI最经典的C64,C64+内核。
总结下对优化影响最大的特点:
.最多8指令并行,一般我们可以优化到5-6指令并行,很少能做到8条。
.2条128位的数据存取通道,属于8指令并行一部分。数据存取速度是本帖所有dsp里面最强的。
.128个通用寄存器,口水啊,加速全靠它了。
.指令是条件执行的,可以减少跳转。(ARM系列的特色,呵呵呵)
.其他dsp的通用特征,比如单周期,simd,无开销循环等

相关帖子

沙发
alex74|  楼主 | 2009-2-4 09:42 | 只看该作者

phlips的dsp

介绍philips的1700,不是最新型号。主频500M。
优化特点:
.128个通用寄存器,比TI的更通用,不分组。强烈推荐。
.5并行。我们经常可以优化到完全的5并行。
.其他通用的dsp特点。

实际测试和TI的同样频率C64比运算效能几乎是 1700:C64 = 0.8:1。
强悍且好用

使用特权

评论回复
板凳
alex74|  楼主 | 2009-2-4 09:47 | 只看该作者

adi

blackfin系列其实并不是完全意思的dsp,它是adi和intel联合开发的通用处理器,所以相对比较弱。
优化特点:
. 3指令并行。在纯数字运算的时候可以做到。但是寄存器太少,经常有寄存器竞争,容易打断流水线。
. 其他通用dsp的特点。


不得不说下blackfin系列的短板:
.寄存器太少,容易产生竞争打断流水
.并行度不够。
.跳转比较费时,且无分支预测(这个arm做的好),无条件执行指令

同主频 blackfin:C64 = 1:4甚至更多

使用特权

评论回复
地板
alex74|  楼主 | 2009-2-4 09:59 | 只看该作者

最后是重点cortex -a8

先申明我还没用过这款芯片,得到的文档也不详细,没看到指令集。但是我做了多年的arm算法优化,就这么猜猜吧

A8的好处是有个neon协处理器。
A8本身最大的特点是双发射,2个alu,类似10年前的intel 586-100.还有就是分支预测做的不错。

重点介绍 NEON协处理器:
.几乎是一个完整的dsp,且有浮点运算单元。据说也是单指令周期,SIMD。
.不知道是否有0开销循环功能。
.不知道regisger file多大,个人估计应该不会太大,和blackfin持平
.从图上看是6指令并行(不算浮点单元)。

最大的感觉就是neon的流水线排列非常的怪,很难优化到最佳,容易被打断,达不到单指令周期的目的。这个结论只是看文档得来的,从来没见过这种流水线,只好这样猜测。感觉优化难度是所有芯片里最难的。

总体性能感觉要强于blackfin,我估计 A8:blackfin = 1:1.2

使用特权

评论回复
5
alex74|  楼主 | 2009-2-4 10:11 | 只看该作者

总结一下

1. A8远远弱于主流的正规DSP。没有代替的可能性。主流DSP都是65nm工艺的。
2. A8强于古老产品比如TI的C54,C28等,但是成本上不见得有优势,毕竟人家卖了那么多年,整体经营成本早就回收了。A8的65nm工艺也是要投很多钱的,虽然出来的die比较小。
3. A8和5年前的blackfin系列基本持平,但是成本上也不具备优势。blacfin系列现在是90nm工艺。
4. 32位单片机上cortex没有优势,它只能提供阉割后的M3,根本没法和blackfin,C28等拼性能,除非ADI自己不争气(不过ADI一向不争气,哈哈哈)。cortex单片机唯一的优势是16位的thumb指令集。

A8唯一的优势就是手持设备,但是收到x86的强烈竞争,3年内肯定会看到很恐怖的x86单片机

使用特权

评论回复
6
alex74|  楼主 | 2009-2-4 10:20 | 只看该作者

。。

如果这个数据属实的话:
MPEG-4 SP HD (720p @24fps) video decode on a 550MHz Mistral EVM
MP3 audio decode (stereo, 128kbps, 44.1KHz)
---------------------------
证实了我原来的预测 和blackfin比 1:1.2是对的。
那么  A8:C64 = 3:1。
C64 600M的现在卖10多个美金哦,A8有没有优势呢?

所以netjob你看仔细:
A8要和dsp比 运算能力/价格比,完败。
A8要和C28比 32位运算型单片机性价比,完败。因为A8不能做32位单片机,做单片机的是M3,极其弱小的一个CPU。不要偷换概念,拿A8的能力,M3的价格。
32位控制型单片机,DSP一般是不介入这个领域的。

任何公司不是技术优先的,是商务优先的,在app处理器市场,ARM9足够用了,又卖的这么好,为啥要换A8?换A8对ARM和客户都没有好处。最典型的象TI,所有应用处理器都是ARM9,只有OMAP手机芯片才换了A8就是这个道理。A8只能和自己的ARM11拼抢手机市场。

还有千万不要说A8代替媒体加速器这种傻话,媒体加速器可以做到720P解码2美金。AMR9+媒体处理器,性价比比A8要强太多。


使用特权

评论回复
7
dld2| | 2009-2-4 10:22 | 只看该作者

技术强帖!

使用特权

评论回复
8
宇宙飞船| | 2009-2-4 11:57 | 只看该作者

只要是32位的MCU机都会对DSP产生冲击!

处理音频,16*16=32位, 32+32+32。。。。=48位
32位的MCU再带48位以上结果的累加器,对DSP就是12级的地震冲击!

使用特权

评论回复
9
宇宙飞船| | 2009-2-4 12:00 | 只看该作者

cortex-a8有没有48位以上的结果累加器?

如果没有,语之过早!

使用特权

评论回复
10
老狼| | 2009-2-4 23:38 | 只看该作者

好帖!

ADI 就是个笨蛋! 如果ADI的仿真器也像TI一样,盗版的满天飞,几百块钱一个,估计bf53X早就火了。国内的ADI仿真器太差。

使用特权

评论回复
11
alex74|  楼主 | 2009-2-5 08:47 | 只看该作者

这话在理的

ADI 就是个笨蛋! 如果ADI的仿真器也像TI一样,盗版的满天飞,几百块钱一个,估计bf53X早就火了。国内的ADI仿真器太差。
----------
这话在理。

ADI已经意思到了这点,正在大力支持第三方开发jtag。和blackfin单片机配套肯定会有几百的仿真器。

使用特权

评论回复
12
alex74|  楼主 | 2009-2-5 13:21 | 只看该作者

我已经厌烦这个人了

C28从来就不是控制性单片机,他是DSC。你老拿M3来比有什么意思?

最要命的是CORTEX-M3的算法能力一点都不比C28X逊色!
一般算法FIR、IIR、FFT等都有库提供。自己做虚拟浮点算法库照样不怕浮点算法太慢。
----------------------
典型的没做过算法的书呆子的想法。不想反驳了。



使用特权

评论回复
13
phoenixmy| | 2009-2-5 13:27 | 只看该作者

技术牛贴



加协处理器来增强数字处理能力看来是个趋势
而且以目前arm的处理能力,很多功能基本arm就可以搞定
DSP的市场被蚕食了很多

估计以后DSP应该还是曲高和寡的局面,老百姓还是会用arm处理器

使用特权

评论回复
14
alex74|  楼主 | 2009-2-5 15:15 | 只看该作者

。。。

to netjob:
你知道cortex M3做一个乘法要几个周期吗?你知道定点模拟浮点会损失精度吗?你知道用定点来实现浮点滤波器有时候会无法收敛吗?你用M3做过浮点乘法吗?同C28相比,M3的浮点运算能力。。。。哎实在是惨不忍睹。别扯了,纸上谈兵
为什么老是觉得M3可以和C28抢市场呢?C28是浮点运算控制器,两者根本就不是同一个市场。M3抢的是PIC,microchip的市场,抢的是51的市场。

DSP从来就是曲高和寡的东西。从C54开始就没有控制功能,只有运算功能。要不TI搞双核达芬奇干啥?我在大量用ARM,也在大量用DSP。本来两个就是属于完全不交集的市场,从来没有IC厂家来给我推销说这个ARM可以替换DSP。
ARM抢的是APP处理器市场,mips,ppc之类的要头痛才对。
最近我们在一个年销量大于300k的产品上抛弃了marvell的500M ARM9方案,选了一个mips方案,一个ppc方案。觉得性能,价格都还行。

使用特权

评论回复
15
宇宙飞船| | 2009-2-6 00:02 | 只看该作者

32位MCU(含32位)是没法跟DSP比拼的!

1. 同一时钟下,处理速度相差一个量级。
2. 精度问题:这是跟处理速度有关联的,抛开处理速度,精度问题就不
复存在,1位机,4位机同样可以做到任意精度。

如果不考虑数据处理的实时性,也没有必要选择DSP了。

某些方案使用通用DSP是唯一的选择!

使用特权

评论回复
16
liuzhantao| | 2009-2-6 12:29 | 只看该作者

部太懂,学习了

使用特权

评论回复
17
HWM| | 2009-2-7 20:13 | 只看该作者

纯忽悠!

使用特权

评论回复
18
lomeisi_99| | 2009-2-10 13:37 | 只看该作者

牛人对话

这样的帖子应该多一些,虽然看不懂,没有深刻体会,但参与的都是高人,能见识到大家对些处理器的理解,很难得啊!!

使用特权

评论回复
19
freefish| | 2009-2-10 23:10 | 只看该作者

to alex74

您说的C28系列DSP,也只有C2833X带啊,C281X,C280X都没有!STM32的乘法器是单指令周期的,而且带有除法器,不用再乘个数再移位来计算除法。
还有,在定点处理器里计算浮点数都是用Q格式的,只要调整Q点处理好,一般应用下精度没有问题。C2812的例程里一般使用Q22。
实际测量运算时间,将一个24点的全波付氏运算再STM32和C2808中循环计算一万次,无除法时72M的STM32和100M的C2808接近,有除法时C2808计算时间明显长很多。
目前我手头有这两种板子和仿真器,但是STM32的片内12位ADC性能明显高很多,且单电源,启动快,价格便宜,所以选定STM32.

使用特权

评论回复
20
zhabin| | 2009-2-10 23:51 | 只看该作者

要是有x86+DSP的方案就好了

x86只要支持32位即可,不需要支持16位和FPU,以减小功耗,高速运算用DSP,类似现在高清MP4的方案,这样既可以兼容linux和windows,又不牺牲性能,还不用像INTEL做得那么庞大.

使用特权

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

本版积分规则

43

主题

474

帖子

3

粉丝