并行处理阵列的制作方法

文档序号:6491678阅读:250来源:国知局
专利名称:并行处理阵列的制作方法
技术领域
本发明涉及一种具有多个处理元件(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体系结构描述了优选的实施例,但是本发明同样适用于其它形式的并行处理体系结构。
权利要求
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)处理阵列。
全文摘要
构成诸如SIMD的并行处理阵列一部分的处理元件(1)包括算术逻辑部件(ALU)(3)、多路复用器(MUX)(5)、累加器(ACCU)(7)和标志寄存器(FLAG)(9)。所述ALU被配置为对由处理阵列中的所有处理元件接收到的公共指令进行操作。所述处理元件(1)还包括存储元件(SE)(11),其支持处理元件(1)中本地自定义的(即,数据相关的)处理的过程,诸如查找表操作以及存储本地系数数据。
文档编号G06F15/80GK1836224SQ200480023339
公开日2006年9月20日 申请日期2004年8月3日 优先权日2003年8月15日
发明者O·P·冈瓦尔, A·A·阿波, R·P·克莱霍尔斯特 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1