Methods and systems for generating error correction codes
Abstract
Methods and systems for generating ECC encode a data block to generate corresponding error correction codes. A first buffer sequentially stores a first section and a second section of the data block, wherein each of the first and second sections is composed of X data rows and Y data columns of the data block, and Y is greater than or equal to 2. A second buffer stores Y partial-parity columns. An encoder is used for encoding the first section read from the first buffer to generate the partial-parity columns, and then storing the partial-parity columns in the second buffer. The second section read from the first buffer and the partial-parity columns read from the second buffer are encoded to generate updated partial-parity columns. Next, the partial-parity columns in the second buffer are updated by storing the updated partial-parity columns.
Claims
exact text as granted — not AI-modified1 . A system for encoding a data block to generate corresponding error correction codes, wherein the data block includes a plurality of rows and columns for generating error correction code (ECC) parity data, the system comprising:
a buffer for sequentially storing a first section and a second section of the data block; an encoder reading the first section from the buffer for encoding the first section, reading the second section from the buffer for encoding the second section, and generating the ECC parity data by encoding sections of the data block; and an address mode switching circuit for controlling the first section to be stored in the buffer according to a first accessing strategy, controlling the second section to be stored in the buffer according to a second accessing strategy, wherein the first and second accessing strategies are different from one another.
2 . The system of claim 1 , wherein the buffer is a static random access memory (SRAM).
3 . The system of claim 1 , wherein the ECC parity data are parity outer (PO) codes of Reed-Solomon product codes (RSPCs).
4 . The system of claim 1 , wherein successive sections of the data block are stored in the buffer in an alternating manner by toggling the first and second accessing strategies.
5 . The system of claim 1 , wherein the second section of the data block is stored in the buffer while the first section of the data block is being read from the buffer by the encoder.
6 . The system of claim 1 , further comprising a dynamic random access memory (DRAM) for storing the data block, wherein the buffer accesses the data block from the DRAM.
7 . The system of claim 1 , further comprising:
a DRAM; and a host writing the data block in a data row direction in the DRAM, wherein the buffer reads sections of the data block from the DRAM.
8 . The system of claim 1 , further comprising:
a DRAM; and a host simultaneously writing the data block in a data row direction in both the DRAM and the buffer.
9 . The system of claim 1 , further comprising:
a parity buffer, for storing partial parity data; wherein the encoder encodes the first section to generate partial parity data, stores partial parity data in the parity buffer, encodes the second section and the partial parity data to generate new partial parity data, and stores the new partial parity data in the parity buffer.
10 . A method for encoding a data block to generate corresponding error correction codes, wherein the data block includes a plurality of rows and columns for generating error correction code (ECC) parity data, the method comprising:
sequentially storing a first section and a second section of the data block in a buffer according to a first accessing strategy and a second accessing strategy, respectively; and encoding the first section read from the buffer, and encoding the second section read from the buffer, wherein the first and second accessing strategies are different from one another.
11 . The method of claim 10 , wherein the buffer is a static random access memory (SRAM).
12 . The method of claim 10 , wherein the ECC parity data are parity outer (PO) codes of Reed-Solomon product codes (RSPCs).
13 . The method of claim 10 , wherein successive sections of the data block are stored in the buffer in an alternating manner by toggling the first and second accessing strategies.
14 . The method of claim 10 , wherein the second section of the data block is stored in the buffer while the first section of the data block is being read from the buffer for encoding.
15 . The method of claim 10 , further comprising storing the data block in a dynamic random access memory (DRAM), wherein the buffer accesses the data block from the DRAM.
16 . The method of claim 10 , further comprising storing the data block read from a host in a data row direction in a DRAM, wherein the buffer reads sections of the data block from the DRAM.
17 . The method of claim 10 , further comprising storing the data block read from a host in a data row direction in a DRAM and in the buffer simultaneously.
18 . A method for encoding a data block to generate corresponding error correction codes, wherein the data block includes a plurality of rows and columns for generating error correction code (ECC) parity data, the method comprising:
sequentially storing a first section and a second section of the data block in a first buffer, wherein each of the first and second sections is composed of X data rows and Y data columns of the data block, where Y is an integer greater than or equal to 2 and X is an integer greater than or equal to 1, wherein first section is stored in the first buffer according to a first accessing strategy, and the second section is stored in the first buffer according to a second accessing strategy, the first and second accessing strategies being different from one another and being selected from a group consisting of row-by-row access and column-by-column access; encoding the first section read from the first buffer to generate partial-parity data; storing the partial-parity data in a second buffer; encoding the second section read from the first buffer and the partial-parity data read from the second buffer to generate new partial-parity data; and storing the new partial-parity data in the second buffer.
19 . The method of claim 18 , wherein the ECC parity columns are parity outer (PO) codes of Reed-Solomon product codes (RSPCs).
20 . The method of claim 18 , wherein each of the un-encoded sections of the Y data columns of the data block stored in the first buffer is accessed and encoded together with the partial-parity data of previous encoded sections read from the second buffer to generate new partial-parity data, and the new partial-parity data are stored in the second buffer for encoding the subsequent un-encoded section.
21 . The method of claim 20 , wherein the second buffer outputs the new partial-parity data as the ECC parity data corresponding to the Y data columns when all sections of the Y data columns have been encoded.
22 . The method of claim 20 , wherein the new partial-parity data is stored in the second buffer to update and overwrite the partial-parity data of previous encoded sections stored in the second buffer.
23 . The method of claim 18 , wherein successive sections of the data block are stored in the first buffer in an alternating manner by toggling the first and second accessing strategies.
24 . The method of claim 18 , wherein the first section is read from the first buffer for encoding according to the second accessing strategy and the second section is read from the first buffer for encoding according to the first accessing strategy.
25 . The method of claim 24 , wherein the second section of the data block is stored in the first buffer while the first section of the data block is being read from the first buffer for encoding.
26 . The method of claim 18 , further comprising storing the data block read from a host in a data row direction in a DRAM, wherein the first buffer reads sections of the data block from the DRAM.
27 . The method of claim 18 , further comprising storing the data block read from a host in a data row direction in a DRAM and in the first buffer simultaneously.
28 . The method of claim 18 , further comprising:
storing the first section of the Y data columns of the data block in a first memory of the first buffer; storing the second section of the Y data columns of the data block in a second memory of the first buffer; and controlling access to the first and second memories such that the first section is read from the first memory for encoding while the second memory receives and stores the second section.
29 . A system for encoding a data block to generate corresponding error correction codes, wherein the data block includes a plurality of rows and columns for generating error correction code (ECC) parity data, the system comprising:
a parity buffer for storing partial-parity data; an encoder for encoding a first section of the data block to generate the partial-parity data, storing the partial-parity data in the parity buffer, and encoding a second section of the data block and the partial-parity data read from the parity buffer to generate new partial-parity data; and an address mode switching circuit for controlling the partial-parity data to be alternatively stored according to a first accessing strategy and a second accessing strategy, wherein the first and second accessing strategies are different from one another and are selected from a group consisting of row-by-row access and column-by-column access, wherein each of the first and second sections is composed of X data rows and Y data columns of the data block, where Y is an integer greater than or equal to 2 and X is an integer greater than or equal to 1.
30 . The system of claim 29 , wherein the ECC parity columns are parity outer (PO) codes of Reed-Solomon product codes (RSPCs).Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.