JP6657634B2 - 符号化装置、メモリシステム、通信システムおよび符号化方法 - Google Patents
符号化装置、メモリシステム、通信システムおよび符号化方法 Download PDFInfo
- Publication number
- JP6657634B2 JP6657634B2 JP2015146671A JP2015146671A JP6657634B2 JP 6657634 B2 JP6657634 B2 JP 6657634B2 JP 2015146671 A JP2015146671 A JP 2015146671A JP 2015146671 A JP2015146671 A JP 2015146671A JP 6657634 B2 JP6657634 B2 JP 6657634B2
- Authority
- JP
- Japan
- Prior art keywords
- parity
- candidate
- unit
- data
- candidate parity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 209
- 238000000034 method Methods 0.000 title claims description 58
- 238000004891 communication Methods 0.000 title description 6
- 230000008569 process Effects 0.000 claims description 44
- 238000006243 chemical reaction Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 55
- 230000014759 maintenance of location Effects 0.000 description 25
- 230000000694 effects Effects 0.000 description 22
- 238000005516 engineering process Methods 0.000 description 18
- 239000011159 matrix material Substances 0.000 description 10
- 238000009826 distribution Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 101000822028 Homo sapiens Solute carrier family 28 member 3 Proteins 0.000 description 4
- 102100021470 Solute carrier family 28 member 3 Human genes 0.000 description 4
- 101000685663 Homo sapiens Sodium/nucleoside cotransporter 1 Proteins 0.000 description 3
- 101000821827 Homo sapiens Sodium/nucleoside cotransporter 2 Proteins 0.000 description 3
- 102100023116 Sodium/nucleoside cotransporter 1 Human genes 0.000 description 3
- 102100021541 Sodium/nucleoside cotransporter 2 Human genes 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009028 cell transition Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/095—Error detection codes other than CRC and single parity bit codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Read Only Memory (AREA)
- Error Detection And Correction (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
Description
1.第1の実施の形態(候補パリティのいずれかを選択する例)
2.第2の実施の形態(書換えビット数に基づいて候補パリティのいずれかを選択する例)
3.第3の実施の形態(選択値の配置を変えて候補パリティのいずれかを選択する例)
4.第4の実施の形態(パリティパターンおよび候補パリティから新たに候補パリティを生成し、それらのいずれかを選択する例)
5.第5の実施の形態(最長ランの長さに基づいて候補パリティのいずれかを選択する例)
[メモリシステムの構成例]
図1は、実施の形態におけるメモリシステムの一構成例を示すブロック図である。このメモリシステムは、ホストコンピュータ100およびストレージ200を備える。
図3は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、RAM(Random Access Memory)312、CPU(Central Processing Unit)313、ECC処理部314およびROM(Read Only Memory)305を備える。また、メモリコントローラ300は、システムインターフェース311、バス316およびメモリインターフェース317を備える。
p(x)=x16+x5+x3+x2+1 ・・・式1
RAM312、CPU313およびROM315などにより実現される。なお、メモリコントローラ300は、特許請求の範囲に記載の符号化装置の一例である。
図6は、第1の実施の形態における符号語のデータ構成の一例を示す図である。符号語は、4バイトの情報部と2バイトのパリティとから構成される。この情報部は、3バイトのユーザデータと1バイトの非ユーザデータとからなる。そして、非ユーザデータは、4ビットの管理データと4ビットの未使用データとからなる。メモリシステムの拡張性やアクセス単位の都合により、符号語には、ある程度の余裕をもったサイズの非ユーザデータが設けられており、管理データ以外の余った部分に未使用データが割り当てられる。なお、符号語内の各データのデータサイズは、図6に例示したサイズに限定されない。
図7は、第1の実施の形態における符号化部320の一構成例を示すブロック図である。この符号化部320は、ライトバッファ321、ユーザデータ変換部322、ECC符号化器323、候補パリティ生成部330、選択部340、および、ライトデータ出力部324を備える。
図8は、第1の実施の形態における候補パリティ生成部330の一構成例を示すブロック図である。この候補パリティ生成部330は、パリティパターン生成部331、332および333と、排他的論理和演算部334、335および336とを備える。
図9は、第1の実施の形態における選択部340の一構成例を示すブロック図である。この選択部340は、重みカウンタ341、342、343および344と、加算器346、347および348と、比較部345とを備える。
図10は、第1の実施の形態における復号部370の一構成例を示すブロック図である。この復号部370は、リードバッファ371、ユーザデータ逆変換部372およびECC復号器373を備える。
図13は、第1の実施の形態における不揮発性メモリ400の一構成例を示すブロック図である。この不揮発性メモリ400は、データバッファ410、メモリセルアレイ420、ドライバ430、アドレスデコーダ440、バス450、制御インターフェース460、および、メモリ制御部470を備える。
状に配列された複数のメモリセルを備える。各々のメモリセルとして、ReRAMなどの不揮発性の記憶素子が用いられる。
図14は、第1の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。この動作は、例えば、ホストコンピュータ100によりストレージ200に対して初期化が指示されたときに開始する。
上述の第1の実施の形態では、候補パリティ生成部330は、行列演算によりパリティパターンを生成していたが、符号語のデータサイズが大きくなるほど、演算量が増大するおそれがある。この第1の実施の形態における変形例の候補パリティ生成部330は、演算量を低減した点において第1の実施の形態と異なる。
上述の第1の実施の形態では、メモリコントローラ300は、重みが最小となる候補パリティを選択パリティとして選択していた。しかし、選択パリティにより、書き換えるビット数が多くなる場合には、メモリセルのリテンションを十分に向上することができないおそれがある。このため、書き換えるビット数を低減することが望ましい。この第2の実施の形態のメモリコントローラ300は、書き換えるビット数を低減した点において第1の実施の形態と異なる。
上述の第1の実施の形態では符号語において、右端からパリティ、固定領域、可変領域、管理データ、および、ユーザデータの順でデータが配置されていた。しかし、この順では、重みが十分に低減しないことがあるため、重みが低減しやすい順序でデータを配置することが望ましい。第3の実施の形態のメモリコントローラ300は、データ構造の異なる符号語を生成する点において第1の実施の形態と異なる。
選択値「01」のパリティパターンP1:00000000 10110100
選択値「10」のパリティパターンP2:00000001 01101000
選択値「11」のパリティパターンP3:00000001 11011100
選択値「01」のパリティパターンP1’:01000110 11111101
選択値「10」のパリティパターンP2’:10001101 11111010
選択値「11」のパリティパターンP3’:11001011 00000111
上述の第1の実施の形態では、候補パリティ生成部330は、パリティパターン生成部331、332および333により3つのパリティパターンを生成していた。すなわち、パリティパターンと同じ個数のパリティパターン生成部を設けていた。しかし、パリティパターンの個数が多くなるほど、パリティパターン生成部の個数が増大し、演算量や回路規模が増大するおそれがある。この第4の実施の形態の候補パリティ生成部330は、パリティパターンを生成する回路を削減した点において第1の実施の形態と異なる。
上述の第1の実施の形態では、メモリコントローラ300は、重みが最小となる候補パリティを選択パリティとして選択していた。しかし、選択パリティにより、連続して書き換えるビット数が多くなる場合には、書込みの際の消費電力が大きくなるおそれがある。このため、連続して書き換えるビット数を低減することが望ましい。この第5の実施の形態のメモリコントローラ300は、連続して書き換えるビット数を低減した点において第1の実施の形態と異なる。
(1)所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力部と
を具備する符号化装置。
(2)前記情報部は、前記第1候補パリティ生成部に入力されたユーザデータと前記所定の可変領域を含む未使用データとを含む
前記(1)記載の符号化装置。
(3)前記選択部は、
前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとにおいて特定の値のビットの個数を重みとして計数する第1の重みカウンタと、
前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとにおいて前記特定の値のビットの個数を重みとして計数する第2の重みカウンタと、
前記第1および第2の重みカウンタのそれぞれの計数値を比較して当該比較結果に基づいて前記所定の条件を満たすパリティを選択する比較部と
を備える前記(2)記載の符号化装置。
(4)メモリセルに書き込まれているデータをプレリードデータとして読み出す制御部をさらに具備し、
前記選択部は、前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとにおいて前記プレリードデータと値の異なるビット数を書換えビット数として計数する第1の書換えビット数カウンタと、
前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データととにおいて前記プレリードデータと値の異なるビット数を書換えビット数として計数する第2の書換えビット数カウンタと、
前記第1および第2の書換えビット数カウンタのそれぞれで計数された書換えビット数を比較して当該比較結果に基づいて前記所定の条件を満たすパリティを選択する比較部と
を備える前記(2)記載の符号化装置。
(5)メモリセルに書き込まれているデータをプレリードデータとして読み出す制御部をさらに具備し、
前記選択部は、前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとにおいて前記プレリードデータと値の異なるビットが連続する個数を計数して当該計数値の最大値を最長ランの長さとして求める第1の最長ランカウンタと、
前記選択部は、前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとにおいて前記プレリードデータと値の異なるビットが連続する個数を計数して当該計数値の最大値を最長ランの長さとして求める第2の最長ランカウンタと、
前記第1および第2の最長ラン数カウンタのそれぞれで求められた最長ランの長さを比較して当該比較結果に基づいて前記所定の条件を満たすパリティを選択する比較部と
を備える前記(2)記載の符号化装置。
(6)前記符号語において前記ユーザデータと前記選択パリティとの間に前記未使用データが配置される前記(2)から(5)のいずれかに記載の符号化装置。
(7)前記符号語において前記未使用データと前記選択パリティとの間に前記ユーザデータが配置される前記(2)から(5)のいずれかに記載の符号化装置。
(8)前記符号語において前記ユーザデータは複数の領域に分散して配置される前記(2)から(5)のいずれかに記載の符号化装置。
(9)前記符号語において前記未使用データは、複数の領域に分散して配置される前記(2)から(5)のいずれかに記載の符号化装置。
(10)前記未使用データは、前記可変領域と値が変更されない固定領域とからなり、
前記第2候補パリティ生成部は、前記可変領域の値を変更した前記情報部に対応する前記第2の候補パリティを生成する
前記(2)から(9)のいずれかに記載の符号化装置。
(11)前記符号語において前記可変領域は複数の領域に分散して配置される前記(10)記載の符号化装置。
(12)前記符号語において前記固定領域は複数の領域に分散して配置される前記(10)または(11)に記載の符号化装置。
(13)前記第1の候補パリティ生成部は、前記情報部から前記第1の候補パリティを生成し、
前記第2の候補パリティ生成部は、前記第1の候補パリティと第1のパリティパターンとの論理演算により前記第2の候補パリティを生成する前記(1)から(12)のいずれかに記載の符号化装置。
(14)第2のパリティパターンと前記第1の候補パリティとの論理演算により第3の候補パリティを生成する第3の候補パリティ生成部と、
前記第2のパリティパターンと前記第2の候補パリティとの論理演算により第4の候補パリティを生成する第4の候補パリティ生成部と
をさらに具備し、
前記選択部は、前記第1、第2、第3および第4の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する
前記(13)記載の符号化装置。
(15)ユーザデータにおける特定の値のビット数を変換する変換処理を行って当該変換処理後の前記ユーザデータと前記変換処理前の前記ユーザデータとのいずれかを前記第1の候補パリティ生成部に出力するユーザデータ変換部をさらに具備し、
前記第1の候補パリティ生成部は、前記出力されたユーザデータを含む前記第1の情報部から前記第1の候補パリティを生成する
前記(1)から(14)のいずれかに記載の符号化装置。
(16)所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語をライトデータとしてメモリセルに出力する出力部と、
前記メモリセルからリードデータを読み出して前記リードデータを復号する復号部と
を具備するメモリコントローラ。
(17)所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を送信語として出力する出力部と、
前記送信語に対応する受信語を受信して復号する復号部と
を具備する通信システム。
(18)所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成手順と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成手順と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択手順と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力手順と
を具備する符号化方法。
200 ストレージ
300 メモリコントローラ
311 システムインターフェース
312 RAM
313 CPU
314 ECC処理部
315 ROM
316、450 バス
317 メモリインターフェース
320 符号化部
321 ライトバッファ
322、325 ユーザデータ変換部
323 ECC符号化器
324 ライトデータ出力部
330 候補パリティ生成部
331、332、333 パリティパターン生成部
334、335、336、352、353、354、355 排他的論理和演算部
337 パリティパターン保持部
340、350 選択部
341、342、343、344 重みカウンタ
345 比較部
346、347、348 加算器
351 未使用データ保持部
356、357、358、359 書換えビット数カウンタ
361、362、363、364 最長ランカウンタ
370 復号部
371 リードバッファ
372 ユーザデータ逆変換部
373 ECC復号器
380、381 コマンド制御部
400 不揮発性メモリ
410 データバッファ
420 メモリセルアレイ
430 ドライバ
440 アドレスデコーダ
460 制御インターフェース
470 メモリ制御部
Claims (18)
- 所定の未使用データ内の所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記未使用データ内の前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとからなる組と前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとからなる組とのそれぞれの前記組における特定の値のビット数に基づいて前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力部と
を具備する符号化装置。 - 前記情報部は、前記第1候補パリティ生成部に入力されたユーザデータと前記未使用データとを含む
請求項1記載の符号化装置。 - 前記選択部は、
前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとにおいて前記特定の値のビットの個数を重みとして計数する第1の重みカウンタと、
前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとにおいて前記特定の値のビットの個数を重みとして計数する第2の重みカウンタと、
前記第1および第2の重みカウンタのそれぞれの計数値を比較して当該比較結果に基づいて前記所定の条件を満たすパリティを選択する比較部と
を備える請求項2記載の符号化装置。 - 所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力部と、
メモリセルに書き込まれているデータをプレリードデータとして読み出す制御部と
を具備し、
前記情報部は、前記第1候補パリティ生成部に入力されたユーザデータと前記所定の可変領域を含む未使用データとを含み、
前記選択部は、前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとにおいて前記プレリードデータと値の異なるビット数を書換えビット数として計数する第1の書換えビット数カウンタと、
前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データととにおいて前記プレリードデータと値の異なるビット数を書換えビット数として計数する第2の書換えビット数カウンタと、
前記第1および第2の書換えビット数カウンタのそれぞれで計数された書換えビット数を比較して当該比較結果に基づいて前記所定の条件を満たすパリティを選択する比較部と
を備える
符号化装置。 - 所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力部と、
メモリセルに書き込まれているデータをプレリードデータとして読み出す制御部と
を具備し、
前記情報部は、前記第1候補パリティ生成部に入力されたユーザデータと前記所定の可変領域を含む未使用データとを含み、
前記選択部は、前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとにおいて前記プレリードデータと値の異なるビットが連続する個数を計数して当該計数値の最大値を最長ランの長さとして求める第1の最長ランカウンタと、
前記選択部は、前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとにおいて前記プレリードデータと値の異なるビットが連続する個数を計数して当該計数値の最大値を最長ランの長さとして求める第2の最長ランカウンタと、
前記第1および第2の最長ラン数カウンタのそれぞれで求められた最長ランの長さを比較して当該比較結果に基づいて前記所定の条件を満たすパリティを選択する比較部と
を備える
符号化装置。 - 前記符号語において前記ユーザデータと前記選択パリティとの間に前記未使用データが配置される請求項5記載の符号化装置。
- 前記符号語において前記未使用データと前記選択パリティとの間に前記ユーザデータが配置される請求項5記載の符号化装置。
- 前記符号語において前記ユーザデータは複数の領域に分散して配置される請求項5記載の符号化装置。
- 前記符号語において前記未使用データは、複数の領域に分散して配置される請求項5記載の符号化装置。
- 前記未使用データは、前記可変領域と値が変更されない固定領域とからなり、
前記第2候補パリティ生成部は、前記可変領域の値を変更した前記情報部に対応する前記第2の候補パリティを生成する
請求項5記載の符号化装置。 - 前記符号語において前記可変領域は複数の領域に分散して配置される請求項10記載の符号化装置。
- 前記符号語において前記固定領域は複数の領域に分散して配置される請求項10記載の符号化装置。
- 所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力部と
を具備し、
前記第1の候補パリティ生成部は、前記情報部から前記第1の候補パリティを生成し、
前記第2の候補パリティ生成部は、前記第1の候補パリティと第1のパリティパターンとの論理演算により前記第2の候補パリティを生成する
符号化装置。 - 第2のパリティパターンと前記第1の候補パリティとの論理演算により第3の候補パリティを生成する第3の候補パリティ生成部と、
前記第2のパリティパターンと前記第2の候補パリティとの論理演算により第4の候補パリティを生成する第4の候補パリティ生成部と
をさらに具備し、
前記選択部は、前記第1、第2、第3および第4の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する
請求項13記載の符号化装置。 - 所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力部と
ユーザデータにおける特定の値のビット数を変換する変換処理を行って当該変換処理後の前記ユーザデータと前記変換処理前の前記ユーザデータとのいずれかを前記第1の候補パリティ生成部に出力するユーザデータ変換部と
を具備し、
前記第1の候補パリティ生成部は、前記出力されたユーザデータを含む前記第1の情報部から前記第1の候補パリティを生成する
符号化装置。 - 所定の未使用データ内の所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記未使用データ内の前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとからなる組と前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとからなる組とのそれぞれの前記組における特定の値のビット数に基づいて前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語をライトデータとしてメモリセルに出力する出力部と、
前記メモリセルからリードデータを読み出して前記リードデータを復号する復号部と
を具備するメモリコントローラ。 - 所定の未使用データ内の所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成部と、
前記未使用データ内の前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成部と、
前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとからなる組と前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとからなる組とのそれぞれの前記組における特定の値のビット数に基づいて前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択部と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を送信語として出力する出力部と、
前記送信語に対応する受信語を受信して復号する復号部と
を具備する通信システム。 - 所定の未使用データ内の所定の可変領域に所定値が設定された情報部の誤りを検出するためのパリティを第1の候補パリティとして生成する第1候補パリティ生成手順と、
前記未使用データ内の前記所定の可変領域に前記所定値と異なる値が設定された前記情報部の誤りを検出するためのパリティを第2の候補パリティとして生成する第2候補パリティ生成手順と、
前記第1の候補パリティと当該第1の候補パリティに対応する前記未使用データとからなる組と前記第2の候補パリティと当該第2の候補パリティに対応する前記未使用データとからなる組とのそれぞれの前記組における特定の値のビット数に基づいて前記第1および第2の候補パリティのうち所定の条件を満たすパリティを選択パリティとして選択する選択手順と、
前記選択パリティに対応する前記情報部と前記選択パリティとからなる符号語を出力する出力手順と
を具備する符号化方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015146671A JP6657634B2 (ja) | 2015-07-24 | 2015-07-24 | 符号化装置、メモリシステム、通信システムおよび符号化方法 |
US15/736,079 US10481971B2 (en) | 2015-07-24 | 2016-04-15 | Encoding device, memory controller, communication system, and encoding method |
PCT/JP2016/062159 WO2017018008A1 (ja) | 2015-07-24 | 2016-04-15 | 符号化装置、メモリコントローラ、通信システムおよび符号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015146671A JP6657634B2 (ja) | 2015-07-24 | 2015-07-24 | 符号化装置、メモリシステム、通信システムおよび符号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017027440A JP2017027440A (ja) | 2017-02-02 |
JP6657634B2 true JP6657634B2 (ja) | 2020-03-04 |
Family
ID=57884327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015146671A Active JP6657634B2 (ja) | 2015-07-24 | 2015-07-24 | 符号化装置、メモリシステム、通信システムおよび符号化方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10481971B2 (ja) |
JP (1) | JP6657634B2 (ja) |
WO (1) | WO2017018008A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190074890A (ko) * | 2017-12-20 | 2019-06-28 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10431301B2 (en) | 2017-12-22 | 2019-10-01 | Micron Technology, Inc. | Auto-referenced memory cell read techniques |
US10566052B2 (en) * | 2017-12-22 | 2020-02-18 | Micron Technology, Inc. | Auto-referenced memory cell read techniques |
US11018694B2 (en) * | 2019-06-10 | 2021-05-25 | Hewlett Packard Enterprise Development Lp | Fast cyclic redundancy check code generation |
US10944422B1 (en) * | 2019-09-23 | 2021-03-09 | Advanced Micro Devices, Inc. | Entropy agnostic data encoding and decoding |
WO2022185089A1 (en) * | 2021-03-02 | 2022-09-09 | Micron Technology, Inc. | Methods and systems for managing memory with dynamic ecc protection |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0795096A (ja) * | 1993-09-20 | 1995-04-07 | Fujitsu Ltd | プログラマブル並列crc生成装置 |
JPH08335396A (ja) * | 1995-06-08 | 1996-12-17 | Sony Corp | 半導体不揮発性記憶装置 |
US8412879B2 (en) * | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
JP4711660B2 (ja) * | 2004-11-10 | 2011-06-29 | 日本ビクター株式会社 | 記録装置および記録媒体 |
KR101375955B1 (ko) * | 2006-05-12 | 2014-03-18 | 애플 인크. | 메모리 디바이스 내의 왜곡 추정 및 상쇄 |
JP4925301B2 (ja) * | 2007-02-07 | 2012-04-25 | 株式会社メガチップス | 半導体メモリシステム |
KR100857252B1 (ko) * | 2007-12-27 | 2008-09-05 | (주)인디링스 | 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법 |
US7729166B2 (en) * | 2008-07-02 | 2010-06-01 | Mosaid Technologies Incorporated | Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same |
JP2013542533A (ja) * | 2010-10-27 | 2013-11-21 | エルエスアイ コーポレーション | フラッシュメモリベースのデータ記憶のための順応ecc技術 |
TWI467364B (zh) * | 2011-07-12 | 2015-01-01 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與資料寫入方法 |
JP5942781B2 (ja) | 2012-04-16 | 2016-06-29 | ソニー株式会社 | 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 |
KR101997794B1 (ko) * | 2012-12-11 | 2019-07-09 | 삼성전자주식회사 | 메모리 제어기 및 그것을 포함한 메모리 시스템 |
KR102133209B1 (ko) * | 2013-12-13 | 2020-07-14 | 에스케이하이닉스 주식회사 | 데이터 복호화 장치 및 데이터 복호화 방법 |
-
2015
- 2015-07-24 JP JP2015146671A patent/JP6657634B2/ja active Active
-
2016
- 2016-04-15 US US15/736,079 patent/US10481971B2/en active Active
- 2016-04-15 WO PCT/JP2016/062159 patent/WO2017018008A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US10481971B2 (en) | 2019-11-19 |
JP2017027440A (ja) | 2017-02-02 |
US20180143871A1 (en) | 2018-05-24 |
WO2017018008A1 (ja) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6657634B2 (ja) | 符号化装置、メモリシステム、通信システムおよび符号化方法 | |
JP4988731B2 (ja) | フラッシュエラー訂正 | |
JP6540703B2 (ja) | メモリコントローラおよびメモリコントローラの制御方法 | |
JP5923631B2 (ja) | データ反転によってデータ記憶を改良するための装置および方法 | |
US8307261B2 (en) | Non-volatile memory management method | |
JP5723967B2 (ja) | ソリッド・ステート・ストレージ・デバイスのsレベル・ストレージに入力データを記録するための方法、エンコーダ装置、およびソリッド・ステート・ストレージ・デバイス | |
KR101264476B1 (ko) | 증가된 용량의 이종의 스토리지 엘리먼트들 | |
US20220245023A1 (en) | Detection and correction of data bit errors using error correction codes | |
CN107077430B (zh) | 存储器控制器、存储器***以及存储器控制器控制方法 | |
US10333558B2 (en) | Decoding device and decoding method | |
JP2013524609A5 (ja) | ||
KR101550762B1 (ko) | 연접 오류 정정 장치 | |
JP2014140111A (ja) | コントローラ、情報処理システム、コントローラの制御方法およびプログラム | |
KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
US9547551B2 (en) | Memory system having an encoding processing circuit for redundant encoding process | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
Gabrys et al. | Tackling intracell variability in TLC flash through tensor product codes | |
US10970166B2 (en) | Memory system and method of controlling non-volatile memory | |
KR101566088B1 (ko) | 조합 숫자 시스템을 사용한 인코딩 및 디코딩 기법 | |
KR101355988B1 (ko) | 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치 | |
US8819331B2 (en) | Memory system and memory controller | |
JP5492329B2 (ja) | メモリアクセス装置 | |
JP2011029857A (ja) | フラッシュファイルシステムの誤り検出訂正機能 | |
JP2013201479A (ja) | 符号化装置、記憶装置および符号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190625 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190731 |
|
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: 20200107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200120 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6657634 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |