好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第二部分tms320c5416结构与工作原理剖析..ppt

111页
  • 卖家[上传人]:今***
  • 文档编号:107665402
  • 上传时间:2019-10-20
  • 文档格式:PPT
  • 文档大小:4.17MB
  • / 111 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • TMS320C54x结构与工作原理,曹洪龙,主要内容,DSP芯片组成 中央处理器 总线结构 存储系统 片内外设和引脚 中断系统,DSP的硬件结构,特点 运算速度快 组成 CPU 存储器系统 片内外设 其他功能模块,C54x芯片的基本结构,,,CPU,片内存储器,串行通信接口,PLL,JTAG,HPI,通用I/0口,中断系统,Timer,其他硬件电路,可编程分区转换逻辑,软件可编程等待状态发生器,TMS320C5416的硬件 结构框图,中央处理器CPU,40位算术逻辑运算单元ALU 40位累加器A和B 桶形移位寄存器,支持-16至31移动范围 乘法/累加器 16位暂存器T 16位传输寄存器TRN 比较、选择和存储单元CSSU 指数编码器 CPU状态和控制寄存器CPU状态和控制寄存器,状态寄存器0(ST0) 主要反映处理器的寻址要求和计算机的运行状态 状态寄存器1(ST1) 主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等 处理器工作模式状态寄存器(PMST) 主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态 由于三个寄存器都是存储器映射的,他们都能存储到数据存储器或从数据存储器中获得。

      它们也能用子程序或中断服务子程序(ISR)保存或恢复1.状态寄存器0(ST0):主要反映处理器的寻址要求和计算机的运行状态ARP,ARP:辅助寄存器指针 用来选择使用单操作数间接寻址时的 辅助寄存器AR0~AR7TC,TC:测试/控制标志 用来保存ALU测试操作的结果C,C:进位标志位 用来保存ALU加减运算时所产生的进/借位OVA/B:累加器A/B的溢出标志 用来反映A/B是否产生溢出DP,DP:数据存储器页指针 用来与指令中提供的7位地址结合形成1个 16位数据存储器的地址2.状态寄存器1 (ST1):主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等BRAF:块重复操作标志位 用来指示当前是否在执行块重复操作 BRAF=0 表示当前不进行重复块操作; BRAF=1 表示当前正在进行块重复操作CPL:直接寻址编辑方式标志位; 用来指示直接寻址选用何种指针 CPL=0 选用数据页指针DP的直接寻址; CPL=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:中断方式控制位; 用于屏蔽或开放所有可屏蔽中断 INTM=0 开放全部可屏蔽中断; INTM=1 禁止所有可屏蔽中断0:保留位,未被使用,总是读为0OVM:溢出方式控制位; 用来确定累加器溢出时,对累加器的加载方式 OVM=0 将运算的溢出结果直接加载到累加器中; 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:间接寻址辅助寄存器修正方式控制位; 用来决定ARP是否进行修正。

      CMPT=0 在进行间接寻址单操作数时,不修正ARP; CMPT=1 在进行间接寻址单操作数时,修正ARPASM:累加器移位方式控制位 为某些具有移位操作的指令设定一个从-16~15范围内的移位值3.工作方式状态寄存器PMST:主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态中 断 向 量 指 针,CPU 工 作 方 式 选 择 位,RAM 重 复 占 位 标 志,地 址 可 见 控 制 位,数 据 ROM 映 射 选 择 位,时 钟 输 出 选 择 位,乘 法 饱 和 方 式 位,存 储 饱 和 位,IPTR:用来指示中断向量所驻留的128字程序地置; MP/MC:用来确定是否允许使用片内ROM OVLY:用来决定片内DARAM是否映射到程序空间 AVIS:用来决定是否可以从器件地址引脚线看到内部程序空间地址线; DROM:用来决定片内程序存储器是否可以映射到数据空间; CLKOFF:用来决定时钟输出引脚CLKOUT是否有信号输出; SMUL:用来决定乘法结果是否需要进行饱和处理; SST:用来决定累加器中的数据在存储到存储器之前,是否需要饱和处理算术逻辑运算单元,40位ALU(Arithmetic Logic Unit)配合累加器A和B,执行算术、逻辑运算、布尔运算功能,绝大多数算术逻辑运算指令都在一个周期内完成。

      一个运算操作在ALU执行后,运算的结果一般被送到累加器A或B中(执行存储操作指令ADDM、ANDM、ORM、XORM除外),ADD *AR1,A,ALU的输入 移位器输出(32位或16位数据存储器操作数或者移位后累加器的值) 数据总线DB的数据存储器操作数 Y端的输入来自下列3个方向中的一个: 累加器A或B 数据总线CB的数据存储器操作数 T寄存器的数据 ALU的输出 ALU的输出为40位,被送入累加器A或BALU溢出处理 和ST1中的OVM有关. 发生溢出时后,溢出标志位OVA或OVB置位,直到复位或执行溢出条件指令时恢复 ALU进位位 ALU的进位位C受大多数算术指令影响(包括循环和移位指令)进位位可以用来支持扩展精度的算术运算进位位不受累加器装载、逻辑运算、其他非算术指令或控制指令影响,所以它还可以用来进行溢出管理 根据进位位的值,可以利用条件操作指令C和NC来进行分支转移、调用或返回操作利用指令RSBX、SSBX或硬件复位来对进位位置位双16位算术运算 CPU状态寄存器ST1的C16如果处于置位状态,用户就可以让ALU在单周期内进行特殊的双16位算术运算,即进行两次16位加法或两次16位减法。

      举例 DADST Lmen,dst,;C16=1 则: ;Lmem(31至16)+T→dst(39至16) ;Lmem(15至0)-T→dst (15至0),;C16=0 则: ;dst=Lmem+(T16+T),累加器A和B,累加器(accumulator)A和B都可以配置成乘法器/加法器或ALU的目的寄存器在执行MIN和MAX指令或者并行指令LD||MAC时,一个累加器执行数据加载,另一个累加器执行运算,累加器A和B都可以匹配成乘法器/加法器或ALU的目的寄存器 A,B;可用PSHM或POPM指令将它们压栈或出栈 AG AH AL BG BH BL 保存累加器的内容 累加器移位和循环移位 SFTA,SFTL,SFTC,ROL,ROR,ROLTC 饱和处理累加器内容 专用指令,桶形移位寄存器,C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标 在ALU运算前,对来自数据存储器的操作数或者累加器的值进行预定标 执行累加器的值的一个逻辑或算术运算 对累加器的值进行归一化处理 对存储到数据存储器之前的累加器的值进行定标 它能将输入数据进行0~31位的左移和0~16位的右移。

      所移动的位数可由ST1中的ASM或被指定的暂存器T决定 ADD A,-4,B ;累加器A右移4位后加到累加器B ADD A,ASM,B ;累加器A按ASM规定的移位数移位后加到累加器B NORM A ;按T寄存器中的数值对累加器归一化,乘法/累加器,C54x的MAC是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器几个部分组成 MAC具有强大的乘法-累加运算功能,可在一个流水线周期内完成1次乘法运算和1次加法运算在数字滤波以及自相关等运算中,使用MAC可以大大提高系统的运算速度 举例 MPY #1234H,A ;XM来自于T,YM来自于DB MPYA B ;XM来自于T,YM来自于A MACP *AR2,pmad,A ;XM来自于DB,YM来自于PB,DSP Requires Multiply and Accumulate,比较、选择和存储单元,C54x的选择、比较、存储单元(CSSU)是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择(ACS)操作 从累加器(32bit)选择出较大的字(16bit)并存储在数据存储器中 CCS单元由比较电路COMP、状态转移寄存器TRN和状态比较寄存器TC组成。

      CMPS A,*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-TC, TRN状态转移寄存器,TC测试控制寄存器,If (M1+D1)(M2+D2) then N1= M1+D1 Else N1= M2+D2,指数编码器,指数编码器是一个在单周期内完成EXP指令的专用硬件,其结构如图2.8所示该指令获得累加器中的指数值并以二进制补码的形式(-8至31)把它存储到T中为消除多余符号位而将累加器中的数值左移,其左移的位数和累加器指数值冗于符号位-8有关,当累加器的值超过32位时,这个结果为负数举例 EXP A ; T把累加器A的指数→T ST T,EXPONENT ;保存指数(T)到数据存储区 NORM A ;归一化寄存器A,依靠T的值移动累加器A的值,若:40位累加器A中的定点数FF FFFF F001,则:11111111 11111111111111111111000000000001,1111 1111 1000 0000 0000 1000 0000 0000 0000 0000,则:T=27-8=19,则:Norm A ; 需要左移19位,结果如下,总线结构,C54x系列DSP的总线结构是由8条16位总线构成(4条程序/数据总线和4条地址总线)。

      程序总线PB:传送来自程序存储器的指令和立即数 数据总线CB、DB、EB:连接各个功能单元,如CPU、数据地址产生逻辑、程序地址产生逻辑、片内外设和数据存储器CB、DB传送来自数据存储器被读取的立即数,EB传送被写到存储器去的数据 地址总线PAB、CAB、DAB、EAB传送执行指令所需要的地址总线结构图:,Internal Memory,External Memory,External: 1 access / cycle up to 8M words program,Internal: Up to 4 accesses / cycle,存储器,普通存储器的概念 ROM和RAM 存储器的计算 通常来说,存储器的容量是和它的地址线和数据线有关的在地址线、数据线不复用的情况下,比如10根地址线8根数据线组成的存储器,通常的存储容量就是×8bit,即寻址空间为1024,存储容量为1K字节;又如16根地址线16根数据线组成的存储器,通常的存储容量就是×16bit,即寻址空间为8K,存储容量为8K字,64K Words的DARAM (双访问RAM) 每8K一块,被分成8块,由低地址开始记作DARAM0-DARAM7 在同一块内一个指令周期支持两个操作 64K Words的SARAM (单访问RAM) 每8K一块,被分成8。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.