JP2022100222A - Nandバッファを利用したdramレスのマルチレベルセルプログラミング - Google Patents

Nandバッファを利用したdramレスのマルチレベルセルプログラミング Download PDF

Info

Publication number
JP2022100222A
JP2022100222A JP2021158532A JP2021158532A JP2022100222A JP 2022100222 A JP2022100222 A JP 2022100222A JP 2021158532 A JP2021158532 A JP 2021158532A JP 2021158532 A JP2021158532 A JP 2021158532A JP 2022100222 A JP2022100222 A JP 2022100222A
Authority
JP
Japan
Prior art keywords
medium
buffer
data
memory
programming
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
JP2021158532A
Other languages
English (en)
Inventor
ナタラジャン シャンカー
Natarajan Shankar
ナガラジャン スレシュ
Nagarajan Suresh
エス.マドラスワラ アリアスガー
S Madraswala Aliasgar
ジャン イフア
Yihua Zhang
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2022100222A publication Critical patent/JP2022100222A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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/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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • 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/5607Digital 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 magnetic storage elements
    • 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
    • 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/5657Digital 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 ferroelectric storage elements
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1054Optical output buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/5678Digital 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 amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】NANDバッファを利用したDRAMレスのマルチレベルセルプログラミング方法及び装置を提供する。【解決手段】マルチレベルセル(MLC)不揮発性(NV)媒体のプログラミングを、外部バッファリングの必要性を減らすために内蔵バッファを再利用して行う。内蔵バッファは、プログラムされるNV媒体と同じダイ上に、プログラムするデータを格納する揮発性メモリと共に存在し、NV媒体用のデータを読み出してプログラムするためにある。NV媒体のプログラミングには、バッファに第1パーシャルページをプログラムのためにステージングすること、NV媒体から揮発性メモリに第2パーシャルページを読み出すこと、第2パーシャルページをバッファに格納すること並びにNV媒体を第1パーシャルページ及び第2パーシャルページでプログラムすることを含む。【選択図】図6A

Description

記載事項は概して不揮発性メモリに関連しており、より具体的には、記載事項はマルチレベルセル式不揮発性メモリのプログラミングに関連している。
不揮発性ストレージ又は不揮発性メモリが、コンピューティングデバイス及びゲーム機の大容量ストレージに用いられている。不揮発性ストレージとは、メモリへの電力が遮断されても、確定状態を保持するストレージのことを指す。デバイスは、需要が増加するにつれてストレージスペースが増加し続けている。容量の増加は、シングルレベルセル(SLC)をマルチレベルセルに置き換えて、データ密度を増やすことにより実現されてきた。マルチレベルセルは、セルごとに、2ビット、3ビット、4ビット、あるいはさらに5ビットを含むことができる。
マルチレベルセルは、SLCよりプログラムするのが遅い。マルチレベルセルのプログラミングは通常、揮発性メモリによって支援される。しかしながら、不揮発性ストレージのプログラミングのために揮発性メモリデバイスを追加すると、不揮発性ストレージデバイスのコストが増加する。例えば、QLC(クアッドレベルセル)のプログラミングには、4ページ分のデータをプログラムする必要があり、このデータは従来より、2TB(テラバイト)ドライブに対して4MG(メガバイト)もの大きさになり得るDRAM(ダイナミックランダムアクセスメモリ)デバイスにキャッシュされている。
DRAMレスのストレージデバイスがスリーレベルセル(TLC)用に存在し、このストレージデバイスは、約256KB(キロバイト)~384KBのオンダイ揮発性バッファを有する。しかしながら、QLC式デバイスであれば、揮発性バッファを用いてプログラミングを行うのに著しく大容量の揮発性バッファを必要とし、約1~4MBのメモリが必要になることがある。1~4MBの揮発性メモリを含むことは、コスト及びダイ面積の点から厳しい。
不揮発性ダイにバッファを設けることの代替案として、本システムは、プログラミングデータキャッシュとしてシステムのメインメモリのメモリスペースを利用できる。システムメモリをデータキャッシュとして用いると、ホストメモリバスを介したキャッシュへのアクセスが必要となり、これは、ホスト帯域幅を共有するために著しいパフォーマンスペナルティを伴うことがある。さらに、ガベージコレクションが行われることになる時間に通信バスが低電力状態に移行することを考えると、ガベージコレクションルーチンのプログラミングがホストメモリバスでは実現できない。大容量のオンダイ揮発性ストレージを用いることも、メインメモリにアクセスするのにホストメモリバスを用いることも、容量を増やした不揮発性デバイス向けのスケーラブルな解決手段ではない。
以下の説明には、実装形態の例として与えられる実例を有する図の考察が含まれる。これらの図面は、例として理解されるべきであり、限定として理解されるべきではない。本明細書では、1つ又は複数の例への言及が、本発明の少なくとも1つの実装形態に含まれる特定の機能、構造、又は特徴を説明しているものと理解されることになる。本明細書に現れる「1つの例では」又は「ある代替例では」などの表現が、本発明の実装形態の例を提供しており、必ずしも全てが同じ実装形態を指しているわけではない。しかしながら、これらの表現は必ずしも相互に排他的であるわけでもない。
ソリッドステートドライブを備えたシステムの一例についてのブロック図である。
マルチステージプログラムを備えた不揮発性ダイの一例についてのブロック図である。
SLC式ストレージ及びQLC式ストレージを備えた不揮発性ダイの一例についてのブロック図である。
マルチレベルセル式不揮発性メモリのマルチステージプログラム操作の一例についてのスイムレーン図である。
マルチレベルセル式不揮発性メモリをプログラムする処理の一例についてのフロー図である。
マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイを備えたソリッドステートドライブ(SSD)のハードウェア図を伴うシステムの一例についてのブロック図である。
マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイを備えたソリッドステートドライブ(SSD)を有するシステムの論理図の一例についてのブロック図である。
マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイが実装され得るコンピューティングシステムの一例についてのブロック図である。
マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイが実装され得るモバイルデバイスの一例についてのブロック図である。
特定の詳細及び実装形態についての説明が次に続き、この説明には、一部又は全ての例と他の可能性のある実装形態とを示し得る図の非限定的な説明が含まれる。
本明細書で説明されるように、マルチレベルセル(MLC)不揮発性(NV)媒体が、外部バッファリングの必要性を減らすために内蔵バッファを再利用してプログラムされ得る。内蔵バッファは、プログラムされるNV媒体と同じダイ上に、プログラムするデータを格納する揮発性メモリと共に存在する。内蔵バッファは、NV媒体用のデータを読み出してプログラムするためのものである。NV媒体のプログラミングには、バッファに第1パーシャルページをプログラムのためにステージングすること、NV媒体から揮発性メモリに第2パーシャルページを読み出すこと、第2パーシャルページをバッファに格納すること、並びにNV媒体を第1パーシャルページ及び第2パーシャルページでプログラムすることが含まれる。
説明した内蔵バッファを用いたプログラミングは、オンダイメモリ(SRAM(同期型ランダムアクセスメモリ)など)であっても、オフダイ式メモリ(DRAM(ダイナミックランダムアクセスメモリ)など)であっても、追加の揮発性メモリスペースを必要としないスケーラブルな解決手段を提供し、性能に悪影響を生じさせない。このプログラミングは、既に利用可能な内蔵バッファスペースを用いることができるのでスケーラブルであり、異なるプログラミング操作で転用される。書き込みデータをバッファリングする内蔵バッファを用いたプログラミングは、DRAMレスのSSD(ソリッドステートドライブ)に適用することができる。
1つの例では、内蔵バッファを用いたプログラミングによって、追加のプログラミングステージが必要になるにもかかわらず、DRAMレスのQLC式NAND型SSDのプログラミングが可能になる(QLCがプログラミングA及びBを有するのに対して、TLC(スリーレベルセル又はトリプルレベルセル)はプログラムAのみを有する)。TLC式NAND型SSDのガベージコレクションには、約256KB~384KBのASIC式SRAMバッファが含まれてよく、この容量は、内蔵バッファを適切に利用する場合には、クアッドプレーンNANDダイと4チャネルコントローラとを有するQLC式SSDにとって十分である。
具体例として、QLC(クアッドレベルセル)式NANDを用いる、SSDなどのストレージデバイスを検討してみる。NANDベースの不揮発性メモリは一般に、フラッシュメモリと呼ばれている。QLCフラッシュには、不揮発性のQLC式メモリアレイとの間でデータを出し入れする内蔵バッファとして動作する内蔵ラッチ又は内蔵レジスタが含まれる。内蔵レジスタは通常、NANDの内部オペレーションに利用される。1つの例では、媒体コントローラ内のファームウェアが、必要なデータを保持してNANDフラッシュアレイのプログラミングを行うために、システム目的で内蔵レジスタを転用することができる。1つの例では、SSDのファームウェアは、内蔵バッファを用いてQLCのプログラミングとガベージコレクションとを行う。QLC式NANDフラッシュのプログラミングに内蔵バッファを用いると、ガベージコレクションの休止中にパワーペナルティが生じない。
このプログラミングによって、フラッシュメモリ用のASIC(特定用途向け集積回路)コントローラ上のSRAM占有面積を削減したDRAMレスの解決手段を可能にすることができる。この解決手段によって、QLC式NV媒体及び3DXP(3次元クロスポイント)書き込みバッファリング媒体を利用するハイブリッド式SSDを含むハイブリッド式SSDなどの、当該解決手段を利用するシステムのコスト及び電力が削減される。
図1は、ソリッドステートドライブを備えたシステムの一例についてのブロック図である。システム100は、ソリッドステートドライブ(SSD)120に結合されたホスト110を含む。ホスト110は、データをSSD120に格納するコンピューティングシステムプラットフォームを表している。SSD120は、システム100のストレージデバイスを表している。コンピューティングシステムプラットフォームは、例えば、ラップトップ、ゲーム機、タブレットもしくは他のハンドヘルドシステム、又は他のコンピューティングシステムであってよい。
ホスト110はプロセッサ112を含み、これは、システム100のコンピューティングデバイス用のホストプロセッサ又はプライマリプロセッサを表している。プロセッサ112は、中央演算処理装置(CPU)システムオンチップ(SOC)、グラフィックス処理装置(GPU)、又はSSD120上にあるストレージリソースへのアクセスをトリガするオペレーションを行う他のプロセッサもしくはコントローラなどの、あらゆる種類のプロセッサであってよい。
ホスト110はインタフェース114を含み、これは、SSD120にアクセスするためのインタフェースを表している。インタフェース114は、信号線、ドライバ、受信器、又はSSD120と通信するための他のハードウェアなどの、ハードウェアを含んでよい。SSD120は、ホスト110と通信するためのホストインタフェース122を含む。1つの例において、インタフェース114及びホストインタフェース122は、不揮発性メモリエクスプレス(NVMe)規格によって通信できる。NVMe規格は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)、すなわち高速シリアルコンピュータ拡張バスによってSSDと通信するホストソフトウェアのレジスタレベルインタフェースを定める。NVMエクスプレス規格は、www.nvmexpress.orgで入手可能である。PCIe規格は、pcisig.comで入手可能である。
1つの例において、ホスト110はコントローラ116を含み、これはホストによるSSD120へのアクセスを管理するためのホスト側コントローラを表している。コントローラ116は、ホスト110がSSD120と通信できるようにするためのインタフェース114を管理できる。コントローラ116は、ホスト110上のプロセッサ112又は別のコンポーネントからの、SSD120に格納されたデータを求める要求を受信する。この要求は、特定の位置にあるデータにアクセスする読み出し要求であっても、データを記憶のためにSSD120に送信する書き込み又はプログラム要求であってもよい。
1つの例において、SSD120はコントローラ140を含み、これは、ホストインタフェース122を管理して、ホスト110からの要求に応答する内部オペレーションを生成するための、ストレージ側コントローラを表している。コントローラ140は、SSDデバイス自体のコントローラを表しており、NVM(不揮発性メモリ)ダイ150及び揮発性メモリ160へのアクセスを制御できる。1つの例において、SSD120は、バッファ130とNVMダイ150との間のプログラム時間を向上させるために、プログラム操作又は書き込み操作用の内蔵キャッシュとして揮発性メモリ160を含むことがある。本明細書のプログラム操作を用いると、揮発性メモリ160をSSD120から排除することができる。SSD120が揮発性メモリ160を含む場合、コントローラ140は、揮発性メモリデバイスへのアクセスを管理する揮発性メモリ(vol mem)制御装置142を含んでよい。コントローラ140は、NVMダイ150へのアクセスを管理するNVM制御装置144を含む。
1つの例において、SSD120は、SSD120に送信される書き込みデータをキャッシュするための書き込みバッファ又は書き込みキャッシュとしてバッファ130を含む。1つの例において、バッファ130は、記憶媒体内にある頻繁にアクセスされるデータを保持するための、高速にアクセスできる読み出しバッファを表してよい。バッファ130は、NVMダイ150よりも記憶容量が小さいが、NVMダイ150よりもアクセス時間が短い。
1つの例において、バッファ130はNVダイ150の一領域である。例えば、NVMダイ150は、プライマリストレージとして大きいQLC式ストレージアレイと、キャッシュとして小さいSLC式ストレージアレイとを含んでよい。データは、SSD120に対する書き込み時間を向上させるために、QLC領域又は他のマルチレベルセル領域に直接的に書き込むことで実現されるよりも短い書き込み時間で、まずバッファリング130又はSLC領域に書き込まれてよい。データは次に、ガベージコレクション操作(データを移動させるバックグラウンド処理を指す)を経てマルチレベルセル領域に転送されてよい。
コントローラ140は、NVMダイ150に関してはオフダイ制御装置を表している。NVMダイ150は、NVMダイ内のオペレーションを管理するオンダイコントローラを含んでよく、これはコントローラ140から独立することになる。コントローラ140は、例えば、NVMダイ150用の読み出しコマンド、書き込みもしくはプログラムコマンド、又は消去コマンド、並びに揮発性メモリ160用の読み出しコマンド及び書き込みコマンドといったコマンドを、待ち行列に入れて処理できる。
SSD120は、1つ又は複数のNVMダイ150を含む。単一ダイの詳細については、システム100に示されている。1つの例において、NVMダイ150は、データアクセスの帯域幅を向上させる独立した複数のストレージチャネルを備えたマルチプレーンダイである。
NVMダイ150はNVMアレイ152を含み、これはSSD120用の記憶媒体を表している。1つの例において、NVMダイ150はバッファ156を含み、これはNVMアレイ152とインタフェースで接続するバッファとして、NVMダイ150の中のレジスタ又はフリップフロップを表してよい。NVMアレイ152は、データをマルチレベルセル(TLC、QLC、5LC、又は3DXPのMLC実装形態など)に書き込む任意のメモリ媒体として実装されてよい。ただし、説明したプログラム操作を行うための内蔵バッファをNVMアレイが有する場合に限る。内蔵バッファ156を用いると、書き込み操作はNVMダイ150の中で自己完結されるので、NVMダイの外側のキャッシュリソースがMLCセルのデータ転送及びプログラミングを行うという要件はなくなる。
1つの例において、NVMダイ150は、プログラミング操作のためにキャッシュを行う揮発性メモリバッファとして、ダイの中にSRAM(スタティックランダムアクセスメモリ)154を含む。プログラミング操作の場合、SRAM154は、NVMアレイ152に書き込むデータのブロックを含んでよく、バッファ156は、NVMアレイ152からの読み出し又はそこへの書き込みの時間を計るために少数のページ用のスペースを含む。したがって、SRAM154及びバッファリング156はプログラミング操作用のキャッシュ又はバッファを提供でき、バッファ156を用いると、プログラム操作用のデータを保持する場所を提供することができ、SRAM154には他のデータがロードされて、全ての書き込みが完了する。
既知のQLC式SSDは「SLC優先」アーキテクチャを有し、ホストデータがSLCモードでNANDに書き込まれた後で、ガベージコレクションのバックグラウンド処理時にQLCモードでNANDに再度書き込まれる。1つの例において、QLC式NANDは2ステップ方式又は2ステージ方式のプログラミングシーケンス、つまり、4つの状態を書き込む第1ステージと、16個の状態を書き込む第2ステージとを有する。1つの例において、第2ステージにおける書き込みでは、第1ステージのデータをNANDから事前に読み出す必要がある。
SSD120におけるガベージコレクションでは、ソースメモリ(バッファ130などであり、これは別のNANDブロックでも他の媒体でもよい)から有効なデータを移動させ、その有効なデータを照合して、移動先となるNVMアレイ152のNANDブロックに書き込むことが必要になる。バッファ156は、読み出し/書き込みバッファであってよい。通常の読み出し操作又は書き込み操作の場合、バッファ156のデータレジスタ又は記憶媒体の内容は、通常の操作では上書きされてよい。1つの例において、NVMダイ150は、データがNVMアレイ152にプログラムされるまで、次の読み出し操作の間中、データを保存するように構成される。
1つの例において、有効なデータの照合には、第1部分のデータをバッファ156に書き込み、そのデータをバッファ156に残すことが含まれ、データの他の部分は揮発性媒体(SRAM154など)に読み出される。1つの例において、SRAM154又は揮発性メモリへの読み出しは、データに対するECC(誤り検出訂正)の実行を含んでよい。したがって、データは、NVMアレイ152に書き込まれる前に誤り訂正されてよい。データの他の部分もバッファ156に書き込まれてよく、その後、全てのデータがバッファ156からNVMアレイ152に書き込まれてよい。
ガベージコレクションのために、バッファ130は、NVMアレイ152に書き込むデータを提供するソース媒体又はソースメモリデバイスであってよい。1つの例において、バッファ130はSLC式フラッシュを含む。1つの例において、バッファ130は3DXPを含む。1つの例において、バッファ156を用いたプログラミングは、他のメモリ媒体とNVMアレイ152との間で行われてよい。例えば、プログラミング用のソース媒体は、DRAMの揮発性バッファ(例えば、揮発性メモリ160がSSD120に用いられる場合)、不揮発性媒体(TLC、別のQLCアレイ、5LC(ファイブレベルセル)など)、又は他の媒体であってもよい。
図2は、マルチステージプログラムを備えた不揮発性ダイの一例についてのブロック図である。システム200は、システム100のNVMダイ150についての一例に従った不揮発性ダイを表している。システム200は、アレイ230と、バッファ210と、バッファ220とを含む。
1つの例において、アレイ230は、SLCモード又はMLCモードで動作できるNANDアレイである。SLCモードにおいて、アレイ230はメモリセルごとに単一ビットのデータ(2進ビット)を格納できる。マルチレベルセルモードにおいて、アレイは、セルに格納される複数レベルの電圧のうちの1つとしてデータを格納することにより、複数ビットのデータを格納する。1つの例において、アレイ230は、2進モード又はマルチレベルセルモードでデータを格納できる別の不揮発性媒体である。アレイ230は、MLCモードでのプログラム操作又は書き込み操作用の、移動先ストレージデバイスである。1つの例において、アレイ230はSLCモードでのソースであってよい。
バッファ210は、揮発性メモリバッファを表している。1つの例において、バッファ210はアレイ230とオンダイになっているSRAMメモリである。1つの例において、バッファ210はDRAMアレイである。バッファ210は、アレイ230のダイから離れた記憶媒体へのバッファインタフェースであってよい。
バッファ220は、アレイ230用の読み出し/書き込みバッファを表している。読み出し操作では、バッファ220はバッファ210に読み出すためのデータを格納する。書き込み操作では、バッファ220はデータをプログラムアレイ230にロードするためのステージングバッファであってよい。1つの例において、バッファ220は、次のアレイ読み出し操作及びSLC/QLCモード切り替え操作によって書き込みデータを保存する。
具体的には示されていないが、アレイ230はデータのブロックとしてデータを格納し、ブロックは複数ページのデータを含む。1ページのデータは、複数ビットのデータ、及び関連メタデータを含む。例えば、アレイは2K(2048)個のブロックを含んでよく、各ブロックは64ページの2Kバイトのデータ(及び64バイトのメタデータ)を有する。読み出しデータ及び書き込みデータへの参照は、ページごと及びブロックごとに行われる。
1つの例において、システム200は次のように、QLC書き込みアルゴリズム及びページシーケンスを実装する。第1の書き込みステージ又はプログラムステージにおいて、コントローラ(具体的には示されていない)は2ページのWL(ワード線)[N]を書き込む。第2の書き込みステージ又はプログラムステージにおいて、コントローラは別の2ページのデータを書き込む。1つの例において、第2ステージは別のワード線からのデータを階段方式で書き込む。ワード線を交互に配置することにより、QLC式デバイスの読み出しウィンドウバジェットを向上させることができ、高速プログラミングが可能になる。別のワード線への逐次プログラム操作に必要な時間遅延は、同じワード線への逐次プログラム操作に必要な時間遅延より短い。したがって、階段方式で書き込みを行うことで、つまり、第1のプログラムステージで1つのWLに書き込み、第2ステージで別のワード線に書き込むことで、全体のプログラミング操作が速くなる。
1つの例において、コントローラは第2ステージで2ページのWL[N-2]を書き込む。1つの例において、コントローラは2ページのWL[N-1]を書き込んでよい。2ホップ以上離れたアドレスに書き込むと、書き込み性能の向上、及び誤りの減少につながり得ることが確認された。したがって、プログラミングは、例えば、WL[N]、WL[N-2]、WL[N+1]、WL[N-1]などに書き込むことができる。1つの例において、第2ステージのプログラムは、書き込まれるワード線へのプログラムの第1ステージで、事前にプログラムした2ページを読み出すことを含んでよい。1つの例において、本システムは読み出したデータに対してECCを行い、次いで、プログラムされる新しい2ページと共にデータパターンを再送信する。
データをアレイ230に書き込むという1つの具体例において、ガベージコレクション手順を検討してみる。データは例えば、SLC式NANDデバイスからQLC式NANDデバイスに書き込まれる。したがって、アレイ230は、SLC式NANDデバイス(不図示)からのデータを書き込むQLC式NANDデバイスを表してよい。
この操作は、ロードデータ242で示されるデータをSLC式NANDからバッファ210にロードすることから始めることができる。1つの例において、バッファ210は静的データキャッシュ(SDC)を表しており、これはアレイ230の外部にあるバッファを表している。1つの例において、バッファ210は第1部分のデータ(ステージデータ244)をバッファ220にステージングする。SLCからQLCへの書き込みでは、1つの例において、第1部分は2ページのデータである。第1部分のデータは第1パーシャルページと呼ばれてよく、この部分はアレイ230に書き込まれる全ページのほんの一部に過ぎないという事実を指している。したがって、システム200は2つの線(それぞれの線は1ページのデータを表す)、すなわち、バッファ210とバッファ220のレジスタ[0]との間の線、及びバッファ210とバッファ220のレジスタ[1]との間の線を示している。1つの例において、ページはバッファ220に1つずつロードされる。
1つの例において、バッファ220はプログラム可能型データキャッシュ(PDC)を表しており、N個のレジスタ(レジスタ[0]~[N-1])は、アレイ230と関連した、当該アレイをプログラムするためのバッファハードウェアを表している。1つの例において、媒体コントローラは、レジスタ[0]及びレジスタ[1]からアレイ230への第1部分のデータのフラッシュ246を制御する。第1フラッシュ246へのデータのロードは、アレイ230のプログラム操作の第1ステージとみなされてよい。
1つの例において、追加のデータ、第2部分のデータ(例えば、別の2ページのデータ)、又は第2パーシャルページがバッファ210にロードされてよい。第2部分のデータは、ステージデータ260で示されるように、バッファ220にステージングされてよい。この操作の第1部では、データがレジスタ[2]及び別のレジスタ(例えば、レジスタ[3])にロードされてよいが、データがバッファ220の逐次レジスタ又はアドレス位置にロードされるという要件はない。
1つの例において、コントローラは、読み出し248で示されるように、第1部分のデータをアレイ230から読み出す。読み出し248では、データをアレイ230からバッファ220のレジスタに読み出す。1つの例において、システム200は、読み出し250で表すように、システム200の外側にあるデバイスへのデータの読み出しを提供できる。読み出し250では、バッファ210からコンピュータシステム(システム200はその一部である)の別の部分にデータを読み出す。
1つの例において、コントローラはこのデータを、その他のデータの読み出しが行われている間、レジスタ[2]及びその他のレジスタに維持する。1つの例において、システム200は、読み出したデータに対してECCを行い、このデータ又は訂正したデータをバッファ210に格納する。バッファ210は次いで、読み出したデータをバッファ220にステージングしてよい。1つの例において、データは、ステージデータ260で示されるように、レジスタ[0]及びレジスタ[1]にステージングされるものとして示されている。バッファ220の他のレジスタ又はアドレススペースが、更新されたデータの第1部分をステージングするのに用いられてよいことが理解されるであろう。
1つの例において、コントローラは、フラッシュ262で示されるように、データの両方の部分をアレイ230にフラッシュする。データが格納されているバッファ220内の特定の位置に関係なく、コントローラは一般に、バッファ220へのデータの読み出し及び格納を管理し、外部バッファを用いることなくプログラミングを行うことが理解できる。
1つの例において、コントローラは、バッファ210への新しいデータのロードに応答して、バッファ220をリセットする。新しいデータのロードは、アレイ230をプログラムするのに用いるデータを保持するよう制御され得る。1つの例において、保持されるデータは、システム200が階段方式でプログラムする場合、別のワード線用のデータを含んでよい。1つの例において、コントローラは、新しいアドレスがバッファ210にロードされるとフラッシュを行い、データの別の部分に対して操作が行われていることを知らせる。
1つの例において、上位ページがデータのフラッシュをトリガする。1つの例において、コントローラは、上位ページがロードされたことに応答してフラッシュを発行してよい。したがって、新しいアドレスがプログラミングのためにロードされたことに応答して、システム200は、2つの部分のデータをフラッシュして、全部のデータをアレイ230にプログラムすることができる。1つの例において、システム200は、オフダイの媒体コントローラからの明示的なフラッシュコマンド又は命令をサポートする。したがって、フラッシュコマンドに応答して、システム200は、2つの部分のデータをフラッシュして、全部のデータをアレイ230にプログラムすることができる。
図3は、SLC式ストレージ及びQLC式ストレージを備えた不揮発性ダイの一例についてのブロック図である。NVMダイ300は、システム100のNVMダイ150の一例又はシステム200の一例に従った不揮発性ダイを表している。
NVMダイ300はバッファ302を含み、これはNVMのQLCブロック320の内蔵バッファを表している。NVMダイ300は、バッファ302を利用してNVMのQLCブロック320をプログラムするので、データをバッファ又はキャッシュしてQLC書き込みデータを照合するためにNVMダイの外側に出る必要がない。バッファ302によって、NVMダイ300は、例えば、SLCモードで構成されたブロックからQLCモードで構成されたブロックへの内部コピーの一部として、データをNVMのSLCブロック310からNVMのQLCブロック320に書き込むことができるようになる。
NVMのSLCブロック310はSLCモードで構成されたブロックを表しており、NVMのQLCブロック320はQLCモードで構成されたブロックを表している。NVMのSLCページ312は、1つ又は複数のページのSLCデータを表している。NVMのQLCページ322は、1つ又は複数のページのQLCデータを表している。NVMの4つのSLCブロック310がNVMの1つのQLCブロック320に格納されてよく、NVMの4つのSLCページ312がNVMの1つのQLCページ322に格納される。
内蔵コントローラ304は、NVMダイ300の内部にあるコントローラ又は媒体コントローラを表している。1つの例において、内蔵コントローラ304は、NVMのSLCブロック310からNVMのQLCブロック320へのデータの転送を管理する。1つの例において、内蔵コントローラ304は、NVMのSLCブロック310からNVMのQLCブロック320へのガベージコレクションを制御するファームウェアを実行する。内蔵コントローラ304は、バッファ302との間のデータ転送を制御してよく、ここには、書き込みデータをバッファに保持し、そのデータを、NVMのQLCブロック320への書き込み又はそのプログラム用の他の書き込みデータと照合するためにステージングすることが含まれる。1つの例において、内蔵コントローラ304はNVMダイ300で選択されたNVMの4つのSLCブロック310の複製を管理し、ここには、バッファ302にあるデータをNVMのQLCブロック320に書き込む前に一時的に格納することが含まれる。
図4は、マルチレベルセル式不揮発性メモリのマルチステージプログラム操作の一例についてのスイムレーン図である。プログラミング400は、システム200又はNVMダイ300の一例によって実行され得るマルチステージ操作を示している。示されているプログラミングは、本プログラミングの2つのページ又は第1パス又は第1ステージのために2ビットをプログラムし、それに続いて、第2パス又は第2ステージ用のさらに2つのページのためにさらに2ビットをプログラムする一例になり得る。本プログラミングは、プログラムされるNVMダイの内蔵コントローラによって制御され且つ操作されてよく、NVMダイにはソース媒体と移動先媒体とが含まれる。
1つの例において、QLC式SSDがフロントエンドのSLC書き込みバッファを有し、全てのホストデータが、QLCに再度書き込まれる前にSLCバッファを経由する。1つの例において、SLCからQLCへの移動はFIFO方式(先入れ先出し)として設計されてよい。1つの例において、SLCからQLCへの移動はLIFO方式(後入れ先出し)として設計されてよい。1つの例において、SLCからQLCへの移動は有効性方式として設計されてよい。
以下の説明では、FIFO方式を前提とする。以下の説明は、最小原子単位がSLCへのホスト書き込みの4ページであり、バックグラウンドの4ページがSLCからQLCに移動することを前提とする。したがって、コントローラは、スタックの先頭を指す書き込みポインタと、スタックの最後を指す読み出しポインタとを含んでよい。したがって、この操作はNまで書き込み、データを0から読み出して移動する。
プログラミング400は、ソース媒体及びコントローラ(ファームウェア又はFWとして識別される)、揮発性バッファとしてのSRAM、並びにNVM媒体から行われる操作を示している。1つの例において、NVM媒体はNVM媒体用のソースモードを有している。1つの例において、ソースモードはSLCモードであり、データは最初に書き込みキャッシュとしてのSLCに書き込まれる。1つの例において、ソースモードへのホスト書き込みは、ホスト書き込みデータを別のソースNVM媒体に格納してQLCモード媒体に転送するという他の操作を必要とする(QLCからQLC、TLCからQLC、2つのレベルのセルなど(MLCと略して書かれることがあり、2ビット以上のデータを格納する任意のセルとしてより一般的に本明細書で用いられる))。
1つの例において、402では、ホストが4つのページをソース媒体から移動先媒体に書き込む。404では、本プログラミングがソース媒体のブロック(BLK)[N]へのソースモード書き込み(WR)を行う。406では、本プログラミングがブロック(BLK)[0]からのソースモード読み出し(RD)を行う。書き込みがBLK[N]に対して行われてよく、その間にガベージコレクションがソースBLK[0]からQLCモードのBLK[N]に書き込み、スタックの最上位アドレスに対して書き込みが行われ、スタックの最下位アドレスから転送用の読み出しが行われることが理解されるであろう。
408では、ソースモードからの読み出しが、SRAMへのページ[1]の読み出しとして指定される。410では、SRAMがページ[1]を格納する。412では、SRAMがページ[1]を書き込みのためにステージングし、NVM媒体がページ[1]を内蔵バッファにロードする。414では、本プログラミングが、ブロック(BLK)[0]からソースモード読み出し(RD)を行う。416では、ソースモードからの読み出しが、SRAMへのページ[2]の読み出しとして指定される。418では、SRAMがページ[2]を格納する。420では、SRAMがページ[2]を書き込みのためにステージングし、NVM媒体がページ[2]を内蔵バッファにロードする。
1つの例において、422では、ファームウェア(FW)が内蔵バッファからQLCモード媒体へのプログラムをトリガする。424では、本プログラミングがWL[N]へのQLCモードの第1ステージ書き込みを行う。本プログラムは、QLCモード媒体のWL[N]の下位ページ、LP及びUPになる。
426では、本プログラミングがブロック(BLK)[0]からのソースモード読み出し(RD)を行う。428では、ソースモードからの読み出しが、SRAMへのページ[3]の読み出しとして指定される。430では、SRAMがページ[3]を格納する。432では、SRAMがページ[3]を書き込みのためにステージングし、NVM媒体がページ[3]を内蔵バッファにロードする。434では、本プログラミングがブロック(BLK)[0]からのソースモード読み出し(RD)を行う。436では、ソースモードからの読み出しが、SRAMへのページ[4]の読み出しとして指定される。438では、SRAMがページ[4]を格納する。440では、SRAMがページ[4]を書き込みのためにステージングし、NVM媒体がページ[4]を内蔵バッファにロードする。
1つの例において、QLC媒体の最終プログラミングが、別のワード線用に内蔵バッファにロードされていたページ[3]及びページ[4]、並びにQLC媒体から読み返されるページ[1]及びページ[2]からのデータを用いて行われる。これらのページは、別のワード線用のページであってよく、内蔵バッファにステージングされ且つ維持されて、プログラムの第2ステージのために待機するページが含まれる。
442では、本プログラミングがWL[N-2]からQLCモードのプリプログラム読み出し(PRE-RD)を行う。444では、ソースモードからの読み出しがSRAMへのWL[N-2]用の第1ステージのページ[1]の読み出しとして指定される。446では、SRAMが、ページ[1a]として識別される第1ステージのページ[1]を格納する。448では、SRAMがページ[1a]を書き込みのためにステージングし、NVM媒体がページ[1a]を内蔵バッファにロードする。450では、本プログラミングがWL[N-2]からQLCモードのプリプログラム読み出し(PRE-RD)を行う。452では、ソースモードからの読み出しがSRAMへのWL[N-2]用の第1ステージのページ[2]の読み出しとして指定される。454では、SRAMが、ページ[2a]として識別される第1ステージのページ[2]を格納する。456では、SRAMがページ[2a]を書き込みのためにステージングし、NVM媒体がページ[2a]を内蔵バッファにロードする。
1つの例において、458では、ファームウェア(FW)が内蔵バッファからQLCモード媒体へのプログラムをトリガする。460では、本プログラミングがWL[N-2]へのQLCモードの第2ステージ書き込みを行う。本プログラムは、QLCモード媒体のWL[N-2]の上位ページ及び下位ページ、LP、UP、XP、並びにTPになる。
図5は、マルチレベルセル式不揮発性メモリをプログラムする処理の一例についてのフロー図である。処理500は、NVMのマルチレベルセルをプログラムする処理の一例を示している。1つの例において、502では、NVMダイが複数ページのデータをホストからプログラム操作のために受信する。1つの例において、504では、NVMダイがこれらのページを移動先のNVM媒体にプログラムするために個々に読み出してステージングする。
508では、NVMダイのコントローラが、NVMダイの移動先媒体の内蔵バッファに書き込むためにページをステージングしてよい。510の判定分岐でコントローラがNV媒体をプログラムする準備ができていない場合、コントローラは512でソース媒体から読み出すべき次のページを識別し、506に戻って次のページを揮発性メモリに読み出してよい。1つの例において、コントローラは、フラッシュトリガが受信されているのか、プログラムトリガが受信されているのかに基づいて、NV媒体をプログラムすると決定する。プログラムトリガは、書き込み用の新しいアドレスをロードすることであってよい。プログラムトリガは、プログラム操作を示すコマンドの受信であってよい。
510の肯定分岐でコントローラがNV媒体をプログラムする場合、1つの例において、514では、このプログラムパスにおいてプログラムすべきページがまだあるかどうかをコントローラが判定する。1つの例において、516の肯定分岐でプログラムすべきページがまだある場合、518では、コントローラが書き込みステージをインクリメントしてプログラミング操作に戻ってよい。プログラムへの別のステージがある場合、プログラムすべきページがまだあり得る。コントローラは次いで、512で読み出すべき次のページを識別し、506に戻って次のページを揮発性メモリに読み出してよい。
1つの例において、516の否定分岐でNV媒体に書き込まれるデータのページがもうない場合、ページ全体が内蔵バッファにステージングされ、コントローラはNV媒体をプログラムする準備が整う。媒体コントローラは520で、これらのページのデータを用いてNV媒体をプログラムしてよい。
図6Aは、マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイを備えたソリッドステートドライブ(SSD)のハードウェア図を伴うシステムの一例についてのブロック図である。システム602は、プログラミング400に従ってマルチステージプログラム操作を行うことができる不揮発性ストレージシステムの各コンポーネントを表している。システム602は、システム200の一例又はNVMダイ300の一例に従ったNVMダイを含んでよい。
システム602は、ホスト610に結合されたSSD620を含む。ホスト610は、SSD620に接続するホストのハードウェアプラットフォームを表している。ホスト610は、ホストプロセッサ又はホストプロセッサデバイスとして、CPU(中央演算処理装置)612又は他のプロセッサを含む。CPU612は、SSD620に格納されたデータにアクセスするための要求、データの読み出しもしくはデータのストレージへの書き込みのいずれかを行うための要求を生成する任意のホストプロセッサを表している。そのようなプロセッサは、シングルコア又はマルチコアのプロセッサ、コンピューティングデバイス用のプライマリプロセッサ、グラフィックスプロセッサ、周辺プロセッサ、予備もしくは補助のプロセッサ、又はこの組み合わせを含んでよい。CPU612は、ホストOS及び他のアプリケーションを実行して、システム602のオペレーションを引き起こしてよい。
ホスト610はチップセット614を含み、これはCPU612とSSD620との接続に含まれ得るハードウェアコンポーネントを表している。例えば、チップセット614は、SSD620へのアクセスを可能にする相互接続回路及びロジックを含んでよい。したがって、ホストプラットフォーム610は、SSD620をホスト610に結合するハードウェアプラットフォームドライブ相互接続を含んでよい。ホスト610は、SSDに相互接続するハードウェアを含む。同様に、SSD620は対応するハードウェアを含み、ホスト610に相互接続する。
ホスト610はコントローラ616を含み、これはホスト側のストレージコントローラ又はメモリコントローラを表しており、SSD620へのアクセスを制御する。1つの例において、コントローラ616はチップセット614に含まれる。1つの例において、コントローラ616はCPU612に含まれる。コントローラ616は、ホスト610がSSD620へのコマンドをスケジューリングし且つ準備してデータの読み出し及び書き込みを行うことができるようにするNVメモリコントローラと呼ばれることがある。
SSD620は、データを格納する不揮発性(NV)媒体630を含むソリッドステートドライブ又は他のストレージシステムもしくはモジュールを表している。SSD620はHW(ハードウェア)インタフェース622を含み、これはホスト610とインタフェースで接続するハードウェアコンポーネントを表している。例えば、HWインタフェース622は、NVMe(不揮発性メモリエクスプレス)又はPCIe(ペリフェラルコンポーネントインターコネクトエクスプレス)などの高速インタフェース規格を実装する1つ又は複数のバスとインタフェースで接続することができる。
1つの例において、SSD620は、SSD620のプライマリストレージとしてNV(不揮発性)媒体630を含む。1つの例において、NV媒体630は、NAND(否定AND)又はNOR(否定OR)などのブロックアドレス指定可能メモリ技術である、又はこれを含む。1つの例において、NV媒体630は、不揮発性のブロックアドレス指定可能媒体、不揮発性のバイトアドレス指定可能媒体、又はバイトアドレス指定可能にもブロックアドレス指定可能にもなり得る不揮発性媒体を含んでよい。1つの例において、不揮発性媒体は、メモリセルの抵抗状態又はメモリセルの相に基づいてデータを格納する。例えば、NV媒体630は、カルコゲナイド相変化材料(例えば、カルコゲナイドガラス)に基づく3次元クロスポイント(3DXP)メモリ又はストレージアレイであってもよく、又はこれを含んでもよい。1つの例において、NV媒体は、マルチ閾値レベル式NANDフラッシュメモリ、NORフラッシュメモリ、シングルレベルもしくはマルチレベルの相変化メモリ(PCM)もしくはスイッチ付き相変化メモリ(PCMS)、抵抗変化型メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ(MRAM)、又はスピン注入磁化反転(STT)型MRAM、あるいは上記メモリ又は他のメモリのいずれかの組み合わせであってもよく、又はこれを含んでもよい。1つの例において、NV媒体630は3D式NANDセルを含む。
1つの例において、NV媒体630は、N個のダイ(ダイ[0]~[N-1])として示されている複数のダイとして実装される。Nは、任意の数のデバイスであってよいが、2進数であることが多い。SSD620は、HWインタフェース622を介したNV媒体630へのアクセスを制御するコントローラ640を含む。コントローラ640は、SSD620の中にある、媒体の制御を実行するハードウェア及び制御ロジックを表している。コントローラ640は不揮発性ストレージデバイス又はモジュールの内部にあり、ホスト610のコントローラ616から独立している。
1つの例において、ダイ[0]~[N-1]はNVアレイ632を含む。1つの例において、NVアレイ632は3Dメモリアレイである。NVアレイ632は関連するバッファ634を含み、これはNVアレイ632に対する読み出し及び書き込みを行うための内蔵バッファを表している。1つの例において、バッファ634に対する読み出し及び書き込みの制御、並びにバッファ634からNVアレイ632へのデータの格納により、説明したプログラミングの任意の例に従い、最小限の外部リソースを用いてNV媒体にプログラムするアプリケーションが可能になり得る。プログラム636は、プログラミングを行う制御ロジックを表している。1つの例において、プログラム636は、NV媒体のプログラミングを管理するコントローラと共に実装される制御ロジックを表している。
図6Bは、マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイを備えたソリッドステートドライブ(SSD)を有するシステムの論理図の一例についてのブロック図である。システム604は、図6Aのシステム602の一例に従った不揮発性メモリアレイを備えるシステムを示している。
システム604は、システム602に従ったハードウェアプラットフォームのホスト及びSSDの論理層を示している。システム604は、システム602の一例のソフトウェア及びファームウェアのコンポーネント、並びに物理コンポーネントを表し得る。1つの例において、ホスト650はホスト610の1つの例を提供する。1つの例において、SSD660はSSD620の1つの例を提供する。
1つの例において、ホスト650はホストOS652を含み、これは、ホストのオペレーティングシステム又はホスト用のソフトウェアプラットフォームを表している。ホストOS652は、アプリケーション、サービス、エージェント、及び/又は他のソフトウェアが実行されるプラットフォームを含んでよく、ホストOSはプロセッサによって実行される。ファイルシステム654は、NV媒体へのアクセスを制御するための制御ロジックを表している。ファイルシステム654は、どのアドレス又はメモリ位置がどのデータを格納するのに用いられるかを管理できる。多数のファイルシステムが知られており、ファイルシステム654は、既知のファイルシステム又は他の専用システムを実装できる。1つの例において、ファイルシステム654はホストOS652の一部である。
ストレージドライバ656は、ホスト650のハードウェアを制御する1つ又は複数のシステムレベルモジュールを表している。1つの例において、ドライバ656は、SSD660へのインタフェースを制御し、したがってSSD660のハードウェアを制御するソフトウェアアプリケーションを含む。ストレージドライバ656は、ホストとSSDとの間の通信インタフェースを提供してよい。
SSD660のコントローラ670はファームウェア674を含む、これはコントローラの制御用ソフトウェア/ファームウェアを表している。1つの例において、コントローラ670はホストインタフェース672を含み、これはホスト650に対するインタフェースを表している。1つの例において、コントローラ670は媒体インタフェース676を含み、これはNANDダイ662に対するインタフェースを表している。NANDダイ662はNV媒体の具体例を表しており、関連するNANDアレイ664を含む。NANDアレイ664は、メモリセルのアレイを含む。
媒体インタフェース676は、コントローラ670のハードウェア上で実行される制御を表している。コントローラ670はホスト650とインタフェースで接続するハードウェアを含み、これは、ホストインタフェースのソフトウェア/ファームウェア674によって制御されるとみなされ得ることが理解されるであろう。同様に、コントローラ670はNANDダイ662とインタフェースで接続するハードウェアを含むことが理解されるであろう。1つの例において、ホストインタフェース672のコードがファームウェア674の一部になり得る。1つの例において、媒体インタフェース676のコードがファームウェア674の一部になり得る。
1つの例において、コントローラ670は、アクセスされるデータのデータエラー、及び信号伝達及び通信インタフェース接続への準拠の点から見たコーナーケースを処理する誤り制御装置680を含む。誤り制御装置680は、ハードウェアもしくはファームウェアの実装形態、又はハードウェアとソフトウェアとの組み合わせを含んでよい。
1つの例において、NANDダイ662はバッファ666を含み、これはNANDアレイ664に対する読み出し及び書き込みを行うための内蔵バッファを表している。1つの例において、バッファ666に対する読み出し及び書き込みの制御、並びにバッファ666からNANDアレイ664へのデータの格納により、説明したプログラミングの任意の例に従い、最小限の外部リソースを用いてNV媒体にプログラムするアプリケーションが可能になり得る。プログラム668は、プログラミングを行う制御ロジックを表している。1つの例において、プログラム668は、NV媒体のプログラミングを管理するコントローラと共に実装される制御ロジックを表している。
図7は、マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイが実装され得るコンピューティングシステムの一例についてのブロック図である。システム700は、本明細書の任意の例に従ったコンピューティングデバイスを表しており、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバ、ゲームもしくはエンタテイメント用の制御システム、埋め込み型コンピューティングデバイス、又は他の電子デバイスであってよい。
1つの例において、ストレージサブシステム780は、コード/データ786を格納するNVアレイ790を備えたストレージ784を含む。1つの例において、NVアレイ790は関連するバッファ792を含む。1つの例において、ストレージ784はコントローラ(CTLR)794を含み、これは、データの外部バッファリングの利用を回避するためにバッファ792を利用するNVアレイ790のプログラミングを管理するオンダイコントローラを表している。1つの例において、コントローラ794は、バッファ792に対する読み出し及び書き込み、並びにバッファ792からNVアレイ790へのデータの格納を制御し、説明したプログラミングの任意の例に従い、最小限の外部リソースを用いてプログラミングを行うことができる。
システム700はプロセッサ710を含み、これは、システム700用の命令の処理又は実行を提供するあらゆる種類のマイクロプロセッサ、中央演算処理装置(CPU)、グラフィックス処理装置(GPU)、処理コア、もしくは他の処理ハードウェア、又はこの組み合わせを含み得る。プロセッサ710はホストプロセッサデバイスであってよい。プロセッサ710は、システム700の全体的なオペレーションを制御し、1つ又は複数のプログラム可能型の汎用もしくは専用マイクロプロセッサ、デジタル信号プロセッサ(DSP)プログラム可能型コントローラ、特定用途向け集積回路(ASIC)、プログラム可能型論理デバイス(PLD)、又はそのようなデバイスの組み合わせであってもよく、又はこれを含んでもよい。
システム700は起動/設定716を含み、これは、起動コード(例えば、基本入力/出力システム(BIOS))を格納するストレージ、コンフィギュレーション設定、セキュリティハードウェア(例えば、トラステッドプラットフォームモジュール(TPM))、又はホストOSの外側で動作する他のシステムレベルハードウェアを表している。起動/設定716は、読み出し専用メモリ(ROM)、フラッシュメモリ、又は他のメモリデバイスなどの不揮発性ストレージデバイスを含んでよい。
1つの例において、システム700はプロセッサ710に結合されたインタフェース712を含み、これは、より広い帯域幅の接続を必要とするシステムコンポーネント(メモリサブシステム720又はグラフィックスインタフェースコンポーネント740など)用の高速インタフェース又は高スループットインタフェースを表してよい。インタフェース712はインタフェース回路を表しており、これはスタンドアロン型コンポーネントであっても、又はプロセッサダイに組み込まれてもよい。インタフェース712は、プロセッサダイに回路として組み込まれても、システムオンチップにコンポーネントとして組み込まれてもよい。存在する場合、グラフィックスインタフェース740はシステム700のユーザに視覚表示を提供するためのグラフィックスコンポーネントとインタフェースで接続する。グラフィックスインタフェース740は、スタンドアロン型コンポーネントであってもよく、プロセッサダイ又はシステムオンチップに組み込まれてもよい。1つの例において、グラフィックスインタフェース740は、ユーザに出力を提供する高精細度(HD)ディスプレイ又は超高精細度(UHD)ディスプレイを駆動できる。1つの例において、このディスプレイはタッチスクリーンディスプレイを含んでよい。1つの例において、グラフィックスインタフェース740は、メモリ730に格納されたデータに基づいて、又はプロセッサ710により実行される操作に基づいて、又はその両方に基づいて表示を生成する。
メモリサブシステム720は、システム700のメインメモリを表しており、プロセッサ710により実行されるコード用の、又はルーチンを実行する際に用いられるデータ値用のストレージを提供する。メモリサブシステム720は、1つ又は複数の種類のランダムアクセスメモリ(RAM)、例えば、DRAM、3DXP(3次元クロスポイント)、もしくは他のメモリデバイス、又はそのようなデバイスの組み合わせなどを含んでよい。メモリ730は、特に、システム700において命令を実行するためのソフトウェアプラットフォームを提供するオペレーティングシステム(OS)732を格納し且つホストする。さらに、アプリケーション734は、メモリ730からOS732のソフトウェアプラットフォーム上で実行されてよい。アプリケーション734は、それ独自の動作ロジックを有して、1つ又は複数の機能の実行を担うプログラムを表している。プロセス736は、OS732又は1つもしくは複数のアプリケーション734又はその組み合わせに補助機能を提供するエージェント又はルーチンを表している。OS732、アプリケーション734、及びプロセス736は、システム700に機能を提供するソフトウェアロジックを提供する。1つの例において、メモリサブシステム720はメモリコントローラ722を含み、これはコマンドを生成してメモリ730にそのコマンドを発行するメモリコントローラである。メモリコントローラ722は、プロセッサ710の物理的部分、又はインタフェース712の物理的部分になり得ることが理解されるであろう。例えば、メモリコントローラ722は、プロセッサ710と共に回路に組み込まれる(プロセッサダイ又はシステムオンチップに組み込まれるといった)一体型メモリコントローラであってよい。
具体的には示されていないが、システム700はデバイス間にメモリバス、グラフィックスバス、インタフェースバスなどといった1つ又は複数のバスもしくはバスシステムを含んでよいことが理解されるであろう。これらのバス又は他の信号線が、各コンポーネントを互いに通信可能にもしくは電気的に結合してよく、又は各コンポーネントを通信可能に且つ電気的に結合してよい。バスは、物理的な通信回線、二地点間接続、ブリッジ、アダプタ、コントローラ、もしくは他の回路、又はその組み合わせを含んでよい。バスは、例えば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス、HyperTransportもしくは業界標準アーキテクチャ(ISA)バス、スモールコンピュータシステムインタフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、もしくは他のバス、又はその組み合わせのうちの1つ又は複数を含んでよい。
1つの例において、システム700はインタフェース714を含み、これはインタフェース712に結合されてよい。インタフェース714は、インタフェース712よりも低速のインタフェースであってよい。1つの例において、インタフェース714はインタフェース回路を表しており、これはスタンドアロン型コンポーネントと集積回路とを含んでよい。1つの例において、複数のユーザインタフェースコンポーネントもしくは周辺コンポーネント、又はその両方がインタフェース714に結合する。ネットワークインタフェース750は、1つ又は複数のネットワークを介してリモートデバイス(例えば、サーバ又は他のコンピューティングデバイス)と通信する能力をシステム700に提供する。ネットワークインタフェース750は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、セルラネットワークの相互接続コンポーネント、USB(ユニバーサルシリアルバス)、又は他の有線規格もしくは無線規格に基づくインタフェースもしくは専用インタフェースを含んでよい。ネットワークインタフェース750は、リモートデバイスとデータを交換することができ、ここには、メモリに格納されたデータの送信、又はメモリに格納されるデータの受信が含まれてよい。
1つの例において、システム700は1つ又は複数の入力/出力(I/O)インタフェース760を含む。I/Oインタフェース760は、1つ又は複数のインタフェースコンポーネントを含んでよく、これを通じて、ユーザがシステム700とやり取りする(例えば、音声、英数字、触知/タッチ、又は他のインタフェース接続)。周辺インタフェース770は、具体的には上述されていない任意のハードウェアインタフェースを含んでよい。周辺装置は概して、システム700に従属的に接続するデバイスのことを指す。従属的な接続とは、システム700がソフトウェアプラットフォームもしくはハードウェアプラットフォーム又はその両方を提供する接続であり、このプラットフォーム上でオペレーションが実行され、且つこのプラットフォームとユーザがやり取りする。
1つの例において、システム700は不揮発性方式でデータを格納するストレージサブシステム780を含む。1つの例において、特定のシステム実装形態では、ストレージ780の少なくとも特定のコンポーネントがメモリサブシステム720のコンポーネントと共通性を有してよい。ストレージサブシステム780はストレージデバイス784を含み、これは、大量のデータを不揮発性方式で格納するための任意の従来型媒体(1つ又は複数の磁気ディスク、ソリッドステートディスク、3DXPディスク、もしくは光方式のディスク、又はその組み合わせなど)であってもよく、又はこれを含んでもよい。ストレージ784は、コード又は命令及びデータ786を永続的状態で保持する(すなわち、システム700への電力を遮断しても値は保持される)。メモリ730が通常、命令をプロセッサ710に提供する実行メモリ又はオペレーティングメモリであるが、ストレージ784は一般に「メモリ」であるとみなされてよい。ストレージ784が不揮発性であるのに対して、メモリ730は揮発性メモリを含んでよい(すなわち、システム700への電力が遮断されると、データの値又は状態が不確定になる)。1つの例において、ストレージサブシステム780は、ストレージ784とインタフェースで接続するコントローラ782を含む。1つの例において、コントローラ782はインタフェース714又はプロセッサ710の物理的部分であるか、又はプロセッサ710及びインタフェース714の両方の回路又はロジックを含んでよい。
電源702がシステム700の各コンポーネントに電力を供給する。より具体的には、電源702は通常、システム700の中の1つ又は複数の電源供給部704とインタフェースで接続し、システム700の各コンポーネントに電力を供給する。1つの例において、電源供給部704は、壁コンセントに差し込むAC/DC(交流/直流)変換アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電)の電源702であってよい。1つの例において、電源702は、外部AC/DC変換器などのDC電源を含む。1つの例において、電源702又は電源供給部704は、充電場への近接によって充電するワイヤレス充電式ハードウェアを含む。1つの例において、電源702は内蔵バッテリ又は燃料電池電源を含んでよい。
図8は、マルチステージプログラム操作用の内蔵バッファを有する不揮発性アレイが実装され得るモバイルデバイスの一例についてのブロック図である。システム800は、コンピューティングタブレット、携帯電話もしくはスマートフォン、ウェアラブルコンピューティングデバイス、もしくは他のモバイルデバイスなどのモバイルコンピューティングデバイス、又は埋め込み型コンピューティングデバイスを表している。そのようなデバイスの全てのコンポーネントがシステム800に示されているわけではなく、概していくつかのコンポーネントが示されていることが理解されるであろう。
1つの例において、メモリサブシステム860は、NVアレイ890を備えたメモリ862を含む。1つの例において、NVアレイ890は関連するバッファ892を含む。1つの例において、メモリ862はコントローラ(CTLR)894を含み、これは、データの外部バッファリングの利用を回避するためにバッファ892を利用するNVアレイ890のプログラミングを管理するオンダイコントローラを表している。1つの例において、コントローラ894は、バッファ892に対する読み出し及び書き込み、並びにバッファ892からNVアレイ890へのデータの格納を制御し、説明したプログラミングの任意の例に従い、最小限の外部リソースを用いてプログラミングを行うことができる。
システム800はプロセッサ810を含み、これはシステム800の主な処理オペレーションを行う。プロセッサ810は、ホストプロセッサデバイスであってよい。プロセッサ810は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラム可能型論理デバイス、又は他の処理手段などの、1つ又は複数の物理デバイスを含んでよい。プロセッサ810により行われる処理オペレーションは、アプリケーション及びデバイス機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。処理オペレーションは、人間のユーザ又は他のデバイスとのI/O(入力/出力)に関連したオペレーション、電力管理に関連したオペレーション、システム800を別のデバイスに接続することに関連したオペレーション、又はその組み合わせを含む。処理オペレーションは、音声I/O、表示I/O、もしくは他のインタフェース接続、又はその組み合わせに関連したオペレーションも含んでよい。プロセッサ810は、メモリに格納されたデータを実行できる。プロセッサ810は、メモリに格納されたデータを書き込む又は編集することができる。
1つの例において、システム800は1つ又は複数のセンサ812を含む。センサ812は、埋め込み型センサもしくは外部センサとのインタフェース、又はその組み合わせを表している。センサ812によって、システム800は、システム800が実装される環境又はデバイスの1つ又は複数の状態を監視する又は検出することができるようになる。センサ812は、環境センサ(温度センサ、動作感知器、光検出器、カメラ、化学センサ(例えば、一酸化炭素センサ、二酸化炭素センサ、又は他の化学センサ)など)、圧力センサ、加速度計、ジャイロスコープ、医療用センサもしくは生理的センサ(例えば、バイオセンサ、心拍数モニタ、又は生理的属性を検出する他のセンサ)、もしくは他のセンサ、又はその組み合わせを含んでよい。センサ812は、指紋認識システム、顔検出システムもしくは顔認識システム、又はユーザの特徴を検出するもしくは認識する他のシステムなどの生体認証システム用のセンサも含んでよい。センサ812は広く理解されるべきであり、システム800に実装され得る多数の異なる種類のセンサに限定するべきではない。1つの例において、1つ又は複数のセンサ812は、プロセッサ810と統合されたフロントエンド回路を介してプロセッサ810に結合する。1つの例において、1つ又は複数のセンサ812は、システム800の別のコンポーネントを介してプロセッサ810に結合する。
1つの例において、システム800はオーディオサブシステム820を含み、これは、オーディオ機能をコンピューティングデバイスに設けることに関連したハードウェア(例えば、オーディオハードウェア及びオーディオ回路)及びソフトウェア(例えば、ドライバ、コーデック)のコンポーネントを表している。オーディオ機能は、スピーカ又はヘッドホンの出力、及びマイクの入力を含んでよい。そのような機能用のデバイスが、システム800に組み込まれても、システム800に接続されてもよい。1つの例において、プロセッサ810により受信されて処理されるオーディオコマンドを提供することで、ユーザがシステム800とやり取りする。
ディスプレイサブシステム830は、ユーザへの提示のために視覚表示を提供するハードウェア(例えば、ディスプレイデバイス)及びソフトウェアコンポーネント(例えば、ドライバ)を表している。1つの例において、ディスプレイは、ユーザがコンピューティングデバイスとやり取りするための触知コンポーネント又はタッチスクリーン素子を含む。ディスプレイサブシステム830はディスプレイインタフェース832を含み、これは、ユーザに表示を提供するのに用いられる特定のスクリーン又はハードウェアデバイスを含む。1つの例において、ディスプレイインタフェース832は、プロセッサ810(グラフィックスプロセッサなど)から独立した、表示に関連する少なくとも一部の処理を行うロジックを含む。1つの例において、ディスプレイサブシステム830は、出力及び入力の両方をユーザに提供するタッチスクリーンデバイスを含む。1つの例において、ディスプレイサブシステム830は、ユーザに出力を提供する高精細度(HD)又は超高精細度(UHD)のディスプレイを含む。1つの例において、ディスプレイサブシステムは、タッチスクリーンディスプレイを含む、又はこれを駆動する。1つの例において、ディスプレイサブシステム830は、メモリに格納されたデータに基づいて、もしくはプロセッサ810により実行されるオペレーションに基づいて、又はその両方に基づいて、表示情報を生成する。
I/Oコントローラ840は、ユーザとのやり取りに関連したハードウェアデバイス及びソフトウェアコンポーネントを表している。I/Oコントローラ840は、オーディオサブシステム820もしくはディスプレイサブシステム830、又はその両方の一部であるハードウェアを管理するように動作できる。さらに、I/Oコントローラ840は、システム800に接続する追加のデバイス用の接続ポイントを示しており、この接続ポイントを通じてユーザがシステムとやり取りしてよい。例えば、システム800に接続され得るデバイスには、マイクデバイス、スピーカもしくはステレオシステム、ビデオシステムもしくは他のディスプレイデバイス、キーボードもしくはキーパッドデバイス、ボタン/スイッチ、又は特定のアプリケーションで用いるための他のI/Oデバイス(カードリーダ又は他のデバイスなど)が含まれるかもしれない。
上述したように、I/Oコントローラ840は、オーディオサブシステム820もしくはディスプレイサブシステム830、又はその両方とやり取りできる。例えば、マイク又は他のオーディオデバイスを介した入力によって、システム800の1つ又は複数のアプリケーションもしくは機能用の入力又はコマンドが提供されてよい。さらに、オーディオ出力が、ディスプレイ出力の代わりに又はこれに加えて提供されてよい。別の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスは入力デバイスとしての役割も果たし、入力デバイスはI/Oコントローラ840によって少なくとも部分的に管理されてよい。システム800には、I/Oコントローラ840により管理されるI/O機能を提供するための追加のボタン又はスイッチもあってよい。
1つの例において、I/Oコントローラ840は、加速度計、カメラ、光センサもしくは他の環境センサ、ジャイロスコープ、全地球測位システム(GPS)、もしくはシステム800に含まれ得る他のハードウェア、又はセンサ812などのデバイスを管理する。入力は、ユーザとの直接的なやり取りの一部であるだけでなく、環境に関する入力をシステムに提供してそのオペレーション(ノイズの除去、輝度検出によるディスプレイの調整、カメラに対するフラッシュの適用、又は他の機能など)に影響を与えることであってもよい。
1つの例において、システム800は、バッテリの電力使用量と、バッテリの充電と、省電力オペレーションに関連した機能とを管理する電力管理850を含む。電力管理850は、システム800の各コンポーネントに電力を供給する電源852からの電力を管理する。1つの例において、電源852は、壁コンセントに差し込むAC/DC(交流/直流)変換アダプタを含む。そのようなAC電力は、再生可能エネルギー(例えば、太陽光発電、動きに基づく電力)であってよい。1つの例において、電源852はDC電力のみを含み、DC電力は外部AC/DC変換器などのDC電源によって供給され得る。1つの例において、電源852は、充電場への近接によって充電するワイヤレス充電式ハードウェアを含む。1つの例において、電源852は内蔵バッテリ又は燃料電池電源を含んでよい。
メモリサブシステム860は、システム800の情報を格納するためのメモリデバイス862を含む。メモリサブシステム860は、不揮発性(メモリデバイスへの電力が遮断された場合でも状態が変化しない)もしくは揮発性(メモリデバイスへの電力が遮断された場合に状態が不確定になる)のメモリデバイス、又はその組み合わせを含んでよい。メモリ860は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータだけでなく、システム800のアプリケーション及び機能の実行に関連したシステムデータも(長期であっても、一時的であっても)格納してよい。1つの例において、メモリサブシステム860はメモリコントローラ864を含む(これは、システム800の制御装置の一部ともみなされることがあり、場合によってはプロセッサ810の一部とみなされることがある)。メモリコントローラ864は、メモリデバイス862へのアクセスを制御するコマンドを生成して発行するスケジューラを含む。
接続870は、システム800が外部デバイスと通信できるようにするためのハードウェアデバイス(例えば、無線もしくは有線のコネクタ及び通信ハードウェア、又は有線ハードウェアと無線ハードウェアの組み合わせ)と、ソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)とを含む。外部デバイスは、独立したデバイス、例えば、他のコンピューティングデバイス、無線アクセスポイント又は基地局、さらにはヘッドセット、プリンタ、又は他のデバイスといった周辺装置などであってよい。1つの例において、システム800は、メモリに記憶するために又はディスプレイデバイスに表示するために外部デバイスとデータを交換する。交換されるデータは、データの読み出し、書き込み、又は編集のために、メモリに格納されるデータ、又はメモリに既に格納されているデータを含んでよい。
接続870は、複数の異なる種類の接続を含んでよい。一般化するために、システム800は、セルラ接続872及び無線接続874と共に示されている。セルラ接続872とは概して、GSM(登録商標)(移動体通信用グローバルシステム)又はその変形型もしくは派生型、CDMA(符号分割多元接続)又はその変形型もしくは派生型、TDM(時分割多重送信)又はその変形型もしくは派生型、LTE(ロングタームエボリューション、「4G」とも呼ばれる)、5G、又は他のセルラサービス規格によって提供されるなどの、無線キャリアにより提供されるセルラネットワーク接続を指す。無線接続874とは、セルラ方式ではない無線接続を指し、パーソナルエリアネットワーク(Bluetooth(登録商標)など)、ローカルエリアネットワーク(WiFi(登録商標)など)、もしくはワイドエリアネットワーク(WiMAX(登録商標)など)、もしくは他の無線通信、又はその組み合わせを含んでよい。無線通信とは、非固体媒体を介した変調電磁放射の使用によるデータの転送を指す。有線通信が、固体通信媒体を介して行われる。
周辺接続880は、周辺接続を行うためのハードウェアインタフェース及びコネクタ、並びにソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。システム800は、他のコンピューティングデバイスへの周辺機器(「出力」882)であること、及びシステム800に接続される周辺機器(「入力」884)を有することの両方であり得ることが理解されるであろう。システム800は一般に、システム800のコンテンツを管理する(例えば、ダウンロードする、アップロードする、変更する、同期させる)などの目的で、他のコンピューティングデバイスに接続するための「ドッキング」コネクタを有する。さらに、ドッキングコネクタによってシステム800が特定の周辺装置に接続できるようになってよく、その周辺装置によってシステム800が、例えば、視聴覚システム又は他のシステムに出力されるコンテンツを制御できるようになる。
専用のドッキングコネクタ又は他の専用の接続ハードウェアに加えて、システム800は一般的な又は標準ベースのコネクタを介して周辺接続880を行うことができる。一般的な種類には、ユニバーサルシリアルバス(USB)コネクタ(これは、多くの異なるハードウェアインタフェースのいずれかを含んでよい)、DisplayPort(MiniDisplayPort(MDP)、高精細度マルチメディアインタフェース(HDMI(登録商標))を含む)、又は他の種類が含まれてよい。
概して、本明細書における説明に関して、1つの例では装置が、媒体ダイ上にマルチレベルセルのアレイを有する不揮発性(NV)媒体と、上記NV媒体をプログラムするためのデータを格納する、上記媒体ダイ上にある揮発性メモリと、上記NV媒体用の読み出しデータ及びプログラムデータをバッファリングする、上記媒体ダイ上にあるバッファとを含み、上記NV媒体のプログラムが、上記バッファに第1パーシャルページをプログラムのためにステージングし、上記NV媒体から上記揮発性メモリに第2パーシャルページを読み出し、上記バッファに第2パーシャルページを格納し、上記NV媒体を上記第1パーシャルページ及び上記第2パーシャルページでプログラムする。
本装置の1つの例において、上記NV媒体のプログラムは、データをソース媒体から上記NV媒体に移動させるガベージコレクションを含む。本装置の任意の上記例に従い、1つの例において上記ソース媒体はシングルレベルセル(SLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体はスリーレベルセル(TLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体はクアッドレベルセル(QLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体は3次元クロスポイント(3DXP)メモリを含む、又は1つの例において上記ソース媒体はダイナミックランダムアクセスメモリ(DRAM)を含む。本装置の任意の上記例に従い、1つの例において、上記第2パーシャルページを上記揮発性メモリに読み出すことは、上記第2パーシャルページに対する誤り検出訂正(ECC)の実行を含む。本装置の任意の上記例に従い、1つの例において、上記NV媒体をプログラムすることは、上記NV媒体内のプログラムすべき新しいアドレスのロードに応答して、上記第1パーシャルページ及び上記第2パーシャルページを上記バッファから上記NV媒体にフラッシュすることを含む。本装置の任意の上記例に従い、1つの例において、上記NV媒体をプログラムすることは、フラッシュコマンドに応答して、上記第1パーシャルページ及び上記第2パーシャルページを上記バッファから上記NV媒体にフラッシュすることを含む。本装置の任意の上記例に従い、1つの例において、上記バッファは上記NV媒体用の読み出し/書き込みレジスタを含む。本装置の任意の上記例に従い、1つの例において上記NV媒体はクアッドレベルセル(QLC)フラッシュメモリを含む、又は1つの例において上記NV媒体はスリーレベルセル(TLC)フラッシュメモリを含む、又は1つの例において上記NV媒体はファイブレベルセル(5LC)フラッシュメモリを含む、又は1つの例において上記NV媒体は3次元クロスポイント(3DXP)メモリを含む。本装置の任意の上記例に従い、1つの例において、上記揮発性メモリはスタティックランダムアクセスメモリ(SRAM)を含む。
概して本明細書における説明に関して、1つの例ではコンピューティングデバイスが、ホストプロセッサと、上記ホストプロセッサに結合されたソリッドステートドライブ(SSD)とを含み、上記SSDは、媒体ダイ上にマルチレベルセルのアレイを有する不揮発性(NV)媒体と、上記NV媒体をプログラムするためのデータを格納する、上記媒体ダイ上にある揮発性メモリと、上記NV媒体用の読み出しデータ及びプログラムデータをバッファリングする、上記媒体ダイ上にあるバッファとを含み、上記NV媒体のプログラムが、上記バッファに第1パーシャルページをプログラムのためにステージングし、上記NV媒体から上記揮発性メモリに第2パーシャルページを読み出し、上記バッファに第2パーシャルページを格納し、上記NV媒体を上記第1パーシャルページ及び上記第2パーシャルページでプログラムする。
本コンピューティングデバイスの1つの例において、上記NV媒体の上記プログラムは、データをソース媒体から上記NV媒体に移動させるガベージコレクションを含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において上記ソース媒体はシングルレベルセル(SLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体はスリーレベルセル(TLC)フラッシュメモリを含む、又は1つの例においてソース媒体はクアッドレベルセル(QLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体は3次元クロスポイント(3DXP)メモリを含む、又は1つの例において上記ソース媒体はダイナミックランダムアクセスメモリ(DRAM)を含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において、上記第2パーシャルページを上記揮発性メモリに読み出すことは、上記第2パーシャルページに対する誤り検出訂正(ECC)の実行を含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において、上記NV媒体をプログラムすることは、上記NV媒体内のプログラムすべき新しいアドレスのロードに応答して、上記第1パーシャルページ及び上記第2パーシャルページを上記バッファから上記NV媒体にフラッシュすることを含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において、上記NV媒体をプログラムすることは、フラッシュコマンドに応答して、上記第1パーシャルページ及び上記第2パーシャルページを上記バッファから上記NV媒体にフラッシュすることを含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において、上記バッファは上記NV媒体用の読み出し/書き込みレジスタを含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において上記NV媒体はクアッドレベルセル(QLC)フラッシュメモリを含む、又は1つの例において上記NV媒体はスリーレベルセル(TLC)フラッシュメモリを含む、又は1つの例において上記NV媒体はファイブレベルセル(5LC)フラッシュメモリを含む、又は1つの例において上記NV媒体は3次元クロスポイント(3DXP)メモリを含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において、上記揮発性メモリはスタティックランダムアクセスメモリ(SRAM)を含む。本コンピューティングデバイスの任意の上記例に従い、1つの例において、本コンピューティングデバイスは、上記ホストプロセッサに通信可能に結合されたディスプレイ、上記ホストプロセッサに通信可能に結合されたネットワークインタフェース、又は上記コンピューティングデバイスに電力を供給するバッテリを含む。
概して、本明細書における説明に関して、1つの例では方法が、マルチレベルセルのアレイを有する不揮発性(NV)媒体と共に媒体ダイ上にある揮発性メモリにおいて、上記NV媒体をプログラムするためのデータを格納する段階と、上記NV媒体用の読み出しデータ及びプログラムデータを上記媒体ダイ上にあるバッファにバッファリングする段階と、上記NV媒体をプログラムする段階とを含み、プログラムする上記段階は、上記バッファに第1パーシャルページをプログラムのためにステージングする段階と、上記NV媒体から上記揮発性メモリに第2パーシャルページを読み出す段階と、上記バッファに第2パーシャルページを格納する段階と、上記NV媒体を上記第1パーシャルページ及び上記第2パーシャルページでプログラムする段階とを含む。
本方法の1つの例において、上記NV媒体をプログラムする段階は、データをソース媒体から上記NV媒体に移動させるガベージコレクションを行う段階を含む。本方法の任意の上記例に従い、1つの例において上記ソース媒体はシングルレベルセル(SLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体はスリーレベルセル(TLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体はクアッドレベルセル(QLC)フラッシュメモリを含む、又は1つの例において上記ソース媒体は3次元クロスポイント(3DXP)メモリを含む、又は1つの例において上記ソース媒体はダイナミックランダムアクセスメモリ(DRAM)を含む。本方法の任意の上記例に従い、1つの例において、上記第2パーシャルページを上記揮発性メモリに読み出す段階は、上記第2パーシャルページに対して誤り検出訂正(ECC)を行う段階を含む。本方法の任意の上記例に従い、1つの例において、上記NV媒体をプログラムする段階は、上記NV媒体内のプログラムすべき新しいアドレスのロードに応答して、上記第1パーシャルページ及び上記第2パーシャルページを上記バッファから上記NV媒体にフラッシュする段階を含む。本方法の任意の上記例に従い、1つの例において、上記NV媒体をプログラムする段階は、フラッシュコマンドに応答して、上記第1パーシャルページ及び上記第2パーシャルページを上記バッファから上記NV媒体にフラッシュする段階を含む。本方法の任意の上記例に従い、1つの例において、上記バッファは上記NV媒体用の読み出し/書き込みレジスタを含む。本方法の任意の上記例に従い、1つの例において上記NV媒体はクアッドレベルセル(QLC)フラッシュメモリを含む、又は1つの例において上記NV媒体はスリーレベルセル(TLC)フラッシュメモリを含む、又は1つの例において上記NV媒体はファイブレベルセル(5LC)フラッシュメモリを含む、又は1つの例において上記NV媒体は3次元クロスポイント(3DXP)メモリを含む。本方法の任意の上記例に従い、1つの例において、上記揮発性メモリはスタティックランダムアクセスメモリ(SRAM)を含む。
本明細書に示される各フロー図が、様々なプロセス動作のシーケンスについての例を提供する。フロー図は、ソフトウェア又はファームウェアのルーチンによって実行されるオペレーション、及び物理的オペレーションを示し得る。フロー図は、有限状態機械(FSM)の状態の実装形態についての一例を示すことができ、FSMはハードウェア及び/又はソフトウェアに実装され得る。動作の順序は、特定のシーケンス又は順序で示されているが、特に指定のない限り変更されてよい。したがって、示されている図は単なる例として理解されるべきであり、プロセスは別の順序で行われてもよく、一部の動作が並行して行われてもよい。さらに、1つ又は複数の動作が省略されてよく、したがって、全ての実装形態が全ての動作を行うわけではない。
様々なオペレーション又は機能が本明細書に説明されている限りにおいて、これらのオペレーション又は機能はソフトウェアコード、命令、コンフィギュレーション、及び/又はデータとして説明されても定められてもよい。コンテンツは、直接的に実行可能なファイル(「オブジェクト」形式又は「実行可能ファイル」形式)、ソースコード、又は差分コード(「デルタコード」又は「パッチ」コード)であってよい。本明細書に説明されていることについてのソフトウェアコンテンツは、コンテンツが格納されている製品を介して、又は通信インタフェースを操作して通信インタフェースを介したデータ送信を行う方法によって提供されてもよい。機械可読記憶媒体は、説明された機能又はオペレーションを機械に実行させることができ、機械(例えば、コンピューティングデバイス、電子システムなど)がアクセスできる形式で情報を格納するあらゆる機構、例えば、記録可能/記録不可能な媒体(例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなど)といった機構を含む。通信インタフェースは、別のデバイスと通信するためのハードワイヤード媒体、無線媒体、光媒体などのいずれかとインタフェースで接続するあらゆる機構、例えば、メモリバスインタフェース、プロセッサバスインタフェース、インターネット接続、ディスクコントローラなどの機構を含む。通信インタフェースは、ソフトウェアコンテンツを示すデータ信号を提供するために、コンフィギュレーションパラメータを提供する且つ/又は通信インタフェースを準備するための信号を送信することによって構成されてよい。通信インタフェースは、通信インタフェースに送信される1つ又は複数のコマンドもしくは信号を介してアクセスされてよい。
本明細書で説明された様々なコンポーネントは、説明されたオペレーション又は機能を実行する手段であってよい。本明細書で説明された各コンポーネントは、ソフトウェア、ハードウェア、又はその組み合わせを含む。各コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、専用ハードウェア(例えば、特定用途向けハードウェア、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)など)、埋め込み型コントローラ、ハードワイヤード回路などとして実装されてよい。
本明細書で説明されていることに加えて、開示されていること及び本発明の実装形態に対して、その範囲から逸脱することなく様々な修正を行うことができる。したがって、本明細書における説明図及び例は、例示であると解釈されるべきであり、限定的な意味に解釈されるべきではない。本発明の範囲は、次に続く特許請求の範囲を参照することによってのみ評価されるべきである。

Claims (21)

  1. データ記憶の方法であって、
    不揮発性NV媒体(NV媒体)をプログラムするためのデータを格納する段階と、
    前記NV媒体用の読み出しデータ及びプログラムデータを媒体ダイ上にあるバッファを用いてバッファリングする段階と、
    前記NV媒体をプログラムする段階であって、前記バッファに第1パーシャルページをプログラムのためにステージングする段階と、前記NV媒体から揮発性メモリに第2パーシャルページを読み出す段階と、前記バッファに第2パーシャルページを格納する段階と、前記NV媒体を前記第1パーシャルページ及び前記第2パーシャルページでプログラムする段階とを含む、プログラムする段階と
    を備える方法。
  2. 前記NV媒体をプログラムする段階が、データをソース媒体から前記NV媒体に移動させるガベージコレクションを行う段階を含む、請求項1に記載の方法。
  3. ソース媒体がシングルレベルセル(SLC)フラッシュメモリを含む、又は前記ソース媒体がスリーレベルセル(TLC)フラッシュメモリを含む、又は前記ソース媒体がクアッドレベルセル(QLC)フラッシュメモリを含む、請求項1又は2に記載の方法。
  4. ソース媒体が3次元クロスポイント(3DXP)メモリを含む、請求項1又は2に記載の方法。
  5. ソース媒体がダイナミックランダムアクセスメモリ(DRAM)を含む、請求項1又は2に記載の方法。
  6. 前記第2パーシャルページを前記揮発性メモリに読み出す段階が、前記第2パーシャルページに対して誤り検出訂正(ECC)を行う段階を含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記NV媒体をプログラムする段階が、前記NV媒体内のプログラムすべき新しいアドレスのロードに応答して、前記第1パーシャルページ及び前記第2パーシャルページを前記バッファから前記NV媒体にフラッシュする段階を含む、請求項1から6のいずれか一項に記載の方法。
  8. 前記NV媒体をプログラムする段階が、フラッシュコマンドに応答して、前記第1パーシャルページ及び前記第2パーシャルページを前記バッファから前記NV媒体にフラッシュする段階を含む、請求項1から6のいずれか一項に記載の方法。
  9. 前記バッファが前記NV媒体用の読み出し/書き込みレジスタを含む、請求項1から5のいずれか一項に記載の方法。
  10. 前記NV媒体がクアッドレベルセル(QLC)フラッシュメモリを含む、又は前記NV媒体がスリーレベルセル(TLC)フラッシュメモリを含む、又は前記NV媒体がファイブレベルセル(5LC)フラッシュメモリを含む、又は前記NV媒体が3次元クロスポイント(3DXP)メモリを含む、請求項1から9のいずれか一項に記載の方法。
  11. 前記揮発性メモリがスタティックランダムアクセスメモリ(SRAM)を含む、請求項1から10のいずれか一項に記載の方法。
  12. 請求項1から11のいずれか一項に記載の方法を実行する手段を備える装置であって、
    媒体ダイ上にマルチレベルセルのアレイを有する不揮発性(NV)媒体と、
    前記NV媒体をプログラムするためのデータを格納する、前記媒体ダイ上にある揮発性メモリと、
    前記NV媒体用の読み出しデータ及びプログラムデータをバッファリングする、前記媒体ダイ上にあるバッファと
    を備え、
    前記NV媒体のプログラムが、前記バッファに第1パーシャルページをプログラムのためにステージングし、前記NV媒体から前記揮発性メモリに第2パーシャルページを読み出し、前記バッファに第2パーシャルページを格納し、前記NV媒体を前記第1パーシャルページ及び前記第2パーシャルページでプログラムする、装置。
  13. 前記揮発性メモリがスタティックランダムアクセスメモリ(SRAM)を含む、請求項12に記載の装置。
  14. ホストプロセッサと、
    前記ホストプロセッサに結合されたソリッドステートドライブ(SSD)と
    を備えるコンピューティングデバイスであって、前記SSDが、
    媒体ダイ上にマルチレベルセルのアレイを有する不揮発性媒体(NV媒体)と、
    前記NV媒体をプログラムするためのデータを格納する、前記媒体ダイ上にある揮発性メモリと、
    前記NV媒体用の読み出しデータ及びプログラムデータをバッファリングする、前記媒体ダイ上にあるバッファとを含み、
    前記NV媒体のプログラムが、前記バッファに第1パーシャルページをプログラムのためにステージングし、前記NV媒体から前記揮発性メモリに第2パーシャルページを読み出し、前記バッファに第2パーシャルページを格納し、前記NV媒体を前記第1パーシャルページ及び前記第2パーシャルページでプログラムする、コンピューティングデバイス。
  15. 前記NV媒体の前記プログラムが、データをシングルレベルセル(SLC)フラッシュバッファメモリから前記NV媒体に移動させるガベージコレクションを含む、請求項14に記載のコンピューティングデバイス。
  16. 前記第2パーシャルページを前記揮発性メモリに読み出すことが、前記第2パーシャルページに対する誤り検出訂正(ECC)の実行を含む、請求項14又は15に記載のコンピューティングデバイス。
  17. 前記NV媒体をプログラムすることが、前記NV媒体内のプログラムすべき新しいアドレスのロードに応答して、前記第1パーシャルページ及び前記第2パーシャルページを前記バッファから前記NV媒体にフラッシュすることを含む、請求項14から16のいずれか一項に記載のコンピューティングデバイス。
  18. 前記バッファが前記NV媒体用のステージングバッファを含む、請求項14から17のいずれか一項に記載のコンピューティングデバイス。
  19. 前記NV媒体がクアッドレベルセル(QLC)フラッシュメモリを含む、請求項14から18のいずれか一項に記載のコンピューティングデバイス。
  20. 前記揮発性メモリがスタティックランダムアクセスメモリ(SRAM)を含む、請求項14から19のいずれか一項に記載のコンピューティングデバイス。
  21. 前記コンピューティングデバイスがさらに、
    前記ホストプロセッサに通信可能に結合されたディスプレイ、
    前記ホストプロセッサに通信可能に結合されたネットワークインタフェース、又は
    前記コンピューティングデバイスに電力を供給するバッテリ
    を備える、請求項14から20のいずれか一項に記載のコンピューティングデバイス。
JP2021158532A 2020-12-23 2021-09-28 Nandバッファを利用したdramレスのマルチレベルセルプログラミング Pending JP2022100222A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/133,459 2020-12-23
US17/133,459 US11783893B2 (en) 2020-12-23 2020-12-23 Utilizing NAND buffer for DRAM-less multilevel cell programming

Publications (1)

Publication Number Publication Date
JP2022100222A true JP2022100222A (ja) 2022-07-05

Family

ID=75908847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021158532A Pending JP2022100222A (ja) 2020-12-23 2021-09-28 Nandバッファを利用したdramレスのマルチレベルセルプログラミング

Country Status (5)

Country Link
US (1) US11783893B2 (ja)
EP (1) EP4020220A1 (ja)
JP (1) JP2022100222A (ja)
KR (1) KR20220091362A (ja)
CN (1) CN114664361A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934685B2 (en) * 2022-01-18 2024-03-19 Micron Technology, Inc. Performing memory access operations based on quad-level cell to single-level cell mapping table

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
US9093170B2 (en) 2013-03-01 2015-07-28 Intel Corporation Multi-level cell (MLC) non-volatile memory data reading method and apparatus
US20140281124A1 (en) 2013-03-14 2014-09-18 Bryan E. Veal System and method for caching a storage medium
US9626286B2 (en) 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9870169B2 (en) 2015-09-04 2018-01-16 Intel Corporation Interleaved all-level programming of non-volatile memory
US10120751B2 (en) 2015-09-25 2018-11-06 Intel Corporation Techniques to recover data using exclusive OR (XOR) parity information
US10061516B2 (en) 2015-09-25 2018-08-28 Intel Corporation Methods and apparatus to configure performance of a solid state drive based on host write bandwidth
US10175903B2 (en) 2016-03-31 2019-01-08 Intel Corporation N plane to 2N plane interface in a solid state drive (SSD) architecture
US10379782B2 (en) 2017-08-18 2019-08-13 Intel Corporation Host managed solid state drivecaching using dynamic write acceleration
KR20190128283A (ko) 2018-05-08 2019-11-18 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그 동작방법
US11709623B2 (en) 2018-08-03 2023-07-25 Sk Hynix Nand Product Solutions Corp. NAND-based storage device with partitioned nonvolatile write buffer
US11188250B2 (en) * 2018-10-25 2021-11-30 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams
US11010314B2 (en) 2018-10-30 2021-05-18 Marvell Asia Pte. Ltd. Artificial intelligence-enabled management of storage media access
US20210272638A1 (en) 2018-12-25 2021-09-02 Intel Corporation Reduced-pass erase verify for nonvolatile storage media
US11074172B2 (en) 2019-01-10 2021-07-27 Intel Corporation On-device-copy for hybrid SSD with second persistent storage media update of logical block address for first persistent storage media data
US11237732B2 (en) * 2019-08-06 2022-02-01 Intel Corporation Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory
US11205473B2 (en) * 2020-02-04 2021-12-21 Western Digital Technologies, Inc. Dual SLC/QLC programming and resource releasing

Also Published As

Publication number Publication date
KR20220091362A (ko) 2022-06-30
US20210151098A1 (en) 2021-05-20
CN114664361A (zh) 2022-06-24
US11783893B2 (en) 2023-10-10
EP4020220A1 (en) 2022-06-29

Similar Documents

Publication Publication Date Title
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US8843697B2 (en) Operating method of data storage device
US8904095B2 (en) Data storage device and operating method thereof
US10303367B2 (en) Mapping table updating method without updating the first mapping information, memory control circuit unit and memory storage device
US9189397B2 (en) Data storage device including buffer memory
JP5090819B2 (ja) メモリーカード及び該データ格納方法
US10769066B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
US10324651B2 (en) Data transmission method, and storage controller and list management circuit using the same
US9372741B2 (en) Data storage device and operating method thereof
US11341039B2 (en) Data arrangement method of flash memory, flash memory storage device and flash memory control circuit unit
CN114442914B (zh) 存储器系统
JP2019121350A (ja) ストレージデバイスの容量利用率の関数であるプログラミング済みセル記憶密度モードを有するストレージデバイス
US11693567B2 (en) Memory performance optimization method, memory control circuit unit and memory storage device
TWI454922B (zh) 記憶體儲存裝置及其記憶體控制器與資料寫入方法
CN114385216A (zh) 存储装置及操作该存储装置的方法
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102544162B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2022100222A (ja) Nandバッファを利用したdramレスのマルチレベルセルプログラミング
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
KR20190085644A (ko) 데이터 처리 시스템 및 그것의 동작 방법
US10866858B2 (en) Memory systems having reduced memory channel traffic and methods for operating the same
TWI603335B (zh) 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置
TWI622044B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
KR20150044654A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치