您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

TMS320C54x和ADSP218x性能比较

时间:2007-1-20栏目:电子通信论文

m_seq_l2:

……

不过,若以正常语序执行if语句时,a、b的值会因为时延不够,来不及改变而导致程序出错。为避免这种情况,要么在句3和句2以及句1和句4之间分别加上若干个空操作(nop),这样就会影响速度;要么调整它们的顺序,如实际应用中的句1、句2、句3、句4.有时候,语句顺序实在无法调整,就不得不加上一些空操作。尤其是循环的主体部分,往往一条语句处理的不好,就会导致整个程序多运行成千上万条指令。因此,TMS320C54系列编程对程序员的要求较高,必须非常熟悉指令系统,才可以得到高效的程序。

2.2.3 对数组的循环操作

关于对数组进行循环操作,两者平分秋色。它们都支持寄存器地址自动加减。只不过ADSP-2186N的调试界面看上去更直观些。

2.2.4 对32位长操作数操作

ADSP-2186N不支持32位操作,如果需要的话,必须多条指令共同完成。而TMS320VC5402经过简单的设置,就可以直接进行一些32位操作。

例如,MD5算法中4轮主循环都需要大量的32位逻辑运算及加法操作。

表2示出“与”运算和加法的实例,显然,用TMS320VC-2186N实现时,必须将32位分为高16位和16位分别操作,最后再整合。这也是为什么在实现MD5算法时,用ADSP-2186N实现不如TMS320VC5402有效的主要原因。

表2 分别用TMS320VC5402和ADSP-2186N实现32位与运算和加法

  实现32位与运算 实现32位加法运算 TMS320VC5402实现 a=db1(*ar2);
b=b & a;
b=b+db1(*ar1); b=db1(*ar3); ADSP-2186N实现 ay0=DM(i0,m1);
ar=ax0 and ay0,
ay1=DM(i0,m1);
sr0=ar;
sr1=ar; ay0=DM(i0,m1);
AR=AX0+AY0,
ay1=DM(i0,m1);
AR=AX1+AY1+C,AX0=AR;
AR;
AX1=AR;

另外,两者在编程时还有一些不同,例如,TMS320VC5402有标号必须顶格写等要求。总的来说,TMS320VC5402指令系统中有不少的“禁忌”,需要经验积累才可以发现,这就给编程者带来了不便。两款DSP芯片实现Geffe发生器和MD5算法的具体结果如表3所示。

表3 分别用两款DSP实现密码算法的结果分析(两者均在各自的最高主频下工作)

  比较项目 程序大小/字 需要指令周期数 需要时间/μs Geffe发生器 TMS320VC5402
ADSP-2186N 252
188 444,816
268,299 4,448.16
3,353.74 MD5算法 TMS320VC5402
ADSP-2186N 900
436 3,400
3,009 34.00
37.61

可以看出,实现Geffe发生器时,ADSP-2186N较快,主要是因为其指令系统的单周期性;实现MD5算法时,TMS320VC5402稍快,主要原因是它支持32位操作。

2.3 其它

总而言之,从技术上看,ADSP-218X系列稍占优势。但目前的实际情况是:1999年TI占有全球DSP市场48%的份额,市场排名第一。2000年其市场占有率也是第二名的两倍多。尤其在中国,高层占有率在80%左右。主要原因如下:

第一是价格。性能相近的芯片,TI比ADI要便宜很多。如TMS320VC5402的单片价格为$5.66,ADSP-2186N的单片价格则为$8.50。从性价比看,TI占优势。从产品效益看,如果大指生产,显然TI的芯片实惠。

第二是服务。这里指的是指生产商提供的服务。TI公司有非常完善的服务体系,从产品宣传

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页