资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,D,SP 运算基础,1、,DSP,的数据表示,2、定点数的格式与运算,3、浮点数的格式与运算,1、,DSP,的数据表示,格式,字长,16,位,32,位,定点,浮点,24,位,格式和字长决定了数据的,精度,和,动态范围,格式和字长也在一定程度上决定了,DSP,处理器的,成本,、,功耗,和,编程难度,2、,定点数的格式与运算,1.,定点数的格式,1,),Q,n,格式,2,)数值范围与精度,3,)动态范围,2.,定点数的算术运算,1,)定点数的加减法运算,2,)定点数的乘法运算,3,)定点数的除法运算,小数点,1.,定点数的格式,1,),Qn,格式,Q,标志:表示隐含的小数点的位置,二进制补码数01010011b,粗线表示隐含的小数点位置,对于负数(最高位,MSB,为,1,),要先把它转化为无符号二进制数,再进行计算,最后加上负号,例:,8位字长,位,7,MSB,6,5,4,3,2,1,0,LSB,二进制补码,0,1,0,1,0,0,1,1,Q0,符号,2,6,2,5,2,4,2,3,2,2,2,1,2,0,Q4,符号,2,2,2,1,2,0,2,-,1,2,-,2,2,-,3,2,-,4,Q7,符号,2,-,1,2,-,2,2,-,3,2,-,4,2,-,5,2,-,6,2,-,7,定点数与浮点数、定点数与定点数之间的转换关系,浮点数,X,Qn,格式的定点数,Xn,例:,5.1875 Q4,定点数,5.18752,4,83,01010011b,Qn,格式的定点数,Xn,为浮点数,X,例:,(Q7)01010011b,浮点数,83/2,7,0.6484375,Qn,格式的定点数,Xn,Qm,格式的定点数,Xm,例:,(Q7)01010011b Q4,定点数,83/2,7,0.6484375,int(0.6484375 2,4,),int(10.375),10,00001010b,10/2,4,0.625 0.6484375,给定字长,N,,采用,Qn,格式表示小数,数值范围:,精 度:,2,)数值范围与精度,Q,n,格式,数值范围,精度,Q15,-1,0.999969482421875,0.000030517578125,Q14,-2,1.99993896484375,0.00006103515625,Q13,-4,3.9998779296875,0.0001220703125,Q12,-8,7.999755859375,0.000244140625,Q11,-16,15.99951171875,0.00048828125,Q10,-32,31.9990234375,0.0009765625,Q9,-64,63.998046875,0.001953125,Q8,-128,127.99609375,0.00390625,Q7,-256,255.9921875,0.0078125,Q6,-512,511.984375,0.015625,Q5,-1024,1023.96875,0.03125,Q4,-2048,2047.9375,0.0625,Q3,-4096,4095.875,0.125,Q2,-8192,8191.75,0.25,Q1,-16384,16383.5,0.5,Q0,-32768,32767,1,16,位字长,Qn,格式的数值范围与精度,动态范围:数据表示格式中可以表示的最大值与最小值之比,N,位定点数的动态范围:,用分贝表示为:,3,)动态范围,动态范围:数据表示格式中可以表示的最大值与最小值之比定点,DSP,处理器大多采用,16,位定点数,对于要求更大动态范围的应用,可以采用扩展字长的方式,即用两个或更多的字来表示数据,定点,DSP,处理器要求编程时要仔细考虑信号幅值和中间结果,在避免溢出和尽可能减小舍入误差的前提下,使精度和动态范围最大化,2.,定点数的算术运算,1,)定点数的加减法运算,相同的,Qn,格式,保证隐含的小数点对齐,最可能出现的问题是运算结果的溢出,例:两个,8,位数相加,无溢出,进位位与最高位(,MSB,)相同,8,位字长可以表示结果,没有发生数据溢出,11111100b,(,-4,),00101001b,(,41,),+11111110b,(,-2,),+00110011b,(,51,),111111010b,(,-6,),001011100b,(,92,),例:两个,8,位数相加,有溢出,进位位与最高位(,MSB,)不同,运算结果发生溢出,,8,位字长已不能正确地表示结果,10110000b,(,-80,),00101001b,(,41,),+10111111b,(,-65,),+01110011b,(,115,),非饱和模式:,101101111b,(,-145,),非饱和模式:,010011100b,(,156,),饱和模式:,110000000b,(,-128,),饱和模式:,001111111b,(,127,),溢出是由于字长有限,运算结果超出数值的表示范围引起的,饱和模式,定点数减法运算的原理与加法运算相同,2,)定点数的,乘法运算,DSP,处理器都有硬件乘法器和乘法指令,可实现单周期乘法运算,二进制乘法运算包含一系列的移位和加法运算,定点数乘法运算不要求相乘数有相同的,Qn,格式,两个相乘数分别为,Qn,和,Qm,格式,字长为,N,,结果为,Q(n+m),格式,字长为,2N,根据,n,和,m,的不同取值,定点数乘法运算可以分成三种情况,小数乘小数(,n,、,m0,,,m n,),整数乘小数(,n0,、,m=0,),整数乘整数(,n=m=0,),小数乘小数(,n,、,m0,,,m n,),例:两个相乘数分别为,Q7,和,Q6,格式,,8,位字长,两个定点小数作乘法运算,结果左移一位,保存高位得到运算结果,结果为,Qm,(,m,n,)格式,0.1000000b,(,0.5 Q7,),01.100000b,(,1.5 Q6,),000.1100000000000b,(,0.75 Q13,),左移一位:,00.11000000000000b,(,0.75 Q14,),取高,8,位:,00.110000b,(,0.75 Q6,),整数乘小数(,n0,、,m=0,),例:两个相乘数分别为,Q7,和,Q0,格式,,8,位字长,0.1000000b,(,0.5 Q7,),11111001.b,(,-7 Q0,),111111100.1000000b,(,-3.5 Q7,),左移一位:,11111100.10000000b,(,-3.5 Q8,),取高,8,位:,11111100.b,(,-3.Q0,),误差小于等于,Qn,格式精度的一半,即小于等于,1/2,n+1,单次计算的误差并不大,但如果是连续的运算,则误差会累积和传递,从而产生比较大的误差,DSP,处理器提供了自动舍入功能来减小误差,保留整个,32,位,中间结果,小数乘小数、整数乘小数运算都要求对乘积结果左移一位后,保存高位,DSP,处理器带有可选的,自动左移一位,的功能,消除移位操作的时间开销,整数乘整数(,n=m=0,),例:两个相乘数都为,Q0,格式,,8,位字长,整数相乘,结果为,Q0,格式,需查询标志位确定保存的位数,结果不需要左移一位,11111100.b,(,-4 Q0,),11111001.b,(,-7 Q0,),0000000000011100.b,(,28 Q0,),取低,8,位:,00011100.b,(,28 Q0,),3,)定点数的除法运算,大多数,DSP,处理器不提供单周期除法指令,除法是乘法的逆运算,包括一系列移位和条件减法运算,需要用除法子程序实现,例:,8,位字长的正整数相除,被除数为,00001010b,(,10,),除数为,00000011b,(,3,),00001010b,00000110b,商数:,00000001,余数:,00000100b,00001000b,00000110b,商数:,00000011,余数:,00000010b,00000100b,00000110b,余数(丢弃):,11111110b,商数:,00000110,余数:,00000100b,00001000b,00000110b,商数:,00001101,余数:,00000010b,00000100b,00000110b,余数(丢弃):,11111110b,商数:,00011010,余数:,00000100b,00001000b,00000110b,商数:,00110101,余数:,00000010b,对结果的小数点右移一位,得到,Q5,格式的结果,011.01010b,(,3.3125,),最高位,MSB,为符号位,00000100b,00000110b,余数(丢弃):,11111110b,商数:,01101010,余数:,00000100b,计算中,共进行了,7,次移位和条件减操作,得到,8,位(,1,个符号位和,7,个数据位)的结果,要增加精度,可以增加移位和条件减的次数,如,15,次移位和条件减可以得到,16,位的结果,对于两个正的小数相除(,Qn,格式除以,Qm,格式),如,Q3,格式的,00001.010b,(,1.25,)除以,Q2,格式的,000000.11b,(,0.75,),把两个正的小数看作两个,Q0,格式的正整数相除,即,00001010b,(,10,)除以,00000011b,(,3,),与上面例子相同,结果为,Q5,格式,011.01010b,最后对结果的小数点位置,左,移,n-m,位,对于本例,3-2=10,,则结果的小数点左移一位,最后结果为,Q6,格式,01.101010b,(,1.65625,),如果除法运算中包含负数,应将负数变换为等值的正数,然后作除法运算,最后加上正确的符号,2.3,浮点数的格式与运算,1.,浮点数的格式,1,),IEEE754,浮点数格式,2,),TMS320C3X,浮点数格式,3,)浮点数的数值范围、精度和动态范围,2.,浮点数的算术运算,1,)浮点数的加减法运算,2,)浮点数的乘法运算,3,)浮点数的除法运算,浮点数表示为尾数和指数的形式,式中,,m,为尾数,,e,为指数,符号、尾数和指数编码在同一个二进制字中,1.,浮点数的格式,符号、尾数和指数的位数和位域不同,浮点数格式不同,常用的浮点数格式有,IEEE754,标准定义的单精度格式和双精度格式,TI,公司定义的,TMS320C3X,浮点数格式,1,),IEEE754,浮点数格式,单精度格式:24位有效数字,总共占用32 位,双精度格式:53位有效数字精度,并总共占用64位,扩展单精度格式:,扩展双精度格式:必须至少具有64位有效数字,并总共占用至少79 位,表示的数值,通常情况,即,1,e,254,时,四种特殊情况,当,e=0,、,f0,时,尾数是个非归一化的数,当,e=0,、,f=0,时,,x=0,当,e=255,、,f=0,时,,x,为正(,s=0,)或负(,s=1,)的无穷大,当,e=255,、,f0,时,,x,为一个无效数(,NaNNot a Number,),最高位(第,31,位)为符号位,s,32位单精度浮点数,1,100,0011,0101,0010,0000,0000,0000,0000b,32,位单精度浮点数,0011,1101,0011,1110,0000,0000,0000,0000b,例,许多,32,位浮点,DSP,处理器具有,40,位的运算单元,可以进行扩展单精度格式的浮点运算,扩展单精度格式与单精度格式的区别是,扩展单精度格式的尾数增加了,8,位,达到,31,位,2,),TMS320C3X,浮点数格式,16,位短浮点格式,32,位单精度格式,40,位扩展精度格式,32,位单精度浮点数格式用的最多,表示的数值,3,)浮点数的数值范围、精度和动态范围,以,IEEE754,单精度浮点数为例,数值范围,不考虑,s,,当,e=254,,,f,为全,1,最大的数(,1,2,-23,),2,127,=1.70141210,38,,加上符号就对应为正的和负的最大数,IEEE754,单精度浮点数的数值范围为,,1.70141210,38,1.70141210,38,精度,尾数,f,为,23,位,,f,变化的最小值为,1/2,23,与定点数不同,这个最小值并不是浮点数的精度,精度还与指数有关,浮点数的精度是变化的,与数值的大小有关,定点数的数值是等间隔的,由于指数项的存在,浮点数的变化不是等间隔的,指数大、数值大、数值间隔也大;相反,指数小、数值小、数值间隔也小,最大数,(12,-23,)2,127,不考虑,s,当e=1,f 为全零时,得到最小数2,-126,动态范围,动态范围,若考虑,e=0,、,f,0,时的情况,动态范围还会更大,浮点数的数值范围和动态范围都要比定点数大的多,浮点数的精度是变化的,与数值的大小有关,2.,浮点,数的算术运算,浮点数的算术运算分成两个部分,尾数的算术运算,指数的算术运算,设两个浮点数分别为,x1,m1 2,e1,x2,m2 2,e2,m1,和,e1,分别为,x1,的指数和尾数,m2,和,e2,分别为,x2,的指数和尾数,浮点,DSP,处理器提供单周期加法、乘法和乘累加运算,1),浮点,数的加减法运算,设,e1e2,,浮点数,x1,和,x2,的加法为,x1,x2,m12,e1,(m2 2,e2,e1,)2,e1,(m1,m22,e2,e1,)2,e1,加法运算的过程为,先对指数小的数按照指数大的数归正,使两个数的指数相等,然后将归正后的尾数相加,浮点数减法运算的原理与加法运算相,同,2,),浮点,数的乘法运算,浮点数,x1,和,x2,的乘积为,x1 x2,(m1 m2)2,e1,e2,乘法运算的过程,尾数,m1,和,m2,相乘,指数,e1,和,e2,相加,为满足浮点数的格式要求,还需要对尾数乘积的结果进行归一化处理,并相应调整指数值,以及对特殊情况的处理等,3,),浮点,数的,除法,运算,浮点数,x1,除以,x2,为,x1 x2,(m1 m2)2,e1,e2,除法运算的过程为,尾数,m1,除以,m2,指数,e1,和,e2,相减,为满足浮点数的格式要求,还需要对尾数相除的结果进行归一化处理,并相应调整指数值,以及对特殊情况的处理等,浮点,DSP,处理器一般不提供单周期除法指令,浮点除法需要用除法子程序来实现,练习,(1)试写出下述X,Y定点乘法C语言模拟程序,设x=18.4,y=36.8,Qx=10;Qy=9;Qz=5,(2)试写出下述X,Y定点除法C语言模拟程序,设x=18.4,y=36.8,Qx=10;Qy=9;Qz=15,
展开阅读全文