JPH0719244B2 - アレイ・プロセツサ - Google Patents
アレイ・プロセツサInfo
- Publication number
- JPH0719244B2 JPH0719244B2 JP62002006A JP200687A JPH0719244B2 JP H0719244 B2 JPH0719244 B2 JP H0719244B2 JP 62002006 A JP62002006 A JP 62002006A JP 200687 A JP200687 A JP 200687A JP H0719244 B2 JPH0719244 B2 JP H0719244B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- processing
- spatial
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8023—Two dimensional arrays, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 以下の順序で本発明を説明する。
A.産業上の利用分野 B.従来技術 C.発明が解決しようとする問題点 D.問題点を解決するための手段 D−1.データ従属並列処理 D−2.空間従属並列処理 E.実施例 E−1.全体的構成(第1図) E−2.命令アダプタ(第2図) E−3.簡易化された適応性処理要素の構成(第3図) E−4.多重次元ネットワークのための構成(第4図) E−5.データ従属及び空間従属並列処理 E−6.汎用ネットワークのエミュレーション E−7.相補的動作 E−8.適応性スーパーコンピュータ E−9.より詳細な実施例 E−91.命令フォーマット E−92.本発明のための例示的な設計構造(第5図) F.発明の効果 A.産業上の利用分野 この発明は、各々が割りあてられた命令を実行する処理
要素のアレイを通過するデータ・ストリームを処理する
イメージ・プロセッサに関し、特に、処理識別(identi
fication)及び状況と、データ・ストリームの複合機能
として新しい命令を得るために、命令アダプタを用い
て、データ・ストリーム中の空間及びデータ値に応答し
て各処理要素の命令割当てを適合的に操作するためのア
ーキテクチャに関する。
要素のアレイを通過するデータ・ストリームを処理する
イメージ・プロセッサに関し、特に、処理識別(identi
fication)及び状況と、データ・ストリームの複合機能
として新しい命令を得るために、命令アダプタを用い
て、データ・ストリーム中の空間及びデータ値に応答し
て各処理要素の命令割当てを適合的に操作するためのア
ーキテクチャに関する。
B.従来技術 次に示すものが、従来技術として代表的である。
米国特許第3287702号は、慣用的な処理要素のアレイを
コンピュータ制御するようにしたアレイ・プロセッサを
示す。
コンピュータ制御するようにしたアレイ・プロセッサを
示す。
米国特許第3287703号も、同様なアレイ・プロセッサを
示す。
示す。
米国特許第3970993号は、各処理要素が、共通の制御ラ
イン上の動作を変更し得るフラグ・レジスタを有するよ
うなアレイ・プロセッサを開示する。
イン上の動作を変更し得るフラグ・レジスタを有するよ
うなアレイ・プロセッサを開示する。
米国特許第4187539号は、各データ・フローがマイクロ
命令の列を与えるシフト・レジスタを含み、共通のマイ
クロプログラム制御ユニットが、頻繁に変わらない命令
情報を与えることによって命令サイズを小さく保つこと
を援助するフラグ・レジスタを有するような、複数デー
タフローでパイプライン化されたプロセッサを開示す
る。
命令の列を与えるシフト・レジスタを含み、共通のマイ
クロプログラム制御ユニットが、頻繁に変わらない命令
情報を与えることによって命令サイズを小さく保つこと
を援助するフラグ・レジスタを有するような、複数デー
タフローでパイプライン化されたプロセッサを開示す
る。
米国特許第4287566号は、ベクトル・アドレスを計算す
るために使用されるサブアレイをもつアレイ・プロセッ
サを示す。
るために使用されるサブアレイをもつアレイ・プロセッ
サを示す。
米国特許第4344134号は、データフローがノード・トリ
ーを通過した時にそのノード・トリー中の各プロセッサ
がレディ(ready)信号を発生するような、区分可能な
アレイ・プロセッサを開示する。
ーを通過した時にそのノード・トリー中の各プロセッサ
がレディ(ready)信号を発生するような、区分可能な
アレイ・プロセッサを開示する。
米国特許第4380046号は、各処理要素が、Gレジスタと
して識別されるマスク・ビット・レジスタを装備してい
るアレイ・プロセッサを開示する。その構成は、処理要
素を無効化し以て現在の命令の実行とノー・オペレーシ
ョンとの間を区別するためである。すなわち、各処理要
素は、動作/不動作(OP/NOP)フラグを備えたGレジス
タを有している。
して識別されるマスク・ビット・レジスタを装備してい
るアレイ・プロセッサを開示する。その構成は、処理要
素を無効化し以て現在の命令の実行とノー・オペレーシ
ョンとの間を区別するためである。すなわち、各処理要
素は、動作/不動作(OP/NOP)フラグを備えたGレジス
タを有している。
米国特許第4467409号は、コマンドのためのユニットを
設定する“ソフト機能構造(softfunctional structure
s)”をもつ標準化されたユニットを利用する、直列プ
ロッセッサのためのフレキシブル・アーキテクチャを開
示する。
設定する“ソフト機能構造(softfunctional structure
s)”をもつ標準化されたユニットを利用する、直列プ
ロッセッサのためのフレキシブル・アーキテクチャを開
示する。
米国特許第4558411号は、例えば入出力モードから処理
モードに変更し、あるいは異なる言語で書かれたプログ
ラムを実行するべく、マイクロプログラミングの命令サ
ブセットの階層を与えるための多重レベル・プログラム
可能ユニットを開示する。
モードに変更し、あるいは異なる言語で書かれたプログ
ラムを実行するべく、マイクロプログラミングの命令サ
ブセットの階層を与えるための多重レベル・プログラム
可能ユニットを開示する。
欧州特許出願第84301600.7号は、各処理要素がフル・ア
ダー(full adder)と、N−S(南北)、E−W(東
西)及びC(キャリー)のための記憶装置を有し、以て
処理要素が算術及び論理機能の両方を実行し得るような
アレイ・プロセッサを開示する。
ダー(full adder)と、N−S(南北)、E−W(東
西)及びC(キャリー)のための記憶装置を有し、以て
処理要素が算術及び論理機能の両方を実行し得るような
アレイ・プロセッサを開示する。
ソ連邦発明者証第83−721416/30は、同一のマイクロ命
令を異なる命令のために使用できるようにし、以てメモ
リ全体の容量を低減をはかるようにした、命令メモリ中
の第1及び第2の制御命令レジスタを開示する。
令を異なる命令のために使用できるようにし、以てメモ
リ全体の容量を低減をはかるようにした、命令メモリ中
の第1及び第2の制御命令レジスタを開示する。
エレクトロニック・デザイン(Electronic Design)、1
984年10月31日、デービス(Davis)他の“収縮的アレイ
・チップが高速処理のペースに一致する(Systolic Arr
ay Chip Matches the Pace of High−Speed Processin
g)。”と題する論文は、代表的なアレイ・プロセッサ
を開示する。
984年10月31日、デービス(Davis)他の“収縮的アレイ
・チップが高速処理のペースに一致する(Systolic Arr
ay Chip Matches the Pace of High−Speed Processin
g)。”と題する論文は、代表的なアレイ・プロセッサ
を開示する。
NCR社の1984年刊の製品仕様NCR45CG72、NCR幾何的算術
パラレル・プロセッサ(Geometric Arithmetic Paralle
l Processor)pp.1−12は、代表的なアレイ・プロセッ
サの物理的特性を示す。
パラレル・プロセッサ(Geometric Arithmetic Paralle
l Processor)pp.1−12は、代表的なアレイ・プロセッ
サの物理的特性を示す。
NCR社のマイクロエレクトロニクス部門によって刊行さ
れたIEEE Southconの、クラウド(Cloud)他の“並列プ
ロセッサのための効率向上(Higher Efficiency for Pa
rallel Processors)”、pp.1−7には、NCRの幾何的算
術並列プロセッサ(GAPP)の動作の詳細が示されてい
る。
れたIEEE Southconの、クラウド(Cloud)他の“並列プ
ロセッサのための効率向上(Higher Efficiency for Pa
rallel Processors)”、pp.1−7には、NCRの幾何的算
術並列プロセッサ(GAPP)の動作の詳細が示されてい
る。
以上示したように、従来技術は、さまざまの方法で外部
的に制御可能な個別の処理要素をもち、その個別の処理
要素におけるフラグに従ってOP/NOPの可能性を有するさ
まざまアレイ・プロセッサを示すが、従来技術は、適応
的処理要素の内の得られた命令を通じて、アレイ・プロ
セッサを動的に最適化するために、個々の適応的処理要
素中で命令の適応を利用することを教示しない。
的に制御可能な個別の処理要素をもち、その個別の処理
要素におけるフラグに従ってOP/NOPの可能性を有するさ
まざまアレイ・プロセッサを示すが、従来技術は、適応
的処理要素の内の得られた命令を通じて、アレイ・プロ
セッサを動的に最適化するために、個々の適応的処理要
素中で命令の適応を利用することを教示しない。
ところで、現在のコンピュータ・システムは、命令スト
リームとデータ・ストリームに応じて次の4つのクラス
に分類される。すなわち、 SISD(単一命令ストリーム単一データ・ストリーム) SIMD(単一命令ストリーム多重データ・ストリーム) MISD(多重命令ストリーム単一データ・ストリーム) MIMD(多重命令ストリーム多重データ・ストリーム) SISDを除くと、これらのアーキテクチャは、並列処理シ
ステムである。しかし、これらのうちどれも処理要素の
空間的条件(空間的適応、例えばデータが、イメージの
境界にあるか、または処理要素がアレイの第1列にある
場合など)に適応する並列動作を実行することはできな
い。また、それらのうちどれも、データの性質(データ
適応、例えば、データの正負、フラグの真偽など)に適
応的な並列動作を実行することはできない。
リームとデータ・ストリームに応じて次の4つのクラス
に分類される。すなわち、 SISD(単一命令ストリーム単一データ・ストリーム) SIMD(単一命令ストリーム多重データ・ストリーム) MISD(多重命令ストリーム単一データ・ストリーム) MIMD(多重命令ストリーム多重データ・ストリーム) SISDを除くと、これらのアーキテクチャは、並列処理シ
ステムである。しかし、これらのうちどれも処理要素の
空間的条件(空間的適応、例えばデータが、イメージの
境界にあるか、または処理要素がアレイの第1列にある
場合など)に適応する並列動作を実行することはできな
い。また、それらのうちどれも、データの性質(データ
適応、例えば、データの正負、フラグの真偽など)に適
応的な並列動作を実行することはできない。
現在、スーパー・コンピュータが市販されており、例え
ばCDC社のCyberシリーズ・CRAYリサーチ社のCRAYシリー
ズ及び日本電気のAPシリーズがある。これらのマシンは
すべてMISDアーキテクチャに基づいており、ベクトルを
処理するべく命令パイプをセット・アップするために、
長いセットアップ時間を要する。すなわち、パイプ・セ
ットアップが頻繁であるかベクトルが短いと、オーバー
ヘッドが大きい。よって、そのような場合、結果的に性
能が低下する。
ばCDC社のCyberシリーズ・CRAYリサーチ社のCRAYシリー
ズ及び日本電気のAPシリーズがある。これらのマシンは
すべてMISDアーキテクチャに基づいており、ベクトルを
処理するべく命令パイプをセット・アップするために、
長いセットアップ時間を要する。すなわち、パイプ・セ
ットアップが頻繁であるかベクトルが短いと、オーバー
ヘッドが大きい。よって、そのような場合、結果的に性
能が低下する。
ループにおけるデータ従属が、これらのスーパー・コン
ピュータの性能を低下させる。これらのマシンは、デー
タ従属が解決される(例えば、状況が厳密に知られる)
までパイプのプリセットを禁止されるか、または高い確
率をもつ(例えば状況が真)1つの経路のパイプをセッ
トアップすることになる。その前者の場合実行が遅延
し、後者の場合、“推測”が正しくないならパイプのリ
セットが行なわれる(すなわち、パイプ・セットアップ
の頻度を増大する)。どちらの場合にも性能の低下につ
ながる。
ピュータの性能を低下させる。これらのマシンは、デー
タ従属が解決される(例えば、状況が厳密に知られる)
までパイプのプリセットを禁止されるか、または高い確
率をもつ(例えば状況が真)1つの経路のパイプをセッ
トアップすることになる。その前者の場合実行が遅延
し、後者の場合、“推測”が正しくないならパイプのリ
セットが行なわれる(すなわち、パイプ・セットアップ
の頻度を増大する)。どちらの場合にも性能の低下につ
ながる。
空間的またはデータの適応性がないことは次のような欠
点となる。
点となる。
(1) データ従属動作が順次的に処理され、それは並
列ハードウェアの浪費、すなわち性能の低下につなが
る。
列ハードウェアの浪費、すなわち性能の低下につなが
る。
(2) 空間的な意味をもつデータが例外として処理さ
れ、そのことは並列的機会を阻む。
れ、そのことは並列的機会を阻む。
(3) 並列コンピュータの相互接続が固定化され、そ
のことはアルゴリズムの可変性を限定する。
のことはアルゴリズムの可変性を限定する。
(4) データまたは空間的従属によってひき起こされ
る相補的動作(例えば、送信/受信対)が順次的に実行
され、そのことは実行時間が長いことを意味する。
る相補的動作(例えば、送信/受信対)が順次的に実行
され、そのことは実行時間が長いことを意味する。
(5) 従って、送信帯域が浪費される。
(6) 異なる空間的条件をもつ処理要素(PE)のため
にプログラムの異なるコピーを生成しなくてはならず、
そのことはソフトウェアの労力の増大につながる。
にプログラムの異なるコピーを生成しなくてはならず、
そのことはソフトウェアの労力の増大につながる。
本発明は、有限個数の処理要素の各々に条件的命令変更
手段を設けることによって、処理要素レベルにおける、
空間的及びデータ従属に対する命令の適合をはかるもの
であり、従来技術はこのような本発明を教示も示唆もし
ない。
手段を設けることによって、処理要素レベルにおける、
空間的及びデータ従属に対する命令の適合をはかるもの
であり、従来技術はこのような本発明を教示も示唆もし
ない。
C.発明が解決しようとする問題点 この発明の目的は、空間的あるいはデータ従属に関連す
る遅延を解消することによって、イメージ処理システム
の動作を高速化するイメージ・プロセッサ・アーキテク
チャを与えることにある。
る遅延を解消することによって、イメージ処理システム
の動作を高速化するイメージ・プロセッサ・アーキテク
チャを与えることにある。
D.問題点を解決するための手段 この発明の特徴は、有限個の処理要素の各々に、命令及
びデータ・ストリーム中のビット値の複合に応答する。
アドレス可能命令導出手段をもつ命令アダプタを設ける
ことである。
びデータ・ストリーム中のビット値の複合に応答する。
アドレス可能命令導出手段をもつ命令アダプタを設ける
ことである。
この発明の長所は、各項目が処理のため個々の処理要素
に到達するときに、異なる項目の空間的またはデータの
パラメータに適応された異なる命令を個々の処理要素が
得ることができるという点において、イメージ処理シス
テムがデータ・ストリームのパラメータに自己適応的で
あるということである。
に到達するときに、異なる項目の空間的またはデータの
パラメータに適応された異なる命令を個々の処理要素が
得ることができるという点において、イメージ処理シス
テムがデータ・ストリームのパラメータに自己適応的で
あるということである。
この発明の別の長所は、データ従属のために処理遅延時
間を必要としない、ということである。
間を必要としない、ということである。
本発明を手短かに理解することを容易にするためには、
データ従属並列処理及び空間従属並列処理が関与し、本
発明の手段による解決が最も望ましいような状況を記述
することが役に立つであろう。
データ従属並列処理及び空間従属並列処理が関与し、本
発明の手段による解決が最も望ましいような状況を記述
することが役に立つであろう。
適応的命令処理を用いると、上述の問題は次のようにし
て並列様式で処理することができる。すなわち、命令は
+または−(加算または減算)として定義され、一方、
“状況”を“承認ビット”として使用することにより、
得られた命令は、もし“状況”が真なら+(加算)と定
義され、もし偽なら−(減算)として定義される。する
と、データ従属を有するループは、次のように書き直さ
れる。
て並列様式で処理することができる。すなわち、命令は
+または−(加算または減算)として定義され、一方、
“状況”を“承認ビット”として使用することにより、
得られた命令は、もし“状況”が真なら+(加算)と定
義され、もし偽なら−(減算)として定義される。する
と、データ従属を有するループは、次のように書き直さ
れる。
for(i=O;i<300;i++) for(j=O;j<500;j++) c〔i、j〕=a〔i、j〕+/−b〔i、j〕; そして、並列が効率的に適用され得る。
この例は、どのようにしてデータ従属が解決され、順次
処理されていたデータ従属ループがどのようにして並列
化され得るかを例示するものである。尚、データ従属に
関与する並列動作を活用する機会は上記の例に限定され
ず、その適用はより広汎である。
処理されていたデータ従属ループがどのようにして並列
化され得るかを例示するものである。尚、データ従属に
関与する並列動作を活用する機会は上記の例に限定され
ず、その適用はより広汎である。
D−1.データ従属並列処理 現在の並列コンピュータは、長い走行インデックスをも
つループの処理には有効であるが、データ従属をもつル
ープは有効にはサポートしない。特に、データ独立ルー
プの1つのタイプとして次のようなものがある。
つループの処理には有効であるが、データ従属をもつル
ープは有効にはサポートしない。特に、データ独立ルー
プの1つのタイプとして次のようなものがある。
for(i=O;i<300;i++) for(j=O;j<500;j++) c〔i、j〕=a〔i、j〕+b〔i、j〕; この処理は、よく知られたSIMD、MISD及びMIMDマシンに
よってきわめて好適にサポートすることができる。
よってきわめて好適にサポートすることができる。
しかし、以下に示すようにデータ従属がプログラムに付
け加えられると、最早、現在する並列マシンはそれを効
率的に処理することはできない。
け加えられると、最早、現在する並列マシンはそれを効
率的に処理することはできない。
for(i=O;i<300;i++) for(j=O;j<500;j++) if(状況) c〔i、j〕=a〔i、j〕+b〔i、j〕; else c〔i、j〕=a〔i、j〕−b〔i、j〕; D−2.空間従属並列処理 イメージ処理及びデータが空間的条件と関連づけられて
いるような他の適用分野において、データは均質的に処
理されるのではなく、空間的従属を被ることになる。例
えば、イメージの境界上にあるデータは、他の境界上に
はないデータとは異なる洋式で処理される。このこと
は、データにより反映される空間従属の1タイプであ
る。このような状況においては、並列を処理した場合、
次のような欠点がある。
いるような他の適用分野において、データは均質的に処
理されるのではなく、空間的従属を被ることになる。例
えば、イメージの境界上にあるデータは、他の境界上に
はないデータとは異なる洋式で処理される。このこと
は、データにより反映される空間従属の1タイプであ
る。このような状況においては、並列を処理した場合、
次のような欠点がある。
(1) 並列処理の範囲が、データの同種部分のみにし
か拡張できない。その結果、異種(例えば境界)データ
は、止むを得ず順次処理するよりない。このことは、並
列システムの性能低下をもたらす。
か拡張できない。その結果、異種(例えば境界)データ
は、止むを得ず順次処理するよりない。このことは、並
列システムの性能低下をもたらす。
(2) 異種データのためのプログラム(コーティン
グ)が、同種データのためのプログラムとは異なる。そ
れゆえ、コーディングのコピーが2つ以上用意されなく
てはならない。このことは、ソフトウェア労力の増大に
つながる。
グ)が、同種データのためのプログラムとは異なる。そ
れゆえ、コーディングのコピーが2つ以上用意されなく
てはならない。このことは、ソフトウェア労力の増大に
つながる。
もし命令が適合化され得るなら、空間従属についての処
理は、次に示すような、問題を解決することができよ
う。
理は、次に示すような、問題を解決することができよ
う。
for(i=O;i<300;i++) for(j=O;j<500;j++) if(空間条件) 動作1; then 動作2. 適応性命令処理を用いると、どちらの欠点も解消され
る。すなわち、異種性(例えば境界)の空間的条件はx
<Bまたはx>N−Bまたはy<Bまたはy>N−Bの
ような条件としてあらわされ、ここで(x、y)はN×
Nイメージの画素の座標であり、Bは境界の幅である。
る。すなわち、異種性(例えば境界)の空間的条件はx
<Bまたはx>N−Bまたはy<Bまたはy>N−Bの
ような条件としてあらわされ、ここで(x、y)はN×
Nイメージの画素の座標であり、Bは境界の幅である。
E.実施例 E−1.全体的構成 適応性命令プロセッサは、並列コンピュータ中の各適応
的処理要素に、プロセッサ識別(PID)を割当てる。そ
のプロセッサは、適応的処理要素の算術論理ユニット
(ALU)から、データ従属状況(DDS)の組を収集し、次
に、PIP、DDS及びもとの命令によって反映される空間的
従属及びデータ従属に従う命令を得るために命令アダプ
タ(IA)を利用する。
的処理要素に、プロセッサ識別(PID)を割当てる。そ
のプロセッサは、適応的処理要素の算術論理ユニット
(ALU)から、データ従属状況(DDS)の組を収集し、次
に、PIP、DDS及びもとの命令によって反映される空間的
従属及びデータ従属に従う命令を得るために命令アダプ
タ(IA)を利用する。
第1図は、データ従属及び空間従属の処理が関与するこ
とを除けば、概念と動作において当分野で知られている
アレイ・プロセッサに類似するアレイ・プロセッサを示
すブロック図である。このイメージ・プロセッサは、適
応的処理要素アレイ(APEA)1及びアレイ・コントロー
ラ(AC)2を有し、その各々は概略的に示されている。
アレイ・コントローラ2は、命令ライン3上に一組の命
令を与え、また入力及び出力データのための通信経路4
を与える。処理要素アレイ1は、個別の多数の適応性処
理要素5を有し、その各々には本発明に従う適応手段が
組み込まれている。処理要素アレイ1のうちのいくつか
の処理要素は、その位置が予め知られており、それに従
って段取りがなされる限りは、慣用的なものでよいが、
しかしそのことは好ましくはない。やはりすべての処理
要素を同一の適応的処理要素とし、慣用的な性能が要望
されるときは、例えば符号6で示す処理要素を慣用的に
動作させるようにするのが好適である。
とを除けば、概念と動作において当分野で知られている
アレイ・プロセッサに類似するアレイ・プロセッサを示
すブロック図である。このイメージ・プロセッサは、適
応的処理要素アレイ(APEA)1及びアレイ・コントロー
ラ(AC)2を有し、その各々は概略的に示されている。
アレイ・コントローラ2は、命令ライン3上に一組の命
令を与え、また入力及び出力データのための通信経路4
を与える。処理要素アレイ1は、個別の多数の適応性処
理要素5を有し、その各々には本発明に従う適応手段が
組み込まれている。処理要素アレイ1のうちのいくつか
の処理要素は、その位置が予め知られており、それに従
って段取りがなされる限りは、慣用的なものでよいが、
しかしそのことは好ましくはない。やはりすべての処理
要素を同一の適応的処理要素とし、慣用的な性能が要望
されるときは、例えば符号6で示す処理要素を慣用的に
動作させるようにするのが好適である。
イメージ処理は、データ・フローに関する限り慣用的な
イメージ・プロセッサ様式で進められる。すなわち、デ
ータは処理要素に入り、システム・メモリへのアクセス
に介入することなく、データが通過する処理要素によっ
て変更された初期値に従って、データは処理要素から処
理要素へと流れる。個々の処理要素は、データ・フロー
の開始の前にセットアップされる。従来のイメージ・プ
ロセッサにおいては、どのような目的に際しても、実行
の間のデータの正確な位置が知られていないので、実行
の間にセットアップを変更する機会がほとんどない。従
来においては、本質的に、イメージ・プロセッサは、一
たんセットアップされると実行期間中、特殊化された一
定動作を行うコンピュータとなる。一方、本発明は、複
数の適応性処理要素の各々に、それ固有のプロセッサ識
別レジスタと、固有のデータ従属状況レジスタと、固有
の命令適応機構を設けることによって、実行中のセット
アップの動的変更を可能ならしめる。すなわち、その固
有の命令適応機構は、プロセッサ識別データと、状況デ
ータと、加えられた命令に応答して、適応性処理要素の
ために動作の内部選択を行う。システム・レベルで見る
と、このことは、空間的及びデータ従属に好都合な適合
性を与え、これにより、処理されているデータのタイプ
に対してシステムの最適化が可能となる。
イメージ・プロセッサ様式で進められる。すなわち、デ
ータは処理要素に入り、システム・メモリへのアクセス
に介入することなく、データが通過する処理要素によっ
て変更された初期値に従って、データは処理要素から処
理要素へと流れる。個々の処理要素は、データ・フロー
の開始の前にセットアップされる。従来のイメージ・プ
ロセッサにおいては、どのような目的に際しても、実行
の間のデータの正確な位置が知られていないので、実行
の間にセットアップを変更する機会がほとんどない。従
来においては、本質的に、イメージ・プロセッサは、一
たんセットアップされると実行期間中、特殊化された一
定動作を行うコンピュータとなる。一方、本発明は、複
数の適応性処理要素の各々に、それ固有のプロセッサ識
別レジスタと、固有のデータ従属状況レジスタと、固有
の命令適応機構を設けることによって、実行中のセット
アップの動的変更を可能ならしめる。すなわち、その固
有の命令適応機構は、プロセッサ識別データと、状況デ
ータと、加えられた命令に応答して、適応性処理要素の
ために動作の内部選択を行う。システム・レベルで見る
と、このことは、空間的及びデータ従属に好都合な適合
性を与え、これにより、処理されているデータのタイプ
に対してシステムの最適化が可能となる。
第1図には、多くの適応性処理要素5のうちの代表とし
て、1個の処理要素7がより詳細に示されている。この
構成において、通信経路70と、局所メモリ71と、算術論
理ユニット(ALU)72は慣用的であり、その作用におい
て、慣用的な処理要素中の類似の部分と同様である。一
般的には、これらの部分は、割当て(命令)を受け取
り、データが与えられたときにそのデータにつき命令を
実行する機能を果たす。
て、1個の処理要素7がより詳細に示されている。この
構成において、通信経路70と、局所メモリ71と、算術論
理ユニット(ALU)72は慣用的であり、その作用におい
て、慣用的な処理要素中の類似の部分と同様である。一
般的には、これらの部分は、割当て(命令)を受け取
り、データが与えられたときにそのデータにつき命令を
実行する機能を果たす。
ライン8として示す計算サイクルは、命令9として簡易
化して図示するように、実行用の命令を導出するために
原命令(original instruction)を使用する。動作にお
いては、原命令と、空間従属状況と、データ従属状況
が、時間ライン8上の値X、Y、Zにより示されるよう
に、サイクルの前半で利用可能である。次に、計算Cの
制御のために、導出された命令が利用可能となる。
化して図示するように、実行用の命令を導出するために
原命令(original instruction)を使用する。動作にお
いては、原命令と、空間従属状況と、データ従属状況
が、時間ライン8上の値X、Y、Zにより示されるよう
に、サイクルの前半で利用可能である。次に、計算Cの
制御のために、導出された命令が利用可能となる。
さて、適応性は命令アダプタ(IA)73によって与えられ
る。すなわち、IA73は、原命令ライン74から命令呼び出
し適応性を受け取り、与えられたデータ上で適当なテス
トを実行し、そのテスト結果から、代わりの命令を導出
することにより適応をはかるか否かを判断し、導出命令
ライン75を介してALU72に導出された代わりの命令を与
える。ALU72は、DDSテスト・データ・ライン76を介して
IA73に、新たに処理されたデータ従属状況ビットを与え
るためのデータ従属状況レジスタとして働くか、または
そのようなレジスタを含む。適応性呼び出し命令は、適
応性制御ライン74上に与えられると、空間従属状況ブロ
ック(SDS)77、従属選択検証ブロック(DSV)78及び命
令変更拡張ブロック(IME)79がその命令を利用可能と
なる。命令アダプタ(IA)ブロック73は、(特殊な環境
下で自己の変更を呼び出すようなタイプの)原命令を受
け取り、出力としてライン75を介して、導出された命令
をALUブロック72へ送る。これにより、適応性処理要素
の動作が制御される。
る。すなわち、IA73は、原命令ライン74から命令呼び出
し適応性を受け取り、与えられたデータ上で適当なテス
トを実行し、そのテスト結果から、代わりの命令を導出
することにより適応をはかるか否かを判断し、導出命令
ライン75を介してALU72に導出された代わりの命令を与
える。ALU72は、DDSテスト・データ・ライン76を介して
IA73に、新たに処理されたデータ従属状況ビットを与え
るためのデータ従属状況レジスタとして働くか、または
そのようなレジスタを含む。適応性呼び出し命令は、適
応性制御ライン74上に与えられると、空間従属状況ブロ
ック(SDS)77、従属選択検証ブロック(DSV)78及び命
令変更拡張ブロック(IME)79がその命令を利用可能と
なる。命令アダプタ(IA)ブロック73は、(特殊な環境
下で自己の変更を呼び出すようなタイプの)原命令を受
け取り、出力としてライン75を介して、導出された命令
をALUブロック72へ送る。これにより、適応性処理要素
の動作が制御される。
典型的な命令セットとしては、NCR45CG72、1984年、P.7
に示されているように、マイクロNOP命令、処理要素間
の通信のためのいくつかのLOAD/STORE命令、及び算術/
論理命令がある。第1図には、符号80で示す箇所に導出
された命令の命令フォーマットが示されている。導出さ
れた命令は、1つまたはそれ以上の規定されたビット位
置において入力命令に挿入された“承認ビット”を持っ
ている。承認ビットはPID、DDS及び入力命令の関数であ
り、規定ビット位置は、入力命令と導出命令のフォーマ
ットから予め定めることができる。承認ビットはまた、
規定位置において入力命令のビットに重ね書きすること
もできる。
に示されているように、マイクロNOP命令、処理要素間
の通信のためのいくつかのLOAD/STORE命令、及び算術/
論理命令がある。第1図には、符号80で示す箇所に導出
された命令の命令フォーマットが示されている。導出さ
れた命令は、1つまたはそれ以上の規定されたビット位
置において入力命令に挿入された“承認ビット”を持っ
ている。承認ビットはPID、DDS及び入力命令の関数であ
り、規定ビット位置は、入力命令と導出命令のフォーマ
ットから予め定めることができる。承認ビットはまた、
規定位置において入力命令のビットに重ね書きすること
もできる。
個々の適応性処理要素は依然としてきわめて単純であ
る。すなわち、付加された3つのブロックはそれぞれレ
ジスタとシフト・レジスタとマルチプレクサであり、そ
れらはすべて多数のメーカーから入用可能で当業者には
よく知られた部品である。それらの部品は例えば、テキ
サス・インスツルメント社(Texas Instruments Corpor
ation)、設計技術者のためTTLデータ・ブック(THE TT
L DATA BOOK FOR DESIGN ENGINEERS)第2版、LCC411
2、74062−116−AI、pp.7−471、7−316及び7−181に
記載されている。次の表に示す例が、典型的な選択例で
ある。部品番号 構成ブロック 74374 8ビット・レジスタ 74194 4ビット双方向シフト・レジスタ 74157 マルチプレクサ E−2.命令アダプタ 第2図は、命令アダプタ(IA)73の構成を示し、それは
次のような機能ブロックからなる。
る。すなわち、付加された3つのブロックはそれぞれレ
ジスタとシフト・レジスタとマルチプレクサであり、そ
れらはすべて多数のメーカーから入用可能で当業者には
よく知られた部品である。それらの部品は例えば、テキ
サス・インスツルメント社(Texas Instruments Corpor
ation)、設計技術者のためTTLデータ・ブック(THE TT
L DATA BOOK FOR DESIGN ENGINEERS)第2版、LCC411
2、74062−116−AI、pp.7−471、7−316及び7−181に
記載されている。次の表に示す例が、典型的な選択例で
ある。部品番号 構成ブロック 74374 8ビット・レジスタ 74194 4ビット双方向シフト・レジスタ 74157 マルチプレクサ E−2.命令アダプタ 第2図は、命令アダプタ(IA)73の構成を示し、それは
次のような機能ブロックからなる。
(1) 空間従属状況ブロック(SDS)77 (2) 従属選択検証ブロック(DSV)78 (3) 命令変更拡張ブロック(B)79 空間従属状況ブロック(SDS)77は、制御として入力命
令の一部を受け入れ、空間従属を示すために出力として
SDSビットを発生する。このブロックは、PIDレジスタ81
を含み、そのレジスタ81の内容が、その処理要素の識別
子となる。PIDレジスタには、入力命令によって予めロ
ードすることができる。PIDレジスタ81の内容は、空間
的位置(例えば、x−y座標)に関連づけられていなく
てはならない。SDS77はまた、PIDレジスタ81と同一サイ
ズのシフトレジスタ82を含んでいる。シフトレジスタ82
は、一度に1ビットづつ、どちらの方向にも論理シフト
動作を行うことができる。この機構により、ライン88を
介してDSVブロック78がPIDレジスタの任意のビット・グ
ループを入力として利用することが可能となる。
令の一部を受け入れ、空間従属を示すために出力として
SDSビットを発生する。このブロックは、PIDレジスタ81
を含み、そのレジスタ81の内容が、その処理要素の識別
子となる。PIDレジスタには、入力命令によって予めロ
ードすることができる。PIDレジスタ81の内容は、空間
的位置(例えば、x−y座標)に関連づけられていなく
てはならない。SDS77はまた、PIDレジスタ81と同一サイ
ズのシフトレジスタ82を含んでいる。シフトレジスタ82
は、一度に1ビットづつ、どちらの方向にも論理シフト
動作を行うことができる。この機構により、ライン88を
介してDSVブロック78がPIDレジスタの任意のビット・グ
ループを入力として利用することが可能となる。
第2の機能ブロックは“従属選択検証(DSV)”ブロッ
ク78である。DSV78は、SDSビットまたはDDSビットのう
ちのいくつかを選択するためのマルチプレクサ83を含ん
でいる。このブロックには、照合、マスキング及び比較
のためにテンプレート・レジスタ84が含まれている。そ
して、選択された従属ビット及びテンプレートは、承認
ピットを発生するために承認検証ブロック85へ渡され
る。テンプレート・レジスタ84は、初期化の際にプリセ
ットされる決定しきい値情報を含んでいる。典型的な動
作においては、ビットのあるサブグループをマスクする
ために、すべてのテンプレート・レジスタは同一の値に
セットされる。特定のサイクル上では、関連するPIDレ
ジスタ中のビット・グループのサンプリングを実行し、
それらのビットを適当に整列させるために、命令に従っ
てすべてのシフト・レジスタは同様に動作される。
ク78である。DSV78は、SDSビットまたはDDSビットのう
ちのいくつかを選択するためのマルチプレクサ83を含ん
でいる。このブロックには、照合、マスキング及び比較
のためにテンプレート・レジスタ84が含まれている。そ
して、選択された従属ビット及びテンプレートは、承認
ピットを発生するために承認検証ブロック85へ渡され
る。テンプレート・レジスタ84は、初期化の際にプリセ
ットされる決定しきい値情報を含んでいる。典型的な動
作においては、ビットのあるサブグループをマスクする
ために、すべてのテンプレート・レジスタは同一の値に
セットされる。特定のサイクル上では、関連するPIDレ
ジスタ中のビット・グループのサンプリングを実行し、
それらのビットを適当に整列させるために、命令に従っ
てすべてのシフト・レジスタは同様に動作される。
テンプレート・レジスタとシフト・レジスタはともにPI
Dから関連ビットを選択するように機能する。テンプレ
ート・レジスタの通常の動作は、ハードウェアに、異な
るイメージ・サブセット等に異なる割り当てを行うため
の2個の連続ビットを含む、可動窓としてのものであ
る。
Dから関連ビットを選択するように機能する。テンプレ
ート・レジスタの通常の動作は、ハードウェアに、異な
るイメージ・サブセット等に異なる割り当てを行うため
の2個の連続ビットを含む、可動窓としてのものであ
る。
承認検証ブロックは、比較(COMPARE)、AND、OR及びXO
R動作を行うことができる。要約すると、DSVブロック
は、入力としてSDSビット及びDDSビットを受け取り、出
力として承認ビットを発生する。DSVブロックは、入力
命令の一部を制御信号として受け取る。
R動作を行うことができる。要約すると、DSVブロック
は、入力としてSDSビット及びDDSビットを受け取り、出
力として承認ビットを発生する。DSVブロックは、入力
命令の一部を制御信号として受け取る。
DDSビットは、データの性質を示し、データ適応のため
に使用される。共通のDDSビットには、正/負、ゼロ/
非ゼロ、正/非正、真/偽、大/等/小、偶/奇があ
る。適応的処理要素7のALU72から導出され得る他の状
況は状況ビットによって識別することができる。
に使用される。共通のDDSビットには、正/負、ゼロ/
非ゼロ、正/非正、真/偽、大/等/小、偶/奇があ
る。適応的処理要素7のALU72から導出され得る他の状
況は状況ビットによって識別することができる。
第3のブロックは、命令変更拡張(IME)ブロック79で
ある。IMEブロック79は、承認ビットと入力命令とを入
力として受け取り、導出された命令を出力として発生す
る。IMEブロック79は、入力命令のいくつかのビット
を、規定された位置で承認ビットによって置き換えるた
めの重ね書きブロックを有している。IMEはまた、規定
された位置において入力命令に承認ビットを挿入するた
めの、ビット挿入ブロックを有している。重ね書きまた
は挿入またはその両方の選択、及び位置を予め規定する
ことは、入力命令の一部によって制御される。
ある。IMEブロック79は、承認ビットと入力命令とを入
力として受け取り、導出された命令を出力として発生す
る。IMEブロック79は、入力命令のいくつかのビット
を、規定された位置で承認ビットによって置き換えるた
めの重ね書きブロックを有している。IMEはまた、規定
された位置において入力命令に承認ビットを挿入するた
めの、ビット挿入ブロックを有している。重ね書きまた
は挿入またはその両方の選択、及び位置を予め規定する
ことは、入力命令の一部によって制御される。
上記SDS77、DSV78及びIME79という3つの機能ブロック
を用いて、命令アダプタ(IA)は、空間的またはデータ
適応を容易化するために次のような“従属動作”を行
う。
を用いて、命令アダプタ(IA)は、空間的またはデータ
適応を容易化するために次のような“従属動作”を行
う。
(1) DDSの任意のビットが“1"であることを検出す
ること。
ること。
(2) PIDレジスタの、i番目のビットが“1"である
ことを検出すること。
ことを検出すること。
(3) テンプレートに一致するPIDレジスタの任意の
連続するM個のビット(Mは、PIDのビットの全数に等
しいかそれよりも小さい)を検出すること。
連続するM個のビット(Mは、PIDのビットの全数に等
しいかそれよりも小さい)を検出すること。
E−3.簡易化された適応性処理要素の構成 第3図には、きわめて効率的且つ簡易化された命令アダ
プタ(IA)の構成が示されている。この構成において、
PIDレジスタ81の内容が論理的シフトレジスタ(LSR)91
にコピーされ、LSR91は、双方向に論理シフト動作を行
う。LSR91からシフトに送出されたビットと右端のビッ
トがSDSビットである。次にマルチプレクサ83が、承認
ビットとしてSDSまたはDDSのどちらを選択する。そのよ
うな構成は、一次元及び二次元動作を実行することがで
きる。この構成は、より簡単な適応性処理要素に適して
いる。なぜなら、テンプレート・レジスタ84(第2図)
及び承認検証ブロック85が省略されているからである。
プタ(IA)の構成が示されている。この構成において、
PIDレジスタ81の内容が論理的シフトレジスタ(LSR)91
にコピーされ、LSR91は、双方向に論理シフト動作を行
う。LSR91からシフトに送出されたビットと右端のビッ
トがSDSビットである。次にマルチプレクサ83が、承認
ビットとしてSDSまたはDDSのどちらを選択する。そのよ
うな構成は、一次元及び二次元動作を実行することがで
きる。この構成は、より簡単な適応性処理要素に適して
いる。なぜなら、テンプレート・レジスタ84(第2図)
及び承認検証ブロック85が省略されているからである。
E−4.多次元ネットワークのための構成 第4図は、二次元中のアレイまたは三次元中のピラミッ
ドなどのような、並列コンピュータの多次元相互接続ネ
ットワークの空間従属を検出するために構成された空間
従属状況ブロックを示す図である。PIDレジスタはK個
のセクション1〜Kをもつと考えることができる。第
1、2図中のシフトレジスタ82及び91に類似する、SDS
ブロック77中のシフトレジスタ92は、K個のセクション
(ここでKはネットワークの次元)に分割されている。
そして、各セクションが、ネットワークの1つの次元の
空間従属を扱う。各セクションの右端と左端のビット
は、空間従属検出のためにDSVブロック78中のマルチプ
レクサ83に渡されるSDSビットである。
ドなどのような、並列コンピュータの多次元相互接続ネ
ットワークの空間従属を検出するために構成された空間
従属状況ブロックを示す図である。PIDレジスタはK個
のセクション1〜Kをもつと考えることができる。第
1、2図中のシフトレジスタ82及び91に類似する、SDS
ブロック77中のシフトレジスタ92は、K個のセクション
(ここでKはネットワークの次元)に分割されている。
そして、各セクションが、ネットワークの1つの次元の
空間従属を扱う。各セクションの右端と左端のビット
は、空間従属検出のためにDSVブロック78中のマルチプ
レクサ83に渡されるSDSビットである。
E−5.データ従属及び空間従属並列処理 本発明の基づく適応性命令処理によれば、次のような再
構成が可能である。すなわち、 「for(i=0;i<300;i++) for(j=0;j<500;j++) if(条件) 動作1; else 動作2;(もし動作1及び2が相補的なら)」 を 「for(i=0;i<300;i++) for(j=0;j<500;j++) 動作3.」 に再構成する。
構成が可能である。すなわち、 「for(i=0;i<300;i++) for(j=0;j<500;j++) if(条件) 動作1; else 動作2;(もし動作1及び2が相補的なら)」 を 「for(i=0;i<300;i++) for(j=0;j<500;j++) 動作3.」 に再構成する。
これによれば相補的動作が可能である。相補的動作の例
としては、+/−(和または差)の対がある。“承認”
ビットが“条件”から導出され、その“条件”はデータ
従属または空間従属のどちらかであり得る。この再構成
の結果として、動作1/動作2の順次的処理を単一化され
た動作3へと完全に並列化することができる。
としては、+/−(和または差)の対がある。“承認”
ビットが“条件”から導出され、その“条件”はデータ
従属または空間従属のどちらかであり得る。この再構成
の結果として、動作1/動作2の順次的処理を単一化され
た動作3へと完全に並列化することができる。
この問題はまた、次のようにしても再構成することがで
きる。すなわち、 “承認”ビットが“条件”から得られ、入力された命令
に適当なフィールドを重ね書きするかまたは挿入するこ
とによって“アドレス・オフセット”を生成するために
その“承認”ビットが使用される。次に、動作1と動作
2のコードが距離Dだけ離れて構成される。ここでD
は、“アドレス・オフセット”に等しい。実行時間の間
に、各処理要素は、データの空間的条件に応じてそのコ
ードの右のエントリへと“ジャンプ”する。尚、コーデ
ィングの改訂は一回だけしか必要ないことに注意された
い。この発明によれば、空間従属に起因する異種性の問
題が同種性の問題に変換され、これにより並列化の適度
を向上しソフトウェアの労力を低減することが可能であ
る。
きる。すなわち、 “承認”ビットが“条件”から得られ、入力された命令
に適当なフィールドを重ね書きするかまたは挿入するこ
とによって“アドレス・オフセット”を生成するために
その“承認”ビットが使用される。次に、動作1と動作
2のコードが距離Dだけ離れて構成される。ここでD
は、“アドレス・オフセット”に等しい。実行時間の間
に、各処理要素は、データの空間的条件に応じてそのコ
ードの右のエントリへと“ジャンプ”する。尚、コーデ
ィングの改訂は一回だけしか必要ないことに注意された
い。この発明によれば、空間従属に起因する異種性の問
題が同種性の問題に変換され、これにより並列化の適度
を向上しソフトウェアの労力を低減することが可能であ
る。
E−6.汎用ネットワークのエミュレーション 本発明は、システム中の処理要素(PE)を接続するため
の単一の固定ベースライン・ネットワークをもつ並列コ
ンピュータ中のPEの相対的または絶対的位置(座標)に
起因する空間従属を解決する。アルゴリズムの進歩の観
点から、並列処理システム中に2つ以上のネットワーク
(または相互接続)を埋め込むことが好都合である。な
ぜなら、単一ネットワークはさまざまなアルゴリズムに
最適には適合しないからである。そのようなネットワー
ク・エミュレーション能力をもつ並列システムにおいて
は、ネットワークは、適応性命令プロセッタを利用して
ベースライン相互接続からエミュレートすることができ
る。
の単一の固定ベースライン・ネットワークをもつ並列コ
ンピュータ中のPEの相対的または絶対的位置(座標)に
起因する空間従属を解決する。アルゴリズムの進歩の観
点から、並列処理システム中に2つ以上のネットワーク
(または相互接続)を埋め込むことが好都合である。な
ぜなら、単一ネットワークはさまざまなアルゴリズムに
最適には適合しないからである。そのようなネットワー
ク・エミュレーション能力をもつ並列システムにおいて
は、ネットワークは、適応性命令プロセッタを利用して
ベースライン相互接続からエミュレートすることができ
る。
例えば、適応性命令プロセッサによって、N×Nサイズ
のベースライン・アレイ相互接続からピラミッド・ネッ
トワークをエミュレートすることができる。このとき、
アレイ中の各適応性処理要素のPIDレジスタには、適当
なデカルト座標値(x、y)がロードされる。すなわ
ち、時間t=1ではすべてのPEが活動状態にある。t=
2では、2の倍数に等しいxまたはy座標をもつ適応性
処理要素のみが活動状態にある。t=3では、4の倍数
に等しいxまたはy座標をもつ適応性処理要素のみが活
動状態にある。要素すると、t=iでは、2×(i−
1)の倍数に等しいxまたはy座標をもつ適応性処理要
素のみが活動状態にある。上述の手続は、ベースライン
・アレイ・ネットワークから縮小率2のピラミッド・ネ
ットワークをエミュレートする(すなわち、時間ステッ
プが進む毎に、全PEのうちの1/4のみが離隔するPEと接
続される)。エミュレーションの制御は、二次元PIDレ
ジスタの内容を検査し、“承認”ビットが真ならそのPE
を活動化することによって行なうことができる。それと
同一の適応性命令プロセッサはまた、ベースライン・交
互接続からトリー、リング、パーフェクト・シャッフル
(perfact shuffle)などのネットワークのエミュレー
ションにも適用することができる。
のベースライン・アレイ相互接続からピラミッド・ネッ
トワークをエミュレートすることができる。このとき、
アレイ中の各適応性処理要素のPIDレジスタには、適当
なデカルト座標値(x、y)がロードされる。すなわ
ち、時間t=1ではすべてのPEが活動状態にある。t=
2では、2の倍数に等しいxまたはy座標をもつ適応性
処理要素のみが活動状態にある。t=3では、4の倍数
に等しいxまたはy座標をもつ適応性処理要素のみが活
動状態にある。要素すると、t=iでは、2×(i−
1)の倍数に等しいxまたはy座標をもつ適応性処理要
素のみが活動状態にある。上述の手続は、ベースライン
・アレイ・ネットワークから縮小率2のピラミッド・ネ
ットワークをエミュレートする(すなわち、時間ステッ
プが進む毎に、全PEのうちの1/4のみが離隔するPEと接
続される)。エミュレーションの制御は、二次元PIDレ
ジスタの内容を検査し、“承認”ビットが真ならそのPE
を活動化することによって行なうことができる。それと
同一の適応性命令プロセッサはまた、ベースライン・交
互接続からトリー、リング、パーフェクト・シャッフル
(perfact shuffle)などのネットワークのエミュレー
ションにも適用することができる。
ネットワーク・エミュレーションは単一のPEタイプから
多数の並列アーキテクチャを形成するという点できわめ
て強力な機構である。経済的且つ論理的恩恵に加えて、
このアルゴリズムは並列アーキテクチャによりよく適合
し、以て性能の向上をはかることができる。このとき一
種類のタイプのPEがあればよいので、そのようなエミュ
レーション・スキームは特にVLSIに適する。
多数の並列アーキテクチャを形成するという点できわめ
て強力な機構である。経済的且つ論理的恩恵に加えて、
このアルゴリズムは並列アーキテクチャによりよく適合
し、以て性能の向上をはかることができる。このとき一
種類のタイプのPEがあればよいので、そのようなエミュ
レーション・スキームは特にVLSIに適する。
E−7.相補的動作 相補的動作は、2つの適応性処理要素の間で配分され同
時に実行できる一対の動作である。相補的動作の例とし
ては、プロセッサ間の通信のためのSEND/RECEIVE対及び
FFT(高速フーリエ交換)のためのバタフライ(Butterf
ly)演算がある。別の例としては、E−5.の適応例に記
載された+/−命令がある。適応性命令の構成は、相補
的動作に適用されると、実行速度を向上し通信帯域を節
約することができる。
時に実行できる一対の動作である。相補的動作の例とし
ては、プロセッサ間の通信のためのSEND/RECEIVE対及び
FFT(高速フーリエ交換)のためのバタフライ(Butterf
ly)演算がある。別の例としては、E−5.の適応例に記
載された+/−命令がある。適応性命令の構成は、相補
的動作に適用されると、実行速度を向上し通信帯域を節
約することができる。
SIMDアレイ・アーキテクチャの場合に、SEND/RECEIVEの
例について考慮してみよう。1個の適応的処理要素は
(アレイにおけるそれの位置に関する情報、すなわち空
間的情報に基づき)隣接する処理要素に相互結線を介し
てデータを送り、一方、隣接するPEは(この空間的情報
に基づき)隣接する処理要素に相互結線を介してデータ
を送り、一方、隣接するPEは(この空間的情報に基づ
き)同一の相互結線を介してこれらのデータを受け取
る。その動作は、1個のデータにつき一単位の通信帯域
を利用して1サイクル中で実行することができる。位置
従属適応性をもたないSIMDアーキテクチャの場合、それ
と同一の動作には2つの実行サイクルまたは2単位の通
信帯域が必要である。
例について考慮してみよう。1個の適応的処理要素は
(アレイにおけるそれの位置に関する情報、すなわち空
間的情報に基づき)隣接する処理要素に相互結線を介し
てデータを送り、一方、隣接するPEは(この空間的情報
に基づき)隣接する処理要素に相互結線を介してデータ
を送り、一方、隣接するPEは(この空間的情報に基づ
き)同一の相互結線を介してこれらのデータを受け取
る。その動作は、1個のデータにつき一単位の通信帯域
を利用して1サイクル中で実行することができる。位置
従属適応性をもたないSIMDアーキテクチャの場合、それ
と同一の動作には2つの実行サイクルまたは2単位の通
信帯域が必要である。
バタフライ演算の場合、従来のイメージ・プロセッサに
おける順次的実行では4サイクルが必要である。ところ
が、適応性命令プロセッサによれば、必要なサイクル
は、(2個の適応性処理要素を用いると)2サイクル、
または(4個の適応性処理要素を用いると)1サイクル
に低減することができる。このことは、先ずすべての適
応性処理要素にADD/SUB(加法/減法)命令を送ること
によって達成される。次に、各適応性処理要素は、自己
の空間的条件に応じて命令をADDまたはSUBのどちらかに
割り当てる。
おける順次的実行では4サイクルが必要である。ところ
が、適応性命令プロセッサによれば、必要なサイクル
は、(2個の適応性処理要素を用いると)2サイクル、
または(4個の適応性処理要素を用いると)1サイクル
に低減することができる。このことは、先ずすべての適
応性処理要素にADD/SUB(加法/減法)命令を送ること
によって達成される。次に、各適応性処理要素は、自己
の空間的条件に応じて命令をADDまたはSUBのどちらかに
割り当てる。
相補的命令の適用は、上述の例に限定されない。実際、
イメージ処理、コンピュータ・ビジョン、ディジタル信
号処理、数学的変換及び一般的な科学的計算において他
の多くの応用例を見出すことができる。
イメージ処理、コンピュータ・ビジョン、ディジタル信
号処理、数学的変換及び一般的な科学的計算において他
の多くの応用例を見出すことができる。
E−8.適応性スーパーコンピュータ 適応性命令処理はデータ従属の問題を解決し、スーパー
コンピュータの性能向上をはかることができる。このと
き、OPA/OPB(動作A/動作B)と呼ばれる命令を定義す
ることができ、命令を適応化するために1つの承認ビッ
トが選択される。すなわち、承認ビットが“1"であれ
ば、導出された命令はOPAを実行し、承認ビットが“0"
であれば、導出された命令はOPBを実行する。スーパー
コンピュータ内のパイプは命令のOPA/OPBのために予め
セットアップすることができ、ベクトルの実行は、一た
ん承認ビットが利用可能になると開始できる。尚、デー
タ適応性のため、“正しく言いあてる(guessing righ
t)”確率は常に“1"である。
コンピュータの性能向上をはかることができる。このと
き、OPA/OPB(動作A/動作B)と呼ばれる命令を定義す
ることができ、命令を適応化するために1つの承認ビッ
トが選択される。すなわち、承認ビットが“1"であれ
ば、導出された命令はOPAを実行し、承認ビットが“0"
であれば、導出された命令はOPBを実行する。スーパー
コンピュータ内のパイプは命令のOPA/OPBのために予め
セットアップすることができ、ベクトルの実行は、一た
ん承認ビットが利用可能になると開始できる。尚、デー
タ適応性のため、“正しく言いあてる(guessing righ
t)”確率は常に“1"である。
E−9.より詳細な実施例 この実施例は、空間的適応の場合において動作する適応
性命令プロセッサを示す。第5図を参照すると、この実
施例は、原命令が、プロセッサ識別(PID)の関数とし
て変更される様子を示している。その結果、次のような
計算が有効に実行され得ることになる。
性命令プロセッサを示す。第5図を参照すると、この実
施例は、原命令が、プロセッサ識別(PID)の関数とし
て変更される様子を示している。その結果、次のような
計算が有効に実行され得ることになる。
for(i=0;i<300;i++) for(j=0;j<500;j++) if(PID<0>==1) c[i、j]=a[i、j]+b[i、j] else c[i、j]=a[i、j]−b[i、j] そこで先ず、簡易化された原命令と導出された命令をバ
ックグラウンドとして示し、次に本発明を実現する設計
構造を第5図を参照して説明する。
ックグラウンドとして示し、次に本発明を実現する設計
構造を第5図を参照して説明する。
E−91.命令フォーマット 原命令のMビットのうちで、以下に記述するようにK番
目のビットがSEND/RECまたは+/−の動作を制御する。
すなわち、 もしビット<K>=1なら、PEの局所状況Sが真のとき
PEはSENDを実行し、PEの局所状況Sが偽のときPEはREC
を実行する。
目のビットがSEND/RECまたは+/−の動作を制御する。
すなわち、 もしビット<K>=1なら、PEの局所状況Sが真のとき
PEはSENDを実行し、PEの局所状況Sが偽のときPEはREC
を実行する。
また、もしビット<K>=0なら、PEの局所状況Sが真
のときPEは“+”を実行し、PEの局所状況Sが偽のとき
PEは“−”を実行する。
のときPEは“+”を実行し、PEの局所状況Sが偽のとき
PEは“−”を実行する。
原命令とは対照的に、導出された命令は、この実施例に
関連する。r番目とr+1番目の2つのビットを有す
る。適応性処理要素のこの動作は次のように表示され
る。
関連する。r番目とr+1番目の2つのビットを有す
る。適応性処理要素のこの動作は次のように表示され
る。
r番目 r+1番目 動作 0 0 − 0 1 + 1 0 REC 1 1 SEND 例えば、変更された命例のr番目のビットが“0"であ
り、r+1番目のビットが“1"であるとき、PEは“+”
を実行する。
り、r+1番目のビットが“1"であるとき、PEは“+”
を実行する。
E−92.本発明のための例示的な設計構造 第5図は、多数のマルチプレクサを用いた別の実施例を
示す。すなわち、原命令の一部が、そのプロセッサ識別
(PID)をもつシフトレジスタ91に1ビット位置だけ右
にシフトするように指令する。その結果、プロセッサ識
別レジスタ中の最下位ビット(LSBPID)が従属選択検証
(DSV)ブロック78への入力の一つに収まる。
示す。すなわち、原命令の一部が、そのプロセッサ識別
(PID)をもつシフトレジスタ91に1ビット位置だけ右
にシフトするように指令する。その結果、プロセッサ識
別レジスタ中の最下位ビット(LSBPID)が従属選択検証
(DSV)ブロック78への入力の一つに収まる。
第5図は、原命令のK番目のビット(I<K>)を、PI
DのLSB(LSBPID、すなわちPID<0>)に従って変更さ
れた命令のr番目及びr+1番目のビット(IM<r>及
びIM<r+1>)に変換するための例示的な設計構造が
示されている。
DのLSB(LSBPID、すなわちPID<0>)に従って変更さ
れた命令のr番目及びr+1番目のビット(IM<r>及
びIM<r+1>)に変換するための例示的な設計構造が
示されている。
適応性制御ライン74上にある原命令の別の部分は次に、
DSVブロック78に、DSVブロック中のマルチプレクサの出
力としてLSBPIDを選択するように指令する。その結果、
LSBPIDは“承認ビット”のライン上に配置される。
DSVブロック78に、DSVブロック中のマルチプレクサの出
力としてLSBPIDを選択するように指令する。その結果、
LSBPIDは“承認ビット”のライン上に配置される。
命令変更拡張(IME)ブロック79の入力として、(現在L
SBPIDを有する)“承認ビット”及び原命令(I<K>
及び他のビットを有する)が一組のマルチプレクサ84〜
86中に導かれて、導出された命令が得られる。尚、Jビ
ットの導出命令を得るためにはJ個のマルチプレクサが
必要であり、このとき1個のマルチプレクサが導出命令
の1ビットを生成する。IM<r>を生成するために、原
命令は、マルチプレクサrに、出力としてI<K>を選
択するように指令する。同様に、原命令はマルチプレク
サr+1に、IM<r+1>として“承認ビット”を選択
するように指令する。
SBPIDを有する)“承認ビット”及び原命令(I<K>
及び他のビットを有する)が一組のマルチプレクサ84〜
86中に導かれて、導出された命令が得られる。尚、Jビ
ットの導出命令を得るためにはJ個のマルチプレクサが
必要であり、このとき1個のマルチプレクサが導出命令
の1ビットを生成する。IM<r>を生成するために、原
命令は、マルチプレクサrに、出力としてI<K>を選
択するように指令する。同様に、原命令はマルチプレク
サr+1に、IM<r+1>として“承認ビット”を選択
するように指令する。
下記の表は、原命令(I<K>)と、LSBPIDと、変更さ
れた命令(IM<r>及びIM<r+1>)間の関係を示
し、この表には、第5図の設計構造により本発明が実現
されることが例示されている。
れた命令(IM<r>及びIM<r+1>)間の関係を示
し、この表には、第5図の設計構造により本発明が実現
されることが例示されている。
”−” 0 0 0 0 ”+” 0 1 0 1 REC 1 0 1 0 SEND 1 1 1 1 F.発明の効果 以上のように、この発明によれば、データ従属あるいは
空間従属のループを含む処理を並列的に実行できるの
で、処理速度を高めることができる。
空間従属のループを含む処理を並列的に実行できるの
で、処理速度を高めることができる。
また、異なる空間的条件をもつ処理要素のためにプログ
ラムの異なるコプーを作成する必要がなくなるので、ソ
フトウェアの労力が低減する。
ラムの異なるコプーを作成する必要がなくなるので、ソ
フトウェアの労力が低減する。
第1図は、本発明のアレイ・プロセッサの全体的な概要
のブロック図、 第2図は、命令アダプタのブロック図、 第3図は、適応性処理要素のブロック図、 第4図は、多次元ネットワークのための命令プロセッサ
のブロック図、 第5図は、命令アダプタの他の実施例のブロック図であ
る。 1……処理要素(PE)アレイ、2……アレイ・コントロ
ーラ、73……命令アダプタ、77……空間従属状況ブロッ
ク、78……従属選択検証ブロック、79……命令変更拡張
ブロック。
のブロック図、 第2図は、命令アダプタのブロック図、 第3図は、適応性処理要素のブロック図、 第4図は、多次元ネットワークのための命令プロセッサ
のブロック図、 第5図は、命令アダプタの他の実施例のブロック図であ
る。 1……処理要素(PE)アレイ、2……アレイ・コントロ
ーラ、73……命令アダプタ、77……空間従属状況ブロッ
ク、78……従属選択検証ブロック、79……命令変更拡張
ブロック。
Claims (1)
- 【請求項1】命令発生能力を持つ制御ユニットと、個々
の処理要素からなるアレイとを有し、該処理要素は入力
手段と、処理手段と、他の処理要素に接続された出力手
段とを持ち、上記制御ユニットによって上記アレイに同
時に加えられた命令にしたがってデータを処理するもの
であるアレイ・プロセッサにおいて、 上記各々の処理要素は、その各処理要素が原命令を受信
し、命令を導出し、該命令を実行するという点で適応性
であり、 上記原命令を受信するように接続され、空間従属状況動
作パラメータを示す第1の信号を供給する空間従属状況
手段と、 上記導出された命令を実行し、上記出力手段に結果を供
給し、さらにデータ従属状況動作パラメータを表す第2
の信号を供給する、処理手段を含む実行手段と、 上記原命令を受信するように接続され、上記原命令、上
記第1の信号及び上記第2の信号を受信するように接続
され、上記第1の信号及び上記第2の信号に応答して合
成された命令を導出する従属選択検証手段と、 上記原命令を受信するように接続され、かつ上記合成命
令を受信するように接続され、上記処理手段へ上記導出
された命令を供給する命令変更拡張手段と、 を有するアレイ・プロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/839,311 US4783738A (en) | 1986-03-13 | 1986-03-13 | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
| US839311 | 1986-03-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62221063A JPS62221063A (ja) | 1987-09-29 |
| JPH0719244B2 true JPH0719244B2 (ja) | 1995-03-06 |
Family
ID=25279392
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62002006A Expired - Lifetime JPH0719244B2 (ja) | 1986-03-13 | 1987-01-09 | アレイ・プロセツサ |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4783738A (ja) |
| EP (1) | EP0237013B1 (ja) |
| JP (1) | JPH0719244B2 (ja) |
| CA (1) | CA1268554A (ja) |
| DE (1) | DE3784082T2 (ja) |
Families Citing this family (84)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| NL192637C (nl) * | 1984-02-27 | 1997-11-04 | Nippon Telegraph & Telephone | Stelselprocessor. |
| GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
| US4839851A (en) * | 1987-07-13 | 1989-06-13 | Idaho Research Foundation, Inc. | Programmable data path device |
| US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
| US4901360A (en) * | 1987-10-23 | 1990-02-13 | Hughes Aircraft Company | Gated architecture for computer vision machine |
| NL8800071A (nl) * | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
| US5257395A (en) * | 1988-05-13 | 1993-10-26 | International Business Machines Corporation | Methods and circuit for implementing and arbitrary graph on a polymorphic mesh |
| US5136717A (en) * | 1988-11-23 | 1992-08-04 | Flavors Technology Inc. | Realtime systolic, multiple-instruction, single-data parallel computer system |
| US5280620A (en) * | 1988-12-16 | 1994-01-18 | U.S. Philips Corporation | Coupling network for a data processor, including a series connection of a cross-bar switch and an array of silos |
| US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
| CA2012938A1 (en) * | 1989-04-19 | 1990-10-19 | Patrick F. Castelaz | Clustering and association processor |
| EP0424618A3 (en) * | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
| US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
| CA2073185A1 (en) * | 1990-01-05 | 1991-07-06 | Won S. Kim | Parallel processor memory system |
| US5734921A (en) * | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
| US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
| US5828894A (en) * | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
| US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
| US5713037A (en) * | 1990-11-13 | 1998-01-27 | International Business Machines Corporation | Slide bus communication functions for SIMD/MIMD array processor |
| ATE180586T1 (de) * | 1990-11-13 | 1999-06-15 | Ibm | Paralleles assoziativprozessor-system |
| US5617577A (en) * | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
| US5794059A (en) * | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
| US5963746A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
| US5963745A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
| US5809292A (en) * | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
| US5765015A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
| US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
| US5588152A (en) * | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
| US5630162A (en) * | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
| US5765012A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library |
| US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
| US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
| US5594918A (en) * | 1991-05-13 | 1997-01-14 | International Business Machines Corporation | Parallel computer system providing multi-ported intelligent memory |
| US5237626A (en) * | 1991-09-12 | 1993-08-17 | International Business Machines Corporation | Universal image processing module |
| JP2571655B2 (ja) * | 1991-11-27 | 1997-01-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プロトコル変換機構、交換ネットワーク及びコンピュータ・システム |
| JPH06131312A (ja) * | 1992-01-23 | 1994-05-13 | Hitachi Ltd | 並行処理方法およびシステム |
| JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
| US5581778A (en) * | 1992-08-05 | 1996-12-03 | David Sarnoff Researach Center | Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock |
| US5579527A (en) * | 1992-08-05 | 1996-11-26 | David Sarnoff Research Center | Apparatus for alternately activating a multiplier and a match unit |
| US6298162B1 (en) | 1992-12-23 | 2001-10-02 | Lockheed Martin Corporation | Image compression/expansion using parallel decomposition/recomposition |
| US5493651A (en) * | 1993-02-16 | 1996-02-20 | International Business Machines Corporation | Method and system for dequeuing connection requests in a simplex switch |
| JP3287901B2 (ja) * | 1993-03-12 | 2002-06-04 | シャープ株式会社 | データ駆動型情報処理システムにおける識別データ確認方法 |
| US5765014A (en) * | 1993-10-12 | 1998-06-09 | Seki; Hajime | Electronic computer system and processor element for processing in a data driven manner using reverse polish notation |
| US5535291A (en) * | 1994-02-18 | 1996-07-09 | Martin Marietta Corporation | Superresolution image enhancement for a SIMD array processor |
| US5659780A (en) * | 1994-02-24 | 1997-08-19 | Wu; Chen-Mie | Pipelined SIMD-systolic array processor and methods thereof |
| US5748950A (en) * | 1994-09-20 | 1998-05-05 | Intel Corporation | Method and apparatus for providing an optimized compare-and-branch instruction |
| US5758176A (en) * | 1994-09-28 | 1998-05-26 | International Business Machines Corporation | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system |
| US6128720A (en) * | 1994-12-29 | 2000-10-03 | International Business Machines Corporation | Distributed processing array with component processors performing customized interpretation of instructions |
| US5682491A (en) * | 1994-12-29 | 1997-10-28 | International Business Machines Corporation | Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier |
| US5680597A (en) * | 1995-01-26 | 1997-10-21 | International Business Machines Corporation | System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions |
| US5898850A (en) * | 1997-03-31 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a non-native mode-sensitive instruction within a computer system |
| US6076156A (en) * | 1997-07-17 | 2000-06-13 | Advanced Micro Devices, Inc. | Instruction redefinition using model specific registers |
| 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 |
| US6219776B1 (en) * | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
| US7225436B1 (en) | 1998-12-08 | 2007-05-29 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
| US6826749B2 (en) | 1998-12-08 | 2004-11-30 | Nazomi Communications, Inc. | Java hardware accelerator using thread manager |
| US20050149694A1 (en) * | 1998-12-08 | 2005-07-07 | Mukesh Patel | Java hardware accelerator using microcode engine |
| US6332215B1 (en) | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
| 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 |
| EP1197847A3 (en) * | 2000-10-10 | 2003-05-21 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
| US7346217B1 (en) * | 2001-04-25 | 2008-03-18 | Lockheed Martin Corporation | Digital image enhancement using successive zoom images |
| US7127593B2 (en) * | 2001-06-11 | 2006-10-24 | Broadcom Corporation | Conditional execution with multiple destination stores |
| US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
| US8769508B2 (en) | 2001-08-24 | 2014-07-01 | Nazomi Communications Inc. | Virtual machine hardware for RISC and CISC processors |
| US7251594B2 (en) * | 2001-12-21 | 2007-07-31 | Hitachi, Ltd. | Execution time modification of instruction emulation parameters |
| US8001266B1 (en) | 2003-03-31 | 2011-08-16 | Stretch, Inc. | Configuring a multi-processor system |
| US7590829B2 (en) * | 2003-03-31 | 2009-09-15 | Stretch, Inc. | Extension adapter |
| US7613900B2 (en) * | 2003-03-31 | 2009-11-03 | Stretch, Inc. | Systems and methods for selecting input/output configuration in an integrated circuit |
| US7581081B2 (en) | 2003-03-31 | 2009-08-25 | Stretch, Inc. | Systems and methods for software extensible multi-processing |
| US7609297B2 (en) * | 2003-06-25 | 2009-10-27 | Qst Holdings, Inc. | Configurable hardware based digital imaging apparatus |
| US7373642B2 (en) * | 2003-07-29 | 2008-05-13 | Stretch, Inc. | Defining instruction extensions in a standard programming language |
| US7418575B2 (en) * | 2003-07-29 | 2008-08-26 | Stretch, Inc. | Long instruction word processing with instruction extensions |
| FR2865290A1 (fr) * | 2004-01-21 | 2005-07-22 | Thomson Licensing Sa | Procede de gestion de donnees dans un processeur matriciel et processeur matriciel mettant en oeuvre ce procede |
| US7725691B2 (en) * | 2005-01-28 | 2010-05-25 | Analog Devices, Inc. | Method and apparatus for accelerating processing of a non-sequential instruction stream on a processor with multiple compute units |
| US7516301B1 (en) * | 2005-12-16 | 2009-04-07 | Nvidia Corporation | Multiprocessor computing systems with heterogeneous processors |
| US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
| JP2009523293A (ja) * | 2006-01-10 | 2009-06-18 | ブライトスケール インコーポレイテッド | 並列処理システムにおけるマルチメディア・データのアルゴリズム・ステップを処理するための方法及び装置 |
| US20080059764A1 (en) * | 2006-09-01 | 2008-03-06 | Gheorghe Stefan | Integral parallel machine |
| US20080244238A1 (en) * | 2006-09-01 | 2008-10-02 | Bogdan Mitu | Stream processing accelerator |
| US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
| US20080212895A1 (en) * | 2007-01-09 | 2008-09-04 | Lockheed Martin Corporation | Image data processing techniques for highly undersampled images |
| US7920935B2 (en) * | 2008-08-19 | 2011-04-05 | International Business Machines Corporation | Activity based real-time production instruction adaptation |
| US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
| US11940945B2 (en) * | 2021-12-31 | 2024-03-26 | Ceremorphic, Inc. | Reconfigurable SIMD engine |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3287702A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer control |
| US3287703A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
| US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
| US4558411A (en) * | 1969-05-19 | 1985-12-10 | Burroughs Corp. | Polymorphic programmable units employing plural levels of sub-instruction sets |
| US3970993A (en) * | 1974-01-02 | 1976-07-20 | Hughes Aircraft Company | Cooperative-word linear array parallel processor |
| GB1527289A (en) * | 1976-08-17 | 1978-10-04 | Int Computers Ltd | Data processing systems |
| US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
| US4301443A (en) * | 1979-09-10 | 1981-11-17 | Environmental Research Institute Of Michigan | Bit enable circuitry for an image analyzer system |
| US4287566A (en) * | 1979-09-28 | 1981-09-01 | Culler-Harrison Inc. | Array processor with parallel operations per instruction |
| JPS6042516B2 (ja) * | 1980-03-04 | 1985-09-24 | 日本電信電話株式会社 | デ−タ処理装置 |
| US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
| US4344134A (en) * | 1980-06-30 | 1982-08-10 | Burroughs Corporation | Partitionable parallel processor |
| US4467409A (en) * | 1980-08-05 | 1984-08-21 | Burroughs Corporation | Flexible computer architecture using arrays of standardized microprocessors customized for pipeline and parallel operations |
| US4484346A (en) * | 1980-08-15 | 1984-11-20 | Sternberg Stanley R | Neighborhood transformation logic circuitry for an image analyzer system |
| US4398176A (en) * | 1980-08-15 | 1983-08-09 | Environmental Research Institute Of Michigan | Image analyzer with common data/instruction bus |
| US4574394A (en) * | 1981-06-01 | 1986-03-04 | Environmental Research Institute Of Mi | Pipeline processor |
| US4464689A (en) * | 1981-06-04 | 1984-08-07 | Education & Informations Systems, Inc. | Random access read/write unit |
| NZ207326A (en) * | 1983-03-08 | 1988-03-30 | Stc Plc | Associative data processing array |
| US4739474A (en) * | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
| US4541116A (en) * | 1984-02-27 | 1985-09-10 | Environmental Research Institute Of Mi | Neighborhood image processing stage for implementing filtering operations |
| JPS61264470A (ja) * | 1985-05-03 | 1986-11-22 | アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド | モノリシツク集積回路装置 |
| EP0223849B1 (en) * | 1985-05-20 | 1990-09-26 | SHEKELS, Howard D. | Super-computer system architectures |
-
1986
- 1986-03-13 US US06/839,311 patent/US4783738A/en not_active Expired - Fee Related
-
1987
- 1987-01-09 JP JP62002006A patent/JPH0719244B2/ja not_active Expired - Lifetime
- 1987-02-11 CA CA000529484A patent/CA1268554A/en not_active Expired - Lifetime
- 1987-03-10 EP EP87103374A patent/EP0237013B1/en not_active Expired - Lifetime
- 1987-03-10 DE DE8787103374T patent/DE3784082T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| DE3784082D1 (de) | 1993-03-25 |
| CA1268554A (en) | 1990-05-01 |
| EP0237013A3 (en) | 1989-02-08 |
| US4783738A (en) | 1988-11-08 |
| DE3784082T2 (de) | 1993-08-12 |
| EP0237013A2 (en) | 1987-09-16 |
| EP0237013B1 (en) | 1993-02-10 |
| JPS62221063A (ja) | 1987-09-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0719244B2 (ja) | アレイ・プロセツサ | |
| US9015354B2 (en) | Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture | |
| US4748585A (en) | Processor utilizing reconfigurable process segments to accomodate data word length | |
| Annaratone et al. | Warp architecture and implementation | |
| JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
| US5737586A (en) | Data processing system and method thereof | |
| US4910669A (en) | Binary tree multiprocessor | |
| US6366999B1 (en) | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution | |
| US4837676A (en) | MIMD instruction flow computer architecture | |
| US5083267A (en) | Horizontal computer having register multiconnect for execution of an instruction loop with recurrance | |
| US5404555A (en) | Macro instruction set computer architecture | |
| WO1992009968A1 (en) | VECTOR WORD SHIFT BY Vo SHIFT COUNT IN VECTOR SUPERCOMPUTER PROCESSOR | |
| US5226128A (en) | Horizontal computer having register multiconnect for execution of a loop with a branch | |
| US5586289A (en) | Method and apparatus for accessing local storage within a parallel processing computer | |
| US7558816B2 (en) | Methods and apparatus for performing pixel average operations | |
| JPH07244589A (ja) | 述語、及びブール式を解くためのコンピュータ・システム、及び方法 | |
| CN117437113A (zh) | 用于对图像数据进行加速处理的系统、方法及存储介质 | |
| EP0199757B1 (en) | Instruction flow computer | |
| Maliţa et al. | On the many-processor paradigm | |
| US5473774A (en) | Method for conflict detection in parallel processing system | |
| JPH01271840A (ja) | マイクロコンピュータ | |
| JP2760808B2 (ja) | データ処理装置 | |
| JPH0250258A (ja) | ベクトル処理装置 | |
| Händler | Dynamic computer structures for manifold utilization | |
| Pirsch et al. | Parallelization resources of image processing algorithms and their mapping on a programmable parallel videosignal processor |