JPH0721768B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0721768B2
JPH0721768B2 JP63302903A JP30290388A JPH0721768B2 JP H0721768 B2 JPH0721768 B2 JP H0721768B2 JP 63302903 A JP63302903 A JP 63302903A JP 30290388 A JP30290388 A JP 30290388A JP H0721768 B2 JPH0721768 B2 JP H0721768B2
Authority
JP
Japan
Prior art keywords
instruction
side effect
operand
resource
microinstruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63302903A
Other languages
English (en)
Other versions
JPH02148226A (ja
Inventor
浩三 木村
督三 清原
信生 桧垣
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP63302903A priority Critical patent/JPH0721768B2/ja
Publication of JPH02148226A publication Critical patent/JPH02148226A/ja
Publication of JPH0721768B2 publication Critical patent/JPH0721768B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明はディジタル情報処理装置に係り、特に命令実行
時の例外およびエラー発生において例外処理後、命令再
実行を実現する情報処理装置に関するものである。
従来の技術 従来の情報処理装置としては、例えば特開昭57−209545
号公報に示されている。第8図はこの従来の情報処理装
置のブロック回路図を示すものであり、1010はマイクロ
命令を記憶する命令レジスタである。1011は命令コード
部(以下、OPCと称す。)である。1012はソースデータ
の格納の要、不要を示す格納ビット部(以下、Sと称
す。)である。1013は命令用メモリすなわちローカル記
憶(LS)1040のアドレスを記憶するアドレス部である。
1020は例えば5ビットからなり、第1および第2ビット
は“1"に固定され、第3〜第5ビットのみが更新され
る、すなわち24〜31の値を格納できる更新可能レジスタ
である。1030は格納ビット1012の値によって命令レジス
タ1010のアドレス部1013もしくは更新可能レジスタ1020
を選択され、その値を記憶するアドレスレジスタであ
る。1040はアドレスレジスタ1030の値をアドレスとして
アクセスされ、2つの領域に分割されているローカル記
憶である。1041はアドレス0〜23の命令用データ領域で
ある。1042はアドレス24〜31の命令再実行用データ領域
である。1050はデータレジスタである。
以上のように構成された従来の情報処理装置において、
以下、動作を説明する。
初めに、命令レジスタ1010の格納ビット部1012の値が
“0"の場合を想定する。この場合に、命令コード部1011
の内容がローカル記憶1040からデータを読み出す命令を
示していれば、アドレス部1013の内容がアドレスレジス
タ1030にセットされ、ローカル記憶がアクセスされる。
この結果、データがローカル記憶1040からデータレジス
タ1050に読みだされる。
他方、命令レジスタ1010の格納ビット部1012の値が“1"
の場合を想定する。この場合にも、命令コード部1011の
内容がローカル記憶1040からデータを読み出す命令であ
れば、前述と同様に、データがローカル記憶1040からデ
ータレジスタ1050に読みだされる。
次に、更新レジスタ1020の値たとえば“11000"がアドレ
スレジスタ1030にセットされ、従って、ローカル記憶10
40の24番地の命令再実行用データ領域1042がアクセスさ
れ、ここにデータレジスタ1050の内容が書きこまれる。
同時に更新可能レジスタ1020の値はカウントアップし、
“11001"となる。
このようにしてローカル記憶1040にソースデータを格納
したあとに、命令の再実行を行う場合、命令レジスタの
アドレス部1013の値で直接、ローカル記憶1040の24番地
から更新可能レジスタ1020の現在の値より1だけ小さい
値の番地までアクセスしてソースデータを読み出し、こ
れより、ソースデータの再格納を行う。
発明が解決しようとする課題 しかしながら上記のような構成では、命令再実行を実現
するために命令実行前にあらかじめソースデータをロー
カル記憶へ退避する必要があるため、演算を高速化する
ことは困難であり、高速化を図ろうとするたとえばレジ
スタファイルの複数の入力ポートが必要になり、莫大な
ハードウェアの増加となる。ハードウェアの増加は引い
てはサイクルロックの低下も起こしてしまう。
しかも、命令の実行中に命令再実行型の例外またはエラ
ー(例えば、リザーブド命令例外、バスエラーおよびペ
ージフォールト等)を生じた場合等は、例外またはエラ
ー処理ルーチンにおいてソースデータをローカル記憶よ
り読出し再実行対象の命令の実行前の状態に復元して、
再実行を行わなければならない。このため、仮想記憶対
応を考えた場合、ページフォールト等は頻繁に発生する
可能性があり、ソースデータの復元のためのオーバーヘ
ッドはシステムの性能低下を引き起こしてしまう。
また、命令によって破壊されるソースデータが異なるた
め、命令の実行前状態への復元するためには破壊された
ソースデータの履歴を残すか、または処理ルーチンにお
いて命令の解析が必要となる。当然、命令によって再実
行対象の命令の実行前の状態に復元動作が異なり、処理
ルーチンおよび制御方法の複雑化を生んでしまう。
逆に、すべての命令共通に復元動作を行おうとすると、
不必要なソースデータの退避、および退避領域の巨大化
を招いてしまう。
以上のように、速度低下による性能低下、制御の複雑
化、サイズの大型化等の問題を有していた。
また、従来、ソースデータの変更が発生した場合には命
令再実行を行わないという方法もあるが、命令再実行率
が低いということはシステムの信頼性の低さにつなが
り、基本的に仮想記憶対応は困難になる。一方、ソース
データが変更されても、再実行可能なようにソースデー
タを専用のレジスタまたはメモリ等に格納しておく方法
もあるが、サイズの巨大化を引き起こし、問題となる。
これらに関しては、従来の技術で引用した特開昭57−20
9545号公報の発明の詳細にも述べられている。
なお、特開昭57−209545号公報における退避するソース
データとは、命令中のオペランド指定部で指定されるオ
ペランドだけでなく、アドレシングモードによって副作
用を引き起こす資源にもあてはまる。たとえば、パーソ
ナルメディア株式会社発行のTRONプロジェクト‘87−'8
8、第5章3、表4に記載されているTRONチップのアド
レシングモードには@SP+で表記されるスタックポップ
アドレシングモードと@−SPで表記されるスタックプッ
シュアドレシングモード等がある。このアドレシングモ
ードを使用した命令ADD:G @SP+.W,R2.Wを考えると、
命令実行後にはR2およびSP(R15)が変化しており、R
2、SP(R15)共に退避するソースデータとしなければな
らない。
本発明はかかる点に鑑み、副作用のあるオペランド指定
部を有する命令の実行において、情報処理装置内部に副
作用の対象となる資源の複製を持たずに、例外が発生し
た場合でも、副作用の対象となる資源に関し命令実行前
に復元し、命令再実行を可能とする情報処理装置を提供
することを目的とする。
課題を解決するための手段 本発明は、命令を解読し、副作用のあるオペランド指定
部を検出する副作用検出装置と、命令の先頭から現在の
解読時まで副作用のあるオペランド指定部が無いことを
示す初期モードと、副作用のあるオペランド指定部の存
在を認識することにより、副作用のあるオペランド指定
部を既に解読済であることを示す副作用モードに遷移す
るモード管理装置と、マイクロ命令の発行によって命令
再実行を行なう例外の発生が今後起こりえないことを検
出する再実行例外検出装置と、命令を解読し、対応する
マイクロ命令を発行すると共に、命令最終語が副作用の
あるオペランド指定部を持たず、かつ命令再実行を行な
う例外の発生が今後起こりえないことを認識した場合に
は、指定した作業用レジスタの内容を副作用の対象であ
る資源に複写するマイクロ命令を追加発行するマイクロ
命令発生装置と、マイクロ命令のオペランドフィールド
が副作用の対象となる資源であるかどうかを検出する資
源干渉検出装置と、初期モードの場合、マイクロ命令の
デスティネーションオペランドフィールドが副作用の対
象となる資源であることを認識したならばデスディネー
ションオペランドフィールドを指定した作業用レジスタ
に修飾し、副作用モードの場合、命令再実行を行なう例
外の発生が今後起こり得ることを認識し、マイクロ命令
のオペランドフィールドが副作用の対象となる資源であ
ることを認識したならば指定した作業用レジスタに修飾
し、命令再実行を行なう例外の発生が今後起こり得ない
ことを認識し、マイクロ命令のソースオペランドフィー
ルドが副作用の対象となる資源であることを認識したな
らばソースオペランドフィールドを指定した作業用レジ
スタに修飾するオペランドフィールド修飾装置を備えた
情報処理装置である。
作用 本発明は前記した構成により、複数個の基本解読単位か
らなる命令が、副作用のあるオペランド指定部を有する
場合、副作用のあるオペランド指定部を有する基本解読
単位命令語を初めて解読した時には、副作用の対象とな
る資源を演算し、資源を書き替えずに指定した作業用レ
ジスタに格納し、続いて副作用のあるオペランド指定部
を有する基本解読単位命令語を解読した時には、副作用
の対象となる資源の代りに指定した作業用レジスタを演
算し、その後対象となる資源を書き替えずに指定した作
業用レジスタに格納し、最終の基本解読単位命令語を解
読した時には、すべてのマイクロ命令を発行後指定した
作業用レジスタを副作用の対象となる資源に複写するこ
とにより、命令実行中、つまり命令再実行を行う例外等
が発生する可能性がある実行最中には、副作用の対象と
なる資源自身は変更せず命令前のデータを保持してお
き、命令の実行とともに副作用によって変化するデータ
は作業用レジスタに格納しておき、例外等の発生なく命
令に対する全てのオペレーションを実行完了時には、作
業用レジスタに格納しておいたデータを資源自身に格納
し、一方、再実行を行うエラーおよび例外等が発生した
場合には、命令を発生時に中断すれば副作用の対象とな
る資源には命令実行前のデータが保持されており、副作
用の対象となる資源を復元する必要がなく、副作用のあ
るオペランドの有無に関係なくエラーおよび例外処理ル
ーチンへ実行を移すことが可能となり、極めて簡単な制
御で、ハードウェアの増加なく、システムの性能低下な
く、仮想記憶対応の命令再実行を実現できる。
実 施 例 第1図は本発明の情報処理装置の解読部の構成図であ
る。第1図において1は、命令を解読し、副作用のある
オペランド指定部を検出する副作用検出装置である。2
は、命令の先頭から現在の解読時まで副作用のあるオペ
ランド指定部が無いことを示す初期モードと、副作用の
あるオペランド指定部を既に解読済であることを示す副
作用モードを管理するモード管理装置である。3は、命
令再実行を行なう例外の発生が今後起こりえないことを
検出する再実行例外検出装置である。4は、命令を解読
し、対応するマイクロ命令を発行すると共に、指定した
作業用レジスタの内容を副作用の対象である資源に複写
するマイクロ命令を追加発行の機能を持つマイクロ命令
発行装置である。5は、マイクロ命令のオペランドフィ
ールドが副作用の対象となる資源であるかどうかを検出
する資源干渉検出装置である。6は、モード、オペラン
ドフィールドが副作用の対象となる資源であるかどう
か、および命令再実行を行なう例外の発生が今後起こり
えないかどうかの情報よりオペランドフィールドを指定
した作業用レジスタに修飾するオペランドフィールド修
飾装置である。
第2図は、マイクロ命令を説明するための図である。7
は、マイクロ命令発行装置4およびオペランドフィール
ド修飾装置6の出力であるマイクロ命令である。71は、
オペレーションフィールドである。72は、ソースAオペ
ランドフィールドである。73は、ソースBオペランドフ
ィールドである。74は、デスティネーションオペランド
フィールドである。
第3図は、情報処理装置の演算部を説明するための図で
ある。8は、汎用レジスタと作業用レジスタからなるレ
ジスタファイルである。9は、演算装置である。
第4図は、副作用のあるオペランド指定部を有する命令
の処理を説明するための図である。10は、命令ADD:G
@SP+.W,R2.Wを解読したときにマイクロ命令発行装置
4から出力するマイクロ命令のニモニックである。OA
は、オペランドアクセスのための実効アドレス計算を示
す。OFは、実効アドレスを用いてメモリからオペランド
の読みこみを示す。EXは、演算を示す。EX&Sは、演算
後メモリへの書き込みを示す。SPはスタックポインタを
示す。ARは、メモリアクセスの実効アドレスを格納する
アドレスレジスタを示す。MEMは、メモリである。WR0
は、作業用レジスタ0番である。WR1は、作業用レジス
タ1番である。R2は、汎用レジスタ2番である。+は、
加算動作を示す。−は、減算動作を示す。→は、転送動
作を示す。
第5図は、副作用のあるオペランド指定部を有する命令
の処理を説明するための図である。11は、命令ADD:G
@SP+.W,R2.Wを解読したときにオペランドフィールド
修飾装置6から出力するマイクロ命令のニモニックであ
る。
第6図は、副作用のあるオペランド指定部を有する命令
の処理を説明するための図である。12は、命令CMP:G
@SP+.W,@SP+.Wを解読したときにマイクロ命令発行
装置4から出力するマイクロ命令のニモニックである。
WR2は、作業用レジスタ2番である。
第7図は、副作用のあるオペランド指定部を有する命令
の処理を説明するための図である。13は、命令CMP:G
@SP+.W,@SP+.Wを解読したときにオペランドフィー
ルド修飾装置6から出力するマイクロ命令のニモニック
である。
以上のように構成された本実施例の情報処理装置につい
て、命令ADD:G @SP+.W,R2.Wを処理する動作を説明す
る。なお、ここで用いる命令表記は、前述のTRONチップ
におけるものを使用する。
まず、命令ADD:G @SP+.W,R2.Wは2ハーフワード命令
(1ハーフワードは16ビットつまり2バイトである)
(2ハーフワード命令を2HW命令とする)であるが、1HW
が解読基本単位であり、第1HWに副作用のあるオペラン
ド指定部@SP+(スタックポップアドレシングモード)
が存在し、続く第2HWにオペランド指定部R2とオペレー
ションが有る。以下、命令の動作を説明する。SPの内容
はソース・オペランドの実効アドレスであり、そのアド
レスが指すメモリ上のワードデータ(32ビットデータつ
まり4バイトデータ)の作業用レジスタに格納する。@
SP+が存在し、かつワード演算のため、副作用の対象と
なるSPに4加算する。最後に作業用レジスタの内容とR2
の内容を加算し、R2に格納する。
(1)第1HWを命令読み出し部から入力する。副作用検
出装置1は、副作用を持つオペランド指定部つまりスタ
ックポップアドレシングモード(@SP+)を検出する。
モード管理装置2は初期モードに設定されており、第1H
Wに対応するモードは初期モードである。副作用を持つ
オペランド指定部の検出による副作用モードへの遷移は
第2HWを解読する時に行われる。再実行例外検出装置3
は、続く第2HWを実行中に例外(第2HWを読み込み中にバ
スエラーが発生し、第2HW自身を入力できない、第2HW自
身がリザーブド命令のビットパターンである、および、
第2HW実行中のオペランドに関するバスエラーが発生す
る等)が発生する可能性があるため、第1HW解読中は命
令再実行を行なう例外の発生が今後起こり得ると判断す
る。マイクロ命令発行装置4は、命令を解読後、それに
対応するマイクロ命令列を発行する。ADD:G @SP+.W,
R2.Wの第1HWを解読したとき、マイクロ命令発行装置4
から出力するニモニックは、命令再実行を行なう例外の
発生が今後起こり得ると判断を考慮し、10−1〜3とな
る。資源干渉検出装置5は、マイクロ命令7のオペラン
ドフィールドが副作用の対象となる資源つまりSPである
かどうかを検出する。オペランドフィールド修飾装置6
は、モード管理装置2が初期モードを示していることか
ら、マイクロ命令7のデスティネーションオペランドフ
ィールド7−4が副作用の対象となる資源であることを
認識したならばデスティネーションオペランドフィール
ド7−4を指定した作業用レジスタに修飾する。
ここでマイクロ命令発生装置4から発行するマイクロ命
令7の動きを追う。10−1が発行されると、資源干渉検
出装置5は、マイクロ命令7のソースオペランドフィー
ルド7−2もしくは7−3がSPであることを検出しオペ
ランドフィールド修飾装置6に伝えるが、オペランドフ
ィールド修飾装置6は、モード管理装置2が初期モード
を示していることより修飾をせず、そのまま演算部へ発
行される。演算部はSPのデータをARに格納する。102が
発行されても、修飾対象は存在しないため、マイクロ命
令7はそのまま発行され、演算部はARのデータを実効ア
ドレスとしてメモリからデータを読出し、WR1に格納す
る。103が発行されると、資源干渉検出装置5は、マイ
クロ命令7のソース72もしくは73およびデスティネーシ
ョン74両オペランドフィールドがSPであることを検出し
オペランドフィールド修飾装置6に伝える。オペランド
フィールド修飾装置6は、モード管理装置2が初期モー
ドを示していることよりデスティネーションオペランド
フィールド74をWR0に修飾し、演算部へ発行する。演算
部はSPのデータに4加算し、WR0に格納する。オペラン
ドフィールド修飾装置6が発行するマイクロ命令7は11
1〜3となる。以上説明した様にマイクロ命令103は113
に修飾される。
(2)第1HWに対応するマイクロ命令をすべて発行終了
したので、命令の第2HWを命令読み出し部から入力し解
読を開始する。副作用検出装置1は、第2HW中には副作
用を持つオペランド指定部が存在しないことを認識す
る。モード管理装置2は、第2HWを解読したので初期モ
ードから、第1HW中での副作用を持つオペランド指定部
の検出による副作用モードへの遷移する。再実行例外検
出装置3は、第2HWを実行中に例外(オペランドのメモ
リへの書き込みが、そのマイクロ命令以前に発生したバ
スエラーによって実行できない等)が発生する可能性が
あるため、マイクロ命令104の発行完了まで、命令再実
行を行なう例外の発生が今後起こり得ると判断する。た
だし、マイクロ命令104の発行完了以降は、命令再実行
を行なう例外の発生が今後起こり得ないと判断できる。
マイクロ命令発行装置4は、命令を解読後、それに対応
するマイクロ命令列を発行する。ADD:G @SP+.W,R2.W
の第2HWを解読したとき、マイクロ命令発行装置4は、
マイクロ命令104を発行するが、104の発行完了以降は、
命令再実行を行なう例外の発生が今後起こり得ないとの
判断より、指定した作業用レジスタの内容を副作用の対
象である資源に複写するマイクロ命令105を追加発行す
る。資源干渉検出装置5は、マイクロ命令7のオペラン
ドフィールドが副作用の対象となる資源つまりSPである
かどうかを検出する。オペランドフィールド修飾装置6
は、モード管理装置2が副作用モードを示しているこ
と、オペランドフィールドが副作用の対象となる資源で
あるかどうか、および命令再実行を行なう例外の発生が
今後起こりえないかどうかの情報よりオペランドフィー
ルドを指定した作業用レジスタに修飾する。
ここでマイクロ命令発行装置4から発行するマイクロ命
令7の動きを追う。104が発行されると、修飾対象は存
在しないため、マイクロ命令7はそのまま発行され、演
算部はWR1のデータとR2を加算しR2に格納する。105が発
行されると、資源干渉検出装置5は、マイクロ命令7の
デスティネーションオペランドフィールド74がSPである
ことを検出しオペランドフィールド修飾装置6に伝え
る。オペランドフィールド修飾装置6は、モード管理装
置2が副作用モードを示していること、再実行例外検出
装置が命令再実行を行なう例外の発生が今後起こり得な
いと判断していること、マイクロ命令7のデスティネー
ションオペランドフィールド7−4だけが副作用の対象
となる資源であることを認識し、マイクロ命令7を修飾
しない。よって演算部はWR0のデータをSPに格納するこ
とより、SPに対する副作用演算を実体に複写する。オペ
ランドフィールド修飾装置6が発行するマイクロ命令7
は114〜5となる。以上説明した様にマイクロ命令10−
5は115に修飾される。
ここで以上説明したマイクロ命令の発行で命令再実行が
可能となることを解説する。命令ADD:G @SP+.W,R2.W
において、データが変化する可能性のある資源はR2およ
びSPである。今回R2に関しては変化する前にデータの複
写を行わないが、以下の理由による、R2のデータは変化
するが、基本としてデータの格納が1回であり、そのマ
イクロ命令はマイクロ命令列の最後、もしくはそれ以降
命令再実行を行う例外が発生しない時に発行され、も
し、データの格納がメモリへのストアであっても最後の
ストアによるバスエラーは命令完了型の例外(エラーを
起こした命令は完了したものとし、再実行しない例外)
とできる、ことにより予めコピーを取る必要は無い。
ところがSPは基本的に1HW単位解読するごとに変化を要
求される。よって、SP自身を変化させる方法では、複写
を取ることが必要であり、一方、本発明の方法を取ると
SP自身は変化させずに作業用レジスタを用い、再実行型
例外の発生の可能性が無くなってからSP自身を変化させ
ることにより、再実行型例外発生時にSPのデータを保証
している。
以上よりADD:G @SP+.W,R2.Wにおいて、データが変化
する可能性のある資源に対しても命令再実行時には命令
直前の環境に復元でき、命令再実行が可能となる。
続いて、命令CMP:G @SP+.W,@SP+.Wを処理する動作
を説明する。
まず、命令CMP:G @SP+.W,@SP+.Wも2ハーフワード
命令であり、第1HWに副作用のあるオペランド指定部@S
P+(スタックポップアドレシングモード)が存在し、
続く第2HWにも副作用のあるオペランド指定部@SP+
(スタックポップアドレシングモード)とオペレーショ
ンが有る。以下、命令の動作を説明する。SPの内容はソ
ース・オペランドの実効アドレスであり、そのアドレス
が指すメモリ上のワードデータを作業用レジスタに格納
する。@SP+が存在し、かつワード演算のため、副作用
の対象となるSPに4加算する。続いてSPの内容は2つめ
のソース・オペランドの実効アドレスであり、そのアド
レスが指すメモリ上のワードデータを別の作業用レジス
タに格納する。お互いの作業用レジスタの内容を比較す
る。最後に副作用の対象となるSPに4加算する。
(1)第1HWを命令読み出し部から入力する。副作用検
出装置1は、副作用を持つオペランド指定部つまりスタ
ックポップアドレシングモード(@SP+)を検出する。
モード管理装置2は初期モードに設定されており、第1H
Wに対応するモードは初期モードである。副作用を持つ
オペランド指定部の検出による副作用モードへの遷移は
第2HWを解読する時に行われる。再実行例外検出装置3
は、続く第2HWを実行中に例外が発生する可能性がある
ため、第1HW解読中は命令再実行を行なう例外の発生が
今後起こり得ると判断する。マイクロ命令発行装置4
は、命令を解読後、それに対応するマイクロ命令列を発
行する。CMP:G @SP+.W,@SP+.Wの第1HWを解読した
とき、マイクロ命令発行装置4から出力するニモニック
は、命令再実行を行なう例外の発生が今後起こり得ると
判断を考慮し、121〜3となる。資源干渉検出装置5
は、マイクロ命令7のオペランドフィールドが副作用の
対象となる資源つまりSPであるかどうかを検出する。オ
ペランドフィールド修飾装置6は、モード管理装置2が
初期モードを示していることから、マイクロ命令7のデ
スティネーションオペランドフィールド74が副作用の対
象となる資源であることを認識したならばデスティネー
ションオペランドフィールド74を指定した作業用レジス
タに修飾する。
ここでマイクロ命令発行装置4から発行するマイクロ命
令7の動きを追う。121が発行されると、資源干渉検出
装置5は、マイクロ命令7のソースオペランドフィール
ド72もしくは73がSPであることを検出しオペランドフィ
ールド修飾装置6に伝えるが、オペランドフィールド修
飾装置6は、モード管理装置2が初期モードを示してい
ることより修飾をせず、そのまま演算部へ発行される。
演算部はSPのデータをARに格納する。122が発行されて
も、修飾対象は存在しないため、マイクロ命令7はその
まま発行され、演算部はARのデータを実効アドレスとし
てメモリからデータを読出し、WR1に格納する。123が発
行されると、資源干渉検出装置5は、マイクロ命令7の
ソース72もしくは73およびデスティネーション74両オペ
ランドフィールドがSPであることを検出しオペランドフ
ィールド修飾装置6に伝える。オペランドフィールド修
飾装置6は、モード管理装置2が初期モードを示してい
ることよりデスティネーションオペランドフィールド74
をWR0に修飾し、演算部へ発行する。演算部はSPのデー
タに4加算し、WR0に格納する。オペランドフィールド
修飾装置6が発行するマイクロ命令7は121〜3とな
る。以上説明した様にマイクロ命令123は133に修飾され
る。CMP:G @SP+.W,@SP+.Wの第1HWに対応するマイ
クロ命令は、ADD:G @SP+.W,R2.Wの第1HWと同じであ
る。
(2)第1HWに対応するマイクロ命令をすべて発行終了
したので、命令の第2HWを命令読み出し部から入力し解
読を開始する。副作用検出装置1は、第2HW中にも副作
用を持つオペランド指定部つまりスタックポップアドレ
シングモード(@SP+)を検出する。モード管理装置2
は、第2HWを解読したので初期モードから、第1HW中での
副作用を持つオペランド指定部の検出による副作用モー
ドへの遷移する。再実行例外検出装置3は、第2HWを実
行中に例外(オペランドのメモリからの読みこみにおい
て、バスエラーが発生する等)が発生する可能性がある
ため、マイクロ命令126の発行完了まで、命令再実行を
行なう例外の発生が今後起こり得ると判断する。ただ
し、マイクロ命令126の発行完了以降は、命令再実行を
行なう例外の発生が今後起こり得ないと判断できる。マ
イクロ命令発行装置4は、命令を解読後、それに対応す
るマイクロ命令列を発行する。CMP:G @SP+.W,@SP
+.Wの第2HWを解読したとき、マイクロ命令発行装置4
は、マイクロ命令12−4〜7を発行する。第2HWは、最
終解読語であり、かつ副作用のあるオペランド指定部を
有することから、指定した作業用レジスタの内容を副作
用の対象である資源に複写するマイクロ命令の追加発行
は行わない。。資源干渉検出装置5は、マイクロ命令7
のオペランドフィールドが副作用の対象となる資源つま
りSPであるかどうかを検出する。オペランドフィールド
修飾装置6は、モード管理装置2が副作用モードを示し
ていること、オペランドフィールドが副作用の対象とな
る資源であるかどうか、および命令再実行を行なう例外
の発生が今後起こりえないかどうかの情報よりオペラン
ドフィールドを指定した作業用レジスタに修飾する。
ここでマイクロ命令発行装置4から発行するマイクロ命
令7の動きを追う。124が発行されると、資源干渉検出
装置5は、マイクロ命令7のソースオペランドフィール
ド72もしくは73がSPであることを検出しオペランドフィ
ールド修飾装置6に伝える。オペランドフィールド修飾
装置6は、モード管理装置2が副作用モードを示してい
ることよりソースオペランドフィールド72もしくは73を
WR0に修飾し、演算部へ発行する。演算部はWR0のデータ
をARに格納する。125が発行されると、修飾対象は存在
しないため、マイクロ命令7はそのまま発行され、演算
部はARのデータを実効アドレスとしてメモリからデータ
を読出し、WR2に格納する。126が発行されると、修飾対
象は存在しないため、マイクロ命令7はそのまま発行さ
れ、演算部はWR1のデータとWR2を比較する。127が発行
されると、資源干渉検出装置5は、マイクロ命令7のソ
ース72もしくは73およびデスティネーション74両オペラ
ンドフィールドがSPであることを検出しオペランドフィ
ールド修飾装置6に伝える。オペランドフィールド修飾
装置6は、モード管理装置2が副作用モードを示してい
ること、再実行例外検出装置が命令再実行を行なう例外
の発生が今後起こり得ないと判断していること、マイク
ロ命令7のソース72もしくは73およびデスティネーショ
ン74両オペランドフィールドが副作用の対象となる資源
であることを認識し、デスティネーションオペランドフ
ィールド74をWR0に修飾し、演算部へ発行する。よって
演算部はWR0のデータをSPに格納することより、SPに対
する副作用演算を実体に複写する。オペランドフィール
ド修飾装置6が発行するマイクロ命令7は134〜7とな
る。以上説明した様にマイクロ命令124および7は134お
よび7に修飾される。
ここで以上説明したマイクロ命令の発行で命令再実行が
可能となることを解説する。命令CMP:G @SP+.W,@SP
+.Wにおいて、データが変化する可能性のある資源はSP
だけある。SPは基本的に1HW単位解読するごとに変化を
要求される。よって、SP自身を変化させる方法では、複
写を取ることが必要であり、一方、本発明の方法を取る
とSP自身は変化させずに作業用レジスタを用い、再実行
型例外の発生の可能性が無くなってからSP自身を変化さ
せることにより、再実行型例外発生時にSPのデータを保
証している。
CMP:G @SP+.W,@SP+.Wにおいて、データが変化する
可能性のある資源に対しても命令再実行時には命令直前
の環境に復元でき、命令再実行が可能となる。
以上のように、本実施例によれば、副作用のあるオペラ
ンド指定部を検出する副作用検出装置1と、初期モード
と副作用モードを管理するモード管理装置2と命令再実
行型例外の発生が今後起こりえないことを検出する再実
行例外検出装置3と、マイクロ命令の発行と共に、指定
した作業用レジスタの内容を副作用の対象である資源に
複写するマイクロ命令を追加発行の機能を持つマイクロ
命令発行装置4と、オペランドフィールドが副作用の対
象となる資源であるかどうかを検出する資源干渉検出装
置5と、オペランドフィールドを指定した作業用レジス
タに修飾するオペランドフィールド修飾装置6を設ける
ことにより、副作用の対象となる資源自身は、再実行型
の例外発生の可能性のある間は変更せず命令前のデータ
を保持しておき、命令の実行とともに副作用により変化
するデータは作業用レジスタに格納しておき、オペレー
ション完了時には、作業用レジスタに格納しておいたデ
ータを資源自身に複写することより、命令再実行を行え
る。
なお、本実施例において、副作用検出装置1、モード管
理装置2、および資源干渉検出装置5等は、PLA(Progr
ammable Logic Array)で簡単に実現でき、再実行例外
検出装置3、マイクロ命令発行装置4、およびオペラン
ドフィールド修飾装置6等は、PLAとROM(Read Only Me
mory)で簡単に実現できる。これは、マイクロプロセッ
サ等においても実現が容易であること、修正変更等が容
易に行えること、マイクロプログラム制御に簡単に取り
入れること等を考えると大きな長所である。
また、本実施例において、作業用レジスタが必要となり
ハードウェアの増加をともなうような印象を与えてしま
うが、通常、情報処理装置は高機能命令実行のため、複
数の作業用レジスタを有しており、本実施例においても
その内の1個のレジスタを一時的に使用したに過ぎな
い。よってハードウェアの増加は必要ない。
発明の効果 以上説明したように、本発明によれば、副作用のあるオ
ペランド指定部を有する命令の実行において、情報処理
装置内部に副作用の対象となる資源の複製を持たずに、
例外が発生した場合でも、副作用の対象となる資源に関
し命令実行前に復元し、命令再実行することができその
実用的効果は大きい。具体的には、以下のような効果と
なる。まず、命令再実行時においてソースデータの復元
等は必要なく、制御が簡単化できる。また、本情報処理
装置は専用ハードウェアの増加も必要なく実現でき、マ
イクロ命令で制御できることから装置の検証も簡単にな
る。引いては、情報処理装置の稼働率をあげ、信頼性を
上げることが可能で、仮想記憶対応も容易である。これ
らの実用的効果は非常に大きいと言える。
【図面の簡単な説明】
第1図は本発明の一実施例の情報処理装置の解読部の構
成図、第2図は同実施例のマイクロ命令の説明図、第3
図は同実施例の情報処理装置が有する演算部の説明図、
第4図は副作用のあるオペランド指定部を有する命令の
処理の説明図、第5図は副作用のあるオペランド指定部
を有する命令の処理の説明図、第6図は副作用のあるオ
ペランド指定部を有する命令の処理の説明図、第7図は
副作用のあるオペランド指定部を有する命令の処理の説
明図、第8図は従来の情報処理装置のブロック回路図で
ある。 1……副作用検出装置、2……モード管理装置、 3……再実行例外検出装置、 4……マイクロ命令発行装置、 5……資源干渉検出装置、 6……オペランドフィールド修飾装置。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】命令を解読し、演算の対象となるオペラン
    ドの指定と同時に、前記演算の対象となるオペランド以
    外の資源である副作用の対象となる資源を書き替える、
    副作用のあるオペランド指定部を検出する副作用検出装
    置と、前記命令において前記命令の先頭から現在の解読
    時まで副作用のあるオペランド指定部が無いことを示す
    初期モードと、前記副作用検出装置より副作用のあるオ
    ペランド指定部検出を認識することにより前記初期モー
    ドから副作用のあるオペランド指定部を既に解読済であ
    ることを示す副作用モードへ遷移するモード管理装置
    と、前記命令を解読し、マイクロ命令の発行によって命
    令再実行を行なう例外の発生が今後起こりえないことを
    検出する再実行例外検出装置と、前記命令を解読し、前
    記命令に対応するマイクロ命令を発行すると共に、前記
    命令の命令最終語が副作用のあるオペランド指定部を持
    たず、かつ前記再実行例外検出装置より命令再実行を行
    なう例外の発生が今後起こりえないことを認識した場合
    には、指定した作業用レジスタの内容を副作用の対象で
    ある資源に複写するマイクロ命令を追加発行するマイク
    ロ命令発行装置と、前記マイクロ命令発行装置が発行し
    たマイクロ命令における演算の対象を指定するオペラン
    ドフィールドが副作用の対象となる資源であるかどうか
    を検出する資源干渉検出装置と、前記命令を解読し、前
    記モード管理装置が保持するモードが前記初期モードの
    場合、前記資源干渉検出装置より前記マイクロ命令発行
    装置が発行するマイクロ命令のデスティネーションオペ
    ランドフィールドが副作用の対象となる資源であること
    を認識したならばデスティネーションオペランドフィー
    ルドを前記指定した作業用レジスタに修飾し、前記副作
    用モードの場合、前記再実行例外検出装置より命令再実
    行を行なう例外の発生が今後起こり得ることを認識し、
    マイクロ命令のオペランドフィールドが副作用の対象と
    なる資源であることを認識したならば前記指定した作業
    用レジスタに修飾し、前記再実行例外検出装置より命令
    再実行を行なう例外の発生が今後起こり得ないことを認
    識し、マイクロ命令のソースオペランドフィールドが副
    作用の対象となる資源であることを認識したならばソー
    スオペランドフィールドを前記指定した作業用レジスタ
    に修飾するオペランドフィールド修飾装置とを備えたこ
    とを特徴とする情報処理装置。
JP63302903A 1988-11-30 1988-11-30 情報処理装置 Expired - Fee Related JPH0721768B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63302903A JPH0721768B2 (ja) 1988-11-30 1988-11-30 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63302903A JPH0721768B2 (ja) 1988-11-30 1988-11-30 情報処理装置

Publications (2)

Publication Number Publication Date
JPH02148226A JPH02148226A (ja) 1990-06-07
JPH0721768B2 true JPH0721768B2 (ja) 1995-03-08

Family

ID=17914495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63302903A Expired - Fee Related JPH0721768B2 (ja) 1988-11-30 1988-11-30 情報処理装置

Country Status (1)

Country Link
JP (1) JPH0721768B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5180675B2 (ja) 2008-05-13 2013-04-10 本田技研工業株式会社 乗用芝刈機

Also Published As

Publication number Publication date
JPH02148226A (ja) 1990-06-07

Similar Documents

Publication Publication Date Title
US4347565A (en) Address control system for software simulation
US6631460B1 (en) Advanced load address table entry invalidation based on register address wraparound
EP0217068A2 (en) Method of emulating the instructions of a target computer
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
JPS5960652A (ja) デ−タ処理装置
US6728846B2 (en) Method and data processing system for performing atomic multiple word writes
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
JPH0232659B2 (ja)
US5819078A (en) Addressing extended memory using millicode by concatenating a small millicode address and address extension data
US6922666B2 (en) Method and data processing system for performing atomic multiple word reads
JPH0721768B2 (ja) 情報処理装置
JP3507193B2 (ja) ロード・ストア命令処理装置
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2607319B2 (ja) プログラマブルコントローラ
JPH05165663A (ja) データ処理装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPS6220034A (ja) プログラム状態語切換制御方式
JPH0535499A (ja) データ処理装置及びデータ処理方法
JPS6252334B2 (ja)
JPS6113615B2 (ja)
JPS5931148B2 (ja) デ−タ処理装置
JPH0934795A (ja) Cpuプログラムのコピープロテクト法
JP2000259410A (ja) マイクロプロセッサ
JPH02158847A (ja) マイクロプロセツサ
JPH0795288B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees