JP2009093528A - Memory data management apparatus - Google Patents
Memory data management apparatus Download PDFInfo
- Publication number
- JP2009093528A JP2009093528A JP2007265356A JP2007265356A JP2009093528A JP 2009093528 A JP2009093528 A JP 2009093528A JP 2007265356 A JP2007265356 A JP 2007265356A JP 2007265356 A JP2007265356 A JP 2007265356A JP 2009093528 A JP2009093528 A JP 2009093528A
- Authority
- JP
- Japan
- Prior art keywords
- data
- marker
- area
- value
- memory
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 140
- 238000013523 data management Methods 0.000 title claims description 58
- 239000003550 marker Substances 0.000 claims abstract description 74
- 238000006243 chemical reaction Methods 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 29
- 238000007726 management method Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 15
- 230000006378 damage Effects 0.000 description 12
- 238000013500 data storage Methods 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
本発明は、フラッシュメモリ(特に、NAND型フラッシュメモリ)などの不揮発性記憶装置へのデータ書き込みやデータ読み出しを管理するメモリデータ管理装置に関する。 The present invention relates to a memory data management device that manages data writing and data reading to a nonvolatile storage device such as a flash memory (in particular, a NAND flash memory).
フラッシュメモリのデータ書き換え回数には物理的な限界があり、通常、最大データ書き換え回数は10万回程度である。それ以上の書き換えを行ったフラッシュメモリのセル(メモリセル)は、破壊される可能性が高くなり、そして、一度破壊されると、それ以後、データ書き換えは不可能となる。 There is a physical limit to the number of times data can be rewritten in the flash memory, and the maximum number of times data is rewritten is usually about 100,000 times. A flash memory cell (memory cell) that has been rewritten further has a high possibility of being destroyed, and once destroyed, data rewriting becomes impossible thereafter.
フラッシュメモリには複数の種類が存在しているが、近年、特にNAND型フラッシュメモリの集積度が上がり、低価格化が進んでいる。NAND型フラッシュメモリでは、データの書き換えが行われる場合、ブロック単位でデータが消去された後に、新たなデータの書き込みが行われる。すなわち、データの書き換え時には、たとえ1バイトのデータ書き換えであっても、ブロック単位(通常、数10キロバイト)の消去が常に必要となる。 There are a plurality of types of flash memories, but in recent years, the integration density of NAND flash memories has increased, and the price has been reduced. In the NAND flash memory, when data is rewritten, new data is written after data is erased in units of blocks. That is, at the time of data rewriting, even in the case of 1-byte data rewriting, it is always necessary to erase in units of blocks (usually several tens of kilobytes).
したがって、データを何度も書き換える場合に、書き込み位置(アドレス)が常に固定されていると、やがてその位置のメモリセルが破壊されてしまうことになる。このようなある一部の書き込み位置のメモリセルの破壊は、そのメモリセルが含まれるブロック全体を使用不能としてしまうため、容量、効率及び信頼性の損失が大きい。 Therefore, when data is rewritten many times, if the write position (address) is always fixed, the memory cell at that position will eventually be destroyed. Such destruction of a memory cell at a certain writing position makes the entire block including the memory cell unusable, resulting in a large loss of capacity, efficiency, and reliability.
上記の問題を解決するため、
・データ書き込みの集中によるメモリセルの破壊が起こらないように、データの書き込み位置を分散してデータ書き込みを行う
・誤り符号などにより破壊が検出された場合には、予備のブロックを代替して使う
などの従来の技術が知られている。
To solve the above problem,
・ Distribute data writing positions to prevent destruction of memory cells due to concentration of data writing. ・ If damage is detected by an error code, spare blocks are used instead. Conventional techniques such as these are known.
従来の技術として、メモリ領域の使用・未使用の管理、書き換え(消去)回数の管理をブロック単位で行い、これらの管理情報を、フラッシュメモリの任意の場所に保存しておく技術が知られている。例えば、下記の特許文献1には、フラッシュメモリは初期状態でないとデータ書き込みができないことから、効率の良いデータ書き換えを行うために、フラッシュメモリ上にブロックやデータの管理情報を保存し、この管理情報を利用して書き込み処理と消去処理を別に行う仕組みが開示されている。
As a conventional technique, there is known a technique for managing used / unused memory areas and managing the number of rewrites (erase) in units of blocks and storing the management information in an arbitrary location in the flash memory. Yes. For example, in
また、データの消去又は書き込みをしている最中に、何らかの要因で電源供給が断たれた場合においても、データの破壊が起こる。この場合、再度電源が供給されたときに、データの復旧が行われることが望ましい。このためには、例えば、電源供給が再度行われた場合に、常に固定の初期値に戻すという方法や、あるいは、データの破壊に備えて、前もってバックアップデータを保存しておく方法などが存在する。後者のバックアップデータの保存を行う方法は、最後に正しく書けたデータを消去しないで保存しておき、新たなデータ書き込み時にデータ破壊が起こった場合に、その保存しておいたデータを最新のデータとして扱う方法である。
しかしながら、ブロック単位の管理によってブロックごとの書き込み回数の分散を行う従来の方法では、ブロック内の同じ位置(ブロック先頭バイトからのオフセット)への書き込みが集中的に起こる場合には、たとえブロックを分散させても、ブロックの寿命は一部のメモリセルの破壊のために短くなるという第1の問題点がある。 However, in the conventional method that distributes the number of times of writing for each block by managing in units of blocks, if writing to the same position (offset from the block first byte) in the block occurs intensively, even if the block is distributed Even so, there is a first problem that the lifetime of the block is shortened due to destruction of some memory cells.
また、管理情報をデータとは別のブロックにまとめて保持する従来の方法では、書き込みのたびに管理情報の更新が必要であり、さらに、管理情報が保持されているブロックの破壊を考慮した復旧の仕組みが必要である。これは、処理量の面でもメモリ使用量の面でも非効率であり、依然としてブロックの破壊の懸念が残るという第2の問題点がある。すなわち、管理情報をフラッシュメモリに保存する技術によれば、データの書き換えと同時に、管理情報の更新も行われる必要があり、管理情報の更新の分だけ、メモリセルのデータ書き換え回数を消費してしまうことになる。また、管理情報自体の破壊の可能性(あるいは、管理情報が書き込まれているメモリセルの破壊の可能性)があるため、管理情報を別ブロックにバックアップしておく必要もある。 In addition, with the conventional method of storing management information in blocks separate from data, management information needs to be updated each time data is written, and recovery is performed in consideration of the destruction of the block that holds management information. This mechanism is necessary. This is inefficient both in terms of processing amount and memory usage, and there is a second problem that there is still concern about block destruction. That is, according to the technology for storing the management information in the flash memory, it is necessary to update the management information at the same time as the rewriting of data, and the number of times of data rewriting of the memory cell is consumed by the update of the management information. It will end up. Further, since there is a possibility of destruction of the management information itself (or possibility of destruction of the memory cell in which the management information is written), it is necessary to back up the management information in another block.
また、バックアップデータを保存する方法を行う場合、どのような電源遮断であっても確実にデータを復旧できるようにするためには、少なくとも、バックアップデータは別のブロックに書いておく必要があり、さらに、バックアップデータがどのブロック(又はアドレス)に存在しているという情報をメモリのどこかに保存しておく必要が生じる場合もある。また、データの書き込みのたびにバックアップデータを消去せずに保存しておく必要もある。 In addition, when performing a method of saving backup data, at least the backup data must be written in a separate block in order to ensure that the data can be recovered regardless of the power interruption. Furthermore, it may be necessary to store information indicating in which block (or address) the backup data exists somewhere in the memory. Further, it is necessary to save the backup data without erasing it every time data is written.
また、データが破壊された際にデータ復旧が行われる場合、なるべく破壊される前のデータに近い状態にデータが復旧されることが望ましい。この場合、バックアップデータは別ブロックに保存される必要があるが、バックアップの単位をブロックにした場合には、データのサイズがブロックサイズに比べて小さいときには、メモリの使用量の面で非効率であるという第3の問題点がある。 Further, when data recovery is performed when the data is destroyed, it is desirable that the data be restored as close to the data as possible before the data is destroyed. In this case, the backup data needs to be stored in a separate block. However, when the backup unit is a block, if the data size is smaller than the block size, it is inefficient in terms of memory usage. There is a third problem.
また、従来の技術によれば、新たにデータが保存されるたびにバックアップが同時に行われるので、処理量や書き込み回数、書き込み時間が、バックアップ処理によって増大してしまうという第4の問題点がある。 In addition, according to the conventional technique, every time new data is saved, backup is performed at the same time. Therefore, there is a fourth problem that the amount of processing, the number of times of writing, and the writing time are increased by the backup processing. .
上記の問題点を解決するため、本発明は、NAND型フラッシュメモリの耐メモリ破壊性能を向上するとともに、効率的なデータ管理及びバックアップデータの保存を行って、効率的なメモリ使用を実現できるようなメモリデータ管理装置を提供することを目的とする。 In order to solve the above problems, the present invention improves the memory destruction resistance performance of the NAND flash memory and can efficiently use the memory by efficiently managing the data and storing the backup data. An object of the present invention is to provide a simple memory data management device.
上記の目的を達成するため、本発明によれば、NAND型フラッシュメモリへのデータの書き込み・読み出しの管理を行うメモリデータ管理装置において、
前記NAND型フラッシュメモリは、記憶領域があらかじめ所定容量ごとに分割されている複数の分割領域を、それぞれページと定義されており、前記記憶領域の最初の分割領域である先頭ページから最後の分割領域である最終ページまで連続したページ番号が割り当てられており、このページ番号を指定することで前記ページ毎にデータの書き込み・読み出しが行われるメモリであり、また、データの消去処理は、ページ番号が連続する所定数の前記ページからなるブロックごとに一括して行われ、かつ、消去済みブロック内のすべての記録領域は、前記消去処理によってあらかじめ定まる所定値となるメモリであり、
種類の異なるデータをそれぞれ識別するために割り当てた識別番号、及びその識別番号を割り当てたデータのデータ長情報を含むヘッダ部の先頭に前記消去処理によってあらかじめ定まる所定値とは異なり、かつ、前記識別番号に使用しない値に設定したマーカを付加するとともに、前記データ内に前記マーカの値と同じ値が存在する場合には、その値が重複するようにデータを変換して変換データを生成し、前記マーカが付加されたヘッダ部及び前記変換データを結合して書き込み用データを生成する書き込み用データ生成手段と、
前記NAND型フラッシュメモリの各ページを参照して、前記各ページ内に記憶されているデータの値が前記所定値である消去済みページを未使用領域として特定する未使用領域特定手段と、
前記未使用領域特定手段で特定された前記未使用領域を前記書き込み可能領域として、前記書き込み可能領域の先頭位置から、前記書き込み用データを書き込む書き込み手段と、
前記書き込み可能領域の直前の書き込み済み領域からページ番号をさかのぼって、前記マーカの値と一致する値のデータを検索し、前記マーカの値と一致する値のデータが重複して配列されていなかった場合、このデータを前記マーカと判断し、このマーカの位置を前記ヘッダの先頭位置と特定するヘッダ部特定手段と、
前記ヘッダ部特定手段で特定される前記ヘッダ部から、前記書き込み用データ生成手段で生成された前記種類の異なるデータそれぞれに割り当てた前記各識別番号を含むヘッダ部を特定し、それぞれの識別番号を最初に検出した書き込み済み領域を前記各識別番号が割り当てられた種類の異なるデータの最終書き込み領域とすることで、前記各識別番号が割り当てられた種類の異なるデータの最新書き込みデータの保存位置を特定する最新データ特定手段と、
を有することを特徴とするメモリデータ管理装置が提供される。
In order to achieve the above object, according to the present invention, in a memory data management device for managing the writing / reading of data to / from a NAND flash memory,
In the NAND flash memory, a plurality of divided areas in which the storage area is divided in advance for each predetermined capacity are defined as pages, respectively, and the first divided area from the first divided area to the last divided area of the storage area A continuous page number is assigned up to the last page, and by designating this page number, data is written / read out for each page. It is performed in a batch for each block consisting of a predetermined number of pages, and all the recording areas in the erased block are memories that have a predetermined value determined in advance by the erasing process,
Different from the predetermined value determined in advance by the erasing process at the head of the header part including the identification number assigned to identify each different type of data and the data length information of the data assigned the identification number, and the identification A marker set to a value not used for the number is added, and when the same value as the value of the marker exists in the data, the data is converted so that the value overlaps to generate converted data, Write data generation means for combining the header portion to which the marker is added and the conversion data to generate write data;
Referring to each page of the NAND flash memory, unused area specifying means for specifying an erased page whose data value stored in each page is the predetermined value as an unused area;
Writing means for writing the data for writing from the start position of the writable area, using the unused area specified by the unused area specifying means as the writable area;
The page number is traced back from the written area immediately before the writable area to search for data with a value that matches the marker value, and the data with the value that matches the marker value was not duplicated. In this case, this data is determined as the marker, and a header part specifying means for specifying the position of the marker as the head position of the header
From the header part specified by the header part specifying means, specify the header part including each identification number assigned to each of the different types of data generated by the write data generation means, and identify each identification number. The storage location of the latest written data of the different types of data to which each identification number is assigned is specified by making the first detected written area the final writing area of the different types of data to which the respective identification numbers are assigned. The latest data identification means,
A memory data management device is provided.
さらに、本発明によれば、上記の構成に加えて、前記書き込み用データ生成手段は、前記ヘッダ部に前記マーカを付加する際に、前記マーカの直後に、前記消去処理によってあらかじめ定まる前記所定値及び前記マーカとは異なる特定の値を配置するか、あるいは、前記ヘッダ部に前記マーカを付加する際に、前記マーカの直後に配置する前記識別番号の先頭部分の値を、前記マーカの値と一致しないように設定するメモリデータ管理装置が提供される。 Furthermore, according to the present invention, in addition to the above-described configuration, the write data generation means, when adding the marker to the header portion, the predetermined value determined in advance by the erasing process immediately after the marker. And a specific value different from that of the marker, or when adding the marker to the header part, the value of the head part of the identification number arranged immediately after the marker is set as the value of the marker. There is provided a memory data management device that is set so as not to match.
本発明によれば、NAND型フラッシュメモリの耐メモリ破壊性能を向上するとともに、効率的なデータ管理及びバックアップデータの保存を行って、効率的なメモリ使用が実現できるという効果を有する。 According to the present invention, the memory destruction resistance of the NAND flash memory can be improved, and efficient data use can be realized by performing efficient data management and backup data storage.
以下、図1を参照しながら、本発明の実施の形態における不揮発性記憶装置のデータ管理装置(メモリデータ管理装置)の構成の一例について説明する。図1は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置の構成の一例を示す図である。 Hereinafter, an example of the configuration of a data management device (memory data management device) of a nonvolatile storage device according to an embodiment of the present invention will be described with reference to FIG. FIG. 1 is a diagram illustrating an example of a configuration of a data management device of a nonvolatile storage device according to an embodiment of the present invention.
図1に図示されているように、NAND型フラッシュメモリ11を使った不揮発性記憶装置のデータ管理装置は、例えば、CPU(中央演算処理装置:Central Processing Unit)12に実装されているコントローラ13によって実現される。また、CPU12は、NAND型フラッシュメモリ11や、例えば、不揮発性記憶装置が有する演算用RAM(Random Access Memory)などのRAM14へのデータの読み書きを行うことが可能なように構成されている。
As shown in FIG. 1, a data management device of a nonvolatile storage device using a NAND flash memory 11 is, for example, a
また、図2は、本発明の実施の形態において、NAND型フラッシュメモリのメモリ分割の一例を示す図である。図2に図示されているように、NAND型フラッシュメモリ11には、CPU12によって実行されるプログラムが格納されており、さらに、データを保存するための記憶スペース(データ保存用スペース)が確保されている。CPU12によってNAND型フラッシュメモリ11に書き込み・読み出しされるデータは、このデータ保存用スペースに保存される。
FIG. 2 is a diagram showing an example of memory division of the NAND flash memory in the embodiment of the present invention. As shown in FIG. 2, the NAND flash memory 11 stores a program executed by the
また、図3は、本発明の実施の形態において、NAND型フラッシュメモリに書き込み・読み出しされるデータが配置されるアドレス空間の一例を示す図である。NAND型フラッシュメモリ11に書き込み・読み出しされるデータは、図3に図示されているようなアドレス空間に配置される。これは上記RAM14上のアドレス空間にあたる。図3において、連続したアドレス空間はいくつかの領域に分割され、分割された各領域にはIDが付与される(図3のID=1〜3)。そして、例えば、ID=2の領域のデータは、NAND型フラッシュメモリ11への書き込みの際にデータ圧縮されたデータとして以降の説明を行う。なお、図3は、連続したアドレス空間を分割した領域にそれぞれIDを付加する例が図示されているが、IDを付加する各領域は連続したアドレス空間に存在する必要はなく、それぞれ独立したアドレス空間(互いのアドレスが重複する)であっても、IDによって互いの領域は区別できるので問題ない。
FIG. 3 is a diagram showing an example of an address space in which data to be written / read to / from the NAND flash memory is arranged in the embodiment of the present invention. Data written to and read from the NAND flash memory 11 is arranged in an address space as shown in FIG. This corresponds to the address space on the
また、本発明では、後述のように、データに付加するヘッダ情報に、これから書き込むデータ(ヘッダ情報の後続のデータ)のサイズが含まれている。そのため、アドレス空間におけるデータのサイズと、フラッシュメモリに書き込まれるデータのサイズとが必ずしも一致する必要はない。また、書き込みの都度、データのサイズが変化してもよい。したがって、本発明では、データ圧縮技術を用いて、データのサイズを縮小することが可能である。 In the present invention, as will be described later, the size of the data to be written (the data subsequent to the header information) is included in the header information added to the data. For this reason, the size of data in the address space and the size of data written to the flash memory do not necessarily have to match. In addition, the size of data may change each time data is written. Therefore, in the present invention, the data size can be reduced by using the data compression technique.
CPU12のコントローラ13は、例えばシステム起動時に、NAND型フラッシュメモリ11の内容を解析することで、メモリ管理情報及びデータ管理情報を生成することが可能である。そして、CPU12のコントローラ13は、各IDが付加されたデータをRAM14上に読み込み、このときチェックサムを検査する。このチェックサムの検査の結果、データが破壊されていることを検出した場合には、この破壊されたデータに対応する古いデータをバックアップデータとして、新たにRAM14上に読み込む。なお、データ圧縮されているデータ(例えばID=2のデータ)は、RAM14上に読み込むと同時に解凍され、その結果、RAM14上には解凍されたデータが置かれる。
The
このように、NAND型フラッシュメモリ11に保存されているデータをRAM14上に読み込む構成とすることにより、NAND型フラッシュメモリ11に係るデータ読み込み処理は、システム起動時などに1回のみ行うだけでよくなる。すなわち、NAND型フラッシュメモリ11に保存されているデータは、システム起動時にRAM14上に展開されるので、その都度、データをNAND型フラッシュメモリ11から読む必要がなくなる。RAM14は、NAND型フラッシュメモリ11に比較してデータの書き込み、読み出しの処理速度が速い。したがって、本発明によれば、データの読み出し要求に応じてその都度NAND型フラッシュメモリ11からデータを読み出す場合に比べて、データを読み出す処理速度が速くなる。
As described above, by adopting a configuration in which the data stored in the NAND flash memory 11 is read onto the
一方、NAND型フラッシュメモリ11のデータを更新する場合には、まず、RAM14上に展開されているRAM14のデータの更新を行う。この更新時点では、NAND型フラッシュメモリ11のデータは更新しない。NAND型フラッシュメモリ11のデータの更新は別の任意のタイミングで、そのタイミングまでに更新されたRAM14のデータを書き込むことで行われる。これにより、従来必要であったNAND型フラッシュメモリ11への複数のデータ書き込みを、一回のデータ書き込みにまとめることが可能となり、NAND型フラッシュメモリ11へのデータ書き込み回数を低減させることが可能となる。
On the other hand, when updating the data of the NAND flash memory 11, first, the data of the
また、マルチスレッドをサポートしているオペレーティングシステムを使用する場合、書き込み専用スレッドを用意する。そして、この書き込み用スレッドを用いて、あるタイミング(例えば1秒ごと)にRAM14上に書き込まれている各IDが付与されたデータが書き換えられたかどうかをチェックし、任意のIDのデータが書き換えられたことを検出した場合には、NAND型フラッシュメモリ11にデータを書き込む。また、この書き込み専用スレッドによって、一定以上の容量の未使用領域が存在しているかどうかを常に検査し、未使用領域が不足している場合には、未使用領域を増やすための処理を行う。
When using an operating system that supports multi-threading, a write-only thread is prepared. Then, using this writing thread, it is checked whether or not the data to which each ID written in the
次に、本発明の実施の形態においてデータの書き込み・読み出しの際に参照されるデータの識別番号(ID番号)について説明する。 Next, data identification numbers (ID numbers) referred to when data is written / read in the embodiment of the present invention will be described.
上述のように、NAND型フラッシュメモリ11に保存されるデータは、同一のアドレス空間内に配置され、さらに、そのアドレス空間はいくつかの領域に分割されて、分割されたそれぞれの領域には固有の識別番号(ID番号)が割り当てられる。そして、データの書き込み・読み出しは、このID番号単位で行われる。 As described above, the data stored in the NAND flash memory 11 is arranged in the same address space, and the address space is divided into several areas, and each divided area is unique. The identification number (ID number) is assigned. Data writing / reading is performed in units of ID numbers.
また、図4は、本発明の実施の形態における実際にNAND型フラッシュメモリに書き込まれるデータの構造の一例を示す図である。なお、このデータの長さは、NAND型フラッシュメモリの1ページの長さを超えてもよい。 FIG. 4 is a diagram showing an example of the structure of data actually written in the NAND flash memory in the embodiment of the present invention. Note that the length of this data may exceed the length of one page of the NAND flash memory.
図4(a)は、本発明の実施の形態において、データのヘッダ情報部の先頭にマーカ(指標)が付加されている構造の一例を示す図である。図4(a)において、ヘッダ情報部は、ID番号の記述領域であるID番号部として2バイト、IDが付加されている1つのデータのデータサイズを記述する領域であるサイズ部として2バイト、データ部の有効性を検査するためのチェックサムを記述する領域であるチェックサム挿入部として2バイトを有し、さらに、これらの情報をメモリ内で正しく検索できるようにするための1バイトのサイズのマーカが先頭に付加されている。上記のような合計7バイトのヘッダ情報部が、データの先頭に付加される。 FIG. 4A is a diagram illustrating an example of a structure in which a marker (index) is added to the head of the header information portion of data in the embodiment of the present invention. In FIG. 4 (a), the header information part has 2 bytes as the ID number part which is the description area of the ID number, 2 bytes as the size part which is the area to describe the data size of one data to which the ID is added, The checksum insertion part, which is an area for describing the checksum for checking the validity of the data part, has 2 bytes, and the size of 1 byte for enabling the information to be correctly searched in the memory The marker is added to the beginning. The header information part of 7 bytes in total as described above is added to the head of the data.
ただし、マーカの値は次の条件を満たす必要がある。すなわち、ヘッダ情報部において、マーカの次に配置される2バイトのIDのうちの先頭の1バイト(マーカの直後の1バイト)はマーカの値とは異なる値を有する必要があり、さらに、NAND型フラッシュメモリの未使用領域のビットはすべて1にセットされるので、バイト単位では0xFFとなるが、マーカの値はこの値(0xFF)とも異なる必要がある。なお、前者の条件を確実に満たすようにするため、図4(b)のように、マーカの値とは異なる特定の値(例えば0x00などの値)をマーカの直後に挿入してもよい。この場合は、ヘッダ情報部の長さは合計8バイトになる。 However, the marker value must satisfy the following conditions. That is, in the header information part, the first 1 byte (1 byte immediately after the marker) of the 2-byte ID arranged next to the marker must have a value different from the marker value. Since all the bits in the unused area of the type flash memory are set to 1, it is 0xFF in byte units, but the marker value must be different from this value (0xFF). In order to ensure that the former condition is satisfied, a specific value (for example, a value such as 0x00) different from the marker value may be inserted immediately after the marker as shown in FIG. In this case, the length of the header information part is 8 bytes in total.
また、データ部に配置されるデータに関して、そのデータの中にマーカと同じ値が含まれている場合には、そのデータに含まれているマーカと同じ値のビット配列の直後に、マーカと同じ値を挿入してからメモリに書き込むようにする。すなわち、データにマーカと同じ値が含まれている場合には、メモリに格納されている状態において、マーカと同じ値が、連続して重複したビット配列状態(マーカと同じ値が2回連続して配置されている状態)で記録されることになる。このマーカによって、各データのヘッダ情報部の位置が特定され、メモリの各データを調べることによって、ヘッダ情報部、データ部、未使用領域を区別することが可能となる。このマーカの位置はページに依存しないので、各ページの先頭にIDが固定されることなく任意の位置にIDが配置可能となり、直前に書き込んだデータの直後に続けてデータを詰めて書き込むことができるようになる。したがって、メモリを効率良く使用できるようになる。なお、データ部において、マーカの値と同一の値を有する箇所は、メモリに格納されている状態では重複したビット配列を有しているが、実際に読み出される際には、元のビット配列に戻される必要がある。 In addition, regarding the data arranged in the data part, if the same value as the marker is included in the data, it is the same as the marker immediately after the bit array having the same value as the marker included in the data. Insert a value before writing it to memory. In other words, if the data contains the same value as the marker, the same value as the marker in the state of being stored in the memory is a bit array state that is continuously duplicated (the same value as the marker is repeated twice). In a state where it is arranged). The position of the header information part of each data is specified by this marker, and by examining each data in the memory, it becomes possible to distinguish the header information part, the data part, and the unused area. Since the position of this marker does not depend on the page, the ID can be arranged at an arbitrary position without fixing the ID at the top of each page, and data can be packed and written immediately after the data written immediately before. become able to. Therefore, the memory can be used efficiently. In the data portion, the portion having the same value as the marker value has a duplicate bit arrangement in the state stored in the memory, but when actually read, the original bit arrangement is restored. Need to be returned.
また、データ部にマーカと同じ値が含まれている場合であっても、データ部に含まれるマーカと同じ値に関しては、マーカと同じ値が連続して重複したビット配列状態(マーカと同じ値が2回連続して配置されている状態)でメモリに書き込むようにすることで、IDの先頭部分やマーカの直後に挿入される特定の値(例えば0x00)の設定によって、同一の値が繰り返されることのないヘッダ情報部のマーカと区別できるようになり、ヘッダ情報部に存在するマーカと、データ部に存在するマーカと同じ値とが確実に識別できるようになる。 In addition, even if the same value as the marker is included in the data part, the same value as the marker included in the data part is the bit arrangement state in which the same value as the marker is continuously repeated (the same value as the marker). By writing to the memory in a state where the ID is continuously arranged twice, the same value is repeated depending on the setting of a specific value (for example, 0x00) inserted immediately after the head portion of the ID or the marker. This makes it possible to distinguish from a marker in the header information portion that is not generated, and to reliably identify the marker present in the header information portion and the same value as the marker present in the data portion.
また、メモリ上のある領域が初期化状態又は消去済みの状態である場合(すなわち、その領域が未使用であり書き込み可能な状態の場合)には、その領域のヘッダ情報部には、特定の値(0xFF)のID番号が設定される。これは、NAND型フラッシュメモリ11の値が初期化状態や消去直後に0xFFに設定されることによる。これにより、各領域のID番号の値を調べることで、各ページが未使用か使用中かを判定することが可能となる。なお、マーカの値やマーカの直後に挿入される特定の値(例えば0x00)は、上記の未使用領域を示す0xFFとは異なる値に設定される必要がある。 In addition, when a certain area on the memory is in an initialized state or an erased state (that is, when the area is unused and in a writable state), the header information portion of the area has a specific information The ID number of the value (0xFF) is set. This is because the value of the NAND flash memory 11 is set to 0xFF immediately after initialization or immediately after erasure. Thereby, it is possible to determine whether each page is unused or in use by examining the value of the ID number of each area. Note that the value of the marker or a specific value (for example, 0x00) inserted immediately after the marker needs to be set to a value different from 0xFF indicating the unused area.
次に、本発明の実施の形態における不揮発性記憶装置のデータ管理装置(メモリデータ管理装置)の動作について説明する。まず、図5を参照しながら、本発明の実施の形態における不揮発性記憶装置のデータ管理装置の起動時の処理について説明する。図5は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置の起動時の処理の一例を示すフローチャートである。 Next, the operation of the data management device (memory data management device) of the nonvolatile memory device according to the embodiment of the present invention will be described. First, with reference to FIG. 5, a description will be given of processing at the time of starting the data management device of the nonvolatile storage device according to the embodiment of the present invention. FIG. 5 is a flowchart showing an example of processing at the time of starting the data management device of the nonvolatile storage device according to the embodiment of the present invention.
まず、データ管理装置は、起動時(電源投入時)に、メモリ管理情報をクリアした後(ステップS101)、メモリ内の各ページを順番に読み出して、全ページ読み出し済みになるまで(ステップS102)マーカを検出する処理を繰り返す。なお、検索して見つかったマーカの値の直後にマーカと同一の値が連続している場合には、その値はデータ部に存在するものであり、その値に関してはそのまま何もせず、引き続きマーカの検索を行う。一方、ヘッダ情報部のマーカが見つかれば、NAND型フラッシュメモリ11内のデータに付加されているヘッダ情報部を読み出し(ステップS103)、ヘッダ情報部を解析してメモリ管理情報を生成する(ステップS104)。 First, the data management device clears the memory management information at startup (when power is turned on) (step S101), and then sequentially reads each page in the memory until all pages have been read (step S102). Repeat the process of detecting markers. If the same value as the marker continues immediately after the marker value found by the search, the value exists in the data part, and the value is not processed as it is, and the marker continues. Search for. On the other hand, if the header information portion marker is found, the header information portion added to the data in the NAND flash memory 11 is read (step S103), and the header information portion is analyzed to generate memory management information (step S104). ).
ここで、図6を参照しながら、ステップS104で生成されるメモリ管理情報について説明する。図6は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置によって管理されるメモリ管理情報の一例を示す図である。メモリ管理情報は、NAND型フラッシュメモリ11のデータ保存用スペースに含まれている全領域に関して、未使用又は消去済み(書き込み可能状態)であるか、既に書き込み済み(書き込み不可能状態)であるかを管理するための情報である。 Here, the memory management information generated in step S104 will be described with reference to FIG. FIG. 6 is a diagram showing an example of memory management information managed by the data management device of the nonvolatile storage device according to the embodiment of the present invention. Whether the memory management information is unused or erased (writable state) or already written (writable state) for all areas included in the data storage space of the NAND flash memory 11 It is information for managing.
上述のように、本発明では、各情報領域に対応するヘッダ情報部内のID番号の値を調べることで、その情報領域が未使用か使用中かを判定することが可能である。したがって、例えば、図6に図示されているように、ヘッダ情報部のID番号部の値が抽出され、そのときの情報領域及び情報領域内のデータ位置の情報を、RAM14上に保持することによって、メモリ管理情報を構成する。
As described above, in the present invention, it is possible to determine whether an information area is unused or in use by examining the value of the ID number in the header information portion corresponding to each information area. Therefore, for example, as shown in FIG. 6, the value of the ID number part of the header information part is extracted, and the information area at that time and the information of the data position in the information area are retained on the
そして、ステップS103で読み出したヘッダ情報部内の情報(例えばID番号)に基づいてメモリ管理情報を生成し(ステップS104)、ページカウンタを1つインクリメントして(ステップS105)、再びステップS102に係る処理に戻ることで、全ページの全領域に含まれる全バイトを順番に解析して、全領域の情報を含むメモリ管理情報を生成する。 Then, memory management information is generated based on the information (for example, ID number) in the header information section read out in step S103 (step S104), the page counter is incremented by one (step S105), and the process related to step S102 is performed again. By returning to step S, all bytes included in all areas of all pages are sequentially analyzed, and memory management information including information on all areas is generated.
全ページの読み出しが終了して全領域の情報を含むメモリ管理情報を生成した場合、データ管理装置は、メモリ管理情報に基づいて、NAND型フラッシュメモリ11のデータ保存用スペースに含まれている領域の使用/未使用の判定を行うとともに(ステップS106)、未使用領域を検索して、該当する連続領域を書き込み可能領域とし、さらに、その未使用の連続領域の先頭位置を書き込み開始位置とする(ステップS107)。 When reading of all pages is completed and memory management information including information on all areas is generated, the data management apparatus, based on the memory management information, the area included in the data storage space of the NAND flash memory 11 Is used / unused (step S106), an unused area is searched, the corresponding continuous area is set as a writable area, and the start position of the unused continuous area is set as a write start position. (Step S107).
続いて、データ管理装置は、最新のデータが書き込まれている位置及びデータサイズを管理するデータ管理情報を生成する処理を全ID番号ごとのデータに対して検索済みになるまで繰り返し行う(ステップS108)。この処理では、データ管理装置は、書き込み開始位置の1つ前のバイトからさかのぼってヘッダ情報部に含まれるマーカを検索することで各ヘッダ情報部を特定し、各ヘッダ情報部に含まれる各ID番号の最新情報部(最新情報領域)を検索する(ステップS109)。 Subsequently, the data management apparatus repeatedly performs processing for generating data management information for managing the position and data size where the latest data is written until the data for all ID numbers has been searched (step S108). ). In this processing, the data management device specifies each header information part by searching for a marker included in the header information part, going back from the byte immediately before the write start position, and each ID included in each header information part. The latest information part (latest information area) of the number is searched (step S109).
そして、検索の結果見つかった最新情報部のチェックサム部に含まれているチェックサムを抽出するとともに、最新情報部のデータ部に存在するデータのチェックサムを計算して、これらのチェックサムが一致するかどうかを検査する(ステップS110)。この検査の結果、ヘッダ情報部内のチェックサムと計算の結果得られたチェックサムとが一致した場合(ステップS110で『はい』)には、その最新情報部内のデータは正しいデータ(破壊されていないデータ)であると判断し、その最新情報部のID番号、最新情報部を特定するアドレス、データサイズのセットをテータ管理情報に追加して、データ管理情報の更新を行う(ステップS111)。 Then, the checksum included in the checksum part of the latest information part found as a result of the search is extracted, and the checksum of the data existing in the data part of the latest information part is calculated, and these checksums match. It is inspected whether or not to perform (step S110). If the checksum in the header information part matches the checksum obtained as a result of the calculation as a result of this check (“Yes” in step S110), the data in the latest information part is correct data (not destroyed). The data management information is updated by adding a set of the ID number of the latest information part, the address for specifying the latest information part, and the data size to the data management information (step S111).
一方、ステップS110の検査の結果、ヘッダ情報部内のチェックサムと計算の結果得られたチェックサムとが一致しなかった場合(ステップS110で『いいえ』)には、その最新データは破壊されていると判断して、データの復旧処理を行う。この復旧処理では、最新位置から更にさかのぼって同一のID番号を有するバックアップ用データを検索し(ステップS112)、見つかったバックアップデータに対して、再度チェックサムによるデータの有効性の検査を行う。なお、有効なデータ(破壊されていないデータ)が見つかるまでバックアップ用データの再検索を行う。そして、有効なバックアップ用データを最新情報部(最新位置)とするデータ復元を行った後、このデータ復元に対応して、メモリ管理情報及びデータ管理情報の更新を行う。そして、すべてのID番号のデータ管理情報の更新を行った後、データの書き込み要求待ち状態となる(ステップS113)。 On the other hand, if the checksum in the header information part does not match the checksum obtained as a result of the calculation in step S110 (“No” in step S110), the latest data is destroyed. The data recovery process is performed. In this restoration process, the backup data having the same ID number is searched further back from the latest position (step S112), and the validity of the data by the checksum is again checked for the found backup data. Note that backup data is searched again until valid data (data that has not been destroyed) is found. Then, after performing data restoration with the effective backup data as the latest information part (latest position), the memory management information and the data management information are updated corresponding to this data restoration. Then, after updating the data management information of all the ID numbers, it waits for a data write request (step S113).
ここで、図7、図8を参照しながら、データ管理情報の生成処理について説明する。図7は、本発明の実施の形態におけるNAND型フラッシュメモリの最終書き込みページ及びバックアップページの一例を示す図である。また、図8は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置によって管理されるデータ管理情報の一例を示す図である。なお、ここでは、説明を簡単にするために、マーカが常にページの先頭に位置する(すなわち、マーカを含むヘッダ情報部、データの長さの合計が1ページのバイト数と一致する)と仮定しているが、本発明はこの仮定に限定されるものではなく、ヘッダ情報部及びデータ部を含む情報部(情報領域)がページサイズに一致しない場合など、より一般性を有する条件においても適用可能である。 Here, generation processing of data management information will be described with reference to FIGS. FIG. 7 is a diagram showing an example of the last write page and the backup page of the NAND flash memory according to the embodiment of the present invention. FIG. 8 is a diagram showing an example of data management information managed by the data management device of the nonvolatile storage device according to the embodiment of the present invention. Here, for the sake of simplicity, it is assumed that the marker is always located at the top of the page (that is, the header information part including the marker and the total length of the data match the number of bytes in one page). However, the present invention is not limited to this assumption, and is also applicable to more general conditions such as when the information part (information area) including the header information part and the data part does not match the page size. Is possible.
例えば、起動時にNAND型フラッシュメモリ11の最終書き込みデータの領域(上記のように図7ではページ単位と仮定)が図7の状態である場合、ID番号がAの最終書き込みデータは、『ID:A 最終書き込みページ』となる。また、この『ID:A 最終書き込みページ』からさかのぼって、マーカの最初に見つかった情報領域が各IDの最終書き込みデータの領域となる。図7においては、ID番号がBの最終書き込みデータである『ID:B 最終書き込みページ』、ID番号がCの最終書き込みデータである『ID:C 最終書き込みページ』が特定される。 For example, when the final write data area of the NAND flash memory 11 (assuming the page unit in FIG. 7 as described above) is in the state of FIG. 7 at the time of startup, the final write data with the ID number A is “ID: A Last written page ”. Further, the information area found at the beginning of the marker from the “ID: A last written page” becomes the area of the last written data of each ID. In FIG. 7, “ID: B last write page” that is the last write data with ID number B and “ID: C last write page” that is the last write data with ID number C are specified.
また、例えば、『ID:A 最終書き込みページ』のチェックサムの検査によって、『ID:A 最終書き込みページ』内のデータが破壊されていると判断された場合には、情報領域をさかのぼってID番号がAのバックアップデータの検索が行われ、その結果、『ID:A バックアップページ』が発見される。なお、図7には、ID番号がBのバックアップデータである『ID:B バックアップページ』も図示されており、『ID:B 最終書き込みページ』のデータが破壊されている場合には、この『ID:B バックアップページ』を用いて、データ復元が行われる。 Also, for example, when it is determined by the checksum of “ID: A last written page” that the data in “ID: A last written page” has been destroyed, the ID number goes back up the information area. A is searched for the backup data of A, and as a result, “ID: A backup page” is found. FIG. 7 also shows “ID: B backup page” which is backup data with ID number B. If the data of “ID: B last written page” is destroyed, this “ Data recovery is performed using “ID: B backup page”.
この結果、図7に図示されているように、各ID番号に関して、その最新情報部(最終書き込みデータ)のID番号、最新情報部(最終書き込みデータ)のアドレス、データサイズのセットを有するデータ管理情報が作成される。データ管理情報は、ID番号ごとに最新のデータがどの情報領域に含まれているかを管理するための情報である。このデータ管理情報は、この後、新たに書き込みが行われた時点で逐次更新される。 As a result, as shown in FIG. 7, for each ID number, a data management having a set of the ID number of the latest information part (final write data), the address of the latest information part (final write data), and the data size. Information is created. The data management information is information for managing in which information area the latest data is included for each ID number. Thereafter, the data management information is sequentially updated when new writing is performed.
以上、説明したように、本発明の実施の形態における不揮発性記憶装置のデータ管理装置は、NAND型フラッシュメモリ11に書き込まれている情報を解析することで、メモリ管理情報及びデータ管理情報を生成し、これらの情報をRAM14上に保持することができるので、NAND型フラッシュメモリ11上にこれらの情報を保持するための領域を確保しなくてもよい。また、これによって、メモリ管理情報及びデータ管理情報は、例えばシステムが起動されるたびに生成されるため、メモリ管理情報及びデータ管理情報がNAND型フラッシュメモリ11に保持されることはなく、NAND型フラッシュメモリ11の劣化などに伴ってメモリ管理情報及びデータ管理情報自体が破壊されることはない。
As described above, the data management device of the nonvolatile memory device according to the embodiment of the present invention generates the memory management information and the data management information by analyzing the information written in the NAND flash memory 11 Since these pieces of information can be held on the
また、ステップS113のデータの書き込み要求待ち状態において、データの書き換えが起こると、データ管理装置は、NAND型フラッシュメモリ11上の書き込み可能領域サイズと新たに書き込むデータのサイズとを比較し、このデータの書き込みが可能かどうかを判定する。 When data rewrite occurs in the data write request waiting state in step S113, the data management device compares the writable area size on the NAND flash memory 11 with the size of the new data to be written. Whether or not writing is possible is determined.
データの書き込みが可能な場合は、データ管理装置は、データにヘッダ情報を付加して、書き込み開始位置より書き込みを開始し、データの書き込みが正常に終わった場合に、データ管理情報及びメモリ管理情報を更新する。このように、本発明では、データ書き込み時に、以前のデータを消去する処理を行わないので、バックアップデータを別の場所(別の情報領域)にコピーして保存する処理を行う必要がない。 When data can be written, the data management device adds header information to the data, starts writing from the write start position, and when the data writing is completed normally, the data management information and the memory management information Update. As described above, according to the present invention, the process of erasing the previous data is not performed at the time of data writing, so that it is not necessary to perform the process of copying the backup data to another location (another information area) and storing it.
一方、データの書き込みが不可能な場合には、NAND型フラッシュメモリ11上にデータの書き込みを行うことができるだけの領域を確保するために、以下の処理を行う。まず、書き込み可能領域に連続する次のブロックのデータ(書き込み可能領域の後続のブロック)が消去可能かどうかを調べる。 On the other hand, when data cannot be written, the following processing is performed in order to secure an area where data can be written on the NAND flash memory 11. First, it is checked whether or not the data of the next block continuous to the writable area (the block subsequent to the writable area) can be erased.
図9は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置が消去不可領域のデータのバックアップを行ってからブロック消去を行う方法の一例を示す図である。なお、図9においても説明を簡単にするために、マーカを含むヘッダ情報部及びデータの長さの合計が1ページのバイト数と一致するように図示されているが、より一般性を有する条件においても適用可能である。 FIG. 9 is a diagram illustrating an example of a method of performing block erase after the data management device of the nonvolatile storage device according to the embodiment of the present invention backs up data in the non-erasable area. In order to simplify the description also in FIG. 9, the header information part including the marker and the total length of the data are illustrated so as to coincide with the number of bytes of one page. It is also applicable to.
図9に図示されているように、このブロック(消去候補ブロック)内にバックアップが必要なデータ(消去不可領域)が含まれる場合には、そのデータをまず書き込み可能領域にコピーすることによってデータのバックアップを行う。その後、その消去候補ブロック内のデータの消去が行われる。なお、消去不可領域とは、データ管理情報に記憶されているID番号のいずれかによって特定される最新情報領域である。 As shown in FIG. 9, when data that needs to be backed up (erasable area) is included in this block (erase candidate block), the data is first copied to a writable area. Make a backup. Thereafter, the data in the erase candidate block is erased. The non-erasable area is the latest information area specified by one of the ID numbers stored in the data management information.
しかしながら、図9に図示されている消去不可領域のデータのバックアップを行ってからブロック消去を行う方法では、バックアップの必要なID番号のデータサイズが書き込み可能領域のサイズを超えている場合には問題が生じる。すなわち、この場合には、消去不可領域のデータサイズが書き込み可能領域のデータサイズを超えているため、消去不可領域のデータを書き込み可能領域に直接バックアップすることができず、ブロック消去によって書き込み可能領域を拡大した後でなければ、消去不可領域のデータのコピーを行うことができない。 However, in the method of performing block erasure after backing up the data in the non-erasable area shown in FIG. 9, there is a problem if the data size of the ID number required for backup exceeds the size of the writable area. Occurs. That is, in this case, since the data size of the non-erasable area exceeds the data size of the writable area, the data in the non-erasable area cannot be directly backed up to the writable area, and the writable area can be obtained by block erase. The data in the non-erasable area can be copied only after the image is enlarged.
このような問題が生じたときに存在するパターンとしては、以下のA〜Cの3パターンが存在する。
A.バックアップが必要なデータが1つのみの場合
B.バックアップが必要なデータは1つだが、書き込み可能領域を2ブロック以上に拡大する必要がある場合
C.バックアップの必要なデータが複数存在する場合
The following three patterns A to C exist as patterns that exist when such a problem occurs.
A. When only one data needs to be backed up. When there is one data that needs to be backed up, but the writable area needs to be expanded to 2 blocks or more. When there are multiple pieces of data that need to be backed up
以下、上記のパターンA〜Cのそれぞれの場合におけるバックアップ処理A〜Cについて、図10〜図12を参照しながら説明する。なお、図10〜図12においても説明を簡単にするために、マーカを含むヘッダ情報部及びデータの長さの合計が1ページのバイト数と一致するように図示されているが、より一般性を有する条件においても適用可能である。 Hereinafter, backup processing A to C in each of the above patterns A to C will be described with reference to FIGS. 10 to 12, for the sake of simplicity of explanation, the header information part including the marker and the total length of the data are illustrated so as to match the number of bytes of one page. It is applicable also in the conditions which have.
まず、上記のパターンAの場合におけるバックアップ処理Aについて説明する。図10は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置のバックアップ処理Aの一例を模式的に示す図である。 First, the backup process A in the case of the above pattern A will be described. FIG. 10 is a diagram schematically showing an example of backup processing A of the data management device of the nonvolatile storage device according to the embodiment of the present invention.
図10において、(1)ID:Aの消去不可領域のバックアップが必要となった場合には、消去不可領域のデータサイズと、書き込み可能領域のデータサイズとの比較を行う。そして、(2)書き込み可能領域のデータサイズが不足しており、消去不可領域のデータを直接コピーすることができない場合には、(3)まず、RAM14などの別のメモリ上に消去不可領域のデータを一時保存する。そして、(4)消去不可領域が存在していたブロック(消去候補ブロック)に係るブロック消去を行い、書き込み可能領域及び消去候補ブロックを合わせた領域を書き込み可能領域に拡大して、(5)RAM14から消去不可領域のデータを書き込み可能領域にコピーする。
In FIG. 10, (1) when backup of the non-erasable area of ID: A is required, the data size of the non-erasable area is compared with the data size of the writable area. (2) If the data size of the writable area is insufficient and the data in the non-erasable area cannot be directly copied, (3) First, the non-erasable area is stored on another memory such as the
次に、上記のパターンBの場合におけるバックアップ処理Bについて説明する。図11は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置のバックアップ処理Bの一例を模式的に示す図である。 Next, the backup process B in the case of the above pattern B will be described. FIG. 11 is a diagram schematically illustrating an example of the backup process B of the data management device of the nonvolatile storage device according to the embodiment of the present invention.
図11は、図10に図示されているバックアップ処理Aと同様に、(1)ID:Aの消去不可領域のバックアップが必要となった場合には、消去不可領域のデータサイズと、書き込み可能領域のデータサイズとの比較を行う。そして、(2)書き込み可能領域のデータサイズが不足しており、消去不可領域のデータを直接コピーすることができない場合には、(3)まず、RAM14などの別のメモリ上に消去不可領域のデータを一時保存する。そして、(4)消去不可領域が存在していたブロック(消去候補ブロック)に係るブロック消去を行い、書き込み可能領域及び消去候補ブロックを合わせた領域を書き込み可能領域に拡大する。
11 is similar to the backup processing A shown in FIG. 10, (1) when backup of the non-erasable area of ID: A is required, the data size of the non-erasable area and the writable area Compare with the data size of. (2) If the data size of the writable area is insufficient and the data in the non-erasable area cannot be directly copied, (3) First, the non-erasable area is stored on another memory such as the
しかしながら、書き込み可能領域を拡大しても、依然として(5)書き込み可能領域のデータサイズが不足しており、消去不可領域のデータを直接コピーすることができない場合には、(6)RAM14上に消去不可領域を保存したまま、次のブロックを消去して更に書き込み可能領域を拡大した後に、消去不可領域のデータを書き込み可能領域にコピーする。
However, even if the writable area is enlarged, if (5) the data size of the writable area is still insufficient and the data in the non-erasable area cannot be directly copied, (6) erased in the
次に、上記のパターンCの場合におけるバックアップ処理Cについて説明する。図12は、本発明の実施の形態における不揮発性記憶装置のデータ管理装置のバックアップ処理Cの一例を模式的に示す図である。 Next, the backup process C in the case of the above pattern C will be described. FIG. 12 is a diagram schematically showing an example of backup processing C of the data management device of the nonvolatile storage device according to the embodiment of the present invention.
バックアップ処理Cでは、バックアップの必要なデータが複数存在する場合に、書き込み可能領域にコピーできるデータは順にコピーする一方、書き込み可能領域のサイズが不足した場合には、コピーできなかったデータをRAM14などに一時保存してブロック消去を行い、書き込み可能領域を拡大した後に、データのコピーを行う。 In the backup process C, when there is a plurality of data that needs to be backed up, the data that can be copied to the writable area is copied in order. On the other hand, if the size of the writable area is insufficient, the data that could not be copied The data is copied after the block is erased to erase the block and the writable area is expanded.
図12では、2つのデータ(ID:Aの消去不可領域及びID:Bの消去不可領域)に係るバックアップ処理Cについて説明する。なお、ここでは、ID:Aの消去不可領域は、初期の書き込み可能領域よりデータサイズが大きく、ID:Bの消去不可領域は初期の書き込み可能領域よりデータサイズが小さいものとする。 In FIG. 12, a backup process C related to two data (ID: A non-erasable area and ID: B non-erasable area) will be described. Here, the non-erasable area of ID: A has a larger data size than the initial writable area, and the non-erasable area of ID: B has a smaller data size than the initial writable area.
図12において、(1)バックアップが必要なID:Aの消去不可領域のデータサイズと、書き込み可能領域のデータサイズとの比較を行う。そして、(2)書き込み可能領域のデータサイズが不足しており、消去不可領域のデータを直接コピーすることができない場合には、(3)RAM14などの別のメモリ上にID:Aの消去不可領域のデータを一時保存するとともに、消去候補ブロックを決定する。
In FIG. 12, (1) the data size of the non-erasable area of ID: A that needs to be backed up is compared with the data size of the writable area. (2) When the data size of the writable area is insufficient and the data in the non-erasable area cannot be directly copied, (3) the ID: A cannot be erased on another memory such as the
消去候補ブロックには、バックアップが必要なID:Bの消去不可領域のデータが存在しており、続いて、ID:Bの消去不可領域のデータのバックアップ処理を開始する。すなわち、(4)バックアップが必要なID:Bの消去不可領域のデータサイズと、書き込み可能領域のデータサイズとの比較を行い、(5)ID:Bの消去不可領域のデータを書き込み可能領域にコピーする。 In the erasure candidate block, there is data in the non-erasable area of ID: B that needs to be backed up, and subsequently, backup processing of data in the non-erasable area of ID: B is started. (4) The data size of the non-erasable area of ID: B that needs to be backed up is compared with the data size of the writable area, and (5) the data of the non-erasable area of ID: B is made the writable area. make a copy.
そして、(6)消去候補ブロックのブロック消去を行って、書き込み可能領域を消去候補ブロック全体にまで拡大した後、(7)RAM14からID:Aの消去不可領域のデータを書き込み可能領域にコピーする。
Then, (6) block erasure of the erasure candidate block is performed and the writable area is expanded to the entire erasure candidate block, and (7) data in the non-erasable area of ID: A is copied from the
なお、上述の処理では、バックアップ処理A〜Cをそれぞれ独立して説明しているが、これらのバックアップ処理A〜Cを組み合わせ、バックアップ処理A〜Cに準じてバックアップ処理を繰り返すことで、あらゆるデータのバックアップ処理を実現することが可能である。 In the above process, the backup processes A to C are described independently. However, by combining these backup processes A to C and repeating the backup process according to the backup processes A to C, any data can be obtained. It is possible to realize the backup process.
次に、図13を参照しながら、NAND型フラッシュメモリ11のデータ記録状態の遷移について説明する。図13は、本発明の実施の形態において、NAND型フラッシュメモリのデータ記録状態の遷移の一例を模式的に示す図である。図13には、ブロックを単位とするNAND型フラッシュメモリ11の構造が図示されている。 Next, the transition of the data recording state of the NAND flash memory 11 will be described with reference to FIG. FIG. 13 is a diagram schematically showing an example of the transition of the data recording state of the NAND flash memory in the embodiment of the present invention. FIG. 13 shows the structure of the NAND flash memory 11 in units of blocks.
NAND型フラッシュメモリ11へのデータの書き込み・読み出しは、ページを単位として一連のデータごとに行う。また、データの書き込みにおいては、ブロックごとの消去回数を均一化するため、書き込み要求のたびに特定ブロックのみにデータの消去・書き込みを繰り返すのではなく、NAND型フラッシュメモリ11全体をリング状に使用し、各ブロックに順番にデータを書き込む。すなわち、本発明では、NAND型フラッシュメモリ11のデータ保存用スペース全体の最終位置の次の位置を、データ保存用スペース全体の先頭位置として使用する。 Data is written to and read from the NAND flash memory 11 for each series of data in units of pages. In writing data, the entire NAND flash memory 11 is used in a ring shape, instead of repeating data erasing / writing only to a specific block every time a write request is made in order to equalize the number of erasures for each block. Then, data is written in each block in order. That is, in the present invention, the position next to the final position of the entire data storage space of the NAND flash memory 11 is used as the head position of the entire data storage space.
なお、図13においても、説明を簡単にするために、マーカが常にページの先頭に位置する(すなわち、マーカを含むヘッダ情報部、データの長さの合計が1ページのバイト数と一致する)状態が仮定されているが、本発明はこの仮定に限定されるものではなく、ヘッダ情報部及びデータ部を含む情報部(情報領域)がページサイズに一致しない場合など、より一般性を有する条件においても適用可能である。 In FIG. 13, for the sake of simplicity, the marker is always located at the top of the page (that is, the header information part including the marker, the total length of the data matches the number of bytes in one page). Although the state is assumed, the present invention is not limited to this assumption, and is a more general condition such as when the information part (information area) including the header information part and the data part does not match the page size. It is also applicable to.
まず、未使用又は消去済みのページが連続している領域を書き込み可能領域として、不揮発性記憶装置の起動時には、その書き込み可能領域の先頭位置からデータ書き込みを開始する。例えば、図13(a)に図示されているようにすべての領域が未使用の状態で起動した場合には、図13(b)に図示されているように、先頭ブロックの先頭ページ(先頭位置)から順にデータの書き込みを行う。そして、書き込み中のブロックの全領域におけるデータの書き込みが終了すると、続いて、図13(c)に図示されているように、連続した次の未使用ブロックへのデータの書き込みを開始し、以降同様に、次のブロックへのデータの書き込みを順次行う。 First, an area in which unused or erased pages are continuous is set as a writable area, and when the nonvolatile storage device is activated, data writing is started from the start position of the writable area. For example, as shown in FIG. 13A, when all areas are activated in an unused state, as shown in FIG. 13B, the first page (first position) of the first block is displayed. Data is written in order starting from (). When the writing of data in the entire area of the block being written is completed, the writing of data to the next consecutive unused block is started as shown in FIG. Similarly, data is sequentially written to the next block.
また、例えば図13(d)に図示されている状態において書き込み可能領域が不足した場合には、現在書き込み中のブロック以外に対してデータの消去判定を行い、データの消去が可能ならばブロック消去を行って、図13(e)に図示されているように書き込み可能領域を拡大する。そして、図13(f)に図示されているように最終ブロックの最終ページまでデータの書き込みを行うと、先頭ページに戻って、図13(g)に図示されているように、再度、先頭ブロックの先頭ページからデータの書き込みを行う。また、決められたタイミングで随時ブロック消去処理を行い、例えば、図13(h)に図示されているように、書き込み可能領域を拡大する。 Further, for example, when the writable area is insufficient in the state shown in FIG. 13D, data erasure determination is performed on a block other than the block currently being written, and if data erasure is possible, block erasure is performed. To enlarge the writable area as shown in FIG. Then, when data is written up to the last page of the last block as shown in FIG. 13 (f), it returns to the first page, and again as shown in FIG. 13 (g), the first block again. Data is written from the first page. Further, block erasure processing is performed at any time at a determined timing, and for example, the writable area is expanded as shown in FIG.
また、次回の不揮発性記憶装置の起動時には、前回の最終書き込み位置の次のバイトからデータの書き込みを行う。例えば、図13(g)の状態で終了した場合には、次回起動時には再び先頭ブロックの最終書き込み位置の次のバイトからデータの書き込みを行い、再び、ページ順に連続したデータの書き込み及びブロック消去の判定を繰り返し行う。 Also, at the next startup of the nonvolatile storage device, data is written from the byte next to the previous last write position. For example, when the process ends in the state shown in FIG. 13G, data is written again from the next byte at the last write position of the first block at the next start-up, and continuous data write and block erase are performed again in page order. Repeat the determination.
上述のように、図13に図示されているような順序でブロックを使用することで、NAND型フラッシュメモリ11の全メモリ領域(データ保存用スペースの全領域)を均等に使用して、データ書き込みを行うことが可能となり、データ書き込み回数を分散させることが可能となる。また、図13に図示されているような順序でブロックを使用することで、データの書き込みを開始する際に前回までの書き込みデータの消去を必要としないので、バックアップ用として前回までの複数の書き込みデータを保存しておくことが可能となる。また、システム起動時にNAND型フラッシュメモリ11の書き込み位置などの分析を行うことで、NAND型フラッシュメモリ11の別領域(別ブロック)に管理情報を格納しておく必要はなく、管理情報の更新やバックアップを行う必要もない。 As described above, by using the blocks in the order shown in FIG. 13, the entire memory area of the NAND flash memory 11 (the entire area of the data storage space) is equally used to write data. And the number of data write operations can be distributed. Also, by using the blocks in the order shown in FIG. 13, it is not necessary to erase the write data up to the previous time when starting to write data. Data can be saved. In addition, by analyzing the writing position of the NAND flash memory 11 at the time of system startup, it is not necessary to store management information in another area (separate block) of the NAND flash memory 11, There is no need to back up.
本発明は、NAND型フラッシュメモリの耐メモリ破壊性を向上させるとともに、効率的にメモリを使用したデータ及びバックアップデータの保存を行うという効果を有しており、フラッシュメモリ(特に、NAND型フラッシュメモリ)などの不揮発性記憶装置へのデータ書き込みやデータ読み出しを管理するための技術に適用可能である。 INDUSTRIAL APPLICABILITY The present invention has an effect of improving the memory destruction resistance of a NAND flash memory and efficiently storing data using the memory and backup data. It is applicable to a technique for managing data writing and data reading to and from a non-volatile storage device.
11 NAND型フラッシュメモリ
12 CPU
13 コントローラ
14 演算用RAM
11
13
Claims (2)
前記NAND型フラッシュメモリは、記憶領域があらかじめ所定容量ごとに分割されている複数の分割領域を、それぞれページと定義されており、前記記憶領域の最初の分割領域である先頭ページから最後の分割領域である最終ページまで連続したページ番号が割り当てられており、このページ番号を指定することで前記ページ毎にデータの書き込み・読み出しが行われるメモリであり、また、データの消去処理は、ページ番号が連続する所定数の前記ページからなるブロックごとに一括して行われ、かつ、消去済みブロック内のすべての記録領域は、前記消去処理によってあらかじめ定まる所定値となるメモリであり、
種類の異なるデータをそれぞれ識別するために割り当てた識別番号、及びその識別番号を割り当てたデータのデータ長情報を含むヘッダ部の先頭に前記消去処理によってあらかじめ定まる所定値とは異なり、かつ、前記識別番号に使用しない値に設定したマーカを付加するとともに、前記データ内に前記マーカの値と同じ値が存在する場合には、その値が重複するようにデータを変換して変換データを生成し、前記マーカが付加されたヘッダ部及び前記変換データを結合して書き込み用データを生成する書き込み用データ生成手段と、
前記NAND型フラッシュメモリの各ページを参照して、前記各ページ内に記憶されているデータの値が前記所定値である消去済みページを未使用領域として特定する未使用領域特定手段と、
前記未使用領域特定手段で特定された前記未使用領域を前記書き込み可能領域として、前記書き込み可能領域の先頭位置から、前記書き込み用データを書き込む書き込み手段と、
前記書き込み可能領域の直前の書き込み済み領域からページ番号をさかのぼって、前記マーカの値と一致する値のデータを検索し、前記マーカの値と一致する値のデータが重複して配列されていなかった場合、このデータを前記マーカと判断し、このマーカの位置を前記ヘッダの先頭位置と特定するヘッダ部特定手段と、
前記ヘッダ部特定手段で特定される前記ヘッダ部から、前記書き込み用データ生成手段で生成された前記種類の異なるデータそれぞれに割り当てた前記各識別番号を含むヘッダ部を特定し、それぞれの識別番号を最初に検出した書き込み済み領域を前記各識別番号が割り当てられた種類の異なるデータの最終書き込み領域とすることで、前記各識別番号が割り当てられた種類の異なるデータの最新書き込みデータの保存位置を特定する最新データ特定手段と、
を有することを特徴とするメモリデータ管理装置。 In a memory data management device that manages writing / reading of data to / from a NAND flash memory,
In the NAND flash memory, a plurality of divided areas in which the storage area is divided in advance for each predetermined capacity are defined as pages, respectively, and the first divided area from the first divided area to the last divided area of the storage area A continuous page number is assigned up to the last page, and by designating this page number, data is written / read out for each page. It is performed in a batch for each block consisting of a predetermined number of pages, and all the recording areas in the erased block are memories that have a predetermined value determined in advance by the erasing process,
Different from the predetermined value determined in advance by the erasing process at the head of the header part including the identification number assigned to identify each different type of data and the data length information of the data assigned the identification number, and the identification A marker set to a value not used for the number is added, and when the same value as the marker value exists in the data, the data is converted so that the values overlap, and converted data is generated, Write data generation means for combining the header portion to which the marker is added and the conversion data to generate write data;
Referring to each page of the NAND flash memory, unused area specifying means for specifying an erased page whose data value stored in each page is the predetermined value as an unused area;
Writing means for writing the data for writing from the start position of the writable area, using the unused area specified by the unused area specifying means as the writable area;
The page number is traced back from the written area immediately before the writable area to search for data with a value that matches the marker value, and the data with the value that matches the marker value was not duplicated. In this case, this data is determined as the marker, and a header part specifying means for specifying the position of the marker as the head position of the header
From the header part specified by the header part specifying means, specify the header part including each identification number assigned to each of the different types of data generated by the write data generation means, and identify each identification number. The storage location of the latest written data of the different types of data to which each identification number is assigned is specified by making the first detected written area the final writing area of the different types of data to which the respective identification numbers are assigned. The latest data identification means,
A memory data management device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007265356A JP2009093528A (en) | 2007-10-11 | 2007-10-11 | Memory data management apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007265356A JP2009093528A (en) | 2007-10-11 | 2007-10-11 | Memory data management apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009093528A true JP2009093528A (en) | 2009-04-30 |
Family
ID=40665436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007265356A Withdrawn JP2009093528A (en) | 2007-10-11 | 2007-10-11 | Memory data management apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009093528A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013130948A (en) * | 2011-12-20 | 2013-07-04 | Aisin Seiki Co Ltd | Method for writing data to flash memory |
JP2013130947A (en) * | 2011-12-20 | 2013-07-04 | Aisin Seiki Co Ltd | Method for writing data to flash memory |
JP2014509003A (en) * | 2011-02-02 | 2014-04-10 | マイクロン テクノロジー, インク. | Control arrangement and method for accessing block oriented non-volatile memory |
JP2016062349A (en) * | 2014-09-18 | 2016-04-25 | 日立オートモティブシステムズ株式会社 | Automobile electronic controller and method for data storage |
US9377960B2 (en) | 2009-07-29 | 2016-06-28 | Hgst Technologies Santa Ana, Inc. | System and method of using stripes for recovering data in a flash storage system |
-
2007
- 2007-10-11 JP JP2007265356A patent/JP2009093528A/en not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9377960B2 (en) | 2009-07-29 | 2016-06-28 | Hgst Technologies Santa Ana, Inc. | System and method of using stripes for recovering data in a flash storage system |
JP2014509003A (en) * | 2011-02-02 | 2014-04-10 | マイクロン テクノロジー, インク. | Control arrangement and method for accessing block oriented non-volatile memory |
JP2013130948A (en) * | 2011-12-20 | 2013-07-04 | Aisin Seiki Co Ltd | Method for writing data to flash memory |
JP2013130947A (en) * | 2011-12-20 | 2013-07-04 | Aisin Seiki Co Ltd | Method for writing data to flash memory |
JP2016062349A (en) * | 2014-09-18 | 2016-04-25 | 日立オートモティブシステムズ株式会社 | Automobile electronic controller and method for data storage |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008033801A (en) | Memory data management device | |
JP5528782B2 (en) | Nonvolatile memory recovery after a power failure | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
JP5336060B2 (en) | Nonvolatile memory device and method of operating the same | |
JP4245585B2 (en) | Memory controller, flash memory system, and flash memory control method | |
US20090265403A1 (en) | File system | |
KR20020009564A (en) | Memory system | |
JP2009521045A (en) | Nonvolatile memory having block erasable memory locations | |
JP4046877B2 (en) | Batch erase nonvolatile memory and mobile phone | |
JP2010020586A (en) | Data processing device | |
US20060212646A1 (en) | Semiconductor device having flash memory | |
JP3212960B2 (en) | Data management method using flash memory | |
JPWO2009004674A1 (en) | Storage device, disk device, write determination method, control device | |
JP2008191930A (en) | Nonvolatile semiconductor memory device, and managing method therefor | |
JP2009093528A (en) | Memory data management apparatus | |
JP2007226798A (en) | Device and method for controlling flash memory | |
JP2003058417A (en) | Storage device | |
US8046529B2 (en) | Updating control information in non-volatile memory to control selection of content | |
JP4488048B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2009048557A (en) | Data update device, data update method, and data update program | |
JP4794530B2 (en) | Semiconductor device and mobile phone | |
JP2005222202A (en) | Data protection method for nonvolatile storage device | |
JP5273780B2 (en) | Memory access control method, memory control device, and computer program | |
JP6040895B2 (en) | Microcomputer and non-volatile memory block management method | |
JP2007323159A (en) | Memory controller, flash memory system therewith, and method for controlling flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110104 |