(57)【要約】【課題】データＩ／Ｏの回数を最小化してストレージ装置の性能を向上させるためのストレージコントローラを提供する。【解決手段】ストレージコントローラはホストから保存要求されたデータ及び前記データの変更周期を表すライフタイムの情報を受信するホストインターフェースと、前記データのライフタイムの情報に基づいてフラッシュメモリ内で前記データの保存位置を決定するデータ配置ユニットと、を有する。【選択図】図１
2015204118.tif 000002
【特許請求の範囲】
【請求項１】
ホストから保存要求されたデータ及び前記データの変更周期を表すライフタイム（ｌｉｆｅｔｉｍｅ）情報を受信するホストインターフェースと、
前記データのライフタイムの情報に基づいてフラッシュメモリ内で前記データの保存位置を決定するデータ配置ユニットと、を有することを特徴とするストレージコントローラ。
【請求項２】
前記ライフタイムの情報は、前記データの変更周期をその長さによってＮ（但し、Ｎは自然数）個のグレードに分類したライフタイムグレードを含み、
前記データ配置ユニットは、一つのメモリブロックに互いに同じグレードのライフタイムを有するデータのみを保存することを特徴とする請求項１に記載のストレージコントローラ。
【請求項３】
前記ライフタイムグレードは１ないしＮの絶対グレードに定められることを特徴とする請求項２に記載のストレージコントローラ。
【請求項４】
前記ライフタイムグレードは、前記データのライフタイムが長いほど高いグレードに定められることを特徴とする請求項３に記載のストレージコントローラ。
【請求項５】
前記ライフタイムグレードは、前記フラッシュメモリ内に永続的に存在するデータに対する永続的ライフタイムグレードをさらに含むことを特徴とする請求項３に記載のストレージコントローラ。
【請求項６】
前記ライフタイムグレードは、他のデータのライフタイムグレードを基準に相対的に定められることを特徴とする請求項２に記載のストレージコントローラ。
【請求項７】
前記データ配置ユニットは、前記データのライフタイムが短いデータであるほど前記フラッシュメモリ内でウェアレベリングカウント（ｗｅａｒ−ｌｅｖｅｌｉｎｇ  ｃｏｕｎｔ）の値が小さい位置を前記保存位置に決定することを特徴とする請求項１に記載のストレージコントローラ。
【請求項８】
前記フラッシュメモリは第１保存位置及び第２保存位置を含み、
前記第１保存位置のライフタイムが前記第２保存位置のライフタイムより短い場合、ガベージコレクション（ｇａｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）動作は前記第１保存位置に対して優先的に行われることを特徴とする請求項１に記載のストレージコントローラ。
【請求項９】
前記データ配置ユニットは、前記フラッシュメモリに保存されたデータのライフタイムの情報が変更された場合、前記変更されたライフタイムの情報に基づいて前記データの保存位置を再び決定することを特徴とする請求項１に記載のストレージコントローラ。
【請求項１０】
前記フラッシュメモリは、第１メモリブロック及び第２メモリブロックを含み、
前記第１メモリブロックに保存されたデータのライフタイムの情報が変更された場合、前記データを前記第２メモリブロックに移転（ｍｉｇｒａｔｅ）することを特徴とする請求項９に記載のストレージコントローラ。
【請求項１１】
前記変更されたライフタイムの情報は、前記ホストから受信されることを特徴とする請求項９に記載のストレージコントローラ。
【請求項１２】
前記ホストインターフェースを介して受信されたデータのライフタイムを直接評価し、前記データ配置ユニットに送信するライフタイム評価ユニットをさらに有することを特徴とする請求項１に記載のストレージコントローラ。
【請求項１３】
前記ライフタイム評価ユニットは、スナップショット（ｓｎａｐｓｈｏｔ）、クローン（ｃｌｏｎｅ）または重複除去（ｄｅｄｕｐｌｉｃａｔｉｏｎ）作業によって前記データのライフタイムを再評価することを特徴とする請求項１２に記載のストレージコントローラ。
【請求項１４】
前記ライフタイム評価ユニットは、前記データのライフタイム評価時にヒューリスティック法（Ｈｅｕｒｉｓｔｉｃ  ｍｅｔｈｏｄ）を利用することを特徴とする請求項１２に記載のストレージコントローラ。
【請求項１５】
前記データと前記ライフタイムの情報との関連（ｒｅｌａｔｉｏｎｓｈｉｐ）を表すメタデータを管理するメタデータ管理ユニットをさらに有することを特徴とする請求項１に記載のストレージコントローラ。
【請求項１６】
ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュール及びＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュールを含むフラッシュメモリと、
前記フラッシュメモリとインターフェースするフラッシュメモリインターフェースと、
ホストから保存要求されたデータ及び前記データの変更周期を表すライフタイム（ｌｉｆｅｔｉｍｅ）情報を受信するホストインターフェースと、
前記データのライフタイムの情報に基づいて前記ＳＬＣメモリモジュール及び前記ＭＬＣメモリモジュールの中から前記データの保存位置を決定するデータ配置ユニットと、を有することを特徴とするストレージ装置。
【請求項１７】
前記データ配置ユニットは、前記データのライフタイムが予め定められた臨界値を超過する場合、前記ＭＬＣメモリモジュールを前記データの保存位置として決定することを特徴とする請求項１６に記載のストレージ装置。
【請求項１８】
前記フラッシュメモリは、第１タイプのメモリセルを含む第１メモリモジュール及び前記第１タイプと異なる第２タイプのメモリセルを含む第２メモリモジュールを含み、
前記第１メモリモジュールは、前記第２メモリモジュールより高い耐久性（ｅｎｄｕｒａｎｃｅ）を有することを特徴とする請求項１６に記載のストレージ装置。
【請求項１９】
前記メモリモジュールの耐久性は、前記メモリセルの最大データ入出力回数を基準に測定されることを特徴とする請求項１８に記載のストレージ装置。
【請求項２０】
前記第１メモリモジュールに保存されるデータのライフタイムは前記第２メモリモジュールに保存されるライフタイムより短いことを特徴とする請求項１８に記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージコントローラ及びストレージ装置に関し、特にデータＩ／Ｏの回数を最小化してストレージ装置の性能を向上させるためのストレージコントローラ及びストレージ装置に関する。
【背景技術】
【０００２】
フラッシュメモリ装置、例えばＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）はデータ入出力要求に応じて論理ブロックアドレス（ＬＢＡ；Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）を物理ブロックアドレス（ＰＢＡ；Ｐｈｙｓｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）に相互変換したり書き込み（ｗｒｉｔｅ）、読み出し（ｒｅａｄ）、消去（ｅｒａｓｅ）の動作をするコントローラロジックを備え、前記コントローラロジックはＦＴＬ（Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ）を利用して前述した作業を行う。ＳＳＤはデータを保存するための集積回路として半導体メモリセルアレイを有するため、ディスク形態のプラッタが回転する方式であるＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）とは動作方式が異なる。例えば、ＳＳＤで消去動作はフラッシュメモリブロック単位で行われる。しかし、消去動作の回数はフラッシュメモリブロックの寿命に直結しているため、ＳＳＤの寿命に影響を及ぼす。すなわち、ＳＳＤでフラッシュメモリブロックに対する消去回数、すなわち、Ｉ／Ｏ動作回数は限定されている。したがって、ＳＳＤの寿命を延長させるための多様な方案が求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、上記従来のフラッシュメモリ装置における問題点に鑑みてなされたものであって、本発明が解決しようとする課題は、データＩ／Ｏの回数を最小化してストレージ装置の性能を向上させるためのストレージコントローラを提供することにある。
【０００４】
本発明が解決しようとする他の課題は、データＩ／Ｏの回数を最小化してストレージ装置の性能を向上させるためのストレージ装置を提供することにある。
【０００５】
本発明が解決しようとするまた他の課題は、データＩ／Ｏの回数を最小化してストレージ装置の性能を向上させるためのストレージシステムを提供することにある。
【０００６】
本発明が解決しようとするまた他の課題は、データＩ／Ｏの回数を最小化してストレージ装置の性能を向上させるためのストレージコントローラの動作方法を提供することにある。
【０００７】
本発明が解決しようとする課題は、以上で言及した課題に制限されず、言及されていないまた他の課題は次の記載から通常の知識を有する者に明確に理解できるであろう。
【課題を解決するための手段】
【０００８】
前記課題を解決するためになされた本発明のストレージコントローラの一実施形態は、ホストから保存を要求されたデータ及び前記データの変更周期を表すライフタイム（ｌｉｆｅｔｉｍｅ）情報を受信するホストインターフェースと、前記データのライフタイムの情報に基づいてフラッシュメモリ内で前記データの保存位置を定められるデータ配置ユニットと、を有することを特徴とする。
【０００９】
前記ライフタイムの情報は、前記データの変更周期をその長さによってＮ（但し、Ｎは自然数）個のグレードに分類したライフタイムグレードを含み、前記データ配置ユニットは一つのメモリブロックに互いに同じグレードのライフタイムを有するデータのみを保存することが好ましい。
【００１０】
前記ライフタイムグレードは１ないしＮの絶対グレードに定められることが好ましい。
【００１１】
前記ライフタイムグレードは前記データのライフタイムが長いほど高いグレードに決定されることが好ましい。
【００１２】
前記ライフタイムグレードは前記フラッシュメモリ内に永続的に存在するデータに対する永続的ライフタイムグレードをさらに含むことが好ましい。
【００１３】
前記ライフタイムグレードは他のデータのライフタイムグレードを基準に相対的に決定されることが好ましい。
【００１４】
前記データ配置ユニットは前記データのライフタイムが短いデータであるほど前記フラッシュメモリ内でウェアレベリングカウント（ｗｅａｒ−ｌｅｖｅｌｉｎｇ  ｃｏｕｎｔ）の値が小さい位置を前記保存位置として決定することが好ましい。
【００１５】
前記フラッシュメモリは第１保存位置及び第２保存位置を含み、前記第１保存位置のライフタイムが前記第２保存位置のライフタイムより短い場合、ガベージコレクション（ｇａｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）動作は前記第１保存位置に対して優先的に行われることが好ましい。
【００１６】
前記データ配置ユニットは前記フラッシュメモリに保存されたデータのライフタイムの情報が変更された場合、前記変更されたライフタイムの情報に基づいて前記データの保存位置を再び決定することが好ましい。
【００１７】
前記フラッシュメモリは第１メモリブロック及び第２メモリブロックを含み、前記第１メモリブロックに保存されたデータのライフタイムの情報が変更された場合、前記データを前記第２メモリブロックに移動（ｍｉｇｒａｔｅ）することが好ましい。
【００１８】
前記変更されたライフタイムの情報は前記ホストから受信されることが好ましい。
【００１９】
前記ストレージコントローラは前記ホストインターフェースを介して受信されたデータのライフタイムを直接評価し、前記データ配置ユニットに送信するライフタイム評価ユニットをさらに有することが好ましい。
【００２０】
前記ライフタイム評価ユニットはスナップショット（ｓｎａｐｓｈｏｔ）、クローン（ｃｌｏｎｅ）または重複除去（ｄｅｄｕｐｌｉｃａｔｉｏｎ）作業により前記データのライフタイムを再評価することが好ましい。
【００２１】
前記ライフタイム評価ユニットは、前記データのライフタイム評価時にヒューリスティック法（Ｈｅｕｒｉｓｔｉｃ  ｍｅｔｈｏｄ）を利用することが好ましい。
【００２２】
前記ストレージコントローラは、前記データと前記ライフタイムの情報との関連（ｒｅｌａｔｉｏｎｓｈｉｐ）を表すメタデータを管理するメタデータ管理ユニットをさらに有することが好ましい。
【００２３】
前記課題を解決するためになされた本発明のストレージ装置の一実施形態は、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュール及びＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュールを含むフラッシュメモリと、前記フラッシュメモリとインターフェースするフラッシュメモリインターフェースと、ホストから保存を要求されたデータ及び前記データの変更周期を表すライフタイム（ｌｉｆｅｔｉｍｅ）情報を受信するホストインターフェースと、前記データのライフタイムの情報に基づいて前記ＳＬＣメモリモジュール及び前記ＭＬＣメモリモジュールの中から前記データの保存位置を決定するデータ配置ユニットと、を有することを特徴とする。
【００２４】
前記データ配置ユニットは、前記データのライフタイムが予め定められた臨界値を超過する場合、前記ＭＬＣメモリモジュールを前記データの保存位置として決定することが好ましい。
【００２５】
前記フラッシュメモリは、第１タイプのメモリセルを含む第１メモリモジュール及び前記第１タイプと異なる第２タイプのメモリセルを含む第２メモリモジュールを含み、前記第１メモリモジュールは前記第２メモリモジュールより高い耐久性（ｅｎｄｕｒａｎｃｅ）を有することが好ましい。
【００２６】
前記メモリモジュールの耐久性は、前記メモリセルの最大データ入出力回数を基準に測定されることが好ましい。
【００２７】
前記第１メモリモジュールに保存されるデータのライフタイムは前記第２メモリモジュールに保存されるライフタイムより短いことが好ましい。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態によるデータ保存システムを説明するための概略図である。
【図２】本発明の第２の実施形態によるデータ保存システムを説明するための概略図である。
【図３】図２のコントローラを説明するための概略図である。
【図４】データのライフタイムを概念的に説明するための図である。
【図５】互いに異なるライフタイムを有するデータをストレージ装置に配置することを概念的に説明するための図である。
【図６】互いに異なるライフタイムを有するデータをフラッシュメモリブロックに配置することを概念的に説明するための図である。
【図７】互いに異なるライフタイムを有するデータをフラッシュメモリブロックに配置することを概念的に説明するための図である。
【図８】データのライフタイムをメタデータとして管理することを説明するための図である。
【図９】データのライフタイムをメタデータとして管理することを説明するための図である。
【図１０】同一または類似の範囲のライフタイムによってデータをフラッシュメモリブロックに配置した場合を示す図である。
【図１１】本発明の第３の実施形態によるデータ保存システムを説明するための概略図である。
【図１２】図１１に示すデータ保存システムで互いに異なるライフタイムを有するデータをストレージ装置に配置することを概念的に説明するための図である。
【図１３】本発明の第４の実施形態によるデータ保存システムを説明するための概略図である。
【図１４】本発明の第５の実施形態によるデータ保存システムを説明するための概略図である。
【図１５】図１４のコントローラを説明するための概略図である。
【図１６】本発明の第６の実施形態によるデータ保存システムを説明するための概略図である。
【図１７】本発明の第７の実施形態によるデータ保存システムを説明するための概略図である。
【図１８】本発明の第８の実施形態によるデータ保存システムを説明するための概略図である。
【図１９】本発明の一実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。
【図２０】本発明の他の実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。
【図２１】本発明のまた他の実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。
【図２２】ストレージ装置に保存されたデータのキャッシングを概念的に説明するための図である。
【図２３】本発明のまた他の実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２９】
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものであり、本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供するものであり、本発明は、請求項の範囲によってのみ定義される。図面に表示する構成要素のサイズおよび相対的なサイズは説明を明瞭するため、誇張したものであり得る。明細書全体にかけて同一参照符号は同一構成要素を指称し、「および／または」は、言及したアイテムの各々および一つ以上のすべての組合せを含む。
【００３０】
素子（ｅｌｅｍｅｎｔｓ）または層が他の素子または層の「上（ｏｎ）」と指称した場合、他の素子の真上にまたは中間に他の層または他の素子を介在する場合のすべてを含む。明細書全体において、同一の参照符号は同一の構成要素を指称する。反面、素子が「直接の上（ｄｉｒｅｃｔｌｙ  ｏｎ）」または「真上」と指称する場合は、中間に他の素子または層を介在しないことを示す。一つの素子が他の素子と「直接接続された」または「直接カップリングされた」と指称するものは中間に他の素子を介在しないことを示す
【００３１】
空間的に相対的な用語である「下（ｂｅｌｏｗ）」、「下（ｂｅｎｅａｔｈ）」、「下部（ｌｏｗｅｒ）」、「上（ａｂｏｖｅ）」、「上部（ｕｐｐｅｒ）」などは図面に図示するように一つの素子または構成要素と異なる素子または構成要素との相関関係を容易に記述するために使用され得る。空間的に相対的な用語は、図面に図示する方向に加え、使用時または動作時の素子の互いに異なる方向を含む用語として理解しなければならない。例えば、図面に図示する素子を反転する場合、他の素子の「下（ｂｅｌｏｗ）」または「下（ｂｅｎｅａｔｈ）」と記述された素子は他の素子の「上（ａｂｏｖｅ）」に置かれる。したがって、例示的な用語である「下」は下と上の方向をすべて含み得る。素子は他の方向にも配向し得、これにより空間的に相対的な用語は配向により解釈される。
【００３２】
本明細書で使用した用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型は文言で特に言及しない限り複数型も含む。明細書で使用する「含む（ｃｏｍｐｒｉｓｅｓ）」および／または「含む（ｃｏｍｐｒｉｓｉｎｇ）」は言及した構成要素、段階、動作および／または素子は一つ以上の他の構成要素、段階、動作および／または素子の存在または追加を排除しない。
【００３３】
第１、第２などを多様な素子、構成要素を叙述するために使用するが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために使用するものである。したがって、以下で言及する第１構成要素は本発明の技術的思想内で第２構成要素であり得ることは勿論である。
【００３４】
他に定義しなければ、本明細書で使用するすべての用語（技術および科学的用語を含む）は、本発明が属する技術分野で通常の知識を有する者が共通に理解できる意味として使用し得る。また一般に使用される辞典に定義されている用語は明白に特別に定義されていない限り理想的にまたは過度に解釈しない。
【００３５】
図１は、本発明の一実施形態によるデータ保存システムを説明するための概略図である。図１を参照すると、データ保存システム１はホスト１００とストレージ装置２００を含む。
【００３６】
ホスト１００はデータ入出力要求をストレージ装置２００に送信する。前記データ入出力要求はデータの書き込み（ｗｒｉｔｅ）、読み出し（ｒｅａｄ）、消去（ｅｒａｓｅ）などのデータ入出力命令を含み得る。ホスト１００はストレージ装置２００に対する前記データ入出力命令をユーザからの入力や、前記ホスト１００で実行されるソフトウェアから受信できる。
本発明のいくつかの実施形態で、ホスト１００は例えば、デスクトップをはじめとする個人用コンピュータ、サーバコンピュータ、ノートブックをはじめとする携帯用のコンピュータ及び携帯電話、スマートフォン、タブレット、ＭＰ３プレーヤ、ＰＭＰ（ｐｏｒｔａｂｌｅ  ｍｕｌｔｉｍｅｄｉａ  ｐｌａｙｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルカメラ、ビデオカメラなどをはじめとする携帯用装置を含み得る。
【００３７】
ストレージ装置２００はコントローラ２１０及びフラッシュメモリ２２０を含む。本発明のいくつかの実施形態で、ストレージ装置２００はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）であり得る。コントローラ２１０はフラッシュメモリ２２０の全般を制御する。フラッシュメモリ２２０はコントローラ２１０の制御によってデータ入出力動作、例えば、書き込み、読み出し、消去の動作などを行う。
【００３８】
フラッシュメモリ２２０はコントローラ２１０から提供されたデータをメモリセルに保存できる。具体的には、フラッシュメモリ２２０はデータを保存する複数個のセルアレイを含み得る。セルアレイは複数個のプレーン（ＰＬ１〜ＰＬｉ）（但し、ｉは自然数）を含み得る。プレーン（ＰＬ１〜ＰＬｉ）は複数個のブロック（ＢＬＫ１１〜ＢＬＫｎｍ）（但し、ｎ、ｍは自然数）を含み、ブロック（ＢＬＫ１１〜ＢＬＫｎｍ）は複数個のページ（ＰＡＧＥ１〜ＰＡＧＥｋ）（但し、ｋは自然数）を含む。ブロック（ＢＬＫ１１〜ＢＬＫｎｍ）は消去命令を行う単位、すなわち消去動作が同時に行われる単位であり得る。ページ（ＰＡＧＥ１〜ＰＡＧＥｋ）はプログラム及び読み出し命令を行う単位、すなわち、プログラム及び読み出し動作が同時に行われる単位であり得る。
本発明のいくつかの実施形態で、フラッシュメモリ２２０はＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＦＲＡＭ（登録商標）（Ｆｅｒｒｏｅｌｅｃｔｒｉｃｓ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ−ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む不揮発性メモリ装置であり得る。図１では例示的にＮＡＮＤフラッシュメモリ装置を示すが、これに限定されない。
【００３９】
図２は、本発明の第２の実施形態によるデータ保存システムを説明するための概略図である。図３は、図２のコントローラを説明するための概略図である。
図２を参照すると、データ保存システム２でホスト１００はホストメモリ１１０及びライフタイム評価ユニット１２０を含み得る。ホストメモリ１１０はストレージ装置２００に入出力要求をするためのデータを保存するためのメモリ装置として、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｍｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）またはＤＤＲ  ＳＤＲＡＭ  （Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）であり得る。
ライフタイム評価ユニット１２０はホストメモリ１１０から入出力要求されたデータを受信し、受信されたデータのライフタイムを評価する。ここで、ライフタイムとは、データの変更周期を表すものであり、具体的には、データの生成時点を基準にデータの消滅、除去（消去）、無効化される時点までの時間間隔をいうが、これについては図４を参照して詳しく後述する。
ホスト１００は入出力要求されたデータと前記データのライフタイムの情報をストレージ装置２００に送信する。以下では説明の便宜上、入出力要求をデータをストレージ装置２００に保存するための保存要求として説明するが、本発明でデータ入出力要求はこれに限定されない。
【００４０】
ストレージ装置２００のコントローラ２１０は、ホスト１００から保存要求されたデータと、前記データのライフタイムの情報を受信し、受信したライフタイムの情報に基づいてフラッシュメモリ２２０内でデータを保存する保存位置を決定する。図３を共に参照すると、コントローラ２１０は、プロセッサ２１１、ホストインターフェース２１２、データ配置ユニット２１４、ローカルメモリ２１５、フラッシュメモリインターフェース２１６を含む。コントローラ２１０の構成要素（２１１、２１２、２１４、２１５、２１６）はバス（ｂｕｓ）を介して互いに電気的に接続できる。
【００４１】
ホストインターフェース２１２はコントローラ２１０を含むストレージ装置２００とホスト１００との間のインターフェースを行う。特に、ホストインターフェース２１２はホスト１００から保存要求されたデータ及び前記データのライフタイムの情報をコントローラ２１０に提供する。その他、ホストインターフェース２１２は例えば、ホスト１００からロジカルアドレス（ｌｏｇｉｃａｌ  ａｄｄｒｅｓｓ）、コマンドラッチイネーブル（ＣＬＥ）シグナル、アドレスラッチイネーブル（ＡＬＥ）、レディ及びビジー（Ｒ／Ｂ）シグナル、チップイネーブル（ＣＥ）シグナルなどもコントローラ２１０に提供する。
また、ホストインターフェース２１２は予め決定されたプロトコルによってホスト１００と通信できる。例えば、予め決定されたプロトコルはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＰＣＩ  ｅｘｐｒｅｓｓ、ＡＴＡ、ＰＡＴＡ（Ｐａｒａｌｌｅｌ  ＡＴＡ）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）などであり得るが、これに限定されない。
ローカルメモリ２１５はＲＯＭまたはＲＡＭを含み得る。ＲＯＭは、ストレージ装置２００の駆動ファームウェアコードを保存することができ、本発明の範囲はこれに限定されない。ファームウェアコードは、ＲＯＭ以外に不揮発性メモリ、例えば、フラッシュメモリ２２０に保存され得る。一方、ＲＡＭはバッファ（ｂｕｆｆｅｒ）の役割をするメモリとしてホストインターフェース２１２を介して入力される各種命令または変数を保存できる。また、フラッシュメモリ２２０に入力またはフラッシュメモリ２２０から出力されるデータを保存できる。そして、フラッシュメモリ２２０に入出力されるデータ、各種パラメータ及び変数を保存できる。
【００４２】
プロセッサ２１１は、回路、ロジック、コードまたはこれらの組合せで実現することができ、コントローラ２１０を含むストレージ装置２００の動作の全般を制御する。ストレージ装置２００に電源が印加されると、プロセッサ２１１はＲＯＭに保存されたストレージ装置２００の動作のためのファームウェアをＲＡＭ上で駆動させることによってストレージ装置２００の動作の全般を制御できる。また、プロセッサ２１１はホストインターフェース２１２を介して受信される命令を解釈し、解釈結果に応じてフラッシュメモリ２２０の全般の動作を制御できる。また、プロセッサ２１１はアドレスマッピングテーブルを使用し、ホスト１００から提供された論理アドレスをフラッシュメモリ２２０に対応する物理的アドレスにマッピングできる。
【００４３】
フラッシュメモリインターフェース２１６はコントローラ２１０とフラッシュメモリ２２０との間に信号を交信し得る。フラッシュメモリインターフェース２１６を介してプロセッサ２１１が要求する命令がフラッシュメモリ２２０に提供され、またコントローラ２１０からフラッシュメモリ２２０にデータが伝送され得る。また、フラッシュメモリ２２０から出力されるデータはフラッシュメモリインターフェース２１６を介してコントローラ２１０に提供される。
【００４４】
データ配置ユニット２１４はホストインターフェース２１２を介して受信されたデータ及び前記データのライフタイムの情報に基づいてフラッシュメモリ２２０内で前記データの保存位置を決定する。データ配置ユニット２１４の詳しい内容は図６及び図７を参照して後述する。
【００４５】
図４は、データのライフタイムを概念的に説明するための図である。図４を参照すると、時間の流れによって互いに異なる３つのライフタイムを有するデータの変更周期を示している。先ず、第１ライフタイムグレード（ＧＲＡＤＥ１）に該当するデータは生成された（ＣＲＥＡＴＥＤ）後、消去（ＤＥＬＥＴＥＤ）または修正される（ＭＯＤＩＦＩＥＤ）までの時間間隔がｔ１、ｔ２、ｔ３、ｔ４である。また、第２ライフタイムグレード（ＧＲＡＤＥ２）に該当するデータは生成された後、消去または修正されるまでの時間間隔がｔ５、ｔ７であり、これらｔ５、ｔ７は時間間隔ｔ１、ｔ２、ｔ３、ｔ４より長い。したがって、第２ライフタイムグレードに該当するデータは第１ライフタイムグレードに該当するデータより変更周期が長いことが分かる。すなわち、第２ライフタイムグレードに該当するデータのライフタイムは第１ライフタイムグレードに該当するデータのライフタイムより長い。データが修正された後、消去されるまでの時間間隔ｔ６もライフタイムの例として時間間隔ｔ１、ｔ２、ｔ３、ｔ４より長いことが分かる。
同様に、第３ライフグレード（ＧＲＡＤＥ３）に該当するデータは生成された後、消去されるまでの時間間隔がｔ８であり、ｔ８は時間間隔ｔ５、ｔ６、ｔ７よりも長い。したがって、第３ライフタイムグレードに該当するデータは第２ライフタイムグレードに該当するデータより変更周期が長いことが分かる。すなわち、第３ライフタイムグレードに該当するデータのライフタイムは第２ライフタイムグレードに該当するデータのライフタイムより長い。
【００４６】
データの変更周期を表すライフタイムは、変更周期をその長さによってＮ（但し、Ｎは自然数）個のグレードに分類してライフタイムグレードで表す。これによって、データの変更周期が完全に同一ではないが、ある程度類似の長さのライフタイムを有するデータを一つのグループとすることができる。例えば、約１時間ごとに変更されるデータと約１時間１０分ごとに変更されるデータのライフタイムを第１グレードとし、約４時間ごとに変更されるデータと約４時間４０分ごとに変更されるデータのライフタイムを第２グレードとし、約１０時間ごとに変更されるデータのライフタイムを第３グレードとして分類することができる。このように分類することによって、第１グレードのライフタイムは第２グレードのライフタイムより短く、第３グレードのライフタイムは第１グレードのライフタイムより長いなどの比較ができる。
【００４７】
本発明のいくつかの実施形態で、ライフタイムグレードは１ないしＮの絶対グレードに定められ得る。例えば、第１グレードのライフタイムはデータの変更周期が０秒ないし１分である場合、第２グレードのライフタイムはデータの変更周期が１分ないし１０分である場合、第３グレードのライフタイムはデータの変更周期が１０分ないし１時間である場合に定められ得る。
本発明のいくつかの実施形態で、このようなライフタイムグレードはデータのライフタイムが長いほど高いグレードに定められるが、これに限定されない。また、ライフタイムグレードはフラッシュメモリ内に永続的に存在するデータに対する永続的ライフタイムグレードをさらに含んでもよく、変更周期を測定できないデータに対する測定不可グレードもさらに含み得る。
一方、本発明のいくつかの実施形態で、ライフタイムグレードは他のデータのライフタイムグレードを基準に相対的に定められる場合もある。例えば、特定値、例えば３グレードに定められた第１データに対し、「第１データより高いグレード」、「第１データと同一なグレード」または「第１データより低いグレード」に定められる。絶対グレードでも相対グレードでもライフタイムの値は数字、文字、図形またはこれらの組合せで多様に表せるが、これに限定されない。
【００４８】
図５は、互いに異なるライフタイムを有するデータをストレージ装置に配置することを概念的に説明するための図である。図５を参照すると、複数のデータは例えば、高耐久性ストレージ（ＨＩＧＨ  ＥＮＤＵＲＡＮＣＥ  ＳＴＯＲＡＧＥ）２０、中耐久性ストレージ（ＭＩＤ  ＥＮＤＵＲＡＮＣＥ  ＳＴＯＲＡＧＥ）２２及び低耐久性ストレージ（ＬＯＷ  ＥＮＤＵＲＡＮＣＥ  ＳＴＯＲＡＧＥ）２４に保存され得る。ここで、高耐久性ストレージ２０は中耐久性ストレージ２２及び低耐久性ストレージ２４に比べてその寿命が長い。また、中耐久性ストレージ２２は高耐久性ストレージ２０より寿命が短いが、低耐久性ストレージ２４に比べて寿命が長い。
ストレージ装置の寿命に影響を及ぼす要因は様々であり得るが、例えば、ストレージ装置に含まれるメモリセルの寿命に影響を受ける。この場合、メモリセルの寿命、すなわち、メモリセルの耐久性（ｅｎｄｕｒａｎｃｅ）はメモリセルの最大データ入出力回数、例えば、最大消去可能回数を基準に測定され得る。このような統計的数値に基づいてメモリセル間、メモリセルを含むメモリモジュール間、そしてメモリモジュールを含むフラッシュメモリまたはストレージ装置間の耐久性を客観的に比較できる。
【００４９】
したがって、第１グループ（ＧＲＯＵＰ  Ｉ）データのライフタイムが第２グループ（ＧＲＯＵＰ  ＩＩ）データのライフタイムより短く、第２グループデータのライフタイムが第３グループ（ＧＲＯＵＰ  ＩＩＩ）データのライフタイムより短い場合、第１グループデータは高耐久性ストレージ２０に保存され、第２グループデータは中耐久性ストレージ２２に保存され、第３グループデータを低耐久性ストレージ２４に保存され得る。このように、ライフタイムを考慮し、データを様々なストレージ装置に分散保存することによって、ライフタイムが短いため頻繁に変更されＩ／Ｏ回数を顕著に増加させるデータは耐久性が高いストレージ装置に、ライフタイムが長いため、頻繁に変更されずＩ／Ｏ回数を大きく増加させないデータは耐久性が低いストレージ装置に配置し得る。このようにデータを配置することによって、Ｉ／Ｏ回数がストレージ装置の耐久性によって分散され、ストレージ装置の性能を向上させてその寿命を延長できる。
【００５０】
図６及び図７は、互いに異なるライフタイムを有するデータをフラッシュメモリブロックに配置することを概念的に説明するための図である。データ配置ユニット２１４はホストインターフェース２１２を介して受信されたデータ及び前記データのライフタイムの情報に基づいてフラッシュメモリ２２０内で前記データの保存位置を決定する。前述したように、ライフタイムの情報はデータの変更周期をその長さによって様々なグレードに分類したライフタイムグレードを含むが、データ配置ユニット２１４はフラッシュメモリ２２０の一つのメモリブロックに互いに同じグレードのライフタイムを有するデータのみを保存できる。
図６を参照すると、例えばブロック（ＢＬＫ４２）には‘Ｇ１２’のライフタイムを有するデータＤ５、‘Ｇ７’のライフタイムを有するデータＤ６、‘Ｇ３’のライフタイムを有するデータＤ７、‘Ｇ２’のライフタイムを有するデータＤ８が保存されている。この場合、ライフタイムが短いデータ（Ｄ７、Ｄ８）が無効データになったと仮定すると、ブロック（ＢＬＫ４２）にはまだ有効なデータ（Ｄ５、Ｄ６）が存在するため、直ちにブロック（ＢＬＫ４２）を消去することやブロック（ＢＬＫ４２）に対してガベージコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）を行うことができず、これを行うためには残存するデータ（Ｄ５、Ｄ６）を他のブロックに移動させなければならない。すなわち、追加的なＩ／Ｏが必要になる。
【００５１】
これに対し、図７を参照すると、例えばブロック（ＢＬＫ５４）には‘Ｇ１’のライフタイムを有するデータＤ１４、‘Ｇ２’のライフタイムを有するデータＤ８、‘Ｇ１’のライフタイムを有するデータＤ１２、‘Ｇ２’のライフタイムを有するデータＤ１６が保存されている。すなわち、データ配置ユニット２１４が‘Ｇ１’と‘Ｇ２’を同一グレードと見なし、一つのメモリブロック（ＢＬＫ５４）に配置した結果である。この場合、ほぼ同じ時期にすべてのデータ（Ｄ１４、Ｄ８、Ｄ１２、Ｄ１６）が無効データになると、直ちにブロック（ＢＬＫ５４）を消去したりブロック（ＢＬＫ５４）に対してガベージコレクション（ｇａｒｂａｇｅ  ｃｏｌｌｅｃｔｉｏｎ）を行ったりすることができる。
本発明のいくつかの実施形態で、ガベージコレクションはライフタイムが短いブロックに対して優先的に行われ得る。したがって、Ｉ／Ｏ回数を減少させてストレージ装置の性能を向上させ、その寿命を延長し得る。
【００５２】
図８及び図９は、データのライフタイムをメタデータとして管理することを説明するための図である。図８及び図９を参照すると、コントローラ２１０はデータと前記ライフタイムの情報との関連（ｒｅｌａｔｉｏｎｓｈｉｐ）を表すメタデータを管理するメタデータ管理ユニットをさらに含み得る。例えば、論理アドレスが‘２’で識別され、物理的アドレスが‘１９’で識別されるデータブロックにはデータ‘００１０１１１０’が保存され、そのライフタイムは‘７’である場合を仮定する。本発明のいくつかの実施形態で、ライフタイムはフラッシュメモリ２２０の論理アドレス及び物理的アドレスをマッピングするマッピングテーブル２１８のレコードからリンクで連結された（ライフタイム、データ）レコードとして保存され得る。
一方、本発明のいくつかの実施形態で、ライフタイムはフラッシュメモリ２２０の論理アドレス及び物理的アドレスをマッピングするマッピングテーブル２１９のレコードの一部として保存され、前記レコードは前記ライフタイムに対応するデータを指示するリンクを含み得る。メタデータ管理ユニットはこのような資料構造またはデータベースを利用してメタデータを管理できる。
【００５３】
図１０は、同一または類似の範囲のライフタイムによってデータをフラッシュメモリブロックに配置した場合を示す図である。図１０を参照すると、‘１’で識別されるブロックにはライフタイムが‘１’である４個のデータが保存されており、‘３’で識別されるブロックにはライフタイムが‘０’である４個のデータが保存されている。一方、‘２’で識別されるブロックにはライフタイムが‘３’または‘４’の４個のデータが保存されており、‘４’で識別されるブロックにはライフタイムが‘８’または‘９’の４個のデータが保存されている。
本発明のいくつかの実施形態で、データ配置ユニット２１４はデータのライフタイムが短いほど、前記フラッシュメモリ内でウェアレベリングカウント（ｗｅａｒ−ｌｅｖｅｌｉｎｇ  ｃｏｕｎｔ）の値が小さい位置を保存位置として決定する。つまり、ウェアレベル、すなわち、摩耗の程度が少ない位置にはライフタイムが短いためＩ／Ｏが頻繁に発生するデータを配置し、摩耗の進行速度を遅らせ得る。
【００５４】
一方、データ配置ユニット２１４はフラッシュメモリ２２０に保存されたデータのライフタイムの情報が変更された場合、前記変更されたライフタイムの情報に基づいてデータの保存位置を再び決定できる。具体的には、フラッシュメモリ２２０が第１メモリブロック及び第２メモリブロックを含み、第１メモリブロックに保存されたデータのライフタイムの情報が変更された場合、このデータを第２メモリブロックに移転（ｍｉｇｒａｔｅ）できる。
本発明のいくつかの実施形態で、前記変更されたライフタイムの情報はホスト１００から受信され得る。このようにデータを配置することによってデータに対するＩ／Ｏ回数を減少させてフラッシュメモリセルまたはフラッシュメモリの性能を向上させ、その寿命を延長し得る。
【００５５】
図１１は、本発明の第３の実施形態によるデータ保存システムを説明するための概略図である。図１２は、図１１に示すデータ保存システムで互いに異なるライフタイムを有するデータをストレージ装置に配置することを概念的に説明するための図である。
【００５６】
図１１に示すデータ保存システム３が図２のデータ保存システム２と異なる点はフラッシュメモリ２２０が複数のメモリモジュール（２２１、２２２、２２３）を含むという点である。本発明のいくつかの実施形態で、第１メモリモジュール２２１はＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュールであり得、第２メモリモジュール２２２はＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュールであり得る。ここで、ＭＬＣはＴＬＣ（Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）またはＱＬＣ（Ｑｕａｄ  Ｌｅｖｅｌ  Ｃｅｌｌ）を含み得る。ＳＬＣとＭＬＣは耐久性に差があるが、一般的にはＳＬＣメモリがＭＬＣメモリより耐久性が高いため、寿命が長い。このようなメモリモジュールの耐久性はメモリセルの最大データ入出力回数を基準に測定され得る。
【００５７】
データ配置ユニット２１４はホスト１００から受信したライフタイムの情報に基づいて第１メモリモジュール２２１及び第２メモリモジュール２２２の中からデータの保存位置を決定し得る。この際、データ配置ユニット２１４は前記データのライフタイムが予め定められた臨界値を超過する場合、第２メモリモジュール２２２すなわち、ＭＬＣメモリモジュールを前記データの保存位置として決定し、前記データのライフタイムが予め定められた臨界値以下である場合、第１メモリモジュール２２１すなわち、ＳＬＣメモリモジュールを前記データの保存位置として決定し得る。
このようにライフタイムが短いデータを耐久性が相対的に高いＳＬＣメモリモジュールに保存し、ライフタイムが長いデータを耐久性が相対的に低いＭＬＣメモリモジュールに保存することによってフラッシュメモリで発生するＩ／Ｏをメモリモジュールの特性によって分配できる。このようにデータを配置することによってデータに対するＩ／Ｏ回数を減少させてフラッシュメモリセルまたはフラッシュメモリの性能を向上させ、その寿命を延長できる。
【００５８】
図１２を参照すると、ライフタイムが相対的に短いデータはＭＬＣメモリを採用した第１タイプストレージ装置２６に保存され、ライフタイムが相対的に長いデータはＴＬＣメモリを採用した第２タイプストレージ装置２８に保存され得る。ＭＬＣとＴＬＣは耐久性に差があるが、一般的にＭＬＣメモリがＴＬＣメモリより耐久性が高いため、寿命が長い。このようなメモリモジュールの耐久性はメモリセルの最大データ入出力回数を基準に測定され得る。このようにライフタイムが短いデータを耐久性が相対的に高いＭＬＣメモリを採用したストレージ装置に保存し、ライフタイムが長いデータを耐久性が相対的に低いＴＬＣメモリを採用したストレージ装置に保存することによってフラッシュメモリで発生するＩ／Ｏをストレージ装置の特性により分配できる。このようにデータを配置することによってデータに対するＩ／Ｏ回数を減少させてストレージ装置の性能を向上させ、その寿命を延長できる。
【００５９】
図１３は、本発明の第４の実施形態によるデータ保存システムを説明するための概略図である。図１３に示すデータ保存システム４が図２のデータ保存システム２と異なる点は、データ保存システム４はストレージ装置２００の代わりに複数のストレージ装置（３２１、３２２、３２３、３２４）を含むストレージシステム３００を採用している点である。
【００６０】
図１３のデータ保存システム４で、ストレージシステム３００はコントローラ３１０及び複数のストレージ装置（３２１、３２２、３２３、３２４）を含む。コントローラ３１０は複数のストレージ装置（３２１、３２２、３２３、３２４）を制御し、ホスト１００から保存要求されたデータを複数のストレージ装置（３２１、３２２、３２３、３２４）に配置させるデータ配置ユニット３１４を含む。
【００６１】
ここで、複数のストレージ装置（３２１、３２２、３２３、３２４）の耐久性は互いに差があり得る。本発明のいくつかの実施形態で、第１ストレージ装置３２１は第１タイプのメモリセルを含み、前記第１タイプのメモリセルはＳＬＣであり得る。また第２ストレージ装置３２２は第２タイプのメモリセルを含み、前記第２タイプのメモリセルはＭＬＣであり得る。したがって、ストレージノードに使用されるメモリセルの寿命を考慮するとき、第１ストレージ装置３２１は第２ストレージ装置３２２より高い耐久性を有し得る。本発明の多様な実施形態で、複数のストレージ装置（３２１、３２２、３２３、３２４）の間の耐久性の差異はメモリセル以外の様々な要因によって決定される場合もある。
【００６２】
データ配置ユニット３１４はホスト１００から保存要求されたデータ及び前記データのライフタイムの情報に基づいて複数のストレージ装置（３２１、３２２、３２３、３２４）の中から前記データの保存位置を決定する。この場合、データ配置ユニット３１４は第１ストレージ装置３２１に保存されるデータのライフタイムは第２ストレージ装置３２２に保存されるライフタイムより短いようにデータを配置できる。例えば、第１ストレージ装置３２１にはライフタイムが第１グレードに該当するデータを配置し、第２ストレージ装置３２２にはライフタイムが第２グレードに該当するデータを配置し、第３ストレージ装置３２３にはライフタイムが第３グレードに該当するデータを配置し、第４ストレージ装置３２４にはライフタイムが第４グレードに該当するデータを配置できる。
このようにライフタイムが短いデータを耐久性が相対的に高いストレージ装置に保存し、ライフタイムが長いデータを耐久性が相対的に低いストレージ装置に保存することによってフラッシュメモリで発生するＩ／Ｏをストレージ装置の特性によって分配できる。このようにデータを配置することによってデータに対するＩ／Ｏ回数を減少させてストレージ装置の性能を向上させ、その寿命を延長させ得る。
【００６３】
図１４は、本発明の第５の実施形態によるデータ保存システムを説明するための概略図である。図１５は図１４のコントローラを説明するための概略図である。
図１４に示すデータ保存システム５が図２のデータ保存システム２と異なる点は、ホスト４００が保存要求されたデータをストレージ装置５００に伝送し、ストレージ装置５００が直接前記データのライフタイムを評価してデータを配置するという点である。
【００６４】
データ保存システム５でホスト４００はストレージ装置５００に入出力要求をするためのデータを保存するホストメモリ４１０を含み得る。一方、ストレージ装置５００はコントローラ５１０及びフラッシュメモリ５２０を含み、コントローラ５１０はライフタイム評価ユニット５１３を含み得る。
図１５を共に参照すると、ライフタイム評価ユニット５１３はコントローラ５１０の他の構成要素、すなわち、プロセッサ５１１、ホストインターフェース５１２、データ配置ユニット５１４、ローカルメモリ５１５及びフラッシュメモリインターフェース５１６とバスを介して互いに電気的に接続され得る。ライフタイム評価ユニット５１３はホストインターフェース５１２を介して受信されたデータのライフタイムを直接評価し、評価されたライフタイムをデータ配置ユニット５１４に送信する。
ライフタイムの評価はホスト１００のライフタイム評価ユニット１２０と関連して前述したように行われ得る。本発明のいくつかの実施形態で、ライフタイム評価ユニット５１３はスナップショット（ｓｎａｐｓｈｏｔ）、クローン（ｃｌｏｎｅ）または重複除去（ｄｅｄｕｐｌｉｃａｔｉｏｎ）作業によってデータのライフタイムを再評価できる。
また、本発明のいくつかの実施形態で、ライフタイム評価ユニット５１３はデータのライフタイム評価時ヒューリスティック法（Ｈｅｕｒｉｓｔｉｃ  ｍｅｔｈｏｄ）を利用できる。
【００６５】
図１６は、本発明の第６の実施形態によるデータ保存システムを説明するための概略図である。図１６に示すデータ保存システム６が図１４のデータ保存システム５と異なる点はフラッシュメモリ５２０が複数のメモリモジュール５２１、５２２、５２３を含むという点である。
本発明のいくつかの実施形態で、第１メモリモジュール５２１はＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュールであり、第２メモリモジュール５２２はＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）メモリモジュールであり得る。ここで、ＭＬＣはＴＬＣ（Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）またはＱＬＣ（Ｑｕａｄ  Ｌｅｖｅｌ  Ｃｅｌｌ）を含み得る。
【００６６】
データ配置ユニット５１４は、ライフタイム評価ユニット５１３から受信したライフ情報に基づいて、第１メモリモジュール５２１及び第２メモリモジュール５２２の中からデータの保存位置を決定し得る。この際、データ配置ユニット５１４は前記データのライフタイムが予め定められた臨界値を超過する場合、第２メモリモジュール５２２すなわち、ＭＬＣメモリモジュールを前記データの保存位置として決定し、前記データのライフタイムが予め定められた臨界値以下である場合、第１メモリモジュール５２１すなわち、ＳＬＣメモリモジュールを前記データの保存位置として決定し得る。
このようにライフタイムが短いデータを耐久性が相対的に高いＳＬＣメモリモジュールに保存し、ライフタイムが長いデータを耐久性が相対的に低いＭＬＣメモリモジュールに保存することによって、フラッシュメモリで発生するＩ／Ｏをメモリモジュールの特性によって分配できる。このようにデータを配置することによってデータに対するＩ／Ｏ回数を減少させてフラッシュメモリセルまたはフラッシュメモリの性能を向上させ、その寿命を延長できる。
【００６７】
図１７は、本発明の第７の実施形態によるデータ保存システムを説明するための概略図である。図１７に示すデータ保存システム７が図１４のデータ保存システム５と異なる点は、データ保存システム７はストレージ装置５００の代わりに複数のストレージ装置（６２１、６２２、６２３、６２４）を含むストレージシステム６００を採用しているという点である。
【００６８】
図１７のデータ保存システム７で、ストレージシステム６００はコントローラ６１０及び複数のストレージ装置（６２１、６２２、６２３、６２４）を含む。コントローラ６１０は複数のストレージ装置（６２１、６２２、６２３、６２４）を制御し、ホスト４００から保存要求されたデータのライフタイムを評価するライフタイム評価ユニット６１３及び前記ライフタイムに基づいてデータを複数のストレージ装置（６２１、６２２、６２３、６２４）に配置させるデータ配置ユニット６１４を含む。
【００６９】
前述したように、ここで、複数のストレージ装置（６２１、６２２、６２３、６２４）の耐久性は、ストレージ装置に使用されたメモリセルタイプ及びその他の様々な要因によって差があり得る。データ配置ユニット６１４はホスト４００から保存要求されたデータ及びライフタイム評価ユニット６１３によって評価された前記データのライフタイムの情報に基づいて複数のストレージ装置（６２１、６２２、６２３、６２４）の中から前記データの保存位置を決定する。ライフタイムが短いデータを耐久性が相対的に高いストレージ装置に保存し、ライフタイムが長いデータを耐久性が相対的に低いストレージ装置に保存することによってフラッシュメモリで発生するＩ／Ｏをストレージ装置の特性によって分配できる。このようにデータを配置することによってデータに対するＩ／Ｏ回数を減少させてストレージ装置の性能を向上させ、その寿命を延長できる。
【００７０】
図１８は、本発明の第８の実施形態によるデータ保存システムを説明するための概略図である。図１８を参照すると、データ保存システム８はホスト７００及びストレージシステム８００を含む。
【００７１】
データ保存システム８が上記実施形態のデータ保存システムと異なる点は、ホスト７００がホストメモリ７１０、ライフタイム評価ユニット７２０だけでなく、データ配置ユニット７３０をさらに含むという点である。すなわち、ホスト７００がデータと前記データの保存位置をストレージシステム８００に伝送し、ストレージシステム８００がデータを特定位置に保存するようにする。
【００７２】
図２を参照して前述したように、ホストメモリ７１０はストレージシステム８００に入出力要求をするためのデータを保存するためのメモリ装置であり、ライフタイム評価ユニット７２０はホストメモリ７１０から入出力要求されたデータを受信し、受信したデータのライフタイムを評価する。データ配置ユニット７３０は、ライフタイム評価ユニット７２０から受信したライフタイムの情報に基づいてストレージシステム８００内で前記データの保存位置を決定する。本実施形態で、ストレージシステム８００は前述したストレージ装置であるか、複数のストレージ装置が含まれたストレージシステムであり得る。
【００７３】
図１９は、本発明の一実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。図１９を参照すると、本発明の一実施形態によるストレージコントローラの動作方法は、ホストから保存要求されたデータ及び前記データの変更周期を表すライフタイムの情報を受信し（ステップＳ９００）、前記データのライフタイムの情報に基づいてフラッシュメモリ内で前記データの保存位置を決定すること（ステップＳ９１０）を含む。また、前記方法は、前記データを決定された保存位置に保存したり、前記保存位置に保存されているデータを更新したりすること（ステップＳ９２０）、ライフタイムの情報及びアドレスマッピング情報のようなメタデータを更新すること（ステップＳ９３０）をさらに含み得る。
【００７４】
図２０は、本発明の他の実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。図２０を参照すると、本発明の他の実施形態によるストレージコントローラの動作方法は、フラッシュメモリに保存されたデータのライフタイム更新要求を受信し（ステップＳ１０００）、新たなライフタイムの情報によって既存のライフタイムの情報を更新すること（ステップＳ１０１０）を含み得る。前記方法は、ライフタイムの情報を更新した結果、前記データのライフタイムグレードが変更され、他の保存位置に移転する必要があるかを判断し（ステップＳ１０２０）、データの移転が必要な場合、フラッシュメモリ内で新たな保存位置を選定し（ステップＳ１０３０）、新たな保存位置にデータを移転し（ステップＳ１０４０）、ライフタイムの情報及びアドレスマッピング情報のようなメタデータを更新すること（ステップＳ１０５０）をさらに含み得る。
【００７５】
図２１は、本発明のまた他の実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。図２１を参照すると、本発明のまた他の実施形態によるストレージコントローラの動作方法は、ホストから保存要求されたデータ及び前記データの変更周期を表すライフタイムの情報を受信し（ステップＳ１１００）、ライフタイム値を予め定められた臨界値と比較し（ステップＳ１１１０）、ライフタイム値が臨界値を超過しない場合、該当データを高耐久性ストレージに保存し（ステップＳ１１２０）、ライフタイム値が臨界値を超過する場合、該当データを低耐久性ストレージに保存すること（ステップＳ１１３０）を含む。
【００７６】
図２２は、ストレージ装置に保存されたデータのキャッシングを概念的に説明するための図である。図２３は、本発明のまた他の実施形態によるストレージコントローラの動作方法を説明するためのフローチャートである。
【００７７】
図２２を参照すると、前述した本発明の多様な実施形態のストレージシステムは複数のストレージ装置に保存されたデータをキャッシングするためのキャッシュメモリ３０をさらに含み、ストレージシステムのコントローラは前記複数のストレージ装置に保存されたデータをキャッシュメモリ３０にロードできる。
【００７８】
複数のストレージ装置は高速ストレージ装置３２及び低速ストレージ装置３４を含み得る。例えば、低速ストレージ装置３４は高速ストレージ装置３２より低いデータ入出力レートを有し、低速ストレージ装置３４に保存されるライフタイムは高速ストレージ装置３２に保存されるライフタイムより短い場合もある。コントローラは低速ストレージ装置３４に保存されたデータのうち単位時間当たりのデータアクセスの頻度数が予め定められた臨界値を超過した場合、前記臨界値を超過したデータアクセス頻度数を有するデータを前記キャッシュメモリにロードしてキャッシングを行うことができる。
【００７９】
図２３を参照すると、本発明のまた他の実施形態によるストレージコントローラの動作方法は、ホストから保存要求されたデータ及び前記データの変更周期を表すライフタイムの情報を受信し（ステップＳ１２００）、ライフタイム値を予め定められた第１臨界値と比較し（ステップＳ１２１０）、ライフタイム値が第１臨界値を超過しない場合、該当データを高耐久性ストレージに保存し（ステップＳ１２２０）、ライフタイム値が第１臨界値を超過する場合、該当データを低耐久性ストレージに保存すること（ステップＳ１２３０）を含む。次に、低耐久性ストレージに保存されたデータのアクセス頻度数を予め定められた第２臨界値と比較し（ステップＳ１２４０）、前記アクセス頻度数が第２臨界値を超過する場合、該当データをキャッシュに追加保存すること（ステップＳ１２５０）を含み得る。
【００８０】
以上添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野で通常の知識を有する者は、本発明がその技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解できるであろう。したがって、上記実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。
【符号の説明】
【００８１】
１、２、３、４、５、６、７、８    データ保存システム
２０    高耐久性ストレージ
２２    中耐久性ストレージ        
２４    低耐久性ストレージ
２６    第１タイプストレージ装置  
２８    第２タイプストレージ装置
３０    キャッシュメモリ
３２    高速ストレージ装置
３４    低速ストレージ装置
１００、４００、７００    ホスト
１１０、４１０、７１０    ホストメモリ
１２０、５１３、６１３、７２０    ライフタイム評価ユニット
２００、５００    ストレージ装置         
２１０、３１０、５１０、６１０    コントローラ
２１１、５１１    プロセッサ
２１２、５１２    ホストインターフェース
２１４、３１４、５１４、６１４、７３０    データ配置ユニット
２１５、５１５    ローカルメモリ
２１６、５１６    フラッシュメモリインターフェース
２１８、２１９    マッピングテーブル
２２０、５２０    フラッシュメモリ
２２１、５２１    第１メモリモジュール
２２２、５２２    第２メモリモジュール
２２３、５２３    第３メモリモジュール
３００、６００、８００    ストレージシステム
３２１、６２１    第１ストレージ装置
３２２、６２２    第２ストレージ装置
３２３、６２３    第３ストレージ装置
３２４、６２４    第４ストレージ装置
【図１】
2015204118.tif 000003
【図２】
2015204118.tif 000004
【図３】
2015204118.tif 000005
【図４】
2015204118.tif 000006
【図５】
2015204118.tif 000007
【図６】
2015204118.tif 000008
【図７】
2015204118.tif 000009
【図８】
2015204118.tif 000010
【図９】
2015204118.tif 000011
【図１０】
2015204118.tif 000012
【図１１】
2015204118.tif 000013
【図１２】
2015204118.tif 000014
【図１３】
2015204118.tif 000015
【図１４】
2015204118.tif 000016
【図１５】
2015204118.tif 000017
【図１６】
2015204118.tif 000018
【図１７】
2015204118.tif 000019
【図１８】
2015204118.tif 000020
【図１９】
2015204118.tif 000021
【図２０】
2015204118.tif 000022
【図２１】
2015204118.tif 000023
【図２２】
2015204118.tif 000024
【図２３】
2015204118.tif 000025