CN1402843A - 在一个周期内处理乘累加运算 - Google Patents
在一个周期内处理乘累加运算 Download PDFInfo
- Publication number
- CN1402843A CN1402843A CN00814443A CN00814443A CN1402843A CN 1402843 A CN1402843 A CN 1402843A CN 00814443 A CN00814443 A CN 00814443A CN 00814443 A CN00814443 A CN 00814443A CN 1402843 A CN1402843 A CN 1402843A
- Authority
- CN
- China
- Prior art keywords
- totalizer
- operand
- equipment
- carry
- mac
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title description 5
- 239000013598 vector Substances 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 238000007792 addition Methods 0.000 claims 1
- 238000012856 packing Methods 0.000 description 11
- 230000001186 cumulative effect Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 239000000047 product Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 125000002950 monocyclic group Chemical group 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Silver Salt Photography Or Processing Solution Therefor (AREA)
- Inks, Pencil-Leads, Or Crayons (AREA)
Abstract
一个乘法累加器,或MAC(100),可以实现高吞吐量。MAC不需要使用冗余硬件,如多个乘Wallace树,或流水线逻辑,然而,可能同时为不同操作执行Wallace树和进位预测加法器功能。
Description
背景
本发明关于基于处理器的系统,更特指,乘法累加单元。
一个乘法累加单元,或MAC,是为执行乘法操作设计的单元。在基于处理器的系统中,此类操作可能很多。
MAC可能用多种逻辑实现。由于有多个乘法运算存在于应用程序中,通常选用最快的MAC。任何MAC的设计成功可能与其耗电量,MAC电路所在位置的大小限制,MAC的用途及其它因素相关。
通常,然而,速度和成本之间的折衷使优化执行的MAC的设计很困难。其成本以附加硬件,容纳硬件所需的芯片空间或驱动硬件所需的耗电量的形式出现。
例如,在很多数字信号处理应用中,或DSP,一些重要的操作涉及一系列的乘和加操作。因此,高吞吐量的MAC对获得高性能是重要的。然而,很多当今的DSP应用要求低耗电量,特别是在便携式电子市场。
因此,对能实现高吞吐量而又不过多耗电的MAC是一种持久的需求。
概要
本发明的一个实施例中,一种方法包括在单元的第一部分接收操作数的第一集,在操作数的第一集上执行多个操作产生第一个中间结果并在单元的第一部分接收操作数的第二集。之后,在第一中间结果上执行第二个多个操作产生第一个最终结果,同时第二个多个操作在操作数的第二集上执行产生第二个中间结果。
本发明的优点和其他特性由下面叙述,图和权利要求中变得明显。
附图的简述
图1为按本发明一个实例的乘累加器的方块图;
图2A和2B是使用按照本发明的一个实例如图1的MAC执行的乘法操作的流程图;
图3是使用按照本发明的一个实例如图1的MAC的16位乘法操作的执行时间表;
图4A-4C是使用按照本发明的一个实例如图1的MAC的一个不指明的被执行的乘法操作的流程图;
图5是使用按照本发明的一个实例如图1的MAC的被执行的包装后数据的乘法操作的流程图。
详细描述
从最基本的角度讲,MAC接收两个整数值,把两个值相乘并送出操作的结果。对一些应用来说,附加的常数,一个累加值,可能被加到结果中。所以,MAC将生成结果d,由被乘数a乘以乘数b加累加值c,如以下等式所示:
d=(a*b)+c
乘法操作可按一系列部分积的和的方式执行。为获得优化的性能,MAC可能包括执行更快的附加操作或减少必备附加操作数量的特点。
例如,典型的MAC包括一个Booth编码器,也称为Booth重编码器或Booth乘法器。Booth编码器可减少执行乘法步骤的数量。被相加的部分积的数量也因此减少。例如,16位长字,部分积的数量可由16减少到8,除了二。
MAC中另一个特性被称为Wallace树。Wallace树是执行多个加操作的结构。Wallace树通常包括特性,如加法器,帮助执行多个部分积的加法操作。
例如,Wallce树可能包括一组省进位(carry-save)加法器。一个3至2省进位加法器,例如,接收3个输入a,b和c,产生两个输出,一个是和y,一个是进位z,如以下等式:
a+b+c=y+z*2输出进位是为下个操作被省略的,因此命名。
Wallace树可能组织了省进位加法器或相似逻辑,如一组输入值通常产生两个结果,和值和进位值。例如,四阶段Wallace树可能包括四阶段3至2省进位加法器。该四阶段Wallace树可能接收九个输入向量,并生成一个和向量和一个进位向量作为结果。
许多MAC设计的另一个特性是加所有两个向量位的逻辑以生成最后结果,例如,一个进位预测(carry look-ahead)加法器,或CLA,是一种这样的逻辑设备。CLA能有效的执行两个多位操作数的加法。
特别是对于数字信号处理和其他应用,MAC以很快的速度乘16位带符号整数的能力是一个很重要的考虑因素。为提高16位或更大整数操作数的乘法运算的速度,MAC可包括附加电路。例如,MAC的每个组件可被复制,如此多个操作可同时运行。控制并行操作的控制逻辑也是MAC的一部分。然而,附加硬件可能很贵,可获得空间可能有限,支持性硬件的附加电源可能被使用。
另一个MAC设计是使操作上流水线,这样一种新的乘操作可能在预先操作还没有被MAC硬件完成之前在流水线上某处被处理。流水线化可能涉及几个被执行操作的阶段,每个阶段独立操作。流水线化因此可能使用附加的控制逻辑和硬件,如寄存器,为暂时存储两个,三个或多个由MAC硬件同时执行的独立操作状态。虽然比提供并行硬件便宜,附加的控制逻辑可能增加开发成本和减少可获得的板上或芯片上空间。再有,支持流水线的MAC运行更慢。
更高吞吐量的MAC可能使用常规的结构特性实现,而又不过分的影响硬件的成本或电源需求。在本发明的一些实现中,MAC设计提供的为同时操作MAC的两个功能单元的16位乘法操作的单周期吞吐量。
图1中,按本发明的一个实现,MAC100包括一个Booth编码器10,一个多路复用器,或MUX,阵列14,一个Wallace树20,和一个进位预测加法器,或CLA,30。MAC100可接收两个输入值,被乘数A和乘数B,还有累加数据值C。输入值A,B,C可为16位,32位或更长的带符号整数。
在本发明的一个实施例中,Booth编码器一次接收长至乘数B的16位,因此生成多至8个控制信号12a-12h。MUX阵列14在接收被乘数A的同时由Booth编码器10接收8个控制信号12a-12h。该MUX阵列14产生多至8个部分积,16a-a6h,并被发送到Wallace树20。
在本发明的一个实施例中,该Wallace树20是个四阶段单元,包括一些省进位加法器(没有显示)。该Wallace树20因此接收9个输入信号并输出两个输出信号,一个和向量22a和进位向量22b。和向量22a和进位向量22b被连续的输入CLA30,并被相加。连续的或同时的,和向量22a和进位向量22b可被送回MUX阵列14进行进一步处理。
该MAC100包括3个触发器库6a-6c。触发器6使被乘数A,乘数B和累加数据C的部分被发送到MAC100的其他逻辑部分进一步处理。例如,如果32位乘数B[31:0]被发送到MAC100作为乘法操作的一部分,触发器6b可在两个16位的部分,B[31:16]或B[15:0],之间转换,控制乘数B的那部分被发送到Booth编码器10。
该MAC100也包括MUX8A-8E。该MUX8可通过MAC100的后来的单元控制信号的接收。例如,MUX8a-8c与触发器6a-6c连接工作以控制被乘数A,乘数B,和累加数C的哪部分被MUX阵列14,Booth编码器10或Wallace树20分别一一对应的接收。该MUX8d通过CLA30控制和向量22a和进位向量22b的接收。该MUX8e使由CLA30来的输出值34在需要时成为符号扩展的。
该MAC100包括两个MUX的库和由Wallace树接收输出信号22a和22b的触发器24a和24b。该MUX和触发器24a被用于输入和向量22a和进位向量22b回MUX阵列14。依执行操作的不同,26a回馈MUX阵列14。该反馈是多阶段MAC操作的通常特点,如为执行32位乘法时。
该MAC100包括一个第二MUX和触发器24b,和向量22a和进位向量22b发到此处。然后,这些值被通过MUX8d发送到CLA30。在本发明的一个实现中,和向量22a和进位向量22b被同时发送到单元24a和24b。
在本发明的一些实施例中,该MAC100包括结构上的提高,此提高可能提高乘法操作的吞吐量。例如,本发明的一个实现中,该MAC100包括两个寄存器,累加器A32a和累加器B32b。该累加器32可由CLA30接收结果向量34。本发明的一个实现中,结果向量34可存于累加器32中。例如,在第一个操作中,可能为中间结果的结果向量,被存于累加器A32a中。下一步操作中,后一个结果向量被存于累加器B32b中。
该累加器32都为递交到Wallace树连接到MUX8c。该配置允许存于任意累加器32的值被作为累加值递交到Wallace树而不是由MAC100的外部源(C)接收累加数据。依以下将显示,累加器32可帮助本发明一个实现中MAC100中执行操作的吞吐量。
该MAC100可支持不明确的指令如不明确的乘法指令。不明确的指令是一种指令在此一个或多个中间结果被存于MAC的内部,如在寄存器中。包括在MAC电路中的寄存器允许MAC避免通过外部总线发送中间结果到MAC外的存储位置。因此,支持不指明操作MAC可处理指令比无此种支持的MAC更快。
对很多乘法操作来说,MAC电路在得到最终结果之前可提供多个中间结果。传统的MAC设计通常由Wallace树接收一个中间结果,一个中间和向量和一个中间进位向量,为下一步处理返回结果到MUX阵列。该方案在必要时被重复。最后,由Wallace树生成的和向量和进位向量代表了最终结果。然后,该值被发送到CLA,在此他们被加到一起后被发送到MAC电路作为最终结果。
在图1的实现中,如需要的话,中间和向量22a和中间进位向量22b在一个周期内可被发送到CLA30。该CLA30可能使中间和向量22a和中间进位向量22b相加,产生存于累加器32之一中的中间结果34。
该MAC100设计中的反馈逻辑允许中间结果34作为累加数据18,通过MUX8c,由累加器32之一返回Wallace树20。回想起Wallace树20包括为累加数据18的输入线18。图1中,MUX8c允许累加数据18的源到包括累加器32。
本发明的一个实施例中,MAC100提供允许同时操作Wallace树20和CLA30的电路。本发明的一个实现中,该电路包括早期中止逻辑50和MAC控制52。该电路通过MAC100可控制多个乘法操作或单个乘法操作的多个部分的同时处理。
在典型的实现中,MAC可接收带符号的二进制值作为操作数。例如,一个二的补充符号可能被使用。在二的补充符号中,最重要的值中的位可代表符号:零是正值,一为负值。因此,在二的补充符号中,16位的操作数FFC1h可代表-63d和操作数003Fh可代表+63d。
另外,在一些应用中,16位值可由32位值代表。符号位(第十五位)可因此在十六位上扩展或复制。因此,符号扩展操作数FFFFFFC1h可代表-63d,操作数0000003Fh可代表+6 3d。两个操作数的高十七位是一致的,如符号位(第十五位)被扩展。同样的,对两个值来说,高十六位不需要执行乘法操作。
在本发明的一个实施例中,早期终结逻辑50使用这一带符号二进制值的特性为MAC100的优势。在图1中,早期终结逻辑50在32位的乘数B的高十七位相同时被启用。在这种情况下,乘数B的高十六位在乘法运算中没有被用到。
一旦激活,早期终端逻辑50发送信号到MAC控制逻辑52。该MAC控制逻辑52控制触发器6,MUX8和MUX和触发器24,还有累加器32。该MAC控制逻辑52因此是下一个被乘数A通过触发器6a和MUX8a相连,下一个乘数B通过触发器6b和MUX8b相连,或下一个累加数C通过触发器6c和MUX8c相连。
另外,该MAC控制逻辑52可控制由Wallace树30接收的中间和向量22a,中间进位向量22b和中间进位向量的路径。该MAC控制逻辑52可使MUX和触发器24a,MUX和触发器24b,和MUX8d在需要时有效。
该MAC控制逻辑52进一步控制累加器A寄存器32a和累加器B寄存器32b,以允许在其中的值被作为累加输入18送回Wallace树20。最后,该MAC控制逻辑52可控制MUX8e,如需要最终输出向量34可为符号扩展的,并生成输出值40。
在本发明的一个实施例中,该MAC控制单元52可由MAC100的外部源接收控制信号,如一个指令解码器(没有显示)。该MAC控制单元52也可提交控制信号到另一个MAC100的外部源。
依据被执行操作的不同,该MAC100可产生中间向量值。例如,本发明的一个实现中,Booth编码器10由乘数B接收一个16位值。因此,为了乘两个32位数,或一个16位被乘数和一个32位乘数,该Booth编码器10可在第一个周期接收乘数的低16位然后在第二个周期接收乘数的高16位。同样,MAC100的其他电路可在第一和第二周期都接收数据。该乘法操作因此只用了最少的两个周期。
对于一些操作来说,该MAC100可在完成单周期的输入输出。在本发明的一个实现中,MAC100在执行16位乘法操作时,可获得单周期的输入输出。在操作数的第一集被接收到MAC100后,Wallace树66和CLA68可同时处理后面的操作数。例如,Wallace树可在CLA68为周期n-1处理数据时,处理周期n的数据。
图2A中,一个流程图阐明了MAC100逻辑如何处理乘法或乘/累加操作。在该例中,两个16位操作数是符号扩展后的如32位值的形式。该操作数在DSP应用中是常见的且可特别说明在MAC100中的早期中止逻辑50的性能。然而,MAC100可在具有其他特点的操作数上执行乘或乘/累加操作。
第一个周期,即0周期,开始(块200)。在本发明的一个实现中,乘数B[15:0]低十六位被发送到Booth编码器10(块202)。MUX阵列14由Booth编码器10接收八个控制信号12和被乘数A[31:0](块204)。MUX阵列14处理这些信号,Wallace树20从MUX阵列14接收8个部分积向量16。另外,该Wallace树20接收累加数据C[31;0](块206)。从这些数据中,Wallace树20产生一个中间和向量(ISV)22a和中间进位向量(ICV)22b(块208)。该中间和向量22a和中间进位向量22b被发送到MUX和触发器24a和24b(块210)。
独立于前述操作,在0周期的开始(块200),早期中止逻辑50可接收32位的乘数B[31:0](块212)。因为操作数是符号扩展的16位值,乘数B的高17位是一样的。因此,早期中止逻辑50发送信号以连接处发起6a,6b和6c还有MUX8a,8b和8c(块216)。此方式中,MAC控制逻辑52电路连接下一个MAC操作数A,B和C。
在图2B中,第二周期,即1周期,是图2A操作的延续。在1周期开始时(块230),MAC控制逻辑52发送信号到MUX8d以发布中间和向量22a和中间进位向量22b并发送到CLA30(块234)。因此,CLA30将中间和向量22a和中间进位向量22b相加(块236)。然后,结果40被发送出MAC100(块238)。因此,1周期完成。
在图3中,按本发明的一个实施例使用MAC100的16位乘法操作的单周期输入输出可由图表说明。在图表的顶部,一系列MAC100执行的标记数字后的乘法操作被描述。在图表的左部,在该执行的周期是被特指的。按本发明的一个实现,该图表追踪Wallace树20执行的操作,被标为“W”,由CLA30执行的被标为“C”。
对第一个16位乘法操作,当CLA30在1周期执行时,Wallace树20在0周期执行。对第二个16位乘法操作,当CLA30在2周期执行时,Wallace树20在1周期执行。CLA30对一个乘法操作的执行和Wallace树20对第二个16位乘法操作的执行是同时进行的。如该图表所示,后面的16位乘法操作如以上两个已描述的方式进行。在第15周期结束时,15个16位乘法操作已完成。对于本发明一个实现的一些乘法操作,MAC100因此提供了单周期的输入输出。
累加器32允许MAC100执行不明确的乘法和乘/累加操作。在第二个实现中,MAC100可包括一个单累加器。累加器32可由几个不明确指令以不指明的方式作参数。那种不指明的乘法/累加指令引用了累加器32而不是某个特殊的寄存器作为累加器。
例如,本发明一个实施例中的指令,MAR或MRA可由MAC控制逻辑52为了累加器32可被分别读出和写入而接收。在图4A中,流程图显示了不指明的乘法/累加操作,在此早期中断被启用。回忆以前,为了早期中断被启用,乘数B的另外17位都为0后都为1。
当0周期开始时(块300),乘数B[15:0]被发送到Booth编码器10(块302)。然后,MUX阵列14由Booth编码器10接收8个控制信号12和被乘数A[31:0](块304)。
Wallace树由MUX阵列14接收8个部分积。另外,Wallace树20由累加器A32a和累加器B32b接收累加值。然后,Wallace树产生一个中间和向量22a和一个中间进位向量22b(块308)。
在本发明的一个实施例中,进位预测加法器30是一个40位的CLA,可执行16位的DSP操作。同样,累加器A寄存器32a和累加器B寄存器32b是40位寄存器。因此,在下一步操作中,中间和向量22a和中间进位向量22b的低40位被发送到触发器24a和24b(块310)。
仍然在0周期的开始,整个32位的乘数B被发送到早期中断逻辑(EFL)50(块312)。因为乘数B的高17位是一致的,早期中断逻辑50发送信号到MAC控制逻辑52(块314)。然后,MAC控制逻辑52发送信号以连接触发器6a,6b,6c和MUX8a,8b,8c(块316)。这指出Wallace树20将可以在下个周期接收下一个不指明的乘法/累加指令(块318)。
在图4B中,1周期开始(块330)。MAC控制逻辑52发送信号到MUX8d以发布中间和向量22a和中间进位向量22b(块332)。然后,CLA30使两个22的值相加产生一个中间结果34(块334)。因为这是一个不明确的指令,该结果34被存于累加器A32a或累加器B32b(块336)中。这样就结束了1周期(块338)。
在本发明的一个实施例中,MAC100可接收引用了累加器的不明确指令。这些指令可由最终控制累加器A32a和累加器B32b的MAC控制逻辑52接收。
例如,在图4C中,MAC控制逻辑52可为读取累加器A32a接收不指明的指令(块350)。在累加器A32a和累加器B32b中得知被发送到CLA30(块352)。然后,CLA30使值36a和36b相加(块354)。然后,CLA30发送结果40作为输出数据(块356)。然后,结果40可被发送到MAC100外部的寄存器文件。
在图5中,一个带有不指明的累加操作的乘法使用打包后的数据指令。在本发明的一个实现中,MAC100可接收4种不同的打包后的数据指令。这4个打包后的数据指令在16位或半个两个32位操作数上执行。例如,一个指令可在乘数B和被乘数A的低16位上操作。最后,每个打包后数据指令因此在两个16位操作数上执行一个16位乘法操作。
在0周期的开始(块400),一个32位的被乘数A[31:0]和一个32位的乘数B[31:0]被发送到MAC100(块402)。MAC控制逻辑52也接收一个打包后数据指令(块404)。
被乘数A的16位被扩展到32位。例如,如果打包后数据指令正在被乘数A的低16位上操作,那么被乘数A的高16位由被乘数A的低16位的内容所代替。其实是符号被由第16位扩展到第32位。同样,如果打包后数据指令在被乘数A的高16位上操作,那么高16位被移位到低16位且高16位被填入符号位的值。
乘数B的16位被发送到Booth编码器(块408)。例如,如果打包后数据指令在乘数B的低半部上操作,然后B[15:0]被发送到Booth编码器10。同样,为在乘数B的高半部操作的打包后数据指令,B[31:16]未被发送到Booth编码器10。
由此来看,打包后数据指令正如任何其他不指明指令一样操作。因此,由MAC100执行的下一个操作在图4A中(块304)。
正如对其他操作,MAC100同时决定是否早期中止逻辑50被启用。那就是乘数B[31:0]被发送到早期中止逻辑50(块420)。因为乘数B的高17位是一致的,早期中止逻辑50发送型号到MAC控制逻辑52(块422)。然后,MAC控制逻辑52发送信号以连接触发器6a,6b,6c和MUX8a,8b,8c(块424)。这允许一个新的MAC指令在下个周期被处理(块426)。
因此,一个乘累加期间可特定操作提供单周期输入输出。按照本发明的一个实现中,MAC避免使用可能耗更多电能,其包括无可能运行更慢的流水线电路的冗余硬件。实际上,Wallace树和MAC一部分的进位预测加法器可同时操作。这种同时操作的现实使更高吞吐量成为可能。
虽然本发明仅被描述为有限的实现上,本领域中的资深人士可认识到很多可做的改动和变化。我们试图使附加的权利要求涵盖所有落入本发明真正精神和范畴的改动和变化。
Claims (20)
1.一种方法,包括:
接收操作数的第一集到乘法-累加单元;
在操作数的第一集上执行第一操作生成第一个中间结果;
接收操作数的第二集到乘法-累加单元;
在操作数的第二集上执行第一操作生成第二个中间结果,并在第一中间结果上执行第二操作。
2.如权利要求1所述方法,其中接收操作数第一集进一步包括:
接收乘数到Booth编码器;
接收被乘数到多路复用器阵列。
3.如权利要求2所述方法,其中在操作数的第一集上执行第一操作进一步包括由Booth编码器发送多个控制信号到多路复用器阵列
4.如权利要求2所述方法,其中在操作数的第一集上执行第一操作进一步包括由多路复用器阵列发送多个部分积到Wallace树。
5.如权利要求4所述方法,其中接收操作数的第一集进一步包括接收一个累加值到Wallace树。
6.如权利要求5所述方法,其中在操作数的第一集上执行第一操作进一步包括在接收多个部分乘积和累加值后,激活Wallace树中多个省进位加法器。
7.如权利要求1所述方法,其中在第一中间结果上执行第二操作进一步包括:
接收第一中间结果作为第一部分和第二部分;
第一和第二部分相加。
8.如权利要求7所述方法,其中在第一中间结果上执行第二操作进一步包括:
发送第一部分和第二部分至进位预测加法器;
激活进位预测加法器。
9.一种设备,包括:
一个执行多个加操作的结构;
一个加法器;和
一个控制器,它允许使用该结构对第一操作数的一部分执行第一操作,同时加法器对第一操作数的另一个部分执行第二操作。
10.如权利要求9所述设备,进一步包括一个与加法器耦合的内部存储媒体。
11.如权利要求9所述设备,其中执行多个加法操作的结构包含Wallace树。
12.如权利要11所述设备,其中Wallace树包含多个省进位加法器。
13.如权利要求12所述设备,其中Wallace树是一个4阶段Wallace树。
14.如权利要求9所述设备,其中加法器是一个进位预测加法器。
15.如权利要求9所述设备,进一步包括Booth编码器与执行多个加法操作的结构耦合。
16.如权利要求12所述设备,其中Wallace树接收9个输入向量并产生两个输出向量。
17.如权利要求10所述设备,其中内部存储媒体包括一或多个累加器。
18.如权利要求17所述设备,其中一或多个累加器与加法器的输出耦合。
19.一种设备,包括:
一个Wallace树;
一个加法器;和
一个控制器,发送多个信号以引起Wallace树在加法器执行指令的一部分时执行指令的另一部分。
20.如权利要求19所述设备,其中加法器是一个进位预测加法器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/470,836 US6611856B1 (en) | 1999-12-23 | 1999-12-23 | Processing multiply-accumulate operations in a single cycle |
US09/470,836 | 1999-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1402843A true CN1402843A (zh) | 2003-03-12 |
CN1230735C CN1230735C (zh) | 2005-12-07 |
Family
ID=23869256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008144435A Expired - Fee Related CN1230735C (zh) | 1999-12-23 | 2000-12-04 | 在一个周期内处理乘累加运算 |
Country Status (8)
Country | Link |
---|---|
US (2) | US6611856B1 (zh) |
JP (1) | JP3869269B2 (zh) |
KR (1) | KR100470299B1 (zh) |
CN (1) | CN1230735C (zh) |
AU (1) | AU2059401A (zh) |
GB (1) | GB2371657B (zh) |
TW (1) | TW588281B (zh) |
WO (1) | WO2001048595A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103221916A (zh) * | 2010-09-24 | 2013-07-24 | 英特尔公司 | 执行乘乘累加指令 |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US6957242B1 (en) * | 2000-10-26 | 2005-10-18 | Cypress Semiconductor Corp. | Noninterfering multiply-MAC (multiply accumulate) circuit |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US7107305B2 (en) * | 2001-10-05 | 2006-09-12 | Intel Corporation | Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US7043517B2 (en) * | 2003-03-07 | 2006-05-09 | Faraday Technology Corp. | Multiply accumulator for two N bit multipliers and an M bit addend |
US7266580B2 (en) * | 2003-05-12 | 2007-09-04 | International Business Machines Corporation | Modular binary multiplier for signed and unsigned operands of variable widths |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
CN100363885C (zh) * | 2004-11-19 | 2008-01-23 | 浙江大学 | 乘累加装置 |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
EP1710691A1 (en) * | 2005-04-07 | 2006-10-11 | STMicroelectronics (Research & Development) Limited | MAC/MUL unit |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
CN101706712B (zh) * | 2009-11-27 | 2011-08-31 | 北京龙芯中科技术服务中心有限公司 | 浮点向量乘加运算装置和方法 |
US9753695B2 (en) | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
CN105849690B (zh) * | 2014-07-02 | 2019-03-15 | 上海兆芯集成电路有限公司 | 融合乘积-累加运算的处理器与方法 |
US9519460B1 (en) * | 2014-09-25 | 2016-12-13 | Cadence Design Systems, Inc. | Universal single instruction multiple data multiplier and wide accumulator unit |
US9411726B2 (en) * | 2014-09-30 | 2016-08-09 | Samsung Electronics Co., Ltd. | Low power computation architecture |
RU2625528C1 (ru) * | 2016-05-17 | 2017-07-14 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Кубанский государственный технологический университет" (ФГБОУ ВО "КубГТУ") | Арифметическое устройство |
US10140090B2 (en) * | 2016-09-28 | 2018-11-27 | International Business Machines Corporation | Computing and summing up multiple products in a single multiplier |
WO2020046642A1 (en) | 2018-08-31 | 2020-03-05 | Flex Logix Technologies, Inc. | Multiplier-accumulator circuit, logic tile architecture for multiply-accumulate and ic including logic tile array |
US11194585B2 (en) | 2019-03-25 | 2021-12-07 | Flex Logix Technologies, Inc. | Multiplier-accumulator circuitry having processing pipelines and methods of operating same |
US11314504B2 (en) | 2019-04-09 | 2022-04-26 | Flex Logix Technologies, Inc. | Multiplier-accumulator processing pipelines and processing component, and methods of operating same |
US11288076B2 (en) | 2019-09-13 | 2022-03-29 | Flex Logix Technologies, Inc. | IC including logic tile, having reconfigurable MAC pipeline, and reconfigurable memory |
US11455368B2 (en) | 2019-10-02 | 2022-09-27 | Flex Logix Technologies, Inc. | MAC processing pipeline having conversion circuitry, and methods of operating same |
US12015428B2 (en) | 2019-11-05 | 2024-06-18 | Flex Logix Technologies, Inc. | MAC processing pipeline using filter weights having enhanced dynamic range, and methods of operating same |
US11693625B2 (en) | 2019-12-04 | 2023-07-04 | Flex Logix Technologies, Inc. | Logarithmic addition-accumulator circuitry, processing pipeline including same, and methods of operation |
US11960856B1 (en) | 2020-01-15 | 2024-04-16 | Flex Logix Technologies, Inc. | Multiplier-accumulator processing pipeline using filter weights having gaussian floating point data format |
US20210255861A1 (en) * | 2020-02-07 | 2021-08-19 | Micron Technology, Inc. | Arithmetic logic unit |
US11442881B2 (en) | 2020-04-18 | 2022-09-13 | Flex Logix Technologies, Inc. | MAC processing pipelines, circuitry to control and configure same, and methods of operating same |
US11604645B2 (en) | 2020-07-22 | 2023-03-14 | Flex Logix Technologies, Inc. | MAC processing pipelines having programmable granularity, and methods of operating same |
CN114237550B (zh) * | 2021-11-10 | 2023-10-13 | 电子科技大学 | 一种基于Wallace树的多输入移位求和累加器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4041292A (en) * | 1975-12-22 | 1977-08-09 | Honeywell Information Systems Inc. | High speed binary multiplication system employing a plurality of multiple generator circuits |
US4547862A (en) * | 1982-01-11 | 1985-10-15 | Trw Inc. | Monolithic fast fourier transform circuit |
US4809212A (en) * | 1985-06-19 | 1989-02-28 | Advanced Micro Devices, Inc. | High throughput extended-precision multiplier |
US4754421A (en) * | 1985-09-06 | 1988-06-28 | Texas Instruments Incorporated | Multiple precision multiplication device |
JPS6284335A (ja) | 1985-10-09 | 1987-04-17 | Hitachi Ltd | 乗算回路 |
JPS6347874A (ja) | 1986-08-16 | 1988-02-29 | Nec Corp | 算術演算装置 |
US4841468A (en) * | 1987-03-20 | 1989-06-20 | Bipolar Integrated Technology, Inc. | High-speed digital multiplier architecture |
US4958312A (en) | 1987-11-09 | 1990-09-18 | Lsi Logic Corporation | Digital multiplier circuit and a digital multiplier-accumulator circuit which preloads and accumulates subresults |
US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US6463453B1 (en) * | 1998-01-12 | 2002-10-08 | Motorola, Inc. | Low power pipelined multiply/accumulator with modified booth's recoder |
-
1999
- 1999-12-23 US US09/470,836 patent/US6611856B1/en not_active Expired - Fee Related
-
2000
- 2000-12-04 WO PCT/US2000/032887 patent/WO2001048595A1/en active IP Right Grant
- 2000-12-04 AU AU20594/01A patent/AU2059401A/en not_active Abandoned
- 2000-12-04 GB GB0208937A patent/GB2371657B/en not_active Expired - Fee Related
- 2000-12-04 CN CNB008144435A patent/CN1230735C/zh not_active Expired - Fee Related
- 2000-12-04 JP JP2001549181A patent/JP3869269B2/ja not_active Expired - Fee Related
- 2000-12-04 KR KR10-2002-7006508A patent/KR100470299B1/ko not_active IP Right Cessation
- 2000-12-22 TW TW089127748A patent/TW588281B/zh not_active IP Right Cessation
-
2003
- 2003-04-04 US US10/407,048 patent/US20030172101A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103221916A (zh) * | 2010-09-24 | 2013-07-24 | 英特尔公司 | 执行乘乘累加指令 |
US9110655B2 (en) | 2010-09-24 | 2015-08-18 | Intel Corporation | Performing a multiply-multiply-accumulate instruction |
CN103221916B (zh) * | 2010-09-24 | 2016-08-17 | 英特尔公司 | 执行乘乘累加指令 |
Also Published As
Publication number | Publication date |
---|---|
CN1230735C (zh) | 2005-12-07 |
AU2059401A (en) | 2001-07-09 |
KR20030011063A (ko) | 2003-02-06 |
US20030172101A1 (en) | 2003-09-11 |
TW588281B (en) | 2004-05-21 |
JP3869269B2 (ja) | 2007-01-17 |
JP2003518690A (ja) | 2003-06-10 |
US6611856B1 (en) | 2003-08-26 |
KR100470299B1 (ko) | 2005-02-05 |
WO2001048595A1 (en) | 2001-07-05 |
GB0208937D0 (en) | 2002-05-29 |
GB2371657A (en) | 2002-07-31 |
GB2371657B (en) | 2004-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1230735C (zh) | 在一个周期内处理乘累加运算 | |
US10620951B2 (en) | Matrix multiplication acceleration of sparse matrices using column folding and squeezing | |
CN106598545B (zh) | 沟通共享资源的处理器与方法及非瞬时计算机可使用媒体 | |
Jin et al. | Principles and construction of MSD adder in ternary optical computer | |
JP2021528764A (ja) | ニューラルプロセッサ | |
KR101787819B1 (ko) | 정렬 가속화 프로세서들, 방법들, 시스템들 및 명령어들 | |
CN1142484C (zh) | 微处理器向量处理方法 | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN1846193A (zh) | 用于并行数据转换的方法、设备及指令 | |
CN1595390A (zh) | 执行部分宽度压缩数据指令 | |
WO2001035224A1 (en) | Bit-serial memory access with wide processing elements for simd arrays | |
CN101055644A (zh) | 绘图处理装置及其处理指令、数据和逻辑单元操作的方法 | |
CN101042640A (zh) | 一种带有位扩充和位压缩单元的数字信号处理器 | |
CN103543984A (zh) | 用于特殊相关应用的修改型平衡吞吐量数据路径架构 | |
CN1320450C (zh) | 提供可变宽度的至少六路加法指令的方法及相应装置 | |
CN101739383B (zh) | 一种可配置处理器体系结构和控制方法 | |
CN1690951A (zh) | 优化的处理器和指令对准 | |
CN1916959A (zh) | 可缩放大规模二维卷积电路 | |
EP1338954B1 (en) | Addition circuit for accumulating redundant binary numbers | |
CN209895329U (zh) | 乘法器 | |
CN1447228A (zh) | 一种16位微处理器的系统结构 | |
CN1553310A (zh) | 高速低功耗乘法器的对称分割算法及电路结构 | |
CN103677735B (zh) | 一种数据处理装置及数字信号处理器 | |
CN1508672A (zh) | 微控制器ip核 | |
CN1180427A (zh) | 以单精度或双精度进行算术运算的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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: 20051207 Termination date: 20131204 |