JPH0517588B2 - - Google Patents

Info

Publication number
JPH0517588B2
JPH0517588B2 JP61110990A JP11099086A JPH0517588B2 JP H0517588 B2 JPH0517588 B2 JP H0517588B2 JP 61110990 A JP61110990 A JP 61110990A JP 11099086 A JP11099086 A JP 11099086A JP H0517588 B2 JPH0517588 B2 JP H0517588B2
Authority
JP
Japan
Prior art keywords
vector
register
instruction
elements
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.)
Expired - Lifetime
Application number
JP61110990A
Other languages
English (en)
Other versions
JPS61290570A (ja
Inventor
Byuukuhorutsu Waanaa
Mooton Sumisu Ronarudo
Saira Ueeri Deebitsudo
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 JPS61290570A publication Critical patent/JPS61290570A/ja
Publication of JPH0517588B2 publication Critical patent/JPH0517588B2/ja
Granted legal-status Critical Current

Links

Classifications

    • 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • G06F15/8084—Special arrangements thereof, e.g. mask or switch
    • 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/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
    • G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

Landscapes

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

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は、ベクトル・レジスタの大きさを超え
る長さを有するベクトルの処理方法に関するもの
で、特に、各セクシヨンがベクトル・レジスタ中
のベクトル・エレメント即ちベクトル要素の数ま
で及んでいるベクトルのセクシヨンを、一部また
は全部が割込可能なベクトル命令により処理する
方法に関するものである。 B 従来の技術 米国特許第4128880号明細書には、複数のベク
トル・レジスタを用いるコンピユータでのベクト
ル処理方法が開示されている。ベクトル演算、ベ
クトル・レジスタから機能ユニツトへ、また、ベ
クトル・レジスタに戻ることにより行われる。ベ
クトル処理中は、1個または2個以上のベクト
ル・レジスタの要素が、オペランドとして順次機
能ユニツトへ伝送され、結果が機能ユニツトから
受信ベクトル・レジスタに伝送される。各機能ユ
ニツトは、オペランドを受信する入力端と、該機
能ユニツトが計算または処理した結果を送信する
出力端を有する。結果ベクトル・レジスタが結果
を受信するとただちにそれらの結果は、連鎖によ
り、他の機能ユニツトがオペランドとして使用可
能になる。処理されるベクトルは、多くてもベク
トル・レジスタと同じ大きさ、すなわち要素の数
と同じである。 欧州特許第44563号明細書は、ベクトル・レジ
スタの長さ(l)より大きい数のベクトル要素(k)によ
るベクトル処理方法を開示している。ベクトル・
プロセツサは、kがlより大きい場合、1つのベ
クトル命令のシリーズによりl個の要素が処理さ
れた後、1つのベクトル演算の反復の必要性を検
出し、実行する。出願明細書の実施例では、3つ
の異なるベクトル・アドレス・レジスタ中のベク
トル・アドレスを更新するために、3つの異なる
ベクトル・アドレス・レジスタ回路を使用してい
る。換言すれば、各ベクトル・アドレス・レジス
タに対して、そのベクトル・アドレス・レジスタ
の内容を更新するベクトル・アドレス回路があ
る。さらに、ベクトル・アドレスは、ベクトル・
アドレス・レジスタ内で、ロードされ、記憶さ
れ、更新されるだけであるため、ベクトル・アド
レス・レジスタ内のベクトル・アドレスを演算す
るように、完全な算術および論理命令セツトを使
用することはできない。命令は、記憶されている
ベクトルについては実行されない。1つのプログ
ラムの実行中は、すべてのベクトルは同じベクト
ル長、すなわち、同数のベクトル要素を有し、ベ
クトル命令は割込可能ではない。 ベクトル処理方法は、1981年にマツクグロウ・
ヒルアンドヘミスフアイア パブリツシヤーから
発行されたピー・エム・コジエ著「パイプライ
ン・コンピユータのアーキテクチユア」に説明さ
れている。 アイ・ビー・エム・テクニカル・デイスクロジ
ヤ・ブレテイン第25巻第12号(1983年5月)に、
ガルシアが、「パイプライン実行装置の記憶アク
セス・列外検出」と題して、記憶アクセス・例外
状態は、前のベクトル要素の処理がすべて完了し
た後でのみ生じることを開示している。 C 発明が解決しようとする問題点 従来、ベクトル・レジスタの大きさより大きい
ことも小さいこともありうるあらゆる長さのベク
トルを、同じセツトのベクトル命令で処理するこ
とはできなかつた。 また、ベクトルにロードされたベクトルのセク
シヨン、およびメモリに記憶されたベクトルのセ
クシヨンについて、算術および論理演算を実行す
ることもできなかつた。 そして、メモリ中のベクトルを、直接オペラン
ドとして使用することもできなかつた。 さらに、ベクトルのアドレスを、汎用レジスタ
にロードし、記憶させて、各ベクトル命令がベク
トル・アドレスを参照した後、ベクトル命令が参
照した各ベクトル・アドレスを、ベクトル・ハー
ドウエアにより更新させることもできなかつた。 そして、ベクトルのアドレスを、汎用レジスタ
にロードし、記憶させて、ベクトル命令が参照し
た各ベクトル・アドレスを、算術および論理命令
により演算することもできなかつた。 その上、割込まれた場合、いくつかのレジスタ
の内容が割込み前の値に復元されれば、割込みの
時点から実行が再開できるように、再発行される
割込可能ベクトル命令により、ベクトルを処理す
ることもできなかつた。 D 問題点を解決するための手段 本発明の目的は、ベクトル・レジスタの大きさ
より大きいことも小さいこともありうる。あらゆ
る長さのベクトルを、同じセツトのベクトル命令
により処理する方法を提供することである。 本発明の方法を実施するためのデータ処理シス
テムは、記憶装置、少なくとも1つは、ベクト
ル・エレメント位置に再分割されたベクトル・レ
ジスタを有するレジスタ、少くとも1つのベクト
ルのベクトル・エレメントを含むオペランド、お
よび、一部はオペランドで実行される命令を実行
する少くとも1つの中央処理装置を含む。ベクト
ル・エレメントについての処理方法は、下記のと
おりである。 (1) 第1のレジスタに、命令の1つによつて処理
されるベクトル・エレメントの数をロードす
る。 (2) 命令により処理される次のベクトル・エレメ
ントを連続的に識別するため、少くとも1つの
ポインタ・レジスタを更新する。 (3) 命令が割込まれた場合、またはベクトル・エ
レメントの最後のものが、第1のレジスタによ
り指示されるように処理された場合、ベクト
ル・エレメントのそれぞれの処理を停止する。 (4) 命令が割込まれた後に命令を再発行し、そし
て、少くとも1つのポインタ・レジスタにより
識別される少くとも1つのベクトルにおけるベ
クトル・エレメントの1つの処理を再開する。 E 実施例 ハードウエア 第1図は、ベクトル処理装置(VPU)12を
含むデータ処理装置10のブロツク線図である。
第1図の、VPU12を除く部分は、メモリ14、
中央処理装置(CPU)16(たとえばIBMシス
テム370−XAモードで処理するもの)、コンソー
ル19およびチヤネル18を含む「ベース」のデ
ータ処理装置である。コンソールは、各種コンソ
ール、たとえば初期化プログラムと対話するた
め、システム・オペレータが使用する。 メモリ14は、プロセツサ記憶装置20および
プロセツサ記憶制御機構(PSCF)22を含む。
メモリはプログラム命令、およびVPU12によ
り処理されるベクトル・オペランドを含むオペラ
ンドの記憶に利用される。PSCFはメモリ14か
ら連続した命令を受けて、CPU16へのオペラ
ンドの転送を開示する。(「オペランド」にはデー
タおよびデータ処理の結果が含まれる。) CPU16は命令を復号する命令前処理装置
(IPPF)24と、IPPFから転送された命令を実
行するE機能装置26を含む。これらの装置は、
ベース・データ処理装置とともに、米国特許第
4200927号明細書に詳細に述べられている。IPPF
24は、E機能装置26により実行される命令及
びVPU12により実行される命令を含むすべて
の命令を取出し、復号する。上記の明細書に述べ
ているように、E機能装置26は、命令実行のた
め、データ・バス28を経由して、メモリ14に
接続されており、命令実行制御信号を発生させる
ためのマイクロプログラム制御ストアを含む。E
機能装置26における命令実行の結果はIPPF2
4に戻され、IPPF24はこれに応答して命令実
行の順序を制御する。 VPU12と、ベース・データ処理装置との相
互接続は、VPU12とE機能装置26との間の
インターフエース・バス30およびVPU12と
IRPE24との間のインターフエース・バス32
により行われる。 インターフエース・バス32は、IPPF24中
の待ち行列から、VPU中の命令レジスタ34お
よびベクトル命令バツフア36へ、ベクトル命令
実行コード(opコード)を転送する(第2図参
照)。双方向インターフエース・バス32はまた、
ALUプツトアウエイ・レジスタ58と汎用スラ
イド(stride)・レジスタ40との間のアドレス
情報の転送にも使用される。ストライド・レジス
タ(第1図参照)は、配列したエレメントを有す
るベクトルのエレメント間のメモリ・アドレス分
離を指定する情報を含む。換言すれば、ストライ
ドは、処理が1つのエレメントから次のエレメン
トに進むときに操作を進めるエレメント位置の数
である。(ストライドについては後の詳述する。) VPU12とメモリ14との間のデータ転送は、
データ・バスに沿つて行われる。特に、メモリ1
4からのデータは、データ・バス28を通じてE
機能装置26へ、さらに双方向インターフエー
ス・バス30を通じてVPU12中のデータ・レ
ジスタ42に送られる。データ・レジスタ42
(第2図)は、インターフエース・バス30を通
じてE機能装置26から送られたデータのバツフ
アとして作用する。VPU12からメモリ14に
転送されたデータは、VPU12中のステージA
レジスタ44(またはラムダ・レジスタ46)か
ら、インターフエース・バス30を通じてE機能
装置26へ送られる。 第2図は、一部上に述べVPU12中の経路、
レジスタおよび機能ユニツトを示す。第2図には
また、第3a図および第3b図に詳細に示すベク
トル・レジスタ・アレイ(VRA)48も含まれ
ている。 特に、第3a図は、0から15までの番号(順
序)を付け、それぞれが0からZ−1(Zはたと
えば128等の数)の番号を付けたエレメント位置
を有し、特定のデータ処理装置に固定された16個
の物理ベクトル・レジスタを示す、汎用レジスタ
や浮動小数点レジスタと異なり、ベクトル・レジ
スタは多目的で、二進(算術または論理)および
浮動小数点の両方のデータのベクトルを記憶する
ことができる。ベクトル・レジスタは、1つまた
は2つ以上の、算術、比較、論理、ロードおよび
記憶の操作についてベクトル・オペランドを保留
するのに用いる。操作により、対応するエレメン
トが結合される物理レジスタがダブルワード(64
ビツト)のオペランドを形成する場合、1つのベ
クトルはそれぞれが32ビツト幅のZ個のエレメン
トを有する単一ベクトル・レジスタ、またはレジ
スタの奇偶対(ベクトル・レジスタ対)を占有す
る。ベクトル・レジスタは、ベクトル・マスク・
レジスタ(後述)および、ベクトル・オペランド
を含むベクトル・レジスタ、すなわちベクトル・
データ・レジスタを含む。 第3b図は、各ベクトル・レジスタ(VR)が
128個の4バイト・エレメントからなる。第3a
図に示す16個のベクトル・レジスタを示す。ハー
ドウエアの立場からはアレイ全体は64アレイのチ
ツプからなる。各チツプは幅が9ビツト、すなわ
ち8ビツトおよび1つのパリテイー・ビツトであ
る。各アレイ・チツプは、1サイクル当たり1回
の読み書きに限定されているため、ベクトル・レ
ジスタは4方向にインターリーブされている。各
アレイ列は、4個ずつに分けた16個のチツプから
なる1つのインターリーブを表わす。ベクトル・
レジスタは、VPU12におけるベクトル演算の
1サイクル当たり2個のエレメントを与え、ベク
トル演算またはE機能装置26のいずれかから、
1サイクル当たり1個のエレメントを受取る。 ベクトル・レジスタ・アレイ(VRA)48中
のベクトルのアドレス指定には、アドレス・レジ
スタ59を使用する(下記のVEARの説明参
照)。ベクトル・レジスタ・アレイ中のベクト
ル・アドレスに書込まれたデータ・ベクトルは、
ベクトル・レジスタ・アレイ・プツトアウエイ・
レジスタ60に送られる。このレジスタへの入力
は、データ・レジスタ42からライン64へ、お
よび各ソースからプツトアウエイ・バス62へ行
われる。記憶中のベクトル・アドレスのベクト
ル・エレメントは、通常の順序のアドレスにより
アクセスされることが多い。命令(ベクトル・エ
レメントにアクセスする)は、記憶中のベクトル
の開始アドレスを含むため、CPU16中の汎用
レジスタを指定するが、ストライドを含むため、
他の汎用レジスタ(ストライド・レジスタ40)
を指定することもできる。汎用レジスタに含まれ
る開始アドレスは、記憶中の後続のエレメントが
アクセスされると自動的に更新される。割込みが
生じると、汎用レジスタの内容は、割込みの後処
理すべき次のベクトル・エレメントの記憶アドレ
スになる。 (これは、すでに処理されたエレメントが割込
みを生じないようにする。)このようなベクト
ル・アドレスの自動更新は、下記に示すセクシヨ
ン中のベクトルの処理に用いられる。 第2図で、ベクトル・レジスタ・アレイから読
出されたベクトル・オペランド(データ)は、ス
テージAレジスタ44およびステージBレジスタ
50に送られる。(ステージAレジスタ44はま
た、ベクトル・マスク・レジスタ(VMR)から
ライン52に送られたデータも受信する。ベクト
ル・マスク・レジスタ(Zビツトを有する)は、
ベクトル比較操作の結果のターゲツト、ビツト・
ベクトルの論理演算のソースおよびターゲツト、
ならびにマスクされた制御演算用のマスクのソー
スとして用いられる。)ステージAレジスタから
のデータは、インターフエース30を通じてE機
能装置26に送られる。ラムダ・レジスタ46
は、ステージAレジスタのデータを受信し、ステ
ージAレジスタ44からE機能装置26に送られ
たデータの、データ・デイレイ・レジスタとし
て、またバツクアツプ・レジスタとして用いられ
る。データデイレイは、ベクトル・レジスタ・ア
レイ48に正しくアクセスするために必要であ
る。浮動小数点演算のため(ALUシフトレジス
タ53Aおよび53B、ならびにALU入力レジ
スタ55Aおよび55Bを通して正しくシフトさ
れ、整列されたデータは、次に処理のため算術論
理ユニツト(ALU)54に送られる。ALU(算
術手段)は、二進の短精度および長精度ベクト
ル・オペランドの加算および減算を行う並列二進
加算器である。ALUはまた、論理AND、ORお
よびEXOR演算も行い、オペランドを左に1、
2または3ビツト論理的にシフトすることもでき
る。ALUレジスタ56は、ALU54の出力を保
持する。ALUプツトアウエイ・レジスタ58は、
ラインク71を通じてALUに循環すべきALUレ
ジスタ56から送られたデータのデイレイ・レジ
スタとしても作用する。VRA48に戻されるデ
ータは、データ・バス70を通じてVRAプツト
アウエイ60にゲートされる。(ALUプツトアウ
エイ・レジスタおよびVRAプツトアウエイは、
浮動小数点演算の結果として、正規化された論理
入力を受信する。) ベクトル命令バツフア36は、命令実行の間、
VPU12中の他の復号回路が使用するため、イ
ンターフエース・バス32に受信したベクトル命
令opコード、およびベクトル・レジスタ・アド
レスを保持する。 第2図に示すように、ベクトル・オペランド・
データは、ベクトル・レジスタ・アレイ48、ま
たはデータ・レジスタ42を通じてCPU16の
いずれかから得られる。2つのオペランドが、ベ
クトル・レジスタ・アレイから得られた場合は、
取出された第1のベクトル・エレメントは、ステ
ージAレジスタ44に送られ、次にALU54で
算術または論理命令により演算された後、ALU
プツトアウエイ・レジスタ58およびVRAプツ
トアウエイ・レジスタ60(A側のデータ経路)
に送られる。取出された第のベクトル・エレメン
トは、ステージBレジスタ50に送られ、次に
ALU54で算術または論理演算で演算された後、
ALUプツトアウエイ・レジスタ58およびVRA
プツトアウエイ・レジスタ60(B側データ経
路)に送られる。特に、A側データ経路上のオペ
ランドの第1のエレメントは、B側データ経路上
のオペランドの第1のエレメントより1マシン・
サイクル早く、ベクトル・レジスタ・アレイ48
から読出される。したがつて、2マシン・サイク
ル後は、A側オペランドの第1のエレメントはラ
ムダ・レジスタ46内にあり、B側オペランドの
第1のエレメントはステージBレジスタ50にあ
り、A側オペランドの第2のエレメントはステー
ジAレジスタ44にある。A側およびB側データ
経路のエレメントのこの初期オフセツトは、ベク
トル・レジスタ・アレイの入出力(I/O)イン
ターフエース・チツプに適応される。このオフセ
ツトにより、所定サイクル中いかなるアレイ・チ
ツプからも、1回のみの読出しが行われることが
保証される。したがつて、VRAプツトアウエ
イ・レジスタ60中のベクトル、すなわちベクト
ル演算の結果は、各マシン・サイクル中、ベクト
ル・レジスタ・アレイ48に記憶される。(VPU
12も、多分割ユニツト、ならびにA側およびB
側データ経路に接続され、本明細書に引用した参
照文献に説明された付属レジスタ(図示されてい
ない)を含む。) メモリ14(第1図)からの1つのベクトルオ
ペランドについて、ベクトル・レジスタ・アレイ
48のベクトル・レジスタからの1つのベクト
ル・オペランドと同時に演算が行われると、アレ
イからのベクトル・オペランドはB側のデータ経
路を送られる。メモリ14から(E機能装置26
を通じて)ベクトル・オペランドは、先ずデー
タ・レジスタ42へ、次にA側のデータ経路に送
られる。演算のベクトル結果は、ベクトル・レジ
スタ・アレイ48中の宛先ベクトル・レジスタに
書込まれる。(「演算」には、記憶装置からのデー
タの取出し、ならびに記憶装置へのデータおよび
結果のロードおよび記憶が含まれる。「結果」に
はベクトル・レジスタおよびベクトル・マスク・
レジスタの内容についての算術および論理演算の
結果、ならびにベクトル・レジスタおよびベクト
ル・マスク・レジスタのロードが含まれる。結果
はスカラ、またはベクトル・レジスタにも、記憶
装置にも記憶させることができる。ベクトル・レ
ジスタにロードしたベクトル・エレメントは、記
憶装置に戻すことができる。) ベクトル・オペランドの1連のベクトル・エレ
メントをメモリ14からVPU12へ転送する場
合、ベクトル・ロード命令のデータ転送路は
CPU16中のレジスタに始まり、インターフエ
ース・バス30を通じてデータ・レジスタ42へ
と続く。次にエレメントはライン64およびベク
トル・レジスタ・アレイ・プツトアウエイ・レジ
スタ60を通じてベクトル・レジスタ・アレイ4
8中のベクトル・レジスタに記憶される(書込ま
れる)。エレメントがベクトル・レジスタに書込
まれると、ハードウエアは、レジスタ59中のベ
クトル・エレメント・アドレスをエレメントのバ
イト数すなわち2、4または8だけ増分する。同
時に、後述するベクトル割込みインデクス
(VIX)は、ベクトル命令により処理(演算)さ
れるベクトル・レジスタ中のエレメント数を含
む。VIXはまた、すでに演算されたベクトル・
エレメント数も示す。ベクトル命令は割込可能で
ある。ストライドを使用するロード命令について
は、エレメントのバイト数、すなわち2、4また
は8以外の増分だけベクトル・アドレスが増分さ
れる。換言すれば、CPU16は取出された各ベ
クトル・エレメントの記憶アドレスを計算し、デ
ータを各サイクルの1エレメントの最高速度で計
算されたエレメント位置に転送する。間接アドレ
ス指定を用いるデータ命令については、ALU5
4は更新されたアドレスを計算し、インターフエ
ース・バス32を通じてCPU16へ送る(第1
図および第2図)、次にCPU16は、他の取出し
要求を行ない、(新しい)データをインターフエ
ース・バスを通じて、VPU12すなわちVRA4
8中のベクトル・レジスタに転送する。 ベクトル記憶命令の実行中に、VPU12は、
ベクトル・レジスタ・アレイ48中のベクトル・
レジスタからのデータをステージAレジスタ48
を通じて、双方向インターフエース・バス30か
らCPU16に転送する。 レジスタ(本明細書ではベクトル・カウント・
レジスタ(VCT)とも称する)は、ベクトルま
たはセクシヨン内で処理すべきベクトル・エレメ
ント数を指示する。VCTは、ベクトル命令実行
中は増分も減分もされない。ベクトル・カウント
の範囲は、0からセクシヨンの大きさまでの値で
ある。上に述べたように、VIXは次の処理すべ
きエレメントを指示する。このレジスタはまた割
込みを生じ特定のベクトル命令のために処理を再
開する場合、ベクトル・レジスタで処理すべき
(次の)エレメントを指示する必要が生じる状態
でも利用される。VIXは、ベクトル命令の開始
時では通常0(ベクトル・レジスタの第1のエレ
メントがエレメント0であることを示す)であ
り、ベクトル命令実行後は0にリセツトされる。
次に、VIXはベクトル処理操作を再開するため、
ベクトル・レジスタ中に開始位置を与える。
VCTレジスタは、VIXとともに、すなわちVCT
−VIXとして、ベクトル演算中に処理されるベ
クトル・レジスタのエレメント数を決定する。 第2図に示し、上に述べる機能ユニツトに関し
て、記憶している1つのベクトルのエレメントを
下記のようにベクトル・レジスタの他のベクトル
のエレメントに加えることができる。 1 ベクトル・オペランドの第1のエレメント
は、ベクトル・レジスタ・アレイ48のソース
(第1)ベクトル・レジスタから読出され、続
いて、ステツピング後、ステージAレジスタ4
4を通してラムダ・レジスタ46に記憶され
る。 2 他のベクトル・オペランドの第1のエレメン
トは、メモリ14からステージBレジスタ50
に読出される。 3 両エレメントは並列にALUシフト・レジス
タ53Aおよび53Bにゲートされる。浮動小
数点データの場合、正規化が生じ、エレメント
はALU入力レジスタ55Aおよび55Bにゲ
ートされる。 4 次に両ベクトル・エレメントは、ALUで演
算(加算)され、結果は第1にALUレジスタ
56に、第2にALUプツトアウエイ・レジス
タ58に、またライン70を通してVRAプツ
トアウエイ・レジスタ60にゲートされる。
VRAプツトアウエイ・レジスタは結果をベク
トル・レジスタ・アレイ48の(宛先レジス
タ・ベクトル中の)合計位置に置く。(ALUレ
ジスタはまた、ALU54の(ステージA)シ
フト・レジスタに結果を送る。) 5 上記の操作が繰返される。加算の結果は第1
のベクトル・レジスタ中のベクトルのエレメン
トの合計が、所定の第1のベクトル・エレメン
トを、メモリ内の第2のベクトルの所定のエレ
メントに加えることによつて得られることであ
る。メモリ内の第2のベクトルのアドレスは、
汎用レジスタにより指示される。 ベクトル・レジスタは、ベクトル演算の1サイ
クル毎に2つのエレメントを与え、ベクトル演算
の結果としてまたはCPU16から、1サイクル
毎に1つのエレメントを受取ることができる。 第3C図は、ベクトル・レジスタ・アレイ48
のアドレス指定を示す。第3b図中の各列は、単
独にアドレスすることができる。1つの列に書込
み、他の3つの列のいずれか1つから読取ること
ができるように、列中の16のアレイ・チツプのす
べてに同じアドレスが示される。ベクトル・エレ
メント・アドレス・レジスタ(VEAR)には、
VEAR1、VEAR2およびVEAR3の3つがあ
る。VEAR2およびVEAR3は通常、所定のサ
イクルの間に読出されているソース・ベクトルの
エレメント(位置)の数を含んでいる。VEAR
1は通常宛先ベクトル・レジスタに書込まれるエ
レメント(位置)の数(結果)を含む。VEAR
1はまた、結果をベクトル・レジスタに書込むほ
とんどのベクトル命令に対するベクトル命令割込
みインデクス(VIX)でもある。各VEARは、
それ自身のハードウエア増分器により更新され、
第2図に示すデータ(データ・イン)レジスタ4
2中のデータからロードされる。(VEARは記憶
タイプ命令のためのVIXである。)VIXは、VRA
プツトアウエイ・レジスタ60に伴うデータ有効
ビツトが、ベクトル・レジスタに更新された書込
みをさせるためにセツトされるときにのみ増分さ
れる。したがつて、割込みが、ベクトル・レジス
タが更新されるべきではないことを示した場合
は、VIXは増分されず、割込み前に特定の命令
の実行中に処理される次のベクトル・エレメント
の現在の指示を行う。VIXの内容は、VIXが割
込み後に再実行される命令によつて処理される次
のエレメントを指示するため、任意のフイツク
ス・アツプ・ルーチンが実行された後、割込まれ
た命令が再発行されたときに利用することができ
る。(VIXはまた、ベクトル・レジスタ(および
ベクトル・マスク・レジスタ)の現在の状態を示
す状態レジスタ(VSR)のフイールドでもあ
る。) ベクトル・レジスタ・アレイ48中のベクトル
のアドレス指定はまた、第3c図でビツト83と
して示す3つのベクトル・アドレス・レジスタ
(VAR)を含む。このVARビツトは、VAR1、
VAR2およびVAR3である。VAR2および
VAR3は通常データが読出されているソース・
ベクトル・レジスタ番号を含んでいる。VAR1
は通常データが書込まれている。宛先ベクトル・
レジスタ番号含んでいる。これらのVARは、そ
の実行サイクルの始めに、命令自体により初期化
される。 各VERのビツト5および6は、ライン84に
カラム・セレクト(CS)を、各VEARのビツト
2および3は、ライン86にロウ・セレクト
(RS)を与える。7ビツトのベクトル・レジス
タ・アレイ・アドレス88は、アレイ中のベクト
ル・レジスタの1つに、Zの位置(エレメント)
の所定の1つをアドレスする。 VPU12は、短精度および長精度浮動小数点
数および二進整数のベクトルの演算を行う。個々
のビツトのベクトルについての演算もあり、これ
らは一般にマスク・ビツトとして使用される。演
算はベクトル・レジスタ(またはベクトル・レジ
スタ対)、もしくはスカラ(汎用または浮動小数
点)レジスタ、もしくはこれらを組合わせたもの
に記憶されたオペランドについて行われる。すな
わち、演算は、記憶されたベクトルと、ベクト
ル・レジスタ・オペランドとの間で、または2つ
のベクトル・レジスタ・オペランドの間で行われ
る。1つのソース・オペランドはスケーラであ
り、他のソース・オペランドはベクトルであるこ
とが可能である。スカラは、同じ数のエレメント
をベクトル・オペランドとして有するベクトルと
して扱うことが可能で、これによりベクトル結果
を与え、または、スカラ結果が得られる。マス
ク・ビツトを使用する命令は、一般に、ベクト
ル・マスク・レジスタに暗黙オペランドを指定す
る。これらは記憶およびベクトル・レジスタ・オ
ペランドを指定することもできる。 データ処理装置10におけるVPU12の説明
は、米国特許出願番号第544674号に記載されてい
る。 ベクトルのセクシヨン化 ベクトルのセクシヨン化は、上記のハードウエ
アを用いて、長さがセクシヨンの大きさ、すなわ
ちベクトル・レジスタ中のエレメント位置の数を
超えるベクトルを処理する方法である。ベクトル
命令それ自身以外に、分岐ステートメントで終る
セクシヨニング・ループを形成することによりベ
クトル処理を制御するために、新しい命令は1つ
だけしか必要としない。レジスタの初期化(セツ
トアツプ命令)は、汎用レジスタおよび、(スカ
ラ浮動小数点オペランドの場合は)浮動小数点レ
ジスタをロードする既存の命令により行われる。 ベクトル・レジスタの大きさ(セクシヨン・サ
イズ)より大きいベクトルは、一般に次のように
処理される。 (1) ベクトルは、大きくてもベクトル・レジスタ
中のエレメント位置の数に等しいセクシヨンに
分割すると考える。(ベクトル・レジスタより
エレメントの数が少い。または同じベクトル
は、分割されない。) (2) ループ(セクシヨニング・ループ)は、セク
シヨンに分割したベクトルのすべてのセクシヨ
ンを連続して処理するため、適当な一連のベク
トル命令を繰返す。 (3) 汎用レジスタに含まれるベクトルのアドレス
は、汎用レジスタ中のベクトル・アドレスを参
照する各ベクトル命令が実行されると、ベクト
ル・ハードウエアにより自動的に更新される。
(ベクトルのアドレスを含む任意の汎用レジス
タにアクセスするために、ベクトル命令は単に
汎用レジスタを参照(指示)するだけである。
汎用レジスタはすでに設けられ、CPU16に
サポートされているため、各汎用レジスタに対
応する回路は必要でない。このような汎用レジ
スタの使用の結果、汎用レジスタ中のベクト
ル・アドレスを処理するために、完全な算術お
よび論理命令セツトが得られる。) ベクトル命令を含むプログラムは、セクシヨ
ン・サイズとは無関係である。このプログラム
は、大きさの異なるベクトルを処理することがで
きる。すなわち、ベクトル・エレメント数は、セ
クシヨン・サイズより小さくても、等しくても、
大きくてもよい。 下記のプログラム例は、ベクトル・エレメント
が主記憶装置に表わされるベクトル・セクシヨニ
ングを含むベクトル全体の処理を説明する。記憶
されたベクトルは、順次アドレス指定によりアク
セスされる。 隣接ベクトルの使用例 主記憶装置中の2つの隣接ベクトルAおよびB
を加算し、その結果を隣接ベクトルCに記憶させ
るとする。各ベクトル中のエレメント位置数をN
で表わす。ベクトルはすべて長精度(64ビツト)
浮動小数点形式であり、これは、長精度浮動小数
点数を保つために、ベクトル・レジスタ対を結合
させることを意味する。 L G0,N LA G1,A LA G2,B LA G3,C LP VLVCU G0 VLD V0,G1 VAD V0,V0,G2 VSTD V0,G3 BC 2,LP 命令L G0,Nは、各ベクトルの全長(エレ
メントNの数)を、長さレジスタとして作用する
汎用レジスタ(G0)の主記憶装置に、二進形式
でロードする。 命令LA G1,AはベクトルAのアドレスを、
アドレス・レジスタの1つとして作用する汎用レ
ジスタ1(G1)にロードする。 命令LA G2、Bは、ベクトルBのアドレス
を、汎用(アドレス)レジスタ2(G2)にロー
ドする。 命令LA G3、Cは、ベクトルCのアドレス
を、汎用(アドレス)レジスタ3(G3)にロー
ドする。 命令VLVCU GOは、ラベルLPが割当てられ
ており、新しいLOAD VCT AND UPDATE命
令である。これは、 (1) セクシヨン・サイズZ(ベクトル・レジスタ
中のエレメント位置数)またはレジスタ内の長
さレジスタG0の内容のいずれか小さい方をロ
ードする。(これは、G0中のオペランドが正
の場合のみ生じる。オペランドが負または0の
場合は、VCTレジスタは0にセツトされる。)
VCTは、VLVCU命令および条件付分岐
(BC)ステートメントにより形成されるセクシ
ヨニンクグ・ループの各繰返しの間に、各ベク
トル命令により処理されるべき最後のベクト
ル・エレメントを決定するのに用いる。レジス
タG0の内容は、32ビツトの符号付き二進整数
として扱われる。ベクトル・カウントおよびセ
クシヨン・サイズは、16ビツトの符号無し二進
整数として扱われる。(VCTはまた、ベクトル
状態レジスタ(VSR)のフイールドでもあ
る。) (2) 長さレジスタG0の内容から、VCTの内容
を差引き、結果を長さレジスタG0に記憶させ
る。このようにして、長さレジスタG0は更新
され、残つたベクトル長、すなわち、処理すべ
き残りのベクトル・エレメント数を含む。
VLVCU命令は、レジスタG0を更新する前
に、G0の内容を反映させるため、条件コード
(CC)をセツトする。CCは、完全なベクトル
がループの終りで処理されているかどうかを示
す。(G0は常に処理されるべき残りのエレメン
ト数を含み、VCTは、VLVCUおよび次の分
岐命令により形成されるループの次の繰返しの
間、処理されるべきエレメント数を含む。
VIXはベクトル命令により処理すべきベクト
ル・レジスタ中の、次のエレメント数を含む。
VCTおよびVIXは、ベクトル演算の間に処理
すべきベクトル・レジスタ番号を決定する。) ほとんどのベクトル命令では、VSRは命令
の最初に(後の操作のため、VPU12中のレ
ジスタに)読込まれ、双方向バス30を通じて
ベクトル・ハードウエア(VPU12)に送ら
れる。VCTが更新されると常に、「新しい」
VCT値がVSRの適切なフイールドに書込まれ
る。次に、VSR値はVPU12中のシフタ(64
ビツト)を通してゲートされ、CPU16中の
アレイに書戻される。 下記に詳細に説明するように、次のベクトル命
令のそれぞれにより参照される各汎用(アドレ
ス)レジスタの内容は(命令実行中は)主記憶装
置中のベクトルをアドレスするが、セクシヨニン
グ・ループの次の繰返しの間に各ベクトル命令に
より識別するため、ベクトル・ハードウエアによ
り自動的に更新される。(更新はまた、処理の結
果が記憶される次の宛先セクシヨンを識別する。) VSRは、E機能ユニツト26中のアレイ内に
ある。このアレイは、予備作業用記憶域と呼ばれ
る。ベクトル命令には、VSRの全部または一部
をオペランドとして使用するものがある。VSR
はCPU16内にあるため、CPUはこれらの命令
を実行する。 命令VLD V0,G1は、レジスタG1に記憶
されるベクトル命令Aのアドレスにより指示され
るベクトルAのセクシヨンを、ベクトル・レジス
タV0にロードする。ロードされるベクトルAの
セクシヨンの長さは、現在のベクトル・カウンタ
VCTにより決定される。 命令VAD V0,V0,G2は、レジスタG2
に記憶されたベクトルBのアドレスにより指示さ
れるベクトルBのセクシヨンと、前にベクトル・
レジスタV0にロードされたベクトルAのセクシ
ヨンとを加算し、結果をベクトル・レジスタV0
に記憶させる。ベクトルBのセクシヨンは、エレ
メントごとに(ベクトル・レジスタV0中の)ベ
クトルAのセクシヨンに加算され、結果がベクト
ル・レジスタV0に記憶される。(VAD命令は、
明確に3つのオペランド、すなわち2つのソー
ス・オペランド(V0,G2)、および1つのター
ゲツト・オペランド(V0)を指定することに注
目されたい。)この場合、割込可能の算術演算が
レジスタ内のベクトルについて行われる。命令
VSTD V0,G3は、その結果を記憶させる。
各ベクトル・オペランド・セクシヨンと結果セク
シヨンの長さは、VCTおよびVIXにより決定さ
れる。(他の命令については、VADと同様オペラ
ンドは記憶中のものでよい。この場合、割込可能
の算術および論理演算は、主記憶装置内のベクト
ルについて行われる。) 命令BC 2、LPは、長さレジスタG0の内容
がなお0より大きいかどうかを決定するために条
件コード(CC)を試験する。G0が0であれば、
各ベクトル命令のセクシヨンはすべて処理されて
おり、VLVCUおよびBC命令で形成されるルー
プは終了されている。それ以外の場合は、他のベ
クトル・セクシヨンの処理を続けるため、LPの
ラベルを付けたVLCU命令の分岐が生じる。BC
命令は、ループ中の条件付分岐のための、条件付
分岐命令である。本実施例で、条件コード2がセ
ツトされた場合は、VLVCU命令はVCTレジス
タをセクシヨン・サイズにセツトしていることに
なる。これは、ベクトル・エレメントの全セクシ
ヨンが、セクシヨニング・ループ内で処理され、
さらに処理すべきものが残つていることを意味す
る。 本明細書に開示するベクトル・セクシヨニング
の操作を図示したフロー・チヤートを第4図に示
す。このフロー・チヤートで、G0は長さ(ベク
トルのエレメント数N)レジスタ、VCTAはベ
クトル・カウント・レジスタ、CCは条件コード、
Zはセクシヨン・サイズ、G1〜G3はベクト
ル・アドレスを含む汎用レジスタを示す。
VLVCU命令により実行されるハードウエアの動
作は、点線で囲まれたブロツク81内に示され
る。条件付分岐(BC)命令は、判定ブロツク8
5に示す。このフロー・チヤートは、本明細書の
説明により自明であるので、これ以上の説明は行
なわない。 上記の例をさらに説明するために、セクシヨ
ン・サイズは8、主記憶装置中の各ベクトルのエ
レメント数は20と仮定する。VLVCU命令およ
びBC命令により形成されるループには、各ベク
トル中の3つのセクシヨン、すなわち8エレメン
トの完全なセクシヨン2つおよび4エレメントの
部分セクシヨン1つが、ループが完了する前に、
介入するベクトル命令により処理されるように、
3回の繰返しを必要とする。特に、第1の繰返し
の間に、ベクトルAの第1の8エレメントのセク
シヨンと、ベクトルBの第1の8エレメントのセ
クシヨンが、8エレメント・ベクトル・レジスタ
(長いベクトル・エレメントを保持するため、対
になつたベクトル・レジスタ0および1を有す
る)で加算され、結果が順次主記憶装置のベクト
ルCの第1の8エレメントのセクシヨンに記憶さ
れる。第2の繰返しの間には、ベクトルAの第2
の8エレメントのセクシヨンと、ベクトルBの第
2の8エレメントのセクシヨンが、ベクトル・レ
ジスタV0で加算され、結果が順次主記憶装置の
ベクトルCのエレメントのセクシヨンに記憶され
る。第3の繰返しの間には、ベクトルAの部分セ
クシヨンとベクトルBの部分セクシヨンがベクト
ル・レジスタV0で加算され、結果が主記憶装置
のベクトルCの残つた4つのエレメントに記憶さ
れる。これでループが終了する。 第5図は、ループが終了した後のこのベクトル
Cを示す各エレメントには8バイトが含まれ、し
たがつて完全な8エレメントのセクシヨンは記憶
された64バイトを占有する。第1の8エレメント
のセクシヨンは、ベクトルCのアドレスから始ま
り、SA+63バイトへの第1の繰返し60の後記憶
される。第2の8エレメントのセクシヨン(64バ
イト)は、SA+64からSA+127への第2の繰返
し62の後記憶される。4エレメントの部分セクシ
ヨンは、SA+128からSA+159の第3の繰返し65
の後記憶される。 後記の表は、上例で、VLVCU命令の第1の実
行前、3回のループの繰返しのそれぞれの終りに
おける条件コード(CC)のセツト状態、VCTレ
ジスタの内容、および汎用(長さおよびアドレ
ス)レジスタの内容をまとめた表である。ループ
の実行の間、VCTレジスタは0からセクシヨ
ン・サイズまでの範囲の数を含む。後記の表で、
VLVCU命令が実行される前は、CCのセツトと
VCTの内容は無関係である。汎用レジスタG0
は、主記憶装置中の各ベクトルのエレメント数を
示す20を含み、汎用レジスタG1は、ベクトルA
の開始アドレス(SA A)を含み、汎用レジスタ
G2は、ベクトルBの開始アドレス(SAB)を
含み、汎用レジスタG3は、ベクトルCの位置の
開始アドレス(SA C)を含む。VLVCUで始ま
りBCで終る命令のループの最初の実行(第1の
繰返し)の開始時には、長さレジスタG0の内容
は正である。第4図のフローチヤートにさらに詳
細に示すように、セクシヨン・サイズ8と長さレ
ジスタの内容20の小さいほうがベクトル・カウン
ト(VCT)レジスタに記憶されるため、後記の
表でVCTレジスタは8を含む。条件コードは2
にセツトされる。次に長さレジスタG0は、長さ
レジスタG0の内容20からVCTレジスタの内容
8を差引き、結果12を長さレジスタG0に記憶さ
せることにより更新する。各エレメントは8バイ
トを表わすため、ベクトル・ハードウエアは自動
的に各汎用(アドレス)レジスタG1,G2およ
びG3を、それぞれの開始アドレス(SA)プラ
ス64(バイト)に更新する。これは各ベクトル
の8つのベクトル・エレメントがループの第1の
繰返しの間に処理が終るからである。条件コード
(CC)は、長さレジスタG0がなお0より大きい
かどうかを決定するため、BC命令によりテスト
される。(CCはまだ2であることは、ループが繰
返されるべきであることを示す。)命令のループ
の第2の実行(第2の繰返し)の開始時に、セク
シヨン・サイズ8と、長さレジスタG0の現在の
内容12との小さいほうがベクトル・カウント
(VCT)レジスタに記憶されるので、VCTレジ
スタは8を含む。CCは変らない。次に長さレジ
スタは4(G0−VCT)に更新され、各汎用レジ
スタは再び64を前の内容に加えることにより自
動的に更新される。これは、各ベクトル中でさら
に8つのベクトル・エレメントがループの第2に
繰返しの間に処理を終るためである。条件コード
(CC)はBC命令によりテストされる。CCはまだ
2で、レジスタG0の内容がなお0より大きいこ
とを示す。命令のループの第3の(この場合は最
後)実行(第3の繰返し)の開始時に、セクシヨ
ン・サイズ8と、長さレジスタG0の内容4との
小さいほうがベクトル・カウント(VCT)レジ
スタに記憶されるので、VCTレジスタは4を含
む。条件コードは3にセツトされ、レジスタG0
は0にセツトされる。各汎用レジスタは8×4
(4つの8バイト・エレメントを表わす)すなわ
ち32を、内容が参照される各命令を実行する際、
最後の繰返し後の内容に加えることにより更新さ
れる。条件付分岐命令(BC)により分岐が生じ
ないので(分岐は条件コード(CC)が2のとき
にのみ生じるため)ループが終了する。(CCは古
いプログラム状況ワード(PSW)内に保存され、
プログラムの割込み(後述)後に古いPSWが再
ロードされれたとき自動的に復元される。) ループの繰返しの間に記憶されているベクトル
を参照する各ベクトル命令は、ベクトル・ハード
ウエアを通じて、ループの次の繰返しの間に更新
され、処理すべき次のベクトル・エレメントのセ
クシヨンの始めを指示する(下記のストライドの
説明参照)。ベクトル命令によつて参照される各
汎用レジスタは、CPUの1つの更新回路によつ
てのみ更新される。1つのベクトル命令は、1回
に1つの記憶されているベクトル命令のみを取扱
うため、セクシヨンニング・ループ内の複数のベ
クトルに、汎用性を失うことなくアドレスするた
めに、複数の汎用レジスタを使用する。たとえ
ば、SAAおよびSA BはそれぞれベクトルAお
よびBの開始アドレスを指示し、特に、ループの
最初の繰返しの間、ベクトル・レジスタV0に加
算され、次に主記憶装置中のベクトルCの第1の
8エレメントのセクシヨンに記憶されるセクシヨ
ンを指示する。第1の繰返しの後、SA A+64と
SA B+64はそれぞれベクトルAおよびBの第2
の8エレメントのセクシヨンの開始アドレスを指
示し、ループの第2の繰返しの間にベクトル・レ
ジスタV0に加算され、続いてベクトルCの第2
の8エレメントのセクシヨンに記憶される。第2
の繰返しの後、SA A+128とSA B+128はそれ
ぞれベクトルAおよびBの第3の8エレメントの
セクシヨンの開始アドレスを指示する。この場
合、ベクトルAとベクトルBの残りのセクシヨン
はそれぞれ4つのエレメントを有し、第3の(最
後の)繰返しの間に、ベクトル・レジスタV0に
加算され、続いて主記憶装置中のベクトルCに記
憶される。(ベクトル・アドレス・レジスタは、
第3の繰返しの間に再び更新され、ベクトル演算
が続行された場合、次のセクシヨンとなるものの
開始アドレスを指示する。)前述のように、各ベ
クトル・アドレス・レジスタの内容は、そのベク
トル(前のセクシヨン)を参照する命令の実行に
続いて更新される(ベクトルの次のセクシヨンを
指示する)。ループ内でベクトル・アドレスが2
回以上必要な場合は、同じベクトル・アドレスを
使用するたびに別の汎用(アドレス)レジスタを
割当てることができる。たとえば、ベクトルBが
ループ内の一連のベクトル命令中で2回以上使用
される場合は、LA・G2、B命令に続いてLR
G4、G2命令をプログラミニングすることがで
きる。その結果、レジスタG2およびG4はいず
れもベクトルBの開始アドレスを含む。次にレジ
スタG2およびG4は、ループの1回の繰返しの
間にベクトルBのアドレスが2回以上使用される
ように、2つの命令中に参照される。これによ
り、同一のベクトル・アドレス・レジスタが、2
回以上参照された場合にループの1回の繰返しの
間に2回以上不注意に更新される可能性が避けれ
る。 VLVCU命令は、条件コード(CC)が長さベ
クトルG0の現在の内容およびベクトル・カウン
トVCTを反映するようにセツトすることに注目
されたい。しかし、異なるプログラム中に介入す
る命令がCCを更更することができる場合、長さ
レジスタGOの内容をテストし、条件コードが2
であるか否かを効果的に再確証するために、別の
命令、たとえばLOAD AND TEST命令LTR
G0、G0が先行すべきである。 スカラ・レジスタ中のオペランド 浮動小数点または二進ベクトル演算は、1つの
ソース・オペランドとして、スカラ・レジスタの
内容を指定することができる。他のオペランドは
ベクトルである。スカラ・オペランドは長さ
VCTのベクトルと同様に、すなわちベクトル・
オペランドと長さは同じであるが、同一のエレメ
ントを持つものとして扱われる。したがつて、ス
カラ・オペランドはベクトル・レジスタにロード
することも、算術命令に用いることもできる。ス
カラおよびベクトル・オペランドの演算は、スカ
ラまたはベクトルのいずれかの結果が得られる。 ストライド ベクトルが隣接しない場合、すなわち隣接する
記憶位置に連続したエレメントが含まれない場合
は、ベクトル処理命令は2つの汎用レジスタ、す
なわち1つは前と同様開始アドレス用、1つはス
トライド用のレジスタを指定する。ストライドと
は、命令の処理が1つのエレメントから次のエレ
メントへ進むときに、演算が進められるエレメン
ト位置数である。もちろん、一時に、すなわちベ
クトル命令の1回の実用の間に処理されるベクト
ル・エレメントの最大数は、上記のようにベクト
ル・カウント(VCT)レジスタにより指定され
る。 すべてのベクトルが隣接する上の例では、3つ
のベクトル命令VLD、VADおよびVSTDのスト
ライド(汎用(ストライド)レジスタ40に含まれ
る)は「1」で、後続のベクトル・エレメントは
主記憶装置中の隣接する記憶位置にあることを示
す。このストライドのために汎用レジスタが指定
されない場合は、このストライドは省略される。
ストライドが「T」で、エレメント・サイズが
「W」(バイト)であれば、ベクトルAの連続する
記憶エレメントのアドレスは、SA A、SA A+
WT、SA A+2WT、……である。Wの値は、
ベクトル命令形式中の命令コードが、エレメント
がハーフワード、ワード、ダブルワードのどれを
指定するかによつて、2、4または8となる。 ある種のベクトル命令形式では、フイールド
(RT)がストライドを含む汎用レジスタを指定
する。RTフイールドが0であれば、1のストラ
イドが推定される。同じベクトル命令形式では、
フイールド(RS)は、処理すべき記憶中のベク
トル・オペランドの最初のエレメントの開始アド
レスを含む汎用レジスタ(GR)を指定する。次
にこの汎用レジスタが処理された各エレメントに
ついて更新され、ベクトルがベクトル命令に参照
されるときベクトル・アドレス(GR中の)が更
新される。また、ベクトル・アドレスは内部レジ
スタで更新し、ベクトル命令が完了し、または割
込まれたとき、GRは内部レジスタから更新され
たベクトル・アドレスを受取るだけとすることも
できる。 ベクトルの割込み 一般的な割込みについては公知のとおりで、プ
ログラム状況ワード(PSW)の古いPSWとして
の記憶、割込みの原因を識別する情報の記憶、お
よび新しいPSWの取出しが含まれる。その後の
処理は、新しいPSW中のアドレスにおける命令
により指定される。新しいPSW中のアドレスに
おける命令の機能の1つに、ベクトル・レジスタ
VCTおよびVIXを含むベクトル処理に使用する
レジスタの節約がある。各クラスの割込みは、古
いPSWが記憶され、新しいPSWが取出される記
憶位置により区別される。原因はさらに割込みコ
ードにより識別される。割込みの原因となる状態
は、割込みコードの最も右の7ビツトの位置に置
かれたコード化した値によつて示される。プログ
ラムの割込みの場合、プログラム割込みコードは
実の位置142から143に記憶される。 記憶された、またはベクトル・レジスタ中の算
術ベクトルの複数のエレメントで演算されるすべ
てのベクトル命令は、例外的状態が検出されたと
き、任意のエレメント位置でベクトル命令が実行
されると(エレメント間に)割込まれることがで
きる。例外的状態とは、入出力動作時の外部要
因、またはCPUにより実行されている現在のプ
ログラムへの内部要因等である。内部要因には、
ページ不在等のアクセス例外、正規化されないオ
ペランド等の算術例外、べき指数のオーバーフロ
ーおよびアンダーフロー、0による割り算等があ
る。セクシヨン中のすべてのエレメントの処理が
完了しないうちに命令が割込まれた場合は、古い
PSW中の命令のアドレスは更新されず、実行さ
れる次の命令を指示する。 例外によつて割込みが生じた場合は、ベクトル
割込み指標(VIX)は、割込み終了後処理すべ
きエレメント(ある場合)を含む適当なベクト
ル・レジスタ位置(ベクトル・レジスタ内、また
は、ベクトル・マスク・レジスタ中の)を指示す
る。記憶されたベクトル・エレメントのアドレス
を含む汎用レジスタが更新され、命令が再使用さ
れる場合、処理すべき記憶された次のベクトル・
エレメントのアドレスを含む(指示する)。同じ
命令が2回以上割込まれ、その都度命令は再発行
され、(残りの)エレメントの処理が再開される
ことがわかる。 ベクトル命令は順次実行され(またはされるよ
うに見え)、単一のベクトル命令のベクトル・オ
ペランドのエレメントは順次処理され(またはさ
れるように見え)、生じた例外は順次認識され
(またはされるように見え)る。実行が順次行わ
ず、一部の演算が長いパーフオーマンス期間重複
すると、ハードウエアは演算が純粋に順次行われ
るのと同様に、すべてのベクトルが割込みの正確
な点に複元されるのに十分な情報を保存する。プ
ログラムの割込みはすべて、認識され、割込みが
許される第1の例外によるものである。記憶位置
またはベクトル内容の変更は、割込まれたベクト
ル命令(または後続のベクトル命令)により割込
みの終了後行われ、割込みの時には行われない。 割込み処理が、割込まれたプログラムの再開が
可能なように新しいプログラムにより完了した
後、前に保管されたレジスタは、前の内容に復元
される。次に、割込まれた命令は再発行され(古
いPSW中の命令アドレスは、次の命令に進めら
れず、古いPSWは現在のPSWとして復旧するた
め)、ベクトル実行は割込みの点、すなわち、ベ
クトル・レジスタ(またはベクトル・マスク・レ
ジスタ)についてVIX、記憶装置については汎
用(アドレス)レジスタが示す、処理すべき次の
エレメントから再開される。公知のように現在の
PSW中の命令アドレスは、CPU16により取出
されるワード(ハーフワード)を指定する。(割
込みの点からの実行は、割込まれたベクトル命令
が再発行されることはまれであるため、VIXお
よびVCTを含むすべてのベクトルの内容が復元
される限り再使用される。)前の割込まれたベク
トル命令の実行により得られた結果が記憶されて
いるため、命令実行の再開は前に得られた結果に
影響を与えることはない。事実、異なるエレメン
ト位置における単一の命令実行の間、前に得られ
た結果を失わない異なる理由により、複数の割込
みが可能になる。さらに、各例外状態すなわち算
術例外について、フイツクスアツプを事前にプロ
グラミングすることができ、割込まれた命令の実
行が再開される前に、前に得られた結果が交換さ
れ、すなわちプログラムが結果を回復させること
ができる。たとえば、プログラムはハードウエア
が作成するエレメントの結果を他の値により交換
し、次にベクトルの残りの部分について処理を続
ける。(後述の例外・延長コードが「フイツクス
アツプ」プログラムが結果のエレメントの位置決
めをするのを助ける。)この種の修復は、同じ命
令実行の間に複数の例外があつても行われる。
VIXの内容がベクトル・カウント(VCT)レジ
スタと等しい場合、ベクトル命令は完了する。最
後のベクトル・エレメントがベクトル命令により
処理された後、命令アドレスは自動的に次のベク
トル命令に更新され(進められ)、命令がベクト
ル割込み指標によるときは、VIXは0にセツト
される。 ベクトルは仮想記憶域に記憶されるため、1つ
または2つ以上のページ境界を横切り、ページ不
在がベクトル中のどのエレメントにも生じる。事
実、大きいストライドでは、最悪の場合はエレメ
ント全部のページ不在である。生じたページ不在
のすべてについて、演算装置は(実質的に公知の
方法で)失われたページを得た後、実行を続け
る。ページ不在が多すぎると、失われたページを
得るために時間のロスが多くなり、装置の性能が
低下する。それにもかかわらず、割込み可能なベ
クトル命令の実行によりベクトル命令が割込み可
能でなく、その実行が割込まれた点から再開でき
ない場合は、難しい問題が生じる。たとえば、ロ
ードおよび記憶命令は、ベクトル・セクシヨンの
始めから再び開始しなければならず、しかも成功
は保証されない。これは、さらにページ不在が生
ずる可能性があり、またはページを固定、すなわ
ちページ可能でなくしなければならないためであ
る。さらに、ベクトルの算術演算は、部分的な結
果が前のオペランド・エレメントに置換されてい
ることがあるため、例外の後、始めから再び開始
することが極めて困難である。 ベクトル命令の実行は一般に比較的長時間を要
する。しかし、ベクトル命令が割込可能であれ
ば、ベクトル命令の実行の終了を持たなければな
らない場合により、演算装置は外部例外状態(優
先度の高い要求)に速く応答できる。特に、演算
装置は、アアクシヨンがVPUの使用を必要とし
ない場合、ベクトル・レジスタは他のプログラム
が利用できるようにするため保管する必要がない
ため、速い中間アクシヨンをとることができる。 上記の説明のとおり、割込み可能なベクトル命
令はいくつかの目的に使用される。すなわち、 1 例外の修複 2 ページ不在の処理 3 応答性 である。 例外・拡張コード 割込み可能なベクトル命令が算術例外の原因と
なる場合、0以外の例外・拡張コード(EEC)
が、プログラム割込みコード(PIC)のビツト0
から7に記憶される。EECは、割込みが割込み
不能なスカラ命令または割込可能なベクトル命令
のいずれによるものか、結果がある場合は、スカ
ラ・ベクトルまたはベクトル・レジスタのいずれ
かに置かれるか、結果の幅、およびレジスタ番号
を示す。 PICのビツト0は、EECが記憶されていること
を示す。特に、算術例外が割込み可能なベクトル
命令によるものであり、命令の実行を部分的に終
了したままになる原因となる場合は、ビツト0は
1にセツトされ、ビツト1から7までは、次の情
報を含む。 ビツト:算術結果はビツトが1の場合はベクト
ル・レジスタに、ビツトが0の場合
はスカラ・レジスタにある。 ビツト2〜3:算術結果の幅(4バイトまたは8
バイト)を含む。 ビツト4〜7:結果レジスタのレジスタ番号を含
む。算術例外がスカラ(ノン・ベク
トル)命令によるものであれば、
PICのビツト0から7はすべて0に
なる。 F 発明の効果 本発明により、ベクトル・レジスタの大きさよ
り大きいことも小さいこともありうる。あらゆる
長さのベクトルを、同じセツトのベクトル命令に
より処理することができる。 また、レジスタにロードされたベクトルのセク
シヨン、およびメモリに記憶されたベクトルのセ
クシヨンについて、算術および論理演算を実行す
ることもできる。 そして、メモリ中のベクトルを、直接オペラン
ドとして使用することもできる。 さらに、ベクトルのアドレスを、汎用レジスタ
にロードし、記憶させて、各ベクトル命令がベク
トル・レジスタを参照した後、ベクトル命令が参
照した各ベクトルアドレスを、ベクトル・ハード
ウエアにより更新させることもできる。 そして、ベクトルのアドレスを、汎用レジスタ
にロードし、記憶させて、ベクトル命令が参照し
た各ベクトル・アドレスを、算術および論理命令
により操作することもできる。 その上、割込まれた場合、いくつかのレジスタ
の内容が割込み前の値に復元されれば、割込みの
時点から実行が再開できるように、再発行される
割込可能ベクトル命令により、ベクトルを処理す
ることもできる。 【表】
【図面の簡単な説明】
第1図は、本発明のベクトル処理方法を実施す
るための装置のブロツク線図、第2図は、第1図
の装置のハードウエア経路、ベクトル、および機
能ユニツトのブロツク線図、第3a図は、第1図
の装置中のベクトル・レジスタを示すブロツク線
図、第3b図は、チツプを、インターリービング
するために4つに分類した第3a図のベクトル・
レジスタを示すブロツク線図、第3c図は、第1
図の装置中のベクトル・レジスタのアドレス指定
を示すブロツク線図、第4図は、第1図の装置に
おけるベクトル命令実行中の、ベクトル・セクシ
ヨニング・ループの動作を示すフロー・チヤー
ト、第5図は、第4図のベクトル・セクシヨニン
グ・ループがそれぞれ完了した後の、セクシヨ
ン・サイズが8の、ベクトル長20のベクトルCを
示す図である。 10……データ処理装置、12……ベクトル処
理装置、14……メモリ、16……中央処理装
置、18……チヤネル、20……プロセツサ記憶
域、22……プロセツサ記憶域制御機構、24…
…命令前処理装置、26……E機能装置。

Claims (1)

  1. 【特許請求の範囲】 1 記憶装置、少なくとも1つの汎用レジスタお
    よびベクトル・エレメント記憶位置に分割された
    少なくとも1つのベクトル・レジスタを含むレジ
    スタ、前記記憶装置および前記ベクトル・レジス
    タに前記記憶装置の少なくとも1つのベクトルの
    ベクトル・エレメントをロードし、ストアする手
    段、少なくともその1つは前記ベクトル・エレメ
    ントで演算し、汎用レジスタを参照するベクトル
    命令であ命令を実行する少なくとも1つの中央処
    理装置を含むデータ処理装置において、 (a) 前記ベクトル命令の1以上の繰返し実行中、
    前記ベクトル命令によつて演算されるべき前記
    ベクトル・エレメントの全数を表わす数を第1
    のレジスタにロードし、 (b) 前記ベクトル命令の単一の繰返し実行中、処
    理されるべき前記ベクトルのエレメント数を示
    す数を第2のレジスタにロードし、 (c) 前記第1のレジスタの内容が前記ベクトル・
    レジスタのベクトル・エレメント記憶位置より
    大きくない場合、前記第1のレジスタの内容を
    前記第2のレジスタにロードし、かつ前記第1
    のレジスタの内容を示す条件コードを設定し、 (d) 前記第1のレジスタの内容から前記第2のレ
    ジスタの内容を減算し、 (e) 前記ベクトル命令で参照された前記ベクト
    ル・レジスタにロードされるべき前記記憶装置
    のベクトルのベクトル・エレメント群の第1の
    エレメントを識別するために自動的に更新され
    る前記汎用レジスタを参照する前記ベクトル信
    号命令を実行し、 (f) 前記ベクトル命令によつて演算されるべき前
    記ベクトル・レジスタの各ベクトル・エレメン
    トを連続的に識別するためのポインタ・レジス
    タを設定・更新し、 (g) 前記ベクトル命令が割込まれた場合、前記ベ
    クトル命令の割込み以前に行なわれた前記ベク
    トル・エレメントの演算結果を廃棄しないで、
    前記ベクトル・エレメントの後続エレメントが
    処理されないうちに演算を中止し、 (h) 前記ベクトル命令が割込まれた後、前記ベク
    トル命令を再発行し、前記ポインタ・レジスタ
    によつて識別された前記ベクトル・エレメント
    の残りのエレメントの演算を再開し、それによ
    つて前記割込みの正確な点で前記再発行された
    ベクトル命令を開始し、前記ベクトル命令が再
    度割込まれた場合、前記演算を中止するステツ
    プまで戻り、 (i) 前記ベクトル命令の前記単一の繰返し実行を
    終了後、前記第1のレジスタの内容を前記第2
    のレジスタにロードするステツプに戻り、前記
    ベクトル・エレメントの全てが前記第1のレジ
    スタの内容に基づいて前記ベクトル命令に処理
    されたことを指示する所定値に前記条件コード
    が設定されるまで前記(a)〜(h)のステツプを繰り
    返すようにしたことを特徴とするベクトル処理
    方法。
JP61110990A 1985-06-17 1986-05-16 ベクトル処理方法 Granted JPS61290570A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/745,040 US4745547A (en) 1985-06-17 1985-06-17 Vector processing
US745040 1991-08-14

Publications (2)

Publication Number Publication Date
JPS61290570A JPS61290570A (ja) 1986-12-20
JPH0517588B2 true JPH0517588B2 (ja) 1993-03-09

Family

ID=24995001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61110990A Granted JPS61290570A (ja) 1985-06-17 1986-05-16 ベクトル処理方法

Country Status (5)

Country Link
US (1) US4745547A (ja)
EP (1) EP0205809B1 (ja)
JP (1) JPS61290570A (ja)
CA (1) CA1242281A (ja)
DE (1) DE3685913T2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6314275A (ja) * 1986-07-04 1988-01-21 Nec Corp ベクトル演算プロセツサのスカラデ−タ演算方式
JPS63251835A (ja) * 1987-04-08 1988-10-19 Hitachi Ltd ベクトル処理装置
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
US5027272A (en) * 1988-01-28 1991-06-25 Weitek Corporation Method and apparatus for performing double precision vector operations on a coprocessor
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
EP0348030B1 (en) * 1988-06-23 1996-04-10 International Business Machines Corporation Computing sequence result availability
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
JPH02190930A (ja) * 1988-12-29 1990-07-26 Internatl Business Mach Corp <Ibm> ソフトウエア命令実行装置
US5974522A (en) * 1990-01-24 1999-10-26 Cornell Research Foundation, Inc. Machine for processing interrupted out-of-order instructions
JP2718254B2 (ja) * 1990-10-02 1998-02-25 日本電気株式会社 ベクトル処理装置
JPH0546407A (ja) * 1991-08-12 1993-02-26 Toshiba Corp スタツク管理システム
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
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
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
JPH11506230A (ja) * 1996-03-28 1999-06-02 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ シーケンシャルプロセッサにおいてデータ要素の組を処理する方法およびコンピュータシステム
US6681315B1 (en) * 1997-11-26 2004-01-20 International Business Machines Corporation Method and apparatus for bit vector array
US6289435B1 (en) * 1999-05-17 2001-09-11 Creative Technology Ltd. Re-use of special purposed registers as general purpose registers
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
US20040193837A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney CPU datapaths and local memory that executes either vector or superscalar instructions
US20050226337A1 (en) * 2004-03-31 2005-10-13 Mikhail Dorojevets 2D block processing architecture
US8239659B2 (en) * 2006-09-29 2012-08-07 Intel Corporation Vector completion mask handling
US7984273B2 (en) 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory
US10175990B2 (en) 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US20120254591A1 (en) * 2011-04-01 2012-10-04 Hughes Christopher J Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements
US9898283B2 (en) * 2011-12-22 2018-02-20 Intel Corporation Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset
US9454367B2 (en) * 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
EP3125108A1 (en) * 2015-07-31 2017-02-01 ARM Limited Vector processing using loops of dynamic vector length
EP3125109B1 (en) * 2015-07-31 2019-02-20 ARM Limited Vector length querying instruction
GB2548601B (en) * 2016-03-23 2019-02-13 Advanced Risc Mach Ltd Processing vector instructions
US10599428B2 (en) 2016-03-23 2020-03-24 Arm Limited Relaxed execution of overlapping mixed-scalar-vector instructions
JP6222859B2 (ja) * 2016-04-25 2017-11-01 インテル・コーポレーション ストライド機能及びマスク機能を有するベクトルロード及びベクトルストアを提供する命令及びロジック
GB2616601B (en) * 2022-03-11 2024-05-08 Advanced Risc Mach Ltd Sub-vector-supporting instruction for scalable vector instruction set architecture

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5148937A (en) * 1974-10-25 1976-04-27 Fujitsu Ltd Kiokusochi niokeru junjoseigyohoshiki
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS5852265B2 (ja) * 1977-01-12 1983-11-21 株式会社日立製作所 デ−タ処理装置
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
JPS6055864B2 (ja) * 1980-07-21 1985-12-06 株式会社日立製作所 ベクトルプロセツサ
JPS58189739A (ja) * 1982-04-30 1983-11-05 Hitachi Ltd デ−タ処理システム
JPS60103482A (ja) * 1983-10-24 1985-06-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトル処理能力を有するデ−タ処理装置

Also Published As

Publication number Publication date
DE3685913D1 (de) 1992-08-13
DE3685913T2 (de) 1993-02-25
CA1242281A (en) 1988-09-20
EP0205809B1 (en) 1992-07-08
JPS61290570A (ja) 1986-12-20
EP0205809A2 (en) 1986-12-30
US4745547A (en) 1988-05-17
EP0205809A3 (en) 1989-02-08

Similar Documents

Publication Publication Date Title
US4745547A (en) Vector processing
US4740893A (en) Method for reducing the time for switching between programs
US4755966A (en) Bidirectional branch prediction and optimization
US5113521A (en) Method and apparatus for handling faults of vector instructions causing memory management exceptions
EP0328721B1 (en) Dynamic multiple instruction stream multiple data multiple pipeline floatingpoint unit
JPH0766329B2 (ja) 情報処理装置
US4771380A (en) Virtual vector registers for vector processing system
JPH0668726B2 (ja) レジスタ管理システム
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
EP0297893A2 (en) Apparatus and method for recovering from page faults in vector data processing operations
JPH0250260A (ja) ベクタープロセッサの例外報告機構
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
JP3439033B2 (ja) 割り込み制御装置及びプロセッサ
JP3556246B2 (ja) パイプラインプロセッサにおける割込み処理のための装置
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
EP0447101B1 (en) Processor with data format-independent instructions
JP2778717B2 (ja) データ処理ユニット
JPH0754467B2 (ja) データ処理装置
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
KR930005767B1 (ko) 마이크로프로그램 제어를 기초로한 데이타 처리장치
JPH0250259A (ja) ベクタープロセッサによって非同期メモリ管理例外を取り扱う方法及び装置