JP7258849B2 - 低レイテンシ動作をサポートするssdアーキテクチャ - Google Patents

低レイテンシ動作をサポートするssdアーキテクチャ Download PDF

Info

Publication number
JP7258849B2
JP7258849B2 JP2020507072A JP2020507072A JP7258849B2 JP 7258849 B2 JP7258849 B2 JP 7258849B2 JP 2020507072 A JP2020507072 A JP 2020507072A JP 2020507072 A JP2020507072 A JP 2020507072A JP 7258849 B2 JP7258849 B2 JP 7258849B2
Authority
JP
Japan
Prior art keywords
region
maintenance counter
mode
ssd
maintenance
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.)
Active
Application number
JP2020507072A
Other languages
English (en)
Other versions
JP2020529684A (ja
Inventor
ウェルス、ステブン
カールソン、マーク
ジャイン、アミット
コッテ、ナラシムフル、ダラニ
サンガラ、センティル
ミシュラ、バラダ
デサイ、ギリシュ
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Publication of JP2020529684A publication Critical patent/JP2020529684A/ja
Application granted granted Critical
Publication of JP7258849B2 publication Critical patent/JP7258849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0638Organizing or formatting or addressing of data
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

関連出願
本出願は、2017年11月1日に出願された特許出願第15/800,742号の継続出願であり、その全体の参照によってここに組み込まれる、2017年8月7日に出願された仮特許出願第62/542,108号に基づき、その利益を主張するものである。
本発明は、一般にソリッドステートドライブ(SSD)アーキテクチャに関し、より詳しくは、低レイテンシ動作をサポートするSSDアーキテクチャに関する。
従来、SSDアーキテクチャおよび設計は、主に、入力および出力(I/O)動作(すなわち、データの読出しおよび書込み)のために高い平均帯域幅またはスループットを得ることに着目してきた。たとえばハードディスクドライブ(HDD)などの従来の磁気記憶デバイスと比較すると、SSDは、HDDと比較して毎秒数千倍とはいかずとも数百倍のI/O動作を実行することが可能である。そのような従来のSSDは、そのアーキテクチャにおける並列性によって、そのような高い平均帯域幅を得ることが可能である。
SSDは、一般に、チャネルコントローラによって制御されるチャネルに結合されたグループに配列された、たとえばNANDフラッシュメモリなどの多くの不揮発性メモリダイを備える。たとえば、128の不揮発性メモリダイが、8つのダイからなる16のグループに配列され、各グループがチャネルに結合される。不揮発性メモリダイの各々からの物理記憶ブロックは、一般に、たとえばコンピュータまたはストレージ装置などの1または複数のホストデバイスがそれぞれデータを書込みおよび読出すための論理ブロックまたはスーパーブロックを生成するために選択される。スーパーブロックを形成するために不揮発性メモリダイの各々から物理ブロックを選択することは、全チャネルにわたる全ての不揮発性メモリダイへの並列アクセスを可能にし、最大帯域幅またはスループットを実現する。ダイは、更に、多数の「プレーン」に組織化されてよく(各ダイが2、4、またはそれ以上のプレーンを備え)、各プレーンは、I/O動作を並列に処理し得る。
そのようなSSDアーキテクチャは、SSDの帯域幅またはスループットを最大化するが、このアーキテクチャは、また、I/Oレイテンシ(すなわち、I/O動作を完了するために要する時間)に影響を及ぼす数々の問題に苛まれる。不揮発性メモリダイの物理的制限によって、一度に不揮発性メモリダイごとにプレーン当たり単一の物理ブロックしかI/O動作を実行できず、それにより、同じ不揮発性メモリダイの同じプレーンの様々な物理ブロックへのI/O動作間の衝突がもたらされ、I/O動作は、同じプレーンにおける異なるブロックへの先の動作が完了するまで待機しなければならない。これに関連して、チャネルコントローラごとに多数の不揮発性メモリダイが存在するため、コントローラと任意の不揮発性メモリダイとの間で任意の時間に1つのデータ転送のみが進行し得るというチャネルの共有性質により、チャネルコントローラにおける様々なスーパーブロックへのI/O動作に関するコマンド間での衝突も存在し得、SSDの各チャネルコントローラでのボトルネックがもたらされる。
ホストからのI/O動作に加えて、SSDは、新たなデータを書き込むためのフリーエリアを生成するために、有効データを集約し、無効データを消去するガベッジコレクション、および、たとえばNANDフラッシュメモリダイなどの不揮発性メモリダイの性質によってデータが経時的に失われないことを確実にするために、必要に応じて、不揮発性メモリダイに格納されたデータを読み出し、それらを再書込みするデータ信頼性動作などの保守動作を、SSDの寿命を通して実行しなければならない。これらの保守動作は、一般に、随時、SSDの寿命を通して不確定の回数発生し、不確定の期間継続するので、チャネルコントローラおよび不揮発性メモリダイの両方においてホストI/O動作との衝突を必然的にもたらす。ホストI/O動作またはSSD保守動作のいずれかに起因するこれらの衝突は、一貫性がなく予測不可能なSSDレイテンシ性能をもたらす。
たとえば、一般的なホスト読出し動作は、いかなる衝突もなければ完了までに70~100μsあたりを要し得る。しかし、衝突が存在する場合、読出し動作のレイテンシは、大幅に増加し得る。不揮発性メモリダイが現在書込み中である場合、読出し動作は、既に発生している書込み(プログラム)動作と衝突することになり、読出し動作が実行され得る前に書込み動作が完了するまで待機しなければならない。この例において、読出し動作のレイテンシは、TLC NANDメモリの2500~3000μsの2倍より大きくなり得る。更に悪い場合、たとえば読出し、書込み、および消去動作の3つ全てを必要とするガベッジコレクションなどの保守動作が現在実行中である場合、現在保守の最中である不揮発性メモリダイの物理ブロックに対する読出し動作のレイテンシは著しく大きく、読出し動作の完了までミリ秒範囲になり得る。この問題は更に、多数のホストアプリケーションによって常時アクセスされている多数のSSDにわたりデータを格納する(すなわち、SSDが常時、書込みおよび読出し中である)データセンタまたはストレージセンタの環境において激化し、I/O動作と保守動作との間の衝突の可能性を大幅に増加させる。データセンタにおける増え続ける記憶の必要性、およびクラウドベースおよびウェブベースのアプリケーションの増え続ける要望があるとすれば、高い平均帯域幅の実現に着目した従来のSSDアーキテクチャによって提供される一貫性がなく予測不可能なSSD性能は、もはや、そのような消費者の現在の需要および要求を十分に満たすものではない。
したがって、一貫性があり予測可能なI/O動作および性能を提供するための低レイテンシ動作をサポートする、改善されたSSDアーキテクチャが必要とされる。
一実施形態において、ソリッドステートドライブ(SSD)は、1または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、それぞれ1または複数の通信チャネルと通信可能に結合された1または複数のチャネルコントローラと、1または複数のチャネルコントローラを介して複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、を具備し、メモリコントローラは、(i)複数の不揮発性メモリダイの第1のダイの複数の物理ブロックを第1の領域のみに割り当て、(ii)複数の不揮発性メモリダイの第2のダイの複数の物理ブロックを第2の領域のみに割り当て、第1の動作モードにおいて、第1の領域における読出し動作のみを実行し、第1の動作モードにおける第1の領域での読出し動作とともに、第2の動作モードにおいて、第2の領域における書込み動作または保守動作を実行する、ように構成される。一実施形態において、第1の領域および第2の領域の少なくとも1つは、1または複数の通信チャネルにおける不揮発性メモリダイの各々の複数の物理ブロックを具備する。一実施形態において、第1の領域および第2の領域の少なくとも1つは、1または複数の通信チャネルの各々からの1または複数の不揮発性メモリダイの複数の物理ブロックを具備する。
一実施形態において、メモリコントローラは更に、第1の領域および第2の領域の少なくとも1つにおいて1または複数のネームスペースを生成するように構成される。一実施形態において、メモリコントローラは更に、第1の領域および第2の領域の各々に関する保守カウンタを保持し、対応する領域が第1の動作モードである場合、保守カウンタを単調に減らし、対応する領域が第2の動作モードである場合、保守カウンタを単調に増やすように構成される。一実施形態において、第1の領域および第2の領域の各々は、対応する保守カウンタが第1の閾値を上回る場合、第1の動作モードで動作し、対応する保守カウンタが第2の閾値を下回る場合、第2の動作モードで動作する。一実施形態において、メモリコントローラは更に、第1の領域および第2の領域の各々に関する保守カウンタを保持し、対応する領域が第1の動作モードである場合、保守カウンタを単調に増やし、対応する領域が第2の動作モードである場合、保守カウンタを単調に減らす、ように構成される。一実施形態において、第1の領域および第2の領域の各々は、対応する保守カウンタが第1の閾値を下回る場合、第1の動作モードで動作し、対応する保守カウンタが第2の閾値を上回る場合、第2の動作モードで動作する。
一実施形態において、SSDを動作させる方法は、1または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイの第1のダイを、第1の領域のみに割り当てることと、複数の不揮発性メモリダイの第2のダイを第2の領域のみに割り当てることと、第1の動作モードにおいて、第1の領域における読出し動作のみを実行することと、第1の動作モードでの第1の領域における読出し動作とともに、第2の動作モードにおいて、第2の領域における書込み動作または保守動作を実行することとを具備する。一実施形態において、第1の領域および第2の領域の少なくとも1つは、1または複数の通信チャネルにおける不揮発性メモリダイの各々の複数の物理ブロックを具備する。一実施形態において、第1の領域および第2の領域の少なくとも1つは、1または複数の通信チャネルの各々からの1または複数の不揮発性メモリダイの複数の物理ブロックを具備する。一実施形態において、方法は更に、第1の領域および第2の領域の少なくとも1つにおいて1または複数のネームスペースを生成することを具備する。一実施形態において、方法は更に、第1の領域および第2の領域の各々に関する保守カウンタを保持することと、対応する領域が第1の動作モードである場合、保守カウンタを単調に減らすことと、対応する領域が第2の動作モードである場合、保守カウンタを単調に増やすこととを具備する。一実施形態において、方法は更に、対応する保守カウンタが第1の閾値を上回る場合、第1の領域および第2の領域を第1の動作モードで動作させることと、対応する保守カウンタが第2の閾値を下回る場合、第1の領域および第2の領域を第2の動作モードで動作させることとを具備する。一実施形態において、方法は更に、第1の領域および第2の領域の各々に関する保守カウンタを保持することと、対応する領域が第1の動作モードである場合、保守カウンタを単調に増やすことと、対応する領域が第2の動作モードである場合、保守カウンタを単調に減らすこととを具備する。一実施形態において、方法は更に、対応する保守カウンタが第1の閾値を下回る場合、第1の領域および第2の領域を第1の動作モードで動作させることと、対応する保守カウンタが第2の閾値を上回る場合、第1の領域および第2の領域を第2の動作モードで動作させることとを具備する。
図1は、本発明の一実施形態に係る、SSDの構造のブロック図である。
図2aは、本発明の一実施形態に係る、低レイテンシ動作をサポートするSSDアーキテクチャのブロック図である。
図2bは、本発明の様々な実施形態に係る、2つの分離領域構成のブロック図である。
図3は、本発明の一実施形態に係る、低レイテンシ動作をサポートするSSDアーキテクチャの動作のタイミング図である。
図4は、本発明の様々な実施形態に係る低レイテンシ動作をサポートする2つのSSDアーキテクチャに対応する読出しレイテンシのプロットである。
図5aは、本発明の様々な実施形態に係る、SSDにおける分離領域の割り当てのブロック図である。 図5bは、本発明の様々な実施形態に係る、SSDにおける分離領域の割り当てのブロック図である。
図5cは、本発明の様々な実施形態に係る、SSDにおける分離領域の様々な構成のブロック図である。 図5dは、本発明の様々な実施形態に係る、SSDにおける分離領域の様々な構成のブロック図である。 図5eは、本発明の様々な実施形態に係る、SSDにおける分離領域の様々な構成のブロック図である。
図6は、本発明の一実施形態に係る、分離領域内のネームスペースの様々な構成のブロック図である。
図7は、本発明の一実施形態に係る、低レイテンシ動作をサポートするSSDアーキテクチャにおけるデータのフローのブロック図である。
図8は、本発明の一実施形態に係る、SSD内で分離領域およびネームスペースを構成するための方法ステップのフローチャートである。
図9は、本発明の一実施形態に係る、各々が低レイテンシ動作をサポートするアーキテクチャを有するSSDのアレイの動作のタイミング図である。
図10は、本発明の一実施形態に係る、SSDの低レイテンシ動作に関する方法ステップのフローチャートである。
図11は、本発明の一実施形態に係る、SSDによる読出しデータエラー処理に関する方法ステップのフローチャートである。
図12は、本発明の一実施形態に係る、1または複数のSSDと接続されたホストデバイスによる読出しデータエラー処理に関する方法ステップのフローチャートである。
パート1:低レイテンシ動作のためのI/O確定性およびI/O確定性をサポートするSSDアーキテクチャ
図1は、本発明の一実施形態に係る、SSD100の構造のブロック図である。図1に示されるように、SSDメモリコントローラ120は、ホストインタフェース110を介して、1または複数のホストデバイスまたはホストアプリケーション(不図示)との通信状態にある。ホストデバイスは、たとえばコンピュータまたはストレージ装置などの任意の適切なデバイスを備えてもよい。SSD100は、揮発性メモリ130と、不揮発性メモリダイ140のアレイとの両方を含む。揮発性メモリ130および不揮発性メモリダイ140のアレイは、それぞれSSDメモリコントローラ120との通信状態124および122にある。
不揮発性メモリダイ140のアレイは、SSDメモリコントローラ120との通信状態122にある1または複数のチャネルに配列され得る不揮発性メモリダイ142a~d、144a~d、146a~d、および148a~dを備える。16の不揮発性メモリダイ142a~d、144a~d、146a~d、および148a~dが図1に示されるが、SSD100の不揮発性メモリダイ140のアレイは、SSDメモリコントローラ120との通信状態122にある1または複数のチャネルに配列された任意の適切な数の不揮発性メモリダイ140を備えてもよい。一実施形態において、揮発性メモリデバイス130は、揮発性メモリDRAMバッファを備える。揮発性メモリデバイス130は、一体型の単一デバイスである必要はなく、SSD100のための揮発性メモリバッファを提供することができる様々な種類の多数のデバイスを備えてもよい。一実施形態において、不揮発性メモリダイ142a~d、144a~d、146a~d、および148a~dは、NANDフラッシュメモリを備える。
図2aは、本発明の一実施形態に係る、低レイテンシ動作をサポートするSSDアーキテクチャのブロック図である。図2aに示されるように、32の不揮発性メモリダイは、各チャネルに4つの不揮発性メモリダイが結合され、8つのチャネル(CH0~CH7)にわたり配列される。従来技術においてなされたように8つ全てのチャネルにわたり不揮発性メモリダイの各々から物理ブロックを選択することによって形成されたスーパーブロックではなく、図2aのSSDアーキテクチャは、同じチャネルおよび(同様の影模様で表された)隣接チャネル上の不揮発性メモリダイの各々から物理ブロックの全てを選択することによって形成されたスーパーブロックを含む。これらのスーパーブロックの各々は、SSDの他の領域内のアクティビティによる影響を比較的受けない、SSD内の分離領域を形成する。したがって、図2aに示されるように、(左から右への方向で)最初の2つのチャネル上の不揮発性メモリダイの物理ブロックは、分離領域202を備え、次の2つのチャネルにおける不揮発性メモリダイの物理ブロックは、分離領域204を備え、分離領域206および208についても以下同様である。
たとえば図2aに示されるように、分離領域を形成するために同じチャネル(複数も可)内の同じ不揮発性メモリダイからの物理ブロックを用いてスーパーブロックを構成することによって、不揮発性メモリダイおよびチャネルコントローラにおけるI/O動作衝突は、最小化または完全に回避され得るので、SSDの、より低いレイテンシ、より高い予測性、より一貫性のあるI/O性能が可能になる。もちろん、図2aに示される方式でスーパーブロックを構成することは、図2aの分離領域202、204、206、および208が、不揮発性メモリダイの全てへの最大並列アクセスを実現するために、8つ全ての利用可能なチャネルを活用するものではないため、従来技術の較正と比較して、SSDの最大可能スループットを低減させる。しかし、このトレードオフは、分離領域202、204、206、および208ごとに2つのチャネルにわたる不揮発性メモリダイの各々から物理ブロックを選択することによる、図2aに示されるアーキテクチャにおけるオフセットであり、したがってホストI/O動作を処理するために分離領域ごとに2つのチャネルコントローラを活用する。
分離領域を形成するための物理ブロックの選択および配列、ならびにこのアーキテクチャを用いるSSD内のデータのフローおよび分離領域の集成は、以下でより詳しく説明される。
図2bは、本発明の様々な実施形態に係る、2つの分離領域構成220および230のブロック図である。図2bに示されるように、16の不揮発性メモリダイ210a~210d、212a~212d、214a~214d、および216a~216dは、チャネルごとに4つの不揮発性メモリダイをもち、4つのチャネルCH0~CH3にわたり配列される。図2aに示される構成と同様、分離領域220は、チャネルCH0の不揮発性メモリダイ210a~210dおよびチャネルCH1の不揮発性メモリダイ212a~212dの物理ブロックの各々を備える。ここでもまた、図2aに関して前述したように、分離領域220は、不揮発性メモリダイ210a~dおよび212a~dとチャネルCH0およびCH1のチャネルコントローラとの両方におけるI/O動作衝突を最小化し、最大I/Oスループットを犠牲にして、より低いレイテンシおよびより予測可能な動作を可能にする。
あるいは、たとえば図2bに示される分離領域220または図2aに示される分離領域202、204、206、および208のように、チャネルまたは多数のチャネルの不揮発性メモリダイ全ての物理ブロックの各々を選択するのではなく、分離領域230は、チャネルCH0の不揮発性メモリダイ210aおよび210bの物理ブロックの各々、チャネルCH1の不揮発性メモリダイ212aおよび212bの物理ブロックの各々、チャネルCH2の不揮発性メモリダイ214aおよび214bの物理ブロックの各々、および不揮発性メモリダイ216aおよび216bの物理ブロックの各々を備える。
分離領域220と比較すると、分離領域230は、分離領域220の場合の2つのチャネルCH0およびCH1に限定されるのではなく、4つ全てのチャネルCH0~CH3にわたる不揮発性メモリダイからの物理ブロックへの並列アクセスを提供することにより、向上したI/Oスループットを有することができる。しかし、分離領域230の物理ブロック構成の場合、SSDの他の領域が、たとえばチャネルCH0の不揮発性メモリダイ210cおよび210dの物理ブロック、チャネルCH1の不揮発性メモリダイ212cおよび212dの物理ブロック、チャネルCH2の不揮発性メモリダイ214cおよび214dの物理ブロック、およびチャネルCH3の不揮発性メモリダイ216cおよび216dの物理ブロックを備える分離領域のように、分離領域230と同様に構成される(すなわち、チャネルCH0~CH3にわたる不揮発性メモリダイからの物理ブロックの各々を備える)とすると、チャネルCH0~CH3のチャネルコントローラにおいて何らかのI/O動作衝突が存在し得る。分離領域230内の不揮発性メモリダイへのI/O動作は、同じチャネル上にある他の同様に構成された分離領域の他の不揮発性メモリダイへのI/O動作と衝突し得(すなわちチャネル衝突)、何らかの予測不可能なI/O性能および期待より高いレイテンシをもたらす可能性がある。
後により詳しく説明するように、不揮発性メモリダイおよびチャネルコントローラの両方におけるI/O動作の衝突は、分離領域およびSSDの動作の管理によって、分離領域220の構成または分離領域230の構成のいずれかを用いるSSDアーキテクチャに関して最小化または回避され得る。また、SSDアーキテクチャは、単一の分離領域構成のみ(すなわち、分離領域220のような分離領域のみ、または分離領域230のような分離領域のみ)を備える必要はなく、1または複数のチャネルの不揮発性メモリダイの各物理ブロックを備える(分離領域220のそれと同様の)分離領域、および多数のチャネルにわたる不揮発性メモリダイの各物理ブロックを備える(分離領域230のそれと同様の)分離領域を備えてもよい。
図3は、本発明の一実施形態に係る、低レイテンシ動作をサポートするSSDアーキテクチャの動作のタイミング図300である。図3に示されるように、図2aおよび図2bに示され説明された様々な構成に準じた分離領域は、期間にわたり、確定的モード302および非確定的または保守モード304という2つの異なるモードで動作する。確定的モード302において、分離領域は読出し動作のみを実行し、これは前述したように、最小レイテンシ(たとえば、TLC NANDフラッシュメモリの場合、一般に60μs~100μs)で比較的迅速に完了する。一実施形態において、分離領域が確定的モード302である場合、分離領域のためのライトコマンドは、分離領域が確定的モード304に入るまで、SSDのメモリコントローラ内でキューに入れられる。他の実施形態において、ホストデバイスは、分離領域が確定的モード302であることを認識しており、分離領域が非確定的モード304に入るまで分離領域へのライトコマンドを発行しない。
分離領域は、ある不揮発性メモリダイの物理ブロック全てを備えるので、確定的モード302の間の読出し動作は、不揮発性メモリダイレベルで、SSD内の他の分離領域における他のI/O動作および保守動作による影響を受けない。また、分離領域が、図2bに示される分離領域220または図2aに示されるような分離領域202~208と同様に構成される場合、分離領域は不揮発性メモリダイのための専用チャネルコントローラ(複数も可)を有することができるので、チャネルコントローラ衝突も回避される。したがって、確定的モード302で動作する場合、分離領域のI/O性能は確定的であり、読出し動作は、このモードにおいて最小レイテンシで完了する。
確定的モード302の間に分離領域内で読出し動作が実行されると、それに応じて、分離領域における保守動作を実行する必要性が増加する。加えて、(確定的モード302の間、読出し動作のみが実行される場合)分離領域のためのホストアプリケーションにおいて保留中の書込み動作の蓄積が存在し得る。よって、確定的モード302における期間の後、保守タスクの閾値レベルが必須になると、分離領域は非確定的モード304に入る。非確定的モード304において、分離領域は、保守タスクおよび書込み動作を実行する。これが可能であるうちは、分離領域が確定的モード302に再び入る前に、保守タスクおよび書込み動作の全てが実行される必要はない。一実施形態において、分離領域は、保守タスクの閾値レベルが完了すると、非確定的モード304から確定的モード302に入ってもよい。
このように、分離領域は、確定的モード302と非確定的モード304とを交互に切り換える。分離領域の確定的および非確定的動作、ならびにSSDの内外の多数の分離領域間での調整は、後により詳しく説明される。
図4は、本発明の様々な実施形態に係る低レイテンシ動作をサポートする2つのSSDアーキテクチャに対応する読出しレイテンシのプロットである。図4に示されるように、3つの読出しレイテンシプロット402、404、および406が示される。読出しレイテンシプロット402は、従来技術のSSDアーキテクチャに対応し、ここで、全てのチャネルにわたる各不揮発性メモリダイからの物理ブロックが、論理ブロック(スーパーブロック)を形成するために選択される。読出しレイテンシプロット404は、分離領域230の構成と同様、SSDの分離領域が全てのチャネルにわたる不揮発性メモリダイの各物理ブロックを備える、図2bに示されるSSDアーキテクチャに対応する。最後に、読出しレイテンシプロット406は、図2aおよび図2bに示されるSSDアーキテクチャに対応し、ここでSSDの分離領域は、図2aに示される分離領域202~208または図2bに示される分離領域220の構成と同様、1または複数のチャネルからの全ての不揮発性メモリダイの各物理ブロックを備える。
3つ全ての読出しレイテンシプロット402、404、および406によって表されたデータは、同じ試験システムおよびパラメータ(すなわち、同じプロセッサ、マザーボード、オペレーティングシステム、およびワークロード)を用いて測定されている。読出しレイテンシプロット404および406に関して、SSDアーキテクチャは4つの分離領域を備え、1つの分離領域は確定的モード(すなわち読出し動作のみ)であり、残り3つの分離領域は全て、書込み動作のみを実行している。読出しレイテンシプロット404および406は、確定的モードにおける分離領域の読出し動作レイテンシを測定することによって生成される。
図4に示されるように、読出しレイテンシプロット402の場合、読出し動作の90パーセントの読出しレイテンシは、約100μs~5msという広範囲のレイテンシにわたる。読出し動作の99番目のパーセンタイルに関するレイテンシは、約10msまで更に増加し、99.9番目のパーセンタイルおよび99.99番目のパーセンタイルの場合は更に悪化し、完了までにほぼ20msに達する。10ms~30msの読出し動作は、比較的低い発生確率(すなわち、1000~10000回の読出し動作につき1回)を有するように見えるが、一般的なSSDは、毎秒発生する10000または100000のI/O動作を有し、これは、毎秒の動作中、多数の読出し動作が10ms~30msを要する可能性が高いことを意味する。読出しレイテンシプロット402の著しく増加するレイテンシは、背景技術において前述したように、従来技術のSSDアーキテクチャによる、不揮発性メモリダイレベルおよびチャネルコントローラの両方において読出し動作が他のI/O動作および保守動作と衝突することに起因する。更に、動作が「ハイパースケール」である(すなわち、たとえばウェブページ提示などの動作が数千のサーバの数千のサブ動作として広がり、集約された数千のサブ動作の結果を有する)データセンタにおいて、1000に1つのレイテンシ外れ値の可能性は、全ての動作が遅延することを意味する。
読出しレイテンシプロット404は、マーク付けされた読出しレイテンシプロット402に対する改善を示し、読出し動作の90パーセントの読出しレイテンシが約400μs未満であり、読出し動作の99.99パーセントの読出しレイテンシが約1100μs未満である。読出しレイテンシプロット404は、読出しレイテンシプロット402に対し約15倍(15x)の改善を示し、大幅に小さい変動幅をもつ。読出しレイテンシプロット404は、読出し動作が約1100μs以内に完了することがほぼ保証され、読出し動作の大半(99パーセント)は約700μs以内に完了することを示す。したがって、図2bの分離領域230の構成と同様、SSDの分離領域が、全てのチャネルにわたる不揮発性メモリダイの各物理ブロックを備える、読出しレイテンシプロット404に対応するSSDアーキテクチャは、従来技術のSSDアーキテクチャと比較して、大幅に低い読出しレイテンシ動作、およびより高い予測性、確定的な動作を提供する。
ただし、読出しレイテンシプロット404に示されるように、より高いパーセンタイル値の動作において読出しレイテンシの増加が未だ存在する。読出しレイテンシの増加は、このSSDアーキテクチャの分離領域の構成(すなわち、SSDの分離領域が、図2bの分離領域230の構成と同様、全てのチャネルにわたる不揮発性メモリダイの各物理ブロックを備える)によるチャネルコントローラでの衝突に起因する。前述したように、このSSDアーキテクチャによる確定的モードでの分離領域に対する読出し動作は、多数の分離領域が同じチャネルコントローラを共有するためにチャネルコントローラレベルでの他の分離領域に対する書込み動作の次にキューに入れられ、そのため確定的モードでの分離領域に対する読出し動作は、実行前に、これらの動作の完了を待機する必要がある。
読出しレイテンシプロット406は、読出しレイテンシを改善する傾向を継続し、読出し動作の90パーセントの読出しレイテンシが約100μs~180μsである。99番目のパーセンタイル、99.9番目のパーセンタイル、および99.99番目のパーセンタイルの読出しレイテンシは、それぞれ約200μs、220μs、および280μsで最大に到達し、読出し動作の99.9999番目のパーセンタイルにおいて300μsを少し超えるあたりで先細りになる。読出しレイテンシプロット406は、読出しレイテンシプロット402に対し50倍(50x)を超える改善、および読出しレイテンシプロット404と比較して更に小さい範囲の変動を示し、読出し動作の99.99999パーセントが約100μs~300μsで完了する。読出しレイテンシプロット406に対応するSSDアーキテクチャは、あるチャネルにわたる多数の分離領域に及ばないので、チャネルコントローラレベルおよび不揮発性メモリダイレベルにおける衝突を回避するため、前述したように読出しレイテンシプロット402に対応する従来技術のSSDアーキテクチャに対し既に大幅に改善された、読出しレイテンシプロット404に対応するSSDアーキテクチャと比較して、改善された低レイテンシ動作および確定的挙動をもつ。
よって、読出しレイテンシプロット404に対応するSSDアーキテクチャと同様、読出しレイテンシプロット406に対応するSSDアーキテクチャもまた、従来技術のSSDアーキテクチャと比較して、低レイテンシ動作および予測性があり、確定的な動作を提供する。
パート2:SSDアーキテクチャにおける分離領域、ネームスペース、およびデータのフロー
図5aは、本発明の一実施形態に係る、SSDの不揮発性メモリアレイ内の複数のスーパーブロックのブロック図である。図5aの不揮発性メモリアレイは、チャネルバス(不図示)によって各チャネルに結合された4つの不揮発性メモリダイ(D0~D3)をもつ8つのチャネル(CH0~CH7)を含む。各不揮発性メモリダイは、複数の物理ブロック(不図示)を含む。SSDの初期ブートアップ中、ファームウェアは、不揮発性メモリアレイの物理ブロックを4つのスーパーブロック502、504、506、および508にマッピングする。スーパーブロック502、504、506、および508の各々は、不揮発性メモリアレイ内の複数の物理ブロックが割り当てられた論理ブロックである。スーパーブロック502は、チャネルCH0およびCH1のダイD0~D3における全ての物理ブロックを含む。スーパーブロック504は、チャネルCH2およびCH3のダイD0~D3における全ての物理ブロックを含む。スーパーブロック506は、チャネルCH4およびCH5のダイD0~D3における全ての物理ブロックを含む。スーパーブロック508は、チャネルCH6およびCH7のダイD0~D3における全ての物理ブロックを含む。スーパーブロック502、504、506、および508の各々は、同じ数の物理ブロックを有し、図5aの実施形態において、512GB(約0.5TB)の記憶容量を提供する。図5aの実施形態における各スーパーブロックは、2つのチャネル上の全ての不揮発性メモリダイを含むが、任意の数のチャネル上の全ての不揮発性メモリダイを含むスーパーブロックが本発明の範囲内である。
SSDの初期ブートアップ中、ファームウェアはまた、スーパーブロック502、504、506、508の各々を分離領域に割り当てる。分離領域は、1または複数のスーパーブロックを含んでもよく、各スーパーブロックは、1つの分離領域のみに属し得る。たとえば一実施形態において、ファームウェアは、スーパーブロック502を分離領域510に割り当て、スーパーブロック504およびスーパーブロック506を分離領域520に割り当てる。この実施形態において、分離領域510は、512GBの記憶容量を有し、ファームウェアは、不揮発性メモリアレイ内の他の全ての分離領域のための保守動作とは別に、分離領域510に割り当てられた物理ブロックのための、たとえばガベッジコレクションおよび信頼性動作などの保守動作を制御する。たとえば、ガベッジコレクション中、消去される物理ブロック内の有効データのページは、分離領域510内の別の物理ブロックに移動される。この実施形態において、分離領域520は、1TBの記憶容量(スーパーブロック504の512GBの記憶容量+スーパーブロック506の512GBの記憶容量)を有する。ファームウェアは、分離領域520に割り当てられた物理ブロックのための保守動作を、不揮発性メモリアレイ内の他の全ての物理領域のための保守動作とは別に制御する。スーパーブロック502、504、506、および508の各々は、2つの専用チャネルを有し、スーパーブロック502、504、506、508の1つにおけるI/O動作および保守動作は、スーパーブロック502、504、506、508の他のいずれかにおけるI/O動作での遅延を一切もたらさない。
図5bは、本発明の一実施形態に係る、SSDの不揮発性メモリアレイにおける複数のスーパーブロックのブロック図である。図5bの不揮発性メモリアレイは、チャネルバス(不図示)によって各チャネルに結合された2つの不揮発性メモリダイ(D0~D1)をもつ8つのチャネル(CH0~CH7)を含む。各不揮発性メモリダイは、複数の物理ブロック(不図示)を含む。SSDの初期ブートアップ中、ファームウェアは、不揮発性メモリアレイの物理ブロックを4つのスーパーブロック512、514、516、および518にマッピングする。スーパーブロック512、514、516、および518の各々は、不揮発性メモリアレイ内の複数の物理ブロックを割り当てられた論理ブロックである。スーパーブロック512は、チャネルCH0およびCH1の不揮発性メモリダイD0~D1における全ての物理ブロックを含む。スーパーブロック514は、チャネルCH2およびCH3の不揮発性メモリダイD0~D1における全ての物理ブロックを含む。スーパーブロック516は、チャネルCH4およびCH5の不揮発性メモリダイD0~D1における全ての物理ブロックを含む。スーパーブロック518は、チャネルCH6およびCH7の不揮発性メモリダイD0~D1における全ての物理ブロックを含む。スーパーブロック512、514、516、および518の各々は、同じ数の物理ブロックを有し、図5bの実施形態において、256GB(約0.25TB)の記憶容量を提供する。
SSDの初期ブートアップ中、ファームウェアはまた、スーパーブロック512、514、516、518の各々を分離領域に割り当てる。分離領域は、1または複数のスーパーブロックを含んでもよく、各スーパーブロックは、1つの分離領域のみに属し得る。たとえば一実施形態において、ファームウェアは、スーパーブロック512を分離領域530に割り当て、スーパーブロック514、スーパーブロック516、およびスーパーブロック518を分離領域540に割り当てる。この実施形態において、分離領域530は、256GBの記憶容量を有し、分離領域540は、768GBの記憶容量(スーパーブロック514、スーパーブロック516、およびスーパーブロック518の各々における256GBの記憶容量)を有する。
図5aおよび図5bに関して前述したように、SSDのファームウェアは、均一なサイズの複数のスーパーブロックを生成し、それから、様々なサイズの分離領域を生成するためにスーパーブロックを割り当てる。この方式において、SSDの総記憶容量は、様々なユーザの要望を満たすために、様々な構成で、1または複数の分離領域に組織化され得る。図5c~5eは、本発明の様々な実施形態に係る、SSDにおけるスーパーブロックおよび分離領域の様々な構成のブロック図である。図5cのSSDの不揮発性メモリアレイは、4つの分離領域560、562、564、および566を含み、ここで各分離領域は、2つのチャネルに結合された全ての不揮発性メモリダイにおける全ての物理ブロックを含む1つのスーパーブロックから成る。図5dのSSDの不揮発性メモリアレイは、3つの分離領域570、572、および574を含む。分離領域570および572の各々は、2つのチャネルに結合された全ての不揮発性メモリダイにおける全ての物理ブロックを含む1つのスーパーブロックから成り、分離領域570は、チャネルCH0およびCH1の不揮発性メモリダイD0~D3における全ての物理ブロックを含み、分離領域572は、チャネルCH2およびCH3の不揮発性メモリダイD0~D3における全ての物理ブロックを含む。分離領域574は、チャネルCH4およびCH5の不揮発性メモリダイD0~D3における全ての物理ブロックを含む第1のスーパーブロックと、チャネルCH6およびCH7の不揮発性メモリダイD0~D3における全ての物理ブロックを含む第2のスーパーブロックとの2つのスーパーブロックから成る。図5eのSSDの不揮発性メモリアレイは、4つのスーパーブロックを含む1つの分離領域580を含む。
図6は、本発明の一実施形態に係る、分離領域内のネームスペースの様々な構成のブロック図である。一実施形態において、SSD内の各分離領域は、ネームスペースとして構成される。たとえば、4TB SSDは、各々が単一の1TBネームスペースとして定義された4つの1TB分離領域として構成され得る。しかし他の実施形態において、ネームスペースは、図6に示されるように、分離領域に割り当てられた物理ブロックのサブセットとして定義される。SSDの分離領域610は、ネームスペース612、ネームスペース614、ネームスペース616、および物理ブロックの未割り当て部分618を含む。SSDの分離領域620は、ネームスペース622、ネームスペース624、および物理ブロックの未割り当て部分628を含む。SSDの分離領域630は、ネームスペース632および物理ブロックの未割り当て部分638を含む。分離領域の利点を維持するために、ネームスペース612、614、616、622、624、および632の各々は、単一の分離領域内に含まれる。たとえば、分離領域610のネームスペース612内で発生する、たとえばガベッジコレクションなどの保守動作は、分離領域630のネームスペース632内の読出し動作に影響を及ぼさない。未割り当て部分618、628、および638の各々は、それぞれ対応する分離領域610、620、および630内の1または複数のネームスペースに割り当てられ得る。
図7は、本発明の一実施形態に係る、低レイテンシ動作をサポートするSSDアーキテクチャにおけるデータのフローのブロック図である。SSDアーキテクチャは、ホストインタフェースレイヤ710、データキャッシュ715、フラッシュ管理レイヤ725、フラッシュ転換レイヤ720、アドレスマップテーブル730、フラッシュインタフェースレイヤ735、フラッシュインタフェースレイヤ740、4つのデュアルチャネルコントローラ745、750、755、および760、および不揮発性メモリアレイ770を含むが、これに限定されない。不揮発性メモリアレイ770は、分離領域772、分離領域774、分離領域776、および分離領域778を含む。分離領域772、774、776、および778の各々は、2つのチャネルに結合された全ての不揮発性メモリダイにおける全ての物理ブロックを含むスーパーブロックを備える。アドレスマップテーブル730は、論理スーパーブロックおよび分離領域への、不揮発性メモリアレイ770内の物理ブロックのアドレスの割当てを格納する。デュアルチャネルコントローラ745は、分離領域772の2つのチャネルを介した通信を管理し、デュアルチャネルコントローラ750は、分離領域774の2つのチャネルを介した通信を管理し、デュアルチャネルコントローラ755は、分離領域776の2つのチャネルを介した通信を管理し、デュアルチャネルコントローラ760は、分離領域778の2つのチャネルを介した通信を管理する。図7の実施形態において、分離領域772、774、776、および778の各々は、ネームスペースに対応する。他の実施形態において、不揮発性メモリアレイは、たとえば4または16など他の数のチャネルを含んでもよく、SSDアーキテクチャは、不揮発性メモリアレイの各チャネルに対して1つのシングルチャネルコントローラを含んでよい。
不揮発性メモリアレイ770の4つの分離領域772、774、776、および778は、ホストアプリケーションと1つの分離領域との間のデータ交換が、別のホストアプリケーションと異なる分離領域との間のデータ交換と干渉しないように、4つの独立した「データパイプ」として、SSDが1または複数のホストデバイスまたはアプリケーション(不図示)と不揮発性メモリアレイ770との間のデータ交換を管理することを可能にする。SSDのたとえばDRAMなどの揮発性メモリ内の記憶域のセットであるデータキャッシュ715は、各分離領域に対するコマンドおよびデータを独立してキャッシュする。フラッシュ転換レイヤ720は、分離領域772へ書き込まれまたは分離領域772から読み出されたデータ702、分離領域774へ書き込まれまたは分離領域774から読み出されたデータ704、分離領域776へ書き込まれまたは分離領域776から読み出されたデータ706、および分離領域778へ書き込まれまたは分離領域778から読み出されたデータ708を、互いに独立して管理する。たとえば、分離領域772へ書き込まれるデータ702は、フラッシュ転換レイヤ720によって、フラッシュインタフェースレイヤ735およびデュアルチャネルコントローラ745へ経路指定される。同様に、分離レイヤ776から読み出されたデータ706は、デュアルチャネルコントローラ755およびフラッシュインタフェースレイヤ740を通るように経路指定され、フラッシュ転換レイヤ720によってデータ706は、データキャッシュ715の適切な領域に格納される。
図8は、本発明の一実施形態に係る、SSDの不揮発性メモリアレイ内にスーパーブロックおよび分離領域を生成するための方法ステップのフローチャートである。ステップ802において、SSDのファームウェアは、SSDが1回目にブートまたはスタートアップされていること(すなわち、初期ブートアップ)を検出する。ステップ804において、ファームウェアは、不揮発性メモリアレイ内に生成される各スーパーブロックおよび各分離領域の容量を識別するために、過去にファームウェアにプログラムされた構成ファイルを読み出す。各スーパーブロックの容量は、SSD製造元によって定められ、SSDの総記憶容量、たとえば1TB、2TB、または4TBに基づいて変動する。構成ファイルに定義された各分離領域の容量は、ユーザの要求を満たすためにカスタマイズされ得る。たとえばユーザは、等しいサイズの複数の分離領域を生成することを望んでもよく、あるいは、各分離領域が異なるサイズである複数の分離領域を生成することを望んでもよい。ステップ806において、ファームウェアは、各スーパーブロックに対して適切なチャネルの数を選択する。適切なチャネルの数は、SSDのハードウェアアーキテクチャに依存し得る。一実施形態において、ファームウェアは、各スーパーブロックに対して2つのチャネルを選択する。ステップ808において、ファームウェアは、構成ファイルに記載されたスーパーブロック要件を満たすように不揮発性メモリアレイの物理ブロックを各スーパーブロックに割り当て、各論理スーパーブロックに関する物理ブロックの個別のリストを生成する。一実施形態において、ファームウェアは、隣接した2つのチャネルを選択し、これら2つのチャネル上の各不揮発性メモリダイの各物理ブロックを第1のスーパーブロックに割り当てる。それから、ファームウェアは、次の2つの隣接したチャネルを選択し、これら2つのチャネル上の各不揮発性メモリダイの各物理ブロックを第2のスーパーブロックに割り当てる。ファームウェアは、不揮発性メモリアレイの全ての物理ブロックがスーパーブロックに割り当てられるまで、この方式を継続する。ファームウェアは、各スーパーブロックに割り当てられた物理ブロックのアドレスのリストを作成し、これらの個別リストをアドレスマッピングテーブルに格納する。
ステップ810において、ファームウェアは、分離領域にスーパーブロックを割り当て、割当てをテーブルに格納する。ファームウェアは、構成ファイルに記載された分離領域容量を満たすように、スーパーブロックを分離領域に割り当てる。一般に、各分離領域は、1または複数のスーパーブロックを含む。たとえば一実施形態において、ファームウェアは、分離領域の数がスーパーブロックの数と等しいように、複数の分離領域の各々に1つのスーパーブロックを割り当て、そのような実施形態は図5cに示される。他の実施形態において、ファームウェアは、第1の分離領域に1つのスーパーブロックを、第2の分離領域に1つのスーパーブロックを、第3の分離領域に2つのスーパーブロックを割り当て、そのような実施形態は図5dに示される。任意的なステップ812において、ファームウェアは、分離領域をネームスペース識別子に割り当てる。一実施形態において、ファームウェアは、SSD内のネームスペースの数が分離領域の数と一致するように、各分離領域を個別のネームスペース識別子に割り当てる。他の実施形態において、ネームスペースは、SSDの初期ブートアップ後の何らかの時点で定義される。図6に関して前述したように、単一の分離領域内で多数のネームスペースが定義され得る。
パート3:SSDの低レイテンシ動作
図9は、本発明の一実施形態に係る、各々が低レイテンシ動作をサポートするアーキテクチャを有するSSD910、920、および930のアレイの動作のタイミング図である。説明の簡素化のために、図9のタイミング図は、SSD910、920、および930の各々における単一の分離領域の動作を示す。ただし、図9のタイミング図に関して示され説明される動作は、そのようには限定されず、SSD内の、または1または複数のSSDにわたる3つの分離領域にも等しく適用可能である。
SSD910、920、および930の分離領域は、図2aに示されるような分離領域202~208および図2bに示されるような分離領域220と同様、1または複数のチャネルの不揮発性メモリダイの各々からの物理ブロック、あるいは図2bに示されるような分離領域230と同様、多数のチャネルにわたる不揮発性メモリダイからの物理ブロックのいずれかで、図2a、2b、5a~eに関して前述したように構成され得る。図3に関して前述した動作と同様、SSD910、920、および930の分離領域の各々は、確定的モード902および非確定的(すなわち保守)モード904における動作を交互に行う。前述したように、確定的モード902において、分離領域は読出し動作のみを実行し、非確定的モード904において、分離領域は、たとえばガベッジコレクションなどの保守タスクを実行し、確定的モード902の間に分離領域に関して蓄積された書込み動作を実行する。
図9に示されるように、ある時点において、SSD910、920、および930の少なくとも1つは、確定的な読出し動作を提供するために確定的モード902である。一般に重要なデータの十分な冗長性およびバックアップを確実にするためにデータセンタおよびストレージセンタの環境において発生する、SSD910、920、および930の分離領域の各々が同じデータのコピーを有する場合、SSD910、920、および930の図9に示される動作は、データの少なくとも1つのコピーが任意の時間に確定的に読み出され得ることを保証する。他の実施形態において、冗長性を提供するために抹消符号化が用いられ、データの再構成を可能にするために任意のM個のフラグメント(ここでM<N)が必要とされるように、データがN個の符号化フラグメントで書き込まれる場合、SSDの動作は、N個のSSDのうちM個が任意の時間に確定的に読み出され得ることを保証する。また、必要な保守および書込みは、データの確定的な読出し動作に干渉することなく、分離領域に対して実行され得る。SSD910、920、および930の動作は、データが絶えず多数のデバイスによって一斉にSSDから読み出されSSDへ書き込まれる、大規模データセンタまたはストレージセンタの環境に特に適している。
図9には3つの分離領域/SSD910、920、および930が示されるが、ここでもまた、図9のタイミング図に関して示され説明された動作は、そのようには限定されず、本発明の様々な実施形態に係る1または複数のSSDにおける2つ以上の分離領域で実現され得る。たとえば、単一のSSD内の2つの分離領域が、データのコピーを格納するために用いられる場合、1つの分離領域は、データの読出し動作を実行するために確定的モードでなくてはならず、その間、他の分離領域は、非確定的モードにおいて保守中であり、および/または書込み動作を実行する。同様に、2つのSSDにわたる4つの分離領域が、データのコピーを格納するために用いられる場合、たとえば、分離領域のうち最大3つが任意の時点で非確定的モードであってよく、残りの1または複数の分離領域が、読出し動作を提供するために確定的モードである。ただし、後により詳しく説明するように、読出しデータエラー処理のための柔軟性を提供するために2つ以上の分離領域が常時確定的モードで動作するようにSSDを動作させることが好ましい。
図10は、本発明の一実施形態に係る、SSDの低レイテンシ動作のための方法ステップ1000のフローチャートである。方法ステップ1000は、説明の簡素化のためにSSD内の単一の分離領域に関して説明され、本発明の様々な実施形態と合致するSSDまたはSSDのアレイの他の分離領域にも同様に適用され得る。図10に示されるように、ステップ1002において、分離領域は確定的モードに入る。ステップ1004において、分離領域からデータが読み出される。ステップ1006において、分離領域のための1または複数の保守カウンタが減少する。一実施形態において、保守カウンタは、分離領域における読出し動作の数を追跡し、保守カウンタの初期値は、保守動作が要求される前に実行され得る読出し動作の典型的な数である。この実施形態または他の実施形態において、保守カウンタは、時間の増分、分離領域に関してキューに入れられた書込み動作の数、または読出し動作の数、書込み動作の数、および/または時間の増分の組み合わせを追跡する。ステップ1008において、保守カウンタが、分離領域において保守が実行される必要があることを示す最小閾値を下回るかを判定するために、保守カウンタのチェックが行われる。保守カウンタが未だ最小閾値を上回る場合、保守が実行される必要は未だなく、分離領域は、リードコマンドの処理を継続してもよく、ステップ1004において再びデータを読み出す。
しかし、保守カウンタが、分離領域において保守が実行される必要があることを示す最小閾値を下回る場合、ステップ1010において、分離領域は非確定的モードに入る。ステップ1012において、分離領域は、保守動作および蓄積された書込み動作を実行する。ステップ1014において、保守動作が実行されたとして保守カウンタが調和的に増加する。ステップ1016において、十分な保守動作が実行され、分離領域が確定的モードでの動作に戻ることができるかを判定するために、保守カウンタがチェックされる。そうである場合、分離領域は、ステップ1002で確定的モードに再び入り、方法ステップ1000は繰り返す。そうでない場合、ステップ1012で追加の保守動作および書込み動作が再び実行される。
保守カウンタは、たとえば一実施形態において状態レジスタとして、任意の適切な方式で実装され得る。一実施形態において、状態レジスタは、ステップ1004および1006において分離領域からデータが読み出される度、単調に減少し、ステップ1012および1014において保守および書込み動作が実行される度、単調に増加する。また、保守カウンタが、ステップ1004において読出し動作が実行されるとステップ1006において減少し、ステップ1012において保守動作が実行されるとステップ1014において増加することは重大ではない。他の実施形態において、保守カウンタは、ステップ1004において読出し動作が実行されると増加し、1012において保守動作が実行されると減少する。この実施形態において、ステップ1008におけるチェックは、保守カウンタが、分離領域において保守動作が実行される必要があることを示す最大閾値を上回るかを判定し、ステップ1016におけるチェックは、保守カウンタが、十分な保守動作が実行され、分離領域が確定的モードでの動作に戻ることができることを示す許容可能閾値を下回るかを判定する。
一実施形態において、分離領域は、ステップ1008において保守カウンタが最小閾値を下回ると判定された場合にステップ1010において確定的モードの動作から非確定的モードの動作へ自動的に移行するのではなく、ステップ1016において保守カウンタが許容可能閾値を上回ると判定された場合にステップ1002において非確定的モードの動作から確定的モードの動作へ自動的に移行するわけではない。むしろ、ホストデバイスが、分離領域の動作モード(すなわち、確定的または非確定的)を設定するように構成され得る。この実施形態において、SSDは、分離領域がいつ保守を必要とするかに関する推定をホストデバイスに提供する。
たとえば、保守カウンタが最小閾値を下回ると判定された場合、SSDは、ある期間内またはある読出し動作回数内に分離領域において保守が実行される必要があることをホストに示す通知をホストデバイスへ送信してもよい。ホストデバイスはそれから、図9に関して前述したように、現在の分離領域において保守が実行されている間、データのコピーが別の分離領域から確定的にアクセスされ得ることを確実にするために、分離領域がいつ保守動作を実行するために非確定的モードに入るかのタイミングを、同じデータのコピーを格納している他の分離領域と調整してもよい。
更に、十分な保守および書込み動作が実行され、保守カウンタが許容可能閾値を上回ると、SSDは、分離領域が確定的モードでの動作を再開する準備ができたことをホストに示す別の通知をホストデバイスへ送信してもよく、ホストデバイスは、分離領域またはネームスペースがいつ非確定的モードから確定的モードへ再び入るかのタイミングを、同じデータのコピーを有し保守を必要としている他の分離領域と調整してもよい。一実施形態において、ホストデバイスは、確定的モードから非確定的モードへ、またはその逆に分離領域の動作モードを変更するためにSSDからの指示を待機する必要はなく、同じデータのコピーを格納している様々な分離領域の保守必要性に依存して、それを行ってもよい。一実施形態において、SSDがホストへ指示を送信するのではなく、ホストデバイスは、分離領域によって保守が必要とされているかを判定するために、SSDの保守カウンタを定期的にチェックする。他の実施形態において、ホストは、任意のある時間における読出しおよび書込み動作の作業負荷バランスに従って、確定的モードに入る/確定的モードから出る。たとえば、読出し動作が優位である場合、確定的モードが選択され得、書込み動作が優位である場合、非確定的モードが選択され得る。他の実施形態において、ホストは、保守カウンタ閾値に基づいて確定的モードおよび非確定的モードの持続期間を推定し、時間のみに基づいてモード間での分離領域の切換えをスケジュールするが、このスケジュールの例外を生成するために現在の保守カウンタ値も用いる。
パート4:読出しデータエラー処理
一実施形態において、たとえば図1のSSD100などのSSDは、不揮発性メモリアレイからのデータの正しい読出しを支援するために、多数レベルのエラー補正を実装するように構成される。エラー補正のレベルは、複雑性および必要な処理リソースの量において異なる。SSD100のコントローラ120は、最も低いレベルのエラー補正複雑性から始めて、不揮発性メモリのページから読み出したデータにエラー補正を適用し、データがうまく復旧されない場合、データがうまく復旧されるまで、または利用可能なエラー補正が使い尽くされ、データが復旧不可能であるとみなされるまで、次に高いレベルのエラー補正を適用するように構成される。一実施形態において、エラー補正技術のレベルは、複雑性が高くなる順に、硬判定低密度パリティ検査(LDPC)、1または複数のレベルの軟判定LDPC、およびQSBC(Quadruple Swing-By-Code)を含む。たとえばBCH(Bose-Chaudhuri-Hocquenghem)ブロックコードなどの他の種類のエラー補正符号化は、本発明の範囲内である。多重レベルの誤り補正を適用することは、データをうまく読み出すSSDの能力を向上させるが、大幅なレイテンシをもたらし得る。
図9に関して前述したように、データセンタは多くの場合、SSD内および/または同じまたは異なる地理的位置における様々なSSD内の様々な分離領域またはネームスペースにデータの多数のコピーを格納する。そのような環境において、ホストアプリケーションは、利用可能な様々な位置のいずれかからデータを読み出す能力を有する。1つのSSD、分離領域、またはネームスペースへのリードコマンドが不成功、すなわちリードコマンドがエラーを返した場合、ホストアプリケーションは、同じデータを別の場所から読み出そうと試みることができる。たとえば、SSD910がリードコマンドに関するエラーを返した場合、データは、SSD920またはSSD930から読み出され得る。
一実施形態において、コントローラ120のファームウェアは、エラー補正のレベルに対応して、一般的な読出しレイテンシで、ホストアプリケーションが最大読出し復旧レベルを選択することを可能にするように構成される。ホストアプリケーションは、特定のSSD、分離領域、またはネームスペースへの全てのリードコマンドに対して、最大読出し復旧レベルおよびそれに関連する読出しレイテンシを選択してもよく、あるいは、各リードコマンドに対して個々に選択を行ってよい。ホストアプリケーションが、SSDのコントローラが可能である最高レベルのエラー補正よりも低い最大読出し復旧レベルを選択した場合、SSDは、全てのレベルのエラー補正が適用された場合よりも早く読出しエラーを返す。それからホストアプリケーションは、別のSSD、分離領域、またはネームスペースからデータを読み出すことを試みてよい。ホストアプリケーションが、リードコマンドに関する最大読出し復旧レベルを選択することによって「オプトイン」しなかった場合、SSDは、データがうまく読み出されるまで、またはエラー補正技術が使い尽くされるまで、複雑性のレベルを高めてエラー補正技術を適用する。読出し復旧レベルおよび関連する読出しレイテンシのセットの一実施形態が、表1に示される。
Figure 0007258849000001
図11は、本発明の一実施形態に係る、SSDによる読出しデータエラー処理に関する方法ステップ1100のフローチャートである。ステップ1102において、SSDのファームウェアは、ホストアプリケーションから受信したリードコマンドに関する最大読出し復旧レベルを識別する。一実施形態において、SSD、分離領域、またはネームスペースは、全てのリードコマンドに関して最大読出し復旧レベルを用いるように前もって構成されている。他の実施形態において、ホストアプリケーションは、各リードコマンドに関して個々に最大読出し復旧レベルの選択を行う。ステップ1104において、SSDは、適用可能なエラー補正レベルを含むリードコマンドを実行する。たとえば、ホストアプリケーションが表1における読出し復旧レベル「1」を選択した場合、SSDはまず、硬判定LDPC技術をデータに適用し、データがうまく復旧されない場合、次に軟判定LDPC技術を適用する。ステップ1106において、SSDのファームウェアは、データが、最大読出し復旧レベルで、関連する読出しレイテンシ以内にうまく読み出されたかを判定する。データがうまく復旧された場合、次にステップ1108において、SSDは、ホストアプリケーションの完了キューに読出し完了を書き込む。データがうまく復旧されなかった場合、次にステップ1110において、SSDは、ホストアプリケーションの完了キューに読出しエラーを報告する。
図12は、本発明の一実施形態に係る、1または複数のSSDに接続されたホストアプリケーションによる読出しデータエラー処理に関する方法ステップ1200のフローチャートである。ステップ1202において、ホストアプリケーションは、リードコマンドに関する最大読出し復旧レベルを設定する。他の実施形態において、ホストアプリケーションは、特定のネームスペース、分離領域、またはSSDに発行された全てのリードコマンドに関して包括的に最大読出し復旧レベルを設定する。ステップ1204において、ホストアプリケーションは、SSD内のネームスペースにリードコマンドを発行する。ステップ1206において、ホストアプリケーションは、SSDが要求されたデータに関する補正不可能なエラーまたは他の何らかのエラー応答を返したかを判定するために、自身の完了キューをチェックする。SDDがエラーを返した場合、次にステップ1208において、ホストアプリケーションは、別のネームスペース、分離領域、またはSSDに、要求されたデータの別のコピーが格納されているかを判定する。そうである場合、それから方法はステップ1202へ戻り、ここでホストアプリケーションは、別のネームスペースからデータを読み出すことを試みる。ステップ1208において、ホストアプリケーションが、データの別のコピーが別のネームスペースで利用可能ではないと判定した場合、たとえばデータの他のコピーが存在しない、あるいは他のデータ場所が停電中である場合、次にステップ1210において、ホストアプリケーションは、より高い読出し復旧レベルが利用可能であるかを判定する。そのネームスペースに利用可能なより高い読出し復旧レベルがない場合、方法は終了する(リードコマンドはエラーとして返される)。より高い読出し復旧レベルが利用可能である場合、ステップ1212において、ホストアプリケーションは、利用可能な最も高いレベルのエラー補正であり得る、より高い読出し復旧レベルを選択する。方法はそれからステップ1204へ戻る。
本発明の様々な態様の他の目的、利点、および実施形態は、本発明の分野の当業者に対して明らかであり、本明細書および添付図面の範囲内である。たとえば、限定を伴わず、本発明と合致して、構造要素または機能要素は、再配置されてよく、方法ステップは並べ替えられてよい。同様に、本発明に係る原理は他の例に適用されてよく、これらは、本明細書で特に詳しく説明されない場合でも、本発明の範囲内である。

Claims (29)

  1. 1または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、
    それぞれ前記1または複数の通信チャネルと通信可能に結合された1または複数のチャネルコントローラと、
    前記1または複数のチャネルコントローラを介して前記複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、を具備し、
    前記メモリコントローラは、
    前記複数の不揮発性メモリダイの第1のダイを第1の領域のみに割り当て、
    前記第1の領域において発生している動作の回数を記録する第1の保守カウンタと、前記第1の領域に対する保守タスクが実行される必要があることを示す閾値とを比較した結果に基づき、前記第1の領域を、読出し動作のみを行う第1の動作モードまたは、保守タスクおよび書込み動作を行う第2の動作モードのいずれとするのかを決定する、ように構成される、
    ソリッドステートドライブ(SSD)。
  2. 前記メモリコントローラは、前記複数の不揮発性メモリダイの第2のダイを第2の領域のみに割り当てる、ようにさらに構成される請求項1に記載のSSD。
  3. 前記第1の領域および前記第2の領域の少なくとも1つは、1または複数の通信チャネルにおける前記不揮発性メモリダイの各々の前記複数の物理ブロックを具備する請求項2に記載のSSD。
  4. 前記第1の領域および前記第2の領域の少なくとも1つは、前記1または複数の通信チャネルの各々からの1または複数の不揮発性メモリダイの前記複数の物理ブロックを具備する請求項2に記載のSSD。
  5. 前記メモリコントローラは更に、前記第1の領域および前記第2の領域の少なくとも1つにおいて1または複数のネームスペースを生成するように構成される請求項2に記載のSSD。
  6. 前記メモリコントローラは更に、第2の保守カウンタに基づき、前記第1の動作モードまたは第2の動作モードのいずれで前記第2の領域を操作するのかを決定する、ように構成される、請求項2に記載のSSD。
  7. 前記メモリコントローラは更に、
    前記第1の領域または前記第2の領域が前記第1の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に減らし、
    前記第1の領域または前記第2の領域が前記第2の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に増やす、
    ように構成される請求項6に記載のSSD。
  8. 前記第1の領域および前記第2の領域の各々は、前記第1の保守カウンタまたは前記第2の保守カウンタが第1の閾値を上回る場合、前記第1の動作モードで動作し、前記第1の保守カウンタまたは前記第2の保守カウンタが第2の閾値を下回る場合、前記第2の動作モードで動作する請求項7に記載のSSD。
  9. 前記メモリコントローラは更に、
    前記第1の領域または前記第2の領域が前記第1の動作モードである場合、前記第1の保守カウンタまたは第2の保守カウンタを単調に増やし、
    前記第1の領域または前記第2の領域が前記第2の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に減らす、
    ように構成される請求項2に記載のSSD。
  10. 前記第1の領域および前記第2の領域の各々は、前記第1の保守カウンタまたは前記第2の保守カウンタが第1の閾値を下回る場合、前記第1の動作モードで動作し、前記第1の保守カウンタまたは前記第2の保守カウンタが第2の閾値を上回る場合、前記第2の動作モードで動作する請求項9に記載のSSD。
  11. 1または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイと、
    それぞれ前記1または複数の通信チャネルと通信可能に結合された1または複数のチャネルコントローラと、
    前記1または複数のチャネルコントローラを介して前記複数の不揮発性メモリダイと通信可能に結合されたメモリコントローラと、
    を各々が具備する複数のSSDを具備し、
    前記メモリコントローラは、
    前記複数の不揮発性メモリダイの第1のダイを第1の領域のみに割り当て、
    前記第1の領域において発生している動作の回数を記録する第1の保守カウンタと、前記第1の領域に対する保守タスクが実行される必要があることを示す閾値とを比較した結果に基づき、前記第1の領域を、読出し動作のみを行う第1の動作モードまたは、保守タスクおよび書込み動作を行う第2の動作モードのいずれとするのかを決定する、ように構成される
    ストレージ装置。
  12. 前記メモリコントローラは、前記複数の不揮発性メモリダイの第2のダイを第2の領域のみに割り当てる、ようにさらに構成される請求項11に記載のストレージ装置。
  13. 前記複数のSSDの前記第1の領域および前記第2の領域の少なくとも1つは、1または複数の通信チャネルにおける前記不揮発性メモリダイの各々の前記複数の物理ブロックを具備する請求項12に記載のストレージ装置。
  14. 前記複数のSSDの前記第1の領域および前記第2の領域の少なくとも1つは、前記1または複数の通信チャネルの各々からの1または複数の不揮発性メモリダイの前記複数の物理ブロックを具備する請求項12に記載のストレージ装置。
  15. 前記メモリコントローラは更に、第2の保守カウンタに基づき、前記第1の動作モードまたは第2の動作モードのいずれで前記第2の領域を操作するのかを決定する、ように構成される、請求項12に記載のストレージ装置。
  16. 前記複数のSSDの各々の前記メモリコントローラは更に、
    前記複数のSSDの前記第1の領域または前記第2の領域が前記第1の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に減らし、
    前記第1の領域または前記第2の領域が前記第2の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に増やす、
    ように構成される請求項15に記載のストレージ装置。
  17. 前記複数のSSDの前記第1の領域および第2の領域の各々は、前記第1の保守カウンタまたは前記第2の保守カウンタが第1の閾値を上回る場合、前記第1の動作モードで動作し、前記第1の保守カウンタまたは前記第2の保守カウンタが第2の閾値を下回る場合、前記第2の動作モードで動作する請求項16に記載のストレージ装置。
  18. 前記複数のSSDの各々の前記メモリコントローラは更に、
    前記第1の領域または前記第2の領域が前記第1の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に増やし、
    前記第1の領域または前記第2の領域が前記第2の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に減らす、
    ように構成される請求項15に記載のストレージ装置。
  19. 前記複数のSSDの前記第1の領域および第2の領域の各々は、前記第1の保守カウンタまたは前記第2の保守カウンタが第1の閾値を下回る場合、前記第1の動作モードで動作し、前記第1の保守カウンタまたは前記第2の保守カウンタが第2の閾値を上回る場合、前記第2の動作モードで動作する請求項18に記載のストレージ装置。
  20. SSDを動作させる方法であって、
    1または複数の通信チャネルと通信可能に配列された、各々が複数の物理ブロックを具備する複数の不揮発性メモリダイの第1のダイを、第1の領域のみに割り当てることと、
    前記第1の領域において発生している動作の回数を記録する第1の保守カウンタと、前記第1の領域に対する保守タスクが実行される必要があることを示す閾値とを比較した結果に基づき、前記第1の領域を、読出し動作のみを行う第1の動作モードまたは、保守タスクおよび書込み動作を行う第2の動作モードのいずれとするのかを決定することと、
    を具備する方法。
  21. 前記複数の不揮発性メモリダイの第2のダイを第2の領域のみに割り当てることをさらに具備する請求項20に記載の方法。
  22. 前記第1の領域および前記第2の領域の少なくとも1つは、1または複数の通信チャネルにおける前記不揮発性メモリダイの各々の前記複数の物理ブロックを具備する請求項21に記載の方法。
  23. 前記第1の領域および前記第2の領域の少なくとも1つは、前記1または複数の通信チャネルの各々からの1または複数の不揮発性メモリダイの前記複数の物理ブロックを具備する請求項21に記載の方法。
  24. 前記第1の領域および前記第2の領域の少なくとも1つにおいて1または複数のネームスペースを生成することを更に具備する請求項21に記載の方法。
  25. 第2の保守カウンタに基づき、前記第1の動作モードまたは第2の動作モードのいずれで前記第2の領域を操作するのかを決定することをさらに具備する請求項21に記載の方法。
  26. 前記第1の領域または前記第2の領域が前記第1の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に減らすことと、
    前記第1の領域または前記第2の領域が前記第2の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に増やすことと、
    を更に具備する請求項25に記載の方法。
  27. 前記第1の保守カウンタまたは前記第2の保守カウンタが第1の閾値を上回る場合、前記第1の領域または前記第2の領域を前記第1の動作モードで動作させることと、
    前記第1の保守カウンタまたは前記第2の保守カウンタが第2の閾値を下回る場合、前記第1の領域または前記第2の領域を前記第2の動作モードで動作させることと、
    を更に具備する請求項26に記載の方法。
  28. 前記第1の領域または前記第2の領域が前記第1の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に増やすことと、
    前記第1の領域または前記第2の領域が前記第2の動作モードである場合、前記第1の保守カウンタまたは前記第2の保守カウンタを単調に減らすことと、
    を更に具備する請求項25に記載の方法。
  29. 前記第1の保守カウンタまたは前記第2の保守カウンタが第1の閾値を下回る場合、前記第1の領域および前記第2の領域を前記第1の動作モードで動作させることと、
    前記第1の保守カウンタまたは前記第2の保守カウンタが第2の閾値を上回る場合、前記第1の領域および前記第2の領域を前記第2の動作モードで動作させることと、
    を更に具備する請求項28に記載の方法。
JP2020507072A 2017-08-07 2018-08-06 低レイテンシ動作をサポートするssdアーキテクチャ Active JP7258849B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762542108P 2017-08-07 2017-08-07
US62/542,108 2017-08-07
US15/800,742 2017-11-01
US15/800,742 US11294594B2 (en) 2017-08-07 2017-11-01 SSD architecture supporting low latency operation
PCT/IB2018/001039 WO2019030571A1 (en) 2017-08-07 2018-08-06 SSD ARCHITECTURE SUPPORTING LOW LATENCY OPERATION

Publications (2)

Publication Number Publication Date
JP2020529684A JP2020529684A (ja) 2020-10-08
JP7258849B2 true JP7258849B2 (ja) 2023-04-17

Family

ID=65231623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020507072A Active JP7258849B2 (ja) 2017-08-07 2018-08-06 低レイテンシ動作をサポートするssdアーキテクチャ

Country Status (4)

Country Link
US (1) US11294594B2 (ja)
EP (1) EP3665560B1 (ja)
JP (1) JP7258849B2 (ja)
WO (1) WO2019030571A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
GB2545503B (en) * 2015-12-18 2020-04-08 Imagination Tech Ltd Lossy data compression
KR102410671B1 (ko) 2017-11-24 2022-06-17 삼성전자주식회사 스토리지 장치, 스토리지 장치를 제어하는 호스트 장치, 및 스토리지 장치의 동작 방법
CN109901782A (zh) * 2017-12-07 2019-06-18 上海宝存信息科技有限公司 数据储存装置与数据储存方法
US10776263B2 (en) * 2018-06-27 2020-09-15 Seagate Technology Llc Non-deterministic window scheduling for data storage systems
US10909030B2 (en) 2018-09-11 2021-02-02 Toshiba Memory Corporation Enhanced trim command support for solid state drives
US10949120B2 (en) * 2019-02-19 2021-03-16 Intel Corporation Host defined bandwidth allocation for SSD tasks
US10789015B2 (en) * 2019-03-01 2020-09-29 Micron Technology, Inc. Background operations in memory
CN110888592B (zh) * 2019-05-15 2023-09-15 天津大学深圳研究院 基于延迟ssd***智能并行资源利用的请求调度方法及***
US11360905B2 (en) * 2019-05-24 2022-06-14 Texas Instmments Incorporated Write merging on stores with different privilege levels
US11256621B2 (en) * 2019-06-25 2022-02-22 Seagate Technology Llc Dual controller cache optimization in a deterministic data storage system
US11416161B2 (en) 2019-06-28 2022-08-16 Western Digital Technologies, Inc. Zone formation for zoned namespaces
US11023138B2 (en) * 2019-06-28 2021-06-01 Western Digital Technologies, Inc. Management operations in predictable latency mode
CN112233715B (zh) * 2019-07-15 2024-06-18 美光科技公司 用于存储器***的维护操作
US11704056B2 (en) * 2019-07-26 2023-07-18 Kioxia Corporation Independent set data lanes for IOD SSD
US11249648B2 (en) * 2019-07-26 2022-02-15 Kioxia Corporation Transfer and processing unit for IOD SSD
US11016829B2 (en) 2019-07-26 2021-05-25 Toshiba Memory Corporation Two-layered deterministic interprocess communication scheduler for input output determinism in solid state drives
KR20210028335A (ko) * 2019-09-04 2021-03-12 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11416171B2 (en) 2020-01-07 2022-08-16 Western Digital Technologies, Inc. Dynamic predictive latency attributes
US11204839B2 (en) 2020-02-20 2021-12-21 SK Hynix Inc. Memory system with low-latency read recovery and method of operating the memory system
US11556279B2 (en) * 2020-08-21 2023-01-17 Samsung Electronics Co., Ltd. System device, and method for memory interface including reconfigurable channel
US20220261182A1 (en) * 2021-02-17 2022-08-18 SK Hynix Inc. Superblock linkage systems and method for asymmetric die packages
US11561713B2 (en) * 2021-03-11 2023-01-24 Western Digital Technologies, Inc. Simplified high capacity die and block management
US20220342599A1 (en) * 2021-04-23 2022-10-27 EMC IP Holding Company, LLC Memory Management System and Method
WO2023283541A1 (en) * 2021-07-04 2023-01-12 Maxlinear, Inc. Pmd-to-tc-mac interface with 2-stage fec protection
KR20230039127A (ko) 2021-09-13 2023-03-21 에스케이하이닉스 주식회사 Ssd에 포함된 존의 병렬성을 탐지하는 장치 및 그 동작 방법
US11853565B2 (en) * 2021-10-01 2023-12-26 Western Digital Technologies, Inc. Support higher number of active zones in ZNS SSD
TWI780003B (zh) * 2022-02-15 2022-10-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US11880604B2 (en) 2022-05-12 2024-01-23 Western Digital Technologies, Inc. Read fused groups with uniform resource allocation
US11941273B2 (en) 2022-05-12 2024-03-26 Western Digital Technologies, Inc. Variable capacity Zone Namespace (ZNS) flash storage data path
US11922036B2 (en) 2022-05-12 2024-03-05 Western Digital Technologies, Inc. Host data stream assignment with space-leveling across storage block containers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100250826A1 (en) 2009-03-24 2010-09-30 Micron Technology, Inc. Memory systems with a plurality of structures and methods for operating the same
JP2015088071A (ja) 2013-10-31 2015-05-07 富士通株式会社 情報処理装置、記憶装置制御回路及び記憶装置の制御方法
US20170046256A1 (en) 2015-08-11 2017-02-16 Ocz Storage Solutions, Inc. Pool level garbage collection and wear leveling of solid state devices
US20170123707A1 (en) 2015-10-29 2017-05-04 Micron Technology, Inc. Memory cells configured in multiple configuration modes
US20170123666A1 (en) 2015-10-30 2017-05-04 Sandisk Technologies Inc. System and method for managing maintenance scheduling in a non-volatile memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331123B2 (en) 2009-09-21 2012-12-11 Ocz Technology Group, Inc. High performance solid-state drives and methods therefor
US8429374B2 (en) * 2010-01-28 2013-04-23 Sony Corporation System and method for read-while-write with NAND memory device
US8699277B2 (en) 2011-11-16 2014-04-15 Qualcomm Incorporated Memory configured to provide simultaneous read/write access to multiple banks
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
JP6950149B2 (ja) * 2015-09-08 2021-10-13 ソニーグループ株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
JP6779838B2 (ja) * 2017-06-28 2020-11-04 キオクシア株式会社 メモリシステムおよび制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100250826A1 (en) 2009-03-24 2010-09-30 Micron Technology, Inc. Memory systems with a plurality of structures and methods for operating the same
JP2015088071A (ja) 2013-10-31 2015-05-07 富士通株式会社 情報処理装置、記憶装置制御回路及び記憶装置の制御方法
US20170046256A1 (en) 2015-08-11 2017-02-16 Ocz Storage Solutions, Inc. Pool level garbage collection and wear leveling of solid state devices
US20170123707A1 (en) 2015-10-29 2017-05-04 Micron Technology, Inc. Memory cells configured in multiple configuration modes
US20170123666A1 (en) 2015-10-30 2017-05-04 Sandisk Technologies Inc. System and method for managing maintenance scheduling in a non-volatile memory

Also Published As

Publication number Publication date
US11294594B2 (en) 2022-04-05
JP2020529684A (ja) 2020-10-08
US20190042150A1 (en) 2019-02-07
WO2019030571A1 (en) 2019-02-14
CN111149083A (zh) 2020-05-12
EP3665560A1 (en) 2020-06-17
US20220214834A1 (en) 2022-07-07
EP3665560B1 (en) 2024-03-20

Similar Documents

Publication Publication Date Title
JP7258849B2 (ja) 低レイテンシ動作をサポートするssdアーキテクチャ
JP7366795B2 (ja) メモリシステムおよび制御方法
US10817217B2 (en) Data storage system with improved time-to-ready
US9009397B1 (en) Storage processor managing solid state disk array
JP5613260B2 (ja) フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム
US9417961B2 (en) Resource allocation and deallocation for power management in devices
JP6201242B2 (ja) Nandフラッシュメモリにおけるデータの効率的な記憶を可能にするアーキテクチャ
EP2396729B1 (en) Memory system and method of controlling memory system
US10884630B2 (en) Storage system
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
US8589768B2 (en) Memory system having multiple channels and write control method including determination of error correction channel in memory system
US20190278486A1 (en) Storage system, data management method, and data management program
KR102347841B1 (ko) 메모리제어장치 및 메모리제어장치의 동작 방법
JP2022171208A (ja) メモリシステムおよび制御方法
US11307768B2 (en) Namespace auto-routing data storage system
JP2019046238A (ja) メモリシステム
US10872015B2 (en) Data storage system with strategic contention avoidance
EP3166019B1 (en) Memory devices and methods
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和***
US20220113898A1 (en) Data storage system with workload-based asymmetry compensation
CN111149083B (en) SSD architecture supporting low latency operation
US12032438B2 (en) SSD architecture supporting low latency operation
US11768628B2 (en) Information processing apparatus
US11797183B1 (en) Host assisted application grouping for efficient utilization of device resources

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230405

R150 Certificate of patent or registration of utility model

Ref document number: 7258849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150