JPH0355851B2 - - Google Patents
Info
- Publication number
- JPH0355851B2 JPH0355851B2 JP50352983A JP50352983A JPH0355851B2 JP H0355851 B2 JPH0355851 B2 JP H0355851B2 JP 50352983 A JP50352983 A JP 50352983A JP 50352983 A JP50352983 A JP 50352983A JP H0355851 B2 JPH0355851 B2 JP H0355851B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- data
- processor
- information
- 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
Links
- 230000004044 response Effects 0.000 description 17
- 239000000872 buffer Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 206010000210 abortion Diseases 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 2
- 101100233320 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IRC5 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Retry When Errors Occur (AREA)
- Storage Device Security (AREA)
Description
請求の範囲
1 例外条件の発生を条件としてデータプロセツ
サによる複数、少なくとも1つの命令の実行をそ
の実行中に制御する命令実行制御手段と、 前記命令実行制御手段に結合され、前記命令実
行中の前記例外条件の発生に応答し、前記例外条
件の時点における前記命令実行制御手段の状態を
示す1セツトの情報をメモリに記憶し、前記例外
条件が解決された後に前記記憶された1セツトの
状態情報を前記メモリから検索し、制御信号の受
信に応答し、前記検索された1セツトの状態情報
を使用する前記命令実行制御手段の状態を復元す
る例外処理手段と、を含む所定の型式で前記メモ
リとの接続に適合したデータプロセツサにおい
て、 前記例外処理手段に結合され、前記所定の型式
のデータプロセツサを示す所定の識別検査コード
を前記例外処理手段に与えて前記1セツトの状態
情報の1部として記憶し、 前記例外処理手段によつて検索された前記1セ
ツトの状態情報は前記所定の識別検査コードを含
むことを確認し、前記検索された状態情報が前記
所定の識別検査コードを含むことの確認にのみ応
答して前記制御信号を前記例外処理手段に与える
識別検査手段を、含むデータプロセツサ。 2 例外条件が発生した時点におけるデータプロ
セツサの状態を示す情報を記憶するステツプと、
所定の型式のデータプロセツサを示す所定の識別
検査コードを前記状態情報の1部分として記憶す
るステツプと、前記例外条件が解決された後に前
記の記憶された状態情報を検索するステツプと、
前記検索された状態情報が前記所定の識別検査コ
ードを含むことを確認するステツプと、前記検索
された状態情報が前記識別検査コードを含むこと
の確認にのみ応答して前記の検索された状態情報
によつて示される状態に前記データプロセツサの
状態を復元するステツプとを含む、所定の型式の
データプロセツサによる命令の実行中に発生する
例外条件から回復する方法。 技術的分野 本発明はデータプロセツサ及びその回復方法に
関するものであり、特に記憶された状態情報を用
いて中断された命令の実行を再開できるデータプ
ロセツサに関する。 背景技術 デジタルデータ処理システムは典型的な場合に
は特徴的な論理アドレス空間を有するデータプロ
セツサ、物理アドレス空間内で直接にアクセスで
きる限られた容量の一次メモリ、1つ又は複数の
周辺制御装置の援助がある場合にのみアクセスで
きるはるかに大きい容量の二次メモリ、および多
数の通例の入力/出力デバイスのうちの任意のデ
バイスを含む。特に大きな論理アドレス空間を有
するデータプロセツサを含むシステムにおいて
は、ユーザは彼の応用例がきわめてタイム・クリ
テイカル(time critical)であるので同等量の比
較的高価な一次メモリを備えることが正当化され
るという決定を下してもよい。しかし、ユーザは
それよりもしばしばはるかに大きな容量の比較的
安価な二次メモリを備えるためにこれらの資金を
使い、一次および二次メモリの間の彼のプログラ
ム/データのスワツピング部分がプロセツサによ
つて必要とされた場合にそれらの部分に伴う時間
的不利を受け入れる。一般に、スワツピング動作
の効率は才能のあるプログラマがアプリケーシヨ
ンプログラムを一連の相互に関係はあるがある程
度自律的なオーバレイに賢明に区分化することに
かかつている。そのような経験のあるプログラム
を発見又は開発するという問題をある程度解決し
大きな区分化されたプログラムを完成させるのに
本来かかる費用をある程度少なくするために、各
アプリケーシヨンプログラムが対応する物理アド
レス空間が現在プログラムに割当てられているか
又は一次メモリに実際に存在するかに関係なくプ
ロセツサの全論理アドレス空間に直接的アクセス
を有するようにみせかけることができるスーパバ
イザプログラムが開発された。そのような“仮想
メモリ”スーパバイザプログラムは典型的にはプ
ログラムに割当てられた物理アドレス空間の部分
の境界の外側で現在実行しつつあるプログラムに
よつてアクセスを検出するため連想メモリマツピ
ングハードウエアに依存する。そのような“誤り
(faults)”に応答して、プロセツサは“仮想”ア
クセスを認識し、もし適当な場合には必要とされ
るプログラムコード/データを二次メモリから一
次メモリにロードするスーパバイザプログラムの
誤り取扱い部分へ分岐する前に何らかの必要な状
態(state)情報を記憶する。所望するならば、
スーパバイザはプログラムコード/データの一部
を一次メモリから二次メモリに移動させて新らし
いコード/データのための余地を作ることができ
る。代表的な場合には次にスーパバイザプログラ
ムは、誤り(fault)が起きた時にプロセツサが
実行しつつあつた特定の命令を再び実行する。ど
れほど多くの情報がスタツクオフ(stack off)
されなければならないかということや、プロセツ
サが“誤つた”命令を再実行する準備をするため
にスーパバイザプログラムによつて用いられる機
構(mechanism)はマシンによつて異つた。 一部の設計では、プロセツサはあたかも割込み
が起きたかのように種々のユーザレジスタ、命令
レジスタ、プログラムカウンタおよび現在の状態
情報の内容を記憶するだけであつた。スーパバイ
ザプログラムは必要ならばプログラムカウンタを
“バツクアツプ”してプロセツサがどんな命令を
実行しつつあるかを発見し、次に誤つた命令が最
初に開始された場合にはできるだけプロセツサの
状態に近づけるためにレジスタおよび状態ビツト
を再構成しなければならなかつた。プロセツサ命
令セツトが比較的に規則的で予測しうるものであ
るシステムにおいてさえも、スーパバイザプログ
ラムにかかる負担は非常に大きなものであつた。
更に複雑なシステムでは、このアプローチは実施
不可能なことがしばしばあつた。 ソフトウエアにかかる負担が耐えられないほど
になつた時に、命令実行シーケンスの各ステツプ
の完了を“マーク”することによつて命令実行シ
ーケンスを追跡するために追加のハードウエアが
付加された。誤りが起きると、マーク情報がレジ
スタおよび状態情報とともにスタツクされた。ス
ーパバイザプログラムはなお誤りが起きた時にど
の命令をプロセツサが実行しつつあるかを決定
し、その後でハードウエアに対してその命令を再
び実行するように命令しなければならなかつた。
しかし、スーパバイザプログラムは“古い”マー
ク情報をハードウエアに供給できた。ハードウエ
アが実行シーケンスの各ステツプを進み、その進
行をいつものようにするにつれて、追加制御回路
は“現在の”マーク情報と“古い”マーク情報と
を比較する。特定のステツプが誤りが起きる前に
すでに実行されたことを制御回路が決定すると、
制御回路はそのステツプの結果のみを抑制し、次
に実行シーケンスが続行できるようにする。ひと
たび“現在”のマーク情報と“古い”マーク情報
とが一致しプロセツサが誤りの起きたステツプに
達したことを示すと、制御回路は実行シーケンス
のその後のステツプの実際の実行を干渉するのを
やめた。この方法により、誤つた命令を再び開始
する負担はソフトウエアとハードウエアに分配さ
れた。勿論、誤つた命令の再開を試みる前にその
誤りの根底にある原因をはつきりとさせることは
依然としてスーパバイザプログラムの責任であつ
た。 仮想メモリの使用を単一プロセツサシステムに
制限する仮想メモリ概念本来の制約はない。事実
1つのプロセツサが出会つた誤りが並列プロセツ
サへの割込みを発生させる多重プロセツサシステ
ムが提案されている。割込みに応答して後考のプ
ロセツサはもう一方のプロセツサの誤りの原因と
なつた問題をはつきりさせようと試みる。一方、
誤つたプロセツサはその誤りが解決されるのを待
ちつづけているにすぎない。その誤りがもう一方
のプロセツサによつてうまく解決されると、誤つ
たプロセツサはアクセス誤りが起きたことも知ら
ずに自らの道を進む。誤りをはつきりさせる仕事
を行うプロセツサのスーパバイザプログラムは、
誤つたプロセツサによつて実行されている命令に
関する情報を必要としないという点に注目すべき
である。しかし、そのスーパバイザプログラムは
誤つた論理アドレスの明細に対するアクセス、お
よび誤りに出会つたプログラムのアドレス空間に
ついてのある程度の情報を持たなければならな
い。そのような情報は各バスサイクルの過程の間
に容易にラツチできるので、その情報は誤りが起
きた時に利用できる。少なくとも2つのプロセツ
サおよび追加ラツチおよび割込み発生ハードウエ
アを必要とするほかに、この仮想メモリ技術は誤
つたプロセツサをもう一方のプロセツサがその誤
りを訂正するまで待機させ、各誤りを解決してい
る間に両方のプロセツサを結びつける。 多重処理システムにおいては、そのシステムの
任意のプロセツサが実行を待つている任意のプロ
グラムを実行できることが一般に望ましい。この
ことは割込み又は時分割による制約の故に一時的
に中断されているプログラムの再開を含む。いく
つかのプロセツサが同じ命令セツトを有する限り
においては、そのような配列を妨げるハードウエ
アの制約はない。この技術が拡張されて命令の実
行過程における誤り状態によつて中断されている
プログラムの実行の再開を含むようになつた場合
に問題が起きる。そのような中断されたプログラ
ムの実行を適切に再開するために、そのことを試
みようとするプロセツサはそのプログラムを最初
に実行しつつあつたプロセツサと同一シーケンス
にある同一命令セツトを実行しなければならな
い。さもないと誤つた命令が適切に完了するとい
う保証はない。各プロセツサのスーパバイザはそ
のような非互換性(incompatibilities)を検出し
ようと試みることはできるが、その同じスーパバ
イザプログラムは同時にいくつかのプロセツサに
ついて実行中であるかもしれず、従つてプロセツ
サ特性に関する情報については、メモリを基礎に
した資源データベースの保全性に依存しなければ
ならない。そのようなソフトウエア制御システム
においては、誤つたプログラムの非互換性プロセ
ツサ再開が検出されずに行われるというかなりの
危険が依然として存在する。 仮想マシン環境においては、データプロセツサ
は真のおよび存在しないシステム資源の両方に対
するユーザプログラムアクセスを支援できなけれ
ばならない。一般的に云つて、仮想メモリデータ
プロセツサはユーザプログラムの論理アドレス空
間内におけるデータ/命令へのアクセスの大部分
を支援するためにそのようなシステムに使用でき
る。しかし、そのようなプロセツサは存在しない
システム資源へのアクセスを支援することはでき
ない。従つて、スーパバイザはそのような利用で
きない資源へのアクセスを阻止し、システム内で
実際に利用できる互換性のある資源を用いてアク
セスをシミユレートするにすぎなかつた。次に、
スーパバイザは、誤つた命令に対して存在しない
資源へのアクセスが成功したように思わせた。 発明の要約 従つて、本発明の目的は中断前に首尾よく実行
された命令の部分を再実行する必要なしに中断さ
れた命令の実行を再開できるデータプロセツサ及
びその回復方法を提供することである。 本発明のもう1つの目的は、同じ型の別のデー
タプロセツサがその命令の実行を再開できるよう
にする方法で命令の実行を中断(停止)できるデ
ータプロセツサを提供することである。 本発明の更にもう1つの目的は、別のプロセツ
サが同じ型のものである場合にのみその別のプロ
セツサによつて中断(停止)された命令の実行を
再開するデータプロセツサを提供することであ
る。 本発明のこれらのおよびその他の目的は、例外
条件の発生を条件としてデータプロセツサによる
少なくとも1つの命令の実行を制御する命令実行
制御手段、および例外条件が発生した時点におけ
る命令実行制御手段の状態を示す1セツトの情報
を記憶する例外処理手段を有するデータプロセツ
サにおいて達成される。本発明においては、命令
実行制御手段による命令のうちの所定の1つの実
行に応答して記憶された1セツトの状態情報を検
索し、所定の妥当性検査コード(識別検査コー
ド:validation cord)を含む検索された状態情
報にのみ応答して検索された状態情報によつて示
される状態に命令実行制御手段を復元する状態復
元手段をデータプロセツサは含んでいる。 発明の概要 本発明は、命令実行中に、アクセスの誤りを検
出することによりその内部情報に関するすべての
本質的情報を外部メモリに自動的に記憶すること
が可能なデータプロセツサに関する。誤りの原因
を補正することにより、データプロセツサは、記
憶された状態情報を検索し、検索された状態情報
に従つてその状態を回復する。データプロセツサ
は、命令の実行を再開する。誤つたアクセスは、
命令の実行の再開により選択的に戻される。検索
された状態情報が妥当であることを確認(実証:
verify)する手段が具えられている。
サによる複数、少なくとも1つの命令の実行をそ
の実行中に制御する命令実行制御手段と、 前記命令実行制御手段に結合され、前記命令実
行中の前記例外条件の発生に応答し、前記例外条
件の時点における前記命令実行制御手段の状態を
示す1セツトの情報をメモリに記憶し、前記例外
条件が解決された後に前記記憶された1セツトの
状態情報を前記メモリから検索し、制御信号の受
信に応答し、前記検索された1セツトの状態情報
を使用する前記命令実行制御手段の状態を復元す
る例外処理手段と、を含む所定の型式で前記メモ
リとの接続に適合したデータプロセツサにおい
て、 前記例外処理手段に結合され、前記所定の型式
のデータプロセツサを示す所定の識別検査コード
を前記例外処理手段に与えて前記1セツトの状態
情報の1部として記憶し、 前記例外処理手段によつて検索された前記1セ
ツトの状態情報は前記所定の識別検査コードを含
むことを確認し、前記検索された状態情報が前記
所定の識別検査コードを含むことの確認にのみ応
答して前記制御信号を前記例外処理手段に与える
識別検査手段を、含むデータプロセツサ。 2 例外条件が発生した時点におけるデータプロ
セツサの状態を示す情報を記憶するステツプと、
所定の型式のデータプロセツサを示す所定の識別
検査コードを前記状態情報の1部分として記憶す
るステツプと、前記例外条件が解決された後に前
記の記憶された状態情報を検索するステツプと、
前記検索された状態情報が前記所定の識別検査コ
ードを含むことを確認するステツプと、前記検索
された状態情報が前記識別検査コードを含むこと
の確認にのみ応答して前記の検索された状態情報
によつて示される状態に前記データプロセツサの
状態を復元するステツプとを含む、所定の型式の
データプロセツサによる命令の実行中に発生する
例外条件から回復する方法。 技術的分野 本発明はデータプロセツサ及びその回復方法に
関するものであり、特に記憶された状態情報を用
いて中断された命令の実行を再開できるデータプ
ロセツサに関する。 背景技術 デジタルデータ処理システムは典型的な場合に
は特徴的な論理アドレス空間を有するデータプロ
セツサ、物理アドレス空間内で直接にアクセスで
きる限られた容量の一次メモリ、1つ又は複数の
周辺制御装置の援助がある場合にのみアクセスで
きるはるかに大きい容量の二次メモリ、および多
数の通例の入力/出力デバイスのうちの任意のデ
バイスを含む。特に大きな論理アドレス空間を有
するデータプロセツサを含むシステムにおいて
は、ユーザは彼の応用例がきわめてタイム・クリ
テイカル(time critical)であるので同等量の比
較的高価な一次メモリを備えることが正当化され
るという決定を下してもよい。しかし、ユーザは
それよりもしばしばはるかに大きな容量の比較的
安価な二次メモリを備えるためにこれらの資金を
使い、一次および二次メモリの間の彼のプログラ
ム/データのスワツピング部分がプロセツサによ
つて必要とされた場合にそれらの部分に伴う時間
的不利を受け入れる。一般に、スワツピング動作
の効率は才能のあるプログラマがアプリケーシヨ
ンプログラムを一連の相互に関係はあるがある程
度自律的なオーバレイに賢明に区分化することに
かかつている。そのような経験のあるプログラム
を発見又は開発するという問題をある程度解決し
大きな区分化されたプログラムを完成させるのに
本来かかる費用をある程度少なくするために、各
アプリケーシヨンプログラムが対応する物理アド
レス空間が現在プログラムに割当てられているか
又は一次メモリに実際に存在するかに関係なくプ
ロセツサの全論理アドレス空間に直接的アクセス
を有するようにみせかけることができるスーパバ
イザプログラムが開発された。そのような“仮想
メモリ”スーパバイザプログラムは典型的にはプ
ログラムに割当てられた物理アドレス空間の部分
の境界の外側で現在実行しつつあるプログラムに
よつてアクセスを検出するため連想メモリマツピ
ングハードウエアに依存する。そのような“誤り
(faults)”に応答して、プロセツサは“仮想”ア
クセスを認識し、もし適当な場合には必要とされ
るプログラムコード/データを二次メモリから一
次メモリにロードするスーパバイザプログラムの
誤り取扱い部分へ分岐する前に何らかの必要な状
態(state)情報を記憶する。所望するならば、
スーパバイザはプログラムコード/データの一部
を一次メモリから二次メモリに移動させて新らし
いコード/データのための余地を作ることができ
る。代表的な場合には次にスーパバイザプログラ
ムは、誤り(fault)が起きた時にプロセツサが
実行しつつあつた特定の命令を再び実行する。ど
れほど多くの情報がスタツクオフ(stack off)
されなければならないかということや、プロセツ
サが“誤つた”命令を再実行する準備をするため
にスーパバイザプログラムによつて用いられる機
構(mechanism)はマシンによつて異つた。 一部の設計では、プロセツサはあたかも割込み
が起きたかのように種々のユーザレジスタ、命令
レジスタ、プログラムカウンタおよび現在の状態
情報の内容を記憶するだけであつた。スーパバイ
ザプログラムは必要ならばプログラムカウンタを
“バツクアツプ”してプロセツサがどんな命令を
実行しつつあるかを発見し、次に誤つた命令が最
初に開始された場合にはできるだけプロセツサの
状態に近づけるためにレジスタおよび状態ビツト
を再構成しなければならなかつた。プロセツサ命
令セツトが比較的に規則的で予測しうるものであ
るシステムにおいてさえも、スーパバイザプログ
ラムにかかる負担は非常に大きなものであつた。
更に複雑なシステムでは、このアプローチは実施
不可能なことがしばしばあつた。 ソフトウエアにかかる負担が耐えられないほど
になつた時に、命令実行シーケンスの各ステツプ
の完了を“マーク”することによつて命令実行シ
ーケンスを追跡するために追加のハードウエアが
付加された。誤りが起きると、マーク情報がレジ
スタおよび状態情報とともにスタツクされた。ス
ーパバイザプログラムはなお誤りが起きた時にど
の命令をプロセツサが実行しつつあるかを決定
し、その後でハードウエアに対してその命令を再
び実行するように命令しなければならなかつた。
しかし、スーパバイザプログラムは“古い”マー
ク情報をハードウエアに供給できた。ハードウエ
アが実行シーケンスの各ステツプを進み、その進
行をいつものようにするにつれて、追加制御回路
は“現在の”マーク情報と“古い”マーク情報と
を比較する。特定のステツプが誤りが起きる前に
すでに実行されたことを制御回路が決定すると、
制御回路はそのステツプの結果のみを抑制し、次
に実行シーケンスが続行できるようにする。ひと
たび“現在”のマーク情報と“古い”マーク情報
とが一致しプロセツサが誤りの起きたステツプに
達したことを示すと、制御回路は実行シーケンス
のその後のステツプの実際の実行を干渉するのを
やめた。この方法により、誤つた命令を再び開始
する負担はソフトウエアとハードウエアに分配さ
れた。勿論、誤つた命令の再開を試みる前にその
誤りの根底にある原因をはつきりとさせることは
依然としてスーパバイザプログラムの責任であつ
た。 仮想メモリの使用を単一プロセツサシステムに
制限する仮想メモリ概念本来の制約はない。事実
1つのプロセツサが出会つた誤りが並列プロセツ
サへの割込みを発生させる多重プロセツサシステ
ムが提案されている。割込みに応答して後考のプ
ロセツサはもう一方のプロセツサの誤りの原因と
なつた問題をはつきりさせようと試みる。一方、
誤つたプロセツサはその誤りが解決されるのを待
ちつづけているにすぎない。その誤りがもう一方
のプロセツサによつてうまく解決されると、誤つ
たプロセツサはアクセス誤りが起きたことも知ら
ずに自らの道を進む。誤りをはつきりさせる仕事
を行うプロセツサのスーパバイザプログラムは、
誤つたプロセツサによつて実行されている命令に
関する情報を必要としないという点に注目すべき
である。しかし、そのスーパバイザプログラムは
誤つた論理アドレスの明細に対するアクセス、お
よび誤りに出会つたプログラムのアドレス空間に
ついてのある程度の情報を持たなければならな
い。そのような情報は各バスサイクルの過程の間
に容易にラツチできるので、その情報は誤りが起
きた時に利用できる。少なくとも2つのプロセツ
サおよび追加ラツチおよび割込み発生ハードウエ
アを必要とするほかに、この仮想メモリ技術は誤
つたプロセツサをもう一方のプロセツサがその誤
りを訂正するまで待機させ、各誤りを解決してい
る間に両方のプロセツサを結びつける。 多重処理システムにおいては、そのシステムの
任意のプロセツサが実行を待つている任意のプロ
グラムを実行できることが一般に望ましい。この
ことは割込み又は時分割による制約の故に一時的
に中断されているプログラムの再開を含む。いく
つかのプロセツサが同じ命令セツトを有する限り
においては、そのような配列を妨げるハードウエ
アの制約はない。この技術が拡張されて命令の実
行過程における誤り状態によつて中断されている
プログラムの実行の再開を含むようになつた場合
に問題が起きる。そのような中断されたプログラ
ムの実行を適切に再開するために、そのことを試
みようとするプロセツサはそのプログラムを最初
に実行しつつあつたプロセツサと同一シーケンス
にある同一命令セツトを実行しなければならな
い。さもないと誤つた命令が適切に完了するとい
う保証はない。各プロセツサのスーパバイザはそ
のような非互換性(incompatibilities)を検出し
ようと試みることはできるが、その同じスーパバ
イザプログラムは同時にいくつかのプロセツサに
ついて実行中であるかもしれず、従つてプロセツ
サ特性に関する情報については、メモリを基礎に
した資源データベースの保全性に依存しなければ
ならない。そのようなソフトウエア制御システム
においては、誤つたプログラムの非互換性プロセ
ツサ再開が検出されずに行われるというかなりの
危険が依然として存在する。 仮想マシン環境においては、データプロセツサ
は真のおよび存在しないシステム資源の両方に対
するユーザプログラムアクセスを支援できなけれ
ばならない。一般的に云つて、仮想メモリデータ
プロセツサはユーザプログラムの論理アドレス空
間内におけるデータ/命令へのアクセスの大部分
を支援するためにそのようなシステムに使用でき
る。しかし、そのようなプロセツサは存在しない
システム資源へのアクセスを支援することはでき
ない。従つて、スーパバイザはそのような利用で
きない資源へのアクセスを阻止し、システム内で
実際に利用できる互換性のある資源を用いてアク
セスをシミユレートするにすぎなかつた。次に、
スーパバイザは、誤つた命令に対して存在しない
資源へのアクセスが成功したように思わせた。 発明の要約 従つて、本発明の目的は中断前に首尾よく実行
された命令の部分を再実行する必要なしに中断さ
れた命令の実行を再開できるデータプロセツサ及
びその回復方法を提供することである。 本発明のもう1つの目的は、同じ型の別のデー
タプロセツサがその命令の実行を再開できるよう
にする方法で命令の実行を中断(停止)できるデ
ータプロセツサを提供することである。 本発明の更にもう1つの目的は、別のプロセツ
サが同じ型のものである場合にのみその別のプロ
セツサによつて中断(停止)された命令の実行を
再開するデータプロセツサを提供することであ
る。 本発明のこれらのおよびその他の目的は、例外
条件の発生を条件としてデータプロセツサによる
少なくとも1つの命令の実行を制御する命令実行
制御手段、および例外条件が発生した時点におけ
る命令実行制御手段の状態を示す1セツトの情報
を記憶する例外処理手段を有するデータプロセツ
サにおいて達成される。本発明においては、命令
実行制御手段による命令のうちの所定の1つの実
行に応答して記憶された1セツトの状態情報を検
索し、所定の妥当性検査コード(識別検査コー
ド:validation cord)を含む検索された状態情
報にのみ応答して検索された状態情報によつて示
される状態に命令実行制御手段を復元する状態復
元手段をデータプロセツサは含んでいる。 発明の概要 本発明は、命令実行中に、アクセスの誤りを検
出することによりその内部情報に関するすべての
本質的情報を外部メモリに自動的に記憶すること
が可能なデータプロセツサに関する。誤りの原因
を補正することにより、データプロセツサは、記
憶された状態情報を検索し、検索された状態情報
に従つてその状態を回復する。データプロセツサ
は、命令の実行を再開する。誤つたアクセスは、
命令の実行の再開により選択的に戻される。検索
された状態情報が妥当であることを確認(実証:
verify)する手段が具えられている。
第1図は、本発明の仮想メモリデータプロセツ
サを有する仮想メモリデータ処理システムのブロ
ツク図である。 第2図は、第1図の仮想メモリデータプロセツ
サのブロツク図である。 第3図は、第2図の仮想メモリデータプロセツ
サの実行装置(ユニツト)のブロツク図である。 第4図は、第3図の実行装置(ユニツト)の高
セクシヨンのブロツク図である。 第5図は、第3図の実行装置(ユニツト)の低
セクシヨンのブロツク図である。 第6図は、第3図の実行装置(ユニツト)のデ
ータセクシヨンのブロツク図である。 第7図は、第2図の仮想メモリデータプロセツ
サのフイールド翻訳装置(ユニツト)とそこにあ
るその他の機能装置との関係を示すブロツク図で
ある。
サを有する仮想メモリデータ処理システムのブロ
ツク図である。 第2図は、第1図の仮想メモリデータプロセツ
サのブロツク図である。 第3図は、第2図の仮想メモリデータプロセツ
サの実行装置(ユニツト)のブロツク図である。 第4図は、第3図の実行装置(ユニツト)の高
セクシヨンのブロツク図である。 第5図は、第3図の実行装置(ユニツト)の低
セクシヨンのブロツク図である。 第6図は、第3図の実行装置(ユニツト)のデ
ータセクシヨンのブロツク図である。 第7図は、第2図の仮想メモリデータプロセツ
サのフイールド翻訳装置(ユニツト)とそこにあ
るその他の機能装置との関係を示すブロツク図で
ある。
第1図に示してあるのは、仮想メモリデータプ
ロセツサ(VMDP)12により発行された論理
アドレス(LADDR)が物理バス(PBUS)16
上の出力に対する対応する物理アドレス
(PADDR)にメモリ管理装置(ユニツト)
(MMU)14によつてマツプされる仮想データ
処理システムである。同時に、アクセスを制御す
るためにVMDP12によつて与えられた種々の
論理アクセス制御信号(LCNTL)は、MMU1
4の制御の下で変更子装置(modifier unit)1
8によつて適当に計時された物理アクセス制御信
号(PCNTL)に変換される。 特定範囲の物理アドレス(PADDR)に応答し
て、メモリ20はエラー検出および訂正回路
(EDAC)22と協動してPBUS16上の物理ア
クセス制御信号(PCNTL)と同期してVMDP1
2とデータ(DATA)を交換する。データにエ
ラーが検出されると、EDAC22はエラーの種類
に応じてバスエラーを信号で知らせるか、又は
VMDP12に対して交換を再試行(RETRY)
するように要求する。 別の物理アドレスに応答して大容量記憶装置イ
ンタフエース24はVDMP12と協動してデー
タを大容量記憶装置26へ、又は大容量記憶装置
26から転送する。もしエラーが転送中に起きる
と、インタフエース24はバスエラー(BERR)
を信号で知らせるか、又は適当な場合には再試行
(RETRY)を要求してもよい。 更に別の物理アドレスに応答して、直接メモリ
アクセス制御装置(DMAC)28はVMDP12
からデータを受けとりデータ転送オペレーシヨン
を定義する。そのオペレーシヨンを行うために解
放されるとDMAC28は適当なPCNTL線を用い
てVMDP12に対してバスの制御を放棄するよ
うに定期的に要求する。バスの制御が与えられる
とDMAC28はメモリ20内で、又はメモリ2
0と大容量記憶装置26との間でデータブロツク
を転送する。そのような転送期間中にEDAC22
又は大容量記憶装置インタフエース24によつて
エラーが検出されると、DMAC28はBERRが
信号で知られたか又はRETRYが信号で知らされ
たかによつて転送を打切るか又は再試行する。 MMU14が特定の論理アドレス(LADDR)
を対応する物理アドレス(PADDR)にマツプす
ることができない場合にはMMU14はアクセス
誤り(FAULT)を信号で知らせる。MMU14
に対するチエツクとして、また同じくDMAC2
8に対するチエツクとして、ウオツチドツグタイ
マ30を備え、もし物理デバイスが物理アクセス
制御信号(PCNTL)に関連して適当な時間内に
物理アドレス(PADDR)に応答しなければバス
エラー(BERR)を信号で知らせてもよい。 データアクセスバスサイクルの期間中に
RETRYが要求されると、オアゲート32および
34はそれぞれVMDP12のBEERおよび
HALT(停止)入力を起動させる。VMDPバスサ
イクルの期間中のそのBERR入力およびHALT
入力の両方の同時起動に応答してVMDP12は
現在のバスサイクルを打切り、RETRY信号が終
了するとそのサイクルを再実行する。 所望するならば、VMDP12のオペレーシヨ
ンはHALT信号の慎重な使用によつて外部的に
制御してもよい。オアゲート34を介しての
HALT入力のみの起動に応答して、VMDP12
は現在のバスサイクルの終了時に停止し、
HALT信号の終了によつてのみオペレーシヨン
を再開する。 プロセツサ制御サイクルの期間中のそのBERR
入力のみの起動に応答して、VMDP12は現在
のバスサイクルを打切り、状態レジスタの内容を
内部に保管し、スーパバイザ状態に入り、追跡状
態がオンであればそれをオフにし、バスエラーベ
クトルナンバーを発生させる。次にVMDP12
はプロセツサの現在の内部文脈(context)を反
映する情報ブロツクをメモリ20のスーパバイザ
スタツク領域内にスタツクし、ベクトルナンバー
を用いてスーパバイザプログラムのエラー処理部
へ分岐する。 この時点まではVMDP12のオペレーシヨン
はモトローラ社のMC68000マイクロプロセツサ
のオペレーシヨンと同一である。しかし、
VMDP12がMC68000と異なる主な点は、
BERRの断定(assertion)に応答してスタツク
される情報の量である。MC68000によりスタツ
クされる情報は保管された状態レジスタ、プログ
ラムカウンタの現在の内容、通常は現在実行中の
命令の第1語である命令レジスタの内容、打切ら
れたバスサイクルによつてアクセスされつつあつ
た論理アドレス、および打切られたバスサイクル
の特性、即ち読出/書込、命令/データおよび機
能コードからなる。上記の情報に加えてVMDP
12は内部マシン状態についてはるかに多い情報
をスタツクするように作られている。例外ハンド
ラがエラーの解決に成功すると、その最後の命令
はVMDP12の制御を打切られたプログラムに
戻す。この命令の実行中に、追加のスタツクされ
た情報は検索されVMDP12の適当な部分にロ
ードされ、バスエラーが起きた時に存在した状態
を復元する。 アクセスが存在しない周辺装置に対して試みら
れた場合のような一部の状況の下では、スーパバ
イザは要求されたアクセスを行うが異なる資源を
利用することを選択してもよい。誤つたアクセス
が読出であれば、スーパバイザはアクセスされた
情報をスタツクにおける適当な位置に記憶するこ
とができる。あたかも存在しない周辺装置が実際
に応答したように誤つた命令にみえるようにする
ために、スーパバイザはスタツクにフラグをセツ
トしアクセスがすでに行われたことを示すことが
できる。誤つた命令の実行を再開する直前に
VMDP12はフラグをチエツクすることができ、
もしセツトされていればあたかもそのアクセスが
首尾よく完了したかのように命令実行を再開でき
る。従つて、誤つたプログラムはアクセスされた
資源が実際には存在しないことに気づかない。 VMDP12の好ましいオペレーシヨンを
VMDP12のマイクロプログラマブル実施例の
内部編成を示す第2図を参照して下記に説明す
る。VMDP12の図示されている形は下記に引
用するいくつかの米国特許に詳細に記述されてい
るモトローラ社のMC68000に非常によく似てい
るので、共通のオペレーシヨン上の局面を説明す
ることにする。ひとたびVMDP12の内部アー
キテクチヤの一般的理解がえられたならば、
VMDP12をMC68000と区別してVMDP12が
仮想メモリを支援できるようにする独特な面に説
明の重点をおくことにする。 VMDP12はMC68000と同様にパイプライン
マイクロプログラムドデータプロセツサである。
パイプラインプロセツサにおいては、各命令は典
型的には前の命令の実行中に取出され(fetch)、
取出された命令の翻訳(interpretation)は前の
命令が終る前に通常始まる。マイクロプログラム
ドデータプロセツサにおいては、各命令は命令に
よつて定義された小さいいくつかのオペレーシヨ
ンを行う一連のマイクロ命令として実行される。
もし所望するならば、ユーザ命令はマイクロ命令
との混乱をさけるためにマクロ命令と考えてもよ
い。MC68000およびVMDP12においては、各
マイクロ命令はマイクロ命令順序付けおよび機能
コード発生を制御するマイクロワード、および機
能装置間の情報の実際の経路指定およびVMDP
12内の特殊な機能装置の起動を制御する対応す
るナノワードを含む。このことを心に留めておい
て、典型的な命令実行サイクルを下記に説明す
る。 各命令の実行中の適当な時に、先取り
(prefetch)マイクロ命令が実行される。そのマ
イクロワード部はマイクロROM36からマイク
ロROM出力ラツチ38にロードされると、機能
コードバツフア40が論理アドレス(LADDR)
の機能コード(FC)部を出力して命令サイクル
を示すことができるようにする。同時にナノ
ROM42からナノROM出力ラツチ44にロー
ドされると対応するナノワードはバス制御装置4
6に対して命令取出しバスサイクルを行うように
要求し、実行装置48に対して次の命令の第1語
の論理アドレスをアドレスバツフア50に与える
ように命令する。PBUS16の制御を得るとバス
制御装置46はアドレスバツフア50が論理アド
レス(LADDR)のアドレス部を出力できるよう
にする。その後間もなくしてバス制御装置46は
適当なデータストローブ(LCNTL信号の一部)
を与えてメモリ20を起動させる。メモリ20が
要求された情報を与えると、バス制御装置46は
命令レジスタ捕獲(IRC)52が次の命令の第1
語をPBUS16から入力できるようにする。現在
の命令の実行のその後の時点において、別のマイ
クロ命令が実行されて次の命令の第1語をIRC5
2から命令レジスタ(IR)54に転送し、次の
語のメモリ20からIRC52にロードする。IR5
4の命令の種類に応じて、IRC52の語は即値デ
ータ、オペランドのアドレス又はその後の命令の
第1語となる。命令セツトおよびそのマイクロ命
令シーケンスの詳細は、1982年4月13日付でグン
ターらに発行された“マイクロプログラムドデー
タプロセツサ用2レベル制御記憶装置”と題する
米国特許第4325121号に詳述されている。 次の命令の第1語がIR54にロードされるや
いなやアドレス1デコーダ56はその命令の一部
の制御フイールドの復号を開始し、IR54にお
ける特定の命令の最初のマイクロシーケンスにお
ける第1マイクロ命令のマイクロアドレスを決定
する。同時に、違法命令デコーダ58はIR54
における命令形式の検査を開始する。その形式が
正しくないことが決定されると、違法命令デコー
ダ58は違法命令シーケンスの第1マイクロ命令
のマイクロアドレスを与える。形式エラーに応答
して例外論理60はマルチプレクサ62にアドレ
ス1デコーダ56によつて与えられたマイクロア
ドレスの代りに違法命令デコーダ58によつて与
えられたマイクロアドレスを使用させる。従つ
て、現在実行中の命令の最後のマイクロ命令が実
行されると、そのマイクロワード部はマルチプレ
クサ62が適当なアドレスをマイクロアドレスラ
ツチ64に与えることができるようにし、一方そ
のナノワード部は命令レジスタデコーダ(IRD)
66が次の命令の第1語をIR54からロードで
きるようにする。選択されたマイクロアドレスが
マイクロアドレスラツチ64にロードされると、
マイクロROM36はそれぞれのマイクロワード
をマイクロROM出力ラツチ38に出力し、ナノ
ROM42は対応するナノワードをナノROM出
力ラツチ44に出力する。 一般的に云つて、マイクロROM出力ラツチ3
8にロードされる各マイクロワードの一部分は実
行される次のマイクロ命令のマイクロアドレスを
指定する一方、別の部分は代替のマイクロアドレ
スのうちのどれがマルチプレクサ62によつて選
択されマイクロアドレスラツチ64に入力される
かを決定する。一部の命令においては、指定され
たオペレーシヨンを達成するために2つ以上のマ
イクロシーケンスが実行されなければならない。
間接アドレス分解(resolution)のようなタスク
は一般に命令内の追加制御フイールドを用いて指
定される。これらの追加マイクロシーケンスに対
する第1マイクロ命令のマイクロアドレスはIR
54における制御情報を用いてアドレス2/3デコ
ーダ68によつて展開(develop)される。より
簡単な形の命令においては、第1マイクロシーケ
ンスは代表的な場合には何らかの準備タスクを行
い、次にマルチプレクサ62がアドレス2/3デコ
ーダ68のアドレス3部分によつて展開されるよ
うな実際のオペレーシヨンを行うマイクロシーケ
ンスのマイクロアドレスを選択できるようにす
る。より複雑な形の命令においては、第1マイク
ロシーケンスは第1準備タスクを行い、次にマル
チプレクサ62がアドレス2/3デコーダ68のア
ドレス部分によつて展開されるような次の準備マ
イクロシーケンスのマイクロアドレスを選択でき
るようにする。この追加準備タスクが行われる
と、次に第2マイクロシーケンスはマルチプレク
サ62がアドレス2/3デコーダ68のアドレス3
部分によつて展開されるような実際のオペレーシ
ヨンを行うマイクロシーケンスのマイクロアドレ
スを選択できるようにする。いずれの場合にも、
各命令の最後のマイクロシーケンスの最後のマイ
クロ命令はマルチプレクサ62がアドレス1デコ
ーダ56によつて展開されるような次の命令の第
1マイクロ命令のマイクロアドレスを選択できる
ようにする。この方法によつて各命令の実行は適
当なシーケンスのマイクロ命令を通じて進行す
る。マイクロアドレスシーケンス選択機能のより
完全な説明は、1982年7月27日付でトレデンニツ
クらに発行された“マイクロプログラムドデータ
プロセツサ用命令レジスタシーケンスデコーダ”
と題する米国特許第4342078号に述べられている。 マイクロワードとは対照的に、ナノROM出力
ラツチ44にロードされるナノワードは、レジス
タ制御(高)70およびレジスタ制御(低および
データ)72に対して制御をおよぼすことによつ
て実行装置48内のいくつかのレジスタ内への、
そしてもし必要ならばそれらのレジスタ間におけ
るオペランドの経路指定を間接的に制御する。一
部の状況の下では、ナノワードはフイールド翻訳
装置74がIRD66の命令から特定のビツトフイ
ールドを抽出して実行装置48に対して入力でき
るようにする。ナノワードはまたAU制御76お
よびALU制御78に制御をおよぼすことによつ
て実行装置48内の有効アドレス計算および実際
のオペランド計算を間接的に制御する。適当な状
況の下ではナノワードはALU制御78が実行装
置48による各オペランド計算の結果生じる条件
コードを状態レジスタSRに記憶できるようにす
る。ALU制御78の更に詳しい説明は、1982年
1月19日付でグンターらに発行された“データプ
ロセツサ用ALUおよび条件コード制御装置”と
題する米国特許第4312034号に述べられている。 第3図から判るように、VMDP12の実行装
置48はMC68000の実行装置と同様にそれぞれ
アドレスおよびデータバス80および82のそれ
ぞれのセグメントに選択的に接続できる高セクシ
ヨン48A、低セクシヨン48Bおよびデータセ
クシヨン48Cを含む。実行装置48は米国特許
第4296469号に記述されているMC68000の実行装
置ときわめてよく似ているので、共通の機能装置
についてはごく簡単に説明するだけにしておい
て、その後にVDMP12が仮想メモリを支援で
きるようにする新たな素子についてより詳しく説
明することにする。 第4図に示すように、高セクシヨン48Aは32
ビツトアドレスオペランドの最上位16ビツトを記
憶するための1セツト9つの高アドレスレジスタ
AOH−A7′H、32ビツトデータオペランドの最上
位16ビツトを記憶するための1セツト8つの高デ
ータレジスタDOH−D7H、一時高アドレスレジ
スタATH、一時高データレジスタDTH、アドレ
スおよびデータバス80および82の高セクシヨ
ンに与えられたオペランドについて算術計算を行
うための演算装置高AUH、16ビツトオペランド
について32ビツトオペレーシヨンを可能にするた
めの符号拡張回路84、およびプログラムカウン
タPCHおよびアドレス出力バツフアAOBHの最
上位16ビツトから主として構成される。第5図に
示すように、低セクシヨン48Bは32ビツトアド
レスオペランドの最下位16ビツトを記憶するため
の1セツト9つの低アドレスレジスタAOL−
A7′L、アドレスおよびデータバス80および8
2の低セクシヨンに与えられたオペランドに関す
る算術計算を行うための演算装置低AUL、多重
レジスタ移動オペレーシヨンに用いられる優先順
位エンコーダレジスタPER、およびプログラム
カウンタPCLおよびアドレス出力バツフア
AOBLの最下位16ビツトから主として構成され
る、第5図はまたフイールド翻訳装置74の
FTUレジスタ部とアドレスおよびデータバス8
0および82の低セツシヨンとの関係を示す。第
6図に示すように、データセクシヨン48Cは32
ビツトデータオペランドの最下位16ビツトでもよ
い16ビツトオペランドを記憶するための1セツト
8つの低データレジスタDOL−D7L、16ビツト
オペランドマークを発生させるデコーダレジスタ
DCR、アドレスおよびデータバス80および8
2のデータセクシヨンに与えられるオペランドに
関する算術および論理演算を行うための演算およ
び論理装置ALU、ALUバツフアレジスタ
ALUB、マルチワードシフトオペレーシヨン用
のALU拡張レジスタ、および多重化データ入力
および出力バツフアDBINおよびDOBから主と
して構成される。 これまでのところはVMDP12をMC68000と
共通なハードウエア特徴の点から説明してきた。
VMDP12はまたMC68000にやや似た方法でエ
ラー条件に応答する。MMU14は誤り
(FAULT)信号を発生させてアドレスエラーを
信号で知らせるか、その他の周辺装置回路は
BERR信号を出してバスエラーを報告する。いず
れの場合にも、VMDP12はオアゲート32を
介してBERR信号を受信する。BERR信号に応答
してバス制御装置46はエラーを例外論理60に
知らせ、次に誤りバスサイクルを規則正しく終了
させる。次に例外論理60はマルチプレクサ62
にバスエラー例外ハンドラマイクロシーケンスの
マイクロアドレスを与えてマイクロアドレスラツ
チ64に入れさせる。この時点において、
MC68000は例外論理60によつて与えられたマ
イクロアドレスをマイクロアドレスラツチ64に
ロードするだけであり、制御は例外ハンドラマイ
クロシーケンスに移つて下記の情報をスタツクア
ウト(stack out)する。 SSWB 特殊システム状態語バス AOBH アクセスアドレス高 AOBL アクセスアドレス低 IRD 命令レジスタデコード SR 状態レジスタ PCH プログラムカウンタ高 PCL プログラムカウンタ低 この情報は通常はエラーの原因を決定するのに
十分であるが、この情報はエラーが解決された後
に現在の状態が復元できるようにするには不十分
である。従つて、VMDP12は例外ハンドラマ
イクロシーケンスのマイクロアドレスをロードす
る前に、その現在の状態に関する追加情報を内部
に保管する。このことを達成するために、
VMDP12は必要な状態情報を捕獲するためい
くつかの追加レジスタを有しており、いくつかの
追加アクセス経路が一部の現存のレジスタに与え
られる。例えば、第2図に示すように、VMDP
12は誤りが起きた時にマイクロアドレスをマイ
クロアドレスラツチに記憶するためマイクロアド
レス捕獲ラツチ86を有する。フイールド翻訳装
置74内には第7図に示すように特殊状態語内部
(SSWZ)レジスタ88が備えられていて下記を
保管する; PR (例外論理60から)トラツプ特権例外ラ
ツチ TR (例外論理60から)トラツプトレース例
外ラツチ TP (SRから)トレースペンテイングラツチ LP ループモードラツチ(新しいビツト) HX (ALUから)みえないX状態ビツト ARx (PERから)優先順位エンコーダ出力レ
ジスタセレクタ TVN (例外論理60から)トラツプベクトル
ナンバーラツチ 更に、MC68000においては R/W 読出/書込(R/W)および FC 誤つたアクセスに対する機能コード のみを保管したフイールド翻訳装置74内の特殊
状態語バス(SSWB)レジスタ90は今度は下記
を保管する。 IF ナノROMビツトNIRC(IRCへの命令取出
し) DF ナノROMビツトNDBI(DBINへのデータ
取出し) RM 読出−変更−書込サイクル HB ナノROMビツトNIOH(DOBからの、又は
DBINへの高バイト転送) BY バイト/ワード転送 ひとたびこの追加状態情報がラツチされると、
VMDP12は例外論理60によつて与えられた
マイクロアドレスをマイクロアドレスラツチ64
にロードし、例外ハンドラマイクロシーケンスの
実行を開始する。VMDP12の例外ハンドラマ
イクロシーケンスにおいて最初のマイクロ命令は
実行装置48におけるアドレス計算および出力経
路をクリアしなければならないので、スタツクア
ドレスは安全に計算されMMU14に与えられ
る。従つて、実行装置48はいくつかの追加レジ
スタが備えられていて現在あるアドレス、データ
および制御情報を記憶し、第4図に示してある高
セクシヨン48Aには3つの仮想アドレス一時高
レジスタVAT1H−VAT3Hが備えられていて
AUHの出力およびAOBHにおけるアドレスの捕
獲を促進し、第5図に示してある低セクシヨン4
8Bには3つの仮想アドレス一時低レジスタ
VAT1L−VAT3Lが備えられていてAULの出力
およびAOBLにおけるアドレスの捕獲を可能に
し、第6図に示してあるデータセクシヨン48C
には2つの仮想データ一時レジスタVDT1−
VDTが備えられていて制御情報をFTUに記憶し
データをDOBに記憶する。実行装置48をクリ
アした後に、例外ハンドラはスタツクアドレスを
計算し、下記の情報をスタツクする。 SR 状態レジスタ PCH プログラムカウンタ高 PCL プログラムカウンタ低 VOR スタツクフレーム形式およびベクトルオ
フセツト SSWB 特殊システム状態語バス AOBH アクセスアドレス高 AOBL アクセスアドレス低 DOB データ出力バツフア DIB データ入力バツフア IRC 命令レジスタ捕獲 MAL マイクロアドレス捕獲ラツチ ALUB ALUBの内容 FTU フイールド翻訳装置レジスタ ATH アドレス一時高 ALU ALU出力ラツチ ATL アドレス一時低 AUH AUラツチ高 AUL AUラツチ低 DCRL デコーダラツチ PERL RER出力レジスタ SSWI 特殊状態語内部 IR 命令レジスタ DTH データ一時高 DTL データ一時低 IRD 命令レジスタデコード ALUE ALUEレジスタ 次に例外ハンドラマイクロシーケンスはスーパ
バイザプログラム中のエラー回復ルーチンの方向
に向かう。スタツクされた状態情報を用いてスー
パバイザプログラムは誤りの原因を決定でき、も
し適当ならば問題の確定(fix)を試みることが
できる。例えば、対応する物理アドレスを持たな
い論理アドレスへのアクセスは、プログラム/デ
ータのプログラムを大容量記憶装置26からメモ
リ20にロードすることを要求するにすぎないこ
とがある。勿論その他の処理を誤つたプログラム
の再開前に行つてもよい。 中断されたプログラムへ制御を戻すために、
MC68000およびVMDP12の両方のスーパバイ
ザプログラムは例外からの復帰(RTE)命令を
実行する。MC68000においてはこの命令は、そ
の例外が命令境界で起きた種類のものであつた場
合にのみ実行される。従つて、この命令に対する
マイクロシーケンスはスタツクから状態レジスタ
SRおよびプログラムカウンタPCH−PCLを再び
ロードし、次にそのアドレスがプログラムカウン
タにある命令に制御を送り得るだけである。
VMDP12においてはこの命令はまた命令の実
行中に典型的に起きるアクセス誤りからの復帰に
も用いられる。従つて、このマイクロシーケンス
の初期のマイクロ命令はスタツクからVOR語を
取出しスタツクフレーム形式を決定する。短い形
式が示されると、マイクロシーケンスは
MC68000におけるように進行する。他方、長い
形式が示されると、いくつかの他の語がスタツク
から取出されて全フレームがメモリにおいて使用
できることを保証する。フレーム形式が短くも長
くもないと、VMDP12はスタツクフレームが
間違つているか、又は互換性のない型のプロセツ
サによつて発生させられたものと仮定して、制御
をスタツクフレーム形式エラー例外ハンドラマイ
クロシーケンスに送る。この段階において別の誤
りが発生してスタツクフレームの一部がメモリ2
0から偶然にスワツプされたことを示すと、同じ
アクセス誤り処理手続がスタツクの残りを検索す
るのに用いられる。 状態情報をスタツクするマイクロシーケンスの
期間中に、マイクロアドレス捕獲ラツチ86に含
まれるマイクロアドレスは第7図に示すように
BCバスの一部を介してFTUに結合される。同時
に、改正妥当性(識別)検査装置(Revision
validator)92はVMDP12内に含まれるマイ
クロコードのバージヨンを独特の方法で識別する
コードをBCバスの利用可能な部分に印加
(impress)する。この組合せ語はその後実行装
置48のデータセクシヨン48CのDOBに転送
されデータバツフア94を介してメモリ20に出
力される。命令継続マイクロシーケンスの妥当性
(識別)検査段階の間に、MAL語はスタツクから
取出され、実行装置48のデータセクシヨン48
CにおけるIRC52とDBINの両方にロードされ
る。MALはDBINからFTUに転送され、BCバ
スに結合される。次に改正妥当性(識別)検査装
置92はMALのバージヨンナンバー部分と内部
バージヨン(識別)ナンバーとを比較する。それ
らのバージヨン(識別)ナンバーが同じでなけれ
ば、改正妥当性(識別)検査装置92はブランチ
制御装置96に信号を出して制御をスタツクフレ
ーム形式例外ハンドラマイクロシーケンスに転送
する。さもなければ改正妥当性(識別)検査装置
92はマイクロシーケンスがMALのマイクロア
ドレス部分をアドレス4ラツチ98にロードでき
るようにするにすぎない。 ひとたびスタツクフレームが妥当であることが
決定されると、マイクロシーケンスはクリテイカ
ル段階に入り、この段階においてはいかなる誤り
も二重誤りと考えられ、VMDP12は外部的に
リセツトされるまで処理をやめる。この段階の間
に、スタツクの情報の残りは取出されて、もとの
位置又はいくつかの一時レジスタに再びロードさ
れる。例えば、マイクロアドレス捕獲ラツチ86
によつて捕獲されたマイクロアドレスラツチ64
の内容はアドレス4ラツチ98にロードされる。
しかし、最後のスタツクアクセスの後にのみ、
AUH−AULおよびSRの内容が一時レジスタか
ら復元される。この命令継続マイクロシーケンス
の最後のマイクロ命令はAOBH、AOBL、FTU
およびDOBの内容を復元し、バス制御装置46
に信号を出してSSWB90にある情報を用いて誤
つたバスサイクルを再開し、マルチプレクサ62
に対してアドレス4ラツチ98のマイクロアドレ
スを選択するように要求する。 好ましい形においては、SSWB90の再実行ビ
ツトRRを検査することによつて命令継続マイク
ロシーケンスの最後のマイクロ命令によつて与え
られる再開信号に応答する。スーパバイザがスタ
ツクにおけるRRビツトをセツトしていないと、
バス制御装置46はSSWB90内のその他の情報
の制御の下に誤つたバスサイクルの再実行を進
め、次にそのサイクルが首尾よく完了した時を例
外論理60に信号で知らせる。他方、スーパバイ
ザがRRビツトをセツトすると、バス制御装置4
6はバスサイクルを再実行せずに、サイクルが完
了したことを例外論理60に信号で知らせるにす
ぎない。サイクル完了信号に応答して、例外論理
60はマルチプレクがアドレス4ラツチのマイク
ロアドレスをマイクロアドレスラツチ64に出力
できるようにする。次に誤つた命令はあたかも誤
りが起きなかつたかのようにVMDP12の制御
を再開する。 VMDP12はまたMC68000と違つて現在実行
中のユーザプログラムがスーパバイザ状態で実行
中であるという錯覚をつくり出すことができる。
ことことは、状態レジスタにおけるスーパバイ
ザ/ユーザビツトをアクセスするすべての命令を
特権命令にすることによつて行われる。従つて、
スーパバイザ/ユーザビツトを変更又は読出す試
みがユーザプログラムによつて行われると、制御
は必ず自動的にスーパバイザに戻る。次にスーパ
バイザはSRの適当に変更されたイメージを準備
しそれをユーザプログラムに返すことができる。
次に、真のSRから絶縁されているユーザプログ
ラムのそれがスーパバイザであるかのように思わ
せることができる。真のスーパバイザの支援をう
けてこの擬似スーパバイザはその他のユーザプロ
グラムの実行を制御できる。ユーザプログラムか
ら真の、および存在しない資源へのアクセスを制
御するこの能力は、真のユーザであれ、擬似スー
パバイザであれ、ユーザがVMDP12を用いて
仮想マシン環境をつくり出すことができるように
する。
ロセツサ(VMDP)12により発行された論理
アドレス(LADDR)が物理バス(PBUS)16
上の出力に対する対応する物理アドレス
(PADDR)にメモリ管理装置(ユニツト)
(MMU)14によつてマツプされる仮想データ
処理システムである。同時に、アクセスを制御す
るためにVMDP12によつて与えられた種々の
論理アクセス制御信号(LCNTL)は、MMU1
4の制御の下で変更子装置(modifier unit)1
8によつて適当に計時された物理アクセス制御信
号(PCNTL)に変換される。 特定範囲の物理アドレス(PADDR)に応答し
て、メモリ20はエラー検出および訂正回路
(EDAC)22と協動してPBUS16上の物理ア
クセス制御信号(PCNTL)と同期してVMDP1
2とデータ(DATA)を交換する。データにエ
ラーが検出されると、EDAC22はエラーの種類
に応じてバスエラーを信号で知らせるか、又は
VMDP12に対して交換を再試行(RETRY)
するように要求する。 別の物理アドレスに応答して大容量記憶装置イ
ンタフエース24はVDMP12と協動してデー
タを大容量記憶装置26へ、又は大容量記憶装置
26から転送する。もしエラーが転送中に起きる
と、インタフエース24はバスエラー(BERR)
を信号で知らせるか、又は適当な場合には再試行
(RETRY)を要求してもよい。 更に別の物理アドレスに応答して、直接メモリ
アクセス制御装置(DMAC)28はVMDP12
からデータを受けとりデータ転送オペレーシヨン
を定義する。そのオペレーシヨンを行うために解
放されるとDMAC28は適当なPCNTL線を用い
てVMDP12に対してバスの制御を放棄するよ
うに定期的に要求する。バスの制御が与えられる
とDMAC28はメモリ20内で、又はメモリ2
0と大容量記憶装置26との間でデータブロツク
を転送する。そのような転送期間中にEDAC22
又は大容量記憶装置インタフエース24によつて
エラーが検出されると、DMAC28はBERRが
信号で知られたか又はRETRYが信号で知らされ
たかによつて転送を打切るか又は再試行する。 MMU14が特定の論理アドレス(LADDR)
を対応する物理アドレス(PADDR)にマツプす
ることができない場合にはMMU14はアクセス
誤り(FAULT)を信号で知らせる。MMU14
に対するチエツクとして、また同じくDMAC2
8に対するチエツクとして、ウオツチドツグタイ
マ30を備え、もし物理デバイスが物理アクセス
制御信号(PCNTL)に関連して適当な時間内に
物理アドレス(PADDR)に応答しなければバス
エラー(BERR)を信号で知らせてもよい。 データアクセスバスサイクルの期間中に
RETRYが要求されると、オアゲート32および
34はそれぞれVMDP12のBEERおよび
HALT(停止)入力を起動させる。VMDPバスサ
イクルの期間中のそのBERR入力およびHALT
入力の両方の同時起動に応答してVMDP12は
現在のバスサイクルを打切り、RETRY信号が終
了するとそのサイクルを再実行する。 所望するならば、VMDP12のオペレーシヨ
ンはHALT信号の慎重な使用によつて外部的に
制御してもよい。オアゲート34を介しての
HALT入力のみの起動に応答して、VMDP12
は現在のバスサイクルの終了時に停止し、
HALT信号の終了によつてのみオペレーシヨン
を再開する。 プロセツサ制御サイクルの期間中のそのBERR
入力のみの起動に応答して、VMDP12は現在
のバスサイクルを打切り、状態レジスタの内容を
内部に保管し、スーパバイザ状態に入り、追跡状
態がオンであればそれをオフにし、バスエラーベ
クトルナンバーを発生させる。次にVMDP12
はプロセツサの現在の内部文脈(context)を反
映する情報ブロツクをメモリ20のスーパバイザ
スタツク領域内にスタツクし、ベクトルナンバー
を用いてスーパバイザプログラムのエラー処理部
へ分岐する。 この時点まではVMDP12のオペレーシヨン
はモトローラ社のMC68000マイクロプロセツサ
のオペレーシヨンと同一である。しかし、
VMDP12がMC68000と異なる主な点は、
BERRの断定(assertion)に応答してスタツク
される情報の量である。MC68000によりスタツ
クされる情報は保管された状態レジスタ、プログ
ラムカウンタの現在の内容、通常は現在実行中の
命令の第1語である命令レジスタの内容、打切ら
れたバスサイクルによつてアクセスされつつあつ
た論理アドレス、および打切られたバスサイクル
の特性、即ち読出/書込、命令/データおよび機
能コードからなる。上記の情報に加えてVMDP
12は内部マシン状態についてはるかに多い情報
をスタツクするように作られている。例外ハンド
ラがエラーの解決に成功すると、その最後の命令
はVMDP12の制御を打切られたプログラムに
戻す。この命令の実行中に、追加のスタツクされ
た情報は検索されVMDP12の適当な部分にロ
ードされ、バスエラーが起きた時に存在した状態
を復元する。 アクセスが存在しない周辺装置に対して試みら
れた場合のような一部の状況の下では、スーパバ
イザは要求されたアクセスを行うが異なる資源を
利用することを選択してもよい。誤つたアクセス
が読出であれば、スーパバイザはアクセスされた
情報をスタツクにおける適当な位置に記憶するこ
とができる。あたかも存在しない周辺装置が実際
に応答したように誤つた命令にみえるようにする
ために、スーパバイザはスタツクにフラグをセツ
トしアクセスがすでに行われたことを示すことが
できる。誤つた命令の実行を再開する直前に
VMDP12はフラグをチエツクすることができ、
もしセツトされていればあたかもそのアクセスが
首尾よく完了したかのように命令実行を再開でき
る。従つて、誤つたプログラムはアクセスされた
資源が実際には存在しないことに気づかない。 VMDP12の好ましいオペレーシヨンを
VMDP12のマイクロプログラマブル実施例の
内部編成を示す第2図を参照して下記に説明す
る。VMDP12の図示されている形は下記に引
用するいくつかの米国特許に詳細に記述されてい
るモトローラ社のMC68000に非常によく似てい
るので、共通のオペレーシヨン上の局面を説明す
ることにする。ひとたびVMDP12の内部アー
キテクチヤの一般的理解がえられたならば、
VMDP12をMC68000と区別してVMDP12が
仮想メモリを支援できるようにする独特な面に説
明の重点をおくことにする。 VMDP12はMC68000と同様にパイプライン
マイクロプログラムドデータプロセツサである。
パイプラインプロセツサにおいては、各命令は典
型的には前の命令の実行中に取出され(fetch)、
取出された命令の翻訳(interpretation)は前の
命令が終る前に通常始まる。マイクロプログラム
ドデータプロセツサにおいては、各命令は命令に
よつて定義された小さいいくつかのオペレーシヨ
ンを行う一連のマイクロ命令として実行される。
もし所望するならば、ユーザ命令はマイクロ命令
との混乱をさけるためにマクロ命令と考えてもよ
い。MC68000およびVMDP12においては、各
マイクロ命令はマイクロ命令順序付けおよび機能
コード発生を制御するマイクロワード、および機
能装置間の情報の実際の経路指定およびVMDP
12内の特殊な機能装置の起動を制御する対応す
るナノワードを含む。このことを心に留めておい
て、典型的な命令実行サイクルを下記に説明す
る。 各命令の実行中の適当な時に、先取り
(prefetch)マイクロ命令が実行される。そのマ
イクロワード部はマイクロROM36からマイク
ロROM出力ラツチ38にロードされると、機能
コードバツフア40が論理アドレス(LADDR)
の機能コード(FC)部を出力して命令サイクル
を示すことができるようにする。同時にナノ
ROM42からナノROM出力ラツチ44にロー
ドされると対応するナノワードはバス制御装置4
6に対して命令取出しバスサイクルを行うように
要求し、実行装置48に対して次の命令の第1語
の論理アドレスをアドレスバツフア50に与える
ように命令する。PBUS16の制御を得るとバス
制御装置46はアドレスバツフア50が論理アド
レス(LADDR)のアドレス部を出力できるよう
にする。その後間もなくしてバス制御装置46は
適当なデータストローブ(LCNTL信号の一部)
を与えてメモリ20を起動させる。メモリ20が
要求された情報を与えると、バス制御装置46は
命令レジスタ捕獲(IRC)52が次の命令の第1
語をPBUS16から入力できるようにする。現在
の命令の実行のその後の時点において、別のマイ
クロ命令が実行されて次の命令の第1語をIRC5
2から命令レジスタ(IR)54に転送し、次の
語のメモリ20からIRC52にロードする。IR5
4の命令の種類に応じて、IRC52の語は即値デ
ータ、オペランドのアドレス又はその後の命令の
第1語となる。命令セツトおよびそのマイクロ命
令シーケンスの詳細は、1982年4月13日付でグン
ターらに発行された“マイクロプログラムドデー
タプロセツサ用2レベル制御記憶装置”と題する
米国特許第4325121号に詳述されている。 次の命令の第1語がIR54にロードされるや
いなやアドレス1デコーダ56はその命令の一部
の制御フイールドの復号を開始し、IR54にお
ける特定の命令の最初のマイクロシーケンスにお
ける第1マイクロ命令のマイクロアドレスを決定
する。同時に、違法命令デコーダ58はIR54
における命令形式の検査を開始する。その形式が
正しくないことが決定されると、違法命令デコー
ダ58は違法命令シーケンスの第1マイクロ命令
のマイクロアドレスを与える。形式エラーに応答
して例外論理60はマルチプレクサ62にアドレ
ス1デコーダ56によつて与えられたマイクロア
ドレスの代りに違法命令デコーダ58によつて与
えられたマイクロアドレスを使用させる。従つ
て、現在実行中の命令の最後のマイクロ命令が実
行されると、そのマイクロワード部はマルチプレ
クサ62が適当なアドレスをマイクロアドレスラ
ツチ64に与えることができるようにし、一方そ
のナノワード部は命令レジスタデコーダ(IRD)
66が次の命令の第1語をIR54からロードで
きるようにする。選択されたマイクロアドレスが
マイクロアドレスラツチ64にロードされると、
マイクロROM36はそれぞれのマイクロワード
をマイクロROM出力ラツチ38に出力し、ナノ
ROM42は対応するナノワードをナノROM出
力ラツチ44に出力する。 一般的に云つて、マイクロROM出力ラツチ3
8にロードされる各マイクロワードの一部分は実
行される次のマイクロ命令のマイクロアドレスを
指定する一方、別の部分は代替のマイクロアドレ
スのうちのどれがマルチプレクサ62によつて選
択されマイクロアドレスラツチ64に入力される
かを決定する。一部の命令においては、指定され
たオペレーシヨンを達成するために2つ以上のマ
イクロシーケンスが実行されなければならない。
間接アドレス分解(resolution)のようなタスク
は一般に命令内の追加制御フイールドを用いて指
定される。これらの追加マイクロシーケンスに対
する第1マイクロ命令のマイクロアドレスはIR
54における制御情報を用いてアドレス2/3デコ
ーダ68によつて展開(develop)される。より
簡単な形の命令においては、第1マイクロシーケ
ンスは代表的な場合には何らかの準備タスクを行
い、次にマルチプレクサ62がアドレス2/3デコ
ーダ68のアドレス3部分によつて展開されるよ
うな実際のオペレーシヨンを行うマイクロシーケ
ンスのマイクロアドレスを選択できるようにす
る。より複雑な形の命令においては、第1マイク
ロシーケンスは第1準備タスクを行い、次にマル
チプレクサ62がアドレス2/3デコーダ68のア
ドレス部分によつて展開されるような次の準備マ
イクロシーケンスのマイクロアドレスを選択でき
るようにする。この追加準備タスクが行われる
と、次に第2マイクロシーケンスはマルチプレク
サ62がアドレス2/3デコーダ68のアドレス3
部分によつて展開されるような実際のオペレーシ
ヨンを行うマイクロシーケンスのマイクロアドレ
スを選択できるようにする。いずれの場合にも、
各命令の最後のマイクロシーケンスの最後のマイ
クロ命令はマルチプレクサ62がアドレス1デコ
ーダ56によつて展開されるような次の命令の第
1マイクロ命令のマイクロアドレスを選択できる
ようにする。この方法によつて各命令の実行は適
当なシーケンスのマイクロ命令を通じて進行す
る。マイクロアドレスシーケンス選択機能のより
完全な説明は、1982年7月27日付でトレデンニツ
クらに発行された“マイクロプログラムドデータ
プロセツサ用命令レジスタシーケンスデコーダ”
と題する米国特許第4342078号に述べられている。 マイクロワードとは対照的に、ナノROM出力
ラツチ44にロードされるナノワードは、レジス
タ制御(高)70およびレジスタ制御(低および
データ)72に対して制御をおよぼすことによつ
て実行装置48内のいくつかのレジスタ内への、
そしてもし必要ならばそれらのレジスタ間におけ
るオペランドの経路指定を間接的に制御する。一
部の状況の下では、ナノワードはフイールド翻訳
装置74がIRD66の命令から特定のビツトフイ
ールドを抽出して実行装置48に対して入力でき
るようにする。ナノワードはまたAU制御76お
よびALU制御78に制御をおよぼすことによつ
て実行装置48内の有効アドレス計算および実際
のオペランド計算を間接的に制御する。適当な状
況の下ではナノワードはALU制御78が実行装
置48による各オペランド計算の結果生じる条件
コードを状態レジスタSRに記憶できるようにす
る。ALU制御78の更に詳しい説明は、1982年
1月19日付でグンターらに発行された“データプ
ロセツサ用ALUおよび条件コード制御装置”と
題する米国特許第4312034号に述べられている。 第3図から判るように、VMDP12の実行装
置48はMC68000の実行装置と同様にそれぞれ
アドレスおよびデータバス80および82のそれ
ぞれのセグメントに選択的に接続できる高セクシ
ヨン48A、低セクシヨン48Bおよびデータセ
クシヨン48Cを含む。実行装置48は米国特許
第4296469号に記述されているMC68000の実行装
置ときわめてよく似ているので、共通の機能装置
についてはごく簡単に説明するだけにしておい
て、その後にVDMP12が仮想メモリを支援で
きるようにする新たな素子についてより詳しく説
明することにする。 第4図に示すように、高セクシヨン48Aは32
ビツトアドレスオペランドの最上位16ビツトを記
憶するための1セツト9つの高アドレスレジスタ
AOH−A7′H、32ビツトデータオペランドの最上
位16ビツトを記憶するための1セツト8つの高デ
ータレジスタDOH−D7H、一時高アドレスレジ
スタATH、一時高データレジスタDTH、アドレ
スおよびデータバス80および82の高セクシヨ
ンに与えられたオペランドについて算術計算を行
うための演算装置高AUH、16ビツトオペランド
について32ビツトオペレーシヨンを可能にするた
めの符号拡張回路84、およびプログラムカウン
タPCHおよびアドレス出力バツフアAOBHの最
上位16ビツトから主として構成される。第5図に
示すように、低セクシヨン48Bは32ビツトアド
レスオペランドの最下位16ビツトを記憶するため
の1セツト9つの低アドレスレジスタAOL−
A7′L、アドレスおよびデータバス80および8
2の低セクシヨンに与えられたオペランドに関す
る算術計算を行うための演算装置低AUL、多重
レジスタ移動オペレーシヨンに用いられる優先順
位エンコーダレジスタPER、およびプログラム
カウンタPCLおよびアドレス出力バツフア
AOBLの最下位16ビツトから主として構成され
る、第5図はまたフイールド翻訳装置74の
FTUレジスタ部とアドレスおよびデータバス8
0および82の低セツシヨンとの関係を示す。第
6図に示すように、データセクシヨン48Cは32
ビツトデータオペランドの最下位16ビツトでもよ
い16ビツトオペランドを記憶するための1セツト
8つの低データレジスタDOL−D7L、16ビツト
オペランドマークを発生させるデコーダレジスタ
DCR、アドレスおよびデータバス80および8
2のデータセクシヨンに与えられるオペランドに
関する算術および論理演算を行うための演算およ
び論理装置ALU、ALUバツフアレジスタ
ALUB、マルチワードシフトオペレーシヨン用
のALU拡張レジスタ、および多重化データ入力
および出力バツフアDBINおよびDOBから主と
して構成される。 これまでのところはVMDP12をMC68000と
共通なハードウエア特徴の点から説明してきた。
VMDP12はまたMC68000にやや似た方法でエ
ラー条件に応答する。MMU14は誤り
(FAULT)信号を発生させてアドレスエラーを
信号で知らせるか、その他の周辺装置回路は
BERR信号を出してバスエラーを報告する。いず
れの場合にも、VMDP12はオアゲート32を
介してBERR信号を受信する。BERR信号に応答
してバス制御装置46はエラーを例外論理60に
知らせ、次に誤りバスサイクルを規則正しく終了
させる。次に例外論理60はマルチプレクサ62
にバスエラー例外ハンドラマイクロシーケンスの
マイクロアドレスを与えてマイクロアドレスラツ
チ64に入れさせる。この時点において、
MC68000は例外論理60によつて与えられたマ
イクロアドレスをマイクロアドレスラツチ64に
ロードするだけであり、制御は例外ハンドラマイ
クロシーケンスに移つて下記の情報をスタツクア
ウト(stack out)する。 SSWB 特殊システム状態語バス AOBH アクセスアドレス高 AOBL アクセスアドレス低 IRD 命令レジスタデコード SR 状態レジスタ PCH プログラムカウンタ高 PCL プログラムカウンタ低 この情報は通常はエラーの原因を決定するのに
十分であるが、この情報はエラーが解決された後
に現在の状態が復元できるようにするには不十分
である。従つて、VMDP12は例外ハンドラマ
イクロシーケンスのマイクロアドレスをロードす
る前に、その現在の状態に関する追加情報を内部
に保管する。このことを達成するために、
VMDP12は必要な状態情報を捕獲するためい
くつかの追加レジスタを有しており、いくつかの
追加アクセス経路が一部の現存のレジスタに与え
られる。例えば、第2図に示すように、VMDP
12は誤りが起きた時にマイクロアドレスをマイ
クロアドレスラツチに記憶するためマイクロアド
レス捕獲ラツチ86を有する。フイールド翻訳装
置74内には第7図に示すように特殊状態語内部
(SSWZ)レジスタ88が備えられていて下記を
保管する; PR (例外論理60から)トラツプ特権例外ラ
ツチ TR (例外論理60から)トラツプトレース例
外ラツチ TP (SRから)トレースペンテイングラツチ LP ループモードラツチ(新しいビツト) HX (ALUから)みえないX状態ビツト ARx (PERから)優先順位エンコーダ出力レ
ジスタセレクタ TVN (例外論理60から)トラツプベクトル
ナンバーラツチ 更に、MC68000においては R/W 読出/書込(R/W)および FC 誤つたアクセスに対する機能コード のみを保管したフイールド翻訳装置74内の特殊
状態語バス(SSWB)レジスタ90は今度は下記
を保管する。 IF ナノROMビツトNIRC(IRCへの命令取出
し) DF ナノROMビツトNDBI(DBINへのデータ
取出し) RM 読出−変更−書込サイクル HB ナノROMビツトNIOH(DOBからの、又は
DBINへの高バイト転送) BY バイト/ワード転送 ひとたびこの追加状態情報がラツチされると、
VMDP12は例外論理60によつて与えられた
マイクロアドレスをマイクロアドレスラツチ64
にロードし、例外ハンドラマイクロシーケンスの
実行を開始する。VMDP12の例外ハンドラマ
イクロシーケンスにおいて最初のマイクロ命令は
実行装置48におけるアドレス計算および出力経
路をクリアしなければならないので、スタツクア
ドレスは安全に計算されMMU14に与えられ
る。従つて、実行装置48はいくつかの追加レジ
スタが備えられていて現在あるアドレス、データ
および制御情報を記憶し、第4図に示してある高
セクシヨン48Aには3つの仮想アドレス一時高
レジスタVAT1H−VAT3Hが備えられていて
AUHの出力およびAOBHにおけるアドレスの捕
獲を促進し、第5図に示してある低セクシヨン4
8Bには3つの仮想アドレス一時低レジスタ
VAT1L−VAT3Lが備えられていてAULの出力
およびAOBLにおけるアドレスの捕獲を可能に
し、第6図に示してあるデータセクシヨン48C
には2つの仮想データ一時レジスタVDT1−
VDTが備えられていて制御情報をFTUに記憶し
データをDOBに記憶する。実行装置48をクリ
アした後に、例外ハンドラはスタツクアドレスを
計算し、下記の情報をスタツクする。 SR 状態レジスタ PCH プログラムカウンタ高 PCL プログラムカウンタ低 VOR スタツクフレーム形式およびベクトルオ
フセツト SSWB 特殊システム状態語バス AOBH アクセスアドレス高 AOBL アクセスアドレス低 DOB データ出力バツフア DIB データ入力バツフア IRC 命令レジスタ捕獲 MAL マイクロアドレス捕獲ラツチ ALUB ALUBの内容 FTU フイールド翻訳装置レジスタ ATH アドレス一時高 ALU ALU出力ラツチ ATL アドレス一時低 AUH AUラツチ高 AUL AUラツチ低 DCRL デコーダラツチ PERL RER出力レジスタ SSWI 特殊状態語内部 IR 命令レジスタ DTH データ一時高 DTL データ一時低 IRD 命令レジスタデコード ALUE ALUEレジスタ 次に例外ハンドラマイクロシーケンスはスーパ
バイザプログラム中のエラー回復ルーチンの方向
に向かう。スタツクされた状態情報を用いてスー
パバイザプログラムは誤りの原因を決定でき、も
し適当ならば問題の確定(fix)を試みることが
できる。例えば、対応する物理アドレスを持たな
い論理アドレスへのアクセスは、プログラム/デ
ータのプログラムを大容量記憶装置26からメモ
リ20にロードすることを要求するにすぎないこ
とがある。勿論その他の処理を誤つたプログラム
の再開前に行つてもよい。 中断されたプログラムへ制御を戻すために、
MC68000およびVMDP12の両方のスーパバイ
ザプログラムは例外からの復帰(RTE)命令を
実行する。MC68000においてはこの命令は、そ
の例外が命令境界で起きた種類のものであつた場
合にのみ実行される。従つて、この命令に対する
マイクロシーケンスはスタツクから状態レジスタ
SRおよびプログラムカウンタPCH−PCLを再び
ロードし、次にそのアドレスがプログラムカウン
タにある命令に制御を送り得るだけである。
VMDP12においてはこの命令はまた命令の実
行中に典型的に起きるアクセス誤りからの復帰に
も用いられる。従つて、このマイクロシーケンス
の初期のマイクロ命令はスタツクからVOR語を
取出しスタツクフレーム形式を決定する。短い形
式が示されると、マイクロシーケンスは
MC68000におけるように進行する。他方、長い
形式が示されると、いくつかの他の語がスタツク
から取出されて全フレームがメモリにおいて使用
できることを保証する。フレーム形式が短くも長
くもないと、VMDP12はスタツクフレームが
間違つているか、又は互換性のない型のプロセツ
サによつて発生させられたものと仮定して、制御
をスタツクフレーム形式エラー例外ハンドラマイ
クロシーケンスに送る。この段階において別の誤
りが発生してスタツクフレームの一部がメモリ2
0から偶然にスワツプされたことを示すと、同じ
アクセス誤り処理手続がスタツクの残りを検索す
るのに用いられる。 状態情報をスタツクするマイクロシーケンスの
期間中に、マイクロアドレス捕獲ラツチ86に含
まれるマイクロアドレスは第7図に示すように
BCバスの一部を介してFTUに結合される。同時
に、改正妥当性(識別)検査装置(Revision
validator)92はVMDP12内に含まれるマイ
クロコードのバージヨンを独特の方法で識別する
コードをBCバスの利用可能な部分に印加
(impress)する。この組合せ語はその後実行装
置48のデータセクシヨン48CのDOBに転送
されデータバツフア94を介してメモリ20に出
力される。命令継続マイクロシーケンスの妥当性
(識別)検査段階の間に、MAL語はスタツクから
取出され、実行装置48のデータセクシヨン48
CにおけるIRC52とDBINの両方にロードされ
る。MALはDBINからFTUに転送され、BCバ
スに結合される。次に改正妥当性(識別)検査装
置92はMALのバージヨンナンバー部分と内部
バージヨン(識別)ナンバーとを比較する。それ
らのバージヨン(識別)ナンバーが同じでなけれ
ば、改正妥当性(識別)検査装置92はブランチ
制御装置96に信号を出して制御をスタツクフレ
ーム形式例外ハンドラマイクロシーケンスに転送
する。さもなければ改正妥当性(識別)検査装置
92はマイクロシーケンスがMALのマイクロア
ドレス部分をアドレス4ラツチ98にロードでき
るようにするにすぎない。 ひとたびスタツクフレームが妥当であることが
決定されると、マイクロシーケンスはクリテイカ
ル段階に入り、この段階においてはいかなる誤り
も二重誤りと考えられ、VMDP12は外部的に
リセツトされるまで処理をやめる。この段階の間
に、スタツクの情報の残りは取出されて、もとの
位置又はいくつかの一時レジスタに再びロードさ
れる。例えば、マイクロアドレス捕獲ラツチ86
によつて捕獲されたマイクロアドレスラツチ64
の内容はアドレス4ラツチ98にロードされる。
しかし、最後のスタツクアクセスの後にのみ、
AUH−AULおよびSRの内容が一時レジスタか
ら復元される。この命令継続マイクロシーケンス
の最後のマイクロ命令はAOBH、AOBL、FTU
およびDOBの内容を復元し、バス制御装置46
に信号を出してSSWB90にある情報を用いて誤
つたバスサイクルを再開し、マルチプレクサ62
に対してアドレス4ラツチ98のマイクロアドレ
スを選択するように要求する。 好ましい形においては、SSWB90の再実行ビ
ツトRRを検査することによつて命令継続マイク
ロシーケンスの最後のマイクロ命令によつて与え
られる再開信号に応答する。スーパバイザがスタ
ツクにおけるRRビツトをセツトしていないと、
バス制御装置46はSSWB90内のその他の情報
の制御の下に誤つたバスサイクルの再実行を進
め、次にそのサイクルが首尾よく完了した時を例
外論理60に信号で知らせる。他方、スーパバイ
ザがRRビツトをセツトすると、バス制御装置4
6はバスサイクルを再実行せずに、サイクルが完
了したことを例外論理60に信号で知らせるにす
ぎない。サイクル完了信号に応答して、例外論理
60はマルチプレクがアドレス4ラツチのマイク
ロアドレスをマイクロアドレスラツチ64に出力
できるようにする。次に誤つた命令はあたかも誤
りが起きなかつたかのようにVMDP12の制御
を再開する。 VMDP12はまたMC68000と違つて現在実行
中のユーザプログラムがスーパバイザ状態で実行
中であるという錯覚をつくり出すことができる。
ことことは、状態レジスタにおけるスーパバイ
ザ/ユーザビツトをアクセスするすべての命令を
特権命令にすることによつて行われる。従つて、
スーパバイザ/ユーザビツトを変更又は読出す試
みがユーザプログラムによつて行われると、制御
は必ず自動的にスーパバイザに戻る。次にスーパ
バイザはSRの適当に変更されたイメージを準備
しそれをユーザプログラムに返すことができる。
次に、真のSRから絶縁されているユーザプログ
ラムのそれがスーパバイザであるかのように思わ
せることができる。真のスーパバイザの支援をう
けてこの擬似スーパバイザはその他のユーザプロ
グラムの実行を制御できる。ユーザプログラムか
ら真の、および存在しない資源へのアクセスを制
御するこの能力は、真のユーザであれ、擬似スー
パバイザであれ、ユーザがVMDP12を用いて
仮想マシン環境をつくり出すことができるように
する。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1983/001624 WO1984002407A1 (en) | 1982-12-07 | 1983-10-17 | Data processor version validation |
US447600 | 1989-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59502157A JPS59502157A (ja) | 1984-12-27 |
JPH0355851B2 true JPH0355851B2 (ja) | 1991-08-26 |
Family
ID=22175501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50352983A Granted JPS59502157A (ja) | 1982-12-07 | 1983-10-17 | データプロセッサ及びその回復方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS59502157A (ja) |
-
1983
- 1983-10-17 JP JP50352983A patent/JPS59502157A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS59502157A (ja) | 1984-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4524415A (en) | Virtual machine data processor | |
US4493035A (en) | Data processor version validation | |
US4635193A (en) | Data processor having selective breakpoint capability with minimal overhead | |
US4488228A (en) | Virtual memory data processor | |
US5119483A (en) | Application of state silos for recovery from memory management exceptions | |
US5317752A (en) | Fault-tolerant computer system with auto-restart after power-fall | |
JPH02232737A (ja) | パイプライン方式コンピューターシステムにおいてエラーを検出し訂正する方法及び装置 | |
US5003458A (en) | Suspended instruction restart processing system based on a checkpoint microprogram address | |
US4740889A (en) | Cache disable for a data processor | |
CA1222323A (en) | Method and apparatus for signed and unsigned bounds check | |
US5146569A (en) | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension | |
JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
US5898867A (en) | Hierarchical memory system for microcode and means for correcting errors in the microcode | |
US4742449A (en) | Microsequencer for a data processing system using a unique trap handling technique | |
US5673391A (en) | Hardware retry trap for millicoded processor | |
JPH0355851B2 (ja) | ||
CA1233271A (en) | Cache disable for a data processor | |
CA1223079A (en) | Data processor having selective breakpoint capability with minimal overhead | |
EP0655686B1 (en) | Retry control method and device for control processor | |
US6751708B2 (en) | Method for ensuring that a line is present in an instruction cache | |
JPH0250259A (ja) | ベクタープロセッサによって非同期メモリ管理例外を取り扱う方法及び装置 | |
JPH01125633A (ja) | マルチプロセッサシステムのデバッグ法 | |
JP2564290B2 (ja) | 命令再開処理方法および装置 | |
JPH03103924A (ja) | データ処理装置 | |
JPS5924347A (ja) | マイクロ命令実行制御方法 |