CN1836224A - 并行处理阵列 - Google Patents

并行处理阵列 Download PDF

Info

Publication number
CN1836224A
CN1836224A CNA2004800233398A CN200480023339A CN1836224A CN 1836224 A CN1836224 A CN 1836224A CN A2004800233398 A CNA2004800233398 A CN A2004800233398A CN 200480023339 A CN200480023339 A CN 200480023339A CN 1836224 A CN1836224 A CN 1836224A
Authority
CN
China
Prior art keywords
data
multiplexer
memory element
index
parallel processing
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
CNA2004800233398A
Other languages
English (en)
Other versions
CN100472505C (zh
Inventor
O·P·冈瓦尔
A·A·阿波
R·P·克莱霍尔斯特
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.)
Callehan Tiele Co ltd
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1836224A publication Critical patent/CN1836224A/zh
Application granted granted Critical
Publication of CN100472505C publication Critical patent/CN100472505C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/32Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

构成诸如SIMD的并行处理阵列一部分的处理元件(1)包括算术逻辑部件(ALU)(3)、多路复用器(MUX)(5)、累加器(ACCU)(7)和标志寄存器(FLAG)(9)。所述ALU被配置为对由处理阵列中的所有处理元件接收到的公共指令进行操作。所述处理元件(1)还包括存储元件(SE)(11),其支持处理元件(1)中本地自定义的(即,数据相关的)处理的过程,诸如查找表操作以及存储本地系数数据。

Description

并行处理阵列
本发明涉及一种具有多个处理元件(PE)的并行处理阵列,例如单指令多数据(SIMD)处理阵列。特别的是,本发明涉及这样一种并行处理阵列,当处理数据相关的处理操作时,其适于改善阵列的效率。
在SIMD处理阵列中,阵列中的每一处理元件(PE)均经由公共指令流来接收同一指令,并且基于本地数据来执行所述指令,其中所述本地数据对于该处理元件是唯一的。因此,并行处理阵列非常适于执行高重复性的任务,在这些任务中,同时对多个数据执行相同的操作,诸如与图像处理相关联的那些操作。因此,SIMD提供了一种区域有效、可扩展的、低功率实现方式。虽然SIMD适用于数据和数据处理中涉及明显重复的应用,但是SIMD不是十分适合于执行与数据相关的处理操作。
例如,在视频处理中(例如,去交错、降噪、水平动态峰化),大多数操作对于阵列中所有数据元如出一辙,因此可以有效利用SIMD阵列。然而,诸如查找表操作或者基于阵列中数据的位置与不同系数相乘之类的与数据相关的处理操作,无法有效利用SIMD处理阵列。
图1示出了Xetal SIMD处理体系结构(Xetal是数字视频摄像机的低功率并行处理器)中典型处理元件(PE)1的示意图。所述处理元件1包括算术逻辑部件(ALU)3、多路复用器(MUX)5、累加器(ACCU)7和标志寄存器(FLAG)9。所述处理元件1接收广播指令10,所述广播指令10将被阵列(未示出)中的所有其它处理元件接收到。所述ALU 3基于本地数据来处理指令10。提供了累加器7来存储最后的结果,所述最后的结果可用作下一指令10的操作数。通常,所述ALU 3包括加法器和乘法器,由此能够在一个时钟周期内执行比较、加法、减法、数据加权和乘积的运算。通常,标志寄存器9包含1位标志,所述1位标志根据最后的结果来设定。基于此标志状态,能够使指令有条件的通过,由此允许算法中有限形式的数据相关性。
应注意的是,多路复用器5由广播指令10来控制。在Xetal体系结构中,所述多路复用器5接收多个输入信号,所述多个输入信号被有选择地连接至ALU 3。例如,多路复用器5接收来自部分行存储器6的数据以及来自左右通信信道8、12的数据。所述多路复用器5还接收系数数据(coeff)16。在此方式中,把来自累加器7的ACCU信号14用作运算的一个操作数,并且多路复用器5选择第二操作数。因此,所述第二操作数可以从左侧通信信道8、右侧通信信道12或者行存储器6中选择,或者是来自系数输入16的“固定”数字。
在此种处理器中,执行数据相关的处理、例如从查找表中检索值或者利用同一阵列的不同数据元来执行不同运算是不可能的,或者需要很长的并且很复杂的迭代。这使得SIMD处理阵列的效率非常低。
例如,在图1中所示的Xetal体系结构中,在从十个元素的查找表中检索值后执行乘法需要四十次运算。以下示出了利用Xetal指令集的实现方式,其中,为了进行查找,必须将所述值与下限进行比较:
假定r0具有所期望的阵列的数据元。
1.accu=r0;——把数据移至累加器
2.accu=MAX(accu,lower_limit0);——找到r0和lower_limit0的最大值并且存储在accu中
3.accu=accu*coeff0;——这是间隔中的操作
4.r1=PASSC(accu,r1);——如果r0在所述区域中,那么保存结果,否则把r1复制到下一间隔
如上所示,对于查找表(LUT)中的所有条目来说,例如上面提供的示例中的十个条目,必须执行上述的所有四个运算。这意味着:对于十个元素的LUT来说,需要四十次运算。
本发明的目的在于提供一种并行处理阵列,当处理数据相关操作时,可避免上述的缺陷。
根据本发明的第一方面,提供了一种并行处理阵列,其包括多个处理元件(PE),每一处理元件均接收公共指令且包括:
多路复用器,用于接收所述公共指令;
算术逻辑部件,连接至所述多路复用器,用于与累加器和标志寄存器一起处理所接收的指令;
其特征在于:处理阵列中的一个或多个处理元件还包括具有至少一个存储单元的存储元件,所述存储元件被配置为可以由所接收的指令间接寻址,由此能够处理将执行的与数据相关的操作。
当执行与数据相关的处理操作时,上面定义的处理阵列具有比常规处理阵列更加有效的优势。
依照本发明的另一方面,提供了一种在并行处理阵列中处理数据的方法,所述并行处理阵列包括多个处理元件(PE),每一处理元件均接收公共指令且包括用于接收所述公共指令的多路复用器,以及连接至所述多路复用器的算术逻辑部件,其用于与累加器和标志寄存器一起处理所接收的指令,所述方法包括如下步骤:
-在处理阵列的一个或多个处理元件中提供存储元件,所述存储元件具有至少一个存储单元;
-配置所述存储元件以便可由所接收的指令间接寻址;并且
-利用所述存储元件来处理与数据相关的操作。
为了更透彻地理解本发明,并且为了更加清楚地示出如何实现其效用,现在将参考附图作为例子进行说明,其中:
图1示出了根据现有技术的并行处理阵列的处理元件的示意图;并且
图2示出了根据本发明的并行处理阵列的处理元件的示意图。
图2示出了根据本发明的处理阵列的处理元件1。如上文图1所示,所述处理元件1包括算术逻辑部件(ALU)3、多路复用器(MUX)5、累加器(ACCU)7和标志寄存器(FLAG)9。这些元件对于“常规”处理即与数据无关的处理的操作是与上文结合图1所述的元件的操作相同的。
依照本发明,所述处理元件还包括存储元件(SE)11,其用于支持处理元件1中本地自定义(即,与数据相关的)处理的过程。
所述存储元件11包括多个存储单元SE1至SEN。在设计过程中根据特定的应用来选择存储单元的数目,并且可以是任何整数值。所述存储元件11经由多路复用器15来接收输入数据13(data_in)。所述多路复用器15被连接以便接收来自累加器7的输出端的累加器数据14,并且接收来自处理元件1的系数端口的系数数据16(coeff)。所述多路复用器15被设置为:在控制信号17的控制之下、有选择地把累加器数据14或者系数数据16作为输入数据13提供给存储元件11,所述控制信号17来自广播指令10或者形成广播指令10的一部分。
所述存储元件11还接收索引信号19,其与多路复用器21的输出相连。所述多路复用器21也被连接以便接收来自累加器7的累加器数据14,并且接收来自处理元件1的系数端口的系数数据16(coeff)。所述多路复用器21也通过控制信号17来控制,所述控制信号17来自广播指令10或者形成为广播指令10的一部分。来自存储元件11的输出数据22(data_out)与处理元件1的多路复用器5的输入相连。优选的是,在存储元件11的输出和多路复用器5之间提供寄存器2 3(cur_se),其可以用于存储存储元件11的值,正如稍候在应用中将更加详细描述的那样。
接下来,将关于在每一PE中存储不同系数以便提供阵列中每一数据与不同系数的乘法(或者任何其它运算)以及执行查找表的操作来描述图2的实施例的操作,不过用于所有PE的指令仍然是相同的。
当把存储元件11用于存储不同系数时,将系数数据16用作存储元件表的索引,并且在存储元件11中对应的存储单元SEY存储来自累加器7或者行存储器的累加器数据14。换言之,所述控制多路复用器15将累加器数据14作为输入数据13传递至存储元件11,同时控制多路复用器21传递系数数据16,所述系数数据16充当将要存储数据的相应存储单元SEY的索引19。这样做能够使正确的值被存储在存储元件11中的正确单元SE1-SEN。作为选择,如果期望,可以通过把系数数据应用于输入13并且利用累加器数据作为索引19来存储系数。
当从存储元件11加载值时,按类似于上述方式,把系数数据16用作索引19,以使来自存储元件11的相应存储单元的值在输出端可用,从而能够进行与累加器7中数据的相乘。换言之,当从存储元件11加载数据时,所述多路复用器21被设置为传递系数数据16作为存储元件11的索引19,从而从存储元件11输出相应的输出数据22。来自存储元件11的输出数据经由多路复用器5传递至ALU 3,以便与来自累加器7的数据相乘。
当利用存储元件作为每一PE中的查找表(LUT)时,存在有多个可选的方法在存储元件11中存储正确的值(lower_limit,最终值)。
一种方法是使用一部分系数输入作为索引,而另一部分作为将存储的值。换言之,部分系数数据16由多路复用器21传递以便作为存储元件11的索引19,而另一部分的系数数据16由多路复用器15传递以便作为将存储的值。尽管此方法具有增加了系数数据信号宽度的缺点,但是其具有在一个周期内存储值的优势。
另一种方法是借助于累加器7和/或ALU 3来生成地址或者索引19,由此能够生成不同的地址,并且反过来通过依照存储指令把该地址应用于存储元件11还能够使得相同的值被存储在PE的存储元件的不同单元,如此使得系数数据16的值被存储在存储元件11的相应存储单元SEY中。依照此布置,所述多路复用器15被设置为传递系数数据16,同时所述多路复用器21提供由累加器7和/或ALU 3生成的索引19。此方法具有需要更窄系数数据信号的优势,但是具有要求一个额外处理操作的缺点。
为了从存储元件11加载值,把累加器7的值用作索引19,并且把从存储元件11查找到的值存储在寄存器23(curr_se)中以供进一步使用。换言之,通过多路复用器21传递来自累加器7的累加器数据14,以便为存储元件11提供索引19。来自相应存储单元SEY的相应的值形成存储元件11的输出数据22,并且被直接传递至多路复用器5,或者存储在寄存器23以供稍候使用。应注意的是,当以低频运行时,能够绕过寄存器23(cur_se)以便在一个周期中执行操作。
如上所述的本发明提供了一种改善的处理机阵列,由于它使处理元件能够依照如下任一方式来操作:
a)每一PE基于广播指令执行相同的操作,(即,“正常的”操作)
b)PE基于待处理的数据来使用不同的系数以便执行相同广播指令,或者
c)当接收到令所有PE执行LUT操作的广播时,所述PE就执行查找表中已经描述的功能。
在视频处理应用中,例如,可以基于对行的处理(例如,去交错、降噪、水平动态峰化)来执行大多数功能,或者可以根据基于行的处理的术语来表示(例如,通过累积2×2块作为两行并且执行基于行的处理,可以基于行来处理具有2×2块大小的上变频器)大多数功能。这意味着大部分操作对于阵列中的所有数据元如出一辙,并且因此可以利用上面(a)中所描述的“正常”PE操作来执行。
然而,当执行诸如基于数据在阵列中的位置而与不同系数相乘(或者其它操作数)的任务时,根据本发明的处理元件被配置为依照上面(b)中所描述的那样操作。
同样,对于LUT操作来说,所述处理元件被配置为依照上文(c)中所描述那样操作。
本发明具有如下优势:利用SIMD处理的属性,当将要执行与数据相关的处理操作时仍可提供更加有效的操作。例如,在本发明中,与查找值相乘的处理往往采取两个操作(取决于对LUT操作的实现方式的选择),这只是早先描述的需要四十个指令的方法的5%左右。
因此,本发明提供了一种每处理元件间接可寻址的存储器,其可以用于与数据相关的操作,诸如查找表运算,并且访问可以用于所有PE的相同指令的不同系数。
应注意的是,由于存储元件而使处理元件所需增加的区域不是有害因素,这是因为所述互连区域是这种芯片上的主宰因素。由此,把存储元件放置在算术逻辑部件(ALU)附近可避免通信网络的进一步过载(即,布线开销)。
尽管已经联系视频处理描述了优选的实施例,但是所属技术领域的专业人员将理解,根据本发明的处理元件还可以用于其它功能。
此外,尽管已经联系Xetal体系结构描述了优选的实施例,但是本发明同样适用于其它形式的并行处理体系结构。

Claims (32)

1.一种并行处理阵列,包括多个处理元件(PE),每一处理元件均接收公共指令并包括:
-多路复用器,用于接收所述公共指令;
-算术逻辑部件,连接至所述多路复用器,用于与累加器和标志寄存器一起处理所接收的指令;
其特征在于:处理阵列中的一个或多个处理元件还包括具有至少一个存储单元的存储元件,所述存储元件被配置为可由所接收的指令间接寻址,从而能够执行与数据相关的操作的处理。
2.如权利要求1所述的并行处理阵列,其中所述存储元件包括:
-用于接收待存储的数据的输入数据端口;
-用于寻址存储元件中的存储单元的索引信号;以及
-用于从所述存储元件输出数据的输出端口。
3.如权利要求2所述的并行处理阵列,其中所述存储元件的输入数据端口被连接以便接收来自输入多路复用器的数据,所述输入多路复用器被配置为传递累加器数据或者系数数据。
4.如权利要求2或者3所述的并行处理阵列,其中所述索引信号是从索引多路复用器接收的,所述索引多路复用器被配置为有选择地传递累加器数据或者系数数据,或者部分接收到的指令。
5.如权利要求3或者4所述的并行处理器,其中所述输入多路复用器和/或索引多路复用器是由所接收的指令来控制的。
6.如先前任一项权利要求所述的并行处理阵列,其中所述存储元件被配置为基于待处理的数据来向处理元件提供系数。
7.如权利要求6所述的并行处理阵列,其中所述输入多路复用器被配置为当存储系数数据时,将累加器数据传递至存储元件,所述系数数据被存储在由索引信号定义的存储单元中。
8.如权利要求6所述的并行处理阵列,其中所述输入多路复用器被配置为将系数数据传递至存储元件,存储在由索引信号定义的存储单元中。
9.如权利要求7或者8所述的并行处理阵列,其中所述索引信号是通过由索引多路复用器接收的系数数据定义的。
10.如权利要求7或者8所述的并行处理阵列,其中所述索引信号是通过由索引多路复用器接收的累加器数据定义的。
11.如先前任一项权利要求所述的并行处理阵列,其中所述存储元件被配置为向处理元件提供本地查找表。
12.如权利要求11所述的并行处理阵列,其中所述输入多路复用器被配置为将系数数据传递至存储元件,以便存储在由索引信号定义的单元中。
13.如权利要求12所述的并行处理阵列,其中所述索引信号是通过由索引多路复用器接收的累加器数据定义的。
14.如权利要求11所述的并行处理阵列,其中所述输入多路复用器被配置为传递作为待存储在存储元件中数据的第一部分系数数据,并且所述索引多路复用器被设置为传递作为定义存储地址的索引信号的另一部分系数数据。
15.如先前任一项权利要求所述的并行处理阵列,还包括用于在存储元件的输出与多路复用器的输入之间存储数据的寄存器。
16.如先前任一项权利要求所述的并行处理阵列,其中所述处理阵列是单指令多数据(SIMD)处理阵列。
17.一种在并行处理阵列中处理数据的方法,所述并行处理阵列包括多个处理元件(PE),每一处理元件均接收公共指令并包括用于接收所述公共指令的多路复用器,以及连接至所述多路复用器的算术逻辑部件,其用于与累加器和标志寄存器一起处理所接收的指令,所述方法包括如下步骤:
-在处理阵列的一个或多个处理元件中提供存储元件,所述存储元件具有至少一个存储单元;
-配置所述存储元件以便可由所接收的指令间接寻址;并且
-利用所述存储元件来处理与数据相关的操作。
18.如权利要求17所述的方法,还包括如下步骤:
-在所述存储元件中提供输入数据端口以便接收待存储的数据;
-提供索引信号以便寻址所述存储元件中的存储单元;并且
-提供输出端口以便从所述存储元件输出数据。
19.如权利要求18所述的方法,还包括如下步骤:连接所述存储元件的输入数据端口以便接收来自输入多路复用器的数据,并且配置所述输入多路复用器以便传递累加器数据或者系数数据。
20.如权利要求18或者19所述的方法,还包括如下步骤:提供索引多路复用器以便提供索引信号,并且配置所述索引多路复用器以便有选择地传递累加器数据或者系数数据,或者部分接收到的指令。
21.如权利要求19或者20所述的方法,还包括利用所接收的指令来控制输入多路复用器和/或索引多路复用器的步骤。
22.如权利要求17至21任一项所述的方法,还包括如下步骤:配置所述存储元件以便基于待处理的数据来向处理元件提供系数。
23.如权利要求22所述的方法,还包括如下步骤:配置所述输入多路复用器以便当存储系数数据时,把累加器数据传递至所述存储元件,所述系数数据被存储在由索引信号定义的存储单元中。
24.如权利要求22所述的方法,还包括如下步骤:配置所述输入多路复用器以便把系数数据传递至所述存储元件,并且把系数数据存储在由索引信号定义的存储单元中。
25.如权利要求23或者24所述的方法,其中所述索引信号是通过由索引多路复用器接收的系数数据定义的。
26.如权利要求23或者24所述的方法,其中所述索引信号是通过由索引多路复用器接收的累加器数据定义的。
27.如权利要求17至26任一项所述的方法,还包括如下步骤:配置所述存储元件以便向处理元件提供本地查找表。
28.如权利要求27所述的方法,其中所述输入多路复用器被配置为把系数数据传递至存储元件,以便存储在由索引信号定义的单元中。
29.如权利要求28所述的方法,其中所述索引信号是通过由索引多路复用器接收的累加器数据定义的。
30.如权利要求27所述的方法,还包括如下步骤:配置所述输入多路复用器以便传递作为待存储在存储元件中数据的第一部分系数数据,并且设置所述索引多路复用器以便传递作为定义存储器地址的索引信号的另一部分系数数据。
31.如权利要求17至30任一项所述的方法,还包括如下步骤:在存储元件的输出端和多路复用器的输入端之间提供用于存储数据的寄存器。
32.如权利要求17至31任一项所述的方法,其中所述处理阵列是单指令多数据(SIMD)处理阵列。
CNB2004800233398A 2003-08-15 2004-08-03 并行处理阵列 Expired - Lifetime CN100472505C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03102550.5 2003-08-15
EP03102550 2003-08-15

Publications (2)

Publication Number Publication Date
CN1836224A true CN1836224A (zh) 2006-09-20
CN100472505C CN100472505C (zh) 2009-03-25

Family

ID=34178568

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800233398A Expired - Lifetime CN100472505C (zh) 2003-08-15 2004-08-03 并行处理阵列

Country Status (9)

Country Link
US (1) US7725681B2 (zh)
EP (1) EP1656622B1 (zh)
JP (1) JP2007503039A (zh)
KR (1) KR20060060689A (zh)
CN (1) CN100472505C (zh)
AT (1) ATE362625T1 (zh)
DE (1) DE602004006516T2 (zh)
TW (1) TW200521702A (zh)
WO (1) WO2005017765A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008043287A1 (en) * 2006-10-03 2008-04-17 Hong Kong Applied Science And Technology Research Institute Co. Ltd (Astri) Configurable single instruction multiple data unit
CN101035071B (zh) * 2007-04-16 2010-09-29 中国人民解放军国防科学技术大学 并行simd结构中条件数据路由方法
CN102651797A (zh) * 2011-02-25 2012-08-29 西安邮电学院 一种新型阵列视频信号处理单元结构

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853636B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit for convergent rounding
US7853632B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Architectural floorplan for a digital signal processing circuit
US7865542B2 (en) 2003-12-29 2011-01-04 Xilinx, Inc. Digital signal processing block having a wide multiplexer
US7844653B2 (en) 2003-12-29 2010-11-30 Xilinx, Inc. Digital signal processing circuit having a pre-adder circuit
US7840630B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Arithmetic logic unit circuit
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7849119B2 (en) 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
US7840627B2 (en) * 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7860915B2 (en) 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7882165B2 (en) 2003-12-29 2011-02-01 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
US7853634B2 (en) 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a SIMD circuit
US20080229063A1 (en) * 2005-09-05 2008-09-18 Koninklijke Philips Electronics, N.V. Processor Array with Separate Serial Module
US7958179B2 (en) 2006-12-06 2011-06-07 Electronics And Telecommunications Research Institute Arithmetic method and device of reconfigurable processor
EP2101258B1 (en) * 2008-03-10 2016-05-25 Mobileye Vision Technologies Ltd. Enhanced look-up table signal processing
US8479133B2 (en) 2009-01-27 2013-07-02 Xilinx, Inc. Method of and circuit for implementing a filter in an integrated circuit
US8543635B2 (en) 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
CN103235762B (zh) * 2013-04-19 2016-06-22 中国科学院自动化研究所 一种自索引寄存器文件堆装置
US9830150B2 (en) * 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10565494B2 (en) * 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator
US10565492B2 (en) * 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator
US10586148B2 (en) * 2016-12-31 2020-03-10 Via Alliance Semiconductor Co., Ltd. Neural network unit with re-shapeable memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPH0743698B2 (ja) 1985-04-08 1995-05-15 工業技術院長 並列デ−タ処理装置
EP0509055A4 (en) * 1990-01-05 1994-07-27 Maspar Computer Corp Parallel processor memory system
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5526501A (en) 1993-08-12 1996-06-11 Hughes Aircraft Company Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
JPH0830577A (ja) 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
US5689677A (en) * 1995-06-05 1997-11-18 Macmillan; David C. Circuit for enhancing performance of a computer for personal use
US6272615B1 (en) * 1997-05-02 2001-08-07 Texas Instruments Incorporated Data processing device with an indexed immediate addressing mode
ATE362623T1 (de) 1997-11-07 2007-06-15 Altera Corp Verfahren und gerät für effiziente, synchrone mimd-operationen mit ivliw pe-zu-pe kommunikationen
JP2001273267A (ja) 2000-03-27 2001-10-05 Ricoh Co Ltd Simd型プロセッサー、並列処理装置、画像処理装置、複写機、プリンター、ファクシミリ装置、スキャナー、並列処理方法、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
DE10159283A1 (de) 2001-12-04 2003-06-12 Systemonic Ag Verfahren und Anordnung zur Adressgenerierung in einem Prozessor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008043287A1 (en) * 2006-10-03 2008-04-17 Hong Kong Applied Science And Technology Research Institute Co. Ltd (Astri) Configurable single instruction multiple data unit
CN101371248B (zh) * 2006-10-03 2010-12-15 香港应用科技研究院有限公司 可配置的单指令多数据单元
CN101035071B (zh) * 2007-04-16 2010-09-29 中国人民解放军国防科学技术大学 并行simd结构中条件数据路由方法
CN102651797A (zh) * 2011-02-25 2012-08-29 西安邮电学院 一种新型阵列视频信号处理单元结构

Also Published As

Publication number Publication date
US20060253516A1 (en) 2006-11-09
WO2005017765A2 (en) 2005-02-24
JP2007503039A (ja) 2007-02-15
US7725681B2 (en) 2010-05-25
TW200521702A (en) 2005-07-01
ATE362625T1 (de) 2007-06-15
DE602004006516T2 (de) 2008-01-17
DE602004006516D1 (de) 2007-06-28
EP1656622A2 (en) 2006-05-17
WO2005017765A3 (en) 2005-04-21
KR20060060689A (ko) 2006-06-05
CN100472505C (zh) 2009-03-25
EP1656622B1 (en) 2007-05-16

Similar Documents

Publication Publication Date Title
CN1836224A (zh) 并行处理阵列
US6092094A (en) Execute unit configured to selectably interpret an operand as multiple operands or as a single operand
US6611856B1 (en) Processing multiply-accumulate operations in a single cycle
US20070271325A1 (en) Matrix multiply with reduced bandwidth requirements
WO2021108660A1 (en) Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range
US6601077B1 (en) DSP unit for multi-level global accumulation
WO2001035224A1 (en) Bit-serial memory access with wide processing elements for simd arrays
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
JPH06208456A (ja) 集積化乗算/累算ユニットを有するcpu
US7519646B2 (en) Reconfigurable SIMD vector processing system
US20130212353A1 (en) System for implementing vector look-up table operations in a SIMD processor
JPH11511577A (ja) パック・データの乗加算演算を実行する装置
CN115552523A (zh) 使用存储器内处理的基于计数器的乘法
US12079592B2 (en) Deep neural network accelerator including lookup table based bit-serial processing elements
US11586442B2 (en) System and method for convolving image with sparse kernels
EP1055997A1 (en) A floating-point unit which utilizes standard MAC units for performing SIMD operations
US8024549B2 (en) Two-dimensional processor array of processing elements
US6404934B1 (en) High speed image processing apparatus using a cascade of elongated filters programmed in a computer
CN117634569B (zh) 基于risc-v扩展指令的量化神经网络加速处理器
Yi et al. Fpga based accelerator for neural networks computation with flexible pipelining
US7392276B2 (en) Efficient multiplication sequence for large integer operands wider than the multiplier hardware
US5931892A (en) Enhanced adaptive filtering technique
US20220012304A1 (en) Fast matrix multiplication
US20210233202A1 (en) System and method for convolving an image
US6504959B1 (en) Image processing apparatus using a cascade of poly-point operations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20071012

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20071012

Address after: Holland Ian Deho Finn

Applicant after: NXP B.V.

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: KALAI HANXILE CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120113

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120113

Address after: American Delaware

Patentee after: Callehan Tiele Co.,Ltd.

Address before: Holland Ian Deho Finn

Patentee before: NXP B.V.

CX01 Expiry of patent term

Granted publication date: 20090325

CX01 Expiry of patent term