JP3646679B2 - 不揮発性メモリのデータ書き換え方法 - Google Patents
不揮発性メモリのデータ書き換え方法 Download PDFInfo
- Publication number
- JP3646679B2 JP3646679B2 JP2001236928A JP2001236928A JP3646679B2 JP 3646679 B2 JP3646679 B2 JP 3646679B2 JP 2001236928 A JP2001236928 A JP 2001236928A JP 2001236928 A JP2001236928 A JP 2001236928A JP 3646679 B2 JP3646679 B2 JP 3646679B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- empty
- physical
- physical block
- blocks
- 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)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、メモリカード等の電子機器に設けられた例えばNAND型フラッシュメモリ等の不揮発性メモリにおいてデータ書き換えが同一の物理ブロックに集中すること等に起因して生じるフラッシュメモリの寿命の短命化を防止するための不揮発性メモリのデータ書き換え方法に係り、特に簡単な処理方式を用いて各物理ブロックに係る書き換え回数を平均化することを可能とする不揮発性メモリのデータ書き換え方法に関するものである。
【0002】
【従来の技術】
近年、大量のデータを記憶するのに適した低コストのNAND型フラッシュメモリ等の不揮発性メモリが、家電機器、携帯電子機器、メモリカード等の電子機器に幅広く使用されている。図3は、不揮発性メモリの記憶領域に係る論理ブロックと物理ブロックとの関係を示す図である。NAND型フラッシュメモリで代表される書き換え可能なフラッシュメモリの記憶領域は、ブロック単位で管理され、データの消去(通常は全ビットに対してバイナリデータ“1”を書き込む動作)、データの書き込み等のデータ処理については物理ブロック毎に実施される。
【0003】
フラッシュメモリをアクセスする際には、例えばCPUに接続されたRAM内に格納されるアドレス変換テーブルを参照することで、図3に示されるようにデータ処理対象となっている論理ブロックの論理ブロックアドレスを物理ブロックアドレスに変換し、データの消去、書き込み、読み出し等を実施する物理ブロックを特定する。このように論理ブロックアドレスによりアクセスする方式をとることで、欠陥のある物理ブロックが発生した場合に当該欠陥のある物理ブロックに対する処理動作を代替用の別の消去状態にある書き込み可能な物理ブロック(以下、空きブロックと称する)に対して実施しても、アプリケーションプログラム等を実行するCPU側ではブロック代替の有無に関係なく同一の論理ブロックアドレスを用いてアクセスすることが可能となる。
【0004】
図4は、従来のフラッシュメモリの物理ブロック内に格納される管理情報に係るデータ構造を示す図である。図4において、11は通常のデータが記憶されるデータ領域、12は当該物理ブロックについての管理情報等に係るデータが記憶される冗長領域であり、データ領域11と冗長領域12とから物理ブロックが構成される。また、13は当該冗長領域を有する物理ブロックに対応する論理ブロックのアドレスを記憶する論理ブロックアドレス記憶領域、14は当該冗長領域を有する物理ブロックに対して消去状態からのデータ書き込みが実施された回数(書き換え回数)を記憶する書き換え回数記憶領域である。なお、論理ブロックアドレス記憶領域13については、当該物理ブロックについて対応付けられている論理ブロックがない場合には、論理ブロックのアドレスとして使用されることのない所定の値を書き込んでおいて、空きブロックであることを識別可能とするものとする。
【0005】
図5は、フラッシュメモリを備える従来の電子機器において、例えばCPU内に接続されるRAM内に構成されるアドレス変換テーブルの一例を示す図である。図5において、(a)はアドレスLを有する論理ブロックに対してデータの書き換えを実施するに際してデータ書き換え前のアドレス変換テーブルを示し、(b)はデータ書き換え後のアドレス変換テーブルを示す。なお、このようなデータの書き換えに伴うアドレス変換テーブルの更新については後述する。図5(a)に示されるように、例えばアドレスL−1,L,L+1,L+2により特定される論理ブロックには、それぞれ対応する物理ブロックのアドレスA,B,C,Dが記憶されている。図5(a)に示されるようなアドレス変換テーブルを参照することで、データ処理対象の論理ブロックに当初対応付けられている物理ブロックを特定することができる。
【0006】
次に、従来のフラッシュメモリに対して実行されるデータの書き換え動作について説明する。まず、所定の論理ブロックに記憶されたデータに係る書き換え動作の概略的な手順について説明する。なお、ここでは説明を簡単にするために、図3に示されるように、書き換え対象の論理ブロックのアドレスをL、当該論理ブロックに対して当初対応付けられていてデータ書き換えに伴って消去対象となる物理ブロック(このように、データ書き換え前に論理ブロックに対して対応付けられていた物理ブロックを、以降の説明において前使用物理ブロックと称するものとする)のアドレスをB、また当該論理ブロックに対して新たに対応付けられてデータ書き換えに伴ってデータの書き込み対象となる物理ブロックのアドレスをPとする。また、以降の説明においては、アドレスnによりアクセスされる論理ブロックおよび物理ブロックをそれぞれ論理ブロックnおよび物理ブロックnとそれぞれ適宜称するものとする。
【0007】
図6は、所定の論理ブロックに記憶されるデータに係る書き換え方法を示すフローチャートである。第1に、書き換え対象となる論理ブロックLを特定する(ステップS1)。次に、図5(a)に示されるように、アドレス変換テーブルを参照して、その時点において論理ブロックLに対応付けられている前使用物理ブロックのアドレスBを特定する(ステップS2)。次に、フラッシュメモリの各物理ブロックを検索して、空きブロックを検出し当該空きブロックのアドレスPを特定する(ステップS3)。なお、複数の物理ブロックのなかから適切な空きブロックを検出する方法については後述する。このように、書き込み対象の物理ブロックPおよび消去対象の物理ブロックBが特定されれば、まず書き込み対象となる物理ブロックPに対してデータの書き込みを実施する(ステップS4)。次に、前使用物理ブロックBのデータを消去する(ステップS5)。そして、図5(b)に示されるように、アドレス変換テーブルにおいて、論理ブロックLに対応付けられている物理ブロックを物理ブロックBから物理ブロックPに変更する(ステップS6)ことで、データ書き換え動作を完了する。
【0008】
次に、複数の物理ブロックのなかから適切な空きブロックを検出する方法について説明する。図7は、適切な空きブロックを検出する方法を示すフローチャートである。まず、書き換え回数最小値に係る初期値の設定を実施する(ステップS11)。この初期値としては、例えば書き換え回数記憶領域14に記憶することができる最大の数値を設定することが考えられる。次に、概念的には図3に示されるように順次配列された複数の物理ブロックから成る記憶領域について、例えばアドレスについて昇順または降順に一つずつ物理ブロックを取り出して検索対象となる物理ブロックを特定する(ステップS12)。検索対象となる物理ブロックが特定されれば、当該物理ブロックの論理ブロックアドレス記憶領域13を参照して、当該物理ブロックが既に論理ブロックに対応付けられているか否かすなわち当該物理ブロックが空きブロックであるか否かを判定する(ステップS13)。検索対象となっている物理ブロックが空きブロックである場合には、当該物理ブロックの書き換え回数記憶領域14を参照して、当該物理ブロックの書き換え回数が書き換え回数最小値より小さいか否かを判定する(ステップS14)。当該物理ブロックの書き換え回数が書き換え回数最小値より小さい場合には、検索対象となっている物理ブロックを書き込み対象の物理ブロックして設定する(ステップS15)とともに、書き換え回数最小値として当該物理ブロックの書き換え回数を設定する(ステップS16)。
【0009】
ステップS16の処理を終了した後、ステップS13において検索対象となっている物理ブロックが空きブロックでない場合、並びにステップS14において検索対象となっている物理ブロックの書き換え回数が書き換え回数最小値以上である場合には、全ての物理ブロックについて検索が完了したか否かを判定する(ステップS17)。全ての物理ブロックについて検索が完了していない場合には、ステップS12に戻って同様の処理を次の物理ブロックに対して実施する。また、全ての物理ブロックについて検索が完了した場合には、書き込み対象の物理ブロックとして最終的に設定された物理ブロックについて、当該物理ブロックに係る書き換え回数を1つ増分して書き換え回数記憶領域14に書き込む(ステップS18)。
【0010】
NAND型フラッシュメモリ等のフラッシュメモリについては同一の物理ブロックへの書き込みが集中すると素子が劣化するために、上記のような処理を実施することで、各物理ブロックについての書き換え回数を平均化することができて、フラッシュメモリ自体の寿命を延ばすことが可能となる。
【0011】
【発明が解決しようとする課題】
物理ブロックの書き換え回数を平均化するための従来の空きブロックの検出方法は上記のように構成されているので、各物理ブロック毎に書き換え回数記憶領域を具備させる必要があるとともに、書き換え回数が大きくなった場合にはラップアラウンドに係る処理等を実施する必要が生じるために、メモリの制御システムが複雑になるという課題があった。
【0012】
この発明は上記のような課題を解決するためになされたもので、NAND型フラッシュメモリ等の不揮発性メモリを構成する各物理ブロック毎の書き換え回数を簡単な方式を用いて平均化させることができる不揮発性メモリのデータ書き換え方法を得ることを目的とする。
【0013】
【課題を解決するための手段】
この発明に係る不揮発性メモリのデータ書き換え方法は、消去状態にあって書き込み可能な物理ブロックである空きブロックの数を確認する第1のステップと、乱数を発生させて、複数の空きブロックのなかから1つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第2のステップとを有するようにしたものである。
【0014】
この発明に係る不揮発性メモリのデータ書き換え方法は、空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定するようにしたものである。
【0015】
【発明の実施の形態】
以下、添付の図面を参照して本願発明に係る実施の形態を説明する。なお、以下の説明においては、本願発明の実施の形態に記載された各手段および各工程と、特許請求の範囲に記載された発明の各手段および各工程との対応関係を明らかにするために、実施の形態に記載された各手段および各工程にそれぞれ対応する特許請求の範囲に記載された発明の各手段および各工程を適宜かっこ書きにより示すものとする。
【0016】
実施の形態1.
この発明の実施の形態1においては、フラッシュメモリ(不揮発性メモリ)の記憶領域に係る論理ブロックと物理ブロックとの関係については、従来技術と同様に図3に示されるような関係を有するものとし、フラッシュメモリに記憶されたデータに係る処理を実施するに際しては、CPU側からは論理ブロックアドレスによりアクセスする方式をとる。但し、この実施の形態1は、従来技術と比較して、例えば空きブロックのアドレス等として与えられる空きブロック特定情報を順次登録する空きブロック登録テーブルを有する点で差異を有する。図1は、空きブロック登録テーブル等を示す図である。図1において、1は空きブロックの数を記録する空きブロック数カウンタ、2はそれぞれが順次配列された複数の記憶部から構成される空きブロック登録テーブルである。空きブロック数カウンタ1および空きブロック登録テーブル2は、ともに例えばCPUに接続されたRAM内のワークエリアにおいて構成することが可能である。図1に示されるように、空きブロック数カウンタ1に記憶された空きブロックの数がNである場合には、空きブロック登録テーブル2におけるアドレス0からアドレス(N−1)によりアクセス可能な各記憶部にそれぞれ空きブロックのアドレスが記憶される。
【0017】
次に、この実施の形態1によるメモリ制御方法について説明する。所定の論理ブロックに記憶されたデータに係る書き換え動作は、基本的には図6に示されたフローチャートによる書き換え動作と同様であるので、その説明を省略する。従来技術と本願発明とでは、適切な空きブロックを検出する方法において差異を有している。図2は、この発明の実施の形態1による適切な空きブロックの検出方法を示すフローチャートである。まず、空きブロック数カウンタ1を参照して、その時点においてデータ書き込み可能となっている空きブロックの数を確認する(ステップS21(第1のステップ))。空きブロック数をNとすると、N個の空きブロックのなかから適切な空きブロックを選定するように、0から(N−1)の範囲で乱数を発生させて、空きブロック登録テーブル2において、アクセスするアドレスMを決定する(ステップS22)。次に、空きブロック登録テーブルのアドレスMに登録されている物理ブロックのアドレスPを読み出して、この物理ブロックPを書き込み対象の物理ブロックとして特定する(ステップS23(第2のステップ))。書き込み対象の物理ブロックPが特定されれば、空きブロック登録テーブル2におけるアドレスMの記憶部に、図3に示されるようにこの書き込み動作に伴って消去対象となる物理ブロックのアドレスBをアドレスPに代えて書き込む(ステップS24)。なお、書き込み対象の物理ブロックPが特定された後の処理については、図6に示されるように、書き込み対象の物理ブロックPにデータを書き込み、前使用物理ブロックBのデータを消去し、アドレス変換テーブルを更新することでデータの書き換えを完了する。
【0018】
以上のように、この実施の形態1によれば、空きブロックの数を確認するステップS21と、乱数を発生させて、当該乱数に応じて複数の空きブロックのなかから1つの空きブロックを選定し、選定された空きブロックを書き込み対象となる物理ブロックとして特定するステップS23とを有するように構成したので、フラッシュメモリへのデータの書き換え回数が多くなれば各物理ブロックの書き換え回数も統計的に平均化されることが予測され、書き換え回数記憶領域14等を必要としない簡単な構成、並びに書き換え回数のカウント処理やラップアラウンド処理等の処理を必要としない簡単な方式によって、各物理ブロックの書き換え回数を平均化させてフラッシュメモリの寿命を延ばすことができるという効果を奏する。
【0019】
また、空きブロックの数だけ順次配列された記憶部にそれぞれ空きブロックのアドレスを記憶した空きブロック登録テーブル2を設けて、発生された乱数に応じて空きブロック登録テーブル2内のいずれかの記憶部を選定することで書き込み対象となる1つの空きブロックを特定するように構成したので、空きブロックの管理を容易にするとともに、空きブロック数に応じた所定の数値範囲において発生させた乱数を順次配列された記憶部のアドレスに対応付けることで、おおよそ同じ確率での各空きブロックの選定を可能とするシステムを容易に構築することができるという効果を奏する。
【0020】
なお、上記の実施の形態1による不揮発性メモリのデータ書き換え方法は、本願発明を限定するものではなく、例示することを意図して開示されているものである。本願発明の技術的範囲は特許請求の範囲の記載により定められるものであり、特許請求の範囲に記載された技術的範囲内において種々の設計的変更が可能である。例えば、空きブロック登録テーブルを必ずしも設ける必要はなく、フラッシュメモリの記憶領域を構成する全物理ブロックのアドレス範囲に対応する数値範囲において乱数を発生させて、当該乱数に基づいて得られたアドレスを中心とした近傍領域の物理ブロックを検索して、得られたアドレスに最も近い空きブロックを書き込み対象の物理ブロックとして特定するような方法をとることも可能である。
【0021】
【発明の効果】
以上のように、この発明によれば、空きブロックの数を確認する第1のステップと、乱数を発生させて、複数の空きブロックのなかから1つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第2のステップとを有するように構成したので、不揮発性メモリへのデータの書き換え回数が多くなれば各物理ブロックの書き換え回数も統計的に平均化されることが予測され、書き換え回数記憶領域等を必要としない簡単な構成、並びに書き換え回数のカウント処理やラップアラウンド処理等の処理を必要としない簡単な方式によって、各物理ブロックの書き換え回数を平均化させて不揮発性メモリの寿命を延ばすことができるという効果を奏する。
【0022】
この発明によれば、空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定するように構成したので、空きブロックの管理を容易にするとともに、空きブロック数に応じた所定の数値範囲において発生させた乱数を順次配列された記憶部のアドレスに対応付けることで、おおよそ同じ確率での各空きブロックの選定を可能とするシステムを容易に構築することができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による空きブロック登録テーブル等を示す図である。
【図2】 この発明の実施の形態1による適切な空きブロックの検出方法を示すフローチャートである。
【図3】 不揮発性メモリの記憶領域に係る論理ブロックと物理ブロックとの関係を示す図である。
【図4】 従来の適切な空きブロックの検出方法において用いられる物理ブロック内に格納される管理情報に係るデータ構造を示す図である。
【図5】 アドレス変換テーブルの構造を示す図である。
【図6】 不揮発性メモリで用いられるデータ書き換え方法の概略を示すフローチャートである。
【図7】 適切な空きブロックを検出する従来の方法を示すフローチャートである。
【符号の説明】
1 空きブロック数カウンタ、2 空きブロック登録テーブル、11 データ領域、12 冗長領域、13 論理ブロックアドレス記憶領域、14 書き換え回数記憶領域
【発明の属する技術分野】
この発明は、メモリカード等の電子機器に設けられた例えばNAND型フラッシュメモリ等の不揮発性メモリにおいてデータ書き換えが同一の物理ブロックに集中すること等に起因して生じるフラッシュメモリの寿命の短命化を防止するための不揮発性メモリのデータ書き換え方法に係り、特に簡単な処理方式を用いて各物理ブロックに係る書き換え回数を平均化することを可能とする不揮発性メモリのデータ書き換え方法に関するものである。
【0002】
【従来の技術】
近年、大量のデータを記憶するのに適した低コストのNAND型フラッシュメモリ等の不揮発性メモリが、家電機器、携帯電子機器、メモリカード等の電子機器に幅広く使用されている。図3は、不揮発性メモリの記憶領域に係る論理ブロックと物理ブロックとの関係を示す図である。NAND型フラッシュメモリで代表される書き換え可能なフラッシュメモリの記憶領域は、ブロック単位で管理され、データの消去(通常は全ビットに対してバイナリデータ“1”を書き込む動作)、データの書き込み等のデータ処理については物理ブロック毎に実施される。
【0003】
フラッシュメモリをアクセスする際には、例えばCPUに接続されたRAM内に格納されるアドレス変換テーブルを参照することで、図3に示されるようにデータ処理対象となっている論理ブロックの論理ブロックアドレスを物理ブロックアドレスに変換し、データの消去、書き込み、読み出し等を実施する物理ブロックを特定する。このように論理ブロックアドレスによりアクセスする方式をとることで、欠陥のある物理ブロックが発生した場合に当該欠陥のある物理ブロックに対する処理動作を代替用の別の消去状態にある書き込み可能な物理ブロック(以下、空きブロックと称する)に対して実施しても、アプリケーションプログラム等を実行するCPU側ではブロック代替の有無に関係なく同一の論理ブロックアドレスを用いてアクセスすることが可能となる。
【0004】
図4は、従来のフラッシュメモリの物理ブロック内に格納される管理情報に係るデータ構造を示す図である。図4において、11は通常のデータが記憶されるデータ領域、12は当該物理ブロックについての管理情報等に係るデータが記憶される冗長領域であり、データ領域11と冗長領域12とから物理ブロックが構成される。また、13は当該冗長領域を有する物理ブロックに対応する論理ブロックのアドレスを記憶する論理ブロックアドレス記憶領域、14は当該冗長領域を有する物理ブロックに対して消去状態からのデータ書き込みが実施された回数(書き換え回数)を記憶する書き換え回数記憶領域である。なお、論理ブロックアドレス記憶領域13については、当該物理ブロックについて対応付けられている論理ブロックがない場合には、論理ブロックのアドレスとして使用されることのない所定の値を書き込んでおいて、空きブロックであることを識別可能とするものとする。
【0005】
図5は、フラッシュメモリを備える従来の電子機器において、例えばCPU内に接続されるRAM内に構成されるアドレス変換テーブルの一例を示す図である。図5において、(a)はアドレスLを有する論理ブロックに対してデータの書き換えを実施するに際してデータ書き換え前のアドレス変換テーブルを示し、(b)はデータ書き換え後のアドレス変換テーブルを示す。なお、このようなデータの書き換えに伴うアドレス変換テーブルの更新については後述する。図5(a)に示されるように、例えばアドレスL−1,L,L+1,L+2により特定される論理ブロックには、それぞれ対応する物理ブロックのアドレスA,B,C,Dが記憶されている。図5(a)に示されるようなアドレス変換テーブルを参照することで、データ処理対象の論理ブロックに当初対応付けられている物理ブロックを特定することができる。
【0006】
次に、従来のフラッシュメモリに対して実行されるデータの書き換え動作について説明する。まず、所定の論理ブロックに記憶されたデータに係る書き換え動作の概略的な手順について説明する。なお、ここでは説明を簡単にするために、図3に示されるように、書き換え対象の論理ブロックのアドレスをL、当該論理ブロックに対して当初対応付けられていてデータ書き換えに伴って消去対象となる物理ブロック(このように、データ書き換え前に論理ブロックに対して対応付けられていた物理ブロックを、以降の説明において前使用物理ブロックと称するものとする)のアドレスをB、また当該論理ブロックに対して新たに対応付けられてデータ書き換えに伴ってデータの書き込み対象となる物理ブロックのアドレスをPとする。また、以降の説明においては、アドレスnによりアクセスされる論理ブロックおよび物理ブロックをそれぞれ論理ブロックnおよび物理ブロックnとそれぞれ適宜称するものとする。
【0007】
図6は、所定の論理ブロックに記憶されるデータに係る書き換え方法を示すフローチャートである。第1に、書き換え対象となる論理ブロックLを特定する(ステップS1)。次に、図5(a)に示されるように、アドレス変換テーブルを参照して、その時点において論理ブロックLに対応付けられている前使用物理ブロックのアドレスBを特定する(ステップS2)。次に、フラッシュメモリの各物理ブロックを検索して、空きブロックを検出し当該空きブロックのアドレスPを特定する(ステップS3)。なお、複数の物理ブロックのなかから適切な空きブロックを検出する方法については後述する。このように、書き込み対象の物理ブロックPおよび消去対象の物理ブロックBが特定されれば、まず書き込み対象となる物理ブロックPに対してデータの書き込みを実施する(ステップS4)。次に、前使用物理ブロックBのデータを消去する(ステップS5)。そして、図5(b)に示されるように、アドレス変換テーブルにおいて、論理ブロックLに対応付けられている物理ブロックを物理ブロックBから物理ブロックPに変更する(ステップS6)ことで、データ書き換え動作を完了する。
【0008】
次に、複数の物理ブロックのなかから適切な空きブロックを検出する方法について説明する。図7は、適切な空きブロックを検出する方法を示すフローチャートである。まず、書き換え回数最小値に係る初期値の設定を実施する(ステップS11)。この初期値としては、例えば書き換え回数記憶領域14に記憶することができる最大の数値を設定することが考えられる。次に、概念的には図3に示されるように順次配列された複数の物理ブロックから成る記憶領域について、例えばアドレスについて昇順または降順に一つずつ物理ブロックを取り出して検索対象となる物理ブロックを特定する(ステップS12)。検索対象となる物理ブロックが特定されれば、当該物理ブロックの論理ブロックアドレス記憶領域13を参照して、当該物理ブロックが既に論理ブロックに対応付けられているか否かすなわち当該物理ブロックが空きブロックであるか否かを判定する(ステップS13)。検索対象となっている物理ブロックが空きブロックである場合には、当該物理ブロックの書き換え回数記憶領域14を参照して、当該物理ブロックの書き換え回数が書き換え回数最小値より小さいか否かを判定する(ステップS14)。当該物理ブロックの書き換え回数が書き換え回数最小値より小さい場合には、検索対象となっている物理ブロックを書き込み対象の物理ブロックして設定する(ステップS15)とともに、書き換え回数最小値として当該物理ブロックの書き換え回数を設定する(ステップS16)。
【0009】
ステップS16の処理を終了した後、ステップS13において検索対象となっている物理ブロックが空きブロックでない場合、並びにステップS14において検索対象となっている物理ブロックの書き換え回数が書き換え回数最小値以上である場合には、全ての物理ブロックについて検索が完了したか否かを判定する(ステップS17)。全ての物理ブロックについて検索が完了していない場合には、ステップS12に戻って同様の処理を次の物理ブロックに対して実施する。また、全ての物理ブロックについて検索が完了した場合には、書き込み対象の物理ブロックとして最終的に設定された物理ブロックについて、当該物理ブロックに係る書き換え回数を1つ増分して書き換え回数記憶領域14に書き込む(ステップS18)。
【0010】
NAND型フラッシュメモリ等のフラッシュメモリについては同一の物理ブロックへの書き込みが集中すると素子が劣化するために、上記のような処理を実施することで、各物理ブロックについての書き換え回数を平均化することができて、フラッシュメモリ自体の寿命を延ばすことが可能となる。
【0011】
【発明が解決しようとする課題】
物理ブロックの書き換え回数を平均化するための従来の空きブロックの検出方法は上記のように構成されているので、各物理ブロック毎に書き換え回数記憶領域を具備させる必要があるとともに、書き換え回数が大きくなった場合にはラップアラウンドに係る処理等を実施する必要が生じるために、メモリの制御システムが複雑になるという課題があった。
【0012】
この発明は上記のような課題を解決するためになされたもので、NAND型フラッシュメモリ等の不揮発性メモリを構成する各物理ブロック毎の書き換え回数を簡単な方式を用いて平均化させることができる不揮発性メモリのデータ書き換え方法を得ることを目的とする。
【0013】
【課題を解決するための手段】
この発明に係る不揮発性メモリのデータ書き換え方法は、消去状態にあって書き込み可能な物理ブロックである空きブロックの数を確認する第1のステップと、乱数を発生させて、複数の空きブロックのなかから1つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第2のステップとを有するようにしたものである。
【0014】
この発明に係る不揮発性メモリのデータ書き換え方法は、空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定するようにしたものである。
【0015】
【発明の実施の形態】
以下、添付の図面を参照して本願発明に係る実施の形態を説明する。なお、以下の説明においては、本願発明の実施の形態に記載された各手段および各工程と、特許請求の範囲に記載された発明の各手段および各工程との対応関係を明らかにするために、実施の形態に記載された各手段および各工程にそれぞれ対応する特許請求の範囲に記載された発明の各手段および各工程を適宜かっこ書きにより示すものとする。
【0016】
実施の形態1.
この発明の実施の形態1においては、フラッシュメモリ(不揮発性メモリ)の記憶領域に係る論理ブロックと物理ブロックとの関係については、従来技術と同様に図3に示されるような関係を有するものとし、フラッシュメモリに記憶されたデータに係る処理を実施するに際しては、CPU側からは論理ブロックアドレスによりアクセスする方式をとる。但し、この実施の形態1は、従来技術と比較して、例えば空きブロックのアドレス等として与えられる空きブロック特定情報を順次登録する空きブロック登録テーブルを有する点で差異を有する。図1は、空きブロック登録テーブル等を示す図である。図1において、1は空きブロックの数を記録する空きブロック数カウンタ、2はそれぞれが順次配列された複数の記憶部から構成される空きブロック登録テーブルである。空きブロック数カウンタ1および空きブロック登録テーブル2は、ともに例えばCPUに接続されたRAM内のワークエリアにおいて構成することが可能である。図1に示されるように、空きブロック数カウンタ1に記憶された空きブロックの数がNである場合には、空きブロック登録テーブル2におけるアドレス0からアドレス(N−1)によりアクセス可能な各記憶部にそれぞれ空きブロックのアドレスが記憶される。
【0017】
次に、この実施の形態1によるメモリ制御方法について説明する。所定の論理ブロックに記憶されたデータに係る書き換え動作は、基本的には図6に示されたフローチャートによる書き換え動作と同様であるので、その説明を省略する。従来技術と本願発明とでは、適切な空きブロックを検出する方法において差異を有している。図2は、この発明の実施の形態1による適切な空きブロックの検出方法を示すフローチャートである。まず、空きブロック数カウンタ1を参照して、その時点においてデータ書き込み可能となっている空きブロックの数を確認する(ステップS21(第1のステップ))。空きブロック数をNとすると、N個の空きブロックのなかから適切な空きブロックを選定するように、0から(N−1)の範囲で乱数を発生させて、空きブロック登録テーブル2において、アクセスするアドレスMを決定する(ステップS22)。次に、空きブロック登録テーブルのアドレスMに登録されている物理ブロックのアドレスPを読み出して、この物理ブロックPを書き込み対象の物理ブロックとして特定する(ステップS23(第2のステップ))。書き込み対象の物理ブロックPが特定されれば、空きブロック登録テーブル2におけるアドレスMの記憶部に、図3に示されるようにこの書き込み動作に伴って消去対象となる物理ブロックのアドレスBをアドレスPに代えて書き込む(ステップS24)。なお、書き込み対象の物理ブロックPが特定された後の処理については、図6に示されるように、書き込み対象の物理ブロックPにデータを書き込み、前使用物理ブロックBのデータを消去し、アドレス変換テーブルを更新することでデータの書き換えを完了する。
【0018】
以上のように、この実施の形態1によれば、空きブロックの数を確認するステップS21と、乱数を発生させて、当該乱数に応じて複数の空きブロックのなかから1つの空きブロックを選定し、選定された空きブロックを書き込み対象となる物理ブロックとして特定するステップS23とを有するように構成したので、フラッシュメモリへのデータの書き換え回数が多くなれば各物理ブロックの書き換え回数も統計的に平均化されることが予測され、書き換え回数記憶領域14等を必要としない簡単な構成、並びに書き換え回数のカウント処理やラップアラウンド処理等の処理を必要としない簡単な方式によって、各物理ブロックの書き換え回数を平均化させてフラッシュメモリの寿命を延ばすことができるという効果を奏する。
【0019】
また、空きブロックの数だけ順次配列された記憶部にそれぞれ空きブロックのアドレスを記憶した空きブロック登録テーブル2を設けて、発生された乱数に応じて空きブロック登録テーブル2内のいずれかの記憶部を選定することで書き込み対象となる1つの空きブロックを特定するように構成したので、空きブロックの管理を容易にするとともに、空きブロック数に応じた所定の数値範囲において発生させた乱数を順次配列された記憶部のアドレスに対応付けることで、おおよそ同じ確率での各空きブロックの選定を可能とするシステムを容易に構築することができるという効果を奏する。
【0020】
なお、上記の実施の形態1による不揮発性メモリのデータ書き換え方法は、本願発明を限定するものではなく、例示することを意図して開示されているものである。本願発明の技術的範囲は特許請求の範囲の記載により定められるものであり、特許請求の範囲に記載された技術的範囲内において種々の設計的変更が可能である。例えば、空きブロック登録テーブルを必ずしも設ける必要はなく、フラッシュメモリの記憶領域を構成する全物理ブロックのアドレス範囲に対応する数値範囲において乱数を発生させて、当該乱数に基づいて得られたアドレスを中心とした近傍領域の物理ブロックを検索して、得られたアドレスに最も近い空きブロックを書き込み対象の物理ブロックとして特定するような方法をとることも可能である。
【0021】
【発明の効果】
以上のように、この発明によれば、空きブロックの数を確認する第1のステップと、乱数を発生させて、複数の空きブロックのなかから1つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第2のステップとを有するように構成したので、不揮発性メモリへのデータの書き換え回数が多くなれば各物理ブロックの書き換え回数も統計的に平均化されることが予測され、書き換え回数記憶領域等を必要としない簡単な構成、並びに書き換え回数のカウント処理やラップアラウンド処理等の処理を必要としない簡単な方式によって、各物理ブロックの書き換え回数を平均化させて不揮発性メモリの寿命を延ばすことができるという効果を奏する。
【0022】
この発明によれば、空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定するように構成したので、空きブロックの管理を容易にするとともに、空きブロック数に応じた所定の数値範囲において発生させた乱数を順次配列された記憶部のアドレスに対応付けることで、おおよそ同じ確率での各空きブロックの選定を可能とするシステムを容易に構築することができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による空きブロック登録テーブル等を示す図である。
【図2】 この発明の実施の形態1による適切な空きブロックの検出方法を示すフローチャートである。
【図3】 不揮発性メモリの記憶領域に係る論理ブロックと物理ブロックとの関係を示す図である。
【図4】 従来の適切な空きブロックの検出方法において用いられる物理ブロック内に格納される管理情報に係るデータ構造を示す図である。
【図5】 アドレス変換テーブルの構造を示す図である。
【図6】 不揮発性メモリで用いられるデータ書き換え方法の概略を示すフローチャートである。
【図7】 適切な空きブロックを検出する従来の方法を示すフローチャートである。
【符号の説明】
1 空きブロック数カウンタ、2 空きブロック登録テーブル、11 データ領域、12 冗長領域、13 論理ブロックアドレス記憶領域、14 書き換え回数記憶領域
Claims (2)
- 書き換え対象となる論理ブロックを特定するステップと、アドレス変換テーブルにおいて当該論理ブロックに対して当初対応付けられていて消去対象となる物理ブロックを特定するステップと、書き込み対象となる物理ブロックを特定するステップと、書き込み対象となる物理ブロックに対してデータを書き込むステップと、消去対象の物理ブロックのデータを消去するステップと、アドレス変換テーブルにおいて当該論理ブロックに対して書き込み対象となる物理ブロックを対応付けるステップとを有する不揮発性メモリのデータ書き換え方法において、
消去状態にあって書き込み可能な物理ブロックである空きブロックの数を確認する第1のステップと、
乱数を発生させて、複数の空きブロックのなかから1つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第2のステップとを有することを特徴とする不揮発性メモリのデータ書き換え方法。 - 空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、
発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定することを特徴とする請求項1記載の不揮発性メモリのデータ書き換え方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001236928A JP3646679B2 (ja) | 2001-08-03 | 2001-08-03 | 不揮発性メモリのデータ書き換え方法 |
US10/484,322 US7240178B2 (en) | 2001-07-25 | 2002-07-19 | Non-volatile memory and non-volatile memory data rewriting method |
CNB028147979A CN1255733C (zh) | 2001-07-25 | 2002-07-19 | 非易失性存储器和非易失性存储器的数据改写方法 |
KR1020047000158A KR100877030B1 (ko) | 2001-07-25 | 2002-07-19 | 불휘발성 메모리 및 불휘발성 메모리의 데이터 재기록 방법 |
PCT/JP2002/007356 WO2003010671A1 (en) | 2001-07-25 | 2002-07-19 | Non-volatile memory and non-volatile memory data rewriting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001236928A JP3646679B2 (ja) | 2001-08-03 | 2001-08-03 | 不揮発性メモリのデータ書き換え方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003050747A JP2003050747A (ja) | 2003-02-21 |
JP3646679B2 true JP3646679B2 (ja) | 2005-05-11 |
Family
ID=19068103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001236928A Expired - Fee Related JP3646679B2 (ja) | 2001-07-25 | 2001-08-03 | 不揮発性メモリのデータ書き換え方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3646679B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004310650A (ja) | 2003-04-10 | 2004-11-04 | Renesas Technology Corp | メモリ装置 |
JP5617873B2 (ja) * | 2005-06-06 | 2014-11-05 | ソニー株式会社 | 記憶装置 |
KR100735024B1 (ko) * | 2005-12-29 | 2007-07-03 | 삼성전자주식회사 | 반도체 장치의 어드레스 변환기 및 반도체 메모리 장치 |
JP2008123314A (ja) * | 2006-11-14 | 2008-05-29 | Nec Electronics Corp | 半導体記憶装置への情報記録方法及び情報記録システム |
CN112631522A (zh) * | 2020-12-25 | 2021-04-09 | 上海威固信息技术股份有限公司 | 一种固态硬盘闪存颗粒数据的快速清除方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02310896A (ja) * | 1989-05-25 | 1990-12-26 | Canon Inc | 記憶素子への書き込み方法 |
JPH05265874A (ja) * | 1992-03-24 | 1993-10-15 | Oki Electric Ind Co Ltd | メモリへのデータ保存方法 |
JPH05274219A (ja) * | 1992-03-27 | 1993-10-22 | Alps Electric Co Ltd | 記憶装置 |
JP3390482B2 (ja) * | 1992-06-12 | 2003-03-24 | 株式会社リコー | ファクシミリ装置 |
JPH06139138A (ja) * | 1992-10-29 | 1994-05-20 | Toshiba Corp | メモリカード装置 |
JPH09293386A (ja) * | 1996-04-30 | 1997-11-11 | Matsushita Electric Ind Co Ltd | 記憶装置 |
JPH11249968A (ja) * | 1998-03-05 | 1999-09-17 | Sanyo Electric Co Ltd | ファイル記録方法及びファイルシステム |
JP3242890B2 (ja) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | 記憶装置 |
-
2001
- 2001-08-03 JP JP2001236928A patent/JP3646679B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003050747A (ja) | 2003-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6879528B2 (en) | Control method of nonvolatile memory | |
US7240178B2 (en) | Non-volatile memory and non-volatile memory data rewriting method | |
US7571362B2 (en) | Method of managing fails in a non-volatile memory device and relative memory device | |
TWI470429B (zh) | 記憶體裝置及記憶體存取方法 | |
JP4948793B2 (ja) | バッドブロック管理部を含むフラッシュメモリシステム | |
US20080120488A1 (en) | Apparatus and method of managing nonvolatile memory | |
US20070016719A1 (en) | Memory device including nonvolatile memory and memory controller | |
US7287117B2 (en) | Flash memory and mapping control apparatus and method for flash memory | |
US8200891B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
US20070150645A1 (en) | Method, system and apparatus for power loss recovery to enable fast erase time | |
US6839798B1 (en) | Flash memory capable of storing frequently rewritten data | |
CN112596668A (zh) | 一种存储器的坏块处理方法及*** | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
JP3646679B2 (ja) | 不揮発性メモリのデータ書き換え方法 | |
JP2003058417A (ja) | 記憶装置 | |
JP4488048B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US6646917B1 (en) | Storage device managing nonvolatile memory by converting logical address to physical address of nonvolatile memory | |
JP5541194B2 (ja) | フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置 | |
JPH07153284A (ja) | 不揮発性半導体記憶装置及びその制御方法 | |
US8200919B2 (en) | Storage device with self-condition inspection and inspection method thereof | |
US10559359B2 (en) | Method for rewriting data in nonvolatile memory and semiconductor device | |
JP2004326523A (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JP2009053950A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2014026511A (ja) | 不揮発性半導体記憶装置の書き込み制御方法およびマイクロコンピュータ | |
JP4580724B2 (ja) | 不揮発性メモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20050118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050131 |
|
LAPS | Cancellation because of no payment of annual fees |