CN1158616C - 多重阵列处理器 - Google Patents

多重阵列处理器 Download PDF

Info

Publication number
CN1158616C
CN1158616C CNB988067579A CN98806757A CN1158616C CN 1158616 C CN1158616 C CN 1158616C CN B988067579 A CNB988067579 A CN B988067579A CN 98806757 A CN98806757 A CN 98806757A CN 1158616 C CN1158616 C CN 1158616C
Authority
CN
China
Prior art keywords
clump
treatment element
communication
array
here
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.)
Expired - Fee Related
Application number
CNB988067579A
Other languages
English (en)
Other versions
CN1261966A (zh
Inventor
�������¡�G��Ƥ�����
杰拉尔德·G·皮查尼克
W
小查尔斯·W·克拉克
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 CN1261966A publication Critical patent/CN1261966A/zh
Application granted granted Critical
Publication of CN1158616C publication Critical patent/CN1158616C/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP

Abstract

一个阵列处理器,所包括的处理元件被安排成丛,这些丛又被组合成一个矩形阵列。每个丛由这样一些处理单元构成,它们最佳地与至少两个其他丛的处理元件通信。此外,每个丛间通信路径是互不相交的,就是说,每个路径承担或者北和西,南和东,北和东,或者南和西通信。由于数据路径的互不相交性,所以每个丛的处理元件之间的通信可以被组合成单一的丛间路径。就是说,来自向北和东与另一丛通信的丛的那些通信可以被组合成一条路径,从而去掉了一半为此路径所需连线。此外,最长通信路径不像传统环形阵列那样直接取决于该阵列的总尺度。相反,最长通信路径只受丛间间距的限制。在一个实施例中,一个N×N环形的转置元件被组合在丛中并通过丛内通信路径彼此通信。由于转置元件彼此间有直接连接,因而以这种途径消除了转置操作延迟。另外,每个PE可以有单一发送端口和单一接收端口。结果,PE个体从阵列拓扑结构中解耦出来。

Description

多重阵列处理器
技术领域
一般而言,本发明涉及处理系统,更具体地说,是涉及并行处理结构。
背景技术
能开发出许多对数据并行操作的计算任务。并行处理器的有效性取决于并行处理器的体系结构、被编成代码的算法、以及在各并行部件中的数据放置。例如,图像处理、模式识别、以及计算机图形都是对自然安排成2维或3维栅格的数据进行操作的应用。数据可以代表范围很广的信号,例如音频、视频、声纳或雷达信号。因为通常对这类数据进行的操作,诸如离散余弦变换(DCT)、离散余弦反变换(IDCT)、卷积等可以同时对不同的栅格元素来完成,所以已经发展出多处理器阵列系统,它们通过允许在一个时刻有不只一个处理器进行该任务,从而可以显著地加速这类操作。并行处理是大量专利的主题,包括,美国专利5,065,339号;5,146,543号;5,146,420号;5,148,515号;5,546,336号;5,542,026号;5,612,908号;以及5,577,262号;欧洲公布申请0,726,529号和0,726,532号,这里把它们列入作为参考。
实现并行处理结构的一种传统途径是最近邻网格连接计算机,它在以下文献中讨论过:R.Cypher和J.L.C.Sanz的“用于图像处理和计算机视图的SIMD结构和算法,IEEE声学、语音和信号处理汇报,第37卷,第12期,2158-2174页,1989年12月;K.E.Batcher的“大型并行处理器设计”IEEE计算机汇报,C-29卷,第9期,836-840页,1980年9月;以及L.Uhr的“人工智能用多计算机结构,New York,N.Y.,John Wiley & Sons,第8章第97页,1987。
在图1A的最近邻环形连接计算机中,多个处理元件(PE)通过环形连接路径MP连接到它们的北、南、东、西近邻,而且所有PE都以同步信号指令多重数据(SIMD)方式进行操作。由于可以对一个网格连接的计算机增加卷绕连接来得到环形连接的计算机,所以一个没有卷绕连接的网格连接计算机可以看作是环形连接计算机的子集合。如图1B所示,每个路径MP可以包括T条发送线和R条接收线,或者如图1C所示,每个路径MP可以包括B条双向线。虽然单向和双向通信两者都由本发明予以考虑了,但在一个路径上的总线总数(不包括控制信号)在下文中将统称为K条线,这里在双向总线设计中K=B,而在单向总线设计中K=T+R。假定一个PE能向它的近邻PE的任何一个发送数据,但一次只能一个。例如,在一个通信周期中,每个PE能向它的东邻发送数据。还假定,存在一种广播机制,例如,在一个广播分发周期中,数据和指令能从一个控制器同时分发到所有PEs。
虽然位串行PE间通信通常用于减少连线复杂性,但环形连接阵列的连线复杂性表现出在实现上的问题。图1A的传统环形连接阵列包括16个处理元件连接到PE的4X4阵列10中。每个处理元件PEij分别以其行号i和列号j来作标签。每个PE以点对点连接与其最近的北(N)、南(S)、东(E)、西(W)近邻通信。例如,图1A中所示的PE0,0和PE3,0之间的连接是PE0,0和N界面和PE3,0的南界面之间的一个卷绕连接,代表了使阵列成为一个环形构形的卷绕界面之一。在这种构形中,每行包含一组N个互连线,以N行计,共有N2个水平连接。类似地,以N列计,每列有N个垂直互连,则共有N2个垂直互连。对于图1A中的举例,N=4。所以,总的连线数,例如在一个包含卷绕连接的NXN环形连接计算机中实现的集成电路里的金属线,便是2kN2条,这里k是每个互连中的连线数。在一个位串行互连中数k可以等于1。例如,对于图1A所示4×4阵列10,以k=1,则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向PE2,1传送数据或命令,而PE1,1为了传送转置数据被迫放到一边的那些操作也将被延迟。这种延迟随着每个中间的PE介入而滚雪球似地增大,对于最远的转置对,将引入显著的延迟。例如,图1A中的转置对PE3,1/PE1,3有最少3个中间PE,一般情况下,需要4个通信步骤的延迟,而且为了在PE3,1和PE1,3之间传送数据,还必须使所有那些PE中的任务放到一边,这又会额外地使所有这些任务造成延迟。
认识到环形连接阵列的这种局限性,已经在下列文献中公开了新的实现阵列的途径:美国专利5,612,908号;G.G.Pechanek等的“大规模并行对角线褶叠阵列处理器,1993年应用特殊阵列处理器国际会议,140-143页,1993年10月25-27,Venice,意大利,以及G.G.Pechanek等的“多重褶叠丛集处理器环形阵列,VLSI设计第5次NASA研讨会汇报,8,4.1-11页,1993年11月4-5,新墨西哥州大学,Albuquerque,新墨西哥,这些文献全文引入作为参考。这些环形阵列组织的操作技术是:使用传统的最近邻环形的对角线PE作为褶叠边缘对PE阵列进行褶叠。如图2的阵列20中所示,这些技术可以用于显著地(substantially)减小PE间连线,减少卷绕连接的个数和长度,并把PE放置在与其转置紧密靠近的位置。这种处理器阵列结构公布在例如美国专利5,577,262,5,612,908和EP 0,726,532和EP 0,726,529中,这些是由本发明的同一发明者发明的,并整体纳入这里作为参考。尽管这种阵列提供了对传统环形结构的实质性优点,但由于PE组合的不规则性,例如在单个褶叠的对角线褶叠缝,某些PE丛集“成行,而其他则是单个的,在一个3褶叠的对角线褶叠网格中有4个PE和8个PE的丛集。由于这些阵列在总体上的三角形形状,这种对角线褶叠形阵列呈现出对实现有效、便宜地集成电路造成基本的障碍。再有,在如EP 0,726,532和EP 0,726,529中的对角线褶叠网格和在其他传统的网格结构中,互连拓扑结构是PE定义中的固有部分。这便固定了在拓扑结构中的PE位置,结果把PE的拓扑结构和它们的连接都限制于要实现的固定构形。于是,需要对处理器阵列结构的处理器互连作进一步的改进。
发明内容
本发明的目标是一个处理元件阵列,与传统的环形处理元件阵列的连线需求相比,它基本上减少了阵列互连连线需求。
根据本发明,提供一个连接环形连接PE阵列中多个处理元件(PE)的互连系统,每个PE有一通信端口用于和其它PE通信,通信端口包含单一输入和单一输出,该互连系统包含:
PE间连接路径,用于连接通过丛开关组合成丛的PE,每个丛的PE通过丛开关和PE间连接路径与互不相交方向上的两个丛的PE通信;以及
丛开关,被连到所述PE的通信端口和PE间连接路径,并且被可控制地切换,以便将互不相交的通信多路复用到连接丛开关的PE间连接路径上,从而减少为提供PE间连接所需的通信路径数。
根据本发明,还提供一种阵列处理器,包含:
多个被组合成丛的处理元件(PE),每个丛与互不相交的方向上的两个其它丛通信,每个PE有用于和其它PE通信的单一PE间通信端口,每个所述端口具有单一输入和单一输出;
PE间通信路径,通过被可控制地切换的丛开关连接所述单一PE间通信端口;以及
被可控制地切换的丛开关,所述丛开关选择互不相交的、用于PE到PE的通信的PE间连接路径,并且将多个PE连接到环形连接阵列中。
根据本发明,还提供一种阵列处理器,包含:
多个处理元件(PE),被安排成丛,每个PE有一通信端口用于和其它PE通信,通信端口包含单一输入和单一输出;
PE间通信路径,通过丛开关连接PE;以及
丛开关,可以多路复用PE间通信,并且连接每个丛的PE以便在互不相交的方向上与使用PE间连接路径的至少两个其他丛的每个丛的PE通信。
根据本发明,还提供一种阵列处理器,包含:
N个丛,每丛包含M个处理元件,每个处理元件有一个通信端口,该处理元件通过此端口在总共B条连线上发送和接收数据,其中N是大于1的整数,M和B是大于或等于1的整数;
小于或等于M×B线宽的通信路径,它们在每对所述丛之间连接;该对中的每个丛成员包含的处理元件相对于该对中的另一丛中的处理元件而言是环形最近邻,每个路径允许该丛对之间在两个互不相交环形方向上的通信,即南和东,或南和西,或北和东,或北和西;以及
多路复用器,被连接成把该丛对之间的2×M×B线宽通信组合成所述少于或等地M×B线宽的通信路径。
根据本发明,还提供一种阵列处理器,包含:
N个丛,每丛有M个处理元件,每个处理元件有一个通信口,通过这个通信口,处理元件在总共B条线上发送和接收数据,在一个丛内的每个处理元件与丛内的其他处理元件在物理上比该丛外部的处理元件更加靠近,其中N是大于1的整数,M和B是大于或等于1的整数;
通信路径,它们小于或等于M×B线宽,在该丛对之间连接,在该对中的每个丛成员所包含的处理元件是该对中的另一丛中处理元件的环形最近邻,每个路径允许在该丛对之间沿两个互不相交环形方向进行通信,即南和东,或南和西,或北和东,或北和西;以及
多路复用器,把该丛对之间的2×M×B线宽通信组合成少于或等于M×B线宽路径。
根据本发明,还提供一种阵列处理器,包含:
处理元件(PE)PEi,j,这里i和j代表一传统环形连接阵列内的各行和列的PE位置,而且这里i=0,1,2,…,N-1和j=0,1,2,…,N-1,所述PE对任何i,j和对所有a∈{0,1,…,N-1}被安排成丛PE(i+a)(Mod N),(j+N-a)(Mod N),这里每个丛包含相等数量的PE,N是大于1的整数;
丛开关,被连接成多路复用在所述丛之间的PE间通信路径,从而提供PE间连接等效于环形连接阵列的PE间连接。
根据本发明,还提供构成一阵列处理器的方法,包含的步骤是:
把处理元件安排到N个丛中,每丛M个处理元件,使得每个丛包括的处理元件只在互不相交的环形方向上与至少一个其他丛的处理元件进行通信;以及
多路复用所述互不相交环形方向通信。
在一个最佳实施例中,一个根据本发明的阵列实现了基本上减小了转置操作的延迟。再有,所发明的阵列解耦了从阵列各维度的卷绕连线长度,从而减小了最长互连线的长度。还有,对于不会在通信的PE之间引起冲突的阵列通信模式,每个PE只需一个发送端口和一个接收端口,与一具体拓扑结构可能要求其PE节点近邻连接数目无关。该阵列的一种最佳集成电路实现包括组合成矩形或正方形轮廓的类似处理元件丛的组合。这种处理元件的相似性、处理元件丛的相似性以及阵列总体轮廓的规则性使这种阵列特别适合于高效费比(cost-effective)的集成电路制作。
为了形成根据本发明的阵列,首先可以把处理元件组合成丛,这是建立在单指令多重数据(“SIMD”)操作的通信需求基础上的。然后可以把处理单元分组,从而使一个丛中的元件在一丛内通信和只与其他两个丛的成员通信。再有,每个丛的组成处理元件只在两个相互排他的方向上与其他丛的每个处理元件通信。根据定义,在一个具有单向通信能力的SIMD环形中北/南方向与东/西方向相互排他。顾名思义,处理元件丛是最好按物理上彼此接近的方式形成的处理器组。例如,在一个集成电路实现中,一个丛的处理元件在布局上最好是尽可能地彼此接近,最好是彼此的接近程度要比到阵列中任何其他处理元件都要近。例如,相当于传统的4×4。处理单元阵列的一个阵列可以包括每丛4个元件的4个丛,每个丛只向北和向东与另一丛通信以及向南和向西与另一丛通信;或者向南和向东与另一丛通信以及向北和向西与另一丛通信。通过按这种方式使PE成丛,可以通过多路复用来共享PE丛之间的通信路径,从而基本上减少了阵列所需互连连线。
在一个最佳实施例中,这样来选择一丛中包含的PE,即让处理单元和它们的转置位于同一丛中并且彼此间通过丛内通信路径进行通信,从而消除了对传统环形阵列进行的转置操作所伴随的延迟。此外,由于把传统的路径作为与任何PE到PE路径同样的路径对待,所以最长的通信路径可以如同丛间间距一样地短,而不论阵列的总尺度如何。根据本发明,一个N×M环形阵列可以转换成M丛每丛N个PE的阵列或者N丛每丛M个PE的阵列。
附图说明
由下文中结合附图所作的详细描述,那些本领域技术人员将会看清楚本发明的这些和其他特点、方面和优点。
图1A是传统现有技术4×4最近邻连接的环形处理元件(PE)阵列方框图;
图1B说明图1A所示现有技术环形连接路径怎样可以包括T个发送线和R个接收线;
图1C说明图1A所示现有技术环形连接路径怎样可以包括B个双向连线;
图2是现有技术对角线褶叠网格的方框图;
图3A是可以合适地应用于本发明PE阵列中的处理元件的方框图;
图3B是可以合适地应用于本发明PE阵列中的另一种处理元件的方框图;
图4是一个4×4环形的贴面(tiling),它说明全部环形PE间的通信链路;
图5A至5G是4×4环形的贴面,它说明根据本发明为成丛分组对PE的选择;
图6是4×4环形的贴面,它说明为了成丛对PE所作的另一种分组;图7是3×3环形的贴面,它说明为了PE成丛对PE的选择;
图8是3×5环形的贴面,它说明为了PE成丛对PE的选择;
图9是一个方框图,说明为PE成丛选择PE的另一种菱形/圆柱形途径;
图10是一方框图,说明各新的PE丛中的丛间通信路径;
图11A和11B说明选择PE丛的另一种菱形/圆柱形途径;
图12是一方框图,说明一个5×4 PE阵列的菱形/圆柱形PE选择过程;
图13是一方框图,说明一个4×5 PE阵列的菱形/圆柱形PE选择过程;
图14是一方框图,说明一个5×5 PE阵列的菱形/圆柱形PE选择过程;
图15A至15D是方框图,分别说明对于有3、4、5和6个丛而每丛有6个PE的阵列,其丛间通信的路径;
图16是一方框图,说明在含有4个丛而每丛有4个成员的一个阵列内部的东/南通信路径;
图17是一框图,说明在含有4个丛而每丛有4个成员的一个阵列内部的东/南和西/北通信路径;
图18是一方框图,说明图17实施例的一个丛,图中更详细地说明一个丛开关及其到所示丛的接口;
图19A和19B分别说明在一个示例卷积中所用的卷积窗和卷积路径,在本发明的新阵列处理器上实现这一卷积可以有许多好处;
图19C和19D是方框图,分别说明一个图像在一个4×4块内的部分以及加载到传统的环形位置的块;
图20A至24B是方框图,说明在每个卷积操作步骤结尾时根据本发明的一个多重阵列的状态。
具体实施方式
在一个实施例中,根据本发明的一个新阵列处理器把PE组合成丛,或者说组,从而使一个丛中的元件只与其他两个丛的成员通信,而且每个丛的组成处理元件只在两个相互排他的方向上与这其他丛的每个丛的处理元件通信。通过以这种方式使PE成丛,在PE丛之间的通信路径可以共享,从而基本上减少了阵列所需的互连线。再有,每个PE可以有单一的发送端口和单一的接收端口;或者,在双向顺的或时间分片的发送/接收通信实现的情况中,每个PE有单一的发送/接收端口。结果,单个PE与阵列的拓扑结构解耦。就是说,传统的环形连接阵列中每个PE有4个双向通信端口,每个方向上用其中一个进行通信,与此不同的是,新阵列结构所利用的PE只需有一个端口。在利用单个发送和单个接收端口的实现中,一个阵列中的所有PE可以同时发送和接收。在传统的环形中,每个PE将需要4个发送和4个接收端口,总共8个端口,而在本发明中,每个PE需要一个发送端口和一个接收端口,总共2个端口。
在一个最佳实施例中,选择一个丛中包含的PE,从而使处理元件和它们的转置位于同一丛中并通过丛内通信路径彼此通信。为了描述方便,把处理元件指作它们在传统的环形阵列中会出现的位置,例如,处理元件PE0,0是在传统的环形阵列中会在“北西角上出现的处理元件。于是,虽然新的成丛阵列与传统阵列处理器基本上是不同的,但同样的数据将提供给传统环形阵列和新成丛阵列的相应处理元件。例如,新的成丛阵列的PE0,0元件所接收用于操作的数据与传统的环形连接阵列的PE0,0元件所接收用于操作的数据是相同的。再有,在本描述中所说的方向是指一个环形连接阵列中的方向。例如,当说到处理元件之间的通信是发生在从北向南的方向时,那些方向是指在一个传统的环形连接阵列中的通信方向。
PE可以是单个微处理器芯片,它们可以有为特定应用定制的简单结构。虽然不限定于下面的描述,但将描述一个基本PE以说明所涉及的概念。图3A中说明了一个PE30的基本结构,它说明一个适当的实施例,该实施例将被应用于根据本发明的新PE阵列的每个PE。为简化描述,没有显示出接口逻辑和缓存器。被连接的广播指令总线31用于接收由SIMD控制器29分发的指令,被连接的数据总线32用于从存储器33或PE30外部的另一数据源接收数据。寄存器存储器介质34向执行单元36提供源操作数。被连接的指令解码器/控制器38用于通过广播指令总线31接收指令和向寄存器存储器34内的寄存器提供控制信号,而寄存器存器34又经由路径22向执行单元36提供它们的内容作为操作数。执行单元36从指令解码器/控制器38接收控制信号23并经由路径24向寄存器文件34提供结果。指令解码器/控制器38还在标为“开关使能”(“Switch Enable”)的输出线上提供丛开关使能信号。在下文中将结合图18更详细地讨论丛开关的功能。数据或命令的PE间通信是在标为“接收”的接收输入端37接收,由标为“发送的发送输出端35发送。
图3B显示了另一种PE代表30′,它包括一个接口控制单元50,该单元50根据从指令解码器/控制器38收到的控制信号提供数据格式操作。数据格式操作可包括例如从并行到串行和从串行到并行的转换,数据加密,以及为满足各种标准或接口要求所进行的数据格式转换。
图4中显示了如图3A中所示相同类型的PE传统4×4最近邻环形,被其本身的贴面包围。中央的4×4贴面40被环42包围,它包括了该环形的卷绕连接。图4的贴面是描述性辅助图,用于使卷绕连接“展平,并从而帮助解释在本发明一个实施例的阵列中利用的最佳成丛过程。例如,从PE0,0向西的卷绕连接是PE0,3,从PE1,3向东的卷绕连接是PE1,0等,如框42内所示。这种图示的利用将在结合图5A-5G所作的描述中看得更清楚。
在图5A中,基本的4×4 PE环形再次被它本身的贴面包围。本发明承认从PE0,0向东和向南的通信分别涉及PE0,1和PE1,0。再有,向东与PE1,0通信的PE是PE1,3,而PE1,3向南与PE2,3通信。所以,把四个PE,即PE0,0,PE1,3,PE2,2,PE3,1,组合成一丛便产生丛44,该丛中的PE只是向南和向东与另一丛46通信,丛46包括PE0,1,PE1,0,PE2,3和PE3,2。类似地,丛46的PE向南和向东与丛48的PE通信,丛48包括PE0,2,PE1,1,PE2,0和PE3,3。丛50的PE,即PE0,3,PE1,2,PE2,1和PE3,0,向南和向东与丛44通信。这种组合产生的PE丛只与其他两个丛中的PE通信,而且是在互不相交的方向上与那些丛通信。就是说,丛48的PE向南和向东只与丛50的PE通信,而向北和向西只与丛46的PE通信,与传统的最近邻环形阵列所需相比,正是这种PE分组示例允许根据本发明的阵列基本上减少了阵列内PE间的连接数。
许多其他组合是可能的。例如,仍从PE0,0开始,关于向北和向东的通信,对PE组合组合产生图5B所示的丛52、54、56和58。这些丛可以组合成极大地减少PE阵列的互连需要,并减小最长PE间连接的长度。然而,这些丛不象图5A中的丛44-50所作的那样把PE及其转置组合在一起。就是说,虽然转置对PE0,2/PE2,0和PE1,3/PE3,1包含在丛56中,但转置对PE0,1/PE1,0被分离在丛54和58之间。根据本发明最佳实施例的阵列只利用如同44-50那样的丛,它们把所有的PE与其转置组合到丛内。例如,在图5A中,PE3,1/PE1,3转置对包含在丛44内,PE3,2/PE2,3以及PE1,0/PE0,1转置对包含在丛48内,而PE3,0/PE0,3和PE2,1/PE1,2转置对包含在50内。图5C中的丛60、62、64和68是把向北和向西通信的PE组合而成的。请注意,丛60等效于丛44,丛62等效于丛46,丛64等效于丛48,而丛68等效于丛50。类似地,图5D的丛70至76是把向南和向西通信的PE组合而成的,它们分别等效于丛52至58。如图5E所示,丛45、47、49和51等效于最佳丛48、50、44和58,可以从环形40内的任何“起点”出发,把向南和向东通信的PE组合而成。
图5F中描写了另一种成丛,这里丛61、63、65和67在环形40的贴面中形成一个十字形。这种成丛表明,有多种方式产生在互不相交方向上与其他两个丛通信的丛。就是说,丛65的PE0,0和PE2,0分别向东与丛61的PE0,1和PE2,3通信。此外,从65的PE1,1和PE3,3分别向西与丛61的PE1,0和PE3,2通信。如下文中将更详细描述的那样,刚才描述的向东通信路径,即PE0,0和PE0,1之间以及PE2,2和PE2,3之间的路径,和其他丛间路径可以与互不相交的丛间通信路径组合,例如通过多路复用,以减少一半PE间通信所需互连线数。图5F的成丛也是把转置元件组合到丛内。
图5G显示了新阵列可伸缩性(scalability)的一个方面,这里一个4×8环形阵列被描绘成两个4×4阵列40A和40B。人们可以利用至此已描述的技术由一个4×8环形阵列产生8个PE组,每组有4个PE。此外,通过把一个4×8环形阵列分解成2个4×4环形,并把各自的丛组合成丛,例如丛44A和44B,46A和46B等,便能得到4个8PE丛,它们具有8个4PE丛构形中包含的4×4子丛所具有的全部连接以及转置关系。这种成丛组合过程是一般性的,其他伸缩是可能的。
本最佳但不是唯一的成丛过程还可以描述如下。如果给定一个N×N基本环形PEi,j,这里i=0,1,2,…N-1,j=0,1,2,…,N-1,通过把Pi,j,PE(i+1)(ModN),(j+N-1)(ModN),PE(i+2)(ModN),(j+N-2)(ModN),…,PE(i+N-1)(ModN),(j+N-(N -1))(ModN)组合,可以形成最佳的向南和向东通信丛。对于具有N个NPE的N×N环形阵列,这一公式可以重写,在此阵列中可通过选择一个i和一个j来形成成丛分组,所使用的公式是:对任何i,j和对所有a∈{0,1,…,N-1}取PE(i+a)(ModN),(j+N-a)(ModN)
图6显示产生丛44至50,从PE1,3开始,把向南和向东通信的PE组合。事实上,丛44至50是新阵列4×4环形等效物的最佳实施例的丛,它们是把向南和向东通信的PE组成而成,不管在基本N×N环形40内的那个PE用作为起始点。图7和8是这一过程的另二个例子,分别使用3×3和3×5环形。
图9中显示了表现建丛过程的另一种方式。在这张图和其后的类似图中,为清楚起见,从图中略去了卷绕连线。首先把传统的4×4环形扭曲成一个菱形,由图中每行向左移表示。这种移动用于把转置PE组合到菱形的“垂直切片(vertical slice)”中。为产生相等大小的丛,这些菱形基本上形成为一个圆柱形。就是说,最左(或者说最西)垂直切片80被卷绕以紧靠在它的行中最东的PE0,3。切片80东边的垂直切片82被卷绕以紧靠PE0,0和PE1,3,而再向东的垂直切片84被卷绕以紧靠PE0,1,PE1,0和PE2,3。虽然为了清楚而没有显示出所有的连接,但所有连接与原始4×4环形中的连接保持相同。所造成的垂直切片产生图5A所示最佳实施例丛44至50,这与用结合图5A和图6所作讨论中说明的方式产生的丛相同。在图10中,由图9的菱形/圆柱形过程建立的丛是为显示的目的而被“剥开”的,用以揭示丛间连接。例如,从丛44到丛46的所有PE间连接都是向南和向东的,正如从丛46到丛48,从丛48到丛50以及从丛50到丛44。这种通用化的丛间连接与SIMD处理过程的PE间通信特性相结合,允许PE间连接数显著减少。如下文中结合图16和17更详细讨论的那样,多重互不相交通信,例如从丛44向南和向东到丛46的通信,可以被多路复用到丛间通行的共同的一组互连线上。于是,在下文中将称作“多重阵列(manifold array)”的这种新阵列的PE间连线可以基本上减少到传统最近邻环形阵列伴随的互连线数的一半。
用于产生多重阵列的成丛过程是对称的,取垂直移动环的水平切形成的丛与取水平移动环的垂直切片形成的丛相同。图11A和11B说明了这样的事实,即菱形/圆柱形技术也能用于从垂直移动环的水平切片产生最佳丛。在图11A中,传统4×4环形阵列的各列被垂直移动以产生菱形,在图11B中该菱形被卷绕成一圆柱形。所成圆柱的水平切片提供了最佳丛44至50。至此所说明的技术中的任何一种可用于造成多重阵列的丛,它们提供的PE间连接等效于传统环形阵列的连接,而所需PE间连线则基本上减少了。
如在发明概要中指出的那样,上述成丛过程是通用性的,可以用于产生有M个丛,每丛含N个PE的多重阵列,其中每个PE来自一N×M环形阵列。例如,图12中显示的是造成4个丛每丛5个PE的菱形/圆柱形过程,得到5×4环形阵列等效物。请注意,构成新PE丛,例如PE4,0,PE3,1,PE2,2,PE1,3和PE0,0的垂直切片保持了先前所示4×4阵列的转置成丛关系。类似地,如图13的图形所示,一个4×5环形将产生每丛4个PE的5个丛,每丛具有的转置关系与从4×4阵列得到的转置关系只有稍许不同。事实上,转置PE仍丛集在一起,只是安排上与4×4成丛阵列稍有不同。例如,转置对PE1,0/PE0,1和PE2,3/PE3,2被分组到最佳4×4多重阵列内的同一丛,但它们的表现,尽管仍然成对,却在图13的4×5多重阵列的分开丛中。如图14的丛选择图中所示,在奇数乘奇数阵列中,对角线PE,即PEi,j,i=j,被分配到每个丛一个。
图15A至15D的框图说明新多重阵列的丛间连接。为简化描述,在下文的讨论中,除特别说明外,均假定为单向连接路径。虽然为清楚起见,描述本发明时以单线代表并行互连路径或总线,但本发明也能实现位串行通信,换句话说,即具有单线的总线。在使用多路复用器或总线开关的地方,多路复用器和/或开关用于代替总线中的线数。此外,利用适当的网络连接和PE的微处理器芯片实现,这新阵列可被用于允许MIMD、SIMD和SISD方式动态切换的系统,如在P.M.Kogge的美国专利5,475,856中描述的那样,该专利题为动态多重方式并行处理器阵列技术,这里把它列入作为参考。
在图15A中,丛80、82和84是3个PE丛,通过丛开关86和丛间链路88彼此相连。为理解多重阵列的PE如何彼此连接以造成特定拓扑结构,从一个PE来看的连接图必须从单个PE连接改变成把PE作为一个PE丛的成员所进行的连接。对于一个在SIMD单向通信环境中操作的多重阵列,任何PE只需要一个发送端口和一个接收端口,不依赖于传统环形中PE和它的任何直接附着的近邻之间的连接数。一般地说,对于不会造成PE通信冲突的阵列通信模式,每个PE只需一个发送和一个接收端口,不依赖于一个特定拓扑结构可能要求其PE的近邻连接数。
每丛4个PE的4个丛,即44至50,组合在图15B的阵列中。丛开关86和连接路径88把这些丛连接起来,其连接方式将在图16、17和18的讨论中更详细地解释。类似地,每丛5个PE的5个丛,即90至98,组合在图15C的阵列中。在实践中,丛90-98的放置要适于使集成电路易于布局和减小最长丛间连线的长度。图15D显示一个有6个丛,即99、100、101、102、104和106的多重阵列,每丛有6个PE。由于在新多重阵列中的通信路径86是在丛间的路径,从而消除了传统环形阵列的卷绕连接问题。就是说,不管该阵列变为多么大,都不需要任何互连路径长于由连接路径88所示的基本丛间间距。这与传统环形阵列的卷绕连接形成对照,后者必须伸展到整个阵列。
图16的框图更详细地说明了一个4丛共16个PE的多重阵列的最佳实施例。丛44至50被安排成矩形或正方形,与它们会在集成电路布局中的位置很相像。在这图中更详细地说明了连接路径88和丛开关。向南和向东的连接通过丛开关86多路复用,以减少PE间连线数。例如,PE1,2和PE2,2之间的南连接是在连接路径110上实现的,这与从PE2,1到PE2,2的东连接是相同的。如前面指出的那样,每个连接路径,如连接路径110,可以是一个位串行路径,于是可以由单个金属现在一集成电路实现中生效。此外,只有当各自的控制线被认定时这种连接路径才能被接通。这些控制线可由图3A中所示每个PE3.0的指令解码器/控制器38产生。或者,这些控制线可由每个丛开关中包括的一个独立的指令解码器/控制器产生。由于每个开关有多个PE,所以对每个PE产生的多个使能信号进行比较,以保证它们有相同值,从而保证没有发生错误并且所有PE同步操作。就是说,每个标明的方向路径伴有一个控制线,N用于北,S用于南,E用于东,W用于西。在这些线上的信号使多路复用器能在多路复用器到被连接PE的相应数据路径上传送数据。当控制信号未被认定时,相应的数据路径便不能开通,于是数据不能通过多路复用器沿那些路径传送。
图17的方框图更详细地说明链接44到50这4个丛的互连路径88和开关丛86。在这图中,西和北连接被加到图16中所示东和南连接上。虽然,在这种图中每个处理元件看起来有两个输入和两个输出端口,但在这最佳实施例中在丛开关内的另一层多路复用使每个PE的通信端口数降到一个用于输入和一个用于输出。在每个PE具有4个近邻发送连接而且具有单向通信(即每个PE只有一个发送方向能被启动)的标准环形中,每个PE中需要4个多路复用器或门电路发送路径。一个门电路可以适用地包括具有使能和取消控制信号的多路复用器、与门、三态驱动器/接收器以及其他这种接口使能/取消电路。这是由于被定义为PE一部分的互连拓扑结构。纯结果是在标准环中有4N2个多重发送路径。在具有等效连接和无限制通信的多重阵列中,只需要2N2个被多路复用的或有门电路的发送路径。减少2N2个发送路径转换成显著地节省集成电路“不动产”面积,因为由多路复用器和2N2个发送路径所消耗的面积显著地少于4N2发送路径所消耗的面积。
图18的方框图中更详细地显示了一个完整的丛开关86。北、南、东、西输出如先前说明的那样。已有另一多路复用层112加到丛开关86上。这一多路复用层在标为A的东/南接收和标为B的北/西接收之间进行选择,从而把每个PE的通信需求减少到一个接收端口和一个发送端口。此外,转置PE(PE1,3和PE3,1)之间的多路复用连接是通过标为T的丛内转置连接生效的。当认定了一个特定多路复用器的T多路复用器使能信号时,则在与该多路复用器相关联的PE处收到来自转置PE的通信。在该最佳实施例中,所有丛包括转置路径,如一个PE与其转置PE之间的这种路径。这些图显示了总体连接方案,但不打算用于说明一个多层集成电路实现可能如何实现整个常规阵列连接,这种整个常规阵列连接通常会是设计选择的常规问题。就象任何集成电路布局那样,IC设计者在对根据本发明的阵列的实际IC实现进行布局时要分析各种权衡。例如,丛开关可以被分布到PE丛内,以减小大量接口的连线长度。
为了说明对一环形阵列通信能力的等效性和在多重阵列上执行图像处理算法的能力,下文中将描述一个使用图19A所示3×3窗的简单卷积。将使用在一环形机器上进行卷积的Leen和Aggarwal算法。见S.Y.Lee和J.K.Aggarwal的“在一网格连接阵列处理器上的并行2D卷积”,IEEE模式分析和机器智能汇报,第PAMI-9卷,第4期,590-594页,1997年7月。图3A所示基本PE30的内部结构用于说明在具有16个这种PE的4×4多重阵列上执行的卷积。为了这个例子的目的,指令解码器/控制器还提供丛开关多路复用器使能信号。由于每个开关有多个PE,所以对多重使能信号比较其相等情况,以保证没有错误并且所有PE在同步操作。
根据S.Y.Lee和J.K.Aggarwal的卷积算法,这多重阵列的大小最好是图像的大小,例如对于N×N图像使用N×N阵列。由于实现方面的问题,对于大的N,必须假定该阵列小于N×N。假定阵列大小为C×C,图像处理可以被分块成多个C×C块,并考虑卷积窗大小所需要的图像块重叠。有各种技术可用于处置N×N图像的边缘效应。例如,可使用象素复制,它有效地产生一个(N+1)×(N+1)阵列。应该指出,由于所需处理的简单性,在一个应用的具体实现中可以定义很小的PE。于是,可以有大量的PE放置在一个芯片上的多重阵列组织中,从而改善对大图像尺寸的卷积计算效率。
卷积算法提供了一种简单的手段,用于演示多重阵列组织与北/东/南/西最近邻环形阵列的等效性。于是,本例集中于该算法的通信方面,而且为简化讨论,一个很小的4×4图像用于一个4×4多重阵列上。使用这一途径能处置更大的N×N图像,作法是在每个先前的4×4块结束之后把一个新的4×4图像段加载到阵列中。对于4×4阵列不使用卷绕,对于边缘PE,从物理实现中不存在的虚拟PE接收0值。在这个操作例子中将复盖对一个4×4象素块的处理。
为开始这个卷积举例,假定这些PE已被一个SIMD控制器(例如图3A的控制器29)初始化,而且假定初始4×4象素块已通过数据总线加载到每个PE中的寄存器R1,即每个PE已加载了一个象素。图19C显示了一个图像的一部分,所具有的4×4块被加载到该阵列中。图19D显示这一块被加载到4×4环形的逻辑位置。此外,假定每个PE中的“累加和”寄存器R0已被初始化为零。虽然对这一算法不会造成后果,R2也显示出已被初始化为零。在该算法的每一步,卷积窗元素被一次广播一个。这些窗元素被接收到寄存器R2。在广播窗元素之前机器的初始状态示于图20A。下面是对所有PE计算3×3近邻中加权象素值之和的步骤。
该算法的开始是向所有PE发送(广播)第一窗元素W00。一旦在每个PE中收到该值,这些PE计算第一个R0=R0+R2*R1或R0=R0+W*P。然后,根据所选择的卷积路径(图19B)将计算结果通信到最近邻PE。为简化讨论,假定每个要描述的操作步骤可被分解成三个子步骤,每个子步骤由控制器分发的指令控制:广播窗元素步骤,计算步骤,以及通信步骤。应该指出,能开发出对这一简化过程的改进,例如以主步骤2开始,以结果通信步骤复盖窗元素广播步骤。这些点对于本描述的目的不是实质性的,而且会是本领域普通技术人员所理解的。在操作进行过程中使用上标代表求和步骤之值。为了有助于跟随计算值的通信过程,在一个标号上的下标指出在其中产生该值的源PE。对象素{i,j}的卷积路径示于图19B。图20-24指出每个计算步骤之后多重阵列的状态。
在图20B中,W00被广播到各PE并每个PE计算R0 1=0+W00*R1并把R0 1通信到南PE,在那里,所收到的R0 1值被存储在该PE的寄存器R0中。
在图21A中,W10被广播到各PE并每个PE计算R0 2=R0 1+W10*R1并把R0 2通信到南PE,在那里,所收到的R0 2值被存储在该PE的寄存器R0中。
在图21B中,W20被广播到各PE并每个PE计算R0 3=R0 2+W20*R1并把R0 3通信到东PE,在那里,所收到的R0 3值被存储在该PE的寄存器R0中。
在图22A中,W21被广播到各PE并每个PE计算R0 4=R0 3+W21*R1并把R0 4通信到东PE,在那里,所收到的R0 4值被存储在该PE的寄存器R0中。
在图22B中,W22被广播到各PE并每个PE计算R0 5=R0 4+W22*R1并把R0 5通信到北PE,在那里,所收到的R0 5值被存储在该PE的寄存器R0中。
在图23A中,W12被广播到各PE并每个PE计算R0 6=R0 5+W12*R1并把R0 6通信到北PE,在那里,所收到的R0 6值被存储在该PE的寄存器R0中。
在图23B中,W02被广播到各PE并每个PE计算R0 7=R0 6+W02*R1并把R0 7通信,在那里,所收到的R0 7值被存储在该PE的寄存器R0中。
在图24A中,W01被广播到各PE并每个PE计算R0 8=R0 7+W01*R1并把R0 8通信到南PE,在那里,所收到的R0 8值被存储在该PE的寄存器R0中。
在图24B中,W11被广播到各PE并每个PE计算R0 9=R0 8+W11*R1并结束。
在上述9个步骤的结尾,每个PEi,j包含(参考图19B):Ci,j=W00Pi-1,j-1+W10Pi,j-1+W20Pi+1,j-1+W21Pi+1,j+W22Pi+1,j+1+W12Pi,j+1+W02Pi-1,j+1+W01Pi-1,j+W11Pi,j。例如,对于i=5和j=6,C5,6=W00P4,5+W10P5,5 W20P6,5+W21P6,6+W22P6,7+W12P5,7+W02P4,7+W01P4,6+W11P5,6
应该指出,在完成本例时,如果按给定的操作假设,则已计算出4个有效的卷积值,即在PE(1,1),(1,2),(2,1),(2,2)中的值。这是由于先前讨论的边缘效应。由于这一算法所需PE的简单性,可在一个芯片上容纳大量PE,从而极大地提高了大图像尺寸卷积计算的效率。
上例表明,多重阵列在其4个通信方向(北、东、南、西)的通信能力方面等效于一个标准的环形阵列,而只需标准环形的一半连线消耗。如果给定一个以规则连接模式、最小连线长度和最小费用实现的多重阵列转置PE间通信能力,那么该多重阵列还提供了超出标准环形阵列的附加能力。由于多重阵列组织结构更规则,因为它是由同样大小的PE丛构成,而同时又提供了转置和近邻通信的通信能力,所以它代表了与现有技术的标准对角线褶叠环形阵列相比更优越的设计。
为了演示和描述的目的,前面已展现了本发明具体实施例的描述。并不想把本发明完全地限定在所公开的实践形式,而且根据上面的说明,许多修改和变化都是可能的。选择和描述这些实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域其他技术人员能最好地利用本发明。其意图是本发明的范围只由这里所附权利要求来限定。

Claims (42)

1.连接环形连接处理元件阵列中多个处理元件的互连系统,每个处理元件有一通信端口用于和其它处理元件通信,通信端口包含单一输入和单一输出,该互连系统包含:
处理元件间连接路径,用于连接通过丛开关组合成丛的处理元件,每个丛的处理元件通过丛开关和处理元件间连接路径与互不相交方向上的两个丛的处理元件通信;以及
丛开关,被连到所述处理元件的通信端口和处理元件间连接路径,并且被可控制地切换,以便将互不相交的通信多路复用到连接丛开关的处理元件间连接路径上,从而减少为提供处理元件间连接所需的通信路径数。
2.权利要求1的互连系统,这里所述多个处理元件中预定数量的处理元件构成转置处理元件对,并且所述丛开关还包括提供成对转置处理元件间直接通信的丛内转置连接。
3.权利要求1的互连系统,还包括连接到丛开关的控制,用于控制被可控制地切换的丛开关选择可选择的操作方式,这里数据和命令可以按下述4种可选方式之一在所述通信端口上被发送和接收:
a)发送东/接收西方式,用于通过东边的一个处理元件的通信端口向这个东边的处理元件发送数据,而通过西边的一个处理元件的通信端口从这个西边的处理元件接收数据;
b)发送北/接收南方式,用于通过北边的一个处理元件的通信端口向这个北边的处理元件发送数据,而通过南边的一个处理元件的通信端口从这个南边的处理元件接收数据;
c)发送南/接收北方式,用于通过南边的一个处理元件的通信端口向这个南边的处理元件发送数据,而通过北边的一个处理元件的通信端口从这个北边的处理元件接收数据;
d)发送西/接收东方式,用于通过西边的一个处理元件的通信端口向这个西边的处理元件发送数据,而通过东边的一个处理元件的通信端口从这个东边的处理元件接收数据。
4.权利要求3的互连系统,这里可以按用于转置处理元件间发送和接收的第5种可选择的转置发送/接收方式来发送和接收数据和命令。
5.权利要求4的互连系统,这里每个处理元件包括控制端口和用来与控制器通信的端口,互连系统还包括控制器,所述控制器连接到每个处理元件的控制端口和每个处理元件的数据端口,以便同时地向每个处理元件的控制端口发送控制信息并向每个处理元件的数据端口发送数据以加载到每个处理元件的寄存器中。
6.权利要求5的互连系统,这里所述处理元件间连接路径被路径使能信号通过丛开关有选择地切换,以便在不同连接路径之间进行选择。
7.权利要求6的互连系统,这里所述路径使能信号是根据来自所述控制器的控制信息而产生的。
8.权利要求4的互连系统,这里每个通信端口包括B比特宽发送和接收路径,这里B是大于或等于1的整数。
9.权利要求1的互连系统,这里每个处理元件被连接成根据通过一控制端口接收并由驻留在每个处理元件上的控制逻辑解码的通信指令,有选择地在一通信端口上发送命令或数据,而经由另一通信端口接收数据或命令。
10.权利要求9的互连系统,这里的通信指令是由控制逻辑在所述控制端口从一控制器接收到的。
11.权利要求9的互连系统,这里丛开关支持一种操作,在这种操作中每个处理元件同时通过输出端口发送命令或数据并通过输入端口接收命令或数据。
12.权利要求11的互连系统,这里所述命令或数据的同时发送或接收被有选择地切换,从而使每个处理元件同时通过输出端口发送命令或数据并通过输入端口接收数据或指令。
13.一种阵列处理器,包含:
多个被组合成丛的处理元件,每个丛与互不相交的方向上的两个其它丛通信,每个处理元件有用于和其它处理元件通信的单一处理元件间通信端口,每个所述端口具有单一输入和单一输出;
处理元件间通信路径,通过被可控制地切换的丛开关连接所述单一处理元件间通信端口;以及
被可控制地切换的丛开关,所述丛开关选择互不相交的、用于处理元件到处理元件的通信的处理元件间连接路径,并且将多个处理元件连接到环形连接阵列中。
14.权利要求13的阵列处理器,还包含处理元件间通信路径被连接成提供直接的转置处理元件通信。
15.一种阵列处理器,包含:
多个处理元件,被安排成丛,每个处理元件有一通信端口用于和其它处理元件通信,通信端口包含单一输入和单一输出;
处理元件间通信路径,通过丛开关连接处理元件;以及
丛开关,可以多路复用处理元件间通信,并且连接每个丛的处理元件以便在互不相交的方向上与使用处理元件间连接路径的至少两个其他丛的每个丛的处理元件通信。
16.一种阵列处理器,包含:
N个丛,每丛包含M个处理元件,每个处理元件有一个通信端口,该处理元件通过此端口在总共B条连线上发送和接收数据,其中N是大于1的整数,M和B是大于或等于1的整数;
小于或等于M×B线宽的通信路径,它们在每对所述丛之间连接;该对中的每个丛成员包含的处理元件相对于该对中的另一丛中的处理元件而言是环形最近邻,每个路径允许该丛对之间在两个互不相交环形方向上的通信,即南和东,或南和西,或北和东,或北和西;以及
多路复用器,被连接成把该丛对之间的2×M×B线宽通信组合成所述小于或等于M×B线宽的通信路径。
17.权利要求16的阵列处理器,这里每个丛的处理元件向北和西环形方向与一个丛通信,向南和东环形方向与另一丛通信。
18.权利要求16的阵列处理器,这里每个丛的处理元件向北和东环形方向与一个丛通信,向南和西环形方向与另一丛通信。
19.权利要求16的阵列处理器,这里至少一个丛包括N×N个环形转置对。
20.权利要求16的阵列处理器,一丛开关包含所述多路复用器,而所述丛开关被连接成多路复用从两个互不相交方向收到的向一丛内处理元件进行的通信。
21.权利要求20的阵列处理器,这里所述丛开关被连接成多路复用从一丛内处理单元向另一丛内处理单元发送的通信。
22.权利要求21的阵列处理器,这里所述丛开关被连接成多路复用一丛内转置处理元件之间的通信。
23.权利要求16的阵列处理器,这里N大于或等于M。
24.权利要求16的阵列处理器,这里N小于M。
25.一种阵列处理器,包含:
N个丛,每丛有M个处理元件,每个处理元件有一个通信口,通过这个通信口,处理元件在总共B条线上发送和接收数据,在一个丛内的每个处理元件与丛内的其他处理元件在物理上比该丛外部的处理元件更加靠近,其中N是大于1的整数,M和B是大于或等于1的整数;
通信路径,它们小于或等于M×B线宽,在该丛对之间连接,在该对中的每个丛成员所包含的处理元件是该对中的另一丛中处理元件的环形最近邻,每个路径允许在该丛对之间沿两个互不相交环形方向进行通信,即南和东,或南和西,或北和东,或北和西;以及
多路复用器,把该丛对之间的2×M×B线宽通信组合成小于或等于M×B线宽路径。
26.权利要求25的阵列处理器,这里每个丛的处理元件向北和西环形方向与一个丛通信,向南和东环形方向与另一丛通信。
27.权利要求25的阵列处理器,这里每个丛的处理元件向北和东环形方向与一个丛通信,向南和西环形方向与另一丛通信。
28.权利要求25的阵列处理器,这里至少一个丛包括N×N环形转置对。
29.权利要求25的阵列处理器,这里一个丛开关包含所述多路复用器,所述丛开关被连接成多路复用从两个互不相交环形方向到一丛内处理元件所接收的通信。
30.权利要求29的阵列处理器,这里所述丛开关被连接成多路复用从一丛内处理元件向另一丛的处理元件发送的通信。
31.权利要求30的阵列处理器,这里所述丛开关被连接成多路复用在一丛内转置处理元件之间的通信。
32.权利要求25的阵列处理器,这里N小于或等于M。
33.权利要求25的阵列处理器,这里N大于M。
34.权利要求25的阵列处理器,这里处理元件之间的通信是位串行的,每个处理元件丛在所述通信路径上与两个其他丛通信。
35.权利要求25的阵列处理器,这里处理元件之间的通信路径包含一个数据总线。
36.权利要求25的阵列处理器,这里所述通信路径是双向路径。
37.权利要求25的阵列处理器,这里所述通信路径包含单向信号线。
38.权利要求25的阵列处理器,令P和Q分别表示一环形连接阵列的行数和列数,该阵列与所述阵列有相同处理元件数,而且P和Q分别等于N和M,N是大于1的整数,M是大于或等于1的整数。
39.一种阵列处理器,包含:
处理元件PEi,j,这里i和j代表一传统环形连接阵列内的各行和列的处理元件位置,而且这里i=0,1,2,…,N-1和j=0,1,2,…,N-1,所述处理元件对任何i,j和对所有a∈{0,1,…,N-1}被安排成丛PE(i+a)(Mod N),(j+N- a)(Mod N),这里每个丛包含相等数量的处理元件,N是大于1的整数;
丛开关,被连接成多路复用在所述丛之间的处理元件间通信路径,从而提供处理元件间连接等效于环形连接阵列的处理元件间连接。
40.权利要求39的阵列处理器,这里所述丛开关还进一步被连接成提供一丛内转置处理元件对中的处理元件之间的直接通信。
41.权利要求39的阵列处理器,这里所述丛是可伸缩的。
42.构成一阵列处理器的方法,包含的步骤是:
把处理元件安排到N个丛中,每丛M个处理元件,使得每个丛包括的处理元件只在互不相交的环形方向上与至少一个其他丛的处理元件进行通信,其中N是大于1的整数,M是大于或等于1的整数;以及
多路复用所述互不相交的环形方向通信。
CNB988067579A 1997-06-30 1998-06-24 多重阵列处理器 Expired - Fee Related CN1158616C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/885,310 1997-06-30
US08/885,310 US6023753A (en) 1997-06-30 1997-06-30 Manifold array processor
PCT/US1998/013111 WO1999000743A1 (en) 1997-06-30 1998-06-24 Manifold array processor

Publications (2)

Publication Number Publication Date
CN1261966A CN1261966A (zh) 2000-08-02
CN1158616C true CN1158616C (zh) 2004-07-21

Family

ID=25386618

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988067579A Expired - Fee Related CN1158616C (zh) 1997-06-30 1998-06-24 多重阵列处理器

Country Status (10)

Country Link
US (7) US6023753A (zh)
EP (2) EP1742154B1 (zh)
JP (1) JP4118963B2 (zh)
KR (1) KR20010014381A (zh)
CN (1) CN1158616C (zh)
AT (2) ATE357021T1 (zh)
CA (1) CA2295109A1 (zh)
DE (2) DE69841929D1 (zh)
IL (1) IL133691A0 (zh)
WO (1) WO1999000743A1 (zh)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
US6826522B1 (en) * 1999-06-21 2004-11-30 Pts Corporation Methods and apparatus for improved efficiency in pipeline simulation and emulation
DE10001874A1 (de) * 2000-01-18 2001-07-19 Infineon Technologies Ag Multi-Master-Bus-System
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US7075941B2 (en) * 2000-03-01 2006-07-11 Real Communications, Inc. Scaleable architecture for multiple-port, system-on-chip ADSL communications systems
US7020763B2 (en) * 2000-03-08 2006-03-28 Sun Microsystems, Inc. Computer processing architecture having a scalable number of processing paths and pipelines
RU2158319C1 (ru) * 2000-04-25 2000-10-27 Институт металлургии и материаловедения им. А.А. Байкова РАН Высокопрочная коррозионно- и износостойкая аустенитная сталь
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
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
SE522520C2 (sv) * 2000-11-02 2004-02-10 Ericsson Telefon Ab L M Signalbearbetningssystem
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
GB2370381B (en) * 2000-12-19 2003-12-24 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
CN1301491C (zh) * 2001-03-13 2007-02-21 伊强德斯股份有限公司 视觉装置、联动式计数器及图象检测器
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
US20050076134A1 (en) * 2001-05-17 2005-04-07 Gil Bialik Apparatus and method for multiple rich media formats video broadcasting
KR100401946B1 (ko) * 2001-08-10 2003-10-17 박종원 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
WO2003038645A2 (en) * 2001-10-31 2003-05-08 University Of Texas A scalable processing architecture
EP1367778A1 (en) * 2002-05-31 2003-12-03 Fujitsu Siemens Computers, LLC Networked computer system and method using dual bi-directional communication rings
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US20060001669A1 (en) * 2002-12-02 2006-01-05 Sehat Sutardja Self-reparable semiconductor and method thereof
US7673118B2 (en) 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
US7873811B1 (en) * 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7676648B2 (en) * 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7913062B2 (en) * 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
US7003594B2 (en) * 2003-05-12 2006-02-21 Sun Microsystems, Inc. Streaming protocol for storage devices
US7191311B2 (en) * 2003-12-13 2007-03-13 International Business Machines Corporation Method and system of interconnecting processors of a parallel computer to facilitate torus partitioning
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US20060242156A1 (en) * 2005-04-20 2006-10-26 Bish Thomas W Communication path management system
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
JP3992110B2 (ja) * 2005-12-06 2007-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の通信ノードの相互通信を制御する通信システム
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
DE102006027181B4 (de) * 2006-06-12 2010-10-14 Universität Augsburg Prozessor mit internem Raster von Ausführungseinheiten
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
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
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
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
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8150902B2 (en) * 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
US8255702B1 (en) * 2009-12-03 2012-08-28 Altera Corporation Programmable logic device with improved security
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8898432B2 (en) * 2011-10-25 2014-11-25 Geo Semiconductor, Inc. Folded SIMD array organized in groups (PEGs) of respective array segments, control signal distribution logic, and local memory
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
JP6459630B2 (ja) 2015-02-27 2019-01-30 富士通株式会社 データ転送制御装置、データ転送制御プログラム、および並列計算システム
CN113641627A (zh) * 2015-05-21 2021-11-12 高盛有限责任公司 通用并行计算架构
US11449452B2 (en) 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US11106467B2 (en) 2016-04-28 2021-08-31 Microsoft Technology Licensing, Llc Incremental scheduler for out-of-order block ISA processors
EP3735638A4 (en) * 2018-01-24 2021-03-17 Alibaba Group Holding Limited DEEP LEARNING ACCELERATOR SYSTEM AND PROCEDURES FOR IT
CN110399976B (zh) * 2018-04-25 2022-04-05 华为技术有限公司 计算装置和计算方法
EP3654247A1 (en) * 2018-11-15 2020-05-20 IMEC vzw Convolution engine for neural networks
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
US10831691B1 (en) * 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card
CN113867791B (zh) * 2020-06-30 2023-09-26 上海寒武纪信息科技有限公司 一种计算装置、芯片、板卡、电子设备和计算方法
CN113867789A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113867790A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡和计算方法
CN113867792A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
US11635967B2 (en) * 2020-09-25 2023-04-25 Advanced Micro Devices, Inc. Vertical and horizontal broadcast of shared operands
US11921668B2 (en) * 2020-09-30 2024-03-05 Beijing Tsingmicro Intelligent Technology Co., Ltd. Processor array and multiple-core processor
US20220100699A1 (en) * 2020-09-30 2022-03-31 Beijing Tsingmicro Intelligent Technology Co., Ltd. Computing array and processor having the same
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
US20230066045A1 (en) * 2021-08-30 2023-03-02 Taiwan Semiconductor Manufacturing Co., Ltd. Diagonal torus network

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3308436A (en) * 1963-08-05 1967-03-07 Westinghouse Electric Corp Parallel computer system control
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4509187A (en) * 1982-06-14 1985-04-02 At&T Bell Laboratories Time warp signal recognition processor using recirculating and/or reduced array of processor cells
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5577262A (en) * 1990-05-22 1996-11-19 International Business Machines Corporation Parallel array processor interconnections
US5146420A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Communicating adder tree system for neural array processor
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
EP0486684A1 (en) * 1990-05-22 1992-05-27 International Business Machines Corporation Virtual neurocomputer architectures for neural networks
US5148515A (en) * 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
JP2601591B2 (ja) * 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
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 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
DE4214621C1 (zh) 1992-05-02 1993-06-03 Bundesrepublik Deutschland, Vertreten Durch Den Bundesminister Der Verteidigung, Dieser Vertreten Durch Den Praesidenten Des Bundesamtes Fuer Wehrtechnik Und Beschaffung, 5400 Koblenz, De
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5644517A (en) * 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US6173387B1 (en) * 1994-05-11 2001-01-09 Intel Corporation Interleaved exchange in a network mesh
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
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data

Also Published As

Publication number Publication date
WO1999000743A1 (en) 1999-01-07
EP1742154A3 (en) 2007-07-11
DE69837335T2 (de) 2007-12-20
EP1002279B1 (en) 2007-03-14
DE69837335D1 (de) 2007-04-26
ATE484028T1 (de) 2010-10-15
US9390057B2 (en) 2016-07-12
US20040168040A1 (en) 2004-08-26
US6892291B2 (en) 2005-05-10
EP1742154A2 (en) 2007-01-10
US20070150698A1 (en) 2007-06-28
US7631165B2 (en) 2009-12-08
EP1002279A4 (en) 2004-03-31
ATE357021T1 (de) 2007-04-15
EP1002279A1 (en) 2000-05-24
US20080052491A1 (en) 2008-02-28
US20130019082A1 (en) 2013-01-17
US7197624B2 (en) 2007-03-27
CN1261966A (zh) 2000-08-02
EP1742154B1 (en) 2010-10-06
JP4118963B2 (ja) 2008-07-16
JP2002507300A (ja) 2002-03-05
US6338129B1 (en) 2002-01-08
KR20010014381A (ko) 2001-02-26
CA2295109A1 (en) 1999-01-07
US6023753A (en) 2000-02-08
US8341381B2 (en) 2012-12-25
US20020069343A1 (en) 2002-06-06
IL133691A0 (en) 2001-04-30
DE69841929D1 (de) 2010-11-18

Similar Documents

Publication Publication Date Title
CN1158616C (zh) 多重阵列处理器
JP4447770B2 (ja) 相互接続システム及び並列プロセッサとその形成方法
US6622233B1 (en) Hypercomputer
US7272691B2 (en) Interconnect switch assembly with input and output ports switch coupling to processor or memory pair and to neighbor ports coupling to adjacent pairs switch assemblies
Yang et al. Recursive diagonal torus: an interconnection network for massively parallel computers
Tsai et al. Broadcast in all-port wormhole-routed 3D mesh networks using extended dominating sets
JP2533282B2 (ja) 並列アレイ・プロセッサ
Barry Methods and apparatus for manifold array processing
MXPA00003003A (es) Metodos y aparatos para el procesamiento de una matriz de distribucion
Reconfigurable et al. Transputer Research and Applications 6 13 153 S. Atkins and AS Wagner, Eds. IOS Press, 1993

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: 20040721

Termination date: 20160624

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