CN101171569B - 低功率阵列乘法器及其运算方法 - Google Patents

低功率阵列乘法器及其运算方法 Download PDF

Info

Publication number
CN101171569B
CN101171569B CN2006800156583A CN200680015658A CN101171569B CN 101171569 B CN101171569 B CN 101171569B CN 2006800156583 A CN2006800156583 A CN 2006800156583A CN 200680015658 A CN200680015658 A CN 200680015658A CN 101171569 B CN101171569 B CN 101171569B
Authority
CN
China
Prior art keywords
array
multiplier
array element
operand
carry propagate
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
CN2006800156583A
Other languages
English (en)
Other versions
CN101171569A (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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101171569A publication Critical patent/CN101171569A/zh
Application granted granted Critical
Publication of CN101171569B publication Critical patent/CN101171569B/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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • G06F7/5312Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
    • 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
    • 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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3868Bypass control, i.e. possibility to transfer an operand unchanged to the output

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)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Control Of Eletrric Generators (AREA)
  • Amplifiers (AREA)
  • Engine Equipment That Uses Special Cycles (AREA)
  • Advance Control (AREA)
  • Oscillators With Electromechanical Resonators (AREA)

Abstract

本发明提供一种阵列乘法器,其包含包括多个阵列元件的部分乘积阵列以及最终进位传播加法器。将小于所述部分乘积阵列的相应尺度的运算数朝向所述阵列的最高有效行或列移位,以降低用于计算所述运算数的乘积的阵列元件的数目。可通过切断到达所述阵列元件的功率或通过用前导零填补所述移位运算数来减少未使用的阵列元件中的切换活动。可通过在所述部分乘积阵列中具有绕过非实质阵列元件的旁路线且通过将部分总和及进位直接馈入到所述最终进位传播加法器来实现额外的功率节省。还可绕过所述进位传播加法器的元件以实现进一步的功率减小。

Description

低功率阵列乘法器及其运算方法
技术领域
本发明大体上涉及用于数字信号处理器的运算电路,且更明确地说,涉及一种用于计算两个运算数的乘积的阵列乘法器。
背景技术
便携式电子装置在现代生活中已变得普遍存在。便携式电子装置中的两个必然趋势是功能性增加和尺寸减小。功能性增加需求要求计算能力增加——明确地说,不断加快且更强大的处理器。尺寸减小要求减小用于向装置中的处理器和其它电子器件供电的电池的尺寸。因此,制造商面临增加计算能力以及因此增加电力要求且同时减小电池尺寸的似乎矛盾的目标。尽管电池技术的改进部分弥补了所述问题,但电池尺寸减小以及对更多计算能力的需求向所有便携式电子装置电子器件且特别是对处理器强加严格功率预算。
乘法器是许多数字信号处理器的核心组件。阵列乘法器由于其相对简单且规则的结构而成为一种普遍架构。然而,阵列乘法器与其它乘法器架构相比具有一些缺点,即在等待时间和功率消耗方面存在缺点。在阵列乘法器中,结果花费时间传播通过阵列。结果传播通过阵列造成阵列中的晶体管在确定最终值之前切换多次。这种切换活动是阵列乘法器中功率耗散的主要原因。
发明内容
本发明涉及一种阵列乘法器,其与常规阵列乘法器相比具有缩短的等待时间和较低功率消耗。所述阵列乘法器包含:部分乘积阵列,其包括排列成行和列的多个阵列元件以计算和合计部分总和;以及进位传播加法器,其包括多个加法器元件以产生最终结果位。对于N×M位准确乘法(其中N和M分别是被乘数和乘数的位宽度),部分乘积阵列包含N个行和M个列。然而,存在位精确度低于N或M的数据需要由相同N×M位乘法器处理的情况。在此类情况下,被乘数和/或乘数可移位,使得部分乘积阵列中并非所有阵列元件均被使用。关闭未使用的阵列元件或阻止其进行切换,从而导致较低功率消耗。
在一些实施例中,额外的等待时间和功率节省可通过在部分乘积阵列中添加旁路线以绕过落在临界延迟路径中的未使用的阵列元件和/或加法器元件来实现。内部旁路线允许内部阵列元件直接输出结果位,而不需要将结果位向下缓慢移动通过临界延迟路径中的未使用的阵列元件和/或加法器元件。在一些实施例中,可将运算数任意移位任何量,即以1位粒度来移位。在这些实施例中,运算数的移位量由运算数的长度规定。当运算数的MSB(最高有效位)与部分乘积阵列的最高有效行或列对准时,实现等待时间和功率的最大节省。在使用较少旁路线的其它实施例中,运算数的移位量取决于旁路粒度的位置。在这些实施例中,运算数可移位以将运算数的最低有效位与阵列的预定行或列对准。在任何情况下,只要运算数的位精确度小于阵列的最大尺寸,就能通过所揭示的技术来实现功率和等待时间两者的缩减。如果旁路线延伸超过进位传播加法器,那么可实现功率和等待时间要求的进一步缩减。
附图说明
图1是两个运算数相乘的表格形式的图形说明。
图2是用于将两个运算数相乘的阵列乘法器的第一实施例的图形说明。
图3A和3B是图2的阵列乘法器中的部分乘积阵列的阵列元件的图形说明。
图3C、3D和3E是图2的阵列乘法器中的进位传播加法器的加法器元件的图形说明。
图4是图2的阵列乘法器执行4×3乘法运算的图形说明。
图5是具有提供1位旁路粒度的旁路线的阵列乘法器的第二实施例的图形说明。
图6A和6B是图5的阵列乘法器中的部分乘积阵列的阵列元件的图形说明。
图7是经配置以执行4×3乘法运算的图5的阵列乘法器的图形说明。
图8是具有提供粗旁路粒度的旁路线的阵列乘法器的第三实施例的图形说明。
图9是经配置以执行4×3乘法运算的阵列乘法器的第三实施例的图形说明。
图10是经配置以执行6×6乘法运算的阵列乘法器的第三实施例的图形说明。
图11是经配置以执行8×8乘法运算的阵列乘法器的第三实施例的图形说明。
图12是经配置以执行5×4乘法的阵列乘法器的第三实施例的图形说明。
图13是具有经延伸以包含进位传播加法器元件的旁路线的阵列乘法器的第四实施例的图形说明。
图14是用旁路电路增强的进位传播加法器元件的图形说明。
图15是经配置以执行4×3乘法运算的具有提供1位旁路粒度的旁路线的阵列乘法器的第四实施例的图形说明。
图16是具有提供1位旁路粒度的旁路线的阵列乘法器的第五实施例的图形说明。
图17是经配置以执行4×3乘法运算的阵列乘法器的第五实施例的图形说明。
图18是经配置以执行6×6乘法运算的阵列乘法器的第五实施例的图形说明。
图19是经配置以执行8×8乘法运算的阵列乘法器的第五实施例的图形说明。
具体实施方式
图1以表格形式说明用于将N位被乘数aN、aN-1、......、a1、a0与M位乘数bM、bM-1、......、b1、b0相乘的算法。N位被乘数和M位乘数两者均为二进制数字。乘法过程中的第一步骤是形成被乘数与乘数位的部分乘积。被乘数的每一位与乘数的第一位相乘以形成第一行部分乘积,与乘数的第二位相乘以形成第二行部分乘积,与乘数的第三位相乘以形成第三行部分乘积等等,直到到达乘数的最后位为止。将第一行之后的每一行部分乘积相对于先前行移位1位位置。接着对每一列中的部分乘积与进位进行求和以获得运算数的最终乘积。
图2说明实施图1的乘法算法的示范性阵列乘法器10,其中N=M=8。阵列乘法器10包含具有N×M阵列元件14的部分乘积阵列12、具有N个加法器元件32的进位传播加法器30和相关联的控制电路40。部分乘积阵列12计算被乘数与乘数位的部分乘积,且渐进地对部分乘积进行求和。将最终部分总和以及部分进位输出到进位传播加法器30,所述进位传播加法器30将进位传播通过乘积的最高有效位(MSB)部分。最终乘积的结果位在阵列乘法器10的输出15处呈现。在图2所示的8×8实例中,第一八个结果位由部分乘积阵列12的第一列中的各个阵列元件14直接输出。最后八个位由进位传播加法器30的各个加法器元件32输出。控制电路40准备运算数(即,被乘数和乘数),且基于运算数长度来配置部分乘积阵列12,如下文将更完整描述。
部分乘积阵列12包括排列成N列和M行的N×M阵列元件14。在以下论述中,指数i和j分别表示部分乘积阵列12的列和行,其中i=0、1、......N-1,且j=0、1、......M-1。出于说明目的在图2中以对角线形式展示列。部分乘积阵列12中的每一阵列元件14计算各自被乘数和乘数位的部分乘积,且产生部分总和和进位值。第一列(对应于被乘数的最低有效位,其中i=0)中的阵列元件14的部分总和被直接输出且形成最终乘积的LSB部分的结果位。最后行(对应于乘数的最高有效位,其中j=M-1)中的阵列元件14的部分总和被输出到进位传播加法器30中的相应加法器元件32。唯一例外是第一列(即,i=0)与最后行(即,j=M-1)相交的阵列元件14。在i=0且j=M-1处的阵列元件14仅将进位输出发送到进位传播加法器30,且其总和输出形成最终乘积的位。所有其它阵列元件14将部分总和输出到随后阵列元件14。第一M-1行中的阵列元件14将进位值输出到同一列中的随后阵列元件14。最后行(对应于乘数的最高有效位,其中j=M-1)中的阵列元件14将其进位输出馈入到进位传播加法器30中的相应加法器元件32。
图3A和3B更详细说明示范性阵列元件14。图3A展示阵列元件14的一般结构,其可在部分乘积阵列12的所有位置处使用。图3B说明适用于部分乘积阵列12中的特定位置的阵列元件14的专门形式,如下文将描述。
图3A所示的阵列元件14包括与门16和全加法器18。与门16计算被乘数xi与乘数yj的相应位的部分乘积。加法器18接收包括来自与门16的部分乘积xi.yj、总和输入SIN和进位输入GIN的输入值,且计算包括部分总和SOUT和进位值GOUT的输出值。对于部分乘积阵列12的第一行(对应于乘数的最低有效位,其中j=0)和最后列(对应于被乘数的最高有效位,其中i=N-1)中的阵列元件14,总和输入SIN为零。这些阵列元件14中的每一者可具有半加法器来代替全加法器18,如图3B所示。对于所有其它阵列元件14,总和输入SIN由部分乘积阵列12的第i+1列与第j-1行中的在前阵列元件14提供。第一行中的阵列元件14的进位输入为零。对于所有其它阵列元件14,进位输入由同一列、在前行中的在前阵列元件14提供。
进位传播加法器30包含N个加法器元件32的线性阵列,如图3C-3E所示。图3C展示加法器元件32的一般结构,其可在进位传播加法器30的所有位置处使用。图3D和3E说明适用于部分乘积阵列12中的特定位置的加法器元件32的专门形式,如下文将描述。
图3C所示的加法器元件32包括全加法器34,其接收总和输入SIN以及两个进位输入CIN和Cin,且产生总和及进位输出SOUT和COUT。总和输入SIN和进位输入CIN由部分乘积阵列12供应,其中Cin来自LSB侧的相邻加法器元件32。进位传播加法器30的LSB端的第一加法器元件32将具有Cin=0,或者可使用半加法器来代替全加法器34,如图3D所示。最后加法器元件32将具有SIN=0,或者可使用半加法器来代替全加法器,如图3E所示。除最后加法器元件32外的所有加法器元件的总和输入SIN来自对应于最后行的阵列元件14,其中j=M-1且i≠N-1。进位传播加法器30将进位传播通过运算数的最终乘积的MSB部分。最终乘积的LSB部分是从第一列(其中i=0)的阵列元件14的总和输出产生的。
控制电路40包含控制逻辑42,其可在硬件、固件或软件中实施。控制逻辑42配置部分乘积阵列12,且确定如何将运算数输入到部分乘积阵列12。可将长度小于部分乘积阵列的最大宽度的运算数移位一个或一个以上位置。如下文更详细描述,控制逻辑42确定当输入到部分乘积阵列12时运算数的位移或将运算数移位多少位置。
在运算中,将被乘数的位供应到部分乘积阵列12的各个列中的阵列元件14,且将乘数的位供应到部分乘积阵列12的各个行中的阵列元件14。部分乘积阵列12中的部分总和的计算一次将一行传播通过部分乘积阵列12。部分乘积阵列12的处于第一行之后的每一行中的阵列元件14必须使用来自先前行中的阵列元件14的结果来完成计算。因而,部分乘积阵列12的一些阵列元件14将在确定最终值之前多次改变状态。
第一实施例
图4说明一种用于当一个或两个运算数的长度小于部分乘积阵列12的最大长度时减少由阵列乘法器10耗散的功率的示范性方法。图4说明使用8×8阵列乘法器10将4位被乘数与3位乘数相乘。如图4所示,将被乘数和乘数两者输入到部分乘积阵列12处于移位位置中。也就是说,将运算数朝向部分乘积阵列12的最高有效列或行移位。在图4所示的实施例中,运算数经移位以将运算数的最高有效位分别与部分乘积阵列12的最高有效列和行对准。将运算数朝向部分乘积阵列12的最高有效位位置移位减少了计算运算数乘积所需要的阵列元件14的数目。进行计算所需的阵列元件14和加法器元件32在图4中说明为实心黑色正方形。未使用的阵列元件14和加法器元件32说明为白色正方形。用对角线加阴影的阵列元件14和加法器元件32对于位宽度(此实例中,=4)小于部分乘积阵列12的最大尺寸(此实例中,=8)的运算数的相乘并不是绝对必要的。最终乘积的结果位在阵列乘法器10的输出15处呈现。在图4所示的4×3实例中,由对应于X0,Y0、X0,Y1和X0,Y2的阵列元件14输出的部分总和表示结果的三个LSB。然而,这些阵列元件14的部分总和必须向下缓慢移动通过加阴影的阵列元件14(由参考标号103指示)和加法器元件32(由参考标号104指示)以到达输出15。
可采取各种措施来减少部分乘积阵列12的处于临界延迟路径外部的未使用的元件14(那些元件展示为白色正方形)中的切换活动。为了减少处于临界延迟路径外部的未使用的阵列元件14中的功率消耗,控制电路40可简单地切断到达部分乘积阵列12中的未使用的阵列元件14的功率。或者,控制电路40可在如图4所示的最低有效位位置中用前导零(对于被乘数和乘数分别由参考标号101和102指示)来填补运算数,以减少部分乘积阵列12的未使用的阵列元件14中的切换活动。请注意,当一串连续的前导零出现在输入被乘数和乘数的最低有效位位置中时,列和行中对应于前导零的阵列元件14不改变状态,且因此使用较少功率。
在图4所示的实施例中,即使需要加阴影的阵列元件14和加法器元件32来用于计算也不能关闭这些元件,因为结果必须向下缓慢移动到输出15。在下文描述的随后实施例中,将描述用以减少非实质的阵列元件14(由参考标号103指示)和加法器元件32(由参考标号104指示)中的功率消耗的技术。
控制电路40基于运算数长度来确定将运算数移位多少。在上文给出的实例中,运算数经移位以使得运算数的最高有效位与部分乘积阵列12的最高有效列和行对准。在上文给出的实例中,在前四个位位置中用四个前导零101来填补4位被乘数,以产生含有经移位的被乘数的8位输入字。控制逻辑42在前五个位位置中用5个前导零102来填补3位乘数,以产生含有经移位的乘数的第二8位输入字。
假定每一阵列元件14和加法器元件32具有延迟T,那么在NMAX×MMAX乘法器中计算两个数的乘积所需要的总时间为NMAX×T+MMAX×T。对于8×8乘法器,延迟或等待时间为16T。因此,在常规乘法器中,延迟保持相同,而不管运算数的长度如何。然而,在图2-4所示的阵列乘法器中,延迟依据运算数长度而变化。举例来说,在图4说明的4×3乘法的情况下,总延迟为(4+3)×T或7T,比常规8×8乘法器节省了11T。因此,随着运算数尺寸减小,计算两个运算数的乘积所需要的时间(等待时间)存在相应缩减。
第二实施例
图5-7说明阵列乘法器10的第二示范性实施例。第二实施例类似于图2-4所示的第一实施例。因此,为了简洁和清楚起见,将使用相同参考标号来指示所述两个实施例中的类似组件,且以下论述将关注第二实施例与第一实施例不同的方面。
根据第二实施例的阵列乘法器10包含:部分乘积阵列12,其包括排列成列和行的多个阵列元件14;进位传播加法器30,其包括加法器元件32的线性阵列;以及控制电路40。部分乘积阵列12中的阵列元件14和进位传播加法器30中的加法器元件32如先前描述那样互连但具有以下差异。在阵列乘法器10的第二实施例中,部分乘积阵列12包括旁路线22,其将垂直列(与先前描述的对角列不同)中的阵列元件14连接到进位传播加法器30的相应加法器元件32的总和输入SIN。来自部分乘积阵列12的最后行中的阵列元件14的总和输出连接到旁路线22而不是进位传播加法器30。旁路线22允许内部阵列元件14将部分总和直接输出到进位传播加法器30,从而绕过非实质的阵列元件14。应注意,部分乘积阵列12的MSB角落和LSB角落中的阵列元件14(由对角线指示)不连接到旁路线22,因为这些阵列元件14没有任何其它阵列元件14与其成一直线。
图6A和6B更详细说明第二实施例的示范性阵列元件14。图6A说明第二实施例的阵列元件14的一般结构。图6B说明针对部分乘积阵列12的最后行和第一列中的阵列元件14的阵列元件14专门形式。在图6A所示的一般形式中,每一阵列元件14包括与门16和全加法器18,如先前描述。另外,阵列元件包括旁路电路20。与门16计算被乘数xi和乘数yj的相应位的部分乘积。加法器18接收包括来自与门16的部分乘积xi.yj、总和输入SIN和进位输入CIN的输入值,且计算部分总和以及进位值。旁路电路20选择性地将由加法器18输出的部分总和连接到总和输出SOUT或连接到旁路线22。对于沿着每一垂直旁路线22的最后阵列元件14,旁路电路20选择性地将由加法器18输出的部分总和连接到图6B所示的旁路线22。请注意,在图5所示的实施例中,在图6B中的专门阵列元件14中没有总和输出SOUT。因而,可依据运算数的位宽度在一时间从部分乘积阵列12处取出运算数的乘积,这缩短了与乘法运算相关联的等待时间。
当如图4所示那样移位运算数以减少切换活动和等待时间时,需要将来自一个或一个以上选定的内部阵列元件14的结果输出到进位传播加法器30,且绕过任何介入的非实质阵列元件,所述非实质阵列元件由图4中的阴影正方形展示且由参考标号103指示。在图5所示的实施例中,实质阵列元件14的总和输出响应于来自控制电路40的控制信号而通过旁路电路20连接到旁路线22,且将所有非实质阵列元件14断开连接。一般来说,每一垂直线的阵列元件14中只有一个阵列元件14在任何给定时间均连接到旁路线22。
图7说明图4所示的相同4×3乘法运算的各种阵列元件14与垂直旁路线22的连接状态。图7中的实心黑色阵列元件14表示用于4×3乘法运算的连接到旁路线22的阵列元件14。被绕过以实现功率节省的非实质阵列元件14在图7中由字母B识别且由参考标号103共同指示。即使不使用结果来进行计算也可连接以对角线展示的阵列元件14,以便在输出处提供可接受的电压电平。或者,可将以对角线展示的未使用的阵列元件14与旁路线22断开连接,且可将旁路线22拉至接地。请注意,由于另外绕过非实质阵列元件103,所以图7中的实施例相对于图4中的实施例具有额外的功率节省。
在图7所示的实施例中,控制电路40除了准备运算数以外还使用控制寄存器44来配置部分乘积阵列12。在一个实施例中,连接到旁路线22的每一阵列元件44具有相应的单一位控制寄存器44。控制逻辑42确定哪些阵列元件14应当连接到旁路线22,且通过将“1”写入到相应控制寄存器44来启用用于选定阵列元件14的旁路电路20。控制寄存器44中的“0”将阵列元件14与旁路线22断开连接。因此,旁路电路20选择性地将总和输出连接到旁路线22以及断开连接,这取决于控制寄存器44中的位。在阵列乘法器10的输出15处产生最终乘积的结果位。
第三实施例
图5-7所示的阵列乘法器10允许用1位粒度来移位运算数。所述1位粒度允许具有任何尺寸的运算数完全移位以将运算数的最高有效位分别与部分乘积阵列的最高有效列和行对准。然而,旁路线22可向部分乘积阵列12中引入寄生电容。因此,可能不需要减小旁路线22的数目和长度。
图8说明阵列乘法器10的另一实施例,其使用较少旁路线22且因此减小寄生电容,但其具有较粗粒度。阵列乘法器10包含:部分乘积阵列12,其包括多个阵列元件14;进位传播加法器30,其包括加法器元件32的线性阵列;以及控制电路40,如先前所述。控制电路40包括如先前描述那样进行操作的控制逻辑42和控制寄存器44。在此实施例中,存在四个控制寄存器,编号为1-4以供参考。部分乘积阵列12包括旁路线22,其将部分乘积阵列12的选定阵列元件14连接到进位传播加法器30。连接到旁路线22的阵列元件14经编号以指示控制阵列元件14的相应控制寄存器44。
图8所示的阵列乘法器10具有三个粒度水平或运算模式,指示为4×3模式、6×6模式和8×8模式。在4×3运算模式中,阵列乘法器10可将用于被乘数的长度为4位和用于乘数的长度为3位的运算数相乘。在6×6运算模式中,阵列乘法器10可将用于被乘数的长度为6位和用于乘数的长度为6位的运算数相乘。在8×8运算模式中,阵列乘法器10可将用于被乘数的长度为8位和用于乘数的长度为8位的运算数相乘。控制逻辑42配置控制寄存器,且以如图9-11所示的三种运算模式来填补运算数。图9说明4×3模式,图10说明6×6模式,且图11说明8×8模式。在图9-11中,以黑色展示的阵列元件14连接到旁路线22。一般来说,控制逻辑42选择使所使用的阵列元件14的数目达到最小的运算模式。举例来说,为了执行5位被乘数与4位乘数的相乘,控制逻辑42选择6×6运算模式。对于4×3和6×6模式,必须将乘数和被乘数朝向MSB和LSB位置移位,如图9和10中所示。
图12说明阵列乘法器10的第三实施例可如何用于执行5×4乘法运算。对于此乘法,控制电路40选择6×6模式。将被乘数移位两个位位置以将被乘数的LSB与部分乘积阵列12的第三列(i=2)对准。相反,将乘数移位四个位位置以将乘数的MSB与部分乘积阵列12的MSB行对准。请注意,可将乘数仅移位三个位位置以将乘数的LSB与部分乘积阵列12的LSB第四行对准。然而,后一种方法将意味着即使最后行对计算没有作用部分总和也将必须向下缓慢移动通过最后行。因此,第三实施例允许以1位粒度来移位乘数,但对于被乘数仅允许粗粒度移位。补偿益处是较少旁路线、较少控制寄存器以及较小寄生电容。
第四实施例
在前三个实施例种,仅绕过部分乘积阵列12的非实质元件来减少功率消耗。然而,图5所示的垂直旁路线22可延伸超过进位传播加法器30,使得还可绕过进位传播加法器30的非实质加法器元件32。部分乘积阵列12和进位传播加法器30的结构与第二实施例相同,不同之处是旁路线延伸超过进位传播加法器30并直接连接到阵列乘法器10的输出15。在第四实施例中,如图13所示,最后行中的阵列元件14构造为如图6A所示,且最后行中的阵列元件14的总和输出连接到进位传播加法器30中的各个加法器元件32的总和输入。图12中的进位传播加法器30具有如图14所示的经修改加法器元件32。图14说明包括全加法器34和旁路开关36的加法器元件32的一般结构。第一和最后加法器元件可使用半加法器,如先前描述。当需要绕过元件32中的加法器34时,断开旁路开关36以将加法器元件32与旁路线22断开连接。在必须使用加法器元件32来进行加法时,闭合图13中的旁路开关。
举例来说,在图15中展示使用阵列乘法器10的第四实施例的4×3乘法。用于4×3乘法运算的非实质阵列元件14和加法器元件32已经用字母“B”来标记。对于单一位粒度,控制寄存器44将包括用于每一经修改加法器元件32的单一位寄存器以及用于配置旁路开关36的每一阵列元件。
第五实施例
图16说明对于被乘数具有粗粒度的阵列乘法器的第五实施例。此实施例与第三实施例相同,不同之处是旁路线延伸超过进位传播加法器30。部分乘积阵列12和进位传播加法器30的结构除了以下差异外与第二实施例相同。在图16所示的第五实施例中,最后行中的阵列元件14如图6A中展示,且最后行中的阵列元件14的总和输出连接到进位传播加法器30中的各个加法器元件的总和输入。进位传播加法器30使用如图14所示的经修改加法器元件32,其包括全加法器34和旁路开关36。当需要绕过加法器元件32时,断开旁路开关36以将加法器元件32与旁路线22断开连接。当必须使用加法器元件32来进行加法时,闭合旁路开关36。
阵列乘法器的第五实施例具有三种配置或运算模式——4×3模式、6×6模式和8×8模式。仅需要四个控制寄存器44。控制逻辑42配置控制寄存器44,且以如图17-19所示的三种运算模式来填补运算数。图17说明4×3模式,图18说明6×6模式,且图19说明8×8模式。在图17-19中,以黑色展示的阵列元件14连接到旁路线22。一般来说,控制逻辑42选择使所使用的阵列元件14的数目达到最小的运算模式。举例来说,为了执行5位被乘数与4位乘数的相乘,控制逻辑42选择6×6运算模式。对于4×3和6×6模式,必须将乘数和被乘数朝向MSB和LSB位置移位,如图17和18中所示。如先前所述,移位被乘数以依据旁路粒度而将被乘数的LSB与预定列对准。移位乘数以将乘数的MSB与部分乘积阵列12的MSB行对准。
当然,可在不脱离本发明实质特征的情况下用与本文明确陈述的那些方式不同的其它方式来实行本发明。应当在所有方面将本发明实施例视为说明性的而并非限制性的,并希望属于所附权利要求书的含义和等效范围内的所有改变均包含在其中。

Claims (20)

1.一种将两个运算数相乘的方法,其包含:
将两个运算数输入到阵列乘法器中,其中所述阵列乘法器包含含有N×M个阵列元件的阵列和最终进位传播加法器,使得至少一个运算数朝向所述阵列的最高有效行或列位移,以减少用于计算所述运算数的乘积的阵列元件的数目;以及
在所述阵列乘法器中将所述运算数相乘。
2.根据权利要求1所述的方法,其中将两个运算数输入到阵列乘法器中包含将所述运算数输入到所述阵列乘法器,使得每一位移运算数的最高有效位与所述阵列的最高有效位对准。
3.根据权利要求1所述的方法,其中将两个运算数输入到阵列乘法器包含将所述运算数输入到所述阵列乘法器,使得至少一个运算数的最低有效位与所述阵列的预定行或列对准。
4.根据权利要求1所述的方法,其进一步包含在最低有效位位置中用一个或一个以上零填补每一位移运算数,以防止未使用的阵列元件的切换。
5.根据权利要求1所述的方法,其进一步包含切断到达未使用的阵列元件的功率。
6.根据权利要求1所述的方法,其进一步包含通过依据所述运算数的位宽度在一时间从所述阵列乘法器处取出所述运算数的乘积来缩短等待时间。
7.根据权利要求1所述的方法,其进一步包含将选定阵列元件连接到所述最终进位传播加法器以绕过所述选定阵列元件与所述最终进位传播加法器之间的未使用的阵列元件。
8.根据权利要求7所述的方法,其中将选定阵列元件连接到所述最终进位传播加法器包含产生控制信号且响应于所述控制信号选择性地将所述选定阵列元件的输出连接到所述最终进位传播加法器。
9.根据权利要求1所述的方法,其进一步包含将选定阵列元件连接到所述阵列乘法器的输出以绕过所述进位传播加法器。
10.根据权利要求9所述的方法,其中将选定阵列元件连接到所述阵列乘法器的输出包含产生控制信号且响应于所述控制信号选择性地将所述选定阵列元件的输出连接到所述阵列乘法器的各个输出。
11.一种阵列乘法器,其包含:
阵列,其包含排列成行和列的多个阵列元件;
最终进位传播加法器,其以操作形式连接到所述阵列;以及
控制逻辑装置,其用于将两个运算数输入到所述阵列,使得至少一个运算数朝向所述阵列的最高有效行或列位移,以减少用于计算所述运算数的乘积的阵列元件的数目。
12.根据权利要求11所述的阵列乘法器,其中所述控制逻辑装置将所述运算数输入到所述阵列乘法器,使得每一位移运算数的最高有效位与所述阵列的最高有效行或列对准。
13.根据权利要求11所述的阵列乘法器,其中所述控制逻辑装置将所述运算数输入到所述阵列乘法器,使得每一位移运算数的最低有效位与所述阵列的预定列对准。
14.根据权利要求11所述的阵列乘法器,其中所述控制逻辑装置在最低有效位位置中用一个或一个以上零填补每一位移运算数,以防止未使用的阵列元件的切换。
15.根据权利要求11所述的阵列乘法器,其中所述控制逻辑装置切断到达未使用的阵列元件的功率。
16.根据权利要求11所述的阵列乘法器,进一步其中所述控制逻辑装置依据所述运算数的位宽度在一时间从所述阵列乘法器处取出所述运算数的乘积。
17.根据权利要求11所述的阵列乘法器,其中所述控制逻辑装置将选定阵列元件耦合到所述最终进位传播加法器,以绕过所述选定阵列元件与所述最终进位传播加法器之间的未使用的阵列元件。
18.根据权利要求17所述的阵列乘法器,其中所述控制逻辑装置通过为选定阵列元件产生控制信号而将所述选定阵列元件耦合到所述最终进位传播加法器,且其中所述选定阵列元件响应于所述控制信号而将总和输出到所述最终进位传播加法器。
19.根据权利要求11所述的阵列乘法器,其中所述控制逻辑装置将选定阵列元件耦合到所述阵列乘法器的各个输出以绕过所述进位传播加法器。
20.根据权利要求19所述的阵列乘法器,其中所述控制逻辑装置通过为选定阵列元件产生控制信号而将所述选定阵列元件耦合到所述阵列乘法器的各个输出,且其中所述选定阵列元件将总和直接输出到所述阵列乘法器的各个输出。
CN2006800156583A 2005-03-17 2006-03-17 低功率阵列乘法器及其运算方法 Expired - Fee Related CN101171569B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/083,698 2005-03-17
US11/083,698 US7546331B2 (en) 2005-03-17 2005-03-17 Low power array multiplier
PCT/US2006/009706 WO2006102076A1 (en) 2005-03-17 2006-03-17 Low power array multiplier

Publications (2)

Publication Number Publication Date
CN101171569A CN101171569A (zh) 2008-04-30
CN101171569B true CN101171569B (zh) 2010-05-19

Family

ID=36658776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800156583A Expired - Fee Related CN101171569B (zh) 2005-03-17 2006-03-17 低功率阵列乘法器及其运算方法

Country Status (10)

Country Link
US (1) US7546331B2 (zh)
EP (1) EP1859343B1 (zh)
JP (1) JP2008533617A (zh)
KR (1) KR100986405B1 (zh)
CN (1) CN101171569B (zh)
AT (1) ATE447736T1 (zh)
BR (1) BRPI0609038A2 (zh)
DE (1) DE602006010184D1 (zh)
IL (1) IL185957A0 (zh)
WO (1) WO2006102076A1 (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720901B1 (en) * 2006-05-26 2010-05-18 Altera Corporation Multiplier operable to perform a variety of operations
WO2010045378A2 (en) * 2008-10-14 2010-04-22 The Research Foundation Of State University Of New York (Sunyrf) Generating partial sums
US8918446B2 (en) * 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers
US10157060B2 (en) 2011-12-29 2018-12-18 Intel Corporation Method, device and system for control signaling in a data path module of a data stream processing engine
US9829956B2 (en) * 2012-11-21 2017-11-28 Nvidia Corporation Approach to power reduction in floating-point operations
US9268528B2 (en) * 2013-05-23 2016-02-23 Nvidia Corporation System and method for dynamically reducing power consumption of floating-point logic
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
KR101590019B1 (ko) * 2015-05-29 2016-02-01 충남대학교산학협력단 전력 효율 향상을 위한 멀티플렉서가 없는 바이패싱 구조를 구비한 연산기
KR101726582B1 (ko) 2015-12-08 2017-04-14 한국항공우주연구원 아날로그 회로를 이용한 곱셈기
US10402168B2 (en) * 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10223071B2 (en) * 2017-04-14 2019-03-05 Qualcomm Incorporated Energy-efficient variable power adder and methods of use thereof
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10998037B2 (en) 2019-05-07 2021-05-04 Memryx Incorporated Memory processing units and methods of computing dot products
US11488650B2 (en) 2020-04-06 2022-11-01 Memryx Incorporated Memory processing unit architecture
US10853066B1 (en) 2019-05-07 2020-12-01 Memryx Incorporated Memory processing units and methods of computing DOT products including zero bit skipping
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
US11934799B2 (en) * 2020-08-19 2024-03-19 SiliconIntervention Inc. Combinatorial logic circuits with feedback
US11347476B2 (en) * 2020-10-09 2022-05-31 Credo Technology Group Limited Digital filtering using combined approximate summation of partial products

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075587A2 (en) * 2000-03-31 2001-10-11 Intel Corporation Multiplier architecture in a general purpose processor optimized for efficient multi-input addition

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6167129A (ja) * 1984-09-07 1986-04-07 Toshiba Corp 並列乗算回路
JP2672956B2 (ja) * 1988-01-25 1997-11-05 沖電気工業株式会社 並列乗算器
JPH01244532A (ja) * 1988-03-25 1989-09-28 Fujitsu Ltd 並列型乗算回路
JPH0540605A (ja) * 1991-08-02 1993-02-19 Toshiba Corp 浮動小数点乗算装置
JPH0635672A (ja) * 1992-07-17 1994-02-10 Advantest Corp 乗算処理装置
JPH06309151A (ja) * 1993-04-23 1994-11-04 Nippon Steel Corp データ処理装置
US5787029A (en) * 1994-12-19 1998-07-28 Crystal Semiconductor Corp. Ultra low power multiplier
US5734601A (en) * 1995-01-30 1998-03-31 Cirrus Logic, Inc. Booth multiplier with low power, high performance input circuitry
US5818743A (en) * 1995-04-21 1998-10-06 Texas Instruments Incorporated Low power multiplier
US6604120B1 (en) * 1997-09-04 2003-08-05 Cirrus Logic, Inc. Multiplier power saving design
JP2002023998A (ja) * 2000-07-03 2002-01-25 Mitsubishi Electric Corp 乗算装置及び乗算方法
TW479193B (en) * 2000-11-29 2002-03-11 Ind Tech Res Inst Multiplier with low power consumption and the operation method thereof
TW484092B (en) * 2001-01-31 2002-04-21 Nat Science Council Reduced-width low-error multiplier
US7225217B2 (en) * 2001-10-09 2007-05-29 The Regents Of The University Of California Low-power Booth-encoded array multiplier

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075587A2 (en) * 2000-03-31 2001-10-11 Intel Corporation Multiplier architecture in a general purpose processor optimized for efficient multi-input addition

Also Published As

Publication number Publication date
EP1859343B1 (en) 2009-11-04
BRPI0609038A2 (pt) 2010-01-12
KR100986405B1 (ko) 2010-10-08
KR20070116094A (ko) 2007-12-06
DE602006010184D1 (de) 2009-12-17
IL185957A0 (en) 2008-12-29
ATE447736T1 (de) 2009-11-15
JP2008533617A (ja) 2008-08-21
US20060212505A1 (en) 2006-09-21
EP1859343A1 (en) 2007-11-28
CN101171569A (zh) 2008-04-30
WO2006102076A1 (en) 2006-09-28
US7546331B2 (en) 2009-06-09

Similar Documents

Publication Publication Date Title
CN101171569B (zh) 低功率阵列乘法器及其运算方法
CN100449476C (zh) 用于执行浮点算术运算的***和方法
KR100994862B1 (ko) 선택가능한 하위 정밀도에 대하여 감소된 전력 요구조건들을 가지는 부동 소수점 프로세서
US5465226A (en) High speed digital parallel multiplier
US8694572B2 (en) Decimal floating-point fused multiply-add unit
Tung et al. A high-performance multiply-accumulate unit by integrating additions and accumulations into partial product reduction process
KR20120017468A (ko) 감소된 면적을 갖는 승법식 제산 회로
US5253195A (en) High speed multiplier
US5528529A (en) Electronic multiplying and adding apparatus and method
Ibrahim et al. Optimized structures of hybrid ripple carry and hierarchical carry lookahead adders
Sakthivel et al. Low power area optimized and high speed carry select adder using optimized half sum and carry generation unit for FIR filter
Sarkar et al. Design of hybrid (CSA-CSkA) adder for improvement of propagation delay
Ahmed et al. Improved designs of digit-by-digit decimal multiplier
US20090013022A1 (en) Multiplier Engine Apparatus and Method
Kuang et al. Energy-efficient multiple-precision floating-point multiplier for embedded applications
US7069290B2 (en) Power efficient booth recoded multiplier and method of multiplication
Obata et al. Single-flux-quantum integer multiplier with systolic array structure
Zhou et al. Approximate comparator: Design and analysis
Cilardo Variable-latency signed addition on fpgas
Karakuş et al. Statistical σ approximation to max-product operators
Namin et al. A High-Speed Word Level Finite Field Multiplier in ${\BBF} _ {2^ m} $ Using Redundant Representation
Venishetti et al. A highly parallel FPGA based IEEE-754 compliant double-precision binary floating-point multiplication algorithm
Phatak et al. Hybrid signed-digit representation for low power arithmetic circuits
Hobson et al. An efficient maximum-redundancy radix-8 SRT division and square-root method
Anand et al. Implementation of adder structure with fast carry network for high speed processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1120314

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100519

Termination date: 20110317

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1120314

Country of ref document: HK