(57)【特許請求の範囲】
【請求項１】
書き換え対象となる論理ブロックを特定するステップと、アドレス変換テーブルにおいて当該論理ブロックに対して当初対応付けられていて消去対象となる物理ブロックを特定するステップと、書き込み対象となる物理ブロックを特定するステップと、書き込み対象となる物理ブロックに対してデータを書き込むステップと、消去対象の物理ブロックのデータを消去するステップと、アドレス変換テーブルにおいて当該論理ブロックに対して書き込み対象となる物理ブロックを対応付けるステップとを有する不揮発性メモリのデータ書き換え方法において、
消去状態にあって書き込み可能な物理ブロックである空きブロックの数を確認する第１のステップと、
乱数を発生させて、複数の空きブロックのなかから１つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第２のステップとを有することを特徴とする不揮発性メモリのデータ書き換え方法。
【請求項２】
空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、
発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定することを特徴とする請求項１記載の不揮発性メモリのデータ書き換え方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリカード等の電子機器に設けられた例えばＮＡＮＤ型フラッシュメモリ等の不揮発性メモリにおいてデータ書き換えが同一の物理ブロックに集中すること等に起因して生じるフラッシュメモリの寿命の短命化を防止するための不揮発性メモリのデータ書き換え方法に係り、特に簡単な処理方式を用いて各物理ブロックに係る書き換え回数を平均化することを可能とする不揮発性メモリのデータ書き換え方法に関するものである。
【０００２】
【従来の技術】
近年、大量のデータを記憶するのに適した低コストのＮＡＮＤ型フラッシュメモリ等の不揮発性メモリが、家電機器、携帯電子機器、メモリカード等の電子機器に幅広く使用されている。図３は、不揮発性メモリの記憶領域に係る論理ブロックと物理ブロックとの関係を示す図である。ＮＡＮＤ型フラッシュメモリで代表される書き換え可能なフラッシュメモリの記憶領域は、ブロック単位で管理され、データの消去（通常は全ビットに対してバイナリデータ“１”を書き込む動作）、データの書き込み等のデータ処理については物理ブロック毎に実施される。
【０００３】
フラッシュメモリをアクセスする際には、例えばＣＰＵに接続されたＲＡＭ内に格納されるアドレス変換テーブルを参照することで、図３に示されるようにデータ処理対象となっている論理ブロックの論理ブロックアドレスを物理ブロックアドレスに変換し、データの消去、書き込み、読み出し等を実施する物理ブロックを特定する。このように論理ブロックアドレスによりアクセスする方式をとることで、欠陥のある物理ブロックが発生した場合に当該欠陥のある物理ブロックに対する処理動作を代替用の別の消去状態にある書き込み可能な物理ブロック（以下、空きブロックと称する）に対して実施しても、アプリケーションプログラム等を実行するＣＰＵ側ではブロック代替の有無に関係なく同一の論理ブロックアドレスを用いてアクセスすることが可能となる。
【０００４】
図４は、従来のフラッシュメモリの物理ブロック内に格納される管理情報に係るデータ構造を示す図である。図４において、１１は通常のデータが記憶されるデータ領域、１２は当該物理ブロックについての管理情報等に係るデータが記憶される冗長領域であり、データ領域１１と冗長領域１２とから物理ブロックが構成される。また、１３は当該冗長領域を有する物理ブロックに対応する論理ブロックのアドレスを記憶する論理ブロックアドレス記憶領域、１４は当該冗長領域を有する物理ブロックに対して消去状態からのデータ書き込みが実施された回数（書き換え回数）を記憶する書き換え回数記憶領域である。なお、論理ブロックアドレス記憶領域１３については、当該物理ブロックについて対応付けられている論理ブロックがない場合には、論理ブロックのアドレスとして使用されることのない所定の値を書き込んでおいて、空きブロックであることを識別可能とするものとする。
【０００５】
図５は、フラッシュメモリを備える従来の電子機器において、例えばＣＰＵ内に接続されるＲＡＭ内に構成されるアドレス変換テーブルの一例を示す図である。図５において、（ａ）はアドレスＬを有する論理ブロックに対してデータの書き換えを実施するに際してデータ書き換え前のアドレス変換テーブルを示し、（ｂ）はデータ書き換え後のアドレス変換テーブルを示す。なお、このようなデータの書き換えに伴うアドレス変換テーブルの更新については後述する。図５（ａ）に示されるように、例えばアドレスＬ−１，Ｌ，Ｌ＋１，Ｌ＋２により特定される論理ブロックには、それぞれ対応する物理ブロックのアドレスＡ，Ｂ，Ｃ，Ｄが記憶されている。図５（ａ）に示されるようなアドレス変換テーブルを参照することで、データ処理対象の論理ブロックに当初対応付けられている物理ブロックを特定することができる。
【０００６】
次に、従来のフラッシュメモリに対して実行されるデータの書き換え動作について説明する。まず、所定の論理ブロックに記憶されたデータに係る書き換え動作の概略的な手順について説明する。なお、ここでは説明を簡単にするために、図３に示されるように、書き換え対象の論理ブロックのアドレスをＬ、当該論理ブロックに対して当初対応付けられていてデータ書き換えに伴って消去対象となる物理ブロック（このように、データ書き換え前に論理ブロックに対して対応付けられていた物理ブロックを、以降の説明において前使用物理ブロックと称するものとする）のアドレスをＢ、また当該論理ブロックに対して新たに対応付けられてデータ書き換えに伴ってデータの書き込み対象となる物理ブロックのアドレスをＰとする。また、以降の説明においては、アドレスｎによりアクセスされる論理ブロックおよび物理ブロックをそれぞれ論理ブロックｎおよび物理ブロックｎとそれぞれ適宜称するものとする。
【０００７】
図６は、所定の論理ブロックに記憶されるデータに係る書き換え方法を示すフローチャートである。第１に、書き換え対象となる論理ブロックＬを特定する（ステップＳ１）。次に、図５（ａ）に示されるように、アドレス変換テーブルを参照して、その時点において論理ブロックＬに対応付けられている前使用物理ブロックのアドレスＢを特定する（ステップＳ２）。次に、フラッシュメモリの各物理ブロックを検索して、空きブロックを検出し当該空きブロックのアドレスＰを特定する（ステップＳ３）。なお、複数の物理ブロックのなかから適切な空きブロックを検出する方法については後述する。このように、書き込み対象の物理ブロックＰおよび消去対象の物理ブロックＢが特定されれば、まず書き込み対象となる物理ブロックＰに対してデータの書き込みを実施する（ステップＳ４）。次に、前使用物理ブロックＢのデータを消去する（ステップＳ５）。そして、図５（ｂ）に示されるように、アドレス変換テーブルにおいて、論理ブロックＬに対応付けられている物理ブロックを物理ブロックＢから物理ブロックＰに変更する（ステップＳ６）ことで、データ書き換え動作を完了する。
【０００８】
次に、複数の物理ブロックのなかから適切な空きブロックを検出する方法について説明する。図７は、適切な空きブロックを検出する方法を示すフローチャートである。まず、書き換え回数最小値に係る初期値の設定を実施する（ステップＳ１１）。この初期値としては、例えば書き換え回数記憶領域１４に記憶することができる最大の数値を設定することが考えられる。次に、概念的には図３に示されるように順次配列された複数の物理ブロックから成る記憶領域について、例えばアドレスについて昇順または降順に一つずつ物理ブロックを取り出して検索対象となる物理ブロックを特定する（ステップＳ１２）。検索対象となる物理ブロックが特定されれば、当該物理ブロックの論理ブロックアドレス記憶領域１３を参照して、当該物理ブロックが既に論理ブロックに対応付けられているか否かすなわち当該物理ブロックが空きブロックであるか否かを判定する（ステップＳ１３）。検索対象となっている物理ブロックが空きブロックである場合には、当該物理ブロックの書き換え回数記憶領域１４を参照して、当該物理ブロックの書き換え回数が書き換え回数最小値より小さいか否かを判定する（ステップＳ１４）。当該物理ブロックの書き換え回数が書き換え回数最小値より小さい場合には、検索対象となっている物理ブロックを書き込み対象の物理ブロックして設定する（ステップＳ１５）とともに、書き換え回数最小値として当該物理ブロックの書き換え回数を設定する（ステップＳ１６）。
【０００９】
ステップＳ１６の処理を終了した後、ステップＳ１３において検索対象となっている物理ブロックが空きブロックでない場合、並びにステップＳ１４において検索対象となっている物理ブロックの書き換え回数が書き換え回数最小値以上である場合には、全ての物理ブロックについて検索が完了したか否かを判定する（ステップＳ１７）。全ての物理ブロックについて検索が完了していない場合には、ステップＳ１２に戻って同様の処理を次の物理ブロックに対して実施する。また、全ての物理ブロックについて検索が完了した場合には、書き込み対象の物理ブロックとして最終的に設定された物理ブロックについて、当該物理ブロックに係る書き換え回数を１つ増分して書き換え回数記憶領域１４に書き込む（ステップＳ１８）。
【００１０】
ＮＡＮＤ型フラッシュメモリ等のフラッシュメモリについては同一の物理ブロックへの書き込みが集中すると素子が劣化するために、上記のような処理を実施することで、各物理ブロックについての書き換え回数を平均化することができて、フラッシュメモリ自体の寿命を延ばすことが可能となる。
【００１１】
【発明が解決しようとする課題】
物理ブロックの書き換え回数を平均化するための従来の空きブロックの検出方法は上記のように構成されているので、各物理ブロック毎に書き換え回数記憶領域を具備させる必要があるとともに、書き換え回数が大きくなった場合にはラップアラウンドに係る処理等を実施する必要が生じるために、メモリの制御システムが複雑になるという課題があった。
【００１２】
この発明は上記のような課題を解決するためになされたもので、ＮＡＮＤ型フラッシュメモリ等の不揮発性メモリを構成する各物理ブロック毎の書き換え回数を簡単な方式を用いて平均化させることができる不揮発性メモリのデータ書き換え方法を得ることを目的とする。
【００１３】
【課題を解決するための手段】
この発明に係る不揮発性メモリのデータ書き換え方法は、消去状態にあって書き込み可能な物理ブロックである空きブロックの数を確認する第１のステップと、乱数を発生させて、複数の空きブロックのなかから１つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第２のステップとを有するようにしたものである。
【００１４】
この発明に係る不揮発性メモリのデータ書き換え方法は、空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定するようにしたものである。
【００１５】
【発明の実施の形態】
以下、添付の図面を参照して本願発明に係る実施の形態を説明する。なお、以下の説明においては、本願発明の実施の形態に記載された各手段および各工程と、特許請求の範囲に記載された発明の各手段および各工程との対応関係を明らかにするために、実施の形態に記載された各手段および各工程にそれぞれ対応する特許請求の範囲に記載された発明の各手段および各工程を適宜かっこ書きにより示すものとする。
【００１６】
実施の形態１．
この発明の実施の形態１においては、フラッシュメモリ（不揮発性メモリ）の記憶領域に係る論理ブロックと物理ブロックとの関係については、従来技術と同様に図３に示されるような関係を有するものとし、フラッシュメモリに記憶されたデータに係る処理を実施するに際しては、ＣＰＵ側からは論理ブロックアドレスによりアクセスする方式をとる。但し、この実施の形態１は、従来技術と比較して、例えば空きブロックのアドレス等として与えられる空きブロック特定情報を順次登録する空きブロック登録テーブルを有する点で差異を有する。図１は、空きブロック登録テーブル等を示す図である。図１において、１は空きブロックの数を記録する空きブロック数カウンタ、２はそれぞれが順次配列された複数の記憶部から構成される空きブロック登録テーブルである。空きブロック数カウンタ１および空きブロック登録テーブル２は、ともに例えばＣＰＵに接続されたＲＡＭ内のワークエリアにおいて構成することが可能である。図１に示されるように、空きブロック数カウンタ１に記憶された空きブロックの数がＮである場合には、空きブロック登録テーブル２におけるアドレス０からアドレス（Ｎ−１）によりアクセス可能な各記憶部にそれぞれ空きブロックのアドレスが記憶される。
【００１７】
次に、この実施の形態１によるメモリ制御方法について説明する。所定の論理ブロックに記憶されたデータに係る書き換え動作は、基本的には図６に示されたフローチャートによる書き換え動作と同様であるので、その説明を省略する。従来技術と本願発明とでは、適切な空きブロックを検出する方法において差異を有している。図２は、この発明の実施の形態１による適切な空きブロックの検出方法を示すフローチャートである。まず、空きブロック数カウンタ１を参照して、その時点においてデータ書き込み可能となっている空きブロックの数を確認する（ステップＳ２１（第１のステップ））。空きブロック数をＮとすると、Ｎ個の空きブロックのなかから適切な空きブロックを選定するように、０から（Ｎ−１）の範囲で乱数を発生させて、空きブロック登録テーブル２において、アクセスするアドレスＭを決定する（ステップＳ２２）。次に、空きブロック登録テーブルのアドレスＭに登録されている物理ブロックのアドレスＰを読み出して、この物理ブロックＰを書き込み対象の物理ブロックとして特定する（ステップＳ２３（第２のステップ））。書き込み対象の物理ブロックＰが特定されれば、空きブロック登録テーブル２におけるアドレスＭの記憶部に、図３に示されるようにこの書き込み動作に伴って消去対象となる物理ブロックのアドレスＢをアドレスＰに代えて書き込む（ステップＳ２４）。なお、書き込み対象の物理ブロックＰが特定された後の処理については、図６に示されるように、書き込み対象の物理ブロックＰにデータを書き込み、前使用物理ブロックＢのデータを消去し、アドレス変換テーブルを更新することでデータの書き換えを完了する。
【００１８】
以上のように、この実施の形態１によれば、空きブロックの数を確認するステップＳ２１と、乱数を発生させて、当該乱数に応じて複数の空きブロックのなかから１つの空きブロックを選定し、選定された空きブロックを書き込み対象となる物理ブロックとして特定するステップＳ２３とを有するように構成したので、フラッシュメモリへのデータの書き換え回数が多くなれば各物理ブロックの書き換え回数も統計的に平均化されることが予測され、書き換え回数記憶領域１４等を必要としない簡単な構成、並びに書き換え回数のカウント処理やラップアラウンド処理等の処理を必要としない簡単な方式によって、各物理ブロックの書き換え回数を平均化させてフラッシュメモリの寿命を延ばすことができるという効果を奏する。
【００１９】
また、空きブロックの数だけ順次配列された記憶部にそれぞれ空きブロックのアドレスを記憶した空きブロック登録テーブル２を設けて、発生された乱数に応じて空きブロック登録テーブル２内のいずれかの記憶部を選定することで書き込み対象となる１つの空きブロックを特定するように構成したので、空きブロックの管理を容易にするとともに、空きブロック数に応じた所定の数値範囲において発生させた乱数を順次配列された記憶部のアドレスに対応付けることで、おおよそ同じ確率での各空きブロックの選定を可能とするシステムを容易に構築することができるという効果を奏する。
【００２０】
なお、上記の実施の形態１による不揮発性メモリのデータ書き換え方法は、本願発明を限定するものではなく、例示することを意図して開示されているものである。本願発明の技術的範囲は特許請求の範囲の記載により定められるものであり、特許請求の範囲に記載された技術的範囲内において種々の設計的変更が可能である。例えば、空きブロック登録テーブルを必ずしも設ける必要はなく、フラッシュメモリの記憶領域を構成する全物理ブロックのアドレス範囲に対応する数値範囲において乱数を発生させて、当該乱数に基づいて得られたアドレスを中心とした近傍領域の物理ブロックを検索して、得られたアドレスに最も近い空きブロックを書き込み対象の物理ブロックとして特定するような方法をとることも可能である。
【００２１】
【発明の効果】
以上のように、この発明によれば、空きブロックの数を確認する第１のステップと、乱数を発生させて、複数の空きブロックのなかから１つの空きブロックを選定し、当該空きブロックを書き込み対象となる物理ブロックとして特定する第２のステップとを有するように構成したので、不揮発性メモリへのデータの書き換え回数が多くなれば各物理ブロックの書き換え回数も統計的に平均化されることが予測され、書き換え回数記憶領域等を必要としない簡単な構成、並びに書き換え回数のカウント処理やラップアラウンド処理等の処理を必要としない簡単な方式によって、各物理ブロックの書き換え回数を平均化させて不揮発性メモリの寿命を延ばすことができるという効果を奏する。
【００２２】
この発明によれば、空きブロックの数だけ順次配列された複数の記憶部から成りそれぞれの記憶部には空きブロックを特定する情報が記憶されている空きブロック登録テーブルを設けて、発生された乱数に応じて、空きブロック登録テーブル内のいずれかの記憶部を選定することで書き込み対象となる空きブロックを特定するように構成したので、空きブロックの管理を容易にするとともに、空きブロック数に応じた所定の数値範囲において発生させた乱数を順次配列された記憶部のアドレスに対応付けることで、おおよそ同じ確率での各空きブロックの選定を可能とするシステムを容易に構築することができるという効果を奏する。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による空きブロック登録テーブル等を示す図である。
【図２】  この発明の実施の形態１による適切な空きブロックの検出方法を示すフローチャートである。
【図３】  不揮発性メモリの記憶領域に係る論理ブロックと物理ブロックとの関係を示す図である。
【図４】  従来の適切な空きブロックの検出方法において用いられる物理ブロック内に格納される管理情報に係るデータ構造を示す図である。
【図５】  アドレス変換テーブルの構造を示す図である。
【図６】  不揮発性メモリで用いられるデータ書き換え方法の概略を示すフローチャートである。
【図７】  適切な空きブロックを検出する従来の方法を示すフローチャートである。
【符号の説明】
１  空きブロック数カウンタ、２  空きブロック登録テーブル、１１  データ領域、１２  冗長領域、１３  論理ブロックアドレス記憶領域、１４  書き換え回数記憶領域
【図１】
0003646679.tif 000002
【図２】
0003646679.tif 000003
【図３】
0003646679.tif 000004
【図４】
0003646679.tif 000005
【図５】
0003646679.tif 000006
【図６】
0003646679.tif 000007
【図７】
0003646679.tif 000008