JPH03184127A - レジスタ退避制御方法 - Google Patents

レジスタ退避制御方法

Info

Publication number
JPH03184127A
JPH03184127A JP1321412A JP32141289A JPH03184127A JP H03184127 A JPH03184127 A JP H03184127A JP 1321412 A JP1321412 A JP 1321412A JP 32141289 A JP32141289 A JP 32141289A JP H03184127 A JPH03184127 A JP H03184127A
Authority
JP
Japan
Prior art keywords
vector
instruction
register
bit
registers
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
JP1321412A
Other languages
English (en)
Inventor
Yasuhiro Inagami
稲上 泰弘
Yoshiko Tamaoki
玉置 由子
Katsuyoshi Kitai
北井 克佳
Giichi Tanaka
義一 田中
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 JP1321412A priority Critical patent/JPH03184127A/ja
Publication of JPH03184127A publication Critical patent/JPH03184127A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はベクトルレジスタなど、複数の要素からなるデ
ータ集合を保持するレジスタを有するディジタル計算機
のレジスタの制御方法に関する。
〔従来の技術〕
主に科学技術計算プログラムの高速処理を目的としたベ
クトル・プロセサと呼ばれる高速計算機装置においては
、−次元のデータ配列であるベクトルデータを一時的に
保持するベクトル・レジスタが備わっている。ベクトル
・レジスタはパイプライン処理による高速なベクトルデ
ータの読み出しあるいは書き込みが可能であり、高速の
演算処理を可能としている。また、ベクトル処理の制御
情報に用いるベクトルマスクデータを保持するベクトル
・マスク・レジスタが備わっているベクトル・プロセサ
もある。ベクトル・プロセサの公知例として、日立製作
所のS−820がある。
ベクトル・プロセサにおいて、実行中であったプログラ
ムを一時中断してタスクスイッチする場合には、実行中
であったプログラムが使用していたベクトル・レジスタ
やベクトル・マスク°レジスタの内容を主記憶上の領域
に格納し、実行が開始されるプログラムで使用するベク
トル・レジスタやベクトル・マスク・レジスタの内容を
保存していた主記憶上の領域からベクトル・レジスタや
ベクトル・マスク・レジスタにロードする、いわゆるベ
クトル・レジスタ、ベクトル・マスク・レジスタの退避
/回復処理が必要である。
ベクトル・レジスタは通常の汎用レジスタなどと異なり
容量が大きい0例えば日立製作所のベクトル・プロセサ
S−820/モデル80のベクトル・レジスタの容量は
128キロバイトである。
従ってその退避/回復にはかなりの時間がかかり、タス
クスイッチするときの大きなオーバヘッド要因となる。
インタナショナル・ビジネスマシン社のシステム/37
0 ベクトル・ファシリティ(VectorFacil
装置y、以下VFと略す)では、次のようにしてタスク
スイッチ時のベクトル・レジスタの退避/回復処理のオ
ーバヘッドを低減している。即ち、16個あるベクトル
・レジスタに対して計8ビットのVIUビット(Vec
tor register In−Use)を設けてい
る。8ビツトのVIUは16個のベクトル・レジスタの
2個ずつのペアに対応しくベクトル・レジスタの第0番
と第1番で1ビツト、第2番と第3番で1ビツト、とい
うように対応している)、使用中のベクトル・レジスタ
に対応するVIUビットを1にするような機構を備えて
いる。
VIUビットは対応するベクトル・レジスタがモディフ
ァイされたときに値1にセットされる。
ベクトル・レジスタの退避/回復は、5AVEVR命令
あルイはRESTORE  VR命令で行われるが、こ
れらの命令では全てのベクトル・レジスタが退避/回復
されるのではなく、値が1であるVIUビットに対応す
るベクトル・レジスタだけが実際の退避/回復処理の対
象となる。 VIUビットはV S R(Vector
 5tatus Register)と呼ばれる特別の
状態レジスタの一部であり、RESTORE  VR命
令で任意の値を設定することができる。このとき、VI
tJビットの値Oにリセットしたときには対応するベク
トル・レジスタの内容もゼロクリアされる。また、CL
EARVR命令を実行したときには指定されたベクトル
・レジスタの内容がゼロクリアされると共に対応するV
IUビットの値も値0にリセットされる。
〔発明が解決しようとする課題〕
上記従来技術は、ベクトル・レジスタ(ペア)対応に退
避/回復の必要性をきめ細かく管理することが可能であ
り、またベクトル・レジスタを参照するたびにハードウ
ェアで退避/回復の必要性が自動的にセットされ、ソフ
トウェアに負担をかけずにベクトル・レジスタの効率よ
い退避/回復を実現できるという利点がある。
しかしながら、以下のような問題点がある。
(1)ベクトル・レジスタがモディファイされるたびに
VIUの内容を変更する必要があり、そのための複雑な
ハードウェアが必要である。
(2)ベクトル・レジスタの退避/回復処理を行うとき
に、退避/回復の対象となるベクトル・レジスタをVI
Uの内容に従って選択し、かつ選択されたベクトル・レ
ジスタのみを退避/回復するための制御ハードウェアが
必要である。
即ち、従来技術ではベクトル・レジスタの退避/回復の
必要性をハードウェアで自動的に管理できるようになっ
ている反面、それを実現するための複雑なハードウェア
を必要としている。
一方、最近のベクトル・プロセサではパイプライン制御
の高速なロード/ストア回路を複数個持っているものが
多い、ベクトル・レジスタ個別に退避/回復の必要性を
示す機構を設けて装置を複雑化するよりも、粗い単位で
ベクトル・レジスタの退避/回復の必要性を示し、高速
のロード/ストア回路を活用して退避/回復処理を行う
ほうが有利である。
また、実行されるプログラムにおいて、あるポイント以
降にある特定のベクトル・レジスタの内容が必要である
かどうかは、プログラム作成者(FORTRANなどの
高級言語でプログラミングする場合はそのコンパイラ)
が知っている。従って、退避/回復必要性情報をベクト
ル・レジスタが更新されるたびにハードウェアで更新す
るよりも、プログラム作成者がソフトウェア的に更新す
る法が自然である。この場合、退避/回復の必要性をベ
クトル・レジスタごとにきめ細かく管理することは得策
ではなく、粗い単位でよい。
本発明の目的は、ベクトル・レジスタやベクトル・マス
ク・レジスタを有するベクトル・プロセサにおいて、簡
単なハードウェアで、ソフトウェア主体の管理の元に、
効率良くベクトル・レジスタやベクトル・マスク・レジ
スタの退避/同役処理を実現する手段を提供することに
ある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明のベクトル・プロセ
サにおいては次のような手段を持つ。
(1)ベクトルデータを保持する複数個のベクトル・レ
ジスタ全体に対するlビットのベクトル・レジスタ使用
中表示ビット(V RI U 、 VectorReg
ister In−Use b装置)(2)ベクトルマ
スクデータを保持する複数個のベクトル・マスク、レジ
スタ全体に対する1ビツトのベクトル・マスク・レジス
タ使用中表示ビット(VM RI U、 Vector
 Mask Register In−IJse b装
置) (3)VRIUビットを値1にセットする命令(SVR
IU命令) (4)VRIUビットを値0にリセットする命令(RV
RIU命令) (5)VMRIUビットを値1にセットする命令(S 
VMRI U命令) (6)VMRIUビットを値Oにリセットする命令(R
VMRIU命令) (7)あるまとまった単位のベクトル処理を起動する命
令(EXVP命令、Execute VectorPr
ocessing命令)の実行が完了したときに、VR
IUビット、VMRIUビットをあらかじめ定められた
値に設定する手段 (8)ベクトル処理装置をリセットする命令(CLRV
P命令)を実行したときにVRIUビット、VMRIU
ビットの値をリセットする手段 ]コテ、VRIUビット、VMRIUビットは独立した
レジスタのようなものである必要はなく、例えばプログ
ラム状態語(P S W、 Progra■5tatu
s Word)やその他の状態レジスタの一部分であっ
てよい。
〔作用〕
ベクトル処理を行うプログラムの開始に当たっては、オ
ペレーティングシステムあるいはコンパイラなどがVR
IUビット、VMRIUビットをリセットする。このと
きには、RVRIU命令、RVMRIU命令を使用して
もよいし、CLRVP命令を用いて一括してリセットし
てもよい。
プログラムの中でベクトル処理される部分は、EXVP
命令を発行してベクトル処理を起動する。
これによりベクトル処理が開始される。このとき、VR
IUビット、VMRIUビットは自動的にあらかじめ定
められた値に設定される。起動されたベクトル処理によ
って使用されるベクトル・レジスタあるいはベクトル・
マスク・レジスタが、それ以降に起動されるベクトル処
理単位で再利用されるかされないかによって、5VRI
U命令。
SVMRIU命令、RVRIU命令、RVMRI U命
令の何れかを使用してVRIUビット、 VMRILI
ビットを所望の値に設定する。
例えば、ベクトル処理が起動されたときに設定されるV
RIUビット、VMRIUビットの値が1(セット状態
)である時に、後続のベクトル処理ではベクトル・レジ
スタ・ベクトル・マスク・レジスタの何れも再利用され
ないときには、RVRIU命令、RVMRIU命令を発
行してVRIUビット、VMRIUビットの両方をリセ
ットする。ベクトル・レジスタ、ベクトル・マスク・レ
ジスタのいずれも再利用するときには何もしない、なお
、ベクトル・レジスタあるいはベクトル・マスク・レジ
スタの何れか一方だけを再利用するときには、再利用す
るレジスタの使用中ビットだけがセット状態になるよう
に該当する命令を使い分ける。
タスクスイッチなどでベクトル・レジスタ・ベクトル・
マスク・レジスタの退避/回復が必要になったときには
、VRIUビット、VMRIUビットの値に従って処理
する。VRIUビットがl(セット状M)のときには1
通常のベクトル・レジスタのロード/ストア命令を用い
て退避/回復処理を実行する。VMRIUビットが1(
セット状態)のときには5通常のベクトル・マスク・レ
ジスタのロード/ストア命令を用いて退避/同役処理を
実行する。
タスクスイッチが行われるとき、VRIUビット、VM
RIUビットの値は他のプログラム状態情報と同様に保
存/回復される。
以上に示したように、本発明のベクトル・プロセサにお
いては、ベクトル処理起動命令が実行されるときにベク
トルデータ等を保持するレジスタ類の使用中表示ビット
を定められた値に設定する手段と、それらのビットをセ
ット9、リセットする単純な命令を設け、他はベクトル
・プロセサに標準的に備わっている機能を使用するだけ
で、効率良いベクトル・レジスタ、ベクトル・マスク・
レジスタの退避/回復処理を可能にする。
〔実施例〕
以下本発明の実施例を詳細に説明する。
第2図は本発明の一実施例のベクトル・プロセサの全体
構成を示す図である。第2図において。
200は主記憶装置、201はスカラ処理ユニット、3
00はベクトル処理ユニットである。ここで、一連のベ
クトルデータに対する演算処理を一般にベクトル処理と
呼ぶのに対し、通常の汎用計算機が行うような、1個の
データ要素に対して行う演算処理をスカラ処理と呼ぶ、
スカラ処理ユニット201はスカラ処理を実行する処理
ユニットであり、通常の汎用計算機と同等の機能を持つ
ベクトル処理ユニット300はベクトル処理を遂行する
処理ユニットである。
スカラ処理ユニット201を構成する要素のうち本発明
に関連のあるものだけが第2図に示されており、それら
を説明する。第2図において、キャッシュ記憶210は
主記憶上のデータの一部を一時的に保持する高速の記憶
装置である。スカラ命令実行制御部211は、キャッシ
ュ記憶210より命令(スカラ命令)を読み出して解読
し、命令の実行に必要な信号を送出する機能を持つ、ス
カラ命令用演算制御部212は、スカラ命令実行制御部
211からの指示に従い、解読されたスカラ命令の実行
処理を行う機能を持つ、必要ならばキャッシュ記憶21
0との間で入力オペランドや出力オペランドのやり取り
を行う、第2図において、221,222は信号線であ
り、主記憶200とキャッシュ記憶210との間のデー
タ転送に使用する。
信号線223は命令をキャッシュ記憶210からスカラ
命令実行制御部211に転送するのに使用する。信号線
224は、解読されたスカラ命令の実行に必要な情報を
スカラ命令実行制御部211とスカラ命令実行用演算制
御部212との間でやり取りするのに用いる。信号線2
25は、キャッシュ記憶210とスカラ命令用演算制御
部212との間でデータのやり取りを行うのに使用する
スカラ命令実行制御部211でEXVP命令を解読した
ときには、その旨が信号線250によりベクトル処理ユ
ニット300の中のベクトル命令実行制御部301に通
知される。EXVP命令については後で詳細に説明する
次にベクトル処理ユニット300を構成する要素を説明
する。
第2図において、ベクトル命令実行制御部301はスカ
ラ命令実行制御部211からの指示を受けてベクトル処
理の実行を司るものである。
310ないし317はベクトル・レジスタ群であり1合
計8個のベクトル・レジスタから成る。
310はベクトル・レジスタ0番、311はベクトル・
レジスタ1番、同様に317はベクトル・レジスタ7番
である。320ないし327はベクトル・マスク・レジ
スタ群であり、合計8個のベクトル・マスク・レジスタ
から成る。32oはベクトル・マスク・レジスタ0番、
321はベクトル・マスク・レジスタ1番、同様に32
7はベクトル・マスク・レジスタ7番である。
330ないし331は演算パイプであり、指定されたベ
クトル・レジスタあるいはベクトル・マスク・レジスタ
から読み出されたベクトルデータに対し、指定された演
算をパイプライン処理にて高速に施して、演算結果を指
定されたベクトル・レジスタあるいはベクトル・マスク
・レジスタへ格納するものである。340ないし341
はロード/ストア・パイプであり、主記憶200とベク
トル・レジスタ310ないし317、あるいはベクトル
・マスク・レジスタ320ないし327との間で、ベク
トル・データあるいはベクトルマスクデータをパイプラ
イン処理にて高速に転送するものである。
なお、演算パイプ、ロード/ストア・パイプ、ベクトル
・レジスタ、ベクトル・マスク・レジスタの個数は本質
的な問題ではなく、何個であってもよい。
350および360はそれぞれスイッチ回路である。ス
イッチ回路350は、実行するベクトル命令の指定に従
い、演算パイプ330ないし331とベクトル・レジス
タ310ないし317、あるいはベクトル・マスク・レ
ジスタ320ないし327との間のベクトルデータある
いはベクトルマスクデータの転送ルートを設定する。ス
イッチ回路360は、実行するベクトル命令の指定に従
い、ロード/ストア・パイプ340ないし341とベク
トル・レジスタ310ないし317、あるいはベクトル
・マスク・レジスタ320ないし327との間のベクト
ルデータあるいはベクトルマスクデータの転送ルートを
設定する。
次に、第2図に示したベクトル・プロセサでベクトル処
理が行われる手順を、本発明の詳細な説明するために必
要な項目に重点を置いて説明する。
まずはじめに、通常のベクトル処理に関連する命令の機
能を説明する。
(1) E X V P (Execute Vect
or Processing)命令スカラ処理ユニット
201で実行される命令である1本命令はベクトル処理
ユニット300に対しベクトル処理の起動を指示する命
令である。命令のオペランドでは、起動するベクトル処
理の内容を示すベクトル命令の列(以下起動ベクトル命
令列と呼ぶ)が格納されている主記憶のアドレスや処理
されるベクトルデータの要素数などを指定する。
(2) VL (Vector Load)命令ベクト
ル処理ユニット300で実行される命令である0本命令
は主記憶上のベクトルデータをベクトル・レジスタにロ
ードする機能を持つ。
命令のオペランドでは、主記憶上にあるベクトルデータ
の先頭アドレスや各ベクトルデータ要素間の間隔等、お
よびベクトル・レジスタの番号を指定する。
(3) V S T (Vector 5tore)命
令ベクトル処理ユニット300で実行される命令である
0本命令はベクトル・レジスタ上にあるベクトルデータ
を主記憶に格納する機能を持つ、命令のオペランドでは
、ベクトルデータが格納されているベクトル・レジスタ
の番号、およびベクトルデータを格納する主記憶の領域
の開始アドレスや各ベクトルデータ要素間の間隔等を指
定する。
(4) VM L (Vector Mask Loa
d)命令ベクトル処理ユニット300で実行される命令
である0本命令は主記憶上のベクトル・マスク・データ
をベクトル・マスク・レジスタにロードする機能を持つ
、命令のオペランドでは、主記憶上にあるベクトル・マ
スク・データの先頭アドレス等、およびベクトル・マス
ク・レジスタの番号を指定する。
(5) V M S T (Vactor Mask 
5tore)命令ベクトル処理ユニット300で実行さ
れる命令である0本命令ベクトル・マスク・レジスタ上
にあるベクトル・マスク・データを主記憶に格納する機
能を持つ、命令のオペランドでは。
ベクトル・マスク・データが格納されているベクトル・
マスク・レジスタの番号、およびベクトル・マスク・デ
ータを格納する主記憶の領域の開始アドレス等を指定す
る。
次に、第2図、第3図を用いて、ベクトル処理を含むプ
ログラムが実行される様子を説明する。
第3図は、ベクトル処理を含むプログラムの一例を示す
ものである。第3図においては、本発明の詳細な説明す
るのに必要な部分だけを示し、その他の部分は省略され
ている。ベクトル処理されるプログラムはスカラ命令列
とベクトル命令列とから成る。スカラ命令列は、プログ
ラムの中でベクトル処理できない部分の演算処理、ベク
トル処理の準備処理、ベクトル処理の起動等を行うため
の命令列である。ベクトル命令列は、プログラムの中で
ベクトル処理可能な部分を処理するためのベクトル命令
から成る。スカラ命令列は第2図のスカラ処理ユニット
201で実行される。ベクトル命令列は第2図のベクト
ル処理ユニット300で実行される。
プログラムは最初にスカラ命令列の先頭命令から実行さ
れる。第2図において、スカラ命令実行制御部2↓1は
キャッシュ記憶210からスカラ命令を順次読み出して
解読し、実行に移す、解読した命令がスカラ演算命令で
ある場合には、スカラ命令用演算制御部212は信号線
224より指示を受け、命令を実行する。解読した命令
がEXVP命令である場合には、EXVP命令のオペラ
ンドで指定されるベクトル命令列の先頭アドレス等を信
号線250を介してベクトル命令実行制御部301に与
え、ベクトル処理を起動する。これによりスカラ処理ユ
ニット201におけるEXVP命令の処理は終了し、次
のスカラ命令の処理に移る。
ベクトル命令実行制御部301は、信号線250を介し
て通知されたベクトル命令列の先頭アドレスを元に、信
号線370を介して主記憶200よりベクトル処理を順
次読み出して実行する。
VEND命令(End of Vector Proc
essing)は。
一つのベクトル命令列の終点を指示する命令である。ベ
クトル命令実行制御部301がVEND命令を読み出し
て解読すると、それ以降のベクトル命令の読み出しおよ
び解読処理を中止し、ベクトル命令列の実行を終了する
次に、本発明の本質である、ベクトル・レジスタ、ベク
トル・マスク・レジスタの退避/回復を効率よく処理す
るための手段について、実施例を詳細に説明する。
はじめに、各手段の機能を説明する。
(1)VRIUビット ベクトル・レジスタの退避/回復の必要性の有無を表示
するビットである。値がl(セット状態)のときは退避
/回復が必要であることを示し、値が0(リセット状態
)のときは不要であることを示す0本実施例においては
、VRIUビットはプログラム状態語(Progra+
m 5tatusWord、以下PSWと略す)を構成
する情報の一つとする。
(2)VMRIUビット ベクトル・マスク・レジスタの退避/回復の必要性の有
無を表示するビットである。値が1(セット状態)のと
きは退避/回復が必要であることを示し、値がO(リセ
ット状態)のときは不要であることを示す0本実施例に
おいては、VMRIUビットはプログラム状態語(Pr
ogramStatus Word、以下pswと略す
)を構成する情報の一つとする。
(3)EXVP命令の機能 本命令は、前述のように、ベクトル処理を起動する命令
であるが、ベクトル・レジスタ、ベクトル・マスク・レ
ジスタの効率よい退避/回復を実現するために、次のよ
うな機能を持つ。
すなわち1本命令を実行してベクトル処理を起動した時
に、あわせてpsw内のVRIUビット、VMRIUビ
ットの値を1にする。
(4)SVRIU命令 スカラ命令の一つであり、psw内のVRIUビットを
セットする命令である。
(5)SVMRIU命令 スカラ命令の一つであり、psw内のVMRIUビット
をセットする命令である。
(6)RVRIU命令 スカラ命令の一つであり、psw内のVRIυビットを
リセットする命令である。
(7)RVMRIU命令 スカラ命令の一つであり、PSW内のVMRIUビット
をリセットする命令である。
次に、上記に説明した各手段がどのように動作するかを
、第1図の実施例を用いて詳細に説明する。
まず、第1図を説明する。第1図は、第2図に示したス
カラ命令実行制御部211の内部を詳細に示したもので
ある。第1図において、101は命令レジスタであり、
信号線150を介して読み出されたスカラ命令を保持す
るレジスタである。
102は命令解読部であり、命令レジスタ101に格納
されているスカラ命令を解読してその実行に必要な情報
を各所に送出する機能を持つ。解読された命令が、5V
RIU命令、SVMRIU命令、RVRIU命令、RV
MRIU命令以外ノスカラ命令の場合は、命令の実行に
必要な情報が信号線224より送出される。解読した命
令がEXVP命令の場合は、ベクトル処理の起動に必要
な情報が信号線250より送出される。
第1図において、103はプログラム状態語pswであ
り、その中にVRIUビット107゜VMRIUビット
108がある。104はVRIUビット・セット/リセ
ット制御部である。105はVMRIUビット・セット
/リセット制御部である。
命令解読部102で解読された命令がEXVP命令の場
合は、信号線152.信号線153よりそれぞれVRI
Uビット、VMRIUビットのセット指示が出される。
VRIUビット・セット/リセット制御部104は信号
線152よりセット指示を受けると、信号線154を介
してVRIUビットをセットする。VMRIUビット・
セット/リセット制御部105は信号線153よりセッ
ト指示を受けると、信号線155を介してVMRIUビ
ットをセットする。
解読された命令が5VRIU命令である時は。
信号線152よりVRIUビットのセット指示が出され
る。セット指示を受けたVRIUビット・セット/リセ
ット制御部104は信号線154を介してVRIUビッ
トをセットする。
解読された命令がS VMRI U命令である時は、m
号tiA 153よりVMRIUビットのセット指示が
出される。セット指示を受けたVMRIUビット・セッ
ト/リセット制御部105は信号線155を介してVM
RIUビットをセットする。
解読された命令がRVRIU命令である時は、信号線1
52よりVRIUビットのリセット指示が出される。リ
セット指示を受けたVRIUビット・セット/リセット
制御部104は信号線154を介してVRIUビットを
リセットする。
解読された命令がRVMRIU命令である時は。
信号線153よりVMRIUビットのリセット指示が出
される。リセット指示を受けたVMRI Uビット・セ
ット/リセット制御部105は信号線155を介してV
MRIUビットをリセットする。
次に、第3図の実施例により、RVRIU命令。
RVMRIU命令の使用例を説明する。
第3図のプログラム例において、ベクトル命令列!で使
用されるベクトル・レジスタおよびベクトル・マスク・
レジスタの中にはベクトル命令列■でも再利用されるも
のがあるとする。従って、第3図のスカラ命令列中の■
のEXVP命令の後ではVRIUビット、VMRIUビ
ットの値を変更する命令は使用されない。■のEXVP
命令によりVRIUビット、VMRIUビット共にセッ
ト状態になっているので、退避/回復が必要であること
になる。
また、第3図のプログラム例において、ベクトル命令列
■で使用されるベクトル・レジスタ・ベクトル・マスク
・レジスタがそれ以降のベクトル処理で再利用されない
ものとする。この場合、■のEXVP命令でベクトル命
令列■を起動した後。
VRIUビット、VMRIUビット共にセット状態にな
っているので、RVRIU命令(第3図の■)、RVM
RIU命令(第3図の■)を実行して、VRIUビット
およびVMRIUビットをリセットして、退避/回復の
必要がない状態にする。
この場合、もしベクトル・マスク・レジスタだけが後続
のベクトル処理で再利用されるならば、RVRIU命令
だけ発行して、RVMRIU命令は発行しなければよい
次に、タスクスイッチが発生したときに、VRIUビッ
ト、VMRIUビットを参照して効率よくベクトル・レ
ジスタ、ベクトル・マスク・レジスタを退避/回復する
手順を説明する。なお、本実施例においては、ベクトル
・レジスタ、ベクトル・マスク・レジスタの退避/回復
処理を遂行するのはオペレーティングシステム(OS)
である。
第4図は、タスクスイッチが発生したときのベクトル・
レジスタ、ベクトル・マスク・レジスタの退避処理の手
順を示す流れ図である。
タスクスイッチが発生したときに実行中であったプログ
ラムのPSWは旧PSWとして主記憶の特定の領域に格
納されている。旧PSWのVRIUビットを調べ、値が
lであるときにはベクトル・レジスタの退避処理を実行
する。VRIUビットの値がOのときには何もせずに次
の処理に移る1次に、旧pswのVMRIUビットを調
べ、値が1であるときにはベクトル・マスク・レジスタ
の退避処理を実行する。VMRIUビットの値が0のと
きには何もせずに次の処理に移る。
ベクトル・レジスタの退避処理は、前述した通常のベク
トル命令であるVST命令を用いてすべての(本実施例
のベクトル・プロセサでは8個)ベクトル・レジスタの
内容を主記憶に格納するベクトル命令列を用意し、その
ベクトル命令列をEXVP命令により起動することに゛
より実現される。
同様に、ベクトル・マスク・レジスタの退避処理は、前
述した通常のベクトル命令であるVMST命令を用いて
すべての(本実施例のベクトル・プロセサでは8個)ベ
クトル・マスク・レジスタの内容を主記憶に格納するベ
クトル命令列を用意し。
そのベクトル命令列をEXVP命令により起動すること
により実現される。
第5図は、タスクスイッチが発生したときのベクトル・
レジスタ、ベクトル・マスク・レジスタの回復処理の手
順を示す流れ図である。
タスクスイッチの後、新たに実行が開始されるプログラ
ムのPSWは新PSWとして主記憶の特定の領域に格納
されている。新PSWのVRIUビットを調べ、値が1
であるときにはベクトル・レジスタの回復処理を実行す
る。VRIUビットの値がOのときには何もせずに次の
処理に移る。
次に、新PSWのVMRIUビットを調べ、値が1であ
るときにはベクトル・マスク・レジスタの回復処理を実
行する。VMRIUビットの値がOのときには何もせず
に次の処理に移る。
ベクトル・レジスタの回復処理は、前述した通常のベク
トル命令であるVL命令を用いて、主記憶に格納されて
いる退避されていたベクトルデータを、すべての(本実
施例のベクトル・プロセサでは8個)ベクトル・レジス
タにロードするベクトル命令列を用意し、そのベクトル
命令列をEXVP命令により起動することにより実現さ
れる。
同様に、ベクトル・マスク・レジスタの回復処理は、前
述した通常のベクトル命令であるVML命令を用いて、
主記憶に格納されている退避されていたベクトルマスク
データを、すべての(本実施例のベクトル・プロセサで
は8個)ベクトル・マスク・レジスタにロードするベク
トル命令列を用意し、そのベクトル命令列をEXVP命
令により起動することにより実現される。
第3図のプログラム例において、スカラ命令列の(A)
で示されているポイントでタスクスイッチが発生し、プ
ログラムの処理が中断された場合のベクトル・レジスタ
、ベクトル・マスク・レジスタの退避/回復処理の流れ
を説明する。なお、前述のように、第3図のプログラム
例では、ベクトル命令列Iで使用したベクトル・レジス
タ、ベクトル・マスク・レジスタの内容は、ベクトル命
令列■でも再利用するが、ベクトル命令列■で使用した
ベクトル・レジスタ、ベクトル・マスク・レジスタの内
容はその後のベクトル命令列で再利用されない。
第3図のプログラム例がポイント(A)に到達したとき
のVRIUビット、VMRIUビットの値は共に1にな
っている。これは、第3図の■のEXVP命令でVRI
Uビット、VMRIUビット共にセットされた後、これ
らのビットの値を変更する命令が実行されていないため
である。ポイント(A)でタスクスイッチが発生すると
、現PSWが旧PSWとして主記憶の特定の領域に格納
された後、オペレーティングシステムに制御が移る。オ
ペレーティングシステムはタスクスイッチに必要な種々
の処理を遂行するが、この中でベクトル・レジスタ、ベ
クトル・マスク・レジスタの退避を行う部分では、第4
図に示した処理手前に従って退避処理が遂行される。こ
のとき、VRIυビット、VMRIUビットの値は共に
1であるので、ベクトル・レジスタ、ベクトル・マスク
・レジスタ共に退避処理が行われる。
次に、ポイント(A)で中断された第3図のプログラム
例が再開されるときのベクトル・レジスタ、ベクトル・
マスク・レジスタの回復処理の流れを説明する。
プログラムが中断されたときに旧PSWとして保存され
ていたPSW情報は、このプログラムが再開されるとき
には新PSWとして扱われる。オペレーティングシステ
ムはプログラムの再開に必要な種々の処理を行うが、こ
の中でベクトル・レジスタ、ベクトル・マスク・レジス
タの回復処理を行う部分では、第5図に示した処理手順
に従って回復処理が遂行される。このとき、新PSW内
のVRIUビット、VMRIUビットの値は共に1であ
るので、ベクトル・レジスタ、ベクトル・マスク・レジ
スタの回復処理が行われる。オペレーティングシステム
はその他の必要な処理を行った後、新pswを第1図の
現P SWI O3にロードして中断されていたプログ
ラムを再開する。ベクトル・レジスタ、ベクトル・マス
ク・レジスタの回復処理が行われているので、プログラ
ムの実行が進んで、第3図の■のEXVP命令でベクト
ル処理が起動されて、ベクトル命令列■が実行されると
き、ベクトル・レジスタおよびベクトル・マスク・レジ
スタの情報が正しく再利用される。
次に、第3図のプログラム例において、スカラ命令列の
(B)で示されているポイントでタスクスイッチが発生
し、プログラムの処理が中断された場合のベクトル・レ
ジスタ、ベクトル・マスク・レジスタの退避/回復処理
の流れを説明する。
第3図のプログラム例がポイント(B)に到達したとき
のVRIUビット、VMRIUビットの値は共にOにな
っている。これは、第3図の■のRVRIU命令、■(
7)RVMRIU命令カ実行すれているためである。ポ
イント(B)でタスクスイッチが発生すると、現PSW
が旧PSWとして主記憶の特定の領域に格納された後、
オペレーティングシステムに制御が移る。
オペレーティングシステムはタスクスイッチに必要な種
々の処理を遂行するが、この中でベクトル・レジスタ、
ベクトル・マスク・レジスタの退避を行う部分では、第
4図に示した処理手順に従って退避処理が遂行される。
このとき、VRIUビット、VMRIUビットの値は共
にOであるので、ベクトル・レジスタ、ベクトル・マス
ク・レジスタのいずれも退避処理が行われない。
次に、ポイント(B)で中断された第3図のプログラム
例が再開されるときのベクトル・レジスタ、ベクトル・
マスク・レジスタの回復処理の流れを説明する。
プログラムが中断されたときに旧PSWとして保存され
ていたPSW情報は、このプログラムが再開されるとき
には新PSWとして扱われる。
オペレーティングシステムはプログラムの再開に必要な
種々の処理を行うが、この中でベクトル・レジスタ、ベ
クトル・マスク・レジスタの回復処理を行う部分では、
第5図に示した処理手順に従って回復処理が遂行される
。このとき、新PSv内のVRIUビット、VMRIU
ビットの値は共にOであるので、ベクトル・レジスタ、
ベクトル・マスク・レジスタの回復処理は行われない。
オペレーティングシステムはその他の必要な処理を行っ
た後、新pswを第1図の現PSW103にロードして
中断されていたプログラムを再開する。
すなわち、ポイントCB)でプログラムの実行が再開さ
れるときには、中断時のベクトル・レジスタやベクトル
・マスク・レジスタの内容は再利用されないので、無駄
な退避/回復処理が行われずに済んでいる。
以上のように、本実施例によれば、第3図のプログラム
例のベクトル命令列Iで値が設定され、ベクトル命令列
■で再利用されるベクトル・レジスタ、ベクトル・マス
ク・レジスタの内容は、ベクトル命令列■が起動される
前の任意の時点でタスクスイッチが発生した場合に、正
しく退避/回復処理が行われる。また、ベクトル命令列
■で値が設定され、後続のベクトル命令列で再利用され
ないベクトル・レジスタ、ベクトル・マスク・レジスタ
の内容は、ベクトル命令列■の実行後タスクスイッチが
発生しても退避/回復処理は行われず、無駄な退避/回
復を省かれ、処理の高速化に繋がる。さらに、これら一
連の処理は、PSW内にVRIUビット、VMRIUビ
ットの2ビツトを追加することと、それら2ビツトを操
作する簡単な命令を追加するだけで、その他は通常のベ
クトル処理にも用いる命令を使用するだけで簡便に実現
されているという特長をもつ。
〔発明の効果〕
以上に説明したように、本発明においては、ベクトル・
レジスタ等を再使用するかどうかを示すビット(レジス
タの種類ごとに1ビツト設ければよい)、上記のビット
をセットする命令、上記のビットをリセットする命令、
ベクトル処理の開始を示す命令が実行されるときに上記
のビットをあらかじめ定められた値に設定する手段、と
いう非常に簡単な手段だけを設け、かつ、ベクトル・レ
ジスタ等のレジスタ類が再使用されるかどうかを把握し
ているプログラム作成者(あるいはコンパイラ)が上記
ビットを操作し、また、タスクスイッチ時にベクトル・
レジスタ等を退避/回復する場合は、上記ビットを参照
して退避/回復の必要性を判断するという非常に簡単な
手順だけで、ベクトル・レジスタ等複数の要素から成る
データを保持する容量の大きいレジスタ類を効率よくか
つ簡便に退避/回復できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例のベクトル・プロセサにおけ
る命令実行制御部とレジスタ再使用表示ビットの構成を
示すブロック図、第2図は本発明の一実施例のベクトル
・プロセサの全体構成を示すブロック図、第3図は本発
明の一実施例のベクトル・プロセサの動作およびベクト
ル・レジスタ等の退避/回復処理のプログラム例を示す
図、第4図は本発明の一実施例のベクトル・レジスタ等
の退避処理の手順を説明する流れ図、第5図は本発明の
一実施例のベクトル・レジスタ等の回復処理の手順を説
明する流れ図である。 104・・・VRIUビット・セット/リセット制御部
、105・・・VMRIUビット・セット/リセット制
御部、107・・・ベクトル・レジスタ再使用表示ビッ
ト(VRIUビット)、108・・・ベクトル・マスク
・レジスタ再使用表示ビット(VMRIUビ口 2 目 囁 目 入力う* +f’ 1 ベクトル4仝f’1

Claims (1)

  1. 【特許請求の範囲】 1、主記憶の他に、ベクトルデータなど、複数の要素デ
    ータからなるデータ集合を保持することができる複数個
    のレジスタを有し、タスクスイッチ時に中断されるタス
    クのために、該レジスタの内容を主記憶に退避し、実行
    開始されるタスクのため退避されていた該レジスタの内
    容を主記憶から該レジスタに回復するベクトル処理装置
    において、実行中の該タスクについて該レジスタの内容
    の退避が必要かどうかを予め判定し、タスクスイッチに
    より該実行中タスクが中断されるとき、該判定結果によ
    り該レジスタの退避を行なうか否かを制御することを特
    徴とするレジスタ退避制御方法。 2、ベクトル処理の開始を示す命令が実行されるときに
    、タスクスイッチ時に該レジスタの退避/回復が必要で
    あるか否かを表示する手段を、予め定められた値に設定
    する請求項1記載のレジスタ退避制御方法。
JP1321412A 1989-12-13 1989-12-13 レジスタ退避制御方法 Pending JPH03184127A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1321412A JPH03184127A (ja) 1989-12-13 1989-12-13 レジスタ退避制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1321412A JPH03184127A (ja) 1989-12-13 1989-12-13 レジスタ退避制御方法

Publications (1)

Publication Number Publication Date
JPH03184127A true JPH03184127A (ja) 1991-08-12

Family

ID=18132261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1321412A Pending JPH03184127A (ja) 1989-12-13 1989-12-13 レジスタ退避制御方法

Country Status (1)

Country Link
JP (1) JPH03184127A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093260B1 (en) * 2000-05-04 2006-08-15 International Business Machines Corporation Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093260B1 (en) * 2000-05-04 2006-08-15 International Business Machines Corporation Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system

Similar Documents

Publication Publication Date Title
US4745547A (en) Vector processing
US4740893A (en) Method for reducing the time for switching between programs
JPH04296937A (ja) ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法
JPH0766329B2 (ja) 情報処理装置
JP3619939B2 (ja) 中央処理装置
JPH02227769A (ja) データ処理システム
US4562538A (en) Microprocessor having decision pointer to process restore position
JPS62159268A (ja) マルチプロセツサシステム
US5574872A (en) Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling
JPH11353179A (ja) パイプライン制御デ―タ処理装置における例外の処理
JPH0348537B2 (ja)
JPS62221732A (ja) 情報処理装置
JPS63261449A (ja) デ−タ処理装置
JPH0760388B2 (ja) パイプライン制御回路
JPS6250934A (ja) 処理装置の割込制御方式
JP2748957B2 (ja) データ処理装置
JPH03184127A (ja) レジスタ退避制御方法
JPH0248932B2 (ja)
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JP2552738B2 (ja) データ処理装置
JP2876791B2 (ja) 例外処理装置および例外処理方法
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2583614B2 (ja) ベクトル演算装置
JPH0233173B2 (ja)
JPS623341A (ja) 条件付制御方法