JPH0652124A - コンピュータ・システム - Google Patents

コンピュータ・システム

Info

Publication number
JPH0652124A
JPH0652124A JP5109256A JP10925693A JPH0652124A JP H0652124 A JPH0652124 A JP H0652124A JP 5109256 A JP5109256 A JP 5109256A JP 10925693 A JP10925693 A JP 10925693A JP H0652124 A JPH0652124 A JP H0652124A
Authority
JP
Japan
Prior art keywords
pme
array
processor
data
node
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.)
Pending
Application number
JP5109256A
Other languages
English (en)
Inventor
Norman Barker Thomas
トマス・ノーマン・バーカー
Clive A Collins
クライヴ・アラン・コリンズ
Michael C Dapp
マイケル・チャールズ・ダップ
James W Dieffenderfer
ジェームズ・ウォレン・ディーフェンデルファー
J Knowles Billy
ビリー・ジャック・ノウルズ
B Rolfe David
デイヴィッド・ブルース・ロルフ
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 JPH0652124A publication Critical patent/JPH0652124A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 新規なコンピュータ・システムの提供。 【構成】 大規模並列マシンとして編成された複数のノ
ードを有するコンピュータ・システムにおいて、n次元
修正ハイパーキューブとして相互接続されている。ま
た、単一チップ上の8個のプロセッサが、それ自体に結
合された処理要素、大規模なメモリ、および入出力機構
を有し、ハイパーキューブに基づく修正されたトポロジ
ーによって相互接続される。これらのノードは、次いで
ハイパーキューブ・ネットワーク・トポロジー、修正ハ
イパーキューブ・ネットワーク・トポロジー、リング・
ネットワーク・トポロジーまたはリング内リング・ネッ
トワーク・トポロジーによって相互接続される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータおよびコ
ンピュータ・システム、特に並列アレイ・プロセッサに
関する。本発明によれば、単一の半導体シリコン・チッ
プ上に並列アレイ・プロセッサ(APAP)を組み込む
ことができる。このチップは、複雑な科学研究アプリケ
ーションおよびビジネス・アプリケーションの大規模並
列処理が可能なシステムの基礎となる。
【0002】
【従来の技術】はじめに、本明細書で用いられる用語に
ついて説明する。
【0003】・ALU ALUとは、プロセッサの演算論理回路部分である。
【0004】・アレイ アレイとは、1次元または多次元における要素のアレイ
を指す。アレイは、順番に並べた1組のデータ項目(ア
レイ要素)を含むことができるが、FORTRANのよ
うな言語では、それらのデータ項目は単一の名前で識別
される。他の言語では、順番に並べた1組のデータ項目
の名前は、すべて同じ属性を持つ順番に並べた1組のデ
ータ要素を指す。プログラム・アレイでは、一般に数ま
たは次元属性によって次元が指定される。アレイの宣言
子でアレイの各次元のサイズを指定する言語もあり、ア
レイがテーブル内の要素のアレイとなっている言語もあ
る。ハードウェア的な意味では、アレイは、大規模並列
アーキテクチャにおいて全体として同一な構造(機能要
素)の集合体である。データ並列コンピュータ処理にお
けるアレイ要素は、動作を割り当てることができ、並列
状態のとき、それぞれ独立にかつ並列に必要な動作を実
行できる要素である。一般に、アレイは処理要素の格子
と考えることができる。アレイの各セクションに区分デ
ータを割り当てることにより、区分データを規則的な格
子パターン内で移動することができる。ただし、データ
に索引を付け、あるいはデータをアレイ中の任意の位置
に割り当てることが可能である。
【0005】・アレイ・ディレクタ アレイ・ディレクタとは、アレイの制御プログラムとし
てプログラミングされる単位である。アレイ・ディレク
タは、アレイとしてアレイされた機能要素のグループの
マスタ制御プログラムとしての機能を果す。
【0006】・アレイ・プロセッサ アレイ・プロセッサには主として、複数命令複数データ
方式(MIMD)と単一命令複数データ方式(SIM
D)との2種類がある。MIMDアレイ・プロセッサで
は、アレイ中の各処理要素が、それ自体のデータを使っ
てそれ自体の固有の命令ストリームを実行する。SIM
Dアレイ・プロセッサでは、アレイ中の各処理要素が、
共通の命令ストリームを介して同一の命令に限定され
る。ただし、各処理要素に関連するデータは固有であ
る。本発明の好ましいアレイ・プロセッサには他にも特
徴がある。本明細書では、これをAPAPと呼び、AP
APという略語を使用する。
【0007】・非同期 非同期とは、規則的な時間関係がないことである。すな
わち、各機能の実行間の関係が予測不能であり、各機能
の実行間に規則的または予測可能な時間関係が存在しな
い。制御状況では、制御プログラムは、データが、アド
レスされている遊休要素を待っているとき、制御が渡さ
れる位置にアドレスする。このため、諸操作が、どの事
象とも時間が一致しないのに順序通りのままとなる。
【0008】・BOPS/GOPS BOPSまたはGOPSは、1秒当たり10億回の動作
という同じ意味の略語である。GOPSを参照された
い。
【0009】・回線交換/蓄積交換 これらの用語は、ノードのネットワークを介してデータ
・パケットを移動するための2つの機構を指す。蓄積交
換は、データ・パケットを各中間ノードで受信し、その
メモリに格納してから、その宛先に向かって転送する機
構である。回線交換は、中間ノードに、その入力ポート
を出力ポートに論理的に接続するよう指令して、データ
・パケットが、中間ノードのメモリに入らずに、ノード
を直接通過して宛先に向かうことができるようにする機
構である。
【0010】・クラスタ クラスタとは、制御ユニット(クラスタ制御装置)と、
それに接続されたハードウェア(端末、機能ユニット、
または仮想構成要素)とから成るステーション(または
機能ユニット)である。本明細書では、クラスタは、ノ
ード・アレイとも称するプロセッサ・メモリ要素(PM
E)のアレイを含む。通常、クラスタは512個のPM
E要素を有する。
【0011】本発明の全PMEノード・アレイは、それ
ぞれ1つのクラスタ制御装置(CC)によってサポート
される1組のクラスタから成る。
【0012】・クラスタ制御装置 クラスタ制御装置とは、それに接続された複数の装置ま
たは機能ユニットの入出力動作を制御する装置である。
クラスタ制御装置は通常、IBM 3601金融機関通
信制御装置におけるように、該ユニットに格納され、そ
こで実行されるプログラムの制御を受けるが、IBM
3272制御装置におけるように、ハードウェアで完全
に制御可能である。
【0013】・クラスタ・シンクロナイザ クラスタ・シンクロナイザとは、あるクラスタのすべて
または一部分の動作を管理して、諸要素の同期動作を維
持し、各機能ユニットがプログラムの実行と特定の時間
関係を維持できるようにする機能ユニットである。
【0014】・制御装置 制御装置とは、相互接続ネットワークのリンクを介した
データおよび命令の伝送を指令する装置である。制御装
置の動作は、制御装置が接続されたプロセッサによって
実行されるプログラム、または制御装置内で実行される
プログラムによって制御される。
【0015】・CMOS CMOSとは、相補型金属酸化膜半導体技術の略語であ
る。これは、ダイナミック・ランダム・アクセス・メモ
リ(DRAM)の製造に広く使用されている。NMOS
は、ダイナミック・ランダム・アクセス・メモリの製造
に使用されるもう1つの技術である。本発明では相補型
金属酸化膜半導体の方を使用するが、拡張並列アレイ・
プロセッサ(APAP)の製造に使用する技術によっ
て、使用される半導体技術の範囲が制限されることはな
い。
【0016】・ドッティング ドッティングとは、物理的な接続によって3本以上のリ
ード線を結合することを指す。たいていのバックパネル
・バスではこの接続方法を使用している。この用語は、
過去のOR DOTSと関係があるが、ここでは、非常
に単純なプロトコルによってバス上に結合できる複数の
データ源を識別するのに使用する。
【0017】本発明における入出力ジッパの概念を用い
て、あるノードに入る入力ポートが、あるノードから出
る出力ポート、またはシステム・バスからくるデータに
よって駆動できるという概念を実施することができる。
逆に、あるノードから出力されるデータは、別のノード
およびシステム・バスへの入力として使用できる。シス
テム・バスと別のノードへのデータ出力は、同時には実
行されず、別のサイクルで実行されることに留意された
い。
【0018】ドッティングは、それを利用することによ
り2ポート式のPEまたはPMEまたはピケットを様々
な編成のアレイに使用できる、H−DOTの議論で使用
されている。2次元メッシュおよび3次元メッシュ、ベ
ース2Nキューブ、スパース・ベース4Nキューブ、ス
パース・ベース8Nキューブを含めて、いくつかのトポ
ロジーが議論されている。
【0019】・DRAM DRAMとは、コンピュータが主記憶装置として使用す
る共通記憶装置であるダイナミック・ランダム・アクセ
ス・メモリの略語である。ただし、DRAMという用語
は、キャッシュとして、または主記憶装置ではないメモ
リとして使用するのにも適用できる。
【0020】・浮動小数点 浮動小数点数は、固定小数部すなわち小数部と、約束上
の基数または基底に対する指数部の2つの部分で表され
る。指数は、10進小数点の実際の位置を示す。典型的
な浮動小数点の表記法では、実数0.0001234は
0.1234−3と表される。ここで、0.1234は
小数部であり、−3は指数である。この例では、浮動小
数点基数または基底は10であり、暗示的な1より大き
な正の固定整数基底を表す。浮動小数点表示で明示的に
示される、あるいは浮動小数点表示で指数部で表される
指数でこの基底をべき乗し、次に小数部を掛けると、表
される実数が求められる。数字リテラルは、浮動小数点
表記法で表すことも実数で表すこともできる。
【0021】・FLOPS この用語は、1秒当たりの浮動小数点命令数を指す。浮
動小数点演算には、ADD(加算)、SUB(減算)、
MPY(乗算)、DIV(除算)と、しばしばその他の
多くの演算が含まれる。1秒当たり浮動小数点命令数と
いうパラメータは、しばしば加算命令または乗算命令を
使って算出され、一般に50/50ミックスとみなすこ
とができる。演算には、指数部、小数部の生成と、必要
な小数部の正規化が含まれる。本発明では、32ビット
または48ビットの浮動小数点フォーマットを扱うこと
ができる(これより長くてもよいが、そのようなフォー
マットはミックスではカウントしなかった)。浮動小数
点演算を固定小数点命令(正規またはRISC)で実施
する際には、複数の命令が必要である。性能を計算する
際に10対1の比率を使用する人もあれば、比率を6.
25にした方が適切であることを示す研究もある。アー
キテクチャごとに比率が異なる。
【0022】・機能ユニット 機能ユニットとは、ある目的を達成できる、ハードウェ
ア、ソフトウェア、あるいはその両方のエンティティで
ある。
【0023】・Gバイト Gバイトとは10億バイトを指す。Gバイト/秒は、1
秒当たり10億バイトということになる。
【0024】・GIGAFLOPS 1秒当たり109個の浮動小数点命令
【0025】・GOPSおよびPETAOPS GOPSまたはBOPSは、1秒当たり10億回の演算
という同じ意味を持つ。PETAOPSは、現在のマシ
ンの潜在能力である1秒当たり1兆回の演算という意味
である。本発明のAPAPマシンでは、これらの用語
は、1秒当たり10億個の命令数を意味するBIP/G
IPとほぼ同じである。1つの命令で複数の演算(すな
わち、加算と乗算の両方)を実行できるマシンもある
が、本発明ではそのようにはしない。また、1つの演算
を実行するのに多数の命令を要する場合もある。たとえ
ば、本発明では複数の命令を使って、64ビット演算を
実行している。しかし、演算をカウントする際、対数演
算のカウントは行わなかった。性能を記述するにはGO
PSを使用する方が好ましいが、それを一貫して使うこ
とはしなかった。MIP/MOP、その上の単位として
BIP/BOP、およびMegaFLOPS/Giga
FLOPS/TeraFLOPS/PetaFLOPS
が使用される。
【0026】・ISA ISAとは、Set Architecture(アー
キテクチャ設定)命令を意味する。
【0027】・リンク リンクとは、物理的または論理的要素である。物理的リ
ンクは要素またはユニットを結合するための物理接続で
あり、一方コンピュータ・プログラミングにおけるリン
クは、プログラムの別々の部分間で制御およびパラメー
タのやり取りを行う命令またはアドレスである。多重シ
ステムでは、実アドレスまたは仮想アドレスで識別され
るリンクを識別するプログラム・コードによって指定さ
れる、2つのシステム間の接続がリンクである。したが
って、リンクには一般に、物理媒体、任意のプロトコ
ル、ならびに関連する装置およびプログラミングが含ま
れる。すなわち、リンクは論理的であるとともに物理的
である。
【0028】・MFLOPS MFLOPSは、1秒当たり106個の浮動小数点命令
を意味する。
【0029】・MIMD MIMDは、アレイ内の各プロセッサがそれ自体の命令
ストリームを持ち、したがって多重命令ストリームを有
し、1処理要素当たり1つずつ配置された複数データ・
ストリームを実行する、プロセッサ・アレイ・アーキテ
クチャを指すのに使用される。
【0030】・モジュール モジュールとは、離散しており識別可能なプログラム単
位、あるいは他の構成要素と共に使用するように設計さ
れたハードウェアの機能単位である。また、単一の電子
チップに含まれるPEの集合体もモジュールと呼ばれ
る。
【0031】・ノード 一般に、ノードとはリンクの接合部である。PEの汎用
アレイでは、1つのPEをノードとすることができる。
ノードはまた、モジュールというPEの集合体を含むこ
ともできる。本発明では、ノードはPMEのアレイから
形成されており、この1組のPMEをノードと称する。
ノードは8個のPMEであることが好ましい。
【0032】・ノード・アレイ PMEから構成されるモジュールの集合体をノード・ア
レイと呼ぶことがある。これは、モジュールから構成さ
れるノードのアレイである。ノード・アレイは通常、
2、3個より多いPMEであるが、この用語は複数を包
含する。
【0033】・PDE PDEとは、偏微分方程式である。
【0034】・PDE緩和解法プロセス PDE緩和解法プロセスとは、PDE(偏微分方程式)
を解く方法である。PDEを解くには、既知の分野にお
けるスーパー・コンピュータの計算能力の大半を使用
し、したがってこれは緩和プロセスの好例となる。PD
E方程式を解く方法は多数あり、複数の数値解法に緩和
プロセスが含まれている。たとえば、PDEを有限要素
法で解く場合、緩和の計算に大部分の時間が費やされ
る。熱伝達の分野の例を考えてみよう。煙突内に高温の
ガスがあり、外では冷たい風が吹いているとすると、煙
突のレンガ内の温度勾配はどのようになるだろうか。レ
ンガを小さなセグメントとみなし、セグメント間を熱が
どのように流れるかを温度差の関数として表す方程式を
書くと、伝熱PDEが有限要素問題に変換される。ここ
で、内側と外側の要素を除くすべての要素が室温であ
り、境界セグメントが高温のガスと冷たい風の温度であ
るとすると、緩和を開始するための問題ができあがる。
その後、コンピュータ・プログラムでは、セグメントに
流れ込む、あるいはセグメントから流れ出る熱の量に基
づいて各セグメント内の温度変数を更新することによ
り、時間をモデル化する。煙突における1組の温度変数
を緩和して、物理的な煙突で発生する実際の温度分布を
表すには、モデル中のすべてのセグメントを処理するサ
イクルに何回もかけなければならない。目的が煙突にお
けるガス冷却をモデル化することである場合、諸要素を
気体方程式に拡張しなければならず、そうすると、内側
の境界条件が別の有限要素モデルとリンクされ、このプ
ロセスが続く。熱の流れが隣接するセグメント間の温度
差に依存することに留意されたい。したがって、PE間
通信経路を使って温度変数を分配する。PDE関係が並
列計算にうまく適用できるのは、この近隣接通信パター
ンまたは特性による。
【0035】・ピケット これは、アレイ・プロセッサを構成する要素のアレイ内
の要素である。この要素は、データ・フロー(ALU
REGS)、メモリ、制御機構、通信マトリックスのこ
の要素と関連する部分から構成される。この単位は、並
列プロセッサ要素およびメモリ要素と、その制御機構お
よびアレイ相互通信機構の一部から成るアレイ・プロセ
ッサの1/nを指す。ピケットは、プロセッサ・メモリ
要素(PME)の1つの形である。本発明のPMEチッ
プ設計プロセッサ論理回路は、関連出願に記載されてい
るピケット論理を実施し、あるいはノードとして形成さ
れたプロセッサ・アレイ用の論理を持つことができる。
ピケットという用語は、処理要素を表す、一般的に使用
されているアレイ用語のPEと似ており、好ましくはビ
ット並列バイトの情報をクロック・サイクルで処理する
ための処理要素とローカル・メモリの組合せからなる、
処理アレイの要素である。好ましい実施例は、バイト幅
データ・フロー・プロセッサ、32バイト以上のメモ
リ、原始制御機構、および他のピケットとの通信機構か
ら構成されている。
【0036】「ピケット」という用語は、トム・ソーヤ
ーと、彼の白いフェンスに由来している。ただし、機能
的には、軍隊のピケット・ラインと類似性があることも
理解されよう。
【0037】・ピケット・チップ ピケット・チップは、単一のシリコン・チップ上に複数
のピケットを含んでいる。
【0038】・ピケット・プロセッサ・システム(また
はサブシステム) ピケット・プロセッサは、ピケットのアレイと、通信ネ
ットワークと、入出力システムと、マイクロプロセッ
サ、キャンド・ルーチン・プロセッサ、およびアレイを
実行するマイクロコントローラから成るSIMD制御装
置とから構成されるトータル・システムである。
【0039】・ピケット・アーキテクチャ ピケット・アーキテクチャは、SIMDアーキテクチャ
の好ましい実施例であり、次のことを含む複数の多様な
問題に対応できる機能をもつ。 −セット連想処理 −並列数値中心処理 −イメージに類似した物理的アレイ処理
【0040】・ピケット・アレイ ピケット・アレイは、幾何的順序でアレイされたピケッ
トの集合体であり、規則正しいアレイである。
【0041】・PMEすなわちプロセッサ・メモリ要素 PMEは、プロセッサ・メモリ要素を表す。本明細書で
は、PMEという用語を、本発明の並列アレイ・プロセ
ッサの1つを形成する、単一のプロセッサ、メモリ、お
よび入出力可能なシステム要素もしくはユニットを指す
のに使用する。PMEは、ピケットを包含する用語であ
る。PMEは、プロセッサ、それと結合されたメモリ、
制御インタフェース、およびアレイ通信ネットワーク機
構の一部分から成るプロセッサ・アレイの1/nであ
る。この要素は、ピケット・プロセッサにおけるよう
に、正規のアレイの接続性を持つPME、あるいは上述
の多重PMEノードにおけるように、サブアレイの一部
としてのPMEを備えることができる。
【0042】・経路指定 経路指定とは、メッセージを宛先に届けるための物理経
路を割り当てることである。経路の割当てには、発信元
と宛先が必要である。これらの要素またはアドレスは、
一時的な関係または類縁性を持つ。メッセージの経路指
定は、しばしば、割当てのテーブルを参照することによ
って得られるキーに基づいて行われる。ネットワーク内
では、宛先は、リンクを識別する経路制御アドレスによ
って、伝送される情報の宛先としてアドレス指定され
る、任意のステーションまたはネットワークのアドレス
指定可能ユニットである。宛先フィールドは、メッセー
ジ・ヘッダ宛先コードで宛先を識別する。
【0043】・SIMD アレイ内のすべてのプロセッサが、単一命令ストリーム
から、1処理要素当たり1つずつ配置された複数データ
・ストリームを実行するように指令を受ける、プロセッ
サ・アレイ・アーキテクチャ。
【0044】 ・SIMDMIMDまたはSIMD/MIMD SIMDMIMDまたはSIMD/MIMDとは、ある
時間の間MIMDからSIMDに切り換えて複雑な命令
を処理できる二重機能を持ち、したがって2つのモード
を持つマシンを指す用語である。シンキング・マシンズ
社(Thinking Machines, Inc)のコネクション・マシン
(Connection Machine)モデルCM−2をMIMDマシ
ンのフロント・エンドまたはバック・エンドとして配置
すると、プログラマは、二重モードとも称する、複数の
モードを動作させてある問題の別々の部分を実行するこ
とができた。これらのマシンは、ILLIAC以来存在
しており、バスを使用してマスタCPUを他のプロセッ
サと相互接続している。マスタ制御プロセッサは、他の
CPUの処理に割り込む能力を持つ。他のCPUは、独
立のプログラム・コードを実行できる。割込み中、チェ
ックポイント機能用に何らかの処理が必要である(制御
されるプロセッサの現状況のクローズおよびセーブ)。
【0045】・SIMIMD SIMIMDは、アレイ内のすべてのプロセッサが、単
一命令ストリームから、1処理要素当たり1つずつ配置
された複数データ・ストリームを実行するように指令を
受ける、プロセッサ・アレイ・アーキテクチャである。
この構成内では、命令実行を模倣する、各ピケット内の
データ従属演算が、SIMD命令ストリームによって制
御される。
【0046】これは、SIMD命令ストリームを使用し
て複数命令ストリーム(1ピケット当たり1個)を順序
付けし、複数データ・ストリーム(1ピケット当たり1
個)を実行することの可能な、単一命令ストリーム・マ
シンである。SIMIMDは、PMEシステムによって
実行できる。
【0047】・SISD SISDは、単一命令単一データの略語である。
【0048】・スワッピング スワッピングとは、ある記憶域のデータ内容を別の記憶
域のデータ内容と相互に交換することをいう。
【0049】・同期操作 MIMDマシンにおける同期動作は、各アクションがあ
る事象(通常はクロック)に関係付けられる、動作モー
ドである。この事象は、プログラム・シーケンス中で規
則的に発生する、指定された事象とすることができる。
動作は多数の処理要素にディスパッチされ、それらの処
理要素はそれぞれ独立して機能を実行する。動作が完了
しないかぎり、制御は制御装置に返されない。
【0050】要求が機能ユニットのアレイに対するもの
である場合、アレイ内の要素に制御装置から要求が出さ
れ、その要素は、制御装置に制御が返される前に動作を
完了しなければならない。
【0051】・TERAFLOPS TERAFLOPSは、1秒当たり1012個の浮動小数
点命令を意味する。
【0052】・VLSI VLSIとは、(集積回路に適用される)超大規模集積
の略語である。
【0053】・ジッパ ジッパとは、新規に提供される、アレイ構成の通常の相
互接続の外部にある装置からリンクを確立するための機
能である。
【0054】以下に、本発明の背景となる従来技術につ
いて述べる。エンジニアは、コンピュータの高速化をあ
くなく追求する中で、数百、ときには数千もの低コスト
・マイクロプロセッサを並列にリンクして、スーパー・
スーパーコンピュータを構築し、今日のマシンには手の
負えない複雑な問題を解決しようとしている。そのよう
なマシンは、大規模並列マシンと呼ばれている。本発明
者等は、大規模並列システムを構築するための新規の方
法を開発した。本発明者等が加えた多数の改良は、他の
人々の多数の研究の背景と対比して考察すべきである。
【0055】並列に動作する複数のコンピュータは数十
年前から存在する。初期の並列マシンには、1960年
代に開始されたILLIACが含まれる。1970年代
にはILLIAC IVが構築された。他の多重プロセ
ッサ(米国特許第4975834号の要約を参照)に
は、シーダ(Cedar)、シグマ1(Sigma-1)、バタフラ
イ・アンド・ザ・モナーク(the Butterfly and the Mo
narch)、インテルipsc(the Intel ipsc)、コネ
クション・マシンズ(The Connection Machines)、カ
ルテック・コズミック(the Caltech COSMIC)、Nキュ
ーブ(the N Cube)、IBMのRP3、IBMのGF1
1、NYUウルトラ・コンピュータ(theNYU Ultra Com
puter)、インテル・デルタ・アンド・タッチストーン
(the Intel Delta and Touchstone)などがある。
【0056】ILLIACから始まる大規模多重プロセ
ッサは、スーパーコンピュータとみなされている。商業
的にもっとも大きな成功を収めたスーパーコンピュータ
は、複数のベクトル・プロセッサに基づくものであり、
クレイ・リサーチ(Cray Research)Y−MPシステ
ム、IBM 3090、ならびにアムダール(Amdah
l)、日立、富士通、NECなどその他の製造業者のマ
シンがその代表である。
【0057】大規模並列プロセッサ(MPP)は現在、
スーパーコンピュータとなる能力を有するとみなされて
いる。これらのコンピュータ・システムは、相互接続ネ
ットワークによって多数のマイクロプロセッサを集成
し、これらのマイクロプロセッサが並行して動作するよ
うにプログラミングする。これらのコンピュータの動作
モードは2つある。すなわち、MIMDモード・マシン
とSIMDモード・マシンとがある。これらのマシンの
中で商業的にもっとも成功したのは、シンキング・マシ
ンズ社のコネクション・マシンズ・シリーズ1および2
である。これは基本的に、SIMDマシンである。大規
模並列マシンの多くは、並列に相互接続されたマイクロ
プロセッサを使用して、並行性、すなわち並列動作能力
を得ている。i860などのインテル・マイクロプロセ
ッサは、インテル社その他が使用してきている。Nキュ
ーブ社では、インテル ^386マイクロプロセッサを用
い大規模並列マシンを構築している。他に、いわゆる
「トランスピュータ」チップを使って構築されたマシン
もある。インモス・トランスピュータ(Inmos Transput
er)IMS T800はその一例である。インモス・ト
ランスピュータT800は32ビット装置であり、一体
型高速浮動小数点プロセッサを備えている。
【0058】構築されるシステムの種類の例を挙げる
と、たとえば、複数のインモス・トランスピュータT8
00チップが、それぞれ32個の通信リンク入力と32
個のリンク出力を有する。各チップは、単一のプロセッ
サ、小規模のメモリ、ローカル・メモリへの通信リン
ク、および外部インタフェースへの通信リンクを有す
る。さらに、システムを完成するため、IMS C01
1やC012などの通信リンク・アダプタが接続され
る。さらに、IMS C004などのスイッチをたとえ
ば32個のリンク入力と32個のリンク出力の間のクロ
スバー交換機として用いて、追加のトランスピュータ・
チップ間での2地点間接続を行う。さらに、トランスピ
ュータ用の特殊回路およびインタフェース・チップを使
用し、これを特殊装置、グラフィックス制御装置、また
はディスク制御装置の要件に合わせて調整された特殊目
的に使用できるように適合させている。インモスIMS
M212は16ビット・プロセッサであり、1個のオ
ン・チップ・メモリと複数の通信リンクを備えている。
このプロセッサは、ディスク・ドライブを制御するため
のハードウェアおよび論理回路を備えており、プログラ
マブル・ディスク制御装置または汎用インタフェースと
して使用できる。並行性(並列動作)を使用するため、
インモス社ではトランスピュータ用の特殊言語であるO
ccamを開発した。プログラマは、トランスピュータ
のネットワークを直接Occamプログラムで記述する
必要がある。
【0059】これらの大規模並列マシンのいくつかは、
様々なトポロジーで相互接続されたプロセッサ・チップ
から成る並列プロセッサ・アレイを使用している。トラ
ンスピュータは、IMS C004チップを追加してク
ロスバー・ネットワークを形成する。この他に、ハイパ
ーキューブ接続を使用するシステムもある。バスまたは
メッシュを使用して、マイクロプロセッサとそれに関連
する回路を接続するシステムもある。回線交換プロセッ
サによって相互接続され、スイッチをプロセッサ・アド
レス可能ネットワークとして使用するシステムもある。
昨年秋、ローレンス・リバーモア(Lawrence Livermor
e)で、マシンを相互に配線することによって相互接続
された14個のRISC/6000の場合のように、プ
ロセッサ・アドレス可能ネットワークは粗多重プロセッ
サとみなされるようになっている。
【0060】いくつかの大規模なマシンが、インテル社
およびNキューブ社その他によって、データ処理におけ
るいわゆる「遠大な課題」に対処するために構築されて
いる。しかし、これらのコンピュータはきわめて高価で
ある。「遠大な課題」に対処するために米国政府が開発
資金を提供しているコンピュータの最近の見積りコスト
は、約3000〜7500万ドル(テラコンピュータ)
である。これらの「遠大な課題」には、気候モデリン
グ、乱流、汚染分散、ヒト遺伝子および海流のマッピン
グ、量子クロモ力学、半導体およびスーパーコンピュー
タのモデル化、燃焼システム、視覚認識が挙げられる。
【0061】本発明の背景について一言付け加えると、
IBMが開発した初期の大規模並列マシンの1つを認識
すべきである。本明細書では、チップ内のPMEのアレ
イすなわちノードを構成する、プロセッサおよび入出力
機能を備えた8つ以上のメモリ単位の1つを記述するの
に、「トランスピュータ」ではなくPMEという用語を
使用する。参照した従来技術の「トランスピュータ」
は、チップ上に1つのプロセッサ、FORTRAN補助
プロセッサ、および小規模なメモリと入出力インタフェ
ースを有する。本発明のPMEは一般に、トランスピュ
ータおよびRP3のPMEに適用できる。しかし、以下
で分かるように、本発明の小型チップは多くの点で大幅
に異なる。本発明の小型チップは後述する多数の機能を
有する。しかし、PMEという用語が、最初はRP3と
して知られる大規模並列マシンの基礎となった、現在で
はより典型的となった別のPMEを表すために作り出さ
れたことを、本発明者等は承知している。RP3(IB
M研究用並列処理プロトタイプ)は、複数命令複数デー
タ(MIMD)アーキテクチャに基づく実験的並列プロ
セッサであった。RP3は、IBMのT.J.ワトソン
研究所でニューヨーク大学ウルトラコンピュータ・プロ
ジェクトと協力して設計し構築された。この研究は一
部、米国防総省高等研究企画庁の後援を受けた。RP3
は、高速オメガ・ネットワークと相互接続された64個
のプロセッサ・メモリ要素(PME)から構成されてい
た。各PMEが、32ビットのIBM"PC Scientifi
c"マイクロプロセッサ、32KBキャッシュ、4MBセ
グメントのシステム・メモリ、および入出力ポートを備
えていた。PME入出力ポート・ハードウェアおよびソ
フトウェアは、初期設定、状況獲得、ならびに共用入出
力サポート・プロセッサ(ISP)によるメモリとプロ
セッサの通信をサポートした。各入出力サポート・プロ
セッサは、システム・ネットワークとは独立に、拡張入
出力アダプタ(ETIO)により8個のPMEをサポー
トする。各入出力サポート・プロセッサは、IBM S
/370チャネルおよびIBMトークン・リング・ネッ
トワークとインターフェースし、オペレータ・モニタ・
サービスを提供する。各拡張入出力アダプタは、装置と
してPME ROMP記憶チャネル(RSC)に接続さ
れ、ETIOチャネルを介してプログラマブルPME制
御/状況信号入出力を提供した。ETIOチャネルは、
ISPを8個のアダプタに相互接続する32ビット・バ
スである。ETIOチャネルは、ETIOアダプタ上の
ハードウェアと入出力サポート・プロセッサ上のソフト
ウェアでサポートされるカスタム・インタフェース・プ
ロトコルを使用していた。
【0062】
【発明が解決しようとする課題】本明細書で拡張並列ア
レイ・プロセッサ(APAP)と呼んでいるマシンは、
密並列プロセッサであり、従来設計の問題に対処するた
めにこれが必要であると本発明者等は考えている。上述
のように、専用メモリおよび共用メモリを使用するポイ
ント・デザインおよびオフ・ザ・シェルフ・プロセッサ
と、可能な多数の相互接続方式の1つとから多くの密
(および粗)プロセッサが構築されている。現在までの
ところ、これらの手法はすべて、設計および性能上いく
つかの制限が見つかっている。その「解決策」はそれぞ
れ目指す所が異なるが、それぞれ問題がある。既存の並
列マシンはプログラミングが難しい。各並列マシンは一
般に、一連のアプリケーションと互換性のある様々なサ
イズのマシンに適合できるわけではない。各並列マシン
は、物理設計、相互接続、およびアーキテクチャ上の問
題によってその設計が制限されている。
【0063】物理的問題:水平構造に必要な各種機能の
それぞれ用に別々のチップ設計を使用する手法がある。
これらの手法は、チップ交差遅延により性能が制限され
ている。
【0064】様々な機能を単一のチップに垂直に集積す
る手法もある。これらの手法は、生産可能なチップ上に
集積できる論理ゲートの数に物理的制限があるために、
その性能が制限されている。
【0065】相互接続の問題:密並列プロセッサにとっ
て、様々な処理機能を相互接続するネットワークが重要
である。バス、メッシュ、およびハイパーキューブを用
いるプロセッサ設計はすべて開発されている。これらの
ネットワークはそれぞれ、処理能力に関して固有の制限
がある。バス設計では、物理的に相互接続可能なプロセ
ッサの数と、ネットワーク性能の両方が制限される。メ
ッシュ設計では、ネットワークの直径が大きくなるた
め、ネットワークの性能が制限される。ハイパーキュー
ブ設計では、各ノードに多数の相互接続ポートが必要で
ある。したがって、相互接続できるプロセッサの数は、
ノードにおける物理入出力ピンによって制限される。ハ
イパーキューブ構造は、従来のバス構造およびメッシュ
構造よりも性能上かなり優れていると考えられている。
【0066】アーキテクチャ上の問題:密並列プロセッ
サに適したプロセスは、2つの種類に分けられる。機能
的に区分可能なプロセスは、複数命令複数データ(MI
MD)アーキテクチャでの方がうまく実行できる傾向が
ある。機能的に区分可能ではないが、複数のデータ・ス
トリームを持つプロセスは、単一命令複数データ(SI
MD)アーキテクチャでの方がうまく実行できる傾向が
ある。どのようなアプリケーションでも、両方の種類の
プロセスがいくつか含まれている。特定のアプリケーシ
ョンに最も適合するアーキテクチャを選択するにはシス
テム・トレードオフが必要であるが、単一の解決策では
満足な結果が得られていない。
【0067】
【課題を解決するための手段】本発明では、新しい概念
によって設計された新規の「チップ」およびシステムを
作成することにより、大規模並列プロセッサおよびその
他のコンピュータ・システムを構築する、新しい方法を
開発した。本発明は、そのようなシステムを対象として
いる。本明細書に記載する構成要素を本発明のシステム
中で組み合わせると、新しいシステムが構築できる。こ
れらの構成要素は、既存の技術と組み合わせることも可
能である。
【0068】本発明の約14×14mmの小型CMOS
DRAMは、レンガでビルディングの壁を築いたり道
路を舗装するのと同様に組み立てることができる。この
チップは、複製物の接続により、「家」すなわち複合コ
ンピュータ・システムの構築に必要な構造を提供する。
【0069】本発明を概観すると、それぞれ内部アレイ
機能および外部入出力BCIを備え、メモリに組み込ま
れた8個以上のプロセッサを備える、同一の小型チップ
4個で、36以上の複合コンピュータのメモリおよび処
理能力が提供される。これらのチップは、そのすべてを
コンパクト・ハイブリッド・パッケージングにより腕時
計程度のサイズに配置することができ、また各チップが
約2Wしか散逸しないので、きわめて低い電力で動作さ
せることができる。本発明者等は、このチップを用いて
多数の新規概念を開発しており、独自の発明と考える概
念については、実施例および特許請求の範囲で詳しく記
述する。本発明のコンピュータ・システムを用いて構築
できるシステムは、小型装置から、PETAOP能力を
持つ大規模なマシンまでの範囲に及ぶ。
【0070】本明細書では、小型のメモリ・チップ・ア
レイ・プロセッサをAPAPと呼んでいる。このプロセ
ッサは小型であるが、複雑で強力である。典型的なクラ
スタは多数のチップを有する。本明細書および関連出願
に、本発明の多くの態様および特徴が記載されている。
本発明のこれらの概念および特徴は、各発明を使用しな
いコンピュータ・システムを改善し、かつそのようなコ
ンピュータ・システムに適用できる。本発明の概念およ
び特徴は、次世紀に採用され使用されるものと本発明者
等は考えている。
【0071】ここでは、本発明の新しいメモリ概念を表
す拡張並列アレイ・プロセッサ(APAP)と、簡単で
(固有の部品数がきわめて少ない)非常に高性能のスケ
ーリング可能な大規模並列プロセッサ(MPP)を開発
する際の努力について概説する。本発明のプロセッサ
は、好ましい実施例ではVLSIチップを使用してい
る。このチップは、2n個のPMEマイクロコンピュー
タを含んでいる。"n"は、最大アレイ次元数を表す。チ
ップはさらに、同報通信/制御インタフェース(BC
I)と、チップ上のPME間の内部通信経路および、オ
フチップ・システム環境への外部通信経路を備えてい
る。好ましいチップは、8個のPME(ただし、これよ
り多く設けることもできる)と1つのBCIを有してい
る。2n個のPMEと1つのBCIが、ノードとみなさ
れる。このノードは、SIMDモードとMIMDモード
のどちらかで、二重SIMD/MODEで、非同期処理
付きで、およびSIMIMD機能付きで機能できる。こ
れは、スケーリング可能なので、可変サイズのスケーリ
ング可能並列プロセッサの主要構成単位となることので
きるノードが提供される。PMEのマイクロコンピュー
タ・アーキテクチャは、各ノードまたはチップ内に完全
に分散したメッセージ転送相互接続機能および制御機能
を提供する。各ノードは、チップ・レベル、マイクロプ
ロセッサまたはパーソナル・コンピュータ・レベル、ワ
ークステーション・レベル、ビジョンまたはアビオニク
ス・レベルで代表される特殊アプリケーション・レベル
の多重並列マイクロコンピュータ機能を提供する。ま
た、完全に拡張すると、スーパーコンピュータの範囲に
及ぶ強力なギガフロップ性能をもつさらに高レベルの機
能が提供される。複製すると並列クラスタとなる、高度
に拡張されたDRAMチップを1つ使用することによ
り、単純さが実現される。このため、チップ数、さらに
モジュールの数などを変えることにより、部品数が抑え
られ、コストまたは性能上のニーズに対するスケーリン
グ能力が提供できる。
【0072】本発明の手法によれば、一連のアプリケー
ションを並列に処理するという要件を満たす属性をもつ
マシンが提供できる。本発明の、サブチップ・レベルで
並列化を実施する方法により、重量、体積、反復コスト
および予備品在庫コストが抑えられる。
【0073】本発明の様々なサイズのシステムはすべて
単一のチップを基にして構成されるので、ソフトウェア
・ツールはあらゆるサイズのシステムに共通である。こ
のため、すべてのレベル(ワークステーション、航空宇
宙、およびスーパーコンピュータ)で交換可能な(小規
模なワークステーション・マシン上で走行する)開発ソ
フトウェアが可能となる。すなわち、ずっと大規模なマ
シン上で実動プログラムを実行しながら、プログラマが
ワークステーション上でプログラムを開発することがで
きる。
【0074】本発明の設計の実施はたいへんバランスが
よいので、技術、性能、コスト、および認識面で課され
ている今日の要件を満たすとともに、将来、システムの
拡張が可能である。本発明のMPP手法はチップ・レベ
ルから出発するので、まずチップ技術について説明し、
最後にスーパーコンピュータ・アプリケーションについ
て説明する。
【0075】物理的問題、相互接続の問題、およびアー
キテクチャの問題はすべて、マシン内で直接対処され
る。諸機能が単一のチップ設計に統合されているだけで
なく、このチップ設計は、処理、経路指定、記憶、およ
び3種の入出力においてチップが効果を示すのに十分な
強力で柔軟な機能を提供する。相互接続ネットワーク
は、ハイパーキューブに通常伴う入出力ピンおよび配線
可能性の制限なしに、最小のネットワーク直径を提供す
る、ハイパーキューブの新規バージョンとなる。SIM
DとMIMDの間のトレードオフは不要になる。という
のは、この設計では、プロセッサをMIMDモードとS
IMDモードの間で動的に切り換えることができるから
である。このため、「ハイブリッド」マシンのアプリケ
ーション・プログラマが遭遇する多数の問題がなくな
る。さらに、この設計により、プロセッサのサブセット
をSIMDモードまたはMIMDモードにすることがで
きる。
【0076】拡張並列アレイ・プロセッサ(APAP)
は、密並列プロセッサである。APAPは、パーソナル
・コンピュータ処理アプリケーションによるスーパーコ
ンピュータ処理に適した構成が満足されるように、区分
可能な制御セクションおよび処理セクションから構成さ
れている。大部分の構成では、これはホスト・プロセッ
サに接続され、ホストの作業負荷の各セグメントへのオ
フロードをサポートする。APAPアレイ処理要素は汎
用コンピュータなので、オフロードされる作業負荷の種
類は、ホストの機能に応じて変わる。たとえば、本発明
のAPAPは、IBM 3090ベクトル・プロセッサ
・メインフレームのモジュールとすることができる。高
性能ベクトル浮動小数点機能を備えたメインフレームに
接続する場合は、オフロードされるタスクが疎密行列変
換であってよい。また、パーソナル・コンピュータに接
続する場合は、オフロードされるタスクが数値計算中心
の3次元図形処理であってよい。
【0077】"Parallel Associative Processor Syste
m"と題する米国特許出願第07/611594号では、
コンピュータ・メモリと制御論理回路を単一チップ内に
統合し、チップ内でその組合せを複製して、単一チップ
の複製からプロセッサ・システムを構築するという考え
が記載されている。この手法は、本発明で継続され拡張
されて、わずか1種類のチップを開発および製造するだ
けで、大規模並列処理機能が実施でき、チップ境界交差
が削減され線長が短くなったために性能が向上した、シ
ステムがもたらされる。
【0078】1990年11月13日出願の米国特許出
願第07/611594号では、1次元入出力構造(基
本的に線形入出力)を、チップ内で複数のSIMD P
MEを該構造に取り付けて利用することが例示されてい
る。この実施例では、これらの概念を2次元以上に拡張
している。次に、1チップ当たり8個のSIMD/MI
MD PMEを備えた4次元入出力構造について説明す
る。しかし、後で図4、図10、図11、図17、およ
び図18に関して説明するように、これよりも次元数、
または次元当たりのPMEを増やすことが可能である。
本発明の処理要素は、データ転送割込みおよびプログラ
ム割込みを含む完全な入出力システムを備えている。好
ましい実施例の説明では、主として、1チップ当たり8
個のSIMD/MIMD PMEを備えた好ましい4次
元入出力構造を取り上げる。本発明者等の考えでは、現
在この構造は特に有利である。しかし、本明細書に記載
するように、この次元数、または次元当たりのPMEを
これよりも増やすことが可能である。さらに、大部分の
応用例では、ハイパーキューブ相互接続、特に後述の修
正ハイパーキューブによる、より高次元の領域における
発明を優先し、かつそのような発明を行った。しかし、
応用例によっては、チップの2次元メッシュ相互接続が
手近なタスクに適用できる。たとえば、ある種の軍事用
コンピュータでは、2次元メッシュが適切であり、費用
効果が高い。
【0079】本開示では、これらの概念をプロセッサ間
通信から外部入出力機能へと拡張し、処理アレイの制御
に必要なインターフェースおよびモジュールを記載す
る。要するに、プロセッサ間、プロセッサ外部間、同報
通信/制御の3種の入出力を記載する。大規模並列処理
システムでは、これらすべての種類の入出力帯域幅要求
とプロセッサの計算能力のバランスをとることが必要で
ある。アレイ内では、これらの要件は16ビットの(縮
小)命令セット・プロセッサを複製し、それに超高速割
込み状態スワップ能力を増補することによって満たされ
る。このプロセッサは、PMEと称し、本発明のAPA
Pの好ましい実施例を例示するものとなる。PMEの特
徴は、他の大規模並列マシンの処理要素と比較すると、
全く独特である。これを用いると、処理、経路指定、記
憶および入出力を完全に分散させることが可能となる。
他の設計でこの特徴を持つものはない。
【0080】ハイパーキューブでは、各PMEが、それ
に隣接する要素として、アドレスのどれか1つのビット
位置だけが異なるどのPMEにもアドレスできる。リン
グ内では、どのPMEも、それに隣接する要素として、
アドレスが±1異なる2つのPMEにアドレスできる。
APAPに使用される、好ましい実施例の修正ハイパー
キューブでは、これらの手法を組み合わせて、リングか
らハイパーキューブを構築している。リングの交差部分
を、ノードと定義する。好ましいシステムの各ノードで
は、半導体シリコン低レベルCMOS DRAMチップ
内に、PME、メモリと入出力機構、ならびにノードの
他のフィーチャが形成されている。ノードは、各チップ
上の複数のPMEから構築される。各PMEは、複数の
ノードからなる1つのリング内だけに存在する。ノード
内のPMEは、ノード内のリング間で通信の経路指定が
可能なように、追加のリングによって接続されている。
これにより、自分のリング内のあるPME、またはその
ノード内の隣接PMEにアドレスすることにより、どの
PMEも目標に向けてメッセージを送信できる、アドレ
ス指定構造が形成される。要するに、PMEは、そのリ
ングのIn2dビット・フィールド(dは、リング内の
PMEの数)においてアドレスの1つのビットが1だけ
異なるPME、またはアドレスは同じであるが隣接の次
元に存在するPMEにアドレスできる。PMEはn組の
リングに存在しているように見えるが、実際には1つの
実リングと、チップ内にそっくり含まれる1つの隠れた
リング内に存在するだけである。修正ハイパーキューブ
の次元数は、前文から値nと定義する。
【0081】本発明では、修正ハイパーキューブを使用
することが好ましい。これについては、本明細書の該技
術に関する説明の部分で詳述する。最後に、あるリング
内のPMEは対になって、一方のPMEがノードのリン
グに沿ってデータを外側に時計回りの方向に移動し、他
方のPMEがノードのリングに沿ってデータを外側に反
時計回りの方向に移動するようになっている。したがっ
て、1つのPMEが外部ポート専用となる。
【0082】好ましい実施例における大規模並列マシン
では、1つのPMEと、ノード内の別のPME、ならび
にそのノード外にある、クラスタの他のノードまたは大
規模並列処理環境のPMEとの相互接続ならびにデータ
および命令の同報通信がプログラマブル・ルータによっ
て実行され、したがって再構成が可能であり、ネットワ
ーク動作がきわめて柔軟である。この重要な機能は、完
全に分散されてPMEに組み込まれており、SIMDモ
ードおよびMIMDモード、ならびにSIMD/MIM
D動作モードおよびSIMIMD動作モードでシステム
が動作中に、PME間のプロセッサ通信およびデータ転
送が可能となる。
【0083】リング内で、各相互接続レッグは2地点間
接続である。各PMEは、リング内の2つの隣接PM
E、および2つの隣接リング内の2つの隣接PMEと2
地点間接続されている。これらの2地点間接続のうち3
つはノード内部にあり、4番目の2地点間接続は隣接ノ
ードとの間にある。
【0084】大規模並列処理システムは、処理要素と、
そのローカル・メモリおよび相互接続トポロジーを使用
して、すべてのプロセッサを相互に接続する。PME内
には、入出力プログラマブル・ルータが組み込まれてい
る。本発明のシステムではまた、すべての処理要素をロ
ードおよびアンロードする能力を提供する追加機構が提
供される。本発明のジッパにより、処理要素のアレイを
ロードおよびアンロードする方法が提供され、したがっ
てアレイのリングのエッジに沿った高速入出力の実現が
可能になる。外部インタフェース入出力を可能にするた
め、リングをサブセットに分割し(ある次元でジップ解
除し)、分割された経路を外部インタフェースに接続す
ることができる。1992年5月22日に出願され
た、"APAP I/O ZIPPER"と題する同時係属の米国特許
に、「ジッパ」がさらに詳細に記載されている。「ジッ
パ」は、ピーク外部入出力負荷をサポートするのに必要
なリンクのサブセットだけに適用できる。そのため、こ
れまでに考察したすべての構成で、ジッパは、物理設計
の1つまたは2つのエッジだけに適用される。
【0085】最後の種類の入出力は、すべてのPMEに
同報通信しなければならない、あるいはすべてのPME
から収集しなければならないデータと、特殊過ぎて標準
バスに適合できないデータから構成される。同報通信デ
ータには、コマンド、プログラム、およびデータが含ま
れる。収集データは主として状況機能およびモニタ機能
であり、診断機能およびテスト機能は特殊要素である。
各ノードには、組み込まれた1組のPMEの他に、同報
通信/制御インタフェース(BCI)セクションが1つ
ある。
【0086】修正4次元ハイパーキューブ・ネットワー
ク中で相互接続されているPMEを考えてみよう。各リ
ングが16個のPMEを備えている場合、システムは3
2768個のPMEを有することになる。ネットワーク
直径は19ステップである。各PMEは、ソフトウェア
内にルータおよび再構成ソフトウェアを備えており、特
定の発信ポートをサポートする。したがって、処理要素
またはノードが故障した場合、ソフトウェア経路指定に
よって再構成が可能になる。バイト幅半二重リングを備
えた4次元25MHzのネットワーク設計では、毎秒4
10ギガバイトのピーク内部帯域幅が実現される。
【0087】4次元ハイパーキューブにより特に有利な
パッケージがもたらされる。単一のチップに8個のPM
E(データ・フロー、メモリと入出力経路、および制御
機構を含む)が含まれる。したがって、リングに沿って
要素対を備えた単一のチップがノードとなる。ノードは
8×8アレイに構成され、クラスタを形成する。完全装
備のマシンは、8×8クラスタのアレイから構成され、
PME32768個の最大容量を提供する。
【0088】各PMEは、大きなメモリ機能と入出力機
能を持つ強力なマイクロコンピュータである。縮小命令
セット(RISC)アーキテクチャ内にはマルチバイト
・データ・フローがある。各PMEは、16ビットの内
部データ・フローと、8レベルのプログラム割込みを有
し、作業用レジスタと汎用レジスタを使用してデータ・
フローを管理する。PMEソフトウェア制御下で入出力
転送を行うために、回線交換モードおよび蓄積交換モー
ドがある。SIMDモードまたはMIMDモードは、P
MEソフトウェアの制御下にある。PMEは、SIMD
モードでは同報通信/制御インタフェース(BCI)か
らのRISC命令、MIMDモードでは自分の主記憶装
置からのRISC命令を実行する。特定のRISC命令
コード点を再解釈して、SIMDモードで固有の機能が
実行できる。各PMEは、拡張命令セット・アーキテク
チャを実施することができ、拡張精密固定小数点演算、
浮動小数点演算、ベクトル演算などのマクロ・レベル命
令を実行する経路指定を提供することができる。これに
より、複雑な演算が扱えるようになるだけでなく、多次
元でのイメージ・データ(2次元イメージおよび3次元
イメージ)の表示用および多重媒体アプリケーション用
のイメージ処理活動も可能になる。システムは、ある機
能用にPMEのグループを選択できる。割り当てられた
PMEに、グループ処理のために選択されたデータおよ
び命令を割り振ることができる。動作は、BCIを介し
て外部から監視できる。各BCIは、そのノード用の一
次制御入力、二次制御入力、および状況モニタ出力を有
する。ノード内では、2n個のPMEをチップ内の2進
ハイパーキューブ通信ネットワーク用接続とすることが
できる。PME間の通信は、PMEソフトウェアの制御
下でPME制御レジスタ内のビットによって制御され
る。これにより、システムは仮想経路指定機能を持つこ
とができる。各PMEは、それ自体の中で上下にまたは
2つの隣接リングのいずれかにおける隣接PMEにメッ
セージを送信できる。PME間の各インタフェースは2
地点間接続である。入出力ポートを用いて、内部リング
をシステムの隣接ノードまでチップ外に延ばすことがで
きる。システムは、ノードの複製から構築され、ノード
・アレイ、クラスタその他の構成を形成している。
【0089】本発明では、システムのSIMD機能、M
IMD機能、SIMD/MIMD機能、およびSIMI
MD機能を補足するため、独特な動作モードを提供して
いる。SIMD/MIMD PMEの独特なモードのう
ちに、「蓄積交換/回線交換」機能と呼ばれる新規の機
能がある。これらのハードウェア機能を、オンチップ通
信と、プログラマブルな内部および外部入出力経路指定
で補足すると、PMEに最適なデータ転送機能が提供さ
れる。好ましい動作モードでは、プロセッサ・メモリは
一般に、蓄積交換モードでPMEを宛先とするメッセー
ジおよびデータのデータ・シンクである。PMEを宛先
としないメッセージおよびデータは、回線交換モードの
とき、必要な出力ポートに直接送信される。PMEソフ
トウェアは、選択された経路指定経路を実行しながら、
PMEに動的に選択可能な蓄積交換/回線交換機能を与
える。
【0090】本発明によって提供される新規概念の1つ
に、ノードのPME用の完全分散型アーキテクチャがあ
る。各ノードは、2n個のプロセッサ、メモリ、および
入出力機構を有する。あらゆるPMEが、16ビットの
データ・フロー、64KBのローカル記憶域、蓄積交換
/回線交換論理回路、PME間通信、SIMD/MIM
D交換機能、プログラムマブル経路指定、および専用浮
動小数点支援論理回路により、非常に柔軟な処理機能を
提供する。あらゆるPMEの編成と、それと同一チップ
内の他のPMEとの間の通信経路により、チップ交差遅
延が最小限になるようになっている。PME機能は、P
MEによって独立に操作でき、ノード、クラスタ、およ
びより大きなアレイ内の諸機能と統合できる。
【0091】本発明の大規模並列システムは、多重プロ
セッサ・ノード、ノードのクラスタ、およびクラスタに
すでにパッケージされたPMEのアレイというノード構
成単位から構成されている。これらのパッケージ・シス
テムを制御するため、本発明では、大規模並行処理環境
においてハードウェア制御装置によってプロセッサ・メ
モリ要素(PME)アレイ制御装置機能の全体を実行す
る、システム・アレイ・ディレクタを提供する。システ
ム・アレイ・ディレクタは、アプリケーション・インタ
フェース、クラスタ・シンクロナイザ、および通常はク
ラスタ制御装置という3つの機能領域から構成されてい
る。システム・アレイ・ディレクタは、PMEアレイの
全体的制御を行い、同報通信バスおよびジッパ接続を用
いて、すべてのPMEに対してデータおよびコマンドを
操舵する。システム・アレイ・ディレクタは、ハードウ
ェアと相互作用するソフトウェア・システムとして機能
し、APAPオペレーティング・システムのシェルとし
ての役割を果す。
【0092】大規模並列アレイ・コンピュータSIMD
/MIMDプロセッサ・メモリ要素(PME)相互接続
のためのこのPMEの相互接続は、大規模処理環境にお
けるプロセッサ間接続を提供する。各PMEは、オンチ
ップPME間接続から、チップ相互接続をサポートする
オフチップ入出力機能まで、本発明の完全分散型プロセ
ッサ間通信ハードウェアを使用する。本発明の修正トポ
ロジーでは、クラスタ間配線を制限しながら、ハイパー
キューブ接続の利点をサポートする。
【0093】PMEノードに使用する概念は、本明細書
で開示する拡張並列アレイ・プロセッサ(APAP)コ
ンピュータ・システムに使用されるVLSIパッケージ
ング技術に関係している。本発明のパッケージング機能
は、APAPシステムの製造可能性を高める。これらの
技術は、大規模並列プロセッサ・マシンの分野では他に
類を見ないものであり、マシンを、構築およびテストの
可能な最適サブセットにパッケージし構成することがで
きる。
【0094】これらのパッケージング技術では、単一チ
ップ中にパッケージされ、N次元修正ハイパーキューブ
構成にアレイされた、8個のPMEを利用している。こ
の、アレイのチップ・レベル・パッケージまたはノード
は、APAP設計における最小の構成単位である。これ
らのノードはさらに8×8アレイにパッケージされる。
ここで、+Xおよび+Yはアレイまたはクラスタ内にリ
ングを形成し、+Wおよび+Zは隣接クラスタに移され
る。クラスタをグループ化することにより、アレイが形
成される。APAPコンピュータの所期の適用は、特定
の構成およびホストによって決まる。有効なベクトル化
浮動小数点プロセッサを備えたメインフレームに接続さ
れた大規模なシステムは、天気予報、風洞シミュレーシ
ョン、乱流モデル化、有限要素モデル化などの特殊なベ
クトル化可能な問題に対処できる。これらの問題に疎行
列が関与する場合、ベクトル化演算用のデータを用意
し、また結果を格納するために、大量の作業を実施しな
ければならない。そのような作業負荷が、APAPにオ
フロードされることになる。中規模システムでは、AP
APを、表示に関連する、または着信データに対する何
らかの前処理動作に関連する図形動作(すなわち、軍事
センサ・フュージョン・アプリケーションにおける最適
割当て問題の実行)の実行専用にすることができる。ワ
ークステーションまたはパーソナル・コンピュータに接
続された小規模システムは、プログラマ開発ステーショ
ンとして機能し、あるいはベクトル化浮動小数点プロセ
ッサ接続機構または3次元グラフィックス・プロセッサ
をエミュレートすることができる。
【0095】
【実施例】次に本発明について詳述する。図1および2
は、トランスピュータT800チップで例示され、タッ
チストーン・デルタ(i860)、Nキューブ(^38
6)などのマシン用の同様のチップを代表する、既存の
技術レベルを示す。図1および2を本発明で開発された
システムと比較すると、本発明を使用することにより、
従来システムのようなシステムを大幅に改善できるだけ
でなく、後述のように、新規の強力なシステムも構築で
きることが理解されよう。図1および2の従来型の現在
のマイクロプロセッサ技術では、ピンおよびメモリを大
量に使用する。帯域幅が限定され、チップ間通信によっ
てシステム性能が下がる。
【0096】図3に表すこの革新的な新規技術では、プ
ロセッサ、メモリ、入出力機構を組み合わせて、単一の
低出力CMOS DRAMチップ上に形成された複数の
PME(それぞれにメモリ・アクセス遅延がなく、それ
ぞれがネットワーキング用にすべてのピンを使用する、
8個以上の16ビット・プロセッサ)とする。このシス
テムは、上記で参照した開示の概念と、本発明の同時出
願に別個に記載されており、本明細書に記載するシステ
ムに適用可能な発明の概念とを利用することができる。
したがって、これらの開示および出願を参照により本明
細書に組み込む。グループ化、自律性、透過性、ジッパ
相互作用、非同期SIMD、SIMIMD、またはSI
MD/MIMDなど本発明の概念はすべて、この新規技
術と併用できる。また、利益は少なくなるが、従来技術
のシステム中で使用することも、本発明者等の従来の多
重ピケット・プロセッサと組み合わせて使用することも
できる。
【0097】本発明のピケット・システムでは、このプ
ロセッサが使用できる。本発明の基本概念は、組込みプ
ロセッサ、ルータ、および入出力機構を有するメモリ・
ユニットである、本発明の新規メモリ・プロセッサを備
えたシステム用の新規の基本的構成単位すなわち複製可
能レンガを提供したことである。この基本的構成単位は
スケーリング可能である。本発明を実施した基本システ
ムでは、4メガビットのCMOS DRAMを使用す
る。このシステムは、拡張すれば、16メガビットDR
AMSおよび64メガビット・チップを備えたより大規
模なメモリ構成に使用できる。各プロセッサはゲート・
アレイである。付着密度を高めると、同一のチップ上に
より速いクロック速度のプロセッサがより多く配置で
き、ゲートおよび追加のメモリを使用すると、各PME
の性能が向上する。1パート型をスケーリングすること
により、PETAOP範囲を十分満たす性能を持つこと
ができるシステム・フレームワークおよびアーキテクチ
ャが提供される。
【0098】図3は、本明細書でPMEまたはプロセッ
サ・メモリ要素と称する、好ましい実施例によるメモリ
・プロセッサを示している。このプロセッサは8個以上
のプロセッサを有する。図の実施例では、プロセッサは
8個である。チップを(水平方向に)拡張すればさらに
多くのプロセッサを追加することができる。チップは論
理回路を保持することができ、セルを追加してDRAM
メモリを線形に(垂直に)拡張することができ、かつそ
うすることが好ましい。図には、16ビット幅データ・
フロー・プロセッサの8つの複製を実施した、CMOS
ゲート・アレイ・ゲートのあるフィールドを囲む、DR
AMメモリの32キロビット×9ビット・セクションが
16個示されている。
【0099】このプロセッサでは、IBM CMOS低
出力サブミクロンIBM CMOSオンシリコン付着技
術により、トレンチを備えた特定のシリコンを使って、
小型チップの表面上に大きな記憶域が提供される。IB
Mの進んだ半導体チップ製造技術により、メモリと複数
のプロセッサから編成された相互接続が行われる。ただ
し、本明細書で記載する小型チップは、約4メガビット
のメモリを有することを理解されたい。本発明の小型チ
ップは、16メガビットのメモリ技術が安定し、歩留り
が向上し欠陥に対処する方法が確立されたとき、論理回
路を変更せずに、それぞれ9ビット幅のさらに大きなメ
モリ・サイズに移行できるように設計されている。フォ
トリソグラフィおよびX線リソグラフィの発達により、
最小フィーチャ・サイズは0.5ミクロンをかなり下回
るようになっている。本発明の設計では、それ以上の進
歩を想定している。これらの進歩によって、単一のシリ
コン・チップ上に、処理機能を持つきわめて大規模なメ
モリが配置できるようになろう。
【0100】本発明の装置は、4メガCMOS DRA
Mであり、これは論理回路用の広いスペースを持つ最初
の汎用メモリ・チップと考えられる。32キロビット×
9ビットDRAMマクロの16回の複製でメモリ・アレ
イを構成する。このDRAMは、チップ上のアプリケー
ション論理回路として大きな表面積を割り振られ、3重
レベル金属配線を備えた120Kセルを有する。プロセ
ッサ論理セルは、ゲート・アレイ・セルであることが好
ましい。DRAMアクセス時間は35ナノ秒以下であ
り、プロセッサのサイクル時間と合致する。このCMO
S実施態様では、非常に効果的な処理要素(ピケット)
の論理密度が提供され、しかもその際の論理回路の電力
散逸量は1.3Wである。チップの別々の各メモリ・セ
クションはそれぞれ32キロビット×9ビットであり
(論理回路を変更せずに拡張可能)、CMOSゲート・
アレイ・ゲートのフィールドを囲んでいる。このフィー
ルドは、120Kセルを表し、他の図に関して説明する
論理回路を有する。メモリには障壁が設けられ、分離さ
れた電源で9Wの電力を散逸する。同一のシリコン基板
上で大きな論理回路と、大規模なメモリを組み合わせ
て、論理回路とDRAMの電気雑音非整合性に伴う問題
が解決された。論理回路は雑音が多発する傾向があり、
一方メモリでは、DRAMのセルの読取りによって生じ
るミリボルト規模の信号を検知するために、雑音がかな
り低くなければならない。本発明では、トレンチ付き3
重金属層シリコン付着を行って、メモリ・チップの別々
の各障壁付き部分をメモリ専用およびプロセッサ論理回
路専用とし、電力配分および障壁を別々に提供すること
により、論理回路とDRAMの間の整合性を達成する。
【0101】好ましい実施例のAPAPシステムの概
要:ここでは、この新規技術を次の順序で紹介する。 1.技術 2.チップ・ハードウェアについての説明 3.ネットワーキングおよびシステム構築 4.ソフトウェア 5.アプリケーション
【0102】最初の数節では、4メガDRAM低出力C
MOSチップが、製造後のPMEDRAMチップ上に、
かつ該チップの一部として、それぞれ次の機能をサポー
トする8個のプロセッサを備えるようにするにはどうし
たらよいかについて説明する。 1.16ビット、5MIPのデータ・フロー 2.独立命令ストリームおよび割込み処理 3.8ビット(およびパリティと制御)幅の外部ポー
ト、および他の3つのオンチップ・プロセッサとの相互
接続
【0103】本発明は、単一のチップ設計に統合された
複数の機能を提供する。このチップは、スケーリング機
能を持つチップが、処理、経路指定、記憶、および3種
の入出力を効果的に実行できるのに十分な、強力で柔軟
なPME機能を提供する。このチップでは、単一チップ
内にメモリおよび制御論理回路が統合されて、PMEを
形成しており、この組合せがチップ内で複製される。プ
ロセッサ・システムは、単一チップの複製から構築され
る。
【0104】この手法では、低出力CMOS DRAM
を区分する。低出力CMOS DRAMは、複数ワード
長(16)ビット×32キロビットのセクションとして
形成され、各セクションがプロセッサと関連付けられる
(PMEという用語は、単一のプロセッサ、メモリ、お
よび入出力可能なシステム・ユニットを指す)。この区
分により、各DRAMは、8バイト幅の独立な相互接続
ポートを備えた、8方向「キューブ接続」MIMD並列
プロセッサとなる(複製およびリング・トーラスの可能
性を示す、密並列技術の複製の例については図7を参照
のこと)。
【0105】ソフトウェアの説明では、複数の異なるプ
ログラム・タイプを取り上げる。最低レベルでは、プロ
セスはユーザ・プログラム(あるいは、アプリケーショ
ンで呼び出されるサービス)を詳細なハードウェア要件
に適合させる。このレベルは、入出力およびプロセッサ
間同期化を管理するのに必要なタスクを含み、MPP用
のマイクロプログラムと呼ぶことができる。中間レベル
のサービスでは、MPPのマッピング・アプリケーショ
ン(ベクトル演算および行列演算を用いて開発される)
と、制御機能、同期化機能、起動機能、診断機能が使用
できる。ホスト・レベルでは、MPPへの単純な自動デ
ータ割振りまたはユーザの調整するデータ割振りによっ
てベクトル化プログラムをサポートする、ライブラリ機
能によって高位言語がサポートされる。多重レベル・ソ
フトウェア手法を用いると、アプリケーションが単一の
プログラム内で様々な程度の制御および最適化を利用す
ることができる。したがって、ユーザは、アーキテクチ
ャの詳細を理解せずにアプリケーション・プログラムを
コーディングすることができ、オプティマイザは、プロ
グラムの、小規模で使用率の高いカーネルだけをマイク
ロコード・レベルで調整する。
【0106】1024要素5GIPS装置および327
68要素164GIPS装置について述べるいくつかの
節では、可能なシステムの範囲を示す。ただし、それら
は制限的なものではなく、これより小規模な装置および
これより大規模な装置も実現可能である。これらの特定
のサイズを例として選択したのは、小規模な装置は、マ
イクロプロセッサ(アクセレレータ)、パーソナル・コ
ンピュータ、ワークステーション、および軍事アプリケ
ーション(もちろん異なるパッケージング技術を使用)
に適しており、大規模な装置は、モジュールとしてのメ
インフレーム・アプリケーションまたは完全なスーパー
コンピュータ・システムの実例であることを示すためで
ある。ソフトウェアの説明では、各例示システムで効果
的にプログラミングできる他の挑戦しがいのある作業の
例を提供する。
【0107】PME DRAM CMOS−多重プロセ
ッサPMEの基礎:図3は、本発明における、チップ技
術レベルでの改良技術を示している。この拡張可能コン
ピュータ編成は、1種類のチップしか使用しないので、
広範なシステム・サイズにわたってコストおよび性能の
効率が非常に高い。1個のチップ上でメモリと処理機構
を組み合わせているため、メモリ・バス専用のピンが不
要であり、したがってそのようなピンに付随する信頼性
および性能上のマイナスはない。チップ内で本発明の設
計を複製するので、プロセッサ・サブセクション用のカ
スタム論理設計が経済的に実現可能になる。システム内
でチップを複製するので、製造コストが大幅に削減可能
である。最後に、CMOS技術では、MIP当たりの電
力が低くて済むので、電源および冷却のニーズが最小限
になる。チップ・アーキテクチャを複数のワード長に合
わせてプログラミングできるため、普通ならはるかに長
いプロセッサを必要とする動作が、このシステムで実行
可能になる。これらの属性があいまって、広範なシステ
ム性能が可能になる。
【0108】本発明の新規技術は、それと一部共通する
旧来の技術を拡張した場合と比較してみることができ
る。フィーチャの小型化を利用して、プロセッサ設計者
がチップの複雑化を進め、メモリ設計者が単純な要素の
複製の拡大化を図ってきたことは明白である。この傾向
が続くなら、メモリが4倍の規模になり、プロセッサの
密度が向上して次のことが実現できると予想される。 1.命令ルータを持つ複数の実行ユニットを備える。 2.キャッシュ・サイズと関連機能を増大する。 3.命令先読みを増加し、計算機能を向上する。
【0109】しかし、図1に示す旧来の技術でこれらの
手法を試みても行き詰まるばかりである。プロセッサを
重複すると、必要なピン数がそれに比例して増加する
が、1チップ当たりのピン数は固定されたままである。
キャッシュ動作の改善によって向上するのは、アプリケ
ーションのデータ再使用パターンだけである。それ以上
は、メモリ帯域幅が限界となる。アプリケーション・デ
ータの依存性および分岐によって、先読み方式の潜在的
利益が制限される。また、密並列性を備えたMPPアプ
リケーションで1処理装置当たり必要なのが1メガワー
ド・メモリなのか、4メガワード・メモリなのか、それ
とも16メガワード・メモリなのかは明白でない。複数
のプロセッサ間でそのように大規模なメモリを共用しよ
うとすると、メモリ帯域幅による制限が厳しくなる。
【0110】本発明の新規の方法では行詰りはない。図
3以降の図および説明で示すように、本発明では大規模
なメモリと入出力機構を組み合わせて単一のチップを形
成する。本発明の新規方法では必要な部品数が減少し、
チップ交差に伴う遅延がなくなる。さらに重要なこと
に、本発明の新規方法を用いると、すべてのチップの入
出力ピンをプロセッサ間通信専用にして、ネットワーク
帯域幅を最大にすることができる。
【0111】図3に示す好ましい実施例を実施するため
に、IBM低出力CMOS技術を用い、現在利用可能な
プロセスを使用する。この実施例は、相補型金属酸化膜
半導体(CMOS)においてCMOS DRAM密度で
実現でき、かつより密なCMOSで実施できる。この実
施例では、CMOSの密度が高まるにつれて、チップ上
にある8個のPMEそれぞれの32キロビット・メモリ
を増やすことができる。この実施例では、4メガのCM
OS DRAMにリアル・エステート・アンド・プロセ
ス技術を使用し、プロセッサの複製をチップ自体におけ
る32Kメモリと関連付けることにより、これを拡張し
ている。図4に示すクラスタの各チップ・パッケージ中
で、チップがプロセッサ、メモリ、および入出力機構を
有することが理解されよう。各パッケージ内に、メモリ
と、組込みプロセッサ要素、ルータ、および入出力機構
があり、これらはすべて、論理回路用の広いスペースを
持つ初の汎用メモリ・チップと考えられる、4メガCM
OS DRAMに入っている。このチップは、トレンチ
を備えた特定のシリコンを使用して、小さなチップ表面
上に大規模な記憶域を提供している。別法として、本発
明の設計の各プロセッサを、32キロビット×9ビット
のDRAMマクロ(35/80ナノ秒)の複製16個か
ら構築し、0.87ミクロンCMOS論理回路を使って
メモリ・アレイを構成することもできる。この装置は、
チップ上に、アプリケーション論理回路の120Kセル
用の表面領域を割り振り、3重レベル金属配線の機能で
それをサポートするという点で独特である。図4の左側
に、従来技術のカードをX印を付けて示す。
【0112】本発明の複製可能基本要素ブリック技術
は、旧来の技術に対する回答である。図4の左側の"X"
印を付けた技術を検討してみると、チップおよびカード
が多すぎ、無駄であることが分かる。たとえば、今日他
の発明者から提案されているテラフロップ・マシンは、
文字どおり百万個以上のチップを有する。今日の他の技
術では、これらのチップのうち真に実働するのはせいぜ
い数パーセントであり、残りは「オーバヘッド」である
(通常は、メモリ、ネットワーク・インタフェースな
ど)。
【0113】物理サイズが制約された環境で動作する必
要があるものにそのようなチップをそのように多数パッ
ケージングするのは不可能であることが理解されよう
(面積の小さなコックピットにいくつ取り付けることが
できるだろうか)。さらに、他の発明者から提案されて
いるテラフロップ・マシンは、すでに大型であるが、ペ
タフロップの範囲に到達するには1000倍スケール・
アップしなければならない。本発明者等は、非実働チッ
プの割合を劇的に減少させる解決法を有する。本発明で
はこれを妥当なネットワーク次元数の範囲内で提供す
る。このブリック技術を用いると、メモリがオペレータ
になり、ネットワークを制御のやりとりに使用し、実働
チップが大幅に増加する。さらに、グレードアップによ
り、チップの種類が劇的に減少する。本発明のシステム
は、特殊なパッケージング、冷却、電力、または環境上
の制約なしにスケール・アップできるように設計されて
いる。
【0114】本発明のブリック技術では、プロセッサ、
組込みプロセッサを備えたメモリ、およびネットワーク
機能を別々にする代わりに、図4に示す構成を使用す
る。この構成は、コネクタ・レベルで現行の4メガビッ
トDRAMカードとピン互換性があるチップを備えたカ
ードを表す。そのようなカード1枚で、1チップ性能レ
ベル当たり基本40MIPSの設計点により、32個の
チップを保持でき、1280MIPSが可能になる。そ
のようなカード4枚で、5GIPSが提供される。図示
のワークステーション構成は、そのようなPEメモリ・
アレイ、クラスタ制御装置、およびワークステーション
で開発されたアレイ・プロセッサ・アプリケーションを
実行し監視するのに十分な性能を持つIBM RISC
システム/6000を有することが好ましい。
【0115】プロセッサ部分ではゲート効率が非常に高
いプロセッサが使用できる。プロセッサにはそのような
設計が使用されているが、メモリ内で使用されたことは
ない。また、本発明では、MIMD基本動作とSIMD
基本動作を混合できる能力を提供している。本発明のチ
ップは、各CPUの命令バッファに代替経路を提供す
る、「同報通信バス」を提供する。本発明のクラスタ制
御装置は、PME内の各処理要素にコマンドを発行す
る。これらのコマンドをPMEに格納すれば、処理要素
の動作を複数のモードで制御できる。各PMEはプログ
ラム全体を格納する必要はなく、あるアプリケーション
の処理の様々な時間に所与のタスクに適用される部分だ
けを格納できる。
【0116】基本デバイスが与えられている場合と、一
プロセッサとメモリの組合せを開発することができる。
別法として、より簡単なプロセッサおよびメモリ・マク
ロのサブセットを使用することにより、PMEの複製を
2個、4個、8個、または16個作成するための設計も
可能である。データ・フロー帯域幅を調整するか、ある
いは機能アクセレレータをプロセッサ・サイクルと置換
すると、PMEをさらに簡単にすることができる。大部
分の実施例では、上述の基本PMEの複製を8回行うこ
とが好ましい。
【0117】本発明者等のアプリケーション調査による
と、現在のところ、もっとも好ましい方法は、16ビッ
ト幅のデータ・フローおよび32Kワードのメモリを8
回複製することである。このように結論した理由は、以
下のとおりである。 1.16ビット・ワードを用いると、命令およびアドレ
スの単一サイクルでの取出しが可能になる。 2.8個のPMEのそれぞれに外部ポートを備えると、
4次元トーラス相互接続が可能となる。各リング上で4
個または8個のPMEを使用すると、目標とするシステ
ム性能の範囲に適したモジュールが得られる。 3.8つの外部ポートにはチップ・ピンのうち約50%
が必要であり、電源、接地、および共通制御信号には残
りのチップ・ピンで十分である。 4.8個のプロセッサを64KBの主記憶装置中で実施
すると、 a.メモリ・マップ式アーキテクチャではなくレジスタ
・ベースのアーキテクチャが使用可能になる。 b.好ましいが必要ではない若干のアクセレレータを、
複数のプロセッサ・サイクルによって強制的に実施でき
る。
【0118】この最後の属性は、それによって開発中の
論理密度が増加できるので重要である。本発明の新規ア
クセレレータ(たとえば、PME用の浮動小数点演算機
構)は、システム設計、ピンおよびケーブル、またはア
プリケーション・コードに影響を与えずに、チップ・ハ
ードウェアとして追加される。
【0119】その結果得られるチップのレイアウトおよ
びサイズ(14.59×14.63mm)を図3に示
す。図4は、そのようなチップのクラスタを示してい
る。このチップは、後の図に示す、スタンドアロン装置
用のシステム、接続バスによってワークステーション・
ホストに隣接して配置されるワークステーション、AW
ACアプリケーション、およびスーパーコンピュータに
パッケージングすることができる。このチップ技術は、
システム・レベルでいくつかの利点を提供する。これに
よって、1パート型の基本複製によりスケーリング可能
なMPPが開発できる。1プロセッサ当たりのDRAM
マクロを2つにすると、データとプログラムの両方に十
分な記憶域が提供される。等しいサイズのSRAMで
は、10倍以上の電力を消費する可能性がある。この利
点により、単一チップ・プロセッサ/メモリ設計のマシ
ンでは典型的な、制限の大きなSIMDモデルではな
く、MIMDマシン・モデルが使用可能になる。35ナ
ノ秒以下のDRAMアクセス時間は、期待されるプロセ
ッサ・サイクル時間と合致する。CMOS論理回路は、
PMEがきわめて効果的になる論理密度を提供し、かつ
その際の散逸電力はわずか1.3Wである(総チップ電
力は、1.3+0.9(メモリ)=2.2W)。これら
の特徴により、伝導冷却が必要な軍事用途でこのチップ
が使用可能になる(非軍事用途での空冷はずっと容易で
ある)。しかし、ワークステーションおよびその他の環
境には空冷式の実施例が使用できる。スタンドアロン・
プロセッサは、80A−5Vの電源で構成できる。
【0120】拡張並列アレイ・プロセッサ(APAP)
の構成単位を図5および図6に示す。図5は、APAP
の機能ブロック図を示している。複数のアプリケーショ
ン・インタフェース150、160、170、180
が、アプリケーション・プロセッサ100またはプロセ
ッサ110、120、130用に存在している。図6
は、様々なシステム・ブロック図に構成できる基本的構
成単位を示している。APAPは、同一のPMEを最大
構成で32768個組み込むことができる。APAP
は、PMEアレイ280、290、300、310、ア
レイ・ディレクタ250、およびアプリケーション・プ
ロセッサ200もしくはプロセッサ220、230用の
アプリケーション・プロセッサ・インタフェース260
から構成される。アレイ・ディレクタ250は、アプリ
ケーション・プロセッサ・インタフェース260、クラ
スタ・シンクロナイザ270、およびクラスタ制御装置
270という3つの機能ユニットから成る。アレイ・デ
ィレクタ250は、MIMD機能を備える、本発明者等
の以前のSIMD動作用線形ピケット・システムのアレ
イ制御装置の諸機能を実行する。クラスタ制御装置27
0は、1組64個のアレイ・クラスタ280、290、
300、310(すなわち、512個のPMEからなる
クラスタ)と共に、APAPコンピュータ・システムの
基本的構成単位となる。アレイ・ディレクタ250の諸
要素を用いると、広範なクラスタ複製を備えたシステム
が構成可能になる。処理要素と制御要素の厳密な複製に
基づくこのモジュール性は、この大規模並列コンピュー
タ・システムに特有の特性である。さらに、アプリケー
ション・プロセッサ・インタフェース260は、重要な
設計機能、デバッグ機能、およびモニタ機能を実行す
る、テスト/デバッグ・デバイス240をサポートす
る。
【0121】制御装置は、i860を備えた制御装置を
含めて、今日他のシステムで使用されている、IBMマ
イクロチャネル(Microchannel)などの明確に定義され
たインタフェースと共に組み立てられている。現場プロ
グラミング可能なゲート・アレイにより、特定の構成の
要件(存在するPMEの数、それらの結合など)を満た
すように変更可能な機能が制御装置に追加される。
【0122】PMEアレイ280、290、300、3
10は、SIMD装置またはMIMD装置として動作す
るのに必要な機能を備えている。これらのアレイはま
た、1組のPMEの全体を1〜256個の異なるサブセ
ットに分割できる機能を備えている。サブセットに分割
するときは、アレイ・ディレクタ250がサブセット間
のインタリーブを行う。インタリーブ・プロセスの順序
と、各サブセットに対して及ぼされる制御の程度は、プ
ログラムで制御される。アレイの様々なサブセットを異
なるプログラムを用いて1つのモード、すなわちMIM
Dモードで動作させ、他のセットをアレイ・ディテクタ
の制御下で密に同期化されたSIMDモードで動作させ
るこの機能は、当技術分野における進歩である。以下に
示すいくつかの例で、この概念の利点を示す。
【0123】アレイ・アーキテクチャ:アレイを形成す
る1組のノードが、n次元修正ハイパーキューブとして
接続される。この相互接続方式では、各ノードが他の2
n個のノードに直接接続される。それらの接続は、単信
型、半2重型、または全2重型経路とすることができ
る。3次元より次元数が多いどの次元においても、修正
ハイパーキューブは相互接続技術の新規概念である(修
正ハイパーキューブは、2次元の場合はトーラスを生成
し、3次元の場合は、エッジ表面が対向表面に折り返さ
れた直交接続格子を生成する)。
【0124】3次元より次元数が多い場合の相互接続方
式を記述するには、帰納的記述が必要である。1組m1
個のノードがリングとして相互接続できる(リングに
は、「単純接続」、「編組」、「交差接続」、「完全接
続」などが可能である。単純リング以外の場合は追加の
ノード・ポートが必要となるが、そのように複雑さが増
しても修正ハイパーキューブ構造は影響を受けない)。
1組m2個のリングにおける各等価ノードを接続する
と、m2個のリングが相互にリンクできる。この時点で
得られるのがトーラスである。i次元修正ハイパーキュ
ーブからi+1次元修正ハイパーキューブを構築するに
は、mi+1組のi次元修正ハイパーキューブを想定し、
等価なmiレベルのノードをすべて相互接続してリング
を形成する。
【0125】mi=8(i=1..4)を使用して、4
次元修正ハイパーキューブにおけるこのプロセスを図7
に示す。 ノード・トポロジーのもとでのこの説明と、
図7、図10、図11、図17、図18を比較された
い。
【0126】図7は、32Kの16ビット・ワード・メ
モリと16ビット・プロセッサから構成される単一プロ
セッサ要素300から、8つのプロセッサ312と、そ
れに結合されたメモリ311、後者に付随する完全分散
型入出力ルータ313、および信号入出力ポート31
4、315から成るネットワーク・ノード310に至
り、さらにクラスタ320で表したノードのグループを
経て、クラスタ構成360、ならびに各種のアプリケー
ション330、340、350、370に至る密並列技
術経路を示している。2次元レベル構造はクラスタ32
0であり、64個のクラスタが統合されて、32768
個の処理要素からなる4次元修正ハイパーキューブ36
0を形成している。
【0127】プロセッサ・メモリ要素(PME)の好ま
しい実施例:図3および図12に示すように、好ましい
APAPは1つのチップ・ノードから成る基本的構成単
位を有する。各ノードは、8個の同一のプロセッサ・メ
モリ要素(PME)と1つの同報通信/制御インタフェ
ース(BCI)を備えている。本発明の一部は、同一の
チップ上にすべての機能が揃っていなくても実現できる
が、性能およびコスト削減の点から見ると、現在実施可
能な前述の先進技術を使用して、8個のPMEを備えた
1つのチップ・ノードとしてチップを形成することが重
要である。
【0128】PMEの好ましい実施態様は、64KBの
主記憶装置、8つのプログラム割込みレベルのそれぞれ
に関する16個の16ビット汎用レジスタ、全機能論理
演算機構(ALU)、作業用レジスタ、状況レジスタ、
および4つのプログラマブル両方向入出力ポートを有す
る。さらに、この好ましい実施態様は、同報通信/制御
インタフェース(BCI)によってSIMDモード同報
通信インタフェースを提供する。このインタフェース
は、外部制御装置(本発明の原出願と、クラスタを備え
たノーダル・アレイおよびシステムの現在好ましい実施
例についての説明を参照)が、PME命令解読、メモリ
・アドレス、およびALUデータ入力を駆動できるよう
にする。このチップは、その内部で複数の並列動作を実
行できるようにするマイクロコンピュータの機能を実行
でき、かつ複数ノードのシステム内で他のチップに結合
できる。その場合の結合方法は、相互接続ネットワー
ク、メッシュ・ネットワークまたはハイパーキューブ・
ネットワーク、先進的でスケーリング可能な、本発明の
好ましい実施例のいずれでもよい。
【0129】PMEは、スケーリング可能な本発明の好
ましい実施例では、一連のリングまたはトーラスとして
相互接続できる。適用例によっては、ノードをメッシュ
として相互接続することもできる。本発明の好ましい実
施例では、各ノードが、4つのトーラスのそれぞれにP
MEを2個ずつ備えている。トーラスはW、X、Y、お
よびZ(図7参照)で示してある。図12は、ノード内
でのPMEの相互接続を示している。各トーラス内の2
個のPMEは、その外部入出力ポート(+W、−W、+
X、−X、+Y、−Y、+Z、−Z)で指定してある。
ノード内には、4+n個および4−n個のPMEを相互
接続する2つのリングもある。これらの内部リングは、
メッセージを外部トーラス間で移動するための経路とし
て働く。本発明の好ましい実施例では、APAPを4次
元直交アレイにすることができるので、内部リングによ
りアレイ全体にわたってあらゆる次元でメッセージを移
動することが可能である。
【0130】PMEは、主記憶装置、ローカル記憶装
置、命令解読器、論理演算機構(ALU)、作業用レジ
スタ、および入出力ポートを備える、自己完結型プログ
ラム記憶式マイクロコンピュータである。PMEは、M
IMD動作では、それ自体の主記憶装置から格納されて
いる命令を取り出して実行し、SIMDモードでは、B
CIインタフェースを介してコマンドを取り出し実行す
る能力を有する。このインタフェースにより、複数のチ
ップから成るシステム内の、制御装置、PME、その他
のPMEの間での相互通信が可能になる。
【0131】BCIは、外部アレイ制御装置要素および
アレイ・ディレクタへの、そのノードのインタフェース
である。BCIは、タイマやクロックなどの共通ノード
機能を提供する。また、各ノードPMEごとの同報通信
機能のマスキングと、同報通信バスとPME間のデータ
転送用の物理インタフェースおよびバッファリング、さ
らにシステム状況ならびにモニタ要素およびデバッグ要
素とのノーダル・インタフェースを提供する。
【0132】各PMEは、その各2地点間インタフェー
スおよび同報通信インタフェースをサポートする、別々
の割込みレベルを備えている。データは、直接メモリ・
アクセス(DMA)制御機構の下で、PME主記憶装置
に入力され、あるいは該記憶装置から出力される。"i
nput transfer complete"割込
みは、各インタフェースが、データの存在を伝える信号
をPMEソフトウェアに送るのに使用できる。状況情報
は、PMEソフトウェアが、データ出力動作の完了を判
定するのに使用できる。
【0133】各PMEには入出力の「回線交換モード」
があり、PME主記憶装置にデータを入力せずに、4つ
の入力ポートの1つを4つの出力ポートのいずれかに直
接切り換えることができる。「回線交換」の発信元およ
び宛先の選択は、PME上で実行されるソフトウェアの
制御に従う。他の3つの入力ポートは引き続きPME主
記憶装置の諸機能にアクセスでき、4番目の入力は出力
ポートに切り換えられる。
【0134】もう1つの種類の入出力は、PMEすべて
に同報通信し、PMEすべてから収集しなければならな
いデータと、特殊すぎて標準バスに適合できないデータ
を有する。同報通信データには、SIMDコマンド、M
IMDプログラム、およびSIMDデータが含まれる。
収集されるデータは主として、状況機能およびモニタ機
能である。診断機能およびテスト機能は特殊データ要素
である。各ノードは、組み込まれた1組のPMEの他
に、BCIを1つ備えている。BCIセクションは動作
中、BCIを監視し、アドレスされるPMEに同報通信
データを送り、該PMEから同報通信データを収集す
る。BCIは、エネーブル・マスクとアドレス指定タグ
を組み合わせて使用して、どの同報通信情報がどのPM
Eを対象としているかを判定する。
【0135】本発明の好ましい実施例では、各PMEは
SIMDモードまたはMIMDモードで動作できる。S
IMDモードでは、各命令がBCIを介して同報通信バ
スからPMEに送られる。BCIは、選択されたすべて
のノードPMEが該インタフェースを使用し終わるま
で、各同報通信データ・ワードをバッファし続ける。こ
の同期化によって、SIMDコマンドの実行に関連する
データ・タイミング依存性に対処でき、非同期動作がP
MEで実行できるようになる。MIMDモードでは、各
PMEがそれ自体の主記憶装置からそれ自体のプログラ
ムを実行する。PMEは、初期設定ではSIMDモード
になる。MIMD動作の場合、外部制御装置は通常、P
MEがSIMDモードのとき各要素にプログラムを同報
通信し、その後にMIMDモードに切り替えて実行を開
始するようPMEに指令する。同報通信情報をマスクま
たはタグ付けすると、PMEの異なる組が異なるMIM
Dプログラムを含むか、PMEの特定の組が、他の組の
PMEがSIMDモードで実行する間にMIMDモード
で実行するか、あるいはその両方を行うことができるよ
うになる。各種のソフトウェア・クラスタまたは区画に
おいて、これらの機能はそれぞれ、他のクラスタまたは
区画での動作から独立して動作することができる。
【0136】PMEの命令セット・アーキテクチャ(I
SA)の動作は、PMEがSIMDモードであるかMI
MDモードであるかによってわずかに異なる。大部分の
ISA命令は、モードとは無関係に同一の動作を実行す
る。しかし、PMEはSIMDモードでは分岐やその他
の制御機能を実行しないので、それらのMIMD命令専
用の一部のコード点がSIMDモードで再解釈されて、
主記憶装置における同報通信データ値との一致データの
探索や、MIMDモードへの切換えなどの特殊動作をP
MEが実行できるようになる。そのため、アレイのシス
テム柔軟性がさらに拡大する。
【0137】PMEアーキテクチャ:基本的には、本発
明の好ましいアーキテクチャは、16ビット幅のデータ
・フロー、32Kの16ビット・メモリ、特殊入出力ポ
ートおよび入出力切換え経路と、本発明の命令セット・
アーキテクチャによって提供される16ビット命令セッ
トを各PMEが取り出し、復号して、実行できるように
するのに必要な制御論理回路を有する、PMEを含んで
いる。好ましいPMEは、仮想ルータの機能を実行し、
したがって処理機能とデータ・ルータ機能の両方を実行
する。このメモリ編成では、PME間でのメモリの相互
アドレス指定により、大規模ランダム・アクセス・メモ
リおよびPME用の直接メモリへのアクセスが可能にな
る。個々のPMEメモリはすべてローカル側とすること
もでき、プログラムによりローカル領域と共用大域領域
に分割することもできる。本明細書に記載する特殊制御
および機能を用いると、タスクの迅速な切換えと、各P
ME割込み実行レベルでのプログラム状態情報の保持が
可能になる。本発明によって提供される機能の一部は他
のプロセッサにも存在したが、大規模並列マシンでプロ
セッサ間入出力の管理に適用されている例は他にない。
その例として、メッセージ・ルータ機能のPME自体へ
の統合がある。これにより、特殊ルータ・チップや、特
殊VLSIルータの開発が不要になる。また、本発明で
は単一のチップ上に提供されている機能を、メタライゼ
ーション層などによって相互接続された複数のチップ上
に分配して、大規模並列マシンを改良することができる
ことに留意されたい。さらに、本発明のアーキテクチャ
は単一のノードから大規模並列スーパーコンピュータ・
レベルのマシンまでスケーリング可能なので、本発明の
概念の一部を様々なレベルで利用することが可能であ
る。たとえば、以下に示すとおり、本発明のPMEデー
タ・フローは非常に強力であるが、スケーリング可能な
設計が有効になるように働く。
【0138】処理メモリ要素(PME)は、1つのノー
ドの複数のPMEのそれぞれごとに、完全分散型アーキ
テクチャを形成する。あらゆるPMEが、16ビット・
データ・フローによる処理機能、64KBのローカル記
憶域、蓄積交換/回線交換論理回路、PME間通信、S
IMD/MIMD切換え機能、プログラマブル経路指
定、および専用浮動小数点援助論理回路から構成されて
いる。これらの諸機能は、PMEによって独立に操作す
ることができ、また同一のチップ内で他のPMEと統合
して、チップ交差遅延を最小限に抑えることができる。
図8および図9に、PMEデータ・フローを示す。PM
Eは、16ビット幅のデータ・フロー425、435、
445、455、465、32キロビット×16ビット
・メモリ420、特殊入出力ポート400、410、4
80、490、および入出力切替え経路425と、16
ビット縮小命令セットをPMEが取り出し、復号して、
実行できるようにするのに必要な制御論理回路430、
440、450、460から構成されている。また、特
殊論理機能により、PMEは処理装置460としてもデ
ータ・ルータとしても実行できる。特殊制御機構40
5、406、407、408および諸機能は、タスクを
迅速に切り替え、PMEの各割込み実行レベルでプログ
ラム情報命令を保持できるようにするために組み込まれ
ている。そのような機能は他のプロセッサにも組み込ま
れていたが、大規模並列マシンでプロセッサ間入出力の
管理に適用されている例は他にない。具体的に言うと、
それによって、特殊チップやVLSI開発マクロなし
で、ルータ機能をPMEに統合することが可能になる。
【0139】16ビット内部データ・フローおよび制
御:処理要素の内部データ・フローの重要な部分を図8
に示す。図8は、処理要素の内部データ・フローを示し
ている。この処理要素は、全16ビット幅内部データ・
フロー425、435、445、455、465を有す
る。これらの内部データ・フローの重要な経路では、O
Pレジスタ450、Mレジスタ440、WRレジスタ4
70、プログラム・カウンタPCレジスタ430など1
2個のナノ秒ハード・レジスタを使用している。すべて
の動作において、これらのレジスタから完全分散型AL
U460および入出力ルータ・レジスタと、特殊制御機
構405、406、407、408にデータが流れる。
現在のVLSI技術を用いると、プロセッサは25MH
zでメモリ動作と命令ステップを実行でき、OPレジス
タ450、Mレジスタ440、WRレジスタ470、プ
ログラム・カウンタPCレジスタ430などの重要な要
素を12ナノ秒ハード・レジスタで構築できる。他の必
要なレジスタは、メモリ位置にマップされる。
【0140】図9に示すように、PMEの内部データ・
フローは、2つのDRAMマクロの形の32キロビット
×16ビットの主記憶装置を有する。データ・フローの
残りの部分は、CMOSゲート・アレイ・マクロから構
成されている。メモリはすべて、低出力CMOS DR
AM付着技術により論理回路と一体形成され、超大規模
集積PMEチップ・ノードを形成している。ノード・チ
ップの好ましい実施例では、PMEが8回複製される。
PMEデータ・フローは、16ワード×16ビット汎用
レジスタ・スタック、メモリ・アドレスをバッファする
ための多機能論理演算機構(ALU)、作業用レジス
タ、メモリ出力レジスタ、ALU出力レジスタ、演算/
コマンド入出力レジスタ、ならびにALUおよびレジス
タへの入力を選択するためのマルチプレクサから構成さ
れている。4MB DRAMメモリと本発明の論理回路
に現行のCMOS VLSI技術を使用すると、PME
は25MHzで命令ステップを実行できるようになる。
本発明では、OPレジスタ450、Mレジスタ440、
WRレジスタ470、および汎用レジスタ・スタックを
12個のナノ秒ハード・レジスタで形成する。他の必要
なレジスタは、PME内のメモリ位置にマップされる。
【0141】PMEデータ・フローは、16ビット整数
演算プロセッサとして設計されている。n×16ビット
浮動小数点演算(n≧1)のサブルーチン・エミュレー
ションを最適化するため、特殊マルチプレクサ経路が追
加されている。この16ビット・データ・フローによっ
て、浮動小数点演算の効果的なエミュレーションが可能
になる。データ・フロー内の特殊経路は、浮動小数点演
算が10サイクルでできるようにするために組み込まれ
ている。ISAは、拡張(16ビットより長い)オペラ
ンド演算用のサブルーチンを使用可能にする特殊コード
点を備えている。それ以後の浮動小数点性能は、固定し
た浮動小数点性能の約20分の1である。この性能は、
他の大規模並列マシンに特有な、PMEを補助する特殊
浮動小数点チップが不要になるのに十分である。他のプ
ロセッサには、単一のプロセッサと同じチップ上に特殊
浮動小数点プロセッサを備えているものもある(図1参
照)。PMEを備えたチップ上で特殊浮動小数点ハード
ウェア・プロセッサを使用することもできるが、そうす
るには、現在のところ、好ましい実施例で必要なセルの
他に追加のセルが必要である。浮動小数点演算について
は、上記でIEEE標準の改良に関して参照した同時出
願の"floating point Implementation on aSIMD Machin
e"と題する米国特許出願も参照されたい。
【0142】本発明で開発した手法は、VLSI技術性
能の通常の増大をそのまま利用することができる。回路
の小型化が進み、パッケージ密度が増してくると、現在
メモリにマップされている基底レジスタやインデックス
・レジスタなどのデータ要素をハードウェアに移すこと
が可能になる。同様に、ハードウェアを増設することに
よって浮動小数点サブステップが加速される。これは、
信頼できる密度レベルが高くなるので、開発中のCMO
S DRAM技術にとって好ましい。非常に重要なこと
であるが、このハードウェア手法はソフトウェアに影響
を与えない。
【0143】PMEは、割込みが禁止されたSIMDモ
ードに初期設定される。コマンドは、BCIからPME
命令解読バッファに送られる。命令動作が完了するたび
に、PMEはBCIに新規のコマンドを要求する。同様
に、命令実行サイクルの適切な時点で、BCIに即値デ
ータが要求される。ISAの大部分の命令は、PMEが
SIMDモードであろうとMIMDモードであろうと同
じ動作を実行する。ただし、SIMD命令および即値デ
ータをBCIから取り出す場合はこの限りでない。MI
MDモードでは、PMEはプログラム・カウンタ(P
C)を維持し、それをそれ自体のメモリ内のアドレスと
して使用して16ビット命令を取り出す。プログラム・
カウンタに明示的にアドレスする"Branch"などの
命令は、SIMDモードでは意味がなく、それらのコー
ド点の一部は再解釈されて、即値データと主記憶装置の
領域の比較などの特殊SIMD機能が実行される。
【0144】PME命令解読論理回路により、SIMD
動作モードまたはMIMD動作モードのどちらかが使用
可能になり、PMEはモード間を動的に移行できる。S
IMDモードでは、PMEが解読済み命令情報を受け取
り、次のクロック・サイクルでそのデータを実行する。
MIMDモードでは、PMEがプログラム・カウンタ
(PC)アドレスを維持し、それをそれ自体のメモリ内
のアドレスとして使って16ビット命令を取り出す。命
令の解読および実行は、他の大部分のRISC型マシン
と同様に進行する。SIMDモードのPMEは、解読分
岐を表す情報を与えられるとMIMDモードに入る。M
IMDモードのPMEは、移行用の特定の命令を実行す
るとSIMDモードになる。
【0145】PMEがSIMDモードとMIMDモード
との動的移行を行う際には、SIMD"write c
ontrol register"(制御レジスタ読取
り)命令を実行するとMIMDモードに入り、当該の制
御ビットが"1"に設定される。SIMD命令が完了する
と、PMEはMIMDモードに入り、割込みを可能に
し、その汎用レジスタR0で指定された主記憶装置位置
からそのMIMD命令を取り出して実行を開始する。M
IMD制御ビット設定時の割込みマスクの状態に応じ
て、割込みがマスクされあるいはマスク解除される。P
MEは、外部から初期設定されるか、あるいはMIM
D"write control register"
(制御レジスタ書込み)命令を実行して当該の制御ビッ
トが0に設定されると、SIMDモードに戻る。
【0146】データ通信経路および制御:図8に戻る
と、各PMEは、オンチップ通信用の3つの入力ポート
400および3つの出力ポート480と、オフチップ通
信用の1つの入出力ポート410、490を有する。こ
の概念以外の既存の技術では、オフチップ・ポートをバ
イト幅半2重式にする必要がある。入力ポートは、デー
タが入力からメモリに、あるいは入力ARレジスタ40
5から直接16ビット・データ経路425を介して出力
レジスタ408に経路指定できるように接続される。メ
モリは、PME宛のメッセージまたは「蓄積交換」モー
ドで移動されたメッセージのデータ・シンクとなる。特
定のPME宛でないメッセージは、所望の出力ポートに
直接送られ、ブロッキングが発生していないときは「回
線交換」モードを開始する。PMEソフトウェアは、経
路指定の実行と選択された伝送モードの決定を担当す
る。これにより、「回線交換」モードと「蓄積交換」モ
ードの間の動的選択が可能になる。これは、PME設計
のもう1つの独特な特徴である。
【0147】このように、本発明の好ましいノードは8
個のPMEを有し、各PMEは4つの出力ポート(左、
右、垂直、および外部)を有する。入力ポートのうち3
つと出力ポートのうち3つは、チップ上の他のPMEへ
の16ビット幅全2重2地点間接続である。4番目のポ
ートは、好ましい実施例では、組み合わされて、オフチ
ップPMEへの半2重2地点間接続を提供する。本発明
で低密度CMOSを利用するために課されるピンおよび
電源の制約により、実際のオフチップ・インタフェース
は、PME間データ・ワードのハーフワード2つを多重
化するのに使用されるバイト幅経路である。モード間リ
ングを動的、一時的、かつ論理的に破壊し、データをア
レイに入れあるいはアレイから出すことを可能にする、
特殊「ジッパ」回路を用いる場合、これらの外部PME
ポートは、APAP外部入出力アレイ機能を提供する。
【0148】PMEメモリに経路指定されるデータにつ
いては、PME命令ストリームがメッセージの始めと終
りだけ入出力処理に関与すればよいように、正規DMA
がサポートされる。最後に、内部出力ポートに回線交換
されるデータは、クロッキングなしで転送される。この
ため、チップ内での単一サイクルのデータ転送が可能に
なり、もっとも高速であるが依然として確実な通信を行
うことができるチップ交差がいつ発生するかが検出され
る。高速転送には順方向データ経路と逆方向制御経路が
使用され、転送はすべて透過モードで行われる。要する
に、発信元は、DMAまたはオンチップ転送を実行する
PMEから肯定応答を受けるまでに、複数の段階を経
る。
【0149】図8および図9から分かるように、PME
入力ポート上のデータは、ローカルPME宛、またはリ
ングをさらに下ったPME宛にすることができる。リン
グをさらに下ったPME宛のデータを、ローカルPME
主記憶装置に格納した後、ローカルPMEからターゲッ
トPMEに向かって転送する(蓄積交換)ことも、ロー
カル入力ポートを特定のローカル出力ポートに論理的に
接続して(回線交換)、データがローカルPMEを「透
過的に」通過してターゲットPMEに向うようにするこ
ともできる。ローカルPMEソフトウェアが、4つの入
力および4つの出力のいずれについてもローカルPME
を「蓄積交換」モードと「回線交換」モードのどちらに
するかを動的に制御する。回線交換モードでは、PME
が、回線交換と関連付けられた入出力を除くすべての機
能を同時に処理する。蓄積交換モードでは、PMEが他
のすべての処理機能を中断して、入出力転送プロセスを
開始する。
【0150】データは、(外部制御装置により)アレイ
の外部の共用メモリまたはDASDに格納できるが、P
MEが提供するメモリのどこかに格納することもでき
る。ローカルPME宛の入力データ、または「蓄積交
換」動作中にローカルPMEにバッファされた入力デー
タは、各入力ポートと結合された直接メモリ・アクセス
(アドレス)機構を介してローカルPME主記憶装置に
格納される。プログラム割込みによって、PME主記憶
装置にメッセージがロードされたことを示すことができ
る。ローカルPMEプログラムは、ヘッダ・データを解
釈して、ローカルPME宛のデータが別のPMEへの回
線交換経路の設定に使用できる制御メッセージであるか
否か、あるいは別のPMEに転送するメッセージである
か否かを判定する。回線交換経路は、ローカルPMEソ
フトウェアによって制御される。回線交換経路は、介在
する緩衝記憶装置を通過せずに、PME入力経路を出力
経路と論理的に直接結合する。同一のチップ上のPME
間の出力経路には介在する緩衝記憶装置がないので、デ
ータを単一のクロック・サイクルで、チップに入れ、チ
ップ上の多数のPMEを通過させ、ターゲットPMEの
主記憶装置にロードすることができる。中間に緩衝記憶
装置が必要なのは、回線交換結合がチップから離れると
きだけである。このため、APAPアレイの有効直径が
非バッファ回線交換経路の数だけ減少する。その結果、
経路内にあるPMEの数とは無関係に、介在するチップ
と同数の少数のクロック・サイクルでPMEからターゲ
ットPMEにデータを送ることができる。この種の経路
指定は、各ノード・サイクルでデータを次のノードに転
送するのに数サイクル必要な交換環境と比較することが
できる。本発明のノードはそれぞれ8個のPMEを持
つ。
【0151】メモリおよび割込みレベル:PMEは、メ
モリ420に32キロビット×16ビット・ワードを格
納する。この記憶域は完全に汎用であり、データとプロ
グラムの両方を入れることができる。SIMD動作で
は、メモリすべてをデータとすることができる。これ
は、他のSIMD大規模並列マシンで特徴的である。M
IMDモードでは、メモリはまったく通常どおりである
が、大部分の大規模並列MIMDマシンと異なり、PM
Eと同じチップ上にあるため、ただちに使用可能であ
る。このため、他の大規模並列MIMDマシンに特有の
キャッシュ動作およびキャッシュ・コヒーレンシ技術は
不要である。インモス社のチップの場合、チップ上に常
駐するのは4Kだけであり、外部メモリ・インタフェー
ス・バスおよびピンが必要である。本発明ではこれらは
不要となる。
【0152】最低位記憶域位置は、各割込みレベル用の
1組の汎用レジスタを設けるために使用される。PME
用に開発された特定のISAは、これらのレジスタ参照
に短いアドレス・フィールドを使用する。割込みは、処
理、入出力活動、およびソフトウェア指定機能の管理に
使用される(すなわち、PMEは、通常の処理中に着信
入出力が開始したとき、割込みレベルに切り替わる)。
割込みレベルがマスクされていない場合、レジスタが最
低位メモリの新規セクションからアクセスされるように
ハードウェアのポインタを変更し、単一のPC値をスワ
ップすることにより、この切替えが実行される。この技
術では、高速レベル切替えが可能であり、ソフトウェア
は通常のレジスタ・セーブ動作を回避するとともに、割
込みレベル・レジスタ内に状況をセーブすることができ
る。
【0153】PMEプロセッサは、8つのプログラム割
込みレベルのうちの1つに作用する。メモリのアドレス
指定により、メモリの下位576ワードを割込みの8つ
のレベルに区分できる。このメモリの576ワードのう
ちの64ワードは、8つのレベルのいずれかで実行中の
プログラムによって直接アドレス可能である。他の51
2ワードは、8つの64ワード・セグメントに区分され
る。各64ワード・セグメントに直接アクセスできるの
は、それと関連する割込みレベルで実行中のプログラム
だけである。直接アドレス指定技術を使用することによ
り、すべてのプログラムが、PMEメモリの全32Kワ
ードにアクセスできるようになる。
【0154】割込みレベルは、入力ポート、BCI、お
よびエラー処理機構に割り当てられる。「通常」レベル
があるが、「特権」レベルも「スーパバイザ」レベルも
ない。プログラム割込みにより、文脈の切替えが行われ
て、PCプログラム・カウンタ、状況/制御レジスタ、
および特定の汎用レジスタの内容が、指定された主記憶
装置位置に格納され、これらのレジスタの新しい値が、
他の指定された主記憶装置位置から取り出される。
【0155】図8および図9を参照して説明したPME
データ・フローは、以下の数節を参照して拡張すること
ができる。複合システムでは、PMEデータ・フロー
が、アレイ・ノードとしてのチップと、メモリ、プロセ
ッサ、および入出力機構の組合せを使用する。入出力機
構は、本発明のAPAPで構築されたMMPの基本的構
成単位として複製されるBCIを使ってメッセージをや
り取りする。MMPは多数のワード長を処理することが
できる。
【0156】PME複数倍長データ・フロー処理:本明
細書に記載するシステムは、PME内の16ビット幅の
データ・フローにより、現行のプロセッサで処理される
演算を実行することができる。そうするために、16ビ
ットの倍数であるデータ長に対して演算を実行する。そ
のために、16ビットの断片として演算を行う。各断片
の結果を知っていなければならない場合がある(すなわ
ち、結果が0だったか、合計の上位ビットが繰り上げら
れたか)。
【0157】データ・フローの例として、48ビットの
2つの数の加算を挙げることができる。この例では、ハ
ードウェアで以下の演算を実行することにより、48ビ
ットの2つの数(a(0〜47)およびb(0〜4
7))を加算する。
【0158】 a(32-47) + b(32-47)->ans(32-47) - ステップ1 1)合計の上位ビットの実行結果をセーブする。 2)部分結果が0だったかどうかを記憶する。
【0159】a(16-31) + b(16-31) + save carry->ans
(16-31) - ステップ2 1)合計の上位ビットの実行結果をセーブする。 2)この結果および前回のステップで部分結果が0だっ
たかどうかを記憶する。 両方とも0の場合、0を記憶する。いずれかが0以外の
場合、非0を記憶する。
【0160】a(0-15) + b(0-15) + saved carry->ans(0
-15) - 最終ステップ 1)この断片が0で最後の断片が0だった場合、答は0
である。 2)この断片が0で最後の断片が非0だった場合、答は
非0である。 3)この断片が非0の場合、答は合計の符号に基づき正
または負になる(桁あふれはないものとする)。 4)実行する答の符号が実行した答の符号と等しくない
場合、答は符号が間違っており、結果は桁あふれとなる
(使用可能なビット単位で適切に表すことができな
い)。
【0161】中間の第2ステップを必要な回数繰り返す
と、長さを拡張することができる。長さが32の場合、
第2ステップは実行されない。長さが48より大きい場
合、ステップ2は複数回実行される。長さがちょうど1
6の場合、ステップ1における動作が、最終ステップの
条件3および4つきで実行される。オペランドの長さを
データ・フローの長さの複数倍に拡張すると、データ・
フローの幅が狭い場合、通常、命令を実行するのにかか
る時間が長くなる。すなわち、32ビットのデータ・フ
ローで32ビットを加算する場合、加算器論理回路を1
回通過するだけでよいが、16ビット・データ・フロー
でやはり32ビットを加算する場合は、加算器論理回路
を2回通過する必要がある。
【0162】本発明の興味深い点として、マシンの現実
施態様では、長さ1〜8ワード(長さは、命令の一部と
して定義される)のオペランドに対して加算/減算/比
較/移動を実行できる単一の命令がある。プログラマが
使用できる個々の命令は、ステップ1、ステップ2、お
よび最終ステップで示した動作と同じ種類の動作を実行
する(ただし、プログラマにとってオペランド長は長く
なる。すなわち、16〜128ビット)。基本ハードウ
ェア・レベルでは一度に16ビットに作用するが、プロ
グラマは一度に16〜128ビットを処理していると考
える。
【0163】これらの命令を組み合わせて使用すると、
プログラマは任意の長さのオペランドを扱うことができ
る。すなわち、2つの命令を使用すると、長さ256ビ
ットまでの2つの数を加算することができる。
【0164】PMEプロセッサ:本発明のPMEプロセ
ッサは、MPPアプリケーションに現在使用されている
現在のマイクロプロセッサと異なる。プロセッサ部分の
違いとしては以下の点が挙げられる。
【0165】1.プロセッサは、完全にプログラミング
可能なハードワイヤ式コンピュータである(命令セット
の概要に関しては、ISAについての説明を参照された
い) ・左上隅に示す完全なメモリ・モジュールを有する(図
9参照)。 ・(左上隅に示す)各割込みレベルに対して別々のレジ
スタ・セットをエミュレートするのに必要な制御機構を
備えたハードウェア・レジスタを有する。 ・その論理演算機構が、効果的な多重サイクル整数およ
び浮動小数点演算を可能にするのに必要なレジスタおよ
び制御機構を有する。 ・右上隅に示す2地点間リンクで相互接続されたPME
間のパケットまたは回線交換データ移動をサポートする
のに必要な入出力切替経路を有する。
【0166】2.これは、CMOS DRAM技術によ
り1チップ当たりPMEの複製を8個作成できるプロセ
ッサ設計のための最小の手法である。
【0167】3.PMEのこのプロセッサ部分は、本発
明のMMPの効果的なMIMD動作またはSIMD動作
を可能にするのに必要な高速命令セット・アーキテクチ
ャ(ISA)(表を参照)をコーディングするのに必要
なほぼ最小のデータ・フロー幅を提供する。
【0168】PME常駐ソフトウェア:PMEは、格納
されたプログラムを実行できる、APAPの最小要素で
ある。PMEは、一定の外部制御要素中に常駐し、SI
MDモードで同報通信/制御インタフェース(BCI)
によってPMEに送られるプログラムを実行し、あるい
はそれ自体の主記憶装置に常駐するプログラムを実行す
ることができる(MIMDモード)。PMEは、SIM
DモードとMIMDモードの間で動的に切り替えること
ができる。これは、SIMD/MIMDモード2重機能
であり、システムはこの2重機能を同時に実行できる
(SIMIMDモード)。特定のPMEは、制御レジス
タ中のビットをセットまたはリセットするだけで、この
動的切替えを行うことができる。SIMD PMEソフ
トウェアは実際には外部制御要素に常駐するので、これ
についての詳細はアレイ・ディレクタに関する考察の所
および関連出願に記載されている。
【0169】MIMDソフトウェアは、PMEがSIM
Dモードのとき、PME主記憶装置に格納される。これ
が可能なのは、PMEの多くが、同様なデータを非同期
的に処理するので、同一のプログラムを備えているから
である。ここでは、これらのプログラムは固定されてい
ず、他の演算の処理中に外部源からMIMDプログラム
をロードすることによって修正できることを指摘してお
く。
【0170】表に示すPME命令セット・アーキテクチ
ャはマイクロコンピュータのアーキテクチャなので、こ
のアーキテクチャではPMEが実行できる機能に対する
制限はほとんどない。基本的に、各PMEはRISCマ
イクロプロセッサと同様に機能できる。典型的なMIM
D PMEソフトウェア・ルーチンを以下に列挙する。
【0171】1.各種の常駐ルーチンをディスパッチし
優先順位をつけるための基本制御プログラム。
【0172】2.PME間でデータおよび、制御メッセ
ージをやり取りするための通信ソフトウェア。このソフ
トウェアは、特定のPMEが「回線交換」モードにいつ
入りそこからいつ出るかを決定する。通信ソフトウェア
は適宜「蓄積交換」機能を実行する。また、それ自体の
主記憶装置と別のPMEの主記憶装置の間でのメッセー
ジの開始、送信、受信、および終了を行う。
【0173】3.割込み処理ソフトウェアは、文脈の切
替えを完了し、その割込みを発生させた事象に応答す
る。これらのソフトウェアには、フェール・セイフ・ル
ーチンと、PMEのアレイへの再経路指定または再割当
てが含まれる。
【0174】4.後述の拡張命令セット・アーキテクチ
ャを実施するルーチン。これらの再経路指定では、拡張
精密固定小数点演算、浮動小数点演算、ベクトル演算な
どのマクロ・レベル命令が実行される。そのため、複雑
な演算が扱えるだけでなく、多次元(2次元または3次
元イメージ)および複数媒体プロセスでイメージ・デー
タを表示するためのイメージ処理活動も可能になる。
【0175】5.標準の数学ライブラリ関数を組み込む
ことができる。これらの関数にはLINPAKルーチン
およびVPSSルーチンを含めることが好ましい。各プ
ロセッサ・メモリ要素は、ベクトルまたは行列の異なる
要素に対して作用できるので、様々なPMEがすべて、
異なるルーチン、または同一の行列の異なる部分を一時
に実行できる。
【0176】6.APAPノード相互接続構造を利用
し、動的多次元経路指定を可能にする、分散/収集機能
または分類機能を実行するための特殊ルーチンが提供さ
れる。これらのルーチンは、様々なPME間で実現され
る一定程度の同期化を効果的に利用しながら、非同期動
作を継続できるようにする。分類用には、分類ルーチン
がある。APAPはバッチャ分類によく適している。な
ぜなら、このような分類では、非常に短い比較サイクル
と比較する特定の要素を決定するために大量の計算が必
要だからである。プログラム同期化は入出力ステートメ
ントによって管理される。このプログラムを使うと、1
PME当たり複数のデータ要素が可能であり、非常に大
規模な並列分類を非常に簡単な形で行うことができる。
【0177】各PMEはそれ自体の常駐ソフトウェアを
有するが、これらのマイクロコンピュータから構築され
るシステムは、スカラー並列マシン用に設計されたより
高水準の言語プロセスを実行できる。すなわち、このシ
ステムは、FORTRAN、C、C++、FORTRA
N Dなどの高水準言語で、UNIXマシン用に書かれ
たアプリケーション・プログラムまたは他のオペレーテ
ィング・システムのアプリケーション・プログラムが実
行できる。
【0178】本発明のプロセッサ概念が、きわめて古い
プロセッサ設計の手法を使用しているのは興味深い。I
BMの軍用プロセッサではおそらく、同様な命令セット
・アーキテクチャ(ISA)設計が30年来使用されて
いる。この種の設計を使用して、本発明のPME設計全
体と組み合わせれば、行き詰まった現在のマイクロプロ
セッサ設計に活路を見いだし、当該技術が次の世紀に使
用できる新しい道を開くことができることを認識したの
は本発明者等が初めてである。
【0179】このプロセッサの設計の諸特徴は他の現在
のマイクロプロセッサとまったく異なるが、同様なゲー
ト制約式軍用および宇宙航空用プロセッサは60年代か
らこの設計を使用している。このプロセッサは、簡単な
コンパイラの開発に十分な命令およびレジスタを提供
し、汎用処理アプリケーションと信号処理アプリケーシ
ョンのどちらもこの設計で効果的に実行される。本発明
の設計はゲート要件が最小であり、IBMは、組込みチ
ップ設計が汎用処理に必要であった数年前から同様な概
念を実施している。今回は旧式のISA設計の一部を採
用したため、多くのプログラマが該設計概念について既
存のベースおよび知識を持っているので、本発明のシス
テムを迅速に採用できるようにする多数のユーティリテ
ィおよびその他のソフトウェア・ビークルの使用が可能
である。
【0180】PME入出力:PMEは、図9の経路BC
Iを介して同報通信/制御インタフェース(BCI)バ
スから論理演算機構にデータを読み込み、あるいは該バ
スから解読論理回路(図示せず)に直接命令を取り込む
ことにより、該バスと相互接続する。PMEは、SIM
Dモードでパワー・アップし、分岐にぶつかるまでその
モードで命令を読み取り、解読して、実行する。SIM
Dモードの同報通信コマンドは、MIMDへの移行を行
わせ、ローカル側で命令を取り出させる。同報通信PM
E命令^INTERNAL DIOW^は状態を反転させ
る。
【0181】PME入出力は、データの送信、引渡しま
たは受信とすることができる。PMEは、データ送信時
にCTLレジスタをセットして、XMITをL、R、
V、Xのいずれかに接続させる。次にハードウェア・サ
ービスが、ALUマルチプレクサおよびXMITレジス
タを介してメモリからターゲットにデータのブロックを
引き渡す。この処理は、通常の命令動作とインタリーブ
する。アプリケーションの要件に応じて、伝送されるデ
ータのブロックは、定義済みPME用の生データまたは
経路を確立するためのコマンド、あるいはその両方を含
むことができる。データを受け取ったPMEは、入力を
メモリに格納し、活動状態の下位処理に割り込む。割込
みレベルにおける解釈タスクは、この割込み事象を使っ
て、タスク同期化を実行し、あるいは透過性入出力動作
を開始することができる(データが他の場所でアドレス
されるとき)。PMEは、透過性入出力動作中、自由に
実行を継続できる。PMEのCTLレジスタがPMEを
ブリッジにする。データは、ゲート処理なしにPMEを
通過し、PMEは、命令またはデータ・ストリームによ
ってCTLレジスタがリセットされるまでそのモードの
ままである。PMEは、データの引渡し中、データ源と
なることはできないが、別のメッセージのデータ・シン
クとなることはできる。
【0182】PME同報通信セクション:これは、チッ
プと共通制御デバイスの間のインタフェースである。こ
のインタフェースは、入出力を指令しまたは完全なチッ
プをテストし診断する制御装置として働くデバイスが使
用できる。
【0183】入力は、PMEのサブセットが使用可能な
ワード・シーケンス(命令またはデータ)である。各ワ
ードには、どのPMEがそのワードを使用するかを示す
コードが関連付けられている。BCIは、ワードを使用
して、該インタフェースへのアクセスを制限するととも
に、必要なすべてのPMEがデータを受け取るようにす
る。このことは、BCIを非同期PME動作に調節する
のに役立つ(PMEは、SIMDモードのときでも、入
出力および割込み処理のために非同期的である)。この
機構により、PMEを、BCIを介して受け取ったコマ
ンド/データ・ワードのインタリーブ・セットによって
制御されるグループに形成することができる。
【0184】BCIは、PMEにデータを引き渡すだけ
でなく、PMEから要求コードを受け入れ、それらのコ
ードを組み合わせ、統合された要求を送り出す。この機
構は、いくつかの形で使用できる。MIMD処理は、す
べて出力信号で終了するプロセッサのグループ中で開始
できる。信号が^AND^されると、制御装置は新規プロ
セスを開始する。多くの場合、アプリケーションがPM
Eメモリに必要なすべてのソフトウェアをロードできる
とは限らない。制御装置へのコード化された要求を使っ
て、おそらくホストの記憶システムからソフトウェア・
オーバレイを取り出す。
【0185】制御装置は、多数のチップを通る直列走査
ループを使って、個々のチップまたはPME上の情報を
取り出す。これらのループは最初BCIと相互接続され
ているが、該インタフェースにおいて個々のPMEとブ
リッジできる。
【0186】BCI:各チップ上に設けられた同報通信
/制御インタフェース(BCI)は、データまたは命令
をノードに送信できるような並列入力インタフェースを
実現する。着信データはサブセット識別子でタグ付けさ
れる。BCIは、サブセット内で動作する、ノード内の
すべてのPMEにデータまたは命令が提供されるように
するのに必要な機能を備えている。BCIの並列インタ
フェースは、すべてのPMEにデータを同報通信できる
ようにするポートとしても、SIMD動作中の命令イン
タフェースとしても働く。両方の要件を満たすととも
に、それらの要件をサブセット動作のサポートにまで拡
張する機能は、本発明の設計手法以外には全く例を見な
い。
【0187】本発明のBCI並列入力インタフェースに
より、ノードの外部の制御要素からデータまたは命令を
送信することが可能になる。BCIは、各PMEと結合
された「グループ割当て」レジスタを備えている(グル
ープ化の概念については、同時出願のgrouping of SIMD
picketsと題する米国特許出願を参照されたい)。着信
データ・ワードはグループ識別子でタグ付けされる。B
CIは、専用グループに割り当てられたノード内のすべ
てのPMEにデータまたは命令が提供されるようにする
のに必要な機能を備えている。BCIの並列インタフェ
ースは、MIMD動作中にPMEにデータを同報通信で
きるようにするポートとしても、SIMD動作中の命令
/即値オペランド・インタフェースとしても働く。
【0188】BCIは、2つの直列インタフェースも備
えている。高速直列ポートは、各PMEに、限られた量
の状況情報を出力する能力を与える。このデータの目的
は以下のとおりである。
【0189】1.PMEたとえば500が読み取る必要
のあるデータを有すること、またはPMEが何らかの動
作を完了したことを示す信号をアレイ・ディレクタ61
0に送る。アレイ・ディレクタ610は、それが代表す
る外部制御要素にメッセージを渡す。 2.外部テストおよびモニタ要素がシステム全体の状況
を示すことができるように活動状況を提供する。
【0190】標準直列ポートは、外部制御要素が監視お
よび制御の目的で特定のPMEに選択的にアクセスでき
るようにする。このインタフェースを介して渡されるデ
ータは、BCI並列インタフェースから特定のPMEレ
ジスタにデータを送り、あるいは特定のPMEレジスタ
からデータを選択してそれを高速直列ポートに経路指定
することができる。これらの制御点は、外部制御要素が
初期パワー・アップおよび診断フェーズ中に、個々のP
MEを監視し制御できるようにする。これによって、ア
レイ・ディレクタは、特定のPMEおよびノード内部レ
ジスタならびにアクセス点をポートの出力先とするよう
に、制御データを入力することができる。これらのレジ
スタは、ノードのPMEがアレイ・ディレクタにデータ
を出力できるように経路を提供し、かつアレイ・ディレ
クタが初期パワー・アップおよび診断フェーズ中に、装
置にデータを入力できるようにする。アクセス点へのデ
ータ入力を使用して、テストおよび診断動作、すなわ
ち、単一の命令ステップの実行、比較時停止、区切り点
などを制御することができる。
【0191】ノード・トポロジー:本発明の修正ハイパ
ーキューブ・トポロジー接続は大規模並列システムにも
っとも有効であるが、性能の劣る他の接続を本発明の基
本PMEと併用することもできる。本発明者によるVL
SIチップの初期実施例では、8個のPMEと、完全分
散型PME内部ハードウェア接続が使用されている。内
部PME間チップ構成は、4個のPMEから成るリング
2つであり、各PMEがさらに他のリングのPMEへの
1つの接続を有している。VLSIチップに8個のPM
Eがある場合、これは3次元バイナリ・ハイパーキュー
ブである。しかし、本発明の手法では一般に、チップ内
でハイパーキューブ編成を使用しない。また、各PME
では1本のバスのエスケープが可能である。初期実施例
では、一方のリングからエスケープされたバスを+X、
+Y、+W、および+Zと呼び、他方のリングからエス
ケープされたリングには−(マイナス)の同様なラベル
を付ける。
【0192】特定のチップ編成をアレイのノードと呼
び、ノードはアレイのクラスタ中に入れることができ
る。ノードは+-Xおよび+-Yを使ってアレイとして接
続され、クラスタを形成する。アレイの次元数は任意で
あり、一般に、バイナリ・ハイパーキューブの開発の必
要条件である2より多い。クラスタは+-W、+-Zを使
ってさらに接続され、クラスタのアレイとなる。ここで
もアレイの次元数は任意である。この結果、ノードの4
次元ハイパーキューブが得られる。5次元ハイパーキュ
ーブに拡張するには、PMEノードが10個必要であ
り、2本の追加バス、たとえば+-E1を使って4次元
ハイパーキューブを接続し、ハイパーキューブのベクト
ルにする。本発明ではさらに、奇数または偶数の基数ハ
イパーキューブへの拡張のパターンを示した。この修正
トポロジーでは、クラスタがクラスタ配線に限定される
が、ハイパーキューブ接続の利点が維持される。
【0193】本発明の、大規模並列マシン用の配線可能
性およびトポロジー構成には、本発明のクラスタ・レベ
ルのパッケージング内でX次元およびY次元が維持で
き、すべての隣接クラスタにWバス接続およびZバス接
続が配分できるという利点がある。上述の技術を実施し
た後、定義されたトポロジーの固有の特性を維持しなが
ら製品を配線し製造することができる。
【0194】ノードは、K*n個のPMEと、同報通信
/制御インタフェース(BCI)セクションから構成さ
れる。ここで、"n"は、修正ハイパーキューブを特徴付
ける次元またはリングの数を表し、"k"はノードを特徴
付けるリングの数を表す。ノードはk個のリングを備え
ることができるが、それらのリングのうち2個だけが、
エスケープ・バスを提供することがこの概念の特徴であ
る。好ましい実施例では、物理チップ・パッケージによ
り、"n"および"k"がN=4およびk=2に制限されて
いる。この制限は物理的なものであり、別のチップ・セ
ットを使用すれば、アレイの次元数を増やすことができ
る。本発明の好ましい実施例は、物理チップ・パッケー
ジの一部であるだけでなく、修正ハイパーキューブ中の
1組のリングを相互接続するPMEのグループ化を可能
にする。各ノードには、PMEアーキテクチャを有し、
処理機能およびデータ・ルータ機能を実行できる、8個
のPMEがある。したがって、nは修正ハイパーキュー
ブの次元数(次節参照)である。すなわち、4次元修正
ハイパーキューブのノード要素はPME8個であり、5
次元修正ハイパーキューブのノードはPME10個であ
る。本発明で使用できるノードについては図7を、相互
接続については図10および図11を、各ノードのブロ
ック図については図12を参照されたい。図17および
図18は、APAPの可能な相互接続の詳細を示したも
のである。
【0195】1991年5月13日に出願された"Metho
d for Interconnecting and Systemof Interconnected
Processing Elements"と題する米国特許出願第07/6
98866号に、本発明のAPAP MMPに使用する
のが好ましい修正ハイパーキューブ基準が記載されてい
る。上記出願を参照により本発明に組み込むが、それに
は、1要素当たりの接続数とネットワーク直径(最悪例
経路長)とのバランスを取ることができるように処理要
素を相互接続する方法が記載されている。そうするに
は、ハイパーキューブの、周知の好ましいトポロジー特
性の多くを持つトポロジーを作成すると同時に、基底を
変えることができる数体系でネットワークのノードを列
挙することによってトポロジーの柔軟性を向上させる。
この方法で基底2の数体系を使用すると、ハイパーキュ
ーブ・トポロジーが得られる。本発明では、ハイパーキ
ューブの一様な接続よりも相互接続の数が少なく、かつ
ハイパーキューブの特性を維持する。こうした特性とし
ては次の3つがある。1)代替経路が多い。2)総合帯
域幅がきわめて大きい。3)周知の既存の方法を使っ
て、他の共通問題トポロジーをネットワークのトポロジ
ーでマップできる。その結果、密度の低い非バイナリ・
ハイパーキューブが得られる。本発明では修正ハイパー
キューブ手法を優先しているが、従来のハイパーキュー
ブを使用できるアプリケーションもあることに留意され
たい。ノードの接続にあたり、トポロジーの他の手法も
使用できる。しかし、本明細書に記載する手法は、斬新
で高度であると考えられるので、これを優先する。
【0196】PMEのネットワーク中で複数のノードを
相互接続するための、修正ハイパーキューブ・トポロジ
ー用の相互接続方法について以下に説明する。
【0197】1.1組の整数e1、e2、e3...の
組を次のように定義する。すべての要素の積がネットワ
ーク内のPMEの数Mと等しくなり、一方e1およびe
2を除く、該組のすべての要素の積がノードの数Nであ
り、該組の要素の数mが、関係式n=m−2によってネ
ットワークの次元数を定義する。
【0198】2.1組のインデックスa1、a2...
amによって位置指定されたPMEにアドレスする。こ
こで各インデックスは、等価な展開レベルでのPME位
置であり、インデックスaiは、公式(....(a(m)*e(m-
1) + a(m-2))e(m-1) ... a(2)*e(1))+a(1)によって、i
が1、2、...mのとき、0からei−1の範囲に収
まる。この公式で、a(i)という表記は通常通り、要素の
リストa中のi番目であることを意味する。eについて
も同様である。
【0199】3.次の2つの条件のいずれかが成り立つ
場合にかぎり、2つのPME(アドレスがfおよびg)
を接続する。 a.r/(e1 * e2)の整数部分がs/(e1 * e2)の整数部分と
等しい。 1)r/e1の剰余部分がs/e1の剰余部分と1だけ異なる。
あるいは 2)r/e2の剰余部分がs/e2の剰余部分と1またはe2-1だ
け異なる。 b.r/eiの剰余部分とs/eiの剰余部分が、iが3、
4、...mの範囲にあるとき異なり、r/e1の剰余部分
が、i−3に等しいs/e2の剰余部分と等しく、r/e2の剰
余部分がs/e2の剰余部分とe2−1だけ異なる。
【0200】この結果、コンピュータ・システム・ノー
ドは、各次元で基数が異なる可能性がある非バイナリ・
ハイパーキューブを形成する。ノードは、それによって
提供されるポートが修正ハイパーキューブの次元数要件
と一致するような2*n個のポートをサポートするPM
Eのアレイと定義される。特定の修正ハイパーキューブ
の各次元の特定の範囲を定義する1組の整数e3、e
4、...emがすべて等しい、たとえばbとみなし、
e1およびe2をa1とすると、アドレス可能性および
接続についての直前の公式は下記のようになる。
【0201】1.N = b**n
【0202】2.ここでは、PMEが基底b数体系を表
す数でアドレス指定される。
【0203】3.fのアドレスがgのアドレスと、1基
底b桁だけが異なる場合にかぎり2つの計算要素(fお
よびg)が接続される。0とb−1が1だけ離れている
という規則が使用される。
【0204】4.各PMEでサポートされる接続の数は
*nである。
【0205】これは基本アプリケーションでの記載通り
であり、非隣接PMEを接続する通信バスの数は0と選
択されている。
【0206】さらに、前述の、1991年5月13日出
願の"Method for Interconnectingand System of Inter
connected Processing Elements"と題する米国特許出願
第07/698866号には、本発明のAPAP MM
Pと一緒に使用できる修正ハイパーキューブ基準が記載
されている。上記の詳細に加えて、処理要素を相互接続
する方法が記述できる。
【0207】PMEのネットワーク内で複数の演算要素
を相互接続するための、修正ハイパーキューブ・トポロ
ジー用の相互接続法では、 a)演算要素の数がb**nに等しく、bおよびnが正の
整数であるようにbおよびnを定義し、 b)bが偶数である場合 1≦d≦b/2であり、bが
奇数である場合 1≦d≦(b−1)/2であるような
正の整数dを選択し、 c)基底b番号付けシステムで表される数を使って番号
付けすることによって、演算要素をアドレス指定し、 d)以下の条件が成立する場合に限り、2つの演算要素
(eおよびf)を接続する。 1)(ステップcで形成された)eのアドレスがfのア
ドレスと、1つの桁だけi桁目が異なり、 2)eiおよびfiという記号で表される、eおよびf
のアドレスの独自のi桁目について、eiとfiが等し
くない場合、次式が成り立つ。ei=(fi+j)mo
d bまたはfi=(ei−j)Mod d(すべての
j≦d)その結果、コンピューティング・システムは、
複数のノードを含む非バイナリ・ハイパーキューブを形
成する。ここで、N=b**mであり、bおよびnは正の
整数でかつb>2である。各ノードは、数体系基底bに
従って番号付けされた識別用アドレスを有する。ハード
ウェアおよびソフトウェアにより、各ノードを、そのノ
ードのアドレスと1つの桁が異なるアドレスを持つノー
ドに接続することができ、1ノード当たりの接続数はm
*logb(N)となる。ここで、mu=2dであ
り、bが偶数の場合は1≦d≦b/2で、bが奇数の場
合は1≦d≦(b−1)/2である。ただし、bが偶数
でd=b/2の場合は、mu=b−1である。
【0208】ノード内PME相互接続:PMEは、ノー
ド内で2×nアレイとして構成される。各PMEは、1
組の入出力ポートを使って3つの隣接PMEと相互接続
されるため、PME間には全2重通信機能が提供され
る。各PME外部入出力ポートは、ノード入出力ピンに
接続される。入出力ポートは、ピンを、半2重通信用に
共用できるように接続することも、全2重機能用に分離
できるように接続することも可能である。4次元修正ハ
イパーキューブ・ノードの相互接続を図10および図1
1に示す(nが偶数の場合、ノードは2×2×n/2ア
レイとみなせることに留意されたい)。
【0209】図10は、ノード内の8つの処理要素50
0、510、520、530、540、550、56
0、570を示している。PMEは、バイナリ・ハイパ
ーキューブ通信ネットワーク中で接続される。このバイ
ナリ・ハイパーキューブは、PME間のノード内接続を
3つ示している(501、511、521、531、5
41、551、561、571、590、591、59
2、593)。PME間の通信は、処理要素の制御下で
入出力レジスタによって制御される。この図は、8つの
方向、+-w 525、565、+-x 515、55
5、+-y 505、545、+−z535、575の
いずれかから入出力をエスケープするとき使用できる様
々な経路を示している。望むなら、データをメモリに格
納せずに通信を実行できる。
【0210】ネットワーク切替えチップを使用すれば、
それぞれ本発明のチップを持つ各種カードを、システム
の他のチップと接続できるが、ネットワーク切替えチッ
プを使用しなくてもかまわず、またそうすることが望ま
しいことに留意されたい。「4次元トーラス」として記
述する本発明のPME間ネットワークは、PME間通信
に使用する機構である。PMEは、このインタフェース
上のアレイ内の任意の他のPMEにアクセスできる(間
にあるPMEは、蓄積交換または回線交換できる)。
【0211】相互接続のチップ関係:チップについて説
明してきた。図12は、PMEプロセッサ/メモリ・チ
ップのブロック図である。このチップは、下記の要素か
ら構成されている。以下に、これらの要素のそれぞれに
ついて説明する。
【0212】1.それぞれ16ビットのプログラマブル
・プロセッサおよび32Kワードのメモリ(64KB)
から成るPME8個。
【0213】2.制御装置がすべてのPMEまたはその
サブセットを動作させPME要求を累積できるようにす
るBCI。
【0214】3.相互接続レベル a.各PMEは、8ビット幅PME間通信経路4つをサ
ポートする。これらは、チップ上の隣接PME3個およ
びオフチップPME1個と接続される。 b.同報通信PME間バス接続。データまたは命令を使
用可能にする。 c.任意のPMEが制御装置にコードを送信できるよう
にするサービス要求線。BCIは、要求を組み合わせ、
要約を転送する。 d.シリアル・サービス・ループは、制御装置が機能ブ
ロックに関するすべての詳細を読み取れるようにする。
このレベルの相互接続は、同報通信インタフェースから
すべてのPMEまで延びる(図12を参照すれば分かる
ので、詳細は省略する)。
【0215】相互接続および経路指定:MPPは、PM
Eを複製することによって実施される。複製の程度は、
使用する相互接続および経路指定方式に影響を与えな
い。図7は、ネットワーク相互接続方式の概要を示して
いる。チップはPMEを8個備えており、PMEはすぐ
隣のPMEに相互接続されている。この相互接続パター
ンにより、図11に示す3次元キューブ構造が得られ
る。キューブ内の各プロセッサに、チップのピンへの専
用両方向バイト・ポートがある。8個1組のPMEをノ
ードと呼ぶ。
【0216】ノードのn×nアレイがクラスタである。
+xポートと−xポート間、+yポートと−yポート間
を単にブリッジするだけで、クラスタ・ノード相互接続
が実現される。この場合、本発明の好ましいチップまた
はノードにはPMEが8個あり、それぞれ単一の外部ポ
ートを管理する。このおかげで、ネットワーク制御機能
が分散され、ポートに対するボトルネックがなくなる。
外部エッジをブリッジすると、クラスタは論理トーラス
となる。本発明ではn=4およびn=8のクラスタを検
討したが、商用アプリケーションではn=8の方が適切
であり、一方軍事伝導冷却式アプリケーションではn=
4の方が適切であると考える。本発明の概念では、変更
不能なクラスタ・サイズは使用しない。逆に、変形を使
用するアプリケーションも想定している。
【0217】クラスタをアレイにすると、図11に示す
4次元トーラスまたはハイパーキューブ構造が得られ
る。+wポートと−wポートの間、+zポートと−zポ
ートの間をブリッジすると、4次元トーラス相互接続が
実現される。その結果、クラスタ内の各ノードは、すべ
ての隣接クラスタ内の等価なノードと接続される(これ
で、2つの隣接クラスタ間にポートが64個提供され
る。より大型のクラスタの場合は8個である)。クラス
タ・サイズの場合同様、この方式は特定のサイズのアレ
イを必要としない。本発明では、ワークステーションお
よび軍事アプリケーションに好ましい2×1アレイと、
メインフレーム・アプリケーション用の4×4アレイ、
4×8アレイ、および8×8アレイを考慮した。
【0218】4次元トーラスの開発は、本発明の好まし
いチップのゲート、ピン、およびコネクタの限界を超え
ている。しかし、本発明の代替オンチップ光学式ドライ
バ/レシーバを使用すれば、この限界はなくなる。この
実施例では、本発明のネットワークは1PME当たり1
本の光路を使用できる。その場合、1チップ当たりのP
MEは8個でなく12個になり、マルチTflop(テ
ラフロップ)性能の4次元トーラスのアレイができる。
そのようなマシンをワークステーション環境で使用する
ことは可能であり、かつ経済的に実現可能であるように
思われる。そのような代替マシンは、本発明の現在の好
ましい実施例用に開発されたアプリケーション・プログ
ラムを使用することに留意されたい。
【0219】4次元クラスタ編成:図7および図11に
示す4次元修正ハイパーキューブ360を構築するに
は、8つの外部ポート315をサポートするノードが必
要である。外部ポートを+X、+Y、+Z、+W、−
X、−Y、−Z、−Wで表すものとする。次に、m1
ードを使って、+Xポートと−Xポートの間を接続する
と、リングが構築できる。さらに、m2を使用し、+Y
ポートと−Yポート間を相互接続すると、そのようなリ
ングが相互接続され、リングのリングが構築できる。こ
のレベルの構造をクラスタ320と呼ぶ。m1=m2=8
の場合、図7にm=8として示すように、512個のP
MEが使用可能であり、そのようなクラスタは複数のサ
イズのシステム(330、340、350)の構成単位
となる。
【0220】4次元アレイ編成:大規模な密システムを
構築するときは、+Zポートおよび−Zポートを使用
し、m3クラスタの組を列として相互接続する。m4列を
さらに、+Wポートおよび−Wポートを使って相互接続
する。m1=...m4=8の場合、こうすると3276
8すなわち84+1個のPMEを備えたシステムが得られ
る。この編成では、あらゆる次元が図7のように(大規
模な密並列プロセッサ370)等密度である必要はな
い。小規模な密プロセッサの場合、1つのクラスタだけ
を使用し、未使用のZポートおよびWポートをカード上
で相互接続することができる。この技術によって、カー
ド・コネクタ・ピンが節約され、コネクタ・ピンの制限
のある、ワークステーション340、350およびアビ
オニックス・アプリケーション330にこのスケーリン
グ可能プロセッサが適用できるようになる。ZとWを対
にして+/−ポートを接続すると、デバッグ、テスト、
および大規模マシン・ソフトウェア開発が可能なワーク
ステーション編成が得られる。
【0221】さらに、m=8より小さな値で構造を生成
すれば、はるかに小さなスケール・バージョンの構造を
開発できる。こうすれば、PS/2またはRISCシス
テム6000ワークステーション350におけるアクセ
レレータの要件に適合する単一のカード・プロセッサが
構築可能である。
【0222】入出力性能:入出力性能には、セットアッ
プ転送に対するオーバヘッドと、実バースト速度データ
移動が含まれる。セットアップのオーバヘッドは、アプ
リケーション機能入出力の複雑性と、ネットワークの争
奪によって決まる。たとえば、アプリケーションは、バ
ッファリングによって回線交換トラフィックをプログラ
ミングして衝突を解決することも、すべてのPMEを左
に移して同期化することもできる。最初の例では、入出
力が主要なタスクであり、そのサイズ決めには詳細な分
析が使用される。本発明者等の見積りでは、単純な例の
セットアップ・オーバヘッドで、20〜30クロック・
サイクルまたは0.8〜1.2マイクロ秒である。
【0223】バースト速度入出力は、PMEがデータを
転送できる最高速度である(チップ上の隣接PMEまた
は外部の隣接PMEへの転送)。メモリ・アクセス限界
により、データ速度は1バイト当たり140ナノ秒に設
定されている。これは、7.14MB/秒に該当する。
この性能には、バッファ・アドレスおよびカウント処理
と、データ読取り/書込みが含まれる。この性能では、
転送される16ビット・ワード当たり7つの40ナノ秒
サイクルが使用される。
【0224】このバースト速度性能は、最高転送速度が
3.65GB/秒であるクラスタに該当する。すなわ
ち、クラスタの行または列に沿った8個1組のノード
が、8個1組の使用可能なポートを使用して57MB/
秒のバースト・データ速度を実現することになる。ラッ
プされたクラスタのエッジを、論理的に「ジップ解除」
し、外部システム・バスと接続することにより、外部と
の入出力が行われるので、この数字は重要である。
【0225】PME間経路指定プロトコル:SIMD/
MIMD PMEは、外部入出力機構とのプロセッサ間
通信機構、BCI、ならびに同一のPME内でSIMD
動作とMIMD動作をどちらも可能にする切替え機能を
備えている。PMEには、プロセッサ通信およびPME
間のデータ転送用の、完全分散型プログラマブル入出力
ルータが組み込まれている。
【0226】PMEは、オンチップPME、ならびに修
正ハイパーキューブ構成内の相互接続されたPMEに接
続された外部入出力機構への、完全分散型プロセッサ間
通信ハードウェアを有している。このハードウェアは、
ソフトウェアを介して入出力活動を制御する、PMEの
柔軟なプログラミング可能性で補足されている。プログ
ラマブル入出力ルータ機能によって、データ・パケット
およびパケット・アドレスの生成が可能になる。PME
は、PMEのネットワークを介して指定の方法で、また
はフォールト・トレランス要件によって決定される複数
の経路によって、この情報を送信できる。
【0227】分散型フォールト・トレランス・アルゴリ
ズムまたはプログラム・アルゴリズムは、プログラミン
グ可能性や、PMEのサポートされる回線交換モードな
どの利点を利用できる。この性能組合せモードによっ
て、プログラマブル入出力ルータを介して、オフライン
PME、最適経路データ構造などあらゆるものを実現で
きる。
【0228】本発明者等のアプリケーションの調査か
ら、PME間で生データを送信するのがもっとも効率的
なことがあることが分かっている。アプリケーションが
データおよび経路指定情報を必要とする場合もある。さ
らに、ネットワークの衝突が発生しないように通信を計
画できることもある。アプリケーションによっては、中
間ノードにメッセージをバッファするための機構を設け
ないかぎり、デッドロックの可能性がなくならない。極
端な例を2つ示す。PDE法の緩和フェーズでは、各格
子点をノードに割り振ることができる。隣接ノードから
データを獲得する内部ループ・プロセスは、ノード全体
にわたって容易に同期化できる。また、イメージ変換で
は、ローカル・データ・パラメータを使用して通信の発
信先または発信元の識別子がが決定される。その結果、
複数のPME間でデータが移動され、各PMEが各パケ
ットの経路指定タスクに関与するようになる。そのよう
なトラフィックの事前計画は一般的に不可能である。
【0229】ネットワークがあらゆる種類の転送要件に
対して効率的になるように、本発明では、ハードウェア
とソフトウェアの間で、PME間のデータ経路指定の責
任を分割している。ソフトウェアは、大部分のタスク順
序付け機能を実行する。本発明では、内部ループ転送を
行い、外部ループ上でのソフトウェア・オーバヘッドを
最小限に抑える特殊機能をハードウェアに追加した。
【0230】専用割込みレベルの入出力プログラムがネ
ットワークを管理する。大部分のアプリケーションで
は、PMEが4つの割込みレベルを4個の隣接PMEか
らのデータ受信専用にしている。各レベルのバッファを
開く際は、そのレベルのレジスタをロードし、IN命令
(バッファ・アドレスおよび転送カウントを使用する
が、データ受信を待たない)とRETURN命令の対を
実行する。ハードウェアはさらに、特定の入力バスから
ワードを受け入れ、バッファに格納する。さらに、バッ
ファ満杯条件によって割込みが発生し、RETURN後
の命令にプログラム・カウンタが復元される。割込みレ
ベルのためのこの手法では、割込みの原因が何かをテス
トする必要がない入出力プログラムを書くことができ
る。プログラムは、データを読み取り、リターンを行っ
てから、読み取ったデータの処理に移る。たいていの状
況ではレジスタのセーブがほとんどあるいはまったく必
要ないので、転送オーバヘッドは最低になる。PDEの
例の場合のように、アプリケーションが入出力に対して
同期化を使用する場合、プログラムによってその機能を
提供できる。
【0231】書込み動作は複数の方法で開始できる。P
DEの例の場合、隣接PMEに結果を送信する時点で、
アプリケーション・レベルのプログラムが書込み呼出し
を実行する。この呼出しで、バッファ位置、ワード・カ
ウント、および宛先アドレスが提供される。書込みサブ
ルーチンは、レジスタ・ロードと、ハードウェアを起動
しアプリケーションに戻るのに必要なOUT命令を含ん
でいる。ハードウェアは、実際のバイトごとのデータ転
送を実行する。さらに複雑な出力要件では、最上位割込
みレベルの出力サービス機能が使用される。アプリケー
ション・レベルのタスクと割込みレベルのタスクはどち
らも、ソフトウェア割込みを介してそのサービスにアク
セスする。
【0232】回線交換経路のセットアップは、これらの
単純な読取り動作および書込み動作に基づいている。本
発明ではまず、すべてのPMEが、パケット・ヘッダを
受け入れるが、データは受け入れないようにサイズ決め
されたバッファを開く。データ送信の必要があるPME
は、アドレスが宛先のアドレスにより近い隣接PMEに
アドレス/データ・ブロックを送信して転送を始める。
隣接PMEでは、アドレス情報が格納される。バッファ
満杯条件によって、割込みが発生する。割込みソフトウ
ェアは、宛先アドレスをテストし、バッファを拡張して
データを受け入れるか、あるいは出力ポートに宛先アド
レスを書き込み、さらにCTLレジスタを透過データ移
動用に設定する(これにより、PMEは、アプリケーシ
ョンの実行を回線交換ブリッジング動作とオーバラップ
させることができる)。CTLレジスタはビジー状態に
なり、データ・ストリームの終りにある信号によってリ
セットされるか、PMEプログラミングで異常なリセッ
トを実行されるまで透過的である。以上の内容には、任
意の数の変更が可能である。
【0233】システム入出力およびアレイ・ディレク
タ:図13は、好ましい実施例のアレイ・ディレクタを
示している。このアレイ・ディレクタは、システム・バ
スとアレイの接続について記述した図14および15の
制御装置の機能を実行できる。図14はクラスタとやり
取りするバスを示し、図15はPMEとやり取りするバ
ス上での情報の通信を示している。アレイのロードまた
はアンロードは、クラスタのエッジをシステム・バスに
接続することによって行われる。複数のクラスタで複数
のシステム・バスをサポートできる。各クラスタは、5
0〜57MB/秒の帯域幅をサポートする。並列アレイ
をロードまたはアンロードするには、すべてのPMEま
たはそのサブセットと標準バス(すなわち、マイクロチ
ャネル、VMEバス、フューチャーバス)の間でデータ
を移動する必要がある。それらのバスは、ホスト・プロ
セッサまたはアレイ制御装置の一部であり、厳密に指定
されていると想定される。したがって、PMEアレイは
バスに適合しなければならない。PMEアレイは、n個
のPME上にバス・データをインタリーブすることによ
り任意のバスの帯域幅に一致させることができる。ここ
で、nはPMEの入出力および処理時間の両方が可能に
なるように選択する。図14および15は、クラスタの
2つのエッジでシステム・バスをPMEに接続する方法
を示している。そのような手法により、114MB/秒
をサポートできる。また、半分のピーク速度で2つのエ
ッジにデータを同時にロードすることもできる。これに
より帯域幅は1クラスタ当り57MB/秒に減少する
が、アレイ内で直交データ移動が可能になり、2つのバ
ス間でデータの引渡しを行うことができるようになる
(この利点を使用して、高速転置および行列乗算動作を
提供する)。
【0234】図14に示すように、バスはクラスタのエ
ッジ上のすべての経路に接続され、制御装置は、各経路
に対し必要なインタリービング・タイミングでゲート信
号を生成する。57MB/秒を上回る速度でシステム・
バスに接続する必要がある場合、データは複数のクラス
タにわたってインタリーブされる。たとえば、200M
B/秒のシステム・バスが必要なシステムでは、2個ま
たは4個のクラスタから成るグループを使用する。大規
模なMPPには、16ないし64個のそのようなバスを
xyネットワーク経路に接続する機能がある。x経路お
よびy経路だけでなくw経路およびz経路を使用すれ
ば、この数を2倍にできる。
【0235】図15は、データが個々のPMEにどのよ
うに経路指定されるかを示す。この図は、7.13MB
/秒でバースト・モードで動作できる1つの特定のw経
路、x経路、y経路、またはz経路を示している。シス
テム・バス上のデータがバースト単位で発生する場合
と、PMEメモリに完全なバーストを含めることができ
る場合は、必要なPMEは1つだけである。本発明で
は、これらの条件がいずれも必要にならないようにPM
E入出力構造を設計した。バッファ満杯条件が発生する
まで、データを最高速度でPME×0にゲート入力でき
る。データ満杯条件が発生した瞬間、PME×0が透過
モードに変わり、PME×1がデータの受入れを開始す
る。PME×0内で、入力データ・バッファの処理が開
始できる。データを取りそれを処理したPMEには、透
過モードの間結果を伝送できなくなるという制限があ
る。本設計では、データ・ストリームを間隔を置いて対
向側端部に切り替えることによってこれを解決してい
る。図15に示すとおり、ソフトウェアの制御下で、P
ME×12〜PME×15が結果をアンロードする間、
PME×0〜PME×3をデータの受入れ専用にし、P
ME×0〜PME×3が結果をアンロードする間、PM
E×12〜PME×15をデータの受入れ専用にするこ
とができる。制御装置がワードをカウントし、データ・
ストリームにブロック終了信号を追加すると、方向が切
り替わる。制御装置によってサポートされるすべての経
路に1つのカウントが適用されるので、制御装置の作業
負荷は妥当である。
【0236】代替コンピュータ用システム:図20は、
単一のアプリケーション・プロセッサ・インタフェース
(API)を備えた、ホスト接続大規模システムのシス
テム・ブロック図を示す。複数のアプリケーション・プ
ロセッサ・インタフェース(図示せず)を使用するスタ
ンドアロン・システムで本発明を使用できるという了解
のもとでこの図を見ることもできる。この構成は、すべ
てのクラスタまたは多数のクラスタ上でDASD/グラ
フィックスをサポートする。ワークステーション・アク
セレレータを使用すると、図のホスト、アプリケーショ
ン・プロセッサ・インタフェース(API)、およびク
ラスタ・シンクロナイザ(CS)は不要になる。クラス
タ・シンクロナイザはかならずしも必要ではない。必要
かどうかは、実行する処理の種類と、本発明を使用する
特定のアプリケーションに提供される物理ドライブまた
は電源によって決まる。主としてMIMD処理を実行す
るアプリケーションが制御装置に課す作業負荷要求はそ
れほど高くないので、この場合、制御バスのパルス立上
り時間が非常に長くなることがある。逆に、多数の独立
したグループ化により主として非同期のA−SIMD動
作を実行するシステムでは、より高速の制御バス機能が
必要になることがある。この場合、クラスタ・シンクロ
ナイザが好ましい。
【0237】図20のシステム・ブロック図は、システ
ムがホスト、アレイ制御装置、およびPMEアレイから
構成できることを示している。PMEアレイは、1組の
クラスタ制御装置(CC)によってサポートされる1組
のクラスタである。各クラスタごとに1つのクラスタ制
御装置を示しているが、この関係が必ず必要なわけでは
ない。クラスタとクラスタ制御装置との実際の比率には
柔軟性がある。クラスタ制御装置は、64個のBCI/
クラスタへの再駆動と、それからの累積を提供する。し
たがって、物理パラメータを使用して、最大比率を確立
することができる。さらに、クラスタ制御装置はPME
アレイの複数のサブセットを個別に制御でき、このサー
ビスがゲート処理要件となることもある。調査を行っ
て、本発明の特定のアプリケーションに対するこれらの
要件を決定することができる。使用するクラスタ制御装
置のバージョンは2つある。システム・バスに接続する
クラスタでは、クラスタ制御装置がインタリーブ制御機
構(「システム入出力」および図20参照)および3状
態ドライバを提供する必要がある。3状態バス機能を省
略したより簡単なバージョンも使用できる。大規模シス
テムの場合は、第2段階の再駆動および累積が追加され
る。このレベルはクラスタ・シンクロナイザ(CS)で
ある。1組のクラスタ制御装置と、クラスタ・シンクロ
ナイザおよびアプリケーション・プロセッサ・インタフ
ェース(API)からアレイ制御装置が構成される。プ
ログラミング可能な単位はアプリケーション・プロセッ
サ・インタフェースだけである。
【0238】このシステム統合方式には複数の変形が可
能である。これらの変形によって、各種のアプリケーシ
ョン用の様々なハードウェア構成を形成できるが、その
ようにしてもサポート・ソフトウェアに大きな影響が及
ぶことはない。
【0239】ワークステーション・アクセレレータで
は、クラスタ制御装置がワークステーション・システム
・バスに直接接続される。アプリケーション・プロセッ
サ・インタフェースの機能はワークステーションによっ
て実行される。RISC/6000の場合、システム・
バスはマイクロチャネルであり、クラスタ制御装置がワ
ークステーション内のスロットに直接挿入できる。この
構成では、アレイをロード/アンロードするのと同一の
バス上に入出力装置(DASD、SCSI、およびディ
スプレイ・インタフェース)を配置する。そのため、並
列アレイがリアルタイム・イメージ生成や処理など入出
力中心のタスクに使用できる。他のバス・システム(V
MEバス、ヒューチャーバスなど)を使用するワークス
テーションでは、ゲートウェイ・インタフェースを使用
する。そのようなモジュールは、市場で容易に入手可能
である。これらの最小規模システムでは、特定の数のク
ラスタ間で単一のクラスタ制御装置を共用でき、クラス
タ・シンクロナイザもアプリケーション・プロセッサ・
インタフェースも必要でない。
【0240】MILアビオニクス・アプリケーション
は、ワークステーションとサイズは同程度かもしれない
が、異なるインタフェースが必要である。通常の軍事状
況とはどのようなものか考えていただきたい。既存のプ
ラットフォームを追加の処理機能で拡張しなければなら
ないが、資金の都合で処理システムを完全に再設計する
ことはできない。このため、本発明ではAPAPアレイ
にスマート・メモリ補助プロセッサを接続する。この場
合、ホストにはメモリに見える特殊アプリケーション・
プログラム・インタフェース(API)が提供される。
そうすると、ホスト・メモリにアドレスされるデータ
は、クラスタ制御装置を介してアレイまで移動される。
その後メモリに書込みを行うと、アプリケーション・プ
ログラム・インタフェースによってそれが検出され、コ
マンドと解釈され、その結果、アクセレレータはメモリ
・マップされた補助プロセッサに見えるようになる。
【0241】大規模システムは、ホスト接続構成として
もスタンドアロン構成としても開発できる。ホスト接続
システムでは、図20に示す構成が有用である。ホスト
は入出力を実行し、アプリケーション・プログラム・イ
ンタフェースはディスパッチされたタスク・マネージャ
として作用する。しかし、特別の状況でも大規模スタン
ドアロン・システムが可能である。たとえば、データベ
ース探索システムは、ホストを不要にし、あらゆるクラ
スタのマイクロチャネルにDASDを接続するととも
に、複数のアプリケーション・プログラム・インタフェ
ースを、PMEにスレーブ接続されたバス・マスタとし
て使用する。
【0242】外部入出力を備えたジッパ・アレイ・イン
タフェース:本発明のジッパは、高速入出力接続方式を
提供するものであり、2つのアレイ・ノード間にスイッ
チを配置することによって実現される。このスイッチに
より、アレイとの並列通信が可能になる。高速入出力
は、アレイ・リングの1つのエッジに沿って実施され、
Xリング、Yリング、Wリング、Zリングへの大規模な
ジッパとして機能する。この高速入出力に「ジッパ接
続」という名前が付けられている。ネットワークとの間
でデータを転送できるようにしながら、スイッチ遅延を
追加するだけでプロセッサ間のデータ転送を行う方法
は、他に例のないロード技術である。この切替え方式は
Xバス、Yバス、Wバス、Zバスによって作成されたリ
ング・トポロジーに影響を及ぼすことはなく、特殊サポ
ート・ハードウェアにより、処理要素がデータを処理ま
たは経路指定している間にジッパ動作が実行できるよう
になる。
【0243】大規模並列システムとの間でデータを高速
にやり取りできれば、システム全体の性能は大幅に改善
される。プロセッサの数やアレイ・ネットワークの次元
を減らさずに高速入出力を実施する本発明の方法は、大
規模並列環境の分野では例がないと本発明者等は考えて
いる。
【0244】修正ハイパーキューブ配列を拡張すると、
リング内にリングを備えたトポロジーが可能になる。外
部入出力へのインタフェースをサポートするときは、リ
ングのいずれかまたはすべてを論理的に破壊することが
できる。次いで、破壊されたリングの2つの端部を、外
部入出力バスに接続することができる。リングを破壊す
るのは論理的な動作なので、一定の時間間隔で規則的な
PME間通信が可能であり、同時に他の時間間隔で入出
力が可能になる。修正ハイパーキューブ内のあるレベル
のリングを破壊するこのプロセスにより、リングは入出
力の目的で効果的に「ジップ解除」される。高速入出力
「ジッパ」は、アレイへの別のインタフェースを提供す
る。このジッパは、修正ハイパーキューブの1〜n個の
エッジ上に存在でき、アレイの複数の次元への並列入
力、またはアレイの複数の次元への同報通信のいずれか
をサポートできる。アレイとの間でのその後のデータ転
送は、ジッパに直接接続された2つのノード間で交互に
行うことができる。この入出力手法は他に例がなく、こ
の方法により、特定のアプリケーション要件を満たす様
々なジッパ・サイズが開発できる。たとえば、大規模密
プロセッサ360と称する、図7に示す特定の構成で
は、ZバスおよびWバスのジッパがMCAバスに接続さ
れる。この手法では、行列転置時間が最適化され、プロ
セッサの特定のアプリケーション要件が満たされる。
「ジッパ」構造についての詳細は、同時出願された"APA
P I/O Zipper Connection"と題する米国特許を参照され
たい。ジッパを図16に示す。
【0245】構成と、プログラムが個々の処理要素との
間でデータおよびプログラムをやり取りする必要とに応
じて、ジッパのサイズを変えることができる。入出力ジ
ッパの実速度は、接続されたリングの数と、PMEバス
幅と、PMEクロック速度を掛けて2で割った値にほぼ
等しい(この除算により、受信PME時間にデータが転
送できる。入出力ジッパはn個の場所のどこにでもデー
タを送信できるので、入出力の争奪がアレイ全体で完全
に吸収される)。PME転送速度が5MB/秒で、ジッ
パ上に64個のリングを備え、2つのノードのインタリ
ーブを使用する既存の技術では、320MB/秒のアレ
イ転送速度が可能である(図16の典型的なジッパ構成
を参照)。図16は、高速入出力、すなわち、アレイへ
の別のインタフェースとして存在するいわゆる「ジッパ
接続」700、710を示している。このジッパは、ア
レイ751、752、753、754内の複数のノード
で複数の方向770、780、790、751、75
5、757で同報通信バス720、730、740、7
50上に接続することにより、ハイパーキューブ・ネッ
トワークの1つのエッジ700または2つのエッジ70
0、710上に存在できる。
【0246】今日のMCAバスは、毎秒80〜160M
Bの転送速度をサポートするので、単純モードまたは非
インタリーブ・モードの単一ジッパに非常に適してい
る。ただし、実際の転送速度にはチャネル・オーバヘッ
ドがあるので、効率はそれよりもいくらか下がる。これ
よりも入出力要件がはるかに厳しいシステムには、複数
のジッパおよびMCAバスを使用することができる。デ
ータベース・マシンに特徴的な、ノードまたはクラスタ
と結合された大規模な外部記憶域をサポートするプロセ
ッサにとって、これらの技術は重要であると思われる。
このような入出力拡張能力は、まったくこのようなマシ
ン特有のものであり、従来、大規模並列プロセッサや従
来のシングル・プロセッサや粗並列マシンには組み込ま
れていなかった。
【0247】アレイ・ディレクタ・アーキテクチャ:本
発明の大規模並列システムは、多重プロセッサ・ノード
のノード構成要素、ノード・クラスタ、およびクラスタ
にすでにパッケージされたPMEのアレイから構成され
ている。これらのパッケージ・システムを制御するた
め、本発明では、ハードウェア制御装置により大規模並
列処理環境でプロセッサ・メモリ要素(PME)アレイ
制御装置機能全体を実行する、システム・アレイ・ディ
レクタを提供する。アレイ・ディレクタは、アプリケー
ション・インタフェース、クラスタ・シンクロナイザ、
および通常はクラスタ制御装置という3つの機能領域か
ら構成されている。アレイ・ディレクタは、同報通信バ
スおよび本発明のジッパ接続を使ってデータおよびコマ
ンドをすべてのPMEに送信して、PMEアレイを総合
的に制御する。アレイ・ディレクタは、ハードウェアと
の相互作用によりオペレーティング・システムのシェル
としての役割を果す、ソフトウェア・システムとして機
能する。アレイ・ディレクタは、この役割を果す際に、
アプリケーション・インタフェースからコマンドを受信
し、適切なアレイ命令およびハードウェア・シーケンス
を発行して、指定のタスクを実行する。アレイ・ディレ
クタの主な機能は、PMEに命令を連続的に送り、最適
のシーケンスでデータを経路指定することにより、通信
量を最大に、衝突を最小に保つことである。
【0248】図7に示したAPAPコンピュータ・シス
テムを、図13により詳細に示してある。図13は、図
14および図15ならびに図19および図20に示すよ
うに、制御装置またはアレイ制御装置として機能できる
アレイ・ディレクタを示している。図13に示すこのア
レイ・ディレクタ610は、n個の同一のアレイ・クラ
スタ665、670、680、690と、512個のP
MEのクラスタ用のアレイ・ディレクタ610と、アプ
リケーション・プロセッサ600用のアプリケーション
・プロセッサ・インタフェース630とから成る典型的
な構成のAPAPの好ましい実施例として示してある。
クラスタ・シンクロナイザ650は、クラスタ制御装置
640に必要なシーケンスを提供し、クラスタ・シンク
ロナイザ650とクラスタ制御装置640とで「アレイ
・ディレクタ」610を構成している。アプリケーショ
ン・プロセッサ・インタフェース630は、ホスト・プ
ロセッサ600およびテスト/デバッグ・ワークステー
ションをサポートする。1つまたは複数のホストに接続
されたAPAP装置では、アレイ・ディレクタ610
は、ユーザとPMEのアレイの間のインタフェースとし
て働く。スタンドアロン並列処理マシンとして機能する
APAPでは、アレイ・ディレクタ610は、ホスト装
置となり、したがって装置入出力活動に関与するように
なる。
【0249】アレイ・ディレクタ610は、次の4つの
機能領域から構成されている(図13の機能ブロック図
参照)。 1.アプリケーション・プロセッサ・インタフェース
(API)600 2.クラスタ・シンクロナイザ(CS)650(クラス
タの8×8アレイ) 3.クラスタ制御装置(CC)640(ノードの8×1
アレイ) 4.高速入出力(ジッパ接続)620
【0250】アプリケーション・プロセッサ・インタフ
ェース(API)630:接続モードで動作するとき
は、各ホストごとにそれぞれ1つのアプリケーション・
プロセッサ・インタフェース600が使用される。アプ
リケーション・プロセッサ・インタフェース600は、
着信データ・ストリームを監視して、アレイ・クラスタ
665、670、680、690への命令はどれか、お
よび高速入出力(ジッパ)620用のデータはどれかを
決定する。スタンドアロン・モードでは、アプリケーシ
ョン・プロセッサ・インタフェース630は、一次ユー
ザ・プログラム・ホストとして働く。
【0251】これらの各種要件をサポートするために、
アプリケーション・プロセッサ・インタフェース630
は、アレイ・ディレクタ610内の唯一のプロセッサ
と、APIプログラムおよびコマンドの専用記憶域とを
備えている。ホストから受信される命令は、APIサブ
ルーチンの実行、追加機能のAPIメモリへのロード、
または新規ソフトウェアのCCメモリおよびPMEメモ
リへのロードを要求できる。ソフトウェアの概要の節で
述べたように、アプリケーション・プロセッサ・インタ
フェース630にロードされる初期プログラムを介し
て、これらの各種の要求を一部のユーザだけに制限する
ことができる。すなわち、ロードされるオペレーティン
グ・プログラムによって、提供されるサポートの種類が
決まる。このサポートは、アプリケーション・プロセッ
サ・インタフェース630の性能機能に適合するように
調節可能である。したがって、管理され十分テストされ
たサービスを必要とする複数のユーザ、または特定のア
プリケーションに対してピーク性能を実現したい個々の
ユーザのニーズに合わせてAPAPをさらに調節するこ
とができる。
【0252】アプリケーション・プロセッサ・インタフ
ェース630はまた、入出力ジッパとの間の経路の管理
を行う。接続モードのホスト・システムまたはスタンド
アロン・モードのデバイスから受け取ったデータは、ア
レイに転送される。この種の動作が開始される前に、入
出力を管理するアレイ内のPMEが開始される。MIM
Dモードで動作するPMEは、高速割込み機能と、標準
ソフトウェアまたはこの転送用の特殊機能を使用でき、
SIMDモードで動作するPMEには、詳細な制御命令
を提供する必要がある。入出力ジッパから送られたデー
タには、これとほぼ逆の調節が必要である。MIMDモ
ードで動作するPMEは、高速直列・インタフェースを
介してアプリケーション・プロセッサ・インタフェース
630に信号を送り、アプリケーション・プロセッサ・
インタフェース630からの応答を待つ必要があり、一
方SIMDモードのPMEはすべてアプリケーション・
プロセッサ・インタフェース630と既に同期している
ため、データをただちに出力することができる。システ
ムでモードの切替えが可能なので、プログラムをアプリ
ケーションに合わせて調節できる他に例を見ない能力が
提供される。
【0253】クラスタ・シンクロナイザ(CS)65
0:クラスタ・シンクロナイザ650は、アプリケーシ
ョン・プロセッサ・インタフェース630とクラスタ制
御装置640の間のブリッジを提供する。クラスタ・シ
ンクロナイザ650は、アプリケーション・プロセッサ
・インタフェース63の出力をFIFOスタックに格納
し、クラスタ制御装置640から返される状況(並列入
力肯定応答と高速シリアル・バス・データの両方)を監
視して、開始する必要がある所望のルーチンまたは動作
をクラスタ制御装置640に適時に提供する。クラスタ
・シンクロナイザ650は、クラスタ内で様々なクラス
タ制御装置640および様々なPMEをサポートする機
能を提供し、アレイをサブセットに分割できるようにす
る。これを実行するときは、アレイを区分した後、所望
の動作を選択的に転送するように関連クラスタ制御装置
640に指令する。クラスタ・シンクロナイザ650の
主な機能は、オーバヘッド時間が最小限になるか、また
はPME実行時間の中に埋まってしまうように、すべて
のクラスタを動作させ、かつ編成することである。以
上、A−SIMD構成でクラスタ・シンクロナイザ65
0を使用することが特に好ましい理由について説明し
た。
【0254】クラスタ制御装置(CC)640:クラス
タ制御装置640は、アレイ・クラスタ665中の1組
のノード用のBCI605と相互接続する(1リング当
たり8個のノードを備えた4次元修正ハイパーキューブ
の場合、これは、クラスタ制御装置640が8×8ノー
ド・アレイの64個のBCI605に接続され、512
個のPMEを制御していることを示す。やはり8×8ア
レイのそのようなクラスタが64個あると、32768
個のPMEを備えた完全なシステムとなる)。クラスタ
制御装置640は、MIMDモードで動作する際、クラ
スタ・シンクロナイザ650から供給されたコマンドお
よびデータをBCI並列ポートに送信し、クラスタ・シ
ンクロナイザ650に肯定応答データを返す。SIMD
モードでは、インタフェースは同期的に動作し、ステッ
プごとの肯定応答は必要でない。クラスタ制御装置64
0はまた、高速直列ポートを管理および監視して、ノー
ド内のPMEがサービスをいつ要求するかを決定する。
そのような要求は、高速シリアル・インタフェースから
の生データが状況ディスプレイ・インタフェースに使用
可能な間に、クラスタ・シンクロナイザ650に渡され
る。クラスタ制御装置640は、標準速度のシリアル・
インタフェースを介して、クラスタ内の特定のノードへ
のインタフェースをクラスタ・シンクロナイザ650に
提供する。
【0255】SIMDモードでは、クラスタ制御装置6
40は、同報通信バス上のすべてのPMEに命令または
アドレスを送るよう指令される。SIMDモードのと
き、クラスタ制御装置640は、40ナノ秒ごとにすべ
てのPME16ビット命令をディスパッチできる。PM
Eに固有命令のグループを同報通信することにより、エ
ミュレートされた命令セットが形成される。
【0256】MIMDモードのとき、クラスタ制御装置
640は、endop信号を待ち、該信号を受信後、P
MEに新規命令を発行する。MIMDモードの概念は、
PMEに常駐する固有命令でマイクロルーチンの文字列
を構築することである。これらの文字列をまとめて、エ
ミュレートされた命令を形成することができ、かつこれ
らのエミュレートされた命令を組み合わせて、サービス
/キャンド・ルーチンまたはライブラリ関数を作成する
ことができる。
【0257】SIMD/MIMD(SIMIMD)モー
ドでは、クラスタ制御装置640が、SIMDモードの
場合と同様に命令を発行し、一定のPMEからのend
op信号があるかどうかを検査する。MIMDモードの
PMEは、同報通信命令に応答せず、これらの指定され
た動作を継続する。独特の状況標識が、クラスタ制御装
置640がこの動作を管理し、その後の命令をいつどこ
に提供するかを決定するのを助ける。
【0258】オペレーショナル・ソフトウェア・レベ
ル:本明細書では、各種ハードウェア構成要素によって
実行されるサービスについての詳細な説明を行うため
に、オペレーショナル・ソフトウェア・レベルの概要を
示す。
【0259】一般的に使用されるコンピュータ・システ
ムはオペレーティング・システムを有する。大部分の大
規模MIMDマシンでは比較的完全なオペレーティング
・システム・カーネルを備えねばならない。このような
マシンでは、ワークステーション・クラスのCPUチッ
プがMachなどのカーネルを実行する。オペレーティ
ング・システム・カーネルは、メッセージ引渡しまたは
メモリ・コヒーレンシをサポートする。SIMDモデル
に基づく他の大規模並列システムはアレイ中に知能をほ
とんどもたない。アレイ中に「プログラム・カウンタ」
がないので、ローカル側で実行されるプログラムはな
い。すべての命令は同報通信される。
【0260】クラスタ・アレイの基礎として本発明のP
MEを使用したシステムでは、各チップ、すなわちノー
ドにオペレーティング・システムは必要でない。本発明
では、各処理要素(PME)内に、上位レベルで呼び出
すことができる演算または通信あるいはまたはその両方
用の重要関数のライブラリを提供する。特定の1組のP
MEをそれぞれ設定するため、SIMD型の命令がアレ
イに同報通信される。そうすると、これらのPMEは、
完全MIMDモードでこれらのライブラリ関数の1つま
たは複数を実行することができる。さらに、各PMEに
は、PMEが通信を動的に処理できるようにする、基本
割込みハンドラおよび通信ルーチンが常駐している。既
存のMIMDマシンと異なり、APAP構造ではPME
メモリにプログラム全体を含める必要はない。本質的に
シリアルであるそのようなコードすべての代わりに、ク
ラスタ制御装置640がある。したがって、(通常は)
90%が空間に関係し10%が時間に関係するそのよう
なコードを、SIMDモードでPMEのアレイに同報通
信することができる。真に並列な内部ループだけがPM
Eに動的に分配される。これらのループは、他の「ライ
ブラリ」ルーチンの場合と同様、開始時にMIMDモー
ドとなる。このため、単一プログラム複数データ型のプ
ログラム・モデルが使用できるようになる。これは、同
一のプログラムが、組込み同期化コードとともに各PM
Eノードにロードされ、ローカルPMEで実行される場
合に使用される。設計パラメータが各種リンク上で使用
可能な帯域幅に影響を及ぼし、システム経路がプログラ
ムによって構成可能なので、ターゲット・ネットワーク
上で高帯域幅リンクが使用でき、しかもオフチップ型の
PME間リンクの動的区画が特定の経路上に提供できる
帯域幅を、特定のアプリケーションのニーズを満たすよ
うに広げることができる。チップから出るリンクは直接
相互に連係され、外部論理は必要でない。リンクが十分
あり、それらを他のどのリンクに接続できるかについて
既定の制約がないので、システムは様々な相互接続トポ
ロジーを持つことができ、経路指定をプログラムによっ
て動的に行うことができる。
【0261】本システムによれば、既存のコンパイラお
よびコマンド解析機能を使用して、構成に基づいてホス
トまたはワークステーション上で実行可能な並列プログ
ラムを作成することができる。単一プログラム複数デー
タ・システム用の順次ソース・コードをプログラム解析
にかけて、依存性、データ、および制御を調べることに
より、プログラム・ソースを拡張して、呼出しグラフ、
依存性表、別名、用途表などを含めることができる。そ
の後、プログラム変換を行って、シーケンスの組合せま
たはパターン認識により明示的なコンパイラ指示を作成
して、並列性の度合いを拡大する、修正バージョンのプ
ログラムを作成する。次のステップは、メッセージ生成
を含む、データ割振りおよび区分ステップである。ここ
では、データ用途パターンが解析され、組み合わされる
要素が共通の索引付け、アドレス指定パターンを共用す
るように割振りが行われる。これらの動作によって、通
信サービスへの組込みプログラム・コンパイラ指示およ
び呼出しが提供される。この時点で、プログラムはレベ
ル区分ステップに移る。レベル区分ステップでは、プロ
グラムがアレイ、アレイ制御装置(アレイ・ディレクタ
610またはクラスタ制御装置640)、およびホスト
で実行される各部分に分離される。各アレイ部分は、セ
クション中で必要なメッセージ引渡し同期化機能とイン
タリーブされる。この時点で、レベル処理を進めること
ができる。ホスト・ソースが、アセンブリ・コンパイル
のためレベル・コンパイラ(FORTRAN)に渡され
る。制御装置ソースは、マイクロプロセッサ制御装置コ
ンパイラに渡され、単一のPMEで必要であるが、ライ
ブラリ呼出し中で使用可能でない項目が、コマンド解析
機能(FORTRANまたはC言語)に渡され、最適P
MEコードおよびアレイ制御装置コードを生成する中間
レベル言語表現にされる。PMEコードは、PMEマシ
ン・レベルで作成され、負荷をPMEメモリに渡すライ
ブラリ拡張部分を備える。実行中、PME並列プログラ
ムは、SPMD実行プロセスで、実行時ライブラリ・カ
ーネルから、すでにコード化されたアセンブリ・サービ
ス機能を呼び出すことができる。APAPは、ホストと
密または疎に結合された接続装置としてもスタンドアロ
ン・プロセッサとしても機能できるので、上位レベル・
ソフトウェア・モデルではいくつかの変形がある。ただ
し、それらの変形は、各種のアプリケーションを統合し
て、ただ1組の下位機能で3つのアプリケーションをす
べて満足できるようにする働きをする。まず接続バージ
ョンのソフトウェアについて述べ、次にスタンドアロン
・モードに必要な修正について説明する。
【0262】図20に示すように、APAPをホスト・
プロセッサに接続するシステムでは、ユーザの主プログ
ラムがホスト内に存在し、所望の負荷平衡を行うのに必
要なAPAP装置タスクおよび関連データを実行する。
ディスパッチされたタスクのプログラムをホスト内で解
釈するかアレイ・ディレクタ610内で解釈するかの選
択は、ユーザが行う。ホスト・レベルの解釈では、アレ
イ・ディレクタ610がアレイの密な制御を使用しない
インタリービング・ユーザの所で稼働できるようになる
が、APAP解釈では、制御分岐における待ち時間は最
短になるが、複数ユーザ管理タスクを実行するためのA
PAP時間を制限する傾向がある。これにより、APA
Pおよびホストを密または疎に結合できるという概念が
成立する。
【0263】極端な例を2つ挙げる。
【0264】1.浮動小数点ベクトル機構を備えた30
90クラスのマシンにAPAPを接続すると、APAP
内に圧縮形式のユーザ・データが格納できる。異なる疎
度特性を持つ2つのベクトルに対するベクトル演算を呼
び出したホスト・プログラムは、データを位置合せし直
して要素ごとに一致した対にし、結果をベクトル機構に
出力し、ベクトル機構からの回答を読み取り、最後にデ
ータを再構成して最終的疎データ形式にするようAPA
Pに命令を送る。APAPの各セグメントは、疎行列ビ
ット・マップを解釈および構築し、他のセクションは、
PME間でデータをどのように移動すればジッパに対し
て適切に位置合わせできるかを算出する。
【0265】2.APAPは、小規模空軍用コンピュー
タに接続すると、センサ・フュージョン処理と関連する
全作業負荷を実行することができる。この場合、ホスト
は、プロセスを開始し、受け取ったセンサ・データをA
PAPに送った後、結果を待つ。次に、アレイ・ディレ
クタは、プロセスの実行に必要なおそらく数十の処理ス
テップを通じて、PMEアレイをスケジューリングし順
序付ける必要がある。
【0266】APAPは、次の3つのレベルのユーザ制
御をサポートする。
【0267】1.カジュアル・ユーザ。このユーザは、
供給されたルーチンおよびライブラリ関数を使って作業
する。これらのルーチンは、ホスト・レベルまたはAP
Iレベルで維持され、ユーザが自分のプログラム内のサ
ブルーチン呼出しを使って呼び出すことができる。
【0268】2.カスタマイザ・ユーザ。このユーザ
は、アプリケーション・プロセッサ・インタフェース6
30内で動作し、アプリケーション・プロセッサ・イン
タフェースによって供給されるルーチン、またはクラス
タ制御装置もしくはPMEによって供給されるサービス
を直接呼び出す、特殊機能を書くことができる。
【0269】3.開発ユーザ。このユーザは、プログラ
ム・ロードおよび状況フィードバック用のAPIサービ
スに応じて、クラスタ制御装置またはPMEで実行され
るプログラムを作成する。
【0270】密または疎に結合されたシステムでこれら
3つのレベルのユーザを満足させるには、ハードウェア
/ソフトウェア制御タスクを区分する必要がある。
【0271】APIソフトウェア・タスク:アプリケー
ション・プロセッサ・インタフェース630は、受け取
ったデータの先頭のワードをテストして、そのデータ
を、アプリケーション・プロセッサ・インタフェースで
解釈すべきか、アレイ・ディレクタまたはPME内の記
憶域にロードすべきか、それとも入出力ジッパに引き渡
すべきかを決定することのできる、ソフトウェア・サー
ビスを備えている。
【0272】データを解釈すべき場合、アプリケーショ
ン・プロセッサ・インタフェース630は必要な動作を
決定し、機能を呼び出す。もっとも一般的な種類の動作
は、クラスタ制御装置640への(かつ、間接的にはク
ラスタ制御装置640への)API書込みの結果として
実行される機能の実行をアレイに要求することである。
クラスタ・シンクロナイザ650/クラスタ制御装置6
40に書き込まれる実際のデータは、一般に、ホストか
らアプリケーション・プロセッサ・インタフェース63
0に渡されるパラメータに基づいて、APIオペレーシ
ョナル・ルーチンによって構築される。クラスタ・シン
クロナイザ650/クラスタ制御装置640に送らたデ
ータは、ノードBCIを介してPMEに転送される。
【0273】データは、API記憶域、CC記憶域、P
MEメモリのいずれかにロードできる。さらに、PME
メモリにロードされるデータは、入出力ジッパまたはノ
ードBSIを介してロードすることができる。データを
APIメモリに格納すべき場合、着信バスが、読み取ら
れた後、記憶域に書き込まれる。クラスタ制御装置64
0を宛先とするデータも同様に、読み取られた後、CC
メモリに書き込まれる。最後に、PMEメモリ用のデー
タは(この場合、通常は新規または追加のMIMDプロ
グラム)、クラスタ・シンクロナイザ650/クラスタ
制御装置640/ノードBSIを介してすべてのPME
または特定のPMEに送り、あるいは選択的再分配のた
めに入出力ジッパを介してPMEのサブセットに送るこ
とができる。
【0274】入出力ジッパにデータを送るとき、PME
MIMDプログラムが最終宛先を決定できるようにす
るインライン・コマンドを、データの前に置くことがで
きる。APIサービス機能の呼出しをデータの前に置い
て、MIMD開始またはSIMD伝送を実行することも
できる。
【0275】APIプログラムは、ホスト・インタフェ
ースを介して受け取ったサービス要求に応答するだけで
なく、PMEからの要求にも応答する。そのような要求
は、高速直列ポート上で生成され、クラスタ制御装置6
40/クラスタ・シンクロナイザ650の組合せを介し
て送られる。この種の要求によって、APIプログラム
は、PMEの要求を直接実行するか、あるいは標準速度
直列ポートを介してPMEにアクセスし、サービス要求
に関してデータをさらに修飾するかどうかを決定するこ
とができる。
【0276】PMEソフトウェア:ソフトウェア・プラ
ンには、以下のものが含まれる。 ・複雑な動作および入出力管理用のPME常駐サービス
・ルーチン(すなわち、「拡張ISA」)の生成。 ・制御データおよびパラメータ・データを作成し、BC
Iバスを介してPMEに渡す、制御装置が実行するサブ
ルーチンの定義および開発。これらのサブルーチンは以
下のことを行う。 1.1組のPMEに、分配されたオブジェクトに対する
演算を実行させる。 2.PMEアレイとシステム・バスの相互作用のための
入出力データ管理および同期化サービスを提供する。 3.プロセッサ・メモリの初期プログラム・ロード、プ
ログラム・オーバレイ、およびプログラム・タスク管理
を提供する。 ・ホスト・レベル・プログラム用のデータ割振りサポー
ト・サービスの開発。 ・アセンブラ、シミュレータ、ならびにハードウェア・
モニタおよびデバッグ・ワークステーションを含むプロ
グラミング・サポート・システムの開発。
【0277】本発明者等は、軍用センサ・フュージョ
ン、最適化、イメージ変換、米国郵便光学式文字認識、
およびFBI指紋突合せアプリケーションの調査に基づ
き、ベクトル・コマンドおよびアレイ・コマンド(たと
えば、BLAS呼出し)を使ってプログラミングされた
並列プロセッサが有効であるとの結論を得た。基礎プロ
グラミング・モデルは、今日の技術で実現可能なPME
アレイの特性に合致しなければならない。具体的には、
以下のとおりである。 ・PMEは、独立のプログラム記憶式プロセッサとする
ことができる。 ・アレイは数千のPMEを含むことができ、密並列性に
適している。 ・PME間ネットワークは、総合帯域幅が非常に大き
く、「論理直径」が小さい。 ・しかし、ネットワーク接続式マイクロプロセッサMI
MD標準により、各PMEはメモリ制限を受ける。
【0278】MIMD並列プロセッサに対する従来のプ
ログラミングでは、タスク・ディスパッチ手法が使用さ
れている。このような手法では、各PMEが大規模なプ
ログラムの一部にアクセスする必要がある。この特性
と、ハードウェアの非共用メモリ特性のために、重要な
問題に関してはPMEメモリが大量に使用される。した
がって、本発明では、「非同期SIMD」(A−SIM
D)型処理と称する新規のプログラミング・モデルを目
標とする。この点に関しては、1991年11月27日
出願の米国特許出願第798788号を参照されたい。
この出願を、本明細書に組み込む。
【0279】本発明のAPAP設計のA−SIDプログ
ラミングとは、PMEのグループが、SIMDモデルの
場合と同様に、それに同報通信されたコマンドによって
指示を受けることを意味する。同報通信コマンドは、各
PME内でMIMD機能の実行を開始する。この実行に
は、PME内でのデータ従属分岐およびアドレス指定、
ならびに他のPMEまたはBCIとの入出力にもとづく
同期化が必要となることがある。通常、PMEは、BC
Iからの次のコマンドを読み取ることにより、処理を完
了し同期化する。
【0280】A−SIMD手法には、MIMD動作モー
ドとSIMD動作モードの両方が含まれる。この手法で
はコマンド実行時間に対する実際の時間制限がないの
で、データ転送時に同期化され無限に実行されるPME
動作が開始できる。そのような機能は、データ・フィル
タリング、DSP、およびシストリック動作においてき
わめて有効である(これらは、BCI割込みまたはシリ
アル制御バス上のコマンドによって終了できる)。SI
MD動作は、MIMDモード・コマンドを含まないA−
SIMD制御ストリームから生じる。そのような制御ス
トリームは、任意のPME固有命令を含むことができ
る。これらの命令は、PMEの命令解読論理回路に直接
送られる。PME命令取出しをなくすと、データ依存分
岐を伴わないタスクの性能モードが高まる。
【0281】(ハードウェア機能によってサポートされ
る)このプログラミング・モデルを拡張して、PMEの
アレイを独立したセクションに分割できるようになる。
別々のA−SIMDコマンド・ストリームが各セクショ
ンを制御する。本発明者等の調査によれば、当該プログ
ラムが、パイプライン・データ処理に適した別々のフェ
ーズ(すなわち、入力、入力バッファリング、複数の処
理ステップ、および出力フォーマット化)に分割される
ことが分かっている。密並列性は、セクション内のn個
のプロセッサ・メモリをプログラム・フェーズに適用す
ることによって生成される。アプリケーションに疎区分
を適用すると、MIMDに適した小規模な反復タスク、
またはSIMD処理に適したメモリ帯域幅制限タスクが
見つかることが多い。本発明では、従来の技術を使用し
てMIMD部分をプログラミングし、残りのフェーズ
を、ベクトル化コマンドでコード化され、アレイ制御装
置によって順序付けされたA−SIMDセクションとし
てプログラミングする。これにより、大規模な制御装置
メモリがプログラム記憶域となる。セクション当たりの
PMEの数を変えて、作業負荷のバランスを取ることが
できる。ディスパッチされるタスク・サイズを変える
と、BCIバス帯域幅を制御要件に合わせて調整でき
る。
【0282】このプログラミング・モデルではまた、デ
ータ要素をPMEに割り振ることも考慮している。この
手法では、PME間でデータ要素が均等に分配される。
ソフトウェアの初期バージョンでは、これはプログラマ
またはソフトウェアによって実行されることになる。本
発明者等は、この問題にIBM並列化コンパイラ技術が
適用できると考えており、該技術の使用法を調査する予
定である。しかし、提供されるPME間帯域幅により、
この手法の重要性が低下する傾向がある。これによっ
て、データ割振りと入出力機構性能が連係される。
【0283】ハードウェアは、PMEがそのメモリから
のデータ転送を開始することを要求し、PMEプログラ
ムの関与しない、PMEメモリへの制御付き書込みをサ
ポートする。入力バッファ・アドレスおよび最大長を提
供することにより、受信側PMEで入力制御が行われ
る。PMEに対する入出力の結果バッファのオーバフロ
ーが発生すると、ハードウェアは受信側PMEに割り込
む。PME用に開発される下位入出力機能は、このサー
ビスに基づく。本発明では、隣接PME間での生データ
の移動と、PME間でのアドレスされたデータの移動が
いずれもサポートされる。後者の機能は、回線交換およ
び蓄積交換機構に依存する。割込みアドレスおよび転送
動作は、性能にとって重要である。本発明では、この動
作をサポートするようにハードウェアおよびソフトウェ
アを最適化している。1ワード・バッファを使うと、ア
ドレス・ヘッダの受信時に割込みが発生する。ターゲッ
トIDとローカルIDの比較により、出力経路の選択が
可能になる。その後のデータ・ワードの転送は、回線交
換モードで行われる。より大規模なバッファを使ってこ
のプロセスをわずかに変更すると、蓄積交換機構が生成
される。
【0284】高性能PME間帯域幅のため、PMEアレ
イにデータ要素を慎重に格納することはかならずしも必
要でなく、またそうすることがかならずしも望ましいわ
けではない。PME間に分散されたベクトル・データ要
素を移動する場合について考えてみたい。本発明のアー
キテクチャでは、アドレス・ヘッダなしでデータを送信
できるので、非常に高速の入出力が可能となる。しか
し、多くのアプリケーションでは、1方向の移動に適す
るようにデータ構造を最適化すると、直交方向でのデー
タの移動が遅くなることが分かった。そのような場合の
時間損失は通常、ネットワーク内でデータをランダムに
経路指定する平均時間に近くなる。したがって、(デー
タを整列するのではなく)データを逐次的またはランダ
ムに格納した方が、平均処理時間が短いアプリケーショ
ンができる。
【0285】同期化により平均アクセス時間を利用でき
るアプリケーションが多い(たとえば、PDE緩和プロ
セスは、隣接プロセスからデータを獲得し、したがって
少なくとも4つの入出力動作に対するアクセスを平均化
できる)。散乱/集合や行/列演算などベクトル・プロ
セスおよびアレイ・プロセスに適用可能な因子を検討し
て、荒っぽい強制データ割振りがアプリケーションに適
していることに気付くユーザが多いと考えられる。しか
し、アプリケーション特性が特定のデータ割振りパター
ンを強制する傾向がある(シフト方向の必須同期化やバ
イアス利用など)ことを示す例もある。この特性につい
ては、開発されるツールおよび技術で、データ格納の手
動調整、あるいは単純な非最適データ割振りをサポート
する必要がある(本発明では、ベクトル化ホスト・プロ
グラムのほぼ透過性のポートをMPPに提供するため
に、ホスト・レベル・マクロによる非最適データ割振り
をサポートする。ユーザは、ハードウェア・モニタ・ワ
ークステーションによって、得られる性能を調べること
ができる)。
【0286】なお、標準ピボット演算によるガウス消去
では、列ではなく行のシフトが必要である。列が高速シ
フト方向になるようにデータを配列することによって得
られる性能の差は2:1を超える。そうしたとしても、
バスと特定の関係になるように行を整列しても利益はな
い。
【0287】図21は、一般的なソフトウェア開発およ
び使用環境を示している。プログラムの実行がホストと
モニタのどちらからでも制御できるので、ホスト・アプ
リケーション・プロセッサは省略可能である。さらに、
アレイ制御装置の代りにモニタを使用した方が効果のあ
る場合もある。この環境は、実MPPハードウェアまた
はシミュレートされたMPPハードウェア上でのプログ
ラム実行をサポートする。モニタはシナリオ駆動式なの
で、テスト操作およびデバッグ操作を行う開発者は、任
意のレベルの抽象度で効果的な動作を可能にする手順を
作成することができる。図22に、MPP内でサポート
されるハードウェアのレベルと、これらのレベルに対す
るユーザ・インタフェースを示す。
【0288】MPP用の可能なアプリケーション・プロ
グラミング技術が2つあると本発明者等は考えている。
もっともプログラマ集約的でない手法では、アプリケー
ションをベクトル化された高位言語で書く。この場合、
ユーザが、当該問題ではデータの格納が調整されないと
思う場合は、コンパイル時サービスを使って、PMEア
レイにデータを割り振る。アプリケーションは、PME
アレイ上で解釈および実行するために制御装置に渡され
る、BLASなどのベクトル呼出しを使用する。ホスト
とPMEアレイの間でデータを移動するときは、独特な
呼出しが使用される。要するに、ユーザは、MPPがデ
ータをどのように編成または処理したかを認識する必要
がない。この種のアプリケーションのために次の2つの
最適化技術がサポートされる。
【0289】1.データ割振り表を作成することによっ
てデータ割振りを修正すると、プログラムはデータ格納
を強制できるようになる。
【0290】2.アレイ制御装置によって実行される付
加ベクトル・コマンドを生成すると、副次機能の調整
(すなわち、ガウス消去を単一の演算として呼び出すこ
と)が可能になる。
【0291】また、このプロセッサは本節の冒頭で参照
したような特殊アプリケーションに適用できると本発明
者等は考えている。その場合、アプリケーションに合わ
せて調整したコードを使用する。しかし、そのようなア
プリケーションでも、調整の度合いは、特定のタスクが
そのアプリケーションにとってどれほど重要かによって
決まる。この状況では、SIMDモード、MIMDモー
ド、またはA−SIMDモードに個別に適合されたタス
クが必要になると思われる。これらのプログラムは、以
下の組合せを使用する。
【0292】1.アレイ制御装置内のエミュレータ機能
に渡されるPME固有命令のシーケンス。エミュレータ
は、命令およびそのパラメータをその1組のPMEに同
報通信する。このSIMDモードのPMEは、命令を解
読機能に渡し、メモリ取出し動作をシミュレートする。
【0293】2.入出力と同期化できる密な内部ループ
は、PME固有のISAプログラムを使用する。それら
のループは、SIMDモードの変更から開始した後、M
IMDモードで連続的に実行される(^RETURN^命
令を介してSIMDモードに戻るオプションが存在す
る)。
【0294】3.ベクトル化コマンド・セットで書かれ
たより複雑なプログラムは、PME固有機能を呼び出し
たアレイ制御装置中でサブルーチンを実行する。たとえ
ば、PME上に順次ロードされるベクトルに対してBL
AS^SAXPY^コマンドを実行する、単純なアレイ制
御装置プログラムは、PME内で、以下の動作を行うシ
ーケンスを開始する。 a.プロセッサIDと同報通信^incx^値および^X
_addr^との比較により、必要なx要素を持つPM
Eを使用可能にする。 b.連続PMEへの書込みにより、x値を圧縮する。 c.同報通信データから、y要素を持つPMEのアドレ
スを算出する。 d.圧縮されたxデータをyPMEに送る。 e.x値を受け取ったPME内で単精度浮動小数点演算
を実行し、演算を完了する。
【0295】最後に、SAXPYの例は、ベクトル化ア
プリケーション・プログラム実行の別の態様を示してい
る。主要なステップは、アプリケーション・プロセッサ
・インタフェース630で実行され、オプティマイザと
製品開発者のどちらがプログラミングを行ってもよい。
通常、ベクトル化アプリケーションでは、このレベルo
コードを組み込まずに呼び出して使用する。これらのス
テップは、C言語コードまたはFORTRANコードと
して書かれ、メモリにマップされた読取りまたは書込み
を使用して、BCIバスを介してPMEアレイを制御す
る。そのようなプログラムは、PMEアレイを、API
プログラムへのリターンによって同期化される一連のM
IMDステップとして操作する。単精度浮動小数点ルー
チンなどの重要でないステップは、カスタマイザまたは
製品開発者が開発する。これらの動作は、固有PME
ISAを使ってコード化され、マシン特性に合わせて調
整される。一般に、これは製品開発者の領域である。な
ぜなら、このレベルでのコード化、テスト、および最適
化には、完全な製品開発ツール・セットを使用する必要
があるからである。
【0296】APAPは、アプリケーションを逐次FO
RTRANで書くことができる。このための経路はまっ
たく別のものになる。図23に、使用可能なFORTA
RNコンパイラの概要を示す。第1ステップで、FOR
TRANコンパイラが、既存の並列化コンパイラの一部
を使って、プログラム依存性を開発する。ソースとこれ
らの表が、APAP MMPおよびソースの特徴付けに
よって並列性を強化するプロセスへの入力となる。
【0297】このMMPは、非共用メモリ・マシンなの
で、ローカル・メモリ用のPMEと大域メモリ用のPM
Eの間でデータを割り振る。超高速データ転送時間が非
常に速く、かつネットワーク帯域幅が広いために、デー
タ割振りの時間的影響が軽減されるが、それでもMMP
はアドレスされる。本発明の手法では、メモリの一部を
大域メモリとして扱い、ソフトウェア・サービス機能を
使用する。また、第2の方法で依存性情報を使って、デ
ータ割振りを実行することも可能である。ソースを複数
の逐次プログラムに変換する最終ステップは、レベル区
分ステップによって実施される。この区分ステップは、
米国防総省高等研究企画庁(DAPRA)の資金供与で
行われているFortran3作業に類似している。コ
ンパイルにおける最後のプロセスは、個々の機能レベル
すべてにおける実行可能コードの生成である。PMEの
場合、これは、既存のコンパイラ・システム上でのコー
ド生成プログラムのプログラミングによって行われる。
ホスト・コード・コンパイラおよびAPIコード・コン
パイラは、該当するマシンを対象としたコードを生成す
る。
【0298】PMEは、それ自体のメモリからMIMD
ソフトウェアを実行できる。一般に、複数のPMEがそ
れぞれまったく異なるプログラムを実行することはな
く、同一の小規模のプログラムを非同期的に実行してい
る。次の3つの基本型ソフトウェアが考えられる。ただ
し、この設計手法では、APAPがそれらの手法だけに
限定されるものではない。
【0299】1.専用エミュレーション機能により、P
MEアレイはLINPACKやVPSSなど標準ユーザ
・ライブラリで提供される1組のサービスをエミュレー
トする。そのようなエミュレーション・パッケージで
は、PMEアレイがその複数組のデバイスを使って、通
常のベクトル呼出しで必要な動作を1つ実行できる。こ
の種のエミュレーション・パッケージは、ベクトル処理
装置に接続すると、ある動作用にベクトル装置を使用し
ながら、内部で他の動作を実行することができる。
【0300】2.PMEアレイの並列性は、PMEにお
いて新規の1組の演算およびサービス機能を提供する1
組のソフトウェアを操作することによって利用できる。
この1組のプリミティブは、カスタマイズを行うユーザ
が自分のアプリケーションの作成に使用するコードであ
る。軍用プラットフォームに接続されたAPAP上でセ
ンサ・フュージョンを実行する直前の例では、そのよう
な手法を使用している。カスタマイザは、供給された1
組の関数名を使って、Kalman Filter、Track Optimum A
ssignment、Threat Assessmentを実行するルーチンを書
く。このアプリケーションは、一連のAPI呼出しであ
り、呼出しを行うたびに、PMEセットが開始され、P
MEアレイ内に格納されたデータに対して行列乗算など
の基本演算が実行される。
【0301】3.性能目標またはアプリケーション・ニ
ーズを考慮した効果的な方法が存在しない場合、PME
内でカスタム・ソフトウェアを開発し実行することがで
きる。この具体的な例として「ソート」がある。データ
を分類するための方法は多数存在するが、それらの目的
は常にプロセスおよびプログラムをマシン・アーキテク
チャに合うように調整することである。修正ハイパーキ
ューブは、バッチャ・ソートによく適している。しか
し、このソートでは、きわめて短い比較サイクルと比較
すべき特定の要素を決定するために、大規模な計算が必
要である。図19のコンピュータ・プログラムは、1P
ME当たり1つの要素を備えた、バッチャ・ソート10
00を実行するためのPMEプログラムの簡単な例11
00を示している。プログラム記述の各行が、3〜6個
のPMEマシン・レベル命令に拡張され、すべてのPM
EがMIMDモードでプログラムを実行することにな
る。プログラム同期化は入出力ステートメントによって
管理される。このプログラムは全く簡単な形で1PME
当たり複数のデータ要素に拡張され、非常に大規模な並
列ソートに拡張される。
【0302】CC記憶域の内容:CC記憶域のデータ
は、PMEアレイによって、2つの方法のうちのどちら
かで使用される。PMEがSIMDモードで動作してい
るとき、一連の命令をクラスタ制御装置640が取り出
し、ノードBCIに渡し、それによってアプリケーショ
ン・プロセッサ・インタフェース630とクラスタ・シ
ンクロナイザ650の負荷を軽減させることができる。
あるいはまた、PME障害再構成ソフトウェア、PME
診断、およびおそらく変換ルーチンなどの頻繁には必要
とされない機能を、CCメモリに格納することができ
る。その場合、そのような機能を、動作中のPME M
IMDプログラムが要求することができ、あるいはAP
Iプログラム指示の要求に応じてPMEに移すことがで
きる。
【0303】8方向修正ハイパーキューブのパッケージ
ング:本発明のパッケージング技術では、単一チップに
パッケージし、N次元修正ハイパーキューブ構成で整列
させた、8個のPMEを使用する。このチップ・レベル
のパッケージまたはアレイ・ノードが、APAP設計に
おける最小の構成単位である。これらのノードはさら
に、8×8アレイにパッケージされる。このアレイで
は、+-Xおよび+-Yがアレイまたはクラスタ内でリン
グを構成し、+-Wおよび+-Zが隣接クラスタまで延び
る。クラスタがまとまってアレイを構成する。このステ
ップによって、アレイのデータ用および制御用のワイヤ
数が大幅に削減される。WバスおよびZバスは、隣接ク
ラスタと接続され、WリングおよびZリングを形成し
て、様々なサイズの完成したアレイを総合的に接続す
る。大規模並列システムは、これらのクラスタ構成単位
から構成され、PMEの大規模なアレイを形成する。A
PAPはクラスタの8×8アレイから成り、各クラスタ
はそれ自体の制御装置を有する。すべての制御装置は、
アレイ・ディレクタ610によって同期化される。
【0304】配線可能性とトポロジーのトレードオフが
多数考慮されているが、これらを考慮したとしても、本
発明者等は、この点に関して例示する構成を優先する。
本明細書で開示する概念は、X次元およびY次元をクラ
スタ・パッケージング・レベル内に保ち、Wバス接続お
よびZバス接続をすべての隣接クラスタに分配するとい
う利点を有する。本明細書に記載する技術の実施後、定
義されたトポロジーの固有の特性を維持しながら、製品
の配線可能性と製造可能性が得られる。
【0305】ここで使用する概念は、様々なパッケージ
ング・レベルでトポロジーを混合し、突き合わせ、修正
して、ワイヤ数に関して所望の結果を得ることである。
【0306】ハイパーキューブの実際の修正の度合いを
定義するための方法については、上記の米国特許出願第
07/698866号を参照されたい。この好ましい実
施例では、説明を簡単にするため、2つのパッケージン
グ・レベルについて説明する。これは拡張可能である。
【0307】第1のステップは、図4および図12に示
すチップ設計またはチップ・パッケージである。8つの
処理要素と、それらに結合されたメモリおよび通信論理
回路が、ノードとして定義された単一のチップに包含さ
れている。内部構成はバイナリ・ハイパーキューブまた
は2次ハイパーキューブと分類され、あらゆるPMEが
2つの隣接PMEと接続されている。図10のPME間
通信図、特に500、510、520、530、54
0、550、560、570を参照されたい。
【0308】第2のステップでは、ノードが8×8アレ
イとして構成され、クラスタを形成する。完全装備のマ
シンは、クラスタの8×8アレイで構成され、最大容量
のPME32768個を提供する。これらの4096個
のノードが接続されて、ノード間通信がプログラミング
可能な、8次ハイパーキューブ・ネットワークを形成す
る。このように、様々な指定経路がプログラミング可能
なため、様々な長さのメッセージを伝送するための柔軟
性が増す。これらのプログラミング可能性機能により、
メッセージ長の違いだけでなく、アルゴリズム最適化に
対処することもできる。
【0309】このパッケージング概念は、各クラスタの
オフページ・ワイヤ数を大幅に削減することを目的とし
ている。この概念では、各ノード825が合計512の
PME用の8つの処理要素を持つ、ノードの8×8アレ
イ820として定義されるクラスタを使用し、次にクラ
スタ内でXリングおよびYリングを制限し、最後にWバ
スおよびZバスをすべてのクラスタまで延ばす。物理的
な姿は、64個の小さな球830から成る球構成80
0、810を頭に描くとよい。将来のパッケージングの
姿については、フル・アップ・パッケージング技術を示
す図17を参照されたい。ここでは、クラスタ内でXリ
ングおよびYリング800が制限され、WバスおよびZ
バスがすべてのクラスタ810へ延びている。物理的な
姿は、64個の小さな球830から成る球構成を頭に描
くとよい。
【0310】単一のノードの、隣接するXPMEおよび
YPMEへの実際の接続は、同一のクラスタ内に存在す
る。図18に示すように、ZバスおよびWバスを隣接ク
ラスタまで延ばすと、配線が節約できる。図18には、
疎接続4次元ハイパーキューブまたはトーラス900、
905、910、915として構成できる1組のチップ
またはノードも示されている。8つの外部ポートのそれ
ぞれを+X、+Y、+Z、+W、−X、−Y、−Z、−
W950、975で表すことにする。その上で、+Xポ
ートと−Xポートを接続すると、リングが構築できる。
さらに、対応する+Yポートと−Yを相互接続すると、
そのようなリングをm個相互接続して、リングのリング
を形成することができる。このレベルの構造をクラスタ
と呼ぶ。この構造は、512個のPMEを備え、複数の
サイズのシステム用の構成単位となる。図18にそのよ
うな接続を2つ(950、975)示す。
【0311】デスクサイドMPP用アプリケーション:
ワークステーションにおけるデスクサイドMPPは、以
下のものを含む複数のアプリケーション領域で効果的に
適用できる。
【0312】1.数値計算中心のプロセスに依存する小
規模な実働タスク。米国郵政公社では、機械印刷された
封筒のファックス・イメージを受け入れた後、郵便番号
を見つけ読み取ることができるプロセッサを必要として
いる。このプロセスは、すべての地域分類機構で必要で
あり、繰返しの激しい数値計算中心のプロセスの例であ
る。本発明では、必要なプログラムのサンプルのAPL
言語バージョンを実施した。これらのモデルは、MPP
上での作業の実行に使用されるベクトルおよびアレイ・
プロセスをエミュレートする。このテストに基づき、こ
のタスクがこの処理アーキテクチャにみごとに適合する
ことが分かった。
【0313】2.解析者が、直前の出力または予期され
るニーズの結果として、データ変換のシーケンスを要求
するタスク。米国防地図庁の例では、衛星イメージが画
素ごとに変換および平滑化され、他の座標系に変換され
る。そのような状況では、土地の標高および勾配の結
果、イメージの変換パラメータが地域ごとに異なる。し
たがって、解析者は固定制御点を追加し、変換を再処理
する必要がある。科学的シミュレーション結果を利用す
る際にユーザがほぼリアルタイムの回転または認識可能
な変更を必要とするときも、同様なニーズが発生する。
【0314】3.MPPの実働バージョン用のプログラ
ム開発では、ワークステーション・サイズのMPPを使
用する。プロセッサとネットワークの性能の解析が必要
な調整プロセスについて考えてみる。そのようなタスク
は、マシンと解析者の対話作業である。このタスクで
は、マシンが遊休状態であり、解析者が作業している時
間が必要になる。これをスーパーコンピュータ上で実行
すると、たいへんコストがかかる。しかし、手頃な価格
のワークステーションMPPにスーパーコンピュータM
PPと同じ(ただし、規模の小さな)特性を与えると、
遠隔プロセッサへのアクセスに関するプログラマの非効
率性が解決されるので、コストが帳消しになり、テスト
およびデバッグ・プロセスが容易になる。
【0315】図24は、ワークステーション・アクセレ
レータの図である。ワークステーション・アクセレレー
タは、RISC/6000モデル530と同サイズの格
納装置を使用する。それぞれ完全なクラスタを備えた、
2つのスイング・アウト・ゲートが示されている。2つ
のクラスタを組み合わせると、5GOPSの固定小数点
性能および530MFLOPSの処理能力および約10
0MBの入出力帯域幅がアレイに与えられる。この装置
は、従来のどんなアプリケーションにも適している。こ
の装置は、量産を行い、ホストRISC/6000を含
めれば、旧式技術を使った匹敵するマシンを無駄にせず
に、高性能ワークステーションに匹敵する価値をもつよ
うになる。
【0316】AWACSセンサ・フュージョンの説明:
軍用環境は、拡張数値計算プロセッサの必要性を示す一
連の例を提供する。
【0317】目標とされる雑音の多い環境での通信に
は、ICNIAシステムで使用されているようなディジ
タル・コード化通信が必要である。伝送用のデータをコ
ード化し、受信後に情報を回復するプロセスは、数値計
算中心のプロセスである。このタスクは、特殊信号処理
モジュールで実行できるが、通信コード化がバースト単
位の活動を表す状況では、特殊モジュールはたいてい遊
休状態になる。MPPを使用すると、複数のそのような
タスクを単一のモジュールに割り振って、重量、電力、
体積、およびコストを節減することができる。
【0318】センサ・データのフュージョンは、MPP
を追加することによって得られた計算能力で既存のプラ
ットフォームを増強する、特に明確な例を提供する。空
軍E3 AWACSでは、プラットフォーム上に5個以
上のセンサがあるが、現在のところ使用可能なすべての
データを統合してトラックを生成する方法はない。さら
に、既存の生成トラックは、そのサンプリング特性のた
めに品質がたいへん悪い。したがって、フュージョンを
使用して実効サンプル速度を高める必要がある。
【0319】本発明者等は、このセンサ・フュージョン
問題を詳細に調査しており、検証可能で効果的な分析解
決を提案できるが、AWACSデータ・プロセッサで使
用可能な計算能力ではこの方法には不十分である。図2
5に、従来のトラック・フュージョン・プロセスを示
す。この従来のトラック・フュージョン・プロセスは、
個々のプロセスにエラーが発生する傾向があり、最終的
なマージでエラーが除去されずに収集されてしまう傾向
があるという欠陥がある。このプロセスにはまた、待ち
時間がとても長いという特徴がある。これは、もっとも
低速のセンサが実行を終了するまでマージが完了しない
からである。図26に、この手法による改良点と、それ
によって得られる数値計算問題を示す。本発明者等は、
NPハード問題を解くことはできないが、解を近似する
良い方法を開発した。そのアプリケーションについての
詳細は、本発明者等が他の特許出願に記載している。該
アプリケーションは、512 i860(80860)
プロセッサを備えたインテル・タッチストーン(Intel
Touchstone)やIBMの科学研究用視覚化システム(Sc
ientific Visualization System)など様々なマシン上
で使用できるので、本明細書に記載するAPAP設計
と、これらの他のシステムの性能を大幅に上回る、たと
えば128000個のPMEとを使用する、MMPに適
したアプリケーションとして使用できる。アプリケーシ
ョンの実験によると、近似の品質がセンサ雑音のレベル
を下回り、したがってその応答がAWACSなどのアプ
リケーションに適用可能である。図27に、提案された
ラグランジュの還元n次元割当てアルゴリズムに関する
処理ループを示す。この問題は、周知の2次元割当て問
題の、非常に制御された繰返しを使用している。このア
ルゴリズムは、従来のセンサ・フュージョン処理で使用
されたものと同じである。
【0320】たとえば、図26以降に示す7組の観測値
にn次元アルゴリズムを適用し、還元プロセスの各パス
ごとに2次元割当てプロセスの繰返しが4回必要である
ものとする。そうすると、新規の8次元割当て問題で
は、2次元割当て問題を4000回繰り返す必要があ
る。AWACSの作業負荷は現在、マシン容量の約90
%である。フュージョンにはおそらく全容量の10%が
必要であるが、そのように小規模な容量でも、4000
倍にスケール・アップすると総利用率はAWACSの容
量の370倍になる。この作業負荷は既存のプロセッサ
の性能を超えているだけでなく、新しいMIL環境に適
合する既存の疎並列処理システム、または今後数年の間
に予想されるシステムでもぎりぎりである。アルゴリズ
ムにおいて1ステップ当たり平均して4回ではなく5回
の繰返しが必要な場合、仮説上のシステムの性能さえも
超えてしまう。逆に、MPP解法は、この計算能力を提
供でき、5回繰返しのレベルでもそれが可能である。
【0321】機械的パッケージング:図4および他の図
面に示すように、本発明の好ましいチップは、クワッド
フラットパック形式で構成される。したがって、チップ
をレンガ積みして、パッケージ内で様々な2次元構成お
よび3次元構成を形成することができる。8個以上のP
MEから成る1つのチップが、第1レベル・パッケージ
・モジュールである。同様に、単一のDRAMメモリ・
チップは、チップをパッケージするファウンドリの第1
レベル・パッケージ・モジュールである。しかし、クワ
ッドフラットパック形式では4方向の相互接続が可能に
なる。各接続は2地点間接続である(第1レベル・パッ
ケージの1つのチップは、ファウンドリのモジュールで
ある)。本発明では、この特徴により、本発明の性能目
標を実現するのに十分な規模のPEアレイが構築でき
る。実際には、3フィート、4フィート、ときには5フ
ィート離れた2地点間、すなわち多重プロセッサ・ノー
ド間でこれらのチップを接続することができ、なおかつ
光ファイバなしで適切な制御が可能である。
【0322】これは、モジュール上で必要な駆動/受信
回路にとって利益がある。本発明には、モジュール間を
デイジー・チェイン接続するバス・システムがないの
で、高性能を実現し、電力散逸を抑えることができる。
本発明ではノード間の同報通信を行うが、これを高性能
経路とする必要はない。大部分のデータ操作がノードで
行えるので、必要なデータ経路要件が少なくなってい
る。本発明の同報通信経路は基本的に、主として制御装
置経路指定ツールとして使用される。データ・ストリー
ムは、ZWXY通信経路システムに接続され、該システ
ム中を流れる。
【0323】本発明における電力散逸は、本発明の商用
ワークステーションでは1ノード・モジュール当たり
2.2Wである。したがって、空冷式パッケージングが
使用可能である。このため、本発明のシステムの電力要
件も妥当である。例示した本発明の電源システムでは、
サポートされるモジュールの数に1モジュール当たり約
2.5Wを掛ける。そのような5V電源は費用効果が非
常に高い。電力消費量については、驚くべきことに、本
を読むのに必要な明かりで消費される量より少ない電力
量で32個のマイクロコンピュータが稼働できる。
【0324】本発明の熱的設計は、このパッケージング
によって改善される。本発明では、高散逸部分と低散逸
部分が混ざることによる過熱点を避けている。これは、
組立コストに直接反映される。
【0325】本発明のシステムのコストは、カード上に
スーパースカラ・プロセッサを配置する手法に比べて非
常に魅力的である。本発明の1ドル当たり1部品タイプ
当たり1コネクタ当たり1W当たり1アセンブリ当たり
の性能レベルは卓越している。
【0326】さらに、本発明では、他の技術と同じ数の
パッケージング・レベルが必要でない。モジュール/カ
ード/バックプレーンおよびケーブルも必要でない。望
むならカード・レベルを省略することもできる。本発明
のワークステーション・モジュールに示すように、この
レンガ積み手法ではカード・レベルを省略した。
【0327】さらに、図示したように、ワークステーシ
ョン・モジュール内でレンガ積みした各ノード・ハウジ
ングは、図4に示すように、同一のチップ・ハウジング
内に複数の複製ダイを備えることさえできる。通常、空
冷パッケージ内には1つのダイを配置するが、複数チッ
プ・モジュール手法を使用すれば基板上に8つのダイが
配置可能である。したがって、32個以上のプロセッサ
を備えた夢の腕時計が実現でき、さらに他の多数のアプ
リケーションも可能である。パッケージングおよび電力
と柔軟性のおかげで、可能なアプリケーションの数は無
限になる。家庭では、制御可能な計器をすべて監視し、
非常に小さな部品との調整を図ることができる。エンジ
ン監視、ブレーキ調節などのために自動車でさかんに使
用されているチップはすべて、ハウジング内にモニタを
有することができる。さらに、ハイブリッド技術を用い
た同一の基板上に、完全にプログラマブルな機能および
メモリを備えた386個のマイクロプロセッサ・チップ
を(すべて1つのチップ内に)実装し、それを基板パッ
ケージのアレイ制御装置として使用することができる。
【0328】図4の制御システムからそれよりずっと大
規模なシステムまで、システムの多数の構成を示してき
た。ディップ内のチップ上に8個以上のPMEを備え、
SIMモジュールのように、標準DRAMメモリ・モジ
ュールに適合するピン・アレイを備えて、チップをパッ
ケージすることができるため、制御機構から、今日の既
存の技術でぎりぎりの15フレーム程度ではなく30フ
レームの反復率を有し、かつ1画素もしくは少数の画素
から成るノードの監視にプロセッサを割り当てることが
できる、壁面大のビデオ・ディスプレイに至るまで、無
限のアプリケーションが可能となる。本発明のブリック
ウォール(レンガ壁)クワッドフラットパックにより、
同一の部分を繰り返して複製することが容易になる。さ
らに、複製されたプロセッサは、実際には、プロセッサ
交換機能を備えたメモリである。メモリの一部を特定の
監視タスクに割り当て、別の部分(サイズはプログラム
で定義する)を、2地点間でアドレスされ、すべての機
能への同報通信機能を備える、大規模大域メモリとする
ことができる。
【0329】本発明の基本ワークステーション、スーパ
ーコンピュータ、制御装置、AWACSはすべて、本発
明の新技術を使用できるパッケージの例である。組込み
CPUチップおよび入出力機構を備えたメモリのアレイ
は、大規模並列アプリケーション、さらにはそれより限
られたアプリケーションのPMEとして機能する。パッ
ケージングおよびプログラミング上の柔軟性のために想
像力が膨らみ、本出願の技術を用いると、1つの部分を
多数の概念およびイメージに割り当てることができる。
【0330】軍用アビオニクス・アプリケーション:M
IL MPPを構築する際のコスト面の利点は、AWA
CSで特にはっきりしている。AWACSは、20年前
に開発された格納装置であり、従来のコア・メモリに代
わって新規技術のメモリ・モジュールが使用されるよう
になったため、空き空間が増えている。図28に、ラッ
クの空き空間に直接収納され、相互接続に既存のメモリ
・バスを使用する、MIL準拠の2つのクラスタ・シス
テムを示す。
【0331】AWACSの例は、空き空間が存在するた
めきわめて有利であるが、他のシステムでも空間を作成
することが可能である。通常、既存のメモリを小型のM
PPまたは分離MPPのゲートウェイで置き換えること
は容易である。そのような場合、4分の1クラスタおよ
びアダプタ・モジュールでは、8MBメモリと640M
IPが得られ、おそらく2つのスロットが使用される。
【0332】スーパーコンピュータ・アプリケーショ
ン:64クラスタMPPは13.6GFLOPのスーパ
ーコンピュータである。これは、図29に示すシステム
として構成できる。このシステムでは、図29に示すよ
うに、クラスタ・カード上にノード・チップをレンガ積
みして、コストおよびサイズ上の利点が大きいシステム
を構築することができる。システムにネットワーク交換
などの余分なチップを組み込むのは、コストがかさむの
で、そうする必要はない。
【0333】「ブリック・ウォール」チップによる本発
明の相互接続システムにより、システムを大規模DRA
Mメモリと同様に構築することができる。この相互接続
システムには、たとえばマイクロチャネル・バス・アダ
プタなどの、厳密なバス仕様に合致する定義済みのバス
・アダプタがある。各システムは、現在の多くのマイク
ロプロセッサに基づく他のシステムよりも電源システム
および冷却設計が小型になる。
【0334】大部分のスーパーコンピュータと異なり、
浮動小数点エミュレーション機能を有する本発明のこの
好ましいAPAPは、浮動小数点演算よりも整数演算
(164 GIPS)を行う時の方がはるかに高速であ
る。したがって、このプロセッサは、非常に文字または
整数処理中心のアプリケーションに使用すると、もっと
も効果的である。本発明では、前述の他のアプリケーシ
ョンに加えて、解決が必要な3つのプログラムの問題に
ついても検討した。日常生活にとってある種の「遠大な
課題」よりも重要な可能性のあるアプリケーションには
以下のものがある。
【0335】1.3090ベクトル・プロセッサは、非
常に高性能の浮動小数点演算装置を備えている。この装
置では、大部分のベクトル化浮動小数点装置と同様、密
ベクトルに対するパイプライン操作が必要である。非正
規疎行列(直交座標でなくビット・マップで記述される
行列)を多用するアプリケーションは、浮動小数点演算
装置の性能機能を浪費する。MPPは、当該データ用の
記憶域を提供し、その計算能力およびネットワーク帯域
幅を使って、計算を実行せずに密ベクトルを構築し、密
な結果を圧縮解除することにより、この問題を解決して
いる。ベクトル処理装置は、MPPによって供給され
る、密ベクトルに対する演算の連続した流れによってビ
ジー状態に保たれる。ベクトル機構の諸プロセスを同じ
速度で効果的に圧縮し圧縮解除できるようにMPPのサ
イズを設定すると、両方の装置を完全ビジー状態にする
ことができる。
【0336】2.本発明者等が考慮したもう1つのホス
ト接続システムは、FBI指紋突合せ問題に対する解決
策である。この場合、65個以上のクラスタを備えたマ
シンを考慮した。問題は、1時間に約6000の指紋を
指紋ヒストリのデータベース全体と突き合わせるにはど
うするかであった。大規模DASDと、MPPからホス
トへの接続機構の全帯域幅を使用すると、着信する指紋
に対しデータベース全体を約20分で突き合わせること
ができる。SIMDモード疎突合せ操作でMPPの約7
5%を使用すると、処理と、必要なスループット・レー
トとのバランスが取れる。その場合、A−SIMD処理
モードにあるマシンの15%が、疎なフィルタ操作を通
過する場合に、未知の指紋をファイルの指紋と突き合わ
せて詳細な検査を行うことにより、突合せを完了すると
本発明者等は推定している。この間、マシンの残りの部
分はMIMDであり、予備容量、作業待ち行列の管理、
および出力のフォーマット化に割り振られた。
【0337】3.MPPのデータベース操作への適用を
考慮した。この作業はきわめて予備的なものであるが、
適合性は良いと思われる。MPPの2つの態様がこの前
提を支持している。 a.クラスタ制御装置640とアプリケーション・プロ
セッサ・インタフェース630の接続はマイクロチャネ
ルである。したがって、クラスタ専用で、クラスタから
直接アクセスされるDASDを配置することができる。
1クラスタ当たり6台の640MBハード・ドライブを
備えた64クラスタ・システムは、246GBの記憶域
を提供する。さらに、このデータベース全体が10〜2
0秒で逐次的に探索できる。 b.データベースは一般に、逐次的に探索されない。そ
の代わり、多数のレベルのポインタを使用する。データ
ベースの索引付けは、クラスタ内で実施できる。DAS
Dの各バンクは、2.5GIPSの処理能力および32
MBの記憶域によってサポートされる。これは、インデ
ックスの探索および格納にとって十分である。インデッ
クスは現在、DASD内に格納されることが多いので、
性能が大幅に向上する。そのような手法を使用し、クラ
スタ・マイクロチャネルに接続されたSCSIインタフ
ェース上にDASDを分散させると、実質上無限のサイ
ズのデータベースが作成可能である。
【0338】図29に、APAPを使用して構築したス
ーパーコンピュータ・スケールのMMPを示す。この手
法では再び単位の複製が使用されているが、この場合は
複製されるのは、16個のクラスタを収容する格納装置
である。この複製手法の特定の利点は、システムをユー
ザのニーズに適合するようにスケーリングできることで
ある。
【0339】システム・アーキテクチャ:現在の好まし
い実施例で使用されるシステム・アーキテクチャの利点
は、ISAシステムが、APAPのプログラミングに携
わる多数のユーザに理解されることである。PME I
SAは、以下の表に示すデータ・フォーマットおよび命
令フォーマットから構成される。
【0340】データ・フォーマット:基本(オペラン
ド)サイズは16ビット・ワードである。PME記憶域
では、オペランドは統合ワード境界上に位置する。ワー
ド・オペランド・サイズだけでなく、16ビットの倍数
の他のオペランド・サイズも、追加機能をサポートする
のに使用できる。
【0341】オペランド長の範囲内で、オペランドのビ
ット位置に、0から始めて左から右に連続して番号を付
ける。上位ビットまたは最上位ビットを参照すると必
ず、1番左側のビット位置が参照される。下位ビットま
たは最下位ビットを参照すると必ず、1番右のビット位
置が参照される。
【0342】命令フォーマット:命令フォーマットの長
さは、16ビットまたは32ビットとすることができ
る。PME記憶域では、16ビット境界上に命令が位置
しなければならない。
【0343】表1に示す汎用命令フォーマットを使用す
る。通常、命令の最初の4ビットは、命令コードを定義
し、OPビットと呼ばれる。命令の定義を拡張するか、
または命令に適用される固有の条件を定義するために、
追加ビットが必要になる場合がある。これらのビットを
OPXビットと呼ぶ。
【表1】
【0344】すべてのフォーマットに共通するフィール
ドが1つある。このフィールドとその解釈は、以下のと
おりである。
【0345】ビット0〜3:命令コード−この命令コー
ドは、ときには命令コード拡張フィールドとともに、実
行すべき動作を定義する。
【0346】個々のフォーマットの詳細な図と、それら
のフィールドの解釈を以下の節に示す。命令によって
は、2つのフォーマットが組み合わされ、変種の命令を
形成しているものもある。これらは主として、命令のア
ドレス指定モードに関するものである。1例として、記
憶域間命令は、直接アドレス指定またはレジスタ・アド
レス指定に関係する形式を持つことがある。
【0347】RRフォーマット:レジスタ・レジスタ
(RR)フォーマットは、図30に示すように、2つの
汎用レジスタ・アドレスを提供し、長さ16ビットであ
る。
【0348】RRフォーマットは、命令コード・フィー
ルドの他に、次のフィールドを含んでいる。
【0349】ビット4〜7:レジスタ・アドレス1−R
Aフィールドは、16個の汎用レジスタのうちのどれ
を、オペランドまたは宛先、あるいはその両方として用
いるのかを指定するのに使用する。
【0350】ビット8〜11:0−ビット8が0の場
合、フォーマットがRRフォーマットまたはDAフォー
マットと定義され、ビット9〜11が0の場合は、動作
がレジスタ間動作と定義される(直接アドレス・フォー
マットの特殊な場合)。
【0351】ビット12〜15:レジスタ・アドレス2
−RBフィールドは、16個の汎用レジスタのうちのど
れをオペランドとして用いるかを指定するのに使用す
る。
【0352】DAフォーマット:直接アドレス(DA)
フォーマットは、図31に示すように、1つの汎用レジ
スタ・アドレスおよび1つの直接記憶域アドレスを提供
する。
【0353】DAフォーマットは、命令コード・フィー
ルドの他に、次のフィールドを含んでいる。
【0354】ビット4〜7:レジスタ・アドレス1−R
Aフィールドは、16個の汎用レジスタのうちのどれ
を、オペランドまたは宛先、あるいはその両方として用
いるのかを指定するのに使用する。
【0355】ビット8:0−ビット8が0の場合、動作
が直接アドレス動作またはレジスタ間動作と定義され
る。
【0356】ビット9〜15:直接記憶域アドレス−直
接記憶域アドレス・フィールドは、レベル固有記憶域ブ
ロックまたは共通記憶域ブロックへのアドレスとして使
用する。直接アドレス・フィールドのビット9〜11
は、直接アドレス形式を定義するため、非0でなければ
ならない。
【0357】RSフォーマット:レジスタ記憶域(R
R)フォーマットは、図32に示すように、1つの汎用
レジスタ・アドレスおよび間接記憶域アドレスを提供す
る。
【0358】RSフォーマットは、命令コード・フィー
ルドの他に、次のフィールドを含んでいる。
【0359】ビット4〜7:レジスタ・アドレス1−R
Aフィールドは、16個の汎用レジスタのうちのどれ
を、オペランドまたは宛先、あるいはその両方として用
いるのかを指定するのに使用する。
【0360】ビット8:1−このビットが1の場合、動
作がレジスタ記憶域動作と定義される。
【0361】ビット9〜11:レジスタ・データ−これ
らのビットは、RBフィールドによって指定されるレジ
スタの内容の修正に使う符号付きの値とみなされる。
【0362】ビット12〜15:レジスタ・アドレス2
−RBフィールドは、16個の汎用レジスタのうちのど
れをオペランドとして用いるかを指定するのに使用す
る。
【0363】RIフォーマット:レジスタ即値(RI)
フォーマットは、1つの汎用レジスタ・アドレスおよび
16ビットの即値データを提供する。RIフォーマット
は、図33に示すように、長さ32ビットである。
【0364】RIフォーマットは、命令コード・フィー
ルドの他に、次のフィールドを含んでいる。
【0365】ビット4〜7:レジスタ・アドレス1−R
Aフィールドは、16個の汎用レジスタのうちのどれ
を、オペランドまたは宛先、あるいはその両方として用
いるのかを指定するのに使用する。
【0366】ビット8:1−このビットが1の場合、動
作がレジスタ記憶域動作と定義される。
【0367】ビット9〜11:レジスタ・データ−これ
らのビットは、プログラム・カウンタの内容の修正に使
う符号付きの値とみなされる。通常、レジスタ即値フォ
ーマットではこのフィールドは、1の値をとる。
【0368】ビット12〜15:0−このフィールドが
0の場合、即値データ・フィールドを指す更新済みプロ
グラム・カウンタを、オペランドの記憶域アドレスとし
て使用することが指定される。
【0369】ビット16〜31:即値データ−このフィ
ールドは、レジスタ即値命令の16ビット即値データ・
オペランドとして機能する。
【0370】SSフォーマット:記憶域間(SS)フォ
ーマットは、2つの記憶域アドレスを提供する。このう
ち一方は明示的で、他方は暗示的である。暗示記憶域ア
ドレスは、汎用レジスタ1に入れられる。レジスタ1
は、命令の実行中に修正される。SS命令には、図34
に示すように、直接アドレス形式および記憶域アドレス
形式という2つの形式がある。
【0371】SSフォーマットは、命令コード・フィー
ルドの他に、次のフィールドを含んでいる。
【0372】ビット4〜7:命令拡張コード−OPXフ
ィールドは、命令コードとともに、実行すべき動作を定
義する。ビット4〜5は、ADDやSUBSTRACT
などの演算タイプを定義する。ビット6〜7は、繰上
り、桁あふれ、および条件コードの設定方法を制御す
る。ビット6=0のときは桁あふれが無視され、ビット
6=1のときは桁あふれが可能になる。ビット7=0の
ときは演算中のcarrystatが無視され、ビット
7=1のときは演算中にcarry statが含まれ
る。
【0373】ビット8:0−形式を直接アドレス形式と
定義する。1−形式を記憶域アドレス形式と定義する。
【0374】ビット9〜15:直接アドレス(直接アド
レス形式)−直接記憶域アドレス・フィールドは、レベ
ル固有記憶域ブロックまたは共通記憶域ブロックへのア
ドレスとして使用する。直接アドレス・フィールドのビ
ット9〜11は、直接アドレス形式を定義するため、非
0でなければならない。
【0375】ビット9〜11:レジスタ・デルタ(記憶
域アドレス形式)−これらのビットは、RBフィールド
によって指定されるレジスタの内容の修正に使う符号付
きの値とみなされる。
【0376】ビット12〜15:レジスタ・アドレス2
(記憶域アドレス形式)−RBフィールドは、16個の
汎用レジスタのうちのどれをオペランドの記憶域アドレ
スとして用いるかを指定するのに使用する。
【0377】SPCフォーマット1:特殊(SPC1)
フォーマットは、図35に示すように、1つの汎用レジ
スタ記憶域オペランド・アドレスを提供する。
【0378】SPC1フォーマットは、命令コード・フ
ィールドの他に、次のフィールドを含んでいる。
【0379】ビット4〜7:OP拡張−OPXフィール
ドは、命令コードを拡張するのに使用する。
【0380】ビット8:0または1−このビットが0の
場合、動作がレジスタ動作と定義される。このビットが
1の場合、動作がレジスタ記憶域動作と定義される。
【0381】ビット9〜11:命令長−これらのビット
は、オペランドの長さを16ビット・ワードで指定する
のに使う符号付きの値とみなされる。0の値は長さ0に
該当し、B^111^の値は長さ8に該当する。
【0382】ビット12〜15:レジスタ・アドレス2
−RBフィールドは、16個の汎用レジスタのうちのど
れをオペランドの記憶域アドレスとして用いるかを指定
するのに使用する。
【0383】SPCフォーマット2:特殊(SPC2)
フォーマットは、図36に示すように、1つの汎用レジ
スタ記憶域オペランド・アドレスを提供する。
【0384】SPC2は、命令コード・フィールドの他
に、次のフィールドを含んでいる。
【0385】ビット4〜7:レジスタ・アドレス1−R
Aフィールドは、16個の汎用レジスタのうちのどれを
オペランドまたは宛先、あるいはその両方として用いる
のかを指定するのに使用する。
【0386】ビット8〜11:OP拡張−OPXフィー
ルドは、命令コードを拡張するのに使用する。
【0387】ビット12〜15:レジスタ・アドレス2
−RBフィールドは、16個の汎用レジスタのうちのど
れをオペランドの記憶域アドレスとして用いるかを指定
するのに使用する。
【0388】命令セット・アーキテクチャの命令セット
には、下記の命令が含まれる。表2〜8は、PMEのハ
ードワイヤ式命令を示している。表2は、固定小数点演
算命令を示す。表3は、記憶域間命令を示す。表4は、
論理命令を示す。表5は、シフト命令を示す。表6は、
分岐命令を示す。表7は、状況切換え命令を示す。表8
は、入出力命令を示す。
【表2】
【表3】
【表4】
【表5】
【表6】
【表7】
【表8】
【0389】機能の要約: APAPマシンの位置付け:技術上CM−1とN−キュ
ーブの間にあると位置付けられると考えられる、本発明
の詳細な態様について説明してきた。CM−1では、本
発明のAPAPと同様に、処理要素に点設計を使用し、
基本チップ上で処理要素とメモリを組み合わせている。
しかし、CM−1では1ビット幅の直列プロセッサを使
用しているのに対し、APAPシリーズでは16ビット
幅のプロセッサを使用する。CMシリーズのマシンは、
1プロセッサ当たり4キロビットのメモリから始まり、
8キロビットまたは16キロビットまで成長している。
一方、本発明の最初のAPAPチップでは、32キロビ
ット×16ビットのメモリを提供している。CM−1お
よびその後継マシンは厳密にSIMDマシンであり、C
M−5はハイブリッド型である。この代わりに、本発明
のAPAPは、MIMD動作モードをSIMDモードと
共に効果的に使用している。本発明の並列16ビット幅
PMEは、N−キューブに向かって1歩近づいたものと
思えるかもしれないが、そう見るのは適当ではない。A
PAPは、N−キューブ型のマシンと異なり、メモリお
よび経路指定が処理要素から分離されていない。また、
APAPでは32キロビット×16ビットのPMEを実
現するが、N−キューブで実現されるのは4キロビット
×32ビット・プロセッサにすぎない。
【0390】上述のような表面的な類似点はあるが、A
PAP概念は、下記の点でCMおよびN−キューブ・シ
リーズとまったく異なる。
【0391】1.本発明のAPAPに組み込まれた修正
ハイパーキューブは、ハイパーキューブ・トポロジーと
比べてパッケージングおよびアドレス指定の点で顕著な
利点を有する新規の発明である。たとえば、第1の好ま
しい実施例における32KPME APAPは、ネット
ワーク直径が19論理ステップであり、透過性によっ
て、これを実効16論理ステップまで減らすことができ
ることに留意されたい。さらに、比較してみると、純粋
なハイパーキューブを使用し、すべてのPMEが8ステ
ップ経路を介してデータを送信する場合、8個のPME
のうち平均2個が活動状態となるが、残りはブロックさ
れて遅延する。
【0392】また、CM−1が純粋なハイパーキューブ
である場合に必要となる64Kハイパーキューブについ
て考えてみたい。その場合、各PMEには、他の16個
のPMEへのポートが必要であり、15の論理ステップ
のうちもっとも離れた2つのPME間でデータを経路指
定できることになる。すべてのPMEが平均距離で7ス
テップを転送しようとする場合、7個のPMEのうちの
2個が活動状態になる。しかし、CM−1では16次元
ハイパーキューブを使用しない。CM−1は、チップ上
の16個のノードをNEWSネットワークと相互接続し
てから、チップ内で1つのルータ機能を提供する。40
96個のルータを接続して12次元ハイパーキューブを
形成する。衝突がない場合、ハイブリッドの論理直径は
15であるが、16個のPMEがリンクを争奪するの
で、その実効直径はそれよりはるかに大きくなる。すな
わち、8ステップの移動がある場合、16個のプロセッ
サのうち2個だけが活動状態になる。これは、すべての
データ移動を完了するのに、4サイクルではなく8つの
完全なサイクルが必要なことを意味する。
【0393】N−キューブは、実際には純粋なハイパー
キューブを使用するが、現在はPME4096個しかサ
ポートせず、したがって12次元ハイパーキューブ(P
ME8192個の場合は13次元)を使用している。N
−キューブを16Kプロセッサに拡張し、APAPと同
じ処理データ幅を持つようにするには、ハードウェアを
4倍に増やし、各PMEルータへの接続ポートを25%
増加する必要がある。この結論を裏付ける確かなデータ
はないが、N−キューブ・アーキテクチャでは、16K
PMEマシンに達しないうちにコネクタ・ピンが不足
するように思われる。
【0394】2.APAPマシン内で主要なタスクを完
全に統合し分散できる性質は、明確な利点である。CM
シリーズおよびN−キューブ・シリーズのマシンについ
ての説明で述べたように、これらは、それぞれメッセー
ジ経路指定用と浮動小数点補助プロセッサ用に別々の装
置を持つ必要がある。APAPシステムでは、整数処
理、浮動小数点処理、メッセージ経路指定、および入出
力制御を単一点設計PMEとして組み合わせている。そ
して、この設計がチップ上で8回複製され、さらにチッ
プが4K回複製されて、アレイを形成する。これには次
のような利点がある。 a.1つのチップを使用するので、生産ランが最大規模
になり、システム要素コストが最低になる。 b.規則的なアーキテクチャにより、もっとも効果的な
プログラミング・システムが得られる。 c.ほぼすべてのチップ・ピンをプロセッサ間通信とい
う一般的な問題専用にできるので、MPP設計で重要な
制限因子となる傾向がある、チップ間入出力帯域幅が最
大になる。
【0395】3.APAPは、チップ技術の利得と、カ
スタム・チップ設計に対する資本投資を利用できる、独
自の設計能力をもつ。
【0396】浮動小数点性能の問題について考えてみた
い。DAXPY上でのAPAP PME性能は1FLO
P当たり約125サイクルになる。これとは対照的に、
^387補助プロセッサは約14サイクルであり、一方
CM−1のウェイテク・コプロセッサ(Weitec Coproce
ssor)は約6サイクルである。しかし、CMの場合、P
ME16個ごとに浮動小数点装置が1個しかなく、一方
N−キューブの場合はおそらく、各386プロセッサに
1個の387型チップが結合されている。本発明のAP
APは、16倍のPMEを有しており、したがって単一
ユニットの性能デルタ値をほぼ完全に補償することがで
きる。
【0397】さらに重要なことには、チップ内の8個の
APAP PMEが、現在技術的に可能な50Kゲート
から構築されている。メモリ・マクロが縮小されるにつ
れ、論理回路が使用できるゲートの数が増えてくる。ゲ
ートの増加分を拡張浮動小数点正規化に利用すれば、A
PAP浮動小数点性能は他の装置をはるかに超えること
ができるはずである。あるいはまた、カスタム設計手法
を使用してPME設計またはPMEサブセクション設計
を行って、マシン用に開発されるソフトウェアには影響
を与えずに全体性能を高めることができる。
【0398】本発明のAPAP設計は、将来の処理技術
の発展を利用できると本発明者等は考えている。これと
は対照的に、図1に示したようなシステムを使用する最
も類似したマシンであるCM−xやN−キューブは、行
き詰まっていると思われる従来の技術を利用するのに合
っていると思われる。
【0399】APAP概念の利点は、PMEのグループ
と結合されたDASDを使用できることである。このA
PAP機能と、ディスプレイおよび補助記憶装置を接続
できる能力は、PMEアレイの外部入出力ポートへのイ
ンタフェースとしてMCバスを選択した副産物である。
したがって、APAPシステムは、構成可能であり、P
S/2ユニットまたはRISC/6000ユニットと互
換性がある1組のユニットのいずれかから選択したカー
ド実装ハード・ドライブを備えることができる。さら
に、この機能は、追加の部品モジュールを設計しなくて
も使用できるはずである。ただし、この場合、使用しな
ければならないバックパネルおよび基本的格納装置の複
製の数は、APAPに必要な数よりも多くなる。
【0400】この簡単な比較は、限定を意図したもので
はなく、当業者に、前述の説明を検討し、上述の多数の
発明を用いて、大規模並列システムの技術を、プログラ
ミングが重要な問題でなくなり、そのようなシステムの
コストがはるかに低くなるときまでに進歩させるにはど
うすべきかを考えてもらうためのものである。本発明の
種類のシステムは、商業部門レベルの調達で手の届くコ
ストで製作できるので、少数の人だけでなく多数の人に
とって使用可能にすることができる。
【図面の簡単な説明】
【図1】従来の技術を利用した並列プロセッサ処理要素
を示す図である。
【図2】従来の技術を利用した並列プロセッサ処理要素
を示す図である。
【図3】本発明の新規チップ設計を表す、大規模並列プ
ロセッサの構成単位を示す図である。
【図4】本発明のチップ・シングル・ノード密並列プロ
セッサの好ましい実施例用の好ましいチップ物理クラス
タ・レイアウトを右側に示し、代替技術を左側に示す図
である。ここで、各チップは、CMOS DRAMメモ
リおよび論理回路を備え、5MIPSの性能を提供す
る、スケーリング可能な並列プロセッサ・チップであ
り、大規模並列システムの空冷式実施を可能にする。
【図5】本発明によるコンピュータ・プロセッサの機能
ブロック図である。
【図6】典型的なAPAP・コンピュータ・システム構
成を示す図である。
【図7】40ないし193840MIPSの性能のシス
テムを開発可能にする、PME要素の複製を使用したシ
ステム構築を例示する、本発明の密並列プロセッサ技術
のシステム概要を示す図である。
【図8】本発明による処理要素(PME)データ・フロ
ーおよびローカル・メモリ用のハードウェアを示す図で
ある。
【図9】PMEをバードワイヤ接続された汎用コンピュ
ータとして構成して、プログラム制御式浮動小数点演算
によって約5MIPSの固定小数点処理または0.4M
FLOPSを実現する、PMEデータ・フローを示す図
である。
【図10】本発明に従って使用できるPME間接続(バ
イナリ・ハイパーキューブ)およびデータ経路を示す図
である。
【図11】それぞれ単一の外部ポートを管理し、ネット
ワーク制御機能の分散を可能にするとともに、機能ハー
ドウェア・ポートのボトルネックをなくす、8個のPM
Eを有するチップまたはノード用のノード相互接続を示
す図である。
【図12】各PMEが、32Kワードのローカル・メモ
リを備える16ビット幅のプロセッサであり、制御装置
とすべての機構の間のインタフェースを提供する同報通
信ポート用の入出力ポート動作があり、外部ポートは、
チップ内および外部とのリング・トーラス接続が可能な
両方向2地点間インタフェースである、スケーリング可
能な並列プロセッサ・チップを示す図である。
【図13】好ましい実施例のアレイ・ディレクタを示す
図である。
【図14】クラスタのエッジをシステム・バス(図15
参照)に接続することにより、アレイのロードおよびア
ンロードを可能にする、クラスタ・アレイ結合との間の
システム・バスを示す図である。
【図15】処理要素部分との間のバスを示す図である。
図14および図15は、複数のシステム・バスをどのよ
うにして複数のクラスタでサポートするかを示してい
る。各クラスタは50〜57MBの帯域幅をサポートで
きる。
【図16】高速入出力接続用の「ジッパ接続」を示す図
である。
【図17】8次ハイパーキューブに適用される、本発明
によるパッケージング技術を示す、8次ハイパーキュー
ブ接続を示した図である。
【図18】ハイパーキューブにおける2つの独立したノ
ード接続を示す図である。
【図19】Bitonic Sortアルゴリズムを例
として示し、定義済みSIMD/MIMDプロセッサ・
システムの利点を示した図である。
【図20】1つのアプリケーション・プロセッサ・イン
タフェースを備える、ホストに接続された大規模システ
ムのシステム・ブロック図である。本発明が、複数のア
プリケーション・プロセッサ・インタフェースを使用す
るスタンドアロン・システムで使用できるという了解の
もとにこの図を見ることもできる。図20のこのような
インタフェースは、すべてのクラスタまたは多数のクラ
スタ上でDASD/グラフィックスをサポートする。ワ
ークステーション・アクセレレータは、エミュレーショ
ンで示されるホスト、アプリケーション・プロセッサ・
インタフェース(API)、およびクラスタ・シンクロ
ナイザ(CS)を不要にすることができる。クラスタ・
シンクロナイザは、すべての例に必要ではない。
【図21】本発明のシステムのソフトウェア開発環境を
示す図である。プログラムは、ホスト・アプリケーショ
ン・プロセッサによって作成し、該プロセッサから実行
することができる。プログラムとマシン・デバッグの両
方が、図21および図24に示すワークステーション・
ベースのコンソールでサポートされる。これらのサービ
スはどちらも、実MMPまたはシミュレートされたMM
P上で動作するアプリケーションをサポートし、ワーク
ステーション・レベルでも、スーパーコンピュータ形式
のAPAP MMP上でもアプリケーションが開発でき
るようにする。この共通ソフトウェア環境によって、プ
ログラミング可能性および分散型使用が拡張される。
【図22】この新規システムによって使用可能となるプ
ログラミング・レベルを示す図である。様々なユーザが
多かれ少なかれ詳細な知識を必要とするので、これらの
ニーズをサポートするソフトウェア・システムが開発さ
れる。最上位レベルでは、アーキテクチャが実際はMM
Pであることをユーザが知る必要はない。このシステム
は、並列FORTRANなど、プログラムの区分用の既
存の言語システムと併用できる。
【図23】上述のAPAP構成によって提供されるMM
P用の並列FORTRANコンパイラ・システムを示す
図である。順次−並列コンパイラ・システムは、既存の
コンパイラ機能と新規データ割振り機能の組合せを使っ
て、FORTRAN Dなどの区分プログラムを使用で
きるようにする。
【図24】APAPがワークステーション・アクセレレ
ータになる、APAPのワークステーション・アプリケ
ーションを示す図である。装置は、RISC/6000
モデル530と同じ物理サイズであるが、このモデルは
現在、図のバス拡張モジュールを介してワークステーシ
ョンに接続されたMMPを備えていることに留意された
い。
【図25】AWACS軍用または商業アプリケーション
用のAPAP MMPモジュール用のアプリケーション
を示す図である。これは、この図に示す従来の分散型セ
ンサ・フュージョンの問題を効率的に処理する1つの方
法である。ここでは、最近傍、2次元線割当て(Mun
kes)、確率的データ関連付け、複数仮説試験などの
周知のアルゴリズムにより従来の方法で実行されるが、
これらは現在、図26および図27に示す改良された方
法で実施できる。
【図26】システムがどのようにn次元割当て問題をリ
アルタイムで処理できるようにするかを示す図である。
【図27】APAPを使用した、n次元割当て問題の処
理フローを示す図である。
【図28】ユニットがどのようにして8〜10個の拡張
SEM−Eモジュールだけを使って424MFLOPS
または5120MIPSを実現し、わずか約0.017
3で特殊信号プロセッサ・モジュールの性能に匹敵す
る性能を提供することができるかを示す、上述のシステ
ム格納装置によって提供される拡張ユニットを示す図で
ある。このシステムは、毎秒20億命令(GOPS)を
実行する1024個の並列プロセッサを備えたSIMD
大規模マシンとなることができ、かつ1024個の追加
プロセッサおよび32MBの追加記憶域を増設すること
によって拡張することができる。
【図29】スーパーコンピュータのAPAPパッケージ
ングを示す図である。これは、他のシステムの性能に匹
敵するが、他のシステムよりフットプリントがはるかに
小さい大規模システムである。これは、より小規模なマ
シンに使用されるような格納装置内でAPAPクラスタ
を複製することによって構築できる。
【図30】レジスタ・レジスタ(RR)フォーマットを
示す図である。
【図31】直接アドレス(DA)フォーマットを示す図
である。
【図32】レジスタ記憶域(RS)フォーマットを示す
図である。
【図33】レジスタ即値(RI)フォーマットを示す図
である。
【図34】記憶域間(SS)フォーマットを示す図であ
る。
【図35】特殊(SPC1)フォーマットを示す図であ
る。
【図36】特殊(SPC2)フォーマットを示す図であ
る。
【符号の説明】
200 アプリケーション・プロセッサ 240 テスト/デバッグ・デバイス 250 アレイ・ディレクタ 300 シングル・プロセッサ・ユニット 301 32Kハーフワード・メモリ 302 16ビット・プロセッサ 310 ネットワーク・ノード 313 ネットワーク・ルータ 314 信号入出力機構 405 ARレジスタ 406 マルチプレクサ 420 メモリ 460 演算論理機構 630 アプリケーション・プロセッサ・インタフェー
ス 640 クラスタ制御装置 650 クラスタ・シンクロナイザ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クライヴ・アラン・コリンズ アメリカ合衆国12601、ニューヨーク州ポ ーキープシー、モンロー・ドライブ 9 (72)発明者 マイケル・チャールズ・ダップ アメリカ合衆国13760、ニューヨーク州エ ンドウェル、アイヴォン・アベニュー 1130 (72)発明者 ジェームズ・ウォレン・ディーフェンデル ファー アメリカ合衆国13827、ニューヨーク州オ ウェゴ、フロント・ストリート 396 (72)発明者 ビリー・ジャック・ノウルズ アメリカ合衆国12401、ニューヨーク州キ ングストン、ハーリー・アベニュー 72 (72)発明者 デイヴィッド・ブルース・ロルフ アメリカ合衆国12491、ニューヨーク州ウ ェスト・ハリー、パイン・トリー・ロード 24

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】大規模並列マシンとして編成された複数の
    ノードを含み、前記ノードがn次元修正ハイパーキュー
    ブとして相互接続されている、コンピュータ・システ
    ム。
  2. 【請求項2】各ノードに多重プロセッサ・メモリ・コン
    ピュータ・システムを有し、n次元修正ハイパーキュー
    ブとして相互接続されたノードを備える大規模並列マシ
    ンとして編成されたノード・アレイをもたらす、請求項
    1に記載のコンピュータ・システム。
  3. 【請求項3】大規模並列マシンとして編成され、内部通
    信経路および外部通信経路に沿ったプロセッサ・メモリ
    要素間の並列通信経路を備える前記ノードが、n次元修
    正ハイパーキューブとして相互接続されている、請求項
    1に記載のコンピュータ・システム。
  4. 【請求項4】n次元修正ハイパーキューブとして相互接
    続されたノードを備える大規模並列マシンとして編成さ
    れ、各プロセッサ・メモリ要素が、チップ・ピンを備え
    たチップ上のノードのプロセッサ・メモリ要素間でデー
    タの引渡しを行えるように統合され、前記チップ・ピン
    の大部分がプロセッサ間入出力機能に使用される、請求
    項1に記載のコンピュータ・システム。
  5. 【請求項5】ノードが、n次元修正ハイパーキューブと
    して接続された処理アレイを形成する1組のノードの一
    部であり、修正ハイパーキューブが、2次元の場合はト
    ーラスを形成し、3次元の場合は、エッジ表面が対向表
    面に折り返された直交接続格子を形成する、請求項1に
    記載のコンピュータ・システム。
  6. 【請求項6】ノードが、n次元修正ハイパーキューブと
    して接続された処理アレイを形成する1組のノードの一
    部であり、修正ハイパーキューブが、4次元以上の場
    合、「単純接続」、「編組」、「交差接続」、または
    「完全接続」できるリングとして相互接続されたm1
    1組のノードをもたらし、トーラスを形成するm2組の
    リング内の等しい各ノードを接続することによってm2
    個のリングがリンクでき、i次元修正ハイパーキューブ
    からi+1次元修正ハイパーキューブが形成され、m
    i+1組のi次元ハイパーキューブが、等しいmiレベルの
    ノードがすべて相互接続されたリングを備える、請求項
    1に記載のコンピュータ・システム。
  7. 【請求項7】ノードが、2n個のプロセッサ・メモリ要
    素と同報通信/制御インタフェースとを備え、修正ハイ
    パーキューブ内の1組のリングの結合ネットワーク相互
    接続、および修正ハイパーキューブ内の1組のリングを
    相互接続するプロセッサ・メモリ要素のグループ化をも
    たらすことを特徴とする、請求項1に記載のコンピュー
    タ・システム。
  8. 【請求項8】コンピューティング・システムが、複数の
    ノードNを備える非バイナリ・ハイパーキューブを形成
    し、ここでN=b**nであり、bおよびnが正の整数で
    かつb>2であり、各ノードが数体系基底bに従って番
    号付けされた識別用アドレスを有し、各ノードを、その
    ノードのアドレスと1つの桁だけ異なるアドレスを持つ
    ノードに相互接続する手段があり、1ノード当たりの接
    続数がmu*1ogb(N)であって、ここでmu=2
    dであり、bが偶数の場合は1≦d≦b/2、bが奇数
    の場合は1≦d≦(b−1)2であり、bが偶数でかつ
    d=b/2の場合に限ってmu=b−1となることを特
    徴とする、請求項1に記載のコンピュータ・システム。
  9. 【請求項9】ノードが他のノードに結合され、4次元修
    正ハイパーキューブの場合、+X、+Y、+Z、+W、
    −X、−Y、−Z、−Wで表される8個の外部ポートを
    サポートすることを特徴とする、請求項1に記載のコン
    ピュータ・システム。
  10. 【請求項10】ノードが他のノードに結合され、4次元
    修正ハイパーキューブの場合、8個の外部ポートをサポ
    ートし、ノードがポートを介して接続されてリングを形
    成し、対応するポートを相互接続することによってリン
    グを相互接続してリングのリングを形成して、折り返さ
    れたクラスタのエッジを論理的に「ジップ解除」しそれ
    を外部システム・バスに接続することにより、外部シス
    テムへの入出力機構が形成された、折り返されたクラス
    タ構造が形成できることを特徴とする、請求項1に記載
    のコンピュータ・システム。
  11. 【請求項11】外部入出力機構へのインタフェースによ
    り、リングの一部またはすべてを論理的に破壊し、破壊
    されたリングの2つの端部を外部入出力バスに接続する
    ことができる、リング内リングを備えたトポロジーを拡
    張によって可能にすることのできる、修正ハイパーキュ
    ーブ相互接続を備えることを特徴とする、請求項1に記
    載のコンピュータ・システム。
  12. 【請求項12】外部入出力機構へのインタフェースによ
    り、リングの一部またはすべてを論理的に破壊し、破壊
    されたリングの2つの端部を論理操作として外部入出力
    バスに接続して、一定の時間間隔で規則的にノード内プ
    ロセッサ・メモリ要素間通信を可能にしながら、他の時
    間間隔で入出力を可能にすることができ、修正ハイパー
    キューブ内のリング・レベルでの破壊プロセスにより、
    入出力を目的として、リングが効果的に「ジップ解除」
    され、修正ハイパーキューブの1ないしn個のエッジ上
    に存在する可能性のあるアレイへの別々のインタフェー
    スがもたらされ、アレイの複数次元への並列入力または
    アレイの複数次元への同報通信がサポートされる、リン
    グ内リングを備えたトポロジーを拡張によって可能にす
    ることができる、修正ハイパーキューブ相互接続を備え
    ることを特徴とする、請求項1に記載のコンピュータ・
    システム。
  13. 【請求項13】大規模並列アレイ・プロセッサとして編
    成された複数のプロセッサ・メモリ要素から成る複数の
    ノードを備え、 前記プロセッサ・メモリ要素がそれぞれ、システムにお
    けるノード間のn次元修正ハイパーキューブ相互接続用
    の複数の通信経路を有し、 各プロセッサ・メモリ要素が、前記ノードの外部にあ
    る、コンピュータ・システムの別の同様なスケーリング
    可能ノードへの通信のための通信経路を有することを特
    徴とする、 複数のプロセッサおよびメモリを有するコンピュータ・
    システム。
  14. 【請求項14】大規模並列アレイ・プロセッサとして編
    成された複数のプロセッサ・メモリ要素から成る複数の
    ノードを備え、 前記プロセッサ・メモリ要素がそれぞれ、ハイパーキュ
    ーブの配線および論理密度なしでハイパーキューブの最
    適直径をよく近似するネットワーク用の、システムにお
    けるノード間のn次元修正ハイーパーキューブ相互接続
    用の複数の通信経路を有することを特徴とする、 複数のプロセッサおよびメモリを有するコンピュータ・
    システム。
  15. 【請求項15】大規模並列アレイ・プロセッサとして編
    成された複数のプロセッサ・メモリ要素から成る複数の
    ノードを備え、 前記プロセッサ・メモリ要素がそれぞれ、システムにお
    けるノード間のn次元修正ハイパーキューブ相互接続用
    の複数の通信経路を有し、 内部プロセッサ・メモリ要素間に2つのリングがあり、
    各プロセッサ・メモリ要素が他のリングにおけるプロセ
    ッサ・メモリ要素と接続されていることを特徴とする、 複数のプロセッサおよびメモリを有するコンピュータ・
    システム。
  16. 【請求項16】複数のノードを備え、該ノードが、+−
    Yおよび+−Yを使ってアレイとして接続されてクラス
    タを形成し、該アレイの次元数が、任意であって、一般
    に、バイナリ・ハイパーキューブを実現する2より大き
    く、該ノードがクラスタとして相互結合され、+−W、
    +−Zを使って該クラスタがクラスタのアレイとして接
    続され、該アレイの次元数が任意であって、ノードの4
    次元ハイパーキューブとしての結合が可能であり、別の
    2本のバス、たとえば+−E1を使って4次元ハイパー
    キューブをハイパーキューブのベクトルとして接続し
    て、10個のプロセッサ・メモリ要素ノードから成る5
    次元ハイパーキューブにシステムが拡張できることを特
    徴とする、 複数のプロセッサおよびメモリを有するコンピュータ・
    システム。
  17. 【請求項17】"n"が、修正ハイパーキューブを特徴づ
    けるリングの次元数を表し、"k"が、ノードを特徴づけ
    るリングの数を表すとして、それぞれk*n個のプロセ
    ッサ・メモリ要素と同報通信/制御インタフェース(B
    CI)セクションとを有する複数のノードを備えること
    を特徴とする、複数のプロセッサおよびメモリを有する
    コンピュータ・システム。
  18. 【請求項18】複数のプロセッサおよびメモリを有する
    複数のノードを備え、プロセッサ・メモリ要素のネット
    ワークにおいて複数のノードを相互接続するための、修
    正ハイパーキューブ・トポロジー用相互接続方法が提供
    され、その際に、 a.1組のe1、e2、e3、...に関して、すべて
    の要素の積が、ネットワーク内のプロセッサ・メモリ要
    素の数Mと等しく、e1およびe2を除く該組のすべて
    の要素の積がノードの数Nに等しく、該組の要素の数m
    が、関係式n=m−2によりネットワークの次元数nを
    定義するように、前記の1組のe1、e2、e
    3、...が定義され、 b.プロセッサ・メモリ要素が、1組のインデックスa
    1、a2、...amによってアドレス指定され、その
    際に各インデックスが、等しい展開レベルにあるPME
    の位置であり、したがってiが1、2、...mの場合
    にインデックスaiが0ないしei−1の範囲にあり、
    a(i)という表記が通常通り要素aのリストのi番目
    の要素を意味し、e(i)という表記が通常通り要素e
    のリストのi番目の要素を意味するものとして、公
    式(...(a(m)*e(m-1)+a(m-2))e(m-1)...(a(2)*e(1))+a
    (1)によって算出され、 c. 1)r/(el*e2)の整数部分がs/(e1*e2)
    の整数部分と等しく、かつ a)r/e1の剰余部分がs/e1の剰余部分と1だけ
    異なり、あるいは b)r/e2の剰余部分がs/e2の剰余部分と1また
    はe2−1だけ異なり、かつ 2)iが3、4、...mの範囲の場合にr/eiの剰
    余部分がs/eiの剰余部分と異なり、r/e1の剰余
    部分がs/e2の剰余部分すなわちi−3と等しく、r
    /e2の剰余部分がs/e2の剰余部分とe2−1だけ
    異なる、という2つの条件のいずれかが成り立つ場合に
    かぎり、(アドレスfおよびアドレスgを有する)2つ
    のプロセッサ・メモリ要素が接続されることを特徴とす
    る、 複数のプロセッサおよびメモリを有するコンピュータ・
    システム。
  19. 【請求項19】複数のプロセッサおよびメモリを有する
    複数のノードを備え、プロセッサ・メモリ要素のネット
    ワークにおいて複数のノードを相互接続するための、修
    正ハイパーキューブ・トポロジー用相互接続方法が提供
    され、その際に、 コンピューティング・システム・ノードが、各次元で基
    数が異なる可能性のある非バイナリ・ハイパーキューブ
    を形成し、ノードが、2*n個のポートをサポートする
    プロセッサ・メモリ要素のアレイとして定義され、該ノ
    ードによって提供されるポートが修正ハイパーキューブ
    の次元数要件に適合し、 特定の修正ハイーパーキューブの各次元の特定のエクス
    テントを定義する、1組の整数e3、e4、...em
    をすべて等しい値、たとえばbとし、e1およびe2を
    1とする場合、アドレス可能性および接続についての直
    前の公式が、 a.N=b**nとなり、 b.基底B数体系を表す数としてプロセッサ・メモリ要
    素がアドレス指定され、 c.fのアドレスがgのアドレスとちょうど1基底b桁
    だけ異なる場合にかぎり、0とb−1が1だけ離れてい
    るという規則を使って、2つの演算要素(fおよびg)
    が接続され、 d.各プロセッサ・メモリ要素によってサポートされる
    接続の数が2*nであることを特徴とする、 複数のプロセッサおよびメモリを有するコンピュータ・
    システム。
JP5109256A 1992-05-22 1993-05-11 コンピュータ・システム Pending JPH0652124A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88868492A 1992-05-22 1992-05-22
US888684 1992-05-22

Publications (1)

Publication Number Publication Date
JPH0652124A true JPH0652124A (ja) 1994-02-25

Family

ID=25393667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5109256A Pending JPH0652124A (ja) 1992-05-22 1993-05-11 コンピュータ・システム

Country Status (1)

Country Link
JP (1) JPH0652124A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013046363A1 (ja) * 2011-09-28 2013-04-04 トヨタ自動車株式会社 エンジン制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013046363A1 (ja) * 2011-09-28 2013-04-04 トヨタ自動車株式会社 エンジン制御装置

Similar Documents

Publication Publication Date Title
JP2552076B2 (ja) コンピュータ・システム
JP2710536B2 (ja) コンピュータ・システム
US5754871A (en) Parallel processing system having asynchronous SIMD processing
US5713037A (en) Slide bus communication functions for SIMD/MIMD array processor
US5588152A (en) Advanced parallel processor including advanced support hardware
US5625836A (en) SIMD/MIMD processing memory element (PME)
US5963746A (en) Fully distributed processing memory element
US5963745A (en) APAP I/O programmable router
US5794059A (en) N-dimensional modified hypercube
US5966528A (en) SIMD/MIMD array processor with vector processing
US5734921A (en) Advanced parallel array processor computer package
JP2642039B2 (ja) アレイ・プロセッサ
US5815723A (en) Picket autonomy on a SIMD machine
JPH04267466A (ja) 連想並列処理システム
JP2557175B2 (ja) コンピュータ・システム
JP2620487B2 (ja) コンピュータ・パッケージ
JP2579419B2 (ja) マルチプロセッサ・メモリ・システム
JP2552075B2 (ja) コンピュータ・システム
JP2549240B2 (ja) コンピュータ・システム
JPH0652124A (ja) コンピュータ・システム
JPH0635878A (ja) 単一命令複数データ/複数命令複数データ・プロセッサ・アレイ用コントローラ
JP2625628B2 (ja) 浮動小数点コンピュータ・システム
JPS63503099A (ja) 有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア
Muslih The instruction of systolic array (ISA) and simulation of parallel algorithms
JPH07287700A (ja) コンピュータ・システム