首页 理论教育 TMS320C54x CPU内部的桶形移位器功能分析

TMS320C54x CPU内部的桶形移位器功能分析

时间:2023-06-20 理论教育 版权反馈
【摘要】:TMS320C54x CPU内部有一个40位的桶形移位器,主要用于累加器或数据区操作数的定标。40位桶形移位器的功能框图如图3-5所示。具体选择以上哪个数据作为桶形移位器的输入由多路选择器MUX来控制,MUX的作用就是用来选择输入数据。桶形移位器的输出端连接到:1)ALU的一个输入端。桶形移位寄存器和指数编码器可以将累加器中的数值在一个周期内进行归一化处理。

TMS320C54x CPU内部的桶形移位器功能分析

在定点DSP中,采用定点数进行数值运算,其操作数一般采用整型数来表示。TMS320C54X是一款16位定点DSP,对于DSP而言,参与数值运算的数就是16位的整型数。但在许多情况下,数值运算过程中的数不一定都是整数。那么,如何让定点DSP处理小数呢?这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位,通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数,这就是数的定标。在DSP中,数的定标是通过移位来实现的。

TMS320C54x CPU内部有一个40位的桶形移位器,主要用于累加器或数据区操作数的定标。它能对输入的数据进行0~31位的左移和0~16位的右移操作。40位桶形移位器的功能框图如图3-5所示。

978-7-111-35536-6-Chapter03-11.jpg

图3-540 位桶形移位器的功能框图

1.桶形移位器的输入和输出

桶形移位器的输入端连接到:

1)DB,取得16位输入数据。

2)DB和CB,取得32位输入数据。

3)40位累加器A或B。

具体选择以上哪个数据作为桶形移位器的输入由多路选择器MUX来控制,MUX的作用就是用来选择输入数据。

桶形移位器的输出端连接到:

1)ALU的一个输入端。

2)经过MSW/LSW(最高有效字/最低有效字)写选择单元至EB总线。

2.桶形移位器的功能

桶形移位器可以对如下操作进行数据定标:

1)在进行ALU运算之前,对一个输入的数据存储器操作数或累加器的值进行预定标。

2)对累加器的值进行一个算术或逻辑移位。

3)对累加器的值进行归一化处理。(www.xing528.com)

4)在累加器的值存入数据存储器之前,对累加器进行定标。

3.桶形移位器可进行的操作

(1)控制操作数的符号位扩展

状态寄存器ST1中的符号扩展方式控制位SXM控制数据操作数进行带符号位/不带符号位扩展。若操作数为有符号数,则当SXM=1时,完成符号位扩展;当SXM=0时,禁止符号位扩展。若操作数为无符号数,则不考虑SXM位,不执行符号位的扩展。例如有些指令(如LDU、ADDS和SUBS指令),操作数为无符号数,则不进行符号位扩展。

(2)控制操作数的移位

桶形移位器的移位操作支持CPU完成数据的定标、位提取、扩展算术和溢出保护等操作。指令中的移位数就是移位的位数,根据指令中的移位数控制操作数进行移位操作。移位数都用二进制补码表示,正值表示左移,负值表示右移。移位数可以用以下方式来定义:

1)一个立即数,取值范围为−16~15。

2)状态寄存器ST1的累加器移位方式位ASM,共5位,取值范围为−16~15。

3)暂存器T中的最低6位的数值,取值范围为−16~31。

(3)控制操作数完成带测试位的移位

根据ROLTC指令,控制操作数完成带测试位的循环左移。

(4)完成MSW/LSW的写选择

MSW/LSW单元根据CSSU信号,选择移位后的信号锁存,并输出至EB总线。

例3-3】 对累加器A执行不同的移位操作。

978-7-111-35536-6-Chapter03-12.jpg

最后一条指令对累加器中的数进行归一化是很有用的。桶形移位寄存器和指数编码器可以将累加器中的数值在一个周期内进行归一化处理。假设40位累加器A中的定点数为FF FFFF F001h,可先用“EXP A”指令,求得它的指数为13h,存放在T寄存器中;然后再执行“NORM A”指令,就可以在单个周期内将原来的定点数分成尾数FF 8008 0000h和指数13h两个部分。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈