# US 10,481,971 B2 · Encoding device, memory controller, communication system, and encoding method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,971 B2
- Document ID: US10481971B2
- Status: Granted
- Kind: B2
- Application number: 15/736,079
- Filed: 2016-04-15
- Published: 2018-05-24
- Granted: 2019-11-19
- Earliest claimed: 2015-07-24
- Assignees: Sony Corporation
- Applicants: Sony Corporation
- Inventors: Tatsuo Shinbashi; Kenichi Nakanishi; Yasushi Fujinami; Hiroyuki Iwaki; Ken Ishii; Hideaki Okubo
- Web page: https://patentgrep.com/patent/US10481971B2

## CPC

- G06F 11/10: Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F 11/1012: {using codes or arrangements adapted for a specific type of error (G06F11/1048 takes precedence)}
- G06F 12/16: Protection against loss of memory contents {(contains no material, see G06F11/00)}
- H03M 13/095: {Error detection codes other than CRC and single parity bit codes}
- H03M 13/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
- H03M 13/611: {Specific encoding aspects, e.g. encoding by means of decoding}
- G11C 16/02: electrically programmable
- G11C 16/06: Auxiliary circuits, e.g. for writing into memory
- H03M 13/09: Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M 13/1515: {Reed-Solomon codes}
- H03M 13/152: {Bose-Chaudhuri-Hocquenghem [BCH] codes}
- H03M 13/19: Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A data holding characteristic of a memory cell is improved in a memory system in which data is encoded and written to a memory cell. A first candidate parity generation unit generates, as a first candidate parity, a parity for detecting an error in an information section in which a predetermined value is assigned in a predetermined variable area. A second candidate parity generation unit generates, as a second candidate parity, a parity for detecting an error in the information section in which a value different from the predetermined value is assigned in the predetermined variable area. A selection unit selects a parity that satisfies a predetermined condition from among the first and second candidate parities as a selection parity. An output unit outputs a codeword constituted by the information section corresponding to the selection parity and the selection parity.

## Claims

### Claim 1

A encoding device comprising:
a first candidate parity generation unit that generates, as a first candidate parity, a parity for detecting an error in an information section in which a predetermined value is assigned in a predetermined variable area;
a second candidate parity generation unit that generates, as a second candidate parity, a parity for detecting an error in the information section in which a value different from the predetermined value is assigned in the predetermined variable area;
a selection unit that selects a parity that satisfies a predetermined condition from among the first and second candidate parities as a selection parity; and
an output unit that outputs a codeword constituted by the information section corresponding to the selection parity and the selection parity,
wherein
the information section includes user data input to the first candidate parity generation unit and unused data including the predetermined variable area.

### Claim 2 (depends on 1)

The encoding device according to claim 1, wherein
the selection unit includes:
a first weight counter that counts, as a weight, the number of bits having a specific value in the first candidate parity and the unused data corresponding to the first candidate parity;
a second weight counter that counts, as a weight, the number of bits having the specific value in the second candidate parity and the unused data corresponding to the second candidate parity; and
a comparison unit that compares respective count values of the first and second weight counters and selects a parity that satisfies the predetermined condition on the basis of a result of the comparison.

### Claim 3 (depends on 1)

The encoding device according to claim 1, further comprising a control unit that reads data written in a memory cell as pre-read data, wherein
the selection unit includes: a first rewrite bit depth counter that counts a bit depth of a value different from a value of the pre-read data as a rewrite bit depth in the first candidate parity and the unused data corresponding to the first candidate parity;
a second rewrite bit depth counter that counts a bit depth of a value different from a value of the pre-read data as a rewrite bit depth in the second candidate parity and the unused data corresponding to the second candidate parity, and
a comparison unit that compares the rewrite bit depths counted by the respective first and second rewrite bit depth counters and selects a parity that satisfies the predetermined condition on the basis of a result of the comparison.

### Claim 4 (depends on 1)

The encoding device according to claim 1, further comprising a control unit that reads data written in a memory cell as pre-read data, wherein
the selection unit includes a first longest run counter that counts the number of consecutive bits having a value different from a value of bits of the pre-read data in the first candidate parity and the unused data corresponding to the first candidate parity and finds a maximum value of the count value as a length of a longest run,
the selection unit further including: a second longest run counter that counts the number of consecutive bits having a value different from a value of bits of the pre-read data in the second candidate parity and the unused data corresponding to the second candidate parity and finds a maximum value of the count value as a length of a longest run; and
a comparison unit that compares the lengths of the longest runs found by the respective first and second longest run number counters and selects a parity that satisfies the predetermined condition on the basis of a result of the comparison.

### Claim 5 (depends on 1)

The encoding device according to claim 1, wherein the unused data is arranged between the user data and the selection parity in the codeword.

### Claim 6 (depends on 1)

The encoding device according to claim 1, wherein the user data is arranged between the unused data and the selection parity in the codeword.

### Claim 7 (depends on 1)

The encoding device according to claim 1, wherein the user data is arranged by being dispersed in a plurality of areas in the codeword.

### Claim 8 (depends on 1)

The encoding device according to claim 1, wherein the unused data is arranged by being dispersed in a plurality of areas in the codeword.

### Claim 9 (depends on 1)

The encoding device according to claim 1, wherein
the unused data is constituted by the variable area and a fixed area in which a value is not altered, and
the second candidate parity generation unit generates the second candidate parity corresponding to the information section in which a value of the variable area has been altered.

### Claim 10 (depends on 9)

The encoding device according to claim 9, wherein the variable area is arranged by being dispersed in a plurality of areas in the codeword.

### Claim 11 (depends on 9)

The encoding device according to claim 9, wherein the fixed area is arranged by being dispersed in a plurality of areas in the codeword.

### Claim 12 (depends on 1)

The encoding device according to claim 1, wherein
the first candidate parity generation unit generates the first candidate parity from the information section, and
the second candidate parity generation unit generates the second candidate parity by a logical operation between the first candidate parity and a first parity pattern.

### Claim 13 (depends on 12)

The encoding device according to claim 12, further comprising:
a third candidate parity generation unit that generates a third candidate parity by a logical operation between a second parity pattern and the first candidate parity; and
a fourth candidate parity generation unit that generates a fourth candidate parity by a logical operation between the second parity pattern and the second candidate parity, wherein
the selection unit selects a parity that satisfies the predetermined condition from among the first, second, third, and fourth candidate parities as the selection parity.

### Claim 14 (depends on 1)

The encoding device according to claim 1, further comprising a user data conversion unit that performs conversion processing of converting a bit depth of a specific value in the user data and outputs either the user data after the conversion processing or the user data before the conversion processing to the first candidate parity generation unit, wherein
the first candidate parity generation unit generates the first candidate parity from the first information section including the output user data.

### Claim 15

A memory controller comprising:
a first candidate parity generation unit that generates, as a first candidate parity, a parity for detecting an error in an information section in which a predetermined value is assigned in a predetermined variable area;
a second candidate parity generation unit that generates, as a second candidate parity, a parity for detecting an error in the information section in which a value different from the predetermined value is assigned in the predetermined variable area;
a selection unit that selects a parity that satisfies a predetermined condition from among the first and second candidate parities as a selection parity;
an output unit that outputs a codeword constituted by the information section corresponding to the selection parity and the selection parity to a memory cell as write data; and
a decoding unit that reads read data from the memory cell and decodes the read data,
wherein the information section includes user data input to the first candidate parity generation unit and unused data including the predetermined variable area.

### Claim 16

A communication system comprising:
a first candidate parity generation unit that generates, as a first candidate parity, a parity for detecting an error in an information section in which a predetermined value is assigned in a predetermined variable area;
a second candidate parity generation unit that generates, as a second candidate parity, a parity for detecting an error in the information section in which a value different from the predetermined value is assigned in the predetermined variable area;
a selection unit that selects a parity that satisfies a predetermined condition from among the first and second candidate parities as a selection parity;
an output unit that outputs a codeword constituted by the information section corresponding to the selection parity and the selection parity as a transmission word; and
a decoding unit that receives a received word corresponding to the transmission word to decode,
wherein the information section includes user data input to the first candidate parity generation unit and unused data including the predetermined variable area.

### Claim 17

An encoding method comprising:
a first candidate parity generation procedure of generating, as a first candidate parity, a parity for detecting an error in an information section in which a predetermined value is assigned in a predetermined variable area;
a second candidate parity generation procedure of generating, as a second candidate parity, a parity for detecting an error in the information section in which a value different from the predetermined value is assigned in the predetermined variable area;
a selection procedure of selecting a parity that satisfies a predetermined condition from among the first and second candidate parities as a selection parity; and
an output procedure of outputting a codeword constituted by the information section corresponding to the selection parity and the selection parity,
wherein the information section includes user data input to the first candidate parity generation procedure and unused data including the predetermined variable area.
