JP2018190483A - 低キュー深度環境における、nレベルのnand型フラッシュセルのプログラミング - Google Patents

低キュー深度環境における、nレベルのnand型フラッシュセルのプログラミング Download PDF

Info

Publication number
JP2018190483A
JP2018190483A JP2018089264A JP2018089264A JP2018190483A JP 2018190483 A JP2018190483 A JP 2018190483A JP 2018089264 A JP2018089264 A JP 2018089264A JP 2018089264 A JP2018089264 A JP 2018089264A JP 2018190483 A JP2018190483 A JP 2018190483A
Authority
JP
Japan
Prior art keywords
page
sequence
data
memory
block
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
JP2018089264A
Other languages
English (en)
Other versions
JP2018190483A5 (ja
Inventor
ティモシー・エル・カネパ
L Canepa Timothy
アレックス・タン
Tang Alex
スティーブン・ハンナ
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 JP2018190483A publication Critical patent/JP2018190483A/ja
Publication of JP2018190483A5 publication Critical patent/JP2018190483A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】データ記憶装置内でデータを管理するための方法及び装置を提供する。【解決手段】不揮発性キャッシュメモリは、ホスト装置からのページシーケンスを記憶する。不揮発性メインメモリは、関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、m個の独立した集積回路ダイ上に配置された複数のnレベルのセルを有する(m及びnは複数である)。制御回路は、選択された集積回路ダイ上の共通ワード線に接続されている、選択されたnレベルのセルのセットにページシーケンスからの第1ページ及び第2ページを書き込む。第2ページは、ページシーケンスに複数の介在ページを含む論理オフセットによって、ページシーケンス内の第1ページから分離されている。論理オフセットは、m個の集積回路ダイ及び転送回路に関連する遅延時間に応答するように選択される。【選択図】なし

Description

本明細書では、nレベルのNAND型フラッシュメモリセルを使用するソリッドステートドライブ(SSD)などデータ記憶装置内でのデータの管理を概ね対象とする様々な実施形態を開示する。
いくつかの実施形態によると、不揮発性キャッシュメモリは、ホスト装置からのページシーケンスを記憶する。不揮発性メインメモリは、関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、m個の独立した集積回路ダイ上に配置された複数のnレベルのセルを有する(m及びnは複数である)。制御回路は、選択された集積回路ダイ上の共通ワード線に接続されている、選択されたnレベルのセルのセットにページシーケンスからの第1ページ及び第2ページを書き込む。第2ページは、ページシーケンスに複数の介在ページ(intervening page)を含む論理オフセットよって、ページシーケンス内の第1ページから分離されている。論理オフセットは、m個の集積回路ダイ及び転送回路に関連する遅延時間に応答するように選択される。
様々な実施形態を特徴付けることがある上記の特徴及び利点とその他の特徴及び利点とは、以下の詳細な説明及び添付図面を考慮して理解することができる。
いくつかの実施形態による、例示のデータ記憶装置の機能ブロック表現を提供する。 図1の装置のNAND型フラッシュメモリアレイの一部の概略図である。 いくつかの実施形態による、異なるプログラミング規則を使用した図2のフラッシュメモリセル上での蓄積電荷の分布を示す。 いくつかの実施形態に従って実行したデータ転送の問題事例及び理想的事例を示す。 いくつかの実施形態による、データ記憶装置の機能ブロック表現である。 図5のnレベルのフラッシュアレイの態様を示す。 いくつかの実施形態における、入力書き込みデータが、ホストブロックアドレス(HPA)及びサブRブロックに配置される例示の方法を示すブロックシーケンスである。 いくつかの実施形態における、キャッシュメモリ内のサブRブロックから図4のnレベルのフラッシュアレイへの蓄積データの転送の機能表現である。 キャッシュメモリ内の例示の蓄積データを示す。 図8のデータを格納するためにnレベルのフラッシュアレイで使用可能な記憶場所を示す。 いくつかの実施形態における、キャッシュメモリからサブRブロック境界に沿ったnレベルのフラッシュアレイへのデータ転送を連続的に示す。 いくつかの実施形態における、キャッシュメモリからサブRブロック境界に沿ったnレベルのフラッシュアレイへのデータ転送を連続的に示す。 いくつかの実施形態における、キャッシュメモリからサブRブロック境界に沿ったnレベルのフラッシュアレイへのデータ転送を連続的に示す。 nレベルのフラッシュアレイ内でデータを再配置するためのガベージコレクション操作を示す。 いくつかの実施形態に従って実行された工程を示す、SSDデータ管理ルーチンのフロー図である。
本開示は、多重ビットのフラッシュメモリセル(例えば、nレベルのフラッシュメモリセル(nは1より大きい))を備えたNAND型フラッシュアレイを有するソリッドステートドライブ(SSD)データ記憶装置におけるデータ管理に概ね関する。
データ記憶装置には、電子化データを記憶する及び/又は取得するために1つ以上のメモリ装置が備わっている。フラッシュメモリなど一部のソリッドステート半導体ベースのメモリ装置は、電荷転送を用いて、個々のメモリセルでのプログラミング状態を確立する。
フラッシュメモリは、フラッシュメモリセルのフローティングゲート上で蓄積電荷の形式でデータを記憶する。メモリセルは、各トランジスタのメイン制御ゲートから電気的に隔離されたフローティングゲート構造を有するnMOSFET(nチャネル金属酸化膜半導体電界効果トランジスタ)と特徴付けられてよい。メモリセルは、消去状態ではフローティングゲート上で蓄積電荷を実質的に記憶しない。プログラムされると、蓄積電荷の増加量を記憶する。プログラミング操作により、メインチャネルからフローティングゲートへと電荷が移動し、消去操作により、電荷がフローティングゲートから移動して、セルを基底(消去)状態にリセットする。
当該業界では、NAND型フラッシュ装置など半導体メモリの記憶容量を増加させる取り組みが続けられている。シングルレベルセル(SLC)として構成されているメモリセルは、セル当たり1ビットをそれぞれ記憶し、より高速のデータ転送レート及びより長期の作動寿命の両方をもたらす傾向にある。データ記憶密度は、1ビット超を記憶するようにセルをプログラミングすることにより増加させることができる。例えば、マルチレベルセル(MLC)は2ビットを記憶し、トリブルレベルセル(TLC)は3ビットを記憶し、4Xレベルセル(XLC)は4ビットを記憶するなどである。概ね、セルは、2の異なる電荷レベルを使用して合計Nビットにプログラミングされ得る(例えば、2ビットの記憶には4レベルを要し、3ビットの記憶には8レベルを要するなど)。セル当たり複数ビットを記憶することは、データ転送レートを低下させ、セルの摩耗を増加させて、作動寿命の短縮をもたらす傾向にある。
フラッシュメモリに書き込まれる入力ユーザデータは、通常、ページと呼ばれるデータグループに配置される。各データページは、メモリの物理的構造など多数の要因に応じて選択された総ビット数を有する。ページ長の例は、4KB(4096バイト)、8KB、16KB、32KBなどであり得る。共通ゲート制御線(ワード線)に接続されている多数のフラッシュメモリセルを使用してNAND型フラッシュメモリを配置することが一般的である。データの各ページは、同一ワード線に接続されているメモリセルに記憶され、1ビットのページは、ワード線に沿って異なるセルに記憶される。複数ビットを記憶するメモリセルは、最初にデータの第1ページをSLCとして記憶するように配置されることが多い。同一セルへのデータの第2ページの書き込みは、セルをMLCに移行させ、同一セルへの第3ページの書き込みは、セルをTLCに移行させるなどのように行われる。
所定装置のデータ記憶容量を増加させるように作動しつつ、複数ビットのフラッシュメモリセル群(例えば、nレベルセル(nは1よりも大きい))をプログラミングすることは、多数の課題をもたらす。ホストからの順次データセクタ(例えば、論理ブロックアドレス、つまりLBA)を使用してnレベルのフラッシュセルのワード線を直接プログラミングすることは、後続の読み取り操作中のメモリの順次読み取り性能を劣化させる傾向にある。これは、所定の論理範囲内の隣接データのすべてが同一の半導体ダイに記憶され、データの復元に同一のリードバック回路(レーン又はチャネル)を使用するためである。例えば、32KBのページがTLCセットに記憶され、下ページ、中間ページ、及び上ページが順次LABを記憶する場合、96KB又はそれ以上のデータが同一ワード線上の単一メモリセルセットに記憶される。このことは、メモリからストリーミングLBAを復元できるレートを最終的に制限し得る。
したがって、本開示の様々な実施形態は、NAND型フラッシュメモリが挙げられるが、これに限定されないnレベルのメモリセルを有するメモリ内でのデータの記憶を管理するための方法及び装置を対象とする。以下に記載するように、いくつかの実施形態では、SLCフラッシュキャッシュなど不揮発性キャッシュメモリは、ホスト装置から順次受信した複数のデータページを記憶するように構成されている。
不揮発性メインメモリは、キャッシュメモリからのキャッシュページの転送を受信するように構成されている。この不揮発性メインメモリは、関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、m個の独立した集積回路ダイ上に配置された複数のnレベルのセルを含むように構成されている(m及びnは複数)。
SSDコントローラなど制御回路は、選択された非隣接ページ群の同時書き込みを、キャッシュから共通ワード線に接続されているnレベルのセルにダイレクトするように構成されている。ワード線に書き込まれた第1ページと第2ページとの間の論理オフセットは、m個のダイ及び転送回路に関連する遅延時間に応答するように選択される。このようにして、読み取り操作中に最大平均データ転送レートで、メインメモリに記憶された、実質的にすべてのページセットを復元できる。
以下の説明では、TLCレコーディングを用いるNAND型フラッシュメモリアレイを例示する。MLC、XLCなど;2次元(2D)フラッシュアレイ;3次元(3D)フラッシュアレイ;RRAM(登録商標)、MRAM、STRAM、PLCなど他の形式のソリッドステート半導体不揮発性メモリ;複数の積層された記録層を用いる3次元磁気記録(3DMR)ディスクなど「セル」当たり複数ビットを記憶するように構成されている非ソリッドステートメモリが挙げられるが、これらに限定されない任意の数の配置を使用できるため、これは説明を目的とするものにすぎず、限定的なものではない。
様々な実施形態のこれらの特徴及び態様、並びに他の特徴及び態様は、例示のデータ記憶装置100を概略的に図示する図1を再検討することから始めて理解されるであろう。装置100は、コントローラ102とメモリモジュール104とを含む。コントローラ102は、装置100のための最上位の制御を行い、ローカルメモリ内の関連したプログラミングと一体になってプログラマブルプロセッサとして構成されることがある。付加的又は代替的に、コントローラは、所要のコントローラ機能を実行するために論理ゲート又は他の素子と一体となったハードウェアベースの制御回路の形をとることもある。
メモリモジュール104は、回転可能な記録ディスク及びソリッドステートメモリアレイなどの1つ以上の不揮発性メモリ素子として配置され得る。別個の制御部102が図1には示されているが、別の実施形態が、任意の必須の制御機能をメモリモジュールに直接組み込むことができる場合、このようものは不要である。限定するものではないが、この説明のために、データ記憶装置100は、メモリモジュールのメモリ容量の少なくとも一部を構成してホスト装置(図示なし)にメインデータストアを提供する、3次元(3D)NAND型フラッシュメモリアレイを用いるソリッドステートドライブ(SSD)であると企図する。他の形式のメモリを使用することができる。
図2は、いくつかの実施形態による、図1のメモリモジュール104のフラッシュメモリアレイ110の一部の概略図を提供する。他の構成を使用することができるので、図2は例示にすぎず、限定的なものではない。図2の配置は、従来の2次元(2D)NAND型構成に類似した2Dレイアウトである。図2の各列は、3Dアレイ内で要素が縦積みにされていることを示しているが、そうである必要はないと企図される。
フラッシュメモリセル112は、ビット線(BL0〜BL3)114、ソース線(SL0〜SL3)116、及びワード線(WL0〜WL2)118によってアクセスされる。各列の上部及び下部に位置する選択トランジスタなど他の選択回路及び制御線が企図されるが、明確にするために図示しない。プログラミング操作、読み取り操作、及び消去操作は、対応のビット線114、ソース線116、及びワード線118に適した電圧をアサートとすることにより実行される。1つ以上のデータページが各セル列、例えば、所定のワード線112に接続されているセル112に記憶される。本例のために、各ページは32KBであると企図される。ただし、他のサイズを使用することができる。
図3は、図2のフラッシュメモリセル112のための異なるプログラミング形式のグラフィック表現である。シングルレベルセル(SLC)プログラミングは120にて示されており、2つの一般化された母集団曲線(population curve)122及び124によって示されるように2つの対応の母集団を含む。曲線の形状及び程度は、実質的にガウス分布の傾向にある。ただし、様々な要因に基づいて、他の形状が生じ得る。曲線122は、消去状態又は実質的に消去状態にあるフラッシュメモリセルを示す。したがって、これらのセルのフローティングゲート構造には、電荷はほとんど蓄積されないか、全く蓄積されない。これは、論理1の論理状態、つまり論理値(プログラムされた値)に相当する。曲線124は、フラッシュメモリセルが、論理0のプログラム状態を示すのに十分な、選択された量の蓄積電荷を蓄積したことを示す。他の規則を使用することができる。
フラッシュメモリセルのフローティングゲート上での電荷の蓄積は、セルを順(ソース/ドレイン)導通状態にするために(ワード線に取り付けられている)制御ゲートに加える必要のある電圧量を上げる傾向にある。好適な中間ゲート電圧V1の印加により、装置100のリードバック回路がセルのプログラム状態を識別できるようになる。このことからわかるように、電圧V1の印加は、母集団122内のセルを導通状態するが、電圧V1は、母集団124内のセルを導通状態にするには十分ではない。
図3は、130において、2ビットの論理値11、10、00、及び01をそれぞれ含むものとしてマルチレベルセル(MLC)プログラミングを更に示す(母集団は132、134、136、及び138)。当該業界において一般的であるように、SLC120は、必要に応じて続いて追加の蓄積電圧を用いてプログラミングされて、2つのSLC分布を4つのMLC分布に分ける。SLCがデータの第1ページを使用してプログラミングされる場合、次にデータの第2ページは、図示するように第1ページの上部でプログラミングされ、各セルの最上位のビット(MSB)は第1ページの対応するビットを示し、各セルの最下位のビット(LSB)は第2ページの対応するビットを示す。以前のように、電圧V2及びV3など(ただし、これらに限定されない)好適な中間電圧が連続的に印加されて、所定のセルの最終プログラム状態を識別できる。
3レベルセルプログラミングと呼ばれることもあるトリプルレベルセル(TLC)プログラミングは、140にて示す。これは、対応する母集団142、144、146、148、150、152、154、及び156によって提供されたものとして8つの3ビット状態111、110、101、100、000、001、011、及び010を含む。電圧V4及びV5など(ただし、これらに限定されない)様々な中間電圧が連続的に印加されて、様々なセルの最終プログラム状態を識別し得る。
TLCは、データの第3ページをMLCセットにプログラミングすることにより形成され得る。TLCの場合、MSBは第1ページを示し、中間ビット(ISB)は第2ページを示し、LSBは第3ページを示す。本実施形態に従って、4Xレベルセル(XLC)、また4レベルセル(FLC)など他の形式を使用することができる。これにより、概して2の異なる蓄積電荷状態を使用して所定のセルに合計Nビットを記憶できるといえる。
ソリッドステートドライブ(SSD)の主な利点は、複数の装置に対するコマンドをキューに入れて、すべての単一フラッシュ装置の全帯域幅を著しく増加できることである。これは、ホストインターフェイスの非常に広い帯域幅が、多数の個々の、比較的低速のフラッシュデータの読み取りを、当初のレイテンシペナルティのみを使用して単一のモノリシック転送に集め得る、高速の順次読み取りにおいて特に当てはまる。マルチレベルフラッシュ装置の「ワンショット」プログラミングの出現で、コントローラは、SSD内のダイアレイにプログラミングされたデータページが、任意の順次読み取り要求が自然に複数のフラッシュレーン及びダイを呼び出して、転送を完了させる形式であるように保証する責任を有する。図3の例は、コントローラがワンショットフラッシュ装置内の所定のワード線に順次データを単純に書き込む場合に生じるであろう性能損失を示す。
図3は、異なるデータページ162のnレベルフラッシュアレイ164への書き込みのトップレベル制御を提供するSSDコントローラ160(図1のコントローラ102に対応)を示す。第1の事例(「問題事例」)では、ページ0〜2は、同一のワード線などが挙げられるが、これに限定されない、フラッシュアレイ164内の同一のダイMに書き込まれる。
問題事例では、データは、ホスト装置から受信すると、単一フラッシュバス上で単一フラッシュ装置に順次書き込まれる。ホスト装置がこの同一データを読み取ろうとすると、転送は遅くなるであろう。これは、各ページにアクセスする必要があり、データがホストに連続して転送されたためである。例えば、各ページ162の長さは32KBであり、転送レートTrは50μsであり(例えば、読み取りコマンドを処理するまでの指定されたフラッシュアレイ読み取り遅延時間)、フラッシュバスは400MT/sの転送レート(アレイ164からデータを読み取ることができる最高速度)を有し、ホストインターフェイス転送レートが1GB/sである場合、問題事例のデータ(ページ0〜2)を読み取るための最悪の場合の帯域幅BW(スループットレート)は、以下の式で求めることができる。
BW=332KB/((3(50+32KB/500MT/s)+32KB/1000MB/s)=225MB/s (1)
図3は、第2の事例(「理想的事例」)を更に示す。この事例では、3ページ(X、Y、及びZ)がアレイ164の異なるダイに書き込まれ、したがって、異なる読み取り/書き込み回路が、離れたダイの場所にアクセスできる。以前のように、データはホスト装置から受信すると順次書き込まれ得るが、今回は、複数のレーンにわたって複数のダイに書き込まれる。
後続の読み取り操作中、リードバック性能は向上するであろう。以前のように、各ページは32KBであり、Trは50μsであり、フラッシュバスの転送レートは400MT/sであり、ホストインターフェイスの転送レートは1GB/sである場合、理想的事例のデータ(ページX〜Z)を読み取るための最悪の場合の帯域幅BWは、以下の式で求めることができる。
BW=332KB/((50+32KB/500MT/s)+3(32KB/1000MB/s)=385MB/s (2)
これは、問題事例の転送レートよりも約70%増加したことを示す。
本開示は、nレベルのアレイに記憶された順次データの理想的なデータリードバック転送レートに近いレートを実現するように入力キャッシュデータを分散させるように機能する。以下に記載するように、これは、入力キャッシュデータを、サブRブロックと呼ばれるデータセットに分割することによって実行する。サブRブロックは、複数のサブRブロックからの対応するデータページが、nレベルアレイ内の同一ワード線に書き込まれるように選択されたページ境界を有する。同一ワード線に書き込まれた異なるページ間の論理距離は、書き込まれたデータの任意の選択されたサブセットについて実質的に均一のリードバックレートを得るために十分である。
図5は、図1の装置100に概ね対応するSSDデータ記憶装置200の機能ブロック図である。装置200は、装置200のトップレベル制御を提供するSSDコントローラ202を含む。コントローラ100と同様に、SSDコントローラ202は、ローカルメモリ203で対応する実行可能命令を用いるプログラマブルプロセッサ(ファームウェア、FW)を含む、多回路構成で実現されてよい。あるいは、SSDコントローラは、ハードウェア回路などとして実現されてよい。ローカルメモリに記憶されているマップ構造204はSSDコントローラによって使用されて、システム内のデータを追跡する。
ホストインターフェイス(I/F)206は、外部ホスト装置との通信経路を提供する。ローカル揮発性バッファメモリ208は、ホスト転送操作中にデータを一時的にバッファリングするために任意追加的に提供されてよい。ローカルメモリ208は、DRAM、SRAMなど1つ以上のメモリ装置から形成されてよい。
SLCキャッシュメモリ210は、ホストから受信したデータを最初に記憶する。SLCキャッシュメモリ210は、上記のようにSLCとして構成され、機能する不揮発性フラッシュメモリセルセットから形成されると企図される。他の構成を用いることができる。
キャッシュメモリ210に蓄積されたデータは、続いてSSDコントローラ202の指示を受けてnレベルのフラッシュアレイ212に転送される。本例のために、nレベルのフラッシュアレイのNAND型フラッシュメモリセルは、上記のようにTLCとして構成されると企図される。ただし、そのように限定されるものではない。
以下に記載するように、データは、所定の境界において、サブRブロックのシーケンスとしてSLCキャッシュメモリ210に蓄積され、タイル化される。キャッシュメモリが一杯の場合、スピルオーバー操作が実行され、SSDコントローラ202はサブRブロックをステージングし、期待される順次読み取り性能を保証するために必要な分離を行う。
データが書き込まれると、nレベルのフラッシュアレイ212に常駐するデータは、ガベージコレクション技術を使用して新しい位置に再配置され得る。ガベージコレクション技術は、SLCキャッシュメモリ210に同様に適用され、ホストから新たに受信したデータで新しいサブRブロックが形成される。
図6は、いくつかの実施形態による、図5のnレベルのフラッシュメモリアレイ212の態様を示す。アレイ212は、複数のm個のダイ214を含み、各ダイは、アレイ212を構成する半導体集積回路の物理的に分離された部分を構成する。合計4個のダイ214を示す(ダイ0〜3)。ただし、所定のアレイでは任意の複数のダイを用いることができる。
各ダイ214は、別個のデータアクセス又は転送回路216(読み取り/書き込み/消去回路、つまりR/W/E回路とも呼ばれる)によってアクセスされる。別個のダイ214及び回路216により、データ転送操作(例えば、プログラミング及び読み取り)を共通アドレスで同時に実行することができる。
各ダイ214は、多数の消去ブロック218を組み込むことを更に示す。各ダイは、合計12個のかかるブロック218のみを含むように示されているが、各ダイは、著しくより多くの消去ブロックを保持することを理解されたい。各消去ブロック218は、一度に消去できる、最小量のメモリセル(例えば、図2の112)を示す。データページは、各ブロック218内の異なるワード線(メモリセルの行)にわたって記憶される。
最終的に、Rブロック220は、対応のダイ214にわたって消去ブロック218から選択された消去ブロック群として図6に示される。概して、Rブロックは、RAISEブロック(redundant array of independent silicon elements)、又は別々に割り当てられ、ユニットとして消去されるガベージコレクションユニット(GCU)とみなされ得る。各Rブロック220は、特定のRブロックアドレスにおいて、ダイアレイ全体にわたってブロック218をすべて有する。Rブロックアドレスは、以下の式の結果の整数である。
Rブロックアドレス=Int(フラッシュブロックアドレス/フラッシュ平面サイズ) (3)
サブRブロック222は、図7に示す。本明細書において間隔ブロックとも呼ばれる、各サブRブロックは、関連するRブロック220内の整数個の消去ブロック218である。換言すると、所定のRブロック220は、複数のサブRブロック222に分割される。所定のRブロック220内のすべてのサブRブロック222は、同一サイズである(例えば、同数の消去ブロック218を構成する)と企図されるが、必ずしもそうである必要はない。
図7の224において示すように、ホストデータは、装置200の記憶媒体とは無関係である、ホストレベルのアドレス指定方式を使用して、選択された形式で受信される。ある一般的な例は、固定サイズの論理ブロックアドレス(LBA)であり、例えばセクタである。仮想アドレス、キーブロックアドレスなど他の形式を用いることができる。場合によっては、ホストデータLBAは、512バイト、4096バイトなど選択された均一サイズを有する。
ホストデータは、図7の226において、いわゆるホストブロックアドレス、つまりHPAにまとめられる。各HPAは、図5の対応のSLCキャッシュメモリ210及びnレベルのフラッシュアレイ212による記憶に好適なデータページを構成する。上記のように、本例では、各HPAの長さが32KBになると企図する。この方式では、多数ではなくとも、いくつかのホストLBAが各HPAにまとめられることがわかる。SSDコントローラ202(図5)によって用いられるマップ構造204は、フラッシュ遷移層のデータ構造を保持して、所定のホストLBAの現在の位置及びステータスを識別できるようにする。
図7で示すように、226からのHPAは、今度は、HPA0〜HPA N−1に各サブRブロック222を追加するために使用される。必要に応じて、埋め草ビット228を各サブRブロック222の末尾に追加して所望のサイズを達成し得る。これは、ホストデータが圧縮されているときなどに使用できる。ヘッダ及び/又はフッタ制御データ、ECCデータなど他のデータも、各サブRブロックに組み込まれ得るが、説明を明確にするために省略している。
定義により、各Rブロックの先頭(例えば、図7のHPA0)にHPA境界が存在し、各Rブロックの先頭はサブRブロックの先頭でもある。同様に、定義により、各Rブロックの末尾(例えば、図7のHPA N−1)にHPA境界が存在し、各Rブロックの末尾はサブRブロックの末尾でもある。
キャッシュメモリ210にホストデータをタイル化するには、新たなHPA及びサブRブロック境界がRブロックの先頭で開始し、任意の数のHPAが、事前に定義されたサブRブロック境界に達するまで、モジュラス「0」のページにタイル化される。サブRブロック境界に近づくと、SSDコントローラは、サブRブロック内の最後のフルHPAを決定し、次いで、最後のHPAの末尾からフラッシュ平面(ダイ)の末尾までデータを詰める。
キャッシュメモリ210からnレベルフラッシュアレイ214に蓄積データを転送(タイル化)するには、新たなHPA及びサブRブロック境界が、ワード線の各ページのRブロックの先頭で開始する。千鳥配置されたサブRブロックからの有効な予圧縮HPAはキャッシュメモリから読み取られ、nレベルのフラッシュセルに転送される。ワード線の各ページは、再利用されたサブRブロックの一意のスレッドを有して、ワード線内のページ間でのHPAの分離状態を保持する。共通ワード線のサブRブロック境界に近づくと、SSDコントローラは、以前のようにサブRブロック内の各ページの最後のフルHPAを決定し、フラッシュ平面(ダイ)の終点までデータを詰める。
RAISE/パリティ(RAISE−Redundant Array of Independent Silicon Elements)コードがフラッシュアレイに記憶されているとき、コードの場所が追跡され、当該ブロックを含むすべてのサブRブロックから削除される。ファームウェアがパリティブロックに遭遇すると、当該ブロックを飛ばし、次のブロックに進んで再利用を続行する必要がある。定義により、RAISE/パリティは、揃えられ、ユーザデータを含まないブロックである。したがって、再利用不能な場合を除いて、サブRブロックの構造に影響することはない。
これらの操作を、概ね図8に示す。キャッシュメモリ220内のデータの選択されたRブロック220は、サブRブロック0〜2など多数のサブRブロック222を含む。サブRブロック222のそれぞれは、今度は、HPA 0〜2という番号が付けられたHPA 226を含む。
図8で示すように、nレベルのフラッシュアレイ212のワード線118(図2を参照)は、WL0〜WL2として示されている。各サブRブロック(HPA0)の第1HPA226は、第1ワード線(WL0)に書き込まれる。つまり、WL0に接続されているメモリセルは、データの第1ページ、第2ページ及び第3ページを受信するようにTLCとして構成されている。データの第1ページはサブRブロック0からのHPA0ページであり、データの第2ページはサブRブロック1からのHPA0ページであり、データの第3ページはサブRブロック2からのHPA0ページである。nレベルのアレイ212内の各ワード線は、3つの異なるサブRブロックから3つの離間したHPAを同様に受信する。
このことより、アレイ214内の所定のnレベルセルに書き込まれるデータの第1ページと第2ページとの論理距離は、各サブRブロック(間隔ブロック)222のサイズ(つまり、HPAの数)によって決定されることがわかる。
概して、Rブロック内のサブRブロックの最適数は、ホストI/Fのフル順次読み取り性能をサポートするために必要なダイ及びチャネルスレッドの数である。したがってサブRブロックのサイズは、必要なダイ及びチャネルスレッドの数で除したダイの総数である。
各サブRブロックの好適なサイズを決定するための基本方程式は、以下のように書くことができる。
ダイ/チャネルスレッドの数=ホストの読み取り帯域幅/フラッシュチャネルの帯域幅
フラッシュチャネルの帯域幅=フラッシュ平面サイズ/(Tr+Txfer);
Tr=データシート仕様当たりのフラッシュアレイの読み取り遅延
Txfer=転送遅延=フラッシュ平面サイズ/フラッシュチャネルレート
Rページ当たりのサブRブロックの数=ダイの総数/ダイ/チャネルスレッドの数 (4)
これより、論理距離(例えば、あるサブRブロック内の第1HPAから次のサブRブロック内の第1HPAまでのホストセクタ/LBAの数)は、概してダイ/チャネルの数及びnチャネルアレイの読み取り遅延応答に関して決定されることがわかる。式(4)に示すように、他の要素も用いられ得る。
図9A及び9Bは、先の説明の簡略な例を提供するために示されている。図9Aは、図5のSLCキャッシュメモリ210に記憶されているHPAの内容を示す。この簡略な例では、HPAは10ごとに分類されている(例えば、第1ブロックのHPA 0は、HPA 0〜HPA 9までの最初の10個のHPAの記憶を示すなど)。データは、任意の好適な方法でSLCキャッシュに記憶される。処理を簡略化するために、キャッシュメモリ210及びメインメモリ212の両方が共通ページサイズ(例えば、32KB)を共有すると企図する。ただし、必ずしもそうでなくてもよい。
図9Bは、nレベルのフラッシュアレイ212の対応する態様を示す。より具体的には、合計16個のダイ(ダイ0〜F)について第1及び第2ワード線112(WL0及びWL1)を示す。記号「E」は、各ワード線に接続されているセルの特定のビット位置が消去状態であり、データを格納する準備が整っていることを示す。図9A内の全データは、図9Bの全16個のダイにわたって2つのワード線に記憶される。
図10Aは、nレベルのフラッシュアレイ214内の対応のワード線に対する、キャッシュ212からのデータの第1ページの書き込みを示す。HPAの各濃色ブロックは、異なるサブRブロックに対応する。各サブRブロックは、40HPA境界に名目的に配置されるという結果になる(例えば、最初に書き込まれたサブRブロックがHPA 0〜HPA 39にわたって存在する)。図10Aでのデータプログラミング操作の最後には、対応のワード線に沿った各メモリセルはSLCとしてプログラミングされる。
図10Bは、アレイ214内の対応のワード線に対する、キャッシュ212からのデータの第2ページの書き込みを示す。以前のように、データは、指定されたHPA境界にて書き込まれる。図10Bでのデータプログラミング操作の最後には、アレイ214内のメモリセルがMLCとしてプログラミングされるようになる。
図10Cは、アレイ214内の対応のワード線に対する、キャッシュ212からのデータの第3ページの書き込みを示す。これは、セルをTLCとしてプログラミングし、データスピルオーバー/転送プロセスの結果として機能する。この時点において、転送されたデータを記憶するキャッシュメモリ210の当該部分はガベージコレクションされ、新しいユーザデータのために再割り当てされ得る。
図11は、図10Cから得られた、TLCデータを再配置するための例示のガベージコレクションプロセスを示す。図示するように、データ間隔は保持され得るが、所望に応じてバレルシフト方法を用いることができる。例えば、WL1上のISB及びLSBページは、整数個のダイ分シフトされていることに留意されたい(ISB列は、12個のダイ分下にシフトされ、LSB列は8個のダイ分下にシフトされた)。これによって、ウェアレベリング及び他の効果を強化できる。
図12は、先の説明を要約するためのSSDデータ管理ルーチン300のフロー図を提供する。このルーチンは、SLCフラッシュキャッシュメモリ210及びTLCベースのNAND型フラッシュメモリアレイ212で構成されている、図5のSSD 200によって実行されると企図する。他の構成を用いることができるので、これは例示的なものにすぎず、限定的なものではない。
キャッシュ及びnレベルのメインSSDメモリは、工程302にて構成し、続いて、HPAサイズ、Rブロックサイズ、及びサブRブロックサイズ(境界)など様々な操作パラメータを定義する。上記のように、サブRブロックのサイズは、あるサブRブロックから次のサブRブロックまでの第1ページ(HAP)からの論理的分離を決定し、今度は、選択されたワード線に取り付けられている、選択されたダイ上の選択されたメモリセルセットに書き込まれる、第1ページと第2ページとの論理的分離を確立する。この間隔は、少なくとも名目的に、最高到達データ転送レートでの順次データ要求を実現可能にするのに十分でなくてはいけない。
その後データは、工程306にてキャッシュメモリ内に蓄積される。入力ホストデータ(例えば、LBA)は、上記のようにHPAに順次分類されると企図する。HPA内のデータは、論理的順序に並べ替えられても、並べ替えられなくてもよい。ただし、このような並べ替えは必要に応じて実行され得る。例えば、LBA 0〜1000が、ある対応するHPAセット0〜Xに並べ替えられるように、何らかの並べ替えを実行できる。ただし、このような並べ替えを必ずしも実行する必要はない。他の実施形態では、HPAは、LBA値とは無関係に、LBAの受信順に基づいて順次並べられる。
この時点において、書き込み頻度の高い環境では、LBAは頻繁に更新され、旧バージョンはキャッシュにおいて陳腐化と印付けられ得ることに留意されたい。バージョン追跡は、既存のリビジョンマッピング技術を使用して必要に応じて実行され得る。場合によっては、新たな代わりのHPAが書き込まれ、旧バージョンは陳腐化と印付けられて、更新された書き込みの読み取り/修正に対応することがある。それにもかかわらず、SSDコントローラで用いられる管理システムは十分に堅牢であって、常にキャッシュ内のデータの最新バージョンを識別し、更新された書き込みなどを考慮しつつ、キャッシュからアレイ内のTLCメモリセルへのデータの組織的な転送を実行できる。
決定工程308は、十分な数のデータのサブRブロックがキャッシュメモリに蓄積されたかどうかを決定する。場合によっては、転送を進める前にデータに相当するフルRブロックが蓄積される。他の場合では、十分な数のデータのサブRブロックが蓄積されて、使用可能なダイの場所全体にわたるデータ分布を促進する。
キャッシュが一杯であるとみなされると、データは、図9A〜10Cで上述したように、工程310にて、キャッシュからメインメモリに転送される。当然のことながら、キャッシュが「一杯」であるという説明は、更なるデータをキャッシュに記憶できないことを必ずしも意味するのではなく、むしろ、TLCへの転送を開始するために必要なデータの量に達したことを意味する。
その後、通常のデータ読み取り及び書き出し操作が引き続き実行される。データ読み取り要求は、最初にSLCキャッシュ(又は更にはDRAM/SRAMなどの揮発性メモリの場所)によって評価されて、キャッシュヒットを達成する。さもなければ、読み取り操作は、メインメモリを使用して実行され、満たされる。データの正常転送に含まれたキャッシュの当該部分は再利用され、ホスト装置からの新しい書き込みデータを記憶するために準備される。
決定工程312は、メインメモリでガベージコレクション操作を実行するべきかどうかを決定する。実行するべき場合、TLCデータは、新しい場所に書き込まれ得、バレルシフト及び他の好適なデータ再配置技術が実行されて、最適なリードバック性能を保持するために対応のデータの論理的距離を減じることなく、ウェアレベリングを強化し得る。
本開示の様々な実施形態の多数の特徴及び利点が、これらの構成及び機能の詳細と一体となって、前述の説明に記載されているとしても、この詳細な説明は一例にすぎず、変更が詳細に行われ、特に、本開示の原理の範囲内の部品の構成及び配置という点で特許請求の範囲に記載された用語の広い一般的な意味によって示唆された最大限の範囲まで行われることがある、と理解されるべきである。

Claims (20)

  1. データ記憶装置であって、
    ホスト装置からのページシーケンスを記憶するように構成されている不揮発性キャッシュメモリと、
    関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、m個の独立した集積回路ダイ上に配置された複数のnレベルのセルを備える不揮発性メインメモリであって、m及びnは複数である、不揮発性メインメモリと、
    前記ページシーケンスからの第1ページ及び第2ページの書き込みを、選択された集積回路ダイ上の共通ワード線に接続されている、選択されたnレベルのセルのセットにダイレクトするように構成されている制御回路であって、前記第2ページが、前記ページシーケンスに複数の介在ページを含む論理オフセットによって前記ページシーケンス内の前記第1ページから分離されており、
    前記論理オフセットが、m個の集積回路ダイ及び前記転送回路に関連する遅延時間に応答するように選択される、制御回路と、を備える、データ記憶装置。
  2. 前記制御回路が、前記ページシーケンス内の前記第1ページの直後の第3ページ及び前記ページシーケンス内の前記第2ページの直後の第4ページを、第2集積回路ダイ上の共通ワード線に接続されている、第2セットのnレベルのセルに書き込むように更に構成されている、請求項1に記載のデータ記憶装置。
  3. 前記制御回路が、前記ページシーケンスを対応する間隔ブロックシーケンスに配置するように更に構成されており、各間隔ブロックが前記ページシーケンスからの前記ページの異なるサブセットを含み、各間隔ブロック内の前記ページのそれぞれがページアドレスを有し、前記第1ページが第1間隔ブロック内の第1ページに位置し、前記第2ページが別の第2間隔ブロック内の前記第1ページアドレスに位置する、請求項1に記載のデータ記憶装置。
  4. 各間隔ブロック内の前記ページのそれぞれが、前記不揮発性メインメモリ内の前記集積回路ダイのうちの異なる1つに書き込まれる、請求項3に記載のデータ記憶装置。
  5. 前記不揮発性キャッシュメモリが、前記ページシーケンスが書き込まれる複数のシングルレベルセル(SLC)を備えるNAND型フラッシュメモリである、請求項1に記載のデータ記憶装置。
  6. 前記不揮発性メインメモリがnレベルのNAND型フラッシュメモリであり、前記nレベルのセルが、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、又は4Xレベルセル(XLC)のうちの少なくとも選択された1つを備える、請求項5に記載のデータ記憶装置。
  7. 第1ビット総数のユーザデータブロックを記憶するように構成されている揮発性バッファを更に備え、前記制御回路が、前記ユーザデータブロックのうちの複数を前記ページシーケンス内の前記ページのそれぞれにまとめ、したがって前記ページシーケンス内の前記ページのそれぞれが、前記第1ビット総数よりも大きい第2ビット総数を有する、請求項1に記載のデータ記憶装置。
  8. 前記制御回路が、プログラマブルプロセッサと、記憶場所に記憶された関連するプログラミングと、を備える、ソリッドステートドライブ(SSD)コントローラ回路である、請求項1に記載のデータ記憶装置。
  9. 前記ページシーケンス内の前記第1ページと前記第2ページとの間の前記論理オフセットが、前記不揮発性メインメモリに関連するメモリデータ転送レートに応答するように更に選択される、請求項1に記載のデータ記憶装置。
  10. 前記ホスト装置に接続されているホストインターフェイス(I/F)回路を更に備え、前記ページシーケンス内の前記第1ページと前記第2ページとの間の前記論理オフセットが、前記ホストI/Fに関連するホストデータ転送レートに応答するように更に選択される、請求項1に記載のデータ記憶装置。
  11. 方法であって、
    ホスト装置から順次受信したデータブロックを選択された順序でページシーケンスとして不揮発性キャッシュメモリに記憶することであって、前記ページシーケンス内の各後続ページが、異なる複数の、前記順次受信したデータを含む、ことと、
    前記不揮発性キャッシュメモリから不揮発性メインメモリに前記ページシーケンスを転送することであって、前記ページシーケンスからの第1ページ及び第2ページを、前記不揮発性メインメモリの選択された集積回路ダイ上の共通ワード線に接続されている、前記不揮発性メインメモリの選択されたnレベルのセルのセットに書き込むことを含み、前記第2ページが、前記ページシーケンスに複数の介在ページを含む論理オフセットによって前記第1ページから分離されており、前記論理オフセットが、前記不揮発性メインメモリ内の複数の合計m個の集積回路ダイ及び前記選択された集積回路ダイに関連する転送回路に関連する遅延時間に応答するように選択される、ことと、を含む、方法。
  12. 前記転送する工程が、前記ページシーケンス内の前記第1ページの直後の第3ページ及び前記ページシーケンス内の前記第2ページの直後の第4ページを、前記m個の集積回路ダイのうちの第2集積回路ダイ上の共通ワード線に接続されている、第2セットの前記nレベルのセルに書き込むことを更に含む、請求項11に記載の方法。
  13. 前記ページシーケンスを対応する間隔ブロックシーケンスに配置することを更に含み、各間隔ブロックが前記ページシーケンスからの前記ページの異なるサブセットを含み、各間隔ブロック内の前記ページのそれぞれがページアドレスを有し、前記第1ページが第1間隔ブロック内の第1ページアドレスに位置し、前記第2ページが別の第2間隔ブロック内の前記第1ページアドレスに位置する、請求項11に記載の方法。
  14. 各間隔ブロック内の前記ページのそれぞれが、前記不揮発性メインメモリ内の前記集積回路ダイのうちの別の1つに書き込まれる、請求項13に記載の方法。
  15. 前記不揮発性キャッシュメモリが、前記ページシーケンスが書き込まれる複数のシングルレベルセル(SLC)を備えるNAND型フラッシュメモリである、請求項11に記載の方法。
  16. 前記不揮発性メインメモリがnレベルのNAND型フラッシュメモリであり、前記nレベルのセルが、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、又は4Xレベルセル(XLC)のうちの少なくとも選択された1つを備える、請求項15に記載の方法。
  17. 前記データブロックを前記不揮発性キャッシュメモリに前記ページシーケンスとして転送する前に、前記ホスト装置からの前記データブロックを揮発性メモリバッファに記憶することを更に含み、前記データブロックのそれぞれが第1総サイズを有し、前記ページシーケンス内の前記ページのそれぞれが前記第1総サイズの倍数として第2総サイズを有する、請求項11に記載の方法。
  18. 前記第2総サイズが32KBである、請求項17に記載の方法。
  19. 前記ページシーケンス内の前記第1ページと前記第2ページとの間の前記論理オフセットが、前記不揮発性メインメモリに関連するメモリデータ転送レート及び前記ホスト装置に関連するホストデータ転送レートに応答するように更に選択される、請求項11に記載の方法。
  20. 前記第1ページと前記第2ページとの間の前記論理オフセットを保持しつつ、ガベージコレクション操作中に前記不揮発性メインメモリ内の前記ページシーケンスを新しい場所に続いて移動することを更に含む、請求項11に記載の方法。
JP2018089264A 2017-05-03 2018-05-07 低キュー深度環境における、nレベルのnand型フラッシュセルのプログラミング Pending JP2018190483A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/585,429 US9905294B1 (en) 2017-05-03 2017-05-03 Writing logically offset pages of data to N-level memory cells coupled to a common word line
US15/585,429 2017-05-03

Publications (2)

Publication Number Publication Date
JP2018190483A true JP2018190483A (ja) 2018-11-29
JP2018190483A5 JP2018190483A5 (ja) 2019-02-28

Family

ID=61225806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018089264A Pending JP2018190483A (ja) 2017-05-03 2018-05-07 低キュー深度環境における、nレベルのnand型フラッシュセルのプログラミング

Country Status (5)

Country Link
US (1) US9905294B1 (ja)
JP (1) JP2018190483A (ja)
KR (1) KR20180122565A (ja)
CN (1) CN108806754B (ja)
TW (1) TWI689926B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593262B1 (en) 2018-04-25 2023-02-28 Seagate Technology Llc Garbage collection command scheduling
US10922014B1 (en) 2018-06-05 2021-02-16 Seagate Technology Llc Die access order variation
US11138069B2 (en) 2018-06-11 2021-10-05 Seagate Technology, Llc Providing additional parity for non-standard sized parity data sets
US10896002B2 (en) 2018-06-29 2021-01-19 Seagate Technology Llc Reverse directory structure in a garbage collection unit (GCU)
US20200183622A1 (en) * 2018-12-07 2020-06-11 Micron Technology, Inc. Memory circuit package with adjustable active channel count
KR20200114481A (ko) * 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
US10956049B2 (en) * 2019-06-12 2021-03-23 International Business Machines Corporation Wear-aware block mode conversion in non-volatile memory
US11243711B2 (en) 2020-02-05 2022-02-08 Micron Technology, Inc. Controlling firmware storage density based on temperature detection
US11403228B2 (en) * 2020-02-18 2022-08-02 Micron Technology, Inc. Memory device page program sequence
US11275687B2 (en) * 2020-07-07 2022-03-15 Micron Technology, Inc. Memory cache management based on storage capacity for parallel independent threads

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210001B2 (en) 1999-03-03 2007-04-24 Adaptec, Inc. Methods of and apparatus for efficient buffer cache utilization
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7099993B2 (en) * 2003-09-24 2006-08-29 Seagate Technology Llc Multi-level caching in data storage devices
US7549021B2 (en) 2006-02-22 2009-06-16 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
US7499320B2 (en) * 2007-03-07 2009-03-03 Sandisk Corporation Non-volatile memory with cache page copy
ITMI20071012A1 (it) 2007-05-18 2008-11-19 St Microelectronics Srl Dispositivo di memoria migliorato a veloce programmazione
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US9201790B2 (en) 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US7984259B1 (en) 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
US8180954B2 (en) 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US8380909B2 (en) 2009-04-08 2013-02-19 Google Inc. Multiple command queues having separate interrupts
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
KR101619249B1 (ko) 2009-11-26 2016-05-11 삼성전자주식회사 프로그램 방법
US8301836B2 (en) 2010-02-26 2012-10-30 Red Hat, Inc. Methods for determining alias offset of a cache memory
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US20120110239A1 (en) * 2010-10-27 2012-05-03 Seagate Technology Llc Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
KR101467941B1 (ko) * 2011-04-26 2014-12-02 엘에스아이 코포레이션 비휘발성 저장부에 대한 가변 오버­프로비저닝
EP2742429A4 (en) * 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
KR101824295B1 (ko) 2011-08-12 2018-01-31 샌디스크 테크놀로지스 엘엘씨 솔리드 스테이트 장치 가상화를 포함하는 캐시 관리
CN102541757B (zh) * 2011-11-30 2014-11-05 华为技术有限公司 写缓存方法、缓存同步方法和装置
US8724389B2 (en) 2012-07-26 2014-05-13 Ocz Storage Solutions, Inc. Non-volatile solid state memory-based mass storage device and methods thereof
US9104413B2 (en) * 2012-11-05 2015-08-11 Qualcomm Incorporated System and method for dynamic memory power management
US8526234B1 (en) * 2012-11-16 2013-09-03 Avalanche Technology, Inc. Controller management of memory array of storage device using magnetic random access memory (MRAM)
US9910747B2 (en) 2014-09-12 2018-03-06 International Business Machines Corporation Parallel mirrored copying with write consistency
CN105512048B (zh) * 2014-10-16 2018-11-09 瑞昱半导体股份有限公司 数据配置方法与装置
JP5804584B1 (ja) * 2014-10-30 2015-11-04 ウィンボンド エレクトロニクス コーポレーション Nand型フラッシュメモリのプログラム方法

Also Published As

Publication number Publication date
US9905294B1 (en) 2018-02-27
CN108806754A (zh) 2018-11-13
CN108806754B (zh) 2022-04-05
TW201907401A (zh) 2019-02-16
KR20180122565A (ko) 2018-11-13
TWI689926B (zh) 2020-04-01

Similar Documents

Publication Publication Date Title
JP2018190483A (ja) 低キュー深度環境における、nレベルのnand型フラッシュセルのプログラミング
US8762629B2 (en) Data conditioning to improve flash memory reliability
EP2565792B1 (en) Block management schemes in hybrid SLC/MLC memory
US8677058B2 (en) Memory system selecting write mode of data block and data write method thereof
US9645896B2 (en) Data storage device and flash memory control method
US9996302B2 (en) Storage device writing data on the basis of stream
US9390004B2 (en) Hybrid memory management
AU2013345301B2 (en) Methods and devices for avoiding lower page corruption in data storage devices
KR100912612B1 (ko) 향상된 신뢰도 및 성능을 갖는 멀티 비트 셀 플래시 메모리관리 방법
KR101089576B1 (ko) 업데이트 및 스크래치 패드 블록들을 위한 개선된 인덱싱을갖는 비휘발성 메모리 및 방법
US10229049B2 (en) Storage system that performs host-initiated garbage collection
US10466908B2 (en) Memory system that buffers data before writing to nonvolatile memory
US9182928B2 (en) Lower page only host burst writes
CN111373383B (zh) 存储器高速缓存管理
US9690491B2 (en) System and method for managing data in a memory device
CN107924700B (zh) 自适应多阶段擦除
US8995183B2 (en) Data retention in nonvolatile memory with multiple data storage formats
KR20200076923A (ko) 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
KR20220139410A (ko) 메모리 서브시스템에 대한 대기열 유지
KR102324686B1 (ko) 라인 방전을 방지함으로써 개선된 판독 성능을 갖는 데이터 저장소

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201104