您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > DSP 第二章 TMS320C54x硬件结构与工作原理―CPU
2020年2月10日1DSP技术与应用基础2020年2月10日1DSP技术与应用基础第二章TMS320C54x结构与工作原理2.1基本性能2.2中央处理器2.3内部总线结构2.4存储器结构2.5片内外设与外围引脚2.6中断系统2020年2月10日2DSP技术与应用基础1)多总线结构2)40位算术逻辑单元(ALU)3)17×17位并行乘法器4)比较、选择和存储单元(CSSU)5)指数编码器6)两个地址发生器第一节C54x芯片的基本性能2020年2月10日3DSP技术与应用基础7)数据总线8)总线寻址空间9)三种存储器空间10)单指令循环和块循环11)区分的存储块移动指令12)32位长操作数指令13)可编程等待状态发生器和可编程的存储单元转换2020年2月10日4DSP技术与应用基础14)锁相环(PLL)发生器15)多通道缓冲串口(McBSP)16)直接存储器访问(DMA)控制器17)主机接口(HPI)18)定时器19)多种节电模式20)JTAG接口21)低电压工作2020年2月10日5DSP技术与应用基础TMS320C54xDSP的内部硬件组成图2020年2月10日6DSP技术与应用基础第二节C54x芯片的CPU结构40位算术逻辑运算单元(ALU)2个40位累加器A和B移位-16~30位的桶形移位寄存器乘法器/加法器单元比较和选择及存储单元(CSSU)指数编码器CPU状态和控制寄存器包括2020年2月10日7DSP技术与应用基础TMS320VC5416CPU结构框图2020年2月10日8DSP技术与应用基础CPU结构2020年2月10日9DSP技术与应用基础1.算术逻辑运算单元ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算要点X输入端Y输入端输出为40位,被送往累加器A或B2020年2月10日10DSP技术与应用基础2020年2月10日11DSP技术与应用基础ALU的输入:ALU有两个输入端,X输入端的数据来源于移位寄存器的输出(32位或16位数据存储器操作数以及累加器中的数值,经移位寄存器移位后输出)或来自数据总线DB的数据存储器操作数。Y输入端的数据来源于累加器A中的数据,或累加器B中的数据,或来自数据总线CB的数据存储器操作数,或来自T寄存器中的数据。当一个16位数据存储器操作数加到40位ALU的输入端时,若状态寄存器ST1的SXM=0,则高位添0,若SXM=1,则符号位扩展。2020年2月10日12DSP技术与应用基础ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算要点根据ST1的OVM位进行处理2020年2月10日13DSP技术与应用基础溢出处理:ALU的饱和逻辑可以处理溢出。当发生溢出、且状态寄存器ST1的OVM=1时,则用32位最大正数007FFFFFFFh(正向溢出)或最大负数FF80000000h(负向溢出)加载累加器。溢出发生后,相应的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令。也可用SAT指令对累加器进行饱和处理而不必考虑OVM值。若OVM=0,直接将结果回到累加器。2020年2月10日14DSP技术与应用基础ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算要点可以用来支持扩展精度的算术运算,利用两个条件操作数C和NC,可以根据进位位的状态,进行分支转移、调用与返回操作。2020年2月10日15DSP技术与应用基础ALU如何获取数据ALU输出送往何方溢出怎么办进位位的作用什么是双16位算术运算要点只要置位ST1的C16状态位,就可让ALU在单个周期内进行特殊的双16位算术运算,亦即进行两次16位加法或两次16位减法。2020年2月10日16DSP技术与应用基础2.累加器A和B作用结构与位置A和B的异同加载与存储中的移位AG保护位39~32AH高阶位31~16AL低阶位15~0要点89DO页存储器ALAHBGAGBLBH存放运算前后数据2020年2月10日17DSP技术与应用基础作用结构与位置A和B的异同加载与存储中的移位要点累加器A和B的差别仅在于累加器A的31~16位可以用作乘法器的一个输入。依指令而定2020年2月10日18DSP技术与应用基础保存累加器的内容:用户可以利用STH、STL、STLM和SACCD等指令或者用并行存储指令,将累加器的内容存放到数据存储器中。在存储前,有时需要对累加器的内容进行移位操作。右移时,AG和BG中的各数据位分别移至AH和BH;左移时,AL和BL中的各数据分别移至AH和BH,低位添0。2020年2月10日19DSP技术与应用基础例如:累加器A=FF43211234h,求执行带移位的STH和STL指令后,数据存储单元的TEMP中的结果。STHA,8,TEMP;A中的内容左移8;位后高位字存入TEMP,;TEMP=2112hSTHA,-8,TEMP;A中的内容右移8位后;高位字存入TEMP,;TEMP=FF43hSTLA,8,TEMP;A中的内容左移8位后低位;字存入TEMP,TEMP=3400hSTLA,-8,TEMP;A中的内容右移8位后低位;字存入TEMP,TEMP=2112h2020年2月10日20DSP技术与应用基础3.桶形移位器的功能什么是定标移位处理的作用归一化的作用为何要扩展符号位要点BACDESALU桶形移位器(40位)信号控制最高/最低有效字选择2020年2月10日21DSP技术与应用基础什么是定标移位处理的作用归一化的作用为何要扩展符号位要点当数据存储器的数据送入累加器或与累加器中的数据进行运算时,先通过它进行0~16位左移然后再进行运算。2020年2月10日22DSP技术与应用基础什么是定标移位处理的作用归一化的作用为何要扩展符号位要点方便指数运算进行符号位保护2020年2月10日23DSP技术与应用基础包括在ALU运算前:对来自数据存储器的操作数或者累加器的值进行定标;对累加器的值进行算术或逻辑移位;对累加器归一化处理;对累加器的值存储到数据存储器之前进行定标。例如:ADDA,-4,B;累加器A右移4位;后加到累加器BADDA,ASM,B;累加器A按ASM规定的移位数移位后加到累加器BNORMA;按T寄存器中的数值对累加器归一化2020年2月10日24DSP技术与应用基础【例】ADDA,-8,B:累加器A右移8位;后加到累加器B指令执行前A0005401200H;B0000001800H指令执行后A0000054012H;B0000055812H2020年2月10日25DSP技术与应用基础4.乘法器/加法器结构功能什么是舍入处理饱和处理的优点数据流向17X17乘法40位加法检零饱和取整要点2020年2月10日26DSP技术与应用基础结构功能什么是舍入处理饱和处理的优点数据流向要点乘法器/加法器单元可以在一个流水线状态周期内完成一次乘法累加(MAC)运算。2020年2月10日27DSP技术与应用基础乘法器能够执行:无符号数乘法(每个16位操作数前面加一个0);有符号数乘法(每个16位操作数都符号位扩展成17位有符号数);无符号数(16位操作数前面加一个0)与有符号数(16位操作数符号扩展成17位有符号数)相乘运算。乘法器工作在小数相乘方式(状态寄存器ST1中的FRCT位=1)时,乘法结果左移1位,以消除多余的符号位。2020年2月10日28DSP技术与应用基础结构功能什么是舍入处理数据流向要点有些乘法指令,如MAC、MAS等指令,如果带后缀R,就对结果进行舍入处理,即加215至结果,并将目的累加器的低16位清0。当执行LMS指令时,为了修正系数的量化误差最小,也要进行舍入处理。2020年2月10日29DSP技术与应用基础结构功能什么是舍入处理数据流向要点2020年2月10日30DSP技术与应用基础结构功能什么是舍入处理数据流向要点输入端XM来自T寄存器、累加器A的位32~16、以及DB总线;输入端YM来自累加器A的位32~16、由DB总线和CB总线以及由PB总线。输出加到加法器的输入端XA,累加器A或B则是加法器的另一个输入。最后结果送往目的累加器A或B。2020年2月10日31DSP技术与应用基础TMS320C54x中有大量的乘法/累加运算,输入依具体指令决定的。例如:MPY#1221H,A;表达式:A=1221H*T,说明T寄存器值和操作数相乘;MPYAB;表达式:B=T*A(32-16),说明T寄存器值和累加器高位相乘;MAC#1221H,A;表达式:A=1221H*T+A;说明T寄存器值和操作数相乘后加到累加器A;MACR#1221H,A;表达式:A=md(1221H*T+A);说明T寄存器值和操作数相乘后加到累加器A(带舍入);MACP*AR1,pmad,A;表达式:A=(*AR1)*pmad+A;说明数据存储器值和程序存储器值相乘后加到累加器A。2020年2月10日32DSP技术与应用基础5.比较、选择和存储单元MUXCOMPTRNTCMSW/LSW选择EB15~EB0CSSU桶形移位器16SAB结构功能CSSU是专为Viterbi算法设计的进行加法/比较/选择(ACS)运算的硬件单元。2020年2月10日33DSP技术与应用基础CMPSA,*AR1;如果A(31~16)A(15~0);则A(31~16)-*AR1,;TRN左移1位,0-TRN(0),0-TC;否则A(15~0)-*AR1,TRN左移1位,;1-TRN(0),1-TC2020年2月10日34DSP技术与应用基础6.指数编码器EXP指数编码器ABT寄存器要点如何计算指数结构功能2020年2月10日35DSP技术与应用基础指数编码器是一个专用硬件。有了它,可以在单个周期内执行EXP指令,求得累加器中数的指数值,并以2的补码形式(-8~31)存放到T寄存器中。累加器的指数值=冗余符号位-8,也就是为消去多余符号位而将累加器中的数值左移的位数。当累加器数值超过32位时,指数是个负值。例如,对累加器的内容进行归一化:EXPA;累加器的指数值(冗余符号位-8)-T寄存器STT,EXPONENT;保存指数(T)到数据存储区NORMA;归一化寄存器A,依靠T的值移动累加器A的值2020年2月10日36DSP技术与应用基础7.CPU状态和控制寄存器3个状态寄存器功能位置各bit的作用要点671DO页存储器ST1ST0PMSTST0和ST1中包含有各种工作条件和工作方式的状态;PMST中包含存储器的设置状态及其它控制信息2020年2月10日37DSP技术与应用基础ARP15~13TC12C11OVA10OVB9DP8~0(1)状态寄存器0(ST0)ARP:辅助寄存器指针。在间接寻址单操作数时,用来选择辅助寄存器。测试/控制标志位。保存ALU测试位操作的结果。可以由TC的状态决定条件分支转移指令、子程序调用以及返回指令是否执行。2020年2月10日38DSP技术与应用基础ARP15~13TC12C11OVA10OVB9DP8~0进位位。执行加法产生进位置1,减法产生借位则清0。数据存储器页指针。这9位字段与指令字中的低7位结合在一起,形成一个16位直接寻址存储器的地址,对数据存储器的一个操作数寻址。累加器溢出标志位。2020年2月10日39DSP技术与应用基础(2)状态寄存器1(ST1)BRAF15CPL14XF13HM12INTM11010OVM9SXM8C167FRCT6CMPT5ASM4~0块重复操作标志位,指示当前是(1)否(0)在执行块重复操作。直接寻址编辑方式位。指示直接寻址时采用何种指针。DP的直接寻址方式(0)或SP的直接寻址方式(1)。XF引脚状态位。XF引脚是一个通用输出引脚。保持方式位。当处理器响应HOLD信号时,HM指示处理器是(0)否(1)继续执行内部操作。2020年2月10日40
本文标题:DSP 第二章 TMS320C54x硬件结构与工作原理―CPU
链接地址:https://www.777doc.com/doc-3629483 .html