CN1271437A - 流形阵列处理方法和装置 - Google Patents

流形阵列处理方法和装置 Download PDF

Info

Publication number
CN1271437A
CN1271437A CN98809446A CN98809446A CN1271437A CN 1271437 A CN1271437 A CN 1271437A CN 98809446 A CN98809446 A CN 98809446A CN 98809446 A CN98809446 A CN 98809446A CN 1271437 A CN1271437 A CN 1271437A
Authority
CN
China
Prior art keywords
bunch
processing elements
hypercube
parallel processor
data
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
CN98809446A
Other languages
English (en)
Other versions
CN1326061C (zh
Inventor
杰拉尔德·G·帕查尼克
尼克斯·P·皮特西尼斯
埃德温·F·巴瑞
托马斯·L·德拉本斯托塔
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.)
Altera Corp
Original Assignee
Bops Inc
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 Bops Inc filed Critical Bops Inc
Publication of CN1271437A publication Critical patent/CN1271437A/zh
Application granted granted Critical
Publication of CN1326061C publication Critical patent/CN1326061C/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
    • 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
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

流行阵列拓扑结构包括排列在一些簇(52)内的一系列处理元、节点、或存储器之类。这些簇由簇开关机构(986A)连接,这个机构有利地可使组织方式加以改变而不需要重新在物理上排列各处理元。这种拓扑结构还显著地减少了现有阵列典型的互连数。采用这种拓扑结构可以获得快速、高效、低耗的有效处理和通信,而且还具有配置规模改变方便的优点。

Description

流形阵列处理方法和装置
本发明属数据处理技术领域,具体地说与改善并行数据处理体系结构有关。
业已开发了许多计算任务对数据进行并行操作。并行处理器的效率取决于并行处理器的体系结构、编码算法和数据在各并行元内的配置。例如,图像处理、模式识别和计算机图形学都是对实质上排列成二维或三维栅状点阵的数据进行操作的应用。数据可以表示各种各样的信号,例如音频、视频、声纳或雷达信号。由于诸如离散余弦变换(DCT)、离散余弦逆变换(IDCT)、卷积之类的通常是对这种数据执行的操作可能同时要对不同的栅段进行,因此开发了多处理器阵列系统,允许多个处理器同时为这个任务工作,从而可以显著地加快这些操作。并行处理是大量专利的研究对象,其中包括美国专利No.5,065,339、5,146,543、5,146,420、5,148,515、5,577,262、5,546,336和5,542,026,这些专利列作本发明的参考。
并行处理体系结构的一种传统的解决途径是邻元网接计算机(nearest neighbor mesh connected computer),可参见R.Cypher和J.L.C.Sanz的“图像处理和计算机视觉的SIMD体系结构和算法”(“SIMDArchitectures and Algorithms for Image Processing and ComputorVision,”IEEE Transactions on Acoustics,Speech and Signal Processing,Vol.37,No.12,pp.2158-2174;December 1989)、K.E.Batcher的“大规模并行处理器的设计”(“Design of a Massively Parallel Processor,”IEEE Transaction on Computer,Vol.C-29 No.9,pp.836-840,September1980)和L.Uhr的“人工智能的多计算机体系结构”(“Multi-ComputerArchitectures for Artificial Intelligence,”New York,N.Y.,John Wiley &Sons,Ch.8,p.97,1987),所有这些都列作本发明的参考。
在图1A所示的邻元环接计算机(nearst neighbor torus connectedcomputer)中,多个处理元(PE)通过环接通路MP与各自的北、南、东西的相邻PE连接,所有的PE都以同步的单指令多数据(SIMD)方式进行操作。由于环接计算机可以通过在一个网接计算机上再增添一些环回连接来形成,因此网接计算机可以想像为环接计算机的一个子集。如图2B所示,每个通路MP可以包括T根发送线和R根接收线,或者如图1C所示,每个通路MP可以包括B根双向线。虽然本发明考虑了单向和双向通信,但下面在一个通路内除控制信号线外总线的线的总数统标为K,如果是双向总线结构,K=B;而如果是单向总线结构,K=T+R。假设一个PE能向它相邻的任何PE发送数据,但一次只能向一个相邻的PE发送。例如,每个PE可以在一个通信周期内都向它的东邻元发送数据。还假设存在这样的一种广播机制,使得数据和指令能在一个广播分发周期内从一个控制器同时分发给所有的PE。
虽然通常采用比特串行的PE间通信来尽量减小布线的复杂性,但是环接阵列的复杂布线在实现时始终还是有些问题。图1A所示的传统环接阵列包括16个处理元,连接成一个4×4的PE阵列10。每个处理元PE用各自所在的行和列的序号i和j作为下标,标成PEi,j。每个PE通过点对点连接与各自相邻的北(N)、南(S)、东(E)、西(W)邻元通信。例如,图1A中所示的PE0,0与PE3,0之间的连接是PE0,0的N接口与PE3,0的S接口之间的环回连接,表示将这个阵列配置为环接阵列的环回连接之一。在这种配置中,每行含有一组N个相互连接,N行共有N2个水平连接。同样,N个各有N个垂直相互连接的列共有N2个垂直相互连接。对于图1A所示的例子,N=4。包括环回连接在内,连接线(例如N×N环接计算机集成电路内的金属化线)的总数因此为2kN2,其中k为每个相互连接中的导线数。导线数k可以为1,例如在比特串行互连中。如果k=1,对于图1A所示的4×4阵列10有2kN2=32。
对于N比较小的一些应用来说,最好将整个PE阵列集成在单个集成电路内。然而,本发明并不排除例如每个PE可以是一个独立的微处理器芯片的实现方式。由于一个环接计算机内的连线总数可能是非常多的,因此这些内部互连将耗费大量可贵的集成电路“不动产”或芯片占用面积。此外,这些PE通路频频相互交叉,使IC布置非常复杂,而且还可能由于串音而将噪声引入通信线路。还有,连接处在阵列南、北两端的PE或处在东、西两端的PE的环回连线的长度随阵列规模的增大而增大。长度增大就使连线的电容增大,从而使连线传输的最大比特率下降,还会将附加噪声引入连线。
这样的环形阵列的另一个缺点与转置操作环境有关。由于一个处理元与它的转置元在通信通路内至少相隔一个中介处理元,因此在要用到转置的操作中会引入等待。例如,在PE2,1需要从它的转置元PE1,2获取数据时,数据必需经过中介元PE1,1或PE2,2。实际上,这本身就会使操作延迟,即使是PE1,1和PE2,2没有被其他占用。然而,在一般情况下,这些PE都是作为微处理器元,因此很可能PE1,1和PE2,2当时将在执行其他操作。为了将数据或命令从PE1,2传送给PE2,1,它们必需以通常的方式暂停执行这些操作和命令。因此,即使开始将数据从PE1,2传送给PE1,1可能需要采取几个操作,而迫使PE1,1暂停来传送转置元数据的操作也将引起延迟。这样的延迟每经一个中介元PE都要累加上去,因此对于相距最远的转置元对来说,引起的等待时间是很显著的。例如,图1A的转置元对PE3,1与PE1,3之间至少有三个中介元PE,需要的等待时间是四个通信步骤,再加上通常情况下在这些PE内为了在PE3,1与PE1,3之间传送数据必需暂停所有任务而引起的等待时间。
认识到环接阵列的这些缺点,已经提出了一些新的构成阵列的途径,可参见G.G.Pechanek等人的“大规模并行对角折叠阵列处理器”(“A Massively Parallel Diagonal Fold Array Processor”,1993International Conference on Application Specific Array Processors,pp.140-143,October 25-27,1993,Venice,Italy)和G.G.Peckanek等人的“多重折叠成簇处理器环接阵列”(“Multiple Fold Clustered ProcessorTorus Array”,Proceedings Fifth NASA Symposium on VLSI Design,pp.8.4.1-11,November 4-5,1993,University of New Mexico,Albuguergue,New Mexico),这两篇论文的全部内容都列作本发明的参考。这些环接阵列组织的构成技术是用处在传统的相邻元环面对角线上的PE作为对折边折叠PE阵列。如图2A的阵列20所示,这些技术可以用来大大减少PE间的连线,减少环回连接线的数目和减小环回连接线的长度,而且将各个PE配置在它们的转置元的紧邻处。这种处理器阵列的体系结构例如可参见美国专利No.5,577,262和5,612,908以及EP 0,726,532和EP 0,726,529,这些专利全部列作本发明的参考。虽然这些阵列与传统的环接体系统构相比有了很大的改进,然而由于PE组合的不规则,例如在单折的对角折叠网中,有些PE两两成簇,而另一些却仍是单个的。在一个三折的对角折叠网中,有四个PE的簇,也有八个PE的簇。由于阵列总体呈三角形,对角折叠型阵列在以集成电路实现上无论效率和成本都有相当困难。此外,在对角折叠网和其他传统的网状体系结构中,互连拓扑是PE定义的固有部分。这种解决途径固定了PE在拓扑结构内的位置,从而将PE的拓扑和它们的连通性限制在所实现的固定配置。
许多并行数据处理系统采用超立方体互连拓扑结构。一个超立方体计算机包括p=2d个PE,它们以提供高度连通性的方式互连。连接可以在几何上或算法上模型化。在几何模型中,各个PE相应于一个d维超立方体的各个顶点,而各链路相应于这个超立方体的各个边缘。一个具有P=2d个PE的超立方体可以想像成两个各具有2d-1个PE的超立方体,这两个较低维的超立方体相应顶点之间由链路连接。
在算法模型中,为各PE分别指定从0至d-1中的一个互不相同的二进制附标。任何两个PE只有它们的附标的二进制表示只有一位不同才是互连的。几何模型与算法模型可以通过将d维与d个比特位置一一对应联系起来。于是,两个附标只有一个比特不同的性质相当于占据两个(d-1)维超立方体的相应的角。例如,可以为一个PE指定一个附标,指示它在这个拓扑结构内的位置。这个附标{D0,D1,…,Dr-1}是一个二进制表示,每个比特指出了r维超立方体上通信可用的一条r维连接通路。在超立方体中的每个节点与它直接连接的那些节点之间附标最多只有一个比特有差别。例如,在超立方体中最长的通路是一个PE{D0,D1,…,Dr-1}与它的补元 之间的距离,例如PE101101与PE010010之间的距离。超立方拓扑结构可参见Robert Cyher和L.C.Sanz的“并行运算的SIMD模型”(“The SIMDModel of Parall Computation”1994 Springer-Verlag,New York,pp.61-68)和F.Thomas Leighton的“并行算法和体系结构导论:阵列、树、超立方体”(“Introduction To Parallel Algorithms and Architectures:Arrays,Trees,Hypercubes”,1992 Morgan Kaufman Publishers,Inc.,San Mateo,CA,pp 389-404),这两篇著作都列作本发明的参考。超立方拓扑结构的一个缺点是每个处理器的连接数随网络的规模对数增大。此外,一个超立方体内的PE间通信可能由于相当长的等待,特别是在PE是一对相互互补的元的情况下,成为负担。
多维超立方体可以映射成一个环(torus)、一个对角折叠环或其他PE结构。下面简要地说明一下这种映射。除非另有说明,与这说明有关的图以及本申请内所有其他的图都将每个PE连接示为一条单线,这条线表示一个互连链路,可以是一个双向三态链路,也可以是两个单向链路。双向三态链路支持在一个链路的多个点上有信号源,在一种控制程式下防止在链路上发生数据冲突。单向链路对于任何对接信号都采用点对点的单个信号源、单个接收机对。此外,可以预料,用比特串行和多比特并行实现也是可以的。
一个超立方体可以映射成一个环,其中二维环由一系列处理元(PE)构成,如图1A和1D所示,每个PE对应一个环节点(行和列)如上PE附标所示,和一个由每个PE内的下附标所示的超立方PE号码。超立方PE号码或节点地址作为一个r组(rD)超立方体的r比特表示给定,每个比特表示一个连通性的维。一个超立方体内的每个PE都只是与节点地址号码与它的只有一个比特是不同的那些PE邻接。这种互连的方式使得一个4D超立方体可以映射成一个如图1A和1D所示的4×4环。图1A用格雷码将PEi,j节点编码成PEG(i),G(j),这是相继的号码之间只有一个比特有不同的序列。例如,十进制序列0,1,2,3可以写成二进制序列00,01,10,11,而格雷码序列就是00,01,11,10。图1D示出了映射成一个最近邻环的另一个超立方体。
超立方机的最早实现之一是一个6D超立方体的宇宙立方体(Cosmic Cube),可参见Caltech,C.Seitz“宇宙立方体”(“The CosmicCube”,Communications of the ACM,Vol.28,No.1,pp.22-33,1985)。这个宇宙立方体是用一些以多指令多数据(MIMD)模式运行的Intel8086处理器实现的,利用消息进行超立方连接的处理器之间的通信。另一个超立方体实现例是NCUBE,在一个大规模的配置中包括了一个10D超立方体,采用定制的处理器芯片形成这个超立方体的节点。NCUBE是一个MIMD型机器,但也支持单程序多数据(SPMD)工作模式,每个节点处理器都有一个相同程序的拷贝,因此能独立处理不同的条件代码流。由思维机公司(Thinking Machines Corporation建造的连接机(CM)是另一个超立方体实现例。初型机CM-1是一个12D超立方体,每个节点包括一个由比特串行处理元构成的4×4网格。
诸如上述这些传统的超立方体实现的一个缺点是每个处理元必需为每个超立方维至少各备一个双向数据口。
如下面要详细说明的那样,本发明的一个特点就是我们的PE是与网络的拓扑结构无关的,只需要一个输入口和一个输出口。
此外,由于超立方体每增加一维,每个PE所需的口数就要加多,因此每个PE的设计马上就成为沉重的负担,每个PE花在数据口上的比例越来越大。而且,两个互补PE之间的通信由于随着一个超立方体的“直径”(即互补PE对之间的通信步数)的增大等待时间越来越大而成为累赘。也就是说,提供一个节点与它的补节点之间的连接,也就是超立方体PE节点之间最长通路的连接,会是困难的,耗费也大,而且不一定会是可行的。
因此,极希望能在并行处理器阵列内各处理元之间提供高度的连通性,同时大大减少互连处理元所需的布线和大大减少PE间通信所受到的通信等待时间。对于多处理器阵列体系结构和处理器互连方面也有必要进一步加以改善。本发明就是针对这些和其他一些这样的需要提出的,详细说明如下。
本发明研究的是一种处理元阵列,这种处理元阵列能改善处理元之间的连通性,同时与传统的环或超立方体处理元阵列相比又大大降低了阵列互连布线的要求。在一个优选实施例中,按照本发明设计的阵列能大大减少转置操作的等待和一个PE节点与它的超立方补节点之间通信的等待。此外,这种独创性的阵列使环回布线的长度与阵列的总体规模无关,从而减小了最长互连线的长度。而且,对于不会正在通信的PE之间引起冲突的阵列通信模式来说,每个PE只需要一个发送口和一个接收口,而与具体拓扑结构要求它的PE节点需具备的邻元连接数无关。这种阵列的一个优选集成电路实现方式包括将相似的处理元簇合并成呈现具有矩形或正方形的外形。这种处理元的相似性、处理元簇的相似性和阵列外形的规则性使得这种阵列特别适合低成本集成电路生产。
为了按照本发明形成一个阵列,首先可以将处理元合并成合乎单指令多数据(SIMD)操作要求的簇。然后,将簇内的处理元完全连接起来。于是,可以将各处理元组合成使得一个簇的元可以在簇内通信和与仅两个其他簇的成员通信。此外,每个簇的组成处理元只是在两个互斥方向上与这两个其他簇的每个簇的处理元通信。按定义,在一个具有单向能力的SIMD环内,北/南方向是与东/西方向互斥的。正如名称所含的意义那样,处理元簇是最好实际相互紧邻的一些处理元形成的组。在集成电路实现中,例如,一个簇的处理元最好布置成尽量相互靠近,最好比与阵列中任何其他处理元靠得更近一些。例如,一个与传统的4×4处理元的环阵列相应的阵列可以包括四个各有四个元的簇,每个簇只在北和东的方向上与一个其他簇通信而在南和西的方向上与另一个簇通信,或者在南和东的方向上与一个其他簇通信而在北和西的方向上与另一个簇通信。通过以这种方式将PE组合成簇,PE簇间的通信通路可以通过多路复用共享,因此大大减少了阵列所需的互连布线。
在一个优选实施例中,组成一个簇的这些处理元选择成使得处理元与它们的转置元和超立方补元处在同一个簇内,通过簇内通信通路相互通信,从而消除了与在传统的环阵列上执行转置操作有关的等待和与在传统的超立方体阵列上执行超立方互补时间通信有关的等待。此外,由于将传统的环回通路与任何PE至PE的通路同样处理,就可以将最长的通信通路缩短成簇间的间隔,而与阵列的总规模无关。
每个PE含有一个虚拟PE地址存储单元和一个配置控制器。虚拟PE号码与配置控制信息的组合确定了簇开关的设置,从而确定了对PE阵列的拓扑结构的重新配置。这种重新配置例如可以根据来自控制器的一个分发指令进行。一个阵列内的PE组合成簇,使得一个PE与它的转置元组合在一个簇内,一个PE与它的超立方补元包含在同一簇内。此外,动态重新配置在保证每个簇内的完全PE间连通性的簇开关的配合下提供了可将阵列重新配置成许多拓扑结构的能力。
在另一方面,一个簇内的各个PE有益地可以具有相同的与簇开关连接的接口,这个簇开关完全连接这个簇内的PE,允许这个簇内的每个虚拟PE同样可以访问两个外部的正交簇。这样,按照本发明,真正有两个网络与一个簇开关配合。一个完全使簇内PE相互连接,一个使PE与其他簇的PE连接,从而提供了环和超立方体的连通性所需的连接通路。对于簇开关是内部的连接通路提供转置元对和超立方互补元对的连通性。采用不同的虚拟PE排列,可以横越这些簇实施转置。对于这样一个4PE簇开关和它与其他4PE簇的互连来说,可以只有四个为任何簇产生的四个输出总线。在任何簇内,这四个总线的每一个都具有两个正交簇连接点。在按照本发明的流形阵列处理中,可以提供连通性增强的超立方体,其中每个有四个节点的簇只有四个输出总线,每个扇出为三,一个内部接回本簇,另两个分别接至两个正交簇。从接收来看,每个虚拟节点有三个信号要接收,一个来自本簇内部,另两个分别来自两个正交簇。
本发明的这些和其他一些特性、情况和优点对于熟悉本技术领域的人员来说从下面结合附图所作的详细说明中可以清楚地看到。
在这些附图中:
图1A为现有技术的4×4邻接环处理元(PE)阵列的方框图;
图1B例示了图1A所示现有技术环连接通路可以包括T根发送线和R根接收线的情况;
图1C例示了图1A所示现有技术环连接通路可以包括B根双向线的情况;
图1D为第二个现有技术的4×4邻接环PE阵列的方框图;
图2A和2B为现有技术的折迭PE阵列的方框图;
图3A至3C为适合在本发明的PE阵列内使用的处理元的方框图;
图3D例示了本发明的簇开关控制的详细情况;
图4为例示在一个流形阵列内PE成簇情况和PE的簇间通信情况的方框图;
图5为图4中的一个PE簇的方框图,详细示出了簇开关的情况;
图6为本发明中的改善的PE簇和簇开关的方框图;
图7为详细示出PE簇间互连通路的方框图;
图8A为示出一个不包括缓冲器的簇开关实现形式的方框图;
图8B和8C为详细示出利用不包括缓冲器的簇开关的PE簇间互连通路的方框图;
图9A为一个2×2簇的方框图,示出了与组成一个大阵列的其他正交2×2簇的互连通路;
图9B为一个2×2流形阵列的方框图;
图10为示出一个4×4环的东向通信通路的方框图;
图11为示出一个4×4环的西向通信通路的方框图;
图12为示出一个4×4环的北向通信通路的方框图;
图13为示出一个4×4环的南向通信通路的方框图;
图14为示出一个4×4流形阵列的转置通信通路的方框图;
图15为示出一个4×4流形阵列上的四个独立的1×4线形环的方框图;
图16为示出在一个阵列配置内z轴发送操作的通信通路的方框图;
图17为示出一个4×4流形阵列的超立方体节点标记情况的方框图;
图18为示出一个4×4流形阵列的超立方互补元通信的方框图;
图19为示出一个5D超立方体的方框图;
图20为示出映射成一个流形阵列的5D超立方体的方框图;
图21A为示出嵌入一个环的4D超立方体的节点元的表;
图21B为示出嵌入的超立方体节点的布置的改善流形阵列表;
图21C为一个带有上PE附标(PE-x,y)的8×8 2D环、一个带有中PE附标(x,y,z)的3D立方体和一个带有下PE附标GxGyGz=d5d4d3d2d1d0的6D超立方体的4×4×4表示;
图22为列1D下转后的4×4×4表示;
图23为图22中的节点的4×4×4z平面表示;
图24为列1D下转后的4×4×4z平面表示;
图25为布置连通性的对z平面表示进行重排的情况;
图26示出了将各z平面分离为一些2×2z簇的情况;
图27A示出了将一些2×2z簇互连成四个4×4流形阵列的情况;
图27B示出了一个4×4×4PE节点输入(接收)连通性的例子;
图28A为一个4×4流行阵列方框图,示出了有一个外部接口和每个簇配置一个控制器的情况;
图28B示出了图28A的4×4多控制器流形阵列接收送入它的外部接口的32个数据项的情况;
图29示出了图28A的4×4多控制器流形阵列将例示的32个数据项装入四个存储器控制器的情况;
图30示出了图28A的4×4多控制器流形阵列将32个数据项分配给各簇内的各个PE的情况;
图31列出了结合图28A至30所示例每执行一个完全混洗操作后所得出的32个例示数据项的分布情况;
图32示出了一个4×4流形阵列在执行一个北向交换操作时在各PE之间数据所取的通路,还示出了在这个完全混洗例的通信操作完成时各PE寄存器内的结果;以及
图33示出了一个4×4流形阵列在执行一个南向交换操作时在各PE之间数据所取的通路,还示出了在这个完全混洗例的通信操作完成时各PE寄存器内的结果。
在一个实施例中,按本发明构成的流形(manifold)阵列处理器将PE组合成簇,使得一个簇的元只能与两个其他簇的成员直接通信,而且每个簇的各构成处理元只能在两个互斥方向上与可与之通信的每个其他簇的处理元通信。以这种方式使PE成簇,使得PE簇之间的通信通路可以共享,从而大大减少了构成一个阵列所需的互连布线。此外,每个PE可以只有一个发送口和一个接收口,或者在采用双向、顺序或时分通信的情况下可以只有一个收/发口。这样,各个PE就与阵列的体系结构解耦。也就是说,不像传统的N维超立方连接阵列那样每个PE要有N个通信口。在采用单发送口和单接收口的实施方式中,阵列内的所有PE可以同时发送和接收。在一个传统的6维超立方体内,这要求每个PE有6个发送口和6个接收口,总共12个数据口。采用本发明,无论超立方体是几维的,都只需要一个发送口和一个接收口,总共两个数据口。如上所述,发送和接收数据口可以合并成一个收/发口,如果采用双向、顺序或时分数据通信的话。每个PE有一个虚拟PE存储单元和一个配置控制单元。虚拟PE号码与配置控制信息组合起来可以确定簇开关的设置,控制通信的方向和重新配置PE阵列的拓扑结构。这种重新配置可以例如根据控制器分发的指令进行。阵列内的PE组合成簇,使得一个PE与它的转置元合并在一个簇内,而一个PE与它的超立方补元包含在同一个簇内。
在以下这个优选实施例中,组成一个簇的PE选择成使处理元和它们的转置元处在同一个簇内,通过簇内通信通路相互通信。为了说明方便起见,处理元标成像在传统的环接阵列内呈现的那样,例如,处理元PE0,0是会在一个传统的环接阵列的“西北”角出现的处理元,也就是说在行0、列0处的处理元。因此,虽然新的簇阵列的布置与传统的阵列处理器的大不相同,但相同的数据会送至传统的环接阵列和新的簇阵列的相应处理元。例如,新的簇阵列的0,0元会接收与一个传统的环接阵列的0,0元要加以操作的相同的数据。此外,在本说明中所指的方向将参照一个环接阵列的方向。例如,在说到处理元之间的通信从北向南发生时,那些方向是指在一个传统的环接阵列内的方向。
PE可以是单指令流单数据流(SISD)型的单处理器芯片。虽然并不局限于以下说明,但将对一个基本的PE进行说明,以例示所涉及的这些概念。图3A示出了一个PE40的基本结构,用来说明本发明的新PE阵列的各PE可采用的一个适当实施例。为了简明起见,接口逻辑和缓存器都未示出。指令总线31接成接收从一个SIMD控制器29分发的指令,而数据总线32接成接收从存储器33或PE40外的另一个数据源发来的数据。寄存器文件存储媒体34为执行单元36提供源操作数的数据。指令解码器/控制器38接成接收通过指令总线31送来的指令和通过总线21向寄存器文件34内的寄存器提供控制信号。文件34的这些寄存器通过通路22向执行单元36提供它们的内容作为相应的操作数。执行单元36从指令解码器/控制器38接收控制信号23而将结果通过通路24提供给寄存器文件34。指令解码器/控制器38还将标为Switch Enable的簇开关允许信号加到输出线29上。簇开关的功能将在下面结合图5和6详细说明。PE间通信的数据或命令在标为Receive的接收输入端37上接收和从标为Send的发送输出端35上发送。
虚拟PE存储单元42通过存储线43和检索线45与指令解码器/控制器38连接。虚拟PE号码可由控制器29通过发给解码器/控制器38的指令程控,解码器/控制器38将新的虚拟PE号码发给存储单元42。虚拟PE号码可以由控制器29用来在连接网络所给定的范围内动态地控制每个PE在一个拓扑结构内的位置。
配置控制器44通过存储线47和检索线49与指令解码器/控制器38连接。配置控制器44提供诸如当前配置之类的配置信息和提供对簇开关的控制信息。这些开关控制阵列内的PE与其他PE的连接。解码器/控制器38组合来自配置控制器44的当前配置、来自虚拟PE存储单元42的虚拟PE地址和由来自控制器29的指令传达的诸如“在转置PE之间通信”之类的通信操作信息,并将这信息送至簇开关。解码器/控制器38包括利用这信息确定对簇开关的适当设置(这将结合图6详细说明)和通过开关激活接口39发送这信息的开关控制逻辑。开关控制逻辑、簇开关指令解码器/控制器和配置控制器可以合并在PE界限外的簇开关内。由于新的PE节点定义为与拓扑连接无关,因此能将这些功能分离出来。在本优选实施例中,总体逻辑和综合功能通过不将这些控制功能分离出来而得到改善,尽管这些控制功能是独立的。
例如,在图3D中示出了一个适当的簇开关60,用来详细说明簇开关的控制情况。簇开关60示为划分成四个组A、B、C、D,每个组包括一个4输入多路复用器和一个3输入多路复用器。这些组各与PE簇内的一个相应的PE关联,这种对应的关联关系以虚线箭头示出。例如,PE0,0与“A”组多路复用器a1和a2关联。这些组内的多路复用器受它们关联的PE控制。通过如图所示那样控制这些多路复用器,保留了通常的SIMD工作模式。
在SIMD工作模式,所有的PE都接收控制器分发的指令,根据这些指令同步工作。所有的指令,包括那些唯一地规定一个取决于PE的ID的操作的指令,分发给所有的PE。这些指令由所有的PE接收,由所有的PE或PE的一些子集解码和执行,这取决于指令内的操作码(可能还带有一个操作码扩展段)和在控制器29分发的指令的程序控制下可选的PE允许/禁止标志。操作码和它的扩展段规定了要执行接收到的指令的PE集合,包括只有一个PE的集合。PE允许/禁止标志确定一个PE能响应的活动的级别。例如,可适当采用以下标志:
级别0:完全禁止PE;
    所有接收到的指令全都处理为NOP。
级别1:部分允许PE,PE接收控制信息:
    允许装载诸如虚拟PE ID、饱和/非饱和模式之类的控制信
息,
    允许存储诸如读状态寄存器之类的控制信息,
    所有的运算和通信指令都处理为NOP。
级别2:部分允许PE;PE接收控制信息:
    允许装载诸如虚拟PE ID、饱和/非饱和模式之类的控制信
息,
    允许存储诸如读状态寄存器之类的控制信息,
    所有的运算指令都处理为NOP,
    执行所有的通信指令。
级别3:完全允许PE;
    执行所有接收到的指令。
对于一个给定规模的流形阵列,可以预先确定允许的配置,例如选择4维、5维或6维超立方体。在这样的一个实施例中,可能的节点标识号码可以是“硬连线”的,也就是说实际上以非易失方式固定为集成电路实现的一部分。于是,由控制器29发送给阵列内所有的PE40的一个单指令隐含地指出对于一个给定配置的各个虚拟PE号码。这个指令最好由每个PE内的解码器/控制器38变换成为本PE指定的适当虚拟PE号码。每个解码器/控制器38可以有效地执行表查找操作,由于每个PE存储区42内相应位置存有本PE在这种配置下的虚拟PE号码。
图3B的PE40′除了与图3A的PE40中相同的器件(用相同的标号标示)外还包括一个接口控制单元50,与指令解码器/控制器38和寄存器文件34连接。控制单元50根据通过信号线25从解码器/控制器28获得的控制信号提供诸如并行-串行变换、数据加密和数据格式变换之类的数据格式化操作。在图3C所示的另一个实施例PE40″中,发送通路35由一个或多个执行单元36产生,而接收通路37直接或通过接口控制单元50间接接至寄存器文件34。接口控制单元50根据通过信号线或线25从指令解码器/控制器38接收的控制信号对数据进行格式化。由接口控制单元执行的数据格式化可以包括例如并行-串行变换、串行-并行变换、数据加密和数据格式变换。
这种可选用的PE40″还包括为每个PE40″增添的本地存储块48和52。在图3C中较详细地示出了来自图3A和3B的数据总线32,它包括一个装载通路总线26和一个存储总线26′。这两个总线都可以用三态技术或作为多单向总线实现,而且具有可变的总线宽度,例如16比特、32比特、64比特。可以适当地应用各种控制信号,诸如地址和总线协议信号。此外,总线26和26′每个都能作为两个各在控制器29和DMA单元直接控制下的总线实现。控制器装载总线例如可用来将内部控制器寄存器内容装入PE,而读总线可用来读诸如状态比特那样的内部PE寄存器内容。控制器29可以通过将控制器29接至存储器的接口线路61接入这些总线。DMA装载总线可用来将存储器的数据块从存储器33装入PE本地存储器48,而DMA读总线可用来将数据块从本地存储器48存入存储器33。DMA功能最好是控制器29的一部分。存储器开关46用来将PE本地存储器48通过总线51和53以及总线55和57接至PE寄存器文件34。存储器开关46还将存储器33通过总线26和26′以及总线55和57接至PE寄存器文件34。存储器开关控制信号由装载和存储单元28通过控制接口59提供。装载和存储单元28通过接口27从指令解码器/控制器38接收装载和存储指令信息。根据接收到的指令信息,装载和存储单元28产生对存储器开关46的开关控制信号。从控制器29分发给PE阵列的所有指令在阵列的每个PE内都以同样的方式解释。这些分发的PE指令并不标有发给个别PE或个别PE组的标记。
图4中示出了一个4×4的PE阵列。在图4的阵列中组合了四个各有四个PE的簇52、54、56和58。簇开关86和通信通路88以在1997年6月30日递交的共同未决专利申请08/885,310中详细说明的方式连接这些簇,该申请的内容全部列作本发明的参考。虽然,在图中这个优选实施例内的每个处理元示为具有两个输入口和两个输出口,但是在簇开关内多路复用的另一个层使每个PE的通信口的数目减少为一个输入口和一个输出口。在一个每个PE有四个邻元发送连接和单向通信(即每个PE只允许一个发送方向)的标准环中,在每个PE内需要有四个多路复用的发送通路。这是由于互连拓扑结构定义为PE的一部分。总的结果是在这个标准环中有4N2个多路发送通路。在具有等效的连通性和非限制的通信的流形阵列中,只需要2N2个多路复用发送通路。这样减少发送通路就显著地节约了集成电路的“不动产”,因为多路复用器和2N2个发送通路所占用的面积明显小于4N2个发送通路所占用的面积。各通信通路分别标为N、S、E、W,与环接阵列内的各通信方向相应。
一个完整的簇开关86的实施例示于图5的方框图。北(N)、南(S)、东(E)、西(W)输出如前面所示。簇开86已增添了多路复用的另一层112。这个多路复用层在标为A的东/南接收和标为B的北/西接收之间进行选择,从而将对每个PE的通信口要求降低为一个接收口和一个发送口。此外,转置元PE1,3和PE3,1之间的多路复用连接通过标为T的簇内转置连接实现。在对于一个特定的多路复用器的T多路复用器允许信号有效时,来自一个转置PE的通信就在与这个多路复用器关联的PE被接收。
在这个优选实施例中,所有的簇都包括诸如在一个PE与它的转置PE之间的通路那样的转置通路。这些图例示了总体连接方案,但并不意图例示一个多层集成电路实现方式怎样可以完成通常会是常规的设计选择问题的常规阵列互连的实体。如同任何集成电路布局那样,IC设计者可以在设计本发明的阵列的实际IC实现方式的过程中分析各种折衷方案。例如,可以将簇开关分布在PE簇内,以减小众多接口的布线长度。
为了将4PE簇内的连通性扩展到支持多维阵列和简化实现方式在多路复用上所要求的改变示于图6的簇开关686。为了简化说明,假设都是单向连接,除非另有说明。图6中的这些多路复用器对于每个数据通路输入都有一个与之关联的允许信号。这些允许信号可以由来自SIMD控制器的独立信号线产生,或者间接地在各个PE内将所接收的分发指令解码后产生,或者在簇开关内产生。可以在簇开关内配置独立的控制机制,接收SIMD控制器分发的指令加以解码,通过独立的解码器/控制器机制产生多路复用的允许信号。在本优选实施例中,簇开关多路复用允许信号在PE内产生。在这个优选实施例内应用了分别标为4/1和3/1的四个4-1发送多路复用器和四个3-1接收多路复用器。
图6示出了图5所示簇开关586的扩展,包括用四个4输入多路复用器4/1代替八个2输入发送多路复用器{X1,X3,X5,X7,X2,X4,X6,X8}。图5中带有标为{A,B}和{A,B,T}允许信号的四个2输入和三个3输入接收多路复用器用四个3输入接收多路复用器3/1代替,还用了门/缓存器B1至B8对发送线进行选通/缓冲。四个4输入发送多路复用器提供簇52内的四个PE之间的完备连通性。图6的簇开关686表示由图5的簇开关586提供的连通性的一个超集。有许多方式来布置簇开关的内部布线,图6示出了这些连接点,但并没有示出一个多层硅实现怎样完成这些连接的情况。
图7以方框图形式示出了在一个4×4流形阵列内PE簇52、54、56和58的组织情况。对于这些PE簇和它们的簇开关不在同一块硅片上、可能相隔一段距离需要用电路板线路或电缆连接的一般情况,需要对发送线进行选通/缓冲。此外,就功率和布局上的原因,为了减小噪声和功率,对发送信号进行选通/缓冲也是很重要的。然而,在这个优选实施例中,流形阵列组织在单个芯片或集成电路上,四个PE簇的簇开关紧挨在一起,因此可以省去选通/缓冲电路。在图9A的簇986A中示出了图6A的簇组织在省去了缓冲后的情况。
类似,图7的4×4流形阵列的缓冲对于优选的单芯片实现来说也可省去,结果为如图8A所示的流形阵列800A。在4×4流形阵列800A连接成如图8A所示时,一个簇内的每个PE能与两个相互正交的其他簇连接。图8B示出了4×4流形阵列800B内的一个PE(PE1,3)的输出发送连通性。4×4流形阵列800B内的每个PE都能接回本身和本簇内的其他PE,而且能接至两个其他簇。图8C示出了一个阵列800C的一个4×4PE节点的输入(接收)连接性。在本发明的4×4流形阵列的这个优选实施例中,任何两个节点之间最大通信距离为2。
在图9B这个方框图中示出了一个2×2流形阵列900B,其中包括一个连接簇952内各PE的簇开关986B。这个图中的任何PE都能与簇952内任何其他PE通信。例如,PE00可以将数据发送给它本身、PE01、PE10或PE11,PE01可以与P00、它本身、PE10或PE11通信,对于簇内其他两个PE来说情况相同。对于转置操作,PE00和PE11不需要做什么,最多是与本身通信,而PE01与PE10通信。对于超立方情况,PE00与PE11通信,而PE01与PE10通信。从图9B的2×2流形阵列900B到4×4流型阵列需要附加一组多路复用器来连接四个2×2流型阵列,如图9A中对簇52所示。图9A的簇开关986A包括了这组附加的多路复用器990。因此,可以看到本发明为处理器、节点之类的互连提供了高度灵活和可变规模的途径。
图10至13这些方框图分别示出了一个流形阵列1000的各个方向的邻元通信通路,即东、西、北、南向通信通路。每条通路用箭头指示。在给定时刻每个多路复用器内只有一条输入通路是允许的。为了使数据能在选定通路上传送,控制器29向所有的PE分发一个通信指令。这些PE接收到分发的PE指令后,对它进行解码,从各自的寄存器文件34中检索出所选数据发送给各自的簇开关86。根据从接收到的指令结合得出所选通信信息结合已编程的虚拟PE号码和配置控制器44的输出产生在图3A中所示的开关允许信号。
在图14这个方框图中,示出了对同一个4×4流形阵列1000进行转置操作的通信通路。同样,有效数据通路以沿通路的有向箭头指示,一个时刻每个多路复用路只有一个输入是有效的。这些开关允许信号以与对图10至13所述相同的方式形成。图15示出在一个4×4流形阵列1500上的四个独立的1×4线性环的通信通路。这些1×4线性环都由2×2阵列以行为主序构成的。也就是说行为主序的线性环通路是从PE00(A,B,C或D)经PE01(A,B,C或D)、PE10(A,B,C或D)、PE11(A,B,C或D)再回到PE00(A,B,C或D)。每个由PE 00、01、10、11组成的组(A、B、C或D)构成了一个1×4的PE线性环。
图16这个方框图示出了本发明的流形阵列的灵活性的又一情况。图16示出了一个配置成两个阵列的4×4流形阵列1600的通信通路。上面的2×2×2阵列由一些“A”PE构成。下面的那些“B”PE构成了第二个2×2×2阵列。
图16采用了(行)×(列)×(面)的标记方式,面之间沿z轴通信。在PE之间进行这样的通信根据用的是双向口还是单向口通常会需要三个或六个轴的通信口。相反,实现这个优选的流形只需要每个PE一个输入口和一个输出口。应注意的是,阵列1600可以利用PE物理布置与图11至14所示的阵列1000的邻元通信所用的相同的PE簇1652、1654、1656,只要对簇开关的开关设置进行设置,形成图16的互连格式。本发明的这种流行阵列组织的许多优点之一是这种配置和连接方法可以产生一些新的强大的能力。
作为这种强大能力的又一个例子,图17示出了一个以四维超立方体实现的由簇开关如图所示互连簇1752、1754、1756、1758而成的流形阵列1700。在图17中,上PE号码,例如0,0或3,1,表示PE在环内的位置,如图1和2中所示,而下PE号码,例如0000或1001,表示它在一个超立方体内的位置或地址。在标准超立方体的PE之间的通信中,应该超立方的号码中只有一个比特不同的两个PE之间才能直接通信。例如,在图1中PE0111(PE12)与PE0011、0110、1111和0101通信,每条独立的通路都表示超立方PE号码有一个比特不同。然而在图17中,不仅PE与它们的转置元处在同一个簇内,而且有利的是PE与它们的超立方补元也处在同一簇内。可是图7的阵列在超立方的两个互补元之间没有直接通路。
图18示出了本发明的在每个各有四个PE的簇1852、1854、1856或1858内的PE完全连接的流形阵列1800。对于一个有N个各由N个PE组成的簇的N×N流形的情况,簇可以通过选择一个i和一个j,再利用公式:PE(i+a)modN,(j+N-a)modN,对于任何i,j和对于所有的“a”+∈{0,1,…,N-1},来形成。对于一个诸如流形阵列1800那样的四维超立方体,对簇节点号码可以适当地进行格雷编码,成为PEG((i+a)modN),G((j+N-a)modN),其中G(X)为X的格雷码。下面将简短地以流形阵列的数学表示说明推广到一般情况的过程。
对于N=4来说,一个带有超立方节点的适当流形阵列1800示于图18。这个4×4流形阵列1800包括连接超立方体互补元的连接通路。也就是说,一个超立方PE与它的超立方补元之间允许有直接的通信通路。例如,PE0111(PE1,2)可以与PE 1000(PE3,0)以及它的簇内的其他成员通信。在考虑一个超立方PE与它的超立方补元之间的通信关系中,通信通路对于最长在这种情况下为4步的被减少到只有1步。这样减少通路长度对于根据按本发明的流形阵列组织处理元的情况产生非常有效的超立方型算法是具有相当深远的意义的。此外,4×4流形阵列的4PE簇与现有技术的实现情况相比为PE与它的超立方补元之间的通信连接提供了一种低成本的解决方案,因为在现有技术的折叠阵列的情况下,要获得同样的四维超立方连通性需要有一些8PE簇。
图19示出了一个5D(五维)超立方体1900,共有4×4×2个PE,在每个PE中以行、列、面作为上PE号码,而以5D超立方号码作为下PE号码。对于一个传统的5D超立方体,每个PE要有5个双向连接口和10个单向连接口。对于图20所示的流形阵列2000这样的将一个5D超立方体映射成一个4×4×2流形阵列的实现来说,每个PE只需要有一个双向口或两个单向口。此外,标准的超立方体需要有25即32个PE,总共5N2(N=4)个双总线或10N2(N=4)个单向总线。然而,图20的5D超立方流形阵列2000只需要在所有的PE簇之间有总共2N2(N=4)个双向总线或4N2(N=4)个单向总线。图20示出了每个簇之间有8条发送通路和8条接收通路的单向总线情况。注意,如图20所示,超立方PE及其补元可以有利地配置在同一个PE簇内。此外,每个PE面的每个PE及其相邻转置元也配置在同一个PE簇内。而且,各面的相应簇元也分别组合在一起。这种组合方式对于未示出的每簇16个PE的6D超立方体同样适用。
要指出的是,簇开关在5D时与在4D时是不同的,然而构成的方式是类似的,以提供同样的互通性。注意,这种流形阵列形成技术可以形成具有不同规模的簇。簇的规模根据应用和产品要求选定。
一个具有北、南、东、西和Z轴输入/输出(I/O)口的3D环拓扑结构要求每个PE有6个双向三态型链路或12个单向链路。这意味着N×N×N的3D环需要有3(N3)个双向三态型链路和6(N3)单向型链路。对于一个4×4×4的3D环的流形阵列拓扑结构与对于一个6D超立方体的流形阵列拓扑结构是没有区别的。这些PE可以按环或超立方体要求标记。此外,8×8的环可以认为是4×4×4的3D环在连通性要求上有所降低的一个子图。在以流形阵列实现一个3D立方体或6D超立方体的拓扑结构中,各PE都只需要一个发送口和一个接收口,而与拓扑结构所需的口的数目无关。将一个PE布置在3D立方体拓扑结构内它的所要求位置上可以由这个PE外的开关机构适当处理。对于流形阵列的3D环来说,簇间布线的复杂程度得到减小,开关机构只需要3(N3)的三分之一个链路或(N3)个双向三态型链路和对于单向型链路来说只需要2(N3)个,而不是现在通常所需的6(N3)。这表示实现成本可以大大降低。
下面将给出本发明的流形阵列的各种情况的数学说明。一个超立方体是一个每维规模为2的正则环。例如,一个4维超立方体可以看作一个2×2×2×2的环。然而,以下说明将针对体现为具有较少维数的环为情况。2d维的超立方体等效于一个边长为4的d维正则环,而2d+1维超立方体等效于一个边长除最后一维为2而其他各维均为4的d+1维正则环。首先,2d维超立方体等效于一个每维长为4的d维正则环,其中d为自然数。
2d维超立方体H包括22d个节点,等于每边长为4的d维正规环T的节点数,4d=(22)d。按照定义,H的每个节点与2d个其他节点邻接,每维一个。T的每个节点与每维两个其他节点邻接,也就是说,在一个d维正则环中,每个节点也与2d个其他节点邻接。因此,H和T具有相等的节点数和相等的边沿数。
为了在它们之间定义一一对应关系,设:(i1,i2,…,id)是T的一个节点,其中ij表示节点的对于维j的座标。由于T是一个每边长为4的d维正则环,因此对于从1至d的所有的j,ij取0至3的值。沿维k,这个节点与节点(i1,i2,…,ik-1,…,id)和(i1,i2,…,ik+1,…,id)邻接。我们假设运算ik-1和ik+1是模4运算,即3+1=0和0-1=3,以包括环的环回边沿。
考虑T的节点(i1,i2,…,id)与H的节点G(i1),G(i2),…,G(id))之间的一对一映射。这里,G(0)=00、G(1)=01、G(2)=11和G(3)=10都是2位格雷码。虽然环的节点用一个元组标示,但超立方体的节点用一个二进制串标示,因此当我们写出(G(i1),G(i2),…,G(id))时,我们实际上是指一个连在一起的相应二进制串。为了弄清楚这一点和我们所提出的一对一映射,考虑一个3维正则环的节点(3,1,0),相应的6维超立方体附标就为100100,这是连接G(3)、G(1)、G(0)得出的。
由于相继的格雷码只有一个比特是不同的,因此环的邻接节点也是超立方体的邻接节点,反之亦然。所以,在H的节点和边沿与T的节点和边沿之间存在着一个一对一的映射,也就是说这两个图是对等的。因此,一个维数为2d的超立方体可以体现为一个每维长为4的d维正则环。
对于格雷码和利用格雷码标示超立方节点的详细情况例如可参见F.Thomson Leighton的“并行算法和体系结构导论:阵列,树,超立方体”(“Introduction to Parallel Algorithms and Architectures:Arrays,Trees,Hypercubes”,Morgan Kaufmann,1992,ch.3),该书列作本发明的参考。
2d+1维超立方体等效于一个除最后一维长为2所有各维长均为4的d+1维环。从Leighton的著作中可见,2d+1维超立方体可以看成为相应节点互连的两个2d维超立方体(见该书第393页)。但是,由于2d维超立方体等效于每边长为4的d维正则环,因此两个d维的环通过将它们相应的节点连接起来而形成的并就是一个最后一维长为2的d+1维环。
由上可见,2d维的超立方体等效于一个边长为4的d维正则环,而2d+1维超立方体等效于一个除最后一维长为2而其他各维长均为4的d+1维环。
流形阵列的组合,或簇,最好将完全相对的节点列在一起,情况如下。一个d维超立方体的邻接节点相互只有一个比特是不同的,因此节点地址中所有d个比特全不同的节点相互离得最远,也就是说完全相对。离得最远的两个节点的地址互为二进制的补码。因此,我们也将一个给定节点的完全相对节点称为它的补节点。
例如,考虑一个2维的4×4环和相应的嵌入4维超立方体,这个超立方体的节点附标列成图21A所示的4×4表。沿着这个表的行和列,相邻元之间的距离为1。如果列2、3和4向上轮转一个位置,那么第一列与第二列之间相应元的距离就成为2。对于列3和4再对列4重复同样的操作,那么一个列的元与相邻列的相应元之间的距离就都为2。这样得到的4D流形阵列表如图21B所示。
重要的是应注意到这个表的每一行都含有一种对4个节点的组合方式,也就是说有两对完全相对的节点,因为4是在4维超立方体上最大的距离。表的这行确定了将完全相对的节点列入同一组的组合情况。
在较高维的环因此也就是较高维的超立方体的情况下,通过沿最后一维外每个新维同样旋转的方式来达到组合完全相对的节点。
为了在数学上描述这种组形成置换情况,定义两个算子:将一个张量多维阵列拆开用它的元构成一个向量,以及这个算子的逆算子。vec()算子用单个自变量,张量T,得出一个沿张量的第一维各列排列T的元形成的向量。例如,如果T是2维张量,则v=vec(T)=[11 21 31 1222 32 13 23 33]T。另一方面,张量T可以利用源结构和各维的列表作为自变量的算子reshape()根据向量V重构。按上个例子,T用reshape(v,3,3)重构。
两个矩阵A和B的Kronecker积为一个由B的拷贝来以A的相应元构成的块矩阵。即:为了展现所需组合对多维阵列T的操作可以定义为一个矩阵-向量积,其中矩阵是一个置换矩阵,每行和每列都只有一个非零元的正交矩阵,而向量是vec(T)。首先需要矩阵S,确定向上轮转的大小为4的置换矩阵。 S = 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0
还要确定实际执行组合置换的块对角矩阵G G = S 0 0 0 0 0 S 1 0 0 0 0 S 2 0 0 0 0 S 3 G的各对角块分别是S的各次方。如果T是4×4环,reshape(Gvec(T),4,4)就是所得到的具有上述提出的组合性质的环。类似,如果T代表4×4×4的环,那么给定提出的组合的运算为reshape((GI4)(I4G)vec(T),4,4,4),其中I4是4×4的单位矩阵。
推广到每维长为4的d维正则环T的一般形式,展现组的置换为
Figure A9880944600331
对4×4×4环进行组合置换的一个例子:
第一次用(I4G)进行矩阵相乘后,四个面分别成为:
000 110 220 330
100 210 320 030
200 310 020 130
300 010 120 230
001 111 221 331
101 211 321 031
201 311 021 131
301 011 121 231
002 112 222 332
102 212 322 032
202 312 022 132
302 012 122 232
003 113 223 333
103 213 323 033
203 313 023 133
303 013 123 233
第二次用(GI4)进行矩阵相乘后,我们得到:
000 110 220 330
100 210 320 030
200 310 020 130
300 010 120 230
111 221 331 001
211 321 031 101
311 021 131 201
011 121 231 301
222 332 002 112
322 032 102 212
022 132 202 312
122 232 302 012
333 003 113 223
033 103 213 323
133 203 313 023
233 303 013 123
如果不向上轮转而是向下轮转,那么也可保证同样的使完全相对的节点列在一起的组合性质。此外,组也含有对称的节点对,节点(i,j)与它的转置节点(j,i)分在同一组内。在数学上,向下轮转置换是向上轮转置换的转置。在置换矩阵是正交矩阵时,向下轮转置换也是向上轮转置换的逆。具体地说,向下轮转的大小为4的置换矩阵为: S 4 T = 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0
在这里,由于我们并没有限制长度为4,因此我们需要指定矩阵的大小,从而能对任何长度的2维环或高维环的2维子图进行轮转。类似,为了对所有的列进行相应的轮转,我们确定矩阵G的转置,它的各对角块是ST的相应次方。
再回到图21C所示的每边长为4的3维正则环的前面这个例子,第一次用(I4GT)进行矩阵相乘后,其中GT G 4 T = S 0 0 0 0 0 S 1 0 0 0 0 S 2 0 0 0 0 S 3 T 4个面成为:
000 310 220 130
100 010 320 230
200 110 020 330
300 210 120 030
001 311 221 131
101 011 321 231
201 111 021 331
301 211 121 031
002 312 222 132
102 012 322 232
202 112 022 332
302 212 122 032
003 313 223 133
103 013 323 233
203 113 023 333
303 213 123 033
以上组合以从z轴透视的方式示于图22,也示于图23。在第二次用(GTI4)进行矩阵相乘后,我们得到:
000 310 220 130
100 010 320 230
200 110 020 330
300 210 120 030
131 001 311 221
231 101 011 321
331 201 111 021
031 301 211 121
222 132 002 312
322 232 102 012
022 332 202 112
122 032 302 212
313 223 133 003
013 323 233 103
113 023 333 203
213 123 033 303
这样,不仅是完全相对的节点沿第三维各不同面的相同位置组合在一起,如图24所示,而且相对于前两维的对称节点也沿第二维或面上的行也组合在一起。在图24中,特别示出了一个组合89。组合89用作下一组图的参考点。图25对A、B、C和D面根据它们在簇间的连通性进行了重排。图26根据子簇之间的本地连通性将每个面分成2×2的子簇。组89示为面A内的一个子簇。这种流形阵列的核心体系结构现在可以用来直接代替每个标识的2×子簇,如图27A中所示。在图27B中,未出了一个4×4×4 PE节点PE2,2,2的输入(接收)连通性。注意,其中增添了一组附加的多路复用器,标为xx1、xx2和xx3。对于4×4×4的每个4×4流形阵列子集,都增添了一组xx#型的16个多路复用器。这些多路复用器都以与图27B中为加粗的PE节点2,2,2示出的相同的方式连接。
应当指出的是,可以通过不同的置换序列来达到同样的对节点的组合。设P为在上面所示的这些步骤所需的置换乘在一起得出的置换矩阵。对这个矩阵的任何因子分解都相当于达到同样结果的不同操作步骤序列。例如,假设P=A1A2A3。考虑随机的置换矩阵Q、R。我们能得出一个达到与置换P同样的对节点的组合的不同置换序列。例如,由于P=A1QTQA2RTRA3,因此通过令B1=A1QT、B2=QA2RT和B3=RA3,就可得到P=B1B2B3。此外,可以置换组的元和/或组的相对次序,达到一种看来不同实质相同的对节点的组合。
按照本发明根据流形阵列构成的网络的特性还可以有益地用来连接节点,以形成一个具有许多优点的网络。下面对此进一步加以说明。
网络直径定义为所有节点之间的距离中的上界。网络直径反映了最差情况下节点对节点通信所需的步骤数。直径越小,最远节点之间通信所需的步骤越少。对于一个d维的超立方体来说,H′是对H增添了连接互补节点的边而形成的新图。设s和t为H的两个互补节点,而v是H的另一个任何节点。可以证明,从任何一对超立方体互补节点到任何一个超立方体节点v的距离之和等于这个超立方体的维数。也就是说,给定一对互补节点s和t以及另一个节点v,在s与t之间有一条通过v的最短通路。
从s到v的距离等于s与v的二进制表示中数字相互不同的比特数,设为k。由于t是s的补码,因此t与s的二进制表示中数字不同的比特数等于d-k。所以,从s到v的距离为k,而从t到v的距离为d-k。也就是说,这两个距离之和为d。此外,从s经v到t的这条通路具有长度d,这是一条最短的通路。
此外,通过增添连接一个d维超立方体的互补节点的边可以将图的直径在d为偶数时减小为d/2,而在d为奇数时减小为(d+1)/2。设v是H的一个节点,而k和d-k分别为从H的两个互补节点s和t到v的距离。不失一般性,可假设k<d-k。于是在H′内从s到v的距离为k,因为我们可以使用与在H内相同的最短通路。在H′内从t到v的距离为k+1,因为可以使用通过连接这两个互补节点的新边经s的通路。这也就是说,对于H′的任何一对节点v和s,它们的距离不可能在d为偶数时超过d/2,在d为奇数时超过(d+1)/2,于是,在H′内经s的补节点t的最短通路的长度小于d/2。
一个d维超立方体的网络直径,在增添了互补节点连接后成为[d/2],如上所述。这个结果总结在下表内。注意,在中间的一列只是考虑了连接互补节点的边。标为流形阵列的第三列指出了按照本发明的流形阵列设计的结构内所含的边的数目,以及为2的恒定网络直径。
上表表明这个子图含有比超立方体多2d-1条边,用来连接一个超立方体网络的互补节点,使性能得到惊人的改善。网络直径减小为原超立方体情况下的1/2。在采用了上表第三列中给出的全部流形阵列边后,按照本发明,网络直径将减小为2,而与d无关。超立方体和带互补边的超立方体是流形阵列的真子图。
虚拟节点的仿真模拟可以如下实现。假设我们具有一个高维网络,需要用一个较小的网络加以模拟。这个要求意味着必需用每个物理节点对多个虚拟节点仿真。下面介绍了几种方式将虚拟网映射到物理网络,使得仿真保持超立方体网络上的超立方邻接关系和超立方互补性以及2维环网络上的矩阵转置关系。超立方体仿真可以比较简单。假设有一个d维超立方体需要在一个较小的q维超立方体上仿真。于是,每个物理节点必需对2d-q个节点仿真。一种非常简单的示出本发明的途径的方式是考虑节点的二进制地址。d维超立方节点需要d比特的二进制地址。从这d个比特中,q个比特定义了进行仿真的物理节点的地址,而d-q个比特定义了在物理节点内的本地虚拟节点ID的地址。确实,对于一个具有d个比特的地址
Figure A9880944600391
的虚拟节点v来说,地址的前q个比特标明模拟一组2d-q个以虚拟地址的本地ID相区别的虚拟节点的物理节点的ID。v的任何相邻节点w在地址上只有一个比特是不同的。这个比特可能是虚拟ID的前q个比特中的一个比特,因此w属于这个物理节点的相邻节点,或者可能是后d-q个比特中的一个比特,这表示w是由同一个物理节点模拟的。此外,虚拟节点v的补节点可以用模拟v的物理节点的补节点来模拟,因为虚拟地址的补码就等于物理和本地地址的补码的串接。由于互补的物理节点在流形阵列内属于同一簇,因此互补的虚拟节点也属于同一簇。
通常,虚拟节点ID可以按需要分为两个不一定要接连的部分,即一个物理节点ID和一个本地节点ID。虚拟节点的相邻节点将具有一个节点ID,它或者在ID的物理部分或者本地部分有一个比特是不同的。因此,它分别由物理节点的相邻节点或同一个物理节点模拟。此外,由于虚拟ID的补码,因此一个虚拟节点的补节点始终由物理节点的补节点模拟,它在流形阵列上也是一个相邻节点。
相反,如果一个较小的超立方体用一个较大的超立方体仿真模拟,那么一切都像所预料的那样在流形阵列的一个子集上进行,因为流型阵列是递推定义的。也就是说,有一个流形阵列的子图,其规模等于需加以模拟的超立方体的规模,而且上述所讨论的成立。
环的仿真模拟也很容易加以研究,因为同样的概念对模拟一个环也是成立的。虚拟节点ID的(每维)相连接的段相应于一个物理ID和一个本地ID。在物理节点ID含有虚拟节点ID的一些最高有效位时,我们具有虚拟节点的块分布。否则,在物理节点ID含有虚拟节点ID的一些最低有效位时,我们具有虚拟节点的循环分布。在块分布中,一组具有相继ID的虚拟节点由同一个物理节点模拟。16个虚拟节点在4个物理节点上的块分布为物理节点0模拟虚拟节点0、1、2和3,物理节点(模拟虚拟节点4、5、6和7,如此等等。在循环分布中,一组具有相继ID的虚拟节点由不同的物理节点模拟。此时,16个虚拟节点在4个物理节点上的循环分布为物理节点0模拟虚拟节点0、4、8和12,物理节点1模拟虚拟节点1、5、9和13,如此等等。
通过将一个虚拟地址加1或减1,我们找到这个节点的一个沿所规定的轴的相邻节点。这样加1/减1相当于对虚拟地址的本地部分或物理部分或者两者加1/减1,因此保证相邻的虚拟节点由同一物理节点或一个相邻物理节点模拟。为了保证转置虚拟节点由同一个物理节点或相邻物理节点模拟,虚拟地址的物理段和本地段的指定必需对于所有各维是相同的。也就是说,块-块或循环-循环的虚拟节点分布可以维持转置节点的相邻关系。
回到并行机内的超立方流形阵列的例子,对于高性能的算法运算来说数据安排可能是头等重要的。在一个阵列处理器中,为了使在处理元之间移动数据引起的等待最小,数据必需一开始就安排在适当的PE内,而后在运算期间在直接连接的PE之间移动。因此,随着算法进行到各个运算阶段,数据移动必需加以优化,以便使整个算法的总通信等待最小。为了演示流形阵列的性能,将在图28A至30所示的4×4流形阵列2800上对一种完全混洗算法和一种在一个PE与它的超立方补元之间的通信的算法进行考察。利用张量积代数将完全混洗算法映射成流形阵列处理器。
张量积代数,也称为Kronecker积,表示一种将数学方程式映射成适合针对目标机体系结构编码的算法的矩阵形式的方法。对于张量积引论和在将问题映射成目标体系结构中的应用可参见例如J.Granata,M.Commer,R.Tolimieri的“张量积:FFT和其他快速DSF运算的数学编程语言”(“The Tensor Product:A MathematicalProgramming Language for FFTs and other Fast DSP operations”,IEEE SP magazine,pp.40-48,January 1992)和J.R.Johnson,R.W.Johnson,D.Roodriguez和R.Tolimieri的“根据不同体系结构设计、修改和实现付立叶变换算法的方法”(“A Methodology fbr Designing,Modifying and Implementing Fourier Transform Algorithms onVarious Architectures”,Circuits Systems Signal Process Vol.9,No.4,pp.449-500,1990)。这两篇论文在此列作参考。
在对一个流形阵列完全混洗例的张量表示法中,完全混洗定义为一个用
Figure A9880944600411
表示的置换矩阵(见J.R.Johnson等人的论文p472)。这个置换矩阵通常解释为定义了一种寻址机制,以访问需装入一个特定机器单元的数据或需存储来自一个特定机器单元的数据。通常,置换矩阵表示将数据放入下次要运算操作的适当位置所需的数据移动。因此,重要的是优化数据移动,置换矩阵,到目标体系结构的映射。对于作为一个单指令多数据流(SIMD)超立方体机运行的流形阵列机构来说,可以方便地实现完全混洗,如果数据在阵列内布置适当的话。一个
Figure A9880944600412
在n=5(P32 16)时的完全混洗结合图28至33加以说明。图28A示出了用来说明完全混洗算法的总线结构和各操作单元。在图28A内包括有多个控制器、存储单元0至3和一个专用FIFO缓存器。这样组织的这个优选实施例将这些存储单元、控制器和FIFO缓存器与PE阵列配置在同一个芯片上。然而,应当看到,本发明并不局限于单芯片实现。流形阵列的概念很方便地可以用于配有电缆总线、外部存储器和外部控制器的微处理器芯片PE阵列。就本讨论而言,说明的是一个单片高性能的阵列处理器,使一种单体系结构和机器组织得以限定,规模对于整个机器系列是可变的。
所以,为了降低成本,这些控制器、存储单元、数据缓存器(例如FIFO)和PE全都配置在单个芯片上。这些控制器通过控制信号,例如存储器地址和装载/存储信号,或者通过在指令总线上发送给例如各PE的分发指令对各阵列簇、存储器和I/O功能进行控制。这些控制器都是SIMD机内的典型功能单元,因此只在支持下面的算法中加以说明。数据缓存器,在图28至30中示为一个专用的FIFO缓存器,也是在存储器/直接存储器访问(DMA)接口单元中通常使用的,因此在此也只作一般性的说明。
图28A例示了多个控制怎样可以用来支持一个可重新配置的成簇PE拓扑结构。在图28A中,有一个控制器与每个有4个PE的簇都关联。控制器0认为是一个主控制器,虽然也可以采用其他方案。指令总线IO接至它身的簇和那些分别与其他控制器配合的指令开关(ISW)。图28A中的各个ISW可以使指令总线IO接至输出端C或将各自的控制器输入指令总线I1、I2和I3接至各自的输出端C。这些ISW由主控制器直接或间接提供的控制信号控制。主控制器也可以接收系统组织内指定提供这信息的另一个处理器(诸如一个主处理器)直接或间接发来的信息。对于这个完全混洗的例子来说,这些ISW设置成将IO接至所有的指令总线通路。因此,控制器O起着控制图28A中所示的所有四个PE簇2852、2854、2856和2858的单控制器的作用。在图28A中示出了一个外部接口通路,它接至一个数据源,例如存储器子系统。
首先看图28B的底部,那里示出了一个线性增长的数据项序列,作为一个例子,8个数据项一组按FIFO地址成组输入片上FIFO。地址示于FIFO内相应各列的上方。如图28B所示,第一组数据项{0至7}存储在FIFO 0内,下一组{8至15}存储在FIFO 1内,如此类推。在本例中,FIFO提供8条输出通路,每个列数据项一条,给四个由控制器(在本例中为控制器0)或本地缓存控制功能控制的多路复用器,以将数据以下面结合图29要说明的那种方式进行装载。在图28B中,所示各总线D0、D1、D2和D3都可以是一个三态双向总线,或者是独立的装载和独立的存储总线。这些总线的宽度可以是任何与所期望的应用匹配的,通常是8比特、16比特、32比特或64比特,当然也可以是其他宽度。
为了简明起见,没有示出PE簇间的互连情况。图3A至3C的基本存储器块在图28的4×4流形阵列2800内已扩展为N=4个存储器块,以支持按超立方体模式布置数据和增大对簇的数据接口带宽。这些存储器块分别标以0至3,而总线通路也是依次每簇一条。例如,存储器0通过数据总线D0接至簇A 2852的各PE{(0,0),(3,1),(1,3),(2,2)},而存储器1通过数据总线D1接至簇B 2854的各PE{(3,2),(0,1),(2,3),(1,0)},如此类推。注意,其他总线结构也是可以的,并非必需采用所例示的方式。
数据装入FIFO缓存器后,过程的下个步骤就是将数据装入内部存储器0至3 (M0,M1,M2和M3),如图29所示。对于本说明来说,假设数据项是32比特,数据总线也是32比特。用8个FIFO至存储器装载周期按下面次序每次并行装载4个数据项,所用表示法为:存储器单元-数据项或Mx-a。用来产生装入图29中各存储单元的所示数据模式的次序是:第一周期(M0-0,M1-1,M2-3和M3-2),第二周期(M0-6,M1-4,M2-5和M3-7),如此继续到第八周期(M0-31,M1-30,M2-28和M3-29)。例如,存储器2(M2)用来自FIFO线的数据(如图29中用虚线57圈出的项)装载。现在必需将存储器的数据装入PE阵列2800。这些存储器块由控制器0寻址和控制。为了将数据装入PE,控制器0向各PE分发一个指令,通知它们需要从它们的数据总线装入数据和需要将数据装入PE内部的什么地方。然后,控制器0同步地向存储器块提供一个地址,在这种情况下,对于四个存储器0至3的每个存储器都是相同的地址。在与地址同步中,控制器0于是产生存储器单元从受寻址的位置读出数据送至存储器单元各自数据总线所必需的信号。
在同步情况下,适当的PE按控制器0分发的指令所明确的从它们的数据总线上取得数据予以装入。控制器0标明选择适当PE的情况。这种选择可以用多种方式实现,例如在控制器发送给PE的分发指令内加以标识,或用分别配置在各PE内的可编程允许/禁止比特,等等。控制器在指令总线上向这些PE分发一个PE装载指令序列来达成这个结果。用总共8个存储器至PE装载周期装载32个数据项,按下面次序每个装载周期并行将4个数据项装入相应PE,所用的表示法为:存储单元-数据项-PE#。用来产生装入图30中各PE的所示数据模式的次序是:第一周期(M0-0-PE0,0,M1-1-PE0,1,M2-3-PE0,2,M3-2-PE0,3),第二周期(M0-6-PE1,3,M1-4-PE1,0,M2-5PE1,1,M3-7-PE1,2),第三周期(M0-9-PE3,1,M1-11-PE3,2,M2-10-PE3,3,M3-8-PE3,0),第四周期(M0-15-PE2,2,M1-14-PE2,3,M2-12-PE2,0,M3-13-PE2,1),一直继续到这32个数据项全部装入PE阵列,如图30中所示。这种装载模式在以正确次序读出数据项时就实现了一次完全混洗。依次对这32数据项的表执行一个完全混洗操作的情况示于图31。
我们知道X=(P32 16)(P32 16)(P32 16)(P32 16)(P32 16)X。这个等式可以用来在流形阵列上演示一个通信例子。32元的向量X的首次置换是由如图30中所示的装载操作完成的。下次置换是由PE相邻对之间的北向交换操作实现的。下表定义了四个方向的邻元交换操作。·东向交换{0,0 & 0,1},{0,2 & 0,3},{1,0 & 1,1},{1,2 & 1,3},
      {2,0 & 2,1},{2,2 & 2,3},{3,0 & 3,1},{3,2 & 3,3}·南向交换{0,0 & 1,0},{2,0 & 3,0},{0,1 & 1,1},{2,1 & 3,1},
      {0,2 & 1,2},{2,2 & 3,2},{0,3 & 1,3},{2,3 & 3,3}·西向交换{0,0 & 0,3},{0,1 & 0,2},{1,0 & 1,3},{1,1 & 1,2},
      {2,0 & 2,3},{2,1 & 2,2},{3,0 & 3,3},{3,1 & 3,2}·北向交换{0,0 & 3,0},{1,0 & 2,0},{0,1 & 3,1},{1,1 & 2,1},
      {0,2 & 3,2},{1,2 & 2,2},{0,3 & 3,3},{1,3 & 2,3}
交换操作使得在规定的PE之间进行一次寄存器数据值交换。需交换的寄存器值的选择在每个PE接收到的分发指令内给定。对于本例来说,一个PE内的寄存器R1与另一个PE内的寄存器R2交换。图31示出了这个完全混洗序列,以列的形式列出各PE的超立方号码和所含有的寄存器R1和R2。由一个交换(方向)指令隔开的每一列指出了这个交换操作的结果。如图31所示,在每个只需要单个在成对PE之间移动相邻数据的周期的交换操作中实现完全混洗。
图32和33用来进一步扩展这个说明。图32示出了在完成给各PE的北向交换分发指令时的寄存器结果。图33示出了在完成给各PE的南向交换分发指令时的寄存器结果。西向交换和东向交换指令以同样方式处理。这个所说明的例子的重要性在于对于许多需要完全混洗数据的算法来说,如果数据能以所示的超立方模式装载,那么在流形阵列2000上就能得到极高速度的处理。
最后,说明一个流形阵列超互补的例子。在这个例子中,在超立方PE与其超立方补元之间的寄存器值交换如以上这个完全混洗例中所示那样利用交换命令执行。超互补提供了在每个超立方节点一个PE情况下将超立方机内最长的通路缩减为单个周期的最佳方案。图18示出了超互补连接所用的通路,使得所连接PE之间可以在单个周期内直接交换数据。
虽然本发明以具体的优选实施例和典型应用为背景作了说明,但可以看到,本发明能用于许多应用,这由所附权利要求限定。举例来说,虽然这些优选实施例针对的是由处理元构成的簇,但也可以用于由节点构成的簇。这样的节点可以是一些存储元,用以形成一个平铺式存储系统,使得同时可以存取多个存储数据块。此外,节点也可以是连接口、输入/输出装置之类。再举例来说,这些节点可以用来连接通信网内的多个通信信道。

Claims (48)

1.一种在一个N×M阵列内连接的多个处理元(PE)的互连系统,其中N和M都大于1,每个PE都具有一个发送和接收数据和命令的通信口,这些PE组合成一些簇,所述互连系统包括:
一些PE间的连接通路;以及
一个与所述PE连接的簇开关,用来合并簇间互斥的PE间连接通路,从而大大减少提供与传统环接PE阵列所提供的等效的PE间连通性所需的通信通路数,所述簇开关还包括一些在转置PE对之间和超立方互补PE对之间提供直接通信的连接。
2.权利要求1的互连系统,其中所述数据和命令可以在所述通信口以下列8种选定模式之一发送和接收:
a)东向发送/西向接收模式:通过通信口向一个东方PE发送数据而通过通信口接收一个西方PE发来的数据;
b)北向发送/南向接收模式:通过通信口向一个北方PE发送数据而通过通信口接收一个南方PE发来的数据;
c)南向发送/北向接收模式:通过通信口向一个南方PE发送数据而通过通信口接收一个北方PE发来的数据;
d)西向发送/东向接收模式:通过通信口向一个西方PE发送数据而通过通信口接收一个东方PE发来的数据;
e)转置发送/接收模式:在转置PE对之间发送和接收数据,
超立方体发送/接收模式:在距离为1的超立方PE对之间发送和接收数据;
f)超立方体发送/接收模式:在选择距离为2的超立方PE对之间发送和接收数据;以及
g)超立方互补发送/接收模式:在距离为d的d维超立方互补PE对之间发送和接收数据。
3.权利要求2的互连系统,其中所述模式允许在所述PE之间建立直接连接通路。
4.权利要求3的互连系统,所述互连系统还包括一个同时向每个PE控制口发送控制信息和向每个数据口发送需装入每个PE的寄存器的数据的控制器和存储器系统。
5.权利要求3的互连系统,其中所述通信口每个都包括B比特宽的发送和接收通信,其中B是一个大于或等于1的整数。
6.权利要求3的互连系统,其中所述PE每个都连接成根据通过一个控制口接收到的经配置在各自PE内的控制逻辑解码后的通信指令有选择地通过一个通信口发送命令或数据而通过另一个通信口接收命令或数据。
7.权利要求6的互连系统,其中所述通信指令由控制逻辑通过所述控制口从一个控制器接收。
8.权利要求6的互连系统,其中所述簇开关支持所述PE同时各都发送命令或数据又接收命令或数据的这种操作。
9.权利要求8的互连系统,其中所述同时操作是有选择地转接成使所述PE同时各都通过所述通信口的发送部分发送命令或数据而通过所述通信口的接收部分接收命令或数据。
10.一种并行处理器,所述并行处理器包括:
多个处理元(PE),每个PE都有单个PE间通信口;以及
一些PE间通信通路,连接成提供与传统的环接阵列所提供的等效的PE间连通性,还提供转置PE对间的直接通信、超立方距离为1的PE对间的直接通信、选择距离为2的PE对间的通信和超立方互补PE对间的通信。
11.一种并行处理器,所述并行处理器包括:
N个各有M个处理元的簇,每个处理元都有一个通信口,所述处理元通过各自的通信口在总共有B根的线上发送和接收数据;
一些少于或等于(M)(B)线宽的通信通路,连接在所述簇的各对之间,在簇对内的每个簇成员含有是在这簇对的另一个簇内的处理元的相邻元的处理元,每条通路允许所述簇对之间在两个互斥的环方向,即南和东或南和西或北和东或北和西,进行通信;以及
一些多路复用器,连接成将所述簇对间的2(M)(B)线宽通信合并所述少于或等于(M)(B)线宽的通路。
12.权利要求11的并行处理器,其中所述每个簇的处理元在北和西环方向上与一个簇通信,而在南和西环方向上与另一个簇通信。
13.权利要求11的并行处理器,其中所述每个簇的处理元在北和东环方向上与一个簇通信,而在南和西环方向上与另一个簇通信。
14.权利要求11的并行处理器,其中所述每个簇的处理元在两个超立方体方向上与一个簇通信,而在另两个超立方体方向上与另一个簇通信。
15.权利要求11的并行处理器,其中至少有一个簇包括一个超立方互补对。
16.权利要求11的并行处理器,其中有一个簇开关包括了所述多路复用器,所述簇开关连接成将从两个互斥环方向接收到的通信多路传输给一个簇内的处理元。
17.权利要求16的并行处理器,其中所述簇开关连接成将来自一个簇内的处理元的通信多路传输给另一个簇。
18.权利要求17的并行处理器,其中所述簇开关连接成多路传输一个簇内的处理元之间的通信。
19.权利要求11的并行处理器,其中所述N大于或等于M。
20.权利要求11的并行处理器,其中所述N小于M。
21.一种并行处理器,所述并行处理器包括:
N个各有M个处理元的簇,每个处理元都有一个通信口,所述处理元通过各自的通信口在总共有B根的线上发送和接收数据,在一个簇内的每个处理元形成与簇内其他处理元比与簇外的处理元更为物理邻近的关系;
一些少于或等于(M)(B)线宽的通信通路,连接在所述簇的各对之间,在簇对内的每个簇成员含有是在这簇对的另一个簇内的处理元的超立方相邻元的处理元,每条通路允许所述簇对之间在两个互斥方向,即南和东或南和西或北和东或北和西,或者两个超立方维之间进行通信,以及一些多路复用器,连接成将所述簇对间的2(M)(B)线宽通信合并成所述少于或等于(M)(B)线宽的通路。
22.权利要求21的并行处理器,其中所述每个簇的处理元在北和西环方向上与一个簇通信,而在南和东环方向上与另一个簇通信
23.权利要求21的并行处理器,其中所述为每个簇的处理元在北和东方向上与又一个簇通信。
24.权利要求21的并行处理器,其中至少有一个簇包括一个超立方互补对。
25.权利要求21的并行处理器,其中有一个簇开关包括了所述多路复用器,所述簇开关连接成将从两个超立方方向上接收的通信多路传输给一个簇内的处理元。
26.权利要求25的并行处理器,其中所述簇的开关连接成将来自一个簇内的处理元的通信多路传输给另一个簇。
27.权利要求26的并行处理器,其中所述簇开关连接成多路传输一个簇内的超立方互补处理元之间的通信。
28.权利要求21的并行处理器,其中所述N小于或等于M。
29.权利要求21的并行处理器,其中所述N大于M。
30.权利要求21的并行处理器,其中所述处理元间的通信是比特串行通信,而每个处理元簇通过所述通信通路与两个其他簇通信。
31.权利要求21的阵列处理器,其中所述处理元间的通信通路包括一个数据总线。
32.权利要求21的并行处理器,其中所述通信通路是双向通路。
33.权利要求21的并行处理器,其中所述通信通路包括一些单向信号线。
34.权利要求21的并行处理器,其中P和Q分别是一个环接阵列的行数和列数,所述环接阵列具有与所述阵列相同的PE数,而P和Q分别等于N和M。
35.权利要求21的阵列处理器,其中P和Q分别是一个环接阵列的行数和列数,所述环接阵列具相同的PE数,而P和Q分别等于M和N。
36.一种并行处理器,所述并行处理器包括:
一些由定义的一个每维长为4的d维正则环的处理元PE的簇;以及
一些簇开关,连接成多路复用所述簇间的PE间通信通路,从而提供了与一个环接阵列所提供的等效的PE间连通性。
37.权利要求36的并行阵列处理器,其中所述簇开关还连接成提供一个簇内转置PE对之间的直接通信。
38.权利要求37的并行处理器,其中所述簇可通过组合而保持多路复用或所述簇开关形成不同规模的簇。
39.权利要求38的并行处理器,其中所述簇开关还连接成提供一个簇内的超立方互补PE对之间的直接通信。
40.一种形成并行处理器的方法,所述方法包括下列步骤:
将处理元排列成N个各有M个处理元的簇,满足每个簇由
            reshape(GN vec(T),N,N)给定,使得这些簇各只在互斥方向上与至少一个其他簇的处理元通信;以及
多路传输所述互斥方向的通信。
41.一种在一个N×M阵列内连接的多个处理元(PE)的互连系统,其中N和M都大于1,每个PE都具有一个发送和接收数据和命令的通信口,这些PE组合成一些簇,所述互连系统包括:
一些PE间的连接通路;以及
一个与所述PE连接的簇开关,用来合并簇间互斥的PE间连接通路,从而大大减少提供与传统环接PE阵列所提供的等效的PE间连通性所需的通信通路数,所述簇开关还包括一些完全连接每个簇内的PE的连接,以提供转置PE对之间、超立方互补PE对之间和每个簇内任何PE对之间的直接通信。
42.一种并行处理器,所述并行处理器包括:
多个排列成簇的处理元(PE);
一些连接所述PE的PE间通信通路,使得在簇内和在一个簇的一个第一PE与两个与含有所述第一PE的簇相邻的簇之一的一个第二PE之间可通过可用通信通路实现单步的PE对通信。
43.权利要求42的并行处理器,其中同一簇内的所有PE完全连接。
44.权利要求43的并行处理器,其中所述PE都具有发送和接收口,在一个第一簇内的任何PE与在一个相邻的第二簇内的任何PE之间的通信对于在所述第一和第二簇内的所有PE都能同时进行。
45.权利要求42的并行处理器,其中在一个第一簇内的任何PE能向在一个相邻的第二簇内的任何PE发送,而所述在第二簇内的PE能向在一个相邻的第三簇内的任何PE发送。
46.一种将多个节点连接成一个N×M阵列的互连系统,其中N和M都大于1,每个节点都有一个发送和接收数据和命令的通信口,而这些节点组合成一些簇,所述互连系统包括:
一些节点间连接通路;以及
一个与所述节点连接的簇开关,用来合并簇间互斥的PE间连接通路,大大减少提供在各簇之间的节点间连接通路所需的通信通路数,从而大大减少提供与传统环接节点阵列所提供的等效的节点间连通性所需的通信通路数,所述簇开关还包括一些在转置节点对之间和超立方互补节点对之间提供直接通信的连接。
47.权利要求46的互连系统,其中所述节点都具有格雷编码地址,排列在一些簇内,使得每个相邻的节点的地址只有一个比特是有差别的。
48.一种将多个存储元连接成一个N×M阵列以形成一个平铺式存储系统的互连系统,其中N和M都大于1,每个存储器都有一个发送和接收数据和命令的通信口,而这存储器组合成一些簇,所述互连系统包括:
一些存储器间连接通路;以及
一个与所述存储器连接的簇开关,用来合并簇间互斥的存储器间连接通路,大大减少提供与传统环接存储器阵列所提供的等效的存储器间连通性所需的通信通路数,所述簇开关还包括一些在转置存储器对之间和超立方互补存储器对之间提供直接通信的连接。
CNB988094460A 1997-10-10 1998-10-09 流形阵列处理方法和装置 Expired - Fee Related CN1326061C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/949,122 1997-10-10
US08/949,122 US6167502A (en) 1997-10-10 1997-10-10 Method and apparatus for manifold array processing

Publications (2)

Publication Number Publication Date
CN1271437A true CN1271437A (zh) 2000-10-25
CN1326061C CN1326061C (zh) 2007-07-11

Family

ID=25488621

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988094460A Expired - Fee Related CN1326061C (zh) 1997-10-10 1998-10-09 流形阵列处理方法和装置

Country Status (8)

Country Link
US (3) US6167502A (zh)
EP (1) EP1034484A4 (zh)
JP (3) JP4447770B2 (zh)
KR (1) KR20010015731A (zh)
CN (1) CN1326061C (zh)
CA (1) CA2305221A1 (zh)
IL (1) IL135535A0 (zh)
WO (1) WO1999019807A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306416C (zh) * 2001-08-10 2007-03-21 朴宗元 防冲突储存装置以及采用该装置的地址运算与数据选路方法
CN103646204A (zh) * 2011-10-26 2014-03-19 潘铁军 一种用于移动信息安全保护的安全设备
CN109523019A (zh) * 2018-12-29 2019-03-26 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
CN109902064A (zh) * 2019-02-01 2019-06-18 京微齐力(北京)科技有限公司 一种二维脉动阵列的芯片电路
CN112328512A (zh) * 2020-09-22 2021-02-05 北京计算机技术及应用研究所 一种应用于多控存储系统的缓存同步系统及方法
CN114008602A (zh) * 2020-03-26 2022-02-01 图核有限公司 环形计算机网络上的嵌入式环

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2394815B (en) * 1999-04-09 2004-08-25 Clearspeed Technology Ltd Parallel data processing systems
CA2378088A1 (en) * 1999-06-25 2001-01-04 Massively Parallel Computing, Inc. Massive collective network processing system and methods
KR100349671B1 (ko) * 1999-12-13 2002-08-22 한국전자통신연구원 3-링크 노드 상호연결 장치 및 그 방법과 그를 이용한 병렬처리 시스템
US7191310B2 (en) * 2000-01-19 2007-03-13 Ricoh Company, Ltd. Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers
WO2001063438A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for providing bit-reversal and multicast functions utilizing dma controller
US20010049757A1 (en) 2000-03-01 2001-12-06 Ming-Kang Liu Programmable task scheduler for use with multiport xDSL processing system
US6728905B1 (en) * 2000-03-03 2004-04-27 International Business Machines Corporation Apparatus and method for rebuilding a logical device in a cluster computer system
RU2158319C1 (ru) * 2000-04-25 2000-10-27 Институт металлургии и материаловедения им. А.А. Байкова РАН Высокопрочная коррозионно- и износостойкая аустенитная сталь
US7418470B2 (en) 2000-06-26 2008-08-26 Massively Parallel Technologies, Inc. Parallel processing systems and method
US8325761B2 (en) 2000-06-26 2012-12-04 Massivley Parallel Technologies, Inc. System and method for establishing sufficient virtual channel performance in a parallel computing network
US6853635B1 (en) * 2000-07-24 2005-02-08 Nortel Networks Limited Multi-dimensional lattice network
US6741561B1 (en) 2000-07-25 2004-05-25 Sun Microsystems, Inc. Routing mechanism using intention packets in a hierarchy or networks
US6826148B1 (en) 2000-07-25 2004-11-30 Sun Microsystems, Inc. System and method for implementing a routing scheme in a computer network using intention packets when fault conditions are detected
US6925056B1 (en) 2000-07-25 2005-08-02 Sun Microsystems, Inc. System and method for implementing a routing scheme using intention packets in a computer network
SE522520C2 (sv) * 2000-11-02 2004-02-10 Ericsson Telefon Ab L M Signalbearbetningssystem
US6996504B2 (en) * 2000-11-14 2006-02-07 Mississippi State University Fully scalable computer architecture
US6624056B2 (en) * 2000-12-04 2003-09-23 Pts Corporation Methods and apparatus for providing improved physical designs and routing with reduced capacitive power dissipation
US7401161B2 (en) 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US6718428B2 (en) 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US7152151B2 (en) * 2002-07-18 2006-12-19 Ge Fanuc Embedded Systems, Inc. Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements
US6898691B2 (en) * 2001-06-06 2005-05-24 Intrinsity, Inc. Rearranging data between vector and matrix forms in a SIMD matrix processor
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
JP2003067354A (ja) * 2001-08-29 2003-03-07 Hitachi Ltd 並列計算機システム及びプロセッサ間通信処理方法
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
US20030065741A1 (en) * 2001-09-29 2003-04-03 Hahn Vo Concurrent bidirectional network communication utilizing send and receive threads
US7162608B2 (en) * 2001-10-24 2007-01-09 Cray, Inc. Translation lookaside buffer-based memory system and method for use in a computer having a plurality of processor element
US7461234B2 (en) * 2002-07-01 2008-12-02 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
US7263602B2 (en) * 2002-08-16 2007-08-28 Carnegie Mellon University Programmable pipeline fabric utilizing partially global configuration buses
US7395408B2 (en) * 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements
US7673118B2 (en) * 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
GB2400195B (en) * 2003-03-31 2005-06-29 Micron Technology Inc Active memory processing array topography and method
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US7581081B2 (en) 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
US7613900B2 (en) * 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US7003594B2 (en) * 2003-05-12 2006-02-21 Sun Microsystems, Inc. Streaming protocol for storage devices
CA2527970C (en) * 2003-06-18 2014-07-29 Ambric, Inc Integrated circuit development system
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
US7373642B2 (en) 2003-07-29 2008-05-13 Stretch, Inc. Defining instruction extensions in a standard programming language
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7526632B1 (en) 2003-10-22 2009-04-28 Stretch, Inc. System, apparatus and method for implementing multifunctional memory in reconfigurable data path processing
US7237055B1 (en) * 2003-10-22 2007-06-26 Stretch, Inc. System, apparatus and method for data path routing configurable to perform dynamic bit permutations
US7904905B2 (en) * 2003-11-14 2011-03-08 Stmicroelectronics, Inc. System and method for efficiently executing single program multiple data (SPMD) programs
US8335909B2 (en) * 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US9178784B2 (en) 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US8190714B2 (en) 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8336040B2 (en) 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
WO2005109232A1 (en) * 2004-05-12 2005-11-17 Building 31 Clustering Ab Cluster switch
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8244882B2 (en) 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
US7475274B2 (en) * 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US7581079B2 (en) * 2005-03-28 2009-08-25 Gerald George Pechanek Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions
JP2009523292A (ja) * 2006-01-10 2009-06-18 ブライトスケール インコーポレイテッド 並列処理システムにおけるマルチメディア・データ処理をスケジューリングするための方法及び装置
US8108512B2 (en) 2006-09-01 2012-01-31 Massively Parallel Technologies, Inc. System and method for accessing and using a supercomputer
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
WO2008027567A2 (en) * 2006-09-01 2008-03-06 Brightscale, Inc. Integral parallel machine
US20080244238A1 (en) * 2006-09-01 2008-10-02 Bogdan Mitu Stream processing accelerator
US8122078B2 (en) * 2006-10-06 2012-02-21 Calos Fund, LLC Processor with enhanced combined-arithmetic capability
US20080133879A1 (en) * 2006-12-05 2008-06-05 Electronics And Telecommunications Research Institute SIMD parallel processor with SIMD/SISD/row/column operation modes
US9330230B2 (en) * 2007-04-19 2016-05-03 International Business Machines Corporation Validating a cabling topology in a distributed computing system
US7673120B2 (en) * 2007-06-27 2010-03-02 Texas Instruments Incorporated Inter-cluster communication network and heirarchical register files for clustered VLIW processors
US8051338B2 (en) * 2007-07-19 2011-11-01 Cray Inc. Inter-asic data transport using link control block manager
US8151031B2 (en) * 2007-10-31 2012-04-03 Texas Instruments Incorporated Local memories with permutation functionality for digital signal processors
GB2454865B (en) 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8028150B2 (en) * 2007-11-16 2011-09-27 Shlomo Selim Rakib Runtime instruction decoding modification in a multi-processing array
GB2457310B (en) * 2008-02-11 2012-03-21 Picochip Designs Ltd Signal routing in processor arrays
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US7870365B1 (en) 2008-07-07 2011-01-11 Ovics Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
JP2010039625A (ja) * 2008-08-01 2010-02-18 Renesas Technology Corp 並列演算装置
US8952976B2 (en) * 2008-08-06 2015-02-10 Nxp B.V. SIMD parallel processor architecture
US7958194B2 (en) 2008-08-25 2011-06-07 Massively Parallel Technologies, Inc. System and method for parallel processing using a Type I Howard Cascade
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8302076B2 (en) * 2008-11-12 2012-10-30 Landmark Graphics Corporation Systems and methods for improved parallel ILU factorization in distributed sparse linear systems
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
US10216692B2 (en) 2009-06-17 2019-02-26 Massively Parallel Technologies, Inc. Multi-core parallel processing system
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US8762655B2 (en) * 2010-12-06 2014-06-24 International Business Machines Corporation Optimizing output vector data generation using a formatted matrix data structure
US8676874B2 (en) 2010-12-06 2014-03-18 International Business Machines Corporation Data structure for tiling and packetizing a sparse matrix
WO2012094179A1 (en) * 2011-01-07 2012-07-12 Marvell World Trade Ltd. Low latency simd architecture for multiple iterative decoders arranged parallel
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
JP5678782B2 (ja) * 2011-04-07 2015-03-04 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
JP5665208B2 (ja) * 2011-10-26 2015-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ハイパーキューブ・ネットワーク内のデータ伝送の最適化
CN103139110B (zh) * 2011-11-30 2016-08-03 上海贝尔股份有限公司 一种用于基带处理的装置和方法
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9152595B2 (en) * 2012-10-18 2015-10-06 Qualcomm Incorporated Processor-based system hybrid ring bus interconnects, and related devices, processor-based systems, and methods
US9507603B2 (en) * 2013-03-09 2016-11-29 Gerald George Pechanek Methods and apparatus for signal flow graph pipelining that reduce storage of temporary variables
EP3079071B1 (en) * 2015-04-10 2018-08-01 Politechnika Lodzka A panel with electronic circuits and a set of panels
US10116557B2 (en) 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network
EP3400688B1 (en) * 2016-01-04 2020-05-20 Gray Research LLC Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
US10587534B2 (en) 2017-04-04 2020-03-10 Gray Research LLC Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks
JP7014393B2 (ja) * 2017-06-15 2022-02-01 公立大学法人会津大学 データ処理装置、及びこれにおけるデータ処理方法
US10534652B1 (en) * 2017-06-29 2020-01-14 Amazon Technologies, Inc. Efficient movement of virtual nodes during reconfiguration of computing cluster
CN109213962B (zh) 2017-07-07 2020-10-09 华为技术有限公司 运算加速器
JP7386542B2 (ja) * 2018-03-08 2023-11-27 クアドリック.アイオー,インコーポレイテッド 機械知覚および高密度アルゴリズム集積回路
US10956536B2 (en) * 2018-10-31 2021-03-23 Advanced Micro Devices, Inc. Device and method for accelerating matrix multiply operations
US10884707B1 (en) * 2019-06-27 2021-01-05 Amazon Technologies, Inc. Transpose operations using processing element array
CN110519058B (zh) * 2019-07-10 2020-09-29 中国科学院信息工程研究所 一种对于基于格的公钥加密算法的加速方法
US20220100699A1 (en) * 2020-09-30 2022-03-31 Beijing Tsingmicro Intelligent Technology Co., Ltd. Computing array and processor having the same
CN112269757B (zh) * 2020-09-30 2023-10-27 北京清微智能科技有限公司 粗粒度可重构处理器中的计算阵列和可重构处理器
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8618943D0 (en) * 1986-08-02 1986-09-10 Int Computers Ltd Data processing apparatus
US6041398A (en) * 1992-06-26 2000-03-21 International Business Machines Corporation Massively parallel multiple-folded clustered processor mesh array
JPH03186963A (ja) * 1989-12-15 1991-08-14 Nippon Telegr & Teleph Corp <Ntt> 計算機の結合方法
US5146420A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Communicating adder tree system for neural array processor
US5148515A (en) * 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
WO1991018349A1 (en) * 1990-05-22 1991-11-28 International Business Machines Corporation Scalable flow virtual learning neurocomputer
US5577262A (en) * 1990-05-22 1996-11-19 International Business Machines Corporation Parallel array processor interconnections
US5065339A (en) * 1990-05-22 1991-11-12 International Business Machines Corporation Orthogonal row-column neural processor
US5146543A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Scalable neural array processor
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5495474A (en) * 1991-03-29 1996-02-27 International Business Machines Corp. Switch-based microchannel planar apparatus
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP2647327B2 (ja) * 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5474856A (en) * 1993-07-28 1995-12-12 Fuji Photo Film Co., Ltd. Photographic printing paper support
CA2129882A1 (en) * 1993-08-12 1995-02-13 Soheil Shams Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same
US5566342A (en) * 1994-08-31 1996-10-15 International Business Machines Corporation Scalable switch wiring technique for large arrays of processors
US5682491A (en) * 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5546336A (en) * 1995-01-19 1996-08-13 International Business Machine Corporation Processor using folded array structures for transposition memory and fast cosine transform computation
US5659785A (en) * 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
JPH0830571A (ja) * 1995-07-24 1996-02-02 Hitachi Ltd データ転送ネットワーク
JP3119130B2 (ja) * 1995-08-18 2000-12-18 株式会社日立製作所 ネットワーク構成
JPH1011404A (ja) * 1996-06-27 1998-01-16 Fuji Xerox Co Ltd マルチプロセッサ装置を構成するための集積回路装置及びその接続方法及びマルチチップモジュール
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306416C (zh) * 2001-08-10 2007-03-21 朴宗元 防冲突储存装置以及采用该装置的地址运算与数据选路方法
CN103646204A (zh) * 2011-10-26 2014-03-19 潘铁军 一种用于移动信息安全保护的安全设备
CN109523019A (zh) * 2018-12-29 2019-03-26 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
CN109902064A (zh) * 2019-02-01 2019-06-18 京微齐力(北京)科技有限公司 一种二维脉动阵列的芯片电路
CN114008602A (zh) * 2020-03-26 2022-02-01 图核有限公司 环形计算机网络上的嵌入式环
CN112328512A (zh) * 2020-09-22 2021-02-05 北京计算机技术及应用研究所 一种应用于多控存储系统的缓存同步系统及方法

Also Published As

Publication number Publication date
JP4944177B2 (ja) 2012-05-30
JP4447770B2 (ja) 2010-04-07
EP1034484A1 (en) 2000-09-13
US6769056B2 (en) 2004-07-27
KR20010015731A (ko) 2001-02-26
WO1999019807A1 (en) 1999-04-22
JP5129398B2 (ja) 2013-01-30
US20030088754A1 (en) 2003-05-08
IL135535A0 (en) 2001-05-20
CN1326061C (zh) 2007-07-11
CA2305221A1 (en) 1999-04-22
EP1034484A4 (en) 2005-12-28
JP2010079912A (ja) 2010-04-08
US6167502A (en) 2000-12-26
JP2001520418A (ja) 2001-10-30
JP2012133793A (ja) 2012-07-12
US6470441B1 (en) 2002-10-22

Similar Documents

Publication Publication Date Title
CN1271437A (zh) 流形阵列处理方法和装置
JP4118963B2 (ja) マニホールドアレイプロセッサ
Pechanek et al. ManArray processor interconnection network: an introduction
Barry Methods and apparatus for manifold array processing
Albanesi et al. A VLSI 128-processor chip for multiresolution image processing
Uhr Pyramid Multi-Computers and Extensions and Augmentations
MXPA00003003A (es) Metodos y aparatos para el procesamiento de una matriz de distribucion
Sivashanmugam Permutation Routing on Mesh model Parallel Computers
Ferreira et al. Broadcasting in Bus Interconnection Networks
Williams The reconfigurable MultiRing and applications.
Gaber et al. Embedding tree structures in MPCs: application to the MasPar MP-2
Cantoni et al. Heterogeneous Hierarchical Systems

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160317

Address after: American California

Patentee after: Altera Corp.

Address before: North Carolina

Patentee before: BOPS Inc.

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

Granted publication date: 20070711

Termination date: 20161009

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