7.1.2溢出的处理方法 1.溢出 •如果算术运算结果超出寄存器所能表示的最大 数就会出现溢出: ◆因为16位定点DSP的动态范围有限,所以在使 用时必须注意动态范围以防溢出; ●溢出还与输入信号的特性和运算法则有关。 13
7.1.2 溢出的处理方法 ⚫如果算术运算结果超出寄存器所能表示的最大 数就会出现溢出; ◆因为16位定点DSP的动态范围有限,所以在使 用时必须注意动态范围以防溢出; ⚫溢出还与输入信号的特性和运算法则有关 。 1. 溢出 13
2.C55x的溢出处理机制 C55x有以下几种硬件特性可以处理溢出 39~32 31~16 15~0 ACO ACOG ACOH ACOL AC1 ACIG ACIH ACIL AC2 AC2G AC2H AC2L ●保护位 AC3 AC3G AC3H AC3L C55x的每个累加器都有8个保护位(39~32位), 允许连续256次乘加操作而累加器不溢出; 溢出标志位(ACOV0~ACOV3) C55x的每个累加器都有相关的溢出标志位,当累 加器操作结果出现溢出时,这个标志位就会置位。 14
2. C55x的溢出处理机制 C55x有以下几种硬件特性可以处理溢出: ⚫ 保护位 C55x的每个累加器都有8个保护位(39~32位), 允许连续256次乘加操作而累加器不溢出; ⚫ 溢出标志位 (ACOV0 ~ACOV3 ) C55x的每个累加器都有相关的溢出标志位, 当累 加器操作结果出现溢出时,这个标志位就会置位。 14 AC0G AC0H AC0L AC1G AC1H AC1L AC2G AC2H AC2L AC3G AC3H AC3L AC0 AC1 AC2 AC3 39~32 31~16 15~0
饱和方式位SATD和SATA ◆SATD控制D单元的操作,SATA控制A单元的操作。 ◆若SATD=1,当D单元发生谥出时,对D单元结果进 行饱和处理。不管饱和方式位值是什么,当累加器发 生溢出时,相应溢出标志位(ACOVx)都会被置位; ◆A单元没有溢出标志位,但如果SATA=1,发生溢出 时,结果也会进行饱和处理 汝饱和处理是用最近的边界值代替谥出结果 例,16位寄存器范围是8000h(最小负数)~7FFFh(最大正数), 饱和处理就是:用7FFFh代替比7FFFh大的结果; 用8000h代替比8000h小的结果。 15
⚫饱和方式位SATD和SATA ◆ SATD控制D单元的操作, SATA控制A单元的操作。 ◆ 若SATD=1, 当D单元发生溢出时, 对D单元结果进 行饱和处理。不管饱和方式位值是什么, 当累加器发 生溢出时, 相应溢出标志位(ACOVx)都会被置位; ◆ A单元没有溢出标志位, 但如果SATA=1, 发生溢出 时, 结果也会进行饱和处理。 ☼ 饱和处理是用最近的边界值代替溢出结果。 例, 16位寄存器范围是8000h(最小负数)~7FFFh(最大正数), 饱和处理就是: 用7FFFh代替比7FFFh大的结果; 用8000h代替比8000h小的结果。 15
input scaling,fixed scaling,and dynamic 3.溢出的处理方法 scaling. 饱和。饱和是一种处理溢出的方法,但是饱和会剪掉 部分输出信号,可能会引起信号失真和引起系统非线 性。 ●输入定标input scaling。分析所要使用的系统,假 定最坏的情况,然后对输入信号定标,以防止溢出。 但是这种方法会极大地降低输出信号的精确度。 ●固定定标fixed scaling。假定最坏情况,对中间结果 定标。该方法可防止溢出,同时增加了系统的信噪比。 ●动态定标dynamic scaling。可以监测中间结果的范 围,只在需要的时候对中间结果定标。这种方法可以 防止溢出但会增加计算量(计算时间)。 16
⚫饱和。饱和是一种处理溢出的方法,但是饱和会剪掉 部分输出信号,可能会引起信号失真和引起系统非线 性。 ⚫输入定标input scaling。分析所要使用的系统,假 定最坏的情况,然后对输入信号定标,以防止溢出。 但是这种方法会极大地降低输出信号的精确度。 ⚫固定定标fixed scaling。假定最坏情况,对中间结果 定标。该方法可防止溢出, 同时增加了系统的信噪比。 ⚫动态定标dynamic scaling。可以监测中间结果的范 围,只在需要的时候对中间结果定标。这种方法可以 防止溢出但会增加计算量(计算时间)。 3. 溢出的处理方法 16 input scaling, fixed scaling, and dynamic scaling
7.1 定标与溢出处理 ■7.1.1数的定标 ■7.1.2溢出的处理方法 ■7.1.3常用信号处理算法中的定标方法 TMS320C55x DSP Programmer's Guide Preliminary Draft (SPRU376A.2001) 5.5 Methods of Handling Overflows 17
7.1 定标与溢出处理 ◼ 7.1.1 数的定标 ◼ 7.1.2 溢出的处理方法 ◼ 7.1.3 常用信号处理算法中的定标方法 17 5.5 Methods of Handling Overflows TMS320C55x DSP Programmer’s Guide Preliminary Draft (SPRU376A, 2001年)