JP2018206380A - バッファ保有期間管理を備えたデータ・ストレージ・デバイス - Google Patents

バッファ保有期間管理を備えたデータ・ストレージ・デバイス Download PDF

Info

Publication number
JP2018206380A
JP2018206380A JP2018102292A JP2018102292A JP2018206380A JP 2018206380 A JP2018206380 A JP 2018206380A JP 2018102292 A JP2018102292 A JP 2018102292A JP 2018102292 A JP2018102292 A JP 2018102292A JP 2018206380 A JP2018206380 A JP 2018206380A
Authority
JP
Japan
Prior art keywords
buffer
data
data storage
storage device
manager
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
JP2018102292A
Other languages
English (en)
Other versions
JP2018206380A5 (ja
Inventor
ジャクソン・エリス
ellis Jackson
ジェフリー・ムンシル
Munsil Jeffrey
ティモシー・カネパ
Canepa Timothy
スティーブン・ハンナ
Hanna Stephen
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 JP2018206380A publication Critical patent/JP2018206380A/ja
Publication of JP2018206380A5 publication Critical patent/JP2018206380A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】バッファ保有期間管理を備えたデータ・ストレージ・デバイスを提供する。【解決手段】一つ以上のバッファを備えるデータ・ストレージ・デバイスは、バッファ保有期間管理を利用でき、少なくともデータ・ストレージ・デバイスは、第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有する。第一バッファはチップ上に配置できるが、第二バッファはチップ外に配置される。第一バッファには、バッファ管理部によって誘導されるように、所定の保有期間閾値より短い保有期間を有するデータを充填できる。【選択図】図1

Description

いくつかの実施形態において、データ・ストレージ・デバイスは第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを備えるデータ・ストレージ・デバイスを有する。第一バッファはチップ上に配置されるが、第二バッファはチップ外に配置される。第一バッファには、バッファ保有期間管理の一部としてバッファ管理部によって誘導されるように、所定の保有期間閾値より短い保有期間を有するデータを充填する。
様々な実施形態に従って配置される一例のデータ・ストレージ・システムのブロック図である。 図1のデータ・ストレージ・システム内で使用可能な一例のデータ・ストレージ・デバイスの一部のブロック図を示す。 いくつかの実施形態に従って構成及び動作させる一例のデータ・ストレージ・システムの一部のブロック図である。 図3のデータ・ストレージ・システム内で利用される一例のデータ・ストレージ・デバイスの一部のブロック図を示す。 図3のデータ・ストレージ・システム内で用いられる一例のデータ・ストレージ・デバイスの一部を示す。 様々な実施形態に従って動作させる一例のデータ・ストレージ・デバイスの異なるブロック図をそれぞれ示す。 様々な実施形態に従って動作させる一例のデータ・ストレージ・デバイスの異なるブロック図をそれぞれ示す。 様々な実施形態に従って動作させる一例のデータ・ストレージ・デバイスの異なるブロック図をそれぞれ示す。 図3のデータ・ストレージ・システム内で利用される一例のデータ・ストレージ・デバイスの一部を表現する。 様々な実施形態に従って実行される一例のバッファ保有期間管理ルーチン用のフローチャートを提供する。
様々な実施形態は一般に、ホストからの書込みリクエストに対応する書込みデータの実際の及び/又は予測保有期間に基づくバッファ管理を備えたデータ・ストレージ・システムを対象とする。
コンピューティングデバイスがより普及し、高性能になるにつれて、生成、転送及び記憶されるデータ量も増大している。データ・ストレージ・システムとのデータのより高速な転送に対応するために、様々な異なる種類のデータメモリが発展している。しかし、異なる種類のデータメモリは異なる物理的特性及び性能特性を有し、単一の種類のデータメモリを用いてデータ・ストレージ・システムにサービスを提供することは困難になっている。その結果、複数の異なる種類のデータメモリを用いてデータの転送及び記憶を管理する際には、ボトルネック及び非効率性が存在する。
従って、いくつかの実施形態は、予測及び/又は実際のデータ保有期間に基づいて、異なる種類のデータメモリの間でデータを知的に誘導するバッファ管理部を提供する。複数の異なる種類のデータメモリを選択的に利用する機能は、データ・ストレージ・システムが、各種類のメモリの効率的な特性を利用することによって、データ転送及びストレージ性能を最適化することを可能にする。
図面を参照すると、図1は、様々な実施形態を実現可能な一例のデータ・ストレージ・システム100のブロック図を示す。データ・ストレージ・システム100は任意の数のデータ・ストレージ・デバイス102を利用でき、それらは、ソリッドステート、回転磁気、又はハイブリッドドライブ等の同様の又は異なる種類のデバイスであってもよい。一つ以上のホスト104は、有線及び/又は無線ネットワークを介して接続される少なくとも一つのネットワーク制御部106を介して、データ・ストレージ・デバイス102に同時に、順次、又は選択的にアクセスできる。なお、ネットワーク制御部106は、サーバ又はカード等のハードウエア実装であっても、仮想マシン等のソフトウエア実装であってもよい。
破線で示したように、データ・ストレージ・システム100に第二データ・ストレージ・デバイス108を組み込み、単一のデータ・ストレージ・デバイス102より大きなデータ容量を提供することもできる。データ・ストレージ・デバイス108の追加は更に、個別デバイスの冗長アレイ(RAID)としてパリティデータのストリッピング、ミラーリング及びストレージ等を用いて、データ保護及びセキュリティの改善を可能にしてもよい。必須でも限定的でもないが、データ・ストレージ・デバイス102/108は、マイクロプロセッサ又はプログラム可能制御部等のローカル制御部110、ソリッドステート型等の不揮発性メモリ112、揮発性メモリ等の少なくとも一つのバッファ114、及び揮発性メモリ等のキャッシュ116から構成できる。
相対的に大きなデータ容量にアクセス可能な複数のホスト102を用いて、特に、RAIDシステム構成内の各データ・ストレージ・デバイス102/108によって、大容量のデータを同時に及び順次処理できる。処理中、不揮発性メモリ112に割り当てられたデータがバッファ114又はキャッシュ116内で中断中になっていると、このような大容量のデータは性能ボトルネックを経験する可能性がある。つまり、NANDフラッシュ等の一部の不揮発性メモリ112はバイト又はビットアドレス可能ではなく、その場で書込みできず、メモリ112のデータマップ、複数のデータセクタのマップユニット、及びガベージコレクション部分を編集する際、非効率性を生み出す。
図2は、図1のデータ・ストレージ・システム100で利用可能な一例のデータ・ストレージ・デバイス120の一部のブロック図を伝える。データ・ストレージ・デバイス120は、接続されたローカル制御部110と共に、ウエハチップ124内に存在する静的ランダム・アクセス・メモリ等の第一揮発性バッファメモリ122を備えることができる。
ウエハチップ124のシリコン材料内の第一揮発性バッファメモリ122の物理的構成は「チップ上」として特徴付けることができるが、第二揮発性バッファメモリ126等の一つ以上の相互接続を介したチップ124への単なる相互接続は「チップ外」として特徴付けることができる。言い換えると、ウエハチップ124のシリコン材料から第一揮発性バッファメモリ122の形態を作製することは、メモリ122がチップ上にあることを意味し、ウエハ材料から構成されていないチップ124への接続は第二メモリ126がチップ外にあることを意味する。
チップ上の第一揮発性バッファメモリ122の構成は、少なくとも部分的に、クロック周波数制限の減少と共により少ないインタフェース及びバッファへのより高速なデータ転送及びより短いレイテンシ期限を提供し、チップ外の第二揮発性バッファメモリ126を抑制する。チップ上の第一揮発性バッファメモリ122のより高速な性能は、ウエハチップ124上の利用可能な資源に関しては高価であり、メモリ122により小さなデータ容量をもたらす。従って、データ・ストレージ・デバイス120は、第一揮発性バッファメモリ122と第二揮発性バッファメモリ124の両方を利用して、不揮発性メモリ112へのデータ書込みリクエストに関連したデータを一時的に記憶する。
更に、バッファ管理は歴史的に未発達であり、不揮発性メモリ112への大容量のデータの書込みに関連した性能ボトルネックを悪化させているだけであった。例えば、先入れ先出しバッファ管理方式は、メモリ112への処理及び/又は書込みに比較的長い時間がかかるデータを、より高速な第一バッファメモリ122に充填できる。別の例として、より大容量の第二バッファメモリ126にデータを順次書き込み、その後、より高速の第一バッファメモリ122に書き込むことは、第一バッファメモリ122によって処理可能な書込みデータの性能を劣化させる第二バッファメモリ126のレイテンシをもたらす。
これらの問題及び他の問題は、複数の異なる種類のバッファを知的に管理し、中断中の書込みリクエストに関連したデータにサービスを提供するデータ・ストレージ・システムを様々な実施形態に実現させる。図3は、本開示内容の様々な実施形態を利用可能な一例のデータ・ストレージ・システム140の一部のブロック図を示す。データ・ストレージ・システム140は、データ・ストレージ・デバイス142と通信を行う任意の数のローカル又はリモートホスト104を有する。このような通信は、ネットワーク制御部、スイッチ、及び他の上流のネットワーク分散ハードウエア及び/又はソフトウエアに対応できる。
静的なファームウエアコードに従ってバッファ内に単に記憶する代わりに、バッファ管理部144は適応知能を提供でき、各バッファ122/126内の書込みデータの生成された実際の及び/又は予測保有期間に基づいて、チップ上の第一バッファ122とチップ外の第二バッファ124から選択を行う。当然のことながら、「保有期間」は、不揮発性メモリ112に書き込む時間にかかわらず、バッファ122/126に留まっている書込みリクエストに関連した時間データと理解される。つまり、データ保有期間は、不揮発性メモリ112にデータが書き込まれた後、長時間、ガベージコレクション等によって削除されるまで、バッファ122/126内に留まっている時間データの量として特徴付けることもできる。
いくつかの実施形態によると、バッファ管理部144は、入って来る書込みリクエストを評価し、バッファ122/126の宛先に対応するデータ保有期間値を生成し、データストレージ性能を最適化し、少なくともデータ書込みリクエストのサービスに影響を与える。このような知的評価によって、システム140の動作条件に対して、積極的に及び反応的に各バッファ122/126に及びそれらの間でデータを誘導するバッファ管理部144をもたらす。
図4は、図3のデータ・ストレージ・システム140内で利用可能な一例のバッファシステム150の一部を示す。バッファシステム150は、データ・ストレージ・デバイス102/142の筐体内に配置でき、データ・ストレージ・システム100/140の各データ・ストレージ・デバイスは別個のバッファ管理部152を有し、管理部152はタイマー154、ソフトウエアアルゴリズム156、ログ158、及び予測モジュール160からなることが想定される。複数の別個のバッファ管理部152は、共通のシステムハードウエア及び/又はソフトウエアを利用でき、データ・ストレージ・デバイス筐体内に収容されるタイマー154、アルゴリズム156、ログ158、及び予測モジュール160を有しても有していなくてもよい。
バッファ管理部152は、一つ以上の発信源からデータ・ストレージ・システムの内外に、任意の数のシステム、書込みデータ、及びモデルパラメータを受け取ることができる。しかし、いくつかの実施形態は、中断中の書込みリクエスト、システム性能尺度、モデル化したシステム動作、及び現在のシステム動作に関する情報を順次又は同時に受け取る。中断中の書込みリクエストの情報は、容量、位置、範囲、割り当てられた論理ブロックアドレス(LBA)、及び割り当てられた物理ブロックアドレス(PBA)を含んでいてもよい。システム性能尺度は、システムレイテンシ、誤り率、バッファ空き容量、不揮発性メモリ空き容量、及びデータアクセスリクエスト満足閾値から構成できる。
モデル化した動作は、時間的に以前にサービスを提供したデータアクセスリクエスト、及び/又はデータアクセスリクエストにサービスを提供しているコンピュータ生成仮想システムであってもよい。現在の動作は、サービスを提供された実際のデータアクセスリクエストの位置、持続期間、及びレイテンシ、並びにデータ・ストレージ・システムに対する中断中のデータアクセスリクエストの数及びサイズを含むことができる。
モデル化した性能情報と共にこのような多様なシステム情報を入力することによって、バッファ管理部152は、データ・ストレージ・システムの現在の状態を正確に理解し、システム性能を最適化するバッファ宛先を用いて、中断中のデータ書込みリクエストに知的に応答できる。つまり、バッファ管理部152は、過去にサービスを提供したデータアクセスリクエストのアルゴリズム156及びログ158を利用して、中断中のデータ書込みリクエスト用のバッファ保有期間値を生成できる。例えば、バッファ管理部152は、中断中の書込みリクエストが所定の閾値より大きな保有期間値を有することを識別でき、それは過度に長くバッファに留まる可能性がある書込みリクエストに対応する。
バッファ管理部152を用いてバッファ保有期間値を生成する機能は、変化するシステム条件に基づいてデータのバッファ位置を適応させる機能によって補完される。非限定的な例として、バッファ保有期間値は最初は閾値より短くてもよいが、タイマー154によって識別されるように、データが過度に長くバッファに留まると、バッファ管理部152を起動し、高速データバッファにデータを移動し、置き換える。従って、バッファ管理部152は、データ・ストレージ・システムの積極的、反応的評価を提供し、データ書込みリクエストのデータに関して連続的に、及び潜在的に変化する判定及び動作を可能にする。
図5は、バッファ管理部172がデータ読込み動作を誘導できる一例のデータ・ストレージ・システム170の一部のブロック図を伝える。当然のことながら、バッファ管理部に対して異なる参照番号が用いられているが、バッファ管理部172は、図3〜4で議論した管理部144/152の特徴及び機能のいずれか又は全てを有しても、全く有していなくてもよい。バッファ管理部172は、SRAM等の一つ以上のチップ上バッファ174、及びダブルデータレート(DDR)DRAM等の一つ以上のチップ外バッファ176に接続できる。
入って来るデータ書込みリクエスト178はバッファ管理部172によって評価でき、次に、バッファ宛先に対応するバッファ保有期間値を生成する。書込みリクエストのデータは、矢印180によって表現されるようにチップ外バッファ176から、又は矢印182によって表現されるようにチップ上バッファ174から、不揮発性メモリ112に書き込むことができる。書込みリクエストのデータを全てメモリ112に移動させるには、単一の書込み動作で十分な可能性があるが、不揮発性メモリ112は、トリプルセル(TLC)又はクアッドセル(QLC)等のマルチレベルセルを備え、完全にデータを転送するために複数の別個の書込み動作を必要とすることが想定される。マルチレベルセルの書込みは、チップ上バッファ174ではなく、より遅いチップ外バッファ176にバッファ管理部172によって誘導される読戻しデータを含んでもよく、チップ上バッファは新しい書込みリクエストデータを受け取り、サービスを提供できる。
バッファ管理部172は、任意の理由で発生する不揮発性メモリ112からの読戻しデータを積極的に及び反応的に評価し、バッファに読戻しデータを誘導し、システム性能を劣化させることなくデータに最善のサービスを提供できる。従って、バッファ管理部172は、書込みアクセスリクエストの実行から生じる実際の又は予測読戻しデータ用のバッファ保有期間値を生成できる。
図6A〜図6Cは、分散ネットワークデータ・ストレージ・システムの一部として、データ・ストレージ・デバイスによって時間的に実行される非限定的な動作のブロック図をそれぞれ示す。図6Aはシーケンス190を示し、ステップ192においてバッファ管理部は書込みアクセスリクエストを受け取る。バッファ管理部は時点194においてリクエストを処理し、ステップ196において割り当てられるバッファに対応する実際の及び/又は予想バッファ保有期間値を生成する。
バッファ保有期間値が、1分、10マイクロ秒、10ナノ秒等の性能閾値より短い場合、ステップ198は継続し、チップ上SRAMバッファに書込みリクエストのデータを書き込む。ステップ198のバッファへのデータの書込みは、データ・ストレージ・デバイスの不揮発性メモリへのデータの書込みを即座にスケジュールすることが想定される。しかし、ステップ200におけるイベントの発生はバッファ管理部を起動し、ステップ202のデータをより遅いチップ外バッファに退避させる可能性がある。ステップ200のイベントは特定の例には限定されないが、システムパラメータの変更であっても、他のより優先度の高い書込みリクエストの受取りであっても、又は期待される不揮発性メモリ性能より遅くてもよい。
図6Bのシーケンス210は、ステップ196のバッファ割当て後、及びデータがバッファに書き込まれる前に、イベント212がどのように発生可能であるかを示す。イベント212はバッファ保有期間値を変更でき、そうでない場合、バッファ管理部を動作させ、ステップ214でチップ外DRAMにデータリクエストのデータを送る。バッファ管理部がステップ216でSRAMのチップ上バッファにデータを移動させる前の任意の時間、データはチップ外バッファ内に存在してもよい。DRAMからSRAMへのデータ移動の起動は第二イベントと考えてもよく、イベント212と同様であっても異なっていてもよい。
チップ上バッファ内の書込みリクエストデータの記憶は、ステップ218が不揮発性メモリにデータは素早く書き込むことを可能にする。従って、バッファ管理部は複数のイベントに適応し、チップ外DRAMの代わりに、チップ上SRAMから不揮発性メモリにデータを最適に書き込む。中断中の書込みデータの一部又は全てをチップ外バッファに記憶するバッファ管理部の機能は、データ・ストレージ・システムが中断中の書込みデータで一杯のチップ上バッファを維持することを可能にし、それは、NANDフラッシュ等のソリッドステート不揮発性メモリを利用するデータ・ストレージ・デバイスで可能な最も高速の書込みリクエストの満足度に対応する。
図6Cは、バッファ管理部からのバッファ割当て前、又は割当て中に、一つ以上のイベント222が発生するシーケンス220を示す。イベント222はバッファ管理部を起動し、以前に生成したバッファ保有期間値及び/又はステップ224の割当てに対するバッファ割当てを変更でき、ステップ226におけるチップ外DRAMとステップ228におけるチップ上SRAMの両方に書込みデータを書き込むことを指定する。バッファ管理部は、ステップ226と228のバッファ間で分割されるサブセクタに書込みデータを分割してもよい。いくつかの実施形態において、書込みデータは、ステップ226と228の両方のバッファにミラーリング又はストリッピングさせ、ステップ202等で、退避中にDRAMにデータをうまく書き込むまで、SRAM内にデータを保持しなければならない場合より効率的に、SRAMからの退避を可能にする。
一方又は両方のバッファにデータが存在することは、ステップ230での不揮発性メモリへのデータの効率的な書込みを可能にする。図6A〜図6Cの様々な非限定的な実施形態では、バッファ管理部の適応機能が一般に示されている。しかし、シーケンス190、210及び220の実施形態は包括的ではなく、バッファ管理部は任意の形態で一つ以上の遭遇したイベントに適応し、データ・ストレージ・デバイスの不揮発性メモリのデータ書込み帯域幅を最適化できる。その結果、分散データ・ストレージ・システムネットワークの別個のデータ・ストレージ・デバイスによって、大容量のデータ書込みリクエストを知的に、そしておそらく別個に処理できる。
バッファ管理部の様々な実施形態によって、システム性能を劣化させることなく、動的イベントを認識し、効率的に処理できる。例えば、動的イベントは、データ経路妨害及び/又はボトルネックを生成するエラーであってもよい。別の非限定的な例は、バッファ管理部が接続された様々なメモリにデータを移動又はルート変更することなく、データアクセスリクエストのサービスを低下させる可能性があるアドレス衝突を含むことができる。保有期間が長いメモリに対して、エラーによって妨害されたデータを動的にルート変更する場合の一つの動機は、保有期間が短い(高速経路の)メモリの機能を保護し、別のホストインタフェースポート又は別の仮想ストレージデバイス用のデータ等、妨害されていないデータにサービスを提供することである。
フラッシュページの範囲のマップユニットが読み込まれるガベージコレクション動作中等、アドレス衝突が発生した場合、メモリから転送するために全マップユニットが利用可能になるまで、アルゴリズム156はメモリ内に読み込まれる第一フラッシュページの割当てを解除できない可能性がある。基板上の別のページへのガベージコレクションの書込み又は読込み動作と共に基板が使用中になっている等、フラッシュ基板衝突がマップユニットの後半の読込みを一時的に遅延させる場合、全マップユニット及び関連の第一ページは長時間、第一メモリに割り当てられたままとなり、ガベージコレクション及び/又はホスト動作用の所定のスループットを実現するために利用可能なメモリ量を減少させる可能性がある。フラッシュスケジューリングが前もって発生する場合、第一ページがメモリに書き込まれる前に衝突を検出でき、バッファ管理部によって保有期間がより長いメモリにデータを誘導でき、他の動作用に保有期間が短いメモリを確保する。
バッファ管理部の知能の一部は、中断中の書込みリクエストに関連した様々な特徴を予測する機能である。図7は、予測動作を実行できる一例のデータ・ストレージ・デバイスの一部を示す。図のように、バッファ管理部232は少なくとも予測モジュール160を有し、中断中の書込みリクエストの状態、システム性能尺度、モデル化したシステム動作、及び現在のシステム動作を受け取り、書込みリクエストのサービスに関連した一つ以上のパラメータを予測できる。
予測モジュール160は単独で動作することも、ログ158又はアルゴリズム156等のバッファ管理部の他の形態と共に動作し、持続期間、レイテンシ、誤り率、及び消費電力等のサービスパラメータを含む仮想リクエスト・サービス・シナリオを生成できる。予測モジュール160は、様々なリスクプロファイルを備えた二以上のリクエスト・サービス・シナリオを同時に又は順次生成することもできる。つまり、予測モジュール160は、精度及びリスクが真になるように生成されたリクエスト・サービス・シナリオを評価できる。このようなリスク評価によって、モジュール160は、精度及びリスクが真になる可能性が最も高いシナリオを選択でき、それは、90%等の所定の閾値を超える精度に対応できる。
予測されたリクエスト・サービス・シナリオのサービスパラメータに予測モジュール160がどのように到達したかにかかわらず、バッファ管理部232は、書込みリクエストの処理用の所定のファームウエア命令を変更することによって反応できる。例えば、バッファ管理部232は、データ用のカスタムタイマー範囲を設定し、書込みリクエストのデータを修正し、及び/又は複数の異なるバッファへの書込みデータを遮断できる。当然のことながら、図7のバッファ管理部232の出力反応は限定的でも包括的でもなく、バッファ管理部232は、データ書込みリクエストの処理に任意の変更を行い、10ナノ秒又は10マイクロ秒未満の書込みリクエストレイテンシを維持する等、一つ以上のデータ書込みリクエストのサービス中、システム性能を最適化できる。
図9は、図1〜8の様々な実施形態で実現されるバッファ管理ルーチン250の実行フローチャートである。ルーチン250はステップ252で開始し、データ・ストレージ・システム分散ネットワークの一部として一つ以上のデータ・ストレージ・デバイスを起動する。各データ・ストレージ・デバイスは、共通デバイス筐体内の不揮発性メモリと共に、チップ上の第一バッファとチップ外の第二バッファに接続されるバッファ管理部から構成できる。システムの各データ・ストレージ・デバイスは一つ以上のリモートホストによってアクセス可能であることが想定される。
ステップ254において、少なくとも一つのホストから一つ以上のデータ書込みリクエストを受け取る。バッファ又は不揮発性メモリに書き込む前に、ステップ256は中断中の書込みリクエストのデータを評価し、バッファ保有期間値を生成する。いくつかの実施形態において、データはネットワーク制御部又はデータ・ストレージ・デバイス自体に存在するキャッシュメモリに書き込まれ、同時に、ステップ256は書込みリクエストを処理し、バッファ保有期間値とバッファ宛先を提供する。
生成されたバッファ保有期間値は、その後、現在のデータ・ストレージ・システム性能を考慮して、バッファ管理部によって生成された閾値に対してバッファ管理部によって評価される。つまり、バッファ管理部は、データ・ストレージ・デバイス及び/又はシステムの性能を継続的に又は散発的に評価し、最適なデータ書込みリクエストサービスに対応するバッファ保有期間値用の閾値を生成できる。判定258は、ステップ256からのバッファ保有期間値を保有期間閾値と比較する。保有期間値が閾値より長い場合、書込みリクエストのデータが閾値割当て時間より長くバッファ内に存在することを意味し、ルーチン250はステップ260に進み、データ書込みリクエストのデータをチップ外の第二バッファに書き込む。
ステップ260の結論において、又はバッファ保有期間値が判定258の閾値より短い場合、判定262は、チップ上の第一バッファが不揮発性メモリへの書込みを待機しているデータで一杯であるかどうかを評価することに進む。一杯であれば、データはチップ外の第二バッファに書き込まれる。第一バッファが一杯ではない場合、ステップ266はチップ上の第一バッファにデータを書き込む。判定262におけるチップ上の第一バッファがデータで一杯であるかどうかの判定は、より低速のチップ外の第二バッファにデータを書き込む前に、より高速の第一バッファが一杯になることを保証する。
ステップ264又は266からの第一又は第二バッファのいずれかに存在するデータは、バッファ管理部が、ステップ268のデータ・ストレージ・デバイスの不揮発性メモリへのデータの書込みを効率的にスケジューリングすることを可能にする。データを書き込まなければならない代わりに、各バッファから不揮発性メモリへのデータの書込みを簡便にスケジューリングする機能は、バッファ管理部が、データ書込みリクエストの帯域幅を最適化し、全SRAMチップ上バッファを維持することを可能にする。
当然のことながら、本開示内容の様々な実施形態の多数の特徴及び構成は、様々な実施形態の構造及び機能の詳細と共に、上記の説明に述べられているが、この詳細な説明は例示的なものに過ぎず、添付の請求項に表現されている項目の広く一般的な意味によって示される完全な範囲に対して、本開示内容の原理内の部品の構造及び配置の問題で特に、変更を詳細に行ってもよい。例えば、特定の要素は、本技術の精神及び範囲から逸脱することなく、特定の用途に依存して様々であってもよい。
100,102 データ・ストレージ・システム、104 ホスト、106 ネットワーク制御部、108 第二データ・ストレージ・デバイス、110 ローカル制御部、112 不揮発性メモリ、114 バッファ、116 キャッシュ。

Claims (20)

  1. 第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有するデータ・ストレージ・デバイスを備える装置であって、前記第一バッファはチップ上に配置され、前記第二バッファはチップ外に配置され、前記第一バッファには、前記バッファ管理部によって誘導されるように、所定の保有期間閾値より短い保有期間を有するデータを充填する、装置。
  2. 前記第一バッファは静的ランダム・アクセス・メモリである、請求項1に記載の装置。
  3. 前記第二バッファは動的ランダム・アクセス・メモリである、請求項1に記載の装置。
  4. 前記不揮発性メモリはNANDフラッシュである、請求項1に記載の装置。
  5. 前記第二バッファは前記データ・ストレージ・デバイスの筐体内に配置される、請求項1に記載の装置。
  6. 方法であって、
    データ・ストレージ・デバイスを起動し、前記データ・ストレージ・デバイスは、第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有し、前記第一バッファはチップ上に配置され、前記第二バッファはチップ外に配置されることと、
    前記バッファ管理部を用いて保有期間閾値を生成することと、
    前記保有期間閾値を超える第一データセクタに応じて、前記バッファ管理部を用いて前記第一バッファから前記第一データセクタを退避させることと、
    前記バッファ管理部によって誘導されるように、前記第一バッファ内に第二データセクタを記憶し、前記保有期間閾値より短い保有期間を有するデータを前記第一バッファに充填することを備える方法。
  7. 前記保有期間閾値は前記第二バッファのレイテンシ速度に一致する、請求項6に記載の方法。
  8. 前記バッファ管理部は前記第一データセクタを前記第二バッファに退避させる、請求項6に記載の方法。
  9. 前記第二データセクタは次に前記不揮発性メモリに書き込まれる、請求項6に記載の方法。
  10. 前記保有期間閾値は、アルゴリズム、現在のデータ・ストレージ・デバイスの動作、過去のデータ・ストレージ・デバイスの性能、及び中断中の書き込みリクエストの容量に基づいて生成される、請求項6に記載の方法。
  11. 前記バッファ管理部は、前記第一バッファ内に読戻しデータを記憶することなく、前記不揮発性メモリからの前記読戻しデータを前記第二バッファに記憶する、請求項6に記載の方法。
  12. 前記バッファ管理部は、前記第一バッファから前記第二バッファに前記第二データセクタのルートを変更することによって動的イベントに反応する、請求項6に記載の方法。
  13. 前記動的イベントは、データ・ストレージ・デバイスの性能の低下に対応するデータエラーである、請求項12に記載の方法。
  14. 前記動的イベントは、データ・ストレージ・デバイスの性能の低下に対応するアドレス衝突である、請求項12に記載の方法。
  15. 方法であって、
    データ・ストレージ・デバイスを起動し、前記データ・ストレージ・デバイスは、第一バッファ、第二バッファ、バッファ管理部、及び不揮発性メモリを有し、前記第一バッファはチップ上に配置され、前記第二バッファはチップ外に配置されることと、
    前記バッファ管理部を用いて保有期間閾値を生成することと、
    前記バッファ管理部を用いて第一データセクタの保有期間を予測することと、
    前記保有期間閾値より長い予測保有期間に応じて、前記第二バッファ内に前記第一データセクタを記憶することと、
    前記バッファ管理部を用いて第二データセクタの保有期間を予測することと、
    前記保有期間を超える第三データセクタに応じて、前記バッファ管理部を用いて前記第一バッファから前記第三データセクタを退避させることと、
    前記バッファ管理部によって誘導されるように、前記第一バッファ内に前記第二データセクタを記憶し、前記保有期間閾値より短い保有期間を有するデータを前記第一バッファに充填することを備える方法。
  16. 前記バッファ管理部は、前記第二データセクタを評価する予測モジュールに応じてカスタムタイマーを設定する、請求項15に記載の方法。
  17. 前記カスタムタイマーは前記保有期間閾値と異なる、請求項16に記載の方法。
  18. 前記バッファ管理部は前記第二データセクタの予測保有期間に応じて前記第二データセクタを変更する、請求項15に記載の方法。
  19. 前記バッファ管理部は前記第二データセクタを第一及び第二サブセクタに分割し、前記一サブセクタは前記第一バッファに記憶され、前記第二サブセクタは前記第二バッファに記憶される、請求項18に記載の方法。
  20. 前記バッファ管理部は各予測ステップ中、少なくとも一つのデータ・ストレージ・デバイスの性能尺度を予測する、請求項15に記載の方法。
JP2018102292A 2017-05-30 2018-05-29 バッファ保有期間管理を備えたデータ・ストレージ・デバイス Pending JP2018206380A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/608,203 US10248330B2 (en) 2017-05-30 2017-05-30 Data storage device with buffer tenure management
US15/608,203 2017-05-30

Publications (2)

Publication Number Publication Date
JP2018206380A true JP2018206380A (ja) 2018-12-27
JP2018206380A5 JP2018206380A5 (ja) 2019-02-28

Family

ID=64459939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018102292A Pending JP2018206380A (ja) 2017-05-30 2018-05-29 バッファ保有期間管理を備えたデータ・ストレージ・デバイス

Country Status (4)

Country Link
US (1) US10248330B2 (ja)
JP (1) JP2018206380A (ja)
KR (1) KR102095471B1 (ja)
CN (1) CN108984429B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776023B2 (en) 2016-11-07 2020-09-15 Gaea LLC Data storage device with configurable policy-based storage device behavior
JP2019046238A (ja) * 2017-09-04 2019-03-22 東芝メモリ株式会社 メモリシステム
KR102507302B1 (ko) * 2018-01-22 2023-03-07 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
DE102018005618B4 (de) * 2018-07-17 2021-10-14 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Vorrichtung zur gepufferten Übertragung von Daten
US11237730B2 (en) 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11449738B2 (en) * 2019-08-09 2022-09-20 Korea Electronics Technology Institute Neuromorphic memory management system and method thereof
KR102408966B1 (ko) * 2019-08-09 2022-06-15 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
KR102407263B1 (ko) * 2019-08-09 2022-06-13 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 이를 통한 가중치 연산 방법
US11663144B2 (en) 2020-01-20 2023-05-30 International Business Machines Corporation LRU list reorganization for favored and unfavored volumes
CN116724299A (zh) 2021-03-01 2023-09-08 美光科技公司 支持写入命令的两阶段缓冲操作

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638528A (en) 1993-11-01 1997-06-10 Motorola, Inc. Data processing system and a method for cycling longword addresses during a burst bus cycle
US6397287B1 (en) 1999-01-27 2002-05-28 3Com Corporation Method and apparatus for dynamic bus request and burst-length control
US6425023B1 (en) 1999-03-24 2002-07-23 International Business Machines Corporation Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests
US6556952B1 (en) 2000-05-04 2003-04-29 Advanced Micro Devices, Inc. Performance monitoring and optimizing of controller parameters
DE10309919B4 (de) 2003-03-07 2008-09-25 Qimonda Ag Pufferbaustein und Speichermodule
US20050041453A1 (en) * 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
US7380102B2 (en) * 2005-09-27 2008-05-27 International Business Machines Corporation Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response
US7451277B2 (en) * 2006-03-23 2008-11-11 International Business Machines Corporation Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation
US7921243B1 (en) 2007-01-05 2011-04-05 Marvell International Ltd. System and method for a DDR SDRAM controller
US7818497B2 (en) 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US7584308B2 (en) 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7925824B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US8949500B2 (en) 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US9569320B2 (en) * 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
US8738882B2 (en) * 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data
US20120311269A1 (en) * 2011-06-03 2012-12-06 Loh Gabriel H Non-uniform memory-aware cache management
US8825721B2 (en) * 2011-10-03 2014-09-02 Oracle International Corporation Time-based object aging for generational garbage collectors
US8516019B2 (en) * 2011-10-03 2013-08-20 Oracle America, Inc. Time-based object aging for generational garbage collectors
US9043530B1 (en) * 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9274865B2 (en) * 2013-08-01 2016-03-01 HGST Netherlands B.V. Implementing enhanced buffer management for data storage devices
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories

Also Published As

Publication number Publication date
US20180349035A1 (en) 2018-12-06
US10248330B2 (en) 2019-04-02
CN108984429B (zh) 2023-07-28
CN108984429A (zh) 2018-12-11
KR102095471B1 (ko) 2020-03-31
KR20180131466A (ko) 2018-12-10

Similar Documents

Publication Publication Date Title
JP2018206380A (ja) バッファ保有期間管理を備えたデータ・ストレージ・デバイス
US11467769B2 (en) Managed fetching and execution of commands from submission queues
US10466903B2 (en) System and method for dynamic and adaptive interrupt coalescing
US10817217B2 (en) Data storage system with improved time-to-ready
US8171239B2 (en) Storage management method and system using the same
CN107885456B (zh) 减少io命令访问nvm的冲突
TWI421877B (zh) 平衡主機寫入作業和快取清除之方法和系統
CN102713866B (zh) 减少基于闪存的存储系统中的存取争用
CN111198653B (zh) 存储装置
US8914592B2 (en) Data storage apparatus with nonvolatile memories and method for controlling nonvolatile memories
US20200004443A1 (en) Balanced die set execution in a data storage system
US11481342B2 (en) Data storage system data access arbitration
CN112083873B (zh) 智能识别非易失存储介质不可靠块的方法与装置
US11803468B2 (en) Data storage system with write back cache
US11256621B2 (en) Dual controller cache optimization in a deterministic data storage system
US10324959B2 (en) Garbage collection in storage system
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
CN107885667B (zh) 降低读命令处理延迟的方法与装置
US10564890B2 (en) Runt handling data storage system
US10872015B2 (en) Data storage system with strategic contention avoidance
US20190012093A1 (en) Data Storage System with Late Read Buffer Assignment
CN112559381B (zh) 一种面向NVMe的IO确定性优化策略方法
CN110633226A (zh) 融合存储器、存储系统及深度学习计算方法
CN108572924B (zh) 一种3d mlc闪存设备的请求处理方法
CN109308273B (zh) 闪存控制器、闪存控制器功能的调节方法及设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200901