第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、定点点DSPDSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSPDSP芯芯片片所所给给定定的的字字长长,一一般般为为16位位或或24位位。显显然然,字字长长越越长长,所所能能表表示示的的数数的的范范围越大,精度也越高。围越大,精度也越高。DSP芯片的数以2 2的补码形式表示。每个1616位位数数用用一一个个符符号号位位来来表表示示数数的的正正负负,0表示数值为正,1 1则表示数值为负。其余1515位表示数值的大小。第3页,此课件共54页哦如:n n二进制数0010000000000011b8195n n二进制数1111111111111100
3、b-4第4页,此课件共54页哦 对DSP芯片而言,参与数值运算的数就是16位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,DSP芯片是如何处理小数的呢?应该说,DSP芯片本身无能为力。那么是不是说DSP芯片就不能处理各种小数呢?当然不是。这其中的关键就是由我们设计者来确定一个数的小数点处于16位中的哪一位。这就是数的定标。第5页,此课件共54页哦 通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有Q表示法和S表示法两种。下表列出了一个16位数的16种Q表示、S表示及它们所能表示的十进制数值范围。第6页,此课件共54页哦Q Q表示表示S S
4、表示表示十进制数表示范围十进制数表示范围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.10-32X31.9990234-32X31.9990234Q9Q9S6.9S6.9-64X63.9980469-64X63
5、.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.3S12.3-4096X4095.875-4096X4095.875Q2Q2S13.2S13.2-8192X8191.75-
6、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所表示的数不所表示的数不仅范围不同,而且精度也不相同。仅范围不同,而且精度也不相同。Q越大,数值范围越小,但精度越高;相反,QQ越小,数值范围越小,数值范围越大,但
7、精度就越低。例如,越大,但精度就越低。例如,Q0Q0的数值范围是的数值范围是-32768到到+32767+32767,其精度为,其精度为1 1,而Q15的数值范围为的数值范围为-1到0.99996950.9999695,精度为,精度为 1/32768=0.000030511/32768=0.00003051。因此,对定点数而言,数值范围与精度是一对矛盾,因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相牲精度为代价;而想提高精度,则数的表示范围就相应地减小。在实
8、际的定点算法中,为了达到最佳的性应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。能,必须充分考虑到这一点。第9页,此课件共54页哦浮点数与定点数的转换关系可表示为:浮点数(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 溢出及处理方法溢出:由于定点数的表示范围是一定的,因此在进行定点数的
9、加法或减法运算时,其结果就有可能超出数值的表示范围的情况。上溢:结果大于最大值。下溢:结果小于最小值。第11页,此课件共54页哦 在定点运算时,必须考虑溢出的处理方法。否则就有可能导致灾难性的后果。如:两个16位的有符号位数x、y相加,结果也用16位有符号数表示,假设x=32766d=0111111111111110b;y=3d=0000000000000011b;x+y=32766+3=1000000000000001=-32767 第12页,此课件共54页哦 为了避免这种情况发生,一般在DSP芯片中可以设置溢出的保护功能。设置了溢出功能后,当发生溢出时,DSP芯片自动将结果设置为最大值或最
10、小值。第13页,此课件共54页哦2.1.3 舍入(rounding)及截尾(truncation)一般对一个数进行取整处理,有以下两种方法:1、舍入:将该数加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)=
11、123第15页,此课件共54页哦 对于DSP芯片的乘法运算,常需要用到舍入处理方法。设两个Q值均为15的16位有符号数进行乘法运算,结果也采用Q15表示的16位数。1、两数相乘,结果放在32位累加器中,Q=30;2、将累加器中的数左移一位,Q=31;3、为了将结果表示为16位,一种方法是直接将低16位截尾,保留高16位,作为乘法结果。另一种方法就是在截尾之前进行舍入处理。方法就是在低16位数的最高位加1,然后将低16位去除,将高16位作为结果。第16页,此课件共54页哦2.2 定点运算实现的基本原理在编写DSP模拟算法时,为了方便,一般都是采用高级语言来编写模拟程序。程序中所用的变量一般既有整
12、型数,又有浮点数。例2-2 256点汉明窗计算inti;float pi=3.14159;float hamwindow256;for(i=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页
13、哦例2-3 定点加法设x0.5,y3.1,则浮点运算结果为zx+y0.5+3.13.6;Qx15,Qy13,Qz13,则定点加法为: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的定标值为
14、Qz,则定点加法为:int x,y;long temp,z;tempy(Qx-Qz),若QxQzztemp32767,因此Qx1,Qy0,Qz0,则定点加法为:x30000;y20000;temp20000135000;因为z的Q值为0,所以定点值z=35000就是浮点值,这里z是一个长整型数。第25页,此课件共54页哦 当加法或加法的结果超过16位表示范围时,如果我们事先能够了解到这种情况,并且需要保证运算精度时,则必须保持32位结果。如果程序中是按照16位数进行运算的,则超过16位实际上就是出现了溢出。如果不采取适当的措施,则数据溢出会导致运算精度的严重恶化。一般的定点DSP芯片都设有溢出
15、保护功能,当溢出保护功能有效时,一旦出现溢出,则累加器ACC的结果为最大的饱和值(上溢为7FFFh,下溢为8000h),从而达到防止溢出引起精度严重恶化的目的。第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+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 芯片 运算 基础 精选 PPT
限制150内