JP2011215870A - 書き込み装置、書き込み方法、及び書き込みプログラム - Google Patents

書き込み装置、書き込み方法、及び書き込みプログラム Download PDF

Info

Publication number
JP2011215870A
JP2011215870A JP2010083209A JP2010083209A JP2011215870A JP 2011215870 A JP2011215870 A JP 2011215870A JP 2010083209 A JP2010083209 A JP 2010083209A JP 2010083209 A JP2010083209 A JP 2010083209A JP 2011215870 A JP2011215870 A JP 2011215870A
Authority
JP
Japan
Prior art keywords
information
backup
writing
written
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010083209A
Other languages
English (en)
Other versions
JP5533141B2 (ja
Inventor
Toshi Okada
敏志 岡田
Takao Suzuki
貴雄 鈴木
Mitsuhiro Futamura
光宏 二村
Hiroyoshi Masuda
浩義 枡田
Yoshihiro Tanabe
好宏 田邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisin AW Co Ltd
Original Assignee
Aisin AW Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisin AW Co Ltd filed Critical Aisin AW Co Ltd
Priority to JP2010083209A priority Critical patent/JP5533141B2/ja
Publication of JP2011215870A publication Critical patent/JP2011215870A/ja
Application granted granted Critical
Publication of JP5533141B2 publication Critical patent/JP5533141B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】NAND型のフラッシュメモリに対するデータの書き込みにおいて、電源遮断等の障害に起因してデータが書き込まれるクラスタを含むブロックに格納されている他のデータが破壊された場合であってもこれを復旧することができる、書き込み装置を提供すること。
【解決手段】書き込み装置1は、情報の書き込み先となるクラスタを含むブロックに記憶されている情報をバックアップ情報として読み出し、バックアップ領域に書き込むバックアップ部4aと、バックアップ部4aがバックアップ情報をバックアップ領域に書き込んだ後に、情報を書き込み先となるクラスタに書き込む書き込み部4bと、書き込み先となるクラスタを含むブロックに含まれる情報が破壊された可能性がある場合、バックアップ情報をバックアップ領域から読み出し、当該バックアップ情報に対応するブロックに書き込む復旧部4cとを備える。
【選択図】図1

Description

本発明は、書き込み装置、書き込み方法、及び書き込みプログラムに関する。
従来、HDD(Hard Disk Drive)やDRAM(Dynamic Random Access Memory)にデータを書き込む際、電源遮断やシステム異常などの障害に起因して、HDDに格納されているデータが破壊されたり、DRAMに格納されているデータが消失する可能性があった。このような場合に、障害が発生した直前の状態までデータを復元するため、HDD等に対して読み書きされるデータを一時的にバックアップする装置が提案されている。
例えば、磁気ディスク本体に対する書き込みデータを一時的に格納する不揮発性メモリを備え、障害発生の際にこの不揮発性メモリのデータを取り込むことにより磁気ディスク本体の書き込みデータを復旧する磁気ディスク装置が提案されている(例えば特許文献1参照)。
特開平04−273516号公報
ところで、近年のNAND型のフラッシュメモリの大容量化・低価格化に伴い、音楽データ等の大容量のデータを記憶するための補助記憶装置として、NAND型のフラッシュメモリが用いられつつある。このNAND型のフラッシュメモリの記憶領域は、複数の「ブロック」に分割されており、このブロック単位でデータが管理されている。このブロックは複数の「クラスタ」から構成されており、フラッシュメモリへのデータの読み書きはこのクラスタ単位で管理される。
図7は従来技術におけるフラッシュメモリへのデータの書き込みを例示した概念図であり、図7(a)はフラッシュメモリにおけるデータの書き込み位置を例示した図、図7(b)はデータの書き込み中に障害が発生した場合を例示した図である。図7(a)に示すように、ブロックを構成するクラスタの一つにデータを書き込んでいる途中で電源遮断等の障害が発生した場合、図7(b)に示すように、書き込み中のデータが破壊されるだけでなく、データが書き込まれるクラスタを含むブロックに格納されている他のデータも破壊される可能性があった。しかし、特許文献1の如き従来の装置では、書き込みデータのみが不揮発性メモリによってバックアップされているに過ぎないため、データが書き込まれるクラスタを含むブロックに格納されている他のデータが破壊された場合にはこれを復旧することは困難であった。
本発明は、上記に鑑みてなされたものであって、NAND型のフラッシュメモリに対するデータの書き込みにおいて、電源遮断等の障害に起因してデータが書き込まれるクラスタを含むブロックに格納されている他のデータが破壊された場合であってもこれを復旧することができる、書き込み装置、書き込み方法、及び書き込みプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、請求項1に記載の書き込み装置は、NAND型のフラッシュメモリに情報を書き込むための書き込み装置であって、書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、所定のバックアップ領域に書き込むバックアップ手段と、前記バックアップ手段が前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込み手段と、前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップ手段によって書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧手段とを備える。
また、請求項2に記載の書き込み装置は、請求項1に記載の書き込み装置において、前記復旧手段は、前記書き込み先となるクラスタへの前記書き込み手段による情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとする。
また、請求項3に記載の書き込み装置は、請求項1又は2に記載の書き込み装置において、前記バックアップ手段は、前記書き込み先となるクラスタを含む前記ブロックを構成するクラスタのうち、使用されていないクラスタについては前記バックアップ情報を読み出さない。
また、請求項4に記載の書き込み装置は、請求項1から3のいずれか一項に記載の書き込み装置において、前記バックアップ領域は、前記フラッシュメモリに設けられている領域であって、当該フラッシュメモリに設けられている他の記憶領域よりも書き込み限度回数が多い領域である。
また、請求項5に記載の書き込み方法は、NAND型のフラッシュメモリに情報を書き込むための書き込み方法であって、書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、所定のバックアップ領域に書き込むバックアップステップと、前記バックアップステップで前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込みステップと、前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップステップで書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧ステップとを含む。
また、請求項6に記載の書き込みプログラムは、請求項5に記載の方法をコンピュータに実行させる。
請求項1に記載の書き込み装置、請求項5に記載の書き込み方法、請求項6に記載の書き込みプログラムによれば、書き込み対象の情報をフラッシュメモリに書き込む際、当該書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、バックアップ領域に書き込む。そして、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性がある場合、バックアップ手段によって書き込まれたバックアップ情報をバックアップ領域から読み出し、バックアップ情報に対応するブロックに書き込むので、電源遮断等の障害に起因して書き込み対象の情報が書き込まれるクラスタを含むブロックに格納されている他の情報が破壊された場合であっても、バックアップ情報に基づいてこれを復旧することができる。
請求項2に記載の書き込み装置によれば、書き込み先となるクラスタへの書き込み手段による書き込み対象の情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとするので、電源の遮断やリセット等によって情報の書き込みが中断され、情報が破壊された場合であっても、これを確実に復旧することができる。
請求項3に記載の書き込み装置によれば、書き込み対象の情報の書き込み先となるクラスタを含むブロックについて、そのブロックを構成するクラスタのうち、使用されていないクラスタについてはバックアップ情報を読み出さないので、バックアップに必要な情報だけをバックアップ処理において読み出すことができ、バックアップ情報の読み出しに要する時間を短縮することができる。
請求項4に記載の書き込み装置によれば、バックアップ領域は、フラッシュメモリに設けられている領域であって、当該フラッシュメモリに設けられている他の記憶領域よりも書き込み限度回数が多い領域であるので、バックアップ情報を繰り返しこのバックアップ領域に書き込むことができる。
実施の形態に係る書き込み装置を例示するブロック図である。 ヘッダ情報の内容を例示した表である。 バックアップ処理のフローチャートである。 バックアップ情報の読み出しを例示した概念図であり、(a)は書き込み対象の情報の書き込み先となるクラスタを含むブロックにおける情報の記憶状況を示した図、(b)は読み出されたバックアップ情報の内容を示した図である。 バックアップ情報に基づいて作成したヘッダ情報を例示した概念図であり、(a)はバックアップ領域に書き込まれたバックアップ情報を示す図、(b)はバックアップ情報に基づいて作成されたヘッダ情報を示す図である。 復旧処理のフローチャートである。 従来技術におけるフラッシュメモリへのデータの書き込みを例示した概念図であり、(a)はフラッシュメモリにおけるデータの書き込み位置を例示した図、(b)はデータの書き込み中に障害が発生した場合を例示した図である。
以下、本発明に係る書き込み装置、書き込み方法、及び書き込みプログラムの実施の形態について図面を参照しつつ詳細に説明する。ただし、この実施の形態によって本発明が限定されるものではない。なお、書き込み装置の適用対象は任意で、例えばNAND型のフラッシュメモリを用いたメモリーカードのリーダライタに適用することができる。
(構成)
まず、実施の形態に係る書き込み装置の構成を説明する。図1は、実施の形態に係る書き込み装置を例示するブロック図である。書き込み装置1は、書き込み対象の情報をフラッシュメモリ2に書き込むための装置であって、図1に示すように、DRAM3、及び制御部4を備えている。
(構成−DRAM)
DRAM3は、書き込み装置1によるバックアップに関する情報が書き込まれる揮発性記録手段であり、公知のDRAMを用いることができる。具体的には、DRAM3には、書き込み装置1によってバックアップされた情報(以下、「バックアップ情報」)の正当性やバックアップの状態を特定するためのヘッダ情報が書き込まれる。図2は、ヘッダ情報の内容を例示した表である。図2に示すように、ヘッダ情報には、「マジックコード」、「CID/CSD」、「LBA」、「ブロックサイズ」、「チェックサム」、「ビットマップ」、「バックアップステータス」、及び「ヘッダのチェックサム」が含まれている。
「マジックコード」は、ヘッダ情報自体の正当性を確認するために用いられる情報であり、任意の値が設定される。「CID/CSD」は、バックアップ対象のフラッシュメモリ2を一意に識別するための識別情報である。「LBA」は、フラッシュメモリ2においてバックアップ対象の情報が記憶されていた位置を特定するための情報である。「ブロックサイズ」は、フラッシュメモリ2においてバックアップ対象の情報が記録されていたブロックのサイズを特定するための情報である。「チェックサム」は、バックアップ情報の誤り検出符号である。バックアップ情報が複数のクラスタに分割されてバックアップされた場合には、その分割されたクラスタ毎のチェックサムがヘッダ情報に含まれている。「ビットマップ」は、複数に分割されたバックアップ情報の各クラスタが使用されているか否かを特定するための情報である。このビットマップの詳細については後述する。「バックアップステータス」は、バックアップの状態を特定するための情報であり、バックアップ情報がないこと(以下、「未使用」)を示す「0」、破壊された情報の復旧に使用される可能性があるバックアップ情報があること(以下、「使用中」)を示す「1」、または破壊された情報の復旧に使用される可能性がないバックアップ情報があること(以下、「使用済み」)を示す「2」のいずれかの値が格納される。「ヘッダのチェックサム」は、ヘッダ情報の誤り検出符号である。
(構成−制御部)
制御部4は、書き込み装置1を制御する制御手段である。具体的には、CPU、当該CPU上で解釈実行される各種のプログラム(OSなどの基本制御プログラムや、OS上で起動され特定機能を実現するアプリケーションプログラムを含む)、及びプログラムや各種のデータを格納するためのRAMの如き内部メモリを備えて構成されるコンピュータである。特に、実施の形態に係る書き込みプログラムは、任意の記録媒体又はネットワークを介して書き込み装置1にインストールされることで、制御部4の各部を実質的に構成する。
この制御部4は、機能概念的に、バックアップ部4a、書き込み部4b、及び復旧部4cを備えている。バックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報をバックアップ情報として読み出し、所定のバックアップ領域に書き込むバックアップ手段である。書き込み部4bは、書き込み対象の情報を書き込み先となるクラスタに書き込む書き込み手段である。復旧部4cは、バックアップ情報をバックアップ領域から読み出し、そのバックアップ情報に対応するブロックに書き込む復旧手段である。これらの制御部4の各構成要素によって実行される処理の詳細については後述する。
(構成−フラッシュメモリ)
フラッシュメモリ2は、書き込み装置1による情報の書き込み先となる記憶手段であり、NAND型のフラッシュメモリが用いられる。このフラッシュメモリ2の記憶領域は複数のブロックに分割されており、さらにこのブロックは複数のクラスタによって構成されている。また、記憶領域の一部にはバックアップ情報が書き込まれるバックアップ領域が設けられている。このバックアップ領域は、他の記憶領域よりも書き込み限度回数が多い領域である。従って、バックアップ情報を繰り返しこのバックアップ領域に書き込むことが可能である。
(処理)
次に、このように構成される書き込み装置1によって実行される処理について説明する。書き込み装置1によって実行される処理は、フラッシュメモリ2に格納されている情報のバックアップを行うバックアップ処理と、情報が破壊された可能性がある場合にこれを復旧する復旧処理とに大別される。これらの処理について、以下説明する。
(処理−バックアップ処理)
まず、バックアップ処理について説明する。図3はバックアップ処理のフローチャートである(以下の各処理の説明ではステップを「S」と略記する)。このバックアップ処理は、フラッシュメモリ2に格納されている情報をバックアップするための処理であり、例えば書き込み装置1に対してフラッシュメモリ2への情報の書き込み要求がされた場合に起動される。
バックアップ処理の起動後、バックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含むブロックを特定する(SA1)。
続いてバックアップ部4aは、DRAM3に書き込まれているヘッダ情報に含まれる「LBA」を参照し、フラッシュメモリ2のバックアップ領域に書き込まれている既存のバックアップ情報によってバックアップされた情報がフラッシュメモリ2において記憶されていたブロックを特定する(SA2)。
バックアップ部4aは、SA1で特定したブロックとSA2で特定したブロックが同一か否かを判定する(SA3)。その結果、両ブロックが同一の場合(SA3、Yes)、バックアップ部4aはヘッダ情報が正当か否かを判定する(SA4)。ヘッダ情報が正当か否かの判定基準は任意で、例えば、ヘッダ情報に含まれる「ヘッダのチェックサム」と当該ヘッダ情報に基づいて改めて算出したチェックサムとが一致し、ヘッダ情報に含まれる「マジックコード」が予め設定されている値と一致し、ヘッダ情報に含まれる「CID/CSD」がフラッシュメモリ2から取得したCID/CSDと一致する場合に、当該ヘッダ情報が正当であると判定する。
その結果、ヘッダ情報が正当であると判定した場合(SA4、Yes)、バックアップ部4aは、フラッシュメモリ2のバックアップ領域に書き込まれている既存のバックアップ情報が正当か否かを判定する(SA5)。バックアップ情報が正当か否かの判定基準は任意で、例えば、ヘッダ情報の「チェックサム」とバックアップ情報に基づいて改めて算出したチェックサムとが一致する場合に、当該バックアップ情報が正当であると判定する。
その結果、バックアップ情報が正当であると判定した場合(SA5、Yes)、バックアップ部4aは、そのバックアップ情報の状態が「使用済み」か否かを判定する(SA6)。具体的には、バックアップ部4aはヘッダ情報の「バックアップステータス」が「2」である場合に、バックアップ情報の状態が「使用済み」であると判定する。
その結果、バックアップ情報の状態が「使用済み」であった場合(SA6、Yes)、書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報が既存のバックアップ情報としてバックアップ領域に書き込まれているものとし、バックアップ部4aは既存のバックアップ情報を流用することを決定する(SA7)。
一方、SA1で特定したブロックとSA2で特定したブロックが同一ではない場合(SA3、No)、ヘッダ情報が正当ではないと判定した場合(SA4、No)、又は既存のバックアップ情報が正当ではないと判定した場合(SA5、No)は、改めて書き込み対象の情報の書き込み先となるクラスタを含むブロックに記憶されている情報をバックアップ情報として読み出す必要があるものとし、バックアップ部4aは既存のバックアップ情報を破棄する(SA8)。
続いてバックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、フラッシュメモリ2におけるバックアップ領域に書き込む(SA9)。
図4はバックアップ情報の読み出しを例示した概念図であり、図4(a)は書き込み対象の情報の書き込み先となるクラスタを含むブロックにおける情報の記憶状況を示した図、図4(b)は読み出されたバックアップ情報の内容を示した図である。図4(a)に示したように、書き込み対象の情報の書き込み先となるクラスタを含むブロックには、情報の記憶に使用されている領域と、情報の記憶に使用されていない領域とが含まれている。このブロックに記憶されている情報をバックアップ情報として読み出す場合、バックアップ部4aはブロックを複数のクラスタに分割し、このクラスタ毎に読み出しを行う。このとき、読み出し対象のクラスタの全部又は一部が情報の記憶に使用されている場合には、バックアップ部4aは当該クラスタに記憶されている情報を全て読み出す(図4(b)における上から4番目までのクラスタ)。一方、読み出し対象のクラスタの全部が情報の記憶に使用されていない場合には、そのクラスタについては情報を読み出さない(図4(b)における最下段のクラスタ)。これにより、バックアップ情報の読み出しに要する時間を短縮することができる。
図3に戻り、SA7又はSA9の処理の後、バックアップ部4aは、バックアップ領域に書き込まれているバックアップ情報に基づいてヘッダ情報を作成し、そのヘッダ情報をDRAM3に書き込む(SA10)。
図5はバックアップ情報に基づいて作成したヘッダ情報を例示した概念図であり、図5(a)はバックアップ領域に書き込まれたバックアップ情報を示す図、図5(b)はバックアップ情報に基づいて作成されたヘッダ情報を示す図である。図5(b)に示すように、バックアップ部4aは、バックアップ情報として読み出したクラスタ毎にチェックサムを算出し、ヘッダ情報の「チェックサム」に格納する。また、バックアップ情報として読み出した各クラスタが情報の記憶に使用されているか否かを特定し、特定結果に対応するビットマップ情報をヘッダ情報の「ビットマップ」に格納する。このビットマップ情報においては、各クラスタについて1ビットの情報が割り当てられ、クラスタが情報の記憶に使用されている場合には「1」、使用されていない場合には「0」が格納される。また、ヘッダ情報の「バックアップステータス」に、「使用中」であることを示す「1」を格納する。
図3に戻り、SA10でヘッダ情報の作成及び書き込みを行った後、書き込み部4bは書き込み対象の情報を書き込み先となるクラスタに書き込む(SA11)。情報の書き込みが完了した後、バックアップ部4aはバックアップ情報の更新を行う(SA12)。具体的には、バックアップ情報の再利用を可能とするため、バックアップ部4aは、SA11において書き込みが行われた書き込み対象の情報を、SA9においてフラッシュメモリ2のバックアップ領域に書き込まれたバックアップ情報における対応部分に上書きする。
さらにバックアップ部4aは、SA12で更新を行ったバックアップ情報に基づき、DRAM3に記憶されているヘッダ情報を更新する(SA13)。すなわち、SA12で更新されたバックアップ情報のクラスタ毎にチェックサムを再計算してヘッダ情報の「チェックサム」に格納するとともに、各クラスタの使用状況を特定するビットマップ情報をヘッダ情報の「ビットマップ」に格納する。また、ヘッダ情報の「バックアップステータス」を「使用済み」であることを示す「2」に更新する。その後、バックアップ部4aはバックアップ処理を終了する。
また、SA6においてバックアップ情報の状態が「使用済み」ではなかった場合(SA6、No)、バックアップ部4aはバックアップ情報の状態が「未使用」か否かを判定する(SA14)。
その結果、バックアップ情報の状態が「未使用」であった場合(SA14、Yes)、バックアップ情報を破棄する必要性がないものとし、バックアップ部4aは、書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、フラッシュメモリ2におけるバックアップ領域に書き込む(SA9)。
一方、バックアップ情報の状態が「未使用」ではなかった場合(SA14、No)、すなわちバックアップ情報の状態が「使用中」の場合、バックアップ情報を破棄したり、新たなバックアップ情報をバックアップ領域に書き込むことは適当でないものとし、バックアップ部4aはバックアップ処理を終了する。この際、併せてエラー出力を行ってもよい。
(処理−復旧処理)
次に、復旧処理について説明する。図6は復旧処理のフローチャートである。この復旧処理は、書き込み装置1の電源がONされた場合に起動される。
復旧処理が起動されると、復旧部4cは、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性があるか否かを判定する(SB1)。例えば復旧部4cは、図3のSA11において、書き込み先となるクラスタへの書き込み部4bによる書き込み対象の情報の書き込みが中断された場合(例えば書き込み装置1への電力の供給が遮断された場合や書き込み装置1のリセットがされた場合等)、そのクラスタを含むブロックに含まれる情報が破壊された可能性があると判定する。
その結果、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性があると判定した場合(SB1、Yes)、復旧部4cはDRAM3に書き込まれているヘッダ情報が正当か否かを判定する(SB2)。図3のバックアップ処理と同様に、ヘッダ情報が正当か否かの判定においては、例えばヘッダ情報に含まれる「ヘッダのチェックサム」、「マジックコード」、及び「CID/CSD」が用いられる。
その結果、ヘッダ情報が正当であると判定した場合(SB2、Yes)、復旧部4cはフラッシュメモリ2のバックアップ領域に書き込まれているバックアップ情報が正当か否かを判定する(SB3)。図3のバックアップ処理と同様に、バックアップ情報が正当か否かの判定においては、例えばヘッダ情報の「チェックサム」とバックアップ情報に基づいて改めて算出したチェックサムとが用いられる。
その結果、バックアップ情報が正当であると判定した場合(SB3、Yes)、復旧部4cはバックアップ情報をバックアップ領域から読み出し、このバックアップ情報に対応するブロックに書き込む(SB4)。バックアップ情報を書き込むブロックは、ヘッダ情報の「LBA」に基づいて特定することができる。
その後、復旧部4cはヘッダ情報の更新を行う(SB5)。具体的には、ヘッダ情報の「バックアップステータス」を「使用済み」であることを示す「2」に更新する。また、「バックアップステータス」の変更に伴い、「ヘッダのチェックサム」も更新する。その後、復旧部4cは復旧処理を終了する。
一方、SB2でヘッダ情報が正当ではないと判定した場合(SB2、No)、又はSB3でバックアップ情報が正当ではないと判定した場合(SB3、No)、バックアップ領域に書き込まれているバックアップ情報では適切な復旧ができないものとし、復旧部4cはバックアップ情報を破棄する(SB6)。バックアップ情報の破棄の方法は任意で、例えばヘッダ情報の「マジックコード」を「0」とすることにより、バックアップ情報が破棄されたものとする。SB6でバックアップ情報を破棄した後、復旧部4cはエラー出力を行い(SB7)、復旧処理を終了する。
また、SB1で書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性がないと判定した場合(SB1、No)、例えば、書き込み装置1は正常に起動されており、書き込み部4bによる書き込み対象の情報の書き込みは中断されていない場合、情報の復旧を行う必要はないものとし、復旧部4cは復旧処理を終了する。
(効果)
このように実施の形態によれば、書き込み対象の情報をフラッシュメモリ2に書き込む際、当該書き込み対象の情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、バックアップ領域に書き込む。そして、書き込み対象の情報の書き込み先となったクラスタを含むブロックに含まれる情報が破壊された可能性がある場合、バックアップ部4aによって書き込まれたバックアップ情報をバックアップ領域から読み出し、バックアップ情報に対応するブロックに書き込むので、電源遮断等の障害に起因して書き込み対象の情報が書き込まれるクラスタを含むブロックに格納されている他の情報が破壊された場合であっても、バックアップ情報に基づいてこれを復旧することができる。
特に、書き込み先となるクラスタへの書き込み部4bによる書き込み対象の情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとするので、電源の遮断やリセット等によって情報の書き込みが中断され、情報が破壊された場合であっても、これを確実に復旧することができる。
また、書き込み対象の情報の書き込み先となるクラスタを含むブロックについて、そのブロックを構成するクラスタのうち、使用されていないクラスタについてはバックアップ情報を読み出さないので、バックアップに必要な情報だけをバックアップ処理において読み出すことができ、バックアップ情報の読み出しに要する時間を短縮することができる。
また、バックアップ領域は、フラッシュメモリ2に設けられている領域であって、当該フラッシュメモリ2に設けられている他の記憶領域よりも書き込み限度回数が多い領域であるので、バックアップすべき1ブロックの容量が大きい場合であってもバックアップ情報を確実に大容量のフラッシュメモリ2に書き込むことができる。また、バックアップ情報を繰り返しバックアップ領域に書き込むことができる。
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
(解決しようとする課題や発明の効果について)
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏することがある。
(バックアップ領域について)
上述の実施の形態では、バックアップ領域はフラッシュメモリ2の記憶領域の一部に設けられていると説明したが、他の記憶手段にバックアップ領域を設けてもよい。例えば、DRAM3にバックアップ領域を設け、ヘッダ情報とバックアップ情報とをDRAM3に書き込むようにしてもよい。
1 書き込み装置
2 フラッシュメモリ
3 DRAM
4 制御部
4a バックアップ部
4b 書き込み部
4c 復旧部

Claims (6)

  1. NAND型のフラッシュメモリに情報を書き込むための書き込み装置であって、
    書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、所定のバックアップ領域に書き込むバックアップ手段と、
    前記バックアップ手段が前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込み手段と、
    前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップ手段によって書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧手段と、
    を備える書き込み装置。
  2. 前記復旧手段は、
    前記書き込み先となるクラスタへの前記書き込み手段による情報の書き込みが中断された場合、当該クラスタを含むブロックに含まれる情報が破壊された可能性があるものとする、
    請求項1に記載の書き込み装置。
  3. 前記バックアップ手段は、
    前記書き込み先となるクラスタを含む前記ブロックを構成するクラスタのうち、使用されていないクラスタについては前記バックアップ情報を読み出さない、
    請求項1又は2に記載の書き込み装置。
  4. 前記バックアップ領域は、前記フラッシュメモリに設けられている領域であって、当該フラッシュメモリに設けられている他の記憶領域よりも書き込み限度回数が多い領域である、
    請求項1から3のいずれか一項に記載の書き込み装置。
  5. NAND型のフラッシュメモリに情報を書き込むための書き込み方法であって、
    書き込み対象の情報を前記フラッシュメモリに書き込む際、当該情報の書き込み先となるクラスタを含む複数のクラスタで構成されたブロック単位で、当該ブロックに記憶されている情報をバックアップ情報として読み出し、所定のバックアップ領域に書き込むバックアップステップと、
    前記バックアップステップで前記バックアップ情報を前記バックアップ領域に書き込んだ後に、前記情報を前記書き込み先となるクラスタに書き込む書き込みステップと、
    前記書き込み先となるクラスタを含む前記ブロックに含まれる情報が破壊された可能性がある場合、前記バックアップステップで書き込まれた前記バックアップ情報を前記バックアップ領域から読み出し、当該バックアップ情報に対応する前記ブロックに書き込む復旧ステップと、
    を含む書き込み方法。
  6. 請求項5に記載の方法をコンピュータに実行させる書き込みプログラム。
JP2010083209A 2010-03-31 2010-03-31 書き込み装置、書き込み方法、及び書き込みプログラム Expired - Fee Related JP5533141B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010083209A JP5533141B2 (ja) 2010-03-31 2010-03-31 書き込み装置、書き込み方法、及び書き込みプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010083209A JP5533141B2 (ja) 2010-03-31 2010-03-31 書き込み装置、書き込み方法、及び書き込みプログラム

Publications (2)

Publication Number Publication Date
JP2011215870A true JP2011215870A (ja) 2011-10-27
JP5533141B2 JP5533141B2 (ja) 2014-06-25

Family

ID=44945536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010083209A Expired - Fee Related JP5533141B2 (ja) 2010-03-31 2010-03-31 書き込み装置、書き込み方法、及び書き込みプログラム

Country Status (1)

Country Link
JP (1) JP5533141B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014147806A (ja) * 2014-03-28 2014-08-21 Universal Entertainment Corp 遊技機
DE102016008046A1 (de) 2015-07-10 2017-01-12 Fanuc Corporation Steuerungsdateisystem

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161942A (ja) * 1996-11-28 1998-06-19 Sony Corp 情報記憶方法及び情報記憶装置及び情報処理装置
JP2000182381A (ja) * 1998-12-14 2000-06-30 Mitsubishi Electric Corp 一括消去型不揮発性メモリ
JP2003085055A (ja) * 2001-09-11 2003-03-20 Sanyo Electric Co Ltd バックアップ装置およびバックアップ方法
JP2004005524A (ja) * 2002-03-29 2004-01-08 Matsushita Electric Ind Co Ltd データ記録装置、データ記録方法、当該方法を実行するためのプログラム及びプログラム記録媒体
JP2007041798A (ja) * 2005-08-02 2007-02-15 Seiko Epson Corp 情報処理装置及び情報処理装置のメモリ書き換え方法
JP2007275611A (ja) * 2007-05-29 2007-10-25 Nintendo Co Ltd ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法
JP2009048680A (ja) * 2007-08-15 2009-03-05 Hitachi Ulsi Systems Co Ltd 記憶装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161942A (ja) * 1996-11-28 1998-06-19 Sony Corp 情報記憶方法及び情報記憶装置及び情報処理装置
JP2000182381A (ja) * 1998-12-14 2000-06-30 Mitsubishi Electric Corp 一括消去型不揮発性メモリ
JP2003085055A (ja) * 2001-09-11 2003-03-20 Sanyo Electric Co Ltd バックアップ装置およびバックアップ方法
JP2004005524A (ja) * 2002-03-29 2004-01-08 Matsushita Electric Ind Co Ltd データ記録装置、データ記録方法、当該方法を実行するためのプログラム及びプログラム記録媒体
JP2007041798A (ja) * 2005-08-02 2007-02-15 Seiko Epson Corp 情報処理装置及び情報処理装置のメモリ書き換え方法
JP2007275611A (ja) * 2007-05-29 2007-10-25 Nintendo Co Ltd ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法
JP2009048680A (ja) * 2007-08-15 2009-03-05 Hitachi Ulsi Systems Co Ltd 記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014147806A (ja) * 2014-03-28 2014-08-21 Universal Entertainment Corp 遊技機
DE102016008046A1 (de) 2015-07-10 2017-01-12 Fanuc Corporation Steuerungsdateisystem

Also Published As

Publication number Publication date
JP5533141B2 (ja) 2014-06-25

Similar Documents

Publication Publication Date Title
US9645894B2 (en) Data storage device and flash memory control method
JP4881856B2 (ja) 記憶装置
JP2009237668A (ja) フラッシュメモリを用いた記憶装置
KR101139076B1 (ko) 메모리 장치 및 파일 시스템
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
US20150074336A1 (en) Memory system, controller and method of controlling memory system
US9547566B2 (en) Storage control apparatus, storage apparatus, information processing system, and storage control method therefor
JPWO2009004674A1 (ja) 記憶装置、ディスク装置、書込み判定方法、制御装置
JP2016118815A (ja) 不揮発性メモリ装置
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP2007241618A (ja) 不揮発性記憶装置及びその書き込み判定方法
JP2010079856A (ja) 記憶装置およびメモリ制御方法
US8527733B2 (en) Memory system
JP2010086009A (ja) 記憶装置およびメモリ制御方法
US10942811B2 (en) Data processing method for solid state drive
CN105320468A (zh) 半导体存储器件、存储控制器以及存储控制器的控制方法
KR101548452B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
JP4956230B2 (ja) メモリコントローラ
JP2008191701A (ja) エラー回復処理方法および情報処理装置
US20160124650A1 (en) Data Storage Device and Flash Memory Control Method
JP5533141B2 (ja) 書き込み装置、書き込み方法、及び書き込みプログラム
US20150339198A1 (en) Semiconductor memory device including nonvolatile semiconductor memory, control method of memory controller, and memory controller
JP7004033B1 (ja) 保管装置、保管システム、制御方法及びプログラム
CN110134322B (zh) 运用dram的储存装置及其相关数据处理方法
CN103389943A (zh) 控制装置、存储装置及存储控制方法

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