IP Library Granted Patent US 9,798,613
Granted Patent B2
US 9,798,613 · App. 14/206,315 · Granted Oct 24, 2017

Controller of nonvolatile semiconductor memory

Inventors: Masaru Ogawa (Ebina, JP); Kenji Sakurada (Yamato, JP)
Assignee: TOSHIBA MEMORY CORPORATION
G06F11/10G06F11/1012H03M13/1111H03M13/2906H03M13/3723H03M13/3746H03M13/6337H03M13/152
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,798,613
App. No.
14/206,315
Granted
Oct 24, 2017
Kind
B2
Abstract

According to one embodiment, a controller includes a decoder, calculation section, table creation, and control section. The decoder converts ECC frames into likelihood information based on a set table, generates decoded ECC frames by decoding using the likelihood information and switches the set table when there is an ECC frame in which the decoding is unsuccessful. The calculation section generates calculation data based on an ECC frame of calculation target among the decoded ECC frames and its ECC frame before decoded. The table creation section sets the new table to the decoder based on the calculation data. The control section controls the calculation target so that a calculation in the calculation section is not repeated for an ECC frame in which the decoding is successful.

Claims (55)

1. A controller comprising:

a decoder that converts a plurality of error correction code (ECC) frames read out from a nonvolatile semiconductor memory into likelihood information based on a set table among a plurality of log-likelihood ratio (LLR) tables, generates a plurality of decoded ECC frames by decoding using the likelihood information and switches the set table when there is an ECC frame in which the decoding is unsuccessful;

a calculation section that generates calculation data based on an ECC frame of calculation target among the plurality of decoded ECC frames and an ECC frame before decoded, which corresponds to the ECC frame of the calculation target, the ECC frame of calculation target being a successfully-decoded ECC frame;

a table creation section that creates a new LLR table by executing statistical calculation based on the calculation data generated by the calculation section and sets the new LLR table to the decoder; and

a control section that controls the calculation target so that a calculation in the calculation section is not repeated for an ECC frame in which the decoding is successful,

wherein the decoder decodes the ECC frames based on the new LLR table,

wherein the ECC frame before decoded includes a readout level of each of a plurality of bits,

wherein the calculation section generates a channel matrix by counting a number of times of a combination of a correct bit value and a readout level for each bit included in the ECC frame of the calculation target based on the ECC frame of the calculation target and the ECC frame before decoded, and

wherein the table creation section statistically calculates, based on the channel matrix, a likelihood of the correct bit value for each of the readout level included in the ECC frame of the calculation target, and creates the new LLR table.

2. The controller of claim 1 ,

wherein the control section sets each of the plurality of decoded ECC frames to the calculation target in the calculation section only once when the decoding is successful.

3. The controller of claim 1 ,

wherein the control section sets an ECC frame in which the decoding is successful and the calculation has not been applied yet to the calculation target in the calculation section, and excludes an ECC frame in which the decoding is unsuccessful and an ECC frame in which the decoding is successful but the calculation has been already applied from the calculation target in the calculation section.

4. The controller of claim 1 ,

wherein the control section executes an initialization for a control of the calculation target when a plurality of new ECC frames are read out from the nonvolatile semiconductor memory.

5. The controller of claim 1 ,

wherein the table creation section is realized by firmware executed by a processor,

wherein the firmware controls the control section, generates the new LLR table based on a result of the decoding by the decoder and the calculation data generated by the calculation section, sets the new LLR table to the decoder and causes the decoder to retry the decoding, and

wherein the control section is configured by hardware.

6. The controller of claim 1 ,

wherein the table creation section is configured by hardware, controls the control section, creates the new LLR table based on a result of the decoding by the decoder and the calculation data generated by the calculation section, sets the new LLR table to the decoder and causes the decoder to retry the decoding, and

wherein the control section is configured by hardware.

7. The controller of claim 1 , wherein the decoder is a low density parity check (LDPC) decoder, and wherein the controller further comprises a Bose-Chaudhuri-Hocquenghem (BCH) decoder that performs BCH decoding for the plurality of decoded ECC frames when the decoding for all the plurality of ECC frames is successful.

8. The controller of claim 1 ,

wherein the calculation section comprises a plurality of switches corresponding to each of the plurality of decoded ECC frames, and

wherein the control section controls whether or not each of the plurality of decoded ECC frames becomes the calculation target by switching on/off the plurality of switches.

9. A semiconductor memory device comprising:

a nonvolatile semiconductor memory; and

a controller that controls the nonvolatile semiconductor memory,

wherein the controller comprises:

a decoder that converts a plurality of error correction code (ECC) frames read out from a nonvolatile semiconductor memory into likelihood information based on a set table among a plurality of tables, generates a plurality of decoded ECC frames by decoding using the likelihood information and switches the set table when there is an ECC frame in which the decoding is unsuccessful;

a calculation section that generates calculation data based on an ECC frame of calculation target among the plurality of decoded ECC frames and an ECC frame before decoded, which corresponds to the ECC frame of the calculation target, the ECC frame of calculation target being a successfully-decoded ECC frame;

a table creation section that creates a new log-likelihood ratio (LLR) table by executing statistical calculation based on the calculation data generated by the calculation section and sets the new LLR table to the decoder; and

a control section that controls the calculation target so that a calculation in the calculation section is not repeated for an ECC frame in which the decoding is successful,

the decoder decodes the ECC frames based on the new LLR table,

the ECC frame before decoded includes a readout level of each of a plurality of bits,

the calculation section generates a channel matrix by counting a number of times of a combination of a correct bit value and a readout level for each bit included in the ECC frame of the calculation target based on the ECC frame of the calculation target and the ECC frame before decoded, and

the table creation section statistically calculates, based on the channel matrix, a likelihood of the correct bit value for each of the readout level included in the ECC frame of the calculation target, and creates the new LLR table.

10. The semiconductor memory device of claim 9 ,

wherein the control section sets each of the plurality of decoded ECC frames to the calculation target in the calculation section only once when the decoding is successful.

11. The semiconductor memory device of claim 9 ,

wherein the control section sets an ECC frame in which the decoding is successful and the calculation has not been applied yet to the calculation target in the calculation section, and excludes an ECC frame in which the decoding is unsuccessful and an ECC frame in which the decoding is successful but the calculation has been already applied from the calculation target in the calculation section.

12. The semiconductor memory device of claim 9 ,

wherein the control section executes an initialization for a control of the calculation target when a plurality of new ECC frames are read out from the nonvolatile semiconductor memory.

13. The semiconductor memory device of claim 9 ,

wherein the table creation section is realize by firmware executed by a processor,

wherein the firmware controls the control section, generates the new LLR table based on a result of the decoding by the decoder and the calculation data generated by the calculation section, sets the new LLR table to the decoder and causes the decoder to retry the decoding, and

wherein the control section is configured by hardware.

14. The semiconductor memory device of claim 9 ,

wherein the table creation section is configured by hardware, controls the control section, creates the new LLR table based on a result of the decoding by the decoder and the calculation data generated by the calculation section, sets the new LLR table to the decoder and causes the decoder to retry the decoding, and

wherein the control section is configured by hardware.

15. The semiconductor memory device of claim 9 , wherein the decoder is a low density parity check (LDPC) decoder, and wherein the controller further comprises a Bose-Chaudhuri-Hocquenghem (BCH) decoder that performs BCH decoding for the plurality of decoded ECC frames when the decoding for all the plurality of ECC frames is successful.

16. The semiconductor memory device of claim 9 ,

wherein the calculation section comprises a plurality of switches corresponding to each of the plurality of decoded ECC frames, and

wherein the control section controls whether or not each of the plurality of decoded ECC frames becomes the calculation target by switching on/off the plurality of switches.

Assignments (5)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043620/0798 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2014
From: OGAWA, MASARU; SAKURADA, KENJI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 032709/0376 →
Continuity (2)
Provisional Application 61921136 · Dec 27, 2013
Related Publication 20150188577A1 · Jul 2, 2015