(57)【要約】【課題】バッファ保有期間管理を備えたデータ・ストレージ・デバイスを提供する。【解決手段】一つ以上のバッファを備えるデータ・ストレージ・デバイスは、バッファ保有期間管理を利用でき、少なくともデータ・ストレージ・デバイスは、第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有する。第一バッファはチップ上に配置できるが、第二バッファはチップ外に配置される。第一バッファには、バッファ管理部によって誘導されるように、所定の保有期間閾値より短い保有期間を有するデータを充填できる。【選択図】図１
2018206380.tif 000002
【特許請求の範囲】
【請求項１】
第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有するデータ・ストレージ・デバイスを備える装置であって、前記第一バッファはチップ上に配置され、前記第二バッファはチップ外に配置され、前記第一バッファには、前記バッファ管理部によって誘導されるように、所定の保有期間閾値より短い保有期間を有するデータを充填する、装置。
【請求項２】
前記第一バッファは静的ランダム・アクセス・メモリである、請求項１に記載の装置。
【請求項３】
前記第二バッファは動的ランダム・アクセス・メモリである、請求項１に記載の装置。
【請求項４】
前記不揮発性メモリはＮＡＮＤフラッシュである、請求項１に記載の装置。
【請求項５】
前記第二バッファは前記データ・ストレージ・デバイスの筐体内に配置される、請求項１に記載の装置。
【請求項６】
方法であって、
データ・ストレージ・デバイスを起動し、前記データ・ストレージ・デバイスは、第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有し、前記第一バッファはチップ上に配置され、前記第二バッファはチップ外に配置されることと、
前記バッファ管理部を用いて保有期間閾値を生成することと、
前記保有期間閾値を超える第一データセクタに応じて、前記バッファ管理部を用いて前記第一バッファから前記第一データセクタを退避させることと、
前記バッファ管理部によって誘導されるように、前記第一バッファ内に第二データセクタを記憶し、前記保有期間閾値より短い保有期間を有するデータを前記第一バッファに充填することを備える方法。
【請求項７】
前記保有期間閾値は前記第二バッファのレイテンシ速度に一致する、請求項６に記載の方法。
【請求項８】
前記バッファ管理部は前記第一データセクタを前記第二バッファに退避させる、請求項６に記載の方法。
【請求項９】
前記第二データセクタは次に前記不揮発性メモリに書き込まれる、請求項６に記載の方法。
【請求項１０】
前記保有期間閾値は、アルゴリズム、現在のデータ・ストレージ・デバイスの動作、過去のデータ・ストレージ・デバイスの性能、及び中断中の書き込みリクエストの容量に基づいて生成される、請求項６に記載の方法。
【請求項１１】
前記バッファ管理部は、前記第一バッファ内に読戻しデータを記憶することなく、前記不揮発性メモリからの前記読戻しデータを前記第二バッファに記憶する、請求項６に記載の方法。
【請求項１２】
前記バッファ管理部は、前記第一バッファから前記第二バッファに前記第二データセクタのルートを変更することによって動的イベントに反応する、請求項６に記載の方法。
【請求項１３】
前記動的イベントは、データ・ストレージ・デバイスの性能の低下に対応するデータエラーである、請求項１２に記載の方法。
【請求項１４】
前記動的イベントは、データ・ストレージ・デバイスの性能の低下に対応するアドレス衝突である、請求項１２に記載の方法。
【請求項１５】
方法であって、
データ・ストレージ・デバイスを起動し、前記データ・ストレージ・デバイスは、第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有し、前記第一バッファはチップ上に配置され、前記第二バッファはチップ外に配置されることと、
前記バッファ管理部を用いて保有期間閾値を生成することと、
前記バッファ管理部を用いて第一データセクタの保有期間を予測することと、
前記保有期間閾値より長い予測保有期間に応じて、前記第二バッファ内に前記第一データセクタを記憶することと、
前記バッファ管理部を用いて第二データセクタの保有期間を予測することと、
前記保有期間を超える第三データセクタに応じて、前記バッファ管理部を用いて前記第一バッファから前記第三データセクタを退避させることと、
前記バッファ管理部によって誘導されるように、前記第一バッファ内に前記第二データセクタを記憶し、前記保有期間閾値より短い保有期間を有するデータを前記第一バッファに充填することを備える方法。
【請求項１６】
前記バッファ管理部は、前記第二データセクタを評価する予測モジュールに応じてカスタムタイマーを設定する、請求項１５に記載の方法。
【請求項１７】
前記カスタムタイマーは前記保有期間閾値と異なる、請求項１６に記載の方法。
【請求項１８】
前記バッファ管理部は前記第二データセクタの予測保有期間に応じて前記第二データセクタを変更する、請求項１５に記載の方法。
【請求項１９】
前記バッファ管理部は前記第二データセクタを第一及び第二サブセクタに分割し、前記一サブセクタは前記第一バッファに記憶され、前記第二サブセクタは前記第二バッファに記憶される、請求項１８に記載の方法。
【請求項２０】
前記バッファ管理部は各予測ステップ中、少なくとも一つのデータ・ストレージ・デバイスの性能尺度を予測する、請求項１５に記載の方法。
【発明の詳細な説明】
【発明の概要】
【課題を解決するための手段】
【０００１】
いくつかの実施形態において、データ・ストレージ・デバイスは第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを備えるデータ・ストレージ・デバイスを有する。第一バッファはチップ上に配置されるが、第二バッファはチップ外に配置される。第一バッファには、バッファ保有期間管理の一部としてバッファ管理部によって誘導されるように、所定の保有期間閾値より短い保有期間を有するデータを充填する。
【図面の簡単な説明】
【０００２】
【図１】様々な実施形態に従って配置される一例のデータ・ストレージ・システムのブロック図である。
【図２】図１のデータ・ストレージ・システム内で使用可能な一例のデータ・ストレージ・デバイスの一部のブロック図を示す。
【図３】いくつかの実施形態に従って構成及び動作させる一例のデータ・ストレージ・システムの一部のブロック図である。
【図４】図３のデータ・ストレージ・システム内で利用される一例のデータ・ストレージ・デバイスの一部のブロック図を示す。
【図５】図３のデータ・ストレージ・システム内で用いられる一例のデータ・ストレージ・デバイスの一部を示す。
【図６Ａ】様々な実施形態に従って動作させる一例のデータ・ストレージ・デバイスの異なるブロック図をそれぞれ示す。
【図６Ｂ】様々な実施形態に従って動作させる一例のデータ・ストレージ・デバイスの異なるブロック図をそれぞれ示す。
【図６Ｃ】様々な実施形態に従って動作させる一例のデータ・ストレージ・デバイスの異なるブロック図をそれぞれ示す。
【図７】図３のデータ・ストレージ・システム内で利用される一例のデータ・ストレージ・デバイスの一部を表現する。
【図８】様々な実施形態に従って実行される一例のバッファ保有期間管理ルーチン用のフローチャートを提供する。
【発明を実施するための形態】
【０００３】
様々な実施形態は一般に、ホストからの書込みリクエストに対応する書込みデータの実際の及び／又は予測保有期間に基づくバッファ管理を備えたデータ・ストレージ・システムを対象とする。
【０００４】
コンピューティングデバイスがより普及し、高性能になるにつれて、生成、転送及び記憶されるデータ量も増大している。データ・ストレージ・システムとのデータのより高速な転送に対応するために、様々な異なる種類のデータメモリが発展している。しかし、異なる種類のデータメモリは異なる物理的特性及び性能特性を有し、単一の種類のデータメモリを用いてデータ・ストレージ・システムにサービスを提供することは困難になっている。その結果、複数の異なる種類のデータメモリを用いてデータの転送及び記憶を管理する際には、ボトルネック及び非効率性が存在する。
【０００５】
従って、いくつかの実施形態は、予測及び／又は実際のデータ保有期間に基づいて、異なる種類のデータメモリの間でデータを知的に誘導するバッファ管理部を提供する。複数の異なる種類のデータメモリを選択的に利用する機能は、データ・ストレージ・システムが、各種類のメモリの効率的な特性を利用することによって、データ転送及びストレージ性能を最適化することを可能にする。
【０００６】
図面を参照すると、図１は、様々な実施形態を実現可能な一例のデータ・ストレージ・システム１００のブロック図を示す。データ・ストレージ・システム１００は任意の数のデータ・ストレージ・デバイス１０２を利用でき、それらは、ソリッドステート、回転磁気、又はハイブリッドドライブ等の同様の又は異なる種類のデバイスであってもよい。一つ以上のホスト１０４は、有線及び／又は無線ネットワークを介して接続される少なくとも一つのネットワーク制御部１０６を介して、データ・ストレージ・デバイス１０２に同時に、順次、又は選択的にアクセスできる。なお、ネットワーク制御部１０６は、サーバ又はカード等のハードウエア実装であっても、仮想マシン等のソフトウエア実装であってもよい。
【０００７】
破線で示したように、データ・ストレージ・システム１００に第二データ・ストレージ・デバイス１０８を組み込み、単一のデータ・ストレージ・デバイス１０２より大きなデータ容量を提供することもできる。データ・ストレージ・デバイス１０８の追加は更に、個別デバイスの冗長アレイ（ＲＡＩＤ）としてパリティデータのストリッピング、ミラーリング及びストレージ等を用いて、データ保護及びセキュリティの改善を可能にしてもよい。必須でも限定的でもないが、データ・ストレージ・デバイス１０２／１０８は、マイクロプロセッサ又はプログラム可能制御部等のローカル制御部１１０、ソリッドステート型等の不揮発性メモリ１１２、揮発性メモリ等の少なくとも一つのバッファ１１４、及び揮発性メモリ等のキャッシュ１１６から構成できる。
【０００８】
相対的に大きなデータ容量にアクセス可能な複数のホスト１０２を用いて、特に、ＲＡＩＤシステム構成内の各データ・ストレージ・デバイス１０２／１０８によって、大容量のデータを同時に及び順次処理できる。処理中、不揮発性メモリ１１２に割り当てられたデータがバッファ１１４又はキャッシュ１１６内で中断中になっていると、このような大容量のデータは性能ボトルネックを経験する可能性がある。つまり、ＮＡＮＤフラッシュ等の一部の不揮発性メモリ１１２はバイト又はビットアドレス可能ではなく、その場で書込みできず、メモリ１１２のデータマップ、複数のデータセクタのマップユニット、及びガベージコレクション部分を編集する際、非効率性を生み出す。
【０００９】
図２は、図１のデータ・ストレージ・システム１００で利用可能な一例のデータ・ストレージ・デバイス１２０の一部のブロック図を伝える。データ・ストレージ・デバイス１２０は、接続されたローカル制御部１１０と共に、ウエハチップ１２４内に存在する静的ランダム・アクセス・メモリ等の第一揮発性バッファメモリ１２２を備えることができる。
【００１０】
ウエハチップ１２４のシリコン材料内の第一揮発性バッファメモリ１２２の物理的構成は「チップ上」として特徴付けることができるが、第二揮発性バッファメモリ１２６等の一つ以上の相互接続を介したチップ１２４への単なる相互接続は「チップ外」として特徴付けることができる。言い換えると、ウエハチップ１２４のシリコン材料から第一揮発性バッファメモリ１２２の形態を作製することは、メモリ１２２がチップ上にあることを意味し、ウエハ材料から構成されていないチップ１２４への接続は第二メモリ１２６がチップ外にあることを意味する。
【００１１】
チップ上の第一揮発性バッファメモリ１２２の構成は、少なくとも部分的に、クロック周波数制限の減少と共により少ないインタフェース及びバッファへのより高速なデータ転送及びより短いレイテンシ期限を提供し、チップ外の第二揮発性バッファメモリ１２６を抑制する。チップ上の第一揮発性バッファメモリ１２２のより高速な性能は、ウエハチップ１２４上の利用可能な資源に関しては高価であり、メモリ１２２により小さなデータ容量をもたらす。従って、データ・ストレージ・デバイス１２０は、第一揮発性バッファメモリ１２２と第二揮発性バッファメモリ１２４の両方を利用して、不揮発性メモリ１１２へのデータ書込みリクエストに関連したデータを一時的に記憶する。
【００１２】
更に、バッファ管理は歴史的に未発達であり、不揮発性メモリ１１２への大容量のデータの書込みに関連した性能ボトルネックを悪化させているだけであった。例えば、先入れ先出しバッファ管理方式は、メモリ１１２への処理及び／又は書込みに比較的長い時間がかかるデータを、より高速な第一バッファメモリ１２２に充填できる。別の例として、より大容量の第二バッファメモリ１２６にデータを順次書き込み、その後、より高速の第一バッファメモリ１２２に書き込むことは、第一バッファメモリ１２２によって処理可能な書込みデータの性能を劣化させる第二バッファメモリ１２６のレイテンシをもたらす。
【００１３】
これらの問題及び他の問題は、複数の異なる種類のバッファを知的に管理し、中断中の書込みリクエストに関連したデータにサービスを提供するデータ・ストレージ・システムを様々な実施形態に実現させる。図３は、本開示内容の様々な実施形態を利用可能な一例のデータ・ストレージ・システム１４０の一部のブロック図を示す。データ・ストレージ・システム１４０は、データ・ストレージ・デバイス１４２と通信を行う任意の数のローカル又はリモートホスト１０４を有する。このような通信は、ネットワーク制御部、スイッチ、及び他の上流のネットワーク分散ハードウエア及び／又はソフトウエアに対応できる。
【００１４】
静的なファームウエアコードに従ってバッファ内に単に記憶する代わりに、バッファ管理部１４４は適応知能を提供でき、各バッファ１２２／１２６内の書込みデータの生成された実際の及び／又は予測保有期間に基づいて、チップ上の第一バッファ１２２とチップ外の第二バッファ１２４から選択を行う。当然のことながら、「保有期間」は、不揮発性メモリ１１２に書き込む時間にかかわらず、バッファ１２２／１２６に留まっている書込みリクエストに関連した時間データと理解される。つまり、データ保有期間は、不揮発性メモリ１１２にデータが書き込まれた後、長時間、ガベージコレクション等によって削除されるまで、バッファ１２２／１２６内に留まっている時間データの量として特徴付けることもできる。
【００１５】
いくつかの実施形態によると、バッファ管理部１４４は、入って来る書込みリクエストを評価し、バッファ１２２／１２６の宛先に対応するデータ保有期間値を生成し、データストレージ性能を最適化し、少なくともデータ書込みリクエストのサービスに影響を与える。このような知的評価によって、システム１４０の動作条件に対して、積極的に及び反応的に各バッファ１２２／１２６に及びそれらの間でデータを誘導するバッファ管理部１４４をもたらす。
【００１６】
図４は、図３のデータ・ストレージ・システム１４０内で利用可能な一例のバッファシステム１５０の一部を示す。バッファシステム１５０は、データ・ストレージ・デバイス１０２／１４２の筐体内に配置でき、データ・ストレージ・システム１００／１４０の各データ・ストレージ・デバイスは別個のバッファ管理部１５２を有し、管理部１５２はタイマー１５４、ソフトウエアアルゴリズム１５６、ログ１５８、及び予測モジュール１６０からなることが想定される。複数の別個のバッファ管理部１５２は、共通のシステムハードウエア及び／又はソフトウエアを利用でき、データ・ストレージ・デバイス筐体内に収容されるタイマー１５４、アルゴリズム１５６、ログ１５８、及び予測モジュール１６０を有しても有していなくてもよい。
【００１７】
バッファ管理部１５２は、一つ以上の発信源からデータ・ストレージ・システムの内外に、任意の数のシステム、書込みデータ、及びモデルパラメータを受け取ることができる。しかし、いくつかの実施形態は、中断中の書込みリクエスト、システム性能尺度、モデル化したシステム動作、及び現在のシステム動作に関する情報を順次又は同時に受け取る。中断中の書込みリクエストの情報は、容量、位置、範囲、割り当てられた論理ブロックアドレス（ＬＢＡ）、及び割り当てられた物理ブロックアドレス（ＰＢＡ）を含んでいてもよい。システム性能尺度は、システムレイテンシ、誤り率、バッファ空き容量、不揮発性メモリ空き容量、及びデータアクセスリクエスト満足閾値から構成できる。
【００１８】
モデル化した動作は、時間的に以前にサービスを提供したデータアクセスリクエスト、及び／又はデータアクセスリクエストにサービスを提供しているコンピュータ生成仮想システムであってもよい。現在の動作は、サービスを提供された実際のデータアクセスリクエストの位置、持続期間、及びレイテンシ、並びにデータ・ストレージ・システムに対する中断中のデータアクセスリクエストの数及びサイズを含むことができる。
【００１９】
モデル化した性能情報と共にこのような多様なシステム情報を入力することによって、バッファ管理部１５２は、データ・ストレージ・システムの現在の状態を正確に理解し、システム性能を最適化するバッファ宛先を用いて、中断中のデータ書込みリクエストに知的に応答できる。つまり、バッファ管理部１５２は、過去にサービスを提供したデータアクセスリクエストのアルゴリズム１５６及びログ１５８を利用して、中断中のデータ書込みリクエスト用のバッファ保有期間値を生成できる。例えば、バッファ管理部１５２は、中断中の書込みリクエストが所定の閾値より大きな保有期間値を有することを識別でき、それは過度に長くバッファに留まる可能性がある書込みリクエストに対応する。
【００２０】
バッファ管理部１５２を用いてバッファ保有期間値を生成する機能は、変化するシステム条件に基づいてデータのバッファ位置を適応させる機能によって補完される。非限定的な例として、バッファ保有期間値は最初は閾値より短くてもよいが、タイマー１５４によって識別されるように、データが過度に長くバッファに留まると、バッファ管理部１５２を起動し、高速データバッファにデータを移動し、置き換える。従って、バッファ管理部１５２は、データ・ストレージ・システムの積極的、反応的評価を提供し、データ書込みリクエストのデータに関して連続的に、及び潜在的に変化する判定及び動作を可能にする。
【００２１】
図５は、バッファ管理部１７２がデータ読込み動作を誘導できる一例のデータ・ストレージ・システム１７０の一部のブロック図を伝える。当然のことながら、バッファ管理部に対して異なる参照番号が用いられているが、バッファ管理部１７２は、図３〜４で議論した管理部１４４／１５２の特徴及び機能のいずれか又は全てを有しても、全く有していなくてもよい。バッファ管理部１７２は、ＳＲＡＭ等の一つ以上のチップ上バッファ１７４、及びダブルデータレート（ＤＤＲ）ＤＲＡＭ等の一つ以上のチップ外バッファ１７６に接続できる。
【００２２】
入って来るデータ書込みリクエスト１７８はバッファ管理部１７２によって評価でき、次に、バッファ宛先に対応するバッファ保有期間値を生成する。書込みリクエストのデータは、矢印１８０によって表現されるようにチップ外バッファ１７６から、又は矢印１８２によって表現されるようにチップ上バッファ１７４から、不揮発性メモリ１１２に書き込むことができる。書込みリクエストのデータを全てメモリ１１２に移動させるには、単一の書込み動作で十分な可能性があるが、不揮発性メモリ１１２は、トリプルセル（ＴＬＣ）又はクアッドセル（ＱＬＣ）等のマルチレベルセルを備え、完全にデータを転送するために複数の別個の書込み動作を必要とすることが想定される。マルチレベルセルの書込みは、チップ上バッファ１７４ではなく、より遅いチップ外バッファ１７６にバッファ管理部１７２によって誘導される読戻しデータを含んでもよく、チップ上バッファは新しい書込みリクエストデータを受け取り、サービスを提供できる。
【００２３】
バッファ管理部１７２は、任意の理由で発生する不揮発性メモリ１１２からの読戻しデータを積極的に及び反応的に評価し、バッファに読戻しデータを誘導し、システム性能を劣化させることなくデータに最善のサービスを提供できる。従って、バッファ管理部１７２は、書込みアクセスリクエストの実行から生じる実際の又は予測読戻しデータ用のバッファ保有期間値を生成できる。
【００２４】
図６Ａ〜図６Ｃは、分散ネットワークデータ・ストレージ・システムの一部として、データ・ストレージ・デバイスによって時間的に実行される非限定的な動作のブロック図をそれぞれ示す。図６Ａはシーケンス１９０を示し、ステップ１９２においてバッファ管理部は書込みアクセスリクエストを受け取る。バッファ管理部は時点１９４においてリクエストを処理し、ステップ１９６において割り当てられるバッファに対応する実際の及び／又は予想バッファ保有期間値を生成する。
【００２５】
バッファ保有期間値が、１分、１０マイクロ秒、１０ナノ秒等の性能閾値より短い場合、ステップ１９８は継続し、チップ上ＳＲＡＭバッファに書込みリクエストのデータを書き込む。ステップ１９８のバッファへのデータの書込みは、データ・ストレージ・デバイスの不揮発性メモリへのデータの書込みを即座にスケジュールすることが想定される。しかし、ステップ２００におけるイベントの発生はバッファ管理部を起動し、ステップ２０２のデータをより遅いチップ外バッファに退避させる可能性がある。ステップ２００のイベントは特定の例には限定されないが、システムパラメータの変更であっても、他のより優先度の高い書込みリクエストの受取りであっても、又は期待される不揮発性メモリ性能より遅くてもよい。
【００２６】
図６Ｂのシーケンス２１０は、ステップ１９６のバッファ割当て後、及びデータがバッファに書き込まれる前に、イベント２１２がどのように発生可能であるかを示す。イベント２１２はバッファ保有期間値を変更でき、そうでない場合、バッファ管理部を動作させ、ステップ２１４でチップ外ＤＲＡＭにデータリクエストのデータを送る。バッファ管理部がステップ２１６でＳＲＡＭのチップ上バッファにデータを移動させる前の任意の時間、データはチップ外バッファ内に存在してもよい。ＤＲＡＭからＳＲＡＭへのデータ移動の起動は第二イベントと考えてもよく、イベント２１２と同様であっても異なっていてもよい。
【００２７】
チップ上バッファ内の書込みリクエストデータの記憶は、ステップ２１８が不揮発性メモリにデータは素早く書き込むことを可能にする。従って、バッファ管理部は複数のイベントに適応し、チップ外ＤＲＡＭの代わりに、チップ上ＳＲＡＭから不揮発性メモリにデータを最適に書き込む。中断中の書込みデータの一部又は全てをチップ外バッファに記憶するバッファ管理部の機能は、データ・ストレージ・システムが中断中の書込みデータで一杯のチップ上バッファを維持することを可能にし、それは、ＮＡＮＤフラッシュ等のソリッドステート不揮発性メモリを利用するデータ・ストレージ・デバイスで可能な最も高速の書込みリクエストの満足度に対応する。
【００２８】
図６Ｃは、バッファ管理部からのバッファ割当て前、又は割当て中に、一つ以上のイベント２２２が発生するシーケンス２２０を示す。イベント２２２はバッファ管理部を起動し、以前に生成したバッファ保有期間値及び／又はステップ２２４の割当てに対するバッファ割当てを変更でき、ステップ２２６におけるチップ外ＤＲＡＭとステップ２２８におけるチップ上ＳＲＡＭの両方に書込みデータを書き込むことを指定する。バッファ管理部は、ステップ２２６と２２８のバッファ間で分割されるサブセクタに書込みデータを分割してもよい。いくつかの実施形態において、書込みデータは、ステップ２２６と２２８の両方のバッファにミラーリング又はストリッピングさせ、ステップ２０２等で、退避中にＤＲＡＭにデータをうまく書き込むまで、ＳＲＡＭ内にデータを保持しなければならない場合より効率的に、ＳＲＡＭからの退避を可能にする。
【００２９】
一方又は両方のバッファにデータが存在することは、ステップ２３０での不揮発性メモリへのデータの効率的な書込みを可能にする。図６Ａ〜図６Ｃの様々な非限定的な実施形態では、バッファ管理部の適応機能が一般に示されている。しかし、シーケンス１９０、２１０及び２２０の実施形態は包括的ではなく、バッファ管理部は任意の形態で一つ以上の遭遇したイベントに適応し、データ・ストレージ・デバイスの不揮発性メモリのデータ書込み帯域幅を最適化できる。その結果、分散データ・ストレージ・システムネットワークの別個のデータ・ストレージ・デバイスによって、大容量のデータ書込みリクエストを知的に、そしておそらく別個に処理できる。
【００３０】
バッファ管理部の様々な実施形態によって、システム性能を劣化させることなく、動的イベントを認識し、効率的に処理できる。例えば、動的イベントは、データ経路妨害及び／又はボトルネックを生成するエラーであってもよい。別の非限定的な例は、バッファ管理部が接続された様々なメモリにデータを移動又はルート変更することなく、データアクセスリクエストのサービスを低下させる可能性があるアドレス衝突を含むことができる。保有期間が長いメモリに対して、エラーによって妨害されたデータを動的にルート変更する場合の一つの動機は、保有期間が短い（高速経路の）メモリの機能を保護し、別のホストインタフェースポート又は別の仮想ストレージデバイス用のデータ等、妨害されていないデータにサービスを提供することである。
【００３１】
フラッシュページの範囲のマップユニットが読み込まれるガベージコレクション動作中等、アドレス衝突が発生した場合、メモリから転送するために全マップユニットが利用可能になるまで、アルゴリズム１５６はメモリ内に読み込まれる第一フラッシュページの割当てを解除できない可能性がある。基板上の別のページへのガベージコレクションの書込み又は読込み動作と共に基板が使用中になっている等、フラッシュ基板衝突がマップユニットの後半の読込みを一時的に遅延させる場合、全マップユニット及び関連の第一ページは長時間、第一メモリに割り当てられたままとなり、ガベージコレクション及び／又はホスト動作用の所定のスループットを実現するために利用可能なメモリ量を減少させる可能性がある。フラッシュスケジューリングが前もって発生する場合、第一ページがメモリに書き込まれる前に衝突を検出でき、バッファ管理部によって保有期間がより長いメモリにデータを誘導でき、他の動作用に保有期間が短いメモリを確保する。
【００３２】
バッファ管理部の知能の一部は、中断中の書込みリクエストに関連した様々な特徴を予測する機能である。図７は、予測動作を実行できる一例のデータ・ストレージ・デバイスの一部を示す。図のように、バッファ管理部２３２は少なくとも予測モジュール１６０を有し、中断中の書込みリクエストの状態、システム性能尺度、モデル化したシステム動作、及び現在のシステム動作を受け取り、書込みリクエストのサービスに関連した一つ以上のパラメータを予測できる。
【００３３】
予測モジュール１６０は単独で動作することも、ログ１５８又はアルゴリズム１５６等のバッファ管理部の他の形態と共に動作し、持続期間、レイテンシ、誤り率、及び消費電力等のサービスパラメータを含む仮想リクエスト・サービス・シナリオを生成できる。予測モジュール１６０は、様々なリスクプロファイルを備えた二以上のリクエスト・サービス・シナリオを同時に又は順次生成することもできる。つまり、予測モジュール１６０は、精度及びリスクが真になるように生成されたリクエスト・サービス・シナリオを評価できる。このようなリスク評価によって、モジュール１６０は、精度及びリスクが真になる可能性が最も高いシナリオを選択でき、それは、９０％等の所定の閾値を超える精度に対応できる。
【００３４】
予測されたリクエスト・サービス・シナリオのサービスパラメータに予測モジュール１６０がどのように到達したかにかかわらず、バッファ管理部２３２は、書込みリクエストの処理用の所定のファームウエア命令を変更することによって反応できる。例えば、バッファ管理部２３２は、データ用のカスタムタイマー範囲を設定し、書込みリクエストのデータを修正し、及び／又は複数の異なるバッファへの書込みデータを遮断できる。当然のことながら、図７のバッファ管理部２３２の出力反応は限定的でも包括的でもなく、バッファ管理部２３２は、データ書込みリクエストの処理に任意の変更を行い、１０ナノ秒又は１０マイクロ秒未満の書込みリクエストレイテンシを維持する等、一つ以上のデータ書込みリクエストのサービス中、システム性能を最適化できる。
【００３５】
図９は、図１〜８の様々な実施形態で実現されるバッファ管理ルーチン２５０の実行フローチャートである。ルーチン２５０はステップ２５２で開始し、データ・ストレージ・システム分散ネットワークの一部として一つ以上のデータ・ストレージ・デバイスを起動する。各データ・ストレージ・デバイスは、共通デバイス筐体内の不揮発性メモリと共に、チップ上の第一バッファとチップ外の第二バッファに接続されるバッファ管理部から構成できる。システムの各データ・ストレージ・デバイスは一つ以上のリモートホストによってアクセス可能であることが想定される。
【００３６】
ステップ２５４において、少なくとも一つのホストから一つ以上のデータ書込みリクエストを受け取る。バッファ又は不揮発性メモリに書き込む前に、ステップ２５６は中断中の書込みリクエストのデータを評価し、バッファ保有期間値を生成する。いくつかの実施形態において、データはネットワーク制御部又はデータ・ストレージ・デバイス自体に存在するキャッシュメモリに書き込まれ、同時に、ステップ２５６は書込みリクエストを処理し、バッファ保有期間値とバッファ宛先を提供する。
【００３７】
生成されたバッファ保有期間値は、その後、現在のデータ・ストレージ・システム性能を考慮して、バッファ管理部によって生成された閾値に対してバッファ管理部によって評価される。つまり、バッファ管理部は、データ・ストレージ・デバイス及び／又はシステムの性能を継続的に又は散発的に評価し、最適なデータ書込みリクエストサービスに対応するバッファ保有期間値用の閾値を生成できる。判定２５８は、ステップ２５６からのバッファ保有期間値を保有期間閾値と比較する。保有期間値が閾値より長い場合、書込みリクエストのデータが閾値割当て時間より長くバッファ内に存在することを意味し、ルーチン２５０はステップ２６０に進み、データ書込みリクエストのデータをチップ外の第二バッファに書き込む。
【００３８】
ステップ２６０の結論において、又はバッファ保有期間値が判定２５８の閾値より短い場合、判定２６２は、チップ上の第一バッファが不揮発性メモリへの書込みを待機しているデータで一杯であるかどうかを評価することに進む。一杯であれば、データはチップ外の第二バッファに書き込まれる。第一バッファが一杯ではない場合、ステップ２６６はチップ上の第一バッファにデータを書き込む。判定２６２におけるチップ上の第一バッファがデータで一杯であるかどうかの判定は、より低速のチップ外の第二バッファにデータを書き込む前に、より高速の第一バッファが一杯になることを保証する。
【００３９】
ステップ２６４又は２６６からの第一又は第二バッファのいずれかに存在するデータは、バッファ管理部が、ステップ２６８のデータ・ストレージ・デバイスの不揮発性メモリへのデータの書込みを効率的にスケジューリングすることを可能にする。データを書き込まなければならない代わりに、各バッファから不揮発性メモリへのデータの書込みを簡便にスケジューリングする機能は、バッファ管理部が、データ書込みリクエストの帯域幅を最適化し、全ＳＲＡＭチップ上バッファを維持することを可能にする。
【００４０】
当然のことながら、本開示内容の様々な実施形態の多数の特徴及び構成は、様々な実施形態の構造及び機能の詳細と共に、上記の説明に述べられているが、この詳細な説明は例示的なものに過ぎず、添付の請求項に表現されている項目の広く一般的な意味によって示される完全な範囲に対して、本開示内容の原理内の部品の構造及び配置の問題で特に、変更を詳細に行ってもよい。例えば、特定の要素は、本技術の精神及び範囲から逸脱することなく、特定の用途に依存して様々であってもよい。
【符号の説明】
【００４１】
１００，１０２  データ・ストレージ・システム、１０４  ホスト、１０６  ネットワーク制御部、１０８  第二データ・ストレージ・デバイス、１１０  ローカル制御部、１１２  不揮発性メモリ、１１４  バッファ、１１６  キャッシュ。
【図１】
2018206380.tif 000003
【図２】
2018206380.tif 000004
【図３】
2018206380.tif 000005
【図４】
2018206380.tif 000006
【図５】
2018206380.tif 000007
【図６Ａ】
2018206380.tif 000008
【図６Ｂ】
2018206380.tif 000009
【図６Ｃ】
2018206380.tif 000010
【図７】
2018206380.tif 000011
【図８】
2018206380.tif 000012
【外国語明細書】
2018206380000001.pdf