Rosemount罗斯蒙特 3051GP4A2B21AB4M5K5HR5
如图1所示C55x DSP内核结构可知,整个处理器的地址及数据运算由P单元、A单元和D单元完成。这三个单元相对***,各自通过总线与数据区及程序区相连。这种相互***的模块化结构,在硬件特性上确保这三个单元在同一时钟周期内能够进行并行处理,完成各自不同的运算操作。
在C55x DSP指令集中有一些固定搭配的并行执行指令(主要是利用D单元双MAC结构的并行指令),这些被固定使用的并行指令之间使用“::”符号连接。除了这些固有的并行指令外,用户也可以根据CPU结构特征自行定义并行指令,并行的两条指令之间需使用“||”符号连接,以区分指令集中的并行指令。
用户自定义并行指令时,必须遵守如下3条并行处理基本规则:
规则1: 保证不产生硬件冲突,包括操作数、寄存器、总线及各运算模块的冲突。在对C55x DSP的所有操作中,对P、A、D三个单元进行操作的指令类型有14类,这14类操作指令之间有很大一部分可以相互并行运行。经过我们对C55x DSP硬件电路结构的分析,在只考虑硬件模块冲突的情况下,我们得出如图2所示的C55xDSP并行处理能力分析图。图中将14类操作指令组成了一个14 ×14的矩阵,列出了每一类指令与其自身及其他13类指令并行执行的能力。图中画有(符号的空格代表不能并行执行,相反没有任何符号的空格代表可以并行执行。
在考虑并行处理的硬件冲突时,还需要考虑总线资源的冲突。总线资源的冲突通常发生在数据总线和常量总线,C55x DSP中含有5条数据总线和2条常量总线,各条总线与各运算模块的连接如图3所示。
数据总线中,C、D总线是读数据总线,通过这两条总线进行数据读取;E、F总线是写数据总线,通过这两条总线进行数据写操作;另外还有一条特殊的B总线,这条总线可以进行读或写操作,但是它只能被CDP寄存器使用,而其它辅助寄存器无法使用B总线。
两条常量总线分别是KA、KD总线。KA常量总线用于产***址数据。P单元的KA常量总线负责产生程序地址,例如跳转指令B #Routine2中,常量#Routine2就是通过KA常量总线被送到P单元的。A单元的KA常量总线负责产生数据存储区地址,例如在指令 Mov*SP(#7),Brc0中,偏移量#7就是通过KA常量总线被送到A单元的。KD总线用于传送参与运算的常量数据,例如指令ADD #123,AC0中,常量123就是通过KD总线传送的。
规则2:受指令缓冲队列(IBQ)的限制,并行语句的总长度不能超过6个字节。 I单元中的译码器只能将IBQ中的1~6个字节的程序进行译码。如果一条并行语句的长度超过6个字节,则需要在两个时钟周期内对其进行两次译码。因此必须将两条并行语句的总长度限制在6个字节。
规则3:当需要寻址两个及以上数据存储区数据时,必须使用双重AR间接寻址方式。

各条总线与各运算模块的连接图
图3
采用双重AR间接寻址方式,可以通过使用2个不同的辅助寄存器(AR0~AR7)同时访问数据存储区中两个不同的数据。在这种寻址方式下,我们可以通过两条不同的数据总线,在同一时钟周期内寻址两个不同数据,并将其输入不同的运算模块进行计算。
常用并行处理应用
在编程实现过程中,对每一个并行处理都进行仔细分析将能达到事半功倍的效果。下面是我们总结出的几种典型并行处理应用:
1. D单元双MAC结构的并行处理
在C55x DSP的D单元中采用了双MAC的结构,其结构如图4所示。这里有3条数据总线(B、C、D数据总线)与两个MAC模块相连。在同一时钟周期里,可以同时通过3条数据总线将三个不同地址的数据传入两个MAC模块中进行并行计算。[next]
通常情况下,两个MAC模块的运算总共需要4个数据,而这里的总线数却只有3条,所以在并行使用双MAC结构时,两个MAC模块必须共用一组数据,而另外两组数据分别分配给两个MAC模块。这使得双MAC结构的并行应用受到一定的限制。
C55x的双MAC结构比较典型的应用如不同数据的相同算法处理和同一数据的不同算法处理。下面是对不同数据进行相同FIR滤波的实例:
1771-A4BK 1771-VHSCK
1771-AM1 1771-RT41
1771-AM2 1771-RT44
1771-RK 1771-RTP1
1771-DS 1771-RTP3
1771-DW 1771-RTP4
1771-IA 1771-WA
1771-IAD 1771-WB
1771-IADK 1771-WC
1771-IAN 1771-WD
1771-IB 1771-WE
1771-IBD 1771-WF
1771-IBDK 1771-WG
1771-IBN 1771-WH
1771-IBNK 1771-WHF
1771-IC 1771-WHFB
1771-ICD 1771-WI
1771-ID 1771-WN
1771-ID01 1771-AF
1771-ID16 1771-AF1
1771-ID16K 1771-CPR
1771-IDK 1771-PT4
1771-IG 1771-ACN15
1771-IGD 1771-ACNR15
1771-IH 1771-CX1
1771-IM 1771-CX10
1771-IMD 1771-CX15
1771-IN 1771-CX2
1771-IND 1771-CX20
1771-INGA50 1771-CX25
1771-IQ 1771-CX30
1771-IQ16 1771-CX5
1771-IQ16K 1771-CX7
1771-IS 1771-CXT
1771-IT 1771-DA
1771-IV 1771-DB
1771-IVN 1771-DCM
1771-OA 1771-CD
1771-OAD 1771-CE
1771-OADK 1771-CL2
1771-OAN 1771-CP1
1771-OB 1771-CP2
1771-OBD 1771-CP3
1771-OBDK 1771-CT
1771-OBDS 1771-P10
1771-OBDSK 1771-P2
1771-OBN 1771-P4R
1771-OBNK 1771-P4RK
1771-OC 1771-P4S
1771-OD 1771-P4S1
1771-OD16 1771-P4SK
1771-OD16K 1771-P5
1771-ODD 1771-P5E
1771-ODDK 1771-P5EK
1771-ODK 1771-P5K
1771-ODZ 1771-P6R
1771-OG 1771-P6S
1771-OGD 1771-P6S1
1771-OM 1771-P7
1771-OMD 1771-P7K
1771-ON 1771-PS7
1771-OND 1771-PS7K
1771-OP 1771-PSC
1771-OQ 1771-PSCC
1771-OQ16 1771-EX
1771-OQ16K 1771-EZ
1771-OR 1771-XB
1771-OVN 1771-XL
1771-OW 1771-FC
1771-OW16 1771-FD
1771-OW16K 1771-FD2
1771-OWK 1771-FE
1771-OWN 1771-FF
1771-OWNA 1771-KE
1771-OX 1771-KF
1771-OXK F1771-ACN15SERB
1771-OYL F1771-ACNR15SERB
1771-OZL F1771-ACNSERA
1771-OZLK F1771-ACNSERB
1771-SIM F1771-ASBSERA
1771-IFE F1771-ASBSERB
1771-IFEK F1771-ASBSERC
1771-IFF F1771-ASBSERD
1771-IFMS F1771-ASBSERE
1771-IL F1771-ASC
1771-ILK F1771-DA
1771-IR F1771-DBSERA
1771-IRK F1771-DMCU
1771-IXE F1771-ESCSERA
1771-IXEK F1771-ESCSERB
1771-IXHR F1771-IEC
1771-NB4S F1771-IFC
1771-NB4T F1771-IFESERA
1771-NBRC F1771-IFESERB
1771-NBSC F1771-ILSERA
1771-NBTC F1771-ILSERB
1771-NBV1 F1771-ILSERD
1771-NBVC F1771-IRSERA
1771-NC15 F1771-IRSERB
1771-NC6 F1771-IRSERC
1771-NIS F1771-IXESERA
1771-NIV F1771-IXESERB
1771-NIV1 F1771-IXESERC
1771-NIVR F1771-KA
1771-NIVT F1771-KA2
1771-NOC F1771-KE
1771-NOV F1771-KF
1771-NR F1771-KGM
1771-NT1 F1771-KGSERA
1771-NT2 F1771-KGSERB
1771-OFE1 F1771-M1
1771-OFE1K F1771-M3SERA
1771-OFE2 F1771-M3SERB
1771-OFE2K F1771-NXXSERA
1771-OFE3 F1771-NXXSERB
1771-QD F1771-OFC
1771-QDC F1771-OFE1SERA
1771-QI F1771-OFE2SERA
1771-CFM F1771-PD
1771-ACN15 F1771-PM
1771-ACNR15 F1771-QBSERA
1771-SDN F1771-QBSERB
1771-AR F1771-QBSERC
1771-CG F1771-QDCSERA
1771-DMC F1771-QDCSERB
1771-DMC1 F1771-QDCSERC
1771-DM*** F1771-QDCSERD
1771-PT1 F1771-QDSERA
1771-PT2 F1771-QDSERB
1771-PT3 F1771-SDNSERB
1771sc-IFE32 F1771-SN
1771sc-IMI16 F1771-TCMRSERA
1771sc-ICI16 F1771-TCMSERA
1771sc-OMI16 F1771-TCMSERB
F1771-TCMSERC
F1771-VHSCSERA
F1771-VHSCSERB
