如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
年第期通信与广播电视芯片编程中数的定点运算万福高俊摘要本文讨论了芯片进行定点运算所涉及的一些基本问题,这些问题包括数的定标、程序的定点模拟、芯片的定点运算等。这对于理解定点芯片实现算法具有非常重要的作用。关键词定标算法定点浮点一即,一叮一一、一引言—数的定标在定点芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于芯片所给定的字长,一般为位或位。显然,字长越长,所能表示的数的范围越大,精度也越高。芯片的数以的补码形式表示。每个位数用一个符号位来表示数的正负,表示数值为正,则表示数值为负。其余巧位表示数值的大小。例如二进制数的二进制数一对芯片而言,参与数值运算的数就是位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。那么,芯片是如何处理小数的呢应该说,芯片本身无能为力。那么是不是说芯片就不能处理各种小数呢当然不是。这其中的关键就是由程序员来确定一个数的小数点处于位中的哪一位,即数的定标。通过设定小数点在位数中的不同位置,就可以表示不同大小和不同精度的小数了。数的定标有表示法和表示法两种。表列出了一个位数的种表示、表示及它们所能表示的十进制数值范围。通信与广播电视年第期从附表可以看出,同样一个位数,若小数点设定的位置不同,它所表示的数也就不同。例如附表表示、表示及数值范围表示表示十进制数表示范围印一〔蕊一蕊簇一蕊宾一蕊续一蕊城一簇续一宾蕊一续蕊印一簇蕊一续蕊一蕊簇供一以城落供一如城城一蕊续一感簇卿一蕊宾进制数,用表示进制数,用表示但对于芯片来说,处理方法完全相同。从附表还可以看出,不同的所表示的数不仅范围不同,精度也不相同。越大,数值范围越小,但精度越高相反,越小,数值范围越大,但精度就越低。例如,的数值范围是一到,其精度为,而的数值范围为一到,精度为乃。因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价而想提高精度,则数的表示范围就相应地减小。在实际的定点算法中,为了达到最佳的性能,必须充分考虑到这一点。浮点数与定点数的转换关系可表示为浮点数转换为定点数。二。定点数,转换为浮点数。一年第期通信与广播电视二、从浮点到定点从编写模拟算法时,为了方便,一般都是采用高级语言如语言来编写模拟程序。程序中所用的变量一般既有整型数,又有浮点数。如果要将程序用定点芯片来实现,则需将程序改写为芯片的汇编语言程序。为了程序调试的方便及模拟定点实现时的算法性能,在编写汇编程序之前一般需将高级语言浮点算法改写为高级语言定点算法。下面讨论基本算术运算的定点实现方法。加法减法运算的语言定点模拟设浮点加法运算的表达式为,,万”将浮点加减法转化为定点加减法时最重要的一点就是必须保证两个操作数的定标值一样。若两者不一样,则在做加减法运算前先进行小数点的调整。为保证运算精度,需使值小的数调整为与另一个数的值一样大。此外,在做加减法运算时,必须注意结果可能会超过位表示。如果加法减法的结果超出位的表示范围,则必须保留位结果,以保证运算的精度。结果不超过位表示范围设二的值为,的值为,,且二,,加减法结果的定标值为,则之二幼,·一。二,·一·了。·一了·一口·少,·么一外·一口····。,。口一,一“劝··。。,,。一口,」认一。·所以定点加法可以描述为,,了《二一,《口一二,若二口心结果超过位表示范围设二的值为二,的值为口,,且二,,加法结果的定标值为,则定点加法为一,,了《一口,》一口,若二〕《一二,若二蕊伽当加法或加法的结果超过位表示范围时,如果程序员事先能够了解到这种情况,并通信与广播电视年第期且需要保证运算精度时,则必须保持位结果。如果程序中是按照位数进行运算的,则超过位,实际上就是出现了溢出。如果不采取适当的措施,则数据溢出会导致运算精度的严重恶化。一般的定点芯片都设有溢出保护功能,当溢出保护功能有效时,一旦出现溢出,则累加器的结果为最大的饱和值上溢为,下溢为,从而达到防止溢出引起精度严重恶化的目的。乘法运算的语言定点模拟设浮点乘法运算的表达式为,,假设经过统计后、的定标值为二,的定标值为,,乘积的定标值为,则···那井“。一口一、。一口·‘。,劝、。,口一二。·所以定点表示的乘法为,,口,一口除法运算的语言定点模拟设浮点除法运算的表达式为,少,行假设经过统计后被除数二的定标值为二,除数的定标值为,,商的定标值为,