(57)【要約】【課題】チェックサムを保持するためのリソース消費の増大を抑制しつつ、複数のデータ記憶ブロックを対象としてデータの信頼性を保証する。【解決手段】マイクロコンピュータ１において、複数のデータ記憶ブロック６ａ〜６ｄを有するバックアップＲＡＭ５にチェックサム記憶ブロック７ａ〜７ｃを設け、チェックサムとIDとを対応付けて複数のデータ記憶ブロック６ａ〜６ｄで共通して保持する。チェックサムを保持するためのリソースを共有して使用することで、リソース消費の増大を抑制できる。又、チェックサムを使用してサムチェックを実施し、そのサムチェックを実施したデータ記憶ブロックブロック６ａ〜６ｄでデータ破壊が発生しているか否かを判定することで、データの信頼性を保証できる。【選択図】図１
2014225136.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがデータを記憶可能な複数のデータ記憶ブロック（６ａ〜６ｄ）を有するバックアップＲＡＭ（５）と、データを前記データ記憶ブロックに書き込み可能なＣＰＵ（２）と、を有するマイクロコンピュータにおいて、
前記ＣＰＵは、これから前記データ記憶ブロックに書き込むデータ、及びデータを書き込むデータ記憶ブロックに既に記憶されているデータからそれぞれチェックサムを算出し、それら算出したチェックサムと当該データ記憶ブロックを示す識別子とを対応付けて前記複数のデータ記憶ブロックで共通して保持し、前記算出したチェックサムを使用してサムチェックを実施し、そのサムチェックを実施したデータ記憶ブロックでデータ破壊が発生しているか否かを判定することを特徴とするマイクロコンピュータ。
【請求項２】
請求項１に記載したマイクロコンピュータにおいて、
前記ＣＰＵは、前記複数のデータ記憶ブロックのうち一部を、データ破壊が発生しているか否かを判定する対象とすることを特徴とするマイクロコンピュータ。
【請求項３】
請求項１又は２に記載したマイクロコンピュータにおいて、
前記バックアップＲＡＭは、前記チェックサムと前記識別子との対応付けを記憶可能なチェックサム記憶ブロック（７ａ〜７ｃ）を有し、
前記ＣＰＵは、前記チェックサムと前記識別子とを１回の書き込み処理で前記チェックサム記憶ブロックに同時に書き込むことで、前記チェックサムと前記識別子とを対応付けて保持することを特徴とするマイクロコンピュータ。
【請求項４】
請求項１から３の何れか一項に記載したマイクロコンピュータにおいて、
前記ＣＰＵは、サムチェックを実施したデータ記憶ブロックでデータ破壊が発生していると判定した場合に、前記複数のデータ記憶ブロックのうち一部又は全体を初期化することを特徴とするマイクロコンピュータ。
【請求項５】
請求項４に記載したマイクロコンピュータにおいて、
前記ＣＰＵは、前記複数のデータ記憶ブロックのうち一部を初期化することとして、データ破壊が発生していると判定したデータ記憶ブロックのみを初期化することを特徴とするマイクロコンピュータ。
【請求項６】
請求項４に記載したマイクロコンピュータにおいて、
前記ＣＰＵは、前記複数のデータ記憶ブロックのうち一部を初期化することとして、データ破壊が発生していると判定したデータ記憶ブロック、及び当該データ破壊が発生していると判定したデータ記憶ブロックと関連するデータ記憶ブロックを初期化することを特徴とするマイクロコンピュータ。
【請求項７】
請求項４から６の何れか一項に記載したマイクロコンピュータにおいて、
前記ＣＰＵは、データ破壊が発生している場合に初期化する範囲をデータ記憶ブロック毎に規定したテーブルを保持し、サムチェックを実施したデータ記憶ブロックでデータ破壊が発生していると判定した場合に、前記テーブルを参照することで、初期化する範囲を特定することを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それぞれがデータを記憶可能な複数のデータ記憶ブロックを有するバックアップＲＡＭと、データを前記データ記憶ブロックに書き込み可能なＣＰＵと、を備えたマイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータにおいては、ＣＰＵがデータをバックアップＲＡＭ（Random Access Memory）に書き込み中に電源がオフすると、バックアップＲＡＭのデータ破壊が発生する可能性がある。データ破壊の発生を検出する方法として、従来より、チェックサムを算出する方法がある。例えば特許文献１には、それぞれがデータを記憶可能な複数のブロックを有するバックアップＲＡＭにおいて、チェックサムをブロック毎に保持し、そのブロックでデータ破壊が発生しているか否かを判定し、データの信頼性を保証する構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４８６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した特許文献１では、チェックサムをブロック毎に保持する構成であるので、データの信頼性を保証したいブロックの数が増大すると、その分、チェックサムを保持するためのリソース消費が増大するという問題が生じる。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、チェックサムを保持するためのリソース消費の増大を抑制しつつ、複数のデータ記憶ブロックを対象としてデータの信頼性を保証することができるマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した発明によれば、ＣＰＵは、これからデータ記憶ブロックに書き込むデータ、及びデータを書き込むデータ記憶ブロックに既に記憶されているデータからそれぞれチェックサムを算出し、それら算出したチェックサムと当該データ記憶ブロックを示す識別子とを対応付けて複数のデータ記憶ブロックで共通して保持する。そして、ＣＰＵは、算出したチェックサムを使用してサムチェックを実施し、そのサムチェックを実施したデータ記憶ブロックでデータ破壊が発生しているか否かを判定する。
【０００７】
即ち、チェックサムをデータ記憶ブロック毎に保持する従来の構成とは異なり、チェックサムと識別子とを対応付けて複数のデータ記憶ブロックで共通して保持するので、チェックサムを保持するためのリソースを複数のデータ記憶ブロックで共有することができる。これにより、チェックサムを保持するためのリソースを共有して使用することで、データの信頼性を保証したいデータ記憶ブロックの数が増大したとしても、リソース消費の増大を抑制することができる。そして、算出したチェックサムを使用してサムチェックを実施し、そのサムチェックを実施したデータ記憶ブロックでデータ破壊が発生しているか否かを判定するので、複数のデータ記憶ブロックを対象としてデータの信頼性を保証することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態を示す構成図
【図２】データをバックアップＲＡＭに書き込む態様を示す図
【図３】バックアップＲＡＭの更新処理を示すフローチャート
【図４】サムチェックの異常検出処理を示すフローチャート
【図５】バックアップＲＡＭを更新する態様を示す図（その１）
【図６】バックアップＲＡＭを更新する態様を示す図（その２）
【図７】バックアップＲＡＭを更新する態様を示す図（その３）
【発明を実施するための形態】
【０００９】
以下、本発明を、車両用電子制御装置（ＥＣＵ：Electronic Control Unit）に実装されるマイクロコンピュータに適用した一実施形態について、図面を参照して説明する。マイクロコンピュータ１は、ＣＰＵ２（Central Processing Unit）と、ＲＯＭ（Read Only Memory）３と、ＲＡＭ４（Random Access Memory）と、バックアップＲＡＭ５とを有する。ＣＰＵ２は、ＲＯＭ３に格納されている制御プログラムを読出して実行し、各種の処理を実施する。ＣＰＵ２は、実施する処理の１つとして、ＲＡＭ４のバッファ４ａに格納されているデータ（書き込みバッファデータ）をバックアップＲＡＭ５に書き込む（記憶する）処理を実施する。
【００１０】
上記した構成では、車両バッテリ（図示せず）からの動作電源がＣＰＵ２及びＲＡＭ４に供給される経路と、車両バッテリからの動作電源がバックアップＲＡＭ５に供給される経路とは分かれている。ＲＡＭ４は、イグニッションスイッチがオフになると、車両バッテリからの動作電源の供給が断たれ、記憶しているデータは消失される。一方、バックアップＲＡＭ５は、イグニッションスイッチがオフになっても車両バッテリからの動作電源の供給が断たれることはなく、記憶しているデータは保持される（消失されない）。
【００１１】
バックアップＲＡＭ５は、その記憶領域がブロックの単位で分割されている。ブロックは、それぞれがデータを記憶可能な複数の（図１では４個の）データ記憶ブロック６ａ〜６ｄと、サムチェックに使用するチェックサムを記憶可能な３個のチェックサム記憶ブロック７ａ〜７ｃとを含む。データ記憶ブロック６ａ〜６ｄには、それぞれに対してID（識別子）が対応付けられている。図１では、「ID１」〜「ID４」の４個のデータ記憶ブロック６ａ〜６ｄを例示しているが、データ記憶ブロックの数は５個以上であっても良いし３個以下であっても良い。ＣＰＵ２がデータの書き込み処理を実施することで、データがデータ記憶ブロック６ａ〜６ｄに書き込まれる。チェックサム記憶ブロック７ａ〜７ｃには、サムチェックに使用するチェックサムとしてSUM_top、SUM_bottom、SUM_tagが、それぞれID_top、ID_bottom、ID_tagと対応付けられて記憶される。ＣＰＵ２がSUM及びIDの書き込み処理を実施することで、SUM及びIDがチェックサム記憶ブロック７ａ〜７ｃに書き込まれる。
【００１２】
SUM_top、SUM_bottom、SUM_tagは、それぞれ次のように定義される。SUM_topは、データがバックアップＲＡＭ５のデータ記憶ブロック６ａ〜６ｄに書き込まれる前に後述するSUM_bufにより更新されるチェックサムである。SUM_bottomは、データがバックアップＲＡＭ５のデータ記憶ブロック６ａ〜６ｄに書き込まれた後にSUM_bufにより更新されるチェックサムである。詳しくは後述するように、ＣＰＵ２は、SUM_top及びSUM_bottomの双方が、データが書き込まれたデータ記憶ブロック６ａ〜６ｄから算出したチェックサムと等しいと判定することで、データの書き込みが正常終了した（データ破壊が発生していない）と判定可能となる。
【００１３】
SUM_tagは、ＣＰＵ２がこれからデータを書き込むデータ記憶ブロック６ａ〜６ｄに既に書き込まれている（記憶されている）データから算出したチェックサムである。詳しくは後述するように、ＣＰＵ２は、SUM_bottomを更新することができなかった場合には、SUM_top及びSUM_tagの双方が、データが書き込まれたデータ記憶ブロック６ａ〜６ｄから算出したチェックサムと等しいと判定することで、データの書き込みが正常終了したと判定可能となる。SUM_bufは、ＣＰＵ２がこれから書き込むデータから算出したチェックサムである。ＣＰＵ２は、SUM_bufが、データが書き込まれたデータ記憶ブロック６ａ〜６ｄから算出したチェックサムと等しいと判定することで、データの書き込みが正常終了したと判定可能となる。ＣＰＵ２は、このようにID_top、ID_bottom、ID_tagを定義しているので、ID_top、ID_bottom、ID_tagを判定することで、バックアップＲＡＭ５の更新状況を判定可能となる。
【００１４】
ＣＰＵ２は、データ記憶ブロック６ａ〜６ｄとチェックサム記憶ブロック７ａ〜７ｃとを同等に扱い、即ち、SUM_topとID_topとの対応付け、SUM_bottomとID_bottomとの対応付け、SUM_tagとID_tagとの対応付けをそれぞれ１つの独立したデータとして処理する。即ち、ＣＰＵ２は、SUM_topとID_topをそれぞれ別々に更新するのではなく、SUM_topとID_topを１回のデータの書き込み処理で同時に更新する。ＣＰＵ２は、同様に、SUM_bottomとID_bottom、SUM_tagとID_tagについてもそれぞれ１回のデータの書き込み処理で同時に更新する。
【００１５】
ＣＰＵ２がデータをデータ記憶ブロック６ａ〜６ｄに書き込む態様としては、１つのデータを１つのデータ記憶ブロックに書き込む態様と、複数のデータを一括して１つのデータ記憶ブロックに書き込む態様とがある。具体的には、図２（ａ）には、前者として、４バイトデータの「０ｘ１２３４５６７８」で構成される１つのデータを「ID１」のデータ記憶ブロックに書き込み、４バイトデータの「０ｘ９ＡＢＣＤＥＦ０」で構成される１つのデータを「ID２」のデータ記憶ブロックに書き込む態様を例示している。又、図２（ｂ）には、後者として、それぞれ２バイトデータの「０ｘ１２３４」、２バイトデータの「０ｘ５６７８」、２バイトデータの「０ｘ９ＡＢＣ」、１バイトデータの「０ｘＤＥ」、１バイトデータの「０ｘＦＯ」で構成される５つのデータを一括して「ID２」のデータ記憶ブロックに書き込む態様を例示している。バックアップＲＡＭ５は、ブロック毎に独立してデータ数やデータサイズを定義可能である。
【００１６】
次に、上記した構成の作用について、図３から図７を参照して説明する。ＣＰＵ２は、本発明に関連し、図３に示すバックアップＲＡＭ５の更新処理、図４に示すサムチェックの異常検出処理を実施する。以下、それぞれの処理を順次説明する。
【００１７】
（１）バックアップＲＡＭ５の更新処理
前提として、図５に例示するように、「ID３」のデータ記憶ブロック６ｃにチェックサムが「０ｘ１２」となるデータを書き込んだ後のバックアップＲＡＭ５に対してデータを書き込む場合を説明する。チェックサムが「０ｘ１２」となるデータを書き込む前の「ID３」のデータ記憶ブロック６ｃにはチェックサムが「０ｘ７８」となるデータが書き込まれていたので、SUM_tagは「０ｘ７８」となっている。
【００１８】
ＣＰＵ２は、ＲＡＭ４のバッファ４ａに記憶されているデータ（書き込みバッファデータ）を、データの書き込み先を「ID２」のデータ記憶ブロック６ｂとする書き込む命令を受けると、バックアップＲＡＭ５の更新処理を開始する。ＣＰＵ２は、バックアップＲＡＭ５の更新処理を開始すると、これから書き込むデータからチェックサム（SUM_buf）を算出する（ステップＳ１）。図５の例示では、ＣＰＵ２は、チェックサム（SUM_buf）を「０ｘ３４」と算出する。又、ＣＰＵ２は、データの書き込み先が「ID２」のデータ記憶ブロック６ｂであると判定すると、ID_bufを「２」に設定する。
【００１９】
次いで、ＣＰＵ２は、これからデータを書き込むデータ記憶ブロック６ｂに既に書き込まれているデータからチェックサム（SUM_tag）を算出する（ステップＳ２）。図５の例示では、ＣＰＵ２は、データの書き込み先のデータ記憶ブロックである「ID２」のデータ記憶ブロック６ｂに既に書き込まれているデータからチェックサム（SUM_tag）を「０ｘ５６」と算出する。
【００２０】
次いで、ＣＰＵ２は、ステップＳ１で算出したチェックサム（SUM_buf）と、データの書き込み先のデータ記憶ブロック６ｂのID（ID_buf）を、バックアップＲＡＭ５のチェックサム記憶ブロック７ａに書き込み、SUM_topとID_topを更新する（ステップＳ３）。即ち、ＣＰＵ２は、SUM_topにSUM_bufを書き込み、ID_topにID_bufを書き込む。図５の例示では、ＣＰＵ２は、SUM_topに「０ｘ３４」を書き込み、ID_topに「２」を書き込む。このとき、ＣＰＵ２は、SUM_topへの「０ｘ３４」の書き込みとID_topへの「２」の書き込みを１回のデータの書き込み処理で同時に実施し、SUM_topとID_topを１回のデータの書き込み処理で同時に更新する。
【００２１】
次いで、ＣＰＵ２は、SUM_tagとID_tagをバックアップＲＡＭ５のチェックサム記憶ブロック７ｃに書き込み、SUM_tagとID_tagを更新する（ステップＳ４）。図５の例示では、ＣＰＵ２は、SUM_tagに「０ｘ５６」を書き込み、ID_tagに「２」を書き込む。このとき、ＣＰＵ２は、SUM_tagへの「０ｘ５６」の書き込みとID_tagへの「２」の書き込みを１回のデータの書き込み処理で同時に実施し、SUM_tagとID_tagを１回のデータの書き込み処理で同時に更新する。
【００２２】
次いで、ＣＰＵ２は、データをバックアップＲＡＭ５のデータ記憶ブロック６ｂに書き込む（ステップＳ５）。図６の例示では、ＣＰＵ２がデータをバックアップＲＡＭ５の「ID２」のデータ記憶ブロック６ｂに書き込むことで、「ID２」のデータ記憶ブロック６ｂに書き込まれたデータのチェックサムは「０ｘ３４」となる。ここで、ＣＰＵ２がデータを書き込み中に電源がオフしなければ（マイクロコンピュータ１が停止しなければ）、正しいデータがデータ記憶ブロック６ｂに書き込まれた状態となる。一方、ＣＰＵ２がデータを書き込み中に電源がオフすると（マイクロコンピュータ１が停止すると）、正しいデータがデータ記憶ブロック６ｂに書き込まれなかった状態となる。
【００２３】
次いで、ＣＰＵ２は、ステップＳ１で算出したチェックサム（SUM_buf）と、データの書き込み先のデータ記憶ブロック６ｂのID（ID_buf）を、バックアップＲＡＭ５のチェックサム記憶ブロック７ｂに書き込み、SUM_bottomとID_bottomを更新する（ステップＳ６）。即ち、ＣＰＵ２は、SUM_bottomにSUM_bufを書き込み、ID_bottomにID_bufを書き込む。図６の例示では、ＣＰＵ２は、SUM_bottomに「０ｘ３４」を書き込み、ID_bottomに「２」を書き込む。このとき、ＣＰＵ２は、SUM_bottomへの「０ｘ３４」の書き込みとID_bottomへの「２」の書き込みを１回のデータの書き込み処理で同時に実施し、SUM_bottomとID_bottomを１回のデータの書き込み処理で同時に更新する。
【００２４】
（２）サムチェックの異常検出処理
ＣＰＵ２は、上記したバックアップＲＡＭ５の更新処理においてデータのバックアップＲＡＭ５への書き込みが正常終了したか異常終了したかを検出することを目的とし、サムチェックの異常検出処理を実施する。ＣＰＵ２は、例えばイグニッションがオフからオンに切換ったことをトリガ（契機）として再起動すると、サムチェックの異常検出処理を開始する。ＣＰＵ２は、サムチェックの異常検出処理を開始すると、バックアップＲＡＭ５のチェックサム記憶ブロック７ａ、７ｂを参照し、ID_topとID_bottomとが等しいか否かを判定する（ステップＳ１１）。
【００２５】
ここで、ID_topとID_bottomとが等しくなるのは、バックアップＲＡＭ５の更新処理においてステップＳ１を実施する前、ステップＳ６を実施した後、又はデータの書き込みを同一IDのデータ記憶ブロックに対して２回連続で実施した場合である。データの書き込みを同一IDのデータ記憶ブロックに対して２回連続で実施した場合には、バックアップＲＡＭ５の更新がどこまで完了しているかをＣＰＵ２が判定不可能であるので、ステップＳ５を実施中にデータの書き込みが異常終了した可能性がある。この点を考慮し、ＣＰＵ２は、ID_topとID_bottomとが等しいと判定すると（ステップＳ１１：ＹＥＳ）、ID_topのデータ記憶ブロックに書き込まれているデータからチェックサム（SUM）を算出する（ステップＳ１２）。そして、ＣＰＵ２は、SUM_top及びSUM_bottomを使用してサムチェックを実施し（ステップＳ１３）、バックアップＲＡＭ５のデータの信頼性を保証する。
【００２６】
ＣＰＵ２は、ID_topのデータ記憶ブロックに書き込まれているデータから算出したチェックサム（SUM）が、SUM_top及びSUM_bottomのどちらかと等しいと判定すると（ステップＳ１３：ＮＯ）、データの書き込みが正常終了したと判定する。即ち、ＣＰＵ２は、データ破壊が発生していないと判定し（ステップＳ１７）、サムチェックの異常検出処理を終了する。
【００２７】
これに対し、ＣＰＵ２は、ID_topのデータ記憶ブロックに書き込まれているデータから算出したチェックサム（SUM）が、SUM_top及びSUM_bottomのどちらとも等しくないと判定すると（ステップＳ１３：ＹＥＳ）、ID_topのデータ記憶ブロックに書き込まれているデータが、データの書き込み開始前に書き込まれていたデータ、及び書き込もうとしたデータのどちらとも等しくなく、データの書き込みが正常終了しなかった（異常終了した）と判定する。即ち、ＣＰＵ２は、データ破壊が発生している（データが異常である）と判定する（ステップＳ１８）。そして、ＣＰＵ２は、データ破壊が発生していると判定すると、予め保持しているテーブルを参照して初期化する範囲を特定し（ステップＳ１９）、その特定した範囲を初期化する（ステップＳ２０）。
【００２８】
具体的に説明すると、ＣＰＵ２は、データ破壊が発生している場合に初期化する範囲をデータ記憶ブロック毎に規定したテーブルを予め保持している。ＣＰＵ２は、データ破壊が発生していると判定したデータ記憶ブロックに対して規定している範囲を初期化する。ＣＰＵ２は、初期化する範囲として自己のみを規定していれば、そのデータ破壊が発生していると判定したデータ記憶ブロックのみを初期化する。又、ＣＰＵ２は、初期化する範囲として自己と共に関連するデータ記憶ブロックを規定していれば、そのデータ破壊が発生していると判定したデータ記憶ブロック及び関連するデータ記憶ブロックを初期化する。又、ＣＰＵ２は、初期化する範囲としてデータ記憶ブロックの全体を規定していれば、全てのデータ記憶ブロックを初期化する。尚、上記したテーブルは例えば設計者が構築すれば良く、即ち、設計者が制御プログラムを考慮してデータ記憶ブロック毎の初期化する範囲を定めても良い。
【００２９】
又、ＣＰＵ２は、ID_topとID_bottomとが等しくないと判定すると（ステップＳ１１：ＮＯ）、バックアップＲＡＭ５のチェックサム記憶ブロック７ａ、７ｃを参照し、ID_topとID_tagとが等しいか否かを判定する（ステップＳ１４）。ここで、ID_topとID_tagとが等しくなるのは、バックアップＲＡＭ５の更新処理においてステップＳ４のSUM_tagとID_tagを更新する処理が完了した場合である。この場合も、ステップＳ５を実施中にデータの書き込みが異常終了した可能性がある。この点を考慮し、ＣＰＵ２は、ID_topとID_tagとが等しいと判定すると（ステップＳ１４：ＹＥＳ）、この場合も、ID_topのデータ記憶ブロックに書き込まれているデータからチェックサム（SUM）を算出する（ステップＳ１５）。そして、ＣＰＵ２は、SUM_top及びSUM_tagを使用してサムチェックを実施し（ステップＳ１６）、バックアップＲＡＭ５のデータの信頼性を保証する。
【００３０】
ＣＰＵ２は、ID_topのデータ記憶ブロックに書き込まれているデータから算出したチェックサム（SUM）が、SUM_top及びSUM_tagのどちらかと等しいと判定すると（ステップＳ１６：ＮＯ）、この場合も、データの書き込みが正常終了したと判定する。即ち、ＣＰＵ２は、データ破壊が発生していないと判定し（ステップＳ１７）、サムチェックの異常検出処理を終了する。
【００３１】
これに対し、ＣＰＵ２は、ID_topのデータ記憶ブロックに書き込まれているデータから算出したチェックサム（SUM）が、SUM_top及びSUM_tagのどちらとも等しくないと判定すると（ステップＳ１６：ＹＥＳ）、この場合も、ID_topのデータ記憶ブロックに書き込まれているデータが、データの書き込み開始前に書き込まれていたデータ、及び書き込もうとしたデータのどちらとも等しくなく、データの書き込みが正常終了しなかった（異常終了した）と判定する。即ち、ＣＰＵ２は、データ破壊が発生している（データが異常である）と判定する（ステップＳ１８）。そして、ＣＰＵ２は、これ以降、上記したステップＳ１９及びＳ２０を実施する。
【００３２】
即ち、バックアップＲＡＭ５のデータ破壊が発生するのは、データの書き込み中に電源がオフした場合であり、電源がオフすると、図７にも示すように、ID_topのデータ記憶ブロック（図７では、ID_topが「２」であるので、「ID２」のデータ記憶ブロック６ｂ）ではデータの値が不定となり、チェックサムの値も不定となる。ＣＰＵ２は、このようにチェックサムの値が不定となっている状態で、ステップＳ１３でSUM_topとSUM_bottomを使用してサムチェックを実施し、「ＹＥＳ」と判定することで、データの書き込みが正常終了しなかったと判定可能となる。又、ＣＰＵ２は、SUM_bottomを更新することができなかった場合でも、チェックサムの値が不定となっている状態で、ステップＳ１６でSUM_topとSUM_tagを使用してサムチェックを実施し、「ＹＥＳ」と判定することで、データの書き込みが正常終了しなかったと判定可能となる。
【００３３】
尚、ＣＰＵ２は、複数のデータ記憶ブロック６ａ〜６ｄの全てをデータ破壊が発生しているか否かを判定する対象としても良いし、複数のデータ記憶ブロック６ａ〜６ｄのうち一部をデータ破壊が発生しているか否かを判定する対象としても良い。
【００３４】
以上に説明したように本実施形態によれば、マイクロコンピュータ１において、複数のデータ記憶ブロック６ａ〜６ｄを有するバックアップＲＡＭ５にチェックサム記憶ブロック７ａ〜７ｃを設け、チェックサムとIDとを対応付けて複数のデータ記憶ブロック６ａ〜６ｄで共通して保持するようにした。これにより、チェックサムを保持するためのリソースを複数のデータ記憶ブロック６ａ〜６ｄで共有することができる。その結果、チェックサムを保持するためのリソースを共有して使用することで、データの信頼性を保証したいデータ記憶ブロック６ａ〜６ｄの数が増大したとしても、リソース消費の増大を抑制することができる。そして、算出したチェックサムを使用してサムチェックを実施し、そのサムチェックを実施したデータ記憶ブロックブロック６ａ〜６ｄでデータ破壊が発生しているか否かを判定するようにした。これにより、複数のデータ記憶ブロック６ａ〜６ｄを対象としてデータの信頼性を保証することができる。
【００３５】
例えばデータ破壊が発生しても悪影響が懸念されないデータ記憶ブロックをデータ破壊が発生しているか否かを判定する対象とせず、データ破壊が発生すると悪影響が懸念されるデータ記憶ブロックのみを対象とする等、複数のデータ記憶ブロック６ａ〜６ｄのうち一部をデータ破壊が発生しているか否かを判定する対象とすることで、計算速度を高めることができる。
チェックサムとIDを１回の書き込み処理でチェックサム記憶ブロック７ａ〜７ｃに同時に書き込むようにしたので、チェックサムとIDとを別々に書き込む構成と比較して書き込み処理の回数を抑制することができる。書き込み処理の回数が増大するにしたがって書き込み処理に異常が発生する可能性が高まるという事情を考慮し、このようにチェックサムとIDとを同時に書き込むことで、書き込み処理に異常が発生する可能性を抑制することできる。その結果、バックアップＲＡＭ５の信頼性を高めることができる。
【００３６】
データ破壊が発生している場合に初期化する範囲をデータ記憶ブロック６ａ〜６ｄ毎に規定したテーブルを予め保持するようにしたので、データ記憶ブロック６ａ〜６ｄのうち何れかでデータ破壊が発生していると判定すると、そのテーブルを参照することで、初期化する範囲を特定することができる。
データ破壊が発生していると判定したデータ記憶ブロックのみを初期化する範囲として規定している場合には、データ破壊が発生しているデータ記憶ブロックのみを初期化することで、そのデータ破壊の状態を解消することができ、バックアップＲＡＭ５の信頼性を保証することができる。又、データ破壊が発生しているデータ記憶ブロック以外のデータ記憶ブロックで正規のデータを保持し続けることができる。
【００３７】
データ破壊が発生していると判定したデータ記憶ブロック及び関連するデータ記憶ブロックを初期化する範囲として規定している場合には、データ破壊が発生しているデータ記憶ブロック及び関連するデータ記憶ブロックを初期化することで、そのデータ破壊の状態を解消することができ、バックアップＲＡＭ５の信頼性を保証することができる。又、関連するデータ同士の整合性を保証することができる。
データ記憶ブロックの全体を初期化する範囲として規定している場合には、全てのデータ記憶ブロックを初期化することで、そのデータ破壊の状態を解消することができ、バックアップＲＡＭ５の信頼性を保証することができる。
【００３８】
本発明は、上記した実施形態にのみ限定されるものではなく、以下のように変形又は拡張することができる。
イグニッションがオフからオンに切換ったことを契機とする構成に限らず、例えば予め設定しておいた設定時刻に達したこと等を契機とし、サムチェックの異常検出処理を開始するようにしても良い。
【符号の説明】
【００３９】
図面中、１はマイクロコンピュータ、２はＣＰＵ、５はバックアップＲＡＭ、６ａ〜６ｄはデータ記憶ブロック、７ａ〜７ｃはチェックサム記憶ブロックである。
【図１】
2014225136.tif 000003
【図２】
2014225136.tif 000004
【図３】
2014225136.tif 000005
【図４】
2014225136.tif 000006
【図５】
2014225136.tif 000007
【図６】
2014225136.tif 000008
【図７】
2014225136.tif 000009