JPH06236448A - アレイプロセッサ用の多重マスク - Google Patents
アレイプロセッサ用の多重マスクInfo
- Publication number
- JPH06236448A JPH06236448A JP5312308A JP31230893A JPH06236448A JP H06236448 A JPH06236448 A JP H06236448A JP 5312308 A JP5312308 A JP 5312308A JP 31230893 A JP31230893 A JP 31230893A JP H06236448 A JPH06236448 A JP H06236448A
- Authority
- JP
- Japan
- Prior art keywords
- mask
- bit
- register
- context
- instruction
- 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
- 238000012545 processing Methods 0.000 claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 22
- 239000002184 metal Substances 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000000873 masking effect Effects 0.000 description 8
- 230000000295 complement effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 2
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 本発明は、相互接続された多重処理素子を含
む単一命令多重デ−タ装置の多重条件の実行のためのマ
スク技術を提供することを目的とする。 【構成】 各処理素子10が、デ−タを蓄積するメモリ手
段と、計算および/または入力/出力動作を行う機能手
段16〜20と、それら機能手段16〜20に多重動作を通常同
時に行わせる命令を蓄積する多重動作命令レジスタ12
と、1以上つのマスクビットが機能手段と関連している
複数のマスクビットを蓄積するマスクレジスタ12と、メ
モリ手段中のデ−タの条件の関数としてマスクビットを
設定する手段とを具備し、マスクレジスタの文脈はある
動作が行われることを選択的に阻止することを特徴とす
る。
む単一命令多重デ−タ装置の多重条件の実行のためのマ
スク技術を提供することを目的とする。 【構成】 各処理素子10が、デ−タを蓄積するメモリ手
段と、計算および/または入力/出力動作を行う機能手
段16〜20と、それら機能手段16〜20に多重動作を通常同
時に行わせる命令を蓄積する多重動作命令レジスタ12
と、1以上つのマスクビットが機能手段と関連している
複数のマスクビットを蓄積するマスクレジスタ12と、メ
モリ手段中のデ−タの条件の関数としてマスクビットを
設定する手段とを具備し、マスクレジスタの文脈はある
動作が行われることを選択的に阻止することを特徴とす
る。
Description
【0001】
【産業上の利用分野】本発明は通常アレイコンピュ−タ
用のマスク技術、特に多重命令レベルマスクを含むSI
MDコンピュ−タ用の微細粒のマスク技術に関する。
用のマスク技術、特に多重命令レベルマスクを含むSI
MDコンピュ−タ用の微細粒のマスク技術に関する。
【0002】
【従来の技術】典型的にコンピュ−タは単一の命令およ
び単一のデ−タ流(SISD)で動作する単一プロセッ
サである。即ち、単一プロセッサコンピュ−タは個々の
クロックサイクルで有効なただ1セットのデ−タでプロ
グラム内の単一命令で動作する単一の処理素子を含む。
全ての処理素子が単一の命令と多重デ−タ流(SIM
D)で動作するコンピュ−タ中に多重処理素子を含むこ
とがさらに技術で知られている。これらのタイプのSI
MDコンピュ−タまたはプロセッサでは異なったデ−タ
が通常各個々の処理素子に供給されるが、各処理素子は
同一のクロックサイクル期間中同一の命令シ−ケンスを
受信する。単一プロセッサにまさるSIMDコンピュ−
タの利点には制御ユニットの価格の低下と必要なプログ
ラムメモリの減少がある。
び単一のデ−タ流(SISD)で動作する単一プロセッ
サである。即ち、単一プロセッサコンピュ−タは個々の
クロックサイクルで有効なただ1セットのデ−タでプロ
グラム内の単一命令で動作する単一の処理素子を含む。
全ての処理素子が単一の命令と多重デ−タ流(SIM
D)で動作するコンピュ−タ中に多重処理素子を含むこ
とがさらに技術で知られている。これらのタイプのSI
MDコンピュ−タまたはプロセッサでは異なったデ−タ
が通常各個々の処理素子に供給されるが、各処理素子は
同一のクロックサイクル期間中同一の命令シ−ケンスを
受信する。単一プロセッサにまさるSIMDコンピュ−
タの利点には制御ユニットの価格の低下と必要なプログ
ラムメモリの減少がある。
【0003】SIMDコンピュ−タでは他のタイプのコ
ンピュ−タと同様に、通常マスクと呼ばれている基本的
な概念は処理素子の個々の動作の条件的実施に必要とさ
れる。マスクは処理素子に供給された命令シ−ケンスの
異なった命令が分離した処理素子に供給される特定のデ
−タがシ−ケンス内の特定の命令の条件を満たす処理素
子にのみ設けられることを可能にする。処理素子に供給
される命令シ−ケンスのある命令から特定の処理素子を
マスクする異なった技術が知られている。マスクを使用
する現代のSIMD装置の詳細な要約は文献(Horde,
R. Michael の“Parallel Supercomputing in SIMD Arc
hitectures ”、1990年、CRC Press 社、Boca Raton, F
L)に記載されている。さらに米国特許第4,907,148 号
明細書および同第5,045,995 号明細書もこれらのタイプ
のシステムのマスクに対する説明を与えている。
ンピュ−タと同様に、通常マスクと呼ばれている基本的
な概念は処理素子の個々の動作の条件的実施に必要とさ
れる。マスクは処理素子に供給された命令シ−ケンスの
異なった命令が分離した処理素子に供給される特定のデ
−タがシ−ケンス内の特定の命令の条件を満たす処理素
子にのみ設けられることを可能にする。処理素子に供給
される命令シ−ケンスのある命令から特定の処理素子を
マスクする異なった技術が知られている。マスクを使用
する現代のSIMD装置の詳細な要約は文献(Horde,
R. Michael の“Parallel Supercomputing in SIMD Arc
hitectures ”、1990年、CRC Press 社、Boca Raton, F
L)に記載されている。さらに米国特許第4,907,148 号
明細書および同第5,045,995 号明細書もこれらのタイプ
のシステムのマスクに対する説明を与えている。
【0004】
【発明が解決しようとする課題】前述したように、SI
MDコンピュ−タの従来技術のマスクは、命令がデ−タ
に対して動作しないようにコンピュ−タの任意の数の処
理素子の命令をマスクすることができる。しかしながら
多数の命令フォ−マットは多重条件的実行または動作を
含む。これらの命令は通常非常に長い命令ワ−ド(VL
IW)と呼ばれる。それ故精巧なSIMDコンピュ−タ
は多重処理素子による並列からだけでなく、1命令当り
の多重動作による並列からも有益である。
MDコンピュ−タの従来技術のマスクは、命令がデ−タ
に対して動作しないようにコンピュ−タの任意の数の処
理素子の命令をマスクすることができる。しかしながら
多数の命令フォ−マットは多重条件的実行または動作を
含む。これらの命令は通常非常に長い命令ワ−ド(VL
IW)と呼ばれる。それ故精巧なSIMDコンピュ−タ
は多重処理素子による並列からだけでなく、1命令当り
の多重動作による並列からも有益である。
【0005】単一のプロセッサの単一の命令における多
重動作の選択的マスクを提供することが技術で知られて
いる。多重マスク技術の少なくとも1つの説明は文献
(Stevenによる“HARP:A Parallel Pipeline RISC Pro
cessor”、Microprocessors and Microsystems、13巻、
No.9、1989年11月、579 〜587 頁)に記載されている。
スティ−ブン氏は命令の条件的実行を制御するための試
験をするためのブ−ルレジスタを特定化する命令にフィ
−ルドを付加することにより全ての命令を調整する概念
と、条件の意味を制御するフィ−ルド、即ちブ−ルレジ
スタが真であれば実行し、またはブ−ルレジスタが偽で
あれば実行するフィ−ルドとを紹介している。常に真で
あり無調整動作を生じる特別のレジスタが設けられてい
る。しかしながらこの処理は単一のプロセッサに限定さ
れている。SIMD構造の多重マスクは従来技術で示さ
れているとは考えられない。
重動作の選択的マスクを提供することが技術で知られて
いる。多重マスク技術の少なくとも1つの説明は文献
(Stevenによる“HARP:A Parallel Pipeline RISC Pro
cessor”、Microprocessors and Microsystems、13巻、
No.9、1989年11月、579 〜587 頁)に記載されている。
スティ−ブン氏は命令の条件的実行を制御するための試
験をするためのブ−ルレジスタを特定化する命令にフィ
−ルドを付加することにより全ての命令を調整する概念
と、条件の意味を制御するフィ−ルド、即ちブ−ルレジ
スタが真であれば実行し、またはブ−ルレジスタが偽で
あれば実行するフィ−ルドとを紹介している。常に真で
あり無調整動作を生じる特別のレジスタが設けられてい
る。しかしながらこの処理は単一のプロセッサに限定さ
れている。SIMD構造の多重マスクは従来技術で示さ
れているとは考えられない。
【0006】従来技術の多重マスク技術は条件的サブル
−チン呼出しを支持するため多重処理素子の必要なマス
クを提供する能力がない。それ故、従来技術のマスク技
術は現在の編集技術および同一のハ−ドウェア価格によ
って実用的な処理能力を限定する。必要なのはSIMD
コンピュ−タの単一命令内の個々の動作の多重条件的実
行のマスク能力のあるマスク技術である。それ故、本発
明の目的はSIMDコンピュ−タでこのようなマスク技
術を提供することである。
−チン呼出しを支持するため多重処理素子の必要なマス
クを提供する能力がない。それ故、従来技術のマスク技
術は現在の編集技術および同一のハ−ドウェア価格によ
って実用的な処理能力を限定する。必要なのはSIMD
コンピュ−タの単一命令内の個々の動作の多重条件的実
行のマスク能力のあるマスク技術である。それ故、本発
明の目的はSIMDコンピュ−タでこのようなマスク技
術を提供することである。
【0007】
【課題を解決するための手段】本発明によって命令内の
特定の条件下で実行可能な複数の動作の多重マスクを提
供するためのSIMDプロセッサ用のマスク技術が提供
される。これを達成するために命令はマスクビットバン
クと呼ばれる登録内の特定位置をアドレスする各動作用
の一連のマスクビットを含む。
特定の条件下で実行可能な複数の動作の多重マスクを提
供するためのSIMDプロセッサ用のマスク技術が提供
される。これを達成するために命令はマスクビットバン
クと呼ばれる登録内の特定位置をアドレスする各動作用
の一連のマスクビットを含む。
【0008】非常に長い命令ワ−ド構造に基づく実行に
おける単一命令は1以上の数学的関数ユニットのような
多重機能/動作と、乗算器と、北/南 I/0機能、東
/西I/0機能とを含む。命令のこれらの異なった各機
能は典型的に所望のマスクビットを登録するためのアド
レス位置を含む。従って単一の機械命令内の各異なった
機械動作はマスクレジスタの適切なセットから異なった
個々のマスクビットを選択し、従って条件制御のいくつ
かの異なった場合の同時的な実行を許容する。
おける単一命令は1以上の数学的関数ユニットのような
多重機能/動作と、乗算器と、北/南 I/0機能、東
/西I/0機能とを含む。命令のこれらの異なった各機
能は典型的に所望のマスクビットを登録するためのアド
レス位置を含む。従って単一の機械命令内の各異なった
機械動作はマスクレジスタの適切なセットから異なった
個々のマスクビットを選択し、従って条件制御のいくつ
かの異なった場合の同時的な実行を許容する。
【0009】多重マスクへの同一の方法は単一の動作の
みを特定化する命令の場合にも適用される。これは分岐
の必要なしに行われるプロセッサ性能を低くする必要な
条件的分岐を有する動作を可能にする。多重マスクは並
列に実行される多重命令を結合する“超スカラ−”プロ
セッサにも適用され、非常に長い命令ワ−ド構造の場合
と類似した効果を生じる。
みを特定化する命令の場合にも適用される。これは分岐
の必要なしに行われるプロセッサ性能を低くする必要な
条件的分岐を有する動作を可能にする。多重マスクは並
列に実行される多重命令を結合する“超スカラ−”プロ
セッサにも適用され、非常に長い命令ワ−ド構造の場合
と類似した効果を生じる。
【0010】多重マスクの存在で条件的サブル−チン呼
出しを支持するために、汎用エネ−ブルマスク文脈ビッ
トが組入れられる。SIMDプロセッサでは、サブル−
チン呼出しがコ−ドの条件的ブロックにあるとき、所望
の動作はサブル−チンがコ−ドの包囲ブロックの状態が
真である処理素子のグル−プでのみ行われることであ
る。SIMD装置では全ての処理素子はサブル−チン呼
出しを動作する。それ故呼出しが行われたとき効果的に
マスクを剥離する処理素子でサブル−チン呼出しの効果
を選択的にディスエーブルにすることが必要である。こ
の状態は多重マスクが存在するときのみ生じる。単一マ
スク文脈ビットは各処理素子に組入れられる。マスク文
脈ビットは機械の特定の動作でマスク用に選択される全
てのビットとビット的にアンド処理される。それ故特定
の処理素子は処理呼出しの“文脈”に基づいてエネ−ブ
ルまたはディスエーブルにされることができる。
出しを支持するために、汎用エネ−ブルマスク文脈ビッ
トが組入れられる。SIMDプロセッサでは、サブル−
チン呼出しがコ−ドの条件的ブロックにあるとき、所望
の動作はサブル−チンがコ−ドの包囲ブロックの状態が
真である処理素子のグル−プでのみ行われることであ
る。SIMD装置では全ての処理素子はサブル−チン呼
出しを動作する。それ故呼出しが行われたとき効果的に
マスクを剥離する処理素子でサブル−チン呼出しの効果
を選択的にディスエーブルにすることが必要である。こ
の状態は多重マスクが存在するときのみ生じる。単一マ
スク文脈ビットは各処理素子に組入れられる。マスク文
脈ビットは機械の特定の動作でマスク用に選択される全
てのビットとビット的にアンド処理される。それ故特定
の処理素子は処理呼出しの“文脈”に基づいてエネ−ブ
ルまたはディスエーブルにされることができる。
【0011】本発明の付加的な目的と利点は添付図面を
伴って後述の説明と特許請求の範囲から明白になるであ
ろう。
伴って後述の説明と特許請求の範囲から明白になるであ
ろう。
【0012】
【実施例】SIMDコンピュ−タのマスクに関する好ま
しい実施例の以下の説明は本質的に例示にすぎず、本発
明またはその応用または使用を限定するものではない。
前述のようにSIMD並列プロセッサの動作のマスクは
基本的な要求である。このマスクは条件がアレイ/ベク
トル比較から生じるコ−ドの条件的実行をSIMDプロ
セッサが処理する方法である。例えばP個の処理素子
(PE)を有する簡単なSIMDシステムを考慮する。
さらに1処理素子当り1の変数が存在するようにSIM
D変数を変数のアレイ/ベクトルとする。Xが負である
処理素子についてのみ動作を行うことを期待するSIM
D変数Xを与え、“C”の言語記号を使用して表記し、
/**/は記述的な説明を表す。
しい実施例の以下の説明は本質的に例示にすぎず、本発
明またはその応用または使用を限定するものではない。
前述のようにSIMD並列プロセッサの動作のマスクは
基本的な要求である。このマスクは条件がアレイ/ベク
トル比較から生じるコ−ドの条件的実行をSIMDプロ
セッサが処理する方法である。例えばP個の処理素子
(PE)を有する簡単なSIMDシステムを考慮する。
さらに1処理素子当り1の変数が存在するようにSIM
D変数を変数のアレイ/ベクトルとする。Xが負である
処理素子についてのみ動作を行うことを期待するSIM
D変数Xを与え、“C”の言語記号を使用して表記し、
/**/は記述的な説明を表す。
【0013】 1)SIMDフロ−トX; 2)(X<0.0 )ならば{ 3) /*コ−ドの文節の基本的ブロック*/ 4) … 5)} 条件的SIMD表示(X<0.0 )は表現が真である処理
素子では真であり、表現が偽である処理素子で同様に偽
である特別なSIMDブ−ル変数に評価する。処理素子
の活性なセットとして表現が真である場合プロセッサの
セットと呼んでいる。ハ−ドウェア構造ではマスクフラ
ッグが偽であるならば処理素子をディスエーブルにする
ために当業者に知られているように各処理素子において
ブ−ルマスクフラッグの使用により特定の条件を設け
る。従って全ての処理素子で前述の動作の“文節”を実
施するがマスクフラッグが真に設定されている処理素子
だけをエネ−ブルにする。
素子では真であり、表現が偽である処理素子で同様に偽
である特別なSIMDブ−ル変数に評価する。処理素子
の活性なセットとして表現が真である場合プロセッサの
セットと呼んでいる。ハ−ドウェア構造ではマスクフラ
ッグが偽であるならば処理素子をディスエーブルにする
ために当業者に知られているように各処理素子において
ブ−ルマスクフラッグの使用により特定の条件を設け
る。従って全ての処理素子で前述の動作の“文節”を実
施するがマスクフラッグが真に設定されている処理素子
だけをエネ−ブルにする。
【0014】以下のより複雑に作られた条件的支持シ−
ケンスを考察する。
ケンスを考察する。
【0015】 1) SIMDフロ−トX,Y,Z; 2) (X<0.0 )ならば{ 3) /*ここで(X<0.0 )*/ 4) X=X*Y; 5) (Y==1.0 )ならば{ 6) /*ここで((X<0.0 )&&(Y==1.0 )*/ 7) Y=−Y; 8) }または{ 9) /*ここで((X<0.0 )&&(Y!=1.0 )*/ 10) Y=2.0 *Y, 11) } 12) }または{ 13) /*(X>=0.0 )*/ 14) X=Z; 15) } この例ではライン2は特定のSIMD条件を表し、ライ
ン3〜11はその条件の本体を表す。ライン2のSIMD
条件は活性セットを(X<0.0 )である処理素子に対し
て設定する。。従ってライン2の条件の本体内のライン
5のSIMD条件は活性セットにある処理素子でのみ評
価される。それ故ライン5の条件のライン6、7の文節
本体は条件表現(X<0.0 )および前述の(Y==1.0
)により生成されるセットの交差(論理的AND)で
ある活性セットを有する。
ン3〜11はその条件の本体を表す。ライン2のSIMD
条件は活性セットを(X<0.0 )である処理素子に対し
て設定する。。従ってライン2の条件の本体内のライン
5のSIMD条件は活性セットにある処理素子でのみ評
価される。それ故ライン5の条件のライン6、7の文節
本体は条件表現(X<0.0 )および前述の(Y==1.0
)により生成されるセットの交差(論理的AND)で
ある活性セットを有する。
【0016】図1は前述の命令コ−ドのシ−ケンスの活
性セットの物理的表示を与える。特に図1(a)〜
(e)は方形構造(64処理素子)の処理素子のアレイを
示しており、影のボックスは特定の条件を満足する処理
素子を示している。典型的に各行の処理素子は処理素子
が東/西方向でデ−タを交換できるようにI/0チャン
ネルにより接続され、各列の処理素子は処理素子がデ−
タを北/南方向で交換できるようにI/0チャンネルに
より接続されている。図1(a)は前述の命令コ−ドシ
−ケンスのライン2の条件に関連する活性セットを示し
ている。換言すると影付のボックスは(X<0.0 )の必
要性を満たす処理素子を指示する。同様に図1(b)は
命令コ−ドシ−ケンスが分離するならば即ち(Y=1.0
)ならば、命令コ−ドシ−ケンスのライン5の条件を
満たす処理素子の活性セットを示している。図1(c)
はコ−ドの前述のシ−ケンスのライン5に関連する活性
セットを示しており、このように図1(a)および
(b)の重複である。換言すれば図1(c)の影付のボ
ックスは(X<0.0 )と(Y=1.0 )の論理アンドであ
る。
性セットの物理的表示を与える。特に図1(a)〜
(e)は方形構造(64処理素子)の処理素子のアレイを
示しており、影のボックスは特定の条件を満足する処理
素子を示している。典型的に各行の処理素子は処理素子
が東/西方向でデ−タを交換できるようにI/0チャン
ネルにより接続され、各列の処理素子は処理素子がデ−
タを北/南方向で交換できるようにI/0チャンネルに
より接続されている。図1(a)は前述の命令コ−ドシ
−ケンスのライン2の条件に関連する活性セットを示し
ている。換言すると影付のボックスは(X<0.0 )の必
要性を満たす処理素子を指示する。同様に図1(b)は
命令コ−ドシ−ケンスが分離するならば即ち(Y=1.0
)ならば、命令コ−ドシ−ケンスのライン5の条件を
満たす処理素子の活性セットを示している。図1(c)
はコ−ドの前述のシ−ケンスのライン5に関連する活性
セットを示しており、このように図1(a)および
(b)の重複である。換言すれば図1(c)の影付のボ
ックスは(X<0.0 )と(Y=1.0 )の論理アンドであ
る。
【0017】知られているようにSIMDプログラムは
“それから”と“または”を有するSIMD条件が両者
の文節を実施しなければならない点で典型的な単一プロ
セッサプログラムから離れ、単一プロセッサでは条件文
節の1つのみが実施される。これは両者の文節が空のな
い活性セットを具備する事実によるものである。図1
(d)は(X<0.0 )と(Y!=1.0 )の論理アンドの
処理素子であるように示されている活性影領域を表して
いる。付加的に図1(e)は(X≧0.0 )の影付の活性
処理素子を表している。
“それから”と“または”を有するSIMD条件が両者
の文節を実施しなければならない点で典型的な単一プロ
セッサプログラムから離れ、単一プロセッサでは条件文
節の1つのみが実施される。これは両者の文節が空のな
い活性セットを具備する事実によるものである。図1
(d)は(X<0.0 )と(Y!=1.0 )の論理アンドの
処理素子であるように示されている活性影領域を表して
いる。付加的に図1(e)は(X≧0.0 )の影付の活性
処理素子を表している。
【0018】SIMDマスクの基本的方法は簡単な処理
素子に対しては十分である。しかしながら機能的並列即
ち処理素子内の単一の命令における多重動作が存在する
ならばこの方法は不適切である。4つの機能ユニット:
1)乗算器、2)数学的論理ユニット(ALU);3)
北/南 入力/出力(I/0)ユニット、4)東/西I
/0ユニットを有するVLIWが設けられている処理素
子の場合を考慮する。高速フ−リエ変換(FET)処理
装置のようなアルゴリズムでは、位置に基づいていくつ
かの処理素子がデ−タの部分的平面の順序に影響を与え
るために他の処理素子とのデ−タ変換(I/0)に参加
することを必要とする。同時に単一の命令制御下で、全
ての処理素子は算数的計算を行うが、別の独立したデ−
タ計算のためにデ−タ(I/0)を取出す。計算から分
離したI/0のマスクはこのFFTの例で重要であり、
それは各処理素子のI/0により計算を最大に重複する
ことを可能にし、従って処理素子の複製による並列だけ
でなく、処理素子に与えられる命令のある部分を選択的
にマスクする能力による並列を開発する。このタイプの
条件では2つのI/0方向(東/西と北/南)が独立し
た仕事であり、従って非常に異なったマスクを必要とす
る。従って多くのアルゴリズムは多重マスク動作を支持
する機構があるとき重複されることができる分離した作
業を有する。 本発明の好ましい実施例によると、微細
粒マスクは単一命令で乗算、ALU動作、北/南 I/
0動作、東/西 I/0動作を別々にマスクするために
SIMDプロセッサ中のVLIWタイプの処理素子に応
用可能にされている。本発明の好ましい実施例はI/0
動作のマスクと他の機能ユニット動作との区別をしな
い。単一のマイクロコ−ド命令での各機械動作は後述す
るようにマスクビットレジスタの8つのプログラマ可視
単一のビットレジスタ(MB0 −MB1 )の1つにより
マスクされる。これにより各マイクロ動作は条件的動作
であることが明白である。後述するように単一の機械命
令の各機械動作は異なった個々のマスクビットを選択す
る。マスク用の構成支持の概念はル−プ反復を横切る動
作の最適な重複を可能にし、実行能力のある編集タ−ゲ
ットを維持する。
素子に対しては十分である。しかしながら機能的並列即
ち処理素子内の単一の命令における多重動作が存在する
ならばこの方法は不適切である。4つの機能ユニット:
1)乗算器、2)数学的論理ユニット(ALU);3)
北/南 入力/出力(I/0)ユニット、4)東/西I
/0ユニットを有するVLIWが設けられている処理素
子の場合を考慮する。高速フ−リエ変換(FET)処理
装置のようなアルゴリズムでは、位置に基づいていくつ
かの処理素子がデ−タの部分的平面の順序に影響を与え
るために他の処理素子とのデ−タ変換(I/0)に参加
することを必要とする。同時に単一の命令制御下で、全
ての処理素子は算数的計算を行うが、別の独立したデ−
タ計算のためにデ−タ(I/0)を取出す。計算から分
離したI/0のマスクはこのFFTの例で重要であり、
それは各処理素子のI/0により計算を最大に重複する
ことを可能にし、従って処理素子の複製による並列だけ
でなく、処理素子に与えられる命令のある部分を選択的
にマスクする能力による並列を開発する。このタイプの
条件では2つのI/0方向(東/西と北/南)が独立し
た仕事であり、従って非常に異なったマスクを必要とす
る。従って多くのアルゴリズムは多重マスク動作を支持
する機構があるとき重複されることができる分離した作
業を有する。 本発明の好ましい実施例によると、微細
粒マスクは単一命令で乗算、ALU動作、北/南 I/
0動作、東/西 I/0動作を別々にマスクするために
SIMDプロセッサ中のVLIWタイプの処理素子に応
用可能にされている。本発明の好ましい実施例はI/0
動作のマスクと他の機能ユニット動作との区別をしな
い。単一のマイクロコ−ド命令での各機械動作は後述す
るようにマスクビットレジスタの8つのプログラマ可視
単一のビットレジスタ(MB0 −MB1 )の1つにより
マスクされる。これにより各マイクロ動作は条件的動作
であることが明白である。後述するように単一の機械命
令の各機械動作は異なった個々のマスクビットを選択す
る。マスク用の構成支持の概念はル−プ反復を横切る動
作の最適な重複を可能にし、実行能力のある編集タ−ゲ
ットを維持する。
【0019】図2は個々の処理素子に対するマイクロコ
−ド命令フォ−マットのビット表示を示している。明白
なようにマイクロコ−ド命令の別々の各4つ(4)の機
能に関連する分離したマスクフィ−ルドが存在する。特
にビット0〜30は演算数がアドレス位置L、Rでレジス
タ中にあるALU動作のビット表示を含み、結果はレジ
スタ中のアドレス位置Yに記憶される。動作はさらに4
ビットマスク位置(ビット21〜24)を含む。同様に乗算
動作命令はビット31〜61により表される。乗算動作も4
ビットマスク位置(ビット52〜55)を有し、3つのビッ
トはマスクビットのアドレスを特定し、残りのビットは
補足ビットである。さらに、4ビットマスク位置(ビッ
ト76〜79)を含む北/南動作が存在する。さらに4ビッ
トマスク位置(ビット99〜102 )を含む東/西 I/0
動作が存在する。
−ド命令フォ−マットのビット表示を示している。明白
なようにマイクロコ−ド命令の別々の各4つ(4)の機
能に関連する分離したマスクフィ−ルドが存在する。特
にビット0〜30は演算数がアドレス位置L、Rでレジス
タ中にあるALU動作のビット表示を含み、結果はレジ
スタ中のアドレス位置Yに記憶される。動作はさらに4
ビットマスク位置(ビット21〜24)を含む。同様に乗算
動作命令はビット31〜61により表される。乗算動作も4
ビットマスク位置(ビット52〜55)を有し、3つのビッ
トはマスクビットのアドレスを特定し、残りのビットは
補足ビットである。さらに、4ビットマスク位置(ビッ
ト76〜79)を含む北/南動作が存在する。さらに4ビッ
トマスク位置(ビット99〜102 )を含む東/西 I/0
動作が存在する。
【0020】マスクフィ−ルドは2つのフィ−ルド即
ち、反転マスク感知フィ−ルドとビットバンクアドレス
フィ−ルドに分解されることができる。反転マスクフィ
−ルドは単一のビットでありビットバンクアドレスフィ
−ルドはマスクビットフィ−ルドの3つの下位桁ビット
である。換言すると各マスクフィ−ルドの最後の3ビッ
トはビットバンク位置であり、8つの位置の1つであ
る。反転マスクビットは補足ビットである。
ち、反転マスク感知フィ−ルドとビットバンクアドレス
フィ−ルドに分解されることができる。反転マスクフィ
−ルドは単一のビットでありビットバンクアドレスフィ
−ルドはマスクビットフィ−ルドの3つの下位桁ビット
である。換言すると各マスクフィ−ルドの最後の3ビッ
トはビットバンク位置であり、8つの位置の1つであ
る。反転マスクビットは補足ビットである。
【0021】図3を参照すると本発明の好ましい実施例
による部品を含んだ単一の処理素子10の1形態がブロッ
ク図で示されている。特に多重動作命令を蓄積するレジ
スタ12はそれを複数の機能ユニットを備えた処理ユニッ
ト14に供給する。前述したように機能ユニットは東/西
I/0ユニット16、北/南 I/0ユニット18、乗算
ユニット20と演算的論理ユニット22とを含む。各機能ユ
ニットにより行われる動作は多重動作命令により決定さ
れる。各機能ユニットの動作は各機能ユニットにAND
ゲ−ト24からの付加的な制御信号を与えることによりエ
ネ−ブルまたはディスエーブルにされる。ANDゲ−ト
24からの出力は選択マスクレジスタ26とマスク文脈レジ
スタ28の値の論理アンドである。マスクレジスタ26の所
望のビットは動作の所望のマスクを行うために特定の機
能ユニットに対して適切なマルチプレクサ30により選択
される。
による部品を含んだ単一の処理素子10の1形態がブロッ
ク図で示されている。特に多重動作命令を蓄積するレジ
スタ12はそれを複数の機能ユニットを備えた処理ユニッ
ト14に供給する。前述したように機能ユニットは東/西
I/0ユニット16、北/南 I/0ユニット18、乗算
ユニット20と演算的論理ユニット22とを含む。各機能ユ
ニットにより行われる動作は多重動作命令により決定さ
れる。各機能ユニットの動作は各機能ユニットにAND
ゲ−ト24からの付加的な制御信号を与えることによりエ
ネ−ブルまたはディスエーブルにされる。ANDゲ−ト
24からの出力は選択マスクレジスタ26とマスク文脈レジ
スタ28の値の論理アンドである。マスクレジスタ26の所
望のビットは動作の所望のマスクを行うために特定の機
能ユニットに対して適切なマルチプレクサ30により選択
される。
【0022】図4は好ましい実施例のマスク部分をより
詳細に示している。各4つの機能ユニットは動作をマス
クするためにそれ自身のエネ−ブル信号を必要とする。
エネ−ブル信号は8から1のマルチプレクサ32から決定
され、これは制御用に低い桁の3ビット(マスクビット
<2…0>)を使用し出力でエネ−ブル信号を生成す
る、。マルチプレクサ32への最初の入力はマスク文脈ビ
ットレジスタ28からのマスク文脈(MC)ビットと反転
制御ビット(マスクビット<3>)との排他的オアであ
る。1〜5の入力は反転制御ビットと排他的オア処理さ
れ、MCビットとアンド処理される選択マスクビット
(MBj、ここで1≦j≦5)である。マルチプレクサ
32への6番目の入力はMB6と反転制御ビットの排他的
オアであり、PE_スカラ信号と論理積にされる。信号
PE_スカラはアレイ中の単一のPEで1つのみであ
り、従ってスカラ処理を促進する。好ましい実施例では
PE_スカラは北/西の大部分のPEにおいてただ1つ
である。マルチプレクサ32への7番目の入力はマスクビ
ット<3>の反転である。
詳細に示している。各4つの機能ユニットは動作をマス
クするためにそれ自身のエネ−ブル信号を必要とする。
エネ−ブル信号は8から1のマルチプレクサ32から決定
され、これは制御用に低い桁の3ビット(マスクビット
<2…0>)を使用し出力でエネ−ブル信号を生成す
る、。マルチプレクサ32への最初の入力はマスク文脈ビ
ットレジスタ28からのマスク文脈(MC)ビットと反転
制御ビット(マスクビット<3>)との排他的オアであ
る。1〜5の入力は反転制御ビットと排他的オア処理さ
れ、MCビットとアンド処理される選択マスクビット
(MBj、ここで1≦j≦5)である。マルチプレクサ
32への6番目の入力はMB6と反転制御ビットの排他的
オアであり、PE_スカラ信号と論理積にされる。信号
PE_スカラはアレイ中の単一のPEで1つのみであ
り、従ってスカラ処理を促進する。好ましい実施例では
PE_スカラは北/西の大部分のPEにおいてただ1つ
である。マルチプレクサ32への7番目の入力はマスクビ
ット<3>の反転である。
【0023】図5はSIMDプロセッサのPEのアレイ
の1つのPE36の計算部分の基本的な部分を示してい
る。SIMDプロセッサの計算部分の構造と動作は知ら
れているので、ここでは簡単に説明しておく。さらに詳
細は種々の文献(例えばPrzytula, K. Wojtek の“Medi
um Grain Parallel Architecture For Image and Signa
l Processing”、Parallel Archtectures And Algorith
ms For Image Understanding、1991年)に記載されてい
る。PE36は4つの書込み入力と6つの読取り出力を有
するレジスタファイル38を含む。レジスタファイル38と
の間で命令を送信および受信する部品は浮遊小数点乗算
器40(FP MULTI)と浮遊小数点算数的論理ユニ
ット42(FP ALU)と北/南 入力/出力ユニット
44と東/西入力出力ユニット46を含む。乗算器40および
ALU42の両者はレジスタファイル38から最大2つの読
取りと1つの書取りを要求する。I/0ユニット44と46
はレジスタファイル38から最大1つの読取りと1つの書
取りを要求する。
の1つのPE36の計算部分の基本的な部分を示してい
る。SIMDプロセッサの計算部分の構造と動作は知ら
れているので、ここでは簡単に説明しておく。さらに詳
細は種々の文献(例えばPrzytula, K. Wojtek の“Medi
um Grain Parallel Architecture For Image and Signa
l Processing”、Parallel Archtectures And Algorith
ms For Image Understanding、1991年)に記載されてい
る。PE36は4つの書込み入力と6つの読取り出力を有
するレジスタファイル38を含む。レジスタファイル38と
の間で命令を送信および受信する部品は浮遊小数点乗算
器40(FP MULTI)と浮遊小数点算数的論理ユニ
ット42(FP ALU)と北/南 入力/出力ユニット
44と東/西入力出力ユニット46を含む。乗算器40および
ALU42の両者はレジスタファイル38から最大2つの読
取りと1つの書取りを要求する。I/0ユニット44と46
はレジスタファイル38から最大1つの読取りと1つの書
取りを要求する。
【0024】示されているように北/南 入力/出力ユ
ニット44はレジスタファイル38から命令を受信し、この
命令を北/南 入力/出力回路50に供給する北/南出力
レジスタ48を含み、北/南 入力/出力回路50はこの北
/南方向でデ−タを伝送する。北/南 入力/出力回路
50からの出力はデ−タをレジスタファイル38に書き込む
北/南入力レジスタ52に供給される。同様に東/西 入
力/出力ユニット46は読取り命令をレジスタファイル38
から受信しその命令を東と西方向でデ−タを伝送するた
めの東/西 入力/出力回路56に伝送する東/西出力レ
ジスタ54を含む。東/西入力レジスタ58はレジスタファ
イル38に書込まれる東/西 入力/出力回路56から命令
を受信する。
ニット44はレジスタファイル38から命令を受信し、この
命令を北/南 入力/出力回路50に供給する北/南出力
レジスタ48を含み、北/南 入力/出力回路50はこの北
/南方向でデ−タを伝送する。北/南 入力/出力回路
50からの出力はデ−タをレジスタファイル38に書き込む
北/南入力レジスタ52に供給される。同様に東/西 入
力/出力ユニット46は読取り命令をレジスタファイル38
から受信しその命令を東と西方向でデ−タを伝送するた
めの東/西 入力/出力回路56に伝送する東/西出力レ
ジスタ54を含む。東/西入力レジスタ58はレジスタファ
イル38に書込まれる東/西 入力/出力回路56から命令
を受信する。
【0025】図6を参照すると、処理素子36はさらに出
力MRを有する点線のボックスで示されているマスクレ
ジスタ60を含む。マスクレジスタ60はMB0 −MB7 の
記号が付けられている8つのビットを有する機能ユニッ
トビットバンク62を含む。これらのビットは前述したよ
うに計算のためにマスクされたビットを表す。後述する
ように機能ユニットビットMB0 は金属ワイヤによる真
のビットであり機能ユニットビットFB7 は金属ワイヤ
による無条件ビットである。好ましい実施例ではスカラ
動作は最北西PEで行われる。特別の目的のマスクビッ
トMB6はスカラ処理を助長するため北西の大部分のP
Eに与えられる。北/西の大部分のPEスカラでは動作
はMB6 を使用してマスクされる。換言すれば図2で前
述したように1動作当り4つのマスクビットを利用し、
ここでビットのうちの3つはレジスタ位置を限定し、4
番目のビットは補足ビットであり、8つのレジスタ位置
がアドレスされることを可能にする。
力MRを有する点線のボックスで示されているマスクレ
ジスタ60を含む。マスクレジスタ60はMB0 −MB7 の
記号が付けられている8つのビットを有する機能ユニッ
トビットバンク62を含む。これらのビットは前述したよ
うに計算のためにマスクされたビットを表す。後述する
ように機能ユニットビットMB0 は金属ワイヤによる真
のビットであり機能ユニットビットFB7 は金属ワイヤ
による無条件ビットである。好ましい実施例ではスカラ
動作は最北西PEで行われる。特別の目的のマスクビッ
トMB6はスカラ処理を助長するため北西の大部分のP
Eに与えられる。北/西の大部分のPEスカラでは動作
はMB6 を使用してマスクされる。換言すれば図2で前
述したように1動作当り4つのマスクビットを利用し、
ここでビットのうちの3つはレジスタ位置を限定し、4
番目のビットは補足ビットであり、8つのレジスタ位置
がアドレスされることを可能にする。
【0026】マスクレジスタ60はさらに単一のマスク文
脈(MC)ビットを保持するマスク文脈レジスタ66と、
単一の全体的な応答フラッグ(GRF)ビットを保持す
る全体的応答フラッグレジスタ68を含む。マスク文脈ビ
ットは詳細に後述するようにサブル−チン呼出しの期間
中、特定の処理素子をエネ−ブルするかまたはディスエ
ーブルにするように命令の特定の機械動作のマスク用に
選択されたビットとビット的にアンド処理される。後述
するように全体的な応答フラッグビットは処理素子が条
件的サブル−チンの規定に当てはまるかどうかを決定す
るため、PE36中の他の全ての処理素子の全体的な応答
フラッグと論理的にオア処理される。
脈(MC)ビットを保持するマスク文脈レジスタ66と、
単一の全体的な応答フラッグ(GRF)ビットを保持す
る全体的応答フラッグレジスタ68を含む。マスク文脈ビ
ットは詳細に後述するようにサブル−チン呼出しの期間
中、特定の処理素子をエネ−ブルするかまたはディスエ
ーブルにするように命令の特定の機械動作のマスク用に
選択されたビットとビット的にアンド処理される。後述
するように全体的な応答フラッグビットは処理素子が条
件的サブル−チンの規定に当てはまるかどうかを決定す
るため、PE36中の他の全ての処理素子の全体的な応答
フラッグと論理的にオア処理される。
【0027】機能ユニットビットバンク62はデマルチプ
レクサ70により供給される。デマルチプレクサ70は金属
ワイヤの真のビットMB0 とMB7 を除いてビットバン
ク62の各ビットに結合される出力を有する。デマルチプ
レクサ70は排他的オアゲ−ト72から入力を得る。排他的
オアゲ−ト72は2つの入力を具備し、一方はマルチプレ
クサ74の出力からで他方は補数制御である。補数制御が
1であるとき、排他的オアゲ−ト72の出力はマルチプレ
クサ76からの出力の補数であり、そうでなければマルチ
プレクサ74出力の真の値が通過される。マルチプレクサ
76への5つの入力は機能ビットバンク62から、特にMB
1 −MB6 からのビットからのものである。入力7、8
はA0 とF0 レジスタのゼロビットから来る。マルチプ
レクサ76の出力はまた1つの入力としてマルチプレクサ
78に供給される。マルチプレクサ78の他の入力は標準的
に真である。マルチプレクサ78の出力は入力として排他
的オアゲ−ト80へ供給される。排他的オアゲ−ト80の出
力は全体的応答フラッグレジスタ68とマスク文脈ビット
レジスタ66へ入力として供給される。
レクサ70により供給される。デマルチプレクサ70は金属
ワイヤの真のビットMB0 とMB7 を除いてビットバン
ク62の各ビットに結合される出力を有する。デマルチプ
レクサ70は排他的オアゲ−ト72から入力を得る。排他的
オアゲ−ト72は2つの入力を具備し、一方はマルチプレ
クサ74の出力からで他方は補数制御である。補数制御が
1であるとき、排他的オアゲ−ト72の出力はマルチプレ
クサ76からの出力の補数であり、そうでなければマルチ
プレクサ74出力の真の値が通過される。マルチプレクサ
76への5つの入力は機能ビットバンク62から、特にMB
1 −MB6 からのビットからのものである。入力7、8
はA0 とF0 レジスタのゼロビットから来る。マルチプ
レクサ76の出力はまた1つの入力としてマルチプレクサ
78に供給される。マルチプレクサ78の他の入力は標準的
に真である。マルチプレクサ78の出力は入力として排他
的オアゲ−ト80へ供給される。排他的オアゲ−ト80の出
力は全体的応答フラッグレジスタ68とマスク文脈ビット
レジスタ66へ入力として供給される。
【0028】マスクレジスタ60内で示される全てのビッ
トは本発明の好ましい実施例によるSIMDプロセッサ
の特別処理の現在のマスク文脈を形成する。この文脈は
保存されPE36の動作中処理呼出しを横切って蓄積され
る。PE36では、このスタックは一般的目的のレジスタ
ファイル68へ保存(または同ファイバ68からの回復)に
より設けられる。換言すれば、マスクレジスタ60のビッ
トバンクの現在値はサブル−チン呼出し期間中スタック
に出力され、サブル−チン終了でビットバンクへ回復さ
れる。マスク文脈の管理は処理呼出しと復帰機構の一部
分である。
トは本発明の好ましい実施例によるSIMDプロセッサ
の特別処理の現在のマスク文脈を形成する。この文脈は
保存されPE36の動作中処理呼出しを横切って蓄積され
る。PE36では、このスタックは一般的目的のレジスタ
ファイル68へ保存(または同ファイバ68からの回復)に
より設けられる。換言すれば、マスクレジスタ60のビッ
トバンクの現在値はサブル−チン呼出し期間中スタック
に出力され、サブル−チン終了でビットバンクへ回復さ
れる。マスク文脈の管理は処理呼出しと復帰機構の一部
分である。
【0029】マスク技術の特定の例示では、機能呼出し
(X>0.0 )が条件的“もしも−それから”表現が優勢
な以下のソ−スコ−ド例を考察する。
(X>0.0 )が条件的“もしも−それから”表現が優勢
な以下のソ−スコ−ド例を考察する。
【0030】 1)SIMDフロ−トX,Y; 2)(X>0.0 )ならば{ 3) Y=foo(X); 4)} マスク文脈レジスタ66中のマスク文脈ビットは現在の処
理マスク文脈を実行する。前述の例ではX値が0.0 より
も大きいことを処理素子が示すならば、処理素子の全て
の制御は前述したようにレジスタ68中の全体的な応答フ
ラッグビット手段によりfoo()に移動される。しか
しながら条件(X>0.0 )がfoo()´コ−ドの動作
に参加するために真である処理素子のみを希望する。マ
スクレジスタ66中のマスク文脈ビットは全体的な処理素
子を全体的にエネ−ブルまたはディスエーブルにする単
一ビットとして動作することによってこの概念を支持す
る。マスク文脈レジスタ62は全体的にエネ−ブルであ
り、全ての機械動作のマスクのために選択される全ての
ビットと絶対的にビット的にアンド処理されるためであ
る。機械動作のために選択された(MB0 −MB5 )の
マスク値に関係なくマスク文脈ビットを処理素子の論理
的に偽の値に設定することによって結果は常に偽であ
る。従ってマスク文脈ビットが論理的に偽である処理素
子は、他方の全てと同一の命令を受信しながら実際の実
施に参加する能力がない。同様のことがSCMビットに
も当てはまる。
理マスク文脈を実行する。前述の例ではX値が0.0 より
も大きいことを処理素子が示すならば、処理素子の全て
の制御は前述したようにレジスタ68中の全体的な応答フ
ラッグビット手段によりfoo()に移動される。しか
しながら条件(X>0.0 )がfoo()´コ−ドの動作
に参加するために真である処理素子のみを希望する。マ
スクレジスタ66中のマスク文脈ビットは全体的な処理素
子を全体的にエネ−ブルまたはディスエーブルにする単
一ビットとして動作することによってこの概念を支持す
る。マスク文脈レジスタ62は全体的にエネ−ブルであ
り、全ての機械動作のマスクのために選択される全ての
ビットと絶対的にビット的にアンド処理されるためであ
る。機械動作のために選択された(MB0 −MB5 )の
マスク値に関係なくマスク文脈ビットを処理素子の論理
的に偽の値に設定することによって結果は常に偽であ
る。従ってマスク文脈ビットが論理的に偽である処理素
子は、他方の全てと同一の命令を受信しながら実際の実
施に参加する能力がない。同様のことがSCMビットに
も当てはまる。
【0031】ビットMB0 は前述したように金属ワイヤ
である。従って構造言語の無条件動作は明白に(または
絶対的に)MB0 を特定化する。これはビットバンクの
再負荷のオ−バ−ヘッドを無条件コ−ドの真の値に減少
する。ビットMB7 はMB0のように常に真である点で
特別の例外である。しかしながらビットMB7 は金属ワ
イヤの無条件ビットであるので、マスク文脈レジスタ66
でマスク文脈ビットを無効にする。換言すればこれは全
体的に無条件である。これは中断処理装置またはSIM
Dアレイのスカラ処理のような特別の場合に生じるよう
にマスク文脈を変更する移動を処理することを必要とす
る。
である。従って構造言語の無条件動作は明白に(または
絶対的に)MB0 を特定化する。これはビットバンクの
再負荷のオ−バ−ヘッドを無条件コ−ドの真の値に減少
する。ビットMB7 はMB0のように常に真である点で
特別の例外である。しかしながらビットMB7 は金属ワ
イヤの無条件ビットであるので、マスク文脈レジスタ66
でマスク文脈ビットを無効にする。換言すればこれは全
体的に無条件である。これは中断処理装置またはSIM
Dアレイのスカラ処理のような特別の場合に生じるよう
にマスク文脈を変更する移動を処理することを必要とす
る。
【0032】処理素子が初期化されるとき、マスク文脈
レジスタ66は真にセットされ、ビットバンク62の変形可
能なビットは論理的偽にクリアされる。さらにGRFビ
ットは論理的偽にセットされる。サブル−チンが呼出さ
れるとき、マスクレジスタビットはマスクスタックに押
込まれる。同じクロックサイクル中に、マスク文脈ビッ
トはサブル−チン中の呼出しの文脈を制御する条件的マ
スクビット(またはその補足数)のコピ−で負荷され
る。さらに、ビットバンク62の変形可能なビットとGR
Fビットは論理的偽にクリアされる。このスタックは呼
出し装置から前の状態を捕らえてマスク文脈ビットは呼
出されたサブル−チンのマスク文脈を設定する。過程が
サブル−チンから帰還するとき呼出し過程の文脈はスタ
ックフレ−ムから回復される。
レジスタ66は真にセットされ、ビットバンク62の変形可
能なビットは論理的偽にクリアされる。さらにGRFビ
ットは論理的偽にセットされる。サブル−チンが呼出さ
れるとき、マスクレジスタビットはマスクスタックに押
込まれる。同じクロックサイクル中に、マスク文脈ビッ
トはサブル−チン中の呼出しの文脈を制御する条件的マ
スクビット(またはその補足数)のコピ−で負荷され
る。さらに、ビットバンク62の変形可能なビットとGR
Fビットは論理的偽にクリアされる。このスタックは呼
出し装置から前の状態を捕らえてマスク文脈ビットは呼
出されたサブル−チンのマスク文脈を設定する。過程が
サブル−チンから帰還するとき呼出し過程の文脈はスタ
ックフレ−ムから回復される。
【0033】この過程の特定の命令シ−ケンスの例が以
下与えられている。後続する機械コ−ドは単一の機械サ
イクル中に生じた全ての機械動作を包含するため
“#”、“;”疑似opsを使用する。“/*,*/”
の対は顕著な説明を含む。“(MBi)”表記は動作を
マスクする特定のビットバンクレジスタを示す。
下与えられている。後続する機械コ−ドは単一の機械サ
イクル中に生じた全ての機械動作を包含するため
“#”、“;”疑似opsを使用する。“/*,*/”
の対は顕著な説明を含む。“(MBi)”表記は動作を
マスクする特定のビットバンクレジスタを示す。
【0034】 simd 浮遊X,Y; (X>0.0 )ならば{ Y=foo(X); } 0) /*R1:=0.0 ,RO:=X,R1=Y,R2:=paraml*/ 1) FLT MB3,R1,R0 2) MOVE R2,R0; 3) CALL foo,MB3; 4) NOP; /*または遅延1スロットで便利な命令*/ 5) MOVE(MB3) R1,R2; 6) … 7) foo: 8) … /*fooの本体*/ 9) RET; 10)NOP; 11)… ライン1で条件的表示(X>0.0 )を評価し、その結果
をビットバンクレジスタMB3 に置く。この評価の実行
はビットバンクレジスタMB0 によりマスクされ、常に
真である。FLT(それより少ない浮遊小数点)比較命
令は2つのサイクルの潜在を有し、それ故完了するのを
待ちながらXの値をパラメ−タ1,R2,(ライン2)
のスタックフレ−ムの位置に動かす。ライン3ではサブ
ル−チン呼出しをfoo()にする。サブル−チン呼出
しは以下のような幾つかの動作を含む。
をビットバンクレジスタMB3 に置く。この評価の実行
はビットバンクレジスタMB0 によりマスクされ、常に
真である。FLT(それより少ない浮遊小数点)比較命
令は2つのサイクルの潜在を有し、それ故完了するのを
待ちながらXの値をパラメ−タ1,R2,(ライン2)
のスタックフレ−ムの位置に動かす。ライン3ではサブ
ル−チン呼出しをfoo()にする。サブル−チン呼出
しは以下のような幾つかの動作を含む。
【0035】a)R[SP−−]−MR(ここでMR=
GRF|MC|MB) b)(シ−ケンス“呼出し”op);サイクルi c)MC−MB3 d)MB1…MB6−偽 この処理過程はマスクレジスタを節約し、シ−ケンス装
置によりプログラム流を変更し、新しいマスクおよびフ
レ−ム文脈を設定する。“CALL”命令のマスクの意
味は通常の場合と異なっている点を注意すべきである。
呼出しが無条件であるならば、特定のマスクレジスタビ
ットは呼出されたもののマスク文脈を設定する。
GRF|MC|MB) b)(シ−ケンス“呼出し”op);サイクルi c)MC−MB3 d)MB1…MB6−偽 この処理過程はマスクレジスタを節約し、シ−ケンス装
置によりプログラム流を変更し、新しいマスクおよびフ
レ−ム文脈を設定する。“CALL”命令のマスクの意
味は通常の場合と異なっている点を注意すべきである。
呼出しが無条件であるならば、特定のマスクレジスタビ
ットは呼出されたもののマスク文脈を設定する。
【0036】スカラマスクビットバンクを再負荷する不
必要なオバ−ヘッドを阻止するために、特別な目的のマ
スクビットMB6 が与えられる。これは他のマスクビッ
トと丁度同じように処理される。しかしながらこれはス
カラマスク文脈(SMC)ビットと“アンド”処理さ
れ、これはスカラ処理を助長する北/西の大部分のPE
を除いてあらゆるところでゼロである。SCMビットは
マスクレジスタのMCビットにより節約される。
必要なオバ−ヘッドを阻止するために、特別な目的のマ
スクビットMB6 が与えられる。これは他のマスクビッ
トと丁度同じように処理される。しかしながらこれはス
カラマスク文脈(SMC)ビットと“アンド”処理さ
れ、これはスカラ処理を助長する北/西の大部分のPE
を除いてあらゆるところでゼロである。SCMビットは
マスクレジスタのMCビットにより節約される。
【0037】ライン9の帰還命令はマスクと文脈を回復
する。
する。
【0038】a)MR_R[−−SP] b)(シ−ケンス装置“帰還”op) 機能呼出しを横切るマスク構造を考慮することに加えて
別の条件内の入れ子の条件、即ち別の条件内の1つの条
件等の概念を支持しなければならない。通常SIMD機
械では条件の入れ子の深さは典型的に1または2の条件
的深さであり非常に小さい傾向がある。これは深い入れ
子がSIMD条件的コ−ドを実行するSIMD機械にお
ける非常に非効率な実行を生じるためである。しかしな
がらある状態ではより深い入れ子を処理する必要があ
る。さらにトレ−ススケジュ−ルは複数の有効な条件を
増加することができる。真および無条件のビット(MB
0 ,MB7 )の必要性を伴って少なくともこれらの2つ
の要素の組合わせのために、8つのマスクビットの選択
はその中の5つが一般的目的ビット、1つがスカラ処理
用、2つが金属ワイヤビットに決定される。本発明の好
ましい実施例によると、機能ビットバンクとI/0ビッ
トバンクとの両者のビットバンクの最少の所望なビット
は4つの一般的目的ビット、1つの“真”のビット、1
つの“無条件”ビット、1つの“スカラ”ビットであ
り、総合的に7つのビットである。条件的入れ子が複数
のマスクビットを超過する場合には、ビットバンクを移
動命令により一般的目的のレジスタに送ることができる
ので性能の適切な劣化が存在する。
別の条件内の入れ子の条件、即ち別の条件内の1つの条
件等の概念を支持しなければならない。通常SIMD機
械では条件の入れ子の深さは典型的に1または2の条件
的深さであり非常に小さい傾向がある。これは深い入れ
子がSIMD条件的コ−ドを実行するSIMD機械にお
ける非常に非効率な実行を生じるためである。しかしな
がらある状態ではより深い入れ子を処理する必要があ
る。さらにトレ−ススケジュ−ルは複数の有効な条件を
増加することができる。真および無条件のビット(MB
0 ,MB7 )の必要性を伴って少なくともこれらの2つ
の要素の組合わせのために、8つのマスクビットの選択
はその中の5つが一般的目的ビット、1つがスカラ処理
用、2つが金属ワイヤビットに決定される。本発明の好
ましい実施例によると、機能ビットバンクとI/0ビッ
トバンクとの両者のビットバンクの最少の所望なビット
は4つの一般的目的ビット、1つの“真”のビット、1
つの“無条件”ビット、1つの“スカラ”ビットであ
り、総合的に7つのビットである。条件的入れ子が複数
のマスクビットを超過する場合には、ビットバンクを移
動命令により一般的目的のレジスタに送ることができる
ので性能の適切な劣化が存在する。
【0039】この説明を考慮して例えば後述の入れ子の
ソ−スコ−ドを考察すると、 後述のSCAP構造コ−ドを考慮する。この例では各M
OVEは1クロックサイクルを必要とし、それぞれの比
較は2クロックサイクルを必要とし、各浮遊小数点動作
はレジスタからレジスタまでに4のクロックサイクルを
必要とし、それぞれのI/0動作は1サイクルを取る。
ソ−スコ−ドを考察すると、 後述のSCAP構造コ−ドを考慮する。この例では各M
OVEは1クロックサイクルを必要とし、それぞれの比
較は2クロックサイクルを必要とし、各浮遊小数点動作
はレジスタからレジスタまでに4のクロックサイクルを
必要とし、それぞれのI/0動作は1サイクルを取る。
【0040】 1)命令 MOVE R5,9.0 ; 2)命令 FLT MB1 ,R4,R5;/*(X<9.0 )*/ 3)命令 FADD(MB1) R0,R1,R2 /*A=B+C*/ 4)命令 GT(MB1) MB2 ,R1,R4 /*(A>X)&&(X< 9.0 */ # FMULT R6,R0,R0; E=A*A 5)命令 FLE(MB1) MB3 ,R1,R4 /*(A<=X)&& (X<9.0 )*/ FMULT(MB1) R7,R5,R0; /*F=9*A*/ 6)命令 FMULT(MB2) R2,R1,R3 /*C=B*D*/ # FADD(MB3) R2,R0,R4 /*C=A+X*/ 入れ子条件(A>X)は(X<9.0 )と(A>X)の論
理アンドである。これを達成する1つの方法はライン4
で示されている。コ−ドのこれらのラインではMBビッ
トは最初に偽にセットされる。(A>X)の比較は比較
(X<9.0 )で条件付けられる。従ってMB2 は、MB
1 が真でありA>Xでのみ真である。内部比較の結果に
対して1クロックサイクルが完了するのを待機した後、
“それから”と“それでなければ”を評価することがで
きる。最後の2つの動作は計算Aにのみ依存することに
注意すべきである。従って内部条件によってその評価を
引出す。最後に“(MB0 )”によりマスクすることは
無条件動作であることに留意すべきである。構造言語中
で便宜上条件的特定のないことはMB0 の欠点を適切な
ものとして示す。
理アンドである。これを達成する1つの方法はライン4
で示されている。コ−ドのこれらのラインではMBビッ
トは最初に偽にセットされる。(A>X)の比較は比較
(X<9.0 )で条件付けられる。従ってMB2 は、MB
1 が真でありA>Xでのみ真である。内部比較の結果に
対して1クロックサイクルが完了するのを待機した後、
“それから”と“それでなければ”を評価することがで
きる。最後の2つの動作は計算Aにのみ依存することに
注意すべきである。従って内部条件によってその評価を
引出す。最後に“(MB0 )”によりマスクすることは
無条件動作であることに留意すべきである。構造言語中
で便宜上条件的特定のないことはMB0 の欠点を適切な
ものとして示す。
【0041】前述したようにSIMDコンピュ−タは条
件がベクトル/アレイ表示を含む条件動作を処理するた
めにプロセッサマスクを使用する。単一プロセッサは
“それから”文節或いは“または”文節のみを実行、一
方SIMDプロセッサは両者の文節を実行するが文節の
条件が真でない処理素子をディスエーブルにする。これ
は素子Xi <Yi で他の素子はXj≧Yjであるためで
ある。問題は多くの条件においてただ1つの文節だけが
条件が真の素子を含むことである。条件的説明の入れ子
の深さが増加すると真の素子を有しない文節の可能性が
増加する。このことはほとんどの条件が境界的条件のよ
うな例外的な状況を処理するために生じる。残念ながら
SIMD機械で真の素子のない文節をバイパスするため
減少段階と後続する試験を行う分離した試験をプログラ
マが明白にコ−ド化しなければ、全ての文節は典型的に
実行される。このため文節が処理素子のゼロでない活性
セットを有するか否かを試験するため簡単で絶対的なハ
−ドウェア機構を導入する。これはマスク機構の一部分
であり、ゼロ文節を効率的にスキップすることを可能に
し、プロセッサの性能を著しく改良する。これは全体的
な応答フラッグ(GRF)と呼ばれる各処理素子からの
全体的なワイヤ−オア応答ラインを使用することにより
達成される。全体的な応答フラッグは全体的な応答フラ
ッグレジスタ68に蓄積される。比較または明白な移動の
結果が全体的な応答フラッグに書込まれることが可能な
機構が設けられる。例えば前述のコ−ドフレ−ムワ−ク
から再度書込まれた後述のコ−ドを考察する。
件がベクトル/アレイ表示を含む条件動作を処理するた
めにプロセッサマスクを使用する。単一プロセッサは
“それから”文節或いは“または”文節のみを実行、一
方SIMDプロセッサは両者の文節を実行するが文節の
条件が真でない処理素子をディスエーブルにする。これ
は素子Xi <Yi で他の素子はXj≧Yjであるためで
ある。問題は多くの条件においてただ1つの文節だけが
条件が真の素子を含むことである。条件的説明の入れ子
の深さが増加すると真の素子を有しない文節の可能性が
増加する。このことはほとんどの条件が境界的条件のよ
うな例外的な状況を処理するために生じる。残念ながら
SIMD機械で真の素子のない文節をバイパスするため
減少段階と後続する試験を行う分離した試験をプログラ
マが明白にコ−ド化しなければ、全ての文節は典型的に
実行される。このため文節が処理素子のゼロでない活性
セットを有するか否かを試験するため簡単で絶対的なハ
−ドウェア機構を導入する。これはマスク機構の一部分
であり、ゼロ文節を効率的にスキップすることを可能に
し、プロセッサの性能を著しく改良する。これは全体的
な応答フラッグ(GRF)と呼ばれる各処理素子からの
全体的なワイヤ−オア応答ラインを使用することにより
達成される。全体的な応答フラッグは全体的な応答フラ
ッグレジスタ68に蓄積される。比較または明白な移動の
結果が全体的な応答フラッグに書込まれることが可能な
機構が設けられる。例えば前述のコ−ドフレ−ムワ−ク
から再度書込まれた後述のコ−ドを考察する。
【0042】 1) 命令 ILT(MB0) GRF ,MB1 ,R1,R2;/*(X<Y)*/ 2) 命令 Ορ(MB1 ) /*“それから”文節の本体*/ 3a)命令 Ορ(MB1 ); b)# MOVE GRF ,−MB1 ; 4) 命令 Ορ(MB1 ); 5) 命令 Ορ(MB1 ); 6a)命令 IF(-GRF) L1 /*無効の活性セットならば“それか ら”をスキップする*/ b)命令 Ορ(MB1 ); 7) 命令 Ορ(MB1 ); … 20) 命令 Ορ(MB1 ); 21a)L1; 命令 IF(-GRF) L2 /*無効の活性セットならば“または ” をスキップする*/ b)# Ορ(MB1 ); 22) 命令 Ορ(MB1 ); /*遅延スロット*/ 23) 命令 Ορ(MB1 ); /*“または”文節の本体*/ 24) 命令 Ορ(MB1 ); … 30) 命令 Ορ(MB1 ); 31) L2; … “IF”命令はシ−ケンス装置の条件的分岐である。
“−”は論理補数を示している。全体的な応答フラッグ
はマスク文脈ビットと明白にビット的にアンド処理され
る。これはアレイが全体的な制御装置により読み取られ
る可能な入力として与えられるワイヤ−オアへの各処理
素子により貢献される最終値を生成する。“それから”
文節の比較の結果と“または”文節の比較の補数との両
者を全体的にオア処理することが必要であることに注意
すべきである。これは全体的なオア(−GRF)が−全
体的OR(GRF)に等しくないためである。さらにG
RFビットはALU動作または動作命令のタ−ゲットで
もある。これは制御装置により読取られる値を設定する
ために絶対的に書込まれる。これは一般的SIMDフィ
−ドバック機構を制御装置に提供する。
“−”は論理補数を示している。全体的な応答フラッグ
はマスク文脈ビットと明白にビット的にアンド処理され
る。これはアレイが全体的な制御装置により読み取られ
る可能な入力として与えられるワイヤ−オアへの各処理
素子により貢献される最終値を生成する。“それから”
文節の比較の結果と“または”文節の比較の補数との両
者を全体的にオア処理することが必要であることに注意
すべきである。これは全体的なオア(−GRF)が−全
体的OR(GRF)に等しくないためである。さらにG
RFビットはALU動作または動作命令のタ−ゲットで
もある。これは制御装置により読取られる値を設定する
ために絶対的に書込まれる。これは一般的SIMDフィ
−ドバック機構を制御装置に提供する。
【0043】前述の説明は単なる本発明の例示的な実施
例を説明したものである。このような説明、添付図面、
特許請求の範囲から請求の範囲に限定されている本発明
の技術的範囲を逸脱することなく種々の変形、応用が行
われることを当業者は理解するであろう。
例を説明したものである。このような説明、添付図面、
特許請求の範囲から請求の範囲に限定されている本発明
の技術的範囲を逸脱することなく種々の変形、応用が行
われることを当業者は理解するであろう。
【図1】活性および不活性な処理素子を典型化した処理
素子のアレイブロック形態で示した図。
素子のアレイブロック形態で示した図。
【図2】SIMDマイクロコ−ド命令のフォーマット。
【図3】本発明の1実施例による処理素子のアレイの1
つの処理素子の基本的な部品を示したブロック図。
つの処理素子の基本的な部品を示したブロック図。
【図4】図3の処理素子のアレイの処理素子のマスク部
分のブロック図。
分のブロック図。
【図5】本発明の1実施例によるSIMDコンピュ−タ
の処理素子の特定のコンピュ−タ構造の概略図。
の処理素子の特定のコンピュ−タ構造の概略図。
【図6】本発明の1実施例によるSIMDコンピュ−タ
の処理素子の特定のコンピュ−タ構造の概略図。
の処理素子の特定のコンピュ−タ構造の概略図。
フロントページの続き (72)発明者 デイビッド・エー・シュワルツ アメリカ合衆国、カリフォルニア州 93021、ムーアパーク、チャールズ・スト リート 609
Claims (22)
- 【請求項1】 相互接続されている多重処理素子を含む
単一の命令多重デ−タ装置において、前記各処理素子
が、 デ−タを蓄積するメモリ手段と、 計算および/または入力/出力動作を行うための機能手
段と、 前記機能手段が多重動作を通常同時に行わせる命令を蓄
積するための多重動作命令レジスタ手段と、 少なくとも1つのマスクビットが機能手段と関連してい
る複数のマスクビットを蓄積するためのマスクレジスタ
手段と、 前記メモリ手段中のデ−タの条件の関数としてマスクビ
ットを設定する手段とを具備し、前記マスクレジスタの
文脈はある動作が行われることを選択的に阻止すること
を特徴とする単一命令多重デ−タ装置。 - 【請求項2】 マスクレジスタ手段がマスク文脈ビット
を含み、このマスク文脈ビットは機能手段と関連する少
なくとも1つのビットと選択的にビット的に論理的オア
処理される選択的なビットである請求項1記載の装置。 - 【請求項3】 マスクレジスタ手段が複数の機能ユニッ
トビットを含む請求項1記載の装置。 - 【請求項4】 マスクレジスタ手段の1ビットがが金属
ワイヤによる真のビットである請求項3記載の装置。 - 【請求項5】 マスクレジスタ手段の1つのビットがマ
スク文脈ビットを無効にする金属ワイヤによる無条件ビ
ットである請求項2記載の装置。 - 【請求項6】 マスクレジスタ手段が全体的な応答フラ
ッグビットを蓄積するための全体的な応答フラッグレジ
スタを含み、前記全体的な応答フラッグビットは処理素
子が特定の命令シ−ケンスの条件的必要性を満たすかど
うかを決定するため他の処理素子の各全体的な応答フラ
ッグビットと論理的にオア処理される請求項1記載の装
置。 - 【請求項7】 マスクレジスタ手段が個々のマスクビッ
トの値を特定の命令シ−ケンスの開始時にスタック機構
に出力する手段と、スタック機構からの命令シ−ケンス
の終了でマスクビットを再び負荷するための手段とを含
む請求項1記載の装置。 - 【請求項8】 マスクレジスタ手段が3つのビットアド
レス位置により選択的にアドレス可能な8つのビットを
含む請求項3記載の装置。 - 【請求項9】 北/西の大部分の処理素子がスカラ処理
を助長する請求項1記載の装置。 - 【請求項10】 マスクレジスタ手段がスカラマスク文
脈ビットを含み、前記スカラマスク文脈ビットは北ー西
の大部分の処理素子でスカラ処理を助長するために北ー
西の大部分の素子を除いて各処理素子でゼロである請求
項9記載の装置。 - 【請求項11】 複数の処理素子を含む単一命令多重デ
−タ流プロセッサにおけるデ−タ処理方法において、 少なくとも1つの命令が複数の異なった機械動作を含む
各処理素子への命令のセットを管理し、 各処理素子へのデ−タの予め定められたセットを管理
し、 命令のセット内の特定の条件的説明の要求を満足しない
単一命令内の各機械動作をマスクし、このマスク段階は
マスクビットレジスタのセットから特定のマスクビット
を選択する段階と、マスク文脈ビットと選択されたマス
クビットを論理的にアンド処理する段階とを具備し、前
記マスク文脈ビットは特定の条件的説明にしたがって設
定され、アンド処理段階の結果に依存して処理素子をエ
ネ−ブルまたはディスエーブルにする段階を有すること
を特徴とするデ−タ処理方法。 - 【請求項12】 マスクビットレジスタからマスクビッ
トを選択する段階がマスクビットを金属ワイヤによる真
のビットを含むマスクビットレジスタから選択される段
階を含む請求項11記載の方法。 - 【請求項13】 マスクビットレジスタからマスクビッ
トを選択する段階がマスク文脈ビットを無効にする金属
ワイヤによる無条件ビットを含む請求項11記載の方
法。 - 【請求項14】 処理素子が条件命令の条件的要求を満
たすか否かを決定するために他の処理素子からの全体的
な応答フラッグレジスタ中のビットにより全体的な応答
フラッグレジスタのビットを論理的にオア処理する段階
を具備する請求項11記載の方法。 - 【請求項15】 マスクレジスタからマスクビットを選
択する段階が8ビットの能ビットバンクからマスクビッ
トを選択することを含む請求項11記載の方法。 - 【請求項16】 スカラマスク文脈ビットにより特別目
的のマスク文脈ビットを論理的アンド処理する段階を具
備し、スカラマスク文脈ビットはスカラ処理を助長する
ために1つのPEにおいてのみ真である請求項11記載
の方法。 - 【請求項17】 多重相互接続処理素子を含む単一命令
多重デ−タ装置において、前記各処理素子が、 デ−タ蓄積用のメモリ手段と、 計算動作と入力/出力動作を行う機能手段と、 前記機能手段に通常同時に各動作をさせるために命令を
蓄積する多重動作命令レジスタ手段と、 少なくとも1つのマスクビットが機能手段と関連し、さ
らにマスク文脈ビットを含み、このマスク文脈ビットが
少なくとも1つの機能マスクビットと選択的にビット的
に論理的アンド処理され、複数のマスクビットを蓄積す
るマスクレジスタ手段と、 前記メモリ手段のデ−タの条件の関数としてマスクビッ
トをセットする手段とを具備し、前記マスクレジスタ手
段の文脈は選択的にある動作が動作されることを阻止す
ることを特徴とする単一命令多重デ−タ装置。 - 【請求項18】 機能手段と関連する両者のマスクビッ
トの1ビットが金属ワイヤによる真のビットである請求
項17記載の装置。 - 【請求項19】 マスクレジスタ手段の1ビットがマス
ク文脈ビットを無効にする金属ワイヤによる無条件ビッ
トである請求項17記載の装置。 - 【請求項20】 マスクレジスタ手段が全体的な応答フ
ラッグビットを蓄積する全体的な応答フラッグレジスタ
を含み、前記全体的な応答フラッグビットは処理素子が
特定の命令シ−ケンスの条件的要求を満たすか否かを決
定するために各処理素子の別の全体的応答フラッグビッ
トと論理的オア処理される請求項17記載の装置。 - 【請求項21】 マスクレジスタ手段が各マスクビット
の値を特定の命令シ−ケンスの開始時にスタック機構に
出力する手段と、スタック機構から命令シ−ケンスの終
了でマスクビットを再度負荷する手段を具備している請
求項17記載の装置。 - 【請求項22】 マスクレジスタ手段がスカラマスク文
脈ビットを蓄積するスカラマスク文脈ビットレジスタを
含み、スカラマスク文脈ビットはスカラ処理を助長する
ため北西の大部分の処理素子を除いてあらゆるところで
ゼロである請求項17記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US98930292A | 1992-12-11 | 1992-12-11 | |
US989302 | 1992-12-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06236448A true JPH06236448A (ja) | 1994-08-23 |
Family
ID=25534986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5312308A Pending JPH06236448A (ja) | 1992-12-11 | 1993-12-13 | アレイプロセッサ用の多重マスク |
Country Status (4)
Country | Link |
---|---|
US (1) | US5555428A (ja) |
JP (1) | JPH06236448A (ja) |
DE (1) | DE4342250A1 (ja) |
GB (1) | GB2273377A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004542A (ja) * | 2005-06-24 | 2007-01-11 | Renesas Technology Corp | 半導体信号処理装置 |
JP2010257200A (ja) * | 2009-04-24 | 2010-11-11 | Honda Motor Co Ltd | 並列計算装置 |
JP2010271799A (ja) * | 2009-05-19 | 2010-12-02 | Honda Motor Co Ltd | 並列計算装置 |
JP2015531124A (ja) * | 2012-08-08 | 2015-10-29 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マルチスレッド処理システムにおけるレジュームチェック動作を選択的にアクティブ化すること |
JP2015531945A (ja) * | 2012-09-10 | 2015-11-05 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マルチスレッド処理システムにおいてサブルーチンを実行すること |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19533961A1 (de) * | 1995-09-13 | 1997-03-20 | Siemens Ag | Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US6088783A (en) * | 1996-02-16 | 2000-07-11 | Morton; Steven G | DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
US6317819B1 (en) * | 1996-01-11 | 2001-11-13 | Steven G. Morton | Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction |
US5727229A (en) * | 1996-02-05 | 1998-03-10 | Motorola, Inc. | Method and apparatus for moving data in a parallel processor |
US5754458A (en) * | 1996-05-30 | 1998-05-19 | Hewlett-Packard Company | Trailing bit anticipator |
JP3442225B2 (ja) * | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
WO1998006042A1 (en) * | 1996-08-07 | 1998-02-12 | Sun Microsystems, Inc. | Wide instruction unpack method and apparatus |
US6003107A (en) * | 1996-09-10 | 1999-12-14 | Hewlett-Packard Company | Circuitry for providing external access to signals that are internal to an integrated circuit chip package |
US5867644A (en) * | 1996-09-10 | 1999-02-02 | Hewlett Packard Company | System and method for on-chip debug support and performance monitoring in a microprocessor |
US5887003A (en) * | 1996-09-10 | 1999-03-23 | Hewlett-Packard Company | Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results |
US5881224A (en) * | 1996-09-10 | 1999-03-09 | Hewlett-Packard Company | Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle |
US5880671A (en) * | 1996-10-31 | 1999-03-09 | Hewlett-Packard Company | Flexible circuitry and method for detecting signal patterns on a bus |
US5956476A (en) * | 1996-10-31 | 1999-09-21 | Hewlett Packard Company | Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns |
US5956477A (en) * | 1996-11-25 | 1999-09-21 | Hewlett-Packard Company | Method for processing information in a microprocessor to facilitate debug and performance monitoring |
US6009539A (en) * | 1996-11-27 | 1999-12-28 | Hewlett-Packard Company | Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system |
US5881217A (en) * | 1996-11-27 | 1999-03-09 | Hewlett-Packard Company | Input comparison circuitry and method for a programmable state machine |
US6047366A (en) * | 1996-12-31 | 2000-04-04 | Texas Instruments Incorporated | Single-instruction multiple-data processor with input and output registers having a sequential location skip function |
US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
US6879341B1 (en) | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
US6948794B2 (en) | 1997-07-15 | 2005-09-27 | Silverbrook Reserach Pty Ltd | Printhead re-capping assembly for a print and demand digital camera system |
US6985207B2 (en) | 1997-07-15 | 2006-01-10 | Silverbrook Research Pty Ltd | Photographic prints having magnetically recordable media |
AUPO850597A0 (en) | 1997-08-11 | 1997-09-04 | Silverbrook Research Pty Ltd | Image processing method and apparatus (art01a) |
US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
AUPO802797A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART54) |
US6075935A (en) * | 1997-12-01 | 2000-06-13 | Improv Systems, Inc. | Method of generating application specific integrated circuits using a programmable hardware architecture |
US6101592A (en) * | 1998-12-18 | 2000-08-08 | Billions Of Operations Per Second, Inc. | Methods and apparatus for scalable instruction set architecture with dynamic compact instructions |
US6366999B1 (en) * | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US6052769A (en) * | 1998-03-31 | 2000-04-18 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
US6308250B1 (en) * | 1998-06-23 | 2001-10-23 | Silicon Graphics, Inc. | Method and apparatus for processing a set of data values with plural processing units mask bits generated by other processing units |
AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
US6374370B1 (en) | 1998-10-30 | 2002-04-16 | Hewlett-Packard Company | Method and system for flexible control of BIST registers based upon on-chip events |
US6523106B1 (en) * | 1998-12-21 | 2003-02-18 | Intel Corporation | Method and apparatus for efficient pipelining |
US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
US8171263B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions |
US8169440B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Parallel data processing apparatus |
US8762691B2 (en) | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
GB2348981A (en) * | 1999-04-09 | 2000-10-18 | Pixelfusion Ltd | Parallel data processing system with SIMD array |
EP1181648A1 (en) | 1999-04-09 | 2002-02-27 | Clearspeed Technology Limited | Parallel data processing apparatus |
US7966475B2 (en) | 1999-04-09 | 2011-06-21 | Rambus Inc. | Parallel data processing apparatus |
US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
US8174530B2 (en) | 1999-04-09 | 2012-05-08 | Rambus Inc. | Parallel date processing apparatus |
US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
GB2352536A (en) | 1999-07-21 | 2001-01-31 | Element 14 Ltd | Conditional instruction execution |
GB2352308B (en) * | 1999-07-21 | 2004-06-30 | Element 14 Ltd | Accessing a test condition |
US7191310B2 (en) * | 2000-01-19 | 2007-03-13 | Ricoh Company, Ltd. | Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers |
US6728862B1 (en) | 2000-05-22 | 2004-04-27 | Gazelle Technology Corporation | Processor array and parallel data processing methods |
US6732253B1 (en) * | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US7017032B2 (en) * | 2001-06-11 | 2006-03-21 | Broadcom Corporation | Setting execution conditions |
US6986025B2 (en) * | 2001-06-11 | 2006-01-10 | Broadcom Corporation | Conditional execution per lane |
US7127593B2 (en) * | 2001-06-11 | 2006-10-24 | Broadcom Corporation | Conditional execution with multiple destination stores |
US7861071B2 (en) * | 2001-06-11 | 2010-12-28 | Broadcom Corporation | Conditional branch instruction capable of testing a plurality of indicators in a predicate register |
US20100274988A1 (en) * | 2002-02-04 | 2010-10-28 | Mimar Tibet | Flexible vector modes of operation for SIMD processor |
US6970985B2 (en) | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
US7793084B1 (en) | 2002-07-22 | 2010-09-07 | Mimar Tibet | Efficient handling of vector high-level language conditional constructs in a SIMD processor |
EP1387254B1 (en) * | 2002-07-31 | 2012-12-12 | Texas Instruments Incorporated | Skip instruction carrying out a test with immediate value |
US20040252547A1 (en) * | 2003-06-06 | 2004-12-16 | Chengpu Wang | Concurrent Processing Memory |
US7698539B1 (en) * | 2003-07-16 | 2010-04-13 | Banning John P | System and method of instruction modification |
US7606997B1 (en) | 2003-07-18 | 2009-10-20 | Guillermo Rozas | Method and system for using one or more address bits and an instruction to increase an instruction set |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
US7594069B2 (en) * | 2004-02-26 | 2009-09-22 | Ati Technologies, Inc. | Method and apparatus for single instruction multiple data caching |
US7302627B1 (en) * | 2004-04-05 | 2007-11-27 | Mimar Tibet | Apparatus for efficient LFSR calculation in a SIMD processor |
US7873812B1 (en) | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US7383427B2 (en) * | 2004-04-22 | 2008-06-03 | Sony Computer Entertainment Inc. | Multi-scalar extension for SIMD instruction set processors |
US20050289329A1 (en) * | 2004-06-29 | 2005-12-29 | Dwyer Michael K | Conditional instruction for a single instruction, multiple data execution engine |
US7644255B2 (en) * | 2005-01-13 | 2010-01-05 | Sony Computer Entertainment Inc. | Method and apparatus for enable/disable control of SIMD processor slices |
US7543136B1 (en) * | 2005-07-13 | 2009-06-02 | Nvidia Corporation | System and method for managing divergent threads using synchronization tokens and program instructions that include set-synchronization bits |
US7353369B1 (en) * | 2005-07-13 | 2008-04-01 | Nvidia Corporation | System and method for managing divergent threads in a SIMD architecture |
US7921148B2 (en) * | 2006-08-09 | 2011-04-05 | Infineon Technologies Ag | Standard cell for arithmetic logic unit and chip card controller |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US7617384B1 (en) * | 2006-11-06 | 2009-11-10 | Nvidia Corporation | Structured programming control flow using a disable mask in a SIMD architecture |
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
US8312254B2 (en) * | 2008-03-24 | 2012-11-13 | Nvidia Corporation | Indirect function call instructions in a synchronous parallel thread processor |
US8332620B2 (en) * | 2008-07-25 | 2012-12-11 | Freescale Semiconductor, Inc. | System, method and computer program product for executing a high level programming language conditional statement |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8572355B2 (en) * | 2009-09-28 | 2013-10-29 | Nvidia Corporation | Support for non-local returns in parallel thread SIMD engine |
US9164770B2 (en) * | 2009-10-23 | 2015-10-20 | Mindspeed Technologies, Inc. | Automatic control of multiple arithmetic/logic SIMD units |
US20170365237A1 (en) * | 2010-06-17 | 2017-12-21 | Thincl, Inc. | Processing a Plurality of Threads of a Single Instruction Multiple Data Group |
US8726252B2 (en) * | 2011-01-28 | 2014-05-13 | International Business Machines Corporation | Management of conditional branches within a data parallel system |
US9176737B2 (en) * | 2011-02-07 | 2015-11-03 | Arm Limited | Controlling the execution of adjacent instructions that are dependent upon a same data condition |
US10534608B2 (en) | 2011-08-17 | 2020-01-14 | International Business Machines Corporation | Local computation logic embedded in a register file to accelerate programs |
US8832417B2 (en) | 2011-09-07 | 2014-09-09 | Qualcomm Incorporated | Program flow control for multiple divergent SIMD threads using a minimum resume counter |
SE1151231A1 (sv) * | 2011-12-20 | 2013-05-07 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
US9557993B2 (en) | 2012-10-23 | 2017-01-31 | Analog Devices Global | Processor architecture and method for simplifying programming single instruction, multiple data within a register |
US9424039B2 (en) * | 2014-07-09 | 2016-08-23 | Intel Corporation | Instruction for implementing vector loops of iterations having an iteration dependent condition |
US9952876B2 (en) | 2014-08-26 | 2018-04-24 | International Business Machines Corporation | Optimize control-flow convergence on SIMD engine using divergence depth |
US10175964B2 (en) | 2014-09-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Compiler caching for runtime routine redundancy tracking |
US20170220520A1 (en) * | 2016-01-29 | 2017-08-03 | Knuedge Incorporated | Determining an operation state within a computing system with multi-core processing devices |
US11429555B2 (en) * | 2019-02-26 | 2022-08-30 | Apple Inc. | Coprocessors with bypass optimization, variable grid architecture, and fused vector operations |
US11113061B2 (en) * | 2019-09-26 | 2021-09-07 | Advanced Micro Devices, Inc. | Register saving for function calling |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
US5045995A (en) * | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
US4907148A (en) * | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
GB2201015B (en) * | 1987-02-10 | 1990-10-10 | Univ Southampton | Parallel processor array and array element |
US5307506A (en) * | 1987-04-20 | 1994-04-26 | Digital Equipment Corporation | High bandwidth multiple computer bus apparatus |
-
1993
- 1993-12-08 GB GB9325170A patent/GB2273377A/en not_active Withdrawn
- 1993-12-10 DE DE4342250A patent/DE4342250A1/de not_active Ceased
- 1993-12-13 JP JP5312308A patent/JPH06236448A/ja active Pending
-
1995
- 1995-03-10 US US08/402,406 patent/US5555428A/en not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004542A (ja) * | 2005-06-24 | 2007-01-11 | Renesas Technology Corp | 半導体信号処理装置 |
JP2010257200A (ja) * | 2009-04-24 | 2010-11-11 | Honda Motor Co Ltd | 並列計算装置 |
JP2010271799A (ja) * | 2009-05-19 | 2010-12-02 | Honda Motor Co Ltd | 並列計算装置 |
JP2015531124A (ja) * | 2012-08-08 | 2015-10-29 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マルチスレッド処理システムにおけるレジュームチェック動作を選択的にアクティブ化すること |
JP2015531945A (ja) * | 2012-09-10 | 2015-11-05 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マルチスレッド処理システムにおいてサブルーチンを実行すること |
Also Published As
Publication number | Publication date |
---|---|
US5555428A (en) | 1996-09-10 |
GB2273377A (en) | 1994-06-15 |
GB9325170D0 (en) | 1994-02-09 |
DE4342250A1 (de) | 1994-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06236448A (ja) | アレイプロセッサ用の多重マスク | |
US5416912A (en) | System for handling exceptions occurring during parallel execution of microinstructions | |
US5471593A (en) | Computer processor with an efficient means of executing many instructions simultaneously | |
EP3513281B1 (en) | Vector multiply-add instruction | |
US4740893A (en) | Method for reducing the time for switching between programs | |
US8935515B2 (en) | Method and apparatus for vector execution on a scalar machine | |
JPH0766329B2 (ja) | 情報処理装置 | |
EP1190311A2 (en) | System and method for reducing write traffic in processors | |
CN111381939A (zh) | 多线程处理器中的寄存器文件 | |
Padegs et al. | The IBM System/370 vector architecture: Design considerations | |
JP3573506B2 (ja) | 述語、及びブール式を解くためのコンピュータ・システム、及び方法 | |
CN111381883A (zh) | 多线程处理器中的指令高速缓存 | |
US11481223B2 (en) | Reducing operations of sum-of-multiply-accumulate (SOMAC) instructions | |
EP0140299A2 (en) | Vector mask control system | |
US7415601B2 (en) | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
Dorojevets et al. | Multithreaded decoupled architecture | |
US20040210886A1 (en) | Optimized switch statement code employing predicates | |
US11416261B2 (en) | Group load register of a graph streaming processor | |
Rostampour et al. | The design of a symbiotic scalar-systolic array processor: SSSAP | |
EP1442362A1 (en) | An arrangement and a method in processor technology | |
Braham | Progress report on digital computers | |
CN115599742A (zh) | 用于阵列处理器的装置及相关方法 | |
Pilz et al. | Code optimization techniques of data-intensive tasks onto statically scheduled architectures: Optimal performance on the TigerSharc | |
Lin et al. | SAM: A Multithreaded Pipeline Architecture for Dataflow Computing |