JP2016504658A - メモリのための整形符号 - Google Patents

メモリのための整形符号 Download PDF

Info

Publication number
JP2016504658A
JP2016504658A JP2015542819A JP2015542819A JP2016504658A JP 2016504658 A JP2016504658 A JP 2016504658A JP 2015542819 A JP2015542819 A JP 2015542819A JP 2015542819 A JP2015542819 A JP 2015542819A JP 2016504658 A JP2016504658 A JP 2016504658A
Authority
JP
Japan
Prior art keywords
digit
data
pattern
received
mapping
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.)
Granted
Application number
JP2015542819A
Other languages
English (en)
Other versions
JP6059358B2 (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 JP2016504658A publication Critical patent/JP2016504658A/ja
Application granted granted Critical
Publication of JP6059358B2 publication Critical patent/JP6059358B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • 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
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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
    • 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
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50016Marginal testing, e.g. race, voltage or current testing of retention
    • 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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic

Landscapes

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

Abstract

メモリのための整形符号に関連する装置および方法が提供される。例示的な一装置は、メモリセルのアレイと、受信ディジットパターンと整形ディジットパターンとのマッピングに従って複数の受信ディジットパターンの各々を符号化するように構成された、アレイに結合する整形部とを備える。受信ディジットパターンと整形ディジットパターンとのマッピングは、整形ディジットパターンの連続するディジットのうち、特定のディジット値を有することが可能なディジットの数を、上限数に制限する整形制約に従う。【選択図】図1

Description

本開示は一般に、半導体メモリデバイスおよび方法に関し、詳細には、メモリのための整形符号に関する。
メモリデバイスは通常、コンピュータや他の電子装置において内部半導体集積回路として設けられる。揮発性メモリおよび不揮発性メモリなどのさまざまなメモリが存在する。揮発性メモリは、自身のデータ(例えば、ユーザデータ、エラーデータ等)を保持するために電力を必要とすることがあり、特に、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、およびシンクロナスダイナミックランダムアクセスメモリ(SDRAM)を含む。不揮発性メモリは、非電力供給時に記憶されたデータを保持することによって永続的データを提供することができ、特に、NANDフラッシュメモリ、NORフラッシュメモリ、読取専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、および、例えば位相変化ランダムアクセスメモリ(PCRAM)、抵抗型ランダムアクセスメモリ(RRAM)、および磁気抵抗型ランダムアクセスメモリ(MRAM)などの抵抗変化型メモリを含んでよい。
メモリは、広範囲の電子用途のための揮発性および不揮発性データ記憶装置として用いられる。不揮発性メモリ(例えば、NANDフラッシュメモリ、NORフラッシュメモリ等)は、例えばラップトップコンピュータ、ソリッドステートドライブ(SSD)、ポータブルメモリスティック、デジタルカメラ、携帯電話、MP3再生機器などのポータブル音楽再生機器、動画再生機器、および他の電子装置などのポータブル電子装置において用いられうる。メモリセルはアレイ状に配置され、アレイはメモリデバイス内で用いられる。
一部のメモリセルは、行われたプログラムおよび/または消去サイクルの回数に基づく摩耗を示す。すなわち、メモリセル性能は、反復使用によって低下しうる。この低下は、例えばデータ保持力の低下といった問題を招きうる。
本開示の多くの実施形態に係る、メモリのための整形コードを実現するように構成された少なくとも1つのメモリシステムを含むコンピューティングシステムの形態の装置のブロック図である。 本開示の多くの実施形態に従って使用可能なメモリセルのアレイを備えるメモリの一部の概略図である。 本開示の多くの実施形態に係る、メモリセルのプログラムに関連する図を示す。 本開示の多くの実施形態に係る、受信ディジットパターンと整形ディジットパターンとのマッピングを示す。 従来技術に従ってプログラムされたメモリセルに関連する記憶済みディジットパターンの割合を示す図である。 図4に示すマッピングに従ってプログラムされたメモリセルに関連する記憶済みディジットパターンの割合を示す図である。 本開示の多くの実施形態に係る、メモリのための整形コードに関連する装置の一部のブロック図である。 本開示の多くの実施形態に係る、メモリのための整形コードに関連する装置の一部のブロック図である。
例示的な一装置は、メモリセルのアレイと、アレイに連結され、受信ディジットパターンと整形ディジットパターンとのマッピングに従って複数の受信ディジットパターンの各々を符号化するように構成された整形部とを備える。受信ディジットパターンと整形ディジットパターンとのマッピングは、特定のディジット値を有することが可能な整形ディジットパターンの連続するディジット量を、上限数に制限する整形制約に従う。
本開示の多くの実施形態は、プログラムされたデータ状態を、より低い閾値電圧レベルに対応するデータ状態に偏らせることができる符号化処理を含んでよく、これは、様々な利点のうち特に、従来アプローチと比べて向上したデータ保持率を提供することができる。向上したデータ保持率は、例えば様々な利点のうち特に、メモリデバイスの使用寿命を長くすることができる。
下記に示す本開示の詳細な説明において、本明細書の一部を構成する添付図面が参照され、添付図面には、本開示の1以上の実施形態をどのように実行しうるかが例示的に示される。これらの実施形態は、当業者が本開示の実施形態を実行することができるように十分に詳細に説明され、他の実施形態を用いてもよいこと、および、プロセスの変更、電気的変更、および/または構成的変更が本開示の範囲から逸脱することなく行われうることを理解すべきである。本明細書で用いられる場合、「M」および「N」という番号は、特に図面における参照符号に関して、複数のそう示された特定の特徴が含まれうることを示す。本明細書で用いられる場合、「複数の」特定の物事は、1以上のそのような物事を示してよい(例えば、複数のメモリデバイスは、1以上のメモリデバイスを示してよい)。
本明細書における図面は、番号付けの慣習に従い、最初の数字が図面の番号に対応し、その他の数字が図面内の要素または構成要素を特定する。異なる図面における同様の要素または構成要素は、同様の数字を用いて特定されうる。例えば、110は図1の要素「10」を示し、同様の要素が図2では210と示されうる。当然、本明細書の様々な実施形態において示される要素は、本開示の複数の追加の実施形態を提供するために追加、交換、および/または削除することができる。更に、当然、図面に提供された要素のサイズおよび相対的大きさは、本開示の特定の実施形態を例示することが意図されており、限定的意味に捉えるべきではない。
図1は、本開示の多くの実施形態に係る、メモリのための整形コードを実装するように構成された少なくとも1つのメモリシステム104を含むコンピューティングシステム100の形式である装置のブロック図である。本明細書で用いられる場合、メモリシステム104、コントローラ108、またはメモリデバイス110は、単独で「装置」とみなされることもある。メモリシステム104は、例えばソリッドステートドライブ(SSD)であってよく、ホストインタフェース106、コントローラ108(例えば、プロセッサおよび/または他の制御回路)、およびメモリ110と示されうる複数のメモリデバイス110を含んでよい。メモリ110は、例えば、メモリシステム104に関する記憶ボリュームを提供する、NANDフラッシュデバイスなどの複数のソリッドステートメモリデバイスを備えてよい。
コントローラ108は、複数のチャネルを介してホストインタフェース106およびメモリ110に接続され、メモリシステム104とホスト102との間でデータを転送するために用いられうる。インタフェース106は、標準化インタフェースの形式であってよい。例えば、コンピューティングシステム100においてメモリシステム104がデータ記憶のために用いられる場合、インタフェース106は、様々なコネクタおよびインタフェースのうち特に、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)、PCIExpress(PCIe)、またはユニバーサル・シリアル・バス(USB)であってよい。しかし、一般に、インタフェース106は、インタフェース106用に準拠したレセプタを有するホスト102とメモリシステム104との間で制御信号、アドレス信号、データ信号、および他の信号を受け渡すためのインタフェースを提供することができる。
ホスト102は、様々な種類のホストのうち特に、例えばパーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、またはメモリカードリーダなどのホストシステムであってよい。ホスト102は、システムマザーボードおよび/またはバックプレーンを含んでよく、複数のメモリアクセスデバイス(例えば、複数のプロセッサ)を含んでよい。例えばメモリシステム104がメモリデバイス(例えば、オンダイコントローラを有するメモリデバイス)である場合などのように、ホスト102はメモリコントローラであってもよい。
コントローラ108は、様々な動作のうち特に、データの読取り、書入れ、および消去動作を制御するために(いくつかの実施形態では1つのダイ上の複数のメモリアレイであってよい)メモリ110と通信することができる。一例として、コントローラ108は、メモリ110に対応するダイと同じダイあるいは異なるダイ上にあってよい。
特に図示されないが、コントローラ108は、コントローラ108とメモリ110とを結合する各チャネルについて個別のメモリチャネルコントローラを含んでよい。コントローラ108は、例えば、メモリ110へのアクセスを制御するためおよび/またはホスト102とメモリ110との間のデータ転送を可能にするためにハードウェアおよび/またはファームウェア(例えば、1以上の集積回路)および/またはソフトウェアの形式で複数の構成要素を含みうる。
図1に示すように、コントローラ108は、エラー訂正部112(ECC ENCODER/DECODER)および整形部114(SHAPING ENCODER/DECODER)を含んでよい。エラー訂正部112は、例えば、様々な種類のエラー訂正回路のうち特に、BCHエラー訂正回路およびリードソロモンエラー訂正回路を含むグループの1つなどの代数的エラー訂正回路を含んでよい。整形部114は、例えば、本明細書で詳述するような、受信ディジットパターンと整形ディジットパターンとのマッピングに従って受信ディジットパターン(例えば、ホスト102から受信され、メモリ110へ書き入れられるデータ)を符号化するように構成された回路を含んでよい。整形部114(例えば、整形エンコーダおよび/またはデコーダ)は、受信ディジットパターン(例えば、上記マッピングに従って符号化された、メモリ110から読み取られたデータ)を復号するように構成された回路も含みうる。例示的なマッピングが図4に関して詳述される。本明細書に記載する例では「ビット」という用語が用いられるが、実施形態は2進数システムに限定されない。
エラー訂正部112および整形部114の各々は、例えば特定用途向け集積回路(ASIC)などの個別部品であってよく、あるいはそれらの構成要素は、必ずしもコントローラ108の他の部分と別個の物理的形状を有する必要はなくコントローラ108内の回路によって提供される機能を示してよい。図1ではコントローラ108内の構成要素として図示されるが、エラー訂正部112および整形部114の各々は、コントローラ108に外付けされるか、あるいは、コントローラ108内に存在する複数の構成要素およびコントローラ108の外部に存在する複数の構成要素を有してもよい。図6Aおよび6Bに示すように、エラー訂正部112および整形部114は、多くの実施形態において、個別の符号化部および復号部を備えてよい。
メモリ110は、メモリセル(例えば、不揮発性メモリセル)の複数のアレイを含んでよい。アレイは、例えばNAND構造を有するフラッシュアレイであってよい。しかし、実施形態は、特定の種類のメモリアレイやアレイ構造に限定されない。本明細書ではNAND構造における浮遊ゲート型フラッシュメモリセルが一般に言及されるが、実施形態はそれらに限定されない。メモリセルは、例えば、複数の物理ページを含む複数のブロックにグループ分けされうる。複数のブロックはメモリセルのプレーンに含まれ、アレイは複数のプレーンを含んでよい。一例として、メモリデバイスは、ページごとに8KB(キロバイト)のユーザデータ、ブロックごとに128ページのユーザデータ、プレーンごとに2048ブロック、およびデバイスごとに16プレーンを記憶するように構成されうる。
動作時に、データは、例えばデータのページとしてメモリ110へ書き入れられ、および/またはメモリ110から読み取られうる。その場合、データのページは、メモリシステムのデータ転送サイズと称されうる。データは、セクタ(例えば、ホストセクタ)と称されるデータセグメントでホスト(例えば、ホスト102)へ/ホストから送信されうる。その場合、データのセクタは、ホストのデータ転送サイズと称されうる。
多くの実施形態によると、コントローラ108は、受信ビットパターンと整形ビットパターンとのマッピングに従って複数の受信ビットパターンの各々の符号化を制御するように構成されうる。ここで、受信ビットパターンと整形ビットパターンとのマッピングは、第1のビット値を有する整形ビットパターンの連続するビットの上限数を含む整形制約に従う。コントローラ108は、符号化された複数の受信ビットパターンの、メモリセルのグループ(例えば、メモリ110に関連するメモリセルのページ)へのプログラムを制御することもできる。本明細書で詳述するように、符号化ビットパターンに関連する整形制約の結果、例えば一様にランダムなビットパターンと比べて、低い閾値電圧(Vt)レベルに対応するプログラム済みデータ状態の割合が偏りうる。
図2は、本開示の多くの実施形態に従って使用可能なメモリセルのアレイを備えるメモリ210の一部の概略図である。図2の実施形態は、NAND構造不揮発性メモリアレイを示す。しかし、本明細書に記載する実施形態は、この例に限られない。図2に示すように、メモリアレイは、アクセス線(例えば、ワード線205−1,…,205−N)と、それに交差するデータ線(例えば、ローカルビットライン207−1,207−2,207−3,…,207−M)とを含む。デジタル環境に対処しやすいように、ワード線205−1,…,205−Nの数と、ローカルビットライン207−1,207−2,207−3,…,207−Mの数とは、2のべき乗(例えば、256ワード線×4096ビットライン)であってよい。
メモリアレイは、NANDストリング209−1,209−2,209−3,…,209−Mを含む。各NANDストリングは、各々がそれぞれのワード線205−1,…,205−Nと通信可能に結合される不揮発性メモリセル211−1,…,211−Nを含む。各NANDストリング(およびそれを構成するメモリセル)は、ローカルビットライン207−1,207−2,207−3,…,207−Mにも関連する。各NANDストリング209−1,209−2,209−3,…,209−Mのメモリセル211−1,…,211−Nは、ソース選択ゲート(SGS)(例えば、電界効果トランジスタ(FET)213)とドレイン選択ゲート(SGD)(例えば、FET219)との間でソースからドレインへ連続して結合される。各ソース選択ゲート213は、ソース選択ライン217における信号に応答して共通ソース223へそれぞれのNANDストリングを選択的に結合するように構成され、一方、各ドレイン選択ゲート219は、ドレイン選択ライン215における信号に応答してそれぞれのビットラインへそれぞれのNANDストリングを選択的に結合するように構成される。
図2に示す実施形態に示すように、ソース選択ゲート213のソースは、共通ソースライン223に結合する。ソース選択ゲート213のドレインは、対応するNANDストリング209−1のメモリセル211−1のソースに結合する。ドレイン選択ゲート219のドレインは、ドレインコンタクト211−1において、対応するNANDストリング209−1のビットライン207−1に結合する。ドレイン選択ゲート219のソースは、対応するNANDストリング209−1の最後のメモリセル211−N(例えば、浮遊ゲート型トランジスタ)のドレインに結合する。
多くの実施形態において、不揮発性メモリセル211−1,…,211−Nの構造は、ソース、ドレイン、浮遊ゲートまたは他の電荷蓄積構造、および制御ゲートを含む。メモリセル211−1,…,211−Nは、ワード線205−1,…,205−Nにそれぞれ結合する制御ゲートを有する。NORアレイ構造は、メモリセルのストリングが選択ゲート間で並列に結合される点を除き、同様に配置される。更に、NOR構造は、(例えば、NAND構造を用いた場合のページベースのアクセスとは対照的に)アレイ内のメモリセルへのランダムなアクセスを提供することができる。
動作時に、選択されたワード線(例えば、205−1,…,205−N)に結合する複数のセルは、グループとして同時に書入れおよび/または読取りされうる。同時に書入れおよび/または読取りされるセルのグループは、セルのページと称され、複数のページのデータを記憶することができる。例えば、以下で図3に関連して詳述するように、メモリセル211−1,…,211−Nは、データの複数のディジット(例えば、ビット)を記憶するように構成されたマルチレベルセルであってよい。いくつかのそのような例において、各マルチレベルセルに記憶されたビットは、データの異なるページに対応しうる。例えば、2ビットセルの第1のビットはデータの第1のページ(例えば、下側ページ)に対応し、2ビットセルの第2のビットはデータの第2のページ(例えば、上側ページ)に対応してよい。セルごとに2を超えるビットを記憶しているセルは、データの下側ページに対応する第1のビット、データの上側ページに対応する第2のビット、およびデータの1以上の中間ページに対応する1以上の追加のビットを備えうる。特定のワード線に結合され、それぞれのデータ状態に同時にプログラムされる複数のセルは、ターゲットページと称されうる。プログラム動作は、選択されたワード線に結合する選択されたセルの閾値電圧(Vt)を、ターゲットデータ状態に対応する所望の電圧レベルまで増加させるために、選択されたワード線に複数のプログラムパルス(例えば、16V−20V)を印加することを含んでよい。
読取り動作は、選択されたセルの状態を決定するために、選択されたセルに結合するビットラインの電圧および/または電流の変化を感知することを含んでよい。読取り動作は、ビットラインをプリチャージすること、および選択されたセルが伝導し始めると放電を感知することを含んでよい。ある種類の読取り動作は、選択されたワード線にランピング読取り信号を適用することを備え、他の種類の読取り動作は、セルの状態を決定するために選択されたワード線に複数の個別の読取り信号を適用することを備える。
図3は、本開示の多くの実施形態に係る、メモリセルのプログラムに関連する図を示す。この例において、メモリセルは3ビットメモリセルであり、各セルは、各々が異なる3ビットの記憶済みビットパターン(例えば、111,011,001,101,100,000,010,110)を示す8つのデータ状態(例えば、L1〜L8)のうちの1つにプログラムすることができる。多くの実施形態において、3ビットの記憶済みビットパターンにおけるビットの各々は、データの異なるページに対応する。例えば、最下位ビット(LSB)(図3に四角で囲って示す右端のビット)はデータの第1のページ(例えば、データの下側ページ)に関与し、中間ビットはデータの第2のページ(例えば、データの中間ページ)に関与し、最上位ビット(MSB)(図3に菱形で囲って示す左端のビット)はデータの第3のページ(例えば、データの上側ページ)に関与しうる。このように、セルのページは、この例では3ページのデータを記憶することができる。
しかし、実施形態は、3ビットのデータを記憶するマルチレベルメモリセルに限定されない。例えば、多くの実施形態は、3ビットよりも多いまたは少ないデータ、および/または分数ビットのデータを記憶するように構成されたメモリセルを含んでよい。また、実施形態は、データ状態L1〜L8に割り当てられた特定のビット値に限定されない。
図3に示す図は、下側ページプログラム(LPP)処理325、中間ページプログラム(MPP)処理327、および上側ページプログラム(UPP)処理329の後の複数のセルの閾値電圧(Vt)分布を示す。当業者には、NANDフラッシュメモリセルが、新たなデータをプログラムされる前に消去されうることが分かるであろう。
LPP処理325の一部として、メモリセルのVtは、Vt分布330−1、・・、330−2によって表される2つのレベルのうちの1つに(例えば、選択されたワード線に印加されるプログラムパルスによって)調整される。電圧レベルはVt分布によって表され、これは、特定のレベルにプログラムされたセルの統計的平均Vtレベルを示しうる。この例において、下側ページが「1」のビット値(例えば、LP=1)を記憶するセルは、LPP処理325中に分布330−1にプログラムされ、下側ページが「0」のビット値(例えば、LP=0)を記憶するセルは、LPP処理325中に分布330−2にプログラムされる。
MPP処理327の一部として、メモリセルのVtは、Vt分布332−1,332−2,332−3,332−4によって表される4つのレベルのうちの1つに調整される。この例において、中間ページが「1」のビット値(例えば、MP=1)を記憶するセルは、MPP処理327中に分布332−2および332−3の1つにプログラムされ、中間ページが「0」のビット値(例えば、MP=0)を記憶するセルは、MPP処理327中に分布332−1,332−4の1つにプログラムされる。
UPP処理329の一部として、メモリセルのVtは、データ状態L1〜L8にそれぞれ対応するVt分布334−1〜334−8によって表される8つのレベルのうちの1つに調整され、データ状態L1〜L8の各々は異なる3ビットの記憶済みビットパターンを示す。この例において、データ状態L1にプログラムされたセルはデータ「111」を記憶し、データ状態L2にプログラムされたセルはデータ「011」を記憶し、データ状態L3にプログラムされたセルはデータ「001」を記憶し、データ状態L4にプログラムされたセルはデータ「101」を記憶し、データ状態L5にプログラムされたセルはデータ「100」を記憶し、データ状態L6にプログラムされたセルはデータ「000」を記憶し、データ状態L7にプログラムされたセルはデータ「010」を記憶し、データ状態L8にプログラムされたセルはデータ「110」を記憶する。
動作時に、高いVtレベルにプログラムされたセルは、低いVtレベルにプログラムされたセルと比べて増加した保持ノイズを有しうる。例えば、データ状態L7およびL8にプログラムされたセルのVtは、データ状態L1およびL2にプログラムされたセルのVtと比べて転換時間が長くなる傾向がある。そのため、保持ノイズは、記憶済みビットパターンを、より低いVtレベルに対応する記憶済みビットパターンに偏らせる符号化スキームを提供することによって、低減することができる。図3に示す例において、ビットパターン「100」,「000」,「010」,「110」を記憶するメモリセル(例えば、それぞれデータ状態L5,L6,L7,L8にプログラムされたセル)は、下側ページがビット値「0」を記憶するセルに対応する。ビットパターン「111」,「011」,「001」,「101」を記憶するメモリセル(例えば、それぞれデータ状態L1,L2,L3,L4にプログラムされたセル)は、下側ページがビット値「1」を記憶するセルに対応する。従って、自身の下側ページにビット値「1」を記憶するセル(例えば、LPP処理325の間、Vt分布330−1にプログラムされるセル)は、自身の下側ページにビット値「0」を記憶するセル(例えば、LPP処理325の間、Vt分布330−2にプログラムされたセル)よりも低いVtレベルを有する。(例えば、ホストから)一様にランダムなデータを受信した場合、受信データは50%が「1」を含み、50%が「0」を含むと予想される。このように、図3に示すプログラム処理によると、セルの50%(例えば、自身の下側ページにビット値「1」を記憶するセル)がデータ状態L1〜L4の1つにプログラムされ、セルの50%(例えば、自身の下側ページにビット値「0」を記憶するセル)がデータ状態L5〜L8の1つにプログラムされることになる。更に、受信データがデータの下側ページとしてセルのグループにプログラムされる場合、セルの50%がVt分布330−1にプログラムされ、セルの50%がVt分布330−2にプログラムされることになる。
従って、保持ノイズは、受信ビットパターンと整形ビットパターンとのマッピングに従って受信ビットパターンを符号化することによって低減することができ、それによって、符号化されたビットパターンが、データのページの少なくとも一部(例えば、下側ページ)としてセルのグループ(例えば、ページ)にプログラムされると、下側ページが第1のビット値(例えば、「1」)にプログラムされたセルの割合は、下側ページが第2のビット値(例えば、「0」)にプログラムされたセルの割合と比べて、(例えば、低い閾値電圧レベルに対応する記憶済みビットパターンに対応するビット値に)偏る。
受信ディジット(例えば、ビット)パターンと整形ディジット(例えば、ビット)パターンとのマッピングの例が図4に関連して詳述される。多くの実施形態において、マッピングは、特定のビット値を有することができる整形ビットパターンの連続ビットの数を上限数に制限する整形制約に従う。例えば、セルのプログラムを、より低いVtレベルに対応するデータ状態に偏らせるために、整形制約は、整形ビットパターン内の連続する「0」の数を制限してよい。一例として、整形制約は(x,k)によって表すことができ、「x」は特定のビット値(例えば、「0」または「1」)であり、「k」は、ビット値「x」を有する整形ビットパターンにおいて連続するビットの上限(例えば、最大)数である。例えば、(0,2)の整形制約は、一連の整形ビットパターンにおける連続する「0」の最大数が2であることを示すことができる。同様に、(1,4)の整形制約は、一連の整形ビットパターンにおける連続する「1」の最大数が4であることを示すことができる。実施形態は、特定の値の「k」に限定されない。例えば、多くの実施形態において、「k」は4以下の値を有する。
多くの実施形態において、メモリセルのグループの下側ページに書き入れられる受信ビットパターンのみが、受信ビットパターンと整形ビットパターンとのマッピングに従って符号化される。例えば、コントローラ(例えば、図1に示すコントローラ108)は、受信データがデータの下側ページ、データの中間ページ、またはデータの上側ページのいずれとしてメモリセルのグループに書き入れられるかを判定するように構成される。多くの実施形態において、受信データは、データがデータの下側ページとしてセルのグループに書き入れられると判定された場合のみ、マッピングに従って符号化される。そのような実施形態において、メモリセルのグループの上側ページに書き入れられる受信データおよび1以上の中間ページに書き入れられる受信データは、マッピングに従って符号化されない。しかし、実施形態はそのように限定されない。例えば、多くの実施形態において、メモリセルのグループの上側ページに書き入れられるデータおよび/またはメモリセルのグループの1以上の中間ページに書き入れられるデータが、受信ビットパターンと整形ビットパターンとのマッピングを用いて符号化されうる。受信ビットパターンと整形ビットパターンとのマッピングは、下側ページに書き入れられるビットパターンに関して、メモリセルのグループの中間ページおよび/または上側ページに書き入れられるビットパターンに関するマッピングとは異なりうる。
一例として、受信ビットパターンとマッピングビットパターンとのマッピングは、一定の数のMビットの受信ビットパターンおよび対応する一定の数のNビットの整形ビットパターンを備えてよい。多くの実施形態において、NはMより大きい。また、多くの実施形態において、NはM+1に等しくなりうる。例えば、図4は、16の4ビット受信ビットパターン442と、対応する16の5ビット整形ビットパターン444との間のマッピング440を示す。受信ビットパターン442は、例えば、ホスト(例えば、図1に示すホスト102)から(例えば、図1に示すコントローラ108などのコントローラへ)入来するデータを表しうる。図4に示すように、各4ビットの受信ビットパターン442は、特定の5ビットの整形ビットパターン444に対応する。この例において、マッピング440は(0,2)の整形制約に従う。すなわち、整形ビットパターン444のうち、2より多くの連続するデータ値「0」を含むものはない。マッピング440に対応する(0,2)の整形制約は、整形ビットパターン444のストリングが2より多くの連続するデータ値「0」を含まないことも保証する。
動作時に、受信データ(例えば、複数の受信4ビットビットパターン442)は、マッピング440に従って符号化され、その後、符号化されたデータ(例えば、複数の整形5ビットビットパターン444)がメモリ(例えば、図1に示すメモリ110および図2に示すメモリ210)にプログラムされる。そのように、図4に示すこのマッピング例は、4/5(80%)のコードレートを実現する。すなわち、特定の量のデータを表すために20%多くのビットを要するので、マッピング440に関連する1/5(20%)のオーバヘッドが存在する。しかし、マッピング440が概ね一様にランダムなデータに適用されると、(例えば、符号化されていない一様にランダムなデータの場合の「0」と「1」との50/50の混合と比較して)符号化データにおいて約62%の「1」および約38%の「0」が生じる。このように、マッピング440が、データの下側ページのプログラム(例えば、図3に示すLPP処理325)に関連して用いられると、例えば、約62%のセルが自身の下側ページに「1」を記憶し、約38%が自身の下側ページに「0」を記憶する。従って、マッピング440が、セルの上側ページや中間ページのプログラムに関して用いられなくても、セルの記憶済みビットパターンは、(例えば、上側ページのプログラム後、)LSB(例えば、下側ページ)が「1」のビット値を有する記憶済みビットパターンに(例えば、より低いVtレベルに対応するデータ状態に)偏る。
実施形態は、図4に示すマッピング440に限定されない。例えば、(0,2)の整形制約を実現するためにマッピング440以外のマッピングを用いることができ、実施形態は特定の整形制約に限定されない。以下の表1に示すように、特定の整形制約によって実現可能なコードレートは、「k」の値が増加すると、増加する。例えば、表1に示すように、「0」のビット値を有することができる整形ビットパターンにおける連続ビットの最大数の上限が増加すると、特定の「k」値によって実現可能な最大コードレートが増加する。
Figure 2016504658
このように、より大きい「k」値を有する整形制約が提供されると、可能となる最大コードレートが増加し、マッピングに関連するオーバヘッドを低減することができる。しかし、より大きい「k」値を有する整形制約が提供されると、符号化されたビットパターンにおける「1」と「0」との割合が50/50に近づくので、関連するマッピングの、プログラム済みデータを(例えば、より低いVtレベルに)偏らせる能力も低下する。一例として、(0,4)制約に従う、16ビットの受信ビットパターンと17ビットの整形ビットパターンとのマッピングは、約94%(16/17)のコードレートを実現し、符号化データにおける約57%の「1」および約43%の「0」の分布を実現することができる。このように、16:17のマッピングは、図4に示す4:5のマッピング440よりも高いコードレートを実現するが、符号化データにおける「1」/「0」の偏りの量は少なくなる(例えば、57/43対62/38)。
図5Aは、従来技術に従ってプログラムされたメモリセルに関連する記憶済みビットパターンの割合を示す図550である。図5Aに示す例は、各々が異なる3ビットの記憶済みビットパターンを表す8つのデータ状態の1つにプログラムされたメモリセルに対応する。メモリセルは、図3に関連して説明したような下側ページ、中間ページ、および上側ページのプログラム処理を介してプログラムされうる。下側ページのプログラム中、セルは、2つのVtレベルの1つ(例えば、一様にランダムなデータを仮定すると、各Vtレベルに50%ずつ)にプログラムされる。中間ページのプログラム中、セルは、4つのVtレベルの1つ(例えば、一様にランダムなデータを仮定すると、各Vtレベルに25%ずつ)にプログラムされる。上側ページのプログラム中、セルは、8つのVtレベルの1つ(例えば、一様にランダムなデータを仮定すると、各Vtレベルに12.5%
ずつ)にプログラムされる。このように、8つの異なる3ビットのビットパターンの各々を記憶するセルの割合は、図5Aに示すように、12.5%である。
図5Bは、図4に示すマッピングに従ってプログラムされたメモリセルに関連する記憶済みビットパターンの割合を示す図560である。このように、図5Bに示す例は、各々が異なる3ビットの記憶済みビットパターンを表す8つのデータ状態の1つにプログラムされたメモリセルに対応する。メモリセルは、図3に関連して説明したように、下側ページ、中間ページ、および上側ページのプログラム処理を介してプログラムすることができる。しかし、多くの実施形態において、セルの下側ページ、中間ページ、および上側ページのうち少なくとも1つに書き入れられる受信ビットパターンは、本明細書に記載する実施形態に従って符号化される。例えば、図5Bに示す例において、受信ビットパターン(例えば、受信ビットパターン442)は、(0,2)の設計制約に従う図4に示すマッピング440に従って符号化される。そのように、下側ページのプログラム処理中、符号化されたビットパターン(例えば、整形ビットパターン444)が、メモリセルのグループ(例えば、ページ)の下側ページに書き入れられる。マッピング440に関連する符号化により、下側ページのデータ値「1」を有するセルと、データ値「0」を有するセルとの割合は、(例えば、一様にランダムな受信データを仮定すると)約62.4%/37.6%である。
上述したように、マッピング440は、より低いVtレベルに対応する記憶済みビットパターンに(例えば、この例ではビットパターン「111」,「011」,「001」,「101」に)、記憶済みビットパターンを偏らせることができる。セルの中間ページおよび上側ページに書き入れられる受信ビットパターンがマッピング440に従って符号化されない(例えば、下側ページに書き入れられるデータのみがマッピング440に従って符号化される)と仮定すると、記憶済みビットパターンの割合は、図560に示すようになる。すなわち、セルのグループの約15.6%がビットパターン「111」を記憶し、セルのグループの約15.6%がビットパターン「011」を記憶し、セルのグループの約15.6%がビットパターン「001」を記憶し、セルのグループの約15.6%がビットパターン「101」を記憶し、セルのグループの約9.4%がビットパターン「100」を記憶し、セルのグループの約9.4%がビットパターン「000」を記憶し、セルのグループの約9.4%がビットパターン「010」を記憶し、セルのグループの約9.4%がビットパターン「110」を記憶する。このように、図5Aの従来技術例と比べると、図5Bに示したような本開示の多くの実施形態に従ってプログラムされたセルは、低いVtレベルに対応するデータ状態にプログラムされたセルの割合が高くなりうる。従って、本開示の実施形態は、様々な利点のうち特に、従来のアプローチに比べてデータ保持ノイズの比率を低減することができる。
図6Aおよび6Bは、本開示の多くの実施形態に係る、メモリのための整形コードに関連する装置の一部のブロック図をそれぞれ示す。図6Aおよび6Bに示す例は、エラー訂正コード(ECC)エンコーダ612−1、整形エンコーダ614−1、メモリ610、整形デコーダ614−2、およびECCデコーダ612−2を含む。
ECCエンコーダ612−1は、様々な種類のエラー訂正回路のうち特に、例えばBCHエラー訂正回路およびリードソロモンエラー訂正回路を含むグループの1つなどの代数的エラー訂正回路を備えてよい。ECCエンコーダ612−1は、例えば、受信した入来ビットパターンにパリティビットを加えることができる。ECCデコーダ612−2は、受信したECC符号化データを復号することができる。
整形エンコーダ614−1は、例えば、上述したように受信ビットパターンと整形ビットパターンとのマッピングに従って受信ビットパターンを符号化するように構成された回路を含んでよい。整形デコーダ614−2はまた、受信ビットパターン(例えば、上述したマッピングに従って符号化されたメモリ610から読み取ったデータ)を復号するように構成された回路を含んでよい。
図6A,6Bにおいて、矢印603−1は、メモリ610へ書き入れられる、ホスト(例えば、図1に示すホスト102)からの入来データを表す。装置680において、入来データ603−1は、整形エンコーダ614−1によって符号化される前にECCエンコーダ612−1によって符号化され、その後、符号化されたデータがメモリ610へ書き入れられる。このように、ECCエンコーダ612−1を介してデータ603−1に追加されるエラー訂正データ(例えば、パリティビット)も、メモリ610に書き入れられる前に整形エンコーダ614−1によってマッピングに従って符号化される。メモリに記憶されたデータが(例えば、読取りコマンドに応答して)メモリ610から読み取られると、整形デコーダ614−2は、マッピングに従って読取りデータを復号することができ、ECCデコーダ612−2はECC符号化データを復号することができ、(例えば、矢印603−2によって示すように)ユーザデータが再びホストへ提供されうる。
装置690において、入来データ603−1が、整形エンコーダ614−1によって符号化された後、ECCエンコーダ612−1によって符号化され、その後、符号化されたデータがメモリ610へ書き入れられる。このように、ECCエンコーダ612−1を介して追加されるエラー訂正データ(例えば、パリティビット)は、メモリ610に書き入れられる前に整形エンコーダ614−1によってマッピングに従って符号化されることはない。エラー訂正データを整形エンコーダ614−1によって符号化しないことにより、(受信データ603−1に加えられるエラー訂正パリティビットは、整形エンコーダ614−1による符号化を受けないので)受信データ603−1に加えられるオーバヘッドビットの数を低減することができる。読取りコマンドに応答して、メモリから読み取ったデータ(例えば、データのページ)は、整形デコーダ614−2によって復号される前にECCデコーダ612−2によって復号され、ユーザデータが再びホストへ提供されうる。
本明細書において特定の実施形態を記載したが、同じ結果を実現するように計算された構成が、示された特定の実施形態を代替しうることが当業者であれば理解できるであろう。本開示は、本開示の様々な実施形態の改変例および変形例を包括することが意図される。上記の説明は、限定する形ではなく例示する形で記載されることを理解すべきである。上述した実施形態と、本明細書に特に記載されない他の実施形態との組み合わせは、上記説明を考察することによって当業者に明らかとなるであろう。本開示の様々な実施形態の範囲は、上述した構成および方法が用いられる他の用途を含む。従って、本開示の様々な実施形態の範囲は、特許請求の範囲が権利を与えられる全ての範囲の均等物と併せて、以下に示す特許請求の範囲を参照することによって決定すべきである。
上述した発明を実施するための形態において、本開示を簡略化する目的のため、様々な特徴を1つの実施形態に集約した。本開示の方法は、開示された本開示の実施形態が、各請求項に明記した特徴よりも多くの特徴を用いる必要があるという意図を示すものとして解釈してはならない。むしろ、以下の特許請求の範囲が示すように、発明の主題は、1つの開示された実施形態の全ての特徴にあるのではない。従って、以下の特許請求の範囲は本明細書によって発明を実施するための形態に組み込まれ、各請求項は別個の実施形態として単独で成立する。

Claims (35)

  1. メモリセルのアレイと、
    前記アレイに結合され及び整形ディジットパターンに対する受信ディジットパターンのマッピングに従って複数の受信ディジットパターンの各々を符号化するように構成された、整形エンコーダと
    を備え、前記整形ディジットパターンに対する前記受信ディジットパターンのマッピングは、特定のディジット値を有することが可能な前記整形ディジットパターンの連続するディジットの量を、上限数に制限する整形制約に従う、
    装置。
  2. 前記マッピングが、前記マッピングに従って符号化され及びデータのページに対応した前記複数の受信ディジットパターンのストリングが前記整形制約に反しないようにする、請求項1に記載の装置。
  3. 前記アレイに結合し及び前記符号化された複数の受信ディジットパターンの各ディジットをメモリセルのグループの別個のメモリセルにプログラムすることを制御するように構成された、コントローラを更に備える、請求項1に記載の装置。
  4. 前記グループの各メモリセルが、データの複数のディジットを記憶するように構成され、前記データの複数のディジットが、データの下側ページに対応する第1のディジットおよびデータの上側ページに対応する第2のディジットを少なくとも備える、請求項3に記載の装置。
  5. 前記符号化された複数の受信ディジットパターンの各ディジットを前記グループの別個のメモリセルにプログラムすることが、データの下側ページに対応するディジットのみを前記メモリセルにプログラムすることを更に備える、請求項3に記載の装置。
  6. 前記マッピングが、一定の数のM桁の受信ディジットパターンおよび対応する一定の数のN桁の整形ディジットパターンを備え、NはMより大きい、請求項1〜5のいずれか1項に記載の装置。
  7. 前記整形制約が、「0」のディジット値および「1」のディジット値のうちの少なくとも1つを有することができる前記整形ディジットパターンの連続するディジットの数を、前記上限数に制限する、請求項1〜5のいずれか1項に記載の装置。
  8. 前記上限数は4以下である、請求項7に記載の装置。
  9. メモリセルのアレイと、
    前記アレイに結合されたコントローラであって、整形ディジットパターンに対する受信ディジットパターンのマッピングに従って複数の受信ディジットパターンの各々を符号化することを制御し、前記整形ディジットパターンに対する前記受信ディジットパターンのマッピングが、第1のディジット値を有する前記整形ディジットパターンの連続するディジットの上限数を含む整形制約に従うように制御し、かつ
    前記符号化された複数の受信ディジットパターンをメモリセルのグループにプログラムすることを制御する
    ように構成されたコントローラと
    を備える装置。
  10. 前記グループのメモリセルが、各々が、データの少なくとも2つの異なるページに対応するディジットを記憶するように構成されたマルチレベルセルである、請求項9に記載の装置。
  11. 前記データの少なくとも2つの異なるページが、データの下側ページおよびデータの上側ページを備え、前記コントローラが、前記符号化された複数の受信ディジットパターンを前記メモリセルの下側ページのみにプログラムするように構成される、請求項10に記載の装置。
  12. 前記コントローラが、後続する複数の受信ディジットパターンを前記メモリセルの上側ページにプログラムすることを制御するように更に構成され、前記後続する複数の受信ディジットパターンが、前記整形ディジットパターンに対する受信ディジットパターンのマッピングに従って符号化されない、請求項11に記載の装置。
  13. 前記整形ディジットパターンに対する受信ディジットパターンのマッピングが、N桁のディジットパターンに対する複数のM桁のディジットパターンのマッピングを備え、NはMより大きい、請求項9〜12のいずれか1項に記載の装置。
  14. NがM+1に等しい、請求項13に記載の装置。
  15. 前記複数の受信ディジットパターンが、エラー符号化ディジットパターンである、請求項9〜12のいずれか1項に記載の装置。
  16. 前記メモリセルが、複数のデータ状態の1つにプログラムすることができるマルチレベルメモリセルであり、前記複数のデータ状態の各々が、特定の記憶済みディジットパターンに対応し、前記整形制約が、前記メモリセルの記憶済みディジットパターンを、より低い閾値電圧レベルに対応する記憶済みディジットパターンに偏らせるように構成される、請求項9〜12に記載のいずれか1項の装置。
  17. データの下側ページに対応する第1のディジットおよびデータの上側ページに対応する第2のディジットを少なくとも備える複数の記憶済みディジットパターンのそれぞれ1つに各々が対応する複数の異なるデータ状態にプログラムすることができるメモリセルのアレイと、
    前記アレイに結合するコントローラであって、
    整形ディジットパターンに対する受信ディジットパターンのマッピングに従って複数の受信ディジットパターンの各々を符号化することであって、前記マッピングが、特定のディジット値を有することが可能な前記整形ディジットパターンの連続するディジット量を、上限数に制限する整形制約に従うことと、
    前記符号化された複数の受信ディジットパターンを下側ページデータとしてメモリセルのグループにプログラムするために、前記メモリセルのグループに下側ページプログラム処理を実行することと
    を制御するように構成されたコントローラと
    を備える、装置。
  18. 前記下側ページプログラム処理を実行することが、前記グループの各メモリセルに、それぞれのセルがプログラムされる特定のデータ状態に対応する記憶済みディジットパターンの最下位ディジットをプログラムすることを備える、請求項17に記載の装置。
  19. 前記コントローラが、続いて前記メモリセルのグループに上側ページデータをプログラムすることを制御するように構成され、前記上側ページデータが、前記マッピングに従って符号化されない、請求項17に記載の装置。
  20. 前記マッピングに従って前記複数の受信ディジットパターンを符号化するように構成された整形エンコーダと、
    前記マッピングに基づいて前記メモリセルのグループから読み取った下側ページデータを復号するように構成された整形デコーダと
    を備える、請求項17〜19のいずれか1項に記載の装置。
  21. 前記整形エンコーダおよび前記整形デコーダは前記コントローラに配置される、請求項20に記載の装置。
  22. 整形ディジットパターンに対する受信ディジットパターンのマッピングに従って複数の受信ディジットパターンの各々を符号化することとであって、前記整形ディジットパターンに対する前記受信ディジットパターンのマッピングが第1のディジット値を有する前記整形ディジットパターンの連続するディジットの上限数を含む整形制約に従うことと、
    前記符号化された複数の受信ディジットパターンをデータのページの少なくとも一部としてメモリセルのグループにプログラムすることと
    を備える、方法。
  23. 前記符号化された複数の受信ディジットパターンをデータのページの少なくとも一部としてメモリセルのグループにプログラムすることが、下側ページプログラム処理を実行することを備える、請求項22に記載の方法。
  24. 前記複数の符号化されたディジットパターンが「0」ディジット値対「1」ディジット値の特定の割合を実現するようなマッピングを提供することを含む、請求項22に記載の方法。
  25. 前記複数の受信ディジットパターンの各々を符号化する前に、
    前記複数の受信ディジットパターンがデータの下側ページの少なくとも一部として前記セルのグループに書き入れられるかを判定することと、
    前記複数の受信ディジットパターンがデータの下側ページの少なくとも一部として前記セルのグループに書き入れられる場合のみ、前記複数の受信ディジットパターンを符号化することと
    を含む、請求項22に記載の方法。
  26. 整形部を介して前記複数の受信ディジットパターンの各々を符号化することを含む、請求項22〜25のいずれか1項に記載の方法。
  27. 前記符号化された複数の受信ディジットパターンをデータのページの少なくとも一部としてメモリセルのグループにプログラムすることが、前記メモリセルのグループを備えるメモリセルのアレイに結合するコントローラを介して前記符号化された複数の受信ディジットパターンをプログラムすることを含む、請求項22〜25のいずれか1項に記載の方法。
  28. ディジットパターンを受信し、前記受信ディジットパターンにエラー訂正データを追加するように構成されたエラー訂正符号(ECC)エンコーダと、
    前記ECCエンコーダに結合され及び整形ディジットパターンに対するディジットパターンのマッピングに従って前記追加のエラー訂正データを符号化し、前記受信ディジットパターンを符号化するように構成された、整形エンコーダと、
    前記整形エンコーダに結合するメモリであって、前記整形ディジットパターンに対する前記ディジットパターンのマッピングが、特定のディジット値を有することが可能な前記整形ディジットパターンの連続するディジット量を、上限数に制限する整形制約に従う、メモリと
    を備える装置。
  29. 前記ECCエンコーダおよび前記整形エンコーダがコントローラにある、請求項28に記載の装置。
  30. 前記コントローラが、前記符号化された受信ディジットパターンおよび前記符号化された追加のエラー訂正データを前記メモリにプログラムすることを制御するように構成される、請求項29に記載の装置。
  31. 前記整形エンコーダが、前記受信ディジットパターンがデータの下側ページとしてメモリセルのグループにプログラムされる場合のみ、前記整形ディジットパターンに対するディジットパターンのマッピングに従って前記追加のエラー訂正データを符号化し、前記受信ディジットパターンを符号化するように構成される、請求項29に記載の装置。
  32. 前記メモリが、複数のデータ状態の1つのプログラムすることができるマルチレベルメモリセルを備え、前記複数のデータ状態の各々が、特定の記憶済みディジットパターンに対応し、前記整形制約が、前記メモリセルの記憶済みディジットパターンを、より低い閾値電圧に対応する記憶済みディジットパターンに偏らせるように構成される、請求項29に記載の装置。
  33. ディジットパターンを受信し、整形ディジットパターンに対する受信ディジットパターンのマッピングに従って前記受信ディジットパターンを符号化するように構成された整形エンコーダと、
    前記整形エンコーダに結合し及び前記符号化された受信ディジットパターンにエラー訂正データを追加するように構成された、エラー訂正符号(ECC)エンコーダと、
    前記ECCエンコーダに結合するメモリであって、前記整形ディジットパターンに対する前記受信ディジットパターンのマッピングが、特定のディジット値を有することが可能な前記整形ディジットパターンの連続するディジットの量を、上限数に制限する整形制約に従う、メモリと
    を備える、装置。
  34. 前記整形エンコーダおよび前記ECCエンコーダがコントローラにある、請求項33に記載の装置。
  35. 前記コントローラが、前記符号化された受信ディジットパターンおよび前記追加のエラー訂正データを前記メモリにプログラムすることを制御するように構成される、請求項33または34に記載の装置。
JP2015542819A 2012-11-21 2013-11-15 メモリのための整形符号 Active JP6059358B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/683,440 2012-11-21
US13/683,440 US8984369B2 (en) 2012-11-21 2012-11-21 Shaping codes for memory
PCT/US2013/070303 WO2014081632A1 (en) 2012-11-21 2013-11-15 Shaping codes for memory

Publications (2)

Publication Number Publication Date
JP2016504658A true JP2016504658A (ja) 2016-02-12
JP6059358B2 JP6059358B2 (ja) 2017-01-11

Family

ID=50729145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015542819A Active JP6059358B2 (ja) 2012-11-21 2013-11-15 メモリのための整形符号

Country Status (7)

Country Link
US (2) US8984369B2 (ja)
EP (1) EP2923270B1 (ja)
JP (1) JP6059358B2 (ja)
KR (1) KR101752987B1 (ja)
CN (1) CN104871142B (ja)
TW (1) TWI536391B (ja)
WO (1) WO2014081632A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045754A (ja) * 2016-09-13 2018-03-22 東芝メモリ株式会社 メモリシステム
JP2019023951A (ja) * 2017-07-25 2019-02-14 富士通株式会社 メモリ制御回路、メモリ、及びメモリ制御方法
JP2019169216A (ja) * 2018-03-22 2019-10-03 東芝メモリ株式会社 メモリシステム
JP7375231B2 (ja) 2019-02-14 2023-11-07 キオクシア株式会社 不揮発性半導体記憶装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405624B2 (en) * 2014-06-19 2016-08-02 Seagate Technology Llc On-die error detection and correction during multi-step programming
US9672102B2 (en) * 2014-06-25 2017-06-06 Intel Corporation NAND memory devices systems, and methods using pre-read error recovery protocols of upper and lower pages
KR102247087B1 (ko) * 2014-07-08 2021-05-03 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US20160098197A1 (en) * 2014-10-06 2016-04-07 SanDisk Technologies, Inc. Nonvolatile memory and method with state encoding and page-by-page programming yielding invariant read points
US9727261B2 (en) 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
US10114549B2 (en) 2016-03-17 2018-10-30 Sandisk Technologies Llc Error correction code processing and data shaping for reducing wear to a memory
US10972215B2 (en) * 2018-03-09 2021-04-06 Nokia Solutions And Networks Oy Methods and apparatus for joint use of probabilistic signal shaping and forward error correction
KR20210013397A (ko) * 2019-07-24 2021-02-04 삼성전자주식회사 스토리지 장치
KR20210062845A (ko) 2019-11-22 2021-06-01 삼성전자주식회사 비휘발성 메모리 장치의 동작 제어 방법 및 이를 수행하기 위한 데이터 컨버터
KR20210094696A (ko) 2020-01-21 2021-07-30 삼성전자주식회사 비휘발성 메모리 장치, 스토리지 장치, 및 그것의 프로그램 방법
US11705211B2 (en) 2020-07-14 2023-07-18 Micron Technology, Inc. Methods and systems for improving access to memory cells
JP2022047393A (ja) * 2020-09-11 2022-03-24 キオクシア株式会社 メモリシステム、半導体記憶装置及びデータ読み出し方法
US20240020223A1 (en) * 2022-07-18 2024-01-18 Micron Technology, Inc. Center allocation data structure

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001080249A1 (fr) * 2000-04-19 2001-10-25 Fujitsu Limited Procede de commande d'ecriture/de lecture de donnees, et dispositif de stockage
US20080158948A1 (en) * 2006-12-31 2008-07-03 Sandisk Il Ltd. Avoiding errors in a flash memory by using substitution transformations
US20100202198A1 (en) * 2009-02-09 2010-08-12 Samsung Electronics Co., Ltd. Semiconductor memory device and data processing method thereof
JP2011141914A (ja) * 2010-01-05 2011-07-21 Siglead Inc Nand型フラッシュメモリの入出力制御方法及び装置
JP2011204304A (ja) * 2010-03-25 2011-10-13 Toshiba Corp データ記憶装置、及びその書き込み方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
US6794997B2 (en) 2003-02-18 2004-09-21 Sun Microsystems, Inc. Extending non-volatile memory endurance using data encoding
US8848442B2 (en) 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
US7675783B2 (en) 2007-02-27 2010-03-09 Samsung Electronics Co., Ltd. Nonvolatile memory device and driving method thereof
EP1990918A1 (en) * 2007-05-07 2008-11-12 Deutsche Thomson OHG Method and apparatus for channel coding
US7802132B2 (en) 2007-08-17 2010-09-21 Intel Corporation Technique to improve and extend endurance and reliability of multi-level memory cells in a memory device
US7573969B2 (en) 2007-09-27 2009-08-11 Sandisk Il Ltd. Counter using shift for enhanced endurance
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
TWI533304B (zh) * 2008-03-11 2016-05-11 艾基爾系統公司 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
US7808819B2 (en) 2008-04-29 2010-10-05 Sandisk Il Ltd. Method for adaptive setting of state voltage levels in non-volatile memory
WO2010092536A1 (en) 2009-02-12 2010-08-19 Ramot At Tel Aviv University Ltd. Apparatus and method for enhancing flash endurance by encoding data
US8004900B2 (en) 2009-03-17 2011-08-23 Sandisk Technologies Inc. Controlling select gate voltage during erase to improve endurance in non-volatile memory
US8370709B2 (en) 2009-04-16 2013-02-05 Micron Technology, Inc. Multiple-level memory cells and error detection
US7848152B1 (en) 2009-05-12 2010-12-07 Skymedi Corporation Method and system for adaptively finding reference voltages for reading data from a MLC flash memory
US8036016B2 (en) 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US20110286271A1 (en) 2010-05-21 2011-11-24 Mediatek Inc. Memory systems and methods for reading data stored in a memory cell of a memory device
WO2012020278A1 (en) * 2010-08-13 2012-02-16 Sandisk Il Ltd. Data coding using divisions of memory cell states
US9229804B2 (en) 2010-08-17 2016-01-05 Technion Research And Development Foundation Ltd. Mitigating inter-cell coupling effects in non volatile memory (NVM) cells
US8341500B2 (en) 2010-08-31 2012-12-25 Apple Inc. Detecting corrupted data for a system having non-volatile memory
JP5204868B2 (ja) 2011-04-12 2013-06-05 シャープ株式会社 半導体記憶装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001080249A1 (fr) * 2000-04-19 2001-10-25 Fujitsu Limited Procede de commande d'ecriture/de lecture de donnees, et dispositif de stockage
US20080158948A1 (en) * 2006-12-31 2008-07-03 Sandisk Il Ltd. Avoiding errors in a flash memory by using substitution transformations
US20100202198A1 (en) * 2009-02-09 2010-08-12 Samsung Electronics Co., Ltd. Semiconductor memory device and data processing method thereof
JP2011141914A (ja) * 2010-01-05 2011-07-21 Siglead Inc Nand型フラッシュメモリの入出力制御方法及び装置
JP2011204304A (ja) * 2010-03-25 2011-10-13 Toshiba Corp データ記憶装置、及びその書き込み方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045754A (ja) * 2016-09-13 2018-03-22 東芝メモリ株式会社 メモリシステム
US10593398B2 (en) 2016-09-13 2020-03-17 Toshiba Memory Corporation Semiconductor storage device including a controller configured to execute a first write and a second write
US11069403B2 (en) 2016-09-13 2021-07-20 Toshiba Memory Corporation Semiconductor storage device and memory system
US11557339B2 (en) 2016-09-13 2023-01-17 Kioxia Corporation Semiconductor storage device and memory system
US11837284B2 (en) 2016-09-13 2023-12-05 Kioxia Corporation Nonvolatile semiconductor memory device
JP2019023951A (ja) * 2017-07-25 2019-02-14 富士通株式会社 メモリ制御回路、メモリ、及びメモリ制御方法
JP2019169216A (ja) * 2018-03-22 2019-10-03 東芝メモリ株式会社 メモリシステム
JP7375231B2 (ja) 2019-02-14 2023-11-07 キオクシア株式会社 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
US8984369B2 (en) 2015-03-17
TW201432706A (zh) 2014-08-16
KR20150087337A (ko) 2015-07-29
EP2923270B1 (en) 2018-08-01
US9405622B2 (en) 2016-08-02
TWI536391B (zh) 2016-06-01
EP2923270A4 (en) 2016-06-29
US20140143631A1 (en) 2014-05-22
CN104871142A (zh) 2015-08-26
US20150178158A1 (en) 2015-06-25
CN104871142B (zh) 2017-12-15
JP6059358B2 (ja) 2017-01-11
WO2014081632A1 (en) 2014-05-30
KR101752987B1 (ko) 2017-07-03
EP2923270A1 (en) 2015-09-30

Similar Documents

Publication Publication Date Title
JP6059358B2 (ja) メモリのための整形符号
CN109196479B (zh) 存储器中的错误校正码(ecc)操作
TWI709974B (zh) 快閃記憶體控制器、快閃記憶體模組以及電子裝置
US11243838B2 (en) Methods and apparatuses for error correction
US9697892B1 (en) Generation and application of gray codes
TWI682399B (zh) 操作記憶體之方法及用於錯誤率降低之設備
US9355730B2 (en) Mapping between program states and data patterns
KR101661048B1 (ko) 메모리 디바이스들에 대한 에러 보호

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161101

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: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161208

R150 Certificate of patent or registration of utility model

Ref document number: 6059358

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