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

[复制链接]
19863|41
 楼主| alex74 发表于 2009-2-4 09:38 | 显示全部楼层 |阅读模式
我有10年以上的dsp和各种cpu开发经验。长期做TI,ADI,PHILIPS,ARM,X86的汇编优化,对最新的arm&nbsp;coretex-a8发表一些纯技术看法,希望大家指正。<br /><br />开始讨论之前,先发几个内核的结构图:<br />首先是TI最经典的C64,C64+内核。<br />总结下对优化影响最大的特点:<br />.最多8指令并行,一般我们可以优化到5-6指令并行,很少能做到8条。<br />.2条128位的数据存取通道,属于8指令并行一部分。数据存取速度是本帖所有dsp里面最强的。<br />.128个通用寄存器,口水啊,加速全靠它了。<br />.指令是条件执行的,可以减少跳转。(ARM系列的特色,呵呵呵)<br />.其他dsp的通用特征,比如单周期,simd,无开销循环等
 楼主| alex74 发表于 2009-2-4 09:42 | 显示全部楼层

phlips的dsp

介绍philips的1700,不是最新型号。主频500M。<br />优化特点:<br />.128个通用寄存器,比TI的更通用,不分组。强烈推荐。<br />.5并行。我们经常可以优化到完全的5并行。<br />.其他通用的dsp特点。<br /><br />实际测试和TI的同样频率C64比运算效能几乎是&nbsp;1700:C64&nbsp;=&nbsp;0.8:1。<br />强悍且好用
 楼主| alex74 发表于 2009-2-4 09:47 | 显示全部楼层

adi

blackfin系列其实并不是完全意思的dsp,它是adi和intel联合开发的通用处理器,所以相对比较弱。<br />优化特点:<br />.&nbsp;3指令并行。在纯数字运算的时候可以做到。但是寄存器太少,经常有寄存器竞争,容易打断流水线。<br />.&nbsp;其他通用dsp的特点。<br /><br /><br />不得不说下blackfin系列的短板:<br />.寄存器太少,容易产生竞争打断流水<br />.并行度不够。<br />.跳转比较费时,且无分支预测(这个arm做的好),无条件执行指令<br /><br />同主频&nbsp;blackfin:C64&nbsp;=&nbsp;1:4甚至更多
 楼主| alex74 发表于 2009-2-4 09:59 | 显示全部楼层

最后是重点cortex -a8

先申明我还没用过这款芯片,得到的文档也不详细,没看到指令集。但是我做了多年的arm算法优化,就这么猜猜吧<br /><br />A8的好处是有个neon协处理器。<br />A8本身最大的特点是双发射,2个alu,类似10年前的intel&nbsp;586-100.还有就是分支预测做的不错。<br /><br />重点介绍&nbsp;NEON协处理器:<br />.几乎是一个完整的dsp,且有浮点运算单元。据说也是单指令周期,SIMD。<br />.不知道是否有0开销循环功能。<br />.不知道regisger&nbsp;file多大,个人估计应该不会太大,和blackfin持平<br />.从图上看是6指令并行(不算浮点单元)。<br /><br />最大的感觉就是neon的流水线排列非常的怪,很难优化到最佳,容易被打断,达不到单指令周期的目的。这个结论只是看文档得来的,从来没见过这种流水线,只好这样猜测。感觉优化难度是所有芯片里最难的。<br /><br />总体性能感觉要强于blackfin,我估计&nbsp;A8:blackfin&nbsp;=&nbsp;1:1.2
 楼主| alex74 发表于 2009-2-4 10:11 | 显示全部楼层

总结一下

1.&nbsp;A8远远弱于主流的正规DSP。没有代替的可能性。主流DSP都是65nm工艺的。<br />2.&nbsp;A8强于古老产品比如TI的C54,C28等,但是成本上不见得有优势,毕竟人家卖了那么多年,整体经营成本早就回收了。A8的65nm工艺也是要投很多钱的,虽然出来的die比较小。<br />3.&nbsp;A8和5年前的blackfin系列基本持平,但是成本上也不具备优势。blacfin系列现在是90nm工艺。<br />4.&nbsp;32位单片机上cortex没有优势,它只能提供阉割后的M3,根本没法和blackfin,C28等拼性能,除非ADI自己不争气(不过ADI一向不争气,哈哈哈)。cortex单片机唯一的优势是16位的thumb指令集。<br /><br />A8唯一的优势就是手持设备,但是收到x86的强烈竞争,3年内肯定会看到很恐怖的x86单片机
 楼主| alex74 发表于 2009-2-4 10:20 | 显示全部楼层

。。

如果这个数据属实的话:<br />MPEG-4&nbsp;SP&nbsp;HD&nbsp;(720p&nbsp;@24fps)&nbsp;video&nbsp;decode&nbsp;on&nbsp;a&nbsp;550MHz&nbsp;Mistral&nbsp;EVM<br />MP3&nbsp;audio&nbsp;decode&nbsp;(stereo,&nbsp;128kbps,&nbsp;44.1KHz)<br />---------------------------<br />证实了我原来的预测&nbsp;和blackfin比&nbsp;1:1.2是对的。<br />那么&nbsp;&nbsp;A8:C64&nbsp;=&nbsp;3:1。<br />C64&nbsp;600M的现在卖10多个美金哦,A8有没有优势呢?<br /><br />所以netjob你看仔细:<br />A8要和dsp比&nbsp;运算能力/价格比,完败。<br />A8要和C28比&nbsp;32位运算型单片机性价比,完败。因为A8不能做32位单片机,做单片机的是M3,极其弱小的一个CPU。不要偷换概念,拿A8的能力,M3的价格。<br />32位控制型单片机,DSP一般是不介入这个领域的。<br /><br />任何公司不是技术优先的,是商务优先的,在app处理器市场,ARM9足够用了,又卖的这么好,为啥要换A8?换A8对ARM和客户都没有好处。最典型的象TI,所有应用处理器都是ARM9,只有OMAP手机芯片才换了A8就是这个道理。A8只能和自己的ARM11拼抢手机市场。<br /><br />还有千万不要说A8代替媒体加速器这种傻话,媒体加速器可以做到720P解码2美金。AMR9+媒体处理器,性价比比A8要强太多。<br /><br /><br />
dld2 发表于 2009-2-4 10:22 | 显示全部楼层

技术强帖!

  
宇宙飞船 发表于 2009-2-4 11:57 | 显示全部楼层

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

处理音频,16*16=32位,&nbsp;32+32+32。。。。=48位<br />32位的MCU再带48位以上结果的累加器,对DSP就是12级的地震冲击!
宇宙飞船 发表于 2009-2-4 12:00 | 显示全部楼层

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

如果没有,语之过早!
老狼 发表于 2009-2-4 23:38 | 显示全部楼层

好帖!

ADI&nbsp;就是个笨蛋!&nbsp;如果ADI的仿真器也像TI一样,盗版的满天飞,几百块钱一个,估计bf53X早就火了。国内的ADI仿真器太差。<br />
 楼主| alex74 发表于 2009-2-5 08:47 | 显示全部楼层

这话在理的

ADI&nbsp;就是个笨蛋!&nbsp;如果ADI的仿真器也像TI一样,盗版的满天飞,几百块钱一个,估计bf53X早就火了。国内的ADI仿真器太差。<br />----------<br />这话在理。<br /><br />ADI已经意思到了这点,正在大力支持第三方开发jtag。和blackfin单片机配套肯定会有几百的仿真器。
 楼主| alex74 发表于 2009-2-5 13:21 | 显示全部楼层

我已经厌烦这个人了

C28从来就不是控制性单片机,他是DSC。你老拿M3来比有什么意思?<br /><br />最要命的是CORTEX-M3的算法能力一点都不比C28X逊色!<br />一般算法FIR、IIR、FFT等都有库提供。自己做虚拟浮点算法库照样不怕浮点算法太慢。<br />----------------------<br />典型的没做过算法的书呆子的想法。不想反驳了。<br /><br /><br /><br />
phoenixmy 发表于 2009-2-5 13:27 | 显示全部楼层

技术牛贴

<br /><br />加协处理器来增强数字处理能力看来是个趋势<br />而且以目前arm的处理能力,很多功能基本arm就可以搞定<br />DSP的市场被蚕食了很多<br /><br />估计以后DSP应该还是曲高和寡的局面,老百姓还是会用arm处理器
 楼主| alex74 发表于 2009-2-5 15:15 | 显示全部楼层

。。。

to&nbsp;netjob:<br />你知道cortex&nbsp;M3做一个乘法要几个周期吗?你知道定点模拟浮点会损失精度吗?你知道用定点来实现浮点滤波器有时候会无法收敛吗?你用M3做过浮点乘法吗?同C28相比,M3的浮点运算能力。。。。哎实在是惨不忍睹。别扯了,纸上谈兵<br />为什么老是觉得M3可以和C28抢市场呢?C28是浮点运算控制器,两者根本就不是同一个市场。M3抢的是PIC,microchip的市场,抢的是51的市场。<br /><br />DSP从来就是曲高和寡的东西。从C54开始就没有控制功能,只有运算功能。要不TI搞双核达芬奇干啥?我在大量用ARM,也在大量用DSP。本来两个就是属于完全不交集的市场,从来没有IC厂家来给我推销说这个ARM可以替换DSP。<br />ARM抢的是APP处理器市场,mips,ppc之类的要头痛才对。<br />最近我们在一个年销量大于300k的产品上抛弃了marvell的500M&nbsp;ARM9方案,选了一个mips方案,一个ppc方案。觉得性能,价格都还行。<br />
宇宙飞船 发表于 2009-2-6 00:02 | 显示全部楼层

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

1.&nbsp;同一时钟下,处理速度相差一个量级。<br />2.&nbsp;精度问题:这是跟处理速度有关联的,抛开处理速度,精度问题就不<br />复存在,1位机,4位机同样可以做到任意精度。<br /><br />如果不考虑数据处理的实时性,也没有必要选择DSP了。<br /><br />某些方案使用通用DSP是唯一的选择!<br /><br />
liuzhantao 发表于 2009-2-6 12:29 | 显示全部楼层

部太懂,学习了

  
HWM 发表于 2009-2-7 20:13 | 显示全部楼层

纯忽悠!

  
lomeisi_99 发表于 2009-2-10 13:37 | 显示全部楼层

牛人对话

这样的帖子应该多一些,虽然看不懂,没有深刻体会,但参与的都是高人,能见识到大家对些处理器的理解,很难得啊!!
freefish 发表于 2009-2-10 23:10 | 显示全部楼层

to alex74

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

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

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

本版积分规则

43

主题

474

帖子

3

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