JP3662510B2 - フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 - Google Patents
フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 Download PDFInfo
- Publication number
- JP3662510B2 JP3662510B2 JP2001123320A JP2001123320A JP3662510B2 JP 3662510 B2 JP3662510 B2 JP 3662510B2 JP 2001123320 A JP2001123320 A JP 2001123320A JP 2001123320 A JP2001123320 A JP 2001123320A JP 3662510 B2 JP3662510 B2 JP 3662510B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- unit
- state
- flash memory
- recorded
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明はブロック単位でフラッシュメモリにデータを記録したり、或いはフラッシュメモリからデータを読み出したりすることに係り、特に、部分的な記録回数が限られているフラッシュメモリに/からデータを記録したり、或いは読み出したりするとき、論理的な住所と物理的な住所との再写像を制御する方法及びそれに適したフラッシュメモリの構造に関する。
【0002】
【従来の技術】
フラッシュメモリは、既存のランダムアクセスメモリ(RAM)や不揮発性貯蔵装置、マグネチックディスクなどのように、特定の位置に貯蔵されたデータを任意に接近することができる。
【0003】
しかし、データを修正したり、或いは削除したりする方法が前述の貯蔵装置などと異なる。すなわち、ブロック単位の接近のために、一定の大きさのブロックに分割されたフラッシュメモリの任意のブロックにデータを一回記録した後、これを修正したり、或いは削除したりしようとするとき、前記任意のブロックを含んでいるユニットを修正または削除しなければならない。フラッシュメモリにおいて、ブロックは物理的に連続した住所をもつバイトで構成される。このブロックは、フラッシュメモリに対する演算の基本単位である。ユニットは、複数個のブロックで構成される。このユニットは、物理的にデータを修正または削除できる基本単位である。
【0004】
前述したフラッシュメモリの修正または削除特性により、削除回数が多いほどデータの記録及び更新効率が低下される。また、フラッシュメモリに対する修正または削除を行うとき、故障が生じるとデータが失われる場合もある。これを防止すべく、従来より、ブロック(またはセクター)再写像技法が用いられてきている。
【0005】
再写像技法とは、フラッシュメモリに記録されたデータを修正または削除するとき、フラッシュメモリに記録されたデータの物理的なブロック番号(Physical Block Number、PBNとも言う)が変更された場合であっても、同一の論理的なブロック番号(Logical Block Number、LBNとも言う)でフラッシュメモリに記録されたデータに接近できるように、該当データに対する論理的なブロック番号(LBN)と物理的なブロック番号(PBN)との写像情報を管理することを言う。
【0006】
既存の再写像技法は、修正しようとするデータが発生すれば、まず、フラッシュメモリ上の該当データの物理的なブロック番号を含んでいるユニットでデータの記録されていない物理的なブロックを見つける。次に、見つかった物理的なブロックに該当するデータを記録する。次に、該当するデータの論理的なブロック番号と物理的なブロック番号との写像情報を更新する。これにより、使用者は物理的なブロック番号が変わった場合であっても、同一の論理的なブロック番号を使って該当するデータに接近できるようになる。この場合、該当データに対する以前の物理的なブロックの状態情報に削除の表示をする。
【0007】
例えば、フラッシュメモリに、図1に示された物理的なユニット番号PUN1、PUN2のようにデータが記録された状態で使用者が論理的なブロック番号が'3'であるブロックに記録されたデータを修正しようとするとき、PUN1が図2のように変更される。すなわち、LBN-to-LUNマッピングテーブルを参照すれば、論理的なブロック番号'3'に対応する論理的なユニット番号は'2'である。この論理的なユニット番号'2'を用いてLUN-to-PUNマッピングテーブルを参照すれば、対応する物理的なユニット番号は'1'であることが分かる。したがって、物理的なユニット番号が'1'であるPUN1で空きブロックを見つける。図1によれば、'4'番のブロックが空きブロックとして見つけられる。'4'番のブロックに論理的なブロック番号'3'に該当するデータを図2のように記録した後、PUN1のブロック割当てマップ(BAM)の写像情報を更新する。これにより、PUN1のブロック割当てマップでPBN1に対する状態情報に削除の表示がなされる。しかし、物理的なユニットに使用されない物理的なブロックが多くなると、フラッシュメモリの使用効率が低下する。
【0008】
これを解決するために、既存には、先ず、図3に示されたPUN1とPUN2との関係のように、使用されるブロックだけを他のユニットに移動させていた。その次に、該当する物理的なユニット番号を前記他のユニットの物理的なユニット番号に変える。したがって、データを他のユニットに移動したとしても、同一の論理的なユニット番号で接近できる。
【0009】
このような再写像技法は、ユニット内に空きブロックが存在したり、或いはフラッシュメモリ上に空きユニットが存在する限り、実質的な削除演算を行わない。しかし、削除されたブロックが増えると、フラッシュメモリで使用できない領域が増えることになる。このため、削除されたブロック有りの部分を再使用するための方法が講じられる必要がある。
【0010】
また、書き込み演算またはユニットの再使用演算を行う間に電源が切れるなどの障害が発生すれば、使用者のデータまたは再写像のために使用されるデータが失われる場合がある。したがって、既存には、これを解決するために、ブロック及びユニットに状態情報を記録し、演算を行うときに状態情報を適宜に修正することにより、復旧演算を行うようにしている。
【0011】
前述のように、既存の再写像技法はデータだけでなく、写像情報を貯蔵しかつ管理するために、ユニットに対する部分的な書き込み演算を多数回に亘って行う。したがって、NAND型のフラッシュメモリなどのフラッシュメモリに既存の再写像技法をそのまま適用し難い。これは、前述のNAND型のフラッシュメモリと同一のフラッシュメモリの場合、部分的な書き込み演算の回数(またはNumber of program cycles in the same page、以下、Nopと略する)が5回または3回に限られるからである。したがって、ブロック及びユニットに記録された情報を多数回変更することができない。
【0012】
例えば、障害が発生してフラッシュメモリに記録されているデータを復旧するとき、該当するブロック及びユニットに記録されている状態情報に対する変更回数が前述のように限られて、復旧を正常に行えない現象が生じ得る。
【0013】
また、所定ブロックの状態が未定(FF)→割当て(8F)→記録中(4F)→記録(2F)→削除中(0F)→削除(00)のような順番でブロックの状態を表示したり、未定(FF)→コピー中(8F)→有効(4F)→移動中(2F)のような順番でユニットの状態を表示しようとする場合、物理的に同一の位置に対して少なくとも5回ないし3回の書き込み演算を行う必要がある。のみならず、ユニットやブロックに使用者データやエラー訂正コード(ECC)などの経路を記録することまで考慮したとき、前述のように部分的な書き込み演算の回数が5回または3回等に限られたフラッシュメモリに既存の再写像技法をそのまま適用し難い。
【0014】
【発明が解決しようとする課題】
本発明は、上記事情に鑑みて成されたものであり、その目的は、部分記録回数を最小化しつつ、ブロック及びユニットの状態を記録かつ処理できるフラッシュメモリの再写像制御方法及びこれによるフラッシュメモリの構造を提供するところにある。
【0015】
本発明の他の目的は、循環係数を使い、最小限の部分記録で状態情報を表示するフラッシュメモリの再写像制御方法及びこれによるフラッシュメモリの構造を提供するところにある。
【0016】
本発明のさらに他の目的は、NAND型フラッシュメモリに適したフラッシュメモリの再写像制御方法及びこれによるフラッシュメモリの構造を提供するところにある。
【0017】
【課題を解決するための手段】
前記諸目的を達成するために、本発明による方法は、少なくとも一つのブロックを備えているユニット単位に領域が区切られたフラッシュメモリの再写像制御方法において、所定ブロックに対する写像情報に基づき所定の物理的なユニットを見つける段階と、見つかった物理的なユニットに所定ブロックが有効な状態で存在すれば、ブロックの状態が未定である他のブロックを見つける段階と、他のブロックの状態を所定ブロックに設定されている状態の次の状態に変更する段階と、他のブロックに新しいデータと論理的なブロック番号のような付加情報を記録する段階と、所定ブロックの状態を削除状態に変更する段階と、を含むことが好ましい。
【0018】
特に、前記方法は、見つかった物理的なユニットに所定ブロックが存在しないか、或いは所定ブロックが削除状態で存在すれば、所定ブロックの状態を未定の状態に設定した後、ブロックの状態が未定である他のブロックを見つける段階と、他のブロックが存在しなければ、物理的なユニットに対して再生演算を行う段階と、をさらに含むことが好ましい。
【0019】
前記再生演算は、再生するソースユニット及び移動ユニットを決定する段階と、ソースユニットの状態を移動中に設定し、移動ユニットの状態をコピー中に設定する段階と、ソースユニット内の有効なブロック、関連メタ及びヘッダ情報をコピーする段階と、コピー中に設定されている移動ユニットを有効状態に設定しつつ、削除回数(摩耗度値)を増やす段階と、ソースユニットを削除しつつ、決定された削除回数をソースユニットに記録する段階と、を含むことが好ましい。
【0020】
前記諸目的を達成するために、フラッシュメモリの構造は、ユニットの第1ブロックは論理的なユニット番号と有効な状態の可否、以前のブロックの削除回数を含む情報の記録のために割り当て、ユニットの第2ブロックはコピー中であるは、或いは移動中であるかということと削除回数(摩耗度)とを含む情報の記録のために割り当てるように構成され、ユニットのデータが記録されるブロックのスペアアレイの所定領域には循環係数方式で決定されたブロック状態を表わす情報が記録されるように構成されることが好ましい。
【0021】
【発明の実施の形態】
以下、添付した図面に基づき、本発明について詳細に説明する。
【0022】
先ず、フラッシュメモリの再写像制御において削除単位として使用するのは削除ユニットである。削除ユニットはフラッシュメモリの物理的な削除ブロック(図1ないし図3に示されているPUN1、PUN2)と一致することもあり、多数個の削除ブロックで構成されることもある。
【0023】
各削除ユニットには物理的なユニット番号(PUN)及び論理的なユニット番号(LUN)が付される。物理的なユニット番号は削除ユニットの物理的な順番により割り当てられる。論理的なユニット番号は、ユニットの論理的な順番を表わす番号である。フラッシュメモリを初めて使用するとき、図1ないし図3に示されたように、物理的なユニット番号(PUN)と論理的なユニット番号(LUN)との間の写像を表わすテーブル(LUN-to-PUN)がフラッシュメモリ上、またはフラッシュメモリとは別途に備えられているメモリに構成される。このテーブルはフラッシュメモリに対するデータの削除や変更、再生などの演算によりフラッシュメモリの写像関係が変わるとき毎に変更される。
【0024】
削除ユニットは図1ないし図3に示されたPUN1、PUN2に示されたように、小さいブロックまたはセクターにさらに分割される。このブロックはフラッシュメモリに対する演算の基本単位として使用される。フラッシュメモリにおいて、全てのブロックの大きさは同一である。削除ユニットは削除ユニットヘッダ(EUH)及びブロック割当てマップ(BAM)を含む。削除ユニットヘッダはフラッシュメモリ全体に対する情報及びそのユニットの管理に必要な情報が記録される。前述した全体に対する情報は、例えば、削除ユニットにあるブロックの大きさ、不良ブロックマップなどに対する情報である。ユニットの管理に必要な情報は、例えば、論理的なユニット番号、摩耗度などに対する情報である。前記削除ユニットヘッダは一つまたはそれ以上のブロックを占めることがある。
【0025】
削除ユニットヘッダの次には、図1ないし図3のPUN1、PUN2に示されたように、使用者データ及びブロック割当てマップが記録される。ブロック割当てマップは一つまたはそれ以上のブロックに集めて記録されえて、NAND型フラッシュメモリのスペアアレイのように特殊な空間にブロック別に分けて記録されもする。
【0026】
ブロック割当てマップ(BAM)には削除ユニットに属するブロックに対する情報(論理的なブロック番号、状態など)が記録される。論理的なブロック番号は使用者が考えるブロックの住所である。したがって、ブロック割当てマップは論理的なブロック番号とそのブロックが実際に記録された物理的な位置との写像を表わす。ブロックに記録されるデータが変更されるときには、ブロック割当てマップの内容、すなわち、論理的なブロック番号と物理的なブロック番号との写像情報及び状態情報も変更される。
【0027】
変更されたブロックが多くなると、フラッシュメモリに使えなくなった部分が多くなるため、再生演算を適宜に行い、削除されたブロックが占めていた空間を再使用できるようにしなければならない。既存の再写像制御方式においてもこれを考慮しているにはいるが、NAND型フラッシュメモリのように部分記録の回数が限られたフラッシュメモリに対して前述の再生演算をいかに行うかについては開示されていない。
【0028】
したがって、本発明においては、ブロックの状態情報を循環係数を使って表示する方法を提示する。この方法によれば、最小限の部分記録回数でブロックの状態を変化させ、故障が生じた場合、該当ブロックのデータを復旧できる。また、循環係数の変化順番を用いて以前のデータ及び新しいデータを区分できるので、ロールバック及びロールフォワードなど、各種の復旧方法を用いることができる。ロールバック復旧方法は新しいデータを用いてデータを復旧することであり、ロールフォワードは以前のデータを用いてデータを復旧することである。
【0029】
このように、フラッシュメモリの再写像制御動作は、ブロック記録、空きブロックの検索、故障での回復などに分けられる。
【0030】
ブロック割当てマップにおいて、各ブロックの状態は、未定(free)、有効(valid) 、削除(deleted)とに大別できる。ここで、'有効'はさらに三つの状態に分けられる。例えば、s0、s1、s2の状態に分けられる。有効な状態の三つの状態の間には、循環的な順序関係がある。例えば、s0<s1、s1<s2、s2<s0の関係がある。有効な状態はこの順番により変化するので、これを循環係数と呼ぶ。すなわち、ブロックの最初の状態は未定であってから、データが初めて記録されるときにs0となり、次にさらに記録されるときにs1、s2、またs0に順番に変わる。
【0031】
このような状態情報を用いて所定ブロックにデータを記録する過程は、図4の通りである。図4は、未定状態を'1111'に設定し、s0を'1110'に設定し、s1を'1100'に設定し、s2を'1000'に設定し、削除を'0000'に設定した例を示している。したがって、ブロックの状態は前記5種の場合の値が循環しながら設定される。そして、図4は、図5に示されたように、物理的なユニットで構成されたNAND型フラッシュメモリに適用した例を示している。
【0032】
図5に示されたように、NAND型フラッシュメモリの物理的なユニット(PU)内のブロックはメインアレイ及びスペアアレイで構成される。メインアレイには実質的なデータのみが記録される。スペアアレイには論理的なセクター番号(logical sector number、lsn)、循環係数(wrapcount、cnt)、論理的なセクター番号及び循環係数に対するエラー訂正コード(ecc_lsn)及びデータに対するエラー訂正コード(ecc_data)などが記録される。このとき、ブロックをページとも言う。
【0033】
NAND型フラッシュメモリのデータシートでよく触れられる"ブロック"は、一度に削除できる物理的な単位である。このブロックは、本実施形態で触れられている"ユニット"に該当すると見ることができる。しかし、実際に具現するとき、前記ユニットを多数のブロックで構成することもできる。
【0034】
先ず、写像情報を用い、該当ブロックが属する論理的なユニット番号及び物理的なユニット番号を決定する。決定された物理的なユニットのブロック割当てマップにおいて、該当ブロックの状態をチェックした結果未定1111であれば、該当ブロックの状態をs0=1110に表示する。次に、データ及び論理的なブロック番号(lsn)などの情報を前記ブロックに記録する。未定の状態のブロックは論理的なブロック番号(lsn)も有効でないある値をもつ。
【0035】
該当ブロックの状態が有効である場合、該当する物理的なユニットでブロックの状態が未定1111であるブロックを一般的な写像方式により見つける。そして、見つかったブロックの状態を以前のブロック状態の次の状態に変更する。例えば、前述した以前のブロックの状態がs0(1110)である場合、s1(1100)に変更する。ブロックの検索は、既存の再写像制御方式でなされた方法と同一になされる。
【0036】
次に、新しいブロック(ブロックの状態がs1(1100)に設定されたブロック)に新しいデータ及び論理的なブロック番号(lsn)などを記録する。そして、以前のブロックの状態を削除0000に変更する。
【0037】
該当ブロックの状態がs1(=1100)であり、該当ユニットに未定状態1111に設定されているブロックが存在する場合、未定状態に設定されているブロックの状態をs2=1000に設定する。そして、ブロックの状態がs2に設定されたブロックにデータ及び論理的なブロック番号(lsn)などの情報を記録する。以前のブロックの状態は削除=0000に変更する。
【0038】
また、該当ブロックの状態がs2=1000であり、該当ユニットに未定状態1111に設定されているブロックが存在する場合、未定状態に設定されているブロックの状態をs0=1110に設定する。そして、ブロックの状態がs0に設定されたブロックにデータ及び論理的なブロック番号(lsn)などの情報を記録する。以前のブロックの状態は削除=0000に変更する。
【0039】
前述したブロックの状態変化は、図4に示された矢印をみれば、十分理解できる筈である。
【0040】
このように、ブロックに対する記録及び修正処理をする場合、1ブロックに対して3回の部分記録でデータを記録できる。ブロックが削除された状態である場合、データ及び論理的なブロック番号などの状態情報を除いた他のデータはいずれも有効なものであると仮定するとき、これは実際に2回の部分記録で記録演算を行うのと同じである。
【0041】
そして、前述した作業中に401ないし407で電源がオフされたり、なんらかの事情で障害が発生した場合、データを記録しようとしていた対象ブロックの状態は削除0000に設定する回復作業を行う。そのほかの作業中には前述したように障害が発生した場合、特別な回復作業を行う必要がない。
【0042】
換言すれば、ブロックにデータを記録している間に障害が発生した場合、未定または削除状態であるブロックに対していかなる回復作業もする必要がない。これは一つの論理的なブロック番号に対して有効な状態のブロックが一つしかない場合である。
【0043】
同一の論理的なブロック番号をもった有効なブロックが二つ存在する場合、回復作業が必要である。既存には、同一の論理的なブロック番号をもった有効なブロックが二つ存在する場合、以前のブロック及び新しいブロックを区別することができなかった。したがって、回復処理時にどんなブロックを削除するかが決定し難かった。しかし、本発明のように循環係数を用いる場合、以前のブロック及び新しいブロックを区別できる。したがって、回復処理時に、どんなブロックを削除するかを決定し易い。回復時に以前のブロックを削除するか、或いは新しいブロックを削除するかは、応用の必要によって決定できる。
【0044】
すなわち、ブロックデータを記録している間に障害が発生すれば、現在、一つの論理的なブロック番号に対して有効な状態をもつブロックが二つ存在するかどうかをチェックする。チェックの結果、有効な状態をもつブロックが一つだけ存在する場合、前述のように、いかなる回復作業もする必要がない。したがって、ブロックデータを記録していた作業を中断すれば良い。しかし、有効な状態をもつブロックが二つ存在する場合、ブロックに割り当てられている循環係数に基づき以前のブロック及び新しいブロックに区分する。そして、以前のブロック及び新しいブロックのうちどちらかのブロックを削除する。図4は、新しいブロックを削除するように具現した例を示している。しかし、以前のブロックを削除するように具現することもできる。
【0045】
図6は、前述した再写像制御方法によりブロックを記録及び修正しようとするときの動作をの示したフローチャートである。
【0046】
ステップ601において、該当ユニットに該当ブロックが存在するかどうかをチェックする。チェックした結果、存在すれば、該当するブロックの状態が有効な状態であるかどうかをチェックする。チェックの結果、有効な状態であれば、ステップ603で該当ブロックの状態をチェックする。次に、ステップ605において、該当ユニットに空きブロックが存在するかどうかをチェックする。チェックの方式は、ブロックの状態が未定に設定されているブロックがあるかどうかを検索する方式によりなされる。チェックの結果、該当ユニットに空きブロックが存在すれば、ステップ607において、新しいブロック状態値を決定する。
【0047】
新しいブロック状態値は、ステップ603においてチェックした該当ブロックの状態値を考慮して決定する。すなわち、前述した図4についての説明で述べたように、以前のブロックの状態がs0に該当すれば、新しいブロック状態値はs1に設定する。以前のブロックの状態がs1に該当すれば、新しいブロック状態値はs2に設定する。以前のブロックの状態がs2に該当すれば、新しいブロック状態値はs0に設定する。そして、以前のブロックの状態が未定の状態であれば、s0に設定する。
【0048】
次に、ステップ609において ステップ605で検索された空きブロックに、ステップ607で決定された新しいブロック状態値を記録する。ステップ611において、新しいブロック状態値を記録した新しいブロックに該当するデータを記録する。ステップ613において、以前のブロックの状態を削除に変更し、作業を終える。このとき、以前のブロックはステップ603で状態がチェックされたブロックである。
【0049】
一方、ステップ601においてチェックした結果、該当ブロックが存在しないか、或いは存在するにはするが、有効なブロックでない場合(すなわち、該当ブロックの状態が削除状態である場合)、ステップ615において該当ブロックを未定状態に設定する。このとき、該当ブロックが存在しない場合、該当ブロックに対する領域を割り当てながら該当ブロックの状態を未定状態に設定する。そして、ステップ605においてチェックした結果、該当するユニットに空きブロックが存在すれば、ステップ607において、前述のように新しいブロック状態値を決定する。
【0050】
しかし、ステップ605においてチェックした結果、該当ユニットに空きブロックが存在しなければ、ステップ617において再生演算を行う。再生演算は、図7ないし図9を参照して後述する。
【0051】
再生演算を行った後、ステップ619において該当ユニットに空きブロックが存在するかどうかをチェックする。チェックの結果、該当ユニットに空きブロックが存在すれば、ステップ607へ進み、新しいブロック状態値を決定する。しかし、空きブロックが存在しなければ、ステップ621において誤り処理をし、作業を終える。
【0052】
ブロックからデータを読み出すために、先ず、写像情報を用い、該当する論理的なユニット番号及び物理的なユニット番号を調べる。そして、該当ユニットのブロック割当てマップを通じてブロックの物理的な位置を決定してデータを読み出す。ここで、ブロックの状態が有効な場合に限ってデータを読み出せるようになっている。したがって、有効な状態のブロックが存在しなければ、そのブロックは一度も記録されたことがないか、或いは削除されて使用されていないブロックであるため、初期値0xFFを設定する。検索の方式は、既存の再写像制御方式によりなされたのと同様である。
【0053】
一方、削除されたブロックをたくさん含んでいるユニットの場合、再生演算が行われる。この場合にも、ユニットの状態を変更させる必要がある。
【0054】
本発明において、例として取られている削除ユニットのフォーマットは、図7の通りである。
【0055】
すなわち、図7を参照すれば、削除ユニットには、以前のユニットの物理的なユニット番号(physical unit number of previous unit、xpun)、再生された(以前の)ユニットの摩耗度レベル(wear level of reclaimed(previous) unit)、論理的なユニット番号(logical unit number、lun)、有効フラグ(valid flag、v)、不良ブロックテーブル(bad block table、bbtbl)、摩耗度レベル(wear level、cnt)、コピー(copying(cp))/伝送(transferring(xf))、データが記録される。
【0056】
ユニットの状態変化も部分記録の回数によって限られる。ブロックに適用していた循環係数技法をユニットにも適用できる。しかし、削除ユニットヘッダを多数のブロックに記録しつつ、状態情報を各ブロックに適宜に分けて配置する方法を用いることもできる。
【0057】
例えば、ユニットの状態が未定、有効、コピー中、移動中に分けられれば、削除ユニットヘッダを図8に示されたように、二つのブロックに亘って記録を行う。そして、第1ブロックには未定及び有効な状態を、第2ブロックにはコピー中及び移動中の状態を記録することができる。このとき、未定の状態であるとしても、摩耗度平準化のためのカウンターが記録される必要がある。
【0058】
自由削除ユニットの状態は未定であり、その他の正常なユニットの状態は有効である。削除ユニットであってから再生されるブロックから送られてくるデータをコピーするユニットはコピー中(cp)という状態が表示される。再生を行う前に前記特定ブロックが含まれている以前のユニットの状態は移動中xfと表示する。
【0059】
コピー中のユニットに移動中のユニットから有効なブロックをコピーした後、移動中のユニットの摩耗度値及び論理的なユニット番号などをコピーする。コピー中のユニットの状態は有効vと表示する。次に、移動中のユニットは削除する。新しいユニットにコピーされていた摩耗度値cntを1だけインクリメントさせた摩耗度値cnt"を新しいユニット及び以前のユニットのユニットヘッダに各々記録する。
【0060】
再生演算を行う間に障害が発生すれば、図8において再開始(redo)で指摘した部分で再生演算は再開始された後に適宜な回復手続きを行う。すなわち、再生演算中の一時的な状態に該当する'移動中'、'コピー中'の場合に障害が発生すれば、再開始をする。しかし、図8において再開始を指摘した部分を除いた部分ではいかなる回復手続きも行わない。
【0061】
再生演算中に発生した障害に対する回復方法も、ブロック記録及び修正時の回復方法と同様である。
【0062】
すなわち、遂行中であった演算の段階により適宜に再生演算を行い直す。例えば、論理的なユニット番号が同一のユニットが二つ存在するが、一つは移動中であり、もう一つはコピー中であれば、コピー中のユニットを削除する。移動中のユニットに以前のユニット(コピー中のユニット)の摩耗度がまだ記録されていない状態であったなら、先ず、以前のユニット(コピー中のユニット)に記録されている移動中のユニットに対する摩耗度値を移動中のユニットにコピーした後、次の演算を行えば良い。
【0063】
削除ユニットの状態は、従来技術のように、固定された位置で値を各種に変更させて示すこともできる。また、ユニットヘッダを該当ユニット内の多数のブロックに分けて記録し、各状態に対して他の位置を指定し、位置の値を0及び1などに区別して状態値を割当てするかどうかを決定することもできる。
【0064】
例えば、第1ブロックに論理的なユニット番号及び有効な状態の可否、以前のブロックの摩耗度などを記録し、第2ブロックにコピー中/移動中の可否及び摩耗度レベルなどを記録し、図8に示された順番に従い再生演算を行うのであれば、3回の部分記録であれば十分である。状態情報をより多くのブロックに分散させたり、或いは配置を調節すれば、部分記録の回数をさらに低減できる。
【0065】
図9は、本発明による再写像制御方法によりブロックを再生する過程を説明するための動作フローチャートである。
【0066】
ステップ901において、再生する削除ユニット(ソースユニット)及び移動ユニット(自由削除ユニット)を決定する。ステップ902において、移動ユニットの削除回数がしきい値を超えたかどうかをチェックする。しきい値は、前述のことを考慮したとき、3に設定できる。
【0067】
チェックの結果、移動ユニットの削除回数がしきい値を超えてなければ、ステップ903においてソースユニットを'移動中'の状態に変更する。次に、ステップ904において、移動ユニットを'コピー中'の状態に変更する。
【0068】
次に、ステップ905において、ソースユニットで有効ブロック及び関連メタデータ(論理的なブロック番号、ECC、不良ブロックマップなど)を移動ユニットにコピーする。そして、ステップ906において、移動ユニットの残りのヘッダ情報を記録し、有効状態に変更する。残りのヘッダ情報はソースユニットの物理的なユニット番号及び削除回数、論理的なユニット番号などである。
【0069】
ステップ907において、ソースユニットを削除する。そして、ステップ908において、ソースユニットに新しい削除回数を記録する。新しい削除回数は、以前の削除回数に1を増した値(以前の削除回数+1)である。ステップ909において、写像情報などメモリ内の資料構造を変更する。このとき、変更は更新によるものである。そして、ステップ910において、貯蔵されたソースユニット番号があるかどうかをチェックする。チェックの結果、貯蔵されたソースユニット番号があれば、ステップ901へ進む。これに対し、チェックの結果、貯蔵されたソースユニット番号がなければ、作業を終える。
【0070】
一方、ステップ902において、チェックの結果、移動ユニットの削除回数がしきい値を超える場合、ステップ911において、現在のソースユニットの番号を貯蔵する。これは、該当する移動ユニットにソースユニットのデータを移すのがあまり好適でないからである。したがって、後述するステップ912において選択されたソースユニット(削除ユニット)を用いた再生演算処理後に、変更される移動ユニットを用いて以前に再生できなかったソースユニットを再生するときに使用するためのものである。
【0071】
そして、ステップ912において、削除回数が最小である削除ユニットを選択し、ステップ903へ進んで、前述のような再生演算処理が行われる。
【0072】
【発明の効果】
以上述べたように、発明によれば、循環係数を使って状態情報を設定することにより、NAND型フラッシュメモリのように部分記録の回数が限られているフラッシュメモリに対してブロックやユニットの記録状態を管理できるという効果がある。
【0073】
例えば、未定(1111)→有効(s0(1110))→s1(1100)→s2(1000)→s0(1110)→...→削除(0000)のような手続きで変更できる。したがって、NAND型フラッシュメモリにこれを適用するのであれば、3回の部分記録でデータを記録できる。もし、そのブロックが削除された状態の場合、データ及び論理的なブロック番号などの状態情報を除いた他のデータはいずれも有効なものと仮定するなら、実際に2回の部分記録で記録演算を行うのと同様である。
【0074】
削除ユニットの場合にも、第1ブロックに論理的なユニット番号及び有効な状態の可否、以前のブロックの摩耗度(削除回数)などを記録し、第2ブロックにコピー中/移動中の可否及び摩耗度などを記録するのであれば、3回の部分記録であれば十分である。状態情報をより多くのブロックに分散させたり、或いは配置を調節すれば、部分記録回数をさらに低減できる。
【図面の簡単な説明】
【図1】 フラッシュメモリのブロック及びユニット関係と既存の再写像制御例を示したものである。
【図2】 図1に示されたようにデータを記録したフラッシュメモリのブロック削除時に、フラッシュメモリのブロック及びユニット関係と既存の再写像制御例を示したものである。
【図3】 図2に示されたようにデータを記録したフラッシュメモリのユニット削除時、フラッシュメモリのブロック及びユニット関係と既存の再写像制御例を示したものである。
【図4】 本発明によるフラッシュメモリのための再写像制御方法において、記録及び修正動作を説明するためのブロック間の関係に関する例を示したものである。
【図5】 NAND型フラッシュメモリの物理的なユニットPUのフォーマットを示したものである。
【図6】 本発明によるフラッシュメモリのための再写像制御方法において、ブロック記録過程を説明するための動作フローチャートである。
【図7】 本発明によるフラッシュメモリの削除ユニットのフォーマットを示したものである。
【図8】 本発明によるフラッシュメモリのための再写像制御方法において、再生演算過程を説明するためのユニット間の関係に対する例を示したものである。
【図9】 本発明によるフラッシュメモリのための再写像制御方法において、再生演算過程に対する動作フローチャートである。
【符号の説明】
BAM ブロック割当てマップ
EUH 削除ユニットヘッダ
LBN 論理的なブロック番号
LUN 論理的なユニット番号
PBN 物理的なブロック番号
PUN 物理的なユニット番号
Claims (2)
- フラッシュメモリに対する演算の基本単位として使用される少なくとも一つのブロックを備えているユニット単位で領域が区切られたフラッシュメモリの再写像制御方法において、
所定ブロックに対する写像情報に基づき、所定の物理的なユニットを見つける段階と、
前記見つかった物理的なユニットに前記所定ブロックが、循環する複数の状態を含む有効な状態のうちの一つの状態で存在すれば、前記物理的なユニットでブロックの状態が未定である他のブロックを見つける段階と、
前記他のブロックの状態を前記所定ブロックに設定されている状態の次の状態に変更する段階と、
前記他のブロックに、新しいデータと論理的なブロック番号と同一の付加情報を記録する段階と、
前記所定ブロックの状態を削除状態に変更する段階と、
前記見つかった物理的なユニットに前記所定ブロックが存在しないか、或いは前記所定ブロックが削除された状態で存在すれば、前記所定ブロックの状態を未定の状態とみなし、ブロックの状態が未定である他のブロックを見つける段階と、
前記他のブロックが存在しなければ、前記物理的なユニットに対して再生演算を行う段階と、
ブロックの状態が未定である他のブロックを見つけ直す段階と、
前記他のブロックが見つかれば、前記他のブロックの状態を変更する段階へ進む段階と、
前記他のブロックが見つからないと、誤りとして処理する段階と、
を含み、前記再生演算を行う段階は、
再生するソースユニット及び移動ユニットを決定する段階と、
前記ソースユニットの状態を移動中に設定し、前記移動ユニットの状態をコピー中に設定する段階と、
前記ソースユニット内の有効なブロック、関連メタデータ及びヘッダ情報をコピーする段階と、
前記コピー中に設定されている移動ユニットを有効状態に設定しつつ、ソースユニットの削除回数(摩耗度値)を増やす段階と、
前記ソースユニットを削除した後、前記削除回数を前記ソースユニットに記録する段階と、
前記移動ユニットの削除回数がしきい値を上回るかどうかをチェックする段階と、
前記削除回数が前記しきい値を上回らなければ、前記ソースユニット及び移動ユニットの状態を設定する段階へ進む段階と、
前記削除回数が前記しきい値を上回れば、前記ソースユニットの番号を貯蔵する段階と、
前記削除回数が最小であるソースユニットを選択した後、前記ソースユニット及び移動ユニットの状態を設定する段階へ進む段階と、
を含むことを特徴とするフラッシュメモリに対する再写像制御方法。 - フラッシュメモリに対する演算の基本単位として使用されるブロックを少なくとも三つ備えているユニット単位に領域が区切られたフラッシュメモリの制御方法において、
前記ユニットの第1ブロックは論理的なユニット番号と有効な状態であるか否か、再生された以前のユニットの削除回数を含む情報が記録されるように割り当て、
前記ユニットの第2ブロックはユニットのコピー中または移動中であるかということと削除回数(摩耗度)とを含む情報が記録されるように割り当て、
前記ユニットのデータが記録されるブロックの余裕アレイの所定領域には循環計数方式で決定されたブロック状態を表わす情報が記録されるように制御するフラッシュメモリの制御方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000059731A KR100644602B1 (ko) | 2000-10-11 | 2000-10-11 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
KR200059731 | 2000-10-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002123421A JP2002123421A (ja) | 2002-04-26 |
JP3662510B2 true JP3662510B2 (ja) | 2005-06-22 |
Family
ID=36848389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001123320A Expired - Lifetime JP3662510B2 (ja) | 2000-10-11 | 2001-04-20 | フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6381176B1 (ja) |
EP (1) | EP1197868B1 (ja) |
JP (1) | JP3662510B2 (ja) |
KR (1) | KR100644602B1 (ja) |
CN (1) | CN1300803C (ja) |
DE (1) | DE60121697T2 (ja) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US7610438B2 (en) * | 2000-01-06 | 2009-10-27 | Super Talent Electronics, Inc. | Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table |
US20060161725A1 (en) * | 2005-01-20 | 2006-07-20 | Lee Charles C | Multiple function flash memory system |
KR100484147B1 (ko) * | 2002-07-26 | 2005-04-18 | 삼성전자주식회사 | 플래시 메모리 관리 방법 |
US6831865B2 (en) * | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US7039788B1 (en) | 2002-10-28 | 2006-05-02 | Sandisk Corporation | Method and apparatus for splitting a logical block |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
DE60316171T2 (de) * | 2002-10-28 | 2008-05-29 | SanDisk Corp., Milpitas | Automatischer abnutzungsausgleich in einem nicht-flüchtigen speichersystem |
US7171536B2 (en) * | 2002-10-28 | 2007-01-30 | Sandisk Corporation | Unusable block management within a non-volatile memory system |
US7234036B1 (en) | 2002-10-28 | 2007-06-19 | Sandisk Corporation | Method and apparatus for resolving physical blocks associated with a common logical block |
US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
DE10252059B3 (de) * | 2002-11-08 | 2004-04-15 | Infineon Technologies Ag | Verfahren zum Betreiben einer Speicheranordnung |
KR100526178B1 (ko) | 2003-03-31 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리 액세스 장치 및 방법 |
KR100526186B1 (ko) * | 2003-04-04 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 오류블록 관리방법 및 장치 |
US7139863B1 (en) | 2003-09-26 | 2006-11-21 | Storage Technology Corporation | Method and system for improving usable life of memory devices using vector processing |
US7188228B1 (en) * | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
US7032087B1 (en) | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
KR100608602B1 (ko) * | 2003-12-10 | 2006-08-03 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
US20080147964A1 (en) * | 2004-02-26 | 2008-06-19 | Chow David Q | Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function |
US7680977B2 (en) * | 2004-02-26 | 2010-03-16 | Super Talent Electronics, Inc. | Page and block management algorithm for NAND flash |
JP2006003966A (ja) * | 2004-06-15 | 2006-01-05 | Oki Electric Ind Co Ltd | フラッシュメモリの書込方法 |
KR100568115B1 (ko) * | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
US7130209B2 (en) | 2004-10-15 | 2006-10-31 | Atmel Corporation | Flexible OTP sector protection architecture for flash memories |
KR100631765B1 (ko) * | 2004-10-18 | 2006-10-09 | 삼성전자주식회사 | 플래시 메모리의 데이터 처리 장치 및 방법 |
US7958430B1 (en) * | 2005-06-20 | 2011-06-07 | Cypress Semiconductor Corporation | Flash memory device and method |
US7568075B2 (en) * | 2005-09-22 | 2009-07-28 | Hitachi, Ltd. | Apparatus, system and method for making endurance of storage media |
JP4933861B2 (ja) * | 2005-09-22 | 2012-05-16 | 株式会社日立製作所 | ストレージ制御装置、データ管理システムおよびデータ管理方法 |
EP1791055A1 (en) * | 2005-11-23 | 2007-05-30 | Incard SA | IC card file system |
US8194880B2 (en) * | 2006-01-30 | 2012-06-05 | Audience, Inc. | System and method for utilizing omni-directional microphones for speech enhancement |
KR100781517B1 (ko) * | 2006-02-16 | 2007-12-03 | 삼성전자주식회사 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
US20080077590A1 (en) * | 2006-09-22 | 2008-03-27 | Honeywell International Inc. | Efficient journaling and recovery mechanism for embedded flash file systems |
KR100849221B1 (ko) | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
KR100771519B1 (ko) * | 2006-10-23 | 2007-10-30 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
KR100789406B1 (ko) | 2006-11-03 | 2007-12-28 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 |
TWI326028B (en) | 2006-11-20 | 2010-06-11 | Silicon Motion Inc | Method for flash memory data management |
KR100816761B1 (ko) * | 2006-12-04 | 2008-03-25 | 삼성전자주식회사 | 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법 |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
CN101364438B (zh) * | 2007-08-08 | 2011-04-06 | 奇岩电子股份有限公司 | 提高与非门阵列闪存的存取装置与方法 |
US8151034B2 (en) * | 2007-09-12 | 2012-04-03 | Sandisk Technologies Inc. | Write abort and erase abort handling |
KR101413736B1 (ko) | 2007-09-13 | 2014-07-02 | 삼성전자주식회사 | 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 |
KR101464338B1 (ko) | 2007-10-25 | 2014-11-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 |
JP4489127B2 (ja) * | 2008-02-29 | 2010-06-23 | 株式会社東芝 | 半導体記憶装置 |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
US20090313416A1 (en) * | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
KR101497074B1 (ko) * | 2008-06-17 | 2015-03-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
US8245244B2 (en) * | 2008-08-26 | 2012-08-14 | Intel Corporation | Device, system, and method of executing a call to a routine within a transaction |
TWI364661B (en) * | 2008-09-25 | 2012-05-21 | Silicon Motion Inc | Access methods for a flash memory and memory devices |
US8275933B2 (en) | 2008-11-10 | 2012-09-25 | Fusion-10, Inc | Apparatus, system, and method for managing physical regions in a solid-state storage device |
US8751860B2 (en) | 2009-06-03 | 2014-06-10 | Micron Technology, Inc. | Object oriented memory in solid state devices |
TWI484334B (zh) * | 2009-12-24 | 2015-05-11 | Univ Nat Taiwan | 非揮發記憶體的區域式管理方法 |
JP5269213B2 (ja) * | 2010-02-02 | 2013-08-21 | 株式会社東芝 | ストレージ機能を持つ通信装置 |
TWI447735B (zh) * | 2010-02-05 | 2014-08-01 | Phison Electronics Corp | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 |
CN102193870B (zh) * | 2010-03-09 | 2014-06-25 | 群联电子股份有限公司 | 存储器管理与写入方法、存储器控制器与存储器存储系统 |
KR101666987B1 (ko) * | 2010-04-20 | 2016-10-17 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP2012123499A (ja) | 2010-12-07 | 2012-06-28 | Toshiba Corp | メモリシステム |
WO2013002799A1 (en) * | 2011-06-30 | 2013-01-03 | Hewlett-Packard Development Company, L.P. | A memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
CN102789403B (zh) * | 2012-07-11 | 2015-08-12 | 忆正科技(武汉)有限公司 | 一种闪存控制器及其控制方法 |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
KR102067029B1 (ko) | 2012-12-13 | 2020-01-16 | 삼성전자주식회사 | 반도체 메모리 장치 및 메모리 시스템 |
KR102015053B1 (ko) * | 2013-02-20 | 2019-08-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
KR102101304B1 (ko) | 2013-03-15 | 2020-04-16 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9747157B2 (en) | 2013-11-08 | 2017-08-29 | Sandisk Technologies Llc | Method and system for improving error correction in data storage |
TWI548991B (zh) * | 2014-02-14 | 2016-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US9405618B2 (en) * | 2014-05-28 | 2016-08-02 | Infineon Technologies Ag | Marker programming in non-volatile memories |
KR102491624B1 (ko) * | 2015-07-27 | 2023-01-25 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 |
FR3051574A1 (fr) * | 2016-05-20 | 2017-11-24 | Proton World Int Nv | Gestion du stockage dans une memoire flash |
TWI661299B (zh) * | 2018-04-30 | 2019-06-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
CN113568579B (zh) * | 2021-07-28 | 2022-05-03 | 深圳市高川自动化技术有限公司 | 一种存储器、数据存储方法以及数据读取方法 |
TWI804236B (zh) * | 2022-03-16 | 2023-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
JPH08212019A (ja) * | 1995-01-31 | 1996-08-20 | Mitsubishi Electric Corp | 半導体ディスク装置 |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US6034891A (en) * | 1997-12-01 | 2000-03-07 | Micron Technology, Inc. | Multi-state flash memory defect management |
-
2000
- 2000-10-11 KR KR1020000059731A patent/KR100644602B1/ko active IP Right Grant
-
2001
- 2001-04-11 DE DE60121697T patent/DE60121697T2/de not_active Expired - Lifetime
- 2001-04-11 EP EP01303384A patent/EP1197868B1/en not_active Expired - Lifetime
- 2001-04-20 JP JP2001123320A patent/JP3662510B2/ja not_active Expired - Lifetime
- 2001-04-29 CN CNB011177225A patent/CN1300803C/zh not_active Expired - Lifetime
- 2001-05-15 US US09/854,920 patent/US6381176B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR20020028624A (ko) | 2002-04-17 |
CN1348191A (zh) | 2002-05-08 |
DE60121697T2 (de) | 2007-08-02 |
JP2002123421A (ja) | 2002-04-26 |
EP1197868A2 (en) | 2002-04-17 |
US6381176B1 (en) | 2002-04-30 |
DE60121697D1 (de) | 2006-09-07 |
CN1300803C (zh) | 2007-02-14 |
US20020041517A1 (en) | 2002-04-11 |
EP1197868A3 (en) | 2004-01-14 |
KR100644602B1 (ko) | 2006-11-10 |
EP1197868B1 (en) | 2006-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3662510B2 (ja) | フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
US6795890B1 (en) | Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory | |
US7984231B2 (en) | Information recording medium access device, and data recording method | |
US5734816A (en) | Nonvolatile memory with flash erase capability | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
KR101910840B1 (ko) | 동적 그래뉼기반 매개 스토리지 | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
JP6064608B2 (ja) | ストレージ装置、バックアッププログラム、およびバックアップ方法 | |
JP2001051889A (ja) | 不揮発性半導体記憶装置を用いたファイルシステム | |
KR20080037283A (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
WO2005066787A1 (ja) | 情報記録媒体 | |
US20100306447A1 (en) | Data updating and recovering methods for a non-volatile memory array | |
KR100703680B1 (ko) | 플래시 파일 시스템 | |
JPH0833864B2 (ja) | データ保全方式 | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
JP2005216119A (ja) | 記録媒体 | |
US9286936B1 (en) | Zone based band mapping | |
JP3808842B2 (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
KR100638638B1 (ko) | 플래시 메모리의 제어 방법 | |
EP0745939A2 (en) | Re-entrant garbage collection process for a flash memory resident file system | |
JPH1031611A (ja) | 不揮発性メモリ記憶媒体用ファイルシステム | |
US20080098050A1 (en) | Defect Management for Storage Media |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040706 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050201 |
|
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: 20050301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050323 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3662510 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110401 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120401 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130401 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140401 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |