JPS59132070A - アレイ演算用デ−タ処理装置 - Google Patents

アレイ演算用デ−タ処理装置

Info

Publication number
JPS59132070A
JPS59132070A JP58006082A JP608283A JPS59132070A JP S59132070 A JPS59132070 A JP S59132070A JP 58006082 A JP58006082 A JP 58006082A JP 608283 A JP608283 A JP 608283A JP S59132070 A JPS59132070 A JP S59132070A
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.)
Granted
Application number
JP58006082A
Other languages
English (en)
Other versions
JPH036545B2 (ja
Inventor
Takahide Oogami
貴英 大上
Nobuyuki Iijima
飯島 信幸
Teijiro Sakamoto
坂本 禎治郎
Toshiyuki 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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、高速にアレイ演算を行なうためのデータ処理
装置に関するものであり、更に具体的には、データおよ
びフ゛ログラムを6己憶するグローバル・メモリ・ユニ
ット、プログラムを実行し、アレイ演算の制御等を行な
うコントロール・プロセッサ・ユニット、アレイ演算を
実行するアレイ・プロセッサ・ユニットおよび゛外部の
入出力装置とのインターフェースである外部インターフ
ェース・ユニットとを有し、これらの機能ユニットがデ
ータ・バスおよび制御バスによって接続されたデータ処
理装置に関するものである。
〔従来技術〕
一般に、科学技術計算においてアレイ演算の占める割り
合いは高く、これを汎用計算機で処理すると時間がかか
り過ぎることから、アレイ演算を専用に行なうデータ処
理装置が種々考案され、そのうちのいくつかは実用化さ
れてきた。このようなアレイ演算用のデータ処理装置に
は、下に示すようないくつかの形式に分類される。
A、  FFTプロセッサのように、アレイ演算でも特
定の種類の演算のみの高速化を図った専用のプロセッサ
B、汎用計算機にその入出力インターフェースを介して
接続され、一般の科学技術計算におけるアレイ演算を汎
用計算機よりも高速に実行するアレイ・プロセッサ。
C0汎用計算機の中央処理装置を共有し、アレイ演算専
用の機能を付加した内蔵アレイ・プロセッサ。
D、超高速に科学技術計算におけるアレイ演算を処理す
るスーパーコンピュータ。
上記のうち、Aの形式の専用プロセッサにおいては、そ
の構成はある特定の処理に向いたものとなっており、限
られた種類の演算を対象としている。このため、対象と
している演算の処理は高速に行なえるが、対象外の演算
は全く行なえないか。
あるいは行なえるとしても非常に低速の処理となυ、処
理の柔軟性に欠けるという欠点があった。
また、上記Bの形式のアレイ・プロセッサでは。
処理の柔軟性はあるが、特定の処理を考えたとき。
汎用計算機に比べて処理性能は改善されるものの。
専用プロセッサが必要な分野に適用できるほどの処理性
能は有していないという欠点があった。また、汎用計算
機の入出力装置の1つとして接続されているため、ある
1つの演算から他の演算に処理が移るときには入出力の
オーバーヘッドが太きいという欠点もあった。
さらに、上記Cの形式の内蔵アレイ・プロセッサでは、
処理の柔軟性は汎用計算機の中央処理装置を共有してい
るため充分にあるが、その反面。
処理性能は上記Bの形式のアレイ・プロセッサはどは改
善されないという欠点があった。
上記りの形式のスーパーコンピュータでは、大規模科学
技術計算を指向しており、処理は非常に高速に行なえる
。一般に、スーパーコンピュータでは取り扱えるデータ
幅も広く精度良く計算が行寿えるようになっている。し
かし、構成は大規模であり、精度をそれほど要求しない
応用に対しては、高価過ぎるという欠点があった。
以上のことより、@記憶 −Dの形式のデータ処理装置
を次のような条件を要求する応用に対して用いることは
不適当である。
一科学技術計算、とくに、アレイ計算を主体とする。
一専用プロセッサとはゾ同等の高速な処理を行なう。
一演算の精度はそれほど要求しない。
−プログラムにより処理内容を動的に変更できる。
一処理内容の変更に伴うオーバーヘッドが小さい0 〔発明の概要〕 本発明は、このような市川に対して、高速でかつ柔軟性
ああるアレイ演算用データ処理装置を提供し、前述の従
来のアレイ演算用データ処理装置の欠点を補うためにな
されたもので、特許請求の範囲に記載したように構成し
たことを特徴とするものである。
実施例 第1図は1本発明に従うアレイ演算用データ処理装置全
体の概略を示すものである。図中。
(1oo)、 (2oo)、 (soo)、 (40C
)、 (500)は機能ユニットを示し、 (10)、
 (20)、 (30)は複数めバスの束(以後、これ
をバンドルと呼ぶ)を示す。
第1図において、大欧のデータ(アレイ・データおよび
スカシ・データ)およびプログラムは大容最の記憶部を
持つグローバル・メモリ・ユニツ1− (100)に記
憶され、実行しようとするプログラムおよびこれに関係
したデータはメモリ・バンドル(11)ヲ介して、コン
トロール・プロセッサ・ユニツh (200)内のロー
カル・プログラム・メモリ(210)に転送される。
第1図に示されているデータ処理装置に関するほとんど
全ての制御を、コントロール・プロセッサ・ユニツl−
(200)が、その内部に持つローカル・プログラム・
メモリ(210)に格納されているプログラムを、同じ
くその内部にあるプログラム実行ユニツ) (220)
で実行することによって行なう。コントロール・プロセ
ッサ・ユニットは。
ローカル・プログラム・メモリ(210)を主記憶とし
、プログラム実行ユニット(220)を中央処理装置と
する計算機と見なすことができる。C5従って。
コントロール・プロセッサ・ユニット(200)でのプ
ログラムの実行は1通常、その内部で閉じた形で行なわ
れ、新しくプログラムが必要になった場合やプログラム
の実行結果をグローバルメモリ・ ′ユニツ) (10
0)に格納する必要が生じた場合などニ限って、グロー
バル・メモリ・ユニッh (ioo)とコントロール・
プロセッサ・ユニッ) (200)トの間でデータ転送
が行なわれる。このことにより。
クローバル・メモリ・ユニッI=(100)へノ定常的
なデータ・アクセスをなくシ、他の機能ユニットがアク
セスする機会を増やしている。
コンドロールーフ のプログラム実行ユニット(22o)は、ローカル・プ
ログラム・メモリ(210)とバンドル(40)によっ
て接j読され,これを介して命令のフェッチ、データの
読み出し,およびデータの書き込みが行なわれる。プロ
クラム実行ユニッl− (220)は、本データ処理装
置に機械命令として定義されているマクロ命令を逐次実
行するもので,マイクロブロクラームによって,マクロ
命令の読み出し,、解読,データの読み出し,実行,実
行結果の書き込み等が制御される。
グローバル・メモリ・ユニット(1oo)に記憶されて
いる大量のアレイ・データを処理するのは。
メモリ・バンドルGO+に接続されたアレイ・プロセッ
サ・ユニット(300)で、これは、ローカル・データ
・メモリ(310)とアレイ演算実行ユニット(320
)とから構成される。処理するアレイ・データは,まス
,グローバル・メモリ・ユ゛ニット(ioo)よりロー
カル・データ・メモリ(31 Cl )に転送され。
この後,アレイ演算実行ユニツl− (320)にロー
カル・データ・メモリ(310)から取り出されたデー
タが供給され,処理された後,結果をローカル・データ
・メモリ(310)に返す。ローカル・データ・メモリ
(310)とアレイ演算実行ユニット(320)との間
で,バンドル(50)を介してデータの授受を行ないな
がら,必要な回数だけ,この処理サイクルを繰り返す。
最終的な結果がローカル・データ・メモリ(3 10 
)に格納された後,これよりグローバル・データ・メモ
IJ(100)に転送される。
機能ユニット(400 )は外部インターフェース・ユ
ニットで,これと入出カバンドル(30)を介し−て接
続される例えばディスグレイ装置および実時間信号入力
装置等の入出力装置(500a) 、 (soob)と
グローバル・メモリ・ユニツB1o’o)との間でのデ
ータ転送を制御する。
コントロール・プロセッサ・ユニット(200]’! 
データ処理装置全体の制御を行なうために,制御バンド
ル(20)を介して,アレイ・プロセッサ・ユニット(
300) 、グローバル・メモリ・ユニット(100)
、外部インターフェース・ユニット(400)に対し制
御データを送出したり,あるいはCれらの機能ユニット
の状態に関するデータを読み込んだりする。アレイ・プ
ロセッサ・ユニツl− (300)に対するアレイ演算
の制御あるいは外部インターフェース・ユニツl− (
400)に対する入出力データの転送制御はこの制御バ
ンドル(2旬を用いて行なわれる。
次忙,アレイ演算実行ユニツ) (320)の構成を第
2図に示す。図中, (330) 、 (3+1a)〜
(331c) 。
(332a) 〜(332f) 、 (333a) 〜
(333g) 、(334a) 〜(334d)、 (
33s) 、 (336a) 〜(336b)は演算器
, (340) 、 (341)、 (342)はデー
タ・バンドルを示す。
演算器は,コントロール・プロセッサ・ユニット・イン
ターフェース(330) 、ローカル・データ・メモリ
・入力インターフェース(351a)〜(331c) 
算術論理演算器(332a) 〜(332f) 、遅延
器(333a) 〜(333g) 、乗算器(3541
1) 〜(+34d) ’,シフタ(335) 。
ローカル・データ・メモリ・出力インターフェース(3
36a) 、 (336d)から成り.これらの演算器
の入出力はそれぞれ第2図に示すようにデータ・バンド
ルに接続されている。
通常,ローカル・データ・メモリ(ろ10)から読み出
されるデータを,ローカル・データ・メモリ・入力イン
ターフェース(331a)〜(331c)を介して各種
の演算器に送られ′,演算結果はローカル・データ・メ
モリ・出力インターフェース(536a)〜(356b
) ’s:介してロール・データ・メモリ(310)に
格納される。データ・バンドル(340) 、 (34
1) 、 (342)は複数のデータ・バスから成って
いるため、演算器間のデータ転送は複数同時に行える。
ローカル・データ・メモリ・入力インターフェース(3
31a)〜(331C)を介して入力されたデータに対
してどのような演算が行なわれるかは各演算器の入力デ
ータ選択および昏データ・バンドルのデータ選択に依存
するもので、アレイ演算の種類に応じて任意に決定でき
るようになっている。
各演算器はそれぞれ入力データ選択回路に接続される演
算回路、演算回路の結果を保持するレジスタおよびレジ
スタに保持されたデータ乞データ・バンドルに出力する
選択回路から構成される。
演算回路の一例として、第2図に示す算術論理演算器(
332a)の構成を第3図に示す。図中(340a)〜
(340d)はデータ・バンドル(340) ’g構成
するデータ・バス、 (350a) 、 (350b)
は入力データ選択回路、 (351)は算術論理演算回
路、 (352)は演算結果を保持するレジスタ、 (
sss)v4出力データ選択回路、 (341a) 、
 (341b)はデータ・バンドル(641)の一部を
なすデータ・ノ(スである。
1つの演算器と他の演算器とがデータ・)(スで接続さ
れているとき、演算器のレジスタに保持されたデータが
他の演算器の入力となり、演算回路を通って結果がレジ
スタに保持されるような)くスができる。第2図に示さ
れたアレイ演算実行ユニットは、このようなレジスタか
らレジスタまでのバスをデータが1サイクルで通るよう
に考慮されている。即ち、アレイ演算実行ユニット(3
20)では、1サイクル毎に1つの演算が演算器で行な
われる。全て゛の演算器のレジスタは同期して動作する
ようになっており、1サイクルごとにローカル・データ
・メモリ・入力インターフェース(331a)〜(33
1c)からデータが入力されれば、1サイクルごとにロ
ーカル・データ・メモリ・出力インターフェース(33
6a)〜(336b)から演算結果が出力される。
従って、演算のパイプライン処理が可能となる。
演算のパイプライン処理の例として、第4図に示すFF
T (高速フーリエ変換)にお(・てよく用(・られる
バタフライ演算を考える。第4図に示す〕くタフライ演
算は2次の式を図式化したものである。
ここで、Wは回転因子を示し、P、Q、W、P、Q′ 
 は全て複素数(実数部および虚数部はそれぞれ整数)
である。
バタフライ演算を行なうために、アレイ演算実行ユニツ
) (320)乞構成した様子を第5図に示す。
図中、 (331a)〜(331c) 、 (332a
)〜(332f) 、 (333a) 。
(333c) 〜(333d) 、 (334a)〜(
354d) 、 (336a) 、 (336b)は第
2図に示したものと同じ演算器2示し、 (340a)
〜(340d)はデータ・バンドル(340)のf−ト
バス、 (341a)〜(341i)はデータ・バンド
ル(341)のデータ・バス、 (342a)〜(34
2c)はデータ・バンドル(542)のデータ・バスを
示す。
第5図で示されているバタフライ演算は9式(1)とは
少し異なり、データ長が短かいために生じる可能性のあ
るオーバーフローを避けろため1式(2)に示すような
演算となっている。
ここで、第5図の構成を説明するため、以下のことを仮
定する。
■データ長:1ワードY2nビットとする。
■実数データ=nビット(半ワード)又ハス0ビツト(
1ワード) ただし、「実数」とは「複素数」に対する言葉で、実際
には符号付きの整数。
■複素数テーク:実数部nビット(半ワード)。
虚数部nビット(半ワード) 複素数、X =’R6(X) + j工m−(X)に対
し、実数部Re(X)も虚数部Im (X)もともにn
ビット(半ワード)の符号付き整数で表わされ、1ワー
ドに、Rθ(X)と工m (X)がパックされており、
この1ワードで1つの複素数を表わすものとする。
■演算器のデータ幅=nビット(半ワード)×2又は2
0ビツト(1ワード)×1 乗算器を除く全ての演算器は、全ワード・モードと半ワ
ード・モードがあり、全ワード・モードにおいては、 
2nビツト(1ワード)のデータ幅で演算を行ない、半
ワード・モードでは、 2nビツトの1つの演算器が2
つのnビットの演算器に分割され、各々独立に演算でき
るものとする。ただし2乗算器はモードの区別なくnビ
ットのオペランドの乗算を行ない、結果172n  ビ
ットで表わすものとする。
■データ・バス二〇ビット(半ワード)×21つのデー
タ・バスは2nビツトから成るが、演算器の出力レジス
タからデータ・バスへのデータ出力の選択はnビット単
位で可能とする。
以上のことを仮定して、第5図に示される各演算器にお
ける演算を以下に示す。ただし、〈F〉は全ワード・モ
ードでの演算を示し、くH〉は半ワード・モードでの演
算を示す。
−ローカル・データ・メモリ・入力インターフェース(
531a)         <H>データP = R
6(P)十j工m fP)を入力する。
−ローカル・データ・メモリ・入力インターフェース(
631b)         <H>データQ = R
e (Q) + 、IIm (Q)を入力−する。
−ローカル・データ・メモリ・入力インターフェース(
331C)         <H>データW==Rθ
(W)十jIm倣)を入力する。
−算術論理演算器(332a)    <H>X =?
 R6(P) 十;) 、工m (P)−算術論理演算
器(332b) y =−7Re (Q)+ j÷工m (にL)−遅延
器(333a)        <H>Z = W =
 R6(W) + jIm(W)−乗算器(334a) Drr = R6(Y) x Re (Zl−乗算器(
334b) Dri = REJ (Y) XIm(Z)−乗算器(
634c) Dir= 1m (y) x Re (z)−乗算器(
334d) Dii =Im jY) XIm(Z)−遅延器(33
3c )<H> 0 =Z =Re(Z)+ jIm (Z)−算術論理
演算器(552C)<F> Br = Drr + Dii −算術論理演算器(632d)<F〉 Ei = Dri + Dir −遅延器(333(1)        (H)B =
 C= Re (0) + jIm (C)−算術論理
演算器(662θ)   〈H〉F’= (Re(B)
十Er/znl+j (Im(B)+Ei/2” 1−
算術論理演算器(332f)    <H>Gl’ =
 (Re (B)  Er/!Ω)十j(1m(B) 
−F:V′2n ]以上のようなアレイ演算実行ユニッ
トは、演算の精度をあまり要求しない整数演算で充分な
応用にlid] t、・ており、演算器の接続を動的に
変更することにより応用に合った柔軟な構成をとること
ができる。
第2図に示きれたアレイ・プロセッサ・ユニット(30
り内のアレイ演算実行ユニン1−(32りの構成と機能
の制御は1本発明の核心ヶなすものであり、これを以下
に述べる。
第1図において、アレイ・プロセッサ・ユニット<3o
o) u、 制御バンドル(社)を介してコントロール
・プロセッサ・ユニット(2oりの制御ン受ける。
制御バンドル(201は、第6図に示されるように、コ
ントロール・プロセッサ・ユニット(2oo)内のプロ
クラム実行ユニット(22o)内のコントロール・:I
 マント・レジスタ(221)およびコントロール・デ
ータ・レジスタ(’222)に接続されたコントロール
・コマンド・バスQυとコントロール・データ・バス(
22)から構成てれる。
コントロール・コマンド・バスQυハ、フログラム実行
ユニッ1−(22りが他のユニットヲ制御する際に、ユ
ニットヲ識別するためのユニット番号と何をするかを示
すコマンドおよびデータ2送るためのもので、一方、コ
ントロール・データ・バスQ21は、プログラム実行ユ
ニット(22りがら他のユニントヘ、あるいはその逆の
方向へデータ転送を行なうためのものである。
コントロール・コマンド・レジスタ(221)およびコ
ン1゛ロール・データ・レジスタ(222)に値を七ン
)・するのは、プログラム実行ユニソl−(220)で
実行訟れるマイクロ命令であり、また、コマンドおよび
データ等の送出およびデータの受は取りの制御もマイク
ロ命令が行なう。
以上のような制御バンドル■は、アレイ演算実行ユニソ
l−(320)において、1つの演算器に対して、入力
データの選択と機能ヶ制御する制御モジュール、あるい
1屯1つのデータ・バスへの入力データを選択するため
に演算器の出刃?制御する制御モジュールに接続されて
いる。これを第7図に示す。
第7図(a)において、  (3SOa) 、  (3
60b) 、 (360c)は制御%シ、=t、 −ル
4示、t、、  (370a)、(370b)、(’+
70c、は演算器又はデータ・バスン示す。1だ、第7
図(’bJには、制御モジュール(560,)が制御デ
ータ・メモリ(361)、データ選択回路(3<52)
 、および制御レジスタ(36りから構成でれ、制御レ
ジスタ(363)から制御信号が演算器又はテーク・メ
モIJ (370)に送られることが示されている。
第7図(b)において、演算器の入力データ選択および
機能の制御あるいはデータ・バスへの演算器出力の入力
選択制御を行なうため制御データが制御レジスタ(56
5)に保持でれておシ、この制御データは1通常9種々
の制御データを保持している制御データ・メモリ(36
1)から読み出湯れる。制御データ・メモリ(561)
のアドレスは制御バンドル四のコントロール・コマンド
・バス(2+1 から与えられる。また、コントロール
・データ・バス(221がらのデータを直接制御レジス
タ(565)にセットできるようにデータ選択回路+ 
362 )が設けられている。
以上のエラな制御モジュールを設けることによ、シ、ア
レイ演算実行ユニットで行なわnる演算のうち、頻繁に
行なわれる演算に対する制御データンあらかじめ制御デ
ータ・メモリ(361)に格納し7オffff、 l1
1mハンドル■のコントロール、コマンド・バスeυを
介してアドレスを与えるタケテ。
このアドレスに記憶でれている制御データが読み出をれ
て制御レジスタにセントlれる。また、制御データ・メ
モリ(36りに格納されていない制御データがあれば、
制御バンドル■のコントロール。
データ・バス(22ヲ用いて直接制御レジスタ(363
)に制御データを直接セットすることが可能である。
第8図に、第7図に示場扛だ制御モジュールを設ケたこ
とにより、コントロール・コマンド・バスに1つのアド
レス2与えれば、これに応じて。
全ての制御モジュール内の制御データ・メモリに格納さ
nている制御データが同時に読み出されそれぞれの制御
レジスタにセットセ汎ることを示す。
図中、  (31a、)、(361bつ、(361c’
)  はそれぞれ異なった制御モジュールの制御データ
・メモリを示し。
(363a) 、 (366b) 、 (363c、)
 はそれぞれの制御レジスタを示す。
第8図においては、コントロール・コマンド・ハス(2
gにFFT制御データ・アドレスが与えられると、全て
の制御データ・メモリの同一アドレスに格納埒れている
FFT制御データが読み出をれで制御レジスタにセット
ジ詐ることケ示している。
このような機能KLp、多くの演算器に対する多くの制
御データ乞制御レジスタにセットするのに要する時間ン
大幅に削減することが可能となる。
これはすなわち、アレイ演算実行ユニット内で各種のア
レイ演算火行なうのに適した構成ヶ動的につくるための
オーバーヘッド欠減少することにつながるものである。
次に1以上述べたようがアレイ演算実行ユニット(52
りにおける演算器およびこれケ制御するための制御モジ
ュールの構成を効果的に用いることによシ、プログラム
の実行ン高速に行なえる例について述べる。
第9図に、FFT(高速フーリエ変換)ン行なうプログ
ラムの一部乞示す。プログラムの意味は以下の通りであ
る。
第100行 レジスタR3をFFTのループ・カウンタ
に用いる。第8図の例ではルー プ乞4回行なう工うにR3に−470 −ドする。
、        第101行: FFTのループの先
頭で、レジスタROニ、クローバル・メモリ・ユニット に格納埒れているデータの先頭アド レス乞SAからロードする。
第102行゛レジスタR1にデータ・セラ1数ンDSN
からロードする。
第103行 レジスタR2にFFTのサンプル点数32
乞ロードする。
第104行:レジスタRQ 、 R1,R2にそれぞれ
格納てれた。データの先頭アドレス。
データ・セット数、およびサンプル 点数装用いてFFTを行なう。
第105行゛レジスタR4にデータ・セント数′f!:
:ロードする〇 第106行 レジスタR4の内容とレジスタR2の内容
7掛は合わせて、結果tレジス タR4(積の上位部分)とR5(積の下位部分)に入れ
る。これによって。
FFT Y行なったデータ数を計算する。
第107行°第106行で計算した積の下位部分(レジ
スタRs)乞データの先頭アド レス(レジスタRG)に加える。これ によって1次のFFTのためのデータ の先頭アドレス乞生成する。
第108行 第101行で計算した次のFFTのための
データの先頭アドレス乞SAに格 納する。
第109行:ループカウンタであるレジスタR3に1加
える。
第110行 第109行での演算結果が0であればラベ
ルNEXTで示される第113行へ分岐し、そうでなけ
れば次の第111 行へ移る。
第111行:第104行で実行路せたFF’Tが終了し
たかどうかンチェックするもので。
終了していれば第101行のLOOPへ分岐し、そうで
なければ次の行へ移 る。
第112行:無条件分岐で、ラベルTSTLで示される
第111行へ分岐する。
第9図で示されたプログラムでFi、第104行のCM
F命令(コール・マクロ機能命令〕でアレイ・プロセッ
サ・ユニットにおけるFFT演算が起動嘔扛る。ロード
命令LD 、 LD工、加算命令ADD 、 ADD]
乗算命令MPY 、ストマ命令ST1条件分岐命令BC
Dテスl−命令’rST flj:コントロール・プロ
セッサ・ユニツ1゛内でマイクロプログラムにより処理
てれる。
CMF 命令!”i、  コントロール・プロセッサ・
ユニット内のマイクロプログラムが、アレイ演算実行ユ
ニット内における演算器間の接続制御および演算器の演
算選択制御などCMF命令で指定anたアレイ演算ンア
レイ・プロセッサ・ユニツ;−で始める、のに必要な制
御を行ない、この後演算乞開始するようにアレイ・プロ
セッサ・ユニットン起動してその処理l終了する。O’
MP命令に続く命令は、アレイ・プロセッサ・ユニット
内でのアレイ演算が終了する前に処理ン行なうことがで
き、コントロール・プロセッサ・ユニットとアレイ・プ
ロセッサ・ユニットとの並列処理が可節とhる一CMF
命令で起動さfしたアレイ・プロセッサ・ユニ7+−に
おけるアレイ演算が終了したか否かン検査するために、
第9図のプログラムにおける第111行のTST命令(
テスト命令)が設けられている。
:、  以上のように、 CM?命令というアレイ演算
欠制、 御する専用の機械命令を設けることにより、並
列処理を可能とし、処理速度の向上ケ図ることができる
なお1以上は特定の構成をもつアレイ演算用データ処理
装置について説明したが9本発明はこれに限らず特許請
求の範囲に明示坏れている項目ケ効果的に用いたアレイ
演算用データ処理装置であればどのようなものでもよい
〔発明の効果〕
以上のように1本発明に係るアレイ演算用データ処理装
置では、アレイ演算実行ユニット内の多数の演算器をア
レイ演算に合わせて動的に構成することができ、かつ、
制御!客演算器に対応をせて分散させたため処理内容の
変更に伴うオーバーヘッドヶ減少ζせることができ、従
って、精度はそれほど撰求しないが高速な処理を髪求す
るアレイ演算ケ主体とする科学技術計算の応用に対し処
理の高速性と柔軟性乞提供できる効果l有する。
【図面の簡単な説明】
図はいずれもこの発明の実施例を示すもので。 第1図・・アレイ演算用データ処理装置の構成2示す図
2 第2図・・アレイ演算実行ユニットの構成2示す図。 第3図・・・算術論理演算器フ示す図。 第4図・・バタフライ演算アポす図。 第5図・・・アレイ演算実行ユニット内の演算器の接続
2示す図。 第6図・・制御バスのインターフェースを示す図。 第1図・・制御モジュールの構成乞示す図。 第8図・制御データ・メモリの読み出し乞示す図。 第9図・・プログラム例ン示す図。 図中、10.20  バスの束(バンドル)、21゜2
2・・バス、30,40,50・・・バンドル、100
・・・グローバル・メモリ・ユニット、  200・・
コントロール・プロセッサ・ユニツl−,210・・・
ローカル・プログラム・メモリ、220・・・プログラ
ム実行ユニット、  221. 222・・ルジスタ、
300・・・アレイ・フ。 ロセツサ・ユニット、310・・:ローカル・チー タ
・メモリ、320  ・アレイ演算実行ユニット、  
330゜331a〜331c、  332a〜332f
’、  333a〜333g、 334a〜334d、
  335. 336a〜336b ’  演算器、 
 340−=バンドル、  340a〜340d・・・
ノくス、341・・・ノくンドル。 341a〜3411  ・・バス、342・・・ノくン
ドル、  342a〜342c・・・バス、  350
a〜350b・・・データ選択回路。 351 ・・算術論理演算回路、352・・・レジスタ
、353・・データ選択回路、  360. 360a
〜360C・・・制御モジュール、  361. 36
1a〜361C・・・メモリ、  362−・データ選
択回路、  363. 363a〜363c ・=レジ
スタ。 370 、 370a 〜3γoc −演算器。 なお図中、同一あるいは和尚部分には同−符号7付して
示しである。 代理人  葛 野 信 − 第3図 第4図 第5図 336a      336b 第6図 第9図 ■ +00   Lf)I +01 LOOP l +02  1 +03         LEI1 104   CMF 105         u) 06MPY 10、:、     Aef) +0a   5T IO?   ADDl 1108CL) +II TSTL TST 112  6Cf) 目B   NEXT  1f) 1?3. −4 ROlSA R1,f)SIJ R2,32 FF丁 R4,DSt、J R4,R2 RO,R5 RO,5A R3,1 ZEFi’Q、  NEXT CMFEND、 LOOP TRLIE、  TSTL 尺0.  NSA

Claims (1)

  1. 【特許請求の範囲】 大量(D 7レイ・データ、スカシ・データ、およびプ
    ログラムを記憶するためのグローバル・メモリ・ユニッ
    トと。 前記グローバル・メモリ・ユニットにデータ・バスを介
    して接続され、実行プロクラムおよびこれに関係したデ
    ータを記憶するためのローカル・プログラム・メモリお
    よびプログラムを構成する機械命令に対応したマイクロ
    プロクラムを記憶するためのマイクロプログラム・メモ
    リを有し、前記ローカル・プログラム・メモリより順次
    読み出される機械命令に対応してマイクログログラム・
    メモリに記憶されたマイクロプログラムを実行すル手段
    を有するコントロール・プロセッサ・ユニットと。 前記グローバル・メモリ・ユニットにデータ・ハスを介
    して接続され、かつ、前記コントロール・プロセッサ・
    ユニットと制御バスを介して接続され、アレイ演算に用
    いるアレイ・データを記憶するためのローカル・データ
    ・メモリを有し、アレイ演算を行なうための算術論理演
    算器あるいは乗算器等の複数の演算器を有し、前記ロー
    カッし・データ・メモリと演算器とがデータ・バスによ
    り接続され、また、演算器と別の演算器との間もデータ
    ・バスにより接続され、前記コントロール・プロセッサ
    ・ユニットで実行された少なくとも1つのマイクロ命令
    によって前記制御バスを介して制御されるアレイ演算を
    実行する手段を有するアレイ・プロセッサ・ユニットと
    。 制御装置を介してディスプレイ装置および実時間信号入
    力装置等の入出力装置およびホスト・プーロセツサとの
    インターフェース装置を接続fき。 前言口グローバル・メモリ・ユニットとデータ・バスを
    介して接続され、また、前記コントロール・プロセッサ
    ・ユニットと制御バスを介して接続され、前d己コント
    ロール・)“ロセツサ・ユニ゛ントで実行された少なく
    とも1つのマイクロ命令によつてデータの転送制御が行
    なわれる外部インターフェース・ユニットと。 を含むデータ処理装置において。 a、前記アレイ・プロセッサ・ユニット内において−1
    1つ又は複数の演算器および1つ又は複数のデータ・バ
    スに対して各々専用の制御モジュールを設け。 b、前記制御モジュールを、これに対応した演算器ある
    いはデータ・バスを制御する制御データを少なくとも1
    つ記憶するための制御データ・メモリとこの制御データ
    ・メモリより読み出した制御データを保持するための制
    御レジスタとから構成し。 C1前記制御モジュールの中で、演算器に対する制御モ
    ジュールにおいて、制御レジスタに格納された制御デー
    タにより、演算器の入力データを演算器の入力に接続さ
    れているデータ・バスから取り込む手段と、演算器で行
    なわれる演算等の選択ができるような手段を設け。 d、前記制御モジュールの中で、データ・バスに対する
    制御モジュールにおいて、制御レジスタに格納された制
    御データにより、データ・バスに接続されている演算器
    の出力のうちいずれの出力を当該データ・バスに出すか
    を選択できるような手段を設け。 e、少なくとも1つの前記アレイ・プロ、セッサ・ユニ
    ットにおけるアレイ演算を制御するための専用の機械命
    令を設け。 f、前記アレイ演算制御用機械命令が前記コントロール
    ・プロセッサ・ユニットで実行されたとき。 この機械命令に対応して実行されるマイクロ命令の少な
    くとも1つが、前記アレイ・プロセッサ・ユニット内の
    1つ又は複数の制御モジュールに対して同時に、アレイ
    演算の種類を示すとともに当該制御モジュール内の制御
    データ・メモリのアドレスをも示す1つのデータを、前
    記コントロールプロセッサ・ユニットとアレイ・プロセ
    ッサ・ユニットとの間の制御パスを介して送出すると、
    当該制御モジュール内の制御データ・メモリより制御デ
    ータが読み出され、制御レジスタに格納さ糺るような手
    段を有し。 g、前記fiのようにして、前記アレイ・プロセッサ・
    ユニット内の各演算器が行なうべき演算と演算器とデー
    タ・バスとの間の接続を全て決定した(&14fJ記コ
    ントロール・プロセラ」す・ユニット内で実行されたマ
    イクロ命令によりアレイ演算を始めることができ、また
    、アレイ演算の終了が前記アレイ・プロセッサ・ユニッ
    トで検知されたとき。 こレヲ前記コントロール・プロセッサ・ユニットに前記
    制御バスを介して知らせることができる手段 を有することを特徴とするアレイ演算用データ処理装置
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 true JPS59132070A (ja) 1984-07-30
JPH036545B2 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 日本電気株式会社 信号処理プロセッサ
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
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
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
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
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
ATE180586T1 (de) * 1990-11-13 1999-06-15 Ibm Paralleles assoziativprozessor-system
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
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
US20050071609A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically take an exception on specified instructions
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
US20050071816A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically count instruction execution for applications
US20050071610A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for debug support for individual instructions and memory locations
US20050071608A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for selectively counting instructions and data accesses
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US7395527B2 (en) * 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US20050071821A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically select instructions for selective counting
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
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
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
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
US7082486B2 (en) * 2004-01-14 2006-07-25 International Business Machines Corporation Method and apparatus for counting interrupts by type
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
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
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
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
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 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
ZA742069B (en) * 1973-04-13 1975-03-26 Int Computers Ltd Improvements in or relating to 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
JPH036545B2 (ja) 1991-01-30
US4825359A (en) 1989-04-25

Similar Documents

Publication Publication Date Title
JPS59132070A (ja) アレイ演算用デ−タ処理装置
US5430862A (en) Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
US5752071A (en) Function coprocessor
US4149243A (en) Distributed control architecture with post and wait logic
KR100267091B1 (ko) 비대칭싱글-칩이중멀티프로세서의정합및동기화
WO2017185389A1 (zh) 一种用于执行矩阵乘运算的装置和方法
US5075840A (en) Tightly coupled multiprocessor instruction synchronization
US4302818A (en) Micro-vector processor
EP0511674A2 (en) Single chip microcomputer
JPH0562387B2 (ja)
JPS59154564A (ja) プログラマブルコントロ−ラ
JPH06195229A (ja) パイプラインプロセッサにおける割込み処理のための装置
CN112199119B (zh) 向量运算装置
US5179691A (en) N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
US6327648B1 (en) Multiprocessor system for digital signal processing
Aschenbrenner et al. Intrinsic multiprocessing
CA1123961A (en) Modular programmable signal processor
US5287522A (en) External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
JPH0345420B2 (ja)
JP3278441B2 (ja) ベクトル処理装置
JPH07110769A (ja) Vliw型計算機
Chevtchenko et al. Neuroprocessor NeuroMatrix NM6403 architectural overview
JP2856784B2 (ja) 電子計算機
JPS5995646A (ja) 演算制御装置
JP2625510B2 (ja) 計算機システム