(57)【要約】【課題】記憶デバイスにおける性能変動を制限するためのシステム及び方法を提供する。【解決手段】記憶デバイスは、１つ以上の動作を行う作業要求を、ホストコンピューティングデバイス等の他のコンピューティングデバイスから受信する。作業要求を完了するためには、応答時間を要する場合がある。いくつかの実施形態では、作業要求の実行の応答時間が閾値を超えた場合、記憶デバイスは、作業要求を完了するために追加のコンピューティングリソースを割り当て得る。【選択図】図６
2017215966.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスであって、
制御器であって、
１つ以上の動作を行う要求を受信することと、
前記要求の応答時間を推定することであって、前記応答時間は、前記要求を部分的に実行するために前記制御器が要する時間を示す、推定することと、
前記応答時間が実行時間閾値を超えていることを決定することと、
前記応答時間が前記実行時間閾値を超えているという決定に際し、１つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、のためのものである、制御器を備える、記憶デバイス。
【請求項２】
前記制御器は、
前記要求の到着時刻を決定するためのものであり、前記到着時刻は、前記制御器が前記要求を受信した時刻である、請求項１に記載の記憶デバイス。
【請求項３】
前記制御器は、
前記到着時刻を前記要求にタイムスタンプするためのものである、請求項２に記載の記憶デバイス。
【請求項４】
前記制御器は、
前記要求の前記到着時刻を到着ログに記録するためのものである、請求項２に記載の記憶デバイス。
【請求項５】
前記制御器は、
現在時刻を前記到着時刻と比較することと、
前記現在時刻と前記到着時刻との間の差異に基づき、前記応答時間を決定することと、のためのものである、請求項２に記載の記憶デバイス。
【請求項６】
前記制御器は、
前記要求に含まれる前記１つ以上の動作の実行中にエラーが発生したことを決定することと、
検出された前記エラーを補償するために前記１つ以上のエラー回復動作を実行することと、のためのものである、請求項１に記載の記憶デバイス。
【請求項７】
前記要求の前記１つ以上の動作が、読み出し動作及び書き込み動作の両方の混合作業負荷を含む、請求項１に記載の記憶デバイス。
【請求項８】
前記実行時間閾値は、前記要求を行うための平均的な実行時間と等しい、請求項１に記載の記憶デバイス。
【請求項９】
前記制御器は、
前記記憶デバイスのリソースに関して最優先されるように前記１つ以上のエラー回復動作を割り当てるためのものである、請求項１に記載の記憶デバイス。
【請求項１０】
前記記憶デバイスが、ソリッドステートドライブ（ＳＳＤ）記憶デバイスである、請求項１に記載の記憶デバイス。
【請求項１１】
前記１つ以上のエラー回復動作が、前記記憶デバイスの１つ以上のメモリセルを再読み出しすることを含む、請求項１に記載の記憶デバイス。
【請求項１２】
前記１つ以上のエラー回復動作が、外部コード回復動作を含む、請求項１に記載の記憶デバイス。
【請求項１３】
記憶デバイスにおける性能変動を制限する方法であって、
前記記憶デバイスの制御器によって、１つ以上の動作を行う要求を受信することと、
前記要求の応答時間を推定することであって、前記応答時間は、前記要求を部分的に実行するために前記制御器が要する時間を示す、推定することと、
前記応答時間が実行時間閾値を超えていることを決定することと、
前記応答時間が前記実行時間閾値を超えているという決定に際し、１つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、を含む、方法。
【請求項１４】
前記制御器によって前記要求の到着時刻を決定することを更に含み、前記到着時刻は、前記制御器が前記要求を受信した時刻である、請求項１３に記載の方法。
【請求項１５】
前記応答時間を推定することが、
現在時刻を前記到着時刻と比較することと、
前記現在時刻と前記到着時刻との間の差異に基づき、前記応答時間を決定することと、を更に含む、請求項１４に記載の方法。
【請求項１６】
前記要求に含まれる前記１つ以上の動作の実行中にエラーが発生したことを決定することと、
検出された前記エラーを補償するために前記１つ以上のエラー回復動作を実行することと、を更に含む、請求項１３に記載の方法。
【請求項１７】
前記実行時間閾値は、前記要求を行うための平均的な実行時間と等しい、請求項１３に記載の方法。
【請求項１８】
前記１つ以上のエラー回復動作を実行するためにより多くのリソースを割り当てることが、前記記憶デバイスのリソースに関して最優先されるように前記１つ以上のエラー回復動作を割り当てることを更に含む、請求項１３に記載の方法。
【請求項１９】
前記１つ以上のエラー回復動作が、前記記憶デバイスの１つ以上のメモリセルを再読み出しすることを含む、請求項１３に記載の方法。
【請求項２０】
記憶デバイスにおける性能変動を制限するために構成されたコンピューティングデバイスであって、
プロセッサと、
前記プロセッサと電子通信するメモリと、を備え、前記メモリは、前記プロセッサによって実行されると、
前記記憶デバイスの制御器によって、１つ以上の動作を行う要求を受信するステップと、
前記要求の応答時間を推定するステップであって、前記応答時間は、前記要求を部分的に実行するために前記制御器が要する時間を示す、ステップと、
前記応答時間が実行時間閾値を超えていることを決定するステップと、
前記応答時間が前記実行時間閾値を超えているという決定に際し、１つ以上のエラー回復動作を実行するために追加のリソースを割り当てるステップと、を前記プロセッサに行わせるコンピュータ実行可能命令を記憶する、コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、記憶デバイスにおける性能変動を制限するための技術に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
本開示は、記憶デバイスにおける性能変動を制限するための方法及びシステムを対象とする。いくつかの実施形態では、本システム及び方法は、記憶デバイスによって受信された作業要求を実行するために追加のリソースを割振り得る。
【０００３】
記憶デバイスにおける性能変動を制限するためのシステムを含む記憶デバイスが記載される。一実施形態では、記憶デバイスは、１つ以上の動作を行う要求を受信することと、要求の応答時間を推定することとであって、応答時間は、要求を部分的に実行するために制御器が要する時間を示す、推定することと、応答時間が実行時間閾値を超えていることを決定することと、応答時間が実行時間閾値を超えているという決定に際し、１つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、を行うように構成された制御器を含んでもよい。
【０００４】
記憶デバイスの制御器は、要求の到着時刻を決定するように構成されてもよく、到着時刻は、制御器が要求を受信した時刻である。制御器は、到着時刻を要求にタイムスタンプしてもよく、又は要求の到着時刻を到着ログに記録してもよい。制御器は、現在時刻を到着時刻と比較して、現在時刻と到着時刻との差異に基づき、応答時間を決定するように構成されてもよい。制御器は、要求に含まれる１つ以上の動作の実行中にエラーが発生したことを決定し、検出されたエラーを補償するために１つ以上のエラー回復動作を実行するように更に構成されてもよい。要求の１つ以上の動作は、読み出し動作及び書き込み動作の両方の混合作業負荷を含んでもよい。実行時間閾値は、要求を行うための平均的な実行時間と等しくてもよい。制御器は、記憶デバイスのリソースに関して最優先されるように１つ以上のエラー回復動作を割り当てるように構成されてもよい。記憶デバイスは、ソリッドステートドライブ（ＳＳＤ）記憶デバイスであってもよい。１つ以上のエラー回復動作は、記憶デバイスの１つ以上のメモリセルの再読み出しを含んでもよい。１つ以上のエラー回復動作は、外部コード回復動作を含んでもよい。
【０００５】
記憶デバイスにおける性能変動を制限するための方法もまた記載される。一実施形態では、本方法は、記憶デバイスの制御器によって、１つ以上の動作を行う要求を受信することと、要求の応答時間を推定することであって、応答時間は、要求を部分的に実行するために制御器が要する時間を示す、推定することと、応答時間が実行時間閾値を超えていることを決定することと、応答時間が実行時間閾値を超えているという決定に際し、１つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、を含んでもよい。
【０００６】
記憶デバイスにおける性能変動を制限するための装置もまた記載される。一実施形態では、装置は、プロセッサと、プロセッサと電子通信するメモリと、メモリ内に記憶された命令と、を含んでもよい。記憶デバイスの制御器によって、１つ以上の動作を行う要求を受信するステップと、要求の応答時間を推定するステップであって、応答時間は、要求を部分的に実行するために制御器が要する時間を示す、ステップと、応答時間が実行時間閾値を超えていることを決定するステップと、応答時間が実行時間閾値を超えているという決定に際し、１つ以上のエラー回復動作を実行するために追加のリソースを割り当てるステップと、を行うための命令は、プロセッサによって実行可能である。
【０００７】
以下の詳細な説明がより良く理解され得るように、本開示に従う例の特徴及び技術的利点をやや大まかに上記で概説した。追加の特徴及び利点は、以下に記載される。開示される概念及び具体例は、本開示と同じ目的を成し遂げるために変更するか、又は他の構造を設計するための基礎として容易に利用され得る。かかる均等の構造は、添付の特許請求の範囲の範疇を逸脱するものではない。その構成及び動作方法を含む、本明細書に開示される概念の特質は、関連する利点と併せて、添付の図面と関連して検討したとき、以下の記載からより良く理解されるであろう。図面のそれぞれは、特許請求の範囲の制限の定めとしてではなく、例証及び説明の目的でのみ提供される。
【０００８】
本開示の性質及び利点の更なる理解は、以下の図面の参照によって実現され得る。添付の図面において、同様の構成要素又は特徴は、同じ参照符号を有し得る。
【図面の簡単な説明】
【０００９】
【図１】様々な実施形態に従う、コンピュータデバイスにおける性能を制限するためのシステムの例のブロック図である。
【図２】本開示の様々な態様に従う、図１のシステムの一実施形態の簡略化されたブロック図を示す。
【図３】本開示の様々な態様に従う、１つ以上のソフトウェア構成要素の簡略化されたブロック図を示す。
【図４】本開示の様々な態様に従う、作業要求を実行するための例証的なプロセスの簡略化されたグラフ表示を示す。
【図５】本開示の様々な態様に従う、作業要求を実行するための総応答時間の分布の簡略化されたグラフ表示を示す。
【図６】本開示の様々な態様に従う方法の一例を例証する簡略化されたフローチャートを示す。
【発明を実施するための形態】
【００１０】
以下は、概して、記憶デバイスにおける性能変動を制限することに関する。一実施形態では、記憶デバイスは、しばしば、一貫した性能を提供することが求められる。例えば、大きなデータセンターは、特定かつ短い時間枠内でデータを記憶／配信できると顧客に伝えることが可能であることを望む。かくして、記憶デバイスの設計者は、応答時間の変動を調査し、典型的には、応答時間外れ値を除去しようとする。
【００１１】
加えて、記憶デバイスのユーザはまた、その記憶デバイスが、記憶されるデータにいかなるエラーも導入しないことを望む。記憶デバイスは、多様な方法を通して、データにエラーを導入し得る。例えば、マルチレベルセル（ＭＬＣ）技術を使用するソリッドステートドライブ（ＳＳＤ）は、電荷レベルを不正確に解釈することにより、読み出し又は書き込みエラーをデータに導入し得る。ＭＬＣ  ＳＳＤは、単一のセル内に２ビットのデータを記憶するように設計される。結果的に、ＭＬＣ  ＳＳＤの各セルは、浮遊ゲート内に記憶された電荷の異なる量を表す、４つの状態を示すことができる。ＭＬＣ  ＳＳＤは、４つの電荷レベル間（シングルレベルセル（ＳＬＣ）ＳＳＤで見出される典型的な２つの電荷レベルの代わりに）で区別しなければならないため、様々な電荷レベル間の区別は、それほど明確ではない場合もある。かくして、ＳＬＣ  ＳＳＤよりもＭＬＣ  ＳＳＤの方が、セルの電荷レベルを不正確に誤って解釈しやすくなり、それにより不正確なデータを生成しやすくなる。
【００１２】
エラーを克服するために、典型的な記憶デバイスは、エラー回復の様々な方法を用い得る。例えば、記憶デバイスがデータ内に存在し得るエラーを検出すると、記憶デバイスは、エラーを修正するための再読み出しコマンドを実施してもよい。生成されるデータの品質を向上させながら、エラー回復動作を実施することは、要求を満たすための応答時間に変動を来し得る。したがって、データの正確性とデータ配信のスピードとの間のトレードオフがあり得る。更に、記憶デバイスによってエラー回復動作が使用される割合は、しばしば、システムに依存する。記憶デバイスのライフサイクルのある時点において、エラー回復動作は、１００個の作業要求毎に約１回の割合で発動され得る。
【００１３】
下記により詳細に記載されるシステム及び方法は、エラー回復動作の使用に起因する応答時間の変動を低減するように構成される。一実施形態では、本明細書に記載されるシステム及び方法は、行うのに最も長い時間を要する要求への応答時間を低減するように構成される。
【００１４】
いくつかの実施形態では、記憶デバイスは、記憶デバイスによって受信された各要求の応答時間を監視してもよい。作業要求の応答時間が実行閾値を超えたとき、記憶デバイスは、作業要求の実行のために、追加のコンピューティングリソースを割り振ることになる。いくつかの実施形態では、エラー回復動作がデータ内のエラーを修正するために使用されているため、応答時間は実行閾値を超える。かかる実施形態では、記憶デバイスは、エラー回復動作を実行するために、追加のリソースを割り振ることになる。記憶デバイスによって行われている他の作業要求、操作、及び動作よりもエラー回復動作を優先させることで、外れ値である作業要求への応答時間は低減され、応答時間は、作業要求への平均的な応答時間に効果的に引き寄せられる。加えて、応答時間が長すぎる作業要求へ追加のリソースを割り振ることは、作業要求を実行するのにそれほど多くのリソースが利用可能ではなくなるため、他の要求がややより長い応答時間を有することをもたらし得る。これらのシステム及び方法の結果は、作業要求の実行への応答時間の変動が最小化されることである。
【００１５】
図１は、本明細書に記載される方法を実施するためのシステム１００の一実施形態を例証するブロック図である。システム１００は、デバイス１０５と、記憶媒体１１０と、を含み得る。記憶媒体１１０には、ハードディスクドライブ、ソリッドステートドライブ、並びにハードディスク及びソリッドステートドライブの両方を含むハイブリッドドライブのうちの任意の組み合わせが含まれ得る。いくつかの実施形態では、本明細書に記載されるシステム及び方法は、単一のデバイス（例えば、デバイス１０５）上で行われてもよい。いくつかの場合では、本明細書に記載される方法は、複数の記憶デバイス又は記憶デバイスのネットワーク上で行われてもよい。デバイス１０５の例としては、記憶装置サーバ、記憶装置筐体、記憶装置制御器、分散型記憶装置システム内の記憶装置ドライブ、クラウド型記憶装置システム内の記憶装置ドライブ、パーソナルコンピューティングデバイス上の記憶デバイス、サーバ上の記憶デバイス等が挙げられる。いくつかの構成では、デバイス１０５は、性能モニター１３０を含んでもよい。一例において、デバイス１０５は、記憶媒体１１０に連結されてもよい。いくつかの実施形態では、デバイス１０５及び記憶媒体１１０は、フラッシュメモリ又はソリッドステートドライブの構成要素であってもよい。代替的には、デバイス１０５は、記憶媒体１１０のホスト（例えば、オペレーティングシステム、ホストハードウェアシステム等）の構成要素であってもよい。
【００１６】
一実施形態では、デバイス１０５は、１つ以上のプロセッサ、メモリ、及び／又は１つ以上の記憶デバイスを有するコンピューティングデバイスであってもよい。いくつかの場合では、デバイス１０５は、有線又は無線接続を使用して記憶媒体１１０と通信してもよい。いくつかの実施形態では、デバイス１０５は、自家用又は業務用のクラウドドライブを含んでもよい。一実施形態では、デバイス１０５は、スイッチ、ルータ、アクセスポイント等のネットワークデバイスを含んでもよい。一例において、デバイス１０５は、データストリームを受信し、データを記憶及び／若しくは処理し、かつ／又は１つ以上のローカル及び／若しくはリモートコンピューティングデバイスから、そこへ、若しくはそれと共にデータを送るために動作可能である。
【００１７】
デバイス１０５は、データベースを含んでもよい。いくつかの場合では、データベースは、デバイス１０５に内蔵されていてもよい。例えば、記憶媒体１１０がデータベースを含んでもよい。追加的に、又は代替的に、データベースは、データベースへの有線及び／又は無線接続を含んでもよい。追加的に、本明細書で更に詳細に記載されるように、ソフトウェア及び／又はファームウェア（例えば、メモリに記憶された）は、デバイス１０５のプロセッサ上で実行されてもよい。プロセッサ上で実行されたかかるソフトウェア及び／又はファームウェアは、デバイス１０５が、本明細書に記載される動作に関連するシグナルを監視、処理、要約、提示、及び／又は送信することをもたらすために動作可能である。
【００１８】
いくつかの実施形態では、記憶媒体１１０は、１つ以上のネットワークを介してデバイス１０５に接続し得る。ネットワークの例としては、クラウドネットワーク、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、バーチャル私設ネットワーク（ＶＰＮ）、パーソナルエリアネットワーク、近距離無線通信（ＮＦＣ）、電気通信ネットワーク、無線ネットワーク（例えば、８０２．１１を使用する）、並びに／又は携帯電話ネットワーク（例えば、３Ｇ及び／若しくはＬＴＥを使用する）等が挙げられる。いくつかの構成では、ネットワークには、インターネット及び／又はイントラネットが含まれ得る。デバイス１０５は、有線通信リンク、無線通信リンク、又はこの２つの組み合わせを介してネットワーク上でシグナルを受信及び／又は送信し得る。いくつかの実施形態では、ユーザは、ローカルコンピューティングデバイス、リモートコンピューティングデバイス、及び／又はネットワークデバイスを介して、デバイス１０５の機能にアクセスし得る。例えば、いくつかの実施形態では、デバイス１０５は、ユーザとインターフェイスで接続するアプリケーションを含み得る。いくつかの場合では、デバイス１０５は、ネットワークデバイス、リモートコンピューティングデバイス、及び／又はローカルコンピューティングデバイスの１つ以上の機能とインターフェイスで接続するアプリケーションを含み得る。
【００１９】
一実施形態では、記憶媒体１１０は、デバイス１０５に内蔵されていてもよい。一例として、デバイス１０５は、記憶媒体１１０の記憶媒体とインターフェイスで接続する記憶装置制御器を含み得る。性能モニター１３０は、ペンディング要求の応答時間が実行時間閾値を超えているという決定に少なくとも部分的に基づき、ペンディング要求を実行するために追加のリソースを割り当ててもよい。
【００２０】
図２は、本開示の様々な態様に従う、データの電子的記憶に使用される記憶デバイス２０５の一実施形態のブロック図２００を示す。記憶デバイス２０５は、図１を参照して記載されたシステム１００の１つ以上の態様の一例であり得る。記憶デバイス２０５は、デバイス１０５、記憶媒体１１０、又はこの２つの組み合わせの一例であり得る。いくつかの実施形態では、記憶デバイス２０５は、データを記憶するためのＳＳＤ記憶デバイスとして具現化され得る。記憶デバイス２０５は、ドライブ制御器２１０、ドライブバッファ２１５、ホストインターフェイスロジック２２０、ドライブ媒体２２５、エラー制御ユニット２４５（ＥＣＣユニット２４５）、及び性能モニター１３０を含んでもよい。これらの構成要素のそれぞれは、１つ以上のネットワークを通して、直接的に及び／又は間接的に、互いに及び／又は他の構成要素と通信してもよい。
【００２１】
記憶デバイス２０５の１つ以上の構成要素は、個別に又は集合で、ハードウェア内の適用可能な機能のうちのいくつか又は全てを行うように適合された１つ以上の特定用途向け集積回路（ＡＳＩＣ）を使用して実施されてもよい。代替的には、機能は、１つ以上の集積回路上の、１つ以上の他の処理ユニット（又はコア）によって行われてもよい。他の例では、当該技術分野において既知の任意の様式でプログラムされてよい、他の種類の集積回路（例えば、ストラクチャード／プラットフォームＡＳＩＣ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及び他のセミカスタムＩＣ）を使用してもよい。各構成要素の機能はまた、メモリ内で具現化され、１つ以上の汎用及び／又は特定用途向けプロセッサによって実行されるようにフォーマットされた命令によって、全体的に又は部分的に実施されてもよい。
【００２２】
一実施形態では、ドライブ制御器２１０は、プロセッサ２３０、バッファマネージャ２３５、及び媒体制御器２４０を含んでもよい。ドライブ制御器２１０は、記憶デバイス２０５と記憶デバイス２０５のホスト（例えば、オペレーティングシステム、ホストハードウェアシステム等）との間のインターフェイスであるホストインターフェイスロジック２２０と共に、プロセッサ２３０を介して読み出し及び書き込み要求を処理し得る。ドライブバッファ２１５は、記憶デバイス２０５の内部動作のためにデータを一時的に保持し得る。例えば、ホストは、ドライブ媒体２２５上にデータを記憶する要求と共に、記憶デバイス２０５にデータを送信し得る。ドライブ制御器２１０は、要求を処理し、受信したデータをドライブ媒体２２５内に記憶し得る。いくつかの場合では、ドライブ媒体２２５内に記憶されたデータの一部は、ドライブバッファ２１５にコピーされてもよく、プロセッサ２３０は、このデータのコピーを処理又は変更し、かつ／又はドライブバッファ２１５内に一時的に保持されるデータのコピーに関連する動作を行ってもよい。要求を処理するとき、ドライブ制御器２１０は、ＥＣＣユニット２４５と通信して、データ内に存在し得る任意のエラーを検出して修正してもよい。ＥＣＣユニット２４５は、記憶デバイス２０５に記憶されている又はそこから取り込まれたデータ内に存在するエラーを検出し、データをその適正値に復元するためのエラー回復動作を実施するように構成される。
【００２３】
ドライブ制御器２１０の外に描かれているが、いくつかの実施形態では、性能モニター１３０は、ドライブ制御器２１０内に設置されたソフトウェア、ファームウェア、及び／又はハードウェアを含んでもよい。例えば、性能モニター１３０は、プロセッサ２３０、バッファマネージャ２３５、及び／又は媒体制御器２４０の少なくとも一部を含んでもよい。一例において、性能モニター１３０は、プロセッサ２３０、バッファマネージャ２３５、及び／又は媒体制御器２４０によって実行されるように構成された１つ以上の命令を含んでもよい。性能モニター１３０は、ペンディング要求の応答時間が実行時間閾値を超えているという決定に少なくとも部分的に基づき、ペンディング要求を実行するために追加のリソースを割り当てるように構成されてもよい。
【００２４】
例証的な実施形態では、ドライブ媒体２２５は、ＳＳＤ記憶デバイスに使用される任意の種類のＮＡＮＤセル技術を備えてもよい。いくつかの実施形態では、ドライブ媒体２２５は、ＳＬＣ  ＮＡＮＤ技術、ＭＬＣ  ＮＡＮＤ技術、トリレベルセル（ＴＬＣ）ＮＡＮＤ技術、様々なＮＡＮＤ技術の任意の組み合わせ、又は更には他のレベルのセルＮＡＮＤ技術（例えば、４、５、６等）を備えてもよい。図２に示されるように、ドライブ媒体２２５は、ＳＬＣブロック２５０、ＭＬＣ又はＴＬＣブロック２６０、及び内部ページバッファ２７０を例証的に含む。ＳＬＣブロック２５０は、２５５−１〜２５５−ｎのうちの任意の数のＳＬＣページを含む。ＭＬＣ／ＴＬＣブロック２６０は、２６５−１〜２６５−ｎのうちの任意の数のＭＬＣ又はＴＬＣページを含む。
【００２５】
図３は、システム１００上の性能モニター１３０によって作り出された環境３００のブロック図を示す。環境３００は、１つ以上のプロセッサ、メモリ、及び／又は１つ以上の記憶デバイスを使用して実施されてもよい。性能モニター１３０は、要求管理構成要素３０５、エラー検出構成要素３１０、回復動作構成要素３１５、応答時間構成要素３２０、リソース割振り構成要素３２５、及び出力構成要素３３０を含んでもよい。性能モニター１３０は、図１及び／又は図２の性能モニター１３０の一例であり得る。性能モニター１３０の構成要素は、以下により詳細に記載される方法６００に関連して記載される機能のいずれかを行うように構成されてもよい。
【００２６】
要求管理構成要素３０５は、１つ以上の他のコンピューティングデバイス（例えば、ホストコンピューティングデバイス）から作業要求を受信するように構成される。作業要求を受信すると、要求管理構成要素３０５は、作業要求の到着時刻を決定するように構成されてもよい。各作業要求の到着時刻は、作業要求の応答時間及び総応答時間を決定することの一部として追跡され得る。
【００２７】
要求管理構成要素３０５はまた、限られた利用可能なコンピューティングリソースのために競合する複数の作業要求を仲介するように構成されてもよい。要求管理構成要素３０５は時々、即時に完了することができる作業要求よりも多い作業要求を受信し得る。そのような状況で、要求管理構成要素３０５は、どの作業要求をまず実行して完了させ、どの作業要求は実行及び完了されるために後の時点まで待つことができるか、決定しなければならない場合がある。
【００２８】
エラー検出構成要素３１０は、作業要求に含まれる１つ以上の動作を実行中にエラーが発生したかどうかを決定するように構成される。作業要求の実行中、エラー又は障害はある程度の確率で発生することになる。エラー検出構成要素３１０は、いくつかのエラー検出アルゴリズムを実行して、作業要求の対象である基礎となるデータ内、又は動作自体の実行中のいずれかでエラーが発生したかどうかを決定するように構成されてもよい。
【００２９】
回復動作構成要素３１５は、検出されたエラーを補償するために１つ以上のエラー回復動作を実行するように構成される。回復動作構成要素３１５によって実施される特定のエラー回復動作は、検出されたエラーの種類次第であり得る。
【００３０】
応答時間構成要素３２０は、性能モニター１３０によって受信される作業要求の応答時間を推定及び／又は決定するように構成される。いくつかの実施形態では、特定の作業要求の応答時間を推定することは、現在時刻を特定の作業要求の到着時刻と比較することと、現在時刻と到着時刻との間の差異に少なくとも部分的に基づいて応答時間を決定することと、を含み得る。他の実施形態では、作業要求の応答時間を決定するために、他の推定技法を使用してもよい。
【００３１】
応答時間構成要素３２０はまた、応答時間が実行時間閾値を超えているかどうかを決定するように構成される。これは、応答時間を実行時間閾値に対して比較することで行われる。いくつかの実施形態では、実行時間閾値は、要求を行うための平均的な実行時間と等しい。他の実施形態では、実行時間閾値は、ユーザ入力を通してユーザによって設定及び／又は変更されてもよい。
【００３２】
リソース割振り構成要素３２５は、作業要求の応答時間が実行時間閾値を超えているという決定に応じて、作業要求を完了させるために追加のコンピューティングリソースを割り当てるように構成される。いくつかの実施形態では、リソース割振り構成要素３２５は、作業要求を実行するために追加のコンピューティングリソースを割り当て、他のプロセスを保留させてもよい。他の実施形態では、リソース割振り構成要素３２５は、性能モニター１３０によって行われている１つ以上のエラー回復動作を実行するために追加のリソースを割り当ててもよい。
【００３３】
出力構成要素３３０は、作業要求が完了したかどうかを決定するように構成される。作業要求が完了している場合、出力構成要素は、完了した作業要求の結果を作業要求の発信者（例えば、ホストコンピューティングデバイス）に出力するように構成される。いくつかの実施形態では、出力構成要素３３０は、作業要求の完了時刻を決定するように構成される。出力構成要素３３０は、完了時刻と到着時刻との差異を取ることによって総応答時間を決定し得る。
【００３４】
図４は、本開示の様々な態様に従う、作業要求を実行する例証的なプロセス４００のグラフ表示を示す。プロセス４００の少なくとも１つの態様は、図１のシステム１００、図２の記憶デバイス２０５、並びに／又は図１、２、及び３に描かれる性能モニター１３０と共に実施され得る。プロセス４００は、タイムライン４０２に沿って生じるものとして描かれる。図４の様々なステップはタイムライン４０２に沿った特定の時間に発生するものとして描かれているが、各ステップの発生の正確な及び相対的な時間は、異なる順序、示されていない追加のステップ、並びに任意の所与のステップを満たすためのより短い及びより長い時間を含め、示されるものとは異なり得ることを理解されたい。
【００３５】
ステップ４０４で、システム１００は作業要求を受信する。本出願で使用される場合、作業要求は、ホストデバイスから受信される、システム１００が行うことが可能な任意の機能を行うための任意のコマンドを含んでもよい。例えば、作業要求は、記憶媒体１１０にデータを書き込む、又は記憶媒体１１０からデータを読み出す要求を含んでもよい。典型的には、システム１００は、一度に複数の要求に対応するための何らかのプロセスを有することになる。例えば、システム１００は、先入れ先出し（ＦＩＦＯ）方式で作業要求を実行してもよく、又はシステム１００は、異なる作業要求が様々な要因に基づく異なる優先度を有する、優先方式で作業要求を実行してもよい。
【００３６】
システム１００が、作業要求が実行される用意ができたと決定すると、ステップ４０６で、システム１００は、作業要求の実行を開始することになる。作業要求の実行中、システム１００は、ステップ４０８で、１つ以上のエラーが存在することを決定し得る。これらのエラーには、記憶媒体１１０に書き込まれているデータ内、記憶媒体１１０から読み出されているデータ内のエラーが含まれ得、又は作業要求の実行中に発生した他のエラーが含まれ得る。検出されたエラーが特定の種類のものである場合、ステップ４１０で、システム１００は、識別されたエラーを修正するために１つ以上のエラー回復動作を行ってもよい。本出願で使用される場合、エラー回復動作は、任意の種類のデータのための正しい値を検証又は決定することができる、任意のプロセス又は動作を含んでもよい。いくつかの実施形態では、ステップ４０８又はステップ４１０は、システム１００によって行われる場合も、行われない場合もある。
【００３７】
任意のエラー回復動作が完了すると、ステップ４１２で、システム１００は作業要求を完了し、作業要求の要求された結果を出力する。作業要求の受信（ステップ４０４）から作業要求の完了（ステップ４１２）までの時間が、作業要求の総応答時間４１４である。本出願で使用される場合、応答時間は、作業要求を部分的に実行するための時間を示す。つまり、応答時間は、特定の作業要求の受信時に開始し、ステップ４１２で作業要求が完了するまでのいくつかの時間のいずれかを表し得る。例えば、作業要求の応答時間は、作業要求の受信（ステップ４０４）とシステムが作業要求の実行を開始したとき（ステップ４０６）との間の時間を示してもよく、又は応答時間は、作業要求の実行の開始（ステップ４０６）とエラー回復動作の実行の開始（ステップ４１０）との間の時間を示してもよい。特定の作業要求の応答は、定義上は、特定の作業要求の総応答時間４１４よりも短い。
【００３８】
図５は、本開示の様々な態様に従う、作業要求を実行するための総応答時間４１４の分布５０２のグラフ表示５００を示す。分布５０２は、上記に記載されるシステム１００の作業要求の応答時間の仮定の分布を表し、例証的な目的においてのみここに提示される。
【００３９】
例証的な分布５０２は、システムの作業要求の総応答時間によって各作業要求をプロットする。横軸は、作業要求の総応答時間４１４を表す。縦軸は、特定の総応答時間４１４を有した作業要求の数を表す。図５に示されるように、ほとんどの作業要求は、比較的短い総応答時間４１４を有し、システム１００によってかなり迅速に完了されている。しかしながら、いくつかの作業要求は、より長い総応答時間４１４を有し、分布５０２の外れ値５０４と称され得る。典型的には、外れ値５０４作業要求の総応答時間４１４は、システム１００によって行われるいくつかのエラー回復動作に起因する。作業要求中に行われるエラー回復動作が多いほど、作業要求の受信（ステップ４０４）と作業要求の完了（ステップ４１２）との間の時間が多くなる。外れ値５０４は、システム１００によって行われる作業要求の総応答時間４１４における変動のほとんどを説明する。
【００４０】
分布５０２に基づき、システム１００のための総応答時間４１４の平均が決定され得る。平均的な総応答時間は、分布５０２の平均値５０６、中央値５０８、又は最多値５１０によって特徴付けられ得る。他の実施形態では、平均的な総応答時間は、別の機能又はアルゴリズムによって特徴付けられ得る。前述のように、システム１００又は記憶デバイス２０５のユーザはしばしば、一貫した性能を有することを望む。システム１００による作業要求の実行のための総応答時間における変動を制限するために、性能モニター１３０は、実行時間閾値を超える作業要求に追加のコンピューティングリソースを割り当てるように構成される。
【００４１】
図６は、本開示の様々な態様に従う、記憶デバイスにおける性能変動を制限するための方法６００の一例を例証する簡略化されたフローチャートを示す。方法６００の１つ以上の態様は、コンピューティングシステム（例えば、図１のシステム１００、図２の記憶デバイス２０５、並びに／又は図１、２、及び３に描かれる性能モニター１３０）によって実行される、コンピュータ化プログラム、ルーティン、及び／又は命令として具現化され得る。いくつかの例では、バックエンドサーバ、コンピューティングデバイス、及び／又は記憶デバイスは、以下に記載される機能のうちの１つ以上を行うためのバックエンドサーバ、コンピューティングデバイス、及び／又は記憶デバイスの機能要素を制御するための１つ以上のコードの組を実行し得る。追加的又は代替的には、バックエンドサーバ、コンピューティングデバイス、及び／又は記憶デバイスは、専用ハードウェアを使用して以下に記載される機能のうちの１つ以上を行い得る。
【００４２】
ブロック６０５で、システム１００は、別のコンピューティングデバイス（例えば、ホストコンピューティングデバイス）から作業要求を受信し得る。作業要求は、１つ以上の動作を行うためのシステム１００への命令を含み得る。いくつかの実施形態では、作業要求は、システム１００からの読み出し動作、システム１００への書き込み動作、他の種類の動作を行う要求を含んでもよく、又は作業要求は、任意の種類の動作の混合作業負荷を含んでもよい。
【００４３】
作業要求を受信すると、システム１００は、作業要求の到着時刻を決定するように構成されてもよい。各作業要求の到着時刻は、作業要求の応答時間及び総応答時間を決定することの一部として追跡され得る。いくつかの実施形態では、作業要求は、それらの到着時刻をタイムスタンプされ得る。他の実施形態では、システム１００は、作業要求を到着時刻と相関するログを維持し得る。なお他の実施形態では、作業要求をそれぞれの到着時刻と相関する他の方法がシステム１００によって実施されてもよい。
【００４４】
システム１００はまた、限られた利用可能なコンピューティングリソースのために競合する複数の作業要求を仲介するように構成されてもよい。システム１００は時々、即時に完了することができる作業要求よりも多い作業要求を受信し得る。そのような状況で、システム１００は、どの作業要求をまず実行して完了させ、どの作業要求は実行及び完了されるために後の時点まで待つことができるか、決定しなければならない場合がある。例えば、システム１００は、ＦＩＦＯシステムを使用して、どの作業要求をまず完了させるかを決定してもよい。別の例において、システム１００は、優先システムを使用して、どの作業要求をまず完了させるかを決定してもよい。特定の種類の作業要求が他の種類の作業要求よりも高い優先度を有する、かかる優先システムは、各作業要求の属性に少なくとも部分的に基づいて優先度を決定する。かかる優先システムはまた、別のコンピューティングデバイス（例えば、ホストコンピューティングデバイス）によって決定され、システム１００に送信されてもよい。この場合、システム１００は、他のコンピューティングデバイスによって規定された優先順位で作業要求を実行し得る。他の実施形態では、他の種類の作業要求優先システムが実施されてもよい。
【００４５】
ブロック６１０で、システム１００は、作業要求に含まれる１つ以上の動作（複数可）の実行中にエラーが発生したかどうかを決定する。作業要求の実行中、エラー又は障害はある程度の確率で発生することになる。例えば、読み出し動作中、メモリセル上に存在する電荷が誤って解釈され得、システム１００がメモリセルを「読み違える」ことを引き起こす。このような例において、１として記憶されるはずであったものが、代わりに０として解釈される。これは、基礎となるデータ内のエラーを引き起こす。システム１００は、いくつかのエラー検出アルゴリズムを実行して、作業要求の対象である基礎となるデータ内、又は動作自体の実行中のいずれかでエラーが発生したかどうかを決定するように構成されてもよい。検出され得るエラーの種類には、読み出しディスターブによって誘発されたエラー（多すぎる読み出しは電荷を漏洩し、値をシフトする）、近くのセルの全てをプログラミングしないことによるオーバープログラムエラー、及び／又はアンダープログラムエラーが含まれる。エラー検出アルゴリズムの例としては、Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ符号（ＢＣＨ）、低密度パリティ検査（ＬＤＰＣ）、又は他の種類の適切なエラー検出アルゴリズムが挙げられる。
【００４６】
ブロック６１０でエラーが検出されなかった場合、システム１００はブロック６２０に移り、方法６００の次のステップに進む。１つ以上のエラーが検出された場合、システム１００はブロック６１５に移り、検出されたエラーを補償するために１つ以上のエラー回復動作を実行する。システム１００によって実施される特定のエラー回復動作は、検出されたエラーの種類次第であり得る。いくつかの実施形態では、エラー回復動作は、記憶デバイスの１つ以上のメモリセルを再読み出しして値を比較することでどのデータ値が正しい値であるかを決定することを含み得る。他の実施形態では、エラー回復動作には、外部コード回復動作、フラッシュメモリ上の電圧シフト、反復エラー修正コードアルゴリズムの別の反復、又は任意の他の種類のエラー修正コードアルゴリズムが含まれ得る。
【００４７】
ブロック６２０で、システム１００は、システム１００によって受信される作業要求の応答時間を推定する。作業要求の応答時間は、作業要求を部分的に実行するためにシステム１００が要する時間を示す。作業要求の総応答時間は、作業要求を完了するためにシステム１００が要する時間を示す。いくつかの実施形態では、特定の作業要求の応答時間を推定することは、現在時刻を特定の作業要求の到着時刻と比較することと、現在時刻と到着時刻との間の差異に少なくとも部分的に基づいて応答時間を決定することと、を含んでもよい。他の実施形態では、作業要求の応答時間を決定するために、他の推定技法を使用してもよい。
【００４８】
ブロック６２５で、システム１００は、応答時間が実行時間閾値を超えているかどうかを決定する。これは、応答時間を実行時間閾値に対して比較することで行われる。いくつかの実施形態では、実行時間閾値は、要求を行うための平均的な実行時間と等しい。平均的な実行時間は、完了した作業要求の過去の総応答時間（例えば、図５に示される分布５０２）を表す過去のデータに少なくとも部分的に基づいて決定され得る。いくつかの実施形態では、平均的な実行時間は、図５に表される分布５０２における平均値５０６、中央値５０８、又は最高値５１０のいずれかであり得る。他の実施形態では、平均的な実行時間は、他の種類の平均化アルゴリズムを使用して決定され得る。なお他の実施形態では、実行時間閾値は、過去のデータの平均に基づくのではない場合があり、代わりに他のアルゴリズム又は過去のデータの分析に少なくとも部分的に基づく場合がある。例えば、実行時間閾値は、過去の総応答時間の特定のパーセンタイル値に基づいて設定され得る。なお他の実施形態では、実行時間閾値は、ユーザ入力を通してユーザによって設定及び／又は変更されてもよい。なお他の実施形態では、実行時間閾値は、システム１００のハードウェア、ファームウェア、又はソフトウェアの能力に基づいて決定され得る。
【００４９】
作業要求の応答時間が実行時間閾値を超えていない場合、システム１００は方法６００のブロック６３５に移る。作業要求の応答時間が実行時間閾値を超えている場合、システム１００は方法６００のブロック６３０に移る。ブロック６３０で、システム１００は、作業要求を完了させるために追加のコンピューティングリソースを割り当て、作業要求の総応答時間を低減しようとする。いくつかの場合では、より長い応答時間は、一度に多くの作業要求に対応しすぎることに起因する場合がある。このような場合、システム１００は、作業要求を実行するために追加のコンピュータリソースを割り当て、他のプロセスを保留させることになる。
【００５０】
いくつかの実施形態では、システム１００は、システム１００によって行われている１つ以上のエラー回復動作を実行するために追加のリソースを割り当ててもよい。しばしば、より長い総応答時間は、エラー回復動作の性能に起因することが多い。このような場合、作業要求の推定される総応答時間を低減させるためには、追加のコンピューティングリソースを割り当てることで十分であり得る。いくつかの実施形態では、様々な動作に追加のコンピューティングリソースを割り当てることは、様々な動作のコンピューティングの優先順位を変えることを含み得る。例えば、実行時間閾値を超える応答時間を有する作業要求のエラー回復動作は、コンピューティングリソースに関して最優先され得る。結果的に、システム１００は、優先度のより高い動作が完了するまで他の優先度の低い動作を保留にすることによって、追加のコンピューティングリソースを使用してエラー回復動作を完了させ得る。いくつかの実施形態では、方法６００のブロック６２０、６２５、６３０のうちの１つ以上は、ブロック６１０、６１５が実行される前に実行されてもよい。いくつかの実施形態では、エラー回復動作を実行するために追加のコンピューティングリソースを割り当てるための優先システムは、前述の作業要求を管理するための優先システムとは異なる。
【００５１】
ブロック６３５で、システム１００は、作業要求が完了したかどうかを決定する。作業要求が完了している場合、システム１００は、方法６００のブロック６４０に移る。ブロック６４０で、システム１００は、完了した作業要求の結果を作業要求の発信者（例えば、ホストコンピューティングデバイス）に出力する。作業要求が完了していない場合、システム１００は、ブロック６１０に戻り、ブロック６１０、６１５、６２０、６２５、６３０、６３５を実行する。いくつかの実施形態では、ブロック６３５でシステム１００は、作業要求の完了時刻を決定し得る。システム１００は、完了時刻と到着時刻との差異を取ることによって総応答時間を決定し得る。
【００５２】
方法６００のブロックは、図１〜３に関連して記載される性能モニター１３０及び／又は他の構成要素を使用して行われ得る。例えば、方法６００のステップは、図３に記載される構成要素のいずれかによって実施され得る。このように、方法６００は、記憶デバイスにおける性能変動の制限を提供する。方法６００は単なる１つの実装例であり、方法６００の動作は、再編成、省略、及び／又は他の様式で変更されてもよく、それにより他の実装例も可能であり企図されていることに留意されたい。
【００５３】
添付の図面に関連して上記に説明される詳細な説明は、実施例を記載するものであり、実施され得るか、又は特許請求の範囲内である唯一の実例を表すものではない。「例」及び「例示的な」という用語は、本記載中で使用される場合、「例、実例、又は例証としての役割を果たすこと」を意味し、「好ましい」又は「他の例よりも有利である」ことを意味しない。詳細な説明は、記載される技法の理解を提供する目的で具体的な詳細を含む。しかしながら、これらの技法は、これらの具体的な詳細を伴わずに実践され得る。いくつかの実例では、記載される例の概念を曖昧にすることを避けるために、既知の構造及び装置がブロック図の形式で示される。
【００５４】
情報及びシグナルは、多様な異なる技術及び技法のいずれかを使用して表されてもよい。例えば、上記の記載全体を通して参照され得るデータ、命令、コマンド、情報、シグナル、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁界若しくは磁性粒子、光フィールド若しくは光学粒子、又はこれらの任意の組み合わせによって表され得る。
【００５５】
本開示に関連して記載される様々な例証的なブロック及び構成要素は、本明細書に記載される機能を行うように設計された汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、ＡＳＩＣ、ＦＰＧＡ若しくは他のプログラム可能論理デバイス、分離したゲート若しくはトランジスターロジック、分離したハードウェア構成要素、又はこれらの任意の組み合わせを用いて実施されるか、又は行われ得る。汎用プロセッサはマイクロプロセッサであってもよいが、代替的には、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、及び／又はステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰ及びマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、１つ以上のマイクロプロセッサとＤＳＰコアを合わせて、及び／又は任意の他のかかる構成として実施されてもよい。
【００５６】
本明細書に記載される機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、又はこれらの任意の組み合わせにおいて実施され得る。プロセッサによって実行されるソフトウェア内で実施される場合、機能は、コンピュータ可読媒体上の１つ以上の命令又はコードとしてそこに記憶されるか、又は送られる。他の実施例及び実装例が、本開示及び添付される特許請求の範囲の範疇及び趣旨内にある。例えば、ソフトウェアの性質に起因して、上記の機能は、プロセッサによって実行されるソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、又はこれらのいずれかの組み合わせを使用して実施され得る。機能を実施する特徴はまた、様々な位置に物理的に設置されてもよく、これには、機能の一部が異なる物理的位置で実施されるように分配されることが含まれる。
【００５７】
特許請求の範囲を含め、本明細書で使用される場合、「及び／又は」という用語は、２つ以上の物品の列挙において使用されるとき、列挙された物品のうちの任意の１つを単独で用いてもよく、又は列挙された物品のうちの２つ以上の任意の組み合わせを用いてもよいことを意味する。例えば、組成物が、構成要素Ａ、Ｂ、及び／又はＣを含有すると記載されている場合、組成物はＡのみ、Ｂのみ、Ｃのみ、Ａ及びＢの組み合わせ、Ａ及びＣの組み合わせ、Ｂ及びＣの組み合わせ、又はＡ、Ｂ、及びＣの組み合わせを含有し得る。また、特許請求の範囲を含め、本明細書で使用される場合、物品の列挙（例えば、「のうちの少なくとも１つ」又は「のうちの１つ以上」等の言い回しが前置きにある物品の列挙）中に使用される「又は」は、分離的な列挙を示し、例えば、「Ａ、Ｂ、又はＣのうちの少なくとも１つ」の列挙は、Ａ又はＢ又はＣ又はＡＢ又はＡＣ又はＢＣ又はＡＢＣ（すなわち、Ａ及びＢ及びＣ）を意味する。
【００５８】
加えて、他の構成要素内に含有されるか、又は他の構成要素から分離した構成要素の任意の開示は、１つ以上の一体化構造及び／又は別構造の一部として、全ての、ほとんどの、及び／又はいくつかの要素を組み込むことを含む、複数の他の構成が、同じ機能性を達成するために本質的に実施され得るため、例示的であると見なされるべきである。
【００５９】
コンピュータ可読媒体には、コンピュータプログラムの１つの場所から別の場所への転送を容易にする任意の媒体を含む、コンピュータ記憶媒体及び通信媒体の両方が含まれる。記憶媒体は、汎用又は専用コンピュータによってアクセスされ得る任意の入手可能な媒体であってもよい。限定ではなく、例として、コンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、ＤＶＤ、若しくは他の光学ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、あるいは汎用若しくは専用コンピュータ又は汎用若しくは専用プロセッサによってアクセス可能な命令又はデータ構造の形式で所望のプログラムコード手段を保持又は記憶するために使用され得る任意の他の媒体が含まれ得る。また、任意の接続が、コンピュータ可読媒体と称するにふさわしい。例えば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、ラジオ、及びマイクロ波等の無線技術を使用してウェブサイト、サーバ、又は他の遠隔ソースからソフトウェアが送られた場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、ラジオ、及びマイクロ波等の無線技術は、媒体の定義に含まれ得る。本明細書で使用される場合、ディスク（disk）及びディスク（disc）には、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光学ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、及びブルーレイディスクが含まれ、ディスク（disk）は通常、磁気によってデータを再生し、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれる。
【００６０】
本開示の前述の記載は、当業者が本開示を作製するか、又は使用することを可能にするために提供される。本開示への様々な変更は、当業者には容易に明白であり、本明細書に定義される包括的な原理は、本開示の範囲を逸脱することなく他の変更にも適用され得る。よって、本開示は、本明細書に記載される実施例及び設計に限定されるものではなく、開示される原理及び新規の特徴と一貫して最も幅広い範囲が付与されるものである。
【００６１】
本開示は特に、セキュリティシステム用途に適用され得る。本開示は特に、記憶装置システム用途に適用され得る。いくつかの実施形態では、概念、技術説明、特徴、方法、着想、及び／又は説明は、記憶装置及び／又はデータセキュリティシステム用途に特に適用され得る。特定の用途におけるかかるシステムの明確な利点は、本開示から明白である。
【００６２】
本開示に記載及び／又は例証されるプロセスパラメータ、操作、及びステップは、例としてのみ与えられ、所望のように変更されてもよい。例えば、例証及び／又は記載されるステップが特定の順序で示されるか、又は論じられているが、これらのステップは、必ずしも例証されるか、又は論じられる順序で行われる必要はない。ここに記載及び／又は例証される様々な例示的な方法はまた、ここに記載されるか、又は例証されるステップのうちの１つ以上を省略してもよく、あるいは開示されるものに加えて追加のステップを含んでもよい。
【００６３】
更に、様々な実施形態が完全に機能するコンピューティングシステムの文脈でここに記載及び／又は例証されてきたが、これらの例示的な実施形態のうちの１つ以上は、実際に配信を行うのに使用されるコンピュータ可読媒体の特定の種類にかかわらず、多様な形態でプログラム製品として配信されてもよい。本明細書に開示される実施形態はまた、特定のタスクを行うソフトウェア構成要素を使用して実施されてもよい。これらのソフトウェア構成要素には、スクリプト、バッチ、又はコンピュータ可読記憶媒体若しくはコンピューティングシステム内に記憶され得る他の実行可能ファイルが含まれる。いくつかの実施形態では、これらのソフトウェア構成要素は、コンピューティングシステムがここに開示される例示的な実施形態のうちの１つ以上を行うことを許容及び／又は命令する。
【００６４】
説明の目的におけるこの記載は、特定の実施形態を参照して記載されてきた。しかしながら、上記の例示的な検討は、網羅的であること、又は本システム及び方法を論じられた形態そのものに限定するものとは意図しない。上記の教示を考慮して、多くの変更及び変形が可能である。実施形態は、当業者が本システム、装置、及び方法、並びに企図される特定の用途に好適であり得る様々な変更を含む、様々な実施形態を利用することができるように、本システム及び方法の原理、並びにそれらの実践的な用途を説明するために選択され、記載された。
【図１】
2017215966.tif 000003
【図２】
2017215966.tif 000004
【図３】
2017215966.tif 000005
【図４】
2017215966.tif 000006
【図５】
2017215966.tif 000007
【図６】
2017215966.tif 000008