1、1,天津职业技术师范大学电子工程学院,DSP技术,Digital Signal Processor 数字信号处理器,于万霞,第二章 DSP硬件结构,3,在上一章中。,4,TMS320C54XX硬件结构特点 TMS320C55XX硬件结构特点,在这一章中,我们介绍:,5,TMS320系列产品命名,TMS320 C 5402 T GDK ( ) 100采用的技术 器件代号 版本 封装 温度范围 速度C=CMOSE=CMOS EPROMF=CMOS Flash EEPROMLC=低电压CMOS(3.3V)LF=低电压Flash EEPROMVC=低电压CMOS(3.3V)/2.5V核 UC=低电压C
2、MOS(3.3V)/1.8V核,2-1 C54x DSP硬件结构,7,8,DSP模型,DSP=CPU+总线+存储器+片上外设,9,多总线结构,三组16-bit数据总线和一组程序总线40-bit算术逻辑单元(ALU),包括一个40-bit的桶形移位器和两个独立的40-bit累加器17x17-bit并行乘法器,连接一个40-bit的专用加法器。可用来进行非流水单周期乘/加(MAC)运算,一、C54X的结构特点,10,比较、选择和存储单元(CSSU)用于Viterbi运算器的加/比较选择 指数编码器在一个周期里计算一个40-bit累加器值的指数值 两个地址发生器中有八个辅助寄存器和两个辅助寄存器算术
3、单元(ARAUS) 数据总线具有总线保持特性,11,C54X可访问的存储器空间最大可为192Kx16-bit(64K程序存储器,64K数据存储器和64KI/O存储器) C548,549,5402,5410等具有扩展寻址方式,最大可寻址扩展程序空间为8Mx16-bit 支持单指令循环和块循环,存储块移动指令提供了更好的程序和数据管理 支持32-bit长操作数指令,支持两个或三个操作数读指令,12,连接内部振荡器或外部时钟源的锁相环(PLL)发生器 支持8-或16-bit传送的全双工串口 时分多路(TDM)串口 缓冲串口(BSP) McBSPs串口 8/16-bit并行主机接口(HPI) 16-b
4、it定时器,13,软件可编程等待状态发生器和可编程的存储单元转换 片内基于扫描的仿真逻辑,JTAG边界扫描逻辑(IEEE1149.1) 单周期定点指令执行时间10-25ns,14,TMS320C54x/C54xx主要配置,15,TMS320C54x/C54xx主要配置,二、C54X的内部总线结构,程序总线(PB) 数据总线(CB、DB和EB) 地址总线(PAB、CAB、DAB和EAB),程序总线(PB)传送从程序存储器来的指令代码和立即数。 三组数据总线(CB,DB和EB)。CB和DB总线传送从数据存储器读出的操作数。EB总线传送写入到存储器中的数据。 四组地址总线(PAB,CAB,DAB和E
5、AB)传送执行指令所需要的地址。,19,40位算术逻辑运算单元(ALU) 2个40位累加器A和B 移位-1631位的桶形移位寄存器 乘法器/加法器单元 比较和选择及存储单元(CSSU) 指数编码器 CPU状态和控制寄存器,包 括,三、C54x芯片的CPU结构,20,21,TMS320C54x内部硬件框图,22,作用 结构与位置 和的异同,要 点,1. 累加器A和B,23,24,累加器作用:存放从ALU或乘法器/加法器单元输出的数据,累加器也能输出到ALU或乘法器/加法器中。,累加器A和B的唯一区别是AH可以用作乘法器的一个输入,使用MPYA指令。,可以使用STH、STL、STLM、SACCD等
6、指令将累加器的值存放到数据存储器中。,25,累加器A,累加器B,26,【例】累加器A=FF 0123 4567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。,STH A, 8, T ; A的内容左移8位,AH存入T,0 1,2 3,4 5,6 7,0 0,2 3 4 5,T = 2345H, A=FF 0123 4567H,STH A,-8, T ; A的内容右移8位,AH存入T,4 5,2 3,0 1,F F,F F,F F 0 1,T = FF01H, A=FF 0123 4567H,STL A,8, T ; A的内容左移8位,AL存入T,0 1,2 3,4 5,6 7,0
7、0,6 7 0 0,T = 6700H, A=FF 0123 4567H,STL A,-8, T ; A的内容右移8位,AL存入T,4 5,2 3,0 1,F F,F F,2 3 4 5,T = 2345H, A=FF 0123 4567H,27,ALU如何获取数据 ALU输出送往何方 溢出怎么办 进位位的作用 什么是双16位算术运算,要 点,2. 算术逻辑运算单元 (ALU),28,29,TMS320C54x使用40位算术逻辑单元(ALU)和两个40位累加器(ACCA和ACCB)来完成算术运算和逻辑运算,且大多数都是单周期指令。ALU可使用以下输入: 16-bit的立即数 从数据存储器读出的
8、16-bit字 暂存器T中的16-bit值 从数据存储器读出的两个16-bit字 从数据存储器读出的一个32-bit字 从其中一个累加器输出的40-bit值,30,溢出处理:ALU的饱和逻辑能够保证运算结果不产生溢出,方法是根据溢出方向,将结果设置成最大的正数和最小的负数。如果OVM=0,运算结果直接装入目的累加器, 不作任何修改。如果OVM=1,目的累加器载入0x007fffffff或0xff80000000如果发生溢出,会设置相应的溢出标志OVA/OVB。,31,进位位的作用: 进行算术运算时,累加器的第31位向第32位有进位或借位时,反映在C。 加法有进位,减法无借位时为1。,在状态寄存
9、器ST1中的C16位置1时,ALU能起两个16-bitALUs的作用,可同时完成两个16-bit运算,32,3桶形移位器的功能,桶形移位器能把输入的数据进行0到31bits的左移和0到16bits的右移。所移的位数由ST1中的移位数域(ASM)或被指定作为移位数寄存器的暂存器(TREG)或由指令决定。,34,结构 功能 什么是舍入处理 数据流向 小数和整数乘法区别,要 点,4乘法器/加法器,35,17X17乘法,40位加法,乘法器/加法器与一个40-bit的累加器在一个单指令周期里完成17x17-bit的二进制补码运算。乘法器/加法器单元由以下部分组成:乘法器,加法器,带符号/无符号输入控制,
10、小数控制,零检测器,舍入器(二进制补码),溢出/饱和逻辑和暂存器(TREG)。,37,小数相乘方式时,FRCT=1 可以使输出自动左移一位,消去多余的符号位。舍入操作:小数乘法在精度允许的情况下,只保留高16位结果。操作:+215,低16位清零。,38,结构 功能,5比较、选择和存储单元(CSSU),40,CSSU支专门为通信及模式识别领域经常使用的Viterbi运算中加、比较、选择提供的硬件支持。 CSSU完成累加器的高位字和低位字之间的最大值比较,即选择累加器中较大的字并存储在数据存储器中,同时改变状态寄存器ST0中的测试/控制位(TC)和转移寄存器(TRN)的值。,41,6指数编码器,要
11、点,结构 功能 如何计算指数,42,用于实现定点数到浮点数的转换,把一个定点数分为指数和尾数部分。指数编码器用于支持单周期指令EXP的专用硬件。在EXP指令中,累加器中数的指数值能以二进制补码的形式存储在T寄存器中,范围为-8至31。,43,3个状态寄存器 功能 位置 各bit的作用,要 点,6,7,1D,O页存储器,7CPU状态和控制寄存器,44,状态寄存器ST0状态寄存器ST1处理器工作方式寄存器PMST,包括了存储器配置状态和控制信息,45,1状态寄存器0(ST0),主要反映处理器的寻址要求和计算机的运行状态。,ST0的结构:,ARP,ARP:辅助寄存器指针。用来选择使用单操作数间接寻址
12、时的辅助寄存器AR0AR7。,TC,TC:测试/控制标志。用来保存ALU测试操作的结果。,C,C:进位标志位。用来保存ALU加减运算时所产生的进/借位。,OVA/B:累加器A/B的溢出标志。用来反映A/B是否产生溢出。,DP,DP:数据存储器页指针。用来与指令中提供的7位地址结合形成1个16位数据存储器的地址。,46,2状态寄存器1 (ST1),BRAF:块重复操作标志位。用来指示当前是否在执行块重复操作。BRAF=0 表示当前不进行重复块操作;BRAF=1 表示当前正在进行块重复操作。,CPL:直接寻址编辑方式标志位;用来指示直接寻址选用何种指针。CPL=0 选用数据页指针DP的直接寻址;C
13、PL=1 选用堆栈指针SP的直接寻址。,XF:外部XF引脚状态控制位。用来控制XF通用外部输出引脚的状态。执行SSBX XF=1 XF通用输出引脚为1;执行RSBX XF=0 XF通用输出引脚为0。,HM:保持方式位;响应HOLD信号时,指示CPU是否继续执行内部操作。HM=0 CPU从内部程序存储器取指,继续执行内部操作。 HM=1 CPU停止内部操作。,INTM:中断方式控制位;用于屏蔽或开放所有可屏蔽中断。INTN=0 开放全部可屏蔽中断;INTN=1 禁止所有可屏蔽中断。,0:保留位,未被使用,总是读为0。,OVM:溢出方式控制位;用来确定累加器溢出时,对累加器的加载方式。OVM=0
14、将运算的溢出结果直接加载到累加器中;OVM=1 当正溢出时,将007FFFFFFFH加载累加器;当负溢出时,将FF80000000H加载累加器。,SXM:符号位扩展方式控制位;用来确定数据在运算之前是否需要符号位扩展。SXM=0 数据进入ALU之前禁止符号位扩展;SXM=1 数据进入ALU之前进行符号位扩展。,C16:双16位/双精度算术运算方式控制位;用来决定ALU的算术运算方式。C16=0 ALU工作在双精度算术运算方式; C16=1 ALU工作在双16位算术运算方式。,FRCT:小数方式控制位;用来确定乘法器的运算方式。FRCT=1 乘法器的输出左移一位,消除多余的符号位。,CMPT:间
15、接寻址辅助寄存器修正方式控制位;用来决定ARP是否进行修正。CMPT=0 在进行间接寻址单操作数时,不修正ARP;CMPT=1 在进行间接寻址单操作数时,修正ARP。,ASM:累加器移位方式控制位。为某些具有移位操作的指令设定一个从-1615范围内的移位值。,主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。,47,可以使用LD指令修改DP和ASM。例如:, ST0、ST1包括了各种条件和方式的状态,是存储器映射寄存器(使用数据0页数据存储器来当作寄存器用,不专门设计寄存器,可简化设计、增加数据存储器的使用灵活性),因此可以使用数据存储器读写指令,保存、修改它们。 对ST0、
16、ST1中单独的一位,可以使用RSBX和SSBX指令修改。例如:,48,3工作方式状态寄存器PMST,主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。,中 断 向 量 指 针,CPU 工 作 方 式 选 择 位,RAM 重 复 占 位 标 志,地 址 可 见 控 制 位,数 据 ROM 映 射 选 择 位,时 钟 输 出 选 择 位,乘 法 饱 和 方 式 位,存 储 饱 和 位,49,PMST(处理器工作方式控制及状态寄存器),四、TMS320C54x的存储分配,51,所有C54x芯片都含有片内RAM和ROM。,片内RAM,SARAM,DARAM, 单寻址RAM, 双寻址R
17、AM,DARAM:由存储器内的一些分块组成。每个DARAM块在单周期内能被访问2次。,SARAM:由存储器分块组成。每个SARAM块在单周期内只能被访问1次。,DARAM和SARAM既可以被映射到数据存储空间用来存储数据,也可以映射到程序空间用来存储程序代码。,片内ROM:主要存放固化程序和系数表。一般构成程序存储空间,也可以部分地映射在数据存储空间。,1 C54x的存储空间结构,52,片内存储器的优点:, 不需要插入等待状态; 与外部存储器相比,成本低; 比外部存储器功耗小。,53,第2章 TMS320C54x的内部结构,TMS320VC5402存储器配置结构,54,C54x的片内存储器包括
18、DARAM、SARAM和ROM三种。不同芯片的片内存储器配置有所不同。PMST中的 MP/MC、DROM和OVLY影响到片内存储器的配置情况。 1)MP/MC=0,片内ROM映射到程序存储器空间。 MP/MC=1,片内ROM不映射到程序存储器空间。 2)OVLY=1, 片内RAM同时映射到程序和数据存储器空间。OVLY=0,片内RAM只映射到数据存储器空间。 3)DROM=1,部分片内ROM被映射到数据存储器空间。 DROM=0,片内ROM都被映射到程序存储器空间。,55,程序执行前数据和程序存储器的值,程序执行后数据和程序存储器的值,执行一段向数据存储单元2000H开始的地址写数据的程序,O
19、VLY=1,56,程序执行前数据和程序存储器的值,程序执行后数据和程序存储器的值,OVLY=0,57,TMS320VC5416存储器空间分配图,58,2程序存储空间的分页扩展,在C54x系列芯片中,有些芯片采用分页扩展的方法,使程序存储空间可扩展到1M8M。,如:C5409和C5416可扩展到8M。C5402有20条外部程序地址总线,其程序空间只能扩展到1M。,59,2程序存储空间的分页扩展,分页扩展技术的特点: 有20或23条外部程序地址线,可寻址1M或8M存储空间; 有1个额外的存储器映像寄存器程序计数器扩展寄存器XPC; 有6条寻址扩展程序空间的指令,用于寻址扩展程序空间。,60,2程序
20、存储空间的分页扩展,当OVLY=0时,内部RAM不允许映射到程序空间,程序空间分成128页,每页64K。,61,2程序存储空间的分页扩展,当OVLY=1时,片内RAM允许映射到程序空间,程序存储器的每一页都由两部分组成:32K字的公共块和32K字的专用块。,公共块可由所有页共享;专用块只能按指定的页号寻址。,当MP/MC=0时,片内ROM只能允许安排在第0页的程序空间,不能映射到其它页。,62,2程序存储空间的分页扩展,公共块:由所有页共享专用块:按指定的页号寻址,63,C54X扩展存储器访问,使用XPC寄存器保存页地址(A16以上) 。XPC映射到数据存储器的001EH单元。硬件复位时,XP
21、C被置0。 64K页内的PC寄存器保存地址 除非修改XPC,否则都是访问当前页 利用FBD,FCALL等指令可以访问扩展存储器,如:FB 012000H指令,64,C5402共有20条外部程序地址总线,可寻址程序存储空间为1M。整个程序存储空间分成16页,每页共计64K字。,TMS320VC5402扩展程序存储空间结构图, ,65,5416扩展程序存储器,66,3存储器映像寄存器,在C54x的数据存储空间中,前80H个单元(数据页0)包含有的CPU寄存器、片内外设寄存器和暂存器。这些寄存器全部映射到数据存储空间,称作存储器映像寄存器MMR。,存储器映像寄存器MMR: CPU寄存器特殊功能寄存器
22、; 片内外设寄存器; 暂存器SPRAM。,67,特殊功能寄存器功能:主要用于程序的运算处理和寻址方式的选择和设定。地址范围:0000H001FH。,C5402的CPU寄存器共有27个,CPU访问这些寄存器时,不需要插入等待时间。,外设寄存器功能:用来控制片内外设电路的状态和存放数据。地址范围:0020H005FH。,包括串行口通信控制寄存器组、定时器定时控制寄存器组、时钟周期设定寄存器组等。,暂存器SPRAM功能:用来暂存变量。地址范围:0060H007FH。,68,第2章 TMS320C54x的内部结构,特殊功能寄存器,69,片内外设寄存器存在于一个专用的外设总线结构中,它可以发送数据至外设
23、总线或者从外设中接收数据。设置或清除寄存器的控制位可以激活、屏蔽或者重新配置外设状态。不同型号的芯片具有不同的片内外设寄存器。,70,4 I/O空间,C54x除了程序和数据存储空间外,还提供了一个具有64K字的I/O空间。主要用于对片外设备的访问。可以使用输入指令PORTR和输出指令PORTW对I/O空间寻址。,在对I/O空间访问时,除了使用数据总线和地址总线外,还要用到IOSTRB、IS和R/W控制线。,IOSTRB和IS :用于选通I/O空间;,R/W:用于控制访问方向。,71,五、装入程序代码-BOOTLOADER,BOOTLOADER是一段芯片出厂时固化在ROM中的程序代码,其主要功能
24、是将用户的程序代码从外部装入到片内RAM或扩展的RAM中,以便高速运行。 BOOTLOADER一般支持多种程序传递方式,如并行EPROM,串行EPROM,串口,HPI等等。 不同型号的DSP,BOOTLOADER不同。,六 TMS320VC5402引脚及说明,74,TMS320C5402引脚:,电源引脚 时钟引脚 控制引脚 地址和数据引脚,串行口引脚 主机接口引脚 通用I/O引脚 测试引脚,75,1. 电源引脚,C5402采用双电源供电,其引脚有: CVDD(16、52、68、91、125、142),电压为+1.8V,为CPU内核提供的专用电源; DVDD(4、33、56、75、112、130
25、),电压为+3.3V,为各I/O引脚提供的电源; VSS(3、14、34、40、50、57、70、76、93、106、111、128),接地。,76,2时钟引脚,CLKOUT:主时钟输出引脚,周期为CPU的机器周期。,CLKMD1、CLKMD2和CLKMD3:设定时钟工作模式引脚,用来硬件配置时钟模式。,X2/CLKIN:时钟振荡器引脚。若使用内部时钟,用来外接晶体电路;若使用外部时钟,该引脚接外部时钟输入。,X1:时钟振荡器引脚。若使用内部时钟,用来外接晶体电路;若使用外部时钟,该引脚悬空。,77,3控制引脚,用来产生和接收外部器件的各种控制信号,78,79,4地址和数据引脚 C5402芯片
26、共有20个地址引脚和16条数据引脚 。地址引脚用来寻址外部程序空间、外部数据空间和片外I/O空间。A19A0:可寻址1M的外部程序空间64K外部数据空间64K片外I/O空间,80,4地址和数据引脚,数据引脚:用于在处理器、外部数据存储器、程序存储器和I/O器件之间进行16位数据并行传输。 D15D0:组成16位外部数据总线。在下列情况下,D15D0将呈现高阻状态。, 当没有输出时,81,5. 串行口引脚 C5402器件有两个McBSP串行口,共有12个外部引脚。,BCLKR0:缓冲串行口0同步接收时钟信号;BCLKR1:缓冲串行口1同步接收时钟信号;BCLKX0:缓冲串行口0同步发送时钟信号;
27、BCLKX1:缓冲串行口1同步发送时钟信号;BDR0:缓冲串行口0的串行数据接收输入;BDR1:缓冲串行口1的串行数据接收输入;,82,BDX0:缓冲串行口0的串行数据发送输出;BDX1:缓冲串行口1的串行数据发送输出;BFSR0:缓冲串行口0同步接收信号;BFSR1:缓冲串行口1同步接收信号;BFSX0:缓冲串行口0同步发送信号;BFSX1:缓冲串行口1同步发送信号。,83,6. 主机接口HPI引脚,C5402的HPI接口是一个8位并行口,用来与主设备或主处理器接口,实现DSP与主设备或主处理器间的通信。,84,HBIL:字节识别信号,用来判断主机送来的数据是第1字节还是第2字节。,HCNT
28、L0:HCNTL1:,主机控制信号。,用于主机选择所要寻址的寄存器;,85,7. 通用I/O引脚,C5402芯片都有2个通用的I/O引脚,分别为:,8.TOUT:定时器输出引脚。,86,9. 测试引脚,C5402芯片具有符合IEEE1149.1标准的在片仿真接口。,2-2 C55x DSP特点,88,32位定点芯片 与120-MHz C54x相比较,300-MHz C55x的性能提高了4倍,同时功耗降低了1/6。 32x16-bit指令缓冲队列实现可变指令长度和高效块循环。 两个17-bit x17-bit MAC 单元。 一个40-bit的ALU用于高精度算术运算和逻辑运算,另外还有一个16
29、-bit的ALU可与主ALU并行进行并行算术运算。 40-bit的桶型移位器,完成31位左移或32位右移。 4个40-bit累加器。 12条独立总线:3条数据读总线,2条数据写总线,5条数据地址总线,1条程序总线,1条程序地址总线。充分发挥C55X的并行特性。,89,2-3 TMS320VC5471,90,91,92,本章介绍了DSP硬件结构,重点介绍了TMS320C54x的硬件结构,了解DSP硬件结构是设计DSPS的第一步。,本章小结,93,练习与思考题,1、C54x芯片的基本结构包括哪些部分? 2、 TMS320C54X的CPU包括哪些? 3、 TMS320C54X的总线结构? 4、 MP/MC引脚如何影响存储器配置? 5、 OVLY如何影响存储器配置? 6、C54x芯片的片内随机存储器有哪几种?片内与片外RAM的区别是什么?,