(57)【要約】【課題】大容量データベースの性能を改善し、そしてレイテンシの最小化及び維持費用の節減の２つの目標の均衡をなす装置及び方法を提供する。【解決手段】ソリッドステートドライブが受動ガーベッジコレクションを遂行するように許容するシステム及び方法を示す。ソリッドステートドライブはデータを格納するストレージ及びストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジックを含む。受信回路はホストから構成回路を受信する。構成コマンドは遊休区間及び／又はキュー深さ閾値のような条件を含む。条件ストレージは条件を格納する。状態判別器はソリッドステートドライブの状態を判別する。比較器はソリッドステートドライブの状態を条件と比較して受動ガーベッジコレクションをトリガーするかを判別する。【選択図】図１
2017168088.tif 000002
【特許請求の範囲】
【請求項１】
ソリッドステートドライブ（ＳＳＤ）において、
データのためのストレージと、
前記ストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジックと、
遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンド及びデータ要請を受信する受信回路と、
前記条件を格納する条件ストレージと、
前記ソリッドステートドライブの状態を判別する状態判別器と、
前記条件と前記ソリッドステートドライブの状態とを比較する比較器と、を含むことを特徴とするソリッドステートドライブ。
【請求項２】
前記比較器が前記ソリッドステートドライブの前記状態が前記条件を満足することを示すと、前記ガーベッジコレクションロジックが前記ストレージにおいてガーベッジコレクションを遂行するようにトリガーするトリガー回路をさらに含むことを特徴とする請求項１に記載のソリッドステートドライブ。
【請求項３】
前記トリガー回路は、前記比較器が前記ソリッドステートドライブの状態が前記条件を満足し、そして前記ソリッドステートドライブの自由消去ブロックの数が閾値より低いことを示すと、前記ガーベッジコレクションロジックが前記ストレージにおいてガーベッジコレクションを遂行するようにトリガーすることを特徴とする請求項２に記載のソリッドステートドライブ。
【請求項４】
前記条件は、遊休区間を含み、前記状態判別器は、前記ソリッドステートドライブに対する遊休時間を判別し、前記比較器は、前記ソリッドステートドライブに対する遊休時間を前記遊休区間と比較することを特徴とする請求項１に記載のソリッドステートドライブ。
【請求項５】
前記条件は、キュー深さ閾値を含み、前記状態判別器は、前記ソリッドステートドライブに対するコマンドキュー深さを判別し、前記比較器は、前記ソリッドステートドライブに対する前記コマンドキュー深さを前記キュー深さ閾値と比較することを特徴とする請求項１に記載のソリッドステートドライブ。
【請求項６】
前記状態判別器は、複数の深さから前記ソリッドステートドライブに対する前記コマンドキュー深さを判別することを特徴とする請求項５に記載のソリッドステートドライブ。
【請求項７】
前記状態判別器は、前記コマンドキュー深さを前記複数の深さの平均（ａｖｅｒａｇｅ）として計算することを特徴とする請求項６に記載のソリッドステートドライブ。
【請求項８】
前記状態判別器は、前記コマンドキュー深さを前記複数の深さの最大として計算することを特徴とする請求項６に記載のソリッドステートドライブ。
【請求項９】
前記状態判別器は、前記コマンドキュー深さを前記複数の深さの合計として計算することを特徴とする請求項６に記載のソリッドステートドライブ。
【請求項１０】
前記状態判別器は、前記コマンドキュー深さを前記複数の深さの中央値（ｍｅｄｉａｎ）として計算することを特徴とする請求項６に記載のソリッドステートドライブ。
【請求項１１】
前記状態判別器は、前記コマンドキュー深さを前記複数の深さの最小として計算することを特徴とする請求項６に記載のソリッドステートドライブ。
【請求項１２】
ガーベッジコレクションを遂行する方法において、
ソリッドステートドライブ（ＳＳＤ）が、
遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階と、
前記条件を前記ソリッドステートドライブに格納する段階と、
前記ソリッドステートドライブにおいてガーベッジコレクションを遂行するために前記条件を利用する段階と、を含むことを特徴とするガーベッジコレクションを遂行する方法。
【請求項１３】
前記条件を利用して前記ソリッドステートドライブにおいてガーベッジコレクションを遂行する段階は、
前記ソリッドステートドライブの状態をモニターする段階と、
前記ソリッドステートドライブの状態を前記条件と比較する段階と、
前記ソリッドステートドライブの状態が前記条件を満足すれば、前記ソリッドステートドライブにおいてガーベッジコレクションを遂行する段階と、を含むことを特徴とする請求項１２に記載のガーベッジコレクションを遂行する方法。
【請求項１４】
前記ソリッドステートドライブにおいて遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階は、前記ソリッドステートドライブにおいて前記遊休区間を含む前記構成コマンドを受信する段階を含み、
前記ソリッドステートドライブの状態をモニターする段階は、前記ソリッドステートドライブに対する遊休時間を追跡する段階を含み、
前記ソリッドステートドライブの状態を前記条件と比較する段階は、前記ソリッドステートドライブに対する遊休時間を前記遊休区間と比較する段階を含むことを特徴とする請求項１３に記載のガーベッジコレクションを遂行する方法。
【請求項１５】
前記ソリッドステートドライブにおいて遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階は、前記キュー深さ閾値を含む前記構成コマンドを受信する段階を含み、
前記ソリッドステートドライブの状態をモニターする段階は、前記ソリッドステートドライブに対するコマンドキュー深さを判別する段階を含み、
前記ソリッドステートドライブの状態を前記条件と比較する段階は、前記キュー深さ閾値を前記ソリッドステートドライブに対する前記コマンドキュー深さと比較する段階を含むことを特徴とする請求項１３に記載のガーベッジコレクションを遂行する方法。
【請求項１６】
前記ソリッドステートドライブの状態をモニターする段階は、前記ソリッドステートドライブに対するコマンドキュー深さを判別する段階を含み、
前記ソリッドステートドライブに対するコマンドキュー深さを判別する段階は、
複数のコマンドキューに対する複数の深さを判別する段階と、
前記複数の深さから前記コマンドキュー深さを判別する段階と、を含むことを特徴とする請求項１３に記載のガーベッジコレクションを遂行する方法。
【請求項１７】
前記複数の深さから前記コマンドキュー深さを判別する段階は、前記コマンドキュー深さを前記複数の深さの全ての中央値として計算する段階を含むことを特徴とする請求項１６に記載のガーベッジコレクションを遂行する方法。
【請求項１８】
前記ソリッドステートドライブの状態が前記条件を満足すれば、前記ソリッドステートドライブにおいてガーベッジコレクションを遂行する段階は、前記ソリッドステートドライブの状態が前記条件を満足し、そして前記ソリッドステートドライブの自由消去ブロックの数が閾値より低い場合、前記ソリッドステートドライブにおいてガーベッジコレクションを遂行する段階を含むことを特徴とする請求項１３に記載のガーベッジコレクションを遂行する方法。
【請求項１９】
ホストから命令を受信してガーベッジコレクションを遂行する段階をさらに含むことを特徴とする請求項１２に記載のガーベッジコレクションを遂行する方法。
【請求項２０】
有形の（ｔａｎｇｉｂｌｅ）ストレージ媒体を含む物品であって、
前記ストレージ媒体は、それに格納された非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）命令を含み、前記非一時的命令が実行されれば、その結果としてソリッドステートドライブ（ＳＳＤ）において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信し、
前記ソリッドステートドライブに前記条件を格納し、
前記条件を利用して前記ソリッドステートドライブにおいてガーベッジコレクションを遂行することを特徴とするストレージ媒体を含む物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅｓ、ＳＳＤｓ）ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品に係り、より詳しくは、ガーベッジコレクションを遂行するソリッドステートドライブ及びソリッドステートドライブがガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品に関する。
【背景技術】
【０００２】
ガーベッジコレクションはソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅｓ、ＳＳＤｓ）において通常的に発生する。ＳＳＤが自由消去ブロックを使い果たした時に、ＳＳＤはガーベッジコレクション（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎ、ＧＣ）を遂行して新しい書込みに使用するための新しい消去ブロックを確保する。書込み／読出しは該当要請がサービスされる前にガーベッジコレクションが完了されるまで待機しなければならないので、ガーベッジコレクションはＳＳＤの読出し／書込み性能を遅くする。ストレージ知能のような特性はホスト開始ガーベッジコレクションによりこのような問題の解消を助ける。しかし、これはガーベッジコレクションを開始するためにホストがガーベッジコレクションコマンドを発行し、装置に知らせることを必要とする。
大容量データベースの性能を改善し、そしてレイテンシの最小化及び維持費用の節減の２つの目標の均衡をなす方法に対する要求が存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は大容量データベースの性能を改善し、そしてレイテンシの最小化及び維持費用の節減の２つの目標の均衡をなす装置及び方法を提供することにある。
【課題を解決するための手段】
【０００４】
本発明の実施形態に係るソリッドステートドライブ（ＳＳＤ）はデータのためのストレージ、ストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジック、遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンド及びデータ要請を受信する受信回路、条件を格納する条件ストレージ、ソリッドステートドライブの状態を判別する状態判別器、及び条件とソリッドステートドライブの状態とを比較する比較器を含む。
【０００５】
本発明の実施形態に係るガーベッジコレクションを遂行する方法はソリッドステートドライブ（ＳＳＤ）が、遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、条件をソリッドステートドライブに格納する段階、及び条件を利用してソリッドステートドライブにおいてガーベッジコレクションを遂行する段階を含む。
【０００６】
本発明の実施形態に係る物品は、物品は有形のストレージ媒体を含み、前記格納媒体はそれに格納された非一時的命令を含み、非一時的命令が実行されれば、その結果としてソリッドステートドライブ（ＳＳＤ）において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、ソリッドステートドライブに条件を格納する段階、及び条件を利用してソリッドステートドライブにおいてガーベッジコレクションを遂行する段階が誘発される。
【発明の効果】
【０００７】
本発明によれば、ソリッドステートドライブ（ＳＳＤ）の受動ガーベッジコレクションは構成コマンドによって実行時期が制御される。構成コマンドは使用者によって構成される。したがって、ＳＳＤは改善され、レイテンシの最小化及び維持費用の節減の２つの目標の均衡をなすＳＳＤ装置及び方法が提供される。
【図面の簡単な説明】
【０００８】
【図１】本発明の技術的思想の実施形態に係る受動ガーベッジコレクションを遂行するように構成されたソリッドステートドライブを含むシステムを示す。
【図２】図１のコンピュータの追加的な詳細を示す。
【図３】受動ガーベッジコレクションを遂行するように構成された図１のソリッドステートドライブの詳細を示す。
【図４】構成コマンドに続いてデータ要請を図１のソリッドステートドライブに伝送する図１のシステムを示す。
【図５】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブがどのぐらい長く遊休状態であったかに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図３の比較器を示す。
【図６】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブのキュー深さに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図３の比較器を示す。
【図７】図１のソリッドステートドライブが多重コマンドキューを含む時に図１のソリッドステートドライブのキュー深さを判別する図３の状態判別器を示す。
【図８】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブにおいて背景ガーベッジコレクションを管理するための手続を示す順序図である。
【図９】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブにおいて背景ガーベッジコレクションを管理するための手続を示す順序図である。
【図１０】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブが受動ガーベッジコレクションを遂行するためにどのようにして構成されるかの例示的な手続の順序図である。
【図１１】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブが遊休時間を利用して、そして選択的に自由ブロックカウントを利用して図１のソリッドステートドライブが受動ガーベッジコレクションをいつ遂行するかを判別する例示的な手続の順序図である。
【図１２】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブがキュー深さを利用して、そして選択的に自由ブロックカウントを利用して図１のソリッドステートドライブが受動ガーベッジコレクションをいつ遂行するかを判別する例示的な手続の順序図である。
【図１３】本発明の技術的思想の実施形態に係る図１のソリッドステートドライブが多重コマンドキューを含む時に図３の状態判別器が図１のソリッドステートドライブのキュー深さを判別する例示的な手続の順序図である。
【発明を実施するための形態】
【０００９】
本発明の技術的思想の実施形態を参照し、その例を添付した図面に示す。後述する詳細な説明において、多様、特定な詳細を本発明の技術的思想の充分な理解を助けるために提供する。しかし、この分野において通常の技術を有する者はこのような特定な詳細無しでも本発明の技術的思想を具現できる。他の例として、広く公知の方法、手続、構成要素、回路、及びネットワークは実施形態を不必要に曖昧にしないために詳細に説明しない。
【００１０】
ここで、第１、第２等の用語を多様な要素を説明するために使用するが、このような要素はこのような用語によって限定されない。このような用語は１つの要素を他の１つの要素と区別するためのみに使用する。例えば、本発明の技術的思想の範囲から離れなくとも、第１モジュールは第２モジュールと称することができる。同様に、第２モジュールは第１モジュールと称することができる。
【００１１】
本発明の技術的思想の説明において使用する用語は特定な実施形態を説明する目的のみに使用され、本発明の技術的思想を限定しない。本発明の技術的思想の説明及び添付した請求項において使用するように、脈絡において明確に明示されなければ、単数表現は複数表現もまた含む。“及び／又は”の用語は１つ以上の連関された項目の任意のそして可能な全ての組合せを含む。“含む”及び／又は“含くんでいる”の用語は詳細な説明において使用する時に言及する特徴的なもの、整数、段階、動作、要素、及び／又は構成要素の存在を明示し、１つ以上の他の特徴的なもの、整数、段階、動作、要素、構成要素、及び／又はそれらのグループの存在又は追加を排除しない。図面の構成要素及び特徴的なものは実比率により描かれていない。
【００１２】
ガーベッジコレクションのようなホスト開始背景動作の効能は、装置の状態が特定な閾値を経過した時に入出力要請の間において装置が自動的に背景動作を開始するような構成を可能にすることによって改善される。このような特性はコマンド又はセッティングページを通じてホストによって活性化又は非活性化される。
【００１３】
装置が自動的に背景動作を開始する構成は、ホストの最小限の修正により又は修正無しによる入力／出力（Ｉ／Ｏ）の実施を助ける。このような特性はホスト利用によって予測されなかったソリッドステートドライブ（ＳＳＤ）の遊休時間の使用を極大化する。ホストはＳＳＤがコマンド要請の間（即ち、遊休時間内）において自動的に背景動作を開始するように構成する。
【００１４】
一例として、ホストは遊休区間が特定時間、例えば５０ｍｓに到達すれば、自動的に背景動作を開始するようにＳＳＤを構成する。ＳＳＤはキューにホストコマンドがない時に遊休タイマーを開始し、５０ｍｓが経過した時に背景動作を開始する。
【００１５】
他の例として、ホストはコマンドキュー深さが特定レベル（例えば、１０コマンド）未満に低下した時、自動的に背景動作を開始するようにＳＳＤを構成する。このような低いキュー深さは装置に軽いトラフィック（ｌｉｇｈｔ  ｔｒａｆｆｉｃ）が存在することを示すので、ＳＳＤは背景動作を実行する。これは現在処理中であるＩ／Ｏの性能に影響を与えるが、Ｉ／Ｏに全体的な深刻な影響を与えない。
【００１６】
装置は装置のインターフェイスプロトコル、例えばＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＮＶＭエクスプレス（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ、ＮＶＭｅ）、ＡＴ  Ａｔｔａｃｈｍｅｎｔ（ＡＴＡ）、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ）、ｉＳＣＳＩ、ファイバチャンネル（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ、ＦＣ）、イーサーネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））等を利用するように構成される。例えば、ＳＣＳＩにおいて、構成値はモードページに設定されて受動ガーベッジコレクションを活性化し、そして背景動作条件設定を設定する。ＮＶＭｅにおいて、このような設定は特性ページに設定される。
【００１７】
図１は本発明の技術的思想の実施形態に係る受動（ｐａｓｓｉｖｅ）ガーベッジコレクションを遂行するように構成されたソリッドステートドライブ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ、ＳＳＤ）を含むシステムを示す。図１を参照すれば、コンピュータ１０５はプロセッサ１１０、メモリ１１５、及びＳＳＤ１２０を含む。プロセッサ１１０は任意の多様なプロセッサ、例えばインテルゼオン、セルラーン、アイテニアム、又はアトムプロセッサ、又はＡＭＤオプテロンプロセッサである。メモリ１１５は不揮発性メモリ（例えばフラッシュメモリ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、持続性ランダムアクセスメモリ（Ｐｅｒｓｉｓｔｅｎｔ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＰＲＡＭ）等の任意の多様なメモリであるが、一般的に動的ランダムアクセスメモリ（ＤＲＡＭ）である。ＳＳＤ１２０は任意の多様なＳＳＤである。また、ＳＳＤ１２０は本発明の技術的思想の実施形態から効果を受ける等価的なストレージ装置に置き換えることができる。コンピュータ１０５はラップトップコンピュータ、サーバー、又はスマートフォンのようなモバイルコンピューティング装置の汎用性を失わずに、類似な機能を提供する任意の機械により置き換えることができる。簡易化のために、コンピュータ１０５はホスト１０６と称される。
【００１８】
図２は図１のホスト１０６の追加的な詳細を示す。図２を参照すれば、通常ホスト１０６は１つ以上のプロセッサ１１０を含む。プロセッサ１１０はメモリコントローラ２０５及びクロック２１０を含む。プロセッサ１１０はホスト１０６の構成要素の動作を調整するのに使用される。プロセッサ１１０は、例えばランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、又は他の状態格納媒体を含むメモリ１１５に連結される。プロセッサ１１０はＳＳＤ１２０に連結され、そして、例えばイーサーネットコネクター又は無線コネクターであるネットワークコネクター２１５に連結される。プロセッサ１１０は使用者インターフェイス２２５が付着され、そして他の構成要素の中の入力／出力エンジン２３０を利用して管理される入力／出力インターフェイスポートが付着されるバス２２０に連結される。
【００１９】
図３は受動ガーベッジコレクションを遂行するように構成された図１のＳＳＤ１２０の詳細を示す。図３において、ＳＳＤ１２０は情報（動作又はデータのような）を伝送及び受信するのに使用される受信回路３０５を含む。ＳＳＤ１２０はＳＳＤコントローラ３１０及びフラッシュメモリ３１５を含む。ＳＳＤコントローラ３１０はＳＳＤ１２０の動作を制御する。フラッシュメモリ３１５はガーベッジコレクションの対象であるブロックにデータを格納する。
【００２０】
ＳＳＤコントローラ３１０は構成要素として状態判別器３２０、比較器３２５、条件ストレージ３３０、トリガー回路３３５、及びガーベッジコレクションロジック３４０を含む。状態判別器３２０はＳＳＤ１２０の状態を判別する。ＳＳＤ１２０の状態は図１のホスト１０６によってどんな条件が示されたかに依存する。先に言及したように、ホスト１０６は、遊休区間（即ち、ＳＳＤ１２０が図１のホスト１０６又は他のホストからの要請を処理しない区間）又はキュー深さ（即ち、どのぐらい多くのコマンドが処理されることを待機しているのか）のような異なる条件を示す。図１のホスト１０６によって示された条件に依存して、状態判別器３２０はＳＳＤ１２０の適切な状態を判別する。
【００２１】
比較器３２５は状態判別器３２０によって判別されたＳＳＤ１２０の状態を図１のホスト１０６によって示された条件と比較する。例えば、図１のホスト１０６が５０ｍｓの遊休区間を示せば、比較器３２５は示された遊休区間を状態判別器３２０によって判別されるＳＳＤ１２０が実際に遊休状態であった長さと比較する。ＳＳＤ１２０が少なくとも５０ｍｓの間遊休状態であったら、比較器３２５は該当条件が満足されることを示す。他の例として、図１のホスト１０６が１０コマンドのキュー深さを示せば、比較器３２５はこのキュー深さをＳＳＤ１２０に現在係留中であるコマンドの数と比較する。ＳＳＤ１２０が１０コマンドより多くないコマンドを現在係留中であれば、比較器３２５は該当条件が満足されたことを示す。
【００２２】
条件ストレージ３３０は受動ガーベッジコレクションを何時遂行するかを判別するのに使用される条件をＳＳＤ１２０に局部的に格納する。例えば、図１のホスト１０６が５０ｍｓの遊休区間を示せば、条件ストレージ３３０は５０ｍｓを条件として格納する。他の例として、図１のホスト１０６が１０コマンドのキュー深さを示せば、条件ストレージ３３０は１０コマンドを条件として格納する。比較器３２５は条件ストレージ３３０からの条件にアクセスする。
【００２３】
条件は単一又は複合的である。例えば、図１のホストは５０ｍｓの遊休区間と同一の単一条件を示す。その後に、ＳＳＤ１２０が５０ｍｓの間遊休状態であれば、受動ガーベッジコレクションがトリガーされる。このような方式により受動ガーベッジコレクションを遂行することの長所はＳＳＤ１２０が図１のホスト１０６からの命令無しにフラッシュメモリ３１５内に可能な多くの自由消去ブロックを維持することである。しかし、図１のホスト１０６が５０ｍｓの遊休区間及び１０，０００自由消去ブロック未満の複合条件を示すと、このような条件により、ＳＳＤ１２０が充分な区間の間遊休状態であっても、ＳＳＤ１２０が充分な自由消去ブロックを有すれば、ＳＳＤ１２０は受動ガーベッジコレクションを遂行しない。受動ガーベッジコレクションを遂行しないことによって、ＳＳＤ１２０はガーベッジコレクションが完了されるまで待機しなければならない他のコマンドが入力される時に不必要にビジーになることを回避できる。
【００２４】
複合条件が使用される時に、条件は通常的な論理演算子（論理和、論理積、及び否定）を利用して必要な複合条件に、そして必要である数に組合わされる。例えば、図１のホスト１０６は５０ｍｓの区間、１０コマンド以下のキュー深さ、そして１０，０００未満の自由消去ブロックの論理積（ＡＮＤ）の条件を示す。このような組合せは、受動ガーベッジコレクションを遂行するためには５０ｍｓの区間の間にＳＳＤ１２０のキュー深さが１０コマンド未満でなければならず、そしてもフラッシュメモリ３１５に１０，０００未満の自由消去ブロックが存在する時のみに受動ガーベッジコレクションが遂行されることを示す。この例において、遊休区間（即ちＳＳＤ１２０がコマンドを処理しない区間）を測定することは、区間はＳＳＤ１２０の全体状態（キューに１０又はそれより少ないコマンドが存在し、１０，０００未満の自由消去ブロックが存在）が変更されず、維持される区間を言う。このような区間のさらに一般化された概念を利用して、遊休区間は５０ｍｓの区間及びキュー深さ０の論理積の複合条件を利用して示される。
【００２５】
条件が複合的である時、状態判別器３２０はＳＳＤ１２０に対する多重状態を判別する。例えば、図１のホスト１０６が５０ｍｓの区間及び１０，０００未満の自由消去ブロックの論理積の条件を示せば、状態判別器３２０はＳＳＤ１２０の遊休時間及び自由消去ブロックカウントの全てを判別する。
【００２６】
トリガー回路３３５は比較器３２５の結果を受信する。トリガー回路３３５は条件が満足される時に受動ガーベッジコレクションを遂行するようにガーベッジコレクションロジック３４０にトリガー信号を伝送する。
【００２７】
ガーベッジコレクションロジック３４０はフラッシュメモリ３１５においてガーベッジコレクションを遂行するロジックである。ガーベッジコレクションそれ自体は通常的なことであり、ここでさらに説明する必要がない。
【００２８】
図３において状態判別器３２０、比較器３２５、条件ストレージ３３０、及びトリガー回路３３５をＳＳＤコントローラ３１０内において分離された構成要素として図示したが、本発明の技術的思想の実施形態はこのような構成要素を単一ユニットに又は任意の必要である部分の組合せにより組合わす。図３は受動ガーベッジコレクションの遂行と連関された動作をさらによく示すためにこのような構成要素を分離された要素として図示した。
【００２９】
図４は図１のＳＳＤ１２０に構成コマンドに続いてデータ要請を伝送する図１のホスト１０６を示す。図４において、ホスト１０６はＳＳＤ１２０に構成コマンド４０５を伝送する。構成コマンド４０５は単一条件又は複合条件の中の１つである条件４１０を含む。一旦、構成コマンド４０５を利用して受動ガーベッジコレクションが構成されれば、ホスト１０６はデータ要請４１５、４２０、４２５を伝送する。図４においてホスト１０６は３つのデータ要請４１５、４２０、４２５を伝送するとして示したが、本発明の技術的思想の実施形態は任意の数のデータ要請を支援する。
【００３０】
追加的に、ホスト１０６は多重構成コマンド４０５を伝送する。例えば、ホスト１０６は１０コマンドのキュー深さを条件４１０に明示する第１構成コマンドを伝送する。しかし、ＳＳＤ１２０に対する応答時間に基づいて、ホスト１０６は条件４１０を５０ｍｓの遊休区間に変更することを決定できる。ホスト１０６は必要である多くの構成コマンド４０５を伝送する。通常、最新の構成コマンドが以前の構成コマンドを無効にする。
【００３１】
図５は本発明の技術的思想の実施形態に係る図１のＳＳＤ１２０がどのぐらい長く遊休状態であったかに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図３の比較器３２５を示す。図５において、遊休区間５０５は、例えば５０ｍｓに設定される。状態判別器３２０は図１のＳＳＤ１２０がどのぐらい長く遊休状態であったかを追跡する。例えば、状態判別器３２０はＳＳＤ１２０が遊休状態になった時にタイマーを開始し、遊休時間５１０に図示された周期的状態情報を比較器３２５に伝送する。比較器３２５は遊休時間５１０を遊休区間５０５と比較する。遊休時間５１０に基づいて遊休区間５０５が満足されれば、比較器３２５は図３のトリガー回路３３５に伝送されるトリガー５１５を利用して比較を示す。
【００３２】
図５は比較器３２５が自由消去ブロックの数５２０を受信することもまた示す。先に言及したように、図１のホスト１０６が複合条件を示した状況において、自由消去ブロックの数５２０は状態判別器３２０によってまた判別される。しかし、図４の条件４１０が図１のＳＳＤ１２０の遊休時間のみを考慮する場合、自由消去ブロックの数５２０は図５において省略される。
【００３３】
図６は本発明の技術的思想の実施形態に係る図１のＳＳＤ１２０のキュー深さに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図３の比較器３２５を示す。図４の条件４１０に遊休時間を使用する代わりに、図６が図４の条件４１０においてキュー深さを使用することを除外すれば、図６は図５と類似である。したがって、キュー深さ閾値６０５は比較器３２５によって考慮されるキュー深さ閾値を示す。比較器３２５はコマンドキューの深さ６１０として状態判別器３２０によって判別されるコマンドキューの深さを考慮する。比較の結果として、比較器３２５はキュー深さ閾値６０５が満足された時にトリガー５１５を生成する。
【００３４】
図５のように、図６において比較器３２５は自由消去ブロックの数５２０もまた受信する。条件４１０が自由消去ブロックの閾値数を含むと、状態判別器３２０は比較器３２５が自由消去ブロックの閾値数と比較する自由消去ブロックの数５２０を判別する。図４の条件４１０が自由消去ブロックの閾値数を含まなければ、自由消去ブロックの数５２０は図６から省略される。
【００３５】
図７は図１のＳＳＤ１２０が多重コマンドキューを含む時、図１のＳＳＤ１２０のキュー深さを判別する図３の状態判別器３２０を示す。図７において、状態判別器３２０は図１のＳＳＤ１２０の３つのコマンドキューの深さを示す深さ７０５、７１０、７１５を受信する。図７において３つの深さ７０５、７１０、７１５を図示したが、本発明の技術的思想の実施形態は任意の数のコマンドキューに対する任意の個数の深さを支援する。
【００３６】
深さ７０５、７１０、７１５が与えられれば、状態判別器３２０は図６のコマンドキュー深さ６１０として任意の必要である統計を計算する。例示的な統計は平均７２０（算術平均であるとも称する）、合計７２５、中央値７３０、最小７３５、及び最大７４０を含む。しかし、本発明の技術的思想の他の実施形態は他の統計を計算できる。平均７２０はすべての深さ７０５、７１０、７１５の合計を深さ７０５、７１０、７１５の数で割って計算される。合計７２５はすべての深さ７０５、７１０、７１５の合計として単純に計算される（合計７２５はすべてのキューにおいて係留中であるコマンドの全体数を示す）。中央値７３０はすべてのキューデータサイズが数値的に整列された場合に中央キューのサイズを示す。最小７３５は係留中であるコマンドの数が最も小さいキューのサイズを示す。そして、最大７４０は係留中であるコマンドの数が最も大きいキューのサイズを示す。
【００３７】
図８及び図９は本発明の技術的思想の実施形態に係る図１のＳＳＤ１２０において背景ガーベッジコレクションを管理するための手続の順序図を示す。図８のブロック８０５において、図３のＳＳＤコントローラ３１０は図１のＳＳＤ１２０が背景ガーベッジコレクションを遂行するようにセットアップされたかを判別する。そうであれば、ブロック８１０において、図３のＳＳＤコントローラ３１０は（図３の状態判別器３２０、比較器３２５、及び条件ストレージ３３０の全てを通じて）図４の条件４１０が満足される時まで待機する。図４の条件４１０が満足されれば、ブロック８１５において、図３のトリガー回路３３５は背景ガーベッジコレクションを開始するようにガーベッジコレクションロジック３４０をトリガーする。
【００３８】
図９のブロック８２０において、図３のＳＳＤコントローラ３１０は背景ガーベッジコレクションが発生する間にホストコマンドが係留中であるか否かを判別する。ホストコマンドが係留中でなければ、ブロック８２５において背景ガーベッジコレクションが持続される。そうでなければ、ブロック８３０において、図３のＳＳＤコントローラ３１０は（図３の状態判別器３２０、比較器３２５、及び条件ストレージ３３０の全てを通じて）図４の条件４１０が相変わらず満足されるか否か判別する。満足されれば、制御はブロック８２５に移って背景ガーベッジコレクションが持続される。満足されなければ、ブロック８３５において、背景ガーベッジコレクションが中止されて係留中であるホストコマンドの処理が許容される。
【００３９】
図１０は本発明の技術的思想の実施形態に係る図１のＳＳＤ１２０が受動ガーベッジコレクションを遂行するためにどのように構成されるか否かに対する例示的な手続の順序図を示す。図１０のブロック９０５において、図３の受信回路３０５は図４の構成コマンド４０５を受信する。ブロック９１０において、図３のＳＳＤコントローラ３１０は図４の構成コマンド４０５により図４の条件４１０を識別する。ブロック９１５において、条件ストレージ３３０は図４の条件４１０を格納する。ブロック９２０において、図３のＳＳＤコントローラ３１０は図４の条件４１０を利用して受動的にガーベッジコレクションをトリガーするか否かを判別する。ブロック９２０がどのようにして遂行されるかの例示は後述の図１１及び図１２により図示する。
【００４０】
ブロック９２５において、図３の受信回路３０５は図１のホスト１０６からガーベッジコレクションを受信するためのコマンドを受信する。このコマンドはホスト開始ガーベッジコレクションのためである。ブロック９３０において、図３のガーベッジコレクションロジック３４０はホスト開始ガーベッジコレクションを遂行する。手順はブロック９２０に戻る。ホスト開始ガーベッジコレクションは選択的であり、点線矢印９３５として図示したように省略できる。
【００４１】
図１１は本発明の技術的思想の実施形態に係る図１のＳＳＤ１２０が図５の遊休時間を利用し、そして選択的に図１のＳＳＤ１２０に対する図５の自由ブロックカウント５２０を利用して受動ガーベッジコレクションを遂行する時を判別する例示的な手続の順序図である。図１１のブロック１００５において、状態判別器３２０は図１のＳＳＤ１２０に対する図５の遊休時間５１０を追跡する。ブロック１０１０において、図３の比較器３２５は図５の遊休時間５１０を図５の遊休区間５０５と比較する。ブロック１０１５において、図３のＳＳＤコントローラ３１０は図５の遊休時間５１０が図５の遊休区間５０５を満足するかを判別する。満足しなければ、制御はブロック１００５に戻る。
【００４２】
図５の遊休時間５１０が図５の遊休区間５０５を満足すれば、ブロック１０２０において図３のＳＳＤコントローラ３１０は図１のＳＳＤ１２０に充分な数の自由消去ブロックが存在するか否かを判別する。充分な数の自由消去ブロックがあれば、制御はブロック１００５に戻る。そうでなければ、制御はブロック９３０に進行し、ガーベッジコレクションロジック３４０は図３のフラッシュメモリ３１５においてガーベッジコレクションを遂行する。図１１において、ブロック９３０はホスト開始ガーベッジコレクション動作よりは受動ガーベッジコレクション動作である。しかし、図３のガーベッジコレクションロジック３４０に対して差異はない。破線矢印１０２５として図示したように、図１のＳＳＤ１２０の自由消去ブロックの数が図４の条件４１０の一部でない場合、ブロック１０２０は選択的（ｏｐｔｉｏｎａｌ）である。
【００４３】
図１２は本発明の技術的思想の実施形態に係る図１のＳＳＤ１２０が図６のキュー深さ６０５を利用し、そして選択的に図１のＳＳＤ１２０に対する図６の自由ブロックカウント５２０を使用して受動ガーベッジコレクションを遂行する時を判別する例示的な手続の順序図を示す。図１２のブロック１１０５において、状態判別器３２０は図１のＳＳＤ１２０に対する図６のキュー深さ６０５を追跡する。ブロック１１１０において、図３の比較器３２５は図６のキュー深さ６０５を図６のキュー深さ閾値６１０と比較する。ブロック１１１５において、図３のＳＳＤコントローラ３１０は図６のキュー深さ６０５が図６のキュー深さ閾値６１０を満足するか否かを判別する。満足しなければ、制御はブロック１１０５に戻る。
【００４４】
図６のコマンドキュー深さ６１０が図６のキュー深さ閾値６０５を満足すれば、ブロック１１２０において図３のＳＳＤコントローラ３１０は図１のＳＳＤ１２０の自由消去ブロックの数が充分であるか否かを判別する。自由消去ブロックの数が充分であれば、制御はブロック１１０５に戻る。そうでなければ、制御はブロック９３０に進行し、ガーベッジコレクションロジック３４０は図３のフラッシュメモリ３１５においてガーベッジコレクションを遂行する。図１２において、ブロック９３０はホスト開始ガーベッジコレクション動作がない受動ガーベッジコレクション動作である。しかし、図３のガーベッジコレクションロジック３４０に差異はない。点線矢印１１２５に図示したように、図１のＳＳＤ１２０の自由消去ブロックの数が図４の条件４１０の一部でない場合、ブロック１１２０は選択的である。
【００４５】
図１３は本発明の技術的思想の実施形態に係る図３の状態判別器３２０が図１のＳＳＤ１２０が多重コマンドキューを含む時に図１のＳＳＤ１２０に対する図６のキュー深さ６１０を判別する例示的な手続の順序図を示す。ブロック１２０５において、図３の状態判別器３２０は複数のキューの各々に対する図７の深さ７０５、７１０、７１５を判別する。ブロック１２１０において、図３の状態判別器３２０は複数のキューに対する図７の深さ７０５、７１０、７１５から図７の平均７２０、合計７２５、中央値７３０、最小７３５、又は最大７４０のような統計を計算する。状態判別器３２０は計算された統計を図６のキュー深さ６１０に使用する。
【００４６】
図８乃至図１３に、本発明の技術的思想の一部の実施形態を図示した。しかし、この分野に熟練した者は、ブロックの順序を変えること、ブロックを省略すること、又は図面に図示されない連結を含むことによって本発明の技術的思想の他の実施形態が可能であることを認識する。順序図のこのようなすべての変更は直接的に説明されても説明されなくとも本発明の技術的思想の実施形態と看做される。
【００４７】
以下の説明は本発明の技術的思想の一部の側面が具現される適切な機械の一般的な説明を提供する。機械は少なくとも一部は他の機械から受信される指示、仮想現実（ＶＲ）環境との相互作用、生体フィードバック、又は他の入力信号のみならず、キーボード、マウス等のような通常的な入力装置からの入力によって制御される。ここに使用したように、“機械”の用語は単一機械、仮想機械、又は機械、仮想機械、共に動作する装置と通信するように結合されたシステムを広く含む。例示的な機械は、例えば自動車、汽車、タクシー等の個人用又は公共輸送のような輸送装置のみならず、個人用コンピュータ、ワークステーション、サーバー、ポータブルコンピュータ、ハンドヘルド装置、電話、タブレット等のコンピューティング装置を含む。
【００４８】
機械はプログラム可能な又はプログラム不可能である論理装置又はアレイ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、埋め込み型コンピュータ、スマトカード等の埋め込み型コントローラを含む。機械はネットワークインターフェイス、モデム、又は他の通信結合を通じるように１つ以上の遠隔機械に対する１つ以上の連結を活用する。機械はイントラネット、インターネット、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋｓ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋｓ）等の物理的及び／又は論理的ネットワークの手段により互いに連結される。この分野に熟練した者はネットワーク通信が多様な有線及び／又は無線近距離又は遠距離キャリヤー及び無線周波数（ＲＦ）、衛星、マイクロ波、ＩＥＥＥ８０２．１１、ブルートゥース（登録商標）、光学、赤外線、ケーブル、レーザー等を含むプロトコルを活用することを理解すべきである。
【００４９】
本発明の技術的思想の実施形態は、機械によってアクセスされる時に機械が作業を遂行するか、又は抽象的なデータタイプ又は低レベルハードウェアコンテキストを定義することを発生させる関数、手続、データ構造、応用プログラム等を含む連関されたデータを参照して又は協力して説明される。連関されたデータは、例えばＲＡＭ、ＲＯＭ等の揮発性及び／又は不揮発性メモリ、又は他のストレージ装置、及びハードドライブ、フロッピーディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージ等を含む連関されたストレージ媒体に格納される。連関されたデータは物理的及び／又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態に伝達され、圧縮された又は暗号化されたフォーマットに利用される。連関されたデータは分散環境により使用され、機械アクセスに対して地域的及び／又は遠隔に格納される。
【００５０】
本発明の技術的思想の実施形態は１つ以上のプロセッサによって実行可能であり、ここに説明したように本発明の技術的思想を遂行するようにする命令を含む非一時的機械読出し媒体を含む。
【００５１】
図示した実施形態を参照して説明した本発明の技術的思想の原則を有すれば、図示した実施形態がこのような原則から遠くならず、配列及び詳細により修正され、必要である任意の方法により組合わされると理解されるべきである。先の説明が具体的な実施形態に集中したが、他の構成もまた考慮される。具体的に、“本発明の技術的思想の実施形態に係る”のような説明又はここに使用した類似なことに拘らず、このような文句は一般的に実施形態の可能性を示し、本発明の技術的思想を具体的な実施形態の構成による限定を意図しない。ここに使用したように、このような用語は他の実施形態による組合せ可能な同一の又は異なる実施形態を参照する。
【００５２】
先に説明した実施形態は本発明の技術的思想をそれに限定すると解釈されない。少ない実施形態のみを説明したが、この分野に熟練した者は本記載の新規な説明及び長所から実質的に遠くならず、このような実施形態に多くの修正が可能であることを十分に理解できる。したがって、このようなすべての修正は請求項において定義されるように本発明の技術的思想の範囲内に含まれると意図される。
【００５３】
本発明の技術的思想の実施形態は限定無しに下記のステートメントに拡張される。
【００５４】
第１ステートメント。
本発明の技術的思想の実施形態はソリッドステートドライブ（ＳＳＤ）を含む。ＳＳＤはデータのためのストレージ、前記ストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジック、遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンド及びデータ要請を受信する受信回路、前記条件を格納する条件ストレージ、前記ＳＳＤの状態を判別する状態判別器、及び前記条件と前記ＳＳＤの状態とを比較する比較器を含む。
【００５５】
第２ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記比較器が、前記ＳＳＤの前記状態が前記条件を満足することを示すと、前記ガーベッジコレクションロジックが前記ストレージにおいてガーベッジコレクションを遂行するようにトリガーするトリガー回路をさらに含む。
【００５６】
第３ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記条件は複合条件を含む。
【００５７】
第４ステートメント。
本発明の技術的思想の実施形態は第２ステートメントにしたがうＳＳＤを含み、前記トリガー回路は前記比較器が前記ＳＳＤの状態が前記条件を満足し、そして前記ＳＳＤの自由消去ブロックの数が閾値より低いことを示すと、前記ガーベッジコレクションロジックが前記ストレージにおいてガーベッジコレクションを遂行するようにトリガーする。
【００５８】
第５ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記受信回路はホストから前記構成コマンドを受信する。
【００５９】
第６ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記条件は遊休区間を含み、前記状態判別器は前記ＳＳＤに対する遊休時間を判別し、前記比較器は前記ＳＳＤに対する遊休時間を前記遊休区間と比較する。
【００６０】
第７ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記条件はキュー深さ閾値を含み、前記状態判別器は前記ＳＳＤに対するコマンドキュー深さを判別し、前記比較器は前記ＳＳＤに対する前記コマンドキュー深さを前記キュー深さ閾値と比較する。
【００６１】
第８ステートメント。
本発明の技術的思想の実施形態は第７ステートメントにしたがうＳＳＤを含み、前記状態判別器は複数の深さから前記ＳＳＤに対する前記コマンドキュー深さを判別する。
【００６２】
第９ステートメント。
本発明の技術的思想の実施形態は第８ステートメントにしたがうＳＳＤを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの平均として計算する。
【００６３】
第１０ステートメント。
本発明の技術的思想の実施形態は第８ステートメントにしたがうＳＳＤを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの合計として計算する。
【００６４】
第１１ステートメント。
本発明の技術的思想の実施形態は第８ステートメントにしたがうＳＳＤを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの中央値として計算する。
【００６５】
第１２ステートメント。
本発明の技術的思想の実施形態は第８ステートメントにしたがうＳＳＤを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの最大として計算する。
【００６６】
第１３ステートメント
本発明の技術的思想の実施形態は第８ステートメントにしたがうＳＳＤを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの最小として計算する。
【００６７】
第１４ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記受信回路は前記ホストから命令を受信してガーベッジコレクションを遂行する。
【００６８】
第１５ステートメント。
本発明の技術的思想の実施形態は第１ステートメントにしたがうＳＳＤを含み、前記構成コマンドは使用者が構成可能な構成コマンドである。
【００６９】
第１６ステートメント。
本発明の技術的思想の実施形態はガーベッジコレクションを遂行する方法を含む。ガーベッジコレクションを遂行する方法はソリッドステートドライブ（ＳＳＤ）において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、前記条件を前記ＳＳＤに格納する段階、及び前記条件を利用して前記ＳＳＤにおいてガーベッジコレクションを遂行する段階を含む。
【００７０】
第１７ステートメント。
本発明の技術的思想の実施形態は第１６ステートメントにしたがう方法を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいてホストから前記構成コマンドを受信する段階を含む。
【００７１】
第１８ステートメント。
本発明の技術的思想の実施形態は第１６ステートメントにしたがう方法を含み、前記条件を利用して前記ＳＳＤにおいてガーベッジコレクションを遂行する段階は、前記ＳＳＤの状態をモニターする段階、前記ＳＳＤの状態を前記条件と比較する段階、及び前記ＳＳＤの状態が前記条件を満足すれば、前記ＳＳＤにおいてガーベッジコレクションを遂行する段階を含む。
【００７２】
第１９ステートメント。
本発明の技術的思想の実施形態は第１８ステートメントにしたがう方法を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて前記遊休区間を含む前記構成コマンドを受信する段階を含み、前記ＳＳＤの状態をモニターする段階は前記ＳＳＤに対する遊休時間を追跡する段階を含み、前記ＳＳＤの状態を前記条件と比較する段階は前記ＳＳＤに対する遊休時間を前記遊休区間と比較する段階を含む。
【００７３】
第２０ステートメント。
本発明の技術的思想の実施形態は第１８ステートメントにしたがう方法を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて前記キュー深さ閾値を含む前記構成コマンドを受信する段階を含み、前記ＳＳＤの状態をモニターする段階は前記ＳＳＤに対するコマンドキュー深さを判別する段階を含み、そして前記ＳＳＤの状態を前記条件と比較する段階は前記キュー深さ閾値を前記ＳＳＤに対するコマンドキュー深さと比較する段階を含む。
【００７４】
第２１ステートメント。
本発明の技術的思想の実施形態は第２０ステートメントにしたがう方法を含み、前記ＳＳＤの状態をモニターする段階は前記ＳＳＤに対するコマンドキュー深さを判別する段階を含み、前記ＳＳＤに対するコマンドキュー深さを判別する段階は複数のコマンドキューに対する複数の深さを判別する段階、及び前記複数の深さから前記コマンドキュー深さを判別する段階を含む。
【００７５】
第２２ステートメント。
本発明の技術的思想の実施形態は第２１ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての平均として計算する段階を含む。
【００７６】
第２３ステートメント。本発明の技術的思想の実施形態は第２１ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての合計として計算する段階を含む。
【００７７】
第２４ステートメント。
本発明の技術的思想の実施形態は第２１ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての中央値として計算する段階を含む。
【００７８】
第２５ステートメント。
本発明の技術的思想の実施形態は第２１ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最大として計算する段階を含む。
【００７９】
第２６ステートメント。
本発明の技術的思想の実施形態は第２１ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最小として計算する段階を含む。
【００８０】
第２７ステートメント。
本発明の技術的思想の実施形態は第１６ステートメントにしたがう方法を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて複合条件を含む構成コマンドを受信する段階を含む。
【００８１】
第２８ステートメント。
本発明の技術的思想の実施形態は第１８ステートメントにしたがう方法を含み、前記ＳＳＤの状態が前記条件を満足すれば、前記ＳＳＤにおいてガーベッジコレクションを遂行する段階は前記ＳＳＤの状態が前記条件を満足し、そして前記ＳＳＤの自由消去ブロックの数が閾値より低い場合、前記ＳＳＤにおいてガーベッジコレクションを遂行する段階を含む。
【００８２】
第２９ステートメント。
本発明の技術的思想の実施形態は第１６ステートメントにしたがう方法を含み、ホストから命令を受信してガーベッジコレクションを遂行する段階をさらに含む。
【００８３】
第３０ステートメント。
本発明の技術的思想の実施形態は第１６ステートメントにしたがう方法を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて前記遊休区間及び前記キュー深さ閾値を含むセットから得られる条件を含む使用者が構成可能な構成コマンドを受信する段階を含む。
【００８４】
第３１ステートメント。
本発明の技術的思想の実施形態は有形のストレージ媒体を含む物品を含む。前記ストレージ媒体はそれに格納された非一時的命令を含む。前記非一時的命令が実行されれば、ソリッドステートドライブ（ＳＳＤ）において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、前記ＳＳＤに前記条件を格納する段階、及び前記条件を利用して前記ＳＳＤにおいてガーベッジコレクションを遂行する段階が誘発される。
【００８５】
第３２ステートメント。
本発明の技術的思想の実施形態は第３１ステートメントにしたがう物品を含む。ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいてホストから前記構成コマンドを受信する段階を含む。
【００８６】
第３３ステートメント。
本発明の技術的思想の実施形態は第３１ステートメントにしたがう物品を含む。前記条件を利用して前記ＳＳＤにおいてガーベッジコレクションを遂行する段階は前記ＳＳＤの状態をモニターする段階、前記ＳＳＤの状態を前記条件と比較する段階、及び前記ＳＳＤの状態が前記条件を満足すれば、前記ＳＳＤにおいてガーベッジコレクションを遂行する段階を含む。
【００８７】
第３４ステートメント。
本発明の技術的思想の実施形態は第３３ステートメントにしたがう物品を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて前記遊休区間を含む前記構成コマンドを受信する段階を含み、前記ＳＳＤの状態をモニターする段階は前記ＳＳＤに対する遊休時間を追跡する段階を含み、前記ＳＳＤの状態を前記条件と比較する段階は前記ＳＳＤに対する遊休時間を前記遊休区間と比較する段階を含む。
【００８８】
第３５ステートメント。
本発明の技術的思想の実施形態は第３３ステートメントにしたがう物品を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて前記キュー深さ閾値を含む前記構成コマンドを受信する段階を含み、前記ＳＳＤの状態をモニターする段階は前記ＳＳＤに対するコマンドキュー深さを判別する段階を含み、そして前記ＳＳＤの状態を前記条件と比較する段階は前記キュー深さ閾値を前記ＳＳＤに対するコマンドキュー深さと比較する段階を含む。
【００８９】
第３６ステートメント。
本発明の技術的思想の実施形態は第３５ステートメントにしたがう物品を含み、前記ＳＳＤの状態をモニターする段階は前記ＳＳＤに対するコマンドキュー深さを判別する段階を含み、前記ＳＳＤに対するコマンドキュー深さを判別する段階は複数のコマンドキューに対する複数の深さを判別する段階、及び前記複数の深さから前記コマンドキュー深さを判別する段階を含む。
【００９０】
第３７ステートメント。
本発明の技術的思想の実施形態は第３６ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての平均として計算する段階を含む。
【００９１】
第３８ステートメント。
本発明の技術的思想の実施形態は第３６ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての合計として計算する段階を含む。
【００９２】
第３９ステートメント。
本発明の技術的思想の実施形態は第３６ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての中央値として計算する段階を含む。
【００９３】
第４０ステートメント。
本発明の技術的思想の実施形態は第３６ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最大として計算する段階を含む。
【００９４】
第４１ステートメント。
本発明の技術的思想の実施形態は第３６ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最小として計算する段階を含む。
【００９５】
第４２ステートメント。
本発明の技術的思想の実施形態は第３１ステートメントにしたがう物品を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて複合条件を含む構成コマンドを受信する段階を含む。
【００９６】
第４３ステートメント。
本発明の技術的思想の実施形態は第３３ステートメントにしたがう物品を含み、前記ＳＳＤの状態が前記条件を満足すれば、前記ＳＳＤにおいてガーベッジコレクションを遂行する段階は前記ＳＳＤの状態が前記条件を満足し、そして前記ＳＳＤの自由消去ブロックの数が閾値より低い場合、前記ＳＳＤにおいてガーベッジコレクションを遂行する段階を含む。
【００９７】
第４４ステートメント。
本発明の技術的思想の実施形態は第３１ステートメントにしたがう物品を含み、前記ストレージ媒体は機械によって実行された時にホストから命令を受信してガーベッジコレクションを遂行する段階を発生させる非一時的命令をさらに格納する。
【００９８】
第４５ステートメント。
本発明の技術的思想の実施形態は第３１ステートメントにしたがう物品を含み、ＳＳＤにおいて構成コマンドを受信する段階は前記ＳＳＤにおいて前記遊休区間及び前記キュー深さ閾値を含むセットから得られる条件を含む使用者構成可能な構成コマンドを受信する段階を含む。
【００９９】
結論的に、ここに説明した実施形態に対する置換の広い多様性の観点において、詳細な説明及び添付した素材は説明のみを意図し、本発明の技術的思想の範囲を制限しない。したがって、本発明の技術的思想として請求することはこのようなすべての修正を請求項及びこれに等価的なことの範囲及び思想内に含まれる。
【符号の説明】
【０１００】
１０５  コンピュータ
１０６  ホスト
１１０  プロセッサ
１１５  メモリ
１２０  ソリッドステートドライブ（ＳＳＤ）
２０５  メモリコントローラ
２１０  クロック
２１５  ネットワークコネクター
２２０  バス
２２５  使用者インターフェイス
２３０  入力／出力エンジン
３０５  受信回路
３１０  ＳＳＤコントローラ
３１５  フラッシュメモリ
３２０  状態判別器
３２５  比較器
３３０  条件ストレージ
３３５  トリガー回路
３４０  ガーベッジコレクションロジック
４０５  構成コマンド
４１０  条件
４１５、４２０、４２５  データ要請
５０５  遊休区間
５１０  遊休時間
５１５  トリガー
５２０  自由消去ブロックの数
６０５  キュー深さ閾値
６１０  コマンドキュー深さ
７０５、７１０、７１５  深さ
７２０  平均
７２５  合計
７３０  中央値
７３５  最小
７４０  最大
【図１】
2017168088.tif 000003
【図２】
2017168088.tif 000004
【図３】
2017168088.tif 000005
【図４】
2017168088.tif 000006
【図５】
2017168088.tif 000007
【図６】
2017168088.tif 000008
【図７】
2017168088.tif 000009
【図８】
2017168088.tif 000010
【図９】
2017168088.tif 000011
【図１０】
2017168088.tif 000012
【図１１】
2017168088.tif 000013
【図１２】
2017168088.tif 000014
【図１３】
2017168088.tif 000015