JP2625510B2 - 計算機システム - Google Patents

計算機システム

Info

Publication number
JP2625510B2
JP2625510B2 JP18019888A JP18019888A JP2625510B2 JP 2625510 B2 JP2625510 B2 JP 2625510B2 JP 18019888 A JP18019888 A JP 18019888A JP 18019888 A JP18019888 A JP 18019888A JP 2625510 B2 JP2625510 B2 JP 2625510B2
Authority
JP
Japan
Prior art keywords
vector
register
address
operand
value
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
JP18019888A
Other languages
English (en)
Other versions
JPH0231277A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP18019888A priority Critical patent/JP2625510B2/ja
Publication of JPH0231277A publication Critical patent/JPH0231277A/ja
Application granted granted Critical
Publication of JP2625510B2 publication Critical patent/JP2625510B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ベクトルレジスタを持たない汎用の計算機
システムに係り、特に、粒子推進タイプのリスト演算の
高速化に最適な計算機システムに関する。
〔従来の技術〕
リスト演算を高速に行うことを可能にした計算機シス
テムに関する従来技術として、例えば、特開昭61−1733
45号公報等に記載された技術が知られている。まず、本
発明が適用される汎用計算機システムを図面により説明
する。
第4図は本発明が適用される従来技術による汎用計算
機システムの構成を示すブロツク図である。
第4図において、命令制御部1は、該計算機システム
で実行される命令の解読、演算部2や記憶制御部3への
動作指令、命令実行順序の制御等を行う。演算部2は命
令の実行を行う。記憶制御部3は、主記憶装置4に対す
るデータの読み出し(以下、フエツチと呼ぶことにす
る)、データの格納(以下、ストアと呼ぶことにする)
を行う。主記憶装置4は、アドレスづけされた記憶媒体
であり、記憶制御部3の指令により、データの読み出
し、格納を行う。以後、アドレスというときは、主記憶
装置4のアドレスを指すものとする。汎用レジスタ群5
は、番号づけされた複数のレジスタからなり、使用する
レジスタ番号は、命令中で指定される。
さて、第4図で示される汎用計算機でベクトル演算を
行う場合、通常、演算部2の中にベクトル演算を高速に
行う機構として内蔵アレイプロセツサ(IAP:Integrated
Array Processor)を付加する。このIAPについては、
例えば、HITAC M−180/200H/280H内蔵アレイプロセツ
サ解説書(資料番号8080−2−041−20)に述べられて
いる。こゝで、IAPを使用する命令をIAP命令(ベクトル
命令)と呼ぶ。
IAP命令の形式を第5図に示す。命令の動作は「Bフ
イールドに示された汎用レジスタの値+Dフイールドの
値」によつて指定される。R1フイールドで示された汎用
レジスタは、演算すべきベクトル要素の起点を示す初期
カウントを格納する。R1+1で示された汎用レジスタ
は、演算回数に対応するベクトル長を格納する。R3フイ
ールドで示された汎用レジスタは、OAV(Operand Addre
ss Vector)の最初のバイトの主記憶アドレスを与え
る。OAVは、ベクトルオペランドに対するVDT(Vector D
escriptor Table)のアドレスを与える主記憶上のテー
ブルである。具体的には、第5図に示すように、VDT2
(第2オペランドのVDT)の先頭アドレス、VDT3(第3
オペランドのVDT)先頭アドレス、VDT1(第1オペラン
ドのVDT)の先頭アドレス、マスクベクトル・アドレス
から成る。
VDTは、第6図に示す形式をしており、最左端または
最右端のベクトル要素アドレス(すなわち演算の対称と
なる最初のベクトル要素のアドレス)、フラグ、インク
リメント値(ベクトル要素間の間隔)から成る。
マスクベクトルは、0または1のビツト列であり、第
7図に示す形式をしている。マスクベクトルの各々のビ
ツトがオペレーシヨン単位に対応する。つまり、左端の
ビツトが初期カウント0に対応し、順次右へ1,2,……に
対応する。マスクベクトルの長さ(n+1)は、R1フイ
ールド中の数+1で示された汎用レジスタに示された数
である。
IAP命令は、第2オペランドと第3オペランドを演算
して、第1オペランドに書き込む命令である。演算の種
類は、前述の「Bフイールドに示された汎用レジスタの
値+Dフイールドの値」によつて指定され、各オペラン
ドベクトルのアドレスは前述のVDTに示される。演算の
最初のオペランドの位置は、各オペランドの先頭アドレ
スに、前述のR1フイールドで示される初期カウントとVD
T中のインクリメント値の積を代数的に加算することに
よつて得られる。R1フイールドで示される汎用レジスタ
の内容は、1組のベクトル要素に対する演算が終了する
たびに1ずつ加算され、次の演算は、各オペランドの先
頭アドレスに、この更新されたR1レジスタ中の数とVDT
中のインクリメント値の積を代数的に加算したアドレス
にあるオペランドに対して行われる。そして、R1レジス
タの内容がR1+1レジスタの内容と等しくなつたとき、
命令の実行は終了する。なお、マスクベクトルは、演算
の実行の許可を行うものである。
ところで、一般に、科学技術計算では、次のような、
フオートラン文で記述されたプログラムがよくある。
DO 10 I=1,100 ……(2) J=C(I) (3) K=D(I) (4) A(J)=A(K)+B(I) (5) 10 CONTINUE (6) このプログラムは、加算の左辺の配列の引数及び右辺
の配列の引数が共に配列となつている。
配列の引数が配列となつている場合の演算を、一般
に、リスト演算と呼ぶが、このタイプのプログラム、す
なわち、第1の配列の要素が要素番号になつている第2
の配列と、通常の(要素番号が順番についている)第3
の配列とを要素毎に演算して、その演算結果を、前記第
1の配列の第4の配列の要素の示す要素番号に格納する
演算は、科学技術計算の分野の中でも、特に、粒子推進
の分野によく利用されるので、以後、この演算を粒子推
進タイプのリスト演算と呼ぶことにする。
第4図に示す従来技術は、この粒子推進タイプのリス
ト演算についてはベクトル化されていなかつた。すなわ
ち、この演算は、前述したIAP命令のように、ベクトル
演算を行う命令の列に展開できなかつた。
リスト演算をベクトル化する技術として、前記公報、
すなわち、特開昭61−173345号公報に記載された従来技
術が知られているが、この公報に記載された従来技術
は、次のようなフオートラン文で記述されたプログラム
のみをベクトル化することが可能である。
DO 10 I=1,100 A(I)=B(C(I)) 10 CONTINUE すなわち、前記従来技術は、式の右辺または左辺の配
列のいずれか一方の引数が配列になつていて、しかも、
単に、データを移動するだけで演算を行わない場合にし
かベクトル化できないものであつた。
〔発明が解決しようとする課題〕
前述したように、従来技術によるIAPを付加した汎用
計算機システムは、前述の粒子推進タイプのリスト演算
をサポートする構成となつていなかつた。従つて、前記
従来技術は、粒子推進タイプのリスト演算を行う場合に
は、要素を1個ずつ処理しなければならず、すなわち、
ベクトル要素を1個ずつロード命令、ストア命令等を用
いて処理しなければならず、演算時間が長く必要になる
という問題点があつた。
本発明の目的は、前記従来技術の問題点を解決し、粒
子推進タイプのリスト演算をベクトル演算として高速に
実行することを可能とした計算機システムを提供するこ
とにある。
〔課題を解決するための手段〕 本発明によれば、前記目的は、第1のリストベクトル
の要素アドレスを計算する手段と、該手段により算出さ
れたアドレスから、第1のリストベクトルの要素をフエ
ツチし、該要素を整数倍した値と第1オペランドベクト
ルの先頭アドレスとを加えたアドレスから第1オペラン
ドベクトル要素をフエツチし、第2オペランドベクトル
の要素アドレスを計算する手段と、該手段により算出さ
れたアドレスから、第2オペランドベクトル要素をフエ
ツチし、第2のリストベクトルの要素アドレスを計算す
る手段と、該手段により算出されたアドレスから、第2
のリストベクトルの要素をフエツチし、その要素を整数
倍した値と第1オペランドベクトルの先頭アドレスとを
加えたアドレスに、前記第1オペランドベクトル要素と
前記第2オペランドベクトル要素とを演算した結果をス
トアする手段とを備えることにより達成される。
〔作 用〕
前述のフオートラン文により記述されたプログラムの
式(2)〜式(6)について考える。これらの式におい
て、配列C,Dは、それぞれ、第2のリストベクトル、第
1のリストベクトルに対応する。また、配列A,Bは、そ
れぞれ、第1オペランドベクトル、第2オペランドベク
トルとに対応する。
そして、前述のようにして得られた第1のリストベク
トルの要素は、式(4)のKに対応する。従つて、前述
のようにリストベクトル要素を要素番号として得た第1
オペランドベクトル要素は、式(5)のA(K)に対応
する。
前述のようにして得られた第2オペランドベクトル要
素は、式(5)のB(I)に対応する。従つて、ストア
する結果は、式(5)の右辺に示すA(K)+B(I)
となる。
さらに、前述のようにして得られた第2のリストベク
トルの要素は、式(3)のJに対応する。従つて、前述
のようにして得られたストアのアドレスは、式(5)の
左辺A(J)となる。
従つて、前述の操作は、式(5)を満足させているの
で、この操作をベクトルの要素長回繰返して行うことに
より、前述のフオートラン文により記述された式(2)
〜(6)のプログラムは、ベクトル演算として実行する
ことができる。
〔実施例〕
以下、本発明による計算機システムの一実施例を図面
により詳細に説明する。
第1図は本発明の一実施例の構成を示すブロツク図、
第2図は動作を説明するフローチヤート、第3図はVEAX
命令の形式を説明する図である。第1図において、1,1
3,36,40はフエツチアドレスレジスタ、11,15,27,37,41
はインクリメントレジスタ、12,16,28,38,42はアドレス
加算器、14,44は初期アドレスレジスタ、21,46,47,48は
フエツチデータレジスタ、22,50はシフタ、23はストア
データレジスタ、26はストアアドレスレジスタ、30,51
はレジスタ、45,49はシフトカウントレジスタ、53,54,5
7,58はセレクタである。
まずはじめに、リストベクトルについて説明する。リ
ストベクトルは、次に説明するような働きをする。
いま、Jをある整数とすると、通常のIAP命令のベク
トルオペランドのJ番目の要素アドレスは、ベクトル先
頭アドレスに、インクリメント値を(J−1)倍した値
を加えた値である(ベクトル先頭アドレスとインクリメ
ント値とは、VDT内で示される)。
これに対し、リストベクトルで指定されたベクトルオ
ペラントのJ番目の要素アドレスは、ベクトル先頭アド
レスに、リストベクトルのJ番目の要素を、扱うデータ
長に応じて何倍かした値を加えた値である。通常、その
倍数は、ベクトルオペランドデータのデータ長が4バイ
トか8バイトかに応じて、それぞれ、4倍まはた8倍で
ある。
本発明においては、前述の粒子推進タイプのリスト演
算を実現するIAP命令として、VEAX(Vector Elementwis
e Add Indxed)命令を設定し、次に説明するような仕
様とする。
VEAX命令:第1リストベクトルで指定される第1オペラ
ンドベクトルの各ベクトル要素と、第2オペランドベク
トルの各ベクトル要素とを加え、その結果を、第2リス
トベクトルで指定される第1オペランドベクトルの各ベ
クトル要素の主記憶上の位置に格納する。
このようなVEAX命令の仕様を数式で表わすと、次のよ
うになる。
X(M(i))=X(L(i))+Y(i) ………(1) 但し、X:第1オペランドベクトル Y:第2オペランドベクトル L:第1リストベクトル M:第2リストベクトル i:ベクトル要素番号 このVEAX命令のオペランド指定形式は、第3図に示す
ような形式となり、以下、これについて説明する。
第3図において、オペランド・アドレス・ベクトルOA
Vは、第1リストベクトルのVDTの先端アドレス、第2リ
ストベクトルのVDTの先頭アドレス、第2オペランドベ
クトルのVDTの先頭アドレス及び第1オペランドベクト
ルのVDTの先頭アドレスから成る。
第1リストベクトルのVDTは、リストベクトル先頭ア
ドレスとインクリメント値とから成る。第1リストベク
トルの最初のベクトル要素のアドレスは、第1リストベ
クトルのVDT内に示されたリストベクトル先頭アドレス
に、R1フイールドで示される汎用レジスタ内に格納され
ている初期カウント値と第1リストベクトルのVDT内の
インクリメント値との積を加えることによつて得ること
ができる。このアドレスを用いることにより、第1リス
トベクトルの最初のベクトル要素を得ることができる。
第2リストベクトルに関しても、第1リストベクトル
の場合と同様にして、第2リストベクトルの最初のベク
トル要素を得ることが可能である。
第1オペランドベクトルの最初の被演算ベクトル要素
のアドレスは、第1オペランドベクトルのVDTに示され
た、第1オペランドベクトルの先頭アドレスに、前記第
1リストベクトルの最初のベクトル要素の4倍(オペラ
ンドが32ビツトデータの場合)、または8倍(オペラン
ドが64ビツトデータの場合)を加えた値である。このア
ドレスを用いることにより、第1オペランドベクトルの
最初の被演算ベクトル要素を求めることができる。
第2オペランドベクトルのベクトル要素のアドレス
は、すでに述べた通常のIAP命令の場合と同様に求める
ことができ、このアドレスにより、第2オペランドベク
トルの最初の被演算ベクトル要素を求めることができ
る。
前述により求められた第1オペランドベクトルと第2
オペランドベクトルのそれぞれの最初の被演算ベクトル
要素は、加算される。その加算結果は、第1オペランド
ベクトルの、主記憶上の最初の結果格納アドレスに格納
される。この第1オペランドの最初の結果格納アドレス
は、第1オペランドベクトルのVDTに示された、第1オ
ペランドベクトルの先頭アドレスに、前述の第2リスト
ベクトルの最初のベクトル要素の4倍(オペランドが32
ビツトデータの場合)、または8倍(オペランドが64ビ
ツトデータの場合)を加えた値である。
R1フイールドで示される汎用レジスタの内容は、1組
のベクトル要素に対する演算、この場合、第1リストベ
クトルで示された第1オペランドベクトル要素と、第2
オペランドベクトル要素とを加算して、その加算結果
を、第2リストベクトルで示された第1オペランドアド
レスに格納する処理が終了するたびに、1ずつ加算され
る。
次の演算の被演算要素となる第1オペランドベクトル
の要素は、第1リストベクトル先頭アドレスに、この更
新されたR1レジスタの内容とVDT中のインクリメント値
との積を代数的に加算することによつて得られるアドレ
スにある第1リストベクトル要素を用いて指定される。
この指定は、前述と同様に、第1オペランドの先頭アド
レスに、前記第1リストベクトル要素の4倍または8倍
を加えることにより行われる。
また、次の演算の被演算要素となる第2オペランドベ
クトル要素は、前記更新されたR1レジスタの内容を用い
て、前述した通常のIAP命令と同様に求めることができ
る。
次の演算の結果の格納アドレスは、第2リストベクト
ル先頭アドレスに、更新されたR1レジスタの値とVDT内
のインクリメント値との積を代数的に加算することによ
り得られるアドレスにある第2リストベクトル要素を用
いて指定される。この指定は、前述と同様に、第1オペ
ランドの先頭アドレスに、前記第2リストベクトル要素
の4倍または8倍を加えることにより行われる。
R1レジスタの内容がR1+1レジスタの内容と等しくな
つたとき、命令の実行は終了する。
次に、第1図,第2図により本発明の一実施例の構成
と動作を説明する。
第1図は本発明を適用した第4図に示す汎用計算機の
演算部2の詳細を示すブロツク図である。
第1図において、フエツチアドレスレジスタ10,12に
は、フエツチすべきデータのアドレスがセツトされる。
該レジスタ10,13にセツトされたアドレスは、それぞ
れ、フエツチアドレス線17,18を介して記憶制御部3に
送られ、そのアドレスにおける主記憶装置4内のデータ
が、それぞれ、フエツチデータ線19,20上に読み出され
る。なお、本発明による計算機システムにおいては、フ
エツチアドレス線17,18によるフエツチ動作は、同時に
行うことができるものとする。フエツチデータレジスタ
21は、主記憶装置4から読み出されたデータがフエツチ
データ線19を介して与えられ、これを格納する。シフタ
22は、このレジスタ21に格納されたデータを、シフトカ
ウントレジスタ45にセツトされている値だけ左または右
にシフトし、このシフトされたデータがレジスタ30に格
納される。ストアアドレスレジスタ26には、主記憶装置
4内にストアすべきデータのアドレスがセツトされる。
この場合のストア動作は、記憶制御部3が、ストアデー
タレジスタ23内のデータを、ストアデータ線24を介して
入手し、このデータをストアアドレス線29を介して入手
するストアアドレスレジスタ26内の主記憶装置アドレス
にストアすることにより行われる。演算器33は、データ
線31とデータ線32に送られるデータに対して演算を行
い、その結果を前記ストアデータレジスタ23にセツトす
る。
本発明は、前述の構成に、さらに、インクリメントレ
ジスタ11,15,37,41,27、初期アドレスレジスタ14,44、
アドレス加算器12,16,38,42,28、フエツチアドレスレジ
スタ36,40、フエツチデータレジスタ47,48、シフタ50、
レジスタ51、及び信号線25,52を備えて構成した点に特
徴を有する。
インクリメントレジスタ11,41には、それぞれ、第1,
第2リストベクトルのインクリメント値(第3図により
説明したように、第1,第2リストベクトルのVDT内にセ
ツトされている)が格納される。初期アドレスレジスタ
14,44には、その両方に、第1オペランドベクトルの先
頭アドレス(第3図により説明したように、第1オペラ
ンドベクトルのVDT内にセツトされている)が格納され
る。なお、これらのレジスタ14,44は同一のものを共通
に用いてもよいが、ここでは、説明の便宜上、別々に備
えるものとする。インクリメントレジスタ37には、第2
オペランドベクトルのインクリメント値(第3図により
説明したように、第2オペランドベクトルのVDT内にセ
ツトされている)が格納される。フエツチデータレジス
タ48は、主記憶装置4から読み出されたデータが、フエ
ツチデータ線20を介して格納される。シフタ50は、前記
レジスタ48にセツトされたデータを、シフトカウントレ
ジスタ49にセツトされている値だけ、左または右にシフ
トし、このシフトされたデータは、レジスタ51に格納さ
れる。インクリメントレジスタ15,27には、それぞれ、
レジスタ30,51内の値が信号線25,52を介してセツトされ
る。フエツチアドレスレジスタ36,40にセツトされたア
ドレスは、それぞれ、フエツチアドレス線17,18を介し
て、記憶制御部3に送られ、そのアドレスにおける主記
憶装置4内のデータが読み出される。
ここで、セレクタ53は、フエツチアドレスレジスタ10
からのフエツチアドレス線34、フエツチアドレスレジス
タ36からのフエツチアドレス線39のいずれか一方を選択
し、フエツチアドレス線17に接続し、セレクタ54は、フ
エツチアドレスレジスタ13からのフエツチアドレス線3
5、フエツチアドレスレジスタ40からのフエツチアドレ
ス線54のいずれか一方を選択し、フエツチアドレス線18
に接続する。
フエツチデータレジスタ46,47は、主記憶装置4から
読み出されたデータを、それぞれ、フエツチデータ線2
0,19を介して格納する。これらのフエツチデータレジス
タ46,47に格納されたデータは、それぞれ、データ線55,
56を介して演算器33に入力される。このとき、セレクタ
57,58は、前記データ線55,56を選択して、演算器33に対
する入力データ線31,32に接続する。
アドレス加算器12は、フエツチアドレスレジスタ10内
の値と、インクリメントレジスタ11内の値とを加算し、
その加算結果をフエツチアドレスレジスタ10に再格納す
る。アドレス加算器16は、初期アドレスレジスタ14内の
値とインクリメントレジスタ15内の値とを加算し、フエ
ツチアドレスレジスタ13に格納する。アドレス加算器38
は、フエツチアドレスレジスタ36内の値と、インクリメ
ントレジスタ37内の値とを加算し、その加算結果をフエ
ツチアドレスレジスタ36に再格納する。アドレス加算器
42は、フエツチアドレスレジスタ40内の値と、インクン
リメントレジスタ41内の値とを加算し、その結果をフエ
ツチアドレスレジスタ40に再格納する。さらに、アドレ
ス加算器28は、初期アドレスレジスタ44内の値と、イン
クリメントレジスタ27内の値とを加算し、その結果をス
トアアドレスレジスタ26に格納する。
本発明の一実施例による演算部2を構成する各機能要
素は、前述のような各種データを保持するとともに、前
述のような演算処理を行つている。以下、これらの機能
要素により、第1図に示す演算部が、VEAX命令を実行す
る場合の動作を、本発明の一実施例の動作例として説明
する。
本発明による演算部2は、マイクロプログラムで制御
されるものとする。VEAX命令のマイクロプログラムによ
る処理の流れが第2図に示されている。
第2図に示す処理に先立つて、命令制御部1は、フエ
ツチアドレスレジスタ10に、第1リストベクトルの先頭
アドレス(第3図により説明した第1リストベクトルの
VDT内にセツトされている)を格納し、インクリメント
レジスタ11に、第1リストベクトルのインクリメント値
を格納し、初期アドレスレジスタ14は、第1オペランド
ベクトルの先頭アドレス(第3図により説明した第1オ
ペランドベクトルのVDT内にセツトされている)を格納
し、フエツチアドレスレジスタ36に、第2リストベクト
ルの先頭アドレス(第3図により説明した第2オペラン
ドベクトルのVDT内にセツトされている)を格納し、イ
ンクリメントレジスタ37に、第2リストベクトルのイン
クリメント値を格納し、フエツチアドレスレジスタ40
に、第2オペランドベクトルの先頭アドレス(第3図に
より説明した第2オペランドベクトルのVDT内にセツト
されている)を格納し、インクリメントレジスタ41に、
第2オペランドベクトルのインクリメント値を格納し、
初期アドレスレジスタ44に、第1オペランドベクトルの
先頭アドレスを格納し、シフトカウントレジスタ45,49
に、オペランドデータが32ビツトデータの場合“4"を、
オペランドデータが64ビツトデータの場合“8"を格納す
る処理を行う。
前述の処理が前処理として命令制御部2により実行さ
れ、その後、第2図に示すステツプが順次実行される。
(1).フエツチレジスタ10の値をアドレスとして、主
記憶装置4からデータを読み出す。このとき、セレクタ
53は、データ線34を選択している。主記憶装置4から読
み出されたデータが、第1リストベクトルの最初の要素
である。また、フエツチアドレスレジスタ40の値をアド
レスとして、主記憶装置4からデータを読み出す。この
とき、セレクタ54は、データ線43を選択している。この
読み出されたデータが、第2リストベクトルの最初の要
素である。さらに、リストベクトルの1要素を処理し
た、ということで、初期カウント値がセツトされている
R1レジスタに1を加算する(ステツプ201)。
(2).ステツプ201で読み出された第1リストベクト
ルの最初の要素が、フエツチデータ線19を介してフエツ
チデータレジスタ21にセツトされる。同様に、ステツプ
201で読み出された第2リストベクトルの最初の要素
が、フエツチデータ線20を介してフエツチデータレジス
タ48にセツトされる。また、第1リストベクトルの次の
要素アドレスを求めるために、フエツチアドレスレジス
タ10の値にインクリメントレジスタ11を値を加える処理
をアドレス加算器12で行い、その加算結果をフエツチア
ドレスレジスタ10に再セツトする。同様に、第2リスト
ベクトルの次の要素アドレスを求めるために、フエツチ
アドレスレジスタ40の値にインクリメントレジスタ41の
値を加算する処理をアドレス加算器42で行い、その加算
結果をフエツチアドレスレジスタ40に再セツトする(ス
テツプ202)。
(3).フエツチデータレジスタ21に格納されている第
1リストベクトルの最初の要素を、シフトカウントレジ
スタ45に示される数だけシフタ22で左シフトし、そのシ
フト結果をレジスタ30にセツトする。また、フエツチデ
ータレジスタ48に格納されている第2リストベクトルの
最初の要素を、シフトカウントレジスタ49に示される数
だけシフタ50で左シフトし、その結果をレジスタ51にセ
ツトする(ステツプ203)。
(4).ステツプ203でレジスタ30にセツトされた値、
すなわち、第1リストベクトルの最初の値をシフトした
値を、インクリメントレジスタ15にセツトする。また、
レジスタ51内の値、すなわち、第2リストベクトルの最
初の値をシフトした値を、インクリメントレジスタ27に
セツトする(ステツプ204)。
(5).初期アドレスレジスタ14に格納されている第1
オペランドベクトルの先頭アドレスに、インクリメント
レジスタ15に、ステツプ204で格納された、第1リスト
ベクトルの最初の要素のシフト結果を、アドレス加算器
16により加え、この加算結果をフエツチアドレスレジス
タ13にセツトする。このレジスタ13にセツトされた値
が、第1オペランドベクトルの最初の被演算要素のアド
レスである。また、初期アドレスレジスタ44に格納され
ている第1オペランドベクトルの先頭アドレスと、イン
クリメントレジスタ27にステツプ204で格納された、第
2リストベクトルの最初の要素のシフト結果とを、アド
レス加算器28により加算し、その加算結果をストアアド
レスレジスタ26にセツトする。このレジスタ26にセツト
された値が、第1オペランドベクトルの中の最初にスト
アされるベクトルのアドレスである(ステツプ205)。
(6).フエツチアドレスレジスタ13が示すアドレスに
より、主記憶装置4からデータを読み出す。このとき、
セレクタ54は、データ線35を選択している。これにより
読み出されたデータが、第1オペランドベクトルの最初
の被演算要素、すなわち、前述した式(1)のX(L
(i))である。また、フエツチアドレスレジスタ36が
示すアドレスにより、主記憶装置4からデータを読み出
す。このとき、セレクタ53は、データ線39を選択してい
る。これにより読み出されたデータが、第2オペランド
ベクトルの最初の被演算要素、すなわち、前述した式
(1)のY(i)である(ステツプ206)。
(7).ステツプ206で読み出された第1オペランドベ
クトルの最初の被演算要素が、フエツチデータ線20を通
つてフエツチデータレジスタ46にセツトされる。また、
同様に、ステツプ206で読み出された第2オペランドベ
クトルの最初の被演算要素が、フエツチデータ線19を通
つてフエツチデータレジスタ47にセツトされる。さら
に、第2オペランドベクトルの次の要素のアドレスを求
めるため、フエツチアドレスレジスタ36の値と、インク
リメントレジスタ37の値とを、アドレス加算器38により
加算し、その加算結果をフエツチアドレスレジスタ36に
再セツトする(ステツプ207)。
(8).フエツチデータレジスタ46に格納された第1オ
ペランドベクトルの最初の被演算要素と、フエツチデー
タレジスタ47に格納された第2オペランドベクトルの最
初の被演算要素とを、演算器33により加算し、その加算
結果をストアデータレジスタ23にセツトする(ステツプ
208)。
(9).主記憶装置4内のストアアドレスレジスタ26で
示される、第1オペランドベクトルのうち最初にストア
されるベクトルのアドレスに、ステツプ208でセツトさ
れた、ストアデータレジスタ23内の加算結果をストアす
る。このストアにより、前述した式(1)におけるX
(M(i))の最初の要素が得られたことになる。これ
によつて、VEAX命令の最初の要素が処理できたことにな
る。R1レジスタ内の最後に処理した要素の番号が、R1+
1レジスタ内にセツトされている最終要素番号に等しく
なければ、ステツプ201に戻り前述の処理を繰返し実行
し、等しくなつたときに、全要素に対する演算が終了し
たものとして後処理に移行する(ステツプ209)。
後処理では、最後のステツプ209が実行された後に生
じる割込みの受付けと、R1レジスタに“0"をセツトする
処理が行われる。
前述の前処理、ステツプ201〜ステツプ209の処理及び
後処理によつて、本発明の実施例は、VEAX命令を処理す
ることができ、これにより、粒子推進タイプのリスト演
算をベクトル演算として高速に実行することができる。
前述の実施例の説明において、演算器33により行われ
る演算の種類を加算としたが、本発明は、この演算の種
類を、減算,乗算,除算等の種々の演算に変更すること
が可能であり、これにより、第1オペランドベクトルの
各ベクトル要素と、第2オペランドベクトルの各ベクト
ル要素とに対して、減算,乗算,除算等の種々の演算を
行う仕様の命令に対する処理も行うことができる。
〔発明の効果〕
以上説明したように、本発明によれば、汎用計算機シ
ステムにおいて、第1リストベクトルで指定される第1
オペランドベクトルの各ベクトル要素と、第2オペラン
ドベクトルの各ベクトル要素を演算し、その結果を、第
2リストベクトルで指定される第1オペランドベクトル
の各ベクトル要素の主記憶装置上の位置に格納する演算
を、ベクトル演算として実行することができるので、第
1の配列の要素が要素番号になつている第2の配列と、
通常の要素番号が順番についている第3の配列とを要素
毎に演算して、その演算結果を、前記第1の配列の第4
の配列の要素の示す要素番号に格納する演算、いわゆる
粒子推進タイプのリスト演算を含むプログラムを高速に
処理することが可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロツク図、第
2図は動作を説明するフローチヤート、第3図はVEAX命
令の形式を説明する図、第4図は本発明が適用される従
来技術による汎用計算機システムの構成を示すブロツク
図、第5図はIAP命令の形式を説明する図、第6図は第
5図におけるVDTの形式を説明する図、第7図は第5図
におけるマスクベクトルの形式を説明する図である。 1……命令制御部、2……演算部、3……記憶制御部、
4……主記憶装置、5……汎用レジスタ群、10,13,36,4
0……フエツチアドレスレジスタ、11,15,27,37,41……
インクリメントレジスタ、12,16,28,38,42……アドレス
加算器、14,44……初期アドレスレジスタ、21,46,47,48
……フエツチデータレジスタ、22,50……シフタ、23…
…ストアデータレジスタ、26……ストアアドレスレジス
タ、30,51……レジスタ、45,49……シフトカウントレジ
スタ、53,54,57,58……セレクタ。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】ベクトルレジスタを持たない汎用計算機シ
    ステムにおいて、第1のリストベクトルの要素アドレス
    を計算する手段と、該手段により算出されたアドレスに
    より第1のリストベクトルの要素をフエツチし、該要素
    を整数倍した値と第1オペランドベクトルの先頭アドレ
    スとを加えたアドレスにより第1オペランドベクトル要
    素をフエツチし、第2オペランドベクトルの要素アドレ
    スを計算する手段と、該手段により算出されたアドレス
    により第2オペランドベクトル要素をフエツチし、第2
    のリストベクトルの要素アドレスを計算する手段と、該
    手段により算出されたアドレスにより第2のリストベク
    トルの要素をフエツチし、その要素を整数倍した値と第
    1オペランドベクトルの先頭アドレスとを加えたアドレ
    スに、前記第1オペランドベクトル要素と前記第2オペ
    ランドベクトル要素とを演算した結果をストアする手段
    とを備えることを特徴とする計算機システム。
  2. 【請求項2】ベクトルレジスタを持たない汎用計算機シ
    ステムにおいて、第1リストベクトルのインクリメント
    値を格納するレジスタと、第1オペランドベクトルの初
    期アドレスを格納するレジスタと、第1オペランドベク
    トルのインクリメント値を格納する第1レジスタと、フ
    エツチデータアドレスに前記第1リストベクトルのイン
    クリメント値を加える手段と、前記第1オペランドベク
    トルの初期アドレスを格納するレジスタの値に前記第1
    オペランドベクトルのインクリメント値を格納する第1
    レジスタの値を加える手段と、該加算結果をフエツチデ
    ータアドレスに接続する手段と、記憶装置から読み出さ
    れたデータをビツトシフトした値を、前記第1オペラン
    ドベクトルのインクリメント値を格納する第1レジスタ
    に格納する手段と、第2リストベクトルのインクリメン
    ト値を格納するレジスタと、第1オペランドベクトルの
    インクリメント値を格納する第2レジスタと、フエツチ
    データアドレスに前記第2リストベクトルのインクリメ
    ント値を格納するレジスタの値を加える手段と、前記第
    1オペランドベクトルの初期アドレスを格納するレジス
    タの値に前記第1オペランドベクトルのインクリメント
    値を格納する第2レジスタの値を加える手段と、該加算
    結果をストアデータアドレスに接続する手段と、記憶装
    置から読み出されたデータをビツトシフトした値を、前
    記第1オペランドベクトルのインクリメント値を格納す
    る第2レジスタに格納する手段と、第2オペランドベク
    トルのインクリメント値を格納するレジスタと、フエツ
    チデータアドレスに前記第2オペランドベクトルのイン
    クリメント値を格納するレジスタの値を加える手段と、
    記憶装置から読み出された第1オペランドベクトル要素
    を格納するレジスタと、記憶装置から読み出された第2
    オペランドベクトル要素を格納するレジスタと、前記第
    1オペランドベクトル要素を格納するレジスタの値を演
    算器の入力に接続する手段と、前記第2オペランドベク
    トル要素を格納するレジスタの値を演算器の入力に接続
    する手段とを備え、第1の配列の要素が要素番号になつ
    ている第2の配列と、要素番号が順番についている通常
    の第3の配列とを要素毎に演算して、その演算結果を、
    前記第1の配列の第4の配列の要素の示す要素番号に格
    納する演算を行うことを特徴とする計算機システム。
JP18019888A 1988-07-21 1988-07-21 計算機システム Expired - Lifetime JP2625510B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18019888A JP2625510B2 (ja) 1988-07-21 1988-07-21 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18019888A JP2625510B2 (ja) 1988-07-21 1988-07-21 計算機システム

Publications (2)

Publication Number Publication Date
JPH0231277A JPH0231277A (ja) 1990-02-01
JP2625510B2 true JP2625510B2 (ja) 1997-07-02

Family

ID=16079114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18019888A Expired - Lifetime JP2625510B2 (ja) 1988-07-21 1988-07-21 計算機システム

Country Status (1)

Country Link
JP (1) JP2625510B2 (ja)

Also Published As

Publication number Publication date
JPH0231277A (ja) 1990-02-01

Similar Documents

Publication Publication Date Title
JP3889069B2 (ja) プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良
KR102492356B1 (ko) 데이터 처리장치에서의 산술 확대
JP2001516916A (ja) デジタル信号処理能力を有するデータ処理装置
JPH0374434B2 (ja)
JPH04172533A (ja) 電子計算機
KR102584031B1 (ko) 데이터 처리장치에서의 요소 바이 벡터 연산
US4954947A (en) Instruction processor for processing branch instruction at high speed
US5757685A (en) Data processing system capable of processing long word data
JP3578883B2 (ja) データ処理装置
JPH05150979A (ja) 即値オペランド拡張方式
EP1634163B1 (en) Result partitioning within simd data processing systems
JP2625510B2 (ja) 計算機システム
JPS62134763A (ja) 3アドレス・コ−ドの指標づけ装置
US8332447B2 (en) Systems and methods for performing fixed-point fractional multiplication operations in a SIMD processor
JPS59114677A (ja) ベクトル処理装置
JP2701955B2 (ja) レジスタ論理演算ユニット
US4812974A (en) Data processing apparatus for processing list vector instructions
JPH01116730A (ja) デイジタル信号処理プロセツサ
JP4896839B2 (ja) マイクロプロセッサおよびデータ処理方法
JPH07110769A (ja) Vliw型計算機
JP2001216136A (ja) 加算回路およびプロセッサ
CA1155232A (en) Pipelined digital signal processor using a common data and control bus
US20030037088A1 (en) Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly
JPH0517589B2 (ja)
JP3547316B2 (ja) プロセッサ