TMS320C54x和ADSP218x性能比较
摘要:TI(Texas Instruments)公司的TMS320C54X系列和ADI(Analog Devices Inc.)公司的ADSP218X系列是目前应用广泛的两款主流16位定点DSP芯片。以Geffe发生器和MD5算法的实现为例,通过对这两款芯片性能的详细比较,分析研究了它们各自优缺点。
关键词:DSP芯片 TMS320C54X ADSP-218X 性能比较
从1982年第一片数字信号处理器(Digital Signal Processor,DSP)TMS320C10产生以来,经过二十年的发展,DSP以其卓越的性能、独有的特点,已成为通信、计算机、消费类电子产品等领域的基础器件。业内人干预言,DSP将是未来集成电路中发展最快的电子产品,并成为电子产品更新换代的决定因素,它将彻底变革人们的作、学习和生活方式。
DSP[6][8][9]具有两种算术结构:定点和浮点。从理论上讲,虽然浮点DSP的动态范围比定点DSP大,且更适合于DSP的应用场合,但定点运算的DSP器件的成本较低,对存储器的要求也较低,而且耦电较省。定点运算的可编程DSP器件仍是市场上的主流产品。据统计,目前销售的DSP器件中的80%以上属于16位定点可编程DSP器件。其中,TI公司的TMS320C54X系列和ADI公司的ADSP-218X系列是目前广泛使用的主流定点DSP芯片。下面就以它们为研究对象,结合Geffe发生器[7]和MD5算法的实现,对其性能进行分析比较。由于TI的TMS320VC5402和ADI的ADSP-2186N是使用较多的两款,硬件性能指标又相近,有很好的可比性,所以编程实现时选择它们为具体芯片。虽然两款DSP芯片都提供C编译器,但是因为效率都不高,这里我们就不作讨论。下面的论述都是基于直接用汇编语言编程的。
1 Geffe发生器与MD5算法
先简单介绍一眄两个算法。Geffe发生器是一种密钥序列发生器,它利用线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)产生序列密码。Geffe发生器使用了三个LFSR,它们以非线性方式结合,其中两个LFSR作为复合器的输入,第三个LFSR控制复合器的输出。因为运算量很大,所以LFSR用软件实现起来比较慢,但是用汇编语言实现比用C语言实现快。
MD5(MD,即Message Digest)是一个单向散列函数,它对输入消息产生128位散列值(或消息摘要)。该算法需要进行大量的移位和逻辑操作,用DSP实现比较方便。
2 TMS320C54X系列与ADSP-218X系列性能比较
2.1 硬件结构[1][4][5]
TMS320C54X系列采用改进的Harvard结构体系,有一组程序总线和三组数据总线、高度并行性的算术逻辑单元ALU、乘法/累加器MAC、桶形移位器、缓冲串口、专用硬件逻辑、片内存储器、片内外设和高度专业化的指令集等等。支持32位长操作数指令,支持并行存储和并行装入的算术指令。
ADSP-218X系列借装了TMS320X系列的优缺点,重新设计。它也是采用改进的Harvard结构体系。ALUMAC、桶形移位器这三个独立的运算部件均可以单周期操作。还有丰富的双缓冲串口、中断(分外中断和内中断)等。在TMS320C54x系列中,程序存储区和数据存储区是混在一起的,而ADSP-218X系列从物理上就将两者分开,这就使多功能指令操作显得非常方便。因此,ADSP-218X系列程序实现更有高效性。
两款芯片主要技术指标的比较如表1所示。
表1 两款DSP芯片主要技术指标比较
比较项目 | MIPS | Cycle Time/ns | RAM/千字 |
TMS320C54X | 30~532 | 33.3~1.88 | 5~640 |
ADSP-218X | 33~80 | 30~12.5 | 8~104 |
可见,两款系列芯片性能指标的选择范围都很大,而TSM320C54X系列的选择空间更大一些。具体到本文选用的TMS320VC5400和ADSP-2186N,主要参数(MIPS/Cycle Time/RAM)为:TMS320VC5402是100/10ns/16kword,ADSP-2186N是80/12.5ns/16Kword。这两种芯片的硬件性能指标相仿,用它们实现相同的算法,具有很好的可比性。
2.2 程序编程[2][3][4][6]
下面分别用TMS320VC5402和ADSP-2186N实现Geffe发生器和MD5算法,以此来比较两款芯片在编程过程中的优劣。其中,Geffe发生器产生96字的序列,MD5处理的消息长63个字。
2.2.1 指令系统概述
ADSP-2186N指令系统使用代数符号来表示算术运算和数据传送,源代码具有较高的可读性,且不会损坏运行特性。它的指令系统很精简,程序员可以快速掌握。ADSP-2186N的编程方式和高级语言类似,如果用户有高级语言编程的经验,上手较快。
TMS320VC5402指令系统很丰富,灵活多变,虽然使用时很方便,但是完全掌握却有一定的困难,这对程序员来说是个不小的难题。它的指令系统有传统的助记符和代数符号两种方式,程序员可以根据所好任选一种。助记符方式对于习惯了汇编语言的开者易于接受,代数符号方式则表达简洁、较为直观、易于理解。但是,合作完成项目时,往往会由于不同的程序员选择不同的格式而造成麻烦。解决的方法有两个,一是使用TI提供的转换工具,另一是只将两者的obj文件链接调试,但调试时有些方便。
另外,两者的编译环境也有差别。相比较而言,ADSP-2186N的界面要友好一些,它和VC++非常相像,很方便。
2.2.2 指令的“单周期性”
ADSP-2186N的每条程序语言都汇编成仅需一个执行周期的24位指令机器码。它完全在并行处理方式下工作,所有的