CN101384989B - 在数字信号处理器中执行布斯乘法的方法和系统 - Google Patents

在数字信号处理器中执行布斯乘法的方法和系统 Download PDF

Info

Publication number
CN101384989B
CN101384989B CN2007800051514A CN200780005151A CN101384989B CN 101384989 B CN101384989 B CN 101384989B CN 2007800051514 A CN2007800051514 A CN 2007800051514A CN 200780005151 A CN200780005151 A CN 200780005151A CN 101384989 B CN101384989 B CN 101384989B
Authority
CN
China
Prior art keywords
multiplication
product
multiplier
cloth
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007800051514A
Other languages
English (en)
Other versions
CN101384989A (zh
Inventor
尚卡尔·克里蒂瓦桑
克里斯托弗·爱德华·科布
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/356,359 external-priority patent/US7797366B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority claimed from PCT/US2007/062082 external-priority patent/WO2007095548A2/en
Publication of CN101384989A publication Critical patent/CN101384989A/zh
Application granted granted Critical
Publication of CN101384989B publication Critical patent/CN101384989B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供用于数字信号处理器的设计和使用的技术,包含处理通信(例如,CDMA)系统中的传输。经修改的布斯乘法系统和过程确定被乘数A和乘数B。对B的基数为m(例如,基数为4)的布斯重编码产生“n”个乘法因数,其中整数“n”接近乘数位的数目的一半。使用所述“n”个乘法因数作为A的乘数来产生“n”个部分乘积。接着,使用基数为m的布斯编码来形成乘法树。所述乘法树包含相关联的乘数位以产生乘法因数。在负乘法因数的情况下,通过使A的位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数。此外,在多个级中将乘法因数缩减为具有预定长度的一形式的总和与进位分量。通过使用新颖的技术计算A和-B的乘积来形成A×B的加性相反数。

Description

在数字信号处理器中执行布斯乘法的方法和系统
相关申请案
本申请案与2006年2月15日申请且题为“用于布斯乘法方法和系统的功率有效符号扩展(POWER-EFFICIENT SIGN EXTENSION FOR BOOTH MULTIPLICATIONMETHODS AND SYSTEMS)”的第11/356,359号共同待决美国专利申请案相关。
技术领域
本发明涉及数字信号处理器中的数学处理器的领域,且更明确地说,涉及用于数学处理器中以执行数字的高速乘法的布斯乘数。更明确地说,本发明涉及一种能够执行对各种数据类型的操作数以及对于有符号和无符号二进制值的运算的乘法器电路。
背景技术
电子设备和支持的软件应用程序越来越多地涉及数字信号处理。家庭影院、计算机图形、医学成像和电信均依赖于数字信号处理技术。数字信号处理需要复杂但重复的算法中的快速数学。许多应用需要实时计算,即信号为时间的连续函数,所述信号必须被取样和转换为数字信号,以用于数值处理。处理器必须执行在样本到达时对所述样本执行离散计算的算法。数字信号处理器(或DSP)的架构经优化以处置这些算法。良好的信号处理引擎的特征包括:快速、灵活的算术计算单位;到计算单位和来自计算单位的未受约束数据流;计算单位中扩展的精度和动态范围;双地址产生器;高效程序排序;和编程的简易性。
DSP技术的一个颇具前景的应用包括例如码分多址(CDMA)系统的通信系统,其支持经由卫星或陆地链路的在用户之间的语音和数据通信。题为“使用卫星或陆地中继器的扩频多址通信系统(SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATIONSYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS)”的第4,901,307号美国专利和题为“用于在CDMA电信手持机系统中产生波形的系统和方法(SYSTEM ANDMETHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSETSYSTEM)”的第5,103,459号美国专利中揭示了在多址通信系统中使用CDMA方法,所述两个专利均转让给所主张的主旨的受让人。
CDMA系统通常经设计以遵从一个或一个以上电信(且现在为串流视频)标准。一个此类第一代标准为“用于双模宽带扩频蜂窝式系统的TIA/EIA/IS-95终端-基站兼容性标准(TIA/EIA/IS-95Terminal-Base Station Compatibility Standard for Dual-mode WidebandSpread Spectrum Cellular System)”(下文中称为IS-95标准)。IS-95CDMA系统能够传输语音数据和包数据。可更有效传输包数据的新一代标准是由名为“第三代合作伙伴计划(3rd Generation Partnership Project)”(3GPP)的协会提供且包含在包括第3G TS 25.211号、第3G TS 25.212号、第G TS 25.213号和第3G TS 25.214号文献的一组文献中,所述文献易于由公众获得。下文中将3GPP标准称为W-CDMA标准。也存在视频压缩标准,例如MPEG-1、MPEG-2、MPEG-4、H.263和WMV(Windows媒体视频),以及此类无线手持机将越来越多地采用的许多其它标准。
为实现快速和灵活的算术计算单位,需要执行高速乘法运算。已知用于执行这些运算的过程为布斯乘法。布斯乘法是通过对经乘法计算的数重编码而允许较小、较快乘法电路的过程。通常通过产生部分乘积而执行使用布斯过程的乘法。随后将部分乘积相加以获得最终结果。在使用布斯乘法过程的情况下,部分乘积的数目等于乘法器矩阵中的行数目。术语“部分乘积”是指乘法树中的行。
虽然对原始布斯算法存在众多修改,但基本原理是使用布斯编码过程来产生较少部分乘积。可通过使用基数为4的布斯重编码过程而使部分乘积的数目减少约一半。基数为4的布斯重编码将乘数B的位(最初以二进位值0和1表示)映射为可采用值-2、-1、0、1或2的一组乘法因数。此方法提供将原本会出现的部分乘积的数目大致减半的益处。这在电路设计中较为重要,因为其涉及电路运作中的传播延迟,和电路实施方案的复杂性和功率消耗。一旦已使用布斯编码过程产生部分乘积,便通过采用缩减技术而将所述部分乘积加到一起。缩减过程涉及使用半加器、全加器和多操作数加法器以并行过程对部分乘积位的多个行求和。此缩减导致被认为呈冗余格式的两行位,在使用进位传播加法器进行解析时其总和表示最终乘积。将这些行中的一者称为总和S且另一行称为进位C。在乘法累加(MAC)运算中,[Z+(A×B)]中的Z项通常在最终CPA之前包括在缩减树中。此过程对于呈冗余格式的乘法乘积的解析与后续累加来说均节省了对CPA的采用。
因为某些部分乘积可为负的,所以2的求补运算所需的硬件是布斯乘法器的一方面。在使用此硬件的情况下,需要提供能够产生乘法乘积的布斯乘法器。目前,不存在能够针对DSP应用有效地产生-(A×B)的已知方法或系统。因此,需要在DSP应用中能够将布斯乘法过程用于产生乘积的加法相反数-(A×B)的方法和系统。
然而,一旦产生此乘积,便存在以下问题:如果待累加的值(“Z”加到乘法“A×B”的乘积)比乘积A×B具有更大的位宽度,则冗余乘积的“总和”与“进位”分量均需要被适当地符号扩展。有时,可能有必要在较广范围的位上执行符号扩展。因此,在DSP中的布斯乘法过程期间需要适当的符号扩展过程。
发明内容
本发明揭示用于提供具有增强的缩减树电路的布斯乘法器的技术,所述过程改进数字信号处理器的操作和数字信号处理器指令的有效使用,所述指令用于处理用于个人计算机、个人数字助理、无线手机和类似电子装置的日益稳健的软件应用以及增加相关联的数字信号处理器速度和服务质量。
因此,所揭示的主旨提供用于数字信号处理器的设计和使用的过程,包含处理通信(例如,CDMA)系统中的传输。所揭示的方法和系统在数字信号处理器中执行改进的布斯乘法。所述方法和系统确定包含第一多个位的被乘数A和具有第二多个位的乘数B。所揭示的主旨对B执行基数为m(例如,基数为4)的布斯重编码以产生第一预定整数数目“n”个乘法因数。“n”个乘法因数接近第二多个位的数目的一比率(例如,一半,对于基数为4的乘法)。所述方法和系统进一步使用所述“n”个乘法因数作为A的乘数来产生“n”个部分乘积。接着,使用基数为m的布斯编码来形成乘法树。在负乘法因数的情况下,本发明包含通过使A的第一多个位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数。此外,所述过程涉及在多个缩减级中将乘法因数缩减为具有预定长度的一组总和与进位分量。
从本文提供的描述中将了解所揭示的主旨的这些和其它优点以及额外新颖特征。本发明内容的意图并非所主张的主旨的全面描述,而是提供所述主旨的功能性中的一些的简略概述。所属领域的技术人员在检查以下附图和详细描述之后将了解此处提供的其它系统、方法、特征和优点。希望所有这些额外系统、方法、特征和优点包括在此描述内,包括在随附权利要求书的范围内。
附图说明
结合附图考虑,从下文陈述的具体实施方式中将更加了解所揭示主旨的特征、性质和优点,附图中相同参考标号始终进行相应识别,且其中:
根据结合附图而在下文陈述的详细描述将更加明白所揭示主旨的特征、性质和优点,附图中,相同的参考符号始终进行相应地识别,且附图中:
图1为可实施本实施例的通信系统的简化方框图;
图2说明实现本实施例的教示的DSP架构;
图3提供用于提供所揭示主旨的技术优点的数字信号处理器的实施例的架构方框图;
图4呈现所揭示主旨的各种实施方案的数据路径图;
图5呈现可适用于所揭示主旨的经修改16×16的基数为4的布斯乘法树;
图6提供实施所揭示主旨的布斯重编码器的逻辑单元;
图7提供对具有所揭示主旨的图7的逻辑单元的位分组的描述;
图8呈现用于实施-(A×B)乘积的布斯重编码逻辑的逻辑单元;
图9为所揭示的主旨如何处置布斯乘法中的减法的表;且
图10展示根据所揭示主旨的其它教示的16×16布斯乘法缩减树。
具体实施方式
针对本文呈现的经修改的布斯乘法器的所揭示的主旨可用于许多种数字信号处理应用中,包含涉及多线程处理的应用。一个此类应用出现在采用一个或一个以上数字信号处理电路的电信和(具体来说)无线手持机中。因此,以下图1到图3描述电信DSP,在所述DSP内本教示可为有用的。图4陈述乘法处理的数据路径,增强的布斯乘法运算的本发明可在所述乘法处理内运算。然而,应记住,此处所描述的实施方案仅提供所揭示主旨可适用的实际上无限组的应用中的一者。
出于阐述可如何使用此类无线手持机的目的,图1提供通信系统10的简化方框图,所述通信系统可实施所揭示的中断处理方法和系统的所呈现实施例。在传输器单元12处,通常以区块为单位将数据从数据源14发送到传输(TX)数据处理器16,所述传输(TX)数据处理器16格式化、编码和处理所述数据以产生一个或一个以上模拟信号。随后将所述模拟信号提供到传输器(TMTR)18,所述传输器调制、过滤、放大,且上变频转换基带信号以产生经调制信号。随后经由天线20将所述经调制信号传输到一个或一个以上接收器单元。
在接收器单元22处,由天线24接收所传输的信号且提供到接收器(RCVR)26。在接收器26内,所接收的信号被放大、过滤、下变频转换、解调,和数字化以产生同相(I)和(Q)样本。随后通过接收(RX)数据处理器28对所述样本进行解码和处理以恢复所传输的数据。以与在传输器单元12处执行的编码和处理互补的方式执行接收器单元22处的编码和处理。随后将所恢复的数据提供到数据汇30。
上述信号处理支持在一个方向上传输语音、视频、包数据、消息发送和其它类型的通信。双向通信系统支持双向数据传输。然而,为简明起见,图1中未展示在另一方向上的信号处理。通信系统10可为支持经由陆地链路的用户之间的语音和数据通信的码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如GSM系统)、频分多址(FDMA)通信系统,或其它多址通信系统。在特定实施例中,通信系统10为遵从W-CDMA标准的CDMA系统。
图2说明可充当图1的传输数据处理器16和接收数据处理器28的DSP 40架构。再次强调DSP 40仅表示可有效地使用此处所呈现的教示和概念的许多可能的数字信号处理器实施例中的一个实施例。因此在DSP 40中,线程T0:T5(参考数字42到52)含有来自不同线程的指令集。电路54表示指令存取机构且用于获取用于线程T0:T5的指令。电路54的指令被排入指令队列56中。指令队列56中的指令准备发布到处理器管线66(见下文)中。可通过发布逻辑电路58从指令队列56中选择单一线程,例如线程T0。读取选定线程的寄存器堆60并将所读取的数据发送到槽0到槽3的执行数据路径62。在此实例中,槽0到槽3提供本实施例中所采用的包分组组合。
来自执行数据路径62的输出进入寄存器堆写入电路64(其也经配置以容纳个别线程T0:T5)以返回来自DSP 40的运算的结果。因此,根据各种线程而划分成多个部分的来自电路54且在到寄存器堆写入电路64之前的数据路径形成处理管线66。
本实施例可采用使用具有多达六个线程T0:T5的单一微处理器的异质元件处理器(HEP)系统的混合体。处理器管线66具有六个级,从而匹配从电路54到寄存器60和64获取数据项目所必需的最小数目的处理器循环。DSP 40在处理器管线66内同时执行不同线程T0:T5的指令。即,DSP 40提供六个独立的程序计数器、用以在处理器管线66内区分线程T0:T5的指令的内部标记机构,和用以触发线程切换的机构。线程切换额外开销从零到仅数个循环进行变化。
因此,DSP 40提供通用数字信号处理器,其经设计以用于广泛各种信号、图像和视频处理应用中的高性能和低功率。图3提供对DSP 40架构的简要概述,其包括所揭示主旨的一个表现形式的相关联指令集架构的某些方面。DSP 40架构的实施方案支持交错的多线程(IMT)。在此执行模型中,硬件通过在管线中交错来自不同线程的指令而支持多个硬件线程T0:T5的同时执行。此特征允许DSP 40包括主动时钟频率,同时仍维持较高的核心和存储器利用。IMT提供高处理量而无需昂贵的补偿机构,例如无序执行、大范围的转发网络等。
更具体来说,图3提供可采用所揭示主旨的教示的单一线程的编程模型的一个实施例的架构方框图。方框图70描绘从AXI总线74接收指令的私用指令高速缓冲存储器72,所述指令包括到线程T0:T5的定序器76、用户控制寄存器78和监督者控制寄存器80的混合16位和32位指令。定序器76将混合的双向超标量指令和四向VLIW指令提供到S管单元82、M管单元84、Ld管86,和Ld/St管单元88。AXI总线74也使用共用数据高速缓冲存储器90将LD/ST指令传送到线程T0:T5。在使用外部DMA主控器96的情况下,共用数据TCM 98传送LD/ST指令,所述LD/ST指令进一步流向线程T0:T5。从AHB外围总线100,MSM专有控制器102与T0:T5传送中断管脚,其包括终端控制器指令、调试指令和计时指令。全局控制寄存器104与线程T0:T5传送控制寄存器指令。
在如图3的M管84中呈现的单一线程处理的结构内发生高速数学处理。乘法区块118内的乘法的计时对于确保M管84的操作适当发生很重要。所揭示的主旨可适用的任何应用中很可能存在类似的计时考虑。因此,布斯乘法过程发生的速度提供此处揭示的材料的独特新颖方面。
为了满足这些时间约束,所揭示的主旨使用能够执行两个数字的乘积A×B或两个数字的乘积的加性相反数-A×B的布斯乘法。另外,本发明包含一种将舍入常数包含在布斯缩减树和符号扩展过程中的方法,其减少了功率和面积。此外,本发明的布斯乘法过程可需要部分乘积为有符号的数字,即使对无符号的操作数执行乘法时也如此。由于一些部分乘积可能是负的,所以用于执行布斯乘法的2的求补运算电路允许修改常规布斯乘法器以便产生乘法乘积的负值。有效地产生-(A×B)的能力对许多DSP应用(包含形式[Z+-(A×B)]的运算)具有较大影响。本发明启用这些乘法累加运算或MAC运算
图4呈现所揭示主旨的各种实施方案的数据路径图180,且建立其内可发生本布斯乘法过程的数据流。具体来说,乘法区块118接收Rs和Rt输入。乘法单元M0:M3在乘法区块118内。具体来说,M0乘法器单元182、M1乘法器单元184、M2乘法器单元186和M3乘法器单元188单独地接收Rs和Rt输入以分别将S0C0(即总和0和进位0)、S1C1、S2C2,和S3C3输出产生到移位/符号扩展单元148。移位/符号扩展单元148负责这些中间冗余乘积的逻辑移位和符号扩展。
乘法器区块118执行M管84的乘法相关指令。可将这些指令视为使用16×16乘法过程作为基础的复合指令。乘法器区块由四个16×16乘法器单元M0:M3组成。每一乘法器单元M0:M3能够在若干模式中起作用,以支持广泛各种M类型指令。支持有符号与无符号的模式。在需要对乘积执行减法的情况下,乘法器也可产生乘法器的乘积的2补数。
在所揭示的主旨的情况下,M0:M3乘法器182到188使用基数为4的布斯编码。在无符号模式中,所述乘法器类似使用额外第17位充当符号位的17×17乘法器。除双精度乘法(即32×32乘法)之外,所有其它乘法指令为“有符号×有符号”或“无符号×无符号”。使用16×16乘法器来计算双精度32×32乘法和32×16乘法也需要“有符号×无符号”和“无符号×有符号”的乘法。通过控制被乘数的符号位和M0:M3乘法器182到188的乘数操作数而支持所有这些模式。
来自移位/符号扩展单元148的输出进入多操作数加法器150且可被剖析为R0:R3输入。多操作数加法器150接收这些R0:R3输入并最终在一组压缩和累加级之后提供Rdd输出170。
可将数据路径180理解为可划分为四个阶段。首先,在数据路由阶段,将来自Rs和Rt源寄存器的数据馈送到乘法区块118。在乘法区块118内,基于指令而将来自源操作数的16位半字路由到四个M0:M3乘法器单元182到188。接着,发生部分乘积产生和缩减向量加法或减法,其中M0:M3乘法器单元182到188使用基数为4的布斯编码来产生部分乘积并使用缩减来将所述部分乘积缩减为冗余对的输出。
在多操作数缩减阶段期间,将来自乘法区块118的冗余输出输入到多操作数加法器,所述多操作数加法器将这些输入和可选累加器/舍入值缩减为两对冗余输出。最终,在加法/饱和阶段,使用进位传播加法来解析冗余输出,且当适用时执行饱和。
因此,所揭示的主旨提供这些值的经修改布斯乘法。在这些复合值的情况下,输入在低半字中具有实数16位值且在高半字中具有虚数16位值。视情况将乘法器结果缩放0-1位。将舍入常数加到每一实数与虚数总和。实数与虚数部分经个别地饱和到32位。32位结果中每一者的较高16位被封装在32位目标寄存器中。
在此实例中,S0:S3和C0:C3为33位宽。即使可以32位表示16×16乘法的输出,某些指令仍以无符号模式进行运算且额外位在此情况下用作符号位以促进符号扩展。S0:S3和C0:C3经过移位/符号扩展单元148。在封装之前,S0:S 1和C0:C1影响低阶32位的最终结果。此形成所述结果的实数部分。如果在所述指令中指定,则这四个数视情况可通过左移1位而缩放。
将这些数的经移位版本标记为R0:R3。R0:R3经过多操作数加法器150。来自多操作数加法器150的输出流向饱和/加法单位170。
图5通过呈现适用于所揭示主旨的经修改16×16的基数为4的布斯乘法树而促进理解所揭示主旨的布斯乘法过程。图5的点图200概念性地描绘了对所揭示主旨的16×16乘法器的基数为4的布斯编码,此导致九个部分乘积202、204、206、208、210、212、214、216和218。通过使用由两级的3:2缩减组成的缩减树随后使用一级的4:2压缩而将九个部分乘积缩减为两个33位冗余输出S0:S3和C0:C3。虽然32位的精度对于16×16乘法来说是足够的,但在无符号乘法的情况下也保留第33位以充当符号位。也从乘法器输出来自第33列的额外进位输出位以辅助符号扩展。
进一步参看图5,每一部分乘积行220到236为水平展示的被乘数位238的倍数。已在图5的顶部指示列数。垂直地展示乘数位240,且这些位经重编码以产生乘法因数以形成部分乘积行220到236。图5中所示的信号n0到n7指示加到接收负权重的部分乘积行220到236的粘性“1”。这些足以处理不需要乘积的最终相反数的乘法。为在乘法器中隐含地处理-(A×B)的情况,提供额外信号n8。
当乘法运算的乘积在乘法器树中隐含地进行减法时,信号s0到s7处置符号扩展。如果A和B分别假定为被乘数和乘数,那么通过编码乘数操作数B的三个位的若干组和使用此编码从集合{-2A,-A,0,A,2A}中选择部分乘积而继续基数为4的布斯编码。现在,如果需要减去最终乘积(A×B),则其等效于添加A×-(B)。乘数经修改;现从B修改为(-B)。
图6提供用于实施所揭示主旨的布斯重编码器电路250。布斯重编码器单元250包括在XOR 256处的LSB输入254到反相器XOR 260处的MSB输入258的范围内的乘数群组输入252。MSB输入258也提供来自布斯重编码器电路250的“neg”输出。来自XOR 256的输出表示Ax1信号(A来自布斯重编码器250),且将输入提供到反相器XOR264。来自反相器XOR 260的输出也将输入提供到反相器XOR 264以产生Ax2信号,2A来自布斯重编码器电路250。XOR 264提供一输出以指示“非”操作(来自布斯重编码器电路250的“neg”)。因此,布斯重编码器电路250检查乘数B的3位且将所述位重编码为信号“A”、“2A”和“neg”。当需要执行减法时,使“neg”信号反相以产生部分乘积,所述部分乘积将产生乘积A×B的2补数。
图7提供对具有所揭示主旨的图6的逻辑单元的位分组的描述。具体来说,基数为4的布斯重编码从16位乘数B产生九个(9)乘法因数(其用作A的倍数)以产生九个(9)部分乘积。对于在0到8的范围内的“n”,图7的表确定位群组B[2n+1:2n-1]的布斯乘法因数。对于本实施例的重编码机构,假定B[-1]为零。如果B为无符号的数,则B[16]和B[17]为零,且如果B为有符号的数,则B[16]和B[17]为符号扩展,即B[17]=B[16]=B[15]。乘法因数被重编码为三个(3)信号;来自XOR 256的A、来自反相器XOR 264的2A和来自MSB输入262的“neg”。因此,当A的乘法因数为-2时,信号2A和neg为较高。类似地,对于+1,仅A较高,且对于+/-0,所有三个信号将较低。也应注意,为产生乘积A×B,最高有效位群组的乘法因数B[17:15]总为正。现在,B[17:15]的唯一可能的位群组在B无符号时为[000]或[001],且在B为有符号时为[000]或[111]。从图7可见,所有这些群组导致正乘法因数。因此此处所述的布斯乘法多路复用器可选自集合{0,A,2A}以产生部分乘积。
图8提供布斯重编码器电路270以实施-(A×B)乘积的布斯重编码逻辑。布斯重编码器单元包括在XOR 276处的LSB输入274到反相器XOR 280处的MSB输入278的范围内的乘数群组输入272。“减去”输入282和MSB输入278流向XOR 284。来自XOR 276的输出表示来自布斯重编码器270的被乘数A信号,且将输入提供到反相器XOR 286。来自反相器XOR 280的输出也将输入提供到反相器XOR 286以产生来自布斯重编码器电路270的2A信号。XOR 284提供来自布斯重编码器电路270的“neg”输出。
因此,图8利用通过计算A和B的负值的乘积而获得被乘数A和乘数B的乘积的负值的特征。因此,此避免了首先计算乘积A×B且随后计算所述乘积的2补数以获得-(A×B)的已知两步骤过程。布斯重编码器电路270与乘法级并行地执行“非”操作。
乘积的2的求补运算利用了-(A×B)等效于A×(-B)的事实。在此情况下,可将操作数(-B)视为乘数。使用(-B)作为乘数而产生的布斯乘法因数是使用B作为乘数操作数而产生的相应乘法因数的加法相反数。用于计算乘积A×B的布斯乘法硬件结构可再用于通过使布斯乘法因数中每一者的符号相反而计算A×(-B)。通过布斯重编码器电路270的“neg”信号而确定此符号,所述布斯重编码器电路是对在进行乘积“非”操作时用以产生“-neg”信号的重编码硬件的修改形式。
应注意,在布斯重编码器电路270中,XOR门284在非关键路径上,且不会对关键路径造成影响。而是,关键路径包括产生信号A和2A的乘数位。对部分乘积的乘法因数的符号求反的此过程引入了其中最后部分乘积行的符号可能为负的情况。因此,可将信号“n8”加到如上文出现在图5中的乘法树。可通过修改缩减级以容纳额外行而缩减添加一行。然而,此修改也许意味着需要额外延迟和相关的硬件。
此处所呈现的过程并不包含缩减级中的额外行,而是相反集中在通过对乘法树进行逻辑修改而将n8信号吸收到部分乘积的现有九个行中。加到乘法树的延迟是最小的。
指代形式PProw_column的每一“点”的表示法旨在帮助获得对所揭示标的物的此方面的理解。参看图9,乘法树中的每一二进位位(点)在矩阵中具有其唯一权重和位置。相同列中的所有位具有相同权重,且只要维持所述权重便可以任何次序缩减所述位。以0开始从顶部到底部对各行进行编号,且以0开始从右到左对各列进行编号。使用此表示法,n8等效于PP10_16。使用基数为4的布斯编码与已知的缩放和符号扩展过程来产生PP10_16、PP0_17、PP0_18和PP0_19。使用此方法,可将n8吸收到乘法树中。因此,通过分析有符号与无符号乘法模式中的PP0_16、PP0_17、PP0_18和PP0_19的所有可能的位值,可针对所有可能的布斯乘法因数而确定可插入n8的位置。
图9列举部分乘积行0的四个最高有效位的值的范围,和将信号n8加到此四位字段的效果。MUX结构准许在n8为高时选择四位字段的经修改值。换句话说,如果在列16(即P0_16)处添加信号n8,则所揭示过程预先计算部分乘积行0的四个最高有效位的值,且在缩减级中使用此经修改的四位字段。MUX结构经优化以使得使用标准布斯多路复用电路对PP0_16进行一次计算(在表中展示为“a”)。在此之后以最小延迟来解析基于n8的经修改四位字段。所述乘法过程的其余部分等同于用以产生乘积A×B的普通乘法流程。
图10呈现适用于所揭示主旨的其它方面的经修改16×16的基数为4的布斯乘法树。从图10可理解本发明的重要符号扩展和舍入常数函数。对16×16乘法器的缩减级的修改最小化经由九个部分乘积行的关键路径,且当所述乘积以冗余总和进位格式为可用时有效地提供符号扩展。图10展示16×16的基数为4的布斯乘法器的经修改缩减树304。经修改缩减树304容纳有符号和无符号的操作数且具有对所述乘积进行“负”操作的潜力。
第一缩减级使用全加器的三(3)行将九(9)行缩减为六(6)行。第二缩减级使用全加器的两(2)行将六(6)行缩减为四(4)行。第三缩减级和最终缩减级采用4:2多操作数加法器的行以将四(4)行缩减为最终冗余总和和进位行。尽管32位的总和和进位足以表示16×16乘积,但额外位确保无符号乘法正确地处置符号扩展。
图10进一步展示列306,其高于形成乘积的仅较低位的32个位。本发明从列#32向上修改布斯乘法树以引入最后部分乘积行308的符号位s8。如果乘积不需要符号扩展,则不需要此符号位s8。现在,为保留部分乘积行8的正确符号,本过程包括将部分乘积行308扩展一位。高于#32的列未受影响直到缩减的最后一级。在此点处,信号~s8以来自列#31的进位输出而进行解析,并产生展示为“c”的进位输出310。
通过将进位输出“c”310从列#33向上加到1扩展而形成最终乘积。效果为以c作为符号而符号扩展所述最终乘积的总和分量,同时零扩展最终乘积的进位分量。这些步骤消除了对于符号扩展总和与进位分量的需要。举例来说,如果16×16乘法为需要64位值到32位乘积的累加的MAC运算的部分,则需要在将32位乘积加到64位数之前符号扩展所述32位乘积。如果中间32位乘积呈冗余形式,且应用此处所呈现的符号扩展过程,则由于消除用于在31位上符号扩展进位分量的MUX的可能性而引起显著的功率节省。
再次参看图10,本发明进一步提供将舍入常数加到乘数B的能力。对于DSP运算中的16×16乘法典型的舍入常数为0×8000。舍入16×16乘法的乘积为常用运算,其通常作为两步骤运算而执行,其中乘法器首先用于产生乘积,且随后将舍入常数加到所述乘积。
使用以上所阐述的表示法,注意在图10中PP8_15为0。通过在乘法矩阵中的此位位置中插入“1”,可产生与通过首先产生乘积且随后向所述乘积添加值0×8000而获得的结果相同的结果。此过程也未向关键路径添加任何等待时间。
如果乘法区块118中的硬件局限于仅能够向乘法的乘积添加一累加操作数的能力,则当需要舍入乘法的乘积时以累加操作数MUX所述舍入常数是常见的。此使得难以在单一步骤中执行对乘法的乘积的舍入与累加运算。但使用此处所述的过程消除了这些限制。
总之,所揭示的主旨提供用于数字信号处理器的设计和使用的过程,包含处理通信(例如,CDMA)系统中的传输。所揭示的方法和系统包含用于在数字信号处理器中执行布斯乘法的具有增强的缩减树电路的布斯乘法器。所述方法和系统确定包含第一多个位的被乘数A和具有第二多个位的乘数B。所揭示的主旨对B执行基数为m(例如,基数为4)的布斯重编码以产生第一预定整数数目“n”个乘法因数。“n”个乘法因数接近第二多个位的数目的一半。所述方法和系统进一步使用所述“n”个乘法因数作为A的乘数来产生“n”个部分乘积。接着,使用基数为m的布斯编码来形成乘法树。在负乘法因数的情况下,本发明包含通过使A的第一多个位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数。此外,所述过程涉及在多个缩减级中将乘法因数缩减为具有预定长度的一组总和与进位分量。
本发明进一步提供能够用于形式[Z+-(A×B)+舍入常数]的MAC运算中的经修改布斯乘法器的技术优点。此乘法器通过(a)对布斯乘法因数进行“负”操作和将额外粘性位吸收到缩减树中;(b)找出一位置以将舍入常数填充到缩减树中;和(c)使用仅需要冗余总和的符号扩展的符号扩展过程而最小化延迟、功率和硬件。
此外,可以各种方式实施本文所述的处理特征和功能。举例来说,不仅DSP 40可执行上述运算,而且本实施例可实施在专用集成电路(ASIC)、微控制器、微处理器,或经设计以执行本文所述的功能的其它电子电路中。因此,提供优选实施例的先前描述以使所属领域的技术人员能够制造或使用所主张的主旨。所属领域的技术人员将明显看出对这些实施例的各种修改,且本文所界定的一般原理可适用于不使用创新技能的其它实施例。因此,不期望所主张的主旨限制于本文所示的实施例,而是赋予其与本文所揭示的原理和新颖特征一致的最广泛的范围。

Claims (12)

1.一种用于在数字信号处理器中执行布斯乘法的方法,所述方法包括:
由所述数字信号处理器确定包括第一多个位的被乘数A和包括第二多个位的乘数B;
由所述数字信号处理器对B执行基数为m的布斯重编码以产生第一预定数目n个乘法因数,所述n个乘法因数接近所述第二多个位的数目的一半;
由所述数字信号处理器使用所述n个乘法因数作为A的乘数来产生n个部分乘积;
在负乘法因数的情况下,由所述数字信号处理器通过使A的所述第一多个位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数;以及
在多个缩减级中由所述数字信号处理器将所述部分乘积缩减为具有预定长度的一组总和与进位分量;以及
由所述数字信号处理器根据所述一组总和与进位分量来产生A和B的乘积。
2.根据权利要求1所述的方法,其进一步包括:
使用16×16乘法器来确定A和B。
3.根据权利要求1所述的方法,其进一步包括:
通过确定所述乘法因数的加性相反数,将负数B设定为乘数来确定A和B的负乘积;
产生所述乘积以作为形式[Z+-(A×B)]的加数的步骤,其中Z表示将要在所述数字信号处理器中累加的值。
4.根据权利要求1所述的方法,其进一步包括:
通过将粘性“1”插入到所述部分乘积中的至少之一的预定位而将舍入常数添加到A和B的乘法中。
5.根据权利要求1所述的方法,其中:
所述对B执行基数为m的布斯重编码还包括对B执行基数为4的布斯重编码以产生9个乘法因数;
所述产生n个部分乘积还包括使用所述九个乘法因数作为A的倍数来产生九个部分乘积;以及
所述将所述部分乘积缩减为具有预定长度的一组总和与进位分量还包括将所述部分乘积缩减为多个32位总和与进位分量。
6.根据权利要求1所述的方法,其进一步包括以下步骤:
将所述布斯乘法过程作为MAC运算期间的64位值累加的一部分而执行。
7.一种用于与数字信号处理器相关联地进行操作以用于在数字信号处理器中执行布斯乘法的系统,其包括:
处理电路,其用于确定包括第一多个位的被乘数A和包括第二多个位的乘数B;
乘法器区块,其用于对B执行基数为m的布斯重编码以产生第一预定数目n个乘法因数,所述n个乘法因数接近所述第二多个位的数目的一半;
多个乘法器单元,其与所述乘法器区块相关联,以用于使用所述n个乘法因数作为A的乘数来产生n个部分乘积;
与所述布斯编码电路相关联的反相器电路,其用于负乘法因数的情况,且在此情况下,通过使A的所述第一多个位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数;以及
缩减电路,其与所述乘法器单元相关联,以用于在多个缩减级中将所述部分乘积缩减为具有预定长度的一组总和与进位分量;以及
乘积产生电路,其根据所述一组总和与进位分量来产生A和B的乘积。
8.根据权利要求7所述的系统,其进一步包括乘法树产生电路,所述乘法树产生电路用于使用16×16乘法器来确定A和B。
9.根据权利要求7所述的系统,其进一步包括:
负乘积确定电路,所述负乘积确定电路用于通过确定所述乘法因数的加性相反数,将负数B设定为乘数来确定A和B的负乘积;
累加电路,所述累加电路用于产生所述乘积作为形式[Z+-(A×B)]的加数,其中Z表示将要在所述数字信号处理器中累加的值。
10.根据权利要求7所述的系统,其进一步包括:
位插入电路,其用于通过将粘性“1”插入到所述部分乘积中的至少之一的预定位中而将舍入常数添加到A和B的乘法中。
11.根据权利要求7所述的系统,其进一步包括:
布斯重编码电路,其用于对B执行基数为4的布斯重编码以产生九个乘法因数;部分乘积产生电路,其与所述多个乘法器单元相关联,以用于使用所述九个乘法因数作为A的倍数来产生九个部分乘积;以及
缩减树电路,其用于将所述部分乘积缩减为多个32位总和与进位分量。
12.根据权利要求7所述的系统,其进一步包括:
乘法树电路,其用于将所述布斯乘法过程作为MAC运算期间的64位值累加的一部分而执行。
CN2007800051514A 2006-02-15 2007-02-13 在数字信号处理器中执行布斯乘法的方法和系统 Expired - Fee Related CN101384989B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/356,359 US7797366B2 (en) 2006-02-15 2006-02-15 Power-efficient sign extension for booth multiplication methods and systems
US11/355,397 2006-02-15
US11/356,359 2006-02-15
US11/355,397 US7809783B2 (en) 2006-02-15 2006-02-15 Booth multiplier with enhanced reduction tree circuitry
PCT/US2007/062082 WO2007095548A2 (en) 2006-02-15 2007-02-13 A booth multiplier with enhanced reduction tree circuitry

Publications (2)

Publication Number Publication Date
CN101384989A CN101384989A (zh) 2009-03-11
CN101384989B true CN101384989B (zh) 2010-06-02

Family

ID=38370020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800051514A Expired - Fee Related CN101384989B (zh) 2006-02-15 2007-02-13 在数字信号处理器中执行布斯乘法的方法和系统

Country Status (2)

Country Link
US (1) US7809783B2 (zh)
CN (1) CN101384989B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
US8495125B2 (en) * 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
US8543838B1 (en) * 2009-12-23 2013-09-24 Marvell International Ltd. Cryptographic module with secure processor
CN108364065B (zh) * 2018-01-19 2020-09-11 上海兆芯集成电路有限公司 采布斯乘法的微处理器
CN108900949B (zh) * 2018-05-04 2020-11-24 建荣半导体(深圳)有限公司 一种行车记录仪的主控芯片及其负载类型识别方法
CN111258542B (zh) * 2018-11-30 2022-06-17 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN110209375B (zh) * 2019-05-30 2021-03-26 浙江大学 一种基于radix-4编码和差分权重存储的乘累加电路
CN112685001B (zh) * 2020-12-30 2023-07-18 中科南京智能技术研究院 一种Booth乘法器及其运算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4813008A (en) * 1986-03-31 1989-03-14 Kabushiki Kaisha Toshiba Multiplier circuit suitable for obtaining a negative product of a multiplier and a multiplicand
EP0497622A2 (en) * 1991-01-31 1992-08-05 Nec Corporation Multiplying system
CN1136680A (zh) * 1995-05-22 1996-11-27 三星电子株式会社 有选择地执行无符号数值乘法或有符号数值乘法的乘法器
US6157939A (en) * 1998-06-04 2000-12-05 Integrated Device Technology, Inc. Methods and apparatus for generating multiplicative inverse product

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748582A (en) * 1985-06-19 1988-05-31 Advanced Micro Devices, Inc. Parallel multiplier array with foreshortened sign extension
US4901307A (en) * 1986-10-17 1990-02-13 Qualcomm, Inc. Spread spectrum multiple access communication system using satellite or terrestrial repeaters
US4910701A (en) * 1987-09-24 1990-03-20 Advanced Micro Devices Split array binary multiplication
JPH01116764A (ja) 1987-10-29 1989-05-09 Ricoh Co Ltd 累積加算器
US5150322A (en) * 1990-06-05 1992-09-22 Vlsi Technology, Inc. Mixed-radix serial/parallel multipliers
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
JPH0527948A (ja) 1991-07-17 1993-02-05 Ricoh Co Ltd 演算装置
US5220525A (en) * 1991-11-04 1993-06-15 Motorola, Inc. Recoded iterative multiplier
JPH0713742A (ja) * 1993-06-25 1995-01-17 Mitsubishi Electric Corp 乗算装置
JPH1011267A (ja) 1996-06-21 1998-01-16 Sharp Corp 乗算器
US5880985A (en) * 1996-10-18 1999-03-09 Intel Corporation Efficient combined array for 2n bit n bit multiplications
EP0840207A1 (en) 1996-10-30 1998-05-06 Texas Instruments Incorporated A microprocessor and method of operation thereof
JPH10133856A (ja) 1996-10-31 1998-05-22 Nec Corp 丸め機能付き乗算方法及び乗算器
US5928316A (en) * 1996-11-18 1999-07-27 Samsung Electronics Co., Ltd. Fused floating-point multiply-and-accumulate unit with carry correction
JPH10333885A (ja) 1997-05-30 1998-12-18 Sony Corp 乗算回路
US6183122B1 (en) * 1997-09-04 2001-02-06 Cirrus Logic, Inc. Multiplier sign extension
JPH11134175A (ja) 1997-10-29 1999-05-21 Toshiba Corp 乗加減算器及び演算器
US6463453B1 (en) * 1998-01-12 2002-10-08 Motorola, Inc. Low power pipelined multiply/accumulator with modified booth's recoder
US6167422A (en) * 1998-06-19 2000-12-26 Ati International Srl, Beaumont House Booth multiplication structure which selectively integrates the function of either of incrementing or negating with the function of booth multiplication
DE69832985T2 (de) 1998-10-06 2006-08-17 Texas Instruments Inc., Dallas Multiplizier-Akkumulatorschaltungen
US6353843B1 (en) 1999-10-08 2002-03-05 Sony Corporation Of Japan High performance universal multiplier circuit
JP2002157114A (ja) 2000-11-20 2002-05-31 Hitachi Ltd 乗算器及びそれを搭載した集積回路装置
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4813008A (en) * 1986-03-31 1989-03-14 Kabushiki Kaisha Toshiba Multiplier circuit suitable for obtaining a negative product of a multiplier and a multiplicand
EP0497622A2 (en) * 1991-01-31 1992-08-05 Nec Corporation Multiplying system
CN1136680A (zh) * 1995-05-22 1996-11-27 三星电子株式会社 有选择地执行无符号数值乘法或有符号数值乘法的乘法器
US6157939A (en) * 1998-06-04 2000-12-05 Integrated Device Technology, Inc. Methods and apparatus for generating multiplicative inverse product

Also Published As

Publication number Publication date
US7809783B2 (en) 2010-10-05
US20070192398A1 (en) 2007-08-16
CN101384989A (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
CN102279724B (zh) 用于布斯乘法方法和系统的功率有效符号扩展
CN101384989B (zh) 在数字信号处理器中执行布斯乘法的方法和系统
Al-Khaleel et al. Fast and compact binary-to-BCD conversion circuits for decimal multiplication
US20130282783A1 (en) Systems and Methods for a Floating-Point Multiplication and Accumulation Unit Using a Partial-Product Multiplier in Digital Signal Processors
Arunachalam et al. Efficient dual-precision floating-point fused-multiply-add architecture
US6285300B1 (en) Apparatus and method for reducing power and noise through reduced switching recording in logic devices
KR101073343B1 (ko) 개선된 감소 트리 회로를 갖는 부스 곱셈기
CN110727412B (zh) 一种基于掩码的混合浮点乘法低功耗控制方法及装置
WO2005086675A2 (en) Arithmetic circuit with balanced logic levels for low-power operation
Calderón et al. Reconfigurable universal adder
US7392270B2 (en) Apparatus and method for reducing the latency of sum-addressed shifters
Kalyan Chakravarthy et al. High speed and low power buffer based parallel multiplier for computer arithmetic
US20060031272A1 (en) Alignment shifter supporting multiple precisions
Saha et al. Design and Implementation of Multi-operand 2 n-1, 2 n, and 2 n+ 1 Modulo Set Adder
JPH02205923A (ja) 演算プロセッサ
Sunitha et al. Design and Implementation of Adder Architectures and Analysis of Performance Metrics
Radha et al. A duck power aerial speed multipliers
CN115904507A (zh) 面向cgra的多精度小面积simd运算系统、方法、介质及设备
EP1769335A2 (en) Arithmetic circuit with balanced logic levels for low-power operation
JPH1185471A (ja) 演算方法および演算装置
JP2005293092A (ja) 最上位ビットが1である負数の算術右シフト装置
JP2006157751A (ja) 無線通信システム、スプリットモードtfci復号処理装置及びそれらに用いる復号処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100602

Termination date: 20190213

CF01 Termination of patent right due to non-payment of annual fee