(57)【要約】【課題】データコピー及び元ブロックデータ消去に伴うデータ書き込み時間の遅延を抑制できるフラッシュメモリのデータ処理方法及び記憶装置を提供する。【解決手段】フラッシュメモリのデータ処理方法であって、データ書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出し、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、ブロックに対応するアプリケーションの実行手段に、該当するブロックのレコードのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体に移行するタイミングである旨を通知する。そして、通知を受け、アプリケーションの移行条件と合致することでなされる実行手段からの指示に基づき、該当するブロックの有効なレコードのデータのみを、記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去する。【選択図】図４
2010231416.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数のブロックに分割され、前記ブロック単位でデータ消去が可能であり、各ブロックが複数のレコードを含み、前記レコード単位でデータ書き込みが可能なフラッシュメモリのデータ処理方法であって、
データ書き込みとは異なるタイミングで、前記ブロックにおけるデータ書き込み状態を検出する第１ステップと、
検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、前記ブロックに対応するアプリケーションの実行手段に、該当する前記ブロックのレコードのうち、有効なレコードのデータのみを、前記ブロックとは別の記憶媒体に移行するタイミングである旨を通知する第２ステップと、
前記通知を受け、前記アプリケーションの移行条件と合致することでなされる前記実行手段からの指示に基づき、該当する前記ブロックのレコードのうち、有効なレコードのデータのみを、前記記憶媒体にコピーするとともに、データコピー元の前記ブロックのデータを消去するデータ移行処理を行う第３ステップと、を備えることを特徴とするフラッシュメモリのデータ処理方法。
【請求項２】
前記記憶媒体とは、データコピー元の前記ブロックとは別の、空きブロックであり、
有効なレコードのデータがコピーされたコピー先の前記ブロックを、前記アプリケーションに対応するデータ書き込み用のブロックとし、前記実行手段からの指示に基づき、該ブロックの未記憶レコードに、新たなデータを追記する第４ステップを備えることを特徴とする請求項１に記載のフラッシュメモリのデータ処理方法。
【請求項３】
前記記憶媒体とは、ＲＡＭであり、
データを消去した前記ブロックに対し、複数の前記レコードの先頭から、前記ＲＡＭに保存した有効なレコードのデータを順に再書き込みする第５ステップと、
前記実行手段からの指示に基づき、有効なレコードのデータが再書込みされた前記ブロックの未記憶レコードに、新たなデータを追記する第６ステップを備えることを特徴とする請求項１に記載のフラッシュメモリのデータ処理方法。
【請求項４】
記憶領域が複数のブロックに分割され、前記ブロック単位でデータ消去が可能であり、前記ブロックが複数のレコードを含み、前記レコード単位でデータ書き込みが可能なフラッシュメモリと、
電子機器の制御処理を司るアプリケーションのデータを、前記アプリケーションに対応するブロックの未記憶レコードに書き込む処理を実行するデータ書き込み手段と、
データ書き込みとは異なるタイミングで、前記ブロックにおけるデータ書き込み状態を検出する書き込み状態検出手段と、
検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、該当する前記ブロックのレコードのうち、有効なレコードのデータのみを、前記ブロックとは別の記憶媒体に移行するタイミングである旨の通知を行う通知手段と、
前記通知を受け、且つ、対応する前記アプリケーションの移行条件と合致すると、データの移行を許可する許可手段と、
前記許可を受けて、前記ブロックのレコードのうち、有効なレコードのデータのみを、前記記憶媒体にコピーするとともに、データコピー元の前記ブロックのデータを消去するデータ移行手段と、を備えることを特徴とする記憶装置。
【請求項５】
前記記憶媒体とは、データコピー元の前記ブロックとは別の空きブロックであり、
前記データ書き込み手段は、有効なレコードのデータがコピーされたコピー先の前記ブロックを、前記アプリケーションに対応するデータ書き込み用のブロックとして、該ブロックの未記憶レコードに、新たなデータを追記することを特徴とする請求項４に記載の記憶装置。
【請求項６】
前記記憶媒体としてのＲＡＭを備え、
前記データ移行手段は、データを消去した前記ブロックに対し、複数の前記レコードの先頭から、前記ＲＡＭに保存した有効なレコードのデータを順に再書き込みし、
前記データ書き込み手段は、有効なレコードのデータが再書込みされた前記ブロックの未記憶レコードに、新たなデータを追記することを特徴とする請求項４に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリのデータ処理方法及びフラッシュメモリを備えた記憶装置に関するものである。
【背景技術】
【０００２】
データを一括消去する単位となるブロックを複数有するとともに、各ブロックが、データ書き込み／読み出し領域であるレコード（ページとも言う）を複数含むフラッシュメモリへのデータ書き込み方法として、例えば特許文献１に示される方法が知られている。
【０００３】
このデータ書き込み方法では、書き込み処理対象である書き込み対象ブロックにおいて、空き（データ未記憶）のレコードが残っている場合、新しいデータを、書き込み済みのレコードの次のアドレスの未記憶レコードから順に追記する。また、全てのレコードにデータが記憶されると、有効なレコードのデータのみをＲＡＭに一時保存し、上記書き込み対象ブロックの全データを消去する。そして、データを消去して空き状態となった書き込み対象ブロックに対し、ＲＡＭに一時保存した有効データを先頭のレコードから再書込みし、再書込みされたレコードの次のアドレスの未記憶レコードから順に、新たなデータを追記するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２４３０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、別のデータ書き込み方法として、書き込み対象ブロックにおいて、全てのレコードにデータが記憶されると、有効なレコードのデータのみを、上記ブロックとは別の空き状態にある空きブロックにコピーする方法も考えられる。この場合、データをコピーしたブロックを新たな書き込み対象ブロックとし、このブロックにおいて、データがコピーされたレコードの次のアドレスの未記憶レコードから順に、新たなデータを追記するようにするとともに、コピー元のブロックの全データを消去して空きブロックとし、次のデータ移行に備えることとなる。
【０００６】
しかしながら、上記したいずれの方法においても、書き込み対象ブロックにおいて全レコードにデータが書き込まれた状態となった時点で、有効なレコードのデータを、ＲＡＭや別のブロックなど、書き込み対象のブロックとは別の記憶領域にコピーするとともに、元のブロックの全データを消去して空きブロックを生成する。したがって、例えばデータ書き込みの途中で、書き込み対象ブロックの全レコードが書き込み状態（空きレコードのない状態）となると、データの書き込み途中にも係わらず、データの消去動作が発生してしまい、これにより、書き込み動作が中断して、結果、書き込み時間が長くなってしまう。
【０００７】
また、アプリケーション（電子機器の制御処理を司る制御用ソフトウェア）側では、どのタイミングで、データのコピー及び元ブロックデータの消去がなされるか分からないため、想定外のタイミングでデータのコピー及び元ブロックデータの消去が生じると、アプリケーションの実行に基づく所定処理を実行できない恐れもある。
【０００８】
本発明は上記問題点に鑑み、データコピー及び元ブロックデータ消去に伴うデータ書き込み時間の遅延を抑制できるフラッシュメモリのデータ処理方法及び記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成する為に請求項１に記載の発明は、記憶領域が複数のブロックに分割され、ブロック単位でデータ消去が可能であり、各ブロックが複数のレコードを含み、レコード単位でデータ書き込みが可能なフラッシュメモリのデータ処理方法であって、データ書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出する第１ステップと、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、ブロックに対応するアプリケーションの実行手段に、該当するブロックのレコードのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体に移行するタイミングである旨を通知する第２ステップと、通知を受け、アプリケーションの移行条件と合致することでなされる実行手段からの指示に基づき、該当するブロックのレコードのうち、有効なレコードのデータのみを、上記記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去するデータ移行処理を行う第３ステップと、を備えることを特徴とする。
【００１０】
本発明では、書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出し、検出した書き込み状態がデータ移行条件と合致すると、合致したブロックに対応するアプリケーション側（アプリケーションの実行手段）に、別の記憶媒体に移行するタイミングである旨を通知する。これにより、アプリケーション側が、データ移行が必要なタイミングを、書き込みとは異なるタイミング、すなわち書き込み前に事前に把握することができる。
【００１１】
また、通知を受け、且つ、アプリケーションの移行条件を満たすと、アプリケーション側はデータ移行の指示（データ移行要求）を出す。そして、この要求に基づき、該当するブロックのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去する処理が実施される。このように、アプリケーションごとの移行条件を満たすタイミングで、データ移行処理を実施することができる。すなわち、データ移行処理を行うタイミングを、アプリケーション側（アプリケーションの実行手段）にて設定することができる。
【００１２】
以上から、本発明によれば、書き込み動作の途中で、データ移行処理が実行されるのを抑制することができる。すなわち、データ移行処理に伴うデータ書き込み時間の遅延を抑制することができる。また、意図しない書き込み時間の遅延を回避することができる。本発明は、特に書き込み時間の制約が厳しいアプリケーションのデータの書き込みに有効である。
【００１３】
請求項２に記載のように、記憶媒体とは、データコピー元のブロックとは別の空きブロックであり、有効なレコードのデータがコピーされたコピー先のブロックを、アプリケーションに対応するデータ書き込み用のブロックとし、実行手段からの指示に基づき、該ブロックの未記憶レコードに、新たなデータを追記する第４ステップを備えても良い。
【００１４】
本発明では、データ書き込み用のブロックと、コピー用の少なくとも１つの空きブロックとを備えており、データ移行処理すると、コピー先のブロックを、アプリケーションに対応するデータ書き込み用のブロックとするとともに、コピー元のデータ消去したブロックをコピー用の空きブロックとする。そして、データの書き込み時には、コピー先のブロック、すなわち新たなデータ書き込み用のブロックに対し、未記憶レコードに、新たなデータを追記するので、書き込み時間の遅延を抑制することができる。
【００１５】
また、データコピー元のブロックとは別の空きブロックに有効なレコードのデータをコピーするので、瞬断（電源が瞬間的に落ちる）などが生じても、コピーしたデータを保持することができる。また、スペース的に大容量のＲＡＭを確保できない場合であっても、書き込み時間の遅延を抑制することができる。特に、民生に比べてスペース上の制約が厳しく、使用条件も過酷である車載用途に好適である。
【００１６】
一方、請求項３に記載のように、記憶媒体とはＲＡＭであり、データを消去したブロックに対し、複数のレコードの先頭から、ＲＡＭに保存した有効なレコードのデータを順に再書き込みする第５ステップと、実行手段からの指示に基づき、有効なレコードのデータが再書込みされたブロックの未記憶レコードに、新たなデータを追記する第６ステップを備えても良い。これによれば、有効なレコードのデータをＲＡＭに一時保存するので、請求項２に記載の発明のように空きブロックを必要としない。
【００１７】
次に、請求項４に記載の記憶装置は、記憶領域が複数のブロックに分割され、前記ブロック単位でデータ消去が可能であり、前記ブロックが複数のレコードを含み、レコード単位でデータ書き込みが可能なフラッシュメモリと、電子機器の制御処理を司るアプリケーションのデータを、アプリケーションに対応するブロックの未記憶レコードに書き込む処理を実行するデータ書き込み手段と、データ書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出する書き込み状態検出手段と、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、該当するブロックのレコードのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体に移行するタイミングである旨の通知を行う通知手段と、通知を受け、且つ、対応するアプリケーションの移行条件と合致すると、データの移行を許可する許可手段と、許可を受けて、ブロックのレコードのうち、有効なレコードのデータのみを、上記記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去するデータ移行手段と、を備えることを特徴とする。
【００１８】
本発明の作用効果は、請求項１に記載の発明の作用効果と同じであるので、その記載を省略する。
【００１９】
請求項５に記載のように、記憶媒体とは、データコピー元のブロックとは別の空きブロックであり、データ書き込み手段は、有効なレコードのデータがコピーされたコピー先のブロックを、アプリケーションに対応するデータ書き込み用のブロックとして、該ブロックの未記憶レコードに、新たなデータを追記する構成としても良い。また、請求項６に記載のように、記憶媒体としてのＲＡＭを備え、データ移行手段は、データを消去したブロックに対し、複数のレコードの先頭から、ＲＡＭに保存した有効なレコードのデータを順に再書き込みし、データ書き込み手段は、有効なレコードのデータが再書込みされたブロックの未記憶レコードに、新たなデータを追記する構成としても良い。これら発明の作用効果は、それぞれ請求項２，３に記載の発明の作用効果と同じであるので、その記載を省略する。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係る記憶装置を適用した電子制御装置の概略構成を示すブロック図である。
【図２】フラッシュメモリの概略構成を示す図である。
【図３】データ移行処理及びデータ書き込み処理の概念図であり、（ａ）は比較例、（ｂ）は第１実施形態を示している。
【図４】データ移行処理を説明するフローチャートである。
【図５】データ移行処理を示す模式的な図であり、（ａ）はデータ移行処理前、（ｂ）はデータ移行処理後を示している。
【図６】第２実施形態に係るデータ移行処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を、図面を参照して説明する。
（第１実施形態）
図１は、第１実施形態に係る記憶装置を適用した電子制御装置の概略構成を示すブロック図である。図２は、フラッシュメモリの概略構成を示す図である。
【００２２】
図１に示すように、ＥＣＵ１０は、ＣＰＵ（Central Processing Unit）１１からなる主制御部を有し、車両に搭載される電子機器の制御処理を該主制御部による予め定められたアプリケーションソフトの実行に基づいて実施するものであり、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、フラッシュメモリ１４、及び入出力部（Ｉ／Ｏポート）１５がバス接続されたマイクロプロセッサからなる。本実施形態では、ＥＣＵ１０が、自動車のボデー系の制御を司るボデー系ＥＣＵとして構成されている。また、本実施形態では、ＣＰＵ１１が、フラッシュメモリ１４のアクセスの制御を行うコントローラの機能も有している。
【００２３】
ＲＯＭ１２には、例えば起動時にＣＰＵ１１が実行する各種プログラムが格納されており、これらプログラムとして、フラッシュメモリ１４のドライバソフト２０と、上記したアプリケーションソフト２１を含んでいる。
【００２４】
フラッシュドライバソフト２０（以下、単にドライバソフト２０と示す）は、フラッシュメモリ１４に対してＣＰＵ１１が実行するプログラムである。一方、アプリケーションソフト２１は、車両利用者による車両各部の操作に係る機能であるボデー系機能を実現するプログラムである。ここで、ボデー系機能とは、例えばドア開閉に伴う制御、窓開閉に伴う制御、ライトスイッチのオン／オフに伴う制御、キーレスエントリ方式等に採用されるワイヤレスドアロック機構の制御、シート位置の制御などである。
【００２５】
ＲＡＭ１３は、ＣＰＵ１１がＲＯＭ１２に格納された各プログラムにしたがって実行する各種演算のための作業領域として用いられ、プログラムごとに個別のワークエリアが確保されている。本実施形態では、一例として、ＲＡＭ１３が、上記ワークエリアとして、後述する物理アドレスと論理アドレスとの対応関係を示すアドレス変換テーブル（マッピングテーブル）を含んでいる。このように、アドレス変換テーブルはＲＡＭ１３に格納されるため、電源投入時に、フラッシュメモリ１４にアクセスし、アドレス変換テーブルの回復が行われる。
【００２６】
フラッシュメモリ１４は、周知のように半導体による不揮発性の記憶素子であり、上記した各プログラムに対応する設定データを記憶する部位である。本実施形態では、ＣＰＵ１１が利用する各種のシステムデータなども記憶されている。このフラッシュメモリ１４の記憶領域は、例えば図２に示すように、所定の固定長による複数のブロック（ブロック０〜ブロックｎ）を有している。フラッシュメモリ１４では、周知のごとくデータの上書きができず、上記したブロックが、一括消去の単位となっている。また、ブロックごとに対応して物理アドレス０〜ｎが割り当てられている。本実施形態では、１つのブロックの容量が数ｋＢ程度となっている。
【００２７】
また、各ブロックは、図２に示す（ブロック２で例示する）ようにして、複数のレコード（レコード０〜レコードｍ）を有している。各レコードは固定長であり、所定サイズのデータ部と冗長部よりなる。なお、データ部にはデータが格納され、冗長部には、ＥＣＣデータや各種の管理情報（論理アドレス情報）などが格納される。そして、このレコードが、フラッシュメモリ１４における書き込み・読み出しの単位となっており、レコードにも、物理アドレス０〜ｍが割り当てられている。本実施形態では、１つのレコードの容量が数十Ｂ程度となっている。
【００２８】
このように、フラッシュメモリ１４では、データの消去がブロック単位で行われ、データの書き込み・読み出しがレコード単位で行われるようになっており、データ消去単位とデータ書込単位のデータサイズが相互に異なっている。
【００２９】
なお、上記したＥＣＵ１０のうち、ＣＰＵ１１、ＲＯＭ１２に格納されたフラッシュドライバソフト２０、ＲＡＭ１３、及びフラッシュメモリ１４が、特許請求の範囲に記載の記憶装置に相当する。
【００３０】
次に、データ移行処理及びデータ書き込み処理の概念について説明する。図３は、データ移行処理及びデータ書き込み処理の概念図であり、（ａ）は比較例、（ｂ）は本実施形態を示している。図３（ａ）では、図３（ｂ）に示す要素と関連する要素の符号に１００を付加して示している。なお、図３（ａ），（ｂ）のいずれの動作においても、ＣＰＵ１１が関与するが、図では省略している。
【００３１】
先ず、比較例（従来例）について説明する。図３（ａ）に示すように、所定のアプリケーションソフト１２１を実行時、ユーザが設定値を変更すると、ＣＰＵはドライバソフト１２０（フラッシュメモリ１１４）側に、変更された設定値のデータの書き込みを要求する。すると、ＣＰＵは、ドライバソフト１２０を実行し、フラッシュメモリ１１４のうち、上記アプリケーションソフト１２１に対応する所定の物理アドレスの書き込み対象ブロックに対し、データが記憶されていない未記憶レコードのうちの先頭から順にデータを書き込む処理を実行する。例えば、書き込み対象ブロックの全レコードが空き状態の場合、物理アドレスが先頭（０）のレコードから順にデータを書き込む。なお、レコードのデータ書き込み有無は、一例として、冗長部における書き込み状態確認領域（第１フラグ）により確認することができる。本実施形態では、データが書き込まれると上記第１フラグが「０」とされ、データが書き込まれていないと「１」とされる。
【００３２】
ここで、データ書き込みの途中で、書き込み対象ブロックの全レコードが書き込み状態である、すなわち空きレコードのない状態であることを、ドライバソフト１２０を実行するＣＰＵが、例えば上記第１フラグに基づき検出すると、ＣＰＵは、書き込み対象ブロックに記憶されたデータのうち、有効なレコードのデータのみを、アプリケーションソフト１２１に対応するデータ移行用の空きブロックにコピーする処理を実行する。また、書き込み対象ブロックの全データを消去して空きブロックを生成する処理を実行する。そして、元の書き込み対象ブロックの物理アドレスに対応する論理アドレスと、元のデータ移行用の空きブロックの物理アドレスに対応する論理アドレスとを、入れ替える処置を実行する。すなわち、元の書き込み対象ブロックを新たなデータ移行用の空きブロックとし、元の空きブロックを新たな書き込み対象ブロックとする。なお、データの有効・無効については、一例として、冗長部における有効性確認領域（第２フラグ）により確認することができる。本実施形態では、データが有効であると上記第２フラグが「１」とされ、データが無効であると「０」とされる。
【００３３】
データ移行処理が完了すると、ドライバソフト１２０を実行するＣＰＵは、残りのデータを、新たな書き込み対象ブロックにおいて、データがコピーされたレコードの次のアドレスのレコード、すなわちデータが記憶されていない未記憶レコードのうちの先頭から順にデータを書き込む処理を実行する。そして、データの書き込みが完了すると、ドライバソフト１２０を実行するＣＰＵは、アプリケーションソフト１２１側に、書き込みが完了した旨を通知する処理を実行する。
【００３４】
このように、従来では、書き込み対象ブロックの全レコードが書き込み状態（空きレコードのない状態）となると、データの書き込み途中にも係わらず、データの移行処理が発生するため、これにより、書き込み動作が中断して、結果、データの書き込み時間Ｔ１が長くなるという問題があった。
【００３５】
また、アプリケーションソフト１２１側では、どのタイミングで、データの移行処理が生じるか分からないため、所定時間内に書き込み処理がなされないがために、アプリケーションソフト１２１の実行に基づく所定処理を実行できない恐れがあった。
【００３６】
これに対し、本実施形態では、図３（ｂ）に示すように、アプリケーションソフト２１が実行されない所定のタイミング（データの書き込みタイミングとは異なるタイミング）で、データ移行処理を実施する。すなわち、データ書き込み処理の前に、必要に応じて事前にデータ移行処理をする。これにより、データの書き込み途中で、書き込み対象ブロックの全レコードが書き込み状態となり、これに伴ってデータの移行処理が発生するのが抑制される。そして、データの書き込み時間Ｔ２を、上記した書き込み時間Ｔ１よりも短くすることができる。
【００３７】
また、アプリケーションソフト２１任意のタイミングで、データ移行処理を実施するため、意図しないタイミングで、アプリケーションソフト２１の実行に基づく所定処理の実行がなされない、という不具合を解消することができる。
【００３８】
以下に、本実施形態に係るデータ移行処理の詳細について説明する。図４は、本実施形態に係るデータ移行処理を説明するフローチャートである。図５は、本実施形態に係るデータ移行処理を示す模式的な図であり、（ａ）はデータ移行処理前、（ｂ）はデータ移行処理後を示している。
【００３９】
このデータ移行処理は、ＥＣＵ１０の電源が投入された状態で、フラッシュメモリ１４へのデータの書き込みタイミング（及び読み出しタイミング）とは異なるタイミングで実行される。図４に示すように、先ず、書き込み対象ブロックの書き込み状態を検出する（ステップ１０）。このステップ１０は、特許請求の範囲に記載の第１ステップに相当する。具体的には、ＣＰＵ１１がドライバソフト２０を実行し、データの書き込みタイミング（及び読み出しタイミング）とは異なるタイミングで、書き込み対象ブロックの書き込み状態を検出する。すなわち、ドライバソフト２０を実行するＣＰＵ１１が、書き込み状態検出手段に相当する。この書き込み状態の検出では、書き込み対象ブロックを構成する全レコードのうち、どのレコードまで書き込みがなされているか、全レコードのうちのどの程度が書き込み状態となっているか、全レコードのうち空きレコードがどの程度残っているのか、などを検出する。
【００４０】
書き込み状態の検出対象としては、各アプリケーションソフト２１に対応する全ての書き込み対象ブロックでも良いし、所定のアプリケーションソフト２１に対応する１つの書き込み対象ブロックでも良い。また検出タイミングとしては、アプリケーションソフト２１がいずれも実行されていないタイミングであれば良い。例えばアプリケーションソフト２１のデータ書き込み処理が完了した直後や、完了してから所定時間経過後に実施することができる。また、センサ等の信号を元に決定することもできる。
【００４１】
書き込み状態の検出方法としては、特に限定されるものではない。例えば上記した第１フラグに基づき検出する方法や、書き込み状態にある最後のレコードの物理アドレスに対応する論理アドレスに基づいて検出する方法（所定物理アドレスのレコードにデータが書き込まれたらアラートをあげる）などを適用することができる。
【００４２】
そして、ＣＰＵ１１は、ドライバソフト２０のプログラムに基づき、検出した書き込み状態が、データ移行条件と合致するか否かを判定する（ステップ１１）。このデータ移行条件は、書き込み対象ブロックが、空きレコードを所定数残した状態に対応して、予め設定される。
【００４３】
ここで、図５（ａ）に示す例では、所定のアプリケーションソフト２１（例えばアプリケーションソフト２）に対応するブロックとして、書き込み対象ブロックであるブロック４と、データ移行用の空きブロックであるブロック５を有しており、各ブロックが７つのレコードをそれぞれ有している。そして、ブロック４において、５つ目のレコードにデータが書き込まれた状態がデータ移行条件となっている。すなわち、図５（ａ）に示す例では、書き込み対象ブロックであるブロック４の書き込み状態が、まさにデータ移行条件と合致した状態となっている。なお、図５（ａ）では、データの書き込まれた５つのレコードのうち、３つのレコードのデータ（ａ、ｄｄｄ、ｘｘ）が有効、２つのレコードのデータ（ｂ、ａｂｃ）が無効となっている。
【００４４】
ステップ１１にて、データ移行条件と合致しないと、書き込み対象ブロックの書き込み状態（空きレコード）に余裕があるものとされ、本タイミングでのデータ移行処理を終了する。一方、データ移行条件と合致すると、ドライバソフト２０のプログラムに基づき、ＣＰＵ１１は、対応するアプリケーションソフト２１側に、データ移行条件と合致している旨、換言すればデータ移行すべき旨を通知する。（ステップ１２）。すなわち、ドライバソフト２０を実行するＣＰＵ１１が、通知手段に相当する。
【００４５】
通知方法としては、特に限定されるものではない。本実施形態では、一例として、ドライバソフト２０のプログラムに基づき、ＣＰＵ１１が、上記判定結果をＲＡＭ１３の所定領域（第３フラグ）に書き込む処理を実行する。具体的には、データ移行条件と合致していると「１」とし、合致していない場合には「０」とする。また、ＲＡＭ１３への書き込み後、ＣＰＵ１１は、アプリケーションソフト２１を実行し、ＲＡＭ１３の第３フラグを確認する処理を実行する。そして、第３フラグが「１」の場合、対応するアプリケーションソフト２１側に、データ移行条件と合致している旨を通知した状態となる。以上が、特許請求の範囲に記載の第２ステップに相当する。
【００４６】
アプリケーションソフト２１を実行状態で、ＣＰＵ１１は、書き込み対象ブロックが移行すべき状態にあることを知ると、該アプリケーションソフト２１の移行条件を満たしているか否かを判定する（ステップ１３）。この移行条件は、アプリケーションソフト２１ごとに適宜設定されている。
【００４７】
ステップ１３にて、対応するアプリケーションソフト２１の移行条件を満たさないと、本タイミングでのデータ移行処理を終了する。一方、対応するアプリケーションソフト２１の移行条件を満たすと、アプリケーションソフト２１のプログラムに基づき、ＣＰＵ１１は、ドライバソフト２０（フラッシュメモリ１４）側に、データ移行処理を要求する（ステップ１４）。すなわち、アプリケーションソフト２１を実行するＣＰＵ１１が、許可手段に相当する。すると、ＣＰＵ１１は、ドライバソフト２０を実行し、フラッシュメモリ１４のうち、上記アプリケーションソフト２１に対応する所定アドレスの書き込み対象ブロックに記憶されたデータのうち、有効なレコードのデータのみを、アプリケーションソフト２１に対応するデータ移行用の空きブロックにコピーする処理を実行する（ステップ１５）。また、書き込み対象のブロックの全データを消去して空きブロックを生成する処理を実行する（ステップ１６）。すなわち、ドライバソフト２０を実行するＣＰＵ１１が、データ移行手段に相当する。また、この処理にともない、元の書き込み対象ブロックの物理アドレスに対応する論理アドレスと、元のデータ移行用の空きブロックの物理アドレスに対応する論理アドレスとを、入れ替える処置を実行する。すなわち、元の書き込み対象ブロックを新たなデータ移行用の空きブロックとし、元の空きブロックを新たな書き込み対象のブロックとする。なお、データの有効・無効については、例えば上記したように、冗長部における有効性確認領域（第２フラグ）により確認することができる。以上が、特許請求の範囲に記載の第３ステップに相当する。
【００４８】
図５（ｂ）では、ステップ１６が完了した状態、すなわちデータ移行が完了した状態を示している。図５（ｂ）では、データ移行前に空きブロックであったブロック５に有効データがコピーされて、ブロック５が新たな書き込み対象ブロックとなり、データ移行前に書き込み対象ブロックであったブロック４のデータが消去されて、ブロック４が新たなデータ移行用の空きブロックとなっている。
【００４９】
このようにして、データ移行処理が完了すると、ドライバソフト２０を実行するＣＰＵ１１は、アプリケーションソフト２１側に、データ移行処理が完了した旨を通知する処理を実行する（ステップ１７）。
【００５０】
したがって、ブロック４，５に対応するアプリケーションソフト２１を実行し、新たにデータの書き込み（追記）をする場合には、図５（ｂ）に示すように、ブロック５のレコードのうち、データが記憶されていないレコードのうちの先頭（４つ目のレコード）から順にデータを書き込むこととなる。
【００５１】
次に、本実施形態に係る特徴部分の効果について説明する。本実施形態では、データ書き込みとは異なるタイミングで、書き込み対象ブロックのデータ書き込み状態を検出する。そして、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、合致した書き込み対象ブロックに対応するアプリケーションソフト２１の実行手段であるＣＰＵ１１に、合致した書き込み対象ブロックのうちの有効データをのみを、該ブロックとは別の記憶媒体（本実施形態では、上記アプリケーションソフト２１に対応する空きブロック）に移行するタイミングである旨を通知するようにしている。したがって、アプリケーションソフト２１側が、対応する書き込み対象ブロックがデータ移行すべき書き込み状態にあることを、書き込みとは異なるタイミング、すなわち書き込み前に事前に把握することができる。
【００５２】
また、上記通知を受け、且つ、対応するアプリケーションソフト２１の移行条件を満たすと、アプリケーションソフト２１を実行するＣＰＵ１１が、データ移行要求を出す。そして、この要求に基づき、上記合致した書き込み対象ブロックの有効データを、該ブロックとは別の空きブロックにコピーするとともに、データコピー元のブロックのデータを消去する。したがって、アプリケーションソフト２１ごとに適宜設定された移行条件を満たすタイミングで、データ移行処理を実施することができる。
【００５３】
以上から、本実施形態に示すフラッシュメモリ１４のデータ処理方法、及び、該方法を適用する記憶装置（を備えたＥＣＵ１０）によれば、書き込み動作の途中で、データ移行処理が実行されるのを抑制することができる。すなわち、データ移行処理に伴うデータ書き込み時間の遅延を抑制することができる。また、意図しない書き込み時間の遅延を回避することができる。換言すれば、アプリケーションソフト２１に応じた任意のタイミング（各アプリケーションソフト２１の好ましいタイミング）で、データ移行処理を実施することができる。したがって、特に書き込み時間の制約が厳しいアプリケーションソフト２１のデータの書き込みに効果的である。
【００５４】
また、本実施形態では、フラッシュメモリ１４が、１つのアプリケーションソフト２１につき、データ書き込み用の書き込み対象ブロックと、コピー用の少なくとも１つの空きブロックとを備えており、データ移行処理を実行すると、コピー先のブロックを、新たな書き込み対象ブロックとするとともに、コピー元のデータ消去したブロックを新たなコピー用の空きブロックとする。そして、データの書き込み時には、コピー先のブロック、すなわち新たなデータ書き込み対象ブロックに対し、未記憶レコードに、新たなデータを追記するようにしている。このように、有効データを、アプリケーションソフト２１に対応する空きブロックにコピーするので、瞬断などが生じても、コピーしたデータを保持することができる。また、スペース的に大容量のＲＡＭ１３を確保できない場合であっても、書き込み時間の遅延を抑制することができる。したがって、民生に比べてスペース上の制約が厳しく、使用条件も過酷である車載用途に特に好適である。
【００５５】
なお、本実施形態では、データ移行処理を示すステップ１３で、対応するアプリケーションソフト２１の移行条件を満たさないと、本タイミングでのデータ移行処理を終了する例を示した。しかしながら、例えば所定時間が経過するまで、ステップ１３の判定を繰り返し、所定時間経過後、本タイミングでのデータ移行処理を終了するようにしても良い。また、所定回数までステップ１３の判定を繰り返し、所定回数繰り返しら、本タイミングでのデータ移行処理を終了するようにしても良い。
【００５６】
（第２実施形態）
次に、本発明の第２実施形態を、図６に基づいて説明する。図６は、第２実施形態に係るデータ移行処理を示すフローチャートである。
【００５７】
本実施形態に係るフラッシュメモリのデータ処理（データ移行処理）方法、及び、該方法を適用する記憶装置を備えたＥＣＵの構成は、第１実施形態によるものと共通するところが多いので、以下、共通部分については詳しい説明は省略し、異なる部分を重点的に説明する。
【００５８】
本実施形態に係るフラッシュメモリ１４のデータ移行処理は、図６に示すステップ２４のデータ移行処理の要求までが、第１実施形態（図４参照）に示したデータ移行処理の要求（ステップ１４）までと一致している。また、ＥＣＵ１０の構成は、第１実施形態とほぼ同じ構成となっており、異なる点は、フラッシュメモリ１４が、データ移行処理に用いるデータ移行用の空きブロックを有していない点である。
【００５９】
アプリケーションソフト２１のプログラムに基づき、ＣＰＵ１１が、ドライバソフト２０（フラッシュメモリ１４）側に、データ移行処理を要求する（ステップ２４）と、ＣＰＵ１１は、ドライバソフト２０を実行し、フラッシュメモリ１４のうち、上記アプリケーションソフト２１に対応する所定の物理アドレスの書き込み対象ブロックの有効データを、ＲＡＭ１３の対応する領域にコピー（一時保存）する処理を実行する（ステップ２５）。また、書き込み対象ブロックの全データを消去して空きブロックを生成する処理を実行する（ステップ２６）。
【００６０】
そして、データを消去して空きブロックとなった書き込み対象ブロックに対し、ＲＡＭ１３に一時保存した有効データを、先頭のレコードから順に書き込む処理、すなわち再書込み処理を実行する（ステップ２７）。なお、データの有効・無効については、例えば上記したように、冗長部における有効性確認領域（第２フラグ）により確認することができる。以上が、特許請求の範囲に記載の第５ステップに相当する。
【００６１】
このようにして、データ移行処理が完了すると、ドライバソフト２０を実行するＣＰＵ１１は、アプリケーションソフト２１側に、データ移行処理が完了した旨を通知する処理を実行する（ステップ２８）。
【００６２】
このように本実施形態に示すフラッシュメモリのデータ処理（データ移行処理）方法、及び、該方法を適用する記憶装置を備えたＥＣＵ１０によっても、第１実施形態に示したように、書き込み動作の途中で、データ移行処理が実行されるのを抑制することができる。すなわち、データ移行処理に伴うデータ書き込み時間の遅延を抑制することができる。また、意図しない書き込み時間の遅延を回避することができる。換言すれば、アプリケーションソフト２１に応じた任意のタイミング（各アプリケーションソフト２１の好ましいタイミング）で、データ移行処理を実施することができる。したがって、特に書き込み時間の制約が厳しいアプリケーションソフト２１のデータの書き込みに効果的である。
【００６３】
また、本実施形態では、有効なレコードのデータをＲＡＭ１３に一時保存するので、データコピー用の記憶媒体として、フラッシュメモリ１４が空きブロックを必要としない構成とすることができる。
【００６４】
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００６５】
本実施形態では、フラッシュメモリのデータ処理（データ移行処理）方法を適用する記憶装置を備えたＥＣＵ１０として、自動車のボデー系の制御を司るボデー系ＥＣＵの例を示した。しかしながら、ＥＣＵ１０の用途は、上記例に限定されるものではない。また、車載用途に限定されるものでもなく、民生の電子機器に適用することもできる。
【００６６】
また、アプリケーションソフト２１の移行条件は、適宜設定されればよい。例えば、車速が所定値以上であることや、ライトが点等していることなどを移行条件としても良い。また、インターフェースを介してＣＰＵ１１と電気的に接続された表示装置（例えばモニタ）に、データ移行状態であることを表示（通知）し、これを見たユーザ（作業者）かたデータ移行処理を要求するキー操作がされたことを、移行条件としても良い。
【符号の説明】
【００６７】
１０・・・電子制御装置（ＥＣＵ）
１１・・・ＣＰＵ
１２・・・ＲＯＭ
１３・・・ＲＡＭ
１４・・・フラッシュメモリ
２１・・・アプリケーションソフト（アプリケーション）
【図１】
2010231416.tif 000003
【図２】
2010231416.tif 000004
【図３】
2010231416.tif 000005
【図４】
2010231416.tif 000006
【図５】
2010231416.tif 000007
【図６】
2010231416.tif 000008