(57)【要約】【課題】本構成を有さない場合に比べ、メモリに対する異常データの書込みに対処することができるメモリ制御装置及びメモリ制御プログラムを提供する。【解決手段】生成した識別子をＩＤレジスタ３２に設定し、データバス３０に出力された合成データに含まれる識別子とＩＤレジスタ３２に設定されている識別子が一致する場合は、比較回路３４により出力された、ＬレベルのＷＥ信号によりＮＶＭ２０に書込データが書込まれ、記憶される。【選択図】図２
2010146166.tif 000002
【特許請求の範囲】
【請求項１】
メモリに記憶するデータであるかを識別するための識別子を生成する識別子生成手段と、
前記識別子生成手段で生成された前記識別子を記憶する識別子記憶手段と、
前記識別子生成手段で生成された識別子と前記メモリに記憶させるための第１のデータを含む、第２のデータを生成してデータバスに出力する第２データ出力手段と、
前記第２データ出力手段により前記データバスに出力された前記第２のデータに含まれる前記識別子と、前記識別子記憶手段に記憶されている前記識別子とが一致した場合は、前記第２のデータに含まれる前記第１のデータの記憶を許可する許可信号を前記メモリに出力する許可信号出力手段と、
を備えたメモリ制御装置。
【請求項２】
前記許可信号出力手段は、前記第２のデータが、前記識別子記憶手段に記憶されている前記識別子を含まない場合は、前記第２のデータに含まれる前記第１のデータの記憶を禁止する禁止信号を前記メモリに出力する、
請求項１に記載のメモリ制御装置。
【請求項３】
前記許可信号出力手段により、前記禁止信号が前記記憶装置に出力された場合は、前記メモリに対する前記第１のデータの記憶が禁止された場合に予め定められた処理を行う処理手段に通知する通知手段をさらに備えた、
請求項２に記載のメモリ制御装置。
【請求項４】
前記識別子は、第１のデータに対応して予め定められた識別子及び前記メモリに前記第１のデータが記憶される時期を表す識別子の少なくとも一方を含む、
請求項１から請求項３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記第２データ出力手段に接続される前記データバスのビット数が、前記メモリに接続される前記データバスのビット数より多く、前記識別子のビット数が、前記第２データ出力手段に接続される前記データバスのビット数と前記メモリに接続される前記データバスのビット数との差以下である、
請求項１から請求項４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記第２データ出力手段に接続される前記データバスのビット数と前記メモリに接続される前記データバスのビット数とが同一であり、
前記許可信号出力手段は、前記第２のデータが前記メモリに入力される場合は、前記第１のデータ及び前記識別子の記憶を許可する前記許可信号を出力する、
請求項１から請求項４のいずれか１項に記載のメモリ制御装置。
【請求項７】
コンピュータを、請求項１から請求項６のいずれか１項に記載の前記識別子生成手段及び前記第２データ出力手段として機能させるためのメモリ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置及びメモリ制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、情報処理装置に複数備えられた主記憶装置の故障の際に、他主記憶装置がアクセスされた場合は、自主記憶装置内で生成されたアドレスをリードし、データの誤りを検出し、誤りが検出された場合、そのアドレスデータを格納する技術が記載されている。
【０００３】
特許文献２には、補助記憶手段に蓄積記憶された正常値と、半導体メモリに通常の動作電圧以下の電圧を印加して読み出したデータの誤り検出情報と、を比較することでエラーチェックを行うことにより、エラーが発生するセクタを未然に検出する技術及び検出したエラーセクタのデータを更新することでデータを復旧する技術が記載されている。
【０００４】
特許文献３には、すでに書込まれたデータと次に書込まれるデータとが所定の関係を満たす場合のみ書込みを許可し、所定の関係でない場合には、誤り検出信号を出力する技術が記載されている。
【特許文献１】特開平５−００２４９８号公報
【特許文献２】特開２０００−１７３２７６号公報
【特許文献３】特開２００４−２９５６９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、本構成を有さない場合に比べ、メモリに対する異常データの書込みに対処することができるメモリ制御装置及びメモリ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に記載のメモリ制御装置は、メモリに記憶するデータであるかを識別するための識別子を生成する識別子生成手段と、前記識別子生成手段で生成された前記識別子を記憶する識別子記憶手段と、前記識別子生成手段で生成された識別子と前記メモリに記憶させるための第１のデータを含む、第２のデータを生成してデータバスに出力する第２データ出力手段と、前記第２データ出力手段により前記データバスに出力された前記第２のデータに含まれる前記識別子と、前記識別子記憶手段に記憶されている前記識別子とが一致した場合は、前記第２のデータに含まれる前記第１のデータの記憶を許可する許可信号を前記メモリに出力する許可信号出力手段と、を備える。
【０００７】
請求項２に記載のメモリ制御装置は、請求項１に記載のメモリ制御装置において、前記許可信号出力手段は、前記第２のデータが、前記識別子記憶手段に記憶されている前記識別子を含まない場合は、前記第２のデータに含まれる前記第１のデータの記憶を禁止する禁止信号を前記メモリに出力する。
【０００８】
請求項３に記載のメモリ制御装置は、請求項２に記載のメモリ制御装置において、前記許可信号出力手段により、前記禁止信号が前記記憶装置に出力された場合は、前記メモリに対する前記第１のデータの記憶が禁止された場合に予め定められた処理を行う処理手段に通知する通知手段をさらに備える。
【０００９】
請求項４に記載のメモリ制御装置は、請求項１から請求項３のいずれか１項に記載のメモリ制御装置において、前記識別子は、第１のデータに対応して予め定められた識別子及び前記メモリに前記第１のデータが記憶される時期を表す識別子の少なくとも一方を含む。
【００１０】
請求項５に記載のメモリ制御装置は、請求項１から請求項４のいずれか１項に記載のメモリ制御装置において、前記第２データ出力手段に接続される前記データバスのビット数が、前記メモリに接続される前記データバスのビット数より多く、前記識別子のビット数が、前記第２データ出力手段に接続される前記データバスのビット数と前記メモリに接続される前記データバスのビット数との差以下である。
【００１１】
請求項６に記載のメモリ制御装置は、請求項１から請求項４のいずれか１項に記載のメモリ制御装置において、前記第２データ出力手段に接続される前記データバスのビット数と前記メモリに接続される前記データバスのビット数とが同一であり、前記許可信号出力手段は、前記第２のデータが前記メモリに入力される場合は、前記第１のデータ及び前記識別子の記憶を許可する前記許可信号を出力する。
【００１２】
請求項７に記載のメモリ制御プログラムは、コンピュータを、請求項１から請求項６のいずれか１項に記載の前記識別子生成手段及び前記第２データ出力手段として機能させるためのものである。
【発明の効果】
【００１３】
請求項１及び請求項７に記載の本発明によれば、本構成を有さない場合に比べ、メモリに対する異常データの書込みに対処することができる、という効果が得られる。
【００１４】
請求項２に記載の本発明によれば、異常データを記憶しない、という効果が得られる。
【００１５】
請求項３に記載の本発明によれば、本構成を有さない場合に比べ、異常データの書込みの発生に対応することができる、という効果が得られる。
【００１６】
請求項４に記載の本発明によれば、第１のデータに対応して予め定められた識別子及び第１のデータが記憶される時期の少なくとも一方を特定する情報により識別することができる、という効果が得られる。
【００１７】
請求項５に記載の本発明によれば、本構成を有さない場合に比べ、データバスを有効に使用することができる、という効果が得られる。
【００１８】
請求項６に記載の本発明によれば、識別子を記憶することができる、という効果が得られる。
【発明を実施するための最良の形態】
【００１９】
［第１の実施の形態］
メモリに異常値が書込まれるケースとしては、例えば、プログラムの暴走による異常な書込み等、書込み動作は正当であるが、データ自体が不正である場合がある。また、例えば、データバスの故障やノイズによる書込データ化け、素子の不良、制御回路の設計不良や製造不良による誤った制御タイミングでの書込み等、プログラムの動作は正常であるが、書込制御が不良でデータが正しく書込みされない場合がある。さらに、例えば、電源のオン／オフの過渡期の信号不安定に起因する擬似的（意図しない）書込み動作等、ノイズや電源電圧の不具合により、意図しない不正な書込み動作が行われてしまう場合がある。本実施の形態はこれらのような書込み異常に対応するためのものである。
【００２０】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２１】
なお、本実施の形態では、メモリ素子の具体的一例として、ＥＥＰＲＯＭ、ＦｅＲＡＭ等のＮＶＭ（ｎｏｎ  Ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ、不揮発性メモリ）のデータの記憶（書込み）を制御する場合について説明する。
【００２２】
まず、本実施の形態のメモリ制御装置１０の構成について詳細に説明する。図１は、本実施の形態に係るメモリ制御装置１０の概略構成の一例を示す機能ブロック図である。本実施の形態のメモリ制御装置１０は、プロセッサ１２、メモリコントローラ１４、及びシステム時計１６を備えて構成されている。プロセッサ１２、メモリコントローラ１４、及びシステム時計１６は、コントロールバスやデータバス等のバス１８を介して互いに情報等の授受が可能に接続されている。
【００２３】
プロセッサ１２は、ＣＰＵ２２、ＲＯＭ２４、ＲＡＭ２７、及びＨＤＤ２８を含んで構成されている。ＣＰＵ２２では、詳細を後述する書込制御処理が実行され、プロセッサ１２のＯＳ（図示省略）が提供するＮＶＭ書込みのシステム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］がコールされて実行される。当該書込制御処理の制御プログラム２６は、記録媒体としてのＲＯＭ２４に記憶されている。なお、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体２９に記録されている制御プログラム２６を、ＨＤＤ等にインストールし、ＣＰＵ２２に読込まれて実行されるようにしてもよい。ＲＯＭ２４には、制御プログラム２６等の各種プログラムやパラメータ等が記憶されており、ＲＡＭ２７は、ＣＰＵ２２による制御プログラム２６等の各種プログラムの実行時におけるワークエリア等として用いられる。システム時計１６は、メモリ制御装置１０のハードウェアの時計である。
【００２４】
メモリコントローラ１４は、ＣＰＵ２２の指示に従い、メモリ素子（ＮＶＭ）２０のデータの書込み（記憶）を制御するためのものである。メモリコントローラ１４とＮＶＭ２０とは、データバス３０、アドレスバス３６、及び書込信号等の各種信号線（詳細後述）とで接続されている。
【００２５】
本実施の形態に係るメモリコントローラ１４の概略構成の一例の概略構成図を図２に示す。本実施の形態のメモリコントローラ１４は、制御部１５、ＩＤ（識別子）レジスタ３２、比較回路３４、アドレスデコーダ３８、ＮＯＲ回路４０、ＮＡＮＤ回路４２、インバータ４４、及びＮＡＮＤ回路４６を含んで構成されている。制御部１５は、ＣＰＵ２２から出力される各種信号等により、メモリコントローラ１４全体の制御を行うためのものである。ＩＤレジスタ３２は、データバス３０を介して入力された識別子を記憶するためのものである。比較回路３４は、ＩＤレジスタ３２に記憶されている識別子と、データバス３０を介してメモリコントローラ１４から入力された識別子とが一致するか比較し、比較結果に応じた信号を出力するための回路である。アドレスデコーダ３８は、アドレスバス３６を介してメモリコントローラ１４から入力されたアドレス信号をデコードし、データを書込むアドレスを表す選択信号（Ｃｈｉｐ  Ｓｅｌｅｃｔ信号）をＮＶＭ２０に出力するためのものである。
【００２６】
次に、本実施の形態のメモリ制御装置１０による、ＮＶＭ２０の制御（書込制御）について詳細に説明する。
（メイン処理）
まず、本実施の形態の書込制御処理におけるメイン処理について説明する。図３は、本実施の形態のメモリ制御装置１０のＣＰＵ２２で実行される書込み制御処理におけるメイン処理の一例を示すフローチャートである。
【００２７】
まず、ステップ１００では、詳細を後述する識別子生成処理により、識別子を生成し、次のステップ１０２では、詳細を後述する書込開始処理により、ＮＶＭ２０にデータの書込みを開始するための処理を行い、次のステップ１０４では、詳細を後述する書込み指示処理により、ＮＶＭ２０に、書込みデータの書込みを指示する。当該処理によりＮＶＭ２０は、データバス３０を介して入力された書込みデータを、アドレスバス３６を介して入力されたアドレスに書込み、記憶する。
【００２８】
次のステップ１０６では、書込エラーが発生したか否か判断する。ＮＡＮＤ回路４６から出力され、制御部１５を介してプロセッサ１２に入力されたＷｒｉｔｅ  Ｅｒｒｏｒ信号に基づいて書込エラーが発生したか否か判断する（詳細後述）。書込エラーが発生したと判断した場合は肯定されて、ステップ１０８へ進み、詳細を後述するエラー処理を行った後、ステップ１１０へ進む。一方、書込エラーが発生していないと判断した場合は否定されて、ステップ１１０へ進む。
【００２９】
ステップ１１０では、本処理を終了するか否か判断する。メモリに書込むデータがまだ残っている場合等は否定されてステップ１０４に戻り、本処理を繰り返す。一方、全ての書込データの書込を指示した場合等は肯定されて、本処理を終了する。
（識別子生成処理）
次に、識別子生成処理（図３のステップ１００）について詳細に説明する。図４は、本実施の形態の識別子生成処理の一例を示すフローチャートである。
【００３０】
ステップ２００では、時刻情報を取得する。本実施の形態では、システム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］がシステム立上げ時の初期化において、システム時計１６から時刻情報を取得する。
【００３１】
次のステップ２０２では、取得した時刻情報に基づいて、識別子を生成する。なお、本実施の形態では、具体的一例として、データバス３０のデータ幅が３２ビット及び書込データ（メモリ素子）のデータ幅が１６ビットの場合であり、識別子がデータバス３０のデータ幅と書込データのデータ幅の差である１６ビットである場合について詳細に説明する。識別子及び書込データの具体的一例を図５に示す。本ステップでは、具体的一例として「００Ｅ５ｈ」という識別子が生成される。
【００３２】
次のステップ２０４では、ＩＤレジスタ３２に生成された識別子を設定する。
【００３３】
このように本処理により、ＮＶＭ２０に書込むべきデータか否かを識別するための識別子が、システム時計１６より取得した時刻情報に基づいて生成され、ＩＤレジスタ３２に設定される。
（書込開始処理）
次に、書込開始処理（図３のステップ１０２）について詳細に説明する。図６は、本実施の形態の書込処理の一例を示すフローチャートである。
【００３４】
ステップ３００では、ＮＶＭ２０に書込む（記憶させる）、書込データを準備する。本実施の形態では、システム起動後、ＮＶＭ２０に書込む書込データを、例えば、ＲＡＭ２７に読み出す。書込データの具体的一例としては図５に示すように、「９Ａ３Ｆｈ」という１６ビットのデータが挙げられる。
【００３５】
次のステップ３０２では、システム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］をコールした後、本処理を終了する。
【００３６】
このように本処理により、ＮＶＭ２０に書込む書込データが準備され、書込データを書込ませるためのシステム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］がコールされる。
（書込指示処理）
次に、書込指示処理（図３のステップ１０４）について詳細に説明する。図７は、本実施の形態の書込指示処理の一例を示すフローチャートである。
【００３７】
ステップ４００では、書込データを取得する。本実施の形態では、上記書込開始処理によりコールされたシステム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］に、１６ビットの書込データが引数として渡される。
【００３８】
次のステップ４０２では、識別子と書込データとを合成する。本実施の形態では、システム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］が書込データの上位に識別子を付加して３２ビット長のデータ（図５参照）を生成する。
【００３９】
次のステップ４０４では、ＮＶＭ２０に書込データを指定アドレスに書込むように指示した後、本処理を終了する。本実施の形態では、上記書込指示処理により識別子と書込データとを含む合成されたデータ（合成データ）をデータバス３０に出力し、書込データを書込むアドレスを表す選択信号をアドレスバス３６に出力する。また、書込データを書込むためのその他の信号を出力する。
【００４０】
当該処理により、ＮＶＭ２０にデータバス３０を介して入力された書込データを指定されたアドレスに書込み、記憶させるための動作について詳細に説明する。図８は、本実施の形態のメモリ制御装置１０によるＮＶＭ２０へのデータの書込及び読出しの具体的一例を示したタイミングチャートである。
【００４１】
ＮＶＭ２０に書込データ（Ｄａｔａ）を書込ませる準備として、ＬレベルのＡｄｄｒｅｓｓ  Ｓｔｒｏｂｅ信号（ＡＳ信号）、Ｒ／Ｗ信号及びＤａｔａＳｔｒｏｂｅ信号（ＤＳ信号）が出力される。これにより、ＮＯＲ回路４０からはＨレベルの信号が出力される。
【００４２】
一方、データバス３０に出力された合成データに含まれる識別子は比較回路３４に入力され、書込データはＮＶＭ２０に入力される。比較回路３４に入力された識別子は、ＩＤレジスタ３２に設定されている識別子と比較される。
【００４３】
合成データに含まれる識別子とＩＤレジスタ３２に設定されている識別子とが一致する場合（正常時）は、ＨレベルのＭａｔｃｈ信号が出力される。
【００４４】
ＮＯＲ回路４０から出力されたＨレベル信号と、ＨレベルのＭａｔｃｈ信号がＮＡＮＤ回路４２に入力されると、ＮＡＮＤ回路４２からはＬレベルのＷｒｉｔｅ  Ｅｎａｂｌｅ信号（ＷＥ信号）が出力され、ＮＶＭ２０に入力される。ＮＶＭ２０は、ＬレベルのＷＥ信号が入力されると、書込データを指定されたアドレスに書込み、記憶する。
【００４５】
また、ＮＯＲ回路４０から出力されたＨレベル信号と、ＨレベルのＭａｔｃｈ信号がインバータ４４でレベルが反転されてＬレベルとなった信号と、がＮＡＮＤ回路４６に入力されると、ＮＡＮＤ回路４６からはＨレベルのＷｒｉｔｅ  Ｅｒｒｏｒ信号が出力され、制御部１５を介してＣＰＵ２２に入力される。
【００４６】
一方、合成データに含まれる識別子とＩＤレジスタ３２に設定されている識別子とが一致しない場合は（不正時）、ＬレベルのＭａｔｃｈ信号が出力される。
【００４７】
ＮＯＲ回路４０から出力されたＨレベル信号と、ＬレベルのＭａｔｃｈ信号がＮＡＮＤ回路４２に入力されると、ＮＡＮＤ回路４２からはＨレベルのＷｒｉｔｅ  Ｅｎａｂｌｅ信号（ＷＥ信号）が出力され、ＮＶＭ２０に入力される。ＮＶＭ２０は、ＨレベルのＷＥ信号が入力される場合は、書込データを書込まない。
【００４８】
また、ＮＯＲ回路４０から出力されたＨレベル信号と、ＬレベルのＭａｔｃｈ信号がインバータ４４でレベルが反転されてＨレベルとなった信号と、がＮＡＮＤ回路４６に入力されると、ＮＡＮＤ回路４６からはＬレベルのＷｒｉｔｅ  Ｅｒｒｏｒ信号が出力され、制御部１５を介してＣＰＵ２２に入力される。本実施の形態では、ＣＰＵ２２にＬレベルのＷｒｉｔｅ  Ｅｒｒｏｒ信号が入力されると、エラーが発生したと判断（図３ステップ１０６で肯定判断）しエラー処理（図３のステップ１０８）を実行する。
【００４９】
このように本処理により、システム関数［ｎｖｍｗｒｉｔｅ（Ａｄｒ．Ｄａｔａ）］が書込データと識別子とを合成した合成データを生成し、合成データをデータバス３０に、アドレス信号をアドレスバス３６に出力する。合成データに含まれる識別子とＩＤレジスタ３２に含まれる識別子とが一致する場合は、ＮＶＭ２０に合成データに含まれる書込データ（ＤＡＴＡ）が書込まれ、記憶される。合成データに含まれる識別子とＩＤレジスタ３２に含まれる識別子とが一致しない場合は書込データが書込まれず、ＣＰＵ２２にＷｒｉｔｅ  Ｅｒｒｏｒ信号が出力される。
（エラー処理）
次に、エラー処理（図３のステップ１０８）について詳細に説明する。図９は、本実施の形態のエラー処理の一例を示すフローチャートである。
【００５０】
ステップ５００では、プログラムカウンタ値等の実行情報を退避させ、次のステップ５０２では、ログファイルを生成する。本実施の形態では、Ｗｒｉｔｅ  Ｅｒｒｏｒ信号が入力されたときのプログラムカウンタ値等の実行情報がログファイルに記録される。
【００５１】
次のステップ５０４では、システムコンソール（図示省略）にエラーが発生したことを通知し、次のステップ５０６では、システムが正常動作に復帰するためのリカバリ処理を行った後、本処理を終了する。
【００５２】
このように本処理では、書込エラーが発生すると、ＣＰＵ２２は、予め定められたエラー処理により、実行情報をログファイルに記録し、さらに、リカバリ処理を行う。
【００５３】
なお、本実施の形態では、ＮＶＭ２０に書込データの書込処理を行った時刻情報をシステム時計１６から取得し、これにより識別子を生成しているがこれに限らず、例えば、ＮＶＭ２０に書き込ませるプログラムデータのプログラム開発時に固定的に規定した書込プロセス固有の値等、書込データに対して予め定められた識別子でもよい。また、時刻情報及び予め定められた識別子の両方であってもよい。
【００５４】
また、本実施の形態では、書込データのみがＮＶＭ２０に書込まれる場合について詳細に説明したがこれに限らず、書込データと共に識別子を書込むようにしてもよい。この場合は、ＮＶＭ２０には合成データが入力されるため、ＮＶＭ２０のデータ幅が合成データのデータ幅よりも多くなる。
【００５５】
また、ＮＶＭ２０のデータ幅と、データバス３０のデータ幅とが同じ場合、データバス３０とは別に識別子を入出力するための専用信号線を設け、専用線により識別子を制御部１５からＩＤレジスタ３２及び比較回路３４に出力するようにすればよい。
【００５６】
また、本実施の形態では、識別子のビット数を、データバス３０のビット幅とＮＶＭ２０のデータ幅との差としているが、これに限らず、差以下のビット数であればよい。
【００５７】
また、本実施の形態では、ＮＶＭ２０データの書込み、記憶を制御しているがこれに限らず、例えば不揮発性メモリ以外のメモリ等、その他のメモリであってもよい。なお、システム動作に対して重要なプログラムコードやパラメータを保持することが多いため、本実施の形態のように不揮発性メモリに対して行うことがより好ましい。
【００５８】
以上説明したように、本実施の形態では、生成した識別子をＩＤレジスタ３２に設定し、データバス３０に出力された合成データに含まれる識別子とＩＤレジスタ３２に設定されている識別子が一致する場合は、比較回路３４により出力された、ＬレベルのＷＥ信号によりＮＶＭ２０に書込データが書込まれ、記憶される。
【００５９】
このように、本実施の形態では、不正書込み等、書込み異常が発生した場合にＮＶＭ２０に格納されたデータを保護すると共に、異常が発生したことをシステムに認識させることが可能となる。これにより、適切な処理、またはデバッグ等を行うことが可能となる。また、本実施の形態では、システム関数が戻り値（Ｒｅｔｕｒｎ  Ｖａｌｕｅ）等で異常の発生を監視する必要がないため、正常時の書込み処理性能を阻害することなく、さらに、不正書込み等の異常の発生時には、ハードウエア信号でいち早くシステムに通知するため、システム実行環境を保存し、デバッグが容易に行える。
【００６０】
［第２の実施の形態］
第１の実施の形態では、識別子が一致するとＮＶＭ２０にデータが書込まれる。例えば、プログラムの制御ミスによるデータ異常等によるプログラムの本来意図しない偽データの書込み等、プログラムの不具合等により、データ自体が不備なまま、正しいプロセスで書込まれる場合がある。
【００６１】
本実施の形態では、このような場合に対応するための一例として、比較回路３４により識別子を比較し、エラー信号及び書込み信号を生成する処理のその他の例について説明する。
【００６２】
本実施の形態の識別子及び書込データの具体的一例を図１０に示す。本実施の形態の識別子は、時刻情報とプロセスＩＤとを含んでいる。本実施の形態では、時刻情報及びプロセスＩＤのそれぞれをＩＤレジスタ３２に設定する。
【００６３】
ＩＤレジスタ３２に設定された時刻情報を示す識別子及びプロセスＩＤを示す識別子と、合成データに含まれる識別子とが一致するかによりエラー信号及び書込信号を生成する。本実施の形態のエラー信号及び書込信号の具体的例を図１１に示す。なお、図１１におけるエラー信号生成とは、Ｌレベルの信号の生成、書込信号生成とは、Ｌレベルの信号を示している。図１１に示すように、時刻情報及びプロセスＩＤのいずれもが一致しないとエラー信号が生成されかつ書込信号が生成されない完全一致の判定と、時刻情報及びプロセスＩＤの少なくとも一方が一致しない場合は、エラー信号が生成され、少なくとも一方が一致する場合に書込み信号が生成される部分一致の判定のいずれをとることも可能である。部分一致の判定を実施する場合、書込信号を生成する部分の実施例は、図１２に示すようにデータの部分一致によりＨレベルを出力する信号Ｐａｒｔｉａｌ  Ｍａｔｃｈを比較回路３４からＮＡＮＤ回路４２に入力する事で実施可能となる。
【００６４】
このようにエラー信号により異常データの書き込みを検知し、さらに、時刻情報及びプロセスＩＤの識別子を判別することにより、正常な書込みプロセス以外のプロセスにより書込みが行われたか、正常なプロセスであるが予期しない時期に書込みが行われたかの判定が可能となる。
【００６５】
なお、識別子の一部の情報のみで判定を行うようにしてもよい。
【００６６】
また、時刻情報の判定は書込時期を指定する特定時刻指定であっても、ＮＶＭ２０に書込みの可能な範囲期間の指定であってもよい。
【００６７】
さらに、識別子及び判定対象の合成データにその他のシステム情報が含まれてもよい。また、一部のみで識別子を構成してもよい。識別子の構成は、ビット構成には依存しない。
【００６８】
以上説明したように本実施の形態では、ＩＤレジスタ３２に時刻情報及びプロセスＩＤの識別子がそれぞれ設定されており、それぞれについて一致するか否かにより、エラー信号及び書込信号を生成する。これにより、正常な書込みプロセス以外のプロセスにより書込みが行われたか、正常なプロセスであるが予期しない時期に書込みが行われたかの判定が可能になる。
【００６９】
［第３の実施の形態］
本実施の形態では、書込まれた不備なデータを読出し時に検出することで、異常データの書込みに対処する場合について詳細に説明する。
【００７０】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、第１の実施の形態と同一部分には同一符号を付し、詳細な説明を省略する。本実施の形態のメモリ制御装置の概略構成は第１の実施の形態（図１参照）と同様のため、詳細な説明を省略する。
【００７１】
本実施の形態に係るメモリコントローラの概略構成の一例を示す概略構成図を図１３に示す。図１３に示すように、本実施の形態では、ＮＶＭ２１は、データ幅が３２ビットであり、データバス３０により入力された書込みデータ及び識別子を記憶する。
【００７２】
ＮＶＭ２１のデータの書込み、記憶処理（図３参照）は、第１の実施の形態と同様であるため、詳細な説明を省略する。ＩＤレジスタ３２に設定されている識別子と合成データに含まれる識別子とが一致しており、プログラムのトラブルで書込むべき書込みデータに異常があった場合は、識別子が一致するため、書込みエラー信号が生成されず、書込み時にエラー処理（図９参照）が行われずにＮＶＭ２１に、異常がある書込みデータ及び識別子が記憶される。本実施の形態では、このような場合にＮＶＭ２１に記憶されている書込み時の情報（識別子）により異常データの書込みに対応する。なお、識別子が全く一致しない場合でもＮＶＭ２１にデータと識別子とを常時書込みし、ＮＶＭ２１に記憶されている書込み時の情報（識別子）により異常データの書込みに対応することも可能である。その場合の実施例の構成としては、図１３においてＮＡＮＤ回路４２に入力されている比較回路３４の出力のＰａｒｔｉａｌ  Ｍａｔｃｈ信号を常時Ｈレベルにすることにより実現可能である。
【００７３】
図１４に、本実施の形態のリカバリ処理のフローチャートの具体的一例を示す。本処理は、システム上のエラーが発生した場合、異常データの書込みの有無を判断するために実行される。
【００７４】
ステップ６００では、ＮＶＭ２１に書込まれている全データを読込む。次のステップ６０２では、データ範囲をチェックする。本実施の形態では、データ値自体が正常範囲を逸脱しているか否かをチェックする。
【００７５】
次のステップ６０４では、プロセスＩＤをチェックし、次のステップ６０６では、時刻情報をチェックする。識別子から復元した書込時期またはプロセスＩＤが異常値である場合は、データが異常であると判断する。
【００７６】
次のステップ６０８では、異常が有るか否かを判断する。異常が無い場合は本処理を終了する。一方、異常が有る場合は肯定されて、ステップ６１０へ進む。ステップ６１０では、識別子から書込時期またはプロセスＩＤを特定する。本実施の形態では、チェックにより、データ値自体が異常と判断された場合は書込み時期またはプロセスＩＤを特定する。なお、両方の識別子を含む場合は、書込時期及びプロセスＩＤの両方を特定する。
【００７７】
次のステップ６１２では、エラー情報を生成する。本実施の形態では、上記により異常を判断した場合はその旨をエラー情報として生成し、ＣＰＵ２２に出力する。
【００７８】
次のステップ６１４では、エラーデータを修復した後、本処理を終了する。なお、本実施の形態ではデータを初期値等に復元することで、エラーデータの修復を行う。
【００７９】
なお、本実施の形態では、当該リカバリ処理は、システム上のエラーの発生時に行っているがこれに限らず、省エネ復帰を含むシステム立ち上げ時に実施してもよく、また、システムが正常動作中の待機中に実施してもよい。
【００８０】
以上説明したように、本実施の形態では、ＮＶＭ２１に書込みデータと共に識別子を記憶しているため、読み出した識別子により、異常の有無等が判断できる。
【図面の簡単な説明】
【００８１】
【図１】本発明の第１の実施の形態に係るメモリ制御装置の概略構成の一例を示す機能ブロック図である。
【図２】本発明の第１の実施の形態に係るメモリコントローラの概略構成の一例を示す概略構成図である。
【図３】本発明の第１の実施の形態に係るメモリ制御装置１０で実行される書込制御処理におけるメイン処理の一例を示すフローチャートである。
【図４】本発明の第１の実施の形態に係る識別子生成処理の一例を示すフローチャートである。
【図５】本発明の第１の実施の形態に係る識別子及び書込データの具体的一例を説明するための説明図である。
【図６】本発明の第１の実施の形態に係る書込開始処理の一例を示すフローチャートである。
【図７】本発明の第１の実施の形態に係る書込指示処理の一例を示すフローチャートである。
【図８】本発明の第１の実施の形態に係るメモリ制御装置によるＮＶＭへのデータの書込、及び読出しの具体的一例を示したタイミングチャートである。
【図９】本発明の第１の実施の形態に係るエラー処理の一例を示すフローチャートである。
【図１０】本発明の第２の実施の形態に係る識別子及び書込データの具体的一例を説明するための説明図である。
【図１１】本発明の第２の実施の形態に係るエラー信号及び書込信号の生成の具体的例を説明するための説明図である。
【図１２】本発明の第２の実施の形態に係る書込信号の生成の具体的例を説明するための説明図である。
【図１３】本発明の第３の実施の形態に係るメモリコントローラの概略構成の一例を示す概略構成図である。
【図１４】本発明の第３の実施の形態に係るリカバリ処理の一例を示すフローチャートである。
【符号の説明】
【００８２】
１０  メモリ制御装置
１２  プロセッサ
２２  ＣＰＵ
１４  メモリコントローラ
１６  システム時計
２０  メモリ素子（ＮＶＭ）
３０  データバス
３２  ＩＤレジスタ
３４  比較回路
４０  ＮＯＲ回路
４２、４６  ＮＡＮＤ回路
【図１】
2010146166.tif 000003
【図２】
2010146166.tif 000004
【図３】
2010146166.tif 000005
【図４】
2010146166.tif 000006
【図５】
2010146166.tif 000007
【図６】
2010146166.tif 000008
【図７】
2010146166.tif 000009
【図８】
2010146166.tif 000010
【図９】
2010146166.tif 000011
【図１０】
2010146166.tif 000012
【図１１】
2010146166.tif 000013
【図１２】
2010146166.tif 000014
【図１３】
2010146166.tif 000015
【図１４】
2010146166.tif 000016