2.3C54x的内部总线结构2.4C54x的中央处理器_第1页
2.3C54x的内部总线结构2.4C54x的中央处理器_第2页
2.3C54x的内部总线结构2.4C54x的中央处理器_第3页
2.3C54x的内部总线结构2.4C54x的中央处理器_第4页
2.3C54x的内部总线结构2.4C54x的中央处理器_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 TMS320C54x的硬件结构,2.3 C54x的内部总线结构,TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。,总线结构,1组程序总线PB 3组数据总线CB、DB、EB 4组地址总线PAB、CAB、DAB、EAB,第2章 TMS320C54x的硬件结构,1程序总线PB,主要用来传送取自程序存储器的指令代码和立即操作数。 PB总线既可以将程序空间的操作数据(如系数表)送至数据空间的目标地址中,以实现数据移动,也可以将程序空间的操作数据传送乘法器和加法器中,以便执行乘法-累加操作。,第2章 TMS320C54x的硬件结构,2数据总线CB 、DB和EB

2、,3条数据总线分别与不同功能的内部单元相连接。 如:CPU、程序地址产生逻辑PAGEN、数据地址产生逻辑 DAGEN、片内外设和数据存储器等。 CB和DB用来传送从数据存储器读出的数据; EB用来传送写入存储器的数据。,3地址总线PAB、CAB、DAB和EAB 用来提供执行指令所需的地址。,第2章 TMS320C54x的硬件结构,C54x读/写操作占用总线情况,第2章 TMS320C54x的硬件结构,2.4 C54x的中央处理器CPU,CPU是DSP器件的核心部件,它的性能直接关系到DSP器件的性能。,第2章 TMS320C54x的硬件结构,CPU包括下列基本部件: 40位算术逻辑运算单元AL

3、U; 2个40位的累加器A和B; 支持-1631位移位范围的桶形移位寄存器; 能完成乘法-加法运算的乘法累加器MAC; 16位暂存寄存器T; 16位转移寄存器TRN; 比较、选择、存储单元CSSU; 指数译码器; CPU状态和控制寄存器。,第2章 TMS320C54x的硬件结构,2.4.1 算术逻辑运算单元ALU (Arithmetic Logic Unit),C54x使用40位的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。 C54x的大多数算术逻辑运算指令都是单周期指令,其运算结果通常自动送入目的累加器A或B。 但在执行存储器到存储器的算术逻辑运算指令时(如ADDM、AN

4、DM、ORM和XORM),其运算结果则存入指令指定的目的存储器。,第2章 TMS320C54x的硬件结构,ALU的功能框图,第2章 TMS320C54x的硬件结构,1ALU的输入和输出,根据输入源的不同,ALU采用不同的输入方式。,(1) ALU的X输入源 来自桶形移位寄存器输出的操作数; 来自数据总线DB中的操作数。,(2) ALU的Y输入源 来自累加器A中的数据; 来自累加器B中的数据; 来自数据总线CB中的操作数; 来自T寄存器中的操作数。,(3) ALU输入数据的预处理,当16位数据存储器操作数通过数据总线DB或CB输入时,ALU将采用两种方式对操作数进行预处理。, 若数据存储器的16

5、位操作数在低16位时,则 当SXM=0时,高24位 ( 3916位 ) 用0填充; 当SXM=1 (ST1中)时高24位 ( 3916位 ) 扩展为符号位。, 若数据存储器的16位操作数在高16位时,则 当SXM=0时,3932位和150位用0填充; 当SXM=1时,3932位扩展为符号位,150位置0。,(4) ALU的输出 ALU的输出为40位运算结果,通常被送至累加器A或B。,2溢出处理,ALU的饱和逻辑可以对运算结果进行溢出处理。当发生溢出时,将运算结果调整为最大正数(正向溢出)或最小负数(负向溢出)。,当运算结果发生溢出时:, 若OVM=0(状态寄存器ST1中),则对ALU的运算结果

6、不作任何调整,直接送入累加器;, 若OVM=1,则对ALU的运行结果进行调整。,当正向溢出时,将32位最大正数00 7FFFFFFFH(最大正数)装入累加器; 当负向溢出时,将32位最小负数FF 80000000H(最小负数)装入累加器。,状态寄存器ST0中与目标累加器相关的溢出标志OVA或OVB被置1。,3进位位C,ALU有一个与运算结果有关的进位位C,位于ST0的11位。进位位C受大多数ALU操作指令的影响,包括算术操作、循环操作和移位操作。,进位位C的功能:, 用来指明是否有进位发生; 用来支持扩展精度的算术运算; 可作为分支、调用、返回和条件操作的执行 条件。,注意: 进位位C不受装载

7、累加器操作、逻辑操作、 非算术运算和控制指令的影响; 可通过寄存器操作指令RSBX和SSBX对 其进行置位和复位。,第2章 TMS320C54x的硬件结构,4双16位算术运算,若要将ST1中的C16置位,则ALU进行双16位算术运算,即在一个机器周期内完成两个16位数的算术运算,进行两次16位加法或两次16位减法运算。,5其他控制位,除SXM、OVM、C、C16、OVA、OVB外,ALU还有两个控制位。 TC测试/控制标志,位于ST0的12位; ZA/ZB累加器结果为0标志位。,第2章 TMS320C54x的硬件结构,2.4.2 累加器A和B (Accumulator),C54x芯片有两个独立

8、的40位累加器A和B,可以作为ALU或MAC的目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。 在执行并行指令(LD|MAC)和一些特殊指令(MIN和MAX)时,两个累加器中的一个用于装载数据,而另一个用于完成运算。,第2章 TMS320C54x的硬件结构,2.4.2 累加器A和B,1. 累加器结构,保护位:AG、BG 3932,作为算术计算时的数据位余量,以防止迭代运算中的溢出。,高阶位:AH、BH 3116;,低阶位:AL、 BL 150。,2.4.2 累加器A和B,2.带移位的累加器存储操作,使用STH、STL、STLM、SACCD等指令或并行存储指令,可以把累加器中的内容

9、保存到数据存储器中。, 使用STH、SACCD和并行存储指令存储累加器内容,先将累加器内容移位,再将高16位存入存储器。,右移存储:AG(BG)右移AH(BH),AH(BH)存入存储器;,左移存儲:AL(BL)左移AH(BH),AH(BH)存入存储器。, 使用STL指令存储累加器内容,先将累加器内容移位,再将低16位存入存储器。,右移存储,AH(BH)右移AL(BL),AL(BL)存入存储器;,左移存储,用0左移AL(BL),AL(BL)存入存储器。,注意: 移位操作是在存储累加器内容的过程中 同时完成的; 移位操作是在移位寄存器中完成的,累 加器的内容保持不变。,第2章 TMS320C54x

10、的硬件结构,【例2.4.1】累加器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 0,6 7 0 0,T = 6700H, A=F

11、F 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,第2章 TMS320C54x的硬件结构,2.4.3 桶形移位寄存器 (Barrel Shifter),TMS320C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标。它能将输入数据进行031位的左移和016位的右移。所移动的位数可由ST1中的ASM或被指定的暂存器T决定。,第2章 TMS320C54x的硬件结构,1. 组成框图, 多路选择器MUX, 符号控制SC, 移位寄存器, 写选择电路

12、, 多路选择器MUX,用来选择输入数据。, 符号控制SC,用于对输入数据进行符号位扩展。, 移位寄存器,用来对输入的数据进行定标和移位。, 写选择电路,用来选择最高有效字和最低有效字。,2桶形移位寄存器的输入,通过多路选择器MUX来选择输入信号。, 取自DB数据总线的16位 输入数据;, 取自DB和CB扩展数据总 线的32位输入数据;, 来自累加器A或B的40位 输入数据。,3桶形移位寄存器的输出, 输出至ALU的一个输入端 ;, 经写MSW/LSW(最高/最低有效字)写选择电路 输出至EB总线。,第2章 TMS320C54x的硬件结构,4桶形移位寄存器的功能,主要用于格式化操作,为输入的数据

13、定标 。, 在进行ALU运算之前,对输入数据进行数据定标; 对累加器进行算术或逻辑移位; 对累加器进行归一化处理; 在累加器的内容存入数据存储器之前,对存储数 据进行定标。,第2章 TMS320C54x的硬件结构,5桶形移位寄存器的操作,(1) 控制操作数的符号位扩展,根据SXM位控制操作数进行符号位的扩展。,若操作数为有符号数,则,当SXM=1时,完成符号位扩展; 当SXM=0时,禁止符号位扩展。,若操作数为无符号数,则不考虑SXM位,不执行符号位的扩展。,如:LDU、ADDS和SUBS指令,操作数为无符号数,不进行符号位扩展。,第2章 TMS320C54x的硬件结构,(2) 控制操作数的移

14、位,根据指令中的移位数,控制操作数进行移位操作。移位数用二进制补码表示,正值时完成左移,负值时完成右移。,移位数的形式:, 5位立即数,取值范围:-1615; ST1中的ASM位,取值范围:-1615; 暂存器T中的低6位数值,取值范围:-1631。,这种移位操作能使CPU完成数据的定标、位提取、扩展算术和溢出保护等操作。,【例2.4.2】 对累加器A执行不同的移位操作。,ADD A, - 4,B ;A右移4位后加到B中 ADD A, ASM,B ;A按ASM移位后加到B中 NORM A ;按T的数值对A进行归一化,桶形移位寄存器和指数译码器可以将累加器中的数值在一个周期内进行归一化处理。,例

15、如,40位累加器A中的定点数为FF FFFF F001。, 先用EXP A指令,求得它的指数为13H,存放在T寄存器中。 然后再执行NORM A指令,可在单个周期内将原来的定点数分成尾数FF 8008 0000和指数13H两个部分。 (书p239,定点转浮点),第2章 TMS320C54x的硬件结构,2.4.6 指数编码器EXP,指数编码器是一个用于支持指数运算指令的专用硬件,可以在单周期内执行EXP指令,求累加器中数的指数值。,功能:求累加器中数据的指数值。 指数值=冗余符号位-8,第2章 TMS320C54x的硬件结构,(3) 控制操作数完成带测试位的移位,根据ROLTC指令,控制操作数完

16、成带测试位的循环左移。,(4)完成MSW和LSW的写选择,MSW/LSW单元根据CSSU信号,选择移位后的信号锁存,并输出至EB总线。,乘法-累加单元 (Multiplier/Adder Unit),MAC单元具有强大的乘法-累加运算功能,可在一个流水线周期内完成1次乘法运算和1次加法运算。在数字滤波(FIR和IIR滤波)以及自相关等运算中,使用乘法-累加运算指令可以大大提高系统的运算速度。,第2章 TMS320C54x的硬件结构,2.4.4 乘法-累加单元MAC,C54x的乘法-累加单元MAC是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器几部分组成。,1. 乘法器

17、,MAC单元包含一个1717位硬件乘法器,可完成有符号数和无符号数的乘法运算。,(1)乘法器的输入,XM输入:,YM输入:, 取自数据总线DB的数据存储器操作数; 来自暂存器T的操作数; 来自累加器A的3216位操作数。, 来自数据总线DB的数据存储器操作数; 来自数据总线CB的数据存储器操作数; 来自程序总线PB的程序存储器操作数; 来自累加器A的3216位操作数。,第2章 TMS320C54x的硬件结构,1. 乘法器,(2)乘法器的输出 乘法器的输出经小数控制电路接至加法器的XA输入端。,(3)乘法器的操作 MAC单元的乘法器能进行有符号数、无符号数以及有符号数与无符号数的乘法运算。,第2

18、章 TMS320C54x的硬件结构,(3)乘法器的操作,根据操作数的不同情况需进行以下处理:, 若是两个有符号数相乘,则在进行乘法运算之前,先对两个16位乘数进行符号位扩展,形成17位有符号数后再进行相乘。 扩展的方法:在每个乘数的最高位前增加一个符号位,其值由乘数的最高位决定,即正数为0,负数为1。, 若是两个无符号数相乘,则在两个16位乘数的最高位前面添加“0”,扩展为17位乘数后再进行乘运算。, 若是有符号数与无符号数相乘,则有符号数在最高位前添加1个符号位,其值由最高位决定,而无符号数在最高位前面添加“0”,然后两个操作数相乘。,第2章 TMS320C54x的硬件结构,(3)乘法器的操

19、作,由于乘法器在进行两个16位二进制补码相乘时会产生两个符号位,为提高运算精度,在状态寄存器ST1中设置了小数方式控制位FRCT。(P236) 当FRCT=1时,乘法结果左移一位,消去多余的符号位,相应的定标值加1。,第2章 TMS320C54x的硬件结构,2. 专用加法器,在MAC单元中,专用加法器用来完成乘积项的累加运算。,专用加法器,加法器 零检测器 舍入器 溢出/饱和逻辑电路,舍入器:用来对运算结果进行舍入处理,即将目标累加器中的内容加上215,然后将累加器的低16位清零。,第2章 TMS320C54x的硬件结构,2. 专用加法器,(1)加法器的输入 XA输入:来自乘法器的输出。 YA

20、输入: 来自累加器A的操作数; 来自累加器B的操作数。 (2)加法器的输出 输出经零检测器、舍入器和溢出/饱和逻辑电路后,将产生的状态标志送入状态寄存器,并将运算结果送入累加器A或B。,第2章 TMS320C54x的硬件结构,2.4.5 比较、选择和存储单元CSSU (Compare, Select, and Store Unit ),C54x的比较、选择和存储单元(CSSU)是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择(ACS)操作。,比较电路COMP,状态转移寄存器TRN,状态比较寄存器TC,多路选择器MUX,MUX,MUX,COMP,COMP,TRN,TR

21、N,TC,TC,2.4.5 比较、选择和存储单元CSSU,CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。, 比较电路COMP将累加器A或B的高阶位与低阶位进行比较;, 比较结果分别送入TRN和TC中,记录比较结果以便程序调试;, 比较结果输出至写选择电路,选择较大的数据;, 将选择的数据通过总线EB存入指定的存储单元。,工作过程:,第2章 TMS320C54x的硬件结构,2.4.5 比较、选择和存储单元CSSU,例如,CMPS指令可以对累加器的高阶位和低阶位进行比较,并选择较大的数存放在指令所指定的存储单元中。 指令格式: CMPS

22、A,*AR1 功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较, 若AHAL,则AH*AR1,0TRN(0), 0TC; 若AHAL,则AL*AR1,1TRN(0),1TC。,第2章 TMS320C54x的硬件结构,2.4.7 CPU状态和控制寄存器,C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为:,状态寄存器0(ST0) 状态寄存器1(ST1) 工作方式状态寄存器(PMST),ST0和ST1主要包含各种工作条件和工作方式的状态; PMST包含存储器的设置状态和其他控制信息。,第2章 TMS320C54x的硬件结构,2.4.7 CPU状态和控制寄存器,由于

23、这些寄存器都是存储器映像寄存器,因此可以很方便地对它们进行如下数据操作:, 将它们快速地存放到数据存储器; 由数据存储器对它们进行加载; 用子程序或中断服务程序保存和恢复 处理器的状态。,第2章 TMS320C54x的硬件结构,2.4.7 CPU状态和控制寄存器,1状态寄存器0(ST0),主要反映处理器的寻址要求和计算机的运行状态。,ST0的结构:,ARP,ARP:辅助寄存器指针。 用来选择使用单操作数间接寻址时的 辅助寄存器AR0AR7。,TC,TC:测试/控制标志。 用来保存ALU测试操作的结果。,C,C:进位标志位。 用来保存ALU加减运算时所产生的进/借位。,OVA/B:累加器A/B的

24、溢出标志。 用来反映A/B是否产生溢出。,DP,DP:数据存储器页指针。 用来与指令中提供的7位地址结合形成1个 16位数据存储器的地址。,第2章 TMS320C54x的硬件结构,2.4.7 CPU状态和控制寄存器,2状态寄存器1 (ST1),BRAF:块重复操作标志位。 用来指示当前是否在执行块重复操作。 BRAF=0 表示当前不进行重复块操作; BRAF=1 表示当前正在进行块重复操作。,CPL:直接寻址编辑方式标志位; 用来指示直接寻址选用何种指针。 CPL=0 选用数据页指针DP的直接寻址; CPL=1 选用堆栈指针SP的直接寻址。,XF:外部XF引脚状态控制位。 用来控制XF通用外部

25、输出引脚的状态。 执行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 将运算的溢出结果直接加载到累加器中; OVM=1 当正溢出时,将007FFFFFFFH加载累加器; 当负溢出时,将FF80000000H加载累加器。,SXM:符号位扩展方式控制位;用来确定数据 在运算之前是否需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论