JPS61208570A - ベクトル・プロセツサ - Google Patents

ベクトル・プロセツサ

Info

Publication number
JPS61208570A
JPS61208570A JP60283216A JP28321685A JPS61208570A JP S61208570 A JPS61208570 A JP S61208570A JP 60283216 A JP60283216 A JP 60283216A JP 28321685 A JP28321685 A JP 28321685A JP S61208570 A JPS61208570 A JP S61208570A
Authority
JP
Japan
Prior art keywords
vector
processor
register
elements
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP60283216A
Other languages
English (en)
Inventor
チヤツク・ホング・ガイ
ジエラルド・ジヨセフ・ワトキンス
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS61208570A publication Critical patent/JPS61208570A/ja
Pending 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/8053Vector processors
    • G06F15/8092Array of vector units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はコンピュータシステム、より具体的に言えば一
対のベクトルを迅速に処理し且つその処理結果を記憶す
る並列式ベクトル・プロセッサに関する。
B、従来技術 例えば第6図に示された代表的なベクトル・プロセッサ
はベクトルを記憶する複数個のベクトル・レジスタを含
んでいる。ベクトルは複数個のベクトル要素を含む。パ
イプライン処理ユニットは第1のベクトル・レジスタか
ら第1のベクトルの対応要素を受は取るため、ベクトル
・レジスタに関連したセレクタに接続されており、そし
て第2のベクトル・レジスタ中に記憶されている第2の
ベクトルの対応要素との算術演算を遂行するため、それ
等の対応要素を使用する。算術演算の結果は上述のベク
トル・レジスタのうちの何れか一方のベクトル・レジス
タの対応位置の中か、又は第3のベクトル・レジスタの
対応位置の中に記憶される。
然しなから、この構成°では、ベクトルの各対応要素を
順次に演算することが必要である。若し、ベクトルが1
28個の要素を含んでいるとすると、128回の演算動
作が順次に遂行されなけ□ればならない。ベクトルの1
28個のすべての要素の演算動作を完了するのに必要な
時間は、パイプライン処理ユニットが対応する夫々の要
素の演算をするので、パイプライン処理ユニットの1演
算動作毎に要するサイクル時間の関数である。
コンピュータ・システムが複雑巧妙になった結果、コン
ピュータ・システム内のベクトル・レジスタ中に記憶さ
れている複数個のベクトルの各対応要素の算術演算を遂
行するのに必要な時間を減少することによってコンピュ
ータ・システムのベクトル・プロセッサの部分の性能を
高めることが必要である。
上述したように、コンピュータ・システムのベクトル・
プロセッサの部分の性能を高めるためにデザインされた
他の代表的なベクトル・プロセッサが第2図に示されて
いる。このベクトル・プロセッサは“並列式“ベクトル
・プロセッサと称される。第2図において、複数個のベ
クトル・レジスタが並列構成で配列されており、各ベク
トル・レジスタは複数個の小容量レジスタに分割されて
イル。ベクトル・レジスタの各小容量レジスタはベクト
ル・レジスタ中に記憶されているベクトルの四個の要素
を記憶するためにデザインされておす、各ベクトルの長
さは128個の要素で構成されている。要素プロセッサ
は複数個のベクトル。
レジスタの対応する小容量レジスタの各々に接続されて
いる。
C3発明が解決しようとする間頌点 上述の構成では、1つの要素プロセッサがベクトルの4
個の要素を処理することが必要である。
若し、ベクトルの要素が順次に処理されるとすると、後
続の要素(例えば要素1)の処理は先行する要素(例え
ば0)の処理の完了を待たなければならない。
既に述へたように、コンピュータシステムのベクトルレ
ジスタ中に記憶された複数個のベクトルの各要素を処理
するのに要する時間を減少することによって、コンピュ
ータシステムのベクトルプロセッサの部分の性能を高め
る必要がある。
ベクトルプロセッサの性能を更に高めるために、1つの
要素プロセッサがベクトルの先行要素を処理している間
に、他の要素プロセッサがベクトルの後続要素の処理を
始めるべきである。そめ結果、後続要素の処理は先行要
素の処理を待つ必要がなくなるであろう。
D9問題点を解決するための手段 従って、本発明の主目的は、ベクトルレジスタ中に記憶
されているN要素のベクトルの相次ぐM個の各要素を別
々の要素プロセッサへ割り当てることによって、コンピ
ュータシステムのベクトルプロセッサの部分の性能を更
に改良することにある。
本発明の他の目的は、コンピュータシステムのベクトル
プロセッサの部分によって使われる要素プロセッサの数
を制限しながら、N要素ベクトルの相次ぐM個の各要素
を別々の要素プロセッサへ割り当てることによって、コ
ンピュータシステムのベクトルプロセッサの部分の性能
を更に改良することにある。
本発明に従って、ベクトルは合計N個の要素を含むもの
と仮定する。更に、このベクトルは複数個の部分ベクト
ルに分割され、そして部分ベクトルの各々はM個の要素
を含むものと仮定する。加えて、合計M個のベクトルレ
ジスタがあり、これ等のM個のベクトルレジスタに並列
に接続された合計M個の要素プロセッサがあるものと仮
定する。
上述の本発明の目的は、各ベクトルレジスタに関連した
N要素ベクトルの最初の相次ぐM個の要素を、第1番要
素プロセッサから第1番要素プロセッサに割り当てるこ
とによって、そしてNT9素ベクトルの第2の相次ぐM
個の要素を要素プロセッサlから要素プロセッサMへ割
り当てることによって、そして残りの要素がなくなるま
でM個の要素類でN要素ベクトルの残りの相次ぐ要素を
要素プロセッサl乃至Mへ繰返し割り当てることによっ
て達成される。
E、実施例 第6図を参照すると、代表的なパイプライン・ベクトル
プロセッサ10が示されている。第6図において、複数
個のベクトルレジスタ12 (VRO乃至■R15)が
示されており、各レジスタは128個の要素(要素O乃
至要素127)を記憶する。良好な実施例では、各要素
は4バイトのバイナリワードを含む。セレクタ14は各
ベクトルレジスタ12へ接続され、ベクトルレジスタ1
2から対応する要素を選択し、そしてパイプライン処理
ユニット16へ選択された要素をゲートする。
パイプライン処理ユニット16はセレクタ14へ接続さ
れ、対応する要素を受は取って、その要素に対して、例
えば算術演算のような選択された演算を行う。例えば、
パイプライン処理ユニット16は、ベクトルレジスタV
ROから要素0及びベクトルレジスタVR15からその
対応する要素Oを受は取り、そしてVRO+VRl 5
−−−>VR3という上記の2つの要素の算術演算を遂
行する。
この算術演算において、vRO中の要素0の各バイナリ
ピットはVR15中の要素Oの各バイナリビットに加え
られ、そして結果の和はベクトルレジスタVR3の要素
Oの位置に記憶される。結果レジスタ18はパイプライ
ン処理ユニットへ接続され、パイプライン処理ユニット
16から受は取った結果の和を記憶する。結果レジスタ
18はセレクトゲルト19を介して各ベクトルレジスタ
12へ接続されており、ベクトルレジスタVR3へ結果
の和を転送する。
第6図に示された構成は成る種の欠点を持つ。
これを上述の例を引用して説明する。最初の要素はレジ
スタVROから選択され、そしてその対応要素はレジス
タVR15から選択される。要素は上述の態様で加算さ
れる。第2の要素がレジスタVRO及びVR15から選
択され・上述の態様で共に加えられる。ベクトルレジス
タVRO及びVR15に記憶されているベクトルを処理
するために、128個の各要素はレジスタVRO及びV
R15から順次に選択され、そして順次に加算されねば
ならない。従って、ベクトルレジスタV、RO及びVR
15中に記憶されたベクトルの処理を完了するのに必要
な時間はlベク)/し毎の要素の数と、lベクトル毎の
対応要素の組を処理するのに要する時間との関数である
。ベクトルプロセッサの性能は1組のベクトルレジスタ
中に記憶された一対のベクトルを処理するのに必要な時
間を減らすことによって改良することが出来る。
第6A図を参照すると、他の代表的な並列式ベクトルプ
ロセッサが3次元的に示されている。第6A図において
、複数個のベクトルレジスタVRO乃至VR15は互に
並列に配列されている。各ベクトルレジスタは第0番か
ら第xx番までの複数個の小容量レジスタに分割されて
いる。複数個のベクトルレジスタVRO乃至VR15の
中の対応する第0番の小容量レジスタの各々は1つの要
素プロセッサ、EPOに接続されている。同様に、複数
個のベクトルレジスタVRO乃至VR15の中の対応す
る第1番小容量レジスタの各々は1つの要素プロセッサ
Fillに接続されており、以下同様の接続を持つ。複
数個のベクトルレジスタVRO乃至VR15の中の各対
応小容量レジスタXXは要素プロセッサKPXXへ接続
される。要素プロセッサEPO乃至11t:PXXの出
力は1つの結合部へ結ばれており、その結合部は各ベク
トルレジスタの入力へ接続され、フィードバックされる
プロセッサ・インターフェースアダプタ(p工A)は特
定の態様で要素プロセッサ(EPO乃至11CPXX)
の入力へ接続される。その特定の態様はその特定の並列
式ベクトルプロセッサの構成に依存しており、2つの異
なった構成を第2図及び第1図を参照して説明する。本
発明の構成は第1図を参照して説明される。
第2図を参照すると、代表的な並列式ベクトルプロセッ
サが示されている。第2図において1第6図のベクトル
レジスタVRo乃至■R15の各々は、例えば4個の要
素を含む複数個の小容量レジスタに分割されている。対
応する複数個の要素プロセッサ20はベクトルレジスタ
VRO乃至■R15に記憶されたベクトルの対応要素の
処理(演算)動作を遂行するため、複数個の小容量レジ
スタ12aに接続され、各要素プロセッサ20は上記の
ベクトルの4個の対応要素の演算を遂行する。演算の結
果は、各要素プロセッサによって並列に同時に発生され
、そしてベクトルレジスタVRO乃至VR15の任意の
1つの対応する位置に記憶される。プロセッサ・インタ
ーフェースアダプタ(PIA)22は、各要素プロセッ
サへアドレス、データ及び命令情報を転送するために、
各要素プロセッサ20へ接続される。要素プロセッサ0
乃至31の各々へP工A22を接続する実際の構成は第
3図に示されている。命令処理ユニット(工PU)24
はP工A22へベクトル命令を転送するため、P工A、
22へ接続される。主メモリ、即ちストレージ26はデ
ータ情報やアドレス制御情報の要求に応答してそれ等の
情報を転送するため、P工A22へ接続される。
第3図を参照すると、第2図の代表的な並列式ベクトル
プロセッサに関連した各要素フロセッサ20へP工A2
2を接続する実際の構成が示されている。P工A22は
要素プロセッサ018.16及び24へ接続されている
。要素プロセッサOは要素プロセッサ1乃至7へ直列に
接続される。要素プロセッサ8は要素プロセッサ9乃至
15へ直列に接続される。要素プロセッサ16は要素プ
ロセッサ17乃至23へ直列に接続される。要素プロセ
ッサ24は要素プロセッサ25乃至31へ直列に接続さ
れる。
第4図を参照すると、PIA22の構成が示されている
。PIA22は命令処理ユニット(工PU)24へ接続
されているベクトル命令レジスタ(VIR)22aを含
んでおり、VIRはIPU24からベクトル命令を受は
取り、そしてベクトル命令を一時的に記憶する。ベクト
ルデータ・レジスタ(VER)22bはストレージ26
及び工PU24へ接続され、そしてストレージ26から
データを受は取り且つそのデータを一時的に記憶する。
ベクトルステータス・レジスタ(VSR)22cはスト
レージ26及び工PU24へ接続されて、ストレージか
らのアドレス制御情報を受は取り、そしてその情報を一
時的に記憶する。ピコ(p:tco)制御記憶装置22
dはV工R22aへ接続され、VIRに記憶されたベク
トル命令をデコードし且つピコ記憶装置22dに記憶さ
れたピコ制御ルーチンを選択する。コマンドレジスタ2
2eはピコ制御記憶装置22dに接続され、そして要素
プロセッサを駆動するため、コマンドバスを経て要素プ
ロセッサへ接続される。バス制御装置22fはvDR2
2bへ接続され、VDRからデータを受は取り、そして
データバスを介して要素プロセッサ20ヘデータを転送
する。バス制御装置22fはまた、1つの要素プロセッ
サから他の要素プロセッサへデータを差し向けることが
出来る。VSR22cはまた、アドレス制御装置22h
を経てバス制御装置22gへ接続される。アドレス制御
装置22hはvsR22cから受は取ったデータと対応
するアドレスを発生する。バス制御装置22gは発生さ
れるアドレスをアドレスバスを介して要素プロセッサ2
0へ転送スる。
第5図を参照すると、ブロック図による要素プロセッサ
20の構成が示されている。第5図において、ローカル
ストレージ12は第2図に示されたベクトルレジスタ1
2と同じである。システムバス11及び11aの一端は
駆動回路9へ接続され、他端は受信回路7へ接続されて
いる。第1人力データアセンブラ(ASM)l 3は駆
動回路9及び受信回路7へ接続される。ASMI 3は
更にローカルストレージ12及び要素プロセッサ20へ
接続される。第5図に示された要素プロセッサ20はロ
ーカルストレージ12及び第1人力データアセンブラ1
6へ接続される。シフト選択レジスタ20b及びフラッ
シュ選択レジスタ20cは入力データアセンブラ20a
へ接続される。フラッシュ選択レジスタ20cは真数/
補数ゲート20dへ直接接続されているのに反し、シフ
ト選択レジスタ20bは事前−シフト制御装置2Ofを
経て他の真数/補数ゲート20eへ接続されている。
真数/補数ゲー)20d及び20eの各々は算術波Wユ
ニツ) (ALU)20gへ接続される。Ar、ty2
0gは事後−シフト制御装置20+を経て結果レジスタ
20hへ接続される。結果レジスタ20hはローカルス
トレージ12へ接続され、そして要素プロセッサ20が
対応する一対のベクトルレジスタ12に記憶されている
一対のベクトルの4個の要素の算術演算を完了した時、
結果を記憶する。乗算回路20jは入力データアセンブ
ラ20a及びAr、ty20gとの間に相互接続される
乗算回路20jは2個のオペランドを受は取る。
合計出力及び繰上げ出力が乗算回路20jにより発生さ
れ、それ等はALU20gで受は取られる。
第2図の代表的な並列式ベクトルプロセッサの機能的動
作を第2図乃至第4図を参照して説明するO 命令処理ユニットエPU24は特定のデータをベクトル
レジスタVRO及びVR15ヘロードするようP工A2
2に命令する。工PU24はPIA22へロード命令を
転送する。ロード命令はV工R22aの中で一時的に記
憶される。ベクトルレジスタVRO及びVR15にロー
ドされるべきデータはストレージ26に記憶されている
。P工A22がロード命令を受は取った時、P工Aはス
トレージ26から特定のデータを取り出し、そしてVD
R22b中へそのデータをロードする。ロード命令を発
生する前に、■pu、24はvsR22cにアドレス制
御情報をロードする。その結果、特定のアドレスがアド
レス制御装置22hで発生される。アドレス情報はロー
ドされるべきデータが入る選択された要素プロセッサ2
0のアドレスと、記憶されるべきデータが入る選択され
た要素プロセッサ20に関連した選択要素のアドレスと
を含んでいる。V工R22aに記憶されたロード命令は
ピコ制御記憶装置22dによりデコードされる。
ピコ制御記憶装置22dに記憶されたロード命令に対応
するコマンド情報が選択される。アドレス制御装置22
hにより発生されたアドレス情報に従って、■DR22
bに記憶されたデータは、ノくス制御装置22f及びデ
ータバスを経て、選択された要素プロセッサ20中に記
憶するため転送される。更にまた、アドレス制御装置2
2hで発生されたアドレス情報に従って、ピコ制御記憶
装置22dに記憶され、且つデコードされたロード命令
により選択されたコマンド情報がコマンドレジスタ22
e及びコマンドバスを経て、選択された要素プロセッサ
20へ転送される。選択されたコマンド情報は、選択さ
れたプロセッサ20中に記憶されたデータを小容量レジ
スタ12aの選択された要素の中にロードさせ、そして
選択された要素はアドレス制御装置22hで発生された
アドレス情報によって識別される。
一例として、128個の要素ベクトルが各ベクトルレジ
スタVRO及びV’Rl 5中に記憶されていると仮定
する。1個の要素は4バイトのバイナリワードを含む。
更に、ベクトル算術演算、即ちVRO+VR15−−−
)VR15がベク)/l/1/ジスタVRO及びVR1
5に記憶されたベクトルに遂行されるものと仮定する。
工PU24は加算演算を遂行するようP工A22に命令
する。ここで、ベクトルレジスタVROに記憶されてい
るベクトルはベクトルレジスタVR15に記憶されてい
るベクトルに加算されるものとし、その結果はベクトル
レジスタV R,l 5に記憶されるものとする。
工PU24はこの加算命令をP工A22へ転送する。加
算命令は■工R22aの中に一時的に記憶される。加算
命令に従ってピコ制御記憶装置22dに記憶される特定
のコマンド情報が選択される。
P工A22が加算命令を受は取ると、工PU24はスト
レージ26から特定のデータを取り出す。
その特定のデータとは、小容量レジスタ中にある加算演
算を行う要素のアドレスの表示と、加算演算を行う選択
されたプロセッサ20のアドレスである。従って、アド
レス情報がアドレス制御装置22hによって発生される
。アドレス情報はバス制御装置22g及びアドレスバス
を経て選択された要素プロセッサ20へ転送される。こ
のアドレス情報に従って、ピコ制御記憶装置22dから
選択されたコマンド情報はベクトルレジスタVRO及び
VR15に対応する関連した小容量レジスタ12aの選
択された要素を検索するように、選択されたプロセッサ
20に命令する。要素が探し出されると、選択されたコ
マンド情報が選択されたプロセッサ20に加算命令を遂
行させる。例えば、ベクトルレジスタVRO及びVR1
5に記憶されているベクトルに関連した要素O乃至3は
第0番の要素プロセッサによって受は取られる。要素プ
ロセッサ0は対応する2つの要素を加算し、そして選択
されたコマンドに従って、ベクトルレジスタVR15の
対応するロケーションにその結果を記憶する。換言すれ
ば、ベクトルレジスタVROの要素0がベクトルレジス
タVR15の要素Oに加えられ、そしてその和がベクト
ルレジスタVR15の要素Oの位置に記憶される。ベク
トルレジスタVRO及びVR15の要素1.2及び3は
同様に加算されて、その和はベクトルレジスタVR15
の要素1.2及び3の位置に記憶される。ベクトルレジ
スタVRO及びVR15に関連した要素4.5.6及び
7は上述した態様で要素プロセッサ1によって処理され
、これらの要素の処理は要素0.1.2及び3の処理と
同時に遂行される。
ベクトルレジスタVRO及びVR15に記憶されている
ベクトルの残りの要素は、要素プロセッサ0による要素
0乃至3の処理及び要素プロセッサ〕−による要素4乃
至7の処理と同時に、4個の要素のグループ毎に、要素
プロセッサ2乃至31によって処理される。その結果、
ベクトルレジスタVRO及びVR15に記憶されたベク
トルに対して遂行された上述のベクトルの算術演算は、
通常のベクトル処理システムにおける128個の要素に
要する時間に比較して、ベクトルの4個の要素を処理す
るのに必要な時間で完了される。従って、第2図の並列
ベクトルプロセッサは通常のベクトルプロセッサのシス
テムを凌駕した性能を示す。
第5図に示された要素プロセッサ20の機能的動作は4
サイクル動作に分割される。それは第1サイクルとして
知られているローカルストレージの読み取り及びシフト
選択サイクルと、第2サイクルとして知られている事前
−正規化シフトサイクルと、第3サイクルとして知られ
ている算術演算(ALU)サイクルと、第4サイクルと
し゛で知られている事後−正規化シフトサイクルである
前に述べた仮定を採用して、ベクトルレジスタVRO及
びVR15の夫々の要素は共に加算され、加算演算の結
果はベクトルレジスタVROの巾ニ記憶され、要素0乃
至3はバス11aの受信装置7により受は取られて、A
SM1′5を介してローカルストレージ12に記憶され
、そしてローカルストレージ12は要素O乃至3を記憶
する第2図の第1の小容量レジスタ12aと同じである
と仮定する。更にまた、要素0乃至3は浮動小数点の要
素オペランドを、表わすものと仮定する。
第1サイクルで、レジスタVROに記憶された要素0乃
至3をレジスタVR15に記憶された要素0乃至3に加
える命令が発生されると、夫々の要素のオペランドはロ
ーカルストレージ12から読み取られて、入力データア
センブラ20aを経てフラッシュレジスタ20C及びシ
フトレジスタ2Ob中に一時的に記憶される。同時に、
夫々の要素の指数は、指数の大きさの差が計算される指
数制御路(図示せず)に入る。その結果、小さい指数を
有する要素はシフト選択レジスタ20bヘゲートされる
のに反し、大きい指数を有する要素はフラッシュ選択レ
ジスタ20cヘゲートされる。
フラッシュ選択レジスタ及びシフト選択レジスタ20c
及び20bは第1サイクルの終りでラッチクロックによ
りラッチされる。
第2サイクルの始めで、シフト動作が開始される。フラ
ッシュ選択レジスタ20cに記憶されている大きい指数
を持つ要素は算術論理ユニット(ALty)20gの1
つの入力ヘゲートされる。シフト制御情報は指数制御路
(図示せず)から事前−シフト装置20fへ通される。
事前−シフト装置において、シフト選択レジスタ20b
に記憶されている小さい指数を持つ要素は事前−シフト
装置2Ofにより右シフトされ、ALU20gの1つの
入力に現在ゲートされている大きい指数を持つ要素と桁
合せされる。同時に、ALU20gは真数/補数ゲート
20d及び20eから適当な入力を選択して、フラッシ
ュ選択レジスタ20c及びシフト選択レジスタ20bか
ら真@/補数ケー)20d及び20eを介して要素を受
は取る。
第5図の要素プロセッサ20の動作の第3サイクルは算
術論理ユニツ) (ALU)20gの算術演算に向けら
れる。ALUは、1の補数の算術演算と、循環桁上げと
、再生補数化とを具えた8バイトの高速度桁上げ先見加
算器(s −byte  highspeed car
ry 1ook aheacl adder)である。
ALUは、例えばベクトルレジスタVROと関連した小
容量レジスタ12aの1個に記憶された0乃至3の要素
である4個の各要素のビットがベクトルレジスタVR1
5と関連した4個の夫々の要素のビットに加えられる加
算演算を遂行する。加算演算の結果は最終的にローカル
レジスタ12に記憶される(例えば第2図に示されたベ
クトルレジスタVROと同様に)。然しなから、この記
憶ステップの前に、事後−正規化ステップが第4サイク
ルの間に取られねばならない。
加算演算がALU20gで完了すると、第4ステツプの
間で事後−正規化ステップが取られる。
データ処理の用語、′事後−正規化”はALUにより発
生された結果のゼロの16進デジツトを検出するための
ステップと、検出されたゼロのデジットの数に従ってそ
の結果を左シフトすることを含む。結果の指数はシフト
された各デジット毎に指数を数値1づつ減少することに
より調節しなければならない。ALU20gの出力のデ
ジットはそれ等のゼロ状態のために、事後−シフト装置
20iにより検査され、そしてALU出力の結果は検出
されたゼロのデジットの数に従って左シフトされる。A
LU出力の左シフトの結果は一時的に記憶する装置であ
る結果レジスタ20hへ通過される。
指数制御路(図示せず)は結果の要素の指数値(ALU
からの出力)を増加し又は減少するので、正しい最終指
数値が結果レジスタ20hヘゲートされる。従って、結
果の要素は結果レジスタ20hに記憶され、結果の要素
のオペランドはALU出力中で検出されたゼロのデジッ
トの数に従った適当な量だけ左シフトされ、結果の要素
の指数は正しい最終指数値である。第4サイクルに続く
次のサイクルの間で結果の要素はローカルストレージ1
2へ通される(例えばローカルストレージは要素O乃至
3を記憶する第2図の小容量レジスタ12aの1つと同
じである)。
第1図を参照すると、本発明に従った並列式ベクトルプ
ロセッサの構成が示されている。第2図に示された32
個の要素プロセッサに比べて、第1図の16個の要素プ
ロセッサが示されている。
第1図において、VRCI乃至VR15と番号を付され
た複数個のベクトルレジスタ12′が示されており、各
ベクトルレジスタは複数個の小容量レジスタ12a′に
分割されている。例えば、ベクトルレジスタVROは複
数個の小容量レジスタ12a′、ベクトルレジスタVR
2(図示せず)は複数個の小容量レジスタ12a′に分
割され、以下同様に分割され、そしてベクトルレジスタ
VR15は複数個の小容量レジスタ12a′に分割され
る。各ベクトルレジスタ12の小容量レジスタ12a′
はそれ自身の要素プロセッサへ接続さ、れ、複数個のベ
クトルレジスタVRO乃至VR15の中の対応する小容
量レジスタ12a′は同じ要素プロセッサに接続される
。例えば、要素番号0を含むベクトルレジスタVRO乃
至VR15中の小容量レジスタ12a′は同じ要素プロ
セッサ20′、即ち要素プロセッサ0へ接続されており
、要素番号1を含むベクトルレジスタVRO乃至VR1
5の中の小容量レジスタは同じ要素プロセッサ即ち要素
プロセッサ1に接続されている等々である。要素番号1
5を含む小容量レジスタは要素プロセッサ15へ接続さ
れる。然しなから、要素番号16を含む小容量レジスタ
は再び要素プロセッサOへ接続される。このサイクルは
、すべての要素が要素プロセッサに割り当てられるまで
繰返される。事実、N要素のベクトルの相次ぐ最初のM
個の要素は要素プロセッサ1乃至Mへ割り当てられ、N
要素ベクトルの残りの相次ぐ要素はM個の要素の順序で
要素プロセッサl乃至Mに割り当てられる。
各要素プロセッサ20′の出力は各ベクトルレジスタ1
2へ接続される。
P工A22′は各要素プロセッサ20′へ接続され、接
続の方法は第1図に示されており、より細部については
第7図に示されている。
各要素プロセッサ20′の構成は第5図に示された要素
プロセッサ20の構成と同じである。
本発明に従った並列式ベクトルプロセッサの機能的動作
は第1図を参照して以下に説明する。機能的動作は4つ
の動作モード、即ち、(1)ブロードキャスト(bro
adcast)モード、BOモード、(2)単一プロセ
ッサ(single  processor)モード、
spモード、(3)自動ブロードキャスト(broac
l−caat  auto)モード、BAモード、そし
て(4)インタ“プロセッサ(inter−proce
ssor)モード、IPモードである。
第1図において、ブロードキャス) (BO)モードを
利用する時、ベクトル演算、即ちVRO十VRl 5−
−−)VRl 5が遂行されるものと仮定する。この場
合、ベクトルレジスタVROの第1列のすべての要素(
要素0乃至15)はベクトルレジスタVR15の最初の
列中のすべての要素(要素0乃至15)に同時に且つ並
列に加算され、そして加算演算の結果はベクトルレジス
タVR15の最初の列(要素O乃至15が記憶されてい
た場所)に記憶される。次に、ベクトルレジスタVRO
の要fg 1.6乃至31がベクトルレジスタVR15
の要素16乃至31へ加えられ、そしてその結果は、要
素16乃至31が記憶されているベクトルレジスタVR
15の第2列に記憶される。この加算演算は、ベクトル
レジスタVROの要素112乃至127がベクトルレジ
スタVR15の要−X112乃至127に加えられ、且
つ加算演算の結果が要fi112乃至127がある、ベ
クトルレジスタVR15の最後の列に記憶されるまで繰
返される。
単一プロセッサ(sp)モードが利用される時、ベクト
ルレジスタVROはストレージから検索された別個のオ
ペランドに加算されること、換言すれば、VRO+スト
レージー−−>VROの加算演算が行われるものと仮定
する。この場合、加算演算は並列でなく順次に行われね
ばならない。即ち要素Oは他のオペランド(ストレージ
からの)に加えられて、その結果は要素0のスロットに
置かれ、要素1は他のオペランドに加えられて、その結
果は要素lのスロットに置かれるなど同様のことが続き
、要素126が他のオペランドに加えられて、その結果
が要素126のスロットに置かれ、そして要素127が
他のオペランドに加えられて、その結果がベクトルレジ
スタVROの要素127に置かれるまで繰返す。
第2図に示したベクトルレジスタの構成を凌駕した第1
図のベクトルレジスタの構成の利点は以下の通りである
。第1図において、既に述べたように、オペランドをス
トレージ又はGPRから取り出した時、要素0と他のオ
ペランド(GPR又はストレージからの)との加算演算
が要素プロセッサOによって完了されるのを待つことな
く、要素プロセッサ1は他のオペランドへ要素lを加え
る順次の加算演算を開始する。第2図においては、然し
なから、要素プロセッサ0がVROの要素Oを他のオペ
ランド(GPR又はストレージからの)へ加算している
時は、要素プロセッサ0はVROの要素1を他のオペラ
ンドに加えることは出来ない。言い換えると、第2図の
プロセッサにおける要素lと他のオペランドとの加算演
算は、ストレージから取り出された他のオペランドと要
素0との加算演算が完了するまで待たなければならない
第2図及び第1図において、要素0の処理が同時に開始
されるものと仮定した場合、ストレージからオペランド
を取り出すのに要する時間はlサイクルであり、要素プ
ロセッサにおいて加算演算を行うに要する時間は5サイ
クルなので、第1図の構成における要素1の処理は第2
図の構成における要素1の処理より以前の時間で始まる
。従って第1図に示されたベクトルプロセッサの性能は
第2図に示されたベクトルプロセッサに比較して改良さ
れている。
自動ブロードキャスト(BA)モードが利用された時、
すべての要素プロセッサ(xpo乃至KPI5)は同じ
命令を実行する。各要素プ西セッサは対応する小容量レ
ジスタ12a′の最初の要素をアドレスし、次に、対応
する小容量レジスタ12a′中の残りの7個の要素を続
けてアドレスし、これにより要素プロセッサの小容量レ
ジスタ中に記憶された8個の要素すべての算術演算を”
自動的に”遂行する。ベクトルレジスタの小容量レジス
タ中に記憶されている8個の要素は対応する要素プロセ
ッサによって”バイブラインされた“オーバラップモー
ドで処理され、すべての要素プロセッサ(KPI乃至K
PI5)はこの演算を行い、且つ並列に命令を実行する
インク・プロセッサ(IP)モードを利用する時、デー
タは第4図に示されたPIAの制御の下で、要素プロセ
ッサ(BOPO乃至]DP15)の間で転送される。デ
ータは転送プロセッサによりデータバスに置かれ、そし
て受は取りプロセッサによってデータバスから取り出さ
れる。双方向性バス制御装置が動作を制御するPIAに
より遂行される。対応する要素プロセッサ中にある、部
分和の合計を要求する命令と、ベクトルプロセッサ中の
ベクトルレジスタの″サーチ″を含む命令とによって、
このモードが使われる。
F1発明の詳細 な説明したように、本発明の並列式ベクトルプロセッサ
は、ベクトル要素の最初のものから順次に処理が行なわ
れる点に特徴を有している。従ってベクトル要素を順次
に処理してゆく場合及びベクトル長がベクトル・レジス
タの長さよりも短かい場合等には、従来の並列式ベクト
ルプロセッサ以上に高速に処理を行なうことができる。
【図面の簡単な説明】
第1図は本発明に従った第6A図の代表的な並列式ベク
トルプロセッサを説明するための図、第2図はベクトル
レジスタが複数個の小容量レジスタに分割されている第
6A図の代表的な並列式バク1〜ルレジスタを説明する
ための図、第3図は第2図の要素プロセッサの各々とプ
ロセッサ・インターフェースアダプタとの接続を説明す
る図、第4図は第2図及び第3図のプロセッサ・インタ
ーフェースアダプタの構成を説明する図、第5図は第2
図及び第3図に示された要素プロセッサの細部の構成を
説明するための図、第6図は代表的なベクトルプロセッ
サを説明するための図、第6A図は他の代表的な3次元
の並列式ベクトルプロセッサを説明するための図、第7
図は第1図に示され本発明に従った並列式ベクトルプロ
セッサに関連した要素プロセッサの各々にPIAを接続
した態様を説明するための図である。 10・・・・パイプライン・ベクトルプロセッサ、12
・・・・ベクトルレジスタ、14・・・・セレクタ、1
6・・・・パイプライン処理ユニット、18.20h・
・・・結果レジスタ、19・・・・セレクトゲート、2
0・・・・要素プロセッサ、20a・・・・入力データ
・アセンブラ、20b・・・・シフト選択レジスタ、2
Oc・・・・フラッシュ選択レジスタ、20d、20e
・・・・真数補数ゲート、2Of・・・・事前−シフト
選択装置、20g・・・・ALU(算術演算ユニット)
、22j・・・・乗算回路、22・・・・PIA(プロ
セッサ・インターフェースアダプタ)、22a・・・・
VIR(命令レジスタ)、22b・・・・VDR(ベク
・トルデータ・レジスタ)、22c・・・・VSR(ベ
クトルステータス・レジスタ)、22d・・・・ピコ制
御記憶装置、22e・・・・命令レジスタ、22’f、
22g・・・・バス制御装置、22h・・・・アドレス
制御装置、24・・・・IPU(命令処理ユニット)、
26・・・・ストレージ。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名)

Claims (1)

  1. 【特許請求の範囲】 各々複数の小レジスタに分割された複数のベクトル・レ
    ジスタと、 上記各ベクトル・レジスタの複数の小レジスタにそれぞ
    れ接続された複数のプロセッサ装置と、上記ベクトル・
    レジスタに記憶されるベクトルの連続した要素を上記ベ
    クトル・レジスタ中の別々の小レジスタに記憶させる手
    段とを有するベクトル・プロセッサ。
JP60283216A 1985-03-13 1985-12-18 ベクトル・プロセツサ Pending JPS61208570A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71132985A 1985-03-13 1985-03-13
US711329 1985-03-13

Publications (1)

Publication Number Publication Date
JPS61208570A true JPS61208570A (ja) 1986-09-16

Family

ID=24857652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60283216A Pending JPS61208570A (ja) 1985-03-13 1985-12-18 ベクトル・プロセツサ

Country Status (5)

Country Link
US (1) US4884190A (ja)
EP (1) EP0195245B1 (ja)
JP (1) JPS61208570A (ja)
CA (1) CA1233260A (ja)
DE (1) DE3686828T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271764A (ja) * 1994-03-24 1995-10-20 Internatl Business Mach Corp <Ibm> 計算機プロセッサ及びシステム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1309665C (en) * 1987-06-27 1992-11-03 Kenzo Akagiri Amplitude compressing/expanding circuit
US4933895A (en) * 1987-07-10 1990-06-12 Hughes Aircraft Company Cellular array having data dependent processing capabilities
US5121479A (en) * 1988-01-27 1992-06-09 Storage Technology Corporation Early start mode data transfer apparatus
JP2806524B2 (ja) * 1988-03-04 1998-09-30 日本電気株式会社 ベクトル演算命令発行制御方法
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
WO1990004235A1 (en) * 1988-10-07 1990-04-19 Martin Marietta Corporation Parallel data processor
ES2109256T3 (es) * 1990-05-25 1998-01-16 At & T Corp Disposicion de bus de acceso a memoria.
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
CA2078913A1 (en) * 1991-12-12 1993-06-13 John J. Reilly Interprocessor communication system and method for multiprocessor circuitry
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
US5623685A (en) * 1994-12-01 1997-04-22 Cray Research, Inc. Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5913069A (en) * 1997-12-10 1999-06-15 Cray Research, Inc. Interleaving memory in distributed vector architecture multiprocessor system
US5946496A (en) * 1997-12-10 1999-08-31 Cray Research, Inc. Distributed vector architecture
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6173388B1 (en) 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
GB2424503B (en) * 2002-09-17 2007-06-20 Micron Technology Inc An active memory device
US8200945B2 (en) * 2003-11-07 2012-06-12 International Business Machines Corporation Vector unit in a processor enabled to replicate data on a first portion of a data bus to primary and secondary registers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58149555A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置
JPS58149556A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3106689A (en) * 1959-11-20 1963-10-08 Bbc Brown Boveri & Cie Electrical filter for direct current circuit
US4041471A (en) * 1975-04-14 1977-08-09 Scientific Micro Systems, Inc. Data processing system including a plurality of programmed machines and particularly including a supervisor machine and an object machine
US4041461A (en) * 1975-07-25 1977-08-09 International Business Machines Corporation Signal analyzer system
US4171536A (en) * 1976-05-03 1979-10-16 International Business Machines Corporation Microprocessor system
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4179734A (en) * 1976-07-02 1979-12-18 Floating Point Systems, Inc. Floating point data processor having fast access memory means
JPS5852265B2 (ja) * 1977-01-12 1983-11-21 株式会社日立製作所 デ−タ処理装置
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
US4162534A (en) * 1977-07-29 1979-07-24 Burroughs Corporation Parallel alignment network for d-ordered vector elements
US4287566A (en) * 1979-09-28 1981-09-01 Culler-Harrison Inc. Array processor with parallel operations per instruction
US4298936A (en) * 1979-11-15 1981-11-03 Analogic Corporation Array Processor
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
US4745546A (en) * 1982-06-25 1988-05-17 Hughes Aircraft Company Column shorted and full array shorted functional plane for use in a modular array processor and method for using same
JPS6083176A (ja) * 1983-10-03 1985-05-11 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトルプロセツサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58149555A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置
JPS58149556A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271764A (ja) * 1994-03-24 1995-10-20 Internatl Business Mach Corp <Ibm> 計算機プロセッサ及びシステム

Also Published As

Publication number Publication date
CA1233260A (en) 1988-02-23
EP0195245B1 (en) 1992-09-30
EP0195245A2 (en) 1986-09-24
US4884190A (en) 1989-11-28
DE3686828D1 (de) 1992-11-05
EP0195245A3 (en) 1989-05-03
DE3686828T2 (de) 1993-04-01

Similar Documents

Publication Publication Date Title
JPS61208570A (ja) ベクトル・プロセツサ
US4075704A (en) Floating point data processor for high speech operation
US5287532A (en) Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte
CA1047167A (en) Advanced array transform processor with fixed/floating point formats
US3833889A (en) Multi-mode data processing system
US3462741A (en) Automatic control of peripheral processors
JPH0652530B2 (ja) ベクトル・プロセッサ
EP0450802A2 (en) Arithmetic unit
US4888682A (en) Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
EP0135721B1 (en) High performance parallel vector processor
US4791555A (en) Vector processing unit
JPH0145649B2 (ja)
US4794518A (en) Pipeline control system for an execution section of a pipeline computer with multiple selectable control registers in an address control stage
US4823258A (en) Index limited continuous operation vector processor
US4086474A (en) Multiplication technique in a data processing system
US3737871A (en) Stack register renamer
EP0141232B1 (en) Vector processing unit
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US3346727A (en) Justification of operands in an arithmetic unit
US3001708A (en) Central control circuit for computers
US4800491A (en) Register-stack apparatus
US3260840A (en) Variable mode arithmetic circuits with carry select
US3689893A (en) Accounting machine processor
US3405396A (en) Digital data processing systems
US4437165A (en) Overflow detection for a decimal arithmetic unit