JP2004152331A - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP2004152331A JP2004152331A JP2002313525A JP2002313525A JP2004152331A JP 2004152331 A JP2004152331 A JP 2004152331A JP 2002313525 A JP2002313525 A JP 2002313525A JP 2002313525 A JP2002313525 A JP 2002313525A JP 2004152331 A JP2004152331 A JP 2004152331A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- flash memory
- memory unit
- holding unit
- 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
Links
Images
Abstract
【解決手段】データが記憶される複数のフラッシュメモリブロックによって構成されるフラッシュメモリ部11と、フラッシュメモリ部11を構成する各ブロック毎にデータ状態、論理アドレス、論理ブロック番号、ブロック状態、フラッシュメモリ部の書き換え回数、フラッシュメモリ部の再構築時の情報である再構築対象の物理ブロック番号およびブロック書き換え回数が記憶されるブロック状態保持部12と、外部からのデータ書き込み/読み出し要求に従って、フラッシュメモリ部11へのデータ書き込み/データ読み出しおよびブロック状態保持部12の制御を行うデータ制御部10とを有する。フラッシュメモリ部11のデータ書き込み/消去処理においてデータ状態が変化する毎に、ブロック状態保持部12のデータ状態/ブロック状態を順次変化させる。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、不揮発性半導体メモリとしてフラッシュメモリを用いた記憶装置に関する。
【0002】
【従来の技術】
不揮発性半導体メモリとしてフラッシュメモリを用いた従来のデータ記憶装置として、例えば、特許文献1には、フラッシュメモリをバックアップメモリとして用いたデータ記憶装置が開示されている。
【0003】
図16は、特許文献1に開示されているデータ記憶装置の構成を示すブロック図である。
【0004】
このデータ記憶装置102は、データ記憶装置102に対してデータの読み出し/書き込みを要求するホスト(ホスト計算機)101と接続されている。データ記憶装置102は、ホストインタフェース部110、記憶回路制御手段111、フラッシュメモリ部112、書き換え情報保持部113およびメモリ部114によって構成されている。
【0005】
ホストインタフェース部110は、ホスト101から指示されたデータの読み出し/書き込みを行う際に、ホスト101と記憶装置102との間のインタフェースを制御する。記憶回路制御手段111は、ホストインタフェース部110、フラッシュメモリ部112、書き換え情報保持部113およびメモリ部114のそれぞれを制御する。
【0006】
フラッシュメモリ部112は、複数のフラッシュメモリブロックによって構成され、メモリ部114のバックアップメモリとして用いられる。書き換え情報保持部113は、複数のフラッシュメモリブロックによって構成され、フラッシュメモリ部112のデータが書き換えられる毎に、書き換えアドレスおよび書き換えデータが記憶される。また、書き換え情報保持部113には、フラッシュメモリ部112の書き換え回数も記憶される。メモリ部14は、RAM等によって構成され、常に最新のデータが記憶される。
【0007】
以下に、フラッシュメモリ部112、書き換え情報保持部113およびメモリ部114の内部構成、並びに記憶回路制御手段111の動作について、図17〜図20を用いて説明する。
【0008】
図17は、従来のデータ記憶装置102の起動/リセット時におけるメモリ部114、フラッシュメモリ部112および書き換え情報保持部113の状態の一例を示す図である。また、図18は、メモリ部114のデータ書き換え時の状態の一例を示す図であり、図19および図20は、フラッシュメモリ部112のデータ書き換え時の状態の一例を示す図である。
【0009】
メモリ部114は、(m+1)ワードに分けられており、最新のデータが記憶されている。各ワードにはアドレス”0”〜”m”が割り当てられており、これらのアドレスは、記憶回路制御手段111からのアクセス時に利用される。
【0010】
フラッシュメモリ部112は、メモリ部114と同様に(m+1)ワードに分けられて各ワードにアドレス”0”〜”m”が割り当てられており、メモリ部114の各アドレスに対応するデータのバックアップデータが記憶されている。
【0011】
書き換え情報保持部113は、(n+1)ワードに分けられており、メモリ部114の全データがフラッシュメモリ部112へバックアップされた後にメモリ部114のデータが書き換えられた場合、そのアドレスおよびデータがセットで記憶される。書き換え状態保持部113の各ワードには、アドレス”0”〜”n”が割り当てられており、これらのアドレスは、記憶回路制御手段111からのアクセス時に利用される。アドレス番地”n”のワードには、対応するフラッシュメモリ部112の書き換え回数が記憶される。また、書き換え情報記憶部113に記憶されるアドレスおよびデータは、この順に、先頭アドレスから未書き込みワードに記憶される。
【0012】
図17に示すデータ記憶装置102の起動/リセット時において、記憶回路制御手段111は、フラッシュメモリ部112の全データを、対応するメモリ部114へコピーする。記憶回路制御手段111は、書き換え情報保持部113を、先頭のアドレスから順に未書き込みワードが見つかるまで検索し、書き換えデータが存在する場合には、メモリ部114において書き換えアドレスに対応するアドレスに記憶されているデータを、書き換え情報保持部113に記憶されている書き換えデータに書き換える。
【0013】
図17の例では、書き換え情報保持部113のアドレス番地”0”およびアドレス番地”1”の領域に、メモリ部114のアドレス”1”(書き換えアドレス0001H:Hは16進数を示す。以下同様)および書き換えデータ”F2F3H”が記憶されている。よって、メモリ部114のアドレス番地”1”のデータは、フラッシュメモリ部112のアドレス番地”1”の領域からコピーされたデータ”0203H”から、”F2F3H”へ書き換えられる。以上により、メモリ114のデータが最新の状態へ復帰される。
【0014】
また、図18に示すメモリ部114のデータ書き換えは、ホスト101からホストインタフェース部110を介してメモリ部114のデータ書き換えが指示された場合に行われる。このとき、記憶回路制御手段111は、メモリ部114の指示されたアドレスのデータを書き換える。記憶回路制御手段111は、書き換え情報保持部113の未書き込みワードに、書き換えアドレスおよび書き換えデータを順に記憶させる。
【0015】
図18の例では、メモリ部114のアドレス番地”4”のデータが”E8C9H”へ書き換えられている。また、書き換え情報保持部113のアドレス番地”2”の領域に書き換えアドレス4が記憶され、書き換え情報保持部113のアドレス番地”3”の領域に書き換えデータ”E8C9H”が記憶されている。このとき、フラッシュメモリ部112のデータは変化しない。
【0016】
また、図19および図20に示すフラッシュメモリ部112のデータ書き換えは、メモリ部114の書き換えを繰り返した結果、書き換え情報保持部113の未書き込みワードを使い切った場合、または、メモリ部114のデータ書き換えによって書き換え情報保持部113の未書き込みワードが不足する場合に行われる。まず、図19に示すように、記憶回路制御手段111は、フラッシュメモリ部112の全データを消去する。次に、図20に示すように、メモリ部114の全データをフラッシュメモリ部112へコピーする。メモリ部114のデータ書き換えに備えて、書き込み情報保持部113の全情報を消去し、(書き換え回数+1)を新たな書き換え回数としてアドレスnへ記憶させる。
【0017】
図20の例では、書き込み情報保持部113の全情報が消去され、フラッシュメモリ部112の書き換え回数”3”(=2+1)がアドレス番地”n”の領域に記憶されている。
【0018】
【特許文献1】
特許第3166659号公報
【0019】
【発明が解決しようとする課題】
上述した特許文献1に開示されているデータ記憶装置102においては、フラッシュメモリ部112のデータ書き換えを行う際に、図20に示すようにメモリ部114のデータをバックアップする(フラッシュメモリ部112にメモリ部114のデータをコピーする)ために、まず、図19に示すように、フラッシュメモリ部112にバックアップされているデータを消去する必要がある。
【0020】
このため、フラッシュメモリ部112のデータ消去が開始されてから、メモリ部114のデータをフラッシュメモリ部112へコピー完了するまでの間に、データ記憶装置102の電源が遮断されるか、またはデータ記憶装置102がリセットされると、メモリ部114のデータが消失されることは当然のことながら、さらに、フラッシュメモリ部112のバックアップデータも消去されているために、フラッシュメモリ部112のデータを用いてメモリ部114のデータを復帰させることも不可能であるという問題点を有している。
【0021】
本発明は、上記従来の問題を解決するもので、電源遮断/リセットによるデータ消失からデータを保護して信頼性を向上させることができる記憶装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
本発明の記憶装置は、データが記憶される複数のフラッシュメモリブロックによって構成されるフラッシュメモリ部と、該フラッシュメモリ部を構成する各ブロック毎に、当該ブロックへのデータ記憶状態、当該ブロックに含まれる物理領域へのデータ記憶状態、記憶データのアドレス情報およびフラッシュメモリ部の再構築処理時に用いられる情報が記憶されるブロック状態保持部と、外部からデータの書き込みが指示された場合に、該ブロック状態保持部の情報に従って該フラッシュメモリ部へデータを書き込むと共に該ブロック状態保持部の情報更新を行い、該フラッシュメモリ部のブロック毎に新しいデータを書き込む領域が無くなった場合に、当該ブロックを再構築して書き込み領域を確保すると共に該ブロック状態保持部の情報更新を行い、外部からデータの読み出しが指示された場合に、該ブロック状態保持部の情報に従って該フラッシュメモリ部からデータを読み出すデータ制御部とを備えておりそのことにより上記目的が達成される。
【0023】
前記ブロック状態保持部は、前記ブロックおよびブロックに含まれる物理領域へのデータ記憶状態としてブロック状態およびデータ状態が記憶され、記憶データのアドレス情報として論理アドレスおよび論理ブロック番号が記憶され、フラッシュメモリ部の再構築処理時に用いられる情報としてフラッシュメモリ部のブロック書き換え回数、再構築対象の物理ブロック番号および再構築対象のブロック書き換え回数が記憶される。
【0024】
前記データ制御部は、電源投入/リセット後において、前記ブロック状態保持部のブロック状態を参照して、前記フラッシュメモリ部の再構築中に電源遮断/リセットが発生していないかを確認し、該フラッシュメモリ部の再構築中に電源遮断/リセットが発生していた場合には、該フラッシュメモリ部および該ブロック状態保持部を修復すると共に、該ブロック状態保持部のデータ状態を参照して、前記フラッシュメモリ部へのデータ書き込み中もしくはブロック状態保持部の情報更新中に電源遮断/リセットが発生していないかを確認し、該フラッシュメモリ部へのデータ書き込み中もしくはブロック状態保持部の情報更新中に電源遮断/リセットが発生していた場合には、該ブロック状態保持部を修復することができる。
【0025】
前記フラッシュメモリ部および前記ブロック状態保持部は、それぞれ再構築用領域を有し、再構築が行われる度に、再構築用領域と再構築対象となった領域とが入れ替えられる。
【0026】
前記データ制御部は、前記フラッシュメモリ部の再構築処理が必要な場合に、再構築対象のブロックのデータを、ブロック状態保持部に記憶されたデータ状態に従って再構築用領域へコピーした後、当該再構築対象のブロックのデータを消去させる。
【0027】
前記ブロック状態保持部は、複数のフラッシュメモリブロックによって構成されている。
【0028】
前記データ制御部は、電源投入/リセット後に、前記フラッシュメモリ部の物理ブロック番号および論理ブロック番号の対応関係をテーブルとして保持し、該フラッシュメモリ部および前記ブロック状態保持部へのアクセス時に該テーブルを参照することができる。
【0029】
前記ブロック状態保持部は、データ状態として、未使用、データ書き込み中、論理アドレス書き込み中、旧データ無効化中、有効および無効の6種類の情報のうちのいずれかが記憶される。
【0030】
前記ブロック状態保持部は、ブロック状態として、未使用、コピー中、ブロック消去中および有効の4種類の情報のうちのいずれかが記憶される。
【0031】
前記データ制御部は、前記フラッシュメモリ部へのデータ書き込みまたは再構築処理において、該フラッシュメモリ部に記憶されているデータの状態を変化させる度に、前記ブロック状態保持部に記憶されているデータ状態またはブロック状態を順次変化させる。
【0032】
以下に、本発明の作用について説明する。
【0033】
本発明においては、フラッシュメモリ部は、データが記憶される複数のフラッシュメモリブロックによって構成されている。各ブロックはk個の物理的な領域に分けられており、各領域にはアドレス0〜k−1が割り当てられている。このアドレス(物理アドレス)は、データ制御部からのアクセス時に利用される。また、フラッシュメモリ部を構成するブロックのうち、1個のブロックがフラッシュメモリ部の再構築時に使用されるブロック(再構築用領域)として割り当てられ、この再構築用領域へのデータ記憶は行われない。この再構築用領域は、再構築が行われる度に、再構築対象となったブロックと入れ替えられることによって、再利用することができる。
【0034】
不揮発性半導体メモリであるフラッシュメモリ部に常に最新のデータを記憶させることができるので、特許文献1に開示されているデータ記憶装置のように、予期しない電源遮断/リセットによるデータ消失からデータを保護することができる。
【0035】
ブロック状態保持部は、複数のブロックに分けられており、フラッシュメモリ部を構成するブロック毎に、そのブロックへのデータ記憶状態およびそのブロックに含まれる物理領域へのデータ記憶状態としてブロック状態およびデータ状態が記憶され、記憶データのアドレス情報として論理ブロック番号および論理アドレスが記憶され、フラッシュメモリ部の再構築処理時に用いられる情報としてフラッシュメモリ部のブロック書き換え回数、再構築対象の物理ブロック番号および再構築対象のブロック書き換え回数が記憶されている。ブロック状態保持部は、1個のブロックがフラッシュメモリ部の再構築時に使用される再構築用領域として割り当てられており、この再構築用領域には情報が記憶されない。この再構築用領域は、再構築が行われる度に、再構築対象となったブロックと入れ替えられることによって、再利用することができる。
【0036】
フラッシュメモリ部にデータを書き込む際にブロック状態保持部の情報更新を行い、フラッシュメモリ部のブロックを再構築する際にブロック状態保持部の情報更新を行うことによって、常に最新の情報をブロック状態保持部に記憶させることができる。また、フラッシュメモリ部へのデータ書き込み(書き換え)またはフラッシュメモリ部の再構築時のデータ消去処理において、データ状態またはブロック状態を順次変化させることによって、記憶装置の電源遮断/リセットによるデータ消失に対して、フラッシュメモリ部の書き換え時を含めたあらゆる状況で記憶装置内のデータを保護することが可能となる。
【0037】
このブロック状態保持部は、フラッシュメモリで構成することによって、記憶装置における不揮発性半導体メモリをフラッシュメモリのみで構成することができるため、複数種類のメモリを混在させる必要がなく、部品点数を削減することが可能となる。この場合、ブロック状態保持部は、フラッシュメモリ部と物理的に同一のブロック、または物理的に異なるブロックのいずれに配置しても良い。
【0038】
データ制御部は、フラッシュメモリ部のデータにアクセスする際に、物理アドレス順には不連続であるデータを、ブロック状態保持部に記憶された各領域のデータ状態、その論理的なアドレスおよび論理ブロック番号に従って、論理的に連続しているように変換して、フラッシュメモリ部からのデータの読み出しおよびフラッシュメモリ部へのデータの書き込みを行うことができる。これによって、外部からは、フラッシュメモリ部内のデータ配置を意識することなく、フラッシュメモリ部へのアクセスが可能となる。
【0039】
また、データ制御部は、フラッシュメモリ部の再構築処理が必要な状態であるか否かを判断して、再構築処理が必要な場合に、そのブロックのデータを、ブロック状態保持部に記憶されたデータ状態に従って再構築用ブロックへコピーした後、そのブロックのデータを消去させることができる。これによって、特許文献1に開示されているデータ記憶装置のように、フラッシュメモリ部の再構築中にデータ記憶装置の電源遮断/リセットが生じても、フラッシュメモリ部のデータが消失されることはない。
【0040】
また、データ制御部は、フラッシュメモリ部の再構築中に予期しない記憶装置の電源遮断/リセットが生じても、ブロック状態保持部のブロック状態を参照することによって、フラッシュメモリ部およびブロック状態保持部を修復することができる。また、データ制御部は、フラッシュメモリ部へのデータ書き込み中もしくはブロック状態保持部の情報更新中に予期しない記憶装置の電源遮断/リセットが生じても、ブロック状態保持部のデータ状態を参照することによって、ブロック状態保持部を修復することができる。
【0041】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面に基づいて説明する。
【0042】
図1は、本発明の一実施形態であるデータ記憶装置1の構成を示すブロック図である。
【0043】
このデータ記憶装置1は、データ制御部10、フラッシュメモリ部11およびブロック状態保持部12によって構成されている。
【0044】
フラッシュメモリ部11は、複数のフラッシュメモリブロックによって構成されており、データ制御部10を介して指示されたデータが記憶される。
【0045】
ブロック状態保持部12は、複数のフラッシュメモリブロックによって構成されており、各ブロックは、フラッシュメモリ部11のブロックにそれぞれ対応している。ブロック状態保持部12には、フラッシュメモリ部11において対応する各ブロック毎に、当該ブロックへのデータ記憶状態に関する情報、当該ブロックに含まれる物理領域へのデータ記憶状態に関する情報、データのアドレス情報およびフラッシュメモリ部11の再構築処理時に用いられる情報が記憶されており、フラッシュメモリ部11において対応するブロックにデータが書き込まれたり、再構築処理が行われる度に、ブロック状態保持部12の情報が更新される。
【0046】
データ制御部10は、データ記憶装置1の外部からデータ書き込み/読み出しが要求されると、その要求に従って、フラッシュメモリ部11へのデータ記憶/データ読み出し、およびフラッシュメモリ部11の各ブロックに対応するブロック状態保持部12を制御する。
【0047】
次に、フラッシュメモリ部11およびブロック状態保持部12の内部構成について、図2を用いて説明する。
【0048】
フラッシュメモリ部11を構成する各ブロックは、図2(b)に示すように、k個の物理的な領域に分けられており、データ制御部10を介して書き込み指示されたデータが記憶されている。各物理的な領域には、アドレス(物理アドレス)”0”〜”k−1”が割り当てられており、これらのアドレスは、データ制御部10からのアクセス時に利用される。フラッシュメモリ部11において、物理的な領域には、それぞれ、データ制御部10によって書き込み指示された順にデータが記憶されている。この物理的なデータ配置は、図2(a)に示す論理的なデータ配置とは異なっているため、データ制御部10からのアクセス時には、物理ブロック番号と論理ブロック番号との変換が行われると共に、各ブロック内の論理アドレス(”0”〜”i−1”)と物理アドレスとの変換が行われる。
【0049】
ブロック状態保持部12を構成する各ブロックは、図2(c)に示すように、k個のデータ状態保持領域および論理アドレス保持領域を有しており、フラッシュメモリ部11において対応するブロックのデータ(図2(a)に示す論理的な領域のデータ)が書き換えられる際に、そのデータ状態および論理アドレスが各領域毎に記憶される。また、ブロック状態保持部12を構成する各ブロックは、対応するフラッシュメモリ部11の論理ブロック番号、ブロック状態およびそのブロックの書き換え回数、並びにフラッシュメモリ部11の再構築処理時に用いられる情報であるデータコピー元(再構築対象)の物理ブロック番号およびデータコピー元のブロック書き換え回数が記憶される領域を有している。
【0050】
図3は、フラッシュメモリ部11を構成するn個のブロックの物理的な順序関係を表す物理ブロック番号と論理的な順序関係を表す論理ブロック番号との対応関係の一例をテーブル(ブロック番号テーブル)として示す図である。
【0051】
例えば、物理ブロック番号0のブロックには論理ブロック番号”0”のデータが記憶され、物理ブロック番号1のブロックに論理ブロック番号”n−2”のデータが記憶されている。また、物理ブロック番号”2”のブロックは未使用であり、データが記憶されていない。データ制御部10は、データ記憶装置1への電源投入/リセット後に、このような物理ブロック番号と論理ブロック番号との対応関係をテーブルとして、フラッシュメモリ部11およびブロック状態保持部12へのアクセス時に参照することによって、フラッシュメモリ部11およびブロック状態保持部12へのアクセスを円滑に行うことができる。
【0052】
図4は、ブロック状態保持部12のデータ状態遷移を示す図である。
【0053】
データ状態としては、未使用”FFH”、データ書き込み中”FEH”、論理アドレス書き込み中”FCH”、旧データ無効化中”F8H”、有効”F0H”および無効”00H”の6種類の状態を有しており、矢印の方向へ状態が遷移する。
【0054】
ここで、未使用は、フラッシュメモリ部11の対応する領域にデータが記憶されていないことを示し、有効および無効は、それぞれ、フラッシュメモリ部11の対応する領域に記憶されているデータが有効および無効であることを示す。また、データ書き込み中は、フラッシュメモリ部11の対応する領域に対してデータの書き込み中(またはデータのコピー中)であることを示し、論理アドレス書き込み中は、ブロック状態保持部12に対して論理アドレスの書き込み中であることを示し、旧データ無効化中は、フラッシュメモリ部11の対応する領域のデータが書き換えられたことによってブロック状態保持部12のデータ状態を更新中であることを示す。
【0055】
図5は、ブロック状態保持部12のブロック状態遷移を示す図である。
【0056】
フラッシュメモリ部11のブロック状態としては、未使用”FFH”、コピー中”FEH”、ブロック消去中”FCH”および有効”F0H”の4種類の状態を有しており、矢印の方向へ状態が遷移する。
【0057】
ここで、未使用は、フラッシュメモリ部11の対応するブロック(論理ブロック)にデータが記憶されていないことを示し、有効は、フラッシュメモリ部11の対応するブロックに有効なデータが記憶されていることを示す。また、コピー中は、そのブロックが再構築用ブロックであり、フラッシュメモリ部11およびブロック状態保持部12において、再構築対象のブロックから再構築用ブロックへデータがコピーされている途中であることを示し、ブロック消去中は、そのブロックが再構築用ブロックであり、フラッシュメモリ部11およびブロック状態保持部12において、再構築対象のブロックからデータが消去されている途中であることを示す。
【0058】
次に、このように構成されたデータ記憶装置1の動作について説明する。
【0059】
まず、フラッシュメモリ部11からのデータ読み出し時の動作について、図2、図3、図4および図6を用いて説明する。
【0060】
図2は、データ記憶装置1において、フラッシュメモリ部11からのデータ読み出し時におけるフラッシュメモリ部11およびブロック状態保持部12の状態の一例を示す図である。図2(a)は、フラッシュメモリ部11のデータ内容(論理的な配置)を示し、図2(b)は、フラッシュメモリ部11のデータ内容(物理的な配置)を示し、図2(c)は、ブロック状態保持部12のデータ内容を示す。
【0061】
図2(b)に示すように、フラッシュメモリ部11の各領域(物理領域)には、データ制御部10を介して書き込み指示された順にデータが記憶されている。例えば、図2(b)に示すブロックには、論理ブロック番号”0001H”のデータが記憶されてブロック状態が有効”F0H”となっており、図2(a)に示す論理アドレス”0”のデータ”0001H”が図2(b)に示す物理アドレス”0”の領域に記憶され、図2(a)に示す論理アドレス”1”のデータ”A293H”が図2(b)に示す物理アドレス”j+3”の領域に記憶されている。また、このブロックは、ブロックの書き換えが2回(”00000002H”)行われている。
【0062】
データ制御部10は、図2(c)に示すように、対応するブロック状態保持部12に記憶されているデータ状態を参照することによって、フラッシュメモリ部11のデータ状態を得ることができる。この図2の例では、フラッシュメモリ部11の物理アドレス”0”、”3”および”j”〜”j+3”の領域にデータ状態が有効”F0H”なデータが記憶されており、物理アドレス”1”、”2”および”4”の領域にはデータ状態が無効”00H”なデータが記憶されており、物理アドレス”k−2”および”k−1”の領域は未使用”FFH”となっている。
【0063】
図6は、フラッシュメモリ部11のデータ読み出し時におけるデータ制御部10の動作を示すフローチャートである。
【0064】
データ記憶装置1の外部からデータの読み出しが要求されると、データ制御部10は、要求の受付を行い(ステップS1)、データの読み出しが要求されているか、またはデータの書き込みが要求されているかを判断する(ステップS2)。
【0065】
データの読み出しが要求されている場合、データ制御部10は、読み出し対象のアドレスを取り込み(ステップS3)、図3に示すブロック番号テーブルを参照して、読み出し対象の論理ブロック番号に対応する物理ブロック番号(物理的なアドレス)を取得する(ステップS4)。
【0066】
次に、データ制御部10は、フラッシュメモリ部11において、ステップS4で取得された物理ブロック番号のブロックにおける目的の物理領域を検索するためにループカウンタをリセットし(ステップS5)、そのフラッシュメモリ部11のブロックに対応するブロック状態保持部12におけるカウンタ番地の論理アドレスを順に参照する(ステップS7)。
【0067】
参照した論理アドレスがステップS3で取り込まれた論理アドレスと一致し(ステップS8)、かつ、データ状態が有効である(ステップS9)という条件を満たすまで、ループカウンタをインクリメント(ステップS10)しながら、ブロック状態保持部12の参照を繰り返す。例えば、ステップS3で取り込まれた論理アドレスが”4”である場合、図2の例では、フラッシュメモリ部11の物理アドレス”4”の領域ではデータ状態が”00H”(無効)であるので条件に該当せず、フラッシュメモリ部11の物理アドレス”j+2”の領域ではデータ状態が”F0H”(有効)であるので条件に該当する。
【0068】
ブロック状態保持部12を最後まで参照しても、ステップS8およびステップS9の条件を満足しなかった場合(ステップS6:ループカウンタ=k)、フラッシュメモリ部11に目的の領域は存在しないため、エラー通知を行い(ステップS11)、処理を終了する。
【0069】
一方、ステップS8およびステップS9の条件を満足した場合には、フラッシュメモリ部11においてカウンタ番地の物理アドレスの領域からデータを読み出すため、読み出しアドレスをセットし(ステップS12)、フラッシュメモリ部11からデータの読み出しを行う(ステップS13)。最後に終了を通知し(ステップS14)、処理を終了する。
【0070】
このように、データ制御部10によって、フラッシュメモリ部11内のデータに対して、ブロック状態保持部12の論理アドレス順にアクセスする手段を提供することにより、データ記憶装置1の外部からは、フラッシュメモリ部11内のデータ配置(物理的なアドレス)を意識することなく、論理的な配置(論理アドレス)によってアクセスすることが可能となる。
【0071】
次に、フラッシュメモリ部11へのデータ書き込み(データ書き換え)時の動作について、図3、図4、図7および図8を用いて説明する。
【0072】
図7は、データ記憶装置1において、フラッシュメモリ部11へのデータ書き込み(データ書き換え)完了時におけるフラッシュメモリ部11およびブロック状態保持部12の状態の一例を示す図である。図7(a)は、フラッシュメモリ部11のデータ内容(論理的な配置)を示し、図7(b)は、フラッシュメモリ部11のデータ内容(物理的な配置)を示し、図7(c)は、ブロック状態保持部12のデータ内容を示す。
【0073】
この図7の例では、論理アドレス”3”の領域にデータ”8677H”を書き込むように指示が与えられている。フラッシュメモリ部11において物理アドレス”3”の領域に記憶されている書き換え前のデータ”0607H”を無効にするために、ブロック状態保持部12において対応する領域のデータ状態が無効”00H”とされている。また、フラッシュメモリ部11において未使用であった物理アドレス”k−2”の領域にデータ”8677H”が書き込まれ、ブロック状態保持部12において対応する領域の論理アドレスに”3”が記憶されると共に、データ状態が有効”F0H”とされている。
【0074】
図8は、フラッシュメモリ部11へのデータ書き込み(データ書き換え)時におけるデータ制御部10の動作を示すフローチャートである。
【0075】
データ記憶装置1の外部からデータの書き込みが要求されると、データ制御部10は、要求の受付を行い(図6のステップS1)、データ読み出しが要求されているか、またはデータ書き込みが要求されているかを判断する(図6のステップS2)。
【0076】
データの書き込みが要求されている場合、データ制御部10は、書き込み対象のアドレスおよび書き込みデータを取り込み(ステップS21)、図3に示すブロック番号テーブルを参照して、書き込み対象の論理ブロック番号に対応する物理ブロック番号(物理的なアドレス)を取得する(ステップS22)。
【0077】
次に、データ制御部10は、フラッシュメモリ部11において、ステップS22で取得された物理ブロック番号のブロックにおける書き込み可能な物理領域を検索するためにループカウンタをリセットし(ステップS23)、そのフラッシュメモリ部11のブロックに対応するブロック状態保持部12におけるカウンタ番地の論理アドレスを順に参照する(ステップS25)。
【0078】
データ状態が未使用である(ステップS29)という条件を満たすまで、ループカウンタをインクリメント(ステップS30)しながら、ブロック状態保持部12の参照を繰り返す。例えば、図7の例では、フラッシュメモリ部11の物理アドレス”k−2”の領域のデータ状態が”FFH”(図示しない書き換え前)であるので条件に該当する。
【0079】
ここで、参照された論理アドレスがステップS21で取り込まれた論理アドレスと一致し(ステップS26)、かつ、データ状態が有効である(ステップS27)データが存在する場合には、書き込もうとしているデータが書き換えデータであり、未使用領域に新たなデータを書き込んだ後、この古いデータを無効にする必要があるため、現在のカウンタ値を記憶しておく(ステップS28)。例えば、図7の例では、フラッシュメモリ部11の物理アドレス”3”の領域に対応するブロック状態保持部12の論理アドレスが”3”であり、データ状態が”F0H”(図示しない書き換え前)であるので条件に該当する。
【0080】
ブロック状態保持部12を最後まで参照しても、ステップS29の条件を満足しなかった場合(ステップS24:ループカウンタ=k)、フラッシュメモリ部11に未使用の領域は存在しないため、後述するフラッシュメモリ部11の再構築処理を行う。
【0081】
一方、ステップS29の条件を満足した場合には、ブロック状態保持部12における現在のカウンタ番地のデータ状態を、未使用→データ書き込み中へ更新する(ステップS31)。フラッシュメモリ部11においてカウンタ番地の物理アドレスの領域へデータを書き込むため、書き込みアドレスをセットし(ステップS32)、フラッシュメモリ部11へデータの書き込みを行う(ステップS33)。例えば、図7の例では、フラッシュメモリ部11の物理アドレス”k−2”の領域にデータ”8677H”が書き込まれる。
【0082】
次に、ブロック状態保持部12における現在のカウンタ番地のデータ状態を、データ書き込み中→論理アドレス書き込み中へ更新し(ステップS34)、ステップS21で取り込まれた論理アドレスをブロック状態保持部12に書き込む(ステップS35)。例えば、図7の例では、ブロック状態保持部12の”k−2”番地に論理アドレス”3”が書き込まれる。
【0083】
ステップS28でカウンタ値を記憶していない場合(ステップS36:No)には、ブロック状態保持部12における現在のカウンタ番地のデータ状態を、論理アドレス書き込み中→有効へ更新し(ステップS39)、最後に終了を通知して(図6のステップS14)、処理を終了する。
【0084】
一方、ステップS28でカウンタ値を記憶している場合(ステップS36:Yes)、ブロック状態保持部12における現在のカウンタ番地のデータ状態を、論理アドレス書き込み中→旧データ無効化中へ更新し(ステップS37)、ステップS28で記憶したカウンタ番地のデータ状態を、有効→無効へ更新して(ステップS38)、ステップS39へ進む。例えば、図7の例では、ブロック状態保持部12の”3”番地のデータ状態が無効”00H”とされ、ブロック状態保持部12の”k−2”番地のデータ状態が有効”F0H”とされる。
【0085】
以上、データ書き換え時の処理について説明したが、フラッシュメモリ部11の物理ブロックに最初にデータが書き込まれるときには、データ制御部10によって論理ブロック番号と物理ブロック番号との対応関係が以下のように処理される。まず、最初の物理ブロック番号と論理ブロック番号との対応関係は、物理ブロック番号0〜n−2の各ブロックの論理ブロック番号として、それぞれ物理ブロック番号と同じ番号0〜n−2が格納され、物理ブロック番号n−1のブロックの論理ブロック番号としては未使用(FFFFH)が格納されるように、ブロック状態保持部12の論理ブロック番号が割り当てられる。図3は、フラッシュメモリ部11の再構築処理がある程度行われた後の状態を示している。また、ブロック状態保持部12のデータコピー元の物理ブロック番号およびデータコピー元のブロック書き換え回数の最初の状態は、まだ再構築処理が1度も行われていないため、それぞれ、”FFFFH”および”FFFFFFFFH”が設定されている。
【0086】
次に、フラッシュメモリ部11の再構築時の動作について、図3、図4、図5、図9、図10、図11および図12を用いて説明する。
【0087】
図9は、データ記憶装置1において、フラッシュメモリ部11のブロック再構築中におけるフラッシュメモリ部11およびブロック状態保持部12の状態の一例を示す図である。図9(a)は、フラッシュメモリ部11のデータ内容(物理的な配置)を示し、図9(b)は、ブロック状態保持部12のデータ内容を示す。また、図9(c)は、フラッシュメモリ部11の再構築用領域のデータ内容(物理的な配置)を示し、図9(d)は、ブロック状態保持部12の再構築用領域のデータ内容を示す。
【0088】
また、図10は、データ記憶装置1において、フラッシュメモリ部11のブロック再構築完了後におけるフラッシュメモリ部11およびブロック状態保持部12の状態の一例を示す図である。図10(a)は、新しいフラッシュメモリ部11の再構築用領域のデータ内容(物理的な配置)を示し、図10(b)は、新しいブロック状態保持部12の再構築用領域のデータ内容を示す。図10(c)は、再構築後のフラッシュメモリ部11のデータ内容(物理的な配置)を示し、図10(d)は、再構築後のブロック状態保持部12のデータ内容を示す。
【0089】
フラッシュメモリ部11における各ブロックは、データ書き込み(書き換え)を繰り返すと未使用領域が減少し、最終的には、新たな書き込み(書き換え)データが記憶される領域が無くなる。図9の例では、フラッシュメモリ部11のブロックにおいて、物理アドレス”k−1”の領域まで使用済の状態になっている。このため、ブロックの使用済領域のうち、データ状態が無効である領域のデータを消去して再使用可能にする処理を行う必要があり、この処理を再構築処理と称する。図9の例では、フラッシュメモリ部11のブロックにおいて、物理アドレス”0”〜”j−1”の領域でデータ状態が無効”00H”となっており、物理アドレス”j”〜”k−1”の領域でデータ状態が有効”F0H”となっているため、物理アドレス”j”〜”k−1”の領域のデータは残し、物理アドレス”0”〜”j−1”の領域のデータを消去する処理を行う。
【0090】
再構築に際しては、再構築対象であるフラッシュメモリ部11のブロックと同じ容量のブロック(再構築用領域)、および再構築対象であるフラッシュメモリ部11のブロックに対応するブロック状態保持部12と同容量の再構築用領域をそれぞれ必要とする。フラッシュメモリ部11の再構築用領域およびブロック状態保持部12の再構築用領域は、それぞれ、再構築対象であるフラッシュメモリ部11のブロックおよびそれに対応するブロック状態保持部12のブロックと入れ替えて利用される。図10の例では、図9(a)に示すフラッシュメモリ部11が図10(a)に示す新しいフラッシュメモリ部11の再構築用領域として利用され、図9(b)に示すブロック状態保持部12のブロックが図10(b)に示す新しいブロック状態保持部12の再構築用領域として利用される。また、図9(c)に示すフラッシュメモリ部11の再構築用領域には、図9(a)に示すフラッシュメモリ部11の有効なデータがコピーされて再構築後のフラッシュメモリ部11として利用され、図9(d)に示すブロック状態保持部12の再構築用領域には、図9(b)に示すブロック状態保持部12の有効なデータがコピーされて再構築後のフラッシュメモリ部11として利用される。
【0091】
図11は、フラッシュメモリ部11の再構築時におけるデータ制御部10の動作を示すフローチャートであり、図12は、図11の続きのフローチャートである。
【0092】
フラッシュメモリ部11において未使用領域が存在しない場合(図8のステップ24:ループカウンタ=k)、データ制御部10は、フラッシュメモリ部11の再構築処理を開始する。
【0093】
まず、データ制御部10は、フラッシュメモリ部11における再構築用領域を検索するためにループカウンタをリセットし(ステップS41)、図3に示すブロック番号テーブルにおける論理アドレスを順に参照する(ステップS43)。論理ブロック番号が”FFFFH”(ステップS44)である物理ブロック番号が取得されるまで、ループカウンタをインクリメント(ステップS45)しながら、図3に示すブロック番号テーブルの参照を繰り返す。例えば、図3の例では、物理ブロック番号が”2”のときに論理ブロック番号が”FFFFH”となって条件に該当する。
【0094】
図3に示すブロック番号テーブルを最後まで参照しても、ステップS44の条件を満足しなかった場合(ステップS42:ループカウンタ=n)、フラッシュメモリ部11に再構築用領域が存在しないため、エラー通知を行い(図6のステップS11)、処理を終了する。
【0095】
一方、ステップS44の条件を満足した場合には、図9に示すブロック状態保持部12における再構築用領域のブロック状態を、未使用→コピー中へ更新する(ステップS46)。再構築対象となっているブロック(データコピー元)の論理ブロック番号(図8のステップS21にて取得)、物理ブロック番号(図8のステップS22にて取得)およびブロック書き換え回数を、再構築用領域のそれぞれの領域に書き込む(ステップS47)。例えば、図9の例では、図9(d)に示すブロック状態保持部12の再構築用領域においてブロック状態がコピー中”FEH”とされ、図9(b)に示すブロック状態保持部12において再構築対象となっているブロック(データコピー元)の論理ブロック番号”0001H”およびブロック書き換え回数”00000002H”、図3に示す論理ブロック番号”1”に対応する物理ブロック番号”0003H”(=3)がそれぞれ、図9(d)に示すブロック状態保持部12の再構築用領域の論理ブロック番号、データコピー元の物理ブロック番号およびデータコピー元のブロック書き換え回数に書き込まれる。
【0096】
次に、データ制御部10は、再構築対象のフラッシュメモリ部11から再構築用領域にデータをコピーするためにループカウンタをリセットし(ステップS48)、再構築対象のブロック状態保持部12における論理アドレスを、ループカウンタをインクリメント(ステップS59)しながら、順に参照する(ステップS50)。
【0097】
ここで、参照された論理アドレスがカウンタ値と一致し(ステップS51)、かつ、データ状態が有効である(ステップS52)場合には、ブロック状態保持部12の再構築用領域におけるカウンタ番地のデータ状態を、未使用→データ書き込み中へ更新する(ステップS53)。例えば、カウンタ値が”2”である場合、図9の例では、再構築対象のフラッシュメモリ部11における物理アドレス”j+1”の領域に対応するブロック状態保持部12の論理アドレスが”2”であり、データ状態が有効”F0H”であるので条件に該当する。
【0098】
再構築対象のフラッシュメモリ部11からデータを読み出し、フラッシュメモリ部11の再構築用領域におけるカウンタ番地のアドレスへデータを書き込むために書き込みアドレスをセット(ステップS54)した後、再構築用領域にデータをコピー(書き込み)する(ステップS55)。例えば、カウンタ値が”2”である場合、図9(a)に示す再構築対象のフラッシュメモリ部11における物理アドレス”j+1”の領域のデータ”E4C5H”が、図9(c)に示すフラッシュメモリ部11の再構築用領域の物理アドレス”2”の領域に書き込まれる。
【0099】
その後、ブロック状態保持部12の再構築用領域におけるカウンタ番地のデータ状態を、データ書き込み中→論理アドレス書き込み中へ更新し(ステップS56)、カウンタ値(=論理アドレス)を書き込み(ステップS57)、データ状態を、論理アドレス書き込み中→有効へ更新する(ステップS58)。例えば、カウンタ値が”2”である場合、図9(d)に示すブロック状態保持部12の再構築用領域においてフラッシュメモリ部11の物理アドレス”2”に対応する領域の論理アドレスが”2”とされ、データ状態が有効”F0H”とされる。
【0100】
上記ステップS49〜ステップS58の処理を、再構築対象のブロック状態保持部12の最後(ステップS49:ループカウンタ=k)まで繰り返し、図12に示す次のステップS61へ進む。例えば、図9の例では、再構築対象のフラッシュメモリ部11における物理アドレス”j”〜”k−1”の領域から、論理アドレス”0”〜”i−1”のi個のデータが、フラッシュメモリ部11の再構築用領域における物理アドレス”0”〜”i−1”の領域に書き込まれ、ブロック状態保持部12の再構築用領域における”0”〜”i−1”番地にそれぞれの論理アドレスが書き込まれると共にそれぞれの領域のデータ状態が有効”F0H”とされている。
【0101】
次に、ブロック状態保持部12の再構築用領域におけるブロック状態を、コピー中→ブロック消去中へ更新し(ステップS61)、再構築対象(データコピー元)のフラッシュメモリ部11およびブロック状態保持部12のデータを消去する(ステップS62)。
【0102】
その後、ステップS47においてブロック状態保持部12の再構築用領域へコピーされたブロック書き換え回数を参照して(ステップS63)、この回数をインクリメントし、消去が完了したブロック状態保持部12(新しい再構築用領域)におけるフラッシュメモリ部11のブロック書き換え回数領域へ書き込む(ステップS64)。例えば、図10の例では、再構築後のブロック状態保持部12にコピーされているデータコピー元のブロック書き換え回数”00000002H”+1=”00000003H”が、新しいブロック状態保持部12の再構築用領域におけるフラッシュメモリ部のブロック書き換え回数の領域へ書き込まれる。
【0103】
図3に示すブロック番号テーブルにおいて、再構築対象の論理ブロック番号(図8のステップS21にて取得)と再構築用領域の論理ブロック番号(図11のステップS44にて取得)を交換し、更新後のブロック状態保持部12(元の再構築用領域)におけるブロック状態を、ブロック消去中→有効へ更新して、図8のステップS22に戻る。例えば、図3の例では、物理ブロック番号”2”および”3”の論理ブロック番号”FFFFH”および”1”が交換される。消去が行われたフラッシュメモリ部11および対応するブロック状態保持部12は、次の再構築処理に用いられる再構築用領域として利用される。
【0104】
次に、データ記憶装置1の電源ON/リセット時の動作について、図3、図4、図5、図13〜図15を用いて説明する。
【0105】
図13は、データ記憶装置1の電源投入(ON)/リセット時におけるデータ制御部10の動作を示すフローチャートである。また、図14は、図13の続きのフローチャートであり、図15は、図14の続きのフローチャートである。
【0106】
データ記憶装置1が電源ON/リセットされると、データ制御部10は、まず、フラッシュメモリ部11の再構築処理中に電源遮断(OFF)/リセットが行われていないかを確認するため、ブロック状態保持部12における各ブロックのブロック状態を確認する。
【0107】
最初に、データ制御部10は、ループカウンタをリセットし(ステップS71)、ブロック状態保持部12において物理ブロック番号=カウンタ値のブロックにおけるブロック状態を参照する(ステップS73)。参照されたブロック状態が有効”F0H”(ステップS74)であるか、または未使用”FFH”(ステップS75)であれば、カウンタをインクリメントして(ステップS85)、次のブロックのブロック状態を確認する。
【0108】
一方、ステップS73で参照されたブロック状態が、コピー中”FEH”(ステップS76:Yes)であった場合、そのブロックは再構築処理中の再構築用領域であり、再構築対象のブロックからデータをコピーしている途中の状態である。よって、その再構築用領域をリセットするために、ブロック状態保持部12において再構築用領域のブロック書き換え回数を記憶し(ステップS77)、フラッシュメモリ部11およびブロック状態保持部12の再構築用領域を消去する(ステップS78)。その後、ステップS77で記憶されたブロック書き換え回数をインクリメントして、消去後の再構築領域のブロック書き換え回数の領域へ書き込み(ステップS79)、ステップS85の処理に進む。
【0109】
また、ステップS73で参照されたブロック状態が、ブロック消去中”FCH”(ステップS80:Yes)であった場合、そのブロックは再構築処理中の再構築用領域であり、再構築対象のブロックからデータを消去している途中の状態である。よって、以降の処理を継続して行うため、ブロック状態保持部12において再構築対象(データコピー元)の物理ブロック番号を参照し(ステップS81)、再構築対象のフラッシュメモリ部11およびブロック状態保持部12を消去する(ステップS82)。再構築用領域のブロック状態保持部12におけるデータコピー元のブロック書き換え回数を参照し(ステップS83)、この回数をインクリメントして、消去完了した再構築対象(新しい再構築用領域)のブロック状態保持部12におけるフラッシュメモリ部のブロック書き換え回数の領域へ書き込み(ステップS84)、ステップS85へ進む。
【0110】
また、ステップS73で参照されたブロック状態が、有効”F0H”、未使用”FFH”、コピー中”FEH”およびブロック消去中”FCH”のいずれでもなかった場合、エラーを通知し(図15のステップS119)、起動/リセット失敗として処理を終了する。
【0111】
さらに、ステップS72で、(ブロック状態保持部12における全ブロックのブロック状態を参照完了した場合(ループカウンタ=n)、図14のステップS91へ進む。
【0112】
次に、データ制御部10は、フラッシュメモリ部11へのデータ書き込み(書き換え)中またはブロック状態保持部12の情報更新中に電源遮断/リセットが行われていないを確認するため、ブロック状態保持部12における各データ状態を確認する。
【0113】
最初に、データ制御部10は、ブロックカウント用のループカウンタをリセットし(ステップS91)、次に、データ状態カウント用のループカウンタ’をリセットして(ステップS93)、物理ブロック番号=カウンタ値のブロックにおいて、カウンタ’番地のブロック状態保持部12のデータ状態を参照する(ステップS95)。データ状態が有効”F0H”(ステップS96)、無効”00H”(ステップS97)または未使用”FFH”(ステップS98)であれば、カウンタ’をインクリメントして(ステップS102)、次のデータ状態を確認する。
【0114】
一方、ステップS95で参照されたデータ状態がデータ書き込み中”FEH”(ステップS99)であるか、または論理アドレス書き込み中”FCH”(ステップS100)であれば、対応するフラッシュメモリ部11へのデータ書き込み(書き換え)中またはそのブロック状態保持部12の情報更新中であるので、そのデータ状態を無効へ更新して(ステップS101)、ステップS102の処理に進む。
【0115】
また、ステップS95で参照されたデータ状態が旧データ無効化中”F8H”(ステップS103)であれば、対応する論理アドレスを参照して記憶する(図15のステップS110)。データ状態カウント用のループカウンタ”をリセットし(ステップS111)、物理ブロック番号=カウンタ値のブロックにおいて、カウンタ”番地のブロック状態保持部12の論理アドレスを参照する(ステップS113)。参照された論理アドレスがステップS110で記憶された論理アドレスと一致し(ステップS114)、かつ、そのデータ状態が有効(ステップS115)という条件を満たすまで、カウンタ”をインクリメントしながら(ステップS116)、ブロック状態保持部12の参照を繰り返す。
【0116】
ここで、ステップS114およびステップS115の条件を満たす場合には、カウンタ”番地のデータ状態を有効→無効へ更新(ステップS117)した後、ステップS103で参照されたブロック状態保持部12のデータ状態を旧データ無効化中→有効へ更新し(ステップS118)、図14のステップS102の処理に進む。
【0117】
ステップS112においてカウンタ”値=k(全データ状態を参照完了)となるまで、ステップS114およびステップS115の条件を満たす論理アドレスが存在しない場合には、ステップS119へ進む。
【0118】
ステップS94においてカウンタ’値=k(ブロックの全データ状態を参照完了した)となった場合、図3に示すブロック番号テーブルにおいて、物理ブロック番号=カウンタ値の論理ブロック番号をセットし(ステップS104)、カウンタをインクリメントして(ステップS105)、ステップS92へ進む。
【0119】
ステップS92において、カウンタ値=n(全ブロックのデータ状態を参照完了した)となった場合、終了を通知し(ステップS106)、起動/リセット成功として処理を終了する。
【0120】
以上のように、本発明によれば、データが記憶される複数のフラッシュメモリブロックによって構成されるフラッシュメモリ部11と、フラッシュメモリ部11を構成する各ブロック毎にデータ状態、論理アドレス、論理ブロック番号、ブロック状態、フラッシュメモリ部の書き換え回数、フラッシュメモリ部の再構築時の情報である再構築対象の物理ブロック番号およびブロック書き換え回数が記憶されるブロック状態保持部12と、外部からのデータ書き込み/読み出し要求に従って、フラッシュメモリ部11へのデータ書き込み/データ読み出しおよびブロック状態保持部12の制御を行うデータ制御部10とを有している。このフラッシュメモリ部11のデータ書き込み/消去処理においてデータ状態が変化する毎に、ブロック状態保持部12のデータ状態/ブロック状態を順次変化させる。これによって、電源遮断/リセットによるデータ消失からデータを保護することができて、記憶装置としてのデータ記憶装置1の信頼性を向上させることができる。
【0121】
【発明の効果】
以上説明したように、本発明によれば、不揮発性半導体メモリからなるフラッシュメモリ部に常に最新のデータを記憶させると共に、データ書き込み(書き換え)または消去処理においてデータの状態を変化させる度に、ブロック状態保持部におけるデータ状態またはブロック状態を順次変化させることにより、記憶装置の電源遮断/リセットによるデータ消失に対して、フラッシュメモリ部の書き換え時を含めたあらゆる状況で、記憶装置内のデータを保護することが可能となる。従って、フラッシュメモリを用いた従来の記憶装置よりも信頼性を向上させることができる。
【0122】
また、ブロック状態保持部もフラッシュメモリで構成することによって、不揮発性半導体メモリとしてフラッシュメモリのみを用いて記憶装置を構成することが可能となるため、複数種類のメモリを混在させる必要がなくなり、データ記憶装置の部品点数を削減することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態であるデータ記憶装置1の構成を示すブロック図である。
【図2】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部からのデータ読み出し時におけるフラッシュメモリ部およびブロック状態保持部の状態の一例を示す図であり、(a)はフラッシュメモリ部のデータ内容(論理的な配置)を示し、(b)はフラッシュメモリ部のデータ内容(物理的な配置)を示し、(c)はブロック状態保持部のデータ内容を示す。
【図3】本発明の一実施形態であるデータ記憶装置におけるブロック番号テーブルの一例を示す図である。
【図4】本発明の一実施形態であるデータ記憶装置におけるブロック状態保持部のデータ状態遷移を示す図である。
【図5】本発明の一実施形態であるデータ記憶装置におけるブロック状態保持部のブロック状態遷移を示す図である。
【図6】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部のデータ読み出し時におけるデータ制御部の動作を示すフローチャートである。
【図7】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部へのデータ書き込み(データ書き換え)完了時におけるフラッシュメモリ部およびブロック状態保持部の状態の一例を示す図であり、(a)はフラッシュメモリ部のデータ内容(論理的な配置)を示し、(b)はフラッシュメモリ部のデータ内容(物理的な配置)を示し、(c)はブロック状態保持部のデータ内容を示す。
【図8】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部へのデータ書き込み(データ書き換え)時におけるデータ制御部の動作を示すフローチャートである。
【図9】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部のブロック再構築中におけるフラッシュメモリ部およびブロック状態保持部の状態の一例を示す図であり、(a)はフラッシュメモリ部のデータ内容(物理的な配置)を示し、(b)はブロック状態保持部のデータ内容を示し、(c)はフラッシュメモリ部の再構築用領域のデータ内容(物理的な配置)を示し、(d)はブロック状態保持部の再構築用領域のデータ内容を示す。
【図10】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部のブロック再構築完了後におけるフラッシュメモリ部およびブロック状態保持部の状態の一例を示す図であり、(a)は新しいフラッシュメモリ部の再構築用領域のデータ内容(物理的な配置)を示し、(b)は新しいブロック状態保持部の再構築用領域のデータ内容を示し、(c)は再構築後のフラッシュメモリ部のデータ内容(物理的な配置)を示し、(d)は再構築後のブロック状態保持部のデータ内容を示す。
【図11】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部の再構築時におけるデータ制御部の動作を示すフローチャートである。
【図12】本発明の一実施形態であるデータ記憶装置において、フラッシュメモリ部の再構築時におけるデータ制御部の動作を示すフローチャートである。
【図13】本発明の一実施形態であるデータ記憶装置において、データ記憶装置の電源投入/リセット時におけるデータ制御部の動作を示すフローチャートである。
【図14】本発明の一実施形態であるデータ記憶装置において、データ記憶装置の電源投入/リセット時におけるデータ制御部の動作を示すフローチャートである。
【図15】本発明の一実施形態であるデータ記憶装置において、データ記憶装置の電源投入/リセット時におけるデータ制御部の動作を示すフローチャートである。
【図16】従来のデータ記憶装置の構成を示すブロック図である。
【図17】従来のデータ記憶装置の起動/リセット時におけるメモリ部、フラッシュメモリ部および書き換え情報保持部の状態の一例を示す図である。
【図18】従来のデータ記憶装置において、メモリ部のデータ書き換え時の状態の一例を示す図である。
【図19】従来のデータ記憶装置において、フラッシュメモリ部のデータ書き換え時の状態の一例を示す図である。
【図20】従来のデータ記憶装置において、フラッシュメモリ部のデータ書き換え時の状態の一例を示す図である。
【符号の説明】
1,102 データ記憶装置
10 データ制御部
11 フラッシュメモリ部
12 ブロック状態保持部
101 ホスト
110 ホストインタフェース部
111 記憶回路制御手段
112 フラッシュメモリ部
113 書き換え情報保持部
114 メモリ部
Claims (10)
- データが記憶される複数のフラッシュメモリブロックによって構成されるフラッシュメモリ部と、
該フラッシュメモリ部を構成する各ブロック毎に、当該ブロックへのデータ記憶状態、当該ブロックに含まれる物理領域へのデータ記憶状態、記憶データのアドレス情報およびフラッシュメモリ部の再構築処理時に用いられる情報が記憶されるブロック状態保持部と、
外部からデータの書き込みが指示された場合に、該ブロック状態保持部の情報に従って該フラッシュメモリ部へデータを書き込むと共に該ブロック状態保持部の情報更新を行い、該フラッシュメモリ部のブロック毎に新しいデータを書き込む領域が無くなった場合に、当該ブロックを再構築して書き込み領域を確保すると共に該ブロック状態保持部の情報更新を行い、外部からデータの読み出しが指示された場合に、該ブロック状態保持部の情報に従って該フラッシュメモリ部からデータを読み出すデータ制御部とを備えている記憶装置。 - 前記ブロック状態保持部は、前記ブロックおよびブロックに含まれる物理領域へのデータ記憶状態としてブロック状態およびデータ状態が記憶され、記憶データのアドレス情報として論理アドレスおよび論理ブロック番号が記憶され、フラッシュメモリ部の再構築処理時に用いられる情報としてフラッシュメモリ部のブロック書き換え回数、再構築対象の物理ブロック番号および再構築対象のブロック書き換え回数が記憶される請求項1に記載の記憶装置。
- 前記データ制御部は、電源投入/リセット後において、前記ブロック状態保持部のブロック状態を参照して、前記フラッシュメモリ部の再構築中に電源遮断/リセットが発生していないかを確認し、該フラッシュメモリ部の再構築中に電源遮断/リセットが発生していた場合には、該フラッシュメモリ部および該ブロック状態保持部を修復すると共に、該ブロック状態保持部のデータ状態を参照して、前記フラッシュメモリ部へのデータ書き込み中またはブロック状態保持部の情報更新中に電源遮断/リセットが発生していないかを確認し、該フラッシュメモリ部へのデータ書き込み中またはブロック状態保持部の情報更新中に電源遮断/リセットが発生していた場合には、該ブロック状態保持部を修復する請求項2に記載の記憶装置。
- 前記フラッシュメモリ部およびブロック状態保持部はそれぞれ再構築用領域を有し、再構築が行われる度に、該再構築用領域と再構築対象となった領域とが入れ替えられる請求項1〜3のいずれかに記載の記憶装置。
- 前記データ制御部は、前記フラッシュメモリ部の再構築処理が必要な場合に、再構築対象のブロックのデータを、ブロック状態保持部に記憶されたデータ状態に従って再構築用領域へコピーした後、当該再構築対象のブロックのデータを消去させる請求項4に記載の記憶装置。
- 前記ブロック状態保持部は、複数のフラッシュメモリブロックによって構成されている請求項1〜5のいずれかに記載の記憶装置。
- 前記データ制御部は、電源投入/リセット後に、前記フラッシュメモリ部の物理ブロック番号および論理ブロック番号の対応関係をテーブルとして保持し、該フラッシュメモリ部およびブロック状態保持部へのアクセス時に該テーブルを参照する請求項1〜6のいずれかに記載の記憶装置。
- 前記ブロック状態保持部は、データ状態として、未使用、データ書き込み中、論理アドレス書き込み中、旧データ無効化中、有効および無効の6種類の情報のうちのいずれかが記憶される請求項2〜7のいずれかに記載の記憶装置。
- 前記ブロック状態保持部は、ブロック状態として、未使用、コピー中、ブロック消去中および有効の4種類の情報のうちのいずれかが記憶される請求項2〜8のいずれかに記載の記憶装置。
- 前記データ制御部は、前記フラッシュメモリ部へのデータ書き込みまたは再構築処理において、該フラッシュメモリ部に記憶されているデータの状態を変化させる度に、前記ブロック状態保持部に記憶されているデータ状態またはブロック状態を順次変化させる請求項2〜9のいずれかに記載の記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002313525A JP4183237B2 (ja) | 2002-10-28 | 2002-10-28 | 記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002313525A JP4183237B2 (ja) | 2002-10-28 | 2002-10-28 | 記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004152331A true JP2004152331A (ja) | 2004-05-27 |
JP4183237B2 JP4183237B2 (ja) | 2008-11-19 |
Family
ID=32458091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002313525A Expired - Fee Related JP4183237B2 (ja) | 2002-10-28 | 2002-10-28 | 記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4183237B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005190288A (ja) * | 2003-12-26 | 2005-07-14 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
WO2009104330A1 (ja) * | 2008-02-20 | 2009-08-27 | 株式会社ソニー・コンピュータエンタテインメント | メモリ制御方法及び装置、メモリアクセス制御方法、コンピュータプログラム、記録媒体 |
US7904637B2 (en) | 2005-05-20 | 2011-03-08 | Nec Infrontia Corporation | Information processing apparatus, lifetime monitoring method and program for monitoring lifetime of storage device including flash memory |
JP2011070675A (ja) * | 2009-09-28 | 2011-04-07 | Samsung Sdi Co Ltd | バッテリーパック、及びデータフラッシュの動作の制御方法 |
-
2002
- 2002-10-28 JP JP2002313525A patent/JP4183237B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005190288A (ja) * | 2003-12-26 | 2005-07-14 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
US7904637B2 (en) | 2005-05-20 | 2011-03-08 | Nec Infrontia Corporation | Information processing apparatus, lifetime monitoring method and program for monitoring lifetime of storage device including flash memory |
WO2009104330A1 (ja) * | 2008-02-20 | 2009-08-27 | 株式会社ソニー・コンピュータエンタテインメント | メモリ制御方法及び装置、メモリアクセス制御方法、コンピュータプログラム、記録媒体 |
US8595413B2 (en) | 2008-02-20 | 2013-11-26 | Sony Corporation | Memory control method and device, memory access control method, computer program, and recording medium |
JP2011070675A (ja) * | 2009-09-28 | 2011-04-07 | Samsung Sdi Co Ltd | バッテリーパック、及びデータフラッシュの動作の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4183237B2 (ja) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2914360B2 (ja) | 外部記憶装置及びデータ処理方法 | |
JP4132086B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
JP4971943B2 (ja) | 不揮発性記憶装置 | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
US7783857B2 (en) | Data management apparatus and method, non-volatile memory, storage device having the non-volatile memory and data processing system | |
JP4713867B2 (ja) | メモリコントローラ,メモリ装置及びメモリコントローラの制御方法 | |
KR100370893B1 (ko) | 일괄 소거형 비휘발성 메모리 장치 | |
JPH10124384A (ja) | 不揮発性半導体メモリの制御方法 | |
JP2008533574A (ja) | セクタ単位での消去の可能な半導体メモリ手段の第1のセクタへの再書き込み方法および装置 | |
JP3875139B2 (ja) | 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム | |
JP4843222B2 (ja) | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 | |
JP2008191930A (ja) | 不揮発性半導体記憶装置およびその管理方法 | |
JP2000222292A (ja) | フラッシュメモリを利用したデータ管理方法 | |
JP4175881B2 (ja) | 不揮発性メモリの記憶方法及び記憶装置 | |
JP3070539B2 (ja) | 外部記憶装置、データ処理装置及びデータ処理方法 | |
JP4183237B2 (ja) | 記憶装置 | |
JP3808842B2 (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JP2008047155A (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
JP2011175361A (ja) | データ記憶装置及びデータ記憶方法 | |
JP4031693B2 (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
US20050068842A1 (en) | Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory | |
JP2000330850A (ja) | フラッシュメモリ制御方法 | |
JP4580724B2 (ja) | 不揮発性メモリの制御方法 | |
JP2011108161A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080711 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080730 |
|
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: 20080901 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080901 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110912 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120912 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130912 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |