|
TMSS320C5X是TMS320C2X的增强型DSP芯片,其增强的并行结构使得TMS320C5X的速度是TMS320C25的二倍以上。TMS320C2X的汇编语言在源代码级与TMS320C5X向上兼容,TMS320C2X的汇编程序稍作修改并用TMS320C5X的汇编器重新汇编后就可以在TMS320C5X上运行。TMS320C5X的指令集是TMSS320C25指令集的超集,它在TMS320C2X的基础上作了改进并增加了一些功能更强的指令,充分利用这些增强特性可大大提高TMS320C5X的程序效率。
A.利用片内存储器的双映射特性
TMS320C5X具有1O56字的片内双存取存储器,比TMS320C25多5l2字。虽然使用这种类型存储器的效率很高,但同时成本也较高。TMS320C5X内部另一种存储器是单存取存储器,TMS320C53和C5l分别具有3K和IK字的单存取存储器,而C50具有8K字。这种存储器块的一个特点是同时可以映射至程序和数据空间。这种双映射的特点对于实现诸如自适应FIR滤波器(如横向滤波器)非常有用。乘/加循环要求F1R滤波器的系数在程序空间中,但同时相同的系数表需在数据空间中被更新。将这个系数表存放于片内的单存取存储器中并利用其双映射特点可使横向滤波器实现的效率更高。’
B.利用无开销循环。
在TMS320C25中,只提供了用于单指令重复的RPR/RPTK指令,要实现多于一条指令的循环必须来用寄存器不为零跳转的BANZ指令,这样每次循环实际上增加了3个指令周期。 TMS320C5X不仅提供了单指令重复指令RPT,而且提供了块指令重复指令RPTB,因此, TMS320C5X可以实现块指令的无开销循环。例如。
LACL #99
SAMM BRCR ;循环100次
RPTB LOOP-1
LAC *,16,AR1
MPYA *,+AR2
SACH *0-
LOOP:
复制代码
C.嵌套循环的商效编程
在许多DSP应用程序中需要用到嵌套循环。如求10阶自相关需要用到二级嵌套循环,内循环计算每个自相关系数,外循环进行计数。如果内循环可以用RPT实现,则外循环可以用RPTB指令实现。如果内循环不能用一个RPT实现循环,也可以用延迟跳转循环来实现(如AR不为零延迟跳转BANZD)。最多可以有8个这佯的BANZD循环嵌套,每个循环用一个辅助寄存器作循环计数器。
D.使用CRGT和CRLT搜索最大/最小值
TMS320C5X提供了用于高效搜索最大和最小值的特殊指令CRGT和CRLT,这两个指令比较累加器ACC和累加器缓冲器ACCB之间的大小,比较之后将最大或最小值存放于ACCB中。例如下面一段程序用于在300H至309H存储单元中搜浆最大值并得到其地址。
MAXADR .set 60H
MAXVAL .set 61Hu
.TEXT
LDP #0 ;DP=0
LAR AR0,0300H
SETC SXM
LACC #0800H ;装人-个是小值
;(如果找最小值则装入7FFFH)
SACB ;送至ACCB
SPLK #9,BRCR ;重复10次。。
RPTB endb-1
LACC * ;取数至ACC
CRGT ;比较(如果找到最小值CRGT指令)
SACL MAXVAL ;保存具大值
XC #1.c
SAR AR0,MAXADR ;保存地址
MAR *+
Endb: RET。
复制代码
E.利用循环寻址方式
TMS320C5X提供了循环寻址方式,这种寻址方式在实现F1R滤波器时非常有用。一般实现自适应FIR滤波器采用具有数据移动操作的乘/加指令MACD,在C5X中,可以用循环寻址方式代替数据移动操作来更新滤波器的铀头系数。如果滤波器的抽头在片内的单存取存储器,则这种方式的运行速度更快。
F.利用延迟跳转和条件运行
TMS320C2x具有3级深度的流水线,而C5X具有4级深度的流水线。C5X 4级深度的流水线使芯片的并行性能更强。然而,流水线越深,清空流水线的周期越长。正常眺转时,由于需要清空流水线,因此需要4个周期才能实现。相比而言,C2X仅需3个周期。但是,对C5X而言,所有需要清空流水线的指令都支持延迟执行功能,使运行开销降低至2个周期。此外果是仅跳转一个或两个指令这种特殊情况,可以使用速度更快的条件运行指令XC,此时仅一个周期。
G.并行进辑单元
TMS320C5X的比特操作单元与算术逻辑单元是独立运行的。这可使C5X在没有ACC或ACCB参与的倩说下对片内或片外存储器单元(包括存储器陕射的寄存器)进行进辑操作。例如:
SMMR DRR, #DRR_DATA
LMMR DXR, #DXR_DATA
0PL #RXDATA, SP_FLG
APL #TXDATA, SP_FLG
复制代码
H,增强的移位功能
TMS320C2X具有较强的移位功能,如取操作数至ACC时带0--16位左移、存ACC时带0--7位左移、根据TREG1寄存器进行左移的取数指令LACT、ACC左移一位ROL和ACC右移一位ROR等。TMS320C5X在此基础上增加了ACC右移1--16位的指令BSAR和根据TREGl寄存
器值进行16位右移指令SATH及0--15位右移指令SATL。例如:
BASR 7 ;ACC=ACC >> 7
LMMR TREG1,1BH
SATH ;ACC=ACC >> 16,因为TREG1.4=1
SATL ;ACCC=ACCD >> ll
复制代码
此外,C5X还具有对ACC、ACCB和进位位组成的65位数据进行移位的指令。
I.存储器映射寄存器
TMS320C5X提供了累加器与寄存器之间的直接通路,这是将寄存器映射至数据存储器而实现的。同时,TMS320C5X也支持存储器和寄存器之间的直接数据交换。例如:
SPLK #l6, INDX
SAMM PRD
|
|