JP2010231416A - フラッシュメモリのデータ処理方法及び記憶装置 - Google Patents

フラッシュメモリのデータ処理方法及び記憶装置 Download PDF

Info

Publication number
JP2010231416A
JP2010231416A JP2009077136A JP2009077136A JP2010231416A JP 2010231416 A JP2010231416 A JP 2010231416A JP 2009077136 A JP2009077136 A JP 2009077136A JP 2009077136 A JP2009077136 A JP 2009077136A JP 2010231416 A JP2010231416 A JP 2010231416A
Authority
JP
Japan
Prior art keywords
data
block
record
writing
records
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009077136A
Other languages
English (en)
Other versions
JP5332800B2 (ja
Inventor
Tsuneo Yamamoto
常雄 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2009077136A priority Critical patent/JP5332800B2/ja
Publication of JP2010231416A publication Critical patent/JP2010231416A/ja
Application granted granted Critical
Publication of JP5332800B2 publication Critical patent/JP5332800B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】データコピー及び元ブロックデータ消去に伴うデータ書き込み時間の遅延を抑制できるフラッシュメモリのデータ処理方法及び記憶装置を提供する。
【解決手段】フラッシュメモリのデータ処理方法であって、データ書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出し、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、ブロックに対応するアプリケーションの実行手段に、該当するブロックのレコードのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体に移行するタイミングである旨を通知する。そして、通知を受け、アプリケーションの移行条件と合致することでなされる実行手段からの指示に基づき、該当するブロックの有効なレコードのデータのみを、記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去する。
【選択図】図4

Description

本発明は、フラッシュメモリのデータ処理方法及びフラッシュメモリを備えた記憶装置に関するものである。
データを一括消去する単位となるブロックを複数有するとともに、各ブロックが、データ書き込み/読み出し領域であるレコード(ページとも言う)を複数含むフラッシュメモリへのデータ書き込み方法として、例えば特許文献1に示される方法が知られている。
このデータ書き込み方法では、書き込み処理対象である書き込み対象ブロックにおいて、空き(データ未記憶)のレコードが残っている場合、新しいデータを、書き込み済みのレコードの次のアドレスの未記憶レコードから順に追記する。また、全てのレコードにデータが記憶されると、有効なレコードのデータのみをRAMに一時保存し、上記書き込み対象ブロックの全データを消去する。そして、データを消去して空き状態となった書き込み対象ブロックに対し、RAMに一時保存した有効データを先頭のレコードから再書込みし、再書込みされたレコードの次のアドレスの未記憶レコードから順に、新たなデータを追記するようにしている。
特開2000−243093号公報
一方、別のデータ書き込み方法として、書き込み対象ブロックにおいて、全てのレコードにデータが記憶されると、有効なレコードのデータのみを、上記ブロックとは別の空き状態にある空きブロックにコピーする方法も考えられる。この場合、データをコピーしたブロックを新たな書き込み対象ブロックとし、このブロックにおいて、データがコピーされたレコードの次のアドレスの未記憶レコードから順に、新たなデータを追記するようにするとともに、コピー元のブロックの全データを消去して空きブロックとし、次のデータ移行に備えることとなる。
しかしながら、上記したいずれの方法においても、書き込み対象ブロックにおいて全レコードにデータが書き込まれた状態となった時点で、有効なレコードのデータを、RAMや別のブロックなど、書き込み対象のブロックとは別の記憶領域にコピーするとともに、元のブロックの全データを消去して空きブロックを生成する。したがって、例えばデータ書き込みの途中で、書き込み対象ブロックの全レコードが書き込み状態(空きレコードのない状態)となると、データの書き込み途中にも係わらず、データの消去動作が発生してしまい、これにより、書き込み動作が中断して、結果、書き込み時間が長くなってしまう。
また、アプリケーション(電子機器の制御処理を司る制御用ソフトウェア)側では、どのタイミングで、データのコピー及び元ブロックデータの消去がなされるか分からないため、想定外のタイミングでデータのコピー及び元ブロックデータの消去が生じると、アプリケーションの実行に基づく所定処理を実行できない恐れもある。
本発明は上記問題点に鑑み、データコピー及び元ブロックデータ消去に伴うデータ書き込み時間の遅延を抑制できるフラッシュメモリのデータ処理方法及び記憶装置を提供することを目的とする。
上記目的を達成する為に請求項1に記載の発明は、記憶領域が複数のブロックに分割され、ブロック単位でデータ消去が可能であり、各ブロックが複数のレコードを含み、レコード単位でデータ書き込みが可能なフラッシュメモリのデータ処理方法であって、データ書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出する第1ステップと、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、ブロックに対応するアプリケーションの実行手段に、該当するブロックのレコードのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体に移行するタイミングである旨を通知する第2ステップと、通知を受け、アプリケーションの移行条件と合致することでなされる実行手段からの指示に基づき、該当するブロックのレコードのうち、有効なレコードのデータのみを、上記記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去するデータ移行処理を行う第3ステップと、を備えることを特徴とする。
本発明では、書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出し、検出した書き込み状態がデータ移行条件と合致すると、合致したブロックに対応するアプリケーション側(アプリケーションの実行手段)に、別の記憶媒体に移行するタイミングである旨を通知する。これにより、アプリケーション側が、データ移行が必要なタイミングを、書き込みとは異なるタイミング、すなわち書き込み前に事前に把握することができる。
また、通知を受け、且つ、アプリケーションの移行条件を満たすと、アプリケーション側はデータ移行の指示(データ移行要求)を出す。そして、この要求に基づき、該当するブロックのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去する処理が実施される。このように、アプリケーションごとの移行条件を満たすタイミングで、データ移行処理を実施することができる。すなわち、データ移行処理を行うタイミングを、アプリケーション側(アプリケーションの実行手段)にて設定することができる。
以上から、本発明によれば、書き込み動作の途中で、データ移行処理が実行されるのを抑制することができる。すなわち、データ移行処理に伴うデータ書き込み時間の遅延を抑制することができる。また、意図しない書き込み時間の遅延を回避することができる。本発明は、特に書き込み時間の制約が厳しいアプリケーションのデータの書き込みに有効である。
請求項2に記載のように、記憶媒体とは、データコピー元のブロックとは別の空きブロックであり、有効なレコードのデータがコピーされたコピー先のブロックを、アプリケーションに対応するデータ書き込み用のブロックとし、実行手段からの指示に基づき、該ブロックの未記憶レコードに、新たなデータを追記する第4ステップを備えても良い。
本発明では、データ書き込み用のブロックと、コピー用の少なくとも1つの空きブロックとを備えており、データ移行処理すると、コピー先のブロックを、アプリケーションに対応するデータ書き込み用のブロックとするとともに、コピー元のデータ消去したブロックをコピー用の空きブロックとする。そして、データの書き込み時には、コピー先のブロック、すなわち新たなデータ書き込み用のブロックに対し、未記憶レコードに、新たなデータを追記するので、書き込み時間の遅延を抑制することができる。
また、データコピー元のブロックとは別の空きブロックに有効なレコードのデータをコピーするので、瞬断(電源が瞬間的に落ちる)などが生じても、コピーしたデータを保持することができる。また、スペース的に大容量のRAMを確保できない場合であっても、書き込み時間の遅延を抑制することができる。特に、民生に比べてスペース上の制約が厳しく、使用条件も過酷である車載用途に好適である。
一方、請求項3に記載のように、記憶媒体とはRAMであり、データを消去したブロックに対し、複数のレコードの先頭から、RAMに保存した有効なレコードのデータを順に再書き込みする第5ステップと、実行手段からの指示に基づき、有効なレコードのデータが再書込みされたブロックの未記憶レコードに、新たなデータを追記する第6ステップを備えても良い。これによれば、有効なレコードのデータをRAMに一時保存するので、請求項2に記載の発明のように空きブロックを必要としない。
次に、請求項4に記載の記憶装置は、記憶領域が複数のブロックに分割され、前記ブロック単位でデータ消去が可能であり、前記ブロックが複数のレコードを含み、レコード単位でデータ書き込みが可能なフラッシュメモリと、電子機器の制御処理を司るアプリケーションのデータを、アプリケーションに対応するブロックの未記憶レコードに書き込む処理を実行するデータ書き込み手段と、データ書き込みとは異なるタイミングで、ブロックにおけるデータ書き込み状態を検出する書き込み状態検出手段と、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、該当するブロックのレコードのうち、有効なレコードのデータのみを、ブロックとは別の記憶媒体に移行するタイミングである旨の通知を行う通知手段と、通知を受け、且つ、対応するアプリケーションの移行条件と合致すると、データの移行を許可する許可手段と、許可を受けて、ブロックのレコードのうち、有効なレコードのデータのみを、上記記憶媒体にコピーするとともに、データコピー元のブロックのデータを消去するデータ移行手段と、を備えることを特徴とする。
本発明の作用効果は、請求項1に記載の発明の作用効果と同じであるので、その記載を省略する。
請求項5に記載のように、記憶媒体とは、データコピー元のブロックとは別の空きブロックであり、データ書き込み手段は、有効なレコードのデータがコピーされたコピー先のブロックを、アプリケーションに対応するデータ書き込み用のブロックとして、該ブロックの未記憶レコードに、新たなデータを追記する構成としても良い。また、請求項6に記載のように、記憶媒体としてのRAMを備え、データ移行手段は、データを消去したブロックに対し、複数のレコードの先頭から、RAMに保存した有効なレコードのデータを順に再書き込みし、データ書き込み手段は、有効なレコードのデータが再書込みされたブロックの未記憶レコードに、新たなデータを追記する構成としても良い。これら発明の作用効果は、それぞれ請求項2,3に記載の発明の作用効果と同じであるので、その記載を省略する。
第1実施形態に係る記憶装置を適用した電子制御装置の概略構成を示すブロック図である。 フラッシュメモリの概略構成を示す図である。 データ移行処理及びデータ書き込み処理の概念図であり、(a)は比較例、(b)は第1実施形態を示している。 データ移行処理を説明するフローチャートである。 データ移行処理を示す模式的な図であり、(a)はデータ移行処理前、(b)はデータ移行処理後を示している。 第2実施形態に係るデータ移行処理を示すフローチャートである。
以下、本発明の実施の形態を、図面を参照して説明する。
(第1実施形態)
図1は、第1実施形態に係る記憶装置を適用した電子制御装置の概略構成を示すブロック図である。図2は、フラッシュメモリの概略構成を示す図である。
図1に示すように、ECU10は、CPU(Central Processing Unit)11からなる主制御部を有し、車両に搭載される電子機器の制御処理を該主制御部による予め定められたアプリケーションソフトの実行に基づいて実施するものであり、CPU11、ROM12、RAM13、フラッシュメモリ14、及び入出力部(I/Oポート)15がバス接続されたマイクロプロセッサからなる。本実施形態では、ECU10が、自動車のボデー系の制御を司るボデー系ECUとして構成されている。また、本実施形態では、CPU11が、フラッシュメモリ14のアクセスの制御を行うコントローラの機能も有している。
ROM12には、例えば起動時にCPU11が実行する各種プログラムが格納されており、これらプログラムとして、フラッシュメモリ14のドライバソフト20と、上記したアプリケーションソフト21を含んでいる。
フラッシュドライバソフト20(以下、単にドライバソフト20と示す)は、フラッシュメモリ14に対してCPU11が実行するプログラムである。一方、アプリケーションソフト21は、車両利用者による車両各部の操作に係る機能であるボデー系機能を実現するプログラムである。ここで、ボデー系機能とは、例えばドア開閉に伴う制御、窓開閉に伴う制御、ライトスイッチのオン/オフに伴う制御、キーレスエントリ方式等に採用されるワイヤレスドアロック機構の制御、シート位置の制御などである。
RAM13は、CPU11がROM12に格納された各プログラムにしたがって実行する各種演算のための作業領域として用いられ、プログラムごとに個別のワークエリアが確保されている。本実施形態では、一例として、RAM13が、上記ワークエリアとして、後述する物理アドレスと論理アドレスとの対応関係を示すアドレス変換テーブル(マッピングテーブル)を含んでいる。このように、アドレス変換テーブルはRAM13に格納されるため、電源投入時に、フラッシュメモリ14にアクセスし、アドレス変換テーブルの回復が行われる。
フラッシュメモリ14は、周知のように半導体による不揮発性の記憶素子であり、上記した各プログラムに対応する設定データを記憶する部位である。本実施形態では、CPU11が利用する各種のシステムデータなども記憶されている。このフラッシュメモリ14の記憶領域は、例えば図2に示すように、所定の固定長による複数のブロック(ブロック0〜ブロックn)を有している。フラッシュメモリ14では、周知のごとくデータの上書きができず、上記したブロックが、一括消去の単位となっている。また、ブロックごとに対応して物理アドレス0〜nが割り当てられている。本実施形態では、1つのブロックの容量が数kB程度となっている。
また、各ブロックは、図2に示す(ブロック2で例示する)ようにして、複数のレコード(レコード0〜レコードm)を有している。各レコードは固定長であり、所定サイズのデータ部と冗長部よりなる。なお、データ部にはデータが格納され、冗長部には、ECCデータや各種の管理情報(論理アドレス情報)などが格納される。そして、このレコードが、フラッシュメモリ14における書き込み・読み出しの単位となっており、レコードにも、物理アドレス0〜mが割り当てられている。本実施形態では、1つのレコードの容量が数十B程度となっている。
このように、フラッシュメモリ14では、データの消去がブロック単位で行われ、データの書き込み・読み出しがレコード単位で行われるようになっており、データ消去単位とデータ書込単位のデータサイズが相互に異なっている。
なお、上記したECU10のうち、CPU11、ROM12に格納されたフラッシュドライバソフト20、RAM13、及びフラッシュメモリ14が、特許請求の範囲に記載の記憶装置に相当する。
次に、データ移行処理及びデータ書き込み処理の概念について説明する。図3は、データ移行処理及びデータ書き込み処理の概念図であり、(a)は比較例、(b)は本実施形態を示している。図3(a)では、図3(b)に示す要素と関連する要素の符号に100を付加して示している。なお、図3(a),(b)のいずれの動作においても、CPU11が関与するが、図では省略している。
先ず、比較例(従来例)について説明する。図3(a)に示すように、所定のアプリケーションソフト121を実行時、ユーザが設定値を変更すると、CPUはドライバソフト120(フラッシュメモリ114)側に、変更された設定値のデータの書き込みを要求する。すると、CPUは、ドライバソフト120を実行し、フラッシュメモリ114のうち、上記アプリケーションソフト121に対応する所定の物理アドレスの書き込み対象ブロックに対し、データが記憶されていない未記憶レコードのうちの先頭から順にデータを書き込む処理を実行する。例えば、書き込み対象ブロックの全レコードが空き状態の場合、物理アドレスが先頭(0)のレコードから順にデータを書き込む。なお、レコードのデータ書き込み有無は、一例として、冗長部における書き込み状態確認領域(第1フラグ)により確認することができる。本実施形態では、データが書き込まれると上記第1フラグが「0」とされ、データが書き込まれていないと「1」とされる。
ここで、データ書き込みの途中で、書き込み対象ブロックの全レコードが書き込み状態である、すなわち空きレコードのない状態であることを、ドライバソフト120を実行するCPUが、例えば上記第1フラグに基づき検出すると、CPUは、書き込み対象ブロックに記憶されたデータのうち、有効なレコードのデータのみを、アプリケーションソフト121に対応するデータ移行用の空きブロックにコピーする処理を実行する。また、書き込み対象ブロックの全データを消去して空きブロックを生成する処理を実行する。そして、元の書き込み対象ブロックの物理アドレスに対応する論理アドレスと、元のデータ移行用の空きブロックの物理アドレスに対応する論理アドレスとを、入れ替える処置を実行する。すなわち、元の書き込み対象ブロックを新たなデータ移行用の空きブロックとし、元の空きブロックを新たな書き込み対象ブロックとする。なお、データの有効・無効については、一例として、冗長部における有効性確認領域(第2フラグ)により確認することができる。本実施形態では、データが有効であると上記第2フラグが「1」とされ、データが無効であると「0」とされる。
データ移行処理が完了すると、ドライバソフト120を実行するCPUは、残りのデータを、新たな書き込み対象ブロックにおいて、データがコピーされたレコードの次のアドレスのレコード、すなわちデータが記憶されていない未記憶レコードのうちの先頭から順にデータを書き込む処理を実行する。そして、データの書き込みが完了すると、ドライバソフト120を実行するCPUは、アプリケーションソフト121側に、書き込みが完了した旨を通知する処理を実行する。
このように、従来では、書き込み対象ブロックの全レコードが書き込み状態(空きレコードのない状態)となると、データの書き込み途中にも係わらず、データの移行処理が発生するため、これにより、書き込み動作が中断して、結果、データの書き込み時間T1が長くなるという問題があった。
また、アプリケーションソフト121側では、どのタイミングで、データの移行処理が生じるか分からないため、所定時間内に書き込み処理がなされないがために、アプリケーションソフト121の実行に基づく所定処理を実行できない恐れがあった。
これに対し、本実施形態では、図3(b)に示すように、アプリケーションソフト21が実行されない所定のタイミング(データの書き込みタイミングとは異なるタイミング)で、データ移行処理を実施する。すなわち、データ書き込み処理の前に、必要に応じて事前にデータ移行処理をする。これにより、データの書き込み途中で、書き込み対象ブロックの全レコードが書き込み状態となり、これに伴ってデータの移行処理が発生するのが抑制される。そして、データの書き込み時間T2を、上記した書き込み時間T1よりも短くすることができる。
また、アプリケーションソフト21任意のタイミングで、データ移行処理を実施するため、意図しないタイミングで、アプリケーションソフト21の実行に基づく所定処理の実行がなされない、という不具合を解消することができる。
以下に、本実施形態に係るデータ移行処理の詳細について説明する。図4は、本実施形態に係るデータ移行処理を説明するフローチャートである。図5は、本実施形態に係るデータ移行処理を示す模式的な図であり、(a)はデータ移行処理前、(b)はデータ移行処理後を示している。
このデータ移行処理は、ECU10の電源が投入された状態で、フラッシュメモリ14へのデータの書き込みタイミング(及び読み出しタイミング)とは異なるタイミングで実行される。図4に示すように、先ず、書き込み対象ブロックの書き込み状態を検出する(ステップ10)。このステップ10は、特許請求の範囲に記載の第1ステップに相当する。具体的には、CPU11がドライバソフト20を実行し、データの書き込みタイミング(及び読み出しタイミング)とは異なるタイミングで、書き込み対象ブロックの書き込み状態を検出する。すなわち、ドライバソフト20を実行するCPU11が、書き込み状態検出手段に相当する。この書き込み状態の検出では、書き込み対象ブロックを構成する全レコードのうち、どのレコードまで書き込みがなされているか、全レコードのうちのどの程度が書き込み状態となっているか、全レコードのうち空きレコードがどの程度残っているのか、などを検出する。
書き込み状態の検出対象としては、各アプリケーションソフト21に対応する全ての書き込み対象ブロックでも良いし、所定のアプリケーションソフト21に対応する1つの書き込み対象ブロックでも良い。また検出タイミングとしては、アプリケーションソフト21がいずれも実行されていないタイミングであれば良い。例えばアプリケーションソフト21のデータ書き込み処理が完了した直後や、完了してから所定時間経過後に実施することができる。また、センサ等の信号を元に決定することもできる。
書き込み状態の検出方法としては、特に限定されるものではない。例えば上記した第1フラグに基づき検出する方法や、書き込み状態にある最後のレコードの物理アドレスに対応する論理アドレスに基づいて検出する方法(所定物理アドレスのレコードにデータが書き込まれたらアラートをあげる)などを適用することができる。
そして、CPU11は、ドライバソフト20のプログラムに基づき、検出した書き込み状態が、データ移行条件と合致するか否かを判定する(ステップ11)。このデータ移行条件は、書き込み対象ブロックが、空きレコードを所定数残した状態に対応して、予め設定される。
ここで、図5(a)に示す例では、所定のアプリケーションソフト21(例えばアプリケーションソフト2)に対応するブロックとして、書き込み対象ブロックであるブロック4と、データ移行用の空きブロックであるブロック5を有しており、各ブロックが7つのレコードをそれぞれ有している。そして、ブロック4において、5つ目のレコードにデータが書き込まれた状態がデータ移行条件となっている。すなわち、図5(a)に示す例では、書き込み対象ブロックであるブロック4の書き込み状態が、まさにデータ移行条件と合致した状態となっている。なお、図5(a)では、データの書き込まれた5つのレコードのうち、3つのレコードのデータ(a、ddd、xx)が有効、2つのレコードのデータ(b、abc)が無効となっている。
ステップ11にて、データ移行条件と合致しないと、書き込み対象ブロックの書き込み状態(空きレコード)に余裕があるものとされ、本タイミングでのデータ移行処理を終了する。一方、データ移行条件と合致すると、ドライバソフト20のプログラムに基づき、CPU11は、対応するアプリケーションソフト21側に、データ移行条件と合致している旨、換言すればデータ移行すべき旨を通知する。(ステップ12)。すなわち、ドライバソフト20を実行するCPU11が、通知手段に相当する。
通知方法としては、特に限定されるものではない。本実施形態では、一例として、ドライバソフト20のプログラムに基づき、CPU11が、上記判定結果をRAM13の所定領域(第3フラグ)に書き込む処理を実行する。具体的には、データ移行条件と合致していると「1」とし、合致していない場合には「0」とする。また、RAM13への書き込み後、CPU11は、アプリケーションソフト21を実行し、RAM13の第3フラグを確認する処理を実行する。そして、第3フラグが「1」の場合、対応するアプリケーションソフト21側に、データ移行条件と合致している旨を通知した状態となる。以上が、特許請求の範囲に記載の第2ステップに相当する。
アプリケーションソフト21を実行状態で、CPU11は、書き込み対象ブロックが移行すべき状態にあることを知ると、該アプリケーションソフト21の移行条件を満たしているか否かを判定する(ステップ13)。この移行条件は、アプリケーションソフト21ごとに適宜設定されている。
ステップ13にて、対応するアプリケーションソフト21の移行条件を満たさないと、本タイミングでのデータ移行処理を終了する。一方、対応するアプリケーションソフト21の移行条件を満たすと、アプリケーションソフト21のプログラムに基づき、CPU11は、ドライバソフト20(フラッシュメモリ14)側に、データ移行処理を要求する(ステップ14)。すなわち、アプリケーションソフト21を実行するCPU11が、許可手段に相当する。すると、CPU11は、ドライバソフト20を実行し、フラッシュメモリ14のうち、上記アプリケーションソフト21に対応する所定アドレスの書き込み対象ブロックに記憶されたデータのうち、有効なレコードのデータのみを、アプリケーションソフト21に対応するデータ移行用の空きブロックにコピーする処理を実行する(ステップ15)。また、書き込み対象のブロックの全データを消去して空きブロックを生成する処理を実行する(ステップ16)。すなわち、ドライバソフト20を実行するCPU11が、データ移行手段に相当する。また、この処理にともない、元の書き込み対象ブロックの物理アドレスに対応する論理アドレスと、元のデータ移行用の空きブロックの物理アドレスに対応する論理アドレスとを、入れ替える処置を実行する。すなわち、元の書き込み対象ブロックを新たなデータ移行用の空きブロックとし、元の空きブロックを新たな書き込み対象のブロックとする。なお、データの有効・無効については、例えば上記したように、冗長部における有効性確認領域(第2フラグ)により確認することができる。以上が、特許請求の範囲に記載の第3ステップに相当する。
図5(b)では、ステップ16が完了した状態、すなわちデータ移行が完了した状態を示している。図5(b)では、データ移行前に空きブロックであったブロック5に有効データがコピーされて、ブロック5が新たな書き込み対象ブロックとなり、データ移行前に書き込み対象ブロックであったブロック4のデータが消去されて、ブロック4が新たなデータ移行用の空きブロックとなっている。
このようにして、データ移行処理が完了すると、ドライバソフト20を実行するCPU11は、アプリケーションソフト21側に、データ移行処理が完了した旨を通知する処理を実行する(ステップ17)。
したがって、ブロック4,5に対応するアプリケーションソフト21を実行し、新たにデータの書き込み(追記)をする場合には、図5(b)に示すように、ブロック5のレコードのうち、データが記憶されていないレコードのうちの先頭(4つ目のレコード)から順にデータを書き込むこととなる。
次に、本実施形態に係る特徴部分の効果について説明する。本実施形態では、データ書き込みとは異なるタイミングで、書き込み対象ブロックのデータ書き込み状態を検出する。そして、検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、合致した書き込み対象ブロックに対応するアプリケーションソフト21の実行手段であるCPU11に、合致した書き込み対象ブロックのうちの有効データをのみを、該ブロックとは別の記憶媒体(本実施形態では、上記アプリケーションソフト21に対応する空きブロック)に移行するタイミングである旨を通知するようにしている。したがって、アプリケーションソフト21側が、対応する書き込み対象ブロックがデータ移行すべき書き込み状態にあることを、書き込みとは異なるタイミング、すなわち書き込み前に事前に把握することができる。
また、上記通知を受け、且つ、対応するアプリケーションソフト21の移行条件を満たすと、アプリケーションソフト21を実行するCPU11が、データ移行要求を出す。そして、この要求に基づき、上記合致した書き込み対象ブロックの有効データを、該ブロックとは別の空きブロックにコピーするとともに、データコピー元のブロックのデータを消去する。したがって、アプリケーションソフト21ごとに適宜設定された移行条件を満たすタイミングで、データ移行処理を実施することができる。
以上から、本実施形態に示すフラッシュメモリ14のデータ処理方法、及び、該方法を適用する記憶装置(を備えたECU10)によれば、書き込み動作の途中で、データ移行処理が実行されるのを抑制することができる。すなわち、データ移行処理に伴うデータ書き込み時間の遅延を抑制することができる。また、意図しない書き込み時間の遅延を回避することができる。換言すれば、アプリケーションソフト21に応じた任意のタイミング(各アプリケーションソフト21の好ましいタイミング)で、データ移行処理を実施することができる。したがって、特に書き込み時間の制約が厳しいアプリケーションソフト21のデータの書き込みに効果的である。
また、本実施形態では、フラッシュメモリ14が、1つのアプリケーションソフト21につき、データ書き込み用の書き込み対象ブロックと、コピー用の少なくとも1つの空きブロックとを備えており、データ移行処理を実行すると、コピー先のブロックを、新たな書き込み対象ブロックとするとともに、コピー元のデータ消去したブロックを新たなコピー用の空きブロックとする。そして、データの書き込み時には、コピー先のブロック、すなわち新たなデータ書き込み対象ブロックに対し、未記憶レコードに、新たなデータを追記するようにしている。このように、有効データを、アプリケーションソフト21に対応する空きブロックにコピーするので、瞬断などが生じても、コピーしたデータを保持することができる。また、スペース的に大容量のRAM13を確保できない場合であっても、書き込み時間の遅延を抑制することができる。したがって、民生に比べてスペース上の制約が厳しく、使用条件も過酷である車載用途に特に好適である。
なお、本実施形態では、データ移行処理を示すステップ13で、対応するアプリケーションソフト21の移行条件を満たさないと、本タイミングでのデータ移行処理を終了する例を示した。しかしながら、例えば所定時間が経過するまで、ステップ13の判定を繰り返し、所定時間経過後、本タイミングでのデータ移行処理を終了するようにしても良い。また、所定回数までステップ13の判定を繰り返し、所定回数繰り返しら、本タイミングでのデータ移行処理を終了するようにしても良い。
(第2実施形態)
次に、本発明の第2実施形態を、図6に基づいて説明する。図6は、第2実施形態に係るデータ移行処理を示すフローチャートである。
本実施形態に係るフラッシュメモリのデータ処理(データ移行処理)方法、及び、該方法を適用する記憶装置を備えたECUの構成は、第1実施形態によるものと共通するところが多いので、以下、共通部分については詳しい説明は省略し、異なる部分を重点的に説明する。
本実施形態に係るフラッシュメモリ14のデータ移行処理は、図6に示すステップ24のデータ移行処理の要求までが、第1実施形態(図4参照)に示したデータ移行処理の要求(ステップ14)までと一致している。また、ECU10の構成は、第1実施形態とほぼ同じ構成となっており、異なる点は、フラッシュメモリ14が、データ移行処理に用いるデータ移行用の空きブロックを有していない点である。
アプリケーションソフト21のプログラムに基づき、CPU11が、ドライバソフト20(フラッシュメモリ14)側に、データ移行処理を要求する(ステップ24)と、CPU11は、ドライバソフト20を実行し、フラッシュメモリ14のうち、上記アプリケーションソフト21に対応する所定の物理アドレスの書き込み対象ブロックの有効データを、RAM13の対応する領域にコピー(一時保存)する処理を実行する(ステップ25)。また、書き込み対象ブロックの全データを消去して空きブロックを生成する処理を実行する(ステップ26)。
そして、データを消去して空きブロックとなった書き込み対象ブロックに対し、RAM13に一時保存した有効データを、先頭のレコードから順に書き込む処理、すなわち再書込み処理を実行する(ステップ27)。なお、データの有効・無効については、例えば上記したように、冗長部における有効性確認領域(第2フラグ)により確認することができる。以上が、特許請求の範囲に記載の第5ステップに相当する。
このようにして、データ移行処理が完了すると、ドライバソフト20を実行するCPU11は、アプリケーションソフト21側に、データ移行処理が完了した旨を通知する処理を実行する(ステップ28)。
このように本実施形態に示すフラッシュメモリのデータ処理(データ移行処理)方法、及び、該方法を適用する記憶装置を備えたECU10によっても、第1実施形態に示したように、書き込み動作の途中で、データ移行処理が実行されるのを抑制することができる。すなわち、データ移行処理に伴うデータ書き込み時間の遅延を抑制することができる。また、意図しない書き込み時間の遅延を回避することができる。換言すれば、アプリケーションソフト21に応じた任意のタイミング(各アプリケーションソフト21の好ましいタイミング)で、データ移行処理を実施することができる。したがって、特に書き込み時間の制約が厳しいアプリケーションソフト21のデータの書き込みに効果的である。
また、本実施形態では、有効なレコードのデータをRAM13に一時保存するので、データコピー用の記憶媒体として、フラッシュメモリ14が空きブロックを必要としない構成とすることができる。
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
本実施形態では、フラッシュメモリのデータ処理(データ移行処理)方法を適用する記憶装置を備えたECU10として、自動車のボデー系の制御を司るボデー系ECUの例を示した。しかしながら、ECU10の用途は、上記例に限定されるものではない。また、車載用途に限定されるものでもなく、民生の電子機器に適用することもできる。
また、アプリケーションソフト21の移行条件は、適宜設定されればよい。例えば、車速が所定値以上であることや、ライトが点等していることなどを移行条件としても良い。また、インターフェースを介してCPU11と電気的に接続された表示装置(例えばモニタ)に、データ移行状態であることを表示(通知)し、これを見たユーザ(作業者)かたデータ移行処理を要求するキー操作がされたことを、移行条件としても良い。
10・・・電子制御装置(ECU)
11・・・CPU
12・・・ROM
13・・・RAM
14・・・フラッシュメモリ
21・・・アプリケーションソフト(アプリケーション)

Claims (6)

  1. 記憶領域が複数のブロックに分割され、前記ブロック単位でデータ消去が可能であり、各ブロックが複数のレコードを含み、前記レコード単位でデータ書き込みが可能なフラッシュメモリのデータ処理方法であって、
    データ書き込みとは異なるタイミングで、前記ブロックにおけるデータ書き込み状態を検出する第1ステップと、
    検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、前記ブロックに対応するアプリケーションの実行手段に、該当する前記ブロックのレコードのうち、有効なレコードのデータのみを、前記ブロックとは別の記憶媒体に移行するタイミングである旨を通知する第2ステップと、
    前記通知を受け、前記アプリケーションの移行条件と合致することでなされる前記実行手段からの指示に基づき、該当する前記ブロックのレコードのうち、有効なレコードのデータのみを、前記記憶媒体にコピーするとともに、データコピー元の前記ブロックのデータを消去するデータ移行処理を行う第3ステップと、を備えることを特徴とするフラッシュメモリのデータ処理方法。
  2. 前記記憶媒体とは、データコピー元の前記ブロックとは別の、空きブロックであり、
    有効なレコードのデータがコピーされたコピー先の前記ブロックを、前記アプリケーションに対応するデータ書き込み用のブロックとし、前記実行手段からの指示に基づき、該ブロックの未記憶レコードに、新たなデータを追記する第4ステップを備えることを特徴とする請求項1に記載のフラッシュメモリのデータ処理方法。
  3. 前記記憶媒体とは、RAMであり、
    データを消去した前記ブロックに対し、複数の前記レコードの先頭から、前記RAMに保存した有効なレコードのデータを順に再書き込みする第5ステップと、
    前記実行手段からの指示に基づき、有効なレコードのデータが再書込みされた前記ブロックの未記憶レコードに、新たなデータを追記する第6ステップを備えることを特徴とする請求項1に記載のフラッシュメモリのデータ処理方法。
  4. 記憶領域が複数のブロックに分割され、前記ブロック単位でデータ消去が可能であり、前記ブロックが複数のレコードを含み、前記レコード単位でデータ書き込みが可能なフラッシュメモリと、
    電子機器の制御処理を司るアプリケーションのデータを、前記アプリケーションに対応するブロックの未記憶レコードに書き込む処理を実行するデータ書き込み手段と、
    データ書き込みとは異なるタイミングで、前記ブロックにおけるデータ書き込み状態を検出する書き込み状態検出手段と、
    検出した書き込み状態が、予め設定された所定の書き込み状態に対応するデータ移行条件と合致する場合、該当する前記ブロックのレコードのうち、有効なレコードのデータのみを、前記ブロックとは別の記憶媒体に移行するタイミングである旨の通知を行う通知手段と、
    前記通知を受け、且つ、対応する前記アプリケーションの移行条件と合致すると、データの移行を許可する許可手段と、
    前記許可を受けて、前記ブロックのレコードのうち、有効なレコードのデータのみを、前記記憶媒体にコピーするとともに、データコピー元の前記ブロックのデータを消去するデータ移行手段と、を備えることを特徴とする記憶装置。
  5. 前記記憶媒体とは、データコピー元の前記ブロックとは別の空きブロックであり、
    前記データ書き込み手段は、有効なレコードのデータがコピーされたコピー先の前記ブロックを、前記アプリケーションに対応するデータ書き込み用のブロックとして、該ブロックの未記憶レコードに、新たなデータを追記することを特徴とする請求項4に記載の記憶装置。
  6. 前記記憶媒体としてのRAMを備え、
    前記データ移行手段は、データを消去した前記ブロックに対し、複数の前記レコードの先頭から、前記RAMに保存した有効なレコードのデータを順に再書き込みし、
    前記データ書き込み手段は、有効なレコードのデータが再書込みされた前記ブロックの未記憶レコードに、新たなデータを追記することを特徴とする請求項4に記載の記憶装置。
JP2009077136A 2009-03-26 2009-03-26 記憶装置 Active JP5332800B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009077136A JP5332800B2 (ja) 2009-03-26 2009-03-26 記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009077136A JP5332800B2 (ja) 2009-03-26 2009-03-26 記憶装置

Publications (2)

Publication Number Publication Date
JP2010231416A true JP2010231416A (ja) 2010-10-14
JP5332800B2 JP5332800B2 (ja) 2013-11-06

Family

ID=43047177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009077136A Active JP5332800B2 (ja) 2009-03-26 2009-03-26 記憶装置

Country Status (1)

Country Link
JP (1) JP5332800B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112466371A (zh) * 2020-12-17 2021-03-09 宁波拓普集团股份有限公司 一种循环利用闪存模拟字节擦除功能的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997217A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH1050084A (ja) * 1996-07-31 1998-02-20 Canon Inc メモリ制御装置およびメモリアクセス方法
JPH10150627A (ja) * 1996-11-18 1998-06-02 Konica Corp デジタルスチルカメラ
JP2002032256A (ja) * 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd 端末装置
JP2003228513A (ja) * 2001-11-28 2003-08-15 Access:Kk メモリ制御方法および装置
JP2007058840A (ja) * 2005-07-29 2007-03-08 Sony Corp 記憶装置、コンピュータシステム、および記憶システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997217A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH1050084A (ja) * 1996-07-31 1998-02-20 Canon Inc メモリ制御装置およびメモリアクセス方法
JPH10150627A (ja) * 1996-11-18 1998-06-02 Konica Corp デジタルスチルカメラ
JP2002032256A (ja) * 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd 端末装置
JP2003228513A (ja) * 2001-11-28 2003-08-15 Access:Kk メモリ制御方法および装置
JP2007058840A (ja) * 2005-07-29 2007-03-08 Sony Corp 記憶装置、コンピュータシステム、および記憶システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112466371A (zh) * 2020-12-17 2021-03-09 宁波拓普集团股份有限公司 一种循环利用闪存模拟字节擦除功能的方法
CN112466371B (zh) * 2020-12-17 2022-09-09 宁波拓普集团股份有限公司 一种循环利用闪存模拟字节擦除功能的方法

Also Published As

Publication number Publication date
JP5332800B2 (ja) 2013-11-06

Similar Documents

Publication Publication Date Title
JP5021220B2 (ja) 不揮発性メモリ装置及びそのマルチページコピーバック方法
TWI385519B (zh) 資料寫入方法及使用此方法的快閃儲存系統與其控制器
JP5990430B2 (ja) Ssd(ソリッドステートドライブ)装置
JPH11126488A (ja) フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
JP2010020586A (ja) データ処理装置
JP2007293440A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP2008159013A (ja) 半導体記憶装置
TWI454922B (zh) 記憶體儲存裝置及其記憶體控制器與資料寫入方法
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP5300496B2 (ja) 半導体記憶装置、ホスト機器及び半導体記憶システム
JP2005339231A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP2010086009A (ja) 記憶装置およびメモリ制御方法
WO2018103010A1 (zh) 一种存储设备管理方法及用户终端
US20140218767A1 (en) Image forming apparatus, memory management method for image forming apparatus, and program
JP4661369B2 (ja) メモリコントローラ
JP5332800B2 (ja) 記憶装置
JP6301820B2 (ja) リプログラミングシステム
JP2014106918A (ja) 情報処理装置及びその制御方法とプログラム
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
TW201621668A (zh) 資料儲存裝置及其資料寫入方法
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP2010176201A (ja) フラッシュメモリのデータ消失防止装置及びフラッシュメモリのデータ消失防止方法
JP5520880B2 (ja) フラッシュメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130514

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130715

R151 Written notification of patent or utility model registration

Ref document number: 5332800

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250