説明

不揮発性記憶装置の最適化方法

【課題】フラッシュメモリへの書込みを繰り返すことにより離散的な空き領域が発生し、新しいデータをその離散領域に書込む際に書込み速度の低下が発生する。
【解決手段】ホスト102は不揮発性記憶装置101からデータの管理単位の情報を得る。次いで管理単位を基にして最適化のグループ単位を決定する。ホスト102が、グループ単位毎に空き領域を持たないグループとするか、空き領域だけのグループとなるように最適化処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリを使用した不揮発性記憶装置の最適化方法に関する。
【背景技術】
【0002】
近年、不揮発性メモリを搭載した不揮発性記憶装置、例えばメモリカードは、デジタルカメラや携帯電話のメモリカードとして市場を拡大している。そしてメモリカード容量の増加に伴い、データファイルや静止画等の小容量の記録からより大容量が必要となる動画記録へとその用途は広がっている。
【0003】
しかし、メモリカードの不揮発性メモリとして主に使用されているNANDタイプのフラッシュメモリは、主に128MB(バイト)未満のフラッシュメモリではデータの消去単位となる物理ブロックの容量は16KBであったが、その容量の増加に伴い主に128MB以上のフラッシュメモリでは128KBとなっている。にもかかわらずメモリカードにデータを書込む際のファイルシステムでは、データの書込み単位となるクラスタは16KBのままで変化していない。
【0004】
そのために主に128MBまでの容量のメモリカードにおいては、メモリカードにデータを書込む際のクラスタの容量と、メモリカード内部に搭載されているNANDタイプのフラッシュメモリの消去単位となる物理ブロックの容量はいずれも16KBと等しかった。しかし大容量化が進むと、具体的には128MB以上の容量の不揮発性メモリからは、メモリカードにデータを書込む単位であるクラスタの容量の16KBと、メモリカード内部に搭載されているNANDタイプのフラッシュメモリの消去単位である物理ブロックの容量の128KBとが異なる。そのためにフラッシュメモリへの書込みを繰り返すことによって、離散的な空き領域が発生することがある。離散的な空き領域、即ち既にある物理ブロックに空きの16KB分を除いてデータが書込まれている場合には、1クラスタの書込みであっても、16KBの書込みと112KB(128KB−16KB)のデータのコピーによって1物理ブロック128KBの書込みを行う必要がある。そのために、16KBのデータの書込みにもかかわらず、消去単位と等しい128KBのデータを書込むときに比べて書込み速度が著しく低下することがある。またメモリカードに頻繁に書換えを繰り返すうちにファイルが離散してしまい、その結果新しく書込むデータは離散的に空いているクラスタに16KB単位で書かざるを得なくなる。
【0005】
そのため慢性的な書込み速度の低下をもたらすという欠点がある。そういったフラッシュメモリの書込まれているデータが離散した状態を解決するために、フラッシュメモリに書込まれているデータを連続領域に集約する最適化処理について特許文献1にも述べられている。
【特許文献1】特開2002−318714号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら特許文献1で述べられている方法は、一般的には作成しないブロック管理テーブルを作成して最適化処理を行うために、一般的には使用しにくい。また新しく書込むデータを離散的に記録しなければならないことが書込み速度の低下の主要な原因であるが、既に書込みを行ったデータを集約して書きこみ速度低下を防止するので、不要に処理工数が増えるという欠点がある。
【0007】
このように従来の不揮発性記憶装置では、フラッシュメモリへの書込みを繰り返すことにより離散的な空き領域が発生し、新しいデータをその離散領域に書込む際に書込み速度の低下が発生していた。
【0008】
本発明は従来の問題点を解消するためになされたもので、不揮発性記憶装置から管理単位の情報を得ることによって、新たなデータの書き込み時に不要な処理を少なくして書込み速度を向上することを目的とする。
【課題を解決するための手段】
【0009】
この課題を解決するために、本発明の不揮発性記憶装置の最適化方法は、不揮発性メモリ、及び前記不揮発性メモリをコントロールするコントローラを有する不揮発性記憶装置と、不揮発性記憶装置に対してデータを書き込み及び読出すホストと、を有する不揮発性記憶システムにおいて、前記ホスト側で行う最適化方法であって、前記不揮発性記憶装置から前記不揮発性記憶装置内におけるデータの管理単位の情報を得る第1のステップと、前記管理単位を基にして最適化のグループ単位を決定する第2のステップと、前記グループ単位毎に空き領域だけのグループの数を多くするように最適化処理を行う第3のステップと、を有する。
【0010】
ここで前記管理単位は、前記不揮発性メモリの消去可能な最小単位の自然数倍と等しくしてもよい。
【0011】
ここで前記第2のステップのグループ単位は、前記不揮発性記憶装置の管理単位と等しくしてもよい。
【0012】
ここで前記第3のステップは、前記グループ単位毎に空き領域だけのグループの数が一定数以上となるまで継続してデータを移動させることによって最適化処理を行うようにしてもよい。
【0013】
ここで前記第3のステップは、前記グループ単位毎に空き領域が所定の閾値以上のグループの数を多くするように最適化処理を行うようにしてもよい。
【発明の効果】
【0014】
本発明の不揮発性記憶装置の最適化方法によれば、全て空き領域で構成される不揮発性記憶装置の管理単位の数を多くすることができる。そのため新しいデータをその連続した空き領域に書き込む場合に高速に書き込みを行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【0015】
本発明の実施の形態における不揮発性記憶装置の書込み方法について図1〜6を用いて説明する。図1は本発明の実施の形態による不揮発性記憶装置と、それにつながるホスト機器について示したブロック図である。本図において不揮発性記憶装置101はホスト102に接続される。ホスト102はデータ及びコマンドを送出し、不揮発性記憶装置101にデータを書込み又は読出すものである。不揮発性記憶装置101は不揮発性メモリであるフラッシュメモリ104と、メモリ104をコントロールするコントローラ103とからなる。
【0016】
フラッシュメモリ104の一例を図2に示す。本実施の形態のフラッシュメモリ104はPB0〜PB1023の合計1024個の物理ブロック201からなる。各々の物理ブロック201はフラッシュメモリ104における消去単位であり、夫々128KB(バイト)の容量を持つ。従ってフラッシュメモリ104全体では128MBの容量を持つこととなる。尚このフラッシュメモリ104は1チップで構成されているものとする。
【0017】
図3はホスト102から不揮発性記憶装置101を見たときの論理マップを示した図である。512Bのセクターを単位としてセクタアドレスが0から割り付けされている。セクタアドレス0にはマスターブートレコードがあり、不揮発性記憶装置101内におけるパーティションの開始位置やサイズ等の情報が格納されている。以降未使用領域を挟んだパーティションの開始位置には1セクターのパーティションブートレコードが配置される。パーティションブートレコードにはパーティション内のクラスタサイズやFATのサイズ等の管理情報が格納されている。その直後にファイルアロケーションテーブルFAT1,FAT2が配置される。FAT1には、ユーザ領域の空き領域情報やファイルのチェーン情報であるユーザ領域のクラスタ間のリンク情報が格納されている。基本的にFAT1とFAT2には同じ情報が格納されている。その直後にルートディレクトリがあり、パーティションのルートディレクトリに含まれるファイルやディレクトリの開始クラスタ位置やサイズ等の管理情報が格納されている。その直後のユーザ領域は16KBのクラスタを単位として、クラスタアドレス2から順にファイルのデータやサブディレクトリエントリが格納されている。
【0018】
図4はFAT1(FAT2)に格納されている情報とユーザ領域のデータの関係を示している。図4の左側がFAT1に格納されているデータを16ビットのワードを単位として示したものである。FAT1の先頭2ワードは0xF8FF、0xFFFFの2ワードの固定値が格納されている。従ってFAT1のなかでユーザ領域の情報が格納されているのは先頭から3ワード目からである。図4ではクラスタ2,3,4にひとつのファイルが格納されている場合についてFAT1を構成した例について示している。ユーザ領域の先頭クラスタであるクラスタ2に対応するFAT1の3ワード目には0x0003が格納されており、ユーザ領域のクラスタ2に記録されているファイルがクラスタ3にリンクして続けて記録されていることを示している。クラスタ3に対応するFAT1の4ワード目には0x0004が格納されており、ユーザ領域のクラスタ3に記録されているファイルがクラスタ4にリンクして続けて記録されていることを示している。クラスタ4に対応するFAT1の5ワード目には0xFFFFが格納されており、ユーザ領域のクラスタ4に記録されているファイルはクラスタ4で終了していることを示している。ユーザ領域のクラスタ5以降に対応するFAT1の6ワード目以降には0x0000が格納されており、これは対応するクラスタが空き領域であることを示している。
【0019】
不揮発性記憶装置101のデータを記憶するフラッシュメモリ104の管理単位は、1チップ構成のフラッシュメモリを用いると、物理ブロックのサイズと等しく、128KBである。一方ホスト102は16KBのクラスタ単位でデータを管理するため、不揮発性記憶装置101の管理単位とは同じ容量ではない。
【0020】
次に本実施の形態による最適化処理について説明する。図5はデータの最適化処理の概略を示すフローチャートである。まずユーザからの最適化指示がなされると(ステップS1)、ホスト102は不揮発性記憶装置101を最適化するために、まず不揮発性記憶装置101内部におけるデータの管理単位、ここではフラッシュメモリ104の消去単位を知る必要がある。そこでまずホスト102は不揮発性記憶装置101に対して管理単位の通知を要求するコマンドを発行する(ステップS2)。コントローラ103はそのコマンドに対して管理単位をホスト102に通知する。本実施の形態では、不揮発性記憶装置101は管理単位が128KBであるという情報を通知する。ホスト102はその管理単位を基にして、FAT1を不揮発性記憶装置101の管理単位毎にグループ化する。
【0021】
ホスト102はFAT1において複数のクラスタを最適化するためのグループ化する単位を決定する(ステップS3)。不揮発性記憶装置101から通知された管理単位が128KBであるので、それをホスト102の管理単位であるクラスタの容量16KBで割った数値がグループを構成するクラスタの個数である。ここでは
128KB÷16KB=8
なので、8個のクラスタでひとつのグループを構成する。即ち本実施の形態では、不揮発性記憶装置101の管理単位とホスト102のグループ単位は等しい。図6はホストが仮想的にグループ化した一例を示している。即ち、図4の例の論理マップについて、空き領域であるかそれともファイルまたはディレクトリの存在する領域であるかをイメージで示したものであり、ファイルまたはディレクトリの存在する領域をハッチングで示し、空き領域を白色で示している。またひとつのグループを行で示しており、同じ行にあるクラスタは同じグループ、異なる行にあるクラスタは異なるグループであることを示している。図6の場合には、クラスタ0x0002〜0x0009の8つのクラスタからなるグループG1には、最初の3つのクラスタにのみファイルが存在し、他は空き領域である。又クラスタ0x000A〜0x0011の8つのクラスタからなるグループG2は、全て空き領域である。以下8クラスタ毎にグループG3,G4・・・とする。
【0022】
次に図7A,図7Bを用いて空き領域が離散している場合の最適化処理(ステップS4)について説明する。図7Aは図6に示したグループ化のイメージで空き領域が離散した状態を示している。図6と同様にファイルまたはディレクトリの存在しているクラスタをハッチングで示し、空き領域のクラスタを白色で示している。つまり、図7AではグループG1には先頭の3つのクラスタにファイルまたはディレクトリがあり、後ろの5つのクラスタは空き領域である。グループG2には先頭の4つのクラスタは空き領域でそれに続く2つのクラスタにファイルまたはディレクトリがあり、後ろの2つのクラスタは空き領域である。
【0023】
ホスト102はこの状態を最適化する際に、空き領域だけのグループの数、またはグループ内における空きクラスタの割合がある閾値以上であるグループの数を多くするように処理を行う。ここでは空き領域だけのグループの数を多くするように最適化する処理について説明する。なお、こういった処理を行うと必然としてグループ単位で空き領域を持たないグループの数を増やすことにつながる。例えばグループG1には3つのクラスタにファイルまたはディレクトリがあり、グループG2には2つのクラスタにファイルまたはディレクトリがあるので、ファイルまたはディレクトリのあるクラスタの数が多いグループG2が空き領域を持たないグループになるように処理を行う。まずグループG2にある2つのファイルまたはディレクトリを含むクラスタをグループG1に移動し、次にグループG1に残された3つの空き領域のクラスタをファイルまたはディレクトリで埋めるために、クラスタ0x0012〜0x0019のグループG3のファイルまたはディレクトリのクラスタをグループG1に移動する。このようにすればグループG1は空き領域を持たないグループになり、グループG2は空き領域だけのグループになる。以降同様に処理を継続した結果が図7Bである。
【0024】
こうすれば空き領域を持たないグループG1,G4と空き領域だけのグループG2,G3,G6,G7がほとんどとなり、空き領域とファイルまたはディレクトリを含むクラスタのグループは0x0022〜0x0029のグループG5だけとなる。この結果空き領域だけのグループの数が増えるので、この処理後に、新しいファイルを高速に書込むことができる。
【0025】
以上、本発明の実施の形態によれば、ホスト102は不揮発性記憶装置101からデータの管理単位の情報を得るだけで、後は一般的に得られるFAT等のファイルシステム情報を基にして最適化処理を実行することができる。本実施の形態の最適化処理は、離散したファイルを必ずしも連続した領域に再配置する必要がなく、クラスタのグループ単位で空き領域のグループの数を多くするための処理を行うものである。
【0026】
なお、不揮発性記憶装置101におけるデータの管理単位は必ずしもフラッシュメモリ104の消去単位(物理ブロック)と等しい必要はない、例えばフラッシュメモリ104が複数のメモリチップで構成されている場合には、コントローラ103は複数の物理ブロック201でひとつの管理単位を構成する。この場合は不揮発性記憶装置101からホスト102に戻すデータの管理単位もフラッシュメモリ104の物理ブロックの容量でなく、複数の物理ブロックの容量が管理単位となる。即ち通常、不揮発性記憶装置の管理単位は不揮発性メモリの物理ブロックの自然数倍と等しい。
【0027】
また本実施の形態では、不揮発性記憶装置の管理単位とホスト側のグループ単位とを等しくしている。これに代えて、ホスト側では不揮発性記憶装置から得られた管理単位をそのままグループ単位とすることなく、書込みの最適化の目標速度に合わせてグループ化することができる。例えば不揮発性記憶装置から得られた管理単位が128KBであっても64KBを高速で書込みできればよく、その残りの64KBはコピーしても書込み速度が目標値に達している場合は、64KB、即ち4クラスタ分で1グループを構成してもよい。
【0028】
ここであるグループ単位中に空き領域に設定するクラスタ数を最適化閾値とすると、最適化閾値は1グループのクラスタ数に一致させてもよく、それ以下でもよい。例えば1グループが8クラスタから成る場合に、本実施の形態のように8クラスタの全てが空き領域となるようにデータ移動を行ってもよく、8クラスタ中の任意のクラスタ、例えば7クラスタ,6クラスタ・・・など、任意のクラスタが空き領域となるように、最適化処理を行ってもよい。
【0029】
更にここで示したクラスタの単位や物理ブロックの容量管理単位などは一例であり、他の容量であっても本発明を適用できることがいうまでもない。
【産業上の利用可能性】
【0030】
以上のように、本発明による不揮発性記憶装置の最適化方法によれば、最適化処理によって次にデータを書込む際の書込み速度を向上させることができる。従って本発明は音楽データや映像データを取り扱う例えばデジタルカメラやデジタルビデオカメラ等の携帯機器のデータを記憶する記憶装置など、不揮発性メモリを使用した種々の不揮発性記憶装置に適用することができる。
【図面の簡単な説明】
【0031】
【図1】本発明の実施の形態における不揮発性記憶装置とホストのブロック図
【図2】本発明の実施の形態におけるフラッシュメモリの詳細図
【図3】本発明の実施の形態における不揮発性記憶装置の論理マップ
【図4】本発明の実施の形態におけるFAT1とユーザ領域の対応を示す図
【図5】本実施の形態によるデータ最適化処理を示すフローチャート
【図6】本発明の実施の形態におけるFAT1のグループ化のイメージ図
【図7A】本発明の実施の形態における最適化処理前のクラスタグループのイメージを示す図
【図7B】本発明の実施の形態における最適化処理後のクラスタグループのイメージを示す図
【符号の説明】
【0032】
101 不揮発性記憶装置
102 ホスト
103 コントローラ
104 フラッシュメモリ

【特許請求の範囲】
【請求項1】
不揮発性メモリ、及び前記不揮発性メモリをコントロールするコントローラを有する不揮発性記憶装置と、
不揮発性記憶装置に対してデータを書き込み及び読出すホストと、を有する不揮発性記憶システムにおいて、前記ホスト側で行う最適化方法であって、
前記不揮発性記憶装置から前記不揮発性記憶装置内におけるデータの管理単位の情報を得る第1のステップと、
前記管理単位を基にして最適化のグループ単位を決定する第2のステップと、
前記グループ単位毎に空き領域だけのグループの数を多くするように最適化処理を行う第3のステップと、を有する不揮発性記憶装置の最適化方法。
【請求項2】
前記管理単位は、前記不揮発性メモリの消去可能な最小単位の自然数倍と等しい請求項1記載の不揮発性記憶装置の最適化方法。
【請求項3】
前記第2のステップのグループ単位は、前記不揮発性記憶装置の管理単位と等しい請求項1記載の不揮発性記憶装置の最適化方法。
【請求項4】
前記第3のステップは、前記グループ単位毎に空き領域だけのグループの数が一定数以上となるまで継続してデータを移動させることによって最適化処理を行う請求項1記載の不揮発性記憶装置の最適化方法。
【請求項5】
前記第3のステップは、前記グループ単位毎に空き領域が所定の閾値以上のグループの数を多くするように最適化処理を行う請求項1記載の不揮発性記憶装置の最適化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate


【公開番号】特開2006−252137(P2006−252137A)
【公開日】平成18年9月21日(2006.9.21)
【国際特許分類】
【出願番号】特願2005−67250(P2005−67250)
【出願日】平成17年3月10日(2005.3.10)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】