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
Application number
JP58006082A
Other languages
English (en)
Other versions
JPS59132070A (ja
Inventor
Takahide Oogami
Nobuyuki Iijima
Teijiro Sakamoto
Toshuki Hirai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP58006082A priority Critical patent/JPS59132070A/ja
Priority to US06/524,326 priority patent/US4825359A/en
Publication of JPS59132070A publication Critical patent/JPS59132070A/ja
Publication of JPH036545B2 publication Critical patent/JPH036545B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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つの演算から他の
演算に処理が移るときには入出力のオーバーヘツ
ドが大きいという欠点もあつた。
さらに、上記Cの形式の内蔵アレイ・プロセツ
サでは、処理の柔軟性は汎用計算機の中央処理装
置を共有しているため充分にあるが、その反面、
処理性能は上記Bの形式のアレイ・プロセツサほ
どは改善されないという欠点があつた。
上記Dの形式のスーパーコンピユータでは、大
規模科学技術計算を指向しており、処理は非常に
高速に行なえる。一般に、スーパーコンピユータ
では取り扱えるデータ幅も広く精度良く計算が行
なえるようになつている。しかし、構成は大規模
であり、精度をそれほど要求しない応用に対して
は、高価過ぎるという欠点があつた。
以上のことより、前記A〜Dの形式のデータ処
理装置を次のような条件を要求する応用に対して
用いることは不適当である。
−科学技術計算、とくに、アレイ計算を主体とす
る。
−専用プロセツサとほゞ同等の高速な処理を行な
う。
−演算の精度はそれほど要求しない。
−プログラムにより処理内容を動的に変更でき
る。
−処理内容の変更に伴うオーバーヘツドが小さ
い。
〔発明の概要〕
本発明は、このような応用に対して、高速でか
つ柔軟性のあるアレイ演算用データ処理装置を提
供し、前述の従来のアレイ演算用データ処理装置
の欠点を補うためになされたもので、特許請求の
範囲に記載したように構成したことを特徴とする
ものである。
〔発明の実施例〕
第1図は、本発明に従うアレイ演算用データ処
理装置全体の概略を示すものである。図中、10
0,200,300,400,500は機能ユニ
ツトを示し、10,20,30は複数のバスの束
(以後、これをバンドルと呼ぶ)を示す。
第1図において、大量のデータ(アレイ・デー
タおよびスカラ・データ)およびプログラムは大
容量の記憶部を持つグローバル・メモリ・ユニツ
ト100に記憶され、実行しようとするプログラ
ムおよびこれに関係したデータはメモリ・バンド
ル10を介して、コントロール・プロセツサ・ユ
ニツト200内のローカル・プログラム・メモリ
210に転送される。
第1図に示されているデータ処理装置に関する
ほとんど全ての制御を、コントロール・プロセツ
サ・ユニツト200が、その内部に持つローカ
ル・プログラム・メモリ210に格納されている
プログラムを、同じくその内部にあるプログラム
実行ユニツト220で実行することによつて行な
う。コントロール・プロセツサ・ユニツトは、ロ
ーカル・プログラム・メモリ210を主記憶と
し、プログラム実行ユニツト220を中央処理装
置とする計算機と見なすことができる。従つて、
コントロール・プロセツサ・ユニツト200での
プログラムの実行は、通常、その内部で閉じた形
で行なわれ、新しくプログラムが必要になつた場
合やプログラムの実行結果をグローバルメモリ・
ユニツト100に格納する必要が生じた場合など
に限つて、グローバル・メモリ・ユニツト100
とコントロール・プロセツサ・ユニツト200と
の間でデータ転送が行なわれる。このことによ
り、グローバル・メモリ・ユニツト100への定
常的なデータ・アクセスをなくし、他の機能ユニ
ツトがアクセスする機会を増やしている。
コントロール・プロセツサ・ユニツト200内
のプログラム実行ユニツト220は、ローカル・
プログラム・メモリ210とバンドル40によつ
て接続され、これを介して命令のフエツチ・デー
タの読み出し、およびデータの書き込みが行なわ
れる。プログラム実行ユニツト220は、本デー
タ処理装置に機械命令として定義されているマク
ロ命令を逐次実行するもので、マイクロプログラ
ムによつて、マクロ命令の読み出し、解読、デー
タの読み出し、実行、実行結果の書き込み等が制
御される。
グローバル・メモリ・ユニツト100に記憶さ
れている大量のアレイ・データを処理するのは、
メモリ・バンドル10に接続されたアレイ・プロ
セツサ・ユニツト300で、これは、ローカル・
データ・メモリ310とアレイ演算実行ユニツト
320とから構成される。処理するアレイ・デー
タは、まず、グローバル・メモリ・ユニツト10
0よりローカル・データ・メモリ310に転送さ
れ、この後、アレイ演算実行ユニツト320にロ
ーカル・データ・メモリ310から取り出された
データが供給され、処理された後、結果をローカ
ル・データ・メモリ310に返す。ローカル・デ
ータ・メモリ310とアレイ演算実行ユニツト3
20との間で、バンドル50を介してデータの授
受を行ないながら、必要な回数だけ、この処理サ
イクルを繰り返す。最終的な結果がローカル・デ
ータ・メモリ310に格納された後、これよりグ
ローバル・データ・メモリ100に転送される。
機能ユニツト400は外部インターフエース・
ユニツトで、これと入出力バンドル30を介して
接続される例えばデイスプレイ装置および実時間
信号入力装置等の入出力装置500a,500b
とグローバル・メモリ・ユニツト100との間で
のデータ転送を制御する。
コントロール・プロセツサ・ユニツト200
は、データ処理装置全体の制御を行なうために、
制御バンドル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はデータ・
バンドルを示す。
演算器は、コントロール・プロセツサ・ユニツ
ト・インターフエース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を介して入力されたデー
タに対してどのような演算が行なわれるかは各演
算器の入力データ選択および各データ・バンドル
のデータ選択に依存するもので、アレイ演算の種
類に応じて任意に決定できるようになつている。
各演算器はそれぞれ入力データ選択回路に接続
される演算回路、演算回路の結果を保持するレジ
スタおよびレジスタに保持されたデータをデー
タ・バンドルに出力する選択回路から構成され
る。
演算回路の一例として、第2図に示す算術論理
演算器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から演算結果
が出力される。従つて、演算のパイプライン処理
が可能となる。
演算のパイプライン処理の例として、第4図に
示すFFT(高速フーリエ変換)においてよく用い
られるバタフライ演算を考える。第4図に示すバ
タフライ演算は、次の式を図式化したものであ
る。
P′=P+Q・W Q′=P−Q・W (1) ここで、Wは回転因子を示し、P,Q,W,
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のデータ・バスを示す。
第5図で示されているバタフライ演算は、式(1)
とは少し異なり、データ長が短かいために生じる
可能性のあるオーバーフローを避けるため、式(2)
に示すような演算となつている。
ここで、第5図の構成を説明するため、以下の
ことを仮定する。
データ長:ワードを2nビツトとする。
実数データ:nビツト(半ワード)又は2n
ビツト(1ワード) ただし、「実数」とは「複素数」に対する言葉
で、実際には符号付きの整数。
複素数データ:実数部nビツト(半ワード)、
虚数部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ビツトで表わすものとする。
データ・バス:nビツト(半ワード)×2 1つのデータ・バスは2nビツトから成るが、
演算器の出力レジスタからデータ・バスへのデ
ータ出力の選択はnビツト単位で可能とする。
以上のことを仮定して、第5図に示される各演
算器における演算を以下に示す。ただし、<F>
は全ワード・モードでの演算を示し、<H>は半
ワード・モードでの演算を示す。
−ローカル・データ・メモリ・入力インターフ
エ−ス331a <H> データP=Re(P)+jIm(P)を入力する。
−ローカル・データ・メモリ・入力インターフエ
ース331b <H> データQ=Re(Q)+jIm(Q)を入力する。
−ローカル・データ・メモリ・入力インターフエ
ース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の構
成と機能の制御は、本発明の核心をなすものであ
り、これを以下に述べる。
第1図において、アレイ・プロセツサ・ユニツ
ト300は、制御バンドル20を介してコントロ
ール・プロセツサ・ユニツト200の制御を受け
る。制御バンドル20は、第6図に示されるよう
に、コントロール・プロセツサ・ユニツト200
内のプログラム実行ユニツト220内のコントロ
ール・コマンド・レジスタ221およびコントロ
ール・データ・レジスタ222に接続されたコン
トロール・コマンド・バス21とコントロール・
データ・バス22から構成される。
コントロール・コマンド・バス21は、プログ
ラム実行ユニツト220が他のユニツトを制御す
る際に、ユニツトを識別するためのユニツト番号
と何をするかを示すコマンドおよびデータを送る
ためのもので、一方、コントロール・データ・バ
ス22は、プログラム実行ユニツト220から他
のユニツトへ、あるいはその逆の方向へデータ転
送を行なうためのものである。
コントロール・コマンド・レジスタ221およ
びコントロール・データ・レジスタ222に値を
セツトするのは、プログラム実行ユニツト220
で実行されるマイクロ命令であり、また、コマン
ドおよびデータ等の送出およびデータの受け取り
の制御もマイクロ命令が行なう。
以上のような制御バンドル20は、アレイ演算
実行ユニツト320において、1つの演算器に対
して、入力データの選択と機能を制御する制御モ
ジユール、あるいは、1つのデータ・バスへの入
力データを選択するために演算器の出力を制御す
る制御モジユールに接続されている。これを第7
図に示す。
第7図aにおいて、360a,360b,36
0cは制御モジユールを示し、370a,370
b,370cは演算器又はデータ・バスを示す。
また、第7図bには、制御モジユール360が制
御データ・メモリ361、データ選択回路36
2、および制御レジスタ363から構成され、制
御レジスタ363から制御信号が演算器又はデー
タ・メモリ370に送られることが示されてい
る。
第7図bにおいて、演算器の入力データ選択お
よび機能の制御あるいはデータ・バスへの演算器
出力の入力選択制御を行なうため制御データが制
御レジスタ363に保持されており、この制御デ
ータは、通常、種々の制御データを保持している
制御データ・メモリ361から読み出される。制
御データ・メモリ361のアドレスは制御バンド
ル20のコントロール・コマンド・バス21から
与えられる。また、コントロール・データ・バス
22からのデータを直接制御レジスタ363にセ
ツトできるようにデータ選択回路362が設けら
れている。
以上のような制御モジユールを設けることによ
り、アレイ演算実行ユニツトで行なわれる演算の
うち、頻繁に行なわれる演算に対する制御データ
をあらかじめ制御データ・メモリ361に格納し
ておけば、制御バンドル20のコントロール・コ
マンド・バス21を介してアドレスを与えるだけ
で、このアドレスに記憶されている制御データが
読み出されて制御レジスタにセツトされる。ま
た、制御データ・メモリ361に格納されていな
い制御データがあれば、制御バンドル20のコン
トロール・データ・バス22を用いて直接制御レ
ジスタ363に制御データを直接セツトすること
が可能である。
第8図に、第7図に示された制御モジユールを
設けたことにより、コントロール・コマンド・バ
スに1つのアドレスを与えれば、これに応じて、
全ての制御モジユール内の制御データ・メモリに
格納されている制御データが同時に読み出されそ
れぞれの制御レジスタにセツトされることを示
す。図中、361a,361b,361cはそれ
ぞれ異なつた制御モジユールの制御データ・メモ
リを示し、363a,363b,363cはそれ
ぞれの制御レジスタを示す。
第8図においては、コントロール・コマンド・
バス21にFFT制御データ・アドレスが与えら
れると、全ての制御データ・メモリの同一アドレ
スに格納されているFFT制御データが読み出さ
れて制御レジスタにセツトされることを示してい
る。
このような機能により、多くの演算器に対する
多くの制御データを制御レジスタにセツトするの
に要する時間を大幅に消減することが可能とな
る。これはすなわち、アレイ演算実行ユニツト内
で各種のアレイ演算を行なうのに適した構成を動
的につくるためのオーバーヘツドを減少すること
につながるものである。
次に、以上述べたようなアレイ演算実行ユニツ
ト320における演算器およびこれを制御するた
めの制御モジユールの構成を効果的に用いること
により、プログラムの実行を高速に行なえる例に
ついて述べる。
第9図に、FFT(高速フーリエ変換)を行なう
プログラムの一部を示す。プログラムの意味は以
下の通りである。
第100行:レジスタR3をFFTのループ・カウンタ
に用いる。第8図の例ではループを4回行な
うようにR3に−4をロードする。
第101行:FFTのループの先頭で、レジスタR0
に、グローバル・メモリ・ユニツトに格納さ
れているデータの先頭アドレスをSAからロ
ードする。
第102行:レジスタR1にデータ・セツト数をDSN
からロードする。
第103行:レジスタR2にFFTのサンプル点数32を
ロードする。
第104行:レジスタR0,R1,R2にそれぞれ格納さ
れた、データの先頭アドレス・データ・セツ
ト数、およびサンプル点数を用いてFFTを
行なう。
第105行:レジスタR4にデータ・セツト数をロー
ドする。
第106行:レジスタR4の内容とレジスタR2の内容
を掛け合わせて、結果をレジスタR4(積の上
位部分)とR5(積の下位部分)に入れる。こ
れによつて、FFTを行なつたデータ数を計
算する。
第107行:第106行で計算した積の下位部分(レジ
スタR5)をデータの先頭アドレス(レジス
タR0)に加える。これによつて、次のFFT
のためのデータの先頭アドレスを生成する。
第108行:第107行で計算した次のFFTのための
データの先頭アドレスをSAに格納する。
第109行:ループカウンタであるレジスタR3に1
加える。
第110行:第109行での演算結果が0であればラベ
ルNEXTで示される第113行へ分岐し、そう
でなければ次の第111行へ移る。
第111行:第104行で実行させたFFTが終了した
かどうかをチエツクするもので、終了してい
れば第101行のLOOPへ分岐し、そうでなけ
れば次の行へ移る。
第112行:無条件分岐で、ラベルTSTLで示され
る第111行へ分岐する。
第9図で示されたプログラムでは、第104行の
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…演算器。なお図中、同
一あるいは相当部分には同一符号を付して示して
ある。

Claims (1)

  1. 【特許請求の範囲】 1 大量のアレイ・データ、スカラ・データ、お
    よびプログラムを記憶するためのグローバル・メ
    モリ・ユニツトと、 前記グローバル・メモリ・ユニツトにデータ・
    バスを介して接続され、実行プログラムおよびこ
    れに関係したデータを記憶するためのローカル・
    プログラム・メモリおよびプログラムを構成する
    機械命令に対応したマイクロプログラムを記憶す
    るためのマイクロプログラム・メモリを有し、前
    記ローカル・プログラム・メモリより順次読み出
    される機械命令に対応してマイクロプログラム・
    メモリに記憶されたマイクロプログラムを実行す
    る手段を有するコントロール・プロセツサ・ユニ
    ツトと、 前記グローバル・メモリ・ユニツトにデータ・
    バスを介して接続され、かつ、前記コントロー
    ル・プロセツサ・ユニツトと制御バスを介して接
    続され、アレイ演算に用いるアレイ・データを記
    憶するためのローカル・データ・メモリを有し、
    アレイ演算を行なうための算術論理演算器あるい
    は乗算器等の複数の演算器を有し、前記ローカ
    ル・データ・メモリと演算器とがデータ・バスに
    より接続され、また、演算器と別の演算器との間
    もデータ・バスにより接続され、前記コントロー
    ル・プロセツサ・ユニツトで実行された少なくと
    も1つのマイクロ命令によつて前記制御バスを介
    して制御されるアレイ演算を実行する手段を有す
    るアレイ・プロセツサ・ユニツトと、 制御装置を介してデイスプレイ装置および実時
    間信号入力装置等の入出力装置およびホスト・プ
    ロセツサとのインターフエース装置を接続でき、
    前記グローバル・メモリ・ユニツトとデータ・バ
    スを介して接続され、また、前記コントロール・
    プロセツサ・ユニツトと制御バスを介して接続さ
    れ、前記コントロール・プロセツサ・ユニツトで
    実行された少なくとも1つのマイクロ命令によつ
    てデータの転送制御が行なわれる外部インターフ
    エース・ユニツトと、 を含むデータ処理装置において、 a 前記アレイ・プロセツサ・ユニツト内におい
    て、1つ又は複数の演算器および1つ又は複数
    のデータ・バスに対して各々専用の制御モジユ
    ールを設け、 b 前記制御モジユールを、これに対応した演算
    器あるいはデータ・バスを制御する制御データ
    を少なくとも1つ記憶するための制御データ・
    メモリとこの制御データ・メモリより読み出し
    た制御データを保持するための制御レジスタと
    から構成し、 c 前記制御モジユールの中で、演算器に対する
    制御モジユールにおいて、制御レジスタに格納
    された制御データにより、演算器の入力データ
    を演算器の入力に接続されているデータ・バス
    から取り込む手段と、演算器で行なわれる演算
    等の選択ができるような手段を設け、 d 前記制御モジユールの中で、データ・バスに
    対する制御モジユールにおいて、制御レジスタ
    に格納された制御データにより、データ・バス
    に接続されている演算器の出力のうちいずれの
    出力を当該データ・バスに出すかを選択できる
    ような手段を設け、 e 少なくとも1つの前記アレイ・プロセツサ・
    ユニツトにおけるアレイ演算を制御するための
    専用の機械命令を設け、 f 前記アレイ演算制御用機械命令が前記コント
    ロール・プロセツサ・ユニツトで実行されたと
    き、この機械命令に対応して実行されるマイク
    ロ命令の少なくとも1つが、前記アレイ・プロ
    セツサ・ユニツト内の1つ又は複数の制御モジ
    ユールに対して同時に、アレイ演算の種類を示
    すとともに当該制御モジユール内の制御デー
    タ・メモリのアドレスをも示す1つのデータ
    を、前記コントロールプロセツサ・ユニツトと
    アレイ・プロセツサ・ユニツトとの間の制御バ
    スを介して送出すると、当該制御モジユール内
    の制御データ・メモリより制御データが読み出
    され、制御レジスタに格納されるような手段を
    有し、 g 前記f項のようにして、前記アレイ・プロセ
    ツサ・ユニツト内の各演算器が行なうべき演算
    と演算器とデータ・バスとの間の接続を全て決
    定した後、前記コントロール・プロセツサ・ユ
    ニツト内で実行されたマイクロ命令によりアレ
    イ演算を始めることができ、また、アレイ演算
    の終了が前記アレイ・プロセツサ・ユニツトで
    検知されたとき、これを前記コントロール・プ
    ロセツサ・ユニツトに前記制御バスを介して知
    らせることができる手段 を有することを特徴とするアレイ演算用データ処
    理装置。
JP58006082A 1983-01-18 1983-01-18 アレイ演算用デ−タ処理装置 Granted JPS59132070A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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