CN1061482A - 并行相联处理器系统 - Google Patents
并行相联处理器系统 Download PDFInfo
- Publication number
- CN1061482A CN1061482A CN91109637A CN91109637A CN1061482A CN 1061482 A CN1061482 A CN 1061482A CN 91109637 A CN91109637 A CN 91109637A CN 91109637 A CN91109637 A CN 91109637A CN 1061482 A CN1061482 A CN 1061482A
- Authority
- CN
- China
- Prior art keywords
- array
- memory
- parallel processing
- processing system
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 206
- 230000015654 memory Effects 0.000 claims abstract description 149
- 230000006870 function Effects 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 239000013598 vector Substances 0.000 claims description 14
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims description 9
- 229910052710 silicon Inorganic materials 0.000 claims description 9
- 239000010703 silicon Substances 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000000758 substrate Substances 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000010606 normalization Methods 0.000 claims 1
- 239000000725 suspension Substances 0.000 claims 1
- 238000003491 array Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- RLLPVAHGXHCWKJ-IEBWSBKVSA-N (3-phenoxyphenyl)methyl (1s,3s)-3-(2,2-dichloroethenyl)-2,2-dimethylcyclopropane-1-carboxylate Chemical compound CC1(C)[C@H](C=C(Cl)Cl)[C@@H]1C(=O)OCC1=CC=CC(OC=2C=CC=CC=2)=C1 RLLPVAHGXHCWKJ-IEBWSBKVSA-N 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/803—Three-dimensional arrays or hypercubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Nonlinear Science (AREA)
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了多处理器并行计算系统和字长串
行SIMD处理器并行体系,从而能以一种适于在空
气冷却环境下用芯片实现的简化体系实施并行阵列
处理。本发明中提供的阵列是由字长宽度的处理单
元构成的N维阵列,其中的每个处理单元都装有适
当容量的字长存贮器和控制电路。包含几个处理单
元的阵列的可分离的一部分可以被包含在一块芯片
上,处理阵列中的单元最好由处理单元与一个局部存
贮器组合而成。
Description
总体上讲,本发明涉及多处理器并行运算系统,更具体地说,涉及一种字节串行SIMD处理器并行结构以及通过一种适合于在空气冷却的环境下进行芯片实施的简化结构进行并行阵列处理的系统和方法。
1970年10月27日批准的授予R.A.斯多克(Stokes)等人的第3,537,074号美国专利中描述了一种阵列计算机,它包括:多个并行处理器,一个单一的可编程控制单元,用于存贮配对物矢量的寄存器,掩蔽寄存器,以及对一个或多个控制单元指令构成的序列作出响应而对当前在矢量寄存器中的数据进行运算的装置。在整个七十年代,斯多克发明的并列处理器被称之谓“SIMD(单指令多数据)”处理器。这些装置也可以被认为是一个可编程控制单元驱动由几个并行处理器构成的一个阵列,其中每个处理器都具备存贮部分、算术单元、程序译码部分以及输入/输出部分。这些系统是一些大“盒子”,有时候与主计算机相联。SIMD与更普遍的处理器的一个重要区别在于:在这种系统中的所有SIMD处理器在其对应的处理器中都可以有一套不同的数据,同时所有的处理器又由一个共同的控制器加以管理。SIMD计算机与一般的凡·纽曼(VonNeumann)处理器也有不同之处,即每条指令对一个数据矢量而不是对一个单独的操作数进行运算。
最常见的多处理器系统是“多指令多数据系统”,其中每个处理器都可以对一组单独的数据执行一个单独的程序。一个MIMD(多指令多数据)系统中的处理器既可以执行不同的任务,也可以执行一个共同的主任务中的不同子任务。
当人们在研制SIMD并行处理器时,人们发现:正象授予罗尔(Lorie)等人的名为“SIMD矢量处理器中条件转移的执行方法”的第4,435,758号美国专利中所述的那样,当系统要执行的各任务之间高度独立且不争用信息时,SIMD并行处理器是非常合适的;但如果各任务之间争用信息时,则可以指示出一种在SIMD状态下工作的同步处理器网络。实际上,第4,435,758号美国专利中描述了这个问题,并且还讲述了他们为了提供条件转移的执行而不得不对1978年7月18日授于R.A.斯多克斯(Stokes)等人的第4,101,960号美国专利所作的改进。
人们已习惯上把最高级的SIMD机描述为设置成一个N×N矩阵的同步位串行处理器,正象H·李(Li)和M·马莱斯卡(Maresca)在“国际并行处理大会会刊(Proceedings of the International Confercnce on Parallel Processing)”中第411至414页的一篇题为“多环网络(Polymorphic-Torus Network)”的论文中描述的示例性的多处理系统那样1989年8月3A号的IBM技术手册第32卷中详细描述了用于提高稀疏矩阵与矢量的相乘执行速度的、适用于H·李等人描述的通过一个网孔布局和一个被另一个用于重布目的的交换网络所覆盖的网状网络而物理地连接的大规模并行结构的矩阵矢量的相乘方法。
有一本1990年度的出版物显示,人们曾想制造能通过多个处理器行进行运算的SIMD和SIMD/MIMD机器,其中某一行中的所有处理器执行完全相同的指令,但各行中的程序是完全不同的。从1990年1月号IBM技术手册第32卷8B中H·李、B·多姆(Dom)及R·杰夫(Jaffe)等人的示例中即可看到一个具有这种结构的一个体系,叫做并行本地运算器(PLOE),用于执行具体的竞争存贮器检查功能。
本申请中设想建立一种可用现有技术实现的空气冷却系统,它对上面建立的体系中的芯片组进行工作。
如果对现有技术作一番后见之明的研究,可以发现也有其他人描述了具有一个用于静态指令的ROM和用于在一块单独的硅片上存贮和访问数据的处理器的使用,1990年7月17日授予G·哈爱特(Hyatt)的名为“单片集成电路计算机结构”的第4,942,516号美国专利就是一例,但是这类处理器与SIMD类型的复杂应用无关。
另外,还有人描述了不少用于执行不同任务的装置,我们的系统可能涉及它们。比方说,矩阵相乘可以并行,这是公知的。也有一些出版物涉及到可能使用我们的系统的、属于人工智能方面的应用。内容可寻址存贮器(见图3)或者关联存贮器可以使用各种处理芯片在很高的水平上被寻址。另外,申请人还发现,在某些情况下,用行逻辑电路根据前面的检索操作进行选择是非常有用的。参看“用于人工智能的VLSI”一书,编辑者:Jose G.Delgado-Frias和Will R.Moore,Kluwer科学出版社,1989,第95-108页;以及Peter Kogge,Mark Brule及CharlesStormon著的讨论应用的“VLSL与基于规则的系统”一书。但是,也有其他人的一些巧妙的建议似乎要把发展方向引向不同于我们所遵循的方向。其中一例是由Bob Cushman主编的一本名为“用大量并行实行矩阵压碾(Matrix Crunching With Massive Parallelism)”的著作中的“VLSI系统设计”,1988年12月,第18-28页中描述的用于大量并行的牛津“智能存贮器”。也有人把并行处理试用于VLSI相关存贮器,试图描述一种适用于建立一种可重配置的完全并行相关的处理方案的VLSI相关存贮器芯片。这个方案认为:使用传统的相关存贮器结构的话,为了进行数据转移,还需要一定数量的输出点(Pinout)。请参见报告“VLSI关联存贮器的并行处理”,作者S·亨根(Hengen)和I·斯切森(Scherson),该报告由NSF奖#ECS-h404627加以支持,由加利福尼亚大学(Santa Barbara,CA93106)电气与计算机工程系工作的作者加以报道。
我们面对的问题是需要制造结构紧凑且又有多种应用的处理器。在实施这个总目标时,我们发现:以前的设计局限于每个处理单元最高几位比特的存贮器以及每个电子芯片上装几个处理单元的比特串行方法,这是不适当的。结果,我们想到要设计一种结构,它可以以极高的密度制造,并适合于空气冷却环境,同时能被封装在轻而小的单元中。最后,我们找到了解决方案,产生了一个N维字长宽度处理单元阵列,阵列中的每个单元与字长宽度存贮器中适当的段和控制逻辑相连。含有多个处理单元的阵列的一个可分离的部分装在一个硅片中。这在下面将加以详述。我们自己的解决方案也产生为提高系统性能而必须解决的附加问题,另外我们还发明了一些进一步开发我们提出的系统的一些方案,其中的一些方案允许处理单元进行独立操作。在回顾先有技术时,我们注意到欧洲专利申请EP-A-208,457,该申请讲述了一种处理器阵列,其中,阵列中的每个处理器单元能够选择从中取得输入的单元。
杰姆斯L.泰勒(Jame L.Taylor)于1990年5月4日递交的07/519,332号美国未决申请以及1988年9月27日递交的07/250,595号美国专利申请题为“SIMD阵列处理器”,其中描述了一个多维处理器阵列,该阵列在使并行处理的潜力被更好地开发而又不增加MIMD处理器的开销及复杂性方面具有更高的灵活性。该专利申请最初于1989年5月3日以欧洲申请EPO#88/307885/88-A的形式被公开,其中描述的系统沿着各个并行处理单元中与控制逻辑相连的总线送出一个用于进行局部比特串行执行的全局指令,并且通过程序修改全局指令中的一定的位而用于局部比特线上,在局部比特线上,这些修改后的位将被加以译码。
对先有技术进行回顾时还发现一篇对具有字长宽度SIMD的处理单元所作的讨论,那就是C.R.Jesshope和R.O.Gorman等人出版在IEEE会刊1989年5月第136卷中的“SIMD微处理器阵列的设计”一文。该论文中讲述了这二位作者对SIMD结构所作的学术研究,这二位作者执教于英国南安普顿(Southampton)大学电子与计算机科学系。论文中的有些特征与我们讨论的近似,作者在论文中描述了一种具有字节宽度SIMD结构的处理器。该论文建议,处理单元除了具有一定程度的自制能力之外,还应有一个字长宽度的处理累加器结构单元、仅受电路板限制的RAM(IK字节),以及每个芯片(4)上有多个PE。但是,即使使用了上面建议的这种结构,仍不能提供相联处理。原因在于在上面结构中没有提供字节宽度的邻元通讯,而本发明中做到了这一点。我们开发的其他一些特征该论文中也没有提到。因此,迫切需要一种象我们的阵元系统那样能推进并行处理技术进步并能在一块集成电路芯片上实施的系统。请参阅R。Duncan的“并行计算机布局概述(Summary of Parallel Archieectures)”一文,从1990年2月份的IEEE“Computer(计算机)”杂志上即可找到。
定义:
为了便于下面叙述,下面对本领域内的几个新术语作一个广义的、非限制性解释:
阵元(Pickct)一最好由处理单元与局部存贮器组合而构成的处理阵列中的一个单元,上述的阵列能在一个时钟周期内处理信息中一个字长的串行数据位。其最佳实施例由一个字长宽度的数据流处理器,32K字节或更多的存贮器,原始控制电路组成,与其他阵元有通讯线相连。
阵元芯片一在一块单独的硅片上包含许多阵元。
阵元处理器系统(或叫子系统)-由阵元阵列。
通讯网络、I/O系统、由微处理器构成的SIMD控制器、封装程序处理器以及一个管理着整个阵列的一个微控制器构成的总系统。
阵元布局一能解决下列几类不同问题的SIMD布局的最佳实施例:
-集合相联处理 -并行数值集中处理 -与图象类似的物理阵列处理。
阵元阵列-以几何级数设置的阵元集元。
阵元(Picket,原意“木桩”)一词出自汤姆·索耶和他的白栅栏,也可以从功能上理解为一队士兵警戒线更合适一些。
我们将要描述的体系可以被称之为“阵元”体系。该体系中结合了某些在结构上与早期的SIMD处理单元(PE)相似的元件,这些元件根据需要组成一条警戒线一样连在一起,这些元件已被进行了改进,能执行独立的凡·因曼运算。在建立该体系时,我们采用了一个N维处理单元阵列进行并行运算,在我们称为“阵元”的每个处理单元内都有控制逻辑电路。
本系统能象单指令多数据(SIMD)机那样进行运算,但其性能由于装入了更多的并行处理元件而得到很大提高。有关数据依赖性方面的问题已被解决。在SIMD机的运算中,任何处理器或功能电路都不能具有将可能使一个处理单元要求不同数量的周期的数据依赖性。
我们进行的体系开发产生这样一种系统,该系统具有许多带有一个并行处理单元的阵元单元,并且具有与上述处理单元相连用来以相联方式进行信息的并行处理的局部存贮器,每个阵元都适于执行一个单元的相联处理。我们提供了每个阵元的水平相联方法。阵元单元的存贮器被设置成一个阵列。因此,形成的阵元阵列还包括一个相联存贮器集合。
把一个集合相联并行处理系统做在一块芯片上的发明能使一个较大集合中的较小集合的“数据”被从存贮器读出,从而可对此执行相联运算。这种相联运算(通常是相同比较)通常使用阵元的存贮器和执行单元在整个数据集中并行进行。
在阵元阵列中,每个阵元都有一部分出于一个大集合的数据。此外,每个阵元还从它的数据部分中选择一块数据。这样,每个阵元集合中的数据块都包含着所有的阵元都将并行地对之进行相联运算的数据集。
目前能实施的设计是将最多50个数据流门电路和控制逻辑、以及兆位的DRAM存贮器做在一个芯片上。每一片这种芯片都能设置成用来容纳许多阵元或者处理单元。在进行文本处理(也能进行图形应用)的最佳实施例中,一个单独的阵元芯片上有16个阵元,每个阵元还带有32K字节的DRAM存贮器,整个系统包括一个由64块这样的芯片构成的阵列,从而产生1024个处理单元。这种阵元体系可以用CMOS技术来制造(这种技术能使400万位的DRAM以重复的图形形成在一块芯片上),芯片上的其余芯片表面可以用逻辑标准单元来填充,这些逻辑标准单元将采用高达50K逻辑元件,能在芯片上形成阵元所需的数据流和控制逻辑电路。在我们安排的系统中,阵元处理数据时具有一定局部自制权,并在阵元之间提供了“滑动”。
阵元技术是可扩展的,每个单独的阵元有126K字长DRAM(16兆位的DRAM芯片)的话,阵元体系可以以和文本相同的方式处理全部24位的彩色图形。用目前的实施例可以处理8位彩色或者灰度的图形。实验性的制造技术显示出,只要产品能在一个空气冷却的环境下工作,那么,这个密度在很近的将来是可以期望得到的。对于彩色图形,我们的最佳阵元体系将把芯片上的DRAM数量增加到每阵元128千字节,每一芯片上保持16个阵元。另外,对于全颜色图形处理器而言,也可以采用每块芯片上具有24个带有96千字节存贮器的阵元单元的方案。
下面根据附图来描述我们的最佳实施例。
附图中
图1.是一个近期的SIMD处理器的示意图,它描述在一份未决专利中,可以被认为是原有技术的代表。
图2.示出做在一块硅基片上的一对基本阵元单元,它们具有:处理器、存贮器、控制逻辑、与阵列中的其他成员具有字长通信的相关存贮器。
图3.中示出了相关存贮器处理。
图4.示出了一个SIMD子系统的基本16(n)成员块结构,该子系统采用一个微处理器控制器,一个用于封装(Canned)程序的硬连线序列控制器,和一个成员块阵列;这构成了基本并行阵元处理器系统。
图5.示出了一个结合了多个图4所示的阵元处理器的一个多阵元处理器系统。
图6.是一个子系统的功能框图。
图7.进一步表示了一个子系统控制器的结构。
现在来看附图。图1中示出了一个典型的现有SIMD系统,其类型大致为泰勒(Taylor)在IBM欧洲专利申请(第88307855/88-A号)以及UK-A-1,445,714中描述的那些。在这种先有技术装置中,SIMD计算机是单指令多数据计算机,具有一个并行阵列处理器,该并行阵列处理器包括许多个并行连接的比特串行处理器,每个这样的处理器又与许多SIMD存贮装置中的一个相连。输入/输出(I/O)系统给SIMD单元起到中间集结的作用,该系统包括一个用于给主计算机(可以是一个主框架或者是微处理器)和SIMD计算机之间进行的双向二维数据交换提供暂存的暂存器。I/O系统还包括输入输出处理装置,用于控制主计算机和暂存装置之间的数据流,以及控制暂存装置与许多SIMD存贮装置(它们是通常结构的缓冲器部分或者一个大存贮器的一部分)。I/O系统的输入操作涉及把数据从主计算机存贮器转送到暂存器以及第二步从暂存器送到SIMD存贮器装置。输出时也是一个二步骤过程,沿着二维总线在主计算机和SIMD计算机之间转送数据。用于I/O传送的输入/输出单元既可以是一个分离的单元,也可以是主计算机中的一个子单元,或者(经常也是)SIMD计算机中的一个单元,这里,SIMD控制器起到控制暂时I/O缓冲存贮的作用。
SIMD计算机本身包括一个具有许多处理单元的处理器阵列以及一个把各个处理单元与许多常规的分离SIMD存贮装置相连的网络。SIMD计算机是一个具有大量的并行连接和操作的单独的处理单元的并行阵列处理器。SIMD计算机中包括一个控制单元,由它产生送给处理单元的指令流,以及给计算机提供必须的时序信号。互连着各个处理单元的网络包括好多可以使各个处理单元相连的方案,如可以采用如网孔、多型环以及超正方体等多种拓扑结构。上面提到的许多存贮装置用于给各个处理单元立即存贮比特数据,在处理器的数量和存贮装置(可以是上面提到过的一个大存贮器的缓冲器部分)的数量之间存在一一对应的关系。
举个例子来说,如图1所示,有一台主处理机28。该处理器用于通过主机-控制器数据总线30、和地址和控制总线31把微码程序装入阵列控制器14(它包括一个暂有缓冲器),交换数据,以及监测它的状态。本例中的主处理器可以是任何适当的通用计算机(如主框架或个人计算机)。在这个光有技术实例中,处理器阵列画成二维的。实际上,阵列可以有不同的构造,如三维或四维集束结构。SIMD阵列处理器包括一个处理单元P(i,j)阵列12,以及一个用于给处理单元P(i,j)发出全局指令串的阵列控制器14。虽然图1中未示出,但该先有技术实例中具有一次只对一位进行运算的处理单元,以及一个存贮块(它可以是与该处理单元相连的存贮器中的一部分。各个处理单元通过所谓的NEWS(北、东、西、南)网络通过各向比特线与它们的各个邻居相连。这样,一个处理器单元D(i,j)将分别与它们北、东、西、南方向上的处理单元P、(i-1,j),P(i,j+1),P(i,j-1)和P(i+1,j)相连。在这个典型例子中,NEWS网络的边缘成回环状连接,这样,北边缘和南边缘或双向互连,西边缘和东边缘也类似互连。为了能使数据输入处理器阵列以及从处理器阵列输出,一根控制器一阵列数据总线26与NEWS网络相连,也可以通过与环形的东西NEWS连接线相连的双向三态驱动器与或者附加地与北-南边界相连。正象在最佳实施例中将要描述的那样,如果本例中的处理单元数为32×32,而不是16×16,那么,用先有技术可以实现1024个处理元件。在图中,单线表示单一的比特线,而连接功能单元的双线则被用来表示多根连接线或总线。
在本实例中,阵列控制器通过指令总线18向各处理单元发出并行的指令,分别通过行选择线20和处选择线22发出行选择和列选择信号。这是指令使得处理单元从存贮器装入数据、对数据进行处理,然后再一次把数据存贮到存贮器中。由于这个缘故,每个处理器单元都要访问主存贮器的比特“片”(主存贮器的一部分或者缓冲器)。因此,从逻辑上说,阵列处理器的主存贮器为了一个1024处理单元阵列而划分成1024个部分。这意味着在传送部骤中,最多32个32位字可以一次送入或送出存贮器。为了执行读或写操作,要根据变址地址对存贮器进行寻址。。上述的变址地址通过地址总线24送至存贮器地址线,读或写指令被并行送到每个处理单元中。在执行读操作期间,行和列选择线上的行和列选择信号指示出哪个处理单元要执行该操作。这样,在该实例中,要把一个单独的32位字从存贮器读,32×32的阵列中选定行上的32个处理单元中是完全可以的。处理单元与一位宽的存贮器条或块(i,j)相连,虽然这条或者说这块存贮器一一对应地与相应的处理单元逻辑相连,它有可能而且典型情况下就是物理上分装在另一个芯片上。我们不知道怎样用现有的布局技术制造上述的那种阵列处理器,我们的阵元可以通过处理器阵列及适当的存贮器做在具有我们下面将要描述的那类芯片上。
应该理解的是,上面那个先有技术实例中的众多处理单元包括:AL11和带进位的输入和输出寄存器,每个进行都能存贮一位信息。还有一个多路转换器与AL11输入、输出相连,以及与和该处理单元P(i,j)相连的那条存贮器(i,j)的双向数据端相连。
指令总成与数据总线是分离的,阵列控制器有一个微码存贮器,表示将要被阵列执行的处理的微码由主计算机28通过数据总线30以及地址和控制总线31装入。一旦主机28启动阵列控制器的运算,微码序列即由阵列控制器14内部的一个与上述的微码存贮器相连的微码控制单元相连。AL11和阵列控制器中的寄存器列将被用来产生阵列存贮器地址、循环计数、跳转地址计算以及各种目的的寄存器操作,它们都将被输出到阵列控制器的一根地址总线上。该阵列控制器还有多个用于对行和列掩蔽码解码的参考寄存器,特殊操作码通过一根指令总传送到处理单元。在本例中,阵列控制器还可以有一个位于控制器内部但功能上却位于主控制数据总线和控制器阵列数据总线之间的数据缓冲器。在控制存贮器中的微码的控制下,数据被从该缓冲器中装入处理器阵列中,或者相反。由于这一缘故,该缓冲器被设置成处于阵列控制器中的一个微码控制电路控制下的双向FIFO缓冲器。有关这种先有系统的其它细节可以从上述的那个实例特别是从泰勒(Taylor)的名为“SIMD阵列处理器”的USSN07/519,332中发现。
上面作的对现有技术的尝试的回顾可以和下面讲述的本发明的最佳实施例加以比较。图2中示出了基本阵元单元100,它包括一个组合处理单元AL11 101和一个与该处理单元相连从而在一个时钟周期内处理一个字长的信息的局部存贮器102。如图中所示,阵元单元以线性阵元阵列的方式成形在一块硅基片或者叫阵元基片上,毗邻的单元与它的边缘(即附图的左边或右边)相邻,这样,在一块硅片上可以形成一个阵元处理阵列和多个局部存贮器,对于每个设置在逻辑行或者线性阵列中的字长宽度的处理数据流都设置一个局部存贮器,它们与毗邻单元的通信总线一起用来向左或向右双向地传送数据。一个阵元芯片上的阵元集最好以几何图形设置,最好在芯片上的阵元阵列中二个阵元的典型设置情况,其中还有许多存贮器及数据流,还包括每个阵元的处理单元及存贮器之间的通信通道。在本实施例中,一对一存贮器和阵列中的处理单元之间的数据通信通道为一个字长宽度,从左边或右边进入毗邻单元。通过一次“滑片动(slide)”与远处的阵元处理器进行通讯。
“滑动”可以被定义为一种在一个周期内把信息传送到一个非毗邻位置的手段,它在正常情况下能接受信息,它在信息到达之前是不能通过的,上述信息被最近的工作着的毗邻单元所接收。这样,通过把信息穿过被“关掉”的阵元送至一个非毗邻位置,滑动就起了作用。现在,假设阵元“A”想把信息传送至一个较远的阵元“G”。在该周期之前,先通过把“B”至“F”阵元关断,把隔断的阵元变得“透明”。在下一个周期中,“A”把它的信息向右送出,信息穿过“B”至“F”,这些单元是透明的,因为它们已经被关断了。最后“G”接收到该信息,因为它还被“打开”着。在正常使用中,“滑动”信息是沿格栅或直线传送的,但在二维网孔结构或多维阵列中,这种滑动方法还能工作。
在我们的最佳实施例中,处理单元的访问不是以串行比特而是以字长串行进行的。每个处理器访问的是与它自身相连的存贮器,而不是去访问一块局部存贮器或其相应的部分面。提供的总线不是一位宽度,而是一个字符宽或者是字符的几倍宽。在一个时钟周期内处理的不是一位而是一个字长的信息(在将来的系统设想把处理能力提高到一个字符字长或者几倍字长)。这样在每个阵元处理单元之间能有8,16或者32位信息流动,从而与相应的存贮器的宽度相对应。在本最佳实施例,每个阵元芯片具有32千字节的存贮器,宽度为8(9)位;最好有16个阵元有32千字节的存贮器。这样使得线性阵列上的每个阵元节点都有一个存贮器。在本实施例中,可以发现每个相关的存贮器是CMOS构成的DRAM,一个字符字长为9位(它起的作用为带有自检功能的8位字符)。
并行通道上具有字节宽度的总线数据在阵元间和处理单元之间流动,这里的存贮器是对先有技术系流中的串行位结构的一种实质性改进。同时也应认识到,并行程度提高了,也产生了需要解决的其它问题。这些问题只要在理解了新构成的结构的含义就能联想到。下面讲述一下对这些问题的一些重要解决方法:
应该理解的一个特征是,我们给上面讲述的滑动机制除了提供左、右毗邻转换外,还提供一根具有双字长度的广播总线,使得所有的阵元在相同的时刻能得到相同的数据。阵元控制信号及地址传播信号也在这根总线上传播。在进行集合结合运算和其它比较及同步数字运算时,正是这根总线提供比较数字。
具有高度并行的数据结构从而适合于在阵元数据处理单元中在单指令流的控制下进行运算的任务有:从智能图形匹配方面的应用、多传感器最佳对准中的传感器及痕迹汇合、内容查寻以及图象处理等等。但是,现在能进行的许多这些应用将不会用SIMD进行处理,这是由于在一个单独的时钟时间下进行串行比特处理的缘故。举个例子来说,SIMD机中传统的串行处理单元在每个处理器周期期间执行一比特的加法运算,而一台32位并行机在一个周期内能执行32位的加法运算。
每个处理器单元32KB的结构能比传统的SIMD机提供更多的与每个处理单元逻辑相连的存贮器。
芯片的针脚数可以保持很低,这是因为要送入和输出芯片的数据被保持在最少程度。DRAM存贮器是一种常规的存贮器CMOS阵列,通过在存贮器阵列之后删除列的多路分解以及提供以一个存贮器阵列行中读出的行地址,它还能支持“行一列”访问。
除了数据之外,存贮器也包括“三态位”或“三态”,这样,有三个状态而不是传统上的2进制数字能被逻辑电路认识,即逻辑“1”,逻辑“0”及“忽略”。在匹配时,忽略既能与逻辑“1”又能与逻辑“0”匹配。存贮阵列中许多连续的存贮位置上都包含三态。“掩蔽”是存贮在存贮器中的另一种形式的数据,它们将被送入阵元处理单元中的参考寄存器中。
由于存贮阵列可以包含命令,该将使一个阵元可以做与另一个阵元不同的操作。操作期间大多数阵元(不一定全部)中的各个阵元进行的“在片”控制能允许进行对SIMD操作来说很独特的执行方式。能提供的一个简单的控制功能,即是取消任何其状态输出满足一定条件的阵元的运算。这样,一个非零条件可以意味着一个忽略(doze)亦即是取消操作,使阵元关闭但进入等待状态的一种条件。提供的另一个命令是根据阵元的状态,或者根据在滑动操作之前提供给总线的命令禁止或者使能对存贮器的写入。
如果把16个每个带有32KB存贮器的强大的阵元做在一个阵元芯片上,那么,只要64块芯片即可提供1024个处理器和32768KB的存贮器。阵元阵列包括一套相关存贮器。本发明除了矢量处理之外,还适用于数值计算很强的图象分析。目前,这个强有力的阵元处理阵列可以封装在2块小电路板上。可以设想:成千个阵元可以被适当地封装在更轻便的低能耗包装中,这样可以以最短的延迟或者在视频帧时间内进行图象处理。举个例子来说,可以在飞机飞行过程中进行,同时又不必考虑负荷等问题。
阵元阵列的功能还导致使用装在闭合仪器舱中的大型相关存贮器系统的可能性,这样,在系统设计者对新系统的使用习惯之后,在各种场合下使用处理功能。
图3表示出了能被称作全相联存贮器是什么样的存贮器。当要求进行相联时,一个比较值被送到所有的存贮器位置上,所有的存贮器位置同时用它们的匹配线进行答复。相联存贮器因此而得名。在本系统中,为了执行查找要使用存贮器的并行阵元和具有字节转移电路的处理单元;为了在存贮器的N个字中找出一个字K,就要有数据和查找掩模输入。所有匹配的阵元都被状态线电平升高,然后执行一个分离操作读出或者选择第一个匹配的K。这种运算通常称作集合相联,可以对连续的字沿着阵元存贮器重复进行。同样,写是通过一个广播操作来实现的,其中被升高了的选择指示了参与情况,广播数据被拷贝至所有选中的阵元中。
另一个实施例虽然不是最佳实施例,但它减少了每个阵元的DRAM存贮器,从而允许加入具有图3所示类型的完全相联存贮器。如果加入了(比方说)512字长的全相联存贮器,这样,每个阵元都可以包括一个查找索引集合。在一次操作中,512×1024个阵元将每次完成512K次比较或者以每次操作用1微秒的速度完成512千-比较(Giq-compovre)。带有伸展性的这个慨念可以延伸至多兆-比较的范围。本实施例允许进行涉及大量信息查找的相联任务,其能力远远超过目前的运算能力。
使用图2中所示的存贮器和字长宽度的相连处理单元进行的相联运算,除了应用于离散数字运算、人工智能、SIMD形态下总线进行并行编码之外,还能应用于目前只有芯片结构如我们在SIMD环境下描述的那类机器能完成的许多应用:
简单的可并行算术任务,包括能在专门的存贮器机器上执行的短阵相乘和其它任务;
图象匹配,图象处理;它们可以在的机器上执行,但对于那些适合于极度并行的场合(加三维图形的图案匹配)速度将大大提高。
根据数据的查询功能;
人工智能领域中的图形匹配;
在桥路上的网络控制;可以迅速识别从网络的桥路的另一侧送向用户的信息,
门级模拟;
以及检查VLSI中接地规则的违反情况。
当应用程序员借助于新系统体系的功能而开动脑筋时,他行就会想到利用存贮器列及相联处理元件的各种处理任务。
通过给每个阵元100的一个门或者逻辑元件使用一个阵列,就可以加强保持描述一个数字系统的过程。在这样的系统中通过赋予每个门描述一个门电路作为输入的信号,并且给它产生的信号命名,处理就开始了。要求每次信号发生变化时,它的名字通过总线103被广播至所有的阵元,并期望的输入信号的名字进行比较。如果发现匹配,则把信号的新值记录在阵元中的数据流寄存器位中。当所有的信号变化都已被记录之后,使所有的阵元并行读出一个控制字,该控制字告诉它们的数据流怎样当前的输入集来计算输出。使这些计算并行执行,并使其结果与局部门电路中的原值相比较。把输出改变了的阵元的所有的门记录在数据流状态位中。使一个外部控制器对所有的阵元进行询问,并要求下一个改变了的门。然后,象原来说的那样,把适当的信号名和信号值从该阵元广播给所有的其它阵元;然后重复这个过程,直到不再有信号变化或者过程停止为止。
另一个过程为目录名查找。名字被存贮在阵元存贮器102中,使得所有名字的第一个字母都可以和广播数据地址总线103上的希望的被广播名字的第一个字母相连。通过我们提供的控制特性,把所有未匹配阵元关掉。接下来再比较第二个字母,为以后的几个字母(字符)都重复进行这样的比较和发断步骤,直至不再有工作着的阵元保留,或者已到达字尾。这时,剩下的阵元单元即为被查寻的单元,所希望的数据索引值由一个定序读出。
图4中示出了一种基本阵元结构,其中包括多个并行处理器,存贮器和阵元单元,它们被安置在一个单独的硅片中的一行上作为一个可以形成一个SIMD子系统的并行阵列的一部分,用来表示该系统的控制结构。图中还示出了控制处理器和管理微处理器。在图4中,与图中标为阵元阵列的部分位于同一芯片上的还有存贮器和并行处理单元逻辑。每个存贮器为n位宽,最好为我们说过的一个字符宽即8(9)位,但是概念上也有一个字宽的多倍字长宽度存贮器。这样,并行阵元处理器的存贮器部分最好为8(9)位宽,或者(6位、32位宽。鉴于目前的CMOS加工技术,我们倾热于每个阵元处理单元使用8位或称一个字长宽的相联存贮器(9位宽的字节带有自检功能)。这些功能器与相应的一个处理单元直接地一一对应地相联,上述的处理单元包括一个ALU,参考寄存器(A和Q用于掩蔽),和一个闩锁电路104(图4中为SP)以及状态寄存器107和数据流寄存器A105和Q106(图4中的DF),它们在图2中的阵元示意图中已详细地作了表示。DRAM与每个阵元处理器的逻辑不会有争夺任何争夺互连网络的问题,其原因是在多位宽的DRAM存贮器与它自己在芯片上的处理单元之间有着直接的、一一对应的联系。
从图4中可以看出,滑动B寄存器闩锁电路(SR)104在逻辑上位于存贮器与相应的处理单元的ALU的逻辑电路之间,这个闩锁电路实际已成为每个处理单元沿着阵元阵列的一个耦合端口。每个阵元芯片包括许多个排列成一行(图中画线直线点线)用于与阵元控制装置进行通讯的并行阵元处理单元。各个存贮器都有一根矢量地址点线,一个数据矢量地址寄存器控制着送至每个存贮器的数据。
图4中还示出了主机或者微处理器电路板MP与子系统控制器的互连情况。在我们的实施例中,MP为装有PS/2系统的386微处理器。全局指令通过上述子系统控制器到达一个封装程序处理器(CRP),该处理器(CRP)再为指令定序器402和执行控制电路403提供指令,指令定序器所调用的具体微码由执行控制电路(403)加予执行。这个指令定序器在功能上与一个控制器相类似。在封装程序处理器CRP内部我们还提供了局部寄存器405,该寄存器与局部寄存器ALU(图中未示出)一起提供广播给阵元阵列406中的所有阵元的所有寻址信息的基地址。这样,所有的阵元都在一个ALU中执行地址计算而不使用阵元资源,亦即不使用阵元的执行周期。这个重要的补充给阵元单元增加了控制上的灵活性,从而能执行一些特殊任务所需的忽略(doze),禁止和其它控制功能,并允许阵元与任何广播指令或者数据函数分开。
装入了微码407的指令定序器402对阵元阵列进行广播,从而在主程序微处理器MP和封装程序处理器CRP运行时间库408中的封装程序确定的SIMD指令序列下进行处理,这样,可使SIMD能处理包含在阵元序列中的数据。
通过子系统接口提供给微处理器MP的指令为一些高级处理命令,如通过微处理器MP的子系统控制器传送给微处理器的Start Process、Write Obser、以及Read Result。这种微处理器可以认为是图4,5,6和7中所示的主系统或者子系统结构中的控制处理器。应该理解的是这个单元可能是一个具有外围输入装置(如键盘)和显示单元的独立单元。在这种独立体系中,系统MP可以是沿图7中所示的线插有定序器卡(用于为封装程序处理器设置配置)和处理器阵列卡的市售PS/2。程序库411包括用来时运算进行整体控制的一些程序序列,如CALL(),Kalman,Conrolve,及Nav.Update.Update.由用户程序选择这些程序,这样,整体控制可以在一台外部主机的控制下或者在装入MP中的用户程序412的控制下进行。在MP存贮器中设有数据缓冲器43,用于把数据送入和送出并行阵元处理器系统。指令定序器402被配置成既能执行来自MP的控制串,又能执行驻留在封装程序运行时间库存贮器408中的封装程序。有些这种程序中包括来自封装程序运行时间库408中提供的封装程序的CALL(,),LoadBlock,Sin,Cos,Find,Min,Range Comp.及Matrix Mulfiply等等。
CRP中还有用于对低级函数如Load,read,Add,Muttiply,及Match等进行执行控制的微码407。
我们建议为每个处理单元提供一种外部FOR/NEXT控制。我们还提供一种决定性的点字节的正常实施。
使用我们提供的在系统中建立宏的决定性方法可以允许阵元分组及GROUP控制。另外,还提供了一种局部忽略功能来容纳各个阵元处理的变化。
用户如果要求处理器阵列执行时,原始命令、地址及散播数据必须要提供给阵元处理器阵列。
系统的每个部分使用的具体函数由需解决的任务确定,并在对用户程序进行编译时设定。
通过一个相当常见的问题可以表现出系统的灵活性。以短阵相乘的问题为例
这可以被描述成下面的问题:
这个问题可由下面的语句来解决。与这些语句紧邻的是传递次数及句数传递的时钟周期数,这里给出的仅为参考性实例:
注:#定点(4字节)/浮点(1+4字节)
参阅上面的实例可以看出,上面的08语句指出的任务需要98%的周期时间。因此,它根据赋予并行阵元处理器的SIMD结构。其它的处理占2%的周期时间,因而被保留在微处理器内的体系中。
因此,对这个矩阵乘法的实例作一下回顾可以看出:具体执行过程将被赋给MP、CRP、LR或者阵元阵列(在编译时,每个语句都将产生在具体的系统位置上执行的运算)。
在上述这个矩阵相乘的实例中,01语句将赋给主处理器MP,02、05、10、11、13、14、15和17语句将赋给局数寄存器LR,03、04、06、12、16、18和19语句将在封装程序处理器CRP内部执行,其它耗时的矩阵处理将在单指令下赋给阵元阵列执行,08语句也赋给阵元阵列执行。
图5。中示出了一种装有大量并行阵元处理器的多并行阵元处理器系统510。在最佳实施例中,我们建立了一配置有1024个并行处理器。并且1024个处理器具有2至4块SEM电路板的SIMD系统,该系统可用于多目标跟踪,传感器及数据汇合,信号处理、人工智能、卫星图象处理、图形/目标识别,里德.沙勒蒙(Reed Solomon)编码/解码运算等。每个电路板512可以插入带有楔形锁定滑槽514插装式系统舱513中。电路板上装有插入拨出杆516,这样,当盖板517盖紧时,它将有效地在滑架上固定住一个具有32至64M位的存贮器,其工作能力大约为每秒二百万次运算。整个系统相当紧凑,由许多阵元构成的阵列被插入到侧板518中,该电路板上还有允许多块电路板互连的逻辑电路。具有32兆存贮器的处理器做在4块SEME电路板上,重量大约只有30磅(约12.62公斤)。电源由图中所示的电源519提供。经空气冷却的处理器的电力消耗大约为280瓦。每个SIMD系统都有二个I/O端口250,用于与相当的主计算机或其它部分进行信道适配通道。图中所示出的多并行阵元处理中每一个均由4个逻辑页面构成,使用标准模数的设备封装和总线结构(如PI,TM和IEEE488总线与外部存贮器相连,并能通过I/O端口与一台任务计算机的存贮器总线相连,也能被看作是任务计算机存贮空间的伸展。
图中示出的多并行阵元处理器其包括1024个并行处理单元,每个处理器都有32千字节的局部存贮器,与阵元并行处理器相连的通信为并行8位或者字符宽度19位)。
每个阵元中的处理器与其它的相邻处理器以及在页面之间通过一个互连网络交换数据,上述的互连网络最好为一个纵横制网络但也可以是滑动纵横制、混合式、底3N正方体或者座8N正方体网络。
系统的各个阵元处理器都被装在二组共4块电路卡上,PS/2微处理器在一块电路卡上,封装程序处理定序器则在包括着附图6和7中示出的系统的四块电路卡中的其余卡上。多个阵元100或者阵元卡512也可以被设置成与封装程序处理器CRP脱离,从而根据数据状态在与定序器卡CRP703的执行控制部分相连的闩锁电路104和局部寄存器405的控制之下进入或退出运算。这样,阵元处理器可以独立地执行与溶点运算有关的定位与规格运算。
正象下面要讲述的那样,众多的处理器由一个共同的定序器加以并行控制。定序器卡703中包含阵元处理器的控制器CRP,可能使阵元执行一串以和传统的位串行处理相似的字节串行方式编码的旨在SIMD处理器阵列上执行的指令。控制器共有三层。与现代处理器一样,阵元的宏-控制被进行微编码后并行传送到所有的阵元中。宏控制和阵元与相同的时间系统CLk同步,这样,由定序器控制的函数可以在相同的时钟时间上被执行。给宏控制定序器输送命令是封装程序处理器的功能。定序器卡703是一个经过硬连成的控制器,它在大部分功能中执行循环控制命令,并且循环地开始新的宏控制序列。该控制器通过它的封装程序库408及其循环功能使阵元得到很好的输入,且不受命令的限制。封装命令程序处理器CRP控制器包含一个很大的宏集合,它们将被主系统调用,在子系统中起到主管理阵元控制器的作用。这是阵元阵列的最高控制系统,它是一个管理着阵元阵列的活动386微处理器。在某一给定时间,阵列中的所存单元都执行着相同的指令,虽然处理器子集可能对控制流的反应不一。
具体的反应有多种变化,因此,根据每个阵元的字节控制功能(忽略、禁止等)规定了一定的局部自治。在编程时可以利用这种局部自治,在程序编译过程中可以在系统的控制之下进行这种局部自治。
此外,正象上面所讲的那样,还有局部存贮器寻址自主性。SIMD控制器定序器提供一个共同的地址,让所有的阵元来使用。每个阵元可以局部地增大地址,从而可以提高它进行与数据有关的存贮器访问的能力。
此外,一个阵元既可以参加也可以不参加阵列活动,视其局部位置而定。
有了这一特性,现在可以在SIMD处理中引入分组这一慨念了。通过使每个阵元把它自身赋予多个组中的一个或多个,处理可以根据这些分组来进行,其中配置上的变化基本上没有。在一个实施例中,在某一时间只有一组或者一个组的组合是有效的,其中每一个都执行着相同的SIMD指令串。有些操作只需要阵元的一个子组或者一组阵元工作。编程时可以利用这一能力。局部参与自主性就这样起作用。很显然,阵元越多,运算就越好。
增加参与的阵元的数量的一个方法是使每个阵元执行它自己的指令流。实际上,这是SIMD中的MIMD。现在,就可以相同的SIMD机器基本配置成一台MIMD机器或者一台另一个不同配置的机器,原因是使阵元根据它自身的指令序列来工作了。
由于每个阵元都可以有其自己的序列,因此在阵元级对一个非常简单的指令集进行解码是可能实现的,这将允许更多的局部运算发生。能为本功能找到原始利用场合的领域是作出复杂决定,而简单的定点运算则可能是程序员感兴趣的另一个领域。
一个简单的这样的程序能把一个阵元程序中的几块(比方说不超过2K)装入阵元存贮器102,这可以在SIMD控制器卡103从一个具体的XYZ地址通过执行控制装置开始局部执行时执行。在控制器对时钟信号计数时,或者通过监视图4中所示的状态汇集(SF)寄存器测试任务完成信号时,上述过程还将结束。
状态汇集(图4中的SF)利用了每个阵元的闩锁电路104。每个阵元都有一个加载后可反映该阵元的状态条件的闩锁104。SIMD控制器通过监测阵列状态线测试这些闩锁中的集合值(每个闩锁器电路有一个值)。这个阵列状态线是来自各个阵元状态闩锁电路的值的逻辑组合。
在下面的例子中,我们假定想把一个大于250的值调整在500>×7=250的范围内。下面的程序将使用状态汇集来检测任务是否结束。
if VALUE<500 then TURN YOUR PICKET OFF
STAT<-PLCKET OFF CONDITIDN
1F STAT FUNNEL=OFF then fiaished…
VALUE<-VALUE-250
Repeat
因此,多并行阵元处理的组态可以象一个SIMD处理器一样可通过许多途径加以调整。在最佳实施例中,上述的这种SIMD机器被编程成以传统的方式执行一串指令并在SIMD控制器或定序器的总控制下,以和传统的处理器相似的串行格式编码成在SIMD处理器阵列中执行。在应用低别上,这是由矢量或者与矢量类似的指令来实现的,矢量既可以在处理器内也可以在处理器之间被进行处理。矢量指令可以和多条宏指令(典型情况下为6至10条这样的指令)相加。
最佳实施例中的系统正如图6中所示的并行处理器子系统的功能框图所示。子系统定序器通过被主机接口控制电路413控制的系统I/O端口起到与一个SIMD程序相似的作用,处理单元的功能由高函数宏加以控制。存贮器寻址能对8位(即一个字节宽度)的数据流进行,楔8算术逻辑电路用于各种函数运算(逻辑、加、乘和除)。对于将点格式以及独立“睡眠(sleep)”的自主阵元运算,忽略状态及分离寻址,也作了规定。
图7中示出了子系统控制器的结构。每块处理器阵列电路卡512(本子系统中示出了4块,也可能减少到2块SEM E块)都与定序器CRP703相连,CRP703又与子系统控制器702相连,子系统控制器702再通过705(至相应的宏点线706接口)接入一个主存贮器系统或者接入配置中的另一个子系统。在本最佳实施例中,该子系统控制器是IBM公司生产的PS/2(IBS的商标)通用微处理器单元,采用英特尔(Intel)386处理芯片,有4兆存贮器。个人计算机微处理器MP702通过子系统中的微信道型总线705、706与定序器电路卡相连。
很显然,根据上面的示教,对本发明还可以作许多变型和改进,因此,申请人相信后面的权利要求书将实际地而不是具体地描述本发明。
Claims (39)
1、一种并行处理系统,其特征在于:多个阵元单元,每个阵元单元都有一位并行处理单元与一个局部存贮器进行组合,上述的局部存贮器与用于在所有的阵元单元中与相联方式对信息进行并行处理的处理单元相连,其中每个阵元单元适合于执行一个单元的相联处理。
2、根据权利要求1的并行处理系统,其特征在于:上述的多个阵元单元的存贮器被设置成一个阵列,带有存贮器的阵元阵列中包括一个集合相联存贮器。
3、根据权利要求1的并行处理系统,其特征在于:在一块硅基片上形成许多阵元单元,这些阵元单元构成一个阵列,毗邻的阵元单元并排设置,这样,在一块基片上就形成一个具有许多存贮器的阵元处理阵列,每个这种处理单元都可以是一个字节宽的列内容可寻址存贮器,上述这些存贮器被安排成一个逻辑行或者逻辑阵列,另外还有用于在阵元单元之间双向地传送数据以及把数据向外送出的邻元通讯通道。
4、根据权利要求1的并行处理系统,其特征在于:一块具有许多阵元单元和存贮器的阵元处理器阵列存贮器芯片,在每个阵元的处理单元与存贮器之间以及阵元单元之间都有数据流通道。
5、根据权利要求1的并行处理系统,其特征在于:许多的阵元单元被安排成一个阵列,供数据在阵元单元之间流动的通道具有一一对应的存贮器,阵列中的每个处理单元的左边或右边都有相邻的阵元单元,滑动装置在相隔较远的单元之间提供一种滑动通讯。
6、根据权利要求5的并行处理系统,其特征在于:滑动装置能在一个周期内通过阵元地址位置把信息转送到一个非毗邻单元,上述的阵元地址位置在信号到来之前对要传送的信息而言是不透明的,上述的信息将要由收到它的最近的工作着的阵元接收。
7、根据权利要求6的并行处理系统,其特征在于:如果在传送周期之前通过把中介的阵元单元关掉的方法使中介单元成“透明”,那么滑动装置通过沿着“关断”的阵元向一个非邻位置送信息可以使能一种滑动功能,该功能使一个第一阵元单元向远处的一个阵元传送信息。
8、根据权利要求6的并行处理系统,其特征在于:沿着格栅、二维网孔或者在阵列中的三维方向线性地传送数据的装置。
9、根据权利要求1的并行处理系统,其特征在于:每个阵元单元都有一个能访问与之相连的局部存贮器的处理器;具有字符宽度、多倍字符宽度的数据和指令能在一个系统时间周期内在阵元单元之间流动。
10、根据权利要求1的并行处理系统,其特征在于:每个阵元芯片都有自身的局部存贮器,这些存贮器在阵元单元阵列中提供了字符宽度的集合相联存贮器,为每个局部存贮器至少提供有32千字节的存贮器,有16个阵元单元被提供为线性子阵列的节点。
11、根据权利要求2的并行处理系统,其特征在于:一根多字节宽的用于阵元单元之间进行通讯的广播总线,使所有的阵元在同一时刻看到同一数据;以及在这根广播总线传送阵元控制和地址传播传送。
12、根据权利要求2的并行处理系统,其特征在于:阵元单元的局部存贮器可以是存贮器阵列中的DRAM CMOS存贮器,它通过删除存贮器后面的列多路分离就可支持行一列访问,并能提供一个能读出一行存贮器阵列而使数据并行流动行地址。
13、根据权利要求2所述的并行处理系统,其特征在于:存贮器除了数据之外还能包含“第三个比特”或叫“第三态”,这样,逻辑电路可以识别出逻辑“1”,逻辑“0”和“忽略”;集合相联存贮器的存贮阵列中连续的存贮位置上都包含着“第三态”。
14、根据权利要求1所述的并行处理系统,其特征在于:用于为阵元单元的单独运算提供控制功能的阵元单元控制单元。
15、根据权利要求1所述的并行处理系统,其特征在于:局部存贮器具有多比特的二进制基准存贮地址。
16、根据权利要求1所述的并行处理系统,其特征在于:一个外部控制存贮和控制装置,该装置用于实现这样的控制功能,即中止状态输出满足一个特定条件的各个阵元单元中的操作的功能、忽略功能和禁止功能以及根据阵元单元中的条件对存贮器的使能写以及在从上述的外部控制存贮器查询之后提供给阵元单元的控制功能。
17、根据权利要求2的并行处理系统,其特征在于:阵元单元中的每个本地存贮及处理单元都具有字长转送装置以及输入用于查找存贮器中的信息的数据和掩蔽码的装置;其中还提供了用来对存贮器寻址从而执行检索的装置、以及用于输入用来在存贮器中的N个字中找出一个字的检索中使用的数据和掩蔽码的装置;其中在匹配位置上的一根匹配线的电位将升高,一个分离的操作将读取或选取第一个匹配,另外还配备有用于进行广播运算的广播装置,在上述的广播操作中,升高了的选中线将指示出参与状态,广播数据将被复制到所有选定的字位置上。
18、一种在具有一个外部控制器和多个含有逻辑门、寄存器和存贮器的处理单元的并行处理系统中保存数字系统的描述的方法,其特征在于:
把数字系统的描述作为各个门当作输入接受的信号表赋予每个门,并对这些门产生的信号命名,
每次当一个信号发生变化时,需要把它的名字广播给所有的处理单元,并且与一个预期输入信号的名字作并行比较,
接下来判定是否发现匹配,并在有关处理单元中把信号的新值记录到一个数据流寄存器中,
重复上述步骤直至所有的信号变化都被记录下来为止,接下来,使所有的处理单元并行地读出一个控制字,该控制字告诉数据流怎样从目前的各输入中计算出输出,
使上述的计算并行地进行,把结果与来自逻辑门的原有值相比较,
把处理单元中输出发生了变化的所有门记录在数据流状态寄存器中,使外部控制器对所有的处理单元进行询问,然后再要求下一个发生了变化了的门,
把来自该处理单元的适当的信号名字和值广播给所有的其他处理单元,并且重复这一过程直到不再有信号变化发生或者过程停止为止。
19、一种使用一个具有许多控制单元和多个用来传送数据和进行控制的本地存贮器的并行处理系统的方法,其特征在于:
把字典名字存贮在一个处理单元存贮器中,从而使所有名字的第一个字母能与广播给并行处理系统中的许多处理单元的预期广播名字的第一个字母进行比较,
采用的控制特性使所有未匹配的处理单元的均被关断,接下来再比较第二个字母,对每个字母(字符)都重复这种比较和关断过程,直止没有工作着的处理单元留下或者到达该字的未尾为止,而上述的各处理单元发出一个查询,从而使预期的数据的索引值被从处理单元中读出。
20、根据权利要求1的并行处理系统,其特征在于:每个处理单元包括:ALU.掩蔽寄存器、闩锁电路以及与每个处理单元中的本地存贮器成一一对应地相连的状态寄存器(SR)和数据流寄存器(DF)。
21、根据权利要求1的并行处理系统,其特征在于:本地存贮器为多位宽的DRAM,每个阵元处理单元的逻辑电路与上述的DRAM本地存贮器做在同一块硅基片上;在上述的局部存贮器与其处理元件之间有直接的一一对应的连接。上述的本地存贮器具有许多拥有多位地址的单元。
22、根据要求1的并行处理系统,其特征在于:每个处理单元都配置有多个掩蔽码寄存器和一个闩锁电路,设置上述闩锁电路是使之为每个处理单元取得沿着一条上述的多个处理单元公共的通讯线的连接端口的作用。
23、根据权利要求1的并行处理系统,其特征在于用来控制该系统中各个阵元处理单元的状态的外部控制定序器和本地控制寄存器装置。
24、根据权利要求23的并行处理系统,其特征在于:上述的多个阵元具有自制权,也可以被设置成一个由上述的阵元单元形成的相连单元阵列。
25、根据权利要求24的并行处理系统,其特征在于:上述的系统可以被设置成SIMD和MIMD系统,许多组上述的多个处理单元被赋予一个可编程结构,其中,系统的各个单元都有一定程度的局部自制权。
26、根据权利要求23的并行处理系统,其特征在于:一个主处理器系统,该主处理器系统通过一条总线与上述的外部控制定序顺进行通讯,该主系统还具有使全局指令被上述的并行处理系统执行的装置。
27、根据权利要求23的并行处理系统,其特征在于:上述的外部控制定序器与一个微码存贮器相连,通过封装的功能程序可以对上述的微码存贮器进行编程。
28、根据权利要求26的并行处理系统,其特征在于:上述的定序顺被提供有用于控制通过总线与上述定序器相连的处理单元的功能的高函数宏对系统中的本地存贮器进行的存贮器寻址能使字长宽度的数据流和模8算术逻辑被用于逻辑、加乘和除函数,对于上述并行单元中的浮点运算以及通过对各个阵元处理单元进行分别寻址实现的单独的“睡眠”及“打盹”状态也作了准备。
29、根据权利要求26的并行处理系统,其特征在于:函数的运算可以通过程序定位,可以在上述主处理器系统,具有封装程序的上述外部控制定序器、上述局部存器装置或者在上述的多个阵元处理单元中进行;需要对多个数进行扩展的处理的单独指令被赋予配置成SIMD处理的上述的多个处理单元。
30、根据权利要求24的并行处理系统,其特征在于:系统中的处理单元被连接成处理单元阵列,该阵列中的处理单元具有可编程的局部自制权;每个处理单元可以在它自身的指令流控制下工作,也可以根据数据条件进入或者退出与其他处理单元相连的操作;该系统中的各个处理单元可以独立执行与浮点运算有关的定位和正规化运算。
31、根据权利要求23的并行处理系统,其特征在于:上述的外部控制定序顺可以被设置成可以通过一个封装程序运行库提供的封装程序执行CALL(),Load,Block,Sin,Cos,Find,Min,Range,及Matrix Multiply等运算。
32、根据权利要求31的并行处理系统,其特征在于:上述的封装程序用被提供用来执行控制、Load、Read、Add、Multiply和Match等操作。
33、根据权利要求2的并行处理系统,其特征在于:处理单元可以在一个相邻处理单元的阵列中以及在系统中的各页面之间通过一个互连网络交换数据。
34、根据权利要求2的并行处理系统,其特征在于:为阵元阵列提供有一个外部控制处理器;微控制码被并行传送至上述阵列中一个阵元处理器组中的所有阵元中;上述的控制处理器与阵元处理单元和相同的时钟系统保持同步,这样,由外部控制处理器控制的函数能在相同的时钟时间内执行。
35、根据权利要求34的并行处理系统,其特征在于:在上述的阵元阵列的外部控制器上方有一个通过微通道总线与该外部控制处理器相连的总控系统处理器,该总处理器管理着阵元单元的活动;该系统能连接成这样,即在某一给定时刻,阵列中的所有阵元处理单元执行着相同的指令,虽然处理器的子集可能对控制流有不同的反应。
36、根据权利要求1的并行处理系统,其特征在于:许多个阵元并行处理单元沿着一根地址总线排列,与一个外部阵元控制器进行通信;阵元系统中的各个本地存贮器都有相同的矢量地址;一个用来控制什么数据通过阵元系统的每个本地存贮器和控制与阵元控制器的通讯的数据矢量地址寄存装置;各存贮器共有一根矢量地址总线,数据矢量地址寄存器控制着什么数据通过每组关联存贮器。
37、根据权利要求2的并行处理系统,其特征在于:许多个阵元单元被安排在一个阵列中,为数据在具有通讯路径的阵元单元之间流动提供通道,上述的通讯路径为阵列中的阵元与其他阵元进行多位通讯提供了方法和装置;同时还提供了用来从一个阵元向其他任何阵元传递信息的连接路径。
38、根据权利要求37的并行处理系统,其特征在于:通过用线或点式连接的阵元构成的N维阵列可以把信息从一个地方传送到另一个地方。
39、根据权利要求2的并行处理单元,其特征在于:一小部分的本地存贮器可以这样设置,即该部分中每一位置上都可以对一个给定码型作匹配比较。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61159490A | 1990-11-13 | 1990-11-13 | |
US07/611,594 | 1990-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1061482A true CN1061482A (zh) | 1992-05-27 |
CN1050919C CN1050919C (zh) | 2000-03-29 |
Family
ID=24449647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN91109637A Expired - Fee Related CN1050919C (zh) | 1990-11-13 | 1991-10-11 | 并行相联处理器系统 |
Country Status (15)
Country | Link |
---|---|
US (1) | US5822608A (zh) |
EP (1) | EP0485690B1 (zh) |
JP (1) | JPH04267466A (zh) |
KR (1) | KR960016880B1 (zh) |
CN (1) | CN1050919C (zh) |
AT (1) | ATE180586T1 (zh) |
BR (1) | BR9104603A (zh) |
CA (1) | CA2050166A1 (zh) |
CZ (1) | CZ280210B6 (zh) |
DE (1) | DE69131272T2 (zh) |
HU (1) | HU215139B (zh) |
PL (1) | PL167329B1 (zh) |
RU (1) | RU2084953C1 (zh) |
SK (1) | SK344091A3 (zh) |
TW (1) | TW229289B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104823164A (zh) * | 2012-12-06 | 2015-08-05 | 相干逻辑公司 | 具有同步指令的处理系统 |
CN105046162A (zh) * | 2014-03-12 | 2015-11-11 | 阿普赛尔有限公司 | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
CN110337369A (zh) * | 2017-04-14 | 2019-10-15 | 惠普发展公司,有限责任合伙企业 | 用于激活信号的延迟元件 |
CN111290787A (zh) * | 2019-06-19 | 2020-06-16 | 锐迪科(重庆)微电子科技有限公司 | 运算装置及运算方法 |
CN112540793A (zh) * | 2020-12-18 | 2021-03-23 | 清华大学 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
CN118432817A (zh) * | 2024-07-02 | 2024-08-02 | 中山大学 | 基于risc-v处理器的量子密钥分发后处理片上系统 |
Families Citing this family (118)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765015A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
US5625836A (en) | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
JP2525117B2 (ja) * | 1992-05-22 | 1996-08-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
WO1996035997A1 (fr) * | 1996-05-22 | 1996-11-14 | Yalestown Corporation N.V. | Processeur parallele |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654593A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
DE59710317D1 (de) | 1996-12-27 | 2003-07-24 | Pact Inf Tech Gmbh | VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.) |
DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
DE19704728A1 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704742A1 (de) | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
US6789212B1 (en) | 1997-04-24 | 2004-09-07 | Edwin E. Klingman | Basic cell for N-dimensional self-healing arrays |
US6021453A (en) * | 1997-04-24 | 2000-02-01 | Klingman; Edwin E. | Microprocessor unit for use in an indefinitely extensible chain of processors with self-propagation of code and data from the host end, self-determination of chain length and ID, (and with multiple orthogonal channels and coordination ports) |
US6803989B2 (en) | 1997-07-15 | 2004-10-12 | Silverbrook Research Pty Ltd | Image printing apparatus including a microcontroller |
US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
AUPO802797A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART54) |
US6985207B2 (en) | 1997-07-15 | 2006-01-10 | Silverbrook Research Pty Ltd | Photographic prints having magnetically recordable media |
AUPO850597A0 (en) | 1997-08-11 | 1997-09-04 | Silverbrook Research Pty Ltd | Image processing method and apparatus (art01a) |
US7724282B2 (en) | 1997-07-15 | 2010-05-25 | Silverbrook Research Pty Ltd | Method of processing digital image to correct for flash effects |
US7551201B2 (en) | 1997-07-15 | 2009-06-23 | Silverbrook Research Pty Ltd | Image capture and processing device for a print on demand digital camera system |
US6879341B1 (en) * | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6484065B1 (en) * | 1997-12-29 | 2002-11-19 | Kawasaki Microelectronics, Inc. | DRAM enhanced processor |
EP0983557B1 (en) | 1998-03-18 | 2019-10-02 | Koninklijke Philips N.V. | Data processing device for executing in parallel additions and subtractions on packed data |
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
US6185667B1 (en) * | 1998-04-09 | 2001-02-06 | Teranex, Inc. | Input/output support for processing in a mesh connected computer |
US6067609A (en) * | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
US6836838B1 (en) * | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
DE19840210A1 (de) * | 1998-09-03 | 2000-03-09 | Fraunhofer Ges Forschung | Verfahren zur Handhabung einer Mehrzahl von Schaltungschips |
AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
JP3439350B2 (ja) | 1998-10-02 | 2003-08-25 | Necエレクトロニクス株式会社 | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
US6658575B1 (en) * | 1999-03-17 | 2003-12-02 | Olympus Optical Co., Ltd. | Voice recording/reproducing apparatus which enters a standby mode while in a communication mode with an external device |
AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
JP2003505753A (ja) | 1999-06-10 | 2003-02-12 | ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング | セル構造におけるシーケンス分割方法 |
US6728863B1 (en) | 1999-10-26 | 2004-04-27 | Assabet Ventures | Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory |
WO2001031473A1 (en) * | 1999-10-26 | 2001-05-03 | Arthur D. Little, Inc. | Multiplexing n-dimensional mesh connections onto (n + 1) data paths |
US6425026B1 (en) * | 2000-02-23 | 2002-07-23 | Teranex, Inc. | Distribution, processing, and reconstruction of variable-sized images using multiple processor arrays |
US6317695B1 (en) | 2000-03-30 | 2001-11-13 | Nutec Sciences, Inc. | Seismic data processing method |
US6452789B1 (en) * | 2000-04-29 | 2002-09-17 | Hewlett-Packard Company | Packaging architecture for 32 processor server |
DE50115584D1 (de) | 2000-06-13 | 2010-09-16 | Krass Maren | Pipeline ct-protokolle und -kommunikation |
US6745268B1 (en) * | 2000-08-11 | 2004-06-01 | Micron Technology, Lnc. | Capacitive multidrop bus compensation |
US20020052868A1 (en) * | 2000-10-04 | 2002-05-02 | Sanjeev Mohindra | SIMD system and method |
ATE437476T1 (de) | 2000-10-06 | 2009-08-15 | Pact Xpp Technologies Ag | Zellenanordnung mit segmentierter zwischenzellstruktur |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
EP1381963A4 (en) * | 2001-02-24 | 2008-02-13 | Ibm | ARITHMETIC FUNCTIONS IN THE TORE AND NETWORK TREES |
KR100620835B1 (ko) * | 2001-02-24 | 2006-09-13 | 인터내셔널 비지네스 머신즈 코포레이션 | 최적화된 가변 네트워크 스위치 |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7581076B2 (en) | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
RU2202123C2 (ru) * | 2001-06-06 | 2003-04-10 | Бачериков Геннадий Иванович | Параллельная вычислительная система с программируемой архитектурой |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
US7069386B2 (en) * | 2001-08-10 | 2006-06-27 | Connex Technology, Inc. | Associative memory device |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US7577822B2 (en) | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
AU2003208266A1 (en) | 2002-01-19 | 2003-07-30 | Pact Xpp Technologies Ag | Reconfigurable processor |
DE10390689D2 (de) | 2002-02-18 | 2005-02-10 | Pact Xpp Technologies Ag | Bussysteme und Rekonfigurationsverfahren |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US9170812B2 (en) * | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US7451143B2 (en) * | 2002-08-28 | 2008-11-11 | Cisco Technology, Inc. | Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data |
US7394284B2 (en) | 2002-09-06 | 2008-07-01 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
WO2004038555A2 (en) | 2002-10-22 | 2004-05-06 | Isys Technologies | Robust customizable computer processing system |
JP2006512691A (ja) | 2002-10-22 | 2006-04-13 | アイシス テクノロジーズ | 改善された熱放散特性を有する非周辺処理制御モジュール |
BR0315613A (pt) | 2002-10-22 | 2005-08-23 | Jason A Sullivan | Sistemas e métodos para fornecer uma unidade de processamento dinamicamente modular |
GB0226249D0 (en) * | 2002-11-11 | 2002-12-18 | Clearspeed Technology Ltd | Traffic handling system |
US20040117374A1 (en) * | 2002-12-16 | 2004-06-17 | Hung Lup Cheong Patrick | Customized design portfolio integrating IP libraries and technology documents |
US7386539B2 (en) * | 2002-11-29 | 2008-06-10 | Taiwan Semiconductor Manufacturing Company, Ltd. | System, method, and user interface providing customized document portfolio management |
US20040107214A1 (en) * | 2002-11-29 | 2004-06-03 | Hung Lup Cheong Patrick | Customized document portfolio system integrating IP libraries and technology documents |
US20040107197A1 (en) * | 2002-11-29 | 2004-06-03 | Shen Yu Yong | System, method and user interface allowing customized portfolio management |
US7464254B2 (en) * | 2003-01-09 | 2008-12-09 | Cisco Technology, Inc. | Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data |
JP3987805B2 (ja) * | 2003-01-27 | 2007-10-10 | Necエレクトロニクス株式会社 | アレイ型プロセッサ |
JP4700611B2 (ja) | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
CN101908001B (zh) * | 2004-04-22 | 2014-05-14 | 瓦拉泰克有限公司 | 多计算机系统 |
JP2006243839A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | 命令生成装置及び命令生成方法 |
JP2009508410A (ja) * | 2005-09-08 | 2009-02-26 | パナソニック株式会社 | マルチデスティネーション・ルーティングを利用したピアツーピア・オーバーレイ通信の並列実行 |
US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
EP1971956A2 (en) * | 2006-01-10 | 2008-09-24 | Brightscale, Inc. | Method and apparatus for scheduling the processing of multimedia data in parallel processing systems |
WO2007082730A1 (de) | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
US20070226455A1 (en) * | 2006-03-13 | 2007-09-27 | Cooke Laurence H | Variable clocked heterogeneous serial array processor |
US8656143B2 (en) | 2006-03-13 | 2014-02-18 | Laurence H. Cooke | Variable clocked heterogeneous serial array processor |
US7657496B2 (en) * | 2006-06-26 | 2010-02-02 | Saffron Technology, Inc. | Nonlinear associative memories using linear arrays of associative memory cells, and methods of operating same |
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 |
US20080244238A1 (en) * | 2006-09-01 | 2008-10-02 | Bogdan Mitu | Stream processing accelerator |
US20080059764A1 (en) * | 2006-09-01 | 2008-03-06 | Gheorghe Stefan | Integral parallel machine |
US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
US7990724B2 (en) | 2006-12-19 | 2011-08-02 | Juhasz Paul R | Mobile motherboard |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US9251207B2 (en) | 2007-11-29 | 2016-02-02 | Microsoft Technology Licensing, Llc | Partitioning and repartitioning for data parallel operations |
WO2010035173A1 (en) * | 2008-09-29 | 2010-04-01 | Nxp B.V. | Visual prosthesis implant |
DE102009025572A1 (de) * | 2009-06-19 | 2010-12-23 | Wolfgang Pree Gmbh | Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen |
US8930896B1 (en) | 2010-07-23 | 2015-01-06 | Amazon Technologies, Inc. | Data anonymity and separation for user computation |
RU2436151C1 (ru) | 2010-11-01 | 2011-12-10 | Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ") | Способ определения структуры гибридной вычислительной системы |
CN104025021A (zh) * | 2011-12-23 | 2014-09-03 | 英特尔公司 | 用于滑动窗口数据收集的设备和方法 |
RU2513759C1 (ru) * | 2012-11-01 | 2014-04-20 | Федеральное государственное бюджетное учреждение науки Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) | Гетерогенный процессор |
RU2614926C2 (ru) * | 2015-07-06 | 2017-03-30 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" | Мультипроцессорная система |
US9875045B2 (en) * | 2015-07-27 | 2018-01-23 | International Business Machines Corporation | Regular expression matching with back-references using backtracking |
TW202301125A (zh) | 2017-07-30 | 2023-01-01 | 埃拉德 希提 | 具有以記憶體為基礎的分散式處理器架構的記憶體晶片 |
US11514996B2 (en) | 2017-07-30 | 2022-11-29 | Neuroblade Ltd. | Memory-based processors |
US10402165B2 (en) * | 2017-08-30 | 2019-09-03 | Gsi Technology Inc. | Concurrent multi-bit adder |
US12124530B2 (en) | 2019-03-11 | 2024-10-22 | Untether Ai Corporation | Computational memory |
US11256503B2 (en) | 2019-03-11 | 2022-02-22 | Untether Ai Corporation | Computational memory |
WO2021033125A1 (en) * | 2019-08-16 | 2021-02-25 | Untether Ai Corporation | Computational memory with processing element row and bank communications |
US11342944B2 (en) | 2019-09-23 | 2022-05-24 | Untether Ai Corporation | Computational memory with zero disable and error detection |
US11468002B2 (en) | 2020-02-28 | 2022-10-11 | Untether Ai Corporation | Computational memory with cooperation among rows of processing elements and memory thereof |
US11500811B2 (en) * | 2020-06-12 | 2022-11-15 | Alibaba Group Holding Limited | Apparatuses and methods for map reduce |
Family Cites Families (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3537074A (en) * | 1967-12-20 | 1970-10-27 | Burroughs Corp | Parallel operating array computer |
US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
US4942516A (en) * | 1970-12-28 | 1990-07-17 | Hyatt Gilbert P | Single chip integrated circuit computer architecture |
US3970993A (en) * | 1974-01-02 | 1976-07-20 | Hughes Aircraft Company | Cooperative-word linear array parallel processor |
US4107773A (en) * | 1974-05-13 | 1978-08-15 | Texas Instruments Incorporated | Advanced array transform processor with fixed/floating point formats |
US4101960A (en) * | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4270170A (en) * | 1978-05-03 | 1981-05-26 | International Computers Limited | Array processor |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4412303A (en) * | 1979-11-26 | 1983-10-25 | Burroughs Corporation | Array processor architecture |
US4314349A (en) * | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
ZA811458B (en) * | 1980-03-28 | 1982-03-31 | Int Computers Ltd | Data processing system |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
US4394726A (en) * | 1981-04-29 | 1983-07-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Distributed multiport memory architecture |
US4468727A (en) * | 1981-05-14 | 1984-08-28 | Honeywell Inc. | Integrated cellular array parallel processor |
DE3144015A1 (de) * | 1981-11-05 | 1983-05-26 | Ulrich Prof. Dr. 7500 Karlsruhe Kulisch | "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit" |
US4498133A (en) * | 1981-12-10 | 1985-02-05 | Burroughs Corp. | Selector switch for a concurrent network of processors |
BG35575A1 (en) * | 1982-04-26 | 1984-05-15 | Kasabov | Multimicroprocessor system |
US4523273A (en) * | 1982-12-23 | 1985-06-11 | Purdue Research Foundation | Extra stage cube |
JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
JPS59146345A (ja) * | 1983-02-10 | 1984-08-22 | Masahiro Sowa | コントロ−ルフロ−並列計算機方式 |
US4739474A (en) * | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
US4814973A (en) | 1983-05-31 | 1989-03-21 | Hillis W Daniel | Parallel processor |
US5146608A (en) * | 1983-05-31 | 1992-09-08 | Hillis W Daniel | Parallel processor array system controlled in response to composition status signal |
US5212773A (en) | 1983-05-31 | 1993-05-18 | Thinking Machines Corporation | Wormhole communications arrangement for massively parallel processor |
US5008815A (en) * | 1983-05-31 | 1991-04-16 | Thinking Machines Corporation | Parallel processor |
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
US4621339A (en) * | 1983-06-13 | 1986-11-04 | Duke University | SIMD machine using cube connected cycles network architecture for vector processing |
US4604695A (en) * | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
DE3506749A1 (de) * | 1984-02-27 | 1985-09-26 | Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo | Matrixprozessor und steuerverfahren hierfuer |
US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
US4901224A (en) * | 1985-02-25 | 1990-02-13 | Ewert Alfred P | Parallel digital processor |
US5113523A (en) * | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4805091A (en) * | 1985-06-04 | 1989-02-14 | Thinking Machines Corporation | Method and apparatus for interconnecting processors in a hyper-dimensional array |
US4967340A (en) * | 1985-06-12 | 1990-10-30 | E-Systems, Inc. | Adaptive processing system having an array of individually configurable processing components |
US5045995A (en) * | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
HU195972B (en) | 1985-07-01 | 1988-08-29 | Richter Gedeon Vegyeszet | Process for producing new diamino-androstane derivatives and pharmaceutical compositions containing them |
US5047917A (en) * | 1985-07-12 | 1991-09-10 | The California Institute Of Technology | Apparatus for intrasystem communications within a binary n-cube including buffer lock bit |
JPS6219960A (ja) * | 1985-07-17 | 1987-01-28 | Nec Corp | 多段構成プロセツサシステム |
US4706191A (en) * | 1985-07-31 | 1987-11-10 | Sperry Corporation | Local store for scientific vector processor |
US4739476A (en) * | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
DE3580481D1 (de) * | 1985-08-13 | 1990-12-13 | Ibm | Mechanismus zur dynamischen zuordnung von bandbreite zwischen durchschaltkanaelen und paketbitstrom in einem nachrichtennetz. |
GB8521672D0 (en) * | 1985-08-30 | 1985-10-02 | Univ Southampton | Data processing device |
US4720780A (en) * | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
US4922408A (en) * | 1985-09-27 | 1990-05-01 | Schlumberger Technology Corporation | Apparatus for multi-processor communications |
US4847755A (en) * | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US4907148A (en) * | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
US4736291A (en) * | 1985-11-22 | 1988-04-05 | Texas Instruments Incorporated | General-purpose array processor |
US4835729A (en) * | 1985-12-12 | 1989-05-30 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus with on-board RAM and address generator apparatus |
US4916657A (en) * | 1985-12-12 | 1990-04-10 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus employing multiple state logic for coupling to data buses |
US4783782A (en) * | 1985-12-12 | 1988-11-08 | Alcatel U.S.A. Corporation | Manufacturing test data storage apparatus for dynamically reconfigurable cellular array processor chip |
US4852048A (en) * | 1985-12-12 | 1989-07-25 | Itt Corporation | Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion |
US4831519A (en) * | 1985-12-12 | 1989-05-16 | Itt Corporation | Cellular array processor with variable nesting depth vector control by selective enabling of left and right neighboring processor cells |
US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
US4925311A (en) * | 1986-02-10 | 1990-05-15 | Teradata Corporation | Dynamically partitionable parallel processors |
US5297260A (en) | 1986-03-12 | 1994-03-22 | Hitachi, Ltd. | Processor having a plurality of CPUS with one CPU being normally connected to common bus |
US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
US4814980A (en) * | 1986-04-01 | 1989-03-21 | California Institute Of Technology | Concurrent hypercube system with improved message passing |
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US4780873A (en) * | 1986-05-19 | 1988-10-25 | General Electric Company | Circuit switching network with routing nodes |
US4809347A (en) * | 1986-07-18 | 1989-02-28 | Hughes Aircraft Company | Computer vision architecture |
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
US5038386A (en) * | 1986-08-29 | 1991-08-06 | International Business Machines Corporation | Polymorphic mesh network image processing system |
US4910665A (en) * | 1986-09-02 | 1990-03-20 | General Electric Company | Distributed processing system including reconfigurable elements |
US4860201A (en) * | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
US5230079A (en) | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
US4985832A (en) * | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5170484A (en) * | 1986-09-18 | 1992-12-08 | Digital Equipment Corporation | Massively parallel array processing system |
CN1008018B (zh) * | 1986-09-27 | 1990-05-16 | 徐肇昌 | 一种具有合作能力的同构型多计算机系统及其合作方法 |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US5010477A (en) * | 1986-10-17 | 1991-04-23 | Hitachi, Ltd. | Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US5175865A (en) | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
US4873626A (en) * | 1986-12-17 | 1989-10-10 | Massachusetts Institute Of Technology | Parallel processing system with processor array having memory system included in system memory |
US5165023A (en) * | 1986-12-17 | 1992-11-17 | Massachusetts Institute Of Technology | Parallel processing system with processor array and network communications system for transmitting messages of variable length |
US4891787A (en) * | 1986-12-17 | 1990-01-02 | Massachusetts Institute Of Technology | Parallel processing system with processor array having SIMD/MIMD instruction processing |
DE3702614A1 (de) * | 1987-01-29 | 1988-08-11 | Standard Elektrik Lorenz Ag | Digitales koppelnetz fuer leitungs- und paketvermittlung und koppeleinrichtung hierzu |
JPS63192153A (ja) * | 1987-02-05 | 1988-08-09 | Agency Of Ind Science & Technol | 並列デ−タ処理装置 |
US4964032A (en) * | 1987-03-27 | 1990-10-16 | Smith Harry F | Minimal connectivity parallel data processing system |
US4933846A (en) * | 1987-04-24 | 1990-06-12 | Network Systems Corporation | Network communications adapter with dual interleaved memory banks servicing multiple processors |
US4933895A (en) * | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
US5170482A (en) * | 1987-08-14 | 1992-12-08 | Regents Of The University Of Minnesota | Improved hypercube topology for multiprocessor computer systems |
US5008882A (en) * | 1987-08-17 | 1991-04-16 | California Institute Of Technology | Method and apparatus for eliminating unsuccessful tries in a search tree |
US4958273A (en) * | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
US4942517A (en) * | 1987-10-08 | 1990-07-17 | Eastman Kodak Company | Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers |
US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
US4872133A (en) * | 1988-02-18 | 1989-10-03 | Motorola, Inc. | Floating-point systolic array including serial processors |
US4896265A (en) * | 1988-03-28 | 1990-01-23 | General Electric Company | Parallel broadcasting method and apparatus |
US4992926A (en) * | 1988-04-11 | 1991-02-12 | Square D Company | Peer-to-peer register exchange controller for industrial programmable controllers |
US5038282A (en) * | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
US5121498A (en) * | 1988-05-11 | 1992-06-09 | Massachusetts Institute Of Technology | Translator for translating source code for selective unrolling of loops in the source code |
US5056000A (en) * | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
US5005120A (en) * | 1988-07-29 | 1991-04-02 | Lsi Logic Corporation | Compensating time delay in filtering signals of multi-dimensional reconvigurable array processors |
GB2223867A (en) * | 1988-09-09 | 1990-04-18 | Univ City | Multiprocessor data processing system |
US4920484A (en) * | 1988-10-05 | 1990-04-24 | Yale University | Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined |
US5041971A (en) * | 1988-11-30 | 1991-08-20 | Bolt Beranek And Newman Inc. | Memory accessing switch network |
US5189665A (en) | 1989-03-30 | 1993-02-23 | Texas Instruments Incorporated | Programmable configurable digital crossbar switch |
US5020059A (en) * | 1989-03-31 | 1991-05-28 | At&T Bell Laboratories | Reconfigurable signal processor |
US5181017A (en) | 1989-07-27 | 1993-01-19 | Ibm Corporation | Adaptive routing in a parallel computing system |
US5049982A (en) * | 1989-07-28 | 1991-09-17 | At&T Bell Laboratories | Article comprising a stacked array of electronic subassemblies |
US5173947A (en) * | 1989-08-01 | 1992-12-22 | Martin Marietta Corporation | Conformal image processing apparatus and method |
JPH0731780B2 (ja) * | 1989-09-08 | 1995-04-10 | 日本碍子株式会社 | 磁気ヘッド用コアの製造方法 |
US5072217A (en) * | 1989-10-31 | 1991-12-10 | International Business Machines Corporation | One-sided crosspoint switch with distributed control |
US5212777A (en) | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
US5239654A (en) | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
US5218709A (en) | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
US5239629A (en) | 1989-12-29 | 1993-08-24 | Supercomputer Systems Limited Partnership | Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system |
US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5175862A (en) * | 1989-12-29 | 1992-12-29 | Supercomputer Systems Limited Partnership | Method and apparatus for a special purpose arithmetic boolean unit |
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 |
US5218676A (en) | 1990-01-08 | 1993-06-08 | The University Of Rochester | Dynamic routing system for a multinode communications network |
US5265124A (en) | 1990-02-15 | 1993-11-23 | Advanced Micro Devices, Inc. | Integrated multi-port repeater having shared resources |
US5142540A (en) * | 1990-03-13 | 1992-08-25 | Glasser Lance A | Multipart memory apparatus with error detection |
US5187801A (en) | 1990-04-11 | 1993-02-16 | Thinking Machines Corporation | Massively-parallel computer system for generating paths in a binomial lattice |
WO1991017507A1 (en) | 1990-05-07 | 1991-11-14 | Mitsubishi Denki Kabushiki Kaisha | Parallel data processing system |
US5136582A (en) * | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
US5253359A (en) | 1990-06-11 | 1993-10-12 | Supercomputer Systems Limited Partnership | Control and maintenance subsystem network for use with a multiprocessor computer system |
US5251097A (en) | 1990-06-11 | 1993-10-05 | Supercomputer Systems Limited Partnership | Packaging architecture for a highly parallel multiprocessor system |
US5367636A (en) | 1990-09-24 | 1994-11-22 | Ncube Corporation | Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit |
-
1991
- 1991-06-15 EP EP91109850A patent/EP0485690B1/en not_active Expired - Lifetime
- 1991-06-15 AT AT91109850T patent/ATE180586T1/de active
- 1991-06-15 DE DE69131272T patent/DE69131272T2/de not_active Expired - Fee Related
- 1991-08-28 CA CA002050166A patent/CA2050166A1/en not_active Abandoned
- 1991-10-01 JP JP3278900A patent/JPH04267466A/ja active Pending
- 1991-10-11 CN CN91109637A patent/CN1050919C/zh not_active Expired - Fee Related
- 1991-10-11 KR KR1019910017964A patent/KR960016880B1/ko not_active IP Right Cessation
- 1991-10-24 BR BR919104603A patent/BR9104603A/pt unknown
- 1991-10-28 TW TW080108435A patent/TW229289B/zh active
- 1991-11-12 HU HU913542A patent/HU215139B/hu not_active IP Right Cessation
- 1991-11-12 RU SU915010148A patent/RU2084953C1/ru active
- 1991-11-13 PL PL91292368A patent/PL167329B1/pl unknown
- 1991-11-13 SK SK3440-91A patent/SK344091A3/sk unknown
- 1991-11-13 CZ CS913440A patent/CZ280210B6/cs not_active IP Right Cessation
-
1994
- 1994-09-06 US US08/301,278 patent/US5822608A/en not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104823164A (zh) * | 2012-12-06 | 2015-08-05 | 相干逻辑公司 | 具有同步指令的处理系统 |
CN104823164B (zh) * | 2012-12-06 | 2019-07-16 | 相干逻辑公司 | 具有同步控制器的多处理器系统以及维持同步的方法 |
CN105046162A (zh) * | 2014-03-12 | 2015-11-11 | 阿普赛尔有限公司 | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
CN105046162B (zh) * | 2014-03-12 | 2018-07-27 | 西部数据技术公司 | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
CN110337369A (zh) * | 2017-04-14 | 2019-10-15 | 惠普发展公司,有限责任合伙企业 | 用于激活信号的延迟元件 |
US10875298B2 (en) | 2017-04-14 | 2020-12-29 | Hewlett-Packard Development Company, L.P. | Delay elements for activation signals |
CN111290787A (zh) * | 2019-06-19 | 2020-06-16 | 锐迪科(重庆)微电子科技有限公司 | 运算装置及运算方法 |
CN111290787B (zh) * | 2019-06-19 | 2022-11-08 | 锐迪科(重庆)微电子科技有限公司 | 运算装置及运算方法 |
CN112540793A (zh) * | 2020-12-18 | 2021-03-23 | 清华大学 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
CN118432817A (zh) * | 2024-07-02 | 2024-08-02 | 中山大学 | 基于risc-v处理器的量子密钥分发后处理片上系统 |
CN118432817B (zh) * | 2024-07-02 | 2024-08-30 | 中山大学 | 基于risc-v处理器的量子密钥分发后处理片上系统 |
Also Published As
Publication number | Publication date |
---|---|
BR9104603A (pt) | 1992-06-23 |
RU2084953C1 (ru) | 1997-07-20 |
CA2050166A1 (en) | 1992-05-14 |
EP0485690B1 (en) | 1999-05-26 |
PL167329B1 (pl) | 1995-08-31 |
US5822608A (en) | 1998-10-13 |
CZ344091A3 (en) | 1995-05-17 |
CN1050919C (zh) | 2000-03-29 |
KR960016880B1 (ko) | 1996-12-26 |
HU215139B (hu) | 1998-09-28 |
HU913542D0 (en) | 1992-02-28 |
HUT59496A (en) | 1992-05-28 |
PL292368A1 (en) | 1992-09-07 |
DE69131272D1 (de) | 1999-07-01 |
JPH04267466A (ja) | 1992-09-24 |
CZ280210B6 (cs) | 1995-12-13 |
EP0485690A3 (en) | 1994-09-21 |
ATE180586T1 (de) | 1999-06-15 |
TW229289B (zh) | 1994-09-01 |
DE69131272T2 (de) | 1999-12-09 |
SK344091A3 (en) | 1995-01-05 |
KR920010473A (ko) | 1992-06-26 |
EP0485690A2 (en) | 1992-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1061482A (zh) | 并行相联处理器系统 | |
US5815723A (en) | Picket autonomy on a SIMD machine | |
US5809292A (en) | Floating point for simid array machine | |
US5805915A (en) | SIMIMD array processing system | |
CN1044646C (zh) | 动态多方式并行处理器阵列体系结构 | |
US5606520A (en) | Address generator with controllable modulo power of two addressing capability | |
US5754871A (en) | Parallel processing system having asynchronous SIMD processing | |
US5966528A (en) | SIMD/MIMD array processor with vector processing | |
US5708836A (en) | SIMD/MIMD inter-processor communication | |
US5768609A (en) | Reduced area of crossbar and method of operation | |
JP2710536B2 (ja) | コンピュータ・システム | |
US5239654A (en) | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode | |
US5588152A (en) | Advanced parallel processor including advanced support hardware | |
US6185667B1 (en) | Input/output support for processing in a mesh connected computer | |
EP0539595A1 (en) | Data processor and data processing method | |
US20050024983A1 (en) | Providing a register file memory with local addressing in a SIMD parallel processor | |
JP2579419B2 (ja) | マルチプロセッサ・メモリ・システム | |
JP2620487B2 (ja) | コンピュータ・パッケージ | |
US7503046B2 (en) | Method of obtaining interleave interval for two data values | |
JPH0635878A (ja) | 単一命令複数データ/複数命令複数データ・プロセッサ・アレイ用コントローラ | |
Spray et al. | PIPADS—a low cost real-time visualization tool | |
JPH07287700A (ja) | コンピュータ・システム | |
JPH0668282A (ja) | 浮動小数点コンピュータ・システム | |
Parhami | Data-Parallel SIMD Machines | |
GB2393288A (en) | method of generating an interleave pattern for work loads in an array of processing elements. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C15 | Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993) | ||
OR01 | Other related matters | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20000329 Termination date: 20091111 |