JP2521401B2 - 単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ - Google Patents

単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ

Info

Publication number
JP2521401B2
JP2521401B2 JP5119334A JP11933493A JP2521401B2 JP 2521401 B2 JP2521401 B2 JP 2521401B2 JP 5119334 A JP5119334 A JP 5119334A JP 11933493 A JP11933493 A JP 11933493A JP 2521401 B2 JP2521401 B2 JP 2521401B2
Authority
JP
Japan
Prior art keywords
array
controller
picket
data
control
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
JP5119334A
Other languages
English (en)
Other versions
JPH0635878A (ja
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 JPH0635878A publication Critical patent/JPH0635878A/ja
Application granted granted Critical
Publication of JP2521401B2 publication Critical patent/JP2521401B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ及びコンピ
ュータ・システムに関し、特にプロセッサ・アレイに関
する。本発明は、更に詳細には、複合オペレーション・
モード(単一命令複数命令複数データ、SIMIMD)と称す
るモードのPE内で自律的に命令遂行可能なSIMDプ
ロセッサ・アレイのオペレーションを制御し監視する制
御要素に関する。
【0002】
【従来の技術】相互参照特許出願 本願は下記の関連特許出願の部分継続出願であり、その
優先権を要求する。“並列連想プロセッサ・システム”
と称するジェイ・ディーフェンダーファほかにより19
90年11月13日に提出の米国特許出願611,59
4号。“動的複数モード並列プロセッサ・アレイ・アー
キテクチャ”と称するピー・エム・コージにより199
1年11月27日に提出の米国特許出願798,788
号。
【0003】更に、本願は本願と同時出願の下記特許出
願と関連がある。 “SIMD処理要素内の命令”と称するピー・エイ・ウ
イルキンソンほかにより1992年5月22日に提出の
米国特許出願。 “SIMD機における浮動小数点の実現”と称するピー
・エイ・ウイルキンソンほかにより1992年5月22
日に提出の米国特許出願。 “SIMDピケットのグループ化”と称するピー・エイ
・ウイルキンソンほかにより1992年5月22日に提
出の米国特許出願。 “アレイ・プロセッサ用スライド・ネットワーク”と称
するピー・エイ・ウイルキンソンほかにより1992年
5月22日に提出の米国特許出願。 “SIMD機におけるピケットの自律化”と称するピー
・エイ・ウイルキンソンほかにより1992年5月22
日に提出の米国特許出願。 “H−DOTSに基づくアレイ・プロセッサ通信ネット
ワーク”と称するピー・エイ・ウイルキンソンほかによ
り1992年5月22日に提出の米国特許出願。 “SIMD/MIMD機用制御機能”と称するアール・
アール・リチャードソンほかにより1992年5月22
日に提出の米国特許出願。
【0004】更に、本願は下記特許出願に関連がある。 “拡張並列アレイ・プロセッサ”と称するティー・バー
カほかにより1992年5月22日に提出の米国特許出
願。 “SIMD/MIMD処理メモリー要素”と称するティ
ー・バーカほかにより1992年5月22日に提出の米
国特許出願。 “PME記憶及び転送/回路切替モード”と称するティ
ー・バーカほかにより1992年5月22日に提出の米
国特許出願。 “完全分散処理メモリー要素”と称するティー・バーカ
ほかにより1992年5月22日に提出の米国特許出
願。 “N次元修正ハイパーコード”と称するティー・バーカ
ほかにより1992年5月22日に提出の米国特許出
願。
【0005】“拡張並列プロセッサ・アレイ・ディレク
タ”と称するエム・ダップほかにより1992年5月2
2日に提出の米国特許出願。 “APAP機械的パッケージ”と称するエム・ダップほ
かにより1992年5月22日に提出の米国特許出願。 “APAP I/O プログラマブル・ルータ”と称す
るエム・ダップほかにより1992年5月22日に提出
の米国特許出願。 “APAP I/O ジッパ接続”と称するティー・バ
ーカほかにより1992年3月に提出の米国特許出願。
【0006】本願及び上記出願中の特許出願はニューヨ
ーク州アーモンクのインターナショナル・ビジネス・マ
シーンズ・コーポレイションに譲渡され所有されてい
る。上記出願中の特許出願の記載は参照事項により本願
に編入される。
【0007】他の相互参照特許出願 本願と同一譲受人に譲渡され、本願出願時に所有した相
互参照特許出願は下記のものを含む。1988年9月2
7日に提出され、現在は“SIMDアレイ・プロセッ
サ”と称するジェイムス・エル・テイラにより1990
年5月4日に提出されたその継続出願第07/519,
332号の利益となるように放棄された米国特許出願第
07/250,595号(1989年5月3日にEPO
出願第88307855/88−Aとして最初開示され
た)。
【0008】“ポリモルフィック・メッシュに任意なグ
ラフを実現する回路及び方法”と称するエイチ・リーに
より1988年5月13日に提出の米国特許出願第07
/193,990号。 “大容量並列SIMDコンピュータ用2次元入出力方
式”と称するアール・ジャフェほかにより1989年1
0月24日に提出の米国特許出願第07/426,14
0号。 “並列プロセッサ・システムにおけるメモリー保護操作
実行装置及び方法”と称するダヴリュー・シー・ディー
トリック,ジュニアほかにより1989年11月21日
に提出の米国特許出願第07/439,758号。
【0009】“相互接続処理要素システム及び相互接続
方法”と称するダヴィド・ビー・ロルフにより1991
年5月13日に提出の米国特許出願第07/698,8
66号。出願中の上記参照全特許出願は本願と同一譲受
人であるインターナショナル・ビジネス・マシーンズ・
コーポレイションに譲渡され所有されている。上記特許
出願の記載は参照事項により本願に編入される。
【0010】使用用語集 ・ALU プロセッサの演算論理装置である。 ・アレイ 1次元以上の構成要素又は要素の配列を示す。アレイは
ホートランのような言語において単一名で識別される順
序付きデータ項目(アレイ要素)群を含む。他の言語に
おいては、かかる順序付きデータ項目群の名称は全べて
同一属性を有するデータ要素群又は順序付き集合を示
す。
【0011】プログラム・アレイは一般に数又は次元属
性によって指定された次元を有する。又、アレイの宣言
子はある言語のアレイの各次元のサイズを指定すること
ができる。ある言語において、アレイはテーブルの要素
の配列である。ハードウェアを意味する場合、アレイは
大規模並列アーキテクチャの全体的に同一な構造(機能
要素)の集合である。データ並列演算におけるアレイ要
素は、並列が各独立であり、要求されたオペレーション
を並列に実行することができるときに、そのオペレーシ
ョンを割当てることができる要素である。一般に、アレ
イは処理要素の格子とみなすことができる。アレイの各
部には、部分データが正規の格子パターンの周囲を移動
することができるように、その部分データを割当てるこ
とができる。しかし、データはアレイの任意な位置に割
振り、又は割当てることができる。
【0012】・アレイ・ディレクタ アレイに対する制御装置としてプログラムされた装置で
ある。アレイ・ディレクタはアレイに配列された機能要
素のグループ化に対するマスタ・コントローラ(又は制
御装置)の機能を実行する。
【0013】・アレイ・プロセッサ 2つの主なタイプのアレイ・プロセッサがある。その1
つは複数命令複数データ(MIMD)アレイ・プロセッ
サであり、他方は単一命令複数データ(SIMD)アレ
イ・プロセッサである。MIMDアレイ・プロセッサに
おいては、アレイの処理要素は共通の命令ストリームを
経由する同一命令に制限されるが、各処理要素に関連す
るデータは個有である。本発明の好ましいアレイ・プロ
セッサは他の特性を有する。それは拡張アレイ・プロセ
ッサと呼称され、頭字語APAPを使用する。
【0014】・非同期 正規の時間関係がないことである。一方の機能の遂行に
より他方の機能の遂行を予想することができないという
ことである。すなわち、他方の機能の遂行との関係にお
いて規則的な又は予想可能な時間関係を持たずに発生す
るものである。制御状況下において、データが遊休要素
をアドレスするのを待ち状態にあるとき、コントローラ
は制御を引渡す位置を指定する。これによりオペレーシ
ョンの順次は維持されるが、他の事象の発生時刻と一致
しない。
【0015】・BOPS/GOPS BOPS又はGOPSは秒当り大量(数10億)のオペ
レーションと同じ意味を有する頭字語である。GOPS
参照。
【0016】・回路切替/記憶転送 これらの用語はノード・ネットワークを通してデータ・
パケットを移動する2つの機構を示す。記憶転送は各中
間ノードがデータ・パケットを受信し、そのメモリーに
記憶し、そしてその受信先の方に転送する。回路切替は
データ・パケットを中間ノード・メモリーに入力せず
に、そのノードを通して受信先の方に直接データ・パケ
ットを通過するよう、中間ノードの入力ポートを出力ポ
ートに論理的に接続することを指令する機構である。
【0017】・クラスタ クラスタは制御装置(クラスタ・コントローラ)及びそ
れに接続されたハードウェア(ターミナル機能装置、又
は仮想構成要素でよい)とから成るステーション(又は
端末、機能装置)である。本願のクラスタはノード・ア
レイとも称するPMEのアレイを含む。通常、クラスタ
は512PMEを持つ。本願の全PMEノード・アレイ
は、各々がクラスタ・コントローラ(CC)によって支
援されるクラスタ群から成る。
【0018】・クラスタ・コントローラ クラスタ・コントローラは1以上の装置又はそれに接続
されている機能装置に対する入出力(I/O)オペレー
ションを制御する装置である。クラスタ・コントローラ
は通常、それがIBM3601金融機関通信制御装置に
存在する場合には、装置に記憶されそこで遂行されるプ
ログラムによって制御されるが、それがIBM3272
制御装置に存在する場合には、ハードウェアにより全体
的に制御されうるものである。
【0019】 ・クラスタ・シンクロナイザクラスタ・シンクロナイザ
は構成要素の同期オペレーションを維持するため、クラ
スタの一部又は全部のオペレーションを管理する機能装
置である。この機能装置はプログラムの遂行と特定の時
間関係を維持する。
【0020】・コントローラ コントローラは相互接続ネットワークのリンクを経由し
てデータ及び命令の送信を制御する装置である。そのオ
ペレーションはコントローラが接続されているプロセッ
サで遂行されるプログラムにより、又は装置内で遂行さ
れるプログラムによって制御される。
【0021】・CMOS CMOSは相補型金属酸化物半導体技術に対する頭字語
である。それは通常動的ランダム・アクセス・メモリー
(DRAM)の製造に使用される。NMOSはDRAM
の製造に使用される他の技術である。CMOSが好まし
いが、APAPの製造に使用する技術は現に使用されて
いる半導体技術の範囲に制限されるべきものではない。
【0022】・ドッティング(Dotting) ドッティングは3以上のリードを物理的に共に接続する
ことにより結合することを示す。ほとんどのバックパネ
ル・バスはこの接続方式を共用する。この用語は経過時
間のオア・ドット(OR DOT)も表わすが、ここでは非常
に簡単なプロトコルによりバスに組合わせることができ
る複数のデータ源の識別に使用される。
【0023】本発明におけるI/Oジッパ(Zipper、後
述する)の概念は、ノードに入るポートがノードから出
るポートによって駆動され、又はシステム・バスからく
るデータによって駆動することができる概念の実現に使
用することができる。逆に、ノードから出るデータは他
のノードに対する入力と、システム・バスに対する入力
の両方に使用可能である。システム・バス及び他のノー
ドの両方に対するデータ出力は同時には行われず、サイ
クルが別である。
【0024】ドッティングは、2ポートPE或はPME
又はピケットがドッティングを利用することによって各
種編成のアレイに使用することができる場合におけるH
−DOTの検討で使用される。2D及び3Dメッシュ、
基数2N−立方(又は3次元)、疎基数4N−立方、及
び疎基数8N−立方等を含み、数個のトポロジが検討さ
れる。
【0025】・DRAM DRAMは動的ランダム・アクセス・メモリーの頭字語
であり、コンピュータの主メモリー用の記憶装置として
一般に使用される。用語DRAMはキャッシュとして、
又は主メモリーではないメモリーとしての使用にも適用
される。
【0026】・浮動小数点(FLOATING-POINT) 浮動小数点の数は2つの部分で表わされる。それらは、
固定小数点又は小数部と、ある想定の基数又はベース
(radix 、base)に対する指数部とである。指数は10
進小数点の実際の配置を示す。典型的な浮動小数点の表
現として、例えば、実数0.0001234は0.12
34−3として表わされる。その場合、0.1234は
固定小数点部であり、−3は指数である。
【0027】この例において、浮動小数点の基数又はベ
ース(radix 、base)は10である。この10は単位よ
り大きく、浮動小数点表示の指数により明示的に表わさ
れるか、浮動小数点表示の特性によって表示される冪で
累乗されてから、固定小数点部に乗算することにより実
数の表示を決定するようにした暗黙固定の正の整数の基
数を表わす。数字リテラルは実数同様浮動小数点の表記
法で表わすことができる。
【0028】・FLOPS この用語は秒当りの浮動小数点命令数を示す。浮動小数
点の計算は加算(ADD)、減算(SUB)、乗算(M
PY)、割算(DIV)及び他の多くのものを含む。秒
当りの浮動小数点命令のパラメータは屡加算又は乗算命
令を使用して計算され、一般に50/50比の混合を有
するものと推定することができる。この計算は指数、小
数、及び全べての必要な小数正規化の生成を含む。本実
施例においては、32ビット又は48ビット浮動小数点
ホーマットをアドレスすることができる(本実施例にお
いて、混合の場合、それを計数しなかったがより長くす
ることができる)。浮動小数点の計算は、固定小数点命
令によって行う場合、乗算命令を必要とする。あるもの
は結果を数字表示する場合10対1比を使用するが、あ
る特定の研究においてはより適切な使用として6.25
比を示した。各種アーキテクチャは異なる比率を有す
る。
【0029】・機能装置 機能装置は目的を達成することができるハードウェア、
ソフトウェア、又は両方の実体又はエンティティであ
る。
【0030】・Gバイト Gバイト(Gbytes)は10億(109 )バイトを示す。
Gbytes/sは秒当り10億バイトを表わす。
【0031】・GIGAFLOPS この用語は秒当り(10)**9浮動小数点命令を意味す
る。
【0032】・GOPS及びPETAOPS GOPS及びBOPSは意味が同一であり、秒当り10
9 オペレーションを意味する。PETAOPS は秒当り1012
オペレーションという現行機械の能力を意味する。本実
施例によるAPAP機のそれは、正に秒当り109 命令
を意味するBIP/GIPと同一である。ある機械にお
いて、その命令は2以上のオペレーション(すなわち、
加算及び乗算)を発生するかもしれないが、本発明はそ
のようなことはしない。その代り、1オペレーションを
実行するに多くの命令を使用するかもしれない。例え
ば、本発明は、64ビット演算を実行するに複数の命令
を使用する。しかし、本発明におけるオペレーションの
計数の際、ログ・オペレーションの計数を選択しなかっ
た。GOPSは、成果又はパホーマンスの表示に使用す
るに好ましいものであるかもしれないが、表示した使用
法に一貫性がない。あるものはMIPS/MOPSに遭
遇し、次にBIPS/BOPS、及びMega(メガ)
FLOPS /Giga(ギガ)FLOPS /Tera(テラ)FL
OPS /Teta(テタ)FLOPS に遭遇する。
【0033】・ISA ISAは命令セット・アーキテクチャを意味する。
【0034】・リンク リンクは物理的又は論理(ロジック)的であり、要素又
は構成要素である。物理的リンクは構成要素又は装置を
接続する物理的接続であるが、コンピュータのプログラ
ミングにおいて、リンクはプログラムの離れた部所間に
おいて制御及びパラメータを通過させる命令又はアドレ
スである。多重システムにおいて、リンクは実アドレス
又は仮想アドレスによって識別することができるリンク
識別用プログラム・コードによって指定することができ
る2システム間の接続である。かくして、一般に、リン
クは、論理的及び物理的両方において、物理的媒体及び
全プロトコルと、関連装置及びプログラミングとを含
む。
【0035】・MFLOPS この用語は秒当り(10)**6浮動小数点命令を意味す
る。
【0036】・MIMD MIMDはプロセッサ・アレイ・アーキテクチャを示す
ことに使用される。そこで、アレイの各プロセッサはそ
れ自体の命令ストリーム、すなわち複数の命令ストリー
ムを有し、各処理要素当り1つ配置された複数データ・
ストリームを遂行する。
【0037】・モジュール モジュールは他の構成要素と共に使用するよう設計され
たハードウェアの個別的且つ識別可能なプログラム装置
又は単位、又は機能装置又は単位である。又、単一電子
チップに含まれているPEの集合もモジュールと呼ばれ
る。
【0038】・ノード 一般にノードはリンクの接合又は接合点である。一般的
PEアレイの1PEはノードであることができる。ノー
ドは、又モジュールと称するPEの集合を含むことがで
きる。本実施例において、ノードはPMEのアレイを構
成し、PMEの集合をノードと称する。ノードは8PM
であることが好ましい。
【0039】・ノード・アレイ PMEから成るモジュールの集合は屡ノード・アレイと
称し、それは、モジュールから成るノードのアレイであ
る。ノード・アレイは通常数個のPMEより多いが、ノ
ード・アレイの用語は複数を包含する。
【0040】・PDE PDEは、部分微分方程式を示す。
【0041】・PDE緩和解答法 PDE緩和解答法はPDE(部分微分方程式)を解答す
るための方法である。PDE解答は公知汎用のほとんど
のスーパ・コンピュータ能力を使用するので、緩和法
(relaxation process)のよい例であるかもしれない。
PDE方程式を解く方法は多数有り、1より多い数値法
は緩和法を含む。例えば、有限構成要素法によりPDE
を解く場合、緩和法は大量のコンピュータ時間を消費す
る。
【0042】今、熱伝導の世界における例を考える。煙
突内部に熱いガスがあり、外には冷い風が吹いている場
合、煙突レンガ内の温度勾配はどのように形成されるだ
ろうか。各レンガを小さなセグメントと仮定し、各セグ
メント間における熱の流れ方を温度差の関数として方程
式を表わすことにより、熱伝導PDEは、有限要素問題
に変換することができる。そこで、内部及び外部を除く
全べての要素が室温であるのに対し、その境界セグメン
トが熱ガス温度及び冷風温度であったとして、緩和の開
始を決定しなければならない。
【0043】コンピュータ・プログラムはそのセグメン
トに流入する又は流出する熱の量に基づく各セグメント
の温度変数を更新することにより時間をモデル化する。
その場合、煙突を横切る温度変数群を緩和して、物理的
煙突において発生する実際の温度分布を与えるようにす
るまで、モデルの全セグメントを処理するに多数のサイ
クルを必要とする。
【0044】目的が煙突のガス冷却をモデル化すること
である場合、構成要素はガス方程式にまで拡張しなけれ
ばならず、煙突内部の境界の状態は他の有限リンク・モ
デルに連結され、処理又はプロセスを続行する。熱の流
れはセグメントとその隣接間温度差によって異なること
に注意する。温度変数を分布させるため、PE間通信経
路を使用する。それはこの隣接通信パターン、又はPD
E関係を並列演算に大いに適用可能にする特性である。
【0045】・ピケット(PICKET) ピケットはアレイ・プロセッサを構成する構成要素のア
レイの要素である。それはデータ・フロー(ALU R
EGS)、メモリー、制御、要素に関連する通信マトリ
ックスの部分である。その装置はそれらの制御及びアレ
イ相互通信機構部分を有する並列プロセッサ及びメモリ
ー要素から成る第1/第nのアレイ・プロセッサを示
す。ピケットはプロセッサ・メモリー要素又はPMEの
形態である。本発明によるPMEチップ設計プロセッサ
・ロジックは関連出願のピケット・ロジックを実現する
ことができ、ノードとして形成されたプロセッサ・アレ
イに対するロジックを有する。
【0046】用語ピケットは一般に使用の処理要素用の
アレイ用語PEに類似し、1クロック・サイクルでビッ
ト並列情報バイトを処理する、好ましくは処理要素と局
所メモリーとの組合せからなる処理アレイの構成要素で
ある。バイト幅データ・フロー・プロセッサと32kバ
イト以上のメモリーとから成るこの好ましい実施例は、
本質的に他のピケットに対する通信を制御し、接続す
る。
【0047】用語ピケットは機能的には軍によるピケ・
ラインの類推が相当ぴったりに適合するものと思われる
が、その語源はトム・ソイヤ(Tom Sawyer)及び彼の白
柵からとったものである。
【0048】・ピケット・チップ ピケット・チップは単一シリコン・チップ上に複数のピ
ケットを含む。
【0049】・ピケット・プロセッサ・システム(又は
サブシステム) ピケット・プロセッサはピケットのアレイ、通信ネット
ワーク、入出力(I/O)システム、及びマイクロプロ
セッサ、走査ルーチン・プロセッサ、及びアレイを走行
するマイクロ−コントローラから成るSIMDコントロ
ーラで構成される。
【0050】・ピケット・アーキテクチャ ピケット・アーキテクチャは下記のような問題を含む数
々の異なる種類の問題に適応する機能を有するSIMD
アーキテクチャに対する好ましい実施例である。 −集合連想処理 −並列数値的集中処理 −イメージに類似の物理的アレイ処理
【0051】・ピケット・アレイ ピケット・アレイは幾何学的順序で配列されたピケット
の集合、正規のアレイである。
【0052】・PME又はプロセッサ・メモリー要素 PMEはプロセッサ・メモリー要素に対して使用され
る。用語PMEは単一プロセッサ、メモリー、及び入出
力(I/O)可能システム要素又は本発明による並列ア
レイ・プロセッサの1つを形成する装置を示す。プロセ
ッサ・メモリー要素はピケットを包含する用語である。
プロセッサ・メモリー要素はプロセッサと、その関連メ
モリーと、制御インターフェースと、アレイ通信ネット
ワーク機構の部分とから成る第1/第nのプロセッサ・
アレイである。この要素はピケット・プロセッサ内又は
サブアレイの一部にあるような、又ここで説明する多重
プロセッサ・メモリー要素ノードにあるような正規のア
レイの接続機能を有するプロセッサ・メモリー要素を持
つことができる。
【0053】・経路指定 経路指定はメッセージを受信先に到達させるまでの物理
的経路の指定である。経路指定はソース又は発信元と受
信先とを有する。これら要素又はアドレスは一時的関係
又は類縁性を有する。メッセージの経路指定は屡指定表
を参照して得られるキーに基づき行われる。ネットワー
クにおいて、受信先はリンクを識別する経路制御アドレ
スに従い送信される情報の受信先としてアドレスされた
如何なる端末、ステーション、又はネットワーク・アド
レス可能な装置でよい。受信先フィールドはメッセージ
・ヘッダに置かれ、その受信先コードによって受信先が
識別される。
【0054】・SIMD SIMDはアレイの全プロセッサが単一の命令ストリー
ムから指令されて、処理要素当り1つ配置されている複
数データ・ストリームを遂行するようにしたプロセッサ
・アレイ・アーキテクチャである。
【0055】・SIMDMIMD又はSIMD/MIM
D この用語はある複雑な命令を処理する期間、MIMDか
らSIMDに切替えることができる二重機能を有する。
すなわち、2モードを有する機械を示す用語である。シ
ンキング・マシーンズ社の接続機型式CM−2は、MI
MD機の前端又は後端として置かれた場合、オペレーシ
ョンが異なる問題部分を遂行するため異なるモードを実
行すること(屡々二重モードという)を可能とする。
【0056】これらの機械はイリアク(Illiac)以来存
在し、マスタCPUと他のプロセッサとを相互接続する
バスを使用した。マスタ制御プロセッサは他のCPUの
処理の割込能力を有する。他のCPUは独立のプログラ
ム・コードを走行することができる。割込み中チェック
ポイント機能(制御されるプロセッサの現行状況の閉鎖
及び保管)に寄与する機能がなければならない。
【0057】・SIMIMD この用語はアレイの全プロセッサが単一の命令ストリー
ムから指令されて、処理要素当り1つ配置されている複
数データ・ストリームを遂行するようにしたプロセッサ
・アレイ・アーキテクチャである。この構造内で、命令
遂行を指定する各ピケット内のデータ従属オペレーショ
ンはSIMD命令ストリームによって制御される。
【0058】これはSIMD命令ストリームを使用して
複数データ・ストリーム(ピケット当り1つ)を操作す
る複数命令ストリーム(ピケット当り1つ)の逐次能力
を有する単一命令ストリーム機である。
【0059】・SISD SISDは単一命令単一データの頭字語である。
【0060】・スワッピング スワッピングとは、ある記憶区域のデータ内容を他の記
憶区域のデータ内容と交換することである。
【0061】・同期オペレーション MIMD機の同期オペレーションは、各活動が事象(通
常クロック)に関連する動作モードである。それはプロ
グラム・シーケンスで正規に発生する指定事象であるこ
とができる。オペレーションは独立して機能を実行する
よう多数のPEにディスパッチされる。制御はオペレー
ションが終了するまでコントローラに戻されない。機能
装置のアレイにオペレーション命令があった場合、その
要求は、制御がコントローラに戻されるまで、それらオ
ペレーションを終了しなければならない各アレイの要素
に対しコントローラから発生する。
【0062】・TERAFLOPS この用語はTERA(テラ)とFLOPS (前述)との結合
語であり、秒当り(10)**12浮動小数点メモリーを
意味する。
【0063】・VLSI VLSIは集積回路に対して使用された場合における超
大規模集積の頭字語である。
【0064】・ジッパ(Zipper) ジッパは新たに与えられた機能である。それはアレイ構
造の正規な相互接続の外部にある装置から接続されるべ
きリンクを考慮するものである。
【0065】背景技術 より高速なコンピュータに対する終りなき探求におい
て、今日の機械を困惑させる複雑な問題を克服するた
め、分割して数百及び数千のロー・コスト・マイクロプ
ロセッサを並列に連結することによりスーパ・スーパコ
ンピュータを作成するようにしてきた。かかる機械は大
規模並列と呼ばれる。大規模並列システムを作成するた
め、本発明者は新たな方法を作成した。本発明者が行っ
た多くの改良に対しては他の多くの業績の背景が考慮さ
れなければならない。
【0066】技術分野の要約において他の出願に対し参
照が行われた。その点については、本発明者による並列
連想プロセッサ・システム(米国特許出願第601,5
94号)と、拡張並列アレイ・プロセッサ(APAP)
に対する関連出願を参照するとよい。特定のアプリケー
ションに最もよく適合するアーキテクチャを選出するた
めにシステム交換が要求されるが、一つの解決法も満足
するものはなかった。そして、本発明者の思想は解決を
与えることを容易にした。
【0067】本発明の背景として、以下、アレイ・プロ
セッサ用コントローラに関するある特許を再検討し、更
に上記の関連出願の背影を参照する。
【0068】“アレイ・プロセッサ・アーキテクチャ”
と称するバーンズによる米国特許第4,412,303
号は、10年に亘る明らかな進歩の後、如何に技術の開
発が考えられてきたかを例示する。大規模アレイ・プロ
セッサが開発されたとき、プロセッサはそれらの相互接
続で密結合され、制御はMIMDアレイ・アーキテクチ
ャ又はSIMDアレイ・アーキテクチャのどちらにも共
通な問題を遂行するように設計された。SIMDアーキ
テクチャは非常に複雑となり、ピケット内で命令を遂行
するために提供した単純な施設から相当遠いものとなっ
た。
【0069】この米国特許第4,412,303号はオ
メガ(Omega )ネットワークと相互接続されたメモリー
・モジュールを有するホートラン(FORTRAN )プロセッ
サのアレイを記述する。アレイに単一制御/データ・メ
モリー及び関連コントローラ・モニタがあるが、プログ
ラム及びデータ情報は、プロセッサ及びメモリーに分離
されて分配され、各プロセッサは、自己のソフトウェア
のコピーを有する。プロセッサ・アレイの同期化は計算
エンベロープの同期アプローチを使用することによって
達成される。全プロセッサは、プログラムの所定の停止
点において相互に待つことが要求される。
【0070】アーキテクチャはアレイの各プロセッサが
他のプロセッサと独立に実行することを可能にし、大型
マルチプロセッサに共通な方法で制御又はデータ情報を
共用する。又、アーキテクチャはプロセッサがSIMD
アーキテクチャ効果を与える方法をとることにより、デ
ータのアレイにおいて同一ソフトウェアを実行すること
を可能にする。このモードにおいて、プロセッサ・アレ
イは他のプロセッサ又は隣りとデータの共用が要求され
る前に同期化される。
【0071】“並列アレイ・プロセッサ用処理要素”と
称するバッチャによる米国特許第4,314,349号
は従来のSIMDアレイ・プロセッサ要素を例示してい
る。この特許は衛星イメージ処理を意図した出願に関す
るものであるが、それは本発明者が改良を必要とするタ
スクに適用可能であるという意味の従来のビット直列S
IMDアレイ・プロセッサを詳細に記述している。本発
明者によるSIMDアレイ・プロセッサと異なり、シン
キング・マシーンズ、インクのような製造者の従来のS
IMD要素と同一であるプロセッサはビット直列である
のに対し、本発明のプロセッサは並列にデータ・ストリ
ームを処理する。
【0072】“科学ベクトル処理用局所ストア”と称す
る、ハムストラによる米国特許第4,706,191号
は、全体的に科学ベクトル・プロセッサの局所記憶メモ
リーの実現について記述している。
【0073】“メモリー結合液面アレイ・プロセッサ”
と称するドリセクによる米国特許第4,720,780
号は、処理が複雑であり、識別可能性及び直接結果を希
望するパイプライン又はシストリック(systolic)処理
用メモリー・ブロックがそのエッジに結合されたSIS
Dプロセッサを十分使用可能なシストリック・アレイ・
プロセッサを記述している。米国特許第4,720,7
80号及び米国特許第4,706,191号のシステム
はプロセッサ・アレイのSIMD処理要素内で命令遂行
の能力を持たない。
【0074】“システム・メモリーに含まれているメモ
リー・システムを有するプロセッサ・アレイ付き並列処
理システム”と称するギホードによる米国特許第4,8
73,626号は制御構造及び階層構造バス機能管理用
制御構造を持つSIMD又はMIMDモードで動作可能
な並列プロセッサのメモリー・アーキテクチャ及びバス
伝送階層構造によって技術開発の複雑性を例示してい
る。
【0075】“SIMD/MIMD 命令処理を有するプロセッサ
・アレイ付き並列処理システム”と称するギホードによ
る米国特許第4,891,787号は、ギホードによる
他の米国特許第4,873,626号と同一システムに
おける他の面を要求している。米国特許第4,891,
787号は、制御CPU、シーケンサ、1/0装置、及
びバス伝送構造により階層構造に配列された、メモリー
処理要素のアレイを持つようなプロセッサを記述してい
る。各M/PEのメモリーは、制御CPUのメモリーの
一部としてマップされる。
【0076】各M/PEは、自己のメモリーに格納され
ている命令をMIMD機能に与えてそれを遂行すること
ができる。MIMDモードにある間、制御CPUは、M
/PEに対してSIMD命令を発行することができる。
M/PEは割込みがかかったときに、それに応答してS
IMD命令を遂行し、自己のMIMD命令ストリームを
遂行するものとみなされる。M/PEは、MIMDモー
ドにない場合、制御CPU、I/O装置、他のM/PE
(より高い段階と推定する)、又は、シーケンサ装置か
らのSIMDコマンドに応答するのみである。SIMD
命令の複雑性については記述していない。又、それらは
サブルーチン・レベルに置くことはできたが、その場
合、SIMDコマンドは、M/PEを呼出すサブルーチ
ンと同等になる。
【0077】これは、SIMD命令を制御CPUからM
/PEに送るまでの経路によって支援される。この米国
特許は、PEの並列性の程度については記述していない
が、プロセッサ・チップと、あるメモリーと、グループ
間バス、グループ・バス、及びカード上の個別的要素の
制御に対するインターフェースとを有するカード(バス
伝送構造によって相互に接続された複数のカード)に匹
敵しうるものである。しかし、ここでは、命令ストリー
ム制御の構造は説明されていない。
【0078】又、本願で記述するような命令ストリーム
・コントローラはここでは記述していない。それに代
り、ギホードのMIMDアレイは、MIMDモードにな
いとき、SIMD呼出しに対する応答に対しM/PEを
制限することによってSIMDオペレーションをシミュ
レートする。本願発明はより古典的意味のSIMDアレ
イを提供するものであるが、更に、各ピケット内の個有
の命令の遂行により、SIMDコマンドの細部のストリ
ングがステップ可能とされる拡張局所自律機能を有する
システムを提供することができる。
【0079】
【発明が解決しようとする課題】本発明においては、並
列アレイ・プロセッサに対するコントローラを取扱うこ
とになるが、従来の組織におけるSIMD又はSIMD/MIM
D 用大型並列アレイの制御に関しては次に示すような数
個の問題があった。
【0080】第1の問題は、アレイの作業効率を維持し
なければならないことである。それは、(1)問題に対
して作業するアレイ要素の最大数の維持、及び(2)そ
の性能に衝撃を与えることなく、アレイ外部のオーバー
ヘッド制御オペレーションを管理することである。これ
は、アレイがコマンドを待たないように、アレイに対し
てデコード済み命令ストリームを連続供給しなければな
らないことを意味する。
【0081】アレイ内のオペレーションは計算に対する
ものであり、全体的に、ほとんど反復性である。それは
アレイからのほとんどの制御機能が効率を維持すること
が望ましい。反復に関するカウント及びベクトルの処
理、及び決定コマンドの処理はアレイの要素を含めない
一次機能の処理であり、アレイの外部で処理されるべき
である。
【0082】上記の第2の問題は、問題をアレイの並列
遂行に適したサブユニットに階層構造分解することであ
る。大きな機能(及び制御変数及び定数を伴う)で記述
された大きく複雑な問題の処理を開始する場合、機能及
びデータ・ベースを小さな機能に分割することが必要で
ある。ある点で、これら機能は機械レベルのプログラミ
ングに適した複数のファミリ(例えば、三角、マトリッ
クス、ベクトル、フィルタ、及びイメージ処理機能等)
と認識することができる。
【0083】これら現在実行しているタスクに関する
“標準”機能は遂行のため、容易にアクセス可能でなけ
ればならい。コントローラ・ハードウェアに対し、支援
し、最適化し、記憶し、これら機械レベルのプログラム
に対する高速アクセスを可能にする機能を与える場合、
SIMD/MIMD 機を制御する機能的要求の定義を必要とす
る。従って、本発明の目的はSIMD又はSIMD/MIMD 用
大型並列アレイの制御において、問題をアレイの並列遂
行に適したサブユニットに階層構造分解して、アレイの
制御効率の維持を計ることである。
【0084】
【課題を解決するための手段】本発明は、上記の課題を
解決するため、以下に説明するように構成した。本発明
による並列連想プロセッサ・システムのコントローラ
は、アプリケーション・プログラム命令を解釈し、SI
MD又はMIMD制御構造いずれかのコマンドを遂行す
るようピケット・アレイを制御する数々の機能を含み、
それら機能は、共に又は個別的に、SIMD又はMIM
Dモードでプロセッサ・アレイを動作させる個有の制御
を提供することを特徴とする。
【0085】コントローラは、図1に示すように4つの
個別的部分を有する。処理要素又はピケットのアレイは
多くのデータ集合の処理を並列に実行する。マイクロコ
ントローラはそのマイクロコード・アレイの線形シーケ
ンスからのコマンドをクロック基準でアレイに供給す
る。命令シーケンサは循環及び決定を制御し、開始アド
レスをFIFOバッファを経由してマイクロコントロー
ラに供給する。最後に、サブシステム・コントローラは
主な機能を順序付けするシーケンサに対しコマンドを供
給する。サブシステム・コントローラは、又、システム
状況全体を検査し、制御するホスト環境を提供する。
【0086】本発明は、主に、プロセッサ・アレイに対
する命令の連続的フローを最適化するため、階層構造及
びオーバーラップ又はパイプライン形式による命令遂行
を達成した。サブシステム・コントローラにおけるユー
ザ・プログラム・コードは、一般に、パラメータを引出
し、実行時間ライブラリのルーチンにそのパラメータを
与えるハイレベル・コマンドを供給する。実行時間ルー
チンは、簡単な配線の“DO WHILE IF FOR ”制御構造及
びカウンタと、局所レジスタに含まれているアドレス情
報とを使用してほとんど全べてのプログラム・フローの
決定が行われる。命令シーケンサは、データ群を処理す
るときに、各PEのマイクロステップを指令するプロセ
ッサのアレイの要素に対して並列に順序付けされたマイ
クロ命令の線形ルーチンを識別する。
【0087】本発明者は新規な概念により設計されたシ
ステム及び新たな“チップ”を作成することにより大規
模並列プロセッサ及び他のコンピュータ・システムを作
成する新たな方法を創作した。本出願はかかるシステム
に向けられる。本願及び関連出願において、開示される
べき各種概念はそれら出願において見ることができる。
各出願に記述されている構成要素はこのシステムに組合
わされて新たなシステムとすることができる。それらは
現行技術と組合わせることもできる。
【0088】本願及び関連出願において、拡張並列アレ
イ・プロセッサ(APAP)と称するピケット・プロセ
ッサを考案した。ピケット・プロセッサはPMEを使用
することができるということに注意するべきである。ピ
ケット・プロセッサは、非常にコンパクトなアレイ・プ
ロセッサを希望するような軍の適用に特に有益であるか
もしれない。その点に関し、このピケット・プロセッサ
は、幾分、本願の拡張並列アレイ・プロセッサ(APA
P)に対する好ましい本実施例とは異なるかもしれな
い。しかし、共通性は在り、本実施例のある面及び機能
は、異なる機械に適用することができる。
【0089】用語ピケットは、プロセッサ及びメモリー
から成るアレイ・プロセッサの第1/第nの要素と、ア
レイ相互間通信に適用可能な、そこに含まれている通信
要素とを含む。ピケットの概念は、又、第1/第nのA
PAP処理アレイにも適用可能である。
【0090】ピケットの概念は、データ幅、メモリー・
サイズ、及びレジスタの数においてAPAPとは異なり
うるが、ピケットはAPAPの代替である大規模並列実
施例においては、第1/第nの正規のアレイに対し接続
可能に構成されるのに対し、APAPのPMEはサブア
レイの一部であるという点において異なる。両システム
共、SIMIMDを遂行することはできるが、ピケット
・プロセッサは、PEのMIMDを有するSIMD機と
して構成されるので、SIMIMDを直接遂行すること
ができるのに対し、MIMD APAP 構造は、SIMDをシミ
ュレートするよう制御されたMIMD PE を使用することに
よってSIMIMDを遂行する。又、両機械共PMEを
使用する。
【0091】両システム共並列アレイ・プロセッサとし
て構成することができ、アレイ通信ネットワークと相互
接続された“N”要素を有するアレイに対するアレイ処
理装置から成る。その第1/第Nのプロセッサ・アレイ
は処理要素と、その関連メモリーと、制御バス・インタ
ーフェースと、アレイ通信ネットワークの一部とから成
る。
【0092】並列アレイ・プロセッサは2重オペレーシ
ョン・モード機能を持ち、そこで、処理装置はどちらか
のモード又は2つのモードで指令され、SIMDオペレ
ーション及びMIMDオペレーションに対する、これら
2つのモード間を自由に移動することができる。SIM
Dがその組織のモードである場合には、処理装置はSI
MIMDモードで自己の命令を遂行するよう各要素を指
令するべき能力を持ち、MIMDが処理装置の組織に対
する実施モードである場合は、処理装置はMIMDの遂
行をシミュレートするようアレイの選ばれた要素を同期
化するべき能力を持つ(これをMIMD-SIMD と称する)。
【0093】両アレイの並列アレイ・プロセッサはアレ
イの要素間で情報を通過させ、通り抜けさせる経路を持
つアレイ通信ネットワークを提供する。情報の移動は2
つの方法のいずれかによって制御することができる。第
1の方法としては、移動データが受信先を規定せず、全
メッセージを同時且つ同一方向に移動するようアレイ・
コントローラが指示する。第2の方法としては、各メッ
セージがその開始位置に受信先を規定したヘッダを持
ち、自己経路指定するものである。
【0094】複数のアレイ・プロセッサのアレイのセグ
メントは単一半導体チップ上に設けられている処理装置
の複数のコピーを持ち、そのアレイ・セグメントの各コ
ピーは、アレイ通信ネットワークを拡張するため、その
セグメント及びバッファと、ドライバと、マルチプレク
サと、そのアレイ・セグメントがアレイの他のセグメン
トと一体的に接続可能にする制御とに接続されたアレイ
通信ネットワークの一部を含む。コントローラからの制
御バス又は経路は、アレイの各要素及びそれらの活動の
制御機能まで延長するよう各処理装置に配設される。
【0095】並列アレイの各処理要素セグメントはプロ
セッサ・メモリー要素の複数のコピーを含み、それは単
一半導体チップの限界内に含まれ、アレイ・セグメント
は、チップに含まれているアレイ・セグメントに対する
制御機能の通信を支援するため、アレイ制御バス及びレ
ジスタ・バッファの一部を含む。
【0096】両方共メッシュ移動又は経路指定移動を実
現することができる。通常、APAPは、チップ上に一
方法で相互関係する8要素を持ち、チップは他の方法で
相互関係するようにした2重相互接続構造を実現する。
チップのプログラマブル経路指定は、一般に、上記のP
ME間にリンクを設定して行われるが、ノードは他の方
法で接続してもよく、通常他の方法で接続される。チッ
プ上で、正規のAPAP構造は本質的に、2×2メッシ
ュであり、そのノード相互接続は経路指定された疎8進
N−立方(3次元)であることができる。両システム
共、マトリックスを点対点経路で構成可能にするPE
(PME)の間にPE間相互接続経路を有する。
【0097】
【実施例】以下、添付図面に基づき本発明の好ましい実
施例を詳細に説明する。図1は制御手段及び通信経路を
含む処理セグメント・アレイを実現した典型的なアレイ
・ブロック図であり、最終的制御は、サブシステム・コ
ントローラのユーザ・プログラムか、又は代りにサブシ
ステム・インターフェースの外部かのどちらかで開始す
る。図2は図1に示す“ピケット”の2つを詳細に示す
図であり、ピケット通信に対するピケットを実現するこ
とができるスライド・レジスタ(slideregis
ter)をメモリー・ブロックとALUブロック間に接
続して示す。図3は制御の流れ及びプロセッサ・アレイ
のコントローラ内における制御のレベルの概要を示す構
成図であり、命令シーケンサとマイクロ・コントローラ
間にある小FIFOがプロセッサ・アレイに対するコマ
ンドのより継続的な流れを容易にする。図4はコントロ
ーラの3つの段に共通なオペレーション・コード・ホー
マットを示す図である。
【0098】図1において、並列連想プロセッサ・シス
テムのコントローラは、アプリケーション・プログラム
命令を翻訳し、SIMD又はMIMDのどちらかの命令
を遂行するようピケットのアレイを制御する数個の機能
を含む。これら数個の機能は、共に接続され分離され
て、SIMD又はMIMDモードのどちらかで作動する
プロセッサ・アレイに対する個有の制御を提供する。
【0099】図1は、処理要素アレイに接続された3レ
ベル・アレイ・コントローラのブロック図である。用語
ピケットは、遂行するデータ・フロー(DF)と、通信
シフト・レジスタ又はスライド・レジスタ(SR)と、
ピケット用データを含むメモリーのストリップとから成
るアレイ要素を示す1例として使用される。
【0100】まず、ピケット及びその機能について説明
する。ピケットはALU、メモリー、数個のレジスタ、
及び通信経路を含む。ピケット全べては、コントローラ
から同一のコマンドを受信する。そのコマンドはメモリ
ー・アドレスを供給し、ALU、レジスタ、及びデータ
・マルチプロセッサが実行するべきことを示す原始信号
から成る。複数バイト幅のデータ・フローは、下記のデ
ータ・ホーマットを支援する。 ・ 8,16,32ビット固定小数点 ・ 40ビット浮動小数点(25ビット動的正確度)
【0101】コントローラは4つの個別的部分を有す
る。処理要素又はピケットのアレイは多くのデータ群に
対するオペレーションを並列に実行する。マイクロ・コ
ントローラは、そのマイクロコード・アレイの線形シー
ケンサからのコマンドをクロック毎にアレイに供給す
る。命令シーケンサは、循環及び決定を制御し、FIF
Oバッファを経由してマイクロ・コントローラに対し、
開始アドレスを供給する。最後に、サブシステム・コン
トローラは、主機能を順序付けするシーケンサに対し
て、コマンドを供給する。又、それはシステム全体の状
況を制御し、検査するホスト環境を与える。
【0102】この遂行ステップの区分化及びFIFOフ
ァイルの導入はアレイを最適使用状態に維持する。この
組織は、効率良くアレイ・オペレーションを維持するた
めのキーである。
【0103】マイクロ・コントロール(MICRO-CONTROL
アレイに最も近い制御機能は最近の単一プロセッサの組
織と類似するようマイクロコード化される。マイクロ・
コントローラは、ALU、データ経路、及びメモリーの
マイクロ命令を制御するため、アレイ・クロック・サイ
クルと同期するアレイ要素の全べてに対して並行にマイ
クロ・コマンドを発行する。
【0104】SIMDモードにあるとき、マイクロ命
令、データ・アドレス、及びデータは、アレイ要素の全
べてを供給し、それら全べては同じ事を行う。マイクロ
コード・アレイはピケット内で命令の全べて又は一部の
実行に使用される多くの小さな線形マイクロ・ルーチン
を含む。これらマイクロ・ルーチンの各々は、開始アド
レスを有し、1乃至約50命令程度を含む。マイクロコ
ードの遂行は、指定アドレスから開始し、指定したタス
クの達成に必要なコマンド・ストリングを使用してそれ
を増分的に走行する。
【0105】又、マイクロ・コントローラは要素の全べ
てが使用するよう、同報通信バスを使用する全アレイに
対して同時にデータを供給するタスクを有する。これ
は、一般的に、ロード又は比較オペレーションに使用さ
れる。コントローラのマイクロ・コントローラ部は、又
共通な局所記憶レジスタ群をロードし、更新する。これ
らレジスタは、ピケットの全べてに対する大域アドレス
及びデータを供給する。
【0106】各ピケットが各個別のオペレーションを行
っている状態において、アレイがMIMDモードで動作
しているときは、マイクロ・コントローラは、なお、ア
レイ要素に対してマイクロ命令、データ、及びデータ・
アドレスを発行するが、現在はコマンド・ストリングが
各ピケットの命令遂行シーケンスを形成する。MIMD
命令コードは各ピケットのメモリーからフェッチされ、
その後のマイクロサイクルで遂行するよう命令レジスタ
に記憶される。
【0107】コントローラのマイクロ・コントローラ部
は、処理制御のため、アレイからのフィードバックを与
える。これはアレイの各要素が状況ビットを状況漏斗
(STATUS FUNNEL )にゲートさせるようにするマイクロ
命令をアレイに対し発行することにより達成される。状
況漏斗はアレイからコントローラに対し、通常、サイズ
がバイトより小さい簡単な情報片として集合状況を導入
するためのハードウェア機構である。いずれかその要素
のビットが論理1であれば、状況漏斗は、コントローラ
に対しその決定工程において使用するための論理1を与
える。決定工程は次に説明するよう命令シーケンサで行
われる。
【0108】FIFOバッファは、コントローラのアッ
プストリーム部が先に作業することができるように、マ
イクロ・コントローラの入力に設定される。これは並列
アレイ及びマイクロ・コントローラがほとんどの場合、
その作業を維持することを可能にする。
【0109】命令シーケンサ 命令シーケンサは、マイクロ・コントロール装置に対し
開始アドレスを供給する。マイクロ・コントローラ装置
はシーケンスを終了したとき、命令シーケンサに対して
次の開始アドレスを信号する。命令シーケンサは、DO
及びIFタイプ両オペレーションをマイクロ・コントロ
ーラ・オペレーションと並行に実行している間、FOR
オペレーションを実行するよう配線される。命令シーケ
ンサの反復機能はアレイ要素のバイト幅オペレーション
を算術計算に必要な共通の複数バイト幅シーケンスに拡
張するよう要求される。
【0110】マイクロ・コントロール機能からの命令シ
ーケンサの分離はあるハードウェアに有効な利得を与え
る個有のステップである。命令シーケンサは、ローレベ
ル機能(浮動小数点加算を行う)及びアッパレベル機能
(数学機能(サイン(sin )X )、マトリックス(又は
行列)機能、ベクトル算術計算(全ピケットの総和)、
及びあるアプリケーションを最適化するすべての個有の
オペレーションのような)の両方に使用可能とされる。
マクロ命令のあるものはマイクロ・コントローラのマイ
クロシーケンスの始動に使用される。他のマクロ命令は
循環制御及びマクロ内の反復制御用決定命令である。こ
れは、同一ハードウェアがアプリケーション及びマイク
ロコード・プログラマの両方にサービスすることを可能
にする。
【0111】命令シーケンサは記録化(canned)ルーチ
ン・メモリー(実行時間ライブラリ)又は、サブシステ
ム・コントローラからその命令得ることができる。サブ
システム・コントローラからの命令は循環条件を設定す
ることができ、直接マイクロ・コントローラを制御する
か又は記録化ルーチン・メモリーからシーケンスを呼出
すことができる。これら命令は図10に示すような共通
4バイト命令ホーマットを持つ。OPは遂行するべき命
令を表わし、B及びCは一般に、オペレーションに対す
る2つのデータ・ソースを示し、Aは結果を記憶するべ
き場合を識別する。
【0112】このレベルにおける命令は、遂行シーケン
スを制御するか、又はマイクロ・コントローラ命令を開
始するかのいずれかである。命令シーケンサは下記の命
令群を直接遂行する。
【0113】GO-SUB......RETURN:記録化(canned)ルー
チン・メモリーに記憶されているサブルーチンを呼び出
す。 IF condition met THEN ELSE:並列アレイの活動ピケッ
トの全べてにより集合的に提供された状態に基づき2経
路の1つをとる。
【0114】DO......NEXT:最初、反復数をカウンタに
ロードし、次にカウンタが0に達するまで、DOとNE
XT間の命令ストリングを実行する。 DO IMMEDIATE......NEXT:カウンタに即値をロードし、
その後カウンタが0に達するまでDOとNEXT間の命
令ストリングを実行する。
【0115】DO......NEXT IF :最初、反復数をカウン
タにロードし、次にカウンタが0に達するまで、又は状
態が並列アレイのピケット全べてにより集合的に提供さ
れた状態に基づく状態に合致するまで、DOとNEXT
間の命令ストリングを実行する。
【0116】START MICRO-CONTROLLER at X :アドレス
Xから始まるMICRO-CONTROLLERのアレイ制御機能のシー
ケンスを開始する。
【0117】命令シーケンサは、サブシステム・コント
ローラから5つのコマンドを受入れる。それらは下記に
示すようなものである。 FILL CAN (ned Routime Memory),and END FILL:サブ
システム・コントローラ(SUBSYSTEM CONTROLLER)を指
令して、記録化(canned)ルーチン・ライブラリ・メモリ
ーに対するルーチンのロードに使用する。
【0118】LOAD COUNTER:制御カウンタのいずれかに
ロードする。それら制御カウンタはネストするサブルー
チンの全レベルに、循環全べてに対するDO循環カウン
ト数を含むことができる。 注意:ある循環カウンタの値は、記録化ルーチン・メモ
リーからとることができる。START :記録化ルーチン・
メモリーの制御ルーチンの開始アドレスを指定する。
【0119】START MICRO-CONTROLLER at addr X:サブ
システム・コントローラは命令シーケンサをバイパス
し、マイクロ・コントローラのシーケンサを開始する。
かくして、わずか使用されたか、又は新(“NEW”)
ルーチンは最初記録化ルーチン・メモリーにロードする
ことなく、サブシステム・コントローラから直接アレイ
で遂行することができる。
【0120】SUBSYSTEM CONTROLLER(サブシステム・コ
ントローラ):使用者の選択言語にコード化されたアプ
リケーション・プログラムはシステム・コントローラに
存在し、そこで遂行する。そのプログラムは単一命令ス
レッドとして遂行され、プロセッサ・アレイに対してハ
イレベルの制御を与える。構造的に、アプリケーション
・プログラムは、次に示すような機能を有するものと考
えることができる。
【0121】1.命令シーケンサに対しコマンドを出力
する実行時間機能。 2.命令シーケンサ・コマンドに対するアドレス指定制
御及び索引付け制御を生成するコンパイル及び実行時間
機能。 3.命令シーケンサ、マイクロコントローラ、及びプロ
セッサ・アレイのデータ及びレジスタ・スペースのため
のメモリー・マップ。
【0122】アプリケーション・プログラマに対して処
理し易い作業にするため、そのプログラムは、呼出し
(CALL)で呼出され、続いて命令シーケンサにイン
ターフェースされる一群の実行時間サービスによって支
援される。命令経路のFIFOメモリーは、レベル間の
ワークロードの動揺を分離するための緩衝機能を提供す
る。
【0123】サブシステム・コントローラは、処理アレ
イのハイレベル制御を供給する。それは、又マイクロコ
ントローラを直接制御するためのコマンドをローレベル
で供給することができる。それは、更に、又、アレイ又
はコントローラの他の部分に出入するデータに対するデ
ータ経路として作用する。
【0124】サブシステム・コントローラはほぼ従来の
SISD機組織を使用して、SIMD又はMIMDアー
キテクチャを有する並列アレイ・プロセッサの制御を可
能にする。プログラマはプログラミング技術に対する異
なるレベルの意識を持つ。SISDの視点に対する例外
はデータがピケットからピケットに移動する数々の区域
で発生する。以下に、活動及びアレイの意識の程度のリ
ストを示す。
【0125】その1データ・フロー以外は知らない(N
ot aware of moreThat one
data flow): −SIMD数学、全ピケットは独立事項を実行する。
【0126】軽い意識(Mildly aware): −ピケットのグループ化は内容又は結果に基づく;ピケ
ット間通信(イメージ処理);全活動ピケットに対する
同報通信。
【0127】明確な意識(Definite awareness): −個々のピケット制御 −それをロードする −使用可能/使用不能 −それを読取る
【0128】制御構造 コントローラの制御構造は図3で要約される。マイクロ
・コントスーラはFIFOから供給され、相互にクロッ
ク同期によりアレイ及び局所ストアを完全に制御する。
【0129】命令シーケンサは、そこのメモリーに含ま
れている記録化ルーチン(サブルーチン・ライブラリ)
として全体的に組織されているルーチンを遂行するよう
シーケンサを指令するサブルーチン・コントローラから
そのコマンドを取得する。この点において遂行される命
令はISPコードと称する。これらコマンドの具体化は
マイクロ・コントローラのPROM及び(又は)RAM
に配設されたマイクロコードと記録化ルーチンとの組合
せからなる。
【0130】命令群 以下にローレベル命令シーケンサの命令群のリストを示
す。数字8,16,32,40はオペランドのサイズで
ある。下記のリストは数類別の命令を示す。
【0131】局所レジスタ・オペレーション ピケット内アレイ・オペレーション−算術計算 ピケット内アレイ・オペレーション−比較 ピケットを横切るアレイ・オペレヒション−算術計算 ピケット・ロード/読取り アレイ制御
【0132】これらコマンドは、ISPマイクロコード
で実現され、命令シーケンサで制御され、ピケット・ア
レイで及び局所記憶あたりで遂行される。その各命令は
以下で説明する。
【0133】局所レジスタ LOAD-REGS. 局所レジスタAの値を記憶する。 ADD-REGS. レジスタCの値をレジスタBの値に
加え、レジスタAに記憶する。 SUB-REGS. レジスタBの値からレジスタCの値
を減じ、レジスタAに記憶する。 AND-REGS. レジスタCの値とレジスタBの値を
論理アンドし、レジスタAに記憶する。 ADD-REGS IMMED. レジスタCの値に即値を加え、レジ
スタAに記憶する。 SUB-REGS IMMED. レジスタCの値から即値を減じ、レ
ジスタAに記憶する。 READ-REGS. レジスタAの値をサブシステム・コ
ントローラに移動する。
【0134】ピケット命令−算術計算 MOV8 レジスタCで指定したピケット・メ
モリー位置に含まれている値をレジスタAで指定したピ
ケット・メモリー位置に移動する。
【0135】ADD32 レジスタBで指定した
ピケット・メモリー位置に含まれてている32ビット固定
小数点値をレジスタCで指定したピケット・メモリー位
置に含まれている32ビット固定小数点値に加え、その32
ビット固定小数点の結果をレジスタBで指定したピケッ
ト・メモリー位置に記憶する。
【0136】MPY40 レジスタBで指定した
ピケット・メモリー位置に含まれている40ビット浮動小
数点の値をレジスタCで指定したピケット・メモリー位
置に含まれている40ビット浮動小数点の値に加え、40ビ
ット浮動小数点の結果を、レジスタBで指定したピケッ
ト・メモリー位置に記憶する。
【0137】下記の命令全べての実施方法は上記で説明
したものと類似する。
【0138】ピケット命令−変換 FLT-TO-FIX. レジスタCで指定したピケット・メ
モリーの40ビット浮動小数点の値を32ビット固定小数点
の値に変換し、レジスタAで指定したピケット・メモリ
ー位置に記憶する。 FIX-TO-FLT. 32ビット固定小数点の値を40ビット
浮動小数点の値に変換する。 FLT-TO-CC2. 40ビット浮動小数点の値をCC2ホ
ーマットの浮動小数点の値に変換する。 CC2-TO-FLT. CC2ホーマットの浮動小数点の値
を40ビット浮動小数点の値に変換する。
【0139】ピケット命令−ピケットを横切る HSUM8. レジスタCで指定したピケット・メ
モリー位置の8ビット値を全ピケットからの値に水平に
加え、その32ビットの結果をレジスタBで指定したピケ
ットのレジスタAで指定したピケット・メモリー位置に
記憶する。
【0140】HSUM40. レジスタCで指定した
ピケット・メモリー位置の40ビット浮動小数点の値を全
ピケットからの値と水平に比較し、その40ビット最小値
をレジスタBで指定したピケットのレジスタAで指定し
たピケット・メモリー位置に記憶する。
【0141】
【0142】ピケット命令−ピケット・ロード/読取り BLOAD DATA. このヘッダに続く32ビット・ワード
がレジスタAで指定したピケット・メモリー位置から始
まるレジスタBで指定したピケットにロードされる。
【0143】HBLOAD DATA. このヘッダに続く32ビ
ット・ワードがレジスタAで指定したピケット・メモリ
ー位置から始まる全活動ピケットにロードされる。
【0144】HLOAD16. レジスタBの値を全活
動ピケットのレジスタAで指定したピケット・メモリー
位置に移動する。 LOAD16. レジスタBの値をレジスタBで指定
したピケットのレジスタAで指定したピケット・メモリ
ー位置に移動する。
【0145】BREAD DATA. 32ビット・ワード・ブ
ロックがレジスタCで指定したピケット・メモリー・ア
ドレスから始まるレジスタBで指定したピケットからコ
ントローラ指定メモリーにフェッチされる。
【0146】READ16. レジスタBで指定した
ピケットのレジスタCで指定したピケット・メモリー位
置の値をレジスタAに移動する。
【0147】ピケット命令−ピケット制御 下記の如きモードがある。 活動(ACTIVE)− 全命令はピケット内で完全に操作可能である。
【0148】ドーズ又は半眠(DOZE)− 全命令は少くとも部分的に操作可能である。全べての計
算及び検査は行われるが、ピケット・メモリーに対する
記憶は禁止される(又は少くとも非常に制限される)。
半眠ピケットは問題における有益な参加ピケットである
が、参加する順番がくるまで……他と共に、呼起こされ
るまで一時的に待つ。
【0149】使用不能(DISABLED)− 使用不能ピケットはサブシステム・コントローラによっ
て一時的に“非活動”にセットされた活動ピケットであ
る。コントローラは、再びそれをターンオンすることが
できる。
【0150】非活動(INACTIVE)− 非活動ピケットは参加していない。そのSRラッチは両
方向に透過である。必要な場合、非活動ピケット、はそ
の物理的アドレスを使用してターンオンすることがで
き、サブシステム・コントローラによって初期化するこ
とができる。
【0151】遮断(BROKEN)− ピケットは両方向にSR−ラッチを透過にすることを含
み完全にターンオフされる。電源オン以外で再活動化す
ることはできない。
【0152】アレイ制御命令 HADDR. 最左活動ピケット……の物理的ピケ
ット・アドレス。 HDISAB. それらの物理的ピケット・アドレス
が……のピケットを活動不能にする。 HDOZE. ピケット状況ラッチがピケットのド
ーズ……の設定に使用される。 HAWAKE. ピケット状況ラッチがピケットのド
ーズ……のリセットに使用される。 HGROUP. ピケット状況ラッチの状態が……ピ
ケットに移動する。 SET-ARRAY-START. ピケット状況ラッチの状態が……に
移動する。 READ-CHIP-STATUS. ……で指定したチップのチップ状況
ラッチ。 LOAD-CHIP-ENABLE. ……で指定したチップのチップ使用
可能レジスタ。
【0153】セット−アレイ・オペレーション 状況当り選ばれた使用可能/使用不能状態 ピケットの状況を得る チップの状況を得る
【0154】MICROA. ISP出力に対しマイ
クロワード・ディレクトリの第1の半分を通過する。 MICROB. ISP出力に対しマイクロワード・
ディレクトリの第2の半分を通過する。 INTERRUPT. サブシステム・コントローラに割込
み、その割込みを渡す。
【0155】制御例 下記表1に示す例はコントローラの各種部分間の接近し
た相互関係を示す。この例は、1マトリックス乗算の要
素全べてが1ピケット内にある場合のマトリックス乗算
の例である。そのコードは各ピケット内で遂行される独
立のマトリックス乗算のために与えられる。並列乗算は
多く同じ機能を有するが、これは有効な方法でピケット
間データの転送を加算する。
【0156】
【表1】
【0157】下記表2の遂行と称する列において、それ
らは下記の如く番号0,1,2,3で表わすように、各
ステップで実行するアレイ・プロセッサの一部を示す。 ・ 0 サブシステム・コントローラ ・ 1 命令シーケンサ ・ 2 局所記憶命令を遂行するマイクロ・コントロー
ラ ・ 3 アレイ命令を遂行するマイクロ・コントローラ
【0158】
【表2】
【0159】列サイクル10×10は、機械の各部が各
機能を消費する合計サイクル数又はカウント(時間)で
ある。ほとんどの時間は計算に使用される。計算に消費
する時間は計算する累乗量に達するまでピケットの数で
乗算される。計算結果は、各システムで使用した実際の
時間によって異なるので、サイクル時間を直接計算する
ことはできない。
【0160】要約すると、下記表3に示すように、列A
は機械の各部で使用するサイクル数を示し、列Bはコン
トローラの各部におけるサイクルの百分比を示し、列C
はFIFOがサブシステム・コントローラ及び命令シー
ケンサに割振られている処理を隠すようにしたいと思っ
たときに、ピケットで消費される時間の百分比を示す。
【0161】
【表3】
【0162】以上、本発明の好ましい実施例を詳細に証
明したが、本発明はそれのみでなく、現在及び将来、本
発明の範囲において更に改良、変更、拡張しうることは
明らかである。
【0163】
【発明の効果】本発明は、以上説明したように構成し
て、問題をアレイの並列遂行に適したサブユニットに階
層構造分解したことにより、SIMD又はSIMD/MIMD 用
大規模並列アレイに対するアレイ・コントローラの制御
効率を維持し改善することができた。
【図面の簡単な説明】
【図1】制御手段及び通信経路を含む処理要素のアレイ
の典型的な実現方法を示すアレイのブロック図
【図2】図1に示す“ピケット”の2つを詳細に示す図
【図3】制御の流れ及びプロセッサ・アレイのコントロ
ーラ内の制御のレベルの概要を示す構成図
【図4】コントローラの3つの段に共通なオペレーショ
ン・コード・ホーマットを示す図
【符号の説明】
1〜5,N ピケット SR スライド・レジスタ ALU 演算論理装置 REG スライド・レジスタ DF データ・フロー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・ノーマン・バーカー アメリカ合衆国13850、ニューヨーク州、 ベスタル、サンセット・アベニュー、 136番地 (72)発明者 ジェイムス・ワーレン・ディフェンダフ ァ アメリカ合衆国13827、ニューヨーク州、 オウゴ、フロント・ストリート、396番 地 (72)発明者 ピータ・ミッチェル・コーゲ アメリカ合衆国13760、ニューヨーク州、 エンジコット、ドーチェスタ・ドライ ブ、7番地 (72)発明者 ドナルド・ミッチェル・レスミースタ アメリカ合衆国13850、ニューヨーク州、 ベスタル、コリンズ・ヒル・ロード、 108エイ番地 (72)発明者 ロバート・リースト・リチャードソン アメリカ合衆国13850、ニューヨーク州、 ベスタル、ボックス81、マーソン・ロー ド、アール.ディー.#2(番地なし) (72)発明者 ビンセント・ジョーン・スモーラル アメリカ合衆国13760、ニューヨーク州、 エンドウェル、スキーレイン・テラス、 812番地 (56)参考文献 特開 昭59−16071(JP,A)

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 データを並列に実行するプロセッサのア
    レイを有し単一命令複数データを処理するコンピュータ
    ・システム用コントローラであって、階層構造を有する複数の制御段を有し、該複数の制御段
    に制御されて 命令及びデータの相互通信を行うよう接続
    された複数のピケットの如きアレイ処理要素から成り、
    各ピケットはピケット内におけるデータの遂行及びピケ
    ット内における単一命令複数データ・コマンドの解釈を
    行うための各種モードを取得する各種の遂行機能を有す
    る複数の機構を持ち、前記モードは複合オペレーション
    ・モードであることを特徴とするコンピュータ・システ
    ム用コントローラ。
  2. 【請求項2】 前記コントローラは3つの制御段を持つ
    ことを特徴とする請求項1記載のコンピュータ・システ
    ム用コントローラ。
  3. 【請求項3】 前記階層構造制御の最低レベルはコマン
    ド、アドレス、索引、及び/又はカウンタ値のストリン
    グを供給することにより、処理要素のアレイを直接制御
    するアレイ・マイクロ・コントローラから成ることを特
    徴とする請求項1記載のコンピュータ・システム用コン
    トローラ。
  4. 【請求項4】 前記階層構造制御の中間レベルはアレイ
    ・マイクロ・コントローラのシーケンスを選択するべく
    命令を解釈し、コマンドを供給する、命令シーケンサか
    ら成ることを特徴とする請求項1記載のコンピュータ・
    システム用コントローラ。
  5. 【請求項5】 パイプラインFIFOファイルは実行可
    能のとき、命令シーケンサからデータを受信し、マイク
    ロ・コントローラが最後のマイクロ・ストリングを終了
    したとき、前記マイクロ・コントローラに対してデータ
    を送出することを特徴とする請求項1記載のコンピュー
    タ・システム用コントローラ。
  6. 【請求項6】 前記階層構造制御の最高レベルは、ホス
    トからハイレベルのコマンドを取得し、命令シーケンサ
    の固定ルーチンとアレイ・マイクロ・コントローラのロ
    ーレベル・コマンドとの組合せを使用してハイレベルの
    機能を構築するサブシステム・コントローラから成るこ
    とを特徴とする請求項1記載のコンピュータ・システム
    用コントローラ。
  7. 【請求項7】 前記コントローラの複数の段は共通のコ
    マンド・ホーマット を共用することを特徴とする請求項
    1記載のコンピュータ・システム用コントローラ。
  8. 【請求項8】 前記単一命令複数データ・アレイはアレ
    イ要素に対して個有である前記アレイ要素内の命令を遂
    行することにより、複数命令複数データ機能をシミュレ
    ートするような方法で制御することを特徴とする請求項
    1記載のコンピュータ・システム用コントローラ。
  9. 【請求項9】 前記アレイ・コントローラは前記アレイ
    の処理要素の全べてに対し単一命令複数データ・コマン
    ドと、データと、アドレスと、索引と、カウンタ値とを
    同時に送信することを特徴とする請求項3記載のコンピ
    ュータ・システム用コントローラ。
JP5119334A 1992-05-22 1993-04-23 単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ Expired - Lifetime JP2521401B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88745992A 1992-05-22 1992-05-22
US887459 1992-05-22

Publications (2)

Publication Number Publication Date
JPH0635878A JPH0635878A (ja) 1994-02-10
JP2521401B2 true JP2521401B2 (ja) 1996-08-07

Family

ID=25391183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5119334A Expired - Lifetime JP2521401B2 (ja) 1992-05-22 1993-04-23 単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ

Country Status (2)

Country Link
EP (1) EP0570741A3 (ja)
JP (1) JP2521401B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608448A (en) * 1995-04-10 1997-03-04 Lockheed Martin Corporation Hybrid architecture for video on demand server
WO1996035997A1 (fr) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Processeur parallele
WO2011105408A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 Simdプロセッサ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
JPS5916071A (ja) * 1982-07-19 1984-01-27 Toshiba Corp 並列処理システム
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing

Also Published As

Publication number Publication date
JPH0635878A (ja) 1994-02-10
EP0570741A3 (en) 1994-09-28
EP0570741A2 (en) 1993-11-24

Similar Documents

Publication Publication Date Title
US5805915A (en) SIMIMD array processing system
US5809292A (en) Floating point for simid array machine
US5754871A (en) Parallel processing system having asynchronous SIMD processing
US5815723A (en) Picket autonomy on a SIMD machine
US5708836A (en) SIMD/MIMD inter-processor communication
US5963746A (en) Fully distributed processing memory element
US5966528A (en) SIMD/MIMD array processor with vector processing
US5794059A (en) N-dimensional modified hypercube
US5710935A (en) Advanced parallel array processor (APAP)
US5963745A (en) APAP I/O programmable router
US5588152A (en) Advanced parallel processor including advanced support hardware
JP2552076B2 (ja) コンピュータ・システム
US5734921A (en) Advanced parallel array processor computer package
Johnson et al. General-purpose systolic arrays
US5765012A (en) Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
JP2521401B2 (ja) 単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ
JP2557175B2 (ja) コンピュータ・システム
JP2579419B2 (ja) マルチプロセッサ・メモリ・システム
JP2620487B2 (ja) コンピュータ・パッケージ
JP2552075B2 (ja) コンピュータ・システム
JP2549240B2 (ja) コンピュータ・システム
JP2625628B2 (ja) 浮動小数点コンピュータ・システム
JPH07287700A (ja) コンピュータ・システム
JPH0652124A (ja) コンピュータ・システム