找回密码
 注册
搜索
查看: 766|回复: 0

[讨论] DSP 选折

[复制链接]
发表于 2009-1-17 19:58:09 | 显示全部楼层 |阅读模式
当年Intel和AMD争夺PC芯片市场时,Intel的主频高于AMD,后来AMD打出了主频*指令数/周期的牌,引入了新的概念。Trimedia每周期可以执行5条指令,因为Trimedia使用了VLIW,每条指令32位。其中两条可以做乘加运算,另外三条可以用于简单的算术逻辑运算或存取数据。于是,2*133+3*133=266+400。而Blackfin,每个周期最多可以执行3条指令,其中只有一条是做乘加运算,另两条都是存取操作。算作1*600+2*600=600+1200。Blackfin中的乘加指令的执行时间与Trimedia中的大致相同,都是3个时钟周期后得到结果。单从每秒的DSP运算指令数来看,Blackfin是Trimedia的两倍多。每秒的算术逻辑运算和控制指令数,Blackfin是Trimedia的三倍。从简单算术逻辑运算和控制指令来看,Blackfin是比Trimedia稍强些。

  下面以视频处理中最典型的IDCT运算为例,来比较这两款芯片的处理能力。在Trimedia中,使用IFIR16, DUALUCLIPI, PACK16MSB,MERGEDUAL16LSB这四个DSP指令,一个8点的IDCT需要大概12个周期。在Blackfin中,使用双乘双加指令,可以在21个周期中完成一个8点的IDCT。因为Blackfin的主频是Trimedia的4倍多,单从指令方面看,执行一个8点IDCT,Blackfin是Trimedia的两倍。

  在实际的MPEG-4解码中,需要执行的不是一个8点IDCT,而是一个8*8点的二维IDCT。在上面的对执行指令周期的计算时,一个隐含的前提假设是所有的数据都是在寄存器中。做一个8*8的二维IDCT至少需要32个32位寄存器。因为Trimedia中有128个寄存器,而Blackfin中只有8个数据寄存器,因此,在Blackfin中就不可避免要在2维IDCT执行中作从内存到寄存器的数据传递工作。虽然,在Trimedia和Blackfin中都使用了cache来减少这种数据传递对运算的影响,但这仍然很难完全避免。当cache miss发生时,CPU不得不停下来,等待数据的传入。如果把相同的工作频率为133Mhz的SDRAM与Trimedia和Blackfin连接,则一个Trimedia中的cache miss要耗掉3个时钟周期,而一个Blackfin中的cache miss则要用掉5个时钟周期。所以,虽然Blackfin的芯片主频很高,但因为它的寄存器很少,片内内存不可能存下所有的数据,cache miss就不可避免要发生,此时,他的计算能力就要大打折扣。

  Cache miss对运算速度的影响非常大,尤其是在做motion compensation时,数据在内存和寄存器之间频繁的导入导出。当CPU工作频率和内存频率相差越大,cache miss的影响就越大。当使用adi提供的编译环境visual DSP调试程序并计算cycles时,cache miss是不计算在内的。因此,当把软件仿真的MPEG-4 decoder调试好,放在板子上测试时,就会发现解码时间明显变长,很是失望。

  因为这两款DSP都是为音视频处理设计的,他们都有一些特殊的指令来完成音视频处理。但因为Blackfin只有两个MAC单元,同时只能做两个乘加,比Trimedia的4个乘加差了些。为了弥补这个不足,Blackfin为video 处理的处理设计了一些特殊的指令,可以很方便的完成motion estimation 和compensation。

  在其他方面,Blackfin的二维DMA可以独立快速的完成图像的转置和裁减。Trimedia的图像协处理器可以任意改变图像的大小。他的每一条指令都有guard位,可以选择的执行。

  由此可以看出,一个芯片的处理能力不只由他的工作频率决定,他的指令功能,每个指令的执行周期数,单周期指令数,寄存器个数,cache行为,内外工作频率差都对性能有不可忽视的影响。其他的例如外围数据传递方式,协处理器的功能也不可忽视。另外,有些DSP带有专用于写回cache,可以提高写回速度,减少cache冲突,提高效率。

  第二个选择DSP的方面是看DSP的功耗是否符合要求。实际上,Trimedia和Blackfin这两块DSP在功耗上是不可比的,因为它的设计的针对领域不同。Trimedia是为数字电视,监控设备,机顶盒设计的。他的功耗很大,他的芯片面积大概是Blackfin的4倍,工作时需要加散热片。Blackfin是为手持设备设计的,功耗相当小,加一块1200ma的电池,可以连续播放MPEG-4文件8个小时。Trimedia不可能用在手持设备上,Trimedia最大的使用是在监控设备上,一块片子最多可以做4路CIF编码。Blackfin完全可以移植到手机上,在性价比上完全可以与OMAP一拼。

  在软硬件的调试方面,现在多数的芯片都支持JTAG,调试工具也都大同小异,没太多说的。对于外围的接口,不同的芯片因为设计目的不同,也会有很大差异。还有,有些芯片会有一些bug,非常难查,这对应用厂商会产生致命影响。除了这些方面,还有一个不可忽视的方面是生产厂家对这块DSP的发展计划。千万不要在软硬件都开发好,等待产品上市赚钱时,芯片厂家停产了,那就没地方哭去了。
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-24 07:35 , Processed in 0.044772 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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