(57)【要約】【課題】不揮発性メモリ装置内でデータ特性基盤データ配置を活用するための装置及び方法を提供する。【解決手段】本発明の方法は、実行中のアプリケーション及びコンピュータ装置に連結されたハードウェア装置の中の少なくとも一つを検出するソフトウェア構成要素をコンピュータ装置で実行し、ソフトウェア構成要素は、ワークフロー貯蔵所を検索して実行中のアプリケーション及びハードウェア装置の中の少なくとも一つに関連する所定のワークフローを探して実行中のアプリケーション及びハードウェア装置の中の少なくとも一つの活動と比較し、データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて不揮発性メモリ装置に伝送されて格納されるように、実行中のアプリケーション又はハードウェア装置によって使用されるデータアイテムにデータ特性識別子を自動的に割当てるように所定のワークフローを利用する。【選択図】図１
2017021804.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置が不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスを提供する方法であって、
実行中のアプリケーション及びコンピュータ装置に連結されたハードウェア装置の中の少なくとも一つを検出するソフトウェア構成要素を前記コンピュータ装置で実行する段階と、
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの検出に応答して、前記ソフトウェア構成要素がワークフロー貯蔵所を検索して前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つに関連する所定のワークフローを探す段階と、
前記ソフトウェア構成要素が前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの活動を前記所定のワークフローと比較する段階と、
データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて前記不揮発性メモリ装置に伝送されて格納されるように、前記実行中のアプリケーション又は前記ハードウェア装置によって使用される前記データアイテムに前記データ特性識別子を自動的に割当てるように前記所定のワークフローを利用する段階と、を有し、
前記所定のワークフローは、予め定義された前記データ特性識別子を前記実行中のアプリケーション又は前記ハードウェア装置によって前記不揮発性メモリ装置に書き込まれる前記データアイテムの異なるタイプに関連付け、
前記不揮発性メモリ装置は、前記データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように、前記データアイテムを格納する前記不揮発性メモリ装置のブロックを識別することを特徴とする方法。
【請求項２】
前記ハードウェア装置は、カメラ、マイク、温度計、ＧＰＳ、時計、センサー、スイッチ、ルータ、ＲＡＩＤシステム、及びホストバスアダプター（ＨＢＡ）システムの中の少なくとも一つを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの検出は、新しいデータ配置クライアントの検出を含み、
前記ソフトウェア構成要素は、前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つが該当機能を有するように設計されなかったとしても、データ特性基盤データ配置を提供することを特徴とする請求項１に記載の方法。
【請求項４】
前記ソフトウェア構成要素は、前記コンピュータ装置が前記不揮発性メモリ装置のデータ特性基盤データ配置を活用するためのワークフローモニターインターフェイスを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ワークフローモニターインターフェイスが前記ワークフロー貯蔵所に対する新たなワークフロー及び更新されたワークフローを受信して新しいアプリケーション及びハードウェア装置を収容する段階を更に含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの活動を前記所定のワークフローと比較する段階は、前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つによって遂行される一つ以上の現在のプロセス又はステップを調査し、前記現在のプロセス又はステップを前記所定のワークフロー内の類似な一連のプロセス又はステップと照合することによって遂行されることを特徴とする請求項５に記載の方法。
【請求項７】
不揮発性メモリ装置と、
前記不揮発性メモリ装置に連結されたコンピュータ装置と、を備え、
前記コンピュータ装置は、前記コンピュータ装置が前記不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスとして機能するソフトウェア構成要素を実行し、
前記ソフトウェア構成要素は、
実行中のアプリケーション及び前記コンピュータ装置に連結されたハードウェア装置の中の少なくとも一つを検出し、
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの検出に応答して、ワークフロー貯蔵所を検索して前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つに関連する所定のワークフローを探し、
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの活動を前記所定のワークフローと比較し、
データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて前記不揮発性メモリ装置に伝送されて格納されるように、前記実行中のアプリケーション又は前記ハードウェア装置によって使用される前記データアイテムに前記データ特性識別子を自動的に割当てるように前記所定のワークフローを利用するように構成され、
前記所定のワークフローは、予め定義された前記データ特性識別子を前記実行中のアプリケーション又は前記ハードウェア装置によって前記不揮発性メモリ装置に書き込まれるデータアイテムの異なるタイプに関連付け、
前記不揮発性メモリ装置は、前記データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように、前記データアイテムを格納する前記不揮発性メモリ装置のブロックを識別することを特徴とするシステム。
【請求項８】
前記ハードウェア装置は、カメラ、マイク、温度計、ＧＰＳ、時計、センサー、スイッチ、ルータ、ＲＡＩＤシステム、及びホストバスアダプター（ＨＢＡ）システムの中の少なくとも一つを含むことを特徴とする請求項７に記載のシステム。
【請求項９】
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの検出は、新しいデータ配置クライアントの検出を含み、
前記ソフトウェア構成要素は、前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つが該当機能を有するように設計されなかったとしても、データ特性基盤データ配置を提供することを特徴とする請求項７に記載のシステム。
【請求項１０】
前記ソフトウェア構成要素は、前記コンピュータ装置が前記不揮発性メモリ装置のデータ特性基盤データ配置を活用するためのワークフローモニターインターフェイスを含むことを特徴とする請求項７に記載のシステム。
【請求項１１】
前記ソフトウェア構成要素は、前記ワークフローモニターインターフェイスが前記ワークフロー貯蔵所に対する新たなワークフロー及び更新されたワークフローを受信して新しいアプリケーション及びハードウェア装置を収容する構成を更に含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの活動を前記所定のワークフローと比較する構成は、前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つによって遂行される一つ以上の現在のプロセス又はステップを調査し、前記現在のプロセス又はステップを前記所定のワークフロー内の類似な一連のプロセス又はステップと照合することによって遂行されることを特徴とする請求項１１に記載のシステム。
【請求項１３】
メモリアレイと、
前記メモリアレイ及びメモリチャンネルに連結されるストレージコントローラと、を備え、
前記ストレージコントローラは、
オペレーティングシステム及び実行中のアプリケーションの中の少なくとも一つから前記メモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第１データ特性識別子を含む第１シリーズのデータアイテムを受信し、
ハードウェア装置コントローラから前記メモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第２データ特性識別子を含む第２シリーズのデータアイテムを受信し、
前記第１及び第２データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように前記第１及び第２シリーズのデータアイテムを格納するブロックを識別し、
前記第１及び第２シリーズのデータアイテムを前記識別されたブロックに格納するように構成されることを特徴とする不揮発性メモリ装置。
【請求項１４】
前記ハードウェア装置は、カメラ、マイク、温度計、ＧＰＳ、時計、センサー、スイッチ、ルータ、ＲＡＩＤシステム、及びホストバスアダプター（ＨＢＡ）システムの中の少なくとも一つを含むことを特徴とする請求項１３に記載の不揮発性メモリ装置。
【請求項１５】
前記オペレーティングシステム及び前記実行中のアプリケーションの中の少なくとも一つ又は前記ハードウェア装置コントローラは、コンピュータ装置の一部であることを特徴とする請求項１３に記載の不揮発性メモリ装置。
【請求項１６】
前記コンピュータ装置は、前記コンピュータ装置が前記不揮発性メモリ装置のデータ特性基盤データ配置を活用するためのワークフローモニターインターフェイスを含むことを特徴とする請求項１５に記載の不揮発性メモリ装置。
【請求項１７】
前記ワークフローモニターインターフェイスは、前記コンピュータ装置のオペレーティングシステムレベルで実行され、
前記ワークフローモニターインターフェイスは、
前記実行中のアプリケーション及び前記コンピュータ装置に連結された前記ハードウェア装置コントローラの中の少なくとも一つを検出し、
前記実行中のアプリケーション及び前記ハードウェア装置コントローラの中の少なくとも一つの検出に応答して、ワークフロー貯蔵所を検索して前記実行中のアプリケーション及び前記ハードウェア装置コントローラの中の少なくとも一つに関連する所定のワークフローを探し、
前記実行中のアプリケーション及び前記ハードウェア装置コントローラの中の少なくとも一つの活動を前記所定のワークフローと比較し、
データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて前記不揮発性メモリ装置に伝送されて格納されるように、前記実行中のアプリケーション又は前記ハードウェア装置コントローラによって使用される前記データアイテムに前記データ特性識別子を自動的に割当てるように前記所定のワークフローを利用するように構成され、
前記所定のワークフローは、予め定義された前記データ特性識別子を前記実行中のアプリケーション又は前記ハードウェア装置コントローラによって前記不揮発性メモリ装置に書き込まれる前記データアイテムの異なるタイプに関連付けることを特徴とする請求項１６に記載の不揮発性メモリ装置。
【請求項１８】
不揮発性メモリ装置のストレージコントローラによって遂行される前記不揮発性メモリ装置内部のデータ特性基盤データ配置のための方法であって、
オペレーティングシステム及び実行中のアプリケーションの中の少なくとも一つからメモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第１データ特性識別子を含む第１シリーズのデータアイテムを受信する段階と、
ハードウェア装置コントローラから前記メモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第２データ特性識別子を含む第２シリーズのデータアイテムを受信する段階と、
前記第１及び第２データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように前記第１及び第２シリーズのデータアイテムを格納する前記不揮発性メモリ装置のブロックを識別する段階と、
前記第１及び第２シリーズのデータアイテムを前記識別されたブロックに格納する段階と、を有することを特徴とする方法。
【請求項１９】
前記ハードウェア装置は、カメラ、マイク、温度計、ＧＰＳ、時計、センサー、スイッチ、ルータ、ＲＡＩＤシステム、及びホストバスアダプター（ＨＢＡ）システムの中の少なくとも一つを含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記オペレーティングシステム及び前記実行中のアプリケーションの中の少なくとも一つ又は前記ハードウェア装置コントローラは、コンピュータ装置の一部であることを特徴とする請求項１８に記載の方法。
【請求項２１】
前記コンピュータ装置は、前記コンピュータ装置が前記不揮発性メモリ装置のデータ特性基盤データ配置を活用するためのワークフローモニターインターフェイスを含むことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記ワークフローモニターインターフェイスは、前記コンピュータ装置のオペレーティングシステムレベルで実行され、
前記ワークフローモニターインターフェイスは、
前記実行中のアプリケーション及び前記コンピュータ装置に連結された前記ハードウェア装置コントローラの中の少なくとも一つを検出し、
前記実行中のアプリケーション及び前記ハードウェア装置コントローラの中の少なくとも一つの検出に応答して、ワークフロー貯蔵所を検索して前記実行中のアプリケーション及び前記ハードウェア装置コントローラの中の少なくとも一つに関連する所定のワークフローを探し、
前記実行中のアプリケーション及び前記ハードウェア装置コントローラの中の少なくとも一つの活動を前記所定のワークフローと比較し、
データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて前記不揮発性メモリ装置に伝送されて格納されるように、前記実行中のアプリケーション又は前記ハードウェア装置コントローラによって使用される前記データアイテムに前記データ特性識別子を自動的に割当てるように前記所定のワークフローを利用するように構成され、
前記所定のワークフローは、予め定義された前記データ特性識別子を前記実行中のアプリケーション又は前記ハードウェア装置コントローラによって前記不揮発性メモリ装置に書き込まれる前記データアイテムの異なるタイプに関連付けることを特徴とする請求項２１に記載の不揮発性メモリ装置。
【請求項２３】
コンピュータ装置が不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスを提供する方法であって、
前記コンピュータ装置でソフトウェア構成要素を実行する段階と、
前記ソフトウェア構成要素が前記ソフトウェア構成要素に関連する所定のワークフローを探すようにワークフロー貯蔵所に要請する段階と、
前記ソフトウェア構成要素の動作の間に、前記ソフトウェア構成要素によって使用されるデータアイテムに関連する一つ以上のデータ特性識別子のために前記所定のワークフローに一つ以上の要請を伝送する段階と、
前記ソフトウェア構成要素が、前記一つ以上のデータ特性識別子の前記所定のワークフローからの受信に応答して、前記ソフトウェア構成要素によって使用される前記データアイテムに前記データ特性識別子を自動的に割当て、前記データアイテム及び前記割当てられたデータ特性識別子を前記不揮発性メモリ装置に格納のために伝送する段階と、を有し、
前記所定のワークフローは、予め定義された前記データ特性識別子を前記不揮発性メモリ装置に書き込まれる前記データアイテムの異なるタイプに関連付け、
前記不揮発性メモリ装置は、前記データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように、前記データアイテムを格納する前記不揮発性メモリ装置のブロックを識別することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリに関し、より詳細には、コンピュータ装置が不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスを提供する方法及びシステム、不揮発性メモリ装置、及び不揮発性メモリ装置内部のデータ特性基盤データ配置のための方法に関する。
【背景技術】
【０００２】
フラッシュメモリ基盤のソリッドステートドライブ（ＳＳＤ）は消費者コンピュータ及び企業サーバーの両方で広く使用されて来た。フラッシュメモリはＮＡＮＤ及びＮＯＲ論理ゲートにちなんで命名された２つのタイプを有する。ＮＡＮＤタイプフラッシュメモリはブロック単位で書込まれるか又は読出され、各ブロックは複数のページを含む。
【０００３】
ＳＳＤのＮＡＮＤフラッシュストレージセルは非常に固有な特性を有するため、ＳＳＤの一般的な使用は非常に非効率的である。例えば、１回に一つのページに対して読出し及びプログラムが遂行され、ＮＡＮＤフラッシュメモリの場合は１回に一つのブロック単位で消去を遂行する。一つのＮＡＮＤフラッシュページを再書込みするために、複数のフラッシュページを含む全体消去ブロックが先に消去されなければならない。
【０００４】
ＳＳＤのようなＮＡＮＤフラッシュ基盤ストレージ装置は原位置（ｉｎ−ｐｌａｃｉｎｇ）の更新が許容されないため、使用可能な自由ブロックのカウント値が特定な閾値に至る時に後続の書込みのための空間を確保するためのガベージコレクション動作が遂行される。ガベージコレクションは、目標の消去ブロックから有効データを読出し、有効データを他のブロックに書込む動作を含み、無効データは新しいブロックに伝送されない。ＮＡＮＤ消去ブロックを消去することは相対的に多くの時間を必要とし、各消去ブロックは３千回〜１万回の間の制限された消去回数を有する。従って、ガベージコレクションのオーバーヘッドはこの技術分野で最も大きい速度制約の中の一つであり、高いデータ入出力レイテンシ及び低い入出力性能を誘発する。
【０００５】
従って、ホットデータ及びコールドデータを異なって取り扱わずに共に格納するオペレーティングシステム（ＯＳ）及びアプリケーションによる動作は、ホットデータ及びコールドデータを異なって取り扱うオペレーティングシステム及びアプリケーションと比較して、時間の流れに従ってＮＡＮＤセルの性能が劣化し、よりに多くの消去回数を必要することからＮＡＮＤセルがより速く磨耗するため、ＳＳＤの寿命が短縮される。
【０００６】
ＳＳＤ製造業社及びストレージ技術委員会は多重ストリームと称される新しいＳＳＤ及び標準を提案し、これによると、ホストはデータをストリームと称されるクラスにグループ化する。各ストリームはＳＳＤによって独立的に格納（又はセーブ）される。ストリームのデータは理論上どのような理由であってもグループ化される。このような理由の中の一つはガベージコレクションの発生を減らすために類似な寿命を有するデータを共に格納することを目的とする。
【０００７】
しかし、このような新しいインターフェイスを活用するために、アプリケーション（ソースコードを含む）及びオペレーティングシステム内で多くの変更が必要である。一般的なコンピュータは数十〜数百個がインストールされて実行されるソフトウェアアプリケーションを有するため、ＳＳＤをより効率的に活用するために全てのアプリケーション、特にレガシ及び非公開ソースアプリケーション等がこのような変更を採択することは非常に難しい。また、多重ストリームＳＳＤは、現在、多重ストリームＳＳＤを使用するオペレーティングシステム及びアプリケーションによってのみに使用される制限された適用性を有する。
【０００８】
現在、必要なことはストレージ装置の向上されたデータ特性基盤データ配置であり、より詳細には、コンピュータ装置がデータ特性基盤データ配置（例えば、多重ストリーム）ＳＳＤを活用できるようにする自動プロセスである。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、既存の装置、オペレーティングシステム、又はアプリケーションで、不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた本発明の一態様によるコンピュータ装置が不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスを提供する方法は、実行中のアプリケーション及びコンピュータ装置に連結されたハードウェア装置の中の少なくとも一つを検出するソフトウェア構成要素を前記コンピュータ装置で実行する段階と、前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの検出に応答して、前記ソフトウェア構成要素がワークフロー貯蔵所を検索して前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つに関連する所定のワークフローを探す段階と、前記ソフトウェア構成要素が前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの活動を前記所定のワークフローと比較する段階と、データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて前記不揮発性メモリ装置に伝送されて格納されるように、前記実行中のアプリケーション又は前記ハードウェア装置によって使用される前記データアイテムに前記データ特性識別子を自動的に割当てるように前記所定のワークフローを利用する段階と、を有し、前記所定のワークフローは、予め定義された前記データ特性識別子を前記実行中のアプリケーション又は前記ハードウェア装置によって前記不揮発性メモリ装置に書き込まれる前記データアイテムの異なるタイプに関連付け、前記不揮発性メモリ装置は、前記データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように、前記データアイテムを格納する前記不揮発性メモリ装置のブロックを識別する。
【００１１】
上記目的を達成するためになされた本発明の一態様によるシステムは、不揮発性メモリ装置と、前記不揮発性メモリ装置に連結されたコンピュータ装置と、を備え、前記コンピュータ装置は、前記コンピュータ装置が前記不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスとして機能するソフトウェア構成要素を実行し、前記ソフトウェア構成要素は、実行中のアプリケーション及び前記コンピュータ装置に連結されたハードウェア装置の中の少なくとも一つを検出し、前記実行中のアプリケーション及び前記ハードウェア装置の中の一つの検出に応答して、ワークフロー貯蔵所を検索して前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つに関連する所定のワークフローを探し、前記実行中のアプリケーション及び前記ハードウェア装置の中の少なくとも一つの活動を前記所定のワークフローと比較し、データアイテム及び割当てられたデータ特性識別子がメモリチャンネルを通じて前記不揮発性メモリ装置に伝送されて格納されるように、前記実行中のアプリケーション又は前記ハードウェア装置によって使用される前記データアイテムに前記データ特性識別子を自動的に割当てるように前記所定のワークフローを利用するように構成され、前記所定のワークフローは、予め定義された前記データ特性識別子を前記実行中のアプリケーション又は前記ハードウェア装置によって前記不揮発性メモリ装置に書き込まれるデータアイテムの異なるタイプに予め定義されたデータ特性識別子を連関付け、前記不揮発性メモリ装置は、前記データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように、前記データアイテムを格納する前記不揮発性メモリ装置のブロックを識別する。
【００１２】
上記目的を達成するためになされた本発明の一態様による不揮発性メモリ装置は、メモリアレイと、前記メモリアレイ及びメモリチャンネルに連結されるストレージコントローラと、を備え、前記ストレージコントローラは、オペレーティングシステム及び実行中のアプリケーションの中の少なくとも一つから前記メモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第１データ特性識別子を含む第１シリーズのデータアイテムを受信し、ハードウェア装置コントローラから前記メモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第２データ特性識別子を含む第２シリーズのデータアイテムを受信し、前記第１及び第２データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように前記第１及び第２シリーズのデータアイテムを格納するブロックを識別し、前記第１及び第２シリーズのデータアイテムを前記識別されたブロックに格納するように構成される。
【００１３】
上記目的を達成するためになされた本発明の一態様による不揮発性メモリ装置のストレージコントローラによって遂行される前記不揮発性メモリ装置内部のデータ特性基盤データ配置のための方法は、オペレーティングシステム及び実行中のアプリケーションの中の少なくとも一つからメモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第１データ特性識別子を含む第１シリーズのデータアイテムを受信する段階と、ハードウェア装置コントローラから前記メモリチャンネルを通じて格納され、データアイテムの各々がデータ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第２データ特性識別子を含む第２シリーズのデータアイテムを受信する段階と、前記第１及び第２データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように前記第１及び第２シリーズのデータアイテムを格納する前記不揮発性メモリ装置のブロックを識別する段階と、前記第１及び第２シリーズのデータアイテムを前記識別されたブロックに格納する段階と、を有する。
【００１４】
上記目的を達成するためになされた本発明の他の態様によるコンピュータ装置が不揮発性メモリ装置内でデータ特性基盤データ配置を活用するためのインターフェイスを提供する方法は、前記コンピュータ装置でソフトウェア構成要素を実行する段階と、前記ソフトウェア構成要素が前記ソフトウェア構成要素に関連する所定のワークフローを探すようにワークフロー貯蔵所に要請する段階と、前記ソフトウェア構成要素の動作の間に、前記ソフトウェア構成要素によって使用されるデータアイテムに関連する一つ以上のデータ特性識別子のために前記所定のワークフローに一つ以上の要請を伝送する段階と、前記ソフトウェア構成要素が、前記一つ以上のデータ特性識別子の前記所定のワークフローからの受信に応答して、前記ソフトウェア構成要素によって使用される前記データアイテムに前記データ特性識別子を自動的に割当て、前記データアイテム及び前記割当てられたデータ特性識別子を前記不揮発性メモリ装置に格納のために伝送する段階と、を有し、前記所定のワークフローは、予め定義された前記データ特性識別子を前記不揮発性メモリ装置に書き込まれるデータアイテムの異なるタイプに関連付け、前記不揮発性メモリ装置は、前記データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムが同一のブロックに格納されるように、前記データアイテムを格納する前記不揮発性メモリ装置のブロックを識別する。
【発明の効果】
【００１５】
本発明によれば、既存の装置、アプリケーション又はオペレーティングシステムを一部修正することによってデータ特性基盤データ配置を活用することができる。従って、既存の装置、アプリケーション又はオペレーティングシステムのデータ管理効率性を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】ワークフローモニターインターフェイスによって提供される不揮発性メモリ装置のデータ特性基盤データ配置のための一実施形態を示すブロック図である。
【図２】本発明の一実施形態によるコンピュータ装置が不揮発性メモリ装置内のデータ特性基盤データ配置を活用するためのワークフローモニターインターフェイスを提供するホストシステムで遂行されるプロセスを示すフローチャートである。
【図３】データ特性基盤データ配置を具備するＳＳＤと互換される多様なコンピューティング装置とで具現された一実施形態のワークフローモニターインターフェイスを示すブロック図である。
【図４】本発明の一実施形態による不揮発性メモリ装置のストレージコントローラによって遂行されるデータ特性基盤データ配置のためのプロセスを示すフローチャートである。
【図５】異なる寿命及び異なる特性を有するデータを格納するデータベースアプリケーションによって遂行されるストレージの動作に対するワークフローモニターインターフェイスの動作の一例を示すブロック図である。
【図６】ワークフローモニターインターフェイスをより詳細に示すブロック図である。
【図７】データ識別子の割当て方法の他の例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。類似な参照符号は類似な構成要素を参照する。
【００１８】
本発明の長所、特徴、及びそれを達成する方法は、詳細な説明及び図面を参照してより容易に理解される。しかし、本発明の技術的思想は、多様な他の形態で具現され、ここに開示する実施形態に限定されない。実施形態は、以下の記載が徹底且つ完全であり、本発明の技術的思想をこの分野で通常の技術を有する者に伝達されるように提供することに過ぎない。図面で、レイヤー及び領域の厚さは明確性のために強調される。別途に言及しない限り、“含む”、“具備する”、“有する“の用語は開放的な（即ち、限定されない）用語として理解される。
【００１９】
ここで使用する“アルゴリズム”又は“モジュール”という用語は、特定な作業を遂行するＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）又はＡＳＩＣ（ａｎ  ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）のようなソフトウェア又はハードウェア構成要素であり、限定されない。アルゴリズム又はモジュールは、アドレスで識別可能なストレージ媒体に常住するように構成され、一つ以上のプロセスを実行するように構成される。従って、アルゴリズム又はモジュールは、一例として、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素、作業構成要素のような構成要素（ｃｏｍｐｏｎｅｎｔ）、プロセス、機能、属性（ａｔｔｒｉｂｕｔｅｓ）、プロシージャー、サブルーチン、プログラムコードのセグメント、ファームウェア、マイクロコード、回路網、データ、データベース、データ構造、テーブル、アレイ、及び変数を含む。構成要素及び構成要素又はモジュールに提供される機能はより少ない構成要素若しくはモジュールに結合されるか、又は追加的な構成要素及び構成要素若しくはモジュールに更に分離される。
【００２０】
別途に定義しない限り、ここで使用する全ての技術的、科学的な用語はこの発明が属する分野で通常の技術を有する者によって共通に理解されるものと同一の意味を有する。いずれか若しくは全ての例又は例示的な用語の使用は、本発明をより明確にするために使用されるものであり、別途に明示しない限り、本発明の範囲を限定する用途として使用されない。また、別途に定義しない限り、一般的に使用される辞書で定義された全ての用語は過度に解釈されない。
【００２１】
一例として、本発明の実施形態は、アプリケーション及び装置が多重ストリーミングを活用するようにプログラムされなくても、コンピュータ装置がデータ特性基盤データ配置（例えば、多重ストリーミング）を活用することを可能にするためのインターフェイスを提供する。具体的に、本発明の実施形態は、コンピュータ装置の活動をモニターして、実行中のアプリケーション又は連結された装置のワークフローの知識を利用して、予め定義されたデータ特性識別子を不揮発性メモリ装置にセーブ（又は書込み）されるデータアイテムに割当てるアプリケーションモデル基盤ストリーム識別子プロセスを提供する。多重ストリーミングと同様に、受信メモリ装置は、同一のデータ特性識別子を有する全てのデータが同時に（概ね同時に）無効化されるものと仮定し、このようなデータを共通消去ブロックに配置（又は書込み）する。
【００２２】
図１は、ワークフローモニターインターフェイスによって提供される不揮発性メモリ装置のデータ特性基盤データ配置のための一実施形態を示すブロック図である。ここで説明する実施形態はガベージコレクションを必要とするいずれの不揮発性メモリ装置にも適用され、不揮発性メモリ装置にソリッドステートドライブ（ＳＳＤ）が含まれる実施形態を参照して説明する。
【００２３】
システムはメモリチャンネル１４を通じてＳＳＤ１２に結合されたホストシステム１０を含む。ここで使用されるように、メモリチャンネルは不揮発性メモリ装置（例えば、ＳＳＤ）をコンピュータ又はＳＳＤを使用する他のハードウェアに連結する任意の物理インターフェイスを示す。インターフェイスはＳＡＴＡ、ＳＣＳＩ、ＰＣＩｅ、ＵＳＢ、ｉＳＣＳＩ、ＦＣ、イーサーネット等のような有線インターフェイス、及びＷｉＦｉのような無線インターフェイスを含む。広く公知されたように、ＳＳＤはデータを格納する可動式部品を有さず、データを維持するために一定の電力を必要としない。本発明に関連するホストシステム１０の構成要素は、オペレーティングシステム（ＯＳ）２０及びファイルシステム２１を含むメモリ１８からのコンピュータ命令を実行するプロセッサ１６を含む。ホストシステム１０はメモリチャンネル１４とインターフェイシングするためのメモリコントローラのような図示していない他の構成要素を更に含む。ホストシステム１０及びＳＳＤ１２はメモリチャンネル１４を通じてコマンド及びデータアイテムを送受信する。一例として、ホストシステム１０は任意のタイプのオペレーティングシステムを実行する一般的なコンピュータ又はサーバーである。オペレーティングシステムのタイプは、単一及び多重使用者、分散、テンプレート（ｔｅｍｐｌａｔｅｄ）、埋め込み型、実時間、及びライブラリを含む。他の例として、ホストシステム１０は装置コントローラのようなスタンドアロン構成要素であり、この場合にオペレーティングシステムは軽量オペレーティングシステム（又はそれらの一部）又はファームウェアである。
【００２４】
ＳＳＤ１２はストレージコントローラ２２及びホストシステム１０からのデータを格納する不揮発性メモリアレイ２４を含む。ストレージコントローラ２２は、不揮発性メモリアレイ２４に格納されたデータを管理し、通信プロトコルを通じてメモリチャンネル１４を経てホストシステム１０と通信する。不揮発性メモリアレイ２４は、フラッシュメモリ、強誘電体ランダムアクセスメモリ（ＦｅＲＡＭ）、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、相変化メモリ（ＰＣＭ）、ヤスデ（ｍｉｌｌｉｐｅｄｅ）メモリ等のような不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）を含む。ＳＳＤ１２及びメモリチャンネル１４の両方によりデュアルチャンネルメモリ構造のような多重チャンネルメモリ構造を支援し、単一、２倍速、又は４倍速データ伝送を支援する。
【００２５】
本実施形態によると、ＳＳＤ１２でガベージコレクションオーバーヘッドを減少させるために、ＳＳＤ１２に向上させたデータ特性基盤データ配置が提供される。これは、アプリケーション及びハードウェア構成要素の全てが異なる寿命を有するデータアイテムをＳＳＤ１２に個別に格納することを可能にするワークフローモニターインターフェイス２６を提供することによって達成される。また、ワークフローモニターインターフェイス２６の使用はホストシステム１０で実行される使用者アプリケーションの変更を要求しない。
【００２６】
一例として、ワークフローモニターインターフェイス２６は、プロセッサ１６によって実行され、ホストシステム１０がアプリケーション又は連結されたハードウェア装置を実行することを持続的にモニターする少なくとも一つのソフトウェア構成要素を含む。ワークフローモニターインターフェイス２６は、アプリケーション及び連結された装置に対する所定のワークフローパターンを認識し、このようなワークフローパターンに基づいてアプリケーション及び連結された装置によって書き込まれるデータアイテムにデータ特性識別子（例えば、ストリームＩＤ）を割当てる。
【００２７】
本実施形態によると、ワークフローモニターインターフェイス２６は多様なアプリケーション及び装置に対する既知のワークフローのライブラリとして作用するワークフロー貯蔵所（ｗｏｒｋｆｌｏｗ  ｒｅｐｏｓｉｔｏｒｙ）２７を含む。ワークフロー貯蔵所２７内のワークフローの各々は、所定の特性識別子（例えば、ストリーム識別子）と共にワークフローの多様なステージの間に生成された関連する一つ以上のストリーム（即ち、一つ以上の個別データ書込み）を有する。一例として、ワークフロー貯蔵所２７はワークフローモニターインターフェイス２６から個別に分離された構成要素である。しかし、他の例として、ワークフロー貯蔵所２７はワークフローモニターインターフェイス２６と共に集積される。一例として、データ特性識別子３０の実際の割当てはオペレーティングシステム２０のファイルシステム２１内のソフトウェアフック（ｈｏｏｋ）によって遂行される。
【００２８】
図２は、本発明の一実施形態によるコンピュータ装置が不揮発性メモリ装置内のデータ特性基盤データ配置を活用するためのワークフローモニターインターフェイスを提供するホストシステムで遂行されるプロセスを示すフローチャートである。プロセスは実行中のアプリケーション及びコンピューティング装置に連結されたハードウェア装置の中の少なくとも一つを検出するソフトウェア構成要素（例えば、ワークフローモニターインターフェイス２６）をコンピューティング装置１０で実行する（段階２００）。一例として、実行中のアプリケーションの検出はプロセス又はスレッド（ｔｈｒｅａｄ）の検出を含む。ハードウェア装置の連結の例は、ホスト装置１０に連結されて通信するカメラを含む。
【００２９】
一例として、実行中のアプリケーション又はハードウェア装置の検出は、全体的にソフトウェア構成要素がデータ特性基盤データ配置を提供（例えば、アプリケーション又はハードウェア装置が多重ストリーミング能力で互換されるように設計されなかったとしても多重ストリーミング能力を提供）する新しいデータ配置クライアントの検出を意味する。
【００３０】
実行中のアプリケーション又は連結中のハードウェア装置の連結の検出に応答して、ソフトウェア構成要素はワークフロー貯蔵所２７を検索して実行中のアプリケーション又はハードウェア装置に関連する所定のワークフローを探す。所定のワークフローは実行中のアプリケーション又はハードウェア装置によって不揮発性メモリ装置に書込まれた異なるタイプのデータアイテムにデータ特性識別子を関連付ける（段階２０２）。
【００３１】
一実施形態によると、ワークフロー貯蔵所２７はワークフローモニターインターフェイス２６に集積されるか又は個別構成要素として具現される。一例として、ワークフロー貯蔵所２７はコンピューティング装置１０の内部に位置し、他の例として、ワークフロー貯蔵所２７はコンピューティング装置１０から離れて位置する。いずれの場合でも、一実施形態として、ワークフローモニターインターフェイス２６は新しいアプリケーション及びハードウェア装置を収容するためにワークフロー貯蔵所２７の新たなワークフロー又は更新されたワークフローを受信する。
【００３２】
ソフトウェア構成要素は実行中のアプリケーション又はハードウェア装置の活動を所定のワークフローと比較する（段階２０４）。一例として、活動の比較は、アプリケーション又はハードウェア装置によって遂行される一つ以上の現在のプロセス又はステップを調査（ｅｘａｍｉｎｅ）し、現在のプロセス又はステップを所定のワークフロー内のプロセス又はステップの類似なシーケンスに適合（ｍａｔｃｈ）させる。上述したように、ワークフローは、ワークフローの多様なステップの間に、プロセス又はステップのシーケンスの間に遂行される一つ以上の個別データの書込みを所定のデータ特性識別子に関連付ける。
【００３３】
ソフトウェア構成要素は、所定のワークフローを利用して、実行中のアプリケーション又はハードウェア装置によって使用されるデータアイテムにデータ特性識別子を自動的に割当て、データアイテム及び割当てられたデータ特性識別子を不揮発性メモリアレイ２４に格納のために伝送する（段階２０６）。
【００３４】
本実施形態によると、ワークフローモニターインターフェイス２６は、ワークフロー貯蔵所２７を利用して、データ寿命、データタイプ、データサイズ、及び物理的又は論理的データソースのようなデータ類似度を示す一つ以上のデータ特性に基づいて、データアイテム２８の各々にデータ特性識別子３０を割当てるか又は連関付ける。このような方法によって、同一又は類似なデータ特性を有するデータアイテム２８には同一のデータ特性識別子値が割当てられる。
【００３５】
一実施形態として、ワークフローモニターインターフェイス２６がオペレーティングシステムレベルで提供されるため、現在のアプリケーションで一実施形態によるデータ特性基盤データ配置プロセスに付合するために何らの変更も要求されない。従って、ワークフローモニターインターフェイス２６は、プロセッサ及びオペレーティングシステムを具備する任意のタイプのコンピューティング装置でも具現され、既存の多重ストリームの使用をアプリケーション及びオペレーティングシステムを超えて拡張する。
【００３６】
図３は、データ特性基盤データ配置（例えば、多重ストリーミング）を具備するＳＳＤ１２と互換される多様なコンピューティング装置３００Ａ〜３００Ｄとで具現された一実施形態のワークフローモニターインターフェイスを示すブロック図である。コンピューティング装置３００Ａ、３００Ｂは、各々ワークフローモニターインターフェイス２６Ａ、２６Ｂがオペレーティングシステム２０Ａ、２０Ｂに提供されるか、或いはオプションとしてスタンドアロンアプリケーションに提供されるパーソナルコンピュータ又はサーバーのようなホスト装置を示す。ワークフローモニターインターフェイス２６Ａは、アプリケーション３０４Ａによって遂行されるデータアイテムの動作をモニターし、ワークフロー貯蔵所からの一致するワークフローに基づいてアプリケーション３０４Ａからのデータアイテムの各々にデータ特性識別子３０Ａを自動的に割当てる。同様に、ワークフローモニターインターフェイス２６Ｂは、オペレーティングシステム２０Ｂのブロックレイヤー２３Ｂによって遂行されるデータアイテムの動作をモニターし、ワークフロー貯蔵所からの一致するワークフローに基づいてブロックレイヤー２３Ｂによって遂行されるデータアイテムの各々にデータ特性識別子３０Ｂを自動的に割当てる。
【００３７】
コンピューティング装置３００Ｃ、３００Ｄは、不揮発性メモリ装置を活用する任意のハードウェア装置を示し、カメラ、マイク、温度計、ＧＰＳ、時計、センサー、スイッチ、ルータ、ＲＡＩＤシステム、又はホストバスアダプター（ＨＢＡ）システムを含む。一部のタイプのハードウェア装置で、ワークフローモニターインターフェイス２６Ｃはハードウェア装置コントローラ３０６Ｃ内に提供される。ワークフローモニターインターフェイス２６Ｃは既知のワークフローに基づいてハードウェア装置コントローラ３０６Ｃからのデータアイテムの動作（例えば、書込み）にデータ特性識別子３０Ｃを自動的に割当てる。カメラのような他のタイプのハードウェア装置３００Ｄで、ワークフローモニターインターフェイス２６Ｄは、オペレーティングシステムの一部として具現されるか、或いはプロセッサ上で他のアプリケーションとして駆動される。ワークフローモニターインターフェイス２６Ｄは、ハードウェア装置コントローラ３０６Ｄによって遂行されるデータアイテムの動作をモニターし、既知のワークフロー又はワークフロー貯蔵所からの一致するワークフローに基づいてハードウェア装置コントローラ３０６Ｄからのデータアイテムの各々にデータ特性識別子３０Ｄを自動的に割当てる。
【００３８】
図４は、本発明の一実施形態による不揮発性メモリ装置のストレージコントローラによって遂行されるデータ特性基盤データ配置のためのプロセスを示すフローチャートである。図３及び図４を参照すると、プロセスは、オペレーティングシステム又は実行中のアプリケーション（例えば、オペレーティングシステム（２０Ｂ又はアプリケーション３０４Ａ）の中の少なくとも一つから書き込まれるデータアイテムの第１シリーズを、メモリチャンネルを通じて受信する。データアイテムの各々は、データ類似度を有する一つ以上のデータ特性（データ寿命、データタイプ、データサイズ、論理ブロックアドレス（ＬＢＡ）範囲、ＬＢＡアクセスパターン、及び物理データソースを含む）に基づくデータアイテムに関連する第１データ特性識別子を含む（段階４００）。データ寿命、データタイプ、データサイズ、論理ブロックアドレス（ＬＢＡ）範囲、ＬＢＡアクセスパターン、及び物理データソースのような多様なデータ特性は、ここに列挙しない他の特性又は現在まで知られなかった他の特性を含むアクセス類似度に対して考慮される。
【００３９】
一例として、データタイプは元のアプリケーションを超えた特性を含む。例えば、オペレーティングシステム又はアプリケーションから受信されるデータアイテムは、ワークフローモニターインターフェイス２６に加えて他のプロセスによるデータアイテムに関連するデータ特性識別子を含む。
【００４０】
ストレージコントローラ２２は、ハードウェア装置（例えば、ハードウェア装置コントローラ３０６Ｃ又はハードウェア装置コントローラ３０６Ｄ）から書き込まれるデータアイテムの他のシリーズを、メモリチャンネルを通じて受信する。データアイテムの各々は、データ類似度を示す一つ以上のデータ特性に基づくデータアイテムに関連する第２データ特性識別子を含む（段階４０２）。
【００４１】
ストレージコントローラ２２は、データ特性識別子を読出し、同一のデータ特性識別子を有するデータアイテムがブロックの同一のセットに格納されるように対応するデータアイテムが格納されるメモリ装置のブロックを識別し（段階４０４）、データアイテムを識別されたブロックに格納する（段階４０６）。
【００４２】
例えば、図３で、ＳＳＤ１２のストレージコントローラ２２はデータ特性識別子３０Ａ、３０Ｂに各々割当てられたコンピューティング装置３００Ａ、３００Ｂからデータアイテムを受信する。その後、ストレージコントローラ２２は、データ特性識別子３０Ａに関連するデータアイテムを同一の消去ブロック３０８Ａ内に格納し、データ特性識別子３０Ｂに関連するデータアイテムを同一の消去ブロック３０８Ｂ内に格納する。同様に、ＳＳＤ１２のストレージコントローラ２２は、データ特性識別子３０Ｃ、３０Ｄに各々割当てられたコンピューティング装置３００Ｃ、３００Ｄの装置コントローラ３０６Ｃ、３０６Ｄからデータアイテムを受信する。その後、ストレージコントローラ２２は、データ特性識別子３０Ｃに関連するデータアイテムを同一の消去ブロック３０８Ｃに格納し、データ特性識別子３０Ｄに関連するデータアイテムを同一の消去ブロック３０８Ｄに格納する。一例として、データ識別子がソース間で実際に類似度があることを示す場合、消去ブロック３０８Ｃ、３０８Ｂは相互に排他的である必要はない。
【００４３】
本実施形態のワークフローモニターインターフェイス２６によると、データ特性識別子３０は任意のタイプの入力装置から出力されるデータアイテム２８に格納のために割当てられる。例えば、ワークフローモニターインターフェイス２６はイメージを周期的に（例えば、１秒毎に１回ずつ）獲得するデジタルセキュリティカメラ内に具現されるものと仮定する。ワークフローモニターインターフェイス２６は、データ類似度を示すデータ特性、例えば、イメージのキャプチャ率、イメージファイルサイズ、イメージの起源（例えば、装置識別子又はＧＰＳ位置）のようなデータ特性に基づいて各イメージファイルにデータ特性識別子３０を割当てる。このようなデータ特性は、一般的な多重ストリーミングによって使用されるメタデータのように、具体的にアプリケーション又はファイルシステムに関連付ける必要はない。
【００４４】
図５は、異なる寿命及び異なる特性を有するデータを格納するデータベースアプリケーションによって遂行されるストレージの動作に対するワークフローモニターインターフェイスの動作の一例を示すブロック図である。一例として、データベースは高速格納のための埋め込み型の永続的なキー値の格納であるＲｏｃｋｓＤＢＴＭである。ＲｏｃｋｓＤＢは、多数のＣＰＵコアの長所を利用し、ＳＳＤのように入出力負荷に対して高速格納の効率的な使用に最適化されたＬｅｖｅｌＤＢＴＭのフォーク（ｆｏｒｋ）である。動作時に、キー値対（ｋｅｙ−ｖａｌｕｅ  ｐａｉｒ）のソートされたセットを有するデータファイル（例えば、ＳＳＴファイル）が第１レベルファイルに順次に書込まれる。書込み動作時に、ファイルを修正する代わりに、所定時間の間の変更がメモリで収集される。その後、変更が第２レベルファイルに書込まれる。更に多くの変更に対して他のレベルが追加される。
【００４５】
ワークフローモニターインターフェイス２６がＲｏｃｋｓＤＢの開始を検出した場合、ワークフローモニターインターフェイス２６はＲｏｃｋｓＤＢアプリケーションに関連するＲｏｃｋｓＤＢワークフロー２７’を獲得及び利用してデータ特性識別子をＲｏｃｋｓＤＢによって取り扱われるデータに割当てる。ＲｏｃｋｓＤＢワークフロー２７’はＬＳＭツリー（Ｌｏｇ  Ｓｔｒｕｃｔｕｒｅｄ  Ｍｅｒｇｅ  Ｔｒｅｅ）ワークフローのようなツリーワークフローを含む。ＲｏｃｋｓＤＢは、ＬＳＭツリーワークフローの具現の一例であり、他の例としてＢｉｇＴａｂｌｅ、ＡｐａｃｈｅＨＢａｓｅ、ＬｅｖｅｌＤＢ、ＷｉｒｅｄＴｉｇｅｒ、ＡｐａｃｈｅＣａｓｓａｎｄｒａ、Ｒｉａｋ、ＳＱＬｉｔｅ４、及びＣｏｃｋｒｏａｃｈｄｂが含まれる。
【００４６】
データベース５００、ワークフローモニターインターフェイス２６、及びＲｏｃｋｓＤＢワークフロー２７’をホストシステムのメモリ１８内に図示する。データベース５００はメモリ１８内に格納されたメモリテーブル５０２を使用する。ＳＳＤ１２内で、データベース５００は異なるレベル（例えば、レベル０、レベル１、レベルｍ）に格納された先行書込みログ（ｗｒｉｔｅ  ａｈｅａｄ  ｌｏｇ）５０４及び多様なＳＳＴファイル５０６（例えば、ＳＳＴファイル１、ＳＳＴファイルメモリ、ＳＳＴファイルｎ）を使用する。
【００４７】
データベース５００が書込み動作５１０を遂行する時、データベース５００はデータをメモリテーブル５０２の構造体に格納する。また、データベース５００は書込みを先行書込みログ５０４に追加する。先行書込みログ５０４は、全ての書込みを受信し、電源が遮断された後にも永久的に保存される。ワークフローモニターインターフェイス２６は、書込み動作５１０をモニターし、ＲｏｃｋｓＤＢワークフロー２７’に基づいてデータ特性ＩＤ＃１をログファイルに割当てる。
【００４８】
メモリテーブル５０２はメモリテーブル５０２の内容物が設定（又は変更）可能な閾値に到達する時まで格納書込みする。閾値に到達した時に、フラッシュ動作５１２が遂行されてＳＳＤ１２内のＳＳＴファイル５０６に書き込まれる。先行書込みログ５０４内のデータはメモリテーブル５０２内の対応するデータがＳＳＴファイル５０６にフラッシュされた後に除去される。ＳＳＴファイル５０６は通常メモリテーブル５０２がフラッシュされた後には再び書き込まれない。ワークフローモニターインターフェイス２６はフラッシュ動作５１２をモニターし、ＲｏｃｋｓＤＢワークフロー２７’に基づいてデータ特性ＩＤ＃２をＳＳＴファイル５０６のレベル０に割当てる。
【００４９】
挿入又は更新が発生することによって、行を上書きする代わりに、データベース５００は挿入又は更新されたデータの新たなタイムスタンプ付きバージョンを他のＳＳＴファイル５０６に書き込む。データベース５００はコンパクション（ｃｏｍｐａｃｔｉｏｎ）を使用してＳＳＤ１２のＳＳＴファイル５０６の累積を管理する。レベル０に格納されたデータがデータ閾値に到達すると、データベース５００は、更新の間に生成された削除されたデータ、列、及び行を除去し、ＳＳＴファイルのレベル０の有効なデータをレベル１に格納される新たなＳＳＴファイルに統合することによって、データベースファイルを圧縮するコンパクション動作５１４を遂行する。データベース５００は、古い多重ＳＳＴファイルの代わりに新たに統合されたＳＳＴファイルを使用し、読出し要請がコンパクションの前よりも更に効率的な処理を可能にする。古いＳＳＴファイルは、該当ファイルを使用する進行中の読出しが終了すると、直に削除される。ワークフローモニターインターフェイス２６は、コンパクション動作５１４をモニターし、ＲｏｃｋｓＤＢワークフロー２７’に基づいてレベル１ＳＳＴファイル５０６にデータ特性ＩＤ＃３を割当てる。
【００５０】
レベル１に格納されたデータがデータ閾値に到達すると、データベース５００は、使用されないデータを除去し、レベル１ＳＳＴファイルの有効データをレベル２に格納される新たなＳＳＴファイルに統合するコンパクション動作５１６を遂行する。ワークフローモニターインターフェイス２６は、コンパクション動作５１６をモニターし、ＲｏｃｋｓＤＢワークフロー２７’に基づいてレベル２メモリＳＳＴファイル５０６にデータ特性ＩＤ＃４を割当てる。本実施形態によると、一つのアプリケーションは単一タイプのファイルに対して多重ストリームを有する。
【００５１】
本実施形態によると、データ特性識別子は予測された寿命グループ（この例で、ＳＳＴレベル）に基づいてデータに割当てられ、該当データは予測された寿命に基づいてＳＳＤに格納される。データがいつ無効化又は削除されるかは分からないが、ワークフローモニターインターフェイス２６は同一のデータ特性識別子を有するデータが同時に無効化されたものと看做す。
【００５２】
図６は、ワークフローモニターインターフェイスをより詳細に示すブロック図である。図１及び図３と同様に、ワークフローモニターインターフェイス２６はホストシステム１０のオペレーティングシステム２０レベルに提供されるものとして図示する。ワークフローモニターインターフェイス２６は、アプリケーション３００、ファイルシステム２１、ブロックレイヤー２３及び装置ドライバ２９、及び連結された装置３０２の動作をモニターし、データ特性識別子３０を対応するＲｏｃｋｓＤＢワークフロー２７’に基づいてデータアイテムに割当てる。ＳＳＤ１２は、データ特性識別子３０を読出し、同一のデータ特性識別子３０を有するデータアイテムが同一のブロックに格納されるようにデータアイテムの格納に使用されるＳＳＤ１２のブロックを識別する。
【００５３】
本実施形態によると、ワークフローモニターインターフェイス２６は背景で持続的に実行されてアプリケーション３００及び連結された装置３０２の開始をモニターする。一例として、ワークフローモニターインターフェイス２６はＳＳＤ１２に対するデータアイテム修正のデータベース（図示せず）を維持する。ワークフローモニターインターフェイス２６は、アプリケーション又は装置によって遂行されるファイル更新動作をモニターし、ＲｏｃｋｓＤＢワークフロー２７’に従ってファイル更新動作の各々にデータ特性識別子３０を自動的に割当てる。
【００５４】
ワークフローモニターインターフェイス２６は、ファイルシステムでシステム呼出しフック（ｈｏｏｋｓ）を活用する構成要素を含み、アプリケーション３００、オペレーティングシステム２０、又は連結された装置３０２によってファイルに対して行われるファイル更新動作（生成、書込み、更新、削除等）をモニターする。ウィンドウズ（登録商標）及びリナックス（登録商標）のような大部分のオペレーティングシステムはシステムプログラム目的のためのファイルシステムフックを提供する。ワークフローモニターインターフェイス２６はＲｏｃｋｓＤＢワークフロー２７’でファイル更新動作（又は一連の更新動作）を参照して該当動作に割当てられた所定のデータ特性識別子を探す。
【００５５】
ワークフローモニターインターフェイス２６は所定のデータ特性識別子３０を更新動作に割当てる。一例として、ＲｏｃｋｓＤＢワークフロー２７’は、ファイルのタイプ又はデータの他の特性に従って、ファイル生成又は新たなファイル書込みデータ特性識別子３０を割当てる。最後に、ワークフローモニターインターフェイス２６は実際のファイル書込みを基本的なファイルシステム（ｕｎｄｅｒｌｙｉｎｇ  ｆｉｌｅ  ｓｙｓｔｅｍ）２１に伝達する。
【００５６】
データ特性識別子の割当ての例として、使用者が写真アプリ（ｐｈｏｔｏ  ａｐｐ）を起動して“ｆｏｏ．ｊｐｇ“と命名されたＪＰＥＧファイルタイプの写真ファイルを編集中であり、使用者のコンピュータのＳＳＤ１２が４つのデータ特性識別子又はストリーム識別子を処理するように構成された場合を仮定する。使用者が写真をＳＳＤ１２に格納する時、ワークフローモニターインターフェイス２６は写真アプリに関連するＲｏｃｋｓＤＢワークフロー２７’でファイル格納要請をモニター及び参照する。ＲｏｃｋｓＤＢワークフロー２７’は４つのデータ特性識別子が格納要請に割当てられたデータ特性識別子（例えば、１）を識別する。
【００５７】
ワークフローモニターインターフェイス２６はＲｏｃｋｓＤＢワークフロー２７’で特定された１のデータ特性識別子を割当てる。データ特性識別子は、ファイルデータと共にファイルシステム２１及びブロックレイヤー２３を通じてＳＳＤ１２に伝送され、１のデータ特性識別子が割当てられた他のデータと共にブロックに格納される。
【００５８】
他の例として、ワークフローモニターインターフェイス２６及びＲｏｃｋｓＤＢワークフロー２７’のワークフロー貯蔵所２７はオペレーティングシステムのブロックレイヤー２３又はＳＳＤ１２の内部に具現される。
【００５９】
図７は、データ識別子の割当て方法の他の例を示すブロック図である。データ特性識別子を割当てる他のワークフローモニターインターフェイス２６（図６参照）を提供する代わりに、図７の実施形態は、オペレーティングシステム２０、オペレーティングシステム２０の多様なレイヤー（例えば、ファイルシステム２１、ブロックレイヤー２５、装置ドライバ２９、及び連結された装置３０２に実装されたソフトウェアのようなソフトウェア構成要素によって直接的に評価（又は実行）可能な既知のワークフローを格納するワークフロー貯蔵所２７及びデータ配置の設定を提供する。ワークフロー貯蔵所３１は、ソフトウェア構成要素によって遂行される活動又は機能の間に不揮発性メモリ装置に書き込まれるデータアイテムの異なるタイプにデータ特性識別子を関連付ける一つ以上の所定のワークフロー３３を格納する。
【００６０】
多様なソフトウェア構成要素はワークフロー貯蔵所３１に直接要請してどのデータ特性識別子３０が使用されるかを獲得する。従って、例えば、ソフトウェア構成要素は、ワークフロー貯蔵所３１に対してそれ自体を識別して多様な機能のために使用するデータ特性識別子を獲得し、データ特性識別子をデータアイテムに割当てる。
【００６１】
既存の構成要素の動作をモニターしてデータ特性識別子を自動的に適用するワークフローモニターの実施形態と対照的に、図７の実施形態は、ワークフロー貯蔵所３１との要請及び応答メカニズムに依存することで、既存の構成要素が多重ストリーミング能力を付加する。ワークフローモニターの実施形態は、既存のソフトウェア構成要素で再プログラムを必要とすることは非常に少ないが、ワークフローモニターソフトウェアの生成及び実行に追加的な作業を必要とする。図７の実施形態は、既存のソフトウェア構成要素で一部再プログラムを必要とするが、ワークフローモニターを生成、実行、及び維持する必要が無い。
【００６２】
本実施形態の具体的な例で、ソフトウェア構成要素はワークフロー貯蔵所３１に要請してソフトウェア構成要素に関連する所定のワークフロー３３を探す。一例として、要請はソフトウェア構成要素の識別子を含む。ワークフロー貯蔵所３１からの応答はソフトウェア構成要素に割当てられたワークフロー３３のアイデンティティ（ｉｄｅｎｔｉｔｙ）を含む。
【００６３】
動作中に、ソフトウェア構成要素は、一つ以上の要請を識別されたワークフロー３３に伝送して一つ以上のデータ特性識別子を獲得し、ソフトウェア構成要素によって使用されるデータアイテムに関連付ける。一例として、要請はソフトウェア構成要素によって遂行される現在の動作及び遂行される後続動作の一つ以上の特性（例えば、データタイプ）を含む。例えば、ソフトウェア構成要素は、ソフトウェア構成要素の識別子（例えば、識別子名又は識別子形態）を利用してワークフロー貯蔵所３１にソフトウェア構成要素の識別を要請し、次にソフトウェア構成要素に関連するデータ特性識別子を識別されたワークフロー３３に要請する。他の例として、ソフトウェア構成要素はソフトウェア構成要素のアイデンティティ（又は、識別子）及びデータ特性識別子の要請を含む単一要請を生成する。
【００６４】
アプリケーションとして識別子名又は識別子を使用してワークフロー貯蔵所３１に要請するよりも、ソフトウェア構成要素がオペレーティングシステムを含む例で、オペレーティングシステムの各レベルは、一つ以上のデータ特性識別子を獲得するために、対応するオペレーティングシステムレベルに関連するワークフロー貯蔵所３１への入力を提供する。例えば、ファイルシステムレベルで、オペレーティングシステムはデータ特性識別子を要請する時にファイルタイプやサイズ等を利用する。ブロックレベルで、オペレーティングシステムはＬＢＡ範囲等を利用する。一例として、オペレーティングシステムは付随する装置からの装置識別子を利用してワークフロー貯蔵所３１からデータ特性識別子を獲得する。
【００６５】
ソフトウェア構成要素からの要請に応答して、ワークフロー３３は該当動作及びデータアイテムのタイプに対してワークフロー３３で特定された一つ以上のデータ特性識別子をソフトウェア構成要素に返す。
【００６６】
ワークフロー３３からデータ特性識別子を受信することによって、ソフトウェア構成要素は、データ特性識別子をソフトウェア構成要素によって使用されるデータアイテムに自動的に割当て、データアイテム及び割当てられたデータ特性識別子を不揮発性メモリ装置（例えば、ＳＳＤ１２）に格納のために伝送する。
【００６７】
ＳＳＤ１２は、データ特性識別子３０を読出し、同一のデータ特性識別子３０を有するデータアイテムが同一ブロックに格納されるように、対応するデータアイテムの格納に使用されるＳＳＤ１２のブロックを識別する。
【００６８】
データ特性識別子の割当ての例として、使用者が写真アプリを起動して“ｆｏｏ．ｊｐｇ“と命名されたＪＰＥＧファイルタイプの写真ファイルを編集中であり、使用者のコンピュータのＳＳＤ１２が４つのデータ特性識別子又はストリーム識別子を処理するように構成された場合を仮定する。使用者が写真をＳＳＤ１２に格納する時、写真アプリはファイル格納動作に割当てられたデータ特性識別子のために写真アプリに関連する要請をワークフロー３３に伝達する。ワークフロー３３は４つのデータ特性識別子が格納要請に割当てられたデータ特性識別子（例えば、１）を識別する。
【００６９】
写真アプリはワークフロー３３で特定された１のデータ特性識別子を割当てる。データ特性識別子は、ファイルデータと共にファイルシステム２１及びブロックレイヤー２３を通じてＳＳＤ１２に伝送され、１のデータ特性識別子が割当てられた他のデータを格納するブロックに格納される。
【００７０】
他の例として、ワークフロー貯蔵所３１はデータベースアプリケーションとして具現される。
【００７１】
一例として、ワークフローモニターインターフェイス２６はソフトウェア構成要素として具現される。他の例として、ワークフローモニターインターフェイス２６はハードウェア及びソフトウェアの組合せとして具現される。ワークフローモニターインターフェイス２６を単一構成要素として図示しているが、ワークフローモニターインターフェイス２６の機能は更に多い数のモジュール又は構成要素を利用して具現される。
【００７２】
本実施形態によるワークフローモニターインターフェイス２６は、クライアントから企業までの、単一スタンドアロンマシン（デスクトップコンピュータ、ラップトップ、ワークステーション、サーバー等）のディスク、ストレージアレイ、ソフトウェア定義ストレージ（ＳＤＳ）、アプリケーション特定ストレージ、仮想マシン（ＶＭ）、仮想デスクトップコンピュータインフラストラクチャー（ＶＤＩ）、コンテンツ分散ネットワーク（ＣＤＮ）等のような幅広い格納市場に適用される。
【００７３】
一例として、ＳＳＤ１２の不揮発性メモリアレイ２４は複数のフラッシュメモリのような複数の不揮発性メモリチップで形成される。他の例として、不揮発性メモリアレイ２４はフラッシュメモリチップの代わりに異なるタイプの不揮発性メモリチップ（例えば、ＰＲＡＭ、ＦｅＲＡＭ、ＭＲＡＭ等）で形成される。更に他の例として、不揮発性メモリアレイ２４は、ＤＲＡＭ又はＳＲＡＭのような揮発性メモリで形成され、２つ以上のタイプのメモリが混合されたハイブリッドタイプを有する。
【００７４】
ストレージ装置のデータ特性基盤データ配置のための方法及びシステム、そしてコンピュータシステムがデータ配置方法を活用するワークフローモニターインターフェイスを説明した。上述の実施形態は、ハードウェア、ソフトウェア、プログラム命令を格納するコンピュータ読み取り可能な記録媒体又はこれらの組合せで具現される。本実施形態によって書込まれたソフトウェアは、メモリ、ハードディスク、又はＣＤ／ＤＶＤ−ＲＯＭのようなコンピュータ読み取り可能な記録媒体に格納され、プロセッサによって実行される。
【００７５】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００７６】
１０    ホストシステム
１２    ソリッドステートドライブ（ＳＳＤ）
１４    メモリチャンネル
１６    プロセッサ
１８    メモリ
２０、２０Ａ、２０Ｂ    オペレーティングシステム（ＯＳ）
２１    ファイルシステム
２２    ストレージコントローラ
２３、２３Ａ、２３Ｂ、２５    ブロックレイヤー
２４    不揮発性メモリ（ＮＶＭ）アレイ
２６、２６Ａ、２６Ｂ、２６Ｃ、２６Ｄ    ワークフローモニターインターフェイス
２７、３１    ワークフロー貯蔵所
２７’    ＲｏｃｋｓＤＢワークフロー
２８    データアイテム
２９    装置ドライバ
３０、３０Ａ、３０Ｂ、３０Ｃ、３０Ｄ    データ特性識別子（ＩＤ）
３３    ワークフロー
３００Ａ、３００Ｂ、３００Ｃ、３００Ｄ    コンピューティング装置
３００、３０４Ａ、３０４Ｂ    アプリケーション
３０２    連結された装置
３０６Ｃ、３０６Ｄ    ハードウェア装置コントローラ
３０８Ａ、３０８Ｂ、３０８Ｃ、３０８Ｄ    消去ブロック
５００    データベース
５０４    先行書込みログ
５０６    ＳＳＴファイル
５１０    メモリテーブル
５１２    フラッシュ動作
５１４、５１６    圧縮データ書込み
【図１】
2017021804.tif 000003
【図２】
2017021804.tif 000004
【図３】
2017021804.tif 000005
【図４】
2017021804.tif 000006
【図５】
2017021804.tif 000007
【図６】
2017021804.tif 000008
【図７】
2017021804.tif 000009