复合式动态定点数表示法与运算法及其处理器结构的制作方法

文档序号:6382810阅读:253来源:国知局
专利名称:复合式动态定点数表示法与运算法及其处理器结构的制作方法
技术领域
本发明提供一种新型定点数运算法及一相关的数字信号处理器,特别指一种可将数字数据在一定点数表示法及一复合式动态定点数表示法之间进行转换的复合式动态定点数运算法(Joint Adaptive Fixed-Point Arithmetic)及相关数字信号处理器。
背景技术
近十年以来,随着超大型集成电路技术与计算机技术的快速发展,实时数字信号处理的迫切要求,电子信息界相继推出了各种功能型式的数字信号处理器(Digital Signal Processor,DSP)。这些数字信号处理器普遍具有灵活性佳、精确度高、功能强大等优点。数字信号处理器的应用领域很广,然而实际上,并没有一个处理器能完全满足所有的或绝大多数应用需求,设计工程师在选择数字信号处理器时皆需根据性能、成本、集成度、开发的难易程度、以及功率消耗等因素进行综合考虑。
概略而言,数字信号处理器皆用来处理数字数据,但不同的数字信号处理器具有不同的特点,适用于不同的应用。一般数字信号处理器可以分为定点数式(Fixed Point DSP)与浮点数式数字信号处理器(Floating Point DSP),这样的区分是依据数字信号处理器所处理的数字数据的型式及对应的运算法。定点数式数字信号处理器使用定点数运算法,所处理的数字数据采用定点数表示法(Fixed Point Representation),“定点数”是指于数字数据中的小数点的位置固定,而具有定点数表示法的数字数据即分别视其中的小数点的位置,可表示为整数或-1.0到+1.0之间的小数形式。浮点数式数字信号处理器则使用浮点数运算法,所处理的数字数据采用浮点数表示法(FloatingPoint Representation),数值表示成一尾数(Mantissa)并同一指数(Exponent)的形式尾数×2指数。浮点数运算法是一种较复杂的运算法则,利用浮点数表示法可以实现将数字数据扩展到相当大的数据动态范围,因此宽广的数值范围与高精确度的性质,显示了浮点数式数字信号处理器所蕴含的巨大的市场潜力,但考虑成本和功率消耗等原因,定点数式数字信号处理器在一般消费性电子产品上的应用,仍将保有稳固的优势。
请参阅图1,图1为一常规定点数式数字信号处理器10一实施例的功能方块图。此(定点数式)数字信号处理器10可用来处理多组具有定点数表示法的数字数据,亦即这些数字数据包含了整数(Integer)及小数两种表示型式,此外,于本实施例中,这些数字数据依据其本身所占位数的多少,分成n位的数字数据以及2n位的数字数据,n为大于零的整数。数字信号处理器10包含一数据接收端12、一乘法电路(Multiplication Circuit)16、一乘法移位装置(Multiplication Shifter)18、一第一移位装置14、一第二移位装置24、一选择运算模块(Multiplexing Arithmetic Module)20、一存储装置(Storage Instrument)22、以及一数据写入端26。数据接收端12用来由一存储器或其他外部电路接收多数组n位的数字数据,数据接收端12并将两组n位的数字数据送进乘法电路16中,乘法电路16可将具有定点数表示法的二n位的数字数据相乘,产生一具有定点数表示法的2n位的数字数据,而后电连接到乘法电路16的乘法移位装置18,会依据此数字数据为整数或小数的型式,适当调整相乘之后2n位的数字数据的小数点的位置,产生一2n位的第一数字数据。同时,数据接收端12将一n位的数字数据传送到第一移位装置14中,第一移位装置14将具有定点数表示法的此n位的数字数据,经一基本的正负号延伸程序(Sign Extension),产生一具有定点数表示法的2n位的第二数字数据。以将一8位的二进位正数(n=8)(00010100)转换为一16位的二进位正数(n=16)为例,只要将高位组填满零便可,亦即,将高位的八个位部份补上0,成为(00000000 00010100),但若以二补数表示负数时,就要将延伸出的八个位都填上1,例如一8位的二进位负数(11101100)可利用将延伸的八个位都补上1以得到(11111111 11101100)。
选择运算模块20包含一选择装置19及一运算单元(Arithmetic Unit)21,选择装置19电连接到第一移位装置14及乘法移位装置18,用来于2n位的第一数字数据及第二数字数据之间选择其一输出,在实际实施时,选择装置19可使用一多工器(Multiplexer)完成。运算单元21电连接到选择装置19,用来接收选择出的(2n位的)第一数字数据或第二数字数据,而运算单元21包含另一输入端,用来接收由存储装置22传送的2n位的第三数字数据,如此一来,运算单元21可对此些2n位的数字数据(第三数字数据与第一或第二数字数据)执行各种运算的功能,接下来,运算单元21输出处理后的一2n位的第四数字数据到存储装置22,存储装置22的功能即用来存储经选择运算模块20处理后的多组数字数据,而在实际实施时,存储装置22可以一累加器(Accumulator)完成。最后,第二移位装置24将具有定点数表示法的2n位的数字数据转换为仍具有定点数表示法的一n位的数字数据,并由数据写入端26将此具有定点数表示法的n位的数字数据写入前述的存储装置或其他装置中。
由上述常规技术可知,定点数式数字信号处理器在普遍为本领域所接受并使用的同时,仍存在着一些极需改善的问题。现今许多定点数式数字信号处理器的主要目标市场是嵌入式应用系统,在这一应用中的存储器的容量需较一般为小,而图1的定点数式数字信号处理器10在与这种容量较小的存储器配合应用的情况下,进行相关的定点数运算时,则被迫具有(位数)解析度上的限制(Resolution limitation),而经常会有量化误差(QuantizationError)发生。请继续参阅图1,图1中两个n位的数字数据经乘法电路16相乘后,乘积为2n位的数字数据,再经一连串的处理后,若第二移位装置24要将具有定点数表示法的2n位的数字数据转换为n位的数字数据,以存储于n位的存储器中时,于此2n位的数字数据为小数型式的情形下,则必须取此2n位的数字数据中较高的n位,而舍去较低n位,而在此番舍弃位数的过程中,容易使转换后的n位的数字数据与原先2n位的数字数据之间产生误差。例如一(二进位法表示法的)48位在十六进位表示法下为0x004444ffffff,若利用舍去较低的24位以转换为24位的数字数据后,成为0x004444,再经常规定点数运算法还原后的数值0x004444000000明显与原数值存有巨大的差异,即造成上述的量化误差。这种量化误差可能会造成在数字信号大小上的不连续、变形、与其他不良的效应,成为常规定点数式数字信号处理器10于效能上的限制。若欲利用增加数字信号处理器的位数、或改用浮点数式数字信号处理器以期改善量化误差,随之而来的是硬件成本的大幅增加。此外,利用修改定点数式数字信号处理器的程序代码以降低量化误差的方法,会增加程序复杂度并占用较多数字信号处理器的运算效能。

发明内容
因此本发明的主要目的在于一种新型定点数运算法及一新型定点数表示法,并提供一种应用该新型定点数运算法以处理数字数据的数字信号处理器,以解决上述问题。
在本发明中,我们将一新型定点数表示法及一新型定点数运算法,运用于一数字信号处理器及相关的数字数据运算过程中,确保于一解析度限制下所处理的数字数据能保存更多正确的最重要位,提升信号处理的精确性。本发明的新型定点数表示法以常规的定点数表示法为基础,并参考浮点数表示法的部分基本概念后,所提出的一复合式动态定点数表示法(Joint AdaptiveFixed-Point Representation),并在数字信号处理器中置相对应的硬件设备,使一高位数数字数据转换为一低位数数字数据时,可以用较少重复位的方式完成转换并存储到一存储器中,以保留最多的最重要位;而在之后将低位数数字数据读取回原先的高位数数字数据时,又可较精准并有效率地完成还原的效果,降低量化误差。
在本发明的新型定点数表示法下,一低位数数字数据中预定数目个最低位设为一动态移位值,此占有预定数目个位数的动态移位值(在十进位表示法下)即代表于本发明的新型定点数运算法中所移位(Shift)的位数,取代原先的高位数数字数据中重复的位,如此一来,具有本发明的新型定点数表示法的一低位数数字数据能在极高的精确度下置换原先的高位数数字数据,具备极大的动态范围(Dynamic range),并具有较低的复杂度(Complexity),因而能以软件(Software)或相关固件实现本发明的新型定点数运算法,实现降低成本及节省电路资源的优势。
本发明的目的为提供一种新型定点数表示法,用来表示一经数值转换操作后的数字数据,该新型定点数表示法包含将该数字数据中预定数目个最低位设为一动态移位值(Dynamic Shift Value),其中该动态移位值代表于该数值转换操作中所移位(Shift)的位数;以及将该数字数据中除了该动态移位值之外的多个位对应到经该数值转换操作前的该数字数据的部份位,该部份位包含至少一含有数值信息的最重要位。
本发明的另一目的为提供一种用于一数字信号处理器(Digital SignalProcessor)中的方法,用来将具有一定点数表示法(Fixed PointRepresentation)的一高位数数字数据转换为具有一新型定点数表示法的一低位数数字数据,该方法包含(a)依据该高位数数字数据的绝对值大小,将具有该定点数表示法的该高位数数字数据放大移位(Magnifying Shift)N位,其中N为大于或等于零的整数,且N的值随着该高位数数字数据的绝对值大小而变动;(b)于进行步骤(a)后,舍去该高位数数字数据中一预定数目的位数;以及(c)于进行步骤(b)后,设置一动态移位值(Dynamic Shift Value),以产生具有该新型定点数表示法的该低位数数字数据,其中该动态移位值对应于N的值。
本发明的又一目的为提供一种用于一数字信号处理器中的方法,用来将具有一新型定点数表示法的一低位数数字数据转换为具有一定点数表示法(Fixed Point Representation)的一高位数数字数据,该方法包含由该低位数数字数据中取得一动态移位值(Dynamic Shift Value);以及依据该动态移位值,将该低位数数字数据缩小移位(Minifying Shift)N位,其中N为大于或等于零的整数。
本发明的再一目的为提供一种数字信号处理器,用来处理至少一组数字数据,该至少一组数字数据分别具有多个数值表示法,该多个数值表示法至少包含一定点数表示法(Fixed Point Representation)以及一新型定点数表示法,该数字信号处理器包含至少一提取移位装置(Extracting/ShiftingDevice),来将具有该新型定点数表示法的一数字数据转换为具有该定点数表示法的一数字数据;多个表示法转换电路(Representation Converter),每一表示法转换电路利用一新型定点数运算法,将该至少一组数字数据中任一数字数据于该定点数表示法及该新型定点数表示法之间进行转换;以及至少一运算单元(Arithmetic Unit),用来运算该至少一组数字数据。


图1为常规一定点数式数字信号处理器的一实施例的功能方块图。
图2为具有本发明复合式动态定点数表示法的一数字数据的示意图。
图3为图2的数字数据的一实施例的示意图。
图4为本发明一方法实施例的流程图。
图5为图4的一详细方法实施例的流程图。
图6为本发明一另一方法实施例的流程图。
图7为本发明一数字信号处理器的一实施例的功能方块图。
图8为图7数字信号处理器中部分原件的一实施例的功能方块图。
图9为图7数字信号处理器的一详细实施例的功能方块图。
附图符号说明10、30、50、数字信号处理器12、52数据接收端14 第一移位装置 16、36、56乘法电路18 乘法移位装置 19、69选择装置20、60 选择运算模块 21、31、61运算单元22、62 存储装置 24第二移位装置26、66 数据写入端34表示法转换电路37、57 提取装置 38、58提取移位装置39、59 移位装置 53第一表示法转换电路55 第二表示法转换电路具体实施方式
首先,本发明提出一种新型定点数表示法,称为复合式动态定点数表示法,并公开一新型定点数运算法,称作复合式动态定点数运算法,以于一具有(位数)解析度限制的数字信号处理器中,有效地完成相关数字数据的数值转换操作。本发明的复合式动态定点数表示法是介于常规定点数表示法以及浮点数表示法之间的一种新型的数值表示法,复合式动态定点数表示法基于定点数表示法中将一数字数据表示为整数或表示为-1.0到+1.0之间的小数形式,并引用浮点数表示法的概念,使用多个位来作为该数字数据的指数(Exponent),而此指数在本发明中称为动态移位值(Dynamic Shift Value),该名称也隐含了其为一立即可用的数值,而无须经额外的操作(如查表)才能得出对应的数值。数字数据中其余的位则为尾数(Mantissa)。复合式动态定点数表示法的基本概念为于一具有复合式动态定点数表示法的数字数据中,动态移位值所占用的位数为固定的预设值,而动态移位值于十进位表示法下的值即代表在本发明新型定点数运算法中所移位(Shift)的位数,也就是说,当原数值较小时,过多重复的位会占据原数值的较高位处,此时所需要移位的位数较多,则将动态移位值设为应取代(移位)的位数的较大值,以大量取代原数字数据中过多重复的位,相反之,当转换前的原数值较大时,动态移位值则较小。请参阅图2,图2为具有本发明复合式动态定点数表示法的一数字数据DA的一实施例的示意图。此数字数据DA是由一标示位(Sign bit)、占最多位数的位数据、以及一动态移位值所构成。如前所述,动态移位值所占的位数为固定;标示位为此数字数据DA中的最高位,作为正负符号的判定,当标示位为0时,数字数据DA为正值,当标示位为1时,数字数据DA则为负值,而在原数值较小而需判定原数字数据中重复的位时,即是由此数字数据DA中次于标示位的下一位处起(位数据的最高位),将与标示位具有相同的位值(1或0)的位)的位视为重复的位。
请继续参阅图2,数字数据DA是由原先一具有定点数表示法的高位数数字数据,利用本发明的复合式动态定点数运算法转换后而得。请见图3,图3为图2复合式动态定点数表示法一详细实施例的示意图。图3实施例中所显示的数字数据的位数设为24,此24位的数字数据是由一具有定点数表示法的高位数数字数据转换而来,于本实施例中,此高位数数字数据的位数可设为48位或其他较24为高的位数,其中标示位占最高位处的一位(位23),动态移位值占数字数据DA最低的五个位(位0到位4),而位数据占了十八个位(位5到位22)。动态移位值所占的五个位(位0到位4)即代表了0到31的动态范围(Dynamic range),可最多取代原48位的数字数据中31个重复的位,使得具有五位的动态移位值的(复合式动态定点数表示法)数字数据能实际涵盖50位(1+18+31=50)的动态范围,此外,由于本实施例中的动态移位值位于占数字数据DA中最低位处,与常规浮点数表示法将指数置于标示位后的高位处的表示法相较,本发明的动态移位值极容易由数字数据中被判断并提取出,并利用动态移位值直接解读出此数字数据所移位的位数,使得应用本发明复合式动态定点数运算法具有较低的复杂度(Complexity),适合于软件中实施。
请继续参阅图3,若欲将一48位的数字数据(具有定点数表示法)转换为具有图3所示型式的一24位的数字数据时,首先,复合式动态定点数运算法会依据该48位的数字数据的绝对值大小,将此48位的数字数据放大移位(Magnifying Shift)N位,N的值随着此48位的数字数据的绝对值大小而变动,当此48位的数字数据的绝对值愈大,N的值愈小,而当绝对值愈小时,N的值则愈大。此标示位的值与原先48位的数字数据中的标示位相同,而在将48位的数字数据转换为具有复合式动态定点数表示法的24位的数字数据时,就是利用将该标示位与该48位的数字数据中的其他位加以比较,以选定所需移位的位数(N值)。选定N值之后,舍去该48位的数字数据中一预定数目的位数(相对而言,即保留该48位的数字数据中的部分位数),并设置对应于N值的动态移位值,以产生具有该新型定点数表示法的24位的数字数据。举例如下,并为求画面显示清晰,我们以一个十六进位表示的数(在十六进位表示法下的任一位代表了二进位表示法下的四位)0x004444ffffff为例,十六进位表示法下前三位数004代表了二进位表示法下的12位数000000000100,最左边的为标示位,标示位后有八个0,由于这八个0是与标示位重复的位,因此代表了在转换的过程中需放大移位8个位。接下来,为了将48位的数字数据转换为24位的数字数据,必须由较低位处舍弃24位,最后再加入对应于8(位)的五位动态移位值(即01000),并设置于24位的数字数据的最尾端(最低位处)。若回头以48位的数字数据0x004444ffffff为例,将其放大移位8个位,并由较低位处舍弃24位,成为0x4444ff,最后再将最低五个位置换为动态移位值(01000)后,即完成具有「复合式动态定点数表示法」的24位的数字数据0x4444e8。
请注意,本发明中的动态移位值的位数并不限五个,而于图2及图3中所示的动态移位值仅为本发明中的一较佳实施例,也就是说,若将动态移位值改为占数字数据DA最低的四个位时,位数据可多占一位,共具有十九个位,数值转换中的精确度稍微提升,而动态移位值所占的四个位变为代表0到15的动态范围(Dynamic range),使得具有四位的动态移位值的(复合式动态定点数表示法)数字数据能实际涵盖的动态范围变为35位(1+19+15=35),这也说明了,本发明可视实际需要调整动态移位值所占的位数,实现实际应用时更高的弹性。再者,无论在转换过程中被省略的位(如本实施例中由较低位处舍弃24位)为何,将经复合式动态定点数运算法转换后,在将这些具有图2、图3表示法(复合式动态定点数表示法)的数字数据施以部分运算时,无须将动态移位值特意剔除,而可将动态移位值纳入视为一整体的数值。
综上所述,本发明的复合式动态定点数运算法用来将一具有定点数表示法的高位数数字数据转换为一具有复合式动态定点数表示法的低位数数字数据,承袭图3的实施例,归纳后的方法实施例可参阅图4,图4为本发明一方法实施例的流程图,将一具有定点数表示法的48位的数字数据转换为一具有复合式动态定点数表示法的24位的数字数据,并包含下列步骤步骤100开始,并提供一具有定点数表示法的48位的数字数据,进入步骤102;
步骤102依据此高位数(48位)数字数据的绝对值大小,选定一N值,并将具有定点数表示法的高位数(48位)数字数据放大移位N位,意即,将该具有定点数表示法的48位的数字数据放大2N倍,进行步骤104。选择N值的基本概念为当原先高位数数字数据的绝对值愈大时,N的值愈小,当高位数数字数据的绝对值的绝对值愈小时,N的值则愈大,也就是说,N值由比较一标示位与此高位数数字数据中的其他位而得知重复位的位数;步骤104舍去此高位数(48位)数字数据中一预定数目的位数,保留包含至少一含有数值信息的最重要位的部份位,使得此高位数(48位)数字数据在舍弃此预定数目的位数后,其所具有的位数与低位数数字数据的位数相同,进入步骤106。如在本实施例中,可舍去此48位的数字数据中最后的24位(或保留此48位的数字数据中前24位),成为一24位的数字数据;步骤106设置一(对应于所选定的N值的)动态移位值,以产生具有复合式动态定点数表示法的低位数(24位)数字数据;步骤108完成复合式动态定点数运算法的转换。
请注意,于上述实施例中,以位于数字数据DA中最低五位的动态移位值而言,最多只能取代原48位的数字数据中31个重复的位,于步骤102中,若需移位的位数超过31时,则需对移位量(N值)加以限制。也就是说,本发明的方法需预设一最大移位位数,该最大移位位数对应于该动态移位值所能表示的最大值,而当N的值小于最大移位位数,则维持N的值,若N的值大于或等于最大移位位数时,则将N的值设为最大移位位数,而非真的将原48位的数字数据中重复的位全都加以移位。举例来说,若一48位的数字数据为0x000000000007,全部所需移位的位数为44(N=44),但在动态移位值预设于五位的情况下,最大移位位数为31,因此,只能将其放大移位31个位,成为0x000380000000,再由较低位处舍弃24位后,成为0x000380,最后加入(最大值)动态移位值(11111)后,即完成具有“复合式动态定点数表示法”的24位的数字数据0x00039f。
由上可知,在步骤102选定N值之前,需先检测N值,并执行相关的判断操作,以决定正确的N值,相关步骤请参阅图5,图5为图4的一详细方法实施例的流程图,还包含下列步骤
步骤101在进行步骤102前,比较标示位与此高位数(48位)数字数据中的其他位而得知重复位的位数,即尚未选定最后值的N,并进行步骤103;步骤103判断N的值是否小于一最大移位位数,其中该最大移位位数对应于该动态移位值所能表示的一最大值,若N的值小于最大移位位数,进入步骤105,反之,则进入步骤107;步骤105当N的值小于最大移位位数,则维持N的值,并进行步骤102;步骤107当N的值大于或等于最大移位位数,则将N的值设为最大移位位数,并进行到步骤102。
于是,当N大于或等于最大移位位数(如31)时,就会有如常规技术所言经基本的正负号延伸程序(Sign Extension)后所得的重复位(如前述例子0x00039f中的0)包含于具有复合式动态定点数表示法的数字数据中,也就是说,于具有复合式动态定点数表示法的数字数据中,只需包含至少一含有原数字数据的数值信息的最重要位即可,最极端的例子即是当原具有定点数表示法的数字数据为零时,上述“至少一含有原数字数据的数值信息的最重要位”即为标示位(0),而上述的数值信息则仅包含此标示位(0)。这也代表在本实施例中,当原具有定点数表示法的数字数据为零,意即48位的数字数据为0x000000000000时,对应的具有复合式动态定点数表示法的24位的数字数据为0x000000,而非0x00001f,避免在将此具有复合式动态定点数表示法的数字数据视为一整体的数值而加以运算时,造成误导。
在本发明的复合式动态定点数运算法将一具有定点数表示法的高位数数字数据转换为一具有复合式动态定点数表示法的低位数数字数据之后,也必须要能将具有复合式动态定点数表示法的此低位数数字数据转换回具有定点数表示法的高位数数字数据,才算完整的实现本发明将一数字数据于定点数表示法及复合式动态定点数表示法之间进行转换的技术特征。在实际实施时,在概念上,只需将上述的程序以相反(Reversed)的概念加以操作,也就是在转换时,判断出动态移位值,依据动态移位值,将低位数数字数据缩小移位(Minifying Shift)N位(N为大于或等于零的整数),并依据标示位,决定N位中每一位的值,同时将低位数数字数据补足位数到其所具有的位数与所欲的高位数数字数据的位数相同后,再将该低位数数字数据的该动态移位值所占的位处填上一特定值,或沿用原动态移位值,即可完成还原的目的。关于移位的操作上,若再更详细的讨论与区分,并仍以数字数据由24位转换回48位的情形为例,当数字数据为-1.0到+1.0之间的小数形式时,在进行移位操作前,可将原24位的数字数据置于48位中之前24位,于判断出N值后再向右移位N位。于此,我们继续以上述具有“复合式动态定点数表示法”的24位的数字数据0x4444e8(十六进位表示法)为例,若欲将此24位的数字数据还原转换为(具有定点数表示法的)48位的数字数据,由于此24位的数字数据(二进位表示法下)的最后五个位值为(01000),亦代表当初转换时放大移位了8位。于是,将此数缩小移位8位(等同于除以28),并将总位数依据标示位(其值为0)增补到48位,最后,若将上述的(五位)特定值设为(10000),则可产生(具有定点数表示法的)48位的数字数据0x004444f00000,若沿用原动态移位值,则可产生48位的数字数据0x004444e80000。
上述的特定值的数值并不限定,上述实施例设为(10000)的用意在于二进位表示法下任何数的最小值(00000…0)与最大值(11111…1)的平均值即为(10000…0),因此,这种型式的特定值(只有最高位值为1,其余为0)可代表在转换过程中被省略的位数的平均值,可使省略后的值与原先的值的差异减到最低。请注意,将动态移位值原先所在的位改为一特定值(如上述的平均值或0)或保留原动态移位值的作法,皆包含于本发明的技术特征中。在欲保留原动态移位值的情况下,虽然此动态移位值并非属于原数字数据的一部份,但因为其位于表示法的最低位处(最不重要位,LSB,Least Significant Bit),对原始数字数据影响不大,当用于数字音像信号处理上,反而具有润饰噪声(Dithering)的效果,让我们仿佛可以听到更流畅的乐音及更多音乐的细节,且于实际实行时复杂度较低,不需额外运算操作或硬件。然而,若无关数字音像信号处理而关乎其他单纯的数值运算,则不确定效果如何,此时,就可如上述实施例般以一特定值取代原动态移位值,并同时需设置额外的运算操作或硬件来适应。
如此一来,与0x4444e8的原数0x004444ffffff相比可知,经过本发明复合式动态定点数运算法转换后再还原的数值0x004444f00000仍与原数值有所差异,但若单纯使用常规定点数运算法,将48位的数字数据舍弃后24位的数据(成为0x004444)再还原而得的值(0x004444000000)相比,则可看出本发明复合式动态定点数运算法能有效的减少数值转换过程中的量化误差,而且,由于置于最低位处的动态移位值即代表于运算中所移位的位数,使其于硬件上实施时,可以在不增添太多额外软硬件资源的情况下,能以较小的空间存储及处理数字数据并提高精确度,更能以软件直接实施。
图6描述了上述本发明将一具有复合式动态定点数表示法的24位的数字数据转换为一具有定点数表示法的48位的数字数据的一详细方法实施例。请参阅图6,图6为本发明另一方法实施例的流程图,包含下列步骤步骤300刚开始提供一具有复合式动态定点数表示法的24位的数字数据,接下来同时进行步骤302及步骤304;步骤302由该低位数数字数据中预设的多个(如五个)最低位判断出一动态移位值,进行步骤306;步骤304将低位数数字数据补足其位数到所欲的高位数数字数据的位数,意即,此时原24位的数字数据置于48位中;当数字数据为-1.0到+1.0之间的小数形式时,在进行移位操作前,可将原24位的数字数据置于48位中之前24位,进行步骤306;步骤306依据动态移位值,将该低位数数字数据移位N位,其中N为大于或等于零的整数,且N值即为动态移位值;步骤308将低位数数字数据的该动态移位值所占的位处填上一特定值,或沿用原动态移位值,以产生一具有定点数表示法的48位的数字数据,成功将具有复合式动态定点数表示法的24位数字数据转换回具有定点数表示法的48位数字数据。
在公开本发明复合式动态定点数表示法及复合式动态定点数运算法后,本发明设置对应的硬件结构以应用复合式动态定点数运算法,完成具有本发明完整的技术特征的的数字信号处理器。请参阅图7,图7为本发明一数字信号处理器30的一实施例的功能方块图。如前所述,本发明的数字信号处理器30能处理具有定点数表示法与复合式动态定点数表示法的数字数据,而在本实施例中,数字数据依据位数的多少又可分为高位数数字数据(可对应到图1中2n位的数字数据)以及低位数数字数据(可对应到图1中n位的数字数据),而在实际实施时,数字数据所具有的位数并不限定,不仅只于上述高位数数字数据及低位数数字数据两种。数字信号处理器30包含一乘法电路(Multiplication Circuit)36、一提取移位装置(Extracting/ShiftingDevice)38、一表示法转换电路(Representation Converter)34、及一运算单元(Arithmetic Unit)31。乘法电路36可用来将二低位数数字数据相乘产生一高位数数字数据,而提取移位装置38电连接到乘法电路36,用来将具有复合式动态定点数表示法的一数字数据转换为具有定点数表示法的一高位数数字数据。表示法转换电路34可应用本发明的复合式动态定点数运算法,将其所接收的数字数据于定点数表示法及复合式动态定点数表示法之间进行转换。运算单元31与提取移位装置38及表示法转换电路34相互连接,可用来运算传送到其中的数字数据,且由运算单元31所处理的数字数据并不限定为不定点数表示法及复合式动态定点数表示法。
请注意,提取移位装置38及表示法转换电路34的数量并不限制,可将每一个表示法转换电路34的功能分别设计为“将具有定点数表示法的数字数据转换为具有复合式动态定点数表示法的数字数据”或者“将具有复合式动态定点数表示法的数字数据转换为具有定点数表示法的数字数据”,如此一来,即可将具有特定转换功能的表示法转换电路34,视实际情形安装设置于本发明数字信号处理器30中任何有此转换需要之处,接收并输出具有复合式动态定点数表示法或定点数表示法的数字数据。这也同时表明了,于上述本实施例的数字信号处理器30中,表示法转换电路34与其他元件间的连接组合方式并不固定,无需如图7中限定与运算单元31相连,可随数字数据的运算流程与其他硬件元件进行弹性的相互连接。举例而言,若使用者欲将经运算单元31处理并输出后的一具有该定点数表示法的高位数数字数据,转换为一低位数数字数据以写入一外接存储器中,则可把表示法转换电路34设计为具备「将此具有该定点数表示法的高位数数字数据转换为具有本发明复合式动态定点数表示法的低位数数字数据」的功能,并连接到此外接存储器,由于本发明的复合式动态定点数运算法具有低量化误差的技术特征,可使得写入外接存储器中的低位数数字数据与原先的高位数数字数据之间,因转换所造成的误差减到最低。
数字信号处理器30中直接牵涉到本发明的复合式动态定点数运算法为提取移位装置38及表示法转换电路34。其中提取移位装置38依功能细分,又可区别为一提取装置37以及一移位装置39,请见图8,图8为图7数字信号处理器30部分原件的一实施例的功能方块图,包含提取装置37、移位装置39、与乘法电路36。本发明的乘法运算可处理各种型式的数字数据,包含具复合式动态定点数表示法及定点数表示法的数字数据,倘若输入乘法电路36中的二低位数(n位,而n于前述实施例中为24)数字数据皆具有复合式动态定点数表示法,在将两个(具有复合式动态定点数表示法的)位数据加以相乘前,可如图7中的步骤308所示,将(具有复合式动态定点数表示法)低位数数字数据的动态移位值所占的位处填上一特定值,或保留原动态移位值;在相乘的过程中,可将数字数据中的位数据、动态移位值分开视之,因此,乘法电路36可将二低位数(n位)数字数据各自的位数据直接相乘,而将动态移位值相加,而此时二低位数数字数据亦送进提取装置37中,提取出该二低位数数(n位)位数据中各自的动态移位值,判断出相关的N值,接着将此相关信息传送入移位装置39,依据判断出的N值,将经由乘法电路36处理后的数据作出对应的小数点移位,以得出正确的(具有定点数表示法的)一高位数(2n位)数字数据。
图7实施例中的电路结构并非固定,可因应不同需求而作调整,因此,我们接下来提出一较详细结构的数字信号处理器,充分公开本发明的复合式动态定点数运算法与硬件设备配合运用的情形。请参阅图9,图9为图7的一详细实施例的功能方块图。图9的数字信号处理器50包含一数据接收端52、一乘法电路56、一提取装置57、一移位装置59、一第一表示法转换电路53、一选择运算模块60、一存储装置62、一第二表示法转换电路55、以及一数据写入端66。数据接收端52可接收多组具有复合式动态定点数表示法的n位的数字数据,乘法电路56电连接到数据接收端52,用来接收二组具有复合式动态定点数表示法的n位的数字数据,乘法电路56亦会将此二n位的数字数据相乘,产生具有复合式动态定点数表示法的2n位的数字数据,再经由提取装置57及移位装置59(提取装置57与移位装置59可合并视为一提取移位装置58)处理后,得出具有定点数表示法的2n位的第五数字数据。
在此同时,电连接到数据接收端52的第一表示法转换电路53亦接收一具有复合式动态定点数表示法的n位的数字数据,依据该n位的数字数据的动态移位值及标示位,用来将此n位的数字数据转换为具有定点数表示法的一2n位的第六数字数据。选择运算模块60包含一选择装置69及一运算单元61,选择装置69电连接到第一表示法转换电路53以及移位装置59,用来由2n位的第五、及第六数字数据中选择其一输出,因此选择装置69可使用一多工器(Multiplexer)完成。运算单元61电连接到选择装置69,用来接收选择出的(2n位的)第五数字数据或第六数字数据,而运算单元61包含另一输入端,用来接收由存储装置62传送的2n位的第七数字数据,如此一来,运算单元61可对此些具有定点数表示法的(2n位的)数字数据(第七、第一、或第二数字数据)执行各种运算的功能。接下来,运算单元61输出处理后的一2n位的第八数字数据到存储装置62,存储装置62的功能即用来存储经选择运算模块60处理后的多组数字数据,而在实际实施时,存储装置62可以一累加器(Accumulator)完成。第二表示法转换电路55将具有定点数表示法的2n位的数字数据转换为具有复合式动态定点数表示法的一n位的数字数据,并由数据写入端66将此具有复合式动态定点数表示法的n位的数字数据写入前述的存储装置中。
与常规定点数表示法相比,本发明的复合式动态定点数表示法能于保存(转换前的高位数数字数据中)一定位数的含有数值信息的有效位的情况下,实现最大的动态范围,换句话说,也改善浮点数表示法过高的复杂度,因而便于以软件或相关固件实现本发明的复合式动态定点数运算法。而应用本发明复合式动态定点数运算法的数字信号处理器,能于将一高位数数字数据转换为一低位数数字数据时,以较少重复位的方式完成转换并存储到一存储器中,而在之后将低位数数字数据读取回原先的高位数数字数据时,又可较精准并有效率地完成转换(还原)的效果,并轻易完成多组数字数据的乘法运算等功能,如此一来便可在不耗费过多额外资源的情况下,降低量化误差。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所进行的等效变化与修改,皆应属本发明的涵盖范围。
权利要求
1.一种新型定点数表示法,用来表示一经数值转换操作后的数字数据,该新型定点数表示法包含将该数字数据中预定数目个最低位设为一动态移位值,其中该动态移位值代表于该数值转换操作中所移位的位数;以及将该数字数据中除了该动态移位值之外的多个位对应到经该数值转换操作前的该数字数据的部份位,该部份位包含至少一含有数值信息的最重要位。
2.如权利要求1的新型定点数表示法,其用于一数字信号处理器中。
3.如权利要求1的新型定点数表示法,其中该数值转换操作为一复合式动态定点数运算法,用来将该数字数据在一定点数表示法及一复合式动态定点数表示法之间转换。
4.一种用于一数字信号处理器中的方法,用来将具有一定点数表示法的一高位数数字数据转换为具有一新型定点数表示法的一低位数数字数据,该方法包含(a)依据该高位数数字数据的绝对值大小,将具有该定点数表示法的该高位数数字数据放大移位N位,其中N为大于或等于零的整数,且N的值随着该高位数数字数据的绝对值大小而变动;(b)于进行步骤(a)后,舍去该高位数数字数据中一预定数目的位数;以及(c)于进行步骤(a)后,设置一动态移位值,以产生具有该新型定点数表示法的该低位数数字数据,其中该动态移位值对应于N的值。
5.如权利要求4的方法,其中当该高位数数字数据的绝对值愈大,N的值愈小;当该高位数数字数据的绝对值愈小,N的值愈大。
6.如权利要求4的方法,其还包含(d)于步骤(a)中,判断N的值是否小于一最大移位位数,其中该最大移位位数对应于该动态移位值所能表示的一最大值;以及(e)于步骤(a)中且进行步骤(d)后,若N的值小于该最大移位位数,则维持N的值,若N的值大于或等于该最大移位位数,则将N的值设为该最大移位位数。
7.如权利要求6的方法,其中该高位数数字数据包含一标示位(Signbit),N的值的选定由比较该标示位与该高位数数字数据中的其他位而得。
8.如权利要求7的方法,其中该低位数数字数据包含该标示位,且具有该新型定点数表示法的该低位数数字数据可依据该动态移位值以及该标示位,转换成为具有该定点数表示法的该高位数数字数据。
9.如权利要求4的方法,其还包含(f)于进行步骤(c)后,将具有该新型定点数表示法的该低位数数字数据写入一存储装置中。
10.一种用于一数字信号处理器中的方法,用来将具有一新型定点数表示法的一低位数数字数据转换为具有一定点数表示法的一高位数数字数据,该方法包含由该低位数数字数据中取得一动态移位值;以及依据该动态移位值,将该低位数数字数据缩小移位N位,其中N为大于或等于零的整数。
11.如权利要求10的方法,其还包含将该低位数数字数据的该动态移位值所占的位处填上一特定值。
12.如权利要求10的方法,其中该高位数数字数据包含一标示位(Signbit),该方法还包含依据该标示位,决定该N位中每一位的值。
13.如权利要求10的方法,其中该动态移位值位于该低位数数字数据中的预定数目个最低位。
14.一种数字信号处理器,用来处理至少一组数字数据,该至少一组数字数据分别具有多个数值表示法,该多个数值表示法至少包含一定点数表示法以及一新型定点数表示法,该数字信号处理器包含至少一提取移位装置,用来将具有该新型定点数表示法的一数字数据转换为具有该定点数表示法的一数字数据;多个表示法转换电路,每一表示法转换电路利用一新型定点数运算法,将该至少一组数字数据中任一数字数据于该定点数表示法及该新型定点数表示法之间进行转换;以及至少一运算单元,用来运算该至少一组数字数据。
15.如权利要求14的数字信号处理器,其中该至少一提取移位装置包含一提取装置,用来由具有该新型定点数表示法的一数字数据中提取出一动态移位值;以及一移位装置,电连接到该提取装置,用来依据该动态移位值,将该具有该新型定点数表示法的数字数据缩小移位N位,其中N为大于或等于零的整数。
16.如权利要求15的数字信号处理器,其中该动态移位值位于具有该新型定点数表示法的该数字数据中的预定数目个最低位。
17.如权利要求15的数字信号处理器,其中每一数字数据包含一标示位,该移位装置依据该标示位,以决定该N位中每一位的值。
18.如权利要求14的数字信号处理器,其中该新型定点数运算法用来将具有该定点数表示法的一高位数数字数据转换为具有该新型定点数表示法的一低位数数字数据,或者将具有该新型定点数表示法的该低位数数字数据转换为具有该定点数表示法的该高位数数字数据。
19.如权利要求18的数字信号处理器,其中该新型定点数运算法依据该高位数数字数据的绝对值大小,将具有该定点数表示法的该高位数数字数据放大移位N位,并舍弃预定数目的位数,再设置一动态移位值,以产生具有该新型定点数表示法的该低位数数字数据,其中N为大于或等于零的整数,该动态移位值对应于N的值,并占有预定数目个位数。
20.如权利要求19的数字信号处理器,其中N的值随着该高位数数字数据的绝对值大小而变动,当该高位数数字数据的绝对值愈大,N的值愈小;当该高位数数字数据的绝对值愈小,N的值愈大。
21.如权利要求20的数字信号处理器,其中当N的值小于一最大移位位数时,则维持N的值,若N的值大于或等于该最大移位位数,则将N的值设为该最大移位位数。
22.如权利要求21的方法,其中该最大移位位数对应于该动态移位值的一最大值。
23.如权利要求20的方法,其中该高位数数字数据包含一标示位,N的值的选定由比较该标示位与该高位数数字数据中的其他位而得。
24.如权利要求14的数字信号处理器,其还包含一存储装置,电连接到该运算单元,用来存储该至少一组数字数据;以及一乘法电路,用来将至少二低位数数字数据相乘产生一高位数数字数据。
25.如权利要求24的数字信号处理器,其中该提取移位装置电连接到该乘法电路,当输入该乘法电路的该二低位数数字数据皆具有该新型定点数表示法时,该提取移位装置依据具有该新型定点数表示法的该二低位数数字数据的动态移位值,将具有该新型定点数表示法的该高位数数字数据转换为具有该定点数表示法的该高位数数字数据。
26.如权利要求14的数字信号处理器,其还包含一数据接收端,用来接收至少一组数字数据;以及一数据写入端,用来将具有该新型定点数表示法的至少一低位数数字数据写入一存储装置。
27.如权利要求14的数字信号处理器,其中该新型定点数运算法为一复合式动态定点数运算法,该新型定点数表示法为一复合式动态定点数表示法。
全文摘要
本发明提供一种新型定点数表示法,用来表示一经数值转换操作后的数字数据,该新型定点数表示法包含将该数字数据中预定数目个最低位设为一动态移位值,其中该动态移位值代表于该数值转换操作中所移位的位数;以及将该数字数据中除了该动态移位值之外的多个位对应到经该数值转换操作前的该数字数据的部分位,该部分位包含至少一含有数值信息的最重要位。
文档编号G06F9/30GK1658153SQ20041000542
公开日2005年8月24日 申请日期2004年2月18日 优先权日2004年2月18日
发明者徐建华 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1