第二章:‘C5000 DSP硬件结构 在这一章中,我们介绍: TMS320C54XX硬件结构特点 ★
’C54X的结构特点 多总线结构,三组16-bit数据总线和一组程序总线 40-bit算术逻辑单元(ALU),包括一个40-bit的桶形
’C54X的结构特点 可用来进行非流水单周期乘/加(MAC)运算 比较、选择和存储单元(CSSU)用于Viterbi运算器的加/比较选择 指数编码器在一个周期里计算一个40-bit累加器值的指数值 两个地址发生器中有八个辅助寄存器和两个辅助寄存器算术单元(ARAUS)
’C54X的结构特点 数据总线具有总线保持特性 C548,549,5402,5410等具有扩展寻址方式,最大可寻址扩展程序空间为8Mx16-bit C54X可访问的存储器空间最大可为192Kx16-bit(64K程序存储器,64K数据存储器和64KI/O存储器) 支持单指令循环和块循环
’C54X的结构特点 存储块移动指令提供了更好的程序和数据管理 支持32-bit长操作数指令,支持两个或三个操作数读指令,支持并行存储和并行装入的算术指令,支持条件存储指令及中断快速返回指令 软件可编程等待状态发生器和可编程的存储单元转换
’C54X的结构特点 连接内部振荡器或外部时钟源的锁相环(PLL)发生器 支持8-或16-bit传送的全双工串口 时分多路(TDM)串口 缓冲串口(BSP) McBSPs串口 8/16-bit并行主机接口(HPI) 一个16-bit定时器
’C54X的结构特点 外部I/O(XIO)关闭控制,禁止外部数据、地址和控制信号 片内基于扫描的仿真逻辑,JTAG边界扫描逻辑(IEEE1149.1) 单周期定点指令执行时间10-25ns
TMS320C542功能框图
TMS320C54x内部硬件框图
‘C54x的总线结构 (八组16-bit总线): 程序总线(PB)传送从程序存储器来的指令代码和立即数。 三组数据总线(CB,DB和EB)连接各种元器件,如CPU、数据地址产生逻辑、程序地址产生逻辑,片内外设和数据存储器。CB和DB总线传送从数据存储器读出的操作数。EB总线传送写入到存储器中的数据。 四组数据总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。
辅助寄存器算术单元 ‘C54x通过使用两个辅助寄存器算术单元(ARAU0和ARAU1),每周期能产生两个数据存储器地址。 PB总线能把存储在程序空间的数据操作数(如系数表)传送到乘法器和加法器中进行乘/累加运算,或者在数据移动指令(MVPD和READA)中传送到数据空间。这种能力再加上双操作数读的特性,支持单周期3操作数指令的执行,如FIRS指令。 ‘C54x还有一组寻址片内外设的片内双向总线,通过CPU接口中的总线交换器与DB和EB 相连接。对这组总线的访问,需要两个或更多的机器周期来进行读和写,具体所需周期数由片内外设的结构决定。
‘C54x的算术逻辑单元(ALU): ‘C54x/’LC54x使用40-bit的算术逻辑单元(ALU)和两个40-bit的累加器(ACCA和ACCB)来完成二进制补码的算术运算。同时ALU也能完成布尔运算。ALU可使用以下输入: 16-bit的立数 从数据存储器读出的 16-bit字 暂存器T中的16-bit值 从数据存储器读出的两个16-bit字 从数据存储器读出的一个32-bit字 从其中一个累加器输出的40-bit值 ALU能起两个16-bitALUs的作用,且在状态寄存器ST1中的C16位置1时,可同时完成两个16-bit运算
累加器: 累加器ACCA和ACCB存放从ALU或乘法器/加法器单元输出的数据,累加器也能输出到ALU或乘法器/加法器中。
ALU框图:
桶形移位器 ‘C54x的桶形移位器有一个与累加器或数据存储器(CB,DB)相连接的40-bit输入,和一个与ALU或数据存储器(EB)相连接的40-bit输出。桶形移位器能把输入的数据进行0到31bits的左移和0到16bits的右移。所移的位数由ST1中的移位数域(ASM)或被指定作为移位数寄存器的暂存器(TREG)决定。
乘法器/加法器单元 乘法器/加法器与一个40-bit的累加器在一个单指令周期里完成17x17-bit的二进制补码运算。乘法器/加法器单元由以下部分组成:乘法器,加法器,带符号/无符号输入控制,小数控制,零检测器,舍入器(二进制补码),溢出/饱和逻辑和暂存器(TREG)。 乘法器有两个输入:一个是从TREG,数据存储器操作数,或一个累加器中选择;另一个则从程序存储器,数据存储器,一个累加器或立即数中选择。 另外,乘法器和ALU在一个指令周期里共同执行乘/累加(MAC)运算且并行ALU运算。这个功能可用来确定欧几里德距离,以及完成复杂的DSP算法所需要的LMS滤波
比较,选择和存储单元(CSSU) 比较、选择和存储单元(CSSU)完成累加器的高位字和低位字之间的最大值比较,即选择累加器中较大的字并存储在数据存储器中,不改变状态寄存器ST0中的测试/控制位和传送寄存器(TRN)的值。同时,CSSU利用优化的片内硬件促进Viterbi型蝶形运算。
指数编码器 指数编码器用于支持单周期指令EXP的专用硬件。在EXP指令中,累加器中的指数值能以二进制补码的形式存储在T寄存器中,范围为bit-8至31。指数值定义为前面的冗余位数减8的差值,即累加器中为消除非有效符号位所需移动的位数。当累加器中的值超过了32bits,该操作将产生负值。
CPU状态和控制寄存器 ‘C54x有三个状态和控制寄存器,它们分别为:状态寄存器ST0,状态寄存器ST1和处理器方式状态寄存器PMST。ST0和ST1包括了各种条件和方式的状态,PMST包括了存储器配置状态和控制信息。 ST0 ST1 PMST
存储器分配: ‘C54x存储器由三个独立的可选择空间组成:程序,数据和I/O空间。所有的’C54x芯片都包括随机访问存储器(RAM)和只读存储器(ROM)。RAM又分两种:双访问RAM(DARAM)和单访问RAM(SARAM)。
存储器分配:
分页管理数据存储器
片内外设: 两个通用I/O引脚,/BIO和XF。 软件可编程等待 状态发生器。 可编程块切换逻辑。 主机接口(HPI): 8/16 bit 硬件定时器。 时钟发生器。 串口:(同步、缓冲和时分多路(TDM),McBSP)。 外部总线接口。 IEEE 1149.1标准扫 描逻辑。
C54X的串口
TMS320C54x的存储分配说明 ‘C541的存储MAP表
C54X扩展存储器访问 使用XPC寄存器保存页地址(A16以上) 64K页内的PC寄存器保存地址 除非修改XPC,否则都是访问当前页 以下指令可以修改XPC:fb,fbacc,fcall,fcala,fret,frete 利用READA,WRITA可以读写程序空间
‘5402扩展程序存储器
装入程序代码-BOOTLOADER BOOTLOADER是一段芯片出厂时固化在ROM中的程序代码,其主要功能是将用户的程序代码从外部装入到片内RAM或扩展的RAM中,以便高速运行。 BOOTLOADER一般支持多种程序传递方式,如并行EPROM,串行EPROM,串口,HPI等等。 不同型号的DSP,BOOTLOADER不同。
本章小结 本章介绍了DSP硬件结构的发展,重点介绍了TMS320C54x的硬件结构,了解DSP硬件结构是设计DSPS的第一步。 2002.10