JP2543306B2 - Array processor - Google Patents

Array processor

Info

Publication number
JP2543306B2
JP2543306B2 JP5092765A JP9276593A JP2543306B2 JP 2543306 B2 JP2543306 B2 JP 2543306B2 JP 5092765 A JP5092765 A JP 5092765A JP 9276593 A JP9276593 A JP 9276593A JP 2543306 B2 JP2543306 B2 JP 2543306B2
Authority
JP
Japan
Prior art keywords
picket
array
processor
pickets
array processor
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 - Lifetime
Application number
JP5092765A
Other languages
Japanese (ja)
Other versions
JPH0619864A (en
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0619864A publication Critical patent/JPH0619864A/en
Application granted granted Critical
Publication of JP2543306B2 publication Critical patent/JP2543306B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数のピケットを含ん
でいるアレイ・プロセッサに係り、更に詳細に説明すれ
ば、アレイ・プロセッサによってプログラムを実行する
ために、SIMD/MIMDアレイ・プロセッサ内の諸
ピケットをグループ化するための機構に係る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an array processor containing a plurality of pickets, and more particularly to a SIMD / MIMD array processor within a SIMD / MIMD array processor for executing programs by the array processor. A mechanism for grouping pickets.

【0002】関連する特許出願 米国特許出願第611594号(特願平3−27890
0号に対応)には、100乃至1000個の処理要素か
ら成る処の、並列アソシアティブ・プロセッサ・システ
ムが記述されている。しかし、この特許出願には、ドー
ズ・ラッチを含む本発明の改良点は、全く記載されてい
ない。
Related Patent Application US Patent Application No. 6111594 (Japanese Patent Application No. 3-27890)
No. 0) describes a parallel associative processor system consisting of 100 to 1000 processing elements. However, this patent application does not describe any improvement of the present invention, including a dose latch.

【0003】用語の説明 ・ALU ALUとは、各処理要素の算術演算部である。 Explanation of Terms ALU ALU is an arithmetic operation unit of each processing element.

【0004】・アレイ アレイとは、1次元又はそれ以上の次元における要素の
配列である。超並列計算機のハードウェアの観点からす
れば、アレイとは、同一の構成を有する構造体(処理要
素)の集合であるのが普通である。データの並列動作
(演算)を実行する場合、各処理要素は、それぞれに動
作が割り当てられるとき、必要に応じて、これらの動作
をそれぞれ独立的に且つ並列的に実行することができ
る。一般に、アレイは、処理要素の格子として考えるこ
とができる。
Array An array is an array of elements in one or more dimensions. From the viewpoint of hardware of a massively parallel computer, an array is usually a set of structures (processing elements) having the same configuration. When performing parallel operations (arithmetic operations) on data, each processing element can perform these operations independently and in parallel when necessary, when the operations are assigned to each processing element. In general, an array can be thought of as a grid of processing elements.

【0005】・アレイ・コントローラ アレイ・コントローラは、アレイ・プロセッサ用のコン
トローラとしてプログラムされるユニットである。アレ
イ・コントローラは、アレイ・プロセッサ内に配置され
る処理要素をグループ化するためのマスタ・コントロー
ラの機能を実行する。
Array Controller An array controller is a unit programmed as a controller for an array processor. The array controller performs the function of a master controller for grouping the processing elements located within the array processor.

【0006】・アレイ・プロセッサ アレイ・プロセッサの2つの主要なアーキテクチャに
は、複数命令複数データ・ストリーム(MIMD)と、
単一命令複数データ・ストリーム(SIMD)がある。
MIMDアレイ・プロセッサでは、その各処理要素が、
それ自体のデータについてそれ自体の一意的な命令スト
リームを実行する。他方、SIMDアレイ・プロセッサ
では、その各処理要素は、共通の命令ストリームからの
同一の命令に制限されているが、各処理要素に関連する
データは一意的である。本発明の好適なアレイ・プロセ
ッサは、高度並列アレイ・プロセッサ(Advanced Paral
lelArray Processor:APAP)と呼ばれ、他の特徴を
有している。
Array Processors The two main architectures of array processors include Multiple Instruction Multiple Data Stream (MIMD) and
There is a single instruction multiple data stream (SIMD).
In the MIMD array processor, each processing element is
Executes its own unique instruction stream for its own data. On the other hand, in SIMD array processors, each processing element is restricted to the same instruction from a common instruction stream, but the data associated with each processing element is unique. The preferred array processor of the present invention is an advanced parallel array processor.
LelArray Processor: APAP) and has other characteristics.

【0007】・コントローラ コントローラとは、相互接続ネットワークのリンクを介
してデータ及び命令の送信を指令するデバイスである。
その動作は、当該コントローラが接続されるプロセッサ
によって実行されるプログラムによって制御されるか、
又は当該コントローラ内で実行されるプログラムによっ
て制御される。
Controller A controller is a device that directs the transmission of data and instructions over the links of an interconnection network.
Its operation is controlled by a program executed by the processor to which the controller is connected,
Alternatively, it is controlled by a program executed in the controller.

【0008】・リンク リンクとは、物理的又は論理的な要素である。物理的リ
ンクとは、複数の処理要素を結合するための物理的接続
である。
Link A link is a physical or logical element. A physical link is a physical connection for connecting a plurality of processing elements.

【0009】・MIMD MIMDとは、アレイ・プロセッサのアーキテクチャで
あって、1処理要素ごとに1つづつ位置決めされる複数
データ・ストリームを実行するために、アレイ・プロセ
ッサ内の各処理要素がそれ自体の命令ストリームを有
し、従って全体として複数命令ストリームを有する処
の、アーキテクチャを意味する。
MIMD MIMD is the architecture of the array processor such that each processing element within the array processor itself to execute multiple data streams, one positioned for each processing element. , And thus, as a whole, a multi-instruction stream.

【0010】・モジュール モジュールとは、個別化され且つ識別可能なプログラム
・ユニット、又は他の構成要素とともに用いられるよう
に設計されたハードウェアの機能ユニットである。単一
の電子チップ内に含まれる処理要素の集合も、モジュー
ルと呼ばれる。
Module A module is a functional unit of hardware that is designed to be used with an individualized and identifiable program unit, or other component. A collection of processing elements contained within a single electronic chip is also called a module.

【0011】・ノード 一般に、ノードとは、諸リンクの接続点である。一般的
な処理要素(PE)のアレイでは、1つのPEが1つの
ノードとなる。各ノードが、モジュールと呼ばれるPE
の集合を含むこともある。代表的な例では、各ノード
を、8個のプロセッサ・メモリ要素(PME)から形成
するのが好ましい。
Node Generally, a node is a connection point of various links. In a general processing element (PE) array, one PE is one node. Each node is a PE called module
May include a set of. In the representative example, each node is preferably formed from eight processor memory elements (PMEs).

【0012】・ノード・アレイ PMEから構成されるモジュールの集合は、ノード・ア
レイと呼ばれることもあり、複数のモジュールから成る
ノードのアレイである。一のノード・アレイは、通常
は、数個のPMEよりも多い。
Node Array A collection of modules composed of PMEs, sometimes referred to as a node array, is an array of nodes composed of multiple modules. A single node array typically has more than a few PMEs.

【0013】・ピケット ピケットとは、アレイ・プロセッサの構成要素である。
ピケットは、一のアレイ・プロセッサのn分の1に相当
し、PMEの形態をとる。本発明のPMEチップに従っ
て設計されたプロセッサ論理は、前掲の関連する特許出
願に記述されているピケット論理を実現するか、又は一
のノードとして形成されたアレイ・プロセッサ用の論理
を有することができる。ピケットという用語は、アレイ
・プロセッサの分野で常用されている用語「処理要素
(PE)」と類似している。ピケットに相当するアレイ
・プロセッサ内の処理要素は、1クロック・サイクルの
間に複数の情報バイトをビット並列に処理するように組
み合わされた、プロセッサ要素及び局所メモリから構成
するのが好ましい。代表的な例におけるピケットは、1
バイト幅のデータフロー・プロセッサ(ALU+レジス
タ)と、32キロバイト以上の容量を有する局所メモリ
と、プリミティブ制御と、当該ピケットを他のピケット
と相互接続するための手段から構成されている。
Picket A picket is a component of an array processor.
A picket represents 1 / nth of an array processor and takes the form of a PME. Processor logic designed in accordance with the PME chip of the present invention may implement the picket logic described in the above-referenced related patent application or have the logic for an array processor formed as a node. . The term picket is similar to the term "processing element (PE)" commonly used in the field of array processors. The processing elements in the array processor corresponding to pickets preferably consist of processor elements and local memory combined to process multiple information bytes in bit parallel during one clock cycle. Picket in the typical example is 1
It consists of a byte-wide data flow processor (ALU + register), local memory with a capacity of 32 kilobytes or more, primitive control, and means for interconnecting the picket with other pickets.

【0014】・ピケット・プロセッサ ピケット・プロセッサとは、ピケットのアレイと、相互
接続ネットワークと、I/Oシステムと、マイクロプロ
セッサ、格納ルーチン・プロセッサ及び当該アレイを動
作させるマイクロ・コントローラから成るSIMDコン
トローラとを備えたトータル・システムである。
Picket Processor A picket processor is an array of pickets, an interconnection network, an I / O system, and a SIMD controller consisting of a microprocessor, a storage routine processor, and a microcontroller that operates the array. It is a total system equipped with.

【0015】・ピケット・アーキテクチャ ピケットアーキテクチャは、幾つかの多様な種類の問題
に適応する特徴を有する処の、SIMDアーキテクチャ
の好ましい実施例である。これらの問題は、次のものを
含んでいる。 −セット・アソシアティブ処理 −並列的な数値処理 −画像と類似する物理的アレイの処理 ・PME PMEという用語は、「プロセッサ・メモリ要素」を意
味するものとして用いられる。一のPMEは、一のピケ
ットを包合する。一のPMEは、一のアレイ・プロセッ
サのn分の1であって、一のプロセッサ要素と、その関
連するメモリ要素と、制御インタフェースと、相互接続
ネットワークの一部から構成される。PMEは、ピケッ
ト・プロセッサの場合のように、規則的なアレイとの接
続性(connectivity)を有するか、又はPMEのノード
の場合のように、サブアレイの一部との接続性を有する
ことができる。
Picket Architecture The picket architecture is a preferred embodiment of the SIMD architecture, where it has features that accommodate several different types of problems. These issues include: -Set associative processing-Parallel numerical processing-Image-like physical array processing-PME The term PME is used to mean "processor memory element". One PME embeds one picket. A PME is 1 / nth of an array processor and consists of a processor element, its associated memory element, a control interface, and part of an interconnect network. A PME can have connectivity with a regular array, as in the case of a picket processor, or with a portion of a sub-array, as in the case of a PME node. .

【0016】・経路指定 経路指定とは、一のメッセージがその宛先に到達するま
での物理的経路を割り当てることである。経路指定の割
り当てには、データ源(発信元)及び宛先が関連する。
これらの要素又はアドレスは、一時的な関係又は類似性
を有する。メッセージの経路指定は、割り当てテーブル
を参照することによって得られる処の、キーに基づくこ
とが多い。ネットワーク内の宛先は、アドレス可能な任
意の処理要素であって、そのリンクを識別する経路制御
アドレスによって送信される情報の宛先としてアドレス
される。メッセージ・ヘッダの宛先フィールドが、該当
する宛先を識別する。
Routing The routing is the allocation of the physical route by which a message reaches its destination. Data sources (sources) and destinations are associated with routing assignments.
These elements or addresses have a temporary relationship or similarity. Message routing is often based on keys, such as those obtained by looking up an assignment table. A destination in the network is any addressable processing element that is addressed as the destination for information sent by the routing address that identifies the link. The destination field in the message header identifies the applicable destination.

【0017】・SIMD SIMDとは、アレイ・プロセッサのアーキテクチャで
あって、その全ての処理要素が、1処理要素ごとに1つ
づつ割当てられている複数データ・ストリームを実行す
るように、単一命令ストリームから指令されるようなも
のである。
SIMD SIMD is the architecture of an array processor in which all the processing elements execute a single instruction stream, such that they execute multiple data streams, one for each processing element. It's like being commanded by a stream.

【0018】・SIMD/MIMD SIMD/MIMDとは、幾つかの複雑な命令を処理す
るために、或る期間の間に、MIMDからSIMDへ切
り替わることができるような2重の機能を有し、従って
2重の動作モードを有する計算機を表す用語である。M
IMD計算機の入力端又は出力端として、シンキング・
マシン社の超並列計算機「コネクション・マシン−2
(CM−2)」が配置される場合、プログラマは、一の
問題の異なる部分を実行するために、2重の動作モード
を作動させることができる。これらの計算機は、マスタ
制御プロセッサを他のプロセッサと相互接続するバスを
用いている。このマスタ制御プロセッサは、他のプロセ
ッサの処理に割り込む能力を有している。他のプロセッ
サは、独立のプログラム・コードを実行することができ
る。割り込みの間、チェックポイントを行う(制御対象
プロセッサの現在の状態をクローズし且つ保存する)た
めの手段が提供されねばならない。
SIMD / MIMD SIMD / MIMD has the dual function of being able to switch from MIMD to SIMD during a certain period in order to process some complex instructions, Therefore, it is a term used to describe a computer having a dual operation mode. M
Thinking, as an input or output end of the IMD calculator
Machine Company's massively parallel computer "Connection Machine-2"
When (CM-2) ”is deployed, the programmer can activate dual modes of operation to perform different parts of one problem. These computers use a bus that interconnects the master control processor with other processors. This master control processor has the ability to interrupt the processing of other processors. Other processors are capable of executing independent program code. Means must be provided to checkpoint (close and save the current state of the controlled processor) during the interrupt.

【0019】・SIMIMD SIMIMDとは、アレイ・プロセッサのアーキテクチ
ャであって、その全ての処理要素が、1処理要素ごとに
1つづつ位置決めされる複数データ・ストリームを実行
するべく、単一命令ストリームから指令されるようなも
のである。このアーキテクチャでは、命令の実行を模倣
する処の、各ピケット内のデータ従属動作は、SIMD
命令ストリームによって制御される。SIMIMD計算
機とは、SIMD命令ストリームを用いて複数命令スト
リームを(1ピケットごとに1つづつ)順序付け、そし
て複数データ・ストリームを(1ピケットごとに1つづ
つ)処理するための能力を備えた、単一命令ストリーム
計算機である。SIMIMDは、PMEシステムによっ
て実行可能である。
SIMIMD SIMIMD is the architecture of an array processor in which all of the processing elements execute from a single instruction stream in order to execute multiple data streams, one for each processing element. It is like being ordered. In this architecture, the data dependent operations within each picket that mimic the execution of instructions are SIMD.
Controlled by the instruction stream. A SIMIMD computer is capable of ordering multiple instruction streams (one per picket) using a SIMD instruction stream and processing multiple data streams (one per picket). It is a single instruction stream computer. SIMIMD can be executed by the PME system.

【0020】・同期動作 MIMD計算機内の同期動作は、各アクションが一の事
象に関係付けられるような動作モードである。この事象
は、クロックであるのが普通であるが、一のプログラム
・シーケンス内で規則的に生じるような特定の事象でも
よい。一の動作が複数のPEへディスパッチされると、
これらのPEは、その機能を独立に実行するように進行
する。この動作が完了するまで、制御はコントローラへ
戻されない。もし、要求が処理要素のアレイに対するも
のであれば、当該アレイ内の諸処理要素に対する要求が
コントローラによって生成された後、かかる処理要素
は、制御がコントローラへ戻される前に、それぞれの動
作を完了しなければならない。
Synchronous operation Synchronous operation in the MIMD computer is an operation mode in which each action is associated with one event. This event is usually a clock, but it may be a particular event that occurs regularly within a program sequence. When an operation is dispatched to multiple PEs,
These PEs proceed to perform their function independently. Control is not returned to the controller until this operation is complete. If the request is for an array of processing elements, then after the requests for the processing elements in the array have been generated by the controller, such processing elements complete their respective operations before control is returned to the controller. Must.

【0021】[0021]

【従来の技術】より速い計算機への終わりのない探究に
おいて、技術者達は、今日の計算機を当惑させる複雑な
問題を克服するために、数百〜数千台の低コストのマイ
クロプロセッサを並列にリンクすることにより、超並列
計算機を構築するようになってきた。本発明は、超並列
計算機を構築するための新しい技法に係る。本発明の多
くの改良点は、従来技術を背景として考察すべきもので
ある。特定のアプリケーションに最も適合しているアー
キテクチャを選択するには、システム上のトレード・オ
フが必要とされるが、これまでに満足できる解決法はな
かった。本発明の目標は、解決法の提供を一層容易にす
ることにある。即ち、本発明は、SIMD及びMIMD
動作を実現可能なアレイ・プロセッサに係る。
In an endless quest for faster computers, engineers have paralleled hundreds to thousands of low-cost microprocessors to overcome the complex problems that plague today's computers. By linking to, we have started to build massively parallel computers. The present invention relates to a new technique for building a massively parallel computer. Many of the improvements of the present invention should be considered in the context of the prior art. There are systematic trade-offs required to choose the architecture that best fits a particular application, but until now there has been no satisfactory solution. The aim of the invention is to make it easier to provide a solution. That is, the present invention is applicable to SIMD and MIMD.
The present invention relates to an array processor capable of realizing operation.

【0022】以下、SIMD計算機に関係する種々の米
国特許について概説する。これらの米国特許には、本発
明に従った機構、即ちアレイ・プロセッサによってプロ
グラムを実行するために、SIMD及びMIMDアレイ
内の諸ピケットをグループ化するための機構は、開示又
は示唆されていない。
The following is a summary of various US patents relating to SIMD computers. None of these U.S. patents discloses or suggests a mechanism in accordance with the present invention, i.e., for grouping pickets in SIMD and MIMD arrays for execution of a program by an array processor.

【0023】米国特許第4783738号は、自律性
(autonomy)の諸側面に向けられており、具体的には、
SIMDコントローラが、アレイ・プロセッサ内の全て
の処理要素(PE)に対し一の指令を発行すると、各P
Eが空間的又はデータ従属特性の結果として、この指令
内のビットを変更するか、又はこの指令内にビットを挿
入することができるようになっている。例としては、A
DD/SUB、SEND/RECEIVE及びOPA/
OPBの生成が含まれている。この機能は、複数の行を
画像処理して、画像の境界を画定するのに用いられる。
この米国特許は、本発明のグループ化に関連して用いる
ことができる処の、複数の自律機能の内の1つ(本発明
では、データ従属動作をALUに実行させている)に類
似しているが、本発明は、この米国特許のような動作ビ
ットの変更又は挿入を意図していない。本発明は、AL
U機能が、アレイ・プロセッサ内の空間的位置の特定の
関数であることを考慮しない。この米国特許は、データ
従属機能に係るという点で、本発明の機構のうちの或る
ものと類似しているが、本発明は、DWIM(Do What
I Mean:自分が欲することを行う)機能を実現すること
によって、一の命令シーケンスのデータ従属部分(符号
又は条件コードなど)が単にALUを強制して何か他の
ことを行わせるようにしている。
US Pat. No. 4,783,738 is directed to aspects of autonomy, and in particular,
When the SIMD controller issues one command to all processing elements (PEs) in the array processor, each P
It allows E to modify or insert bits within this command as a result of spatial or data dependent properties. For example, A
DD / SUB, SEND / RECEIVE and OPA /
Includes OPB generation. This feature is used to image multiple rows to define the boundaries of the image.
This U.S. Patent is similar to one of a number of autonomous functions (in which the present invention causes the ALU to perform a data dependent operation) which may be used in connection with the grouping of the present invention. However, the present invention does not contemplate modifying or inserting action bits as in this US patent. The present invention is
It does not consider that the U function is a particular function of spatial location within the array processor. This U.S. patent is similar to some of the features of the present invention in that it involves data dependent functions, but the present invention does not include DWIM (Do What).
I Mean: by implementing a function that does what I want) so that the data dependent part of one instruction sequence (such as a sign or condition code) simply forces the ALU to do something else. There is.

【0024】米国特許第4736291号は、データ・
アレイの高速処理を実行する処の、アレイ変換プロセッ
サについて記述している。この米国特許は、地震分析の
分野におけるFFT(高速フーリエ変換)アルゴリズム
を実行するように、最適化されている。この米国特許の
中心は、バルク・メモリ及び最大15個までのデバイス
によって共有されるシステム制御バスである。各デバイ
スは、書込み可能な制御記憶装置と、プログラム・メモ
リと、制御ユニットと、15個のデバイスの各々にそれ
ぞれ固有の特性を提供するデバイス従属ユニットを有す
る。一方、このアレイ変換プロセッサは、必ずしもそれ
自体が並列アレイ・プロセッサではないし、またこの米
国特許では、このことについて言及されているわけでも
ない。アレイ変換は、本発明のシステムによっても実行
することができる。しかし、この米国特許に記述されて
いるプロセッサは、複雑且つ反復的な順序で、データ・
アレイを処理する幾つかのサブユニット(ステージ)を
備えている。この米国特許とは対照的に、本発明のSI
MDアレイ・プロセッサでは、複数の処理要素がデータ
・アレイの複数の要素をそれぞれ取り出すとともに、こ
れらの処理要素においてデータを並列に処理するように
している。
US Pat. No. 4,736,291 discloses data
The array conversion processor, which executes high-speed processing of the array, is described. This US patent has been optimized to implement an FFT (Fast Fourier Transform) algorithm in the field of seismic analysis. Central to this patent is a system control bus shared by bulk memory and up to 15 devices. Each device has a writable control store, a program memory, a control unit, and a device slave unit that provides unique characteristics to each of the 15 devices. On the other hand, the array conversion processor is not necessarily a parallel array processor in itself, nor is it mentioned in this US patent. Array conversion can also be performed by the system of the present invention. However, the processor described in this U.S. patent does not provide data in a complex and iterative order.
It has several subunits (stages) for processing the array. In contrast to this US patent, the SI of the present invention
In the MD array processor, the plurality of processing elements respectively take out the plurality of elements of the data array and process the data in parallel in these processing elements.

【0025】米国特許第4831519号は、各々が1
6ビット幅を有する複数の処理要素(PE)を互いに接
続して種々のデータ・フォーマットに効果的に適応する
ことができるように、各PEからその左側及び右側に延
びるようなプロセッサ間接続を備えたSIMDアレイ・
プロセッサについて記述している。例えば、64ビット
の浮動小数点ワードを4個のPEによって処理する場
合、これらのPEのうち1つ(上位)のPEによって、
この浮動小数点ワードの指数部(16ビット)を処理
し、そして互いに接続された残りの3つのPEによっ
て、この浮動小数点ワードの小数部(48ビット)を処
理するようになっている。桁上げ/借りなどの制御は、
これを達成するためにPE間で互いに結合することがで
きる。1つのチップには、データ処理用の16個のPE
と、アドレス生成用の2個のPEと、2個のスペアPE
とを搭載することができる。この米国特許のI/Oは、
4レベルの信号方式を使用することによって、2つの論
理信号を1つのピンへ結合するとともに、この2つの線
の論理条件に依存して4種類の電圧のうちの1つを発生
することを可能にしている。この米国特許のデバイス
は、コントローラ機能を提供しなければならないが、こ
れについては殆ど記述されていない。この米国特許のア
レイ・プロセッサには、種々のサイズのデータに作用す
るために、複数のPEをどのようにしてグループ化する
かを定義する大域(グローバル)MASKと、マスタP
Eからその右側のスレーブPEへ伝播する局所NEST
制御とが供給される。しかし、この米国特許では、一の
PEがどのグループに所属するかを決定することについ
て、全く記述されていない。また、任意の処理が、NE
ST制御ではなく、処理中のデータに基づいて行われる
という意味での局所的自律性についても、全く記述され
ていない。この米国特許は、互いに隣接する複数のPE
を結合することによって、16、32及び48ビット幅
のデータを処理するための単一のプロセッサとして動作
するように、水平方向に拡張可能なSIMDチップ用の
可能な設計を記述している。しかし、この米国特許で
は、複数の処理要素をどのようにして結合することがで
きるかという点や、単一のプロセッサとして動作する処
の互いに隣接する複数のPEが、16、32又は48ビ
ット幅のデータをどのようにして処理することができる
かという点や、一の処理要素が所定の処理に参加すべき
であるか否かをどのようにして知り、又は決定するかと
いう点については、全く記述又は示唆されていない。こ
の米国特許は、大域制御MASKによって指令されるグ
ループ化を有している。しかし、この米国特許では、局
所的自律性が欠如している。このことは、本発明を理解
した後に、この米国特許を再検討すれば明らかとなるで
あろう。
US Pat. No. 4,831,519 describes each one
Providing interprocessor connections extending from each PE to its left and right sides so that multiple processing elements (PEs) having a 6-bit width can be connected together to effectively accommodate different data formats. SIMD array
Describes the processor. For example, when processing a 64-bit floating point word by four PEs, one of these PEs (upper)
The exponent part (16 bits) of the floating point word is processed, and the fractional part (48 bits) of the floating point word is processed by the remaining three PEs connected together. Control of carry / borrow,
To achieve this, PEs can be bonded together. 16 PEs for data processing on one chip
And two PEs for address generation and two spare PEs
And can be installed. The I / O for this US patent is
By using a four-level signaling scheme, it is possible to combine two logic signals into one pin and generate one of four voltages depending on the logic conditions of these two lines. I have to. The device of this U.S. patent must provide the controller function, which is rarely described. The array processor of this U.S. patent includes a global MASK that defines how multiple PEs are grouped together to operate on data of various sizes, and a master P.
Local NEST propagating from E to the slave PE on its right
Control and is supplied. However, there is no mention in this US patent of determining which group a PE belongs to. In addition, the arbitrary processing is NE
Neither is there any description of local autonomy in the sense that it is performed based on the data being processed, not the ST control. This US patent describes multiple PEs adjacent to each other.
To describe a possible design for a horizontally expandable SIMD chip to operate as a single processor for processing 16, 32 and 48 bit wide data. However, in this US patent, how multiple processing elements can be combined, and the number of adjacent PEs that operate as a single processor, is 16, 32, or 48 bits wide. Regarding how to process the data of, and how to know or determine whether a processing element should participate in a given process, Not described or suggested at all. This U.S. patent has grouping dictated by the global control MASK. However, this US patent lacks local autonomy. This will become apparent upon a review of this U.S. patent after understanding the present invention.

【0026】米国特許第4783782号は、前掲の米
国特許第4831519号に記述されている、SIMD
アレイ内にある最大2個の欠陥PEを分離するための、
SIMDチップの製造時テストについて記述している。
このチップ上のPROMセクションには、欠陥データが
格納される。この欠陥データを、コントローラによって
読み取った後、このチップ上の資源を動的に割り当てる
ことができる。このように、この米国特許のチップは、
プロセッサの制限された自律性を有するに過ぎない。
US Pat. No. 4,783,782 is a SIMD described in US Pat. No. 4,831,519, cited above.
For separating up to two defective PEs in the array,
It describes the manufacturing test of SIMD chips.
Defective data is stored in the PROM section on this chip. Resources on this chip can be dynamically allocated after the defective data is read by the controller. Thus, the chip of this US patent
It has only limited autonomy of the processor.

【0027】米国特許第4748585号は、種々の長
さのデータに適応するように、並列プロセッサの諸要素
を諸セグメントへ割り当てるための機構について記述し
ている。この米国特許も、前掲の米国特許第48315
19号に類似しているが、この米国特許は、各ユニプロ
セッサの幅よりも広いワードを処理するために、複数の
ユニプロセッサを互いに結合して、これをグループ化す
ることに係る。各ユニプロセッサは、マイクロ・シーケ
ンサ、ALU、レジスタなどを有しているという点で、
完成している。この米国特許の特徴は、幅が広いデータ
・ワードを処理するために、幾つかのユニプロセッサが
互いに融通の利かない態様で動作され得る、という点に
ある。セグメンテーションの制御は、組み合わせコード
及び大域条件コードを用いた大域制御によって行われる
ようになっている。MIMDアレイとして、このデバイ
スは、SIMDアレイの能力を提供することはできな
い。これに対し、本発明は、この米国特許のように複数
のユニプロセッサを互いに結合して一層幅の広いプロセ
ッサを構築するためのMIMDアレイ用の制御に係るの
ではなく、複数のピケットを改良された態様で連結する
ことに係る。
US Pat. No. 4,748,585 describes a mechanism for assigning elements of a parallel processor to segments to accommodate data of varying lengths. This U.S. patent is also the above U.S. Pat.
Similar to No. 19, but this patent relates to combining multiple uniprocessors and grouping them together to handle words wider than the width of each uniprocessor. Each uniprocessor has a micro sequencer, ALU, registers, etc.
It is completed. A feature of this U.S. patent is that several uniprocessors may be operated in a staggered fashion to process wide data words. The segmentation control is performed by the global control using the combination code and the global condition code. As a MIMD array, this device cannot provide the capabilities of a SIMD array. In contrast, the present invention improves on multiple pickets rather than on controlling for a MIMD array to combine multiple uniprocessors together to build a wider processor as in this US patent. It relates to connecting in a different manner.

【0028】米国特許第4825359号は、データ・
アレイの処理、例えばその高速フーリエ変換(FFT)
を行うためのプロセッサについて記述している。このプ
ロセッサは、幾つかの処理オペレータ(演算子)を含ん
でおり、その各々は計算中に1つのステップを実行する
ようにプログラムすることができる。このプロセッサ
は、複雑な諸プロセスを実行する際にパイプラインとし
て動作する処の、幾つかの処理演算子を備えた複雑なユ
ニプロセッサとして分類することができる。この米国特
許では、グループ化又は自律性の何れも全く記述されて
いない。この米国特許は、広範囲の演算子に適応するよ
うに、何らかの改良を行うことを意図しているに過ぎな
い。
US Pat. No. 4,825,359 discloses data
Array processing, eg its Fast Fourier Transform (FFT)
Describes a processor for doing. The processor includes several processing operators, each of which can be programmed to perform one step during the calculation. This processor can be classified as a complex uniprocessor with some processing operators that act as a pipeline in executing complex processes. In this US patent, neither grouping nor autonomy is described at all. This US patent is only intended to make some modifications to accommodate a wide range of operators.

【0029】米国特許第4905143号は、2つの型
の変数の全ての組み合わせの計算を実行するとともに、
これらの計算結果を用いて局所的なデータ従属性を有す
る再帰的関数を計算するためのアレイ・プロセッサにつ
いて記述している。これらの計算結果は、音声認識の分
野におけるパターン・マッチングの場合に用いられる処
の、動的な時間ワーピング又は動的計画法の理論を基礎
とするマッチング計算によって特徴付けられる。このプ
ロセッサは、1種のシストリック(systolic)MIMD
テーブルとして機能するように意図されている。複数の
PEは、リング状に配置され、そしてリング内の次のP
Eへ中間的な結果を渡すようになっている。各PEは、
それ自体の命令メモリ及び他の手段を有している。この
米国特許は、SIMDアレイ内のPEの自律性について
記述していないばかりか、複数のPEをリング状に物理
的に配置することを除き、複数のPEをグループ化する
ことについても、全く記述していない。
US Pat. No. 4,905,143 performs calculations on all combinations of variables of two types, and
An array processor for calculating a recursive function having a local data dependency using these calculation results is described. The results of these calculations are characterized by matching calculations based on the theory of dynamic time warping or dynamic programming as used in the case of pattern matching in the field of speech recognition. This processor is a kind of systolic MIMD
Intended to act as a table. The PEs are arranged in a ring and the next P in the ring
It passes intermediate results to E. Each PE is
It has its own instruction memory and other means. This US patent does not describe the autonomy of PEs in a SIMD array, but also describes grouping of PEs, except that they are physically arranged in a ring. I haven't.

【0030】米国特許第4910665号は、各PE
が、これに隣接する8個の要素を直接的にアクセスする
ことができるように、SIMDアレイ・プロセッサの2
次元的な相互接続ネットワークについて説明している。
その通信媒体は、隣接する4つの要素をそれぞれの角部
で相互接続する処の、ドット接続ネットワークである。
この米国特許でも、SIMD計算機が開示されている
が、本発明のような、PEの局所的自律性又はグループ
化が提供可能であるか又は提供すべきであるかという点
については、全く触れられていない。
US Pat. No. 4,910,665 describes each PE
Of the SIMD array processor so that it can directly access the eight elements adjacent to it.
Describes a dimensional interconnection network.
The communication medium is a dot-connected network where four adjacent elements are interconnected at each corner.
This U.S. patent also discloses a SIMD computer, but it is totally touched at whether or not local autonomy or grouping of PEs can or should be provided as in the present invention. Not not.

【0031】米国特許第4925311号は、本発明と
同様の機構の実現には、全く関係がない。この米国特許
では、1つの問題を解決すべく、多重プロセッサ・シス
テム内の複数のプロセッサを、グループとして割り当て
ることができる。更に、各プロセッサは、メッセージ
や、セマフォ及び他の制御を、他のプロセッサと授受す
るだけでなく、それ自体をグループへ付加したり、グル
ープからそれ自体を除去することができる。この米国特
許は、そのMIMDとしての性質上、本発明のようにS
IMDアレイ内のPEにおいて局所的自律性を与えるこ
とについては、何も記述してない。その代わり、この多
重プロセッサ・システム内の各プロセッサは、RAM、
マイクロプロセッサ及び或る機能ユニット(ディスク・
コントローラ)を含む処の、ネットワーク・インタフェ
ース・コントローラを有している。グループ化は、各プ
ロセッサのネットワーク・インタフェースによって制御
される。本発明は、このような精密なタスク分割を必要
としない。
US Pat. No. 4,925,311 has nothing to do with implementing a mechanism similar to the present invention. In this patent, multiple processors within a multiprocessor system can be assigned as a group to solve one problem. In addition, each processor can add and remove messages, semaphores and other controls from other processors as well as add itself to and remove itself from the group. Due to its MIMD nature, this US patent is
Nothing is said about providing local autonomy at the PEs in the IMD array. Instead, each processor in this multiprocessor system has a RAM,
Microprocessor and certain functional units (disk,
A network interface controller, including a controller). Grouping is controlled by the network interface of each processor. The present invention does not require such precise task division.

【0032】米国特許第4943912号は、NEWS
ネットワークに接続されたMIMDアレイ・プロセッサ
について記述している。即ち、アレイ・コントローラ
は、アレイ・プロセッサ内にある各PEのメモリにプロ
グラムをロードした後、実行を開始すべき複数のPEを
識別するために一の手続き開始指令を発行する。各PE
は、複数のタスク・パターンを保持するレジスタと、当
該PEのタスク・パターンを大域タスク・パターン・指
令と突き合わせるための比較手段を含んでいる。この比
較の結果は、当該PE内のプログラム開始点を選択する
ために用いられるか、又は当該PEをアイドル状態にす
るために用いられる。しかし、この米国特許は、本発明
のように、SIMDアレイ内のPEにおける自律性につ
いては、これを示唆していない。前述の比較手段及びそ
の比較結果は、種々の並行タスクのために、複数のPE
を分類するか、又はグループ化するために用いることが
できる。これに対し、本発明は、SIMD環境内の複数
のピケットが、それら自体を分類又はグループ化するこ
とをどのようにして許容されるか、ということを精密化
する。この効果は、SIMDコードの一のセクションが
実行されている間、複数のピケットの一部を分離してこ
れを活動的にすることにある。かくして、本発明の計算
機は、処理のために他のグループを起動するように進行
することができる。
US Pat. No. 4,943,912 describes NEWS.
It describes a MIMD array processor connected to a network. That is, the array controller loads the program into the memory of each PE in the array processor, and then issues one procedure start command to identify a plurality of PEs whose execution should be started. Each PE
Includes a register holding a plurality of task patterns and a comparing means for matching the task pattern of the PE with the global task pattern command. The result of this comparison is used to select a program start point within the PE or to put the PE into an idle state. However, this US patent does not suggest this for autonomy in PEs in SIMD arrays, like the present invention. The above-mentioned comparison means and the comparison result are used for a plurality of PEs for various parallel tasks.
Can be used to classify or group. In contrast, the present invention refines how multiple pickets in a SIMD environment are allowed to sort or group themselves. The effect is to isolate some of the pickets and make them active while a section of SIMD code is being executed. Thus, the computer of the present invention can proceed to activate other groups for processing.

【0033】米国特許第4967340号は、シストリ
ックなアレイ・プロセッサを記述している。このアレイ
・プロセッサ内の各処理要素は、2つのレジスタ、加算
器、乗算器及び3つのプログラマブル・スイッチから成
る。このアレイ・プロセッサを構成するため、その各処
理要素内のスイッチがコントローラによって設定され
る。その後、データは、所望の結果を作成するために、
これらの処理要素を通して送り込まれる。この米国特許
は、本発明に係るシステムを示唆していない。
US Pat. No. 4,967,340 describes a systolic array processor. Each processing element in the array processor consists of two registers, an adder, a multiplier and three programmable switches. To configure this array processor, the switches within each of its processing elements are set by the controller. The data is then used to create the desired result.
It is fed through these processing elements. This US patent does not suggest a system according to the present invention.

【0034】米国特許第5005120号は、複数のプ
ロセッサが存在しているという意味で、アレイ・プロセ
ッサを対象としている。しかし、この米国特許は、ビッ
ト直列の信号アレイ・プロセッサにおいて、データを整
列させる際に用いられる時間補償回路について記述して
いるに過ぎない。このアレイ・プロセッサの各処理要素
は、ALUにデータを供給する処の、4つのビット直列
レジスタから成る。第1のレジスタの前には、時間補償
回路が置かれている。このアレイ・プロセッサは、SI
MD計算機とは全く無関係である。
US Pat. No. 5,005,120 is directed to an array processor in the sense that multiple processors are present. However, this patent only describes a time compensation circuit used in aligning data in a bit serial signal array processor. Each processing element of the array processor consists of a four bit serial register which supplies data to the ALU. A time compensation circuit is placed in front of the first register. This array processor is SI
It has nothing to do with the MD calculator.

【0035】米国特許第5020059号は、欠陥PE
を除くようにアレイ・プロセッサを再構成して、基本的
な2次元メッシュ内でツリー及び他のトポロジを実現す
る処の、アレイ・プロセッサ用の一般化された相互接続
方式に係る。この米国特許には、アレイ制御アーキテク
チャや、グループ化、又はPEの任意の側面に係る記述
又は示唆は行われておらず、従って、PE内の自律性に
ついての記述も行われていない。しかし、本発明のSI
MD計算機では、アレイ・プロセッサ内の各ピケットに
おいて、従来通り、全く同じ動作を実行する。1つ以上
のピケットの局所的自律性を選択的に禁止(ディスエー
ブル)し且つ許可(イネーブル)することは、本発明の
基礎とも云うべき立脚点である。前述のような従来技術
の全ての努力があったにも拘わらず、1つの計算機によ
って、SIMD、MIMD及びSIMIMDプロセスを
実行することは、前掲の関連する特許出願を除き、これ
まで実現されていない。実際、SIMIMDプロセス、
浮動小数点演算その他に必要とされる機構は、当該技術
分野において十分に開発されていない。
US Pat. No. 5020059 describes defective PE.
To a generalized interconnection scheme for array processors, where the array processor is reconfigured to eliminate tree and other topologies within the basic two-dimensional mesh. This U.S. patent does not describe or suggest array control architecture, grouping, or any aspect of the PE, and therefore no description of autonomy within the PE. However, the SI of the present invention
In the MD computer, each picket in the array processor performs exactly the same operation as before. The selective disabling and enabling of local autonomy of one or more pickets is a cornerstone of the present invention. Despite all the efforts of the prior art as mentioned above, executing SIMD, MIMD and SIMIMD processes by one computer has not been realized so far except for the related patent applications mentioned above. . In fact, the SIMIMD process,
The mechanisms required for floating point arithmetic and others have not been fully developed in the art.

【0036】米国特許第5045995号は、各PE内
のデータ条件に基づいて、SIMDアレイの各PEの機
能を許可又は禁止するための機構について記述してい
る。一の大域命令が全てのPEに発行されると、各PE
はその内部にある一の条件をサンプルするとともに、状
態レジスタのビットを介して当該PE自体を許可又は禁
止する。他の大域命令は、これらのPEの状態を効果的
に交換させる。かかる機能は、IF/THEN/ELS
E及びWHILE/DOの構造体を実現するために用い
ることができる。更に、ネストされた許可条件をサポー
トするために、この状態をスタックすることができる。
このように、この米国特許は、本発明の許可/禁止機能
に関係している。しかし、この米国特許は、次の3つの
条件を必要とする。 1.初期テスト、状態ビットのロード、状態ビットに基
づく許可/禁止。 2.PEの他の集合を許可するように、全ての許可/禁
止ビットをフリップするための命令。 3.ネスティングを提供するための記憶装置。この米国
特許の前述の機能は、不必要に複雑化されている。これ
に対し、本発明の機構は、この米国特許の前記3つの条
件の全てを結合せずに、諸機能を許可/禁止することが
できる。本発明は、この米国特許に記述されているフリ
ップ機能を必要としないが、この米国特許が提供するよ
りも広範囲の能力をシステムに対し提供することができ
る。本発明のSIMD計算機は、IF及びELSE命令
の機能と、ビデオ処理に係る他の特徴との結合を、全く
必要としない。
US Pat. No. 5,045,995 describes a mechanism for enabling or disabling the function of each PE in a SIMD array based on the data conditions in each PE. When one global instruction is issued to all PEs, each PE
Samples a condition inside it and enables or disables the PE itself via a bit in the status register. Other global instructions effectively exchange the states of these PEs. Such a function is called IF / THEN / ELS
It can be used to realize E and WHILE / DO structures. In addition, this state can be stacked to support nested permit conditions.
Thus, this U.S. patent relates to the permit / prohibit function of the present invention. However, this US patent requires the following three conditions. 1. Initial test, load status bits, enable / disable based on status bits. 2. Instruction to flip all enable / disable bits to allow other sets of PEs. 3. A storage device for providing nesting. The aforementioned functionality of this US patent is unnecessarily complicated. In contrast, the mechanism of the present invention is capable of enabling / disabling functions without combining all three of the above conditions of this US patent. The present invention does not require the flip functionality described in this US patent, but can provide a wider range of capabilities to the system than the US patent provides. The SIMD computer of the present invention does not require any combination of IF and ELSE instruction functionality with other features of video processing.

【0037】一般に、当該技術分野における要請及び本
発明が目標とする技術に従って、前掲の関連する特許出
願には、100〜1000個のピケット(PE)から成
る並列アレイ・プロセッサが記述されている。ピケット
の選択された1つのグループ又は複数のグループによっ
て処理を行うことができるように、何らかの方法で複数
のピケットをグループ化することには、多くの理由があ
る。例えば、アレイ・プロセッサが2つ以上の多様なジ
ョブを含んでいたり、又は同一ジョブのうちでも極めて
多様な複数の部分を含んでいるような場合には、この選
択プロセスは、非常に厄介となるばかりか、多くの時間
を浪費することになる。例えば、幾何学的な問題のsi
ne/cosine部分の一部が、SIN(x)を処理
することを必要とし、他方、この問題の他の部分が、C
OS(x)を処理することを必要とすることがある。従
って、SINを計算している間は、COSを計算するグ
ループを非活動状態とし、次いで、COSを計算してい
る間は、SINを計算するグループを非活動状態とする
ことが行われる。
In general, in accordance with the needs in the art and the technology aimed at by the present invention, the related patent application cited above describes a parallel array processor of 100 to 1000 pickets (PE). There are many reasons for grouping multiple pickets in some way so that processing can be performed by a selected group or groups of pickets. This selection process can be very cumbersome if, for example, the array processor contains more than one diverse job, or multiple highly diverse parts of the same job. Not only that, it will waste a lot of time. For example, si on geometrical problems
Some of the ne / cosine parts require processing SIN (x), while the other part of the problem is C
It may be necessary to process the OS (x). Thus, while calculating SIN, the group calculating COS is deactivated, and then while calculating COS, the group calculating SIN is deactivated.

【0038】しかし、SIN又はCOSグループ内の値
が、計算したばかりの一の角度の結果であることを認識
すると、困難が生じてくる。かくして、SIN又はCO
Sグループへの割り当てを、極めて動的にすることが必
要となる。更に、複数のピケットが、2つ以上のグルー
プに所属することがあり、またこれらのピケットが、瞬
間的に異なるグループに所属するように、それぞれの状
態を動的に変更することがあるから、これらのピケット
については、それら自体を動的な態様で再割り当てする
ことが一層効率的となるであろう。
However, recognizing that the values in the SIN or COS group are the result of the one angle just calculated, difficulties arise. Thus, SIN or CO
It is necessary to make the allocation to the S group extremely dynamic. Further, since multiple pickets may belong to more than one group, and these pickets may dynamically change their states so that they momentarily belong to different groups, For these pickets, it would be more efficient to reassign themselves in a dynamic fashion.

【0039】この点に係る本発明の知見とは、各グルー
プの再割り当てを行わせたり、又はどのピケットがどの
グループに所属するかを実時間で知るために、アレイ・
コントローラを用いるべきではない、とうものである。
The knowledge of the present invention relating to this point is that array groups are re-assigned, or in order to know in real time which pickets belong to which group.
You shouldn't use a controller.

【0040】[0040]

【発明が解決しようとする課題】従って、本発明の目的
は、複数のピケット(PE)の動的で且つ自律的なグル
ープ化を有効に行うための機構を提供することにある。
SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a mechanism for effectively and dynamically grouping a plurality of pickets (PE).

【0041】[0041]

【課題を解決するための手段】本発明は、SIMD/M
IMDアレイにおいて、複数のピケットをグループ化す
るための機構を提供することに係り、更に詳細に説明す
れば、一のSIMD又はSIMIMDプログラムの実行
中に、SIMD計算機内の複数のピケット(PE:処理
要素)をグループ化することに係る。前掲の関連する特
許出願には、好ましい実施例の諸側面が記述されている
が、本発明の改良点は、アレイ・プロセッサ内の活動的
な全てのピケットによって並列に実行されるアレイ機能
として、複数のピケットを複数のグループに割り当てる
ための構造と、一のグループ問題に特有の計算を行うべ
き幾つかのピケットを選択するためにグループ化を用い
るための機構とを含んでいる。
The present invention is a SIMD / M
The present invention relates to providing a mechanism for grouping a plurality of pickets in an IMD array, and more particularly, to a plurality of pickets (PE: processing) in a SIMD computer during execution of one SIMD or SIMIMD program. Element) grouping. While the related patent applications cited above describe aspects of the preferred embodiment, an improvement of the present invention is that the array functions performed in parallel by all active pickets in the array processor are: It includes a structure for assigning multiple pickets to multiple groups, and a mechanism for using grouping to select some pickets for which one group problem specific computation should be performed.

【0042】これらの改良点は、SIMD/MIMDア
レイ内の複数のピケットをグループ化するための機構
を、アレイ・プロセッサに提供することによって達成さ
れる。このアレイ・プロセッサは、一のアレイ・コント
ローラと、SIMD動作モードで機能することができる
複数のピケットを有する。各ピケットは、一のALU、
複数のレジスタ及び一の局所メモリを有し、このアレイ
・プロセッサの動作中は、他のピケットと相互接続され
ている。各ピケットは、一のグループに所属する複数の
ピケットにおいてデータを個別的に処理するために、当
該ピケット自体を、1つ以上のグループに動的に割り当
てることができる。このアレイ・プロセッサ内にある全
てのピケットは、各クロック・サイクルごとに、アレイ
・コントローラから一の指令を受け取り且つこの指令を
実行する。この場合、或る指令は、異なる動作を生成す
るように各ピケット内で解釈することができ、そしてこ
のような動作の間、各ピケットはSIMIMD動作モー
ドで動作することができる。一のピケット内の独自の機
能は、アレイ・コントローラからのSIMD指令の結果
として、当該ピケットが一のSIMD命令ストリームの
処理に参加することを許可するか、又は当該ピケットが
当該SIMD命令ストリームの処理に参加することを禁
止する。
These improvements are achieved by providing the array processor with a mechanism for grouping multiple pickets in a SIMD / MIMD array. The array processor has an array controller and multiple pickets capable of functioning in SIMD mode of operation. Each picket has one ALU,
It has a number of registers and a local memory and is interconnected with other pickets during operation of the array processor. Each picket can dynamically assign itself to one or more groups in order to individually process the data in multiple pickets belonging to a group. Every picket in the array processor receives and executes one command from the array controller every clock cycle. In this case, certain commands can be interpreted within each picket to produce different actions, and during such actions, each picket can operate in SIMIMD operating mode. A unique function within a picket allows the picket to participate in the processing of the SIMD instruction stream as a result of SIMD commands from the array controller, or the picket processes the SIMD instruction stream. Prohibit participation in.

【0043】このアレイ・プロセッサは、局所的自律性
のための機構と、ピケットの内部状態を保存するための
ドーズ(休眠)モードと、ドーズ・ラッチを有する。こ
のドーズ・ラッチは、一のピケット内の計算結果によっ
て変更することができる。このドーズ・ラッチを変更可
能なピケット計算は、計算されるデータごとの、又はピ
ケットの局所メモリから読み取られるデータごとの、L
OAD/SET/RESET命令を含んでいる。
The array processor has a mechanism for local autonomy, a doze mode for preserving the picket's internal state, and a dose latch. This dose latch can be changed by the calculation result in one picket. This dose latch modifiable picket calculation is L for each data calculated or read from the picket's local memory.
It contains OAD / SET / RESET instructions.

【0044】本発明によれば、ピケットの状態は、当該
ピケット内の局所メモリに格納することを許可しないこ
とによって保存される。また、ピケット内の局所メモリ
の読み取り及び算術的計算を含む他の計算は、有効な結
果のみが前記ドーズ・ラッチへ移動されるようにして、
これを継続することができる。
According to the invention, the state of a picket is preserved by not allowing it to be stored in local memory within the picket. Also, other calculations, including reading local memory in the picket and arithmetic calculations, ensure that only valid results are moved to the dose latch.
This can be continued.

【0045】このグループ化の結果として、アレイ・プ
ロセッサ内にある複数のピケットのグループは、これら
のグループが含んでいる問題の型によって分割されるよ
うになっている。各ピケットは、一の問題について作業
を行っている1つ又は複数のグループに対し、当該ピケ
ット自体を割り当てるための手段を有している。
As a result of this grouping, groups of pickets within the array processor are divided by the type of problem they contain. Each picket has a means for assigning itself to one or more groups working on a problem.

【0046】本発明の新規な概念に従って設計された新
しいチップ及びシステムを作成することによって、超並
列計算機及び他の計算機を構築するための新しい技法が
提供される。本発明は、このようなシステムに向けられ
ている。
By creating new chips and systems designed in accordance with the novel concepts of the present invention, new techniques for building massively parallel and other computers are provided. The present invention is directed to such a system.

【0047】本明細書では、ピケット・プロセッサと、
高度並列アレイ・プロセッサ(APAP)が記述されて
いる。ピケット・プロセッサが、一のPME(プロセッ
サ・メモリ要素)を利用可能であることは興味深い。ピ
ケット・プロセッサが特に有用であるのは、非常に小型
のアレイ・プロセッサが所望される処の、軍事用のアプ
リケーションである。この関係において、ピケット・プ
ロセッサは、高度並列アレイ・プロセッサ(APAP)
に関連する本発明の実施例とは若干異なっている。しか
し、両プロセッサの間には共通性が存在するから、本発
明に従って提供される諸側面及び諸特徴を、これらの両
プロセッサにおいて利用することができる。
In this specification, a picket processor and
A highly parallel array processor (APAP) is described. It is interesting that the picket processor can utilize one PME (processor memory element). Picket processors are particularly useful in military applications where very small array processors are desired. In this context, the picket processor is a highly parallel array processor (APAP).
Is slightly different from the embodiment of the present invention relating to. However, because of the commonality between both processors, the aspects and features provided in accordance with the present invention can be utilized in both processors.

【0048】ピケットは、プロセッサ要素及びメモリ要
素並びに相互接続要素から形成される処の、一のアレイ
・プロセッサのn分の1の要素に相当する。また、この
ピケット概念は、APAPのn分の1にも適用可能であ
る。
A picket represents the 1 / nth element of an array processor as it is formed from processor and memory elements and interconnect elements. This picket concept can also be applied to 1 / nth of APAP.

【0049】ピケット・プロセッサとAPAPとを比較
すると、両プロセッサは、データの幅、メモリのサイズ
及びレジスタの数の点で相違することがあるけれども、
APAPの代替である超並列計算機の実現形態では、前
者が、規則的なアレイのn分の1に対する接続性(conn
ectivity)を有するように構成されるのに対し、後者の
APAP内のPMEはサブアレイの一部である、という
点で異なっている。両システムは、SIMIMDを実行
することができる。しかし、ピケット・プロセッサは、
MIMD型のPEを有するSIMD計算機として構成さ
れているから、SIMIMDを直接的に実行することが
できるのに対し、MIMD計算機として構成されている
APAPは、SIMDをエミュレートするように制御さ
れたMIMD型のPEを用いることによって、SIMI
MDを実行することができる。両計算機ともPMEを使
用する。
Comparing the picket processor and APAP, both processors may differ in data width, memory size and number of registers,
In an implementation of a massively parallel computer, which is an alternative to APAP, the former is conn
ectivity), whereas the latter PME in the APAP is part of a sub-array. Both systems are capable of performing SIMIMD. But the picket processor
Since it is configured as a SIMD computer having a MIMD type PE, SIMIMD can be directly executed, whereas an APAP configured as a MIMD computer is controlled by the MIMD emulated SIMD. By using the type PE, SIMI
MD can be executed. Both computers use PME.

【0050】両システムは、n個のPE及びこれらのP
Eを相互接続するための相互接続ネットワークから成る
処の、一の並列アレイ・プロセッサとして構成すること
ができる。この場合において、当該アレイ・プロセッサ
のn分の1は、一のPEと、その関連するメモリと、一
の制御バス・インタフェースと、前記相互接続ネットワ
ークの一部から成る。
Both systems consist of n PEs and their Ps.
It can be configured as a parallel array processor, consisting of an interconnection network for interconnecting Es. In this case, 1 / n of the array processor consists of a PE, its associated memory, a control bus interface and part of the interconnection network.

【0051】この並列アレイ・プロセッサは、2重の動
作モードを有しているから、その処理ユニットに対し、
SIMD動作及びMIMD動作用の2つのモードのうち
何れかのモードで動作し且つこれらの2つのモードの間
で自由に移行するように、指令することができる。即
ち、SIMD動作用のモードが選択されている場合、処
理ユニットは、各PEに対し、SIMIMDモードにお
いてそれ自体の命令を実行するように指令することがで
きる。他方、MIMD動作用のモードが選択されている
場合には、処理ユニットは、選択されたPEが、MIM
Dの実行をシミュレートすることを同期させることがで
きる。これは、MIMD−SIMDと呼ばれる。
Since this parallel array processor has a dual mode of operation,
It can be commanded to operate in either of two modes for SIMD and MIMD operation and to transition freely between these two modes. That is, if the mode for SIMD operation is selected, the processing unit may instruct each PE to execute its own instructions in SIMIMD mode. On the other hand, when the mode for MMD operation is selected, the processing unit determines that the selected PE is MIM.
Simulating the execution of D can be synchronized. This is called MIMD-SIMD.

【0052】両システム内の並列アレイ・プロセッサが
備えている相互接続ネットワークは、PE間で情報を受
け渡すための経路を有する。情報の移動については、2
種類の方法がある。第1の方法では、移動中のデータが
その宛先を定義しないために、全てのメッセージが同時
に同一の方向に移動するように、アレイ・コントローラ
が指令する。第2の方法では、各メッセージの開始部に
あるヘッダが定義する宛先に従って、各メッセージの自
己経路指定が行われる。
The interconnection network provided by the parallel array processors in both systems has a path for passing information between PEs. Regarding the movement of information, 2
There are different ways. In the first method, the array controller commands all messages to move in the same direction at the same time because the moving data does not define its destination. In the second method, each message is self-routed according to the destination defined by the header at the beginning of each message.

【0053】この並列アレイ・プロセッサのセグメント
は、単一の半導体チップ上に設けられる処理ユニットの
複数のコピーを有する。各セグメントは、当該セグメン
トに関連する相互接続ネットワークの一部と、バッファ
と、マルチプレクサと、前記相互接続ネットワークを拡
張するために、当該セグメントが他のセグメントと継ぎ
目なし(シームレス)に接続されることを可能にするた
めの制御部とを含んでいる。
A segment of this parallel array processor has multiple copies of a processing unit provided on a single semiconductor chip. Each segment has a portion of the interconnection network associated with it, a buffer, a multiplexer, and that segment is seamlessly connected to other segments to extend the interconnection network. And a control unit for enabling the above.

【0054】各処理ユニットごとにコントローラからの
制御バスが設けられている。この制御バスは、各PEに
延びていて、その動作を制御するようになっている。
A control bus from the controller is provided for each processing unit. This control bus extends to each PE and controls its operation.

【0055】並列アレイ・プロセッサの各処理要素セグ
メントは、単一の半導体チップの範囲内に含まれる処理
メモリ要素の複数のコピーを有し、また当該チップ内に
含まれるアレイ・セグメントへの制御の通信をサポート
するためにアレイ制御バスの一部とレジスタ・バッファ
とを含んでいる。
Each processing element segment of a parallel array processor has multiple copies of the processing memory elements contained within a single semiconductor chip and control of the array segments contained within that chip. It includes a portion of the array control bus and register buffers to support communication.

【0056】両者とも、メッシュ移動又は経路指定済み
の移動を実行することができる。通常、APAPは、2
重の相互接続構造を実現する。即ち、その一方では、半
導体チップ上の8個のPE(又はPME)が相互に関係
し、他方では、複数の半導体チップが相互に関係する。
一般に、チップ上のプログラム可能な経路指定は、前述
のようにPE(又はPME)間のリンクを確立させる
が、複数のノードは、他の方法で関係付けられる。チッ
プ上の通常のトポロジは、2x4のメッシュであって、
この場合のノードの相互接続は、経路指定済みとするこ
とができる。両システムは、PE(又はPME)間に相
互接続ネットワークを有しているために、一のマトリッ
クスが複数の2地点間ネットワークから構成されること
を可能にする。
Both can perform mesh moves or routed moves. APAP is usually 2
Realize a heavy interconnection structure. That is, on the one hand, eight PEs (or PMEs) on a semiconductor chip are related to each other, and on the other hand, a plurality of semiconductor chips are related to each other.
Generally, on-chip programmable routing establishes links between PEs (or PMEs), as described above, but multiple nodes are associated in other ways. The usual topology on the chip is a 2x4 mesh,
The interconnection of the nodes in this case can be routed. Both systems have an interconnection network between PEs (or PMEs), thus allowing a matrix to consist of multiple point-to-point networks.

【0057】[0057]

【実施例】図1には、一のSIMD又はSIMIDプロ
グラムの実行中に、一のSIMD計算機内にある複数の
ピケットをグループ化するための、本発明の改良点が示
されている。一層具体的に説明すると、図1には、一般
にはPEと呼ばれる処の、アレイ・プロセッサ内にある
複製可能(replicatable)な処理要素が示されている。
この複製可能な要素は、一のプロセッサ要素(ALU+
複数のレジスタ)と、一の局所メモリと、当該複製可能
な処理要素をアレイ・プロセッサ内にある他の複製可能
な処理要素と相互接続するための手段を含んでいる。こ
れらの複製可能な処理要素は、SIMDモードにおい
て、一のアレイ・コントローラによって制御される。こ
のアレイ・コントローラは、アレイ・プロセッサを構成
する処の、1組の複製可能な処理要素の機能を制御する
ためのものである。複製可能な処理要素の各々は、アレ
イ・プロセッサの一のノードである。幾つかのシステム
では、各ノードは、複数のチップのグループから成る。
本発明の好ましい実施例では、各ノードは、前掲の関連
する特許出願に記述されているように、1組のピケット
から成るものとして考えることができる。また、各ピケ
ットは、単一のチップ上に搭載されている1組の処理要
素のうちの1つである。これらの1組の処理要素は、S
IMDモードにおいて共通の制御を受けることができる
が、MIMDモードにおいても機能することができる。
余り高度でないシステムにおいては、これらの1組の処
理要素を、個別的なプロセッサ要素(ALU、レジス
タ、メモリ、I/O)とすることができる。その場合に
おいて、これらの個別的なプロセッサ要素を、外部通信
手段を備えた単一のチップ上に搭載するか、又はそれぞ
れ独立のチップ要素として複製することができる。本発
明のグループ化の概念を利用することが特に有利である
のは、単一のチップ上に1組の処理要素が搭載されてい
るような場合である。本発明は、超並列アレイ・プロセ
ッサにおいて用いることができる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT FIG. 1 illustrates an improvement of the present invention for grouping multiple pickets within a SIMD computer during execution of a SIMD or SIMID program. More specifically, FIG. 1 illustrates a replicatable processing element within an array processor, commonly referred to as a PE.
This replicable element is one processor element (ALU +
A plurality of registers), a local memory, and means for interconnecting the replicable processing element with other replicable processing elements in the array processor. These replicable processing elements are controlled by an array controller in SIMD mode. The array controller is for controlling the function of a set of replicable processing elements that make up the array processor. Each of the replicable processing elements is a node of the array processor. In some systems, each node consists of a group of chips.
In the preferred embodiment of the present invention, each node can be thought of as consisting of a set of pickets, as described in the related patent applications cited above. Also, each picket is one of a set of processing elements mounted on a single chip. These one set of processing elements is S
Although it is possible to receive common control in the IMD mode, it can also function in the MIMD mode.
In less sophisticated systems, these sets of processing elements can be individual processor elements (ALUs, registers, memory, I / O). In that case, these individual processor elements may be mounted on a single chip with external communication means or may be duplicated as independent chip elements. It is particularly advantageous to utilize the grouping concept of the present invention when a set of processing elements are mounted on a single chip. The present invention can be used in a massively parallel array processor.

【0058】前掲の関連する特許出願が好ましい実施例
の諸側面を記述しているが、本発明の改良点は、アレイ
・プロセッサ内の活動的な全てのピケットによって並列
に実行されるアレイ機能として、複数のピケットを複数
のグループに割り当てるための構造と、一のグループ問
題に特有の計算を行うべき幾つかのピケットを選択する
ためにグループ化を用いるための機構とを含んでいる。
図1には、各ピケットから、複数のピケットのグループ
化を制御するための概念が示されている。各グループに
割り当てられる一のメモリ位置では、当該グループへの
参加を指示するために、各ピケットが、一のビットをセ
ット又はリセットする。このメモリ位置は、個別的なピ
ケットと直接的に関連する処の、局所メモリの一部であ
ることが好ましい。このメモリ位置は、複製可能なピケ
ットの一部を形成することが好ましいが、共有メモリの
一部を大域メモリとして割り当て且つ他の一部を局所メ
モリとして割り当てるようなシステムでは、後者の局所
メモリ部分が、このメモリ位置に相当する。最初、特定
の共通性を有する全てのピケットから、一のグループが
構成される。本発明が、何らかの方法で複数のピケット
をグループ化せんとするのには、多くの理由がある。1
つの例は、アレイ・プロセッサが2つ以上の多様なジョ
ブを含んでいたり、又は同一ジョブのうちでも極めて多
様な複数の部分を含んでいるような場合である。
While the related patent application cited above describes aspects of the preferred embodiment, an improvement of the present invention is that the array functions performed in parallel by all active pickets in the array processor. , A structure for assigning multiple pickets to multiple groups, and a mechanism for using grouping to select some pickets to perform a computation specific to one group problem.
FIG. 1 shows a concept for controlling grouping of a plurality of pickets from each picket. At one memory location assigned to each group, each picket sets or resets a bit to indicate participation in the group. This memory location is preferably part of local memory, where it is directly associated with an individual picket. This memory location preferably forms part of the replicable picket, but in systems where one part of shared memory is allocated as global memory and the other part as local memory, the latter local memory part Corresponds to this memory location. Initially, a group is constructed from all the pickets with a certain commonality. There are many reasons why the present invention attempts to group multiple pickets in some way. 1
One example is when an array processor contains more than one diverse job, or a very diverse portion of the same job.

【0059】複数のピケットは、これら自体を幾つかの
グループのうちの1つ以上のグループに割り当てること
ができ、そしてこれらのグループ化に基づいて、処理を
進行させることができる。或る時点で計算を行っている
ピケットの数が多ければ多いほど好ましいが、幾つかの
動作については、ピケットのサブセット・グループを用
いて作業を行うことが必要となる。局所的自律性は、こ
の作業を行うためのツールであって、これについては既
に説明した。
Pickets can assign themselves to one or more of several groups, and processing can proceed based on these groupings. The more pickets that are computing at a given time, the better, but for some actions it may be necessary to work with a subset group of pickets. Local autonomy is a tool for doing this task, which we have already discussed.

【0060】次に、アレイ・コントローラが、どのピケ
ットがどのグループに所属するかを知ることを必要とせ
ずに、諸ピケットが、それら自体を諸グループ内に所属
させることができる興味深い方法を説明する。
Next, we will describe an interesting way in which pickets can themselves belong to groups without the array controller needing to know which pickets belong to which group. .

【0061】SIMD計算機は、高度の局所的自律性を
有しているとしても、或る時点では1組の同種の問題に
ついて作業を行う必要がある。アレイ・プロセッサ内の
活動的(参加)ピケットが一の問題について作業を行っ
ている間、当該アレイ・プロセッサの非活動的(非参
加)ピケットは、ドーズ状態に置かれる。ドーズ・モー
ドに置かれている各ピケットは、当該ピケット内にある
問題及びデータが妨害されないように、その活動を制限
される。ドーズ・モードに置かれているピケットは、依
然としてその局所メモリを読み取ることができ、しかも
他のピケットが行うような殆どの動作を行うことができ
るが、その局所メモリ又はレジスタへの格納を行うこと
はできない。但し、その例外として、状態ワード内にド
ーズ・ビットを格納することができるようになってい
る。かくして、一のピケットは、新しい状態を計算する
とともに、当該ピケットを再起動(覚醒)させるため
に、ドーズ・ビットをロードすることができる。
Even though SIMD computers have a high degree of local autonomy, at some point they need to work on a set of similar problems. While the active (participating) pickets in an array processor are working on a problem, the inactive (non-participating) pickets of the array processor are placed in the doze state. Each picket placed in the doze mode is restricted in its activity so that the problems and data in the picket are not disturbed. A picket placed in doze mode can still read its local memory, and can do most of the same operations as other pickets do, but does store to that local memory or register. I can't. With the exception of this, the dose bit can be stored in the status word. Thus, one picket can load the dose bit to calculate a new state and restart (wake up) the picket.

【0062】本発明に従ったグループ化の重要な特徴
は、各ピケットが一のグループ又は複数のグループに所
属するかについての決定を、当該ピケットが行うことに
ある。従って、この割り当て及び再割り当てプロセス
は、一の並列動作であって、これと同様の動作を多数の
ピケットが並列に行うことができる。アレイ・コントロ
ーラは、どのピケットがどのグループに所属するかを知
る必要さえない。しかし、このような情報を必要とする
場合、アレイ・コントローラは、各ピケットからの状態
を読み取ることができる。かくして、かかるアレイ・コ
ントローラの機能は、図1において「実行/ドーズ状
態」と表記されている処の、各ピケットに関連するレジ
スタ内に配置される。このレジスタは、当該ピケットの
内部に設けられていて、その内容をアレイ・コントロー
ラによって読み取ることができる。
An important feature of the grouping according to the invention is that the picket makes a decision as to whether each picket belongs to a group or a plurality of groups. Therefore, this allocation and reallocation process is one parallel operation, and many pickets can perform the same operation in parallel. The array controller does not even need to know which pickets belong to which groups. However, if such information is needed, the array controller can read the status from each picket. Thus, the functions of such an array controller are located in the registers associated with each picket, labeled "run / dose" in FIG. This register is provided inside the picket and its contents can be read by the array controller.

【0063】別個の複数のグループを確立するために、
各ピケットの内部で、各グループごとに一のメモリ位置
が予約される。全てのピケットの内部にあるメモリ位置
「xx1」は、図1に示されているように、グループ1
に対応するドーズ制御ビットを保持する。このドーズ・
ビットへロードされるような計算済みの値は、先ず、各
ピケットにおいて適当なグループに対応するメモリ位置
へ格納される。次いで、この値は、当該ピケットの状態
を変化させるように、ドーズ・ビット内へ入れられる。
本発明によれば、個別的な処理に先立ち、幾つかのグル
ープを識別し且つ設定するために、これらのグループに
対応するメモリ位置に、適当な2進パターン(1/0)
をロードする。一のグループを識別するには、一の動作
の桁上げ出力及び/又はゼロ条件を調べるとともに、そ
の値を一のグループへロードするようにすればよい。諸
グループを設定するには、次のような方法がある。
To establish separate groups,
Inside each picket, one memory location is reserved for each group. The memory location "xx1" inside all pickets is group 1 as shown in FIG.
Hold the dose control bit corresponding to. This dose
The calculated value as loaded into the bit is first stored in the memory location corresponding to the appropriate group in each picket. This value is then put into the dose bit to change the state of the picket.
According to the invention, in order to identify and set several groups prior to individual processing, the appropriate binary pattern (1/0) is placed in the memory locations corresponding to these groups.
To load. One group can be identified by examining the carry output and / or zero condition of one operation and loading that value into the one group. There are the following methods to set groups.

【0064】・1の桁上げ出力を有する処の、全てのピ
ケットをグループ化する。・選択されたメモリ位置の内
容が正である処の、全てのピケットをグループ化する。
・選択されたメモリ位置のの内容が特定の同報通信値に
等しい処の、全てのピケットをグループ化する。
Group all pickets where they have a carry output of 1. Group all pickets where the content of the selected memory location is positive.
Group all pickets where the contents of the selected memory location is equal to a particular broadcast value.

【0065】もし、一のピケットがグループ2に所属す
るのであれば、当該ピケット内のメモリ位置「xx2」
は、論理1を保持し、さもなければ、論理0を保持す
る。ドーズ・ビットを変更するには、3つの指令(LO
AD/SET/RESET)を用いることができる。第
1の指令「LOAD DOZE」は、活動的なグループ
を、各々のメモリ位置(例えば、xx3)において論理
1を保持するような全てのピケットから成るグループへ
変更させる。以前にオン状態であったが、そのメモリ位
置「xx3」に論理0を保持するようなピケットは、オ
フに転じられる。第2の指令「SET DOZE」は、
各々のメモリ位置(例えばxx4)において論理1を保
持するような全てのピケットを、活動的なグループに追
加する。この場合は、如何なるピケットもオフに転じら
れない。第3の指令「RESET DOZE」は、各々
のメモリ位置(例えばxx4)において論理1を保持す
るような全てのピケットを、活動的なグループから除去
する。
If one picket belongs to group 2, memory location "xx2" in the picket.
Holds a logical one, otherwise it holds a logical zero. To change the dose bit, three commands (LO
AD / SET / RESET) can be used. The first command, "LOAD DOZE," causes the active group to change to a group of all pickets that hold a logical one at each memory location (eg, xx3). A picket that was previously in the on state but holds a logic 0 in its memory location "xx3" is turned off. The second command “SET DOZE” is
Add all pickets that hold a logical one at each memory location (eg xx4) to the active group. In this case, no picket can be turned off. The third command, "RESET DOZE," removes from the active group all pickets that hold a logic one at each memory location (eg, xx4).

【0066】これらの指令、即ちLOAD、SET(A
ND)及びRESET(OR)を用いると、既存のグル
ープの論理的な関係に基づいて、新しいグループを構築
するための論理機能を効果的に使用することができる。
また、集合理論を用いて、このピケット・データフロー
内で既存の複数のグループを論理的にマージすることに
よって、一の新しいグループを構築することができる。
These commands, namely LOAD, SET (A
With ND) and RESET (OR), the logical functions for building a new group can be effectively used based on the logical relationships of existing groups.
Also, using set theory, one new group can be constructed by logically merging existing groups within this picket data flow.

【0067】この点に至るまでは、アレイ・コントロー
ラは、複数のグループの存在を知っている。なぜなら、
このアレイ・コントローラは、これらのグループとの処
理に拘わっていて、活動的な処理をグループ間で変更さ
せてきたからである。しかし、このアレイ・コントロー
ラは、どのピケットがどのグループに所属するか、又は
実際に特定のグループが空であるか(ピケットが全くな
い)否かについては、全く知っていない。
To this point, the array controller is aware of the existence of multiple groups. Because
The array controller is concerned with processing with these groups and has caused active processing to change between groups. However, the array controller knows nothing about which pickets belong to which groups, or whether a particular group is actually empty (no pickets).

【0068】このアレイ・コントローラは、必要に応じ
て、他の機能を用いることにより、個別的なピケット上
の情報を読み取ることができる。これらの機能の結果
は、対象とするピケットのアドレスを与えることにあ
る。以下に、3つの例が示されている。 ・所定のグループ内で、最新の値を有するピケットを見
つける。 ・所定のグループ内で、最小のアドレスを有するピケッ
トを見つける。 ・所定のグループ内で、互いに最も接近しているような
値を有するピケットを見つける。
The array controller can read information on individual pickets by using other functions as needed. The result of these functions is to provide the address of the picket of interest. Below, three examples are given. Find the picket with the latest value in a given group. Find the picket with the lowest address in a given group. Finding pickets within a given group that have values that appear to be closest to each other.

【0069】これらのケースの各々において、アレイ・
コントローラは、一連の命令を実行することを通して、
所望の値を有するピケットを分離しなければならない。
所望のピケットを分離するために、種々のピケット間命
令を用いることができる。この時点において、所望のピ
ケットは、依然として覚醒している唯一のピケットであ
る。アレイ・コントローラは、そのアドレスを要求し、
その局所メモリからデータを読み取るか又はその局所メ
モリにデータをロードすることができる。
In each of these cases, the array
The controller, through executing a series of instructions,
Pickets with the desired values must be separated.
Various inter-picket instructions can be used to separate the desired pickets. At this point, the desired picket is the only picket that is still awake. The array controller requests that address,
Data can be read from or loaded into the local memory.

【0070】アレイ・プロセッサ内のグループ化機能
は、SIMDにおいてのみではなく、SIMIMDなど
の他のモードにおいても、強力なツールとなる。
The grouping function within the array processor is a powerful tool not only in SIMD, but also in other modes such as SIMIMD.

【0071】[0071]

【発明の効果】以上のように、本発明によれば、複数の
ピケット(PE)の動的で且つ自律的なグループ化を有
効に行うための機構を提供することができる。
As described above, according to the present invention, it is possible to provide a mechanism for effectively and dynamically grouping a plurality of pickets (PE).

【図面の簡単な説明】[Brief description of drawings]

【図1】各ピケットから複数のピケットをグループ化す
るための制御概念を示す図である。各グループに割り当
てられる一のメモリ位置では、当該グループ内への参加
を指示するために、各ピケットが、一のビットをセット
又はリセットする。このメモリ位置は、個別的なピケッ
トと直接的に関連する処の、局所メモリの一部であるこ
とが好ましい。
FIG. 1 is a diagram showing a control concept for grouping a plurality of pickets from each picket. At one memory location assigned to each group, each picket sets or resets a bit to indicate participation in the group. This memory location is preferably part of local memory, where it is directly associated with an individual picket.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムズ ワレン ディーフェンダー ファー アメリカ合衆国13827、ニューヨーク州 オウゴ、フロント ストリート 396 (72)発明者 ピーター マイケル コッジ アメリカ合衆国13760、ニューヨーク州 エンディコット、ドーチェスター ドラ イヴ 7 (56)参考文献 米国特許4831519(US,A) ─────────────────────────────────────────────────── ————————————————————————————————————————————————————————————————————————————————————————————————————————————————–——————————————————————————————————————— D. 3-17 Inerator James Warren DeFender Far United States 13827, Ougo, New York Front Street 396 (72) Inventor Peter Michael Codge United States 13760, New York Endicott, Dorchester Drive 7 (56) ) Reference US Patent 4831519 (US, A)

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 アレイ・コントローラと、SIMD動作
モードで動作する複数の処理要素とを備えるアレイ・プ
ロセッサであって、 前記処理要素の各々が、算術演算要素、複数のレジス
タ、局所メモリ、及び前記アレイ・プロセッサ内の他の
処理要素との相互接続手段を含むピケットから成り、 各ピケットが、前記アレイ・プロセッサの動作中に相互
接続され、 各ピケットが、ピケットのグループ(以下「ピケット・
グループ」と称する)内でデータを個別的に処理するた
めに、当該ピケット自体を、1つ又は複数のピケット・
グループに動的に割り当てるための手段を有し、 前記アレイ・プロセッサ内の全てのピケットが、各クロ
ック・サイクルごとに、前記アレイ・コントローラから
指令を受け取って当該指令を実行し、 更に、各ピケットの前記局所メモリが、ピケット・グル
ープの各々に対応する一のメモリ位置を有し、当該メモ
リ位置の状態によって、当該メモリ位置に対応するピケ
ット・グループに当該ピケットが参加するか否かを表示
するようにした、アレイ・プロセッサ。
1. An array processor comprising an array controller and a plurality of processing elements operating in a SIMD operating mode, each processing element comprising an arithmetic operation element, a plurality of registers, a local memory, and The array processor comprises pickets including means for interconnecting with other processing elements, each picket being interconnected during operation of the array processor, and each picket having a group of pickets (hereinafter "picket
(Referred to as a "group") to process the data individually within the picket itself.
Means for dynamically assigning to a group, all pickets in the array processor receiving and executing a command from the array controller on each clock cycle; Of the local memory has a memory location corresponding to each of the picket groups, and the state of the memory location indicates whether or not the picket participates in the picket group corresponding to the memory location. Array processor.
【請求項2】 各ピケットが、当該ピケットの内部状態
を保存するためのドーズ・モード手段及びドーズ・ラッ
チを有し、当該ドーズ・ラッチの内容が、当該ピケット
内の計算の結果に応じて変更されるようにした、請求項
1記載のアレイ・プロセッサ。
2. Each picket has a dose mode means and a dose latch for storing the internal state of the picket, the contents of the dose latch being changed according to the result of the calculation in the picket. The array processor according to claim 1, wherein
【請求項3】 各ピケットの内部状態を保存するため
に、当該ピケットの状態に影響する計算の結果だけが前
記ドーズ・ラッチにロードされるように、当該ピケット
内の前記局所メモリへの格納を禁止するとともに、当該
ピケット内の前記局所メモリの読み取り及び算術計算を
含む他の動作を継続することを許容するようにした、請
求項2記載のアレイ・プロセッサ。
3. To store the internal state of each picket, storing in the local memory within the picket so that only the results of calculations affecting the state of the picket are loaded into the dose latch. 3. The array processor of claim 2, wherein the array processor is prohibited and allowed to continue other operations, including reading of the local memory and arithmetic operations in the picket.
JP5092765A 1992-05-22 1993-04-20 Array processor Expired - Lifetime JP2543306B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US887455 1986-07-21
US88745592A 1992-05-22 1992-05-22

Publications (2)

Publication Number Publication Date
JPH0619864A JPH0619864A (en) 1994-01-28
JP2543306B2 true JP2543306B2 (en) 1996-10-16

Family

ID=25391171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5092765A Expired - Lifetime JP2543306B2 (en) 1992-05-22 1993-04-20 Array processor

Country Status (1)

Country Link
JP (1) JP2543306B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502029A (en) * 2004-03-16 2008-01-24 テクノロジー プロパティーズ リミテッド Computer processor array
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7934075B2 (en) 2006-02-16 2011-04-26 Vns Portfolio Llc Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502029A (en) * 2004-03-16 2008-01-24 テクノロジー プロパティーズ リミテッド Computer processor array
JP4856053B2 (en) * 2004-03-16 2012-01-18 ブイエヌエス ポートフォリオ エルエルシー Computer processor array
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7934075B2 (en) 2006-02-16 2011-04-26 Vns Portfolio Llc Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array
US8825924B2 (en) 2006-02-16 2014-09-02 Array Portfolio Llc Asynchronous computer communication

Also Published As

Publication number Publication date
JPH0619864A (en) 1994-01-28

Similar Documents

Publication Publication Date Title
US5828894A (en) Array processor having grouping of SIMD pickets
US11055141B2 (en) Quiesce reconfigurable data processor
US5815723A (en) Picket autonomy on a SIMD machine
US5828858A (en) Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US9052957B2 (en) Method and system for conducting intensive multitask and multiflow calculation in real-time
JPH04267466A (en) Parallel processing system and data comparing method
Kartashev et al. A multicomputer system with dynamic architecture
US7673118B2 (en) System and method for vector-parallel multiprocessor communication
JP2018073414A (en) Method of controlling work flow in distributed computation system comprising processor and memory units
JP2021511576A (en) Deep learning accelerator system and its method
TWI666551B (en) Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
US20070136560A1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
EP3555760A1 (en) Parallel processing on demand using partially dynamically reconfigurable fpga
WO2002003592A2 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
Lea WASP: A WSI associative string processor
Lipovski On a varistructured array of microprocessors
Yang et al. Venus: A versatile deep neural network accelerator architecture design for multiple applications
JP2543306B2 (en) Array processor
Vick et al. Adptable Architectures for Supersystems
EP0199757B1 (en) Instruction flow computer
US5765012A (en) Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
Siegel et al. The organization of the PASM reconfigurable parallel processing system
Chantamas et al. A multiple associative model to support branches in data parallel applications using the manager-worker paradigm
Schwederski et al. Optimizing Task Migration Transfers Using Multistage Cube Networks.
CN114489809A (en) High-flux many-core data flow processor and task execution method thereof