用定点DSP处理器实现浮点DSP仿真
- 格式:doc
- 大小:32.00 KB
- 文档页数:2
DSP解密DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。
DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。
DSP解密又叫单片机解密,DSP芯片解密,DSP IC 解密,就是指DSP解密攻击者凭借专用设备或自制设备,利用单片机设计上的漏洞或软件缺陷,通过多种专业技术手段,直接提取加密单片机中烧写文件的关键信息,并可以自己复制烧写芯片或反汇编后自己参考研究。
DSP芯片特点根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:(1)在一个指令周期内可完成一次乘法和一次加法。
(2)程序和数据空间分开,可以同时访问指令和数据。
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。
(4)具有低开销或无开销循环及跳转的硬件支持。
(5)快速的中断处理和硬件I/O支持。
(6)具有在单周期内操作的多个硬件地址产生器。
(7)可以并行执行多个操作。
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
DSP芯片算法DSP芯片的算法有多种。
绝大多数的DSP处理器使用定点算法,数字表示为整数或-1.0到+1.0之间的小数形式。
有些处理器采用浮点算法,数据表示成尾数加指数的形式:尾数×2指数。
浮点算法是一种较复杂的常规算法,利用浮点数据可以实现大的数据动态范围(这个动态范围可以用最大和最小数的比值来表示)。
浮点DSP(字宽为32位)在应用中,设计工程师不用关心动态范围和精度一类的问题。
浮点DSP比定点DSP(字宽为16位)更容易编程,但是成本和功耗高。
所以,一般批量产品选用定点DSP。
编程和算法设计人员通过分析或仿真来确定所需要的动态范围和精度。
如果要求易于开发,而且动态范围很宽、精度很高,可以考虑采用浮点DSP。
也可以在采用定点DSP的条件下由软件实现浮点计算,但是这样的软件程序会占用大量处理器时间,因而很少使用。
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 (2009-03-05 19:22:36)转载▼标签:it 分类:基础学堂DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主机应用是实时快速地实现各种数字信号处理算法。
根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些DSP 处理器与通用处理器的比较(2009-03-05 19:24:35)转载▼分类:基础学堂标签:it考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。
用数学语言来说,FIR 滤波器是做一系列的点积。
取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:1 对密集的乘法运算的支持GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。
第一章: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)核心算法模拟和验证;(3)选择DSP芯片及其他系统组件;(4)硬件设计和调试;(5)软件设计和测试;(6)系统测试、集成。
芯片选择:芯片选择要注意几个因素:(1)预算速度;(2)算法格式和数据宽度;(3)存储器;(4)功耗;(5)开发工具。
DSP芯片选择中通常有下列几条应注意的:(1)精度:表数格式(定点或浮点),通常可以用定点器件解决的问题,尽量用定点器件,因为它经济、速度快、成本低,功耗小。
但是在编程时要关注信号的动态范围,在代码中增加限制信号动态范围的定标运算。
(2)字长的选择:一般浮点DSP芯片都用32位的数据字,大多数定点DSP芯片是16位数据字。
而MOTOROLA公司定点芯片用24位数据字,以便在定点和浮点精度之间取得折中。
字长大小是影响成本的重要因素,它影响芯片的大小、引脚数以及存储器的大小,设计时在满足性能指标的条件下,尽可能选用最小的数据字。
(3)存储器安排:包括存储器的大小,片内存储器的数量,总线寻址空间等。
片内存储器的大小决定了芯片运行速度和成本,例如TI公司同一系列的DSP芯片,不同种类芯片存储器的配置等硬件资源各不相同。
(4)开发工具:在DSP系统设计中,开发工具是必不可少的,一个复杂的DSP系统,必须有功能强大的开发工具支持。
开发工具包括软件和硬件两部分。
软件开发工具主要包括:C编译器、汇编器、链接器、程序库、软件仿真器等,在确定DSP算法后,编写的程序代码通过软件仿真器进行仿真运行,来确定必要的性能指标。
硬件开发工具包括在线硬件仿真器和系统开发板。
在线硬件仿真器通常是JTAG周边扫描接口板,可以对设计的硬件进行在线调试;在硬件系统完成之前,不同功能的开发板上实时运行设计的DSP软件,可以提高开发效率。
甚至在有的数量小的产品中,直接将开发板当作最终产品。
(5)功耗与电源管理:在一些手提便携式的消费类电子产品中,供电电源的节省是很重要的问题,因而目前DSP生产厂商越来越重视这方面。
IQmath库的定点DSP算法设计引言DSP数字信号处理器DSP数字信号处理器是一个实时处理信号的微处理器,分为定点和浮点两种基本类型,它们之间最大差异在于浮点DSP比定点DSP具有更强大的计算能力和更大范围的动态精度。
浮点DSP内部设有专门支持浮点运算的硬件单元,对浮点格式的数据可以直接通过代码加入硬件运算中,因此运算速度很高。
而定点DSP没有定点运算单元,它对浮点格式的实数必须通过软件才能实现,这样就增加了指令代码,间接地使得定点DSP运算速度低于浮点DSP,典型的浮点处理器,如TI公司的C6000系列,几乎所有的嵌入式微控制器都为定点处理器,如TI公司的C2000系列。
因为浮点DSP的价格更加昂贵,因此定点DSP仍然有其巨大的优势。
但是任何算法都需要进行浮点运算,因此如何提高在定点DSP 上进行的浮点运算的速度和精度,就成为了用户开发时必须要考虑的关键问题。
TI公司专门为定点处理器TMS320C2000系列提供的IQmath库为解决上述问题提供了良好的实现方法。
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
1 数的定标:Q格式有符号数的表示法,机器数(出现在电脑的二进位数值)有3个特点,无符号或符号转换成数值来表示,没有+10101这样的资料,而是以010101来表示,只表示单纯的整数或小数,小数点的位置预设在一定的位置而较少变动,它的长度受到电脑硬体的限制,而不能无限增长。
Q格式,就是将一个小数放大若干倍后,用整数来表示小数定点DSP不能直接处理小数,编程时处理小数有3种方法:①把变量定义成float类型。
DSP-起始篇数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。
数字信号处理在理论上的发展推动了数字信号处理应用的发展。
反过来,数字信号处理的应用又促进了数字信号处理理论的提高。
而数字信号处理的实现则是理论和应用之间的桥梁。
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
世界上第一个单片DSP 芯片应当是1978年AMI公司发布的S2811,1979年美国Intel公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。
这两种芯片内部都没有现代DSP芯片所必须有的单周期乘法器。
1980 年,日本NEC 公司推出的μP D7720是第一个具有乘法器的商用DSP 芯片。
在这之后,最成功的DSP 芯片当数美国德州仪器公司(Texas Instruments,简称TI)的一系列产品。
TI 公司在1982年成功推出其第一代DSP 芯片TMS32010及其系列产品TMS32011、TMS320C10/C1 4/C15/C16/C17等,之后相继推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP 芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代DSP 芯片TMS320C5X/C54 X,第二代DSP芯片的改进型TMS320C2XX,集多片DSP芯片于一体的高性能DSP芯片TMS320C8X 以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。
Float Point Unit,浮点运算单元,FPU是专用于浮点运算的处理器,以前的FPU是一种单独芯片,在486之后,英特尔把FPU与集成在CPU之内。
DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色DSP既是Digital Signal Processing的缩写(数字信号处理的理论和方法)或者是Digital Signal Processor(用于数字信号处理的可编程微处理器)的缩写。
我们所说的DSP技术,则一般指将通用的或专用的DSP处理器用于完成数字信号处理的方法和技术。
DSP的有以下特点:DSP处理器采用哈佛结构和改进的哈佛结构。
哈佛结构就是将程序代码和数据的存储空间分开,各有自己的地址和数据总线。
之所以采用哈佛结构,是为了并行进行指令和数据处理,从而可以大大地提高运算的速度。
为了进一步提高信号处理的效率,在哈佛结构的基础上,又加以改善。
使得程序代码和数据存储空间之间可以进行数据的传输,称为改善的哈佛结构。
采用流水技术。
流水技术是将各指令的各个步骤重叠起来执行。
DSP 处理器所采用的将程序存储空和数据存储空间的地址与数据总线分开的哈佛结构,为采用流水技术提供了很大的方便。
为了提高DSP处理器的运算速度,它们无例外地设置了硬件乘法器,以及MAC(乘并且累加)一类的指令。
DSP处理器都为DMA单独设置了完全独立的总线和控制器,这是和通用的CPU很不相同,其目的是在进行数据传输是完全不影响CPU 及其相关总线的工作。
献给初学者-DSP入门教程helloDSP论坛献给初学者-DSP入门教程helloDSP论坛前言:此资料也是来源于网络,并不是我们原创,但是希望这些资料能够给初学DSP的朋友们一点帮助,也希望你们能够把这里当成是你们学习DSP技术的一个家园,让我们携手共建,为更多的朋友创造学习的条件~1、TI DSP的选型主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。
DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额。
TI公司现在主推四大系列DSP1)C5000系列(定点、低功耗):C54X,C54XX,C55X 相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。
处理速度在80MIPS-- 400MIPS之间。
C54XX和C55XX 一般只具有McBSP同步串口、HPI 并行接口、定时器、DMA等外设。
值得注意的是C55XX提供了EMIF 外部存储器扩展接口,可以直接使用 SDRAM,而C54XX则不能直接使用。
两个系列的数字IO都只有两条。
2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX ,C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOG、CAN总线/PWM发生器、数字IO脚等。
是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。
3)C6000系列:C62XX,C67XX,C64X 该系列以高性能著称,最适合宽带网络和数字影像应用。
32bit,其中:C62XX和C64X是定点系列,C67XX 是浮点系列。
该系列提供EMIF扩展存储器接口。
该系列只提供BGA封装,只能制作多层PCB。
DSP的产生和发展世界上第一片DSP芯片是1978年AMI公司的S2811,1979年美国Intel公司宣布生产的商用可编程器件2920是DSP芯片的一个主要标志。
但是,这两种芯片内部都没有现代DSP芯片所必须的单周期乘法器。
1980年,日本NEC公司推出的μPD7720是第一片具有硬件乘法器的商用DSP芯片。
美国德州仪器公司(TI公司)在1982年成功推出其第一代DSP 芯片TMS32010及其系列产品。
第一个采用CMOS工艺生产浮点DSP芯片的是日本的日立(Hitachi)公司,该公司于1982年推出了浮点DSP芯片。
而第一片高性能的浮点DSP芯片是AT&T公司于1984年推出的DSP32。
飞思卡尔(Freescale)公司的前身摩托罗拉公司半导体部,1986年推出了定点处理器MC56001。
1990年推出了与IEEE浮点格式兼容的浮点DSP芯片MC96002。
到2005年,飞思卡尔公司推出了56F8300系列的定点DSP,如56F83367、56F8334等。
美国模拟器件公司(Analog Devices, 简称AD)也相继推出了一系列具有自己特点的DSP 芯片,其定点DSP 芯片有ADSP2101/2103/2105 、ASDP2111/2115 、ADSP2161/2162/2164 以及ADSP2171/2181 等。
经过30多年的不断技术创新,DSP芯片得到了突飞猛进的发展,主要表现在以下几个方面:(1) 制造工艺不断提高。
(2) 片内存储器容量不断加大。
(3) 内部结构日益完善,片内外设接口不断丰富。
(4) 处理速度不断加快。
(5) 运算精度不断提高。
(6) 开发工具更加智能化,功能也日益强大。
DSP处理器的结构和特点为了实现高速数字信号处理以及实时地进行系统控制,DSP芯片一般都采用了不同于通用CPU和MCU的特殊软硬件结构。
尽管不同公司的DSP其结构不尽相同,但是在处理器结构、指令系统等方面有许多共同点。
数字信号处理器是一种实DSPs(Digital Signal Processors)时、快速的实现各种数字信号处理运算的微处理器。
由于它具有丰富的硬件资源、改进的并行结构、高速数据处理能力和强大的指令系统而在通信、航空、航天、雷达、工业控制、网络及家用电器等各个领域得到广泛应用。
分为DSPs 定点和浮点两种,系列是公司推出的位TMS320C2000TI 16定点。
本文以该种芯片为例,讨论定点的定标和DSPs DSPs 算术运算中的编程处理手段。
所讨论的这些问题在系DSPs 统设计中有实际的参考和应用价值。
一般来说,定点芯片价格低,运算中占用内存单元少,运算速度较快,但数的表示范围太小,且必须经过定标才能进行运算。
采用浮点数可使数值的表示范围大大提高,保证了运算精度,且编程时不必考虑小数点的位置。
但浮点芯片的价格要比定点芯片高的多。
本文讨论的定点芯片系列采用补码形式TMS320C2000来表示无符号或有符号整数、小数及混合小数。
它的表示形式是:符号位整数部分小数部分。
那么,在运算过程中,..定点怎样表示混合小数,又如何去处理这样的小数运DSPs 算呢?这就是下面所要讨论的问题。
定点数的定标1 计算机在运算中操作的数可能是整数,也可能是小数或混合小数。
然而,在执行算术运算指令时,并不知道当CPU 前所处理的数据是整数还是小数,更不能指出小数点的位置在哪里。
因此,在编程时必须由程序员指定一个数的小数点处于哪一位,这就是定标的概念。
通过定标可以在位位16(/8位位数的不同位置上确定小数点,从而表示出一个范/24/32)围大小不同且精度也不同的小数。
通常,定标方法有两种:表示法和表示法。
以位Q S 16数为例,表示法用Q Q 0、Q 1、…Q i 、…、Q 15分别表示小数点在D 0位之后、D 1位之后、…D i 位之后、…D 15位之后注(意: D 15位是符号位。
显然,)Q 0表示的是一个有符号的整数,而Q 15表示的是一个有符号的小数,其他各种情况表示了一个有符号的混合小数,它可以含有个整数位和个小i 15-i 数位。
用定点DSP处理器实现浮点DSP仿真
作者:61IC 文章来源:本站原创点击数:1454 更新时间:2005-8-30
DSP处理器可以分为两大类:定点和浮点。
一般说来,先进的定点DSP家族速度快,功耗低,价格也便宜;而浮点DSP则计算精确,动态范围大。
设计师在设计DSP时,如果对于设计的应用仅仅要求它具备很少的浮点功能时,则往往陷入了十分尴尬的困境,通常的解决办法是勉强采用价格高的浮点DSP设计。
然而现在,由于定点处理器可以运行在相当高的时钟速度,因此可以仿真浮点的运算。
这时设计师可以牺牲浮点的计算效率来换取较低的成本和较小的功耗。
这样的设计,虽然并不能适应真正的浮点应用;但是却给设计师提供了一个难得的机会,使他们能够从尴尬的困境中解脱出来。
在表达固定小数点数字时,小数点位置的确定决定于究竟是准备采用分数运算,还是整数运算。
如何选择小数点的位置,将直接影响数值运算是否简单,存储器需求的多寡;也表现为是在数值的动态范围与数值精度之间的一种折衷选择。
如果所表达的数值既要求动态范围宽广,又要求数值的精度十分精确,最好选择小数点的位置可以根据数值的大小进行移动的表达方式。
浮点数由指数部分和尾数部分组成,既可以表达很大的数值,也可以表达数值很小的数。
而浮点数的指数与尾数部分,则可以分别用定点数格式来表示。
规格化了的浮点数不包含额外的符号位,也就是说所有的字符位都是有效位。
规格化后的数字,对于一定的位数,可以实现最充分的利用。
规格化以后还可以简化两个数值的比较运算。
对于指数不同的数值,指数大的数,数值大;对于指数相同的数,才需要比较尾数的大小。
绝大多数的运算程序都假定输入和输出都是规格化的数。
在应用定点DSP进行仿真浮点计算时,究竟是采用完整的IEEE-754格式,还是采用非IEEE兼容的格式,需要根据在计算时首先考虑数值的动态范围,还是首先考虑数值的精度来决定。
有时还需要采用双精度浮点模式才能满足要求。
IEEE单精度浮点格式
愫?©库。
可以通过C/C++语言或者汇编语言来调用。
这些程序库应用定点逻辑进行浮点的仿真运算。
为了简化计算,有时使用修改后的IEEE-754更方便。
这样可能降低运算周期达10倍之多。
应用定点DSP进行浮点计算的算法
Blackfin DSP的寄存器堆包(file)含有16个16-bit寄存器,也可以把它当作8个32-bit寄存器来使用。
有两个计算单元,数据寄存器堆可以存放32-bit数据。
整套的算术计算和逻辑运算指令集都支持仿真浮点计算,非IEEE格式;也支持可以显著简化计算要求的多重精度的定点表示方法。
为了能够充分利用DSP的寄存器堆包资源,仿真浮点计算程序可以使用双字格式,即用一个16-bit字表示指数,另一个16-bit字表示尾数。
两个字都使用带符号位的2的补码表示法。
DSP的体系结构,除了可以将16-bit与32-bit寄存器结合使用以外,还包括有可以简化浮点运算算法的特殊指令:SIGNBITS指令,是将数的符号位返还给该数值。
实际是直接传给ASHIFT,而ASHIFT则可以移动小数点的位置,将尾数格式化。
可以将一个定点数变化为一个浮点数。
变化的方法是:首先通过确定符号位数,再将小数点按照符号位数移动,然后再将尾数格式化。
反之,一个浮点数也可以通过移动尾数的小数点位置,来变换成为定点数。
小数点移动的位数就是符号位的位数。
可以采用下述方法,实现浮点数的加法:以两个数中具有较大指数的指数作为和数的指数;向右移动比较小的数的尾数,移动的位数等于两个数的指数的差;将尾数相加,得到和数的分数部分;将和数格式化。
两个用浮点格式表示的数,进行乘法运算时,比进行加法运算更简单。
因为不需要将两个数的小数点位对齐。
乘法的运算算法如下所述:将两个数的指数相加;将两个数的尾数相乘,即为乘积数的分数部分;将乘积数格式化。
浮点的乘/累加过程则是先依次求两个操作数的积,累计求N次,再计算其总和。
可以首先重复调用浮点乘法程序,再调用加法程序。
但是如果使用乘/累加程序函数,则由于省去了内务开销而更有效率。
乘/累加算法可以按以下的方式实现:先求第一组两个操作数的乘积,并对此积进行规格化;取第二组操作数,求乘积,再对其进行规格化;将求得的积,和累加的和进行比较,对其中的积,或累加的和进行移位,使小数点对齐;将这个乘积,和累加的和相加,并对求得的结果进行规格化;重复进行第2到第4过程,一直到将全部操作数都进行完毕为止。
双倍精度,定点表示方法
对于许多应用场合,16-bit定点数据的精度显得有些不够;而因此就采用浮点仿真运算则又感觉到计算量太大。
在这种情况下,如果采用扩展精度的定点仿真运算则能满足系统的要求。
使用高速定点DSP可以保证显著地节省所需要进行的处理过程。
扩展精度的数值,可以使用31-bit或者32-bit定点格式表示。
对于16-bit的定点DSP处理器,可以很容易地使用软件来进行扩展,以便进行32-bit的算术计算。
如果处理器的32-bit寄存器组可以当作两个16-bit的半字来进行访问时,结合起来使用,就可以表示一个32-bit 的定点数值。
Blackfin处理器的硬件组成可以在单周期内实现32-bit的加法;32-bit的乘法则可以通过执行一个指令来实现,但是需要经过5个时钟周期。
当进行多次32-bit乘,再累加求和时;如果使用16-bit数相乘,要求结果的精度达到32-bit,则只需要3个时钟周期。
而仅要求达到31-bit精度时,则只需要2个时钟周期。
这个技术对于高档的音响系统特别具有吸引力。
因为这些音响系统至少需要24-bit精度。
如果使用每一位6db的规则,16bit的记录可以具有96db的动态范围,而24-bit的定点运算则可以将动态范围提高到144 db。
最低有效位半字的乘积对于最后结果的影响不大。
事实上,如果将结果截取到1.31,这样,其结果只影响到最低有效位。
对于许多应用场合,精度的损失不大,所换来的计算速度的提高却是很高的。
与32-bit乘法相比,可以省去一次16-bit的乘,一次移位,和一次加法运算。
现在的定点DSP处理器由于性能的提高,已经可以在某些应用场合进行仿真的浮点运算,从而达到系统的要求,而不必采用浮点DSP处理器了。
设计师可以根据实际的要求,在动态范围与计算精度之间取得合理的平衡,以便决定究竟是选择浮点DSP处理器,还是选择扩展精度的定点处理器。
这样设计师可以有更广的空间,来控制掌握DSP处理器的实现方案。
■。