(57)【要約】【課題】本発明は、ハードウェア的なＲＡＭ値の異常変化が発生した場合であっても、間違ったバックアップデータを作成することなく、正常に復帰させることを目的とするものである。【解決手段】この目的を達成するために本発明の演算システムは、書き換え可能なＲＯＭにバックアップデータを書き込む時点において、シーケンスも監視することで、正しいデータの書き換えを実現し、ハードウェア的なＲＡＭ変化が発生した場合、間違えて間違ったデータを書き込むことを回避するようにしたものである。【選択図】図２
2007323404.tif 000002
【特許請求の範囲】
【請求項１】
予めプログラムや固定データが格納されている書き換え不可能なＲＯＭと、電源がＯＮである間のみ値が保持される書き換え可能なＲＡＭと、電源がＯＦＦになっても値が保持される書き換え可能なＲＯＭを備え、前記書き換え不可能なＲＯＭに格納されているプログラム及びデータと、書き換え可能なＲＯＭに格納されているデータと、ＲＡＭを使用して処理を行う制御手順によりシステムの電源がＯＮとなり、プログラムが実行されると、まず最初にＲＡＭをクリアし、書き換え不可能なＲＯＭや、書き換え可能なＲＯＭのデータを使用して任意の初期状態に初期化する演算システムにおいて、シーケンスを監視し、ハードウェア的な要因によるＲＡＭの異常が発生しており、真に正しいシーケンスでなかった場合はＲＡＭをクリアし、かつ、書き換え可能なＲＯＭにバックアップされているデータを使用してＲＡＭの初期化及び再起動を行い、ＲＡＭの異常が発生しておらず、真に正しいシーケンスであることが確認された場合にのみ書き換え可能なＲＯＭへデータのバックアップを行う演算システム。
【請求項２】
ハードウェア的な要因によるＲＡＭの異常を、シーケンスのみの監視ではなく、データ内容の監視をも行い、異常を検知する請求項１に記載のシステム。
【請求項３】
真に正しいバックアップシーケンスであることが確認された場合のみバックアップを行う請求項１または２に記載の演算システム。
【請求項４】
書き換え不可能なＲＯＭ、ＲＡＭ、書き換え可能なＲＯＭのどれか又は全てがマイコン内部にある構成における請求項１〜３のいずれかひとつに記載の演算システム。
【請求項５】
書き換え不可能なＲＯＭを書き換え可能なＲＯＭに置換した請求項１〜４のいずれかひとつに記載の演算システム。
【請求項６】
書き換え可能なＲＯＭとして、例えばハードディスク、光学メディア、磁気メディア、半導体メディア等を用いた請求項１〜５のいずれかひとつに記載の演算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は高信頼性ソフトウェアシーケンスを備える演算システムに関するものである。
【背景技術】
【０００２】
近年、マイコンを使用した組み込みシステムが家電・自動車等のあらゆる環境で発達し、その、ソフトウェアの高信頼性が求められており、バグの少ないプログラム設計手法等が検討されている。
【０００３】
しかし、組み込みシステムはあらゆる環境で使用される為、電磁波障害や静電気等のハードウェア的要因によりマイコンのＲＡＭの値が変化してしまい、ソフトウェア的なバグでなくても誤作動してしまい、また復帰できなくなってしまう可能性がある。
【０００４】
図５に従来の演算システムのブロック図を示す。
【０００５】
図５において、（１）は書き換え不可能なＲＯＭで、演算システムの機能を実現するためのプログラムや固定のデータが格納されている。（３）は書き換え可能なＲＯＭで、バックアップデータ等の保管に使用される。
【０００６】
（２）はＲＡＭで、演算システムの機能を実現する時に一時的に保管される計算結果や一時データ、実行しているプログラムの、書き換え不可能なＲＯＭ（１）上における位置を示すプログラムカウンタ等を保管する為に使用される。（４）は演算装置で、書き換え不可能なＲＯＭ（１）に格納されているプログラムや固定データ、書き換え可能なＲＯＭ（３）に格納されているバックアップデータ等を読み出し、ＲＡＭ（２）に計算結果や一時データを格納、読み出し、プログラムカウンタを操作する事で、プログラムを実行し、演算システムの機能を実現する。（５）は電源装置で、書き換え不可能なＲＯＭ（１）、書き換え可能なＲＯＭ（３）、ＲＡＭ（２）、演算装置（４）を動作させる為の電源を供給する。
【０００７】
ここで、図６に従来の演算システムにおけるシーケンスを示し説明する。
【０００８】
従来のシーケンスでは、システムが起動すると、最初に初期化（６）を行う。
【０００９】
初期化（６）では書き換え不可能なＲＯＭ（１）及び、書き換え可能なＲＯＭ（３）から必要なデータを読み出し、ＲＡＭ（２）をクリア、データの書き込みを行い、システムを任意の初期状態にする。その後、処理（７）において、演算装置（４）、書き込み不可能なＲＯＭ（１）、書き込み可能なＲＯＭ（３）、ＲＡＭ（２）を使用してシステムの機能を実現する為の処理を行う。
【００１０】
その後、ＲＡＭ書き込み（８）において、処理（７）の演算結果や一時データ等をＲＡＭ（２）に格納する。
【００１１】
しかし、ＲＡＭ（２）のデータはハードウェア的要因により、想定外の値に変化してしまう可能性がある。処理（７）はこのＲＡＭ（２）に格納されているデータを使用して、機能を実現する為、データが想定外の値に変化してしまうと、正しく処理を行うことができず、間違った動作を行ったり、暴走、異状停止等の異常状態になってしまう場合がある。
【００１２】
そこで、任意のタイミングでＲＡＭ（２）のデータが正しいかチェックを行い、異常がある場合は復帰する為の対策を行う必要がある。
【００１３】
まずデータチェックタイミング（９）の判定においてチェックタイミングである場合、データチェック処理（１０）を行い、データに異常が有るかチェックを行う。
【００１４】
なお、データチェック処理（１０）では必要に応じてデータの修復等を行う場合もある。データチェック処理（１０）の結果、ＲＡＭ（２）のデータが異常有りと判定された場合、システムが機能を実現する事ができない為、異常対策の為のシステム復帰（１３）を行う。
【００１５】
システム復帰（１３）は、ＲＡＭ（２）をクリアし、書き換え不可能なＲＯＭ（１）のデータと、予め作成しておいた書き換え可能なＲＯＭ（３）のバックアップデータを使用して、システムを復帰させる。
【００１６】
バックアップデータはバックアップタイミング（１１）の判定において、バックアップタイミングである場合、バックアップ処理（１２）を行い、ＲＡＭ（２）のデータの全て又は、一部を書き換え可能なＲＯＭ（３）に格納することで作成する。
【００１７】
以上のシーケンスを繰り返すことでシステムは機能を実現させる。
【００１８】
なお、この出願の発明に関連する先行技術文献情報としては、例えば、特許文献１が知られている。
【特許文献１】特開昭６０−１６４８５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上記従来例の演算システムでは、所定のタイミングでバックアップを作成し、ＲＡＭの異常が発生し、プログラムが暴走した場合はウォッチドックタイマ（一定時間正常なシーケンスを実施しなかった場合、ハードウェア的にリセットを行い、初期状態から起動する動作を行うタイマ。暴走時は正常なシーケンスが実行されないことを前提に組み込まれる。）による初期化を期待する方法や、エラーが検知された場合、バックアップデータからデータを復帰させる方法をとることが一般的である。
【００２０】
しかし、ハードウェア的なＲＡＭ異常が発生した場合、間違ってバックアップ処理が実行され、間違ったデータが保存されてしまう場合がある。
【００２１】
このような場合、ＲＡＭ異常が発覚し、バックアップデータから復帰を行っても、バックアップデータが間違っている為、正常に復帰する事ができない事態に陥ってしまう恐れがある。
【００２２】
すなわち、ＲＡＭ（２）のデータがハードウェア的に変化してしまう場合、計算結果や一時データだけでなく、実行しているプログラムの位置を示すプログラムカウンタの値も変化してしまい、間違ってプログラムが実行されてしまう場合がある。例えば、処理（７）の実行中にＲＡＭ（２）の値がハードウェア的に変化し、プログラムカウンタの値が変化してしまう異常が発生すると、処理（７）の実行中にもかかわらず、バックアップ処理（１２）のプログラムがいきなり実行されてしまう場合がある。
【００２３】
このような場合、ＲＡＭ（２）の値が異常なまま、バックアップデータが作成されてしまうことになり、その後、シーケンスが継続され、データチェックタイミング（９）となり、データチェックシーケンス（１０）が実行され、データ異常が発覚し、システム復帰（１３）でシステムの復帰を行おうとした場合、異常なデータで復帰を行ってしまう為、正常にシステムを復帰させることができなくなってしまうという問題があった。
【００２４】
そこで、本発明はハードウェア的なＲＡＭの異常が発生しても、バックアップデータから正常に復帰することができる演算システムを提供することを目的とするものである。
【課題を解決するための手段】
【００２５】
この目的を達成するために本発明の演算システムは、書き換え可能なＲＯＭにバックアップデータを書き込む時点において、シーケンスも監視することで、正しいデータの書き換えを実現し、ハードウェア的なＲＡＭ変化が発生した場合、間違えて間違ったデータを書き込むことを回避するようにしたものである。
【発明の効果】
【００２６】
以上のように本発明は、ハードウェア的にＲＡＭの異常が発生してしまう可能性のある演算システムにおいて、シーケンスも監視する事で、ＲＡＭの異常が発生していない真に正しいシーケンスにおいてのみ書き換え可能なＲＯＭにデータを書き込むことで、正しいバックアップデータの作成を成功させることができ、このようにする事で、演算システムにおいて、ＲＡＭの異常が発覚した場合、常に正しいバックアップデータから復帰させることが可能となる。
【発明を実施するための最良の形態】
【００２７】
以下本発明の一実施形態について添付図面を用いて説明する。
【００２８】
図１は本発明の演算システムの一実施形態におけるブロック図を示す。図１において、（１）は書き換え不可能なＲＯＭで、演算システムの機能を実現する為のプログラムや固定のデータが格納されている。（３）は書き換え可能なＲＯＭで、バックアップデータ等の保管に使用される。（２）はＲＡＭで、演算システムの機能を実現する時に一時的に保管される計算結果や一時データ、実行しているプログラムの書き換え不可能なＲＯＭ（１）上における位置を示すプログラムカウンタ等を保管する為に使用される。
【００２９】
（４）は演算装置で、書き換え不可能なＲＯＭ（１）に格納されているプログラムや固定データ、書き換え可能なＲＯＭ（３）に格納されているバックアップデータ等を読み出し、ＲＡＭ（２）に計算結果や一時データを格納、読み出し、プログラムカウンタを操作する事で、プログラムを実行し、演算システムの機能を実現する。（５）は電源装置で、書き換え不可能なＲＯＭ（１）、書き換え可能なＲＯＭ（３）、ＲＡＭ（２）、演算装置（４）を動作させる為の電源を供給する。
【００３０】
ここで、図２に同演算システムにおけるシーケンスを示し説明する。
【００３１】
このシーケンスでは、システムが起動すると、最初に初期化（６）を行う。
【００３２】
初期化（６）では書き換え不可能なＲＯＭ（１）及び、書き換え可能なＲＯＭ（３）から必要なデータを読み出し、ＲＡＭ（２）をクリア、データの書き込みを行い、システムを任意の初期状態にする。
【００３３】
その後、処理（７）において、演算装置（４）、書き込み不可能なＲＯＭ（１）、書き込み可能なＲＯＭ（３）、ＲＡＭ（２）を使用してシステムの機能を実現する為の処理を行う。
【００３４】
その後、ＲＡＭ書き込み（８）において、処理（７）の演算結果や一時データ等をＲＡＭ（２）に格納する。
【００３５】
しかしＲＡＭ（２）のデータはハードウェア的要因により、想定外の値に変化してしまう可能性がある。
【００３６】
処理（７）はこのＲＡＭ（２）に格納されているデータを使用して、機能を実現する為、データが想定外の値に変化してしまうと、正しく処理を行うことができず、間違った動作を行ったり、暴走、異状停止等の異常状態になってしまう場合がある。
【００３７】
そこで、任意のタイミングでＲＡＭ（２）のデータが正しいかチェックを行い、異常がある場合は復帰する為の対策を行う必要がある。
【００３８】
まずデータチェックタイミング（９）の判定においてチェックタイミングである場合、データチェック処理（１０）を行い、データに異常が有るかチェックを行う。
【００３９】
なお、データチェック処理（１０）では必要に応じてデータの修復等を行う場合もある。
【００４０】
データチェック処理（１０）の結果、ＲＡＭ（２）のデータが異常有りと判定された場合、システムが機能を実現する事ができない為、異常対策の為のシステム復帰（１３）を行う。
【００４１】
システム復帰（１３）は、ＲＡＭ（２）をクリアし、書き換え不可能なＲＯＭ（１）のデータと、予め作成しておいた書き換え可能なＲＯＭ（３）のバックアップデータを使用して、システムを復帰させる。
【００４２】
バックアップデータはバックアップタイミング（１１）の判定において、バックアップタイミングである場合、シーケンスチェック（１４）を行い、真に正しいタイミングのバックアップシーケンスである場合にのみバックアップ処理（１２）を行い、ＲＡＭ（２）のデータの全て又は、一部を書き換え可能なＲＯＭ（３）に格納することで作成する。
【００４３】
以上のシーケンスを繰り返すことでシステムは機能を実現させる。
【００４４】
このようにシーケンスチェック（１４）のもとにバックアップすると、ＲＡＭ（２）のデータがハードウェア的に変化してしまう場合、計算結果や一時データだけでなく、実行しているプログラムの位置を示すプログラムカウンタの値も変化してしまい、間違ってプログラムが実行されてしまうことを防ぐことができる。
【００４５】
例えば、処理（７）の実行中にＲＡＭ（２）の値がハードウェア的に変化し、プログラムカウンタの値が変化してしまう異常が発生すると、処理（７）の実行中にもかかわらず、バックアップ処理（１２）のプログラムがいきなり実行されてしまう場合がある。
【００４６】
このような場合、ＲＡＭ（２）の値が異常なまま、バックアップデータが作成されてしまうことになり、その後、シーケンスが継続され、データチェックタイミング（９）となり、データチェックシーケンス（１０）が実行され、データ異常が発覚し、システム復帰（１３）でシステムの復帰を行おうとした場合、異常なデータで復帰を行ってしまう為、正常にシステムを復帰させることができなくなってしまうという問題も解決できる。
【００４７】
また、図３の様にバックアップ処理（１２）を実行する直前に、シーケンスチェック（１４）を行い、真に正しいタイミングのバックアップシーケンスである場合にのみバックアップ処理（１２）を実行し、正しいタイミングで無い場合はシステム復帰（１３）を行うことで、異常なバックアップデータを作成してしまうことを避けることができる。このため、ハードウェア的にＲＡＭ（２）に異常が発生したとしても、正しいバックアップデータからの復帰を行うことができる。
【００４８】
また、本実施の形態におけるシーケンスの監視方法について説明する。図４に示すように（６）〜（１４）のようなプログラムの各処理において、処理固有のナンバーを与えておく。そのナンバーを図４の様に実行した順番に保存して行く。そして、このナンバーはＲＡＭ（２）上に確保したシーケンス履歴領域（１５）に保存しておき、シーケンスチェック（１４）において、このナンバーを確認する事により、それ以前に実行されたシーケンスを確認する事ができる。この確認の方法は、履歴が正しいシーケンスのときのみ「シーケンスに誤りが無い」と判定する。
【００４９】
例えば、処理（７）中にＲＡＭ（２）がハードウェア的に変化し、想定外にバックアップを作成しようとした場合、直前の履歴が０ｘ０５ではなく、０ｘ０１と異常値になっている為、異常が有ったことがわかる。また、この履歴自体が変化してしまった場合は、やはり、直前の履歴の異常値より、異常がわかる。
【００５０】
なお、逆に異常により０ｘ０５の様に「シーケンスに誤りが無い」と判定する値に変わってしまう可能性もあるが、直前のみではなく更にその前、その前というようにより以前の値を複数監視することで対応できる。
【００５１】
また処理（１０）の様に処理（９）の判定如何により実行されないシーケンスが存在する場合は、直前を判定するがその前は判定せず、しかし更にその前は判定を行うとするように、判定条件から外すことでも対応できる。
【産業上の利用可能性】
【００５２】
以上の様に本発明は、ハードウェア的にＲＡＭの異常が発生する可能性のある組み込み演算システムであっても、正しいバックアップデータから復帰する事が可能であり、非常に有用なものとなる。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態における演算システムのブロック図
【図２】同システムにおけるバックアップデータ作成の制御ルーチンを示す図
【図３】同システムにおける他の実施形態のバックアップデータ作成の制御ルーチンを示す図
【図４】同システムにおけるシーケンス監視方法の一例を示す図
【図５】従来の演算システムのブロック図
【図６】同システムにおけるバックアップデータ作成の制御ルーチンを示す図
【符号の説明】
【００５４】
１  ＲＯＭ
２  ＲＡＭ
３  ＲＯＭ
４  演算装置
５  電源装置
【図１】
2007323404.tif 000003
【図２】
2007323404.tif 000004
【図３】
2007323404.tif 000005
【図４】
2007323404.tif 000006
【図５】
2007323404.tif 000007
【図６】
2007323404.tif 000008