首页> 中国专利> 以Booth算法为基础的乘法运算方法与乘法装置

以Booth算法为基础的乘法运算方法与乘法装置

摘要

本发明涉及一种以Booth算法为基础的乘法装置与运算方法,依据一乘数索引挑选一组乘数系数组,此乘数系数组是由已知的复数组乘数系数中所挑选出来,每一组乘数系数中各包含以Booth算法由一已知乘数所转换出的多个乘数系数,再依据所挑选出的乘数系数组与一被乘数以Booth算法来产生复数个部分乘积,最后加总各部分乘积以产生一输出值。

著录项

  • 公开/公告号CN1591319A

    专利类型发明专利

  • 公开/公告日2005-03-09

    原文格式PDF

  • 申请/专利权人 威盛电子股份有限公司;

    申请/专利号CN200410034305.0

  • 发明设计人 叶丁坤;蔡政铭;王瑞麟;

    申请日2004-04-09

  • 分类号G06F7/52;

  • 代理机构中原信达知识产权代理有限责任公司;

  • 代理人陈肖梅

  • 地址 台湾省台北县新店市中正路533号8楼

  • 入库时间 2023-12-17 15:55:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-08-12

    授权

    授权

  • 2005-05-11

    实质审查的生效

    实质审查的生效

  • 2005-03-09

    公开

    公开

说明书

技术领域

本发明涉及一种乘法的装置与其运算方法,特别是以Booth算法为基础的乘法的装置与运算方法。

背景技术

离散余弦转换(Discrete cosine Transform;DCT)与反离散余弦转换(Inverse Discrete cosine Transform;IDCT)分别被用于处理数据的压缩与解压缩上,其中一种有名的离散余弦转换(DCT)与反离散余弦转换(IDCT)技术是以Lee的算法(Lee’s algorithm)为基础的快速傅利叶转换(Fast Fourier Transform;FFT)。图1A以Lee的算法应用于交错互换(shuttle exchange)电路实作的简单示意图,其中离散余弦转换共分成第一阶段运算、第二阶段运算、第三阶段运算与第四阶段运算等四阶段运算,将8个平行输入的数据数值X0,X1,...,X7经离散余弦变换后产生平行输出的数据数值Y0,Y1,...,Y7。在图lA中共分为两个区块:离散余弦转换交换处理器1与后处理器2。离算余弦转换交换处理器1由12个相似的处理单元3所构成,此处理单元以蝴蝶电路(butterflycircuits)的架构来设计,其后再连接以五个加法单元4与一个定点系数乘法单元5(fixed-coefficient multiplication unit)所构成的后处理器2。每一个处理单元3包含一个加法器31、一个减法器32与一个定点系数乘法器5,在各处理单元3的定点系数乘法器中,有4个以符号A表示,2个以符号B表示,2个以符号C表示,另外以符号D、E、F与G来表示的各有一个。这些以符号A、B、C、D、E、F与G来表示的定点系数乘法器其输入的系数值分别为 >>>1>2>>cos>>(>π>/>4>)>>,>>1>2>>cos>>(>π>/>8>)>>,>>1>2>>cos>>(>3>π>/>8>)>>,>>> >>>1>2>>cos>>(>π>/>16>)>>,>>1>2>>cos>>(>3>π>/>16>)>>,>>1>2>>cos>>(>7>π>/>16>)>>>>与 >>>1>2>>cos>>(>5>π>/>16>)>>>>。如果在设计上不考虑个别的加法单元、减法单元与乘法单元,图1A不需采用任何控制装置,这种的不用控制装置的离散余弦转换数据流相依(DCT data-flowdependence)设计可直接设计成为一个数据流架构(data-flowarchitecture)。

相对于图1A,图1B为以Lee的算法实作于反离散余弦转换电路的简单示意图,其中反离散余弦转换共分成第一阶段运算、第二阶段运算、第三阶段运算与第四阶段运算等四阶段运算,将8个平行输入的数据数值z0,z1,...,z7经离散余弦变换后产生平行输出的数据数值x0,x1,...,x7。在图1B中共分为两个区块:反离散余弦转换交换处理器7与前处理器6。反离算余弦转换交换处理器7由12个相似的处理单元8所构成,这些处理单元以蝴蝶电路架构所设计,其连接于以五个加法单元9与一个定点系数乘法单元10(fixed-coefficient multiplication unit)所构成的前处理器6之后。每一个处理单元8包含一个加法器81、一个减法器82与一个定点系数乘法器,在各处理单元8的定点系数乘法器中,有4个以符号A表示,2个以符号B表示,2个以符号C表示,另外以符号D、E与G来表示的各有一个。这些以符号A、B、C、D、E、F与G来表示的定点系数乘法器其输入的系数值皆与图1A相同。另一种有名的离散余弦转换/反离散余弦转换上的算法为Chen算法,在离散余弦转换/反离散余弦转换上有关于Lee算法与Chen算法的相关细节可参照美国专利US5,452,466、US5,841,682与US6,317,676。

在一般运算中,乘法相较于加法,无论在空间与时间上需要数倍以上的成本,特别是实现乘法所需要的硬件电路成本比实现加法所需要的硬件电路成本高很多。根据上述,可知在离散余弦转换与反离散余弦转换需花费大部份的成本在乘法运算上,因此许多乘法器的改良被普遍地应用在离散余弦转换与反离散余弦转换上。其中一种有名的乘法器是以Booth算法为基础,其细节可参考美国专利US5,485,413d。如图2A所示,在Booth算法中,首先如步骤220所示,将乘数依Booth算法转换成一组包含多个乘数系数的乘数系数组。接下来,如步骤240所示,再依据所挑选出的乘数系数组与一被乘数以Booth算法来产生复数个部份乘积。最后如步骤260所示,加总各部份乘积以产生被乘数与乘数相乘的乘积。因此上述的乘法方法可被设计一乘法器,如图2B所示,由一系数产生装置22将乘数211转换成一组乘数系数组221,此乘数系数组221包含多个乘数系数222。接下来,再由部份乘积产生装置24依据这些乘数系数222与被乘数212来产生数个部份乘积242,最后再由加总装置26将各部份乘积242加总以得出被乘数212与乘数211相乘的乘积262。此乘数系数的数目比乘数的位元总数还少,因此依据乘数系数所产生的部份乘积的数量比依据乘数的各位元所产生的部份乘积少上许多,使得在空间上与效能上的成本都能大量节省。

上述的离散余弦转换与反离散余弦转的乘法运算约有7种,但都具有多数个构成单元,也相对应到多数个计算步骤与总类。因此如果能将用于离散余弦转换与反离散余弦转的乘法运算进一步简化,将可以节省许多成本。

发明内容

本发明的目的在于克服现有技术的不足与缺陷,提出一种以Booth算法为基础的乘法运算方法与装置,用以减少乘数系数以简化乘法运算。

为达上述目的,本发明提出一种乘法运算方法,依据一乘数索引(multiplication index)来挑选一组乘数系数组(multiplication coefficientsets),此乘数系数组由已知的复数组乘数系数中所挑选出来,每一组乘数系数中各包含以Booth算法由一已知乘数所转换出的多个乘数系数,再依据所挑选出的乘数系数组与一被乘数以Booth算法来产生复数个部份乘积,最后加总各部份乘积以产生一输出值。

本发明也提出一种乘法装置,包含:一系数产生单元,依据一乘数索引于复数组系数中挑选出一组系数作为一乘数系数组,此乘数系数组包含复数个系数,此乘数系数组包含复数个依据乘数索引值所相应的一已知乘数值以Booth算法所产生的系数;一部份乘积产生单元,依据乘数系数组与一被乘数以Booth算法计算出复数个部份乘积;以及一加总单元,用以加总各部份乘积以产生一输出值。

附图说明

图1A与图1B为现有技术的装置示意图;

图2A、图2B分别为现有技术中Booth算法的流程示意图与功能方块示意图。

图3为本发明的一具体实施例的流程示意图;

图4为本发明的另一具体实施例的功能方块示意图。

图中符号说明

211    乘数

212    被乘数

22     系数产生单元

221    乘数系数组

222    乘数系数

24     部份乘积产生单元

242    部份乘积

2421   高位元组

2422   低位元组

26     加总单元

262    乘积

41     乘数索引

42     系数产生单元

46     加总单元

461    高位元乘积

462    低位元乘积

4621   进位值

463    输出值

具体实施方式

本发明一些实施例详细描述如下。然而,除了详细描述外,本发明还可以广泛地在其它的实施例施行,且本发明的范围不受限定,其以权利要求书的范围为准。

再者,为提供更清楚的描述及更易理解本发明,附图内各部分并没有依照其相对尺寸绘图,某些尺寸与其它相关尺度相比已经被夸张;不相关的细节部分也未完全绘出,以求图标的简洁。

在Booth算法的乘法运算中,其主要的特征是将乘数(multiplicator)转换为复数个系数作为乘数系数,再依据这些乘数系数产生复数个部份乘积(part of product),最后加总(summing)所有部份乘积以得出完成运算的乘积。因此,本发明以Booth算法的运算特征来做乘法的改良,其是基于在某些特定应用环境中,乘数的各种可能的数值都为已知时(即只有固定的一些可能乘数值),可以先将乘数的每一种可能的数值指定至一相应的乘数索引值,并且事先依乘数的每一种可能的数值来计算出一组相应的乘数系数。因此,依此乘数索引值便能直接得出相应的一组乘数系数,而不需如现有技术需在得知乘数后再进行系数转换,故可节省系数转换的成本,同时也增进了运算的效能。此外,因为乘数的各种可能的数值都为已知,故乘数索引可以较少的位元来表示,例如,原本乘数以二进制(binary)表示时,共有16个位元,其可能的数值共有216种,然而实施上所会使用的已知数值仅有8种,便可以用3个位元来表示所有可能的乘数。

另外,在乘积的输出上,有时并不一定需要将完整乘积输出,而仅需要将部份的位元输出即可。例如,乘数或被乘数具有小数时,输出值可以是以乘积取至小数点后几位元,其余小数部份皆舍去。另外,也可能乘积仅需要将小数点前几位元输出即可,例如乘积所能表示的值可达到40位元,然而所有可能的乘积最多仅需23个位元就能表示,因此输出23个位元即可。

此外,如上述,若乘积的输出仅为其中的部份位元组,可以将部份乘积中相对于输出的位元组及其它更高位的位元作为一高位元组,其余较低的位元作为一低位元组,分别将所有部份乘积中高位元组与低位元组各自加总,用以分别得出高位元乘积与低位元乘积,其中低位元乘积中包含一进位值,此进位值由低位元乘积中相对原低位元组以外的其它位元所组成,用以进位来与高位元乘积加总,据此,便可以用高位元乘积与进位值的总合中的部份位元组作为乘积的输出值。因此在低位元组的加总过程中,除了进位值外,低位元乘积中的其它位元皆不需要保留,可节省成本。

本发明可适用于整数、浮点数(floating point value)、定点数(fixedpoint value)或者其它数值型态(type),并也适用于各种不同的数值表示方式,如2进制、4进制、10进制、16进制等,数值型态与数值表示方式在本发明并不受限制。

此外,乘数系数组的挑选方式可以是依据系数索引从一查表(lookup table)中来挑选,此查表中记录着各种乘数索引与相应的乘数系数的相应关系,此查表的实施方式可以储存在存储器中、能保持状态的电路或其它储存媒体中,通过乘数索引作为地址索引或控制信号,以输出相应的一组乘数系数,更可以直接以逻辑电路(logical circuit)所达成。在此对查表的举例说明是为了让乘数系数的挑选方式能够更容易了解,并非用于限制本发明的实施方式,本发明对由乘数索引挑选出乘数系数组的实施方式并不加以限制。

综合上述,本发明的一具体实施例是一种Booth算法的乘法运算方法,如图3所示。首先,步骤320依据一乘数索引挑选一组乘数系数组,此乘数系数组由已知的复数组乘数系数中所挑选出来。每一组乘数系数中各包含以Booth算法所转换出的多个乘数系数。也就是说,所有可能的乘数值都为已知,各由一个乘数索引所相应,并且以Booth算法转换出相应的一组乘数系数,也因此每一乘数索引也与一组乘数系数相应。此外,不同的乘数值所转换出的一组乘数系数有可能相同,也因此不同的乘数索引也有可能与相同的一组乘数系数相应。

然后,如步骤340所示,依据所挑选出的乘数系数组与一被乘数以Booth算法来产生复数个部份乘积,也就是依序将被乘数与乘数系数组的每一个乘数系数相乘,以产生多个部份乘积。

接下来,如步骤360所示,加总各部份乘积以产生一输出值。此输出值可以是经所有部份乘积加总所得的乘数与被乘数相乘的乘积,也可以是现有所述以乘积的部份位元的组合来产生。本实施例的其它细节已于上述的说明中详述,在此不再赘述。

本发明的另一较佳实施例是一种Booth算法的乘法装置,如图4所示,包含一系数产生单元42、一部份乘积产生单元24与一加总单元46。系数产生单元42依据一乘数索引41从已知的复数组乘数系数222中挑选出一组作为乘数系数组221,每一组乘数系数中各包含以Booth算法由一已知乘数221所转换出的多个乘数系数222。接下来,再由部份乘积产生单元24依据乘数系数组221与一被乘数212以Booth算法进行计算,以计算出多个部份乘积242。最后,再经由加总单元46将各部份乘积242加总以产生一输出值463。其中输出值463的产生方式可以是依先前所述,将部份乘积242分为高位元组2421与低位元组2422,再由加总单元46分别将各部份乘积242的高位元组2421与低位元组2422各自加总,来分别产生高位元乘积441与低位元乘积442,然后依据高位元乘积441与低位元乘积442来产生输出值443。其中低位元乘积442中包含上述的进位值4421,输出值443更可以依先前所述,由高位元乘积441与进位值4421的总和来产生。本实施例的其它细节已于上述的说明中详述,在此不再赘述。

据此,本发明的再一具体实施例可以是将上述的Booth算法的乘法装置应用于离散余弦转换/反离散余弦转换上,例如作为Lee算法中的定点系数乘法器,其中的乘法运算以定点系数作为乘数,这些乘数为余弦函数值、或正弦函数值,例如乘数可能为 >>>1>2>>cos>>(>π>/>4>)>>,>>1>2>>cos>>(>π>/>8>)>>>> >>>1>2>>cos>>(>3>π>/>8>)>>,>>1>2>>cos>>(>π>/>16>)>>,>>1>2>>cos>>(>3>π>/>16>)>>,>>1>2>>cos>>(>7>π>/>16>)>>>>与 >>>1>2>>cos>>(>5>π>/>16>)>>>>等等。此外,本具体实施例亦可作为Chen算法中的定点系数乘法器,并且更可将上述的离散余弦转换/反离散余弦转换应用于数字影音播放软件或设备上,如VCD播放器、DVD播放器、HDTV或其它相关软件或设备。本实施例的其它细节已于上述的说明中详述,在此不再赘述。

以上所述仅为本发明的较佳实施例,并非用以限定本发明的保护权利;同时以上的描述,对于本技术领域的专门人士应可明了及实施,因此其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在权利要求书的范围中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号