CN1012297B - 具有内部单元控制和处理的阵列结构 - Google Patents
具有内部单元控制和处理的阵列结构Info
- Publication number
- CN1012297B CN1012297B CN 86106713 CN86106713A CN1012297B CN 1012297 B CN1012297 B CN 1012297B CN 86106713 CN86106713 CN 86106713 CN 86106713 A CN86106713 A CN 86106713A CN 1012297 B CN1012297 B CN 1012297B
- Authority
- CN
- China
- Prior art keywords
- input
- array
- register
- processor
- unit
- 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
Links
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/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/8023—Two dimensional arrays, e.g. mesh, torus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/006—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
本发明揭示了一个处理机阵列,其被排列在单指令多数据处理机中。阵列中的每个处理单元包括能使单元确定是否自己已被选择来完成数学或逻辑运算的逻辑线路。因此阵列中的每个单元能在阵列中的其它单元对于同一指令被闲置时执行这个指令。通过某设备处理机可执行或不执行一个指令,该设备被归并到处理机阵列中并且提供堆栈和补码机构来处理复杂的测试序列。
Description
本发明涉及包含在单元阵列处理机中的相似处理单元的矩形阵列的处理控制,特别是涉及这样一种处理单元阵列和对包含在单指令多数据处理机中的处理单元的控制。
单元阵列处理机已为人们所熟悉,它是比较简单的、每个处理单元仅与其最邻近单元相连结的处理机阵列。许多企业提供这种设备并且这种设备市场上也买得到。一台常规处理机以顺序方式一次处理一个数据项,而一台单元阵列处理机在一单指令流的控制下却能在同一时刻处理许多数据目标。
为了使这种处理机有用,对于任何单独指令数据目标必须是同类型的。这样将相同顺序指令流同时对这些数据目标进行运算才有意义。这种类别的处理机称为单指令多数据处理机(SIMD)。单元阵列处理机可包括一个单元矩形阵列,排列在具有M行和N列的矩阵中。
这些单元计算机同时执行同样的指令,每个单元计算机能对其自己的数据运算。众所周知,这些单元能在所有四个方向上与它们的相邻单元进行通讯,也与外部数据输入和输出寄存器作远距离通讯联系。
其纯效果相当于一组计算机,当它们工作时,能同时对不同数据项进行同样的数学或逻辑操作。
本发明的目的是控制这种处理单元的矩形阵列的处理过程。如同在一单指令多数据(或SIMD)结构中的这种处理机阵列一样,要求其具有一种技术能使其中某些处理机执行一个给定指令,而另一些处理机不执行该指令,特别是对那些不执行指令的处理机,只需使他们闲置就足够了。在被闲置时他们不改变自己的状态。例如,假设某
一处理机阵列在同一时刻可对一个包含16个分量的数据向量进行运算,如果我们希望实现绝对值运算,则对于那些负值,处理机须对该数据求补。对那些正值,就留下不管。所以需要提供一种装置,使其中某些处理机执行指令,就上例而言,是取二进制补码,而另一些处理机则被闲置。
正如将要说明的,本发明的一个主要目的是把决定处理机执行或不执行指令的装置结合到处理机阵列中去,并使之能有效地判断复杂的测试条件序列。与已有技术相比,已有技术的这种处理控制是在阵列外部,或仅对每个单元提供一个控制位。通过将控制器结合到阵列内并且提供多重控制位,整个阵列的联系被减至最小,并可处理多重测试条件,使阵列可在任意确定的部分子阵列内工作,从而改进了性能。本发明的这个特性将在说明书中作更加细致的描述,同时说明在采用已有技术的处理机及其技术来确定哪些单元对一给定的数学或逻辑运算是有效的时,存在有哪些限制。
一种处理机阵列包括排列在有M列N行的矩阵中的多个处理单元,所述处理单元各自在横向和纵向与相邻单元联结以形成所述阵列,所述阵列与为它提供指令的控制器联在一起并与储存数据和指令的程序存储器相联系,所述控制器进一步与一地址发生器联在一起藉以访问与所述阵列中的单元相联接的存储器,同时设备的改进使所述阵列中的每个单元根据所述单元接收到的数据和指令显现出工作状态或闲置状态,包括具有多个从所述控制器接收数据的输入口和一个输出口的算术逻辑装置,逻辑装置包括一个控制寄存器,该控制寄存器与所述输出口联接,并用来接收来自所述控制器用以表明所述操作条件的给定位状态的预定指令,这就是说,如果给定位状态未检测到,所述单元是被闲置着,包括在所述逻辑装置中的装置若能检测到上述给定位状态,则表明所述单元处于所述的运行状态。
图1为已有技术典型的常规并行处理机的简单框图;
图2是一张表,描述了多个处理机完成特定操作所必须满足的一系列条件;
图3系根据本发明的阵列处理机的简单框图;
图4是一详细框图,示出了根据本发明的阵列处理机单元;
图5描述了根据本发明的用于4-行机的一系列纵向屏蔽码;
图6描述了根据本发明的用于4-列机的一系列横向屏蔽码;
图7描述了如图5、6所描述的4×4机的屏蔽码存储图;
图8描述了一个阵列子集的例子;
图9描述了非正交处理机子集。
在详细说明本发明的特征之前,为了指出问题的一般特性,描述一下已有技术的并行处理机将是有益的。
已有许多优秀的文章是关于多种形式的并行处理机的,例如,1985年6月出版的《IEEE Computer》杂志给出了关于并行机的极好分析。此外,1985年7月出版的《High Technology》(《高级技术》),从企业的角度评论了并行处理机。
参照图1,它给出了一常规并行处理机10的框图。并行处理机包括控制器15,它从程序存储器16获得储存的指令。控制器15通过纵向屏蔽码寄存器12、横向屏蔽码寄存器11和地址发生器14与处理机阵列13相联系。如图1所示的横向屏蔽码和纵向屏蔽码均包括通过双向总线与处理机和控制器接口的常规寄存器。
如从图1所见,控制器15可通过纵向屏蔽码12、横向屏蔽码11和地址发生器14与处理机阵列13相联系。阵列13由相似处理单元的矩形集合组成。为简便起见,假定每个处理单元均为1-位的单元,但这不是一个基本要求。
处理阵列的每个单元均与一个存储器相联系,存储器在图中从投
影角度看是位于处理机阵列的后面。为了启动处理机阵列的一部分并进而激活给定数量的单元,与将被启动的列相对应的纵向屏蔽位和与将被选中的行相对应的横向屏蔽位必须被设为选中。所以处理机阵列中位于设为选中的纵向屏蔽码和横向屏蔽码的交叉点处的给定单元是激活的。该交叉点条件或单元内部测试的结果可被传送到单元内部的1位条件寄存器。
上述操作迫使一些单元被闲置并导致阵列完全非高效地使用,因为大量时间被用在选择过程中。另一个困难产生在当人们试图完成一串很复杂的操作时,典型的例子可在高级语言例如Pascal中见到。
假定要实现一系列嵌套的IF-THEN(如果一则)语句。
图2示出了第i个处理机执行一项操作所必须满足的一系列条件。在这里,一组操作从属于另一组操作,而后者本身又是处理机操作的一个子集。可以进一步证实,子集的层数要等到执行时才知道而不是在编译时。因此,按常规的方式区分图1中的阵列是极其困难的。
参照图2,假定在进入上述过程时,整个阵列都在运行。在向量处理机中,可以假定所有i值同时被执行,因为一台向量处理机有16个处理机,每个处理机执行i个值之一。在程序块A中,第i个处理机仅当条件(Ai<Bi)成立时才运行。然后在程序块B中,在那些已运行的处理机中仅当Ci等于Di时才继续保持运行状态。
所以,程序块B仅由满足先前二个条件的那些处理机执行。走出程序块B后,那些未执行程序块B中的代码但仍满足程序块A的条件的处理机将开始执行。也就是说,对于第i个处理机,要把在程序块B中Ci等于Di成立的测试反过来,那就是ELSE(否则)的功能,ELSE意为满足相反条件,并且程序块C将被执行。故程序块A由所有满足Ai小于Bi的处理机执行。程序块B将由那些满足第一个条件也满足条件Ci等于Di的处理机执行。问题的实质是,我
们有一系列子集条件,它先使一部分处理机工作,然后使其中的部分处理机停止工作,虽然在前一阶段中如在程序块B中不工作的处理机中,有些在程序块C中又将运行。注意ELSE条件并不需要重新测试Ci等于Di,而只是对测试的结果求反。
在任何情况下,分成子集的过程原则上可无限地继续,可以有越来越多的测试,每个测试又取下一个子集。此外,在编译时不会知道有多少层存在,简单的理由是一个具有嵌套的IF-THEN ELSE语句集的过程可与另一个由前一个过程调用或访问的过程分别地编译。
因此,本发明的目的是允许在一给定行中的一群处理机能够独立地运行,并且该群处理机可响应一组极复杂的条件,在那里这种测试的数目在编译时尚是未知的,仅在运行时才知道。
图3为根据本发明的具有内部屏蔽码的阵列处理机。显而易见,作为常规并行处理机的重要部分的横向屏蔽码和纵向屏蔽码寄存器未包含在图3中。
在图3中,阵列20包括许多处理机单元,排列成M×N矩形矩阵。这种M×N矩阵是典型的,但不是必要的。处理机阵列通过一个由程序存储器22提供相关存储数据的控制器21来存取。控制器21又与地址发生器24连接,地址发生器24有二个输出,一个被定为最低有效位,另一个为最高有效位,最高有效位被引向译码器23,最低有效位输出被引向阵列20。
正如将要说明的,译码器23具有用于在处理机阵列中选择不同行的多重输出。处理机阵列的每个单元都能够按照单元计算的数据和根据控制器21发出的指令自己启动或停止。此外,处理机执行一项操作所必须满足的条件的数目原则上是没有限制的,不同于在前一例子中只有两个条件,即横向和纵向条件。
此外,正如将要说明的,需要满足的诸多条件在编译时是不需要知道的,这些条件仅在运行时需要知道。程序存储器22、控制器21和地址发生器24均是常规设计,本技术领域的人已很熟悉了。
程序存储器22基本上是由随机存取存储器或RAM器件构成。控制器21提供取指令和执行逻辑,它一般包含对应于在特定处理机阵列上实现的指令集的微程序定序器。像21这样的控制器已被本领域的人所熟知。
典型的地址发生器24是一个计数器或寄存器,它由控制器根据指令对它装入,从而使特定的存储单元可被整个处理机阵列存取。
参照图4,它示出了一典型的处理机单元。图3的处理机阵列由一组这种处理机单元构成。为简便起见假定在图3中有一个处理机矩阵,其中有32行,每行有二个16位处理机。作为例子,这将给出一个包含32×32位处理机的处理机阵列。按照图4,处理机单元的计算部分包括一多端口随机存取存储器30,通过选择读地址和读/写地址,可同时读出A和B两个单元的内容,并且用读/写地址可以去写一个单元。多端口随机存取存储器30标为A和B的输出去到算术逻辑单元或ALU31。ALU31和多端口随机存取存储器30均为常规设计,并且这样的部件已在原有技术中存在。作为一个典型例子,见由Advanced MicroDevices(近代微型设备公司)制造的一种4-位片式芯片2903。
对单元的控制以指令、读地址和读写地址的形式出现;它们均由图3中控制器21发出。从图4可见,ALU的输出被引向缓冲器32,缓冲器的一个输出与多路转换器33相联接,在那里ALU的另一个输出与多路转换器33的另一个输入相联接。多路转换器的输出被接向接受系统时钟的状态寄存器34。状态寄存器34的输出接向缓冲器35,缓冲器35的输出被联到多端口随机存取存储器30的C输入。
状态寄存器还与一状态可编程逻辑阵列(PLA)42连系。可编
程逻辑阵列将在后面解释。多端口随机存取存储器和状态寄存器的状态仅当随机存取存储器写启动(write enable)为真时才可改变。状态寄存器34能容纳来自ALU31的输出信号:进位(C)、负值(N)、零(Z)和溢出(O)。该四种信号的定义仍然根据常规的定义。
在每个处理机单元内部对随机存取存储器写启动信号进行控制是本发明的目的。首先假设随机存取存储器写启动为真,在这种情况下对于一个指令诸如加法指令(ADD),在多端口随机存取存储器中对二个单元寻址,ALU31将操作数相加,将结果送回多端口随机存取存储器30,根据加法指令的结果的进位、负值、溢出和零状态修改状态寄存器34。
现假定在一矩阵或在一阵列中有一些处理机单元将执行加法指令并且另一些处理机单元不执行。认我们分析随机存取存储器的写启动信号。首先当处理机被初始化时,必须向指令可编程逻辑阵列发出足够数量的指令,将控制寄存器40置为全“1”,特别要执行一条指令来POP(弹出)控制寄存器40的状态。每次发出POP指令控制寄存器40就右移一位,把一个1送进msb(最高有效位)。正如从图4可见,有一POP输入指向控制寄存器40。假定控制寄存器的输出总数M为8(这个数目的大小并不重要),当控制寄存器40为全“1”时,也就是说8个1时,用于监控控制寄存器40输出的与门41得到全“1”,因而,随机存取存储器的写启动信号为真。
因此,所有随后的指令将导致多端口随机存取存储器30的装入和状态寄存器34的装入,直到控制寄存器的内容改变。假设根据先前的例子,想要完成一项绝对值运算,这种情况下仅须对负值数据作求补,运算并使其变“正”。将执行下面的指令序列:
从多端口随机存取存储器30读一个单元并原数返回,该数的符号因此被装入状态寄存器34,按接下去的指令,ALU31将被命令完成
某些运算,一项不依赖于测试状态的运算。状态可编程逻辑阵列42则被命令来选择条件,其中状态寄存器34的状态可表明之前的数据是正值还是负值。在此简单事件中仅符号位需要被询问。
所以,符号位将在控制寄存器40的输入处呈现,并且PUSH(进栈)信号将被置为“真”。在此情况下控制寄存器40将左移并且符号将被送入寄存器的1sb(最低有效位)。如果该数据是负值,该符号位将为“真”值并使控制寄存器40保持全“1”。如果数据是正值,其符号位将成为零,此时控制寄存器40将包含一个零。故在数据是负值的情况下,控制寄存器40仍包含全“1”,并且由门41检测出来的随机存取存储器的写启动信号保持为“真”状态。
单元可继续进行处理,例如,可对数据求补码,将其结果写入多端口随机存取存储器30。如果数据是正值,控制寄存器40此时将包含一个零。随机存取存储器写启动为“假”,没有数据送入多端口随机存取存储器30或状态寄存器34。因此,在数据为负值时一系列所需的操作将被完成。对于那些其中数据是正值的处理机,多端口随机存取存储器30和状态寄存器34的状态将不发生变化。
如果要执行附加的测试,则状态可编程逻辑阵列42被用来判断状态寄存器34的位状态,其结果通过按时钟节拍把数据送入控制寄存器的进栈(PUSH)指令从控制寄存器40的右端串行输入口装入。例如,可能有时候想知道结果是否大于零而不是大于等于零或小于零。
在此情况下,第二个位将被装入控制寄存器40,并仅当控制寄存器的所有位保留真值时该单元才能够保持工作。当不再对运算的结果感兴趣时,通过执行POP(弹出)指令可将该位从控制寄存器40中移去,POP指令将控制寄存器向右移一位,一个1被送入左串行输入。同时,从控制寄存器40被移出的位被送入一个位触发器43。
接下去要作的是,把该位的反码送回控制寄存器的右串行输入端,
这是为了实现先前讲过的IF-THEN ELSE结构中的ELSE特性。因此,可以容易地实现这种结构,IFa是真时,则执行一系列运算,ELSE实现另一不同系列的运算,ELSE用来补充完成一个特定测试结果的另一面的情况。
写启动(write enable)机构的另一个特性是可被用来选出许多处理机中的一个使其可通过纵向总线与控制器通讯。如从图3可见,纵向总线是通过双向输送通道与控制器相联系的。
注意,纵向总线通过控制器21可用来同时向许多处理机单元输送数据,它将向那些写入启动线是“真”的处理单元输送数据。相反,控制器21从处理机单元读数据,由于各个单元都可在单总线上输送数据,故仅允许一个处理机单元被启动。因此,可执行导致控制寄存器40被装入的一系列操作,并且假定,这些操作在识别一个处理机单元之后,就从该处理机单元读出,且这种读出将仅发生在那些写入启动线是“真”的处理机单元中。可以看出,自ALU31到纵向总线的驱动器32仅在满足了下面二个条件时被启动:
首先,来自指令可编程逻辑阵列的写入纵向总线信号是“真”,并且随存取存储器写启动亦是“真”。因此,将执行一条指令把写纵向总线置“真”,并从多端口随机存取存储器30读取期望的数据。状态寄存器34可以用常规的4-位并行装入移位寄存器实现,其装入操作发生在装入线为“真”和具有时钟输入的情况下,此时其输入的数据将被传送到其输出。
控制寄存器40是一个常规的随时钟信号作左移位、右移位和并行入/并行出的移位寄存器,如果POP信号为“真”,它向右移位,如果PUSH信号为“真”则向左移位。它有一个从左边输入数据的左串行输入和一个从右边输入数据的右串行输入。
它有一个由LOAD(装入)信号控制的并行输入,用于在中断
或上溢或下溢之后恢复它的状态。如果PUSH、POP、LOAD输入均非“真”,寄存器40的状态不变化。用广义框图形式表示的指令可编程逻辑阵列采取常规设计,并使之满足特定处理机的要求。典型的指令如ADD(加)、SUBTRACT(减)、AND(与)、OR(或)均可由ALU31实现。其它指令还有:数据移动指令,例如对存储器读或写,和读、写纵向总线以及控制寄存器40的操作指令一即,PUSH和POP操作以及选择进入状态可编程逻辑阵列42的条件的指令。
与此类似,状态可编程逻辑阵列42也属于常规设计并被用来检测16组状态寄存器条件,其中包括正或负,大于零、小于或等于零等。这些条件的检测将导致有1位输出被置“真”,且被用作控制寄存器40的右串行输入。控制器21中保存了已被装入到一个处理机单元的控制寄存器40中的位数,用以检测控制寄存器的上溢或下溢。
例如,如果控制寄存器40具有8位,程序试图将第9位推入控制寄存器,则控制器21中的计数器将显示出要存储的位太多了的错误,程序对此的处理可能是终止执行和把控制返回用户,或在各个单元中保存控制寄存器40的状态,或把控制寄存器40的所有位的逻辑“和”(AND)写回控制寄存器中的一个位并把其它位初始化为1。
当足够数量的位已被POP出来时,则控制寄存器将回到其初始状态。对控制寄存器40中任何特定位来说不存在专门指定的测试条件,注意到这一点很重要,因为在控制寄存器中所有的位都被同样地对待。因此,存在一个栈结构,那儿每个测试在控制寄存器内占一个新位,所以,没必要知道在哪一层正在执行一个测试,它可以在运行时间而不是编译时间被简单地确定。
注意下面这点也很重要:对控制寄存器40而言,PUSH(进栈)或POP(弹出)在所有单元中是同时进行的,并且不管随机存取存
储器写启动的状态如何。事实上,写启动是由控制寄存器确定的。尽管在非工作的单元中这将导致将无用的数据送入到控制寄存器,但重要的是被写入控制寄存器的第一个零已足够使单元不工作,在这一情鱿,事实上以后的位在这些不工作的单元中是无关重要的。
通过同时对所有控制寄存器进行PUSH(进栈)和POP(弹出)操作,对不同单元的控制寄存器写入不同数目的位,以及必须找出特殊情况,来确定控制寄存器是否要按照它们的现状来进栈或弹出,就不会有困难。简而言之,不管他们的目前状态如何,所有寄存器同步地进栈和弹出,就能使设计大大简化。
另外还要注意的是:控制寄存器40的所有数据都可以保存并在以后恢复,使得机器可制造成具有交换任务的能力,其中控制寄存器40的状态被作为处理机状态的一部分,当任务停止时它被保存,当任务重新执行时它可以被恢复。
为了使得控制器,如图3所示的控制器21,能与它选择的一行或多行通讯,就必须使随机存取存储器中被选为通讯的单元的写启动置“真”而使随机存取存储器的其它单元写启动置“伪”。这个随机存取存储器的写启动是由门41发出来的,它实际上也是启动处理机工作的信号。因此,问题是当它为“真”时一系列条件怎样提出。从基本上说,必须知道如图3中的机器或处理机阵列20,是怎样被初始化的。
再有,假定处理机阵列含有16行处理机,因此,有16个方形的处理机组合。假设在处理机阵列外部的存储器中有256个屏蔽码集,这些屏蔽码存在于存储器阵列25中。控制器21通过地址发生器24来选择256个屏蔽码集中的一个并把它装入到多端口的随机存取存储器30的一个单元。一旦有一个屏蔽码被输入到多端口随机存取存储器,就可以做一次测试,在此测试的基础上,单元会把随机存取存储器的写入启动置于“真”或“伪”。
模式(Pattern)或屏蔽码模式能用不同方法放置进存储器。方法之一是存在一个只读存储器中,它是每一单元中存储器的一部分,使得模式成为静态。另一个不使用与每一单元相联的只读存储器的解决方法是利用关于控制器21的一个全局存储图(global memory map)。在这一情况下,控制器21输送一地址到地址发生器24,这地址选择存储器中的一行动作。接着,控制器传输数据到所有行并由那些直接写入存储器;但是由于仅有一行被地址发生器23选中活动,模式将被仅储存在这一行内。
所以,随着顺序通过256个地址的每一个的每一行,该模式可能在系统初始化时送入存储器中。在正常的运算时,控制器21能传送一个地址到发生器,这能导致存储器中所有行而不是仅仅选择它们中的哪一行进入工作。因此,这个地址图,如通过控制器可见的,是一个地址集合,其中从处理机阵列的角度来看所有存储器都处于工作状态,以及另一组地址集合,其中仅有一特殊行是工作的,虽然这些对于处理机阵列是未知的,只有控制器21知道。
参照图5,它展示了关于一个4-处理机机器的屏蔽码。这个4-处理机机器被选作为一个例子以使图5所示的总表的尺寸减至最小。每个处理机状态由子图A到P来给出。例如在图5A中没有处理机是工作的。在图5H中在第0、1、2行的前三个处理机是工作的但第3行不工作。在图5P中,所有4台处理机全部工作。马上可以注意到:-1表明工作,在该情况下字的所有位将是1,不工作由零来表示。所以当对一个字测试时,如果此测试是个符号校核,那么-1的符号是一个1,在这种情况下,一个“真”条件将被送入到控制寄存器中并且处理机将工作。
在图5中,无论一行中有多少处理机,数据都是相同的。它用来对整个阵列从纵向上区分处理机。
图6也可称表2,展示了一个四列机器的水平屏蔽码,它用来区分在一单行中不同的处理机。
图7展示了一个用作屏蔽码存储的存储图的例子,一个4-行4-列机器总共有16台处理机,可以用前16个地址保存纵向屏蔽码和接下的16个地址保存横向屏蔽码。
图8展示了形成一个阵列子集的例子。参照图8,假定希望打开那些在1,2,3行与0,1,2列交错处的处理机,首先寻址那些将会选1,2,3行的横向屏蔽码。
回过来再参照图5,可以看到,情况“0”将会打开1,2,3行。所以,一个地址14被送到地址发生器,此发生器将选择纵向屏蔽码集合中的一个,即第“0”组屏蔽码。这个屏蔽码被输入到处理机内,后者测试数据,并将该数据的符号送入控制寄存器内。此时,仅在1,2,3行的处理机是工作的。但是包括这些行中的所有列。
再参照图6,选择0,1,2列的横向屏蔽码将被取出。这是情况H。对应于横向屏蔽码H的地址是地址23,它被送入地址发生器,于是此屏蔽码被取出。由工作单元对它做一符号测试,并将结果送入到控制寄存器。此时,二个位已被输入到控制寄存器,并且那二个位仅对下面三行与右面三列的交点才是“真”的。此时,在那九个处理机上可进行运算,效果与用一组横向屏蔽码寄存器和纵向屏蔽码寄存器并且选出它们的交点是相同的。此时,那些处理机可实现某些运算,并令九个处理机中的完全任意的处理机组合处于运行状态,这是仅简单地取外部寄存器的X与Y的交点所不能得到的。
图9展示了一种情况,用简单的交点法不能选出所希望的处理机。但本发明可以支持这种复杂的构形。
根据上述,可以看到,本发明适合于任何通用的或专用的单指令多数据处理机。研究单元运行选择的动机,是出于在单指令流下能控
制那些处理机运行的需要。在常规的单指令、单数据处理机情况下,每一条数据将被测试并能导致一不同的程序流,但是在一单指令多数据处理机中,只有一个程序流。
因此,为了控制多个处理机对它们各自数据的不同响应,就必须关闭其中的一些处理机使得它们可以不执行某条特定的指令,从而产生对于每条不同数据执行不同的程序流的效果。唯一的其它不同处是:如果同时具有满足条件X与条件非X的数据,在单指令多数据情况下,二个代码部分(即关于条件X的代码与关于条件非X的代码)都将被执行,当然对这些不同的代码部分仅当处理机的数据符合其条件时才会执行。而在常规的处理机中对于给定的一条数据,凡数据满足的一个代码部分将被执行而另一代码部分将被跳过。然而,其效果是一样的。
因此,本发明适合于任意位数的处理机,因为整个处理机可以运行它的数据或不运行它的数据。所以,任何单指令多数据处理机,其中每一处理机具有任意的位数,均可通过本发明的特性来控制。一般使用单指令多数据处理机的应用是图象处理,数据信号处理,矩阵代数和基于规则的专家系统。
因此,对于能够提供设备,使得在一个由类似处理单元构成的矩形阵列中控制其处理过程这一技术,对这方面的专业人员是很明显的。这种处理单元阵列被置于一个单指令多数据结构中,并提供一种设备来使得其中一些处理机执行一个给定的指令而另一些处理机不执行这一指令。特别是对那些不执行这一指令的处理机,只要它们闲置就足够了。
在闲置时它们不改变自己的状态。那些被选的处理机根据所收到的数据来启动处理机并处理输入的数据。
因此,此系统取消了被用在常规的矩形构形的处理机中的纵向和
横向屏蔽码或一位的活动屏蔽码。
Claims (20)
1、一种处理机阵列,包括通常排列在有M列和N行的阵列中的多个处理单元,所述处理单元各自在横向和纵向与相邻单元联结以形成所述阵列,所述阵列耦接到一个向所述阵列提供指令的控制器,控制器与储存数据和指令的程序存储器相联系,所述控制器通常还连接一个地址发生器,以访问所述阵列中的单元,每个单元包括具有从所述控制器接收数据的多个输入端口和一个输出端口的算术逻辑装置,其特征在于,为了使所述阵列中的每个单元根据由单元处理的数据和指令而呈现操作状态或闲置状态,每个单元还包括:逻辑装置,它包括一个多级控制寄存器,寄存器在其一侧连到所述输出端口,因而,所述算述逻辑装置在所述输出端口给出的结果可以储存在所述控制寄存器的各级中,在另一侧,寄存器连到一个装置,从所述控制器接收预定指令,并响应该指令,使得表示所述操作状态的一个给定位状态存入所述控制寄存器各级之一中,所述逻辑装置还包括一个装置,该装置可测出表示所述操作状态的所述给定位状态是在所述控制寄存器的每一级中,并根据结果将该单元置于操作状态而当未在所有级中测到所述给定位状态时将所述单元置于闲置状态。
2、如权利要求1所述的处理机阵列,其特征在于,所述处理机阵列被排列成一单指令多数据阵列。
3、如权利要求1所述的处理机阵列,其特征在于,所述算术逻辑装置包括一个多端口随机存取存储器,该多端口随机存取存储器具有多个输入口,每个输入口用于接收来自所述控制器的控制信号使数据能够被读出或写入所述随机存取存储器,所述随机存取存储器有多个输出与一个算术逻辑单元(ALU)的相关输入相联结,所述算术逻辑装置的一个输入与所述逻辑装置联结。
4、如权利要求3所述的处理机阵列,其特征在于,还包括一个状态寄存器,它与所述算术逻辑单元的所述输出相连系,能存储所述单元处在所述操作状态时执行的计算的结果。
5、如权利要求4所述的处理机阵列,其特征在于,所述逻辑装置进一步包括一个用于将所述状态寄存器的状态译码的可编程逻辑阵列,选中的状态是通过有一个输出连到所述控制寄存器的控制器选择的。
6、如权利要求5所述的处理机阵列,其特征在于,所述控制寄存器具有一个名为POP(弹出)输入的并与所述控制器联结的第一输入,用于使所述寄存器向右移位使被接收的二进制1进入所述控制寄存器,并进一步具有一个名为PUSH(进栈)输入的第二输入,使所述控制寄存器能够将数据左移位以接收一测试条件位。
7、如权利要求6所述的处理机阵列,其特征在于,所述控制寄存器是一个按时钟脉冲进行左移位、右移位、并行进/并行出的移位寄存器,当所述POP(弹出)输入为真时向右移位,当所述PUSH(进栈)输入为真时向左移位。
8、如权利要求7所述的处理机阵列,其特征在于,所述控制寄存器进一步具有一个用于从所述控制器接收向右移位的数据的名为左串行输入的第三输入和用于从所述控制器接收向左移位的数据的名为右串行输入的第四输入。
9、如权利要求8所述的处理机阵列,其特征在于,所述控制寄存器进一步包括一个用以恢复所述控制器控制的所述寄存器的状态的名为LOAD(装入)的并行输入。
10、如权利要求9所述的处理机阵列,其特征在于,所述控制器进一步包括用来计数被推入所述控制寄存器的位的数量以确定所述数量的位是否能被所述寄存器收纳的装置。
11、如权利要求1所述的处理机阵列,其特征在于,所述阵列存储器中储存了示出所述阵列中的处理机单元数的平方的多个屏蔽码,所述控制器通过向所述地址发生器输送一个地址来选择所述屏蔽码中需要的任何一个,表示出用于在其中存储表示所述选中的屏蔽码的数据的所述单元之一。
12、如权利要求11所述的处理机阵列,其特征在于,所述屏蔽码包括第一多个屏蔽码,显示所述阵列中的纵向列M,和第二多个屏蔽码,显示所述阵列中横向行N。
13、如权利要求12所述的处理机阵列,其特征在于,所述程序控制存储器包括多个随机存取存储器,所述控制器是程控定序器。
14、如权利要求1所述的处理机阵列,其特征在于,所述算术逻辑装置包括:
具有多个输入端口和多个输出端口的存储装置,每个输入端口用于从所述控制器接收不同的输入数据;
一个算述逻辑单元,它有多个输入端口和一个输出端口,每一独立的输入端口连接所述存储装置的一个相关的输出端口,
所述逻辑装置包括:
连到所述算术逻辑单元的所述输出端口的用于确定所述单元状态的第一寄存器装置;
连到所述第一寄存器装置和所述控制器的第二寄存器装置。
15、如权利要求14所述的处理机阵列,其特征在于,所述存储装置是具有一个读地址输入、一个读/写地址输入和至少两个输出的随机存取存储器。
16、如权利要求15所述的处理机阵列,其特征在于,所述随机存取存储器的所述输出分别与所述算术逻辑单元的相关输入相连接。
17、如权利要求14所述的处理机阵列,其特征在于,所述第一寄存器装置包括一个用于存储由所述算术逻辑单元完成的算术操作的结果,例如进位、负值、零和溢出之类结果的状态寄存器。
18、如权利要求14所述的处理机阵列,其特征在于所述第二寄存器装置是一个具有第一输入和第二输入的控制寄存器,第一输入名为弹出(POP)输入,用于将一个接收到的二进制1向右移位,第二输入名为进栈输入(PUSH),用于将一个测试条件结果向左移位。
19、如权利要求18所述的处理机阵列,其特征在于,所述寄存器是一个按时钟脉冲进行左移位、右移位、并行进/并行出的移位寄存器,当所述弹出输入为逻辑高电平时向右移位,当所述进栈输入为逻辑高电平时向左移位。
20、如权利要求19所述的处理机阵列,其特征在于,所述控制寄存器还有一个用于从所述控制器接收向右移位的数据的名为左串行输入的第三输入,和一个用于从所述控制器接收向左移位的数据的名为右串行输入的第四输入。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79771885A | 1985-11-13 | 1985-11-13 | |
US797,718 | 1985-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN86106713A CN86106713A (zh) | 1987-05-20 |
CN1012297B true CN1012297B (zh) | 1991-04-03 |
Family
ID=25171618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 86106713 Expired CN1012297B (zh) | 1985-11-13 | 1986-09-23 | 具有内部单元控制和处理的阵列结构 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0223690B1 (zh) |
JP (1) | JPS62119675A (zh) |
CN (1) | CN1012297B (zh) |
AU (1) | AU588394B2 (zh) |
DE (1) | DE3677330D1 (zh) |
ES (1) | ES2005837A6 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0231686A3 (en) * | 1985-12-12 | 1989-06-14 | Itt Industries, Inc. | Cellular array processing apparatus with variable nesting depth vector processor control structure |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US4933895A (en) * | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
DE3853860D1 (de) * | 1987-09-22 | 1995-06-29 | Siemens Ag | Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen. |
EP0390907B1 (en) * | 1988-10-07 | 1996-07-03 | Martin Marietta Corporation | Parallel data processor |
CA2021192A1 (en) * | 1989-07-28 | 1991-01-29 | Malcolm A. Mumme | Simplified synchronous mesh processor |
US6073185A (en) * | 1993-08-27 | 2000-06-06 | Teranex, Inc. | Parallel data processor |
CN1045220C (zh) * | 1996-06-26 | 1999-09-22 | 杨风桐 | 用硼元素和中子寿命测井仪寻求剩余油残余油的方法 |
US6173388B1 (en) | 1998-04-09 | 2001-01-09 | Teranex Inc. | Directly accessing local memories of array processors for improved real-time corner turning processing |
US6067609A (en) * | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
US6212628B1 (en) | 1998-04-09 | 2001-04-03 | Teranex, Inc. | Mesh connected computer |
US6185667B1 (en) | 1998-04-09 | 2001-02-06 | Teranex, Inc. | Input/output support for processing in a mesh connected computer |
CN100419668C (zh) * | 2003-05-23 | 2008-09-17 | 日本电信电话株式会社 | 并行处理设备和并行处理方法 |
JP4562759B2 (ja) * | 2007-09-03 | 2010-10-13 | 京楽産業.株式会社 | アクセス制御装置、アクセス制御方法およびアクセス制御プログラム |
KR101510694B1 (ko) * | 2007-12-12 | 2015-04-10 | 엘지전자 주식회사 | 데이터 처리 장치 및 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56127266A (en) * | 1980-03-10 | 1981-10-05 | Ibm | Method of executing and controlling command stream |
NZ207326A (en) * | 1983-03-08 | 1988-03-30 | Stc Plc | Associative data processing array |
US4580215A (en) * | 1983-03-08 | 1986-04-01 | Itt Corporation | Associative array with five arithmetic paths |
JPH0654505B2 (ja) * | 1983-12-23 | 1994-07-20 | 株式会社日立製作所 | 並列型演算処理装置 |
-
1986
- 1986-09-23 CN CN 86106713 patent/CN1012297B/zh not_active Expired
- 1986-11-04 DE DE8686402466T patent/DE3677330D1/de not_active Expired - Lifetime
- 1986-11-04 EP EP19860402466 patent/EP0223690B1/en not_active Expired
- 1986-11-05 AU AU64834/86A patent/AU588394B2/en not_active Ceased
- 1986-11-12 JP JP61269500A patent/JPS62119675A/ja active Pending
- 1986-11-13 ES ES8603011A patent/ES2005837A6/es not_active Expired
Also Published As
Publication number | Publication date |
---|---|
ES2005837A6 (es) | 1989-04-01 |
JPS62119675A (ja) | 1987-05-30 |
AU588394B2 (en) | 1989-09-14 |
DE3677330D1 (de) | 1991-03-07 |
AU6483486A (en) | 1987-05-21 |
EP0223690A3 (en) | 1988-07-27 |
EP0223690B1 (en) | 1991-01-30 |
CN86106713A (zh) | 1987-05-20 |
EP0223690A2 (en) | 1987-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1012297B (zh) | 具有内部单元控制和处理的阵列结构 | |
CN1267819C (zh) | 计算机系统内部处理指令的装置 | |
Fang et al. | swdnn: A library for accelerating deep learning applications on sunway taihulight | |
CA2313462C (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US4907148A (en) | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory | |
EP0485690B1 (en) | Parallel associative processor system | |
JP3916680B2 (ja) | プロセッサ | |
US5418970A (en) | Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content | |
Muriki et al. | RC-BLAST: Towards a portable, cost-effective open source hardware implementation | |
US20030200378A1 (en) | Providing a register file memory with local addressing in a SIMD parallel processor | |
EP0119319A2 (en) | Sort mechanism for stored digital data | |
KR20180033527A (ko) | 레지스터 뱅크에 저장된 데이터 요소들의 하나 이상의 벡터와 메모리 사이에서 복수의 데이터 구조를 전송하는 장치 및 방법 | |
US4021779A (en) | Microprogram control units | |
US5940625A (en) | Density dependent vector mask operation control apparatus and method | |
Lipovski et al. | Special Feature: Developments and Directions in Computer Architecture | |
Lee et al. | HYTREM-a hybrid text-retrieval machine for large databases | |
CN114072778A (zh) | 存储器处理单元架构 | |
CN105843589B (zh) | 一种应用于vliw类型处理器的存储器装置 | |
Yavits et al. | PRINS: resistive CAM processing in storage | |
US20180121119A1 (en) | Combination storage and processing device | |
Oh et al. | Convolutional neural network accelerator with reconfigurable dataflow | |
Liu | A data sorting hardware accelerator on FPGA | |
Scherson et al. | Multi-operand associative arithmetic | |
CN86106444A (zh) | 单元阵列处理机的地址产生 | |
CN118444981A (zh) | 存储器装置和操作存储器装置的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |