JP6311525B2 - 記憶媒体の管理装置 - Google Patents

記憶媒体の管理装置 Download PDF

Info

Publication number
JP6311525B2
JP6311525B2 JP2014162589A JP2014162589A JP6311525B2 JP 6311525 B2 JP6311525 B2 JP 6311525B2 JP 2014162589 A JP2014162589 A JP 2014162589A JP 2014162589 A JP2014162589 A JP 2014162589A JP 6311525 B2 JP6311525 B2 JP 6311525B2
Authority
JP
Japan
Prior art keywords
data
block
management
rewriting
address
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.)
Expired - Fee Related
Application number
JP2014162589A
Other languages
English (en)
Other versions
JP2016038778A (ja
Inventor
洋平 藤田
洋平 藤田
常雄 山本
常雄 山本
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 JP2014162589A priority Critical patent/JP6311525B2/ja
Publication of JP2016038778A publication Critical patent/JP2016038778A/ja
Application granted granted Critical
Publication of JP6311525B2 publication Critical patent/JP6311525B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、例えばフラッシュメモリ(Flashメモリ)等の記録媒体(記憶媒体)におけるデータの書き込みや消去が可能な記憶媒体の管理装置に関するものである。
記憶媒体である例えばFlashメモリについては、その特性により、電源瞬断等の原因によって、書き込み又は消去途中で処理中断が発生すると、データが消失する懸念がある。
この対策として、下記特許文献1には、図21に示すように、レコード(データ単位)ごとに冗長領域を確保して、書換処理の状態(書き換え処理フェーズ)を逐次記憶し、書き換え処理中断後の再開時には、前記各冗長領域から書き換え処理フェーズを判別することで、書き換え処理の中断とその対象レコードを検出する技術が開示されている。
特開2002−318733号公報
しかしながら、上述した従来技術では、書き換え処理がレコードに対して並列に行われないことを前提とすると、書き換え対象レコード以外の冗長領域は、その時点では無駄になるので、メモリ効率の観点からは望ましくない。
特に、レコード数が増加すると、無駄な冗長領域が増加する。
また、書き換え処理の中断と書き換え対象レコードを検出するためには、書き換え処理フェーズと書き換え対象レコードのアドレスだけを記憶すればよいので、例えば、1つのブロック(消去単位)に前記情報を記憶すれば、無駄な冗長領域が発生せず、高メモリ効率である。
しかしながら、この場合には、書き換え処理状態を記憶するブロックに負荷が集中するため、記憶媒体の耐久性を損なう。
つまり、書き換え回数に制限のある記憶媒体においては、その寿命が短くなる。
本発明は、前記課題を解決するためになされたものであり、その目的は、記憶媒体のデータ書き換え処理の中断を検出する場合でも、高いメモリ効率と高い耐久性とを両立できる記憶媒体の管理装置を提供することにある。
本発明の記憶媒体の管理装置は、データを書き換える際の消去単位であるブロックとして、前記データを記憶する複数のデータブロックと、前記データブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックと、を有する記憶媒体に対して、前記データの書き換えを管理する管理装置であって、前記複数の管理ブロックを前記情報の記憶のために使用する順序を設定するとともに、前記順序を複数の管理ブロックを繰り返して使用するように設定し、前記データを書き換える書換対象のデータブロックを変更する際には、前記順序に従って前記書換対象のデータブロックのデータの書き換えに関する情報を記憶する前記管理ブロックを変更することを特徴とする。
本発明では、記憶媒体に、データを記憶する複数のデータブロックとそのデータブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックとを有しており、その複数の管理ブロックを繰り返して使用するように、複数の管理ブロックを循環的に使用するように設定されている。つまり、複数の管理ブロックを繰り返して使用するように、複数の管理ブロックに対してデータを書き換える順序が設定されている。
そして、データを書き換える書換対象のデータブロック(以下対象データブロックと記すこともある)を変更する際には、前記順序に従って対象データブロックのデータの書き換えに関する情報、例えば対象データブロックのアドレスやアドレスの書き換え状態(例えば書き換え開始や完了)や対象データブロックのデータの書き換え状態(例えば書き換え完了)を記憶してゆく。
つまり、本発明では、複数の管理ブロックの使用順序を設定して複数回循環的に使用することにより、記憶媒体のデータ書き換え処理の中断を検出する場合に、特定の管理ブロックに負荷(即ち書き換えを行うための動作)が集中することを避けることができる。これにより、書き換えの際の負荷を分散することができるので、記憶媒体の高い耐久性を実現することができる。
また、従来のように、レコードに対して1対1に冗長領域を設定するのではなく、同じ管理ブロックを複数回使用するように管理ブロックを使用する順番を設定しているので、従来に比べて、使用する管理ブロックを減らすことが可能である。そのため、メモリ効率を高めることができる。
例えば管理ブロック数をデータブロック数より少なくすることができ、また、データブロック数が増えた場合でも、管理ブロック数を維持することやデータブロック数の増加数より少ない増加数とすることが可能である。
つまり、冗長領域は、管理ブロックとして利用するブロック数分となり、また、利用しなければならない管理ブロック数は、データブロック数に依存しないという利点がある。
従って、本発明では、記憶媒体のデータの書き換え処理の際に、例えば電源の遮断による書き換え処理中断を検出する場合でも、記憶媒体の高いメモリ効率と高い耐久性とを両立できるという顕著な効果を奏する。
実施例1の記憶媒体の管理装置の概略構成を示す説明図である。 実施例1のFlashメモリの構成例を示す説明図である。 実施例1のFlashメモリのブロックの割り当て及びブロックの論理構造を示す説明図である。 実施例1のFlashメモリにおける書き換えの技術思想を示す説明図である。 実施例1のFlashメモリにおける管理ブロック群の論理構造を示す説明図である。 実施例1のFlashメモリにおける各管理ブロックと各状態記憶部との関係を示す説明図である。 実施例1におけるデータの書き込み時の処理を示すフローチャートである。 実施例1のFlashメモリにおける更新する管理ブロックの指定方法を示す説明図である。 実施例1のFlashメモリにおける管理ブロックの順序性を示す説明図である。 実施例1のデータの書き込み時におけるFlashメモリのデータの状態を示す説明図である。 実施例1における電源断からの復帰時の処理を示すフローチャートである。 実施例1の電源断からの復帰時における状態記憶部のデータの状態を示す説明図である。 実施例1における復帰処理を示すフローチャートである。 実施例1の復帰処理におけるFlashメモリのデータの状態を示す説明図である。 復帰処理時の消去の順番について、適当でない場合の問題点を示す説明図である。 実施例2のFlashメモリのブロックの割り当て及びブロックの論理構造を示す説明図である。 実施例2の消去時の順番を示す説明図である。 実施例2のFlashメモリにおける管理ブロック群の論理構造を示す説明図である。 実施例2の異常記憶部のAEフラグの状態を示す説明図である。 実施例2の復帰処理時におけるFlashメモリのデータの状態を示す説明図である。 従来技術の説明図である。
次に、本発明の記憶媒体の管理装置の実施例を、図面と共に説明する。
[システムの全体構成]
まず、本実施例1の記憶媒体の管理装置の全体構成について説明する。
図1に示すように、本実施例1の記憶媒体の管理装置1は、記憶媒体である不揮発性メモリのフラッシュメモリ(Flashメモリ)3にデータを書き込んだり、そのデータを消去することができる装置であり、各種の演算処理を行う周知のCPU5と、外部装置との入出力部であるI/O7と、Flashメモリ3へのデータの書き込みやデータの消去を行うFlashコントローラ9と、各種のソフトウェア等を記憶しているROM11と、周知のRAM13等を備えている。
このうち、ROM11には、Flashコントローラ9の動作を制御するFlashドライバや各種のアプリケーションのソフトウェアが記憶されている。
なお、前記管理装置1やFlashメモリ3へは、電源15から電力が供給されている。
また、図2(a)に、(本発明を好適に適用できる)ブロック数が多いFlashメモリ3の構成例を示すが、本発明は、図2(b)に示すような一般的なFlashメモリにも適用できる。
[Flashメモリのデータ構造]
次に、本実施例1におけるFlashメモリ3のデータ構造について説明する。
図3に示すように、Flashメモリ3では、記憶領域として、複数の管理ブロックからなる管理ブロック群と、複数のデータブロックからなるデータブロック群とを有している。
このうち、データブロック群は、1レコード(データ単位)、つまり、1つのデータを記憶するデータブロック複数個からなるブロック群である。なお、データブロック数は、例えば3個以上のn個である。
一方、管理ブロック群は、後述するように、データ単位であるレコードを書き換える際に、どのデータブロックのデータが書き換え中かを示す情報、即ち書き換え対象である対象データブロックの位置を示すアドレスや、アドレスの書き換え状態(アドレス書き換え開始や完了)や、対象データブロックのデータの書き換え状態(データ書き換え完了)などの対象データブロックのデータの書き換えに関する情報を記憶するブロック群である。
この管理ブロック群は、例えば3個以上の複数個(m個)の管理ブロックからなり、各管理ブロックは、書き換え中の対象データブロックのアドレスを記憶するアドレス部と、アドレス部の書き換え状態及び対象データブロックの書き換え状態を記憶する状態記憶部とからなる。
なお、状態記憶部は、各状態を記憶する3個のフラグ、アドレスの書き換え開始を示すAWフラグ、アドレスの書き換え完了を示すAFフラグ、対象データブロックの書き換え完了を示すDFフラグを記憶する各記憶領域から構成されている。
また、管理ブロック数(m)とデータブロック数(n)との関係は、ここでは、管理ブロック数はデータブロック数以下(m≦n)である。
[Flashメモリのデータを書き換える際の基本思想]
次に、Flashメモリ3のデータを書き換える際の基本となる思想(動作原理)について説明する。
図4に示すように、本実施例1では、管理ブロック群がデータブロック群を監視する。
具体的には、管理ブロック群の1つの管理ブロックが、書き換え中の対象データブロックのアドレスを記憶するとともに、データブロックの書き換え処理が中断されたときの書き換え対象のデータブロックを特定する。
例えば、後に詳述するように、電源の遮断(以下電源断と記すこともある)からの復帰時に、管理ブロックの状態を基に、データブロック書き換え中に電源が遮断していないかを確認する。これにより、急な電源の遮断時によるデータ消失を検出できる。
なお、管理ブロックは、書き換えのたびに管理ブロック群の中から循環的な順序性をもって選ばれる。ここで、循環的とは、複数の管理ブロックが所定の使用(書き換え)の順番に沿って使用された後に、再度、最初の順番の管理ブロックに戻って同様な使用を行うことを示している。
[Flashメモリの管理ブロック群の論理構造]
(1)次に、Flashメモリ3の管理ブロック群の論理構造について、具体例を挙げて説明する。
ここでは、管理ブロック3個(0〜2)、データブロック3個(0〜2)の場合を例に挙げて説明する。
なお、m<nの場合には、メモリ効率の点で効果が大きいが、ここでは、内容の理解を容易にするために、管理ブロック数とデータブロック数が同じ3個の場合(m=n)を例に挙げて説明する。
図5に示すように、管理ブロックは、管理ブロック0、管理ブロック1、管理ブロック2の順番で、順序性が規定されている。
また、状態記憶部は、上述したように、各情報の書き換え状態を示すために、下記の3つのフラグ(AW、AF、DF)をもち、それぞれ、ブランク(Blank)か非ブランク(Non-blank)かの2値をとる。
AW:次ブロックのアドレスの書き換え開始を示すフラグ。従って、例えば管理ブロック1のアドレスの書き換え開始時にフラグが(例えば1に)設定される。
AF:次ブロックのアドレスの書き換え完了を示すフラグ。従って、例えば管理ブロック1のアドレスの書き換え完了時にフラグが(例えば1に)設定される。
DF:次ブロックのアドレスの示すデータの書き換え完了を示すフラグ。従って、例えば管理ブロック1のアドレスが示すデータブロックが、データブロック0の場合には、そのデータブロック0におけるレコードAの書き換え完了時にフラグが(例えば1に)設定される。
(2)次に、管理ブロックの順序性について詳しく説明する。
図6に示すように、各管理ブロックには、ある固定された順序性がある。
例えば、管理ブロック群には、管理ブロック0→管理ブロック1→管理ブロック2→管理ブロック0→・・のように、所定の順序が設定されている。従って、管理ブロックは、管理ブロック0→管理ブロック1→管理ブロック2→管理ブロック0→・・のように、循環的に使用される。
また、各管理ブロックのアドレスと各状態記憶部とは、同図6に示す関係がある。
具体的には、(管理ブロック1の前の管理ブロックである)管理ブロック0の状態記憶部は、次の管理ブロックである管理ブロック1のアドレスの書き換え状態やそのアドレスに対応したデータブロックの書き換え状態を、前記各フラグによって記憶している。
同様に、管理ブロック1の状態記憶部は、次の管理ブロックである管理ブロック2のアドレスの書き換え状態やそのアドレスに対応したデータブロックの書き換え状態を、前記各フラグによって記憶している。
同様に、管理ブロック2の状態記憶部は、次の管理ブロックである管理ブロック0のアドレスの書き換え状態やそのアドレスに対応したデータブロックの書き換え状態を、前記各フラグによって記憶している。
このように、本実施例1では、複数の管理ブロックの異なる管理ブロックに、アドレスや(そのアドレス等に関する)前記書き換え状態を分けて記憶するとともに、各管理ブロックを循環的に活用している。
そのため、冗長領域は、管理ブロックとして利用するブロック数分となり、また、利用しなければならない管理ブロック数は、データブロック数に依存しない。
[Flashメモリのデータを書き込む処理]
次に、Flashメモリ3にデータを書き込む際の処理について説明する。
(1)ここでは、Flashコントローラ9が、CPU5から、データの書き込み要求(どのデータブロックにどんなデータを書き込むかを示す要求)を受け取った場合の処理について説明する。
図7に示すように、ステップ(S)100では、管理ブロック群は定常状態か否かを判定する。ここで肯定判断されるとステップ120に進む、一方否定判断されるとステップ110に進む。
なお、管理ブロック群が定常状態とは、何らかのデータの書き換え途中でない状態を示しており、管理ブロック群が、何のフラグも立っていない管理ブロック1つと、全てのフラグが立っている管理ブロック1つ以上の場合に、定常状態であると判定する。
ステップ110では、後述する復帰処理を施して定常状態に戻し、ステップ120に進む。
ステップ120では、定常状態であるので、管理ブロック群の中で最も更新の新しいブロックの次のブロックを、更新するブロック(更新ブロック)とする。
続くステップ130では、更新ブロックの前の管理ブロック(前ブロック)に、AWフラグを立てる。
続くステップ140では、更新ブロックのデータを消去する。
続くステップ150では、更新ブロックに、書き込み先アドレスを書き込む。
続くステップ160では、前ブロックに、AFフラグを立てる。
続くステップ170では、書き込み先データブロックのデータを消去する。ここで、書き込み先データブロックとは、書き込みを行う対象であるデータブロックのことである。
続くステップ180では、書き込み先データブロックにレコードを書き込む。
続くステップ190では、前ブロックに、DFフラグを立て、一旦本処理を終了する。
(2)ここで、所定の順序で更新する管理ブロックの指定方法について説明する。
図8に示すように、管理ブロック群は、状態記憶部に、AW、AF、DFフラグのいずれのフラグも立っていない管理ブロック1つと、AW、AF、DFフラグの全てのフラグが立っている1つ以上の管理ブロックから構成される。
このとき、順序性のため、最新の管理ブロックの次の管理ブロックを更新ブロックとすることが望ましい。
順序性に基づくと、最新の管理ブロックは、状態管理部のいずれのフラグも立っていない管理ブロックであると判断できる。
(3)次に、上述した処理によって実施されるデータの書き込み手順について、より詳細に説明する。
ここでは、図9に示すように、管理ブロック3個、データブロック3個、管理ブロック群の順序性は、「アドレス0x05→アドレス0x04→アドレス0x03→アドレス0x05→・・」とする。
また、以下では、アドレス"0x20"に、レコード"0000000011111111"を書き込む場合を例に挙げて説明する。
図10に示すように、(1)は、定常状態を示しており、この定常状態の際に、アドレス"0x20"のデータブロックに、レコード"0000000011111111"を記憶する要求を受領する。
(2)では、管理ブロック群から、更新ブロックを特定する(ステップ120)。ここでは、アドレス"0x50"のブロックとなる。
(3)では、アドレス"0x50"のブロックの前のブロック(アドレス"0x30")に、AWフラグを立てる(ステップ130)。
(4)では、アドレス"0x50"のブロックのデータを消去する(ステップ140)。
(5)では、アドレス"0x50"のブロックに、書き換え予定のアドレス(アドレス"0x20")を記憶する(ステップ150)。
(6)では、アドレス"0x30"のブロックに、AFフラグを立てる(ステップ160)。
(7)では、アドレス"0x20"のブロックのデータを消去する(ステップ170)。
(8)では、アドレス"0x20"のブロックに、レコード"0000000011111111"を書き込む(ステップ180)。
(9)では、アドレス"0x30"のブロックに、DFフラグを立てる(ステップ190)。なお、これによって定常状態に戻る。
[電源断からの再開時の処理]
次に、電源が遮断された後に、再度電源が供給された場合の処理(管理装置1の動作を再開する際の処理)について説明する。
図11に示すように、ステップ200では、管理ブロック群は定常状態か否かを判定する。ここで肯定判断されると、書き換え中の処理中断が発生していないとして、一旦本処理を終了し、一方否定判断されると、ステップ210に進む。
ステップ210では、管理ブロック群は(データブロックの書き換え中に中断したことを示す)データブロック書き換え中断状態か否かを判定する。ここで肯定判断されると、ステップ220に進み、一方否定判断されると、管理ブロック書き換え中に処理中断が発生したとして、ステップ240に進む。
なお、データブロック書き換え中断状態とは、管理ブロック群が、AW、AFフラグが立っていて、DFフラグが立っていない管理ブロック1つと、何のフラグも立っていない管理ブロック1つと、全てのフラグが立っている管理ブロック1つ以上で構成されるので、その状態であれば、データブロック書き換え中断状態と判定できる。
例えば、電源断からの再開時に、前記図10の(6)、(7)、(8)に示すように、AW、AFフラグが立ち、DFフラグが立っていない管理ブロックが見つかれば、その管理ブロックの次のブロックのアドレスが示すデータブロックの書き換え中に電源が遮断され、データ書き換えに失敗したと判定する。
ステップ220では、管理ブロックが保持するアドレスがダミーアドレスであるか否かを判定する。ダミーアドレスは復帰処置中に書き込まれる無効なアドレス値である。ここで肯定判断されると、復帰処理中に処理中断されたとして、前記ステップ240に進み、一方否定判断されると、データブロック書き換え中に処理中断が発生したとして、ステップ230に進む。
ステップ230では、管理ブロックのアドレスが示すデータブロックを書き換え中に処理中断が発生したと判断して、前記ステップ240に進む。
ステップ240では、後述する復帰処理を施し、定常状態に戻して、一旦本処理を終了する。
[復帰処理]
ここでは、上述した復帰処理の内容について説明する。
(1)まず、復帰時に状態記憶部が示すブロック書き換え状態ついて説明する。
図12に、復帰時における各フラグの状態と(各フラグによって示される)ブロック書き換え状態を示すが、AW、AF、DFフラグの状態によって、ブロックの書き換え状態を判断することができる。
なお、この図12では、Blankがフラグの立っていない状態を示し、Non-blankがフラグの立っている状態を示している。
(2)次に、前記図7のステップ110、前記図11のステップ240にて実施される復帰処理について説明する。
図13に示すように、ステップ300では、管理ブロック群のうち、全てのフラグが立っている管理ブロックのデータを消去する。
続くステップ310では、管理ブロック群のうち、全てのフラグが立っている管理ブロック以外の管理ブロックのデータを消去する。
続くステップ320では、任意の管理ブロックを対象ブロックとする。なお、任意の管理ブロックとは、前記ステップ300、310でデータが消去された管理ブロックのうちのいずれかのことである。
続くステップ330では、管理ブロック群は、定常状態か否かを判定する。ここで肯定判断されると一旦本処理を終了し、一方否定判断されるとステップ340に進む。
ステップ340では、対象ブロックにAWフラグを立てる。
続くステップ350では、対象ブロックの次の管理ブロックに、ダミーアドレスを書き込む。
続くステップ360では、対象ブロックにAFフラグを立てる。
続くステップ370では、対象ブロックにDFフラグを立てる。
続くステップ380では、対象ブロックの次ブロックを対象ブロックとし、前記ステップ330に戻る。
(3)次に、上述した復帰処理の手順について、より詳細に説明する。
図14に示すように、(1)は、定常状態ではないフラグパターン(フラグの設定状態)を示している。
(2)では、全てのフラグが立っている管理ブロックのデータを消去する(ステップ300)。ここでは、アドレス"0x50"のブロックとなる。
(3)では、同様に、全てのフラグが立っている管理ブロックのデータを消去する(ステップ300)。ここでは、アドレス"0x40"のブロックとなる。
(4)では、全てのフラグが立っている管理ブロック以外の管理ブロックのデータを消去する(ステップ310)。ここでは、アドレス"0x30"のブロックとなる。
(5)では、任意の管理ブロックを対象ブロックとする(ステップ320)。ここでは、アドレス"0x50"のブロックとする。
(6)では、対象ブロックにAWフラグを立て(ステップ340)、対象ブロックの次ブロックにダミーアドレスを書き込み(ステップ350)、対象ブロックにAFフラグを立て(ステップ360)、対象ブロックにDFフラグを立てる(ステップ370)。
ここでは、アドレス"0x50"のブロックにフラグを書き込み、アドレス"0x40"のブロックにダミーアドレスを書き込む。
(7)では、対象ブロックの次ブロックを対象ブロックとする(ステップ380)。ここでは、対象ブロックをアドレス"0x40"のブロックに変更する。
(8)では、前記(6)と同様に、対象ブロックにAWフラグを立て(ステップ340)、対象ブロックの次ブロックにダミーアドレスを書き込み(ステップ350)、対象ブロックにAFフラグを立て(ステップ360)、対象ブロックにDFフラグを立てる(ステップ370)。ここでは、アドレス”0x40”のブロックに各フラグを書き込み、アドレス"0x30"のブロックにダミーアドレスを書き込む。
これにより、定常状態に復帰したことになる。
(4)ここで、上述した復帰処理時の消去の順番について説明する。
管理ブロック群を定常状態に復帰させるために、管理ブロック(即ちそのデータ)を全消去する必要がある。
このとき、本実施例1では、上述したように、管理ブロックの消去の順番として、AW、AF、DFフラグの全てのフラグが立っている管理ブロックのデータを消去した後に、他の管理ブロックのデータを消去する。
この理由は、復帰処理のために消去時に、電源瞬断が発生したとき、「処理中断が発生していない」や「データブロック書き換え中に中断した」などの誤判定をしないためである。
例えば、管理ブロック群の復帰処理時のデータを、上記のようにしないと、図15にしめすようになる恐れがある。
つまり、始めに全てのフラグが立っている管理ブロック以外のブロック(例えばアドレス"0x00"のブロック)のデータを消去した場合に、その後で、電源が遮断されてから処理が再開されると、「処理中断が発生していない」と誤判断されてしまう。
[本実施例1の効果]
本実施例1の記憶媒体の管理装置1は、データを書き換える際の消去単位であるブロックとして、データを記憶する複数のデータブロックと、データブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックと、を有するFlashメモリ3に対して、データの書き換えを管理するものである。
また、本実施例1では、複数の管理ブロックを使用する順序を予め循環的となるように設定しており、データを書き換える対象データブロックを変更する際には、前記順序に従って対象データブロックのデータの書き換えに関する情報(アドレス、AWフラグ、AFフラグ、DFフラグ)を記憶する管理ブロックを変更している。そして、対象データブロックを変更する際には、前記順序に従って対象データブロックのデータの書き換えに関する情報を記憶してゆく。
つまり、本実施例1では、複数の管理ブロックの使用順序を設定して循環的に使用することにより、Flashメモリ3のデータ書き換え処理の中断を検出する場合に、特定の管理ブロックに負荷(即ち書き換えを行うための動作)が集中することを避けることができる。これにより、書き換えの際の負荷を分散することができるので、Flashメモリ3の高い耐久性を実現することができる。
また、従来のように、レコードに対して1対1に冗長領域を設定するのではなく、同じ管理ブロックを複数回使用するように管理ブロックを使用する順番を設定しているので、従来に比べて、使用する管理ブロックを減らすことが可能である。そのため、メモリ効率を高めることができる。
例えば管理ブロック数をデータブロック数より少なくすることができ、また、データブロック数が増えた場合でも、管理ブロック数を維持することやデータブロック数の増加数より少ない増加数とすることが可能である。
つまり、冗長領域は、管理ブロックとして利用するブロック数分となり、また、利用しなければならない管理ブロック数は、データブロック数に依存しないという利点がある。
従って、本実施例1では、Flashメモリ3のデータの書き換え処理の際に、例えば電源の遮断によって、書き換え処理に中断が生じる場合でも、Flashメモリ3の高いメモリ効率と高い耐久性とを両立できるという顕著な効果を奏する。
また、本実施例1では、複数の管理ブロックに、それぞれ、データブロックのアドレスを記憶するアドレス部と、データブロックのアドレスの書き換え状態とデータブロックのデータの書き換え状態を記憶する状態記憶部とを備えるとともに、(書き換えを行う)所定の対象データブロックについて、そのアドレスを記憶するアドレス部と、アドレスの書き換え状態(AW、AFフラグ)や対象データブロックのデータの書き換え状態(DFフラグ)を記憶する状態記憶部とを、異なる管理ブロックに設定している。
詳しくは、管理ブロックとして、例えば、使用順序の早い第1の管理ブロックと次の使用順序の第2の管理ブロックとを備え、第2の管理ブロックのアドレス部には、対象データブロックのアドレスを記憶し、第1の管理ブロックの状態記憶部には、第2の管理ブロックのアドレスの書き換え開始を示す情報(AWフラグ)と、 第2の管理ブロックのアドレスの書き換え完了を示す情報(AFフラグ)と、対象データブロックのデータの書き換え完了を示す情報(DFフラグ)と、を記憶している。
このように、所定の対象データブロックに関して、アドレス部と状態記憶部とを異なる管理ブロックに記憶しているので、同一の管理ブロックに記憶した場合に比べて、アドレスや対象データブロックのデータの書き込み状態の把握を、より安定的に行うことができる。
例えばアドレスを記憶している管理ブロックを削除した場合でも、そのアドレス等の書き込み状態がどのようであったかを他の管理ブロックから把握することができる。
次に、実施例2について説明するが、前記実施例1と同様な内容の説明は省略又は簡略化する。なお、各構成の番号は実施例1と同じものを使用する(以下同様)。
本実施例2は、ハード構成は前記実施例1と同じであり、主要な処理等は同じであるので、異なる点を説明する。
本実施例2では、復帰処理時の電源遮断の検出のために、管理ブロックに異常検出用の領域を設定するものである。
[Flashメモリのデータ構造]
まず、本実施例2におけるFlashメモリ3のデータ構造について説明する。
図16に示すように、Flashメモリ3では、記憶領域として、複数(m個)の管理ブロックからなる管理ブロック群と、複数(n個)のデータブロックからなるデータブロック群とを有している。なお、m≦nである。
この管理ブロック群は、複数の管理ブロック(例えばm≧3)からなり、各管理ブロックは、書き換え中のデータブロックのアドレスを記憶するアドレス部と、アドレス部とデータブロックの書き換え状態を記憶する状態記憶部と、復帰処理時の消去完了前の電源断異常を記憶する異常記憶部とからなる。
なお、状態記憶部は、各状態を記憶する3個の(AW、AF、DFのフラグの)記憶領域から構成され、異常記憶部は、電源断異常を記憶する1個のAEフラグから構成されている。
本実施例2では、後述するように、復帰処理時の消去前に、図17に示すように、エラーフラグであるAEフラグを立て(管理ブロックのデータの消去前にAEフラグを立て)、このエラーフラグが立っている限りは、処理再開時は必ず復帰処理を実施する。
なお、後述するように、全管理ブロックを消去する際には、一番最後に、エラー判定用管理ブロック(図17では管理ブロック0)を削除する。
[Flashメモリの管理ブロック群の論理構造]
(1)次に、Flashメモリ3の管理ブロック群の論理構造について、具体例を挙げて説明する。
なお、本実施例2は、m<nの場合に適用するより好ましい結果が得られるが、 ここでは、説明を簡易化するために、管理ブロック3個(0〜2)、データブロック3個(0〜2)の場合を例に挙げて説明する。
図18に示すように、管理ブロックは、管理ブロック0→管理ブロック1→管理ブロック2→管理ブロック0・・の順番で、循環的に順序性が規定されている。
また、状態記憶部は、実施例1と同様に、3つのフラグ(AW、AF、DF)をもち、異常記憶部は、1つのフラグ(AE)を持ち、それぞれ、ブランクか非ブランクかの2値をとる。
なお、管理ブロック0の異常記憶部のAEフラグは、エラー判定に使用されるが、他の管理ブロック1、2のAEフラグは、エラー判定に使用されない。つまり、ここでは、管理ブロック0が、エラー判定用の管理ブロックである。
(2)次に、AEフラグによる異常の表示について説明する。
図19に示すように、管理ブロック0のAEフラグがBlankで、管理ブロック1、2のAEフラグがNo−careの場合には、電源断が無い正常の状態を示している。
なお、No−careとは、BlankとNon−Blankのどちらでもよい状態を示している。
また、管理ブロック0のAEフラグがNon−Blankで、管理ブロック1、2のAEフラグがNo−careの場合には、電源断が有る異常の状態を示している。
なお、定常状態では、管理ブロック群が、何のフラグも立っていない管理ブロック1つと、AEフラグ以外の全てのフラグが立っている管理ブロック1つ以上で構成される。
また、データブロック書き換え中断状態は、管理ブロック群が、AW、AFフラグが立っていて、DF、AEフラグが立っていない管理ブロック1つと、何のフラグも立っていない管理ブロック1つと、AEフラグ以外の全てのフラグが立っている管理ブロック1つ以上で構成される。
[復帰処理の手順]
次に、本実施例2における復帰処理の手順について説明する。
図20に示すように、(1)は、定常状態ではないフラグパターンを示している。なお、アドレス"0x50"の管理ブロックが、エラー判定用管理ブロックである。
(2)では、アドレス"0x50"のエラー判定用管理ブロックにAEフラグを立てる。
(3)では、エラー判定用管理ブロック以外の管理ブロックのデータを消去する。ここでは、アドレス"0x30"の管理ブロックのデータを消去する。
(4)では、同様に、エラー判定用管理ブロック以外の管理ブロックのデータを消去する。ここでは、アドレス"0x40"の管理ブロックのデータを消去する。
(5)では、最後に、エラー判定用管理ブロックのデータを消去する。ここでは、アドレス"0x50"の管理ブロックのデータを消去する。
(6)では、前記実施例1と同様に、復帰処理におけるダミーアドレスを書き込む処理を行う。
(7)では、上述した処理によって、定常状態に復帰した状態を示している。
[本実施例2の効果]
本実施例2では、複数の管理ブロックのうち所定の管理ブロックに、前記状態記憶部に加えて、更にFlashメモリ3に電力を供給する電源の遮断の発生を示す情報(AEフラグ)を記憶する異常記憶部を備えている。詳しくは、電源の遮断から復帰する際には、異常記憶部に復帰処理中の電源の遮断の発生を示すAEフラグを設定している。
また、本実施例2では、管理ブロックのデータを消去する際には、異常記憶部を有する所定の管理ブロック以外から順番にデータを消去する。つまり、全管理ブロックのデータを消去する際には、一番最後に、エラー判定用管理ブロックのデータを削除する。
従って、本実施例2では、前記実施例1と同様な効果を奏するとともに、上述した構成によって、復帰処理中の電源の遮断の発生を確実に把握できるとともに、「復帰処理中に処理中断が発生していない」と誤判断されてしまうことを確実に防止することができるという利点がある。
尚、本発明は前記実施例などになんら限定されるものではなく、本発明を逸脱しない範囲において種々の態様で実施しうることはいうまでもない。
(1)例えば前記各実施例において、例えば1つの構成要素が有する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を1つの構成要素に統合したりしてもよい。また、実施例の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。更に、実施例の構成の少なくとも一部を、他の実施例の構成に対して付加、置換等してもよい。
(2)なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として実施例に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
(3)本発明が適用できる記憶媒体としては、書き換え(書き込みや消去)の回数が制限されている例えばFlashメモリ等の不揮発性メモリが挙げられる。
(4)前記実施例1、2では、データブロックの数と管理ブロックの数とが同じ例で説明した箇所があるが、管理ブロックの数(m)をデータブロックの数(n)より少なくすることができる。例えばデータブロック数が4個以上の場合に、管理ブロック数を(データブロック数より少ない)3個以上とすること(m<n)ができる。
1…記憶媒体の管理装置
3…フラッシュメモリ(Flashメモリ)
5…CPU
9…Flashコントローラ
11…ROM
13…RAM

Claims (11)

  1. データを書き換える際の消去単位であるブロックとして、前記データを記憶する複数のデータブロックと、前記データブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックと、を有する記憶媒体(3)に対して、前記データの書き換えを管理する管理装置(1)であって、
    前記複数の管理ブロックを前記情報の記憶のために使用する順序を設定するとともに、前記順序を複数の管理ブロックを繰り返して使用するように設定し、
    前記データを書き換える書換対象のデータブロックを変更する際には、前記順序に従って前記書換対象のデータブロックのデータの書き換えに関する情報を記憶する前記管理ブロックを変更する(ステップ120〜190)構成を有し、
    前記書換対象のデータブロックのデータの書き換えに関する情報とは、前記書換対象のデータブロックのアドレスと、前記アドレスの書き換え状態を示す第1情報と、前記書換対象のデータブロックのデータの書き換え状態を示す第2情報と、のうち少なくとも1種であり、
    且つ、前記書換対象のデータブロックのアドレスと、前記第1情報及び第2情報のうち少なくとも第1情報と、を異なる管理ブロックに記憶する(ステップ120〜190)ことを特徴とする記憶媒体の管理装置。
  2. 前記複数の管理ブロックには、それぞれ、前記書換対象のデータブロックのアドレスを記憶するアドレス部と、前記第1情報及び第2情報を記憶する状態記憶部とを備えたことを特徴とする請求項に記載の記憶媒体の管理装置。
  3. 前記管理ブロックとして、使用順序の早い第1の管理ブロックと次の使用順序の第2の管理ブロックとを備え、
    前記第2の管理ブロックには、前記書換対象のデータブロックのアドレスを記憶し、
    前記第1の管理ブロックには、第2の管理ブロックのアドレスの書き換え開始を示す情報と、第2の管理ブロックのアドレスの書き換え完了を示す情報と、前記書換対象のデータブロックのデータの書き換え完了を示す情報と、を記憶する(ステップ120〜190)ことを特徴とする請求項1又は2に記載の記憶媒体の管理装置。
  4. データを書き換える際の消去単位であるブロックとして、前記データを記憶する複数のデータブロックと、前記データブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックと、を有する記憶媒体(3)に対して、前記データの書き換えを管理する管理装置(1)であって、
    前記複数の管理ブロックを前記情報の記憶のために使用する順序を設定するとともに、前記順序を複数の管理ブロックを繰り返して使用するように設定し、
    前記データを書き換える書換対象のデータブロックを変更する際には、前記順序に従って前記書換対象のデータブロックのデータの書き換えに関する情報を記憶する前記管理ブロックを変更する(ステップ120〜190)構成を有し、
    前記書換対象のデータブロックのデータの書き換えに関する情報とは、前記書換対象のデータブロックのアドレスと、前記アドレスの書き換え状態を示す第1情報と、前記書換対象のデータブロックのデータの書き換え状態を示す第2情報と、のうち少なくとも1種であり、
    前記複数の管理ブロックには、それぞれ、前記書換対象のデータブロックのアドレスを記憶するアドレス部と、前記第1情報及び第2情報を記憶する状態記憶部とを備え、
    且つ、前記管理ブロックとして、使用順序の早い第1の管理ブロックと次の使用順序の第2の管理ブロックとを備え、
    前記第2の管理ブロックには、前記書換対象のデータブロックのアドレスを記憶し、
    前記第1の管理ブロックには、第2の管理ブロックのアドレスの書き換え開始を示す情報と、第2の管理ブロックのアドレスの書き換え完了を示す情報と、前記書換対象のデータブロックのデータの書き換え完了を示す情報と、を記憶する(ステップ120〜190)ことを特徴とする記憶媒体の管理装置。
  5. データを書き換える際の消去単位であるブロックとして、前記データを記憶する複数のデータブロックと、前記データブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックと、を有する記憶媒体(3)に対して、前記データの書き換えを管理する管理装置(1)であって、
    前記複数の管理ブロックを前記情報の記憶のために使用する順序を設定するとともに、前記順序を複数の管理ブロックを繰り返して使用するように設定し、
    前記データを書き換える書換対象のデータブロックを変更する際には、前記順序に従って前記書換対象のデータブロックのデータの書き換えに関する情報を記憶する前記管理ブロックを変更する(ステップ120〜190)構成を有し、
    前記複数の管理ブロックのうち所定の管理ブロックに、更に、前記記憶媒体に電力を供給する電源の遮断の発生を示す情報を記憶する異常記憶部を有し、
    前記電源の遮断から復帰する際には、前記異常記憶部に、前記電源の遮断の発生を示すフラグを設定することを特徴とする記憶媒体の管理装置。
  6. 前記管理ブロックのデータを消去する際には、前記異常記憶部を有する前記所定の管理ブロック以外から順番にデータを消去することを特徴とする請求項に記載の記憶媒体の管理装置。
  7. データを書き換える際の消去単位であるブロックとして、前記データを記憶する複数のデータブロックと、前記データブロックのデータの書き換えに関する情報を記憶する複数の管理ブロックと、を有する記憶媒体(3)に対して、前記データの書き換えを管理する管理装置(1)であって、
    前記複数の管理ブロックを前記情報の記憶のために使用する順序を設定するとともに、前記順序を複数の管理ブロックを繰り返して使用するように設定し、
    前記データを書き換える書換対象のデータブロックを変更する際には、前記順序に従って前記書換対象のデータブロックのデータの書き換えに関する情報を記憶する前記管理ブロックを変更する(ステップ120〜190)構成を有し、
    前記複数の管理ブロックのうち所定の管理ブロックに、更に、前記記憶媒体に電力を供給する電源の遮断の発生を示す情報を記憶する異常記憶部を有し、
    前記管理ブロックのデータを消去する際には、前記異常記憶部を有する前記所定の管理ブロック以外から順番にデータを消去することを特徴とする記憶媒体の管理装置。
  8. 前記書換対象のデータブロックのデータの書き換えに関する情報とは、前記書換対象のデータブロックのアドレスと、前記アドレスの書き換え状態を示す第1情報と、前記書換対象のデータブロックのデータの書き換え状態を示す第2情報と、のうち少なくとも1種であることを特徴とする請求項5〜7のいずれか1項に記載の記憶媒体の管理装置。
  9. 前記複数の管理ブロックには、それぞれ、前記書換対象のデータブロックのアドレスを記憶するアドレス部と、前記第1情報及び第2情報を記憶する状態記憶部とを備えたことを特徴とする請求項8に記載の記憶媒体の管理装置。
  10. 前記書換対象のデータブロックのアドレスと、前記第1情報及び第2情報のうち少なくとも第1情報と、を異なる管理ブロックに記憶する(ステップ120〜190)ことを特徴とする請求項8又は9に記載の記憶媒体の管理装置。
  11. 前記管理ブロックとして、使用順序の早い第1の管理ブロックと次の使用順序の第2の管理ブロックとを備え、
    前記第2の管理ブロックには、前記書換対象のデータブロックのアドレスを記憶し、
    前記第1の管理ブロックには、第2の管理ブロックのアドレスの書き換え開始を示す情報と、第2の管理ブロックのアドレスの書き換え完了を示す情報と、前記書換対象のデータブロックのデータの書き換え完了を示す情報と、を記憶する(ステップ120〜190)ことを特徴とする請求項9又は10に記載の記憶媒体の管理装置。
JP2014162589A 2014-08-08 2014-08-08 記憶媒体の管理装置 Expired - Fee Related JP6311525B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014162589A JP6311525B2 (ja) 2014-08-08 2014-08-08 記憶媒体の管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014162589A JP6311525B2 (ja) 2014-08-08 2014-08-08 記憶媒体の管理装置

Publications (2)

Publication Number Publication Date
JP2016038778A JP2016038778A (ja) 2016-03-22
JP6311525B2 true JP6311525B2 (ja) 2018-04-18

Family

ID=55529787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014162589A Expired - Fee Related JP6311525B2 (ja) 2014-08-08 2014-08-08 記憶媒体の管理装置

Country Status (1)

Country Link
JP (1) JP6311525B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4060245B2 (ja) * 2003-06-30 2008-03-12 シャープ株式会社 メモリ管理装置およびこれを備えたicカード
JP5422886B2 (ja) * 2007-12-25 2014-02-19 凸版印刷株式会社 半導体装置
JP4803757B2 (ja) * 2008-06-02 2011-10-26 ルネサスエレクトロニクス株式会社 半導体処理装置
JP2011175428A (ja) * 2010-02-24 2011-09-08 Kyocera Corp 記憶装置

Also Published As

Publication number Publication date
JP2016038778A (ja) 2016-03-22

Similar Documents

Publication Publication Date Title
US9632714B2 (en) Solid-state drive device
KR101822485B1 (ko) 차량용 소프트웨어 원격 업데이트시 전원 차단 후 복구 방법
KR20140055938A (ko) 랙 및 기본 입출력 시스템을 동시에 업데이트하는 랙 방법
JP2006323751A (ja) 情報処理装置、寿命監視方法およびプログラム
JP5581577B2 (ja) データ処理装置
JP2016118815A (ja) 不揮発性メモリ装置
JP5981906B2 (ja) 画像形成装置
US20160048120A1 (en) Programmable logic controller system and programmable logic controller
JP2010086009A (ja) 記憶装置およびメモリ制御方法
WO2014147906A1 (ja) データ記憶装置、データの記憶方法および車載用制御装置
JP2002318733A (ja) ブロック消去型記憶媒体の管理装置
JP2007034858A (ja) データバックアップ方法及びメモリ装置
JP6311525B2 (ja) 記憶媒体の管理装置
JP2007328438A (ja) 情報処理装置、そのデータバックアップ及び復旧方法
JP2009116521A (ja) メモリのデータ書替方法
CN110275797B (zh) 控制器以及数据保存方法
JP2018073161A (ja) 電子制御装置
JP2013200919A (ja) 不揮発性半導体メモリ装置、及び、その制御方法
JP4143952B2 (ja) メモリバックアップ方法および装置
JP6636930B2 (ja) フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム
JP2019160080A (ja) 制御装置および異常検出方法
JP6241373B2 (ja) 記憶装置、フラッシュメモリ制御装置、及びプログラム
JP5161600B2 (ja) 情報処理装置およびデータ復旧方法
JP2005071124A (ja) 不揮発メモリシステム
JP2010134822A (ja) 半導体メモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180129

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: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R151 Written notification of patent or utility model registration

Ref document number: 6311525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees