JPH0250260A - ベクタープロセッサの例外報告機構 - Google Patents

ベクタープロセッサの例外報告機構

Info

Publication number
JPH0250260A
JPH0250260A JP1065832A JP6583289A JPH0250260A JP H0250260 A JPH0250260 A JP H0250260A JP 1065832 A JP1065832 A JP 1065832A JP 6583289 A JP6583289 A JP 6583289A JP H0250260 A JPH0250260 A JP H0250260A
Authority
JP
Japan
Prior art keywords
vector
instruction
scalar
exception
instructions
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
JP1065832A
Other languages
English (en)
Inventor
Dileep P Bhandarkar
ディリープ ピー バンダーカー
Robert Supnik
ロバート スプニク
Steven Hobbs
スティーヴン ホッブス
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 JPH0250260A publication Critical patent/JPH0250260A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、D、バンダーカー氏等の「ベクター処理シス
テムに使用するための文脈スイッチング方法及び装置(
Context Switching Method 
andApparatus for Use in a
 Vecto’r ProcessingSystem
) Jと題する米国特許出願;D、バンダーカー氏等の
「ベクター処理システムの命令を実行する方法及び装置
(Method and Apparatus for
Executing In5tructions fo
r a Vector Process−ing Sy
stem) Jと題する米国特許出願;及びF。
マッキーン氏等の[ベクタープロセッサによる非同期メ
モリ管理の例外を取り扱う方法及び装置(Method
 and Apparatus for Handli
ng Asynchro−nous Memory M
anagement Exceptions by a
 Vec−tOr Processor)Jと題する米
国特許出願に関連したものである。これらの特許出願は
、参考としてここに取り上げるものである。
本発明は、一般に、ベクター処理を行なうデータ処理シ
ステムに係り、より詳細には、ベクタ−処理動作中に演
算例外状態に対応しなければならないデータ処理システ
ムに係る。
従来の技術 ある高性能のデータ処理システムは、主即ちスカラープ
ロセッサに加えて、ベクター命令を迅速且つ効率的に処
理するための個別のベクタープロセッサを備えている。
ベクター命令は、ベクターとして表わされたデータに基
づいて記憶、演算又は論理操作を実行するようにプロセ
ッサに指示する。主即ち「スカラー」プロセッサは、「
スカラー」命令としばしば称する他の命令を処理する。
スカラー命令は、例えば、論理及びスカラーデータに基
づいて記憶、演算又は論理操作を実行するようにプロセ
ッサに指示する。
ベクタープロセッサは、スカラープロセッサと同時に動
作するようにしばしば設計されている。
このような同時の処理中には、スカラープロセッサに不
都合な衝撃を与えるような問題がベクタープロセッサに
生じる。例えば、ベクタープロセッサの演算動作中には
、演算オーバーフローやアンダーフローといった演算例
外が生じる。これらの例外に応じてとられる動作は、デ
ータ処理システムの他部分に衝撃を与える。例えば、こ
のような動作にスカラープロセッサへの割り込みが含ま
れる場合には、スカラープロセッサの効率が低減する。
そうではなくて、システムがスカラー及びベクタープロ
セッサによる次の命令の処理をその状態が処理されるま
で禁止する場合には、システム全体の効率に影響が及ぶ
18Mシステム/30.90VFにおいては、ベクター
命令が順次に実行され(即ち、−度に1つづつ)そして
命令の実行中に生じた例外が順次に確認される。このシ
ステムにおいて、例外は、指数オーバーフロー、指数ア
ンダーフロー、固定小数点オーバーフロー、ゼロによ・
る浮動小数点の除算、及び非正規化オペランドを含む。
割り込み可能なベクター命令(即ち、多数の動作単位よ
り成るもので、これらの動作単位間で割り込みが許容さ
れる)の実行中にこれらの演算例外の1つが確認された
ときには、非ゼロの例外延長コードが発生される。この
コードは、割り込みが割り込み不能なスカラー命令によ
るものか割り込み可能なベクター命令によるものか、そ
の結果がスカラーレジスタに入れられるかベクターレジ
スタに入れられるかレジスタのアドレスであるかを指示
する。
前記したように、ベクター処理演算例外についての割り
込みを発生すると、スカラープロセッサの動作について
問題が生じる。この問題はマルチタスク環境においては
著しいものとなる。というのは、スカラープロセッサは
、ユーザプロセスについての命令を実行中に例外に遭遇
したベクタープロセッサによって割り込まれるときにオ
ペレーティングシステム機能についての命令を実行する
からである。
この問題に対する明らかな解決策は、ユーザプロセスか
らの全てのベクター命令が完了するまでオペレーティン
グシステム機能の処理を阻止することである。然し乍ら
、この解決策は、データ処理システムの効率を低減する
更に別の解決策は、ベクター命令とスカラー命令の同時
の処理を防止することである。然し乍ら、この著しい解
決策は、個別のベクタープロセッサを使用することによ
り生じる多数の効果を無効にしてしまう。
マルチタスクを実行する(即ち、多数の異なったタスク
又はプロセスを実行する)データ処理システムは、ベク
ターレジスタの特殊な取り扱いを必要とする。例えば、
IBM3090はマルチタスクを実行し、そのCPUは
、複数のプロセス間に注意を振り分ける。各プロセスは
、主メモリからスイッチアウトされて別のプロセスに入
るまでの短い時間中に実行される。このスイッチアウト
プロセスは、コンテックススイッチ(文脈切り換え)と
称する。プロセスがスイッチアウトされるたびに、マシ
ーンの現在状態、即ち文脈がセーブされ、スイッチイン
されるべき次のプロセスの状態が復帰される。状態情報
は、フラグ、状態ワード、スカラーレジスタ及びベクタ
ーレジスタのようなエレメントを含んでいる。
IBM3090は、文脈スイッチングが生じるたびに各
ベクターレジスタをスイッチアウトするのを回避するた
めに書き込みフラグを用いている。プロセスの実行中に
ベクターレジスタに書き込まれるときには、それに対応
する書き込みフラグがセットされる。現在プロセスがス
イッチアウトされるときには、プロセスの実行中に更新
されたベクターレジスタの内容のみがセーブされる。
これは、最後のセーブ以来変更されたレジスタの内容の
みをオペレーティングシステムがセーブすればよいよう
にすることによりシステムの負荷を減少する。このよう
にシステム負荷の減少は得られるが、ハードウェアが追
加されることになる。
然し乍ら、システムの負荷はそれでもなお大きなもので
ある。というのは、文脈切り換えごとに、オペレーティ
ングシステムが変更された全てのベクターレジスタの内
容をセーブしなければならず、且つオペレーティングシ
ステムが次のプロセスの準備をするためにレジスタの内
容を記憶しなければならないからである。
典型的なベクタープロセッサは8ないし16個のベクタ
ーレジスタを含んでいて、レジスタ当たり32ないし1
28個のエレメントがあるから、各文脈スイッチングの
たびに古い状態をセーブしそして新たな状態を復帰する
ことは、特にプロセッサが非常に多数のプロセスを分担
しているが、若干のプロセスしかベクター命令を使用し
ない場合には、著しいオーバーヘッドを招く。
発明が解決しようとする課題 そこで、本発明の目的は、ベクタープロセッサが演算例
外に遭遇したときにデータ処理システムに生じる障害を
最1Jzにすることである。
本発明の別の目的は、ベクタープロセッサに演算例外が
生じる間及びその後に、少なくともベクタープロセッサ
によってその後のベクター命令を実行すべきときまで、
スカラープロセッサが処理を継続できるようにすること
である。
本発明の更に別の目的は、幾つかのベクター演算例外を
選択的に無視することのできるデータ処理システムのベ
クタープロセッサを提供することである。
本発明の更に別の目的及び効果は、その一部分が以下の
説明に述べられておりそしてその一部分が以下に説明に
おいて明らかであり、もしくは本発明を実施することに
よって学び取ることができよう。本発明の目的及び効果
は、特に特許請求の範囲に指摘された要素及びその組合
せによって実現及び達成されよう。
課題を解決するための手段 本発明の目的を達成するためにそして本発明の目的によ
れば、ここで実施して広く説明するように、本発明のデ
ータ処理システムは、ベクター命令及びスカラー命令を
処理することができ、ベクター命令はベクター量に基づ
くデータ処理演算を含むものであり、そしてスカラー命
令は非ベクター量に基づくデータ処理演算を含むのもで
ある。
スカラープロセッサはスカラー命令を実行するために設
けられている。ベクタープロセッサは、スカラープロセ
ッサがスカラー命令を実行するのと同時にベクター命令
を実行する。ベクタープロセッサは例外論理回路を備え
ており、該回路は、演算例外の発生に応答してベクター
プロセッサをディスエイブルするための例外制御手段を
含んでいる。又、ベクタープロセッサは、例外論理回路
に接続されていてベクタープロセッサがディスエイブル
されたことを指示するためのディスエイブル指示手段も
備えている。スカラープロセッサには、制御論理ユニッ
トが設けられており、これは命令デコーダとして(至)
いて、スカラー及びベクター命令を各々スカラー及びベ
クタープロセッサに送給する。命令デコーダには制御器
が接続され、この制御器は、ベクタープロセッサが演算
例外の発生によってディスエイブルされたときに、ベク
ター命令がベクタープロセッサへ送給されるのを防止す
る。ベクタープロセッサに演算例外が生じたときには、
ベクタープロセッサに演算例外が生じるのに拘りなくス
カラープロセッサがスカラー命令の実行を続ける。
本明細書の一部分である添付図面は、本発明の実施例を
示すと共に、以下の説明と共に、本発明の詳細な説明す
るのに役立つものである。
実施例 以下、添付図面に一例として示された本発明の好ましい
実施例を詳細に説明する。これらの添付図面全体にわた
り、同様の部分は同じ参照番号で示されている。
A、シスームの−  な 本発明によれば、ベクター命令及びスカラー命令を実行
することのできるシステム10のようなデータ処理シス
テムが提供される。第1図は、スカラー処理ユニット(
SPU)15、メモリ処理ユニット20、命令処理ユニ
ット(IPU)25及びベクター処理ユニット(VPU
)30のような種々の要素を備えたデータ処理システム
1゜を備えている。
本発明のデータ処理システムは、スカラー命令を実行す
るためのスカラー処理手段を備えている。本発明の好ま
しい実施例では、5PU15は、IPU25から全ての
命令を受け取り、スカラー命令を実行し、IPU25か
ら受け取ったベクター命令及びベクターデータをVPU
30へ供給する。
本発明によれば、データ処理システムは、スカラー処理
手段でスカラー命令を実行するのと同時にベクター命令
を実行するためのベクター処理手段も儂えている。図示
された実施例では、VPU30は、5PU15でスカラ
ー命令を実行するのと同時にベクター命令を実行する。
又、VPU30は、以下で述べる多数のベクターレジス
タも含んでいる。
又、本発明のデータ処理システムは、ベクター命令を・
ベクター処理手段へそしてスカラー命令をスカラー処理
手段へ送給するための命令デコード手段も備えている。
第1図に示すように、IPU25は、以下で述べるよう
にメモリ処理ユニット20から受け取った命令を予め処
理するための命令パーサ50を備えている。このパーサ
50は、スカラー命令及びデータを5PU15へ送ると
共に、ベクター命令及びスカラーデータを5PUI5を
経てVPU30へ送る。5PU15は、ベクター命令及
びデータをVPU30へ通すためのマクロコードを含む
制御論理ユニット40を−備えている。もちろん、パー
サ50は、ベクター命令をVPU30に直接送給するよ
うに設計することもできる。VPU30は、IPU25
も5PU15も使用する必要なくメモリ処理ユニット2
0からベクターデータを受け取りそしてアドレス及びベ
クターデータをメモリ処理ユニット20へ送給する。
メモリ処理ユニット20は、IPU25.5PU15及
びVPU30から制御、アドレス及びデータ信号を受け
取り、これらの信号に応答して仲裁及び処理を行なう、
又、データ処理システム10は、別の機能を実行するた
めの別の要素を含むことができるが、本発明を理解する
上でこのような要素を理解する必要はない。
第2図は、VPU30の好ましい実施例を示す図である
。第2図に示されたように、VPU3Oは、データ処理
システム10の他の部分との主インターフェイスとして
制御論理回路60を備えていると共に、ベクターデータ
アクセス要求に応じるためのベクターレジスタファイル
35を備えている。これらの要求は、書き込み制御信号
及び書き込みアドレスより成る書き込み要求であるか、
又は読み取り制御信号及び読み取りアドレスより成る読
み取り要求である。ベクターレジスタファイル35は、
WT  FORTO−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  POR・T3及びRD  PORT4は、ベクタ
ー加算器80へ接続される。
ベクターレジスタファイル35は、VPU30によって
処理されたベクターを記憶する複数のベクターレジスタ
(好ましくは、16個)を備えている。各ベクターレジ
スタは、64個のエレメントを有しているのが好ましい
。然し乍ら、ファイル35のサイズは、本発明にとって
重要ではない。
処理されているベクターの入力の数、即ち、そのベクタ
ーの長さは、制御論理回路60のベクター長さレジスタ
 (VLR)182に記憶される。
好ましい実施例では、ベクターが入力を64個まで有す
ることができ、従って、ベクター長さレジスタ182は
、0から64個の入力までのベクター長さを表わすため
に7ビツトの長さになっている。
ベクター加算器80は、ベクターレジスタファイル35
からRD  PORT3及びRD  PORT4を経て
送られる2つのベクターに対し整数及び浮動小数点の加
算及び減算演算を行なう。加算器80は、幾つかの論理
及びシフト演算も実行するのが好ましい。rRESUL
TJ と示されたベクター加算器8oの出力は、WT 
 PORTIへのデータ入力となる。又、ベクター加算
器80は、マスクユニット90に接続された例外論理回
路82も備えており、これは、加算器80が条件に応じ
て演算を実行して演算の例外条件をマスクユニット90
に通知できるようにする。
ベクター乗算器70は、ベクターレジスタファイル35
のRD  PORTI及びRD  PORT2から受け
取った2つのベクターに対し整数及び浮動小数点の乗算
及び除算演算を実行する。これら入力の積又は商は、r
REsULTJとも示されたベクターであり、WT  
PORT2八人ツノデータとして送られる。マスクユニ
ット90へ接続された例外論理回路72は、乗算器70
による乗算又は除算から演算の例外条件が生じたときに
それをマスクユニット90に指示する。
マスクユニット90は、ベクターレジスタファイル35
からRD  PORTOを経てデータを受け取り、第2
図に示すVECTORDATAラインを経てVPU30
から5PU15へベクターデータを供給する。又、マス
クユニット90は、RD  PORTOからデータを読
み取り、それをメモリ処理ユニット20のアドレスに変
換することができる。更に、マスクユニット90は、例
外論理回路72及び82に接続されていて、それらの例
外条件をラッチする。
マスクユニット9oには、64ビツトのベクターマスク
レジスタ92が含まれている。レジスタ92の各ビット
は、所与のベクターレジスタにおける64個のベクター
エレメントの各々に対応し、その対応するベクターエレ
メントがイネーブルされて処理されるべきであるがどう
かを指示する。マスクレジスタ92には、5PU15が
ら制御論理回路60を経てデータをロードすることがで
きる。ベクターマスクレジスタ92は、ベクターレジス
タ内のイネーブルされたエレメントからの結果のみが記
憶されるように確保するのが好ましい。
ベクター制御論理回路6oは、命令パーサ65と、幾°
っかの制御機能を実施するためのベクターセーブ及びデ
コード論理回路66とを備えているのが好ましい。制御
論理回路6oのベクターセーブ及びデコード論理回路6
6は、VPU30における全ての動作のスケジュールを
監視し、あるデータ転送動作を実行する。
第3図に一部分が詳細に示された命令パーサ65は、5
PUI5から情報(即ち、V E C’T ORDAT
Aラインを経ての命令)を受け取り、入ってくるデータ
及びアドレスを適当な読み取り及び書き込みポートに送
り、そしてベクター乗算器70.ベクター加算器80又
はマスクユニット90に送る。命令パーサ65は、5P
U15から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、ベク
ター乗算器70又はマスクユニット90のいずれかに対
応するスカラーレジスタに記憶される。
デコードされるベクター命令がベクターオペランドしか
必要としない場合には、情報がバッファ116に通され
、以下に述べるように制御ワードデコーダエレメント1
03に基づいてオペランドが決定される。然し乍ら、命
令がスカラーデータを必要とする場合には、そのデータ
が命令に続いて5PU15から通され、マルチプレクサ
l○2により正しい時間に出力される。
命令がマルチプレクサ116によって選択された後に、
幾つかのフィールドがデコード論理エレメント103.
104.105及び1064:分布される。部分的にデ
コードされた命令における命令情報は、命令の形式を指
示するOPコード部分と、制御ワードの形式を指示する
制御ワード形式部分(以下で詳細に述べる)と、加算器
80又は乗算器70のような主ベクターユニットめどれ
を命令によって使用すべきであるかを指示するディスパ
ッチ形式部分と、ベクター命令に対するオペランド及び
フラグを指定する制御ワード部分とを含んでいる。
制御ワードデコーダエレメント103は、制御ワード部
分からオペランドを取り出し、特定のベクター演算のた
めのデータのソースとなるベクターレジスタ、即ち5O
URCE  REGI及び5OURC,E  REG2
と、ベクター演算の結果を記憶するベクターレジスタ、
即ちDEST  REGとの両方に対し、ベクターレジ
スタファイル35のレジスタのアドレスを形成する。更
に、デコーダエレメント103は、ExceptiOn
s / M a s kフラグも取り出す。
5OtJRCE  REGI、5OURCE  REG
2及びDEST  REGの値は、各々、アドレスレジ
スタ108.109及び110に入力され、これらのレ
ジスタは、命令の形式に基づいて、ベクター加算器80
、ベクター乗算器70及びマスクユニット90のための
アドレスを発生する。
アドレス発生器108.109及び110は、実行され
ている特定のサブ演算を決定するカウンタであり、第2
図にベクター制御論理回路60のカウンタ44として示
されている。
他の命令形式部分は、ディスパッチ形式論理回路104
、制御ワード形式論理回路105又はOPコードデコー
ド論理回路106へ送られて、更にデコードされる。こ
のようなデコードに基づいて、発行判断論理回路107
がその命令を発行できるかどうか判断する。例えば、ベ
クター加算器80がビジーである場合に、この加算器8
0を必要とするならば、加算器80が解放されるまで次
の命令を遅延しなければならない。発行判断回路107
が次の命令を実行できると判断したときには、アドレス
発生器108.109及び110がそれらの適切な値を
ロードするようにさせるためのl5sue  New信
号を発生する。
B、ベクター命へフォーマット 第4図は、秤々の個数のオペランド指定子を有する種々
のベクター命令ワードのフォーマットを示している。第
5図は、第4a図ないし第4d図に示されたフォーマッ
トを有するベクター命令ワードのベクター制御ワード指
定子1/10によって指示された種々のフォーマットの
ベクター制御ワードを示している。
第4図の実施例に示されたように、ベクター命令は、命
令の形式を識別するオペレーションコードを保持する。
Pコードフィールド150と、オペランドポインタ部分
152とを備えている。
オペランドポインタ部分152は、任意の数のオペラン
ド指定子154−158と、ベクター制御ワード指定子
140とを含んでいる。好ましくは、オペランドポイン
タ部分152の全てのオペランド指定子は、スカラー命
令のオペランド指定子と同じフォーマットを有し、そし
てスカラー命令における指定子と同様に、ベクター命令
ワードのオペランド指定子はスカラーオペランドの位置
を識別する。ベクターオペランド指定子及びスカラーオ
ペランド指定子(第7図)は同じフォーマットであるか
ら、所与の命令がベクター命令であるかスカラー命令で
あるかを知る前にオペランドをフェッチすることができ
る。
第7図は、3つのオペランド指定子154′155′及
び156′ を有するスカラー命令ワードを示している
。第4a図ないし第4d図に示されたベクター制御ワー
ド指定子140と、第7図のベクターオペランド指定子
154’   +55’及び156′は、同じアドレス
機構を用いており、従って、命令パーサ50はベクター
命令及びスカラー命令に対して別々にオペランドをフェ
ッチしなければならないことから解放される。同じアド
レス機構を用いることにより、VPU30の編成がIP
U25に対して透過的とすることができる。
オペランド指定子154−158がオペランドを指定す
る好ましいアドレス機構は、参考としてここに取り上げ
るストレッチャー氏等の米国特許筒4.2/11,39
9号に説明されている。
オペランド指定子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及びl 64に加え
て、制御ワード160′は、第5a図の4ビツトベクタ
ーレジスタ指定子フイールド165の代わりに4ビツト
オペランド情報フイールド168を含んでいる。オペラ
ンド情報フィールド168は、種々のベクター演算に必
要な情報を含んでいる。例えば、OPコードフィールド
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、及びベクター制御ワード16
0のフラグフィールドのMOE及びMTFフラグ各々+
70及び172がベクター演算の結果の記憶にいかに影
響するかの例を示している。第8a図において。
ベクター制御ワードのMOEフラグ170は、マスキン
グがイネーブルされたことを指示する「l」の値を含ん
でいる。MTFフラグ172は、ベクターマスクレジス
タ92における「0」の値に対応する結果のみを記憶す
べきであることを指示する「0」の値を含んでいる。
第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の最も左のエレメン
トは、値「0」を有するベクターマスクレジスタ92の
ビットに対応する。ベクター結果190の最も左から2
番目のビットは、値「1」を有するベクターマスクレジ
スタ92のビットに対応する。
第8e図は、マスキングの後であって、第8d図のベク
ター結果190の幾つかのエレメントが行き先レジスタ
192に記憶されたときの該レジスタの内容を示してい
る。行き先レジスタ192の最も左のエレメントは値「
4」を含んでいる。
この値は、ベクターマスクレジスタ92の対応ビットが
値rQJを含むために行き先レジスタ192に記憶され
たものである。然し乍ら、行き先レジスタ192の最も
左から2番目のエレメントは、第8e図においてその元
の値「7」をまだ含んでいる。第8d図のベクター結果
190の結果値「5」は、第8e図の行き先レジスタ1
92には記憶されていない。というのは、ベクターマス
クレジスタ92の対応ビットが「1」を含んでいるから
である。同様に、ベクターマスクレジスタ92のイネー
ブルされたビットに対応するベクター結果190の他の
全ての値は行き先レジスタ192に記憶されるが、ディ
スエイブルされたベクターマスクレジスタビットに対応
するベクター結果+90のエレメントは行き先レジスタ
192に記憶されない。
C0童土10コ痕刀1塁 5PU15が命令をVPU30か又は5PU15内の他
の回路かのいずれかへ実行のために送る前に、IPU2
5は命令に基づいて幾つかの予めの処理を実行する。前
記で簡単に述べたように、上記命令フォーマットの独特
の特徴は、IPU25が同じ回路(その好ましい実施例
がバッファ187及びオペランド制御論理回路185を
含むものとして第9図に示されている)を用いて、ベク
ター命令及びスカラー命令の両方を同様に予め処理でき
ることである。
第10図は、IPU25において命令を予め処理するた
めの好ましい手順を示すフローチャートである。メモリ
処理ユニット2oが命令をIPU25に送ると、この命
令がバッファ1−87に入力される(第10図のステッ
プ194)。この命令のオペレーションコード部分(即
ち、第4a図ないし第4d図のOPコードフィールド1
50)が取り出され、5PU15へ送られる。この命令
のオペランドポインタ部分(即ち、第4a図ないし第4
d図のオペランドポインタ部分152)は、オペランド
制御論理回路185への入力となり、該論理回路は、必
要に応じてオペレーションコード部分へアクセスしてそ
の機能を実行する。
オペランド制御論理回路185は、必要に応じてオペレ
ーションコードを用いてオペランド指定子部分をデコー
ドし、そして各オペランド指定子部分によって指示され
たオペランドを決定するために必要なメモリ処理ユニッ
ト20へのアクセスを実行する(ステップl98)。オ
ペランドを決定する手順の詳細は、上記したストレッカ
ー氏等の特許に開示されている。更に、IPU25は、
オペランド及びオペランドコード部分をS、PU15へ
送り、S、PU15によってそれを実行するか又はベク
ター命令及びオペランドをVPU30へ送信するように
する(ステップ199)。
ベクター及びスカラーの処理命令が同じフォーマットを
有しているので、オペランド制御論理回路185は、ベ
クター及びスカラーの両方の命令に対して同じ機能を実
行する。実際に、FIETプロセッサや浮動小数点プロ
セッサのような個別に動作するプロセッサを有するいか
なる形式のデータ処理手段についてを、上記した命令フ
ォーマットの使用により、1PU25のような単一命令
プロセッサで全ての命令を同様に予め処理することがで
きる。
本発明によれば、ベクター処理手段は、該ベクター処理
手段の例外状態を表わすベクター状態情報を保持するた
めの状態手段を備えている。本発明の好ましい実施例で
は、第11図に示されたベクタープロセッサ状態レジス
タ(VPSR)200がVPU30に設けられていて、
VPU30の実行状態を表わす情報を保持する。VPS
R200は、VPU30に関する32ビツトの状態情報
を保持するもので、制御ユニット60に位置されるのが
好ましいが、どこに配置されてもよい。
又、マスクユニット90には、第12図に示されたベク
ター演算例外レジスタ(VAER)300と、第13図
に示されたベクター状態アドレスレジスタ(VSAR)
400とが配置される。レジスタ200.300及び4
00の内容は、以下で述べる他のデータと同様に、VP
U30の状態情報の一部分となる。
VPSR200のビットOは、VPU30がディスエイ
ブルされたかどうかを指示するベクタープロセッサイネ
ーブル(VEN)ビット210である。VPU30は、
このビットに1を書き込むことによってイネーブルされ
そしてこのビットにOを書き込むことによってディスエ
イブルされる。VPU30がディスエイブルされたとき
には、ベクター命令をVPU30に送ろうとする5PU
15の試みにより[ベクタープロセッサデイスエイブル
ドホールトJが生じる。
VPSR200のビットlは、ベクタープロセッサ状態
リセット(RS T)ビット220である。このビット
に1を書き込むと、VENビット210を除いてVPS
R200がクリアされる。
VPSR200のビット2は、ベクター状態記v!、(
STS)ビット230であり、コレハ、lにセットされ
た場合に、メモリ管理例外を非同期で取り扱うためにV
SAR400の仮想メモリアドレス420を用いて実行
特定ベクター状態情報をメモリ処理ユニット20に記憶
し始める。例外が同期的に取り扱われる場合には、ST
Sビット230が無視される。本発明の好ましい実施例
では、ベクター処理メモリアクセス命令を実行する2つ
の方法の1つを選択することができる。この2つの方法
は、以下に詳細に述べるように、メモリ管理例外を取り
扱うための2つの異なった機構をもたらす。その一方は
同期式のメモリ管理実行でありそしてその他方は非同期
のメモリ管理実行である。同期式の実行中に、VPU3
0及び5PU15は、現在実行中のベクターメモリアク
セスが完了を保証されるまで、新たな命令を処理しない
非同期の実行中には、VPU30は、SPUの命令の実
行又は他のベクターメモリ命令のVPU実行のいずれか
と同時にベクターメモリアクセス命令を実行することが
できる。非同期メモリ管理では、LOAD/ΔDD/M
ULTT PLY/5TOR−Eのような命令シーケン
スを連鎖的に実行することができる。
VPSR200のビット3は、ベクター状態再ロード(
RLD)ビット240であり、これは、lにセットされ
ると、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いてメモリか
ら実行特定ベクター状態情報を再ロードし始める。ST
Sビット230と同様に、例外の同期的な取り扱いが実
施される場合には、RLDビット240が無視される。
VPSR200のビット5はメモリ欠陥(Mド)ビット
250であり、これは、非同期メモリ管理例外によって
再実行されるべきメモリ参照の存在を指示するためにV
 P tJ 30によって1にセットされる。これにつ
いては、以下で詳細に説明する。メモリ管理例外の同期
的な取り扱いが実行される場合には、このビットがOに
セットされる。
VPSR200のビット6は、保留メモリ欠陥(PMF
)ビット260である。VPU30は、非同期メモリ管
理例外が保留中であることを指示するためにPMFビッ
ト260を1にセットする。
メモリ管理例外の同期的な取り扱いが実行される場合に
は、このビットが常に0である。
VPSR2000)ビット7は演算例外(AI>X)ビ
ット270であり、これは通常Oであって、VPU30
が浮動小数点のアンダーフロー又はIIす数のオーバー
フローといった幾つかのit(算例外によってディスエ
イブルされないことを指示する。
VPU30は、演算例外が生じたときには常にこのビッ
トをセットする。例外の特定の性質に関する情報はVA
ER300に配置される。
VPSR200のビット24は、実行特定ハードウェア
エラー(IMP)ビット280である。
IMPビット280は、VPU30がハードウェアのエ
ラーによってディスエイブルされたときに1にセットさ
れる。
VPSR200のビット31は、ベクタープロセッサビ
ジー(BSY)ビット290であり、これはVPU30
がベクター命令を実行するときにこのVPUによりlに
セットされる。このビットがOに゛クリアされた場合に
は、VPU30がアイドル状態となり、非同期メモリ管
理例外により命令の実行を保留する。
VAER300は、ベクター演算例外に関する情報を記
録するのに用いるレジスタであるのが好ましい。VAE
R300は、マスクユニット90に配置されており、例
外ユニット82及び72によって書き込まれる。SPU
、15の制御論理ユニット40は、VAER300の内
容を読み取ることができるが、VAER300へ書き込
むことはできない。VAER300は、好ましい実施例
では、ベクター行き先レジスタマスク310と、例外条
件概要320の2つのフィールドを含んでいる。VAE
R300のベクター行き先レジスタマスクフィールド3
10は、どのベクターレジスタが演算例外によりデホー
ルト値を受け取ったかを記録する。16個のベクターレ
ジスタのうちのn番l]のレジスタが演算例外の結果と
してデホールト値を受け取る場合には、マスクフィール
ド310のビットn (VAER300のビット(]6
十〇))に1 hc古き込まれる。
例外条件概要フィールド320は、発生した例外の形式
を指示する。これらの条件は、浮動小数点のアンダーフ
ロー、浮動小数点のゼロによる除算、浮動小数点の指定
されたオペランド、浮動zJs数点のオーバーフロー又
は整数オーバーフローの例外条件を含むのが好ましい。
前記したように、IPIJ25の命令パーサ50は、ベ
クター及びスカラー命令を5−PU15に通す。5PL
II5は、次いで、ベクター命令を識別し、それらをV
PU30に通す。もちろん、ベクター命令は、IPU2
5からVPU30に直接通すことができる。次いで、V
PU30は、ベクター命令をその通常の演算に基づいて
実行する。
然し乍ら、ベクター命令の実行中には、2つの形式のベ
クタープロセッサ例外、即ち、ベクターメモリ管理例外
及びベクター演算例外が生じる。
2・・汐王己)IL朋」乞べ 2つの形式のベクタープロセッサ例外は若干具なったや
り方で処理される。ベクター演算例外とは異なり、ベク
ターメモリ管理例外はVPU30をディスエイブルしな
い。メモリアクセス命令中に生じるメモリ管理例外は、
その命令のそれ以上の処理を防止する。演算例外の場合
にはこのようにならない。メモリ管理例外は、データに
基づく他の全ての命令の実行を停止する。
本発明のベクター処理手段は、メモリ管理例外の存在を
指示するための例外検出手段を備えている。VPU30
の好ましい実施例では、制御論理回路66は、メモリ管
理例外が生じたときにメモリ処理ユニット20によって
通知される。この手順の詳細は、以下で説明する。
ベクターメモリ管理例外は、アクセス制御違反、変換非
有効例外、修正例外及びベクター整列例外を含む。メモ
リ処理ユニット20は、メモリ管理例外の形式を識別す
る信号を発生するのが好ましいが、このような信号は、
5PU15又はVPU30においても発生できる。これ
らの例外識別信号は、VPU30の状態情報の一部分で
ある。
アクセス制御違反は、メモリの保護された部分又は現在
ベクタープロセスに割り当てられたメモリスペースの外
側のメモリの部分へVPU30がアクセスしようと試み
ることを含む。現在ベクタープロセスは、その実行によ
ってメモリ管理例外が生じるようなベクター命令を含む
プロセスを指す。変換非有効例外は、ページ欠陥が存在
するとき又はメモリ処理ユニット20に現在ないメモリ
の部分をアクセスしようとする他の試みが存在するとき
に発生する。変更例外は、メモリ内のベージへのアクセ
スが現在ベクタープロセスによって初めて行なわれるペ
ージの変更を含むときに生じる。ベクター整列例外は、
長ワード(4バイトを占有する)又はクオドワード(8
バイトを占有する)がメモリ処理ユニット20の各々長
ワード境界又はクオドワード境界に入らないときに生″
じる。又、ベクター整列例外は、同様のソフトウェアが
両方の状態を取り扱うのでアクセス制御違反と考えられ
る。
2種類以上のメモリ管理例外が単一ベクター命令の処理
中に発生した場合には、ある主のハイアラーキ゛−構成
で例外の取り扱いを行なわねばならない。最も優先順位
の高いものは、最も重大なものであるから、これがアク
セス)11制御例外に達する(従って、同様に処理され
るベクター整列例外に達する)。このような例外により
、データ処理システム10は現在ベクタープロセスを実
行しないようにする。変換非有効例外は、次に高い優先
順位を有している。
又、本発明のベクター処理手段は、メモリ管理例外が生
じたときにベクター処理手段によって欠陥ベクター処理
命令を実行するのを停止しそしてスカラー処理手段がス
カラー命令の実行を継続できるようにするためのベクタ
ー停止手段を備えている。メモリ管理例外が生じたとき
には、ベクター状態及びデコード論理回路66は、VP
U30がベクター命令の実行を中断するようにさせる。
これは、VPU30への有効データの送信を停止するこ
とによって行なわれる。
本発明によれば、データ処理システムは、メモリ管理例
外の発生の指示と、ベクター処理手段の状態についての
充分なス11報とを記録して、メモリ管理例外が生じた
ベクター処理命令のサブ動作時の実行をベクター処理手
段が後で再開できるようにするための例外記録手段を備
えている。本発明の好ましい実施例では、同期メモリ管
理及び非同期のメモリ管理の両方の間に、メモリ管理例
外の発生により、5PU15、より詳細には、5PU1
5の制御論理ユニット40がメモリ管理スタックフレー
ム(メモリ処理ユニット20の所定の位置に記憶される
)を形成するようにされる。メモリ管理例外を取り扱う
ためのソフトウェアは、メモリ管理スタックフレームを
含む所定の位置を確認するように設計されており、従っ
て、特定の例外に適した良く知られたルーチンを含むこ
とのできる適当な処理を迅速に行なうことができる。
第14図は、メモリ管理スタックフレーム500の一例
を示している。スタックフレーム5゜Oは、メモリ管理
欠陥コード510、アドレスワード520、プログラム
カウンタPC530及びプログラム状態ワードPSI、
540を含んでいる。
欠陥コード510は、長さビット511、ページテーブ
ル参照ビット512、変更ビット513、ベクター整列
ビット514、ベクター110ビツト515及びベクタ
ー非同期メモリ管理例外ビット516を含むのが好まし
い。長さビット511は、VPU30を用いてベクター
プロセスに割り当てられたメモリスペースの外側のメモ
リ処理ユニット20の位置へアクセスすることによって
アクセス制御違反が生じたときにセットされる。
ページテーブル参照ビット512は、ページテーブルを
アクセスする間にメモリ管理例外が生じた場合にセット
される。変更ビット513は、例外を生じた命令がメモ
リ処理ユニット20への書き込みである場合にセットさ
れる。ベクター整列ビット(VAL)514は、例外が
ベクターエレメントの不整列によるものであるときにセ
ットされる。/</7ター 110 (V I O)ビ
ット515は、I10スペース内のアドレスを参照する
ベクター命令中にアクセス制御違反が発生したときにセ
ットされる。ベクター非同期メモリ管理(VAS)ビッ
ト516は、非同期メモリ管理が実行されている間にベ
クタープロセッサメモリ管理例外が生じたときにセット
される。
同期メモリ管理中には、例外が直ちに取り扱われ、次い
で、欠陥命令の実行が再開される。命令は、ベクターメ
モリアクセス命令を開始点へ戻すことにより再開される
。この点において、メモリ管理欠陥が開始され、PC5
30の値が欠陥ベクターメモリアクセス命令を識別する
。VSAR400は、同期メモリ管理例外中は無視され
る。
というのは、メモリ管理例外はそれらが生じたときに取
り扱われるのであって、VPU30の状態情報を記憶す
る必要がないからである。
スタックフレーム500のアドレス520は、例外が生
じたメモリ処理ユニット20のページの仮想アドレスを
表わす。PC530は、例外を引き起こした命令のプロ
グラムカウンタである。例外を引き起こす命令は、非同
期メモリ管理の場合にベクターメモリアクセスを実行す
る命令とは異なる。PSL540は、5PU15のプロ
グラム状態ツー下である。
上記したように、非同期メモリ管理中には、5PU15
がVPU30と同時にスカラー命令を実行できるだけで
はなく、VPU30がベクターメモリアクセス命令と共
にベクター演算命令を実行することができる。非同期メ
モリ管理を用いた実行中にメモリ管理例外が生じた場合
には、vPU30がその状態を凍結するためのステップ
をとり、これにより、状態を記憶して後で呼び出し、例
外が生じたところで処理を再開できるようにする。
特に、VPU30がベクターメモリアクセス命令を実行
するときには、デコード及び制御論理回路66がその命
令を実行するに必要な多数のサブ動作を実際に実行する
。例えば、ベクターロード動作については、デコード及
び制御論理回路66が、0番目のエレメントからn番目
のエレメントまでの(n=VLR82の内容−1)各ベ
クターエレメントごとに、次のようなサブ動作を実行す
る。
1、マスク機能の実行; 2、ベクター整列のチエツク;そして 3、ベクターメモリアクセス命令のオペランドから発生
されたアドレスで始めて、対応するベクターエレメント
にメモリ処理ユニット20の次の位置の内容をロードす
る。
ベクター命令の実行に伴う各ベクターレジスタに関連し
ているのは、ベクターレジスタ制御論理回路60の多数
のカウンタ44の1つであり、これは、サブ動作が実行
されるのつれてnからOまでカウントダウンし、そして
関連するベクターレジスタの関連するベクターエレメン
トに対するアドレスを与える。メモリ管理例外によって
ベクター命令が停止された場合には、欠陥命令に関連し
たカウンタ44の1つの値が、その例外が生じたサブ動
作を指示する。この値は、終了されない他の命令に関連
したカウンタと同様に、VPU30の状態情報の一部分
として記憶されるのが好ましい。記憶された状態情報が
VPtJ30に再ロードされ、そしてメモリ管理欠陥が
呼び出されたときには、カウンタ44にサブ動作の値が
再ロードされ、欠陥命令及び全ての未終了の命令を、例
外が生じたところから実行し始めることができる。
このハードウェアは、参考としてここに取り上げる米国
特許出願筒093.499号に開示されている。
ベクターメモリアクセス命令の処理中に、メモリ処理ユ
ニット20がベクターデコード及び制御論理回路66に
メモリ管理例外を知らせた場合には、該論理回路66が
VPSR200のPMFビット260及びMFビット2
50をセットする。
然し乍ら、VPU30は、5PU15G:例外条件を通
知せず、従って、5PU15がスカラー命令の処理を続
行できるようにする。
更に、論理回路66は、例外条件によって有効性が影響
されるようなソースデータをベクター命令が使用しない
限り、VPU30が例外発生時にスタートしたベクター
命令の実行を終了できるようにする。これは、ソース及
び行き先レジスタを検査することによって行なわれる。
第3図について上記したように、アドレス発生器108
.109.110は、ベクター命令に対するデータを含
むベクターレジスタファイル35のベクターレジスタを
識別する。これらの同じアドレス発生器は、ベクター命
令の結果を受け取るベクターレジスタも識別する。欠陥
命令に対するDEST  REG値が別の命令に対する
5OURCE  REG値と同じであると論理回路66
が決定した場合には、上記別の命令も停止される。
メモリ管理例外は、5PU15がベクター命令をVPU
30に送信しようと試みる次のときまで、それ以上処理
されない。そのときには、5PtJ15はベクター命令
をV、PU30に送信する手順の実行を開始し、その好
ましい方法が第15図のフローチャートに示されている
ベクター命令をVPU30に送信する前に、5PU15
は先ずVENビット210をチエツクし、VPU30が
ディスエイブルされたかどうか調べる(ステップ700
)。従って、SPU、15は、本発明による命令阻止手
段として働いて、VPU30がディスエイブルされたこ
とをVENビット210が指示するときにベクター命令
がvPU30へ送られるのを防止する。このような場合
に、5PU15は、メモリ管理例外以外のものが生じた
(少なくとも好ましい実施例において)と結論し、「ベ
クタープロセッサディスエイブルド欠陥」のためのトラ
ップを与える(ステップ710)。この欠陥を取り扱う
ルーチンは、演算取り扱い例外について以下で説明する
。VPU30がディスエイブルされたときを感知しそし
てトラップを設定するための手段は、5PU15の制御
論理ユニット40のマイクロコードの部分又は種々の回
路に含まれている。
VP[J30がディスエイブルされない場合には、5P
UL5がPMFビット260をチエツクする(ステップ
720)。PMFビット260がセットされると、報告
されないメモリ管理例外がある。5PU15はそのビッ
トをリセットしくステップ730)そしてメモリ管理欠
陥ハンドラに入り、ベクタープロセッサメモリ管理例外
を処理する(ステップ735)。この欠陥ハンドラは、
当業者によく知られた標準的なメモリ管理欠陥ハンドラ
である。
PMF260がセットされなかった場合には(ステップ
720)、5PU15が次いでMFビット250をチエ
ツクする(ステップ740)。
MFビット250がセットされて、メモリ例外の原因が
修正されたが、その例外を生じたサブ動作がまだ実行さ
れていないことを指示する場合には、5PUI5がMF
ビットをクリアしくステップ743)そしてVPU30
を再スタートさせて、欠陥メモリ参照を再び試みる(ス
テップ746)。
VPU30が再スタートされた後、又はMFビット25
0がセットされなかった場合には、VPU30の命令待
ち行列(図示せず)がチエツクされてそれがいっばいで
あるかどうか判断される(ステップ750)。もしそう
ならば、再び第15図の手順に入る。VPU30の待ち
行列がいっばいでない場合には、5PU15が次の命令
を発生しくステップ760)、これは、メモリ管理例外
を最初に引き起こした保留中のベクター命令である。
3、茄」口重外 ベクターメモリ管理例外との状態とは異なり、本発明の
好ましい実施例によれば、ベクター演算例外に遭遇する
ベクター命令は常に完了するように実行される。演算例
外が生じた場合には、デホールト又はトランケイテッド
結果がそれに対応するベクターレジスタエレメントに書
き込まれる。
演算例外条件の形式及び行き先レジスタ番号は、VAE
R300の例外条件概要フィールド320に記録される
。VPU3’Oのマスクユニット90は、ベクター命令
に対するEXCビット174を読み取り、例外がイネー
ブルされるかどうか判断する。上記したように、このビ
ットは、浮動アンダーフロー及び整数オーバーフローの
例外をイネーブルする。
EXCビット174が浮動アンダーフロー又は整数オー
バーフローを生じさせる命令に対してセットされた場合
には、VPU30は、浮動小数点アンダーフローに対す
るデホールト指定オペランド値又は整数オーバーフロー
に対する下位ビットを適当な行き先レジスタエレメント
に送り、VPSR200(7)VENビット210をり
IJ 7 (、、そしてVAER300に適当な演算例
外情報を記憶する。VPU30は処理を続ける。VPU
30は、浮動小数点のオーバーフロー、浮動小数点のゼ
ロによる除算、浮動小数点指定オペランド演算の例外(
これらはディスエイブルできない)について同じ手順を
たどる。
VA’ER300のベクター行き先レジスタマスク31
0の16個のベクターレジスタのどれが演算例外の発生
によるデホールト値を受けたかを指示する。形式演算例
外は、浮動小数点アンダーフロー、浮動小数点のゼロに
よる除算、浮動小数点指定オペランド、浮動小数点のオ
ーバーフロー及び整数オーバーフローを含む。ベクター
演算例外が生じたときには、VPU30自体がディスエ
イブルする。VPU30は、例外を生じるベクター命令
及びVPU30に既にあった他の命令の実行を完了する
が、再びイネーブルされるまで5PU15からの次のベ
クター命令の受け入れを拒絶する。VPU30は、VP
SR200のVENビット210にゼロを書き込むこと
によりディスエイブルされる。
VPU30がディスエイブルされたときに5PU15が
後でVPU30にベクター命令を送るつとした場合には
、「ベクタープロセッサディスエイブルド欠陥Jが生じ
る。
4、  スイッチング び  −コードメモリ管理例外
及び演算例外は、VPU30及び5PU15が既に実行
しているプロセス又はプログラムからの命令を実行する
場合には取り扱いが最も困難である。この状態は、文脈
スイッチングが生じたときに発生する。一般に、文脈ス
イッチングの間には多量のシステム「オーバーヘッド」
が費やされ、僅かなセーブであってを、データ処理シス
テムが非常に効率的なものとなる。
第16図は、「最終プロセス」と称する1つのプロセス
の実行が停止されそして「現在プロセス」と称する新た
なプロセスの実行が開始されるときの文脈スイッチング
中に実行される好ましいアルゴリズムのフローチャート
である。文脈スイッチが生じると(ステップ800) 
、5PUI 5は、VPU30がビジーでなくなるまで
待機する(ステップ801)。ビジーでない状態は、ゼ
ロの値を有す6VPSR200(7)BSYビット29
0によって指示される。VPU30がビジーでないと、
5PU15は最終プロセスのスカラー状態情報のみをセ
ーブする(ステップ802)。この状態情報は、最終プ
ロセスに対応するメモリ処理ユニット20内の位置へこ
れを記憶することによってセーブされる。5PUI5は
、それ自身のプロセス状態レジスタ(第14図のPSL
540を参照)を含んでおり、その内容は、最終の5P
U15の状態をセーブする段階の一部分としてセーブさ
れる。この段階中に、5PU15の全てのレジスタの内
容もセーブされる。
V I) U 30の状態情報はこのときには記憶され
ない。これは、V、PU30の状態情報が記憶されたと
きに生じたオーバーヘッドを遅延しそして除去すること
もある。VPU30の状態情報を記憶する場合には、V
PSR200、VAER300、VSAR40Ω及び他
のシステムレジスタの記憶を必要とするだけでなく、よ
り重要なことには、64個のエレメントを各々有する1
6個のベクターレジスタの記憶を必要とし、これはシス
テムリソースの相当の部分を占有する。
次いで、5PU15は、V PSR20,0のVENビ
ット21.0をクリアすることによりVPU30をディ
スエイブルする(ステップ804)。
VENビット210をクリアすると、「ベクタープロセ
ッサディスエイブルド欠陥」に影響を及ぼすことなく現
在プロセスがベクター命令を実行することが防止される
。゛実際(こは、以下で詳細に述べるように、最終プロ
セスに対するVPU30の状態は、現在プロセスがベク
ター命令を実行しない場合には現在プロセスの実行中に
記憶される必要がない。
次いで、現在プロセスのスカラー状態情報は、現在プロ
セスに対応するメモリ処理ユニット20の位置からロー
ドされ(ステップ806)、次いで、現在プロセスが実
行を開始する(ステップ8o8)。現在プロセスのベク
ター状態は文脈スイッチング中にはロードされないので
、VPU30は、ベクター命令を実行するための最終プ
ロセスの状態情報を含んでいる。然し乍ら、VPU30
がディスエイブルされているので、この状態が現在プロ
セスにアクセスすることはない。
第17図は、プロセスが新たな命令を実行し始めるたび
に実行されるべき好ましいアルゴリズムのフローチャー
トである。第17図に示されたステップは、5PUI5
において実行されるのが好ましい。
命令が特権命令であり(ステップ900)そして5PU
15が特権モードにない(ステップ902)場合には、
不法命令トラップが生じ(ステップ904)そして第1
7図に示されたアルゴリズムが完了する。不法命令トラ
ップを取り扱う手順は、特権命令を含むほとんどの各デ
ータ処理システムに一共通であり、当業者によく知られ
ている。
命令が特権命令であり(ステップ900)そして5PU
15が特権モードにある(ステップ902)場合には、
その命令が実行される(ステップ905)。
命令が特権命令でなく (ステップ900)そしてベク
ター命令でない(ステップ908)場合には、5PUI
5がその命令を実行する(ステップ910)。然し乍ら
、命令がベクター命令である(ステップ908)場合に
は、制御論理ユニット40のマイクロコードがVPSR
200のVENビット210をテストする(ステップ9
12)。
VEN210がセットされて、VPU30がイネーブル
されたことを指示する場合には、VPU30がその命令
を実行する(ステップ914)。
VENビット210がセットされない(ステップ912
)場合は、「ベクタープロセッサディスエイブルド欠陥
」が生じる(ステップ916)。
上記したように、現在プロセスがまだベクター命令を実
行しないとき或いは演算例外条件が生じた場合には、V
ENビット210はセットされない。
VENビット210がセットされないときに現在プロセ
スがベクター命令を実行しようとする場合には、システ
ムは、現在プロセスのベクター状態がメモリヘスイッチ
されることと、現在プロセスのベクター命令が実行され
る前に例外条件が処理されることとを確保しなければな
らない。
第18図は、第17図のステップ916に示されたよう
な「ベクタープロセッサディスエイブルド欠陥」を処理
するための好ましいアルゴリズムのフローチャートであ
る。このアルゴリズムの目的は3つある。即ち、(1)
ベクター例外条件を処理すること、(2)ベクター命令
を最後に実行したプロセスからの全てのVPU30状態
情報を記憶すること、及び(3)現在プロセスに対しV
PU30の状態情報を検索することである。上記(2)
及び(3)は、現在プロセスがVPU30を最後に用い
たプロセスと同じである場合には必要でない。前記の(
1)は、例外条件が保留中であるときのみ必要である。
然し乍ら、上記項目(1)、(2)及び(3)は、現在
実行しているプロセスがベクター命令を実行する前に全
て完了されねばならない。
「ベクタープロセッサディスエイブルド欠陥J動作の第
1ステツプは、現在プロセス及び最終プロセスの識別子
に対して指定されたメモリ位置に記憶されたプロセス識
別番号を比較することにより、現在プロセスがベクター
命令を実行するためにVPU30を使用した最後のプロ
セスでもあるかどうかを判断することである(ステップ
1000)。或いは又、この動作は、5PU15に設け
られた特殊なハードウェアレジスタによって行なうこと
もできる。ステップ1000の判断が「イエス」である
場合には、VPU30に対する状態情報を更新すること
は不要である。ステップ1000の判断が「イエス」で
ある場合には、保留中の演算又はメモリ管理例外条件が
あるかどうかの判断が行なわれる(ステップ1002)
。上記したように、公知のシステムとは異なり、データ
処理システム10は、例外が生じたときにそれを処理す
るのではなく、VPU30が次に使用されるときにそれ
を処理する。これは、VPU30がそのベクター状態情
報をセーブしそして現在プロセスに対するベクター状態
情報を検索するのと同時である。−例外条件の存在は、
VPSR200のPMFビット260(メモリ管理例外
)及びAEXビット270(演算例外)を5PU15が
検査することによって判断される。
保留中の演算例外がある場合には、AEXビット270
がクリアされ(ステップ1003)そしてデータ処理分
野の当業者に知られた手順に従って例外に適したやり方
で例外が処理される(ステップ1004)。保留中の演
算例外状態がない場合には(ステップ1002)、最後
の「ベクタープロセッサディスエイブルド欠陥」以来に
文脈スイッチが生じたかどうか判断することが必要であ
る。現在プロセスがVPU30を最後に用いたプロセス
と同じであり(ステップ1000)、それ故、VPU3
0のベクター状態情報をセーブ又は復帰する必要がない
場合には、通常のスカラー処理によ”って作用されるV
PU30のレジスタを更新することが必要である。例え
ば、VPU30が5PU15に配置されたメモリ管理レ
ジスタのコピーを含む場合には、VPU30のレジスタ
がそれらの内容を5PU15のレジスタの内容と合致さ
せるために各文脈スイッチの後に更新されねばならない
次イテ、VPU30は、VENビット210をセットす
ることによりイネーブルされる(ステップ1010)。
次いで、第17図の命令デコードアルゴリズムのステッ
プBに制御が復帰しくステップ1012)、現在プロセ
スが新たな命令の実行を開始する。
現在プロセスがVPU30を最後に使用したプロセスと
同じでない場合には(ステップ1000)、多数のステ
ップが生じる。5PU15は、先ず、VPU30がベク
ター命令を実行しなくなるまで待機する(ステップ10
14)。この非ビジー状態は、VPSR200のBSY
ビット290の0値によって指示される。第2に、保留
中の演算例外が存在するかどうか判断される(ステップ
1016)。VPSR200のAEXビット270がセ
ットされて、保留演算例外の存在を指示する場合には、
VAER300に含まれた演算例外状態がセーブされ、
VPU30を用いる最後のプロセスについての演算例外
の存在がその後の処理のために注目される(ステップl
 Ol 8)。このような例外の表示は、VPU30を
用いる最後のプロセスに関連したソフトウェアフラグに
よって達成される。
次のステップは、保留中の非同期メモリ管理例外が存在
するかどうか判断することである(ステップ1020)
。好ましくは、このような例外の存在がVPSR200
のMFビット250の1の値によって指示された場合に
は、VPU3 Qを使用する最後のプロセスに関連した
ソフトウェアフラグがセットされ、そのプロセスに対し
て実行特定ベクター情報がセーブされる(ステップ1゜
22)。
次いで、VPU30は、VPSR200のVENビット
210をセットすることによってイネーブルされそして
VPU30は、VPSR300のR3Tビット200を
セットすることによってリセットされる(ステップ10
24)。現在プロセスは、VpH30を最後に用いたプ
ロセスと同じではないから(ステップ1000)、VP
U30の状態情報を更新しなければならない。これは2
つのステップで行なわれる。先ず、第1に、VPU30
の状態情報は、VPU30を最後に使用したプロセスに
対応するメモリ処理ユニット20の領域に記憶される(
ステップ1026)。仮想アドレス及びメモリ保護機能
を実行するためにSPU、、15にメモリ管理レジスタ
が設けられていると共にVPU30に対応するメモリ管
理レジスタが設けられている。この場合、VPU30の
メモリ管理レジスタは、5PU15の対応するメモリ管
理レジスタに合致させるために更新する必要がある。次
いで、現在プロセスに対するVPU30の状態情報が現
在プロセスに対応するメモリ処理ユニット20の領域か
ら検索され、VPU30のベクターレジスタに記憶され
る(ステップ1027)と共に、現在プロセスの識別番
号がメモリ位置に記憶されるか又は最後のベクタープロ
セスを識別するために指定された特殊なハードウェアレ
ジスタに記憶される。
次いで、現在プロセスに関連したソフトウェアフラグを
チエツクし、現在プロセスに対して保留中の非同期メモ
リ管理例外があるがどうが判断される(ステップ102
8)。このような保留中の例外が存在する場合には、現
在プロセスに対するソフトウェアフラグがクリアされ、
非同期メモリ管理例外時のベクター状態が復帰される(
ステップ1030)。これは、VPU30のレジスタに
ついて前記したように、セーブされたベクター状態情報
のアドレスをVSAR400に書き込みそしてVPsR
300(7)RLDビット240及びVENビット21
0をセットすることにより達成される。
次いで、現在プロセスに関連したソフトウェアフラグを
チエツクし、現在プロセスに対して保留中の演算例外が
あるかどうが判断される(ステップ1032)。このよ
うな保留中の例外が存在する場合には、VPSR300
のビットVEN210がクリアされ、VPU30をディ
スエイブルし、ステップ1004と同様に、データ処理
の分野の当業者に知られたやり方で、演算例外が処理さ
れる(ステップ1034)。
第18図のFベクタープロセッサディスエイブルド欠陥
」取り扱いアルゴリズムが完了したときには(ステップ
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図のデータ処理システムによって行なわれる好
ましいて順を示すフローチャートである。 IO・・・データ処理システム 15・・・スカラー処理ユニット(SPU)20・・・
メモリ処理ユニット 25・・・命令処理ユニット(IPU)30・・・ベク
ター処理ユニット(vpu)35・・・ベクターレジス
タファイル 40・・・制御論理ユニット 50・・・命令パーサ 60・・・制御論理回路 70・・・ベクター乗算器 80・・・ベクター加算器 90・・・マスクユニット +03・・・制御ワードデコーダエレメント104・・
・ディスパッチ形式論理回路105・・・制御ワード形
式論理回路 106・・・OPコードデコード論理回路107・・・
発行判断論理回路 +08.109.110・・・アドレス発生器+15・
・・命令バッファ 116・・・マルチプレクサ 1/10・・・ベクター制御ワード指定子150・・・
OPコードフィールド 152・・・オペランドポインタ部分 +54−158・・・オペランド指定子160・・・ベ
クター制御ワード l E52・・・フラグフィールド 163.164.165・・・ベクターレジスタ指定子 170・・・マスク動作イネーブルフラグ172 ・ 174 ・ 182  ・ 190  ・ 192  ・ ・一致真/偽フラグ ・例外イネーブルフラグ ・ベクター長さレジスタ ・ベクター結果 ・行き先レジスタ 図面の浄書(内容に変更なし) 第 図 メモリ管工里欠陥スタ・ンフフレーム 第 図 ↓ 第 10図 命令の処理 命令デコード 第17図 平成 年 月 日

Claims (16)

    【特許請求の範囲】
  1. (1)ベクター命令及びスカラー命令を実行することの
    できるデータ処理システムにおいて、上記ベクター命令
    はベクター量に基づくデータ処理演算含むものであり、
    そして上記スカラー命令は非ベクター量に基づくデータ
    処理演算を含むものであり、上記データ処理システムは
    、 スカラー命令を実行するためのスカラー処理手段と、 上記スカラー処理手段によるスカラー命令の実行と同時
    にベクター命令を実行するためのベクター処理手段とを
    具備し、このベクター処理手段は、 例外状態に応答して上記ベクター処理手段 をディスエイブルするための例外制御手段と、上記例外
    制御手段に接続され、ベクター処 理手段がディスエイブルされたことを指示するためのデ
    ィスエイブル指示手段とを備え、 更に、スカラー命令及びベクター命令を識別してこれら
    命令を上記スカラー処理手段及びベクター処理手段に各
    々送給する命令デコード手段と、上記命令デコード手段
    及び上記ディスエイブル指示手段に接続され、上記ディ
    スエイブル指示手段が上記ベクター処理手段がディスエ
    イブルされたことを指示するときに上記命令デコード手
    段がベクター命令を上記ベクター処理手段に送給しない
    ように阻止すると共に、上記ディスエイブル指示手段の
    状態に拘りなく上記命令デコード手段が上記スカラー処
    理手段へ命令を送給し続けることができるようにするた
    めの制御ディスエイブル手段とを具備し、 これにより、上記スカラー処理手段は、上記ベクター処
    理手段における例外状態の発生に拘りなく上記スカラー
    命令の実行を続けることを特徴とするデータ処理システ
    ム。
  2. (2)上記例外制御手段は、演算例外を識別するための
    手段を備えている請求項1に記載のデータ処理システム
  3. (3)上記ベクター処理手段に接続されていてベクター
    演算例外を処理するためのベクター演算例外処理手段を
    更に備えている請求項2に記載のデータ処理システム。
  4. (4)上記ベクター演算手段は、浮動小数点アンダーフ
    ロー例外を処理するための手段を備えている請求項3に
    記載のデータ処理手段。
  5. (5)上記ベクター演算手段は、浮動小数点のゼロ除算
    例外を処理するための手段を備えている請求項3に記載
    のデータ処理システム。
  6. (6)上記ベクター演算手段は、浮動小数点指定オペラ
    ンド例外を処理するための手段を備えた請求項3に記載
    のデータ処理システム。
  7. (7)上記ベクター演算手段は、浮動小数点オーバーフ
    ロー例外を処理するための手段を備えた請求項3に記載
    のデータ処理システム。
  8. (8)上記ベクター演算手段は、整数オーバーフロー例
    外状態を処理するための手段を備えている請求項3に記
    載のデータ処理システム。
  9. (9)上記例外制御手段は、該手段が上記ベクター処理
    手段をディスエイブルしないような演算例外状態の幾つ
    かの形式を識別するための例外選択手段を備えている請
    求項2に記載のデータ処理システム。
  10. (10)上記例外制御手段は、上記幾つかの形式の例外
    状態が生じたときに上記ベクター処理手段がディスエイ
    ブルされないように阻止する例外選択手段を備えている
    請求項9に記載のデータ処理システム。
  11. (11)上記例外選択手段は、浮動小数点アンダーフロ
    ー例外状態が生じたときに上記ベクター処理手段がディ
    スエイブルされないように阻止する手段を備えている請
    求項10に記載のデータ処理システム。
  12. (12)上記例外選択手段は、整数オーバーフロー例外
    状態が生じたときに上記ベクター処理手段を阻止する手
    段を備えた請求項10に記載のデータ処理システム。
  13. (13)上記ベクター処理手段は、ベクター処理情報を
    セーブするためのベクター記憶手段を備えている請求項
    1に記載のデータ処理システム。
  14. (14)上記スカラー処理手段は、上記ベクター処理手
    段におけるベクター処理情報を検査するための制御論理
    手段を備えている請求項13に記載のデータ処理システ
    ム。
  15. (15)ベクター命令及びスカラー命令を実行すること
    のできるデータ処理システムにおいて、上記ベクター命
    令はベクター量に基づくデータ処理演算を含むものであ
    り、そして上記スカラー命令は非ベクター量に基づくデ
    ータ処理演算を含むものであり、上記データ処理システ
    ムは、 スカラー命令を実行するためのスカラー処理手段であっ
    て、制御論理手段を含んでいるスカラー処理手段と、 上記スカラー処理手段に接続され、上記スカラー処理手
    段によるスカラー命令の実行と同時にベクター命令を実
    行するためのベクター処理手段とを具備し、このベクタ
    ー処理手段は、 例外状態に応答して、上記ベクター処理手 段をディスエイブルするための例外制御手段であって、
    演算例外状態及びメモリ管理例外状態を識別するための
    手段と、この例外制御手段が上記ベクター処理手段をデ
    ィスエイブルしないような演算例外状態の幾つかの形式
    を識別するための例外選択手段とを含んでいる例外制御
    手段と、 この例外制御手段に接続され、ベクター処 理手段がディスエイブルされたことを指示するためのデ
    ィスエイブル指示手段と、 ベクター演算例外を処理するためのベクタ ー演算例外処理手段と、 ベクター処理情報をセーブするための記憶 手段と、 上記スカラー処理手段から受け取ったベク ター命令をデコードするための命令デコード手段とを備
    えており、そして 更に、上記スカラー処理手段に接続されていて、上記ベ
    クター記憶手段によって記憶されたベクター処理情報を
    検査するための制御論理手段と、ベクター命令及びスカ
    ラー命令を識別しそしてこれらの命令を上記スカラー処
    理手段及び上記ベクター処理手段に各々送給するための
    命令デコード手段と、 この命令デコード手段及び上記ディスエイブル指示手段
    に接続され、上記ディスエイブル指示手段が上記ベクタ
    ー処理手段がディスエイブルされたことを指示する、と
    きに上記命令デコード手段がベクター命令を上記ベクタ
    ー処理手段に送給するのを阻止すると共に、上記命令デ
    コード手段が上記ディスエイブル指示手段の状態に拘り
    なく命令を上記スカラー処理手段に送給し続けることが
    できるようにするための制御ディスエイブル手段とを具
    備し、 これにより、上記スカラー処理手段は、上記ベクター処
    理手段における例外状態の発生に拘りなく上記スカラー
    命令の実行を続け、そしてこれにより、上記制御ディス
    エイブル手段は、上記データ処理システムが上記ベクタ
    ー演算例外状態を処理した後に、上記命令デコード手段
    を再イネーブルしてベクター命令を上記ベクター処理手
    段に送給することを特徴とするデータ処理システム。
  16. (16)データ処理システムによってベクター命令及び
    スカラー命令を処理する方法であって、上記ベクター命
    令はベクター量に基づくデータ処理演算を含むものであ
    り、そして上記スカラー命令は非ベクター量に基づくデ
    ータ処理演算を含むものであり、上記方法は、 ベクタープロセッサ及びスカラープロセッサによって各
    々処理されるべきベクター命令及びスカラー命令を送給
    し、 上記スカラープロセッサにおいてスカラー命令を実行し
    、 ベクタープロセッサがイネーブルされたときにスカラー
    命令の実行と同時に上記ベクタープロセッサにおいてベ
    クター命令を実行し、 上記ベクター命令の実行中に例外状態の存在を検出して
    指示を、 上記スカラー命令の実行に割り込むことなくベクタープ
    ロセッサをディスエイブルすることによって上記例外状
    態の発生の指示を記憶し、そして 上記ベクタープロセッサがディスエイブルされたときに
    上記ベクタープロセッサがベクター命令を実行しようと
    した際にベクタープロセッサディスエイブルド欠陥と考
    えることを特徴とする方法。
JP1065832A 1988-03-18 1989-03-17 ベクタープロセッサの例外報告機構 Pending JPH0250260A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US170393 1988-03-18
US07/170,393 US5043867A (en) 1988-03-18 1988-03-18 Exception reporting mechanism for a vector processor

Publications (1)

Publication Number Publication Date
JPH0250260A true JPH0250260A (ja) 1990-02-20

Family

ID=22619690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1065832A Pending JPH0250260A (ja) 1988-03-18 1989-03-17 ベクタープロセッサの例外報告機構

Country Status (4)

Country Link
US (1) US5043867A (ja)
EP (1) EP0335514A3 (ja)
JP (1) JPH0250260A (ja)
CA (1) CA1297591C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005639A (ja) * 1999-06-21 2001-01-12 Toshiba Corp 浮動小数点演算装置
JP2014532221A (ja) * 2011-09-28 2014-12-04 エイアールエム リミテッド 乳幼児のためのインタラクションサービスを提供する装置及び方法、これを利用したシステム
JP2016509716A (ja) * 2013-01-23 2016-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ベクトル例外コードを処理するコンピュータ・プログラム、コンピュータ・システム及び方法

Families Citing this family (26)

* 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
US5134693A (en) * 1989-01-18 1992-07-28 Intel Corporation System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel
JP2581236B2 (ja) * 1989-11-16 1997-02-12 三菱電機株式会社 データ処理装置
US5544337A (en) * 1989-12-29 1996-08-06 Cray Research, Inc. Vector processor having registers for control by vector resisters
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5623650A (en) * 1989-12-29 1997-04-22 Cray Research, Inc. Method of processing a sequence of conditional vector IF statements
US5598547A (en) * 1990-06-11 1997-01-28 Cray Research, Inc. Vector processor having functional unit paths of differing pipeline lengths
US5410657A (en) * 1992-10-09 1995-04-25 International Business Machines Corporation Method and system for high speed floating point exception enabled operation in a multiscalar processor system
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
US5481719A (en) * 1994-09-09 1996-01-02 International Business Machines Corporation Exception handling method and apparatus for a microkernel data processing system
JP3495173B2 (ja) * 1996-02-14 2004-02-09 富士通株式会社 演算処理方法および演算処理装置
US6304963B1 (en) * 1998-05-14 2001-10-16 Arm Limited Handling exceptions occuring during processing of vector instructions
CN104169867B (zh) * 2011-12-23 2018-04-13 英特尔公司 用于执行掩码寄存器至向量寄存器的转换的系统、装置和方法
WO2013095661A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Systems, apparatuses, and methods for performing conversion of a list of index values into a mask value
JP5651622B2 (ja) * 2012-03-07 2015-01-14 株式会社東芝 データ伝送装置、データ伝送方法、及びプログラム
US9298497B2 (en) * 2012-07-13 2016-03-29 Wisconsin Alumni Research Foundation Computer processor providing exception handling with reduced state storage
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
CN105431819A (zh) 2013-09-06 2016-03-23 华为技术有限公司 异步处理器消除亚稳态的方法和装置
US9569127B2 (en) 2014-12-29 2017-02-14 International Business Machines Corporation Computer instructions for limiting access violation reporting when accessing strings and similar data structures
US9703721B2 (en) 2014-12-29 2017-07-11 International Business Machines Corporation Processing page fault exceptions in supervisory software when accessing strings and similar data structures using normal load instructions
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures

Family Cites Families (13)

* 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
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS58114274A (ja) * 1981-12-28 1983-07-07 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 ベクトル・デ−タ処理装置の制御方式
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
JPS60103482A (ja) * 1983-10-24 1985-06-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトル処理能力を有するデ−タ処理装置
US4791560A (en) * 1985-07-31 1988-12-13 Unisys Corporation Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
US4809157A (en) * 1985-09-30 1989-02-28 International Business Machines Corp. Dynamic assignment of affinity for vector tasks
JP2610821B2 (ja) * 1986-01-08 1997-05-14 株式会社日立製作所 マルチプロセツサシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005639A (ja) * 1999-06-21 2001-01-12 Toshiba Corp 浮動小数点演算装置
JP2014532221A (ja) * 2011-09-28 2014-12-04 エイアールエム リミテッド 乳幼児のためのインタラクションサービスを提供する装置及び方法、これを利用したシステム
JP2016509716A (ja) * 2013-01-23 2016-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ベクトル例外コードを処理するコンピュータ・プログラム、コンピュータ・システム及び方法

Also Published As

Publication number Publication date
CA1297591C (en) 1992-03-17
EP0335514A3 (en) 1991-04-24
EP0335514A2 (en) 1989-10-04
US5043867A (en) 1991-08-27

Similar Documents

Publication Publication Date Title
JPH0250260A (ja) ベクタープロセッサの例外報告機構
US5113521A (en) Method and apparatus for handling faults of vector instructions causing memory management exceptions
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
US4755966A (en) Bidirectional branch prediction and optimization
EP0547240B1 (en) Risc microprocessor architecture implementing fast trap and exception state
US4740893A (en) Method for reducing the time for switching between programs
US4745547A (en) Vector processing
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4715013A (en) Coprocessor instruction format
JP3663317B2 (ja) コンピュータ・システム
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
JP3439033B2 (ja) 割り込み制御装置及びプロセッサ
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US5021991A (en) Coprocessor instruction format
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
US5841999A (en) Information handling system having a register remap structure using a content addressable table
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US4994961A (en) Coprocessor instruction format
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor