JP2014529827A - メモリエンデュランスのために動作させる装置および方法 - Google Patents

メモリエンデュランスのために動作させる装置および方法 Download PDF

Info

Publication number
JP2014529827A
JP2014529827A JP2014528595A JP2014528595A JP2014529827A JP 2014529827 A JP2014529827 A JP 2014529827A JP 2014528595 A JP2014528595 A JP 2014528595A JP 2014528595 A JP2014528595 A JP 2014528595A JP 2014529827 A JP2014529827 A JP 2014529827A
Authority
JP
Japan
Prior art keywords
data
digit
memory
digit data
state
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
JP2014528595A
Other languages
English (en)
Other versions
JP5785330B2 (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 JP2014529827A publication Critical patent/JP2014529827A/ja
Application granted granted Critical
Publication of JP5785330B2 publication Critical patent/JP5785330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • 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
    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

メモリエンデュランスのために、コンピューティングシステムおよび/またはメモリデバイスなどの装置を動作させる方法が提供される。1つの例示的な方法は、第2のデータ状態に比べてメモリセル摩耗にとってより有害である第1のデータ状態によって表される第1の数量のデジットを有するmデジットのデータを受信することを含みうる。mデジットのデータは、第1のデータ状態によって表される第2の数量のデジットを有するnデジットのデータに符号化される。値nは値mより大きい。第2の数量は第1の数量以下である。nデジットのデータは、メモリセルを有する装置に記憶される。【選択図】図6

Description

本開示は、一般に、半導体メモリデバイスおよび方法に関し、より詳細には、メモリエンデュランスのために動作させる方法に関する。
メモリデバイスは、通常、コンピュータまたは他の電子デバイス内で内部の半導体、集積回路として設けられる。とりわけ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、抵抗性メモリ(たとえば、RRAM(登録商標))、およびフラッシュメモリを含む多くの異なるタイプのメモリが存在する。
メモリデバイスは、広い範囲の電子的アプリケーションのための揮発性および不揮発性データストレージとして利用される。たった1つのタイプのメモリであるフラッシュメモリは、通常、高いメモリ密度、高い信頼性、および低い電力消費を可能にする1トランジスタメモリセルを使用する。不揮発性メモリは、たとえば、パーソナルコンピュータ、携帯型メモリスティック、固体ドライブ(solid state drive)(SSD)、デジタルカメラ、携帯電話、MP3プレーヤなどの携帯型音楽プレーヤ、ムービープレーヤ、および他の電子デバイスにおいて使用することができる。メモリセルはアレイで配列されることができ、アレイはメモリデバイスで使用される。
メモリデバイスのメモリセルは、所望のデータ状態になるようプログラムされうる。たとえば、単一レベルセル(single level cell)(SLC)は、論理ハイまたはバイナリ「1」のデータ状態あるいは論理ローまたはバイナリ「0」のデータ状態などの2つのデータ状態の一方になるようプログラムされうる。マルチレベルセル(multilevel cell)(MLC)は、2を上回るデータ状態の1つになるようプログラムされうる。たとえば、いくつかのフラッシュMLCメモリセルは、4つのデータ状態、8つのデータ状態、または16のデータ状態(たとえば、1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110、および1110)の1つのデータ状態になるようプログラムされることができ、これらのデータ状態のそれぞれは、電荷貯蔵構造(たとえば、浮遊ゲート)上に加えられるかまたはそこから除去される、それぞれの電荷量によって表される。メモリセルは、構造の一部として1つまたは複数のノードを有することができる。したがって、MLCは、メモリセルの数を増やすことなく、高い密度のメモリの製造を可能にしうる。その理由は、各セルが、2つのデータ状態の一方になるようプログラムされ、したがって、2ビット以上を記憶することができるからである。これらのMLCの場合、最も低いデータ状態は、通常、消去状態を超えてプログラムされない。すなわち、セルが最も低いデータ状態になるようプログラムされる場合、セルは、たとえばプログラミング動作中にセルに電荷が貯蔵されているのではなく、消去状態のままである。他の15のデータ状態は「非消去(non−erased)」状態と呼ばれうる。
いくつかのメモリセルは、メモリセルがさらされるプログラムおよび消去サイクルの数量に比例する摩耗を有する。すなわち、メモリセル性能は、反復使用と共に劣化しうる。フラッシュMLCが劣化する程度はまた、プログラムされるときに貯蔵される電荷の量に比例する。すなわち、比較的大量の電荷量の貯蔵によって表されるデータ状態は、比較的少量の電荷量の貯蔵によって表されるデータ状態に比べて比較的速くメモリセルを摩耗させる傾向がある。
本開示の1つまたは複数の実施形態による、メモリを含むコンピューティングシステムの形態の装置の機能ブロック図である。 本開示の1つまたは複数の実施形態による符号化動作の機能ブロック図である。 本開示の1つまたは複数の実施形態による符号化動作の機能ブロック図である。 本開示の1つまたは複数の実施形態による復号動作の機能ブロック図である。 本開示の1つまたは複数の実施形態による復号動作の機能ブロック図である。 本開示の1つまたは複数の実施形態による、3ビットのデータを4ビットインデックスにマッピングすることを示す図である。 本開示の1つまたは複数の実施形態による、3ビットのデータを5ビットインデックスにマッピングすることを示す図である。 本開示の1つまたは複数の実施形態による、装置に関わるメモリエンデュランス動作の機能ブロック図である。
1つの例示的な方法は、第2のデータ状態に比べてメモリセル摩耗にとって有害である第1のデータ状態によって表される第1の数量のデジットを有するmデジットのデータを受信することを含みうる。mデジットのデータは、第1のデータ状態によって表される第2の数量のデジットを有するnデジットのデータにエンコードされる。値nは値mより大きい。第2の数量は第1の数量以下である。第3の数量は第2の数量より大きい。nデジットのデータは、メモリセルを有する装置に記憶される。
本開示の以下の詳細な説明では、添付図面が参照され、添付図面は、本開示の一部を形成し、また、添付図面において、本開示の1つまたは複数の実施形態をどのように実施することができるかが例証として示される。これらの実施形態は、本開示の実施形態を当業者が実施することを可能にするのに十分に詳細に述べられ、また、他の実施形態を実施することができること、および、本開示の範囲から逸脱することなく、プロセス変更、電気的変更および/または構造的変更を行うことができることが理解される。本明細書で使用されるように、指定子「N」は、特に図面の参照数字に関して、そのように指定された特定の特徴の1つまたは複数が本開示の1つまたは複数の実施形態に関して含まれうることを示す。
本明細書の図は、番号付け慣行に従い、最初の1つまたは複数の桁が図面の図番に対応し、残りの桁が、図面内の要素またはコンポーネントを特定する。異なる図の間の同様の要素またはコンポーネントは、同様の桁の使用によって特定することができる。理解されるように、本明細書の種々の実施形態で示す要素は、本開示の多数のさらなる実施形態を提供するために、付加されうる、交換されうる、かつ/またはなくされうる。さらに、図で提供される要素の割合および相対的なスケールは、本開示の種々の実施形態を示すことを意図され、制限的な意味で使用されない。
メモリは、反復されるプログラムおよび/または消去サイクルの後に益々劣化した性能および/または故障(摩耗と呼ばれることが多い)を経験しうる。メモリの摩耗に対処する従来のアプローチは、いわゆる摩耗平準化(wear leveling)である。摩耗平準化は、メモリセルのある部分が他の部分に比べて速く摩耗することを回避するために、メモリセルを均等に(uniformly)使用しようと試み、それにより、孤立した摩耗によるスポット故障を防止するよう試みることによってメモリエンデュランスを増加させることができる。摩耗平準化技法は、「ガーベジコレクション(garbage collection)」技法などの静的および/または動的な摩耗平準化技法を含みうる。従来の摩耗平準化技法は、通常、既に起こった摩耗のある評価基準に応答する。たとえば、摩耗平準化技法を、プログラム/消去サイクル計数または他の摩耗メトリックに基づいてトリガーすることができる。本開示の実施形態の少なくともいくつかの実施形態による装置および方法は、摩耗が起こる前に摩耗を回避することなどによる、異なる方法でメモリ摩耗に対処する。
図1は、本開示の1つまたは複数の実施形態による、少なくとも1つのメモリデバイス104を含むコンピューティングシステム100の形態の装置の機能ブロック図である。図1に示す実施形態では、メモリデバイス104、たとえば固体ドライブ(solid state drive)(SSD)、サムドライブ(thumb drive)などは、物理的ホストインタフェース106、コントローラ108、たとえばプロセッサ、制御回路要素(circuitry)など、および、メモリ110、たとえば1つまたは複数のメモリセルの配置構成を含みうる。1つまたは複数の実施形態では、コントローラ108は、物理的インタフェース106およびメモリ110を含むプリント回路基板に結合した特定用途向け集積回路(ASIC)でありうる。
図1に示すように、コントローラ108は、物理的ホストインタフェース106およびメモリ110に結合されうる。物理的ホストインタフェース106は、メモリデバイス104とホスト102などの別のデバイスとの間で情報を通信するために使用されうる。ホスト102は、メモリアクセスデバイス、たとえばプロセッサ、および/または他のコンピューティングコンポーネントを含みうる。「プロセッサ(a processor)」が、並列処理システム、コプロセッサの1つまたは複数などのような1つまたは複数のプロセッサを意図しうることを当業者は理解するであろう。ホストの例は、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録および再生デバイス、モバイル電話、PDA、メモリカードリーダ、インタフェースハブ、および同様なものを含む。例として、メモリデバイス104は、携帯型SSDを含みうるが、それに限定されない。本開示の方法は、たとえば、コントローラ108および/またはホスト102によって実装されうる。
1つまたは複数の実施形態について、物理的ホストインタフェース106は、標準化されたインタフェースの形態でありうる。たとえば、メモリデバイス104がコンピューティングシステム100内でデータ記憶のために使用されるとき、物理的ホストインタフェース106は、コネクタおよびインタフェースの中でもとりわけ、シリアル・アドバンスド・テクノロジー・アタッチメント(serial advanced technology attachment)(SATA)、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(peripheral component interconnect express)(PCIe)、またはユニバーサルシリアルバス(universal serial bus)(USB)でありうる。しかし、一般に、物理的ホストインタフェース106は、メモリデバイス104と、物理的ホストインタフェース106用の互換性のあるレセプタを有するホスト102との間で、コントロール、アドレス、データ、および他の信号を渡すためのインタフェースを提供しうる。
コントローラ108は、動作の中でもとりわけ、データを読出す、書込む、消去するために、メモリ110と通信しうる。コントローラ108は、1つまたは複数の集積回路および/またはディスクリートコンポーネントとすることができる回路要素を有しうる。1つまたは複数の実施形態について、コントローラ108内の回路要素は、メモリ110にわたるアクセスを制御するための制御回路要素およびホスト102とメモリデバイス104との間の変換層を提供するための回路要素を含むことができる。そのため、メモリコントローラは、メモリ110のI/O接続(図1には示さず)を選択的に結合して、適切な時間に適切なI/O接続において適切な信号を受信することができる。同様に、ホスト102とメモリデバイス104との間の通信プロトコルは、メモリ110のアクセスに必要とされるものと異なるとすることができる。コントローラ108は、次に、ホストから受信されたコマンドを適切なコマンドに変換して、メモリ110に対する所望のアクセスを達成しうる。
メモリ110は、非一時的媒体であり、メモリセル、たとえば不揮発性メモリセルの1つまたは複数のアレイを含むことができる。アレイは、たとえば、NANDアーキテクチャを有するフラッシュアレイでありうる。NANDアーキテクチャでは、「行(row)」のメモリセルの制御ゲートを、アクセス、たとえばワード、ラインに結合することができ、一方、メモリセルを、セレクトゲートソーストランジスタとセレクトゲートドレイントランジスタとの間で「ストリング(string)」でソースからドレインに直列に結合されうる。ストリングは、セレクトゲートドレイントランジスタによって、データ、たとえば、ビット、ラインに接続されうる。用語「行(row)」および「ストリング」の使用は、メモリセルのリニア配置構成も直交配置構成もどちらも示唆はしていない。当業者によって理解されるように、ビットラインおよびソースラインに対するメモリセルの接続方法は、アレイが、NANDアーキテクチャであるか、NORアーキテクチャであるか、または何らかの他のメモリアレイアーキテクチャであるかに依存する。本開示の方法および装置はまた、たとえばDRAM、PCRAM、および/またはRRAMメモリで通常使用されるメモリセルなどの他のメモリセルに関して使用されうるかまたは実装されうる。
メモリ110は、グループ化されうるメモリセルの1つまたは複数を含みうる。本明細書で使用されるように、ページ、ブロック、プレーン、ダイ、全アレイ、またはメモリセルの他のグループなどのグループは、1つまたは複数のメモリセルを含みうる。たとえば、いくつかのメモリアレイは、メモリセルのブロックを構成するメモリセルのページの1つまたは複数を含みうる。ブロックの1つまたは複数は、メモリセルのプレーンに含まれうる。メモリセルのプレーンの1つまたは複数は、ダイに含まれうる。例として、128GBメモリデバイスは、1ページ当たり4314バイトのデータ、1ブロック当たり128ページ、1プレーン当たり2048ブロック、および1デバイス当たり16プレーンを含みうる。
メモリ110は、チャネルの1つまたは複数を含むことができ、各チャネルは、ダイの1つまたは複数を含みうる。各チャネルは、論理ユニット番号(logical unit number)(LUN)を使用して編成されうる。メモリ110にデータを書込むとき、データは、チャネルの番号およびLUNにわたって費やされうる。メモリデバイスでは、物理的ページは、書込むかつ/または読出すユニット、たとえば、共に書込まれるかつ/または読出されるセルの1つまたは複数を指しうる、または、メモリセルの機能グループと呼ばれうる。偶数ページおよび奇数ページは、別個の書込み動作および/または読出し動作によって書込まれうるかつ/または読出されうる。マルチレベルセル(MLC)を含む実施形態の場合、物理的ページは、データの上側ページと下側ページに論理的に分割されうる。たとえば、1つのメモリセルは、1つまたは複数のビットをデータの上側ページに寄与させ、1つまたは複数のビットをデータの下側ページに寄与させうる。したがって、論理的な上側ページおよび論理的な下側ページが共に、同じ物理的ページの一部であるため、データの上側ページおよび下側ページは、1回の書込みおよび/または読出し動作の一部として書込まれうるかつ/または読出されうる。
図1の実施形態は、本開示の実施形態を曖昧にしないために示されないさらなる回路要素を含みうる。たとえば、メモリデバイス104は、I/O回路要素を通してI/O接続を通じて提供されるアドレス信号をラッチするアドレス回路要素を含みうる。アドレス信号は、メモリ110にアクセスするために、行デコーダおよび列デコーダによって受信され復号されうる。アドレス入力接続の数が、メモリ110の密度およびアーキテクチャに依存しうることが当業者によって理解されるであろう。
図2Aおよび図2Bは、本開示の1つまたは複数の実施形態による符号化動作の機能ブロック図である。電荷貯蔵メモリセルが有限のエンデュランスを有しうることが認められた。プログラムおよび消去サイクルの数量は、メモリセルに記憶されるデータの信頼性に影響を及ぼしうる。メモリセルがさらされるプログラム/消去サイクルの数量が多ければ多いほど、セルによって記憶されたデータを正確に決定することの信頼性が低くなる。反復しておよび/または高い電圧レベルで反復してメモリセルをプログラムすることは、メモリセルの物理的劣化を引起し、エンデュランスの低下をもたらしうる。本明細書で使用されるメモリエンデュランスは、たとえば、時間によって測定することができる、メモリの使用寿命の継続期間を指す。
いくつかの過去のアプローチは、あるメモリセルを他のメモリセルに比べて速く摩耗させないように、利用可能なメモリセルにわたってより均等にプログラム/消去サイクルを拡散させようと試みるときの摩耗平準化を対象としてきた。本開示の1つまたは複数の実施形態によれば、メモリエンデュランスを増加させる別のアプローチは、まず第1にメモリセルのプログラミング/消去サイクルを最小にする、かつ/または、比較的大量の貯蔵電荷によって表されるデータ状態になるメモリセルのプログラミングを最小にすることである。比較的大量の貯蔵電荷は、比較的少量の貯蔵電荷によって表されるデータ状態に比べてメモリセルを速く摩耗させる傾向がある。
こうした出来事を最小にする1つの解決策は、データを記憶するために使用されるメモリセルのより少数が、比較的大量の貯蔵電荷によって表されるデータ状態になるようプログラムされるように、記憶されるデータをスキューさせることである。本明細書で使用するプログラミングは、所望のデータ状態にメモリセルを選択的に置くことを指し、メモリセルのデータ状態を、消去状態から非消去状態に、非消去状態から消去状態に、および/または、1つの非消去状態から別の非消去状態に変更することを含みうる。非消去状態は、通常、消去状態に比べてメモリセル摩耗にとって有害である。メモリセルがどのようにプログラムされるかによって、たとえば、メモリセルが、(たとえば、「より高い(higher)」データ状態をプログラムするために)より長い継続期間および/またはより大きな電圧でプログラムされる場合、あるデータ状態は、他のデータ状態に比べてメモリセル摩耗にとって有害であるとすることができる。さらに、メモリセルを消去しなければならないというプロセスはまた、メモリセル摩耗に寄与しうる。異なるデータ状態は、それぞれの特定の状態に関連する有害の程度を反映するために異なるように重み付けされうる。
1つまたは複数の実装態様によれば、「0」データ状態は消去状態にマッピングされ、「1」データ状態は非消去状態にマッピングされる。しかし、本開示の実施形態は、そのように限定されず、「0」データ状態が非消去状態にマッピングされ、「1」データ状態が消去状態にマッピングされる実装態様に適用されうる。
本開示の他の実施形態では、消去状態が非消去状態に比べてメモリセル摩耗にとって有害である場合があることを当業者は認識するであろう。たとえば、本明細書で述べる方法が、同様に適用されて、非消去状態ではなく消去状態を最小にするかまたはそれに重み付けし、それにより、非消去状態ではなく消去状態を記憶する選好を反映しうる。
通常、消去状態は、メモリセルに記憶された基準電圧レベル(たとえば、グラウンド電圧レベル、約0ボルトなど)によって公称的に表される閾値電圧の範囲にマッピングされうる。たとえば、消去状態は、電荷がないメモリセルを指すとすることができる。消去状態はまた、負の電圧レベル、たとえば−2ボルト、または、非消去状態の正の電圧より小さい正の電圧などの非基準電圧レベルによって公称的に表される閾値電圧の範囲にマッピングされうる。非消去データ状態は、SLCメモリセルに記憶された非基準電圧レベル(たとえば、1ボルトなどのグラウンド以外の電圧レベル)によって公称的に表される閾値電圧の範囲にマッピングされうる。
特定の非消去状態は、MLCメモリセルに記憶された異なる非基準電圧レベルによって公称的に表されるいくつかの異なる閾値電圧範囲の1つの範囲にマッピングされうる。少なくとも1つの実施形態では、非消去状態は、消去セルの公称電圧より比較的高い公称電圧レベル(たとえば、+1ボルト)にマッピングされうる。
以下に続く議論に関して、本開示の装置および方法は、2つのデータ状態、すなわち、「0」データ状態と「1」データ状態だけを有するSLCに関わる例示的な実装態様に基づいて主に示されることになり、「0」データ状態は、メモリセル内に電荷が全く貯蔵されていないこと(すなわち、約0ボルト)に対応する消去状態にマッピングされ、「1」データ状態は、メモリセル内に電荷が貯蔵されていること(すなわち、約1ボルト)に対応する非消去状態にマッピングされる。
さらに、先の実施形態では、「0」データ状態(すなわち、電荷なしの状態)は、「1」データ状態(すなわち、電荷が貯蔵された状態)に比べて、メモリセル摩耗にとって有害でないと仮定される。したがって、こうした実施形態では、「0」データ状態を使用してメモリセルにデータを記憶することは好ましく、「1」データ状態を使用してメモリセルにデータを記憶することは好ましくない。しかし、本開示の実施形態は、そのように限定されず、本開示の装置および方法が、メモリセルの摩耗にとってより有害であるデータ状態の使用を減じようとすることによって、メモリセルの物理的状態に対するデータ状態の異なるマッピングに適用されうることが理解されるであろう。
メモリデバイスに記憶されるデータは、「1」データ状態ではなく「0」データ状態を使用することについての上述した選好を尊重することを期待できない。すなわち、バイナリの均等に分布したランダムデータの場合、特定のデジットのデータが論理「0」である確率が50%であり、特定のデジットのデータが論理「1」である確率も50%である。すなわち、特定のデジットのデータが論理「0」または論理「1」であるという同等のチャンスが存在する。
本開示の1つまたは複数の実施形態によれば、記憶されるデータは、第2のデータ状態(たとえば、この例では「1」データ状態)によって表されるデジット(たとえば、ビット)の数量以上である、第1のデータ状態(たとえば、この例では「0」データ状態)によって表されるデジット(たとえば、ビット)の数量を有するようにデータが制約されるように符号化されることができ、第2のデータ状態は、第1のデータ状態に比べて摩耗にとって有害である(本明細書で使用されるように、「第1(first)」および「第2(second)」は、1つのデータ状態を別のデータ状態から区別するために使用されるだけであり、データ状態の任意の特定の順序または数を示唆するように読取られるべきでない)。こうして、データがメモリデバイスに直接(たとえば、非符号化状態で)記憶された場合に「1」データ状態になるようプログラムされているよりも少数のメモリセルが、「1」データ状態になるようプログラムされることになる。「1」データ状態は、この例では、メモリセル摩耗にとって有害であると予想されるため、「1」のビットの数量以上である「0」のビットの数量を有する符号化データの記憶は、全体的にメモリデバイスの少ない摩耗をもたらすはずであり、したがって、メモリデバイスのエンデュランスを増加させるはずである。
種々の実施形態によれば、入力データは、非符号化入力データに比べて有害なデータ状態になるようなプログラミングを少なくさせることになる、符号化データにおいてより多くの「0」に対してデータをスキューさせるコードを使用してメモリデバイスに記憶するための符号化データにマッピングされうる。本開示の装置および方法を示すために本明細書で使用される例は、例について上述した仮定の下で0がより有害でないため、符号化データにおいて1ではなく0を好むが、本開示の装置および方法は、1がメモリセルにとってより有害でない他のマッピングシナリオ(たとえば、「0」データ状態は、メモリセルに記憶された公称の正電圧に対応する非消去状態にマッピングされ、「1」データ状態は、メモリセルに記憶されたゼロまたは負の公称閾値電圧に対応する消去状態にマッピングされる)に適用されうることが留意されるべきである。1が、0に比べてメモリセルにとって有害でない実装態様の場合、符号化は、入力データが直接記憶された場合に比べて有害なデータ状態になるようなプログラミングを少なくさせるはずである、符号化データにおいてより多くの1に対してデータをスキューさせるコードを使用してメモリデバイスに記憶するための符号化データに入力データをマッピングするように構成されうる。
SLCメモリセルにおいて1に比べて0がメモリセルにとってより有害でないと仮定される例に戻り、また、ランダム入力データ(たとえば、未処理ユーザデータ)が与えられる場合、入力データを表すメモリデバイスに記憶されるコード化データにおいて1に対して0の分布をスキューさせる技法が提示される。本開示の技法が適用されると、考えられるデータ状態の間で均等に分布するランダム入力データは、少数のメモリセルが、入力データを直接記憶する場合に比べて多く、より有害なデータ状態になるようプログラムされると予想されるため、メモリにとって少ない摩耗をもたらしうる。この技法は、列挙コーディングの原理を使用する。
記憶される符号化データに対する/からの入力データの符号化および復号は、メモリデバイスにおいて、および/または、メモリデバイスに通信する前のホストにおいてハードウェアおよび/またはソフトウェアで達成されうる。たとえば、メモリセルおよび/またはアレイ設計を変更することに頼らない回路が使用されうる。
図2Aは、入力214および出力216を有するエンコーダ212を示す。エンコーダ212は、メモリデバイスおよび/またはホストにおいてハードウェアおよび/またはソフトウェアで実装されうる。エンコーダ212は、たとえばホストから、入力214にてmビットのデータでありうるmデジットデータワード218として本明細書で別途示されまた呼ばれるmデジットのデータを受信し、出力216にてnデジットコードワード220として本明細書で別途示されまた呼ばれるnデジットのデータを生成しうる。本明細書で使用されるように、「デジット(digit)」は、バイナリデジット(「ビット(bit)」)、16進(hexadecimal)デジットなどのデータのデジットを指し、その代表的なメンバは、対応する信号レベルまたは信号レベルの対応する範囲によって表されうる。
本明細書で使用されるように、「データワード(dataword)」は、入力データ、たとえば未処理ユーザデータなどのデータのデジットの組合せを指す。「コードワード(codeword)」は、データワードにマッピングされたインデックスなどによって、データワードを符号化するデータのデジットの組合せを指す。nデジットコードワード220は、mデジットデータワード218に一意に対応することができ、したがって、mデジットデータワード218の代わりにメモリデバイスに記憶されうる。nデジットコードワード220は、オリジナルのmデジットデータワード218に比べて有害なデータ状態になるようプログラムされることをメモリセルに要求することになるデジットが少なくなるように選択されうるため、メモリデバイスは、所定期間にわたって少ない摩耗を生じるはずであり、それにより、エンデュランスを増加させる。
図2Bは、入力224および出力226を有するエンコーダ222を示す。エンコーダ222は、メモリデバイスおよび/またはホストにおいてハードウェアおよび/またはソフトウェアで実装されうる。エンコーダ222は、入力224にて整数228、Rを受信し、出力226にて、インデックス整数230、Xを生成することができ、インデックス整数230、Xは、Rの代わりにメモリデバイスに記憶されうる。整数228、Rは、mデジットデータワードの10進値であり、Xは、入力整数Rに一意に対応するnデジットコードワードの10進値でありうる。
図3Aおよび図3Bは、本開示の1つまたは複数の実施形態による復号動作の機能ブロック図である。図3Aは、入力334および出力336を有するデコーダ332を示す。デコーダ332は、メモリデバイスおよび/またはホストにおいてハードウェアおよび/またはソフトウェアで実装されうる。デコーダ332は、入力334にてnデジットコードワード320を受信し、出力336にて、mデジットデータワード318を生成しうる。nデジットコードワード320は、mデジットデータワード318に一意に対応しうる。nデジットコードワード320は、メモリデバイスから取出され、mデジットデータワード318を生成するために復号されることができ、mデジットデータワード318は、メモリアクセスの結果として、たとえばホストに戻されうる。
図3Bは、入力340および出力342を有するデコーダ338を示す。デコーダ338は、メモリデバイスおよび/またはホストにおいてハードウェアおよび/またはソフトウェアで実装されうる。デコーダ338は、入力334にてインデックス整数330、Xを受信し、出力342にて、整数328、Rを生成しうる。ここで、Rは、mデジットデータワードの値でありうる。Xは、mデジットデータワードに一意に対応するnデジットコードワードの値でありうる。インデックス整数330、Xは、メモリデバイスから取出され、整数328、Rを生成するために復号されることができ、整数328、Rは、メモリアクセスの結果として戻されうる。
図4は、本開示の1つまたは複数の実施形態による、3ビットのデータを4ビットインデックスにマッピングすることを示す。本開示の1つまたは複数の実施形態によれば、数量nは数量mより大きい。たとえば、バイナリ環境では、メモリデバイスに実際に記憶されたnデジットコードワードは、入力mデジットデータワードより多くのビットを有する。しかし、本開示の実施形態は、mおよび/またはnについての任意の特定の値に限定されない。すなわち、mは、本開示で示す例で使用される値より大きいかまたは小さい場合がある。たとえば、mは16(または、何らかの他の非ゼロの正整数の数量)とすることができ、nは17(または、mより大きい、何らかの他の非ゼロの正整数の数量)とすることができる。
少数のビットを記憶することによって達成されるエンデュランスに優る、エンデュランスを増加させる方法としてより多くのビットを記憶することは、最初は反直感的であるように見える場合がある。しかし、図4および図5のマッピング例は、本開示の装置および方法によって達成可能な効率の例を示すことになる。図4は、3ビットの入力データ(たとえば、mビットデータワード)についての考えられるビットの組合せを含む第1の表(左側)、および、4ビットの符号化データ(たとえば、nビットコードワード)についての考えられるビットの組合せを含む第2の表(右側)を示す。考えられる3ビットの組合せ446は、第1の表の1つの列に示され、それぞれの3ビットの組合せに対応する整数444は、第1の表の別の列に示される。考えられる4ビットの組合せ448は、第2の表の1つの列に示され、それぞれの4ビットの組合せに対応する整数452は、第2の表の別の列に示される。さらに、第2の表は、それぞれの4ビットの組合せが1の数量以上である0の数量を含むかどうかについての指示450を含み、「Y」、すなわち、はいの場合、組合せは、1と少なくとも同数の0を含み、「N」、すなわち、いいえの場合、組合せは、1と少なくとも同数の0を含まない。
第1の表の行エントリと第2の表の行エントリの間に引かれたライン、たとえば454、456は、両者の間の例示的なマッピングを示し、そのマッピングは、入力される3ビットの入力データを直接(すなわち、非符号化状態で)記憶するときに関わることになるよりも少数の「1」データ状態が、符号化される4ビットのデータ(たとえば、nビットコードワード)を記憶するときに関わることを可能にする。たとえば、「000」の3ビットの組合せは、454で示すように、「0000」の4ビットの組合せに対応しうる。4ビットの組合せが、入力される3ビットの組合せに対応するSLCメモリデバイスに実際に記憶されるために、1つのさらなるメモリが必要とされるが、さらなるメモリセルは、入力される3ビットのデータがメモリデバイスに直接記憶された場合に比べて、より有害なデータ状態(たとえば、この例の場合、「1」データ状態)になるようにプログラムされないことが理解されるであろう。
同じ結果が、最初の7個のビットの組合せのそれぞれについて起こる。すなわち、最初の7個の示すビットの組合せの場合、3ビットの組合せが、最上位の「0」ビットを有する4ビットの組合せにマッピングされる。こうした場合のそれぞれにおいて、4ビットの組合せは、1の数量以上である0の数量を有する。それぞれのこうした場合、最上位の「0」ビットは、利用可能なSLCメモリのさらなる部分を使用するが、さらなるメモリセルが、より有害であると予想されるデータ状態になるようプログラムされないため、さらなるビットは、メモリにとってさらなる摩耗を引起さないはずである。すなわち、SLCメモリデバイスの場合、より有害でないさらなるビットが記憶されるメモリセルは、より有害なビットが記憶されるメモリセルと同じ、プログラム/消去サイクルによって引起される摩耗に必ずしもさらされない。
入力される3ビットの組合せの最後(すなわち、「111」)は、図4に示され、456で示すように、1の数量以上である0の数量を有する、次の利用可能な4ビットの組合せにマッピングされる。この例では、「111」の3ビットの組合せは、「1000」の4ビットの組合せにマッピングされる。「1000」の4ビットの組合せを実際に記憶することは、SLCデバイス内でさらなるビットの利用可能なメモリ空間を使用するが、1つのメモリセルだけが、摩耗にとってより有害であると予想されるデータ状態になるようプログラムされることが理解されるべきである。「111」の入力される3ビットの組合せが、SLCメモリに実際に記憶された場合、3つのメモリセルは、より有害なデータ状態になるようプログラムされることになり、したがって、より有害なデータ状態になるようプログラムされた2つのさらなるメモリセルにとってより多くの摩耗を引起す。
図4の左の表に示す8つの3ビットの組合せが、全部で24ビット(すなわち、8×3=24)を含み、24ビットの中で、ビットの半分(すなわち、12)が0であり、ビットの半分(すなわち、12)が1であることが理解されるべきである。未処理入力データが、均等に分布するランダムデータとしてモデル化されることができ、8つの3ビットの組合せのそれぞれが、こうしたランダムデータにおいて起こる可能性が等しくあるため、SLCメモリに非符号化入力データを記憶することが、メモリセルの50%が、平均して、より有害なデータ状態になるようプログラムされることをもたらすことになることが予想される。しかし、代わりに、それぞれのmデジットデータワードに対応するnデジットコードワードを記憶することによって、メモリセルの半分未満が、より有害なデータ状態になるようプログラムされることが予想されることになる。
示す例では、SLCメモリが、入力データの8つの考えられる3ビットの組合せにマッピングされる符号化された4ビットの組合せのそれぞれの1つのインスタンスを記憶した場合、10のメモリセルだけが、8つの3ビットの組合せの全てに対応する符号化データを記憶するために、より有害なデータ状態になるようプログラムされることになる。均等に分布するランダムデータにそれを拡張すると、メモリセルの10/24、または42%だけが、平均して、より有害なデータ状態になるようプログラムされることになると予想されうる。したがって、mデジットセグメント、たとえば、mデジットデータワードに分割されうる入力データに対応し、その結果として対応するnデジットセグメント、たとえば、nデジットコードワードが記憶される符号化データを記憶するために、より少数のメモリセルが、平均して、より有害なデータ状態になるようプログラムされるはずであるため、メモリデバイスは、少ない摩耗にさらされるはずである。すなわち、3ビットの入力データを記憶する代わりに、4ビット符号化物を記憶することは、メモリセルの、平均して16%(100%−84%)少ない摩耗、したがって、より大きなメモリエンデュランスをもたらすはずである。
データを取出すとき、記憶されたnデジットコードワードが復号されて、対応するmデジット入力データが生成されうる。符号化および復号はまた、それぞれのmデジットデータワードおよびnデジットコードワードについて整数値を使用した整数計算を使用して行われうる。
図5は、本開示の1つまたは複数の実施形態による、3ビットのデータを5ビットの組合せ(例えば、入力データがマッピングされうる、考えられるデジットの組合せのセットであるインデックス)にマッピングすることを示す。より大きなエンデュランスが、さらに多くのビットを有する組合せを記憶することによって達成されうる。コストは、さらなるビットを記憶するための利用可能なメモリデバイス容量のより大幅な使用である。しかし、さらなるメモリセルは、より有害なデータ状態になるようプログラムされないため、容量のさらなる使用は、メモリセルに関するさらなる摩耗を引起さないはずである。実際には、メモリセルの摩耗は、さらに低減されるはずであり、それが、メモリエンデュランスをさらに増加させる。
図5は、3ビットの入力データについての考えられる組合せを含む第1の表(左側)、および、5ビットの符号化データ(たとえば、nビットコードワード)についての考えられる組合せを含む第2の表(右側)を示す。考えられる3ビットの組合せ546は、第1の表の1つの列に示され、それぞれの3ビットの組合せに対応する整数544は、第1の表の別の列に示される。考えられる5ビットの組合せ558は、第2の表の1つの列に示され、それぞれの5ビットの組合せに対応する整数562は、第2の表の別の列に示される。さらに、第2の表は、それぞれの5ビットの組合せが1の数量以上である0の数量を含むかどうかについての指示560を含み、「Y」、すなわち、はいの場合、組合せは、1と少なくとも同数の0を含み、「N」、すなわち、いいえの場合、組合せは、1と少なくとも同数の0を含まない。
第1の表の行エントリと第2の表の行エントリの間に引かれたライン、たとえば564、565、566は、両者の間の例示的なマッピングを示し、そのマッピングは、入力される3ビットの入力データを記憶するときに関わることになるよりも少数の「1」データ状態が、符号化される5ビットのデータ(たとえば、nビットコードワード)を記憶するときに関わることを可能にする。たとえば、「000」の3ビットの組合せは、564で示すように、「00000」の5ビットの組合せに対応しうる。5ビットの組合せが、入力される3ビットの組合せに対応するSLCメモリデバイスに実際に記憶されるために、2つのさらなるメモリが必要とされるが、さらなるメモリセルは、3ビットのデータがメモリデバイスに直接記憶された場合に比べて、より有害なデータ状態(たとえば、この例の場合、「1」データ状態)になるようにプログラムされないことが理解されるであろう。
同じ結果が、最初の6個のビットの組合せのそれぞれについて起こる。すなわち、最初の6個の示すビットの組合せの場合、3ビットの組合せが、2つの最上位ビットが「0」に設定されている5ビットの組合せにマッピングされる。こうした場合のそれぞれにおいて、5ビットの組合せは、1の数量以上である0の数量を有する。それぞれのこうした場合、最上位の「0」ビットは、利用可能なSLCメモリのさらなる部分を使用するが、さらなるメモリセルが、より有害であると予想されるデータ状態になるようプログラムされないため、さらなるビットは、メモリにとってさらなる摩耗を引起さないはずである。すなわち、SLCメモリデバイスの場合、有害でないさらなるビットが記憶されるメモリセルは、より有害なビットが記憶されるメモリセルと同じ、プログラム/消去サイクルによって引起される摩耗に必ずしもさらされない。3ビットの組合せのそれぞれは、1より多くの0を有する5ビットの組合せにマッピングされる。
左の表の最後の2つのエントリのマッピングは、図4に関して述べたのと同様な方法で右の表の組合せにマッピングされうるが、さらに上位の「0」ビットを有する。しかし、さらなるビットを有する組合せを使用することのコストと引き換えに、さらなる効率は得られない。さらなるエンデュランスが所望される場合、マッピングスキームが変更されて、より有害なデータ状態によって表される最小数のビットを有する組合せを利用することができる。
たとえば、また、図5に示すように、「110」の入力される3ビットの組合せは、「01000」の5ビットの組合せにマッピングされ、「111」の入力される3ビットの組合せは、「10000」の5ビットの組合せにマッピングされることができ、それぞれの符号化式組合せは、より有害なデータ状態の1つだけを使用し、それにより、入力データを直接(すなわち、非符号化状態で)記憶するために必要とされることになる5つのメモリセルではなく、より有害なデータ状態になるようプログラムされるSLCメモリの2つのメモリセルだけを使用する。そのため、種々の3ビットの組合せのそれぞれに対応する8つの5ビットの組合せの1つのインスタンスを記憶するために、より有害なデータ状態になるようプログラムされる必要があるSLCメモリのメモリセルの総数量は、今や、12ではなくたった9である。すなわち、均等に分布するランダム入力を仮定すると、3ビット入力データを記憶する代わりに5ビットの組合せを記憶することは、メモリセルの、平均して25%(100%−75%)少ない摩耗、したがって、より大きなメモリエンデュランスをもたらすはずである。
図6は、本開示の1つまたは複数の実施形態による、装置に関わるメモリエンデュランス動作の機能ブロック図である。本開示の1つまたは複数の実施形態によれば、mデジットデータワード618(すなわち、mデジットのデータ)は、エンコーダ6123に入力されて、nデジットコードワード620(すなわち、nデジットのデータ)生成しうる。ここで、nはmより大きい。nデジットコードワード620は、メモリ604に通信され、メモリ604に記憶されうる。すなわち、より大きなnデジットコードワード620が、より小さなmデジットデータワード618の代わりに通信および/または記憶される。より大きなnデジットコードワード620は、その後、メモリ604から取出され、デコーダ632に通信され、入力されて、より小さな元のmデジットデータワード618が生成されうる。
先に述べたように、mデジットデータワード618の代わりにnデジットコードワード620を記憶するために、より多くのメモリが使用されることになる。しかし、mデジットデータワード618とnデジットコードワード620との間のマッピングを制約することによって、nデジットコードワード620を記憶することは、オリジナルのmデジットデータワード618を記憶することに比べてメモリ604のメモリセルをより少なく摩耗させることができ、それにより、摩耗が低減され、エンデュランスが増加する。
mデジットのデータと対応するnデジットのデータとの間で符号化し復号する1つの考えられる方法は、列挙コーディングを使用することによる。本開示の種々の実施形態によれば、列挙コーディングは、最初のデータ伸張(すなわち、データ圧縮の逆)ならびに最初のデータ圧縮のために使用されうる。列挙コーディングデータ圧縮方策は、集合Sの要素を表すためにlog|S|ビットだけ必要とする。ここで、|S|は集合S内の要素の数である。たとえば、集合が128の要素を有する場合、集合Sの128の要素の1つの要素の場所は、2=128であるため、7ビットで表されうる。すなわち、7ビットの種々の組合せは、集合Sの128の要素の一意の要素に対応する。集合Sの各要素がnデジットのデータである場合、log||S|/nの圧縮比が達成されうる。こうした圧縮を達成するために、効率的な符号化および復号スキームが、集合Sの要素について必要とされる。集合Sの要素が適切に順序付けされる場合、こうした順序付けに関して効率的な符号化および復号スキームを考案することが可能である。
本開示に関して、列挙コーディングデータ伸張技法が利用されうる。特定の長さnが経験的に選択されることができ、入力長mをn未満になるよう制約する。本開示の1つまたは複数の実施形態によれば、入力されるmデジットのデータは、より長いnデジットのデータに対応するより短い列挙符号化数量である。しかし、本開示によれば、より短いmデジットのデータではなく、より長いnデジットのデータコードワードが通信および/または記憶されうる。
たとえば、バイナリデータを記憶するSLCメモリについてメモリエンデュランス技法で使用するために、17がnとして選択されうる。こうしたnデジットコードワード内の(たとえば、より有害な状態によって表される)1の数が、2つの限界wとwとの間になければならないという制約が課されうる。たとえば、wおよびwの値は、w=0およびw=8であるように選択されうる。しかし、これらのパラメータの値は、例証のためにここで選択される値と異なりうる。この特定の制約は、より有害な非消去状態、たとえば「1」の場合より多く、または少なくとも同数の、有害でない消去状態、たとえば「0」の、ビットを有するように各17ビットコードワードに強制することになる。一般に、wおよびwは、以下の制約、すなわち、w≧0およびw≦nを満たすように任意に設定されうる。
この例の場合、上述した制約、すなわち、17ビットの組合せが、より有害なデータ状態によって表される0〜8ビットを有することを満たすnデジットコードワードの集合Sが、その後生成されうる。より有害な論理1によって表される0〜7ビットを含む17ビットコードワードの集合のサイズは、|S|によって示されうる。次に、log|S|が計算されうる。log|S|が分数である場合、log|S|より小さい最大整数、すなわち、floor(X)がX以下の最大整数を意味するfloorが決定されうる。入力データワードのサイズmが、floor(log|S|)に等しく設定されうる。その理由は、バイナリデータの場合、2≦|S|であり、レートm/nコードが構築されうることが保証されるからである。
到来するデータは、符号化のためにmビットデータワードに分解されうる。すなわち、いずれの任意のmビットバイナリデータワードも、集合Sの要素である17ビットコードワードの一意のコードワードにマッピングされうる。これは、レートm/nコードを可能にし、m/nは、コードワードにおいて、より有害なデータ状態、すなわち1によって表されるビットの数量に対する上述した制約に関して考えられる最高レートである。
以下の議論は、メモリエンデュランスのためにメモリデバイスを動作させる方法の1つの考えられる実装態様に関しており、SLCメモリセルを利用するメモリデバイスについて、入力されるmビットデータワードとnビットコードワードとの間を対応付ける符号化および復号技法を含み、nおよびmは、上述したように決定される。本開示の装置および方法のSLCアプリケーションとして、データは、たとえばビットの部分組合せまたは16進デジットではなく、個々のビットによって表現される。しかし、本開示の実施形態は、この特定の技法に限定されず、他の方法、計算、および/またはマッピング技法によって実装されうる。
nビットコードワードがメモリデバイスから取出されることと連携して起こるような、オリジナルのmビットデータワードを再生するためにnビットコードワードを復号することは、次のように実装されうる。考えられるコードワードの集合S内でnビットコードワードb…bが与えられる場合、nビットコードワードをスキャンすることが、左側から右側に(たとえば、最上位ビットから最下位ビットに)始まりうる。全てのビットbについて、数量qが、次のように決定されうる。
Figure 2014529827
ここで、wとwとの間(wとwを含めて)の各pについて、l(p,i)=p−(b…b内の最初の(i−1)ビットの和)である。これらの全ての計算されたq値が、加算されて、次のように、S内のコードワードb…bに対応するオリジナルのmビットバイナリデータワードの値Rが得られうる。
Figure 2014529827
の決定は、i番目のビットが1である(すなわち、b=1である)ときだけに起こることが認められる。b=0であるとき、qも0であるため、アクションは必要とされない。したがって、復号は、たとえば、2つの「for」ループを使用して達成されうる。ここで、全ての数量が、一定であり、予め決定され、必要に応じて取出されうる。mビットデータワードは、従来の方法で値Rから導出されうる。
nビットコードワードがメモリデバイスに記憶されることと連携して起こるような、nビットコードワードを生成するために元のmビットデータワードを符号化することは、次のように実施されうる。変数Lが、Rに設定されうる。ここで、Rは、符号化される元のmビットデータワードに等価な整数である。その後、カウンタi=1で始めて、
Figure 2014529827
が決定されうる。ここで、l(p,i)=p−(b…b内の最初の(i−1)ビットの和)である。RがSより大きい場合、bは、1に等しく設定される。Rは、R−Sに等しくなるよう更新され、カウンタiは増分され、iがnを超えるまで、Sの反復決定が継続する。RがSより大きくない場合、bは、「0」に等しく設定され、Rは、R−Sに等しくなるよう更新され、iは増分され、iがnを超えるまで、Sの反復決定が継続する。
先の議論は、バイナリデータおよびSLCメモリセルの特別な場合に関していた。以下の議論は、メモリエンデュランスのための方法の考えられる別の実装態様に関しており、たとえば、MLCメモリセルを利用するメモリデバイスに適用可能である、入力されるmデジットデータワードとnデジットコードワードとの間を対応付ける符号化および復号技法を含む。本開示の実施形態は、この特定の技法に限定されず、メモリエンデュランスのための方法は、他の方法、計算、および/またはマッピング技法によって実装されうる。
mデジットデータワードの代わりに記憶されるnデジットコードワードの集合を、バイナリデータおよびSLCメモリセルについて図4および図5に関して先に論じたのと同様に、より有害なデータ状態によって表される少数のビットを持つようにスキューさせることは、それ自体で、符号化データ内の複数の状態(たとえば、00,01,10,11}の4つのデータ状態、{000,001,010,011,100,101,110,111}の8つのデータ状態など)のそれぞれの状態の分布を変更して、MLCデバイスのエンデュランスを改善しうる。
MLCストレージでは、データ状態は、異なる電圧レベルで書込まれうるため、等しく有害ではない。先に論じたバイナリ方法の例の場合、より有害な1のデータ状態が制限された。MLCセルについて1のデータ状態を制限することは、2ビットMLCについての10、01、および11などの非ゼロの(たとえば、より有害でない)データ状態の発生を間接的に制限しうる。デジット1が、この3つのより有害な状態の一部でありうるからである。しかし、よりよいアプローチは、マルチデジットアルファベットのメンバ(たとえば、2ビットMLCについての{0,1,2,3})として各グループ化を処理することによって、複数のビットのグループ化(たとえば、2ビットMLCについての11、10、および01)の発生に直接影響を及ぼすことである。そのアプローチは以下でさらに論じられる。したがって、これらのさらなるデータ状態特性を考慮することによって、SLCメモリセルの摩耗エンデュランスを改善するために適用されるコードより効率的にMLCをプログラムのために、データ状態をより明示的に制御するMLCシェーピングコード(shaping code)を実装することが可能である。
列挙コーディングは、順序付けされた集合S内の場所に対する参照(たとえば、インデックス)として符号化される順序付けされた集合S内に要素を含む。異なる順序付けが可能であるが、辞書式順序付けは、Sのメンバについて効率的な符号化および復号アルゴリズムの開発を可能にする。それぞれの英数字デジットについての「アルファベット(alphabet)」がM個の考えられるデータ状態{1,2,…,M}からなり、それぞれがMデータ状態のそれぞれの1つのデータ状態によって表されると仮定し、また、コードワードがnデジット長であると仮定すると、それぞれのコードワード内のアルファベットについて予め規定された重み分布{w,w,…,w}を課す符号化および復号アルゴリズムが開発されうる。換言すれば、w+w+…+w=nである。こうした集合|S|のサイズは、多項の公式:
Figure 2014529827
を使用して計算されうる。
公式は、次のように2項の積として表現されうる。
Figure 2014529827
M個のデータ状態、すなわち、SLCにおけるM=2のデータ状態{1,2}、2ビット/セルMLCにおけるM=4のデータ状態{1,2,3,4}、3ビット/セルMLCにおけるM=8のデータ状態{1,2,3,…,8}、または単にMデータ状態/セルの場合のM=Mのデータ状態{1,2,…,M}を仮定する。ここで、各レベルは、サイズMのアルファベットのメンバとして処理される。nデジットコードワードの集合Sであって、重み分布{w,w,…,w}が各コードワードに課される、nデジットコードワードの集合Sを考える。集合のサイズ|S|が決定されうる。m=floor(log|S|)とすることによって、任意のmデジットデータワードは、S内のnデジットコードワードの場所を示す。これは、レートm/nコードを可能にし、コードレートは、ビット/レベルとして表現される。コードレートは、
Figure 2014529827
を決定することによってビット/ビットで表現されうる。
全体のリストSは、(たとえば、メモリデバイスにおいて)構築または維持される必要がない。すなわち、mデジットデータワードおよび対応するnデジットコードワードは、計算的に決定されて、集合Sを記憶するためのメモリ空間を使用することを回避しうる。しかし、本開示の実施形態は、そのように限定されず、Sの要素として所望の制約を満たすnデジットコードワードおよびmデジットデータワードを含む記憶された表によって実装されうる。mデジットデータワードは、マッピングまたはルールによってnデジットコードワードに直接マッピングされうる。また、その逆も直接行われる。しかし、マッピングは、nデジットコードワードが順序付けされたリスト内にあるという暗黙知に頼る。
nデジットコードワードにおいて多状態法を継続すると、各デジットが、その対応するバイナリタプルと置換されて、バイナリシーケンスを生成しうる。アルファベットのメンバが、バイナリ形態に変換されるときに、辞書式順序付けに適合する必要があるという要件が存在しないことを含む一定の利点が、{1,2,…,M}としてアルファベットを見るときに実現されうる。これは、データ状態のグレイコード順序付けまたはその事についての任意の他の順序付けを可能にする。別の利点は、Mが2のべき乗である必要がないことであり、3.8ビット/セル等のような場合のコーディングを可能にする。
nデジットコードワードは、辞書的に順序付けられたリスト内でnデジットのストリングxである。nデジットコードワードは、
Figure 2014529827
を決定することによって、導出されうる。ここで、Iはnデジットコードワードの整数値であり、n(x,x,…,xj−1,m)は、x,x,…,xj−1,mで始まるnデジットコードワードの数である。インデックスjは、コードワードが左側から右側にスキャンされるときに検査される現在のデジットの位置である。すなわち、コードワードがx…xで表され、デジットxが現在検査されている場合、j=6である。
アルファベットは、内部にM個のデジットを有するため、xは、アルファベット{1,2,3,…,M}からのM個の文字の任意の文字でありうる。数量Mは、変数mとは区別される。数量Mは、それぞれの位置についての可能性の数(たとえば、アルファベット内のデジットの数)である。たとえば、x=6の場合、x…xj−11で始まる全ての語、x…xj−12で始まる全ての語、x…xj−13で始まる全ての語、x…xj−14で始まる全ての語、x…xj−15で始まる全ての語を計数する。こうした全ての語は、x…xj−16で始まる語に先行することになる。これは、たとえば、辞書内で語がどのように配列されるかを反映する。
したがって、x…xj−16で始まる語の場所は、x…xj−11で始まる語、x…xj−12で始まる語、x…xj−13で始まる語、x…xj−14で始まる語、x…xj−15で始まる語の総計数を超えることになる。その理由は、これらの全ての語がリスト内でより早く現れることになるからである。これは、その内部加算が、上記公式で行っていることである。x=6の特定の例では、それが、1で始まって加算がx−1=5まで進む理由である。これらの加算は、コードワードが、位置番号1、すなわちj=1から、コードワードの最後の位置、すなわちj=mまですっかりスキャンされるときに計算される。
MLCコーディング法に関して、k=1:nについて整数iを符号化するために、i>n(x,x,…,xk−1,m−1)でかつi≦n(x,x,…,xk−1,m)である場合に、xがmに設定されるように、アルファベット{1,2,3,…,M}に属する文字mを見出す。カウンタiは、i−n(x,x,…,xk−1,m−1)に等しくなるよう調整され、決定は、たとえば「for loop」として反復的に決定されうる。これは、n個のデータ状態x…xのストリングを出力することになる。最後に、各レベルがその対応するバイナリタプルと置換されて、バイナリストリングを生成しうる。
特定の実施形態が、本明細書で示され述べられたが、同じ結果を達成するために計算される配置構成が、示す特定の実施形態と置換えられうることを当業者は理解するであろう。本開示は、本開示の種々の実施形態の適応形態または変形形態を包含することを意図される。上記説明が、制限的な方法ではなく例証的な方法で行われたことが理解される。上記実施形態および本明細書で具体的に述べられていない他の実施形態の組合せが、上記説明を検討すると、当業者に明らかになる。本開示の種々の実施形態の範囲は、上記構造および方法が使用される他のアプリケーションを含む。したがって、本開示の種々の実施形態の範囲は、添付特許請求の範囲を参照して、特許請求の範囲が権利を与えられる均等物の全範囲と共に決定されるべきである。
先の詳細な説明では、種々の特徴が、本開示を効率化するために単一の実施形態に共にグループ化される。開示のこの方法は、本開示の開示される実施形態が、各特許請求項で明示的に引用されるよりも多くの特徴を使用しなければならないという意図を反映するものと解釈されない。むしろ、添付特許請求の範囲が反映するように、発明の主題は、開示される単一の実施形態の全ての特徴より少数の特徴に存在する。そのため、添付特許請求の範囲は、詳細な説明に組込まれ、各請求項は、別個の実施形態としてそれ自身を主張する。

Claims (26)

  1. 第2のデータ状態に比べてメモリセル摩耗にとってより有害である第1のデータ状態によって表される第1の数量のデジットを有するmデジットのデータを受信すること、
    前記mデジットのデータをnデジットのデータにエンコードすることであって、前記nデジットのデータは、前記第1のデータ状態によって表される第2の数量のデジットを有し、nはmより大きく、前記第2の数量は、前記第1の数量以下である、符号化(encode)すること、および、
    前記nデジットのデータを、メモリセルを有する装置に記憶することを含む方法。
  2. 前記装置から前記nデジットのデータを取出すこと、および、
    前記nデジットのデータを前記mデジットのデータに復号することをさらに含む請求項1に記載の方法。
  3. 前記装置はメモリデバイスを備え、ホストと前記メモリデバイスとの間で前記nデジットのデータを通信することをさらに含み、前記符号化することおよび前記復号することは、前記ホストで起こる請求項2に記載の方法。
  4. 前記装置はメモリデバイスを備え、ホストと前記メモリデバイスとの間で前記mデジットのデータを通信することをさらに含み、前記符号化することおよび前記復号することは、前記メモリデバイスで起こる請求項2に記載の方法。
  5. 前記mデジットのデータはmビットのデータを含み、前記nデジットのデータはnビットのデータを含み、前記メモリセルは、単一レベルメモリセルを備える請求項1〜4のいずれか1項に記載の方法。
  6. 前記メモリセルは、マルチレベルメモリセルを備える請求項1〜4のいずれか1項に記載の方法。
  7. 前記nデジットのデータは、ある集合Sの考えられるコードワードの1つのコードワードであり、|S|は、集合S内のコードワード要素の数量であり、m=floor(log|S|)である請求項1〜4のいずれか1項に記載の方法。
  8. メモリセルを有する装置内に記憶されたnデジットのデータを受信することであって、前記nデジットのデータは、第2のデータ状態に比べて第1のデータ状態によって表されるデジットをより多くは有さず、前記第1のデータ状態は、前記第2のデータ状態に比べてメモリセル摩耗にとってより有害である、受信すること、および、
    前記nデジットのデータをmデジットのデータに復号することを含み、
    nはmより大きく、前記mデジットのデータは、前記第2のデータ状態に比べて前記第1のデータ状態によって表されるデジットをより多く有する方法。
  9. 前記nデジットのデータは、w〜wの範囲内で前記第1のデータ状態によって表される、ある数量のデジットを有し、wは、w以上であり、
    前記nデジットのデータをmデジットのデータに復号することは、
    最上位デジットbで始めて最下位デジットbまで、各デジットbについて、数量
    Figure 2014529827
    を決定することであって、l(p,i)は、p−(b…b内の最初の(i−1)デジットの和)に等しい、決定すること、および、
    前記nデジットのデータに対応する前記mデジットのデータについて等価な整数として値
    Figure 2014529827
    を決定することであって、論理「1」は前記第1のデータ状態によって表される、決定することを含む請求項8に記載の方法。
  10. 前記装置はメモリデバイスを備え、方法は、前記nデジットのデータを前記メモリデバイスに記憶することをさらに含み、wは0より大きく、wはn以下である請求項9に記載の方法。
  11. はn/2以下である請求項10に記載の方法。
  12. 前記mデジットのデータを前記nデジットのデータに符号化することをさらに含み、前記符号化することは、
    前記mデジットのデータを受信すること、
    L=Rおよびi=1に設定することであって、Rは、前記mデジットのデータに等価な整数である、設定すること、
    各iについて、iがnを超えるまで、
    Figure 2014529827
    を決定することであって、l(p,i)=p−(b…b内の第1の(i−1)のデジットの和)である、決定すること、
    R>Sである場合、b=1に、又は、R≦Sである場合、b=0に設定すること、および、
    R=R−Sでかつi=i+1になるよう更新すること
    を反復して実施することを含み、
    は0より大きく、wはn/2以下である請求項9に記載の方法。
  13. 前記装置はメモリデバイスを備え、方法は、ホストと前記メモリデバイスとの間で前記nデジットのデータを通信することをさらに含み、前記復号することおよび前記符号化することは、前記ホストで起こる請求項8〜12のいずれか1項に記載の方法。
  14. 前記装置はメモリデバイスを備え、方法は、ホストと前記メモリデバイスとの間で前記mデジットのデータを通信することをさらに含み、前記復号することおよび前記符号化することは、前記メモリデバイスで起こる請求項8〜12のいずれか1項に記載の方法。
  15. 前記nデジットのデータは、辞書式に順序付けされたリストの要素であり、nデジットのデータの各デジットは、前記第2のデータ状態に比べて、メモリセル摩耗にとってより有害である複数のデータ状態の1つのデータ状態によって表され、
    前記mデジットのデータを決定することは、Iを
    Figure 2014529827
    として決定することを含み、ここで、n(x,x,…,xj−1,m)は、x,x,…,xj−1,mで始まるnデジットのデータの数である請求項8〜12のいずれか1項に記載の方法。
  16. 整数値Iを有する前記mデジットのデータであって、文字x…xを含む、前記mデジットのデータを受信すること、
    i>n(x,x,…,xk−1,m−1)の場合またi<n(x,x,…,xk−1,m)の場合、各xについてx=mと設定し、i=i−nS(x,x,…,xk−1,m−1)に調整することによって、各デジットxであって、アルファベット{1,2,3,…,M}に属する、各デジットxをk=1:nについて反復的に決定することによって、
    前記mデジットのデータに対応する前記nデジットのデータを決定することをさらに含む請求項15に記載の方法。
  17. 前記nデジットのデータの前記デジットは、前記アルファベットに対応する予め定義された重み分布{w,w,…,w}に従うデータ状態によって表されるデジットを有し、w+w+…+w=nである請求項16に記載の方法。
  18. 前記nデジットのデータが、その要素である集合Sのサイズは、
    Figure 2014529827
    である請求項16に記載の方法。
  19. 前記集合Sのサイズは、
    Figure 2014529827
    によって定義される二項の積である請求項18に記載の方法。
  20. 装置であって、
    メモリと、
    コントローラと
    を備え、前記コントローラは、前記メモリに通信可能に結合され、
    第2のデータ状態に比べてメモリセル摩耗にとってより有害である第1のデータ状態によって表される第1の数量のデジットを有するmデジットのデータを受信し、
    前記mデジットのデータをnデジットのデータにエンコードし、前記nデジットのデータは、前記第1のデータ状態によって表される第2の数量のデジットを有し、nはmより大きく、前記第2の数量は、前記第1の数量以下であり、
    前記nデジットのデータを、メモリセルを有する前記メモリに記憶する
    ように構成される装置。
  21. 前記nデジットのデータは、異なるnデジットのデータの集合Sの要素であり、mは、floor(log|S|)以下である請求項20に記載の装置。
  22. それぞれのmデジットのデータは、列挙コーディングを使用して前記異なるnデジットのデータの集合Sの一意のnデジットのデータに関連付けられる請求項21に記載の装置。
  23. 前記コントローラは、集合Sの前記nデジットのデータのそれぞれを、対応するmデジットのデータに復号するようにさらに構成される請求項21〜22のいずれか1項に記載の装置。
  24. mはfloor(log|S|)に等しい請求項21〜22のいずれか1項に記載の装置。
  25. 装置であって、
    メモリセルを有するメモリと、
    コントローラとを備え、前記コントローラは、前記メモリに結合され、
    前記メモリセルに記憶されたnデジットのデータを受信し、前記nデジットのデータは、第2のデータ状態に比べて第1のデータ状態によって表されるデジットを同数以下有し、前記第1のデータ状態は、前記第2のデータ状態に比べてメモリセル摩耗にとってより有害であり、
    前記nデジットのデータを前記mデジットのデータに復号する
    ように構成され、
    nはmより大きく、前記mデジットのデータは、前記第2のデータ状態に比べて前記第1のデータ状態によって表される、より多くのデジットを有する装置。
  26. 前記メモリに通信可能に結合されたホストをさらに備え、前記ホストは、非一時的メモリに記憶された命令であって、
    前記mデジットのデータを受信し、
    前記mデジットのデータを前記nデジットのデータに符号化し、
    前記nデジットのデータを前記メモリに記憶する
    ための、命令を実行するように構成されるメモリアクセスデバイスを含む請求項25に記載の装置。
JP2014528595A 2011-08-31 2012-08-30 メモリエンデュランスのために動作させる装置および方法 Active JP5785330B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/222,942 2011-08-31
US13/222,942 US8495285B2 (en) 2011-08-31 2011-08-31 Apparatuses and methods of operating for memory endurance
PCT/US2012/053107 WO2013033375A1 (en) 2011-08-31 2012-08-30 Apparatuses and methods of operating for memory endurance

Publications (2)

Publication Number Publication Date
JP2014529827A true JP2014529827A (ja) 2014-11-13
JP5785330B2 JP5785330B2 (ja) 2015-09-30

Family

ID=47745346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014528595A Active JP5785330B2 (ja) 2011-08-31 2012-08-30 メモリエンデュランスのために動作させる装置および方法

Country Status (6)

Country Link
US (3) US8495285B2 (ja)
EP (1) EP2751659A4 (ja)
JP (1) JP5785330B2 (ja)
KR (1) KR101508890B1 (ja)
CN (1) CN103782266B (ja)
WO (1) WO2013033375A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218897A (ja) * 2015-05-25 2016-12-22 株式会社東芝 コントローラ、制御方法
JP2018022546A (ja) * 2016-08-02 2018-02-08 株式会社東芝 ストレージシステム用のセル位置プログラミング

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602316B1 (ko) 2009-02-09 2016-03-22 삼성전자주식회사 반도체 메모리 장치 및 그것의 데이터 처리 방법
US20140089560A1 (en) * 2012-09-25 2014-03-27 Adesto Technologies Corporation Memory devices and methods having write data permutation for cell wear reduction
JP6129635B2 (ja) * 2013-04-30 2017-05-17 サイプレス セミコンダクター コーポレーション 制御方法、制御プログラム、および制御装置
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489294B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489300B2 (en) * 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
KR101508665B1 (ko) 2013-11-27 2015-04-08 서울대학교산학협력단 비휘발성 메모리 장치, 이를 위한 메모리 제어기 및 동작 방법
US9239679B2 (en) 2013-12-19 2016-01-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System for efficient caching of swap I/O and/or similar I/O pattern(s)
US9996299B2 (en) 2015-06-25 2018-06-12 Western Digital Technologies, Inc Memory health monitoring
US10452533B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Access network for address mapping in non-volatile memories
US10445232B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Determining control states for address mapping in non-volatile memories
US10452560B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US9921969B2 (en) 2015-07-14 2018-03-20 Western Digital Technologies, Inc. Generation of random address mapping in non-volatile memories using local and global interleaving
US10445251B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US10114549B2 (en) 2016-03-17 2018-10-30 Sandisk Technologies Llc Error correction code processing and data shaping for reducing wear to a memory
US10566052B2 (en) 2017-12-22 2020-02-18 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10431301B2 (en) * 2017-12-22 2019-10-01 Micron Technology, Inc. Auto-referenced memory cell read techniques
KR20210013397A (ko) 2019-07-24 2021-02-04 삼성전자주식회사 스토리지 장치
EP3783611B1 (en) * 2019-07-24 2023-02-22 Samsung Electronics Co., Ltd. Storage device that performs state shaping of data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100281340A1 (en) * 2009-04-30 2010-11-04 International Business Machines Corporation Adaptive endurance coding of non-volatile memories

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US6794997B2 (en) 2003-02-18 2004-09-21 Sun Microsystems, Inc. Extending non-volatile memory endurance using data encoding
US7095075B2 (en) 2003-07-01 2006-08-22 Micron Technology, Inc. Apparatus and method for split transistor memory having improved endurance
US20050213393A1 (en) * 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7565391B2 (en) 2004-12-17 2009-07-21 The Regents Of The University Of California Binary digit multiplications and applications
US7644225B2 (en) * 2006-10-17 2010-01-05 Intel Corporation Performance or power-optimized code/data storage for nonvolatile memories
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
US7924623B2 (en) 2008-05-27 2011-04-12 Micron Technology, Inc. Method for memory cell erasure with a programming monitor of reference cells
CN101685675B (zh) * 2008-09-26 2014-01-15 美光科技公司 存储器单元操作
US8195899B2 (en) 2008-09-26 2012-06-05 Micron Technology, Inc. Memory cell operation
WO2010067361A1 (en) * 2008-12-10 2010-06-17 Amir Ban Method and device of managing a reduced wear memory
EP2396791B1 (en) * 2009-02-12 2014-08-06 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
CN102005243B (zh) 2009-08-31 2014-02-05 中芯国际集成电路制造(上海)有限公司 差分闪存器件及提高差分闪存器件耐久性的方法
US8036016B2 (en) 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance
US8009471B2 (en) * 2009-12-15 2011-08-30 Seagate Technology Llc Low-wear writing in a solid state memory device
US8301828B2 (en) * 2010-06-02 2012-10-30 Conexant Systems, Inc. Systems and methods for reliable multi-level cell flash storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100281340A1 (en) * 2009-04-30 2010-11-04 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
JP2010262640A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 不揮発性メモリの適応型エンデュランス・コーディング方法及びシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218897A (ja) * 2015-05-25 2016-12-22 株式会社東芝 コントローラ、制御方法
JP2018022546A (ja) * 2016-08-02 2018-02-08 株式会社東芝 ストレージシステム用のセル位置プログラミング

Also Published As

Publication number Publication date
EP2751659A1 (en) 2014-07-09
WO2013033375A1 (en) 2013-03-07
KR20140046070A (ko) 2014-04-17
US8495285B2 (en) 2013-07-23
US20130311714A1 (en) 2013-11-21
CN103782266B (zh) 2017-02-15
KR101508890B1 (ko) 2015-04-07
JP5785330B2 (ja) 2015-09-30
US20130054876A1 (en) 2013-02-28
CN103782266A (zh) 2014-05-07
US20140337564A1 (en) 2014-11-13
EP2751659A4 (en) 2015-04-22
US9105350B2 (en) 2015-08-11
US8762630B2 (en) 2014-06-24

Similar Documents

Publication Publication Date Title
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
JP6606039B2 (ja) メモリシステムおよび制御方法
US9985651B2 (en) Read threshold calibration for LDPC
US10007573B2 (en) Preferred state encoding in non-volatile memories
US8176234B2 (en) Multi-write coding of non-volatile memories
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
US8984373B2 (en) Method for accessing flash memory and associated flash memory controller
US9405622B2 (en) Shaping codes for memory
US10795827B2 (en) Adaptive management of intermediate storage
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
US9411529B2 (en) Mapping between program states and data patterns
US20170263331A1 (en) Memory system
US10324785B2 (en) Decoder using low-density parity-check code and memory controller including the same
CN113076218B (zh) Nvm芯片读数据错误快速处理方法及其控制器
US11996860B2 (en) Scaled bit flip thresholds across columns for irregular low density parity check decoding
KR102346572B1 (ko) 최적의 ssd 내구성을 위한 블록 마모 레벨링의 균형화

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150723

R150 Certificate of patent or registration of utility model

Ref document number: 5785330

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