数字信号处理器中用于信号处理的系统和方法

文档序号:6498519阅读:337来源:国知局
数字信号处理器中用于信号处理的系统和方法
【专利摘要】提供了用于浮点复合乘加的数字计算的方法和相关装置的实施例。所述方法包括接收输入被加数、第一积和第二积。所述输入被加数、所述第一积和所述第二积分别具有一个尾数和一个阶码。所述方法包括将所述输入被加数、所述第一积和所述第二积中具有较小阶码的两个的尾数移位以与所述输入被加数、所述第一积和所述第二积中具有最大阶码的那个的尾数一起对齐,以及将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加。
【专利说明】数字信号处理器中用于信号处理的系统和方法
[0001]本发明要求2012年4月20日递交的发明名称为“数字信号处理器中用于信号处理的系统和方法(System and Method for Signal Processing in Digital SignalProcessors) ”的第13/452690号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引用的方式并入本文本中。

【技术领域】
[0002]本发明大体涉及一种用于数字计算的系统和方法,尤其涉及一种在数字信号处理器或硬件加速器等系统中用于构造浮点复合乘加单元的系统和方法。

【背景技术】
[0003]加法器和乘法器是在微处理器、数字信号处理器(“DSP”)、算术逻辑单元(“ALU”)、硬件加速器(“HAC”)等数字处理器中执行基本数值运算的逻辑单元。此类设备的整体性能通常依赖于其构成逻辑元件的速度和能量效率。通常需要加法器、乘法器和其它逻辑元素来执行浮点计算,这在本质上增加了它们的复杂度。微处理器、DSP等的成本与实施形成它们的逻辑元素所需的硅区域基本上成比例。因此,加法器、乘法器等的设计是为最终产品提供有竞争性设计的一项重要考虑因素,而且任何效率提升和实施所需的硅区域的缩减可对市场接受产生重大影响。
[0004]在不产生不必要成本的情况下,提升性能和缩减实施ALU、HAC等所需的硅区域的能力将会满足重要市场需求。


【发明内容】

[0005]技术优点大体上由本发明的实施例来实现,本发明的实施例提供一种根据第一复合被乘数、第二复合被乘数和复合被加数计算浮点复合乘加过程产生的实部和虚部的系统和方法。
[0006]根据示例实施例,提供一种用于浮点复合乘加的数字计算的方法和相关装置。所述方法包括接收输入被加数、第一积和第二积。所述输入被加数、所述第一积和所述第二积分别具有一个尾数和一个阶码。所述方法包括将所述输入被加数、所述第一积和所述第二积中具有较小阶码的两个的尾数移位以与所述输入被加数、所述第一积和所述第二积中具有最大阶码的那个的尾数一起对齐,以及将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加。

【专利附图】

【附图说明】
[0007]为了更完整地理解本发明及其优点,现在参考以下结合附图进行的描述,其中:
[0008]图1和图2示出了根据实施例的合计项的尾数的对齐和截断的图形表示;
[0009]图3示出了根据实施例的复合浮点乘加单元的方框图,所述复合浮点乘加单元用于计算复数A = B+CXD的虚部;
[0010]图4示出了根据实施例的复合浮点乘加单元的方框图,所述复合浮点乘加单元用于计算复数A = B+CXD的实部;
[0011]图5示出了根据实施例的处理系统的元件的框图,所述处理系统可用于执行上文所述的一个或多个方法;以及
[0012]图6a和6b示出了根据实施例的通信系统的基带信令过程的方框图。

【具体实施方式】
[0013]下文将详细论述当前优选实施例的制作和使用。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的发明性概念。所论述的具体实施例仅仅说明用以实施和使用本发明的具体方式,而不限制本发明的范围。
[0014]执行浮点(“FLP”)复合乘加(“CMAD”)运算的设备执行图形处理系统、雷达系统和通信系统等数字系统的信号处理中最常用的运算之一。加速和提升CMAD运算的能量效率可大幅度提升DSP或其它数字设备的性能。
[0015]复数的算术运算甚至提出更多挑战。通常在各项的实部和虚部上分别执行此类复数运算。必须执行大量处理,这为其实施消耗大量硅区域并需要大量时间用于其执行。
[0016]如本文所介绍,数字处理单元的实施例在DSP、硬件加速器等中为浮点复合乘加过程实施快速算法。
[0017]在实施例中,对复数执行算术运算所需的延迟和能量减少。输入数据和中间计算结果的特征用于产生能够有效执行浮点复合乘加运算的DSP或其它算术设备。
[0018]浮点复合乘加单元执行等式
[0019]A = B+CXD
[0020]其中项A、B、C和D是浮点复数,其中的每个成分通常以具有符号比特、阶码比特和尾数比特的数字浮点格式表示。项B是被加数,项C和D分别是第一和第二被乘数。项A是复合浮点乘加结果。应注意,作为复数的实例,还可以根据本发明实施例中论述的复数运算处理实数。
[0021]根据本发明实施例,没有必要使用标准浮点加法运算和之后的标准浮点乘法运算来实施浮点CMAD运算。以通信系统为例,可简化CMAD计算以满足基带应用的精度要求,例如旨在长期演进(“LTE”)、通用移动通讯系统(“UMTS”)和全球移动通信系统(“GSM”)蜂窝规范下运行的通信系统中采用的CMAD计算。
[0022]将复合乘法和加法组合成一个过程允许在信号处理器中待优化的逻辑电路有大量机会获得较低的处理延迟和较高的功率效率。例如,可从逻辑中移除冗余,可以合并计算步骤,且可以使用保留进位加法器。
[0023]将以上所示的浮点复合乘加等式分解为实部和虚部(S卩,A.real和A.1maginary)产生了两个等式:
[0024]A.real = B.real+C.real XD.real-C.1maginary XD.1maginary
[0025]A.1maginary = B.1maginary+C.real XD.1maginary+C.1maginary XD.real,
[0026]实施例中的每个等式都可以使用执行实运算的数字逻辑来实施。A.real等式的结果是实数加上两个实数的积的总和并从中减去另外两个实数的积。A.1maginary等式的结果是实数加上两个实数的积再加上另外两个实数的积的总和。每个等式包括一个实数被加数以及实数积和实数积的加法或减法的总和。在输入被加数和两个实数积之间,移位具有较小阶码的两个数字的尾数以和具有最大阶码的第三数字的尾数对齐。三个尾数的总和使用保留进位加法器后跟双输入全加法器计算。
[0027]根据两个积和输入被加数的阶码对齐它们的尾数并根据它们的尾数截断两个积和输入被加数以丢弃不必要的精确低阶比特(若存在)。随后将两个截断的积添加到截断的输入被加数和/或从截断的输入被加数减去两个截断的积。
[0028]根据应用的精度要求确定加法器的位宽。截断造成的精度损失可以通过略微增加加法器的位宽进行部分补偿。可以(通过向加法器位宽增加一个以上比特)避免对尾数的两个积进行规格化以节省处理电路和处理时间。可以将CMAD的被加数的使用延迟至后期流水线阶段以减少软件流水线的启动间隔。
[0029]现参见图1和图2,其示出了根据实施例的待相加的三项的三个示例尾数101、102和103的对齐和截断的图形表示。具体而言,图1示出了对齐之前的三个示例尾数101、102和103,图2示出了对齐之后的三个示例尾数101、102和103。
[0030]在图1和图2的截断示例中,浮点输入二进制实数表示为一个符号比特、五个阶码比特和十个尾数比特。假设在输入尾数之前加上隐藏“I”比特。因此,假设每个尾数为“1.XXXXXXXXXX”形式的11个比特,即十个尾数比特跟在隐藏比特“I”的基数小数点之后。因此,每个输入尾数被规格化到范围I <尾数〈2。11比特尾数的简单乘法通常会产生最多22比特尾数积,这在许多应用的低阶比特中包含多余精度。
[0031]图1和图2中示出的标记遵循具有更多参数的上述A.real和A.1maginary的实数和虚数等式的标记,其中
[0032]Mbi 是 B.1maginary 的尾数,
[0033]Mri 是 C.real 和 D.1maginary 的尾数积,以及
[0034]Mir 是 C.1maginary 和 D.real 的尾数积。
[0035]在图1和图2的示例中,假设(C.real XD.1maginary)具有最大阶码。用于对齐的Mbi和Mt各自的移位距离为
[0036]Δ Erib = exp (C.real) +exp (D.1maginary) - exp (B.real),和
[0037]Δ Eriir = exp (C.real) +exp (D.1maginary) - (exp (C.1maginary) +exp (D.real))。
[0038]该过程的目的是将相加的项的所有阶码设置为等于最大阶码。这样的结果是对齐阶码之后每个成分的基数小数点110相同。
[0039]假设对齐基数小数点之后的三个尾数101、102和103由以下比特表示:图1和图2中由比特“I”标识的前导符号比特、接着是由比特“2”和“3”标识的用于容纳三项相加所产生的可能进位的两个比特,接着是由比特“4”和“5”标识的用于容纳积的整数部分的两个其它比特。五个前导比特紧跟着14个分数比特(fract1nal bit)以保持必要的精度。忽略截断的比特120,因为它们表示可以通过检查终端应用的要求而确定的不必要的精度水平。
[0040]在该示例中,从具有最大阶码的项中截断六个比特以产生19比特尾数。相应地对尾数102和103作出比特截断以产生两个19比特尾数。在该示例中,可以使用19比特加法器将所得的三个截断的尾数相加。
[0041]首先参见图1,根据本发明实施例,为了对齐尾数102和101,(对齐之后)尾数102的比特“4”由“O”比特填充以产生12比特尾数,按照比特间距ΛΕ-将所得的12比特尾数102右移,这样对齐之后尾数102的整个比特长度变成(ΛΕ-+12),其为AEHb加上Mbi的原始11个比特加上比特“4”中增加的“O”的一个比特。
[0042]根据精度要求按需将尾数101截断为16个比特,且相应地截断尾数102使得尾数102 的截断部分变成(Δ Erib+12 - 16),即(Λ Erib - 4)。
[0043]现参见图3和图4,其分别示出了图示根据实施例的采用复合浮点乘加单元的A =B+CXD的虚部A.1maginary和实部A.real的计算的逻辑二进制过程的布置和互连的方框图。输入C.r.s、C.1.s、D.r.S、D.1.S、B.r.s和B.1.s分别表示项的实数和虚数符号比特以及因数C、D和B。输入C.r.e、C.1.e、D.r.e、D.1.e、B.r.e和B.1.e分别表示项的实数和虚数阶码比特以及因数C、D和B。输入B.r.m、B.1.m、C.r.m、C.1.m、D.r.m和D.1.m分别表示项的实数和虚数尾数比特以及因数B、C和D。尾数输入耦合到产生2+20比特积307、308的乘法器305和306。乘法器305、306产生的积307、308未被规格化,即在不将积的基数小数点规格化的情况下保留由乘法运算产生的基数小数点的位置以节省一些处理电路和时间。输入的阶码比特耦合到加法器310和311,加法器310和311的输出以及输入B.1.e的阶码比特耦合到阶码最大化和差异方框315,最大化和差异方框315确定基数对齐的必要移位。阶码最大化和差异方框315的输出耦合到移位寄存器320、321和322,这些移位寄存器将输入数据进行移位以实现基数的对齐。由阶码最大化和差异方框315连同移位寄存器320、321和322执行的对齐根据以上参考图1所示和所述的过程操作。
[0044]移位寄存器的输出耦合到两条路径330、331,这两条路径包括比特转换器,用于形成移位2+20比特积和被加数的移位的尾数的二进制补码表示以及使用二进制补码算术执行计算。在实施例中,不需要采用二进制补码算术。因为还不知道所得加法的符号,因此提供了两条路径330、331。通过并行计算路径330、331中的总和及负和提前计算总和的绝对值。比特转换器由比特转换器控制方框335控制,比特转换器控制方框335的输入是进行异或运算的符号比特C.r.s"D.1.s和C.1.s"D.r.s以及被加数B的实部的符号比特B.r.S。左路径330假设加法的正结果,右路径331假设负结果。使用保留进位加法器340、341执行各路径的加法,随后组合(用于二进制补码计算的)调整比特和保留进位加法器345、346的两个输出,后跟超前进位加法器360、361。调整比特来自方框343,方框343基于CMAD运算的输入项的符号比特生成调整比特(作为二进制补码计算的一部分)。由符号生成和绝对值选择方框350控制的多路复用器380和381选择左路径330或右路径331中的结果。
[0045]将两个尾数积和输入被加数一起对齐并随后计算总和的目的是后跟超前进位加法器(360、361)(或涟波进位加法器)的保留进位加法器(340、341)可用于减少计算延迟。或者,将依次使用两个超前进位加法器(或两个涟波进位加法器),这具有较长延迟。
[0046]通过再向加法器宽度增加一个比特来避免尾数积的规格化以节省处理电路和时间。
[0047]对于最终结果的规格化,前导零预测过程370、371用于减少处理延迟。前导零预测允许超前进位加法器中完成的加法与前导“I”比特之前的前导零的数目并行计算。Suzuki等人在IEEE固态电路杂志1996年8月第8期第31卷上的标题为“高速浮点加法的前导零予页期逻辑(Leading-Zero Anticipatory Logic for High-speed Floating PointAddit1n)”中描述了前导“I”比特预测过程,该文档以引用的方式并入本文本。
[0048]对符号生成和绝对值选择方框350的输入是进行异或运算的符号比特C.r.s~D.1.s和C.1.s~D.r.S、被加数B的实部的符号比特B.1.S、以及360的输出的符号比特,如图3的左侧部分所示。在规格化方框390中,通过左移或右移规格化选择的复用器380或381的输出,这样前导I位于基数小数点的左侧,这形成了最终CMAD结果的规格化的尾数(本示例中基数小数点的右侧上的10个比特)。随后在方框390中,根据移位的方向和距离调整来自方框315的阶码。将来自方框350的符号比特、规格化的尾数和调整的阶码组合成浮点格式的最终结果,该最终结果是浮点复合乘加单元的虚部A.1maginary,在图3的底部示为“A.1”。形成A.1的项和因数在图3的底部示为B.1、C.r、D.1、C.1和D.r,这些分别是与 B.1maginary、C.real、D.1maginary、C.1maginary 和 D.real 相同的变量。
[0049]现参见图4,其示出了根据实施例的浮点复合乘加单元的方框图,所述浮点复合乘加单元用于计算复数A的实部A.real。以与图3中所示的类似的方式形成和布置图4示出的复合浮点乘加单元的逻辑元素,且为了简洁起见,下文将不再进一步描述。
[0050]图3和图4示出的单元可实施为多阶段流水线单元以实现较高吞吐量。多阶段流水线单元通常形成为多个运算阶段,按顺序执行这些运算阶段以产生最终结果。然而,在第一阶段为第一输入计算出结果并将该结果传递到第二阶段后,第一阶段现可用于与第二阶段中的处理的执行并行处理第二输入。通过这种方式,每个运算阶段可用于为多个输入同时处理数据。作为该结构的示例,被加数B的实部的尾数,即B.r.m耦合到非第一流水线阶段420。相应地,图3中的被加数B的虚部,即B.1.m耦合到对应第二流水线阶段。
[0051]图4所示的复合浮点乘加单元的顺序阶段被标识为第一阶段410、第二阶段420以及第三阶段430。可在图3中标识类似的顺序阶段。因此,图4所示的第一阶段410用于第一阶段410 —旦将对第一数据集运算的结果传递到第二阶段420就对第二数据集进行运算。类似地,第二阶段420用于第二阶段420 —旦将对第一数据集运算的结果传递到第三阶段430就对第二数据集进行运算。
[0052]现参考图5,其示出了处理系统500的元件的方框图,处理系统500可用于根据实施例执行上文所述的一个或多个方法。处理系统500可包括配备一个或多个输入/输出设备(例如,视频适配器/图形处理器(“GPU”))的处理器510。处理器510可包括中央处理器(“CPU”)/DSP、存储器以及连接到总线520的硬件加速器。
[0053]总线520可是一个或多个任意类型的若干总线架构,包括存储总线或存储控制器、外设总线以及视频总线等等。CPU可包括任意类型的电子数据处理器。存储器可包括任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)、非易失随机读写存储器(“NVRAM”)或其组合等。在实施例中,存储器可包括在开机时使用的ROM以及执行程序时使用的用于数据存储的DRAM。
[0054]视频适配器/GPU提供将处理器耦合到显示器的接口。其它设备可以耦合到处理器,可以利用附加的或更少的接口卡。例如,可使用串行接口卡(未示出)将串行接口提供给打印机。
[0055]处理器还可包括网络接口(未示出),其可以是以太网电缆等有线链路,和/或无线链路以能够与蜂窝通信网络等网络进行通信。网络接口允许处理器通过网络与远程单元进行通信。在实施例中,处理器耦合到局域网或广域网以提供到远程设备(例如,其它处理器、互联网、远程存储设施等等)的通信。
[0056]现参见图6a和6b,其分别示出了在LTE系统的下行传输和上行传输中的基带信号处理的典型实施方式。在各种实施例中,本发明可适用于基站或UE处的信号处理。
[0057]根据本发明实施例,基带信号处理中的浮点复合乘加计算包括接收三个复合格式的基带信号。每个复合格式的基带信号具有一个尾数和一个阶码。在本发明实施例中,复合格式的基带信号还包括一个或多个用于符号的比特。在本发明实施例中,基带信号处理中浮点复合乘加计算的方法包括接收/获得第一基带信号作为输入被加数、从第二基带信号和第三基带信号生成第一积和第二积,其中输入被加数、第一积和第二积分别具有一个尾数和一个阶码;将输入被加数、第一积和第二积中具有较小阶码的两个的尾数移位以与处理器中的输入被加数、第一积和第二积中具有最大阶码的那个的尾数一起对齐;以及将对齐的输入被加数、对齐的第一积和对齐的第二积一起相加。
[0058]在实施例中,通过将第二基带信号的实部/虚部乘以第三基带信号的实部/虚部形成两个积。例如,第一积是第二基带信号的实部和第三基带信号的实部的乘积,第二积是第二基带信号的虚部和第三基带信号的虚部的乘积。在替代性实施例中,第一积是第二基带信号的实部和第三基带信号的虚部的乘积,第二积是第二基带信号的虚部和第三基带信号的实部的乘积。
[0059]应注意,处理系统可包括其它部件。例如,处理系统可包括电源、电缆、母板、可移动存储媒体、机壳等等。这些其它部件,虽然没有示出,但被认为是处理系统的一部分。
[0060]在复合乘加运算中使用上述方法的结果是浮点DSP和硬件加速器的性能和功率效率得到提升。可以实现较高功率效率和较快处理速度。基站和终端设备的无线基带数字信号处理器或片上系统(“S0C”)可以带来许多益处。
[0061]注意的是,除非另有指示,本文所述的功能可以通过人为干涉或没有人为干涉由硬件或软件,或它们的一些组合来执行。在实施例中,除非另有指示,根据编码成执行这些功能的计算机程序代码等代码、软件和/或集成电路等,如上文参考图5所论述的计算机或电子数据处理器等处理器执行这些功能。
[0062]本文呈现的实施例提供了一种计算从第一复合被乘数、第二复合被乘数和复合被加数的浮点复合乘加过程产生的实部的装置和相关方法。该装置由存储器和耦合到该存储器的处理器构成。在实施例中,处理器连同存储器或处理器单独用于形成第一复合被乘数的实部的尾数和第二复合被乘数的实部的尾数的第一尾数积,以及形成第一复合被乘数的虚部的尾数和第二复合被乘数的虚部的尾数的第二尾数积。在另一实施例中,处理器连同存储器或处理器单独还用于形成第一复合被乘数的实部的阶码和第二复合被乘数的实部的阶码的第一阶码总和,形成第一复合被乘数的虚部的阶码和第二复合被乘数的虚部的阶码的第二阶码总和。
[0063]在实施例中,处理器连同存储器或处理器单独还用于在复合被加数的实部的阶码、第一阶码总和以及第二阶码总和中找到最大阶码。在另一实施例中,处理器连同存储器或处理器单独还用于根据相对于阶码间的最大阶码的各自的阶码对齐第一尾数积、第二尾数积和复合被加数的实部的尾数,截断对齐的第一尾数积、第二尾数积和复合被加数的实部的最低位。在另一实施例中,处理器还用于根据对齐的第一尾数积、第二尾数积和复合被加数的实部的符号将对齐的第一尾数积、第二尾数积和复合被加数的实部转换为二进制补码格式。随后由处理器将转换的对齐的第一尾数积、第二尾数积和复合被加数的实部相加以形成浮点复合乘加过程产生的实部的非规格化尾数。通过移位比特规格化浮点复合乘加过程产生的实部的非规格化尾数以向规格化的尾数的基数小数点的左侧产生前导“ I” t匕特。根据移位比特所得的移位距离调整复合被加数的实部的阶码、第一阶码总和以及第二阶码总和之间的最大阶码以向基数小数点的左侧产生前导“ I ”比特。
[0064]在实施例中,处理器连同存储器或处理器单独还用于使用后跟双输入全加法器的保留进位加法器将对齐的第一尾数积、第二尾数积和复合被加数的实部相加。在实施例中,双输入全加法器是超前进位加法器。
[0065]在实施例中,处理器连同存储器或处理器单独还用于在两条路径中使用后跟双输入全加法器的保留进位加法器将对齐的第一尾数积、第二尾数积和复合被加数的实部相力口,其中一条路径是在根据由符号生成和绝对值选择过程生成的控制信号规格化实部的尾数之前选择的。
[0066]在实施例中,处理器连同存储器或处理器单独还用于使用二进制补码算术将对齐的第一尾数积、第二尾数积和复合被加数的实部相加。在实施例中,不需要采用二进制补码算术。
[0067]在实施例中,处理器连同存储器或处理器单独还用于将相加的对齐的第一尾数积、第二尾数积和复合被加数的实部从二进制补码格式转换为符号大小(sign-magnitude)格式。
[0068]在实施例中,处理器连同存储器或处理器单独还用于通过增加用于将对齐的尾数相加的加法器的位宽来补偿截断最低位所造成的精度损失。
[0069]在实施例中,处理器连同存储器或处理器单独用于保留在未将第一尾数积和第二尾数积规格化的情况下将它们相乘所产生的第一尾数积的基数小数点和第二尾数积的基数小数点的位置。
[0070]在实施例中,处理器连同存储器或处理器单独用于将复合被加数的实部的尾数的使用延迟至第二或较晚流水线阶段。
[0071]在实施例中,处理器连同存储器或处理器单独分别还用于计算从第一复合被乘数、第二复合被乘数和复合被加数的浮点复合乘加过程产生的虚部。在另一实施例中,处理器连同存储器或处理器单独用于形成第一复合被乘数的虚部的尾数和第二复合被乘数的实部的尾数的第三尾数积,形成第一复合被乘数的实部的尾数和第二复合被乘数的虚部的尾数的第四尾数积,形成第一复合被乘数的虚部的阶码和第二复合被乘数的实部的阶码的第三阶码总和,形成第一复合被乘数的实部的阶码和第二复合被乘数的虚部的阶码的第四阶码总和,在复合被加数的虚部的阶码、第三阶码总和以及第四阶码总和之间找到最大阶码,根据相对于复合被加数的虚部的阶码、第三阶码总和以及第四阶码总和之间的最大阶码的各自阶码对齐第三尾数积、第四尾数积和复合被加数的虚部的尾数。
[0072]处理器连同存储器还用于截断对齐的第三尾数积、第四尾数积和复合被加数的虚部的最低位,根据对齐的第三尾数积、第四尾数积和复合被加数的虚部的符号将对齐的第三尾数积、第四尾数积和复合被加数的虚部转换为二进制补码格式,将转换的对齐的第三尾数积、第四尾数积和复合被加数的虚部相加以形成浮点复合乘加过程产生的虚部的非规格化尾数,通过移位规格化浮点复合乘加过程产生的虚部的非规格化尾数以向浮点复合乘加过程产生的虚部的规格化尾数的基数小数点的左侧产生前导“I”。以及根据移位所得的移位距离调整复合被加数的虚部的阶码、第三阶码总和以及第四阶码总和之间的最大阶码以向基数小数点的左侧产生前导“I”比特。
[0073]本文呈现的实施例提供了一种计算浮点复合乘加过程产生的实部的装置和相关方法。该装置由存储器和耦合到该存储器的处理器构成。处理器用于计算在第一复合被乘数、第二复合被乘数和复合被加数上运算的浮点复合乘加过程所产生的实部,在复合被加数的实部的阶码、第一复合被乘数的实部的阶码和第二复合被乘数的实部的阶码的第一阶码总和、以及第一复合被乘数的虚部的阶码和第二复合被乘数的虚部的阶码的第二阶码总和之间找到最大阶码,以及根据相对于阶码之间的最大阶码的各自的阶码对齐第一复合被乘数的实部和第二复合被乘数的实部的第一尾数积、第一复合被乘数的虚部和第二复合被乘数的虚部的第二尾数积以及复合被加数的实部的尾数。
[0074]在实施例中,耦合到存储器的处理器或处理器单独还用于截断对齐的尾数的最低位、根据对齐的和截断的第一尾数积、第二尾数积和复合被加数的实部的符号转换对齐的和截断的第一尾数积、第二尾数积和复合被加数的实部,以及将转换的尾数相加以形成非规格化的总和尾数。
[0075]在实施例中,处理器还用于通过移位比特规格化非规格化的总和尾数以向基数小数点的左侧产生前导“I”比特来形成浮点复合乘加过程的实部。在另一实施例中,处理器还用于根据移位所得的比特移位距离调整最大阶码。
[0076]本文呈现的实施例提供了一种用于浮点复合乘加的数字计算的方法和相关设备。该装置由存储器和耦合到该存储器的处理器构成。该方法包括接收输入被加数、第一积和第二积,其中输入被加数、第一积和第二积分别具有一个尾数和一个阶码;将输入被加数、第一积和第二积中的具有较小阶码的两个的尾数移位以与处理器中的输入被加数、第一积和第二积中的具有最大阶码的那个的尾数一起对齐;以及将对齐的输入被加数、对齐的第一积和对齐的第二积相加。
[0077]在实施例中,输入被加数是第一输入的实部,第一积是第二输入的实部和第三输入的实部的乘积,以及第二积是第二输入的虚部和第三输入的虚部的乘积。
[0078]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加包括将对齐的输入被加数和对齐的第一积相加以及在对齐的输入被加数和对齐的第一积的总和中减去对齐的第二积。
[0079]在实施例中,该方法还包括通过将第二输入的实部的尾数与第三输入的实部的尾数相乘形成第一积的尾数,通过将第二输入的虚部的阶码与第三输入的实部的阶码求和形成第一积的阶码,通过将第二输入的虚部的尾数与第三输入的虚部的尾数相乘形成第二积的尾数,以及通过将第二输入的虚部的阶码和第三输入的虚部的阶码求和形成第二积的阶码。
[0080]在实施例中,乘法运算之前未将第二输入的实部的尾数、第三输入的实部的尾数、第二输入的虚部的尾数以及第三输入的虚部的尾数规格化。
[0081]在实施例中,输入被加数是第一输入的虚部,第一积是第二输入的实部和第三输入的虚部的乘积,以及第二积是第二输入的虚部和第三输入的实部的乘积。
[0082]在实施例中,该方法还包括通过将第二输入的实部的尾数与第三输入的虚部的尾数相乘形成第一积的尾数,通过将第二输入的实部的阶码与第三输入的虚部的阶码求和形成第一积的阶码,通过将第二输入的虚部的尾数与第三输入的实部的尾数相乘形成第二积的尾数,以及通过将第二输入的虚部的阶码和第三输入的实部的阶码求和形成第二积的阶码。
[0083]在实施例中,乘法运算之前未将第二输入的实部的尾数、第三输入的实部的尾数、第二输入的虚部的尾数以及第三输入的虚部的尾数规格化。
[0084]在实施例中,第一积是两个非规格化的输入的积。在实施例中,第二积是两个非规格化的输入的积。
[0085]在实施例中,将输入被加数、第一积和第二积中具有较小阶码的两个的尾数移位以与输入被加数、第一积和第二积中具有最大阶码的那个的尾数一起对齐包括将具有较小阶码的两个的尾数右移以与具有最大阶码的那个的尾数一起对齐,其中对齐的输入被加数、对齐的第一积和对齐的第二积具有相同的阶码数。
[0086]在实施例中,该方法还包括,如果对齐的输入被加数、对齐的第一积和对齐的第二积的尾数的位宽超过符合精度要求的位宽,则截断对齐的输入被加数、对齐的第一积和对齐的第二积的一个或多个比特。
[0087]在实施例中,该方法还包括根据输入被加数、第一积和第二积的符号将输入被加数、第一积和第二积转换为二进制补码格式。
[0088]在实施例中,根据输入被加数、第一积和第二积的符号将输入被加数、第一积和第二积转换为二进制补码格式包括根据对齐的输入被加数、对齐的第一积和对齐的第二积的符号将对齐的输入被加数、对齐的第一积和对齐的第二积转换为二进制补码格式。
[0089]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加包括将转换的对齐的输入被加数、转换的对齐的第一积和转换的对齐的第二积相加。
[0090]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加包括通过保留进位加法器和全加法器将对齐的输入被加数、对齐的第一积和对齐的第二积相加。
[0091]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加包括将两条路径中的对齐的输入被加数、对齐的第一积和对齐的第二积相加,其中一条路径根据符号生成和绝对值选择过程生成的控制信号选择。
[0092]本文呈现的实施例提供了一种执行浮点复合乘加过程的数字计算的装置和相关方法。该装置由存储器和耦合到该存储器的处理器构成。处理器用于接收输入被加数、第一积和第二积,其中输入被加数、第一积和第二积分别具有一个尾数和一个阶码;将输入被加数、第一积和第二积中具有较小阶码的两个的尾数移位以与输入被加数、第一积和第二积中具有最大阶码的那个的尾数一起对齐;以及将对齐的输入被加数、对齐的第一积和对齐的第二积相加。
[0093]在实施例中,输入被加数是第一输入的实部,第一积是第二输入的实部和第三输入的实部的乘积,以及第二积是第二输入的虚部和第三输入的虚部的乘积。
[0094]在实施例中,用于将对齐的输入被加数、对齐的第一积和对齐的第二积相加的处理器用于将对齐的输入被加数和对齐的第一积相加以及从对齐的输入被加数和对齐的第一积的总和中减去对齐的第二积。
[0095]在实施例中,处理器还用于通过将第二输入的实部的尾数与第三输入的实部的尾数相乘形成第一积的尾数,通过将第二输入的实部的阶码和第三输入的实部的阶码求和形成第一积的阶码,通过将第二输入的虚部的尾数与第三输入的虚部的尾数相乘形成第二积的尾数,以及将第二输入的虚部的阶码与第三输入的虚部的阶码求和形成第二积的阶码。
[0096]在实施例中,输入被加数是第一输入的虚部,第一积是第二输入的实部和第三输入的虚部的乘积,以及第二积是第二输入的虚部和第三输入的实部的乘积。
[0097]在实施例中,处理器还用于通过将第二输入的实部的尾数与第三输入的虚部的尾数相乘形成第一积的尾数,通过将第二输入的实部的阶码和第三输入的虚部的阶码求和形成第一积的阶码,通过将第二输入的虚部的尾数与第三输入的实虚部的尾数相乘形成第二积的尾数,以及将第二输入的虚部的阶码与第三输入的虚部的阶码求和形成第二积的阶码。
[0098]在实施例中,第一积是两个非规格化的输入的积。在实施例中,第二积是两个非规格化的输入的积。
[0099]在实施例中,将输入被加数、第一积和第二积中具有较小阶码的两个的尾数移位以与输入被加数、第一积和第二积中具有最大阶码的那个的尾数一起对齐的处理器用于将具有较小阶码的两个的尾数右移以与具有最大阶码的那个的尾数一起对齐,其中对齐的输入被加数、对齐的第一积和对齐的第二积具有相同的阶码数。
[0100]在实施例中,处理器还用于,如果对齐的输入被加数、对齐的第一积和对齐的第二积的尾数的位宽超过符合精度要求的位宽,则截断对齐的输入被加数、对齐的第一积和对齐的第二积的一个或多个比特。
[0101]在实施例中,该处理器还包括根据输入被加数、第一积和第二积的符号将输入被加数、第一积和第二积转换为二进制补码格式。
[0102]在实施例中,根据输入被加数、第一积和第二积的符号将输入被加数、第一积和第二积转换为二进制补码格式的处理器还用于根据对齐的输入被加数、对齐的第一积和对齐的第二积的符号将对齐的输入被加数、对齐的第一积和对齐的第二积转换为二进制补码格式。
[0103]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加的处理器还用于将转换的对齐的输入被加数、转换的对齐的第一积和转换的对齐的第二积相加。
[0104]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加的处理器还用于通过保留进位加法器和全加法器将对齐的输入被加数、对齐的第一积和对齐的第二积相加。
[0105]在实施例中,将对齐的输入被加数、对齐的第一积和对齐的第二积相加的处理器还用于将两条路径中的对齐的输入被加数、对齐的第一积和对齐的第二积相加,其中一条路径根据符号生成和绝对值选择过程生成的控制信号选择。
[0106]虽然已参考说明性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的一般技术人员在参考该描述后,会显而易见地认识到说明性实施例的各种修改和组合,以及本发明的其它实施例。因此,希望所附权利要求书涵盖任何此类修改或实施例。
【权利要求】
1.一种浮点复合乘加的数字计算的方法,其特征在于,包括: 接收输入被加数、第一积和第二积,其中所述输入被加数、所述第一积和所述第二积分别具有一个尾数和一个阶码; 将所述输入被加数、所述第一积和所述第二积中具有较小阶码的两个的所述尾数移位以与所述输入被加数、所述第一积和所述第二积中具有最大阶码的那个的所述尾数一起对齐;以及 将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加。
2.根据权利要求1所述的方法,其特征在于,所述输入被加数是第一输入的实部,所述第一积是第二输入的实部和第三输入的实部的乘积,以及所述第二积是所述第二输入的虚部和所述第三输入的虚部的乘积。
3.根据权利要求2所述的方法,其特征在于,将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加包括 将所述对齐的输入被加数和所述对齐的第一积相加以及从所述对齐的输入被加数和所述对齐的第一积的总和中减去所述对齐的第二积。
4.根据权利要求2所述的方法,其特征在于,进一步包括: 通过将所述第二输入的所述实部的尾数与所述第三输入的所述实部的尾数相乘形成所述第一积的尾数; 通过将所述第二输入的所述实部的阶码与所述第三输入的所述实部的阶码求和形成所述第一积的阶码; 通过将所述第二输入的所述虚部的尾数与所述第三输入的所述虚部的尾数相乘形成所述第二积的尾数;以及 通过将所述第二输入的所述虚部的阶码和所述第三输入的所述虚部的阶码求和形成所述第二积的阶码。
5.根据权利要求4所述的方法,其特征在于,乘法运算之前未将所述第二输入的所述实部的所述尾数、所述第三输入的所述实部的所述尾数、所述第二输入的所述虚部的所述尾数以及所述第三输入的所述虚部的所述尾数规格化。
6.根据权利要求1所述的方法,其特征在于,所述输入被加数是第一输入的虚部,所述第一积是第二输入的实部和第三输入的虚部的乘积,以及所述第二积是所述第二输入的虚部和所述第三输入的实部的乘积。
7.根据权利要求6所述的方法,其特征在于,进一步包括: 通过将所述第二输入的所述实部的尾数与所述第三输入的所述虚部的尾数相乘形成所述第一积的尾数; 通过将第二输入的所述实部的阶码与所述第三输入的所述虚部的阶码求和形成所述第一积的阶码; 通过将所述第二输入的所述虚部的尾数与所述第三输入的所述实部的尾数相乘形成所述第二积的尾数;以及 通过将所述第二输入的所述虚部的阶码和所述第三输入的所述实部的阶码求和形成所述第二积的阶码。
8.根据权利要求6所述的方法,其特征在于,乘法运算之前未将所述第二输入的所述实部的所述尾数、所述第三输入的所述实部的所述尾数、所述第二输入的所述虚部的所述尾数以及所述第三输入的所述虚部的所述尾数规格化。
9.根据权利要求1所述的方法,其特征在于,所述第一积是两个非规格化的输入的积。
10.根据权利要求1所述的方法,其特征在于,所述第二积是两个非规格化的输入的积。
11.根据权利要求1所述的方法,其特征在于,将所述输入被加数、所述第一积和所述第二积中具有较小阶码的两个的所述尾数移位以与所述输入被加数、所述第一积和所述第二积中具有最大阶码的那个的所述尾数一起对齐包括 将具有所述较小阶码的两个的所述尾数右移以与具有所述最大阶码的那个的所述尾数一起对齐,其中所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积具有相同的阶码数。
12.根据权利要求1所述的方法,其特征在于,进一步包括: 如果所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积的尾数的位宽超过符合精度要求的位宽,则截断所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积的一个或多个比特。
13.根据权利要求1所述的方法,其特征在于,进一步包括: 根据所述输入被加数、所述第一积和所述第二积的符号将所述输入被加数、所述第一积和所述第二积转换为二进制补码格式。
14.根据权利要求13所述的方法,其特征在于,根据所述输入被加数、所述第一积和所述第二积的符号将所述输入被加数、所述第一积和所述第二积转换为二进制补码格式包括 根据所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积的符号将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积转换为二进制补码格式。
15.根据权利要求14所述的方法,其特征在于,将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加包括 将所述转换的对齐的输入被加数、所述转换的对齐的第一积和所述转换的对齐的第二积相加。
16.根据权利要求1所述的方法,其特征在于,将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加包括 通过保留进位加法器和全加法器将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加。
17.根据权利要求1所述的方法,其特征在于,将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加包括 将两条路径中的所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相力口,其中一条路径根据符号生成和绝对值选择过程生成的控制信号选择。
18.一种执行浮点复合乘加的数字计算的装置,其特征在于,所述装置包括: 存储器;以及 耦合到所述存储器的处理器,所述处理器用于 接收输入被加数、第一积和第二积,其中所述输入被加数、所述第一积和所述第二积分别具有一个尾数和一个阶码, 将所述输入被加数、所述第一积和所述第二积中的具有较小阶码的两个的所述尾数移位以与所述输入被加数、所述第一积和所述第二积中的具有最大阶码的那个的所述尾数一起对齐,以及 将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加。
19.根据权利要求18所述的装置,其特征在于,所述输入被加数是第一输入的实部,所述第一积是第二输入的实部和第三输入的实部的乘积,以及所述第二积是所述第二输入的虚部和所述第三输入的虚部的乘积。
20.根据权利要求19所述的装置,其特征在于,用于将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加的所述处理器用于将所述对齐的输入被加数和所述对齐的第一积相加以及从所述对齐的输入被加数和所述对齐的第一积的总和中减去所述对齐的第二积。
21.根据权利要求19所述的装置,其特征在于,所述处理器还用于: 通过将所述第二输入的所述实部的尾数与所述第三输入的所述实部的尾数相乘形成所述第一积的尾数; 通过将所述第二输入的实部的阶码与所述第三输入的所述实部的阶码求和形成所述第一积的阶码; 通过将所述第二输入的所述虚部的尾数与所述第三输入的所述虚部的尾数相乘形成所述第二积的尾数;以及 通过将所述第二输入的所述虚部的阶码和所述第三输入的所述虚部的阶码求和形成所述第二积的阶码。
22.根据权利要求18所述的装置,其特征在于,所述输入被加数是第一输入的虚部,所述第一积是第二输入的实部和第三输入的虚部的乘积,以及所述第二积是所述第二输入的虚部和所述第三输入的实部的乘积。
23.根据权利要求22所述的装置,其特征在于,所述处理器还用于: 通过将所述第二输入的所述实部的尾数与所述第三输入的所述虚部的尾数相乘形成所述第一积的尾数; 通过将第二输入的所述实部的阶码与所述第三输入的所述虚部的阶码求和形成所述第一积的阶码; 通过将所述第二输入的所述虚部的尾数与所述第三输入的所述实部的尾数相乘形成所述第二积的尾数;以及 通过将所述第二输入的所述虚部的阶码和所述第三输入的所述实部的阶码求和形成所述第二积的阶码。
24.根据权利要求18所述的装置,其特征在于,所述第一积是两个非规格化的输入的积。
25.根据权利要求18所述的装置,其特征在于,所述第二积是两个非规格化的输入的积。
26.根据权利要求18所述的装置,其特征在于,用于将所述输入被加数、所述第一积和所述第二积中具有较小阶码的两个的所述尾数移位以与所述输入被加数、所述第一积和所述第二积中具有最大阶码的那个的所述尾数一起对齐的所述处理器用于 将具有所述较小阶码的两个的所述尾数右移以与具有所述最大阶码的那个的所述尾数一起对齐,其中所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积具有相同的阶码数。
27.根据权利要求18所述的装置,其特征在于,所述处理器还用于: 如果所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积的尾数的位宽超过符合精度要求的位宽,则截断所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积的一个或多个比特。
28.根据权利要求18所述的装置,其特征在于,所述处理器还用于: 根据所述输入被加数、所述第一积和所述第二积的符号将所述输入被加数、所述第一积和所述第二积转换为二进制补码格式。
29.根据权利要求28所述的装置,其特征在于,根据所述输入被加数、所述第一积和所述第二积的符号将所述输入被加数、所述第一积和所述第二积转换为二进制补码格式的所述处理器还用于 根据所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积的符号将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积转换为二进制补码格式。
30.根据权利要求29所述的装置,其特征在于,将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加的所述处理器还用于 将所述转换的对齐的输入被加数、所述转换的对齐的第一积和所述转换的对齐的第二积相加。
31.根据权利要求18所述的装置,其特征在于,用于将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加的所述处理器还用于 使用保留进位加法器和全加法器将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加。
32.根据权利要求18所述的装置,其特征在于,用于将所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相加的所述处理器还用于 将两条路径中的所述对齐的输入被加数、所述对齐的第一积和所述对齐的第二积相力口,其中一条路径根据符号生成和绝对值选择过程生成的控制信号选择。
【文档编号】G06F7/57GK104246690SQ201280072527
【公开日】2014年12月24日 申请日期:2012年5月11日 优先权日:2012年4月20日
【发明者】孙彤, 陈伟钟, 程志坤, 郭元斌 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1