(57)【要約】【課題】データの更新頻度を考慮して、データを合理的に分散して書き込むことにより長寿命化を図る。【解決手段】ＳＳＤ（Solid State  Device）１にデータを書き込む際に、ホスト装置１００が当該データに関する更新頻度情報をＳＳＤ１に通知する。ＳＳＤ１は、更新頻度値が基準値以上であれば、フラッシュメモリ７におけるデータ書換回数が所定回数未満のブロックに当該データを書き込み、更新頻度値が基準値未満であれば、フラッシュメモリ７におけるデータ書換回数が所定回数以上のブロックに当該データを書き込む。【選択図】図１
2011227802.tif 000002
【特許請求の範囲】
【請求項１】
データ記録領域が複数のブロックに区分され、ホスト装置からのデータ書込要求に基づいて所定のブロックにデータが書き込まれるとともに、各ブロック単位でデータの書き換えが行われるデータ記録装置において、
データの書き込みの際に、前記ホスト装置から当該データに関する更新頻度情報を取得し、
前記更新頻度情報に基づいてデータを書き込むブロックを選択し、選択されたブロックに当該データを書き込むことを特徴とするデータ記録装置。
【請求項２】
請求項１に記載のデータ記録装置において、
前記更新頻度情報は、データの属性に応じて算出された更新頻度値であり、
書き込むべきデータの更新頻度値を基準値と比較し、
当該データの更新頻度値が基準値以上である場合は、データの書換回数が所定回数未満のブロックに当該データを書き込み、
当該データの更新頻度値が基準値未満である場合は、データの書換回数が所定回数以上のブロックに当該データを書き込むことを特徴とするデータ記録装置。
【請求項３】
請求項２に記載のデータ記録装置において、
前記更新頻度値は、データの作成主体、データの保存場所、データの拡張子、データの作成日のうちの少なくとも１つに基づいて算出されることを特徴とするデータ記録装置。
【請求項４】
請求項３に記載のデータ記録装置において、
データの作成主体がユーザーである場合の更新頻度値は、作成主体がユーザーでない場合の更新頻度値よりも大きな値であることを特徴とするデータ記録装置。
【請求項５】
請求項３に記載のデータ記録装置において、
データの保存場所がユーザー用または一時保管用の保存場所である場合の更新頻度値は、保存場所がユーザー用および一時保管用の保存場所でない場合の更新頻度値よりも大きな値であることを特徴とするデータ記録装置。
【請求項６】
請求項３に記載のデータ記録装置において、
データの拡張子が文書ファイルまたは表ファイルの拡張子である場合の更新頻度値は、拡張子が文書ファイルおよび表ファイルの拡張子でない場合の更新頻度値よりも大きな値であることを特徴とするデータ記録装置。
【請求項７】
請求項３に記載のデータ記録装置において、
データの作成日が現在から遡って所定期間内である場合の更新頻度値は、作成日が現在から遡って所定期間内でない場合の更新頻度値よりも大きな値であることを特徴とするデータ記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＳＤ（Solid State  Device）のようなデータ記録装置に関する。
【背景技術】
【０００２】
ＳＳＤは、可動部を有しない大容量の半導体メモリ装置であって、データ転送速度が高速でアクセス時間が短いこと、耐衝撃性および耐振動性に優れていること、消費電力が小さいことなどから、従来の磁気ハードディスクドライブ（ＨＤＤ）に代わる新しいデータ記録装置として近年注目されている。
【０００３】
ＳＳＤのデータ記録媒体としては、一般にフラッシュメモリが用いられる。フラッシュメモリには、ＮＡＮＤ型とＮＯＲ型の２種類があるが、ＳＳＤにおいては、高速書き込みが可能で記憶容量の大きいＮＡＮＤ型が用いられる。しかしながら、ＮＡＮＤ型フラッシュメモリでは、記録領域が複数のブロックに区分され、ブロック単位でデータの書き換えが行われるため、同じブロックに対してデータの書き換えが集中すると、そのブロックのメモリセルが度重なる電圧印加によって劣化し、フラッシュメモリの寿命が短くなるという問題がある。
【０００４】
この対策として、データの書き換えが特定のブロックに集中しないように、記録領域全体にわたって書き換えを平準化する手法が知られている。例えば、下記の特許文献１には、ブロック毎に情報の書き換えが可能な情報記録媒体において、ブロックの書換回数を記録する記録領域を設け、書換回数の少ないブロックから書き換えを行うことにより、ブロック間での書換回数のばらつきを抑えることが記載されている。特許文献２には、未使用ブロックの検索順序をローテーションさせることにより、ブロック間での使用頻度の格差を少なくして寿命を延ばすことが記載されている。特許文献３には、同一領域にデータを繰り返し記録することを避けるための循環記録方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−８５６０３号公報
【特許文献２】特開２００３−２７１４３９号公報
【特許文献３】再表２００５−７６２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のデータ書き換えの平準化手法では、データの属性について考慮がされていない。このため、例えば、プログラムファイルのような更新頻度の低いデータが書換回数の少ないブロックに格納されたり、逆に、文書ファイルのような更新頻度の高いデータが書換回数の多いブロックに格納されたりして、記録領域のデータ配置にアンバランスが生じ、これが長寿命化の阻害要因となる可能性がある。
【０００７】
そこで本発明は、データの更新頻度を考慮して、データを合理的に分散して書き込むことにより長寿命化を図ったデータ記録装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では、データ記録領域が複数のブロックに区分され、ホスト装置からのデータ書込要求に基づいて所定のブロックにデータが書き込まれるとともに、各ブロック単位でデータの書き換えが行われるデータ記録装置において、データの書き込みの際に、ホスト装置から当該データに関する更新頻度情報を取得し、この更新頻度情報に基づいてデータを書き込むブロックを選択し、選択されたブロックに当該データを書き込むようにしている。
【０００９】
このようにすると、データの更新頻度に応じて選択されたブロックにデータが書き込まれるので、更新頻度が高い場合は書換回数の少ないブロックにデータを書き込み、更新頻度が低い場合は書換回数の多いブロックにデータを書き込むことができる。したがって、更新頻度に応じて、データを合理的に分散して書き込むことが可能となる。
【００１０】
本発明の好ましい実施形態では、更新頻度情報は、データの属性に応じて算出された更新頻度値であり、書き込むべきデータの更新頻度値を基準値と比較する。そして、当該データの更新頻度値が基準値以上である場合は、データの書換回数が所定回数未満のブロックに当該データを書き込み、当該データの更新頻度値が基準値未満である場合は、データの書換回数が所定回数以上のブロックに当該データを書き込む。
【００１１】
上記の更新頻度値は、データの作成主体、データの保存場所、データの拡張子、データの作成日のうちの少なくとも１つに基づいて算出することができる。
【００１２】
例えば、データの作成主体がユーザーである場合の更新頻度値は、作成主体がユーザーでない場合の更新頻度値よりも大きな値となる。データの保存場所がユーザー用または一時保管用の保存場所である場合の更新頻度値は、保存場所がユーザー用および一時保管用の保存場所でない場合の更新頻度値よりも大きな値となる。データの拡張子が文書ファイルまたは表ファイルの拡張子である場合の更新頻度値は、拡張子が文書ファイルおよび表ファイルの拡張子でない場合の更新頻度値よりも大きな値となる。データの作成日が現在から遡って所定期間内である場合の更新頻度値は、作成日が現在から遡って所定期間内でない場合の更新頻度値よりも大きな値となる。
【発明の効果】
【００１３】
本発明によれば、データの更新頻度を考慮して、データを合理的に分散して書き込むことができるので、記憶領域におけるデータ配置のアンバランスが解消され、装置の長寿命化を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るＳＳＤのブロック図である。
【図２】データ記録領域を示す図である。
【図３】書換回数テーブルを示す図である。
【図４】アドレス変換テーブルを示す図である。
【図５】データ記録の手順を示すフローチャートである。
【図６】更新頻度値の算出手順を示すフローチャートである。
【図７】他の実施形態による更新頻度値の算出手順を示すフローチャートである。
【図８】他の実施形態によるデータ記録の手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明をＳＳＤ（Solid State  Device）に適用した場合の実施形態につき、図面を参照しながら説明する。
【００１６】
最初に、図１〜図４に基づいて、本発明の実施形態に係るＳＳＤの構成について述べる。図１において、ＳＳＤ１は、ＣＰＵ２、ＳＲＡＭ（Static Random Access Memory）３、インターフェイス４、バッファ５、メモリコントローラ６、フラッシュメモリ７から構成される。
【００１７】
ＣＰＵ２は、制御部として、符号３〜６の各部の動作を制御する。ＳＲＡＭ３には、後述する書換回数テーブルやアドレス変換テーブルなどが設けられている。インターフェイス４は、ＰＡＴＡ（Parallel Advanced Technology Attachment）、ＳＡＴＡ（Serial Advanced Technology Attachment）、ＳＣＳＩ（Small Computer System Interface）、ＳＡＳ（Serial Attached SCSI）などからなり、ホスト装置１００との間でデータの授受を行う。バッファ５は、例えばＤＲＡＭ（Dynamic  Random Access Memory）からなり、ホスト装置１００からインターフェイス４を介して送られてくるデータを一時的に格納する。メモリコントローラ６は、バッファ５のデータをフラッシュメモリ７に書き込むための制御を行う。フラッシュメモリ７は、電源切断後も記憶内容が保持される不揮発性メモリであって、複数のＮＡＮＤ型フラッシュメモリから構成される。
【００１８】
図２は、フラッシュメモリ７におけるデータ記録領域を示している。データ記録領域１０は、複数のブロックに区分されており、各ブロックはさらに複数のページ（セクターともいう）から構成される。フラッシュメモリ７にデータを書き込むにあたっては、書き込み先のブロックのデータを一括して消去した後に、新たなデータを書き込む必要がある。この場合、データを消去できる最小単位はブロックであり、各ブロック単位でデータの書き換えが行われることになる。なお、データの読み書きの最小単位はページである。
【００１９】
図３は、ＳＲＡＭ３に設けられている書換回数テーブルを示している。書換回数テーブル２０には、図２のデータ記録領域１０におけるブロックのデータが書き換えられた回数が、ブロック毎に記録される。
【００２０】
図４は、ＳＲＡＭ３に設けられているアドレス変換テーブルを示している。アドレス変換テーブル３０には、フラッシュメモリ７の論理アドレスに対応する物理アドレスが記録される。ホスト装置１００がＳＳＤ１にアクセスする場合、フラッシュメモリ７のページを単位とする論理アドレスで記憶領域が指定される。一方、フラッシュメモリ７の物理アドレスは、論理アドレスに対して固定的に割り当てられたものではなく、データの更新に伴ってダイナミックに割り当てられるようになっている。したがって、データの書き換えが行われるたびに、アドレス変換テーブル３０の内容は更新される。
【００２１】
次に、以上の構成からなるＳＳＤ１におけるデータ記録の詳細について説明する。最初に、本発明の特徴であるデータの更新頻度情報について述べる。
【００２２】
ＳＳＤ１に記録されるデータには、様々な種類のものがあるが、これらの中には、頻繁に更新（書き換え）が行われるものもあれば、ほとんど更新が行われないものもある。
【００２３】
例えば、データの作成主体に着目した場合、ユーザー自身が作成したファイルは更新される可能性が高いが、企業によって作成された実行ファイルなどは更新される可能性が低い。
【００２４】
また、データの保存場所に着目した場合、例えば、Ｌｉｎｕｘ（登録商標）のホームディレクトリ（／ｈｏｍｅ）やテンポラリディレクトリ（／ｔｍｐ）のようなユーザー用または一時保管用の保存場所に保存されるファイルは更新される可能性が高いが、バイナリディレクトリ（／ｂｉｎ）に保存される基本コマンドのファイルなどは更新される可能性が低い。
【００２５】
また、データの拡張子に着目した場合、文書ファイルを表す拡張子「ｄｏｃ」や、表ファイルを表す拡張子「ｘｌｓ」の付いたファイルは更新される可能性が高いが、プログラムファイルを表す拡張子「ｅｘｅ」や、ライブラリファイルを表す拡張子「ｌｉｂ」の付いたファイルは更新される可能性が低い。
【００２６】
そこで、ホスト装置１００では、ＳＳＤ１に書き込むデータ（ファイル）に対して、上述したようなデータの属性に応じた更新頻度値をあらかじめ算出し、データの書込時にこの更新頻度値をＳＳＤ１へ通知する。そして、ＳＳＤ１は、ホスト装置１００から取得した更新頻度値に基づいてデータを書き込むブロックを選択し、当該ブロックにデータを書き込む（詳細は後述）。
【００２７】
図６は、ホスト装置１００において更新頻度値を算出する手順の一例を示したフローチャートである。ステップＳ１１では、更新頻度値Ｚの初期化を行い、Ｚ＝０にする。次のステップＳ１２では、ＳＳＤ１に書き込むデータがユーザーの作成したファイルであるか否かを判定する。ユーザーの作成したファイルであれば（ステップＳ１２：ＹＥＳ）、ステップＳ１３へ進んで、更新頻度値Ｚに１を加算し、Ｚ＝Ｚ＋１とする。その後、ステップＳ１４へ進む。一方、ユーザーの作成したファイルでなければ（ステップＳ１２：ＮＯ）、ステップＳ１３を省略して、ステップＳ１４へ進む。
【００２８】
ステップＳ１４では、ファイルのディレクトリがユーザー用または一時保管用のディレクトリ（例えば、「／ｈｏｍｅ」や「／ｔｍｐ」）であるか否かを判定する。ユーザー用または一時保管用のディレクトリであれば（ステップＳ１４：ＹＥＳ）、ステップＳ１５へ進んで、更新頻度値Ｚに１を加算し、Ｚ＝Ｚ＋１とする。その後、ステップＳ１６へ進む。一方、ユーザー用でも一時保管用でもないディレクトリの場合は（ステップＳ１４：ＮＯ）、ステップＳ１５を省略して、ステップＳ１６へ進む。
【００２９】
ステップＳ１６では、ファイルの拡張子が文書ファイルまたは表ファイルを表す拡張子（例えば、「ｄｏｃ」や「ｘｌｓ」）であるか否かを判定する。文書ファイルまたは表ファイルを表す拡張子であれば（ステップＳ１６：ＹＥＳ）、ステップＳ１７へ進んで、更新頻度値Ｚに１を加算し、Ｚ＝Ｚ＋１とする。その後、処理を終了する。一方、文書ファイルでも表ファイルでもない拡張子の場合は（ステップＳ１６：ＮＯ）、ステップＳ１７を省略して、処理を終了する。
【００３０】
図６の手順によれば、更新頻度値が例えば以下のように算出される。
（１）ファイルがユーザーにより作成され（ステップＳ１２：ＹＥＳ）、ディレクトリがユーザー用または一時保管用のディレクトリであり（ステップＳ１４：ＹＥＳ）、かつ、拡張子が文書ファイルまたは表ファイルの拡張子である場合（ステップＳ１６：ＹＥＳ）は、ステップＳ１３、Ｓ１５、Ｓ１７の演算により、更新頻度値ＺはＺ＝３となる。
（２）ファイルがユーザーにより作成されたものであり（ステップＳ１２：ＹＥＳ）、ディレクトリがユーザー用でも一時保管用でもないディレクトリであり（ステップＳ１４：ＮＯ）、拡張子が文書ファイルまたは表ファイルの拡張子である場合（ステップＳ１６：ＹＥＳ）は、ステップＳ１３、Ｓ１７の演算により、更新頻度値ＺはＺ＝２となる。
（３）ファイルがユーザーにより作成されたものでなく（ステップＳ１２：ＮＯ）、ディレクトリがユーザー用または一時保管用のディレクトリであり（ステップＳ１４：ＹＥＳ）、拡張子が文書ファイルでも表ファイルでもない拡張子の場合（ステップＳ１６：ＮＯ）は、ステップＳ１５の演算により、更新頻度値ＺはＺ＝１となる。
（４）ファイルがユーザーにより作成されたものでなく（ステップＳ１２：ＮＯ）、ディレクトリがユーザー用でも一時保管用でもないディレクトリであり（ステップＳ１４：ＮＯ）、かつ、拡張子が文書ファイルでも表ファイルでもない拡張子の場合（ステップＳ１６：ＮＯ）は、ステップＳ１３、Ｓ１５、Ｓ１７が実行されないため、更新頻度値ＺはＺ＝０となる。
このようにして、データの属性に応じた更新頻度値がホスト装置１００において算出される。
【００３１】
次に、ＳＳＤ１において上述の更新頻度値に基づきデータを記録する手順を、図５のフローチャートに基づいて説明する。本フローチャートの各ステップは、ＣＰＵ２によって実行される。
【００３２】
ステップＳ１では、ホスト装置１００からデータ書込要求を受信する。ステップＳ２では、データ書込要求に続いてホスト装置１００から送信される、論理アドレスと更新頻度値とを受信する。次のステップＳ３では、フラッシュメモリ７のデータ記録領域１０における空き領域をサーチする。
【００３３】
次に、ステップＳ４において、ステップＳ２で受信した更新頻度値を基準値と比較し、更新頻度値が基準値以上か否かを判定する。判定の結果、更新頻度値が基準値以上である場合は（ステップＳ４：ＹＥＳ）、ステップＳ５へ進む。
【００３４】
ステップＳ５では、ステップＳ３で抽出された空き領域のうち、データの書換回数が所定回数未満であるブロックが選択される。当該ブロックが複数ある場合は、最も書換回数の少ないブロックが優先的に選択される。
【００３５】
続くステップＳ６では、ステップＳ５で選択されたブロックにデータが書き込まれる。この書き込みに先立って、当該ブロックのデータは、メモリコントローラ６により一括消去される。また、ステップＳ２で取得した論理アドレスに対応する物理アドレスが、アドレス変換テーブル３０に基づいて抽出され、この物理アドレスに相当するページにおける書換対象以外のデータが、書き込み先のブロックにコピーされる。その後、バッファ５に格納されたデータが、メモリコントローラ６によりフラッシュメモリ７に転送され、書き込み先のブロックに書き込まれる。これによって、当該ブロックのデータが書き換えられるので、書換回数テーブル２０（図３）において、該当するブロックの書換回数に１が加算される。
【００３６】
次に、ステップＳ７において、アドレス変換テーブル３０（図４）を更新する。すなわち、ステップＳ２でホスト装置１００から取得した論理アドレスと、ステップＳ５で選択された書き込み先のブロックの物理アドレスとが対応付けられ、アドレス変換テーブル３０が書き換えられる。
【００３７】
一方、ステップＳ４での判定の結果、更新頻度値が基準値未満の場合は（ステップＳ４：ＮＯ）、ステップＳ８へ進む。
【００３８】
ステップＳ８では、ステップＳ３で抽出された空き領域のうち、データの書換回数が所定回数以上であるブロックが選択される。当該ブロックが複数ある場合は、最も書換回数の多いブロックが優先的に選択される。
【００３９】
その後、ステップＳ６で、選択されたブロックにデータが書き込まれ、ステップＳ７で、アドレス変換テーブル３０が更新されて処理が終了する。
【００４０】
このように、上述した実施形態においては、データの属性に応じて算出された更新頻度値を、ホスト装置１００からＳＳＤ１へ通知し、ＳＳＤ１で更新頻度値に応じたブロックが選択されるようにしている。このため、更新頻度値が大きいデータは、書換回数の少ないブロックに書き込まれ、更新頻度値が小さいデータは、書換回数の多いブロックに書き込まれる。これによって、更新頻度に応じて、データを合理的に分散して書き込むことが可能となり、更新される可能性の低いデータが書換回数の少ないブロックに集中したり、更新される可能性の高いデータが書換回数の多いブロックに集中するのを回避することができる。この結果、フラッシュメモリ７のデータ記憶領域１０にデータがバランスよく配置されるので、フラッシュメモリ７の長寿命化を図ることができる。
【００４１】
本発明では、上述した実施形態以外にも、種々の実施形態を採用することができる。例えば、上記実施形態では、データの属性として、データの作成主体、保存場所、拡張子の３つを例に挙げたが、これ以外の属性としてデータの作成日を追加してもよい。この場合の更新頻度値の算出手順を図７に示す。
【００４２】
図７では、図６のステップＳ１１〜Ｓ１７に加えて、ステップＳ１８、Ｓ１９が追加されている。ステップＳ１８では、データの作成日が現在から遡って所定期間内（例えば１年以内）であるか否かが判定される。データの作成日が所定期間内であれば（ステップＳ１８：ＹＥＳ）、更新される可能性が高いとみてステップＳ１９へ進み、更新頻度値Ｚに１を加算して、Ｚ＝Ｚ＋１とする。その後、処理を終了する。一方、データの作成日が現在から遡って所定期間内でなければ（ステップＳ１８：ＮＯ）、更新される可能性が低いとみてステップＳ１９を省略し、処理を終了する。
【００４３】
データの属性は、上記のような４種類に限らず他の属性を採用してもよい。例えば、データのタイプの点から、実行ファイルか否かにより更新頻度値を区分してもよい（実行ファイルの更新頻度は、他のファイルの更新頻度に比べて低い）。また、複数の属性をすべて採用するのではなく、それらの一部を組み合わせて採用したり、いずれか１つのみを採用してもよい。
【００４４】
また、上記実施形態では、更新頻度値を１つの基準値と比較したが、更新頻度値を複数の基準値と比較してもよい。例えば、基準値が２つの場合のデータ記録手順を図８に示す。
【００４５】
図８では、図５のステップＳ４、Ｓ５、Ｓ８が、ステップＳ４ａ、Ｓ５ａ〜Ｓ５ｃに置き換わっている。ステップＳ４ａでは、データの更新頻度値を基準値α、β（α＞β）と比較し、更新頻度値≧αであれば、更新頻度が高いとみて、ステップＳ５ａで書換回数の少ないブロックを選択する。α＞更新頻度値≧βであれば、更新頻度が中程度とみて、ステップＳ５ｂで書換回数が中程度のブロックを選択する。β＞更新頻度値であれば、更新頻度が低いとみて、ステップＳ５ｃで書換回数の多いブロックを選択する。なお、ステップＳ５ａ〜Ｓ５ｃの書換回数の区分は、あらかじめ定められた２つの閾値に基づいて決められる。
【００４６】
また、上記実施形態では、更新頻度情報として、演算により算出される更新頻度値を採用したが、更新頻度情報は、更新頻度に応じてあらかじめ区分されたランクであってもよい。
【００４７】
さらに、上記実施形態では、本発明をＳＳＤに適用した例を挙げたが、本発明はＳＳＤに限らず、例えばＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）などの半導体メモリ装置にも適用することが可能である。
【産業上の利用可能性】
【００４８】
本発明は、パーソナルコンピュータ、ディスク記録再生装置、デジタルテレビ、デジタルカメラ等に搭載されるデータ記録装置として有用である。
【符号の説明】
【００４９】
１    ＳＳＤ
２    ＣＰＵ
３    ＳＲＡＭ
４    インターフェイス
５    バッファ
６    メモリ制御部
７    フラッシュメモリ
１０  データ記録領域
２０  書換回数テーブル
３０  アドレス変換テーブル
１００  ホスト装置
【図１】
2011227802.tif 000003
【図２】
2011227802.tif 000004
【図３】
2011227802.tif 000005
【図４】
2011227802.tif 000006
【図５】
2011227802.tif 000007
【図６】
2011227802.tif 000008
【図７】
2011227802.tif 000009
【図８】
2011227802.tif 000010