JP6847694B2 - ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品 - Google Patents

ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品 Download PDF

Info

Publication number
JP6847694B2
JP6847694B2 JP2017023269A JP2017023269A JP6847694B2 JP 6847694 B2 JP6847694 B2 JP 6847694B2 JP 2017023269 A JP2017023269 A JP 2017023269A JP 2017023269 A JP2017023269 A JP 2017023269A JP 6847694 B2 JP6847694 B2 JP 6847694B2
Authority
JP
Japan
Prior art keywords
solid state
state drive
garbage collection
command
ssd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017023269A
Other languages
English (en)
Other versions
JP2017168088A (ja
JP2017168088A5 (ja
Inventor
世 賢 曾
世 賢 曾
昌 皓 崔
昌 皓 崔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017168088A publication Critical patent/JP2017168088A/ja
Publication of JP2017168088A5 publication Critical patent/JP2017168088A5/ja
Application granted granted Critical
Publication of JP6847694B2 publication Critical patent/JP6847694B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Description

本発明は一般的にソリッドステートドライブ(Solid State Drives、SSDs)ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品に係り、より詳しくは、ガーベッジコレクションを遂行するソリッドステートドライブ及びソリッドステートドライブがガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品に関する。
ガーベッジコレクションはソリッドステートドライブ(Solid State Drives、SSDs)において通常的に発生する。SSDが自由消去ブロックを使い果たした時に、SSDはガーベッジコレクション(Garbage Collection、GC)を遂行して新しい書込みに使用するための新しい消去ブロックを確保する。書込み/読出しは該当要請がサービスされる前にガーベッジコレクションが完了されるまで待機しなければならないので、ガーベッジコレクションはSSDの読出し/書込み性能を遅くする。ストレージ知能のような特性はホスト開始ガーベッジコレクションによりこのような問題の解消を助ける。しかし、これはガーベッジコレクションを開始するためにホストがガーベッジコレクションコマンドを発行し、装置に知らせることを必要とする。
大容量データベースの性能を改善し、そしてレイテンシの最小化及び維持費用の節減の2つの目標の均衡をなす方法に対する要求が存在する。
本発明の目的は大容量データベースの性能を改善し、そしてレイテンシの最小化及び維持費用の節減の2つの目標の均衡をなす装置及び方法を提供することにある。
本発明の実施形態に係るソリッドステートドライブ(SSD)はデータのためのストレージ、ストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジック、遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンド及びデータ要請を受信する受信回路、条件を格納する条件ストレージ、ソリッドステートドライブの状態を判別する状態判別器、及び条件とソリッドステートドライブの状態とを比較する比較器を含む。
本発明の実施形態に係るガーベッジコレクションを遂行する方法はソリッドステートドライブ(SSD)が、遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、条件をソリッドステートドライブに格納する段階、及び条件を利用してソリッドステートドライブにおいてガーベッジコレクションを遂行する段階を含む。
本発明の実施形態に係る物品は、物品は有形のストレージ媒体を含み、前記格納媒体はそれに格納された非一時的命令を含み、非一時的命令が実行されれば、その結果としてソリッドステートドライブ(SSD)において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、ソリッドステートドライブに条件を格納する段階、及び条件を利用してソリッドステートドライブにおいてガーベッジコレクションを遂行する段階が誘発される。
本発明によれば、ソリッドステートドライブ(SSD)の受動ガーベッジコレクションは構成コマンドによって実行時期が制御される。構成コマンドは使用者によって構成される。したがって、SSDは改善され、レイテンシの最小化及び維持費用の節減の2つの目標の均衡をなすSSD装置及び方法が提供される。
本発明の技術的思想の実施形態に係る受動ガーベッジコレクションを遂行するように構成されたソリッドステートドライブを含むシステムを示す。 図1のコンピュータの追加的な詳細を示す。 受動ガーベッジコレクションを遂行するように構成された図1のソリッドステートドライブの詳細を示す。 構成コマンドに続いてデータ要請を図1のソリッドステートドライブに伝送する図1のシステムを示す。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブがどのぐらい長く遊休状態であったかに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図3の比較器を示す。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブのキュー深さに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図3の比較器を示す。 図1のソリッドステートドライブが多重コマンドキューを含む時に図1のソリッドステートドライブのキュー深さを判別する図3の状態判別器を示す。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブにおいて背景ガーベッジコレクションを管理するための手続を示す順序図である。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブにおいて背景ガーベッジコレクションを管理するための手続を示す順序図である。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブが受動ガーベッジコレクションを遂行するためにどのようにして構成されるかの例示的な手続の順序図である。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブが遊休時間を利用して、そして選択的に自由ブロックカウントを利用して図1のソリッドステートドライブが受動ガーベッジコレクションをいつ遂行するかを判別する例示的な手続の順序図である。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブがキュー深さを利用して、そして選択的に自由ブロックカウントを利用して図1のソリッドステートドライブが受動ガーベッジコレクションをいつ遂行するかを判別する例示的な手続の順序図である。 本発明の技術的思想の実施形態に係る図1のソリッドステートドライブが多重コマンドキューを含む時に図3の状態判別器が図1のソリッドステートドライブのキュー深さを判別する例示的な手続の順序図である。
本発明の技術的思想の実施形態を参照し、その例を添付した図面に示す。後述する詳細な説明において、多様、特定な詳細を本発明の技術的思想の充分な理解を助けるために提供する。しかし、この分野において通常の技術を有する者はこのような特定な詳細無しでも本発明の技術的思想を具現できる。他の例として、広く公知の方法、手続、構成要素、回路、及びネットワークは実施形態を不必要に曖昧にしないために詳細に説明しない。
ここで、第1、第2等の用語を多様な要素を説明するために使用するが、このような要素はこのような用語によって限定されない。このような用語は1つの要素を他の1つの要素と区別するためのみに使用する。例えば、本発明の技術的思想の範囲から離れなくとも、第1モジュールは第2モジュールと称することができる。同様に、第2モジュールは第1モジュールと称することができる。
本発明の技術的思想の説明において使用する用語は特定な実施形態を説明する目的のみに使用され、本発明の技術的思想を限定しない。本発明の技術的思想の説明及び添付した請求項において使用するように、脈絡において明確に明示されなければ、単数表現は複数表現もまた含む。“及び/又は”の用語は1つ以上の連関された項目の任意のそして可能な全ての組合せを含む。“含む”及び/又は“含くんでいる”の用語は詳細な説明において使用する時に言及する特徴的なもの、整数、段階、動作、要素、及び/又は構成要素の存在を明示し、1つ以上の他の特徴的なもの、整数、段階、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を排除しない。図面の構成要素及び特徴的なものは実比率により描かれていない。
ガーベッジコレクションのようなホスト開始背景動作の効能は、装置の状態が特定な閾値を経過した時に入出力要請の間において装置が自動的に背景動作を開始するような構成を可能にすることによって改善される。このような特性はコマンド又はセッティングページを通じてホストによって活性化又は非活性化される。
装置が自動的に背景動作を開始する構成は、ホストの最小限の修正により又は修正無しによる入力/出力(I/O)の実施を助ける。このような特性はホスト利用によって予測されなかったソリッドステートドライブ(SSD)の遊休時間の使用を極大化する。ホストはSSDがコマンド要請の間(即ち、遊休時間内)において自動的に背景動作を開始するように構成する。
一例として、ホストは遊休区間が特定時間、例えば50msに到達すれば、自動的に背景動作を開始するようにSSDを構成する。SSDはキューにホストコマンドがない時に遊休タイマーを開始し、50msが経過した時に背景動作を開始する。
他の例として、ホストはコマンドキュー深さが特定レベル(例えば、10コマンド)未満に低下した時、自動的に背景動作を開始するようにSSDを構成する。このような低いキュー深さは装置に軽いトラフィック(light traffic)が存在することを示すので、SSDは背景動作を実行する。これは現在処理中であるI/Oの性能に影響を与えるが、I/Oに全体的な深刻な影響を与えない。
装置は装置のインターフェイスプロトコル、例えばSCSI(Small Computer System Interface)、NVMエクスプレス(Non−Volatile Memory Express、NVMe)、AT Attachment(ATA)、Serial ATA(SATA)、iSCSI、ファイバチャンネル(Fiber Channel、FC)、イーサーネット(登録商標)(Ethernet(登録商標))等を利用するように構成される。例えば、SCSIにおいて、構成値はモードページに設定されて受動ガーベッジコレクションを活性化し、そして背景動作条件設定を設定する。NVMeにおいて、このような設定は特性ページに設定される。
図1は本発明の技術的思想の実施形態に係る受動(passive)ガーベッジコレクションを遂行するように構成されたソリッドステートドライブ(SolidStateDrive、SSD)を含むシステムを示す。図1を参照すれば、コンピュータ105はプロセッサ110、メモリ115、及びSSD120を含む。プロセッサ110は任意の多様なプロセッサ、例えばインテルゼオン、セルラーン、アイテニアム、又はアトムプロセッサ、又はAMDオプテロンプロセッサである。メモリ115は不揮発性メモリ(例えばフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、持続性ランダムアクセスメモリ(Persistent Random Access Memory、PRAM)等の任意の多様なメモリであるが、一般的に動的ランダムアクセスメモリ(DRAM)である。SSD120は任意の多様なSSDである。また、SSD120は本発明の技術的思想の実施形態から効果を受ける等価的なストレージ装置に置き換えることができる。コンピュータ105はラップトップコンピュータ、サーバー、又はスマートフォンのようなモバイルコンピューティング装置の汎用性を失わずに、類似な機能を提供する任意の機械により置き換えることができる。簡易化のために、コンピュータ105はホスト106と称される。
図2は図1のホスト106の追加的な詳細を示す。図2を参照すれば、通常ホスト106は1つ以上のプロセッサ110を含む。プロセッサ110はメモリコントローラ205及びクロック210を含む。プロセッサ110はホスト106の構成要素の動作を調整するのに使用される。プロセッサ110は、例えばランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、又は他の状態格納媒体を含むメモリ115に連結される。プロセッサ110はSSD120に連結され、そして、例えばイーサーネットコネクター又は無線コネクターであるネットワークコネクター215に連結される。プロセッサ110は使用者インターフェイス225が付着され、そして他の構成要素の中の入力/出力エンジン230を利用して管理される入力/出力インターフェイスポートが付着されるバス220に連結される。
図3は受動ガーベッジコレクションを遂行するように構成された図1のSSD120の詳細を示す。図3において、SSD120は情報(動作又はデータのような)を伝送及び受信するのに使用される受信回路305を含む。SSD120はSSDコントローラ310及びフラッシュメモリ315を含む。SSDコントローラ310はSSD120の動作を制御する。フラッシュメモリ315はガーベッジコレクションの対象であるブロックにデータを格納する。
SSDコントローラ310は構成要素として状態判別器320、比較器325、条件ストレージ330、トリガー回路335、及びガーベッジコレクションロジック340を含む。状態判別器320はSSD120の状態を判別する。SSD120の状態は図1のホスト106によってどんな条件が示されたかに依存する。先に言及したように、ホスト106は、遊休区間(即ち、SSD120が図1のホスト106又は他のホストからの要請を処理しない区間)又はキュー深さ(即ち、どのぐらい多くのコマンドが処理されることを待機しているのか)のような異なる条件を示す。図1のホスト106によって示された条件に依存して、状態判別器320はSSD120の適切な状態を判別する。
比較器325は状態判別器320によって判別されたSSD120の状態を図1のホスト106によって示された条件と比較する。例えば、図1のホスト106が50msの遊休区間を示せば、比較器325は示された遊休区間を状態判別器320によって判別されるSSD120が実際に遊休状態であった長さと比較する。SSD120が少なくとも50msの間遊休状態であったら、比較器325は該当条件が満足されることを示す。他の例として、図1のホスト106が10コマンドのキュー深さを示せば、比較器325はこのキュー深さをSSD120に現在係留中であるコマンドの数と比較する。SSD120が10コマンドより多くないコマンドを現在係留中であれば、比較器325は該当条件が満足されたことを示す。
条件ストレージ330は受動ガーベッジコレクションを何時遂行するかを判別するのに使用される条件をSSD120に局部的に格納する。例えば、図1のホスト106が50msの遊休区間を示せば、条件ストレージ330は50msを条件として格納する。他の例として、図1のホスト106が10コマンドのキュー深さを示せば、条件ストレージ330は10コマンドを条件として格納する。比較器325は条件ストレージ330からの条件にアクセスする。
条件は単一又は複合的である。例えば、図1のホストは50msの遊休区間と同一の単一条件を示す。その後に、SSD120が50msの間遊休状態であれば、受動ガーベッジコレクションがトリガーされる。このような方式により受動ガーベッジコレクションを遂行することの長所はSSD120が図1のホスト106からの命令無しにフラッシュメモリ315内に可能な多くの自由消去ブロックを維持することである。しかし、図1のホスト106が50msの遊休区間及び10,000自由消去ブロック未満の複合条件を示すと、このような条件により、SSD120が充分な区間の間遊休状態であっても、SSD120が充分な自由消去ブロックを有すれば、SSD120は受動ガーベッジコレクションを遂行しない。受動ガーベッジコレクションを遂行しないことによって、SSD120はガーベッジコレクションが完了されるまで待機しなければならない他のコマンドが入力される時に不必要にビジーになることを回避できる。
複合条件が使用される時に、条件は通常的な論理演算子(論理和、論理積、及び否定)を利用して必要な複合条件に、そして必要である数に組合わされる。例えば、図1のホスト106は50msの区間、10コマンド以下のキュー深さ、そして10,000未満の自由消去ブロックの論理積(AND)の条件を示す。このような組合せは、受動ガーベッジコレクションを遂行するためには50msの区間の間にSSD120のキュー深さが10コマンド未満でなければならず、そしてもフラッシュメモリ315に10,000未満の自由消去ブロックが存在する時のみに受動ガーベッジコレクションが遂行されることを示す。この例において、遊休区間(即ちSSD120がコマンドを処理しない区間)を測定することは、区間はSSD120の全体状態(キューに10又はそれより少ないコマンドが存在し、10,000未満の自由消去ブロックが存在)が変更されず、維持される区間を言う。このような区間のさらに一般化された概念を利用して、遊休区間は50msの区間及びキュー深さ0の論理積の複合条件を利用して示される。
条件が複合的である時、状態判別器320はSSD120に対する多重状態を判別する。例えば、図1のホスト106が50msの区間及び10,000未満の自由消去ブロックの論理積の条件を示せば、状態判別器320はSSD120の遊休時間及び自由消去ブロックカウントの全てを判別する。
トリガー回路335は比較器325の結果を受信する。トリガー回路335は条件が満足される時に受動ガーベッジコレクションを遂行するようにガーベッジコレクションロジック340にトリガー信号を伝送する。
ガーベッジコレクションロジック340はフラッシュメモリ315においてガーベッジコレクションを遂行するロジックである。ガーベッジコレクションそれ自体は通常的なことであり、ここでさらに説明する必要がない。
図3において状態判別器320、比較器325、条件ストレージ330、及びトリガー回路335をSSDコントローラ310内において分離された構成要素として図示したが、本発明の技術的思想の実施形態はこのような構成要素を単一ユニットに又は任意の必要である部分の組合せにより組合わす。図3は受動ガーベッジコレクションの遂行と連関された動作をさらによく示すためにこのような構成要素を分離された要素として図示した。
図4は図1のSSD120に構成コマンドに続いてデータ要請を伝送する図1のホスト106を示す。図4において、ホスト106はSSD120に構成コマンド405を伝送する。構成コマンド405は単一条件又は複合条件の中の1つである条件410を含む。一旦、構成コマンド405を利用して受動ガーベッジコレクションが構成されれば、ホスト106はデータ要請415、420、425を伝送する。図4においてホスト106は3つのデータ要請415、420、425を伝送するとして示したが、本発明の技術的思想の実施形態は任意の数のデータ要請を支援する。
追加的に、ホスト106は多重構成コマンド405を伝送する。例えば、ホスト106は10コマンドのキュー深さを条件410に明示する第1構成コマンドを伝送する。しかし、SSD120に対する応答時間に基づいて、ホスト106は条件410を50msの遊休区間に変更することを決定できる。ホスト106は必要である多くの構成コマンド405を伝送する。通常、最新の構成コマンドが以前の構成コマンドを無効にする。
図5は本発明の技術的思想の実施形態に係る図1のSSD120がどのぐらい長く遊休状態であったかに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図3の比較器325を示す。図5において、遊休区間505は、例えば50msに設定される。状態判別器320は図1のSSD120がどのぐらい長く遊休状態であったかを追跡する。例えば、状態判別器320はSSD120が遊休状態になった時にタイマーを開始し、遊休時間510に図示された周期的状態情報を比較器325に伝送する。比較器325は遊休時間510を遊休区間505と比較する。遊休時間510に基づいて遊休区間505が満足されれば、比較器325は図3のトリガー回路335に伝送されるトリガー515を利用して比較を示す。
図5は比較器325が自由消去ブロックの数520を受信することもまた示す。先に言及したように、図1のホスト106が複合条件を示した状況において、自由消去ブロックの数520は状態判別器320によってまた判別される。しかし、図4の条件410が図1のSSD120の遊休時間のみを考慮する場合、自由消去ブロックの数520は図5において省略される。
図6は本発明の技術的思想の実施形態に係る図1のSSD120のキュー深さに基づいて受動ガーベッジコレクションを遂行するかを判別するのに使用される図3の比較器325を示す。図4の条件410に遊休時間を使用する代わりに、図6が図4の条件410においてキュー深さを使用することを除外すれば、図6は図5と類似である。したがって、キュー深さ閾値605は比較器325によって考慮されるキュー深さ閾値を示す。比較器325はコマンドキューの深さ610として状態判別器320によって判別されるコマンドキューの深さを考慮する。比較の結果として、比較器325はキュー深さ閾値605が満足された時にトリガー515を生成する。
図5のように、図6において比較器325は自由消去ブロックの数520もまた受信する。条件410が自由消去ブロックの閾値数を含むと、状態判別器320は比較器325が自由消去ブロックの閾値数と比較する自由消去ブロックの数520を判別する。図4の条件410が自由消去ブロックの閾値数を含まなければ、自由消去ブロックの数520は図6から省略される。
図7は図1のSSD120が多重コマンドキューを含む時、図1のSSD120のキュー深さを判別する図3の状態判別器320を示す。図7において、状態判別器320は図1のSSD120の3つのコマンドキューの深さを示す深さ705、710、715を受信する。図7において3つの深さ705、710、715を図示したが、本発明の技術的思想の実施形態は任意の数のコマンドキューに対する任意の個数の深さを支援する。
深さ705、710、715が与えられれば、状態判別器320は図6のコマンドキュー深さ610として任意の必要である統計を計算する。例示的な統計は平均720(算術平均であるとも称する)、合計725、中央値730、最小735、及び最大740を含む。しかし、本発明の技術的思想の他の実施形態は他の統計を計算できる。平均720はすべての深さ705、710、715の合計を深さ705、710、715の数で割って計算される。合計725はすべての深さ705、710、715の合計として単純に計算される(合計725はすべてのキューにおいて係留中であるコマンドの全体数を示す)。中央値730はすべてのキューデータサイズが数値的に整列された場合に中央キューのサイズを示す。最小735は係留中であるコマンドの数が最も小さいキューのサイズを示す。そして、最大740は係留中であるコマンドの数が最も大きいキューのサイズを示す。
図8及び図9は本発明の技術的思想の実施形態に係る図1のSSD120において背景ガーベッジコレクションを管理するための手続の順序図を示す。図8のブロック805において、図3のSSDコントローラ310は図1のSSD120が背景ガーベッジコレクションを遂行するようにセットアップされたかを判別する。そうであれば、ブロック810において、図3のSSDコントローラ310は(図3の状態判別器320、比較器325、及び条件ストレージ330の全てを通じて)図4の条件410が満足される時まで待機する。図4の条件410が満足されれば、ブロック815において、図3のトリガー回路335は背景ガーベッジコレクションを開始するようにガーベッジコレクションロジック340をトリガーする。
図9のブロック820において、図3のSSDコントローラ310は背景ガーベッジコレクションが発生する間にホストコマンドが係留中であるか否かを判別する。ホストコマンドが係留中でなければ、ブロック825において背景ガーベッジコレクションが持続される。そうでなければ、ブロック830において、図3のSSDコントローラ310は(図3の状態判別器320、比較器325、及び条件ストレージ330の全てを通じて)図4の条件410が相変わらず満足されるか否か判別する。満足されれば、制御はブロック825に移って背景ガーベッジコレクションが持続される。満足されなければ、ブロック835において、背景ガーベッジコレクションが中止されて係留中であるホストコマンドの処理が許容される。
図10は本発明の技術的思想の実施形態に係る図1のSSD120が受動ガーベッジコレクションを遂行するためにどのように構成されるか否かに対する例示的な手続の順序図を示す。図10のブロック905において、図3の受信回路305は図4の構成コマンド405を受信する。ブロック910において、図3のSSDコントローラ310は図4の構成コマンド405により図4の条件410を識別する。ブロック915において、条件ストレージ330は図4の条件410を格納する。ブロック920において、図3のSSDコントローラ310は図4の条件410を利用して受動的にガーベッジコレクションをトリガーするか否かを判別する。ブロック920がどのようにして遂行されるかの例示は後述の図11及び図12により図示する。
ブロック925において、図3の受信回路305は図1のホスト106からガーベッジコレクションを受信するためのコマンドを受信する。このコマンドはホスト開始ガーベッジコレクションのためである。ブロック930において、図3のガーベッジコレクションロジック340はホスト開始ガーベッジコレクションを遂行する。手順はブロック920に戻る。ホスト開始ガーベッジコレクションは選択的であり、点線矢印935として図示したように省略できる。
図11は本発明の技術的思想の実施形態に係る図1のSSD120が図5の遊休時間を利用し、そして選択的に図1のSSD120に対する図5の自由ブロックカウント520を利用して受動ガーベッジコレクションを遂行する時を判別する例示的な手続の順序図である。図11のブロック1005において、状態判別器320は図1のSSD120に対する図5の遊休時間510を追跡する。ブロック1010において、図3の比較器325は図5の遊休時間510を図5の遊休区間505と比較する。ブロック1015において、図3のSSDコントローラ310は図5の遊休時間510が図5の遊休区間505を満足するかを判別する。満足しなければ、制御はブロック1005に戻る。
図5の遊休時間510が図5の遊休区間505を満足すれば、ブロック1020において図3のSSDコントローラ310は図1のSSD120に充分な数の自由消去ブロックが存在するか否かを判別する。充分な数の自由消去ブロックがあれば、制御はブロック1005に戻る。そうでなければ、制御はブロック930に進行し、ガーベッジコレクションロジック340は図3のフラッシュメモリ315においてガーベッジコレクションを遂行する。図11において、ブロック930はホスト開始ガーベッジコレクション動作よりは受動ガーベッジコレクション動作である。しかし、図3のガーベッジコレクションロジック340に対して差異はない。破線矢印1025として図示したように、図1のSSD120の自由消去ブロックの数が図4の条件410の一部でない場合、ブロック1020は選択的(optional)である。
図12は本発明の技術的思想の実施形態に係る図1のSSD120が図6のキュー深さ605を利用し、そして選択的に図1のSSD120に対する図6の自由ブロックカウント520を使用して受動ガーベッジコレクションを遂行する時を判別する例示的な手続の順序図を示す。図12のブロック1105において、状態判別器320は図1のSSD120に対する図6のキュー深さ605を追跡する。ブロック1110において、図3の比較器325は図6のキュー深さ605を図6のキュー深さ閾値610と比較する。ブロック1115において、図3のSSDコントローラ310は図6のキュー深さ605が図6のキュー深さ閾値610を満足するか否かを判別する。満足しなければ、制御はブロック1105に戻る。
図6のコマンドキュー深さ610が図6のキュー深さ閾値605を満足すれば、ブロック1120において図3のSSDコントローラ310は図1のSSD120の自由消去ブロックの数が充分であるか否かを判別する。自由消去ブロックの数が充分であれば、制御はブロック1105に戻る。そうでなければ、制御はブロック930に進行し、ガーベッジコレクションロジック340は図3のフラッシュメモリ315においてガーベッジコレクションを遂行する。図12において、ブロック930はホスト開始ガーベッジコレクション動作がない受動ガーベッジコレクション動作である。しかし、図3のガーベッジコレクションロジック340に差異はない。点線矢印1125に図示したように、図1のSSD120の自由消去ブロックの数が図4の条件410の一部でない場合、ブロック1120は選択的である。
図13は本発明の技術的思想の実施形態に係る図3の状態判別器320が図1のSSD120が多重コマンドキューを含む時に図1のSSD120に対する図6のキュー深さ610を判別する例示的な手続の順序図を示す。ブロック1205において、図3の状態判別器320は複数のキューの各々に対する図7の深さ705、710、715を判別する。ブロック1210において、図3の状態判別器320は複数のキューに対する図7の深さ705、710、715から図7の平均720、合計725、中央値730、最小735、又は最大740のような統計を計算する。状態判別器320は計算された統計を図6のキュー深さ610に使用する。
図8乃至図13に、本発明の技術的思想の一部の実施形態を図示した。しかし、この分野に熟練した者は、ブロックの順序を変えること、ブロックを省略すること、又は図面に図示されない連結を含むことによって本発明の技術的思想の他の実施形態が可能であることを認識する。順序図のこのようなすべての変更は直接的に説明されても説明されなくとも本発明の技術的思想の実施形態と看做される。
以下の説明は本発明の技術的思想の一部の側面が具現される適切な機械の一般的な説明を提供する。機械は少なくとも一部は他の機械から受信される指示、仮想現実(VR)環境との相互作用、生体フィードバック、又は他の入力信号のみならず、キーボード、マウス等のような通常的な入力装置からの入力によって制御される。ここに使用したように、“機械”の用語は単一機械、仮想機械、又は機械、仮想機械、共に動作する装置と通信するように結合されたシステムを広く含む。例示的な機械は、例えば自動車、汽車、タクシー等の個人用又は公共輸送のような輸送装置のみならず、個人用コンピュータ、ワークステーション、サーバー、ポータブルコンピュータ、ハンドヘルド装置、電話、タブレット等のコンピューティング装置を含む。
機械はプログラム可能な又はプログラム不可能である論理装置又はアレイ、ASIC(Application Specific Integrated Circuit)、埋め込み型コンピュータ、スマトカード等の埋め込み型コントローラを含む。機械はネットワークインターフェイス、モデム、又は他の通信結合を通じるように1つ以上の遠隔機械に対する1つ以上の連結を活用する。機械はイントラネット、インターネット、LAN(local area networks)、WAN(wide area networks)等の物理的及び/又は論理的ネットワークの手段により互いに連結される。この分野に熟練した者はネットワーク通信が多様な有線及び/又は無線近距離又は遠距離キャリヤー及び無線周波数(RF)、衛星、マイクロ波、IEEE802.11、ブルートゥース(登録商標)、光学、赤外線、ケーブル、レーザー等を含むプロトコルを活用することを理解すべきである。
本発明の技術的思想の実施形態は、機械によってアクセスされる時に機械が作業を遂行するか、又は抽象的なデータタイプ又は低レベルハードウェアコンテキストを定義することを発生させる関数、手続、データ構造、応用プログラム等を含む連関されたデータを参照して又は協力して説明される。連関されたデータは、例えばRAM、ROM等の揮発性及び/又は不揮発性メモリ、又は他のストレージ装置、及びハードドライブ、フロッピーディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージ等を含む連関されたストレージ媒体に格納される。連関されたデータは物理的及び/又は論理的ネットワークを含む伝送環境を経てパケット、直列データ、並列データ、伝送信号等の形態に伝達され、圧縮された又は暗号化されたフォーマットに利用される。連関されたデータは分散環境により使用され、機械アクセスに対して地域的及び/又は遠隔に格納される。
本発明の技術的思想の実施形態は1つ以上のプロセッサによって実行可能であり、ここに説明したように本発明の技術的思想を遂行するようにする命令を含む非一時的機械読出し媒体を含む。
図示した実施形態を参照して説明した本発明の技術的思想の原則を有すれば、図示した実施形態がこのような原則から遠くならず、配列及び詳細により修正され、必要である任意の方法により組合わされると理解されるべきである。先の説明が具体的な実施形態に集中したが、他の構成もまた考慮される。具体的に、“本発明の技術的思想の実施形態に係る”のような説明又はここに使用した類似なことに拘らず、このような文句は一般的に実施形態の可能性を示し、本発明の技術的思想を具体的な実施形態の構成による限定を意図しない。ここに使用したように、このような用語は他の実施形態による組合せ可能な同一の又は異なる実施形態を参照する。
先に説明した実施形態は本発明の技術的思想をそれに限定すると解釈されない。少ない実施形態のみを説明したが、この分野に熟練した者は本記載の新規な説明及び長所から実質的に遠くならず、このような実施形態に多くの修正が可能であることを十分に理解できる。したがって、このようなすべての修正は請求項において定義されるように本発明の技術的思想の範囲内に含まれると意図される。
本発明の技術的思想の実施形態は限定無しに下記のステートメントに拡張される。
第1ステートメント。
本発明の技術的思想の実施形態はソリッドステートドライブ(SSD)を含む。SSDはデータのためのストレージ、前記ストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジック、遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンド及びデータ要請を受信する受信回路、前記条件を格納する条件ストレージ、前記SSDの状態を判別する状態判別器、及び前記条件と前記SSDの状態とを比較する比較器を含む。
第2ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記比較器が、前記SSDの前記状態が前記条件を満足することを示すと、前記ガーベッジコレクションロジックが前記ストレージにおいてガーベッジコレクションを遂行するようにトリガーするトリガー回路をさらに含む。
第3ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記条件は複合条件を含む。
第4ステートメント。
本発明の技術的思想の実施形態は第2ステートメントにしたがうSSDを含み、前記トリガー回路は前記比較器が前記SSDの状態が前記条件を満足し、そして前記SSDの自由消去ブロックの数が閾値より低いことを示すと、前記ガーベッジコレクションロジックが前記ストレージにおいてガーベッジコレクションを遂行するようにトリガーする。
第5ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記受信回路はホストから前記構成コマンドを受信する。
第6ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記条件は遊休区間を含み、前記状態判別器は前記SSDに対する遊休時間を判別し、前記比較器は前記SSDに対する遊休時間を前記遊休区間と比較する。
第7ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記条件はキュー深さ閾値を含み、前記状態判別器は前記SSDに対するコマンドキュー深さを判別し、前記比較器は前記SSDに対する前記コマンドキュー深さを前記キュー深さ閾値と比較する。
第8ステートメント。
本発明の技術的思想の実施形態は第7ステートメントにしたがうSSDを含み、前記状態判別器は複数の深さから前記SSDに対する前記コマンドキュー深さを判別する。
第9ステートメント。
本発明の技術的思想の実施形態は第8ステートメントにしたがうSSDを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの平均として計算する。
第10ステートメント。
本発明の技術的思想の実施形態は第8ステートメントにしたがうSSDを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの合計として計算する。
第11ステートメント。
本発明の技術的思想の実施形態は第8ステートメントにしたがうSSDを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの中央値として計算する。
第12ステートメント。
本発明の技術的思想の実施形態は第8ステートメントにしたがうSSDを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの最大として計算する。
第13ステートメント
本発明の技術的思想の実施形態は第8ステートメントにしたがうSSDを含み、前記状態判別器は前記コマンドキュー深さを前記複数の深さの最小として計算する。
第14ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記受信回路は前記ホストから命令を受信してガーベッジコレクションを遂行する。
第15ステートメント。
本発明の技術的思想の実施形態は第1ステートメントにしたがうSSDを含み、前記構成コマンドは使用者が構成可能な構成コマンドである。
第16ステートメント。
本発明の技術的思想の実施形態はガーベッジコレクションを遂行する方法を含む。ガーベッジコレクションを遂行する方法はソリッドステートドライブ(SSD)において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、前記条件を前記SSDに格納する段階、及び前記条件を利用して前記SSDにおいてガーベッジコレクションを遂行する段階を含む。
第17ステートメント。
本発明の技術的思想の実施形態は第16ステートメントにしたがう方法を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいてホストから前記構成コマンドを受信する段階を含む。
第18ステートメント。
本発明の技術的思想の実施形態は第16ステートメントにしたがう方法を含み、前記条件を利用して前記SSDにおいてガーベッジコレクションを遂行する段階は、前記SSDの状態をモニターする段階、前記SSDの状態を前記条件と比較する段階、及び前記SSDの状態が前記条件を満足すれば、前記SSDにおいてガーベッジコレクションを遂行する段階を含む。
第19ステートメント。
本発明の技術的思想の実施形態は第18ステートメントにしたがう方法を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて前記遊休区間を含む前記構成コマンドを受信する段階を含み、前記SSDの状態をモニターする段階は前記SSDに対する遊休時間を追跡する段階を含み、前記SSDの状態を前記条件と比較する段階は前記SSDに対する遊休時間を前記遊休区間と比較する段階を含む。
第20ステートメント。
本発明の技術的思想の実施形態は第18ステートメントにしたがう方法を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて前記キュー深さ閾値を含む前記構成コマンドを受信する段階を含み、前記SSDの状態をモニターする段階は前記SSDに対するコマンドキュー深さを判別する段階を含み、そして前記SSDの状態を前記条件と比較する段階は前記キュー深さ閾値を前記SSDに対するコマンドキュー深さと比較する段階を含む。
第21ステートメント。
本発明の技術的思想の実施形態は第20ステートメントにしたがう方法を含み、前記SSDの状態をモニターする段階は前記SSDに対するコマンドキュー深さを判別する段階を含み、前記SSDに対するコマンドキュー深さを判別する段階は複数のコマンドキューに対する複数の深さを判別する段階、及び前記複数の深さから前記コマンドキュー深さを判別する段階を含む。
第22ステートメント。
本発明の技術的思想の実施形態は第21ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての平均として計算する段階を含む。
第23ステートメント。本発明の技術的思想の実施形態は第21ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての合計として計算する段階を含む。
第24ステートメント。
本発明の技術的思想の実施形態は第21ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての中央値として計算する段階を含む。
第25ステートメント。
本発明の技術的思想の実施形態は第21ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最大として計算する段階を含む。
第26ステートメント。
本発明の技術的思想の実施形態は第21ステートメントにしたがう方法を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最小として計算する段階を含む。
第27ステートメント。
本発明の技術的思想の実施形態は第16ステートメントにしたがう方法を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて複合条件を含む構成コマンドを受信する段階を含む。
第28ステートメント。
本発明の技術的思想の実施形態は第18ステートメントにしたがう方法を含み、前記SSDの状態が前記条件を満足すれば、前記SSDにおいてガーベッジコレクションを遂行する段階は前記SSDの状態が前記条件を満足し、そして前記SSDの自由消去ブロックの数が閾値より低い場合、前記SSDにおいてガーベッジコレクションを遂行する段階を含む。
第29ステートメント。
本発明の技術的思想の実施形態は第16ステートメントにしたがう方法を含み、ホストから命令を受信してガーベッジコレクションを遂行する段階をさらに含む。
第30ステートメント。
本発明の技術的思想の実施形態は第16ステートメントにしたがう方法を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて前記遊休区間及び前記キュー深さ閾値を含むセットから得られる条件を含む使用者が構成可能な構成コマンドを受信する段階を含む。
第31ステートメント。
本発明の技術的思想の実施形態は有形のストレージ媒体を含む物品を含む。前記ストレージ媒体はそれに格納された非一時的命令を含む。前記非一時的命令が実行されれば、ソリッドステートドライブ(SSD)において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階、前記SSDに前記条件を格納する段階、及び前記条件を利用して前記SSDにおいてガーベッジコレクションを遂行する段階が誘発される。
第32ステートメント。
本発明の技術的思想の実施形態は第31ステートメントにしたがう物品を含む。SSDにおいて構成コマンドを受信する段階は前記SSDにおいてホストから前記構成コマンドを受信する段階を含む。
第33ステートメント。
本発明の技術的思想の実施形態は第31ステートメントにしたがう物品を含む。前記条件を利用して前記SSDにおいてガーベッジコレクションを遂行する段階は前記SSDの状態をモニターする段階、前記SSDの状態を前記条件と比較する段階、及び前記SSDの状態が前記条件を満足すれば、前記SSDにおいてガーベッジコレクションを遂行する段階を含む。
第34ステートメント。
本発明の技術的思想の実施形態は第33ステートメントにしたがう物品を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて前記遊休区間を含む前記構成コマンドを受信する段階を含み、前記SSDの状態をモニターする段階は前記SSDに対する遊休時間を追跡する段階を含み、前記SSDの状態を前記条件と比較する段階は前記SSDに対する遊休時間を前記遊休区間と比較する段階を含む。
第35ステートメント。
本発明の技術的思想の実施形態は第33ステートメントにしたがう物品を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて前記キュー深さ閾値を含む前記構成コマンドを受信する段階を含み、前記SSDの状態をモニターする段階は前記SSDに対するコマンドキュー深さを判別する段階を含み、そして前記SSDの状態を前記条件と比較する段階は前記キュー深さ閾値を前記SSDに対するコマンドキュー深さと比較する段階を含む。
第36ステートメント。
本発明の技術的思想の実施形態は第35ステートメントにしたがう物品を含み、前記SSDの状態をモニターする段階は前記SSDに対するコマンドキュー深さを判別する段階を含み、前記SSDに対するコマンドキュー深さを判別する段階は複数のコマンドキューに対する複数の深さを判別する段階、及び前記複数の深さから前記コマンドキュー深さを判別する段階を含む。
第37ステートメント。
本発明の技術的思想の実施形態は第36ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての平均として計算する段階を含む。
第38ステートメント。
本発明の技術的思想の実施形態は第36ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての合計として計算する段階を含む。
第39ステートメント。
本発明の技術的思想の実施形態は第36ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての中央値として計算する段階を含む。
第40ステートメント。
本発明の技術的思想の実施形態は第36ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最大として計算する段階を含む。
第41ステートメント。
本発明の技術的思想の実施形態は第36ステートメントにしたがう物品を含み、前記複数の深さから前記コマンドキュー深さを判別する段階は前記コマンドキュー深さを前記複数の深さの全ての最小として計算する段階を含む。
第42ステートメント。
本発明の技術的思想の実施形態は第31ステートメントにしたがう物品を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて複合条件を含む構成コマンドを受信する段階を含む。
第43ステートメント。
本発明の技術的思想の実施形態は第33ステートメントにしたがう物品を含み、前記SSDの状態が前記条件を満足すれば、前記SSDにおいてガーベッジコレクションを遂行する段階は前記SSDの状態が前記条件を満足し、そして前記SSDの自由消去ブロックの数が閾値より低い場合、前記SSDにおいてガーベッジコレクションを遂行する段階を含む。
第44ステートメント。
本発明の技術的思想の実施形態は第31ステートメントにしたがう物品を含み、前記ストレージ媒体は機械によって実行された時にホストから命令を受信してガーベッジコレクションを遂行する段階を発生させる非一時的命令をさらに格納する。
第45ステートメント。
本発明の技術的思想の実施形態は第31ステートメントにしたがう物品を含み、SSDにおいて構成コマンドを受信する段階は前記SSDにおいて前記遊休区間及び前記キュー深さ閾値を含むセットから得られる条件を含む使用者構成可能な構成コマンドを受信する段階を含む。
結論的に、ここに説明した実施形態に対する置換の広い多様性の観点において、詳細な説明及び添付した素材は説明のみを意図し、本発明の技術的思想の範囲を制限しない。したがって、本発明の技術的思想として請求することはこのようなすべての修正を請求項及びこれに等価的なことの範囲及び思想内に含まれる。
105 コンピュータ
106 ホスト
110 プロセッサ
115 メモリ
120 ソリッドステートドライブ(SSD)
205 メモリコントローラ
210 クロック
215 ネットワークコネクター
220 バス
225 使用者インターフェイス
230 入力/出力エンジン
305 受信回路
310 SSDコントローラ
315 フラッシュメモリ
320 状態判別器
325 比較器
330 条件ストレージ
335 トリガー回路
340 ガーベッジコレクションロジック
405 構成コマンド
410 条件
415、420、425 データ要請
505 遊休区間
510 遊休時間
515 トリガー
520 自由消去ブロックの数
605 キュー深さ閾値
610 コマンドキュー深さ
705、710、715 深さ
720 平均
725 合計
730 中央値
735 最小
740 最大

Claims (20)

  1. ソリッドステートドライブ(SSD)において、
    データのためのストレージと、
    前記ストレージにおいてガーベッジコレクションを遂行するガーベッジコレクションロジックと、
    遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンド及びデータ要請を受信する受信回路と、
    前記条件を格納する条件ストレージと、
    前記ソリッドステートドライブの状態を判別する状態判別器と、
    前記条件と前記ソリッドステートドライブの状態とを比較する比較器と、
    前記ソリッドステートドライブの状態が前記条件を満足することを示す前記比較器の少なくとも一部に基づき、前記ストレージにおいて前記ガーベッジコレクションを遂行するように前記ガーベッジコレクションロジックにトリガー信号を伝送するトリガー回路と、
    を含み、
    ここで、前記トリガー回路は、前記ソリッドステートドライブにおいて入出力要請の間に前記ストレージにおいて前記ガーベッジコレクションを遂行するように動作し、
    記状態判別器は、前記ソリッドステートドライブに対する遊休時間を判別し、前記比較器は、前記ソリッドステートドライブに対する前記遊休時間を前記遊休区間と比較し、
    前記構成コマンドはホストコンピュータから受信され、
    前記条件は、前記遊休区間及び前記キュー深さ閾値の両方を含み、前記遊休区間は0単位時間より大きく、
    前記状態判別器は、前記ソリッドステートドライブに対する前記遊休時間と前記ソリッドステートドライブに対するコマンドキュー深さを判別するよう動作し、
    前記比較器は、前記ソリッドステートドライブに対する前記コマンドキュー深さを前記キュー深さ閾値と比較するよう動作し、
    前記状態判別器は、複数のコマンドキューに対する複数の深さから前記ソリッドステートドライブに対する前記コマンドキュー深さを判別することを特徴とするソリッドステートドライブ。
  2. 前記トリガー回路は、前記ソリッドステートドライブの状態が前記条件を満足し、そして前記ソリッドステートドライブの自由消去ブロックの数が閾値より低いことを示す前記比較器の少なくとも一部に基づき、前記ガーベッジコレクションロジックが前記ストレージにおいて前記ガーベッジコレクションを遂行するようにトリガーすることを特徴とする請求項1に記載のソリッドステートドライブ。
  3. 前記状態判別器は、前記コマンドキュー深さを前記複数の深さの平均(average)として計算することを特徴とする請求項1に記載のソリッドステートドライブ。
  4. 前記状態判別器は、前記コマンドキュー深さを前記複数の深さの最大として計算することを特徴とする請求項1に記載のソリッドステートドライブ。
  5. 前記状態判別器は、前記コマンドキュー深さを前記複数の深さの合計として計算することを特徴とする請求項1に記載のソリッドステートドライブ。
  6. 前記状態判別器は、前記コマンドキュー深さを前記複数の深さの中央値(median)として計算することを特徴とする請求項1に記載のソリッドステートドライブ。
  7. 前記状態判別器は、前記コマンドキュー深さを前記複数の深さの最小として計算することを特徴とする請求項1に記載のソリッドステートドライブ。
  8. 前記受信回路により受信された前記構成コマンドを確認し、前記条件を前記条件ストレージに格納し、前記条件に応答する前記ソリッドステートドライブの状態を判別する前記状態判別器を構成するプロセッサをさらに含むことを特徴とする請求項1に記載のソリッドステートドライブ。
  9. ガーベッジコレクションを遂行する方法において、
    ソリッドステートドライブ(SSD)が、
    遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信する段階と、
    前記条件を前記ソリッドステートドライブに格納する段階と、
    前記ソリッドステートドライブにおいて前記条件に基づき前記ガーベッジコレクションを遂行する段階と、を含み、
    前記ソリッドステートドライブにおける前記条件に基づく前記ガーベッジコレクションの遂行は、入出力要請の間に前記ソリッドステートドライブにおいて前記ガーベッジコレクションを遂行するように動作し、
    前記条件を利用して前記ソリッドステートドライブにおいて前記ガーベッジコレクションを遂行する段階は、
    前記ソリッドステートドライブの状態をモニターする段階と、
    前記ソリッドステートドライブの状態を前記条件と比較する段階と、
    前記条件を満足する前記ソリッドステートドライブの状態の少なくとも一部に基づいて前記ソリッドステートドライブにおいて前記ガーベッジコレクションを遂行する段階と、を含み、
    前記ソリッドステートドライブにおいて、前記遊休区間と前記キュー深さ閾値を含むセットから得られた前記条件を含む前記構成コマンドを受信する段階は、
    前記ソリッドステートドライブにおいて、前記遊休区間と前記キュー深さ閾値を含むセットから得られた前記条件を含む前記構成コマンドをホストコンピュータから受信することを含み、
    前記遊休区間は、0単位時間より大きく、
    前記ソリッドステートドライブの状態をモニターする段階は、
    前記ソリッドステートドライブに対する遊休時間を追跡する段階と、前記ソリッドステートドライブに対する前記キュー深さ閾値を判別する段階と、を含み、
    前記ソリッドステートドライブの状態を前記条件と比較する段階は、
    前記ソリッドステートドライブに対する前記遊休時間を前記遊休区間と比較する段階と、前記キュー深さ閾値と前記ソリッドステートドライブに対するコマンドキュー深さを比較する段階と、を含み、
    前記ソリッドステートドライブの状態をモニターする段階は、前記ソリッドステートドライブに対する前記コマンドキュー深さを判別する段階を含み、
    前記ソリッドステートドライブに対する前記コマンドキュー深さを判別する段階は、
    複数のコマンドキューに対する複数の深さを判別する段階と、
    前記複数の深さから前記コマンドキュー深さを判別する段階と、を含むことを特徴とするガーベッジコレクションを遂行する方法。
  10. 前記ソリッドステートドライブにおいて前記構成コマンドを受信する段階は、前記遊休区間を含む前記構成コマンドを受信する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  11. 前記ソリッドステートドライブにおいて前記構成コマンドを受信する段階は前記キュー深さ閾値を含む前記構成コマンドを受信する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  12. 前記複数の深さから前記コマンドキュー深さを判別する段階は、前記コマンドキュー深さを前記複数の深さの全ての平均として計算する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  13. 前記複数の深さから前記コマンドキュー深さを判別する段階は、前記コマンドキュー深さを前記複数の深さの全ての最大として計算する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  14. 前記複数の深さから前記コマンドキュー深さを判別する段階は、前記コマンドキュー深さを前記複数の深さの全ての合計として計算する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  15. 前記複数の深さから前記コマンドキュー深さを判別する段階は、前記コマンドキュー深さを前記複数の深さの全ての中央値として計算する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  16. 前記複数の深さから前記コマンドキュー深さを判別する段階は、前記コマンドキュー深さを前記複数の深さの全ての最小として計算する段階を含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  17. 前記条件を満足する前記ソリッドステートドライブの状態の少なくとも一部に基づいて、前記ソリッドステートドライブにおいて前記ガーベッジコレクションを遂行する段階は、前記条件を満足する前記ソリッドステートドライブの状態の少なくとも一部に基づく前記ガーベッジコレクションの遂行と、前記ソリッドステートドライブの自由消去ブロックの数が閾値より低いことを含むことを特徴とする請求項記載のガーベッジコレクションを遂行する方法。
  18. ホストコンピュータから命令を受信して前記ガーベッジコレクションを遂行する段階をさらに含むことを特徴とする請求項に記載のガーベッジコレクションを遂行する方法。
  19. 有形の(tangible)ストレージ媒体を含む物品であって、
    有形の非一時的(non−transitory)ストレージ媒体は、それに格納された命令を含み、前記命令が実行されれば、その結果としてソリッドステートドライブ(SSD)において遊休区間及びキュー深さ閾値を含むセットから得られる条件を含む構成コマンドを受信し、
    前記ソリッドステートドライブに前記条件を格納し、
    前記ソリッドステートドライブにおいてガーベッジコレクションを前記条件に基づいて遂行し、
    前記条件に基づく前記ガーベッジコレクションの遂行は、前記ソリッドステートドライブの入出力要請の間に前記ソリッドステートドライブにおいて前記ガーベッジコレクションを遂行するように動作し、
    前記条件を利用しての前記ソリッドステートドライブにおける前記ガーベッジコレクションの遂行は、
    前記ソリッドステートドライブの状態のモニターと、
    前記ソリッドステートドライブの状態と前記条件の比較と、
    前記条件を満足する前記ソリッドステートドライブの状態の少なくとも一部に基づく、前記ソリッドステートドライブの前記ガーベッジコレクションの遂行と、を含み、
    前記ソリッドステートドライブにおいて、前記遊休区間と前記キュー深さ閾値を含むセットから得られた前記条件を含む前記構成コマンドの受信は、
    前記ソリッドステートドライブにおいて、ホストコンピュータから前記構成コマンドを受信し、
    前記構成コマンドは、前記遊休区間と前記キュー深さ閾値を含む前記条件を含み、
    前記遊休区間は、0単位時間より大きく、
    前記ソリッドステートドライブの状態のモニターは、
    前記ソリッドステートドライブに対する遊休時間の追跡と、
    前記ソリッドステートドライブに対するキュー深さの判別を含み、
    前記ソリッドステートドライブの状態と前記条件の比較は、
    前記ソリッドステートドライブに対する前記遊休時間と前記遊休区間の比較と、
    前記キュー深さ閾値と前記ソリッドステートドライブに対するコマンドキュー深さの比較と、を含み、
    前記キュー深さの判別は、複数のコマンドキューに対する複数の深さから前記ソリッドステートドライブに対する前記コマンドキュー深さを判別することを特徴とするストレージ媒体を含む物品。
  20. 前記条件を満足する前記ソリッドステートドライブの状態の少なくとも一部に基づく前記ソリッドステートドライブにおける前記ガーベッジコレクションの遂行は、
    前記条件を満足する前記ソリッドステートドライブの状態の少なくとも一部に基づく前記ソリッドステートドライブにおける前記ガーベッジコレクションの遂行と、
    前記ソリッドステートドライブの自由消去ブロックの数が閾値より低いことを含むことを特徴とする請求項19に記載のストレージ媒体を含む物品。
JP2017023269A 2016-03-17 2017-02-10 ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品 Active JP6847694B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662309954P 2016-03-17 2016-03-17
US62/309954 2016-03-17
US15/151,470 US10409719B2 (en) 2016-03-17 2016-05-10 User configurable passive background operation
US15/151470 2016-05-10

Publications (3)

Publication Number Publication Date
JP2017168088A JP2017168088A (ja) 2017-09-21
JP2017168088A5 JP2017168088A5 (ja) 2020-03-05
JP6847694B2 true JP6847694B2 (ja) 2021-03-24

Family

ID=59855673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017023269A Active JP6847694B2 (ja) 2016-03-17 2017-02-10 ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品

Country Status (5)

Country Link
US (1) US10409719B2 (ja)
JP (1) JP6847694B2 (ja)
KR (1) KR20170108788A (ja)
CN (1) CN107203337B (ja)
TW (1) TWI682277B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018181281A (ja) * 2017-04-21 2018-11-15 富士通株式会社 ストレージシステム、制御装置及びストレージ装置
JP6785204B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
US11537513B2 (en) * 2017-12-11 2022-12-27 SK Hynix Inc. Apparatus and method for operating garbage collection using host idle
KR20190102390A (ko) * 2018-02-26 2019-09-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20190108788A (ko) * 2018-03-15 2019-09-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
JP6901427B2 (ja) * 2018-03-27 2021-07-14 キオクシア株式会社 ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法
KR102546255B1 (ko) * 2018-08-03 2023-06-21 삼성전자주식회사 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템
DE102019118631A1 (de) 2018-08-03 2020-02-06 Samsung Electronics Co., Ltd. Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben
TWI739075B (zh) * 2019-01-03 2021-09-11 慧榮科技股份有限公司 閃存的資料寫入方法及電腦程式產品
US11288185B2 (en) 2019-01-03 2022-03-29 Silicon Motion, Inc. Method and computer program product for performing data writes into a flash memory
KR102689985B1 (ko) * 2019-06-13 2024-08-01 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
KR20210074876A (ko) 2019-12-12 2021-06-22 삼성전자주식회사 호스트 장치와 인터페이스를 수행하는 스토리지 장치 및 이의 동작 방법
CN114168082B (zh) * 2021-12-10 2023-07-04 深圳忆联信息系统有限公司 避免ssd空闲块耗尽的方法、装置、计算机设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03141442A (ja) * 1989-10-27 1991-06-17 Hitachi Ltd タスク制御方式
JP2002297443A (ja) * 2001-04-02 2002-10-11 Sharp Corp 動的メモリ管理装置と動的メモリ管理方法とコンピュータプログラムとこれを記録した記録媒体およびこれらを備えた携帯端末
US7743276B2 (en) 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8032724B1 (en) * 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8166233B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
US8370720B2 (en) 2009-08-19 2013-02-05 Ocz Technology Group, Inc. Mass storage device and method for offline background scrubbing of solid-state memory devices
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
CN102147767B (zh) * 2011-04-26 2014-04-02 记忆科技(深圳)有限公司 固态硬盘垃圾收集参数动态调整方法及其系统
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
KR20130048594A (ko) 2011-11-02 2013-05-10 삼성전자주식회사 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
KR20130075018A (ko) * 2011-12-27 2013-07-05 한국전자통신연구원 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US20130290601A1 (en) 2012-04-26 2013-10-31 Lsi Corporation Linux i/o scheduler for solid-state drives
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US8799561B2 (en) 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9372642B2 (en) * 2013-07-22 2016-06-21 International Business Machines Corporation RAID 10 reads optimized for solid state drives
CN103914392B (zh) * 2014-04-03 2017-05-03 深圳市硅格半导体有限公司 闪存的空块回收方法及装置
US9383926B2 (en) 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
KR20150139112A (ko) * 2014-06-02 2015-12-11 삼성전자주식회사 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
US9525737B2 (en) * 2015-04-14 2016-12-20 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect
CN105373487B (zh) * 2015-12-16 2018-06-08 浪潮(北京)电子信息产业有限公司 一种存储操作系统的碎片整理方法及系统

Also Published As

Publication number Publication date
JP2017168088A (ja) 2017-09-21
US10409719B2 (en) 2019-09-10
US20170270042A1 (en) 2017-09-21
CN107203337A (zh) 2017-09-26
TW201734804A (zh) 2017-10-01
CN107203337B (zh) 2021-11-09
TWI682277B (zh) 2020-01-11
KR20170108788A (ko) 2017-09-27

Similar Documents

Publication Publication Date Title
JP6847694B2 (ja) ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品
KR101629879B1 (ko) 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
CN106326140B (zh) 数据拷贝方法、直接内存访问控制器及计算机系统
JP6007667B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP6691669B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
EP2863316A1 (en) Method for controlling interruption in data transmission process
US9804787B2 (en) Mitigating GC effect in a raid configuration
CN110765034B (zh) 一种数据预取方法及终端设备
TW201250471A (en) Managing data placement on flash-based storage by use
CN104798007A (zh) 用于控制存储设备的方法和装置
KR20120112965A (ko) 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법
KR101114791B1 (ko) 전력 할당 방법 및 시스템
KR102714198B1 (ko) 스토리지 장치 및 그것의 링크 상태 제어 방법
WO2017006675A1 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
WO2019118251A1 (en) Performance level adjustments in memory devices
WO2017101263A1 (zh) 管理存储设备的方法及装置
US10152410B2 (en) Magnetoresistive random-access memory cache write management
KR20190046840A (ko) 하드웨어 제어형 분할된 스누프 디렉토리들을 사용한 코히어런트 인터커넥트 전력 감소
JP6193189B2 (ja) Nandバックグラウンド処理制御装置
JP2017045199A (ja) 制御装置
CN108228104B (zh) 数据传输方法及固态硬盘控制器
WO2019091322A1 (zh) 虚拟机快照处理方法、装置及系统
WO2023124347A1 (zh) 一种存储节点的配置方法以及相关装置
US12026109B2 (en) Operating method of transaction accelerator, operating method of computing device including transaction accelerator, and computing device including transaction accelerator
KR101831126B1 (ko) 스토리지 내의 데이터 처리 장치의 제어 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200123

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200123

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210303

R150 Certificate of patent or registration of utility model

Ref document number: 6847694

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250