第2章芯片的运算基础优秀PPT.ppt
《第2章芯片的运算基础优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2章芯片的运算基础优秀PPT.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章芯片的运算基础章芯片的运算基础现在学习的是第1页,共54页 根据参与运算的数据格式来分,根据参与运算的数据格式来分,DSP芯片芯片有定点和浮点两大类。有定点和浮点两大类。TMS320C2000系列系列DSP芯片属于定点芯片属于定点芯片,因此参与运算的数据格式必须采用定点芯片,因此参与运算的数据格式必须采用定点格式,为了使大家能够理解格式,为了使大家能够理解DSP芯片的运算芯片的运算方法,在这一章里我们一起来学习方法,在这一章里我们一起来学习DSP芯片芯片运算的基础知识。运算的基础知识。现在学习的是第2页,共54页2.1 2.1 定标的基本概念定标的基本概念 2.1.1 数的定标数的定标
2、 在在定定点点DSP芯芯片片中中,采采用用定定点点数数进进行行数数值值运运算算,其其操操作作数数一一般般采采用用整整型型数数来来表表示示。一一个个整整型型数数的的最最大大表表示示范范围围取取决决于于DSP芯片所给定的字长,一般为1616位位或或2424位位。显显然然,字字长长越越长长,所所能能表表示示的的数数的的范范围围越越大,精度也越高。大,精度也越高。DSPDSP芯芯片片的的数数以以2的的补补码码形形式式表表示示。每每个个16位数用一个符号位来表示数的正负,0 0表示数值为正,1 1则表示数值为负。其余则表示数值为负。其余1515位表示数值的大小。位表示数值的大小。现在学习的是第3页,共5
3、4页如:n n二进制数0010000000000011b8195n n二进制数1111111111111100b-4现在学习的是第4页,共54页 对DSP芯片而言,参与数值运算的数就是16位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,DSP芯片是如何处理小数的呢?应该说,DSP芯片本身无能为力。那么是不是说DSP芯片就不能处理各种小数呢?当然不是。这其中的关键就是由我们设计者来确定一个数的小数点处于16位中的哪一位。这就是数的定标。现在学习的是第5页,共54页 通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有Q表示法和S表示法两种。下
4、表列出了一个16位数的16种Q表示、S表示及它们所能表示的十进制数值范围。现在学习的是第6页,共54页Q Q表示表示S S表示表示十进制数表示范围十进制数表示范围Q15Q15S0.15S0.15-1X0.9999695-1X0.9999695Q14Q14S1.14S1.14-2X1.9999390-2X1.9999390Q13Q13S2.13S2.13-4X3.9998779-4X3.9998779Q12Q12S3.12S3.12-8X7.9997559-8X7.9997559Q11Q11S4.11S4.11-16X15.9995117-16X15.9995117Q10Q10S5.10S5.1
5、0-32X31.9990234-32X31.9990234Q9Q9S6.9S6.9-64X63.9980469-64X63.9980469Q8Q8S7.8S7.8-128X127.9960938-128X127.9960938Q7Q7S8.7S8.7-256X255.9921875-256X255.9921875Q6Q6S9.6S9.6-512X511.9804375-512X511.9804375Q5Q5S10.5S10.5-1024X1023.96875-1024X1023.96875Q4Q4S11.4S11.4-2048X2047.9375-2048X2047.9375Q3Q3S12.3
6、S12.3-4096X4095.875-4096X4095.875Q2Q2S13.2S13.2-8192X8191.75-8192X8191.75Q1Q1S14.1S14.1-16384X16383.5-16384X16383.5Q0Q0S15.0S15.0-32768X32767-32768X32767现在学习的是第7页,共54页n n同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。例如:n n16进制数2000H8192,用Q0表示n n16进制数2000H0.25,用Q15表示现在学习的是第8页,共54页 从表从表3.1还可以看出,不同的QQ所表示的数不仅所表示的数不仅范
7、围不同,而且精度也不相同。范围不同,而且精度也不相同。Q越大,数值范围越小,但精度越高;相反,Q越小,数值范围越大,但精度就越低。例如,Q0Q0的数值范围是的数值范围是-3276832768到到+32767,其精度为,其精度为1,而,而Q15的数值范围为-1-1到到0.99996950.9999695,精度为 1/32768=0.00003051。因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。现在学习的是第9页,共54页浮点数与定点
8、数的转换关系可表示为:浮点数(x)转换为定点数(xq):xq=(int)x*2Q定点数(xq)转换为浮点数(x):x=(float)xq*2-Q如,浮点数 x=0.5,定标 Q15,则定点数xq 0.5*2Q=16384;反之,一个用 Q15 表示的定点数16384,其浮点数为163842-1516384/32768=0.5。现在学习的是第10页,共54页2.1.2 溢出及处理方法溢出:由于定点数的表示范围是一定的,因此在进行定点数的加法或减法运算时,其结果就有可能超出数值的表示范围的情况。上溢:结果大于最大值。下溢:结果小于最小值。现在学习的是第11页,共54页 在定点运算时,必须考虑溢出的
9、处理方法。否则就有可能导致灾难性的后果。如:两个16位的有符号位数x、y相加,结果也用16位有符号数表示,假设x=32766d=0111111111111110b;y=3d=0000000000000011b;x+y=32766+3=1000000000000001=-32767 现在学习的是第12页,共54页 为了避免这种情况发生,一般在DSP芯片中可以设置溢出的保护功能。设置了溢出功能后,当发生溢出时,DSP芯片自动将结果设置为最大值或最小值。现在学习的是第13页,共54页2.1.3 舍入(rounding)及截尾(truncation)一般对一个数进行取整处理,有以下两种方法:1、舍入:
10、将该数加0.5后,再将小数部分去处。2、截尾:直接将小数部分去处;现在学习的是第14页,共54页例2-1,已知x=123.3,y=123.7,试分别对x、y进行舍入和截尾处理。对x进行舍入:round(x)=round(123.3)trunc(123.3+0.5)=123对x进行截尾:trunc(123.3)=123对y进行舍入:round(y)=round(123.7)trunc(123.7+0.5)=124对y进行截尾:trunc(123.7)=123现在学习的是第15页,共54页 对于DSP芯片的乘法运算,常需要用到舍入处理方法。设两个Q值均为15的16位有符号数进行乘法运算,结果也采用
11、Q15表示的16位数。1、两数相乘,结果放在32位累加器中,Q=30;2、将累加器中的数左移一位,Q=31;3、为了将结果表示为16位,一种方法是直接将低16位截尾,保留高16位,作为乘法结果。另一种方法就是在截尾之前进行舍入处理。方法就是在低16位数的最高位加1,然后将低16位去除,将高16位作为结果。现在学习的是第16页,共54页2.2 定点运算实现的基本原理在编写DSP模拟算法时,为了方便,一般都是采用高级语言来编写模拟程序。程序中所用的变量一般既有整型数,又有浮点数。例2-2 256点汉明窗计算inti;float pi=3.14159;float hamwindow256;for(i
12、=0;iQy,加法/减法结果z的定标值为Qz,则:zx+y zq*2-Q=xq*2-Qx+yq*2-Qy =xq*2-Qx+yq*2(Qx-Qy)*2-Qx =xq+yq*2(Qx-Qy)*2-Qx zq=xq+yq*2(Qx-Qy)*2(Qz-Qx)现在学习的是第20页,共54页所以定点加法可以描述为:int x,y,z;long temp;/*临时变量*/tempy(QxQz),若QxQzz(int)(temp(QzQx),若QxQz现在学习的是第21页,共54页例2-3 定点加法设x0.5,y3.1,则浮点运算结果为zx+y0.5+3.13.6;Qx15,Qy13,Qz13,则定点加法为
13、:x16384;y25395;temp253952)29491;因为z的Q值为13,所以定点值z29491即为浮点值z29491/81923.6。现在学习的是第22页,共54页例2-4 定点减法设x3.0,y3.1,则浮点运算结果为zx-y3.0-3.1-0.1;Qx13,Qy13,Qz15,则定点减法为:x24576;y25395;temp25395;tempx-temp24576-25395-819;因为QxQz,故 z(int)(-819Qy,加法结果z的定标值为Qz,则定点加法为:int x,y;long temp,z;tempy(Qx-Qz),若QxQzztemp32767,因此Qx
14、1,Qy0,Qz0,则定点加法为:x30000;y20000;temp20000135000;因为z的Q值为0,所以定点值z=35000就是浮点值,这里z是一个长整型数。现在学习的是第25页,共54页 当加法或加法的结果超过16位表示范围时,如果我们事先能够了解到这种情况,并且需要保证运算精度时,则必须保持32位结果。如果程序中是按照16位数进行运算的,则超过16位实际上就是出现了溢出。如果不采取适当的措施,则数据溢出会导致运算精度的严重恶化。一般的定点DSP芯片都设有溢出保护功能,当溢出保护功能有效时,一旦出现溢出,则累加器ACC的结果为最大的饱和值(上溢为7FFFh,下溢为8000h),从
15、而达到防止溢出引起精度严重恶化的目的。现在学习的是第26页,共54页2.2.2 乘法运算的C语言定点模拟 设浮点乘法运算的表达式为:float x,y,z;z=xy;假设经过统计后x的定标值为Qx,y的定标值为Qy,乘积z的定标值为Qz,则 z=xy zq*2-Q=xq*yq2-(Qx+Qy)zq=(xq*yq)*2(Qz-(Qx+Qy)现在学习的是第27页,共54页所以定点表示的乘法为:int x,y,z;long temp;temp=(long)x;z=(temp*y)(Qx+Qy-Qz);现在学习的是第28页,共54页例2-6 定点乘法设x=18.4,y=36.8,则浮点运算值为z=18
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 芯片 运算 基础 优秀 PPT
限制150内