JP2016218897A - コントローラ、制御方法 - Google Patents
コントローラ、制御方法 Download PDFInfo
- Publication number
- JP2016218897A JP2016218897A JP2015105487A JP2015105487A JP2016218897A JP 2016218897 A JP2016218897 A JP 2016218897A JP 2015105487 A JP2015105487 A JP 2015105487A JP 2015105487 A JP2015105487 A JP 2015105487A JP 2016218897 A JP2016218897 A JP 2016218897A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data string
- page
- ecc
- error correction
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1012—Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【解決手段】実施形態によれば、nレベル(nは、3以上の自然数)のデータをページ単位で記憶する不揮発性メモリ14のコントローラ10は、前記ページのデータ長よりも短い第1データ長を有する第1データ列から前記第1データ列よりもデータ長が短い第2データ列を抽出する抽出部11aと、前記第2データ列に含まれる隣接する2つのデータに対応する前記不揮発性メモリの閾値電圧の差が第1レベル差である場合、前記第2データ列を、前記第2データ列より長く前記第1レベル差より小さな第2レベル差を有する第3データ列に変換する変換部11bと、前記第3データ列に付加するエラー訂正符号の割合を制御する制御部15と、前記制御部による制御に基づき、エラー訂正符号を生成するエラー訂正符号エンコーダ部12と、を具備する。
【選択図】図15
Description
まず、以下の図面を参照して、第1実施形態について説明する。図面において、同一部分には同一符号を付している。
図6は、図1に示すエンコーダ11の概略的な動作を示している。
図1に示すECCエンコーダ12は、例えば組織符号を使用してエンコーダ11から供給されたコードブック11cを含むデータ列にエラー訂正用のデータとしてのエラー訂正符号(ECC)を付加する。組織符号としては、例えばハミング符号、BHC符号、リードソロモン符号などがあるが、誤り訂正の最小単位が複数ビットのリードソロモン符号が適用される。しかし、リードソロモン符号に限定されるものではない。組織符号は、データ列とECCが分離されている。したがって、コードブック11cを含むデータ列の内容は変更されないため、上記圧縮又は伸張されたデータ列の状態、及びコードブック11cの内容を保持することができる。
上記ECCエンコーダ12により、組織符号によりデータ列に付加されるECCは、上記変換処理が行われていない。このため、ECCがレベル“C”のデータを含む可能性があり、レベル“C”のデータの出現確率が高いことも考えられる。このため、ページ内でECCが付加される領域(以下、ECC領域と称す)の位置がページに対して固定されている場合、ECC領域のメモリセルは、頻繁にレベル“C”のデータが書き込まれることとなる。したがって、ECC領域のメモリセルは、データが書き込まれるメモリセルより、劣化される可能性が高い。
次に、データの読み出し動作について説明する。データの読み出し動作は、上記データの書き込み動作と逆の処理が実行される。
図14は、第1実施形態が適用されるSSD(メモリシステム)31の一例を示している。
上記第1実施形態によれば、入力データDwに含まれる閾値電圧の差が大きなデータパターンが閾値電圧の差が小さなデータパターンに変換される。このため、プログラムディスターブを抑制することが可能である。しかも、閾値電圧の高いデータが減少するため、メモリセルの耐久性が向上し、メモリセルの寿命を伸ばすことが可能である。
次に、図15乃至図18を用い、第2実施形態について説明する。なお、以下の説明においては、上記第1実施形態と重複する部分の説明については省略する。
[コントローラの構成]
図15を用い、第2実施形態に係るコントローラ10について説明する。図15に示すように、第2実施形態に係るコントローラ10は、第1実施形態と比較して、第3テーブルTcおよび制御部15を更に備え、ECC移動部13を備えていない。
図16を用い、第2実施形態に係る第3テーブルTcの構成について説明する。図16に示すように、第3テーブルTcは、ページの書き込み回数と、付加されるECCおよびコードブックとが対応付けて示される。
[ECCの比率の変更処理]
次に、上記構成において、第2実施形態に係るECCの比率の変更処理について説明する。ここでは、図17に沿って、以下説明する。
以上説明したように、第2実施形態に係る構成および動作によれば、上記第1実施形態と同様の効果が得られ、さらに少なくとも下記(1)の効果が得られる。
次に、図19乃至図20を用い、第3実施形態について説明する。第3実施形態は、ホスト21からの要求に従い、ECCおよびコードブックの割合を変更する一例に関する。なお、以下の説明においては、上記第2実施形態と重複する部分の説明については省略する。
構成については、上記第2実施形態と実質的に同様であるため、その詳細な説明を省略する。
[ECCの比率の変更処理]
次に、第3実施形態に係るECCの比率の変更処理について説明する。ここでは、図19に沿って、以下説明する。
以上説明したように、第3実施形態に係る構成および動作によれば、上記第1および第2実施形態と同様の効果が得られ、さらに少なくとも下記(2)の効果が得られる。
以上説明した第1乃至第3実施形態は、これに限られず、必要に応じて変形することが可能である。
Claims (11)
- nレベル(nは、3以上の自然数)のデータをページ単位で記憶する不揮発性メモリのコントローラであって、前記コントローラは、
前記ページのデータ長よりも短い第1データ長を有する第1データ列から、前記第1データ列よりもデータ長が短い第2データ列を抽出する抽出部と、
前記第2データ列に含まれる隣接する2つのデータに対応する前記不揮発性メモリの閾値電圧の差が第1レベル差である場合、前記第2データ列を、前記第2データ列より長く前記第1レベル差より小さな第2レベル差を有する第3データ列に変換する変換部と、
前記第3データ列に付加するエラー訂正符号の割合を制御する制御部と、
前記制御部による制御に基づき、エラー訂正符号を生成するエラー訂正符号エンコーダ部と、を具備する。 - 前記変換部は、前記第2データ列を前記第3データ列に変換するための変換情報を生成し、
前記制御部は、前記第3データ列に付加する前記変換情報の割合を更に制御する
請求項1に記載のコントローラ。 - 前記制御部は、前記不揮発性メモリのアクセス回数に基づいて、前記第3データ列に付加する前記エラー訂正符号および前記変換情報の割合を制御する
請求項2に記載のコントローラ。 - 前記不揮発性メモリのアクセス回数と、付加されるエラー訂正符号と、が対応して示されるテーブルを更に具備する
請求項1乃至3のいずれかに記載のコントローラ。 - 前記制御部は、前記テーブルを参照し、フィードバックされるアクセス回数が前記テーブルに示されるアクセス回数の閾値を超える場合、前記ページに付加する前記エラー訂正符号および前記変換情報の割合を変更する
請求項4に記載のコントローラ。 - 前記アクセス回数は、ページの書き込み回数、ページの読み出し回数、および消去回数のいずれか1つを含む
請求項3乃至5のいずれかに記載のコントローラ。 - 前記制御部は、前記第3データ列が配置される領域以外の領域である前記ページの冗長領域において、前記エラー訂正符号および前記変換情報の割合を制御する
請求項2乃至6のいずれかに記載のコントローラ。 - 前記制御部は、外部からの要求に基づき、前記エラー訂正符号および前記変換情報の割合を制御する
請求項2乃至7のいずれかに記載のコントローラ。 - 前記制御部の制御に基づき、前記エラー訂正符号が付加される領域の位置を前記ページ内で移動させる移動部を更に具備する
請求項1乃至8のいずれかに記載のコントローラ。 - nレベル(nは、3以上の自然数)のデータをページ単位で記憶する不揮発性メモリの制御方法であって、
前記ページのデータ長よりも短い第1データ長を有する第1データ列から、前記第1データ列よりもデータ長が短い第2データ列を抽出し、
前記第2データ列に含まれる隣接する2つのデータに対応する前記不揮発性メモリの閾値電圧の差が第1レベル差である場合、前記第2データ列を、前記第2データ列より長く前記第1レベル差より小さな第2レベル差を有する第3データ列に変換し、
前記第3データ列に付加するエラー訂正符号の割合を制御し、
前記制御に基づき、エラー訂正符号を生成する。 - 不揮発性メモリにページ単位でデータを記憶するコントローラであって、前記コントローラは、
前記ページのデータ長よりも短い第1データ列から、前記第1データ列よりも短い第2データ列を抽出し、
前記第2データ列に含まれる2つのデータに対応する前記不揮発性メモリの閾値電圧の差を参照し、前記第2データ列を、前記第2データ列より長い第3データ列に変換し、
前記第3データ列に付加するエラー訂正符号の割合を制御する。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015105487A JP6346123B2 (ja) | 2015-05-25 | 2015-05-25 | コントローラ、制御方法 |
US14/833,246 US9594627B2 (en) | 2015-05-25 | 2015-08-24 | Controller and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015105487A JP6346123B2 (ja) | 2015-05-25 | 2015-05-25 | コントローラ、制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016218897A true JP2016218897A (ja) | 2016-12-22 |
JP6346123B2 JP6346123B2 (ja) | 2018-06-20 |
Family
ID=57398762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015105487A Active JP6346123B2 (ja) | 2015-05-25 | 2015-05-25 | コントローラ、制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9594627B2 (ja) |
JP (1) | JP6346123B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021506024A (ja) * | 2017-12-12 | 2021-02-18 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ストレージクラスメモリシステムのウェアレベリングスキーム及び実装 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007573B2 (en) * | 2015-04-27 | 2018-06-26 | Invensas Corporation | Preferred state encoding in non-volatile memories |
US10236909B2 (en) * | 2017-03-31 | 2019-03-19 | Sandisk Technologies Llc | Bit-order modification for different memory areas of a storage device |
US10230395B2 (en) * | 2017-03-31 | 2019-03-12 | Sandisk Technologies Llc | Determining codebooks for different memory areas of a storage device |
US10355712B2 (en) * | 2017-03-31 | 2019-07-16 | Sandisk Technologies Llc | Use of multiple codebooks for programming data in different memory areas of a storage device |
US10853168B2 (en) | 2018-03-28 | 2020-12-01 | Samsung Electronics Co., Ltd. | Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM) |
JP2022147380A (ja) | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | メモリコントローラおよびメモリシステム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009134799A (ja) * | 2007-11-29 | 2009-06-18 | Toshiba Corp | メモリシステム |
JP2010262640A (ja) * | 2009-04-30 | 2010-11-18 | Internatl Business Mach Corp <Ibm> | 不揮発性メモリの適応型エンデュランス・コーディング方法及びシステム |
JP2014529827A (ja) * | 2011-08-31 | 2014-11-13 | マイクロン テクノロジー,インク. | メモリエンデュランスのために動作させる装置および方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4564520B2 (ja) | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
US7639532B2 (en) * | 2007-10-10 | 2009-12-29 | Micron Technology, Inc. | Non-equal threshold voltage ranges in MLC NAND |
US8560918B1 (en) | 2009-04-21 | 2013-10-15 | Marvell International Ltd. | Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
JP4660632B2 (ja) | 2010-07-29 | 2011-03-30 | 株式会社東芝 | 半導体記憶装置 |
US8799559B2 (en) * | 2011-10-24 | 2014-08-05 | Sandisk Technologies Inc. | Endurance enhancement coding of compressible data in flash memories |
-
2015
- 2015-05-25 JP JP2015105487A patent/JP6346123B2/ja active Active
- 2015-08-24 US US14/833,246 patent/US9594627B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009134799A (ja) * | 2007-11-29 | 2009-06-18 | Toshiba Corp | メモリシステム |
JP2010262640A (ja) * | 2009-04-30 | 2010-11-18 | Internatl Business Mach Corp <Ibm> | 不揮発性メモリの適応型エンデュランス・コーディング方法及びシステム |
JP2014529827A (ja) * | 2011-08-31 | 2014-11-13 | マイクロン テクノロジー,インク. | メモリエンデュランスのために動作させる装置および方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021506024A (ja) * | 2017-12-12 | 2021-02-18 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ストレージクラスメモリシステムのウェアレベリングスキーム及び実装 |
Also Published As
Publication number | Publication date |
---|---|
JP6346123B2 (ja) | 2018-06-20 |
US20160350177A1 (en) | 2016-12-01 |
US9594627B2 (en) | 2017-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6346123B2 (ja) | コントローラ、制御方法 | |
JP6606039B2 (ja) | メモリシステムおよび制御方法 | |
US11683053B2 (en) | Memory controller, memory system, and memory control method | |
US9201785B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US20180276114A1 (en) | Memory controller | |
TWI783017B (zh) | 記憶體系統及其操作方法 | |
US9582224B2 (en) | Memory control circuit unit, memory storage apparatus and data accessing method | |
US20160070507A1 (en) | Memory system and method of controlling memory device | |
US20210407612A1 (en) | Two-Layer Code with Low Parity Cost for Memory Sub-Systems | |
US8634243B2 (en) | Data writing method and data storage device | |
US9865338B2 (en) | Memory system and method of controlling nonvolatile memory by converting write data written to a page | |
US11675714B2 (en) | Memory sub-system including an in package sequencer separate from a controller | |
US11567817B2 (en) | Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US9396063B2 (en) | Storage device and operating method thereof | |
JP6437428B2 (ja) | 不揮発性半導体メモリのコントローラ | |
US11372719B1 (en) | Memory system | |
US11734190B2 (en) | Generating codewords with diverse physical addresses for 3DXP memory devices | |
US20230101310A1 (en) | Early detection of compression status using inline metadata | |
US11854603B2 (en) | Logical to encoded value table in data storage device | |
US10963178B2 (en) | Repetitive data processing method for solid state drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170531 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180418 |
|
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: 20180424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180524 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6346123 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |