用于布斯乘法方法和系统的功率有效符号扩展的制作方法

文档序号:6431377阅读:229来源:国知局
专利名称:用于布斯乘法方法和系统的功率有效符号扩展的制作方法
技术领域
本发明涉及数字信号处理器中的数学处理器领域,且更特定来说,涉及在数学处理器中用以执行数的高速乘法的布斯乘法器。更具体来说,本发明涉及用于布斯乘法方法和系统中的有符号和无符号的二进位值的功率有效符号扩展。
背景技术
电子设备和支持的软件应用程序越来越多地涉及数字信号处理。家庭影院、计算机图形、医学成像和电信均依赖于数字信号处理技术。数字信号处理需要复杂但重复的算法中的快速数学。许多应用需要实时计算,即信号为时间的连续函数,所述信号必须被取样和转换为数字信号,以用于数值处理。处理器必须执行在样本到达时对所述样本执行离散计算的算法。数字信号处理器(或DSP)的架构经优化以处置这些算法。良好的信号处理引擎的特征包括快速、灵活的算术计算单位;到计算单位和来自计算单位的未受约束数据流;计算单位中扩展的精度和动态范围;双地址产生器;高效程序排序;和编程的简易性。DSP技术的一个颇具前景的应用包括例如码分多址(CDMA)系统的通信系统,其支持经由卫星或陆地链路的在用户之间的语音和数据通信。题为“使用卫星或陆地中继器的扩频多址通信系统(SPREAD SPECTRUM MULTIPLE ACCESSCOMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS) ” 的第 4,901,307 号美国专利和题为“用于在 CDMA电信手持机系统中产生波形的系统和方法(SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMACELLULAR TELEHANDSET SYSTEM) ”的第 5,103,459 号美国专利中揭示了在多址通信系统中使用CDMA方法,所述两个专利均转让给所主张的发明主题的受让人。CDMA系统通常经设计以遵从一个或一个以上电信(且现在为串流视频)标准。一个此类第一代标准为“用于双模宽带扩频蜂窝式系统的TIA/EIA/IS-95终端-基站兼容性标准(TIA/EIA/IS-95Terminal-Base Station Compatibility Standard for Dual-modeffideband Spread Spectrum Cellular ^stem) ”(下文中称为 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的一组乘法因数。此方法提供将原本会出现的部分乘积的数目大致减半的益处。这在电路设计中较为重要,因为其涉及电路运作中的传播延迟,和电路实施方案的复杂性和功率消耗。在乘以0、1或2,且仅存在多路复用器或均等物时存在相对较少的复杂性代价。一旦已使用布斯编码过程产生部分乘积,便通过采用缩减技术而将所述部分乘积加到一起。缩减过程涉及使用半加器、全加器和多操作数加法器以并行过程对部分乘积位的多个行求和。此缩减导致被认为呈冗余格式的两行位,在使用进位传播加法器进行解析时其总和表示最终乘积。将这些行中的一者称为总和S且另一行称为进位C。在乘法累加 (MAC)运算中,[Z+(AXB)]中的Z项通常在最终CPA之前包括在缩减树中。此过程对于呈冗余格式的乘法乘积的解析与后续累加来说均节省了对CPA的采用。因为某些部分乘积可为负的,所以2的求补运算所需的硬件是布斯乘法器的一方面。在使用此硬件的情况下,需要提供能够产生乘法乘积的布斯乘法器。目前,不存在能够针对DSP应用有效地产生-(AXB)的已知方法或系统。因此,需要在DSP应用中能够将布斯乘法过程用于产生乘积的加法相反数-(AXB)的方法和系统。然而,一旦产生此乘积,便存在以下问题如果待累加的值(“Z”加到乘法“AXB” 的乘积)比乘积AXB具有更大的位宽度,则冗余乘积的“总和”与“进位”分量均需要被适当地符号扩展。有时,可有必要在较广范围的位上执行符号扩展。因此在DSP中的布斯乘法过程期间需要适当符号扩展的过程。通常乘法的中间冗余乘积的两者将被符号扩展。对于仅冗余乘积的总和分量需要被符号扩展的情形,进一步需要功率有效过程。在从布斯乘法过程产生最终乘积时,需要避免总和与进位分量的符号扩展。进一步需要减少在布斯乘法过程期间由于中间32位乘积的部分乘积的符号扩展而引起的功率消耗。仍需要减少在布斯乘法的符号扩展级期间操作的多路复用电路的数目。

发明内容
本发明揭示用于提供布斯乘法方法和系统的功率有效符号扩展的技术,这些过程改进数字信号处理器的操作与对用于处理个人计算机、个人数字助理、无线手持机和类似电子装置的日益稳健的软件应用的数字信号处理器指令的有效使用,还增加了相关联数字信号处理器速度和服务质量。根据一方面,所揭示的方法和系统包括布斯乘法过程的功率有效符号扩展方法和系统。所揭示的发明主题在包含多个部分乘积行的布斯乘法树中引入符号位。所述符号位用于需要符号扩展步骤的布斯乘法过程的情况下。此处所揭示的方法和系统包括使用符号位对布斯乘法树的预定部分乘积行执行1扩展(即当符号为“1”时的符号扩展)以保留所述预定部分乘积行的正确符号的能力。解析符号位的信号值需要在布斯乘法树中产生符号扩展位。所述符号扩展位可位于进位输出列中以扩展布斯乘法过程的乘积。随后本发明通过将进位输出值加到布斯乘法树的至少一预定列的符号位而从布斯乘法树形成最终乘积。 此具有使用符号来扩展最终乘积的总和分量和零扩展最终乘积的进位分量的效果。从本文所提供的描述将明白所揭示发明主题的这些和其它优点,以及额外新颖特征。此“发明内容”的意图并非为所主张发明主题的全面描述,而是提供对所述发明主题的某些功能性的简短概述。所属领域的技术人员在检查以下图和详细描述之后将明白此处所提供的其它系统、方法、特征和优点。希望所有这些额外系统、方法、特征和优点包括在此描述内,包括在随附权利要求书的范围内。


根据结合附图而在下文陈述的详细描述将更加明白所揭示发明主题的特征、性质和优点,附图中,相同的参考符号始终进行相应地识别,且附图中图1为可实施本实施例的通信系统的简化方框图;图2说明实现本实施例的教示的DSP架构;图3提供用于提供所揭示发明主题的技术优点的数字信号处理器的实施例的架构方框图;图4呈现所揭示发明主题的各种实施方案的数据路径图;图5呈现可适用于所揭示发明主题的经修改16X 16的基数为4的布斯乘法树;图6提供实施所揭示发明主题的布斯重编码器的逻辑单元;图7提供对具有所揭示发明主题的图7的逻辑单元的位分组的描述;图8呈现用于实施-(AXB)乘积的布斯重编码逻辑的逻辑单元;图9为所揭示的发明主题如何处置布斯乘法中的减法的表;且图10展示根据所揭示发明主题的其它教示的16X 16布斯乘法缩减树。
具体实施例方式此处呈现的布斯乘法方法和系统的功率有效符号扩展的所揭示发明主题用于非常广泛的各种数字信号处理应用(包括涉及多线程处理的那些应用)中。一个此类应用出现在采用一个或一个以上数字信号处理电路的电信和(具体来说)无线手持机中。因此, 以下图1到图3描述电信DSP,在所述DSP内本教示可为有用的。图4陈述乘法处理的数据路径,增强的布斯乘法运算的本发明可在所述乘法处理内运算。然而,应记住,此处所描述的实施方案仅提供所揭示发明主题可适用的实际上无限组的应用中的一者。出于阐述可如何使用此类无线手持机的目的,图1提供通信系统10的简化方框图,所述通信系统可实施所揭示的中断处理方法和系统的所呈现实施例。在发射器单元12 处,通常以区块为单位将数据从数据源14发送到发射(TX)数据处理器16,所述发射(TX) 数据处理器16格式化、编码和处理所述数据以产生一个或一个以上模拟信号。随后将所述模拟信号提供到发射器(TMTR) 18,所述发射器调制、过滤、放大,且上变频转换基带信号以产生经调制信号。随后经由天线20将所述经调制信号发射到一个或一个以上接收器单元。
在接收器单元22处,由天线M接收所发射的信号且提供到接收器(RCVR)沈。在接收器26内,所接收的信号被放大、过滤、下变频转换、解调,和数字化以产生同相(I)和 (Q)样本。随后通过接收(RX)数据处理器观对所述样本进行解码和处理以恢复所发射的数据。以与在发射器单元12处执行的编码和处理互补的方式执行接收器单元22处的编码和处理。随后将所恢复的数据提供到数据汇30。上述信号处理支持在一个方向上发射语音、视频、包数据、消息发送和其它类型的通信。双向通信系统支持双向数据发射。然而,为简明起见,图1中未展示在另一方向上的信号处理。通信系统10可为支持经由陆地链路的用户之间的语音和数据通信的码分多址 (CDMA)系统、时分多址(TDMA)通信系统(例如GSM系统)、频分多址(FDMA)通信系统,或其它多址通信系统。在特定实施例中,通信系统10为遵从W-CDMA标准的CDMA系统。图2说明可充当图1的发射数据处理器16和接收数据处理器观的DSP 40架构。 再次强调DSP 40仅表示可有效地使用此处所呈现的教示和概念的许多可能的数字信号处理器实施例中的一个实施例。因此在DSP 40中,线程T0:T5(参考数字42到5 含有来自不同线程的指令集。电路M表示指令存取机构且用于获取用于线程T0:T5的指令。电路 54的指令被排入指令队列56中。指令队列56中的指令准备发布到处理器管线66(见下文)中。可通过发布逻辑电路58从指令队列56中选择单一线程,例如线程TO。读取选定线程的寄存器堆60并将所读取的数据发送到槽0到槽3的执行数据路径62。在此实例中, 槽0到槽3提供本实施例中所采用的包分组组合。来自执行数据路径62的输出进入寄存器堆写入电路64 (其也经配置以容纳个别线程T0:T5)以返回来自DSP 40的运算的结果。因此,根据各种线程而划分成多个部分的来自电路M且在到寄存器堆写入电路64之前的数据路径形成处理管线66。本实施例可采用使用具有多达六个线程Τ0:Τ5的单一微处理器的异质元件处理器(HEP)系统的混合体。处理器管线66具有六个级,从而匹配从电路M到寄存器60和64 获取数据项目所必需的最小数目的处理器循环。DSP 40在处理器管线66内同时执行不同线程Τ0:Τ5的指令。即,DSP 40提供六个独立的程序计数器、用以在处理器管线66内区分线程Τ0:Τ5的指令的内部标记机构,和用以触发线程切换的机构。线程切换额外开销从零到仅数个循环进行变化。因此,DSP 40提供通用数字信号处理器,其经设计以用于广泛各种信号、图像和视频处理应用中的高性能和低功率。图3提供对DSP 40架构的简要概述,其包括所揭示发明主题的一个表现形式的相关联指令集架构的某些方面。DSP 40架构的实施方案支持交错的多线程(IMT)。在此执行模型中,硬件通过在管线中交错来自不同线程的指令而支持多个硬件线程Τ0:Τ5的同时执行。此特征允许DSP 40包括主动时钟频率,同时仍维持较高的核心和存储器利用。IMT提供高处理量而无需昂贵的补偿机构,例如无序执行、大范围的转发网络等。更具体来说,图3提供可采用所揭示发明主题的教示的单一线程的编程模型的一个实施例的架构方框图。方框图70描绘从AXI总线74接收指令的私用指令高速缓冲存储器72,所述指令包括到线程TO Τ5的定序器76、用户控制寄存器78和监督器控制寄存器80 的混合16位和32位指令。定序器76将混合的双向超标量指令和四向VLIW指令提供到S 管单元82、Μ管单元84、Ld管86,和Ld/M管单元88。AXI总线74也使用共用数据高速缓
7冲存储器90将LD/ST指令传送到线程TO T5。在使用外部DMA主控器96的情况下,共用数据TCM 98传送LD/ST指令,所述LD/ST指令进一步流向线程T0:T5。从AHB外围总线100, MSM专有控制器102与TO Τ5传送中断管脚,其包括终端控制器指令、调试指令和计时指令。 全局控制寄存器104与线程Τ0:Τ5传送控制寄存器指令。在如图3的M管84中所呈现的单线程处理的架构内发生高速数学处理。功率有效对于DSP 40的运算较为关键,且M管84需要在其运算中包括此考虑。在此类乘法过程中发生乘法结果以冗余形式变得可用,且这些冗余结果将用于乘法累加运算中。在这些冗余结果的情况下,可能需要对冗余乘积的两者进行符号扩展。所揭示的发明主题提供将要对每一乘法的两个冗余乘积中的仅一者应用的符号扩展。此在中间冗余乘积需要在较大位范围上被符号扩展的情况下转化为显著的功率节省。类似的功率有效考虑极有可能存在于所揭示发明主题可适用的任何应用中。因此,布斯乘法过程发生的速度提供此处所揭示的材料的独特新颖方面。所揭示的发明主题提供用于乘法的布斯编码过程,所述过程采用部分乘积的最后一行被“1”扩展的部分乘积产生的方法。通过适当地操纵乘法器的缩减树的最高有效列的缩减,所揭示的过程确保仅“总和”冗余乘积需要被符号扩展,而“进位”冗余乘积可为零扩展的。因为仅“总和”被符号扩展,所以所揭示的过程和相关联结构减少了对乘法的冗余乘积进行符号扩展中所涉及的功率成本。为获得对所揭示发明主题如何实现这些功率节省和相关效率的理解,此处提供对特定实施例的进一步示范。因此图4呈现所揭示发明主题的各种实施方案的数据路径图180,且建立其内可发生本布斯乘法过程的数据流。具体来说,乘法区块118接收Rs和Rt输入。乘法单元Μ0:Μ3 在乘法区块118内。具体来说,MO乘法器单元182、Ml乘法器单元184、Μ2乘法器单元186 和Μ3乘法器单元188单独地接收Rs和Rt输入以分别将SOCO (即总和0和进位0) ,SlCU S2C2,和S3C3输出产生到移位/符号扩展单元148。移位/符号扩展单元148负责这些中间冗余乘积的逻辑移位和符号扩展。乘法器区块118执行M管84的乘法相关指令。可将这些指令视为使用16X16乘法过程作为基础的复合指令。乘法器区块由四个16X16乘法器单元Μ0:Μ3组成。每一乘法器单元Μ0:Μ3能够在若干模式中起作用,以支持广泛各种M类型指令。支持有符号与无符号的模式。在需要对乘积执行减法的情况下,乘法器也可产生乘法器的乘积的2补数。在所揭示的发明主题的情况下,Μ0:Μ3乘法器182到188使用基数为4的布斯编码。在无符号模式中,所述乘法器类似使用额外第17位充当符号位的17X17乘法器。除双精度乘法(即32X32乘法)之外,所有其它乘法指令为“有符号X有符号”或“无符号X 无符号”。使用16 X 16乘法器来计算双精度32 X 32乘法和32 X 16乘法也需要“有符号X 无符号”和“无符号X有符号”的乘法。通过控制被乘数的符号位和Μ0:Μ3乘法器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的冗余输出输入到多操作数加法器150,所述多操作数加法器150将这些输入和可选累加器/舍入值缩减为两对冗余输出。 最终,在加法/饱和阶段,使用进位传播加法来解析冗余输出,且当适用时执行饱和。因此,所揭示的发明主题提供这些值的经修改布斯乘法。在这些复合值的情况下, 输入在低半字中具有实数16位值且在高半字中具有虚数16位值。视情况将乘法器结果缩放0-1位。将舍入常数加到每一实数与虚数总和。实数与虚数部分经个别地饱和到32位。 32位结果中每一者的较高16位被封装在32位目标寄存器中。在此实例中,S0:S3和C0:C3为33位宽。即使可以32位表示16X 16乘法的输出,某些指令仍以无符号模式进行运算且额外位在此情况下用作符号位以促进符号扩展。 SO S3和CO C3经过移位/符号扩展单元148。在封装之前,SO Sl和CO Cl影响低阶32位的最终结果。此形成所述结果的实数部分。如果在所述指令中指定,则这四个数视情况可通过左移1位来缩放。将这些数的经移位版本标记为R0:R3。R0:R3经过多操作数加法器150。来自多操作数加法器150的输出流向饱和/加法单位170。现在,可以各种布斯乘法过程来执行所揭示的发明主题。然而,可通过呈现其中可发生此类应用的特殊布斯乘法过程来实现对所揭示发明主题的特定使用最佳理解。因此, 图5通过呈现适用于所揭示发明主题的经修改16X 16的基数为4的布斯乘法树而促进理解所揭示发明主题的布斯乘法过程。图5的点图200概念性地描绘了对所揭示发明主题的 16X16乘法器的基数为4的布斯编码,此导致九个部分乘积202、204、206、208、210、212、 214,216和218。使用由两级3 2缩减组成的缩减树随后使用一级4:2压缩将九个部分乘积缩减为两个33位冗余输出S0:S3*C0:C3。虽然32位的精度对于16 X 16乘法来说是足够的,但在无符号乘法的情况下也保留第33位以充当符号位。还从乘法器输出来自第33 列的额外进位输出位以辅助符号扩展。进一步参看图5,每一部分乘积行220到236为水平展示的被乘数位238的倍数。 已在图5的顶部指示列数。垂直地展示乘数位M0,且这些位经重编码以产生乘法因数以形成部分乘积行220到236。图5中所示的信号nO到n7指示加到接收负权重的部分乘积行 220到236的粘性“1”。这些足以应付不需要乘积的最终相反数的乘法。为在乘法器中隐含地处理-(AXB)的情况,提供额外信号π8。当在乘法器树内隐含地减去乘法运算的乘积时,信号sO到s7处置符号扩展。如果假定A和B分别为被乘数和乘数,则通过编码三位的乘数操作数B的群组并使用此编码以从集合{-2A,-A,0,A,2A}中选择部分乘积而执行基数为4的布斯编码。现在,如果需要减去最终乘积(AX B),则其等效于添加AX-(B)(这又等效于添加乘积((-A) X B))。乘数经修改;现从B修改为(-B)。作为所揭示发明主题可找到应用的布斯乘法过程的部分,图6提供用于实施所揭示发明主题的布斯重编码器电路250。布斯重编码器单元250包括在M)R 256处的LSB输入邪4到反相器M)R 260处的MSB输入258的范围内的乘数群组输入252。MSB输入258也提供来自布斯重编码器电路250的“neg”输出。来自M)R 256的输出表示Axl信号(A来自布斯重编码器250),且将输入提供到反相器M)R 264.来自反相器M)R 260的输出也将输入提供到反相器M)R 264以产生Ax2信号,2A来自布斯重编码器电路250。XOR 264提供一输出以指示“非”操作(来自布斯重编码器电路250的“neg”)。因此,布斯重编码器电路250检查乘数B的3位且将所述位重编码为信号“A”、“2A”和“neg”。当需要执行减法时,使“neg”信号反相以产生部分乘积,所述部分乘积将产生乘积AXB的2补数。图7提供对具有所揭示发明主题的图6的逻辑单元的位分组的描述。具体来说,基数为4的布斯重编码从16位乘数B产生九个(9)乘法因数(其用作A的倍数)以产生九个 (9)部分乘积。对于在0到8的范围内的“n”,图7的表确定位群组B[2n+l:2n-l]的布斯乘法因数。对于本实施例的重编码方案,假定B[-l]为零。如果B为无符号的数,则B[16] 和B[17]为零,且如果B为有符号的数,则B[16]和B[17]为符号扩展,即B[17] =B[16]= B[15]。乘法因数被重编码为三个(3)信号;来自M)R 256的Α、来自反相器M)R 264的2A 和来自MSB输入沈2的“neg”。因此,当A的乘法因数为-2时,信号2A和neg为高。类似地,对于+1,仅A将为高,且对于+/-0,所有三个信号将为低。也应注意,为产生乘积AXB, 最高有效位群组的乘法因数B[17:15]总为正。现在,B[17:15]的唯一可能的位群组在B无符号时为
或W01],且在B为有符号时为
或[111]。从图7可见,所有这些群组导致正乘法因数。因此此处所述的布斯乘法多路复用器可选自集合{0,A,2A}以产生部分乘积。图8提供布斯重编码器电路270以实施-(AXB)乘积的布斯重编码逻辑。布斯重编码器单元包括在M)R 276处的LSB输入274到反相器M)R 280处的MSB输入278的范围内的乘数群组输入272。“减去”输入282和MSB输入278流向M)R 284 来自XOR 276的输出表示来自布斯重编码器270的被乘数A,且将输入提供到反相器M)R 286 0来自反相器 XOR 280的输出也将输入提供到反相器M)R 286以产生来自布斯重编码器电路270的2A信号。XOR 284从布斯重编码器电路270提供“neg”输出。因此,在本发明主题可找到用途的布斯乘法过程的所揭示应用中,图8利用通过计算A和B的负值的乘积获得被乘数A和乘数B的乘积的负值的特征。因此,此避免了首先计算乘积AXB且随后计算所述乘积的2补数以获得-(AXB)的已知两步骤过程。布斯重编码器电路270与乘法级相并行地执行“非”操作。乘积的2的求补运算利用了 -(AXB)等效于AX (-B)的事实。在此例子下,可将操作数(-B)视为乘数。使用(-B)作为乘数而产生的布斯乘法因数是使用B作为乘数操作数而产生的相应乘法因数的加法相反数。用于计算乘积AXB的布斯乘法硬件结构可再用于通过使布斯乘法因数中每一者的符号相反而计算AX (-B)。通过布斯重编码器电路270 的“neg”信号而确定此符号,所述“neg”信号是在对乘积进行“非”操作时产生“-neg”信号的重编码硬件的修改。应注意,在布斯重编码器电路270中,XOR门284在非关键路径上,且不会促进关键路径。而是,关键路径包括产生信号A和2A的乘数位。对部分乘积的乘法因数的符号求反的此过程引入了其中最后部分乘积行的符号可能为负的情况。因此,可将信号“nS”加到如上文出现在图5中的乘法树。可通过修改缩减级以容纳额外行而缩减添加一行。然而, 此修改可意味着额外延迟和相关联硬件。
此处所呈现的过程并不包含缩减级中的额外行,但替代地集中在通过对乘法树进行逻辑修改而将n8信号吸收到部分乘积的现有九个行中。加到乘法树的延迟是最小的。指代形式PPraw。。_的每一“点”的表示法辅助获得对所揭示发明主题的此方面的理解。参看图9,乘法树中的每一二进位位(点)在矩阵中具有其唯一权重和位置。相同列中的所有位具有相同权重,且只要维持所述权重便可以任何次序缩减所述位。以0开始从顶部到底部对行进行编号,且以0开始从右到左对列进行编号。使用此表示法,π8等效于 PP10j6o使用以基数为4的布斯编码已知的缩放和符号扩展过程来产生PPltl 16、PPtl 17、PP0j8 和PPcu9t5在使用此方法的情况下,可将π8吸收到乘法树中。因此,通过分析有符号与无符号乘法模式中的PPcl16、PPcl17、PP0j8和PPcl19的所有可能的位值,可针对所有可能的布斯乘法因数而确定可插入η8的位置。图9列举部分乘积行0的四个最高有效位的值的范围,和将信号π8加到此四位字段的效果。MUX结构准许在π8较高时选择四位字段的经修改值。换句话说,如果在列16 (即 Pcl16)处添加信号π8,则所揭示过程预先计算部分乘积行0的四个最高有效位的值,且在缩减级中使用此经修改的四位字段。MUX结构经优化以使得使用标准布斯乘法计算电路一次性计算出PPcl16(在表中展示为“a”)。在此之后以最小延迟来解析基于π8的经修改四位字段。所述乘法过程的其余部分等于用以产生乘积AXB的正规乘法流。图10呈现适用于所揭示发明主题的其它方面的经修改16Χ 16的基数为4的布斯乘法树。从图10可理解本发明的重要符号扩展和舍入常数函数。对16X16乘法器的缩减级的修改最小化经由九个部分乘积行的关键路径,且当所述乘积以冗余总和进位格式为可用时有效地提供符号扩展。图10展示16X16的基数为4的布斯乘法器的经修改缩减树 304。经修改缩减树304容纳有符号和无符号的操作数且具有对所述乘积进行“非”操作的潜力。第一缩减级使用全加器的三(3)行将九(9)行缩减为六(6)行。第二缩减级使用全加器的两( 行将六(6)行缩减为四(4)行。第三缩减级和最终缩减级采用4:2多操作数加法器的行以将四(4)行缩减为最终冗余总和和进位行。尽管32位的总和和进位足以表示16X 16乘积,但额外位确保无符号乘法正确地处置符号扩展。图10进一步展示列306,其高于形成乘积的仅较低位的32个位。本发明从列#32 向上修改布斯乘法树以引入最后部分乘积行308的符号位s8。如果乘积不需要符号扩展, 则不需要此符号位s8。现在,为保留部分乘积行8的正确符号,本过程包括将部分乘积行 308扩展一位。高于#32的列未受影响直到缩减的最后一级。在此点处,信号 s8以来自列#31的进位输出而进行解析,并产生展示为“ c ”的进位输出310。通过将进位输出310从列#33向上加到1扩展而形成最终乘积。效果为以,0 作为符号而符号扩展所述最终乘积的总和分量,同时零扩展最终乘积的进位分量。这些步骤消除了对于符号扩展总和与进位分量的需要。举例来说,如果16X16乘法为需要64位值到32位乘积的累加的MAC运算的部分,则需要在将32位乘积加到64位数之前符号扩展所述32位乘积。如果中间32位乘积呈冗余形式,且应用此处所呈现的符号扩展过程,则由于消除用于在31位上符号扩展进位分量的MUX的可能性而引起显著的功率节省。再次参看图10,本发明进一步提供将舍入常数加到乘数B的能力。对于DSP运算中的16 X 16乘法典型的舍入常数为0 X 8000。舍入16 X 16乘法的乘积为常用运算,其通常
11作为两步骤运算而执行,其中乘法器首先用于产生乘积,且随后将舍入常数加到所述乘积。使用以上所阐述的表示法,注意在图10中PP8 15为0。通过在乘法矩阵中的此位位置中插入“1”,可产生与通过首先产生乘积且随后向所述乘积添加值0X8000而获得的结果相同的结果。此过程也未向关键路径添加任何等待时间。如果乘法区块118中的硬件局限于仅能够向乘法的乘积添加一累加操作数的能力,则当需要舍入乘法的乘积时以累加操作数MUX所述舍入常数是常见的。此使得难以在单一步骤中执行对乘法的乘积的舍入与累加运算。但使用此处所述的过程消除了这些限制。总之,所揭示的发明主题提供用于设计和使用数字信号处理器的过程,其包括处理通信(例如CDMA)系统中的发射。所揭示的方法和系统包括布斯乘法过程的功率有效符号扩展方法和系统。所揭示的发明主题在包含多个部分乘积行的布斯乘法树中引入一符号位。所述符号位用于需要符号扩展步骤的布斯乘法过程的情况。此处所揭示的方法和系统使用一符号位对布斯乘法树的一预定部分乘积行执行1扩展以保留所述预定部分乘积行的正确符号。解析符号位的信号值需要产生布斯乘法树中的符号扩展位。所述符号扩展位可位于进位输出列中以扩展布斯乘法过程的乘积。随后本发明通过将进位输出值加到布斯乘法树的至少一预定列的符号位而从布斯乘法树形成最终乘积。此具有以符号位扩展最终乘积的总和分量和零扩展最终乘积的进位分量的效果。本发明进一步提供能够用于形式[Z+-(AXB) +舍入常数]的MAC运算中的经修改布斯乘法器的技术优点。此乘法器通过(a)对布斯乘法因数进行“非”操作和将额外粘性位吸收到缩减树中;(b)找出一位置以将舍入常数填充到缩减树中;和(c)使用仅需要冗余总和的符号扩展的符号扩展过程而最小化延迟、功率和硬件。此外,可以各种方式实施本文所述的处理特征和功能。举例来说,不仅DSP 40可执行上述运算,而且本实施例可实施在专用集成电路(ASIC)、微控制器、微处理器,或经设计以执行本文所述的功能的其它电子电路中。因此,提供优选实施例的先前描述以使所属领域的技术人员能够制造或使用所要求保护的发明主题。所属领域的技术人员将明显看出对这些实施例的各种修改,且本文所界定的一般原理可适用于不使用创新技能的其它实施例。因此,本文所示的实施例并非用于对所要求保护的发明主题进行限制,而应赋予其与本文所揭示的原理和新颖特征一致的最广泛的范围。
权利要求
1.一种方法,包括在硬件处理装置上进行布斯乘法操作阶段期间,产生部分乘积的总和部分的符号扩展位;使用加法器将所述部分乘积的总和部分加到所述部分乘积的零扩展进位部分,以产生乘法结果。
2.如权利要求1所述的方法,其中,所述布斯乘法操作包括生成多个部分乘积行,所述部分乘积行中的每个部分乘积行都具有相应的符号位。
3.如权利要求2所述的方法,其中,所述符号扩展位是基于与所述部分乘积行中之一相对应的符号位而生成的。
4.如权利要求3所述的方法,其中,所述符号扩展位是通过将进位加到所述部分乘积行中之一的1扩展位而产生的,所述进位是基于同所述部分乘积行中之一相对应的符号位的。
5.如权利要求1所述的方法,还包括求解与所述布斯乘法操作的部分乘积行相对应的粘性1位;基于求解出的粘性1位,向另一部分乘积行的一部分中的所选择的位分配数据位值。
6.如权利要求5所述的方法,还包括使用多路复用器向所选择的位分配所述数据位值,以选择所述数据位值。
7.如权利要求1所述的方法,还包括 使用所述乘法结果产生数据信号; 使用发射机发射所述数据信号。
8.一种方法,包括在硬件处理装置上进行布斯乘法操作阶段期间,产生与第一乘法器相关联的部分乘积的总和部分的符号扩展位,以形成所述部分乘积的符号扩展总和部分;使用加法器将所述部分乘积的符号扩展总和部分加到所述第一乘法器外的值。
9.如权利要求8所述的方法,还包括对与所述第一乘法器相关联的部分乘积的进位部分进行零扩展。
10.如权利要求8所述的方法,还包括对与第二乘法器相关联的第二部分乘积的总和部分进行符号扩展。
11.如权利要求8所述的方法,其中,所述值是第二乘法器产生的第二总和部分和第二进位部分中的至少之一。
12.如权利要求8所述的方法,还包括 将所述部分乘积的进位部分加到所述值。
13.如权利要求8所述的方法,其中,所述硬件处理设备包括处理器、多路复用器、累加器中的至少之一。
14.如权利要求8所述的方法,其中,与所述第一乘法器相关联的部分乘积对应于第一操作数的第一部分与第二操作数的第一部分的乘积,且其中,所述第一乘法器外的值对应于所述第一操作数的第二部分与所述第二操作数的第二部分的乘积。
15.一种设备,包括符号值解析电路,用于在布斯乘法操作阶段期间产生部分乘积的总和部分的符号扩展位;乘法电路,用于将所述部分乘积的总和部分加到所述部分乘积的零扩展进位部分以产生乘法结果。
16.如权利要求15所述的设备,其中,所述布斯乘法操作产生多个部分乘积行,所述部分乘积行中的每个部分乘积行都具有相应的符号位。
17.如权利要求16所述的设备,其中,在解析所述多个部分乘积行之前,所述符号扩展位被加到所述多个部分乘积行中之一。
18.如权利要求16所述的设备,其中,所述符号扩展位是基于所述多个部分乘积行中之一的符号位而产生的。
19.如权利要求16所述的设备,其中,所述符号扩展位是通过将进位加到所述部分乘积行中之一的1扩展位而产生的,所述进位是基于所述部分乘积行中之一的符号位的。
20.如权利要求15所述的设备,其中,所述符号值解析电路和所述乘法电路中的至少之一包括包括处理器、多路复用器、乘法器和累加器中的至少之一的装置。
21.如权利要求15所述的设备,其中,所述符号解析电路还用于求解与所述部分乘积相对应的粘性1位,且所述符号解析电路根据求解出的粘性1位向另一部分乘积的一部分中的所选择的位分配数据值。
22.如权利要求21所述的设备,还包括用于至少部分地基于求解出的粘性1位来提供所述数据值的多路复用器。
23.一种设备,包括符号值解析电路,用于在布斯乘法运算阶段期间产生与第一乘法器相关联的部分乘积的总和部分的符号扩展位,以形成所述部分乘积的符号扩展总和部分;加法器,用于将所述部分乘积的符号扩展总和部分加到所述第一乘法器外的值。
24.如权利要求23所述的设备,其中,所述布斯乘法操作产生多个部分乘积行,所述部分乘积行的每个部分乘积行都具有相应的符号位。
全文摘要
本发明涉及用于布斯乘法方法和系统的功率有效符号扩展。布斯乘法过程的功率有效符号扩展涉及在布斯乘法树中应用符号位。所述符号位允许布斯乘法过程执行符号扩展步骤。此进一步涉及使用符号位对所述布斯乘法树的预定部分乘积行执行1扩展以保留所述预定部分乘积行的正确符号。所述过程和系统通过在所述布斯乘法树中产生符号扩展位而解析所述符号位的信号值。所述符号扩展位位于进位输出列中以扩展所述布斯乘法过程的所述乘积。随后,所述方法和系统通过将进位输出值加到位于所述布斯乘法树的至少一预定列处的符号位而从所述布斯乘法树形成最终乘积。结果是使用所述符号有效地扩展所述最终乘积的总和分量且对所述最终乘积的进位分量进行零扩展。
文档编号G06F7/499GK102279724SQ20111024408
公开日2011年12月14日 申请日期2007年2月15日 优先权日2006年2月15日
发明者克里斯托弗·爱德华·科布, 威廉·C·安德森, 拉吉夫·克里希纳穆尔蒂 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1