JPH0215369A - ベクター処理システムの命令を実行する方法及び装置 - Google Patents

ベクター処理システムの命令を実行する方法及び装置

Info

Publication number
JPH0215369A
JPH0215369A JP1065833A JP6583389A JPH0215369A JP H0215369 A JPH0215369 A JP H0215369A JP 1065833 A JP1065833 A JP 1065833A JP 6583389 A JP6583389 A JP 6583389A JP H0215369 A JPH0215369 A JP H0215369A
Authority
JP
Japan
Prior art keywords
vector
instruction
operand
instructions
scalar
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1065833A
Other languages
English (en)
Inventor
Dileep P Bhandarkar
ディリープ ピー バンダーカー
Robert Supnik
ロバート スプニク
Tryggve Fossum
トリグヴ フォッサム
Dwight Manley
ドワイト マンリー
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH0215369A publication Critical patent/JPH0215369A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/3818—Decoding for concurrent execution
    • G06F9/382—Pipelined decoding, e.g. using predecoding
    • 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824—Operand accessing
    • 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/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

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)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、D、バンダーカー氏等の[ベクター処理シス
テムに使用する文脈スイッチング方法及び装置(Con
t、ext Switching Method an
d Appa−ratus for Use in a
 Vector Processing System
)」と題する米国特許出願;D、バンダーカー氏等の[
ベクタープロセッサのための例外的レボ−ティング機構
(Exception Reporting Mech
anism for aVector Process
or)J と題する米国特許出願;及びF、マッキーン
氏等の「ベクタープロセッサによる非同期メモリ管理の
例外を取り扱う方法及び装置(Method and 
Apparatus for tlandling A
syn−chronous Memory Manag
ement Exceptions by aVect
or Processor)Jと題する米国特許出願に
関連したものである。
本発明は、一般に、データ処理システムに係り、より詳
細には、ベクター命令を実行することのできるデータ処
理システムに係る。
従来の技術 ある高性能のデータ処理システムは、主即ちスカラープ
ロセッサに加えて、ベクター命令を迅速且つ効率的に処
理するための個別のベクタープロセッサを備えている。
ベクター命令は、ベクターとして表わされたデータに基
づいて記憶、演算又は論理操作を実行するようにプロセ
ッサに指示する。主即ち「スカラー」プロセッサは、[
スカラーJ命令と称する他の命令を処理する。スカラー
命令は、例えば、論理又はスカラーデータに基づいて記
憶、演算又は論理操作を実行するようにプロセッサに指
示する。
ベクター命令は、ベクター及びスカラー値をオペランド
として含んでいる。従って、ベクター命令は、命令の形
式に基づいて、即ち命令がスカラーオペランドを必要と
するがベクターオペランドを必要とするか、等々に基づ
いて、多数の種々の命令フォーマットをとることができ
る。これらのオペランドは、ベースデイスプレイスメン
ドアドレッシングのような種々の形式のアドレッシング
を受け、これは命令フォーマットに影響を及ぼす。
18Mシステム/370によって処理されるベクター命
令は、QSTフォーマットでパックされ、このフォーマ
ットでは、オペレーションコードと、その後に、スカラ
ーレジスタ番号と、第1の汎用レジスタ番号と、ベクタ
ーレジスタ番号と、第2の汎用レジスタ番号とが続く。
又、18Mシステム/370によって使用されているV
Vフォーマットでは、オペレーションコードと、その後
に、3つのベクターレジスタ番号とが続く。これらの命
令フォーマットでは、主、即ちスカラープロセッサがベ
クタープロセッサの構造を認識することが必要である。
例えば、スカラープロセッサは、ベクタープロセッサが
いかに多くのベクターレジスタを有しているかを知らね
ばならない。又、ベクター命令の独特なフォーマットは
、スカラープロセッサの設計に著しい複雑さを招く。
論理又は演算操作によって生じるベクターのあるエレメ
ントのみを処理することがしばしば望まれる。このよう
な選択的なベクター処理を一般的に「マスキングJと称
する。18Mシステム/370は、ベクターマスクモー
ド制御のもとて幾つかの種類のベクター命令を実行する
。ベクターマスクモード制御では、動作によって生じる
ベクターの幾つかのエレメントを「マスクアウト」する
ことができる。ベクターマスクモードがオフの場合には
、ベクター命令オペランドが通常のやり方で処理される
。然し乍ら、ベクターマスクモードがオンのときには、
ベクターマスクレジスタのNJに対応するエレメントに
ついてのみ結果が記録される。rQJに対応するエレメ
ントは不変のま)である。
18Mシステム/370では、マスクレジスタイネーブ
ルビットが「1」であることが必要であるから、「0」
がイネーブル値であるような負の論理を用いたプログラ
ムは受は入れることができない。このような場合には、
イネーブル値を「1」又は「0」に選択できることが好
ましい。
発明が解決しようとする課題 そこで、本発明の目的は、スカラープロセッサ及びベク
タープロセッサを有するデータ処理システムがベクター
及びスカラー命令の取り扱いを簡単に行なえるようにす
ることである。
本発明の別の目的は、スカラープロセッサがベクタープ
ロセッサの編成についての情報を認識する必要のないベ
クター構造フォーマットを提供することである。
本発明の第3の目的は、ベクター命令内のフィールドに
よりベクタープロセッサからの結果のマスキングを制御
することである。
本発明の第4の目的は、ベクター命令内のフィールドに
よりデータ処理システムにおけるベクター例外取り扱い
を制御することである。
本発明の更に別の目的及び効果は、その一部分が以下の
説明に述べられておりそしてその一部分が以下に説明に
おいて明らかであり、もしくは本発明を実施することに
よって学び取ることができよう。本発明の目的及び効果
は、特に特許請求の範囲に指摘された要素及びその組合
せによって実現及び達成されよう。
課題を解決するための手段 本発明の目的を達成するためにそして本発明の目的によ
れば、ここで実施して広く説明するように、本発明のデ
ータ処理システムは、ベクター命令の実行に用いられる
オペランげを記憶するためのメモリと、ベクター及びス
カラー命令のオペレーションコード部分とオペランド部
分とを分離するための命令パーサ手段とを具備している
。オペランドフェッチ手段は、メモリからのベクター及
びスカラー命令によって指定されたオペランドを検索す
る。ベクター命令を実行するベクター処理手段は、ベク
ターデータを記憶するためのベクター記憶手段と、オペ
ランドをデコードすると共にベクター命令に対するベク
ターポインタを選択するためのベクター抽出手段とを備
えている。命令パーサ手段に接続されたベクター命令送
給手段は、オペレーションコード部分及びオペランドを
ベクター処理手段へ送給する。
本明細書の一部分である添付図面は、本発明の実施例を
示すと共に、以下の説明と共に、本発明の詳細な説明す
るのに役立つものである。
実施例 以下、添付図面に一例として示された本発明の好ましい
実施例を詳細に説明する。これらの添付図面全体にわた
り、同様の部分は同じ参照番号で示されている。
A、シスームの−がな−1 本発明によれば、ベクター命令及びスカラー命令を実行
することのできるシステム10のようなデータ処理シス
テムが提供される。第1図は、スカラー処理ユニット(
SPU)15、メモリ処理ユニット2o、命令処理ユニ
ット(IPU)25及びベクター処理ユニット(VPU
)30のような種々の要素を備えたデータ処理システム
10を備えている。
本発明のデータ処理システムは、スカラー命令を実行す
るためのスカラー処理手段を備えている。本発明の好ま
しい実施例では、5PU15は、IPU25から全ての
命令を受は取り、スカラー命令を実行し、IPU25か
ら受は取ったベクター命令及びベクターデータをVPU
30へ供給する。
本発明によれば、データ処理システムは、スカラー処理
手段でスカラー命令を実行するのと同時にベクター命令
を実行するためのベクター処理手段も備えている。図示
された実施例では、vPU30は、5PU15でスカラ
ー命令を実行するのと同時にベクター命令を実行する。
又、VPU30は、以下で述べる多数のベクターレジス
タも含んでいる。
又、本発明のデータ処理システムは、ベクター命令をベ
クター処理手段へそしてスカラー命令をスカラー処理手
段へ送給するための命令デコード手段も備えている。第
1図に示すように、IPU25は、以下で述べるように
メモリ処理ユニット20から受は取った命令を予め処理
するための命令パーサ5oを備えている。このパーサ5
oは、スカラー命令及びデータを5PU15へ送ると共
に、ベクター命令及びスカラーデータを5PUI5を経
てvPU3oへ送る。5PU15は、ベクター命令及び
データをVPU30へ通すためのマクロコードを含む制
御論理ユニット40を備えている。もちろん、パーサ5
0は、ベクター命令をVPU30に直接送給するように
設計することもできる6VPU30は、TPU25も5
PU15も使用する必要なくメモリ処理ユニット20か
らベクターデータを受は取りそしてアドレス及びベクタ
ーデータをメモリ処理ユニット20へ送給する。
メモリ処理ユニット20は、I PU25.5PU15
及びVPU30から制御、アドレス及びデータ信号を受
は取り、これらの信号に応答して仲裁及び処理を行なう
。又、データ処理システム10は、別の機能を実行する
ための別の要素を含むことができるが、本発明を理解す
る上でこのような要素を理解する必要はない。
第2図は、VPU30の好ましい実施例を示す図である
。第2図に示されたように、VPU30は、データ処理
システム10の他の部分との主インターフェイスとして
制御論理回路60を備えていると共に、ベクターデータ
アクセス要求に応じるためのベクターレジスタファイル
35を備えている。これらの要求は、書き込み制御信号
及び書き込みアドレスより成る書き込み要求であるか、
又は読み取り制御信号及び読み取りアドレスより成る読
み取り要求である。ベクターレジスタファイル35は、
WT  PORTO−WT  PORT2と示されそし
て参照番号41−43で指示された複数の書き込みポー
トと、RD  PORTO−RD  PORT4と示さ
れそして参照番号51−55で指示された複数の読み取
りポートとを含んでいる。書き込みボートは、ベクター
制御論理回路60、ベクター乗算器70又はベクター加
算器80からREAD/WRITE制御信号45及び書
き込みデータを受は取る。
読み取りボートは、書き込みポートと同様に動作する。
例えば、RD  PORTOに対応する読み取りボート
53は、制御論理回路60から、READ/WRITE
制御信号ライン45を経て読み取りイネーブル信号、ベ
クターレジスタ選択信号及びベクターエレメントアドレ
ス信号を受は取る。読み取りボート53のための読み取
りデータはマスクユニット90へ送られる。
他の読み取りボートもそれらの制御及びアドレス信号を
制御論理回路60から受は取る。読み取りボート55及
び54からの出力、即ち、各々RD  PORTI及び
RD  PORT2は、ベクター乗算器70へ接続され
、そして読み取りボート52及び51の出力、各々、R
D  PORT3及びRD  PORT4は、ベクター
加算器80へ接続される。
ベクターレジスタファイル35は、VPU30によって
処理されたベクターを記憶する複数のベクターレジスタ
(好ましくは、16個)を備えている。各ベクターレジ
スタは、64個のエレメントを有しているのが好ましい
。然し乍ら、ファイル35のサイズは、本発明にとって
重要ではない。
処理されているベクターの入力の数、即ち、そのベクタ
ーの長さは、制御論理回路60のベクター長さレジスタ
(VLR)182に記憶される。
好ましい実施例では、ベクターが入力を64個まで有す
ることができ、従って、ベクター長さレジスタ182は
、0から64個の入力までのベクター長さを表わすため
に7ビツトの長さになっている。
ベクター加算器80は、ベクターレジスタファイル35
からRD  PORT3及びRD  PORT4を経て
送られる2つのベクターに対し又は1つのベクターと1
つのスカラーに対し整数及び浮動小数点の加算及び減算
演算を行なう。加算器80は、幾つかの論理及びシフト
演算も実行するのが好ましい。rRESULTJ と示
されたベクター加算器80の出力は、WT  PORT
Iへのデータ入力となる。又、ベクター加算器80は、
マスクユニット90に接続された例外論理回路82も備
えており、これは、加算器80が条件に応じて演算を実
行して演算の例外条件をマスクユニット90に通知でき
るようにする。
ベクター乗算器70は、ベクターレジスタファイル35
(7)RD  PORTl及びRD  PORT2から
受は取った2つのベクターに対し又は1つのベクターと
1つのスカラーに対し整数及び浮動小数点の乗算及び除
算演算を実行する。これら入力の積又は商は、rRES
ULTJとも示されたベクターであり、WT  POR
T2へ入力データとして送られる。マスクユニット90
へ接続された例外論理回路72は、乗算器70による乗
算又は除算から演算の例外条件が生じたときにそれをマ
スクユニット90に指示する。
マスクユニット90は、ベクターレジスタファイル35
からRD  PORTOを経てデータを受は取り、第2
図に示すVECTORDATAラインを経てVPU30
から5PU15へベクターデータを供給する。又、マス
クユニット90は、RD  PORTOからデータを読
み取り、それをメモリ処理ユニット20のアドレスに変
換することができる。更に、マスクユニット90は、例
外論理回路72及び82に接続されていて、それらの例
外条件をラッチする。
マスクユニット90には、64ビツトのベクターマスク
レジスタ92が含まれている。レジスタ92の各ビット
は、所与のベクターレジスタにおける64個のベクター
エレメントの各々に対応し、その対応するベクターエレ
メントがイネーブルされて処理されるべきであるかどう
かを指示する。マスクレジスタ92には、5PU15か
ら制御論理回路60を経てデータをロードすることがで
きる。ベクターマスクレジスタ92は、ベクターレジス
タ内のイネーブルされたエレメントからの結果のみが記
憶されるように確保するのが好ましい。
ベクター制御論理回路60は、命令パーサ65と、幾つ
かの制御機能を実施するためのベクターセーブ及びデコ
ード論理回路66とを備えているのが好ましい。制御論
理回路60のベクターセーブ及びデコード論理回路66
は、VPU30における全ての動作のスケジュールを監
視し、あるデータ転送動作を実行する。
第3図に一部分が詳細に示され、た命令パーサ65は、
5PU15から情報(即ち、VECTORDATAライ
ンを経ての命令)を受は取り、入ってくるデータ及びア
ドレスを適当な読み取り及び書き込みポートに送り、そ
してベクター乗算器70、ベクター加算器80又はマス
クユニット90に送る。命令パーサ65は、5PU15
から5CALARDATAラインを経て受は取ったスカ
ラーデータを好ましくはベクターレジスタファイル35
のスカラーレジスタ(図示せず)に記憶すべく通し、ベ
クター処理演算中に使用できるようにするのが好ましい
。
第3図は、VPU30の命令デコーダ65の内部論理を
示している。デコーダ65は、5PU15から部分的に
デコードされたベクター命令情報及びスカラーデータを
入力100として受は取る。これらの入力は命令バッフ
ァ115に記憶され、該バッファは、VPU30によっ
てベクター命令を実行できるまで命令及びデータを適切
な順序で保持する。
バッファ115の出力BUFO−BUF3に接続された
マルチプレクサ116は、デコードされるべき次の命令
に対する命令情報を適切に出力する。この情報は、バッ
ファ115が見掛は玉循環バッファとして働くようにさ
せる2ビツトの循環カウント信号である命令選択信号に
よって決定される。
スカラーデータは、バッファ115からBUFO−BU
F3出力を受は取るように接続されたマルチプレクサ1
02により、「命令 選択+l」信号に基づいて選択さ
れ、この信号は、「命令選択」信号よりも1つ大きな値
を有している。スカラーデータはベクターレジスタファ
イル35へ送られ、そこで、ベクター加算器80、ベク
ター乗算器7o又はマスクユニット90のいずれかに対
応するスカラーレジスタに記憶される。
デコードされるベクター命令がベクターオペランドしか
必要としない場合には、情報がバッファ116に通され
、以下に述べるように制御ワードデコーダエレメント1
03に基づいてオペランドが決定される。然し乍ら、命
令がスカラーデータを必要とする場合には、そのデータ
が命令に続いて5PU15から通され、マルチプレクサ
102により正しい時間に出力される。
命令がマルチプレクサ116によって選択された後に、
幾つかのフィールドがデコード論理エレメント103.
104.105及び106に分布される。部分的にデコ
ードされた命令における命令情報は、命令の形式を指示
するOPコード部分と、制御ワードの形式を指示する制
御ワード形式部分(以下で詳細に述べる)と、加算器8
0又は乗算器70のような主ベクターユニットのどれを
命令によって使用すべきであるかを指示するディスバッ
チ形式部分と、ベクター命令に対するオペランド及びフ
ラグを指定する制御ワード部分とを含んでいる。
制御ワードデコーダエレメント103は、制御ワード部
分からオペランドを取り出し、特定のベクター演算のた
めのデータのソースとなるベクターレジスタ、即ち5O
URCE  REGI及び5OURCE  REG2と
、ベクター演算の結果を記憶するベクターレジスタ、即
ちDEST  REGとの両方に対し、ベクターレジス
タファイル35のレジスタのアドレスを形成する。更に
、デコーダエレメント103は、Exceptions
 / M a s kフラグも取り出す。
5OURCE  REGI、5OURCE  REG2
及びDEST  REGの値は、各々、アドレスレジス
タ108.109及び110に入力され、これらのレジ
スタは、命令の形式に基づいて、ベクター加算器80、
ベクター乗算器70及びマスクユニット90のためのア
ドレスを発生する。
アドレス発生器108.109及び110は、実行され
ている特定のサブ演算を決定するカウンタであり、第2
図にベクター制御論理回路6oのカウンタ44として示
されており、参考としてここに取り上げる米国特許出願
筒093,499号に説明されている。
他の命令形式部分は、ディスバッチ形式論理回路104
、制御ワード形式論理回路105又はoPコードデコー
ド論理回路106へ送られて、更にデコードされる。こ
のようなデコードに基づいて、発行判断論理回路107
がその命令を発行できるかどうか判断する。例えば、ベ
クター加算器80がビジーである場合に、この加算器8
0を必要とするならば、加算器80が解放されるまで次
の命令を遅延しなければならない。発行判断回路107
が次の命令を実行できると判断したときには、アドレス
発生器108.109及び110がそれらの適切な値を
ロードするようにさせるためのl5sue  New信
号を発生する。
B、ベクター Jフォーマツ 第4図は、本発明により種々の個数のオペランド指定子
を有する種々のベクター命令ワードのフォーマットを示
している。第5図は、第4a図ないし第4d図に示され
たフォーマットを有するベクター命令ワードのベクター
制御ワード指定子140によって指示された種々のフォ
ーマットのベクター制御ワードを示している。
第4図の実施例に示されたように、ベクター命令は、命
令の形式を識別するオペレーションコードを保持するO
Pコードフィールド150と、オペランドポインタ部分
152とを備えている。
オペランドポインタ部分152は、任意の数のオペラン
ド指定子154−158と、ベクター制御ワード指定子
140とを含んでいる。好ましくは、オペランドポイン
タ部分152の全てのオペランド指定子は、スカラー命
令のオペランド指定子と同じフォーマットを有し、そし
てスカラー命令における指定子と同様に、ベクター命令
ワードのオペランド指定子はスカラーオペランドの位置
を識別する。ベクターオペランド指定子及びスカラーオ
ペランド指定子(第7図)は同じフォーマットであるか
ら、所与の命令がベクター命令であるかスカラー命令で
あるかを知る04Iにオペランドをフェッチすることが
できる。
第7図は、3つのオペランド指定子154′155′及
び156′ を有するスカラー命令ワードを示している
。第4a図ないし第4d図に示されたベクター制御ワー
ド指定子140と、第7図のベクターオペランド指定子
154’   155’及び156′は、同じアドレス
機構を用いており、従って、命令パーサ50はベクター
命令及びスカラー命令に対して別々にオペランドをフェ
ッチしなければならないことから解放される。同じアド
レス機構を用いることにより、VPtJ30の編成がI
PU25に対して透過的とすることができる。
オペランド指定子154−158がオペランドを指定す
る好ましいアドレス機構は、参考としてここに取り上げ
るストレッチャー氏等の米国特許筒4.241,399
号に説明されている。
オペランド指定子154−158とは異なり、ベクター
制御ワード指定子140は、16ビツトのベクター制御
ワード160を指示し、その3つの例が第5図に示され
ている。ベクター制御ワード160は、第5図に示すよ
うに、16個のビットを含んでいるが、8.32又は6
4ビツトといったいかなる長さであってもよい。第5a
図において、ベクター制御ワード160は4つの4ビッ
トフィールド162−165に分割される。好ましくは
、フィールド162はフラグフィールドであり、フィー
ルド163−165のうちのいずれか1つ、2つ又は3
つは、ベクター命令の実行中にアクセスされるべきベク
ターレジスタオペランドのポインタを含むか又はその指
定子であるベクターレジスタ指定子フィールドである。
各々のベクターレジスタ指定子は、独特のベクターレジ
スタを指定するのが好ましい。各ベクターレジスタ指定
子フィールドの4つのビットは、本発明の好ましい実施
例に含まれた16個のベクターレジスタの1つを独特に
指定することができる。
第5b図は、ベクター制御ワード160’ に対する別
のフォーマットを示している。フラグフィールド162
と、ベクター指定子フィールド163及び164に加え
て、制御ワード160″は、第5a図の4ビツトベクタ
ーレジスタ指定子フイールド165の代わりに4ビツト
オペランド情報フイールド168を含んでいる。オペラ
ンド情報フィールド168は、種々のベクター演算に必
要な情報を含んでいる。例えば、○Pコードフィールド
150のオペレーションコードが比較動作を実行すべき
であると指示する場合には、オペランド情報フィールド
168は、「より大きい」又は「より小さい」比較を行
なうべきであるかどうかを指示するデータを含む。又、
オペランド情報フィールド168は、OPコードフィー
ルド150の値に基づいて、ベクターレジスタ指定子1
63、ベクターレジスタ指定子164又はベクターレジ
スタ指定子165に代わって生じる。
第5c図は、ベクター制御ワード160”に対する更に
別のフォーマットを示している。この制御ワード160
”は、ベクター指定子フィールド163に代わって変換
フィールド166を含んでいる。変換フィールド166
は、実行されるべき変換機能を識別し、フィールド16
4によって指定されたベクターレジスタの値がフィール
ド165に指定されたベクターレジスタに記憶される前
に適切に変換されるようにする。このような変換は、例
えば、浮動小数点から整数又は長ワードへの変換等を含
むことができる。
第6図は、第5a図のベクター制御ワード160のフラ
グフィールド162の拡張を示している。1つのビット
は、マスク動作イネーブル(MOE)フラグ170を含
んでいる。第2のビットは、一致真/偽(MTF)フラ
グ172を含んでいる。このMTFフラグ172は、0
又はlのプール値がベクターマスクレジスタ92におけ
るイネーブルされたビットを表わすかどうか判断する。
第3ビツトは、ベクター処理の例外が生じたときに例外
の取り扱いをイネーブルする例外イネーブル(EXC)
フラグ174を含んでいる。第4のフラグビット176
は現在は未使用である。これらビットの使用は、そのと
きに処理されている命令に基づくものである。
上記で簡単に述べたように、MOEフラグ170によっ
てイネーブルされたマスク機能においては、ベクターマ
スクレジスタ92におけるイネーブルされたビットに対
応するベクター演算の結果のみが演算の後に記憶される
。第8図は、ベクターマスクレジスタ92、ベクター長
さレジスタ182、及びベクター制御ワード160のフ
ラグフィールドのMOE及びMTFフラグ各々170及
び172がベクター演算の結果の記憶にいかに影響する
かの例を示している。第8a図において、ベクター制御
ワードのMOEフラグ170は、マスキングがイネーブ
ルされたことを指示する「1」の値を含んでいる。MT
Fフラグ172は、ベクターマスクレジスタ92におけ
る「0」の値に対応する結果のみを記憶すべきであるこ
とを指示するrQJの値を含んでいる。
第8b図は、ベクター演算が行なわれる前の、即ちベク
ター演算による結果データが行き先レジスタ192に記
憶される前のベクターレジスタファイル35の行き先レ
ジスタ192の内容を示している。第8C図は、第8a
図のMTFフィールド172により「0」にセットされ
たビットがイネーブルされたビットであるようなベクタ
ーマスクレジスタ92を示している。
第8d図は、マスキングの前及びベクター結果190が
行き先レジスタ192に記憶される前のベクター演算の
結果190(−例として、結果190の値が任意に選択
されている)を示している。第8b図において、行き先
レジスタ192の最も左の2つのエレメントは、各々、
「9」及び「7」の値を含んでいる。ベクター演算の律
に、ベクター結果190の最も左の2つのエレメントは
、第8d図に示すように、各々、「4」及び「5」の値
を含んでいる。ベクター結果190の最も左のエレメン
トは、値「o」を有するベクターマスクレジスタ92の
ビットに対応する。ベクター結果190の最も左から2
番目のビットは、値「1」を有するベクターマスクレジ
スタ92のビットに対応する。
第8e図は、マスキングの後であって、第8d図のベク
ター結果190の幾つかのエレメントが行き先レジスタ
192に記憶されたときの該レジスタの内容を示してい
る。行き先レジスタ192の最も左のエレメントは値「
4」を含んでいる。
この値は、ベクターマスクレジスタ92の対応ビットが
値「O」を含むために行き先レジスタ192に記憶され
たものである。然し乍ら、行き先レジスタ192の最も
左から2番目のエレメントは、第8e図においてその元
の値「7」をまだ含んでいる。第8d図のベクター結果
190の結果値「5」は、第8e図の行き先レジスタ1
92には記憶されていない。というのは、ベクターマス
クレジスタ92の対応ビットが「1」を含んでいるから
である。同様に、ベクターマスクレジスタ92のイネー
ブルされたビットに対応するベクター結果190の他の
全ての値は行き先レジスタ192に記憶されるが、ディ
スエイプルされたベクターマスクレジスタビットに対応
するベクター結果190のエレメントは行き先レジスタ
192に記憶されない。
C0−全」ヱとL孜!υL皿 5PU15が命令をVPU3oか又は5PU15内の他
の回路かのいずれかへ実行のために送る前に、IPU2
5は命令に基づいて幾つかの予めの処理を実行する。前
記で簡単に述べたように、上記命令フォーマットの独特
の特徴は、丁PU25が同じ回路(その好ましい実施例
がバッファ187及びオペランド制御論理回路185を
含むものとして第9図に示されている)を用いて、ベク
ター命令及びスカラー・命令の両方を同様に予め処理で
きることである。
第10図は、IPU25において命令を予め処理するた
めの好ましい手順を示すフローチャートである。メモリ
処理ユニット20が命令をIPU25に送ると、この命
令がバッファ187に入力される(第10図のステップ
194)。この命令のオペレーションコード部分(即ち
、第4a図ないし第4d図のoPコードフィールド15
0)が取り出され、5PU15へ送られる。この命令の
オペランドポインタ部分(即ち、第4a図ないし第4d
図のオペランドポインタ部分152)は、オペランド制
御論理回路185への入力となり、該論理回路は、必要
に応じてオペレーションコード部分へアクセスしてその
機能を実行する。
オペランド制御論理回路185は、必要に応じてオペレ
ーションコードを用いてオペランド指定子部分をデコー
ドし、そして各オペランド指定子部分によって指示され
たオペランドを決定するために必要なメモリ処理ユニッ
ト20へのアクセスを実行する(ステップ198)。オ
ペランドを決定する手順の詳細は、上記したストレッカ
ー氏等の特許に開示されている。更に、IPU25は、
オペランド及びオペランドコード部分を5PUI5へ送
り、5PU15によってそれを実行するか又はベクター
命令及びオペランドをVPU30へ送信するようにする
(ステップ199)。
ベクター及びスカラーの処理命令が同じフォーマットを
有しているので、オペランド制御論理回路185は、ベ
クター及びスカラーの両方の命令に対して同じ機能を実
行する。実際に、FETプロセッサや浮動小数点プロセ
ッサのような個別に動作するプロセッサを有するいかな
る形式のデータ処理手段についても、上記した命令フォ
ーマットの使用により、IPU25のような単一命令プ
ロセッサで全ての命令を同様に予め処理することができ
る。
本発明によれば、ベクター処理手段は、該ベクター処理
手段の例外状態を表わすベクター状態情報を保持するた
めの状態手段を備えている。本発明の好ましい実施例で
は、第11図に示されたベクタープロセッサ状態レジス
タ(VPSR)200がVPU30G、m設けられテイ
テ、VPU30の実行状態を表わす情報を保持する。V
PSR200は、VPU30に関する32ビツトの状態
゛情報を保持するもので、制御ユニット60に位置され
るのが好ましいが、どこに配置されてもよい。
又、マスクユニット90には、第12図に示されたベク
ター演算例外レジスタ(VAER)300と、第13図
に示されたベクター状態アドレスレジスタ (VSAR
)400とが配置される。レジスタ200.300及び
400の内容は、以下で述べる他のデータと同様に、V
PU30の状態情報の一部分となる。
VPSR200のビット0は、VPU30がディスエイ
プルされたかどうかを指示するベクタープロセッサイネ
ーブル(VEN)ビット210である。VPU30は、
このビットに1を書き込むことによってイネーブルされ
そしてこのビットにOを書き込むことによってディスエ
イプルされる。VPU30がディスエイプルされたとき
には、ベクター命令をVPU30に送ろうとする5PU
15の試みにより「ベクタープロセッサディスエイブル
ドホールト」が生じる。
VPSR200のビット1は、ベクタープロセッサ状態
リセット(RS T)ビット220である。このビット
に1を書き込むと、VENビット210を除いてVPS
R200がクリアされる。
VPSR200のビット2は、ベクター状態記憶(ST
S)ビット230であり、これは、1にセットされた場
合に、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いて実行特定
ベクター状態情報をメモリ処理ユニット20に記憶し始
める。例外が同期的に取り扱われる場合には、STSビ
ット230が無視される。本発明の好ましい実施例では
、ベクター処理メモリアクセス命令を実行する2つの方
法の1つを選択することができる。この2つの方法は、
以下に詳細に述べるように、メモリ管理例外を取り扱う
ための2つの異なった機摺をもたらす。その一方は同期
式のメモリ管理実行でありそしてその他方は非同期のメ
モリ管理実行である。同期式の実行中に、VPU30及
び5PU15は、現在実行中のベクターメモリアクセス
が完了を保証されるまで、新たな命令を処理しない。
非同期の実行中には、VPU30は、SPUの命令の実
行又は他のベクターメモリ命令の■PU実行のいずれか
と同時にベクターメモリアクセス命令を実行することが
できる。非同期メモリ管理では、LOAD/ADD、/
MULT I PLY/5TOREのような命令シーケ
ンスを連鎖的に実行することができる。
VPSR200のビット3は、ベクター状態再ロード(
RLD)ビット240であり、これは、lにセットされ
ると、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いてメモリか
ら実行特定ベクター状態情報を再ロードし始める。ST
Sビット230と同様に、例外の同期的な取り扱いが実
施される場合には、RLDビット240が無視される。
VPSR200のビット5はメモリ欠陥(MF)ビット
250であり、これは、非同期メモリ管理例外によって
再実行されるべきメモリ参照の存在を指示するためにV
PU30によって1にセットされる。これについては、
以下で詳細に説明する。メモリ管理例外の同期的な取り
扱いが実行される場合には、このビットが0にセットさ
れる。
VPSR200のビット6は、保留メモリ欠陥(PMF
)ビット260である。VPU30は、非同期メモリ管
理例外が保留中であることを指示するためにPMFビッ
ト260を1にセットする。
メモリ管理例外の同期的な取り扱いが実行される場合に
は、このビットが常にOである。
VPSR200(7)ビット7は演算例外(AEX)ビ
ット270であり、これは通常Oであって、VPU30
が浮動小数点のアンダーフロー又は整数のオーバーフロ
ーといった幾つかの演算例外によってディスエイプルさ
れないことを指示する。
VPU30は、演算例外が生じたときには常にこのビッ
トをセットする。例外の特定の性質に関する情報はVA
ER300に配置される。
V P、S R200のビット24は、実行特定ハード
ウェアエラー(IMF)ビット280である。
IMPビット280は、VPU30がハードウェアのエ
ラーによってディスエイプルされたときに1にセットさ
れる。
VPSR200のビット31は、ベクタープロセッサビ
ジー(BSY)ビット290であり、これはVPU30
がベクター命令を実行するときにこのVPUにより1に
セットされる。このビットが0にクリアされた場合には
、V、PU30がアイドル状態となり、非同期メモリ管
理例外により命令の実行を保留する。
VAER300は、ベクター演算例外に関する情報を記
録するのに用いるレジスタであるのが好ましい。VAE
R300は、マスクユニット90に配置されており、例
外ユニット82及び72によって書き込まれる。5PU
15の制御論理ユニット40は、VAER300の内容
を読み取ることができるが、VAER300へ書き込む
ことはできない。VAER300は、好ましい実施例で
は、ベクター行き先レジスタマスク310と、例外条件
概要320の2つのフィールドを含んでいる。VAER
300のベクター行き先レジスタマスクフィールド31
0は、どのベクターレジスタが演算例外によりデホール
ト値を受は取ったかを記録する。16個のベクターレジ
スタのうちのn番目のレジスタが演算例外の結果として
デホールト値を受は取る場合には、マスクフィールド3
1oのビットn (VAER300(7)ビット(16
+n))に1が書き込まれる。
例外条件概要フィールド320は、発生した例外の形式
を指示する。これらの条件は、浮動小数点のアンダーフ
ロー、浮動小数点のゼロによる除算、浮動小数点の指定
されたオペランド、浮動小数点のオーバーフロー又は整
数オーバーフローの例外条件を含むのが好ましい。
前記したように、I PU25の命令パーサ50は、ベ
クター及びスカラー命令を5PU15に通す。5PU1
5は、次いで、ベクター命令を識別し、それらをVPU
30に通す。もちろん、ベクター命令は、I PU25
からVPU30に直接通すことができる。次いで、VP
U30は、ベクター命令をその通常の演算に基づいて実
行する。
然し乍ら、ベクター命令の実行中には、2つの形式のベ
クタープロセッサ例外、即ち、ベクターメモリ管理例外
及びベクター演算例外が生じる。
20.ん玉辺Jぜ旧牡外 2つの形式のベクタープロセッサ例外は若干異なったや
り方で処理される。ベクター演算例外とは異なり、ベク
ターメモリ管理例外はVPU30をディスエイプルしな
い。メモリアクセス命令中に生じるメモリ管理例外は、
その命令のそれ以上の処理を防止する。演算例外の場合
にはこのようにならない。メモリ管理例外は、データに
基づく他の全ての命令の実行を停止する。
本発明のベクター処理手段は、メモリ管理例外の存在を
指示するための例外検出手段を備えている。VPU30
の好ましい実施例では、制御論理回路66は、メモリ管
理例外が生じたときにメモリ処理ユニット20によって
通知される。この手順の詳細は、以下で説明する。
ベクターメモリ管理例外は、アクセス制御違反、変換非
有効例外、修正例外及びベクター整列例外を含む。メモ
リ処理ユニット20は、メモリ管理例外の形式を識別す
る信号を発生するのが好ましいが、このような信号は、
5PU15又はVPU30においても発生できる。これ
らの例外識別信号は、VPU30の状態情報の一部分で
ある。
アクセス制御違反は、メモリの保護された部分又は現在
ベクタープロセスに割り当てられたメモリスペースの外
側のメモリの部分へVPU30がアクセスしようと試み
ることを含む。現在ベクタープロセスは、その実行によ
ってメモリ管理例外が生じるようなベクター命令を含む
プロセスを指す。変換非有効例外は、ページ欠陥が存在
するとき又はメモリ処理ユニット20に現在ないメモリ
の部分をアクセスしようとする他の試みが存在するとき
に発生する。変更例外は、メモリ内のページへのアクセ
スが現在ベクタープロセスによって初めて行なわれるペ
ージの変更を含むときに生じる。ベクター整列例外は、
長ワード(4バイトを占有する)又はクオドワード(8
バイトを占有する)がメモリ処理ユニット20の各々長
ワード境界又はクオドワード境界に入らないときに生じ
る。又、ベクター整列例外は、同様のソフトウェアが両
方の状態を取り扱うのでアクセス制御違反と考えられる
。
2種類以上のメモリ管理例外が単一ベクター命令の処理
中に発生した場合には、ある主のハイアラーキ−構成で
例外の取り扱いを行なわねばならない。最も優先順位の
高いものは、最も重大なものであるから、これがアクセ
ス制御例外に達する(従って、同様に処理されるベクタ
ー整列例外に達する)。このような例外により、データ
処理システム10は現在ベクタープロセスを実行しない
ようにする。変換非有効例外は、次に高い優先順位を有
している。
又、本発明のベクター処理手段は、メモリ管理例外が生
じたときにベクター処理手段によって欠陥ベクター処理
命令を実行するのを停止しそしてスカラー処理手段がス
カラー命令の実行を継続できるようにするためのベクタ
ー停止手段を備えている。メモリ管理例外が生じたとき
には、ベクター状態及びデコード論理回路66は、VP
U30がベクター命令の実行を中断するようにさせる。
これは、VPU30への有効データの送信を停止するこ
とによって行なわれる。
本発明によれば、データ処理システムは、メモリ管理例
外の発生の指示と、ベクター処理手段の状態についての
充分な情報とを記録して、メモリ管理例外が生じたベク
ター処理命令のサブ動作時の実行をベクター処理手段が
後で再開できるようにするための例外記録手段を備えて
いる。本発明の好ましい実施例では、同期メモリ管理及
び非同期のメモリ管理の両方の間に、メモリ管理例外の
発生により、5PU15、より詳細には、5PU15の
制御論理ユニット40がメモリ管理スタックフレーム(
メモリ処理ユニット2oの所定の位置に記憶される)を
形成するようにされる。メモリ管理例外を取り扱うため
のソフトウェアは、メモリ管理スタックフレームを含む
所定の位置を確認するように設計されており、従って、
特定の例外に適した良く知られたルーチンを含むことの
できる適当な処理を迅速に行なうことができる。
第14図は、メモリ管理スタックフレーム50oの一例
を示している。スタックフレーム500は、メモリ管理
欠陥コード510、アドレスワード520、プログラム
カウンタPC530及びプログラム状態ワードPSL5
40を含んでいる。
欠陥コード510は、長さビット511、ページテーブ
ル参照ビット512、変更ビット513、ベクター整列
ビ・ソト514、ベクター丁/○ビット515及びベク
ター非同期メモリ管理例外ビット516を含むのが好ま
しい。長さビット511は、VPU30を用いてベクタ
ープロセスに割り当てられたメモリスペースの外側のメ
モリ処理ユニット20の位置へアクセスすることによっ
てアクセス制御違反が生じたときにセットされる。
ページテーブル参照ビット512は、ページテーブルを
アクセスする間にメモリ管理例外が生じた場合にセット
される。変更ビット513は、例外を生じた命令がメモ
リ処理ユニット20への書き込みである場合にセットさ
れる。ベクター整列ビット(VAL)514は、例外が
ベクターエレメントの不整列によるものであるときにセ
ットされる。ベクターl10(VIO)ビット515は
、I10スペース内のアドレスを参照するベクター命令
中にアクセス制御違反が発生したときにセットされる。
ベクター非同期メモリ管理(VAS)ビット516は、
非同期メモリ管理が実行されている間にベクタープロセ
ッサメモリ管理例外が生じたときにセットされる。
同期メモリ管理中には、例外が直ちに取り扱われ、次い
で、欠陥命令の実行が再開される。命令は、ベクターメ
モリアクセス命令を開始点へ戻すことにより再開される
。この点において、メモリ管理欠陥が開始され、PC5
30の値が欠陥ベクターメモリアクセス命令を識別する
。VSAR400は、同期メモリ管理例外中は無視され
る。
というのは、メモリ管理例外はそれらが生じたときに取
り扱われるのであって、VPU30の状態情報を記憶す
る必要がないからである。
スタックフレーム500のアドレス520は、例外が生
じたメモリ処理ユニット20のページの仮想アドレスを
表わす。PC530は、例外を引き起こした命令のプロ
グラムカウンタである。例外を引き起こす命令は、非同
期メモリ管理の場合にベクターメモリアクセスを実行す
る命令とは異なる。P S L 540 ハ、5PU1
5(7)プログラム状態ワードである。
上記したように、非同期メモリ管理中には、5PU15
がVPU30と同時にスカラー命令を実行できるだけで
はなく、VPU30がベクターメモリアクセス命令と共
にベクター演算命令を実行することができる。非同期メ
モリ管理を用いた実行中にメモリ管理例外が生じた場合
には、VPU30がその状態を凍結するためのステップ
をとり、これにより、状態を記憶して後で呼び出し、例
外が生じたところで処理を再開できるようにする。
特に、VPU30がベクターメモリアクセス命令を実行
するときには、デコード及び制御論理回路66がその命
令を実行するに必要な多数のサブ動作を実際に実行する
。例えば、ベクターロード動作については、デコード及
び制御論理回路66が、0番目のエレメントからn番目
のエレメントまでの(n=VLR82の内容−1)各ベ
クターエレメントごとに、次のようなサブ動作を実行す
る。
1、マスク機能の実行; 2、ベクター整列のチエツク;そして 3、ベクターメモリアクセス命令のオペランドから発生
されたアドレスで始めて、対応するベクターエレメント
にメモリ処理ユニット20の次の位置の内容をロードす
る。
ベクター命令の実行に伴う各ベクターレジスタに関連し
ているのは、ベクターレジスタ制御論理回路60の多数
のカウンタ44の1つであり、これは、サブ動作が実行
されるのつれてnからOまでカウントダウンし、そして
関連するベクターレジスタの関連するベクターエレメン
トに対するアドレスを与える。メモリ管理例外によって
ベクター命令が停止された場合には、欠陥命令に関連し
たカウンタ44の1つの値が、その例外が生じたサブ動
作を指示する。この値は、終了されない他の命令に関連
したカウンタと同様に、VPU30の状態情報の一部分
として記憶されるのが好ましい。記憶された状態情報が
VPU30に再ロードされ、そしてメモリ管理欠陥が呼
び出されたときには、カウンタ44にサブ動作の値が再
ロードされ、欠陥命令及び全ての未終了の命令を、例外
が生じたところから実行し始めることができる。
二のハードウェアは、参考としてここに取り上げる米国
特許出願筒093.499号に開示されている。
ベクターメモリアクセス命令の処理中に、メモリ処理ユ
ニット20がベクターデコード及び制御論理回路66に
メモリ管理例外を知らせた場合には、該論理回路66が
VPSR200のPMFビット260及びMFビット2
50をセットする。
然し乍ら、VPU30は、5PU15に例外条件を通知
せず、従って、SPU、15がスカラー命令の処理を続
行できるようにする。
更に、論理回路66は、例外条件によって有効性が影響
されるようなソースデータをベクター命令が使用しない
限り、VPU30が例外発生時にスタートしたベクター
命令の実行を終了できるようにする。これは、ソース及
び行き先レジスタを検査することによって行なわれる。
第3図について上記したように、アドレス発生器108
.109.110は、ベクター命令に対するデータを含
むベクターレジスタファイル35のベクターレジスタを
識別する。これらの同じアドレス発生器は、ベクター命
令の結果を受は取るベクターレジスタも識別する。欠陥
命令に対するDEST  REG値が別の命令に対す6
SOURCE  REG値と同じであると論理回路66
が決定した場合には、上記別の命令も停止される。
メモリ管理例外は、5PU15がベクター命令をVPU
30に送信しようと試みる次のときまで、それ以上処理
されない。そのときには、5PU15はベクター命令を
VPU30に送信する手順の実行を開始し、その好まし
い方法が第15図のフローチャートに示されている。
ベクター命令をVPU30に送信する前に、5PU15
は先ずVENビット210をチエツクし、VPU30が
ディスエイプルされたかどうか調べる(ステップ700
)。従って、5PU15は、本発明による命令阻止手段
として働いて、VPU30がディスエイプルされたこと
をVENビット210が指示するときにベクター命令が
vPU30へ送られるのを防止する。このような場合に
、5PU15は、メモリ管理例外以外のものが生じた(
少なくとも好ましい実施例において)と結論し、[ベク
タープロセッサデイスエイブルド欠陥」のためのトラッ
プを与える(ステップ710)。この欠陥を取り扱うル
ーチンは、演算取り扱い例外について以下で説明する。
VPU30がディスエイプルされたときを感知しそして
トラップを設定するための手段は、5PU15の制御論
理ユニット40のマイクロコードの部分又は種々の回路
に含まれている。
VPU30がディスエイプルされない場合には、5PU
15がPMFビット260をチエツクする(ステップ7
20)。PMFビット260がセットされると、報告さ
れないメモリ管理例外がある。5PU15はそのビット
をリセットしくステップ730)そしてメモリ管理欠陥
ハンドラに入り、ベクタープロセッサメモリ管理例外を
処理する(ステップ735)。この欠陥ハンドラは、当
業者によく知られた標巾的なメモリ管理欠陥ハンドラで
ある。
PMF260がセットされなかった場合には(ステップ
720)、5PU15が次いでMFビット250をチエ
ツクする(ステップ740)。
MFビット250がセットされて、メモリ例外の原因が
修正されたが、その例外を生じたサブ動作がまだ実行さ
れていないことを指示する場合には、5PU15がMF
ビットをクリアしくステップ743)モしてVPU30
を再スタートさせて、欠陥メモリ参照を再び試みる(ス
テップ746)。
VPU30が再スタートされた後、又はMFビット25
0がセットされなかった場合には、VPU30の命令待
ち行列(図示せず)がチエツクされてそれがいっばいで
あるかどうか判断される(ステップ750)。もしそう
ならば、再び第15図の手順に入る。VPU30の待ち
行列がいっばいでない場合には、5PU15が次の命令
を発生しくステップ760)、これは、メモリ管理例外
を最初に引き起こした保留中のベクター命令である。
3、−塊」」1作 ベクターメモリ管理例外との状態とは異なり、ベクター
演算例外に遭遇するベクター命令は常に完了するように
実行される。演算例外が生じた場合には、デホールト又
はトランケイテッド結果がそれに対応するベクターレジ
スタエレメントに書き込まれる。演算例外条件の形式及
び行き先レジスタ番号は、VAER300の例外条件概
要フィールド320に記録される。VPU30のマスク
ユニット90は、ベクター命令に対するEXCビット1
74を読み取り、例外がイネーブルされるかどうか判断
する。上記したように、このビットは、浮動アンダー・
フロー及び整数オーバーフローの例外をイネーブルする
。
EXCビット174が浮動アンダーフロー又は整数オー
バーフローを生じさせる命令に対してセットされた場合
には、VPU30は、浮動小数点アンダーフローに対す
るデホールト指定オペランド値又は整数オーバーフロー
に対する下位ビットを適当な行き先レジスタエレメント
に送り、VPSR200(7)VENビット21Oをク
リアL、、そしてVAER300に適当な演算例外情報
を記憶する。VPU30は処理を続ける。VPU30は
、浮動小数点のオーバーフロー、浮動小数点のゼロによ
る除算、浮動小数点指定オペランド演算の例外(これら
はディス、エイプルできない)について同じ手順をたど
る。
VAER300のベクター行き先レジスタマスク310
の16個のベクターレジスタのどれが演算例外の発生に
よるデホールト値を受けたかを指示する。形式演算例外
は、浮動小数点アンダーフロー、浮動小数点のゼロによ
る除算、浮動小数点指定オペランド、浮動小数点のオー
バーフロー及び整数オーバーフローを含む。ベクター演
算例外が生じたときには、VPU30自体がディスエイ
プルする。VPU30は、例外を生じるベクター命令及
びVPU30に既にあった他の命令の実行を完了するが
、再びイネーブルされるまで5PU15からの次のベク
ター命令の受は入れを拒絶する。VPU30は、VPS
R200(7)VENビット210にゼロを書き込むこ
とによりディスエイブルされる。
VPU30がディスエイプルされたときに5PU15が
後でVPU30にベクター命令を送ろうとした場合には
、「ベクタープロセッサデイスエイブルド欠陥」が生じ
る。
4、  スイッチング び 4−コードメモリ管理例外
及び演算例外は、VPU30及び5PU15が既に実行
しているプロセス又はプログラムからの命令を実行する
場合には取り扱いが最も困難である。この状態は、文脈
スイッチングが生じたときに発生する。一般に、文脈ス
イッチングの間には多量のシステム「オーバーヘッド」
が費やされ、僅かなセーブであっても、データ処理シス
テムが非常に効率的なものとなる。
第16図は、「最終プロセス」と称する1つのプロセス
の実行が停止されそして「現在プロセス」と称する新た
なプロセスの実行が開始されるときの文脈スイッチング
中に実行される好ましいアルゴリズムのフローチャート
である。文脈スイッチが生じると(ステップ800)、
5PUI 5は、VPIJ30がビジーでなくなるまで
待機する(ステップ801)。ビジーでない状態は、ゼ
ロの値を有す6VPSR200のBSYピッh 290
によって1旨示される。VPU30がビジーでないと、
5PU15は最終プロセスのスカラー状<1情報のみを
セーブする(ステップ802)。この状態情報は、最終
プロセスに対応するメモリ処理ユニット20内の位置へ
これを記憶することによってセーブされる。5PU15
は、それ自身のプロセス状態レジスタ(第14図のP 
S L 540を参照)を含んでおり、その内容は、最
終の5PU15の状態をセーブする段階の一部分として
セーブされる。この段階中に、5PU15の全てのレジ
スタの内容もセーブされる。
VPU30の状態情報はこのときには記tQされない。
これは、VPU30の状態情報が記憶されたときに生じ
たオーバーヘッドを遅延しそして除去することもある。
VPU30の状態情報を記憶する場合には、VPSR2
00,VAER300、VSAR400及び他のシステ
ムレジスタの記憶を必要とするだけでなく、より重要な
ことには、64個のエレメントを各々有する16個のベ
クターレジスタの記憶を必要とし、これはシステムリソ
ースの相当の部分を占有する。
次イテ、5PU15は、VPSR200のVENビット
210をクリアすることによりVPU30をディスエイ
プルする(ステップ804)。
VENビット210をクリアすると、「ベクタープロセ
ッサディスエイブルド欠陥」に影響を及ぼすことなく現
在プロセスがベクター命令を実行することが防止される
。実際には、以下で詳細に述べるように、最終プロセス
に対するVPU30の状態は、現在プロセスがベクター
命令を実行しない場合には現在プロセスの実行中に記憶
される必要がない。
次いで、現在プロセスのスカラー状態情報は、現在プロ
セスに対応するメモリ処理ユニット20の位置からロー
ドされ(ステップ806)、次いで、現在プロセスが実
行を開始する(ステップ808)。現在プロセスのベク
ター状態は文脈スイッチング中にはロードされないので
、VP、U30は、ベクター命令を実行するための最終
プロセスの状態情報を含んでいる。然し乍ら、VPU3
0がディスエイプルされているので、この状態が現在プ
ロセスにアクセスすることはない。
第17図は、プロセスが新たな命令を実行し始めるたび
に実行されるべき好ましいアルゴリズムのフローチャー
トである。第17図に示されたステップは、5PU15
において実行されるのが好ましい。
命令が特権命令であり(ステップ900)そして5PU
15が特権モードにない(ステップ902)場合には、
不法命令トラップが生じ(ステップ904)そして第1
7図に示されたアルゴリズムが完了する。不法命令トラ
ップを取り扱う手順は、特権命令を含むほとんどの各デ
ータ処理システムに共通であり、当業者によく知られて
いる。
命令が特権命令であり(ステップ900)モして5PU
15が特権モードにある(ステップ902)場合には、
その命令が実行される(ステップ905)。
命令が特権命令でなく (ステップ90o)そしてベク
ター命令でない(ステップ908)場合には、5PU1
5がその命令を実行する(ステップ910)。然し乍ら
、命令がベクター命令である(ステップ908)場合に
は、制御論理ユニット40のマイクロコードがVPSI
ご200のVENビット210をテストする(ステップ
912)。
VEN210がセットサれて、VPtJ30がイネーブ
ルされたことを指示する場合には、VPU30がその命
令を実行する(ステップ914)。
VENビット210がセットされない(ステップ912
)場合は、「ベクタープロセツザデイスエイブルド欠陥
」が生じる(ステップ916)。
上記したように、現在プロセスがまだベクター命令を実
行しないとき或いは演算例外条件が生じた場合には、V
ENビット210はセットされない。
VENビット210がセットされないときに現在プロセ
スがベクター命令を実行しようとする場合には、システ
ムは、現在プロセスのベクター状態がメモリヘスイッチ
されることと、現在プロセスのベクター命令が実行され
る前に例外条件が処理されることとを確保しなければな
らない。
第18図は、第17図のステップ916に示されたよう
な[ベクタープロセッサデイスエイブルド欠陥」を処理
するための好ましいアルゴリズムのフローチャートであ
る。このアルゴリズムの目的は3つある。即ち、(1)
ベクター例外条件を処理すること、(2)ベクター命令
を最後に実行したプロセスからの全てのVPU30状態
情報を記憶すること、及び(3)現在プロセスに対しV
PU30の状態情報を検索することである。」1記(2
)及び(3)は、現在プロセスがV P U 30を最
後に用いたプロセスと同じである場合には必要でない。
前記の(1)は、例外条件が保留中であるときのみ必要
である。然し乍ら、上記項目(1)、(2)及び(3)
は、現在実行しているプロセスがベクター命令を実行す
る前に全て完了されねばならない。
[ベクタープロセッサデイスエイブルド欠陥」動作の第
1ステツプは、現在プロセス及び最終プロセスの識別子
に対して指定されたメモリ位置に記憶されたプロセス識
別番号を比較することにより、現在プロセスがベクター
命令を実行するためにVPU30を使用した最後のプロ
セスでもあるかどうかを判断することである(ステップ
1000)。或いは又、この動作は、5PU15に設け
られた特殊なハードウェアレジスタによって行なうこと
もできる。ステップ1000の判断が「イエス」である
場合には、VPU30に対する状態情報を更新すること
は不要である。ステップ1000の判断が「イエス」で
ある場合には、保留中の演算又はメモリ管理例外条件が
あるかどうかの判断が行なわれる(ステップ1002)
。上記したように、公知のシステムとは異なり、データ
処理システム10は、例外が生じたときにそれを処理す
るのではなく、VPU30が次に使用されるときにそれ
を処理する。これは、VPU30がそのベクター状態情
報をセーブしそして現在プロセスに対するベクター状態
情報を検索するのと同時である。例外条件の存在は、V
PSR200のPMFビット260(メモリ管理例外)
及びAEXビット270(演算例外)を5PU15が検
査することによって判断される。
保留中の演算例外がある場合には、AEXビット270
がクリアされ(ステップ1003)そしてデータ処理分
野の当業者に知られた手順に従って例外に適したやり方
で例外が処理される(ステップ1004)。保留中の演
算例外状態がない場合には(ステップ1002)、最後
の「ベクタープロセッサディスエイブルド欠陥」以来に
文脈スイッチが生じたかどうか判断することが必要であ
る。現在プロセスがVPU30を最後に用いたプロセス
と同じであり(ステップ1000)、それ故、VPU3
0のベクター状態情報をセーブ又は復帰する必要がない
場合には、通常のスカラー処理によって作用されるVP
U30のレジスタを更新することが必要である。例えば
、VPU30が5PU15に配置されたメモリ管理レジ
スタのコピーを含む場合には、VPU30のレジスタが
それらの内容を5PU15のレジスタの内容と合致させ
るために各文脈スイッチの後に更新されねばならない。
次イテ、VPU30は、VENビット210をセットす
ることによりイネーブルされる(ステップ1010)。
次いで、第17図の命令デコードアルゴリズムのステッ
プBに制御が復帰しくステップ1012)、現在プロセ
スが新たな命令の実行を開始する。
現在プロセスがVPU30を最後に使用したプロセスと
同じでない場合には(ステップ100o)、多数のステ
ップが生じる。5PtJ15は、先ず、VPU30がベ
クター命令を実行しなくなるまで待機する(ステップ1
014)。この非ビジー状態は、VPSR200のBS
Yビット290のO値によって指示される。第2に、保
留中の演算例外が存在するかどうか判断される(ステッ
プ] 016)、VPSR200(7)AEXビット2
70がセットされて、保留演算例外の存在を指示する場
合には、VAER300に含まれた演算例外状態がセー
ブされ、VPU30を用いる最後のプロセスについての
演算例外の存在がその後の処理のために注目される(ス
テップl Ol 8)。このような例外の表示は、VP
U30を用いる最後のプロセスに関連したソフトウェア
フラグによって達成される。
次のステップは、保留中の非同期メモリ管理例外が存在
するかどうか判断することである(ステップ+020)
。好ましくは、このような例外の存在がVPSR20(
1)MFビット250(7)]の値によって指示された
場合には、VPU30を使用する最後のプロセスに関連
したソフトウェアフラグがセットされ、そのプロセスに
対して実行特定ベクター情報がセーブされる(ステップ
1022)。
次イテ、VPU30は、VPSR200(7)VENビ
ット210をセットすることによってイネーブルされそ
してVPU30は、VPSR300のR3Tビット20
0をセットすることによってリセットされる(ステップ
1024)。現在プロセスは、VPU30を最後に用い
たプロセスと同じではないから(ステップ1000) 
、VPU30の状態情報を更新しなければならない。こ
れは2つのステップで行なわれる。先ず、第1に、VP
U30の状態情報は、VPU30を最後に使用したプロ
セスに対応するメモリ処理ユニット20の領域に記憶さ
れる(ステップ1026)。仮想アドレス及びメモリ保
護機能を実行するために5PU15にメモリ管理レジス
タが設けられていると共にVPU30に対応するメモリ
管理レジスタが設けられている。この場合、VPU30
のメモリ管理レジスタは、5PU15の対応するメモリ
管理レジスタに合致させるために更新する必要がある。
次いで、現在プロセスに対するVPU30の状態情報が
現在プロセスに対応するメモリ処理ユニット20の領域
から検索され、VPU30のベクターレジスタに記憶さ
れる(ステップ1027)と共に、現在プロセスの識別
番号がメモリ位置に記憶されるか又は最後のベクタープ
ロセスを識別するために指定された特殊なハードウェア
レジスタに記憶される。
次いで、現在プロセスに関連したソフトウェアフラグを
チエツクし、現在プロセスに対して保留中の非同期メモ
リ管理例外があるかどうか判断される(ステップ102
8)。このような保留中の例外が存在する場合には、現
在プロセスに対するソフトウェアフラグがクリアされ、
非同期メモリ管理例外時のベクター状態が復帰される(
ステップ1030)。これは、VPU30のレジスタに
ついて前記したように、セーブされたベクター状態情報
のアドレスをVSAR400に書き込みそしてVPSR
300のRLDビット240及びVENビット210を
セットすることにより達成される。
次いで、現在プロセスに関連したソフトウェアフラグを
チエツクし、現在プロセスに対して保留中の演算例外が
あるかどうか判断される(ステップ1032)。このよ
うな保留中の例外が存在する場合には、VPSR300
(7)ビット■EN210がクリアされ、VPU30を
ディスエイブルし、ステップ1004と同様に、データ
処理の分野の当業者に知られたやり方で、演算例外が処
理される(ステップ1034)。
第18図の[ベクタープロセッサディスエイブルド欠陥
」取り扱いアルゴリズムが完了したときには(ステップ
1036)、第17図の命令デコードアルゴリズムのス
テップBに制御が復帰し、現在プロセスが新たな命令の
実行を開始する。
従って、ベクタープロセッサにとって経費のか)る動作
である文脈スイッチングが著しく簡単化される。このよ
うなスイッチングに伴うオーバーヘッドは、もはや必要
でなくなるまで遅延される。
本発明のデータ処理システム及び方法においてそしてこ
のシステムの構造において本発明の精神又は範囲から逸
脱せずに種々の変更や修正がなされ得ることが当業者に
明らかであろう。当業者であれば本発明の実施例から別
の実施例が明らかであろう。上記の説明は、本発明を例
示するものであって、本発明の真の精神及び範囲は特許
請求の範囲に規定されるものとする。
【図面の簡単な説明】
第1図は、本発明によるデータ処理システムの好ましい
実施例を示す図、 第2図は、第1図に示されたベクター処理ユニットの好
ましい実施例の幾つかの部分を示すブロック図、 第3図は、第2図に示すベクター制御論理回路の好まし
い実施例の幾つかの部分を示すブロック図、 第4図は、第1図に示すデータ処理システムに用いるこ
とのできるベクター命令ワードの種々のフォーマットを
示す図、 第5図は、第4図に示されたベクター命令ワードに関連
したベクター制御ワードを示す図、第6図は、第4図に
示されたベクター命令ワードのFLAGフィールドを示
す図、 第7図は、本発明によるデータ処理システムに用いるこ
とのできるスカラー命令ワードの1つのフォーマットを
示す図、 第8図は、ベクター命令を処理する間の種々のレジスタ
及びベクター制御ワードフィールドの内容を示す図、 第9図は、命令デコーダの好ましい実施例を示す図、 第10図は、ベクター命令をデコードするときに実行さ
れる動作を示すフローチャート、第11図は、第1図及
び第2図に示されたベクター処理ユニットのベクタープ
ロセッサ状態レジスタを示す図、 第12図は、第1図及び第2図に示すベクター処理ユニ
ットのベクター演算例外レジスタを示す図、 第13図は、第1図及び第2図に示すベクター処理ユニ
ットのベクター状態アドレスレジスタを示す図、 第14図は、第1図及び第2図に示すベクター処理ユニ
ットによって発生されたメモリ管理欠陥スタックフレー
ムを示す図、 第15図は、第1図に示すデータ処理システムのベクタ
ー処理ユニットがメモリ管理例外を受けたときにこのシ
ステムによって行なわれる好ましい手順を示すフローチ
ャート、 第16図は、文脈スイッチング中に第1図のデータ処理
システムによって行なわれる好ましいて順を示すフロー
チャート、 第17図は、第9図の命令デコーダにより命令デコード
のために実行される好ましいて順を示すフローチャート
、そして 第18図は、第17図に示された手順において「ベクタ
ープロセッサディスエイブルド欠陥jセットを処理する
際に第1図のデータ処理システムによって行なわれる好
ましいて順を示すフローチャートである。 10・・・データ処理システム 15・・・スカラー処理ユニット(SPU)20・・・
メモリ処理ユニット 25・・・命令処理ユニット(IPU)30・・・ベク
ター処理ユニット(VPU)35・・・ベクターレジス
タファイル 4o・・・制御論理ユニット 5o・・・命令パーサ 60・・・制御論理回路 70・・・ベクター乗算器 80・・・ベクター加算器 90・・・マスクユニット 103・・・制御ワードデコーダエレメント104・・
・ディスパッチ形式論理回路105・・・制御ワード形
式論理回路 106・・・OPコードデコード論理回路107・・・
発行判断論理回路 108.109.110・・・アドレス発生器115・
・・命令バッファ 116・・・マルチプレクサ 140・・・ベクター制御ワード指定子150・・・O
Pコードフィールド 152・・・オペランドポインタ部分 154−158・・・オペランド指定子160・・・ベ
クター制御ワード 162・・・フラグフィールド 163、 指定子 170・ 172・ 174・ 182・ 190・ 192・ 164. 165 ・ ・ ・ベクターレジスタ ・マスク動作イネーブルフラグ ・一致真/偽フラグ ・例外イネーブルフラグ ・ベクター長さレジスタ ・ベクター結果 ・行き先レジスタ 図面の浄書(内容に変更なし) 4ビツト 4ビツト 4ビツト 4ビツト 命命の処理 第10図 第 図 メモリ菅埋欠舶スタックフレーム 第 図 ■ 命令テ゛コード 第17図

Claims (13)

    【特許請求の範囲】
  1. (1)実行されるべき動作を指定するオペレーションコ
    ード部分と、上記動作の実行に使用するオペランドを指
    定するオペランドポインタ部分とを各々含むベクター命
    令及びスカラー命令を実行するデータ処理システムにお
    いて、 上記オペランド及び上記命令を記憶するためのメモリと
    、 上記メモリから上記命令を検索するための命令フェッチ
    手段と、 上記ベクター及びスカラー命令のオペレーションコード
    部分とオペランドポインタ部分とを分離するための命令
    パーサ手段と、 上記ベクター及びスカラー命令の上記オペランドポイン
    タ部分によって指定されたオペランドを上記メモリから
    検索するためのオペランドフェッチ手段と、 上記ベクター命令を実行するためのベクター処理手段と
    を具備し、このベクター処理手段は、上記メモリにベク
    ターデータを記憶するための手段、 上記メモリからベクターデータを検索するための手段、 上記ベクター命令の実行に用いるベクターデータを記憶
    するためのベクター記憶手段、各々の上記ベクター命令
    ごとに上記ベクターデータに対するベクターポインタを
    識別するために各々の上記ベクター命令の上記オペラン
    ドの1つをデコードするベクター抽出手段、及び上記ベ
    クターポインタによって識別されたベクターデータを上
    記ベクター記憶手段からフェッチするための手段とを備
    えており、 更に、上記命令パーサ手段に接続されていて、上記ベク
    ター命令の上記オペレーションコード部分及び上記オペ
    ランドを上記ベクター処理手段へ送給するためのベクタ
    ー命令送給手段を具備することを特徴とするデータ処理
    システム。
  2. (2)上記ベクター処理手段は、 上記ベクター命令のオペレーションコード部分で指示さ
    れた動作を実行するためのベクター演算及び論理手段と
    、 上記ベクター抽出手段によってデコードされた上記ベク
    ターポインタの1つに基づいて上記ベクター演算及び論
    理手段からの結果を上記ベクター記憶手段に記憶するた
    めの手段とを備えた請求項1に記載のデータ処理システ
    ム。
  3. (3)上記ベクター命令送給手段は、上記命令パーサ手
    段に接続されていて上記オペレーションコード部分をデ
    コードし上記ベクター命令を上記スカラー命令から区別
    するための命令デコード手段を備えた請求項2に記載の
    データ処理システム。
  4. (4)上記スカラー命令を実行するためのスカラー処理
    手段を更に備えた請求項1に記載のデータ処理システム
    。
  5. (5)上記オペランドフェッチ手段は、複数のレジスタ
    番号部分を含むベクター制御ワードと称するオペランド
    を検索し、 上記ベクター記憶手段は、上記ベクターデータを記憶す
    るための複数の番号付けされたベクターレジスタを備え
    、そして 上記ベクター処理手段は、上記ベクター制御ワードの上
    記レジスタ番号部分に対応する上記番号付けされたベク
    ターレジスタから上記ベクターデータを検索するための
    ベクターフェッチ手段を備えている請求項1に記載のデ
    ータ処理システム。
  6. (6)上記オペランドフエッチ手段は、フラグ部分を含
    むベクター制御ワードと称するオペランドを検索し、そ
    して 上記ベクター処理手段は、上記ベクター制御ワードの上
    記フラグ部分を解読して上記ベクター制御ワードを指定
    するオペランドポインタ部分を含むベクター命令の実行
    を制御するためのフラグデコーダ手段も備えている請求
    項1に記載のデータ処理システム。
  7. (7)上記フラグ部分は、マスク動作を行なうべきかど
    うかを示するためのマスクイネーブルフラグと、マスク
    を制御するための信号の形式を指示する一致真/偽フラ
    グとを含み、上記ベクター処理手段は、 複数のベクターエレメントを有するベクターデータを各
    々含む複数のベクターレジスタと、上記ベクターレジス
    タの選択されたレジスタにおいて上記ベクターエレメン
    トの処理されるべきエレメントを識別するためのマスク
    レジスタと、上記マスクイネーブルフラグ及び上記一致
    真/偽フラグに応答して、上記マスクイネーブルフラグ
    が上記マスク動作を指示する場合にこのマスク動作を実
    行するためのマスク手段とを備えた請求項6に記載のデ
    ータ処理システム。
  8. (8)上記フラグ部分は例外イネーブルフラグを含み、
    そして上記ベクター処理手段は、上記ベクター命令を実
    行すると共に、上記ベクター命令の実行によってエラー
    が生じた場合に例外信号を送信するための演算手段と、 上記例外イネーブルフラグがセットされた場合に上記例
    外信号の送信を阻止するための例外阻止手段とを備えて
    いる請求項6に記載のデータ処理システム。
  9. (9)上記オペランドフェッチ手段は、対応するベクタ
    ー命令の上記オペレーションコード部分を更に定めるサ
    ブ動作部分を含むベクター制御ワードと称するオペラン
    ドを検索し、そして上記ベクター演算及び論理手段は、
    上記ベクター制御ワードの上記サブ動作部分に基づいて
    上記ベクター命令の上記オペレーションコード部分で指
    示されたベクター演算を実行する請求項2に記載のデー
    タ処理システム。
  10. (10)実行されるべき動作を指定するオペレーション
    コード部分と、メモリに記憶されたオペランドを指定す
    るオペランドポインタ部分であって、命令のオペランド
    部分で指定された動作の実行時に使用されるオペランド
    ポインタ部分とを各々含んでいるベクター命令及びスカ
    ラー命令を実行する方法において、上記ベクター命令は
    、付加的なベクターオペランドポインタを含む制御ワー
    ドを上記オペランドの1つとして含んでおり、上記方法
    は、 上記ベクター及びスカラー命令のオペレーションコード
    部分とオペランドポインタ部分とを分離し、 上記ベクター及びスカラー命令によって指定されたオペ
    ランドを上記メモリから検索し、上記オペレーションコ
    ード部分及び上記ベクター命令をベクター処理ユニット
    に送給し、そして 次の操作により上記ベクター処理ユニットにおいて上記
    ベクター命令を実行し、即ち、 上記ベクター命令の各々において上記制御ワードをデコ
    ードしてこれらのベクター命令に対する上記ベクターオ
    ペランドを抽出し、 上記抽出されたベクターオペランドによって指定された
    ベクターをベクター記憶手段からフェッチし、そして 上記ベクター命令及び上記制御ワードのオペレーション
    コード部分で指示された動作を実行しという操作を行な
    い、 上記分離する段階は、ベクター命令とスカラー命令の両
    方について実質的に同様に行なわれ、上記検索する段階
    も、ベクター命令とスカラー命令の両方について実質的
    に同様に行なわれることを特徴とする方法。
  11. (11)上記動作による結果を上記ベクターオペランド
    の1つによって指定された位置において上記ベクター記
    憶手段に記憶する段階を更に備えた請求項10に記載の
    方法。
  12. (12)上記オペランドポインタ部分によって指定され
    たベクターを上記メモリからフェッチする段階を更に備
    えた請求項10に記載の方法。
  13. (13)上記動作による結果を上記オペランドポインタ
    部分の1つによって指定された位置において上記メモリ
    へ記憶するための段階を更に備えた請求項10に記載の
    方法。
JP1065833A 1988-03-18 1989-03-17 ベクター処理システムの命令を実行する方法及び装置 Pending JPH0215369A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US170395 1988-03-18
US07/170,395 US4949250A (en) 1988-03-18 1988-03-18 Method and apparatus for executing instructions for a vector processing system

Publications (1)

Publication Number Publication Date
JPH0215369A true JPH0215369A (ja) 1990-01-19

Family

ID=22619698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1065833A Pending JPH0215369A (ja) 1988-03-18 1989-03-17 ベクター処理システムの命令を実行する方法及び装置

Country Status (9)

Country Link
US (1) US4949250A (ja)
EP (1) EP0335515B1 (ja)
JP (1) JPH0215369A (ja)
KR (1) KR930004328B1 (ja)
CN (1) CN1012538B (ja)
AU (1) AU598969B2 (ja)
CA (1) CA1316607C (ja)
DE (1) DE68924546T2 (ja)
WO (1) WO1989009454A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
JP2531760B2 (ja) * 1988-10-11 1996-09-04 日本電気株式会社 ベクトル処理装置
US5175863A (en) * 1989-10-23 1992-12-29 International Business Machines Corporation Signal data processing system having independently, simultaneously operable alu and macu
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5619709A (en) * 1993-09-20 1997-04-08 Hnc, Inc. System and method of context vector generation and retrieval
US5907842A (en) * 1995-12-20 1999-05-25 Intel Corporation Method of sorting numbers to obtain maxima/minima values with ordering
US7620832B2 (en) * 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7237097B2 (en) * 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
AU2003228069A1 (en) * 2002-05-24 2003-12-12 Koninklijke Philips Electronics N.V. A scalar/vector processor
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
US8000221B2 (en) * 2004-07-20 2011-08-16 Qualcomm, Incorporated Adaptive pilot insertion for a MIMO-OFDM system
JP2006318139A (ja) * 2005-05-11 2006-11-24 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法およびプログラム
US20080071851A1 (en) * 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US9141386B2 (en) * 2010-09-24 2015-09-22 Intel Corporation Vector logical reduction operation implemented using swizzling on a semiconductor chip
US20120216011A1 (en) * 2011-02-18 2012-08-23 Darryl Gove Apparatus and method of single-instruction, multiple-data vector operation masking
US20120254589A1 (en) * 2011-04-01 2012-10-04 Jesus Corbal San Adrian System, apparatus, and method for aligning registers
CN108681465B (zh) * 2011-12-22 2022-08-02 英特尔公司 用于产生整数序列的处理器、处理器核及系统
US9804839B2 (en) * 2012-12-28 2017-10-31 Intel Corporation Instruction for determining histograms
CN103914426B (zh) * 2013-01-06 2016-12-28 中兴通讯股份有限公司 一种多线程处理基带信号的方法及装置
GB2523823B (en) * 2014-03-07 2021-06-16 Advanced Risc Mach Ltd Data processing apparatus and method for processing vector operands
US20160092398A1 (en) * 2014-09-29 2016-03-31 Apple Inc. Conditional Termination and Conditional Termination Predicate Instructions
US20160092217A1 (en) * 2014-09-29 2016-03-31 Apple Inc. Compare Break Instructions
GB2543302B (en) * 2015-10-14 2018-03-21 Advanced Risc Mach Ltd Vector load instruction
GB2548600B (en) * 2016-03-23 2018-05-09 Advanced Risc Mach Ltd Vector predication instruction
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
US10963246B2 (en) * 2018-11-09 2021-03-30 Intel Corporation Systems and methods for performing 16-bit floating-point matrix dot product instructions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS5852265B2 (ja) * 1977-01-12 1983-11-21 株式会社日立製作所 デ−タ処理装置
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
JPS6015771A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd ベクトルプロセッサ
JPS6069746A (ja) * 1983-09-26 1985-04-20 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式
JPS6089274A (ja) * 1983-10-20 1985-05-20 Nec Corp ベクトルマスク制御システム
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
EP0211613A3 (en) * 1985-07-31 1989-05-10 Sperry Corporation Scientific processor vector file organization
JPS62208167A (ja) * 1986-03-10 1987-09-12 Hitachi Ltd ベクトル処理装置

Also Published As

Publication number Publication date
EP0335515A3 (en) 1991-05-22
AU598969B2 (en) 1990-07-05
DE68924546T2 (de) 1996-06-05
AU3142689A (en) 1989-11-02
DE68924546D1 (de) 1995-11-23
KR920700425A (ko) 1992-02-19
CN1040277A (zh) 1990-03-07
CA1316607C (en) 1993-04-20
KR930004328B1 (ko) 1993-05-26
WO1989009454A1 (en) 1989-10-05
US4949250A (en) 1990-08-14
CN1012538B (zh) 1991-05-01
EP0335515B1 (en) 1995-10-18
EP0335515A2 (en) 1989-10-04

Similar Documents

Publication Publication Date Title
US5113521A (en) Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5008812A (en) Context switching method and apparatus for use in a vector processing system
US4949250A (en) Method and apparatus for executing instructions for a vector processing system
US5043867A (en) Exception reporting mechanism for a vector processor
EP0898743B1 (en) A multi-threaded microprocessor configured to execute interrupt service routines as a thread
US5197138A (en) Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US6772327B2 (en) Floating point unit pipeline synchronized with processor pipeline
US4740893A (en) Method for reducing the time for switching between programs
US6463520B1 (en) Processor for executing instruction codes of two different lengths and device for inputting the instruction codes
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
US5590294A (en) Method and apparatus for retarting pipeline processing
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US4914578A (en) Method and apparatus for interrupting a coprocessor
CN108834427B (zh) 处理向量指令
US4656581A (en) Vector mask control system
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US5841999A (en) Information handling system having a register remap structure using a content addressable table
US5758141A (en) Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
JPH0250259A (ja) ベクタープロセッサによって非同期メモリ管理例外を取り扱う方法及び装置
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
EP0297890B1 (en) Apparatus and method for data induced condition signaling
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP3102399B2 (ja) データ処理装置及び方法