DSP技术及应用结课论文内容C62/64XX芯片的体系结构C62/64XX的开发环境C6201在医学领域上的应用C62/64XX开发板资源C62/64XX芯片的体系结构TMS320C6000简介美国TI公司发布的DSP芯片TMS320C6000包括TMS320C62xx和TMS320C64xx两个定点系列和TMS320C67xx浮点系列,二个系列相互兼容。C6000系列DSP主要特点:1)采用了VelociTI甚长指令字(VLIW,VeryLongInstructionWord)结构,可以单周期发射多条指令,实现很高的指令级并行效率。2)统一的开发工具3)管脚和代码兼容C62/64XX系列CPU结构介绍TMS320C62XX/C64XX/C67XX结构框图图中阴影部分为CPU,它包括:1、程序读入及指令译码、分配机构2、程序执行机构3、芯片测试和仿真端口及其控制逻辑。C62/64XX系列CPU结构介绍程序执行机构包括1)2个对称数据通路A和B,每组数据通路有读入及存储(写出)数据总线与片内数据存储器相连。2)2个对称的通用寄存器组3)2组对称的功能单元(每组4个)4)控制寄存器组和控制逻辑以及中断逻辑等C62XX系列CPU结构介绍2个对称的可进行数据处理的数据通路(A和B)16个(C64x有32个)32位通用寄存器4个功能单元(.L、.S、.M和.D)16个(C64x有32个)32位通用寄存器4个功能单元(.L、.S、.M和.D)每个数据通路的4个功能单元有单一的数据总线连接到CPU另一侧的寄存器上数据通路A数据通路BCPU数据通路与控制TMS320C62XXCPU数据通路CPU数据通路与控制TMS320C64XXCPU数据通路CPU数据通路与控制C62xx和C64xx有类似的数据通道都包括:2个通用寄存器组(A和B)8个功能单元(.L1、.L2、.S1、.S2、.M1、.M2、.D1和.D2)2个数据读取通路(LD1和LD2)C64xx每侧有2个32位读取总线,C62xx每侧只有1个32位读取总线。2个数据存储通路(ST1和ST2)C64xx每侧有2个32位存储总线,C62x每侧只有1个32位存储总线。2个寄存器组交叉通路(1X和2X)2个数据寻址通路(DA1和DA2)CPU数据通路与控制通用寄存器的作用1、存放数据,作为指令的源操作数和目的操作数。2、作为间接寻址的地址指针,其中用于循环寻址的寄存器为A4-A7和B4-B7。3、条件寄存器为A1,A2,B0,B1,B2,C64x中A0也可以用作条件寄存器。通用寄存器组支持32位和40位定点数据,C64x也支持64位双精度数据,32位数据可以存放在任一通用寄存器内,对于40位和64位数据,需跨放在两个寄存器内。CPU数据通路与控制TMS320C62xxCPU数据通路功能单元•每个功能单元都有各自到通用寄存器的读写端口,其中2个32读端口,1个32写端口。•.L1、.L2、.S1和.S2另有8位读端口和写端口,支持40位操作数的读写。•同一周期8个功能单元可并行使用。•C64x的.M单元可以返回64位结果,所以它还多了一个32位写端口。.M单元longdst是32MSB,dst是32LSB。功能单元定点操作.L单元(.L1,.L2)32/40位算术和比较操作32位中最左边1或0的位数计数32位和40位归一化操作32位逻辑操作字节移位数据打包/解包5位常数产生双16位算术运算4个8位算术运算双16位极小/极大运算4个8位极小/极大运算.S单元(.S1,.S2)32位算术操作32/40位移位和32位位域操作功能单元定点操作.S单元(.S1,.S2)32位逻辑操作转移常数产生寄存器与控制寄存器数据传递(仅.S2)字节移位数据打包/解包双16位比较操作4个8位比较操作双16位移位操作双16位带饱和的算术运算4个8位带饱和的算术运算.M单元(.M1,.M2)16×16乘法操作功能单元定点操作.M单元(.M1,.M2)16×32乘法操作4个8×8乘法操作双16×16乘法操作双16×16带加/减运算的乘法操作4个8×8带加法运算的乘法操作位扩展位交互组合与解位交互组合变量移位操作旋转Galois域乘法.D单元(.D1,.D2)32位加、减、线性及循环寻址计算带5位常数偏移量的字读取与存储带15位常数偏移量的字读取与存储(仅.D2)带5位常数偏移量的双字读取与存储无边界调节的字读取与存储5位常数产生32位逻辑操作CPU数据通路与控制功能单元.L1,.S1,.M1.D1(仅C64x)A组寄存器B组寄存器功能单元.L2,.S2,.M2.D2(仅C64x)1x2x寄存器组交叉通路•CPU中有两个交叉通路1X和2X。•1X:允许A侧功能单元读取B组寄存器数据。•2X:允许B侧功能单元读取A组寄存器数据•每侧仅有一个交叉通路,在同一周期内从另一侧寄存器组读操作数只能一次,或者同时进行使用2个交叉通路(1X和2X)的操作•.S,.M,.D功能单元仅src2可以使用另一侧寄存器数据•仅C64系列的.D能使用交叉通路CPU数据通路与控制A组寄存器B组寄存器.D1.D2LD1a32MSBST2b32LSBLD2b32LSBDA1DA2LD1b32LSBLD2a32MSBST1b32LSBST1a32MSBST2a32MSBTMS320C64x存储器读取通路数据存储器及读取存储通路•在C62xx的CPU中,有2个32位通路(每侧1个)把数据从存储器读取到寄存器(Load指令)。•C67xx和C64xx除此之外,还有第2个32位读取通路,图中的LD1a,LD2a。•C62xx/C67xx有2个32位写数据通路ST1和ST2,可分别将各组寄存器的数据存储到数据存储器(Store指令)。•C64xx支持双字存储,还有第2个32位存储通路,图中的ST1a和ST2a。CPU数据通路与控制2个数据地址通路DA1,DA2•允许寄存器产生的数据地址支持同侧寄存器到存储器的存取操作.•也允许寄存器产生的数据地址支持另一侧寄存器到存储器的存取操作ST1a32MSBST1a32MSBST1b32LSBTMS320C64x存储器读取通路控制寄存器TMS320C67xx除上述控制寄存器外,为支持浮点运算,还另外配置了3个寄存器控制浮点运算。TMS320C64xx另外配置了一个寄存器控制Galois生成多项式函数,称为GFPGFR。控制寄存器缩写控制寄存器名称描述AMR寻址模式寄存器指定是否使用线性或循环寻址,也包括循环寻址的尺寸CSR控制状态寄存器包括全局中断使能位、高速缓冲存储器控制位和其它各种控制和状态位IFR中断标志寄存器显示中断状态ISR中断设置寄存器允许软件控制挂起的中断ICR中断清除寄存器允许软件清除挂起的中断IER中断使能寄存器允许使能/禁止个别中断ISTP中断服务表指针指向中断服务表的开始IRP中断返回指针保存从可屏蔽中断返回时的地址控制寄存器访问控制寄存器使用:搬移MVC指令仅功能单元.S2可通过MVC指令访问控制寄存器,从而对控制寄存器进行读写操作。控制寄存器组.S2控制状态寄存器控制状态寄存器字段描述位置宽度字段名功能31-248CPUIDCPUID(识别号),定义哪个CPU23-168REVID修订版号15-106PWRD控制低功耗模式,该值读时总为零91SAT饱和位,当功能单元执行一个饱和位时被设置,饱和位只能靠MVC指令清除和一个功能单元设置。当清除和设置在同一周期内同时发生时,由功能单元的设置优先于MVC指令的清除。饱和位在饱和发生后一个周期被设置81EN端位:1=小端位0=大端位7-53PCC程序高速缓冲存储控制模式4-23DCC数据高速缓冲存储控制模式11PGIE前GIE(全局中断使能),当一个中断发生时,保存GIE01GIE全局中断允许,允许(1)和禁止(0)除复位和不可屏蔽中断之外的所有中断。C6000芯片公共指令集概述.SUnitADDADDKADD2BBIRPBNRPBregCLREXTMVMVCMVKMVKHNOTNEGORSETSHLSHRSSHLSUBSUB2XORZERO.MUnitMPYMPYHMPYHLMPYLHSMPYSMPYH.LUnitABSADDANDCMPEQCMPGTLMBDMVNORMNOTNEGORSADDSATSSUBSUBSUBCXORZERO.DUnitADDADDALDSTSUBSUBAOtherNOPIDLEC62/64xx指令集(根据功能单元分类)TMS320C6400系列扩展了88条指令,这些指令的扩展建立在其CPU结构改进基础之上。①与C6000公共指令集的指令功能及运行完全一致,只是增加了可执行这些指令的功能单元。这类指令共有6条,如AND指令,C62x/C67x里,只有.L和.S功能单元可以运行,在C6400系列里,.D功能单元也可运行。②与C6000公共指令集内对应指令的功能及运行基本一致,主要差别是指令操作数的类型增加了。③新增指令48条,例如求点积和的指令DOTP2、Galois域乘法运算指令GMPY4和数据打包与解包指令PACK2/UNPKHU4等。C6000芯片公共指令集概述指令操作码映射指令域并行执行目的寄存器为A组或B组指定条件寄存器是否等于零的测试源2使用交叉通路TMS320C6000.L/.M指令操作码映射图指令操作码映射基址寻址寄存器寄存器偏移量/5位无符号常量寻址模式LDDW位选择D1或D2load/store指令域TMS320C6000.D指令操作码映射图指令操作码映射TMS320C6000NOP指令操作码映射图并行操作取指包:八条32bit指令执行包:所有并行执行的指令组成一个执行包,最多包含8条指令。执行包中的每一条指令使用的功能单元必须各不相同。每条指令的并行执行位(p位)控制本条指令是否与取指包中的其他指令并行执行:p=1与下条指令并行p=0下条指令在当前指令的下个周期执行取指包的基本格式并行操作例:一个取指包分为几个执行包时,各指令的并行执行位(P位)模式条件操作creg指定条件寄存器z=1,进行零测试,即条件寄存器内容为零时为真z=0,进行非零测试,即条件寄存器内容为非零时为真creg=0,z=0,意味着指令将无条件地执行在书写汇编程序时,以方括号对条件操作进行描述,方括号内是条件寄存器的名称,即A0(仅C64X)A1,A2,B0-B2。例如:[A2]ADD.L2B1,B2,B3;ADD指令在A2非零时执行[!A2]ADD.L2B1,B2,B3;ADD指令在A2零时执行寻址方式寻址模式寄存器(AMR)寻址方式寻址模式模式(Mode)描述00线性寻址(复位缺省)01循环寻址,使用BKO字段10循环寻址,使用BK1字段11保留C62/64XX的开发环境TI公司针对TMS320C6000系列的数字信号处理器,推出了一种CCS集成开发软件。在这种CCS集成开发软件的环境下,C编译器的效率可达80%,若将新的线性汇编语言和TMS320C6000汇编优化器配合使用,可使代码效率高达95%以上。DSPCCS工程文件构成(1)源文件(*.c*.asm)(2)头文件(*.h*.inc)(3)cmd文件,分为2种:一种是用来分配RAM空间的,用来将程序下载到RAM内调试,因为开发过程中大部分时间在调试程序,因此多用这类cmd;另一种是分配Flash空间的,当程序调试完毕后,需要将其烧写到Flash中固化。(4)库文件(*.lib*.dll)库文件包含了寄存器的地址和对应标示符的定义,还包括了标准C/C++运行支持库函数。*.lib为静态库文件,在编译时调用,调用时直接加载到内存;*.dll为动态库文件,在运行时调用。创建DSPTMS320C62XX工程准备工作:(1)从下载C6XCSL及其文档C6XCSL为DSPC6000系列的芯片支持库(TMS320C6000ChipS