JP2017215966A - 記憶デバイスにおける性能変動を制限するための技術 - Google Patents

記憶デバイスにおける性能変動を制限するための技術 Download PDF

Info

Publication number
JP2017215966A
JP2017215966A JP2017107789A JP2017107789A JP2017215966A JP 2017215966 A JP2017215966 A JP 2017215966A JP 2017107789 A JP2017107789 A JP 2017107789A JP 2017107789 A JP2017107789 A JP 2017107789A JP 2017215966 A JP2017215966 A JP 2017215966A
Authority
JP
Japan
Prior art keywords
storage device
request
time
response time
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017107789A
Other languages
English (en)
Inventor
デビッド・エス・エブセン
S Ebsen David
ケビン・エイ・ゴメス
A Gomez Kevin
マーク・イシュ
Ix Mark
ダニエル・ジェイ・ベンジャミン
J Benjamin Daniel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2017215966A publication Critical patent/JP2017215966A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】記憶デバイスにおける性能変動を制限するためのシステム及び方法を提供する。【解決手段】記憶デバイスは、1つ以上の動作を行う作業要求を、ホストコンピューティングデバイス等の他のコンピューティングデバイスから受信する。作業要求を完了するためには、応答時間を要する場合がある。いくつかの実施形態では、作業要求の実行の応答時間が閾値を超えた場合、記憶デバイスは、作業要求を完了するために追加のコンピューティングリソースを割り当て得る。【選択図】図6

Description

本開示は、記憶デバイスにおける性能変動を制限するための技術に関する。
本開示は、記憶デバイスにおける性能変動を制限するための方法及びシステムを対象とする。いくつかの実施形態では、本システム及び方法は、記憶デバイスによって受信された作業要求を実行するために追加のリソースを割振り得る。
記憶デバイスにおける性能変動を制限するためのシステムを含む記憶デバイスが記載される。一実施形態では、記憶デバイスは、1つ以上の動作を行う要求を受信することと、要求の応答時間を推定することとであって、応答時間は、要求を部分的に実行するために制御器が要する時間を示す、推定することと、応答時間が実行時間閾値を超えていることを決定することと、応答時間が実行時間閾値を超えているという決定に際し、1つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、を行うように構成された制御器を含んでもよい。
記憶デバイスの制御器は、要求の到着時刻を決定するように構成されてもよく、到着時刻は、制御器が要求を受信した時刻である。制御器は、到着時刻を要求にタイムスタンプしてもよく、又は要求の到着時刻を到着ログに記録してもよい。制御器は、現在時刻を到着時刻と比較して、現在時刻と到着時刻との差異に基づき、応答時間を決定するように構成されてもよい。制御器は、要求に含まれる1つ以上の動作の実行中にエラーが発生したことを決定し、検出されたエラーを補償するために1つ以上のエラー回復動作を実行するように更に構成されてもよい。要求の1つ以上の動作は、読み出し動作及び書き込み動作の両方の混合作業負荷を含んでもよい。実行時間閾値は、要求を行うための平均的な実行時間と等しくてもよい。制御器は、記憶デバイスのリソースに関して最優先されるように1つ以上のエラー回復動作を割り当てるように構成されてもよい。記憶デバイスは、ソリッドステートドライブ(SSD)記憶デバイスであってもよい。1つ以上のエラー回復動作は、記憶デバイスの1つ以上のメモリセルの再読み出しを含んでもよい。1つ以上のエラー回復動作は、外部コード回復動作を含んでもよい。
記憶デバイスにおける性能変動を制限するための方法もまた記載される。一実施形態では、本方法は、記憶デバイスの制御器によって、1つ以上の動作を行う要求を受信することと、要求の応答時間を推定することであって、応答時間は、要求を部分的に実行するために制御器が要する時間を示す、推定することと、応答時間が実行時間閾値を超えていることを決定することと、応答時間が実行時間閾値を超えているという決定に際し、1つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、を含んでもよい。
記憶デバイスにおける性能変動を制限するための装置もまた記載される。一実施形態では、装置は、プロセッサと、プロセッサと電子通信するメモリと、メモリ内に記憶された命令と、を含んでもよい。記憶デバイスの制御器によって、1つ以上の動作を行う要求を受信するステップと、要求の応答時間を推定するステップであって、応答時間は、要求を部分的に実行するために制御器が要する時間を示す、ステップと、応答時間が実行時間閾値を超えていることを決定するステップと、応答時間が実行時間閾値を超えているという決定に際し、1つ以上のエラー回復動作を実行するために追加のリソースを割り当てるステップと、を行うための命令は、プロセッサによって実行可能である。
以下の詳細な説明がより良く理解され得るように、本開示に従う例の特徴及び技術的利点をやや大まかに上記で概説した。追加の特徴及び利点は、以下に記載される。開示される概念及び具体例は、本開示と同じ目的を成し遂げるために変更するか、又は他の構造を設計するための基礎として容易に利用され得る。かかる均等の構造は、添付の特許請求の範囲の範疇を逸脱するものではない。その構成及び動作方法を含む、本明細書に開示される概念の特質は、関連する利点と併せて、添付の図面と関連して検討したとき、以下の記載からより良く理解されるであろう。図面のそれぞれは、特許請求の範囲の制限の定めとしてではなく、例証及び説明の目的でのみ提供される。
本開示の性質及び利点の更なる理解は、以下の図面の参照によって実現され得る。添付の図面において、同様の構成要素又は特徴は、同じ参照符号を有し得る。
様々な実施形態に従う、コンピュータデバイスにおける性能を制限するためのシステムの例のブロック図である。 本開示の様々な態様に従う、図1のシステムの一実施形態の簡略化されたブロック図を示す。 本開示の様々な態様に従う、1つ以上のソフトウェア構成要素の簡略化されたブロック図を示す。 本開示の様々な態様に従う、作業要求を実行するための例証的なプロセスの簡略化されたグラフ表示を示す。 本開示の様々な態様に従う、作業要求を実行するための総応答時間の分布の簡略化されたグラフ表示を示す。 本開示の様々な態様に従う方法の一例を例証する簡略化されたフローチャートを示す。
以下は、概して、記憶デバイスにおける性能変動を制限することに関する。一実施形態では、記憶デバイスは、しばしば、一貫した性能を提供することが求められる。例えば、大きなデータセンターは、特定かつ短い時間枠内でデータを記憶/配信できると顧客に伝えることが可能であることを望む。かくして、記憶デバイスの設計者は、応答時間の変動を調査し、典型的には、応答時間外れ値を除去しようとする。
加えて、記憶デバイスのユーザはまた、その記憶デバイスが、記憶されるデータにいかなるエラーも導入しないことを望む。記憶デバイスは、多様な方法を通して、データにエラーを導入し得る。例えば、マルチレベルセル(MLC)技術を使用するソリッドステートドライブ(SSD)は、電荷レベルを不正確に解釈することにより、読み出し又は書き込みエラーをデータに導入し得る。MLC SSDは、単一のセル内に2ビットのデータを記憶するように設計される。結果的に、MLC SSDの各セルは、浮遊ゲート内に記憶された電荷の異なる量を表す、4つの状態を示すことができる。MLC SSDは、4つの電荷レベル間(シングルレベルセル(SLC)SSDで見出される典型的な2つの電荷レベルの代わりに)で区別しなければならないため、様々な電荷レベル間の区別は、それほど明確ではない場合もある。かくして、SLC SSDよりもMLC SSDの方が、セルの電荷レベルを不正確に誤って解釈しやすくなり、それにより不正確なデータを生成しやすくなる。
エラーを克服するために、典型的な記憶デバイスは、エラー回復の様々な方法を用い得る。例えば、記憶デバイスがデータ内に存在し得るエラーを検出すると、記憶デバイスは、エラーを修正するための再読み出しコマンドを実施してもよい。生成されるデータの品質を向上させながら、エラー回復動作を実施することは、要求を満たすための応答時間に変動を来し得る。したがって、データの正確性とデータ配信のスピードとの間のトレードオフがあり得る。更に、記憶デバイスによってエラー回復動作が使用される割合は、しばしば、システムに依存する。記憶デバイスのライフサイクルのある時点において、エラー回復動作は、100個の作業要求毎に約1回の割合で発動され得る。
下記により詳細に記載されるシステム及び方法は、エラー回復動作の使用に起因する応答時間の変動を低減するように構成される。一実施形態では、本明細書に記載されるシステム及び方法は、行うのに最も長い時間を要する要求への応答時間を低減するように構成される。
いくつかの実施形態では、記憶デバイスは、記憶デバイスによって受信された各要求の応答時間を監視してもよい。作業要求の応答時間が実行閾値を超えたとき、記憶デバイスは、作業要求の実行のために、追加のコンピューティングリソースを割り振ることになる。いくつかの実施形態では、エラー回復動作がデータ内のエラーを修正するために使用されているため、応答時間は実行閾値を超える。かかる実施形態では、記憶デバイスは、エラー回復動作を実行するために、追加のリソースを割り振ることになる。記憶デバイスによって行われている他の作業要求、操作、及び動作よりもエラー回復動作を優先させることで、外れ値である作業要求への応答時間は低減され、応答時間は、作業要求への平均的な応答時間に効果的に引き寄せられる。加えて、応答時間が長すぎる作業要求へ追加のリソースを割り振ることは、作業要求を実行するのにそれほど多くのリソースが利用可能ではなくなるため、他の要求がややより長い応答時間を有することをもたらし得る。これらのシステム及び方法の結果は、作業要求の実行への応答時間の変動が最小化されることである。
図1は、本明細書に記載される方法を実施するためのシステム100の一実施形態を例証するブロック図である。システム100は、デバイス105と、記憶媒体110と、を含み得る。記憶媒体110には、ハードディスクドライブ、ソリッドステートドライブ、並びにハードディスク及びソリッドステートドライブの両方を含むハイブリッドドライブのうちの任意の組み合わせが含まれ得る。いくつかの実施形態では、本明細書に記載されるシステム及び方法は、単一のデバイス(例えば、デバイス105)上で行われてもよい。いくつかの場合では、本明細書に記載される方法は、複数の記憶デバイス又は記憶デバイスのネットワーク上で行われてもよい。デバイス105の例としては、記憶装置サーバ、記憶装置筐体、記憶装置制御器、分散型記憶装置システム内の記憶装置ドライブ、クラウド型記憶装置システム内の記憶装置ドライブ、パーソナルコンピューティングデバイス上の記憶デバイス、サーバ上の記憶デバイス等が挙げられる。いくつかの構成では、デバイス105は、性能モニター130を含んでもよい。一例において、デバイス105は、記憶媒体110に連結されてもよい。いくつかの実施形態では、デバイス105及び記憶媒体110は、フラッシュメモリ又はソリッドステートドライブの構成要素であってもよい。代替的には、デバイス105は、記憶媒体110のホスト(例えば、オペレーティングシステム、ホストハードウェアシステム等)の構成要素であってもよい。
一実施形態では、デバイス105は、1つ以上のプロセッサ、メモリ、及び/又は1つ以上の記憶デバイスを有するコンピューティングデバイスであってもよい。いくつかの場合では、デバイス105は、有線又は無線接続を使用して記憶媒体110と通信してもよい。いくつかの実施形態では、デバイス105は、自家用又は業務用のクラウドドライブを含んでもよい。一実施形態では、デバイス105は、スイッチ、ルータ、アクセスポイント等のネットワークデバイスを含んでもよい。一例において、デバイス105は、データストリームを受信し、データを記憶及び/若しくは処理し、かつ/又は1つ以上のローカル及び/若しくはリモートコンピューティングデバイスから、そこへ、若しくはそれと共にデータを送るために動作可能である。
デバイス105は、データベースを含んでもよい。いくつかの場合では、データベースは、デバイス105に内蔵されていてもよい。例えば、記憶媒体110がデータベースを含んでもよい。追加的に、又は代替的に、データベースは、データベースへの有線及び/又は無線接続を含んでもよい。追加的に、本明細書で更に詳細に記載されるように、ソフトウェア及び/又はファームウェア(例えば、メモリに記憶された)は、デバイス105のプロセッサ上で実行されてもよい。プロセッサ上で実行されたかかるソフトウェア及び/又はファームウェアは、デバイス105が、本明細書に記載される動作に関連するシグナルを監視、処理、要約、提示、及び/又は送信することをもたらすために動作可能である。
いくつかの実施形態では、記憶媒体110は、1つ以上のネットワークを介してデバイス105に接続し得る。ネットワークの例としては、クラウドネットワーク、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、バーチャル私設ネットワーク(VPN)、パーソナルエリアネットワーク、近距離無線通信(NFC)、電気通信ネットワーク、無線ネットワーク(例えば、802.11を使用する)、並びに/又は携帯電話ネットワーク(例えば、3G及び/若しくはLTEを使用する)等が挙げられる。いくつかの構成では、ネットワークには、インターネット及び/又はイントラネットが含まれ得る。デバイス105は、有線通信リンク、無線通信リンク、又はこの2つの組み合わせを介してネットワーク上でシグナルを受信及び/又は送信し得る。いくつかの実施形態では、ユーザは、ローカルコンピューティングデバイス、リモートコンピューティングデバイス、及び/又はネットワークデバイスを介して、デバイス105の機能にアクセスし得る。例えば、いくつかの実施形態では、デバイス105は、ユーザとインターフェイスで接続するアプリケーションを含み得る。いくつかの場合では、デバイス105は、ネットワークデバイス、リモートコンピューティングデバイス、及び/又はローカルコンピューティングデバイスの1つ以上の機能とインターフェイスで接続するアプリケーションを含み得る。
一実施形態では、記憶媒体110は、デバイス105に内蔵されていてもよい。一例として、デバイス105は、記憶媒体110の記憶媒体とインターフェイスで接続する記憶装置制御器を含み得る。性能モニター130は、ペンディング要求の応答時間が実行時間閾値を超えているという決定に少なくとも部分的に基づき、ペンディング要求を実行するために追加のリソースを割り当ててもよい。
図2は、本開示の様々な態様に従う、データの電子的記憶に使用される記憶デバイス205の一実施形態のブロック図200を示す。記憶デバイス205は、図1を参照して記載されたシステム100の1つ以上の態様の一例であり得る。記憶デバイス205は、デバイス105、記憶媒体110、又はこの2つの組み合わせの一例であり得る。いくつかの実施形態では、記憶デバイス205は、データを記憶するためのSSD記憶デバイスとして具現化され得る。記憶デバイス205は、ドライブ制御器210、ドライブバッファ215、ホストインターフェイスロジック220、ドライブ媒体225、エラー制御ユニット245(ECCユニット245)、及び性能モニター130を含んでもよい。これらの構成要素のそれぞれは、1つ以上のネットワークを通して、直接的に及び/又は間接的に、互いに及び/又は他の構成要素と通信してもよい。
記憶デバイス205の1つ以上の構成要素は、個別に又は集合で、ハードウェア内の適用可能な機能のうちのいくつか又は全てを行うように適合された1つ以上の特定用途向け集積回路(ASIC)を使用して実施されてもよい。代替的には、機能は、1つ以上の集積回路上の、1つ以上の他の処理ユニット(又はコア)によって行われてもよい。他の例では、当該技術分野において既知の任意の様式でプログラムされてよい、他の種類の集積回路(例えば、ストラクチャード/プラットフォームASIC、フィールドプログラマブルゲートアレイ(FPGA)、及び他のセミカスタムIC)を使用してもよい。各構成要素の機能はまた、メモリ内で具現化され、1つ以上の汎用及び/又は特定用途向けプロセッサによって実行されるようにフォーマットされた命令によって、全体的に又は部分的に実施されてもよい。
一実施形態では、ドライブ制御器210は、プロセッサ230、バッファマネージャ235、及び媒体制御器240を含んでもよい。ドライブ制御器210は、記憶デバイス205と記憶デバイス205のホスト(例えば、オペレーティングシステム、ホストハードウェアシステム等)との間のインターフェイスであるホストインターフェイスロジック220と共に、プロセッサ230を介して読み出し及び書き込み要求を処理し得る。ドライブバッファ215は、記憶デバイス205の内部動作のためにデータを一時的に保持し得る。例えば、ホストは、ドライブ媒体225上にデータを記憶する要求と共に、記憶デバイス205にデータを送信し得る。ドライブ制御器210は、要求を処理し、受信したデータをドライブ媒体225内に記憶し得る。いくつかの場合では、ドライブ媒体225内に記憶されたデータの一部は、ドライブバッファ215にコピーされてもよく、プロセッサ230は、このデータのコピーを処理又は変更し、かつ/又はドライブバッファ215内に一時的に保持されるデータのコピーに関連する動作を行ってもよい。要求を処理するとき、ドライブ制御器210は、ECCユニット245と通信して、データ内に存在し得る任意のエラーを検出して修正してもよい。ECCユニット245は、記憶デバイス205に記憶されている又はそこから取り込まれたデータ内に存在するエラーを検出し、データをその適正値に復元するためのエラー回復動作を実施するように構成される。
ドライブ制御器210の外に描かれているが、いくつかの実施形態では、性能モニター130は、ドライブ制御器210内に設置されたソフトウェア、ファームウェア、及び/又はハードウェアを含んでもよい。例えば、性能モニター130は、プロセッサ230、バッファマネージャ235、及び/又は媒体制御器240の少なくとも一部を含んでもよい。一例において、性能モニター130は、プロセッサ230、バッファマネージャ235、及び/又は媒体制御器240によって実行されるように構成された1つ以上の命令を含んでもよい。性能モニター130は、ペンディング要求の応答時間が実行時間閾値を超えているという決定に少なくとも部分的に基づき、ペンディング要求を実行するために追加のリソースを割り当てるように構成されてもよい。
例証的な実施形態では、ドライブ媒体225は、SSD記憶デバイスに使用される任意の種類のNANDセル技術を備えてもよい。いくつかの実施形態では、ドライブ媒体225は、SLC NAND技術、MLC NAND技術、トリレベルセル(TLC)NAND技術、様々なNAND技術の任意の組み合わせ、又は更には他のレベルのセルNAND技術(例えば、4、5、6等)を備えてもよい。図2に示されるように、ドライブ媒体225は、SLCブロック250、MLC又はTLCブロック260、及び内部ページバッファ270を例証的に含む。SLCブロック250は、255−1〜255−nのうちの任意の数のSLCページを含む。MLC/TLCブロック260は、265−1〜265−nのうちの任意の数のMLC又はTLCページを含む。
図3は、システム100上の性能モニター130によって作り出された環境300のブロック図を示す。環境300は、1つ以上のプロセッサ、メモリ、及び/又は1つ以上の記憶デバイスを使用して実施されてもよい。性能モニター130は、要求管理構成要素305、エラー検出構成要素310、回復動作構成要素315、応答時間構成要素320、リソース割振り構成要素325、及び出力構成要素330を含んでもよい。性能モニター130は、図1及び/又は図2の性能モニター130の一例であり得る。性能モニター130の構成要素は、以下により詳細に記載される方法600に関連して記載される機能のいずれかを行うように構成されてもよい。
要求管理構成要素305は、1つ以上の他のコンピューティングデバイス(例えば、ホストコンピューティングデバイス)から作業要求を受信するように構成される。作業要求を受信すると、要求管理構成要素305は、作業要求の到着時刻を決定するように構成されてもよい。各作業要求の到着時刻は、作業要求の応答時間及び総応答時間を決定することの一部として追跡され得る。
要求管理構成要素305はまた、限られた利用可能なコンピューティングリソースのために競合する複数の作業要求を仲介するように構成されてもよい。要求管理構成要素305は時々、即時に完了することができる作業要求よりも多い作業要求を受信し得る。そのような状況で、要求管理構成要素305は、どの作業要求をまず実行して完了させ、どの作業要求は実行及び完了されるために後の時点まで待つことができるか、決定しなければならない場合がある。
エラー検出構成要素310は、作業要求に含まれる1つ以上の動作を実行中にエラーが発生したかどうかを決定するように構成される。作業要求の実行中、エラー又は障害はある程度の確率で発生することになる。エラー検出構成要素310は、いくつかのエラー検出アルゴリズムを実行して、作業要求の対象である基礎となるデータ内、又は動作自体の実行中のいずれかでエラーが発生したかどうかを決定するように構成されてもよい。
回復動作構成要素315は、検出されたエラーを補償するために1つ以上のエラー回復動作を実行するように構成される。回復動作構成要素315によって実施される特定のエラー回復動作は、検出されたエラーの種類次第であり得る。
応答時間構成要素320は、性能モニター130によって受信される作業要求の応答時間を推定及び/又は決定するように構成される。いくつかの実施形態では、特定の作業要求の応答時間を推定することは、現在時刻を特定の作業要求の到着時刻と比較することと、現在時刻と到着時刻との間の差異に少なくとも部分的に基づいて応答時間を決定することと、を含み得る。他の実施形態では、作業要求の応答時間を決定するために、他の推定技法を使用してもよい。
応答時間構成要素320はまた、応答時間が実行時間閾値を超えているかどうかを決定するように構成される。これは、応答時間を実行時間閾値に対して比較することで行われる。いくつかの実施形態では、実行時間閾値は、要求を行うための平均的な実行時間と等しい。他の実施形態では、実行時間閾値は、ユーザ入力を通してユーザによって設定及び/又は変更されてもよい。
リソース割振り構成要素325は、作業要求の応答時間が実行時間閾値を超えているという決定に応じて、作業要求を完了させるために追加のコンピューティングリソースを割り当てるように構成される。いくつかの実施形態では、リソース割振り構成要素325は、作業要求を実行するために追加のコンピューティングリソースを割り当て、他のプロセスを保留させてもよい。他の実施形態では、リソース割振り構成要素325は、性能モニター130によって行われている1つ以上のエラー回復動作を実行するために追加のリソースを割り当ててもよい。
出力構成要素330は、作業要求が完了したかどうかを決定するように構成される。作業要求が完了している場合、出力構成要素は、完了した作業要求の結果を作業要求の発信者(例えば、ホストコンピューティングデバイス)に出力するように構成される。いくつかの実施形態では、出力構成要素330は、作業要求の完了時刻を決定するように構成される。出力構成要素330は、完了時刻と到着時刻との差異を取ることによって総応答時間を決定し得る。
図4は、本開示の様々な態様に従う、作業要求を実行する例証的なプロセス400のグラフ表示を示す。プロセス400の少なくとも1つの態様は、図1のシステム100、図2の記憶デバイス205、並びに/又は図1、2、及び3に描かれる性能モニター130と共に実施され得る。プロセス400は、タイムライン402に沿って生じるものとして描かれる。図4の様々なステップはタイムライン402に沿った特定の時間に発生するものとして描かれているが、各ステップの発生の正確な及び相対的な時間は、異なる順序、示されていない追加のステップ、並びに任意の所与のステップを満たすためのより短い及びより長い時間を含め、示されるものとは異なり得ることを理解されたい。
ステップ404で、システム100は作業要求を受信する。本出願で使用される場合、作業要求は、ホストデバイスから受信される、システム100が行うことが可能な任意の機能を行うための任意のコマンドを含んでもよい。例えば、作業要求は、記憶媒体110にデータを書き込む、又は記憶媒体110からデータを読み出す要求を含んでもよい。典型的には、システム100は、一度に複数の要求に対応するための何らかのプロセスを有することになる。例えば、システム100は、先入れ先出し(FIFO)方式で作業要求を実行してもよく、又はシステム100は、異なる作業要求が様々な要因に基づく異なる優先度を有する、優先方式で作業要求を実行してもよい。
システム100が、作業要求が実行される用意ができたと決定すると、ステップ406で、システム100は、作業要求の実行を開始することになる。作業要求の実行中、システム100は、ステップ408で、1つ以上のエラーが存在することを決定し得る。これらのエラーには、記憶媒体110に書き込まれているデータ内、記憶媒体110から読み出されているデータ内のエラーが含まれ得、又は作業要求の実行中に発生した他のエラーが含まれ得る。検出されたエラーが特定の種類のものである場合、ステップ410で、システム100は、識別されたエラーを修正するために1つ以上のエラー回復動作を行ってもよい。本出願で使用される場合、エラー回復動作は、任意の種類のデータのための正しい値を検証又は決定することができる、任意のプロセス又は動作を含んでもよい。いくつかの実施形態では、ステップ408又はステップ410は、システム100によって行われる場合も、行われない場合もある。
任意のエラー回復動作が完了すると、ステップ412で、システム100は作業要求を完了し、作業要求の要求された結果を出力する。作業要求の受信(ステップ404)から作業要求の完了(ステップ412)までの時間が、作業要求の総応答時間414である。本出願で使用される場合、応答時間は、作業要求を部分的に実行するための時間を示す。つまり、応答時間は、特定の作業要求の受信時に開始し、ステップ412で作業要求が完了するまでのいくつかの時間のいずれかを表し得る。例えば、作業要求の応答時間は、作業要求の受信(ステップ404)とシステムが作業要求の実行を開始したとき(ステップ406)との間の時間を示してもよく、又は応答時間は、作業要求の実行の開始(ステップ406)とエラー回復動作の実行の開始(ステップ410)との間の時間を示してもよい。特定の作業要求の応答は、定義上は、特定の作業要求の総応答時間414よりも短い。
図5は、本開示の様々な態様に従う、作業要求を実行するための総応答時間414の分布502のグラフ表示500を示す。分布502は、上記に記載されるシステム100の作業要求の応答時間の仮定の分布を表し、例証的な目的においてのみここに提示される。
例証的な分布502は、システムの作業要求の総応答時間によって各作業要求をプロットする。横軸は、作業要求の総応答時間414を表す。縦軸は、特定の総応答時間414を有した作業要求の数を表す。図5に示されるように、ほとんどの作業要求は、比較的短い総応答時間414を有し、システム100によってかなり迅速に完了されている。しかしながら、いくつかの作業要求は、より長い総応答時間414を有し、分布502の外れ値504と称され得る。典型的には、外れ値504作業要求の総応答時間414は、システム100によって行われるいくつかのエラー回復動作に起因する。作業要求中に行われるエラー回復動作が多いほど、作業要求の受信(ステップ404)と作業要求の完了(ステップ412)との間の時間が多くなる。外れ値504は、システム100によって行われる作業要求の総応答時間414における変動のほとんどを説明する。
分布502に基づき、システム100のための総応答時間414の平均が決定され得る。平均的な総応答時間は、分布502の平均値506、中央値508、又は最多値510によって特徴付けられ得る。他の実施形態では、平均的な総応答時間は、別の機能又はアルゴリズムによって特徴付けられ得る。前述のように、システム100又は記憶デバイス205のユーザはしばしば、一貫した性能を有することを望む。システム100による作業要求の実行のための総応答時間における変動を制限するために、性能モニター130は、実行時間閾値を超える作業要求に追加のコンピューティングリソースを割り当てるように構成される。
図6は、本開示の様々な態様に従う、記憶デバイスにおける性能変動を制限するための方法600の一例を例証する簡略化されたフローチャートを示す。方法600の1つ以上の態様は、コンピューティングシステム(例えば、図1のシステム100、図2の記憶デバイス205、並びに/又は図1、2、及び3に描かれる性能モニター130)によって実行される、コンピュータ化プログラム、ルーティン、及び/又は命令として具現化され得る。いくつかの例では、バックエンドサーバ、コンピューティングデバイス、及び/又は記憶デバイスは、以下に記載される機能のうちの1つ以上を行うためのバックエンドサーバ、コンピューティングデバイス、及び/又は記憶デバイスの機能要素を制御するための1つ以上のコードの組を実行し得る。追加的又は代替的には、バックエンドサーバ、コンピューティングデバイス、及び/又は記憶デバイスは、専用ハードウェアを使用して以下に記載される機能のうちの1つ以上を行い得る。
ブロック605で、システム100は、別のコンピューティングデバイス(例えば、ホストコンピューティングデバイス)から作業要求を受信し得る。作業要求は、1つ以上の動作を行うためのシステム100への命令を含み得る。いくつかの実施形態では、作業要求は、システム100からの読み出し動作、システム100への書き込み動作、他の種類の動作を行う要求を含んでもよく、又は作業要求は、任意の種類の動作の混合作業負荷を含んでもよい。
作業要求を受信すると、システム100は、作業要求の到着時刻を決定するように構成されてもよい。各作業要求の到着時刻は、作業要求の応答時間及び総応答時間を決定することの一部として追跡され得る。いくつかの実施形態では、作業要求は、それらの到着時刻をタイムスタンプされ得る。他の実施形態では、システム100は、作業要求を到着時刻と相関するログを維持し得る。なお他の実施形態では、作業要求をそれぞれの到着時刻と相関する他の方法がシステム100によって実施されてもよい。
システム100はまた、限られた利用可能なコンピューティングリソースのために競合する複数の作業要求を仲介するように構成されてもよい。システム100は時々、即時に完了することができる作業要求よりも多い作業要求を受信し得る。そのような状況で、システム100は、どの作業要求をまず実行して完了させ、どの作業要求は実行及び完了されるために後の時点まで待つことができるか、決定しなければならない場合がある。例えば、システム100は、FIFOシステムを使用して、どの作業要求をまず完了させるかを決定してもよい。別の例において、システム100は、優先システムを使用して、どの作業要求をまず完了させるかを決定してもよい。特定の種類の作業要求が他の種類の作業要求よりも高い優先度を有する、かかる優先システムは、各作業要求の属性に少なくとも部分的に基づいて優先度を決定する。かかる優先システムはまた、別のコンピューティングデバイス(例えば、ホストコンピューティングデバイス)によって決定され、システム100に送信されてもよい。この場合、システム100は、他のコンピューティングデバイスによって規定された優先順位で作業要求を実行し得る。他の実施形態では、他の種類の作業要求優先システムが実施されてもよい。
ブロック610で、システム100は、作業要求に含まれる1つ以上の動作(複数可)の実行中にエラーが発生したかどうかを決定する。作業要求の実行中、エラー又は障害はある程度の確率で発生することになる。例えば、読み出し動作中、メモリセル上に存在する電荷が誤って解釈され得、システム100がメモリセルを「読み違える」ことを引き起こす。このような例において、1として記憶されるはずであったものが、代わりに0として解釈される。これは、基礎となるデータ内のエラーを引き起こす。システム100は、いくつかのエラー検出アルゴリズムを実行して、作業要求の対象である基礎となるデータ内、又は動作自体の実行中のいずれかでエラーが発生したかどうかを決定するように構成されてもよい。検出され得るエラーの種類には、読み出しディスターブによって誘発されたエラー(多すぎる読み出しは電荷を漏洩し、値をシフトする)、近くのセルの全てをプログラミングしないことによるオーバープログラムエラー、及び/又はアンダープログラムエラーが含まれる。エラー検出アルゴリズムの例としては、Bose−Chaudhuri−Hocquenghem符号(BCH)、低密度パリティ検査(LDPC)、又は他の種類の適切なエラー検出アルゴリズムが挙げられる。
ブロック610でエラーが検出されなかった場合、システム100はブロック620に移り、方法600の次のステップに進む。1つ以上のエラーが検出された場合、システム100はブロック615に移り、検出されたエラーを補償するために1つ以上のエラー回復動作を実行する。システム100によって実施される特定のエラー回復動作は、検出されたエラーの種類次第であり得る。いくつかの実施形態では、エラー回復動作は、記憶デバイスの1つ以上のメモリセルを再読み出しして値を比較することでどのデータ値が正しい値であるかを決定することを含み得る。他の実施形態では、エラー回復動作には、外部コード回復動作、フラッシュメモリ上の電圧シフト、反復エラー修正コードアルゴリズムの別の反復、又は任意の他の種類のエラー修正コードアルゴリズムが含まれ得る。
ブロック620で、システム100は、システム100によって受信される作業要求の応答時間を推定する。作業要求の応答時間は、作業要求を部分的に実行するためにシステム100が要する時間を示す。作業要求の総応答時間は、作業要求を完了するためにシステム100が要する時間を示す。いくつかの実施形態では、特定の作業要求の応答時間を推定することは、現在時刻を特定の作業要求の到着時刻と比較することと、現在時刻と到着時刻との間の差異に少なくとも部分的に基づいて応答時間を決定することと、を含んでもよい。他の実施形態では、作業要求の応答時間を決定するために、他の推定技法を使用してもよい。
ブロック625で、システム100は、応答時間が実行時間閾値を超えているかどうかを決定する。これは、応答時間を実行時間閾値に対して比較することで行われる。いくつかの実施形態では、実行時間閾値は、要求を行うための平均的な実行時間と等しい。平均的な実行時間は、完了した作業要求の過去の総応答時間(例えば、図5に示される分布502)を表す過去のデータに少なくとも部分的に基づいて決定され得る。いくつかの実施形態では、平均的な実行時間は、図5に表される分布502における平均値506、中央値508、又は最高値510のいずれかであり得る。他の実施形態では、平均的な実行時間は、他の種類の平均化アルゴリズムを使用して決定され得る。なお他の実施形態では、実行時間閾値は、過去のデータの平均に基づくのではない場合があり、代わりに他のアルゴリズム又は過去のデータの分析に少なくとも部分的に基づく場合がある。例えば、実行時間閾値は、過去の総応答時間の特定のパーセンタイル値に基づいて設定され得る。なお他の実施形態では、実行時間閾値は、ユーザ入力を通してユーザによって設定及び/又は変更されてもよい。なお他の実施形態では、実行時間閾値は、システム100のハードウェア、ファームウェア、又はソフトウェアの能力に基づいて決定され得る。
作業要求の応答時間が実行時間閾値を超えていない場合、システム100は方法600のブロック635に移る。作業要求の応答時間が実行時間閾値を超えている場合、システム100は方法600のブロック630に移る。ブロック630で、システム100は、作業要求を完了させるために追加のコンピューティングリソースを割り当て、作業要求の総応答時間を低減しようとする。いくつかの場合では、より長い応答時間は、一度に多くの作業要求に対応しすぎることに起因する場合がある。このような場合、システム100は、作業要求を実行するために追加のコンピュータリソースを割り当て、他のプロセスを保留させることになる。
いくつかの実施形態では、システム100は、システム100によって行われている1つ以上のエラー回復動作を実行するために追加のリソースを割り当ててもよい。しばしば、より長い総応答時間は、エラー回復動作の性能に起因することが多い。このような場合、作業要求の推定される総応答時間を低減させるためには、追加のコンピューティングリソースを割り当てることで十分であり得る。いくつかの実施形態では、様々な動作に追加のコンピューティングリソースを割り当てることは、様々な動作のコンピューティングの優先順位を変えることを含み得る。例えば、実行時間閾値を超える応答時間を有する作業要求のエラー回復動作は、コンピューティングリソースに関して最優先され得る。結果的に、システム100は、優先度のより高い動作が完了するまで他の優先度の低い動作を保留にすることによって、追加のコンピューティングリソースを使用してエラー回復動作を完了させ得る。いくつかの実施形態では、方法600のブロック620、625、630のうちの1つ以上は、ブロック610、615が実行される前に実行されてもよい。いくつかの実施形態では、エラー回復動作を実行するために追加のコンピューティングリソースを割り当てるための優先システムは、前述の作業要求を管理するための優先システムとは異なる。
ブロック635で、システム100は、作業要求が完了したかどうかを決定する。作業要求が完了している場合、システム100は、方法600のブロック640に移る。ブロック640で、システム100は、完了した作業要求の結果を作業要求の発信者(例えば、ホストコンピューティングデバイス)に出力する。作業要求が完了していない場合、システム100は、ブロック610に戻り、ブロック610、615、620、625、630、635を実行する。いくつかの実施形態では、ブロック635でシステム100は、作業要求の完了時刻を決定し得る。システム100は、完了時刻と到着時刻との差異を取ることによって総応答時間を決定し得る。
方法600のブロックは、図1〜3に関連して記載される性能モニター130及び/又は他の構成要素を使用して行われ得る。例えば、方法600のステップは、図3に記載される構成要素のいずれかによって実施され得る。このように、方法600は、記憶デバイスにおける性能変動の制限を提供する。方法600は単なる1つの実装例であり、方法600の動作は、再編成、省略、及び/又は他の様式で変更されてもよく、それにより他の実装例も可能であり企図されていることに留意されたい。
添付の図面に関連して上記に説明される詳細な説明は、実施例を記載するものであり、実施され得るか、又は特許請求の範囲内である唯一の実例を表すものではない。「例」及び「例示的な」という用語は、本記載中で使用される場合、「例、実例、又は例証としての役割を果たすこと」を意味し、「好ましい」又は「他の例よりも有利である」ことを意味しない。詳細な説明は、記載される技法の理解を提供する目的で具体的な詳細を含む。しかしながら、これらの技法は、これらの具体的な詳細を伴わずに実践され得る。いくつかの実例では、記載される例の概念を曖昧にすることを避けるために、既知の構造及び装置がブロック図の形式で示される。
情報及びシグナルは、多様な異なる技術及び技法のいずれかを使用して表されてもよい。例えば、上記の記載全体を通して参照され得るデータ、命令、コマンド、情報、シグナル、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁界若しくは磁性粒子、光フィールド若しくは光学粒子、又はこれらの任意の組み合わせによって表され得る。
本開示に関連して記載される様々な例証的なブロック及び構成要素は、本明細書に記載される機能を行うように設計された汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、ASIC、FPGA若しくは他のプログラム可能論理デバイス、分離したゲート若しくはトランジスターロジック、分離したハードウェア構成要素、又はこれらの任意の組み合わせを用いて実施されるか、又は行われ得る。汎用プロセッサはマイクロプロセッサであってもよいが、代替的には、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、及び/又はステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSP及びマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、1つ以上のマイクロプロセッサとDSPコアを合わせて、及び/又は任意の他のかかる構成として実施されてもよい。
本明細書に記載される機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、又はこれらの任意の組み合わせにおいて実施され得る。プロセッサによって実行されるソフトウェア内で実施される場合、機能は、コンピュータ可読媒体上の1つ以上の命令又はコードとしてそこに記憶されるか、又は送られる。他の実施例及び実装例が、本開示及び添付される特許請求の範囲の範疇及び趣旨内にある。例えば、ソフトウェアの性質に起因して、上記の機能は、プロセッサによって実行されるソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、又はこれらのいずれかの組み合わせを使用して実施され得る。機能を実施する特徴はまた、様々な位置に物理的に設置されてもよく、これには、機能の一部が異なる物理的位置で実施されるように分配されることが含まれる。
特許請求の範囲を含め、本明細書で使用される場合、「及び/又は」という用語は、2つ以上の物品の列挙において使用されるとき、列挙された物品のうちの任意の1つを単独で用いてもよく、又は列挙された物品のうちの2つ以上の任意の組み合わせを用いてもよいことを意味する。例えば、組成物が、構成要素A、B、及び/又はCを含有すると記載されている場合、組成物はAのみ、Bのみ、Cのみ、A及びBの組み合わせ、A及びCの組み合わせ、B及びCの組み合わせ、又はA、B、及びCの組み合わせを含有し得る。また、特許請求の範囲を含め、本明細書で使用される場合、物品の列挙(例えば、「のうちの少なくとも1つ」又は「のうちの1つ以上」等の言い回しが前置きにある物品の列挙)中に使用される「又は」は、分離的な列挙を示し、例えば、「A、B、又はCのうちの少なくとも1つ」の列挙は、A又はB又はC又はAB又はAC又はBC又はABC(すなわち、A及びB及びC)を意味する。
加えて、他の構成要素内に含有されるか、又は他の構成要素から分離した構成要素の任意の開示は、1つ以上の一体化構造及び/又は別構造の一部として、全ての、ほとんどの、及び/又はいくつかの要素を組み込むことを含む、複数の他の構成が、同じ機能性を達成するために本質的に実施され得るため、例示的であると見なされるべきである。
コンピュータ可読媒体には、コンピュータプログラムの1つの場所から別の場所への転送を容易にする任意の媒体を含む、コンピュータ記憶媒体及び通信媒体の両方が含まれる。記憶媒体は、汎用又は専用コンピュータによってアクセスされ得る任意の入手可能な媒体であってもよい。限定ではなく、例として、コンピュータ可読媒体には、RAM、ROM、EEPROM、フラッシュメモリ、CD−ROM、DVD、若しくは他の光学ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、あるいは汎用若しくは専用コンピュータ又は汎用若しくは専用プロセッサによってアクセス可能な命令又はデータ構造の形式で所望のプログラムコード手段を保持又は記憶するために使用され得る任意の他の媒体が含まれ得る。また、任意の接続が、コンピュータ可読媒体と称するにふさわしい。例えば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、ラジオ、及びマイクロ波等の無線技術を使用してウェブサイト、サーバ、又は他の遠隔ソースからソフトウェアが送られた場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、ラジオ、及びマイクロ波等の無線技術は、媒体の定義に含まれ得る。本明細書で使用される場合、ディスク(disk)及びディスク(disc)には、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、及びブルーレイディスクが含まれ、ディスク(disk)は通常、磁気によってデータを再生し、ディスク(disc)は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれる。
本開示の前述の記載は、当業者が本開示を作製するか、又は使用することを可能にするために提供される。本開示への様々な変更は、当業者には容易に明白であり、本明細書に定義される包括的な原理は、本開示の範囲を逸脱することなく他の変更にも適用され得る。よって、本開示は、本明細書に記載される実施例及び設計に限定されるものではなく、開示される原理及び新規の特徴と一貫して最も幅広い範囲が付与されるものである。
本開示は特に、セキュリティシステム用途に適用され得る。本開示は特に、記憶装置システム用途に適用され得る。いくつかの実施形態では、概念、技術説明、特徴、方法、着想、及び/又は説明は、記憶装置及び/又はデータセキュリティシステム用途に特に適用され得る。特定の用途におけるかかるシステムの明確な利点は、本開示から明白である。
本開示に記載及び/又は例証されるプロセスパラメータ、操作、及びステップは、例としてのみ与えられ、所望のように変更されてもよい。例えば、例証及び/又は記載されるステップが特定の順序で示されるか、又は論じられているが、これらのステップは、必ずしも例証されるか、又は論じられる順序で行われる必要はない。ここに記載及び/又は例証される様々な例示的な方法はまた、ここに記載されるか、又は例証されるステップのうちの1つ以上を省略してもよく、あるいは開示されるものに加えて追加のステップを含んでもよい。
更に、様々な実施形態が完全に機能するコンピューティングシステムの文脈でここに記載及び/又は例証されてきたが、これらの例示的な実施形態のうちの1つ以上は、実際に配信を行うのに使用されるコンピュータ可読媒体の特定の種類にかかわらず、多様な形態でプログラム製品として配信されてもよい。本明細書に開示される実施形態はまた、特定のタスクを行うソフトウェア構成要素を使用して実施されてもよい。これらのソフトウェア構成要素には、スクリプト、バッチ、又はコンピュータ可読記憶媒体若しくはコンピューティングシステム内に記憶され得る他の実行可能ファイルが含まれる。いくつかの実施形態では、これらのソフトウェア構成要素は、コンピューティングシステムがここに開示される例示的な実施形態のうちの1つ以上を行うことを許容及び/又は命令する。
説明の目的におけるこの記載は、特定の実施形態を参照して記載されてきた。しかしながら、上記の例示的な検討は、網羅的であること、又は本システム及び方法を論じられた形態そのものに限定するものとは意図しない。上記の教示を考慮して、多くの変更及び変形が可能である。実施形態は、当業者が本システム、装置、及び方法、並びに企図される特定の用途に好適であり得る様々な変更を含む、様々な実施形態を利用することができるように、本システム及び方法の原理、並びにそれらの実践的な用途を説明するために選択され、記載された。

Claims (20)

  1. 記憶デバイスであって、
    制御器であって、
    1つ以上の動作を行う要求を受信することと、
    前記要求の応答時間を推定することであって、前記応答時間は、前記要求を部分的に実行するために前記制御器が要する時間を示す、推定することと、
    前記応答時間が実行時間閾値を超えていることを決定することと、
    前記応答時間が前記実行時間閾値を超えているという決定に際し、1つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、のためのものである、制御器を備える、記憶デバイス。
  2. 前記制御器は、
    前記要求の到着時刻を決定するためのものであり、前記到着時刻は、前記制御器が前記要求を受信した時刻である、請求項1に記載の記憶デバイス。
  3. 前記制御器は、
    前記到着時刻を前記要求にタイムスタンプするためのものである、請求項2に記載の記憶デバイス。
  4. 前記制御器は、
    前記要求の前記到着時刻を到着ログに記録するためのものである、請求項2に記載の記憶デバイス。
  5. 前記制御器は、
    現在時刻を前記到着時刻と比較することと、
    前記現在時刻と前記到着時刻との間の差異に基づき、前記応答時間を決定することと、のためのものである、請求項2に記載の記憶デバイス。
  6. 前記制御器は、
    前記要求に含まれる前記1つ以上の動作の実行中にエラーが発生したことを決定することと、
    検出された前記エラーを補償するために前記1つ以上のエラー回復動作を実行することと、のためのものである、請求項1に記載の記憶デバイス。
  7. 前記要求の前記1つ以上の動作が、読み出し動作及び書き込み動作の両方の混合作業負荷を含む、請求項1に記載の記憶デバイス。
  8. 前記実行時間閾値は、前記要求を行うための平均的な実行時間と等しい、請求項1に記載の記憶デバイス。
  9. 前記制御器は、
    前記記憶デバイスのリソースに関して最優先されるように前記1つ以上のエラー回復動作を割り当てるためのものである、請求項1に記載の記憶デバイス。
  10. 前記記憶デバイスが、ソリッドステートドライブ(SSD)記憶デバイスである、請求項1に記載の記憶デバイス。
  11. 前記1つ以上のエラー回復動作が、前記記憶デバイスの1つ以上のメモリセルを再読み出しすることを含む、請求項1に記載の記憶デバイス。
  12. 前記1つ以上のエラー回復動作が、外部コード回復動作を含む、請求項1に記載の記憶デバイス。
  13. 記憶デバイスにおける性能変動を制限する方法であって、
    前記記憶デバイスの制御器によって、1つ以上の動作を行う要求を受信することと、
    前記要求の応答時間を推定することであって、前記応答時間は、前記要求を部分的に実行するために前記制御器が要する時間を示す、推定することと、
    前記応答時間が実行時間閾値を超えていることを決定することと、
    前記応答時間が前記実行時間閾値を超えているという決定に際し、1つ以上のエラー回復動作を実行するために追加のリソースを割り当てることと、を含む、方法。
  14. 前記制御器によって前記要求の到着時刻を決定することを更に含み、前記到着時刻は、前記制御器が前記要求を受信した時刻である、請求項13に記載の方法。
  15. 前記応答時間を推定することが、
    現在時刻を前記到着時刻と比較することと、
    前記現在時刻と前記到着時刻との間の差異に基づき、前記応答時間を決定することと、を更に含む、請求項14に記載の方法。
  16. 前記要求に含まれる前記1つ以上の動作の実行中にエラーが発生したことを決定することと、
    検出された前記エラーを補償するために前記1つ以上のエラー回復動作を実行することと、を更に含む、請求項13に記載の方法。
  17. 前記実行時間閾値は、前記要求を行うための平均的な実行時間と等しい、請求項13に記載の方法。
  18. 前記1つ以上のエラー回復動作を実行するためにより多くのリソースを割り当てることが、前記記憶デバイスのリソースに関して最優先されるように前記1つ以上のエラー回復動作を割り当てることを更に含む、請求項13に記載の方法。
  19. 前記1つ以上のエラー回復動作が、前記記憶デバイスの1つ以上のメモリセルを再読み出しすることを含む、請求項13に記載の方法。
  20. 記憶デバイスにおける性能変動を制限するために構成されたコンピューティングデバイスであって、
    プロセッサと、
    前記プロセッサと電子通信するメモリと、を備え、前記メモリは、前記プロセッサによって実行されると、
    前記記憶デバイスの制御器によって、1つ以上の動作を行う要求を受信するステップと、
    前記要求の応答時間を推定するステップであって、前記応答時間は、前記要求を部分的に実行するために前記制御器が要する時間を示す、ステップと、
    前記応答時間が実行時間閾値を超えていることを決定するステップと、
    前記応答時間が前記実行時間閾値を超えているという決定に際し、1つ以上のエラー回復動作を実行するために追加のリソースを割り当てるステップと、を前記プロセッサに行わせるコンピュータ実行可能命令を記憶する、コンピューティングデバイス。
JP2017107789A 2016-06-01 2017-05-31 記憶デバイスにおける性能変動を制限するための技術 Pending JP2017215966A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/170,709 US10423500B2 (en) 2016-06-01 2016-06-01 Technologies for limiting performance variation in a storage device
US15/170,709 2016-06-01

Publications (1)

Publication Number Publication Date
JP2017215966A true JP2017215966A (ja) 2017-12-07

Family

ID=60483316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017107789A Pending JP2017215966A (ja) 2016-06-01 2017-05-31 記憶デバイスにおける性能変動を制限するための技術

Country Status (4)

Country Link
US (2) US10423500B2 (ja)
JP (1) JP2017215966A (ja)
KR (1) KR102219826B1 (ja)
CN (1) CN107451006B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI610292B (zh) * 2015-11-19 2018-01-01 瑞鼎科技股份有限公司 驅動電路及其運作方法
KR20180114972A (ko) * 2017-04-11 2018-10-22 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11023166B2 (en) * 2018-08-08 2021-06-01 Micron Technology, Inc. Quality of service control for read operations in memory systems
CN111046007B (zh) * 2018-10-12 2023-08-18 伊姆西Ip控股有限责任公司 管理存储系统的方法、装置和计算机程序产品
US11327767B2 (en) * 2019-04-05 2022-05-10 International Business Machines Corporation Increasing resources for partition to compensate for input/output (I/O) recovery event
CN116578453B (zh) * 2023-04-25 2024-01-16 深圳市晶存科技有限公司 降低存储芯片不良率的方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021556A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd 記憶制御装置およびその制御方法
JP2005293164A (ja) * 2004-03-31 2005-10-20 Fuji Electric Fa Components & Systems Co Ltd タスク監視方式
US7389396B1 (en) * 2005-04-25 2008-06-17 Network Appliance, Inc. Bounding I/O service time
JP2008257421A (ja) * 2007-04-04 2008-10-23 Hitachi Ltd アプリケーション管理支援システム及び方法
JP2011146989A (ja) * 2010-01-15 2011-07-28 Fujitsu Telecom Networks Ltd 監視制御システム、被監視制御装置およびサーバ
JP2013094007A (ja) * 2011-10-27 2013-05-16 Sanyo Electric Co Ltd 電気自動車の充電システム
US20150089278A1 (en) * 2013-09-23 2015-03-26 Seagate Technology Llc Variable data recovery scheme hierarchy
JP2016505937A (ja) * 2012-11-29 2016-02-25 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステムのためのデータ信頼性スキーム

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471631A (en) * 1992-10-19 1995-11-28 International Business Machines Corporation Using time stamps to correlate data processing event times in connected data processing units
US5712976A (en) * 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
US6338151B1 (en) * 1998-08-21 2002-01-08 International Business Machines Corporation Input/output recovery which is based an error rate and a current state of the computer environment
JP3959516B2 (ja) * 2001-08-06 2007-08-15 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、cpu資源プロバイダ、クライアント装置、処理サービスの提供方法、およびプログラム
US6915386B2 (en) * 2002-06-05 2005-07-05 Internation Business Machines Corporation Processing service level agreement (SLA) terms in a caching component of a storage system
US7240115B2 (en) * 2002-12-10 2007-07-03 International Business Machines Corporation Programmatically allocating memory among competing services in a distributed computing environment
US20050192937A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
US20060085375A1 (en) * 2004-10-14 2006-04-20 International Business Machines Corporation Method and system for access plan sampling
US7409586B1 (en) * 2004-12-09 2008-08-05 Symantec Operating Corporation System and method for handling a storage resource error condition based on priority information
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7596657B2 (en) * 2006-01-13 2009-09-29 Paul Kaler Increased storage capacity for solid state disks using data compression
US7613043B2 (en) 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7913051B1 (en) * 2006-12-22 2011-03-22 Emc Corporation Methods and apparatus for increasing the storage capacity of a zone of a storage system
JP4414452B2 (ja) * 2007-08-27 2010-02-10 富士通株式会社 記憶装置および当該記憶装置において作動中の増設記憶装置を停止する停止方法
US8141151B2 (en) * 2007-08-30 2012-03-20 International Business Machines Corporation Non-intrusive monitoring of services in a service-oriented architecture
US7831682B2 (en) * 2008-08-08 2010-11-09 Amazon Technologies, Inc. Providing a reliable backing store for block data storage
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
US8332857B1 (en) * 2008-12-30 2012-12-11 Teradota Us, Inc. Database system having a regulator that performs workload regulation based on optimizer estimates
US9804943B2 (en) * 2009-10-16 2017-10-31 Sap Se Estimating service resource consumption based on response time
WO2011073940A1 (en) * 2009-12-17 2011-06-23 International Business Machines Corporation Data management in solid state storage systems
US20140372607A1 (en) * 2010-03-15 2014-12-18 Cleversafe, Inc. Adjusting allocation of dispersed storage network resources
US8862845B2 (en) * 2010-12-06 2014-10-14 Xiotech Corporation Application profiling in a data storage array
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US20180217855A1 (en) * 2011-01-14 2018-08-02 Google Inc. Estimating wait times for requests
US8694752B2 (en) * 2011-02-01 2014-04-08 Cleversafe, Inc. Transferring data in response to detection of a memory system imbalance
US8555281B1 (en) * 2011-02-16 2013-10-08 Google Inc. Scheduling of tasks based upon historical execution times
JP2012181580A (ja) * 2011-02-28 2012-09-20 Fujitsu Ltd リソース制御装置、リソース制御方法、及びリソース制御プログラム
KR101835604B1 (ko) * 2011-06-03 2018-03-07 삼성전자 주식회사 메모리를 위한 스케줄러
CN103092526B (zh) 2011-10-31 2016-03-30 国际商业机器公司 在存储设备间进行数据迁移的方法和装置
JP5825359B2 (ja) 2011-12-19 2015-12-02 富士通株式会社 負荷分散システム
US8751757B1 (en) * 2011-12-30 2014-06-10 Emc Corporation Acquisition and kernel memory storage of I/O metrics
US9659041B2 (en) * 2012-01-30 2017-05-23 Oracle International Corporation Model for capturing audit trail data with reduced probability of loss of critical data
US9075913B2 (en) * 2012-02-27 2015-07-07 Qualcomm Incorporated Validation of applications for graphics processing unit
EP2828751B1 (en) * 2012-03-21 2019-05-01 Tier 3, Inc. Cloud application scaling framework
US8966213B2 (en) * 2012-07-12 2015-02-24 International Business Machines Corporation Granting and revoking supplemental memory allocation requests
CN104685475A (zh) * 2012-08-31 2015-06-03 惠普发展公司,有限责任合伙企业 选择在数据备份或恢复操作中要使用的资源
US9280296B2 (en) * 2013-05-23 2016-03-08 Globalfoundries Inc. Recovery from failure of primary storage volumes by using mirrored data maintained with host timestamps
WO2015097737A1 (ja) * 2013-12-24 2015-07-02 株式会社日立製作所 バックアップシステム
KR20150083713A (ko) * 2014-01-10 2015-07-20 삼성전자주식회사 자원 관리를 위한 전자 장치 및 방법
US9411834B2 (en) * 2014-01-14 2016-08-09 Netapp, Inc. Method and system for monitoring and analyzing quality of service in a storage system
US9547445B2 (en) * 2014-01-14 2017-01-17 Netapp, Inc. Method and system for monitoring and analyzing quality of service in a storage system
CN105224475B (zh) * 2014-05-30 2018-03-09 国际商业机器公司 用于调整存储装置的分配的方法和装置
US9766965B2 (en) * 2015-11-25 2017-09-19 Salesforce.Com, Inc. System and method for monitoring and detecting faulty storage devices
US10169082B2 (en) * 2016-04-27 2019-01-01 International Business Machines Corporation Accessing data in accordance with an execution deadline
US10223220B2 (en) * 2016-10-13 2019-03-05 International Business Machines Corporation Processing a health condition message on a health condition to determine whether to perform a swap operation
US10229013B2 (en) * 2016-10-13 2019-03-12 International Business Machines Corporation Generating a health condition message on a health condition detected at a server to send to a host system accessing the server
US10564854B2 (en) * 2017-04-11 2020-02-18 Microsoft Technology Licensing, Llc Tracking internal latencies for load balancing of file server
JP6681377B2 (ja) * 2017-10-30 2020-04-15 株式会社日立製作所 リソースの割り当てを最適化するシステム及び方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021556A (ja) * 2002-06-14 2004-01-22 Hitachi Ltd 記憶制御装置およびその制御方法
JP2005293164A (ja) * 2004-03-31 2005-10-20 Fuji Electric Fa Components & Systems Co Ltd タスク監視方式
US7389396B1 (en) * 2005-04-25 2008-06-17 Network Appliance, Inc. Bounding I/O service time
JP2008257421A (ja) * 2007-04-04 2008-10-23 Hitachi Ltd アプリケーション管理支援システム及び方法
JP2011146989A (ja) * 2010-01-15 2011-07-28 Fujitsu Telecom Networks Ltd 監視制御システム、被監視制御装置およびサーバ
JP2013094007A (ja) * 2011-10-27 2013-05-16 Sanyo Electric Co Ltd 電気自動車の充電システム
JP2016505937A (ja) * 2012-11-29 2016-02-25 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステムのためのデータ信頼性スキーム
US20150089278A1 (en) * 2013-09-23 2015-03-26 Seagate Technology Llc Variable data recovery scheme hierarchy

Also Published As

Publication number Publication date
KR102219826B1 (ko) 2021-02-23
KR20170136449A (ko) 2017-12-11
CN107451006A (zh) 2017-12-08
US11216345B2 (en) 2022-01-04
US20190391886A1 (en) 2019-12-26
US10423500B2 (en) 2019-09-24
CN107451006B (zh) 2022-03-18
US20170351582A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
JP2017215966A (ja) 記憶デバイスにおける性能変動を制限するための技術
US8935563B1 (en) Systems and methods for facilitating substantially continuous availability of multi-tier applications within computer clusters
US10338834B1 (en) Application performance in replication environments
US9612953B1 (en) Data placement based on data properties in a tiered storage device system
US9811457B2 (en) Data placement based on data retention in a tiered storage device system
US8843717B2 (en) Maintaining consistency of storage in a mirrored virtual environment
US9135032B2 (en) System, method and computer program product for data processing and system deployment in a virtual environment
US9477427B2 (en) Storage tiering based on virtual machine operations and virtual volume type
US9077579B1 (en) Systems and methods for facilitating access to shared resources within computer clusters
US9396353B2 (en) Data allocation among devices with different data rates
US9122503B1 (en) Systems and methods for adaptive throttling of input/output requests in a virtual environment
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
TWI660346B (zh) 記憶體管理方法以及儲存控制器
JP2013509658A (ja) 将来の使用推量に基づく記憶メモリの割り当て
US10324794B2 (en) Method for storage management and storage device
US9785641B2 (en) Reducing a backup time of a backup of data files
US20170329532A1 (en) Data refresh in flash memory
US11836067B2 (en) Hyper-converged infrastructure (HCI) log system
BR112017001171B1 (pt) Método executado em um dispositivo de computação, dispositivo de computação e dispositivo de memória legível por computador para recuperar a operacionalidade de um serviço baseado em nuvem
KR20230170024A (ko) 구역 세그먼트 드라이브 관리
WO2019072250A1 (zh) 一种文件管理方法、文件管理系统、电子设备及存储介质
US20200250134A1 (en) System and method for adaptive aggregated snapshot deletion
US11023348B2 (en) Multi-layer autoscaling for a scale-up cloud server
CN109840217B (zh) 一种缓存资源分配和装置
US10169155B2 (en) System and method for synchronization in a cluster environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220906