(57)【要約】【課題】たとえメモリ書込途中に電源途絶が生じたとしても、不揮発性メモリ上の全セクタ領域のデータや、未書込みデータの正当性を保証することができる情報処理装置を提供する。【解決手段】情報処理装置１００は、装置全体を制御する制御部１０２と、プログラム等を記憶するＲＯＭ１０３と、制御部１０２が処理を実行する上でデータを一時的に記憶するＲＡＭ１０４と、主にアプリケーションプログラムが利用し、データの保管を行うための不揮発性メモリ１０５と、装置全体への電力供給を行う電源１０１と、を備える。制御部１０２は、データの保証を行うために必要な署名コードを生成する署名コード生成手段１０２１を有し、またセンタ等(図示せず)から通信部１０６を介して受信したアプリケーションプログラムを実行可能に構成される。【選択図】図１
2010117956.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムにより不揮発性メモリ上にデータ領域を確保する情報処理装置において、
不揮発性メモリ全体が、セクタ情報とセクタ領域に区分され、前記セクタ領域へのデータの読書きを前記セクタ情報の各フィールドに記述された情報に基づいて前記アプリケーションプログラムが管理するメモリ管理手段を備え、
前記メモリ管理手段は、
全セクタ領域のデータから第１署名コードを生成すると共に、前記セクタ領域の未書込み領域から第２署名コードを生成する署名コード生成手段を有し、
該署名コード生成手段が生成した前記第１署名コードおよび前記第２署名コードを前記セクタ情報の所定のフィールドに格納してデータの正当性の保証に利用する、
ことを特徴とする情報処理装置。
【請求項２】
前記セクタ情報は、前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第１署名コードを格納する第１署名コードフィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メモリ管理手段は、
前記セクタ情報に格納された第１署名コードと、前記不揮発性メモリにアクセスする時に全セクタ領域のデータから生成する第３署名コードとを比較する第１の比較手段を有し、
該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある全セクタ領域のデータを保証する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記メモリ管理手段は、
前記セクタ情報に格納された第２署名コードと、前記未書込み領域へアクセスする時に生成する第４署名コードとを比較する第２の比較手段を有し、
該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある前記未書込み領域のデータの正当性を保証する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記セクタ情報は、前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有し、
前記メモリ管理手段は、
前記未書込み領域へアクセスする時、前記状態フラグが前記セクタ領域への書込中の状態を示している場合には、前記セクタ情報に格納されている書込みアドレスと書込みバイト数を読出して書込み範囲のアドレスを算出すると共に未書込み領域に対してアクセスして今回読取る範囲のアドレスを算出して、読取範囲と書込範囲の重複がないかを判定するアドレス重複判定手段を有し、
該アドレス重複判定手段によりアドレスの重複が無いことを確認して前記未書込み領域へアクセスして前記未書込み領域から第２の署名コードを生成する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
アプリケーションプログラムにより不揮発性メモリ上にデータ領域を確保する情報処理装置において、
不揮発性メモリ全体が、セクタ単位の領域に分割され、該セクタ単位がセクタ情報とセクタ領域に区分され、前記セクタ単位の前記セクタ領域へのデータの読書きを前記セクタ単位の前記セクタ情報の各フィールドに記述された情報に基づいて前記アプリケーションプログラムが管理するメモリ管理手段を備え、
前記メモリ管理手段は、
前記セクタ単位の前記セクタ領域のデータから第１署名コードを生成すると共に前記セクタ単位の前記セクタ領域の未書込み領域から第２署名コードを生成するセクタ単位署名コード生成手段を有し、
該セクタ単位署名コード生成手段が生成した前記第１署名コードおよび前記第２署名コードを前記セクタ単位の前記セクタ情報の所定のフィールドに格納してデータの正当性の保証に利用する、
ことを特徴とする情報処理装置。
【請求項７】
前記セクタ単位の前記セクタ情報は、前記セクタ単位の前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第１署名コードを格納する第１署名コードフィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記メモリ管理手段は、
前記セクタ単位の前記セクタ情報に格納された第１署名コードと、前記不揮発性メモリにアクセスする時に前記セクタ単位の前記セクタ領域のデータから生成する第３署名コードとを比較する第１の比較手段を有し、
該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある前記セクタ単位の前記セクタ領域のデータを保証する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項９】
前記メモリ管理手段は、
前記セクタ単位の前記セクタ情報に格納された第２署名コードと、前記セクタ単位の前記セクタ領域の前記未書込み領域へアクセスする時に生成する第４署名コードとを比較する第２の比較手段を有し、
該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある前記セクタ単位の前記セクタ領域の前記未書込み領域のデータの正当性を保証する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記セクタ単位の前記セクタ情報は、前記セクタ単位の前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有し、
前記メモリ管理手段は、
前記セクタ単位の前記セクタ領域の前記未書込み領域へアクセスする時、前記状態フラグが前記セクタ領域への書込中の状態を示している場合には、前記セクタ単位の前記セクタ情報に格納されている書込みアドレスと書込みバイト数を読出して書込み範囲のアドレスを算出すると共に前記セクタ単位の前記セクタ領域の前記未書込み領域に対してアクセスして今回読取る範囲のアドレスを算出して、読取範囲と書込範囲の重複がないかを判定するアドレス重複判定手段を有し、
該アドレス重複判定手段によりアドレスの重複が無いことを確認して前記セクタ単位の前記セクタ領域の前記未書込み領域へアクセスして前記セクタ単位の前記セクタ領域の前記未書込み領域から第２の署名コードを生成する、
ことを特徴とする請求項９に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムにより不揮発性メモリ上にデータ領域を確保する情報処理装置に関し、特に、不揮発性メモリ上の全セクタ領域のデータや、未書込みデータの正当性を保証することができる情報処理装置に関するものである。
【背景技術】
【０００２】
近年、アプリケーションプログラムが動作する携帯型あるいは据え置き型の情報処理装置は、アプリケーションプログラムをネットワークを経由してダウンロードする方式や、外部メモリ等からダウンロードする方式を利用し、ダウンロードしたアプリケーションプログラムの制御により、メモリ管理を行うことができる。
【０００３】
このような情報処理装置のメモリ管理では、アプリケーションプログラムが、メモリ管理の制御プログラムを介してデータの読書きをしている。さらに、メモリ管理の制御プログラムは、不揮発性メモリ全体を、セクタ単位の領域に分割して管理し、セクタ内へ書込んだ後のデータを保証する署名コードを生成して記憶し、読出す時にデータと対応づける署名コードをチェックする手段を用いて、データの正当性を保証している。しかし、書込みをしている途中で、停電により装置への電源供給が途絶えてしまうと、データと対応づける署名コードは、電源供給を再開した後に生成した署名コードと一致せず、全セクタのデータを保証することができない。
【０００４】
これら課題の第１の解決策として、不揮発性メモリ上に署名コードを含む全セクタのデータを退避して書込みを行うようにすると、書込中に電源供給が途絶えても、電源供給が再開されたタイミングで、あらかじめ退避してあるデータを不揮発性メモリに戻し、データを保証することができる。
【０００５】
また、第２の解決策として、メモリ内部にデータを記憶しておくデータブロックと予備ブロックを設けておき、書込む時に、予備ブロックに書込みをしてから、データブロックに対する論理アドレスを、予備ブロックに対する論理アドレスに割付けることで、書換えを行う方法がある（特許文献１参照）。この方法でも、書込み前のデータを不揮発性メモリ上のデータブロックに残しているので、書込み中に電源供給が途絶えても、データを保証することができる。
【特許文献１】特開２００３−１７８２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した第１の解決策は、データ領域とデータを退避するための予備領域の、２つ以上のメモリ領域を必要とするので、メモリデバイスのパッケージを拡大させることになり、情報処理装置自体のサイズを拡大させる。
【０００７】
また第２の解決策は、書込み前データを復旧させる処理を効率化する有効な方法であるが、退避の必要がない未書込み領域のメモリ資源を必要とするために、メモリ資源を確保することが困難な装置には不向きである。
【０００８】
さらに、不揮発性メモリ上に在るデータの信頼性を向上するには、全データの正当性を保証することも求められる。
そこで本発明の目的は、たとえメモリ書込途中に電源途絶が生じたとしても、不揮発性メモリ上の全セクタ領域のデータや、未書込みデータの正当性を保証することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、アプリケーションプログラムにより不揮発性メモリ上にデータ領域を確保する情報処理装置において、不揮発性メモリ全体が、セクタ情報とセクタ領域に区分され、前記セクタ領域へのデータの読書きを前記セクタ情報の各フィールドに記述された情報に基づいて前記アプリケーションプログラムが管理するメモリ管理手段を備え、前記メモリ管理手段は、全セクタ領域のデータから第１署名コードを生成すると共に前記セクタ領域の未書込み領域から第２署名コードを生成する署名コード生成手段を有し、該署名コード生成手段が生成した前記第１署名コードおよび前記第２署名コードを前記セクタ情報の所定のフィールドに格納してデータの正当性の保証に利用する、ことを特徴とする。
【００１０】
また前記セクタ情報は、前記セクタ領域への書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第１署名コードを格納する第１署名コードフィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有する、ことを特徴とする。
【００１１】
また前記メモリ管理手段は、前記セクタ情報に格納された第１署名コードと、前記不揮発性メモリにアクセスする時に全セクタ領域のデータから生成する第３署名コードとを比較する第１の比較手段を有し、該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある全セクタ領域のデータを保証する、ことを特徴とする。
【００１２】
また前記メモリ管理手段は、前記セクタ情報に格納された第２署名コードと、前記未書込み領域へアクセスする時に生成する第４署名コードとを比較する第２の比較手段を有し、該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある前記未書込み領域のデータの正当性を保証する、ことを特徴とする。
【００１３】
また上記において、前記セクタ情報は、前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有し、前記メモリ管理手段は、前記未書込み領域へアクセスする時、前記セクタ領域への書込中の状態を示している場合には、前記セクタ情報に格納されている書込みアドレスと書込みバイト数を読出して書込み範囲のアドレスを算出すると共に未書込み領域に対してアクセスして今回読取る範囲のアドレスを算出して、読取範囲と書込範囲の重複がないかを判定するアドレス重複判定手段を有し、該アドレス重複判定手段によりアドレスの重複が無いことを確認して前記未書込み領域へアクセスして前記未書込み領域から第２の署名コードを生成する、ことを特徴とする。
【００１４】
また本発明は、アプリケーションプログラムにより不揮発性メモリ上にデータ領域を確保する情報処理装置において、不揮発性メモリ全体が、セクタ単位の領域に分割され、該セクタ単位がセクタ情報とセクタ領域に区分され、前記セクタ単位の前記セクタ領域へのデータの読書きを前記セクタ単位の前記セクタ情報の各フィールドに記述された情報に基づいて前記アプリケーションプログラムが管理するメモリ管理手段を備え、前記メモリ管理手段は、前記セクタ単位の前記セクタ領域のデータから第１署名コードを生成すると共に前記セクタ単位の前記セクタ領域の未書込み領域から第２署名コードを生成するセクタ単位署名コード生成手段を有し、該セクタ単位署名コード生成手段が生成した前記第１署名コードおよび前記第２署名コードを前記セクタ単位の前記セクタ情報の所定のフィールドに格納してデータの正当性の保証に利用する、ことを特徴とする。
【００１５】
また前記セクタ単位の前記セクタ情報は、前記セクタ単位の前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第１署名コードを格納する第１署名コードフィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有する、ことを特徴とする。
【００１６】
また前記メモリ管理手段は、前記セクタ単位の前記セクタ情報に格納された第１署名コードと、前記不揮発性メモリにアクセスする時に前記セクタ単位の前記セクタ領域のデータから生成する第３署名コードとを比較する第１の比較手段を有し、該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある前記セクタ単位の前記セクタ領域のデータを保証する、ことを特徴とする。
【００１７】
また前記メモリ管理手段は、前記セクタ単位の前記セクタ情報に格納された第２署名コードと、前記セクタ単位の前記セクタ領域の前記未書込み領域へアクセスする時に生成する第４署名コードとを比較する第２の比較手段を有し、該比較手段の比較結果で両者の署名コードが一致する場合には、前記不揮発性メモリ上にある前記セクタ単位の前記セクタ領域の前記未書込み領域のデータの正当性を保証する、ことを特徴とする。
【００１８】
また上記において、前記セクタ単位の前記セクタ情報は、前記セクタ単位の前記セクタ領域へ書込中か書込完了かのいずれかの状態を示す状態フラグフィールドと、書込アドレスフィールドと、書込バイト数フィールドと、前記第２署名コードを格納する第２署名コードフィールドとを有し、前記メモリ管理手段は、前記セクタ単位の前記セクタ領域の前記未書込み領域へアクセスする時、前記状態フラグが前記セクタ領域への書込中の状態を示している場合には、前記セクタ単位の前記セクタ情報に格納されている書込みアドレスと書込みバイト数を読出して書込み範囲のアドレスを算出すると共に前記セクタ単位の前記セクタ領域の前記未書込み領域に対してアクセスして今回読取る範囲のアドレスを算出して、読取範囲と書込範囲の重複がないかを判定するアドレス重複判定手段を有し、該アドレス重複判定手段によりアドレスの重複が無いことを確認して前記セクタ単位の前記セクタ領域の前記未書込み領域へアクセスして前記セクタ単位の前記セクタ領域の前記未書込み領域から第２の署名コードを生成する、ことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、アプリケーションプログラムにより不揮発性メモリ上に確保されたデータ記憶領域を効率的に管理しかつ不揮発性メモリの全セクタ領域のデータや、未書込みデータの正当性の保証を行うことができる。
【００２０】
また本発明によれば、電源途絶が基で状態フラグが書込み途中の場合は、未書込み領域のデータに基づいて生成する第２署名コードとセクタ情報の第２署名コードフィールドにある第２署名コードとを照合し、また状態フラグが書込み途中以外の場合は、全セクタ領域のデータに基づいて生成する第１署名コードとセクタ情報の第１署名コードフィールドにある第１署名コードとを照合して、それぞれ照合結果の一致を得ることで不揮発性メモリに在るデータの正当性を保証することができる。
【００２１】
また本発明によれば、１つのセクタ情報内のデータに対応した署名コードを生成し管理するので、セクタ領域ごとにデータ保証が可能である。
また本発明によれば、複数のセクタにわたって書込みを行う場合においても、書込み対象外のデータを保証することが可能となる。
【００２２】
また本発明によれば、正当性が保証されたデータをアプリケーションに提供することで、処理の信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００２３】
以下、発明を実施するための最良の形態について図面を参照しながら説明する。
図１は、本発明の実施形態に係る情報処理装置の構成を示す図である。図１において、本発明の実施形態に係る情報処理装置１００は、装置全体を制御する制御部１０２と、センタ等(図示せず)からアプリケーションプログラムを受信する通信部１０６と、ＯＳ（オペレーティングシステム）やハードウエア制御プログラム等を記憶するＲＯＭ（Read-only Memory）１０３と、制御部１０２が処理を実行する上でデータを一時的に記憶するＲＡＭ（Random Access Memory）１０４と、主にアプリケーションプログラムが利用し、データの保管を行うための不揮発性メモリ１０５と、装置全体への電力供給を行う電源１０１と、を備えて構成される。また制御部１０２は、データの保証を行うために必要な署名コードを生成する署名コード生成手段１０２１を有し、またセンタ等(図示せず)から通信部１０６を介して受信したアプリケーションプログラムを実行可能に構成される。
【００２４】
図２は、図１に示した不揮発性メモリのメモリ構成を示す図である。図２において、不揮発性メモリ２００は、一つのセクタ情報と複数のセクタ領域とで構成されている。そして図示例ではセクタ情報としてセクタ情報A(２０１)が、またセクタ領域として不揮発性メモリ２００の内部にセクタ領域A〜ｎが確保されている。
【００２５】
セクタ情報A(２０１)は、図示例では、セクタ領域A(２０２)に対してデータの「書込み中」又は「書込み完了」のいずれかの状態を示す状態フラグを格納するフィールド２０３と、アプリケーションプログラムがセクタ領域A(２０２)の書込み対象領域２０９にデータを書込む時に、書込みアドレスとして先頭アドレスを格納するフィールド２０４と、書込みバイト数を格納するフィールド２０５と、書込みが正常終了したときにセクタ全体（セクタ領域Ａ〜ｎ）のデータから署名コード生成手段１０２１により生成した署名コード１を格納するフィールド２０６と、アプリケーションプログラムがセクタ領域A(２０２)の書込み対象領域２０９にデータを書込む前に、書込み対象外の領域２０８のデータから署名コード生成手段１０２１により生成した署名コード２を格納するフィールド２０７と、で構成する。なお、書込み対象領域が複数のセクタ領域に跨る場合については後で詳しく説明する。
【００２６】
ここで用いる署名コード生成手段１０２１は、制御部１０２がＲＯＭ１０３に格納された、ハッシュアルゴリズムを実行するプログラムを用いて署名コードを生成することを想定している。なお、ハッシュアルゴリズムに限らず別なアルゴリズムにより一方向性を有するコードを生成して、署名コードとしても良い。
【００２７】
図３は、本発明の実施形態に係る不揮発性メモリへのデータの書込み方法を説明するフローチャートである。ここでは、本発明の実施形態に係る情報処理装置１００の制御部１０２が、ダウンロードしたアプリケーションプログラムを実行して不揮発性メモリのデータの書込み方法を説明する。
【００２８】
アプリケーションプログラムは図３に示す本処理を呼出し、データの書込みを開始する(ステップS３００)。次いで、セクタ情報A(２０１)のフィールド２０３にある状態フラグを読出し(ステップＳ３０１)、状態フラグが書込み完了かを確認する(ステップＳ３０２)。ここで停電などの電源途絶で状態フラグが書込み途中である場合は、セクタ情報A(２０１)のフィールド２０３にある状態フラグは「書込み中」となっている。
【００２９】
ステップＳ３０２の処理で書込み完了(ステップＳ３０２：Yes)と判断された場合には、署名コード生成手段１０２１は書込み対象外の領域２０８のデータから署名コード２を生成し(ステップＳ３０３)、不揮発性メモリのセクタ情報A(２０１)のフィールド２０７に署名コード２を格納する(ステップＳ３０４)。
【００３０】
次に、アプリケーションプログラムが書込みを開始する先頭アドレスと書込バイト数を不揮発性メモリのセクタ情報A(２０１)のフィールド２０４及び２０５に格納する(ステップＳ３０５)。さらに、不揮発性メモリのセクタ情報A(２０１)のフィールド２０３の状態フラグを「書込み中」に変更(ステップＳ３０６)して、セクタ領域A(２０２)の書込み領域２０９のデータを更新する(ステップＳ３０７)。このデータの更新が終わると、署名コード生成手段１０２１は、全セクタ領域のデータから署名コード１を生成（ステップＳ３０８）して、不揮発性メモリのセクタ情報A(２０１)のフィールド２０６に署名コード１を格納する(ステップＳ３０９)。最後にセクタ情報A(２０１)のフィールド２０３の状態フラグを「書込完了」に変更(ステップＳ３１０)してデータ書込みを終了する(ステップＳ３１１)。ここまでが、データ書込みの正常終了の手順である。
【００３１】
続いて、ステップＳ３０２で、書込完了していない(ステップＳ３０２：No)場合には、セクタ領域A(２０２)の書込み領域２０９への書込途中に停電などが発生して電源が途絶したものと判断できる。そこで、不揮発性メモリ上にあるセクタ情報A(２０１)のフィールド２０4及び２０５の書込アドレスと書込バイト数を読出す(ステップＳ３１２)。
【００３２】
次いで、前回と今回の書込みアドレスと書込みバイト数が同じであるかをチェックする(ステップ３１３)。この判定処理は、アプリケーションプログラムが再度同じ領域に対して再書込みを行う場合を想定した判定処理である。ここで、同一である(ステップＳ３１３：Yes)と判断された場合は、セクタ領域A(２０２)の書込み領域２０９へのデータを更新する(ステップＳ３０７)。この処理以降(ステップＳ３０７〜Ｓ３１１)は上記で説明した内容であるので説明を省略する。
【００３３】
また、ステップ３１３の処理で、前回と今回の書込みアドレスと書込みバイト数が同じでない(ステップＳ３１３：No)と判断された場合には、データ書込みを異常終了(データ書込異常終了)とする(ステップＳ３１４)。この処理は、書込み途中で失敗した領域をさらに増やさないようにするためである。ここまでが、データ書込みの異常終了の手順である。
【００３４】
図４は、本発明の実施形態に係る不揮発性メモリからデータを読取る方法を説明するフローチャートである。ここでは、本発明の実施形態に係る情報処理装置１００の制御部１０２が、ダウンロードしたアプリケーションプログラムを実行して不揮発性メモリのデータの読取り方法を説明する。
【００３５】
アプリケーションプログラムは図４に示す本処理を呼出し、データ読取りを開始する(ステップS４００)。次いで、セクタ情報A(２０１)のフィールド２０３にある状態フラグを読出し(ステップＳ４０１)、状態フラグが書込み中かを確認する(ステップＳ４０２)。ここで書込み中(ステップＳ４０２：Yes)の場合には、セクタ情報A(２０１)のフィールド２０４，２０５にある書込みアドレス(先頭アドレス)と書込みバイト数を読出し(ステップＳ４０３)、書込み範囲のアドレスを算出する(ステップＳ４０４)。
【００３６】
さらに、今回読取る範囲のアドレスを算出(ステップＳ４０５)して、読取範囲と書込範囲の重複がないかを判定する(ステップＳ４０６)。ここで、重複がない(ステップＳ４０６：Yes)と判断された場合は、書込み領域以外のデータから署名コード２を生成し保持(Ｘ)する(ステップＳ４０７)。
【００３７】
次に、セクタ情報A(２０１)のフィールド２０７にある署名コード２を読出(Ｙ)して(ステップＳ４０８)、署名コード２が正しいかを確認するために、(Ｘ)と(Ｙ)を比較し、同一であるかを確認する(ステップＳ４０９)。同一(ステップＳ４０９：Yes)の場合は、セクタ領域A(２０２)内部からデータを読出し(ステップＳ４１０)、データ読取を正常終了する(ステップＳ４１１)。このように、ステップＳ４００〜４１１までの処理を実行することで、書込み途中の領域以外のデータを読み出した際に、データを保証することができる。
【００３８】
また、ステップＳ４０２の状態フラグの判定において、書込み完了(ステップＳ４０２：No)と判断された場合には、全セクタ領域のデータから署名コード１を生成し保持(ｘ)する(ステップＳ４１３)。次にセクタ情報A(２０１)のフィールド２０６にある署名コード１を読出(ｙ)す(ステップＳ４１４)。
【００３９】
次に、生成し保持した署名コード１と、セクタ情報A(２０１)のフィールド２０６にある署名コード１が一致するかのチェック処理に移るが、このチェック処理以降(ステップＳ４０９〜Ｓ４１１)は上記で説明した内容と同様であるので説明を省略する。
【００４０】
また、図４に示すフローチャートにおいて、データ保証ができないケースとして、読取範囲と書込範囲の重複がないかを判定するステップ(ステップＳ４０６)において、重複あり(ステップＳ４０６：No)と判断された場合と、署名コードが正しいかを確認するために、(Ｘ),(ｘ)と(Ｙ),(ｙ)を比較し同一であるかを確認するステップ(ステップＳ４０９)において、署名コード(Ｘ),(ｘ)と署名コード(Ｙ),(ｙ)が一致しない(ステップＳ４０９：No)場合と、が有る。これらの場合には、読取るデータが正しいものではないと判断して、読取りをせずに異常終了(データ読取異常終了)とする(ステップＳ４１２)。
【００４１】
図５は、セクタ間を跨って書込みがある場合の不揮発性メモリの第１のメモリ構成例（その１）を示す図である。図５において、セクタ情報A(２０１)のフィールド２０６の署名コード１には、セクタ領域Aとセクタ領域B内に書込みが正常終了した後に、セクタ領域A〜ｎまでの全データから、署名コード１を生成して格納する。一方、セクタ情報A(２０１)のフィールド２０７の署名コード２には、セクタ領域Aとセクタ領域B内に書込みを行う前に書込み対象外の領域５００，５０３のデータから、署名コード２を生成して格納するものである。なお、図示例ではセクタ領域Ｂにおける跨りについて説明したが、セクタ領域Ｂを超えるセクタ領域への跨りでも同様に実行することができる。
【００４２】
図６は、セクタ間を跨って書込みがある場合の不揮発性メモリの第２のメモリ構成例（その２）を示す図である。図６において、セクタ情報A(２０１)のフィールド２０６の署名コード１には、セクタ領域Aに書込みが正常終了した後に、セクタ領域Aのデータから、署名コード１を生成して格納する。一方、セクタ情報A(２０１)のフィールド２０７の署名コード２には、セクタ領域Aの書込みを行う前に書込み対象外の領域６００から、署名コード２を生成して格納するものである。
【００４３】
また、セクタ情報Bの署名コード１を格納するフィールドには、セクタ領域Bに書込みが正常終了した後に、セクタ領域Bのデータから、署名コード１を生成して格納する。一方、セクタ情報Bの署名コード２を格納するフィールドには、セクタ領域Bの書込みを行う前に書込み対象外の領域6０3から、署名コード２を生成して格納するものである。なお、図示例ではセクタ領域Ｂにおける跨りについて説明したが、セクタ領域Ｂを超えるセクタ領域への跨りでも同様に実行することができる。
【００４４】
上記図６に示した不揮発性メモリのメモリ構成の特徴は、１つのセクタ情報内のデータに対応した署名コードを生成し管理するので、セクタ領域ごとにデータ保証が可能である。
【００４５】
以上説明したように、複数のセクタにわたって書込みを行う場合においても、書込み対象外のデータを保証することが可能となる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態に係る情報処理装置の構成を示す図である。
【図２】図１に示した不揮発性メモリのメモリ構成を示す図である。
【図３】本発明の実施形態に係る不揮発性メモリへのデータの書込み方法を説明するフローチャートである。
【図４】本発明の実施形態に係る不揮発性メモリからデータを読取る方法を説明するフローチャートである。
【図５】セクタ間を跨って書込みがある場合の不揮発性メモリの第１のメモリ構成例（その１）を示す図である。
【図６】セクタ間を跨って書込みがある場合の不揮発性メモリの第２のメモリ構成例（その２）を示す図である。
【符号の説明】
【００４７】
１００  情報処理装置
１０１  電源
１０２  制御部
１０３  ＲＯＭ
１０４  ＲＡＭ
１０５  不揮発性メモリ
１０６  通信部
２００  メモリ構成
２０１  セクタ情報Ａ
２０２  セクタ領域
２０３  状態フラグ格納フィールド
２０４  書込アドレス格納フィールド
２０５  書込バイト数格納フィールド
２０６  署名コード１格納フィールド
２０７  署名コード２格納フィールド
２０８  書込対象外の領域
２０９  書込対象の領域
５００  書込対象外の領域
５０１  書込対象の領域
５０２  書込対象の領域
５０３  書込対象外の領域
６００  書込対象外の領域
６０１  書込対象の領域
６０２  書込対象の領域
６０３  書込対象外の領域
１０２１  署名生成手段
【図１】
2010117956.tif 000003
【図３】
2010117956.tif 000004
【図４】
2010117956.tif 000005
【図２】
2010117956.tif 000006
【図５】
2010117956.tif 000007
【図６】
2010117956.tif 000008