CN86106713A - 具有内部单元控制和处理的阵列结构 - Google Patents

具有内部单元控制和处理的阵列结构 Download PDF

Info

Publication number
CN86106713A
CN86106713A CN86106713.4A CN86106713A CN86106713A CN 86106713 A CN86106713 A CN 86106713A CN 86106713 A CN86106713 A CN 86106713A CN 86106713 A CN86106713 A CN 86106713A
Authority
CN
China
Prior art keywords
array
input
unit
processor
controller
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.)
Withdrawn
Application number
CN86106713.4A
Other languages
English (en)
Other versions
CN1012297B (zh
Inventor
史蒂文·格雷葛瑞·莫顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel USA Corp
Original Assignee
Alcatel USA Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel USA Corp filed Critical Alcatel USA Corp
Publication of CN86106713A publication Critical patent/CN86106713A/zh
Publication of CN1012297B publication Critical patent/CN1012297B/zh
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking 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列的矩阵中。
这些单元计算机同时执行同样的指令,每个单元计算机能对其自己的数据运算。如上所述的单元能在所有四个方向上与它们的相邻单元进行通讯也与外部数据输入和输出寄存器作远距离通讯联系。
有效的使用是,一组计算机设备在其可能时,同时对不同数据项进行同样的数学或逻辑操作。
本发明的目的是控制这种处理单元的矩形阵列的处理过程。如同在一单指令多数据中的或在单指令多数据结构中的这种处理机阵列一样,要求其具有一种技术能使其中某些处理机执行一个给定指令,而另一些处理机不执行该指令,特别是对那些不执行指令的处理机,只需使他们闲置就足够了。在被闲置时他们不改变自己的状态。例如,假设某一处理机在同一时刻运算一个可包含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与处理机阵列10相联系。阵列13由相似的处理机矩形集合组成。为简便起见,假定每个处理机均为1-位的单元,但这不是一个基本要求。
处理阵列的每个单元均与一个存储器相联系,存储器在图中从投影角度看是位于处理机阵机的后面。为了打开一部分处理机阵列并利用其启动给定个数的单元,与将被打开的列相对应的垂向表征码位和与将被选择的行相对应的横向表征码位必须被置于选中状态。所以处理机阵列中的给定单元在选中状态的垂向表征码和横向表征码交点处是现役的。该交点条件或单元内部测试的结果可被传送到单元内部的单位条件寄存器。
该操作使得单元被闲置并导致阵列完全地无效使用,借此大量时间被用在分段处理。另一个困难产生在当人们试图完成一串很复杂的操作时,如典型地在高级语言例如Pascal中遇到的。
假定要实现一系列嵌套的IF-THEN(如果一则)语句。
图2示出了第i个处理机执行一项操作所必须满足的一系列条件。特别是,该操作集已可对另一套本身附属于处理机的操作集有帮助。此外,可以证实附属的层数仅在执行时才知道而不是在编译时。因此,按常规的方式区分图1中的阵列是极其困难的。
参照图2,假定在执行上述过程时,整个阵列都在运行。在向量处理机中,假定所有i值同时被执行,因为一台向量处理机有16个处理机,每个处理机执行i个值之一。在程序块A中,第i个处理机仅当条件(Ai<Bi)成立时才运行。然后,在程序块B中那些现役处理机仅当Ci等于Di时保持现役状态。
所以,程序块B仅由那些满足先前二个条件的处理机执行。走出程序块B后,那些不执行程序块B中的代码但仍满足程序块A的条件的处理机Ci等于Di成立的测试,那就是ELSE(否则)功能,ELSE意为补充并在程序块C将被执行。故程序块A由所有满足Ai小于Bi的处理机执行。程序块B将由那些满足第一个条件也满足条件Ci等于Di的处理机执行。因此根本上讲,有一系列子集条件,先是一部分处理机工作,然后更多的处理机被停止,虽然在第一阶段中,如在程序块B中非现役的处理机其中有些在程序块C中将运行。注意ELSE条件并不需要重新测试Ci等于Di,而只是测试结果的补充。
在任何情况下,分成子集的过程原则上可无限地继续,可以有越来越多的测试,每个测试取接着的子集。此外,在编译时不会知道有多少层存在,简单的理由是一个具有嵌套的1F-THEN    ELSE语句集的过程可与另一个由第一个过程调用或读出的过程分别地编译。
因此,本发明的目的是允许大量的在一给定行中的处理机能够独立地被操作,并且该大量的处理机可响应一组极复杂的条件,在那里这种测试的数目在编译时尚是未知的仅在运行时才知道。
参照图3,其为根据本发明明的具有内部表征码的阵列处理机。立刻注意到作为常规并行处理机的重要部分的横向表征码和垂向表征码寄存器未包含在图3中。
在图3中,阵列20包括一个布置在M×N矩阵如在一矩形阵中的多重处理机单元。这种N×M矩阵是典型的但不是必要的。处理机阵列通过一个已与程序存储器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可被同时读出。并且一个单元在写单元为读/写地址处可被写出。被称作A和B的多端口随机存取存储器30的输出口通向数学逻辑单元或运算器(ALU)31。运算器31和多端口随机存取存储器30均为常规设计并且这样的部件已在原有技术中存在。作为一个典型例子,见由Advanced    Micro    Devices(近代微型设备公司)制造的一种4-位片式芯片的2903。
单元控制进入指令的形式,读地址和读写地址;它们均由图3中控制器21发出。从图4可见,运算器的输出被引向缓冲器32,缓冲器的一个输出与多路转换器33相联接,在那里运算器的另一个输出与多路转换器33的另一个输入相联接。多路转换器的输出被接向接受系统时钟的状态寄存器34。状态寄存器34的输出接向缓冲器35,缓冲器35的输出并联于多端口随机存取存储器30的C输入。
状态寄存器还与一状态可编程序的逻辑阵列(PLA)42连系。可编程序的逻辑阵列将在后面解释。多端口随机存取存储器和状态寄存器的状态仅当随机存取存储器写启动(write    enable)成立时才可改变。状态寄存器34能容纳来自运算器31输出信号:进位(C)、负值(N)、零(Z)和溢出(O)。该四种信号的定义仍然根据常规的定义。
在每个处理机单元内控制随机存取存储器写入启动信号是本发明的目的。首先假设随机存取存储器写入启动成立,在这种情况下对于一个指令诸如加法指令(ADD),在多端口随机存取存储器中对二个单元寻址,运算器31将操作数相加,将结果送回多端口随机存取存储器30,根据加法指令的结果的进位、负值、溢出和零状态修改状态寄存器34。
现假定由在一矩阵或在一阵列中的一些处理机单元来实现加法指令并且另一些处理机单元不执行。随机存取存储器写入启动信号特别重要,首先当处理机被初始化时,必须向指令可编程序的逻辑阵列发出足够数量的指令,将控制寄存器40调至所有的指令,特别是指令必须被执行到达POP(退栈)控制寄存器40的位置,每次发给POP指令将控制寄存器40右移,把1送进msb(最大位),正如从图4可见,POP输入被接向控制寄存器40。假定其M,控制寄存器的输出总数为8,虽然该特别的数目不是要点。当控制寄存器40充满了输出,也就是说8个,正在监控控制寄存器40输出的AND(和)门41将检查所有输出并且随机存取存储器写入启动将成立。
因此,所有其后的指令直到控制寄存器被变化后才导致多端口随机存取存储器30的输入和状态寄存器34的输入。假设根据先前的例子,想要完成一项绝对值运算,这种情况下为了求其补码,仅对负值数据运算并对其置“正”,将执行下面的指令序列:
从多端口随机存取存储器30读一个单元并原数返回,并因此,状态寄存器34将被输入数据符号,按接着的指令,运算器31将被命令完成某些运算,一项不是依靠测试状态的运算状态可编程序逻辑阵列42被命令来选择条件其中状态寄存器34的状态可表明之前的数据是正值还是负值。在此简单事件中仅符号位需要被询问。
所以,符号位将在控制寄存器40的输入处呈现,并且PUSH(进栈)信号将被置值“真”,在此情况下控制寄存器40将左移并且符号将被送入寄存器的lsb(最低位),如果该数据是负值,该符号位将被选中并仍被控制寄存器40收纳。如果数据是正值,其符号位将成为零,此时控制寄存器40将存放一个零。故在数据是负值的情况下,随着门41的检测,控制寄存器40仍包含该数据并且随机存取存储器写入启动保持选中状态。
单元可继续处理,例如,可对数据求补码,其结果将写入多端口随机存取存储器30。如果数据是正值,控制寄存器40此时将存放一个零。随机存取存储器写入启动失败,没有数据送入多端口随机存取存储器30或状态寄存器34。因此,操作顺序可在满足在数据为负值时可执行的要求下被完成。对于那些其中数据是正值的处理机,多端口随机存取存储器30和状态寄存器34的状态将不发生变化。
如果要执行附加的测试,则状态可编程序逻辑阵列42被用来判断状态寄存器34位的状态,根据将数据记入控制寄存器的进栈(PUSH)指令将结果再输入到控制寄存器存器40的右串行输入口,例如,可能更想知道是否结果大于零而不是大于等于零或小于零。
在此情况中,第二个位将被输入控制寄存器40,并仅当控制寄存器的所有位保留选中时该单元将能够保留。当不再对运算的结果感兴趣时,通过执行POP(退栈)指令可将位从控制寄存器40中移去,POP指令将控制寄存器向右移一位,一个1被送入左串行输入。同时,从控制寄存器40被移出的位被送入一单位触发器43。
然后,位于进入到装置位位置的1返回进入控制寄存器的右串行输入,这个补充了ELSE特性,如先前概述的1F-THEN    ELSE指令中的ELSE特性。因此,1可以容易地补充指令的形式,当a是真时,则执行一系列运算,ELSE实现不同系列的运算,ELSE用来完成该特别测试的结果。
另一个写入启动(write    enable)机构的特性是可被用来选出许多处理机中的一个使得其可通过垂向总线向控制器传送。如从图3可见,垂向总线通过双向输送通道与控制器相联系。
注意,垂向总线通过控制器21可用来同时向处理机单元输送数据,它将向那些写入启动线是“真”的处理单元输送数据。相反,控制器21从处理机单元读数据,由于有一个可在单总线上输送的多重单元,则仅有多重单元中的一个可被启动。因此,可执行在控制寄存器40的输入产生的一系列指令并且在假设了操作集识别单处理机单元的情况下,则按照处理机单元读,并且读将仅发生在那些写入启动线是“真”的处理机单元。至此正如所见,自运算器31到垂向总线的驱动器32仅在如果满足了下面二个条件时被启动:
第一,来自指令可编程序逻辑阵列的写入垂向总线是“真”,和随机存取存储器写入启动亦是“真”。因此,将执行一条指令把写垂向总线置“真”,并从多端口随机存取存储器30读取期望的数据。状态寄存器34的执行过程利用了常规的4-位并行输入移位寄存器,(load    shift    register)其输入是发生在输入线为“真”和具有时钟输入的情况下,此时其输入的数据被传送到其输出。
控制寄存器40的执行过程是一个常规的定时的左移位、右移位、并行入/并行出移位寄存器,如果POP信号“真”,其向右移位,如果PUSH信号“真”则向左移位。它有一个从左边输入数据的左串行输入和从右边输入数据的右串行输入。
它有一个由LOAD(输入)控制在中断或上溢或下溢之后存储它的状态的并行输入。如果PUSH、POP、LOAD输入均非“真”,寄存器40的状态不变化。在广义框图形式中的可编程序逻辑阵列指令为常规设计并能满足特定处理机的要求。典型的指令如ADD(加)、SUBTRACT(减)、AND(和)、OR(或)将由运算器31以及数据移动操作符执行,例如对存储器读或写,和读、写垂向总线以及控制控制寄存器40的操作符一即,PUSH和POP操作以及选择进入状态可编程序逻辑阵列42的条件。
以类似的方式,状态可编程序逻辑阵列42是常规设计并被用来检测16个状态寄存器条件集,例如,其中包括正或负,大于零、小于或等于零。这些条件的检测将导致1-位输出被置“真”其被用作为向控制寄存器40的右串行输入。控制器21也保存一个已被输入到一个单元的控制寄存器40中的位的数目的记录,以检测控制寄存器上溢或下溢条件。
例如,如果控制寄存器40具有8位,程序试图将第9个位推入控制寄存器,则控制器21中的计算器将显示出在该处已进入的位太多了1不再被寄存的错误,程序能处理紧急终止和返回调整用户或在各个单元中保存控制寄存器40的状态或当恢复其它位为1时把控制寄存器40的所有单元的逻辑“和”(AND)写回控制寄存器的一个单个位。
当足够数量的位已被退栈时,则控制寄存器的这个初始状态能被恢复。注意对在控制寄存器40中任何特定位来说不存在专门指定的测试条件这一点很重要。由于在控制寄存器中所有的位都被同样地对待,所以上述情况可以实现。今后,有一个栈结构那儿每个测试占有控制寄存器的另一个位,所以,没必要知道在哪一层正在执行一个测试,它可以在运行时间而不是编译时间被简单地确定。
注意下面这点也很重要:对控制寄存器例如寄存器40,在所有单元中PUSH(进栈)或POP(退栈)是同步的并且不管随机存取存储器的状态如何。事实上,写入启动是由控制寄存器确定的。尽管这将导致将无用的数据送入到控制寄存器的非现役的单元,但重要的是被写入控制寄存器的第一个零已足够使单元不动作,在这一情况下,事实上下面的位在这些不动的单元中是无用的。
通过同时具有控制寄存器的PUSH(进栈)和POP(退栈),对不同数目的位被写入到控制寄存器的不同单元及基于他们目前的状态不得不使确定控制寄存器是不是达到进栈或退栈这一特别情况是不困难的。简而言之,不管他们的目前状态如何,所有寄存器同步地进栈和退栈,从而使设计大大简化。
另外还要注意的是;控制寄存器40可以根据所有的数据和寄存器的顺序被保存,使得机器可被造成用来交流任务其中控制寄存器40的状态被定作为处理机状态的一部分并且当任务停止时和当任务重新执行时它的状态可以被保存。
为了使得控制器,如图3所示控制器21,能与它选择的一行或多行通讯,就必须使随机存取存储器中被选为通讯的单元的写启动置“真”而使随机存取存储器的其它单元写启动置“伪”。这个随机存取存储器的写启动是由门41发出来的最重要的处理机操作信号。因此,问题是当它“真”时一系列条件怎样提出。基本上,需知道如图3中的20机器或处理机阵列,是怎样被初始化的。
再有,假定处理机阵列含有16个处理机列,因此,有16个方形的处理机组合,假设在处理机阵列外部的寄存器中有256个表征码集,这些表征码存在于阵列寄存器25中。控制器21通过地址发生器24来选择256个表征码集中的一个并使它被输入到多端口的随机存取存储器30的一个单元。当一个表征码被输入到多端口随机存取存储器,就可以做一次测试,在此测试的基础上,单元会把随机存取存储器的写入启动置于“真”或“伪”。
结构(Pattern)或表征码结构能用不同方式放置进存储器。方法之一是存在一个只读存储器中,它是每一单元中存储器的一部分,使得结构成为静态。另一个不使用与每一单元有关的只读存储器的解决方法是利用关于控制器21的一个整体存储变换。在这一情况下,控制器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,可以看到一种情况,零将会打开1,2,3行。所以,一个地址14被送到地址发生器,此发生器将选择垂向表征码集合中的一个,尤其是置零的。这个表征码被输入到测试数据的处理机内并且该数据的符号被送入到控制寄存器内。此时,仅在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的处理机阵列,其中所述控制器进一步包括用来计算被推入(PUSHED)所述控制寄存器的位的数目以确定所述数目的位是否能被所述寄存器收纳。
11、根据权利要求1的处理机阵列,其中所述阵列存储器已储存在表示出在所述阵列中的处理机单元方阵数目的多重表征码中,所述控制器作用于通过向所述地址发生器输送一个地址来选择所述表征码中任何期望的一个,表示出存入的各个所述单元其中数据按所选择的显示出所述表征码。
12、根据权利要求11的处理机阵列,其中所述表征码包括第一多重表征码,在所述阵列中显示垂向列数M,和第二多重表征码在所述阵列中显示横向行数N。
13、根据权利要求12的处理机阵列,其中所述程序控制存储器包括一多重的随机存取存储器(RAMS),与所述控制器成为程序顺序发生器。
14、在一个处理机阵列中,该阵列包括多重的被排列在一个N×M阵列中的独立处理单元,具有M列和N行,所述处理单元每个均在水平和垂直方向与相邻单元联结以形成所述阵列,所述阵列与向所述阵列提供指令的控制器联结,所述控制器与存储数据和指令的程序存储器联结,所述控制器进一步与一具有与所述阵列联结的输出的地址发生器的输入联结用来存取一在所述阵列中的单元组,包括在所述阵列中的处理单元机构的组成,所述处理单元包括:
具有多个输入端口的存储器装置,每个输入端口用来接收来自所述控制器和多重输出端口的分离的输入数据,
具有多重输入端口的数学逻辑单元(ALU),每个输入端口。分离一个联结于所述存储装置的联接的输出端口,所述数学逻辑单元具有一个输出端口,
第一寄存器装置与所述数学逻辑单元的所述输出端口联结以确定所述单元的状态。
第二寄存器装置与第一寄存装置和所述控制器相联结并用来从所述控制器和所述第一寄存装置接收数据和指令以向其内寄存显示所述单元操作条件的第一代码和寄存显示所述单元闲置条件的第二代码,利用它,所述单元有能力依据接收到的所述数据指令操作或保持闲置。
15、根据权利要求14的处理机阵列,其中所述存储装置是有至少两个输出的具有读地址输入、读/写地址输入的随机存取存储器。
16、根据权利要求15的处理机阵列,其中所述随机存取存储器的所述输出被分别地与所述数学逻辑单元的联合输入相联结。
17、根据权利要求14的处理机阵列,其中所述第一寄存装置包括一个寄存由所述数学逻辑单元完成的数学运算例如进位、负值、零和溢出运算的结果的状态寄存器。
18、根据权利要求14的处理机阵列,其中所述第二寄存装置是一个具有第一输入和第二输入的控制寄存器,第一输入标定为一个退栈(POP)将一个接收的二进制1向右移位,第二输入标定为进栈输入(PUSH)将一个测试条件结果向左移位。
19、根据权利要求18的处理机阵列,其中所述寄存器是一个定时的左移位、右移位、并行进/并行出的移位寄存器用于向右移位使所述退栈输入增大,向左移位使所述进栈输入增大。
20、根据权利要求19的处理机阵列,其中所述控制寄存器进一步有一个表示接收来自所述控制器的数据的左串行输入的第三输入用来向左移位和一个表示接收来自所述控制器的数据的右串行输入的第四输入用来向右移位。
CN 86106713 1985-11-13 1986-09-23 具有内部单元控制和处理的阵列结构 Expired CN1012297B (zh)

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 true CN86106713A (zh) 1987-05-20
CN1012297B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100419668C (zh) * 2003-05-23 2008-09-17 日本电信电话株式会社 并行处理设备和并行处理方法
CN101382920B (zh) * 2007-09-03 2012-10-10 京乐产业.株式会社 访问控制装置、访问控制方法及访问控制程序
CN101458811B (zh) * 2007-12-12 2013-12-18 Lg电子株式会社 处理数据的装置和方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
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
EP0308660B1 (de) * 1987-09-22 1995-05-24 Siemens Aktiengesellschaft Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen
DE68926783T2 (de) * 1988-10-07 1996-11-28 Martin Marietta Corp Paralleler datenprozessor
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 杨风桐 用硼元素和中子寿命测井仪寻求剩余油残余油的方法
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56127266A (en) * 1980-03-10 1981-10-05 Ibm Method of executing and controlling command stream
US4580215A (en) * 1983-03-08 1986-04-01 Itt Corporation Associative array with five arithmetic paths
NZ207326A (en) * 1983-03-08 1988-03-30 Stc Plc Associative data processing array
JPH0654505B2 (ja) * 1983-12-23 1994-07-20 株式会社日立製作所 並列型演算処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100419668C (zh) * 2003-05-23 2008-09-17 日本电信电话株式会社 并行处理设备和并行处理方法
CN101382920B (zh) * 2007-09-03 2012-10-10 京乐产业.株式会社 访问控制装置、访问控制方法及访问控制程序
CN101458811B (zh) * 2007-12-12 2013-12-18 Lg电子株式会社 处理数据的装置和方法

Also Published As

Publication number Publication date
CN1012297B (zh) 1991-04-03
ES2005837A6 (es) 1989-04-01
AU6483486A (en) 1987-05-21
JPS62119675A (ja) 1987-05-30
EP0223690A2 (en) 1987-05-27
AU588394B2 (en) 1989-09-14
EP0223690B1 (en) 1991-01-30
EP0223690A3 (en) 1988-07-27
DE3677330D1 (de) 1991-03-07

Similar Documents

Publication Publication Date Title
CN1267819C (zh) 计算机系统内部处理指令的装置
CN86106713A (zh) 具有内部单元控制和处理的阵列结构
Siegel et al. PASM: A partitionable SIMD/MIMD system for image processing and pattern recognition
Jones et al. GRIP—a high-performance architecture for parallel graph reduction
CN1138205C (zh) 以不同等待时间调度指令
CN1020972C (zh) 超大规模计算机
US8656401B2 (en) Method and apparatus for prioritizing processor scheduler queue operations
US4251861A (en) Cellular network of processors
JP3916680B2 (ja) プロセッサ
CN101055644B (zh) 绘图处理装置及其处理指令、数据和逻辑单元操作的方法
US5418970A (en) Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
CN100555216C (zh) 一种数据处理方法及处理器
CN1713137A (zh) 含有多级寄存器文件的数字数据处理设备
EP0485690A2 (en) Parallel associative processor system
US5491829A (en) Method and system for indexing the assignment of intermediate storage buffers in a superscalar processor system
US5898882A (en) Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
JPH06236273A (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
CN101221493A (zh) 并行处理器中的多线程执行
US7328314B2 (en) Multiprocessor computing device having shared program memory
CN101739235A (zh) 将32位dsp与通用risc cpu无缝混链的处理器装置
US3858183A (en) Data processing system and method therefor
CN101546275B (zh) 一种获取多处理器硬件信号量的方法
CN101625635A (zh) 一种处理循环任务的方法、系统和设备
CN101021831A (zh) 面向科学计算的64位流处理器芯片体系结构
CN107562549A (zh) 基于片上总线和共享内存的异构众核asip架构

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
C14 Grant of patent or utility model
C19 Lapse of patent right due to non-payment of the annual fee