2.3C54x的内部总线结构2.4C54x的中央处理器.pptVIP

  • 57
  • 0
  • 约1.15万字
  • 约 43页
  • 2017-02-16 发布于福建
  • 举报

2.3C54x的内部总线结构2.4C54x的中央处理器.ppt

3条数据总线分别与不同功能的内部单元相连接。 如:CPU、程序地址产生逻辑PAGEN、数据地址产生逻辑 DAGEN、片内外设和数据存储器等。 CB和DB用来传送从数据存储器读出的数据; EB用来传送写入存储器的数据。 ’C54x读/写操作占用总线情况 CPU包括下列基本部件: ① 40位算术逻辑运算单元ALU; ② 2个40位的累加器A和B; ③ 支持-16~31位移位范围的桶形移位寄存器; ④ 能完成乘法-加法运算的乘法累加器MAC; ⑤ 16位暂存寄存器T; ⑥ 16位转移寄存器TRN; ⑦ 比较、选择、存储单元CSSU; ⑧ 指数译码器; ⑨ CPU状态和控制寄存器。 2.4.1 算术逻辑运算单元ALU (Arithmetic Logic Unit) ALU的功能框图 1.ALU的输入和输出 2.溢出处理 3.进位位C 4.双16位算术运算 2.4.2 累加器A和B (Accumulator) 2.4.2 累加器A和B 2.4.2 累加器A和B 【例2.4.1】累加器A=FF 0123 4567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。 2.4.3 桶形移位寄存器 (Barrel Shifter) 2.桶形移位寄存器的输入 4.桶形移位寄存器的功能 5.桶形移位寄存器的操作 (2) 控制操作数的移位 【例2.4.2】 对累加器A执行不同的移位操作。 指数编码器是一个用于支持指数运算指令的专用硬件,可以在单周期内执行EXP指令,求累加器中数的指数值。 乘法-累加单元 (Multiplier/Adder Unit) MAC单元具有强大的乘法-累加运算功能,可在一个流水线周期内完成1次乘法运算和1次加法运算。在数字滤波(FIR和IIR滤波)以及自相关等运算中,使用乘法-累加运算指令可以大大提高系统的运算速度。 2.4.4 乘法-累加单元MAC (2)乘法器的输出 乘法器的输出经小数控制电路接至加法器的XA输入端。 (1)加法器的输入 XA输入:来自乘法器的输出。 YA输入: ①?来自累加器A的操作数; ② 来自累加器B的操作数。 (2)加法器的输出 输出经零检测器、舍入器和溢出/饱和逻辑电路后,将产生的状态标志送入状态寄存器,并将运算结果送入累加器A或B。 ’C54x的比较、选择和存储单元(CSSU)是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择(ACS)操作。 CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。 例如,CMPS指令可以对累加器的高阶位和低阶位进行比较,并选择较大的数存放在指令所指定的存储单元中。 指令格式: CMPS A,*AR1 功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较, 若AHAL,则AH→*AR1,0→TRN(0), 0→TC; 若AHAL,则AL→*AR1,1→TRN(0),1→TC。 ’C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为: 由于这些寄存器都是存储器映像寄存器,因此可以很方便地对它们进行如下数据操作: 1.状态寄存器0(ST0) 2.状态寄存器1 (ST1) 3.工作方式状态寄存器PMST IPTR:用来指示中断向量所驻留的128字程序存储器的位置; MP/MC:用来确定是否允许使用片内程序存储器ROM OVLY:用来决定片内双寻址数据RAM是否映射到程序空间。 AVIS:用来决定是否可以从器件地址引脚线看到内部程序空间地址线; DROM:用来决定片内ROM是否可以映射到数据存储空间; CLKOFF:用来决定时钟输出引脚CLKOUT是否有信号输出; SMUL:用来决定乘法结果是否需要进行饱和处理; SST:用来决定累加器中的数据在存储到存储器之前,是否需要饱和处理。 第2章 TMS320C54x的硬件结构 (3)乘法器的操作 由于乘法器在进行两个16位二进制补码相乘时会产生两个符号位,为提高运算精度,在状态寄存器ST1中设置了小数方式控制位FRCT。(P236) 当FRCT=1时,乘法结果左移一位,消去多余的符号位,相应的定标值加1。 第2章 TMS320C54x的硬件结构 2. 专用加法器 在MAC单元中,专用加法器用来完成乘积项的累加运算。 专用加法器 加法器 零检测器

文档评论(0)

1亿VIP精品文档

相关文档