JP5516924B2 - ストライプに基づく不揮発性多値メモリ操作 - Google Patents

ストライプに基づく不揮発性多値メモリ操作 Download PDF

Info

Publication number
JP5516924B2
JP5516924B2 JP2013525900A JP2013525900A JP5516924B2 JP 5516924 B2 JP5516924 B2 JP 5516924B2 JP 2013525900 A JP2013525900 A JP 2013525900A JP 2013525900 A JP2013525900 A JP 2013525900A JP 5516924 B2 JP5516924 B2 JP 5516924B2
Authority
JP
Japan
Prior art keywords
pages
stripe
page
information
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013525900A
Other languages
English (en)
Other versions
JP2013536959A (ja
Inventor
アール. ブラント,ケヴィン
Original Assignee
マイクロン テクノロジー, インク.
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 マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2013536959A publication Critical patent/JP2013536959A/ja
Application granted granted Critical
Publication of JP5516924B2 publication Critical patent/JP5516924B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

本開示は、一般的に、半導体メモリデバイス、方法、およびシステムに関し、より具体的には、ストライプに基づく不揮発性多値メモリ操作に関する。
メモリデバイスは、典型的に、コンピュータまたは他の電子デバイスの中に、内部半導体集積回路として提供される。揮発性および不揮発性メモリを含む、多くの異なる種類のメモリがある。揮発性メモリは、その情報を維持するために電力を必要とする可能性があり、数ある中でも、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、およびシンクロナスダイナミックランダムアクセスメモリ(SDRAM)が挙げられる。不揮発性メモリは、給電されていないときに、記憶された情報を保持することによって持続的な情報を提供することができ、数ある中でも、NAND型フラッシュメモリ、NOR型フラッシュメモリ、リードオンリーメモリ(ROM)、電気的消去可能PROM(EEPROM)、消去可能プログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM(登録商標))、およびスピントルクトランスファーランダムアクセスメモリ(STTRAM)等の磁気ランダムアクセスメモリ(MRAM)が挙げられる。
メモリデバイスは、互いに組み合わせて、ソリッドステートドライブ(SSD)を形成することができる。ソリッドステートドライブとしては、数ある他の種類の不揮発性および揮発性メモリの中でも、不揮発性メモリ、例えばNAND型フラッシュメモリおよびNOR型フラッシュメモリが挙げられ、および/または揮発性メモリ、例えばDRAMおよびSRAMが挙げられる。窒化物層の電荷トラップに情報を記憶する、半導体−酸化物−窒化物−酸化物−半導体および金属−酸化物−窒化物−酸化物−半導体コンデンサ構造を使用した、フローティングゲートフラッシュデバイスおよび電荷トラップフラッシュ(CTF)デバイスを含む、フラッシュメモリデバイスは、広範囲にわたる電子的用途のための不揮発性メモリとして利用され得る。フラッシュメモリデバイスは、典型的に、高メモリ密度、高信頼性、および低消費電力を可能にする、1トランジスタメモリセルを使用する。
SSDは、ソリッドステートドライブは、性能、サイズ、重量、耐久性、動作温度範囲、および電力消費に関してハードドライブに勝る利点を有することができるので、コンピュータの主記憶デバイスとして、ハードディスクドライブと置き換えるために使用することができる。例えば、SSDは、可動部品がないため、磁気ディスクドライブと比較して、優れた性能を有することができ、磁気ディスクドライブと関連するシーク時間、待ち時間、および他の電気機械的な遅延を回避し得る。SSDの製造業者は、内部バッテリ供給を使用しなくてもよく、したがって、ドライブをより多用途かつコンパクトにすることが可能である、フラッシュSSDを作成するために、不揮発性フラッシュメモリを使用することができる。
SSDは、1以上のメモリデバイス、例えば、1以上のメモリチップを含むことができる(本明細書で使用される「1以上の」ものとは、そのようなものの1つ以上を指すことができ、例えば、1以上のメモリデバイスは、1つ以上のメモリデバイスを指すことができる)。当業者が認識するように、メモリチップは、1以上のダイおよび/または論理ユニット(LUN)を含むことができる。各ダイは、その上に1以上のメモリアレイおよび周辺回路を含むことができる。メモリアレイは、1以上の物理ページに組織される1以上のメモリセルを含むことができ、物理ページは、1以上のブロックに組織することができる。
独立したディスクの冗長アレイ(RAID)は、複数のメモリデバイスの中で情報を分割および/または複製する、コンピュータ情報記憶スキームの包括的な用語である。RAIDアレイの中の複数のメモリデバイスは、コンピュータのユーザおよびオペレーティングシステムに対して、単一のメモリデバイス、例えばディスクのように見え得る。歴史的に、RAIDは、複数のハードディスクドライブ(HDD)とともに操作されてきた。
本開示の1つ以上の実施形態に従う、少なくとも1つのメモリシステムを含むコンピュータシステムの機能ブロック図である。 本開示の1つ以上の実施形態に従う、メモリデバイスの一部分の図である。 本開示の1つ以上の実施形態に従う、ストライプに基づいて操作される記憶ボリュームのブロック図である。 本開示の1つ以上の実施形態に従う、消去された状態、ならびに1以上の下位ページ、上位ページ、およびスクラッチページのデータ状態の例示的な2ビットのメモリセルと関連する、閾値電圧分布の線図である。 本開示の1つ以上の実施形態に従う、1以上のチャネルにわたる下位ページおよび上位ページのプログラミングを、1以上の下位ストライプおよび上位ストライプと相関させた表を示す図である。 本開示の1つ以上の実施形態に従う、1以上のチャネルにわたる下位ページおよび上位ページのプログラミングを、1以上の下位ストライプおよび上位ストライプと相関させた表を示す図である。 本開示の1つ以上の実施形態に従う、1以上のチャネルにわたる下位ページおよび上位ページのプログラミングを、1以上の下位スクラッチストライプ、上位スクラッチストライプ、下位ストライプ、および上位ストライプと相関させた表を示す図である。
本開示は、ストライプに基づく不揮発性マルチレベルメモリ操作のための方法およびデバイスを含む。方法の一実施形態は、情報の1以上の下位ページを1以上の下位ストライプのそれぞれにプログラムすることを含む、1以上の下位ストライプを書き込むことを含む。情報の1以上の上位ページを上位ストライプにプログラムすることを含む、上位ストライプを書き込むことができる。1以上の上位ページのそれぞれは、1以上の下位ページのうちのそれぞれ1つに対応することができる。1以上の上位ページに対応する1以上の下位ページのうちのそれぞれ1つのそれぞれを、1以上の下位ストライプの異なる下位ストライプにプログラムすることができる。
本開示の以下の発明を実施するための形態では、本明細書の一部を形成し、本開示の1つ以上の実施形態がどのように実践される場合があるかをその中で例として示す、添付の図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実践することを可能にするように十分な詳細が説明され、他の実施形態が利用されてもよいこと、および本開示の範囲を逸脱することなく、プロセス、電気的、および/または構造的変更が行われてもよいことが理解される。本明細書に使用される場合、指示子「N」、「M」、「P」、「R」および「S」は、特に図面の参照番号に関して、そのように指定される1以上の特定の特徴を、本開示の1つ以上の実施形態とともに含むことができることを示す。
本明細書中の図面は、上位の桁は、図面の図番号に対応し、残りの桁は、図面の中の要素または構成要素を識別するという、番号規則に従う。異なる図面間の同様な要素または構成要素は、同様な数字の使用によって識別される場合がある。例えば、108は、図1の要素「08」を参照し得、同様な要素は、図2の208のように参照され得る。理解されるように、本明細書の多様な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するように、追加、交換、および/または削除することができる。加えて、理解されるように、図面の中に提供される要素の比率および相対尺度は、本発明の実施形態を図示することを意図しており、限定の意味で解釈されてはならない。
図1は、本開示の1つ以上の実施形態に従う、少なくとも1つのメモリシステム104を含む、コンピュータシステム100の機能ブロック図である。図1で示される実施形態において、メモリシステム104、例えばソリッドステートドライブ(SSD)は、ホストインターフェース106と、メモリコントローラ108、例えばメモリ制御回路および/またはメモリ制御ファームウェアと、1つ以上のメモリデバイス110−1、・・・、110−N、例えば不揮発性マルチレベルメモリセルを含むソリッドステートメモリデバイスとを含むことができる。メモリデバイス110−1、・・・、110−Nは、例えばメモリデバイスにフォーマットされたファイルシステムを伴う、メモリシステムのための記憶ボリュームを提供することができる。1つ以上の実施形態において、メモリコントローラ108は、物理ホストインターフェース106およびメモリデバイス110−1、・・・、110−Nを含むプリント回路基板に連結された、特定用途向け集積回路(ASIC)とすることができる。
図1で示されるように、メモリコントローラ108は、複数のチャネルによって、ホストインターフェース106およびメモリデバイス110−1、・・・、110−Nに連結することができる。メモリコントローラ108は、当業者によって理解されるように、他のメモリ操作に加えて、本明細書で説明される操作を実行するように構成することができる。ホストインターフェース106は、メモリシステム104とホストシステム102等の別のデバイスとの間で情報を通信するために使用することができる。ホストシステム102は、メモリアクセスデバイス、例えばプロセッサを含むことができる。当業者は、「プロセッサ」が、並列処理システム、1以上のコプロセッサ等の1つ以上のプロセッサを意図し得ることを理解するであろう。ホストシステムの例としては、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル録音および再生デバイス、携帯電話、PDA、メモリカードリーダ、インターフェースハブ等が挙げられる。1つ以上の実施形態について、ホストインターフェース106は、標準インターフェースの形態とすることができる。例えば、メモリシステム104がコンピュータシステム100の中で情報記憶に使用されるときに、物理ホストインターフェース106は、数ある他のコネクタおよびインターフェースの中でも、シリアルアドバンストテクノロジーアタッチメント(SATA)、周辺機器相互接続エクスプレス(PCIe)、またはユニバーサルシリアルバス(USB)とすることができる。しかしながら、一般に、ホストインターフェース106は、メモリシステム104と、ホストインターフェース106のための互換レセプタを有するホストシステム102との間で、制御、アドレス、情報、および他の信号を伝達するためのインターフェースを提供することができる。
メモリコントローラ108は、ホストインターフェース106に連結する、および/またはそれに組み込むことができる、ホストインターフェース回路を含むことができる。ホストインターフェース回路は、1以上の層、例えば物理層、リンク層、および/またはトランスポート層を通してホストシステム102と連動することができる。当業者は、特定のホストインターフェースのための1以上の層が、シリアルアドバンストテクノロジーアタッチメント(SATA)、周辺機器相互接続エクスプレス(PCIe)、ユニバーサルシリアルバス(USB)等のインターフェース規格によって定義され得ることを理解するであろう。本明細書で使用される場合、トランスポート層は、少なくとも、SATA規格の一部としてのトランスポート層、および/またはPCIe規格の一部としてのトランザクション層を示すことができる。当業者は、SATA規格に従うトランスポート層が、PCIe規格に従うトランザクション層に類似し得ることを理解するであろう。実施形態は、特定の規格に限定されない。
一般に、ホストインターフェース回路は、ホストシステム、例えばPCIeバスから受け取ったコマンドパケットを、ホスト−メモリの翻訳応答を要求ホストに伝送するためのホストシステムコマンドに変換するための、コマンドインストラクションに変換することができる。例えば、ホストインターフェース回路は、PCIeに基づくトランザクション層パケットから、SATAコマンドパケットを構築することができる。ホストインターフェース回路は、ホストシステム102から、複数のアドレスと関連付けられる情報を受け取るように構成することができる。
メモリコントローラ108は、ホストアドレスを、メモリアドレス、例えば読み出しおよび/または書き込みコマンド等の受け取ったコマンドと関連付けられるアドレスに翻訳するように構成される、ホスト−メモリ翻訳回路を含むことができる。ホスト−メモリ翻訳回路は、例えば、ホストセクタの読み出しおよび書き込み操作を、メモリデバイス110−1、・・・、110−Nの特定の部分に向けられるコマンドに変換する場合がある。各ホスト操作は、シングルセクタまたはマルチセクタのメモリデバイス110−1、・・・、110−Nの操作に翻訳することができる。例えば、ホストの読み出しおよび書き込みコマンドは、メモリデバイス110−1、・・・、110−Nの読み出しおよび書き込みコマンドに翻訳することができる。メモリコントローラ108が本明細書で説明されているが、本開示の1つ以上の実施形態は、メモリ制御ファームウェアを介して実装することができる。したがって、本明細書で使用される「メモリコントローラ」は、メモリ制御回路および/またはメモリ制御ファームウェアを含むように定義される。
ホスト−メモリ翻訳回路は、第1レベルおよび/または第2レベルの誤り検出回路を含むことができる。誤り検出回路と称されるが、誤り検出回路は、誤り訂正を実行することもできる。第1レベルの誤り検出回路は、当業者によって理解されるように、BCH誤り訂正等の誤り訂正を適用して、メモリデバイス110−1、・・・、110−Nに記憶される情報と関連付けられる誤りを検出および/または訂正するように構成することができる。例えば、第1レベルの誤り検出回路は、1080ビットの符号語を通じて29ビットの誤り訂正を提供することができる。第2レベルの誤り検出回路は、閾値を超える量の訂正可能な誤りがあると判断すること等によって、第1レベルの誤り検出によって訂正できない誤り、例えば訂正不能な誤り訂正符号(UECC)の誤りを検出することができる。本明細書でより詳細に説明するように、本開示の1つ以上の実施形態は、パリティ情報を使用して1つ以上の下位ストライプを再作成することによって、上位ストライプの書き込み中に遭遇するUECCの誤りの訂正を提供する。第2レベルの誤り検出回路は、RAID排他的論理和(XOR)回路を含むことができる。RAIDのXOR回路は、ホストインターフェース回路から受け取る情報に基づいて、パリティ情報を計算することができる。1以上のメモリデバイス110−1、・・・、110−Nに書き込まれた各ビットについて、パリティビットを、RAIDのXOR回路によって計算して、メモリデバイス110−1、・・・、110−Nのうちの特定の1つに書き込むことができる。
本開示の1つ以上の実施形態によれば、書き込み情報は、RAID操作の1以上のソリッドステートメモリデバイスに対する複数のチャネルわたってストライピングすることができる。当業者が理解するように、ストライピングすることは、情報を分割することを含み、よって、情報は、複数のチャネルにわたって、例えば2つ以上のデバイスに記憶される。分割した情報を記憶する2つ以上のデバイスの各部分は、集合的に、ストライプと称される。対照的に、ミラーリングは、2つ以上のデバイスに情報の複製を記憶することを含むことができる。
メモリコントローラ108は、LBAテーブルおよび/またはブロックテーブルを維持することができる。LBAテーブルは、1つ以上のメモリデバイス110−1、・・・、110−Nの中のページの物理ページアドレスを記憶すること、および対応する論理アドレスを含むことができる。LBAテーブルは、関連するコマンド、例えば、関連するSATAコマンドに含まれるLBAによってインデックスを付けることができる。LBAテーブルは、対応する情報を記憶することができる論理ブロックアドレスに対応する物理ページアドレスをルックアップするために使用することができる。ブロックテーブルは、1つ以上のメモリデバイス110−1、・・・、110−N内の消去可能なブロックの情報を記憶することができる。ブロックテーブルに記憶される情報は、有効なページ情報、消去カウント、および他の状態情報を含むことができる。ブロックテーブルからアクセスされる情報は、物理ブロックアドレスによってインデックスを付けることができる。
メモリコントローラ108は、数ある他の操作の中でも、メモリデバイス110−1、・・・、110−Nと通信して、情報を読み出すこと、書き込むこと、および消去することができる。メモリデバイス110−1、・・・、110−Nは、集合的なメモリコントローラ108に連結されているように示されているが、本開示の1つ以上の実施形態は、各メモリチャネルについて、離散した不揮発性メモリコントローラを含むことができる。メモリデバイス110−1、・・・、110−Nは、メモリセル、例えば不揮発性メモリセルの1つ以上のアレイを含むことができる。アレイは、例えば、NAND構造を伴うフラッシュアレイとすることができる。NAND構造では、「行」のメモリセルの制御ゲートをアクセス線、例えばワード線と連結することができる一方で、メモリセルは、セレクトゲートソーストランジスタとセレクトゲートドレイントランジスタとの間の「ストリング」内で、ソースとドレインとを直列に連結することができる。ストリングは、セレクトゲートドレイントランジスタによって、データ線、例えばビット線に接続することができる。「行」および「ストリング」という用語の使用は、メモリセルの線形配設も直交配設も意味するものではない。当業者には明らかなように、ビット線およびソース線に対するメモリセルの接続の手法は、アレイがNAND構造であるか、NOR構造であるか、またはいくつかの他のメモリアレイ構造であるかどうかに依存する。
メモリデバイス110−1、・・・、110−Nは、グループ化することができる、1以上のメモリセルを含むことができる。本明細書で使用される場合、グループは、ページ、ブロック、プレーン、ダイ、アレイ全体、またはメモリセルの他のグループ等の、1つ以上のメモリセルを含むことができる。例えば、いくつかのメモリアレイは、メモリセルのブロックを形成する、1以上のメモリセルのページを含むことができる。1以上のブロックは、メモリセルのプレーンに含めることができる。1以上のメモリセルのプレーンは、ダイに含めることができる。一例として、128GBのメモリデバイスは、1ページあたり4314バイトの情報(例えば、4096バイトの書き込み情報と218バイトのオーバーヘッド情報とを合わせたもの)、1ブロックあたり128ページ、1プレーンあたり2048ブロック、および1デバイスあたり16プレーンを含むことができる。
図1の実施形態は、本開示の実施形態を不明確にしないために示されていない、付加的な回路を含むことができる。例えば、メモリシステム104は、I/O回路を通したI/O接続を通じて提供されるアドレス信号をラッチするための、アドレス回路を含むことができる。アドレス信号は、メモリデバイス110−1、・・・、110−Nにアクセスするために、行デコーダおよび列デコーダによって受け取って、復号化することができる。当業者には、アドレス入力接続部の数が、メモリデバイス110−1、・・・、110−Nの密度および構造に依存し得ることが理解されるであろう。
図2は、本開示の1つ以上の実施形態に従う、メモリデバイス210の一部分の図を示す。図2では示されていないが、当業者は、メモリデバイス210が、その操作と関連する種々の周辺回路とともに半導体ダイ上に位置し得ることを理解するであろう。メモリデバイス210は、1つ以上のメモリセルのアレイを含むことができる。
図2で示されるように、メモリデバイス210は、メモリセルの1以上の物理ブロック260−1(ブロック1)、260−2(ブロック2)、・・・、260−M(ブロックM)を含むことができる。図2で示される実施例において、指示子「M」は、メモリデバイス210が1以上の物理ブロックを含み得ることを示すために使用される。一例として、メモリデバイス210の物理ブロックの数は、128ブロック、4,096ブロック、または32,768ブロックであり得るが、実施形態は、メモリデバイスの中の特定の数の、または複数の物理ブロックに限定されない。図2で示される実施形態において、メモリデバイス210は、例えば、各物理ブロック260−1、260−2、・・・、260−Mの中のメモリセルをまとめて1つの単位として消去できるように(例えば、各物理ブロックの中のセルを実質的に同時に消去できるように)、例えば、NAND型フラッシュメモリデバイス210とすることができる。例えば、各物理ブロックの中のセルは、単一の消去操作でまとめて消去することができる。
図2ではそのようなものとして特に指定されていないが、1以上のブロックを、スクラッチブロックとして使用することができる。本明細書で説明されるように、マルチレベルメモリセルをプログラムすることは、例えばメモリセルを中間状態にプログラムするための、1つ以上の下位ページのプログラミング操作と、例えばメモリセルを最終状態にプログラムするための、上位ページのプログラミング操作とを含み得る。スクラッチブロックは、下位ストライプの中の情報の下位ページに対応する情報、および上位ストライプの中の情報の上位ページに対応する情報を記憶するのに有用であり得る。すなわち、情報の特定のブロックについて、2つのスクラッチブロックが使用され得る(1つは、特定のブロックの下位ページに対応する情報を記憶し、もう1つは、特定のブロックの上位ページに対応する情報を記憶する)。しかしながら、スクラッチブロックは、いくつかの下位ページおよびいくつかの上位ページに対応する情報を記憶することができるので、実施形態は、下位ページまたは上位ページに対応する情報だけを記憶するスクラッチブロックに限定されない。本明細書でより詳細に説明されるように、スクラッチブロックの下位ページだけがプログラムされるという概念から、特定のブロックに対するスクラッチブロックの2対1という比率が生じ得る。ブロックテーブルは、スクラッチブロック(例えば、特定のブロックの下位ページに対応する情報を記憶する、第1のスクラッチブロック)と関連付けられる1つ以上のアドレスを、第2のスクラッチブロック(例えば、特定のブロックの上位ページに対応する情報を記憶する)にリンクすることができるように、更新することができる。ブロックテーブルは、対応する情報が特定のブロックにプログラムされた後に、スクラッチブロックを消去できることを示すために使用することができる。スクラッチブロックおよび関連する操作は、図4〜図5Cに関してさらに詳細に説明する。
指示子「R」は、物理ブロック、例えば260−1、260−2、・・・、260−Mが、1以上の行を含み得ることを示すために使用される。いくつかの実施形態では、各物理ブロックの中の行、例えばワード線の数を、32とすることができるが、実施形態は、1物理ブロックあたりの特定の数の行270−1、270−2、・・・、270−Rに限定されない。当業者は、各行270−1、270−2、・・・、270−Rが、1つ以上の物理ページ、例えば偶数ページおよび奇数ページを含み得ることを理解するであろう。物理ページは、書き込みおよび/または読み出しの単位、例えば、まとめて、またはメモリセルの機能グループとして書き込みおよび/読み出しが行われる1以上のセルを指す。故に、偶数ページおよび奇数ページは、別々の書き込みおよび/または読み出し操作で書き込みおよび/または読み出しが行われ得る。
マルチレベルセル(MLC)を含む実施形態について、物理ページは、1つの上位ページおよび1つ以上の下位ページに論理的に分割することができる。例えば、2ビットの情報を記憶しているメモリセルは、情報の上位ページに1ビットを提供し、情報の下位ページに1ビットを提供することができる。したがって、メモリセルは、「01」のデータ状態にプログラムすることができ、ここで、「0」は、下位ページに対応し、「1」は、上位ページに対応する。そのようなメモリセルをプログラムすることは、下位ページをプログラムすることと、上位ページをプログラムすることとを含むことができる。下位ページをプログラムすることは、メモリセルを中間状態にプログラムすることを含むことができ、上位ページをプログラムすることは、メモリセルを最終状態にプログラムすることを含むことができる。同じことを、図4と関連してさらに詳細に説明する。論理上位ページおよび論理下位ページは、同じ物理ページの一部とすることができる。図を簡単にするために、図2の各行270−1、270−2、・・・、270−Rは、1つの物理ページおよび論理ページだけしか含んでいないが、実施形態は、そのように限定されない。
本開示の1つ以上の実施形態において、また、図2で示されるように、ページは、1以上のセクタ280−1、280−2、・・・、280−Sに情報を記憶することができる。指示子「S」は、ページが1以上のセクタを含み得ることを示すために使用される。情報は、システムデータおよび/またはユーザデータを含むことができる。各セクタ280−1、280−2、・・・、280−Sは、システムデータおよび/またはユーザデータを記憶することができ、また、誤り訂正符号(ECC)情報、および論理ブロックアドレス(LBA)情報等の、オーバーヘッド情報を含むことができる。当業者が理解するように、論理ブロックのアドレス指定は、情報のセクタを識別するためにホストによって使用することができる、例えば各セクタが一意のLBAに対応できる、スキームである。1つ以上の実施形態において、セクタは、記憶ボリュームの最小のアドレス指定可能な部分である。一例として、情報のセクタは、例えば、256バイト、512バイト、または1,024バイト等の1以上のバイトの情報であり得る。例えば、SSDは、1ページに4つ、8つ、または16のセクタを有することができ(ここで、1セクタは、512バイトであり得る)、また、SSDは、1物理ブロックあたり128、256、または512ページを有することができ、したがって、物理ブロックサイズは、131072バイト、262144バイト、および524288バイトである。実施形態は、これらの例に限定されない。
物理ブロック260−1、260−2、・・・、260−M、行270−1、270−2、・・・、270−R、セクタ280−1、280−2、・・・、280−S、およびページに関する他の構成が可能であることに留意されたい。例えば、物理ブロック260−1、260−2、・・・、260−Mの行270−1、270−2、・・・、270−Rは、それぞれ、例えば512バイト前後のデータを含むことができる、単一のセクタに対応する情報を記憶することができる。
図3は、本開示の1つ以上の実施形態に従う、ストライプに基づいて操作される記憶ボリューム340のブロック図を示す。記憶ボリューム340は、メモリシステム、例えば図1のメモリシステム104の中の、1以上のソリッドステートメモリデバイス、例えば図1のソリッドステートメモリデバイス110−1、・・・、110−Nにフォーマットされたファイルシステムによって提供することができる。本明細書で説明される、各ソリッドステートメモリデバイスは、メモリチャネル342−1、・・・、342−(N−1)、342−Nと関連付けることができる。しかしながら、いくつかの実施形態は、1デバイスあたり複数のチャネルを含み得るので、実施形態は、1メモリデバイス、例えば1メモリチップあたり1つのチャネルに限定されない。例えばメモリセルの2つ以上の物理プレーンを含むメモリチップの場合に、1つのメモリチップを、2つ以上のチャネルによってメモリコントローラに連結することができる。情報は、1以上のソリッドステートメモリデバイスによって提供される記憶ボリューム340にわたって、1以上のストライプ344−1、344−2、・・・、344−Pに書き込むことができる。
メモリシステムは、ホストシステムから書き込み情報を受け取ることができる。メモリシステム、例えば図1のメモリコントローラ108と関連付けられるRAIDのXOR回路は、書き込み情報のためのパリティ情報を計算することができる。1つ以上の実施形態において、書き込み情報およびパリティ情報は、記憶ボリューム340にわたってストライピングすることができ、よって、書き込み情報は、1以上の利用可能なチャネルのサブセット、例えばチャネル342−1、・・・、342−(N−1)にわたって書き込むことができ、パリティ情報は、1以上の利用可能なチャネルの第2のサブセット、例えばチャネル342−Nにわたって書き込むことができる。例えば、メモリシステムは、8つのチャネルを含むことができ、そこでは、7つのチャネルが書き込み情報を書き込むために使用され、1つのチャネルがパリティ情報を書き込むために使用される。本明細書で説明されるように、パリティ情報は、異なるストライプにおいて異なるチャネルにわたって書き込むことができる。実施形態は、N個のチャネルのうちのN−1個を書き込み情報に使用し、単一のチャネルをパリティ情報に使用することに限定されない。本開示の1つ以上の実施形態によれば、RAID構造および/またはストライプサイズは、プログラム可能なオプションとすることができる。
RAID構造は、複数のメモリデバイスわたって情報を分割および/または複製するために、RAID記憶スキームの実装を表すことができる。例えば、情報は、2つ以上のデバイスにわたってストライピングおよび/またはミラーリングすることができる。ストライピングすることは、書き込み情報をフラグメントに分割することと、少なくとも1つのフラグメントを1以上のメモリデバイスのそれぞれに記憶することとを含むことができる。ミラーリングは、書き込み情報のコピーを少なくとも2つのメモリデバイスに冗長に記憶することを含むことができる。ストライピングおよびミラーリングはどちらも、誤り検出の使用を含むことができる。パリティ情報は、書き込み情報と同じメモリデバイスに、および/または書き込み情報を記憶しているデバイスとは別のデバイスに記憶させることができる。本開示の1つ以上の実施形態によれば、メモリシステムによって実装される特定のRAID構造は、プログラム可能なオプションとすることができる。
本明細書で使用される場合、ストライプサイズは、そのチャネルにわたって情報がストライピングされるチャンネル数を指し得る。本開示の1つ以上の実施形態によれば、メモリシステムのためのストライプサイズは、プログラム可能なオプションとすることができ、よって、メモリシステムに利用可能な任意の数のチャネルをストライプに使用することができる。例えば、32個のチャネルおよび1以上の対応するメモリデバイスを含むメモリシステムは、2〜32個の任意のストライプサイズを有することができる。いくつかの実施形態は、不揮発性メモリを少なくとも2つの部分に論理的に分離することを含むことができ、各部分は、不揮発性メモリと関連付けられる1以上のチャネルのサブセットを含む。そのような実施形態は、少なくとも2つの部分のそれぞれについて独立に、ストライプに基づいて不揮発性メモリシステムを操作することを含むことができる。例えば、書き込み情報およびパリティ情報の1以上のページを各ストライプに書き込むことができ、ここで、第1のストライプは、メモリシステムの1以上のチャネルの1つのサブセットだけにわたって書き込まれ、第2のストライプは、メモリシステムの1以上のチャネルの異なるサブセットだけにわたって書き込まれる。さらに、ストライプサイズは、メモリシステムの操作中に変更することができる。ブロックテーブルは、メモリシステムのどの部分がどのストライプに対応するのかを追跡するために使用することができる。
パリティ情報を記憶することは、下位ストライプと共通するメモリセルの少なくとも1つの物理ページを含む上位ストライプを書き込むことと関連付けられるUECC誤りに応答して、下位ストライプと関連付けられる情報を再作成することを可能にすることができる。より具体的な実施例は、図5A〜5Cに関して下で提供する。メモリチャネル、メモリデバイス、メモリのブロック、メモリのページ、またはメモリデバイスの別の部分は、訂正不能な誤りまたは他の誤りを経験し得る。例えば、書き込み情報の下位ページは、チャネル342−1、・・・、342−(N−1)にわたって第1のストライプ344−1に書き込むことができる。パリティ情報は、チャネル342−Nにわたって第1のストライプ344−1に書き込むことができる。例えば上位ストライプを書き込むことの一部としてチャネル342−1にわたって上位ページが書き込まれることに応答して、第1のチャネル342−1が訂正不能な誤りまたは他の誤りを経験した場合は、342−(N−1)までのチャネルと関連付けられる書き込み情報およびチャネル342−Nと関連付けられるパリティ情報を、第1のチャネル342−1にわたって書き込まれる情報の下位ページを作成するために使用することができる。パリティ情報を作成する場合と同様に、メモリシステム、例えばRAIDのXOR回路は、書き込み情報とともにパリティ情報を使用して、訂正不能な誤りまたは他の誤りを経験するメモリシステムの一部分と関連付けられる情報に対する代わりの情報を計算することができる。
図1のメモリコントローラ108と関連するECC回路は、書き込み情報のフラグメントに対する第1レベルの誤り訂正情報、および/またはメモリデバイスに記憶される第2レベルの訂正(例えば、パリティ)情報を計算することができる。図3は、チャネル342−1、・・・、342−(N−1)と関連して記憶されている書き込み情報346および第1レベルの誤り訂正情報348、ならびにチャネル342−Nと関連して記憶されているパリティ情報350および第1レベルの誤り訂正情報348の具体例を含む。ストライプが書き込まれたときに、書き込み情報および誤り訂正情報の双方を、一緒に書き込むことができる。書き込み情報またはパリティ情報に関わらず、情報の中に誤りが検出された場合、第2レベルの誤り訂正、例えば上で説明したパリティ情報と関連付けられる訂正を実装する前に、および/またはそれを実装せずに、誤りを訂正するために、第1レベルの誤り訂正情報を使用することができる。メモリシステムは、閾値数の誤りビットを訂正することを可能にするのに十分な第1レベルの誤り訂正情報を記憶し得る。書き込み操作中に、第1レベルの誤り訂正情報で訂正可能であるビット誤りよりも多いビット誤りを含む誤り、例えばUECC誤りが検出された場合に、例えば上で説明したパリティ情報を使用する、第2レベルの誤り訂正を実装してもよく、例えば、誤りと関連付けられる情報を、パリティ情報と、書き込み情報の残りとを使用して再作成してもよい。
図4は、本開示の1つ以上の実施形態に従う、消去された状態422、ならびに1以上の下位ページ424、上位ページ426、およびスクラッチページ428のデータ状態の例示的な2ビットのメモリセルと関連する、閾値電圧分布420の線図を示す。実施形態は、2ビットの情報でプログラムされているマルチレベルメモリセルに限定されない。本開示の1つ以上の実施形態は、2ビットを超えるおよび/または分数ビットの情報でプログラムされている特定のメモリセルを含むことができる。
消去された状態422から始まり、1つ以上のプログラミングパルスを特定のメモリセルに印加して、下位ページ424からの情報を表す中間状態、例えば0または1にセルをプログラムすることができる。続いて、1つ以上のプログラミングパルスを特定のメモリセルに印加して、中間状態、例えば1または0から、上位ページ426からの日付を表す最終状態、例えば11、10、01、または00にプログラムすることができる。図4で示されるように、2ビットのメモリセルについて、中間状態に対応する下位ページ424からの情報は、最終状態に対応する上位ページ426からの情報の第1ビットを表すことができ、例えば、メモリセルを、1から11もしくは10にプログラムすることができ、またはメモリセルを、0から01もしくは00にプログラムすることができる。しかしながら、実施形態は、2ビットセルまたは図4で示される特定の情報値に限定されない。
1つ以上の実施形態において、情報のスクラッチページ428は、書き込み情報の下位ページ424または上位ページ426に対応し得る。図4で示されるように、そのようなスクラッチページは、下位ページ424に類似し得、例えば、2ビットのセルを、スクラッチページ428のプログラミング操作の一部として、2つの状態のうちの1つにプログラムすることができる。
特定のプログラミング操作について、下位ページ424および対応する上位ページ426は、同じ物理メモリセル、例えば同じメモリセルの物理ページにプログラムされる。しかしながら、特定のプログラミング操作が1以上のスクラッチページ428をプログラムすることを含むとき、スクラッチページは、下位ページおよび上位ページでプログラムされるものと異なる物理メモリセル、例えば異なるメモリセルの物理ページにプログラムされる。1つ以上の実施形態において、メモリセルのスクラッチページは、メモリセルのスクラッチブロック、例えば特定の下位ページおよび特定の上位ページでプログラムされたものを含むメモリセルのブロックと異なるメモリセルの物理ブロックの中に存在し得る。
スクラッチページ428は、下位ページ424および/または上位ページ426をどのようにプログラムするのかを示すために使用することができる。スクラッチ428ページの中の情報は、下位ページ424または上位ページ426に対応し得る。2つのスクラッチページ428、例えば下位ページ424に対応するスクラッチページ428および上位ページ426に対応するスクラッチページ428(別々のメモリセルの物理ページ)を組み合わせて、下位ページ424および上位ページ426を書き込むことができる(ここで、下位ページ424および上位ページ426は、2つのスクラッチページ428のためのメモリセルの物理ページと異なる、同じメモリセルの物理ページに書き込まれる)。
下位ページ424のプログラミングについて、スクラッチページ428の一部として情報「1」でプログラムされているメモリセルは、下位ページの第1ビットが「1」であること、および/または対応するメモリセルが、消去された状態422から、下位ページ424における2つの中間状態のうちの下位にプログラムされるべきであることを示すことができる。上位ページ426のプログラミングについて、スクラッチページ424の一部として情報「1」でプログラムされているメモリセルは、上位ページの第2ビットが「1」であること、および/または下位ページ424からの対応するメモリセルが、中間状態から、中間状態と関連付けられる2つの最終状態のうちの下位にプログラムされるべきであることを示すことができる。例えば、図4で示されるように、下位ページ424からの対応するメモリセルが、中間状態「1」にプログラムされ、上位ページに対応するスクラッチページが情報「1」を含む場合、下位ページからの対応するメモリセルは、上位ページ426において「11」という最終状態にプログラムされるべきである。同様に、図4で示されるように、下位ページ424からの対応するメモリセルが、中間状態「0」にプログラムされ、上位ページに対応するスクラッチページが情報「1」を含む場合、下位ページ424からの対応するメモリセルは、上位ページ426において「01」という最終状態にプログラムされるべきである。
下位ページ424のプログラミングについて、スクラッチページ424の一部として情報「0」でプログラムされているメモリセルは、下位ページの第1ビットが「0」であること、および/または対応するメモリセルが、消去された状態422から、下位ページ424における2つの中間状態のうちの上位にプログラムされるべきであることを示すことができる。上位ページ426のプログラミングについて、スクラッチページ424の一部として情報「0」でプログラムされているメモリセルは、上位ページの第2ビットが「0」であること、および/または下位ページ424からの対応するメモリページが、中間状態から、中間状態と関連付けられる2つの最終状態のうちの上位にプログラムされるべきであることを示すことができる。例えば、図4で示されるように、下位ページ424からの対応するメモリセルが、中間状態「1」にプログラムされ、上位ページ426に対応するスクラッチページが情報「0」を含む場合、下位ページからの対応するメモリセルは、上位ページ426において「10」という最終状態にプログラムされるべきである。同様に、図4で示されるように、下位ページ424からの対応するメモリセルが、中間状態「0」プログラムされ、上位ページ426に対応するスクラッチページが情報「0」を含む場合、下位ページ424からの対応するメモリセルは、上位ページ426において「00」という最終状態にプログラムされるべきである。
理解されるように、2ビット以外の1以上のビットでマルチレベルメモリセルをプログラムするための方法は、本明細書の説明から推定され得る。例えば、4ビットメモリセルは、2つ以上の下位ページのプログラミング操作でプログラムされ、その後に、最終状態にプログラムされ得、そのような実施形態は、2つを超えるスクラッチページを使用して、どのように下位ページがプログラムされるべきか、どのように後続の下位ページがプログラムされるべきか、および/またはどのように上位ページがプログラムされるべきか、例えば、どのようにメモリセルが1つ以上の中間状態に、および/または最終状態にプログラムされるべきかを示すことができる。2ビットセルに関して本明細書で説明される1つ以上の例示的な実施形態は、例示の目的のために示されたものであり、本開示を2ビットメモリセルの操作に限定しない。さらに、「1」および「0」、ならびに「上位」および「下位」という用語の使用は、1つ以上の例示的な実施形態を示すために本明細書で使用され、本開示を特定の表記法または情報整理に限定しない。
図5Aは、本開示の1つ以上の実施形態に従う、1以上のチャネル542Aにわたる下位ページおよび上位ページのプログラミングを、1以上の下位ストライプ544A−Lおよび上位ストライプ544A−Uと相関させた表を示す。本開示の1つ以上の実施形態によれば、1以上の下位ストライプ544A−Lを書き込むことは、1以上の下位ストライプ544A−Lのそれぞれの中の情報の1以上の下位ページをプログラムすることを含み得る。1以上の下位ページのそれぞれは、1以上のチャネル542Aにわたって、特定の下位ストライプにおいて実質的に同時にプログラムすることができる。いくつかの実施形態において、特定の下位ストライプは、2つを超えるページを含むことができるが、1以上の下位ストライプ544A−Lのそれぞれは、情報、例えば書き込み情報の1つの下位ページだけ、およびパリティ情報の1ページだけを含むことができる。図5Aにおいて、例えば、「下位ストライプ1」は、「チャネル1」にわたって書き込まれる下位ページ「LP1」512Aと、「チャネル8」にわたって書き込まれる「パリティ1」550Aとを含む。いくつかの実施形態では、ユーザデータの下位ページとパリティ情報のページとを除く、1以上の下位ストライプ544A−Lにおける1以上のページ(図5Aで空白ページとして示される)を、システムデータのために予約することができる。パリティ情報、例えばパリティ情報のページ550Aは、下位ストライプの中のページの残りについて計算することができ、また、下位ストライプの中のページのうちの1つにプログラムすることができる。実施形態は、特定の数のストライプおよび/またはチャネルに限定されない。
1つ以上の実施形態において、上位ストライプ544A−Uを書き込むことは、上位ストライプ544A−Uの中の情報の1以上の上位ページをプログラムすることを含むことができる。上位ストライプ544A−Uの中の1以上の上位ページのそれぞれは、1以上のチャンネル542Aにわたって実質的に同時にプログラムすることができる。上位ストライプの中の1以上の上位ページのそれぞれは、1以上の下位ページのそれぞれ1つに対応する。図5Aにおいて、例えば、「上位ストライプ」544A−Uは、「下位ストライプ1」の中の下位ページ「LP1」512Aに対応する上位ページ「UP1」514Aを含む。すなわち、上位ストライプ544A−Uを書き込むことは、下位ページ512Aから上位ページ514Aまでメモリセルをプログラムすること含む。
図5Aで示されるように、1以上の上位ページ(例えば、「UP1」、「UP2」、「UP3」、「UP4」、「UP5」、「UP6」、および「UP7」)のそれぞれ1つに対応する、1以上の下位ページ(例えば、「LP1」、「LP2」、「LP3」、「LP4」、「LP5」、「LP6」、および「LP7」)のそれぞれは、例えば別個のストライピング操作のそれぞれ一部として、1以上の下位ストライプ544A−Lの異なる下位ストライプに書き込むことができる。故に、上位ストライプ544A−Uのページの全てと関連付けられるメモリセルがUECC誤りを経験した場合、例えば上位ストライプ544A−Uの書き込み中に情報が破損した場合であっても、対応する下位ページのそれぞれを、パリティ情報を使用して再作成することができる。例えば、対応する上位ページ514Aの書き込み中に、特定の下位ページ512Aと関連付けられるメモリセルがUECC誤りを経験した場合、下位ページ512Aを、ストライプからの特定の下位ページおよびパリティ情報550Aを含む、ストライプ、例えば「下位ストライプ1」の中の情報の残りを使用して再作成することができる。そのような誤りの1つの例は、非同期電力サイクル、例えば1つ以上のメモリデバイスに対する電力の予想外の遮断である。図5Aは、「下位ストライプ1」の中の情報、例えば書き込み情報の1つのページ512Aだけを示しているが、図5B〜5Cに関して下でより詳しく説明するように、実施形態は、そのように限定されない。
下位ストライプ544A−Lのそれぞれと関連して図5Aで示される下位ページのそれぞれ、例えばページ512Aは、メモリデバイスの中のメモリセルの別個の物理ページを論理的に表す。上位ストライプ544A−Uと関連して図5Aで示される上位ページのそれぞれ、例えばページ514Aは、対応する下位ページと同じ、メモリセルの物理ページを論理的に表す。例えば、上位ページ「UP1」514Aは、下位ページ「LP1」512Aと同じ、メモリセルの物理ページを論理的に表す。
図5Bは、本開示の1つ以上の実施形態に従う、1以上のチャネル542Bにわたる下位ページおよび上位ページのプログラミングを、1以上の下位ストライプ544B−Lおよび上位ストライプ544B−Uと相関させた表を示す。本開示の1つ以上の実施形態によれば、複数の下位ストライプ544B−Lを書き込むことは、複数の下位ストライプ544B−Lのそれぞれの中の情報の複数の下位ページをプログラムすることを含み得る。複数の下位ストライプ544B−Lのそれぞれの中の情報の複数の下位ページをプログラムすることは、パリティ情報の1ページをプログラムすることと、ユーザデータを伴う複数の下位ページの残りをプログラムすることとを含むことができる。パリティ情報の各ページは、それが対応するストライプの指定を含む。したがって、例えば、パリティ情報550Bのページは、下位ストライプ1に対応することを示す「L1」に指定される。例えば、図5Bにおいて、「下位ストライプ1」は、「チャネル8」にわたって書き込まれる「パリティL1」550B、ならびに「チャネル1」わたって書き込まれる下位ページ「LP1,1」512B、「チャネル2」にわたって書き込まれる「LP1,2」、「チャネル3」にわたって書き込まれる「LP1,3」、「チャネル4」にわたって書き込まれる「LP1,4」、「チャネル5」にわたって書き込まれる「LP1,5」、「チャネル6」にわたって書き込まれる「LP1,6」、および「チャネル7」にわたって書き込まれる「LP1,7」を含む。特定の下位ストライプの中の下位ページのそれぞれは、異なるチャネル542Bにわたって書き込むことができる。いくつかの実施形態では、特定の下位ストライプの中の下位ページのそれぞれが、1以上のチャネルにわたって実質的に同時に書き込まれ得る。
1つ以上の実施形態において、複数の上位ストライプ544B−Uを書き込むことは、情報の複数の上位ページを各上位ストライプにプログラムすることを含み得る。複数の上位ストライプのうちの特定の1つの中の複数の上位ページのそれぞれは、複数の下位ストライプのうちの異なる1つの中のそれぞれの下位ページに対応する。図5Bで示されるように、各下位ページ「LP」は、下位ページが対応する下位ストライプの指定、および下位ページが対応する上位ストライプの指定を含む。したがって、例えば、下位ページ「LP1,1」512Bは、下位ストライプ1および上位ストライプ1に対応することを示す、指定「1,1」を含む。同じく図5Bで示されるように、各上位ページ「UP」は、上位ページが対応する上位ストライプの指定、および上位ページが対応する下位ストライプの指定を含む。例えば、上位ページ「UP1,1」514Bは、上位ストライプ1および下位ストライプ1に対応することを示す指定「1,1」を含む。すなわち、上位ページ「UP1,1」514Bをプログラムすることは、下位ページ「LP1,1」512Bと関連付けられる同じメモリセルをプログラムすることを含む。別の例として、上位ページ「UP1,2」をプログラムすることは、下位ページ「LP2,1」と関連付けられるメモリセルをプログラムすることを含む。
故に、各上位ストライプ544B−Uを書き込むことは、それぞれが異なる下位ストライプ544B−Lに対応する複数のページをプログラムすることを含む。例えば、「上位ストライプ1」を書き込むことは、「下位ストライプ1」から下位ページ「LP1,1」512Bに対応する上位ページ「UP1,1」514Bをプログラムすること、「下位ストライプ2」の中の「LP2,1」に対応する「UP1,2」をプログラムすること、「下位ストライプ3」の中の「LP3,1」に対応する「UP1,3」をプログラムすること、「下位ストライプ4」の中の「LP4,1」に対応する「UP1,4」をプログラムすること、「下位ストライプ5」の中の「LP5,1」に対応する「UP1,5」をプログラムすること、「下位ストライプ6」の中の「LP6,1」に対応する「UP1,6」をプログラムすること、および「下位ストライプ7」の中の「LP7,1」に対応する「UP1,7」をプログラムすることを含む。各上位ストライプ544B−Uとともにプログラムされるパリティ情報は、対応する上位ストライプ544B−Uに書き込まれる情報に対して計算することができるので、下位ストライプ544B−Lのそれぞれとともに書き込まれるパリティ情報に無関係であり得る。特定の上位ストライプの中の上位ページのそれぞれが、異なるチャネル542Bにわたって書き込まれ得る。いくつかの実施形態では、特定の上位ストライプの中の上位ページのそれぞれが、1以上のチャネルにわたって実質的に同時に書き込まれ得る。
複数の下位ストライプ544B−Lおよび上位ストライプ544B−Uは、図5Bで示される順序で書き込むことができ、下位ストライプ1から始まり、上位ストライプ7まで続く。複数の上位ストライプ544B−Uに対応する情報を、単一の下位ストライプ544B−Lに書き込むことができるので、1つ以上の実施形態は、複数の上位ページと関連付けられる情報をバッファリングおよび/またはキャッシュし、その後に、複数の下位ストライプ544B−Lを書き込むことを含み得る。同様に、複数の下位ストライプ544B−Lに対応する情報を、単一の上位ストライプ544B−Uに書き込むことができるので、1つ以上の実施形態は、複数の下位ページと関連付けられる情報をバッファリングし、その後に、複数の下位ストライプ544B−Lの最初の1つを書き込むことを含み得る。故に、メモリシステムは、上位ストライプおよび/または下位ストライプを書き込む前に情報を記憶するためのバッファを含むことができる。そのようなバッファとしては、揮発性メモリおよび/または不揮発性メモリが挙げられる。図を簡単にするために、図5Bは、論理的にまとめてグループ化した複数の下位ストライプ544B−L、および論理的にまとめてグループ化した複数の上位ストライプ544B−Uを示しているように表されているが、実施形態は、そのように限定されない。例えば、複数の下位ページ544B−Lおよび複数の上位ページ544B−Uは、特定のブロック全体を通して混合され得、必ずしも図5Bで示されている順序で書き込まれるわけではなく、例えば、特定のストライプが、1以上の下位ページと1以上の上位ページとを含み得る。
図5Cは、本開示の1つ以上の実施形態に従う、1以上のチャネル542Cにわたる下位ページおよび上位ページのプログラミングを、1以上の下位スクラッチストライプ544C−LS、上位スクラッチストライプ544C−US、下位ストライプ544C−L、および上位ストライプ544C−Uと相関させた表を示す。図5Cは、読み易くするために、かつフォントサイズ要件に対応するように、「図5C−I」および「図5C−II」と符号を付した2つの添付図を含む。1つ以上の実施形態は、複数の下位スクラッチページ、例えば下位スクラッチページ「LSP1,1」516C−Lを複数の第1のブロックにプログラムすることを含み得る。複数の上位スクラッチページ、例えば上位スクラッチページ「USP1,1」516C−Uは、第2のブロック、すなわち、第1のブロックと異なるブロックにプログラムすることができる。複数の下位ページ、例えば下位ページ「LP1,1」512C、および複数の上位ページ、例えば上位ページ「UP1,1」514Cはどちらも、第3のブロック、すなわち、第1のブロックおよび第2のブロックと異なるブロックにプログラムすることができる。本明細書で説明されるように、第3のブロックについて、複数の上位ページをプログラムする前に、複数の下位ページをプログラムすることができる。スクラッチストライプ544C−LSおよび544C−USは、それぞれ、下位ページおよび上位ページに対応する情報だけを含むように示されているが、実施形態は、そのように限定されない。すなわち、特定のスクラッチストライプは、1つ以上の下位ページおよび1つ以上の上位ページに対応する情報を含むことができる。
下位スクラッチストライプ544C−LSは、下位ストライプ544C−Lに書き込む前に読み出すことができ、上位スクラッチストライプ544C−USは、上位ストライプ544C−Uに書き込む前に読み出すことができる。下位スクラッチストライプ544C−LSのそれぞれのページの中の情報は、下位ストライプ544C−Lのそれぞれのページの中の情報に対応し得、上位スクラッチストライプ544C−USのそれぞれのページの中の情報は、上位ストライプ544C−Uのそれぞれのページの中の情報に対応し得る。1つ以上の実施形態において、下位スクラッチストライプ544C−LSおよび上位スクラッチストライプ544C−USと関連付けられる第1および第2のブロックは、下位ストライプ544C−Lおよび/または上位ストライプ544C−Uが書き込まれた後に消去され得る。
さらに、情報は、一般に、スクラッチストライプの中に書き込まれるので、メモリシステムは、特定のスクラッチストライプの中の情報が、対応する下位ストライプ544C−Lまたは上位ストライプ544C−Uの下位ビットに対応するのか、上位ビットに対応するのか、「認識して」いない場合がある。メモリシステムはまた、スクラッチストライプに書き込まれている情報が、後に組み合わせられて、下位ビットとしてであれ、上位ビットとしてであれ、特定の下位ストライプ544C−Lおよび/または上位ストライプ544C−Uに書き込まれることだけしか「認識して」いない場合がある。
複数のスクラッチページのそれぞれは、複数の下位ストライプ544C−Lおよび/または複数の上位ストライプ544C−Uに書き込まれた、複数の下位ページのうちの異なる1つおよび/または複数の上位ページのうちの異なる1つに対応する。例えば、下位スクラッチページ「LSP1,1」516C−Lは、下位ページ「LP1,1」512Cに対応し、上位スクラッチページ「USP1,1」516C−Uは、上位ページ「UP1,1」514Cに対応する。本明細書で説明されるように、スクラッチページは、対応する下位ページまたは対応する上位ページがどのようにプログラムされるのかを示すために使用することができる。例えば、例えば下位ページ「LP2,4」と関連付けられるメモリシステムに上位ページのプログラミングを実行することによって、下位スクラッチページ「LSP2,4」は、下位ページ「LP2,4」がどのようにプログラムされるのかを示すことができ、上位スクラッチページ「USP2,4」は、上位ページ「UP4,2」がどのようにプログラムされるのかを示すことができる。
図5Bに関して上で説明したように、各下位ページ「LP」は、下位ページが対応する下位ストライプの指定、および下位ページが対応する上位ストライプの指定を含む。したがって、例えば、下位ページ「LP2,4」は、下位ストライプ2および上位ストライプ4に対応することを示す、指定「2,4」を含む。同じく図5Cで示されるように、各上位ページ「UP」は、上位ページが対応する上位ストライプの指定、および上位ページが対応する下位ストライプの指定を含む。例えば、上位ページ「UP4,2」は、上位ストライプ4および下位ストライプ2に対応することを示す、指定「4,2」を含む。各下位スクラッチページ「LSP」は、対応する下位ページのための指定に合致する指定を含む。したがって、例えば、下位スクラッチページ「LSP2,4」は、同じ指定「2,4」を有する下位ページ「LP2,4」に対応することを示す、指定「2,4」を含む。各上位スクラッチページ「USP」は、対応する上位ページのための指定に合致する指定を含む。したがって、例えば、上位スクラッチページ「USP2,4」は、同じ指定「2,4」を有する上位ページ「UP2,4」に対応することを示す、指定「2,4」を含む。換言すれば、USP2,4は、UP2,4にプログラムされる情報を含む。
1つ以上の実施形態において、複数の下位ページのうちの特定の1つをプログラムすることは、対応する下位スクラッチページに応じて、複数の下位ページのうちの特定の1つと関連付けられる不揮発性マルチレベルメモリセルを中間状態にすること、例えば下位ページをプログラムすることを含むことができる。例えば、下位ページ「LP1,1」512Cと関連付けられるメモリセルをプログラムすることは、対応する下位スクラッチページ「LSP1,1」516C−Lに応じて、メモリセルをプログラムすることを含むことができる。複数の上位ページのうちの対応する1つをプログラムすることは、複数の下位ページのうちの特定の1つと関連付けられる同じ不揮発性マルチレベルメモリセルを最終状態にプログラムすることを含むことができる。例えば、下位ページ「LP1,1」512Cをプログラムすることは、下位ページ「LP1,1」512Cと関連付けられるメモリセルを中間状態にプログラムすることを含むことができ、上位ページ「UP1,1」514Cをプログラムすることは、同じメモリセルを最終状態にプログラムすることを含むことができる。同じメモリセルを最終状態にプログラムすることは、対応する上位スクラッチページに応じて、同じメモリセルをプログラムすることを含むことができる。例えば、下位ページ「LP1,1」512Cと関連付けられるメモリセルを上位ページ「UP1,1」514Cにプログラムすることは、対応するスクラッチページ「USP1,1」516C−Uに応じて、メモリセルをさらにプログラムすることを含むことができる。故に、いくつかの実施形態は、対応する下位スクラッチページまたは上位スクラッチページを読み込み、その後に、対応する下位ページまたは上位ページをプログラムすることを含み得る。特定のスクラッチブロックの中の下位スクラッチページおよび/または上位スクラッチページに対応する上位ページがプログラムされると、スクラッチブロックは、消去して、新しいスクラッチブロックとして使用するか、下位ページおよび/もしくは上位ページをプログラムするためのブロックとして使用するか、または他のメモリ操作のために使用することができる。
複数の下位スクラッチストライプ544C−LS、上位スクラッチストライプ544C−US、下位ストライプ544C−L、および上位ストライプ544C−Uは、図5Cで示される順序で書き込むことができ、スクラッチストライプ1で始まり、スクラッチストライプ14まで、下位ストライプ1から下位ストライプ7まで、および上位ストライプ1から上位ストライプ7まで続き、または別の順序で書き込むことができる。しかしながら、複数の上位ストライプ544C−Uのそれぞれは、複数の下位ストライプ544C−Lおよび複数の上位スクラッチストライプ544C−USのそれぞれの中の少なくとも1つの下位ページに対応する上位ページを含むので、複数の上位ストライプ544C−Uは、複数の下位ストライプ544C−Lおよび複数の上位スクラッチストライプ544C−USを書き込んだ後に書き込むことができる。
結論
本開示は、ストライプに基づく不揮発性マルチレベルメモリ操作のための方法およびデバイスを含む。方法の一実施形態は、情報の1以上の下位ページを1以上の下位ストライプのそれぞれにプログラムすることを含む、1以上の下位ストライプを書き込むことを含むことができる。情報の1以上の上位ページを上位ストライプにプログラムすることを含む、上位ストライプを書き込むことができる。1以上の上位ページのそれぞれは、1以上の下位ページのうちのそれぞれ1つに対応することができる。1以上の上位ページに対応する1以上の下位ページのうちのそれぞれ1つのそれぞれを、1以上の下位ストライプの異なる下位ストライプにプログラムすることができる。
要素が、別の要素の「〜上にある」、別の要素に「接続される」、または別の要素に「連結される」ものとして言及されるとき、他の要素の直接的に上にある、他の要素に直接的に接続される、または他の要素に直接的に連結される可能性があるか、または介在要素が存在する場合があることが理解されるであろう。対照的に、要素が、別の要素に対して「直接的に上にある」、「直接的に接続される」、または「直接的に連結される」ものとして言及されるときは、いかなる介在要素または層も存在しない。本明細書で使用される場合、「および/または」という用語は、関連する列記された品目うちの1つまたは複数の任意および全ての組み合わせを含む。
本明細書で使用される場合、「および/または」という用語は、関連する列記された品目うちの1つまたは複数の任意および全ての組み合わせを含む。本明細書で使用される場合、「または」という用語は、別途注記されない限り、論理的に、包含的な「または」を意味する。すなわち、「AまたはB」は、(Aだけ)、(Bだけ)、または(AおよびBの両方)を含むことができる。換言すれば、「AまたはB」は、「Aおよび/またはB」または「AおよびBのうちの1つ以上」を意味することができる。
第1、第2、第3等の用語は、本明細書では、種々の要素を表すために使用されている場合があり、これらの用語によってこれらの要素を限定すべきではないことを理解されるであろう。これらの用語は、ある要素を別の要素と区別するために使用されているに過ぎない。したがって、第1の要素は、本開示の教示を逸脱しない範囲で第2の要素と称される可能性がある。
本明細書には具体的な実施形態が図示および記述されているが、当業者は、同じ結果を達成するように考案された配設を、示された具体的な実施形態に代えることができることを理解するであろう。本開示は、本開示の1つ以上の実施形態の適応または変形を包含することを意図する。上記の説明は、制限の様式ではなく、図説の様式において行われたものであることが理解されるであろう。上記の実施形態、および本明細書に具体的に説明されない他の実施形態の組み合わせは、上記の説明を検討することによって、当業者には明らかであろう。本開示の1つ以上の実施形態の範囲は、上記の構造および方法が使用される他の用途を含む。したがって、本開示の1つ以上の実施形態の範囲は、添付の特許請求の範囲に加えて、このような特許請求の範囲が権利を与えられる均等物の完全な範囲を参照して決定されなければならない。
前述の発明を実施するための形態では、開示を簡素化するために、いくつかの特徴が単一の実施形態にまとめられている。この開示方法は、本開示の開示される実施形態が、各請求項に明記されるよりも多くの特徴を用いなければならないという意図を反映するものとして解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴に満たない中に存する。したがって、以下の特許請求の範囲が本明細書により発明を実施するための形態に組み入れられ、各特許請求の範囲は個別の実施形態として独立する。

Claims (15)

  1. 情報の1以上の下位ページを1以上の下位ストライプのそれぞれにプログラムすることを含む、前記1以上の下位ストライプを書き込むことと、
    前記情報の1以上の上位ページを上位ストライプにプログラムすることを含む、前記上位ストライプを書き込むことであって、前記1以上の上位ページのそれぞれが、前記1以上の下位ページのうちのそれぞれ1つに対応する、前記上位ストライプを書き込むことと、
    を含み、
    前記1以上の上位ページに対応する前記1以上の下位ページのうちの前記それぞれ1つのそれぞれが、前記1以上の下位ストライプの異なる下位ストライプにプログラムされる、
    ストライプに基づく不揮発性マルチレベルメモリ操作のための方法。
  2. 前記1以上の下位ページを特定の下位ストライプにプログラムすることは、前記1以上の下位ページのうちの特定の1つに、前記特定の下位ストライプの中の前記1以上の下位ページの残りについて、第2レベルの誤り検出情報をプログラムすることを含み、
    前記1以上の下位ページを前記特定の下位ストライプにプログラムすることは、書き込み情報を、前記特定の下位ストライプの中の前記1以上の下位ページの前記残りのうちの少なくとも1つにプログラムすることを含む、
    請求項1に記載の方法。
  3. 前記方法は、前記上位ストライプの書き込み中の誤りに応答して、前記特定の下位ストライプの前記1以上の下位ページの前記残りを再作成することを含む、請求項2に記載の方法。
  4. 前記誤りは、非同期電力サイクルを備える、請求項3に記載の方法。
  5. 前記上位ストライプを書き込むことは、前記1以上の上位ページのそれぞれを実質的に同時にプログラムすることを含む、請求項1に記載の方法。
  6. 前記1以上の下位ストライプのうちの特定の1つを書き込むことは、前記1以上の下位ページを前記1以上の下位ストライプのうちの前記特定の1つに実質的に同時にプログラムすることを含む、請求項5に記載の方法。
  7. 前記1以上の下位ストライプを書き込むことは、下位ストライプ1つあたり、書き込み情報の1つの下位ページだけ、およびパリティ情報の1ページだけをプログラムすることを含み、
    下位ストライプ1つあたりのページ数は、2ページよりも多い、
    請求項1に記載の方法。
  8. 前記方法は、システムデータについて、前記書き込み情報の1つの下位ページだけ、および前記パリティ情報の1ページだけ以外の、前記1以上の下位ストライプの前記ページ数を予約することを含む、請求項7に記載の方法。
  9. 前記1以上の下位ストライプのうちの特定の1つを書き込むことは、異なるチャネルにわたって、書き込み情報の下位ページのうちの前記それぞれ1つのそれぞれ、およびパリティ情報の少なくとも1ページをプログラムすることを含む、請求項1に記載の方法。
  10. メモリシステムであって、
    不揮発性マルチレベルメモリセルを含む1以上のメモリデバイスと、
    複数のチャネルによって前記1以上のメモリデバイスに連結される、メモリコントローラであって、
    それぞれが情報の1以上の下位ページを含む、1以上の下位ストライプを書き込むように、および
    前記情報の1以上の上位ページを含む上位ストライプを書き込むように構成され、前記1以上の上位ページのそれぞれが、前記1以上の下位ページのそれぞれ1つに対応し、前記1以上の上位ページのうちのそれぞれ1つに対応する前記1以上の下位ページのそれぞれが、前記1以上の下位ストライプの異なる下位ストライプにプログラムされる、
    メモリコントローラと、
    を備える、メモリシステム。
  11. 前記メモリコントローラは、前記複数のチャネルのうちの異なる1つにわたって、前記1以上の下位ページストライプのうちの特定の1つの中の前記1以上の下位ページのそれぞれをプログラムするように構成される、請求項10に記載のメモリシステム。
  12. 前記メモリコントローラは、前記複数のチャネルのうちの異なる1つにわたって、前記上位ストライプの中の前記1以上の上位ページのそれぞれをプログラムするように構成される、請求項10に記載のメモリシステム。
  13. 前記メモリコントローラは、前記1以上の上位ページに対応する前記1以上の下位ページのそれぞれを、別個のストライピング操作の一部として、前記1以上の下位ストライプの異なる下位ストライプにプログラムするように構成される、請求項10に記載のメモリシステム。
  14. 前記メモリコントローラは、ホストインターフェースに連結され、前記メモリコントローラは、前記ホストインターフェースから情報を受け取り、前記情報を、前記複数のチャネルにわたって前記1以上のメモリデバイスにストライピングするように構成される、請求項10に記載のメモリシステム。
  15. ストライプサイズは、前記1以上の下位ストライプおよび前記下位ストライプがそのチャネルにわたって書き込まれる、1以上の前記複数のチャネルを備え前記メモリコントローラは、プログラム可能なオプションとして前記ストライプサイズを制御するように構成される、請求項10〜14のいずれか1項に記載のメモリシステム。
JP2013525900A 2010-08-31 2011-08-29 ストライプに基づく不揮発性多値メモリ操作 Active JP5516924B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/872,969 US8417877B2 (en) 2010-08-31 2010-08-31 Stripe-based non-volatile multilevel memory operation
US12/872,969 2010-08-31
PCT/US2011/001519 WO2012030388A2 (en) 2010-08-31 2011-08-29 Stripe-based non-volatile multilevel memory operation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014054794A Division JP5853040B2 (ja) 2010-08-31 2014-03-18 ストライプに基づく不揮発性多値メモリ操作

Publications (2)

Publication Number Publication Date
JP2013536959A JP2013536959A (ja) 2013-09-26
JP5516924B2 true JP5516924B2 (ja) 2014-06-11

Family

ID=45698661

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013525900A Active JP5516924B2 (ja) 2010-08-31 2011-08-29 ストライプに基づく不揮発性多値メモリ操作
JP2014054794A Active JP5853040B2 (ja) 2010-08-31 2014-03-18 ストライプに基づく不揮発性多値メモリ操作

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014054794A Active JP5853040B2 (ja) 2010-08-31 2014-03-18 ストライプに基づく不揮発性多値メモリ操作

Country Status (7)

Country Link
US (2) US8417877B2 (ja)
EP (2) EP3091438B1 (ja)
JP (2) JP5516924B2 (ja)
KR (1) KR101405741B1 (ja)
CN (1) CN103119569B (ja)
TW (1) TWI436213B (ja)
WO (1) WO2012030388A2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5367686B2 (ja) * 2010-12-24 2013-12-11 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
US8694855B1 (en) 2011-11-02 2014-04-08 Pmc-Sierra Us, Inc. Error correction code technique for improving read stress endurance
US8694849B1 (en) * 2011-12-19 2014-04-08 Pmc-Sierra Us, Inc. Shuffler error correction code system and method
US20140219021A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Data protection for unexpected power loss
US8862818B1 (en) * 2012-09-27 2014-10-14 Emc Corporation Handling partial stripe writes in log-structured storage
US9847139B2 (en) 2012-10-01 2017-12-19 Seagate Technology Llp Flash channel parameter management with read scrub
JP2014102610A (ja) * 2012-11-19 2014-06-05 Nippon Hoso Kyokai <Nhk> 記録装置及び記録方法
US8995302B1 (en) 2013-01-16 2015-03-31 Pmc-Sierra Us, Inc. Method and apparatus for translated routing in an interconnect switch
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US9128858B1 (en) 2013-01-29 2015-09-08 Pmc-Sierra Us, Inc. Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US8990661B1 (en) 2013-03-05 2015-03-24 Pmc-Sierra Us, Inc. Layer specific attenuation factor LDPC decoder
US9397701B1 (en) 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US8935598B1 (en) 2013-03-12 2015-01-13 Pmc-Sierra Us, Inc. System and method for adaptive check node approximation in LDPC decoding
US8984376B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for avoiding error mechanisms in layered iterative decoding
US8984365B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9450610B1 (en) 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9235467B2 (en) 2013-03-15 2016-01-12 Pmc-Sierra Us, Inc. System and method with reference voltage partitioning for low density parity check decoding
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US9690489B2 (en) * 2014-03-08 2017-06-27 Storart Technology Co. Ltd. Method for improving access performance of a non-volatile storage device
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
TWI557560B (zh) * 2015-02-12 2016-11-11 慧榮科技股份有限公司 資料儲存裝置以及資料讀取方法
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9687002B2 (en) 2015-05-21 2017-06-27 IndusCo, Ltd. Botanical antimicrobial microemulsions (BAMM)
US9690517B2 (en) * 2015-05-22 2017-06-27 Texas Instruments Incorporated Dual-mode error-correction code/write-once memory codec
US9766837B2 (en) 2015-06-10 2017-09-19 Micron Technology, Inc. Stripe mapping in memory
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
CN108877862B (zh) * 2017-05-10 2021-10-08 北京忆芯科技有限公司 页条带的数据组织以及向页条带写入数据的方法与装置
US11221958B2 (en) 2017-08-29 2022-01-11 Samsung Electronics Co., Ltd. System and method for LBA-based RAID
CN108710579A (zh) * 2018-04-27 2018-10-26 江苏华存电子科技有限公司 一种超过寻址空间大容量的管理方法
US10977181B2 (en) 2019-07-10 2021-04-13 International Business Machines Corporation Data placement in write cache architecture supporting read heat data separation

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1415140A (en) 1922-05-09 Pneumatic tire
US6434576B1 (en) * 1999-08-19 2002-08-13 Sun Microsystems, Inc. Popular-object handling in a train-algorithm-based garbage collector
US6732230B1 (en) 1999-10-20 2004-05-04 Lsi Logic Corporation Method of automatically migrating information from a source to an assemblage of structured data carriers and associated system and assemblage of data carriers
US20020156971A1 (en) 2001-04-19 2002-10-24 International Business Machines Corporation Method, apparatus, and program for providing hybrid disk mirroring and striping
US6742081B2 (en) 2001-04-30 2004-05-25 Sun Microsystems, Inc. Data storage array employing block checksums and dynamic striping
US7380157B2 (en) 2004-10-27 2008-05-27 Pillar Data Systems, Inc. Staggered writing for data storage systems
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
KR100666174B1 (ko) 2005-04-27 2007-01-09 삼성전자주식회사 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법
US7852761B2 (en) 2006-09-07 2010-12-14 Sap Ag Duty cycle control for networks of nodes
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7701765B2 (en) 2006-12-28 2010-04-20 Micron Technology, Inc. Non-volatile multilevel memory cell programming
US20100325342A1 (en) 2007-07-20 2010-12-23 Panasonic Corporation Memory controller and nonvolatile storage device using same
US7873803B2 (en) * 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
TWI373045B (en) 2008-01-07 2012-09-21 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
CN101499315B (zh) * 2008-01-30 2011-11-23 群联电子股份有限公司 快闪存储器平均磨损方法及其控制器
WO2009114618A2 (en) * 2008-03-11 2009-09-17 Agere Systems Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
WO2009139115A1 (ja) 2008-05-12 2009-11-19 パナソニック株式会社 半導体記録装置
JP2010020648A (ja) * 2008-07-12 2010-01-28 Hitachi Ulsi Systems Co Ltd 記憶装置
JP2010020715A (ja) * 2008-07-14 2010-01-28 Toshiba Corp 半導体メモリコントローラおよび半導体メモリシステム
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
KR101541736B1 (ko) 2008-09-22 2015-08-04 삼성전자주식회사 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법
US7852671B2 (en) 2008-10-30 2010-12-14 Micron Technology, Inc. Data path for multi-level cell memory, methods for storing and methods for utilizing a memory array
KR20100050789A (ko) 2008-11-06 2010-05-14 삼성전자주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
JP4439578B1 (ja) * 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
TWI385527B (zh) 2009-02-10 2013-02-11 Phison Electronics Corp Mlc nand型快閃記憶體儲存系統及其控制器與存取方法
US8566508B2 (en) * 2009-04-08 2013-10-22 Google Inc. RAID configuration in a flash memory data storage device
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP2011044200A (ja) * 2009-08-20 2011-03-03 Toshiba Corp 不揮発性半導体記憶装置
JP4956593B2 (ja) * 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
JP5789767B2 (ja) * 2009-11-25 2015-10-07 パナソニックIpマネジメント株式会社 半導体記録装置及び半導体記録装置の制御方法
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
US8489979B2 (en) * 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks

Also Published As

Publication number Publication date
US20120054413A1 (en) 2012-03-01
US20130339580A1 (en) 2013-12-19
TWI436213B (zh) 2014-05-01
CN103119569A (zh) 2013-05-22
EP3091438B1 (en) 2018-01-31
KR20130041341A (ko) 2013-04-24
WO2012030388A2 (en) 2012-03-08
EP3091438A1 (en) 2016-11-09
US8417877B2 (en) 2013-04-09
EP2612247B1 (en) 2016-06-08
JP5853040B2 (ja) 2016-02-09
US9235503B2 (en) 2016-01-12
EP2612247A2 (en) 2013-07-10
TW201229757A (en) 2012-07-16
JP2014160478A (ja) 2014-09-04
KR101405741B1 (ko) 2014-06-10
CN103119569B (zh) 2016-08-31
JP2013536959A (ja) 2013-09-26
WO2012030388A3 (en) 2012-05-24
EP2612247A4 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
JP5853040B2 (ja) ストライプに基づく不揮発性多値メモリ操作
US11042441B2 (en) Stripe mapping in memory
US9298545B2 (en) Data protection across multiple memory blocks
US8977813B2 (en) Implementing RAID in solid state memory
US8266501B2 (en) Stripe based memory operation
US20110099458A1 (en) Error detection/correction based memory management
JP5908106B2 (ja) 妥当性マスクを記憶する装置および方法ならびに操作装置
US10990476B2 (en) Memory controller and method of operating the same

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140318

R150 Certificate of patent or registration of utility model

Ref document number: 5516924

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250