(57)【要約】【課題】フラッシュメモリへの書込みを繰り返すことにより離散的な空き領域が発生し、新しいデータをその離散領域に書込む際に書込み速度の低下が発生する。【解決手段】ホスト１０２は不揮発性記憶装置１０１からデータの管理単位の情報を得る。次いで管理単位を基にして最適化のグループ単位を決定する。ホスト１０２が、グループ単位毎に空き領域を持たないグループとするか、空き領域だけのグループとなるように最適化処理を行う。【選択図】図７Ｂ
2006252137.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ、及び前記不揮発性メモリをコントロールするコントローラを有する不揮発性記憶装置と、
不揮発性記憶装置に対してデータを書き込み及び読出すホストと、を有する不揮発性記憶システムにおいて、前記ホスト側で行う最適化方法であって、
前記不揮発性記憶装置から前記不揮発性記憶装置内におけるデータの管理単位の情報を得る第１のステップと、
前記管理単位を基にして最適化のグループ単位を決定する第２のステップと、
前記グループ単位毎に空き領域だけのグループの数を多くするように最適化処理を行う第３のステップと、を有する不揮発性記憶装置の最適化方法。
【請求項２】
前記管理単位は、前記不揮発性メモリの消去可能な最小単位の自然数倍と等しい請求項１記載の不揮発性記憶装置の最適化方法。
【請求項３】
前記第２のステップのグループ単位は、前記不揮発性記憶装置の管理単位と等しい請求項１記載の不揮発性記憶装置の最適化方法。
【請求項４】
前記第３のステップは、前記グループ単位毎に空き領域だけのグループの数が一定数以上となるまで継続してデータを移動させることによって最適化処理を行う請求項１記載の不揮発性記憶装置の最適化方法。
【請求項５】
前記第３のステップは、前記グループ単位毎に空き領域が所定の閾値以上のグループの数を多くするように最適化処理を行う請求項１記載の不揮発性記憶装置の最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを使用した不揮発性記憶装置の最適化方法に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載した不揮発性記憶装置、例えばメモリカードは、デジタルカメラや携帯電話のメモリカードとして市場を拡大している。そしてメモリカード容量の増加に伴い、データファイルや静止画等の小容量の記録からより大容量が必要となる動画記録へとその用途は広がっている。
【０００３】
しかし、メモリカードの不揮発性メモリとして主に使用されているＮＡＮＤタイプのフラッシュメモリは、主に１２８ＭＢ（バイト）未満のフラッシュメモリではデータの消去単位となる物理ブロックの容量は１６ＫＢであったが、その容量の増加に伴い主に１２８ＭＢ以上のフラッシュメモリでは１２８ＫＢとなっている。にもかかわらずメモリカードにデータを書込む際のファイルシステムでは、データの書込み単位となるクラスタは１６ＫＢのままで変化していない。
【０００４】
そのために主に１２８ＭＢまでの容量のメモリカードにおいては、メモリカードにデータを書込む際のクラスタの容量と、メモリカード内部に搭載されているＮＡＮＤタイプのフラッシュメモリの消去単位となる物理ブロックの容量はいずれも１６ＫＢと等しかった。しかし大容量化が進むと、具体的には１２８ＭＢ以上の容量の不揮発性メモリからは、メモリカードにデータを書込む単位であるクラスタの容量の１６ＫＢと、メモリカード内部に搭載されているＮＡＮＤタイプのフラッシュメモリの消去単位である物理ブロックの容量の１２８ＫＢとが異なる。そのためにフラッシュメモリへの書込みを繰り返すことによって、離散的な空き領域が発生することがある。離散的な空き領域、即ち既にある物理ブロックに空きの１６ＫＢ分を除いてデータが書込まれている場合には、１クラスタの書込みであっても、１６ＫＢの書込みと１１２ＫＢ（１２８ＫＢ−１６ＫＢ）のデータのコピーによって１物理ブロック１２８ＫＢの書込みを行う必要がある。そのために、１６ＫＢのデータの書込みにもかかわらず、消去単位と等しい１２８ＫＢのデータを書込むときに比べて書込み速度が著しく低下することがある。またメモリカードに頻繁に書換えを繰り返すうちにファイルが離散してしまい、その結果新しく書込むデータは離散的に空いているクラスタに１６ＫＢ単位で書かざるを得なくなる。
【０００５】
そのため慢性的な書込み速度の低下をもたらすという欠点がある。そういったフラッシュメモリの書込まれているデータが離散した状態を解決するために、フラッシュメモリに書込まれているデータを連続領域に集約する最適化処理について特許文献１にも述べられている。
【特許文献１】特開２００２−３１８７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら特許文献１で述べられている方法は、一般的には作成しないブロック管理テーブルを作成して最適化処理を行うために、一般的には使用しにくい。また新しく書込むデータを離散的に記録しなければならないことが書込み速度の低下の主要な原因であるが、既に書込みを行ったデータを集約して書きこみ速度低下を防止するので、不要に処理工数が増えるという欠点がある。
【０００７】
このように従来の不揮発性記憶装置では、フラッシュメモリへの書込みを繰り返すことにより離散的な空き領域が発生し、新しいデータをその離散領域に書込む際に書込み速度の低下が発生していた。
【０００８】
本発明は従来の問題点を解消するためになされたもので、不揮発性記憶装置から管理単位の情報を得ることによって、新たなデータの書き込み時に不要な処理を少なくして書込み速度を向上することを目的とする。
【課題を解決するための手段】
【０００９】
この課題を解決するために、本発明の不揮発性記憶装置の最適化方法は、不揮発性メモリ、及び前記不揮発性メモリをコントロールするコントローラを有する不揮発性記憶装置と、不揮発性記憶装置に対してデータを書き込み及び読出すホストと、を有する不揮発性記憶システムにおいて、前記ホスト側で行う最適化方法であって、前記不揮発性記憶装置から前記不揮発性記憶装置内におけるデータの管理単位の情報を得る第１のステップと、前記管理単位を基にして最適化のグループ単位を決定する第２のステップと、前記グループ単位毎に空き領域だけのグループの数を多くするように最適化処理を行う第３のステップと、を有する。
【００１０】
ここで前記管理単位は、前記不揮発性メモリの消去可能な最小単位の自然数倍と等しくしてもよい。
【００１１】
ここで前記第２のステップのグループ単位は、前記不揮発性記憶装置の管理単位と等しくしてもよい。
【００１２】
ここで前記第３のステップは、前記グループ単位毎に空き領域だけのグループの数が一定数以上となるまで継続してデータを移動させることによって最適化処理を行うようにしてもよい。
【００１３】
ここで前記第３のステップは、前記グループ単位毎に空き領域が所定の閾値以上のグループの数を多くするように最適化処理を行うようにしてもよい。
【発明の効果】
【００１４】
本発明の不揮発性記憶装置の最適化方法によれば、全て空き領域で構成される不揮発性記憶装置の管理単位の数を多くすることができる。そのため新しいデータをその連続した空き領域に書き込む場合に高速に書き込みを行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
本発明の実施の形態における不揮発性記憶装置の書込み方法について図１〜６を用いて説明する。図１は本発明の実施の形態による不揮発性記憶装置と、それにつながるホスト機器について示したブロック図である。本図において不揮発性記憶装置１０１はホスト１０２に接続される。ホスト１０２はデータ及びコマンドを送出し、不揮発性記憶装置１０１にデータを書込み又は読出すものである。不揮発性記憶装置１０１は不揮発性メモリであるフラッシュメモリ１０４と、メモリ１０４をコントロールするコントローラ１０３とからなる。
【００１６】
フラッシュメモリ１０４の一例を図２に示す。本実施の形態のフラッシュメモリ１０４はＰＢ０〜ＰＢ１０２３の合計１０２４個の物理ブロック２０１からなる。各々の物理ブロック２０１はフラッシュメモリ１０４における消去単位であり、夫々１２８ＫＢ（バイト）の容量を持つ。従ってフラッシュメモリ１０４全体では１２８ＭＢの容量を持つこととなる。尚このフラッシュメモリ１０４は１チップで構成されているものとする。
【００１７】
図３はホスト１０２から不揮発性記憶装置１０１を見たときの論理マップを示した図である。５１２Ｂのセクターを単位としてセクタアドレスが０から割り付けされている。セクタアドレス０にはマスターブートレコードがあり、不揮発性記憶装置１０１内におけるパーティションの開始位置やサイズ等の情報が格納されている。以降未使用領域を挟んだパーティションの開始位置には１セクターのパーティションブートレコードが配置される。パーティションブートレコードにはパーティション内のクラスタサイズやＦＡＴのサイズ等の管理情報が格納されている。その直後にファイルアロケーションテーブルＦＡＴ１，ＦＡＴ２が配置される。ＦＡＴ１には、ユーザ領域の空き領域情報やファイルのチェーン情報であるユーザ領域のクラスタ間のリンク情報が格納されている。基本的にＦＡＴ１とＦＡＴ２には同じ情報が格納されている。その直後にルートディレクトリがあり、パーティションのルートディレクトリに含まれるファイルやディレクトリの開始クラスタ位置やサイズ等の管理情報が格納されている。その直後のユーザ領域は１６ＫＢのクラスタを単位として、クラスタアドレス２から順にファイルのデータやサブディレクトリエントリが格納されている。
【００１８】
図４はＦＡＴ１（ＦＡＴ２）に格納されている情報とユーザ領域のデータの関係を示している。図４の左側がＦＡＴ１に格納されているデータを１６ビットのワードを単位として示したものである。ＦＡＴ１の先頭２ワードは０ｘＦ８ＦＦ、０ｘＦＦＦＦの２ワードの固定値が格納されている。従ってＦＡＴ１のなかでユーザ領域の情報が格納されているのは先頭から３ワード目からである。図４ではクラスタ２，３，４にひとつのファイルが格納されている場合についてＦＡＴ１を構成した例について示している。ユーザ領域の先頭クラスタであるクラスタ２に対応するＦＡＴ１の３ワード目には０ｘ０００３が格納されており、ユーザ領域のクラスタ２に記録されているファイルがクラスタ３にリンクして続けて記録されていることを示している。クラスタ３に対応するＦＡＴ１の４ワード目には０ｘ０００４が格納されており、ユーザ領域のクラスタ３に記録されているファイルがクラスタ４にリンクして続けて記録されていることを示している。クラスタ４に対応するＦＡＴ１の５ワード目には０ｘＦＦＦＦが格納されており、ユーザ領域のクラスタ４に記録されているファイルはクラスタ４で終了していることを示している。ユーザ領域のクラスタ５以降に対応するＦＡＴ１の６ワード目以降には０ｘ００００が格納されており、これは対応するクラスタが空き領域であることを示している。
【００１９】
不揮発性記憶装置１０１のデータを記憶するフラッシュメモリ１０４の管理単位は、１チップ構成のフラッシュメモリを用いると、物理ブロックのサイズと等しく、１２８ＫＢである。一方ホスト１０２は１６ＫＢのクラスタ単位でデータを管理するため、不揮発性記憶装置１０１の管理単位とは同じ容量ではない。
【００２０】
次に本実施の形態による最適化処理について説明する。図５はデータの最適化処理の概略を示すフローチャートである。まずユーザからの最適化指示がなされると（ステップＳ１）、ホスト１０２は不揮発性記憶装置１０１を最適化するために、まず不揮発性記憶装置１０１内部におけるデータの管理単位、ここではフラッシュメモリ１０４の消去単位を知る必要がある。そこでまずホスト１０２は不揮発性記憶装置１０１に対して管理単位の通知を要求するコマンドを発行する（ステップＳ２）。コントローラ１０３はそのコマンドに対して管理単位をホスト１０２に通知する。本実施の形態では、不揮発性記憶装置１０１は管理単位が１２８ＫＢであるという情報を通知する。ホスト１０２はその管理単位を基にして、ＦＡＴ１を不揮発性記憶装置１０１の管理単位毎にグループ化する。
【００２１】
ホスト１０２はＦＡＴ１において複数のクラスタを最適化するためのグループ化する単位を決定する（ステップＳ３）。不揮発性記憶装置１０１から通知された管理単位が１２８ＫＢであるので、それをホスト１０２の管理単位であるクラスタの容量１６ＫＢで割った数値がグループを構成するクラスタの個数である。ここでは
１２８ＫＢ÷１６ＫＢ＝８
なので、８個のクラスタでひとつのグループを構成する。即ち本実施の形態では、不揮発性記憶装置１０１の管理単位とホスト１０２のグループ単位は等しい。図６はホストが仮想的にグループ化した一例を示している。即ち、図４の例の論理マップについて、空き領域であるかそれともファイルまたはディレクトリの存在する領域であるかをイメージで示したものであり、ファイルまたはディレクトリの存在する領域をハッチングで示し、空き領域を白色で示している。またひとつのグループを行で示しており、同じ行にあるクラスタは同じグループ、異なる行にあるクラスタは異なるグループであることを示している。図６の場合には、クラスタ０ｘ０００２〜０ｘ０００９の８つのクラスタからなるグループＧ１には、最初の３つのクラスタにのみファイルが存在し、他は空き領域である。又クラスタ０ｘ０００Ａ〜０ｘ００１１の８つのクラスタからなるグループＧ２は、全て空き領域である。以下８クラスタ毎にグループＧ３，Ｇ４・・・とする。
【００２２】
次に図７Ａ，図７Ｂを用いて空き領域が離散している場合の最適化処理（ステップＳ４）について説明する。図７Ａは図６に示したグループ化のイメージで空き領域が離散した状態を示している。図６と同様にファイルまたはディレクトリの存在しているクラスタをハッチングで示し、空き領域のクラスタを白色で示している。つまり、図７ＡではグループＧ１には先頭の３つのクラスタにファイルまたはディレクトリがあり、後ろの５つのクラスタは空き領域である。グループＧ２には先頭の４つのクラスタは空き領域でそれに続く２つのクラスタにファイルまたはディレクトリがあり、後ろの２つのクラスタは空き領域である。
【００２３】
ホスト１０２はこの状態を最適化する際に、空き領域だけのグループの数、またはグループ内における空きクラスタの割合がある閾値以上であるグループの数を多くするように処理を行う。ここでは空き領域だけのグループの数を多くするように最適化する処理について説明する。なお、こういった処理を行うと必然としてグループ単位で空き領域を持たないグループの数を増やすことにつながる。例えばグループＧ１には３つのクラスタにファイルまたはディレクトリがあり、グループＧ２には２つのクラスタにファイルまたはディレクトリがあるので、ファイルまたはディレクトリのあるクラスタの数が多いグループＧ２が空き領域を持たないグループになるように処理を行う。まずグループＧ２にある２つのファイルまたはディレクトリを含むクラスタをグループＧ１に移動し、次にグループＧ１に残された３つの空き領域のクラスタをファイルまたはディレクトリで埋めるために、クラスタ０ｘ００１２〜０ｘ００１９のグループＧ３のファイルまたはディレクトリのクラスタをグループＧ１に移動する。このようにすればグループＧ１は空き領域を持たないグループになり、グループＧ２は空き領域だけのグループになる。以降同様に処理を継続した結果が図７Ｂである。
【００２４】
こうすれば空き領域を持たないグループＧ１，Ｇ４と空き領域だけのグループＧ２，Ｇ３，Ｇ６，Ｇ７がほとんどとなり、空き領域とファイルまたはディレクトリを含むクラスタのグループは０ｘ００２２〜０ｘ００２９のグループＧ５だけとなる。この結果空き領域だけのグループの数が増えるので、この処理後に、新しいファイルを高速に書込むことができる。
【００２５】
以上、本発明の実施の形態によれば、ホスト１０２は不揮発性記憶装置１０１からデータの管理単位の情報を得るだけで、後は一般的に得られるＦＡＴ等のファイルシステム情報を基にして最適化処理を実行することができる。本実施の形態の最適化処理は、離散したファイルを必ずしも連続した領域に再配置する必要がなく、クラスタのグループ単位で空き領域のグループの数を多くするための処理を行うものである。
【００２６】
なお、不揮発性記憶装置１０１におけるデータの管理単位は必ずしもフラッシュメモリ１０４の消去単位（物理ブロック）と等しい必要はない、例えばフラッシュメモリ１０４が複数のメモリチップで構成されている場合には、コントローラ１０３は複数の物理ブロック２０１でひとつの管理単位を構成する。この場合は不揮発性記憶装置１０１からホスト１０２に戻すデータの管理単位もフラッシュメモリ１０４の物理ブロックの容量でなく、複数の物理ブロックの容量が管理単位となる。即ち通常、不揮発性記憶装置の管理単位は不揮発性メモリの物理ブロックの自然数倍と等しい。
【００２７】
また本実施の形態では、不揮発性記憶装置の管理単位とホスト側のグループ単位とを等しくしている。これに代えて、ホスト側では不揮発性記憶装置から得られた管理単位をそのままグループ単位とすることなく、書込みの最適化の目標速度に合わせてグループ化することができる。例えば不揮発性記憶装置から得られた管理単位が１２８ＫＢであっても６４ＫＢを高速で書込みできればよく、その残りの６４ＫＢはコピーしても書込み速度が目標値に達している場合は、６４ＫＢ、即ち４クラスタ分で１グループを構成してもよい。
【００２８】
ここであるグループ単位中に空き領域に設定するクラスタ数を最適化閾値とすると、最適化閾値は１グループのクラスタ数に一致させてもよく、それ以下でもよい。例えば１グループが８クラスタから成る場合に、本実施の形態のように８クラスタの全てが空き領域となるようにデータ移動を行ってもよく、８クラスタ中の任意のクラスタ、例えば７クラスタ，６クラスタ・・・など、任意のクラスタが空き領域となるように、最適化処理を行ってもよい。
【００２９】
更にここで示したクラスタの単位や物理ブロックの容量管理単位などは一例であり、他の容量であっても本発明を適用できることがいうまでもない。
【産業上の利用可能性】
【００３０】
以上のように、本発明による不揮発性記憶装置の最適化方法によれば、最適化処理によって次にデータを書込む際の書込み速度を向上させることができる。従って本発明は音楽データや映像データを取り扱う例えばデジタルカメラやデジタルビデオカメラ等の携帯機器のデータを記憶する記憶装置など、不揮発性メモリを使用した種々の不揮発性記憶装置に適用することができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態における不揮発性記憶装置とホストのブロック図
【図２】本発明の実施の形態におけるフラッシュメモリの詳細図
【図３】本発明の実施の形態における不揮発性記憶装置の論理マップ
【図４】本発明の実施の形態におけるＦＡＴ１とユーザ領域の対応を示す図
【図５】本実施の形態によるデータ最適化処理を示すフローチャート
【図６】本発明の実施の形態におけるＦＡＴ１のグループ化のイメージ図
【図７Ａ】本発明の実施の形態における最適化処理前のクラスタグループのイメージを示す図
【図７Ｂ】本発明の実施の形態における最適化処理後のクラスタグループのイメージを示す図
【符号の説明】
【００３２】
１０１  不揮発性記憶装置
１０２  ホスト
１０３  コントローラ
１０４  フラッシュメモリ
【図１】
2006252137.tif 000003
【図２】
2006252137.tif 000004
【図３】
2006252137.tif 000005
【図４】
2006252137.tif 000006
【図５】
2006252137.tif 000007
【図６】
2006252137.tif 000008
【図７Ａ】
2006252137.tif 000009
【図７Ｂ】
2006252137.tif 000010