具有增强的缩减树电路的布斯乘法器的制作方法

文档序号:6453819阅读:208来源:国知局
专利名称:具有增强的缩减树电路的布斯乘法器的制作方法
技术领域
本发明涉及数字信号处理器中的数学处理器的领域,且更明确地说,涉及用于数学 处理器中以执行数字的高速乘法的布斯乘数。更明确地说,本发明涉及一种能够执行对 各种数据类型的操作数以及对于有符号和无符号二进制值的运算的乘法器电路。
背景技术
电子设备和支持的软件应用程序越来越多地涉及数字信号处理。家庭影院、计算机 图形、医学成像和电信均依赖于数字信号处理技术。数字信号处理需要复杂但重复的算 法中的快速数学。许多应用需要实时计算,即信号为时间的连续函数,所述信号必须被 取样和转换为数字信号,以用于数值处理。处理器必须执行在样本到达时对所述样本执 行离散计算的算法。数字信号处理器(或DSP)的架构经优化以处置这些算法。良好的 信号处理引擎的特征包括快速、灵活的算术计算单位;到计算单位和来自计算单位的 未受约束数据流;计算单位中扩展的精度和动态范围;双地址产生器;高效程序排序; 和编程的简易性。
DSP技术的一个颇具前景的应用包括例如码分多址(CDMA)系统的通信系统,其 支持经由卫星或陆地链路的在用户之间的语音和数据通信。题为"使用卫星或陆地中继 器的扩频多址通信系统(SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS)"的第4,901,307号美国 专利和题为"用于在CDMA电信手持机系统中产生波形的系统和方法(SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM)"的第5,103,459号美国专利中揭示了在多址通信系统中使用CDMA方法, 所述两个专利均转让给所主张的主旨的受让人。
CDMA系统通常经设计以遵从一个或一个以上电信(且现在为串流视频)标准。一 个此类第-」代标准为"用于双模宽带扩频蜂窝式系统的TIA/EIA/IS-95终端-基站兼容性
标准(TIA/EIA/IS-95 Terminal-Base Station Compatibility Standard for Dual-mode Wideband Spread Spectrum Cellular System)"(下文中称为IS-95标准)。IS-95 CDMA系统能够传 输语音数据和包数据。可更有效传输包数据的新一代标准是由名为"第三代合作伙伴计 划(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-l、 MPEG-2、 MPEG-4、 H.263和WMV (Windows媒体视频),以及此类无 线手持机将越来越多地采用的许多其它标准。
为实现快速和灵活的算术计算单位,需要执行高速乘法运算。己知用于执行这些运 算的过程为布斯乘法。布斯乘法是通过对经乘法计算的数重编码而允许较小、较快乘法 电路的过程。通常通过产生部分乘积而执行使用布斯过程的乘法。随后将部分乘积相加 以获得最终结果。在使用布斯乘法过程的情况下,部分乘积的数目等于乘法器矩阵中的 行数目。术语"部分乘积"是指乘法树中的行。
虽然对原始布斯算法存在众多修改,但基本原理是使用布斯编码过程来产生较少部 分乘积。可通过使用基数为4的布斯重编码过程而使部分乘积的数目减少约一半。基数 为4的布斯重编码将乘数B的位(最初以二进位值0和1表示)映射为可采用值-2、 -1、 0> l或2的一组乘法因数。此方法提供将原本会出现的部分乘积的数目大致减半的益处。 这在电路设计中较为重要,因为其涉及电路运作中的传播延迟,和电路实施方案的复杂 性和功率消耗。 一旦已使用布斯编码过程产生部分乘积,便通过采用縮减技术而将所述 部分乘积加到一起。縮减过程涉及使用半加器、全加器和多操作数加法器以并行过程对 部分乘积位的多个行求和。此縮减导致被认为呈冗余格式的两行位,在使用进位传播加 法器进行解析时其总和表示最终乘积。将这些行中的一者称为总和S且另一行称为进位 C。在乘法累加(MAC)运算中,[Z+(AxB)]中的Z项通常在最终CPA之前包括在縮减 树中。此过程对于呈冗余格式的乘法乘积的解析与后续累加来说均节省了对CPA的采用。
因为某些部分乘积可为负的,所以2的求补运算所需的硬件是布斯乘法器的一方面。 在使用此硬件的情况下,需要提供能够产生乘法乘积的布斯乘法器。目前,不存在能够 针对DSP应用有效地产生-(AxB)的己知方法或系统。因此,需要在DSP应用中能够将布 斯乘法过程用于产生乘积的加法相反数-(AxB)的方法和系统。
然而, 一旦产生此乘积,便存在以下问题如果待累加的值("Z"加到乘法"AxB" 的乘积)比乘积AxB具有更大的位宽度,则冗余乘积的"总和"与"进位"分量均需要 被适当地符号扩展。有时,可能有必要在较广范围的位上执行符号扩展。因此,在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呈现可适用于所揭示主旨的经修改16x16的基数为4的布斯乘法树; 图6提供实施所揭示主旨的布斯重编码器的逻辑单元; 图7提供对具有所揭示主旨的图7的逻辑单元的位分组的描述; 图8呈现用于实施-(AxB)乘积的布斯重编码逻辑的逻辑单元; 图9为所揭示的主旨如何处置布斯乘法中的减法的表;且 图IO展示根据所揭示主旨的其它教示的16xl6布斯乘法縮减树。
具体实施例方式
针对本文呈现的经修改的布斯乘法器的所揭示的主旨可用于许多种数字信号处理应 用中,包含涉及多线程处理的应用。 一个此类应用出现在采用一个或一个以上数字信号 处理电路的电信和(具体来说)无线手持机中。因此,以下图1到图3描述电信DSP, 在所述DSP内本教示可为有用的。图4陈述乘法处理的数据路径,增强的布斯乘法运算 的本发明可在所述乘法处理内运算。然而,应记住,此处所描述的实施方案仅提供所揭 示主旨可适用的实际上无限组的应用中的一者。
出于阐述可如何使用此类无线手持机的目的,图1提供通信系统IO的简化方框图, 所述通信系统可实施所揭示的中断处理方法和系统的所呈现实施例。在传输器单元12 处,通常以区块为单位将数据从数据源14发送到传输(TX)数据处理器16,所述传输 (TX)数据处理器16格式化、编码和处理所述数据以产生一个或一个以上模拟信号。随 后将所述模拟信号提供到传输器(TMTR) 18,所述传输器调制、过滤、放大,且上变频 转换基带信号以产生经调制信号。随后经由天线20将所述经调制信号传输到一个或一个 以上接收器单元。
在接收器单元22处,由天线24接收所传输的信号且提供到接收器(RCVR) 26。在 接收器26内,所接收的信号被放大、过滤、下变频转换、解调,和数字化以产生同相(I) 和(Q)样本。随后通过接收(RX)数据处理器28对所述样本进行解码和处理以恢复所 传输的数据。以与在传输器单元12处执行的编码和处理互补的方式执行接收器单元22 处的编码和处理。随后将所恢复的数据提供到数据汇30。
上述信号处理支持在一个方向上传输语音、视频、包数据、消息发送和其它类型的 通信。双向通信系统支持双向数据传输。然而,为简明起见,图1中未展示在另一方向 上的信号处理。通信系统IO可为支持经由陆地链路的用户之间的语音和数据通信的码分 多址(CDMA)系统、时分多址(TDMA)通信系统(例如GSM系统)、频分多址(FDMA) 通信系统,或其它多址通信系统。在特定实施例中,通信系统IO为遵从W-CDMA标准 的CDMA系统。数据处理器16和接收数据处理器28的DSP40架构。再 次强调DSP 40仅表示可有效地使用此处所呈现的教示和概念的许多可能的数字信号处 理器实施例中的一个实施例。因此在DSP40中,线程TO:T5 (参考数字42到52)含有 来自不同线程的指令集。电路54表示指令存取机构且用于获取用于线程T0:T5的指令。 电路54的指令被排入指令队列56中。指令队列56中的指令准备发布到处理器管线66 (见下文)中。可通过发布逻辑电路58从指令队列56中选择单一线程,例如线程TO。 读取选定线程的寄存器堆60并将所读取的数据发送到槽0到槽3的执行数据路径62。 在此实例中,槽0到槽3提供本实施例中所采用的包分组组合。
来自执行数据路径62的输出进入寄存器堆写入电路64 (其也经配置以容纳个别线 程T0:T5)以返回来自DSP40的运算的结果。因此,根据各种线程而划分成多个部分的 来自电路54且在到寄存器堆写入电路64之前的数据路径形成处理管线66。
本实施例可采用使用具有多达六个线程T0:T5的单一微处理器的异质元件处理器 (HEP)系统的混合体。处理器管线66具有六个级,从而匹配从电路54到寄存器60和 64获取数据项目所必需的最小数目的处理器循环。DSP 40在处理器管线66内同时执行 不同线程T0:T5的指令。即,DSP40提供六个独立的程序计数器、用以在处理器管线66 内区分线程T0:T5的指令的内部标记机构,和用以触发线程切换的机构。线程切换额外 开销从零到仅数个循环进行变化。
因此,DSP40提供通用数字信号处理器,其经设计以用于广泛各种信号、图像和视 频处理应用中的高性能和低功率。图3提供对DSP40架构的简要概述,其包括所揭示主 旨的一个表现形式的相关联指令集架构的某些方面。DSP40架构的实施方案支持交错的 多线程(IMT)。在此执行模型中,硬件通过在管线中交错来自不同线程的指令而支持多 个硬件线程T0:T5的同时执行。此特征允许DSP40包括主动时钟频率,同时仍维持较高 的核心和存储器利用。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的操作适当发生很重要。所揭示的主旨可适用的任 何应用中很可能存在类似的计时考虑。因此,布斯乘法过程发生的速度提供此处揭示的 材料的独特新颖方面。
为了满足这些时间约束,所揭示的主旨使用能够执行两个数字的乘积AXB或两个 数字的乘积的加性相反数-AXB的布斯乘法。另外,本发明包含一种将舍入常数包含在 布斯縮减树和符号扩展过程中的方法,其减少了功率和面积。此外,本发明的布斯乘法 过程可需要部分乘积为有符号的数字,即使对无符号的操作数执行乘法时也如此。由于 一些部分乘积可能是负的,所以用于执行布斯乘法的2的求补运算电路允许修改常规布 斯乘法器以便产生乘法乘积的负值。有效地产生-(AXB)的能力对许多DSP应用(包含形 式[2+-(八乂8)]的运算)具有较大影响。本发明启用这些乘法累加运算或MAC运算
图4呈现所揭示主旨的各种实施方案的数据路径图180,且建立其内可发生本布斯 乘法过程的数据流。具体来说,乘法区块U8接收Rs和Rt输入。乘法单元M0:M3在乘 法区块118内。具体来说,MO乘法器单元182、 Ml乘法器单元184、 M2乘法器单元186 和M3乘法器单元188单独地接收Rs和Rt输入以分别将SOCO(即总和0和进位0)、S1C1、 S2C2,和S3C3输出产生到移位/符号扩展单元148。移位/符号扩展单元148负责这些中 间冗余乘积的逻辑移位和符号扩展。
乘法器区块118执行M管84的乘法相关指令。可将这些指令视为使用16x16乘法 过程作为基础的复合指令。乘法器区块由四个16x16乘法器单元M0:M3组成。每一乘法 器单元M0:M3能够在若干模式中起作用,以支持广泛各种M类型指令。支持有符号与 无符号的模式。在需要对乘积执行减法的情况下,乘法器也可产生乘法器的乘积的2补 数。
在所揭示的主旨的情况下,M0:M3乘法器182到188使用基数为4的布斯编码。在 无符号模式中,所述乘法器类似使用额外第17位充当符号位的17x17乘法器。除双精度 乘法(即32x32乘法)之外,所有其它乘法指令为"有符号x有符号"或"无符号x无符 号"。使用16xl6乘法器来计算双精度32x32乘法和32xl6乘法也需要"有符号x无符号" 和"无符号x有符号"的乘法。通过控制被乘数的符号位和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位表示16x16乘法的输出, 某些指令仍以无符号模式进行运算且额外位在此情况下用作符号位以促进符号扩展。 S0:S3和C0:C3经过移/符号扩展单元148。在封装之前,S0:S1和C0:C1影响低阶32 位的最终结果。此形成所述结果的实数部分。如果在所述指令中指定,则这四个数视情 况可通过左移1位而縮放。
将这些数的经移位版本标记为R0:R3。 R0:R3经过多操作数加法器150。来自多操作 数加法器150的输出流向饱和/加法单位170。
图5通过呈现适用于所揭示主旨的经修改16x16的基数为4的布斯乘法树而促进理 解所揭示主旨的布斯乘法过程。图5的点图200概念性地描绘了对所揭示主旨的16x16 乘法器的基数为4的布斯编码,此导致九个部分乘积202、 204、 206、 208、 210、 212、 214、 216和218。通过使用由两级的3:2缩减组成的縮减树随后使用一级的4:2压縮而将 九个部分乘积縮减为两个33位冗余输出S0:S3和C0:C3。虽然32位的精度对于16x16 乘法来说是足够的,但在无符号乘法的情况下也保留第33位以充当符号位。也从乘法器 输出来自第33列的额外进位输出位以辅助符号扩展。
进一步参看图5,每一部分乘积行220到236为水平展示的被乘数位238的倍数。 己在图5的顶部指示列数。垂直地展示乘数位240,且这些位经重编码以产生乘法因数 以形成部分乘积行220到236。图5中所示的信号n0到n7指示加到接收负权重的部分
乘积行220到236的粘性"1"。这些足以处理不需要乘积的最终相反数的乘法。为在乘 法器中隐含地处理-(AxB)的情况,提供额外信号n8。
当乘法运算的乘积在乘法器树中隐含地进行减法时,信号s0到s7处置符号扩展。 如果A和B分别假定为被乘数和乘数,那么通过编码乘数操作数B的三个位的若干组和 使用此编码从集合卜2A, -A, 0, A, 2A)中选择部分乘积而继续基数为4的布斯编码。现在, 如果需要减去最终乘积(AxB),则其等效于添加Ax-(B)。乘数经修改;现从B修改为 (陽B)。
图6提供用于实施所揭示主旨的布斯重编码器电路250。布斯重编码器单元250包 括在XOR 256处的LSB输入254到反相器XOR 260处的MSB输入258的范围内的乘数 群组输入252。 MSB输入258也提供来自布斯重编码器电路250的"neg"输出。来自 XOR 256的输出表示Axl信号(A来自布斯重编码器250),且将输入提供到反相器XOR 264。来自反相器XOR 260的输出也将输入提供到反相器XOR 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为有符号的数,贝U 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,所有三个信号将较低。 也应注意,为产生乘积AxB,最高有效位群组的乘法因数B[17:15]总为正。现在,B[17:15] 的唯一可能的位群组在B无符号时为

,且在B为有符号时为
或[111]。 从图7可见,所有这些群组导致正乘法因数。因此此处所述的布斯乘法多路复用器可选 自集合{0, A, 2A)以产生部分乘积。
图8提供布斯重编码器电路270以实施-(AxB)乘积的布斯重编码逻辑。布斯重编码 器单元包括在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的乘积的负 值的特征。因此,此避免了首先计算乘积AxB且随后计算所述乘积的2补数以获得-(AxB) 的己知两步骤过程。布斯重编码器电路270与乘法级并行地执行"非"操作。
乘积的2的求补运算利用了-(AxB)等效于Ax(-B)的事实。在此情况下,可将操作数 (-B)视为乘数。使用(-B)作为乘数而产生的布斯乘法因数是使用B作为乘数操作数而 产生的相应乘法因数的加法相反数。用于计算乘积AxB的布斯乘法硬件结构可再用于通 过使布斯乘法因数中每一者的符号相反而计算Ax(-B)。通过布斯重编码器电路270的 "neg"信号而确定此符号,所述布斯重编码器电路是对在进行乘积"非"操作时用以产 生"-neg"信号的重编码硬件的修改形式。
应注意,在布斯重编码器电路270中,XOR门284在非关键路径上,且不会对关键 路径造成影响。而是,关键路径包括产生信号A和2A的乘数位。对部分乘积的乘法因 数的符号求反的此过程引入了其中最后部分乘积行的符号可能为负的情况。因此,可将 信号"n8"加到如上文出现在图5中的乘法树。可通过修改縮减级以容纳额外行而縮减 添加一行。然而,此修改也许意味着需要额外延迟和相关的硬件。
此处所呈现的过程并不包含縮减级中的额外行,而是相反集中在通过对乘法树进行 逻辑修改而将n8信号吸收到部分乘积的现有九个行中。加到乘法树的延迟是最小的。
指代形式PP,—w的每一"点"的表示法旨在帮助获得对所揭示标的物的此方面的 理解。参看图9,乘法树中的每一二进位位(点)在矩阵中具有其唯一权重和位置。相同 列中的所有位具有相同权重,且只要维持所述权重便可以任何次序縮减所述位。以0开始 从顶部到底部对各行进行编号,且以0开始从右到左对各列进行编号。使用此表示法,n8 等效于PPhU6。使用基数为4的布斯编码与已知的縮放和符号扩展过程来产生PP,0—16、 PP0—17、 PPcu8和PPo—19。使用此方法,可将n8吸收到乘法树中。因此,通过分析有符号与
无符号乘法模式中的PPo—16、 PP(U7、 PP(U8和PP(U9的所有可能的位值,可针对所有可能
的布斯乘法因数而确定可插入n8的位置。
图9列举部分乘积行0的四个最高有效位的值的范围,和将信号n8加到此四位字段的 效果。MUX结构准许在n8为高时选择四位字段的经修改值。换句话说,如果在列16 (即 P0—16)处添加信号n8,则所揭示过程预先计算部分乘积行O的四个最高有效位的值,且在 縮减级中使用此经修改的四位字段。MUX结构经优化以使得使用标准布斯多路复用电路
对PP(U6进行一次计算(在表中展示为"a")。在此之后以最小延迟来解析基于n8的经修 改四位字段。所述乘法过程的其余部分等同于用以产生乘积AxB的普通乘法流程。
图10呈现适用于所揭示主旨的其它方面的经修改16xl6的基数为4的布斯乘法树。从 图10可理解本发明的重要符号扩展和舍入常数函数。对16xl6乘法器的缩减级的修改最小 化经由九个部分乘积行的关键路径,且当所述乘积以冗余总和进位格式为可用时有效地 提供符号扩展。图10展示16xl6的基数为4的布斯乘法器的经修改縮减树304。经修改縮减 树304容纳有符号和无符号的操作数且具有对所述乘积进行"负"操作的潜力。
第一縮减级使用全加器的三(3)行将九(9)行縮减为六(6)行。第二縮减级使用 全加器的两(2)行将六(6)行縮减为四(4)行。第三縮减级和最终缩减级采用4:2多 操作数加法器的行以将四(4)行縮减为最终冗余总和和进位行。尽管32位的总和和进位 足以表示16xl6乘积,但额外位确保无符号乘法正确地处置符号扩展。
图10进一步展示列306,其高于形成乘积的仅较低位的32个位。本发明从列#32向上 修改布斯乘法树以引入最后部分乘积行308的符号位s8。如果乘积不需要符号扩展,则不 需要此符号位s8。现在,为保留部分乘积行8的正确符号,本过程包括将部分乘积行308 扩展一位。高于弁32的列未受影响直到缩减的最后一级。在此点处,信号 s8以来自列弁31
的进位输出而进行解析,并产生展示为的进位输出310。
通过将进位输出"^" 310从列#33向上加到1扩展而形成最终乘积。效果为以^乍为 符号而符号扩展所述最终乘积的总和分量,同时零扩展最终乘积的进位分量。这些步骤 消除了对于符号扩展总和与进位分量的需要。举例来说,如果16xl6乘法为需要64位值到 32位乘积的累加的MAC运算的部分,则需要在将32位乘积加到64位数之前符号扩展所述 32位乘积。如果中间32位乘积呈冗余形式,且应用此处所呈现的符号扩展过程,则由于 消除用于在31位上符号扩展进位分量的MUX的可能性而引起显著的功率节省。
再次参看图IO,本发明进一步提供将舍入常数加到乘数B的能力。对于DSP运算中的 16xl6乘法典型的舍入常数为0x8000。舍入16xl6乘法的乘积为常用运算,其通常作为两 步骤运算而执行,其中乘法器首先用于产生乘积,且随后将舍入常数加到所述乘积。
使用以上所阐述的表示法,注意在图10中PP8—15为0。通过在乘法矩阵中的此位位置 中插入"l",可产生与通过首先产生乘积且随后向所述乘积添加值0x8000而获得的结果 相同的结果。此过程也未向关键路径添加任何等待时间。
如果乘法区块118中的硬件局限于仅能够向乘法的乘积添加一累加操作数的能力, 则当需要舍入乘法的乘积时以累加操作数MUX所述舍入常数是常见的。此使得难以在 单一步骤中执行对乘法的乘积的舍入与累加运算。但使用此处所述的过程消除了这些限
制。
总之,所揭示的主旨提供用于数字信号处理器的设计和使用的过程,包含处理通信 (例如,CDMA)系统中的传输。所揭示的方法和系统包含用于在数字信号处理器中执 行布斯乘法的具有增强的缩减树电路的布斯乘法器。所述方法和系统确定包含第一多个 位的被乘数A和具有第二多个位的乘数B。所揭示的主旨对B执行基数为m (例如,基 数为4)的布斯重编码以产生第一预定整数数目"n"个乘法因数。"n"个乘法因数接近 第二多个位的数目的一半。所述方法和系统进一步使用所述"n"个乘法因数作为A的乘 数来产生"n"个部分乘积。接着,使用基数为m的布斯编码来形成乘法树。在负乘法 因数的情况下,本发明包含通过使A的第一多个位反相并与粘性"1"关联以完成2的求 补运算来形成A的2补数。此外,所述过程涉及在多个缩减级中将乘法因数縮减为具有 预定长度的一组总和与进位分量。
本发明进一步提供能够用于形式[2+-(八><8)+舍入常数]的\1八(:运算中的经修改布斯 乘法器的技术优点。此乘法器通过(a)对布斯乘法因数进行"负"操作和将额外粘性位 吸收到縮减树中;(b)找出一位置以将舍入常数填充到缩减树中;和(c)使用仅需要冗 余总和的符号扩展的符号扩展过程而最小化延迟、功率和硬件。
此外,可以各种方式实施本文所述的处理特征和功能。举例来说,不仅DSP40可执 行上述运算,而且本实施例可实施在专用集成电路(ASIC)、微控制器、微处理器,或 经设计以执行本文所述的功能的其它电子电路中。因此,提供优选实施例的先前描述以 使所属领域的技术人员能够制造或使用所主张的主旨。所属领域的技术人员将明显看出 对这些实施例的各种修改,且本文所界定的一般原理可适用于不使用创新技能的其它实 施例。因此,不期望所主张的主旨限制于本文所示的实施例,而是赋予其与本文所揭示 的原理和新颖特征一致的最广泛的范围。
权利要求
1. 一种用于在数字信号处理器中执行布斯乘法的方法,其包括以下步骤确定包括第一多个位的被乘数A和包括第二多个位的乘数B;对B执行基数为4的布斯重编码以产生第一预定数目n个乘法因数,所述“n”个乘法因数接近所述第二多个位的数目的一半;使用所述“n”个乘法因数作为A的乘数来产生“n”个部分乘积;使用基数为4的布斯编码来形成乘法树,所述乘法树包括多个乘数位,所述乘数位在所述乘法器树中相关联以用于产生多个乘法因数;在负乘法因数的情况下,通过使A的所述第一多个位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数;以及在多个缩减级中将所述乘法因数缩减为具有预定长度的一组总和与进位分量;以及通过确定所述乘法因数的加性相反数,通过将-B设定为乘数来确定A和B的负乘积。
2. 根据权利要求1所述的方法,其中所述乘数大小确定步骤进一步包括使用16X16 乘法器来确定A和B的步骤。
3. 根据权利要求1所述的方法,其进一步包括产生所述乘积以作为形式[Z + -(AXB)] 的被加数的步骤,其中Z表示将要在所述数字信号处理器中累加的值。
4. 根据权利要求1所述的方法,其进一步包括通过将粘性"1"插入到所述乘法树的 预定位置中而将舍入常数添加到A和B的乘法的步骤。
5. 根据权利要求l所述的方法,其进一步包括以下步骤对B执行基数为4的布斯重编码以产生9个乘法因数; 使用所述九个乘法因数作为A的倍数来产生九个部分乘积;使用基数为4的布斯编码来形成乘法树,所述乘法树包括九行;以及将所述乘法树縮减为多个32位总和与进位分量。
6. 根据权利要求1所述的方法,其进一步包括以下步骤将所述布斯乘法过程作为MAC运算期间的64位值累加的一部分而执行。
7. —种用于与数字信号处理器相关联地进行操作以用于在数字信号处理器中执行布斯乘法的系统,其包括 处理电路,其用于确定包括第一多个位的被乘数A和包括第二多个位的乘数B:乘法器区块,其用于对B执行基数为4的布斯重编码以产生第一预定数目n个乘 法因数,所述"n"个乘法因数接近所述第二多个位的数目的一半;多个乘法器单元,其与所述乘法器区块相关联,以用于使用所述"n"个乘法因 数作为A的乘数来产生"n"个部分乘积;布斯编码电路,其与所述多个乘法器单元相关联,以使用基数为4的布斯编码来 形成乘法树,所述乘法树包括多个乘数位,所述乘数位在所述乘法器树中相关联以 用于产生多个乘法因数;与所述布斯编码电路相关联的反相器电路,其用于负乘法因数的情况,且在此情 况下,通过使A的所述第一多个位反相并与粘性"1"关联以完成2的求补运算来 形成A的2补数;以及縮减电路,其与所述乘法器单元相关联,以用于在多个縮减级中将所述乘法因数 縮减为具有预定长度的一组总和与进位分量;以及反相器电路,其用于通过确定所述乘法因数的加性相反数,通过将-B设定为乘数 来确定A和B的负乘积。
8. 根据权利要求7所述的系统,其进一步包括乘法树产生电路,所述乘法树产生电路 用于使用16X 16乘法器来产生用于确定A和B的乘法树。
9. 根据权利要求7所述的系统,其进一步包括累加电路,所述累加电路用于产生所述 乘积作为形式[Z + -(AXB)]的被加数,其中Z表示将要在所述数字信号处理器中累 加的值。
10. 根据权利要求7所述的系统,其进一步包括添加位插入电路,其用于通过将粘性 "1"插入到所述乘法树的预定位置中而将舍入常数添加到A和B的乘法。
11. 根据权利要求7所述的系统,其进一步包括布斯重编码电路,其用于对B执行基数为4的布斯重编码以产生九个乘法因数; 部分乘积产生电路,其与所述多个乘法器单元相关联,以用于使用所述九个乘法因数作为A的倍数来产生九个部分乘积乘法树电路,其用于使用基数为4的布斯编码来形成乘法树,所述乘法树包括九行;以及縮减树电路,其用于将所述乘法树縮减为多个32位总和与进位分量。
12. 根据权利要求7所述的系统,其进一步包括 乘法树电路,其用于将所述布斯乘法过程作为MAC运算期间的64位值累加的一 部分而执行。
13. —种用于支持个人电子装置而进行操作的数字信号处理器,所述数字信号处理包括 用于在数字信号处理器中执行布斯乘法的装置,所述数字信号处理器包括用于确定包括第一多个位的被乘数A和包括第二多个位的乘数B的装置; 用于对B执行基数为4的布斯重编码以产生第一预定数目n个乘法因数的装置,所述"n"个乘法因数接近所述第二多个位的数目的一半;用于使用所述"n"个乘法因数作为A的乘数来产生"n"个部分乘积的装置; 用于使用基数为4的布斯编码来形成乘法树的装置,所述乘法树包括多个乘数位,所述乘数位在所述乘法器树中相关联以用于产生多个乘法因数;用于在负乘法因数的情况下通过使A的所述第一多个位反相并与粘性"1"关联以完成2的求补运算来形成A的2补数的装置;以及用于在多个缩减级中将所述乘法因数縮减为具有预定长度的一组总和与进位分量的装置;以及用于通过确定所述乘法因数的加性相反数,通过将-B设定为乘数来确定A和B 的负乘积的装置。
14. 根据权利要求13所述的数字信号处理器,其进一步包括用于使用16X16乘法器来 确定A和B的装置。
15. 根据权利要求13所述的数字信号处理器,其进一步包括用于产生所述乘积以作为 形式[Z十-(AXB)]的被加数的装置,其中Z表示将要在所述数字信号处理器中累加 的值。
16. 根据权利要求13所述的数字信号处理器,其进一步包括用于通过将粘性"1"插入 到所述乘法树的预定位置中而将舍入常数添加到A和B的乘法的装置。
17. 根据权利要求13所述的数字信号处理器,其进一步包括用于对B执行基数为4的布斯重编码以产生九个乘法因数的装置; 使用所述9个乘法因数作为A的倍数来产生九个部分乘积 使用基数为4的布斯编码来形成乘法树,所述乘法树包括9行;以及 将所述乘法树縮减为多个32位总和与进位分量。
18. 根据权利要求13所述的数字信号处理器,其进一步包括用于将所述布斯乘法过程 作为MAC运算期间的64位值累加的一部分而执行的装置。
19. 一种计算机可用媒体,其中包含有用于在数字信号处理器中执行布斯乘法的计算机 可读程序代码装置,所述计算机可用媒体包括用于确定包括第一多个位的被乘数A和包括第二多个位的乘数B的计算机可读程 序代码装置;用于对B执行基数为4的布斯重编码以产生第一预定数目n个乘法因数的计算机 可读程序代码装置,所述"n"个乘法因数接近所述第二多个位的数目的一半;用于使用所述"n"个乘法因数作为A的乘数来产生"n"个部分乘积的计算机可 读程序代码装置;用于使用基数为4的布斯编码来形成乘法树的计算机可读程序代码装置,所述乘 法树包括多个乘数位,所述乘数位在所述乘法器树中相关联以用于产生多个乘法因 数;用于在负乘法因数的情况下通过使A的所述第一多个位反相并与粘性"1"关联 以完成2的求补运算来形成A的2补数的计算机可读程序代码装置;以及用于在多个缩减级中将所述乘法因数縮减为具有预定长度的一组总和与进位分 量的计算机可读程序代码装置;以及用于通过确定所述乘法因数的加性相反数,通过将-B设定为乘数来确定A和B 的负乘积的计算机可读程序代码装置。
20. 根据权利要求19所述的计算机可用媒体,其进一步包括用于使用16X16乘法器来确定A和B的计算机可读程序代码装置。
21. 根据权利要求19所述的计算机可用媒体,其进一步包括用于产生所述乘积以作为形式[Z + -(AXB)]的被加数的计算机可读程序代码装 置,其中Z表示将要在所述数字信号处理器中累加的值。
22. 根据权利要求19所述的计算机可用媒体,其进一步包括用于通过将粘性"1"插入到所述乘法树的预定位置中而将舍入常数添加到A和 B的乘法的计算机可读程序代码装置。
23. 根据权利要求19所述的计算机可用媒体,其进一步包括用于对B执行基数为4的布斯重编码以产生九个乘法因数的计算机可读程序代码 装置;用于使用所述九个乘法因数作为A的倍数来产生九个部分乘积的计算机可读程序 代码装置; 用于使用基数为4的布斯编码来形成乘法树的计算机可读程序代码装置,所述乘 法树包括九行;以及用于将所述乘法树縮减为多个32位总和与进位分量的计算机可读程序代码装置。
24.根据权利要求19所述的计算机可用媒体,其进一步包括用于将所述布斯乘法过程 作为MAC运算期间的64位值累加的一部分而执行的计算机可读程序代码装置。
全文摘要
本发明提供用于数字信号处理器的设计和使用的技术,包含处理通信(例如,CDMA)系统中的传输。经修改的布斯乘法系统和过程确定被乘数A和乘数B。对B的基数为m(例如,基数为4)的布斯重编码产生“n”个乘法因数,其中整数“n”接近乘数位的数目的一半。使用所述“n”个乘法因数作为A的乘数来产生“n”个部分乘积。接着,使用基数为m的布斯编码来形成乘法树。所述乘法树包含相关联的乘数位以产生乘法因数。在负乘法因数的情况下,通过使A的位反相并与粘性“1”关联以完成2的求补运算来形成A的2补数。此外,在多个级中将乘法因数缩减为具有预定长度的一形式的总和与进位分量。通过使用新颖的技术计算A和-B的乘积来形成A×B的加性相反数。
文档编号G06F7/544GK101384989SQ200780005151
公开日2009年3月11日 申请日期2007年2月13日 优先权日2006年2月15日
发明者克里斯托弗·爱德华·科布, 尚卡尔·克里蒂瓦桑 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1