CN1732457A - 处理系统 - Google Patents
处理系统 Download PDFInfo
- Publication number
- CN1732457A CN1732457A CNA2003801079364A CN200380107936A CN1732457A CN 1732457 A CN1732457 A CN 1732457A CN A2003801079364 A CNA2003801079364 A CN A2003801079364A CN 200380107936 A CN200380107936 A CN 200380107936A CN 1732457 A CN1732457 A CN 1732457A
- Authority
- CN
- China
- Prior art keywords
- disposal system
- control signal
- treatment
- treatment element
- cluster
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title abstract description 12
- 238000000034 method Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
Abstract
根据本发明的处理系统包括多个处理元件(PE1,…,PE7)。这些处理元件包括控制器和计算装置。多个处理元件可动态地被重新配置为相互独立进行操作的任务单元(TU1,TU2,TU3),该任务单元包括一个处理元件(PE7)或两个或多个处理元件(PE3,PE4,PE5,PE6)的集群。集群内的处理元件被安排为在公共的程序线程控制下执行指令。通过这种方式,处理系统能够根据应用使用相同的数据路径元件的子集来利用指令级并行技术或任务级并行技术或其组合。
Description
超长指令字处理器(VLIW处理器)能够在一个时钟周期内执行许多操作。通常,编译器降低程序指令为处理器能同时执行的基本操作。要同时执行的操作被合并成超长指令字(VLIW)。VLIW处理器的指令解码器将包括在VLIW内的基本操作的每一个解码并发布到相应处理器的数据路径元件。可替换地,VLIW处理器不具有指令解码器,并且包括在VLIW中的每个操作被直接发布到相应的处理器数据路径元件。接着,这些处理器数据路径元件并行地执行VLIW中的操作。这种被称为指令级并行技术(ILP)的并行技术特别适合于涉及大量相同计算的应用,这类应用可以在例如媒体处理中找到。包括较多面向控制的操作、例如伺服控制目的的其他应用不适合于作为VLIW程序来编程。但是,这类程序通常可以被降低成多个相互独立执行的程序线程。并行执行这些线程还被能被表示为线程级并行技术(TLP)。但是,VLIW处理器不适合于执行使用线程级并行处理的程序。应用后一类型的并行技术要求不同的处理器数据路径元件子集具有独立的控制流,即它们以相互独立的顺序访问它们自己的程序,例如能够独立地执行条件转移。但是,VLIW处理器中的数据路径元件以锁步模式进行操作,即它们都以相同的顺序执行指令序列。VLIW处理器因此只能执行一个线程。
本发明的一个目的是提供能够根据应用使用相同的数据路径的子集来利用指令级并行技术或任务级并行技术或其组合的处理器。
为此目的,根据本发明的处理器包括多个处理元件,这些处理元件包括控制器和计算装置,多个处理元件可动态地被重新配置为相互独立进行操作的任务单元,这些任务单元包括一个处理元件或两个或多个处理元件的集群(cluster),集群内的处理元件能够被安排为在程序的公共线程的控制下执行指令。集群中的处理元件被认为以锁步模式运行。计算装置可包括加法器、乘法器、用于执行诸如AND、OR、XOR等逻辑操作、查找表操作、存储器访问等的装置等等。
注意到,由Colwell等在Proc.Of Supercomputing’90的第910-919页中的“Architecture and Implementation of a VLIWSupercomputer”描述了一种VLIW处理器,其能够被配置为两个14操作宽(14-operations-wide)的处理器,其每一个独立地受相应的控制器控制,或一个28操作宽的由一个控制器控制的处理器。但是,所述文献没有公开能够被重新配置成任意数目的包括任意数目的处理元件的独立操作集群的处理器阵列的原理,也没有公开如何实现这样的处理器阵列。
在根据本发明的处理器阵列中,处理元件可都独立地操作或都以锁步模式操作。与现有技术相反,本发明还允许处理元件的集群相互独立地操作,同时每个集群内的处理元件能使用指令级并行技术执行任务。通过这种方式,处理器能动态地根据任务使它的配置适应于最合适的形式。在具有在指令级利用并行技术的低可能性的任务中,处理器可被配置为相对大数目的小集群(例如包括仅一个、或一些处理元件)。这使得在线程级利用并行技术成为可能。如果任务非常适合于利用指令级并行技术,就如通常在媒体处理的情况下那样,处理器能被重新配置为较小数目的大集群。每个集群的大小可适应于处理速度的要求。这使得控制流的多个线程并行成为可能,每个线程具有多个匹配可在线程中利用的ILP的功能单元。将处理器配置成集群可是静态或动态的。在静态的情况下,配置在应用的执行期间保持相同。在动态的情况下,可以在应用执行期间运行时改变。静态情况可以被当作动态情的特殊情况。
US6,266,760描述一种包括多个基本功能单元的可重新配置的处理器,它能够被配置为执行特定的功能,例如被配置为ALU、指令存储器、功能存储器、程序计数器。这样,可以若干方式使用处理器,例如微控制器、VLIW处理器、或MIMD处理器。然而,该文献没有公开包括不同的处理元件的处理器,不同的处理元件的每一个包括控制器,其中处理元件可被配置到一个或多个集群中,并且在同一集群内的处理元件即使具有它们自己的控制器也在公共线程的控制下进行操作,并且其中彼此不同的集群中的处理器相互独立地操作,即根据不同控制线程而进行操作。
US6,298,430描述一种用户可配置的超等级(ultra-scalar)多处理器,该多处理器包括预定的多个分布式可配置的信号处理器(DCSP),该分布式可配置的信号处理器是每一个具有作为一个单元群的至少两个子微处理器(SM)和一个数据包总线控制器(PBC)的计算集群。DCSP、SM和PBC通过本地网络总线被连接。PBC具有连接PBC与每一个SM的通信总线。连接PBC与每一个SM的PBC的通信总线具有一个硬布线连接和一个可编程可切换连接器的串行链。在SM之间的每条通信总线具有至少一个硬布线连接和两个可编程可切换连接器。多个SM可通过编程被合并成单独的SM组。当根据集群中的一个用作主机的SM的时钟频率进行计时时,所有集群的SM都以异步模式或同步模式工作。该已知的多处理器不允许在任意大小的集群中配置。
优选地,处理元件的每一个具有它们自己的指令存储器,例如高速缓存形式的指令存储器。这有利于处理元件的独立操作。可替换地或除了自身的局部指令存储器,处理元件可共享全局存储器。
参考附图更详细地描述这些或其他方面。
其中:
图1示意地显示了根据本发明的处理器系统,
图2更详细地显示了处理元件的例子,
图3显示了耦合到通道CH的4个处理的集群的例子,
图4显示了在处理系统的第一实施例中的可重新配置的通道基本结构,
图5显示了在处理系统的第二实施例中的可重新配置的通道基本结构,
图6显示了图5的处理系统的更具体的实现,
图7显示了在处理系统的第三实施例中的可重新配置的通道基本结构,
图8显示了根据本发明的处理系统的多种配置。
图1示意地显示了根据本发明的处理器系统。处理器系统包括多个处理元件PE1,1、...、PE1,n;PE2,1、...、PE2,n;PEm,1、...、PEm,n。处理元件能经由数据路径连接DPC交换数据。在图1所示的优选实施例中,处理元件被排列在矩形网格上,并且数据路径连接提供相邻处理元件之间的数据交换。非相邻处理元件可通过经由相互相邻的处理元件的链来传递数据从而交换数据。可替换地或附加地,处理器系统可包括一个或多个横跨处理元件的子集的全局总线,或任意处理元件对之间的点到点连接。
图2更详细地显示了处理元件的例子。每个处理元件包括一个或多个操作发布槽(IS),每个发布槽包括一个或多个功能单元(FU)。图2中的处理元件包括五个发布槽IS1-IS5,以及六个FU:两个算术和逻辑单元(ALU)、两个累积乘法单元(MAC)、特定应用单元(ASU)、和与数据存储器(RAM)关联的加载/存储单元(LD/ST)。发布槽IS1包括两个FU:ALU和MAC。在公共的发布槽中的FU共享来自寄存器文件的读端口和到互连网络IN的写端口。在可替换的实施例中,可在寄存器文件和操作发布槽之间使用第二互连网络。在发布槽中的功能单元访问至少一个与所述发布槽关联的寄存器文件。在图2中,存在一个与每个发布槽关联的寄存器文件。可替换地,多于一个的发布槽可与单个寄存器文件连接。但多个独立的寄存器文件连接到单个发布槽(例如,在发布槽中的FU的每个单独的读端口的一个不同RF)也是可能的。不同PE之间的数据路径连接DPC还连接到相应PE的互连网络IN。FU受控制器CT的控制,控制器CT可访问指令存储器IM。程序计数器PC确定指令存储器IM中的当前指令地址。由所述当前地址指向的指令首先被加载到控制器中的内部指令寄存器IR。控制器接着控制数据路径元件(功能单元、寄存器文件、互连网络),以执行由存储在指令寄存器IR中的指令指定的操作。为了做到此,控制器经由操作码总线OB与功能单元通信(例如提供操作码给功能单元)、经由地址总线AB与寄存器文件通信(例如提供寄存器文件中的读和写寄存器的地址),以及通过路由总线RB与互连网络IN通信(例如,提供路由信息给互连的多路复用器)。控制器具有用于接收集群操作控制信号C的输入。该控制信号C引起例如条件转移的防护指令被执行。控制器还具有用于提供操作控制信号F给其他处理元件的输出。这将在后面更详细地描述。
图3显示了耦合到通道CH的4个处理元件PE1、...、PE4的集群,该4个处理元件PE1、...、PE4的集群形成图1中所示的处理器的部分并具有如图2所示的更详细的体系结构。处理元件的每一个可提供操作控制信号F1、...、F4给通道CH。通道返回等于(F1或F2或F3或F4)F1 OR F2 OR F3 OR F4的集群操作控制信号C。因此,如果在集群中的任何处理元件PEj激活其操作控制信号Fj,那么处理元件的每一个接收一个激活的集群操作控制信号。这引起每个处理元件PE1、...、PE4以与处理器PEj同样的方式执行它们的防护操作。防护操作的特别的例子是条件转移。同样是在条件转移的情况下,集群操作控制信号使处理元件PE1、...、PE4能以锁步模式实现程序执行。通过这种方式,可应用指令级并行技术,因为所有处理元件的程序计数器都以耦合的模式操作。这使得处理元件从对应的地址,即指令存储器中可能不同的物理地址获取指令,然而该指令存储器包括在一致的VLIW指令中合成整体的PE指令。在这种情况下,可以认为不同的物理地址对应相同的逻辑地址。以同样的方式,集群操作控制信号可用于控制其他条件或防护操作。在所示的优选实施例中,处理元件具有单独的输出,用于广播它们自己的操作控制信号F并用于监控集群操作控制信号C。可替换地,可能应用下拉(pull-down)机制,其中每个处理元件能下拉集群操作控制信号C。在该情况下,只需要一个终端。
集群操作控制信号C是指定集群的。在处理器中不同的集群具有不同的和独立的控制信号C。为了为给定的集群评估集群操作控制信号,通道应当执行属于所述集群的PE的操作控制信号F的逻辑OR操作,但应当忽略来自不属于所述集群的PE的所有操作控制信号。这样,处理器必须包括可重新配置的通道基础结构,使得允许多个并且不同的集群在处理器中形成,每个集群与不同的集群通道关联。
图4通过举例的方式显示如何使用具有诸如PLA的可编程求和项的可重新配置的通道基础结构来配置包括7个处理元件PE1、...、PE7的处理器。在所示的例子中,由处理元件PE1和PE2的集群来形成第一任务单元。第二任务单元包括处理元素PE3、PE4、PE5和PE6的集群,并且第三任务单元包括单个处理元件PE7。任何其他的配置可容易地通过设置(在图4中表示为“x”)可编程求和项来编程。
虽然图4中所示的处理器的实施例可通过编程被重新配置成独立的操作任务单元,它具有每个求和项被散布在整个控制器阵列当中的缺点,控制器阵列与每个单个的控制器连接。当控制器的数目大时,这可转化为非常大和慢的求和项。并且,集群通道的延迟(即它在接收到所有“F”之后产生“C”所用的时间)将依赖于整个控制器阵列的大小,而不依赖于集群本身的大小。最后,图4中给出的解决方案还具有许多冗余。注意到,例如要求四个求和项来实现图3中的通道。四个求和项的每一个的输出等同于其他三个求和项的输出。因此在原理上,仅一个求和项就应当足够实现所述集群通道了,然而给出的解决方案将要求四倍大的硬件。
图5显示了改进的实施例。通过举例的方式,显示了第一和第二处理元件PEj和PEj+1,形成部分的多个处理元件。处理元件PEj和PEj+1耦合到可重新配置的通道基础结构,该可重新配置的通道基础结构包括控制链CHN、以及用于每个处理元件的合并元件CEj、CEj+1。控制链CHN控制两个方向的中间控制信号的传输,即从处理元件PEj到它的后续处理元件PEj+1,...以及从处理元件PEj+1到它之前的处理元件PEj,...。为此,控制链CHN包括用于每个处理元件PEj的合并元件Cj,1和Cj,2,以及每对相邻元件PEj、PEj+1之间的开关SWj,j+1。合并元件Cj,1将分别由之前的处理元件PEj-1、PEj-2、...的操作控制信号Fj-1、Fj-2、...合并而生成的中间控制信号L1与处理元件Pj的操作控制信号Fj合并,并将合并的信号提供给开关SWj,j+1。根据配置信号Ej,j+1的值,所述合并的信号进一步被传输到后续的处理元件Pj+1。以类似的方式,合并元件Cj,2将分别由之前的处理元件PEj+1、PEj+2、...的操作控制信号Fj+1、Fj+2、...合并而生成的并受开关SWj,j+1控制传递的中间控制信号L2与处理元件Pj的操作控制信号Fj合并,并将合并的信号提供给之前的开关SWj-1,j。如果激活(由它自己的输出产生的)信号Fj或中间控制信号L1、L2的其中之一,合并元件CEj为处理元件Pej提供激活集群操作控制信号。
在图6所示的优选实施例中,合并元件Cj,1和Cj,2以及CEj、CEj+1被实现为OR门,并且开关SWj,j+1包括AND门。但是,可根据分配给不同信号状态的值来使用其他类型的逻辑门。例如,如果操作控制信号F和集群操作控制信号C的激活状态分配的值是0而不是1,那么用AND门来替换OR门,反之亦然。可替换地,三元或n元信号可用于指明这些要求其他逻辑门的控制信号的状态。在又另一个实施例中,通道使用下拉或上拉机制。优选地由配置存储器元件提供配置信号Ej,j+1。可由外部配置总线提供存储在其中的配置,或由独立的配置处理器或甚至由处理元件本身来提供。可替换地,配置值可以直接地被提供给开关,而不需经由配置存储器。优选地,用于编程开关的存储器单元集合被组织成存储器中的数据字。在实施例中,存储器可包含多个数据字,其每一个包含不同的配置。其中,可通过选择这些数据字的其中之一来编程可编程开关。例如,一个或多个处理元件可通过动态选择存储器中的数据字来编程可编程开关。
根据图5的体系结构可容易地扩展成多维,如图7所示的用于具有排列为2维网格的处理元件的处理器。合并元件和开关的实现类似于图6的实现方式。为了清楚起见,仅示出了一个处理元件PEi,j,该处理元件PEi,j包括用于生成集群操作控制信号C的关联电路,但是对于本领域的技术人员清楚的是,可连接任意数量的处理元件。在图7的实施例中,通道基础结构包括相互横穿的链(CHNi,j,H,CHNi,j,V)。更特别地,关联电路包括“水平”链CHNi,j,H,用以控制处理元件PEi,j与其他在它后续的或之前的处理元件沿水平方向的集群。它进一步包括“垂直”链CHNi,j,V,用以控制处理元件PEi,j与其他在它后续的或之前的处理元件沿垂直方向的集群。应当注意,词语“水平”和“垂直”应当被解释为任意一对正交方向。
水平链CHNi,j,H的开关元件SWi,j-1;i,j受控地将由耦合到该链的之前的处理元件的其中之一生成的输入信号作为中间控制信号传递给合并元件Ci,j,1,该合并元件Ci,j,1将中间控制信号传输给链CHNi,j,H的后续部分。类似地,链CHNi,j,H的开关元件SWi,j;i,j+1受控地将由耦合到该链的后续的处理元件的其中之一生成的输入信号作为中间控制信号传递给合并元件Ci,j,2,该合并元件Ci,j,2将中间控制信号传输给链CHNi,j,H的之前部分。类似地,中间控制信号受控地由垂直链CHNi,j,V以横穿水平链CHNi,j,H的方向传输。另外,通过水平链CHNi,j,H传输的中间控制信号L1、L2被转发到垂直链CHNi,j,V中的合并元件Ci,j,3、Ci,j,4。类似地,通过垂直链CHNi,j,V传输的中间控制信号L3、L4被转发到水平链CHNi,j,H中的合并元件Ci,j,1、Ci,j,2。这允许形成“L”形的并且任意的矩形集群。合并元件CEi,j将中间控制信号L1、L2、L3和L4与由处理元件PEi,j本身提供的操作控制信号合并,并将集群操作控制信号C提供给该处理元件PEi,j。
应当注意,合并元件Cei,j和合并元件Ci,j,1以及Ci,j,2的逻辑功能可是交叉优化的。更具体地:
Ci,j,1计算:F OR L3 OR L4 OR L1
Ci,j,2计算:F OR L3 OR L4 OR L2
CEi,j计算:F OR L1 OR L2 OR L3 OR L4
因此,在硬件实现中,所有三个合并器(CE和两个C)的逻辑都是交叉最小化的,即门可被重用于不同的合并器之间。实际上,在合并元件CE中完成的所有基本操作已经在C中完成,因此CE只是概念上的模块(然而是基本的)。相同的基本原理应用于垂直通道。因此,图7中的所有5个合并器(一个CE和4个C)的逻辑可通过合并器当中的门重用而被最小化。然而为了清楚的目的,在图7中将合并元件CEi,j显示为单独的功能。技术人员将可看到可在可重新配置的通道基础结构的不同点中插入管道寄存器来降低信号传播延迟,以消除逻辑环路,或任何其他目的,只要在编程处理元件时考虑了对应增加的循环。
对于本领域的技术人员清楚的还有,通过编程所给出的可重新配置的通道基础结构的开关而形成集群的可能性是很大的,并且随可用的处理元件的数量而成指数增长。
通过举例的方式,在图8a到8d中示出了一种处理系统,该处理系统包括4个排列成矩形的处理元件。在图8a中,处理元件相互独立地操作。假设了用于选择性地传输控制信号的开关被排列在最近的邻居之间。因此,例如从PE1到PE3的对角传输控制信号是不允许的,即使控制信号可经由PE2或PE4传输。但是,这不是严格的要求。基本上,通道基础结构可在任何处理元件对之间扩展,但是出于布局的目的,通道基础结构优选地由成对的相邻处理元件之间的可控连接组成。
图8b显示了在将处理元件配置为3个任务单元的情况下的4种可能的方式。两个处理元件之间的栏指明这些处理元件被组合成集群。
图8c显示了将处理系统配置为6个任务单元的6种可能的方式。
图8d显示了处理系统的配置,其中所有处理元件都集群到单个任务单元。
注意到,本发明的保护范围不局限于这里所描述的实施例。对于技术人员清楚的是,可用多种方式实现逻辑功能。例如代替对有效高信号执行逻辑OR功能,可将逻辑AND功能应用于有效低信号。可替换地,可通过下拉机制或查找表来实现这些功能。本发明的保护范围也不受权利要求中的参考标记的限制。词语“包括”不排除除了在权利要求中提到的其他部分。在元素之前的词语“一个”不排除多个这类元素。形成本发明部分的装置可以专用于硬件的形式或编程的通用处理器的形式实现。本发明在于每个新的特征或这些特征的组合。
Claims (29)
1.一种处理系统,其包括多个处理元件,这些处理元件包括控制器和计算装置,多个处理元件可动态地被重新配置为相互独立进行操作的任务单元,这些任务单元包括一个处理元件或者两个或多个处理元件的集群,集群内的处理元件能够被安排来在程序的公共线程的控制下执行指令。
2.根据权利要求1的处理系统,其中被组织在任务单元中的处理元件共享至少一个用于控制指令执行的公共控制信号。
3.根据权利要求2的处理系统,其中公共控制信号是控制防护操作的标记。
4.根据权利要求3的处理系统,其中防护操作是条件转移。
5.根据前述任一权利要求的处理系统,其中处理元件是经由数据路径连接(DPC)相互连接的。
6.根据权利要求5的处理系统,其中数据路径连接(DPC)局限于邻居到邻居的连接。
7.根据前述任一权利要求的处理系统,其中公共控制信号是从通过连接到处理元件的可重新配置的通道基本结构传输的中间控制信号导出的。
8.根据权利要求7的处理系统,其中公共控制信号是通过与每个处理元件关联的合并元件合并中间控制信号而导出的。
9.根据权利要求8的处理系统,其中合并元件包括或门。
10.根据权利要求7的处理系统,其中通道基本结构包括可编程求和项。
11.根据权利要求7的处理系统,其中通道基本结构包括可编程求积项。
12.根据权利要求7的处理系统,其中通道基本结构包括相互横穿的链。
13.根据权利要求12的处理系统,其中通过具有第一方向的链传输的中间控制信号被转发到具有第二方向的链中的合并元件。
14.根据权利要求13的处理系统,其中通过具有第二方向的链而传输的中间控制信号被转发到具有第一方向的链中的合并元件。
15.根据权利要求7或12的处理系统,其中通道基本结构包括合并元件和处理元件对之间的可编程开关,该合并元件用于将通过通道基本结构传输的中间控制信号与关联的处理元件的操作控制信号合并,该可编程开关用于本地可控制地抑制中间控制信号的传输。
16.根据权利要求15的处理系统,其中合并元件由或门组成。
17.根据权利要求15的处理系统,其中可编程开关包括与门。
18.根据权利要求15、16或17的处理系统,其中可编程开关可由存储在存储器单元中的信号编程。
19.根据权利要求18的处理系统,其中至少一个处理元件可向至少一个存储器单元写入。
20.根据权利要求18的处理系统,其中用于对开关编程的一组存储器单元被组成为存储器中的数据字。
21.根据权利要求20的处理系统,其中存储器包括多个数据字,并且其中可编程开关可通过选择这些数据字中的一个而被编程。
22.根据权利要求21的处理系统,其中一个或多个处理元件可通过动态地选择存储器中的数据字来编程可编程开关。
23.根据权利要求18、19、20、21或22的处理系统,存储器包括易失性随机存取存储器(RAM)。
24.根据前述任一权利要求的处理系统,其中处理元件包括VLIW处理器。
25.根据权利要求24的处理系统,其中VLIW处理器包括内部互连网络(IN)。
26.根据权利要求25的处理系统,其中互连网络(IN)包括点对点连接。
27.根据权利要求25或26的处理系统,其中互连网络(IN)包括穿过处理元件的数据路径连接(DPC)。
28.根据前述任一权利要求的处理系统,其中处理元件被排列为二维网格。
29.用于操作处理系统的方法,该处理系统包括多个处理元件,这些处理元件包括控制器和计算装置,根据该方法,多个处理元件可动态地被重新配置为相互独立进行操作的任务单元,这些任务单元包括一个处理元件或者两个或多个处理元件的集群,其中一个集群内的处理元件在程序的公共线程的控制下执行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02080600 | 2002-12-30 | ||
EP02080600.6 | 2002-12-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1732457A true CN1732457A (zh) | 2006-02-08 |
Family
ID=32668871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2003801079364A Pending CN1732457A (zh) | 2002-12-30 | 2003-12-04 | 处理系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7788465B2 (zh) |
EP (1) | EP1581884A2 (zh) |
JP (1) | JP4570962B2 (zh) |
CN (1) | CN1732457A (zh) |
AU (1) | AU2003283777A1 (zh) |
WO (1) | WO2004059464A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111912A (zh) * | 2013-04-22 | 2014-10-22 | 三星电子株式会社 | 用于支持处理器的多模式的设备和方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4527571B2 (ja) * | 2005-03-14 | 2010-08-18 | 富士通株式会社 | 再構成可能演算処理装置 |
US7734895B1 (en) | 2005-04-28 | 2010-06-08 | Massachusetts Institute Of Technology | Configuring sets of processor cores for processing instructions |
JP2012252374A (ja) | 2011-05-31 | 2012-12-20 | Renesas Electronics Corp | 情報処理装置 |
US20150261543A1 (en) * | 2012-03-21 | 2015-09-17 | Mika Lahteenmaki | Method in a processor, an apparatus and a computer program product |
US9928190B2 (en) * | 2015-06-15 | 2018-03-27 | International Business Machines Corporation | High bandwidth low latency data exchange between processing elements |
CN106375243B (zh) * | 2015-07-22 | 2019-09-03 | 华为技术有限公司 | 数据处理设备和光传送网络交换机 |
US10191881B2 (en) * | 2016-06-06 | 2019-01-29 | Hewlett Packard Enterprise Development Lp | Modifications to a stream processing topology during processing of a data stream |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127092A (en) * | 1989-06-15 | 1992-06-30 | North American Philips Corp. | Apparatus and method for collective branching in a multiple instruction stream multiprocessor where any of the parallel processors is scheduled to evaluate the branching condition |
US5212777A (en) * | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
US5828894A (en) * | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
JP2770603B2 (ja) * | 1991-03-14 | 1998-07-02 | 三菱電機株式会社 | 並列計算機 |
US5524082A (en) * | 1991-06-28 | 1996-06-04 | International Business Machines Corporation | Redundancy removal using quasi-algebraic methods |
CA2073516A1 (en) * | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
CA2138263C (en) * | 1993-09-27 | 2000-02-22 | Yukihiko Okumura | Multiprocessor |
WO1995028686A1 (en) * | 1994-04-15 | 1995-10-26 | David Sarnoff Research Center, Inc. | Parallel processing computer containing a multiple instruction stream processing architecture |
US5956518A (en) | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
DE69837791T2 (de) * | 1997-11-07 | 2007-10-18 | Altera Corp., San Jose | VERFAHREN UND GERÄT FÜR EFFIZIENTE, SYNCHRONE MIMD-OPERATIONEN MIT iVLIW PE-ZU-PE KOMMUNIKATIONEN |
US6219776B1 (en) * | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
US6167501A (en) * | 1998-06-05 | 2000-12-26 | Billions Of Operations Per Second, Inc. | Methods and apparatus for manarray PE-PE switch control |
US20010042187A1 (en) * | 1998-12-03 | 2001-11-15 | Marc Tremblay | Variable issue-width vliw processor |
WO2001031475A1 (en) * | 1999-10-26 | 2001-05-03 | Arthur D. Little, Inc. | Dual aspect ratio pe array with no connection switching |
JP3674515B2 (ja) * | 2000-02-25 | 2005-07-20 | 日本電気株式会社 | アレイ型プロセッサ |
WO2004092949A2 (en) * | 2003-04-15 | 2004-10-28 | Koninklijke Philips Electronics N.V. | Processing system with instruction-and thread-level parallelism |
US7185175B2 (en) * | 2004-01-14 | 2007-02-27 | International Business Machines Corporation | Configurable bi-directional bus for communicating between autonomous units |
-
2003
- 2003-12-04 AU AU2003283777A patent/AU2003283777A1/en not_active Abandoned
- 2003-12-04 WO PCT/IB2003/005926 patent/WO2004059464A2/en active Application Filing
- 2003-12-04 EP EP03775758A patent/EP1581884A2/en not_active Withdrawn
- 2003-12-04 US US10/541,275 patent/US7788465B2/en not_active Expired - Fee Related
- 2003-12-04 CN CNA2003801079364A patent/CN1732457A/zh active Pending
- 2003-12-04 JP JP2004563450A patent/JP4570962B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111912A (zh) * | 2013-04-22 | 2014-10-22 | 三星电子株式会社 | 用于支持处理器的多模式的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060184766A1 (en) | 2006-08-17 |
WO2004059464A2 (en) | 2004-07-15 |
EP1581884A2 (en) | 2005-10-05 |
JP2006512661A (ja) | 2006-04-13 |
JP4570962B2 (ja) | 2010-10-27 |
WO2004059464A3 (en) | 2005-04-14 |
AU2003283777A8 (en) | 2004-07-22 |
US7788465B2 (en) | 2010-08-31 |
AU2003283777A1 (en) | 2004-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9836412B2 (en) | Processor memory system | |
US5428803A (en) | Method and apparatus for a unified parallel processing architecture | |
US4943909A (en) | Computational origami | |
US20140149715A1 (en) | Scalable and programmable computer systems | |
JP2647315B2 (ja) | 動的に複数モードで並列処理するアレイ | |
KR101424020B1 (ko) | 메모리 병목이 없는 저소비전력 및 고속 컴퓨터 | |
US7673118B2 (en) | System and method for vector-parallel multiprocessor communication | |
JP5684704B2 (ja) | 実行エンジン | |
KR101918464B1 (ko) | 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치 | |
JPH0922404A (ja) | 同報通信プロセッサ命令を備えたアレイ・プロセッサ通信アーキテクチャ | |
CN101482811A (zh) | 用于增强的计算能力的处理器体系结构 | |
CN1732457A (zh) | 处理系统 | |
JP3987782B2 (ja) | アレイ型プロセッサ | |
KR20050123163A (ko) | 프로세싱 시스템, 프로세싱 시스템 프로그래밍 방법 및컴파일러 프로그램 제품 | |
US20220121951A1 (en) | Conflict-free, stall-free, broadcast network on chip | |
Levine et al. | Efficient application representation for HASTE: hybrid architectures with a single, transformable executable | |
US20180143940A1 (en) | Data processor | |
Koenig et al. | Architecture design space exploration of run-time scalable issue-width processors | |
van der Steen | High Performance Computers—A status report | |
Azeem et al. | A Review on Multiple Instruction Multiple Data (MIMD) Architecture | |
McCaughan | Parallel Computing Models | |
Sivashanmugam | Permutation Routing on Mesh model Parallel Computers | |
JESSHOPE | Latency reduction in VLSI routers | |
Pechanek et al. | A Rotated Array Clustered Extended Hypercube the RACE-Htm Processor | |
US20050108438A1 (en) | Heterogeneous synergetic computing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |