JPH0242569A - ベクター処理システムに用いる文脈スイッチング方法及び装置 - Google Patents
ベクター処理システムに用いる文脈スイッチング方法及び装置Info
- Publication number
- JPH0242569A JPH0242569A JP1063418A JP6341889A JPH0242569A JP H0242569 A JPH0242569 A JP H0242569A JP 1063418 A JP1063418 A JP 1063418A JP 6341889 A JP6341889 A JP 6341889A JP H0242569 A JPH0242569 A JP H0242569A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- scalar
- data processing
- processing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、D、バンダーカー氏等の[ベクタープロセッ
サのための例外的レボ−ティング機構(Excepti
on Repcrting Mechanism fo
r a VectorProcessor) Jと題す
る米国特許出願;D、バンダーカー氏等の[ベクター処
理システムの命令を実行する方法及び装置(Metho
d and Apparatus forExecut
ing In5tructions for a Ve
ctor Processing System) J
と題する米国特許出願;及びF。
サのための例外的レボ−ティング機構(Excepti
on Repcrting Mechanism fo
r a VectorProcessor) Jと題す
る米国特許出願;D、バンダーカー氏等の[ベクター処
理システムの命令を実行する方法及び装置(Metho
d and Apparatus forExecut
ing In5tructions for a Ve
ctor Processing System) J
と題する米国特許出願;及びF。
マッキーン氏等の「ベクタープロセッサによる非同期メ
モリ管理の例外を取り扱う方法及び装置(Method
and Apparatus for Ha
ndling Asynchro−nous Mem
ory Management Exceptions
by a Vector Processor)Jと
題する米国特許出願に関連したものである。
モリ管理の例外を取り扱う方法及び装置(Method
and Apparatus for Ha
ndling Asynchro−nous Mem
ory Management Exceptions
by a Vector Processor)Jと
題する米国特許出願に関連したものである。
本発明は、一般に、ベクター処理を行なうデータ処理シ
ステムに係り、より詳細には、多数のプロセス(その全
てがベクター処理を必要とするのではないが)を実行す
ることのできるデータ処理システムに係る。
ステムに係り、より詳細には、多数のプロセス(その全
てがベクター処理を必要とするのではないが)を実行す
ることのできるデータ処理システムに係る。
従来の技術
ある高性能のデータ処理システムは、主即ちスカラープ
ロセッサに加えて、ベクター命令を迅速且つ効率的に処
理するための個別のベクタープロセッサを備えている。
ロセッサに加えて、ベクター命令を迅速且つ効率的に処
理するための個別のベクタープロセッサを備えている。
ベクター命令は、ベクターとして表わされたデータに基
づいて記憶、演算又は論理操作を実行するよ−うにプロ
セッサに指示する。主即ち「スカラー」プロセッサは、
「スカラー」命令としばしば称する他の命令を処理する
。
づいて記憶、演算又は論理操作を実行するよ−うにプロ
セッサに指示する。主即ち「スカラー」プロセッサは、
「スカラー」命令としばしば称する他の命令を処理する
。
スカラー命令は、例えば、論理及びスカラーデータに基
づいて記憶、演算又は論理操作を実行するようにプロセ
ッサに指示する。
づいて記憶、演算又は論理操作を実行するようにプロセ
ッサに指示する。
マルチタスク(即ち、多数の異なったタスク又はプロセ
ス)を実行するデータ処理システムは、ベクターレジス
タの特殊な取り扱いを必要とする。
ス)を実行するデータ処理システムは、ベクターレジス
タの特殊な取り扱いを必要とする。
例えば、IBM3090はマルチタスクを実行し、CP
Uはその注意を複数のプロセス間に振り分ける。各プロ
セスが短い時間中に実行された後に、主メモリの切り換
えが行なわれ、別のプロセスが実行される。この切り換
えプロセスを[文脈切り換え(コンチクストスイッチ)
」と称する。プロセスが「スイッチアウトされる」たび
に、マシーンの現在状態即ち文脈がセーブされて、スイ
ッチインされるべき次のプロセスの状態情報が復帰され
る。
Uはその注意を複数のプロセス間に振り分ける。各プロ
セスが短い時間中に実行された後に、主メモリの切り換
えが行なわれ、別のプロセスが実行される。この切り換
えプロセスを[文脈切り換え(コンチクストスイッチ)
」と称する。プロセスが「スイッチアウトされる」たび
に、マシーンの現在状態即ち文脈がセーブされて、スイ
ッチインされるべき次のプロセスの状態情報が復帰され
る。
状態情報は、フラグ(例えば、例外イネーブルフラグ、
等)、状態ワード(例えば、プロセッサ状態ワード、プ
ログラムカウンタ、等)、スカラーレジスタ及びベクタ
ーレジスタのようなエレメントを含むことができる。こ
の全ての情報は、「スイッチアウト」されたプロセスが
、後で「スイッチイン」されるときに、それが「スイッ
チアウト」されたときに保留されたところで正確に処理
を再開できるように記憶されねばならない。特に、ベク
ターレジスタに記憶するためには、文脈スイッチングに
関連したオーバーヘッドがかなりのものとなる。典型的
なベクタープロセッサは、レジスタ当たり32ないし1
28個のエレメントで8ないし16個のベクターレジス
タを含む。このようなレジスタに記憶する場合には、2
56ないし2048個のレジスタエレメントの内容を記
憶したり復帰したりすることが必要である。
等)、状態ワード(例えば、プロセッサ状態ワード、プ
ログラムカウンタ、等)、スカラーレジスタ及びベクタ
ーレジスタのようなエレメントを含むことができる。こ
の全ての情報は、「スイッチアウト」されたプロセスが
、後で「スイッチイン」されるときに、それが「スイッ
チアウト」されたときに保留されたところで正確に処理
を再開できるように記憶されねばならない。特に、ベク
ターレジスタに記憶するためには、文脈スイッチングに
関連したオーバーヘッドがかなりのものとなる。典型的
なベクタープロセッサは、レジスタ当たり32ないし1
28個のエレメントで8ないし16個のベクターレジス
タを含む。このようなレジスタに記憶する場合には、2
56ないし2048個のレジスタエレメントの内容を記
憶したり復帰したりすることが必要である。
IBM3090は、文脈スイッチ動作が生じるたびに各
ベクターレジスタをスイッチアウトするのを回避するた
めに書き込みフラグを用いている。ベクターレジスタが
プロセスの実行中まで書き込まれるときには、それに対
応する書き込みフラグがセットされる。現在プロセスが
スイッチアウトされるときには、プロセスの実行中まで
書き込まれたベクターレジスタの内容のみがセーブされ
る。これでは、オペレーティングシステムは、最後のセ
ーブ以来変更されたレジスタの内容しかセーブできない
が、著しいハードウェア及びソフトウェアを犠牲にする
。
ベクターレジスタをスイッチアウトするのを回避するた
めに書き込みフラグを用いている。ベクターレジスタが
プロセスの実行中まで書き込まれるときには、それに対
応する書き込みフラグがセットされる。現在プロセスが
スイッチアウトされるときには、プロセスの実行中まで
書き込まれたベクターレジスタの内容のみがセーブされ
る。これでは、オペレーティングシステムは、最後のセ
ーブ以来変更されたレジスタの内容しかセーブできない
が、著しいハードウェア及びソフトウェアを犠牲にする
。
この手順では文脈スイッチのたびにセーブする必要のあ
るベクターレジスタの数が減少されるが、次のプロセス
を実行する前に全てのベクターレジスタに対して新しい
レジスタ値を復帰しなければならない。次のプロセスの
実行にいずれかのベクターレジスタの内容が必要とされ
るかどうかを確かめる試みはなされないので、このよう
な努力は不要であった。
るベクターレジスタの数が減少されるが、次のプロセス
を実行する前に全てのベクターレジスタに対して新しい
レジスタ値を復帰しなければならない。次のプロセスの
実行にいずれかのベクターレジスタの内容が必要とされ
るかどうかを確かめる試みはなされないので、このよう
な努力は不要であった。
従って、各文脈スイッチごとに古い状態をセーブしそし
て新たな状態を復帰するには、たとえIBM3090で
部分的に行なうだけであっても、特に非常に多数のプロ
セスがプロセッサを共有するときには著しいオーバーヘ
ッドを生じるが、ベクター命令を使用するのはほんの僅
かなプロセスだけである。
て新たな状態を復帰するには、たとえIBM3090で
部分的に行なうだけであっても、特に非常に多数のプロ
セスがプロセッサを共有するときには著しいオーバーヘ
ッドを生じるが、ベクター命令を使用するのはほんの僅
かなプロセスだけである。
発明が解決しようとする課題
そこで、本発明の目的は、多数のプロセスを実行するデ
ータ処理システムにおいてベクターレジスタ及びフラグ
の記憶及び検索を効率的に管理することである。
ータ処理システムにおいてベクターレジスタ及びフラグ
の記憶及び検索を効率的に管理することである。
本発明の別の目的は、ベクタープロセッサに対する状態
情報の記憶及び検索を最小限にすることである。
情報の記憶及び検索を最小限にすることである。
本発明の更に別の目的及び効果は、その一部分が以下の
説明に述べられておりそしてその一部分が以下に説明に
おいて明らかであり、もしくは本発明を実施することに
よって学び取ることができよう。本発明の目的及び効果
は、特に特許請求の範囲に指摘された要素及びその組合
せによって実現及び達成されよう。
説明に述べられておりそしてその一部分が以下に説明に
おいて明らかであり、もしくは本発明を実施することに
よって学び取ることができよう。本発明の目的及び効果
は、特に特許請求の範囲に指摘された要素及びその組合
せによって実現及び達成されよう。
課題を解決するための手段
本発明の目的を達成するためにそして本発明の目的によ
れば、ここで実施して広く説明するように、複数のプロ
セスを順次に実行する本発明のデータ処理システムは、
メモリと、ベクター処理手段と、ベクター命令識別手段
と、最終ユーザ識別手段と、セーブ手段とを備えている
。メモリは、データ処理システムによって実行されるべ
きプロセスの1つ1つに各々対応する複数の部分を有し
ている。ベクター処理手段は、プロセスにおけるベクタ
ー命令を実行するものであり、このベクター処理手段の
実行状態を示す状態情報を記憶するためのベクター状態
手段を備えている。ベクター命令識別手段は、現在プロ
セス(即ち、現在実行されているプロセス)がベクター
命令を実行しようとするときを確認し、そして最終ユー
ザ指示手段は、ベクタープロセッサが最も最近にベクタ
ー命令を実行したところのプロセスを最終ベクターユー
ザプロセスとして識別する。セーブ手段は、ベクター命
令識別手段及び最終ユーザ指示手段に応答して、現在プ
ロセスがベクター命令を実行しようとすること及び最終
ベクターユーザプロセスが現在プロセスと異なることの
両方をベクター命令識別手段が確認するときに、データ
処理システムが最終ベクターユーザプロセスに対応する
位置においてメモリにベクター状態情報を記憶するよう
にさせる。
れば、ここで実施して広く説明するように、複数のプロ
セスを順次に実行する本発明のデータ処理システムは、
メモリと、ベクター処理手段と、ベクター命令識別手段
と、最終ユーザ識別手段と、セーブ手段とを備えている
。メモリは、データ処理システムによって実行されるべ
きプロセスの1つ1つに各々対応する複数の部分を有し
ている。ベクター処理手段は、プロセスにおけるベクタ
ー命令を実行するものであり、このベクター処理手段の
実行状態を示す状態情報を記憶するためのベクター状態
手段を備えている。ベクター命令識別手段は、現在プロ
セス(即ち、現在実行されているプロセス)がベクター
命令を実行しようとするときを確認し、そして最終ユー
ザ指示手段は、ベクタープロセッサが最も最近にベクタ
ー命令を実行したところのプロセスを最終ベクターユー
ザプロセスとして識別する。セーブ手段は、ベクター命
令識別手段及び最終ユーザ指示手段に応答して、現在プ
ロセスがベクター命令を実行しようとすること及び最終
ベクターユーザプロセスが現在プロセスと異なることの
両方をベクター命令識別手段が確認するときに、データ
処理システムが最終ベクターユーザプロセスに対応する
位置においてメモリにベクター状態情報を記憶するよう
にさせる。
本明細書の一部分である添付図面は、本発明の実施例を
示すと共に、以下の説明と共に、本発明の詳細な説明す
るのに役立つものである。
示すと共に、以下の説明と共に、本発明の詳細な説明す
るのに役立つものである。
実施例
以下、添付図面に一例として示された本発明の好ましい
実施例を詳細に説明する。これらの添付図面全体にわた
り、同様の部分は同じ参照番号で示されている。
実施例を詳細に説明する。これらの添付図面全体にわた
り、同様の部分は同じ参照番号で示されている。
A、シスームの− な
本発明によれば、ベクター命令及びスカラー命令を実行
することのできるシステム10のようなデータ処理シス
テムが提供される。第1図は、スカラー処理ユニット(
SPU)15、メモリ処理ユニット20、命令処理ユニ
ット(IPU)25及びベクター処理ユニット(VPU
)30のような種々の要素を備えたデータ処理システム
10を備えている。
することのできるシステム10のようなデータ処理シス
テムが提供される。第1図は、スカラー処理ユニット(
SPU)15、メモリ処理ユニット20、命令処理ユニ
ット(IPU)25及びベクター処理ユニット(VPU
)30のような種々の要素を備えたデータ処理システム
10を備えている。
本発明のデータ処理システムは、スカラー命令を実行す
るためのスカラー処理手段を備えている。本発明の好ま
しい実施例では、5PU15は、IPU25から全ての
命令を受は取り、スカラー命令を実行し、IPU25か
ら受は取ったベクター命令及びベクターデータをVPU
30へ供給する。
るためのスカラー処理手段を備えている。本発明の好ま
しい実施例では、5PU15は、IPU25から全ての
命令を受は取り、スカラー命令を実行し、IPU25か
ら受は取ったベクター命令及びベクターデータをVPU
30へ供給する。
本発明によれば、データ処理システムは、スカラー処理
手段でスカラー命令を実行するのと同時にベクター命令
を実行するためのベクター処理手段も備えている。図示
された実施例では、VPU30は、5PU15でスカラ
ー命令を実行するのと同時にベクター命令を実行する。
手段でスカラー命令を実行するのと同時にベクター命令
を実行するためのベクター処理手段も備えている。図示
された実施例では、VPU30は、5PU15でスカラ
ー命令を実行するのと同時にベクター命令を実行する。
又、VPU30は、以下で述べる多数のベクターレジス
タも含んでいる。
タも含んでいる。
又、本発明のデータ処理システムは、ベクター命令をベ
クター処理手段へそしてスカラー命令をスカラー処理手
段へ送給するための命令デコード手段も備えている。第
1図に示すように、IPU25は、以下で述べるように
メモリ処理ユニット20から受は取った命令を予め処理
するための命令パーサ50を備えている。このパーサ5
0は、スカラー命令及びデータを5PU15へ送ると共
に、ベクター命令及びスカラーデータを5PUI5を経
てVPU30へ送る。5PU15は、ベクター命令及び
データをVPU30へ通すためのマクロコードを含む制
御論理ユニット40を備えている。もちろん、パーサ5
0は、ベクター命令をVPU30に直接送給するように
設計することもできる。VPU30は、IPU25も5
PU15も使用する必要なくメモリ処理ユニット20か
らベクターデータを受は取りそしてアドレス及びベクタ
ーデータをメモリ処理ユニット20へ送給する。
クター処理手段へそしてスカラー命令をスカラー処理手
段へ送給するための命令デコード手段も備えている。第
1図に示すように、IPU25は、以下で述べるように
メモリ処理ユニット20から受は取った命令を予め処理
するための命令パーサ50を備えている。このパーサ5
0は、スカラー命令及びデータを5PU15へ送ると共
に、ベクター命令及びスカラーデータを5PUI5を経
てVPU30へ送る。5PU15は、ベクター命令及び
データをVPU30へ通すためのマクロコードを含む制
御論理ユニット40を備えている。もちろん、パーサ5
0は、ベクター命令をVPU30に直接送給するように
設計することもできる。VPU30は、IPU25も5
PU15も使用する必要なくメモリ処理ユニット20か
らベクターデータを受は取りそしてアドレス及びベクタ
ーデータをメモリ処理ユニット20へ送給する。
メモリ処理ユニット20は、IPU25.5PU15及
びVPU30から制御、アドレス及びデータ信号を受は
取り、これらの信号に応答して仲裁及び処理を行なう。
びVPU30から制御、アドレス及びデータ信号を受は
取り、これらの信号に応答して仲裁及び処理を行なう。
又、データ処理システム10は、別の機能を実行するた
めの別の要素を含むことができるが、本発明を理解する
上でこのような要素を理解する必要はない。
めの別の要素を含むことができるが、本発明を理解する
上でこのような要素を理解する必要はない。
第2図は、VPU30の好ましい実施例を示す図である
。第2図に示されたように、VPU30は、データ処理
システム10の他の部分との主インターフェイスとして
制御論理回路60を備えていると共に、ベクターデータ
アクセス要求に応じるためのベクターレジスタファイル
35を備えている。これらの要求は、書き込み制御信号
及び書き込みアドレスより成る書き込み要求であるか、
又は読み取り制御信号及び読み取りアドレスより成る読
み取り要求である。ベクターレジスタファイル35は、
WT PORTO−WT PORT2と示されそし
て参照番号41−43で指示された複数の書き込みボー
トと、RD PORTO−RD PORT4と示さ
れそして参照番号51−55で指示された複数の読み取
りボートとを含んでいる。書き込みボートは、ベクター
制御論理回路60Jベクター乗算器70又はベクター加
算器80からREAD/WRITE制御信号45及び書
き込みデータを受は取る。
。第2図に示されたように、VPU30は、データ処理
システム10の他の部分との主インターフェイスとして
制御論理回路60を備えていると共に、ベクターデータ
アクセス要求に応じるためのベクターレジスタファイル
35を備えている。これらの要求は、書き込み制御信号
及び書き込みアドレスより成る書き込み要求であるか、
又は読み取り制御信号及び読み取りアドレスより成る読
み取り要求である。ベクターレジスタファイル35は、
WT PORTO−WT PORT2と示されそし
て参照番号41−43で指示された複数の書き込みボー
トと、RD PORTO−RD PORT4と示さ
れそして参照番号51−55で指示された複数の読み取
りボートとを含んでいる。書き込みボートは、ベクター
制御論理回路60Jベクター乗算器70又はベクター加
算器80からREAD/WRITE制御信号45及び書
き込みデータを受は取る。
読み取りボートは、書き込みボートと同様に動作する。
例えば、RD PORTOに対応する読み取りボート
53は、制御論理回路60から、READ/WRITE
制御信号ライン45を経て読み取りイネーブル信号、ベ
クターレジスタ選択信号及びベクターエレメントアドレ
ス信号を受は取る。読み取りボート53のための読み取
りデータはマスクユニット90へ送られる。
53は、制御論理回路60から、READ/WRITE
制御信号ライン45を経て読み取りイネーブル信号、ベ
クターレジスタ選択信号及びベクターエレメントアドレ
ス信号を受は取る。読み取りボート53のための読み取
りデータはマスクユニット90へ送られる。
他の読み取りボートもそれらの制御及びアドレス信号を
制御論理回路60から受は取る。読み取りボート55及
び54からの出力、即ち、各々RD PORTI及び
RD PORT2は、ベクター乗算器70へ接続され
、そして読み取りポート52及び51の出力、各々、R
D PORT3及びRD PORT4は、ベクター
加算器80へ接続される。
制御論理回路60から受は取る。読み取りボート55及
び54からの出力、即ち、各々RD PORTI及び
RD PORT2は、ベクター乗算器70へ接続され
、そして読み取りポート52及び51の出力、各々、R
D PORT3及びRD PORT4は、ベクター
加算器80へ接続される。
ベクターレジスタファイル35は、VPU30によって
処理されたベクターを記憶する複数のベクターレジスタ
(好ましくは、16個)を備えている。各ベクターレジ
スタは、64個のエレメントを有しているのが好ましい
。然し乍ら、ファイル35のサイズは、本発明にとって
重要ではない。
処理されたベクターを記憶する複数のベクターレジスタ
(好ましくは、16個)を備えている。各ベクターレジ
スタは、64個のエレメントを有しているのが好ましい
。然し乍ら、ファイル35のサイズは、本発明にとって
重要ではない。
処理されているベクターの入力の数、即ち、そのベクタ
ーの長さは、制御論理回路60のベクター長さレジスタ
(VLR)182に記憶される。
ーの長さは、制御論理回路60のベクター長さレジスタ
(VLR)182に記憶される。
好ましい実施例では、ベクターが入力を64個まで有す
ることができ、従って、ベクター長さレジスタ182は
、0から64個の入力までのベクター長さを表わすため
に7ビツトの長さになっている。
ることができ、従って、ベクター長さレジスタ182は
、0から64個の入力までのベクター長さを表わすため
に7ビツトの長さになっている。
ベクター加算器80は、ベクターレジスタファイル35
からRD PORT3及びRD PORT4を経て送
られる2つのベクターに対し整数及び浮動小数点の加算
及び減算演算を行なう。加算器80は、幾つかの論理及
びシフト演算も実行するのが好ましい。rREsULT
J と示されたベクター加算器80の出力は、WT
PORTIへのデータ入力となる。又、ベクター加算器
80は、マスクユニット90に接続された例外論理回路
82も備えており、これは、加算器80が条件に応じて
演算を実行して演算の例外条件をマスクユニット90に
通知できるようにする。
からRD PORT3及びRD PORT4を経て送
られる2つのベクターに対し整数及び浮動小数点の加算
及び減算演算を行なう。加算器80は、幾つかの論理及
びシフト演算も実行するのが好ましい。rREsULT
J と示されたベクター加算器80の出力は、WT
PORTIへのデータ入力となる。又、ベクター加算器
80は、マスクユニット90に接続された例外論理回路
82も備えており、これは、加算器80が条件に応じて
演算を実行して演算の例外条件をマスクユニット90に
通知できるようにする。
ベクター乗算器70は、ベクターレジスタファイル35
のRD PORTI及びRD PORT2から受は
取った2つのベクターに対し整数及び浮動小数点の乗算
及び除算演算を実行する。これら入力の積又は商は、r
REsULTJ とも示されたベクターであり、WT
PORT2へ入力データとして送られる。マスクユニ
ット90へ接続された例外論理回路72は、乗算器70
による乗算又は除算から演算の例外条件が生じたときに
それをマスクユニット90に指示する。
のRD PORTI及びRD PORT2から受は
取った2つのベクターに対し整数及び浮動小数点の乗算
及び除算演算を実行する。これら入力の積又は商は、r
REsULTJ とも示されたベクターであり、WT
PORT2へ入力データとして送られる。マスクユニ
ット90へ接続された例外論理回路72は、乗算器70
による乗算又は除算から演算の例外条件が生じたときに
それをマスクユニット90に指示する。
マスクユニット90は、ベクターレジスタファイル35
からRD PORTOを経てデータを受は取り、第2
図に示すVECTORDATAラインを経てVPU30
から5PU15へベクターデータを供給する。又、マス
クユニット9oは、RD PORTOがらデータを読
み取り、それをメモリ処理ユニット20のアドレスに変
換することができる。更に、マスクユニット90は、例
外論理回路72及び82に接続されていて、それらの例
外条件をラッチする。
からRD PORTOを経てデータを受は取り、第2
図に示すVECTORDATAラインを経てVPU30
から5PU15へベクターデータを供給する。又、マス
クユニット9oは、RD PORTOがらデータを読
み取り、それをメモリ処理ユニット20のアドレスに変
換することができる。更に、マスクユニット90は、例
外論理回路72及び82に接続されていて、それらの例
外条件をラッチする。
マスクユニット90には、64ビツトのベクターマスク
レジスタ92が含まれている。レジスタ92の各ビット
は、所与のベクターレジスタにおける64個のベクター
エレメントの各々に対応し、その対応するベクターエレ
メントがイネーブルされて処理されるべきであるがどう
かを指示する。マスク、レジスタ92には、5PUI5
がら制御論理回路60を経てデータをロードすることが
できる。ベクターマスクレジスタ92は、ベクターレジ
スタ内のイネーブルされたエレメントからの結果のみが
記憶されるように確保するのが好ましい。
レジスタ92が含まれている。レジスタ92の各ビット
は、所与のベクターレジスタにおける64個のベクター
エレメントの各々に対応し、その対応するベクターエレ
メントがイネーブルされて処理されるべきであるがどう
かを指示する。マスク、レジスタ92には、5PUI5
がら制御論理回路60を経てデータをロードすることが
できる。ベクターマスクレジスタ92は、ベクターレジ
スタ内のイネーブルされたエレメントからの結果のみが
記憶されるように確保するのが好ましい。
ベクター制御論理回路60は、命令パーサ65と、幾つ
かの制御機能を実施するためのベクターセーブ及びデコ
ード論理回路66とを備えているのが好ましい。制御論
理回路60のベクターセーブ及びデコード論理回路66
は、VPU30における全ての動作のスケジュールを監
視し、あるデータ転送動作を実行する。
かの制御機能を実施するためのベクターセーブ及びデコ
ード論理回路66とを備えているのが好ましい。制御論
理回路60のベクターセーブ及びデコード論理回路66
は、VPU30における全ての動作のスケジュールを監
視し、あるデータ転送動作を実行する。
第3図に一部分が詳細に示された命令パーサ65は、5
PU15から情報(即ち、VECTORDATAライン
を経ての命令)を受は取り、入ってくるデータ及びアド
レスを適当な読み取り及び書き込みボートに送り、そし
てベクター乗算器70.ベクター加算器80又はマスク
ユニット90に送る。命令パーサ65は、5PtJ15
から5CALARDATAラインを経て受は取ったスカ
ラーデータを好ましくはベクターレジスタフアイル35
のスカラーレジスタ(図示せず)に記憶すべく通し、ベ
クター処理演算中に使用できるようにするのが好ましい
。
PU15から情報(即ち、VECTORDATAライン
を経ての命令)を受は取り、入ってくるデータ及びアド
レスを適当な読み取り及び書き込みボートに送り、そし
てベクター乗算器70.ベクター加算器80又はマスク
ユニット90に送る。命令パーサ65は、5PtJ15
から5CALARDATAラインを経て受は取ったスカ
ラーデータを好ましくはベクターレジスタフアイル35
のスカラーレジスタ(図示せず)に記憶すべく通し、ベ
クター処理演算中に使用できるようにするのが好ましい
。
第3図は、VPU30の命令デコーダ65の内部論理を
示している。デコーダ65は、5PU15から部分的に
デコードされたベクター命令情報及びスカラーデータを
入力100として受は取る。これらの入力は命令バッフ
ァ115に記憶され、該バッファは、VPU30によっ
てベクター命令を実行できるまで命令及びデータを適切
な順序で保持する。
示している。デコーダ65は、5PU15から部分的に
デコードされたベクター命令情報及びスカラーデータを
入力100として受は取る。これらの入力は命令バッフ
ァ115に記憶され、該バッファは、VPU30によっ
てベクター命令を実行できるまで命令及びデータを適切
な順序で保持する。
バッファ115の出力BUFO−BUF3に接続された
マルチプレクサ116は、デコードされるべき次の命令
に対する命令情報を適切に出力する。この情報は、バッ
ファ115が見掛は玉循環バッファとして働くようにさ
せる2ビツトの循環カウント信号である命令選択信号に
よって決定される。
マルチプレクサ116は、デコードされるべき次の命令
に対する命令情報を適切に出力する。この情報は、バッ
ファ115が見掛は玉循環バッファとして働くようにさ
せる2ビツトの循環カウント信号である命令選択信号に
よって決定される。
スカラーデータは、バッファ115からBUFO−BU
F3出力を受は取るように接続されたマルチプレクサ1
02により、「命令 選択+1」信号に基づいて選択さ
れ、この信号は、「命令選択」信号よりも1つ大きな値
を有している。スカラーデータはベクターレジスタファ
イル35へ送られ、そこで、ベクター加算器80、ベク
ター乗算器70又はマスクユニット90のいずれかに対
応するスカラーレジスタに記憶される。
F3出力を受は取るように接続されたマルチプレクサ1
02により、「命令 選択+1」信号に基づいて選択さ
れ、この信号は、「命令選択」信号よりも1つ大きな値
を有している。スカラーデータはベクターレジスタファ
イル35へ送られ、そこで、ベクター加算器80、ベク
ター乗算器70又はマスクユニット90のいずれかに対
応するスカラーレジスタに記憶される。
デコードされるベクター命令がベクターオペランドしか
必要としない場合には、情報がバッファ116に通され
、以下に述べるように制御ワードデコーダエレメント1
03に基づいてオペランドが決定される。然し乍ら、命
令がスカラーデータを必要とする場合には、そのデータ
が命令に続いて5PU15から通され、マルチプレクサ
102により正しい時間に出力される。
必要としない場合には、情報がバッファ116に通され
、以下に述べるように制御ワードデコーダエレメント1
03に基づいてオペランドが決定される。然し乍ら、命
令がスカラーデータを必要とする場合には、そのデータ
が命令に続いて5PU15から通され、マルチプレクサ
102により正しい時間に出力される。
命令がマルチプレクサ116によって選択された後に、
幾つかのフィールドがデコード論理エレメント103.
104.105及び106に分布される。部分的にデコ
ードされた命令における命令情報は、命令の形式を指示
するOPコード部分と、制御ワードの形式を指示する制
御ワード形式部分(以下で詳細に述べる)と、加算器8
0又は乗算器70のような主ベクターユニットのどれを
命令によって使用すべきであるかを指示するディスパッ
チ形式部分と、ベクター命令に対するオペランド及びフ
ラグを指定する制御ワード部分とを含んでいる。
幾つかのフィールドがデコード論理エレメント103.
104.105及び106に分布される。部分的にデコ
ードされた命令における命令情報は、命令の形式を指示
するOPコード部分と、制御ワードの形式を指示する制
御ワード形式部分(以下で詳細に述べる)と、加算器8
0又は乗算器70のような主ベクターユニットのどれを
命令によって使用すべきであるかを指示するディスパッ
チ形式部分と、ベクター命令に対するオペランド及びフ
ラグを指定する制御ワード部分とを含んでいる。
制御ワードデコーダエレメント103は、制御ワード部
分からオペランドを取り出し、特定のベクター演算のた
めのデータのソースとなるベクターレジスタ、即ち5o
URCE REGl及び5OURCE REG2と、
ベクター演算の結果を記憶するベクターレジスタ、即ち
DEST REGとの両方に対し、ベクターレジスタ
ファイル35のレジスタのアドレスを形成する。更に、
デコーダエレメント103は、Exceptions
/ M a s kフラグも取り出す。
分からオペランドを取り出し、特定のベクター演算のた
めのデータのソースとなるベクターレジスタ、即ち5o
URCE REGl及び5OURCE REG2と、
ベクター演算の結果を記憶するベクターレジスタ、即ち
DEST REGとの両方に対し、ベクターレジスタ
ファイル35のレジスタのアドレスを形成する。更に、
デコーダエレメント103は、Exceptions
/ M a s kフラグも取り出す。
5OURCE REGI、5OURCE REG2
及びDEST REGの値は、各々、アドレスレジス
タ108.109及び110に入力され、これらのレジ
スタは、命令の形式に基づいて、ベクター加算器80、
ベクター乗算器70及びマスクユニット90のためのア
ドレスを発生する。
及びDEST REGの値は、各々、アドレスレジス
タ108.109及び110に入力され、これらのレジ
スタは、命令の形式に基づいて、ベクター加算器80、
ベクター乗算器70及びマスクユニット90のためのア
ドレスを発生する。
アドレス発生器108.109及び110は、実行され
ている特定のサブ演算を決定するカウンタであり、第2
図にベクター制御論理回路60のカウンタ44として示
されている。
ている特定のサブ演算を決定するカウンタであり、第2
図にベクター制御論理回路60のカウンタ44として示
されている。
他の命令形式部分は、ディスパッチ形式論理回路104
、制御ワード形式論理回路105又はoPコードデコー
ド論理回路106へ送られて、更にデコードされる。こ
のようなデコードに基づいて、発行判断論理回路107
がその命令を発行できるかどうか判断する。例えば、ベ
クター加算器80がビジーである場合に、この加算器8
0を必要とするならば、加算器80が解放されるまで次
の命令を遅延しなければならない。発行判断回路107
が次の命令を実行できると判断したときには、アドレス
発生器108.109及び110がそれらの適切な値を
ロードするようにさせるためのl5sue New信
号を発生する。
、制御ワード形式論理回路105又はoPコードデコー
ド論理回路106へ送られて、更にデコードされる。こ
のようなデコードに基づいて、発行判断論理回路107
がその命令を発行できるかどうか判断する。例えば、ベ
クター加算器80がビジーである場合に、この加算器8
0を必要とするならば、加算器80が解放されるまで次
の命令を遅延しなければならない。発行判断回路107
が次の命令を実行できると判断したときには、アドレス
発生器108.109及び110がそれらの適切な値を
ロードするようにさせるためのl5sue New信
号を発生する。
B、ベクター フォーマツ
第4図は、種々の個数のオペランド指定子を有する種々
のベクター命令ワードのフォーマットを示している。第
5図は、第4a図ないし第4d図に示されたフォーマッ
トを有するベクター命令ワードのベクター制御ワード指
定子140によって指示された種々のフォーマットのベ
クター制御ワードを示している。
のベクター命令ワードのフォーマットを示している。第
5図は、第4a図ないし第4d図に示されたフォーマッ
トを有するベクター命令ワードのベクター制御ワード指
定子140によって指示された種々のフォーマットのベ
クター制御ワードを示している。
第4図の実施例に示されたように、ベクター命令は、命
令の形式を識別するオペレーションコードを保持するO
Pコードフィールド150と、オペランドポインタ部分
152とを備えている。
令の形式を識別するオペレーションコードを保持するO
Pコードフィールド150と、オペランドポインタ部分
152とを備えている。
オペランドポインタ部分152は、任意の数のオペラン
ド指定子154−158と、ベクター制御ワード指定子
140とを含んでいる。好ましくは、オペランドポイン
タ部分152の全てのオペランド指定子は、スカラー命
令のオペランド指定子と同じフォーマットを有し、そし
てスカラー命令に。
ド指定子154−158と、ベクター制御ワード指定子
140とを含んでいる。好ましくは、オペランドポイン
タ部分152の全てのオペランド指定子は、スカラー命
令のオペランド指定子と同じフォーマットを有し、そし
てスカラー命令に。
おける指定子と同様に、ベクター命令ワードのオペラン
ド指定子はスカラーオペランドの位置を識別する。ベク
ターオペランド指定子及びスカラーオペランド指定子(
第7図)は同じフォーマットであるから、所与の命令が
ベクター命令であるかスカラー命令であるかを知る前に
オペランドをフェッチすることができる。
ド指定子はスカラーオペランドの位置を識別する。ベク
ターオペランド指定子及びスカラーオペランド指定子(
第7図)は同じフォーマットであるから、所与の命令が
ベクター命令であるかスカラー命令であるかを知る前に
オペランドをフェッチすることができる。
第7図は、3つのオペランド指定子154′155”及
び156′を有するスカラー命令ワードを示している。
び156′を有するスカラー命令ワードを示している。
第4a図ないし第4d図に示されたベクター制御ワード
指定子140と、第7図のベクターオペランド指定子1
54’ 155’及び156′は、同じアドレス機
構を用いており、従って、命令パーサ50はベクター命
令及びスカラー命令に対して別々にオペランドをフェッ
チしなければならないことから解放される。同じアドレ
ス機構を用いることにより、VPU30の編成がIPU
25に対して透過的とすることができる。
指定子140と、第7図のベクターオペランド指定子1
54’ 155’及び156′は、同じアドレス機
構を用いており、従って、命令パーサ50はベクター命
令及びスカラー命令に対して別々にオペランドをフェッ
チしなければならないことから解放される。同じアドレ
ス機構を用いることにより、VPU30の編成がIPU
25に対して透過的とすることができる。
オペランド指定子154−158がオペランドを指定す
る好ましいアドレス機構は、参考としてここに取り上げ
るストレッチャー氏等の米国特許筒4.241,399
号に説明されている。
る好ましいアドレス機構は、参考としてここに取り上げ
るストレッチャー氏等の米国特許筒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
つは、ベクター命令の実行中にアクセスされるべきベク
ターレジスタオペランドのポインタを含むか又はその指
定子であるベクターレジスタ指定子フィールドである。
制御ワード指定子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つを独特に
指定することができる。
スタを指定するのが好ましい。各ベクターレジスタ指定
子フィールドの4つのビットは、本発明の好ましい実施
例に含まれた16個のベクターレジスタの1つを独特に
指定することができる。
第5b図は、ベクター制御ワード160′に対する別の
フォーマットを示している。フラグフィールド162と
、ベクター指定子フィールド163及び164に加えて
、制御ワード160′は、第5a図の4ビツトベクター
レジスタ指定子フイールド165の代わりに4ビツトオ
ペランド情報フイールド168を含んでいる。オペラン
ド情報フィールド168は、種々のベクター演算に必要
な情報を含んでいる。例えば、OPコードフィールド1
50のオペレーションコードが比較動作を実行すべきで
あると指示する場合には、オペランド情報フィールド1
68は、「より大きい」又は「より小さい」比較を行な
うべきであるかどうかを指示するデータを含む。又、オ
ペランド情報フィールド168は、OPコードフィール
ド150の値に基づいて、ベクターレジスタ指定子16
3、ベクターレジスタ指定子164又はベクターレジス
タ指定子165に代わって生じる。
フォーマットを示している。フラグフィールド162と
、ベクター指定子フィールド163及び164に加えて
、制御ワード160′は、第5a図の4ビツトベクター
レジスタ指定子フイールド165の代わりに4ビツトオ
ペランド情報フイールド168を含んでいる。オペラン
ド情報フィールド168は、種々のベクター演算に必要
な情報を含んでいる。例えば、OPコードフィールド1
50のオペレーションコードが比較動作を実行すべきで
あると指示する場合には、オペランド情報フィールド1
68は、「より大きい」又は「より小さい」比較を行な
うべきであるかどうかを指示するデータを含む。又、オ
ペランド情報フィールド168は、OPコードフィール
ド150の値に基づいて、ベクターレジスタ指定子16
3、ベクターレジスタ指定子164又はベクターレジス
タ指定子165に代わって生じる。
第5C図は、ベクター制御ワード160”に対する更に
別のフォーマットを示している。この制御ワード160
”は、ベクター指定子フィールド163に代わって変換
フィールド166を含んでいる。変換フィールド166
は、実行されるべき変換機能を識別し、フィールド16
4によって指定されたベクターレジスタの値がフィール
ド165に指定されたベクターレジスタに記憶される前
に適切に変換されるようにする。このような変換は、例
えば、浮動小数点から整数又は長ワードへの変換等を含
むことができる。
別のフォーマットを示している。この制御ワード160
”は、ベクター指定子フィールド163に代わって変換
フィールド166を含んでいる。変換フィールド166
は、実行されるべき変換機能を識別し、フィールド16
4によって指定されたベクターレジスタの値がフィール
ド165に指定されたベクターレジスタに記憶される前
に適切に変換されるようにする。このような変換は、例
えば、浮動小数点から整数又は長ワードへの変換等を含
むことができる。
第6図は、第5a図のベクター制御ワード160のフラ
グフィールド162の拡張を示している。1つのビット
は、マスク動作イネーブル(MOE)フラグ170を含
んでいる。第2のビットは、一致真/偽(MTF)フラ
グ172を含んでいる。このMTFフラグ172は、0
又はlのプール値がベクターマスクレジスタ92におけ
るイネーブルされたビットを表わすかどうか判断する。
グフィールド162の拡張を示している。1つのビット
は、マスク動作イネーブル(MOE)フラグ170を含
んでいる。第2のビットは、一致真/偽(MTF)フラ
グ172を含んでいる。このMTFフラグ172は、0
又はlのプール値がベクターマスクレジスタ92におけ
るイネーブルされたビットを表わすかどうか判断する。
第3ビツトは、ベクター処理の例外が生じたときに例外
の取り扱いをイネーブルする例外イネーブル(EXC)
フラグ174を含んでいる。第4のフラグビット176
は現在は未使用である。これらビットの使用は、そのと
きに処理されている命令に基づくものである。
の取り扱いをイネーブルする例外イネーブル(EXC)
フラグ174を含んでいる。第4のフラグビット176
は現在は未使用である。これらビットの使用は、そのと
きに処理されている命令に基づくものである。
上記で簡単に述べたように、MOEフラグ170によっ
てイネーブルされたマスク機能においては、ベクターマ
スクレジスタ92におけるイネーブルされたビットに対
応するベクター演算の結果のみが演算の後に記憶される
。第8図は、ベクターマスクレジスタ92、ベクター長
さレジスタ182、及びベクター制御ワード160のフ
ラグフィールドのMOE及びMTFフラグ各々170及
び172がベクター演算の結果の記憶にいかに影響する
かの例を示している。第8a図において、ベクター制御
ワードのMOEフラグ170は、マスキングがイネーブ
ルされたことを指示する「l」の値を含んでいる。MT
Fフラグ172は、ベクターマスクレジスタ92におけ
る「0」の値に対応する結果のみを記憶すべきであるこ
とを指示するro、Hの値を含んでいる。
てイネーブルされたマスク機能においては、ベクターマ
スクレジスタ92におけるイネーブルされたビットに対
応するベクター演算の結果のみが演算の後に記憶される
。第8図は、ベクターマスクレジスタ92、ベクター長
さレジスタ182、及びベクター制御ワード160のフ
ラグフィールドのMOE及びMTFフラグ各々170及
び172がベクター演算の結果の記憶にいかに影響する
かの例を示している。第8a図において、ベクター制御
ワードのMOEフラグ170は、マスキングがイネーブ
ルされたことを指示する「l」の値を含んでいる。MT
Fフラグ172は、ベクターマスクレジスタ92におけ
る「0」の値に対応する結果のみを記憶すべきであるこ
とを指示するro、Hの値を含んでいる。
第8b図は、ベクター演算が行なわれる前の、即ちベク
ター演算による結果データが行き先レジスタ192に記
憶される前のベクターレジスタファイル35の行き先レ
ジスタ192の内容を示している。第8C図は、第8a
図のMTFフィールド172により「0」にセットされ
たビットがイネーブルされたビットであるようなベクタ
ーマスクレジスタ92を示している。
ター演算による結果データが行き先レジスタ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の最も左のエレメン
トは、値rQJを有するベクターマスクレジスタ92の
ビットに対応する。ベクター結果190の最も左から2
番l」のビットは、値「1」を有するベクターマスクレ
ジスタ92のビットに対応する。
行き先レジスタ192に記憶される前のベクター演算の
結果190(−例として、結果190の値が任意に選択
されている)を示している。第8b図において、行き先
レジスタ192の最も左の2つのエレメントは、各々、
「9」及び「7」の値を含んでいる。ベクター演算の後
に、ベクター結果190の最も左の2つのエレメントは
、第8d図に示すように、各々、「4」及び「5」の値
を含んでいる。ベクター結果190の最も左のエレメン
トは、値rQJを有するベクターマスクレジスタ92の
ビットに対応する。ベクター結果190の最も左から2
番l」のビットは、値「1」を有するベクターマスクレ
ジスタ92のビットに対応する。
第8e図は、マスキングの後であって、第8d図のベク
ター結果190の幾つかのエレメントが行き先レジスタ
192に記憶されたときの該レジスタの内容を示してい
る。行き先レジスタ192の最も左のエレメントは値r
4」を含んでいる。
ター結果190の幾つかのエレメントが行き先レジスタ
192に記憶されたときの該レジスタの内容を示してい
る。行き先レジスタ192の最も左のエレメントは値r
4」を含んでいる。
この値は、ベクターマスクレジスタ92の対応ビットが
値[O」を含むために行き先レジスタ192に記憶され
たものである。然し乍ら、行き先レジスタ192の最も
左から2番目のエレメントは、第8e図においてその元
の値「7」をまだ含んでいる。第8d図のベクター結果
190の結果値「5」は、第8e図の行き先レジスタ1
92には記憶されていない。というのは、ベクターマス
クレジスタ92の対応ビットがrl」を含んでいるから
である。同様に、ベクターマスクレジスタ92のイネー
ブルされたビットに対応するベクター結果190の他の
全ての値は行き先レジスタ192に記憶されるが、ディ
スエイブルされたベクタ−マスクレジスタピットに対応
するベクター結果190のエレメントは行き先レジスタ
192に記憶されない。
値[O」を含むために行き先レジスタ192に記憶され
たものである。然し乍ら、行き先レジスタ192の最も
左から2番目のエレメントは、第8e図においてその元
の値「7」をまだ含んでいる。第8d図のベクター結果
190の結果値「5」は、第8e図の行き先レジスタ1
92には記憶されていない。というのは、ベクターマス
クレジスタ92の対応ビットがrl」を含んでいるから
である。同様に、ベクターマスクレジスタ92のイネー
ブルされたビットに対応するベクター結果190の他の
全ての値は行き先レジスタ192に記憶されるが、ディ
スエイブルされたベクタ−マスクレジスタピットに対応
するベクター結果190のエレメントは行き先レジスタ
192に記憶されない。
C0皇皇五上皮互処星
5PU15が命令をVPU30か又は5PU15内の他
の回路かのいずれかへ実行のために送る前に、IPU2
5は命令に基づいて幾つかの予めの処理を実行する。前
記で簡単に述べたように、上記命令フォーマットの独特
の特徴は、IPU25が同じ回路(その好ましい実施例
がバッファ187及びオペランド制御論理回路185を
含むものとして第9図に示されている)を用いて、ベク
ター命令及びスカラー命令の両方を同様に予め処理でき
ることである。
の回路かのいずれかへ実行のために送る前に、IPU2
5は命令に基づいて幾つかの予めの処理を実行する。前
記で簡単に述べたように、上記命令フォーマットの独特
の特徴は、IPU25が同じ回路(その好ましい実施例
がバッファ187及びオペランド制御論理回路185を
含むものとして第9図に示されている)を用いて、ベク
ター命令及びスカラー命令の両方を同様に予め処理でき
ることである。
第10図は、IPU25において命令を予め処理するた
めの好ましい手順を示すフローチャートである。メモリ
処理ユニット20が命令をIPU25に送る。と、この
命令がバッファ187に入力される(第1O図のステッ
プ194)。この命令のオペレーションコード部分(即
ち、第4a図ないし第4d図のOPコードフィールド1
50)が取り出され、5PU15へ送られる。この命令
のオペランドポインタ部分(即ち、第4a図ないし第4
d図のオペランドポインタ部分152)は、オペランド
制御論理回路185への入力となり、該論理回路は、必
要に応じてオペレーションコード部分へアクセスしてそ
の機能を実行する。
めの好ましい手順を示すフローチャートである。メモリ
処理ユニット20が命令をIPU25に送る。と、この
命令がバッファ187に入力される(第1O図のステッ
プ194)。この命令のオペレーションコード部分(即
ち、第4a図ないし第4d図のOPコードフィールド1
50)が取り出され、5PU15へ送られる。この命令
のオペランドポインタ部分(即ち、第4a図ないし第4
d図のオペランドポインタ部分152)は、オペランド
制御論理回路185への入力となり、該論理回路は、必
要に応じてオペレーションコード部分へアクセスしてそ
の機能を実行する。
オペランド制御論理回路185は、必要に応じてオペレ
ーションコードを用いてオペランド指定子部分をデコー
ドし、そして各オペランド指定子部分によって指示され
たオペランドを決定するために必要なメモリ処理ユニッ
ト20へのアクセスを実行する(ステップ198)。オ
ペランドを決定する手順の詳細は、上記したストレッカ
ー氏等の特許に開示されている。更に、IPU25は、
オペランド及びオペランドコード部分を5PUI5へ送
り、5PU15によってそれを実行するが又はベクター
命令及びオペランドをVPU30へ送信するようにする
(ステップ199)。
ーションコードを用いてオペランド指定子部分をデコー
ドし、そして各オペランド指定子部分によって指示され
たオペランドを決定するために必要なメモリ処理ユニッ
ト20へのアクセスを実行する(ステップ198)。オ
ペランドを決定する手順の詳細は、上記したストレッカ
ー氏等の特許に開示されている。更に、IPU25は、
オペランド及びオペランドコード部分を5PUI5へ送
り、5PU15によってそれを実行するが又はベクター
命令及びオペランドをVPU30へ送信するようにする
(ステップ199)。
ベクター及びスカラーの処理命令が同じフォーマットを
有しているので、オペランド制御論理回路185は、ベ
クター及びスカラーの両方の命令に対して同じ機能を実
行する。実際に、FETプロセッサや浮動小数点プロセ
ッサのような個別に動作するプロセッサを有するいかな
る形式のデータ処理手段についても、上記した命令フォ
ーマットの使用により、IPU25のような単一命令プ
ロセッサで全ての命令を同様に予め処理することができ
る。
有しているので、オペランド制御論理回路185は、ベ
クター及びスカラーの両方の命令に対して同じ機能を実
行する。実際に、FETプロセッサや浮動小数点プロセ
ッサのような個別に動作するプロセッサを有するいかな
る形式のデータ処理手段についても、上記した命令フォ
ーマットの使用により、IPU25のような単一命令プ
ロセッサで全ての命令を同様に予め処理することができ
る。
本発明によれば、ベクター処理手段は、該ベクター処理
手段の例外状態を表わすベクター状態情報を保持するた
めの状態手段を備えている。本発明の好ましい実施例で
は、第11図に示されたベクタープロセッサ状態レジス
タ(VPSR)200がV P U 30 G:設けら
れテイテ、VPU30の実行状態を表わす情報を保持す
る。VPSR200は、VPU30に関する32ビツト
の状態情報を保持するもので、制御ユニット60に位置
されるのが好ましいが、どこに配置されてもよい。
手段の例外状態を表わすベクター状態情報を保持するた
めの状態手段を備えている。本発明の好ましい実施例で
は、第11図に示されたベクタープロセッサ状態レジス
タ(VPSR)200がV P U 30 G:設けら
れテイテ、VPU30の実行状態を表わす情報を保持す
る。VPSR200は、VPU30に関する32ビツト
の状態情報を保持するもので、制御ユニット60に位置
されるのが好ましいが、どこに配置されてもよい。
又、マスクユニット90には、第12図に示されたベク
ター演算例外レジスタ(VAER)300と、第13図
に示されたベクター状態アドレスレジスタ(VSAR)
400とが配置される。レジスタ200.300及び4
00の内容は、以下で述べる他のデータと同様に、VP
U30の状態情報の一部分となる。
ター演算例外レジスタ(VAER)300と、第13図
に示されたベクター状態アドレスレジスタ(VSAR)
400とが配置される。レジスタ200.300及び4
00の内容は、以下で述べる他のデータと同様に、VP
U30の状態情報の一部分となる。
VPSR200(7)ビットOは、VPU30がディス
エイブルされたかどうかを指示するベクタープロセッサ
イネーブル(VEN)ビット210である。VPU30
は、このビットに1を書き込むことによってイネーブル
されそしてこのビットに0を書き込むことによってディ
スエイブルされる。VPU30がディスエイブルされた
ときには、ベクター命令をVPU30に送ろうとする5
PU15の試みにより[ベクタープロセッサディスエイ
ブルドホールトJが生じる。
エイブルされたかどうかを指示するベクタープロセッサ
イネーブル(VEN)ビット210である。VPU30
は、このビットに1を書き込むことによってイネーブル
されそしてこのビットに0を書き込むことによってディ
スエイブルされる。VPU30がディスエイブルされた
ときには、ベクター命令をVPU30に送ろうとする5
PU15の試みにより[ベクタープロセッサディスエイ
ブルドホールトJが生じる。
VPSR200のビット1は、ベクタープロセッサ状態
リセット(RST)ビット220である。このビットに
1を書き込むと、VENビット210を除いてV P、
S R200がクリアされる。
リセット(RST)ビット220である。このビットに
1を書き込むと、VENビット210を除いてV P、
S R200がクリアされる。
VPSR200のビット2は、ベクター状態記憶(ST
S)ビット230であり、これは、■にセットされた場
合に、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いて実行特定
ベクター状態情報をメモリ処理ユニット20に記憶し始
める。例外が同期的に取り扱われる場合には、STSビ
ット230が無・視される。本発明の好ましい実施例で
は、ベクター処理メモリアクセス命令を実行する2つの
方法の1つを選択することができる。この2つの方法は
、以下に詳細に述べるように、メモリ管理例外を取り扱
うための2つの異なった機構をもたらす。その一方は同
期式のメモリ管理実行でありそしてその他方は非同期の
メモリ管理実行である。同期式の実行中に、VPU30
及び5PtJ15は、現在実行中のベクターメモリアク
セスが完了を保証されるまで、新たな命令を処理しない
。
S)ビット230であり、これは、■にセットされた場
合に、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いて実行特定
ベクター状態情報をメモリ処理ユニット20に記憶し始
める。例外が同期的に取り扱われる場合には、STSビ
ット230が無・視される。本発明の好ましい実施例で
は、ベクター処理メモリアクセス命令を実行する2つの
方法の1つを選択することができる。この2つの方法は
、以下に詳細に述べるように、メモリ管理例外を取り扱
うための2つの異なった機構をもたらす。その一方は同
期式のメモリ管理実行でありそしてその他方は非同期の
メモリ管理実行である。同期式の実行中に、VPU30
及び5PtJ15は、現在実行中のベクターメモリアク
セスが完了を保証されるまで、新たな命令を処理しない
。
非同期の実行中には、VPU30は、SPUの命令の実
行又は他のベクターメモリ命令のVPU実行のいずれか
と同時にベクターメモリアクセス命令を実行することが
できる。非同期メモリ管理では、LOAD/ADD/M
ULT I PLY/5TOREのような命令シーケン
スを連鎖的に実行することができる。
行又は他のベクターメモリ命令のVPU実行のいずれか
と同時にベクターメモリアクセス命令を実行することが
できる。非同期メモリ管理では、LOAD/ADD/M
ULT I PLY/5TOREのような命令シーケン
スを連鎖的に実行することができる。
VPSR200のビット3は、ベクター状態再ロード(
RLD)ビット240であり、これは、■にセットされ
ると、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いてメモリか
ら実行特定ベクター状態情報を再ロードし始める。ST
Sビット230と同様に、例外の同期的な取り扱いが実
施される場合には、RLDビット240が無視される。
RLD)ビット240であり、これは、■にセットされ
ると、メモリ管理例外を非同期で取り扱うためにVSA
R400の仮想メモリアドレス420を用いてメモリか
ら実行特定ベクター状態情報を再ロードし始める。ST
Sビット230と同様に、例外の同期的な取り扱いが実
施される場合には、RLDビット240が無視される。
VPSR200のビット5はメモリ欠陥(MF)ビット
250であり、これは、非同期メモリ管理例外によって
再実行されるべきメモリ参照の存在を指示するためにV
PU30によって1にセットされる。これについては、
以下で詳細に説明する。メモリ管理例外の同期的な取り
扱いが実行される場合には、このビットが0にセットさ
れる。
250であり、これは、非同期メモリ管理例外によって
再実行されるべきメモリ参照の存在を指示するためにV
PU30によって1にセットされる。これについては、
以下で詳細に説明する。メモリ管理例外の同期的な取り
扱いが実行される場合には、このビットが0にセットさ
れる。
VPSR200のビット6は、保留メモリ欠陥(PMF
)ビット260である。V P U 30 ハ、非同期
メモリ管理例外が保留中であることを指示するためにP
MFビット260を1にセットする。
)ビット260である。V P U 30 ハ、非同期
メモリ管理例外が保留中であることを指示するためにP
MFビット260を1にセットする。
メモリ管理例外の同期的な取り扱いが実行される場合に
は、このビットが常に0である。
は、このビットが常に0である。
VPSR200のビット7は演算例外(AEX)ビット
270であり、これは通常0であって、VPU30が浮
動小数点のアンダーフロー又は整数のオーバーフローと
いった幾つかの演算例外によってディスエイブルされな
いことを指示する。
270であり、これは通常0であって、VPU30が浮
動小数点のアンダーフロー又は整数のオーバーフローと
いった幾つかの演算例外によってディスエイブルされな
いことを指示する。
VPU30は、演算例外が生じたときには常にこのビッ
トをセットする。例外の特定の性質に関する情報はVA
ER300に配置される。
トをセットする。例外の特定の性質に関する情報はVA
ER300に配置される。
VPSR200のビット24は、実行特定ハードウェア
エラー(IMP)ビット280である。
エラー(IMP)ビット280である。
IMPビット280は、VPU30がハードウェアのエ
ラーによってディスエイブルされたときに1にセットさ
れる。
ラーによってディスエイブルされたときに1にセットさ
れる。
VPSR200のビット31は、ベクタープロセッサビ
ジー(BSY)ビット290であり、これはVPU30
がベクター命令を実行するときにこのVPUにより1に
セットされる。このビットがOにクリアされた場合には
、VPU30がアイドル状態となり、非同期メモリ管理
例外により命令の実行を保留する。
ジー(BSY)ビット290であり、これはVPU30
がベクター命令を実行するときにこのVPUにより1に
セットされる。このビットがOにクリアされた場合には
、VPU30がアイドル状態となり、非同期メモリ管理
例外により命令の実行を保留する。
VAER300は、ベクター演算例外に関する情報を記
録するのに用いるレジスタであるのが好ましい。VAE
R300は、マスクユニット90に配置されており、例
外ユニット82及び72によって書き込まれる。5PU
15の制御論理ユニット40は、VAER300の内容
を読み取ることができるが、VAER300へ書き込む
ことはできない。VAER300は、好ましい実施例で
は、ベクター行き先レジスタマスク310と、例外条件
概要320の2つのフィールドを含んでいる。VAER
300のベクター行き先レジスタマスクフィールド31
0は、どのベクターレジスタが演算例外によりデホール
ト値を受は取ったかを記録する。16個のベクターレジ
スタのうちの・n番目のレジスタが演算例外の結果とし
てデホールト値を受は取る場合には、マスクフィールド
310のビットn (VAER300のビット(16+
n))に1が書き込まれる。
録するのに用いるレジスタであるのが好ましい。VAE
R300は、マスクユニット90に配置されており、例
外ユニット82及び72によって書き込まれる。5PU
15の制御論理ユニット40は、VAER300の内容
を読み取ることができるが、VAER300へ書き込む
ことはできない。VAER300は、好ましい実施例で
は、ベクター行き先レジスタマスク310と、例外条件
概要320の2つのフィールドを含んでいる。VAER
300のベクター行き先レジスタマスクフィールド31
0は、どのベクターレジスタが演算例外によりデホール
ト値を受は取ったかを記録する。16個のベクターレジ
スタのうちの・n番目のレジスタが演算例外の結果とし
てデホールト値を受は取る場合には、マスクフィールド
310のビットn (VAER300のビット(16+
n))に1が書き込まれる。
例外条件概要フィールド320は、発生した例外の形式
を指示する。これらの条件は、浮動小数点のアンダーフ
ロー、浮動小数点のゼロによる除算、浮動小数点の指定
されたオペランド、浮動小数点のオーバーフロー又は整
数オーバーフローの例外条件を含むのが好ましい。
を指示する。これらの条件は、浮動小数点のアンダーフ
ロー、浮動小数点のゼロによる除算、浮動小数点の指定
されたオペランド、浮動小数点のオーバーフロー又は整
数オーバーフローの例外条件を含むのが好ましい。
前記したように、IPU25の命令パーサ50は、ベク
ター及びスカラー命令を5PU15に通す。5PU15
は、次いで、ベクター命令を識別し、それらをVPU3
0に通す。もちろん、ベクター命令は、IPU25から
VPU30に直接通すことができる。次いで、VPU3
0は、ベクター命令をその通常の演算に基づいて実行す
る。
ター及びスカラー命令を5PU15に通す。5PU15
は、次いで、ベクター命令を識別し、それらをVPU3
0に通す。もちろん、ベクター命令は、IPU25から
VPU30に直接通すことができる。次いで、VPU3
0は、ベクター命令をその通常の演算に基づいて実行す
る。
然し乍ら、ベクター命令の実行中には、2つの形式のベ
クタープロセッサ例外、即ち、ベクターメモリ管理例外
及びベクター演算例外が生じる。
クタープロセッサ例外、即ち、ベクターメモリ管理例外
及びベクター演算例外が生じる。
2.2ん玉退jJl吐外
2つの形式のベクタープロセッサ例外は若干具なったや
り方で処理される。ベクター演算例外とは異なり、ベク
ターメモリ管理例外はVPU30をディスエイブルしな
い。メモリアクセス命令中に生じるメモリ管理例外は、
その命令のそれ以上の処理を防止する。演算例外の場合
にはこのようにならない。メモリ管理例外は、データに
基づく他の全ての命令の実行を停止する。
り方で処理される。ベクター演算例外とは異なり、ベク
ターメモリ管理例外はVPU30をディスエイブルしな
い。メモリアクセス命令中に生じるメモリ管理例外は、
その命令のそれ以上の処理を防止する。演算例外の場合
にはこのようにならない。メモリ管理例外は、データに
基づく他の全ての命令の実行を停止する。
本発明のベクター処理手段は、メモリ管理例外の存在を
指示するための例外検出手段を備えている。VPU30
の好ましい実施例では、制御論理回路66は、メモリ管
理例外が生じたときにメモリ処理ユニット20によって
通知される。この手順の詳細は、以下で説明する。
指示するための例外検出手段を備えている。VPU30
の好ましい実施例では、制御論理回路66は、メモリ管
理例外が生じたときにメモリ処理ユニット20によって
通知される。この手順の詳細は、以下で説明する。
ベクターメモリ管理例外は、アクセス制御違反、変換非
有効例外、修正例外及びベクター整列例外を含む。メモ
リ処理ユニット20は、メモリ管理例外の形式を識別す
る信号を発生するのが好ましいが、このような信号は、
5PU15又はVPU30においても発生できる。これ
らの例外識別信号は、VPU30の状態情報の一部分で
ある。
有効例外、修正例外及びベクター整列例外を含む。メモ
リ処理ユニット20は、メモリ管理例外の形式を識別す
る信号を発生するのが好ましいが、このような信号は、
5PU15又はVPU30においても発生できる。これ
らの例外識別信号は、VPU30の状態情報の一部分で
ある。
アクセス制御違反は、メモリの保護された部分又は現在
ベクタープロセスに割り当てられたメモリスペースの外
側のメモリの部分へVPU30がアクセスしようと試み
ることを含む。現在ベクタープロセスは、その実行によ
ってメモリ管理例外が生じるようなベクター命令を含む
プロセスを指す。変換非有効例外は、ページ欠陥が存在
するとき又はメモリ処理ユニット20に現在ないメモリ
の部分をアクセスしようとする他の試みが存在するとき
に発生する。変更例外は、メモリ内のページへのアクセ
スが現在ベクタープロセスによって初めて行なわれるペ
ージの変更を含むときに生じる。ベクター整列例外は、
長ワード(4バイトを占有する)又はクオドワード(8
バイトを占有する)がメモリ処理ユニット20の各々長
ワード境界又はクオドワード境界に入らないときに生じ
る。又、ベクター整列例外は、同様のソフトウェアが両
方の状態を取り扱うのでアクセス制御違反と考えられる
。
ベクタープロセスに割り当てられたメモリスペースの外
側のメモリの部分へVPU30がアクセスしようと試み
ることを含む。現在ベクタープロセスは、その実行によ
ってメモリ管理例外が生じるようなベクター命令を含む
プロセスを指す。変換非有効例外は、ページ欠陥が存在
するとき又はメモリ処理ユニット20に現在ないメモリ
の部分をアクセスしようとする他の試みが存在するとき
に発生する。変更例外は、メモリ内のページへのアクセ
スが現在ベクタープロセスによって初めて行なわれるペ
ージの変更を含むときに生じる。ベクター整列例外は、
長ワード(4バイトを占有する)又はクオドワード(8
バイトを占有する)がメモリ処理ユニット20の各々長
ワード境界又はクオドワード境界に入らないときに生じ
る。又、ベクター整列例外は、同様のソフトウェアが両
方の状態を取り扱うのでアクセス制御違反と考えられる
。
2種類以上のメモリ管理例外が単一ベクター命令の処理
中に発生した場合には、ある主のハイアラーキ−構成で
例外の取り扱いを行なわねばならない。最も優先順位の
高いものは、最も重大なものであるから、これがアクセ
ス制御例外に達する(従って、同様に処理されるベクタ
ー整列例外に達する)。このような例外により、データ
処理システム10は現在ベクタープロセスを実行しない
ようにする。変換非有効例外は、次に高い優先順位を有
している。
中に発生した場合には、ある主のハイアラーキ−構成で
例外の取り扱いを行なわねばならない。最も優先順位の
高いものは、最も重大なものであるから、これがアクセ
ス制御例外に達する(従って、同様に処理されるベクタ
ー整列例外に達する)。このような例外により、データ
処理システム10は現在ベクタープロセスを実行しない
ようにする。変換非有効例外は、次に高い優先順位を有
している。
又、本発明のベクター処理手段は、メモリ管理例外が生
じたときにベクター処理手段によって欠陥ベクター処理
命令を実行するのを停止しそしてスカラー処理手段がス
カラー命令の実行を継続できるようにするためのベクタ
ー停止手段を備えている。メモリ管理例外が生じたとき
には、ベクター状態及びデコード論理回路66は、VP
U30がベクター命令の実行を中断するようにさせる。
じたときにベクター処理手段によって欠陥ベクター処理
命令を実行するのを停止しそしてスカラー処理手段がス
カラー命令の実行を継続できるようにするためのベクタ
ー停止手段を備えている。メモリ管理例外が生じたとき
には、ベクター状態及びデコード論理回路66は、VP
U30がベクター命令の実行を中断するようにさせる。
これは、VPU30への有効データの送信を停止するこ
とによって行なわれる。
とによって行なわれる。
本発明によれば、データ処理システムは、メモリ管理例
外の発生の指示と、ベクター処理手段の状態についての
充分な情報とを記録して、メモリ管理例外が生じたベク
ター処理命令のサブ動作時の実行をベクター処理手段が
後で再開できるようにするための例外記録手段を備えて
いる。本発明の好ましい実施例では、同期メモリ管理及
び非同期のメモリ管理の両方の間に、メモリ管理例外の
発生により、5PU15、より詳細には、5PU15の
制御論理ユニット40がメモリ管理スタックフレーム(
メモリ処理ユニット20の所定の位置に記憶される)を
形成するようにされる。メモリ管理例外を取り扱うため
のソフトウェアは、メモリ管理スタックフレームを含む
所定の位置を確認するように設計されており、従って、
特定の例外に適した良く知られたルーチンを含むことの
できる適当な処理を迅速に行なうことができる。
外の発生の指示と、ベクター処理手段の状態についての
充分な情報とを記録して、メモリ管理例外が生じたベク
ター処理命令のサブ動作時の実行をベクター処理手段が
後で再開できるようにするための例外記録手段を備えて
いる。本発明の好ましい実施例では、同期メモリ管理及
び非同期のメモリ管理の両方の間に、メモリ管理例外の
発生により、5PU15、より詳細には、5PU15の
制御論理ユニット40がメモリ管理スタックフレーム(
メモリ処理ユニット20の所定の位置に記憶される)を
形成するようにされる。メモリ管理例外を取り扱うため
のソフトウェアは、メモリ管理スタックフレームを含む
所定の位置を確認するように設計されており、従って、
特定の例外に適した良く知られたルーチンを含むことの
できる適当な処理を迅速に行なうことができる。
第14図は、メモリ管理スタックフレーム500の一例
を示している。スタックフレーム500は、メモリ管理
欠陥コード510、アドレスワード520、プログラム
カウンタPC530及びプログラム状態ワードPSL5
40を含んでいる。
を示している。スタックフレーム500は、メモリ管理
欠陥コード510、アドレスワード520、プログラム
カウンタPC530及びプログラム状態ワードPSL5
40を含んでいる。
欠陥コード510は、長さビット511.ページテーブ
ル参照ビット512、変更ビット513、ベクター整列
ビット514、ベクター整列ビット515及びベクター
非同期メモリ管理例外ビット516を含むのが好ましい
。長さビット511は、VPU30を用いてベクタープ
ロセスに割り当てられたメモリスペースの外側のメモリ
処理ユニット20の位置へアクセスすることによってア
クセス制御違反が生じたときにセットされる。
ル参照ビット512、変更ビット513、ベクター整列
ビット514、ベクター整列ビット515及びベクター
非同期メモリ管理例外ビット516を含むのが好ましい
。長さビット511は、VPU30を用いてベクタープ
ロセスに割り当てられたメモリスペースの外側のメモリ
処理ユニット20の位置へアクセスすることによってア
クセス制御違反が生じたときにセットされる。
ページテーブル参照ビット512は、ページテーブルを
アクセスする間にメモリ管理例外が生じた場合にセット
される。変更ビット513は、例外を生じた命令がメモ
リ処理ユニット20への書き込みである場合にセットさ
れる。ベクター整列ビット(VAL> 514は、例外
がベクターエレメントの不整列によるものであるときに
セットされる。ベクター Ilo、 (V f O)ビ
ット515は、I10スペース内のアドレスを参照する
ベクター命令中にアクセス制御違反が発生したときにセ
ットされる。ベクター非同期メモリ、管理(VAS)ビ
ット516は、非同期メモリ管理が実行されている間に
ベクタープロセッサメモリ管理例外が生じたときにセッ
トされる。
アクセスする間にメモリ管理例外が生じた場合にセット
される。変更ビット513は、例外を生じた命令がメモ
リ処理ユニット20への書き込みである場合にセットさ
れる。ベクター整列ビット(VAL> 514は、例外
がベクターエレメントの不整列によるものであるときに
セットされる。ベクター Ilo、 (V f O)ビ
ット515は、I10スペース内のアドレスを参照する
ベクター命令中にアクセス制御違反が発生したときにセ
ットされる。ベクター非同期メモリ、管理(VAS)ビ
ット516は、非同期メモリ管理が実行されている間に
ベクタープロセッサメモリ管理例外が生じたときにセッ
トされる。
同期メモリ管理中には、例外が直ちに取り扱われ、次い
で、欠陥命令の実行が再開される。命令は、ベクターメ
モリアクセス命令を開始点へ戻すことにより再開される
。この点において、メモリ管理欠陥が開始され、PC5
30の値が欠陥ベクターメモリアクセス命令を識別する
。VSAR400は、同期メモリ管理例外中は無視され
る。
で、欠陥命令の実行が再開される。命令は、ベクターメ
モリアクセス命令を開始点へ戻すことにより再開される
。この点において、メモリ管理欠陥が開始され、PC5
30の値が欠陥ベクターメモリアクセス命令を識別する
。VSAR400は、同期メモリ管理例外中は無視され
る。
というのは、メモリ管理例外はそれらが生じたときに取
り扱われるのであって、VPU30の状態情報を記憶す
る必要がないからである。
り扱われるのであって、VPU30の状態情報を記憶す
る必要がないからである。
スタックフレーム500のアドレス520は、例外が生
じたメモリ処理ユニット20のページの仮想アドレスを
表わす。PC530は、例外を引き起こした命令のプロ
グラムカウンタである。例外を引き起こす命令は、非同
期メモリ管理の場合にベクターメモリアクセスを実行す
る命令とは異なる。PSL540は、5PU15のプロ
グラム状態ワードである。
じたメモリ処理ユニット20のページの仮想アドレスを
表わす。PC530は、例外を引き起こした命令のプロ
グラムカウンタである。例外を引き起こす命令は、非同
期メモリ管理の場合にベクターメモリアクセスを実行す
る命令とは異なる。PSL540は、5PU15のプロ
グラム状態ワードである。
上記したように、非同期メモリ管理中には、5PU15
がVPU30と同時にスカラー命令を実行できるだけで
はなく、VPU30がベクターメモリアクセス命令と共
にベクター演算命令を実行することができる。非同期メ
モリ管理を用いた実行中にメモリ管理例外が生じた場合
には、VPU30がその状態を凍結するためのステップ
をとり、これにより、状態を記憶して後で呼び出し、例
外が生じたところで処理を再開できるようにする。
がVPU30と同時にスカラー命令を実行できるだけで
はなく、VPU30がベクターメモリアクセス命令と共
にベクター演算命令を実行することができる。非同期メ
モリ管理を用いた実行中にメモリ管理例外が生じた場合
には、VPU30がその状態を凍結するためのステップ
をとり、これにより、状態を記憶して後で呼び出し、例
外が生じたところで処理を再開できるようにする。
特に、VPU30がベクターメモリアクセス命令を実行
するときには、デコード及び制御論理回路66がその命
令を実行するに必要な多数のサブ動作を実際に実行する
。例えば、ベクターロード動作については、デコード及
び制御論理回路66が、0番目のエレメントからn番目
のエレメントまでの(n=VLR82の内容−1)各ベ
クターエレメントごとに、次のようなサブ動作を実行す
る。
するときには、デコード及び制御論理回路66がその命
令を実行するに必要な多数のサブ動作を実際に実行する
。例えば、ベクターロード動作については、デコード及
び制御論理回路66が、0番目のエレメントからn番目
のエレメントまでの(n=VLR82の内容−1)各ベ
クターエレメントごとに、次のようなサブ動作を実行す
る。
1、マスク機能の実行;
2、ベクター整列のチェック;そして
3、ベクターメモリアクセス命令のオペランドから発生
されたアドレスで始めて、対応するベクターエレメント
にメモリ処理ユニット20の次の位置の内容をロードす
る。
されたアドレスで始めて、対応するベクターエレメント
にメモリ処理ユニット20の次の位置の内容をロードす
る。
ベクター命令の実行に伴う各ベクターレジスタに関連し
ているのは、ベクターレジスタ制御論理回路60の多数
のカウンタ44の1つであり、これは、サブ動作が実行
されるのつれてnからOまでカウントダウンし、そして
関連するベクターレジスタの関連するベクターエレメン
トに対するアドレスを与える。メモリ管理例外によって
ベクター命令が停止された場合には、欠陥命令に関連し
たカウンタ44の1つの値が、その例外が生じたサブ動
作を指示する。この値は、終了されない他の命令に関連
したカウンタと同様に、VPU30の状態情報の一部分
として記憶されるのが好ましい。記憶された状態情報が
VPU30に再ロードされ、そしてメモリ管理欠陥が呼
び出されたときには、カウンタ44にサブ動作の値が再
ロードされ、欠陥命令及び全ての未終了の命令を、例外
が生じたところから実行し始めることができる。
ているのは、ベクターレジスタ制御論理回路60の多数
のカウンタ44の1つであり、これは、サブ動作が実行
されるのつれてnからOまでカウントダウンし、そして
関連するベクターレジスタの関連するベクターエレメン
トに対するアドレスを与える。メモリ管理例外によって
ベクター命令が停止された場合には、欠陥命令に関連し
たカウンタ44の1つの値が、その例外が生じたサブ動
作を指示する。この値は、終了されない他の命令に関連
したカウンタと同様に、VPU30の状態情報の一部分
として記憶されるのが好ましい。記憶された状態情報が
VPU30に再ロードされ、そしてメモリ管理欠陥が呼
び出されたときには、カウンタ44にサブ動作の値が再
ロードされ、欠陥命令及び全ての未終了の命令を、例外
が生じたところから実行し始めることができる。
このハードウェアは、参考としてここに取り上げる米国
特許出願筒093.499号に開示されている。
特許出願筒093.499号に開示されている。
ベクターメモリアクセス命令の処理中に、メモリ処理ユ
ニット20がベクターデコード及び制御論理回路66に
メモリ管理例外を知らせた場合には、該論理回路66が
VPSR200のP M Fビット260及びMFビッ
ト250をセットする。
ニット20がベクターデコード及び制御論理回路66に
メモリ管理例外を知らせた場合には、該論理回路66が
VPSR200のP M Fビット260及びMFビッ
ト250をセットする。
然し乍ら、VPU30は、5PU15に例外条件を通知
せず、従って、5PU15がスカラー命令の処理を続行
できるようにする。
せず、従って、5PU15がスカラー命令の処理を続行
できるようにする。
更に、論理回路66は、例外条件によって有効性が影響
されるようなソースデータをベクター命令が使用しない
限り、VPU30が例外発生時にスタートしたベクター
命令の実行を終了できるようにする。これは、ソース及
び行き先レジスタを検査することによって行なわれる。
されるようなソースデータをベクター命令が使用しない
限り、VPU30が例外発生時にスタートしたベクター
命令の実行を終了できるようにする。これは、ソース及
び行き先レジスタを検査することによって行なわれる。
第3図について上記したように、アドレス発生器108
.109.110は、ベクター命令に対するデータを含
むベクターレジスタファイル35のベクターレジスタを
識別する。これらの同じアドレス発生器は、ベクター命
令の結果を受は取るベクターレジスタも識別する。欠陥
命令に対するDEST REG値が別の命令に対する
5OURCE REG値と同じであると論理回路66
が決定した場合には、上記別の命令も停止される。
.109.110は、ベクター命令に対するデータを含
むベクターレジスタファイル35のベクターレジスタを
識別する。これらの同じアドレス発生器は、ベクター命
令の結果を受は取るベクターレジスタも識別する。欠陥
命令に対するDEST REG値が別の命令に対する
5OURCE REG値と同じであると論理回路66
が決定した場合には、上記別の命令も停止される。
メモリ管理例外は、5PU15がベクター命令をVPU
30に送信しようと試みる次のときまで、それ以上処理
されない。そのときには、5PU15はベクター命令を
VPU30に送信する手順の実行を開始し、その好まし
い方法が第15図のフローチャートに示されている。
30に送信しようと試みる次のときまで、それ以上処理
されない。そのときには、5PU15はベクター命令を
VPU30に送信する手順の実行を開始し、その好まし
い方法が第15図のフローチャートに示されている。
ベクター命令をVPU30に送信する前に、5PU15
は先ずVENビット210をチェックし、VPU30が
ディスエイブルされたかどうか調べる(ステップ700
)。従って、5PU15は、本発明による命令阻止手段
として働いて、■PU30がディスエイブルされたこと
をVENビット210が指示するときにベクター命令が
〜′PU30へ送られるのを防止する。このような場合
に、5PU15は、メモリ管理例外以外のものが生じた
(少なくとも好ましい実施例において)と結論し、「ベ
クタープロセッサディスエイブルド欠陥」のためのトラ
ップを与える(ステップ71O)。この欠陥を取り扱う
ルーチンは、演算取り扱い例外について以下で説明する
。VPU30がディスエイブルされたときを感知しそし
てトラップを設定するための手段は、5PU15の制御
論理ユニット40のマイクロコードの部分又は種々の回
路に含まれている。
は先ずVENビット210をチェックし、VPU30が
ディスエイブルされたかどうか調べる(ステップ700
)。従って、5PU15は、本発明による命令阻止手段
として働いて、■PU30がディスエイブルされたこと
をVENビット210が指示するときにベクター命令が
〜′PU30へ送られるのを防止する。このような場合
に、5PU15は、メモリ管理例外以外のものが生じた
(少なくとも好ましい実施例において)と結論し、「ベ
クタープロセッサディスエイブルド欠陥」のためのトラ
ップを与える(ステップ71O)。この欠陥を取り扱う
ルーチンは、演算取り扱い例外について以下で説明する
。VPU30がディスエイブルされたときを感知しそし
てトラップを設定するための手段は、5PU15の制御
論理ユニット40のマイクロコードの部分又は種々の回
路に含まれている。
VPU30がディスエイブルされない場合には、5PU
15がPMFビット260をチェックする(ステップ7
20)。PMFビット260がセットされると、報告さ
れないメモリ管理例外がある。5PU15はそのビット
をリセットしくステップ730)そしてメモリ管理欠陥
ハンドラに入り、ベクタープロセッサメモリ管理例外を
処理する(ステップ735)。この欠陥ハンドラは、当
業者によく知られた標準的なメモリ管理欠陥ハンドラで
ある。
15がPMFビット260をチェックする(ステップ7
20)。PMFビット260がセットされると、報告さ
れないメモリ管理例外がある。5PU15はそのビット
をリセットしくステップ730)そしてメモリ管理欠陥
ハンドラに入り、ベクタープロセッサメモリ管理例外を
処理する(ステップ735)。この欠陥ハンドラは、当
業者によく知られた標準的なメモリ管理欠陥ハンドラで
ある。
PMF 260がセットされなかった場合には(ステッ
プ720)、5PU15が次いでMFビット250をチ
ェックする(ステップ740)。
プ720)、5PU15が次いでMFビット250をチ
ェックする(ステップ740)。
MFビット250がセットされて、メモリ例外の原因が
修正されたが、その例外を生じたサブ動作がまだ実行さ
れていないことを指示する場合には、5PtJ15がM
Fビットをクリアしくステップ743)そしてVPU3
0を再スタートさせて、欠陥メモリ参照を再び試みる(
ステップ746)。
修正されたが、その例外を生じたサブ動作がまだ実行さ
れていないことを指示する場合には、5PtJ15がM
Fビットをクリアしくステップ743)そしてVPU3
0を再スタートさせて、欠陥メモリ参照を再び試みる(
ステップ746)。
VPU30が再スタートされた後、又はMFビット25
0がセットされなかった場合には、VPU30の命令待
ち行列(図示せず)がチェックされてそれがいっばいで
あるかどうか判断される(ステップ750)。もしそう
ならば、再び第15図の手順に入る。VPU30の待ち
行列がいっばいでない場合には、5PU15が次の命令
を発生しくステップ760)、これは、メモリ管理例外
を最初に引き起こした保留中のベクター命令である。
0がセットされなかった場合には、VPU30の命令待
ち行列(図示せず)がチェックされてそれがいっばいで
あるかどうか判断される(ステップ750)。もしそう
ならば、再び第15図の手順に入る。VPU30の待ち
行列がいっばいでない場合には、5PU15が次の命令
を発生しくステップ760)、これは、メモリ管理例外
を最初に引き起こした保留中のベクター命令である。
33.演」」1然
ベクターメモリ管理例外との状態とは異なり、ベクター
演算例外に遭遇するベクター命令は常に完了するように
実行される。演算例外が生じた場合には、デホールト又
はトランケイテッド結果がそれに対応するベクターレジ
スタエレメントに書き込まれる。演算例外条件の形式及
び行き先レジスタ番号は、VAER300の例外条件概
要フィールド320に記録される。VPLJ30のマス
クユニット90は、ベクター命令に対するEXCビット
174を読み取り、例外がイネーブルされるかどうか判
断する。上記したように、このビットは、浮動アンダー
フロー及び整数オーバーフローの例外をイネーブルする
。
演算例外に遭遇するベクター命令は常に完了するように
実行される。演算例外が生じた場合には、デホールト又
はトランケイテッド結果がそれに対応するベクターレジ
スタエレメントに書き込まれる。演算例外条件の形式及
び行き先レジスタ番号は、VAER300の例外条件概
要フィールド320に記録される。VPLJ30のマス
クユニット90は、ベクター命令に対するEXCビット
174を読み取り、例外がイネーブルされるかどうか判
断する。上記したように、このビットは、浮動アンダー
フロー及び整数オーバーフローの例外をイネーブルする
。
EXCビット174が浮動アンダーフロー又は整数オー
バーフローを生じさせる命令に対してセットされた場合
には、VPU30は、浮動小数点アンダーフローに対す
るデホールト指定オペランド値又は整数オーバーフロー
に対する下位ビットを適当な行き先レジスタエレメント
に送り、VPSR200のVENビット210をクリア
し、そしてVAER300に適当な演算例外情報を記憶
する。VPU30は処理を続ける。VPU30は、浮動
小数点のオーバーフロー、浮動小数点のゼロによる除算
、浮動小数点指定オペランド演算の例外(これらはディ
スエイブルできない)について同じ手順をたどる。
バーフローを生じさせる命令に対してセットされた場合
には、VPU30は、浮動小数点アンダーフローに対す
るデホールト指定オペランド値又は整数オーバーフロー
に対する下位ビットを適当な行き先レジスタエレメント
に送り、VPSR200のVENビット210をクリア
し、そしてVAER300に適当な演算例外情報を記憶
する。VPU30は処理を続ける。VPU30は、浮動
小数点のオーバーフロー、浮動小数点のゼロによる除算
、浮動小数点指定オペランド演算の例外(これらはディ
スエイブルできない)について同じ手順をたどる。
VAER300のベクター行き先レジスタマスク310
の16個のベクターレジスタのどれが演算例外の発生に
よるデホールト値を受けたかを指示する。形式演算例外
は、浮動小数点アンダーフロー、浮動小数点のゼロによ
る除算、浮動小数点指定オペランド、浮動小数点のオー
バーフロー及び整数オーバーフローを含む。ベクター演
算例外が生じたときには、VPU30自体がディスエイ
ブルする。VPU30は、例外を生じるベクター命令及
びVPU30に既にあった他の命令の実行を完了するが
、再びイネーブルされるまで5PU15からの次のベク
ター命令の受は入れを拒絶する。VPU30は、VPS
R20C1)VENビット210にゼロを書き込むこと
によりディスエイブルされる。
の16個のベクターレジスタのどれが演算例外の発生に
よるデホールト値を受けたかを指示する。形式演算例外
は、浮動小数点アンダーフロー、浮動小数点のゼロによ
る除算、浮動小数点指定オペランド、浮動小数点のオー
バーフロー及び整数オーバーフローを含む。ベクター演
算例外が生じたときには、VPU30自体がディスエイ
ブルする。VPU30は、例外を生じるベクター命令及
びVPU30に既にあった他の命令の実行を完了するが
、再びイネーブルされるまで5PU15からの次のベク
ター命令の受は入れを拒絶する。VPU30は、VPS
R20C1)VENビット210にゼロを書き込むこと
によりディスエイブルされる。
VPU30がディスエイブルされたときに5PU15が
後でVPtJ30にベクター命令を送ろうとした場合に
は、[ベクタープロセッサディスエイブルド欠陥」が生
じる。
後でVPtJ30にベクター命令を送ろうとした場合に
は、[ベクタープロセッサディスエイブルド欠陥」が生
じる。
4、 スイ チング −コー
メモリ管理例外及び演算例外は、VPtJ30及び5P
U15が既に実行しているプロセス又はプログラムから
の命令を実行する場合には取り扱いが最も困難である。
U15が既に実行しているプロセス又はプログラムから
の命令を実行する場合には取り扱いが最も困難である。
この状態は、文脈スイッチングが生じたときに発生する
。一般に、文脈スイッチングの間には多量のシステムr
オーバーヘッド」が費やされ、僅かなセーブであっても
、データ処理システムが非常に効率的なものとなる。
。一般に、文脈スイッチングの間には多量のシステムr
オーバーヘッド」が費やされ、僅かなセーブであっても
、データ処理システムが非常に効率的なものとなる。
第16図は、「最終プロセス」と称する1つのプロセス
の実行が停止されそして「現在プロセス」と称する新た
なプロセスの実行が開始されるときの文脈スイッチング
中に実行される好ましいアルゴリズムのフローチャート
である。文脈スイッチが生じると(ステップ800)、
5PU15は、VPU30がビジーでなくなるまで待機
する(ステップ801)。ビジーでない状態は、ゼロの
値を有す6VP S R200(7)B SYビット2
90によって指示される。VPU30がビジーでないと
、5PU15は最終プロセスのスカラー状態情報のみを
セーブする(ステップ802)。この状態情報は、最終
プロセスに対応するメモリ処理ユニット20内の位置へ
これを記憶することによってセーブされる。5PU15
は、それ自身のプロセス状態レジスタ(第14図のPS
L540を参照)を含んでおり、その内容は、最終の5
PU15の状態をセーブする段階の一部分としてセーブ
される。この段階中に、5PU15の全てのレジスタの
内容もセーブされる。
の実行が停止されそして「現在プロセス」と称する新た
なプロセスの実行が開始されるときの文脈スイッチング
中に実行される好ましいアルゴリズムのフローチャート
である。文脈スイッチが生じると(ステップ800)、
5PU15は、VPU30がビジーでなくなるまで待機
する(ステップ801)。ビジーでない状態は、ゼロの
値を有す6VP S R200(7)B SYビット2
90によって指示される。VPU30がビジーでないと
、5PU15は最終プロセスのスカラー状態情報のみを
セーブする(ステップ802)。この状態情報は、最終
プロセスに対応するメモリ処理ユニット20内の位置へ
これを記憶することによってセーブされる。5PU15
は、それ自身のプロセス状態レジスタ(第14図のPS
L540を参照)を含んでおり、その内容は、最終の5
PU15の状態をセーブする段階の一部分としてセーブ
される。この段階中に、5PU15の全てのレジスタの
内容もセーブされる。
VPU30の状態情報はこのときには記憶されない。こ
れは、VPU30の状態情報が記憶されたときに生じた
オーバーヘッドを遅延しそして除去することもある。V
PU30の状態情報を記憶する場合には、VPSR20
0、VAER300、VSAR400及び他のシステム
レジスタの記憶を必要とするだけでなく、より重要なこ
とには、64個のエレメントを各々有する16個のベク
ターレジスタの記憶を必要とし、これはシステムリソー
スの相当の部分を占有する。
れは、VPU30の状態情報が記憶されたときに生じた
オーバーヘッドを遅延しそして除去することもある。V
PU30の状態情報を記憶する場合には、VPSR20
0、VAER300、VSAR400及び他のシステム
レジスタの記憶を必要とするだけでなく、より重要なこ
とには、64個のエレメントを各々有する16個のベク
ターレジスタの記憶を必要とし、これはシステムリソー
スの相当の部分を占有する。
次イテ、5PU15は、VPSR200(7)VENビ
ット210をクリアすることによりVPU30をディス
エイブルする(ステップ804)。
ット210をクリアすることによりVPU30をディス
エイブルする(ステップ804)。
VENビット210をクリアすると、「ベクタープロセ
ッサディスエイブルド欠陥」に影響を及ぼすことなく現
在プロセスがベクター命令を実行することが防止される
。実際には、以下で詳細に述べるように、最終プロセス
に対するVPU30の状態は、現在プロセスがベクター
命令を実行しない場合には現在プロセスの実行中に記憶
される必要がない。
ッサディスエイブルド欠陥」に影響を及ぼすことなく現
在プロセスがベクター命令を実行することが防止される
。実際には、以下で詳細に述べるように、最終プロセス
に対するVPU30の状態は、現在プロセスがベクター
命令を実行しない場合には現在プロセスの実行中に記憶
される必要がない。
次いで、現在プロセスのスカラー状態情報は、現在プロ
セスに対応するメモリ処理ユニット20の位置からロー
ドされ(ステップ806)、次いで、現在プロセスが実
行を開始する(ステップ808)。現在プロセスのベク
ター状態は文脈スイッチング中にはロードされないので
、VPU30は、ベクター命令を実行するための最終プ
ロセスの状態情報を含んでいる。然し乍ら、VPtJ3
0がディスエイブルされているので、この状態が現在プ
ロセスにアクセスすることはない。
セスに対応するメモリ処理ユニット20の位置からロー
ドされ(ステップ806)、次いで、現在プロセスが実
行を開始する(ステップ808)。現在プロセスのベク
ター状態は文脈スイッチング中にはロードされないので
、VPU30は、ベクター命令を実行するための最終プ
ロセスの状態情報を含んでいる。然し乍ら、VPtJ3
0がディスエイブルされているので、この状態が現在プ
ロセスにアクセスすることはない。
第17図は、プロセスが新たな命令を実行し始めるたび
に実行されるべき好ましいアルゴリズムのフローチャー
トである。第17図に示されたステップは、5PU15
において実行されるのが好ましい。
に実行されるべき好ましいアルゴリズムのフローチャー
トである。第17図に示されたステップは、5PU15
において実行されるのが好ましい。
命令が特権命令であり(ステップ900)そして5PU
15が特権モードにない(ステップ902)場合には、
不法命令トラップが生じ(ステップ904)そして第1
7図に示されたアルゴリズムが完了する。不法命令トラ
ップを取り扱う手順は、特権命令を含むほとんどの各デ
ータ処理システムに共通であり、当業者によく知られて
いる。
15が特権モードにない(ステップ902)場合には、
不法命令トラップが生じ(ステップ904)そして第1
7図に示されたアルゴリズムが完了する。不法命令トラ
ップを取り扱う手順は、特権命令を含むほとんどの各デ
ータ処理システムに共通であり、当業者によく知られて
いる。
命令が特権命令であり(ステップ900)そして5PU
15が特権モードにある(ステップ902)場合には、
その命令が実1行される(ステップ905)。
15が特権モードにある(ステップ902)場合には、
その命令が実1行される(ステップ905)。
命令が特権命令でなく(ステップ900)そしてベクタ
ー命令でない(ステップ908)場合には、5PU15
がその命令を実行する(ステップ910)。然し乍ら、
命令がベクター命令である(ステップ908)場合には
、制御論理ユニット40のマイクロコードがVPSR2
00(7)VENビット210をテストする(ステップ
912)。
ー命令でない(ステップ908)場合には、5PU15
がその命令を実行する(ステップ910)。然し乍ら、
命令がベクター命令である(ステップ908)場合には
、制御論理ユニット40のマイクロコードがVPSR2
00(7)VENビット210をテストする(ステップ
912)。
VEN210がセットされて、VPU30がイネーブル
されたことを指示する場合には、VPU30がその命令
を実行する(ステップ914)。
されたことを指示する場合には、VPU30がその命令
を実行する(ステップ914)。
VENビット210がセットされない(ステツブ912
)場合は、「ベクタープロセッサディスエイブルド欠陥
」が生じる(ステップ916)。
)場合は、「ベクタープロセッサディスエイブルド欠陥
」が生じる(ステップ916)。
上記したように、現在プロセスがまだベクター命令を実
行しないとき或いは演算例外条件が生じた場合には、V
ENビット210はセットされない。
行しないとき或いは演算例外条件が生じた場合には、V
ENビット210はセットされない。
VENビット210がセットされないときに現在プロセ
スがベクター命令を実行しようとする場合には、システ
ムは、現在プロセスのベクター状態がメモリヘスイッチ
されることと、現在プロセスのベクター命令が実行され
る前に例外条件が処理されることとを確保しなければな
らない。
スがベクター命令を実行しようとする場合には、システ
ムは、現在プロセスのベクター状態がメモリヘスイッチ
されることと、現在プロセスのベクター命令が実行され
る前に例外条件が処理されることとを確保しなければな
らない。
第18図は、第17図のステップ916に示されたよう
なrベクタープロセッサディスエイブルド欠陥」を処理
するための好ましいアルゴリズムのフローチャートであ
る。このアルゴリズムの目的は3つある。即ち、(1)
ベクター例外条件を処理すること、(2)ベクター命令
を最後に実行したプロセスからの全てのVPU30状態
情報を記憶すること、及び(3)現在プロセスに対しV
PU30の状態情報を検索することである。上記(2)
及び(3)は、現在プロセスがVPU30を最後に用い
たプロセスと同じである場合には必要でない。前記の(
1)は、例外条件が保留中であるときのみ必要である。
なrベクタープロセッサディスエイブルド欠陥」を処理
するための好ましいアルゴリズムのフローチャートであ
る。このアルゴリズムの目的は3つある。即ち、(1)
ベクター例外条件を処理すること、(2)ベクター命令
を最後に実行したプロセスからの全てのVPU30状態
情報を記憶すること、及び(3)現在プロセスに対しV
PU30の状態情報を検索することである。上記(2)
及び(3)は、現在プロセスがVPU30を最後に用い
たプロセスと同じである場合には必要でない。前記の(
1)は、例外条件が保留中であるときのみ必要である。
然し乍ら、上記項目(1)、(2)及び(3)は、現在
実行しているプロセスがベクター命令を実行する前に全
て完了されねばならない。
実行しているプロセスがベクター命令を実行する前に全
て完了されねばならない。
「ベクタープロセッサディスエイブルド欠陥」動作の第
1ステツプは、現在プロセス及び最終プロセスの識別子
に対して指定されたメモリ位置に記憶されたプロセス識
別番号を比較することにより、現在プロセスがベクター
命令を実行するためにVPU30を使用した最後のプロ
セスでもあるかどうかを判断することである(ステップ
1OOO)。或いは又、この動作は、5PU15に設け
られた特殊なハードウェアレジスタによって行なうこと
もできる。ステップt oooの判断が[イエス」であ
る場合には、VPU30に対する状態情報を更新するこ
とは不要である。ステップ1000の判断が「イエス」
である場合には、保留中の演算又はメモリ管理例外条件
があるかどうかの判断が行なわれる(ステップ1002
)。上記したように、公知のシステムとは異なり、デー
タ処理システム10は、例外が生じたときにそれを処理
するのではなく、VPU30が次に使用されるときにそ
れを処理する。これは、VPU30がそのベクター状態
情報をセーブしそして現在プロセスに対するベクター状
態情報を検索するのと同時である。例外条件の存在は、
VPSR200のPMFビット260(メモリ管理例外
)及びAEXビット270(演算例外)を5PU15が
検査することによって判断される。
1ステツプは、現在プロセス及び最終プロセスの識別子
に対して指定されたメモリ位置に記憶されたプロセス識
別番号を比較することにより、現在プロセスがベクター
命令を実行するためにVPU30を使用した最後のプロ
セスでもあるかどうかを判断することである(ステップ
1OOO)。或いは又、この動作は、5PU15に設け
られた特殊なハードウェアレジスタによって行なうこと
もできる。ステップt oooの判断が[イエス」であ
る場合には、VPU30に対する状態情報を更新するこ
とは不要である。ステップ1000の判断が「イエス」
である場合には、保留中の演算又はメモリ管理例外条件
があるかどうかの判断が行なわれる(ステップ1002
)。上記したように、公知のシステムとは異なり、デー
タ処理システム10は、例外が生じたときにそれを処理
するのではなく、VPU30が次に使用されるときにそ
れを処理する。これは、VPU30がそのベクター状態
情報をセーブしそして現在プロセスに対するベクター状
態情報を検索するのと同時である。例外条件の存在は、
VPSR200のPMFビット260(メモリ管理例外
)及びAEXビット270(演算例外)を5PU15が
検査することによって判断される。
保留中の演算例外がある場合には、AEXビット270
がクリアされ(ステップ1003)そしてデータ処理分
野の当業者に知られた手順に従って例外に適したやり方
で例外が処理される(ステップ1004) 、保留中の
演算例外状態がない場合には(ステップ1002)、最
後の[ベクタープロセッサディスエイブルド欠陥J以来
に文脈スイッチが生じたかどうか判断することが必要で
ある。現在プロセスがVPU30を最後に用いたプロセ
スと同じであり(ステップ1000)、それ故、VPt
J30のベクター状態情報をセーブ又は復帰する必要が
ない場合には、通常のスカラー処理によって作用される
VPtJ30のレジスタを更新することが必要である。
がクリアされ(ステップ1003)そしてデータ処理分
野の当業者に知られた手順に従って例外に適したやり方
で例外が処理される(ステップ1004) 、保留中の
演算例外状態がない場合には(ステップ1002)、最
後の[ベクタープロセッサディスエイブルド欠陥J以来
に文脈スイッチが生じたかどうか判断することが必要で
ある。現在プロセスがVPU30を最後に用いたプロセ
スと同じであり(ステップ1000)、それ故、VPt
J30のベクター状態情報をセーブ又は復帰する必要が
ない場合には、通常のスカラー処理によって作用される
VPtJ30のレジスタを更新することが必要である。
例えば、VPU30が5PU15に配置されたメモリ管
理レジスタのコピーを含む場合には、VPU30のレジ
スタがそれらの内容を5PU15のレジスタの内容と合
致させるために各文脈スイッチの後に更新されねばなら
ない。
理レジスタのコピーを含む場合には、VPU30のレジ
スタがそれらの内容を5PU15のレジスタの内容と合
致させるために各文脈スイッチの後に更新されねばなら
ない。
次いで、VPU30は、VENビット210をセットす
ることによりイネーブルされる(ステップ1010)、
次いで、第17図の命令デコードアルゴリズムのステッ
プBに制御が復帰しくステップ1012)、現在プロセ
スが新たな命令の実行を開始する。
ることによりイネーブルされる(ステップ1010)、
次いで、第17図の命令デコードアルゴリズムのステッ
プBに制御が復帰しくステップ1012)、現在プロセ
スが新たな命令の実行を開始する。
現在プロセスがVPtJ30を最後に使用したプロセス
と同じでない場合には(ステップ1000)、多数のス
テップが生じる。5PU15は、先ず、VPU30がベ
クター命令を実行しなくなるまで待機する(ステップ1
014)。この非ビジー状態は、VPSR200のBS
Yビット290の0値によって指示される。第2に、保
留中の演算例外が存在するかどうか判断される(ステッ
プ1016) 。VPSR200(7)AEXビット2
70がセットされて、保留演算例外の存在を指示する場
合には、VAER300に含まれた演算例外状態がセー
ブされ、VPU30を用いる最後のプロセスについての
演算例外の存在がその後の処理のために注目される(ス
テップl O18)。このような例外の表示は、VPU
30を用いる最後のプロセスに関連したソフトウェアフ
ラグによって達成される。
と同じでない場合には(ステップ1000)、多数のス
テップが生じる。5PU15は、先ず、VPU30がベ
クター命令を実行しなくなるまで待機する(ステップ1
014)。この非ビジー状態は、VPSR200のBS
Yビット290の0値によって指示される。第2に、保
留中の演算例外が存在するかどうか判断される(ステッ
プ1016) 。VPSR200(7)AEXビット2
70がセットされて、保留演算例外の存在を指示する場
合には、VAER300に含まれた演算例外状態がセー
ブされ、VPU30を用いる最後のプロセスについての
演算例外の存在がその後の処理のために注目される(ス
テップl O18)。このような例外の表示は、VPU
30を用いる最後のプロセスに関連したソフトウェアフ
ラグによって達成される。
次のステップは、保留中の非同期メモリ管理例外が存在
するかどうか判断することである(ステップ1020)
。好ましくは、このような例外の存在がVPSR200
のMFビット250の1の値によって指示された場合に
は、VPU30を使用する最後のプロセスに関連したソ
フトウェアフラグがセットされ、そのプロセスに対して
実行特定ベクター情報がセーブされる(ステップ102
2)。
するかどうか判断することである(ステップ1020)
。好ましくは、このような例外の存在がVPSR200
のMFビット250の1の値によって指示された場合に
は、VPU30を使用する最後のプロセスに関連したソ
フトウェアフラグがセットされ、そのプロセスに対して
実行特定ベクター情報がセーブされる(ステップ102
2)。
次いで、VPU30は、VPSR200のVENビット
210をセットすることによってイネーブルされそして
VPU30は、VPSR300のR3Tビット200を
セットすることによってリセットされる(ステップ10
24)。現在プロセスは、VPU30を最後に用いたプ
ロセスと同じではないから(ステップ1000)、VP
U30の状態情報を更新しなければならない。これは2
つのステップで行なわれる。先ず、第1に、VPU30
の状態情報は、VPU30を最後に使用したプロセスに
対応するメモリ処理ユニット20の領域に記憶される(
ステップ1026)。仮想アドレス及びメモリ保護機能
を実行するために5PU15にメモリ管理レジスタが設
けられていると共にVPU30に対応するメモリ管理レ
ジスタが設けられている。この場合、VPU30のメモ
リ管理レジスタは、5PU15の対応するメモリ管理レ
ジスタに合致させるために更新する必要がある。次いで
、現在プロセスに対するVPU30の状態情報が現在プ
ロセスに対応するメモリ処理ユニット20の領域から検
索され、VPU30のベクターレジスタに記憶される(
ステップ1027)と共に、現在プロセスの識別番号が
メモリ位置に記憶されるか又は最後のベクタープロセス
を識別するために指定された特殊なハードウェアレジス
タに記憶される。
210をセットすることによってイネーブルされそして
VPU30は、VPSR300のR3Tビット200を
セットすることによってリセットされる(ステップ10
24)。現在プロセスは、VPU30を最後に用いたプ
ロセスと同じではないから(ステップ1000)、VP
U30の状態情報を更新しなければならない。これは2
つのステップで行なわれる。先ず、第1に、VPU30
の状態情報は、VPU30を最後に使用したプロセスに
対応するメモリ処理ユニット20の領域に記憶される(
ステップ1026)。仮想アドレス及びメモリ保護機能
を実行するために5PU15にメモリ管理レジスタが設
けられていると共にVPU30に対応するメモリ管理レ
ジスタが設けられている。この場合、VPU30のメモ
リ管理レジスタは、5PU15の対応するメモリ管理レ
ジスタに合致させるために更新する必要がある。次いで
、現在プロセスに対するVPU30の状態情報が現在プ
ロセスに対応するメモリ処理ユニット20の領域から検
索され、VPU30のベクターレジスタに記憶される(
ステップ1027)と共に、現在プロセスの識別番号が
メモリ位置に記憶されるか又は最後のベクタープロセス
を識別するために指定された特殊なハードウェアレジス
タに記憶される。
次いで、現在プロセスに関連したソフトウェアフラグを
チェックし、現在プロセスに対して保留中の非同期メモ
リ管理例外があるかどうが判断される(ステップ102
8)。このような保留中の例外が存在する場合には、現
在プロセスに対するソフトウェアフラグがクリアされ、
非同期メモリ管理例外時のベクター状態が復帰される(
ステップ1030)。これは、VPU30のレジスタに
ついて前記したように、セーブされたベクター状態情報
のアドレスをVSAR400に書き込みそしてVPSR
300のRLDビット240及びVENビット210を
セットすることにより達成される。
チェックし、現在プロセスに対して保留中の非同期メモ
リ管理例外があるかどうが判断される(ステップ102
8)。このような保留中の例外が存在する場合には、現
在プロセスに対するソフトウェアフラグがクリアされ、
非同期メモリ管理例外時のベクター状態が復帰される(
ステップ1030)。これは、VPU30のレジスタに
ついて前記したように、セーブされたベクター状態情報
のアドレスをVSAR400に書き込みそしてVPSR
300のRLDビット240及びVENビット210を
セットすることにより達成される。
次いで、現在プロセスに関連したソフトウェアフラグを
チェックし、現在プロセスに対して保留中の演算例外が
あるかどうか判断される(ステップ1032)。このよ
うな保留中の例外が存在する場合には、VPSR300
のビットVEN210がクリアされ、VPU30をディ
スエイブルし、ステップl 004と同様に、データ処
理の分野の当業者に知られたやり方で、演算例外が処理
される(ステップ1034)・ 第18図の「ベクタープロセッサディスエイブルド欠陥
」取り扱いアルゴリズムが完了したときには(ステップ
1036)、第17図の命令デコードアルゴリズムのス
テップBに制御が復帰し、現在プロセスが新たな命令の
実行を開始する。
チェックし、現在プロセスに対して保留中の演算例外が
あるかどうか判断される(ステップ1032)。このよ
うな保留中の例外が存在する場合には、VPSR300
のビットVEN210がクリアされ、VPU30をディ
スエイブルし、ステップl 004と同様に、データ処
理の分野の当業者に知られたやり方で、演算例外が処理
される(ステップ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図に示された手順において「ベクタ
ープロセッサディスニーrブルド欠陥」セットを処理す
る際に第1図のデータ処理システムによって行なわれる
好ましいて順を示すフローチャートである。 10・・・データ処理システム 15・・・スカラー処理ユニット(spu)20・・・
メモリ処理ユニット 25・・・命令処理ユニット(IPU)3Q・二・ベク
ター処理ユニット(VPU)35・・・ベクターレジス
タファイル 40・・・制御論理ユニット 50・・・命令パーサ 60・・・制御論理回路 70・・・ベクター乗算器 80・・・ベクター加算器 90・・・マスクユニット 103・・・制御ワードデコーダエレメント104・・
・ディスバッチ形式論理回路105・・・制御ワード形
式論理回路 106・・・OPコードデコード論理回路107・・・
発行判断論理回路 lO8,109,110・・・アドレス発生器115
・ ・ 116 ・ ・ 140 ・ ・ 150 ・ ・ 152 ・ ・ 160 ・ ・ 162 ・ ・ 163、1 指定子 170・・ 172・・ 174・・ 182・・ 190・・ 192・・ ・命令バッファ ・マルチプレクサ ・ベクター制御ワード指定子 ・OPコードフィールド ・オペランドポインタ部分 58・・・オペランド指定子 ・ベクター制御ワード ・フラグフィールド 64.165・・・ベクターレジスタ ・マスク動作イネーブルフラグ ・一致真/偽フラグ ・例外イネーブルフラグ ・ベクター長さレジスタ ・ベクター結果 ・行き先レジスタ 図面O浄書を内容;:二三;−) 第40図 4bits bits bit3 bit3 印刷 蒙L ↓ 第 図 命命の処理 ベクター演算例外し・ンスタ(VA E R)第12図 メモリ管理欠陥スタックフレーム 第14図 命令デフ−F 第 17 図
実施例を示す図、 第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図に示された手順において「ベクタ
ープロセッサディスニーrブルド欠陥」セットを処理す
る際に第1図のデータ処理システムによって行なわれる
好ましいて順を示すフローチャートである。 10・・・データ処理システム 15・・・スカラー処理ユニット(spu)20・・・
メモリ処理ユニット 25・・・命令処理ユニット(IPU)3Q・二・ベク
ター処理ユニット(VPU)35・・・ベクターレジス
タファイル 40・・・制御論理ユニット 50・・・命令パーサ 60・・・制御論理回路 70・・・ベクター乗算器 80・・・ベクター加算器 90・・・マスクユニット 103・・・制御ワードデコーダエレメント104・・
・ディスバッチ形式論理回路105・・・制御ワード形
式論理回路 106・・・OPコードデコード論理回路107・・・
発行判断論理回路 lO8,109,110・・・アドレス発生器115
・ ・ 116 ・ ・ 140 ・ ・ 150 ・ ・ 152 ・ ・ 160 ・ ・ 162 ・ ・ 163、1 指定子 170・・ 172・・ 174・・ 182・・ 190・・ 192・・ ・命令バッファ ・マルチプレクサ ・ベクター制御ワード指定子 ・OPコードフィールド ・オペランドポインタ部分 58・・・オペランド指定子 ・ベクター制御ワード ・フラグフィールド 64.165・・・ベクターレジスタ ・マスク動作イネーブルフラグ ・一致真/偽フラグ ・例外イネーブルフラグ ・ベクター長さレジスタ ・ベクター結果 ・行き先レジスタ 図面O浄書を内容;:二三;−) 第40図 4bits bits bit3 bit3 印刷 蒙L ↓ 第 図 命命の処理 ベクター演算例外し・ンスタ(VA E R)第12図 メモリ管理欠陥スタックフレーム 第14図 命令デフ−F 第 17 図
Claims (9)
- (1)複数のプロセスの部分を順次交互に実行するマル
チタスクデータ処理システムであって、上記プロセスは
一連の命令より成り、上記データ処理システムによって
現在実行されている上記複数のプロセスの1つが現在プ
ロセスを呼び出すようにされたデータ処理システムにお
いて、 上記プロセスに各々対応する複数の部分を有するメモリ
と、 スカラー命令を実行するためのスカラー処理手段と、 上記プロセスにおけるベクター命令を実行するためのベ
クター処理手段であって、このベクター処理手段の実行
状態を示す状態情報を記憶するためのベクター状態手段
を含むようなベクター処理手段と、 スカラー命令及びベクター命令を識別して、各々上記ス
カラー処理手段及びベクター処理手段へ供給する命令デ
コード手段と、 上記現在プロセスが上記ベクター命令の1つを実行しよ
うとするときにこれを確認するためのベクター命令識別
手段と、 上記ベクター処理手段がベクター命令を最も最近に実行
したところの上記プロセスの1つを最終ベクターユーザ
プロセスとして識別するための最終ユーザ指示手段と、 上記ベクター命令識別手段及び上記最終ユーザ指示手段
に応答し、上記現在プロセスがベクター命令を実行しよ
うとすること及び上記最終ベクターユーザプロセスが上
記現在プロセスと異なることの両方を上記ベクター命令
識別手段が確認したときに上記データ処理システムが上
記ベクター状態情報を上記最終ベクターユーザプロセス
に対応する位置の1つにおいて上記メモリに記憶するよ
うにさせるセーブ手段とを具備することを特徴とするデ
ータ処理システム。 - (2)上記セーブ手段に応答し、上記データ処理システ
ムが上記現在プロセスに対応する上記メモリの部分から
の内容を上記ベクター状態手段に記憶するようにさせる
復帰手段を更に備えた請求項1に記載のデータ処理シス
テム。 - (3)上記データ処理システムが上記複数のプロセスの
うちの新たなプロセスを実行し始めるときにこれを確認
するための文脈スイッチング手段を更に備えた請求項1
に記載のデータ処理システム。 - (4)上記データ処理手段は、このデータ処理手段が上
記複数のプロセスのうちの新たなプロセスを実行し始め
る前に上記スカラー処理手段に影響を及ぼすことなく上
記ベクター処理手段をディスエイブルするためのベクタ
ーディスエイブル手段を備えており、そして 上記ベクター命令識別手段は、上記ベクター処理手段が
ディスエイブルされるかどうかを調べるべく上記ベクタ
ー処理手段をチェックするための手段を備えている請求
項1に記載のデータ処理手段。 - (5)上記プロセスにおけるスカラー命令を実行するた
めのスカラー処理手段であって、このスカラー処理手段
の実行状態を示すスカラー状態情報を記憶するスカラー
状態手段を含んでいるようなスカラー処理手段と、 上記データ処理システムが現在プロセスの実行を終了す
るときに上記データ処理システムが上記スカラー状態情
報を現在プロセスに対応する上記部分の1つにおいて上
記メモリに記憶するようにさせるスカラーセーブ手段と
を更に備えている請求項3に記載のデータ処理システム
。 - (6)上記スカラースレーブ手段に応答して、実行され
ようとする新たなプロセスの1つに対応する上記メモリ
の部分に記憶された新たなスカラー状態情報を上記デー
タ処理システムが上記スカラー状態手段に記憶するよう
にさせるスカラー復帰手段を更に備えている請求項5に
記載のデータ処理システム。 - (7)ベクター命令を含む複数のプロセスの部分を交互
に実行するマルチタスクデータ処理システムを管理する
方法であって、現在実行されている上記複数のプロセス
の1つが現在プロセスを呼び出すようにし、上記データ
処理システムは、上記ベクター命令の実行と同時にスカ
ラー命令も実行する個別のベクタープロセッサを含んで
おり、上記方法は、 a)ベクター命令を最も最近に実行した最後のベクター
プロセスに対する上記ベクタープロセッサの実行状態を
示すベクター状態情報を上記ベクタープロセッサに記憶
し、 b)次のベクター命令を実行するまでスカラー命令を実
行し続け、 c)最後のベクタープロセスに対するベクター状態情報
をメモリに記憶し、そして次のベクター命令を実行すべ
きときに現在プロセスが最後のベクタープロセスと同じ
でない場合には上記現在プロセスに対するベクター状態
情報を上記ベクタープロセッサに検索することを特徴と
する方法。 - (8)更に、 a)最後のベクタープロセスが保留されたときにベクタ
ープロセッサをディスエイブルし、b)次のベクター命
令を実行すべきときにディスエイブルされたベクタープ
ロセッサを欠陥とみなし、 c)最後のベクタープロセスのベクター状態をセーブし
、そして現在プロセスが最後のベクタープロセスと同じ
でない場合に現在プロセスのベクター状態を復帰し、そ
して d)ベクタープロセッサをイネーブルし、ベクター命令
を再び試みて、ディスエイブルされたベクタープロセッ
サを欠陥とする段階を更に備えた請求項7に記載の方法
。 - (9)上記データ処理システムは、更に、スカラープロ
セッサを備えていると共に、上記現在プロセスに対する
上記スカラープロセッサの実行状態を示す記憶されたス
カラー状態情報を含み、上記方法は、 a)新たなプロセスが開始されたときに上記記憶された
スカラー状態情報を上記メモリにセーブし、そして b)このセーブされたスカラー状態情報を上記メモリか
ら復帰し、上記セーブされたスカラー状態情報は上記新
たなプロセスの実行状態を示す請求項7に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/170,399 US5008812A (en) | 1988-03-18 | 1988-03-18 | Context switching method and apparatus for use in a vector processing system |
| US170399 | 2002-06-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0242569A true JPH0242569A (ja) | 1990-02-13 |
Family
ID=22619714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1063418A Pending JPH0242569A (ja) | 1988-03-18 | 1989-03-15 | ベクター処理システムに用いる文脈スイッチング方法及び装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5008812A (ja) |
| EP (1) | EP0333366B1 (ja) |
| JP (1) | JPH0242569A (ja) |
| CA (1) | CA1317027C (ja) |
| DE (1) | DE68927415T2 (ja) |
Families Citing this family (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5167028A (en) * | 1989-11-13 | 1992-11-24 | Lucid Corporation | System for controlling task operation of slave processor by switching access to shared memory banks by master processor |
| JP2504235B2 (ja) * | 1989-11-16 | 1996-06-05 | 三菱電機株式会社 | デ―タ処理装置 |
| US5544337A (en) * | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
| US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
| US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
| US5598547A (en) * | 1990-06-11 | 1997-01-28 | Cray Research, Inc. | Vector processor having functional unit paths of differing pipeline lengths |
| US5390329A (en) * | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
| WO1992003783A1 (en) * | 1990-08-23 | 1992-03-05 | Supercomputer Systems Limited Partnership | Method of implementing kernel functions |
| US5742839A (en) * | 1992-01-30 | 1998-04-21 | Fujitsu Limited | Coprocessor for performing an arithmetic operation by automatically reading data from an external memory |
| US5423051A (en) * | 1992-09-24 | 1995-06-06 | International Business Machines Corporation | Execution unit with an integrated vector operation capability |
| US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
| JP2561801B2 (ja) * | 1993-02-24 | 1996-12-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プロセス・スケジューリングの管理方法およびシステム |
| US5623698A (en) * | 1993-04-30 | 1997-04-22 | Cray Research, Inc. | Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits |
| US5619709A (en) * | 1993-09-20 | 1997-04-08 | Hnc, Inc. | System and method of context vector generation and retrieval |
| US5490272A (en) * | 1994-01-28 | 1996-02-06 | International Business Machines Corporation | Method and apparatus for creating multithreaded time slices in a multitasking operating system |
| US5666523A (en) * | 1994-06-30 | 1997-09-09 | Microsoft Corporation | Method and system for distributing asynchronous input from a system input queue to reduce context switches |
| US5481719A (en) * | 1994-09-09 | 1996-01-02 | International Business Machines Corporation | Exception handling method and apparatus for a microkernel data processing system |
| CN1326033C (zh) | 1994-12-02 | 2007-07-11 | 英特尔公司 | 可以对复合操作数进行压缩操作的微处理器 |
| US5852726A (en) * | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
| US5835748A (en) * | 1995-12-19 | 1998-11-10 | Intel Corporation | Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file |
| US6792523B1 (en) | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
| US5701508A (en) | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
| US5940859A (en) * | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
| US5857096A (en) * | 1995-12-19 | 1999-01-05 | Intel Corporation | Microarchitecture for implementing an instruction to clear the tags of a stack reference register file |
| US5812823A (en) * | 1996-01-02 | 1998-09-22 | International Business Machines Corporation | Method and system for performing an emulation context save and restore that is transparent to the operating system |
| US5809286A (en) * | 1996-05-01 | 1998-09-15 | Mci Communications Corporation | Method and apparatus for emulating a dynamically configured digital cross-connect switch network |
| US5867689A (en) * | 1996-05-01 | 1999-02-02 | Mci Communications Corporation | Method and apparatus for emulating a digital cross-connect switch network using a flexible topology to test MCS network management |
| US5850536A (en) * | 1996-05-01 | 1998-12-15 | Mci Communications Corporation | Method and system for simulated multi-tasking |
| US5812826A (en) * | 1996-06-27 | 1998-09-22 | Mci Communications Corporation | Method and apparatus for emulating a network of state monitoring devices |
| US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
| US5854930A (en) * | 1996-12-30 | 1998-12-29 | Mci Communications Corporations | System, method, and computer program product for script processing |
| US5954829A (en) * | 1996-12-30 | 1999-09-21 | Mci Communications Corporation | System, method, and computer program product for digital cross connect testing |
| US6128641A (en) * | 1997-09-12 | 2000-10-03 | Siemens Aktiengesellschaft | Data processing unit with hardware assisted context switching capability |
| US6223208B1 (en) | 1997-10-03 | 2001-04-24 | International Business Machines Corporation | Moving data in and out of processor units using idle register/storage functional units |
| US5893159A (en) * | 1997-10-22 | 1999-04-06 | International Business Machines Corporation | Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system |
| US6230259B1 (en) * | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
| US5974532A (en) * | 1997-12-09 | 1999-10-26 | Mci Communications Corporation | System and method for generating responses for inputs using a hybrid state engine table |
| US6256659B1 (en) | 1997-12-09 | 2001-07-03 | Mci Communications Corporation | System and method for performing hybrid preemptive and cooperative multi-tasking in a computer system |
| US7013467B1 (en) | 1997-12-09 | 2006-03-14 | Mci Communications Corporation | System and method for managing computer system resources using command control vectors |
| US6205468B1 (en) * | 1998-03-10 | 2001-03-20 | Lucent Technologies, Inc. | System for multitasking management employing context controller having event vector selection by priority encoding of contex events |
| EP1785863A3 (en) * | 2000-02-29 | 2007-07-18 | Fujitsu Limited | A divider comprising a carry save adder and a full adder |
| US7162615B1 (en) | 2000-06-12 | 2007-01-09 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
| US8271994B2 (en) * | 2006-02-11 | 2012-09-18 | International Business Machines Corporation | Reduced data transfer during processor context switching |
| JP2017037370A (ja) * | 2015-08-06 | 2017-02-16 | 富士通株式会社 | 計算機、プロセス制御方法およびプロセス制御プログラム |
| GB2548601B (en) | 2016-03-23 | 2019-02-13 | Advanced Risc Mach Ltd | Processing vector instructions |
| US10599428B2 (en) * | 2016-03-23 | 2020-03-24 | Arm Limited | Relaxed execution of overlapping mixed-scalar-vector instructions |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
| 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 | デ−タ処理装置 |
| JPS592143A (ja) * | 1982-06-29 | 1984-01-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 | ベクトル・デ−タ処理装置の制御方式 |
| US4740893A (en) * | 1985-08-07 | 1988-04-26 | International Business Machines Corp. | Method for reducing the time for switching between programs |
| JP2610821B2 (ja) * | 1986-01-08 | 1997-05-14 | 株式会社日立製作所 | マルチプロセツサシステム |
| JPS62221732A (ja) * | 1986-03-24 | 1987-09-29 | Nec Corp | 情報処理装置 |
-
1988
- 1988-03-18 US US07/170,399 patent/US5008812A/en not_active Expired - Lifetime
-
1989
- 1989-03-06 EP EP89302226A patent/EP0333366B1/en not_active Expired - Lifetime
- 1989-03-06 DE DE68927415T patent/DE68927415T2/de not_active Expired - Fee Related
- 1989-03-15 JP JP1063418A patent/JPH0242569A/ja active Pending
- 1989-03-17 CA CA000594165A patent/CA1317027C/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0333366A2 (en) | 1989-09-20 |
| US5008812A (en) | 1991-04-16 |
| DE68927415T2 (de) | 1997-05-28 |
| EP0333366B1 (en) | 1996-11-06 |
| DE68927415D1 (de) | 1996-12-12 |
| EP0333366A3 (en) | 1991-05-02 |
| CA1317027C (en) | 1993-04-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0242569A (ja) | ベクター処理システムに用いる文脈スイッチング方法及び装置 | |
| US5113521A (en) | Method and apparatus for handling faults of vector instructions causing memory management exceptions | |
| JPH0215369A (ja) | ベクター処理システムの命令を実行する方法及び装置 | |
| JPH0250260A (ja) | ベクタープロセッサの例外報告機構 | |
| US5003462A (en) | Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means | |
| US5197138A (en) | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching | |
| US4794524A (en) | Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit | |
| JP3663317B2 (ja) | コンピュータ・システム | |
| US20060036824A1 (en) | Managing the updating of storage keys | |
| EP0297893A2 (en) | Apparatus and method for recovering from page faults in vector data processing operations | |
| CA2016532C (en) | Serializing system between vector instruction and scalar instruction in data processing system | |
| JPH0517588B2 (ja) | ||
| JPH0450621B2 (ja) | ||
| JP3439033B2 (ja) | 割り込み制御装置及びプロセッサ | |
| JP3707581B2 (ja) | 自己整合スタック・ポインタを有するデータ処理システムおよびその方法 | |
| US4385365A (en) | Data shunting and recovering device | |
| US5841999A (en) | Information handling system having a register remap structure using a content addressable table | |
| 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 | |
| JPH0250259A (ja) | ベクタープロセッサによって非同期メモリ管理例外を取り扱う方法及び装置 | |
| JPH0668725B2 (ja) | データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法 | |
| JPS6051947A (ja) | 仮想記憶計算機における命令先取方式 | |
| US6289439B1 (en) | Method, device and microprocessor for performing an XOR clear without executing an XOR instruction | |
| JPH0133856B2 (ja) | ||
| JPH0248733A (ja) | 情報処理装置 |