JPS6234242A - デ−タ処理システム - Google Patents
デ−タ処理システムInfo
- Publication number
- JPS6234242A JPS6234242A JP61158131A JP15813186A JPS6234242A JP S6234242 A JPS6234242 A JP S6234242A JP 61158131 A JP61158131 A JP 61158131A JP 15813186 A JP15813186 A JP 15813186A JP S6234242 A JPS6234242 A JP S6234242A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- register
- pair
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は成るプログラムから別のプログラムへの切替え
に伴って、プログラムが使用していた特殊レジスタ(例
えばベクトル・レジスタ)の内容を保管したり復元した
りする技術に関する。
に伴って、プログラムが使用していた特殊レジスタ(例
えばベクトル・レジスタ)の内容を保管したり復元した
りする技術に関する。
B、従来技術
一般に、ベクトル命令を使用するプログラムはその実行
完了までに比較的長い時間を要するが、プログラム切替
えに伴うオーバーヘッド(時間)を最小にするため、長
時間にわたる実行継続を許される。プログラムが切替え
られるのは、ベクトル命令が完了したときだけであり、
ベクトル命令の実行が中断されることはない。
完了までに比較的長い時間を要するが、プログラム切替
えに伴うオーバーヘッド(時間)を最小にするため、長
時間にわたる実行継続を許される。プログラムが切替え
られるのは、ベクトル命令が完了したときだけであり、
ベクトル命令の実行が中断されることはない。
ベクトル処理については、例えば1981年にマグロ−
ヒル・アンド・ヘミスフイア社から出版されたP、 M
、 Kogge著の” Architecture o
fPipelined Computers”に詳しい
。
ヒル・アンド・ヘミスフイア社から出版されたP、 M
、 Kogge著の” Architecture o
fPipelined Computers”に詳しい
。
1982年1月に発行されたIBM Technica
lDisclosure Bulletin、第24巻
、第8号の第4431〜4432頁には、状況データの
保管、復元及び変更を行うサービスが記載されている。
lDisclosure Bulletin、第24巻
、第8号の第4431〜4432頁には、状況データの
保管、復元及び変更を行うサービスが記載されている。
それによれば、プロセッサで実行される作業単位は自身
の状況の保管、復元又は変更を要求することができ、ま
た保管後は他の作業に進むことができる。
の状況の保管、復元又は変更を要求することができ、ま
た保管後は他の作業に進むことができる。
スカラー量に関する割込みについての一般的な記載は、
例えば” I B Mシステム/370解説書”(資料
番号N:GA22−7000)に見られる。
例えば” I B Mシステム/370解説書”(資料
番号N:GA22−7000)に見られる。
C0発明が解決しようとする問題点
従来においてプログラム切替えに時間がかかつていたの
は、すべてのベクトル・レジスタの内容を保管及び復元
していたからである。
は、すべてのベクトル・レジスタの内容を保管及び復元
していたからである。
従って本発明の目的は、実際に使用されているベクトル
・レジスタ等の特殊レジスタだけを保管及び復元の対象
とすることによって、プログラム切替えに要する時間を
短縮することにある。
・レジスタ等の特殊レジスタだけを保管及び復元の対象
とすることによって、プログラム切替えに要する時間を
短縮することにある。
D3問題点を解決するための手段
本発明は、メモリと、複数の特殊レジスタを有する処理
装置とを備えたデータ処理システムにおいて、これらの
特殊レジスタが使用中かどうかを示す使用中ビットを含
むレジスタを設け、このレジスタで使用中ビットがセッ
トされている特殊レジスタだけを保管命令等の所定の命
令に応答して保管又は復元するようにしたことを特徴に
している。
装置とを備えたデータ処理システムにおいて、これらの
特殊レジスタが使用中かどうかを示す使用中ビットを含
むレジスタを設け、このレジスタで使用中ビットがセッ
トされている特殊レジスタだけを保管命令等の所定の命
令に応答して保管又は復元するようにしたことを特徴に
している。
E、実施例
最初に、以下の説明で使用する略語の意味を明らかにし
ておく。
ておく。
CPU :中央処理装置
I PPF :命令前処理装置
VCH:ベクトル変更ビット
VC:T :ベクトル・カウント
VIU:ベクトル使用中ビット
VIX:ベクトル割込みインデックス
VMR:ベクトル・モード・レジスタ
vpu:ベクトル処理装置
vR:ベクトル・レジスタ
VRA:ベクトル・レジスタ・アレイ
VSR:ベクトル状況レジスタ
本発明を実施し得るデータ処理システムの構成を第1図
に示す。このシステム1oはVPUI2を含んでいる。
に示す。このシステム1oはVPUI2を含んでいる。
VPU12以外のメモリ14、CPU16、チャネル1
8及びコンソール19は通常のデータ処理システムを構
成するものである。
8及びコンソール19は通常のデータ処理システムを構
成するものである。
以下、VPUI2を除いた部分を基本システムと呼ぶこ
とにする。システム操作員はコンソール19を用いて、
初期設定プログラム等の種々の制御プログラムと対話で
きる。
とにする。システム操作員はコンソール19を用いて、
初期設定プログラム等の種々の制御プログラムと対話で
きる。
メモリ14は記憶装置20及び記憶装置制御機構(PS
CF)22を含み、プログラム命令やデータ・オペラン
ドを記憶するのに用いる。データ・オペランドには、V
PUI2で処理されるベクトル・オペランドが含まれる
。記憶装置制御機構22は記憶装置20から一連の命令
を取出し、CPU16へのデータ・オペランド転送を開
始する。
CF)22を含み、プログラム命令やデータ・オペラン
ドを記憶するのに用いる。データ・オペランドには、V
PUI2で処理されるベクトル・オペランドが含まれる
。記憶装置制御機構22は記憶装置20から一連の命令
を取出し、CPU16へのデータ・オペランド転送を開
始する。
CPU16は、高速バッファ(図示せず)、命令を解読
するlPPF24、及びlPPF24から転送されてき
た命令を実行する実行装置26を含む、これらの各装置
の詳細は米国特許第4200927号明細書に記載され
ているが、本発明との関連において簡単に説明しておく
と、まずlPPF24は、実行装置26及びVPtJ1
2で実行すべきすべての命令をメモリ14から取出して
解読する。ベクトル・オペランドの取出しく及び記憶)
はマイクロコード及びlPPF24によって開始され、
一方ベクトル命令の実行はVPUI2によって制御され
る。上記米国特許にも記載されているように、実行装置
26はデータ・バス28を介してメモリ14に接続され
、非ベクトル処理命令を実行する。実行装置26は命令
実行制御信号を発生するマイクロプログラム制御記憶装
置(図示せず)を含む。実行装置26による命令実行の
結果はlPPF24に戻され、lPPF24はそれに基
いて命令実行シーケンスを制御する。
するlPPF24、及びlPPF24から転送されてき
た命令を実行する実行装置26を含む、これらの各装置
の詳細は米国特許第4200927号明細書に記載され
ているが、本発明との関連において簡単に説明しておく
と、まずlPPF24は、実行装置26及びVPtJ1
2で実行すべきすべての命令をメモリ14から取出して
解読する。ベクトル・オペランドの取出しく及び記憶)
はマイクロコード及びlPPF24によって開始され、
一方ベクトル命令の実行はVPUI2によって制御され
る。上記米国特許にも記載されているように、実行装置
26はデータ・バス28を介してメモリ14に接続され
、非ベクトル処理命令を実行する。実行装置26は命令
実行制御信号を発生するマイクロプログラム制御記憶装
置(図示せず)を含む。実行装置26による命令実行の
結果はlPPF24に戻され、lPPF24はそれに基
いて命令実行シーケンスを制御する。
VPUI2は、I PPF24及び実行装置26の機能
を拡張するものである。VPtJ12と基本システムの
相互接続は、インタフェース・バス30及び32を介し
て行われる。バス30は実行装置26に接続され、バス
32はlPPF24に接続される。VPUI 2で処理
すべきベクトル・データ・オペランドは、必要なときに
高速バッファから実行装置26を介してVPUI2に取
出される。
を拡張するものである。VPtJ12と基本システムの
相互接続は、インタフェース・バス30及び32を介し
て行われる。バス30は実行装置26に接続され、バス
32はlPPF24に接続される。VPUI 2で処理
すべきベクトル・データ・オペランドは、必要なときに
高速バッファから実行装置26を介してVPUI2に取
出される。
インタフェース・バス32は両方向性であり、ベクトル
命令○PコードをlPPF24にある待ち行列からVP
UI2のベクトル命令レジスタ及びベクトル命令バッフ
ァ(共に図示せず)へ転送する。インタフェース・バス
32は、ALUプツトアウェイ・レジスタ(図示せず)
と汎用ストライド・レジスタ40との間でアドレス情報
を転送するのにも用いる。これらのレジスタ及びバッフ
ァの詳細は1985年6月17日付の米国特許出願第7
45040号に記載されている。
命令○PコードをlPPF24にある待ち行列からVP
UI2のベクトル命令レジスタ及びベクトル命令バッフ
ァ(共に図示せず)へ転送する。インタフェース・バス
32は、ALUプツトアウェイ・レジスタ(図示せず)
と汎用ストライド・レジスタ40との間でアドレス情報
を転送するのにも用いる。これらのレジスタ及びバッフ
ァの詳細は1985年6月17日付の米国特許出願第7
45040号に記載されている。
ベクトル命令バッファは、インタフェース・バッファ3
2を介して送られてきたベクトル命令OPコード及びベ
クトル・レジスタ・アドレスを保持する。これらの情報
は命令実行時にVPU12の解読回路で使用される。
2を介して送られてきたベクトル命令OPコード及びベ
クトル・レジスタ・アドレスを保持する。これらの情報
は命令実行時にVPU12の解読回路で使用される。
VPUI2とメモリ14との間のデータ転送は、データ
・バスを介して行われる6具体的に云うと、メモリ14
から読出されたデータはデータ・バス28、実行装置2
6及びインタフェース・バス30を介してVPU12の
データ・レジスタ(図示せず)に送られる。このデータ
・レジスタは読出しデータ保持のためのバッファとして
働く。vPU12からメモリ14ヘデータを転送する場
合は、VPU12のステージ入レジスタ(図示せず)か
らインタフェース・バス3oを介して実行装置26のレ
ジスタへデータが転送される。
・バスを介して行われる6具体的に云うと、メモリ14
から読出されたデータはデータ・バス28、実行装置2
6及びインタフェース・バス30を介してVPU12の
データ・レジスタ(図示せず)に送られる。このデータ
・レジスタは読出しデータ保持のためのバッファとして
働く。vPU12からメモリ14ヘデータを転送する場
合は、VPU12のステージ入レジスタ(図示せず)か
らインタフェース・バス3oを介して実行装置26のレ
ジスタへデータが転送される。
VPU12(7)詳細を第2図に示す。VPU12は、
Oから15までの番号を付けられた16個のベクトル・
レジスタから成るVRA48を含む。
Oから15までの番号を付けられた16個のベクトル・
レジスタから成るVRA48を含む。
第3図に示すように、各ベクトル・レジスタは0からZ
−1までの2個のベクトル要素記憶位置を有している。
−1までの2個のベクトル要素記憶位置を有している。
Zはデータ処理システムによって決まる一定の数値であ
り、ここではZ=128とする。汎用レジスタや浮動小
数点レジスタとは異なり、ベクトル・レジスタは多目的
レジスタであって、2進データ(算術データ又は論理デ
ータ)のベクトルの他に浮動小数点データのベクトルも
記憶することができる。ベクトル・レジスタは、算術演
算、比較、論理演算、ロード及び記憶のために1以上の
ベクトル・オペランドを保持する。どのようなオペレー
ションを行うかに応じて、ベクトルは各32ビツト幅の
2個の要素記憶位置を有する単一のベクトル・レジスタ
を占めるか、又はダブルワード(64ビツト)オペラン
ドの場合は隣接する偶数番及び奇数番のベクトル・レジ
スタ(ベクトル・レジスタ対)を占める。ベクトル・レ
ジスタにはVMR(ベクトル・マスク・レジスタ)及び
ベクトル・データ・レジスタが含まれる。
り、ここではZ=128とする。汎用レジスタや浮動小
数点レジスタとは異なり、ベクトル・レジスタは多目的
レジスタであって、2進データ(算術データ又は論理デ
ータ)のベクトルの他に浮動小数点データのベクトルも
記憶することができる。ベクトル・レジスタは、算術演
算、比較、論理演算、ロード及び記憶のために1以上の
ベクトル・オペランドを保持する。どのようなオペレー
ションを行うかに応じて、ベクトルは各32ビツト幅の
2個の要素記憶位置を有する単一のベクトル・レジスタ
を占めるか、又はダブルワード(64ビツト)オペラン
ドの場合は隣接する偶数番及び奇数番のベクトル・レジ
スタ(ベクトル・レジスタ対)を占める。ベクトル・レ
ジスタにはVMR(ベクトル・マスク・レジスタ)及び
ベクトル・データ・レジスタが含まれる。
ベクトル・オペランドはベクトル・データ・レジスタに
保持される。
保持される。
第2図において、VRA48から読出されたベクトル・
オペランド(データ)はステージ入レジスタ44及びス
テージBレジスタ50へ送られる。
オペランド(データ)はステージ入レジスタ44及びス
テージBレジスタ50へ送られる。
ステージ入レジスタ44はVMRからライン52を介し
て送られてきたデータも受取る。ZビットのVMRはベ
クトル比較演算のターゲット、ビット・ベクトルに対す
る論理演算のソース及びターゲット、並びにマスクされ
た被制御動作のためのマスクのソースとして用いられる
。ステージ入レジスタ44にあるデータはインタフェー
ス・バス30を介して実行装置26へ送られる。ラムダ
・レジスタ46もステージ入レジスタ44にあるデータ
を受取る。ラムダ・レジスタ46は、ステージ入レジス
タ44から実行装置26へ送られるデータのための遅延
レジスタ及びバックアップ・レジスタとして使用される
。データの遅延は、VRA48を適切にアクセスするの
に必要である。
て送られてきたデータも受取る。ZビットのVMRはベ
クトル比較演算のターゲット、ビット・ベクトルに対す
る論理演算のソース及びターゲット、並びにマスクされ
た被制御動作のためのマスクのソースとして用いられる
。ステージ入レジスタ44にあるデータはインタフェー
ス・バス30を介して実行装置26へ送られる。ラムダ
・レジスタ46もステージ入レジスタ44にあるデータ
を受取る。ラムダ・レジスタ46は、ステージ入レジス
タ44から実行装置26へ送られるデータのための遅延
レジスタ及びバックアップ・レジスタとして使用される
。データの遅延は、VRA48を適切にアクセスするの
に必要である。
浮動小数点演算の場合、データはALUシフト・レジス
タ53A及び53B、並びにALU入力レジスタ55A
及び55Bで適切なシフト及び整列を行った後、ALU
54へ送られる。ALU54は、短精度及び良精度の2
進ベクトル・オ゛ペランドの加算及び減算を行う並列2
進加算器であるが、AND、OR及び排他的ORの論理
演算並びに論理シフト(1,2又は3ビツトの左シフト
)も可能である。演算結果はALUレジスタ56へ送ら
れる。ALUプツトアウェイ・レジスタ58は、ALU
レジスタ56にあるデータをライン71を介して再びA
LU54へ入力する際に遅延レジスタとして働く。VR
A48へ帯層すべきデータは、データ・バス70を介し
てVRAプツトアウェイ・レジスタ60へ送られる。A
LUプツトアウェイ・レジスタ58及びライン71は、
ALUパイプを介するベクトル・データの循環を要求す
る命令のために使用される。このような命令の一例とし
て、ベクトルを累算してスカシにするものがある。AL
U54の演算は、当該ベクトル内の他の要素との和をと
るためレジスタ53Aへ循環される。累算の部分結果は
、各マシン・サイクルの[■に、VRAプツトアウェイ
・レジスタ60を介してVRA48に書込まれる。なお
、ALU及びVRAのプツトアウェイ・レジスタ58及
び60は浮動小数点演算の結果として正規化された論理
入力を受取る。
タ53A及び53B、並びにALU入力レジスタ55A
及び55Bで適切なシフト及び整列を行った後、ALU
54へ送られる。ALU54は、短精度及び良精度の2
進ベクトル・オ゛ペランドの加算及び減算を行う並列2
進加算器であるが、AND、OR及び排他的ORの論理
演算並びに論理シフト(1,2又は3ビツトの左シフト
)も可能である。演算結果はALUレジスタ56へ送ら
れる。ALUプツトアウェイ・レジスタ58は、ALU
レジスタ56にあるデータをライン71を介して再びA
LU54へ入力する際に遅延レジスタとして働く。VR
A48へ帯層すべきデータは、データ・バス70を介し
てVRAプツトアウェイ・レジスタ60へ送られる。A
LUプツトアウェイ・レジスタ58及びライン71は、
ALUパイプを介するベクトル・データの循環を要求す
る命令のために使用される。このような命令の一例とし
て、ベクトルを累算してスカシにするものがある。AL
U54の演算は、当該ベクトル内の他の要素との和をと
るためレジスタ53Aへ循環される。累算の部分結果は
、各マシン・サイクルの[■に、VRAプツトアウェイ
・レジスタ60を介してVRA48に書込まれる。なお
、ALU及びVRAのプツトアウェイ・レジスタ58及
び60は浮動小数点演算の結果として正規化された論理
入力を受取る。
ベクトル命令バッファ36は、インタフェース・バス3
2を介して受取ったベクトル命令OPコード及びベクト
ル・レジスタ・アドレスを保持する。
2を介して受取ったベクトル命令OPコード及びベクト
ル・レジスタ・アドレスを保持する。
これらの情報は命令実行時にVPU12の各種解読回路
で使用される。
で使用される。
ALU54で演算すべきオペランド・データはvRA4
8から、又はCPU16からレジスタ42を介して得ら
れる。2つのオペランドがVRA48から供給される場
合、取出された第1のベクトル要素はステージ入レジス
タ44へ送られ、次いでALU54で処理された後、A
LUプツトアウェイ・レジスタ58及びVRAプツトア
ウェイ・レジスタ60へ送られる(A画データ経路)。
8から、又はCPU16からレジスタ42を介して得ら
れる。2つのオペランドがVRA48から供給される場
合、取出された第1のベクトル要素はステージ入レジス
タ44へ送られ、次いでALU54で処理された後、A
LUプツトアウェイ・レジスタ58及びVRAプツトア
ウェイ・レジスタ60へ送られる(A画データ経路)。
取出された第2のベクトル要素はステージBレジスタ5
0へ送られ、次いでALU54で処理された後、ALU
プツトアウェイ・レジスタ58及びVRAプツトアウェ
イ・レジスタ60へ送られる(B画データ経路)。
0へ送られ、次いでALU54で処理された後、ALU
プツトアウェイ・レジスタ58及びVRAプツトアウェ
イ・レジスタ60へ送られる(B画データ経路)。
もう少し具体的に説明すると、A画データ経路における
オペランドの最初の要素は、B画データ経路におけるオ
ペランドの最初の要素よりも1マシン・サイクル早<V
RA48から読出される。
オペランドの最初の要素は、B画データ経路におけるオ
ペランドの最初の要素よりも1マシン・サイクル早<V
RA48から読出される。
従って2サイクル後には、A側オペランドの最初の要素
はラムダ・レジスタ46にあり、B側オペランドの最初
の要素はステージBレジスタ50にあり、A側オペラン
ドの2番目の要素はステージ入レジスタ44にある。こ
のような、A画データ経路及びB画データ経路における
要素の初期オフセットはVRA48の入出力インタフェ
ース・チップを適応させる。このオフセットは、いずれ
のサイクルにおいてもアレイ・チップの読出しを1回し
か行わないことを保証する。従って、VRAプツトアウ
ェイ・レジスタ6oにあるベクトル(ベクトル演算の結
果)は各マシン・サイクルの間にVRA48に書込まれ
る。
はラムダ・レジスタ46にあり、B側オペランドの最初
の要素はステージBレジスタ50にあり、A側オペラン
ドの2番目の要素はステージ入レジスタ44にある。こ
のような、A画データ経路及びB画データ経路における
要素の初期オフセットはVRA48の入出力インタフェ
ース・チップを適応させる。このオフセットは、いずれ
のサイクルにおいてもアレイ・チップの読出しを1回し
か行わないことを保証する。従って、VRAプツトアウ
ェイ・レジスタ6oにあるベクトル(ベクトル演算の結
果)は各マシン・サイクルの間にVRA48に書込まれ
る。
要約すると、オペランド要素対がALUパイプ内で処理
され、その結果が各マシン・サイクルの間にVRA48
に書込まれる。このようなパイプライン方式を用いれば
、ベクトル要素の演算を実行した場合、サイクル毎に演
算結果をVRA48に書込むことができる。なお、図に
は示していないが、VPU12はA画データ経路及びB
画データ経路に接続された乗除算装置及び関連するレジ
スタも含んでいる。
され、その結果が各マシン・サイクルの間にVRA48
に書込まれる。このようなパイプライン方式を用いれば
、ベクトル要素の演算を実行した場合、サイクル毎に演
算結果をVRA48に書込むことができる。なお、図に
は示していないが、VPU12はA画データ経路及びB
画データ経路に接続された乗除算装置及び関連するレジ
スタも含んでいる。
演算を実行すべき2つのベクトル・オペランドのうち、
一方がメモリ14から供給され且つ他方がVRA48か
ら供給される場合、後者のベクトル・オペランドはステ
ージBレジスタ50を含むB画データ経路を介して送ら
れる。メモリ14がら実行装ff!26を介して送られ
てくるベクトル・オペランドは一旦データ・レジスタ4
2にロードされ1次いでB画データ経路を介して送られ
る。
一方がメモリ14から供給され且つ他方がVRA48か
ら供給される場合、後者のベクトル・オペランドはステ
ージBレジスタ50を含むB画データ経路を介して送ら
れる。メモリ14がら実行装ff!26を介して送られ
てくるベクトル・オペランドは一旦データ・レジスタ4
2にロードされ1次いでB画データ経路を介して送られ
る。
演算結果はVRA48中の宛先ベクトル・レジスタに書
込まれる。
込まれる。
ベクトル・オペランド及びスカシ・オペランドを用いて
演算を実行する場合、スカシ・オペランドはまずデータ
・レジスタ42にロードされ、次いでALUレジスタ5
3Aに送られて 命令が完了するまでそこに保持される
。
演算を実行する場合、スカシ・オペランドはまずデータ
・レジスタ42にロードされ、次いでALUレジスタ5
3Aに送られて 命令が完了するまでそこに保持される
。
なお1本明細書で「演算」と云えば、記憶装置20から
のデータの取出し並びに記憶装置へのデータ及び結果の
書込みも包含する。また「結果」は、ベクトル・レジス
タ及びベクトル・マスク・レジスタの内容に対する算術
演算及び論理演算の結果だけでなく、ベクトル・レジス
タ及びベクトル・マスク・レジスタのローディングも包
含する。
のデータの取出し並びに記憶装置へのデータ及び結果の
書込みも包含する。また「結果」は、ベクトル・レジス
タ及びベクトル・マスク・レジスタの内容に対する算術
演算及び論理演算の結果だけでなく、ベクトル・レジス
タ及びベクトル・マスク・レジスタのローディングも包
含する。
結果はベクトル・レジスタ、スカシ・レジスタ又は記憶
装置に書込まれる。ベクトル・レジスタにロードされた
ベクトル要素は記憶装置20に書戻すことができる。
装置に書込まれる。ベクトル・レジスタにロードされた
ベクトル要素は記憶装置20に書戻すことができる。
ベクトル・オペランドを構成する一連のベクトル要素を
メモリ14からVPUI2へ転送する場合、ベクトル・
ロード命令のためのデータ転送経路は、CPU16内の
レジスタが起点となり、インタフェース・バス30を介
してVPUI 2内のデータ・レジスタ42に至る。ベ
クトル要素はデータ・レジスタ42からVRA48の特
定のベクトル・レジスタに書込まれる。1つの要素がベ
クトル・レジスタに書込まれる度に、汎用アドレス・レ
ジスタにあるベクトル要素アドレスが、1つの要素を構
成するバイトの数(例えば2,4又は8)だけ増分され
る。CPU16は取出される各ベクトル要素の記憶装置
アドレスを計算し、その要素記憶位置へサイクル当り最
大1つの要素の割合でデータを転送する。実行装置26
は、マイクロコードの制御のもとに、最初のベクトル要
素のアドレスを生成し、それをlPPF24へ送る。l
PPF24はこのアドレスを順次に増分しながら連続す
るベクトル要素を取出す。
メモリ14からVPUI2へ転送する場合、ベクトル・
ロード命令のためのデータ転送経路は、CPU16内の
レジスタが起点となり、インタフェース・バス30を介
してVPUI 2内のデータ・レジスタ42に至る。ベ
クトル要素はデータ・レジスタ42からVRA48の特
定のベクトル・レジスタに書込まれる。1つの要素がベ
クトル・レジスタに書込まれる度に、汎用アドレス・レ
ジスタにあるベクトル要素アドレスが、1つの要素を構
成するバイトの数(例えば2,4又は8)だけ増分され
る。CPU16は取出される各ベクトル要素の記憶装置
アドレスを計算し、その要素記憶位置へサイクル当り最
大1つの要素の割合でデータを転送する。実行装置26
は、マイクロコードの制御のもとに、最初のベクトル要
素のアドレスを生成し、それをlPPF24へ送る。l
PPF24はこのアドレスを順次に増分しながら連続す
るベクトル要素を取出す。
ベクトル記憶命令を実行するときは、VPUI2はVR
A48中のロードされていたベクトル・レジスタのデー
タをステージAレジスタ44及びインタフェース・バス
30を介してCPU16へ転送する。
A48中のロードされていたベクトル・レジスタのデー
タをステージAレジスタ44及びインタフェース・バス
30を介してCPU16へ転送する。
VPUI2は、長短両方の浮動小数点のバク1〜ル及び
2進整数のベクトルに対して演算を実行する6また、一
般にマスク・ビットとして使用される個々のビットのベ
クトルの演算も行う。演算の対象となるオペランドは、
記憶装置20、ベクトル・レジスタ(対の場合もある)
又はスカシ・レジスタから取出される。オペランドはそ
れぞれ異なったとこめからのものでもよい。例えば、記
憶装置20からの第1オペランド及びベクトル・レジス
タからの第2オペランドに対して演算を実行することが
できる。云うまでもないことであるが、例えば2つのベ
クトル・レジスタ・オペランド間の演算も可能である。
2進整数のベクトルに対して演算を実行する6また、一
般にマスク・ビットとして使用される個々のビットのベ
クトルの演算も行う。演算の対象となるオペランドは、
記憶装置20、ベクトル・レジスタ(対の場合もある)
又はスカシ・レジスタから取出される。オペランドはそ
れぞれ異なったとこめからのものでもよい。例えば、記
憶装置20からの第1オペランド及びベクトル・レジス
タからの第2オペランドに対して演算を実行することが
できる。云うまでもないことであるが、例えば2つのベ
クトル・レジスタ・オペランド間の演算も可能である。
また、一方のソース・オペランドがスカシで、他方がベ
クトルでもよい。その場合、スカシをベクトル・オペラ
ンドと同数の要素を持ったベクトルとして取扱うとベク
トル結果が得られる。同様にしてスカシ結果を得ること
もできる。マスク・ビットを用いる命令は一般にVMR
中の暗黙オペランドを指定する。また、記憶装置オペラ
ンド及びベクトル・レジスタ・オペランドを指定するこ
ともある。
クトルでもよい。その場合、スカシをベクトル・オペラ
ンドと同数の要素を持ったベクトルとして取扱うとベク
トル結果が得られる。同様にしてスカシ結果を得ること
もできる。マスク・ビットを用いる命令は一般にVMR
中の暗黙オペランドを指定する。また、記憶装置オペラ
ンド及びベクトル・レジスタ・オペランドを指定するこ
ともある。
VPUI2に関する説明は特開昭60−103482号
公報にも見られる。
公報にも見られる。
ベクトル ′ レジスタ VSR
実行装w26は、ベクトル・レジスタ及びベクトル・マ
スク・レジスタの現状況を示す情報フィールドを含むV
SRを備えている。VSRの内容は一括して、VSR保
管命令により検査され、またVSR復元命令により変更
される。大部分の命令では、VSRは命令開始時に読取
られ、あとでの処理に備えて、両方向インタフェース・
バス30を介してVPUI2内のレジスタへ送られる。
スク・レジスタの現状況を示す情報フィールドを含むV
SRを備えている。VSRの内容は一括して、VSR保
管命令により検査され、またVSR復元命令により変更
される。大部分の命令では、VSRは命令開始時に読取
られ、あとでの処理に備えて、両方向インタフェース・
バス30を介してVPUI2内のレジスタへ送られる。
VSRを変更する場合は、その値がVPUI2内のシフ
タを通され、CPUIe内のアレイに帯層される。
タを通され、CPUIe内のアレイに帯層される。
第4図に示すように、VSRはVIU (ベクトル使用
中ビット)及びVCH(ベクトル変更ビット)を含んで
いる0本実施例では、VIUフィールドは8ビット幅で
ある。これらのビットは、VRA48の隣接する偶数番
及び奇数番のベクトル・レジスタ対(全部で8対ある)
にそれぞれ関連しており、どのベクトル・レジスタ対を
VR保管命令及びVR復元命令によって保管及び復元す
るかを示す。ベクトル・レジスタを用いる命令の実行中
に、v工Uビットは関連するベクトル・レジスタ対の一
方又は両方にある任意の要素がロード又は変更されると
きにマイクロコードによって1にセットされる。VIU
をセットするかどうかは命令のオペランドによる。
中ビット)及びVCH(ベクトル変更ビット)を含んで
いる0本実施例では、VIUフィールドは8ビット幅で
ある。これらのビットは、VRA48の隣接する偶数番
及び奇数番のベクトル・レジスタ対(全部で8対ある)
にそれぞれ関連しており、どのベクトル・レジスタ対を
VR保管命令及びVR復元命令によって保管及び復元す
るかを示す。ベクトル・レジスタを用いる命令の実行中
に、v工Uビットは関連するベクトル・レジスタ対の一
方又は両方にある任意の要素がロード又は変更されると
きにマイクロコードによって1にセットされる。VIU
をセットするかどうかは命令のオペランドによる。
本実施例ではVCHフィールドも8ビット幅であり、そ
のビットはVRA48のベクトル・レジスタ対にそれぞ
れ関連している。VCHビットは、どのベクトル・レジ
スタ対を被変更VR保管命令によって保管するかを示す
。ベクトル・レジスタを用いる命令(VR復元命令を除
く)の実行中に、VCHビットは関連する。ベクトル・
レジスタ対の一方又は両方にある任意の要素がロード又
は変更されるときにマイクロコードによって1にセット
される。VCHをセットするかどうかは命令のオペラン
ドによる。
のビットはVRA48のベクトル・レジスタ対にそれぞ
れ関連している。VCHビットは、どのベクトル・レジ
スタ対を被変更VR保管命令によって保管するかを示す
。ベクトル・レジスタを用いる命令(VR復元命令を除
く)の実行中に、VCHビットは関連する。ベクトル・
レジスタ対の一方又は両方にある任意の要素がロード又
は変更されるときにマイクロコードによって1にセット
される。VCHをセットするかどうかは命令のオペラン
ドによる。
上述のように、VSRの変更された内容は命令の終了時
にCPUl6中のアレイに帯層される。
にCPUl6中のアレイに帯層される。
VIUビット及びVCHビットの検査はVPUI2で行
う。
う。
1農
ここで幾つかの用語の定義をしておく。
マシン・チェック:装置の誤動作を示す割込みの1つ。
ただしプログラミング・エラーは含まない。
特権命令: CPUが監視プログラム状態にあるときに
だけ有効な命令。
だけ有効な命令。
監視プログラム状態ニブログラム状況ワード(PSW)
のビット15がOであればCPUは監視プログラム状態
にあり、その間はすべての命令が有効である。
のビット15がOであればCPUは監視プログラム状態
にあり、その間はすべての命令が有効である。
問題プログラム状態:PSWのビット15が1であれば
CPUは問題プログラム状態にある。
CPUは問題プログラム状態にある。
「問題」に対して意味のある情報を与える命令だけが有
効である。(r問題」とはシステムの完全性に影響を及
ぼさないアプリケーション・プログラムを意味する。問
題プログラムは、オペレーティング・システムの制御の
もとに、問題プログラム状態においてのみ走行する。) 非特権命令:問題プログラム状態及び監視プログラム状
態のいずれにおいても有効な命令。非特権命令はPSW
のビット15をセットしない。
効である。(r問題」とはシステムの完全性に影響を及
ぼさないアプリケーション・プログラムを意味する。問
題プログラムは、オペレーティング・システムの制御の
もとに、問題プログラム状態においてのみ走行する。) 非特権命令:問題プログラム状態及び監視プログラム状
態のいずれにおいても有効な命令。非特権命令はPSW
のビット15をセットしない。
づン仁ヒ〃1ムとも
よく知られているように、一般に割込みがあると現ps
wが旧PSWとして保管され、割込みの原因を示す情報
が保管され、そして新しいPSWが取出される。以後の
処理は、新PSWに含まれているアドレスのとこるから
始まる命令によって指定される。それらの処理の1つに
、ベクトル処理で使用されたレジスタの保管がある。
wが旧PSWとして保管され、割込みの原因を示す情報
が保管され、そして新しいPSWが取出される。以後の
処理は、新PSWに含まれているアドレスのとこるから
始まる命令によって指定される。それらの処理の1つに
、ベクトル処理で使用されたレジスタの保管がある。
記憶装置又はベクトル・レジスタにある算術ベクトルの
複数の要素に対して演算を実行できるすべてのベクトル
命令について、実行中に例外条件が検出されると、要素
間で割込みをかけることができる。例外条件は、入出力
動作等の外部原因やプログラム実行エラー等の内部原因
により生じる。
複数の要素に対して演算を実行できるすべてのベクトル
命令について、実行中に例外条件が検出されると、要素
間で割込みをかけることができる。例外条件は、入出力
動作等の外部原因やプログラム実行エラー等の内部原因
により生じる。
例えば、CPU (又はVPU)が問題プログラム状態
にあるときに特権命令が出されると、特権命令例外が認
識され、プログラム割込みが生じる。
にあるときに特権命令が出されると、特権命令例外が認
識され、プログラム割込みが生じる。
内部原因には、ページ不在等の記憶装置アクセス例外、
並びに非正規化オペランド、指数桁あふれ及びOによる
除算等の算術演算例外が含まれる。
並びに非正規化オペランド、指数桁あふれ及びOによる
除算等の算術演算例外が含まれる。
すべてのベクトル要素の処理が完了する前に命令の実行
が中断されると、旧PSWにある命令アドレスは更新さ
れず、従って次に実行すべき命令を指示しない。
が中断されると、旧PSWにある命令アドレスは更新さ
れず、従って次に実行すべき命令を指示しない。
割込みの原因となる例外条件が生じると、VSR中のベ
クトル割込みインデックス(V I X)は、割込み終
了後に処理すべき次の要素を含むベクトル・レジスタの
位置を指示する。記憶装置20にあるベクトル要素のア
ドレスを含む汎用レジスタは、命令再開時に処理すべき
次のベクトル要素のアドレスを含む(指示する)ように
更新される。
クトル割込みインデックス(V I X)は、割込み終
了後に処理すべき次の要素を含むベクトル・レジスタの
位置を指示する。記憶装置20にあるベクトル要素のア
ドレスを含む汎用レジスタは、命令再開時に処理すべき
次のベクトル要素のアドレスを含む(指示する)ように
更新される。
ベクトル命令は少なくとも見かけ上は順次に実行され、
単一ベクトル命令のベクトル・オペランドの要素は少な
くとも見かけ上は順次に処理され、そして結果としての
例外は少なくとも見かけ上は順次に認識される。もし実
行が順次的でなく、パフォーマンスを上げるために幾つ
かのオペレーションが同時に行われるのであれば、ハー
ドウェアは正確な割込み点のところまですべてのレジス
タを復元するに十分な情報を保持する(オペレーション
が完全に順次的であった場合と同じ)。どのプログラム
割込みも、認識され且つ割込みが許される最初の例外に
起因している。割込まれたベクトル命令(又は後続のベ
クトル命令)が割込み終了後になすべき記憶位置又はレ
ジスタ内容の変更は1割込み時には行われない。
単一ベクトル命令のベクトル・オペランドの要素は少な
くとも見かけ上は順次に処理され、そして結果としての
例外は少なくとも見かけ上は順次に認識される。もし実
行が順次的でなく、パフォーマンスを上げるために幾つ
かのオペレーションが同時に行われるのであれば、ハー
ドウェアは正確な割込み点のところまですべてのレジス
タを復元するに十分な情報を保持する(オペレーション
が完全に順次的であった場合と同じ)。どのプログラム
割込みも、認識され且つ割込みが許される最初の例外に
起因している。割込まれたベクトル命令(又は後続のベ
クトル命令)が割込み終了後になすべき記憶位置又はレ
ジスタ内容の変更は1割込み時には行われない。
新しいプログラムによる割込み処理が完了して。
割込まれたプログラムを再開できるようになると、保管
されていたレジスタの内容を復元する必要がある・次い
で1割込まれた命令が再び出され1割込み点すなわち処
理すべき次の要素のところからベクトル処理が開始され
る。その際、割込み時に使用されていたベクトル・レジ
スタ及び記憶装置アドレスはそれぞれVIX及び汎用レ
ジスタによって示される。よく知られているように現P
SW中の命令アドレスは、CPU16が取出すべきワー
ド(半ワード)を指定する。(割込まれたベクトル命令
は単に再発行されるだけであるから、VIXを含む全レ
ジスタの内容が復元されて初めて割込み点のところから
実行が再開される。)割込まれたベクトル命令で得られ
ていた前の結果は保管されているので、命令実行の再開
によってそれが乱されることはない。実際、単一ベクト
ル命令の実行中に、それぞれ異なった要素位置のところ
で且つ異なった原因による多重割込みが生じても、前に
得られていた結果は失われない。ベクトル・オペレーシ
ョンの場合、正確な割込みのためには、例外が認識され
たときの命令及び要素の両方を識別する必要がある。
されていたレジスタの内容を復元する必要がある・次い
で1割込まれた命令が再び出され1割込み点すなわち処
理すべき次の要素のところからベクトル処理が開始され
る。その際、割込み時に使用されていたベクトル・レジ
スタ及び記憶装置アドレスはそれぞれVIX及び汎用レ
ジスタによって示される。よく知られているように現P
SW中の命令アドレスは、CPU16が取出すべきワー
ド(半ワード)を指定する。(割込まれたベクトル命令
は単に再発行されるだけであるから、VIXを含む全レ
ジスタの内容が復元されて初めて割込み点のところから
実行が再開される。)割込まれたベクトル命令で得られ
ていた前の結果は保管されているので、命令実行の再開
によってそれが乱されることはない。実際、単一ベクト
ル命令の実行中に、それぞれ異なった要素位置のところ
で且つ異なった原因による多重割込みが生じても、前に
得られていた結果は失われない。ベクトル・オペレーシ
ョンの場合、正確な割込みのためには、例外が認識され
たときの命令及び要素の両方を識別する必要がある。
スカシの保管又は復元の場合、必要な記憶域は200バ
イトもあれば十分であるが、ベクトルの場合は数千バイ
トにも達するので、ベクトル・レジスタの保管及び復元
にはかなりの時間がかかる。
イトもあれば十分であるが、ベクトルの場合は数千バイ
トにも達するので、ベクトル・レジスタの保管及び復元
にはかなりの時間がかかる。
従って、VPU12のレジスタの保管及び復元はパフォ
ーマンスの低下につながる0本発明は保管命令、復元命
令及びクリア命令と共に使用中ビット及び変更ビットを
利用することによって、保管及び復元の時間を短縮する
。本発明によれば、不を用のベクトル・レジスタの保管
及び復元、並びに変更されていないベクトル・レジスタ
の保管が省略されるので、パフォーマンスが改善される
。
ーマンスの低下につながる0本発明は保管命令、復元命
令及びクリア命令と共に使用中ビット及び変更ビットを
利用することによって、保管及び復元の時間を短縮する
。本発明によれば、不を用のベクトル・レジスタの保管
及び復元、並びに変更されていないベクトル・レジスタ
の保管が省略されるので、パフォーマンスが改善される
。
プログラム切替え
割込みによって成るプログラムから別のプログラムに切
替える場合、一方のプログラムでベクトル処理のために
使用していたレジスタが保管、復元又は(特定の条件の
もとて)クリアされる。割込みは、2以上のプログラム
が同じベクトル機構を共用するのを可能にする。プログ
ラム切替え時には、割込まれたプログラムが使用してい
たvPUレジスタの内容を保管すると共に1割込んだプ
ログラムの以前の内容を復元する必要がある。割込まれ
たプログラムが使用していたレジスタで次のプログラム
が使用しないものはクリアされる。
替える場合、一方のプログラムでベクトル処理のために
使用していたレジスタが保管、復元又は(特定の条件の
もとて)クリアされる。割込みは、2以上のプログラム
が同じベクトル機構を共用するのを可能にする。プログ
ラム切替え時には、割込まれたプログラムが使用してい
たvPUレジスタの内容を保管すると共に1割込んだプ
ログラムの以前の内容を復元する必要がある。割込まれ
たプログラムが使用していたレジスタで次のプログラム
が使用しないものはクリアされる。
復元命令は、実行時に各ベクトル・レジスタ対に関連す
るベクトル使用中ビット及びベクトル変更ビットを調べ
、それに基いて必要な処理を行う。
るベクトル使用中ビット及びベクトル変更ビットを調べ
、それに基いて必要な処理を行う。
第4図のVSRに含まれるVIUビットは8つあり、V
RA48のベクトル・レジスタ対にそれぞれ対応してい
て、VR保管命令及びVR復元命令によってどのベクト
ル・レジスタ対を保管及び復元するかを示す。これらの
命令は、VIUビットがOであるベクトル・レジスタ対
を無視する。
RA48のベクトル・レジスタ対にそれぞれ対応してい
て、VR保管命令及びVR復元命令によってどのベクト
ル・レジスタ対を保管及び復元するかを示す。これらの
命令は、VIUビットがOであるベクトル・レジスタ対
を無視する。
VCHビットは特権命令の1つである被変更VR保管命
令によって保管すべきベクトル・レジスタ対を示す。こ
の命令は、VCHビットが1であるベクトル・レジスタ
対を保管する。その後■CHビットは0にリセットされ
る。VCHビットは。
令によって保管すべきベクトル・レジスタ対を示す。こ
の命令は、VCHビットが1であるベクトル・レジスタ
対を保管する。その後■CHビットは0にリセットされ
る。VCHビットは。
関連するベクトル・レジスタ対のV、IUビビッがVR
クリア命令又はVSR復元命令によって0にリセットさ
れた場合にも、0にリセットされる。
クリア命令又はVSR復元命令によって0にリセットさ
れた場合にも、0にリセットされる。
VCHビットを参照することにより、プログラムは同じ
記憶域への重複した保管を避けることができる。(ベク
トル・レジスタ対の内容が変更される前にプログラムが
何回かにわたって割込まれた場合には、・このような重
複した保管が生じ得る。)VR、VRTjVSRW悲匠 第5a〜5d図は1問題プログラム状態又は監視プログ
ラム状態で走行しているプログラムに関して、ベクトル
・レジスタ(VR)及びベクトル状況レジスタ(V S
R)の内容を保管するときに生じ得る事象を示したも
のである。
記憶域への重複した保管を避けることができる。(ベク
トル・レジスタ対の内容が変更される前にプログラムが
何回かにわたって割込まれた場合には、・このような重
複した保管が生じ得る。)VR、VRTjVSRW悲匠 第5a〜5d図は1問題プログラム状態又は監視プログ
ラム状態で走行しているプログラムに関して、ベクトル
・レジスタ(VR)及びベクトル状況レジスタ(V S
R)の内容を保管するときに生じ得る事象を示したも
のである。
第5a図の最初の判断ブロック250で、VIUが1か
どうかが調べられ、もし1であれば、■R保管命令の実
行により、関連するベクトル・レジスタ(VR)対の内
容が保管域中の指示された次要素アドレス位置にある連
続するダブルワードに置かれる(ブロック252)。V
IUが0であれば、VR対の内容は保管域に書込まれな
い。いずれにしても、数要素アドレス(ポインタ)は次
のVR対の保管記憶位置へ増分される(ブロック254
)。非特権命令であるVR保管命令によるVR対の保管
は、当該VR対が最後に復元されたところと同じ記憶位
置に対して行わなくても差支えない。
どうかが調べられ、もし1であれば、■R保管命令の実
行により、関連するベクトル・レジスタ(VR)対の内
容が保管域中の指示された次要素アドレス位置にある連
続するダブルワードに置かれる(ブロック252)。V
IUが0であれば、VR対の内容は保管域に書込まれな
い。いずれにしても、数要素アドレス(ポインタ)は次
のVR対の保管記憶位置へ増分される(ブロック254
)。非特権命令であるVR保管命令によるVR対の保管
は、当該VR対が最後に復元されたところと同じ記憶位
置に対して行わなくても差支えない。
特権命令である被変更VR保管命令を使えば、ベクトル
・レジスタの内容を前と同じ記憶域に保管することがで
きる。この命令は、保管記憶域を同じにする必要がある
ときにのみ使用する。この命令が出されると、第5b図
に示したように、ブロック261及び260でVIUビ
ット及びVCHビットの状態がそれぞれ調へられる。こ
れらがいずれも1にセットされていると、関連するVR
対の内容が保管域中の指定された記憶位置(連続するダ
ブルワード位置)に保管される(ブロック262)。こ
の記憶位置は、当該VR対が以前に保管され復元された
ところである。保管が終るとVCHビットはOにリセッ
トされる(ブロック264)。V CHビットがOであ
った場合には例えVIUビットが1であっても、関連す
るVR対の保管は行わない。いずれにしても、最後に、
数要素アドレス(ポインタ)が次のVR対の保管記憶位
置を指し示すように増分される(ブロック266)。
・レジスタの内容を前と同じ記憶域に保管することがで
きる。この命令は、保管記憶域を同じにする必要がある
ときにのみ使用する。この命令が出されると、第5b図
に示したように、ブロック261及び260でVIUビ
ット及びVCHビットの状態がそれぞれ調へられる。こ
れらがいずれも1にセットされていると、関連するVR
対の内容が保管域中の指定された記憶位置(連続するダ
ブルワード位置)に保管される(ブロック262)。こ
の記憶位置は、当該VR対が以前に保管され復元された
ところである。保管が終るとVCHビットはOにリセッ
トされる(ブロック264)。V CHビットがOであ
った場合には例えVIUビットが1であっても、関連す
るVR対の保管は行わない。いずれにしても、最後に、
数要素アドレス(ポインタ)が次のVR対の保管記憶位
置を指し示すように増分される(ブロック266)。
VR保管命令又は被変更VR保管命令の実行に続いて、
VCHビットが0にリセットされているVSRの内容を
保管する必要がある。VSRは、別の保管命令中のオペ
ランドによって指定されたダブルワード位置に置かれる
。
VCHビットが0にリセットされているVSRの内容を
保管する必要がある。VSRは、別の保管命令中のオペ
ランドによって指定されたダブルワード位置に置かれる
。
vSR′−びVR復−の例
第5c図はVSR復元命令が出されたときの事象を示し
ている。
ている。
ベクトル・レジスタを用いる命令の実行中に、成るVR
対の一方又は両方のレジスタにおいて何れかの要素が初
めてロードされるか、又はその後変更されると、当該V
R対に関連するVIUビットが1にセットされる。VI
Uビットは関連するレジスタのクリアによりリセット(
0にセット)される。
対の一方又は両方のレジスタにおいて何れかの要素が初
めてロードされるか、又はその後変更されると、当該V
R対に関連するVIUビットが1にセットされる。VI
Uビットは関連するレジスタのクリアによりリセット(
0にセット)される。
VSR復元命令が出されると、最初の判断ブロック20
0でVIUをどちらにセットするかが調べら九る。実際
には、これはVSR復元命令のオペランドによって指定
される。1にセットする場合はブロック202に進み、
このとき問題プログラム状態にあれば、対応するVCH
も1にセットする(ブロック204)。監視プログラム
状態でVIUを1にセットする場合は、VCHはこの命
令のオペランドで指定されたようにセットされる。
0でVIUをどちらにセットするかが調べら九る。実際
には、これはVSR復元命令のオペランドによって指定
される。1にセットする場合はブロック202に進み、
このとき問題プログラム状態にあれば、対応するVCH
も1にセットする(ブロック204)。監視プログラム
状態でVIUを1にセットする場合は、VCHはこの命
令のオペランドで指定されたようにセットされる。
VIUをリセットするのであれば、その前にVIUの以
前のセット状態が調べられる(ブロック206)。以前
のセット状態が1であったならば。
前のセット状態が調べられる(ブロック206)。以前
のセット状態が1であったならば。
関連するVR対のすべての要素位置がOにクリアされ(
ブロック208)、次にVIU及び対応するVCHがO
にセットされる(ブロック210)。
ブロック208)、次にVIU及び対応するVCHがO
にセットされる(ブロック210)。
VIUの以前のセット状態がOであったならば、関連す
るVR対はクリアされないが、VIU及び対応するVC
Hは0にセットされる(ブロック210)。
るVR対はクリアされないが、VIU及び対応するVC
Hは0にセットされる(ブロック210)。
VR対は第5d図に示したようにVR復元命令によって
復元される。ただしその前に、関連するVIUをVSR
復元命令によってセットしておかねばならない。復元す
べきVR対に関連するVIUが判断ブロック212で1
と判断されると、このVR対の以前に保管された内容が
復元される(ブロック214)。(VR対の復元は、そ
の内容を保管域中の数要素アドレスによって指定された
連続するダブルワードで置換えることを意味する。偶数
番の汎用レジスタは数要素アドレスを含み、奇数番の汎
用レジスタは数要素番号及びVR対を指定する。)VI
Uが1のときにCPUが問題プログラム状態にあれば(
判断ブロック215)、アプリケーション・プログラム
による命令の誤用を避けるため、VCHが1にセットさ
れる(ブロック217)。VIUが1のときにCPUが
監視プログラム状態にあれば、VCHは最新のvSR復
元命令の実行後の状態を保つ。VIUが0であれば、V
R対の内容は復元されない。VR対はクリアされたまま
である。いずれにしても、数要素アドレス(ポインタ)
は次のVR対の保管記憶位置を指し示すように増分され
る(ブロック216)。例えば、VR対2又は3が復元
されたとすると、奇数番の汎用レジスタはVR対4又は
5を指し示すように2だけ更新される。次要素アドレス
はVR対4及び5の保管記憶位置、すなわちVR対2及
び3の保管記憶位置の終了点に続くアドレスを指し示す
ように更新される。数要素番号は0になる。
復元される。ただしその前に、関連するVIUをVSR
復元命令によってセットしておかねばならない。復元す
べきVR対に関連するVIUが判断ブロック212で1
と判断されると、このVR対の以前に保管された内容が
復元される(ブロック214)。(VR対の復元は、そ
の内容を保管域中の数要素アドレスによって指定された
連続するダブルワードで置換えることを意味する。偶数
番の汎用レジスタは数要素アドレスを含み、奇数番の汎
用レジスタは数要素番号及びVR対を指定する。)VI
Uが1のときにCPUが問題プログラム状態にあれば(
判断ブロック215)、アプリケーション・プログラム
による命令の誤用を避けるため、VCHが1にセットさ
れる(ブロック217)。VIUが1のときにCPUが
監視プログラム状態にあれば、VCHは最新のvSR復
元命令の実行後の状態を保つ。VIUが0であれば、V
R対の内容は復元されない。VR対はクリアされたまま
である。いずれにしても、数要素アドレス(ポインタ)
は次のVR対の保管記憶位置を指し示すように増分され
る(ブロック216)。例えば、VR対2又は3が復元
されたとすると、奇数番の汎用レジスタはVR対4又は
5を指し示すように2だけ更新される。次要素アドレス
はVR対4及び5の保管記憶位置、すなわちVR対2及
び3の保管記憶位置の終了点に続くアドレスを指し示す
ように更新される。数要素番号は0になる。
クリア動作
ベクトル・レジスタのすべての又は選択された対をクリ
アし且つそれらに関連するVIU及びVCHを0にリセ
ットする場合は、VRクリア命令が使用される。例えば
、VPUI 2が問題プログラム状態で新しいプログラ
ムを走行させる前にすべてのベクトル・レジスタをクリ
アしておくため、制御プログラムは監視プログラム状態
においてこの命令を使用することができる。また、不必
要になった又はしばらくの間使わないVR対をクリアす
る場合にも1問題プログラム状態において使用すること
ができる。いずれにしても、クリアされたベクトル・レ
ジスタは使用中でないものとして識別されるので、ベク
トル・レジスタの不必要な保管及び復元が避けられる。
アし且つそれらに関連するVIU及びVCHを0にリセ
ットする場合は、VRクリア命令が使用される。例えば
、VPUI 2が問題プログラム状態で新しいプログラ
ムを走行させる前にすべてのベクトル・レジスタをクリ
アしておくため、制御プログラムは監視プログラム状態
においてこの命令を使用することができる。また、不必
要になった又はしばらくの間使わないVR対をクリアす
る場合にも1問題プログラム状態において使用すること
ができる。いずれにしても、クリアされたベクトル・レ
ジスタは使用中でないものとして識別されるので、ベク
トル・レジスタの不必要な保管及び復元が避けられる。
VR対がクリアされると、そのすべての要素は0になる
が、それらの要素はオペランドとしては有効である。ク
リアされたベクトル・レジスタをソース・オペランドと
して使用する場合は、関連するVIUが1にセットされ
ることはない。クリアされたベクトル・レジスタの1以
上の要素が変更されると、関連するVIU及びVCHは
1にセットされる。その場合、0の値のロードも変更と
みなされる。
が、それらの要素はオペランドとしては有効である。ク
リアされたベクトル・レジスタをソース・オペランドと
して使用する場合は、関連するVIUが1にセットされ
ることはない。クリアされたベクトル・レジスタの1以
上の要素が変更されると、関連するVIU及びVCHは
1にセットされる。その場合、0の値のロードも変更と
みなされる。
諾]υ1作
問題プログラム状態又は監視プログラム状態で走行する
プログラムは、後述のプログラム・ループでVR保管命
令を泪いることにより、VIUが1であるすべてのVR
対の内容全体を保管することができる。
プログラムは、後述のプログラム・ループでVR保管命
令を泪いることにより、VIUが1であるすべてのVR
対の内容全体を保管することができる。
また、VPUI2を使用するプログラムが割込まれて、
ベクトル・レジスタを以前に復元された保管域に保管さ
せる場合、監視プログラム状態で走行する割込みハンド
ラは特権命令である被変更VR保管命令を使用できる。
ベクトル・レジスタを以前に復元された保管域に保管さ
せる場合、監視プログラム状態で走行する割込みハンド
ラは特権命令である被変更VR保管命令を使用できる。
ベクトル・レジスタの保管後、VCHを0として保管す
るために■sR保管命令が出される。(被変更VR保管
命令は、変更されたVR対を保管した後、VIUをクリ
アする。) ベクトル・レジスタを前と同じ場所に保管しなくてもよ
いのであれば、被変更VR保管命令の代りにVR保管命
令を使用できる。例えば、VR保管命令はマシン・チェ
ック割込みを処理する際に使用される。
るために■sR保管命令が出される。(被変更VR保管
命令は、変更されたVR対を保管した後、VIUをクリ
アする。) ベクトル・レジスタを前と同じ場所に保管しなくてもよ
いのであれば、被変更VR保管命令の代りにVR保管命
令を使用できる。例えば、VR保管命令はマシン・チェ
ック割込みを処理する際に使用される。
1元夏走
VSR及びVR対を復元する場合はまずV S R復元
命令が出される。この命令は、VIUが1で且つそれを
OにセットしなければならないVR対をクリアする。
命令が出される。この命令は、VIUが1で且つそれを
OにセットしなければならないVR対をクリアする。
VIUが既に0であれば、VRクリア命令又はVSR復
元命令は関連するVR対を再度クリアすることはない。
元命令は関連するVR対を再度クリアすることはない。
何れかの命令が割込まれて後で再び出されたときは、そ
の命令は最初から再実行される。しかし1割込み前にク
リアされてそのままに保たれているレジスタの処理に時
間を使うことはない。
の命令は最初から再実行される。しかし1割込み前にク
リアされてそのままに保たれているレジスタの処理に時
間を使うことはない。
ベクトル 中ビット VIU
ベクトル・レジスタを使用する命令の実行中に成るVR
対の一方又は両方のレジスタにおいて何れかの要素がロ
ード又は変更されると、関連するVIUが1にセットさ
れる。ベクトル・レジスタをオペランドのソースとして
使う場合は、そのVIUは変更されない。
対の一方又は両方のレジスタにおいて何れかの要素がロ
ード又は変更されると、関連するVIUが1にセットさ
れる。ベクトル・レジスタをオペランドのソースとして
使う場合は、そのVIUは変更されない。
VIUはVSR復元命令によってセットされる。
VSR復元命令がVIUを1から0に変更すると、対応
するVR対は0にクリアされる。その場合、クリアされ
るVR対の内容が前に記憶装置20に保管されていても
それを取出すことなくクリアされる。VIUは、対応す
るVR対がVRクリア命令によってOにクリアされた場
合にも、0にセットされる。
するVR対は0にクリアされる。その場合、クリアされ
るVR対の内容が前に記憶装置20に保管されていても
それを取出すことなくクリアされる。VIUは、対応す
るVR対がVRクリア命令によってOにクリアされた場
合にも、0にセットされる。
VIUの主たる目的は、プログラム切替えに伴う時間を
短縮することにある。VIUが0であるVR対に関して
は、保管又は復元は行われない。
短縮することにある。VIUが0であるVR対に関して
は、保管又は復元は行われない。
そのようなVR対は使用されておらず、またいずれにし
てもOしか含んでいないからである。
てもOしか含んでいないからである。
ぞ(クードフヒU東旦ッ ト (VCH,jベクトル・
レジスタを使用する命令(VR復元命令を除く)の実行
中に、成るVR対の一方又は両方のレジスタにおいて何
れかの要素がロード又は変更されると、そのVR対に関
連するVCHが1にセットされる。ベクトル・レジスタ
をオペランドのソースとして使う場合は、そのVCHは
変更されない。監視プログラム状態でVR復元命令を実
行してもVCHは変更されない。(VR復元命令を問題
プログラム状態で実行するとVCHは1にセットされる
が、プログラム切替えは監視プログラム状態で実行され
るシステム制御プログラムが制御する。問題プログラム
状態においてはVCHは不要である。) VIUが0であれば、対応するVCHも常にOである。
レジスタを使用する命令(VR復元命令を除く)の実行
中に、成るVR対の一方又は両方のレジスタにおいて何
れかの要素がロード又は変更されると、そのVR対に関
連するVCHが1にセットされる。ベクトル・レジスタ
をオペランドのソースとして使う場合は、そのVCHは
変更されない。監視プログラム状態でVR復元命令を実
行してもVCHは変更されない。(VR復元命令を問題
プログラム状態で実行するとVCHは1にセットされる
が、プログラム切替えは監視プログラム状態で実行され
るシステム制御プログラムが制御する。問題プログラム
状態においてはVCHは不要である。) VIUが0であれば、対応するVCHも常にOである。
VCHが1にセットされると、対応するベクトルVIU
も1にセットされる。
も1にセットされる。
VCHは、プログラム切替え時間を更に短縮するのに役
立つ。というのは、使用中のVR対であっても、その内
容が保管域から最後に復元されたときから変わっていな
ければ、プログラム切替え時に保管が行われないからで
ある。云い換えれば、VIUが1であっても対応するV
CHがOであれば、前に復元された内容は依然として有
効である。
立つ。というのは、使用中のVR対であっても、その内
容が保管域から最後に復元されたときから変わっていな
ければ、プログラム切替え時に保管が行われないからで
ある。云い換えれば、VIUが1であっても対応するV
CHがOであれば、前に復元された内容は依然として有
効である。
VCHはベクトル・レジスタの復元には関係せず、従っ
て復元時間を短縮する働きはない。プログラム切替えに
伴うベクトル・レジスタ対の復元は変更とはみなされず
、関連するベクトル変更ビットはそのままに保たれる。
て復元時間を短縮する働きはない。プログラム切替えに
伴うベクトル・レジスタ対の復元は変更とはみなされず
、関連するベクトル変更ビットはそのままに保たれる。
VR復元命令、被変更VR保管命令及びVR保管命令は
いずれも割込み可能であり、命令が出される度に単一の
VR対だけを保管又は復元する。
いずれも割込み可能であり、命令が出される度に単一の
VR対だけを保管又は復元する。
2以上のVR対を保管又は復元する場合は、次のように
して、プログラミング・ループにおいて適切な命令を使
用する必要がある。
して、プログラミング・ループにおいて適切な命令を使
用する必要がある。
1、命令によって指定される第1の汎用レジスタがベク
トル・レジスタ保管域の開始点を指し示す。
トル・レジスタ保管域の開始点を指し示す。
2、最初にクリアされる第2の汎用レジスタが次要素の
番号及び次に保管又は復元すべきVR対の番号を含む。
番号及び次に保管又は復元すべきVR対の番号を含む。
3、保管命令又は復元命令が出される。
4、最後のVR対が保管又は復元されてしまうまで保管
命令又は復元命令への分岐を許す条件付き分岐ステート
メントが上記1の命令に続く。
命令又は復元命令への分岐を許す条件付き分岐ステート
メントが上記1の命令に続く。
次要素番号及び保管域アドレスは、各ベクトル要素の保
管又は復元に伴って増分される。命令の実行が完了する
と、次要素番号は0にセットされ、次のVR対の番号は
増分され、保管域アドレスは次のVR対のための保管域
を指し示す。
管又は復元に伴って増分される。命令の実行が完了する
と、次要素番号は0にセットされ、次のVR対の番号は
増分され、保管域アドレスは次のVR対のための保管域
を指し示す。
保管命令又は復元命令の実行中に割込みが生じた場合、
その再実行は同じVR対において割込みが生じたベクト
ル要素のところから開始される。
その再実行は同じVR対において割込みが生じたベクト
ル要素のところから開始される。
このプログラム・ループは、VIUが1である各VR対
を保管又は復元させ、VIUがOであるVR対は無視さ
れる。
を保管又は復元させ、VIUがOであるVR対は無視さ
れる。
VCH,VIU び合4
第6a図及び第6b図は、ベクトル命令がどこから取出
され、その実行がどのようにして制御され、そしてどこ
で実行されるかを示したものである。第6a図において
、ベクトル命令はI PPF24に受取られ、解釈され
る。ただし、ベクトル命令を実行するのはCPU12の
実行装置26又はVPUI2に設けられている同様な装
置(以下、実行装置26と区別するため命令実行装置と
云う)。
され、その実行がどのようにして制御され、そしてどこ
で実行されるかを示したものである。第6a図において
、ベクトル命令はI PPF24に受取られ、解釈され
る。ただし、ベクトル命令を実行するのはCPU12の
実行装置26又はVPUI2に設けられている同様な装
置(以下、実行装置26と区別するため命令実行装置と
云う)。
命令実行装置は実行装置26の拡張部に相当し、ハード
ウェアによって制御される。これに対し、命令解釈手段
として働<lPPF24はマイクロコードによって制御
される。
ウェアによって制御される。これに対し、命令解釈手段
として働<lPPF24はマイクロコードによって制御
される。
ベクトル命令は命令制御ビット13が1 (オン)にセ
ットされている場合にのみ実行される。このビットはC
PU16にある特定の制御レジスタによって与えられる
(例えば制御レジスタOのビット14)。命令制御ビッ
トがO(オフ)のときにベクトル命令を実行しようとす
ると、ベクトル・オペレーション例外が認識される。ベ
クトル・オペレーション例外はオペレーションを無効化
(ベクトル命令の実行を阻止)シ、プログラムに割込み
がかかる。ベクトル・オペレーションが無効化されると
、VR対を保管又は復元する必要がなくなる。命令制御
ピッj・13は、監視プログラム状態でのみ実行される
特権命令によってセット又はリセットされる。命令制御
ビット13がセットされるのは、VPU12がCPUl
6に取付けられてユーザが使用できるようになったとき
である。
ットされている場合にのみ実行される。このビットはC
PU16にある特定の制御レジスタによって与えられる
(例えば制御レジスタOのビット14)。命令制御ビッ
トがO(オフ)のときにベクトル命令を実行しようとす
ると、ベクトル・オペレーション例外が認識される。ベ
クトル・オペレーション例外はオペレーションを無効化
(ベクトル命令の実行を阻止)シ、プログラムに割込み
がかかる。ベクトル・オペレーションが無効化されると
、VR対を保管又は復元する必要がなくなる。命令制御
ピッj・13は、監視プログラム状態でのみ実行される
特権命令によってセット又はリセットされる。命令制御
ビット13がセットされるのは、VPU12がCPUl
6に取付けられてユーザが使用できるようになったとき
である。
命令制御ビット13がセットされると、ベクトル命令の
解釈及び実行が可能になる。
解釈及び実行が可能になる。
次に第6b図を参照しながら、ベクトル命令の実行につ
いて説明する。
いて説明する。
2 vR保管命令
この特権命令が出されたときに指定されたVR対に関連
するVCHが1にセットされていると、次要素アドレス
によって指定された記憶装置20の連続するダブルワー
ド位置にVR対の内容が書込まれる。云い換えれば、被
変更VR保管命令が取出されて解読され且つVCHがセ
ットされていると、第6b図においてライン268及び
29’0が共に付勢され、その結果ゲート270がライ
ン271に出力信号を発生し、271aを介して命令実
行装置での被変更VR保管命令の実行を可能にする。ゲ
ート270の出力信号はライン271bにも送られ、僅
かな遅延の後にVCHをOにリセットする。1にセット
されていたVCHに対応するVR対の内容は、被変更V
R保管命令の実行により、VRA48からライン304
を介して記憶装置20に書込まれる。この後VCHは0
にリセットされる。勿論、VCHが0であったならばゲ
ート270が出力信号を発生しないので、命令は実行さ
れず、関連するVR対の保管は行われない。従って、V
R対は、自身を指定する被変更VR保管命令が最後に使
用されてからロード又は変更された場合にのみ、保管さ
れる。(VR対のロード又は変更は、ライン274a及
び274bを介して対応するVCH及びVIUをセット
させる。
するVCHが1にセットされていると、次要素アドレス
によって指定された記憶装置20の連続するダブルワー
ド位置にVR対の内容が書込まれる。云い換えれば、被
変更VR保管命令が取出されて解読され且つVCHがセ
ットされていると、第6b図においてライン268及び
29’0が共に付勢され、その結果ゲート270がライ
ン271に出力信号を発生し、271aを介して命令実
行装置での被変更VR保管命令の実行を可能にする。ゲ
ート270の出力信号はライン271bにも送られ、僅
かな遅延の後にVCHをOにリセットする。1にセット
されていたVCHに対応するVR対の内容は、被変更V
R保管命令の実行により、VRA48からライン304
を介して記憶装置20に書込まれる。この後VCHは0
にリセットされる。勿論、VCHが0であったならばゲ
ート270が出力信号を発生しないので、命令は実行さ
れず、関連するVR対の保管は行われない。従って、V
R対は、自身を指定する被変更VR保管命令が最後に使
用されてからロード又は変更された場合にのみ、保管さ
れる。(VR対のロード又は変更は、ライン274a及
び274bを介して対応するVCH及びVIUをセット
させる。
VCH及びVIUは、VRクリア命令が出されるとライ
ン275a及び275bを介してリセットされる。上述
のように、VCHは被変更VR保管命令が実行されると
きにもリセットされる。)VIU及びVCHは、lPP
F24に受取られて解釈された命令の型に応じて、マイ
クロコード(又はラフ1−ウェア)によりセット又はリ
セットされる。その際lPPF24は、受取った命令が
ロード、変更、VRクリア又は被変更VR保管であった
ならば、VIU又はVCHをセット又はリセットすべき
ことをマイクロコード(又はソフトウェア)に知らせる
。
ン275a及び275bを介してリセットされる。上述
のように、VCHは被変更VR保管命令が実行されると
きにもリセットされる。)VIU及びVCHは、lPP
F24に受取られて解釈された命令の型に応じて、マイ
クロコード(又はラフ1−ウェア)によりセット又はリ
セットされる。その際lPPF24は、受取った命令が
ロード、変更、VRクリア又は被変更VR保管であった
ならば、VIU又はVCHをセット又はリセットすべき
ことをマイクロコード(又はソフトウェア)に知らせる
。
VRクリア命令
この命令が出されると、指定された1以上のVR対がク
リアされ、関連するVIU及びVCHがOにセットされ
、そしてVIXが0にセットされる。前にクリアされた
VR対は、関連するVIUがOのままである限り、再度
クリアされることはない。云い換えれば、VRクリア命
令が取出されて解読され(lPPF24)且つVIUが
セットされていれば、第6b図においてライン276及
び277が付勢され、その結果ゲート280がライン2
81に出力信号を発生して、VRクリア命令の実行を可
能にする。VIUがセットされているVR対の内容は、
VRクリア命令の実行により、VRA48において0に
クリアされる。勿論、VIUが0であったならばゲート
280が出力信号を発生しないので、命令は実行されず
、関連するVR対はクリアされない。従って、VR対が
クリアされるのは、それが使用中であった場合だけであ
る。
リアされ、関連するVIU及びVCHがOにセットされ
、そしてVIXが0にセットされる。前にクリアされた
VR対は、関連するVIUがOのままである限り、再度
クリアされることはない。云い換えれば、VRクリア命
令が取出されて解読され(lPPF24)且つVIUが
セットされていれば、第6b図においてライン276及
び277が付勢され、その結果ゲート280がライン2
81に出力信号を発生して、VRクリア命令の実行を可
能にする。VIUがセットされているVR対の内容は、
VRクリア命令の実行により、VRA48において0に
クリアされる。勿論、VIUが0であったならばゲート
280が出力信号を発生しないので、命令は実行されず
、関連するVR対はクリアされない。従って、VR対が
クリアされるのは、それが使用中であった場合だけであ
る。
■J」Ib1隻
VR保管命令が出されたときに指定されたVR対に関連
するVIUが1にセットされていると、次要素アドレス
によって指定された記憶装置20の連続するダブルワー
ド位置(どの記憶域にあってもよい)にVR対の内容が
書込まれる。云い換えれば、VR保管命令がlPPF2
4により取出されて解読され且つVIUがセットされて
いると、ライン284及び285が付勢され、その結果
ゲート282がライン283に出力信号を発生し、VR
保管命令の実行を可能にする。VIUが1にセラ1へさ
れているVR対の内容は、vR保管命令の実行により、
VRA48から記憶装置20に書込まれる。勿論、V
I Uが0であったならばゲー1−282が出力信号を
発生しないので、命令は実行されず、関連するV R対
の保管は行われない。
するVIUが1にセットされていると、次要素アドレス
によって指定された記憶装置20の連続するダブルワー
ド位置(どの記憶域にあってもよい)にVR対の内容が
書込まれる。云い換えれば、VR保管命令がlPPF2
4により取出されて解読され且つVIUがセットされて
いると、ライン284及び285が付勢され、その結果
ゲート282がライン283に出力信号を発生し、VR
保管命令の実行を可能にする。VIUが1にセラ1へさ
れているVR対の内容は、vR保管命令の実行により、
VRA48から記憶装置20に書込まれる。勿論、V
I Uが0であったならばゲー1−282が出力信号を
発生しないので、命令は実行されず、関連するV R対
の保管は行われない。
L入蓮元金介
VR復元命令が出されたときに指定されたVR対に関連
するVIUが1にセットされていると、このVR対の内
容は、次要素アドレスによって指定された記憶域(当該
VR対の保管域)からの連続するダブルワードが置換え
られる。云い換えれば、VR復元命令が取出されて解読
され且つVIUが1にセットされていると、ライン28
6及び287が付勢され、その結果ゲート290がライ
ン29]に出力信号を発生して、VR復元命令の実行を
可能にする。ただし、そのとき同じVR対がロード中又
は変更中であれば、ゲート300の働きによって当該V
R対の復元は阻止される(逆も同様)。ゲート300が
線298に発生する出力信号は、VR復元命令又はロー
ド(若しくは変更)命令の一方を実行させる。勿論、V
IUがOであったならば、ゲート290が出力信号を発
生しないので、V R復元命令は実行されない。従って
、VIUが0であるVR対は変更されない。
するVIUが1にセットされていると、このVR対の内
容は、次要素アドレスによって指定された記憶域(当該
VR対の保管域)からの連続するダブルワードが置換え
られる。云い換えれば、VR復元命令が取出されて解読
され且つVIUが1にセットされていると、ライン28
6及び287が付勢され、その結果ゲート290がライ
ン29]に出力信号を発生して、VR復元命令の実行を
可能にする。ただし、そのとき同じVR対がロード中又
は変更中であれば、ゲート300の働きによって当該V
R対の復元は阻止される(逆も同様)。ゲート300が
線298に発生する出力信号は、VR復元命令又はロー
ド(若しくは変更)命令の一方を実行させる。勿論、V
IUがOであったならば、ゲート290が出力信号を発
生しないので、V R復元命令は実行されない。従って
、VIUが0であるVR対は変更されない。
VR復元命令の実行が完了すると、この命令によって指
定された偶数番のレジスタにある次要素アドレスが次の
VR対のための保管記憶位置へ更新される。次要素番号
はOにセットされ、VR対を指し示すポインタは2だけ
増分される。VR復元命令の実行開始時には、このポイ
ンタの値は0から14までの間の偶数でなければならず
、VR復元命令によって指定された奇数番のレジスタに
ある次要素番号はセクション・サイズ、すなわち1つの
ベクトル・レジスタ中の要素位置の数(第3図の例では
Z)より小さくなっていなければならない。また、記憶
装置20がアクセスされるか否かに関係なく、現VR対
のための保管域開始アドレスは、8Zの整数倍である境
界の上になければならない。さもなければ指定例外が認
識される。
定された偶数番のレジスタにある次要素アドレスが次の
VR対のための保管記憶位置へ更新される。次要素番号
はOにセットされ、VR対を指し示すポインタは2だけ
増分される。VR復元命令の実行開始時には、このポイ
ンタの値は0から14までの間の偶数でなければならず
、VR復元命令によって指定された奇数番のレジスタに
ある次要素番号はセクション・サイズ、すなわち1つの
ベクトル・レジスタ中の要素位置の数(第3図の例では
Z)より小さくなっていなければならない。また、記憶
装置20がアクセスされるか否かに関係なく、現VR対
のための保管域開始アドレスは、8Zの整数倍である境
界の上になければならない。さもなければ指定例外が認
識される。
(VR復元命令が実行されると、ライン302を介して
記憶装置20がアクセスされ、その中の保管域にあるデ
ータがライン304を介してVRA48中の関連するV
R対にロードされる。)保管域 VPUI 2のレジスタの保管及び復元を行うプログラ
ムは現セクション・サイズを調べ、それに基いて保管域
を生成する。
記憶装置20がアクセスされ、その中の保管域にあるデ
ータがライン304を介してVRA48中の関連するV
R対にロードされる。)保管域 VPUI 2のレジスタの保管及び復元を行うプログラ
ムは現セクション・サイズを調べ、それに基いて保管域
を生成する。
現VR対及び次VR対のための保管域の開始アドレスは
次式で与えられる。
次式で与えられる。
5AC=NEA−8XNEN
SAN=SAC+8XZ
SAC:現VR対のための保管域の開始アドレス。
NEA :次要素アドレス・フィールドの内容。
NEN:次要素番号フィールドの内容。
SAN:次VR対のための保管域の開始アドレス。
ベクトル命令は、多くの場合、ベクトル・レジスタを対
にして使用するので、クリア、保管及び復元に関するこ
れまでの説明では、ベクトル・レジスタを対にして扱っ
てきたが、プログラム切替えに伴うベクトル・レジスタ
の処理に関する限り。
にして使用するので、クリア、保管及び復元に関するこ
れまでの説明では、ベクトル・レジスタを対にして扱っ
てきたが、プログラム切替えに伴うベクトル・レジスタ
の処理に関する限り。
対ではなくて1つのベクトル・レジスタであっても同じ
である。更に、クリア、保管又は復元すべきベクトル・
レジスタ対(又はバク1〜ル・レジスタ)が2以上のこ
ともあるが、前述と同様にして処理できる。ベクトル使
用中ビット(V I U)及びベクトル変更ビット(V
C:H)に関しては、クリア、保管又は復元すべき単位
が対ではなくて1つのベクトル・レジスタであった場合
には、ベクトル・レジスタの数(前述の実施例では16
)だけ設けておく必要がある。
である。更に、クリア、保管又は復元すべきベクトル・
レジスタ対(又はバク1〜ル・レジスタ)が2以上のこ
ともあるが、前述と同様にして処理できる。ベクトル使
用中ビット(V I U)及びベクトル変更ビット(V
C:H)に関しては、クリア、保管又は復元すべき単位
が対ではなくて1つのベクトル・レジスタであった場合
には、ベクトル・レジスタの数(前述の実施例では16
)だけ設けておく必要がある。
F0発明の効果
本発明によれば、プログラム切替えに伴う特殊レジスタ
の保管等を最小限に抑えられるので、プログラム切替え
時間を短縮することができる。
の保管等を最小限に抑えられるので、プログラム切替え
時間を短縮することができる。
第1図は本発明に従うデータ処理システムの概略を示す
ブロック図。 第2図はVPUI2の構成を示すブロック図。 第3図はVRA48の構成を示すブロック図。 第4図はベクトル状況レジスタのフィールドを示す図。 第5a図乃至第5d図はベクトル・レジスタの保管及び
復元を示す流れ図。 第6a図及び第6b図はベクトル命令を取出して実行す
る論理を示すブロック図。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) 第3図 第4図 VSR
ブロック図。 第2図はVPUI2の構成を示すブロック図。 第3図はVRA48の構成を示すブロック図。 第4図はベクトル状況レジスタのフィールドを示す図。 第5a図乃至第5d図はベクトル・レジスタの保管及び
復元を示す流れ図。 第6a図及び第6b図はベクトル命令を取出して実行す
る論理を示すブロック図。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) 第3図 第4図 VSR
Claims (1)
- メモリと、複数の特殊レジスタを有する処理装置とを具
備するデータ処理システムにして、前記特殊レジスタが
使用中かどうかを示す使用中ビットを含むレジスタを設
け、該レジスタにおいて前記使用中ビットがセットされ
ている特殊レジスタだけを所定の命令に応答して保管又
は復元するようにしたことを特徴とするデータ処理シス
テム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/763,167 US4740893A (en) | 1985-08-07 | 1985-08-07 | Method for reducing the time for switching between programs |
| US763167 | 1985-08-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6234242A true JPS6234242A (ja) | 1987-02-14 |
Family
ID=25067060
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61158131A Pending JPS6234242A (ja) | 1985-08-07 | 1986-07-07 | デ−タ処理システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4740893A (ja) |
| EP (1) | EP0211152A3 (ja) |
| JP (1) | JPS6234242A (ja) |
| CA (1) | CA1256216A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007219938A (ja) * | 2006-02-17 | 2007-08-30 | Seiko Epson Corp | プロセッサ |
| JP2009163751A (ja) * | 2002-12-19 | 2009-07-23 | Intel Corp | バーチャルマシン動作においてマシン状態を管理する方法及びシステム |
| JP2019510313A (ja) * | 2016-03-23 | 2019-04-11 | エイアールエム リミテッド | ベクトル命令の処理 |
Families Citing this family (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0622035B2 (ja) * | 1985-11-13 | 1994-03-23 | 株式会社日立製作所 | ベクトル処理装置 |
| JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
| JPS6314275A (ja) * | 1986-07-04 | 1988-01-21 | Nec Corp | ベクトル演算プロセツサのスカラデ−タ演算方式 |
| US4974198A (en) * | 1986-07-16 | 1990-11-27 | Nec Corporation | Vector processing system utilizing firm ware control to prevent delays during processing operations |
| US5218712A (en) * | 1987-07-01 | 1993-06-08 | Digital Equipment Corporation | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption |
| US5142677A (en) * | 1989-05-04 | 1992-08-25 | Texas Instruments Incorporated | Context switching devices, systems and methods |
| EP0306891A3 (en) * | 1987-09-11 | 1992-04-01 | National Semiconductor Corporation | Pipelined slave protocol for high performance cpu-fpu cluster |
| US5043867A (en) * | 1988-03-18 | 1991-08-27 | Digital Equipment Corporation | Exception reporting mechanism for a vector processor |
| US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
| US5210834A (en) * | 1988-06-01 | 1993-05-11 | Digital Equipment Corporation | High speed transfer of instructions from a master to a slave processor |
| JPH0337723A (ja) * | 1989-07-05 | 1991-02-19 | Hitachi Ltd | 情報処理装置 |
| US5095526A (en) * | 1990-01-26 | 1992-03-10 | Apple Computer, Inc. | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status |
| WO1992012727A1 (en) * | 1991-01-25 | 1992-08-06 | Regents Of The University Of Minnesota | Laminin a chain domain vi polypeptides |
| JP2665111B2 (ja) * | 1992-06-18 | 1997-10-22 | 日本電気株式会社 | ベクトル処理装置 |
| US5852726A (en) * | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
| US6219779B1 (en) * | 1997-06-16 | 2001-04-17 | Matsushita Electric Industrial Co., Ltd. | Constant reconstructing processor which supports reductions in code size |
| US5893159A (en) * | 1997-10-22 | 1999-04-06 | International Business Machines Corporation | Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system |
| US6513107B1 (en) | 1999-08-17 | 2003-01-28 | Nec Electronics, Inc. | Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page |
| US6813701B1 (en) * | 1999-08-17 | 2004-11-02 | Nec Electronics America, Inc. | Method and apparatus for transferring vector data between memory and a register file |
| US6625720B1 (en) * | 1999-08-17 | 2003-09-23 | Nec Electronics, Inc. | System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs |
| WO2001082059A2 (en) * | 2000-04-27 | 2001-11-01 | Sun Microsystems, Inc. | Method and apparatus to improve context switch times in a computing system |
| US20030088761A1 (en) * | 2001-11-02 | 2003-05-08 | Paver Nigel C. | Register context usage indicator |
| EP1313014B1 (en) * | 2001-11-15 | 2010-03-03 | Texas Instruments France | Interruptible and re-entrant instruction for cleaning a region of a cache memory |
| US20030177342A1 (en) * | 2002-03-15 | 2003-09-18 | Hitachi Semiconductor (America) Inc. | Processor with register dirty bits and special save multiple/return instructions |
| US20060277396A1 (en) * | 2005-06-06 | 2006-12-07 | Renno Erik K | Memory operations in microprocessors with multiple execution modes and register files |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
| US9361115B2 (en) * | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9898330B2 (en) * | 2013-11-11 | 2018-02-20 | Intel Corporation | Compacted context state management |
| US10248426B2 (en) * | 2016-05-24 | 2019-04-02 | International Business Machines Corporation | Direct register restore mechanism for distributed history buffers |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS4916350A (ja) * | 1972-05-19 | 1974-02-13 | ||
| JPS57105045A (en) * | 1980-12-23 | 1982-06-30 | Fujitsu Ltd | Program call control system |
| JPS60195646A (ja) * | 1984-03-16 | 1985-10-04 | Hitachi Ltd | デ−タ処理装置 |
| JPS61235985A (ja) * | 1985-04-11 | 1986-10-21 | Nec Corp | ベクトルプロセツサ |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3440619A (en) * | 1967-07-14 | 1969-04-22 | Ibm | Control system for maintaining register contents during interrupt and branch conditions in a digital computer |
| DE2214240C2 (de) * | 1972-03-23 | 1974-03-28 | Siemens Ag, 1000 Berlin U. 8000 Muenchen | Verfahren zur Abspeicherung von Steuerdaten bei Programmunterbrechung in einem Verarbeitungssystem |
| JPS54107645A (en) * | 1978-02-13 | 1979-08-23 | Hitachi Ltd | Information processor |
| JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
| US4484274A (en) * | 1982-09-07 | 1984-11-20 | At&T Bell Laboratories | Computer system with improved process switch routine |
| JPS6015771A (ja) * | 1983-07-08 | 1985-01-26 | Hitachi Ltd | ベクトルプロセッサ |
-
1985
- 1985-08-07 US US06/763,167 patent/US4740893A/en not_active Expired - Fee Related
-
1986
- 1986-04-15 CA CA000506750A patent/CA1256216A/en not_active Expired
- 1986-04-30 EP EP86105950A patent/EP0211152A3/en not_active Ceased
- 1986-07-07 JP JP61158131A patent/JPS6234242A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS4916350A (ja) * | 1972-05-19 | 1974-02-13 | ||
| JPS57105045A (en) * | 1980-12-23 | 1982-06-30 | Fujitsu Ltd | Program call control system |
| JPS60195646A (ja) * | 1984-03-16 | 1985-10-04 | Hitachi Ltd | デ−タ処理装置 |
| JPS61235985A (ja) * | 1985-04-11 | 1986-10-21 | Nec Corp | ベクトルプロセツサ |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009163751A (ja) * | 2002-12-19 | 2009-07-23 | Intel Corp | バーチャルマシン動作においてマシン状態を管理する方法及びシステム |
| JP2012074074A (ja) * | 2002-12-19 | 2012-04-12 | Intel Corp | バーチャルマシン動作においてマシン状態を管理する方法及びシステム |
| JP2007219938A (ja) * | 2006-02-17 | 2007-08-30 | Seiko Epson Corp | プロセッサ |
| JP2019510313A (ja) * | 2016-03-23 | 2019-04-11 | エイアールエム リミテッド | ベクトル命令の処理 |
Also Published As
| Publication number | Publication date |
|---|---|
| CA1256216A (en) | 1989-06-20 |
| EP0211152A2 (en) | 1987-02-25 |
| EP0211152A3 (en) | 1989-07-26 |
| US4740893A (en) | 1988-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6234242A (ja) | デ−タ処理システム | |
| US4745547A (en) | Vector processing | |
| US5051896A (en) | Apparatus and method for nullifying delayed slot instructions in a pipelined computer system | |
| US5280593A (en) | Computer system permitting switching between architected and interpretation instructions in a pipeline by enabling pipeline drain | |
| US5113521A (en) | Method and apparatus for handling faults of vector instructions causing memory management exceptions | |
| JP3870973B2 (ja) | スーパースケーラマイクロプロセサ | |
| US4970641A (en) | Exception handling in a pipelined microprocessor | |
| US7603497B2 (en) | Method and apparatus to launch write queue read data in a microprocessor recovery unit | |
| JPH0766329B2 (ja) | 情報処理装置 | |
| JPH07248897A (ja) | コンピュータ・システムにおける例外からの回復方法、及びそのための装置 | |
| JPH09152973A (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
| US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
| US5745780A (en) | Method and apparatus for source lookup within a central processing unit | |
| US5729723A (en) | Data processing unit | |
| EP1039376B1 (en) | Sub-instruction emulation in a VLIW processor | |
| EP0212132A1 (en) | Method and digital computer for recovering from errors | |
| US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
| EP0510429A2 (en) | Millicode register management system | |
| JPH0222413B2 (ja) | ||
| EP0211487A1 (en) | Conditional operations in computers | |
| JP2856784B2 (ja) | 電子計算機 | |
| US6289439B1 (en) | Method, device and microprocessor for performing an XOR clear without executing an XOR instruction | |
| JPH06332700A (ja) | 情報処理装置 | |
| EP0634717B1 (en) | Data processing unit | |
| JPH04338825A (ja) | 演算処理装置 |