管理阵列处理器中的数据的方法及执行此方法的阵列处理器的制作方法

文档序号:6512766阅读:183来源:国知局
专利名称:管理阵列处理器中的数据的方法及执行此方法的阵列处理器的制作方法
技术领域
本发明涉及一种阵列处理器中的数据管理方法及一种实施此方法的阵列处理器,尤其是加速了此阵列处理器中数据的传输。
背景技术
已知的是通过多个处理器并行即同时操作以管理复杂的计算任务来提高电子设备的计算能力。
因此,电子系统中的几个处理器共享要由此系统实施的部分操作,以提高系统的全局操作时间,对于实时管理如多媒体数据(图像、视频等)等重要数据流的电子系统,这种分配尤为重要。
阵列处理器是包括一组被称为基本处理器或EP、实现了并行数据处理操作的处理器的处理器。以可以是一维的阵列的形式、以例如在以其中以有规律的形式定位EP的矩形阵列的形式排列基本处理器时的二维基本处理器对准的形式,物理上排列这些基本处理器。
在以二维形式排列基本处理器的情况下,每个基本处理器可以通过连接阵列中的基本处理器的格状通信网络,发送和接收与其四个方向上(北、南、东、西)的相邻基本处理器之一有关的、每个操作循环(由控制系统的时钟所确定的循环)的数据。
此外,当基本处理器位于给定方向上阵列的边缘时,其还被称为位于此方向的相反方向的阵列边缘的基本处理器的、此给定方向上的“旁路”邻居,并从而与之相连。
还应当注意,每个基本处理器具有基本存储器单元,其中存储在下一循环能够发送或不能发送到邻近基本处理器的、正在进行处理的数据。
阵列处理器还包含控制装置,尤其负责
-管理由阵列处理器执行的程序的指令;-向基本处理器发送指令,从而使这些基本处理器执行相应的操作;-执行用于在阵列处理器中(例如在基本处理器之间)传送数据的指令。
阵列处理器的特定示例为SIMD(单指令多数据)型阵列处理器,其中所有基本处理器对处理器已经存储在其存储器中的不同数据实施相同的数据处理功能。
换句话说,存在基本处理器的功能均匀性,不同之处仅在于其在阵列中的位置及存储在其存储器中的数据。
图1是示出了作为基本处理器阵列的阵列处理器100的一些元件的示意图。在此示例中,阵列103是具有16个基本处理器104(i,j)的二维4×4的,i和j在0和3之间。
每个基本处理器EP通过通信链路108与控制装置102相连,尽管为了清楚起见,在图1中只示出了EP 104(0,0)与控制装置102之间的连接。这些控制装置尤其执行存储在程序存储器101中的程序。
图2示意性地示出了基本阵列处理器200(i,j)的阵列200的示例,i和j在0和3之间,尺寸为4×4,通过不同基本处理器之间的格状通信网络彼此相连。
每个基本处理器202(i,j)具有内部通信寄存器204(i,j),其中保存此处理器在每个操作循环要发送的数据。
此外,这些基本处理器EP 202(i,j)通过用于将基本处理器202(i,j)与物理相邻基本处理器202(n,m)相连的格状网络的通信链路206{(i,j)(n,m)}或通过如下所述进行旁路彼此相连,i、j、n和m在0和3之间。为了清楚起见,在图2中只引用了链路206{(0,0)(0,1)}。
因此,每个基本处理器通过4个可能方向(北210、南212、西214和东216)上的格状通信网络与4个其他基本处理器相连。例如,基本处理器202(0,0)与以下基本处理器相连-方向南212上的基本处理器202(1,0);
-方向东216上的基本处理器202(0,1);-方向西214上的、旁路邻居、基本处理器204(0,3);-方向北210上的、旁路邻居、基本处理器204(3,0)。
此类阵列处理器尤其适用于针对设置了统一数据运动的算法,尤其是视频图像处理算法,每个时钟循环,在基本处理器之间移动数据。事实上,其包括以下几个优点-阵列中数据传输命令的简单性,(向北、南、东或西的位移),针对相同的命令,使所有基本处理器根据相同的方向发送数据;以及-基本处理器之间的简易连接,允许其预报与电信号相关的时间,这些时间作为结果也较为简易。
但是,已经发现根据现有技术的阵列处理器在管理基本处理器间的通信方面存在困难。
结果,控制装置不能命令不规则的数据移动,即两个基本处理器间的独特移动,由于对于针对所有基本处理器的数据移动,指令必须统一。
此外,由于“边效应”,当从位于阵列边缘的基本处理器请求或发送数据时,可能需要大量的循环来发送此数据。在阵列边缘的基本处理器数量与基本处理器的总数相比较多的情况下,这种效应更为严重。例如,边效应对于4×4阵列比对于128×128阵列更为严重。

发明内容
本发明致力于克服上述问题中的至少一个。本发明涉及一种用于管理包括基本处理器的阵列处理器中的数据的方法,形成n个轴的阵列,从而使每个基本处理器根据所述阵列的2n个方向中的每一个与相邻基本处理器相连,每个基本处理器由确定了应当在随后的循环中向此基本处理器发送数据的相邻基本处理器的相同指令控制,其特征在于将专用于根据阵列的每个轴的数据交换的通信寄存器与此基本处理器相关联,并将基本处理器在阵列中的位置的条件集成在每个指令中,以确定发送在随后循环中被考虑的数据的相邻基本处理器。
由于本发明,极大地提高了SIMD型阵列处理器的算法执行效率,例如,针对视频图像处理。事实上,本发明通过由SIMD阵列处理器的控制装置发送的相同统一通信指令,根据其在阵列中的位置,获得了每个基本处理器的不同处理。
因此,根据本发明的方法优化了通过阵列处理器的内部网络中的最优路由、从第一基本处理器向第二基本处理器的数据传送,尤其是不具有“边效应”。
本发明还涉及阵列处理器,包括基本处理器,形成n个轴的阵列,从而使每个基本处理器根据所述阵列的2n个方向中的每一个与相邻基本处理器相连,每个基本处理器由确定了应当在随后的循环中向此基本处理器发送数据的相邻基本处理器的相同指令控制,其特征在于每个基本处理器均包含专用于根据阵列的每个轴的数据交换的通信寄存器,并且每个基本处理器能够从控制装置接收包含基本处理器在阵列中的位置的条件的指令,以确定要在随后循环中发送到其通信寄存器中的每一个的数据。
在一个实施例中,向每个基本处理器分配用于标识其在阵列中的位置的比特序列,从而通过将此比特序列与在指令中接收到的比特序列进行比较,来确定基本处理器的位置。
根据一个实施例,用于标识基本处理器在阵列中的位置的比特序列是2n比特序列,针对每个基本处理器,表示此基本处理器是否位于阵列的边缘。
在一个实施例中,所述阵列包括两个轴和四个方向。
根据一个实施例,向每个基本处理器分配四个电元件,当启用所述基本处理器时,置位其电压,并在启用所述基本处理器的同时,保持置位。这四个元件的电压提供了表示所述基本处理器在阵列中的位置的比特序列。
在一个实施例中,从控制装置接收到的指令包含如果位置条件有效则应当将其数据复制到基本处理器的通信寄存器中的基本处理器的第一标识;以及如果位置条件无效则应当复制其数据的基本处理器的第二标识。
根据一个实施例,每个基本处理器的通信寄存器是独立的。
在一个实施例中,每个基本处理器包含至少两个专用于根据阵列的轴的数据交换的通信寄存器,从而根据此轴,通过至少两个数据通信网络,将每个基本处理器与相邻基本处理器相连。
根据一个实施例,针对每个通信寄存器,每个基本处理器还包括根据阵列的通信轴中的每一个与相邻基本处理器相连的多路复用器,此多路复用器包括用于选择要被复制到此通信寄存器中的、由这些相邻基本处理器之一发送的数据的装置。
在一个实施例中,基本处理器的每个通信寄存器能够在每个操作循环复制以下数据-此基本处理器中的内部寄存器的数据;-来自相邻基本处理器的相同轴的寄存器的数据;-来自相邻基本处理器的另一轴的寄存器的数据;-在循环之前包含在此相同寄存器中的数据。
根据一个实施例,在基本处理器位于阵列的边缘的情况下,相邻处理器位于阵列的另一边缘。


通过以下描述性而非限制性并参照附图、作为示例而进行的描述,本发明的其他特征和优点将逐渐显现,其中图1,已进行了描述,示意性地示出了根据现有技术的阵列处理器;图2,已进行了描述,示意性地示出了根据现有技术的基本处理器的阵列及其用于数据传输的格状网络;图3示意性地示出了根据本发明的阵列处理器的阵列;以及图4是根据本发明的基本处理器的通信装置的示意图。
具体实施例方式
在以下所描述的本发明的实施例中(图3),每个基本处理器均具有第一组通信寄存器X1和X2,用于沿方向西314和东316的通信;以及第二组通信寄存器Y1和Y2,用于沿方向北310和南312的通信。
因此,每个基本处理器的通信寄存器组由四个寄存器构成,X1、X2、Y1和Y2。因此,阵列处理器的特征在于沿水平轴(西314/东316)和垂直轴(北310/南312)的双重通信网络。
在本实施例的变体中,每个基本处理器包含用于阵列的n个轴的通信的2×n个通信寄存器,n是正整数。
在给定基本处理器的每组通信寄存器中,基本处理器的内部寄存器在每个时钟循环可以取得以下数据-此基本处理器中第二内部寄存器的数据;-物理相邻基本处理器或通过旁路,位于东316的基本处理器的X1或X2寄存器的数据;-物理相邻基本处理器或通过旁路,位于西314的基本处理器的X1或X2寄存器的数据;-物理相邻基本处理器或通过旁路,位于北310的基本处理器的Y1或Y2寄存器的数据;-物理相邻基本处理器或通过旁路,位于南312的基本处理器的Y1或Y2寄存器的数据;-相对于时钟循环以前的寄存器内容没有变化。
在每个时钟循环,阵列处理器的控制装置(未示出)发送条件通信指令,以指示哪些数据必须被定位于每个通信寄存器中。
为此目的,由控制装置发送的每个通信指令具有第一“条件”字段、第二“第一源”字段和被成为“第二源”的第三字段,如下详细所述。
条件字段由四个比特组成,即针对北边缘的一比特、针对南边缘的一比特、针对东边缘的一比特和针对西边缘的一比特。
如果基本处理器位于由条件的有效比特所表示的边缘之一,则基本处理器使包含在条件字段中的条件有效。如果启用了条件比特中多于一个比特,则在与基本处理器的位置的两个比较之间实施“或”函数,以使该条件有效或无效。
如果给定的基本处理器有效条件字段中的条件,则“第一源”字段标识应当将其数据复制到第一基本处理器的相关寄存器中的第二基本处理器。
如果给定的基本处理器无效条件字段中的条件,则“第二源”标识应当被复制到相关基本处理器的寄存器中的源。
图3示出了根据本发明的、包含16个基本处理器302(i,j)的阵列300(i和j在0和3之间)的示例的示意图。
每个处理器302(i,j)具有用于西314-东316轴上的通信的两个寄存器X1和X2和用于北310-南312轴上的通信的两个寄存器Y1和Y2。
此外,每个寄存器能够通过以水平箭头304和垂直箭头306所表示的格状通信网络导入或导出数据。每个基本处理器与4个相邻基本处理器进行通信(具有或不具有旁路)北方向1个、南方向1个、东方向1个和西方向1个。
例如,基本处理器302(0,0)可以进行以下通信-其X1和X2通信寄存器,在读和写模式下,与基本处理器302(0,3)和基本处理器302(0,1)进行通信;-其Y1和Y2通信寄存器,在读和写模式下,与基本处理器302(3,0)和基本处理器302(1,0)进行通信。
4比特位置字与每个基本处理器相关联。在图3中,表示了与每个基本处理器相关联的4比特字(为了清楚起见,只引用字302(0,0)L),从而-如果给定的基本处理器位于北边缘,则第一比特等于1,否则等于0;-如果给定的基本处理器位于南边缘,则第二比特等于1,否则等于0;-如果给定的基本处理器位于东边缘,则第三比特等于1,否则等于0;-如果给定的基本处理器位于西边缘,则第四比特等于1,否则等于0。
可以通过在SIMD阵列处理器上电时根据基本处理器的位置上电或不上电、且其电压直到SIMD阵列处理器掉电为止不再变化的四根导线来现实四比特字与每个基本处理器的关联。
-位于阵列的边缘的满足条件北310的基本处理器为基本处理器302(0,0)、302(0,1)、302(0,2)、302(0,3);-位于阵列的边缘的满足条件南312的基本处理器为基本处理器302(3,0)、302(3,1)、302(3,2)、302(3,3);-位于阵列的边缘的满足条件东316的基本处理器为基本处理器302(0,3)、302(1,3)、302(2,3)、302(3,3);以及-位于阵列的边缘的满足条件西314的基本处理器为基本处理器302(0,0)、302(1,0)、302(2,0)、302(3,0)。
可以利用逻辑“或”函数对条件进行组合。例如,满足条件北和西(应当理解为北或西)的基本处理器为基本处理器302(0,0)、302(0,1)、302(0,2)、302(0,3)、302(1,0)、302(2,0)、302(3,0)。
图4示出了如图3所示的这些基本处理器302(i,j)之一的细节,与其寄存器X1、X2、Y1和Y2相关联的通信模式使得这些寄存器的每一个可以发送或接收与相邻基本处理器302(i,j)的任何其他寄存器X1’、X2’、Y1’和Y2’有关的数据。
为此目的,如果考虑如X1寄存器,利用包含两个子寄存器X1_XCOM和X1_YCOM的多路复用器400X1,其中保存可能由相邻基本处理器302’(i,j)发送过来的、或者通过寄存器通信网络X1或X2或寄存器通信网络Y1或Y2发送过来的数据。
因此,子寄存器X1_XCOM包含专用于X1网络数据、东(E)或西(W)和专用于X2网络数据、东(E)或西(W)的链路402,从而其能够存储来自与相邻基本处理器之间的这些链路中的每一个的数据。
按照类似的方式,子寄存器X1_YCOM包含专用于Y1网络数据、北(N)或南(S)和专用于Y2网络数据、北(N)或南(S)的链路404,从而其能够存储来自与相邻基本处理器之间的这些链路中的每一个的数据。
最后,为了将其用在新循环中,使用第三子寄存器X1_SRC存储已经包含在基本处理器302(i,j)自身的X1寄存器中的数据。
因此,似乎是,考虑到由阵列的控制装置(未示出)发送过来的位置条件(以X1_OP表示),多路复用器400X1能够通过简单的选择,集成来自X1、X2、Y1、Y2网络或已经包含在基本处理器中的数据。
随后,通过与X1网络相关联的装置406,向X1网络发送用于计算循环的、集成在X1寄存器中的数据。
为此目的,应当注意,这些装置406允许沿东和西方向发送数据。
按照类似的方式,示出了与Y1寄存器相关联的通信装置的细节,利用包含两个子寄存器Y1_XCOM和Y1_YCOM的多路复用器400Y1,其中保存由相邻基本处理器302’(i,j)发送过来的、或者通过寄存器通信网络X1或X2或寄存器通信网络Y1或Y2发送过来的任何数据。
这些子寄存器的操作类似于前述子寄存器的操作,子寄存器Y1_XCOM包含专用于X1网络数据、东(E)或西(W)和X2网络数据、东(E)或西(W)的链路402’,以及子寄存器Y1_YCOM包含专用于Y1网络数据、北(N)或南(S)和Y2网络数据、北(N)或南(S)的链路404’,而且为了将其用在新循环中,使用第三子寄存器Y1_SRC存储已经包含在基本处理器302(i,j)自身的Y1寄存器中的数据。
因此,根据由阵列的控制装置(未示出)发送过来的位置条件(以Y1_OP表示),多路复用器400Y1能够通过简单的选择,集成来自X1、X2、Y1、Y2网络或已经包含在基本处理器中的数据。
随后,通过与X1网络相关联的装置406’,向X1网络发送用于计算循环的、集成在Y1寄存器中的数据,这些装置406’允许沿北和南方向发送数据。
X2和Y2寄存器包含相同的、基于上述针对X1和Y1寄存器的多路复用器的通信装置。但是,为了简化的目的,在图4中并未示出。
权利要求
1.一种用于管理包括基本处理器(302(i,j)、302(i’,j’))的阵列处理器中的数据的方法,形成n个轴的阵列(300),从而使每个基本处理器(302(i,j))根据所述阵列(300)的2n个方向(310、312、314、316)中的每一个与相邻基本处理器(302(i’,j’))相连,每个基本处理器由确定了应当在随后的循环中向此基本处理器(302(i,j))发送数据的相邻基本处理器(302(i’,j’))的相同指令控制,其特征在于将专用于根据阵列(300)的每个轴的数据交换的通信寄存器(X1、X2、Y1、Y2)与此基本处理器(302(i,j))相关联,并将基本处理器(302(i,j))在阵列(300)中的位置的条件集成在每个指令中,以确定在随后循环中发送数据的相邻基本处理器(302(i’,j’))。
2.一种阵列处理器(300),包括基本处理器(302(i,j)、302(i’,j’)),形成n个轴的阵列(300),从而使每个基本处理器302(i,j)根据所述阵列(300)的2n个方向(310、312、314、316)中的每一个与相邻基本处理器(302(i’,j’))相连,每个基本处理器由确定了应当在随后的循环中向此基本处理器(302(i,j))发送数据的相邻基本处理器的相同指令控制,其特征在于每个基本处理器(302(i,j))均包含专用于根据阵列的每个轴的数据交换的通信寄存器(X1、X2、Y1、Y2),并且每个基本处理器(302(i,j))能够从控制装置接收包含基本处理器(302(i,j))在阵列(300)中的位置的条件的指令,以确定要在随后循环中发送到其通信寄存器(X1、X2、Y1、Y2)中的每一个的数据。
3.根据权利要求2所述的阵列处理器,其特征在于向每个基本处理器(302(i,j))分配用于标识其在阵列(300)中的位置的比特序列(302(i,j)L),从而通过将此比特序列(302(i,j)L)与在指令中接收到的比特序列进行比较,来确定基本处理器(302(i,j))的位置。
4.根据权利要求3所述的阵列处理器,其特征在于用于标识基本处理器(302(i,j))在阵列(300)中的位置的比特序列(302(i,j)L)是2n比特序列,针对每个基本处理器(302(i,j)),表示此基本处理器(302(i,j))是否位于阵列(300)的边缘。
5.根据权利要求2所述的阵列处理器,其特征在于所述阵列包括两个轴和四个方向(310、312、314、316)。
6.根据权利要求3所述的阵列处理器,其特征在于向每个基本处理器(302(i,j))分配四个电元件,当所述基本处理器(302(i,j))上电时,置位其电压,并在启用所述基本处理器(302(i,j))的同时,保持置位,这四个元件的电压提供了表示所述基本处理器(302(i,j))在阵列(300)中的位置的比特序列(302(i,j)L)。
7.根据权利要求2所述的阵列处理器,其特征在于从控制装置接收到的指令包含-如果位置条件有效则应当将其数据复制到基本处理器(302(i,j))的通信寄存器中的基本处理器的第一标识;以及-如果位置条件无效则应当复制其数据的基本处理器的第二标识。
8.根据权利要求2所述的阵列处理器,其特征在于每个基本处理器的通信寄存器(X1、X2、Y1、Y2)是独立的。
9.根据权利要求2所述的阵列处理器,其特征在于每个基本处理器(302(i,j))包含至少两个专用于根据阵列的轴的数据交换的通信寄存器((X1、X2);(Y1、Y2)),从而根据此轴,通过至少两个数据通信网络,将每个基本处理器(302(i,j))与相邻基本处理器(302(i’,j’))相连。
10.根据权利要求9所述的阵列处理器,其特征在于针对每个通信寄存器((X1、X2);(Y1、Y2)),每个基本处理器(302(i,j))还包括根据阵列(300)的通信轴中的每一个与相邻基本处理器(302(i’,j’))相连的多路复用器(400X1、400Y1),此多路复用器包括用于选择要被复制到此通信寄存器中的、由这些相邻基本处理器(302(i’,j’))之一发送的数据的装置,如子寄存器(Y1_SRC、Y1_XCOM、Y1_YCOM、X1_SRC、X1_XCOM、X1_YCOM)。
11.根据权利要求2所述的阵列处理器,其特征在于基本处理器的每个通信寄存器(X1、X2、Y1、Y2)能够在每个操作循环复制以下数据-此基本处理器中的内部寄存器的数据;-来自相邻基本处理器的相同轴的寄存器的数据;-来自相邻基本处理器的另一轴的寄存器的数据;-在循环之前包含在此相同寄存器中的数据。
12.根据权利要求2所述的阵列处理器,其特征在于在基本处理器(302(i,j))位于阵列的边缘的情况下,相邻处理器(302(i’,j’))位于阵列的另一边缘。
全文摘要
本发明涉及一种在包括基本处理器(302(i,j))的阵列处理器中的数据管理方法,形成n个轴的阵列(300),从而使基本处理器(302(i,j))根据所述阵列(300)的2n个方向(310、312、314、316)中的每一个与相邻基本处理器(302(i’,j’))相连,并由确定了应当在随后的循环中向相邻基本处理器(302(i’,j’))发送数据的相邻基本处理器(302(i’,j’))的相同指令控制。根据所述方法,将此基本处理器(302(i,j))与专用于根据阵列(300)的每个轴的数据交换的通信寄存器(X1、X2、Y1、Y2)相关联,并将基本处理器(302(i,j))在阵列(300)中的位置的条件集成在指令中,以确定在随后循环中发送数据的相邻处理器(302(i’,j’))。
文档编号G06F15/80GK1645352SQ20051000453
公开日2005年7月27日 申请日期2005年1月18日 优先权日2004年1月21日
发明者伯努瓦·德莱屈尔, 弗雷德里克·普利索诺 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1