TMS320C54X DSP 的定标和归一化问题
看书看到TMS320C54x有一个桶形移位器。
其功能是定标,以及累加器的归一化处理。
初看不大明白,细查资料大致理解。
1 定标。
因为TMS320C54X是定点DSP,本身不能处理浮点数据。
那么为什么不用浮点DSP呢?浮点DSP价格贵,而且功率大。对于手机这类产品,显然用浮点DSP不合适。
我们处理浮点数据,需要对数据位定标。定点DSP处理浮点数据是很麻烦的,经常要进行归一化,还要防止溢出。
所位定标,
也就是,确定小数位多少位。
比如Q15,小数点后就有15位。Q0,小数点后0位,当然就是整数。
定标的处理,实际上就是移位。
2 归一化处理
其实归一化处理涉及比较高级一点的问题。就是浮点数据处理的定点化。
为了保证一定的精度,
对于一个负数,如果前面有一些冗余的符号位,也就是一个比较小的小数,那么可以去掉冗余位,对数据进行左移。
对于一个大的正数,如果后面有不少的0,那么可以右移。因为这些0其实是没有什么实际运算作用。
当然,左移或者右移多少位,要保存起来。
TMS320C54X有两条指令,来做归一化。
首先是EXP src指令。计算能够移多少位,比如一个数有20个冗余符号位,那么能够左移20-8=12位,这个12会保存到T寄存