保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

TMS320C54x和ADSP218x性能比较


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位指令机器码。它完全在并行处理方式下工作,所有的指令都是真正的单周期指令。除了访问慢速的外部存储设备,或者外部存储器出现控制权竞争而需要附加周期的情况外,任何指令的运行一般仅需一个周期。由于它的指令系统没什么“禁忌”,所以程序员大可像编写高级语言程序一样,只需要考虑算法如何实现,至于编程过程就可以不太注意。

可是,TMS320VC5402的指令系统却不是这样。TMS320VC5402的各个单元是基于流水线方式的结构,指令按流水线方式工作。它的大多数指令在单独执行时并不能在一个周期内完成,只是在流水线方式下工作或重复操作的,才可以做到平均每一个周期执行一条指令。因此,在它的指令系统中,不仅有不少的指令需要多个执行周期,而且由于“时延”的原因,如果处理的不好,还会出现额外的附加周期。因此为了保证每条指令准确执行,有时就不得不把程序打乱,就是说,相关联的几条语句要分散插入别的地方。程序的模块化遭到损害,显得杂乱无章,大大影响了可读性。

如下面语句中的句1、句2、句3、句4(选自Geffe发生器)是我们实际应用的形式(指令用代数符号格式,下面如果不特别指出,均为这要您)。

m_seq_ll: ;标号

……

b=a & #1 ;句1

if(aeq)goto m_seq_12 ;句2,if a=0,goto m_seq_12

a=a>>1 ;句3

if(beq)goto m_seq_11 ;句4,if b=0,goto m_seq_11

……

m_seq_12:

……

但是,它们正常语序则应该为

m_seq_11: ;标号

……

a=a>>1 ;句3(若这样,a的初始值随之改变)

if(aeq)goto m_seq_12 ;句2,if a=0,goto m_seq_12

b=a & #1 ;句1

if(beq)goto m_seq_11 ;句4,if b=0,goto m_seq_l1

……

《TMS320C54x和ADSP218x性能比较(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145401.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。