《tms320c54xtmdsp硬件结构》由会员分享,可在线阅读,更多相关《tms320c54xtmdsp硬件结构(229页珍藏版)》请在金锄头文库上搜索。
1、第2章 TMS320C54xTM DSP硬件结构,2.1 概述 2.2 基本结构和引脚功能 2.3 中央处理单元(CPU) 2.4 存储器和I/O空间 2.5 流水线 2.6 片内外设 2.7 节电模式 2.8 外部总线及扩展 习 题,2.1 概 述,C54x DSP是TMS320C5000TM DSP平台中最为成熟的芯片,已在通信等领域得到了广泛应用。本章介绍C54x DSP芯片的硬件结构。重点介绍其中TMS320VC5402(以下简称VC5402)芯片的一些资源特点。,2.2 基本结构和引脚功能,2.2.1 基本结构 图2.1给出了C54x DSP的结构框图。C54x DSP的基本结构围绕
2、8条总线(4条程序/数据总线和4条地址总线),有中央处理器(CPU)、存储器及片内外设与专用硬件电路三类。CPU包括算术逻辑单元(ALU)、累加器(ACC)、乘累加单元(MAC)、移位寄存器和寻址单元等。存储器包括片内ROM、单访问RAM(SARAM)和双访问RAM(DARAM)。片内外设与专用硬件电路包括片内各种类型的同步串口、主机接口、定时器、时钟发生器、锁相环及各种控制电路。,图2.1 C54x DSP方框图,C54x DSP系列芯片种类很多,但体系结构基本一致。不同型号的C54x DSP芯片CPU结构与功能完全相同,其差异主要体现在存储器容量、片内外设、供电电压、速度以及封装上。表2.
3、1列出了不同型号C54x DSP系列芯片的主要特征。其中,“*”表示该芯片有1个时分复用串口(TDM),“!”表示有1个缓冲串口(BSP)(C548/9有2个),“?”代表多通道缓冲串口(MCBSP),“#”代表不同的锁相环(PLL)选项,“”表示每个核有6通道直接存储器访问(DMA)器件。,表2.1 C54x DSP芯片的主要特征,表2.1 C54x DSP芯片的主要特征,VC5402是目前最流行的低成本DSP芯片型号,其基本结构和主要特点包括: * 多总线结构。片内三套16bit数据总线(CB、DB、EB)和一套程序总线(PB)以及对应的4套地址线(CAB、DAB,EAB、PAB(4套总线
4、可同时操作); * 40 bit算术逻辑单元ALU,包括40 bit桶形移位器和2个40 bit累加器A和B; * 17l7 bit乘法器和一个40 bit专用加法器,可以在单周期内完成乘、加运算各一次; * 比较选择存储单元(CSSU)有助于实现Viterbi算法;,* 指数译码功能。单周期内从一个40 bit累加器中算出指数; * 两个地址产生器,8个辅助寄存器AR0AR7; * 程序空间扩展到1 M,数据空间和I/O空间各64 K,20条地址线, 16条数据线; * 片内4 Kl6 bit ROM,包含压扩表、256点正弦表、引导程序等; * 片内16 K16 bit的双存取RAM; *
5、 单指令重复或指令块重复功能; * 程序空间和数据空间的数据块移动指令; * 可对32 bit的长字操作; * 一个指令内可以读23个操作数;,* 6级流水完成一条指令操作:预取指、取指、译码、访问、读数、执行; * 运算指令和存取指令并行执行; * 条件存储指令; * 迟延跳转和快速返回; * 软件堆栈; * 片内设备; * 软等待产生器,数据组间切换可编程选项; * 片内锁相环,分频和倍频功能; * 2个多通道带缓冲同步串口; * 增强的8 bit主机接口(HPl);,* 2个16 bit定时器; * 6通道DMA控制器; * IDLEl、IDLE2、IDLE3控制的3级低功耗等中断休闲状
6、态,20 A电流消耗; * 片上JTAG仿真口; * 3.3 V I/O电压,1.8 V核电压,工作电流平均值75 mA,其中核45 mA,IO约30 mA; * 100MIPS,指令周期10 ns; * 144脚PQFP表贴封装或144脚BGA封装,体积小,成本低。,2.2.2 引脚功能 C54x DSP的制造工艺为CMOS,生产型号不同其引脚个数也不同,下面以VC5402为例介绍其引脚功能,如表2.2所示。VC5402引脚按功能分为电源引脚、时钟引脚、控制引脚、地址引脚、数据引脚、外部中断引脚、通信端口引脚、通用I/O引脚等部分。,表2.2 VC5402引脚功能,表2.2 VC5402引脚
7、功能,表2.2 VC5402引脚功能,表2.2 VC5402引脚功能,表2.2 VC5402引脚功能,2.3 中央处理单元(CPU),C54x DSP系列芯片的CPU主要由控制部件和运算部件组成,其中控制部件是C54x DSP芯片的中枢神经系统。C54x DSP的CPU的基本组成如下: * CPU的状态和控制寄存器; * 算术逻辑单元(ALU); * 2个40位累加器ACCA、ACCB; * 40位桶形移位寄存器; * 乘累加单元(MAC); * 16位的临时寄存器(T); * 16位的状态转移寄存器(TRN); * 比较、选择和存储单元(CSSU); * 指数编码器。,2.3.1 CPU状态
8、和控制寄存器 C54x DSP有三个状态和控制寄存器: * 状态寄存器0(ST0); * 状态寄存器1(ST1); * 处理器工作模式状态寄存器(PMST)。 这些寄存器都是存储器映射寄存器,所以它们可以存放到数据存储器或者从数据存储器加载它们,ST0和ST1中包含各种工作条件和工作方式的状态,PMST中包含存储器的设置状态及控制信息。,(1) 状态寄存器ST0和ST1。ST0和ST1寄存器的各位可以使用SSBX指令进行设置,使用RSBX指令进行清除。ST0的位的详细描述见表2.3所示。,表2.3 状态寄存器ST0,表2.4 状态寄存器ST1,(2) 处理器工作模式状态寄存器(PMST)。PM
9、ST寄存器由存储器映射寄存器指令进行加载,例如STM指令。,表2.5 状态寄存器PMST,表2.5 状态寄存器PMST,表2.5 状态寄存器PMST,表2.5 状态寄存器PMST,2.3.2 算术逻辑单元 C54X DSP算术逻辑单元包括1个40位的ALU,1个比较、选择和存储单元CSSU(Compare Select Save Unit)和1个指数编码器。 40位ALU可以实现绝大多数的算术和逻辑运算功能,且许多运算可以在1个周期内完成。ALU有2个输入端,1个输出端。当ALU进行算术运算时,分为两个16位的ALU使用,此时来自数据存储器、累加器或T 寄存器的数据分别进入两个ALU。在这种情
10、况下,1个周期内将同时完成两个16位的操作。ALU的运算结果通常被送往累加器A或累加器B。,CSSU单元是为实现数据通信与模式识别领域常用的快速加法/比较/选择ACS运算而专门设计的专用硬件电路。CSSU中的比较电路将累加器中的高16位与低16位比较,其结果分别送入状态转移寄存器TRN和状态比较寄存器TC,同时,结果也送入选择器,选择较大的数,并存于指令指定的存储单元中。 指数编码器是专门为支持单周期EXP指令而设计的硬件电路。在定点运算中,经常涉及到整数的定标问题。将EXP指令与NORM指令配合使用,可以使得累加器数据的标准化操作非常方便快捷。,2.3.3 累加器 C54x DSP芯片有2个
11、独立的40位累加器ACCA和ACCB可以存放ALU或MAC单元的运算结果,也可以作为ALU的一个输入。累加器结构如图2.2和图2.3所示,其中保护位可以防止迭代运算中(如自相关运算)产生的溢出。,图2.2 C54x DSP累加器ACCA结构,图2.3 C54x DSP累加器ACCB结构,AG、BG、AH、BH、AL和BL是存储器映射寄存器(MMR),它们的值可以通过压入或弹出堆栈进行保存或恢复。ACCA和ACCB 的差别在于ACCA的(3116)位可以用作乘累加单元的一个输入。这些寄存器还可用于寻址操作。,2.3.4 移位寄存器 40位的桶形移位寄存器主要用于累加器或数据区操作数的定标: (1
12、) 在ALU运算前,对来自数据存储器的操作数或者累加器的值进行定标; (2) 对累加器的值进行算术或逻辑移位; (3) 对累加器归一化处理; (4) 对累加器的值存储到数据存储器之前进行定标。 移位位数范围为-1631,移位位数为正对应于左移,移位位数为负则对应于右移。40位的输出结果可以送到ALU的输入端。,移位数可以用一个立即数(-1615)形式定义,或者用状态寄存器ST1的累加器移位模式(ASM)字段(共5位)定义,或者用T寄存器中最低6位的值来定义。例如: SFTL A , +2 ;累加器A(ACCA)中的值逻辑左移2位 ADD A , ASM,B ;累加器A中的值移位(位数由ASM值
13、确定)后与累加器B的值 相加,结果放在累加器B(ACCB)中 NORM A ;标准化累加器A中的值(移位位数由T寄存器中最低6位的值确定),2.3.5 乘累加单元 乘累加(MAC)单元包括1个17位17位的乘法器和1个40位的专用加法器。MAC单元具有强大的乘累加功能,在一个流水线周期内可以完成1次乘法运算和1次加法运算。 MAC单元中,乘法器能够进行有符号数、无符号数以及有符号数与无符号数的相乘运算,依据不同情况作以下三种处理: (1) 如果是两个有符号数相乘,则每个16位操作数先进行符号扩展,在最高位前添加1个符号位(其值由最高位决定),扩展为17位有符号数后再相乘; (2) 如果是无符号
14、数乘以无符号数,则在两个操作数的最高位前面添加“0”,扩展为17位的操作数再相乘;,(3) 如果是有符号数与无符号数相乘,有符号数在最高位前添加1个符号位(其值由最高位决定),无符号数在最高位前面添加“0”,然后两个操作数相乘。 两个16位的二进制补码相乘会产生两个符号位,为了提高计算精度,在状态寄存器ST1中设置小数相乘模式FRCT=1,乘法器结果左移1位以去掉1个多余的符号位。 在MAC单元中,加法器的输入一个来自乘法器的输出,另一个来自累加器A或B中的某一个输出。加法器的运算结果输出到累加器A或B中。有关加法器的舍入和饱和逻辑详见第三章MAC等指令详解。,2.4 存储器和I/O空间,2.
15、4.1 C54x DSP存储器概述 C54x DSP总共具有192 K字16位的存储器空间。这些空间可分为三种专门的存储器空间,即64 K字的程序空间、64 K字的数据空间和64 K字的I/O空间。一些C54x DSP芯片采用了分页扩展方法可访问8 M的程序空间。 C54x DSP体系结构的并行特性和片内RAM的双访问功能,允许C54x DSP器件在任何给定的机器周期内执行四个并行存储器操作:一次取指、两次读操作数和一次写操作数。,片外存储器具有寻址较大存储空间的能力,片内存储器寻址空间较小。但片内存储器具有如下优点:不需插入等待状态、低成本和低功耗。 C54x DSP包含随机存取存储器(RA
16、M)和只读存储器(ROM)。RAM可分为以下三种类型:双访问RAM(DARAM)、单访问RAM(SARAM)和两种方式共享的RAM。在多CPU核心器件和子系统中,DARAM或SARAM可以被共享。用户可以配置DARAM和SARAM为数据存储器或程序/数据存储器。C54x DSP片内存储器容量见表2.6。C54x DSP片内还有26个映射到数据存储空间的CPU寄存器和外设寄存器。,表2.6 各种C54x DSP片内各种存储器的容量 (单位:K字),注: 用户可以配置双访问RAM(DARAM)和单访问RAM(SARAM)位数据存储器或程序/数据存储器,2.4.2 存储器地址空间分配 C54x DSP的存储器空间可以分为三个单独选择的空间,即程序、数据和I/O空间。在任何一个存储空间内,RAM、ROM、EPROM、EEPROM或存储器映射外设都可以驻留在片内或者片外。 根据芯片的型号不同,C54x DSP包含RAM(DARAM、SARAM和两种方式共享的RAM)和ROM。 C54x DSP具有三个CPU状态寄存器位,影响