JPH036545B2 - - Google Patents
Info
- Publication number
- JPH036545B2 JPH036545B2 JP58006082A JP608283A JPH036545B2 JP H036545 B2 JPH036545 B2 JP H036545B2 JP 58006082 A JP58006082 A JP 58006082A JP 608283 A JP608283 A JP 608283A JP H036545 B2 JPH036545 B2 JP H036545B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- control
- unit
- array
- memory
- 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
- 230000015654 memory Effects 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 2
- 238000013500 data storage Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、高速にアレイ演算を行なうためのデ
ータ処理装置に関するものであり、更に具体的に
は、データおよびプログラムを記憶するグローバ
ル・メモリ・ユニツト、プログラムを実行し、ア
レイ演算の制御等を行なうコントロール・プロセ
ツサ・ユニツト、アレイ演算を実行するアレイ・
プロセツサ・ユニツトおよび外部の入出力装置と
のインターフエースである外部インターフエー
ス・ユニツトとを有し、これらの機能ユニツトが
データ・バスおよび制御バスによつて接続された
データ処理装置に関するものである。
ータ処理装置に関するものであり、更に具体的に
は、データおよびプログラムを記憶するグローバ
ル・メモリ・ユニツト、プログラムを実行し、ア
レイ演算の制御等を行なうコントロール・プロセ
ツサ・ユニツト、アレイ演算を実行するアレイ・
プロセツサ・ユニツトおよび外部の入出力装置と
のインターフエースである外部インターフエー
ス・ユニツトとを有し、これらの機能ユニツトが
データ・バスおよび制御バスによつて接続された
データ処理装置に関するものである。
一般に、科学技術計算においてアレイ演算の占
める割り合いは高く、これを汎用計算機で処理す
ると時間がかかり過ぎることから、アレイ演算を
専用に行なうデータ処理装置が種々考案され、そ
のうちのいくつかは実用化されてきた。このよう
なアレイ演算用のデータ処理装置には、下に示す
ようないくつかの形式に分類される。
める割り合いは高く、これを汎用計算機で処理す
ると時間がかかり過ぎることから、アレイ演算を
専用に行なうデータ処理装置が種々考案され、そ
のうちのいくつかは実用化されてきた。このよう
なアレイ演算用のデータ処理装置には、下に示す
ようないくつかの形式に分類される。
A FFTプロセツサのように、アレイ演算でも
特定の種類の演算のみの高速化を図つた専用の
プロセツサ。
特定の種類の演算のみの高速化を図つた専用の
プロセツサ。
B 汎用計算機にその入出力インターフエースを
介して接続され、一般の科学技術計算における
アレイ演算を汎用計算機よりも高速に実行する
アレイ・プロセツサ。
介して接続され、一般の科学技術計算における
アレイ演算を汎用計算機よりも高速に実行する
アレイ・プロセツサ。
C 汎用計算機の中央処理装置を共有し、アレイ
演算専用の機能を付加した内蔵アレイ・プロセ
ツサ。
演算専用の機能を付加した内蔵アレイ・プロセ
ツサ。
D 超高速に科学技術計算におけるアレイ演算を
処理するスーパーコンピユータ。
処理するスーパーコンピユータ。
上記のうち、Aの形式の専用プロセツサにおい
ては、その構成はある特定の処理に向いたものと
なつており、限られた種類の演算を対象としてい
る。このため、対象としている演算の処理は高速
に行なえるが、対象外の演算は全く行なえない
か、あるいは行なえるとしても非常に低速の処理
となり、処理の柔軟性に欠けるという欠点があつ
た。
ては、その構成はある特定の処理に向いたものと
なつており、限られた種類の演算を対象としてい
る。このため、対象としている演算の処理は高速
に行なえるが、対象外の演算は全く行なえない
か、あるいは行なえるとしても非常に低速の処理
となり、処理の柔軟性に欠けるという欠点があつ
た。
また、上記Bの形式のアレイ・プロセツサで
は、処理の柔軟性はあるが、特定の処理を考えた
とき、汎用計算機に比べて処理性能は改善される
ものの、専用プロセツサが必要な分野に適用でき
るほどの処理性能は有していないという欠点があ
つた。また、汎用計算機の入出力装置の1つとし
て接続されているため、ある1つの演算から他の
演算に処理が移るときには入出力のオーバーヘツ
ドが大きいという欠点もあつた。
は、処理の柔軟性はあるが、特定の処理を考えた
とき、汎用計算機に比べて処理性能は改善される
ものの、専用プロセツサが必要な分野に適用でき
るほどの処理性能は有していないという欠点があ
つた。また、汎用計算機の入出力装置の1つとし
て接続されているため、ある1つの演算から他の
演算に処理が移るときには入出力のオーバーヘツ
ドが大きいという欠点もあつた。
さらに、上記Cの形式の内蔵アレイ・プロセツ
サでは、処理の柔軟性は汎用計算機の中央処理装
置を共有しているため充分にあるが、その反面、
処理性能は上記Bの形式のアレイ・プロセツサほ
どは改善されないという欠点があつた。
サでは、処理の柔軟性は汎用計算機の中央処理装
置を共有しているため充分にあるが、その反面、
処理性能は上記Bの形式のアレイ・プロセツサほ
どは改善されないという欠点があつた。
上記Dの形式のスーパーコンピユータでは、大
規模科学技術計算を指向しており、処理は非常に
高速に行なえる。一般に、スーパーコンピユータ
では取り扱えるデータ幅も広く精度良く計算が行
なえるようになつている。しかし、構成は大規模
であり、精度をそれほど要求しない応用に対して
は、高価過ぎるという欠点があつた。
規模科学技術計算を指向しており、処理は非常に
高速に行なえる。一般に、スーパーコンピユータ
では取り扱えるデータ幅も広く精度良く計算が行
なえるようになつている。しかし、構成は大規模
であり、精度をそれほど要求しない応用に対して
は、高価過ぎるという欠点があつた。
以上のことより、前記A〜Dの形式のデータ処
理装置を次のような条件を要求する応用に対して
用いることは不適当である。
理装置を次のような条件を要求する応用に対して
用いることは不適当である。
−科学技術計算、とくに、アレイ計算を主体とす
る。
る。
−専用プロセツサとほゞ同等の高速な処理を行な
う。
う。
−演算の精度はそれほど要求しない。
−プログラムにより処理内容を動的に変更でき
る。
る。
−処理内容の変更に伴うオーバーヘツドが小さ
い。
い。
本発明は、このような応用に対して、高速でか
つ柔軟性のあるアレイ演算用データ処理装置を提
供し、前述の従来のアレイ演算用データ処理装置
の欠点を補うためになされたもので、特許請求の
範囲に記載したように構成したことを特徴とする
ものである。
つ柔軟性のあるアレイ演算用データ処理装置を提
供し、前述の従来のアレイ演算用データ処理装置
の欠点を補うためになされたもので、特許請求の
範囲に記載したように構成したことを特徴とする
ものである。
第1図は、本発明に従うアレイ演算用データ処
理装置全体の概略を示すものである。図中、10
0,200,300,400,500は機能ユニ
ツトを示し、10,20,30は複数のバスの束
(以後、これをバンドルと呼ぶ)を示す。
理装置全体の概略を示すものである。図中、10
0,200,300,400,500は機能ユニ
ツトを示し、10,20,30は複数のバスの束
(以後、これをバンドルと呼ぶ)を示す。
第1図において、大量のデータ(アレイ・デー
タおよびスカラ・データ)およびプログラムは大
容量の記憶部を持つグローバル・メモリ・ユニツ
ト100に記憶され、実行しようとするプログラ
ムおよびこれに関係したデータはメモリ・バンド
ル10を介して、コントロール・プロセツサ・ユ
ニツト200内のローカル・プログラム・メモリ
210に転送される。
タおよびスカラ・データ)およびプログラムは大
容量の記憶部を持つグローバル・メモリ・ユニツ
ト100に記憶され、実行しようとするプログラ
ムおよびこれに関係したデータはメモリ・バンド
ル10を介して、コントロール・プロセツサ・ユ
ニツト200内のローカル・プログラム・メモリ
210に転送される。
第1図に示されているデータ処理装置に関する
ほとんど全ての制御を、コントロール・プロセツ
サ・ユニツト200が、その内部に持つローカ
ル・プログラム・メモリ210に格納されている
プログラムを、同じくその内部にあるプログラム
実行ユニツト220で実行することによつて行な
う。コントロール・プロセツサ・ユニツトは、ロ
ーカル・プログラム・メモリ210を主記憶と
し、プログラム実行ユニツト220を中央処理装
置とする計算機と見なすことができる。従つて、
コントロール・プロセツサ・ユニツト200での
プログラムの実行は、通常、その内部で閉じた形
で行なわれ、新しくプログラムが必要になつた場
合やプログラムの実行結果をグローバルメモリ・
ユニツト100に格納する必要が生じた場合など
に限つて、グローバル・メモリ・ユニツト100
とコントロール・プロセツサ・ユニツト200と
の間でデータ転送が行なわれる。このことによ
り、グローバル・メモリ・ユニツト100への定
常的なデータ・アクセスをなくし、他の機能ユニ
ツトがアクセスする機会を増やしている。
ほとんど全ての制御を、コントロール・プロセツ
サ・ユニツト200が、その内部に持つローカ
ル・プログラム・メモリ210に格納されている
プログラムを、同じくその内部にあるプログラム
実行ユニツト220で実行することによつて行な
う。コントロール・プロセツサ・ユニツトは、ロ
ーカル・プログラム・メモリ210を主記憶と
し、プログラム実行ユニツト220を中央処理装
置とする計算機と見なすことができる。従つて、
コントロール・プロセツサ・ユニツト200での
プログラムの実行は、通常、その内部で閉じた形
で行なわれ、新しくプログラムが必要になつた場
合やプログラムの実行結果をグローバルメモリ・
ユニツト100に格納する必要が生じた場合など
に限つて、グローバル・メモリ・ユニツト100
とコントロール・プロセツサ・ユニツト200と
の間でデータ転送が行なわれる。このことによ
り、グローバル・メモリ・ユニツト100への定
常的なデータ・アクセスをなくし、他の機能ユニ
ツトがアクセスする機会を増やしている。
コントロール・プロセツサ・ユニツト200内
のプログラム実行ユニツト220は、ローカル・
プログラム・メモリ210とバンドル40によつ
て接続され、これを介して命令のフエツチ・デー
タの読み出し、およびデータの書き込みが行なわ
れる。プログラム実行ユニツト220は、本デー
タ処理装置に機械命令として定義されているマク
ロ命令を逐次実行するもので、マイクロプログラ
ムによつて、マクロ命令の読み出し、解読、デー
タの読み出し、実行、実行結果の書き込み等が制
御される。
のプログラム実行ユニツト220は、ローカル・
プログラム・メモリ210とバンドル40によつ
て接続され、これを介して命令のフエツチ・デー
タの読み出し、およびデータの書き込みが行なわ
れる。プログラム実行ユニツト220は、本デー
タ処理装置に機械命令として定義されているマク
ロ命令を逐次実行するもので、マイクロプログラ
ムによつて、マクロ命令の読み出し、解読、デー
タの読み出し、実行、実行結果の書き込み等が制
御される。
グローバル・メモリ・ユニツト100に記憶さ
れている大量のアレイ・データを処理するのは、
メモリ・バンドル10に接続されたアレイ・プロ
セツサ・ユニツト300で、これは、ローカル・
データ・メモリ310とアレイ演算実行ユニツト
320とから構成される。処理するアレイ・デー
タは、まず、グローバル・メモリ・ユニツト10
0よりローカル・データ・メモリ310に転送さ
れ、この後、アレイ演算実行ユニツト320にロ
ーカル・データ・メモリ310から取り出された
データが供給され、処理された後、結果をローカ
ル・データ・メモリ310に返す。ローカル・デ
ータ・メモリ310とアレイ演算実行ユニツト3
20との間で、バンドル50を介してデータの授
受を行ないながら、必要な回数だけ、この処理サ
イクルを繰り返す。最終的な結果がローカル・デ
ータ・メモリ310に格納された後、これよりグ
ローバル・データ・メモリ100に転送される。
れている大量のアレイ・データを処理するのは、
メモリ・バンドル10に接続されたアレイ・プロ
セツサ・ユニツト300で、これは、ローカル・
データ・メモリ310とアレイ演算実行ユニツト
320とから構成される。処理するアレイ・デー
タは、まず、グローバル・メモリ・ユニツト10
0よりローカル・データ・メモリ310に転送さ
れ、この後、アレイ演算実行ユニツト320にロ
ーカル・データ・メモリ310から取り出された
データが供給され、処理された後、結果をローカ
ル・データ・メモリ310に返す。ローカル・デ
ータ・メモリ310とアレイ演算実行ユニツト3
20との間で、バンドル50を介してデータの授
受を行ないながら、必要な回数だけ、この処理サ
イクルを繰り返す。最終的な結果がローカル・デ
ータ・メモリ310に格納された後、これよりグ
ローバル・データ・メモリ100に転送される。
機能ユニツト400は外部インターフエース・
ユニツトで、これと入出力バンドル30を介して
接続される例えばデイスプレイ装置および実時間
信号入力装置等の入出力装置500a,500b
とグローバル・メモリ・ユニツト100との間で
のデータ転送を制御する。
ユニツトで、これと入出力バンドル30を介して
接続される例えばデイスプレイ装置および実時間
信号入力装置等の入出力装置500a,500b
とグローバル・メモリ・ユニツト100との間で
のデータ転送を制御する。
コントロール・プロセツサ・ユニツト200
は、データ処理装置全体の制御を行なうために、
制御バンドル20を介して、アレイ・プロセツ
サ・ユニツト300、グローバル・メモリ・ユニ
ツト100、外部インターフエース・ユニツト4
00に対し制御データを送出したり、あるいはこ
れらの機能ユニツトの状態に関するデータを読み
込んだりする。アレイ・プロセツサ・ユニツト3
00に対するアレイ演算の制御あるいは外部イン
ターフエース・ユニツト400に対する入出力デ
ータの転送制御はこの制御バンドル20を用いて
行なわれる。
は、データ処理装置全体の制御を行なうために、
制御バンドル20を介して、アレイ・プロセツ
サ・ユニツト300、グローバル・メモリ・ユニ
ツト100、外部インターフエース・ユニツト4
00に対し制御データを送出したり、あるいはこ
れらの機能ユニツトの状態に関するデータを読み
込んだりする。アレイ・プロセツサ・ユニツト3
00に対するアレイ演算の制御あるいは外部イン
ターフエース・ユニツト400に対する入出力デ
ータの転送制御はこの制御バンドル20を用いて
行なわれる。
次に、アレイ演算実行ユニツト320の構成を
第2図に示す。図中、330,331a〜331
c,332a〜332f,333a〜333g,
334a〜334d,335,336a〜336
bは演算器、340,341,342はデータ・
バンドルを示す。
第2図に示す。図中、330,331a〜331
c,332a〜332f,333a〜333g,
334a〜334d,335,336a〜336
bは演算器、340,341,342はデータ・
バンドルを示す。
演算器は、コントロール・プロセツサ・ユニツ
ト・インターフエース330,ローカル・デー
タ・メモリ・入力インターフエース331a〜3
31c,算術論理演算器332a〜332f、遅
延器333a〜333g、乗算器334a〜33
4d、シフタ335,ローカル・データ・メモ
リ・出力インターフエース336a,336dか
ら成り、これらの演算器の入出力はそれぞれ第2
図に示すようにデータ・バンドルに接続されてい
る。
ト・インターフエース330,ローカル・デー
タ・メモリ・入力インターフエース331a〜3
31c,算術論理演算器332a〜332f、遅
延器333a〜333g、乗算器334a〜33
4d、シフタ335,ローカル・データ・メモ
リ・出力インターフエース336a,336dか
ら成り、これらの演算器の入出力はそれぞれ第2
図に示すようにデータ・バンドルに接続されてい
る。
通常、ローカル・データ・メモリ310から読
み出されるデータを、ローカル・データ・メモ
リ・入力インターフエース331a〜331cを
介して各種の演算器に送られ、演算結果はローカ
ル・データ・メモリ・出力インターフエース33
6a〜336bを介してロール・データ・メモリ
310に格納される。データ・バンドル340,
341,342は複数のデータ・バスから成つて
いるため、演算器間のデータ転送は複数同時に行
える。
み出されるデータを、ローカル・データ・メモ
リ・入力インターフエース331a〜331cを
介して各種の演算器に送られ、演算結果はローカ
ル・データ・メモリ・出力インターフエース33
6a〜336bを介してロール・データ・メモリ
310に格納される。データ・バンドル340,
341,342は複数のデータ・バスから成つて
いるため、演算器間のデータ転送は複数同時に行
える。
ローカル・データ・メモリ・入力インターフエ
ース331a〜331cを介して入力されたデー
タに対してどのような演算が行なわれるかは各演
算器の入力データ選択および各データ・バンドル
のデータ選択に依存するもので、アレイ演算の種
類に応じて任意に決定できるようになつている。
ース331a〜331cを介して入力されたデー
タに対してどのような演算が行なわれるかは各演
算器の入力データ選択および各データ・バンドル
のデータ選択に依存するもので、アレイ演算の種
類に応じて任意に決定できるようになつている。
各演算器はそれぞれ入力データ選択回路に接続
される演算回路、演算回路の結果を保持するレジ
スタおよびレジスタに保持されたデータをデー
タ・バンドルに出力する選択回路から構成され
る。
される演算回路、演算回路の結果を保持するレジ
スタおよびレジスタに保持されたデータをデー
タ・バンドルに出力する選択回路から構成され
る。
演算回路の一例として、第2図に示す算術論理
演算器332aの構成を第3図に示す。図中34
0a〜340dはデータ・バンドル340を構成
するデータ・バス、350a,350bは入力デ
ータ選択回路、351は算術論理演算回路、35
2は演算結果を保持するレジスタ、353は出力
データ選択回路、341a,341bはデータ・
バンドル341の一部をなすデータ・バスであ
る。
演算器332aの構成を第3図に示す。図中34
0a〜340dはデータ・バンドル340を構成
するデータ・バス、350a,350bは入力デ
ータ選択回路、351は算術論理演算回路、35
2は演算結果を保持するレジスタ、353は出力
データ選択回路、341a,341bはデータ・
バンドル341の一部をなすデータ・バスであ
る。
1つの演算器と他の演算器とがデータ・バスで
接続されているとき、演算器のレジスタに保持さ
れたデータが他の演算器の入力となり、演算回路
を通つて結果がレジスタに保持されるようなパス
ができる。第2図に示されたアレイ演算実行ユニ
ツトは、このようなレジスタからレジスタまでの
パスをデータが1サイクルで通るように考慮され
ている。即ち、アレイ演算実行ユニツト320で
は、1サイクル毎に1つの演算が演算器で行なわ
れる。全ての演算器のレジスタは同期して動作す
るようになつており、1サイクルごとにローカ
ル・データ・メモリ・入力インターフエース33
1a〜331cからデータが入力されれば、1サ
イクルごとにローカル・データ・メモリ・出力イ
ンターフエース336a〜336bから演算結果
が出力される。従つて、演算のパイプライン処理
が可能となる。
接続されているとき、演算器のレジスタに保持さ
れたデータが他の演算器の入力となり、演算回路
を通つて結果がレジスタに保持されるようなパス
ができる。第2図に示されたアレイ演算実行ユニ
ツトは、このようなレジスタからレジスタまでの
パスをデータが1サイクルで通るように考慮され
ている。即ち、アレイ演算実行ユニツト320で
は、1サイクル毎に1つの演算が演算器で行なわ
れる。全ての演算器のレジスタは同期して動作す
るようになつており、1サイクルごとにローカ
ル・データ・メモリ・入力インターフエース33
1a〜331cからデータが入力されれば、1サ
イクルごとにローカル・データ・メモリ・出力イ
ンターフエース336a〜336bから演算結果
が出力される。従つて、演算のパイプライン処理
が可能となる。
演算のパイプライン処理の例として、第4図に
示すFFT(高速フーリエ変換)においてよく用い
られるバタフライ演算を考える。第4図に示すバ
タフライ演算は、次の式を図式化したものであ
る。
示すFFT(高速フーリエ変換)においてよく用い
られるバタフライ演算を考える。第4図に示すバ
タフライ演算は、次の式を図式化したものであ
る。
P′=P+Q・W
Q′=P−Q・W (1)
ここで、Wは回転因子を示し、P,Q,W,
P′,Q′は全て複素数(実数部および虚数部はそれ
ぞれ整数)である。
P′,Q′は全て複素数(実数部および虚数部はそれ
ぞれ整数)である。
バタフライ演算を行なうために、アレイ演算実
行ユニツト320を構成した様子を第5図に示
す。図中、331a〜331c,332a〜33
2f,333a,333c〜333d,334a
〜334d,336a,336bは第2図に示し
たものと同じ演算器を示し、340a〜340d
はデータ・バンドル340のデータ・バス、34
1a〜341iはデータ・バンドル341のデー
タ・バス、342a〜342cはデータ・バンド
ル342のデータ・バスを示す。
行ユニツト320を構成した様子を第5図に示
す。図中、331a〜331c,332a〜33
2f,333a,333c〜333d,334a
〜334d,336a,336bは第2図に示し
たものと同じ演算器を示し、340a〜340d
はデータ・バンドル340のデータ・バス、34
1a〜341iはデータ・バンドル341のデー
タ・バス、342a〜342cはデータ・バンド
ル342のデータ・バスを示す。
第5図で示されているバタフライ演算は、式(1)
とは少し異なり、データ長が短かいために生じる
可能性のあるオーバーフローを避けるため、式(2)
に示すような演算となつている。
とは少し異なり、データ長が短かいために生じる
可能性のあるオーバーフローを避けるため、式(2)
に示すような演算となつている。
ここで、第5図の構成を説明するため、以下の
ことを仮定する。
ことを仮定する。
データ長:ワードを2nビツトとする。
実数データ:nビツト(半ワード)又は2n
ビツト(1ワード) ただし、「実数」とは「複素数」に対する言葉
で、実際には符号付きの整数。
ビツト(1ワード) ただし、「実数」とは「複素数」に対する言葉
で、実際には符号付きの整数。
複素数データ:実数部nビツト(半ワード)、
虚数部nビツト(半ワード) 複素数X=Re(X)+jIm(X)に対し、実数部
Re(X)も虚数部Im(X)もともにnビツト
(半ワード)の符号付き整数で表わされ、1ワ
ードに、Re(X)とIm(X)がパツクされてお
り、この1ワードで1つの複素数を表わすもの
とする。
虚数部nビツト(半ワード) 複素数X=Re(X)+jIm(X)に対し、実数部
Re(X)も虚数部Im(X)もともにnビツト
(半ワード)の符号付き整数で表わされ、1ワ
ードに、Re(X)とIm(X)がパツクされてお
り、この1ワードで1つの複素数を表わすもの
とする。
演算器のデータ幅:nビツト(半ワード)×
2又は2nビツト(1ワード)×1 乗算器を除く全ての演算器は、全ワード・モー
ドと半ワード・モードがあり、全ワード・モー
ドにおいては、2nビツト(1ワード)のデー
タ幅で演算を行ない、半ワード・モードでは、
2nビツトの1つの演算器が2つのnビツトの
演算器に分割され、各々独立に演算できるもの
とする。ただし、乗算器はモードの区別なくn
ビツトのオペランドの乗算を行ない、結果を
2nビツトで表わすものとする。
2又は2nビツト(1ワード)×1 乗算器を除く全ての演算器は、全ワード・モー
ドと半ワード・モードがあり、全ワード・モー
ドにおいては、2nビツト(1ワード)のデー
タ幅で演算を行ない、半ワード・モードでは、
2nビツトの1つの演算器が2つのnビツトの
演算器に分割され、各々独立に演算できるもの
とする。ただし、乗算器はモードの区別なくn
ビツトのオペランドの乗算を行ない、結果を
2nビツトで表わすものとする。
データ・バス:nビツト(半ワード)×2
1つのデータ・バスは2nビツトから成るが、
演算器の出力レジスタからデータ・バスへのデ
ータ出力の選択はnビツト単位で可能とする。
演算器の出力レジスタからデータ・バスへのデ
ータ出力の選択はnビツト単位で可能とする。
以上のことを仮定して、第5図に示される各演
算器における演算を以下に示す。ただし、<F>
は全ワード・モードでの演算を示し、<H>は半
ワード・モードでの演算を示す。
算器における演算を以下に示す。ただし、<F>
は全ワード・モードでの演算を示し、<H>は半
ワード・モードでの演算を示す。
−ローカル・データ・メモリ・入力インターフ
エ−ス331a <H> データP=Re(P)+jIm(P)を入力する。
エ−ス331a <H> データP=Re(P)+jIm(P)を入力する。
−ローカル・データ・メモリ・入力インターフエ
ース331b <H> データQ=Re(Q)+jIm(Q)を入力する。
ース331b <H> データQ=Re(Q)+jIm(Q)を入力する。
−ローカル・データ・メモリ・入力インターフエ
ース331c <H> データW=Re(W)+jIm(W)を入力する。
ース331c <H> データW=Re(W)+jIm(W)を入力する。
−算術論理演算器332a <H>
X=1/2Re(P)+j1/2Im(P)
−算術論理演算器332b
Y=1/2Re(Q)+J1/2Im(Q)
−遅延器333a <H>
Z=W=Re(W)+jIm(W)
−乗算器334a
Drr=Re(Y)×Re(Z)
−乗算器334b
Dri=Re(Y)×Im(Z)
−乗算器334c
Dir=Im(Y)×Re(Z)
−乗算器334d
Dii=−Im(Y)×Im(Z)
−遅延器333C <H>
C=Z=Re(Z)+jIm(Z)
−算術論理演算器332c <F>
Er=Drr+Dii
−算術論理演算器332d <F>
Ei=Dri+Dir
−遅延器333d <H>
B=C=Re(C)+jIm(C)
−算術論理演算器332e <H>
P′={Re(B)+Er/2n}
+j{Im(B)+Ei/2n}
−算術論理演算器332f <H>
Q′={Re(B)−Er/2n}
+j{Im(B)−Ei/2n}
以上のようなアレイ演算実行ユニツトは、演算
の精度をあまり要求しない整数演算で充分な応用
に向いており、演算器の接続を動的に変更するこ
とにより応用に合つた柔軟な構成をとることがで
きる。
の精度をあまり要求しない整数演算で充分な応用
に向いており、演算器の接続を動的に変更するこ
とにより応用に合つた柔軟な構成をとることがで
きる。
第2図に示されたアレイ・プロセツサ・ユニツ
ト300内のアレイ演算実行ユニツト320の構
成と機能の制御は、本発明の核心をなすものであ
り、これを以下に述べる。
ト300内のアレイ演算実行ユニツト320の構
成と機能の制御は、本発明の核心をなすものであ
り、これを以下に述べる。
第1図において、アレイ・プロセツサ・ユニツ
ト300は、制御バンドル20を介してコントロ
ール・プロセツサ・ユニツト200の制御を受け
る。制御バンドル20は、第6図に示されるよう
に、コントロール・プロセツサ・ユニツト200
内のプログラム実行ユニツト220内のコントロ
ール・コマンド・レジスタ221およびコントロ
ール・データ・レジスタ222に接続されたコン
トロール・コマンド・バス21とコントロール・
データ・バス22から構成される。
ト300は、制御バンドル20を介してコントロ
ール・プロセツサ・ユニツト200の制御を受け
る。制御バンドル20は、第6図に示されるよう
に、コントロール・プロセツサ・ユニツト200
内のプログラム実行ユニツト220内のコントロ
ール・コマンド・レジスタ221およびコントロ
ール・データ・レジスタ222に接続されたコン
トロール・コマンド・バス21とコントロール・
データ・バス22から構成される。
コントロール・コマンド・バス21は、プログ
ラム実行ユニツト220が他のユニツトを制御す
る際に、ユニツトを識別するためのユニツト番号
と何をするかを示すコマンドおよびデータを送る
ためのもので、一方、コントロール・データ・バ
ス22は、プログラム実行ユニツト220から他
のユニツトへ、あるいはその逆の方向へデータ転
送を行なうためのものである。
ラム実行ユニツト220が他のユニツトを制御す
る際に、ユニツトを識別するためのユニツト番号
と何をするかを示すコマンドおよびデータを送る
ためのもので、一方、コントロール・データ・バ
ス22は、プログラム実行ユニツト220から他
のユニツトへ、あるいはその逆の方向へデータ転
送を行なうためのものである。
コントロール・コマンド・レジスタ221およ
びコントロール・データ・レジスタ222に値を
セツトするのは、プログラム実行ユニツト220
で実行されるマイクロ命令であり、また、コマン
ドおよびデータ等の送出およびデータの受け取り
の制御もマイクロ命令が行なう。
びコントロール・データ・レジスタ222に値を
セツトするのは、プログラム実行ユニツト220
で実行されるマイクロ命令であり、また、コマン
ドおよびデータ等の送出およびデータの受け取り
の制御もマイクロ命令が行なう。
以上のような制御バンドル20は、アレイ演算
実行ユニツト320において、1つの演算器に対
して、入力データの選択と機能を制御する制御モ
ジユール、あるいは、1つのデータ・バスへの入
力データを選択するために演算器の出力を制御す
る制御モジユールに接続されている。これを第7
図に示す。
実行ユニツト320において、1つの演算器に対
して、入力データの選択と機能を制御する制御モ
ジユール、あるいは、1つのデータ・バスへの入
力データを選択するために演算器の出力を制御す
る制御モジユールに接続されている。これを第7
図に示す。
第7図aにおいて、360a,360b,36
0cは制御モジユールを示し、370a,370
b,370cは演算器又はデータ・バスを示す。
また、第7図bには、制御モジユール360が制
御データ・メモリ361、データ選択回路36
2、および制御レジスタ363から構成され、制
御レジスタ363から制御信号が演算器又はデー
タ・メモリ370に送られることが示されてい
る。
0cは制御モジユールを示し、370a,370
b,370cは演算器又はデータ・バスを示す。
また、第7図bには、制御モジユール360が制
御データ・メモリ361、データ選択回路36
2、および制御レジスタ363から構成され、制
御レジスタ363から制御信号が演算器又はデー
タ・メモリ370に送られることが示されてい
る。
第7図bにおいて、演算器の入力データ選択お
よび機能の制御あるいはデータ・バスへの演算器
出力の入力選択制御を行なうため制御データが制
御レジスタ363に保持されており、この制御デ
ータは、通常、種々の制御データを保持している
制御データ・メモリ361から読み出される。制
御データ・メモリ361のアドレスは制御バンド
ル20のコントロール・コマンド・バス21から
与えられる。また、コントロール・データ・バス
22からのデータを直接制御レジスタ363にセ
ツトできるようにデータ選択回路362が設けら
れている。
よび機能の制御あるいはデータ・バスへの演算器
出力の入力選択制御を行なうため制御データが制
御レジスタ363に保持されており、この制御デ
ータは、通常、種々の制御データを保持している
制御データ・メモリ361から読み出される。制
御データ・メモリ361のアドレスは制御バンド
ル20のコントロール・コマンド・バス21から
与えられる。また、コントロール・データ・バス
22からのデータを直接制御レジスタ363にセ
ツトできるようにデータ選択回路362が設けら
れている。
以上のような制御モジユールを設けることによ
り、アレイ演算実行ユニツトで行なわれる演算の
うち、頻繁に行なわれる演算に対する制御データ
をあらかじめ制御データ・メモリ361に格納し
ておけば、制御バンドル20のコントロール・コ
マンド・バス21を介してアドレスを与えるだけ
で、このアドレスに記憶されている制御データが
読み出されて制御レジスタにセツトされる。ま
た、制御データ・メモリ361に格納されていな
い制御データがあれば、制御バンドル20のコン
トロール・データ・バス22を用いて直接制御レ
ジスタ363に制御データを直接セツトすること
が可能である。
り、アレイ演算実行ユニツトで行なわれる演算の
うち、頻繁に行なわれる演算に対する制御データ
をあらかじめ制御データ・メモリ361に格納し
ておけば、制御バンドル20のコントロール・コ
マンド・バス21を介してアドレスを与えるだけ
で、このアドレスに記憶されている制御データが
読み出されて制御レジスタにセツトされる。ま
た、制御データ・メモリ361に格納されていな
い制御データがあれば、制御バンドル20のコン
トロール・データ・バス22を用いて直接制御レ
ジスタ363に制御データを直接セツトすること
が可能である。
第8図に、第7図に示された制御モジユールを
設けたことにより、コントロール・コマンド・バ
スに1つのアドレスを与えれば、これに応じて、
全ての制御モジユール内の制御データ・メモリに
格納されている制御データが同時に読み出されそ
れぞれの制御レジスタにセツトされることを示
す。図中、361a,361b,361cはそれ
ぞれ異なつた制御モジユールの制御データ・メモ
リを示し、363a,363b,363cはそれ
ぞれの制御レジスタを示す。
設けたことにより、コントロール・コマンド・バ
スに1つのアドレスを与えれば、これに応じて、
全ての制御モジユール内の制御データ・メモリに
格納されている制御データが同時に読み出されそ
れぞれの制御レジスタにセツトされることを示
す。図中、361a,361b,361cはそれ
ぞれ異なつた制御モジユールの制御データ・メモ
リを示し、363a,363b,363cはそれ
ぞれの制御レジスタを示す。
第8図においては、コントロール・コマンド・
バス21にFFT制御データ・アドレスが与えら
れると、全ての制御データ・メモリの同一アドレ
スに格納されているFFT制御データが読み出さ
れて制御レジスタにセツトされることを示してい
る。
バス21にFFT制御データ・アドレスが与えら
れると、全ての制御データ・メモリの同一アドレ
スに格納されているFFT制御データが読み出さ
れて制御レジスタにセツトされることを示してい
る。
このような機能により、多くの演算器に対する
多くの制御データを制御レジスタにセツトするの
に要する時間を大幅に消減することが可能とな
る。これはすなわち、アレイ演算実行ユニツト内
で各種のアレイ演算を行なうのに適した構成を動
的につくるためのオーバーヘツドを減少すること
につながるものである。
多くの制御データを制御レジスタにセツトするの
に要する時間を大幅に消減することが可能とな
る。これはすなわち、アレイ演算実行ユニツト内
で各種のアレイ演算を行なうのに適した構成を動
的につくるためのオーバーヘツドを減少すること
につながるものである。
次に、以上述べたようなアレイ演算実行ユニツ
ト320における演算器およびこれを制御するた
めの制御モジユールの構成を効果的に用いること
により、プログラムの実行を高速に行なえる例に
ついて述べる。
ト320における演算器およびこれを制御するた
めの制御モジユールの構成を効果的に用いること
により、プログラムの実行を高速に行なえる例に
ついて述べる。
第9図に、FFT(高速フーリエ変換)を行なう
プログラムの一部を示す。プログラムの意味は以
下の通りである。
プログラムの一部を示す。プログラムの意味は以
下の通りである。
第100行:レジスタR3をFFTのループ・カウンタ
に用いる。第8図の例ではループを4回行な
うようにR3に−4をロードする。
に用いる。第8図の例ではループを4回行な
うようにR3に−4をロードする。
第101行:FFTのループの先頭で、レジスタR0
に、グローバル・メモリ・ユニツトに格納さ
れているデータの先頭アドレスをSAからロ
ードする。
に、グローバル・メモリ・ユニツトに格納さ
れているデータの先頭アドレスをSAからロ
ードする。
第102行:レジスタR1にデータ・セツト数をDSN
からロードする。
からロードする。
第103行:レジスタR2にFFTのサンプル点数32を
ロードする。
ロードする。
第104行:レジスタR0,R1,R2にそれぞれ格納さ
れた、データの先頭アドレス・データ・セツ
ト数、およびサンプル点数を用いてFFTを
行なう。
れた、データの先頭アドレス・データ・セツ
ト数、およびサンプル点数を用いてFFTを
行なう。
第105行:レジスタR4にデータ・セツト数をロー
ドする。
ドする。
第106行:レジスタR4の内容とレジスタR2の内容
を掛け合わせて、結果をレジスタR4(積の上
位部分)とR5(積の下位部分)に入れる。こ
れによつて、FFTを行なつたデータ数を計
算する。
を掛け合わせて、結果をレジスタR4(積の上
位部分)とR5(積の下位部分)に入れる。こ
れによつて、FFTを行なつたデータ数を計
算する。
第107行:第106行で計算した積の下位部分(レジ
スタR5)をデータの先頭アドレス(レジス
タR0)に加える。これによつて、次のFFT
のためのデータの先頭アドレスを生成する。
スタR5)をデータの先頭アドレス(レジス
タR0)に加える。これによつて、次のFFT
のためのデータの先頭アドレスを生成する。
第108行:第107行で計算した次のFFTのための
データの先頭アドレスをSAに格納する。
データの先頭アドレスをSAに格納する。
第109行:ループカウンタであるレジスタR3に1
加える。
加える。
第110行:第109行での演算結果が0であればラベ
ルNEXTで示される第113行へ分岐し、そう
でなければ次の第111行へ移る。
ルNEXTで示される第113行へ分岐し、そう
でなければ次の第111行へ移る。
第111行:第104行で実行させたFFTが終了した
かどうかをチエツクするもので、終了してい
れば第101行のLOOPへ分岐し、そうでなけ
れば次の行へ移る。
かどうかをチエツクするもので、終了してい
れば第101行のLOOPへ分岐し、そうでなけ
れば次の行へ移る。
第112行:無条件分岐で、ラベルTSTLで示され
る第111行へ分岐する。
る第111行へ分岐する。
第9図で示されたプログラムでは、第104行の
CMF命令(コール・マクロ機能命令)でアレ
イ・プロセツサ・ユニツトにおけるFFT演算が
起動される。ロード命令LD、LDI、加算命令
ADD、ADDI、乗算命令MPY、ストマ命令ST、
条件分岐命令BCD、テスト命令TSTはコントロ
ール・プロセツサ・ユニツト内でマイクロプログ
ラムにより処理される。CMF命令は、コントロ
ール・プロセツサ・ユニツト内のマイクロプログ
ラムが、アレイ演算実行ユニツト内における演算
器間の接続制御および演算器の演算選択制御など
CMF命令で指定されたアレイ演算をアレイ・プ
ロセツサ・ユニツトで始めるのに必要な制御を行
ない、この後演算を開始するようにアレイ・プロ
セツサ・ユニツトを起動してその処理を終了す
る。CMF命令に続く命令は、アレイ・プロセツ
サ・ユニツト内でのアレイ演算が終了する前に処
理を行なうことができ、コントロール・プロセツ
サ・ユニツトとアレイ・プロセツサ・ユニツトと
の並列処理が可能となる。CMF命令で起動され
たアレイ・プロセツサ・ユニツトにおけるアレイ
演算が終了したか否かを検査するために、第9図
のプログラムにおける第111行のTST命令(テス
ト命令)が設けられている。
CMF命令(コール・マクロ機能命令)でアレ
イ・プロセツサ・ユニツトにおけるFFT演算が
起動される。ロード命令LD、LDI、加算命令
ADD、ADDI、乗算命令MPY、ストマ命令ST、
条件分岐命令BCD、テスト命令TSTはコントロ
ール・プロセツサ・ユニツト内でマイクロプログ
ラムにより処理される。CMF命令は、コントロ
ール・プロセツサ・ユニツト内のマイクロプログ
ラムが、アレイ演算実行ユニツト内における演算
器間の接続制御および演算器の演算選択制御など
CMF命令で指定されたアレイ演算をアレイ・プ
ロセツサ・ユニツトで始めるのに必要な制御を行
ない、この後演算を開始するようにアレイ・プロ
セツサ・ユニツトを起動してその処理を終了す
る。CMF命令に続く命令は、アレイ・プロセツ
サ・ユニツト内でのアレイ演算が終了する前に処
理を行なうことができ、コントロール・プロセツ
サ・ユニツトとアレイ・プロセツサ・ユニツトと
の並列処理が可能となる。CMF命令で起動され
たアレイ・プロセツサ・ユニツトにおけるアレイ
演算が終了したか否かを検査するために、第9図
のプログラムにおける第111行のTST命令(テス
ト命令)が設けられている。
以上のように、CMF命令というアレイ演算を
制御する専用の機械命令を設けることにより、並
列処理を可能とし、処理速度の向上を図ることが
できる。
制御する専用の機械命令を設けることにより、並
列処理を可能とし、処理速度の向上を図ることが
できる。
なお、以上は特定の構成をもつアレイ演算用デ
ータ処理装置について説明したが、本発明はこれ
に限らず特許請求の範囲に明示されている項目を
効果的に用いたアレイ演算用データ処理装置であ
ればどのようなものでもよい。
ータ処理装置について説明したが、本発明はこれ
に限らず特許請求の範囲に明示されている項目を
効果的に用いたアレイ演算用データ処理装置であ
ればどのようなものでもよい。
以上のように、本発明に係るアレイ演算用デー
タ処理装置では、アレイ演算実行ユニツト内の多
数の演算器をアレイ演算に合わせて動的に構成す
ることができ、かつ、制御を各演算器に対応させ
て分散させたため処理内容の変更に伴うオーバー
ヘツドを減少させることができ、従つて、精度は
それほど要求しないが高速な処理を要求するアレ
イ演算を主体とする科学技術計算の応用に対し処
理の高速性と柔軟性を提供できる効果を有する。
タ処理装置では、アレイ演算実行ユニツト内の多
数の演算器をアレイ演算に合わせて動的に構成す
ることができ、かつ、制御を各演算器に対応させ
て分散させたため処理内容の変更に伴うオーバー
ヘツドを減少させることができ、従つて、精度は
それほど要求しないが高速な処理を要求するアレ
イ演算を主体とする科学技術計算の応用に対し処
理の高速性と柔軟性を提供できる効果を有する。
図はいずれもこの発明の実施例を示すもので、
第1図…アレイ演算用データ処理装置の構成を示
す図、第2図…アレイ演算実行ユニツトの構成を
示す図、第3図…算術論理演算器を示す図、第4
図…バタフライ演算を示す図、第5図…アレイ演
算実行ユニツト内の演算器の接続を示す図、第6
図…制御バスのインターフエースを示す図、第7
図…制御モジユールの構成を示す図、第8図…制
御データ・メモリの読み出しを示す図、第9図…
プログラム例を示す図。 図中、10,20…バスの束(バンドル)、2
1,22…バス、30,40,50…バンドル、
100…グローバル・メモリ・ユニツト、200
…コントロール・プロセツサ・ユニツト、210
…ローカル・プログラム・メモリ、220…プロ
グラム実行ユニツト、221,222…レジス
タ、300…アレイ・プロセツサ・ユニツト、3
10…ローカル・データ・メモリ、320…アレ
イ演算実行ユニツト、330,331a〜331
c,332a〜332f,333a〜333g,
334a〜334d,335,336a〜336
b…演算器、340…バンドル、340a〜34
0d…バス、341…バンドル、341a〜34
1i…バス、342…バンドル、342a〜34
2c…バス、350a〜350b…データ選択回
路、351…算術論理演算回路、352…レジス
タ、353…データ選択回路、360,360a
〜360c…制御モジユール、361,361a
〜361c…メモリ、362…データ選択回路、
363,363a〜363c…レジスタ、37
0,370a〜370c…演算器。なお図中、同
一あるいは相当部分には同一符号を付して示して
ある。
第1図…アレイ演算用データ処理装置の構成を示
す図、第2図…アレイ演算実行ユニツトの構成を
示す図、第3図…算術論理演算器を示す図、第4
図…バタフライ演算を示す図、第5図…アレイ演
算実行ユニツト内の演算器の接続を示す図、第6
図…制御バスのインターフエースを示す図、第7
図…制御モジユールの構成を示す図、第8図…制
御データ・メモリの読み出しを示す図、第9図…
プログラム例を示す図。 図中、10,20…バスの束(バンドル)、2
1,22…バス、30,40,50…バンドル、
100…グローバル・メモリ・ユニツト、200
…コントロール・プロセツサ・ユニツト、210
…ローカル・プログラム・メモリ、220…プロ
グラム実行ユニツト、221,222…レジス
タ、300…アレイ・プロセツサ・ユニツト、3
10…ローカル・データ・メモリ、320…アレ
イ演算実行ユニツト、330,331a〜331
c,332a〜332f,333a〜333g,
334a〜334d,335,336a〜336
b…演算器、340…バンドル、340a〜34
0d…バス、341…バンドル、341a〜34
1i…バス、342…バンドル、342a〜34
2c…バス、350a〜350b…データ選択回
路、351…算術論理演算回路、352…レジス
タ、353…データ選択回路、360,360a
〜360c…制御モジユール、361,361a
〜361c…メモリ、362…データ選択回路、
363,363a〜363c…レジスタ、37
0,370a〜370c…演算器。なお図中、同
一あるいは相当部分には同一符号を付して示して
ある。
Claims (1)
- 【特許請求の範囲】 1 大量のアレイ・データ、スカラ・データ、お
よびプログラムを記憶するためのグローバル・メ
モリ・ユニツトと、 前記グローバル・メモリ・ユニツトにデータ・
バスを介して接続され、実行プログラムおよびこ
れに関係したデータを記憶するためのローカル・
プログラム・メモリおよびプログラムを構成する
機械命令に対応したマイクロプログラムを記憶す
るためのマイクロプログラム・メモリを有し、前
記ローカル・プログラム・メモリより順次読み出
される機械命令に対応してマイクロプログラム・
メモリに記憶されたマイクロプログラムを実行す
る手段を有するコントロール・プロセツサ・ユニ
ツトと、 前記グローバル・メモリ・ユニツトにデータ・
バスを介して接続され、かつ、前記コントロー
ル・プロセツサ・ユニツトと制御バスを介して接
続され、アレイ演算に用いるアレイ・データを記
憶するためのローカル・データ・メモリを有し、
アレイ演算を行なうための算術論理演算器あるい
は乗算器等の複数の演算器を有し、前記ローカ
ル・データ・メモリと演算器とがデータ・バスに
より接続され、また、演算器と別の演算器との間
もデータ・バスにより接続され、前記コントロー
ル・プロセツサ・ユニツトで実行された少なくと
も1つのマイクロ命令によつて前記制御バスを介
して制御されるアレイ演算を実行する手段を有す
るアレイ・プロセツサ・ユニツトと、 制御装置を介してデイスプレイ装置および実時
間信号入力装置等の入出力装置およびホスト・プ
ロセツサとのインターフエース装置を接続でき、
前記グローバル・メモリ・ユニツトとデータ・バ
スを介して接続され、また、前記コントロール・
プロセツサ・ユニツトと制御バスを介して接続さ
れ、前記コントロール・プロセツサ・ユニツトで
実行された少なくとも1つのマイクロ命令によつ
てデータの転送制御が行なわれる外部インターフ
エース・ユニツトと、 を含むデータ処理装置において、 a 前記アレイ・プロセツサ・ユニツト内におい
て、1つ又は複数の演算器および1つ又は複数
のデータ・バスに対して各々専用の制御モジユ
ールを設け、 b 前記制御モジユールを、これに対応した演算
器あるいはデータ・バスを制御する制御データ
を少なくとも1つ記憶するための制御データ・
メモリとこの制御データ・メモリより読み出し
た制御データを保持するための制御レジスタと
から構成し、 c 前記制御モジユールの中で、演算器に対する
制御モジユールにおいて、制御レジスタに格納
された制御データにより、演算器の入力データ
を演算器の入力に接続されているデータ・バス
から取り込む手段と、演算器で行なわれる演算
等の選択ができるような手段を設け、 d 前記制御モジユールの中で、データ・バスに
対する制御モジユールにおいて、制御レジスタ
に格納された制御データにより、データ・バス
に接続されている演算器の出力のうちいずれの
出力を当該データ・バスに出すかを選択できる
ような手段を設け、 e 少なくとも1つの前記アレイ・プロセツサ・
ユニツトにおけるアレイ演算を制御するための
専用の機械命令を設け、 f 前記アレイ演算制御用機械命令が前記コント
ロール・プロセツサ・ユニツトで実行されたと
き、この機械命令に対応して実行されるマイク
ロ命令の少なくとも1つが、前記アレイ・プロ
セツサ・ユニツト内の1つ又は複数の制御モジ
ユールに対して同時に、アレイ演算の種類を示
すとともに当該制御モジユール内の制御デー
タ・メモリのアドレスをも示す1つのデータ
を、前記コントロールプロセツサ・ユニツトと
アレイ・プロセツサ・ユニツトとの間の制御バ
スを介して送出すると、当該制御モジユール内
の制御データ・メモリより制御データが読み出
され、制御レジスタに格納されるような手段を
有し、 g 前記f項のようにして、前記アレイ・プロセ
ツサ・ユニツト内の各演算器が行なうべき演算
と演算器とデータ・バスとの間の接続を全て決
定した後、前記コントロール・プロセツサ・ユ
ニツト内で実行されたマイクロ命令によりアレ
イ演算を始めることができ、また、アレイ演算
の終了が前記アレイ・プロセツサ・ユニツトで
検知されたとき、これを前記コントロール・プ
ロセツサ・ユニツトに前記制御バスを介して知
らせることができる手段 を有することを特徴とするアレイ演算用データ処
理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58006082A JPS59132070A (ja) | 1983-01-18 | 1983-01-18 | アレイ演算用デ−タ処理装置 |
US06/524,326 US4825359A (en) | 1983-01-18 | 1983-08-18 | Data processing system for array computation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58006082A JPS59132070A (ja) | 1983-01-18 | 1983-01-18 | アレイ演算用デ−タ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59132070A JPS59132070A (ja) | 1984-07-30 |
JPH036545B2 true JPH036545B2 (ja) | 1991-01-30 |
Family
ID=11628625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58006082A Granted JPS59132070A (ja) | 1983-01-18 | 1983-01-18 | アレイ演算用デ−タ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US4825359A (ja) |
JP (1) | JPS59132070A (ja) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729757A (en) * | 1985-05-20 | 1998-03-17 | Shekels; Howard D. | Super-computer system architectures using status memory to alter program |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US5333263A (en) * | 1987-09-25 | 1994-07-26 | Minolta Camera Kabushiki Kaisha | Digital image processing apparatus |
US4959776A (en) * | 1987-12-21 | 1990-09-25 | Raytheon Company | Method and apparatus for addressing a memory by array transformations |
FR2628553B1 (fr) * | 1988-03-08 | 1990-11-09 | Labo Electronique Physique | Systeme graphique video muni d'un curseur graphique |
GB2217058A (en) * | 1988-03-23 | 1989-10-18 | Benchmark Technologies | Processing integral transform operations |
US5003471A (en) * | 1988-09-01 | 1991-03-26 | Gibson Glenn A | Windowed programmable data transferring apparatus which uses a selective number of address offset registers and synchronizes memory access to buffer |
US5598545A (en) * | 1989-10-13 | 1997-01-28 | Texas Instruments Incorporated | Circuitry and method for performing two operating instructions during a single clock in a processing device |
EP0432359A3 (en) * | 1989-11-21 | 1993-03-17 | International Business Machines Corporation | Method and apparatus for performing memory protection operations in a parallel processor system |
JP3228927B2 (ja) * | 1990-09-20 | 2001-11-12 | 沖電気工業株式会社 | プロセッサエレメント、プロセッシングユニット、プロセッサ、及びその演算処理方法 |
JP2959104B2 (ja) * | 1990-10-31 | 1999-10-06 | 日本電気株式会社 | 信号処理プロセッサ |
US5828894A (en) * | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
US5734921A (en) * | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5630162A (en) * | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5963746A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
ATE180586T1 (de) * | 1990-11-13 | 1999-06-15 | Ibm | Paralleles assoziativprozessor-system |
US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
US5708836A (en) * | 1990-11-13 | 1998-01-13 | International Business Machines Corporation | SIMD/MIMD inter-processor communication |
US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
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 |
US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5963745A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5617577A (en) * | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
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 |
US5588152A (en) * | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5809292A (en) * | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5794059A (en) * | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
JP2770603B2 (ja) * | 1991-03-14 | 1998-07-02 | 三菱電機株式会社 | 並列計算機 |
US5594918A (en) * | 1991-05-13 | 1997-01-14 | International Business Machines Corporation | Parallel computer system providing multi-ported intelligent memory |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
US6298162B1 (en) | 1992-12-23 | 2001-10-02 | Lockheed Martin Corporation | Image compression/expansion using parallel decomposition/recomposition |
GB2370380B (en) | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
GB2397668B (en) * | 2003-01-27 | 2005-12-07 | Picochip Designs Ltd | Processor array |
US20050070265A1 (en) * | 2003-09-29 | 2005-03-31 | Nokia Corporation | Method, terminal device and system for remote initiation of network applications within mobile communication environment |
US20050071816A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus to autonomically count instruction execution for applications |
US7395527B2 (en) * | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
US20050071610A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus for debug support for individual instructions and memory locations |
US20050071611A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus for counting data accesses and instruction executions that exceed a threshold |
US20050071608A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus for selectively counting instructions and data accesses |
US20050071609A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus to autonomically take an exception on specified instructions |
US20050071821A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus to autonomically select instructions for selective counting |
US7937691B2 (en) * | 2003-09-30 | 2011-05-03 | International Business Machines Corporation | Method and apparatus for counting execution of specific instructions and accesses to specific data locations |
US7373637B2 (en) * | 2003-09-30 | 2008-05-13 | International Business Machines Corporation | Method and apparatus for counting instruction and memory location ranges |
US7421681B2 (en) * | 2003-10-09 | 2008-09-02 | International Business Machines Corporation | Method and system for autonomic monitoring of semaphore operation in an application |
US8381037B2 (en) * | 2003-10-09 | 2013-02-19 | International Business Machines Corporation | Method and system for autonomic execution path selection in an application |
US7415705B2 (en) * | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
US7895382B2 (en) * | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
US7197586B2 (en) * | 2004-01-14 | 2007-03-27 | International Business Machines Corporation | Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler |
US7392370B2 (en) | 2004-01-14 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics |
US7526757B2 (en) * | 2004-01-14 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program |
US7082486B2 (en) * | 2004-01-14 | 2006-07-25 | International Business Machines Corporation | Method and apparatus for counting interrupts by type |
US7421684B2 (en) | 2004-03-22 | 2008-09-02 | International Business Machines Corporation | Method and apparatus for autonomic test case feedback using hardware assistance for data coverage |
JP4594666B2 (ja) * | 2004-07-12 | 2010-12-08 | 富士通株式会社 | 再構成可能な演算装置 |
JP2007249843A (ja) * | 2006-03-17 | 2007-09-27 | Fujitsu Ltd | 再構成可能な演算装置 |
DE102007034684A1 (de) * | 2007-07-25 | 2009-01-29 | Siemens Ag | Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System |
GB2454865B (en) * | 2007-11-05 | 2012-06-13 | Picochip Designs Ltd | Power control |
GB2466661B (en) * | 2009-01-05 | 2014-11-26 | Intel Corp | Rake receiver |
GB2470037B (en) | 2009-05-07 | 2013-07-10 | Picochip Designs Ltd | Methods and devices for reducing interference in an uplink |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | Picochip Designs Ltd | A method and device in a communication network |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
GB2474071B (en) | 2009-10-05 | 2013-08-07 | Picochip Designs Ltd | Femtocell base station |
GB2482869B (en) | 2010-08-16 | 2013-11-06 | Picochip Designs Ltd | Femtocell access control |
GB2489919B (en) | 2011-04-05 | 2018-02-14 | Intel Corp | Filter |
GB2489716B (en) | 2011-04-05 | 2015-06-24 | Intel Corp | Multimode base system |
GB2491098B (en) | 2011-05-16 | 2015-05-20 | Intel Corp | Accessing a base station |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3296426A (en) * | 1963-07-05 | 1967-01-03 | Westinghouse Electric Corp | Computing device |
US3364472A (en) * | 1964-03-06 | 1968-01-16 | Westinghouse Electric Corp | Computation unit |
US3537074A (en) * | 1967-12-20 | 1970-10-27 | Burroughs Corp | Parallel operating array computer |
US3593351A (en) * | 1969-08-14 | 1971-07-20 | Benjamin A Dove | Patient transfer device |
US3815095A (en) * | 1972-08-29 | 1974-06-04 | Texas Instruments Inc | General-purpose array processor |
US3979728A (en) * | 1973-04-13 | 1976-09-07 | International Computers Limited | Array processors |
US3970993A (en) * | 1974-01-02 | 1976-07-20 | Hughes Aircraft Company | Cooperative-word linear array parallel processor |
US4065808A (en) * | 1975-01-25 | 1977-12-27 | U.S. Philips Corporation | Network computer system |
US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
US4199811A (en) * | 1977-09-02 | 1980-04-22 | Sperry Corporation | Microprogrammable computer utilizing concurrently operating processors |
US4541048A (en) * | 1978-10-06 | 1985-09-10 | Hughes Aircraft Company | Modular programmable signal processor |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4481580A (en) * | 1979-11-19 | 1984-11-06 | Sperry Corporation | Distributed data transfer control for parallel processor architectures |
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
US4393457A (en) * | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Method and apparatus for sequencing addresses of a fast Fourier transform array |
-
1983
- 1983-01-18 JP JP58006082A patent/JPS59132070A/ja active Granted
- 1983-08-18 US US06/524,326 patent/US4825359A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4825359A (en) | 1989-04-25 |
JPS59132070A (ja) | 1984-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH036545B2 (ja) | ||
US5075840A (en) | Tightly coupled multiprocessor instruction synchronization | |
US5513366A (en) | Method and system for dynamically reconfiguring a register file in a vector processor | |
US5758176A (en) | 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 | |
US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
JP2701179B2 (ja) | データ処理システム | |
US5680338A (en) | Method and system for vector processing utilizing selected vector elements | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US4149243A (en) | Distributed control architecture with post and wait logic | |
CA2041507C (en) | A high performance pipelined emulator | |
US5752071A (en) | Function coprocessor | |
US5203002A (en) | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle | |
US6269440B1 (en) | Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously | |
US4305124A (en) | Pipelined computer | |
US4225920A (en) | Operator independent template control architecture | |
Tucker et al. | Dynamic microprogramming: processor organization and programming | |
JPH02155037A (ja) | デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法 | |
US4837678A (en) | Instruction sequencer for parallel operation of functional units | |
US4853890A (en) | Vector processor | |
Requa et al. | The piecewise data flow architecture: Architectural concepts | |
EP0079370B1 (en) | Digital computer for executing instructions in three time-multiplexed portions | |
JPH0380336A (ja) | 二重オペレーティングシステム計算機の動作強化装置のmバイト命令ワードcpuの動作強化装置及びレジスタ指向型アーキテクチュアcpuの動作強化装置 | |
Aschenbrenner et al. | Intrinsic multiprocessing | |
JPH096614A (ja) | データ処理装置 | |
Hockney | Classification and evaluation of parallel computer systems |