IP Library Granted Patent US 10,133,628
Granted Patent B2
US 10,133,628 · App. 15/246,957 · Granted Nov 20, 2018

Apparatuses and methods for encoding using error protection codes

Inventor: Stephen P. Van Aken (Boulder, CO)
Assignee: Micron Technology, Inc.
G06F11/1068G06F11/1076G11C29/52H03M13/15H03M13/152H03M13/157H03M13/1515H03M13/1595H03M13/151H03M13/159H04L1/0057
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 10,133,628
App. No.
15/246,957
Granted
Nov 20, 2018
Kind
B2
Abstract

The present disclosure relates to apparatuses and method for encoding using error protection codes. An example apparatus comprises circuitry, for instance, including an encoder configured to compute parity data based, at least in part, on program data and on predetermined coefficient data. The predetermined coefficient data is determined independent of the program data.

Claims (46)

1. An apparatus, comprising:

circuitry including an encoder that includes a plurality of intermediate nodes and a product node, the encoder configured to:

calculate, via an iterative process, coefficient data representing canonical coefficients that are determined independent of program data such that the canonical coefficients are reusable for different sets of program data;

assign canonical coefficients to each of the plurality of intermediate nodes;

provide a corresponding one of the set of program data to each of the plurality of intermediate nodes, wherein the set of program data includes a number of errors;

generate products, each of the products generated at a corresponding one of the plurality of intermediate nodes based on one of the set of program data provided to and one of the canonical coefficients assigned to the corresponding one of the plurality of nodes such that each of the products is generated independently of others;

provide the products generated at the corresponding one of the plurality of intermediate nodes to the product node that is directly connected to each of the plurality of intermediate nodes such that parity data is computed based, at least in part, on a sum of the products;

compute the parity data based, at least in part, on the program data and on the coefficient data previously determined via the iterative process; and

add the parity data to the program data to produce a codeword; and

a memory array configured to store the parity data with the program data as the codeword and a decoder configured to correct the number of errors in the program data using the codeword and write the program data back to the memory array without errors.

2. The apparatus of claim 1 , wherein the circuitry is configured to correct one or more errors in the stored program data.

3. The apparatus of claim 1 , wherein the predetermined coefficient data is based, at least in part, on a generator polynomial.

4. The apparatus of claim 1 , wherein the predetermined coefficient data is computed external to the apparatus.

5. The apparatus of claim 1 , wherein the circuitry comprises combinational logic circuitry.

6. The apparatus of claim 1 , wherein the predetermined coefficient data is stored in a look-up table included in the circuitry.

7. An apparatus, comprising:

circuitry including an encoder that includes a plurality of intermediate nodes and a product node, the encoder configured to:

predetermine, via an iterative process, coefficient data representing canonical coefficients that are determined independent of program data such that the predetermined coefficient data are reusable for different sets of program data;

assign the predetermined canonical coefficients to each of the plurality of nodes;

provide a corresponding one of the set of program data to each of the plurality of intermediate nodes, wherein the set of program data includes a number of errors;

generate products, each of the products generated at a corresponding one of the plurality of intermediate nodes based on one of the set of program data provided to and one of the canonical coefficients assigned to the corresponding one of the plurality of intermediate nodes such that each of the products is generated independently of others;

provide the products generated at the corresponding one of the plurality of intermediate nodes to the product node that is directly connected to the plurality of intermediate nodes such that parity data is computed based, at least in part, on a sum of the products;

compute the parity data, at least in part, by multiplying the program data and the coefficient data predetermined via the iterative process; and

add the parity data to the program data to produce a codeword; and

a memory array configured to store the parity data with the program data as the codeword and a decoder configured to correct the number of errors in the program data using the codeword and write the program data back to the memory array without errors.

8. The apparatus of claim 7 , wherein the predetermined coefficient data is based on a particular error protection code.

9. The apparatus of claim 8 , wherein the error protection code is a generalized block oriented algebraic error protection code.

10. The apparatus of claim 7 , wherein the circuitry includes a decoder to perform an error check on the program data using the parity data.

11. The apparatus of claim 7 , wherein the predetermined coefficient data is stored in a look-up table included in the circuitry.

12. A method, comprising:

operating circuitry including an encoder that includes a plurality of intermediate nodes and a product node, the encoder configured to:

determine coefficient data, via an iterative process, prior to receiving program data, wherein the coefficient data represents canonical data that are determined independent of the program data such that the canonical data is reusable for different sets of program data;

assign canonical coefficients to each of the plurality of intermediate nodes;

provide a corresponding one of the set of program data to each of the plurality of intermediate nodes, wherein the set of program data includes a number of errors;

generate products, each of the products generated at a corresponding one of the plurality of intermediate nodes based on one of the set of program data provided to and one of the canonical coefficients assigned to the corresponding one of the plurality of intermediate nodes such that each of the products is generated independently of others;

provide the products generated at the corresponding one of the plurality of intermediate nodes to the product node that is directly connected to each of the plurality of intermediate nodes such that parity data is computed based, at least in part, on a sum of the products;

compute parity data based, at least in part, on the program data that is retrieved from a memory array and on the coefficient data predetermined via the iterative process; and

add the parity data to the program data such that the parity data along with the program data are stored as a codeword; and

storing the parity data with the program data in the memory array, correcting the number of errors in the program data using the codeword with a decoder, and writing the program data back to the memory array without errors.

13. The method of claim 12 , further including computing the predetermined coefficient data in a computing system.

14. The method of claim 12 , further including computing the predetermined coefficient data based, at least in part, on a generator polynomial.

15. The method of claim 12 , including computing the predetermined coefficient data responsive to a selection of an error protection code.

16. The method of claim 15 , further comprising retrieving the predetermined coefficient data responsive to the selection of the error protection code.

17. The method of claim 12 , further including computing the parity data, at least in part, by multiplying program data and predetermined coefficient data.

18. The method of claim 12 , and further comprising: using the stored program data and the stored parity data to correct one or more errors in the stored program data.

19. The method of claim 12 , wherein storing the coefficient data for the error protection code in memory comprises storing the computed coefficient data in a look-up table.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050680/0268 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 2 TO PATENT SECURITY AGREEMENT Recorded Feb 10, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041671/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2016
From: VAN AKEN, STEPHEN P.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 039540/0427 →
Continuity (3)
Continuation 14336873 · Jul 21, 2014
Continuation 13412539 · Mar 5, 2012
Related Publication 20160364293A1 · Dec 15, 2016