CN1633637A - 用于单指令/多数据指令的乘法积累单元 - Google Patents

用于单指令/多数据指令的乘法积累单元 Download PDF

Info

Publication number
CN1633637A
CN1633637A CNA028196473A CN02819647A CN1633637A CN 1633637 A CN1633637 A CN 1633637A CN A028196473 A CNA028196473 A CN A028196473A CN 02819647 A CN02819647 A CN 02819647A CN 1633637 A CN1633637 A CN 1633637A
Authority
CN
China
Prior art keywords
vector
instruction
operand
machine
carry
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
Application number
CNA028196473A
Other languages
English (en)
Other versions
CN100474235C (zh
Inventor
S·斯特拉斯杜斯
Y·廖
A·杰布森
N·帕弗
D·邓
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1633637A publication Critical patent/CN1633637A/zh
Application granted granted Critical
Publication of CN100474235C publication Critical patent/CN100474235C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/544Methods 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/5443Sum of products
    • 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
    • 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/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • 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/3884Pipelining
    • 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/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • 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/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

用于执行单指令/多数据(SIMD)操作的紧密结合(tightly coupled)的双16位乘法积累(MAC)单元可促进到流水线中另一个操作的中间结果,以解决积累依存关系惩罚(accumulating dependency penalty)。该MAC单元也可被用来执行32位×32位操作。

Description

用于单指令/多数据指令的乘法积累单元
                            背景
【0001】数字信号处理器(DSP)可用作SIMD(单指令/多数据),或数据并行处理器。在SIMD操作中,单个指令被发送到许多处理元件,该处理元件在不同的数据上执行相同的操作。SIMD指令提供用于几种类型的标准操作,这包括加法、减法、乘法、乘法积累(MAC)和许多用于执行如裁剪(clipping)和双线性内插操作这样的专门指令。
【0002】许多DSP应用,包括许多言语编解码器,需要高性能16位乘法积累(MAC)操作。为获取关于这些16位DSP应用的高性能,可引入64位SIMD指令。该64位SIMD指令可被用来更有效的处理媒体流并减少寄存器压力(register pressure)及存储器流量,这是由于4个16位数据项可一次被载入到64位寄存器中。
【0003】虽然对获取高性能而言,高吞吐量是重要的因素,但是在设计用于无线/手提式产品的DSP时,能量消耗也可能是重要的考虑因素。因此,我们也需要在DSP中使用能够具有高性能且需要低能量的MAC体系结构。
                            附图简述
【0004】图1是依照实施例的双乘法积累(MAC)单元的框图。
【0005】图2是依照实施例阐明MAC SIMD(单指令/多数据)操作的框图。
【0006】图3A到3C是依照实施例说明MAC SIMD操作的流程图。
【0007】图4A到4C是依照实施例阐明利用数据转发的流水线指令序列(pipelined instruction sequences)的框图。
【0008】图5A到5C是依照实施例阐明利用中间数据转发(intermediate dataforwarding)的流水线指令序列的框图。
【0009】图6A到6B是依照实施例说明在紧密结合的双16位MAC单元上执行的32位×32位MAC操作的流程图。
【0010】图7是依照实施例包括MAC单元的可移动视频单元的框图。
                        详细说明
【0011】图1依照实施例阐明乘法积累(MAC)单元100。该MAC单元100可被用来执行许多不同的SIMD(单指令/多数据)操作。
【0012】MAC单元100可具有紧密结合的双16位MAC体系结构。图2中概念的示出可由这样的MAC单元执行的16位MAC SIMD操作200。两个64位寄存器,202(wRn)和204(wRm)的内容可被视为4对16位数值,A0-A3(wRn)和B0-B3(wRm)。wRn的第一16位到第四16位分别与wRm的第一16位到第四16位相乘。然后,该4个相乘的结果P0-P3被加到64位寄存器206(wRd)的数值中,且该结果被发送到寄存器206。
【0013】可通过4个执行阶段来实现该MAC操作200:(1)进行B1和B2的工作台编码(booth encoding)和***树压缩;(2)进行B3和B2的工作台编码(booth encoding)和***树压缩;(3)4到2压缩,并将该结果的低32位相加;以及(4)将该结果的高32位相加。这4个阶段可被分别称作CSA0、CSA1、CLA0和CLA1阶段。
【0014】图3A到3C依照实施例阐明描述该MAC操作200的实现300的流程图。在CSA0阶段中,MUX和工作台编码器单元(booth encoder unit)102选择B0(16位)并对那些位(块302)进行编码。产生控制信号,每个这样的控制信号从集合{0,-A0,-2A0,A0,2A0}中选择部分乘积向量(partial productvector)。产生9个部分乘积向量,Pa0到Pa8,并将其传递到MUX阵列104(块304)。所有的9个部分乘积向量和寄存器206(wRd)中数值的低32位通过***树单元106(块306)而被压缩到两个向量中。该两个向量包括和向量与进位向量(carry vector),它们分别被保存在和向量触发器(FF)108中和进位向量触发器110中。
【0015】MUX和工作台编码器单元112选择B1(16位)并对那些位(块308)进行编码。产生控制信号,每个这样的控制信号从集合{0,-A1,-2A1,A1,2A1}中选择部分乘积向量。产生9个部分乘积向量,Pb0到Pb8,并将其传递到MUX阵列114(块310)。所有的9个部分乘积向量和零向量通过***树单元116(块312)而被压缩到两个向量中。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器118中和进位向量触发器120中。
【0016】在CSA1阶段中,来自和向量以及进位向量触发器108、110、118的4个向量以及来自CSA0阶段的120通过MUX和4到2压缩器单元122(块314)而被压缩到向量Vs0和Vc0中。MUX和工作台编码器单元102选择B2(16位)并对那些位(块316)进行编码。产生控制信号,每个这样的控制信号从集合{0,-A2,-2A2,A2,2A2}中选择部分乘积向量。产生9个部分乘积向量(块318)。然后所有的9个部分乘积向量和向量Vs0通过***树单元106(块320)而被压缩到两个向量中。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器108中和进位向量触发器110中。
【0017】MUX和工作台编码器112选择B3(16位),然后对那些位(块322)进行编码。产生控制信号,每个这样的控制信号从集合{0,-A3,-2A3,A3,2A3}中选择部分乘积向量。产生9个部分乘积向量(块324)。然后所有的9个部分乘积向量和向量Vc0通过***树单元116(块326)而被压缩到两个向量中。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器118中和进位向量触发器120中。
【0018】在CLA0阶段,来自触发器108、110、118的4个向量和来自CSA1阶段的120被发送到该4到2压缩器单元122,以产生向量Vs1和向量Vc1(块327)。Vs1和Vc1的较低32位与进位前向(CLA)(carry look-ahead)单元124相加以产生最后结果的低32位(块328)。
【0019】在CLA1阶段,Vs1和Vc1的高位是扩展到32位向量的符号(块330)。该扩展的向量和wRd的高32位然后通过3到2压缩器单元126而被压缩到两个向量中(块332)。来自CLA0单元124的两个压缩的向量和进位位(carry-in bit)通过CLA单元128相加,以产生最后结果的高32位(块334)。
【0020】如上所述,完成工作台编码和向量压缩要花费两个周期。在第一周期内,来自两个***树单元的结果被发送回来,以用于在第二周期内进一步处理。按照惯例,来自触发器108、110、118和120的所有四个向量将被发送回***树,以用于在第二周期内进一步处理。然而,我们已经注意到(it has been observed)MUX和4到2压缩器单元122与MUX和工作台编码器单元以及MUX阵列相比可更快的执行该向量的4到2压缩。这样,仅有来自MUX和4到2压缩器单元122的两个向量(Vs0和Vc0)被发送回***树单元106和116。通过这个体系结构,可减少反馈路由选择而且能使***树单元106、116较小。由于路由选择限制是在MAC设计中的问题,所以我们需要这一点,即较少的反馈路由选择使该布局(layout)更简单。
【0021】某些传统的MAC实现在一个周期内执行64位加法。然而,这样的MAC可能对频率非常高的64位数据通路不合适,而且其结果可能没有足够的时间通过旁路逻辑(bypass logic)返回,该旁路逻辑一般被用来解决流水线操作中的数据依存关系。与传统体系结构相比,图1中所示的双MAC体系结构可更容易的在频率非常高和低能量应用中实现。CLA1阶段可具有比CLA0阶段更少的逻辑门,这就允许最终结果有足够的时间通过旁路逻辑返回,这就使这个双MAC体系结构适合于高速和低能量64位数据通路。
【0022】MAC单元可用在流水线DSP中。可通过覆盖其执行而改变相对指令计时(relative timing of instructions)流水线操作与非流水线DSP相比,可增加DSP的吞吐量。然而,流水线操作可引入数据依存关系,或者冒险,每当前一条指令的结果不可得到时并且当前指令需要该前一条指令的结果时,这种情况就可能出现。当前操作在数据依存关系被解决之前,可在流水线中停止(stalled)。
【0023】通常,数据转发是基于操作的最后结果的。对许多DSP算法而言,前一个MAC操作的结果需要被加到当前MAC操作。然而,MAC操作可花费4个周期来完成,而且前一个MAC操作的结果对当前MAC操作而言可能不是可用的。既然这样(In this case),被称作积累依存关系(accumulatingdependency)的数据依存关系就被引入了。
【0024】图4A-4C示出关于标准数据转发方案的积累依存关系惩罚。该标准转发方案被用来减少积累依存关系惩罚,那里EX 402是关于其它非MAC指令的执行阶段。即使我们使用该标准数据转发,在最差的情况下,积累依存关系惩罚还是两个周期,这在图4A中示出(注意,尽管在CLA1阶段之后,最后结果为可用之前,有3个停止404,图4A中的第一停止404还是由***树单元中的资源冲突引起的,其不被认为是数据依存关系惩罚)。两个周期惩罚可能对某些DSP应用而言可能太苛刻了,因此我们需要消除积累依存关系惩罚。
【0025】MAC单元100可被用来实现新的数据转发方案,这个新的数据转发方案被称作中间数据转发,其可消除积累依存关系惩罚。不是等待来自前一个操作的最后结果,而是中间数据转发方案促进中间结果以解决数据依存关系。图5A-5C阐明图4A-4C中示出的序列,但使用中间数据转发技术而被实现。
【0026】如图5A-5C中所示,CSA0阶段500被分割成两个子阶段502(BE0)和504(WT0),以分别对操作数B0和B1进行工作台编码和***树压缩。CSA1阶段506被分割成两个子阶段508(BE1)和510(WT1),以分别对操作数B2和B3进行工作台编码和***树压缩。CLA0阶段512被分割成两个子阶段514(4T2)和516(ADD0),以对向量和最后结果的低32位加法进行4到2压缩。CLA1阶段518包括最后结果520的高32位加法(ADD1)。
【0027】在图5A和5B中所示的情况下,第一MAC指令的中间向量Vs、Vc的低32位可关于第二MAC指令被发到***树单元106和116,以解决积累依存关系。来自CLA1单元128的第一MAC指令的高32位结果被发到MUX和3到2压缩器单元126。图5A中的停止404是由***树资源冲突引起的,这并不被认为是数据依存关系惩罚。
【0028】在图5C中所示的情况下,当第二MAC指令需要第一MAC指令的最后结果时,该第一MAC指令的最后结果是不可用的,但是第一MAC指令的低32位结果是可用的。不是等待最后结果,而是第一MAC指令的低32位结果被发到***树单元106,以解决积累依存关系。来自CLA1单元126的第一MAC指令的高32位结果被发到MUC和3到2压缩器单元128。
【0029】表1中给出了图4A到4C中所示的标准数据转发技术和图5A到5C中所示的中间数据转发技术之间的积累数据依存关系惩罚比较。如表1中所示,中间数据转发可消除积累依存关系,其可允许关于许多DSP应用的较高的吞吐量。
    关于情况(A)的惩罚     关于情况(B)的惩罚     关于情况(C)的惩罚
    标准数据转发 2个周期 2个周期 1个周期
    中间数据转发 0个周期 0个周期 0个周期
                                表1
【0030】依照实施例,诸如图1中所示这样的紧密结合的双16位MAC单元可用于32位×32位指令以及16位SIMD指令。32位×32位操作可被分成4个16位×16位操作,如下面方程中所示:
A[31:0]×B[31:0]=(A[31:16]×B[15:0]×216+A[15:0]×B[15:0])+(A[31:16]×
                   B[31:16]×216+A[15:0]×B[31:16])×216.
【0031】图6是依照实施例说明32位×32位MAC操作600的流程图。在CSA0阶段中,由MUX和工作台编码器单元102产生A[15:0]×B[15:0]的部分乘积向量(块602)。***树单元106将该部分乘积向量压缩到两个向量中(块604)。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器108和进位向量触发器110中。由MUX和工作台编码器单元112产生A[31:16]×B[15:0]的部分乘积向量(块606)。***树单元116将该部分乘积向量压缩到两个向量中(块608)。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器108和进位向量触发器110中。
【0032】在CSA1阶段中,来自和向量触发器118和进位向量触发器120的两个向量被左移16位(块610)。MUX和4到2压缩器单元122将该移动的向量以及来自和向量触发器108和进位向量触发器110的另外两个向量压缩到向量Vs0和向量Vc0中(块612)。Vs0和Vc0的低16位被发送到CLA0单元124。剩余位(remaining bits)被发送回***树单元106和116。然后由CLA0单元124产生来自位0到位15的最后结果(块614)。然后,A[15:0]×B[31:16]的部分乘积向量以及来自Vs0的反馈向量被***树单元106压缩到两个向量中(块616)。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器108和进位向量触发器120中。A[31:16]×B[31:16]的部分乘积向量以及来自Vs0的反馈向量被***树单元116压缩到两个向量中(块618)。该两个向量包括和向量与进位向量,它们分别被保存在和向量触发器118和进位向量触发器120中。
【0033】在CLA0阶段,来自和向量触发器118和进位向量触发器120的两个向量被左移16位(块620)。MUX和4到2压缩器单元122将该移动的向量以及来自和向量触发器108和进位向量触发器110的另外两个向量压缩到向量Vs1和向量Vc1中(块622)。向量Vs1和Vc1的低16位与CLA0单元124相加。然后产生来自位16到位31的最后结果(块624)。
【0034】在CLA1阶段,向量Vs1和Vc1的高位(从位16到位47)与CLA1单元128相加以产生高32位最后结果(从位32到位63)(块626)。
【0035】可在包括通用计算***、数字处理***、膝上计算机、个人数字助理(PDA)和便携式电话在内的多种***中实现MAC单元100。在这样的***中,MAC单元可被包括在与存储器装置联结的处理器中,该存储器装置如闪速存储器装置或静态随机存取存储器(SRAM),其保存操作***或其它的软件应用。
【0036】这样的处理器可被用在视频可携式摄像机、远程会议、PC视频卡以及高清晰度电视(HDTV)中。另外,该处理器可连同利用诸如用在移动电话学、语音识别和其它应用中的话音处理这样的数字信号处理的其它技术来使用。
【0037】例如,图7依照实施例阐明包括处理器701的移动视频装置700,该处理器701包括MAC单元100。移动视频装置700可为手提式装置,其显示从接收自天线702或诸如数字视频盘(DVD)或存储器卡这样的数字视频存储媒体704的已经编码的视频信号中产生的视频图像。处理器100可与高速缓冲存储器706进行通信,该高速缓冲存储器可保存关于处理器操作以及诸如SRAM 708这样的其它装置的指令和数据。
【0038】已经说明了许多实施例。然而应当理解的是在不背离本发明主旨和范围的前提下可进行不同的修改。例如,可跳过流程图中的块或者执行这些块时次序颠倒,并仍旧产生需要的结果。进一步,在每SIMD指令上操作的操作数的大小和操作数的数量可以不同。因此,其它的实施例在下面权利要求的范围内。

Claims (37)

1.一种方法,其特征在于,包含:
在流水线中的第一乘法积累操作中执行第一压缩操作;
在所述第一乘法积累操作中的第一压缩操作中产生两个或更多的中间向量;以及
将至少部分所述两个或更多中间向量的每一个发到所述流水线中的第二乘法积累操作。
2.如权利要求1所述的方法,其特征在于,所述转发至少部分所述两个或更多中间向量的每一个包含转发每个所述两个或更多中间向量的较低部分(alower portions)。
3.如权利要求1所述的方法,其特征在于,所述执行所述第一压缩操作包含将第一多数部分乘积压缩到第一和向量与第一进位向量,并将第二多数部分乘积压缩到第二和向量与第二进位向量中。
4.如权利要求1所述的方法,其特征在于,所述产生两个或更多中间向量包含将所述第一和第二和向量以及所述第一和第二进位向量压缩到中间和向量与中间进位向量中。
5.如权利要求1所述的方法,其特征在于,所述转发包含将至少部分所述两个或更多中间向量的每一个发到***树压缩单元。
6.一种包含机器可读媒体的文章,其保存机器可执行指令,所述指令促使机器:
在流水线中的第一乘法积累操作中执行第一压缩操作;
在所述第一乘法积累操作中的第一压缩操作中产生两个或更多的中间向量;以及
将至少部分所述两个或更多中间向量的每一个发到所述流水线中的第二乘法积累操作。
7.如权利要求6所述的文章,其特征在于,促使所述机器转发至少部分所述两个或更多中间向量的每一个的所述指令包括促使所述机器转发所述两个或更多中间向量的每一个的较低数量位的指令。
8.如权利要求6所述的文章,其特征在于,促使所述机器执行所述第一压缩操作的所述指令包括这样的指令,该指令促使所述机器将第一多数部分乘积压缩到第一和向量与第一进位向量中,并将第二多数部分乘积压缩到第二和向量与第二进位向量中。
9.如权利要求6所述的文章,其特征在于,促使所述机器产生两个或更多中间向量的所述指令包括这样的指令,该指令促使所述机器将所述第一和第二和向量以及所述第一和第二进位向量压缩到中间和向量与中间进位向量中。
10.如权利要求6所述的文章,其特征在于,促使所述机器转发的所述指令包括促使所述机器将至少部分所述两个或更多中间向量的每一个发到***树压缩单元的指令。
11.一种方法,其特征在于,包含:
在乘法积累操作的第一***树压缩阶段中,将第一多数部分乘积压缩到第一和向量与第一进位向量中,以及将第二多数部分乘积压缩到第二和向量与第二进位向量中;
将所述第一和第二和向量以及所述第一和第二进位向量压缩到第一中间和向量与第一中间进位向量中;以及
在所述乘法积累操作的第二阶段中,压缩所述中间和向量与第三多数部分乘积,并压缩所述中间进位向量和第四多数部分乘积。
12.如权利要求11所述的方法,其特征在于,所述乘法积累操作包含单指令/多数据(SIMD)操作。
13.如权利要求11所述的方法,进一步包含:
从第一对操作数产生所述第一多数部分乘积;
从第二对操作数产生所述第二多数部分乘积;
从第三对操作数产生所述第三多数部分乘积;以及
从第四对操作数产生所述第四多数部分乘积。
14.如权利要求11所述的方法,其特征在于,进一步包含将所述中间和向量与进位向量发到流水线中的第二乘法积累操作。
15.如权利要求14所述的方法,其特征在于,所述转发包含消除所述第二乘法积累操作中的积累数据依存关系。
16.一种包含机器可读媒体的文章,其保存机器可执行指令,所述指令促使机器:
在乘法积累操作的第一***树压缩阶段中,将第一多数部分乘积压缩到第一和向量与第一进位向量中,以及将第二多数部分乘积压缩到第二和向量与第二进位向量中;
将所述第一和第二和向量以及所述第一和第二进位向量压缩到第一中间和向量与第一中间进位向量中;以及
在所述乘法积累操作的第二阶段中,压缩所述中间和向量与第三多数部分乘积,并压缩所述中间进位向量和第四多数部分乘积。
17.如权利要求16所述的方法,其特征在于,所述乘法积累操作包含单指令/多数据(SIMD)操作。
18.如权利要求16所述的文章,进一步包含这样的指令,该指令促使所述机器:
从第一对操作数产生所述第一多数部分乘积;
从第二对操作数产生所述第二多数部分乘积;
从第三对操作数产生所述第三多数部分乘积;以及
从第四对操作数产生所述第四多数部分乘积。
19.如权利要求16所述的文章,其特征在于,进一步包含促使所述机器将所述中间和向量与进位向量发到流水线中的第二乘法积累操作的指令。
20.如权利要求16所述的文章,其特征在于,促使所述机器转发的所述指令包括促使所述机器消除所述第二乘法积累操作中的积累数据依存关系的指令。
21.一种装置,其特征在于,包含:
第一和第二***树压缩单元,其作用为压缩乘法积累操作的第一和第二阶段中的向量;
压缩器,其作用为将来自所述乘法积累操作的所述第一阶段中的所述第一和第二***树单元的多数向量输出压缩到两个中间向量中;以及
从所述压缩器的输出到复用器的输入的数据通路,所述复用器可用于在所述乘法积累操作的所述第二阶段中,将其中一个所述中间向量选择性的输入到其中一个所述第一和第二***树压缩单元。
22.如权利要求21所述的装置,进一步包含双乘法积累单元。
23.如权利要求21所述的装置,其特征在于,所述多数向量包含第一和第二和向量以及第一和第二进位向量。
24.如权利要求21所述的装置,其特征在于,所述压缩器包含4到2向量压缩器。
25.如权利要求21所述的装置,其特征在于,所述复用器包含具有与所述第一***树压缩单元联结输出的第一复用器以及具有与所述第二***树压缩单元联结输出的第二复用器。
26.一种***,其特征在于,包含:
静态随机地址存储器;以及
与所述静态随机存取存储器联结的处理器,所述处理器包含双乘法积累单元,所述单元包括
第一和第二***树压缩单元,其作用为压缩乘法积累操作的第一和第二阶段的向量,
压缩器,其作用为将来自所述乘法积累操作的所述第一阶段中的所述第一和第二***树单元的多数向量输出压缩到两个中间向量中;以及
从所述压缩器的输出到复用器的输入的数据通路,所述复用器可用于在所述乘法积累操作的所述第二阶段中,将其中一个所述中间向量选择性的输入到其中一个所述第一和第二***树压缩单元。
27.如权利要求21所述的***,其特征在于,所述复用器包含具有与所述第一***树压缩单元联结输出的第一复用器以及具有与所述第二***树压缩单元联结输出的第二复用器。
28.一种方法,其特征在于,包含:
同4个n位操作一样,在第一和第二2n位操作数上执行乘法积累操作。
29.如权利要求28所述的方法,其特征在于,所述执行包含:
从所述第一操作数的所述较低n位和所述第二操作数的所述较低n位产生部分乘积向量;
从所述第一操作数的所述高n位和所述第二操作数的所述较低n位产生部分乘积向量;
从所述第一操作数的所述高n位和所述第二操作数的所述高n位产生部分乘积向量;以及
从所述第一操作数的所述较低n位和所述第二操作数的所述高n位产生部分乘积向量。
30.如权利要求28所述的方法,进一步包含:
将从所述第一操作数的所述高n位和所述第二操作数的所述较低n位产生的所述部分乘积压缩到两个中间向量中;以及
将所述中间向量左移n位。
31.如权利要求28所述的方法,其特征在于,所述执行包含在紧密结合的双n位乘法积累单元上执行所述乘法积累操作。
32.如权利要求28所述的方法,其特征在于,n等于16。
33.一种包含机器可读媒体的文章,其保存机器可执行指令,所述指令促使机器:
同4个n位操作一样,在第一和第二2n位操作数上执行乘法积累操作。
34.如权利要求33所述的文章,其特征在于,促使所述机器执行的所述指令包括这样的指令,该指令促使所述机器:
从所述第一操作数的所述较低n位和所述第二操作数的所述较低n位产生部分乘积向量;
从所述第一操作数的所述高n位和所述第二操作数的所述较低n位产生部分乘积向量;
从所述第一操作数的所述高n位和所述第二操作数的所述高n位产生部分乘积向量;以及
从所述第一操作数的所述较低n位和所述第二操作数的所述高n位产生部分乘积向量。
35.如权利要求33所述的文章,进一步包含这样的指令,该指令促使所述机器:
将从所述第一操作数的所述高n位和所述第二操作数的所述较低n位产生的所述部分乘积压缩到两个中间向量中;以及
将所述中间向量左移n位。
36.如权利要求33所述的文章,其特征在于,促使所述机器执行的所述指令包括促使所述机器在紧密结合的双n位乘法积累单元上执行所述乘法积累操作的指令。
37.如权利要求33所述的文章,其特征在于,n等于16。
CNB028196473A 2001-10-05 2002-10-03 用于单指令/多数据指令的乘法积累单元 Expired - Fee Related CN100474235C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/972,720 US7107305B2 (en) 2001-10-05 2001-10-05 Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions
US09/972,720 2001-10-05

Publications (2)

Publication Number Publication Date
CN1633637A true CN1633637A (zh) 2005-06-29
CN100474235C CN100474235C (zh) 2009-04-01

Family

ID=25520040

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028196473A Expired - Fee Related CN100474235C (zh) 2001-10-05 2002-10-03 用于单指令/多数据指令的乘法积累单元

Country Status (11)

Country Link
US (1) US7107305B2 (zh)
EP (1) EP1446728B1 (zh)
JP (2) JP4584580B2 (zh)
KR (1) KR100834178B1 (zh)
CN (1) CN100474235C (zh)
AT (1) ATE371893T1 (zh)
AU (1) AU2002334792A1 (zh)
DE (1) DE60222163T2 (zh)
HK (1) HK1065127A1 (zh)
TW (1) TWI242742B (zh)
WO (1) WO2003032187A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103570A (zh) * 2009-12-22 2011-06-22 英特尔公司 Simd向量的同步化
CN102520906A (zh) * 2011-12-13 2012-06-27 中国科学院自动化研究所 支持定浮点可重构的向量长度可配置的向量点积累加网络

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581003B1 (en) * 2001-12-20 2003-06-17 Garmin Ltd. Systems and methods for a navigational device with forced layer switching based on memory constraints
US7532720B2 (en) * 2003-10-15 2009-05-12 Microsoft Corporation Utilizing SIMD instructions within montgomery multiplication
JP4502662B2 (ja) * 2004-02-20 2010-07-14 アルテラ コーポレイション 乗算器−累算器ブロックモード分割
US7353244B2 (en) 2004-04-16 2008-04-01 Marvell International Ltd. Dual-multiply-accumulator operation optimized for even and odd multisample calculations
US20060004903A1 (en) * 2004-06-30 2006-01-05 Itay Admon CSA tree constellation
US8856201B1 (en) 2004-11-10 2014-10-07 Altera Corporation Mixed-mode multiplier using hard and soft logic circuitry
EP1710691A1 (en) * 2005-04-07 2006-10-11 STMicroelectronics (Research & Development) Limited MAC/MUL unit
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8024394B2 (en) 2006-02-06 2011-09-20 Via Technologies, Inc. Dual mode floating point multiply accumulate unit
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) * 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) * 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US7783862B2 (en) * 2006-08-07 2010-08-24 International Characters, Inc. Method and apparatus for an inductive doubling architecture
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8122078B2 (en) * 2006-10-06 2012-02-21 Calos Fund, LLC Processor with enhanced combined-arithmetic capability
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US20080140753A1 (en) * 2006-12-08 2008-06-12 Vinodh Gopal Multiplier
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
JP5376659B2 (ja) * 2009-09-03 2013-12-25 エヌイーシーコンピュータテクノ株式会社 積和演算装置及び積和演算装置の制御方法
US20110055303A1 (en) * 2009-09-03 2011-03-03 Azuray Technologies, Inc. Function Generator
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8478969B2 (en) 2010-09-24 2013-07-02 Intel Corporation Performing a multiply-multiply-accumulate instruction
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8868634B2 (en) * 2011-12-02 2014-10-21 Advanced Micro Devices, Inc. Method and apparatus for performing multiplication in a processor
WO2013095338A1 (en) * 2011-12-19 2013-06-27 Intel Corporation Simd integer multiply-accumulate instruction for multi-precision arithmetic
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9275014B2 (en) * 2013-03-13 2016-03-01 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10489155B2 (en) 2015-07-21 2019-11-26 Qualcomm Incorporated Mixed-width SIMD operations using even/odd register pairs for wide data elements
CN107977192A (zh) * 2016-10-21 2018-05-01 超威半导体公司 用于执行低功率和低延时多精度计算的方法和***
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
KR102408858B1 (ko) * 2017-12-19 2022-06-14 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
US11409525B2 (en) * 2018-01-24 2022-08-09 Intel Corporation Apparatus and method for vector multiply and accumulate of packed words
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
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

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3435744B2 (ja) * 1993-09-09 2003-08-11 富士通株式会社 乗算回路
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US5777679A (en) * 1996-03-15 1998-07-07 International Business Machines Corporation Video decoder including polyphase fir horizontal filter
JPH10207863A (ja) * 1997-01-21 1998-08-07 Toshiba Corp 演算処理装置
US5847981A (en) 1997-09-04 1998-12-08 Motorola, Inc. Multiply and accumulate circuit
US6609143B1 (en) * 1998-01-21 2003-08-19 Matsushita Electric Industrial Co., Ltd Method and apparatus for arithmetic operation
JP2000081966A (ja) * 1998-07-09 2000-03-21 Matsushita Electric Ind Co Ltd 演算装置
US6571268B1 (en) * 1998-10-06 2003-05-27 Texas Instruments Incorporated Multiplier accumulator circuits
US6542915B1 (en) * 1999-06-17 2003-04-01 International Business Machines Corporation Floating point pipeline with a leading zeros anticipator circuit
US6532485B1 (en) * 1999-09-08 2003-03-11 Sun Microsystems, Inc. Method and apparatus for performing multiplication/addition operations
US6574651B1 (en) * 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6611856B1 (en) 1999-12-23 2003-08-26 Intel Corporation Processing multiply-accumulate operations in a single cycle
US6922716B2 (en) * 2001-07-13 2005-07-26 Motorola, Inc. Method and apparatus for vector processing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103570A (zh) * 2009-12-22 2011-06-22 英特尔公司 Simd向量的同步化
US8996845B2 (en) 2009-12-22 2015-03-31 Intel Corporation Vector compare-and-exchange operation
CN102103570B (zh) * 2009-12-22 2015-08-12 英特尔公司 Simd向量的同步化
CN102520906A (zh) * 2011-12-13 2012-06-27 中国科学院自动化研究所 支持定浮点可重构的向量长度可配置的向量点积累加网络

Also Published As

Publication number Publication date
US20030069913A1 (en) 2003-04-10
DE60222163D1 (de) 2007-10-11
US7107305B2 (en) 2006-09-12
DE60222163T2 (de) 2008-06-12
JP2005532601A (ja) 2005-10-27
HK1065127A1 (en) 2005-02-08
ATE371893T1 (de) 2007-09-15
KR100834178B1 (ko) 2008-05-30
EP1446728A2 (en) 2004-08-18
WO2003032187A2 (en) 2003-04-17
EP1446728B1 (en) 2007-08-29
WO2003032187A3 (en) 2004-06-10
AU2002334792A1 (en) 2003-04-22
JP2008217805A (ja) 2008-09-18
JP4584580B2 (ja) 2010-11-24
JP4555356B2 (ja) 2010-09-29
TWI242742B (en) 2005-11-01
KR20040048937A (ko) 2004-06-10
CN100474235C (zh) 2009-04-01

Similar Documents

Publication Publication Date Title
CN1633637A (zh) 用于单指令/多数据指令的乘法积累单元
WO2001048595A1 (en) Processing multiply-accumulate operations in a single cycle
US7395298B2 (en) Method and apparatus for performing multiply-add operations on packed data
KR100329339B1 (ko) 압축데이터에의한승산-가산연산수행장치
TW405093B (en) Data processor and data processing system
EP1576493B1 (en) Method, device and system for performing calculation operations
US20130007421A1 (en) Methods and Apparatus for Efficient Complex Long Multiplication and Covariance Matrix Implementation
US20210349692A1 (en) Multiplier and multiplication method
WO1994023384A1 (en) Apparatus for adaptively processing video signals
WO1997008608A1 (en) A set of instructions for operating on packed data
EP1576494A1 (en) Method and system for performing calculation operations and a device
US6324638B1 (en) Processor having vector processing capability and method for executing a vector instruction in a processor
Tyler et al. AltiVec/sup TM: bringing vector technology to the PowerPC/sup TM/processor family
US20220012304A1 (en) Fast matrix multiplication
CN116796816B (zh) 处理器、计算芯片和计算设备
Villalba et al. Polynomial evaluation on multimedia processors
CN107315710A (zh) 全精度及部分精度数值的计算方法及装置
Brunelli et al. A flexible multiplier for media processing
WO2008077803A1 (en) Simd processor with reduction unit
CN1422402A (zh) 在通用处理器中有效多输入累加的最优化乘法器结构
Chen et al. An adaptive DSP processor for high-efficiency computing MPEG-4 video encoder
Tang et al. Integrated partition integer execution unit for multimedia and conventional applications
Fung et al. Evaluation of an SSE based parallel solution
JPH02235174A (ja) バス・マトリツクス
Chen et al. Design methodology of a hardware-efficiency VLIW architecture with highly adaptable data path

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090401

Termination date: 20181003

CF01 Termination of patent right due to non-payment of annual fee