(57)【要約】      （修正有）【課題】相異なる遂行性能を有するＳＳＤを用いた場合の、高性能マルチストリーミングのためのストレージ装置を提供する。【解決手段】ストレージ装置は、第１類型の第１ストレージ及び第２類型の第２ストレージを包含できるデータを格納するストレージと、多数の装置ストリームを支援する。多数の装置ストリームの中の一部は、第１ストレージと関連され、そして多数の装置ストリームの中の一部は第２ストレージと関連される。ストレージ装置のコントローラは、ストレージ装置のためのストリーミング性能をインベントリできるストリーミング性能分析器を包含する。ストレージ装置は、ストレージ装置のストリーミング性能をストレージ管理部に送信する送信機を包含する。【選択図】図４
2018190425.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置であって、
第１類型の第１ストレージ及び前記第１類型と相異なる第２類型の第２ストレージを含む、データのためのストレージと、
前記ストレージに前記データをライト（ｗｒｉｔｅ）する際に用いられる多数の装置ストリームと、
前記ストレージ装置のストリーミング性能をインベントリ（ｉｎｖｅｎｔｏｒｙ）するストリーミング性能分析器と、
前記ストレージ装置の前記ストリーミング性能を少なくとも１つのストレージ管理部に送信する送信機と、を包含し、
前記ストレージ装置により支援される前記多数の装置ストリームの中で第１装置ストリームは前記第１ストレージと関連され、そして前記ストレージ装置により支援される前記多数の装置ストリームの中で第２装置ストリームは前記第２ストレージと関連される、ことを特徴とするストレージ装置。
【請求項２】
前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力（ｔｈｒｏｕｇｈｐｕｔ）の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される、ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記ストレージ装置の前記ストリーミング性能にアプデイトがある時を感知するように動作するアプデイト感知器をさらに包含し、
前記ストリーミング性能分析器は前記ストレージ装置の前記アプデイトされたストリーミング性能を再インベントリするように動作し、そして
前記送信機は前記ストレージ装置の前記アプデイトされたストリーミング性能を前記少なくとも１つのストレージ管理部に送信するように動作する、ことを特徴とする請求項１に記載のストレージ装置。
【請求項４】
少なくとも１つのストレージ装置の少なくとも１つのストリーミング性能、少なくとも１つのソフトウェアストリームに対する要求、及び前記少なくとも１つのソフトウェアストリームからの要請を受信する受信機と、
前記少なくとも１つのソフトウェアストリームに対する前記要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される多数の装置ストリームの中から１つを選択する装置ストリーム選択機と、
前記要請を、前記少なくとも１つのストレージ装置の１つであって、前記多数の装置ストリームの中から選択された１つを支援する第１ストレージ装置に送信する送信機と、を包含する、ことを特徴とするストレージ管理部。
【請求項５】
ストレージ装置に依存しない考慮事項を用いて前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を補強するオーグメンタ（ａｕｇｍｅｎｔｅｒ）をさらに包含する、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項６】
前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によるストレージ内コンピューティング（ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項７】
前記ストリーム選択機が、前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのソフトウェアストリームから、前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中の少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するマッパー（ｍａｐｐｅｒ）を包含する、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項８】
前記マッピングを格納するデータ構造のためのストレージをさらに包含する、ことを特徴とする請求項７に記載のストレージ管理部。
【請求項９】
前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を格納するデータ構造のためのストレージをさらに包含する、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項１０】
前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能は、前記少なくとも１つのストレージ装置が第１類型の第１ストレージと第２類型の第２ストレージとの包含を規定し、前記第１類型は前記第２類型と相異なる、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項１１】
前記少なくとも１つのストレージ装置は、第１ストレージ装置及び第２ストレージ装置を包含し、前記第１ストレージ装置と前記第２ストレージ装置とは、相異なるストリーミング性能を支援する、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項１２】
前記少なくとも１つのストレージ装置は、
第１類型のストレージを支援する第１ストレージ装置と、及び
前記第１類型のストレージと異なる第２類型のストレージを支援する第２ストレージ装置と、を包含する、ことを特徴とする請求項１１に記載のストレージ管理部。
【請求項１３】
前記相異なるストリーミング性能は、相異なる多数の装置ストリーム、相異なる消去ブロックサイズ、相異なるストレージ容量、相異なるオートストリーミング性能、相異なる最適のストリームライトのサイズ、相異なるストレージ内コンピューティング性能、相異なるプログラム及び消去スピードパラメータ、相異なるバッファサイズ、相異なる処理能力の制限、そして相異なるファームウェアバージョンを包含する、ことを特徴とする請求項１１に記載のストレージ管理部。
【請求項１４】
前記少なくとも１つのソフトウェアストリームに対する前記要求は、前記少なくとも１つのソフトウェアストリームに対する少なくとも二つの要求を包含し、
前記装置ストリーム選択機は加重値を前記少なくとも１つのソフトウェアストリームに対する前記少なくとも二つの要求に割り当てる加重値の割り当て機を包含し、そして
前記装置ストリーム選択機は、前記加重値、及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するように動作する、ことを特徴とする請求項４に記載のストレージ管理部。
【請求項１５】
多数の装置ストリームを支援する、少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップと、
少なくとも１つのソフトウェアストリームから要請を受信するステップと、
前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップと、
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求、及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中から少なくとも１つを選択するステップと、
前記少なくとも１つのソフトウェアストリームから、前記多数の装置ストリームの中で前記選択された少なくとも一つを用いる前記少なくとも１つのストレージ装置に前記要請を送信するステップと、を包含する、ことを特徴とする方法。
【請求項１６】
ストレージ装置に依存しない考慮事項を用いて前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を補強するステップと、をさらに包含する、ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中から少なくとも１つを選択するステップは、
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのソフトウェアストリームから前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するステップと、
前記少なくとも１つのソフトウェアストリームに対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つを選択する前記マッピングを用いるステップと、を包含する、ことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのソフトウェアストリームから前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するステップは、
前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの各々を、前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を用いて、少なくとも２つの等級の中で１つに割り当てるステップと、
前記少なくとも１つのソフトウェアストリームを前記少なくとも２つの等級の中で１つに割り当てるステップと、
前記少なくとも１つのソフトウェアストリームを同一の等級を有する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つに割り当てるステップと、を包含する、ことを特徴とする請求項１７に記載の方法。
【請求項１９】
多数の装置ストリームを支援する少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップは、
少なくとも第１類型のストレージを支援する少なくとも第１ストレージ装置の少なくとも第１ストリーミング性能を受信するステップと、
少なくとも第２類型のストレージを支援する少なくとも第２ストレージ装置の少なくとも第２ストリーミング性能を受信するステップと、を包含し、前記第２類型のストレージは前記第１類型のストレージと相異なる、ことを特徴とする請求項１５に記載の方法。
【請求項２０】
前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップは、前記少なくとも１つのソフトウェアストリームの少なくとも２つの要求を判別するステップを包含し、
ここで、前記少なくとも２つの要求は前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能の部分集合を表し、
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中から少なくとも１つを選択するステップは、
加重値を前記少なくとも１つのソフトウェアストリームの前記少なくとも２つの要求に割り当てるステップと、
前記加重値及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリ−ムの中で前記少なくとも１つを選択するステップと、を包含する、ことを特徴とする請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）ストレージ装置に関するもので、さらに詳しくは、相異なる遂行性能を有するＳＳＤを用いたマルチストリーミングのための、ストレージ装置、ストレージ管理部、及び方法｛Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ，  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒ，  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｍｕｌｔｉ−ｓｔｒｅａｍｉｎｇ｝に関する。
【背景技術】
【０００２】
マルチストリーミング（ｍｕｌｔｉ−ｓｔｒｅａｍｉｎｇ）は、システムによる“ストリーム”のデータへの割り当てを可能にする最新のＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）の主要な特長である。各ストリームはＳＳＤ上で物理的に分離されていて、ガーベージコレクション（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎ、‘ゴミ’（不用品）回収）動作及びライト増幅因子（Ｗｒｉｔｅ  Ａｍｐｌｉｆｉｃａｔｉｏｎ  Ｆａｃｔｏｒ）動作を改善する。類似した寿命が予想されるデータは、一つのストリーム内にまとめてグループ化でき、（理想的には）ほぼ同時に消去ブロックの全てのデータが無効化される。結果的に、ガーベージコレクションに際して、或る消去ブロックを実際に消去する前に、該消去ブロックから有効データを他のブロックにプログラムする必要を削減できるか、（理想的には）解消でき、結局、ＳＳＤのライト増幅因子を削減できる。
【０００３】
システムの内の全てのストレージ装置が全ての点から同一であれば、マルチストリーミングの具現は単純な問題であり得る。特定のデータをライト（ｗｒｉｔｅ）するため選択されるストリームが何であるかに拘わらず、ターゲットストレージ（ｔａｒｇｅｔ  ｓｔｏｒａｇｅ）装置の予想される性能は同一であろう（又は、ほぼ同一）。それは、ほぼ全てのデータは、ほぼ全てのストリーム及びドライブに割り当てできるからである。  
【０００４】
しかしながら、システムの内の斯かる同質性は稀である。普通、システムは混合されたストレージ装置を含む。それは、相異なる類型の装置（例えば、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）対ＳＳＤ）、相異なる性能レベル（例えば、相異なるリード（ｒｅａｄ）及び／又はライト（ｗｒｉｔｅ）の待ち時間（ｌａｔｅｎｃｉｅｓ）、又は相異なるガーベージコレクションの特性）、及び／又は相異なるコネクタ（例えば、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）対イーサネット（Ｅｔｈｅｒｎｅｔ））である。
製造及び連結以外は同一の装置も相異なるように遂行され得る。例えば、同一のホストマシン（ｍａｃｈｉｎｅ）に連結された２つのＳＳＤストレージ装置を考慮する。２つのＳＳＤの中で１つが、ホストマシンにより発行された全命令の中で実質的に５０％よりも多い命令を受信すると、当該ＳＳＤは入出力（Ｉ／Ｏ）キューの内の命令がより多くなるせいで、性能が遅くなることは勿論、ガーベージコレクション及びライト増幅が、結局、相棒のＳＳＤよりもずっと多くなる事態に陥る。
【０００５】
異種のストレージ装置のためのストリーム管理を決定する方法が必要となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国登録特許第９４６５７５３Ｂ２号公報
【特許文献２】米国登録特許第９５６９１７８Ｂ１号公報
【特許文献３】米国公開特許第２０１２／００７２７９８Ａ１号公報
【特許文献４】米国公開特許第２０１５／０３２４２５５Ａ１号公報
【特許文献５】米国公開特許第２０１６／００４４０７７Ａ１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上述した技術的課題を解決するためのもので、相異なる遂行性能を有するＳＳＤを用いた場合の、高性能マルチストリーミングのためのストレージ装置、ストレージ管理部、及び方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の実施例によるストレージ装置は、第１類型の第１ストレージ及び前記第１類型と相違なる第２類型の第２ストレージを含む、データのためのストレージと、前記ストレージに前記データをライトする際に利用される多数の装置ストリームと、前記ストレージ装置のストリーミング性能をインベントリ（ｉｎｖｅｎｔｏｒｙ）するストリーミング性能分析器と、及び前記ストレージ装置の前記ストリーミング性能を少なくとも１つのストレージ管理部へ送信する送信機と、を包含し、前記ストレージ装置により支援される前記多数の装置ストリームの中で、第１装置ストリームは前記第１ストレージと関連され、そして前記ストレージ装置により支援される前記多数の装置ストリームの中で、第２装置ストリームは前記第２ストレージと関連される。
【０００９】
本発明の実施例によるストレージ管理部は、少なくとも１つのストレージ装置の少なくとも１つのストリーミング性能、  少なくとも１つのソフトウェアストリームに対する前記要求及び前記少なくとも１つのソフトウェアストリームからの要請を受信する受信機と、前記少なくとも１つのソフトウェアストリームに対する前記要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される多数の装置ストリームの中から１つを選択する装置ストリームの選択機と、前記要請を、前記少なくとも１つのストレージ装置の１つであって、前記多数の装置ストリームの中で選択された１つを支援する第１ストレージ装置へ送信する送信機と、を包含する。
【００１０】
本発明の実施例による方法は、多数の装置ストリームを支援する、少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップと、少なくとも１つのソフトウェアストリームから要請を受信するステップと、前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップと、前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求、及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応するように、前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中から少なくとも１つを選択するステップと、前記多数の装置ストリームの中で、前記選択された少なくとも１つを用いて前記少なくても１つのソフトウェアストリームにおいて、前記少なくとも１つのストレージ装置へ要請を送信するステップと、を包含できる。
【発明の効果】
【００１１】
マルチストリーミングの脈略の内で、アプリケーションの或る小さい部分が高レベルのＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）資源を要求する場合、該アプリケーション全体に高レベルのＱｏＳ資源を提供のではなく、本発明の実施例では、アプリケーションの内、小さいが高レベルのＱｏＳを要求する部分に対してのみ１つの高レベルＱｏＳストリームが提供され、該アプリケーションの他のストリームには低レベルのＱｏＳ資源が提供されるので、高性能マルチストリーミングが具現される。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施例によって、ストレージ装置を備えたマシンを図示する。
【図２】図２は、図１のマシンの追加の細部事項を図示する。
【図３】図３は、相異なる類型及び性能を有するストレージを含む図１のストレージ装置、及びそれらと通信する図１のストレージ管理部を図示する。
【図４】図４は、図３においてストレージがＳＳＤ型（フラッシュ型）の場合のストレージ装置の細部事項を図示する。
【図５】図５は、図１のストレージ装置のコントローラの細部事項を図示する。
【図６】図６は、図１のストレージ装置から、図１のストレージ管理部へ報告され得る多様なストリーミング性能を図示する。
【図７】図７は、図６のストリーミング性能を図１のストレージ管理部に通信する図１のストレージ装置を図示する。
【図８】図８は、図１のマシン上で実行され、ソフトウェアストリームを介して要請を送信するアプリケーションを図示する。
【図９】図９は、図１のストレージ管理部の細部事項を図示する。
【図１０】図１０（Ａ）及び図１０（Ｂ）は共に、図１のストレージ装置のストリーミング性能を格納するための例示的なストリーミング性能関連データ構造及びマッピング関連データ構造を図示する。
【図１１】図１１は、図１のストレージ管理部がストリームをアプリケーションに割り当てる例示的なメカニズムの動作順序図を図示する。
【図１２】図１２は、図９の装置ストリームの選択機の細部事項を図示する。
【図１３】図１３は、図１２のマッパー（ｍａｐｐｅｒ）の細部事項を図示する。
【図１４】図１４は、本発明の実施例により、図１のストレージ装置がそれ自身のストリーミング性能をセルフインベントリ（ｓｅｌｆ−ｉｎｖｅｎｔｏｒｙ）して、その情報を図１のストレージ管理部へ送信するための例示的な手順の順序図を図示する。
【図１５】図１５は、本発明の実施例により、ストリーミング性能がいつ変化したかを判別するための図１のストレージ装置のための例示的な手順の順序図を図示する。
【図１６】図１６は、本発明の実施例により、図１のストレージ管理部が要請を図１のストレージ装置の内の装置ストリーミングに割り当てるための例示的な手順の順序図を図示する。
【図１７】図１７は、本発明の実施例により、図１のストレージ管理部がソフトウェアストリームを装置ストリームにマッピングするための例示的な手順の順序図を図示する。
【図１８】図１８は、本発明の実施例により、図１のストレージ管理部がソフトウェアストリームのために、装置ストリームを選択するための例示的な手順の順序図を図示する。
【発明を実施するための形態】
【００１３】
以下、本発明の具体的な実施例に対する参照が詳細に提供され、本発明の具体的な実施例に対する例示は、添付された図面に図示される。後述する詳細な記述において、本発明に対する完全な理解が可能となるように数多くの具体的な事項が提供される。しかしながら、斯かる詳細な記述が無くとも、当業者ならば本発明を実施できると理解されるべきである。他の例示では、公知の方法、ステップ、構成、回路、及びネットワークについては、実施例の諸様相を不必要に曖昧にしないように詳細な記述を避けた。
【００１４】
本明細書で、第１、第２などが多様な構成要素を説明するのに使用されるが、斯かる構成要素は、斯かる用語により限定されないものとして理解されるべきである。斯かる用語は単に、１つの構成要素を他のものと区別するために使用される。例えば、第１モジュールは第２モジュールと命名でき、そして同様に本発明の範囲を逸脱せずに、第２モジュールは第１モジュールと命名できる。
【００１５】
本明細書で、本発明の説明に使用された用語は、単に特定の実施例を記述するための目的で使用され、本発明を限定する意図では使用されない。文脈上、そうではないと明確に規定されない限り、単数の形態が本発明の説明及び付加された請求項で使用される時、複数の形態を含むと意図される。なお、本明細書に使用された“及び／又は”の用語は１つ又はそれ以上の関連・羅列された事項の全ての可能な組合を表わすか包含すと理解されるべきである。“包含する”の用語が本明細書に使用される場合、記述された特徴、数字、ステップ、動作、構成、及び／又は要素の存在を明記するが、これらの１つ又はそれ以上の他の特徴、数字、ステップ、動作、構成、要素、及び／又はグループの存在又は付加を排除しないと、さらに理解されるべきである。図面の構成要素及び特徴は必ずしも実寸の比率で描かれない。
【００１６】
２０１５年１１月３０日出願された米国の仮特許出願（６２／２６１，３０３）の利益を主張する、現在係属中の２０１６年２月１７日出願された米国特許出願（１５／０４６，４３９）は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれる。
【００１７】
２０１５年１２月３０日出願された米国の仮特許出願（６２／２７３，３２３）の利益を主張する、現在係属中の２０１６年４月１日出願された米国特許出願（１５／０８９，２３７）は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれる。
【００１８】
２０１５年１１月３０日出願された米国仮特許出願（６２／２６１，３０３）の利益を主張する、現在係属中の２０１６年２月１７日出願された米国特許出願（１５／０４６，２３９）のＣＩＰ（Ｃｏｎｔｉｎｕａｔｉｏｎ−Ｉｎ−Ｐａｒｔ）出願であって現在係属中の２０１６年５月４日出願された米国特許出願（１５／１４６，７０８）は本出願に関連し、これらの全部は全ての目的のため、本明細書にここで参照により組み込まれる。
そして、２０１６年３月１日出願された米国仮特許出願（６２／３０２，１６２）の利益を主張する、２０１６年５月４日出願された米国特許出願（１５／１４６，７０８）は、全ての目的のため、本明細書にここで参照により組み込まれる。
【００１９】
２０１６年３月２９日出願された米国仮特許出願（６２／３１４，９２０）の利益を主張する、現在係属中の２０１６年５月２０日出願された米国特許出願（１５／１６１，１４４）は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれる。
【００２０】
２０１６年３月１６日出願された米国仮特許出願（６２／３０９，４４６）の利益を主張する、現在係属中の２０１６年５月２７日出願された米国特許出願（１５／１６７，９７４）は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれる。
【００２１】
２０１７年４月１１日出願された米国仮特許出願（６２／４８４，３８７）の利益を主張する、現在係属中の２０１７年７月１８日出願された米国特許出願（１５／６５３，４７９）は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれる。
【００２２】
“マルチストリーミング（ｍｕｌｔｉ−ｓｔｒｅａｍｉｎｇ）”の脈略において、関心のある２つの類型のストリームがある。ストリームの第１類型は、ソフトウェアストリーム（ｓｏｆｔｗａｒｅ  ｓｔｒｅａｍ、ときにはアプリケーションストリーム（ａｐｐｌｉｃａｔｉｏｎ  ｓｔｒｅａｍ）と呼ばれる）である。ソフトウェアストリームは、ストリームを定義するアプリケーションに依存するソフトウェア概念である。
アプリケーションはそれ自身が使用する目的に合わせ任意の個数のストリーミングを定義できる。例えば、アプリケーション又は運営体制（ＯＳ）は寿命が長いデータに対して１つのストリームを、単に一時的に格納されるデータに対して他のストリームなどを定義できる。なお、アプリケーションはストリームの区別に際して他の条件を利用できる。即ち、データ寿命の使用は、単に１つの例示的なやり方（ａｐｐｒｏａｃｈ）である。
【００２３】
ストリームの第２類型は、装置ストリーム（ｄｅｖｉｃｅ  ｓｔｒｅａｍ）である。装置ストリームはデータの格納のためストレージ装置を通じる個別“経路”を示すハードウェア概念である。各装置は特定の個数の装置ストリームを支援することが可能である。装置ストリームの個数は、ハードウェアの制約によって縛られているので一般的に事前に知られている。
【００２４】
ストレージ装置は、全体のドライブ（ｄｒｉｖｅ）及びその潜在的ストリームの双方に関連する特定の物理的及び論理的属性（又は、選択的には、これらの情報を抽象化したもの）をホストとの間で通信する。この情報を用いてホストは、アプリケーション（及びそれらの個別ストリーム）が賦課する任意のＱｏＳ  （Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）要求に基づいてストリームをアプリケーションに割り当てる。各ドライブ及びその装置ストリームに関連する性能（場合によっては、ホストはストリームの外の因子を補充できる）をホストに知らせることで、ホストはマルチストリーミングの容量を最大限効率的に利用できる。
【００２５】
例として、ＳＬＣ（Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ）及びＴＬＣ（Ｔｒｉｐｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ）フラッシュの全てを有し、８個のストリームを支援できるイーサネット（Ｅｔｈｅｒｎｅｔ）連結のＳＳＤを考慮する。このドライブはホストに次の事項を報告できる。
１）ドライブ類型（例えば、イーサネットＳＳＤである事実）。
２）そのホストとの通信に際して経験された全てのネットワーク待機時間。
３）ＳＬＣ及びＴＬＣの待機時間（又は相対的な待機時間）。
４）ＳＬＣ対ＴＬＣにストリームを割り当てる際の全ての制約。
【００２６】
他のドライブは、それらの必須的なストリーム基準（ｍｅｔｒｉｃｓ）をホストに同様に報告できる。その後に、ホストはアプリケーション（又は個別ストリーム）からの全てのＱｏＳ要求を分析し、そのアプリケーション（又はストリーム）をそれに最も適したドライブに割り当てる。
【００２７】
ストレージ装置の始め（及びその以後周期的に）から、ストレージ装置はそのストリーミング性能をセルフインベントリ（自己棚卸、ｓｅｌｆ−ｉｎｖｅｎｔｏｒｙ）する。本発明の実施例において、ストリーミング性能は、支援されるハードウェアストリーミングの個数、消去ブロックのサイズ、内部の物理的異種性、オートストリーミング（ａｕｔｏ−ｓｔｒｅａｍｉｎｇ）能力及びパラメータ、そして潜在的なストリームと関連されたプログラム及び消去速度を、他の性能と並んで包含する。
【００２８】
なお、本発明によればアプリケーションが多重ストリームを利用でき、該多重ストリームの各々は、データ寿命の要求とは相異なるＱｏＳ要求ができる。従来のマルチストリーミングのシステムでは、各ストリームが類似した性能を提供すると仮定していたが、本発明の実施例はこの仮定を捨てる。結果的に、本発明の実施例はより微細なＱｏＳの細分性（粒度、ｇｒａｎｕｌａｒｉｔｙ）の生成によって、システム上の全般的な「ＱｏＳ」の負担を必然的に低減する。
即ち、マルチストリーミングの脈略の内で、アプリケーションの或る小さい部分が高レベルのＱｏＳ資源を要求するからといって、該アプリケーション全体に高レベルのＱｏＳ資源を提供するよりは、本発明の実施例では、アプリケーションの内、小さいが高レベルのＱｏＳを要求する部分に対してのみ１つの高レベルＱｏＳストリームが提供され、該アプリケーションの他のストリームには低レベルのＱｏＳ資源が提供される。
【００２９】
図１は本発明の実施例によって、ストレージ装置を備えたマシンを図示する。図１で、マシン（ｍａｃｈｉｎｅ）１０５が図示された。マシン１０５はデスクトップ（ｄｅｓｋｔｏｐ）又はラップトップコンピュータ  （ｌａｐｔｏｐ  ｃｏｍｐｕｔｅｒ）、サーバ（独立実行型サーバ又はラックサーバの中で１つ）又は本発明の実施例が役立つ任意の他の装置を包含するが、これに限定されない任意の所望の（ｄｅｓｉｒｅｄ）マシンであり得る。マシン１０５は専門家された携帯用コンピューティング装置、タブレッドコンピュータ、スマートフォン、及び他のコンピューティング装置を、なお包含できる。マシン１０５は任意の所望のアプリケーションを実行できる。つまり、データベースアプリケーションがよい例であるが、本発明の実施例は任意の所望のアプリケーションまで拡張できる。
【００３０】
マシン１０５は、その特定の形態と関係なしに、プロセッサ１１０、メモリ１１５、及びストレージ装置１２０を包含する。プロセッサ１１０は任意の多様なプロセッサであり得る。つまり、例えばインテル社の、ジーオン（Ｘｅｏｎ）、セレロン（Ｃｅｌｅｒｏｎ）、アイテニアム（Ｉｔａｎｉｕｍ）、又はアトム（Ａｔｏｍ）プロセッサ、ＡＭＤ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ）社のオプテロン（Ｏｐｔｅｒｏｎ）プロセッサ、ＡＲＭ（Ａｃｏｒｎ（又は、Ａｄｖａｎｃｅｄ）  ＲＩＳＣ  Ｍａｃｈｉｎｅ）社の各種ＡＲＭプロセッサなどであり得る。図１は１つのプロセッサを図示するが、マシン１０５は任意の個数のプロセッサを包含でき、各々はシングルコア（ｓｉｎｇｌｅ  ｃｏｒｅ）又はマルチコア（ｍｕｌｔｉ−ｃｏｒｅ）のプロセッサであり得る。
メモリ１１５は、フラッシュメモリ、ＳＲＡＭ（Ｓｔａｔｉｃ＿ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））、ＰＲＡＭ（Ｐｅｒｓｉｓｔｅｎｔ＿ＲＡＭ、又はＰｈａｓｅ＿ｓｈｉｆｔ＿ＲＡＭ）、ＦＲＡＭ（登録商標）（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ＿ＲＡＭ）、又は、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ＿ＲＡＭ）のようなＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ＿ＲＡＭ）などの任意の多様なメモリであり得るが、一般的にはＤＲＡＭ（Ｄｙｎａｍｉｃ＿ＲＡＭ）である。なお、メモリ１１５は相異なるメモリ種類の任意の組合せであり得る。メモリ１１５は、なおマシン１０５の一部であり得るメモリコントローラ１２５により制御される。
【００３１】
ストレージ装置１２０はマルチストリーミングを支援できる任意の多様なストレージ装置である。ストレージ装置１２０はメモリ１１５の内にソフトウェアとして駐在する装置ドライバ１３０により制御される。
【００３２】
最終的に、マシン１０５はストレージ管理部１３５を包含する。ストレージ管理部（ｓｔｏｒａｇｅ  ｍａｎａｇｅｒ）１３５はアプリケーション又は他のソフトウェア資源からの要請を適切な目的地に仕向ける。本発明の実施例において、ストレージ管理部１３５はストレージ装置１２０のストリーミング性能に基づいて、要請をストレージ装置１２０と関連された装置ストリームに割り当てる。図１は、単に１つのストレージ装置１２０を図示するが、本発明の実施例は任意の個数のストレージ装置の場合を支援できる。又は、ストレージ装置１２０はマシン１０５の内に位置するか、又は外部に位置できる（恐らくネットワーク（図示せず）を通じて接近可能）。ストレージ管理部１３５はハードウェア、ハードウェア及びソフトウェアの組合せ又はプロセッサ１１０上で実行されるソフトウェアとして具現される。本明細書を通じて、「ストレージ管理部１３５」への任意の参照はマシン１０５の記述として、もう少し一般的に読み替えられる。
【００３３】
図２は、図１のマシン１０５の追加の細部事項を図示する。図２を参照すると、一般的に、マシン１０５はマシン１０５の構成要素の動作を調整するのに用いられ、メモリコントローラ１２５及びクロック２０５を包含する１つ以上のプロセッサ１１０を包含する。プロセッサ１１０は、なお、例示としてＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ−ｏｎｌｙ  Ｍｅｍｏｒｙ）、又は他の状態保持媒体を包含するメモリ１１５と連結される。プロセッサ１１０は、なお、ストレージ装置１２０と連結され、そして例えば、イーサネットコネクタ又は無線コネクタであり得るネットワークコネクタ２１０と連結される。なお、プロセッサ１１０は他の構成要素の中でユーザインタフェース２２０及び入出力エンジン２２５を用いて管理される入出力インタフェースポートが付着されるバス２１５と連結される。
【００３４】
図３は、相異なる類型及び性能を有するストレージを含む図１のストレージ装置１２０−１〜１２０−５、及びそれらと通信する図１のストレージ管理部１３５を図示する。図３では、ストレージ管理部１３５が相異なる類型のストレージを有する５個のストレージ装置と通信し、そして種々の通信プロトコルを利用する場合が図示された。
ストレージ管理部１３５は、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＳＣＩＳ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）、又は他の適切な規約である旧型プロトコル３０５−１を用いてシングルド（ｓｈｉｎｇｌｅｄ、屋根葺型記録方式）ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１２０−１と通信できる。
また、ストレージ管理部１３５は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）連結の４個のラインを通せるプロトコル３０５−２を用いた、マルチストリーミングのＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅｓ）である、新型フラッシュメモリのストレージ装置１２０−２と通信できる。
ストレージ管理部１３５はＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｍｅｎｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）であるプロトコル３０５−３を用いて、混合された媒体のストレージ装置１２０−３と通信できる。
ストレージ管理部１３５は、ＰＣＩｅ連結の２個のラインを通せるプロトコル３０５−４を用いて、旧型のフラッシュメモリのストレージ装置１２０−４と通信できる。
そして、ストレージ管理部１３５はイーサネット（登録商標）連結であるプロトコル３０５−５を用いて、ＮＶＭｅｏＦ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ  ｏｖｅｒ  Ｆａｂｒｉｃ）のフラッシュメモリストレージ装置１２０−５と通信できる。
【００３５】
フラッシュストレージ装置１２０−２、１２０−４及び  ＮＶＭｅｏＦのストレージ装置１２０−５の概念が十分に理解されている一方、シングルドＨＤＤ１２０−１及び混合された媒体ストレージ装置１２０−３に対しては追加的な説明が有用であろう。従来ＨＤＤで、データの各トラック（ｔｒａｃｋ）は分離される。つまり、トラックは互いにオーバーラップ（ｏｖｅｒｌａｐ）しない。これはＨＨＤ上のデータ管理を簡単にする。つまり、データを変更する時、ＨＤＤ上の任意の他のデータに影響を与えずに、当該トラックだけをオーバライト（ｏｖｅｒｗｒｉｔｅ）すれば良い。シングルドＨＤＤ１２０−１はＨＤＤ上の隣接したトラックが部分的に重なり合うＳＭＲ（Ｓｈｉｎｇｌｅｄ（屋根葺型）  Ｍａｇｎｅｔｉｃ  Ｒｅｃｏｒｄｉｎｇ）を用いる。このやり方はＨＤＤのデータ密度を増加させる長所を有するが（トラックが狭いほど、より多くのデータがライト（ｗｒｉｔｅ）される）、データのライト過程を複雑にする。特に、データがＨＤＤにライトされる時、このライト過程は隣接したオーバラップされたトラックに影響を与える。従って、シングルドＨＤＤ１２０−１がデータをライトする時、データを当該トラックにライトしない。代わりに、シングルドＨＤＤ１２０−１は新たなトラックにデータをライトし、そしてフラッシュメモリのストレージ装置１２０−２、１２０−４及びＮＶＭｅｏＦのストレージ装置１２０−５のように、以前の（当該）トラックをガーベージコレクションする。
【００３６】
混合された媒体のストレージ装置１２０−３は、複数の類型のストレージ媒体を含むストレージ装置である。例えば、混合された媒体のストレージ装置１２０−３は、ＳＬＣ（Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌｓ）、ＭＬＣ（Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌｓ）、ＴＬＣ（Ｔｒｉｐｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌｓ）などの多数の相異なる類型のフラッシュメモリを包含できる。又は、混合された媒体のストレージ装置１２０−３は幾つかのフラッシュメモリ及びＨＤＤのような幾つかの他のストレージフォーマット（ｆｏｒｍａｔ）を包含できる。このように本発明の実施例は無制限に任意の相異なる類型のストレージ媒体を含む混合されたストレージ装置１２０−３を支援できる。
【００３７】
図３は５個の相異なるプロトコルを用いて、５個の相異なるストレージ装置と通信するストレージ管理部１３５を図示するが、本発明の実施例は任意の個数のプロトコルを通じた、任意の個数のストレージ装置との通信を支援できる。ストレージ装置１２０は類型の任意の混合を包含でき、そしてプロトコル３０５の任意の混合を使用してストレージ管理部１３５と通信できる。
【００３８】
図４は、図３においてストレージがＳＳＤ型（フラッシュ型）の場合のストレージ装置１２０−２の細部事項を図示する。図４で、ＳＳＤ１２０−２はホストインタフェースロジック（ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ  ｌｏｇｉｃ）４０５、ＳＳＤコントローラ４１０及び多様なチャンネル４２０−１〜４２０−４に編成されている多様なフラッシュメモリチップ４１５−１〜４１５−８を包含する。ホストインタフェースロジック４０５は、ＳＳＤ１２０−２と図１のストレージ管理部１３５又はマシン１０５との間の通信を管理する。
ＳＳＤ１２０−２は、装置ストリームを用いて図１のストレージ管理部１３５又はホストマシン１０５と通信する（図８を参照して後述するように、ＳＳＤ１２０−２及び図１のホストマシン１０５は、アプリケーションストリームを通じて通信するとしても理解できる。つまり、一般的に装置ストリーム４２５−１〜４２５−３又はアプリケーションストリームの中で、何れか１つに寄与（ａｔｔｒｉｂｕｔｅ）した特性は他の類型のストリームにも寄与できる。）。
ＳＳＤコントローラ４１０は、ストレージ４１５、ここではフラッシュメモリチップ４１５−１〜４１５−８）に対する、ガーベージコレクション動作と共にリード（ｒｅａｄ）及びライト（ｗｒｉｔｅ）動作を管理する。ＳＳＤコントローラ４１０は、フラッシュ変換階層４３０を含み、この管理の一部を遂行する。
【００３９】
図４は、４個チャンネル４２０−１〜４２０−４で編成された８個のフラッシュメモリチップ４１５−１〜４１５−８を含むＳＳＤ１２０−２を図示するが、本発明の実施例は任意の個数のチャンネルで編成された任意の個数のフラッシュメモリチップを支援できる。なお、本発明の実施例は任意の個数の装置ストリーム４２５−１〜４２５−３を支援できる。
【００４０】
フラッシュメモリチップ４１５−１〜４１５−８は、全部同一な類型であるか、又は相異なる類型である。例えば、図４でフラッシュメモリチップ４１５−１、４１５−２、４１５−５、４１５−６はＳＬＣとして図示された反面、フラッシュメモリチップ４１５−３、４１５−４、４１５−７、４１５−８はＭＬＣとして図示された。ＳＬＣは、１ビットのみ（０又は１の中で何れか１つ）を格納でき、そして一般的にＭＬＣより高価であるが、一般的により高速のライト速度を有し、且つ、多数回のライト及び消去ができる。ＭＬＣは低コストで複数ビット、多様なＭＬＣにより、２ビット，３ビット、又は、４ビット以上のデータを格納できるが、一般的にライト速度がＳＬＣより低速になり、且つ、ＳＬＣに比べて少ない回数のライト及び消去しかできない。
【００４１】
図４に図示されたように、ＳＳＤ１２０−２はＳＳＤ１２０−２に特有の細部事項を図示する反面、図４で表現された概念は他のストレージ装置で一般化できる。例えば、図３のシングルド（ｓｈｉｎｇｌｅｄ）のＨＤＤ１２０−１はフラッシュメモリの代わりに、リード（ｒｅａｄ）及びライト（ｗｒｉｔｅ）ヘッドと磁気媒体を用いてデータを格納する。しかしながら、図３のシングルド（ｓｈｉｎｇｌｅｄ）のＨＤＤ１２０−１は装置ストリーム４２５−１〜４２５−３を提供できる。例えば、図１のシングルド（ｓｈｉｎｇｌｅｄ）のＨＤＤ１２０−１は、ＳＳＤ１２０−２と異なった形でそのリード及びライト動作を管理し、具体的にはＳＳＤコントローラ以外の構成要素を用いてリード及びライト動作を管理する。しかし、全体的な機能（データリード及びライト、多重の装置ストリームに対する支援、など）は類似である。従って、図１のストレージ装置１２０の特有の具現は相異なり得るが、図３の他のストレージ装置１２０は同一の動作を支援できる。
【００４２】
図５は、図１のストレージ装置１２０のコントローラ４１０の細部事項を図示する。図５で、コントローラ４１０は受信機５０５、ストリーミング性能分析器５１０、送信機５１５及びアプデイト感知器５２０を包含できる。受信機５０５は図１のストレージ装置１２０のストリーミング性能情報に対する要請を、図１のストレージ管理部１３５から受信する。コントローラ４１０が図１のストレージ装置１２０のストリーミング性能を図１のストレージ管理部１３５へ自動的に送信できる（即ち、図１のストレージ装置１３５から催促されずに）という意味で、受信機５０５は選択的である。幾つかのストレージ装置は受動的に動作し、斯かるストリーミング性能などの情報要請を受信した後に、その情報だけを送信する。
又は、幾つかのストレージ管理部は、要請していない情報を受信しないように設定されており、ストレージ装置にそのストリーミング性能を要請した後にのみ、ストレージ装置のストリーミング性能を処理する。本発明の斯かる実施例において、受信機５０５はコントローラ４１０が図１のストレージ装置１２０のセルフインベントリを遂行する前に、図１のストレージ管理部１３５から要請を受信できる（受信機５０５は、アプリケーションからリード及びライトの要請を受信するなどの他の目的のために使用でき、コントローラ４１０の一部であり得る。しかし、受信機５０５は本発明の全ての実施例において、ストリーミング性能の管理に必須ではない。）。
【００４３】
ストリーミング性能分析器５１０は、図１のストレージ装置１２０のストリーミング性能を判定する。即ち、ストリーミング性能分析器は、図１のストレージ装置１２０をインベントリし、図１のストレージ装置１２０がどのような性能及び制限を有するかを判定する。インベントリされ得る性能及び制限の例示は下の図６を参照して一層説明される。この情報は、送信機５１５を介して図１のストレージ管理部１３５へ提供され、図１のストレージ管理部１３５はアプリケーションからの特定の要請のための最適の装置ストリーム／ストレージ装置を選択する。
【００４４】
アプデイト感知器５２０は、図１のストレージ装置１２０のストリーミング性能が、いつ変化したかを感知する。図１のストレージ装置１２０のストリーミング性能が変更されると、ストリーミング性能分析器５１０及び送信機５１５は、図１のストレージ管理部１３５へアプデイトされたストリーミング性能を提供する機能を新たに遂行する。
【００４５】
図１のストレージ装置１２０のストリーミング性能は多くの理由に起因して変化する。例えば、図１のストレージ装置１２０は、図４のそれの装置ストリーム４２５−１〜４２５−３の中の１つを特定のアプリケーション又はソフトウェアストリームに割り当て、この場合、その装置ストリームは、一般的に最早、使用可能ではない。図１のストレージ装置１２０は、ストレージ管理部１３５に報告されているストリーミング性能をアプデイトして自身の提供する装置ストリーム数が１つ減少することを呈示する。
【００４６】
図１のストレージ装置１２０が自身のストリーミング性能をアプデイトする理由の他の例示として、内蔵（ｂｕｉｌｔ−ｉｎ）されたオートストリーミング（ａｕｔｏ−ｓｔｒｅａｍｉｎｇ）性能を有するストレージ装置、つまり自身の（内部）ストリーミングを遂行するストレージ装置を考慮する。このようなストレージ装置に対しては、図１のストレージ管理部１３５はそのストレージ装置へ送信された要求に対し、特定のストリームを規定する必要がなく、代わりに、単に該ストレージ装置のオートストリーミング性能に依存してストリームの割り当てを管理できる。
ストレージ装置がどのようにオートストリーミングを遂行するかを制御するパラメータが変化すると、この変化は、図１のストレージ管理部１３５がストレージ装置のオートストリーミング性能への依存を所望するか否かに影響を与える。この変化の報告を受けることにより、図１のストレージ管理部１３５は、ストレージ装置の現在最新のストリーミング性能情報を踏まえて図１のホストマシン１０５からの要請に対して適切な装置ストリーム／ストレージ装置をより良く選択できる。例えば、ストレージ装置のオートストリーミング性能の変化は、図１のストレージ管理部１３５がこれ以上ストレージ装置のオートストリーミング性能に依存せずに、代わりに自らストリームを割り当てるべきであることを意味する場合もある。
【００４７】
図１のストレージ装置１２０が、そのストリーミング性能をアプデイトする理由の更に他の例示は、その物理的装置自体、又は図１のホストマシン１０５へのその連結の中の何れか１つにおける変化のためであり得る。例えば、図１のストレージ装置１２０が主要連結のためイーサネットを用い、補助連結として（例えば、コマンドプレーン（ｃｏｍｍａｎｄ  ｐｌａｎｅ）として）ＰＣＩｅ（Ｐｈｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）を用いるイーサネットＳＳＤである場合、イーサネットの連結が失敗すると、図１のストレージ装置１２０はデータ通信のためＰＣＩｅの連結に切り替えられる。図１のホストマシン１０５への連結でのこの変化（帯域幅の減少など）は、図１のストレージ装置１２０がどのように利用されるかに影響を与える。
【００４８】
ストリーミング性能が図１のストレージ管理部１３５にどのように報告されるかの細部事項は、これまで議論されなかった。これは設計によるものである。本発明の実施例は、図１のストレージ装置１２０から図１のストレージ管理部１３５に報告される情報に専ら関心がある。従って、図１のストレージ管理部１３５に提示されるデータのフォーマット（ｆｏｒｍａｔ）には関心が低い。
２０１７年４月１１日出願された米国仮特許出願（６２／４８４，３８７）の利益を主張する、現在係属中の２０１７年７月１８日出願された米国特許出願（１５／６５３，４７９）（これら両者は、全ての目的のため、本明細書にここで参照により組み込まれる。）は、図１のストレージ装置１２０が、そのストリーミング性能を図１のストレージ管理部１３５に報告できる１つの方法を説明するが、しかし本発明の実施例は、図１のストレージ装置１２０がそのストリーミング性能を図１のストレージ管理部１３５に報告する他のメカニズムも支援できる。図１のストレージ管理部１３５に情報を報告する何らかの方法が有ると仮定できれば、その報告を作るのに使用される具体的なやり方は核心事ではない。
【００４９】
コントローラ４１０は開始時点において図１のストレージ装置１２０のセルフインベントリを遂行する。アプデイト感知器５２０の存在により言及されたように、コントローラ４１０はアプデイトが感知される場合のような他の時点でも、図１のストレージ装置１２０のセルフインベントリを遂行できる。コントローラ４１０は、甚だしくは変化が感知されない場合でも図１のストレージ装置１２０のセルフインベントリを遂行できる。コントローラ４１０は、図１のストレージ装置１２０の周期的なセルフインベントリを遂行できる。つまり、例えば、毎日一回（又は任意の他の所望の間隔で）などである。この周期はタイマー（ｔｉｍｅｒ）（図５で、図示されない）を用いて測定され、タイマーは周期測定を完了すると、ストリーミング性能分析器５１０及び送信機５１５の動作をトリガ（ｔｒｉｇｇｅｒ）する。
【００５０】
図６は、図１のストレージ装置１２０から図１のストレージ管理部１３５へ報告され得る多様なストリーミング性能を図示する。図６で、ストリーミング性能６０５は下記のような多様な性能を包含する。
●  装置ストリームの個数６１０。つまり、図１のストレージ装置１２０が支援する図４の装置ストリーム４２５が幾つであるか。
●  消去ブロックのサイズ６１５。つまり、図１のストレージ装置１２０内の消去ブロックのサイズ（図１のストレージ装置１２０がガーベージコレクション又は類似した動作を遂行すると仮定）
●  物理的異種性（ｐｈｙｓｉｃａｌ＿ｈｅｔｅｒｏｇｅｎｅｉｔｙ）６２０。つまり、図１のストレージ装置１２０内の使用可能な相異なる類型のストレージが何であるか。例えば、図４で、フラッシュメモリチップ４１５−１、４１５−２、４１５−５、４１５−６はＳＬＣであり、その反面、フラッシュメモリチップ４１５−３、４１５−４、４１５−７、４１５−８はＭＬＣである。図１のストレージ装置１２０内の全てのストレージが同一の類型に属する場合には、図１のストレージ装置１２０内のどこにデータがライトされるかに関係せず、性能上の差異は無いか又は殆ど無い。しかし、図１のストレージ装置１２０が相異なる類型のストレージを支援する場合には、データが実際どこにライトされるかは、図１のストレージ装置１２０の性能に影響する。
●  オートストリーミング性能６２５。つまり、ストレージ装置１２０がオートストリーミングを支援するか否か、そして図１のストレージ装置１２０により支援されるオートストリーミングのパラメータ。図１のストレージ装置１２０がオートストリーミングを支援し、そしてオートストリーミングのパラメータが有用であれば、図１のストレージ管理部１３５は外部から選択された装置ストリームを賦課する代わりに、内部的なオートストリーミングの遂行を図１のストレージ装置１２０に委任する。
●  最適のストリームのライトサイズ６３０。つまり、図１のストレージ装置１２０が最適の又は実質的に最適のストリームのライトサイズを有するか否か。最適のストリームのライトサイズ６３０は、他の因子の中でフラッシュ‐ブロックページサイズ、バッファサイズ、ストレージ装置１２０上で同時に動作するストリームの個数、これらのストリームにより消耗される帯域幅、及び他の因子を含む、ストレージ装置１２０の多様な制約因子に関連する。
●  ストレージ内コンピューティング（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）６３５。つまり、図１のストレージ装置１２０がストレージ内コンピューティングを提供するか否か。そして、提供する場合、プロセッサの個数、各プロセッサのＩＰＳ（秒当たり命令実行数）、ストレージ内コンピューティングプロセッサ上で実行されるアプリケーションにより使用されるデータを格納するために使用可能なメモリ量、などのストレージ内コンピューティング性能。
●  プログラム及び消去速度のパラメータ６４０。つまり、図１のストレージ装置１２０が、どのようにガーベージコレクションを遂行するかに関するパラメータ（図１のストレージ装置１２０がガーベージコレクションを遂行すると仮定）。このパラメータは、消去ブロックを消去するのに必要な平均時間、消去ブロックから有効データをプログラムするのに必要な平均時間などを包含する。このパラメータは消去ブロックサイズ６１５を包含し得る。
●  バッファサイズ６４５。つまり、ストレージ装置１２０内に含まれたバッファのサイズ。バッファサイズ６４５は追加的な関連のバッファ情報を包含できる。即ち、例えば、バッファが図４に提供された装置ストリーム４２５（又はネームスペース（ｎａｍｅｓｐａｃｅ））の間に分割されるか否か、又はバッファが図４の装置ストリーム４２５（又はネームスペース）を通じて共有されるか否か。
●  処理能力（ｔｈｒｏｕｇｈｐｕｔ）の制限６５０。つまり、図１のストレージ装置１２０の制限。例えば、使用可能な帯域幅又は待ち時間。
●  ファームウェアのバージョン６５５。つまり、（図４の装置ストリーム４２５−１〜４２５−３の動作に影響する）図１のストレージ装置１２０のファームウェアのバージョン。
【００５１】
図６で、図示された因子は図１のストレージ装置１２０のストリーミング性能に影響を与え得る因子の内の僅かな部分集合を示す。例えば、図１のストレージ装置１２０のフリー（未利用、ｆｒｅｅ）ブロックの数（又は、関連して、百分率として図１のストレージ装置１２０がどのくらいフル（利用中、ｆｕｌｌ）か）は、図１のストレージ装置１２０が早晩ガーベージコレクションを遂行する必要があるか否かを、そしてストレージ装置１２０のストリーミング性能に（少なくとも短期的に）、なお影響を与え得るかをある程度まで表わせる。
２０１７年４月１１日出願された米国仮特許出願（６２／４８４，３８７）の利益を主張する、現在係属中の２０１７年７月１８日出願された米国特許出願（１５／６５３，４７９）は本出願に関連し、これらの両者は、全ての目的のため本明細書にここで参照により組み込まれて図１のストレージ装置１２０に対する多数の他の情報を列挙し、該情報は図１のストレージ装置１２０の性能（よって、ストリーミング性能）に影響する。これらの因子の全ては、図６のストリーミング性能の一部として考慮され、よって図１のストレージ管理部１３５への報告の対象であり得る。
【００５２】
図７は、図６のストリーミング性能６０５を図１のストレージ管理部１３５に通信する図１のストレージ装置１２０を図示する。図７で、ストレージ管理部１３５は、ストレージ装置１２０からストリーミング性能（情報）６０５を要請する要請７０５をストレージ装置１２０に送信する。これに応答してストレージ装置１２０はストリーミング性能（情報）６０５をストレージ管理部１３５に返信する。ストレージ装置１２０は、要請という誘導なしにストリーミング性能６０５をストレージ管理部１３５に送信できる。つまり、要請７０５は選択的であり得るが、これは、何故、要請７０５が括弧付きで図示されたかを説明する。
【００５３】
前記した説明で、ストレージ管理部１３５は、図１のストレージ装置１２０の全てのストリーミング性能を知りたがると仮定した。この仮定は合理的であるが、ソフトウェアの要請に対して装置ストリーミング／ストレージ装置を選択する際の最大情報をストレージ管理部１３５に提供するので、ストレージ管理部１３５は図１のストレージ装置１２０のストリーミング性能の一部にのみ依存できる。この状況で、要請７０５はストレージ管理部１３５がどのストリーミング性能に、特別に関心があるかを規定でき、図１のストレージ装置１２０はその関心のあるストリーミング性能のみをストレージ管理部１３５に報告できる。
【００５４】
図８は、図１のマシン１０５上で実行され（ｒｕｎ）、ソフトウェアストリームを介して要請を送信するアプリケーションを図示する。図８では、アプリケーション８０５が図示された。アプリケーション８０５はソフトウェアストリームの任意の個数を規定する。つまり、図８は、３個のソフトウェアストリーム８１０−１〜８１０−３を図示する。要請８０５のような要請は各ストリームと関連される。
【００５５】
図９は、図１のストレージ管理部１３５の細部事項を図示する。図９で、ストレージ管理部１３５は受信機９０５、装置ストリーム選択機９１０、及び送信機９１５を包含する。受信機９０５は、図１のストレージ装置１２０から図６のストリーミング性能６０５を受信する。なお、受信機９０５は、図１のマシン１０５上のアプリケーションから図８の要請８０５を受信する。装置ストリーム選択機９１０は図８の要請８０５に対して、複数の装置ストリーム４２５から一つの装置ストリームを選択する。送信機９１５は、次に、図８の要請８０５を図１の選択されたストレージ装置１２０に送信し、その際、選択された装置ストリームを特定する。
【００５６】
図６のストリーミング性能６０５は、図１のストレージ装置１２０の性能に関する有用な情報を提供する反面、ストリーミングに影響与え得る特定の因子は、図１のストレージ装置１２０に必ずしも知られる必要はない。例えば、（図１のストレージ装置１２０が図１のマシン内になければ）ストレージ装置１２０と通信するのに必要な時間は、図１のストレージ装置１２０が知る範囲にない。従って、ストレージ管理部１３５は、なおオーグメンタ（ａｕｇｍｅｎｔｅｒ、補強装置）９２０を包含できる。
オーグメンタ９２０はストレージ管理部１３５（又は図１のマシン１０５内の幾つかの他の構成要素）が測定できる、ストレージ装置に依存しない考慮事項を用いて図６のストリーミング性能６０５を補強する。オーグメンタ９２０は、他の可能性の中で、ストレージ管理部１３５と図１のストレージ装置との間で通信するのに必要な時間、又は図１のプロセッサ１１０と図１のストレージ装置１２０と間の連結による帯域幅を測定できる。ストレージ管理部１３５は、オーグメンタ９２０により決定された、この情報を図６のストリーミング性能６０５に加えて図１のストレージ装置１２０に関する追加情報として提供できる。
【００５７】
最終的に、ストレージ管理部１３５はストレージ９２５を包含する。ストレージ９２５は、図１の各ストレージ装置１２０からの図６のストリーミング性能６０５を格納できるストリーミング性能関連データ構造９３０などの情報を格納する。
【００５８】
本発明のいくつか実施例において、装置ストリーム選択機９１０はアプリケーションから個別要請を受信し、そして装置ストリーム選択機９１０はストレージ管理部１３５が各要請を受信する間に、適切な装置ストリームを選択する。しかし、本発明の他の実施例において、装置ストリーム選択機９１０は、どの装置ストリームが個別ソフトウェアストリームと関連された要請に対して使用されるべきかを事前に決定できる。本発明のこのような実施例において、ストレージ９２５はソフトウェアストリームを装置ストリームにマッピング（ｍａｐｐｉｎｇ）するマッピングデータ構造９３５を格納する。
【００５９】
図１０（Ａ）及び図１０（Ｂ）は、図１のストレージ装置１２０の図６のストリーミング性能６０５と関連された情報を格納するための例示的な図９のストリーミング性能関連データ構造９３０、及びマッピング関連データ構造９３５を図示する。図１０（Ａ）には、表１００５が図示された。そして、図１０（Ｂ）には、表１０１０が図示された。  
【００６０】
表１００５は図１のストレージ装置１２０の図６のストリーミング性能６０５を格納できるデータ構造の例示である。表１００５に図示された情報は単なる例示である。つまり、本発明の実施例は任意の個数のストレージ装置、ストレージ装置当たり（又は媒体類型当たり）任意の個数のストリーム、そしてストレージ装置当たり（又は媒体類型当たり）任意の他のパラメータを支援できる。
【００６１】
図１０（Ａ）の表１００５において、装置は装置識別子（ＩＤ）により識別され、関連されたストリームＩＤが、格納される。装置ＩＤ＿１、装置ＩＤ＿２を有するストレージ装置（装置ＩＤ＿１を有するストレージ装置は、単にＳＭＲを提供する反面、装置ＩＤ＿２を有するストレージ装置は、単にＭＬＣを提供）は、物理的に同種である反面、装置ＩＤ＿３を有するストレージ装置は物理的に異種である。即ち、ストレージ装置は多数の相異なる媒体の類型、特にＳＬＣ及びＭＬＣ媒体類型を有する。このような相異なる媒体の類型には表１００５内において、それら自身の別々のエントリ（ｅｎｔｒｙ、）が設けられる。
【００６２】
装置ＩＤ＿３を有するストレージ装置が多重の媒体類型を含む事実以外に、表１００５は、なおストリーミングのためにストレージ装置を選択する際の、他の適切な因子を示す。装置ＩＤ＿３を有するストレージ装置はストレージ内コンピューティングを支援する。一方、装置ＩＤ＿１，＿２を有するストレージ装置はそうではない。装置ＩＤ＿２、＿３を有するストレージ装置は、テール待ち時間（ｔａｉｌ  ｌａｔｅｎｃｙ）の管理を支援する。一方、装置ＩＤ＿１を有するストレージ装置はそうではない。装置ＩＤ＿１を有するストレージ装置は６ＧＢのＳＡＳの連結を利用する。一方、装置ＩＤ＿２を有するストレージ装置は１０ＧＢのイーサネット連結を利用する。他方、装置ＩＤ＿３を有するストレージ装置は４レーン（ｌａｎｅ）のＰＣＩｅ連結を利用する。装置ＩＤ＿１を有するストレージ装置は６４ＭＢのガーベージコレクションの消去ブロックサイズを有する。一方、装置ＩＤ＿２を有し、ＭＬＣ媒体を提供するストレージ装置は、４ＭＢのガーベージコレクションの消去ブロックサイズを有する。他方、装置ＩＤ＿３を有し、ＳＬＣ媒体を提供するストレージ装置は、１ＭＢのガーベージコレクションの消去ブロックサイズを有する。
以上、全てで３個のストレージ装置は、装置ＩＤ＿３を有するストレージ装置のＳＬＣ媒体のための低いものから、装置ＩＤ＿１を有するストレージ装置のＳＭＲ媒体のための極めて高いものまで多様なガーベージコレクションの待ち時間を有する（「低い」、「中間」、「高い」、「極めて高い」のような任意的記述子を利用するよりは、数値的待ち時間が代わりに使用できる。）。以上全てで３個のストレージ装置は、なお相異なるバッファサイズを提供する。つまり、装置ＩＤ＿３を有するストレージ装置はＳＬＣ及びＭＬＣ媒体の間でその１ＧＢのバッファを共有する。
【００６３】
本発明がいくつかの実施例において、ストレージ装置はネームスペースと関連され得る。図１０（Ａ）及び図１０（Ｂ）では図示されなかったが、本発明のこのような実施例は、表１００５内の情報のより微細な細分性（ｇｒａｎｕｌａｒｉｔｙ）を許容する。
【００６４】
図１０（Ｂ）の表１０１０は図８のソフトウェアストリーム８１０−１〜８１０−３から図４の装置ストリーム４２５−１〜４２５−３へのマッピングに用いられるストリーミング関連情報を格納できるデータ構造９３５の例示である。表１０１０で、多様な使用事例が図示されている。つまり、（データが頻繁に変化しないと予想される）長期的な格納、（頻繁に変化するデータに対する高速アクセスが必要な）ストレージ内コンピューティング動作、そして（アクセス速度が重要と考慮される）高い処理能力、などの事例である。各使用事例には、多様なストレージ装置から選択されたストリーム、及び各使用事例のため選択されたストリームを識別するのに使用されて表１００５内の列に対応する加重値が連関される。
【００６５】
（本発明の実施例では任意の所望の値及び／又は範囲の加重値を利用できるが）一般的に加重値は、０と１の間の値で割り当てられ、その特定のストリーミング性能により決まるストレージ装置のランク（ｒａｎｋ）に関してその特定のストリーミング性能の相対的な優先順位を反映する。任意の与えられたストリーミング性能に対して、加重値が０に近いほどストリーミング性能がもっと重要なものと考えられる。
【００６６】
各ストレージ装置は、各ストリーミング性能によりランクされる。例示としてガーベージコレクションの待ち時間を使用すると、装置ＩＤ＿３を有するストレージ装置のＳＬＣ媒体にはランク１が割り当てられ、反面装置ＩＤ＿１を有するストレージ装置にはランク４が割り当てられる。より低い数字がより良いと見なされるので、加重値が０に近いほどストリーミング性能がもっと重要なものと考えられる。
【００６７】
ガーベージコレクション待ち時間のような幾つかの性能は、全ての使用事例において同一の方式でランクできる。例えば、ガーベージコレクションを遂行するのに必要な時間量が大きいほど、（該当性能に対する）ストレージ装置の性能が悪くなる。いくつかの使用事例に対して、この考慮が重要ではない場合があり、そして、他の使用事例に対して、この考慮が極めて重要であり得る。しかし、その性能がいくら重要であるかに関係なしにストレージ装置は、性能により同一の方式でランクされる。
【００６８】
反面に、幾つかのストリーミング性能は使用事例により異なる場合がある。例えば、図１０（Ａ）の表１００５に図示されたストレージ装置の各々に対する媒体類型を考慮する。装置ＩＤ＿１を有するストレージ装置はＳＭＲを提供し、装置ＩＤ＿１を有するストレージ装置はＭＬＣを提供し、そして装置ＩＤ＿３を有するストレージ装置はＳＬＣ及びＭＬＣの双方を提供する。斯かる相異なる媒体は相異なる特性を有し、これは相異なる状況下においてデータを格納するための選択の良し悪しに影響する。
任意の媒体類型が任意の使用事例に対してデータを格納するのに利用できるけれども、特定の媒体類型は、相異なる使用事例によっては他の媒体類型より良く適合する場合がある。つまり、（必要な使用事例に依存するが、特定の環境では単一の媒体類型が全ての使用事例に対して最適になる場合があり得るが、）任意の特定の媒体類型が全ての使用事例に対して最適と考えられることはあまり無い。従って、長期間のデータ格納のためにはＳＭＲが、ＳＬＣ又はＭＬＣの中の何れか１つより選好され、反面にストレージ内コンピューティング及び高い処理能力の使用事例のためには、ＳＬＣが選好される。
【００６９】
媒体類型によって、ストレージ装置に適切に加重値を与えるには、ストレージ装置を簡単にランキング（ｒａｎｋｉｎｇ）するのとは相異なる接近法が要求される。１つの可能性のある接近法は、問題の使用事例に基づいてそのストレージ装置に対するランクを決定する。例えばストレージ装置は、長期的な格納の使用事例のためには、装置ＩＤ＿１、＿２，＿３の順序にランキングでき、他の使用事例のためには、装置ＩＤ＿３，＿２，＿１の順序にランキングされる。他の可能性のある接近法は、全てのストレージ装置を同一の「ランク」を有するものとして単純に扱い、相異なる加重値を相異なる媒体類型に適用する。
例えば、長期的な格納の使用事例の場合には、高い加重を意味する０．２５のような低い値がＳＭＲに提供され、一方ＳＬＣ及びＭＬＣには０．５及び／又は０．７５のような高い値（即ち、低い加重）が与えられる。逆に、ストレージ内コンピューティング及び高い処理能力の使用事例の場合には、ＳＬＣには０．２５のような、低い値（高い加重）が与えられ、一方ＭＬＣ及びＳＭＲには０．５及び０．７５のような、高い値（即ち、低い加重）が与えられる。（多様な媒体類型に対して図示された値は、単に例示的な値であり、そして任意の所望の値がその代わりに使用され得る。）何れの接近法を用いるにせよ、特定の使用事例のための最適のストレージ装置は、媒体類型の使用事例とどのように相互作用するのかを考慮に入れて決定される。
【００７０】
全ての加重値及びランクが、各性能のためストレージ装置に対して知られると、各使用事例のため、各ストリーミング性能のための各ストレージ装置のランクの加重和（ｗｅｉｇｈｔｅｄ  ｓｕｍ）が計算される。その次に、加重和が一番低いストレージ装置が、特定の使用事例に対する最適のストレージ装置として選択される。
【００７１】
ストレージ装置が特定のストリーミング性能のためランクされる方式によって、加重値がどのように割り当てられるかに差異を生ずることに留意されたい。例えば、ストレージ装置が、一番低いガーベージコレクション待ち時間から一番高いガーベージコレクション待ち時間までにランクされると、速いガーベージコレクションは正数の値の低い加重値により選好される。ストレージ装置が、一番高いガーベージコレクション待ち時間から一番低いガーベージコレクション待ち時間までにランクされると、速いガーベージコレクションは大きな絶対値を有する負数の加重値を要求する。
【００７２】
長期の格納の使用事例に対しては、装置ＩＤ＿１を有するストレージ装置から、装置ストリーム０〜３が選択される。ＳＭＲ媒体はＭＬＣ又はＳＬＣ媒体の中で何れか１つより選好され、ストレージ内コンピューティング及びテール待ち時間管理は低い優先順位に考慮され、反面にガーベージコレクションの待ち時間は高い優先順位に考慮される。連結、ガーベージコレクションの消去ブロックサイズ、及びバッファサイズのための加重値０に注目されたい。つまり、斯かる基準はこの使用事例に対しては重要なものとして考慮されずに無視される。
【００７３】
ストレージ内コンピューティングの使用事例に対しては、装置ＩＤ＿３を有するストレージ装置から、装置ストリーム１２〜１３が選択される。ストレージ内コンピューティング性能のため加重値として−１００の使用に注目されたい。この「大きな」負数の値はこのストリーミング性能が「必ず持つべき」基準であることを強調する。結局のところ、ストレージ装置がストレージ内コンピューティング性能を有しないと、そのストレージ装置はストレージ内コンピューティングの使用事例を支援できない。しかし、ストレージ内コンピューティングを提供する１つ以上のストレージ装置があれば、他のストリーミング性能のための加重値も相変わらず問題であり得る。従って、残りの加重値は、ＳＬＣ媒体がＳＭＲ媒体より選好されるＭＬＣ媒体より選好され、テール待ち時間管理及びガーベージコレクション待ち時間は重要と見なされ、ガーベージコレクションの消去ブロックサイズ及びバッファサイズは、その重要性が低いと見なされ、そして連結（の類型）は無関係（ｉｒｒｅｌｅｖａｎｔ）と見なされることを示す。
【００７４】
高い処理能力の使用事例に対しては、装置ＩＤ＿２を有するストレージ装置から、装置ストリーム４〜１１が選択される。加重値は、ストレージ内コンピューティング及びガーベージコレクション待ち時間は重要と考慮され、ガーベージコレクション消去ブロックサイズ及び連結（の類型）は中間程度の重要と考慮され、そしてテール待ち時間管理及びバッファサイズは重要性が低いと見なされることを示す。
【００７５】
（直接的に又は前述した使用事例を通じて）特定のソフトウェアストリームのための適切なストレージ装置を識別するのに利用される加重値は、図１のストレージ管理部１３５又は図８のアプリケーション８０５の中で何れか１つにより決定される。即ち、図８のアプリケーション８０５はソフトウェアストリームの特定の要求のため利用するべき加重値を規定し、又は、図１のストレージ管理部１３５は遂行される動作に基づいて、装置ストリームを選択するのに利用するべき適切な加重値を選択する。
例えば、データが長期の格納のためライトされると、データの速い接近及び頻繁な変化を要求する場合と異なる加重値の集合が適用される。加重値は、なお追加情報に基づいて設定され得る（又は調整され得る）。例えば、図８のアプリケーション８０５はその所望の加重値を設定できるが、しかし図１のマシン１０５により提供される約束されたＱｏＳに基づいて（又は、図８アプリケーション８０５が何のために支払うかに基づいて）加重値はターゲットＱｏＳを反映するように、上へ又は下へ調整される。
加重値が図８のアプリケーション８０５により提供されると、多重アプリケーションストリーム８１０−１〜８１０−３（又は、相異なるアプリケーション８０５のためのアプリケーションストリーム）の各々が、図１の同一のストレージ装置１２０に対して同一の装置ストリームを要請すれば（又は後述するように、ストリームプール（ｐｏｏｌ）の容量を超過するのに十分な装置ストリームをストリームプールに対して要請すれば）、より良い加重和を有するアプリケーションストリームには要請された通りの装置ストリームが割り当てられる。一方、他のアプリケーションストリームには必ずしも最適ではない装置ストリーム（例えば、必ずしも最適ではない装置、又は必ずしも最適ではないストリームプールと関連された装置ストリーム）が割り当てられる。
【００７６】
アプリケーションにより提供された加重値を決定する他の方法は、互いに衝突するアプリケーションストリームの各々に要請された装置ストリームを割り当てた結果、特に、必ずしも最適ではない装置ストリームが割り当てられた他のアプリケーションストリームにおける結果を考慮することによる。例えば、１つの（第１）アプリケーションが極めて低い待ち時間の装置ストリームが必要な状況を考慮すれば、他の（第２）アプリケーションは簡単にＳＬＣストレージを選好する。
図１０（Ａ）の表１００５を用いると、斯かるアプリケーションストリームの双方は装置ＩＤ＿３、ストリームＩＤ＿１２〜＿１３を有するストレージ装置に向かうであろう。しかし、第２アプリケーションストリームはＳＬＣを選好するかも知れないが、ストリームＩＤ＿４〜＿１１、又は、ストリームＩＤ＿１４〜＿１７を用いるＭＬＣでも満足できる。しかし、ストリームＩＤ＿１２〜＿１３のみが第１アプリケーションストリームに必要な低い待ち時間を提供する。第１アプリケーションストリームにストリームＩＤ＿１２〜＿１３の中で１つが割り当てられないと、第１アプリケーションストリームには相当に否定的な影響を被る。従って、選好するストリームが割り当てられなかった場合のアプリケーションストリームへの影響の大きさを比較することで、加重和に基づくならば他のアプリケーションがその装置ストリームを割り当てられるべき場合であっても、アプリケーションストリームはそれを選好する装置ストリームに割り当てられる場合がある。
【００７７】
一般的に、表１００５，１０１０の中の１つのみが格納される。表の中で１つに情報が与えられると、他の表の情報が（少なくとも部分的に）誘導できる。
【００７８】
図１１は、図１のストレージ管理部１３５がストリームをアプリケーションに割り当てる例示的なメカニズムの動作順序図を図示する。図１１で、図３のストレージ管理部１３５は、図１のストレージ装置１２０からストリーミング性能６０５−１〜６０５−ｋを受信する。図１のマシン１０５内に位置しないストレージ装置に対するネットワークの待ち時間のようなストレージ装置に依存しない考慮事項１１０５及び図８のソフトウェアストリーム８１０−１〜８１０−３のＱｏＳ要求１１１０を結合して、図１のストレージ管理部１３５は装置ストリームを相異なる性能を提供するストリームの等級（ｃｌａｓｓｅｓ、又はプール（ｐｏｏｌｓ））に分類する（１１１５）。
例えば、幾つかの装置ストリームは、反応の速い高性能ストリームとして分類され（様々な他の可能性がある中で、例えば、図１のストレージ装置１２０内の処理のためのストリームには高い優先順位が割り当てられ、又は、該ストリームは高い帯域幅、又は、低い待ち時間で動作する）、反面に他のストリームは低性能ストリームとして分類される（例えば、該ストリームは古いストレージ装置により提供され、又は該ストリームは遅い連結又はまだ安定的ではない連結を利用するストレージ装置により支援される）。
【００７９】
任意の個数の等級があり得る。つまり、本発明の実施例は、装置ストリームが「高い性能」又は「低い性能」で分類される場合に限定されない。相異なるストレージ装置及び媒体類型の数よりも等級の数は通常少ないが、図１のストレージ管理部１３５は任意の所望の個数の等級を設定できる。等級は必ずしも相互排他的ではない。つまり、ストレージ装置により支援される特定のストリームは、その可能な用途に依存して（例えば、高性能ストリームは、ストレージ内コンピューティングを支援するストリームでもあり得る）、複数の等級が割り当てられる。勿論、ストリームに複数の等級が割り当てられると、そのストリームが特定の用途に割り当てられると、（そのストリームを再び使用しようとする試みを防止するため）そのストリームは全ての等級から除去される必要がある。
【００８０】
図４の装置ストリーム４２５−１〜４２５−３が等級分類されると、ソフトウェアストリームの要求１１２０に応答して、図１のストレージ管理部１３５は、図８のソフトウェアストリーム８１０−１〜８１０−３のため装置ストリームを選択する（１１２５）。図１のストレージ管理部１３５は、図４の装置ストリーム４２５−１〜４２５−３を利用する（１１３０）。図４の装置ストリーム４２５−１〜４２５−３の利用（１１３０）は、ストリーミング性能６０５−１〜６０５−３に影響するフィードバック（ｆｅｅｄｂａｃｋ）を惹起し、該フィードバックは図１のストリーミング管理部１３５に再び提供され、図１のストレージ管理部１３５が将来的に図４の装置ストリーム４２５−１〜４２５−３をどのように利用するのかを潜在的に変更する。
【００８１】
装置ストリームを分類する（１１１５）のは選択的である（即ち、必須ではない）。図１のストレージ管理部１３５は、先に図４の装置ストリーム４２５−１〜４２５−３を分類することなく、図８のソフトウェアストリーム８１０−１〜８１０−３に対する図４の装置ストリーム４２５−１〜４２５−３を選択できる。
【００８２】
図１２は、図９の装置ストリーム選択機９１０の細部事項を図示する。図１２で、  装置ストリーム選択機９１０は、マッパー（ｍａｐｐｅｒ）１２０５、マッピングアプデイタ（ｍａｐｐｉｎｇ  ｕｐｄａｔｅｒ）１２１０．及び加重値割り当て機（ｗｅｉｇｈｔ  ａｓｓｉｇｎｏｒ）１２１５を包含する。マッパー１２０５は図６のストリーミンング性能６０５を獲得し、それらを図８のソフトウェアストリーム８１０−１〜８１０−３とマッチアップする。マッピングアプデイタ１２１０は、図６のストリーミング性能６０５の変化を判別し、それに合わせてアプデイトする。
（別の選択肢として、図６のストリーミンング性能が変更されると、マッパー１２０５は単に再呼出しされて、図１のストレージ装置１２０のため、図６のストリーミング性能６０５を再生成する。）
そして、加重値割り当て機１２１５は、図８のソフトウェアストリーム８１０−１〜８１０−３のために図４の装置ストリーム４２５−１〜４２５−３を選択するに当たり使用するべき加重値を、ソフトウェアストリーム８１０−１〜８１０−３に対するソフトウェアストリーム要求１１２０に割り当てる。加重値の割り当て機１２１５は、任意のソースから加重値を割り当てる。例えば、加重値は特定の使用事例のための使用者から、又は多様な使用事例のため、ストリーミング性能のための加重値を格納するファイルから出てくる。
【００８３】
図１３は、図１２のマッパー１２０５の細部事項を図示する。前述した通り、本発明の幾つかの実施例で、図１のストレージ管理部１３５は図４の装置ストリーム４２５−１〜４２５−３及び図８のソフトウェアストリーム８１０−１〜８１０−３を分類できる。図１３は、本発明の斯かる実施例のマッパー１２０５の動作を示す。マッパー１２０５は装置ストリーム分類機（ｃｌａｓｓｉｆｉｅｒ）１３０５及びソフトウェアストリーム分類機１３１０を包含する。
装置ストリーム分類機１３０５は、図４の装置ストリーム４２５−１〜４２５−３を等級別に、又はプール別に分類し、ソフトウェアストリーム分類機１３１０は、図８のソフトウェアストリーム８１０−１〜８１０−３を等級別に同様に分類する。これにより、マッパー１２０５は、対応する等級に基づいて図８のソフトウェアストリーム８１０−１〜８１０−３と図４の装置ストリーム４２５−１〜４２５−３とをマッチングできる。
【００８４】
本発明の実施例は、従来のシステムより勝る幾つかの技術的な長所を提供する。一番目に、図１のストレージ管理部１３５に図１のストレージ装置１２０のストリーミング性能に関する、より多くの情報を提供するので、図１のストレージ管理部１３５は（ストレージ装置の内又はストレージ装置の全般にかけて）多重の媒体類型に跨るストリーミングを管理できる。二番目に、図１のストレージ管理部１３５は、図１のストレージ装置１２０を、より良く利用できる。例えば、図８のアプリケーション８０５は相異なるプロファイル（ｐｒｏｆｉｌｅｓ）を相異なるストリームに割り当てできる。
従来のシステムでは、図８のアプリケーション８０５からのデータは、結局図３のストレージ装置１２０−１〜１２０−５の何れかに格納配置されるが、その際、組織的配置が無く、図３のストレージ装置１２０−１〜１２０−５におけるストリーミング特性に関する考慮が無ない。しかし、本発明の実施例においては、図８の相異なるソフトウェアストリーム８１０−１〜８１０−３と関連されたデータは、特定の相異なるストレージ装置へ送信される。この結果は低性能ストリームのデータに対して高性能の資源を浪費するのを防止する。例えば、長期間格納されるデータはフラッシュメモリのストレージ装置よりＨＤＤに格納され得る。
【００８５】
図１４は、本発明の実施例により、図１のストレージ装置１２０が図６の自身のストリーミング性能６０５をセルフインベントリして、その情報を図１のストレージ管理部１３５に送信するための例示的な手順の順序図を図示する。図１４において、ステップ１４０５で、図５の受信機５０５は、図１のストレージ管理部１３５から図７の要請７０５を受信する。破線の矢印１４１０で図示された通りに、ステップ１４０５は選択的である。ステップ１４１５で、図５のストリーミング性能分析器５１０は、図１のストレージ装置１２０の図６のストリーミング性能６０５を判別してインベントリする。ステップ１４２０で、図１のストレージ装置１２０は、図１のストレージ装置１２０を用いる図１のストレージ管理部１３５を識別する。破線の矢印１４２５で図示された通りに、ステップ１４２０は選択的である。ステップ１４３０で、図６の送信機６１５は、図６のストリーミング性能６０５を図１のストレージ管理部１３５へ報告する。
【００８６】
図１のストレージ装置１２０が図６のストリーミング性能６０５を単に一回だけセルフインベントリすると、順序図は終了できる。しかし、前述した通りに、図１のストレージ装置１２０は何回でも図６のストリーミング性能６０５をセルフインベントリする状況がある。一例で、図１のストレージ装置１２０は、一番正確な図６のストリーミング性能６０５を判別するため、セルフインベントリを周期的に反復し、その結果は図１のストレージ管理部１３５に報告される。
二番目の例で、図１のストレージ装置１２０は図６のストリーミング性能６０５が変化したことを感知し、これは、セルフインベントリを反復し、図１のストレージ管理部１３５へ報告することを正当化する。ステップ１４１５、１４２０、１４３０の反復は、図１のストレージ装置１２０が、図６のストリーミング性能６０５を図１の多重のストレージ管理部１３５に報告する場合、特に適切である。つまり、図１の１つのストレージ管理部１３５の動作は、他のストレージ管理部に影響を与え得るが、他のストレージ管理部は、図１のストレージ装置１２０が図６のストリーミング性能６０５の変化を、それらに報告しないと、その変化を知ることができない。
三番目の例で、ステップ１４１５、１４２０，１４３０が図６のストリーミング性能６０５を図１の１つのストレージ管理部１３５に報告することを説明した通りに、図１のストレージ装置１２０はストリーミング性能を１つ以上の図１のストレージ管理部１３５に報告する必要がある。
（図６のストリーミング性能６０５を図１のストレージ管理部１３５に報告する際に、ステップ１４１５を必ずしも多重回遂行せず、ステップ１４２０、１４３０のみを簡単に反復していると、ステップ１４１５が、なお反復される必要がある状況が有り得る。例えば、図１の相異なるストレージ管理部１３５が、報告された図６の相異なるストリーミング性能６０５を所望する場合である。）
【００８７】
図１のストレージ装置１２０が図６のストリーミング性能６０５の周期的な報告を遂行すれば、又は図１のストレージ装置１２０が図６のストリーミング性能６０５を図１の多数のストレージ管理部１３５に報告するべきであれば、破線１４３５に沿って追加的な報告が遂行される。或いは、図１のストレージ装置１２０が図６のストリーミング性能６０５が変化したと判別した場合、ステップ１４４０で、図５のアプデイト感知器５２０は斯かる確認（ｃｈｅｃｋ）を遂行する。確認が図６のストリーミング性能６０５が変化したことを明示すると、制御は図６のストリーミング性能６０５のセルフインベントリを反復するため、ステップ１４１５に戻り、その情報を図１のストレージ管理部１３５に報告する。
【００８８】
図１５は、本発明の実施例により、図６のストリーミング性能６０５が、いつ変化したかを判別するための、図１のストレージ装置１２０のための例示的な手順の順序図を図示する。図１５において、ステップ１５０５で、図５のアプデイト感知器５２０は図４の装置ストリーム４２５の中で任意のものが特定の使用に割り当てられたか（よって、一般的に利用できない）を確認する。そうではないと（即ち、どの装置ストリームも割り当てられていない場合）、ステップ１５１０で、図５のアプデイト感知器５２０はオートストリーミング性能が変化したかを確認する。図１のストレージ装置１２０は、自身が受信するデータをどのように最適に管理するのかを判別するので、オートストリーミングは調整過程であり、従ってオートストリーミングは任意の時間で変化できる。
そうではないと（即ち、オートストリーミング性能が変化していない場合）、ステップ１５１５で、図５のアプデイト感知器５２０は、任意の他のストリーミング性能が変化したかを確認する。つまり、例えば、他の可能性と並んで、ストレージ装置の処理能力、ストレージ装置のリード／ライト／消去の待ち時間、割り当てられたか、又は割り当てが解除されたストリーム、大きなストレージ内コンンピューティング作業の始まりなどである。斯かる確認の中で何れか一つが肯定的な結果となる（即ち、変化が確認された）と、ステップ１５２０で、図１のストレージ装置１２０は図６のストリーミング性能６０５が変化したことを知る。そうではないと、ステップ１５２５で、図１のストレージ装置１２０は、図６のストリーミング性能６０５が変化しないことを知る。
【００８９】
図１６は、本発明の実施例により、図１のストレージ管理部１３５が要請を図１のストレージ装置１２０の内の図４の装置ストリーム４２５に割り当てるための例示的な手順の順序図を図示する。図１６において、ステップ１６０５で、図９の受信機９０５は図６のストレージ装置１２０から図６のストリーミング性能６０５を受信する。図９の受信機９０５が図１の１つ以上のストレージ装置１２０から図６のストリーミング性能６０５を受信すると、破線１６１０で図示された通りに、ステップ１６０５は反復される。ステップ１６１５で、図９のオーグメンタ９２０はストレージ装置に依存しない考慮事項を用いて図６のストリーミング性能６０５を補強する。破線で図示された通りに、ステップ１６１５は省略可能である。ステップ１６２５で、図９の受信機９０５は図８のソフトウェアストリーム８１０から図８の要請８１５を受信する。ステップ１６３０で、図１のストレージ管理部１３５は、図１１のソフトウェアストリーム要求１１２５を判別する。ステップ１６３５で、図９の装置ストリーム選択機９１０は図４の装置ストリーム４２５を選択して図８のソフトウェアストリーム８１０から要請を受信する。ステップ１６４０で、図９の送信機９１５は、図８の要請８１５を図４の選択された装置ストリーム４２５へ送信する。
【００９０】
図１７は、本発明の実施例により、図１のストレージ管理部１３５が、図８のソフトウェアストリーム８１０を図４の装置ストリーム４２５にマッピングするための例示的な手順の順序図を図示する。図１７において、ステップ１７０５で、図１３の装置ストリーム分類機１３０５は、図４の各装置ストリーム４２５を或る等級に割り当てる。ステップ１７１０で、図１３のソフトウェアストリーム分類機１３１０は、図８の各ソフトウェアストリーム８１０を或る等級に割り当てる。ステップ１７１５で、図１２のマッパー１２０５は、図８のソフトウェアストリーム８１０を図４の装置ストリーム４２５にマッピングする。ステップ１７２０で、図９の装置ストリーム選択機９１０は図８の特定のソフトウェアストリーム８１０のため、図４の装置ストリーム４２５を選択する。
【００９１】
ステップ１７２５で、図９の受信機９０５は図１のストレージ装置１２０から図６のアプデイトされたストリーミング性能６０５を受信する。この場合、ステップ１７３０で、図１のマッパーアプデイタ１２１０は図６のアプデイトされたストリーミング性能６０５に基づいて、図８のソフトウェアストリーム８１０から図４の装置ストリーム４２５へのマッピングをアプデイトする。
【００９２】
図１８は、本発明の実施例により、図１のストレージ管理部１３５が、図８のソフトウェアストリーム８１０のため、図４の装置ストリーム４２５を選択するための例示的な手順の順序図を図示する。図１８において、ステップ１８０５で、図１２の加重値割り当て機１２１５は加重値を、図１１のＱｏＳ要求１１１０に基づいて割り当てる。ステップ１８１０で、図１のストレージ管理部１３５は個別的なストリーミング性能に基づいて図４の装置ストリーム４２５をランクする。ステップ１８１５で、図１のストレージ管理部１３５はストリーミング性能の加重値及びランクに基づいて、加重和を用いて図８のソフトウェアストリーム８１０のため図４の装置ストリーム４２５を選択する。
【００９３】
以上、図１４乃至図１８において、本発明の幾つかの実施例が図示された。しかし、当業者はステップの順序の変更、ステップの省略す、又は図示されないリンク（ｌｉｎｋ）の追加により、本発明の他の実施例も可能であると認識するはずである。順序図の全ての斯かる変形は明示的な説明の有無に係らず本発明の実施例であると見なされる。
【００９４】
以下の説明は、本発明の一部の側面が具現される適合なマシン又はマシンの簡潔で一般的な説明を提供するため意図される。単数又は複数のマシンは、少なくとも一部は、キーボード、マウスなどのような従来の入力装置からの入力によるだけでなく、他のマシンから受信される指示、仮想現実（ＶＲ）環境との相互作用、生体フィードバック、又は他の入力信号により制御される。本明細書で使用されるように、「マシン」の用語は単一マシン、仮想マシン、又は複数のマシン、複数の仮想マシン又は共に動作する装置と通信するように連結されたシステムを広く含むと意図される。例示的なマシンは、例えば、自動車、汽車、タクシーなどのような個人用又は公共輸送のような輸送装置だけではなくＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ワークステーション、サーバ、ポータブルコンピュータ（ｐｏｒｔａｂｌｅ  ｃｏｍｐｕｔｅｒ）、ハンドヘルド（ｈａｎｄｈｅｌｄ）装置、電話、タブレット（ｔａｂｌｅｔ）などのようなコンピューティング装置を包含する。
【００９５】
単数又は複数のマシンはプログラム可能な又はプログラム不能な論理装置又は論理アレイ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、エンベッデド（ｅｍｂｅｄｄｅｄ）コンピュータ、スマートカードなどのエンベッデドコントローラを包含する。単数又は複数のマシンはネットワークインタフェース、モデム、又は他の通信連結を通じて一つ又はそれ以上の遠隔マシンに対する１つ以上の連結を使用する。マシンはイントラネット（ｉｎｔｒａｎｅｔ）、インタネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）などの物理的及び／又は論理的ネットワークの手段で互いに連結される。当業者はネットワーク通信が多様な有線及び／又は無線近距離又は遠距離キャリア（ｃａｒｒｉｅｒ）及び無線周波数（ＲＦ）、衛星、マイクロ波、ＩＥＥＥ  ８０２．１１、ブルートゥース（登録商標）、光学、赤外線、レーザーなどを含むプロトコルを利用することを理解している筈である。
【００９６】
本発明の実施例は、関数、手順、データ構造、アプリケーションプログラムなどを含む関連データを参照又は連携して記述できる。これらの関連データは結局、マシンによりアクセスされるときに、作業を遂行するか、或いは抽象的類型のデータ又は下位レベルのハードウェアコンテクスト（ｃｏｎｔｅｘｔ）の定義を惹起するマシンに帰着する。関連データは、例えばＲＡＭ、ＲＯＭなどのような揮発性及び／又は不揮発性メモリ、又は他のストレージ装置、そしてハードドライブ、フロッピディスク、光学格納、テープ、フラッシュメモリ、メモリスティック（ｓｔｉｃｋ）、デジタルビデオディスク、生体格納などを含み関連する格納媒体に格納される。関連されたデータは物理的及び／又は論理的ネットワークを含む通信環境を通じてパケット、直列データ、並列データ、伝播された信号などの形態で伝達され、圧縮された又は暗号化されたフォーマットで使用される。関連データは、分散環境で使用でき、マシンアクセスのため地域的に及び／又は遠隔に格納できる。
【００９７】
本発明の実施例は、一つ又はそれ以上のプロセッサにより実行可能な命令を含む非一時的なマシンの読出し（リード）可能な媒体を含み、該命令は本明細書で説明されたように、本発明の要素を遂行する命令を包含する。
【００９８】
図示された実施例を参照して説明され、図示された本発明の原理を有すると、図示された実施例が、斯かる原理から逸脱せずに配列及び細部事項で修正されることができ、任意の所望の方法で組み合せられることが理解されるはずである。そして、前述した説明が具体的な実施例に集中したが、他の構成も又は考慮される。具体的に、「本発明の実施例による」のような説明又は本明細書で使用された、類似したことにも関わらず、斯かる文句は一般的に実施例の可能性を参照するため意図され、本発明を特定の実施例の構成に限定することを意図しない。本明細書で使用されたように、斯かる用語は他の実施例で組み合せ可能な同一な又は相異なる実施例を参照できる。
【００９９】
前述した例示的な実施例は、本発明をそれらに限定するものとして解釈されない。少ない実施例が説明されたが、当業者は本記載の新規な説明及び長所から実質的に逸脱せずに、斯かる実施例に対して多くの修正が可能であることを十分に理解するであろう。従って、斯かる全ての修正は請求項で定義されるように、本発明の範囲内に含まれることで意図される。
【０１００】
本発明の実施例は、制限なしに次の叙述に拡張されることができる。
叙述１．本発明の実施例はストレージ装置を含み、該ストレージ装置は、
データのためのストレージと、
前記ストレージに前記データをライト（ｗｒｉｔｅ）するのに用いられる多数の装置ストリームと、
前記ストレージ装置のストリーミング性能をインベントリ（ｉｎｖｅｎｔｏｒｙ）するストリーミング性能分析器と、
前記ストレージ装置の前記ストリーミング性能を少なくとも１つストレージ管理部に送信する送信機と、を包含する。
叙述２．本発明の実施例は叙述１によるストレージ装置を包含するが、
前記ストレージ装置は次のフォーマットの中で１つを支援する。つまり、  ＮＶＭｅｏＦ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ  ｏｖｅｒ  Ｆａｂｒｉｃ）装置、シングルド（ｓｈｉｎｇｌｅｄ）ハードディスクドライブ、フラッシュメモリのストレージ装置、及び混合された媒体ストレージ装置。
叙述３．本発明の実施例は叙述２によるストレージ装置を包含するが、前記フラッシュメモリのストレージ装置はフラッシュメモリのＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を包含する。
叙述４．本発明の実施例は叙述２によるストレージ装置を包含するが、前記混合された媒体ストレージは混合された媒体のＳＳＤを包含する。
叙述５．本発明の実施例は叙述１によるストレージ装置を包含し、前記ストレージ装置は前記ストリーミング選択分析器及び前記送信機を含むコントローラをさらに包含する。
叙述６．本発明の実施例は叙述１によるストレージ装置を包含するが、
前記ストレージ装置は前記ストレージ装置の前記ストリーミング性能にアプデイトがある時を感知するように動作するアプデイト感知器をさらに包含し、
前記ストリーミング性能分析器は前記ストレージ装置の前記アプデイトされたストリーミング性能を再インベントリするように動作し、そして
前記送信機は前記ストレージ装置の前記アプデイトされたストリーミング性能を前記少なくとも１つのストレージ管理部に送信するように動作する。
叙述７．本発明の実施例は叙述１によるストレージ装置を包含するが、
前記ストリーミング性能分析器は前記ストレージ装置の前記ストリーミング性能を周期的にインベントリするように動作し、そして
前記送信機は各インベントリ以後に前期ストレージ装置の前記ストリーミング性能を前記少なくとも１つのストレージ管理部に送信するように動作する。
叙述８．本発明の実施例は叙述１によるストレージ装置を包含するが、
前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述９．本発明の実施例は叙述１によるストレージ装置を包含するが、
データのための前記ストレージは第１類型の第１ストレージ及び第２類型の第２ストレージを含み、前記第１類型は前記第２類型と相異なり、
前記ストレージ装置により支援される前記多数の装置ストリームの中で第１装置ストリームは前記第１ストレージと関連され、そして
前記ストレージ装置により支援される前記多数の装置ストリームの中で第２装置ストリームは前記第２ストレージと関連される。
叙述１０．本発明の実施例は叙述１によるストレージ装置を包含し、前記ストレージ装置は前記少なくとも１つのストレージ管理部から前期ストレージ装置の前記ストリーミング性能に対する要請を受信する受信機をさらに包含する。
叙述１１．本発明の実施例はストレージ管理部を包含し、ストレージ管理部は、
少なくとも１つのストレージ装置の少なくとも１つのストリーミング性能、少なくとも１つのソフトウェアストリームに対する要求及び前記少なくとも１つのソフトウェアストリームからの要請を受信する受信機と、
前記少なくとも１つのソフトウェアストリーム及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対する前記要求に対応する前記少なくとも１つのストレージ装置により支援される多数の装置ストリームの中で１つを選択する装置ストリーム選択機と、及び
前記要請を前記少なくとも１つのストレージ装置の中で、前記多数の装置ストリームの中で選択された１つを支援する第１ストレージ装置に送信する送信機を包含する。
叙述１２．本発明の実施例は叙述１１によるストレージ管理部を包含し、ストレージ管理部はストレージ装置に依存しない考慮事項を用いて前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を補強するオーグメンタ（ａｕｇｍｅｎｔｅｒ）をさらに包含する。
叙述１３．本発明の実施例は叙述１１によるストレージ管理部を包含し、前記ストレージ管理部はホストマシン上のプロセッサ上で実行されるソフトウェアを用いて具現される。
叙述１４．本発明の実施例は叙述１１によるストレージ管理部を包含し、  前記ストレージ管理部はホストマシン内でハードウェアモジュールとして具現される。
叙述１５．本発明の実施例は叙述１１によるストレージ管理部を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述１６．本発明の実施例は叙述１１のストレージ管理部を包含するが、前記ストリーム選択機は前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するマッパー（ｍａｐｐｅｒ）を包含する。
叙述１７．本発明の実施例は叙述１６によるストレージ管理部を包含するが、
前記受信機は前記少なくとも１つのストレージ装置の少なくとも１つのアプデイトされたストリーミング性能を受信するように動作し、そして
前記装置ストリーム選択機は前記少なくとも１つのストレージ装置の前記少なくとも１つのアプデイトされたストリーミング性能に対応する前記マッピングをアプデイトするマッピングアプデイタをさらに包含する。
叙述１８．本発明の実施例は叙述１６によるストレージ管理部を包含するが、前記マッパーは、
前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの各々を少なくとも二つの等級の中で一つに割り当てる装置ストリーム分類機と、及び
前記少なくとも１つのソフトウェアストリームの各々を前記少なくとも二つの等級の中で一つに割り当てるソフトウェアストリーム分類機を包含し、
前記装置ストリーム選択機は前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で、前記少なくとも１つのソフトウェアストリームと共に等級内にある１つを選択するように動作する。
叙述１９．本発明の実施例は叙述１６によるストレージ管理部を包含し、ストレージ管理部は前記マッピングを格納するデータ構造のためのストレージをさらに包含する。
叙述２０．本発明の実施例は叙述１１によるストレージ管理部を包含し、ストレージ管理部は前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を格納するデータ構造のためのストレージをさらに包含する。
叙述２１．本発明の実施例は叙述１１によるストレージ管理部を包含し、前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能は、前記少なくとも１つのストレージ装置が第１類型の第１ストレージと第２類型の第２ストレージとの包含を規定し、前記第１類型は前記第２類型と相異なる。
叙述２２．本発明の実施例は叙述１１によるストレージ管理部を包含し、前記少なくとも１つのストレージ装置は第１ストレージ装置及び第２ストレージ装置を包含し、前記第１ストレージ装置と前記第２ストレージ装置とは相異なるストリーミング性能を支援する。
叙述２３．本発明の実施例は叙述２２によるストレージ管理部を包含するが、
前記第１ストレージ装置は第１類型のストレージを支援し、そして
前記第２ストレージ装置は第２類型のストレージを支援し、前記第２類型のストレージは前記第１類型のストレージと相異なる。
叙述２４．本発明の実施例は叙述２２によるストレージ管理部を包含するが、前記相異なるストリーミング性能は相異なる多数の装置ストリーム、相異なる消去ブロックサイズ、相異なるストレージ容量、相異なるオートストリーミング性能、相異なる最適のストリームライトのサイズ、相異なるストレージ内コンピューティング性能、相異なるプログラム及び消去速度のパラメータ、相異なるバッファサイズ、相異なる処理能力の制限、そして相異なるファームウェアバージョンを包含する。
叙述２５．本発明の実施例は叙述１１によるストレージ管理部を包含するが、
前記少なくとも１つのソフトウェアストリームに対する前記要求は前記少なくとも１つのソフトウェアストリームに対する少なくとも二つの要求を包含し、
前記装置ストリーム選択機は加重値を前記少なくとも１つのソフトウェアストリームに対する前記少なくとも二つの要求に割り当てる加重値の割り当て機を包含し、そして
前記装置ストリーム選択機は前記加重値及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するように動作する。
叙述２６．本発明の実施例は方法を包含し、方法は、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップと、
前記ストレージ装置と通信する少なくとも１つのストレージ管理部を識別するステップと、及び
前記ストリーミング性能を前記ストレージ装置で前記少なくとも１つのストレージ管理部に報告するステップと、を包含する。
叙述２７．本発明の実施例は叙述２６による方法を包含し、方法は、
前記ストレージ装置の第２ストリーミング性能を後で判別するステップと、及び
前記第２ストリーミング性能を前記少なくとも１つのストレージ管理部に報告するステップと、をさらに包含する。
叙述２８．本発明の実施例は叙述２６による方法を包含するが、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップは前記ストレージ装置の前記ストリーミング性能を前記ストレージ装置により周期的に判別するステップを包含し、そして
前記ストリーミング性能を前記ストレージ装置で前記少なくとも１つのストレージ管理部に報告するステップは前記ストリーミング性能を前記ストレージ装置で前記少なくとも１つのストレージ管理部に周期的に報告するステップを包含する。
叙述２９．本発明の実施例は叙述２６による方法を包含し、方法は、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップと、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別した後、前記ストレージ装置の第２ストリーミング性能を判別するステップと、及び
前第２ストリーミング性能を前記少なくとも１つのストレージ管理部に報告するステップを更に包含する。
叙述３０．本発明の実施例は叙述２９による方法を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置により支援される多数の装置ストリームの中で１つを前記少なくとも１つのストレージ管理部の中で１つに割り当てるステップを包含する。
叙述３１．本発明の実施例は叙述２９による方法を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置のオートストリーミング性能を変更するステップを包含する。
叙述３２．本発明の実施例は叙述２６による方法を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（ｉｎ−ｓｔｏｒａｇｅ  ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述３３．本発明の実施例は叙述３２による方法を包含するが、
前記ストレージ装置の前記物理的異種性は第１類型の第１ストレージ及び第２類型の第２ストレージを包含し、前記第１類型は前記第２類型と相異なり、
前記ストレージ装置により支援される前記装置ストリームの中で第１装置ストリームは前記第１ストレージと関連され、そして
前記ストレージ装置により支援される前記装置ストリームの中で第２装置ストリームは前記第２ストレージと関連される。
叙述３４．本発明の実施例は叙述２６による方法を包含するが、前記ストレージ装置はＮＶＭｅｏＦ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ  ｏｖｅｒ  Ｆａｂｒｉｃ）装置、シングルドハード（ｓｈｉｎｇｌｅｄ）ディスクドライブ、フラッシュメモリのストレージ装置及び混合された媒体のストレージ装置を包含する集合から導出される。
叙述３５．本発明の実施例は叙述３４による方法を包含するが、前記フラッシュメモリのストレージ装置はフラッシュメモリＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を包含する。
叙述３６．本発明の実施例は叙述３４による方法を包含するが、前記混合された媒体のストレージ装置は混合された媒体ＳＳＤを包含する。
叙述３７．本発明の実施例は叙述２６による方法を包含するが、
前記方法は前記少なくとも１つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する要請を受信するステップをさらに包含し、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップは、前記少なくとも１つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記ストレージ装置の前記ストリーミング性能を判別するステップを包含し、そして
前記ストリーミング性能を前記少なくとも１つのストレージ管理部に報告するステップは前記ストリーミング性能を前記少なくとも１つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記少なくとも１つのストレージ管理部に報告するステップを包含する。
叙述３８．本発明の実施例は方法を包含し、方法は、
多数の装置ストリームを支援する少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップと、
少なくとも１つのソフトウェアストリームから要請を受信するステップと、
前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップと、
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するステップと、及び
前記多数の装置ストリームの中で前記選択された少なくとも一つを用いて前記要請を前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのストレージ装置に送信するステップと、を包含する。
叙述３９．本発明の実施例は叙述３８による方法を包含し、前記少なくとも２つのストリーミング性能は多数の装置ストリーム、消去ブロックサイズ、ストレージ容量、オートストリーミング性能、最適のストリームライトのサイズ、ストレージ内コンピューティング性能、プログラム及び消去速度のパラメータ、バッファサイズ、処理能力の制限及びファームウェアバージョンの中で少なくとも１つに対して相異なる。
叙述４０．本発明の実施例は叙述３８による方法を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述４１．本発明の実施例は叙述３８による方法を包含し、方法はストレージ装置に依存しない考慮事項を用いて前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を補強するステップと、をさらに包含する。
叙述４２．本発明の実施例は叙述３８による方法を包含し、前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するステップは、
前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するステップと、及び
前記少なくとも１つのソフトウェアストリームに対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つを選択する前記マッピングを用いるステップと、を包含する。
叙述４３．本発明の実施例は叙述４２による方法を包含するが、
前記少なくとも１つのストレージ装置の少なくとも１つのアプデイトされたストリーミング性能を受信するステップと、及び
前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのストレージ装置の前記少なくとも１つのアプデイトされたストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つへの前記マッピングをアプデイトするステップと、をさらに包含する。
叙述４４．本発明の実施例は叙述４２による方法を包含するが、前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するステップは、
前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの各々を前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を用いて少なくとも２つの等級の中で１つに割り当てるステップと、
前記少なくとも１つのソフトウェアストリームを前記少なくとも２つの等級の中で１つに割り当てるステップと、及び
前記少なくとも１つのソフトウェアストリームを同一な等級を有する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つに割り当てることで前記マッピングを生成するステップと、を包含する。
叙述４５．本発明の実施例は叙述３８による方法を包含するが、多数の装置ストリームを支援する少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップは、
少なくとも第１類型のストレージを支援する少なくとも第１ストレージ装置の少なくとも第１ストリーミング性能を受信するステップと、及び
少なくとも第２類型のストレージを支援する少なくとも第２ストレージ装置の少なくとも第２ストリーミング性能を受信するステップを包含し、前記第２類型のストレージは前記第１類型のストレージと相異なる。
叙述４６．本発明の実施例は叙述３８による方法を包含するが、前記少なくとも１つのストレージ装置は第１類型の第１ストレージ及び第２類型の第２ストレージを包含し、前記第１類型は前記第２類型と相異なる。
叙述４７．本発明の実施例は叙述３８による方法を包含するが、
前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップは前記少なくとも１つのソフトウェアストリームの少なくとも２つの要求を判別するステップを包含し、前記少なくとも２つの要求は前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能の部分集合を表し、そして
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するステップは、
加重値を前記少なくとも１つのソフトウェアストリームの前記少なくとも２つの要求に割り当てるステップと、及び
前記加重値及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリ−ムの中で前記少なくとも１つを選択するステップと、を包含する。
叙述４８．本発明の実施例は非一時的ストレージ媒体を含む物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップと、
前記ストレージ装置と通信する少なくとも１つのストレージ管理部を識別するステップと、及び
前記ストリーミング性能を前記ストレージ装置で前記少なくとも１つのストレージ管理部に報告するステップを惹起する格納されたそれに対する命令語を有する。
叙述４９．本発明の実施例は叙述４８による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
前記ストレージ装置の第２ストリーミング性能を後で判別するステップと、及び
前記第２ストリーミング性能を前記少なくとも１つのストレージ管理部に報告するステップを惹起する格納されたそれに対する追加の命令語を有する。
叙述５０．本発明の実施例は叙述４８による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップと、
前記ストレージ装置の前記ストリーミング性能が変化したことを識別した後、前記ストレージ装置の第２ストリーミング性能を判別するステップと、及び
前第２ストリーミング性能を前記少なくとも１つのストレージ管理部に報告するステップを惹起する格納されたそれに対する追加の命令語を有する。
叙述５１．本発明の実施例は叙述４８による物品を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置により支援される多数の装置ストリームの中で１つを前記少なくとも１つのストレージ管理部の中で１つに割り当てるステップを包含する。
叙述５２．本発明の実施例は叙述５０による物品を包含するが、前記ストレージ装置の前記ストリーミング性能が変化したことを識別するステップは前記ストレージ装置のオートストリーミング性能を変更するステップを包含する。
叙述５３．本発明の実施例は叙述４８による物品を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述５４．本発明の実施例は叙述５３による物品を包含するが、
前記ストレージ装置の前記物理的異種性は第１類型の第１ストレージ及び第２類型の第２ストレージを包含し、前記第１類型は前記第２類型と相異なり、
前記ストレージ装置により支援される前記装置ストリームの中で第１装置ストリームは前記第１ストレージと関連され、そして
前記ストレージ装置により支援される前記装置ストリームの中で第２装置ストリームは前記第２ストレージと関連される。
叙述５５．本発明の実施例は叙述４８による物品を包含するが、前記ストレージ装置はＮＶＭｅｏＦ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ  ｏｖｅｒ  Ｆａｂｒｉｃ）装置、シングルドハード（ｓｈｉｎｇｌｅｄ）ディスクドライブ、フラッシュメモリのストレージ装置及び混合された媒体のストレージ装置を包含する集合から導出される。
叙述５６．本発明の実施例は叙述５５による物品を包含するが、前記フラッシュメモリのストレージ装置はフラッシュメモリＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を包含する
叙述５７．本発明の実施例は叙述５５による物品を包含するが、前記混合された媒体のストレージ装置は混合された媒体ＳＳＤを包含する。
叙述５８．本発明の実施例は叙述４８による物品を包含するが、
前記方法は前記少なくとも１つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する要請を受信するステップをさらに包含し、
ストレージ装置のストリーミング性能を前記ストレージ装置により判別するステップは、前記少なくとも１つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記ストレージ装置の前記ストリーミング性能を判別するステップを包含し、そして
前記ストリーミング性能を前記ストレージ装置で前記少なくとも１つのストレージ管理部に報告するステップは前記ストリーミング性能を前記少なくとも１つのストレージ管理部から前記ストレージ装置の前記ストリーミング性能に対する前記要請に対応する前記少なくとも１つのストレージ管理部に報告するステップを包含する。
叙述５９．本発明の実施例は非一時的ストレージ媒体を含む物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
多数の装置ストリームを支援する少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップと、
少なくとも１つのソフトウェアストリームから要請を受信するステップと、
前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップと、
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するステップと、及び
前記多数の装置ストリームの中で前記選択された少なくとも一つを用いて前記要請を前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのストレージ装置に送信するステップを惹起する格納されたそれに対する命令語を有する。
叙述６０．本発明の実施例は叙述５９による物品を包含するが、前記少なくとも２つのストリーミング性能は多数の装置ストリーム、消去ブロックサイズ、ストレージ容量、オートストリーミング性能、最適のストリームライトのサイズ、ストレージ内コンピューティング性能、プログラム及び消去速度のパラメータ、バッファサイズ、処理能力の制限及びファームウェアバージョンの中で少なくとも１つに対して相異なる。
叙述６１．本発明の実施例は叙述５９による物品を包含するが、前記ストリーミング性能は、前記ストレージ装置により支援される前記多数の装置ストリーム、前記ストレージ装置上の消去ブロックのサイズ、前記ストレージ装置の物理的異種性の記述、前記ストレージ装置のオートストリーミング性能、前記ストレージ装置の最適のストリームライトのサイズ、前記ストレージ装置によりストレージ内コンピューティング（ｉｎ−ｓｔｏｒａｇｅ  ｃｏｍｐｕｔｉｎｇ：  ＩＳＣ）、前記ストレージ装置のプログラム及び消去速度のパラメータ、前記ストレージ装置のバッファサイズ、前記ストレージ装置により支援される前記装置ストリームの処理能力の制限、そして前記ストレージ装置のファームウェアバージョンを含む集合から導出される。
叙述６２．本発明の実施例は叙述５９による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、ストレージ装置に依存しない考慮事項を用いて前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を補強するステップ惹起する格納されたそれに対する追加命令語を有する。
叙述６３．本発明の実施例は叙述５９による物品を包含するが、前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するステップは、
前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するステップと、及び
前記少なくとも１つのソフトウェアストリームに対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つを選択する前記マッピングを用いるステップと、を包含する。
叙述６４．本発明の実施例は叙述６３による物品を包含し、前記非一時的ストレージ媒体は機械により実行される時、
前記少なくとも１つのストレージ装置の少なくとも１つのアプデイトされたストリーミング性能を受信するステップと、及び
前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのストレージ装置の前記少なくとも１つのアプデイトされたストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つへの前記マッピングをアプデイトするステップを惹起する格納されたそれに対する追加命令語を有する。
叙述６５．本発明の実施例は叙述６３による物品を包含するが、前記少なくとも１つのソフトウェアストリームで前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つへのマッピング（ｍａｐｐｉｎｇ）を生成するステップは、
前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの各々を前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能を用いて少なくとも２つの等級の中で１つに割り当てるステップと、
前記少なくとも１つのソフトウェアストリームを前記少なくとも２つの等級の中で１つに割り当てるステップと、及び
前記少なくとも１つのソフトウェアストリームを同一な等級を有する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で前記少なくとも１つに割り当てることで前記マッピングを生成するステップと、を包含する。
叙述６６．本発明の実施例は叙述５９による物品を包含するが、多数の装置ストリームを支援する少なくとも１つのストレージ装置の少なくとも２つのストリーミング性能を受信するステップは、
少なくとも第１類型のストレージを支援する少なくとも第１ストレージ装置の少なくとも第１ストリーミング性能を受信するステップと、及び
少なくとも第２類型のストレージを支援する少なくとも第２ストレージ装置の少なくとも第２ストリーミング性能を受信するステップを包含し、前記第２類型のストレージは前記第１類型のストレージと相異なる。
叙述６７．本発明の実施例は叙述５９による物品を包含するが、前記少なくとも１つのストレージ装置は第１類型の第１ストレージ及び第２類型の第２ストレージを包含し、前記第１類型は前記第２類型と相異なる。
叙述６８．本発明の実施例は叙述５９による物品を包含するが、
前記少なくとも１つのソフトウェアストリームの少なくとも１つの要求を判別するステップは前記少なくとも１つのソフトウェアストリームの少なくとも２つの要求を判別するステップを包含し、前記少なくとも２つの要求は前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能の部分集合を表し、そして
前記少なくとも１つのソフトウェアストリームの前記少なくとも１つの要求及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリームの中で少なくとも１つを選択するステップは、
加重値を前記少なくとも１つのソフトウェアストリームの前記少なくとも２つの要求に割り当てるステップと、及び
前記加重値及び前記少なくとも１つのストレージ装置の前記少なくとも１つのストリーミング性能に対応する前記少なくとも１つのストレージ装置により支援される前記多数の装置ストリ−ムの中で前記少なくとも１つを選択するステップと、を包含する。
【０１０１】
結論的に、本明細書に説明された実施例に対する幅広く多様な変更の観点から、この詳細な説明及び添付された資料は単に例示的なものとして意図され、本発明の範囲を限定するものと見做されてはならない。従って、本発明として請求されるのは以下の請求項及びその均等物の範囲及び思想内に有り得るような全ての変形である。
【産業上の利用可能性】
【０１０２】
本発明は、マルチストリーミングのために相異なる性能の異種ＳＳＤのストリーム管理に有用である。
【符号の説明】
【０１０３】
１０５      マシン
１１０      プロセッサ
１１５      メモリ
１２０      ストレージ装置
１２０−１      シングルドＨＤＤ
１２０−２      新型ＳＳＤ（フラッシュメモリストレージ装置）
１２０−３      混合媒体ストレージ装置
１２０−４      旧型ＳＳＤ（フラッシュメモリストレージ装置）
１２０−５      ＮＶＭｅｏＦ＿ＳＳＤ（フラッシュメモリストレージ装置）
１２５      メモリコントローラ
１３５      ストレージ管理部
２０５      クロック
２１０      コネクタ
２１５      バス
２２０      インタフェース
２２５      入出力エンジン
３０５      プロトコル
３０５−１      旧型プロトコル（ＳＡＴＡ、ＳＣＳＩ）
３０５−２      ＰＣＩｅ（ｘ４）
３０５−３      ＳＡＳ
３０５−４      ＰＣＩｅ（ｘ２）
３０５−５      イーサネット
４０５      インタフェースロジック
４１０      コントローラ、ＳＳＤコントローラ
４１５      ストレージ
４１５−１〜４１５−８      フラッシュメモリチップ
４２０、４２０−１〜４２０−４      チャンネル
４２５、４２５−１〜４２５−３      装置ストリーム
４３０      フラッシュ変換階層
５０５，９０５      受信機
５１０      ストリーミング性能分析器
５１５，９１５      送信機
５２０      アプデイト感知器
６０５      ストリーミング性能
６１０      装置ストリームの個数
６１５      消去ブロックサイズ
６２０      物理的異種性
６２５      オートストリーミング性能
６３０      最適のストリームライトサイズ
６３５      ストレージ内コンピューティング
６４０      プログラム／消去速度のパラメータ
６４５      バッファサイズ
６５０      処理能力の制限
６５５      ファームウェアバージョン
７０５      要請
８０５      アプリケーション
８１０、８１０−１〜８１０−３      ソフトウェアストリーム、ソフトウェアストリーム１〜３
８１５      要請
９１０      装置ストリーム選択機
９２０      オーグメンタ
９２５      ストレージ
９３０      ストリーミング性能関連データ構造
９３５      マッピング関連データ構造
１００５      表
１０１０      表
１１１０      ＱｏＳ要求
１１１５      装置ストリームを分類
１１２０      ソフトウェアストリーム要求
１１２５      装置ストリームを選択
１１３０      装置ストリームを利用
１２０５      マッパー
１２１０      マッピングアプデイタ
１２１５      加重値割り当て器
１３０５      装置ストリーム分類器
１３１０      ソフトウェアストリーム分類器
【図１】
2018190425.tif 000003
【図２】
2018190425.tif 000004
【図３】
2018190425.tif 000005
【図４】
2018190425.tif 000006
【図５】
2018190425.tif 000007
【図６】
2018190425.tif 000008
【図７】
2018190425.tif 000009
【図８】
2018190425.tif 000010
【図９】
2018190425.tif 000011
【図１０】
2018190425.tif 000012
【図１１】
2018190425.tif 000013
【図１２】
2018190425.tif 000014
【図１３】
2018190425.tif 000015
【図１４】
2018190425.tif 000016
【図１５】
2018190425.tif 000017
【図１６】
2018190425.tif 000018
【図１７】
2018190425.tif 000019
【図１８】
2018190425.tif 000020