第3章 DSP芯片的定点运算
- 格式:doc
- 大小:318.50 KB
- 文档页数:16
Simulink代码生成系列(定点数)82010-04-11 21:21:41| 分类:项目4_高性能DSP | 标签: |举报 |字号大中小订阅李会先(整理MATLAB)关于定点数定点数和它们的数据类型以字长、二进制小数点、有符号还是无符号为特征,SIMULINK定点软件支持整数和定点数,它们的主要区别是小数点。
一般的二进制定点数表示为:定点数的标度对于同等字长度,定点数的动态范围远小于浮点数,为了避免溢出和最小化量化误差,定点数需要标度,因此用如下方法来表示一个定点数。
∙V是任意精度的实数∙是实数的近似∙Q是一个存储值,用来编码V∙S=F是斜率∙B是偏差(基准)斜率被分成两个部分:∙确定二进制小数点,E是2的幂指数∙F是斜率调整因子,规范化时1≤F﹤2只有缩放标度的二进制小数∙F=1∙S=F=∙B=0一个被量化的实数的标度用斜率S定义,这被严格的限制为2的幂,负的2的幂指数被称为分数长度,分数长度是二进制小数点右边的比特数。
对于仅有缩放的二进制小数,定点数据类型表示为:∙signed types —fixdt(1, WordLength, FractionLength)∙unsigned types —fixdt(0, WordLength, FractionLength)整数是定点数类型的特殊情况,整数的用斜率为1直接标度,偏差为0,或者相当于分数长度为0,整数表达为:∙signed integer —fixdt(1, WordLength, 0)∙unsigned integer —fixdt(0, WordLength, 0)斜率和偏差(基准)标度当用斜率和偏差标度,被量化的实数的斜率S和偏差B可以使任何值,斜率必须是正数,用S和B定点数被表达为:∙fixdt(Signed, WordLength, Slope, Bias)范围和精度数的范围给出了表达的限制,精度给出了表达连续两数之间的距离,定点数的范围和精度取决于字的长度和标度。
DSP技术知识要点(电信)CHAP11、冯、诺依曼结构和哈佛结构的特点冯、诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
2、DSP芯片的特点(为何适合数据密集型应用)采用哈佛结构;采用多总线结构;采用流水线技术;配有专用的硬件乘法-累加器;快速的指令周期3、定点DSP芯片和浮点DSP芯片的区别及应用特点若数据以定点格式工作的——定点DSP芯片。
若数据以浮点格式工作的——浮点DSP芯片。
浮点DSP芯片,精度高、动态范围大,产品相对较少,复杂成本高。
但不必考虑溢出的问题。
用在精度要求较高的场合。
4、定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换(1)数的总字长:m+n+11位符号位:最高位是符号位,0代表正数,1代表负数m表示数的2的补码的整数部分的位数n表示数的2的补码的小数部分的位数正数:补码=原码负数:补码=原码取反+1(2)m越小,n就越大,则数值范围越小,但精度越高;m越大,n就越小,则数值范围越大,但精度越低。
(3)十进制转换成Qm.n形式:先将数乘以2^n 变成整数,再将整数转换成相应的Qm.n形式不同Qm.n形式之间的转换:不同Qm.n形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。
即n大的数据格式向n小的数据格式转换。
方法:将n 大的数向右移相差的位数,这时原数低位被移出,高位则进行符号扩展。
DSP原理与应用技术-考试知识点总结第一章1、DSP系统的组成:由控制处理器、DSPs、输入/输出接口、存储器、数据传输网络构成。
P2图1-1-12、TMS320系列DSPs芯片的基本特点:XXX结构、流水线操作、专用的硬件乘法器、特殊的DSP指令、快速的指令周期。
3、XXX结构:是一种将程序指令储存和数据储存分开的储存器结构。
特点:并行结构体系,是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。
系统中设置了程序和数据两条总线,使数据吞吐率提高一倍。
4、TMS320系列在XXX结构之上DSPs芯片的改进:(1)允许数据存放在程序存储器中,并被算数运算指令直接使用,增强芯片灵活性(2)指令储存在高速缓冲器中,执行指令时,不需要再从存储器中读取指令,节约了一个指令周期的时间。
5、XXX结构:将指令、数据、地址存储在同一存储器中,统一编址,依靠指令计数器提供的地址来区分是指令、数据还是地址,取指令和去数据都访问同一存储器,数据吞吐率低。
6、流水线操作:TMS320F2812采用8级流水线,处理器可以并行处理2-8条指令,每条指令处于流水线的不同阶段。
解释:在4级流水线操作中。
取指令、指令译码、读操作数、执行操作可独立地处理,执行完全重叠。
在每个指令周期内,4条不同的指令都处于激活状态,每条指令处于不同的操作阶段。
7、定点DSPs芯片:定点格式工作的DSPs芯片。
浮点DSPs芯片:浮点格式工作的DSPs芯片。
(定点DSPs可以浮点运算,但是要用软件。
浮点DSPs 用硬件就可以)8、DSPs芯片的运算速度衡量标准:指令周期(执行一条指令所需时间)、MAC时间(一次乘法和加法的时间)、FFT执行时间(傅立叶运算时间)、MIPS(每秒执行百万条指令)、MOPS(每秒执行百万次操作)、MFLOPS (每秒执行百万次浮点操作)、BOPS(每秒十亿次操作)。
第一章:1、数字信号处理的实现方法一般有哪几种?答:数字信号处理的实现是用硬件软件或软硬结合的方法来实现各种算法。
(1) 在通用的计算机上用软件实现;(2) 在通用计算机系统中加上专用的加速处理机实现;(3) 用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制;(4)用通用的可编程 DSP 芯片实现。
与单片机相比,DSP 芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;(5) 用专用的 DSP 芯片实现。
在一些特殊的场合,要求的信号处理速度极高,用通用 DSP 芯片很难实现( 6)用基于通用 dsp 核的asic 芯片实现。
2、简单的叙述一下 dsp 芯片的发展概况?答:第一阶段, DSP 的雏形阶段( 1980 年前后)。
代表产品: S2811。
主要用途:军事或航空航天部门。
第二阶段, DSP 的成熟阶段( 1990 年前后)。
代表产品: TI 公司的 TMS320C20主要用途:通信、计算机领域。
第三阶段, DSP 的完善阶段( 2000 年以后)。
代表产品:TI 公司的 TMS320C54 主要用途:各个行业领域。
3、可编程 dsp 芯片有哪些特点?答: 1、采用哈佛结构( 1)冯。
诺依曼结构,( 2)哈佛结构( 3)改进型哈佛结构2、采用多总线结构 3.采用流水线技术4、配有专用的硬件乘法-累加器5、具有特殊的 dsp 指令6、快速的指令周期7、硬件配置强8、支持多处理器结构9、省电管理和低功耗4、什么是哈佛结构和冯。
诺依曼结构?它们有什么区别?答:哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯。
诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
《DSP原理及应用(修订版)》邹彦主编课后答案(个人终极修订版)————————————————————————————————作者:————————————————————————————————日期:声明: 1、本人知识能力有限,只能按自己认识来判断答案的正误来编写本资料;2、本资料为《DSP原理及应用(修订版)》邹彦主编的课后答案,仅作参考作用,不一定代表考试方向。
3、请尊重劳动成果,祝大家考试顺利!第一章1、数字信号处理实现方法一般有几种?答:课本P2(2.数字信号处理实现)2、简要地叙述DSP芯片的发展概况。
答:课本P2(1.2.1 DSP芯片的发展概况)3、可编程DSP芯片有哪些特点?答:课本P3(1.2.2 DSP芯片的特点)4、什么是哈佛结构和冯诺依曼结构?他们有什么区别?答:课本P3-P4(1.采用哈佛结构)5、什么是流水线技术?答:课本P5(3.采用流水线技术)6、什么是定点DSP芯片和浮点DSP芯片?它们各有什么优缺点?答:定点DSP芯片按照定点的数据格式进行工作,其数据长度通常为16位、24位、32位。
定点DSP的特点:体积小、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。
浮点DSP芯片按照浮点的数据格式进行工作,其数据长度通常为32位、40位。
由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。
但它的硬件结构相对复杂、功耗较大,且比定点DSP芯片的价格高。
通常,浮点DSP芯片使用在对数据动态范围和精度要求较高的系统中。
7、DSP技术发展趋势主要体现在哪些方面?答:课本P9(3.DSP发展技术趋势)8、简述DSP系统的构成和工作过程。
答:课本P10(1.3.1DSP系统的构成)9、简述DSP系统的设计步骤。
答:课本P12(1.3.3DSP系统的设计过程)10、DSP系统有哪些特点?答:课本P11(1.3.2DSP系统的特点)11、在进行DSP系统设计时,应如何选择合理的DSP芯片?答:课本P13(1.3.4DSP芯片的选择)12、TMS320VC5416-160的指令周期是多少毫秒?它的运算速度是多少MIPS?解:f=160MHz,所以T=1/160M=6.25ns=0.00000625ms;运算速度=160MIPS第二章1、TMS320C54x芯片的基本结构都包括哪些部分?答:课本P17(各个部分功能如下)2、TMS320C54x芯片的CPU主要由几部分组成?答:课本P18(1.CPU)3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY和DROM3个状态位对’C54x的存储空间结构有何影响?答:课本P34(PMST寄存器各状态位的功能表)4、TMS320C54x芯片的内外设主要包括哪些电路?答:课本P40(’C54x的片内外设电路)5、TMS320C54x芯片的流水线操作共有多少个操作阶段?每个操作阶段执行什么任务?完成一条指令都需要哪些操作周期?答:课本P45(1.流水线操作的概念)6、TMS320C54x芯片的流水线冲突是怎样产生的?有哪些方法可以避免流水线冲突?答:由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。
DSP技术知识要点(通信工程 )CHAP1冯、诺依曼结构和哈佛结构的特点冯、诺依曼结构:采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
哈佛结构:采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
DSP芯片的特点(为何适合数据密集型应用:前5点)1.采用哈佛结构2.采用多总线结构3.采用流水线技术4. 配有专用的硬件乘法-累加器5. 具有特殊的DSP指令6.快速的指令周期7.硬件配置强8.支持多处理器结构9.省电管理和低功耗。
定点DSP芯片和浮点DSP芯片的区别及应用特点定点DSP芯片(数据以定点格式工作):精度和范围是不能同时兼顾的。
定点DSP是主流产品,成本低,对存储器要求低、耗电少,开发相对容易,但设计中必须考虑溢出问题。
用在精度要求不太高的场合。
浮点DSP芯片(数据以浮点格式工作):精度高、动态范围大,产品相对较少,复杂成本高。
但不必考虑溢出的问题。
用在精度要求较高的场合。
定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换○1整数表示法:最高位是符号位,0代表正数,1代表负数,其余位以二进制的补码形式表示数值,小数点在D0位。
用于控制操作、地址计算、及其它非信号处理应用。
○2小数表示法:最高位是符号位,0代表正数,1代表负数,其余位以二进制的补码形式表示数值,小数点在Dn-1位。
用于数字和各种信号处理算法的计算中。
○3数的定标;n越大,数值范围越小,但精度越高;相反,n越小,数值范围越大,但精度就越低。
不同Qm.n形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。
·37· 第3章 DSP芯片的定点运算 3.1 数 的 定 标 在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。如无特别说明,本书均以16位字长为例。 DSP芯片的数以2的补码形式表示。每个16位数用一个符号位来表示数的正负,0表示数值为正,1则表示数值为负。其余15位表示数值的大小。因此 二进制数0010000000000011b=8195
二进制数1111111111111100b=-4
对DSP芯片而言,参与数值运算的数就是16位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,DSP芯片是如何处理小数的呢?应该说,DSP芯片本身无能为力。那么是不是说DSP芯片就不能处理各种小数呢?当然不是。这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。这就是数的定标。 通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有Q表示法和S表示法两种。表3.1列出了一个16位数的16种Q表示、S表示及它们所能表示的十进制数值范围。 从表3.1可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。例如: 16进制数2000H=8192,用Q0表示 16进制数2000H=0.25,用Q15表示 但对于DSP芯片来说,处理方法是完全相同的。 从表3.1还可以看出,不同的Q所表示的数不仅范围不同,而且精度也不相同。Q越大,数值范围越小,但精度越高;相反,Q越小,数值范围越大,但精度就越低。例如,Q0的数值范围是-32768到+32767,其精度为1,而Q15的数值范围为-1到0.9999695,精度为 1/32768 = 0.00003051。因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。 浮点数与定点数的转换关系可表示为: 浮点数(x)转换为定点数(xq):Qqx2x(int)
定点数(qx)转换为浮点数(x):Qqx2)float(x
例如,浮点数 x=0.5,定标 Q=15,则定点数qx=16384327685.0,式中
表示下取整。反之,一个用 Q=15 表示的定点数16384,其浮点数为16384×2
-15
=16384/32768=0.5。 ·38·
表3.1 Q表示、S表示及数值范围 Q表示 S表示 十进制数表示范围 Q15 S0.15 -1≤X≤0.9999695 Q14 S1.14 -2≤X≤1.9999390 Q13 S2.13 -4≤X≤3.9998779 Q12 S3.12 -8≤X≤7.9997559 Q11 S4.11 -16≤X≤15.9995117 Q10 S5.10 -32≤X≤31.9990234 Q9 S6.9 -64≤X≤63.9980469 Q8 S7.8 -128≤X≤127.9960938 Q7 S8.7 -256≤X≤255.9921875 Q6 S9.6 -512≤X≤511.9804375 Q5 S10.5 -1024≤X≤1023.96875 Q4 S11.4 -2048≤X≤2047.9375 Q3 S12.3 -4096≤X≤4095.875 Q2 S13.2 -8192≤X≤8191.75 Q1 S14.1 -16384≤X≤16383.5 Q0 S15.0 -32768≤X≤32767
3.2 高级语言:从浮点到定点 在编写DSP模拟算法时,为了方便,一般都是采用高级语言(如C语言)来编写模拟程序。程序中所用的变量一般既有整型数,又有浮点数。如例3.1程序中的变量i是整型数,而pi是浮点数,hamwindow则是浮点数组。 例3.1 256点汉明窗计算 inti; float pi=3.14159; float hamwindow[256]; for(i=0;i<256;i++) hamwindow[i]=0.54-0.46*cos(2.0*pi*i/255); 如果要将上述程序用某种定点DSP芯片来实现,则需将上述程序改写为DSP芯片的汇编语言程序。为了DSP程序调试的方便及模拟定点DSP实现时的算法性能,在编写DSP汇编程序之前一般需将高级语言浮点算法改写为高级语言定点算法。下面讨论基本算术运算的定点实现方法。
3.2.1 加法/减法运算的C语言定点模拟 设浮点加法运算的表达式为: float x,y,z; ·39·
z=x+y; 将浮点加法/减法转化为定点加法/减法时最重要的一点就是必须保证两个操作数的定标值一样。若两者不一样,则在做加法/减法运算前先进行小数点的调整。为保证运算精度,需使Q值小的数调整为与另一个数的Q值一样大。此外,在做加法/减法运算时,必须注意结果可能会超过16位表示。如果加法/减法的结果超出16位的表示范围,则必须保留32
位结果,以保证运算的精度。 1.结果不超过16位表示范围 设x的Q值为Qx,y的Q值为Qy,且Qx>Qy,加法/减法结果z的定标值为Qz,则 z=x+y
yxz
QqQqQqyxz
222
=xyxxQQQqQqyx222)( =xyxQQQqqyx2]2[)( )()(2]2[xzyxQQQQqqqyxz
所以定点加法可以描述为: int x,y,z; long temp; /*临时变量*/ temp=y<<(Qx-Qy); temp=x+temp; z=(int)(temp>>(Qx-Qz)), 若Qx≥Qz z=(int)(temp<<(Qz-Qx)), 若QxQ≤z 例3.2 定点加法 设x=0.5,y=3.1,则浮点运算结果为z=x+y=0.5+3.1=3.6;
Qx=15,Qy=13,Qz=13,则定点加法为: x=16384;y=25395; temp=25395<<2=101580; temp=x+temp=16384+101580=117964; z=(int)(117964L>>2)=29491; 因为z的Q值为13,所以定点值z=29491即为浮点值z=29491/8192=3.6。 例3.3 定点减法 设x=3.0,y=3.1,则浮点运算结果为z=x-y=3.0-3.1=-0.1;
Qx=13,Qy=13,Qz=15,则定点减法为: x=24576;y=25295; temp=25395; temp=x-temp=24576-25395=-819; 因为Qx浮点值z=-3276/32768-0.1。 2.结果超过16位表示范围 ·40·
设x的Q值为Qx,y的Q值为Qy,且Qx>Qy,加法结果z的定标值为Qz,则定点加法为: int x,y; long temp,z; temp=y<<(Qx-Qy); temp=x+temp; z=temp>>(Qx-Qz),若Qx≥Qz z=temp<<(Qz-Qx),若Qx≤Qz 例3.4 结果超过16位的定点加法 设x=15000,y=20000,则浮点运算值为z=x+y=35000,显然z>32767,因此 Qx=1,Qy=0,Qz=0,则定点加法为: x=30000;y=20000; temp=20000<<1=40000; temp=temp+x=40000+30000=70000; z=70000L>>1=35000; 因为z的Q值为0,所以定点值z=35000就是浮点值,这里z是一个长整型数。 当加法或加法的结果超过16位表示范围时,如果程序员事先能够了解到这种情况,并且需要保证运算精度时,则必须保持32位结果。如果程序中是按照16位数进行运算的,则超过16位实际上就是出现了溢出。如果不采取适当的措施,则数据溢出会导致运算精度的严重恶化。一般的定点DSP芯片都设有溢出保护功能,当溢出保护功能有效时,一旦出现溢出,则累加器ACC的结果为最大的饱和值(上溢为7FFFH,下溢为8001H),从而达到防止溢出引起精度严重恶化的目的。
3.2.2 乘法运算的C语言定点模拟 设浮点乘法运算的表达式为: float x,y,z; z = xy; 假设经过统计后x的定标值为Qx,y的定标值为Qy,乘积z的定标值为Qz,则 z = xy
zQqz2=)(2yxQQqqyx
qz =)(2)(yxzQQQqqyx 所以定点表示的乘法为: int x,y,z; long temp; temp = (long)x; z = (temp×y) >> (Qx+Qy-Qz); 例3.5 定点乘法 设x = 18.4,y = 36.8,则浮点运算值为z =18.4×36.8 = 677.12;
根据上节,得Qx = 10,Qy = 9,Qz = 5,所以