(57)【特許請求の範囲】
【請求項１】
一般命令の実行を行うステート（プロセス・ステート）で各種割込み、あるいはその他の事象が発生した時、プロセス・ステートから前記事象を処理するためのマイクロプログラムの実行ステート（エンド・プロセス・ステート）に遷移する処理装置のエンド・プロセス・ステートにおけるマイクロプログラムのリトライ方法において、
プロセス・ステートからエンド・プロセス・ステートに遷移させて、マイクロプログラムを実行させる契機となった事象を保持し、
前記事象に応じたマイクロプログラムの実行中において、マシーンチェック条件が発生してもリトライが可能であるか否かを監視し、該マイクロプログラムの実行によりレジスタ、メモリにデータが書込まれた時、リトライ不可能とし、
マイクロプログラムの実行中にマシーンチェック条件が発生した時、リトライ可能状態であれば、前記保持してある事象に応じたマイクロプログラムを最初から実行する、
ことを特徴とするマイクロプログラムのリトライ方法。
【請求項２】
リトライが成功しない場合には、予め設定されている回数になるまでリトライを継続することを特徴とする請求項１記載のエンド・プロセス・ステートにおけるマイクロプログラムのリトライ方法。
【請求項３】
発生事象に応じたマイクロプログラムの制御記憶部における先頭アドレスを発生する手段を設け、発生事象に応じた先頭アドレスよりマイクロプログラムを読み出して実行することを特徴とする請求項１記載のマイクロプログラムのリトライ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
情報処理装置のシステムダウンは社会的に大きな影響を及ぼすため、その信頼性の向上がより重要となっている。このため、マシーンチェック条件が発生した時、メモリやレジスタ等が更新されてない限りリトライさせること（命令の再実行）により、システムを間欠エラーから救済し、後続する一連の処理を行えるようにする必要がある。
本発明は、一般命令の実行を行うステート（プロセス・ステート）でプログラム割込みやマシーンチェック割込み等の各種割込み、あるいはその他の事象が発生した時、該プロセス・ステートから該事象を処理するためのマイクロプログラムの実行ステート（エンド・プロセス・ステート）に遷移する処理装置におけるマイクロプログラムのリトライ方法であり、特に、マイクロプログラム実行中にマシーンチェック条件が発生しても、マイクロプログラムのリトライが可能となるようにし、マイクロプログラム実行時に発生した間欠エラーから情報処理装置を救済し、信頼性を向上させるようにしたマイクロプログラムのリトライ方法に関する。
【０００２】
【従来の技術】
従来、パイプラインを用いた情報処理装置（ステートマシーン）では、命令実行等の一般の処理は、通常プロセス・ステートと呼ばれるステートで行われる。かかるプロセス・ステートで命令実行中に、システムに対して直接の損傷を与え、かつ、処理の継続を不可能とするようなマシーンチェック条件が発生すると、情報処理装置の信頼性向上のために、メモリやレジスタ等の更新が行われない限り該情報処理装置のリトライを複数回行うことによって間欠エラーによるシステムダウンやマシーンチェック割込みから、該情報処理装置の救済を図っている。図６はステートマシーンの遷移状態図であり、ステートとしては、▲１▼一般命令を実行するプロセス・ステートＳ１、▲２▼パイプラインを初期化するクリアパイプラインステート（リストア・ステート）Ｓ２、▲３▼各種割込み、その他の事象に応じた処理をマイクロプログラムに従って実行するエンド・プロセス・ステートＳ３、▲４▼プロセッサＣＰＵによる処理を開始させるためのスタート・ステートＳ４、▲５▼プロセッサＣＰＵの処理を停止するためのストップ・ステートＳ５、▲６▼チェック・ストップ・ステートＳ６がある。
【０００３】
図７はパイプライン処理における命令実行の処理単位（ステージ）の説明図である。パイプラインはたとえば１０ステージで構成され、主記憶装置あるいはキャッシュメモリより命令を読み出すまでの命令フェッチパイプラインと、命令を解読して実行するまでのメインパイプラインに大別される。命令フェッチパイプラインは、▲１▼命令フェッチアドレス計算ステージＩと、▲２▼命令アドレス変換ステージＩＴと、▲３▼バッファ読み出しステージＩＢと、▲４▼命令のメインパイプラインへの投入ステージＩＲから成っている。メインパイプラインは、▲１▼命令の解読ステージＤと、▲２▼主記憶装置におけるオペランドのアドレス計算ステージＡと、▲３▼オペランドアドレス変換ステージＴと、▲４▼オペランドの読み出しステージＢと、▲５▼演算の実行ステージＥと、▲６▼演算結果の格納ステージＷとから成っている。
【０００４】
図８はパイプライン処理の説明図である。命令列が図８（ａ）に示すようになっていると、各命令は図８（ｂ）に示すように１つの命令の実行の終了を待たず次々と１ステージ毎に順次メインパイプラインに投入されて実行される。
かかるステートマシーンにおいては、例えば、プロセス・ステートＳ１で命令を実行中に割込みその他の事象が発生するとクリアパイプラインステートＳ２に移行し、該ステートＳ２においてパイプライン上で実行中の命令あるいは後続命令をキャンセルして初期化する。しかる後、エンド・プロセス・ステートＳ３に移行し、各種割込みあるいはステートの遷移を引き起こした事象に応じた所定のマイクロプログラムが起動し、該マイクロプログラムにより割込み処理等を行なう。マイクロプログラムによる処理終了後、スタート・ステートＳ４を介してプロセス・ステートＳ１に戻り、後続の命令がパイプライン処理により実行される。
【０００５】
【発明が解決しようとする課題】
ところで、従来の情報処理装置（ステートマシーン）ではエンド・プロセス・ステートにおいてマシーンチェック条件が発生した時に、割込み点の保障がなされていなかった。このため、エンド・プロセス・ステートでマシーンチェック条件が発生すると、リトライを行うことができず、チェックストップとなり、後続する一連の処理の続行ができなかった。すなわち、従来はプロセス・ステートでしかリトライさせていなかったため、情報処理装置の信頼性が低いという問題があった。
【０００６】
以上から本発明の目的は、エンド・プロセス・ステートでマシーンチェック条件が発生してもリトライを可能にして情報処理装置の信頼性を向上できるマイクロプログラムのリトライ方法を提供することである。
本発明の別の目的は、リトライが成功しない場合には、予め設定されている回数になるまでリトライを継続することにより情報処理装置の信頼性を向上できるマイクロプログラムのリトライ方法を提供することである。
本発明の更に別の目的は、割込みや各事象に応じたマイクロプログラムの先頭アドレスを記憶しておき、発生した事象に応じたマイクロプログラムを制御記憶装置より読み出してリトライできるマイクロプログラムのリトライ方法を提供することである。
【０００７】
【課題を解決するための手段】
図１は本発明の原理説明図である。図中、１は発生事象保持部であり、プロセス・ステートからエンド・プロセス・ステートに遷移させてマイクロプログラムを実行させる契機となった事象（各種割込み等）を保持するもの、２はエンド・プロセス・ステートにおいてマシーンチェック条件が発生してもリトライが可能であるか、不可能であるかを監視するリトライ可能・不可能監視部、３は発生事象に応じたマイクロプログラムの先頭アドレスを出力するマイクロプログラムアドレス発生部、４はマイクロプログラムの実行中にマシーンチェック条件が発生した時、リトライ可能であれば、前記保持してある事象に応じたマイクロプログラムの先頭アドレスを出力するリトライ制御部、２１は各種マイクロプログラムを記憶する制御記憶部（ＣＳ）、３１は制御記憶部の読み出しアドレスを記憶するＣＳアドレスレジスタ、５１はマイクロ命令の制御フィールドをデコードするデコーダである。
【０００８】
プロセス・ステートにおいて一般命令の実行中に、プログラム割込みやマシーンチェック割込み等の各種割込み、あるいはその他の事象が発生した時、該事象を発生事象保持部１に記憶する。しかる後、プロセスステートからエンド・プロセス・ステートに移行し、該発生事象に応じたマイクロプログラムを制御記憶部２１より読み出して処理を実行する。かかるエンド・プロセス・ステート中において、リトライ可能・不可能監視部２は、現時点においてマシーンチェック条件が発生してもリトライが可能であるか否かを監視する。そして、エンド・プロセス・ステート（マイクロプログラムの実行中）にマシーンチェック条件が発生すれば、リトライ制御部４はリトライ可能であるか否かを確認し、リトライ可能であれば、発生事象保持部１に保持してある事象に応じたマイクロプログラムの先頭アドレスをマイクロプログラムアドレス発生部３より求めてＣＳアドレスレジスタ３１にセットして該マイクロプログラムを最初から再実行する（リトライ）。以上のようにすれば、エンド・プロセス・ステートでマシーンチェック条件が発生してもリトライが可能となり、情報処理装置の信頼性を向上できる。又、リトライが成功しない場合には、予め設定されている回数になるまでリトライを継続することにより情報処理装置の信頼性を向上できる。
【０００９】
【発明の実施の形態】
（ａ）本発明の全体の構成
図２は本発明の全体構成図である。図中、１１は本発明のマイクロプログラムリトライ制御を実行するマイクロプログラムリトライ制御回路、２１は各種マイクロプログラムを記憶する制御記憶部（ＣＳ）である。マイクロプログラムを構成する各マイクロ命令は制御フィールドＣＦと次アドレスを示すシーケンス制御フィールドＳＦを有している。３１は制御記憶部の読み出しアドレスを記憶するＣＳアドレスレジスタ、４１は制御記憶部より読み出したマイクロ命令を記憶するマイクロ命令記憶レジスタ、５１はマイクロ命令の制御フィールドＣＦをデコードして各種制御信号ｃ１〜ｃｍを図示しないデータ処理部に送出するデコーダ、６１はリトライ制御回路より出力されるマイクロプログラムの先頭アドレスＮＥＸＴ  ＣＳ  ＡＤＲＳ  及びマイクロ命令の次アドレスを適宜選択してＣＳアドレスレジスタ３１にセットするセレクタである。セレクタ６１はマイクロプログラム実行（ハードオペ実行）に際して、リトライ制御回路１１より出力されるアドレスＮＥＸＴ  ＣＳ  ＡＤＲＳ  をＣＳアドレスレジスタ３１にセットし、以後はマイクロ命令記憶レジスタ４１に読み出されたマイクロ命令のシーケンス制御フィールドＳＦにおける次アドレスをＣＳアドレスレジスタ３１にセットする。
【００１０】
（ｂ）マイクロプログラムのリトライ制御
図３はマイクロプログラムのリトライ制御のシーケンスであり、上段には情報処理装置のプロセッサのステート（状態）を示し、中断にリトライ制御回路１１内の各種制御信号を示し、下段にプロセッサの処理内容を示している。
プロセス・ステートにおいて一般命令の実行中にプログラム例外（ＰＲＯＧＲＡＭ  ＥＸＣＥＰＴＩＯＮ）によりプログラム割込みが発生すると、該プログラム割込みはラッチされ、該割込みが解消するまで信号ＰＸ  ＬＣＨが出力される。一方、プログラム例外（プログラムエラー）の検出によりリストア・ステートに移行し、信号ＰＩＰＥＬＩＮＥ  ＣＬＥＡＲ  が”１”になる。リストア・ステートにおいてパイプラインの初期化が終了すると、ハードオペトリガＨＡＲＤ  ＯＰ  ＴＧＲが”１”になり、以後、プログラム割込みに応じたマイクロプログラムが制御記憶部２１より読み出されてプログラム割込み処理が実行される。
【００１１】
このプログラム割込み実行中に、マシーンチェック条件（ハードエラー）ＥＲＲが発生すると、ラッチされ（ＥＲＲＯＲ  ＬＣＨ＝”１”）、所定時間遅延してハードマシーンチェックディテクト信号ＨＭＤが”１”になる。これにより、ハードオペトリガＨＡＲＤ  ＯＰ  ＴＧＲがローレベルになり、プログラム割込み処理が中断する。又、後述するリトライ可能・不可能監視部は、マシーンチェック条件が発生してもリトライが可能であるか、不可能であるかを監視しており、上記ハードマシーンチェックディテクト信号ＨＭＤが”１”になった時、リトライ可能であれば、ハードオペリトライラッチＨＡＲＤ  ＯＰ  ＲＥＴＲＹ  ＬＣＨをハイレベルにする。又、ハードマシーンチェックディテクト信号ＨＭＤが”１”になると、リストア・ステートに移行し、信号ＰＩＰＥＬＩＮＥ  ＣＬＥＡＲ  が”１”になる。
【００１２】
リストア・ステートにおいてパイプラインの初期化が終了すると、ハードオペトリガＨＡＲＤ  ＯＰ  ＴＧＲが”１”になり、前記保持されているプログラム割込みＰＸ  ＬＣＨに応じたマイクロプログラムを制御記憶部２１より読み出してプログラム割込み処理（ハードオペ）を再実行する（リトライ）。そして、この際、マシーンチェック条件が発生せず、プログラム割込み処理が終了すれば、エンドオペレーションＥＮＤ  ＯＰがハイレベルになる。この結果、ハードオペトリガＨＡＲＤ  ＯＰ  ＴＧＲ及びハードオペリトライラッチＨＡＲＤ  ＯＰ  ＲＥＴＲＹ  ＬＣＨがローレベルになり、しかる後、スタート・ステートに移行して、スタート処理が行われ、この時点でラッチされているプログラム割込みＰＸ  ＬＣＨがローレベルになり、以後、プロセス・ステートに移行して、後続の命令がパイプライン処理される。
【００１３】
（ｃ）マイクロプログラムリトライ制御回路
図４及び図５はマイクロプログラムリトライ制御回路の構成図である。
図４はリトライ可能・不可能監視部の構成図、図５は発生事象保持部、マイクロプログラムアドレス発生部、リトライ制御部等のハードウェア部である。
図４のリトライ可能・不可能監視部２において、２ａはフリップフロップ、２ｂ，２ｃはオアゲート、２ｄ，２ｅはアンドゲートである。
【００１４】
フリップフロップ２ａは、命令の実行が終了した時（エンドオペレーションＥＮＤ  ＯＰ＝”１”）、あるいは、リストア・ステートにおいてパイプラインが初期化された時（ＣＬＥＡＲ  ＰＩＰＥＬＩＮＥ＝”１”）にそれぞれセットされ、ハイレベルのリトライポイント信号ＲＥＴＲＹ  ＰＯＩＮＴを出力する。又、フリップフロップ２ａは、一般命令などハードウェアにより検出されるリトライ不可能点信号ＲＥＳＥＴ  ＲＥＴＲＹ  ＨＷにより、あるいは、マイクロにより検出されるリトライ不可能点信号ＲＥＳＥＴ  ＲＥＴＲＹ  ＭＩＣＲＯによりリセットされ、リトライポイント信号ＲＥＴＲＹ  ＰＯＩＮＴを”０”にする。アンドゲート２ｄはリトライポイント信号ＲＥＴＲＹ  ＰＯＩＮＴがハイレベルの時にリトライ回数が設定回数に満たない場合（ＲＥＴＲＹ  ＣＯＵＮＴ  ＬＥＳＳ  ＴＨＡＮ  ｎ＝”１”）、ハイレベルの信号ＥＮＢ  ＲＥＴＲＹを出力する。アンドゲート２ｅはエンド・プロセス・ステートにおいて、信号ＥＮＢ  ＲＥＴＲＹがハイレベルの時にリトライ可能信号ＥＮＢ  ＲＥＴＲＹ  ＨＯＰを出力する。
【００１５】
すなわち、エンド・プロセス・ステートにおいて、リトライ可能であり、しかも、リトライ回数が設定回数に満たない場合には、アンドゲート２ｅよりハイレベルのリトライ可能信号ＥＮＢ  ＲＥＴＲＹ  ＨＯＰが出力する。従って、この状態において、マシーンチェック条件が発生すると、後述するようにリトライが行われる。しかし、エンド・プロセス・ステートにおけるマイクロプログラムの実行（ハードオペの実行）によりレジスタ、メモリ等にデータが書き込まれてリトライ不可能になると、あるいはリトライ可能であってもリトライ回数が設定回数以上になると、リトライ可能信号ＥＮＢ  ＲＥＴＲＹ  ＨＯＰはローレベルになり、リトライが不可能になる。
【００１６】
図５において、１は発生事象保持部であり、プロセス・ステートからエンド・プロセス・ステートに遷移させてマイクロプログラムを実行させる契機となった事象（各種割込み等）を保持するもの、３は発生事象に応じたマイクロプログラムの先頭アドレスを出力するマイクロプログラムアドレス発生部、４はマイクロプログラムの実行中にマシーンチェック条件が発生した時、リトライ可能であれば、前記保持してある事象に応じたマイクロプログラムの先頭アドレスを出力してリトライを実行させるリトライ制御部である。
【００１７】
発生事象保持部１において、１ａ〜１ｎはプロセス・ステートからエンド・プロセス・ステートに遷移させてマイクロプログラムを実行させる契機となる事象（各種割込み等）を保持するフリップフロップ、１ｓはオアゲートで、割込み処理等の終了によりスタート・ステートになった時（ＳＴＡＲＴ  ＳＴＡＴＥ＝”１”）、あるいは、プロセッサが停止してストップ・ステートになった時（ＳＴＯＰ  ＳＴＡＴＥ＝”１”）、フリップフロップ１ａ〜１ｎをリセットする。すなわち、各フリップフロップ１ａ〜１ｎはプロセス・ステートにおいてマイクロプログラムを実行させる契機となる事象が発生したときセットされ、該事象に対する処理が終了するまで、あるいは、プロセッサが停止状態になるまで該事象を保持する。
マイクロプログラムアドレス発生部３は、アンドゲート３ａ〜３ｎと、エンコーダ３ｓを備えている。リトライ可能状態において（ＥＮＢ  ＲＥＴＲＹ  ＨＯＰ＝”１”）、所定の事象が発生してフリップフロップ１ａ〜１ｎがセットされると、該フリップフロップに応じたアンドゲート３ａ〜３ｎの出力がハイレベルになり、エンコーダ３ｓは発生事象に応じたマイクロプログラムの先頭アドレスＳＷ  ＨＯＰ  ＣＯＤＥ（０：ｎ）を出力する。
【００１８】
リトライ制御部４において、４ａはオアゲート、４ｂはアンドゲート、４ｃはフリップフロップ、４ｄはアンド・ノットアンドゲート、４ｅ，４ｆはアドレスセレクタである。プロセス・ステートにおいて割込み等の事象が発生してフリップフロップ１ａ〜１ｎのいずれかがセットされると、オアゲート４ａの出力がハイレベルになる。しかる後、リストア・ステートに移行してパイプラインの初期化が終了すると、クリアパイプラインエンド信号ＣＬＥＡＲ  ＰＩＰＥＬＩＮＥ  ＥＮＤが発生する。フリップフロップ４ｃはこの信号ＣＬＥＡＲ  ＰＩＰＥＬＩＮＥ  ＥＮＤによりセットされ、ハードオペにスイッチするための引き金となるハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲを出力する。アドレスセレクタ４ｅはハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲがハイレベルになり、マイクロプログラムの最初のフローである事を示す＋ＡＣＮＴ０がハイレベルになった時に、マイクロプログラムアドレス発生部３から出力されているマイクロプログラムの先頭アドレスを次読出アドレスＮＥＸＴ  ＣＳ  ＡＤＲＳとして選択し、図２のＣＳアドレスレジスタ３１にセットする。これにより、以後、発生事象に応じたマイクロプログラム処理が開始する。尚、ハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲがローレベル、あるいはマイクロプログラムの次のフローからは、アドレスセレクタ４ｆが図示しない他の回路から出力されるアドレスをＣＳアドレス記憶部３１にセットする。
尚、フリップフロップ４ｃは命令の実行が終了した時（エンドオペレーションＥＮＤ  ＯＰ＝”１”）、あるいは、リストア・ステートにおいてパイプラインが初期化された時（ＣＬＥＡＲ  ＰＩＰＥＬＩＮＥ＝”１”）にそれぞれセットされる。
【００１９】
４ｇ，４ｈはアンドゲート、４ｉ，４ｊはフリップフロップ、４ｋはステートの遷移を制御するステータス制御回路である。
リトライ可能状態において（ＥＮＢ  ＲＥＴＲＹ  ＨＯＰ＝”１”）、マシーンチェック条件が発生すると（ＨＭＤ＝”１”）、アンドゲート４ｇはハイレベルの信号ＳＥＴ  ＨＯＰ  ＲＴＲＹ  ＴＧＲを出力してフリップフロップ４ｉをセットする。フリップフロップ４ｉは、セットされると、ハードオペリトライラッチ信号ＨＡＲＤ  ＯＰ  ＲＥＴＲＹ  ＬＣＨを出力する。又、リトライ不可能状態において（ＥＮＢ  ＲＥＴＲＹ  ＨＯＰ＝”０”）、マシーンチェック条件が発生すると（ＨＭＤ＝”１”）、アンドゲート４ｈはハイレベルの信号ＳＥＴ  ＨＫ  ＬＣＨを出力してフリップフロップ４ｊをセットする。フリップフロップ４ｊは、セットされると、ハード・マシーンチェック・ラッチＨＫ  ＬＣＨを出力する。
【００２０】
ステータス制御回路４ｋは、リトライ可能状態においてマシーンチェック条件が発生してハードオペリトライラッチ信号ＨＡＲＤ  ＯＰ  ＲＥＴＲＹ  ＬＣＨがハイレベルになると、リストア・ステートに遷移させ、リストア・ステートの終了後（パイプラインクリア終了後）にエンド・プロセス・ステートに遷移するように制御し、更に、リトライ成功によりスタート・ステートに遷移するように制御する。
リトライ不可能状態においてマシーンチェック条件が発生してハード・マシーンチェック・ラッチＨＫ  ＬＣＨが”１”になると（否定信号＊ＨＫ  ＬＣＨは”０”）アンドゲート３ａ〜３ｎの全出力がローレベルになるため、マイクロプログラムの再実行（リトライ）はできない。
【００２１】
（ｄ）全体の制御
プロセス・ステートにおいて一般命令の実行中にプログラム例外（ＰＲＯＧＲＡＭ  ＥＸＣＥＰＴＩＯＮ）によりプログラム割込みが発生すると、フリップフロップ１ａ〜１ｎ（図５）のいずれかがセットされる。これにより、マイクロプログラムアドレス発生部３は発生事象に応じたマイクロプログラムの先頭アドレスＨＡＲＤ  ＯＰ  ＣＯＤＥ（０：ｎ）を出力する。
一方、プログラム割込みによりステータス制御回路４ｋの制御でリストア・ステートに移行してパイプラインの初期化が終了すると、信号ＣＬＥＡＲ  ＰＩＰＥＬＩＮＥ  ＥＮＤがハイレベルになる。この結果、フリップフロップ４ｃがセットされ、ハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲがハイレベルになる。ハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲがハイレベルになり、マイクロプログラムの最初のフローである事を示す＋ＡＣＮＴ０がハイレベルとなった時に、アドレスセレクタ４ｅはマイクロプログラムアドレス発生部３から出力されているマイクロプログラムの先頭アドレスＨＡＲＤ  ＯＰ  ＣＯＤＥ（０：ｎ）をＣＳアドレスレジスタ３１（図２）にセットする。以上により、発生事象に応じたマイクロプログラム処理が開始する。
【００２２】
マイクロプログラム実行時（ハードオペ実行時）において、リトライ可能・不可能監視部２（図４）は、マシーンチェック条件が発生してもリトライが可能か否かを監視し、リトライ可能であれば、ハイレベルのリトライ可能信号ＥＮＢ  ＲＥＴＲＹ  ＨＯＰを出力する。かかるリトライ可能状態において、マシーンチェック条件が発生すると（ハードマシーンチェックディテクト信号ＨＭＤ＝”１”）、フリップフロップ４ｃがリセットされると共に、フリップフロップ４ｉがセットされてハードオペリトライラッチ信号ＨＡＲＤ  ＯＰ  ＲＥＴＲＹ  ＬＣＨを出力する。これにより、ステータス制御回路４ｋは、エンド・プロセス・ステートからリストア・ステートに遷移させる。リストア・ステートにおいてパイプラインの初期化が終了すると、再びフリップフロップ４ｃがセットされ、ハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲがハイレベルになる。この時、マイクロプログラムアドレス発生部３はフリップフロップ１ａ〜１ｎに保持されているプログラム割込みに応じたマイクロプログラムの先頭アドレスＨＡＲＤ  ＯＰ  ＣＯＤＥ（０：ｎ）を出力している。
【００２３】
従って、アドレスセレクタ４ｅはハードオペトリガ信号ＨＡＲＤ  ＯＰ  ＴＧＲがハイレベルになると、プログラム割込みに応じたマイクロプログラムの先頭アドレスＨＡＲＤ  ＯＰ  ＣＯＤＥ（０：ｎ）を再びＣＳアドレスレジスタ３１にセットする。これにより、発生事象（プログラム割込み）に応じたマイクロプログラム処理の再実行（リトライ）が開始する。リトライが成功すれば、すなわち、マシーンチェック条件が発生せず、プログラム割込み処理が終了すれば、エンドオペレーション信号ＥＮＤ  ＯＰが発生する。これにより、ステータス制御回路４ｋはステートをスタート・ステートに遷移し、各フリップフロップはリセットされ、以後、プロセス・ステートに移行して後続の命令がパイプライン処理される。
【００２４】
一方、エンド・プロセス・ステートのリトライ不可能状態においてマシーンチェック条件が発生した場合は、フリップフロップ４ｊがセットされてハード・マシーンチェック・ラッチＨＫ  ＬＣＨが”１”になる（否定信号＊ＨＫ  ＬＣＨは”０”）。このため、アンドゲート３ａ〜３ｎの全出力がローレベルになり、フリップフロップ４ｃはセットされなくなり、マイクロプログラムの再実行（リトライ）は行われない。
以上、本発明を実施例により説明したが、本発明は請求の範囲に記載した本発明の主旨に従い種々の変形が可能であり、本発明はこれらを排除するものではない。
【００２５】
【発明の効果】
以上本発明によれば、プロセス・ステートからエンド・プロセス・ステートに遷移させて、マイクロプログラムを実行させる契機となった事象を保持し、又、前記事象に応じたマイクロプログラムの実行中において、マシーンチェック条件が発生してもリトライが可能であるか、不可能であるかを監視し、マイクロプログラムの実行中にマシーンチェック条件が発生した時、リトライ可能状態であれば、前記保持してある事象に応じたマイクロプログラムを最初から実行するように構成したから、エンド・プロセス・ステートでマシーンチェック条件が発生してもリトライが可能となり、情報処理装置の信頼性を向上できる。
又、本発明によれば、リトライが成功しない場合、予め設定されている回数になるまでリトライを継続することができ、信頼性を更に向上することができる。
更に、本発明によれば、割込みや各事象に応じたマイクロプログラムの先頭アドレスを出力する手段を設け、発生事象に応じたマイクロプログラムを該先頭アドレスより読み出して処理することができるため、ハードオペ時にマシーンチェック条件が発生しても、又、リトライが失敗しても設定回数まで何回も該事象に応じたマイクロプログラムのリトライができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】本発明の全体構成図である。
【図３】本発明のリトライ制御のシーケンス説明図である。
【図４】本発明のリトライ可能・不可能監視部の構成図である。
【図５】本発明のマイクロプログラムリトライ制御回路の構成図である。
【図６】ステートマシーンにおける遷移状態図である。
【図７】命令実行の処理単位の説明図である。
【図８】パイプライン処理の説明図である。
【符号の説明】
１・・発生事象保持部
２・・リトライ可能・不可能監視部
３・・マイクロプログラムアドレス発生部
４・・リトライ制御部
２１・・制御記憶部（ＣＳ）
３１・・ＣＳアドレスレジスタ
５１・・デコーダ
【図１】
0003621477.tif 000002
【図２】
0003621477.tif 000003
【図３】
0003621477.tif 000004
【図４】
0003621477.tif 000005
【図５】
0003621477.tif 000006
【図６】
0003621477.tif 000007
【図７】
0003621477.tif 000008
【図８】
0003621477.tif 000009