(57)【要約】【課題】異常発生時のシステムの状態に関する情報をシステムの本来の動作に影響を与えることなく保持可能なコンピュータシステムを提供すること。【解決手段】異常検出部１０５は、異常発生信号１１０をリセット制御部１０６に送信する。リセット制御部１０６は、異常発生信号１１０を受信するとバックアップ制御部１０７にバックアップ要求信号１１１を送信する。バックアップ制御部１０７は、バックアップ要求信号１１１を受信すると各種機能ブロック１０８のハードウェア情報及び異常発生時のスタック情報をバックアップ記憶部１０４に格納する。その後の任意のタイミングでバックアップ記憶部１０４から情報を取り出すことにより、異常発生原因を詳細に解析することができる。【選択図】図１
2011002889.tif 000002
【特許請求の範囲】
【請求項１】
機器に組み込まれるコンピュータシステムであって、
前記機器の機能を実現するためのプログラムを記憶するプログラム記憶部と、
前記プログラムを実行することにより機器の動作を制御する主制御部と、
前記プログラムの実行に使用されるデータを蓄積するスタック部と、
当該コンピュータシステムの異常を検出して異常発生信号を出力する異常検出部と、
異常発生時の当該コンピュータシステムの状態に関する情報が格納されるバックアップ記憶部と、
前記異常発生信号をトリガとしてバックアップ要求信号を出力するバックアップ開始制御部と、
前記バックアップ要求信号をトリガとして前記機器のハードウェア情報と前記スタック部に蓄積されているデータとを含む異常時データを前記バックアップ記憶部に格納し、前記バックアップ記憶部への前記異常時データの格納が完了した時点でバックアップ完了信号を送信するバックアップ制御部と、
前記バックアップ完了信号をトリガとしてリセット信号を前記主制御部に送信するバックアップ終了制御部と、を備え、
前記主制御部は、前記リセット信号を受信すると前記プログラムの実行を再開することを特徴とするコンピュータシステム。
【請求項２】
機器に組み込まれるコンピュータシステムであって、
前記機器の機能を実現するためのプログラムを記憶するプログラム記憶部と、
前記プログラムを実行することにより機器の動作を制御する主制御部と、
前記プログラムの実行に使用されるデータを蓄積するスタック部と、
当該コンピュータシステムの異常を検出してバックアップ要求信号を出力する異常検出部と、
異常発生時の当該コンピュータシステムの状態に関する情報が格納されるバックアップ記憶部と、
前記バックアップ要求信号をトリガとして前記機器のハードウェア情報と前記スタック部に蓄積されているデータとを含む異常時データを前記バックアップ記憶部に格納し、前記バックアップ記憶部への前記異常時データの格納が完了した時点でバックアップ完了信号を送信するバックアップ制御部と、
前記バックアップ完了信号をトリガとしてリセット信号を前記主制御部に送信するバックアップ終了制御部と、を備え、
前記主制御部は、前記リセット信号を受信すると前記プログラムの実行を再開することを特徴とするコンピュータシステム。
【請求項３】
請求項１又は２に記載のコンピュータシステムであって、
前記バックアップ終了制御部は、前記リセット信号を前記主制御部に送信すると共に、前記機器のハードウェアに付随する制御部及び前記異常検出部にも前記リセット信号を送信し、
前記制御部及び前記異常検出部は、前記リセット信号を受信すると初期状態に戻ることを特徴とするコンピュータシステム。
【請求項４】
請求項１〜３のいずれか一項に記載のコンピュータシステムであって、
前記機器のハードウェア毎に選択的にクロック信号を供給するクロック生成部を備え、
前記バックアップ制御部は、前記バックアップ要求信号をトリガとして、前記クロック生成部からクロック信号の供給先の情報を取得し、当該情報に基づいて、当該コンピュータシステムの異常発生時に前記クロック信号が供給されていたハードウェアを特定し、特定したハードウェアのハードウェア情報及び前記スタック部に蓄積されているデータとを含む異常時データを前記バックアップ記憶部に格納することを特徴とするコンピュータシステム。
【請求項５】
請求項１〜４のいずれか一項に記載のコンピュータシステムであって、
前記異常時データを前記バックアップ記憶部に格納するための専用のバスを備え、
前記バックアップ制御部は、前記バックアップ要求信号をトリガとして前記異常時データを前記バスを介して前記バックアップ記憶部に格納することを特徴とするコンピュータシステム。
【請求項６】
請求項１〜５のいずれか一項に記載のコンピュータシステムであって、
前記異常検出部は、当該コンピュータシステムの異常を検出したら直ちに前記機器のハードウェアに付随する制御部に対し書込み禁止信号を送信することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、家電製品や機械等に組み込まれるコンピュータシステムに関し、特に、システムが異常状態に陥った際のシステムの状態に関する情報を取得するコンピュータシステムに関する。
【背景技術】
【０００２】
近年、家電製品等に組み込まれるコンピュータシステムは、システムを構成する回路やソフトウェアの規模が大きくなり、不具合の解析を行うのに多大の時間を要する。そこで、プログラムの実行中に、その実行箇所を示す情報を第１の記憶領域に逐次上書きしつつ、プログラムの実行状態を常時監視し、異常が検出されたときには、第１の記憶領域に記憶されている情報を不揮発性の第２の記憶領域に転記するように構成したコンピュータシステムが提案された。このコンピュータシステムによれば、再起動後に第２の記憶領域に記録されている情報を参照することにより、異常が検出される直前の実行箇所を知ることができる。（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４０５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上述したコンピュータシステムでは、異常が検出される直前におけるプログラムの実行箇所を知ることはできるが、異常発生時におけるシステムの状態に関する情報（例えば、機能毎に動作状態を保持するレジスタ情報）を取得することができない。このため、異常が発生した場合に、その原因を詳細に解析することができない。また、プログラムの実行中に、実行箇所を記憶領域に逐次書き込む処理は、コンピュータシステムの高速化が進むにつれ、システム動作のボトルネックになり得る。
【０００５】
本発明の目的は、異常発生時におけるシステムの状態に関する情報をシステムの本来の動作に影響を与えることなく保持可能なコンピュータシステムを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、機器に組み込まれるコンピュータシステムであって、前記機器の機能を実現するためのプログラムを記憶するプログラム記憶部と、前記プログラムを実行することにより機器の動作を制御する主制御部と、前記プログラムの実行に使用されるデータを蓄積するスタック部と、当該コンピュータシステムの異常を検出して異常発生信号を出力する異常検出部と、異常発生時の当該コンピュータシステムの状態に関する情報が格納されるバックアップ記憶部と、前記異常発生信号をトリガとしてバックアップ要求信号を出力するバックアップ開始制御部と、前記バックアップ要求信号をトリガとして前記機器のハードウェア情報と前記スタック部に蓄積されているデータとを含む異常時データを前記バックアップ記憶部に格納し、前記バックアップ記憶部への前記異常時データの格納が完了した時点でバックアップ完了信号を送信するバックアップ制御部と、前記バックアップ完了信号をトリガとしてリセット信号を前記主制御部に送信するバックアップ終了制御部と、を備え、前記主制御部は、前記リセット信号を受信すると前記プログラムの実行を再開するコンピュータシステムを提供する。
【０００７】
本発明は、機器に組み込まれるコンピュータシステムであって、前記機器の機能を実現するためのプログラムを記憶するプログラム記憶部と、前記プログラムを実行することにより機器の動作を制御する主制御部と、前記プログラムの実行に使用されるデータを蓄積するスタック部と、当該コンピュータシステムの異常を検出してバックアップ要求信号を出力する異常検出部と、異常発生時の当該コンピュータシステムの状態に関する情報が格納されるバックアップ記憶部と、前記バックアップ要求信号をトリガとして前記機器のハードウェア情報と前記スタック部に蓄積されているデータとを含む異常時データを前記バックアップ記憶部に格納し、前記バックアップ記憶部への前記異常時データの格納が完了した時点でバックアップ完了信号を送信するバックアップ制御部と、前記バックアップ完了信号をトリガとしてリセット信号を前記主制御部に送信するバックアップ終了制御部と、を備え、前記主制御部は、前記リセット信号を受信すると前記プログラムの実行を再開するコンピュータシステムを提供する。
【０００８】
上記コンピュータシステムでは、前記バックアップ終了制御部は、前記リセット信号を前記主制御部に送信すると共に、前記機器のハードウェアに付随する制御部及び前記異常検出部にも前記リセット信号を送信し、前記制御部及び前記異常検出部は、前記リセット信号を受信すると初期状態に戻る。
【０００９】
上記コンピュータシステムは、前記機器のハードウェア毎に選択的にクロック信号を供給するクロック生成部を備え、前記バックアップ制御部は、前記バックアップ要求信号をトリガとして、前記クロック生成部からクロック信号の供給先の情報を取得し、当該情報に基づいて、当該コンピュータシステムの異常発生時に前記クロック信号が供給されていたハードウェアを特定し、特定したハードウェアのハードウェア情報及び前記スタック部に蓄積されているデータとを含む異常時データを前記バックアップ記憶部に格納する。
【００１０】
上記コンピュータシステムは、前記異常時データを前記バックアップ記憶部に格納するための専用のバスを備え、前記バックアップ制御部は、前記バックアップ要求信号をトリガとして前記異常時データを前記バスを介して前記バックアップ記憶部に格納する。
【００１１】
上記コンピュータシステムでは、前記異常検出部は、当該コンピュータシステムの異常を検出したら直ちに前記機器のハードウェアに付随する制御部に対し書込み禁止信号を送信する。
【発明の効果】
【００１２】
本発明に係るコンピュータシステムによれば、異常発生時におけるシステムの状態に関する情報をシステムの本来の動作に影響を与えることなく保持しておくことができる。このため、当該情報に基づいて異常発生原因を詳細に解析することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る第１の実施形態のコンピュータシステムを示すブロック図
【図２】第１の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャート
【図３】本発明に係る第２の実施形態のコンピュータシステムを示すブロック図
【図４】第２の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャート
【図５】本発明に係る第３の実施形態のコンピュータシステムを示すブロック図
【図６】第３の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャート
【図７】本発明に係る第４の実施形態のコンピュータシステムを示すブロック図
【図８】第４の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャート
【図９】本発明に係る第５の実施形態のコンピュータシステムを示すブロック図
【図１０】第５の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャート
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下説明するコンピュータシステムは、家電製品や機械等に組み込まれている。
【００１５】
（第１の実施形態）
図１は、本発明に係る第１の実施形態のコンピュータシステムを示すブロック図である。図１に示すように、第１の実施形態のコンピュータシステムは、ＣＰＵ１０１と、プログラム記憶部１０２と、スタック部１０３と、バックアップ記憶部１０４と、異常検出部１０５と、リセット制御部１０６と、バックアップ制御部１０７と、各種機能ブロック１０８と、データ／アドレスバス１１３とを備える。各部はデータ／アドレスバス１１３を介して相互に接続されている。
【００１６】
ＣＰＵ１０１は、プログラム記憶部１０２に記憶されているプログラムを実行することにより、このシステム全体を統括制御する演算処理回路である。スタック部１０３は、ＣＰＵ１０１が前記プログラムの実行する際に使用されるデータを後入れ先出し方式で記憶しておくためのメモリである。
【００１７】
バックアップ記憶部１０４は、異常発生時のシステムの状態に関する情報を保存しておくための不揮発性のメモリである。異常検出部１０５は、ウォッチドッグタイマによる暴走検出やエラー割込み、例外処理等の異常を検出し、異常発生信号１１０をリセット制御部１０６へ送信する演算処理回路である。
【００１８】
リセット制御部１０６は、異常検出時にバックアップ制御部１０７にバックアップ要求信号１１１を送信する機能（バックアップ開始制御機能）と、バックアップ完了後にリセット信号１１４を異常検出部１０５、ＣＰＵ１０１及び各種機能ブロック１０８に送信する機能（バックアップ終了制御機能）とを兼ね備えた演算処理回路である。
【００１９】
バックアップ制御部１０７は、バックアップ要求信号１１１をトリガとして各種機能ブロック１０８のハードウェア情報及びスタック部１０３に蓄積されているデータ（以下、「スタック情報」という）をバックアップ記憶部１０４に格納する機能と、バックアップ記憶部１０４へのハードウェア情報及びスタック情報の格納が完了した時点でバックアップ完了信号１１２をリセット制御部１０６に送信する機能とを有する演算処理回路である。
【００２０】
なお、ハードウェア情報とは、レジスタ情報やステータス情報、内部状態等の解析に必要なハードウェア情報である。また、スタック情報は、プログラムカウンタで示される実行アドレスや関数リターン時の戻り先アドレス、ＣＰＵ内部状態、変数等の解析に必要な情報である。
【００２１】
各種機能ブロック１０８は、このコンピュータシステムによる様々な機能を実現する各種のハードウェア要素を含む。各種機能ブロック１０８には、各種ハードウェアの駆動回路及びその制御部が含まれる。
【００２２】
図２は、第１の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャートである。以下、図２を参照して、第１の実施形態のコンピュータシステムにおける一連の処理について説明する。
【００２３】
異常検出部１０５は、異常を検出すると、異常発生信号１１０をリセット制御部１０６に送信する（ＳＴ１００）。リセット制御部１０６は、異常発生信号１１０を受信すると、バックアップ制御部１０７にバックアップ要求信号１１１を送信し、異常発生時の情報を記録するように指示する（ＳＴ１０１）。
【００２４】
バックアップ制御部１０７は、バックアップ要求信号１１１を受信すると、各種機能ブロック１０８のハードウェア情報及び異常発生時のスタック情報を、データ／アドレスバス１１３を介してバックアップ記憶部１０４に格納する（ＳＴ１０２）。そして、バックアップ制御部１０７は、バックアップ記憶部１０４への情報の格納が完了した後、バックアップ完了信号１１２をリセット制御部１０６に送信する（ＳＴ１０３）。
【００２５】
リセット制御部１０６は、バックアップ完了信号１１２を受信すると、異常検出部１０５、ＣＰＵ１０１及び各種機能ブロック１０８にリセット信号１１４を送信する（ＳＴ１０４）。異常検出部１０５及び各種機能ブロック１０８は、リセット信号１１４を受信すると初期状態に戻る。ＣＰＵ１０１は、リセット信号１１４を受信すると、プログラム記憶部１０２のプログラムを実行し、通常処理を再開する（ＳＴ１０５）。
【００２６】
異常発生後、ＣＰＵ１０１が何らかの事情でデータ／アドレスバス１１３にアクセスできない状態になった場合、リセット制御部１０６は、ＣＰＵ１０１に対してのみリセット信号１１４を送信する。これにより、ＣＰＵ１０１がデータ／アドレスバス１１３にアクセスできるようになる。その後、ＣＰＵ１０１は、上記ステップＳＴ１０５から処理を再開し、異常発生時に最低限必要な異常発生時のレジスタ情報やステータス情報、内部状態等の解析に必要なハードウェア情報、及びプログラムカウンタで示される実行アドレスや関数リターン時の戻り先アドレス、ＣＰＵ内部状態、変数等の解析に必要なスタック情報をスタック部１０３に記録する。
【００２７】
以上説明したように、第１の実施形態のコンピュータシステムでは、システムに異常が発生した時点におけるシステムの状態に関する情報をバックアップ記憶部１０４に保存する処理（ＳＴ１０２）を、異常発生時にのみ実行する。したがって、このコンピュータシステムによれば、システムに異常が発生した時点におけるシステムの状態に関する情報を、システムの本来の動作に影響を与えることなく保持しておくことができる。そして、その後の任意のタイミングでバックアップ記憶部１０４から当該情報を取り出すことにより、その情報に基づいて異常発生の原因を詳細に解析することができる。また、異常発生時におけるシステムの状態に関する情報の取得により、異常発生時の異常原因の解析に要する時間を短縮できる。
【００２８】
なお、本実施形態では、リセット制御部１０６がバックアップ開始制御機能とバックアップ終了制御機能とを兼ね備えているが、これらの機能を別個の制御部が備えても良い。また、プログラム記憶部１０２とバックアップ記憶部１０４が別個のメモリで構成されているが、これらの記憶部を共通のメモリで構成しても良い。
【００２９】
（第２の実施形態）
図３は、本発明に係る第２の実施形態のコンピュータシステムを示すブロック図である。図３に示すように、第２の実施形態のコンピュータシステムは、ＣＰＵ２０１と、プログラム記憶部２０２と、スタック部２０３と、バックアップ記憶部２０４と、異常検出部２０５と、リセット制御部２０６と、バックアップ制御部２０７と、各種機能ブロック２０８と、クロック生成部２０９と、データ／アドレスバス２１３とを備える。各部はデータ／アドレスバス２１３を介して相互に接続されている。
【００３０】
ＣＰＵ２０１は、プログラム記憶部２０２に記憶されているプログラムを実行することにより、このシステム全体を統括制御する演算処理回路である。スタック部２０３は、ＣＰＵ２０１が前記プログラムの実行する際に使用されるデータを後入れ先出し方式で記憶しておくためのメモリである。
【００３１】
バックアップ記憶部２０４は、異常発生時のシステムの状態に関する情報を保存しておくための不揮発性のメモリである。異常検出部２０５は、ウォッチドッグタイマによる暴走検出やエラー割込み、例外処理等の異常を検出し、異常発生信号２１０をリセット制御部２０６へ送信する演算処理回路である。
【００３２】
リセット制御部２０６は、異常検出時にバックアップ制御部２０７にバックアップ要求信号２１１を送信する機能（バックアップ開始制御機能）と、バックアップ完了後にリセット信号２１４を異常検出部２０５、ＣＰＵ２０１、各種機能ブロック２０８及びクロック生成部２０９に送信する機能（バックアップ終了制御機能）とを兼ね備えた演算処理回路である。
【００３３】
バックアップ制御部２０７は、バックアップ要求信号２１１をトリガとしてクロック生成部２０９からクロック信号の供給先の情報（クロック供給情報）を取得する機能と、取得したクロック供給情報に基づいて、異常発生時にクロック信号が供給されていた各種機能ブロック２０８のハードウェアを特定する機能と、特定した各種機能ブロック２０８のハードウェア情報及びスタック部２０３に蓄積されているデータ（以下、「スタック情報」という）をバックアップ記憶部２０４に格納する機能と、バックアップ記憶部２０４へのハードウェア情報及びスタック情報の格納が完了した時点でバックアップ完了信号２１２をリセット制御部２０６に送信する機能とを有する演算処理回路である。
【００３４】
なお、ハードウェア情報とは、レジスタ情報やステータス情報、内部状態等の解析に必要なハードウェア情報である。また、スタック情報は、プログラムカウンタで示される実行アドレスや関数リターン時の戻り先アドレス、ＣＰＵ内部状態、変数等の解析に必要な情報である。
【００３５】
各種機能ブロック２０８は、このコンピュータシステムによる様々な機能を実現する各種ハードウェア要素を含む。各種機能ブロック２０８には、各種ハードウェアの駆動回路及びその制御部が含まれる。クロック生成部２０９は、各種機能ブロック２０８のハードウェア毎に選択的にクロック信号を供給する発振回路である。
【００３６】
図４は、第２の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャートである。以下、図４を参照して、第２の実施形態のコンピュータシステムにおける一連の処理について説明する。
【００３７】
異常検出部２０５は、異常を検出すると、異常発生信号２１０をリセット制御部２０６に送信する（ＳＴ２００）。リセット制御部２０６は、異常発生信号２１０を受信すると、バックアップ制御部２０７にバックアップ要求信号２１１を送信し、異常発生時の情報を記録するように指示する（ＳＴ２０１）。
【００３８】
バックアップ制御部２０７は、バックアップ要求信号２１１を受信すると、クロック生成部２０９からクロック供給情報を取得する（ＳＴ２０２）。そして、バックアップ制御部２０７は、異常発生時に動作状態にあった各種機能ブロック２０８のハードウェアをクロック供給情報に基づいて特定し、その特定した各種機能ブロック２０８のハードウェア情報及び異常発生時のスタック情報を、データ／アドレスバス２１３を介してバックアップ記憶部２０４に格納する（ＳＴ２０３）。さらに、バックアップ制御部２０７は、バックアップ記憶部２０４への情報の格納が完了した後、バックアップ完了信号２１２をリセット制御部２０６に送信する（ＳＴ２０４）。
【００３９】
リセット制御部２０６は、バックアップ完了信号２１２を受信すると、異常検出部２０５、ＣＰＵ２０１、各種機能ブロック２０８及びクロック生成部２０９にリセット信号２１４を送信する（ＳＴ２０５）。異常検出部２０５、各種機能ブロック２０８及びクロック生成部２０９は、リセット信号２１４を受信すると初期状態に戻る。ＣＰＵ２０１は、リセット信号２１４を受信すると、プログラム記憶部２０２のプログラムを実行し、通常処理を再開する（ＳＴ２０６）。
【００４０】
以上説明したように、第２の実施形態のコンピュータシステムでは、システムに異常が発生した時点におけるシステムの状態に関する情報をバックアップ記憶部２０４に保存する処理（ＳＴ２０３）を、異常発生時にのみ実行する。したがって、このコンピュータシステムによれば、システムに異常が発生した時点におけるシステムの状態に関する情報を、システムの本来の動作に影響を与えることなく保持しておくことができる。そして、その後の任意のタイミングでバックアップ記憶部２０４から当該情報を取り出すことにより、その情報に基づいて異常発生の原因を詳細に解析することができる。また、異常発生時におけるシステムの状態に関する情報の取得により、異常発生時の異常原因の解析に要する時間を短縮できる。
【００４１】
また、第２の実施形態のコンピュータシステムでは、システムに異常が発生した時点におけるシステムの状態に関する情報に含まれるハードウェア情報として、異常発生時に動作状態にあったハードウェアのハードウェア情報のみがバックアップ記憶部２０４に保存される。したがって、第２の実施形態のコンピュータシステムによれば、第１の実施形態と比較して、バックアップ記憶部２０４の容量を小さくできる。
【００４２】
なお、本実施形態では、リセット制御部２０６がバックアップ開始制御機能とバックアップ終了制御機能とを兼ね備えているが、これらの機能を別個の制御部が備えても良い。また、プログラム記憶部２０２とバックアップ記憶部２０４が別個のメモリで構成されているが、これらの記憶部を共通のメモリで構成しても良い。
【００４３】
（第３の実施形態）
図５は、本発明に係る第３の実施形態のコンピュータシステムを示すブロック図である。図５に示すように、第３の実施形態のコンピュータシステムは、ＣＰＵ３０１と、プログラム記憶部３０２と、スタック部３０３と、バックアップ記憶部３０４と、異常検出部３０５と、リセット制御部３０６と、バックアップ制御部３０７と、各種機能ブロック３０８と、クロック生成部３０９と、２系統のデータ／アドレスバス３１３，３１５とを備える。各部はデータ／アドレスバス３１３，３１５を介して相互に接続されている。
【００４４】
なお、データ／アドレスバス３１３は、システムの通常の動作時（正常時）に使用されるデータ／アドレスバスである、また、データ／アドレスバス３１５は、異常発生時に使用されるデータ／アドレスバスである。以下、データ／アドレスバス３１３を「通常データ／アドレスバス」、データ／アドレスバス３１５を「バックアップ専用データ／アドレスバス」ともいう。
【００４５】
ＣＰＵ３０１は、プログラム記憶部３０２に記憶されているプログラムを実行することにより、このシステム全体を統括制御する演算処理回路である。スタック部３０３は、ＣＰＵ３０１が前記プログラムの実行する際に使用されるデータを後入れ先出し方式で記憶しておくためのメモリである。
【００４６】
バックアップ記憶部３０４は、異常発生時のシステムの状態に関する情報を保存しておくための不揮発性のメモリである。異常検出部３０５は、ウォッチドッグタイマによる暴走検出やエラー割込み、例外処理等の異常を検出し、異常発生信号３１０をリセット制御部３０６へ送信する演算処理回路である。
【００４７】
リセット制御部３０６は、異常検出時にバックアップ制御部３０７にバックアップ要求信号３１１を送信する機能（バックアップ開始制御機能）と、バックアップ完了後にリセット信号３１４を異常検出部３０５、ＣＰＵ３０１、各種機能ブロック３０８及びクロック生成部３０９に送信する機能（バックアップ終了制御機能）とを兼ね備えた演算処理回路である。
【００４８】
バックアップ制御部３０７は、バックアップ要求信号３１１をトリガとしてクロック生成部３０９からクロック信号の供給先の情報（クロック供給情報）を取得する機能と、取得したクロック供給情報に基づいて、異常発生時にクロック信号が供給されていた各種機能ブロック３０８のハードウェアを特定する機能と、特定した各種機能ブロック３０８のハードウェア情報及びスタック部３０３に蓄積されているデータ（以下、「スタック情報」という）をバックアップ専用データ／アドレスバス３１３を介してバックアップ記憶部３０４に格納する機能と、バックアップ記憶部３０４へのハードウェア情報及びスタック情報の格納が完了した時点でバックアップ完了信号３１２をリセット制御部３０６に送信する機能と、を有する演算処理回路である。
【００４９】
なお、ハードウェア情報とは、レジスタ情報やステータス情報、内部状態等の解析に必要なハードウェア情報である。また、スタック情報は、プログラムカウンタで示される実行アドレスや関数リターン時の戻り先アドレス、ＣＰＵ内部状態、変数等の解析に必要な情報である。
【００５０】
各種機能ブロック３０８は、このコンピュータシステムによる様々な機能を実現する各種ハードウェア要素を含む。各種機能ブロック３０８には、各種ハードウェアの駆動回路及びその制御部が含まれる。クロック生成部３０９は、各種機能ブロック３０８のハードウェア毎に選択的にクロック信号を供給する発振回路である。
【００５１】
図６は、第３の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャートである。以下、図６を参照して、第３の実施形態のコンピュータシステムにおける一連の処理について説明する。
【００５２】
異常検出部３０５は、異常を検出すると、異常発生信号３１０をリセット制御部３０６に送信する（ＳＴ３００）。リセット制御部３０６は、異常発生信号３１０を受信すると、バックアップ制御部３０７にバックアップ要求信号３１１を送信し、異常発生時の情報を記録するように指示する（ＳＴ３０１）。
【００５３】
バックアップ制御部３０７は、バックアップ要求信号３１１を受信すると、クロック生成部３０９からクロック供給情報を取得する（ＳＴ３０２）。そして、バックアップ制御部３０７は、異常発生時に動作状態にあった各種機能ブロック３０８のハードウェアをクロック供給情報に基づいて特定し、その特定した各種機能ブロック３０８のハードウェア情報及び異常発生時のスタック情報を、バックアップ専用データ／アドレスバス３１５介してバックアップ記憶部３０４に格納する（ＳＴ３０３）。さらに、バックアップ制御部３０７は、バックアップ記憶部３０４への情報の格納が完了した後、バックアップ完了信号３１２をリセット制御部３０６に送信する（ＳＴ３０４）。
【００５４】
リセット制御部３０６は、バックアップ完了信号３１２を受信すると、異常検出部３０５、ＣＰＵ３０１、各種機能ブロック３０８及びクロック生成部３０９にリセット信号３１４を送信する（ＳＴ３０５）。異常検出部３０５、各種機能ブロック３０８及びクロック生成部３０９は、リセット信号３１４を受信すると初期状態に戻る。ＣＰＵ３０１は、リセット信号３１４を受信すると、プログラム記憶部３０２のプログラムを実行し、通常処理を再開する（ＳＴ３０６）。
【００５５】
以上説明したように、第３の実施形態のコンピュータシステムでは、システムに異常が発生した時点におけるシステムの状態に関する情報に含まれるハードウェア情報として、異常発生時に動作状態にあったハードウェアのハードウェア情報のみがバックアップ記憶部３０４に保存される。したがって、第２の実施形態のコンピュータシステムと同様、第１の実施形態と比較して、バックアップ記憶部２０４の容量を小さくできる。
【００５６】
また、第３の実施形態のコンピュータシステムでは、システムに異常が発生した時点におけるシステムの状態に関する情報を、バックアップ専用データ／アドレスバス３１５を介してバックアップ記憶部３０４に保存される。したがって、ＣＰＵ３０１が通常データ／アドレスバス３１３にアクセスできないような状態であっても、異常原因の解析に必要となる情報を確実にバックアップ記憶部３０４に保存しておくことができる。
【００５７】
（第４の実施形態）
図７は、本発明に係る第４の実施形態のコンピュータシステムを示すブロック図である。図７に示すように、第４の実施形態のコンピュータシステムは、ＣＰＵ４０１と、プログラム記憶部４０２と、スタック部４０３と、バックアップ記憶部４０４と、異常検出部４０５と、リセット制御部４０６と、バックアップ制御部４０７と、各種機能ブロック４０８と、データ／アドレスバス４１３とを備える。各部はデータ／アドレスバス４１３を介して相互に接続されている。
【００５８】
ＣＰＵ４０１は、プログラム記憶部４０２に記憶されているプログラムを実行することにより、このシステム全体を統括制御する演算処理回路である。スタック部４０３は、ＣＰＵ４０１が前記プログラムの実行する際に使用されるデータを後入れ先出し方式で記憶しておくためのメモリである。
【００５９】
バックアップ記憶部４０４は、異常発生時のシステムの状態に関する情報を保存しておくための不揮発性のメモリである。異常検出部４０５は、ウォッチドッグタイマによる暴走検出やエラー割込み、例外処理等の異常を検出し、バックアップ要求信号４１１をバックアップ制御部４０７に送信する演算処理回路である。異常検出部４０５は、システムの異常を検出したら直ちにバックアップ要求信号４１１の送信を実行する。
【００６０】
リセット制御部４０６は、バックアップ完了後にリセット信号４１４を異常検出部４０５、ＣＰＵ４０１及び各種機能ブロック４０８に送信する機能（バックアップ終了制御機能）を有する演算処理回路である。
【００６１】
バックアップ制御部４０７は、バックアップ要求信号４１１をトリガとして各種機能ブロック４０８のハードウェア情報及びスタック部４０３に蓄積されているデータ（以下、「スタック情報」という）をバックアップ記憶部４０４に格納する機能と、バックアップ記憶部４０４へのハードウェア情報及びスタック情報の格納が完了した時点でバックアップ完了信号４１２をリセット制御部４０６に送信する機能とを有する演算処理回路である。
【００６２】
なお、ハードウェア情報とは、レジスタ情報やステータス情報、内部状態等の解析に必要なハードウェア情報である。また、スタック情報は、プログラムカウンタで示される実行アドレスや関数リターン時の戻り先アドレス、ＣＰＵ内部状態、変数等の解析に必要な情報である。
【００６３】
各種機能ブロック４０８は、このコンピュータシステムによる様々な機能を実現する各種のハードウェア要素を含む。各種機能ブロック４０８には、各種ハードウェアの駆動回路及びその制御部が含まれる。
【００６４】
図８は、第４の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャートである。以下、図８を参照して、第４の実施形態のコンピュータシステムにおける一連の処理について説明する。
【００６５】
異常検出部４０５は、異常を検出すると、バックアップ要求信号４１１をリセット制御部４０６に送信する（ＳＴ４００）。
【００６６】
バックアップ制御部４０７は、バックアップ要求信号４１１を受信すると、各種機能ブロック４０８のハードウェア情報及び異常発生時のスタック情報を、データ／アドレスバス４１３を介してバックアップ記憶部４０４に格納する（ＳＴ４０１）。さらに、バックアップ制御部４０７は、バックアップ記憶部４０４への情報の格納が完了した後、バックアップ完了信号４１２をリセット制御部４０６に送信する（ＳＴ４０２）。
【００６７】
リセット制御部４０６は、バックアップ完了信号４１２を受信すると、異常検出部４０５、ＣＰＵ４０１及び各種機能ブロック４０８にリセット信号４１４を送信する（ＳＴ４０３）。異常検出部４０５及び各種機能ブロック４０８は、リセット信号４１４を受信すると初期状態に戻る。ＣＰＵ４０１は、リセット信号４１４を受信すると、プログラム記憶部４０２のプログラムを実行し、通常処理を再開する（ＳＴ４０４）。
【００６８】
以上説明したように、第４の実施形態のコンピュータシステムでも、システムに異常が発生した時点におけるシステムの状態に関する情報を、システムの本来の動作に影響を与えることなく保持しておくことができる。そして、その後の任意のタイミングでバックアップ記憶部４０４から当該情報を取り出すことにより、その情報に基づいて異常発生原因を詳細に解析することができる。また、異常発生時におけるシステムの状態に関する情報の取得により、異常発生時の異常原因の解析に要する時間を短縮できる。
【００６９】
なお、本実施形態では、プログラム記憶部４０２とバックアップ記憶部４０４が別個のメモリで構成されているが、これらの記憶部を共通のメモリで構成しても良い。
【００７０】
（第５の実施形態）
図９は、本発明に係る第５の実施形態のコンピュータシステムを示すブロック図である。図９に示すように、第５の実施形態のコンピュータシステムは、ＣＰＵ５０１と、プログラム記憶部５０２と、スタック部５０３と、バックアップ記憶部５０４と、異常検出部５０５と、リセット制御部５０６と、バックアップ制御部５０７と、各種機能ブロック５０８と、データ／アドレスバス５１３とを備える。各部はデータ／アドレスバス５１３を介して相互に接続されている。
【００７１】
ＣＰＵ５０１は、プログラム記憶部５０２に記憶されているプログラムを実行することにより、このシステム全体を統括制御する演算処理回路である。スタック部５０３は、ＣＰＵ５０１が前記プログラムの実行する際に使用されるデータを後入れ先出し方式で記憶しておくためのメモリである。
【００７２】
バックアップ記憶部５０４は、異常発生時のシステムの状態に関する情報を保存しておくための不揮発性のメモリである。異常検出部５０５は、ウォッチドッグタイマによる暴走検出やエラー割込み、例外処理等の異常を検出し、バックアップ要求信号５１１をバックアップ制御部５０７に送信すると共に、書き込み禁止信号５１６を各種機能ブロック５０８に送信する機能を有する演算処理回路である。異常検出部４０５は、システムの異常を検出したら直ちに書き込み禁止信号５１６の送信を実行し、続いてバックアップ要求信号５１１の送信を実行する。
【００７３】
リセット制御部５０６は、バックアップ完了後にリセット信号５１４を異常検出部５０５、ＣＰＵ５０１及び各種機能ブロック５０８に送信する機能（バックアップ終了制御機能）を有する演算処理回路である。
【００７４】
バックアップ制御部５０７は、バックアップ要求信号５１１をトリガとして各種機能ブロック５０８のハードウェア情報及びスタック部５０３に蓄積されているデータ（以下、「スタック情報」という）をバックアップ記憶部５０４に格納する機能と、バックアップ記憶部５０４へのハードウェア情報及びスタック情報の格納が完了した時点でバックアップ完了信号５１２をリセット制御部５０６に送信する機能とを有する演算処理回路である。
【００７５】
なお、ハードウェア情報とは、レジスタ情報やステータス情報、内部状態等の解析に必要なハードウェア情報である。また、スタック情報は、プログラムカウンタで示される実行アドレスや関数リターン時の戻り先アドレス、ＣＰＵ内部状態、変数等の解析に必要な情報である。
【００７６】
各種機能ブロック５０８は、このコンピュータシステムによる様々な機能を実現する各種のハードウェア要素を含む。各種機能ブロック５０８には、各種ハードウェアの駆動回路及びその制御部が含まれる。各種機能ブロック５０８に含まれるハードウェア制御部は、書き込み禁止信号５１６を受信すると、リセット信号５１４を受信するまで書き込み禁止状態になる。
【００７７】
図１０は、第５の実施形態のコンピュータシステムにおける一連の処理の流れを示すフローチャートである。以下、図１０を参照して、第５の実施形態のコンピュータシステムにおける一連の処理について説明する。
【００７８】
異常検出部５０５は、異常を検出すると、書込み禁止信号５１６を各種機能ブロック５０８に送信する（ＳＴ５００）。各種機能ブロック５０８は、書込み禁止信号５１６を受信すると書込み禁止状態になる（ＳＴ５０１）。異常検出部５０５は、書込み禁止信号５１６の送信に続き、バックアップ要求信号５１１をバックアップ制御部５０７に送信し、異常発生時の情報を記録するように指示する（ＳＴ５０２）。
【００７９】
バックアップ制御部５０７は、バックアップ要求信号５１１を受信すると、各種機能ブロック５０８のハードウェア情報及び異常発生時のスタック情報を、データ／アドレスバス５１３を介してバックアップ記憶部５０４に格納する（ＳＴ５０３）。さらに、バックアップ制御部５０７は、バックアップ記憶部５０４への情報の格納が完了した後、バックアップ完了信号５１２をリセット制御部５０６に送信する（ＳＴ５０４）。
【００８０】
リセット制御部５０６は、バックアップ完了信号５１２を受信すると、異常検出部５０５、ＣＰＵ５０１及び各種機能ブロック５０８にリセット信号５１４を送信する（ＳＴ５０５）。異常検出部５０５及び各種機能ブロック５０８は、リセット信号５１４を受信すると初期状態に戻る。ＣＰＵ５０１は、リセット信号５１４を受信すると、プログラム記憶部５０２のプログラムを実行し、通常処理を再開する（ＳＴ５０６）。
【００８１】
以上説明したように、第５の実施形態のコンピュータシステムでは、システムに異常が発生した時点におけるシステムの状態に関する情報を、システムの本来の動作に影響を与えることなくバックアップ記憶部５０４に保持しておくことができる。さらに、本実施形態では、異常検出した時点で各種機能ブロック５０８を書き込み禁止状態にするため、バックアップ制御部５０７がハードウェア情報を取得する前に何らかの原因でハードウェアの制御部の内部状態が変化してしまうことを防止できる。このため、異常発生時における正確なハードウェア情報をバックアップ記憶部５０４に保存できる。そして、その後の任意のタイミングでバックアップ記憶部５０４から当該情報を取り出すことにより、その情報に基づいて異常発生原因を詳細に解析することができる。また、異常発生時におけるシステムの状態に関する情報の取得により、異常発生時の異常原因の解析に要する時間を短縮できる。
【００８２】
なお、本実施形態では、プログラム記憶部５０２とバックアップ記憶部５０４が別個のメモリで構成されているが、これらの記憶部を共通のメモリで構成しても良い。
【産業上の利用可能性】
【００８３】
本発明に係るシステムコンピュータシステムは、携帯電話やＴＶ、レコーダ等の種々の家電機器の組み込みシステムとして有効に利用可能である。
【符号の説明】
【００８４】
１０１  ＣＰＵ
１０２  プログラム記憶部
１０３  スタック部
１０４  バックアップ記憶部
１０５  異常検出部
１０６  リセット制御部（バックアップ開始制御部、バックアップ終了制御部）
１０７  バックアップ制御部
１０８  各種機能ブロック
１１０  異常発生信号
１１１  バックアップ要求信号
１１２  バックアップ完了信号
１１３  データ／アドレスバス
１１４  リセット信号
２０１  ＣＰＵ
２０２  プログラム記憶部
２０３  スタック部
２０４  バックアップ記憶部
２０５  異常検出部
２０６  リセット制御部（バックアップ開始制御部、バックアップ終了制御部）
２０７  バックアップ制御部
２０８  各種機能ブロック
２０９  クロック生成部
２１０  異常発生信号
２１１  バックアップ要求信号
２１３  データ／アドレスバス
２１４  リセット信号
３０１  ＣＰＵ
３０２  プログラム記憶部
３０３  スタック部
３０４  バックアップ記憶部
３０５  異常検出部
３０６  リセット制御部
３０７  バックアップ制御部
３０８  各種機能ブロック
３０９  クロック生成部
３１０  異常発生信号
３１１  バックアップ要求信号
３１２  バックアップ完了信号
３１３  データ／アドレスバス
３１４  リセット信号
３１５  専用のデータ／アドレスバス
４０１  ＣＰＵ
４０２  プログラム記憶部
４０３  スタック部
４０４  バックアップ記憶部
４０５  異常検出部
４０６  リセット制御部
４０７  バックアップ制御部
４０８  各種機能ブロック
４１１  バックアップ要求信号
４１２  バックアップ完了信号
４１３  データ／アドレスバス
４１４  リセット信号
５０１  ＣＰＵ
５０２  プログラム記憶部
５０３  スタック部
５０４  バックアップ記憶部
５０５  異常検出部
５０６  リセット制御部
５０７  バックアップ制御部
５０８  各種機能ブロック
５１１  バックアップ要求信号
５１２  バックアップ完了信号
５１３  データ／アドレスバス
５１４  リセット信号
５１６  書き込み禁止信号
【図１】
2011002889.tif 000003
【図２】
2011002889.tif 000004
【図３】
2011002889.tif 000005
【図４】
2011002889.tif 000006
【図５】
2011002889.tif 000007
【図６】
2011002889.tif 000008
【図７】
2011002889.tif 000009
【図８】
2011002889.tif 000010
【図９】
2011002889.tif 000011
【図１０】
2011002889.tif 000012