JP5533141B2 - Writing device, writing method, and writing program - Google Patents
Writing device, writing method, and writing program Download PDFInfo
- Publication number
- JP5533141B2 JP5533141B2 JP2010083209A JP2010083209A JP5533141B2 JP 5533141 B2 JP5533141 B2 JP 5533141B2 JP 2010083209 A JP2010083209 A JP 2010083209A JP 2010083209 A JP2010083209 A JP 2010083209A JP 5533141 B2 JP5533141 B2 JP 5533141B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- backup
- writing
- written
- area
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、書き込み装置、書き込み方法、及び書き込みプログラムに関する。 The present invention relates to a writing device, a writing method, and a writing program.
従来、HDD(Hard Disk Drive)やDRAM(Dynamic Random Access Memory)にデータを書き込む際、電源遮断やシステム異常などの障害に起因して、HDDに格納されているデータが破壊されたり、DRAMに格納されているデータが消失する可能性があった。このような場合に、障害が発生した直前の状態までデータを復元するため、HDD等に対して読み書きされるデータを一時的にバックアップする装置が提案されている。 Conventionally, when data is written to an HDD (Hard Disk Drive) or DRAM (Dynamic Random Access Memory), the data stored in the HDD is destroyed or stored in the DRAM due to a failure such as a power shutdown or a system abnormality. There is a possibility that the stored data may be lost. In such a case, an apparatus for temporarily backing up data read / written to / from an HDD or the like has been proposed in order to restore data to a state immediately before the occurrence of a failure.
例えば、磁気ディスク本体に対する書き込みデータを一時的に格納する不揮発性メモリを備え、障害発生の際にこの不揮発性メモリのデータを取り込むことにより磁気ディスク本体の書き込みデータを復旧する磁気ディスク装置が提案されている(例えば特許文献1参照)。 For example, there has been proposed a magnetic disk device that includes a nonvolatile memory that temporarily stores data to be written to the magnetic disk main body, and that restores the data written to the magnetic disk main body by capturing the data in the nonvolatile memory when a failure occurs. (For example, refer to Patent Document 1).
ところで、近年のNAND型のフラッシュメモリの大容量化・低価格化に伴い、音楽データ等の大容量のデータを記憶するための補助記憶装置として、NAND型のフラッシュメモリが用いられつつある。このNAND型のフラッシュメモリの記憶領域は、複数の「ブロック」に分割されており、このブロック単位でデータが管理されている。このブロックは複数の「クラスタ」から構成されており、フラッシュメモリへのデータの読み書きはこのクラスタ単位で管理される。 Incidentally, with the recent increase in capacity and price of NAND flash memories, NAND flash memories are being used as auxiliary storage devices for storing large volumes of data such as music data. The storage area of the NAND flash memory is divided into a plurality of “blocks”, and data is managed in units of blocks. This block is composed of a plurality of “clusters”, and reading / writing of data to / from the flash memory is managed in units of clusters.
図7は従来技術におけるフラッシュメモリへのデータの書き込みを例示した概念図であり、図7(a)はフラッシュメモリにおけるデータの書き込み位置を例示した図、図7(b)はデータの書き込み中に障害が発生した場合を例示した図である。図7(a)に示すように、ブロックを構成するクラスタの一つにデータを書き込んでいる途中で電源遮断等の障害が発生した場合、図7(b)に示すように、書き込み中のデータが破壊されるだけでなく、データが書き込まれるクラスタを含むブロックに格納されている他のデータも破壊される可能性があった。しかし、特許文献1の如き従来の装置では、書き込みデータのみが不揮発性メモリによってバックアップされているに過ぎないため、データが書き込まれるクラスタを含むブロックに格納されている他のデータが破壊された場合にはこれを復旧することは困難であった。
FIG. 7 is a conceptual diagram illustrating the writing of data to the flash memory in the prior art, FIG. 7A is a diagram illustrating the data writing position in the flash memory, and FIG. 7B is a diagram during the data writing. It is the figure which illustrated the case where a failure occurred. As shown in FIG. 7A, when a failure such as a power interruption occurs while data is being written to one of the clusters constituting the block, the data being written is shown in FIG. 7B. Not only is destroyed, but other data stored in the block including the cluster to which the data is written may be destroyed. However, in the conventional apparatus such as
本発明は、上記に鑑みてなされたものであって、NAND型のフラッシュメモリに対するデータの書き込みにおいて、電源遮断等の障害に起因してデータが書き込まれるクラスタを含むブロックに格納されている他のデータが破壊された場合であってもこれを復旧することができる、書き込み装置、書き込み方法、及び書き込みプログラムを提供することを目的とする。 The present invention has been made in view of the above, and in writing data to a NAND flash memory, other data stored in a block including a cluster into which data is written due to a failure such as power shutdown An object is to provide a writing device, a writing method, and a writing program capable of recovering data even when the data is destroyed.
上述した課題を解決し、目的を達成するために、請求項1に記載の書き込み装置は、NAND型のフラッシュメモリに情報を書き込むための書き込み装置であって、書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、当該読み出されたバックアップ情報を、前記書き込み対象の情報を書き込む領域とは異なる領域であって、前記バックアップ情報を書き込む専用の領域として定められた特定の領域であるバックアップ領域に、上書きにより書き込むバックアップ手段と、前記バックアップ手段が前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込み手段と、前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップ手段によって書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧手段と、を備える。
In order to solve the above-described problems and achieve the object, the writing device according to
また、請求項2に記載の書き込み装置は、請求項1に記載の書き込み装置において、前記復旧手段は、前記書き込み先となるクラスタへの前記書き込み手段による情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとする。
The writing device according to
また、請求項3に記載の書き込み装置は、請求項1又は2に記載の書き込み装置において、前記バックアップ手段は、前記書き込み先となるクラスタを含む前記ブロックを構成するクラスタのうち、使用されていないクラスタについては前記バックアップ情報を読み出さない。
Further, in the writing device according to
また、請求項4に記載の書き込み装置は、請求項1から3のいずれか一項に記載の書き込み装置において、前記バックアップ手段は、前記書き込み先となるクラスタを含む前記ブロックを構成するクラスタのうち、一部のみが使用されているクラスタについては前記バックアップ情報を読み出す。
Further, the writing device according to
また、請求項5に記載の書き込み装置は、請求項1から4のいずれか一項に記載の書き込み装置において、前記バックアップ領域は、前記フラッシュメモリに設けられている領域であって、当該フラッシュメモリに設けられている他の記憶領域よりも書き込み限度回数が多い領域である。
Further, in the writing apparatus according to claim 5, in the writing apparatus according to any one of
また、請求項6に記載の書き込み装置は、請求項1から4のいずれか一項に記載の書き込み装置において、前記バックアップ領域は、前記フラッシュメモリとは異なる他の記憶手段に設けられている領域である。
また、請求項7に記載の書き込み装置は、請求項1から6のいずれか一項に記載の書き込み装置において、前記バックアップ手段は、書き込み対象の情報を前記フラッシュメモリに書き込む際、前記書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報が、前記バックアップ情報として前記バックアップ領域に既に書き込まれているか否かを判断し、書き込まれている場合、新たに前記バックアップ情報の書き出しを行わず、前記復旧手段は、前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップ領域に既に書き込まれているバックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む。
また、請求項8に記載の書き込み方法は、NAND型のフラッシュメモリに情報を書き込むための書き込み方法であって、書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、当該読み出されたバックアップ情報を、前記書き込み対象の情報を書き込む領域とは異なる領域であって、前記バックアップ情報を書き込む専用の領域として定められた特定の領域であるバックアップ領域に、上書きにより書き込むバックアップステップと、前記バックアップステップで前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込みステップと、前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップステップで書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧ステップと、を含む。
また、請求項9に記載の書き込み方法は、請求項8に記載の方法をコンピュータに実行させる。
Further, in the writing apparatus according to claim 6, in the writing apparatus according to any one of
The writing device according to claim 7 is the writing device according to any one of
The writing method according to claim 8 is a writing method for writing information to a NAND flash memory, and when writing information to be written to the flash memory, a cluster to which the information is written is selected. The information stored in the block is read out as backup information in a block unit composed of a plurality of clusters, and the read backup information is an area different from the area in which the information to be written is written. A backup step of overwriting in a backup area that is a specific area defined as a dedicated area for writing the backup information, and writing the backup information into the backup area in the backup step, and then writing the information into the backup area Class ahead When there is a possibility that the information included in the block including the cluster that is the write destination and the write destination is destroyed, the backup information written in the backup step is read from the backup area, and the backup information And a recovery step of writing to the block corresponding to.
A writing method according to a ninth aspect causes a computer to execute the method according to the eighth aspect.
請求項1に記載の書き込み装置、請求項8に記載の書き込み方法、請求項9に記載の書き込みプログラムによれば、書き込み対象の情報をフラッシュメモリに書き込む際、当該書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、バックアップ領域に書き込む。そして、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性がある場合、バックアップ手段によって書き込まれたバックアップ情報をバックアップ領域から読み出し、バックアップ情報に対応するブロックに書き込むので、電源遮断等の障害に起因して書き込み対象の情報が書き込まれるクラスタを含むブロックに格納されている他の情報が破壊された場合であっても、バックアップ情報に基づいてこれを復旧することができる。
According to the writing device according to
請求項2に記載の書き込み装置によれば、書き込み先となるクラスタへの書き込み手段による書き込み対象の情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとするので、電源の遮断やリセット等によって情報の書き込みが中断され、情報が破壊された場合であっても、これを確実に復旧することができる。
According to the writing device of
請求項3に記載の書き込み装置によれば、書き込み対象の情報の書き込み先となるクラスタを含むブロックについて、そのブロックを構成するクラスタのうち、使用されていないクラスタについてはバックアップ情報を読み出さないので、バックアップに必要な情報だけをバックアップ処理において読み出すことができ、バックアップ情報の読み出しに要する時間を短縮することができる。
According to the writing device of
請求項5に記載の書き込み装置によれば、バックアップ領域は、フラッシュメモリに設けられている領域であって、当該フラッシュメモリに設けられている他の記憶領域よりも書き込み限度回数が多い領域であるので、バックアップ情報を繰り返しこのバックアップ領域に書き込むことができる。 According to the writing device of claim 5 , the backup area is an area provided in the flash memory and has a larger write limit number than other storage areas provided in the flash memory. Therefore, the backup information can be repeatedly written in this backup area.
以下、本発明に係る書き込み装置、書き込み方法、及び書き込みプログラムの実施の形態について図面を参照しつつ詳細に説明する。ただし、この実施の形態によって本発明が限定されるものではない。なお、書き込み装置の適用対象は任意で、例えばNAND型のフラッシュメモリを用いたメモリーカードのリーダライタに適用することができる。 Hereinafter, embodiments of a writing device, a writing method, and a writing program according to the present invention will be described in detail with reference to the drawings. However, the present invention is not limited by this embodiment. The application target of the writing device is arbitrary, and can be applied to, for example, a reader / writer of a memory card using a NAND flash memory.
(構成)
まず、実施の形態に係る書き込み装置の構成を説明する。図1は、実施の形態に係る書き込み装置を例示するブロック図である。書き込み装置1は、書き込み対象の情報をフラッシュメモリ2に書き込むための装置であって、図1に示すように、DRAM3、及び制御部4を備えている。
(Constitution)
First, the configuration of the writing device according to the embodiment will be described. FIG. 1 is a block diagram illustrating a writing device according to an embodiment. The
(構成−DRAM)
DRAM3は、書き込み装置1によるバックアップに関する情報が書き込まれる揮発性記録手段であり、公知のDRAMを用いることができる。具体的には、DRAM3には、書き込み装置1によってバックアップされた情報(以下、「バックアップ情報」)の正当性やバックアップの状態を特定するためのヘッダ情報が書き込まれる。図2は、ヘッダ情報の内容を例示した表である。図2に示すように、ヘッダ情報には、「マジックコード」、「CID/CSD」、「LBA」、「ブロックサイズ」、「チェックサム」、「ビットマップ」、「バックアップステータス」、及び「ヘッダのチェックサム」が含まれている。
(Configuration-DRAM)
The
「マジックコード」は、ヘッダ情報自体の正当性を確認するために用いられる情報であり、任意の値が設定される。「CID/CSD」は、バックアップ対象のフラッシュメモリ2を一意に識別するための識別情報である。「LBA」は、フラッシュメモリ2においてバックアップ対象の情報が記憶されていた位置を特定するための情報である。「ブロックサイズ」は、フラッシュメモリ2においてバックアップ対象の情報が記録されていたブロックのサイズを特定するための情報である。「チェックサム」は、バックアップ情報の誤り検出符号である。バックアップ情報が複数のクラスタに分割されてバックアップされた場合には、その分割されたクラスタ毎のチェックサムがヘッダ情報に含まれている。「ビットマップ」は、複数に分割されたバックアップ情報の各クラスタが使用されているか否かを特定するための情報である。このビットマップの詳細については後述する。「バックアップステータス」は、バックアップの状態を特定するための情報であり、バックアップ情報がないこと(以下、「未使用」)を示す「0」、破壊された情報の復旧に使用される可能性があるバックアップ情報があること(以下、「使用中」)を示す「1」、または破壊された情報の復旧に使用される可能性がないバックアップ情報があること(以下、「使用済み」)を示す「2」のいずれかの値が格納される。「ヘッダのチェックサム」は、ヘッダ情報の誤り検出符号である。
The “magic code” is information used to confirm the validity of the header information itself, and an arbitrary value is set. “CID / CSD” is identification information for uniquely identifying the
(構成−制御部)
制御部4は、書き込み装置1を制御する制御手段である。具体的には、CPU、当該CPU上で解釈実行される各種のプログラム(OSなどの基本制御プログラムや、OS上で起動され特定機能を実現するアプリケーションプログラムを含む)、及びプログラムや各種のデータを格納するためのRAMの如き内部メモリを備えて構成されるコンピュータである。特に、実施の形態に係る書き込みプログラムは、任意の記録媒体又はネットワークを介して書き込み装置1にインストールされることで、制御部4の各部を実質的に構成する。
(Configuration-control unit)
The
この制御部4は、機能概念的に、バックアップ部4a、書き込み部4b、及び復旧部4cを備えている。バックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報をバックアップ情報として読み出し、所定のバックアップ領域に書き込むバックアップ手段である。書き込み部4bは、書き込み対象の情報を書き込み先となるクラスタに書き込む書き込み手段である。復旧部4cは、バックアップ情報をバックアップ領域から読み出し、そのバックアップ情報に対応するブロックに書き込む復旧手段である。これらの制御部4の各構成要素によって実行される処理の詳細については後述する。
The
(構成−フラッシュメモリ)
フラッシュメモリ2は、書き込み装置1による情報の書き込み先となる記憶手段であり、NAND型のフラッシュメモリが用いられる。このフラッシュメモリ2の記憶領域は複数のブロックに分割されており、さらにこのブロックは複数のクラスタによって構成されている。また、記憶領域の一部にはバックアップ情報が書き込まれるバックアップ領域が設けられている。このバックアップ領域は、他の記憶領域よりも書き込み限度回数が多い領域である。従って、バックアップ情報を繰り返しこのバックアップ領域に書き込むことが可能である。
(Configuration-Flash memory)
The
(処理)
次に、このように構成される書き込み装置1によって実行される処理について説明する。書き込み装置1によって実行される処理は、フラッシュメモリ2に格納されている情報のバックアップを行うバックアップ処理と、情報が破壊された可能性がある場合にこれを復旧する復旧処理とに大別される。これらの処理について、以下説明する。
(processing)
Next, processing executed by the
(処理−バックアップ処理)
まず、バックアップ処理について説明する。図3はバックアップ処理のフローチャートである(以下の各処理の説明ではステップを「S」と略記する)。このバックアップ処理は、フラッシュメモリ2に格納されている情報をバックアップするための処理であり、例えば書き込み装置1に対してフラッシュメモリ2への情報の書き込み要求がされた場合に起動される。
(Processing-Backup processing)
First, the backup process will be described. FIG. 3 is a flowchart of the backup process (in the following description of each process, step is abbreviated as “S”). This backup process is a process for backing up the information stored in the
バックアップ処理の起動後、バックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含むブロックを特定する(SA1)。
After the backup process is started, the
続いてバックアップ部4aは、DRAM3に書き込まれているヘッダ情報に含まれる「LBA」を参照し、フラッシュメモリ2のバックアップ領域に書き込まれている既存のバックアップ情報によってバックアップされた情報がフラッシュメモリ2において記憶されていたブロックを特定する(SA2)。
Subsequently, the
バックアップ部4aは、SA1で特定したブロックとSA2で特定したブロックが同一か否かを判定する(SA3)。その結果、両ブロックが同一の場合(SA3、Yes)、バックアップ部4aはヘッダ情報が正当か否かを判定する(SA4)。ヘッダ情報が正当か否かの判定基準は任意で、例えば、ヘッダ情報に含まれる「ヘッダのチェックサム」と当該ヘッダ情報に基づいて改めて算出したチェックサムとが一致し、ヘッダ情報に含まれる「マジックコード」が予め設定されている値と一致し、ヘッダ情報に含まれる「CID/CSD」がフラッシュメモリ2から取得したCID/CSDと一致する場合に、当該ヘッダ情報が正当であると判定する。
The
その結果、ヘッダ情報が正当であると判定した場合(SA4、Yes)、バックアップ部4aは、フラッシュメモリ2のバックアップ領域に書き込まれている既存のバックアップ情報が正当か否かを判定する(SA5)。バックアップ情報が正当か否かの判定基準は任意で、例えば、ヘッダ情報の「チェックサム」とバックアップ情報に基づいて改めて算出したチェックサムとが一致する場合に、当該バックアップ情報が正当であると判定する。
As a result, when it is determined that the header information is valid (SA4, Yes), the
その結果、バックアップ情報が正当であると判定した場合(SA5、Yes)、バックアップ部4aは、そのバックアップ情報の状態が「使用済み」か否かを判定する(SA6)。具体的には、バックアップ部4aはヘッダ情報の「バックアップステータス」が「2」である場合に、バックアップ情報の状態が「使用済み」であると判定する。
As a result, when it is determined that the backup information is valid (SA5, Yes), the
その結果、バックアップ情報の状態が「使用済み」であった場合(SA6、Yes)、書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報が既存のバックアップ情報としてバックアップ領域に書き込まれているものとし、バックアップ部4aは既存のバックアップ情報を流用することを決定する(SA7)。
As a result, when the status of the backup information is “used” (SA6, Yes), the information stored in the block including the cluster to which the information to be written is written is stored in the backup area as the existing backup information. The
一方、SA1で特定したブロックとSA2で特定したブロックが同一ではない場合(SA3、No)、ヘッダ情報が正当ではないと判定した場合(SA4、No)、又は既存のバックアップ情報が正当ではないと判定した場合(SA5、No)は、改めて書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報をバックアップ情報として読み出す必要があるものとし、バックアップ部4aは既存のバックアップ情報を破棄する(SA8)。
On the other hand, when the block specified by SA1 and the block specified by SA2 are not the same (SA3, No), when it is determined that the header information is not valid (SA4, No), or the existing backup information is not valid. If it is determined (SA5, No), it is necessary to read the information stored in the block including the cluster to which the write target information is written again as the backup information, and the
続いてバックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、フラッシュメモリ2におけるバックアップ領域に書き込む(SA9)。
Subsequently, the
図4はバックアップ情報の読み出しを例示した概念図であり、図4(a)は書き込み対象の情報の書き込み先となるクラスタを含むブロックにおける情報の記憶状況を示した図、図4(b)は読み出されたバックアップ情報の内容を示した図である。図4(a)に示したように、書き込み対象の情報の書き込み先となるクラスタを含むブロックには、情報の記憶に使用されている領域と、情報の記憶に使用されていない領域とが含まれている。このブロックに記憶されている情報をバックアップ情報として読み出す場合、バックアップ部4aはブロックを複数のクラスタに分割し、このクラスタ毎に読み出しを行う。このとき、読み出し対象のクラスタの全部又は一部が情報の記憶に使用されている場合には、バックアップ部4aは当該クラスタに記憶されている情報を全て読み出す(図4(b)における上から4番目までのクラスタ)。一方、読み出し対象のクラスタの全部が情報の記憶に使用されていない場合には、そのクラスタについては情報を読み出さない(図4(b)における最下段のクラスタ)。これにより、バックアップ情報の読み出しに要する時間を短縮することができる。
FIG. 4 is a conceptual diagram illustrating reading of backup information. FIG. 4A is a diagram showing a storage state of information in a block including a cluster that is a write destination of information to be written, and FIG. It is the figure which showed the content of the read backup information. As shown in FIG. 4A, a block including a cluster to which information to be written is written includes an area used for storing information and an area not used for storing information. It is. When the information stored in this block is read as backup information, the
図3に戻り、SA7又はSA9の処理の後、バックアップ部4aは、バックアップ領域に書き込まれているバックアップ情報に基づいてヘッダ情報を作成し、そのヘッダ情報をDRAM3に書き込む(SA10)。
Returning to FIG. 3, after the processing of SA7 or SA9, the
図5はバックアップ情報に基づいて作成したヘッダ情報を例示した概念図であり、図5(a)はバックアップ領域に書き込まれたバックアップ情報を示す図、図5(b)はバックアップ情報に基づいて作成されたヘッダ情報を示す図である。図5(b)に示すように、バックアップ部4aは、バックアップ情報として読み出したクラスタ毎にチェックサムを算出し、ヘッダ情報の「チェックサム」に格納する。また、バックアップ情報として読み出した各クラスタが情報の記憶に使用されているか否かを特定し、特定結果に対応するビットマップ情報をヘッダ情報の「ビットマップ」に格納する。このビットマップ情報においては、各クラスタについて1ビットの情報が割り当てられ、クラスタが情報の記憶に使用されている場合には「1」、使用されていない場合には「0」が格納される。また、ヘッダ情報の「バックアップステータス」に、「使用中」であることを示す「1」を格納する。
FIG. 5 is a conceptual diagram illustrating header information created based on backup information. FIG. 5A is a diagram showing backup information written in the backup area, and FIG. 5B is created based on backup information. It is a figure which shows the header information performed. As shown in FIG. 5B, the
図3に戻り、SA10でヘッダ情報の作成及び書き込みを行った後、書き込み部4bは書き込み対象の情報を書き込み先となるクラスタに書き込む(SA11)。情報の書き込みが完了した後、バックアップ部4aはバックアップ情報の更新を行う(SA12)。具体的には、バックアップ情報の再利用を可能とするため、バックアップ部4aは、SA11において書き込みが行われた書き込み対象の情報を、SA9においてフラッシュメモリ2のバックアップ領域に書き込まれたバックアップ情報における対応部分に上書きする。
Returning to FIG. 3, after creating and writing the header information in SA10, the
さらにバックアップ部4aは、SA12で更新を行ったバックアップ情報に基づき、DRAM3に記憶されているヘッダ情報を更新する(SA13)。すなわち、SA12で更新されたバックアップ情報のクラスタ毎にチェックサムを再計算してヘッダ情報の「チェックサム」に格納するとともに、各クラスタの使用状況を特定するビットマップ情報をヘッダ情報の「ビットマップ」に格納する。また、ヘッダ情報の「バックアップステータス」を「使用済み」であることを示す「2」に更新する。その後、バックアップ部4aはバックアップ処理を終了する。
Further, the
また、SA6においてバックアップ情報の状態が「使用済み」ではなかった場合(SA6、No)、バックアップ部4aはバックアップ情報の状態が「未使用」か否かを判定する(SA14)。
In SA6, if the status of the backup information is not “used” (SA6, No), the
その結果、バックアップ情報の状態が「未使用」であった場合(SA14、Yes)、バックアップ情報を破棄する必要性がないものとし、バックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、フラッシュメモリ2におけるバックアップ領域に書き込む(SA9)。
As a result, if the status of the backup information is “unused” (SA14, Yes), it is assumed that there is no need to discard the backup information, and the
一方、バックアップ情報の状態が「未使用」ではなかった場合(SA14、No)、すなわちバックアップ情報の状態が「使用中」の場合、バックアップ情報を破棄したり、新たなバックアップ情報をバックアップ領域に書き込むことは適当でないものとし、バックアップ部4aはバックアップ処理を終了する。この際、併せてエラー出力を行ってもよい。
On the other hand, if the status of the backup information is not “unused” (SA14, No), that is, if the status of the backup information is “in use”, the backup information is discarded or new backup information is written to the backup area. This is not appropriate, and the
(処理−復旧処理)
次に、復旧処理について説明する。図6は復旧処理のフローチャートである。この復旧処理は、書き込み装置1の電源がONされた場合に起動される。
(Processing-Recovery processing)
Next, the recovery process will be described. FIG. 6 is a flowchart of the recovery process. This restoration process is started when the power of the
復旧処理が起動されると、復旧部4cは、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性があるか否かを判定する(SB1)。例えば復旧部4cは、図3のSA11において、書き込み先となるクラスタへの書き込み部4bによる書き込み対象の情報の書き込みが中断された場合(例えば書き込み装置1への電力の供給が遮断された場合や書き込み装置1のリセットがされた場合等)、そのクラスタを含むブロックに含まれる情報が破壊された可能性があると判定する。
When the recovery process is activated, the
その結果、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性があると判定した場合(SB1、Yes)、復旧部4cはDRAM3に書き込まれているヘッダ情報が正当か否かを判定する(SB2)。図3のバックアップ処理と同様に、ヘッダ情報が正当か否かの判定においては、例えばヘッダ情報に含まれる「ヘッダのチェックサム」、「マジックコード」、及び「CID/CSD」が用いられる。
As a result, when it is determined that there is a possibility that the information included in the block including the cluster to which the information to be written is written (SB1, Yes), the
その結果、ヘッダ情報が正当であると判定した場合(SB2、Yes)、復旧部4cはフラッシュメモリ2のバックアップ領域に書き込まれているバックアップ情報が正当か否かを判定する(SB3)。図3のバックアップ処理と同様に、バックアップ情報が正当か否かの判定においては、例えばヘッダ情報の「チェックサム」とバックアップ情報に基づいて改めて算出したチェックサムとが用いられる。
As a result, when it is determined that the header information is valid (SB2, Yes), the
その結果、バックアップ情報が正当であると判定した場合(SB3、Yes)、復旧部4cはバックアップ情報をバックアップ領域から読み出し、このバックアップ情報に対応するブロックに書き込む(SB4)。バックアップ情報を書き込むブロックは、ヘッダ情報の「LBA」に基づいて特定することができる。
As a result, when it is determined that the backup information is valid (SB3, Yes), the
その後、復旧部4cはヘッダ情報の更新を行う(SB5)。具体的には、ヘッダ情報の「バックアップステータス」を「使用済み」であることを示す「2」に更新する。また、「バックアップステータス」の変更に伴い、「ヘッダのチェックサム」も更新する。その後、復旧部4cは復旧処理を終了する。
Thereafter, the
一方、SB2でヘッダ情報が正当ではないと判定した場合(SB2、No)、又はSB3でバックアップ情報が正当ではないと判定した場合(SB3、No)、バックアップ領域に書き込まれているバックアップ情報では適切な復旧ができないものとし、復旧部4cはバックアップ情報を破棄する(SB6)。バックアップ情報の破棄の方法は任意で、例えばヘッダ情報の「マジックコード」を「0」とすることにより、バックアップ情報が破棄されたものとする。SB6でバックアップ情報を破棄した後、復旧部4cはエラー出力を行い(SB7)、復旧処理を終了する。
On the other hand, when it is determined that the header information is not valid at SB2 (SB2, No), or when it is determined that the backup information is not valid at SB3 (SB3, No), the backup information written in the backup area is appropriate. Therefore, the
また、SB1で書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性がないと判定した場合(SB1、No)、例えば、書き込み装置1は正常に起動されており、書き込み部4bによる書き込み対象の情報の書き込みは中断されていない場合、情報の復旧を行う必要はないものとし、復旧部4cは復旧処理を終了する。
Further, when it is determined in SB1 that there is no possibility that the information included in the block including the cluster to which the information to be written is written (SB1, No), for example, the
(効果)
このように実施の形態によれば、書き込み対象の情報をフラッシュメモリ2に書き込む際、当該書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、バックアップ領域に書き込む。そして、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性がある場合、バックアップ部4aによって書き込まれたバックアップ情報をバックアップ領域から読み出し、バックアップ情報に対応するブロックに書き込むので、電源遮断等の障害に起因して書き込み対象の情報が書き込まれるクラスタを含むブロックに格納されている他の情報が破壊された場合であっても、バックアップ情報に基づいてこれを復旧することができる。
(effect)
As described above, according to the embodiment, when writing information to be written to the
特に、書き込み先となるクラスタへの書き込み部4bによる書き込み対象の情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとするので、電源の遮断やリセット等によって情報の書き込みが中断され、情報が破壊された場合であっても、これを確実に復旧することができる。
In particular, if the writing of information to be written by the
また、書き込み対象の情報の書き込み先となるクラスタを含むブロックについて、そのブロックを構成するクラスタのうち、使用されていないクラスタについてはバックアップ情報を読み出さないので、バックアップに必要な情報だけをバックアップ処理において読み出すことができ、バックアップ情報の読み出しに要する時間を短縮することができる。 In addition, for blocks that contain clusters to which information to be written is written, backup information is not read for unused clusters among the clusters that make up the block. The time required for reading backup information can be reduced.
また、バックアップ領域は、フラッシュメモリ2に設けられている領域であって、当該フラッシュメモリ2に設けられている他の記憶領域よりも書き込み限度回数が多い領域であるので、バックアップすべき1ブロックの容量が大きい場合であってもバックアップ情報を確実に大容量のフラッシュメモリ2に書き込むことができる。また、バックアップ情報を繰り返しバックアップ領域に書き込むことができる。
In addition, the backup area is an area provided in the
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
[Modifications to Embodiment]
Although the embodiments of the present invention have been described above, the specific configuration and means of the present invention can be arbitrarily modified and improved within the scope of the technical idea of each invention described in the claims. Can do. Hereinafter, such a modification will be described.
(解決しようとする課題や発明の効果について)
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏することがある。
(About problems to be solved and effects of the invention)
First, the problems to be solved by the invention and the effects of the invention are not limited to the above contents, and may vary depending on the implementation environment and details of the configuration of the invention. May be solved, or only some of the effects described above may be achieved.
(バックアップ領域について)
上述の実施の形態では、バックアップ領域はフラッシュメモリ2の記憶領域の一部に設けられていると説明したが、他の記憶手段にバックアップ領域を設けてもよい。例えば、DRAM3にバックアップ領域を設け、ヘッダ情報とバックアップ情報とをDRAM3に書き込むようにしてもよい。
(About backup area)
In the above-described embodiment, it has been described that the backup area is provided in a part of the storage area of the
1 書き込み装置
2 フラッシュメモリ
3 DRAM
4 制御部
4a バックアップ部
4b 書き込み部
4c 復旧部
1
4
Claims (9)
書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、当該読み出されたバックアップ情報を、前記書き込み対象の情報を書き込む領域とは異なる領域であって、前記バックアップ情報を書き込む専用の領域として定められた特定の領域であるバックアップ領域に、上書きにより書き込むバックアップ手段と、
前記バックアップ手段が前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込み手段と、
前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップ手段によって書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧手段と、
を備える書き込み装置。 A writing device for writing information to a NAND flash memory,
When writing information to be written to the flash memory, the information stored in the block is read as backup information in units of blocks composed of a plurality of clusters including the cluster to which the information is written, and the read Backup means for writing the backup information by overwriting into a backup area that is a specific area defined as a dedicated area for writing the backup information, which is an area different from the area for writing the information to be written,
After the backup means writes the backup information in the backup area, the writing means writes the information into the cluster that is the write destination;
When there is a possibility that information included in the block including the cluster serving as the write destination is destroyed, the backup information written by the backup unit is read from the backup area, and the block corresponding to the backup information is read. Recovery means to write,
A writing device comprising:
前記書き込み先となるクラスタへの前記書き込み手段による情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとする、
請求項1に記載の書き込み装置。 The recovery means is:
When the writing of information by the writing means to the cluster that is the writing destination is interrupted, the information included in the block including the cluster may be destroyed.
The writing device according to claim 1.
前記書き込み先となるクラスタを含む前記ブロックを構成するクラスタのうち、使用されていないクラスタについては前記バックアップ情報を読み出さない、
請求項1又は2に記載の書き込み装置。 The backup means includes
Of the clusters constituting the block including the cluster to be written to, the backup information is not read for the unused cluster.
The writing device according to claim 1.
前記書き込み先となるクラスタを含む前記ブロックを構成するクラスタのうち、一部のみが使用されているクラスタについては前記バックアップ情報を読み出す、
請求項1から3のいずれか一項に記載の書き込み装置。 The backup means includes
Read out the backup information for a cluster in which only a part of the clusters constituting the block including the cluster to be written to is used,
The writing device according to any one of claims 1 to 3.
請求項1から4のいずれか一項に記載の書き込み装置。 The writing device according to any one of claims 1 to 4.
請求項1から4のいずれか一項に記載の書き込み装置。 The writing device according to any one of claims 1 to 4.
前記復旧手段は、前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップ領域に既に書き込まれているバックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む、The recovery means reads backup information already written in the backup area from the backup area when there is a possibility that information included in the block including the cluster to be written to is destroyed, and the backup information Write to the block corresponding to
請求項1から6のいずれか一項に記載の書き込み装置。 The writing device according to claim 1.
書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、当該読み出されたバックアップ情報を、前記書き込み対象の情報を書き込む領域とは異なる領域であって、前記バックアップ情報を書き込む専用の領域として定められた特定の領域であるバックアップ領域に、上書きにより書き込むバックアップステップと、 When writing information to be written to the flash memory, the information stored in the block is read as backup information in units of blocks composed of a plurality of clusters including the cluster to which the information is written, and the read A backup step of overwriting the backup information that has been written to a backup area that is different from an area in which the information to be written is written, and that is a specific area that is defined as a dedicated area for writing the backup information;
前記バックアップステップで前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込みステップと、 After writing the backup information in the backup area in the backup step, the writing step of writing the information to the cluster that is the write destination;
前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップステップで書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧ステップと、 When there is a possibility that information included in the block including the cluster to be written to has been destroyed, the backup information written in the backup step is read from the backup area, and the block corresponding to the backup information is read. A recovery step to write,
を含む書き込み方法。 Including writing method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010083209A JP5533141B2 (en) | 2010-03-31 | 2010-03-31 | Writing device, writing method, and writing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010083209A JP5533141B2 (en) | 2010-03-31 | 2010-03-31 | Writing device, writing method, and writing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011215870A JP2011215870A (en) | 2011-10-27 |
JP5533141B2 true JP5533141B2 (en) | 2014-06-25 |
Family
ID=44945536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010083209A Expired - Fee Related JP5533141B2 (en) | 2010-03-31 | 2010-03-31 | Writing device, writing method, and writing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5533141B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5809309B2 (en) * | 2014-03-28 | 2015-11-10 | 株式会社ユニバーサルエンターテインメント | Game machine |
JP2017021561A (en) | 2015-07-10 | 2017-01-26 | ファナック株式会社 | Control device file system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161942A (en) * | 1996-11-28 | 1998-06-19 | Sony Corp | Method, device for storing information, and information processor |
JP4046877B2 (en) * | 1998-12-14 | 2008-02-13 | 株式会社ルネサステクノロジ | Batch erase nonvolatile memory and mobile phone |
JP2003085055A (en) * | 2001-09-11 | 2003-03-20 | Sanyo Electric Co Ltd | Backup device and backup method |
JP2004005524A (en) * | 2002-03-29 | 2004-01-08 | Matsushita Electric Ind Co Ltd | Data recorder, data recording method, program for implementing the method and program recording medium |
JP2007041798A (en) * | 2005-08-02 | 2007-02-15 | Seiko Epson Corp | Information processor and memory rewriting method for information processor |
JP4425294B2 (en) * | 2007-05-29 | 2010-03-03 | 任天堂株式会社 | Game machine, game data backup control program, and backup control method |
JP5259138B2 (en) * | 2007-08-15 | 2013-08-07 | 株式会社日立超エル・エス・アイ・システムズ | Storage device |
-
2010
- 2010-03-31 JP JP2010083209A patent/JP5533141B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011215870A (en) | 2011-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645894B2 (en) | Data storage device and flash memory control method | |
US7774540B2 (en) | Storage system and method for opportunistic write-verify | |
JP4164118B1 (en) | Storage device using flash memory | |
US8825977B1 (en) | Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life | |
US8427771B1 (en) | Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors | |
US7911840B2 (en) | Logged-based flash memory system and logged-based method for recovering a flash memory system | |
US8397017B2 (en) | Controller and data storage device | |
US9652164B2 (en) | Solid-state mass storage device and method for processing forced unit access write commands | |
US20190243679A1 (en) | Information processing device system capable of preventing loss of user data | |
KR101139076B1 (en) | Memory device and file system | |
JP2008198310A (en) | Method for repairing bit error and information processing system | |
US20150074336A1 (en) | Memory system, controller and method of controlling memory system | |
JPWO2006104036A1 (en) | Storage device | |
JPWO2009004674A1 (en) | Storage device, disk device, write determination method, control device | |
JP2016118815A (en) | Nonvolatile memory device | |
JP5592478B2 (en) | Nonvolatile storage device and memory controller | |
CN105320468A (en) | Semiconductor memory device, memory controller, and control method of memory controller | |
JP2010086009A (en) | Storage device and memory control method | |
US10942811B2 (en) | Data processing method for solid state drive | |
KR101548452B1 (en) | Method and apparatus for recovering metadata in electronic device based on non-volatile memeory | |
US20160124650A1 (en) | Data Storage Device and Flash Memory Control Method | |
JP5533141B2 (en) | Writing device, writing method, and writing program | |
JP2008191701A (en) | Method of recovery from error and information processor | |
JP4661369B2 (en) | Memory controller | |
US20160041759A1 (en) | Storage system and data transmitting method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131001 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131129 |
|
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: 20140401 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5533141 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140414 |
|
LAPS | Cancellation because of no payment of annual fees |