JPH07287700A - コンピュータ・システム - Google Patents
コンピュータ・システムInfo
- Publication number
- JPH07287700A JPH07287700A JP5118660A JP11866093A JPH07287700A JP H07287700 A JPH07287700 A JP H07287700A JP 5118660 A JP5118660 A JP 5118660A JP 11866093 A JP11866093 A JP 11866093A JP H07287700 A JPH07287700 A JP H07287700A
- Authority
- JP
- Japan
- Prior art keywords
- picket
- array
- data
- simd
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- RLLPVAHGXHCWKJ-IEBWSBKVSA-N (3-phenoxyphenyl)methyl (1s,3s)-3-(2,2-dichloroethenyl)-2,2-dimethylcyclopropane-1-carboxylate Chemical compound CC1(C)[C@H](C=C(Cl)Cl)[C@@H]1C(=O)OCC1=CC=CC(OC=2C=CC=CC=2)=C1 RLLPVAHGXHCWKJ-IEBWSBKVSA-N 0.000 claims abstract description 270
- 238000012545 processing Methods 0.000 claims abstract description 154
- 238000007667 floating Methods 0.000 claims abstract description 68
- 230000015654 memory Effects 0.000 claims description 153
- 230000007246 mechanism Effects 0.000 claims description 41
- 230000009471 action Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 abstract description 24
- 230000006870 function Effects 0.000 description 61
- 238000000034 method Methods 0.000 description 58
- 230000008569 process Effects 0.000 description 40
- 238000003860 storage Methods 0.000 description 29
- 238000003491 array Methods 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 230000001419 dependent effect Effects 0.000 description 12
- 238000009924 canning Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 238000010606 normalization Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000000782 polymeric membrane extraction Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000011449 brick Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 101000767534 Arabidopsis thaliana Chorismate mutase 2 Proteins 0.000 description 1
- 101000986989 Naja kaouthia Acidic phospholipase A2 CM-II Proteins 0.000 description 1
- 206010029412 Nightmare Diseases 0.000 description 1
- 206010041349 Somnolence Diseases 0.000 description 1
- 101710135349 Venom phosphodiesterase Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 本発明の目的は、SIMDとSIMIMDを
含む様々なモードで動作できる並列アレイ・マシンを提
供することである。 【構成】 プロセッサのSIMDアレイ内のすべての要
素が、アレイ制御装置からコマンドのストリームを受け
取る。複数の機構により、ピケットと称する個々の処理
要素を有するアレイ・マシンが、SIMDコマンドの一
部を、それ自体の独自の方法で解釈できるようになり、
各ピケットにある程度のローカル自律性が与えられる。
その結果もたらされる能力により、ピケットは、SIM
IMDと称するモードで命令を実行できるようになる。
その結果もたらされるもう1つの能力により、浮動小数
点命令実行の性能が、大きく向上する。さらに別の能力
が、様々な有用な形でのピケットのグループ化をもたら
し、これによって、あるグループがドーズしている間に
別のグループがSIMD命令を実行していられるように
なる。
含む様々なモードで動作できる並列アレイ・マシンを提
供することである。 【構成】 プロセッサのSIMDアレイ内のすべての要
素が、アレイ制御装置からコマンドのストリームを受け
取る。複数の機構により、ピケットと称する個々の処理
要素を有するアレイ・マシンが、SIMDコマンドの一
部を、それ自体の独自の方法で解釈できるようになり、
各ピケットにある程度のローカル自律性が与えられる。
その結果もたらされる能力により、ピケットは、SIM
IMDと称するモードで命令を実行できるようになる。
その結果もたらされるもう1つの能力により、浮動小数
点命令実行の性能が、大きく向上する。さらに別の能力
が、様々な有用な形でのピケットのグループ化をもたら
し、これによって、あるグループがドーズしている間に
別のグループがSIMD命令を実行していられるように
なる。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータおよびコ
ンピュータ・システムに関し、具体的には、プロセッサ
のアレイ、ならびにローカル自律性を有するピケットか
ら形成されたアレイを有する、本明細書でSIMIMD
マシンと称するマシンとして機能して、データのアレイ
を実行することのできるプロセッサのアレイに関する。
ンピュータ・システムに関し、具体的には、プロセッサ
のアレイ、ならびにローカル自律性を有するピケットか
ら形成されたアレイを有する、本明細書でSIMIMD
マシンと称するマシンとして機能して、データのアレイ
を実行することのできるプロセッサのアレイに関する。
【0002】
【従来の技術】はじめに、本明細書で用いられる用語に
ついて説明する。
ついて説明する。
【0003】・ALU ALUとは、プロセッサの演算論理機構部分である。
【0004】・アレイ アレイとは、1次元または多次元における要素のアレイ
を指す。アレイは、順番に並べた1組のデータ項目(ア
レイ要素)を含むことができるが、FORTRANのよ
うな言語では、それらのデータ項目は単一の名前で識別
される。他の言語では、順番に並べた1組のデータ項目
の名前は、すべて同じ属性を持つ順番に並べた1組のデ
ータ要素を指す。プログラム・アレイでは、一般に数ま
たは次元属性によって次元が指定される。アレイの宣言
子でアレイの各次元のサイズを指定する言語もあり、ア
レイがテーブル内の要素のアレイとなっている言語もあ
る。ハードウェア的な意味では、アレイは、大規模並列
アーキテクチャにおいて全体として同一な構造(機能要
素)の集合体である。データ並列コンピュータ処理にお
けるアレイ要素は、動作を割り当てることができ、並列
状態のとき、それぞれ独立にかつ並列に必要な動作を実
行できる要素である。一般に、アレイは処理要素の格子
と考えることができる。アレイの各セクションに区分デ
ータを割り当てることにより、区分データを規則的な格
子パターン内で移動することができる。ただし、データ
に索引を付け、あるいはデータをアレイ中の任意の位置
に割り当てることが可能である。
を指す。アレイは、順番に並べた1組のデータ項目(ア
レイ要素)を含むことができるが、FORTRANのよ
うな言語では、それらのデータ項目は単一の名前で識別
される。他の言語では、順番に並べた1組のデータ項目
の名前は、すべて同じ属性を持つ順番に並べた1組のデ
ータ要素を指す。プログラム・アレイでは、一般に数ま
たは次元属性によって次元が指定される。アレイの宣言
子でアレイの各次元のサイズを指定する言語もあり、ア
レイがテーブル内の要素のアレイとなっている言語もあ
る。ハードウェア的な意味では、アレイは、大規模並列
アーキテクチャにおいて全体として同一な構造(機能要
素)の集合体である。データ並列コンピュータ処理にお
けるアレイ要素は、動作を割り当てることができ、並列
状態のとき、それぞれ独立にかつ並列に必要な動作を実
行できる要素である。一般に、アレイは処理要素の格子
と考えることができる。アレイの各セクションに区分デ
ータを割り当てることにより、区分データを規則的な格
子パターン内で移動することができる。ただし、データ
に索引を付け、あるいはデータをアレイ中の任意の位置
に割り当てることが可能である。
【0005】・アレイ・ディレクタ アレイ・ディレクタとは、アレイの制御プログラムとし
てプログラミングされる単位である。アレイ・ディレク
タは、アレイとして配列された機能要素のグループのマ
スタ制御プログラムとしての機能を果す。
てプログラミングされる単位である。アレイ・ディレク
タは、アレイとして配列された機能要素のグループのマ
スタ制御プログラムとしての機能を果す。
【0006】・アレイ・プロセッサ アレイ・プロセッサには主として、複数命令複数データ
方式(MIMD)と単一命令複数データ方式(SIM
D)との2種類がある。MIMDアレイ・プロセッサで
は、アレイ中の各処理要素が、それ自体のデータを使っ
てそれ自体の固有の命令ストリームを実行する。SIM
Dアレイ・プロセッサでは、アレイ中の各処理要素が、
共通の命令ストリームを介して同一の命令に限定され
る。ただし、各処理要素に関連するデータは固有であ
る。本発明の好ましいアレイ・プロセッサには他にも特
徴がある。本明細書では、これをAPAPと呼び、AP
APという略語を使用する。
方式(MIMD)と単一命令複数データ方式(SIM
D)との2種類がある。MIMDアレイ・プロセッサで
は、アレイ中の各処理要素が、それ自体のデータを使っ
てそれ自体の固有の命令ストリームを実行する。SIM
Dアレイ・プロセッサでは、アレイ中の各処理要素が、
共通の命令ストリームを介して同一の命令に限定され
る。ただし、各処理要素に関連するデータは固有であ
る。本発明の好ましいアレイ・プロセッサには他にも特
徴がある。本明細書では、これをAPAPと呼び、AP
APという略語を使用する。
【0007】・非同期 非同期とは、規則的な時間関係がないことである。すな
わち、各機能の実行間の関係が予測不能であり、各機能
の実行間に規則的または予測可能な時間関係が存在しな
い。制御状況では、制御プログラムは、データが、アド
レスされている遊休要素を待っているとき、制御が渡さ
れる位置にアドレスする。このため、諸動作が、どの事
象とも時間が一致しないのに順序通りのままとなる。
わち、各機能の実行間の関係が予測不能であり、各機能
の実行間に規則的または予測可能な時間関係が存在しな
い。制御状況では、制御プログラムは、データが、アド
レスされている遊休要素を待っているとき、制御が渡さ
れる位置にアドレスする。このため、諸動作が、どの事
象とも時間が一致しないのに順序通りのままとなる。
【0008】・BOPS/GOPS BOPSまたはGOPSは、1秒当たり10億回の動作
という同じ意味の略語である。GOPSを参照された
い。
という同じ意味の略語である。GOPSを参照された
い。
【0009】・回線交換/蓄積交換 これらの用語は、ノードのネットワークを介してデータ
・パケットを移動するための2つの機構を指す。蓄積交
換は、データ・パケットを各中間ノードで受信し、その
メモリに格納してから、その宛先に向かって転送する機
構である。回線交換は、中間ノードに、その入力ポート
を出力ポートに論理的に接続するよう指令して、データ
・パケットが、中間ノードのメモリに入らずに、ノード
を直接通過して宛先に向かうことができるようにする機
構である。
・パケットを移動するための2つの機構を指す。蓄積交
換は、データ・パケットを各中間ノードで受信し、その
メモリに格納してから、その宛先に向かって転送する機
構である。回線交換は、中間ノードに、その入力ポート
を出力ポートに論理的に接続するよう指令して、データ
・パケットが、中間ノードのメモリに入らずに、ノード
を直接通過して宛先に向かうことができるようにする機
構である。
【0010】・クラスタ クラスタとは、制御ユニット(クラスタ制御装置)と、
それに接続されたハードウェア(端末、機能ユニット、
または仮想構成要素)とから成るステーション(または
機能ユニット)である。本明細書では、クラスタは、ノ
ード・アレイとも称するプロセッサ・メモリ要素(PM
E)のアレイを含む。通常、クラスタは512個のPM
E要素を有する。
それに接続されたハードウェア(端末、機能ユニット、
または仮想構成要素)とから成るステーション(または
機能ユニット)である。本明細書では、クラスタは、ノ
ード・アレイとも称するプロセッサ・メモリ要素(PM
E)のアレイを含む。通常、クラスタは512個のPM
E要素を有する。
【0011】本発明の全PMEノード・アレイは、それ
ぞれ1つのクラスタ制御装置(CC)によってサポート
される1組のクラスタから成る。
ぞれ1つのクラスタ制御装置(CC)によってサポート
される1組のクラスタから成る。
【0012】・クラスタ制御装置 クラスタ制御装置とは、それに接続された複数の装置ま
たは機能ユニットの入出力動作を制御する装置である。
クラスタ制御装置は通常、IBM 3601金融機関通
信制御装置におけるように、該ユニットに格納され、そ
こで実行されるプログラムの制御を受けるが、IBM
3272制御装置におけるように、ハードウェアで完全
に制御可能である。
たは機能ユニットの入出力動作を制御する装置である。
クラスタ制御装置は通常、IBM 3601金融機関通
信制御装置におけるように、該ユニットに格納され、そ
こで実行されるプログラムの制御を受けるが、IBM
3272制御装置におけるように、ハードウェアで完全
に制御可能である。
【0013】・クラスタ・シンクロナイザ クラスタ・シンクロナイザとは、あるクラスタのすべて
または一部分の動作を管理して、諸要素の同期動作を維
持し、各機能ユニットがプログラムの実行と特定の時間
関係を維持できるようにする機能ユニットである。
または一部分の動作を管理して、諸要素の同期動作を維
持し、各機能ユニットがプログラムの実行と特定の時間
関係を維持できるようにする機能ユニットである。
【0014】・制御装置 制御装置とは、相互接続ネットワークのリンクを介した
データおよび命令の伝送を指令する装置である。制御装
置の動作は、制御装置が接続されたプロセッサによって
実行されるプログラム、または制御装置内で実行される
プログラムによって制御される。
データおよび命令の伝送を指令する装置である。制御装
置の動作は、制御装置が接続されたプロセッサによって
実行されるプログラム、または制御装置内で実行される
プログラムによって制御される。
【0015】・CMOS CMOSとは、相補型金属酸化膜半導体技術の略語であ
る。これは、ダイナミック・ランダム・アクセス・メモ
リ(DRAM)の製造に広く使用されている。NMOS
は、ダイナミック・ランダム・アクセス・メモリの製造
に使用されるもう1つの技術である。本発明では相補型
金属酸化膜半導体の方を使用するが、拡張並列アレイ・
プロセッサ(APAP)の製造に使用する技術によっ
て、使用される半導体技術の範囲が制限されることはな
い。
る。これは、ダイナミック・ランダム・アクセス・メモ
リ(DRAM)の製造に広く使用されている。NMOS
は、ダイナミック・ランダム・アクセス・メモリの製造
に使用されるもう1つの技術である。本発明では相補型
金属酸化膜半導体の方を使用するが、拡張並列アレイ・
プロセッサ(APAP)の製造に使用する技術によっ
て、使用される半導体技術の範囲が制限されることはな
い。
【0016】・ドッティング ドッティングとは、物理的な接続によって3本以上のリ
ード線を結合することを指す。たいていのバックパネル
・バスではこの接続方法を使用している。この用語は、
過去のOR DOTSと関係があるが、ここでは、非常
に単純なプロトコルによってバス上に結合できる複数の
データ源を識別するのに使用する。
ード線を結合することを指す。たいていのバックパネル
・バスではこの接続方法を使用している。この用語は、
過去のOR DOTSと関係があるが、ここでは、非常
に単純なプロトコルによってバス上に結合できる複数の
データ源を識別するのに使用する。
【0017】本発明における入出力ジッパの概念を用い
て、あるノードに入る入力ポートが、あるノードから出
る出力ポート、またはシステム・バスからくるデータに
よって駆動できるという概念を実施することができる。
逆に、あるノードから出力されるデータは、別のノード
およびシステム・バスへの入力として使用できる。シス
テム・バスと別のノードへのデータ出力は、同時には実
行されず、別のサイクルで実行されることに留意された
い。
て、あるノードに入る入力ポートが、あるノードから出
る出力ポート、またはシステム・バスからくるデータに
よって駆動できるという概念を実施することができる。
逆に、あるノードから出力されるデータは、別のノード
およびシステム・バスへの入力として使用できる。シス
テム・バスと別のノードへのデータ出力は、同時には実
行されず、別のサイクルで実行されることに留意された
い。
【0018】ドッティングは、それを利用することによ
り2ポート式のPEまたはPMEまたはピケットを様々
な編成のアレイに使用できる、H−DOTの議論で使用
されている。2次元メッシュおよび3次元メッシュ、ベ
ース2Nキューブ、スパース・ベース4Nキューブ、ス
パース・ベース8Nキューブを含めて、いくつかのトポ
ロジーが議論されている。
り2ポート式のPEまたはPMEまたはピケットを様々
な編成のアレイに使用できる、H−DOTの議論で使用
されている。2次元メッシュおよび3次元メッシュ、ベ
ース2Nキューブ、スパース・ベース4Nキューブ、ス
パース・ベース8Nキューブを含めて、いくつかのトポ
ロジーが議論されている。
【0019】・DRAM DRAMとは、コンピュータが主記憶装置として使用す
る共通記憶装置であるダイナミック・ランダム・アクセ
ス・メモリの略語である。ただし、DRAMという用語
は、キャッシュとして、または主記憶装置ではないメモ
リとして使用するのにも適用できる。
る共通記憶装置であるダイナミック・ランダム・アクセ
ス・メモリの略語である。ただし、DRAMという用語
は、キャッシュとして、または主記憶装置ではないメモ
リとして使用するのにも適用できる。
【0020】・浮動小数点 浮動小数点数は、固定小数部すなわち小数部と、約束上
の基数または基底に対する指数部の2つの部分で表され
る。指数は、10進小数点の実際の位置を示す。典型的
な浮動小数点の表記法では、実数0.0001234は
0.1234−3と表される。ここで、0.1234は
小数部であり、−3は指数である。この例では、浮動小
数点基数または基底は10であり、暗示的な1より大き
な正の固定整数基底を表す。浮動小数点表示で明示的に
示される、あるいは浮動小数点表示で指数部で表される
指数でこの基底をべき乗し、次に小数部を掛けると、表
される実数が求められる。数字リテラルは、浮動小数点
表記法で表すことも実数で表すこともできる。
の基数または基底に対する指数部の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にした方が適切であることを示す研究もある。アー
キテクチャごとに比率が異なる。
動小数点演算には、ADD(加算)、SUB(減算)、
MPY(乗算)、DIV(除算)と、しばしばその他の
多くの演算が含まれる。1秒当たり浮動小数点命令数と
いうパラメータは、しばしば加算命令または乗算命令を
使って算出され、一般に50/50ミックスとみなすこ
とができる。演算には、指数部、小数部の生成と、必要
な小数部の正規化が含まれる。本発明では、32ビット
または48ビットの浮動小数点フォーマットを扱うこと
ができる(これより長くてもよいが、そのようなフォー
マットはミックスではカウントしなかった)。浮動小数
点演算を固定小数点命令(正規またはRISC)で実施
する際には、複数の命令が必要である。性能を計算する
際に10対1の比率を使用する人もあれば、比率を6.
25にした方が適切であることを示す研究もある。アー
キテクチャごとに比率が異なる。
【0022】・機能ユニット 機能ユニットとは、ある目的を達成できる、ハードウェ
ア、ソフトウェア、あるいはその両方のエンティティで
ある。
ア、ソフトウェア、あるいはその両方のエンティティで
ある。
【0023】・Gバイト Gバイトとは10億バイトを指す。Gバイト/秒は、1
秒当たり10億バイトということになる。
秒当たり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
が使用される。
という同じ意味を持つ。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つのシステム間の接続がリンクである。したが
って、リンクには一般に、物理媒体、任意のプロトコ
ル、ならびに関連する装置およびプログラミングが含ま
れる。すなわち、リンクは論理的であるとともに物理的
である。
ンクは要素またはユニットを結合するための物理接続で
あり、一方コンピュータ・プログラミングにおけるリン
クは、プログラムの別々の部分間で制御およびパラメー
タのやり取りを行う命令またはアドレスである。多重シ
ステムでは、実アドレスまたは仮想アドレスで識別され
るリンクを識別するプログラム・コードによって指定さ
れる、2つのシステム間の接続がリンクである。したが
って、リンクには一般に、物理媒体、任意のプロトコ
ル、ならびに関連する装置およびプログラミングが含ま
れる。すなわち、リンクは論理的であるとともに物理的
である。
【0028】・MFLOPS MFLOPSは、1秒当たり106個の浮動小数点命令
を意味する。
を意味する。
【0029】・MIMD MIMDは、アレイ内の各プロセッサがそれ自体の命令
ストリームを持ち、したがって多重命令ストリームを有
し、1処理要素当たり1つずつ配置された複数データ・
ストリームを実行する、プロセッサ・アレイ・アーキテ
クチャを指すのに使用される。
ストリームを持ち、したがって多重命令ストリームを有
し、1処理要素当たり1つずつ配置された複数データ・
ストリームを実行する、プロセッサ・アレイ・アーキテ
クチャを指すのに使用される。
【0030】・モジュール モジュールとは、離散しており識別可能なプログラム単
位、あるいは他の構成要素と共に使用するように設計さ
れたハードウェアの機能単位である。また、単一の電子
チップに含まれるPEの集合体もモジュールと呼ばれ
る。
位、あるいは他の構成要素と共に使用するように設計さ
れたハードウェアの機能単位である。また、単一の電子
チップに含まれるPEの集合体もモジュールと呼ばれ
る。
【0031】・ノード 一般に、ノードとはリンクの接合部である。PEの汎用
アレイでは、1つのPEをノードとすることができる。
ノードはまた、モジュールというPEの集合体を含むこ
ともできる。本発明では、ノードはPMEのアレイから
形成されており、この1組のPMEをノードと称する。
ノードは8個のPMEであることが好ましい。
アレイでは、1つのPEをノードとすることができる。
ノードはまた、モジュールというPEの集合体を含むこ
ともできる。本発明では、ノードはPMEのアレイから
形成されており、この1組のPMEをノードと称する。
ノードは8個のPMEであることが好ましい。
【0032】・ノード・アレイ PMEから構成されるモジュールの集合体をノード・ア
レイと呼ぶことがある。これは、モジュールから構成さ
れるノードのアレイである。ノード・アレイは通常、
2、3個より多いPMEであるが、この用語は複数を包
含する。
レイと呼ぶことがある。これは、モジュールから構成さ
れるノードのアレイである。ノード・アレイは通常、
2、3個より多いPMEであるが、この用語は複数を包
含する。
【0033】・PDE PDEとは、偏微分方程式である。
【0034】・PDE緩和解法プロセス PDE緩和解法プロセスとは、PDE(偏微分方程式)
を解く方法である。PDEを解くには、既知の分野にお
けるスーパー・コンピュータの計算能力の大半を使用
し、したがってこれは緩和プロセスの好例となる。PD
E方程式を解く方法は多数あり、複数の数値解法に緩和
プロセスが含まれている。たとえば、PDEを有限要素
法で解く場合、緩和の計算に大部分の時間が費やされ
る。熱伝達の分野の例を考えてみよう。煙突内に高温の
ガスがあり、外では冷たい風が吹いているとすると、煙
突のレンガ内の温度勾配はどのようになるだろうか。レ
ンガを小さなセグメントとみなし、セグメント間を熱が
どのように流れるかを温度差の関数として表す方程式を
書くと、伝熱PDEが有限要素問題に変換される。ここ
で、内側と外側の要素を除くすべての要素が室温であ
り、境界セグメントが高温のガスと冷たい風の温度であ
るとすると、緩和を開始するための問題ができあがる。
その後、コンピュータ・プログラムでは、セグメントに
流れ込む、あるいはセグメントから流れ出る熱の量に基
づいて各セグメント内の温度変数を更新することによ
り、時間をモデル化する。煙突における1組の温度変数
を緩和して、物理的な煙突で発生する実際の温度分布を
表すには、モデル中のすべてのセグメントを処理するサ
イクルに何回もかけなければならない。目的が煙突にお
けるガス冷却をモデル化することである場合、諸要素を
気体方程式に拡張しなければならず、そうすると、内側
の境界条件が別の有限要素モデルとリンクされ、このプ
ロセスが続く。熱の流れが隣接するセグメント間の温度
差に依存することに留意されたい。したがって、PE間
通信経路を使って温度変数を分配する。PDE関係が並
列計算にうまく適用できるのは、この隣接接通信パター
ンまたは特性による。
を解く方法である。PDEを解くには、既知の分野にお
けるスーパー・コンピュータの計算能力の大半を使用
し、したがってこれは緩和プロセスの好例となる。PD
E方程式を解く方法は多数あり、複数の数値解法に緩和
プロセスが含まれている。たとえば、PDEを有限要素
法で解く場合、緩和の計算に大部分の時間が費やされ
る。熱伝達の分野の例を考えてみよう。煙突内に高温の
ガスがあり、外では冷たい風が吹いているとすると、煙
突のレンガ内の温度勾配はどのようになるだろうか。レ
ンガを小さなセグメントとみなし、セグメント間を熱が
どのように流れるかを温度差の関数として表す方程式を
書くと、伝熱PDEが有限要素問題に変換される。ここ
で、内側と外側の要素を除くすべての要素が室温であ
り、境界セグメントが高温のガスと冷たい風の温度であ
るとすると、緩和を開始するための問題ができあがる。
その後、コンピュータ・プログラムでは、セグメントに
流れ込む、あるいはセグメントから流れ出る熱の量に基
づいて各セグメント内の温度変数を更新することによ
り、時間をモデル化する。煙突における1組の温度変数
を緩和して、物理的な煙突で発生する実際の温度分布を
表すには、モデル中のすべてのセグメントを処理するサ
イクルに何回もかけなければならない。目的が煙突にお
けるガス冷却をモデル化することである場合、諸要素を
気体方程式に拡張しなければならず、そうすると、内側
の境界条件が別の有限要素モデルとリンクされ、このプ
ロセスが続く。熱の流れが隣接するセグメント間の温度
差に依存することに留意されたい。したがって、PE間
通信経路を使って温度変数を分配する。PDE関係が並
列計算にうまく適用できるのは、この隣接接通信パター
ンまたは特性による。
【0035】・ピケット これは、アレイ・プロセッサを構成する要素のアレイ内
の要素である。この要素は、データ・フロー(ALU
REGS)、メモリ、制御機構、通信マトリックスのこ
の要素と関連する部分から構成される。この単位は、並
列プロセッサ要素およびメモリ要素と、その制御機構お
よびアレイ相互通信機構の一部から成るアレイ・プロセ
ッサの1/nを指す。ピケットは、プロセッサ・メモリ
要素(PME)の1つの形である。本発明のPMEチッ
プ設計プロセッサ論理機構は、関連出願に記載されてい
るピケット論理を実施し、あるいはノードとして形成さ
れたプロセッサ・アレイ用の論理を持つことができる。
ピケットという用語は、処理要素を表す、一般的に使用
されているアレイ用語のPEと似ており、好ましくはビ
ット並列バイトの情報をクロック・サイクルで処理する
ための処理要素とローカル・メモリの組合せからなる、
処理アレイの要素である。好ましい実施例は、バイト幅
データ・フロー・プロセッサ、32バイト以上のメモ
リ、原始制御機構、および他のピケットとの通信機構か
ら構成されている。
の要素である。この要素は、データ・フロー(ALU
REGS)、メモリ、制御機構、通信マトリックスのこ
の要素と関連する部分から構成される。この単位は、並
列プロセッサ要素およびメモリ要素と、その制御機構お
よびアレイ相互通信機構の一部から成るアレイ・プロセ
ッサの1/nを指す。ピケットは、プロセッサ・メモリ
要素(PME)の1つの形である。本発明のPMEチッ
プ設計プロセッサ論理機構は、関連出願に記載されてい
るピケット論理を実施し、あるいはノードとして形成さ
れたプロセッサ・アレイ用の論理を持つことができる。
ピケットという用語は、処理要素を表す、一般的に使用
されているアレイ用語のPEと似ており、好ましくはビ
ット並列バイトの情報をクロック・サイクルで処理する
ための処理要素とローカル・メモリの組合せからなる、
処理アレイの要素である。好ましい実施例は、バイト幅
データ・フロー・プロセッサ、32バイト以上のメモ
リ、原始制御機構、および他のピケットとの通信機構か
ら構成されている。
【0036】「ピケット」という用語は、トム・ソーヤ
ーと、彼の白いフェンスに由来している。ただし、機能
的には、軍隊のピケット・ラインと類似性があることも
理解されよう。
ーと、彼の白いフェンスに由来している。ただし、機能
的には、軍隊のピケット・ラインと類似性があることも
理解されよう。
【0037】・ピケット・チップ ピケット・チップは、単一のシリコン・チップ上に複数
のピケットを含んでいる。
のピケットを含んでいる。
【0038】・ピケット・プロセッサ・システム(また
はサブシステム) ピケット・プロセッサは、ピケットのアレイと、通信ネ
ットワークと、入出力システムと、マイクロプロセッ
サ、かん詰ルーチン・プロセッサ、およびアレイを実行
するマイクロ制御装置から成るSIMD制御装置とから
構成されるトータル・システムである。
はサブシステム) ピケット・プロセッサは、ピケットのアレイと、通信ネ
ットワークと、入出力システムと、マイクロプロセッ
サ、かん詰ルーチン・プロセッサ、およびアレイを実行
するマイクロ制御装置から成るSIMD制御装置とから
構成されるトータル・システムである。
【0039】・ピケット・アーキテクチャ ピケット・アーキテクチャは、SIMDアーキテクチャ
の好ましい実施例であり、次のことを含む複数の多様な
問題に対応できる機能をもつ。 −セット連想処理 −並列数値中心処理 −イメージに類似した物理的アレイ処理
の好ましい実施例であり、次のことを含む複数の多様な
問題に対応できる機能をもつ。 −セット連想処理 −並列数値中心処理 −イメージに類似した物理的アレイ処理
【0040】・ピケット・アレイ ピケット・アレイは、幾何的順序で配列されたピケット
の集合体であり、規則正しいアレイである。
の集合体であり、規則正しいアレイである。
【0041】・PMEすなわちプロセッサ・メモリ要素 PMEは、プロセッサ・メモリ要素を表す。本明細書で
は、PMEという用語を、本発明の並列アレイ・プロセ
ッサの1つを形成する、単一のプロセッサ、メモリ、お
よび入出力可能なシステム要素もしくはユニットを指す
のに使用する。PMEは、ピケットを包含する用語であ
る。PMEは、プロセッサ、それと結合されたメモリ、
制御インタフェース、およびアレイ通信ネットワーク機
構の一部分から成るプロセッサ・アレイの1/nであ
る。この要素は、ピケット・プロセッサにおけるよう
に、正規のアレイの接続性を持つPME、あるいは上述
の多重PMEノードにおけるように、サブアレイの一部
としてのPMEを備えることができる。
は、PMEという用語を、本発明の並列アレイ・プロセ
ッサの1つを形成する、単一のプロセッサ、メモリ、お
よび入出力可能なシステム要素もしくはユニットを指す
のに使用する。PMEは、ピケットを包含する用語であ
る。PMEは、プロセッサ、それと結合されたメモリ、
制御インタフェース、およびアレイ通信ネットワーク機
構の一部分から成るプロセッサ・アレイの1/nであ
る。この要素は、ピケット・プロセッサにおけるよう
に、正規のアレイの接続性を持つPME、あるいは上述
の多重PMEノードにおけるように、サブアレイの一部
としてのPMEを備えることができる。
【0042】・経路指定 経路指定とは、メッセージを宛先に届けるための物理経
路を割り当てることである。経路の割当てには、発信元
と宛先が必要である。これらの要素またはアドレスは、
一時的な関係または類縁性を持つ。メッセージの経路指
定は、しばしば、割当てのテーブルを参照することによ
って得られるキーに基づいて行われる。ネットワーク内
では、宛先は、リンクを識別する経路制御アドレスによ
って、伝送される情報の宛先としてアドレス指定され
る、任意のステーションまたはネットワークのアドレス
指定可能ユニットである。宛先フィールドは、メッセー
ジ・ヘッダ宛先コードで宛先を識別する。
路を割り当てることである。経路の割当てには、発信元
と宛先が必要である。これらの要素またはアドレスは、
一時的な関係または類縁性を持つ。メッセージの経路指
定は、しばしば、割当てのテーブルを参照することによ
って得られるキーに基づいて行われる。ネットワーク内
では、宛先は、リンクを識別する経路制御アドレスによ
って、伝送される情報の宛先としてアドレス指定され
る、任意のステーションまたはネットワークのアドレス
指定可能ユニットである。宛先フィールドは、メッセー
ジ・ヘッダ宛先コードで宛先を識別する。
【0043】・SIMD アレイ内のすべてのプロセッサが、単一命令ストリーム
から、1処理要素当たり1つずつ配置された複数データ
・ストリームを実行するように指令を受ける、プロセッ
サ・アレイ・アーキテクチャ。
から、1処理要素当たり1つずつ配置された複数データ
・ストリームを実行するように指令を受ける、プロセッ
サ・アレイ・アーキテクチャ。
【0044】・SIMDMIMDまたはSIMD/MI
MD SIMDMIMDまたはSIMD/MIMDとは、ある
時間の間MIMDからSIMDに切り換えて複雑な命令
を処理できる二重機能を持ち、したがって2つのモード
を持つマシンを指す用語である。シンキング・マシンズ
社(Thinking Machines, Inc)のコネクション・マシン
(Connection Machine)モデルCM−2をMIMDマシ
ンのフロント・エンドまたはバック・エンドとして配置
すると、プログラマは、二重モードとも称する、複数の
モードを動作させてある問題の別々の部分を実行するこ
とができた。これらのマシンは、ILLIAC以来存在
しており、バスを使用してマスタCPUを他のプロセッ
サと相互接続している。マスタ制御プロセッサは、他の
CPUの処理に割り込む能力を持つ。他のCPUは、独
立のプログラム・コードを実行できる。割込み中、チェ
ックポイント機能用に何らかの処理が必要である(制御
されるプロセッサの現状況のクローズおよびセーブ)。
MD SIMDMIMDまたはSIMD/MIMDとは、ある
時間の間MIMDからSIMDに切り換えて複雑な命令
を処理できる二重機能を持ち、したがって2つのモード
を持つマシンを指す用語である。シンキング・マシンズ
社(Thinking Machines, Inc)のコネクション・マシン
(Connection Machine)モデルCM−2をMIMDマシ
ンのフロント・エンドまたはバック・エンドとして配置
すると、プログラマは、二重モードとも称する、複数の
モードを動作させてある問題の別々の部分を実行するこ
とができた。これらのマシンは、ILLIAC以来存在
しており、バスを使用してマスタCPUを他のプロセッ
サと相互接続している。マスタ制御プロセッサは、他の
CPUの処理に割り込む能力を持つ。他のCPUは、独
立のプログラム・コードを実行できる。割込み中、チェ
ックポイント機能用に何らかの処理が必要である(制御
されるプロセッサの現状況のクローズおよびセーブ)。
【0045】・SIMIMD SIMIMDは、アレイ内のすべてのプロセッサが、単
一命令ストリームから、1処理要素当たり1つずつ配置
された複数データ・ストリームを実行するように指令を
受ける、プロセッサ・アレイ・アーキテクチャである。
この構成内では、命令実行を模倣する、各ピケット内の
データ従属演算が、SIMD命令ストリームによって制
御される。
一命令ストリームから、1処理要素当たり1つずつ配置
された複数データ・ストリームを実行するように指令を
受ける、プロセッサ・アレイ・アーキテクチャである。
この構成内では、命令実行を模倣する、各ピケット内の
データ従属演算が、SIMD命令ストリームによって制
御される。
【0046】これは、SIMD命令ストリームを使用し
て複数命令ストリーム(1ピケット当たり1個)を順序
付けし、複数データ・ストリーム(1ピケット当たり1
個)を実行することの可能な、単一命令ストリーム・マ
シンである。SIMIMDは、PMEシステムによって
実行できる。
て複数命令ストリーム(1ピケット当たり1個)を順序
付けし、複数データ・ストリーム(1ピケット当たり1
個)を実行することの可能な、単一命令ストリーム・マ
シンである。SIMIMDは、PMEシステムによって
実行できる。
【0047】・SISD SISDは、単一命令単一データの略語である。
【0048】・スワッピングスワッピングとは、ある記
憶域のデータ内容を別の記憶域のデータ内容と相互に交
換することをいう。
憶域のデータ内容を別の記憶域のデータ内容と相互に交
換することをいう。
【0049】・同期動作 MIMDマシンにおける同期動作は、各アクションがあ
る事象(通常はクロック)に関係付けられる、動作モー
ドである。この事象は、プログラム・シーケンス中で規
則的に発生する、指定された事象とすることができる。
動作は多数の処理要素にディスパッチされ、それらの処
理要素はそれぞれ独立して機能を実行する。動作が完了
しないかぎり、制御は制御装置に返されない。
る事象(通常はクロック)に関係付けられる、動作モー
ドである。この事象は、プログラム・シーケンス中で規
則的に発生する、指定された事象とすることができる。
動作は多数の処理要素にディスパッチされ、それらの処
理要素はそれぞれ独立して機能を実行する。動作が完了
しないかぎり、制御は制御装置に返されない。
【0050】要求が機能ユニットのアレイに対するもの
である場合、アレイ内の要素に制御装置から要求が出さ
れ、その要素は、制御装置に制御が返される前に動作を
完了しなければならない。
である場合、アレイ内の要素に制御装置から要求が出さ
れ、その要素は、制御装置に制御が返される前に動作を
完了しなければならない。
【0051】・TERAFLOPS TERAFLOPSは、1秒当たり1012個の浮動小数
点命令を意味する。
点命令を意味する。
【0052】・VLSI VLSIとは、(集積回路に適用される)超大規模集積
の略語である。
の略語である。
【0053】・ジッパ ジッパとは、新規に提供される、アレイ構成の通常の相
互接続の外部にある装置からリンクを確立するための機
能である。
互接続の外部にある装置からリンクを確立するための機
能である。
【0054】以下に、本発明の背景となる従来技術につ
いて述べる。エンジニアは、コンピュータの高速化をあ
くなく追求する中で、数百、ときには数千もの低コスト
・マイクロプロセッサを並列にリンクして、スーパー・
スーパーコンピュータを構築し、今日のマシンには手の
負えない複雑な問題を解決しようとしている。そのよう
なマシンは、大規模並列マシンと呼ばれている。本発明
者等は、大規模並列システムを構築するための新規の方
法を開発した。本発明者等が加えた多数の改良は、他の
人々の多数の研究の背景と対比して考察すべきである。
当技術分野の要約は、参照する他の特許出願で行われて
いる。この点については、本発明者等の並列連想プロセ
ッサ・システムに関する関連米国特許出願第60159
4号と拡張並列アレイ・プロセッサ(APAP)に関す
る関連米国特許出願を参照されたい。特定の応用例にも
っとも適合するアーキテクチャを選択するにはシステム
のトレードオフが必要であるが、満足のいく解決策はこ
れまでに1つもない。本発明の概念を用いると、解決策
の実現が容易になる。
いて述べる。エンジニアは、コンピュータの高速化をあ
くなく追求する中で、数百、ときには数千もの低コスト
・マイクロプロセッサを並列にリンクして、スーパー・
スーパーコンピュータを構築し、今日のマシンには手の
負えない複雑な問題を解決しようとしている。そのよう
なマシンは、大規模並列マシンと呼ばれている。本発明
者等は、大規模並列システムを構築するための新規の方
法を開発した。本発明者等が加えた多数の改良は、他の
人々の多数の研究の背景と対比して考察すべきである。
当技術分野の要約は、参照する他の特許出願で行われて
いる。この点については、本発明者等の並列連想プロセ
ッサ・システムに関する関連米国特許出願第60159
4号と拡張並列アレイ・プロセッサ(APAP)に関す
る関連米国特許出願を参照されたい。特定の応用例にも
っとも適合するアーキテクチャを選択するにはシステム
のトレードオフが必要であるが、満足のいく解決策はこ
れまでに1つもない。本発明の概念を用いると、解決策
の実現が容易になる。
【0055】ピケットの最初の記述は、関連特許である
米国特許出願第611594号明細書で行われた。同明
細書および上述の関連特許出願明細書に、背景技術とみ
なされる多数の参照文献が論じられている。本発明の概
念は、プロセッサのアレイ内に、それぞれデータ・フロ
ー(ALUとREG)、メモリ、制御論理機構、およ
び、ピケットに関連する通信マトリックスのうちでプロ
セッサ・アレイのピケット間での相互通信を可能にする
部分を含む、ピケットを設けることが望ましいというこ
とである。便宜上、関連特許出願明細書の「従来の技
術」の項を参照する。
米国特許出願第611594号明細書で行われた。同明
細書および上述の関連特許出願明細書に、背景技術とみ
なされる多数の参照文献が論じられている。本発明の概
念は、プロセッサのアレイ内に、それぞれデータ・フロ
ー(ALUとREG)、メモリ、制御論理機構、およ
び、ピケットに関連する通信マトリックスのうちでプロ
セッサ・アレイのピケット間での相互通信を可能にする
部分を含む、ピケットを設けることが望ましいというこ
とである。便宜上、関連特許出願明細書の「従来の技
術」の項を参照する。
【0056】本明細書は、SIMDマシンのアレイ内で
の、従来の意味での処理要素またはピケットの使用を対
象とする。SIMDマシンは、何年も前から存在する
が、従来技術であるそのようなマシンの1つを、本明細
書の図1に示す。米国特許出願第07/250595号
の継続出願である関連米国特許出願第07/51933
2号明細書に記載の従来技術では、高価で複雑なMIM
Dプロセッサに頼らずに並列処理能力をよりよく利用で
きるようにするために、柔軟度を高めた処理要素の多次
元アレイが記述されている。上記出願は、元来は欧州特
許出願第88/307885/88−A号として198
9年5月3日に初めて公表された。この明細書に記載さ
れたシステムは、様々な並列処理要素内の制御論理機構
を接続するバスに沿って、ローカル・ビット直列実行用
の大域命令を送り、変更済みのビットが復号されるロー
カル・ビット線上で使用できるように、大域命令の選択
されたビットをプログラム的に変更する。
の、従来の意味での処理要素またはピケットの使用を対
象とする。SIMDマシンは、何年も前から存在する
が、従来技術であるそのようなマシンの1つを、本明細
書の図1に示す。米国特許出願第07/250595号
の継続出願である関連米国特許出願第07/51933
2号明細書に記載の従来技術では、高価で複雑なMIM
Dプロセッサに頼らずに並列処理能力をよりよく利用で
きるようにするために、柔軟度を高めた処理要素の多次
元アレイが記述されている。上記出願は、元来は欧州特
許出願第88/307885/88−A号として198
9年5月3日に初めて公表された。この明細書に記載さ
れたシステムは、様々な並列処理要素内の制御論理機構
を接続するバスに沿って、ローカル・ビット直列実行用
の大域命令を送り、変更済みのビットが復号されるロー
カル・ビット線上で使用できるように、大域命令の選択
されたビットをプログラム的に変更する。
【0057】次に、背景技術として検討できる当技術分
野の他のアレイ方式について述べる。
野の他のアレイ方式について述べる。
【0058】米国特許第4736291号明細書では、
データのアレイの高速処理を実行するアレイ変形プロセ
ッサが論じられている。これは、地震分析の領域でのF
FTアルゴリズムの実行用にとくに最適化されている。
この特許の焦点は、15台もの異なる装置によって共用
される、バルク・メモリとシステム制御バスである。各
装置は、書込み可能な制御記憶域、プログラム・メモ
リ、制御ユニットおよび、15台の装置のそれぞれに独
自の特徴を与える装置依存ユニットを有する。この特許
は、アレイ変形プロセッサに関するものであるが、この
ようなプロセッサ自体は、必ずしもプロセッサ並列アレ
イを利用する必要はなく、上記特許にはその旨の記述が
ない。アレイの変形は、本明細書と関連特許出願明細書
に記載のシステムによって行えることに留意されたい。
ただし、この特許明細書に記載のプロセッサは、その代
わりに、複雑な逐次繰返しの形でデータのアレイを処理
する、複数のサブユニット(またはステージ)を有す
る。これは、各サブユニットがデータのアレイの1要素
を取り、多数のプロセッサ内でデータを並列に処理する
という、本発明のSIMDプロセッサのアレイと異な
る。
データのアレイの高速処理を実行するアレイ変形プロセ
ッサが論じられている。これは、地震分析の領域でのF
FTアルゴリズムの実行用にとくに最適化されている。
この特許の焦点は、15台もの異なる装置によって共用
される、バルク・メモリとシステム制御バスである。各
装置は、書込み可能な制御記憶域、プログラム・メモ
リ、制御ユニットおよび、15台の装置のそれぞれに独
自の特徴を与える装置依存ユニットを有する。この特許
は、アレイ変形プロセッサに関するものであるが、この
ようなプロセッサ自体は、必ずしもプロセッサ並列アレ
イを利用する必要はなく、上記特許にはその旨の記述が
ない。アレイの変形は、本明細書と関連特許出願明細書
に記載のシステムによって行えることに留意されたい。
ただし、この特許明細書に記載のプロセッサは、その代
わりに、複雑な逐次繰返しの形でデータのアレイを処理
する、複数のサブユニット(またはステージ)を有す
る。これは、各サブユニットがデータのアレイの1要素
を取り、多数のプロセッサ内でデータを並列に処理する
という、本発明のSIMDプロセッサのアレイと異な
る。
【0059】米国特許第4831519号明細書では、
左右へのプロセッサ間接続を有し、その結果、16ビッ
トのプロセッサ要素(PE)を隣同士で接続して、様々
なデータ・フォーマットに効果的に適応できるようにな
った、SIMDアレイ・プロセッサを論じている。たと
えば、64ビットの浮動小数点ワードは、連続するPE
によって処理され、その際に、高位のPEが指数部を処
理し、他の3つが連動されて48ビットの小数部を処理
する。制御と繰上り/借りをPE間で連結すると、これ
が達成できる。1チップに、16個のデータ用16ビッ
トPE、2個のアドレス生成用PEおよび2個の予備P
Eを含むことができる。この特許の入出力は、4レベル
信号手法を使用して、2つの論理信号を1つのピンに組
み合わせ、2本の信号線の論理状態に応じて4つの異な
る電圧のうちの1つを生成することができる。
左右へのプロセッサ間接続を有し、その結果、16ビッ
トのプロセッサ要素(PE)を隣同士で接続して、様々
なデータ・フォーマットに効果的に適応できるようにな
った、SIMDアレイ・プロセッサを論じている。たと
えば、64ビットの浮動小数点ワードは、連続するPE
によって処理され、その際に、高位のPEが指数部を処
理し、他の3つが連動されて48ビットの小数部を処理
する。制御と繰上り/借りをPE間で連結すると、これ
が達成できる。1チップに、16個のデータ用16ビッ
トPE、2個のアドレス生成用PEおよび2個の予備P
Eを含むことができる。この特許の入出力は、4レベル
信号手法を使用して、2つの論理信号を1つのピンに組
み合わせ、2本の信号線の論理状態に応じて4つの異な
る電圧のうちの1つを生成することができる。
【0060】この特許では、制御機能または制御装置機
能を提供しなければならないが、それに関してはほとん
ど言及されていない。ただし、このアレイには、様々な
サイズのデータに作用するためにPEをどうグループ化
するかを定義する大域MASK(マスク)と、あるネス
トのマスタPEから右側のスレーブPEへ伝播するロー
カルNEST(ネスト)制御が供給される。明らかにこ
のPEは、それがどのグループに属するのかを判断でき
ず、またどの処理も、PEが処理中の、NEST制御以
外のデータに基づくという意味でのローカル自律性を有
していない。この特許明細書には、隣接するPE同士を
連結して単一のプロセッサとして動作させることによっ
て、16ビット、32ビットおよび64ビットのデータ
幅を処理するようにチップ内で水平に拡張できる、SI
MDチップ用の可能な設計が記載されている。したがっ
て、これは、メモリと論理機構を同一チップ上に有する
本発明のピケット・マシンの開発後に実施できるなんら
かの概念に適用できるとみなすこともでき、したがっ
て、これによって本発明の概念が拡張されることにな
る。並列処理要素を1チップ上に設けることが可能であ
る。ただし、この特許明細書では、処理要素をどのよう
に組み合わせれば、ある処理要素が参加要素であるか否
かをその処理要素が知るまたは判断できるようになるか
は示されていない。この特許明細書では、グループ化が
大域制御MASKによって指示される。本発明を理解し
た後にこの特許を検討すれば、ローカル自律性の能力が
ないことが明らかになろう。
能を提供しなければならないが、それに関してはほとん
ど言及されていない。ただし、このアレイには、様々な
サイズのデータに作用するためにPEをどうグループ化
するかを定義する大域MASK(マスク)と、あるネス
トのマスタPEから右側のスレーブPEへ伝播するロー
カルNEST(ネスト)制御が供給される。明らかにこ
のPEは、それがどのグループに属するのかを判断でき
ず、またどの処理も、PEが処理中の、NEST制御以
外のデータに基づくという意味でのローカル自律性を有
していない。この特許明細書には、隣接するPE同士を
連結して単一のプロセッサとして動作させることによっ
て、16ビット、32ビットおよび64ビットのデータ
幅を処理するようにチップ内で水平に拡張できる、SI
MDチップ用の可能な設計が記載されている。したがっ
て、これは、メモリと論理機構を同一チップ上に有する
本発明のピケット・マシンの開発後に実施できるなんら
かの概念に適用できるとみなすこともでき、したがっ
て、これによって本発明の概念が拡張されることにな
る。並列処理要素を1チップ上に設けることが可能であ
る。ただし、この特許明細書では、処理要素をどのよう
に組み合わせれば、ある処理要素が参加要素であるか否
かをその処理要素が知るまたは判断できるようになるか
は示されていない。この特許明細書では、グループ化が
大域制御MASKによって指示される。本発明を理解し
た後にこの特許を検討すれば、ローカル自律性の能力が
ないことが明らかになろう。
【0061】米国特許第4748585号明細書は、並
列プロセッサの諸要素をセグメントに割り当てて、様々
な長さのデータに適応させる機構を論じている。これ
は、米国特許第4831519号明細書に類似してい
る。ただし、この明細書は、より長いワード長の処理を
得るために互いに連結された単一プロセッサのグループ
に関するものである。各単一プロセッサは、マイクロプ
ロセッサ、ALU、レジスタ(REG)等を有するとい
う点で、完全である。この特許の明白な教示は、複数の
単一プロセッサを互いにロック・ステップして、幅広の
データ・ワードに作用することができることである。セ
グメント化の制御は、大域制御により組合せコードと大
域条件コードを使って行われているように見える。MI
MDアレイとしてこの特許は、SIMDアレイの能力を
提供できない。本発明が提供する改良は、以前に着想さ
れたことのない、ピケットの連結に関するものであっ
て、この特許の中心課題である、アレイを互いに結合し
てより幅広のプロセッサにするためのMIMDアレイの
制御に関するものではない。
列プロセッサの諸要素をセグメントに割り当てて、様々
な長さのデータに適応させる機構を論じている。これ
は、米国特許第4831519号明細書に類似してい
る。ただし、この明細書は、より長いワード長の処理を
得るために互いに連結された単一プロセッサのグループ
に関するものである。各単一プロセッサは、マイクロプ
ロセッサ、ALU、レジスタ(REG)等を有するとい
う点で、完全である。この特許の明白な教示は、複数の
単一プロセッサを互いにロック・ステップして、幅広の
データ・ワードに作用することができることである。セ
グメント化の制御は、大域制御により組合せコードと大
域条件コードを使って行われているように見える。MI
MDアレイとしてこの特許は、SIMDアレイの能力を
提供できない。本発明が提供する改良は、以前に着想さ
れたことのない、ピケットの連結に関するものであっ
て、この特許の中心課題である、アレイを互いに結合し
てより幅広のプロセッサにするためのMIMDアレイの
制御に関するものではない。
【0062】米国特許第4825359号明細書では、
データのアレイを処理するためのプロセッサを論じてお
り、その計算は、高速フーリエ変換(FFT)であろう
と思われる。このプロセッサは、計算の1ステップを行
うようにそれぞれをプログラミングすることのできる、
複数の処理オペレータを含んでいる。これは、複雑な処
理を実行する際にパイプラインとして動作する、複数の
処理オペレータを有する複合単一プロセッサとして分類
できるはずである。この特許では、グループ化も自律性
も論じていず、むしろ、広い分野のオペレータに適合す
るためのなんらかの改良を行うことが目的であると思わ
れる。
データのアレイを処理するためのプロセッサを論じてお
り、その計算は、高速フーリエ変換(FFT)であろう
と思われる。このプロセッサは、計算の1ステップを行
うようにそれぞれをプログラミングすることのできる、
複数の処理オペレータを含んでいる。これは、複雑な処
理を実行する際にパイプラインとして動作する、複数の
処理オペレータを有する複合単一プロセッサとして分類
できるはずである。この特許では、グループ化も自律性
も論じていず、むしろ、広い分野のオペレータに適合す
るためのなんらかの改良を行うことが目的であると思わ
れる。
【0063】米国特許第4905143号明細書は、2
つのタイプの変数のすべての組合せの計算と、これらの
計算結果を使用して、データのローカル依存性を有する
再帰方程式の計算を実行するための、アレイ・プロセッ
サを論じたものであり、その議論によれば、音声認識の
パターン照合の際に使用される動的時間ワープ理論また
は動的プログラミング理論に基づく照合計算を特徴とす
る。理解が難しいが、このプロセッサは、ある種のシス
トリックMIMDチューブとして機能することが意図さ
れていると思われる。PEは、リングに配置され、中間
結果をリング内の次のPEに渡すものと思われる。各P
Eは、それ自体の命令メモリと、その他の特徴を有す
る。この特許は、SIMDアレイ内でのPEの自律性を
論じておらず、さらに、このPEは、リングへの物理的
な配置によるグループ化を除いて、グループ化されてい
ないと思われる。
つのタイプの変数のすべての組合せの計算と、これらの
計算結果を使用して、データのローカル依存性を有する
再帰方程式の計算を実行するための、アレイ・プロセッ
サを論じたものであり、その議論によれば、音声認識の
パターン照合の際に使用される動的時間ワープ理論また
は動的プログラミング理論に基づく照合計算を特徴とす
る。理解が難しいが、このプロセッサは、ある種のシス
トリックMIMDチューブとして機能することが意図さ
れていると思われる。PEは、リングに配置され、中間
結果をリング内の次のPEに渡すものと思われる。各P
Eは、それ自体の命令メモリと、その他の特徴を有す
る。この特許は、SIMDアレイ内でのPEの自律性を
論じておらず、さらに、このPEは、リングへの物理的
な配置によるグループ化を除いて、グループ化されてい
ないと思われる。
【0064】米国特許第4910665号明細書は、各
PEがその隣接のPE8個に直接アクセスできる、2次
元SIMDアレイ・プロセッサ相互接続方式を論じたも
のである。通信媒体は、隅にある4つの隣接PEを相互
接続する点線のネットワークである。SIMDマシンが
開示されているが、PEのローカル自律性またはグルー
プ化を提供できる、あるいは提供すべきであるという考
えはやはり存在せず、ましてや本明細書に記載の方法で
提供されることはない。
PEがその隣接のPE8個に直接アクセスできる、2次
元SIMDアレイ・プロセッサ相互接続方式を論じたも
のである。通信媒体は、隅にある4つの隣接PEを相互
接続する点線のネットワークである。SIMDマシンが
開示されているが、PEのローカル自律性またはグルー
プ化を提供できる、あるいは提供すべきであるという考
えはやはり存在せず、ましてや本明細書に記載の方法で
提供されることはない。
【0065】米国特許第4925311号明細書には、
多重プロセッサ内のプロセッサを、ある問題に対してグ
ループとして一緒に作用するように割り当てることので
きる、多重プロセッサ・システムが開示されている。さ
らに、各プロセッサは、プロセッサ間でメッセージ、セ
マフォおよび他の制御を受け渡すことの他に、それ自体
をグループに追加し、それ自体をグループから除去する
ことができる。ただし、この特許は、本質的にMIMD
であるため、本明細書に記載のようにSIMDアレイ内
のPEにローカル自律性をもたせることに関する示唆は
ない。その代わりに、この多重プロセッサ・システム内
の各プロセッサは、RAM、マイクロプロセッサ、およ
びなんらかの機能ユニット(ディスク制御装置)を含む
ネットワーク・インターフェース制御装置を有する。グ
ループ化は、各プロセッサのネットワーク・インターフ
ェースによって制御される。本発明では、このように手
の込んだタスク区分が不要であり、グループ化が各ピケ
ット内で制御される。
多重プロセッサ内のプロセッサを、ある問題に対してグ
ループとして一緒に作用するように割り当てることので
きる、多重プロセッサ・システムが開示されている。さ
らに、各プロセッサは、プロセッサ間でメッセージ、セ
マフォおよび他の制御を受け渡すことの他に、それ自体
をグループに追加し、それ自体をグループから除去する
ことができる。ただし、この特許は、本質的にMIMD
であるため、本明細書に記載のようにSIMDアレイ内
のPEにローカル自律性をもたせることに関する示唆は
ない。その代わりに、この多重プロセッサ・システム内
の各プロセッサは、RAM、マイクロプロセッサ、およ
びなんらかの機能ユニット(ディスク制御装置)を含む
ネットワーク・インターフェース制御装置を有する。グ
ループ化は、各プロセッサのネットワーク・インターフ
ェースによって制御される。本発明では、このように手
の込んだタスク区分が不要であり、グループ化が各ピケ
ット内で制御される。
【0066】米国特許第4943912号明細書では、
アレイ制御装置が、アレイ内の各PEのメモリにプログ
ラムをロードし、その後、PE群に対して、それらが実
行を開始すべき位置を識別する手順開始コマンドを発行
する、NEWSネットワークによって接続されたMIM
Dアレイを論じている。各PEは、タスク・パターンを
格納するレジスタと、PEのタスク・パターンを大域タ
スク・パターン・コマンドと突き合わせるための比較機
構を含んでいる。この比較の結果を使って、PE内のプ
ログラム開始点を選択し、あるいはPEを遊休状態に移
行させる。このMIMD特許では、本明細書に記載する
ようなSIMDアレイ内のPEでの自律性は示唆されて
いない。比較機構とそれが生成する結果を使用して、異
なる並行タスクのためにPEを分類またはグループ化す
ることはできる。本明細書では、SIMD環境内で、P
Eがどのようにしてそれ自体を分類またはグループ化で
きるようになるかを詳述する。その結果、SIMDコー
ドの一部の実行中に、本発明のピケットの一部が分離さ
れて活動状態になる。その後、本発明のマシンは、処理
を進めて、処理のために別のグループを活動化すること
ができる。
アレイ制御装置が、アレイ内の各PEのメモリにプログ
ラムをロードし、その後、PE群に対して、それらが実
行を開始すべき位置を識別する手順開始コマンドを発行
する、NEWSネットワークによって接続されたMIM
Dアレイを論じている。各PEは、タスク・パターンを
格納するレジスタと、PEのタスク・パターンを大域タ
スク・パターン・コマンドと突き合わせるための比較機
構を含んでいる。この比較の結果を使って、PE内のプ
ログラム開始点を選択し、あるいはPEを遊休状態に移
行させる。このMIMD特許では、本明細書に記載する
ようなSIMDアレイ内のPEでの自律性は示唆されて
いない。比較機構とそれが生成する結果を使用して、異
なる並行タスクのためにPEを分類またはグループ化す
ることはできる。本明細書では、SIMD環境内で、P
Eがどのようにしてそれ自体を分類またはグループ化で
きるようになるかを詳述する。その結果、SIMDコー
ドの一部の実行中に、本発明のピケットの一部が分離さ
れて活動状態になる。その後、本発明のマシンは、処理
を進めて、処理のために別のグループを活動化すること
ができる。
【0067】米国特許第4967340号明細書は、各
要素が、2つのレジスタ、1つの加算器、1つの乗算器
および3つのプログラム式スイッチからなる、シストリ
ック・アレイ・プロセッサを論じたものである。このア
レイは、制御装置によって、アレイの各段または各要素
のスイッチをセットすることによって構成される。その
後、これらの段にデータを送り込んで、所望の結果を得
る。このようなプロセッサは、本発明のシステムを示唆
していない。
要素が、2つのレジスタ、1つの加算器、1つの乗算器
および3つのプログラム式スイッチからなる、シストリ
ック・アレイ・プロセッサを論じたものである。このア
レイは、制御装置によって、アレイの各段または各要素
のスイッチをセットすることによって構成される。その
後、これらの段にデータを送り込んで、所望の結果を得
る。このようなプロセッサは、本発明のシステムを示唆
していない。
【0068】米国特許第5005120号明細書は、複
数のプロセッサが存在するという意味でアレイに関する
ものである。しかしながら、この特許は、ビット直列信
号プロセッサ・アレイ内でのデータ整列に使用するため
の時間補償回路を論じたものである。このアレイの各要
素は、ALUに供給する4つのビット直列レジスタから
なる。最初のレジスタの前に時間補償回路が置かれる。
このアレイには、SIMDマシンに類似する点がない。
数のプロセッサが存在するという意味でアレイに関する
ものである。しかしながら、この特許は、ビット直列信
号プロセッサ・アレイ内でのデータ整列に使用するため
の時間補償回路を論じたものである。このアレイの各要
素は、ALUに供給する4つのビット直列レジスタから
なる。最初のレジスタの前に時間補償回路が置かれる。
このアレイには、SIMDマシンに類似する点がない。
【0069】米国特許第5020059号明細書は、障
害を発生したPEの周囲でアレイを再構成でき、基本的
な2次元メッシュ内でツリーその他のトポロジーを実現
できる、プロセッサのアレイ内で使用される一般化され
た相互接続方式に関するものである。アレイ制御アーキ
テクチャ、グループ化またはPEのなんらかの態様に関
する言及や示唆はなく、したがって、PE内での自律性
の議論は含まれていない。
害を発生したPEの周囲でアレイを再構成でき、基本的
な2次元メッシュ内でツリーその他のトポロジーを実現
できる、プロセッサのアレイ内で使用される一般化され
た相互接続方式に関するものである。アレイ制御アーキ
テクチャ、グループ化またはPEのなんらかの態様に関
する言及や示唆はなく、したがって、PE内での自律性
の議論は含まれていない。
【0070】しかし、本発明の場合、SIMDマシンの
アレイ内の処理要素またはピケットは、従来から、すべ
てのピケット内で完全に同一の動作を実行してきた。1
つまたは複数のピケットを選択的にディスエーブルし、
ローカル自律性を可能にすることを、本発明者等は必要
と認識し、開発した。
アレイ内の処理要素またはピケットは、従来から、すべ
てのピケット内で完全に同一の動作を実行してきた。1
つまたは複数のピケットを選択的にディスエーブルし、
ローカル自律性を可能にすることを、本発明者等は必要
と認識し、開発した。
【0071】米国特許第4783782号明細書は、S
IMDアレイ・プロセッサ上での試験および障害迂回へ
の適応を論じたものである。これは、本明細書の議論の
主題に関係していない。米国特許第4783782号明
細書は、前に米国特許第4831519号明細書で論じ
られたSIMDアレイ内の最高2つの不良PEを隔離す
るための製造試験時のチップ構成を論じたものである。
このチップは、欠陥データが記憶されるPROセクショ
ンを含んでいる。これは、制御装置によって読み取るこ
とができ、オンチップ資源の動的割振りに使用できる。
したがって、このチップは、プロセッサの自律性が制限
されている。
IMDアレイ・プロセッサ上での試験および障害迂回へ
の適応を論じたものである。これは、本明細書の議論の
主題に関係していない。米国特許第4783782号明
細書は、前に米国特許第4831519号明細書で論じ
られたSIMDアレイ内の最高2つの不良PEを隔離す
るための製造試験時のチップ構成を論じたものである。
このチップは、欠陥データが記憶されるPROセクショ
ンを含んでいる。これは、制御装置によって読み取るこ
とができ、オンチップ資源の動的割振りに使用できる。
したがって、このチップは、プロセッサの自律性が制限
されている。
【0072】上記に述べたこれまでのすべての努力にも
かかわらず、1台のマシンでSIMD、MIMDおよび
SIMIMD処理を実行するための、上記の並列連想プ
ロセッサ・システムまたは動的多重モード並列アレイ・
アーキテクチャに類似するものはないように思われる。
実際、SIMIMD処理、浮動小数点その他に必要な機
構は、従来技術では十分に開発されていない。
かかわらず、1台のマシンでSIMD、MIMDおよび
SIMIMD処理を実行するための、上記の並列連想プ
ロセッサ・システムまたは動的多重モード並列アレイ・
アーキテクチャに類似するものはないように思われる。
実際、SIMIMD処理、浮動小数点その他に必要な機
構は、従来技術では十分に開発されていない。
【0073】米国特許第4783738号明細書は、自
律性という態様を対象とする特許の1つである。同明細
書に記載のシステムによれば、SIMD制御装置は、ア
レイ内のすべての要素(PE)にコマンドを発行するこ
とができ、各PEは、空間依存特性またはデータ依存特
性の結果としてコマンド内の1ビットを変更または修正
することができる。実例としては、ADD/SUB(加
算/減算)、SEND/RECEIVE(送出/受取)
および、OPA/OPBに対する一般化が含まれる。こ
の機能は、線の画像処理、および像の境界の処理に使用
されるはずである。本明細書に記載の自律機能の1つと
類似する点があるが(とくに、データに依存する動作を
ALUに実行させる点)、本発明は、1動作ビットの変
更にとくに焦点を置くものではない。本発明は、ALU
機能がアレイ内の位置に特有の機能(空間的)であるこ
とには無関係である。この特許は、データ依存機能の領
域で本発明の機構のあるものと類似しているが、本発明
は、命令シーケンスのデータ依存部分(符号や条件コー
ドなど)が、単にALUに他の何かを行うよう強制する
場合に、DWIM(Do what I mean)機能を実施する。
この特許は、データ依存自律機能の領域では、明らかに
動作の際に1ビットの変更または挿入を使用する。
律性という態様を対象とする特許の1つである。同明細
書に記載のシステムによれば、SIMD制御装置は、ア
レイ内のすべての要素(PE)にコマンドを発行するこ
とができ、各PEは、空間依存特性またはデータ依存特
性の結果としてコマンド内の1ビットを変更または修正
することができる。実例としては、ADD/SUB(加
算/減算)、SEND/RECEIVE(送出/受取)
および、OPA/OPBに対する一般化が含まれる。こ
の機能は、線の画像処理、および像の境界の処理に使用
されるはずである。本明細書に記載の自律機能の1つと
類似する点があるが(とくに、データに依存する動作を
ALUに実行させる点)、本発明は、1動作ビットの変
更にとくに焦点を置くものではない。本発明は、ALU
機能がアレイ内の位置に特有の機能(空間的)であるこ
とには無関係である。この特許は、データ依存機能の領
域で本発明の機構のあるものと類似しているが、本発明
は、命令シーケンスのデータ依存部分(符号や条件コー
ドなど)が、単にALUに他の何かを行うよう強制する
場合に、DWIM(Do what I mean)機能を実施する。
この特許は、データ依存自律機能の領域では、明らかに
動作の際に1ビットの変更または挿入を使用する。
【0074】米国特許第5045995号明細書は、各
PE内のデータ条件に基づいてSIMDアレイの各PE
をイネーブルまたはディスエーブルするための機構を論
じたものである。ある大域命令が、すべてのPEに、そ
のPE内の状態を抽出し、それに応じてそのPE自体を
状況レジスタ・ビットによってイネーブルまたはディス
エーブルするように指示する。もう1つの大域命令が、
PEの状態を効果的に交換する。これらの機能を使用し
て、IF/THEN/ELSE構造体およびWHILE
/DO構造体を実施することができる。さらに、状況を
スタックして、入れ子式のイネーブル条件をサポートす
ることができる。したがって、この特許は、本明細書に
記載のイネーブル/ディスエーブル機能に関するもので
ある。しかし、この米国特許第5045995号明細書
は、(1)初期テスト、状況ビットのロード、および状
況ビットに基づくイネーブルまたはディスエーブル、
(2)すべてのディスエーブル/イネーブル・ビットを
反転して他の組のPEをイネーブルする命令、および
(3)ネスト化を実現するための記憶域、という3つの
条件を必要とするので、これに記載の装置は不必要に複
雑である。本発明では、この発明の条件(1)(2)
(3)のすべてを互いに結合せずに、機能をイネーブル
およびディスエーブルする機構を提供していることが後
で明らかになろう。本発明の機構は、米国特許第504
5995号明細書に記載の反転機能を必要としないが、
この特許に記載の装置が提供する能力よりも広範なシス
テムの能力を提供することが明らかになろう。本発明の
SIMDマシンでは、この機能を、IF命令およびEL
SE命令ならびにビデオ処理に関連する他の特徴と結び
付ける必要はない。
PE内のデータ条件に基づいてSIMDアレイの各PE
をイネーブルまたはディスエーブルするための機構を論
じたものである。ある大域命令が、すべてのPEに、そ
のPE内の状態を抽出し、それに応じてそのPE自体を
状況レジスタ・ビットによってイネーブルまたはディス
エーブルするように指示する。もう1つの大域命令が、
PEの状態を効果的に交換する。これらの機能を使用し
て、IF/THEN/ELSE構造体およびWHILE
/DO構造体を実施することができる。さらに、状況を
スタックして、入れ子式のイネーブル条件をサポートす
ることができる。したがって、この特許は、本明細書に
記載のイネーブル/ディスエーブル機能に関するもので
ある。しかし、この米国特許第5045995号明細書
は、(1)初期テスト、状況ビットのロード、および状
況ビットに基づくイネーブルまたはディスエーブル、
(2)すべてのディスエーブル/イネーブル・ビットを
反転して他の組のPEをイネーブルする命令、および
(3)ネスト化を実現するための記憶域、という3つの
条件を必要とするので、これに記載の装置は不必要に複
雑である。本発明では、この発明の条件(1)(2)
(3)のすべてを互いに結合せずに、機能をイネーブル
およびディスエーブルする機構を提供していることが後
で明らかになろう。本発明の機構は、米国特許第504
5995号明細書に記載の反転機能を必要としないが、
この特許に記載の装置が提供する能力よりも広範なシス
テムの能力を提供することが明らかになろう。本発明の
SIMDマシンでは、この機能を、IF命令およびEL
SE命令ならびにビデオ処理に関連する他の特徴と結び
付ける必要はない。
【0075】本発明の浮動小数点態様に関して、他の特
許が、関連特許明細書で参照されており、その1つに、
SIMD式に制御されるビット直列処理要素の2次元セ
ルラー・アレイに関する米国特許第4933895号明
細書がある。この開示の処理要素を用いると、通常考え
られる通り、ビット直列マシンの調節によって、条件が
満たされるまで小数部の1つを一時に1ビットずつシフ
トすることができる。この特徴は、データ自体と隣接処
理要素に基づいており、画像処理用に設計されたアレイ
の動作に適用されるはずである。米国特許第49338
95号明細書では、ビット直列浮動小数点動作が詳細に
議論されているが、バイト幅条件で発生すること、発生
し得ること、または発生すべきことに関する議論はな
い。この明細書には、直列マシンで予想されるような、
浮動小数点加算の調節部の実施で何か起こるかが記載さ
れている。まず、2つの指数部の差がとられ、次に、指
数部の差が0になるまで、選択された小数部がシフトさ
れる。
許が、関連特許明細書で参照されており、その1つに、
SIMD式に制御されるビット直列処理要素の2次元セ
ルラー・アレイに関する米国特許第4933895号明
細書がある。この開示の処理要素を用いると、通常考え
られる通り、ビット直列マシンの調節によって、条件が
満たされるまで小数部の1つを一時に1ビットずつシフ
トすることができる。この特徴は、データ自体と隣接処
理要素に基づいており、画像処理用に設計されたアレイ
の動作に適用されるはずである。米国特許第49338
95号明細書では、ビット直列浮動小数点動作が詳細に
議論されているが、バイト幅条件で発生すること、発生
し得ること、または発生すべきことに関する議論はな
い。この明細書には、直列マシンで予想されるような、
浮動小数点加算の調節部の実施で何か起こるかが記載さ
れている。まず、2つの指数部の差がとられ、次に、指
数部の差が0になるまで、選択された小数部がシフトさ
れる。
【0076】この検討から、様々な種類の並列アレイ・
マシンおよびとSIMDマシンが存在したことがわかる
であろう。さらに、浮動小数点マシンが発明されてい
る。しかし、バイト並列でプロセッサのアレイの実行に
よりデータを処理する、SIMDマシンでの浮動小数点
用の実施態様を提供することに成功したものはない。こ
のような浮動小数点計算能力が求められている。本発明
者等の「並列連想プロセッサ・システム」や、プロセッ
サのアレイ内でデータを実行できる他の並列アレイ・マ
シンなどのプロセッサでは、浮動小数点演算が、SIM
Dの悪夢の材料をすべて含んでいる。各処理要素(P
E)または各ピケットは、異なるデータ、異なる演算、
および異なるレベルの複雑さを含むことができる。これ
らの相違のすべてが、各要素が同じことを行っているS
IMDマシン上で浮動小数点を実行することの難しさを
増大させている。その1例が浮動小数点である。"Float
ing Point Implementation on a SIMD Machine"と題す
る上記の関連特許で参照される浮動小数点計算を使用す
れば、本発明によるローカル自律性が利用できる。
マシンおよびとSIMDマシンが存在したことがわかる
であろう。さらに、浮動小数点マシンが発明されてい
る。しかし、バイト並列でプロセッサのアレイの実行に
よりデータを処理する、SIMDマシンでの浮動小数点
用の実施態様を提供することに成功したものはない。こ
のような浮動小数点計算能力が求められている。本発明
者等の「並列連想プロセッサ・システム」や、プロセッ
サのアレイ内でデータを実行できる他の並列アレイ・マ
シンなどのプロセッサでは、浮動小数点演算が、SIM
Dの悪夢の材料をすべて含んでいる。各処理要素(P
E)または各ピケットは、異なるデータ、異なる演算、
および異なるレベルの複雑さを含むことができる。これ
らの相違のすべてが、各要素が同じことを行っているS
IMDマシン上で浮動小数点を実行することの難しさを
増大させている。その1例が浮動小数点である。"Float
ing Point Implementation on a SIMD Machine"と題す
る上記の関連特許で参照される浮動小数点計算を使用す
れば、本発明によるローカル自律性が利用できる。
【0077】浮動小数点の実行は、本発明のシステムに
とって重要であるが、他のいくつかの重要な計算援助手
段を列挙する。アレイ・プロセッサ内でこれらの計算援
助手段を実施すると、本発明の目的であるローカル自律
性の諸機能から利益が得られるであろう。ピケットのグ
ループ化、ローカル・テーブル索引および命令のローカ
ル実行が、3つの重要な領域である。
とって重要であるが、他のいくつかの重要な計算援助手
段を列挙する。アレイ・プロセッサ内でこれらの計算援
助手段を実施すると、本発明の目的であるローカル自律
性の諸機能から利益が得られるであろう。ピケットのグ
ループ化、ローカル・テーブル索引および命令のローカ
ル実行が、3つの重要な領域である。
【0078】ピケットが、それ自体を評価し、それ自体
を様々なグループに置くことができ、これらのグループ
のそれぞれが、処理のために順に選択できる場合、現在
使用されている能力を超えるかなりの機能を有するプロ
セッサのアレイ上で実行中の1タスク内のサブタスクを
区分することができる。この能力は"Grouping of SIMD
Pickets"と題する、関連特許で論じられている。
を様々なグループに置くことができ、これらのグループ
のそれぞれが、処理のために順に選択できる場合、現在
使用されている能力を超えるかなりの機能を有するプロ
セッサのアレイ上で実行中の1タスク内のサブタスクを
区分することができる。この能力は"Grouping of SIMD
Pickets"と題する、関連特許で論じられている。
【0079】超越関数や他の多くの重要な関数の実行
は、テーブルを使用することによって最も効率的に実施
される。プロセッサのアレイ内の各プロセッサが、デー
タ(角度値)に基づいてそれ自体のメモリ内の値を独立
して引く能力を有するならば、性能上大きな利益がもた
らされるはずである。
は、テーブルを使用することによって最も効率的に実施
される。プロセッサのアレイ内の各プロセッサが、デー
タ(角度値)に基づいてそれ自体のメモリ内の値を独立
して引く能力を有するならば、性能上大きな利益がもた
らされるはずである。
【0080】SIMD実施態様を伴うプロセッサのアレ
イ内の各プロセッサのローカル・メモリから命令を実行
すると、そのようなアレイの柔軟性が高まるはずであ
る。これが、関連特許出願第798788号明細書に記
載のSIMIMDモードの基礎となる。
イ内の各プロセッサのローカル・メモリから命令を実行
すると、そのようなアレイの柔軟性が高まるはずであ
る。これが、関連特許出願第798788号明細書に記
載のSIMIMDモードの基礎となる。
【0081】したがって、本発明が必要である。
【0082】
【発明が解決しようとする課題】ピケット自律性の目的
は、SIMDとSIMIMDを含む様々なモードで動作
できる並列アレイ・マシンを提供することである。した
がって、本発明の提供するプロセッサのSIMDアレイ
内の各要素は、アレイ制御装置からコマンドのストリー
ムを受け取る。この場合、複数の機構により、ピケット
と称する個々の処理要素を有するアレイ・マシンが、S
IMDコマンドの一部を、それ自体の独自の形で解釈で
きるようになり、各ピケットにある程度のローカル自律
性が与えられる。その結果もたらされる能力により、ピ
ケットは、SIMIMDと称するモードで命令を実行で
きるようになる。その結果もたらされるもう1つの能力
により、浮動小数点命令実行の性能が大きく向上する。
さらに別の能力により、様々な有用な形でピケットがグ
ループ化され、これによって、あるグループがドーズ
(居眠り)している間に別のグループがSIMD命令を
実行しておられるようになる。他の能力としては、テー
ブル・ルックアップ、ローカルで供給される命令コー
ド、およびデータ内容によって定義される実行がある。
SIMDモードとSIMIMDモードを用いると、デー
タの浮動小数点表現、および複数バイト幅データ・フロ
ーでデータを実行するプロセッサのアレイ内でのデータ
を用いる計算が可能になる。
は、SIMDとSIMIMDを含む様々なモードで動作
できる並列アレイ・マシンを提供することである。した
がって、本発明の提供するプロセッサのSIMDアレイ
内の各要素は、アレイ制御装置からコマンドのストリー
ムを受け取る。この場合、複数の機構により、ピケット
と称する個々の処理要素を有するアレイ・マシンが、S
IMDコマンドの一部を、それ自体の独自の形で解釈で
きるようになり、各ピケットにある程度のローカル自律
性が与えられる。その結果もたらされる能力により、ピ
ケットは、SIMIMDと称するモードで命令を実行で
きるようになる。その結果もたらされるもう1つの能力
により、浮動小数点命令実行の性能が大きく向上する。
さらに別の能力により、様々な有用な形でピケットがグ
ループ化され、これによって、あるグループがドーズ
(居眠り)している間に別のグループがSIMD命令を
実行しておられるようになる。他の能力としては、テー
ブル・ルックアップ、ローカルで供給される命令コー
ド、およびデータ内容によって定義される実行がある。
SIMDモードとSIMIMDモードを用いると、デー
タの浮動小数点表現、および複数バイト幅データ・フロ
ーでデータを実行するプロセッサのアレイ内でのデータ
を用いる計算が可能になる。
【0083】
【課題を解決するための手段】本発明の好ましい実施例
では、同一チップ上に複数の相互作用するピケット・ユ
ニットまたはPME(ピケット)を備える並列アレイ・
プロセッサ内で、本発明によって並列アレイ・プロセッ
サ用に開発された実施態様が使用できることを理解され
たい。このようなシステムは、複数のピケット・ユニッ
ト(メモリを有する処理要素)を有する。これらのユニ
ットはアレイとして配置され、メモリを有するピケット
のアレイは、セット連想メモリとして使用できる。多重
データ・ストリームを有するこのようなシステムの処理
は、場合によっては、単一命令多重データ(SIMD)
システム上で実行した方が性能がよくなる可能性があ
る。浮動小数点を有する処理システムは、単一チップ上
にコンピュータ・メモリと制御論理機構を統合したシス
テムの一部となり、これによって、チップ内で組合せを
複製し、単一チップの複製からプロセッサ・システムを
構築することができる。このチップ内では、各処理メモ
リ要素(PME)が自律プロセッサとして動作でき、外
部制御プロセッサの制御が提供され、本発明の好ましい
実施例と共に実施される時には、本発明のプロセッサ
は、より高い浮動小数点精度を有するSIMDモード・
プロセッサとして動作できる。
では、同一チップ上に複数の相互作用するピケット・ユ
ニットまたはPME(ピケット)を備える並列アレイ・
プロセッサ内で、本発明によって並列アレイ・プロセッ
サ用に開発された実施態様が使用できることを理解され
たい。このようなシステムは、複数のピケット・ユニッ
ト(メモリを有する処理要素)を有する。これらのユニ
ットはアレイとして配置され、メモリを有するピケット
のアレイは、セット連想メモリとして使用できる。多重
データ・ストリームを有するこのようなシステムの処理
は、場合によっては、単一命令多重データ(SIMD)
システム上で実行した方が性能がよくなる可能性があ
る。浮動小数点を有する処理システムは、単一チップ上
にコンピュータ・メモリと制御論理機構を統合したシス
テムの一部となり、これによって、チップ内で組合せを
複製し、単一チップの複製からプロセッサ・システムを
構築することができる。このチップ内では、各処理メモ
リ要素(PME)が自律プロセッサとして動作でき、外
部制御プロセッサの制御が提供され、本発明の好ましい
実施例と共に実施される時には、本発明のプロセッサ
は、より高い浮動小数点精度を有するSIMDモード・
プロセッサとして動作できる。
【0084】本発明の単一チップ上のセット連想並列処
理システムを用いると、その上で連想動作が実行できる
メモリから、大きな組から小さな組の「データ」を取り
出すことが可能になる。この連想動作は、典型的には厳
密比較であるが、ピケットのメモリと実行ユニットを利
用して、1組のデータ全体に対して並列に実行される。
ピケット・アレイ内では、各ピケットが、大きな組から
のデータの一部分を有する。さらに、各ピケットは、そ
の部分から一片のデータを選択する。したがって、1組
のピケットのそれぞれに含まれる一片のデータが、すべ
てのピケットによって並列に連想動作が実行される、1
組のデータを構成する。
理システムを用いると、その上で連想動作が実行できる
メモリから、大きな組から小さな組の「データ」を取り
出すことが可能になる。この連想動作は、典型的には厳
密比較であるが、ピケットのメモリと実行ユニットを利
用して、1組のデータ全体に対して並列に実行される。
ピケット・アレイ内では、各ピケットが、大きな組から
のデータの一部分を有する。さらに、各ピケットは、そ
の部分から一片のデータを選択する。したがって、1組
のピケットのそれぞれに含まれる一片のデータが、すべ
てのピケットによって並列に連想動作が実行される、1
組のデータを構成する。
【0085】本明細書では、ピケットのSIMDアレイ
内の1ピケットの設計に適用された時に、以前には実行
が困難または不可能であったタスクの動作が簡単に行え
る、複数の実施技法について論ずる。これによって、各
ピケットに、ある程度のローカル自律性が与えられる。
内の1ピケットの設計に適用された時に、以前には実行
が困難または不可能であったタスクの動作が簡単に行え
る、複数の実施技法について論ずる。これによって、各
ピケットに、ある程度のローカル自律性が与えられる。
【0086】本明細書に記載のローカル自律的特徴はす
べて、すべての参加ピケットに同時に提示されるSIM
DコマンドまたはSIMDコマンドのローカル変形とし
て実施される。これらのコマンドのうちのいくつかは、
ローカル自律機能を直接にもたらす。コマンド"LOA
D OP FROM MEMORY BUS"(メモリ
・バスから命令コードをロード)には、関連するローカ
ル変形がないが、これによってローカル選択されたコマ
ンドが確実に呼び出されるようになる。一方、コマン
ド"STORE TO A REG PER STAT"
(状況によってAレジスタにストア)は、レジスタAへ
の記憶を、ローカル状況ビットに依存するものとする。
べて、すべての参加ピケットに同時に提示されるSIM
DコマンドまたはSIMDコマンドのローカル変形とし
て実施される。これらのコマンドのうちのいくつかは、
ローカル自律機能を直接にもたらす。コマンド"LOA
D OP FROM MEMORY BUS"(メモリ
・バスから命令コードをロード)には、関連するローカ
ル変形がないが、これによってローカル選択されたコマ
ンドが確実に呼び出されるようになる。一方、コマン
ド"STORE TO A REG PER STAT"
(状況によってAレジスタにストア)は、レジスタAへ
の記憶を、ローカル状況ビットに依存するものとする。
【0087】本発明の好ましいシステムでは、各ピケッ
トが、1群または複数の機構によってイネーブルされ、
これによって、各ピケットが、様々な実行能力を有する
ことができるようになる。これらの能力により、各ピケ
ットは、ピケット内でデータを実行するために様々なモ
ードを獲得できるようになり、外部SIMD制御装置か
ら送られるのではなくピケット内でSIMDコマンドを
解釈できるようになる。この能力は、SIMDアレイの
各プロセッサが、ローカル条件に基づいて異なる動作を
実行でき、実際に実行するいくつかのモードに及んでい
る。
トが、1群または複数の機構によってイネーブルされ、
これによって、各ピケットが、様々な実行能力を有する
ことができるようになる。これらの能力により、各ピケ
ットは、ピケット内でデータを実行するために様々なモ
ードを獲得できるようになり、外部SIMD制御装置か
ら送られるのではなくピケット内でSIMDコマンドを
解釈できるようになる。この能力は、SIMDアレイの
各プロセッサが、ローカル条件に基づいて異なる動作を
実行でき、実際に実行するいくつかのモードに及んでい
る。
【0088】これらのローカル自律機能のうちのいくつ
かを組み合わせると、ピケットに、SIMDコマンド・
ストリームの制御下で短時間の間そのピケット自体のロ
ーカル・プログラム・セグメントを実行する能力を与え
ることができる。これによって、SIMDアレイ内でM
IMD能力が与えられる。このアーキテクチャをSIM
IMDと称するが、SIMIMDをサポートし、追加能
力に貢献する機構については後で述べる。これらの機能
のいくつかは、ピケットのグループ化の機構形成に参加
して、分離された計算のためピケットを選択してグルー
プにするためのかなり複雑なツールをサポートする。こ
の機能をグループ化と称するが、本発明のシステムにグ
ループ化を追加するのをサポートする機構については後
で論ずる。SIMIMDとグループ化のより詳しい説明
については、上記の関連特許明細書を参照する。
かを組み合わせると、ピケットに、SIMDコマンド・
ストリームの制御下で短時間の間そのピケット自体のロ
ーカル・プログラム・セグメントを実行する能力を与え
ることができる。これによって、SIMDアレイ内でM
IMD能力が与えられる。このアーキテクチャをSIM
IMDと称するが、SIMIMDをサポートし、追加能
力に貢献する機構については後で述べる。これらの機能
のいくつかは、ピケットのグループ化の機構形成に参加
して、分離された計算のためピケットを選択してグルー
プにするためのかなり複雑なツールをサポートする。こ
の機能をグループ化と称するが、本発明のシステムにグ
ループ化を追加するのをサポートする機構については後
で論ずる。SIMIMDとグループ化のより詳しい説明
については、上記の関連特許明細書を参照する。
【0089】これらの機能のいくつかは、SIMDマシ
ンでの浮動小数点の実施を対象とする関連特許明細書で
論じられている、効率的な浮動小数点手法の機構形成に
参加する。浮動小数点をサポートする機構が、本明細書
に記載のシステムに追加される。
ンでの浮動小数点の実施を対象とする関連特許明細書で
論じられている、効率的な浮動小数点手法の機構形成に
参加する。浮動小数点をサポートする機構が、本明細書
に記載のシステムに追加される。
【0090】本発明が提供するローカル自律性のための
機能には、下記の3つの範疇がある。 1.状況に制御されるローカル動作 2.データに制御されるローカル動作 3.プロセッサからマイクロ制御装置への状況分配 このそれぞれが、本明細書に記載のシステムに追加の能
力を提供する。
機能には、下記の3つの範疇がある。 1.状況に制御されるローカル動作 2.データに制御されるローカル動作 3.プロセッサからマイクロ制御装置への状況分配 このそれぞれが、本明細書に記載のシステムに追加の能
力を提供する。
【0091】ピケットは、前の状況に基づいてそれ自体
をオンまたはオフにすることができる。ピケットは、S
IMD制御装置からコマンドが与えられる際に、ピケッ
ト・メモリから適当な値をピケット内のドーズ・ラッチ
にロードすることによって、それ自体をドーズ・モード
にすることができる。これによって、ピケット・チップ
内の個々のピケットの内部制御用の機能を提供する「ロ
ーカル参加」自律性がもたらされる。
をオンまたはオフにすることができる。ピケットは、S
IMD制御装置からコマンドが与えられる際に、ピケッ
ト・メモリから適当な値をピケット内のドーズ・ラッチ
にロードすることによって、それ自体をドーズ・モード
にすることができる。これによって、ピケット・チップ
内の個々のピケットの内部制御用の機能を提供する「ロ
ーカル参加」自律性がもたらされる。
【0092】以下で詳細に説明する本発明の開発の結果
として、コンピュータ・システムのプロセッサのSIM
Dアレイは、データを並列に実行できる。このコンピュ
ータ・システムは、データおよび命令を相互通信するた
めピケットとして結合された、複数のアレイ処理要素を
有する。各ピケットは、ピケット内でデータを実行する
ために様々なモードを獲得できるようにし、ピケット内
でSIMDコマンドを解釈できるようにする、様々な実
行能力を各ピケットが有することができるようにする複
数の機構を有する。
として、コンピュータ・システムのプロセッサのSIM
Dアレイは、データを並列に実行できる。このコンピュ
ータ・システムは、データおよび命令を相互通信するた
めピケットとして結合された、複数のアレイ処理要素を
有する。各ピケットは、ピケット内でデータを実行する
ために様々なモードを獲得できるようにし、ピケット内
でSIMDコマンドを解釈できるようにする、様々な実
行能力を各ピケットが有することができるようにする複
数の機構を有する。
【0093】さらに、各ピケットは、SIMDアレイの
各プロセッサがローカル条件に基づいて異なる動作を実
行でき、実際に実行する複数のモードで、各ピケットが
動作できるようにする複数の機構を有する。
各プロセッサがローカル条件に基づいて異なる動作を実
行でき、実際に実行する複数のモードで、各ピケットが
動作できるようにする複数の機構を有する。
【0094】本発明の開発の結果として、各アレイ・プ
ロセッサは、SIMIMDアレイ・プロセッサ・モード
にあるものとして動作でき、複数のアレイ・プロセッサ
のうちの少なくとも1つが、SIMIMDモードで動作
できるようになる。プロセッサ・アレイ内の1要素が、
各クロック・サイクルに制御装置からコマンドを受け取
り、実行する。このコマンドのうちのいくつかは、各ピ
ケット内で解釈して、異なる動作を生成することができ
る。
ロセッサは、SIMIMDアレイ・プロセッサ・モード
にあるものとして動作でき、複数のアレイ・プロセッサ
のうちの少なくとも1つが、SIMIMDモードで動作
できるようになる。プロセッサ・アレイ内の1要素が、
各クロック・サイクルに制御装置からコマンドを受け取
り、実行する。このコマンドのうちのいくつかは、各ピ
ケット内で解釈して、異なる動作を生成することができ
る。
【0095】本発明者等は、この新しい概念を使って設
計された新しい「チップ」およびシステムを作成するこ
とにより、大規模並列プロセッサおよびその他のコンピ
ュータ・システムを作成する新しい方法を開発した。本
発明および関連出願の方法は、本明細書および関連出願
で教示される様々な概念を表したものとみなすことがで
きる。各出願に記載された構成要素を本システム中で組
み合わせて、新しいシステムを作成することができる。
また、既存の技術と組み合わせることもできる。
計された新しい「チップ」およびシステムを作成するこ
とにより、大規模並列プロセッサおよびその他のコンピ
ュータ・システムを作成する新しい方法を開発した。本
発明および関連出願の方法は、本明細書および関連出願
で教示される様々な概念を表したものとみなすことがで
きる。各出願に記載された構成要素を本システム中で組
み合わせて、新しいシステムを作成することができる。
また、既存の技術と組み合わせることもできる。
【0096】本明細書および関連出願で、ピケット・プ
ロセッサと、いわゆる拡張並列アレイ・プロセッサ(A
PAP)について詳細に記述する。ピケット・プロセッ
サがPMEを使用できることに留意されたい。ピケット
・プロセッサは、きわめて小型のアレイ・プロセッサが
好ましい、軍事の応用分野で特に役立つ。この点で、ピ
ケット・プロセッサは、APAP、すなわち本発明の拡
張並列アレイ・プロセッサに関連する好ましい実施例と
は若干異なる。しかし、共通性があり、本発明で提供し
た態様および機能は異なるマシンに使用することができ
る。
ロセッサと、いわゆる拡張並列アレイ・プロセッサ(A
PAP)について詳細に記述する。ピケット・プロセッ
サがPMEを使用できることに留意されたい。ピケット
・プロセッサは、きわめて小型のアレイ・プロセッサが
好ましい、軍事の応用分野で特に役立つ。この点で、ピ
ケット・プロセッサは、APAP、すなわち本発明の拡
張並列アレイ・プロセッサに関連する好ましい実施例と
は若干異なる。しかし、共通性があり、本発明で提供し
た態様および機能は異なるマシンに使用することができ
る。
【0097】ピケットという用語は、プロセッサおよび
メモリと、それらに組み込まれ、アレイ相互通信に適用
される通信要素とから成る、アレイ・プロセッサのn分
の1の要素を指す。
メモリと、それらに組み込まれ、アレイ相互通信に適用
される通信要素とから成る、アレイ・プロセッサのn分
の1の要素を指す。
【0098】ピケットの概念は、APAP処理アレイの
n分の1にも適用される。
n分の1にも適用される。
【0099】ピケットの概念は、データ幅、メモリ・サ
イズ、およびレジスタ数の点でAPAPと異なることが
あり得るが、APAPに代わる大規模並列実施例では、
正規アレイのn分の1の接続性を持つように構成される
が、APAPのPMEは副アレイの一部であるという点
で異なる。どちらのシステムもSIMIMDを実行する
ことができる。しかし、ピケット・プロセッサは、PE
内にMIMDを持つSIMDマシンとして構成されるの
で、SIMIMDを直接実行することができるが、MI
MD APAP構成は、SIMDをエミュレートするよ
うに制御されたMIMD PEを使ってIMIMDを実
行する。どちらのマシンもPMEを使用する。
イズ、およびレジスタ数の点でAPAPと異なることが
あり得るが、APAPに代わる大規模並列実施例では、
正規アレイのn分の1の接続性を持つように構成される
が、APAPのPMEは副アレイの一部であるという点
で異なる。どちらのシステムもSIMIMDを実行する
ことができる。しかし、ピケット・プロセッサは、PE
内にMIMDを持つSIMDマシンとして構成されるの
で、SIMIMDを直接実行することができるが、MI
MD APAP構成は、SIMDをエミュレートするよ
うに制御されたMIMD PEを使ってIMIMDを実
行する。どちらのマシンもPMEを使用する。
【0100】どちらのシステムも、アレイ通信ネットワ
ークによって相互接続された^N^個の要素を持つアレイ
のアレイ処理ユニットを備える、並列アレイ・プロセッ
サとして構成することができる。ここで、プロセッサ・
アレイのN分の1は、処理要素、それに関連するメモ
リ、制御バス・インタフェース、およびアレイ通信ネッ
トワークの一部である。
ークによって相互接続された^N^個の要素を持つアレイ
のアレイ処理ユニットを備える、並列アレイ・プロセッ
サとして構成することができる。ここで、プロセッサ・
アレイのN分の1は、処理要素、それに関連するメモ
リ、制御バス・インタフェース、およびアレイ通信ネッ
トワークの一部である。
【0101】並列アレイ・プロセッサは、2つのモード
の一方または両方で動作するように処理ユニットに指令
することができ、処理ユニットがSIMD動作およびM
IMD動作のためにこれらの2つのモード間を自由に移
動することができる、2重動作モード機能を有する。そ
の際に、SIMDがその編成のモードである時は、処理
ユニットは、各要素にそれ自体の命令をSIMIMDモ
ードで実行するよう指令することができ、そのMIMD
が処理ユニット編成の実施モードの時は、処理ユニット
は、MIMD実行をシミュレートするためにアレイの選
択された要素を同期させることができる。本明細書では
これをMIMD−SIMDと呼ぶ。
の一方または両方で動作するように処理ユニットに指令
することができ、処理ユニットがSIMD動作およびM
IMD動作のためにこれらの2つのモード間を自由に移
動することができる、2重動作モード機能を有する。そ
の際に、SIMDがその編成のモードである時は、処理
ユニットは、各要素にそれ自体の命令をSIMIMDモ
ードで実行するよう指令することができ、そのMIMD
が処理ユニット編成の実施モードの時は、処理ユニット
は、MIMD実行をシミュレートするためにアレイの選
択された要素を同期させることができる。本明細書では
これをMIMD−SIMDと呼ぶ。
【0102】どちらのシステムでも、並列アレイ・プロ
セッサは、アレイの要素間で情報をやり取りするための
経路を有するアレイ通信ネットワークを提供する。情報
の動きは、次の2つの方式のどちらかで指示することが
できる。第1の方式では、アレイ制御装置が、すべての
メッセージが同時に同一の方向に移動するように指示
し、したがって移動されるデータがその宛先を定義する
ことはない。第2の方式では、各メッセージが自分で経
路を指定し、メッセージの始めにあるヘッダが宛先を定
義する。
セッサは、アレイの要素間で情報をやり取りするための
経路を有するアレイ通信ネットワークを提供する。情報
の動きは、次の2つの方式のどちらかで指示することが
できる。第1の方式では、アレイ制御装置が、すべての
メッセージが同時に同一の方向に移動するように指示
し、したがって移動されるデータがその宛先を定義する
ことはない。第2の方式では、各メッセージが自分で経
路を指定し、メッセージの始めにあるヘッダが宛先を定
義する。
【0103】並列アレイ・プロセッサ・アレイのセグメ
ントは、単一の半導体チップ上に設けた処理ユニットの
複数のコピーを有する。アレイのセグメントの各コピー
は、アレイ通信ネットワークのうちそのセグメントと関
連する部分と、アレイのそのセグメント部分をアレイの
他のセグメントと継目なしに接続してアレイ通信ネット
ワークを拡張できるようにするためのバッファ、ドライ
バ、マルチプレクサ、および制御機構とを含む。
ントは、単一の半導体チップ上に設けた処理ユニットの
複数のコピーを有する。アレイのセグメントの各コピー
は、アレイ通信ネットワークのうちそのセグメントと関
連する部分と、アレイのそのセグメント部分をアレイの
他のセグメントと継目なしに接続してアレイ通信ネット
ワークを拡張できるようにするためのバッファ、ドライ
バ、マルチプレクサ、および制御機構とを含む。
【0104】制御装置からの制御バスまたは制御経路が
各処理ユニットごとに設けられ、制御バスがアレイの各
要素に延びて、その活動を制御するようになっている。
各処理ユニットごとに設けられ、制御バスがアレイの各
要素に延びて、その活動を制御するようになっている。
【0105】並列アレイの各処理要素セグメントは、プ
ロセッサ・メモリ要素の複数のコピーを含む。プロセッ
サ・メモリ要素は、単一の半導体チップの範囲内に含ま
れ、アレイの1セグメントを有し、チップ内に含まれる
アレイ・セグメントへの制御の通信をサポートするため
にアレイ制御バスの一部分およびレジスタ・バッファを
含む。
ロセッサ・メモリ要素の複数のコピーを含む。プロセッ
サ・メモリ要素は、単一の半導体チップの範囲内に含ま
れ、アレイの1セグメントを有し、チップ内に含まれる
アレイ・セグメントへの制御の通信をサポートするため
にアレイ制御バスの一部分およびレジスタ・バッファを
含む。
【0106】どちらのシステムも、メッシュ移動および
経路指定移動を実施することができる。通常、APAP
は、チップ上の8個の要素がある方式で相互に関連し、
チップ同士は別の方式で相互に関連する、2重相互接続
構造を実施する。上述のように、一般に、チップ上での
プログラマブル経路指定によってPME間にリンクが確
立されるが、ノードは別の方式で関連させることがで
き、通常はそのようになっている。一般に、チップ上の
正規APAP構造は2×4メッシュであり、ノード相互
接続は経路指定された疎8進Nキューブとすることがで
きる。どちらのシステムも、PE間にPE間相互通信経
路を有し、2地点間経路からマトリックスを構成するこ
とができる。
経路指定移動を実施することができる。通常、APAP
は、チップ上の8個の要素がある方式で相互に関連し、
チップ同士は別の方式で相互に関連する、2重相互接続
構造を実施する。上述のように、一般に、チップ上での
プログラマブル経路指定によってPME間にリンクが確
立されるが、ノードは別の方式で関連させることがで
き、通常はそのようになっている。一般に、チップ上の
正規APAP構造は2×4メッシュであり、ノード相互
接続は経路指定された疎8進Nキューブとすることがで
きる。どちらのシステムも、PE間にPE間相互通信経
路を有し、2地点間経路からマトリックスを構成するこ
とができる。
【0107】このような背景および見通しの上に立っ
て、図面を参照しながら、本発明の好ましい実施例に関
する本発明の特徴および態様について詳細に説明するこ
とにする。このシステムの追加の詳細は、以下の説明と
関連特許に出ている。
て、図面を参照しながら、本発明の好ましい実施例に関
する本発明の特徴および態様について詳細に説明するこ
とにする。このシステムの追加の詳細は、以下の説明と
関連特許に出ている。
【0108】
【実施例】以下、本発明の好ましい実施例について説明
する。まず、好ましい浮動小数点実施例の一般的考察か
ら始める。浮動小数点実施態様のこの実施例は、(ピケ
ットとして形成された)処理要素の並列アレイで使用す
ることが好ましいが、従来技術の並列アレイ・プロセッ
サで使用することができる。したがって、より適切な方
向付けを与えるため、そのようなシステムについて考察
するのが適切であろう。
する。まず、好ましい浮動小数点実施例の一般的考察か
ら始める。浮動小数点実施態様のこの実施例は、(ピケ
ットとして形成された)処理要素の並列アレイで使用す
ることが好ましいが、従来技術の並列アレイ・プロセッ
サで使用することができる。したがって、より適切な方
向付けを与えるため、そのようなシステムについて考察
するのが適切であろう。
【0109】図面を参照すると、図1は、ヨーロッパ特
許出願第88307855/88−A号および英国特許
出願第1445714号に一般に記載されている種類
の、典型的な従来技術のSIMDシステムを表すことを
理解されたい。そのような従来技術の装置では、SIM
Dコンピュータは、それぞれが複数のSIMDメモリ・
デバイスの1つと関連する複数の並列リンク・ビット直
列プロセッサを含む、並列アレイ・プロセッサを有する
単一命令複数データ・コンピュータである。入出力シス
テムは、SIMDユニットへのステージング・システム
として働き、ホスト・コンピュータ(メインフレームま
たはマイクロプロセッサでよい)とSIMDコンピュー
タの間での両方向2次元データ転送用の一時記憶域を備
える。入出力システムは、ホスト・コンピュータと一時
記憶手段の間のデータの流れを制御し、一時記憶域と、
バッファ・セクションまたは大規模メモリの区画として
通常編成される、複数のSIMDメモリ・デバイスとの
間でのデータの流れを制御するための入出力処理手段を
含む。したがって、入出力システムの入力動作は、ホス
ト・コンピュータ・メモリから一時記憶域へのデータの
転送と、第2ステップでの一時記憶域からSIMDメモ
リ・デバイスへのデータの転送を伴う。出力の場合も、
2次元バスを介してホスト・コンピュータとSIMDコ
ンピュータの間でデータを転送する、2ステップ処理が
行われる。入出力転送用の入出力システムは、別個のユ
ニット、またはホスト内のサブユニットとすることもで
きるが、多くの場合、SIMDコンピュータ内の一ユニ
ットであり、SIMD制御装置が一時入出力バッファ記
憶域の制御機構として働く。
許出願第88307855/88−A号および英国特許
出願第1445714号に一般に記載されている種類
の、典型的な従来技術のSIMDシステムを表すことを
理解されたい。そのような従来技術の装置では、SIM
Dコンピュータは、それぞれが複数のSIMDメモリ・
デバイスの1つと関連する複数の並列リンク・ビット直
列プロセッサを含む、並列アレイ・プロセッサを有する
単一命令複数データ・コンピュータである。入出力シス
テムは、SIMDユニットへのステージング・システム
として働き、ホスト・コンピュータ(メインフレームま
たはマイクロプロセッサでよい)とSIMDコンピュー
タの間での両方向2次元データ転送用の一時記憶域を備
える。入出力システムは、ホスト・コンピュータと一時
記憶手段の間のデータの流れを制御し、一時記憶域と、
バッファ・セクションまたは大規模メモリの区画として
通常編成される、複数のSIMDメモリ・デバイスとの
間でのデータの流れを制御するための入出力処理手段を
含む。したがって、入出力システムの入力動作は、ホス
ト・コンピュータ・メモリから一時記憶域へのデータの
転送と、第2ステップでの一時記憶域からSIMDメモ
リ・デバイスへのデータの転送を伴う。出力の場合も、
2次元バスを介してホスト・コンピュータとSIMDコ
ンピュータの間でデータを転送する、2ステップ処理が
行われる。入出力転送用の入出力システムは、別個のユ
ニット、またはホスト内のサブユニットとすることもで
きるが、多くの場合、SIMDコンピュータ内の一ユニ
ットであり、SIMD制御装置が一時入出力バッファ記
憶域の制御機構として働く。
【0110】SIMDコンピュータ自体は、複数の処理
要素と、個々の処理要素と複数の従来の別個のSIMD
メモリ・デバイスを接続するネットワークとを有する、
プロセッサ・アレイを含んでいる。SIMDコンピュー
タは、リンクされて並列に動作する多数の個別の処理要
素を有する、並列アレイ・プロセッサである。SIMD
コンピュータは、処理要素用の命令ストリームを生成
し、かつコンピュータに必要なタイミング信号を供給す
る制御ユニットを含む。様々な処理要素を相互接続する
ネットワークは、個々の処理要素用の何らかの形の相互
接続方式を含む。この相互接続は、メッシュ、多形トー
ラス、ハイパーキューブなど多数のトポロジーを採用す
ることができる。複数のメモリ・デバイスは、個々の処
理要素のビット・データを即時に記憶するためのもので
ある。処理要素の数と、大規模メモリの前記のバッファ
区画とすることができるメモリ・デバイスの数との間に
は、1対1の対応関係がある。
要素と、個々の処理要素と複数の従来の別個のSIMD
メモリ・デバイスを接続するネットワークとを有する、
プロセッサ・アレイを含んでいる。SIMDコンピュー
タは、リンクされて並列に動作する多数の個別の処理要
素を有する、並列アレイ・プロセッサである。SIMD
コンピュータは、処理要素用の命令ストリームを生成
し、かつコンピュータに必要なタイミング信号を供給す
る制御ユニットを含む。様々な処理要素を相互接続する
ネットワークは、個々の処理要素用の何らかの形の相互
接続方式を含む。この相互接続は、メッシュ、多形トー
ラス、ハイパーキューブなど多数のトポロジーを採用す
ることができる。複数のメモリ・デバイスは、個々の処
理要素のビット・データを即時に記憶するためのもので
ある。処理要素の数と、大規模メモリの前記のバッファ
区画とすることができるメモリ・デバイスの数との間に
は、1対1の対応関係がある。
【0111】たとえば、図1に示すように、ホスト・プ
ロセッサ28が設けられる。このプロセッサを使用し
て、アレイ制御装置14(一時記憶域バッファを含む)
にマイクロコード・プログラムをロードし、アレイ制御
装置14とデータを交換し、ホストと制御装置の間のデ
ータ・バス30およびアドレス/制御バス31を介して
アレイ制御装置14の状況を監視する。この例のホスト
・プロセッサは、メインフレームやパーソナル・コンピ
ュータなど適当な汎用コンピュータなら何でもよい。こ
の従来技術の例では、アレイのアレイ・プロセッサを2
次元的に示してあるが、アレイを3次元クラスタ配列や
4次元クラスタ配列など異なる編成にすることもでき
る。SIMDアレイ・プロセッサは、処理要素P(i,
j)のアレイ12と、処理要素P(i,j)に大域命令
のストリームを発行するためのアレイ制御装置14を備
えている。図1には示してないが、この従来技術の例
は、一時に1個のビットに作用する処理要素を有し、そ
の処理要素に関連するメモリ内の区画である記憶域のブ
ロックと関連づけられている。処理要素は、NEWS
(北、東、西、南)ネットワークにより、両方向ビット
線でそれぞれの隣接処理要素と接続される。すなわち、
処理要素P(i,j)は、北、東、西、南の各方向でそ
れぞれ処理要素P(i−1,j)、P(i,j+1)、
P(i,j−1)、P(i+1,j)に接続される。
ロセッサ28が設けられる。このプロセッサを使用し
て、アレイ制御装置14(一時記憶域バッファを含む)
にマイクロコード・プログラムをロードし、アレイ制御
装置14とデータを交換し、ホストと制御装置の間のデ
ータ・バス30およびアドレス/制御バス31を介して
アレイ制御装置14の状況を監視する。この例のホスト
・プロセッサは、メインフレームやパーソナル・コンピ
ュータなど適当な汎用コンピュータなら何でもよい。こ
の従来技術の例では、アレイのアレイ・プロセッサを2
次元的に示してあるが、アレイを3次元クラスタ配列や
4次元クラスタ配列など異なる編成にすることもでき
る。SIMDアレイ・プロセッサは、処理要素P(i,
j)のアレイ12と、処理要素P(i,j)に大域命令
のストリームを発行するためのアレイ制御装置14を備
えている。図1には示してないが、この従来技術の例
は、一時に1個のビットに作用する処理要素を有し、そ
の処理要素に関連するメモリ内の区画である記憶域のブ
ロックと関連づけられている。処理要素は、NEWS
(北、東、西、南)ネットワークにより、両方向ビット
線でそれぞれの隣接処理要素と接続される。すなわち、
処理要素P(i,j)は、北、東、西、南の各方向でそ
れぞれ処理要素P(i−1,j)、P(i,j+1)、
P(i,j−1)、P(i+1,j)に接続される。
【0112】この典型的な例では、NEWSネットワー
クは、そのエッジでトロイド状に接続され、北のエッジ
と南のエッジが両方向に相互接続され、西のエッジと東
のエッジも同様に相互接続される。データをプロセッサ
のアレイに入出力できるようにするため、制御装置とア
レイの間のデータ・バス26がNEWSネットワークに
接続される。図のように、このデータ・バス26はアレ
イの東西の境界に接続されている。トロイド状の東西N
EWS接続に接続された両方向3状態ドライバにより、
東西方向の代わりに南北境界に接続することも、東西境
界と南北境界の両方に接続することもできる。この例の
処理要素の数が、この例のように16×16ではなく3
2×32であったなら、後述する好ましい実施例の場合
と同様に、従来技術でも1024個の処理要素が実現さ
れるはずである。図では、単一線は単一ビット線を示
し、機能要素を接続する2重線は複数の接続線またはバ
スを表すのに使用する。
クは、そのエッジでトロイド状に接続され、北のエッジ
と南のエッジが両方向に相互接続され、西のエッジと東
のエッジも同様に相互接続される。データをプロセッサ
のアレイに入出力できるようにするため、制御装置とア
レイの間のデータ・バス26がNEWSネットワークに
接続される。図のように、このデータ・バス26はアレ
イの東西の境界に接続されている。トロイド状の東西N
EWS接続に接続された両方向3状態ドライバにより、
東西方向の代わりに南北境界に接続することも、東西境
界と南北境界の両方に接続することもできる。この例の
処理要素の数が、この例のように16×16ではなく3
2×32であったなら、後述する好ましい実施例の場合
と同様に、従来技術でも1024個の処理要素が実現さ
れるはずである。図では、単一線は単一ビット線を示
し、機能要素を接続する2重線は複数の接続線またはバ
スを表すのに使用する。
【0113】この従来技術の例では、アレイ制御装置
が、命令バス18を介して処理要素に命令を並列に発行
し、行選択線20および列選択線22を介してそれぞれ
行選択信号および列選択信号を発行する。これらの命令
は、処理要素に、記憶域からデータをロードさせ、それ
を処理させ、その後再度記憶域に格納させる。この目的
のため、各処理要素はメイン・メモリのビット・スライ
ス(セクションまたはバッファ)にアクセスすることが
できる。したがって、論理的には、アレイ・プロセッサ
のメイン・メモリは、1024個の処理要素のアレイ用
の1024個の区画スライスに分けられる。すなわち、
1転送ステップで、一時に最大32個の32ビット・ワ
ードが記憶域にまたは記憶域から転送できる。読取り動
作または書込み動作を実行するため、メモリは、アドレ
ス・バス24を介してメモリ・アドレス線に供給される
インデックス・アドレスによって指定アドレスされ、各
処理要素に読取り命令または書込み命令が並列に供給さ
れる。読取り動作時には、行選択線上の行選択信号およ
び列選択線上の列選択信号が、動作を実行すべき処理要
素はどれかを識別する。したがって、この例では、アレ
イが32×32のとき、メモリから、選択された行の3
2個の処理要素に単一の32ビット・ワードを読み込む
ことが可能である。処理要素は、スライスまたは1ビッ
ト幅のメモリ・ブロック(i,j)と関連付けられる。
このスライスまたはブロック・メモリは、関連する個々
の処理要素と論理的に1対1に関連付けられるが、別の
チップ上では物理的に分離することができ、通常はそう
される。この従来技術のアーキテクチャでは、どのよう
にすれば単一のチップ上に上記のアレイ・プロセッサを
製造できるのかは不明である。本発明のピケットは、下
記の種類の単一のチップ上にプロセッサのアレイおよび
適切なメモリを備えて製造することができる。
が、命令バス18を介して処理要素に命令を並列に発行
し、行選択線20および列選択線22を介してそれぞれ
行選択信号および列選択信号を発行する。これらの命令
は、処理要素に、記憶域からデータをロードさせ、それ
を処理させ、その後再度記憶域に格納させる。この目的
のため、各処理要素はメイン・メモリのビット・スライ
ス(セクションまたはバッファ)にアクセスすることが
できる。したがって、論理的には、アレイ・プロセッサ
のメイン・メモリは、1024個の処理要素のアレイ用
の1024個の区画スライスに分けられる。すなわち、
1転送ステップで、一時に最大32個の32ビット・ワ
ードが記憶域にまたは記憶域から転送できる。読取り動
作または書込み動作を実行するため、メモリは、アドレ
ス・バス24を介してメモリ・アドレス線に供給される
インデックス・アドレスによって指定アドレスされ、各
処理要素に読取り命令または書込み命令が並列に供給さ
れる。読取り動作時には、行選択線上の行選択信号およ
び列選択線上の列選択信号が、動作を実行すべき処理要
素はどれかを識別する。したがって、この例では、アレ
イが32×32のとき、メモリから、選択された行の3
2個の処理要素に単一の32ビット・ワードを読み込む
ことが可能である。処理要素は、スライスまたは1ビッ
ト幅のメモリ・ブロック(i,j)と関連付けられる。
このスライスまたはブロック・メモリは、関連する個々
の処理要素と論理的に1対1に関連付けられるが、別の
チップ上では物理的に分離することができ、通常はそう
される。この従来技術のアーキテクチャでは、どのよう
にすれば単一のチップ上に上記のアレイ・プロセッサを
製造できるのかは不明である。本発明のピケットは、下
記の種類の単一のチップ上にプロセッサのアレイおよび
適切なメモリを備えて製造することができる。
【0114】この従来技術の例の処理要素P(i,j)
はそれ自体、ALUと、それぞれ単一ビットの情報を格
納することができる、繰上げを含む入力レジスタおよび
出力レジスタとを備えていることを理解されたい。マル
チプレクサが、ALUの入出力に接続され、かつ個々の
処理要素P(i,j)に関連するメモリのスライス
(i,j)の両方向データ・ポートに接続されている。
はそれ自体、ALUと、それぞれ単一ビットの情報を格
納することができる、繰上げを含む入力レジスタおよび
出力レジスタとを備えていることを理解されたい。マル
チプレクサが、ALUの入出力に接続され、かつ個々の
処理要素P(i,j)に関連するメモリのスライス
(i,j)の両方向データ・ポートに接続されている。
【0115】命令バスとデータ・バスが別々にあり、ア
レイ制御装置は、ホスト28が、データ・バス30およ
びアドレス/制御バス31を使って、アレイによって実
行される処理を定義するマイクロコードをロードするた
めのマイクロコード記憶域を有する。アレイ制御装置の
動作がホスト28によって開始された後、マイクロコー
ドの順序は、アレイ制御装置14内のマイクロコード記
憶域に接続されたマイクロコード制御装置によって制御
される。アドレス・バス上に出力される、アレイ・メモ
リ・アドレスの生成、ループのカウント、ジャンプ・ア
ドレスの計算、および汎用レジスタの動作に、アレイ制
御装置のALUとレジスタ・バンクが使用される。アレ
イ制御装置はまた、行マスク・コードおよび列マスク・
コードを復号するためのマスク・レジスタをも有する。
特定の命令コードが、命令バスを介して処理要素に渡さ
れる。この例では、アレイ制御装置は、制御装置内にあ
るが、機能的にはホストと制御装置の間のバスと制御装
置とアレイの間のデータ・バスの間にある、データ・バ
ッファを有することができる。制御記憶域内のマイクロ
コードの制御下で、このバッファからプロセッサのアレ
イにデータがロードされる。逆方向も同様である。この
目的のため、バッファは、アレイ制御装置内のマイクロ
コード制御機構の制御下で両方向FIFOバッファとし
て配置される。そのような従来技術のシステムの詳細
は、上記に引用した例、特にヨーロッパ特許出願第88
307855/88−A号を参照されたい。
レイ制御装置は、ホスト28が、データ・バス30およ
びアドレス/制御バス31を使って、アレイによって実
行される処理を定義するマイクロコードをロードするた
めのマイクロコード記憶域を有する。アレイ制御装置の
動作がホスト28によって開始された後、マイクロコー
ドの順序は、アレイ制御装置14内のマイクロコード記
憶域に接続されたマイクロコード制御装置によって制御
される。アドレス・バス上に出力される、アレイ・メモ
リ・アドレスの生成、ループのカウント、ジャンプ・ア
ドレスの計算、および汎用レジスタの動作に、アレイ制
御装置のALUとレジスタ・バンクが使用される。アレ
イ制御装置はまた、行マスク・コードおよび列マスク・
コードを復号するためのマスク・レジスタをも有する。
特定の命令コードが、命令バスを介して処理要素に渡さ
れる。この例では、アレイ制御装置は、制御装置内にあ
るが、機能的にはホストと制御装置の間のバスと制御装
置とアレイの間のデータ・バスの間にある、データ・バ
ッファを有することができる。制御記憶域内のマイクロ
コードの制御下で、このバッファからプロセッサのアレ
イにデータがロードされる。逆方向も同様である。この
目的のため、バッファは、アレイ制御装置内のマイクロ
コード制御機構の制御下で両方向FIFOバッファとし
て配置される。そのような従来技術のシステムの詳細
は、上記に引用した例、特にヨーロッパ特許出願第88
307855/88−A号を参照されたい。
【0116】従来の試みの総括を、本発明の好ましい実
施例と比較することができる。図2には、基本ピケット
・ユニット100を示す。基本ピケット・ユニット10
0は1クロック・サイクルで1バイトの情報を処理する
ための、処理要素ALU101と処理要素に結合された
ローカル・メモリ102との組合せを備えている。図の
ように、シリコンのベース・チップまたはピケット・チ
ップ上に、両側(図の右側と左側)に隣接ピケットがあ
るピケットの線形アレイを備える、ピケット・ユニット
が形成され、その結果、シリコンのベース・チップ上
に、複数のローカル・メモリを備えたピケット処理アレ
イが形成される。ローカル・メモリは、各バイト幅処理
データ・フローごとに1つずつあり、データを左右両方
向に受け渡しするための隣接ピケット通信バスを備えた
論理行または線形アレイとして配列されている。ピケッ
ト・チップ内のピケットの集合は、幾何的順序で配列さ
れ、チップ上に水平に配列することが好ましい。図2
は、複数のメモリおよびデータ・フローを有し、各ピケ
ットの処理要素とメモリの間に通信経路を備える、ピケ
ット・チップ上のピケット・アレイの2つのピケットの
典型的な実施態様を示す。本発明の好ましい実施例で
は、アレイの1対1の関係にあるメモリと処理要素の間
のデータ通信経路はバイト幅であり、左右に延びて、隣
接ピケットと、またはさらに遠隔のピケット・プロセッ
サとの通信のための「スライド」と接している。
施例と比較することができる。図2には、基本ピケット
・ユニット100を示す。基本ピケット・ユニット10
0は1クロック・サイクルで1バイトの情報を処理する
ための、処理要素ALU101と処理要素に結合された
ローカル・メモリ102との組合せを備えている。図の
ように、シリコンのベース・チップまたはピケット・チ
ップ上に、両側(図の右側と左側)に隣接ピケットがあ
るピケットの線形アレイを備える、ピケット・ユニット
が形成され、その結果、シリコンのベース・チップ上
に、複数のローカル・メモリを備えたピケット処理アレ
イが形成される。ローカル・メモリは、各バイト幅処理
データ・フローごとに1つずつあり、データを左右両方
向に受け渡しするための隣接ピケット通信バスを備えた
論理行または線形アレイとして配列されている。ピケッ
ト・チップ内のピケットの集合は、幾何的順序で配列さ
れ、チップ上に水平に配列することが好ましい。図2
は、複数のメモリおよびデータ・フローを有し、各ピケ
ットの処理要素とメモリの間に通信経路を備える、ピケ
ット・チップ上のピケット・アレイの2つのピケットの
典型的な実施態様を示す。本発明の好ましい実施例で
は、アレイの1対1の関係にあるメモリと処理要素の間
のデータ通信経路はバイト幅であり、左右に延びて、隣
接ピケットと、またはさらに遠隔のピケット・プロセッ
サとの通信のための「スライド」と接している。
【0117】「スライド」とは、通常なら情報を受け取
ることができるはずのピケットが、送られてくるメッセ
ージに対して透過的でない場合、メッセージがメッセー
ジを実際に受信する最も近くの活動状態の隣接ピケット
に到着し、そこで受け取るまで、そのピケット・アドレ
ス位置を介して非隣接位置に単一サイクルで情報を転送
するための手段と定義することができる。したがって、
スライドは、「オフになった」ピケットを横切って非隣
接位置に情報を送ることによって機能する。ピケット"
A"が遠隔ピケット"G"に情報を転送しようとしている
ものとする。そのサイクルの前に、途中に介在する"B"
ピケットないし"F"ピケットをオフにすることにより、
これらのピケットを透過的にしておく。次の単一サイク
ルで、"A"は、そのメッセージを右側に送り、その際
に、オフになっているために透過的になっている"B"な
いし"F"を通過する。"G"は、オンのままなので、メッ
セージを受け取る。"スライド"の通常の使用では、情報
が格子を横切って直線的に転送されるが、スライド手法
は、2次元メッシュまたは多次元アレイでもうまく働く
ことができる。
ることができるはずのピケットが、送られてくるメッセ
ージに対して透過的でない場合、メッセージがメッセー
ジを実際に受信する最も近くの活動状態の隣接ピケット
に到着し、そこで受け取るまで、そのピケット・アドレ
ス位置を介して非隣接位置に単一サイクルで情報を転送
するための手段と定義することができる。したがって、
スライドは、「オフになった」ピケットを横切って非隣
接位置に情報を送ることによって機能する。ピケット"
A"が遠隔ピケット"G"に情報を転送しようとしている
ものとする。そのサイクルの前に、途中に介在する"B"
ピケットないし"F"ピケットをオフにすることにより、
これらのピケットを透過的にしておく。次の単一サイク
ルで、"A"は、そのメッセージを右側に送り、その際
に、オフになっているために透過的になっている"B"な
いし"F"を通過する。"G"は、オンのままなので、メッ
セージを受け取る。"スライド"の通常の使用では、情報
が格子を横切って直線的に転送されるが、スライド手法
は、2次元メッシュまたは多次元アレイでもうまく働く
ことができる。
【0118】本発明の好ましい実施例では、処理要素の
アクセスは、ビット直列動作ではなく、バイト直列動作
である。各プロセッサは、ローカル・メモリのブロック
や、その関連する区画またはページにアクセスするので
はなく、それ自体に結合したメモリにアクセスする。1
ビット・バスではなく文字幅または文字倍数幅のバスが
設けられている。1クロック・サイクルで、1ビットで
はなく1バイト(将来のシステムでは、文字バイトの性
能を倍加し、複数バイトとすることが計画されている)
の情報が処理される。したがって、各ピケット処理要素
間を、関連するメモリの幅に適合した8ビット、16ビ
ット、または32ビットが流れることができる。本発明
の好ましい実施例では、各ピケット・チップが、32K
バイトの8(9)ビット幅メモリを有し、線形アレイの
1ピケット・ノード当たりこの32Kバイトの記憶域を
1個ずつ備えたピケットを16個有することが好まし
い。本発明の実施例では、DRAMとしてのCMOSに
各関連メモリが設けられ、文字バイトは9ビットである
(自己検査機能を備えた8ビット文字として機能す
る)。
アクセスは、ビット直列動作ではなく、バイト直列動作
である。各プロセッサは、ローカル・メモリのブロック
や、その関連する区画またはページにアクセスするので
はなく、それ自体に結合したメモリにアクセスする。1
ビット・バスではなく文字幅または文字倍数幅のバスが
設けられている。1クロック・サイクルで、1ビットで
はなく1バイト(将来のシステムでは、文字バイトの性
能を倍加し、複数バイトとすることが計画されている)
の情報が処理される。したがって、各ピケット処理要素
間を、関連するメモリの幅に適合した8ビット、16ビ
ット、または32ビットが流れることができる。本発明
の好ましい実施例では、各ピケット・チップが、32K
バイトの8(9)ビット幅メモリを有し、線形アレイの
1ピケット・ノード当たりこの32Kバイトの記憶域を
1個ずつ備えたピケットを16個有することが好まし
い。本発明の実施例では、DRAMとしてのCMOSに
各関連メモリが設けられ、文字バイトは9ビットである
(自己検査機能を備えた8ビット文字として機能す
る)。
【0119】ピケット間および処理要素とそのメモリの
間の並列経路バイト幅バス・データフローは、従来技術
のシステムの直列ビット構造と比べて大幅な改善であ
る。また、この重要な成果を評価すれば、並列性が増す
と、解決しなければならない別の問題が発生することが
認識されよう。新たに実現されたアーキテクチャの持つ
意味の理解が深まるにつれて、後述する他の重要な解決
策の価値も認められよう。
間の並列経路バイト幅バス・データフローは、従来技術
のシステムの直列ビット構造と比べて大幅な改善であ
る。また、この重要な成果を評価すれば、並列性が増す
と、解決しなければならない別の問題が発生することが
認識されよう。新たに実現されたアーキテクチャの持つ
意味の理解が深まるにつれて、後述する他の重要な解決
策の価値も認められよう。
【0120】図面を参照しながら説明した左右の隣接ピ
ケットへの転送およびスライド機構に加えて、もう1つ
の評価される特徴として、2重バイト幅の同報通信バス
を設けて、すべてのピケットが同時に同一のデータを見
ることができるようにした点がある。ピケット制御およ
びアドレス伝播も、この同報通信バス上で転送される。
セット関連動作およびその他の比較動作または同期演算
動作を実行する際に比較データを供給するのはこのバス
である。
ケットへの転送およびスライド機構に加えて、もう1つ
の評価される特徴として、2重バイト幅の同報通信バス
を設けて、すべてのピケットが同時に同一のデータを見
ることができるようにした点がある。ピケット制御およ
びアドレス伝播も、この同報通信バス上で転送される。
セット関連動作およびその他の比較動作または同期演算
動作を実行する際に比較データを供給するのはこのバス
である。
【0121】単一命令ストリームの制御下でピケット・
データ処理要素内での処理に役立つ高度に並列なデータ
構造を有するタスクには、人工知能パターン突合せ、マ
ルチセンサ最適割当てにおけるセンサとトラックのフュ
ージョン、文脈探索、およびイメージ処理のアプリケー
ションが含まれる。しかし、現在可能なこれらのアプリ
ケーションの多くは、SIMDプロセスでは使用されな
かった。これは、SIMDプロセスが単一クロック時間
での直列ビット処理であるためである。たとえば、SI
MDマシンの従来の直列処理要素は、各プロセッサ・サ
イクルごとに1ビットのADD演算を実行するが、32
ビット並列マシンは1サイクルで32ビットのADDを
実行することができる。
データ処理要素内での処理に役立つ高度に並列なデータ
構造を有するタスクには、人工知能パターン突合せ、マ
ルチセンサ最適割当てにおけるセンサとトラックのフュ
ージョン、文脈探索、およびイメージ処理のアプリケー
ションが含まれる。しかし、現在可能なこれらのアプリ
ケーションの多くは、SIMDプロセスでは使用されな
かった。これは、SIMDプロセスが単一クロック時間
での直列ビット処理であるためである。たとえば、SI
MDマシンの従来の直列処理要素は、各プロセッサ・サ
イクルごとに1ビットのADD演算を実行するが、32
ビット並列マシンは1サイクルで32ビットのADDを
実行することができる。
【0122】1処理要素当たり32Kバイトの構成を用
いると、各処理要素が論理的に使用できるメモリの量
が、従来のSIMDマシンよりもはるかに多くなる。
いると、各処理要素が論理的に使用できるメモリの量
が、従来のSIMDマシンよりもはるかに多くなる。
【0123】チップに出し入れされるデータが最小限に
抑えられているので、チップ上のピン数が少なくなって
いる。DRAMメモリは、従来のメモリCMOSアレイ
であり、メモリ・アレイの背後の行のデマルチプレック
ス処理を削除し、メモリ・アレイの行をデータフローに
並列に読み込む行アドレスを提供することによって、
「行/列」アクセスをサポートする。
抑えられているので、チップ上のピン数が少なくなって
いる。DRAMメモリは、従来のメモリCMOSアレイ
であり、メモリ・アレイの背後の行のデマルチプレック
ス処理を削除し、メモリ・アレイの行をデータフローに
並列に読み込む行アドレスを提供することによって、
「行/列」アクセスをサポートする。
【0124】このメモリは、データの他に「トライビッ
ト」または「トリット」を含むため、論理機構は従来の
2進数ではなく、論理1、論理0、"don^t care"という
3つの状態を認識する。突合せフィールド中の"don^t c
are"は、論理1または論理0のいずれかと一致する。ト
リットは、記憶アレイ内の連続する記憶位置に格納され
る。マスクは、メモリに格納された別の形のデータであ
り、ピケット処理要素のマスク・レジスタに送られる。
ト」または「トリット」を含むため、論理機構は従来の
2進数ではなく、論理1、論理0、"don^t care"という
3つの状態を認識する。突合せフィールド中の"don^t c
are"は、論理1または論理0のいずれかと一致する。ト
リットは、記憶アレイ内の連続する記憶位置に格納され
る。マスクは、メモリに格納された別の形のデータであ
り、ピケット処理要素のマスク・レジスタに送られる。
【0125】記憶アレイはコマンドを格納できるので、
あるピケットが別のピケットと異なる動作を行えるよう
になる。必ずしもすべてのピケットではないがほとんど
のピケットに関連する動作中の個々のピケットのオンチ
ップ制御により、SIMD動作に特有の実施態様が可能
になる。提供される簡単な制御機能の1つは、その状況
出力が特定の条件を満たす任意のピケットにおける中断
動作を制御する機能である。すなわち、非ゼロ条件は、
ドーズ(居眠り)、すなわち動作を中断し、ピケットを
非活動状態ではあるが意識のある状態にするコマンド条
件を意味している。提供されるもう1つ別のコマンド
は、ピケット内の条件に基づいて、またはスライド動作
の前にバスに提供されたコマンドに基づいて、メモリへ
の書込みを禁止または使用可能にするものである。
あるピケットが別のピケットと異なる動作を行えるよう
になる。必ずしもすべてのピケットではないがほとんど
のピケットに関連する動作中の個々のピケットのオンチ
ップ制御により、SIMD動作に特有の実施態様が可能
になる。提供される簡単な制御機能の1つは、その状況
出力が特定の条件を満たす任意のピケットにおける中断
動作を制御する機能である。すなわち、非ゼロ条件は、
ドーズ(居眠り)、すなわち動作を中断し、ピケットを
非活動状態ではあるが意識のある状態にするコマンド条
件を意味している。提供されるもう1つ別のコマンド
は、ピケット内の条件に基づいて、またはスライド動作
の前にバスに提供されたコマンドに基づいて、メモリへ
の書込みを禁止または使用可能にするものである。
【0126】それぞれ32Kバイトのメモリを備えた1
6個の強力なピケットをピケット・チップに適用するこ
とにより、わずか64個のチップで、1024個のプロ
セッサと32768Kバイトのメモリが提供される。こ
のピケットのアレイは、セット連想メモリを備えてい
る。本発明は、数値計算中心の処理であるイメージ分析
ならびにベクトル処理に有用である。この強力なピケッ
ト処理アレイが、現在ではわずか2枚の小型カード上に
パッケージできる。より可能性のある低電力パッケージ
に数千個ものピケットを適切にパッケージでき、最小の
遅延で、あるいはビデオ・フレーム時間内でイメージ処
理アプリケーションを実行できることが理解されよう。
たとえば、ペイロードの問題を余り気にせずに、航空機
の飛行中にアプリケーションの実行が可能である。
6個の強力なピケットをピケット・チップに適用するこ
とにより、わずか64個のチップで、1024個のプロ
セッサと32768Kバイトのメモリが提供される。こ
のピケットのアレイは、セット連想メモリを備えてい
る。本発明は、数値計算中心の処理であるイメージ分析
ならびにベクトル処理に有用である。この強力なピケッ
ト処理アレイが、現在ではわずか2枚の小型カード上に
パッケージできる。より可能性のある低電力パッケージ
に数千個ものピケットを適切にパッケージでき、最小の
遅延で、あるいはビデオ・フレーム時間内でイメージ処
理アプリケーションを実行できることが理解されよう。
たとえば、ペイロードの問題を余り気にせずに、航空機
の飛行中にアプリケーションの実行が可能である。
【0127】このピケットの力により、狭い面積にパッ
クされた大規模な関連メモリ・システムの使用が可能に
なり、システム設計者が新規システムの使用に慣れた後
には様々なアプリケーションで処理能力の使用が可能に
なる。
クされた大規模な関連メモリ・システムの使用が可能に
なり、システム設計者が新規システムの使用に慣れた後
には様々なアプリケーションで処理能力の使用が可能に
なる。
【0128】図3は、関連付けが要求されたとき、すべ
てのメモリ位置に比較値が提示され、すべてのメモリ位
置がその一致線で同時に応答するために、完全連想メモ
リと言える機構を示している。連想メモリ自体は当技術
分野で周知である。本発明のシステムでは、メモリと、
探索を行うためのバイト転送を有する処理要素とから成
る並列ピケットを使用し、データの入力と、メモリ内の
N個のワードのうちからワードKを見つけるための探索
用マスクとがある。一致するすべてのピケットが状況線
をハイにした後、別の動作で一致する最初のKが読み取
られまたは選択される。この動作は通常、セット連想式
と呼ばれているが、連続するワードについてピケット・
メモリ中を上に向かって繰り返すことができる。同様
に、書込みは、ハイになった選択線が参加を示す同報通
信動作を介して行われ、同報通信データが、選択された
すべてのピケットにコピーされる。
てのメモリ位置に比較値が提示され、すべてのメモリ位
置がその一致線で同時に応答するために、完全連想メモ
リと言える機構を示している。連想メモリ自体は当技術
分野で周知である。本発明のシステムでは、メモリと、
探索を行うためのバイト転送を有する処理要素とから成
る並列ピケットを使用し、データの入力と、メモリ内の
N個のワードのうちからワードKを見つけるための探索
用マスクとがある。一致するすべてのピケットが状況線
をハイにした後、別の動作で一致する最初のKが読み取
られまたは選択される。この動作は通常、セット連想式
と呼ばれているが、連続するワードについてピケット・
メモリ中を上に向かって繰り返すことができる。同様
に、書込みは、ハイになった選択線が参加を示す同報通
信動作を介して行われ、同報通信データが、選択された
すべてのピケットにコピーされる。
【0129】好ましいものではないが、別の実施例で
は、使用可能なDRAMメモリの量を減らして、各ピケ
ットに図3に示す種類の完全連想メモリのセクションを
含めることができるようにする。たとえば、512バイ
トの完全連想メモリを含める場合、あらゆるピケットが
1組の探索索引を格納でき、単一の動作で1024個の
ピケットに512をかけて、1動作当たり512キロ回
の比較、すなわち1動作当たり1マイクロ秒の速度とし
て、毎秒512ギガ回の比較が可能になる。拡張可能性
があれば、この概念を数テラ回の範囲の比較まで拡張す
ることができる。この実施例では、情報の広範な探索を
必要とする連想タスクに、現在使用可能なコンピューテ
ィング能力をかなり上回る能力を与える。
は、使用可能なDRAMメモリの量を減らして、各ピケ
ットに図3に示す種類の完全連想メモリのセクションを
含めることができるようにする。たとえば、512バイ
トの完全連想メモリを含める場合、あらゆるピケットが
1組の探索索引を格納でき、単一の動作で1024個の
ピケットに512をかけて、1動作当たり512キロ回
の比較、すなわち1動作当たり1マイクロ秒の速度とし
て、毎秒512ギガ回の比較が可能になる。拡張可能性
があれば、この概念を数テラ回の範囲の比較まで拡張す
ることができる。この実施例では、情報の広範な探索を
必要とする連想タスクに、現在使用可能なコンピューテ
ィング能力をかなり上回る能力を与える。
【0130】図2に示すように、関連付け動作で、メモ
リと、バイト幅の結合された処理要素とを使用すると
き、個々のアルゴリズムや演算、人工知能、およびSI
MD状況で試行される並列プログラミングなどのアプリ
ケーションの他に、SIMD環境において上述のチップ
構成を有するマシンにとって現在使用可能なアプリケー
ションが多数ある。以下にその例を示す。
リと、バイト幅の結合された処理要素とを使用すると
き、個々のアルゴリズムや演算、人工知能、およびSI
MD状況で試行される並列プログラミングなどのアプリ
ケーションの他に、SIMD環境において上述のチップ
構成を有するマシンにとって現在使用可能なアプリケー
ションが多数ある。以下にその例を示す。
【0131】・単純並列可能演算タスク。マトリックス
乗算や、専用メモリ・マシンで実行可能なその他のタス
クを含む。
乗算や、専用メモリ・マシンで実行可能なその他のタス
クを含む。
【0132】・イメージ突合せと、フォン・ノイマン型
マシンでも実行できるが、極端な並列性に適合可能なア
プリケーションによってかなり高速化できるイメージ処
理タスク。たとえば、3次元イメージのパターン突合
せ。
マシンでも実行できるが、極端な並列性に適合可能なア
プリケーションによってかなり高速化できるイメージ処
理タスク。たとえば、3次元イメージのパターン突合
せ。
【0133】・データに基づく照会機能
【0134】・人工知能分野でのパターン突合せ
【0135】・ネットワークのブリッジの反対側にいる
ユーザに送信されるメッセージを迅速に識別するため
の、ブリッジにおけるネットワーク制御
ユーザに送信されるメッセージを迅速に識別するため
の、ブリッジにおけるネットワーク制御
【0136】・ゲート・レベルのシミュレーション
【0137】・VLSI接地規則の違反を調べる検査プ
ログラム
ログラム
【0138】アプリケーション・プログラマは、この新
規システム・アーキテクチャの能力を利用するアプリケ
ーションを開発する際に、メモリおよび関連処理要素の
バンクを利用する処理タスクを思いつくであろう。
規システム・アーキテクチャの能力を利用するアプリケ
ーションを開発する際に、メモリおよび関連処理要素の
バンクを利用する処理タスクを思いつくであろう。
【0139】本発明の新規アーキテクチャを利用する
際、プロセスの変更によって通常のアプリケーションが
機能強化される。ディジタル・システムの記述を維持す
るプロセスは、このアレイを使って100ピケットごと
に1つのゲートまたは論理要素を記述することによって
機能強化できる。そのようなシステムでは、各ゲートの
記述を、ゲートが入力として受け入れる信号のリストと
して割り当て、ゲートが生成する信号を命名することに
より、処理が開始する。本発明では、信号が変化するた
びに、その名前をバス103を介してすべてのピケット
に同報通信し、この名前を、予想される入力信号の名前
と並列に比較するステップを含むことになる。一致が見
つかった場合、後続ステップで、そのピケット内でデー
タフロー・レジスタ・ビットに信号の新しい値を記録す
る。すべての信号の変化が記録されると、そのような拡
張プロセスでは、すべてのピケットが、1組の現入力を
使って出力をどう計算するかをデータ・フローに知らせ
る制御ワードを並列に読み出す。次にこれらの演算を並
列に実行し、その結果をローカル・ゲートからの古い値
と比較する。次に、この改良されたプロセスでは、その
出力が変化したピケットのゲートをすべてデータフロー
状況ビットとして記録する。次に、外部制御装置がすべ
てのピケットに問い合わせ、次の変更済みゲートを求め
る。次いで、元の記述通り、システムは適切な信号名お
よび値をそのピケットから他のすべてのピケットに同報
通信し、信号の変化が起こらなくなるまで、またはプロ
セスが停止するまでこのサイクルを繰り返す。
際、プロセスの変更によって通常のアプリケーションが
機能強化される。ディジタル・システムの記述を維持す
るプロセスは、このアレイを使って100ピケットごと
に1つのゲートまたは論理要素を記述することによって
機能強化できる。そのようなシステムでは、各ゲートの
記述を、ゲートが入力として受け入れる信号のリストと
して割り当て、ゲートが生成する信号を命名することに
より、処理が開始する。本発明では、信号が変化するた
びに、その名前をバス103を介してすべてのピケット
に同報通信し、この名前を、予想される入力信号の名前
と並列に比較するステップを含むことになる。一致が見
つかった場合、後続ステップで、そのピケット内でデー
タフロー・レジスタ・ビットに信号の新しい値を記録す
る。すべての信号の変化が記録されると、そのような拡
張プロセスでは、すべてのピケットが、1組の現入力を
使って出力をどう計算するかをデータ・フローに知らせ
る制御ワードを並列に読み出す。次にこれらの演算を並
列に実行し、その結果をローカル・ゲートからの古い値
と比較する。次に、この改良されたプロセスでは、その
出力が変化したピケットのゲートをすべてデータフロー
状況ビットとして記録する。次に、外部制御装置がすべ
てのピケットに問い合わせ、次の変更済みゲートを求め
る。次いで、元の記述通り、システムは適切な信号名お
よび値をそのピケットから他のすべてのピケットに同報
通信し、信号の変化が起こらなくなるまで、またはプロ
セスが停止するまでこのサイクルを繰り返す。
【0140】本システムを使用するために開発すること
のできるもう1つのプロセスは、ディクショナリ名の探
索である。ディクショナリ名の探索では、すべての名前
の最初の英字を、同報通信データ・アドレス・バス10
3上の所望の同報通信名の最初の英字と比較できるよう
に、ピケット・メモリ102に名前を格納しておく。一
致しないすべてのピケットは、本発明で提供する制御特
性によりオフになる。次に、第2の英字を比較し、活動
状態のピケット・ユニットがなくなるまで、またはワー
ドの最後に達するまで、連続する英字(文字)について
この比較の後にオフにする手順を繰り返す。活動状態の
ピケット・ユニットがなくなるか、またはワードの最後
に達すると、残りのピケット・ユニットを照会し、シー
ケンサによって所望のデータのインデックスを読み出
す。
のできるもう1つのプロセスは、ディクショナリ名の探
索である。ディクショナリ名の探索では、すべての名前
の最初の英字を、同報通信データ・アドレス・バス10
3上の所望の同報通信名の最初の英字と比較できるよう
に、ピケット・メモリ102に名前を格納しておく。一
致しないすべてのピケットは、本発明で提供する制御特
性によりオフになる。次に、第2の英字を比較し、活動
状態のピケット・ユニットがなくなるまで、またはワー
ドの最後に達するまで、連続する英字(文字)について
この比較の後にオフにする手順を繰り返す。活動状態の
ピケット・ユニットがなくなるか、またはワードの最後
に達すると、残りのピケット・ユニットを照会し、シー
ケンサによって所望のデータのインデックスを読み出
す。
【0141】図4は、SIMDサブシステムとして構成
できる並列アレイの一部として単一のシリコン・チップ
上に行として配列された、複数の並列プロセッサとメモ
リ、すなわちピケット・ユニットの基本ピケット構成を
示し、かつそのようなシステムの制御構造を示してい
る。図4には、制御プロセッサおよび監視マイクロプロ
セッサも示されている。図4では、同一のチップ上のメ
モリおよび並列処理要素論理機構が、ピケットのアレイ
と記したセクションに示されている。各メモリはnビッ
ト幅であり、前述のように1文字幅すなわち8(9)ビ
ットであることが好ましい。しかし、概念的には複数バ
イト幅メモリのワード幅を有することもできる。したが
って、並列ピケット処理要素のメモリ部分は8(9)ビ
ット幅であることが好ましく、さもなければ16ビット
幅または32ビット幅である。現行のCMOSファウン
ドリ技術を使用する場合は、各ピケット処理要素と共に
8ビットまたは1文字幅の連想メモリ(自己検査を含め
て9ビット幅バイト)を使用することが好ましい。メモ
リは、ALU、マスク・レジスタ(質問と回答かマスク
動作に使用される)およびラッチ104(図4のS
R)、ならびに状況レジスタ107とデータフロー・レ
ジスタA 105およびQ 106(図4のDF)を含
む、結合された処理要素と直接に1対1に対応する。こ
れらの要素は、図2のピケット図に詳細に示してある。
各ピケット・プロセッサのDRAMおよび論理機構に
は、相互接続ネットワークと競合するという負担はな
い。というのは、マルチビット幅DRAMメモリとその
処理要素がチップ自体上で直接に1対1に対応するから
である。
できる並列アレイの一部として単一のシリコン・チップ
上に行として配列された、複数の並列プロセッサとメモ
リ、すなわちピケット・ユニットの基本ピケット構成を
示し、かつそのようなシステムの制御構造を示してい
る。図4には、制御プロセッサおよび監視マイクロプロ
セッサも示されている。図4では、同一のチップ上のメ
モリおよび並列処理要素論理機構が、ピケットのアレイ
と記したセクションに示されている。各メモリはnビッ
ト幅であり、前述のように1文字幅すなわち8(9)ビ
ットであることが好ましい。しかし、概念的には複数バ
イト幅メモリのワード幅を有することもできる。したが
って、並列ピケット処理要素のメモリ部分は8(9)ビ
ット幅であることが好ましく、さもなければ16ビット
幅または32ビット幅である。現行のCMOSファウン
ドリ技術を使用する場合は、各ピケット処理要素と共に
8ビットまたは1文字幅の連想メモリ(自己検査を含め
て9ビット幅バイト)を使用することが好ましい。メモ
リは、ALU、マスク・レジスタ(質問と回答かマスク
動作に使用される)およびラッチ104(図4のS
R)、ならびに状況レジスタ107とデータフロー・レ
ジスタA 105およびQ 106(図4のDF)を含
む、結合された処理要素と直接に1対1に対応する。こ
れらの要素は、図2のピケット図に詳細に示してある。
各ピケット・プロセッサのDRAMおよび論理機構に
は、相互接続ネットワークと競合するという負担はな
い。というのは、マルチビット幅DRAMメモリとその
処理要素がチップ自体上で直接に1対1に対応するから
である。
【0142】図4では、メモリと処理要素のALUの関
連論理機構の間にスライドBレジスタ・ラッチ(SR)
104が論理的に配置されており、ラッチが基本的に、
ピケット・アレイに沿った各処理要素の結合ポートとな
ることに留意されたい。各ピケット・チップは、ピケッ
ト制御機構と通信できるように線(真っすぐなバスとし
て示してある)状に配列された複数の並列ピケット処理
要素を備えている。ベクトル・アドレス・バスは、メモ
リに共通であり、データ・ベクトル・アドレス・レジス
タが、各メモリにどのデータが渡されるのかを制御す
る。
連論理機構の間にスライドBレジスタ・ラッチ(SR)
104が論理的に配置されており、ラッチが基本的に、
ピケット・アレイに沿った各処理要素の結合ポートとな
ることに留意されたい。各ピケット・チップは、ピケッ
ト制御機構と通信できるように線(真っすぐなバスとし
て示してある)状に配列された複数の並列ピケット処理
要素を備えている。ベクトル・アドレス・バスは、メモ
リに共通であり、データ・ベクトル・アドレス・レジス
タが、各メモリにどのデータが渡されるのかを制御す
る。
【0143】図4はまた、メイン・プロセッサ・カード
またはマイクロプロセッサ・カードと、サブシステム制
御装置との間の相互接続を示している。メイン・プロセ
ッサ・カードまたはマイクロ・プロセッサ・カードは、
本発明の好ましい実施例では、PS/2システムとして
構成された386マイクロプロセッサである。サブシス
テム制御装置を介して、大域命令がかん詰ルーチン・プ
ロセッサ(CRP)に送られる。このかん詰ルーチン・
プロセッサは、本発明で提供され、命令シーケンサ40
2と命令シーケンサから要求される特定のマイクロコー
ドを実行する実行制御機構403とに命令を供給する。
この命令シーケンサは機能上制御装置と類似するもので
よい。ただし、本発明では、かん詰ルーチン・プロセッ
サ内に、ローカル・レジスタ405をも設ける。このロ
ーカル・レジスタ405は、ローカル・レジスタALU
(図示せず)とともに、ピケット・アレイ406内のす
べてのピケットに同報通信されるすべてのアドレス指定
の基礎を提供する。このようにして、ピケット資源を使
用せずに、または恐らくはピケット実行サイクルを使用
せずに、1つのALU内のすべてのピケットについてア
ドレス計算が実行される。この重要な付加機能によっ
て、ピケット・アレイに制御の柔軟性が与えられ、ドー
ズ機能、禁止機能、および特殊タスクを実用するための
その他の制御機能が実行できるようになり、ピケットを
どんな同報通信命令やデータ機能からも分離することが
可能になる。
またはマイクロプロセッサ・カードと、サブシステム制
御装置との間の相互接続を示している。メイン・プロセ
ッサ・カードまたはマイクロ・プロセッサ・カードは、
本発明の好ましい実施例では、PS/2システムとして
構成された386マイクロプロセッサである。サブシス
テム制御装置を介して、大域命令がかん詰ルーチン・プ
ロセッサ(CRP)に送られる。このかん詰ルーチン・
プロセッサは、本発明で提供され、命令シーケンサ40
2と命令シーケンサから要求される特定のマイクロコー
ドを実行する実行制御機構403とに命令を供給する。
この命令シーケンサは機能上制御装置と類似するもので
よい。ただし、本発明では、かん詰ルーチン・プロセッ
サ内に、ローカル・レジスタ405をも設ける。このロ
ーカル・レジスタ405は、ローカル・レジスタALU
(図示せず)とともに、ピケット・アレイ406内のす
べてのピケットに同報通信されるすべてのアドレス指定
の基礎を提供する。このようにして、ピケット資源を使
用せずに、または恐らくはピケット実行サイクルを使用
せずに、1つのALU内のすべてのピケットについてア
ドレス計算が実行される。この重要な付加機能によっ
て、ピケット・アレイに制御の柔軟性が与えられ、ドー
ズ機能、禁止機能、および特殊タスクを実用するための
その他の制御機能が実行できるようになり、ピケットを
どんな同報通信命令やデータ機能からも分離することが
可能になる。
【0144】マイクロコード407をロードされた命令
シーケンサ402は、ピケットのアレイに同報通信を行
って、メイン・プログラム・マイクロプロセッサ(M
P)と、かん詰ルーチン実行時ライブラリ408のかん
詰ルーチンとによって決定されたSIMD命令シーケン
スの下で実行するように求め、ピケットのアレイに含ま
れるデータのSIMD処理を可能にする。
シーケンサ402は、ピケットのアレイに同報通信を行
って、メイン・プログラム・マイクロプロセッサ(M
P)と、かん詰ルーチン実行時ライブラリ408のかん
詰ルーチンとによって決定されたSIMD命令シーケン
スの下で実行するように求め、ピケットのアレイに含ま
れるデータのSIMD処理を可能にする。
【0145】サブシステム・インタフェースを介してマ
イクロプロセッサ(MP)に提供される命令は、マイク
ロプロセッサ(MP)のサブシステム制御装置からマイ
クロプロセッサに渡されるStart Process
(処理開始)、WriteObser.(書込み監
視)、Read Result(結果読取り)を含め
て、高レベルの処理コマンドであると考えられる。この
マイクロプロセッサは、図4、図5、図6、および図7
に示すサブシステム・アレイにおけるメイン・システム
または制御プロセッサとみなすことができる。このユニ
ットは、キーボードや表示装置などの周辺入力装置(図
示せず)を付加したスタンドアロン・ユニットでもよい
ことを理解されたい。このスタンドアロン構成では、シ
ステムMPを、図7に示す線に沿って、シーケンサ・カ
ード(かん詰ルーチン・プロセッサを構成する)とプロ
セッサ・アレイ・カードを含むカードが挿入される、商
用PS/2とみなすことができる。ルーチン・ライブラ
リ411は、CALL(,),Kalman、Conv
olve、Nav.Updateなどプロセスの全体的
制御用のルーチン・シーケンスを含むことができる。こ
れらのルーチンの選択はユーザ・プログラムを介して行
われ、したがって処理全体を外部ホストの制御下、また
はMP内にあるユーザ・プログラム412の制御下で行
うことができる。並列ピケット・プロセッサ・システム
との間でのデータ転送用にMPメモリ内にデータ・バッ
ファ413が設けられている。命令シーケンサ402
は、MPからの制御ストリームと、かん詰ルーチン実行
時ライブラリ・メモリ408に常駐するかん詰ルーチン
を実行するように構成される。これらのルーチンには、
かん詰ルーチン実行時ライブラリ408によって提供さ
れるかん詰ルーチンのCALL(,)、Load Bl
ock、Sin、Cos、Find、Min、Rang
e Compが含まれる。
イクロプロセッサ(MP)に提供される命令は、マイク
ロプロセッサ(MP)のサブシステム制御装置からマイ
クロプロセッサに渡されるStart Process
(処理開始)、WriteObser.(書込み監
視)、Read Result(結果読取り)を含め
て、高レベルの処理コマンドであると考えられる。この
マイクロプロセッサは、図4、図5、図6、および図7
に示すサブシステム・アレイにおけるメイン・システム
または制御プロセッサとみなすことができる。このユニ
ットは、キーボードや表示装置などの周辺入力装置(図
示せず)を付加したスタンドアロン・ユニットでもよい
ことを理解されたい。このスタンドアロン構成では、シ
ステムMPを、図7に示す線に沿って、シーケンサ・カ
ード(かん詰ルーチン・プロセッサを構成する)とプロ
セッサ・アレイ・カードを含むカードが挿入される、商
用PS/2とみなすことができる。ルーチン・ライブラ
リ411は、CALL(,),Kalman、Conv
olve、Nav.Updateなどプロセスの全体的
制御用のルーチン・シーケンスを含むことができる。こ
れらのルーチンの選択はユーザ・プログラムを介して行
われ、したがって処理全体を外部ホストの制御下、また
はMP内にあるユーザ・プログラム412の制御下で行
うことができる。並列ピケット・プロセッサ・システム
との間でのデータ転送用にMPメモリ内にデータ・バッ
ファ413が設けられている。命令シーケンサ402
は、MPからの制御ストリームと、かん詰ルーチン実行
時ライブラリ・メモリ408に常駐するかん詰ルーチン
を実行するように構成される。これらのルーチンには、
かん詰ルーチン実行時ライブラリ408によって提供さ
れるかん詰ルーチンのCALL(,)、Load Bl
ock、Sin、Cos、Find、Min、Rang
e Compが含まれる。
【0146】CRP内には、Load機能、Read機
能、Add機能、Multiply機能、Match機
能などの低レベル機能の実行制御用のマイクロコード4
07もある。
能、Add機能、Multiply機能、Match機
能などの低レベル機能の実行制御用のマイクロコード4
07もある。
【0147】各処理ユニットごとに外部FOR/NEX
T制御を設けることが好ましく、かつ実際にこれを設け
る。また、決定的浮動小数点バイト正規化を実施する。
T制御を設けることが好ましく、かつ実際にこれを設け
る。また、決定的浮動小数点バイト正規化を実施する。
【0148】本発明によって提供される、システムのマ
クロ開発のために決定的手法を使用すると、ピケットの
グループ化およびグループ制御が可能になる。個々のピ
ケット処理の変動に対処するためのローカル・ドーズ機
能が提供されている。
クロ開発のために決定的手法を使用すると、ピケットの
グループ化およびグループ制御が可能になる。個々のピ
ケット処理の変動に対処するためのローカル・ドーズ機
能が提供されている。
【0149】ユーザ・プログラムをプロセッサ・アレイ
によって実行する必要がある場合、ピケット・プロセッ
サのアレイに原始コマンド、アドレス、および同報通信
データが提供される。
によって実行する必要がある場合、ピケット・プロセッ
サのアレイに原始コマンド、アドレス、および同報通信
データが提供される。
【0150】システムの各部分がどの機能を使用するか
は、実行すべきタスクによって決まり、ユーザ・プログ
ラムのコンパイル時に割り当てられる。
は、実行すべきタスクによって決まり、ユーザ・プログ
ラムのコンパイル時に割り当てられる。
【0151】このサブシステムの柔軟性は、かなり一般
的な問題で例示することができる。 行列乗算問題...|x| * |y| = |z|を例として取り上
げる。
的な問題で例示することができる。 行列乗算問題...|x| * |y| = |z|を例として取り上
げる。
【0152】これは、下記のような問題として記述され
る。
る。
【数1】
【0153】これは、たとえば次のステートメントによ
って解かれる。各ステートメントの隣に、パスの数と、
1パス当たりのクロック・サイクルの数を示してある。
って解かれる。各ステートメントの隣に、パスの数と、
1パス当たりのクロック・サイクルの数を示してある。
【0154】 サイクル数/ パス数 パス 01 Call Matrix Mult Fx 1 c (R,M,C,Xaddr, Yaddr, Zaddr) 02 xSUB = ySUB = zSUB = 1 1 3 03 DO I = 1 to c 1 3 04 DO J = 1 to R C 3 05 z = 0 C×R 5/6* 06 DO K = 1 to M C×R 3 07 *** 連想並列プロセッサに割り当てる *** 08 Zz = Xx × Yy + Zz C×R×M 204/345* 09 *** 結果を戻す *** 10 xSUB = xSUB + R C×R×M 2 11 ySUB = ySUB + 1 C×R×M 2 12 NEXT K C×R×M 3 13 xSUB = xSUB − M×R + 1 C×R 2 14 ySUB = ySUB − M C×R 2 15 zSUB = zSUB + 1 C×R 2 16 NEXT J C×R 3 17 xSUB = 1 C 2 18 NEXT z C 3 19 END Call 1 1 注* 固定小数点(4バイト)/浮動小数点(1+4バ
イト)−− 下記参照
イト)−− 下記参照
【0155】上記の例から、上記のステートメント08
で識別されるタスクが、サイクル時間の約98%を要す
ることが理解されよう。したがって、このタスクは、並
列ピケット・プロセッサのSIMD編成に割り当てられ
る。他のプロセスはサイクル時間のうちわずか2%しか
要せず、これらのプロセスはマイクロプロセッサ内のア
ーキテクチャに維持される。
で識別されるタスクが、サイクル時間の約98%を要す
ることが理解されよう。したがって、このタスクは、並
列ピケット・プロセッサのSIMD編成に割り当てられ
る。他のプロセスはサイクル時間のうちわずか2%しか
要せず、これらのプロセスはマイクロプロセッサ内のア
ーキテクチャに維持される。
【0156】したがって、この行列乗算の例を検討する
と、これは実行のためにMP、CRP、ローカル・レジ
スタ(LR)またはピケット・アレイのいずれかに割り
当てられる(各ステートメントは、コンパイルされる
と、特定のシステム位置で実行を引き起こす)。
と、これは実行のためにMP、CRP、ローカル・レジ
スタ(LR)またはピケット・アレイのいずれかに割り
当てられる(各ステートメントは、コンパイルされる
と、特定のシステム位置で実行を引き起こす)。
【0157】上の行列乗算の例では、ステートメント0
1はメイン・プロセッサMPに割り当てられ、ステート
メント02、05、10、11、13、14、15、1
7はローカル・レジスタ(LR)に割り当てられる。ス
テートメント03、04、06、12、16、18、1
9は、かん詰ルーチン・プロセッサ内で実行されるよう
に割り当てられる。普通なら時間のかかる行列処理は、
単一命令の下で実行されるようにピケットのアレイに割
り当てられ、ステートメント08もピケットのアレイに
割り当てられる。
1はメイン・プロセッサMPに割り当てられ、ステート
メント02、05、10、11、13、14、15、1
7はローカル・レジスタ(LR)に割り当てられる。ス
テートメント03、04、06、12、16、18、1
9は、かん詰ルーチン・プロセッサ内で実行されるよう
に割り当てられる。普通なら時間のかかる行列処理は、
単一命令の下で実行されるようにピケットのアレイに割
り当てられ、ステートメント08もピケットのアレイに
割り当てられる。
【0158】図5は、複数の並列ピケット・プロセッサ
を備えた多重並列ピケット・プロセッサ・システム51
0を示している。複数ターゲット追跡、センサとデータ
のフュージョン、信号処理、人工知能、衛星イメージ処
理、パターン/ターゲット認識、リード・ソロモン・コ
ード化/復号演算などのアプリケーション用には、好ま
しい実施例では1024個の並列プロセッサ1個ごとに
2〜4枚(ここでは、1システム当たり4枚のカードと
して表す)のSEM Eカード511を備えた、102
4個の並列プロセッサを有するSIMDシステムとして
構成できる、システムを製作した。個々のカード512
は、ウェッジロック・スライド514を備えたラック取
付けシステム格納機能513に挿入可能である。カード
は挿入/取外しレバー516を備えており、カバー51
7を閉じると、32〜64Mバイトの記憶域と毎秒約2
0億演算の性能を有する取付け可能システムが、ラック
内に効果的に格納される。このシステムはコンパクトで
あり、複数のピケットのアレイが、論理機構を有し複数
のカードの相互接続を可能にする、バックパネル・ボー
ドに挿入される。
を備えた多重並列ピケット・プロセッサ・システム51
0を示している。複数ターゲット追跡、センサとデータ
のフュージョン、信号処理、人工知能、衛星イメージ処
理、パターン/ターゲット認識、リード・ソロモン・コ
ード化/復号演算などのアプリケーション用には、好ま
しい実施例では1024個の並列プロセッサ1個ごとに
2〜4枚(ここでは、1システム当たり4枚のカードと
して表す)のSEM Eカード511を備えた、102
4個の並列プロセッサを有するSIMDシステムとして
構成できる、システムを製作した。個々のカード512
は、ウェッジロック・スライド514を備えたラック取
付けシステム格納機能513に挿入可能である。カード
は挿入/取外しレバー516を備えており、カバー51
7を閉じると、32〜64Mバイトの記憶域と毎秒約2
0億演算の性能を有する取付け可能システムが、ラック
内に効果的に格納される。このシステムはコンパクトで
あり、複数のピケットのアレイが、論理機構を有し複数
のカードの相互接続を可能にする、バックパネル・ボー
ドに挿入される。
【0159】4枚のSEM Eカード上に32Mバイト
の記憶域を備えたプロセッサが形成され、システムの重
量はわずか13.6kg(30ポンド)程度である。電
力は、図の電源519によって供給される。そのような
電力の空冷プロセッサの必要電力は、わずか280W程
度と見積もられる。各SIMDシステムは、関連するメ
インフレームまたは世界の他の地域とのチャネル・アダ
プタ通信用の2つの入出力ポート520を有する。それ
ぞれ4論理ページから成り、標準のモジュール式アビオ
ニクス・パッケージングおよび外部メモリへの接続用の
バス構造(たとえば、PIバス、TMバス、およびIE
EE 488バス)を使用する、図の多重並列ピケット
・プロセッサでは、プロセッサは、入出力ポートを介し
てミッション・プロセッサのメモリ・バスに接続するこ
とができ、ミッション・プロセッサ・メモリ空間の拡張
部分とみなすことができる。
の記憶域を備えたプロセッサが形成され、システムの重
量はわずか13.6kg(30ポンド)程度である。電
力は、図の電源519によって供給される。そのような
電力の空冷プロセッサの必要電力は、わずか280W程
度と見積もられる。各SIMDシステムは、関連するメ
インフレームまたは世界の他の地域とのチャネル・アダ
プタ通信用の2つの入出力ポート520を有する。それ
ぞれ4論理ページから成り、標準のモジュール式アビオ
ニクス・パッケージングおよび外部メモリへの接続用の
バス構造(たとえば、PIバス、TMバス、およびIE
EE 488バス)を使用する、図の多重並列ピケット
・プロセッサでは、プロセッサは、入出力ポートを介し
てミッション・プロセッサのメモリ・バスに接続するこ
とができ、ミッション・プロセッサ・メモリ空間の拡張
部分とみなすことができる。
【0160】1024個の並列処理要素を含む、図の多
重並列ピケット・プロセッサでは、各プロセッサは32
Kバイトのローカル・メモリを有し、ピケット並列プロ
セッサへの関連する経路は並列8ビット幅または1文字
幅(9ビット)である。
重並列ピケット・プロセッサでは、各プロセッサは32
Kバイトのローカル・メモリを有し、ピケット並列プロ
セッサへの関連する経路は並列8ビット幅または1文字
幅(9ビット)である。
【0161】各ピケット内のプロセッサは、バックプレ
ーン相互接続ネットワークを介して、他の隣接プロセッ
サとデータを交換し、かつページ間でデータを交換す
る。ネットワークとしてはクロスバーが好ましいが、ス
ライド・クロスバー、シャッフル・ネットワーク、ベー
ス3Nキューブ、ベース8Nキューブでもよい。
ーン相互接続ネットワークを介して、他の隣接プロセッ
サとデータを交換し、かつページ間でデータを交換す
る。ネットワークとしてはクロスバーが好ましいが、ス
ライド・クロスバー、シャッフル・ネットワーク、ベー
ス3Nキューブ、ベース8Nキューブでもよい。
【0162】システムの個々のプロセッサは4枚のカー
ドのうち2枚のカードのパック内に収容されており、1
枚のカード上にはPS/2マイクロプロセッサが収容さ
れている。一方、図6および図7に概略を示すシステム
を構成する4枚のカードの残りの1枚にはかん詰ルーチ
ン・プロセッサ・シーケンサが収容されている。個々の
ピケット100またはピケットのカード512は、ラッ
チ104のアーキテクチャと、シーケンサ・カード 7
03のCRP実行制御機構に結合されたローカル・レジ
スタとによって制御されるデータ条件に基づいて、かん
詰ルーチン・プロセッサと共にオンザフライに構成し
て、動作に入れるようにすることもでき、動作から外す
こともできる。したがって、ピケット・プロセッサは、
浮動小数点演算に関連する位置合せ動作および正規化動
作を独立に実行することができる。
ドのうち2枚のカードのパック内に収容されており、1
枚のカード上にはPS/2マイクロプロセッサが収容さ
れている。一方、図6および図7に概略を示すシステム
を構成する4枚のカードの残りの1枚にはかん詰ルーチ
ン・プロセッサ・シーケンサが収容されている。個々の
ピケット100またはピケットのカード512は、ラッ
チ104のアーキテクチャと、シーケンサ・カード 7
03のCRP実行制御機構に結合されたローカル・レジ
スタとによって制御されるデータ条件に基づいて、かん
詰ルーチン・プロセッサと共にオンザフライに構成し
て、動作に入れるようにすることもでき、動作から外す
こともできる。したがって、ピケット・プロセッサは、
浮動小数点演算に関連する位置合せ動作および正規化動
作を独立に実行することができる。
【0163】プロセッサは、共通のシーケンサによって
並列に制御される。シーケンサ・カード703は、ピケ
ット・プロセッサの制御装置CRPを含み、従来のビッ
ト直列処理とも類似するバイト順次方式でSIMDプロ
セッサのアレイ上で実行するようにコード化された、単
一のスレッドの命令をピケット・プロセスに実行させる
ことができる。制御装置には、3つの層がある。ピケッ
トのマイクロ制御は、現在のプロセッサと同様にマイク
ロコード化され、すべてのピケットに並列に転送され
る。マイクロ制御とピケットは同一のクロック・システ
ムCLKに対して同期化され、したがってシーケンサに
よって制御される機能を同一のクロック時間に実行する
ことができる。マイクロ制御シーケンサへのコマンドの
供給は、かん詰ルーチン・プロセッサの役割である。こ
のシーケンサ・カード703は、布線式の制御装置であ
り、大部分の機能の実行時に、ループ制御コマンドを実
行し、新規のマイクロ制御シーケンスを反復して開始す
る。制御装置は、かん詰ルーチン実行時ライブラリ40
8とループ動作機能により、ピケットを、供給が十分
で、コマンドに束縛されない状態に保つ。かん詰ルーチ
ン・プロセッサ制御装置は、メイン・システムによって
呼び出されるマクロの大きな集合を含む。かん詰ルーチ
ン・プロセッサ制御装置は、サブシステム内で主監視ピ
ケット制御装置として働く。これは、ピケット・アレイ
の最上位制御システムである。ピケットのアレイの活動
を管理するのは386マイクロプロセッサである。所与
の瞬間に、アレイのすべてのピケットが同一の命令を実
行することができる。ただし、プロセッサの一部は、制
御フローに対して個別に応答することが可能である。
並列に制御される。シーケンサ・カード703は、ピケ
ット・プロセッサの制御装置CRPを含み、従来のビッ
ト直列処理とも類似するバイト順次方式でSIMDプロ
セッサのアレイ上で実行するようにコード化された、単
一のスレッドの命令をピケット・プロセスに実行させる
ことができる。制御装置には、3つの層がある。ピケッ
トのマイクロ制御は、現在のプロセッサと同様にマイク
ロコード化され、すべてのピケットに並列に転送され
る。マイクロ制御とピケットは同一のクロック・システ
ムCLKに対して同期化され、したがってシーケンサに
よって制御される機能を同一のクロック時間に実行する
ことができる。マイクロ制御シーケンサへのコマンドの
供給は、かん詰ルーチン・プロセッサの役割である。こ
のシーケンサ・カード703は、布線式の制御装置であ
り、大部分の機能の実行時に、ループ制御コマンドを実
行し、新規のマイクロ制御シーケンスを反復して開始す
る。制御装置は、かん詰ルーチン実行時ライブラリ40
8とループ動作機能により、ピケットを、供給が十分
で、コマンドに束縛されない状態に保つ。かん詰ルーチ
ン・プロセッサ制御装置は、メイン・システムによって
呼び出されるマクロの大きな集合を含む。かん詰ルーチ
ン・プロセッサ制御装置は、サブシステム内で主監視ピ
ケット制御装置として働く。これは、ピケット・アレイ
の最上位制御システムである。ピケットのアレイの活動
を管理するのは386マイクロプロセッサである。所与
の瞬間に、アレイのすべてのピケットが同一の命令を実
行することができる。ただし、プロセッサの一部は、制
御フローに対して個別に応答することが可能である。
【0164】個別応答にはいくつかの変形があるが、各
ピケットごとにバイト制御機能(ドーズ、禁止など)が
あるため、ローカル自律性がもたらされる。このローカ
ル自律性は、プログラミングで利用でき、かつプログラ
ムのコンパイル時に提供しシステムの制御下に置くこと
ができる。
ピケットごとにバイト制御機能(ドーズ、禁止など)が
あるため、ローカル自律性がもたらされる。このローカ
ル自律性は、プログラミングで利用でき、かつプログラ
ムのコンパイル時に提供しシステムの制御下に置くこと
ができる。
【0165】さらに、前述のように、ローカル・メモリ
・アドレス指定の自律性もある。SIMD制御装置シー
ケンサは、すべてのピケットが使用する共通のアドレス
を供給する。各ピケットは、そのアドレスをローカル的
に増補して、データ依存メモリ・アクセスを行う能力を
強化することができる。
・アドレス指定の自律性もある。SIMD制御装置シー
ケンサは、すべてのピケットが使用する共通のアドレス
を供給する。各ピケットは、そのアドレスをローカル的
に増補して、データ依存メモリ・アクセスを行う能力を
強化することができる。
【0166】さらに、ピケットは、ローカル的条件に応
じて、アレイ活動に参加することも、しないことも可能
である。
じて、アレイ活動に参加することも、しないことも可能
である。
【0167】この特性により、現在では、各ピケットが
それ自体を複数のグループのうちの1グループまたは数
グループに割り当てる手段を設けることにより、SIM
D処理にグループの概念を導入することができる。構成
の変更が基本的にオンザフライで行えるこれらのグルー
プ化に基づいて、処理を進めることができる。ある実施
例では、一時に1つのグループだけまたはグループの1
つの組合せだけを活動状態にすることができ、それぞれ
が同一のSIMD命令ストリームを実行する。ピケット
のサブセットまたはグループによる作業だけを必要とす
る動作もある。プログラミングでこの能力を利用するこ
とができる。ローカル参加自律性は、そのような作業が
可能なように調整される。明らかに、計算を実行するピ
ケットが多ければ多いほど、ローカル参加自律性が向上
する。
それ自体を複数のグループのうちの1グループまたは数
グループに割り当てる手段を設けることにより、SIM
D処理にグループの概念を導入することができる。構成
の変更が基本的にオンザフライで行えるこれらのグルー
プ化に基づいて、処理を進めることができる。ある実施
例では、一時に1つのグループだけまたはグループの1
つの組合せだけを活動状態にすることができ、それぞれ
が同一のSIMD命令ストリームを実行する。ピケット
のサブセットまたはグループによる作業だけを必要とす
る動作もある。プログラミングでこの能力を利用するこ
とができる。ローカル参加自律性は、そのような作業が
可能なように調整される。明らかに、計算を実行するピ
ケットが多ければ多いほど、ローカル参加自律性が向上
する。
【0168】参加ピケットの数を増やす1つの方法は、
各ピケットがそれ自体の命令ストリームを実行できるよ
うにすることである。これは基本的に、SIMD内のM
IMDである。現在、同一のSIMDマシンをMIMD
システムまたは別の構成のマシンとして構成することが
基本的に可能である。というのは、ピケットをそれ自体
の命令のシーケンスで動作するようにプログラミングで
きるからである。
各ピケットがそれ自体の命令ストリームを実行できるよ
うにすることである。これは基本的に、SIMD内のM
IMDである。現在、同一のSIMDマシンをMIMD
システムまたは別の構成のマシンとして構成することが
基本的に可能である。というのは、ピケットをそれ自体
の命令のシーケンスで動作するようにプログラミングで
きるからである。
【0169】各ピケットにそれ自体のシーケンスを持た
せることができるので、ピケット・レベルで非常に簡単
な1組の命令を復号することが可能であり、このため、
より広範なローカル処理が行えるようになる。この機能
が最初に適用されそうな領域は、複雑な意思決定であ
る。しかし、簡単な固定小数点処理も、プログラマの関
心を集める領域となろう。
せることができるので、ピケット・レベルで非常に簡単
な1組の命令を復号することが可能であり、このため、
より広範なローカル処理が行えるようになる。この機能
が最初に適用されそうな領域は、複雑な意思決定であ
る。しかし、簡単な固定小数点処理も、プログラマの関
心を集める領域となろう。
【0170】そのような簡単なプログラムは、たとえば
2Kバイトを超えないピケット・プログラムのブロック
をピケット・メモリにロードすることになる。SIMD
制御装置カード703が、実行制御を介して、指定され
たxyzアドレスからローカル実行を始めるときに、こ
れらのブロックを実行することができる。制御装置が、
非常に多くのクロックをカウントするとき、あるいは図
4に示す状況ファネル(SF)レジスタを監視すること
により、タスク完了信号の有無をテストするとき、ブロ
ックの実行が続行される。
2Kバイトを超えないピケット・プログラムのブロック
をピケット・メモリにロードすることになる。SIMD
制御装置カード703が、実行制御を介して、指定され
たxyzアドレスからローカル実行を始めるときに、こ
れらのブロックを実行することができる。制御装置が、
非常に多くのクロックをカウントするとき、あるいは図
4に示す状況ファネル(SF)レジスタを監視すること
により、タスク完了信号の有無をテストするとき、ブロ
ックの実行が続行される。
【0171】状況ファネル(図4のSF)は、各ピケッ
ト用のラッチ104を利用する。各ピケットは、ロード
するとピケットの状況条件を反映することができる、ラ
ッチ104を有する。SIMD制御装置は、アレイ状況
線を監視することにより、これらのラッチ(1ピケット
当たり1つ)内の集合値をテストすることができる。こ
のアレイ状況線は、各ピケット状況ラッチの値の論理的
組合せである。
ト用のラッチ104を利用する。各ピケットは、ロード
するとピケットの状況条件を反映することができる、ラ
ッチ104を有する。SIMD制御装置は、アレイ状況
線を監視することにより、これらのラッチ(1ピケット
当たり1つ)内の集合値をテストすることができる。こ
のアレイ状況線は、各ピケット状況ラッチの値の論理的
組合せである。
【0172】次の例では、250を上回る値を500>
x≧250の範囲に調整したいものとする。下記のルー
チンは、状況ファネルを使って、このタスクが実行され
たことを検出する。
x≧250の範囲に調整したいものとする。下記のルー
チンは、状況ファネルを使って、このタスクが実行され
たことを検出する。
【0173】 If VALUE < 500 then TURN YOUR PICKET OFF STAT < - PICKET OFF CONDITION IF STAT FUNNEL = OFF then finished .... VALUE < - VALUE - 250 Repeat
【0174】したがって、この多重並列ピケット・プロ
セッサを、様々な方式で、SIMDプロセッサとして構
成することができる。好ましい実施例におけるそのよう
なSIMDマシンは、SIMD制御装置またはSIMD
シーケンサの全体的制御下で、単一スレッドの命令を従
来の方式で実行するようにプログラミングされ、かつ従
来のプロセッサと同様に順次方式でSIMDプロセッサ
のアレイ上で実行するようにコード化される。アプリケ
ーション・レベルでは、これはベクトル命令およびベク
トル型の命令によって実行され、ベクトルはプロセッサ
内でおよびプロセッサ間で処理することができる。ベク
トル命令には、マイクロ命令を、通常6〜10個付加す
ることができる。
セッサを、様々な方式で、SIMDプロセッサとして構
成することができる。好ましい実施例におけるそのよう
なSIMDマシンは、SIMD制御装置またはSIMD
シーケンサの全体的制御下で、単一スレッドの命令を従
来の方式で実行するようにプログラミングされ、かつ従
来のプロセッサと同様に順次方式でSIMDプロセッサ
のアレイ上で実行するようにコード化される。アプリケ
ーション・レベルでは、これはベクトル命令およびベク
トル型の命令によって実行され、ベクトルはプロセッサ
内でおよびプロセッサ間で処理することができる。ベク
トル命令には、マイクロ命令を、通常6〜10個付加す
ることができる。
【0175】そのような好ましい実施例では、システム
は、図式的には、図6の並列プロセッサ・サブシステム
の機能ブロック図に示すように見える。サブシステム・
シーケンサは、図4のホスト・インタフェース制御機構
によって制御されるシステムの入出力ポートを介して、
処理要素の機能を制御する高機能マクロを備えたSIM
Dプログラムと同様に機能する。メモリ・アドレス指定
によって8ビット・バイト幅のデータ・フローが可能に
なり、各機能(論理、加算、乗算、および除算)に8を
法とする算術論理が使用される。浮動小数点フォーマッ
トが設けられ、個々のスリープ・モードおよびドーズ・
モードならびに別々のアドレス指定を有する自律ピケッ
ト動作が可能になる。
は、図式的には、図6の並列プロセッサ・サブシステム
の機能ブロック図に示すように見える。サブシステム・
シーケンサは、図4のホスト・インタフェース制御機構
によって制御されるシステムの入出力ポートを介して、
処理要素の機能を制御する高機能マクロを備えたSIM
Dプログラムと同様に機能する。メモリ・アドレス指定
によって8ビット・バイト幅のデータ・フローが可能に
なり、各機能(論理、加算、乗算、および除算)に8を
法とする算術論理が使用される。浮動小数点フォーマッ
トが設けられ、個々のスリープ・モードおよびドーズ・
モードならびに別々のアドレス指定を有する自律ピケッ
ト動作が可能になる。
【0176】サブシステム制御装置の配列を図7に示
す。各プロセッサ・アレイ・カード512(このサブシ
ステムの図では4枚となっているが、2枚のSEM E
カードに減らすことが可能である)がシーケンサCRP
703に結合され、シーケンサCRP 703はサブ
システム制御装置702に結合される。サブシステム制
御装置702は、メイン・メモリ・システムにポート接
続され、または関連マイクロチャネル・バス706への
チップ705のインタフェースを介して構成内の別のサ
ブシステムに結合される。好ましい実施例では、サブシ
ステム制御装置はIBMのPS/2(IBMの商標)の
汎用マイクロプロセッサ・ユニットであり、インテル3
86プロセッサ・チップおよび4Mバイト・メモリを使
用する。パーソナル・コンピュータ・マイクロプロセッ
サ702は、サブシステム内のチップ705とマイクロ
チャネル型バス706を介してシーケンサのカードにポ
ート接続される。
す。各プロセッサ・アレイ・カード512(このサブシ
ステムの図では4枚となっているが、2枚のSEM E
カードに減らすことが可能である)がシーケンサCRP
703に結合され、シーケンサCRP 703はサブ
システム制御装置702に結合される。サブシステム制
御装置702は、メイン・メモリ・システムにポート接
続され、または関連マイクロチャネル・バス706への
チップ705のインタフェースを介して構成内の別のサ
ブシステムに結合される。好ましい実施例では、サブシ
ステム制御装置はIBMのPS/2(IBMの商標)の
汎用マイクロプロセッサ・ユニットであり、インテル3
86プロセッサ・チップおよび4Mバイト・メモリを使
用する。パーソナル・コンピュータ・マイクロプロセッ
サ702は、サブシステム内のチップ705とマイクロ
チャネル型バス706を介してシーケンサのカードにポ
ート接続される。
【0177】SIMD用ローカル自律性の好ましい実施
例 本明細書に記載のローカル自律機能はすべて、参加ピケ
ットのすべてに同時に提示されるSIMDコマンドまた
はSIMDコマンドのローカル変形として実施される。
これらのコマンドのうちのいくつかは、ローカル自律機
能を直接にもたらす。コマンド"LOAD OP FR
OM MEMORY BUS"には、関連するローカル
変形が存在しないが、これによって確実にローカル選択
されたコマンドが呼び出される。一方、コマンド"ST
ORE TO A REG PERSTAT"は、レジ
スタAへの記憶を、ローカル状況ビットに依存させる。
これから、ローカル自律性の各特徴をそれぞれ検討す
る。
例 本明細書に記載のローカル自律機能はすべて、参加ピケ
ットのすべてに同時に提示されるSIMDコマンドまた
はSIMDコマンドのローカル変形として実施される。
これらのコマンドのうちのいくつかは、ローカル自律機
能を直接にもたらす。コマンド"LOAD OP FR
OM MEMORY BUS"には、関連するローカル
変形が存在しないが、これによって確実にローカル選択
されたコマンドが呼び出される。一方、コマンド"ST
ORE TO A REG PERSTAT"は、レジ
スタAへの記憶を、ローカル状況ビットに依存させる。
これから、ローカル自律性の各特徴をそれぞれ検討す
る。
【0178】図8は、本発明の好ましい実施例による、
アレイ制御装置がピケットを使用不能にする方法と、ピ
ケットがそれ自体を活動化および非活動化して、ローカ
ル自律性を提供する方法を示している。1つまたは複数
のピケットを選択的に使用不能にすると、問題を実行す
る際の自由度が大きくなる。これを本明細書ではローカ
ル自律機能に分類する。すべてのピケットにSIMDコ
マンドを発行する能力と、ピケット内のデータに応じて
ピケットに異なる動作を実行させる能力は、数種の方式
で拡張可能である。1つは、SIMIMDモードと識別
されるモードで、各ピケットに命令を実行させるもので
ある。もう1つは、分離実行のためにピケットを動的に
グループ化するものである。もう1つは、ピケット内で
浮動小数点調整動作および正規化動作を効率的に実行で
きるようにするものである。
アレイ制御装置がピケットを使用不能にする方法と、ピ
ケットがそれ自体を活動化および非活動化して、ローカ
ル自律性を提供する方法を示している。1つまたは複数
のピケットを選択的に使用不能にすると、問題を実行す
る際の自由度が大きくなる。これを本明細書ではローカ
ル自律機能に分類する。すべてのピケットにSIMDコ
マンドを発行する能力と、ピケット内のデータに応じて
ピケットに異なる動作を実行させる能力は、数種の方式
で拡張可能である。1つは、SIMIMDモードと識別
されるモードで、各ピケットに命令を実行させるもので
ある。もう1つは、分離実行のためにピケットを動的に
グループ化するものである。もう1つは、ピケット内で
浮動小数点調整動作および正規化動作を効率的に実行で
きるようにするものである。
【0179】たとえば、すでに正であり、変更を必要と
しないデータを有するピケットと、補数演算が必要なデ
ータを有するピケットがある、ABSOLUTE VA
LUEのような普通の単純なタスクを実行するには、ピ
ケットの選択が必要である。このタスクは、データを補
数化して一時位置に入れると同時に、結果の符号でマス
クをセットすると実行できる。そうすれば、次の命令
で、元々正の値を含んでいたピケットの活動を中断する
ことができる。さらに、次の命令で、補数化された(現
在は正の)値が一時位置から元の位置に移される。これ
で、すべてのピケットが正の値が含むようになる。後は
中断されているピケットを再活動化するだけである。
しないデータを有するピケットと、補数演算が必要なデ
ータを有するピケットがある、ABSOLUTE VA
LUEのような普通の単純なタスクを実行するには、ピ
ケットの選択が必要である。このタスクは、データを補
数化して一時位置に入れると同時に、結果の符号でマス
クをセットすると実行できる。そうすれば、次の命令
で、元々正の値を含んでいたピケットの活動を中断する
ことができる。さらに、次の命令で、補数化された(現
在は正の)値が一時位置から元の位置に移される。これ
で、すべてのピケットが正の値が含むようになる。後は
中断されているピケットを再活動化するだけである。
【0180】適用可能なローカル自律機能は、STAT
ラッチが設定されているときだけ記憶動作が行われる、
STORE per STAT(状況によって記憶)で
ある。上述の動作では、この機能により2つのステップ
が節約される。
ラッチが設定されているときだけ記憶動作が行われる、
STORE per STAT(状況によって記憶)で
ある。上述の動作では、この機能により2つのステップ
が節約される。
【0181】中断/再活動化手法では、次の点でいくつ
かの問題が発生する。
かの問題が発生する。
【0182】1.遊休プロセッサの影響でマシン効率が
低下する。
低下する。
【0183】2.マスクをセットしリセットする動作
が、複雑なタスクおよびそのプログラムのかなりの部分
を占める可能性がある。
が、複雑なタスクおよびそのプログラムのかなりの部分
を占める可能性がある。
【0184】3.プロセッサ間でのデータ転送などのタ
スクでは、単純な走行/停止マスク動作と比べて、個々
の単位動作が全く変わる必要がある。
スクでは、単純な走行/停止マスク動作と比べて、個々
の単位動作が全く変わる必要がある。
【0185】図2ないし図8に関連して説明した構造を
使用する、本発明の好ましい実施例は、ローカル自律性
の問題に対処するものである。
使用する、本発明の好ましい実施例は、ローカル自律性
の問題に対処するものである。
【0186】SIMIMDの一般的考察 本発明では、ピケットのSIMDアレイ内のピケットの
設計に適用すると、以前はタスクの実行が困難または不
可能であった動作が容易に実行できるようになる、実施
技法をいくつか提供する。その結果、各ピケットはある
程度のローカル自律性を持つようになる。
設計に適用すると、以前はタスクの実行が困難または不
可能であった動作が容易に実行できるようになる、実施
技法をいくつか提供する。その結果、各ピケットはある
程度のローカル自律性を持つようになる。
【0187】これらの概念は、米国特許第478373
8号および第5045995号などの、従来の技術に記
載されている走行/停止の選択を拡張したものである。
本発明の好ましいシステムでは、各ピケットが様々な実
行能力を持つことができるようにする、機構の集合また
は複数の機構によって各ピケットを使用可能にすること
ができる。これらの実行能力により、各ピケットは、ピ
ケット内でデータを実行するために様々なモードを獲得
できるようにより、外部SIMD制御装置から送信され
るのではなくピケット内でSIMDコマンドを解釈でき
るようになる。この能力は、複数のモードに及び、それ
らのモードで、SIMDアレイの各プロセッサがローカ
ル条件に基づいて異なる動作を実行でき、かつ実際に実
行する。
8号および第5045995号などの、従来の技術に記
載されている走行/停止の選択を拡張したものである。
本発明の好ましいシステムでは、各ピケットが様々な実
行能力を持つことができるようにする、機構の集合また
は複数の機構によって各ピケットを使用可能にすること
ができる。これらの実行能力により、各ピケットは、ピ
ケット内でデータを実行するために様々なモードを獲得
できるようにより、外部SIMD制御装置から送信され
るのではなくピケット内でSIMDコマンドを解釈でき
るようになる。この能力は、複数のモードに及び、それ
らのモードで、SIMDアレイの各プロセッサがローカ
ル条件に基づいて異なる動作を実行でき、かつ実際に実
行する。
【0188】これらのローカル自律機能のいくつかを組
み合わせると、ピケットに短期間の間、それ自体のロー
カル・プログラム・セグメントを実行する能力を与える
ことができる。これによって、SIMDアレイ内でMI
MD能力が与えられる。このアーキテクチャをSIMI
MDと呼ぶ。SIMIMDをサポートする機構によっ
て、本発明のSIMIMDアレイ処理システムが可能に
なる。
み合わせると、ピケットに短期間の間、それ自体のロー
カル・プログラム・セグメントを実行する能力を与える
ことができる。これによって、SIMDアレイ内でMI
MD能力が与えられる。このアーキテクチャをSIMI
MDと呼ぶ。SIMIMDをサポートする機構によっ
て、本発明のSIMIMDアレイ処理システムが可能に
なる。
【0189】これらの機能のいくつかは、ピケットのグ
ループ化の機構形成に参加して、ピケットを選択して分
離計算用のグループを形成するための複雑なツールをサ
ポートする。この機能をグループ化と呼び、グループ化
をサポートする機構が本発明のシステムに含まれる。グ
ループ化については、"Grouping of SIMD Pickets"と題
する関連出願にも記載されている。
ループ化の機構形成に参加して、ピケットを選択して分
離計算用のグループを形成するための複雑なツールをサ
ポートする。この機能をグループ化と呼び、グループ化
をサポートする機構が本発明のシステムに含まれる。グ
ループ化については、"Grouping of SIMD Pickets"と題
する関連出願にも記載されている。
【0190】これらの機能のいくつかは、"Floating-Po
int Implementation on a SIMD Machine"と題する関連
出願に記載されている、効率的な浮動小数点手法の機構
形成に参加する。これらの機構で浮動小数点をサポート
することが好ましい。
int Implementation on a SIMD Machine"と題する関連
出願に記載されている、効率的な浮動小数点手法の機構
形成に参加する。これらの機構で浮動小数点をサポート
することが好ましい。
【0191】システム機構の考察 これから考察する「ローカル自律性」の諸項目は、次の
3つの範疇に分類することができる。 1.状況制御式ローカル動作 2.データ制御式ローカル動作 3.プロセッサからマイクロ制御装置への状況の分配
3つの範疇に分類することができる。 1.状況制御式ローカル動作 2.データ制御式ローカル動作 3.プロセッサからマイクロ制御装置への状況の分配
【0192】状況生成の考察 状況は、命令ストリーム内での以前の活動に基づいて設
定される。状況レジスタのロードは、命令ストリームに
よって制御される。状況レジスタには、命令ストリーム
Zero Detect、Sign、Equal、Gr
eater than、Less Than、carr
y outがロードされる。
定される。状況レジスタのロードは、命令ストリームに
よって制御される。状況レジスタには、命令ストリーム
Zero Detect、Sign、Equal、Gr
eater than、Less Than、carr
y outがロードされる。
【0193】Add with carryは、演算の
精度を拡張するための状況機能の一般的な使用例であ
る。状況のさらに巧妙な使用が含まれる。
精度を拡張するための状況機能の一般的な使用例であ
る。状況のさらに巧妙な使用が含まれる。
【0194】状況は、後で使用できるようにデータ・ワ
ードとしてメモリに格納することができる。また状況を
論理演算および算術演算に使用して、他の格納値のかな
り複雑な組合せを生成することもできる。これらの計算
値を使用して、ピケットのドーズ・ラッチの値を変更
し、ピケットが、他の計算情報によって再び使用可能に
なるまで、その動作を中断させることができる。
ードとしてメモリに格納することができる。また状況を
論理演算および算術演算に使用して、他の格納値のかな
り複雑な組合せを生成することもできる。これらの計算
値を使用して、ピケットのドーズ・ラッチの値を変更
し、ピケットが、他の計算情報によって再び使用可能に
なるまで、その動作を中断させることができる。
【0195】アレイ制御装置内で実行されているサブル
ーチン呼出しまたは文脈切替えと関係がある状況は、セ
ーブすることができる。その後、「ポップ」または「リ
ターン」により、これらの値をリコールして使用するこ
とができる。もちろん、サブルーチン動作にピケットの
選択されたグループまたはサブセットが参加できるが、
サブルーチンからのリターン時に活動化されるピケット
の数はそれより多くなる。
ーチン呼出しまたは文脈切替えと関係がある状況は、セ
ーブすることができる。その後、「ポップ」または「リ
ターン」により、これらの値をリコールして使用するこ
とができる。もちろん、サブルーチン動作にピケットの
選択されたグループまたはサブセットが参加できるが、
サブルーチンからのリターン時に活動化されるピケット
の数はそれより多くなる。
【0196】状況制御式ローカル動作 下記の各「ローカル自律」機能は、SIMD命令によっ
てSIMDサブシステム制御装置から選択されたとき、
状況によって制御される。図8の状況ラッチに状況条件
の1つまたはすべてを転送するためのコマンドで状況を
更新することができ、またはこの状況ラッチにメモリ位
置からロードすることができる。後者の方法は、"Group
ing of SIMD Pickets"と題する特許出願に記載されてい
る、ピケットのグループ化で使用されている。各ローカ
ル・ピケットの状況をグループ化し、状況ファネルSF
を介してSIMD制御装置にそっくり送ることができ、
制御装置は、個別に各ピケットから状況ワードを読み取
らずに、ピケット活動に明確に反応するための巧妙な方
法を与えられる。
てSIMDサブシステム制御装置から選択されたとき、
状況によって制御される。図8の状況ラッチに状況条件
の1つまたはすべてを転送するためのコマンドで状況を
更新することができ、またはこの状況ラッチにメモリ位
置からロードすることができる。後者の方法は、"Group
ing of SIMD Pickets"と題する特許出願に記載されてい
る、ピケットのグループ化で使用されている。各ローカ
ル・ピケットの状況をグループ化し、状況ファネルSF
を介してSIMD制御装置にそっくり送ることができ、
制御装置は、個別に各ピケットから状況ワードを読み取
らずに、ピケット活動に明確に反応するための巧妙な方
法を与えられる。
【0197】ローカル参加 ピケットは、直前の状況に基づいてそれ自体をオンまた
はオフにすることができる。ピケットは、ピケット内の
図8のドーズ・ラッチに適当な値をロードすることによ
り、ドーズ・モードに入ることができる。これを「ロー
カル参加」自律性と呼ぶことができる。ローカル参加自
律性は、ピケット・チップ内の個々のピケットの内部制
御用の機構をもたらす。ドーズ・モードのピケットは、
それ自体のメモリに書き込まず、一部分のレジスタの内
容を変更しないので、状態を変化させないが、すべての
テスト動作を監視し、選択された結果に基づいて再びオ
ンに戻ることができる。図8は、ドーズとディスエーブ
ルという2つの「オフ」モードの関係を示している。デ
ィスエーブル・モードでは、サブシステム制御装置が、
プロセスに実際に参加していない個々のピケットを使用
不能にすることができる。米国特許第5045995号
のようなSIMD制御装置状況での使用不能命令は、個
々の処理要素を使用不能にするように効果的に働くこと
ができる。しかし、本発明では制御装置は、プロセス内
の別の1組のデータを起動する必要があったとき、選択
されたピケットを使用可能にする。
はオフにすることができる。ピケットは、ピケット内の
図8のドーズ・ラッチに適当な値をロードすることによ
り、ドーズ・モードに入ることができる。これを「ロー
カル参加」自律性と呼ぶことができる。ローカル参加自
律性は、ピケット・チップ内の個々のピケットの内部制
御用の機構をもたらす。ドーズ・モードのピケットは、
それ自体のメモリに書き込まず、一部分のレジスタの内
容を変更しないので、状態を変化させないが、すべての
テスト動作を監視し、選択された結果に基づいて再びオ
ンに戻ることができる。図8は、ドーズとディスエーブ
ルという2つの「オフ」モードの関係を示している。デ
ィスエーブル・モードでは、サブシステム制御装置が、
プロセスに実際に参加していない個々のピケットを使用
不能にすることができる。米国特許第5045995号
のようなSIMD制御装置状況での使用不能命令は、個
々の処理要素を使用不能にするように効果的に働くこと
ができる。しかし、本発明では制御装置は、プロセス内
の別の1組のデータを起動する必要があったとき、選択
されたピケットを使用可能にする。
【0198】例: 0より大きな値を持つすべてのピケ
ットが、次の組の動作に参加しない。
ットが、次の組の動作に参加しない。
【0199】本発明の好ましい実施例におけるドーズと
ディスエーブルの関係を図8に示す。
ディスエーブルの関係を図8に示す。
【0200】状況によるキャリーイン また、本発明では、各ピケットが、直前の状況に基づい
て現在の動作にキャリーインを追加することができる。
これは、データ長がハードウェア・レジスタ長の倍数で
あるノイマン型マシンで共通の動作である。しかし、多
数のピケットが様々なデータに対して同一の動作を実行
しているとき、各ピケットは直前の動作のデータに基づ
いてキャリーインを生成しなければならない。これは、
各ピケットに固有の動作であり、したがって重要なロー
カル自律動作である。
て現在の動作にキャリーインを追加することができる。
これは、データ長がハードウェア・レジスタ長の倍数で
あるノイマン型マシンで共通の動作である。しかし、多
数のピケットが様々なデータに対して同一の動作を実行
しているとき、各ピケットは直前の動作のデータに基づ
いてキャリーインを生成しなければならない。これは、
各ピケットに固有の動作であり、したがって重要なロー
カル自律動作である。
【0201】例: 浮動小数点正規化動作における先行
ゼロの検索。
ゼロの検索。
【0202】状況による格納禁止 また、本発明によれば、パケットは直前の状況に基づい
てメモリへの格納動作を禁止することができる。この選
択的書込み動作を用いると、ピケット状況でピケット・
メモリへのデータの再格納を制御することができる。す
べてのピケットで実行される演算が、一部の個別ピケッ
トに有用な結果を生成しないとき、この動作を効果的な
禁止機構として使用することができる。
てメモリへの格納動作を禁止することができる。この選
択的書込み動作を用いると、ピケット状況でピケット・
メモリへのデータの再格納を制御することができる。す
べてのピケットで実行される演算が、一部の個別ピケッ
トに有用な結果を生成しないとき、この動作を効果的な
禁止機構として使用することができる。
【0203】例: 絶対値の計算時に直前の状況が負だ
った場合に補数を格納し戻す。
った場合に補数を格納し戻す。
【0204】状況によるレジスタ・ソース選択 ピケットは、状況に基づいて、2つのデータ・ソースの
うちの一方を選択し、ハードウェア・レジスタをロード
することができる。状況は、2つのデータ・ソースのう
ちの一方を選ぶのに使われるマルチプレクサを切り替え
るのに使用される。データ・ソースは、2つのハードウ
ェア・レジスタ、または同報通信バスと1つのハードウ
ェア・レジスタとすることができる。
うちの一方を選択し、ハードウェア・レジスタをロード
することができる。状況は、2つのデータ・ソースのう
ちの一方を選ぶのに使われるマルチプレクサを切り替え
るのに使用される。データ・ソースは、2つのハードウ
ェア・レジスタ、または同報通信バスと1つのハードウ
ェア・レジスタとすることができる。
【0205】例: 同報通信バス上のデータがピケット
にとって有用な場合、該バスから読み取る。そうでない
場合は、内部レジスタのデータを使用する。この例は、
英字およびワードのストリームが同報通信バスを介して
移動し、潜在的一致を含むピケットがデータを捕捉する
という、ディクショナリ機能を表している。
にとって有用な場合、該バスから読み取る。そうでない
場合は、内部レジスタのデータを使用する。この例は、
英字およびワードのストリームが同報通信バスを介して
移動し、潜在的一致を含むピケットがデータを捕捉する
という、ディクショナリ機能を表している。
【0206】例: 内容が、メモリから読み取ったデー
タよりも小さい場合に、レジスタからLoad Reg
する。
タよりも小さい場合に、レジスタからLoad Reg
する。
【0207】状況による、代替メモリ位置からの読取り ピケットは、状況に基づいて2つのメモリ位置のうちの
一方からデータを読み取ることができる(ストライドは
2のn乗)。通常、レコード内には1バイトより多くの
データがある。また、通常、1データ・セットごとに複
数のデータ・レコードがある。この選択機能を用いる
と、ローカル・ピケット状況で、データの2つのレコー
ドの一方を選択することができる。最大値を探してお
り、それを見つけるためにテストを行ったものとする。
その場合、この機能を使用すれば、将来使用するため選
択されたレコードを捕捉することができるはずである。
一方からデータを読み取ることができる(ストライドは
2のn乗)。通常、レコード内には1バイトより多くの
データがある。また、通常、1データ・セットごとに複
数のデータ・レコードがある。この選択機能を用いる
と、ローカル・ピケット状況で、データの2つのレコー
ドの一方を選択することができる。最大値を探してお
り、それを見つけるためにテストを行ったものとする。
その場合、この機能を使用すれば、将来使用するため選
択されたレコードを捕捉することができるはずである。
【0208】例: 浮動小数点調整動作では、2つの値
を突き合わせ、一方の指数部が他方と一致するように一
方の値をスケーリングする。「どちらの一方」をスケー
リングするかは、指数部を比較し、状況値をロードする
ことによって決定する。
を突き合わせ、一方の指数部が他方と一致するように一
方の値をスケーリングする。「どちらの一方」をスケー
リングするかは、指数部を比較し、状況値をロードする
ことによって決定する。
【0209】状況による代替メモリ位置への格納 ピケットは、状況に基づいて2つのメモリ位置のうちの
一方にデータを格納することができる(ストライドは2
のn乗)。これは、読取り動作と類似している。
一方にデータを格納することができる(ストライドは2
のn乗)。これは、読取り動作と類似している。
【0210】状況による、隣接ピケットへの転送のため
の選択 ピケットは、本発明のスライド動作を介して隣接ピケッ
トへの転送を行うことができる。この動作のソース・デ
ータは、状況によってAレジスタとBレジスタのどちら
かとすることができる。そのよい例が、すべてのピケッ
トにわたってデータを比較する場合である。その目標
は、最大値を識別することである。したがって、奇数番
目のすべてのピケットがデータを右に移動し、そこでデ
ータがレジスタに格納される。受取り側ピケットは、新
しいデータ・ワードを該ピケットが有するデータ・ワー
ドと比較し、状況をセーブし、適切なソースを選択する
ことによって2つのうちの大きい方を転送する。
の選択 ピケットは、本発明のスライド動作を介して隣接ピケッ
トへの転送を行うことができる。この動作のソース・デ
ータは、状況によってAレジスタとBレジスタのどちら
かとすることができる。そのよい例が、すべてのピケッ
トにわたってデータを比較する場合である。その目標
は、最大値を識別することである。したがって、奇数番
目のすべてのピケットがデータを右に移動し、そこでデ
ータがレジスタに格納される。受取り側ピケットは、新
しいデータ・ワードを該ピケットが有するデータ・ワー
ドと比較し、状況をセーブし、適切なソースを選択する
ことによって2つのうちの大きい方を転送する。
【0211】データ制御式ローカル動作 各ピケット内のデータに基づくローカル自律機能がいく
つかある。これらのデータ依存機能は、データ・レジス
タの内容を使ってピケット内の独立活動を決定させる、
SIMD制御装置のマイクロワードによって使用可能に
なる。いくつかの例を挙げて、データ制御式ローカル動
作について説明する。
つかある。これらのデータ依存機能は、データ・レジス
タの内容を使ってピケット内の独立活動を決定させる、
SIMD制御装置のマイクロワードによって使用可能に
なる。いくつかの例を挙げて、データ制御式ローカル動
作について説明する。
【0212】データによる代替メモリ位置からの読取り 各ピケットは、そのレジスタのうちの1つに含まれるデ
ータをメモリ・アドレスの一部として使用して、それ自
体のメモリをアドレスすることができる。アドレス可能
なメモリのフィールドは、2の累乗で、2からすべての
ピケットのメモリまでの範囲に及ぶ。現在の適切で実用
的な設計点は4Kである。もう1つの特徴は、アドレス
指定にストライドを導入して、制御装置が、ピケットに
1つおきにまたは4つおきになどでワードをアドレスさ
せることができるようにするものである。メモリのこの
フィールドのベース(ピケット・アドレスの他のビッ
ト)は、SIMD制御装置から供給される。
ータをメモリ・アドレスの一部として使用して、それ自
体のメモリをアドレスすることができる。アドレス可能
なメモリのフィールドは、2の累乗で、2からすべての
ピケットのメモリまでの範囲に及ぶ。現在の適切で実用
的な設計点は4Kである。もう1つの特徴は、アドレス
指定にストライドを導入して、制御装置が、ピケットに
1つおきにまたは4つおきになどでワードをアドレスさ
せることができるようにするものである。メモリのこの
フィールドのベース(ピケット・アドレスの他のビッ
ト)は、SIMD制御装置から供給される。
【0213】例: これらの着想の主な応用例は、0〜
90度の角度に対するsinの値を含むテーブルから、三
角関数や超越関数などの1組の値のうちの1つを求める
表引きである。
90度の角度に対するsinの値を含むテーブルから、三
角関数や超越関数などの1組の値のうちの1つを求める
表引きである。
【0214】メモリ・フィールドへの条件付きインデク
シング この着想は、インデクシングを状況で条件付け、ピケッ
ト・レジスタ内のデータに基づいてインデックスの深さ
を決定することによって、2つの考えを組み合わせるも
のである。
シング この着想は、インデクシングを状況で条件付け、ピケッ
ト・レジスタ内のデータに基づいてインデックスの深さ
を決定することによって、2つの考えを組み合わせるも
のである。
【0215】メモリからのデータに基づく加算器動作 ピケット・メモリは、ピケットのタスクに固有の「命
令」を格納することができる。これらの命令をメモリか
ら読み取り、ピケットのレジスタに格納し、ピケット・
データフロー・レジスタ、マルチプレクサ、およびAL
Uによって実行とができる。
令」を格納することができる。これらの命令をメモリか
ら読み取り、ピケットのレジスタに格納し、ピケット・
データフロー・レジスタ、マルチプレクサ、およびAL
Uによって実行とができる。
【0216】例: SIMDアレイが論理設計のシミュ
レーションを実行している場合、各ピケットに論理機能
を割り当てることができる。これをレジスタに格納すれ
ば、それを使って、そのピケットのALU内のこの機能
に指令することができる。
レーションを実行している場合、各ピケットに論理機能
を割り当てることができる。これをレジスタに格納すれ
ば、それを使って、そのピケットのALU内のこの機能
に指令することができる。
【0217】メモリからのデータに基づくマスク動作 各ピケットは、データとマスクの論理的組合せが各ピケ
ットごとに異なる結果をもたらすように、メモリ内でデ
ータとマスクを混合することにより、ローカル自律性を
達成することができる。データとそれに関連するマスク
を対にすると、トリットと称する単位が形成される。
ットごとに異なる結果をもたらすように、メモリ内でデ
ータとマスクを混合することにより、ローカル自律性を
達成することができる。データとそれに関連するマスク
を対にすると、トリットと称する単位が形成される。
【0218】ピケットからマイクロ制御装置への状況の
分配 ローカル自律性の第3の範疇は、ある事象に関係する条
件を決定し、この条件を状況ファネルを介してSIMD
制御装置に報告するピケットに関するものである。状況
ファネルは基本的に、活動状態の各ピケットから制御装
置に供給される条件の全体的論理和である。状況ファネ
ルは、少なくとも1つのピケットが要求された条件を含
むかどうかを示す。この考えを他の条件について繰り返
して、制御装置がおそらく4つ以上の条件に関する通知
を同時に受けることができるようにすることができる。
したがって、ピケット内で行われる個々のテストに基づ
いて制御の判断を下し、それをSTAT報告ファネルを
介してアレイ制御装置に通信することができる。
分配 ローカル自律性の第3の範疇は、ある事象に関係する条
件を決定し、この条件を状況ファネルを介してSIMD
制御装置に報告するピケットに関するものである。状況
ファネルは基本的に、活動状態の各ピケットから制御装
置に供給される条件の全体的論理和である。状況ファネ
ルは、少なくとも1つのピケットが要求された条件を含
むかどうかを示す。この考えを他の条件について繰り返
して、制御装置がおそらく4つ以上の条件に関する通知
を同時に受けることができるようにすることができる。
したがって、ピケット内で行われる個々のテストに基づ
いて制御の判断を下し、それをSTAT報告ファネルを
介してアレイ制御装置に通信することができる。
【0219】例: この機能は、動作が完全であるかど
うか、あるいは動作に参加している活動状態のピケット
が他にもうないかどうかを判定する際に制御装置が使用
することができる。
うか、あるいは動作に参加している活動状態のピケット
が他にもうないかどうかを判定する際に制御装置が使用
することができる。
【0220】例: ピケット・アレイは、同時に参加し
ているすべての活動状態のピケットに対して、マスク動
作によって探索を実行することができる。マスク動作で
は、一致するピケットが一致線をハイにして一致を示
す。一致条件は、活動状態のプロセスにおいて後で判断
するために、状況ファネルを介して制御装置に送られ
る。
ているすべての活動状態のピケットに対して、マスク動
作によって探索を実行することができる。マスク動作で
は、一致するピケットが一致線をハイにして一致を示
す。一致条件は、活動状態のプロセスにおいて後で判断
するために、状況ファネルを介して制御装置に送られ
る。
【0221】例: ピケット・アレイは、情報の集合を
保持することができ、一時に1文字を比較し、ピケット
が一致しなくなった時点でピケットをオフにすることに
より特定の情報を探すことができる。これによって、1
回の同時同報通信比較ですべての活動状態ピケットを処
理する、強力な並列関連付け機能がもたらされる。
保持することができ、一時に1文字を比較し、ピケット
が一致しなくなった時点でピケットをオフにすることに
より特定の情報を探すことができる。これによって、1
回の同時同報通信比較ですべての活動状態ピケットを処
理する、強力な並列関連付け機能がもたらされる。
【0222】マルチレベル状況および状況のセーブ 状況の反復的生成および制御を管理するための2つの能
力について説明する。すなわち、様々なレベルのプログ
ラムに入るとき、状況がより複雑になりまたはプロセッ
サ制限度が高くなり、あるいはその両方になることがあ
り得る。ソフトウェアの制御下で完全なピケット状況を
セーブし復元する能力があると、CALL/RETUR
Nシーケンスを用いてソフトウェアのレベルをカスケー
ド化できるようになる。各ピケットは、アレイ制御装置
から指令を受けると、その状況を個別メモリにセーブす
る。
力について説明する。すなわち、様々なレベルのプログ
ラムに入るとき、状況がより複雑になりまたはプロセッ
サ制限度が高くなり、あるいはその両方になることがあ
り得る。ソフトウェアの制御下で完全なピケット状況を
セーブし復元する能力があると、CALL/RETUR
Nシーケンスを用いてソフトウェアのレベルをカスケー
ド化できるようになる。各ピケットは、アレイ制御装置
から指令を受けると、その状況を個別メモリにセーブす
る。
【0223】状況の生成 状況は、ALU演算の結果生成される。命令ストリーム
は、テストすべき条件と、その条件を既存の状況とどう
組み合わせるかとを示す。以下の選択肢がある。テスト
結果を無視する。まったく新しい状況を設定する。新規
状況と既存の状況のORまたはXORを使う。状況の生
成に使用できる条件には、Zero result,Equal, Greater
than, Less than, Not equal, Equal or greater tha
n, Equalor less than, Overflow, およびUnderflowが
ある。
は、テストすべき条件と、その条件を既存の状況とどう
組み合わせるかとを示す。以下の選択肢がある。テスト
結果を無視する。まったく新しい状況を設定する。新規
状況と既存の状況のORまたはXORを使う。状況の生
成に使用できる条件には、Zero result,Equal, Greater
than, Less than, Not equal, Equal or greater tha
n, Equalor less than, Overflow, およびUnderflowが
ある。
【0224】命令によって制御される状況の使用法 各命令は、状況を収集しセーブする方法に関するコマン
ドを各ピケットに提供する。ピケットでローカル的に状
況を使用する方法を示すコマンドがすべてのピケットに
提供される。これらの使用法コマンドは、複数の事項を
指定する。それらはすべてローカル自律性の発想に関す
るもので、とりわけピケット参加、再格納禁止、状況に
よるデータ・ソース選択、およびピケット間通信の制御
が含まれる。ピケットのアレイの制御装置に、個々のピ
ケットの状況を制御装置に収集する方法と、この状況を
使用して大域動作を管理する方法を指示するコマンドも
提供される。基本的に、各ピケットの状況を他のあらゆ
るピケットの状況とのORまたはANDをとり、その結
果が、アレイ制御装置が使用できるように該制御装置に
提示される。
ドを各ピケットに提供する。ピケットでローカル的に状
況を使用する方法を示すコマンドがすべてのピケットに
提供される。これらの使用法コマンドは、複数の事項を
指定する。それらはすべてローカル自律性の発想に関す
るもので、とりわけピケット参加、再格納禁止、状況に
よるデータ・ソース選択、およびピケット間通信の制御
が含まれる。ピケットのアレイの制御装置に、個々のピ
ケットの状況を制御装置に収集する方法と、この状況を
使用して大域動作を管理する方法を指示するコマンドも
提供される。基本的に、各ピケットの状況を他のあらゆ
るピケットの状況とのORまたはANDをとり、その結
果が、アレイ制御装置が使用できるように該制御装置に
提示される。
【0225】好ましい浮動小数点実施例に関する一般的
考察 浮動小数点演算のアプリケーション用に、SIMDマシ
ンにローカル自律性を持たせることが特に好ましい。"F
loating-Point for SIMD Array Machine"と題する上記
で参照した関連出願に詳述されているSIMDアレイ・
マシンに浮動小数点に関する諸能力を提供するための新
しい方法の説明を加えれば、本発明の卓越性が理解でき
る。
考察 浮動小数点演算のアプリケーション用に、SIMDマシ
ンにローカル自律性を持たせることが特に好ましい。"F
loating-Point for SIMD Array Machine"と題する上記
で参照した関連出願に詳述されているSIMDアレイ・
マシンに浮動小数点に関する諸能力を提供するための新
しい方法の説明を加えれば、本発明の卓越性が理解でき
る。
【0226】上記システム用の浮動小数点フォーマット
を用いると、アレイSIMDマシンが浮動小数点演算を
実行することができる。説明の便宜上、図9に本発明の
浮動小数点フォーマットについて記載する。小数部のカ
ウントは指数部のカウント1に対して1バイトだけシフ
トする。図10は、小数部を1バイトだけシフトし、浮
動小数点指数部を1だけ増分することによって浮動小数
点調整を行うステップを示している。この特定のアレイ
を用いると、メモリを使って調整シフトを行うことがで
きる。図11は、バイト幅メモリを使って、浮動小数点
調整動作の一部であるシフトを有利に実行することによ
る、調整シフトの使用法を示している。
を用いると、アレイSIMDマシンが浮動小数点演算を
実行することができる。説明の便宜上、図9に本発明の
浮動小数点フォーマットについて記載する。小数部のカ
ウントは指数部のカウント1に対して1バイトだけシフ
トする。図10は、小数部を1バイトだけシフトし、浮
動小数点指数部を1だけ増分することによって浮動小数
点調整を行うステップを示している。この特定のアレイ
を用いると、メモリを使って調整シフトを行うことがで
きる。図11は、バイト幅メモリを使って、浮動小数点
調整動作の一部であるシフトを有利に実行することによ
る、調整シフトの使用法を示している。
【0227】浮動小数点フォーマット SIMDマシンにおいて浮動小数点を首尾よく実施する
ための鍵は、図9に示す適切なフォーマットである。適
切なフォーマットとは、フォーマットがアーキテクチャ
の何らかの態様と互換性があり、必ずしも既存の浮動小
数点標準の1つと互換性があるわけではないことを意味
する。
ための鍵は、図9に示す適切なフォーマットである。適
切なフォーマットとは、フォーマットがアーキテクチャ
の何らかの態様と互換性があり、必ずしも既存の浮動小
数点標準の1つと互換性があるわけではないことを意味
する。
【0228】本発明では、バイト幅データフロー上で実
行され、従来の実施態様の数倍の性能を有するフォーマ
ットを提供する。
行され、従来の実施態様の数倍の性能を有するフォーマ
ットを提供する。
【0229】このフォーマットは、少なくともIEEE
32ビット浮動小数点標準と同程度に正確な回答を生成
する。このフォーマットは、平均して約2ビット高い精
度を有する。
32ビット浮動小数点標準と同程度に正確な回答を生成
する。このフォーマットは、平均して約2ビット高い精
度を有する。
【0230】このフォーマットは、ユーザが使用するた
め、既存の標準との間で容易に変換できる。
め、既存の標準との間で容易に変換できる。
【0231】したがって、このフォーマットは、外から
見れば標準とみなせる。ピケット内部でこの提案された
フォーマットで浮動小数点を効率的に実行することがで
き、データを並列プロセッサにロードしまたはそこから
削除する時に、必要に応じてデータのフォーマットを変
換することができる。
見れば標準とみなせる。ピケット内部でこの提案された
フォーマットで浮動小数点を効率的に実行することがで
き、データを並列プロセッサにロードしまたはそこから
削除する時に、必要に応じてデータのフォーマットを変
換することができる。
【0232】この浮動小数点フォーマットは、マルチバ
イト幅データフローに対する実施効率が得られるように
選択された。このフォーマットは、実施効率をもたらす
と同時に、IEEE32ビット浮動小数点フォーマット
を上回る演算精度を提供する。
イト幅データフローに対する実施効率が得られるように
選択された。このフォーマットは、実施効率をもたらす
と同時に、IEEE32ビット浮動小数点フォーマット
を上回る演算精度を提供する。
【0233】図9に示すフォーマットは、IEEE32
ビット浮動小数点フォーマットよりも高い精度を得るの
に適したフォーマットの代表であり、バイト幅(8ビッ
ト)データ・ストリームを有するマシンで実施すること
を目的としている。好ましいフォーマットは、1ビット
の符号、7ビットの指数部、および8ビット4バイトの
小数部からなり、合計40ビットである。
ビット浮動小数点フォーマットよりも高い精度を得るの
に適したフォーマットの代表であり、バイト幅(8ビッ
ト)データ・ストリームを有するマシンで実施すること
を目的としている。好ましいフォーマットは、1ビット
の符号、7ビットの指数部、および8ビット4バイトの
小数部からなり、合計40ビットである。
【0234】小数部の長さを整数個のバイトだけ拡張す
ることにより、この同じ計算スタイルを拡張して、浮動
小数点計算の精度を上げることができることに留意され
たい。
ることにより、この同じ計算スタイルを拡張して、浮動
小数点計算の精度を上げることができることに留意され
たい。
【0235】指数部の各カウントが小数部の8ビット・
シフトを表すので、正規化された数値は最大7個の先行
0を持つことができる。先行0が8個以上ある場合、そ
の数値を調整して正規化する必要がある。
シフトを表すので、正規化された数値は最大7個の先行
0を持つことができる。先行0が8個以上ある場合、そ
の数値を調整して正規化する必要がある。
【0236】図10は、調整シフトを使って浮動小数点
調整を行う方法を示している。このシステムでは、デー
タ・ワードが図9のフォーマットで構成されている。浮
動小数点調整を行うには、小数部を8ビットだけ左にシ
フトし、指数部を1だけ減らす。上述のシステムを典型
とするバイト幅データフローでは、このシフト動作は、
次のバイトを第1バイトとし、すべて0の第1バイトを
切り捨てるだけで実施することができる。このシフトの
実施は、様々な方法で行うことができる。
調整を行う方法を示している。このシステムでは、デー
タ・ワードが図9のフォーマットで構成されている。浮
動小数点調整を行うには、小数部を8ビットだけ左にシ
フトし、指数部を1だけ減らす。上述のシステムを典型
とするバイト幅データフローでは、このシフト動作は、
次のバイトを第1バイトとし、すべて0の第1バイトを
切り捨てるだけで実施することができる。このシフトの
実施は、様々な方法で行うことができる。
【0237】バイト幅データフローでは、1クロック・
サイクルに1バイト幅シフトでデータをシフトする。最
大3回のシフトが必要である。これを、先行0のテスト
と組み合わせることができる。
サイクルに1バイト幅シフトでデータをシフトする。最
大3回のシフトが必要である。これを、先行0のテスト
と組み合わせることができる。
【0238】図11に示すもう1つの手法は、並列アレ
イに対して実施することができ、この手法はアレイの処
理要素がそれ自体のメモリを有するマシンに特に有利で
ある。この場合、データがメモリ内に存在すると仮定す
る。マシンはまず、先行0のバイト数を決定する。次
に、マシンは先行0バイトのカウントを使って、データ
の獲得に使用する取出しアドレスを調整する。次に、デ
ータ移動動作の一環として、4クロックで正規化プロセ
スを実施することができる。
イに対して実施することができ、この手法はアレイの処
理要素がそれ自体のメモリを有するマシンに特に有利で
ある。この場合、データがメモリ内に存在すると仮定す
る。マシンはまず、先行0のバイト数を決定する。次
に、マシンは先行0バイトのカウントを使って、データ
の獲得に使用する取出しアドレスを調整する。次に、デ
ータ移動動作の一環として、4クロックで正規化プロセ
スを実施することができる。
【0239】SIMDマシンでは、固定した所定のサイ
クル数ですべての動作が実行されるようにすることが好
ましい。指数部の1カウントが小数部1ビットを表す従
来の浮動小数点を用いる場合は、小数部の先行0 1個
につきシフトおよびカウント・プロセスが1回行われ
る。正規化の実行には0ないし32サイクルが必要とな
る。各ピケットは、そのハードウェア内で小数部に対し
て適切なサイクル数だけ実行するはずであり、そのサイ
クル数はピケットごとに異なる。このプロセスを決定的
なものにするには、SIMDマシン全体が最大(32)
のサイクル数だけ実行しなければならず、多数のピケッ
トで大量の遊休時間が生じる。
クル数ですべての動作が実行されるようにすることが好
ましい。指数部の1カウントが小数部1ビットを表す従
来の浮動小数点を用いる場合は、小数部の先行0 1個
につきシフトおよびカウント・プロセスが1回行われ
る。正規化の実行には0ないし32サイクルが必要とな
る。各ピケットは、そのハードウェア内で小数部に対し
て適切なサイクル数だけ実行するはずであり、そのサイ
クル数はピケットごとに異なる。このプロセスを決定的
なものにするには、SIMDマシン全体が最大(32)
のサイクル数だけ実行しなければならず、多数のピケッ
トで大量の遊休時間が生じる。
【0240】本明細書に記載する発想は決定的なものに
なっており、次のように12サイクルで実行される。
なっており、次のように12サイクルで実行される。
【0241】1.最上位側から順に一時に1バイトず
つ、小数部をメモリから(メモリ内の)レジスタに移動
し、各バイトがすべて0であるかどうかを記録する。す
べて0の場合、そうなっているバイトの数をカウントす
る。この動作には4サイクルを要する。
つ、小数部をメモリから(メモリ内の)レジスタに移動
し、各バイトがすべて0であるかどうかを記録する。す
べて0の場合、そうなっているバイトの数をカウントす
る。この動作には4サイクルを要する。
【0242】2.ポインタが小数部の最上位バイトの
「アドレス」を含むと仮定する。このポインタに0バイ
トの数(0〜4)を加算して、このポインタが小数部の
最上位非ゼロ・バイトを指すようにする。この動作には
1サイクルを要する。
「アドレス」を含むと仮定する。このポインタに0バイ
トの数(0〜4)を加算して、このポインタが小数部の
最上位非ゼロ・バイトを指すようにする。この動作には
1サイクルを要する。
【0243】3.ポインタを使って、最上位非ゼロ・ビ
ットから順に、最下位側に0を含むバイトを埋め込みな
がら、小数部をメモリに格納し直す。この動作には4サ
イクルを要する。
ットから順に、最下位側に0を含むバイトを埋め込みな
がら、小数部をメモリに格納し直す。この動作には4サ
イクルを要する。
【0244】4.次に指数部をカウント数だけ減分し、
メモリに格納し直す。この動作には3サイクルを要す
る。
メモリに格納し直す。この動作には3サイクルを要す
る。
【0245】この動作をピケット内で実施される通りに
図に示す。
図に示す。
【0246】上記の手法によって正規化を行うには、ピ
ケット設計の複数の機能にある程度のローカル自律性を
与える必要がある。限られたPME自律性またはピケッ
ト自律性を提供する機能には以下のものがある。
ケット設計の複数の機能にある程度のローカル自律性を
与える必要がある。限られたPME自律性またはピケッ
ト自律性を提供する機能には以下のものがある。
【0247】1.0の有無をテストし、状況に入れる。
【0248】2.状況が設定されている場合、カウンタ
を増分する。
を増分する。
【0249】3.レジスタ内のポインタ値をメモリ・イ
ンデックスとして使って、メモリへのデータ依存アクセ
スを提供する。本発明の好ましい実施例を説明してきた
が、現在と将来の両方において、当業者が、本発明の請
求の範囲に含まれる様々な改良と機能強化を行えること
が理解されよう。本発明の請求項は、最初に開示される
本発明に対する正当な保護を維持するために解釈されな
ければならない。
ンデックスとして使って、メモリへのデータ依存アクセ
スを提供する。本発明の好ましい実施例を説明してきた
が、現在と将来の両方において、当業者が、本発明の請
求の範囲に含まれる様々な改良と機能強化を行えること
が理解されよう。本発明の請求項は、最初に開示される
本発明に対する正当な保護を維持するために解釈されな
ければならない。
【図1】従来技術の代表と見なすことのできる最近のS
IMDプロセッサの概略図である。
IMDプロセッサの概略図である。
【図2】アレイ内の他のピケットとのバイト通信ができ
る、プロセッサ、メモリ、制御論理機構、及び連想メモ
リを備えた、シリコン・ベース上に構成された1対の基
本ピケット・ユニットを示す図である。
る、プロセッサ、メモリ、制御論理機構、及び連想メモ
リを備えた、シリコン・ベース上に構成された1対の基
本ピケット・ユニットを示す図である。
【図3】連想メモリの処理を示す図である。
【図4】マイクロプロセッサ制御装置と、カン詰ルーチ
ン用のハードワイヤ接続式順序付け制御装置と、ピケッ
ト・アレイとを使用する、SIMDサブシステム用の基
本16(n)ピケット構成を示す図である。ピケット・
アレイが形成するこの基本並列ピケット・プロセッサ・
システムは、独立型ユニットでもよい。
ン用のハードワイヤ接続式順序付け制御装置と、ピケッ
ト・アレイとを使用する、SIMDサブシステム用の基
本16(n)ピケット構成を示す図である。ピケット・
アレイが形成するこの基本並列ピケット・プロセッサ・
システムは、独立型ユニットでもよい。
【図5】図4の複数のピケット・プロセッサを組み込ん
だ多重ピケット・プロセッサ・システムを示す図であ
る。
だ多重ピケット・プロセッサ・システムを示す図であ
る。
【図6】サブシステムの機能ブロック図である。
【図7】図5のカードを含むサブシステム制御装置の配
置構成を示す図である。
置構成を示す図である。
【図8】本発明の好ましい実施例による、SIMDマシ
ン内のピケットのローカル自律性のためのドーズ命令と
ディスエーブル命令の関係を示す図である。
ン内のピケットのローカル自律性のためのドーズ命令と
ディスエーブル命令の関係を示す図である。
【図9】本発明の好ましい実施例の、特定の浮動小数点
フォーマットを示す図である。
フォーマットを示す図である。
【図10】浮動小数点の調整を行うための諸ステップを
記載した図である。
記載した図である。
【図11】本発明による、メモリをどのように使ってシ
フトの調整を行うかを示す図である。
フトの調整を行うかを示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トマス・ノーマン・バーカー アメリカ合衆国13850、ニューヨーク州ヴ ェスタル、サンセット・アベニュー 136 (72)発明者 ジェームズ・ウォレン・ディーフェンデル ファー アメリカ合衆国13827、ニューヨーク州オ ウェゴ、フロント・ストリート 396 (72)発明者 ピーター・マイケル・コッヘ アメリカ合衆国13760、ニューヨーク州エ ンディコット、ドーチェスタ・ドライブ 7
Claims (10)
- 【請求項1】データおよび命令を相互通信するためにピ
ケットとして結合された複数のアレイ処理要素を備え、
各ピケットが、様々な実行能力を有することができるよ
うにする複数の機構を有し、前記実行能力によって、各
ピケットがピケット内でデータを実行するために様々な
モードを獲得できるようになり、ピケット内でSIMD
コマンドを解釈できるようになる、データを並列に実行
できるプロセッサのアレイによってSIMDを処理する
能力を有するコンピュータ・システム。 - 【請求項2】各ピケットが複数のモードで動作できるよ
うにする前記複数の機構を各ピケットが有し、前記複数
のモードで、SIMDアレイの各プロセッサが、ローカ
ル条件に基づいて異なる動作を実行でき、実際に実行す
ることを特徴とする、請求項1に記載のコンピュータ・
システム。 - 【請求項3】SIMIMDアレイ・プロセッサ・モード
が設けられ、複数のアレイ・プロセッサのうちの少なく
とも1つが、SIMIMDモードで動作できるようにな
り、プロセッサ・アレイ内の要素が、各クロック・サイ
クルに制御装置からコマンドを受け取って実行し、前記
コマンドのうちの一部は、各ピケット内で解釈されて異
なる動作をもたらすことができることを特徴とする、請
求項1に記載のコンピュータ・システム。 - 【請求項4】各ピケット内でのSIMDコマンドの解釈
を、各ピケット内の1つまたは複数の状況ラッチまたは
レジスタ・ビットによって制御できることを特徴とす
る、請求項2に記載のコンピュータ・システム。 - 【請求項5】各ピケット内でのSIMDコマンドの解釈
を、各ピケット内の1つまたは複数のレジスタ内のデー
タによって制御できることを特徴とする、請求項2に記
載のコンピュータ・システム。 - 【請求項6】結果状態を収集して、プロセッサのアレイ
の制御装置に送ることができることを特徴とする、請求
項2に記載のコンピュータ・システム。 - 【請求項7】ピケット状況に基づくSIMDコマンドの
解釈の結果、ピケットが、動作の一部分について2つの
データ供給源のうちの1つを選択することができ、デー
タ供給源を、ピケット・レジスタまたはピケット外部の
1つもしくは複数のデータ・バスとすることができるこ
とを特徴とする、請求項4に記載のコンピュータ・シス
テム。 - 【請求項8】ピケット状況に基づくSIMDコマンドの
解釈の結果、ピケットが、ピケット内での動作の結果を
記憶するために2つのピケット・メモリ位置のうちの1
つを選択することができることを特徴とする、請求項4
に記載のコンピュータ・システム。 - 【請求項9】ピケット状況に基づくSIMDコマンドの
解釈の結果、ピケットが、隣接ピケットへの転送のため
にピケット内で2つのデータ供給源のうちの1つを選択
することができることを特徴とする、請求項4に記載の
コンピュータ・システム。 - 【請求項10】ある範囲の可能な浮動小数点数を処理す
るため、ピケットのアレイによって浮動小数点計算を処
理することができ、浮動小数点を処理するアレイが、複
数のピケット・ユニットを含み、各ピケット・ユニット
が、それぞれメモリを利用する処理の1要素を実行する
のに適合されるような形で、全ピケット・ユニット内の
情報の並列処理のために処理要素に結合されたローカル
・メモリと組み合わされた、ビット並列処理要素を有す
ることを特徴とする、請求項3に記載のコンピュータ・
システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US88725692A | 1992-05-22 | 1992-05-22 | |
| US887256 | 1992-05-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07287700A true JPH07287700A (ja) | 1995-10-31 |
Family
ID=25390771
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5118660A Pending JPH07287700A (ja) | 1992-05-22 | 1993-05-20 | コンピュータ・システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07287700A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016129039A (ja) * | 2010-11-18 | 2016-07-14 | 日本テキサス・インスツルメンツ株式会社 | コンテキスト切替方法及び装置 |
-
1993
- 1993-05-20 JP JP5118660A patent/JPH07287700A/ja active Pending
Non-Patent Citations (1)
| Title |
|---|
| JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING,LIMITATIONS IMPOSED ON MIXED-MODE PERFORMANCE OF OPTIMIZED PHASES DUE TO TEMPORAL JUXTAPOSITION=1991 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016129039A (ja) * | 2010-11-18 | 2016-07-14 | 日本テキサス・インスツルメンツ株式会社 | コンテキスト切替方法及び装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2642039B2 (ja) | アレイ・プロセッサ | |
| US5815723A (en) | Picket autonomy on a SIMD machine | |
| US5809292A (en) | Floating point for simid array machine | |
| US5870619A (en) | Array processor with asynchronous availability of a next SIMD instruction | |
| US5708836A (en) | SIMD/MIMD inter-processor communication | |
| US5966528A (en) | SIMD/MIMD array processor with vector processing | |
| US5625836A (en) | SIMD/MIMD processing memory element (PME) | |
| US5590345A (en) | Advanced parallel array processor(APAP) | |
| US5828894A (en) | Array processor having grouping of SIMD pickets | |
| US5588152A (en) | Advanced parallel processor including advanced support hardware | |
| US5963745A (en) | APAP I/O programmable router | |
| US5734921A (en) | Advanced parallel array processor computer package | |
| US5963746A (en) | Fully distributed processing memory element | |
| US5794059A (en) | N-dimensional modified hypercube | |
| JP2552076B2 (ja) | コンピュータ・システム | |
| JPH04267466A (ja) | 連想並列処理システム | |
| JP2557175B2 (ja) | コンピュータ・システム | |
| JP2579419B2 (ja) | マルチプロセッサ・メモリ・システム | |
| JP2620487B2 (ja) | コンピュータ・パッケージ | |
| JPH07287700A (ja) | コンピュータ・システム | |
| JP2552075B2 (ja) | コンピュータ・システム | |
| JP2521401B2 (ja) | 単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ | |
| JP2625628B2 (ja) | 浮動小数点コンピュータ・システム | |
| JP2549240B2 (ja) | コンピュータ・システム | |
| JPH0619864A (ja) | アレイプロセッサと処理素子と大量並列プロセッサ |