(57)【要約】【課題】情報処理装置において、レジスタ群を退避、復旧するレジスタ退避復旧回路の故障を容易に検出できるようにしたレジスタ退避復旧回路障害検出装置を提供する。【解決手段】命令実行回路１は、メインメモリ４に格納されているレジスタ操作命令を実行する際、レジスタ退避指示を出力し、レジスタ操作命令の実行を完了した際、レジスタ復旧指示を出力する。レジスタ退避復旧回路３は、レジスタ退避指示によりレジスタ群２の内容をレジスタ退避メモリ５に格納し、レジスタ復旧指示により復旧する。レジスタ操作命令が実行される際、チェックコード付与回路６は、レジスタ群の特定のレジスタにチェックコードを格納する。レジスタ退避した内容が復旧される際、チェックコード検証回路７は、レジスタ群の特定レジスタに格納されたチェックコードを読出し、その正当性を検証し、検証結果が不正であれば、レジスタ退避復旧回路の故障が発生したと判断する。【選択図】図１
2006277532.tif 000002
【特許請求の範囲】
【請求項１】
レジスタ操作命令に使用するレジスタ群と、
レジスタ群の内容を退避するレジスタ退避メモリと、
メインメモリに格納されているレジスタ操作命令を実行する際、レジスタ退避の指示を出力し、レジスタ操作命令の実行を完了した際、レジスタ復旧の指示を出力する命令実行回路と、
レジスタ退避の指示により前記レジスタ群の内容を前記レジスタ退避メモリに格納し、レジスタ復旧の指示により前記レジスタ退避メモリに退避されていた内容を前記レジスタ群に格納するレジスタ退避復旧回路と、
前記命令実行回路がレジスタ操作命令を実行するときに、前記レジスタ群の特定のレジスタにチェックコードを格納するチェックコード付与手段と、
前記レジスタ退避復旧回路が前記レジスタ退避メモリに退避した内容を前記レジスタ群へ復旧する際、レジスタ群の特定レジスタに格納されたチェックコードを読出し、その正当性を検証し、その検証結果が不正であれば、前記レジスタ退避復旧回路の故障が発生したと判断するチェックコード検証手段とを備えることを特徴とするレジスタ退避復旧回路障害検出装置。
【請求項２】
前記チェックコード付与手段により付与され、前記チェックコード検証手段により検証されるチェックコードは、レジスタ群の全てあるいは一部のパリティコード、レジスタ群の全てあるいは一部のチェックサムコード、レジスタ操作命令実行時のシーケンス番号、レジスタ操作命令実行時の命令を特定するファイル名、行数のいずれかであることを特徴とする請求項１に記載のレジスタ退避復旧回路障害検出装置。
【請求項３】
レジスタ操作命令に使用するレジスタ群と、レジスタ群の内容を退避するレジスタ退避メモリと、メインメモリに格納されているレジスタ操作命令を実行する際、レジスタ退避の指示を出力し、レジスタ操作命令の実行を完了した際、レジスタ復旧の指示を出力する命令実行回路と、レジスタ退避の指示により前記レジスタ群の内容を前記レジスタ退避メモリに格納し、レジスタ復旧の指示により前記レジスタ退避メモリに退避されていた内容を前記レジスタ群に格納するレジスタ退避復旧回路とを備えた装置におけるレジスタ退避復旧回路障害検出方法であって、
前記命令実行回路がレジスタ操作命令を実行するときに、前記レジスタ群の特定のレジスタにチェックコードを格納し、
前記レジスタ退避復旧回路が前記レジスタ退避メモリに退避した内容を前記レジスタ群へ復旧する際、レジスタ群の特定レジスタに格納されたチェックコードを読出し、その正当性を検証し、
その検証結果が不正であれば、前記レジスタ退避復旧回路の故障が発生したと判断する各ステップを含むことを特徴とするレジスタ退避復旧回路障害検出方法。
【請求項４】
前記チェックコード付与ステップにより付与され、前記チェックコード検証ステップにより検証されるチェックコードは、レジスタ群の全てあるいは一部のパリティコード、レジスタ群の全てあるいは一部のチェックサムコード、レジスタ操作命令実行時のシーケンス番号、レジスタ操作命令実行時の命令を特定するファイル名、行数のいずれかであることを特徴とする請求項３に記載のレジスタ退避復旧回路障害検出方法。
【請求項５】
レジスタ操作命令に使用するレジスタ群と、レジスタ群の内容を退避するレジスタ退避メモリと、メインメモリに格納されているレジスタ操作命令を実行する際、レジスタ退避の指示を出力し、レジスタ操作命令の実行を完了した際、レジスタ復旧の指示を出力する命令実行回路と、レジスタ退避の指示により前記レジスタ群の内容を前記レジスタ退避メモリに格納し、レジスタ復旧の指示により前記レジスタ退避メモリに退避されていた内容を前記レジスタ群に格納するレジスタ退避復旧回路とを備えた装置におけるレジスタ退避復旧回路障害検出プログラムであって、
前記命令実行回路がレジスタ操作命令を実行するときに、前記レジスタ群の特定のレジスタにチェックコードを格納し、
前記レジスタ退避復旧回路が前記レジスタ退避メモリに退避した内容を前記レジスタ群へ復旧する際、レジスタ群の特定レジスタに格納されたチェックコードを読出し、その正当性を検証し、
その検証結果が不正であれば、前記レジスタ退避復旧回路の故障が発生したと判断する各ステップをコンピュータに実行させることを特徴とするレジスタ退避復旧回路障害検出プログラム。
【請求項６】
前記チェックコード付与ステップにより付与され、前記チェックコード検証ステップにより検証されるチェックコードは、レジスタ群の全てあるいは一部のパリティコード、レジスタ群の全てあるいは一部のチェックサムコード、レジスタ操作命令実行時のシーケンス番号、レジスタ操作命令実行時の命令を特定するファイル名、行数のいずれかであることを特徴とする請求項５に記載のレジスタ退避復旧回路障害検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関数やプロシージャ実行時に自動的にレジスタ群を退避、復旧する情報処理装置において、レジスタ退避復旧回路の故障を容易に検出できるようにしたレジスタ退避復旧回路障害検出装置に関する。
【背景技術】
【０００２】
従来の故障検出機能を持たないレジスタ退避復旧回路を、図３のブロック図を参照して説明する。
【０００３】
命令実行回路１はメインメモリ４に格納されている命令を逐次読み出し実行する。命令実行回路１がレジスタ操作の命令を実行する際は、命令に従いレジスタ群２の読出しあるいは書込みを実行する。これら命令実行回路１の詳細動作は、当業者にとってよく知られており、その詳細な動作は省略する。
【０００４】
命令実行回路１が関数呼出し命令を実行する際は、レジスタ退避の指示がレジスタ退避復旧回路３に通知され、レジスタ退避復旧回路３はレジスタ群２の内容をレジスタ退避メモリ５に格納する。
【０００５】
また、命令実行回路１が関数の実行を完了した際は、レジスタ復旧の指示がレジスタ退避復旧回路３に通知され、レジスタ退避復旧回路３はレジスタ退避メモリ５に退避されていた内容をレジスタ群２に格納する。
【０００６】
また、レジスタ退避命令で汎用レジスタの内容を主記憶に並行して動作できるレジスタ待避メモリに待避することにより、レジスタ待避命令に続く命令を、汎用レジスタの内容をレジスタ待避メモリに待避する動作に並行して実行させることができるレジスタ待避方法がある（例えば、特許文献１参照）。
【特許文献１】特開平１−２６０５４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来はこのような構成のため、レジスタ退避復旧回路３の故障検出能力を高めるためには、レジスタ退避復旧回路３内部のそれぞれの要素（フリップフロップ等）の故障検出能力を高める必要があり、二重化による比較チェックやパリティコードチェック等をレジスタ退避復旧回路３の内部に作りこむ必要があった。
【０００８】
このため、レジスタ退避復旧回路３の故障検出能力を高めるためには、追加回路が必要で複雑となること、また回路自体の再設計を実施しないと、故障検出能力を高めることができないと言う課題があった。
【０００９】
すなわち、従来のレジスタ退避復旧回路は、その故障検出を行う際は回路内の個々の要素に対し、二重化による比較チェックやパリティコードチェックを付けることが必要となるが、これを実施すると回路自体が複雑となるため、一般には厳密な故障検出を実施できていない。
【００１０】
そこで本発明は、関数やプロシージャ実行時に自動的にレジスタ群を退避、復旧する情報処理装置において、レジスタ退避復旧回路の故障検出能力を容易に高めることが可能なレジスタ退避復旧回路障害検出装置及び方法とそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の課題を解決するため、本発明は、レジスタ操作命令に使用するレジスタ群と、レジスタ群の内容を退避するレジスタ退避メモリと、メインメモリに格納されているレジスタ操作命令を実行する際、レジスタ退避の指示を出力し、レジスタ操作命令の実行を完了した際、レジスタ復旧の指示を出力する命令実行回路と、レジスタ退避の指示によりレジスタ群の内容をレジスタ退避メモリに格納し、レジスタ復旧の指示によりレジスタ退避メモリに退避されていた内容をレジスタ群に格納するレジスタ退避復旧回路と、命令実行回路がレジスタ操作命令を実行するときに、レジスタ群の特定のレジスタにチェックコードを格納するチェックコード付与手段と、レジスタ退避復旧回路がレジスタ退避メモリに退避した内容をレジスタ群へ復旧する際、レジスタ群の特定レジスタに格納されたチェックコードを読出し、その正当性を検証し、その検証結果が不正であれば、レジスタ退避復旧回路の故障が発生したと判断するチェックコード検証手段とを備えることを特徴とする。
【００１２】
以上の構成によって、レジスタ退避復旧回路の故障を検出できる。
【発明の効果】
【００１３】
本発明による効果は、従来の回路にチェックコード付与手段とチェックコード検証手段を付加することにより、容易にレジスタ退避復旧回路の故障が検出できることである。
【００１４】
特に、レジスタ退避復旧回路の内部に故障検出機能がない場合でも、後述の実施例２のように、ソフトウェアやファームウェアの追加により故障検出機能を実装できるため、ハードウェアの設計変更なしに、故障検出能力を高めることができる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の最良の形態について図面を参照して説明する。
【実施例１】
【００１６】
図１は、本発明のブロック図である。本発明は関数やプロシージャ実行を行う情報処理装置に適用され、メモリに格納された制御プログラムにより、以下の各処理動作を行う。
【００１７】
命令実行回路１は、メインメモリ４に格納されている命令を逐次読み出し実行する。命令実行回路１は、メインメモリ４の指定されたアドレスから読み出した命令をデコードし、レジスタ群２を用いて演算実行し、その演算結果をライトバックする。そして、次に指定されたアドレスから命令を読み出して同様に処理する。命令実行回路１がレジスタ操作の命令を実行する際は、命令に従いレジスタ群２の読出しあるいは書込みを実行する。
【００１８】
命令実行回路１が関数呼出し命令を実行する際は、レジスタ退避の指示がレジスタ退避復旧回路３に通知され、レジスタ退避復旧回路３はレジスタ群２の内容をレジスタ退避メモリ５に格納する。この際、チェックコード付与回路６により、レジスタ群２内の特定の領域にチェックコードが付与される。
【００１９】
次に、命令実行回路１が関数の実行を完了した際は、レジスタ復旧の指示がレジスタ退避復旧回路３に通知され、レジスタ退避復旧回路３はレジスタ退避メモリ５に退避されていた内容をレジスタ群２に格納する。この際、チェックコード検証回路７により、チェックコードの正当性が検証され、正当性が保証できない場合は故障発生を検出する。
【００２０】
チェックコード付与回路６により付与および、チェックコード検証回路７により検証されるチェックコードは、（１）レジスタ群２の全てあるいは一部のパリティコード、（２）レジスタ群２の全てあるいは一部のチェックサムコード、（３）関数実行時のシーケンス番号、（４）関数実行時の命令を特定するファイル名、行数等が考えられる。
【００２１】
次に、図２のシーケンスチャートを参照して、本発明の動作を説明する。
【００２２】
図１における命令実行回路１が、関数呼出し命令を実行すると（ステップ１０１）、チェックコード付与回路６が、レジスタ群２の特定のレジスタにチェックコードを格納する（ステップ２０１）。そして関数呼出し命令の実行の際（ステップ２０２）、レジスタ退避復旧回路３により、レジスタ群２の内容がレジスタ退避メモリ５に退避される（ステップ３０１）。その際、ステップ２０１でチェックコード付与回路６によりチェックコードが格納されたレジスタ内容も同時に退避される。
【００２３】
その後、命令実行回路１により関数が実行される（ステップ３０２）。その実行が完了した時点で、レジスタ退避復旧回路３により実行前に退避された内容がレジスタ退避メモリ５から、レジスタ群２へ復旧される（ステップ３０３）。
【００２４】
チェックコード検証回路７は、レジスタ群２の特定レジスタに格納されたチェックコードを読出し、チェックコード付与回路６により付与されたチェックコードと一致するか否か比較することにより、その正当性を検証する（ステップ２０３）。
【００２５】
その検証結果が不正であれば、レジスタ退避復旧回路の故障が発生したと判断し（ステップ２０４）、通常の命令実行を中断し故障検出処理を実行する（ステップ２０５）。検証結果が正当であれば、命令実行回路１により引き続き命令が実行される（ステップ２０６）。
【実施例２】
【００２６】
本発明の実施例２として、その基本的構成は実施例１と同様であるが、チェックコード付与回路６とチェックコード検証回路７の機能を、ハードウェアではなく、ソフトウェアにより同様な機能を実現している。
【００２７】
本実施例では、関数呼出し命令の前後に、図２におけるステップ２０１、２０３、２０４、２０５の動作を実施するための命令をコンパイラにより生成することで、ソフトウェア設計者の関与なしに、またハードウェアに故障検出回路を追加することなしに、レジスタ退避復旧回路３の故障検出能力を高めることができる。
【図面の簡単な説明】
【００２８】
【図１】本発明のブロック図である。
【図２】本発明の動作を説明するシーケンスチャートである。
【図３】従来の故障検出機能を持たない回路のブロック図である。
【符号の説明】
【００２９】
１  命令実行回路
２  レジスタ群
３  レジスタ退避復旧回路
４  メインメモリ
５  レジスタ退避メモリ
６  チェックコード付与回路
７  チェックコード検証回路
【図１】
2006277532.tif 000003
【図２】
2006277532.tif 000004
【図３】
2006277532.tif 000005