Abstract: A method and apparatus for improved data recovery in data storage systems is described. When errors occur while retrieving a plurality of codewords from a plurality of storage devices, a long vector may be formed from the plurality of codewords and decoded by a special, long parity check matrix to re-create data stored on the plurality of storage devices when normal decoding efforts fail.
Abstract: A system, method and apparatus for encoding and decoding data. A host processor and host memory are coupled to a block I/O device. The host processor issues encode and decode commands to the block I/O device in accordance with a high-speed data storage and retrieval protocol. The block I/O device encodes the data specified in the encode command, thus relieving the host processor of performing the encoding/decoding and freeing the host processor for other tasks.
Type:
Grant
Filed:
May 7, 2018
Date of Patent:
December 17, 2019
Assignee:
Goke US Research Laboratory
Inventors:
Steven Schauer, Xinhai Kang, Engling Yeo
Abstract: A system, method and apparatus for compressing and decompressing data. A host processor and host memory are coupled to a block I/O device. The host processor issues compress and decompress commands to the block I/O device in accordance with a high-speed data storage and retrieval protocol. The block I/O device compresses/decompresses the data specified in the compress/decompress command, thus relieving the host processor of performing the compression/decompression and freeing the host processor for other tasks.
Type:
Grant
Filed:
May 7, 2018
Date of Patent:
December 17, 2019
Assignee:
Goke US Research Laboratory
Inventors:
Steven Schauer, Xinhai Kang, Engling Yeo
Abstract: A data storage apparatus executes a garbage collection method. The data storage apparatus includes a NAND flash memory including blocks each of which includes pages. In the garbage collection method, a destination block is selected from the blocks. Mapping tables and a relevance bitmap are built before writing user data into the destination block. Each bit in the relevance bitmap is related to one of the mapping tables. A victim block is selected from the blocks. At least one of the mapping tables are read according to the relevance bitmap for the victim block. It is determined whether the pages, one after another, of the victim block are in the read mapping tables. The page is set to be a valid page if a page of the victim block is in a read mapping table. Data in the valid pages is written into another block.
Abstract: A method and apparatus is described for assigning columns of an LDPC H matrix to a plurality of decoding logics for efficient decoding of codewords. The rows of the LDPC H matrix are evaluated in a number of different orderings, and for each row in each ordering, a number of columns containing non-zero circulants are determined that cannot be evenly distributed to a plurality of decoding logics. As each row is evaluated, one or more columns of the LDPC H matrix are assigned to temporary bins for storage. After the LDPC H matrix has been evaluated a plurality of times, the arrangement that resulted in the fewest number of “mismatched” columns is selected, and the columns of the LDPC H matrix that were assigned to the temporary storage bins for that particular row arrangement is used to assign the columns in the bins to the plurality of decoding logics.
Abstract: A system, method and apparatus for encrypting data. A host processor and host memory are coupled to a block I/O device. The host processor issues encryption and decryption commands to the block I/O device in accordance with a high-speed data storage and retrieval protocol. The block I/O device performs encryption on data specified in the encryption command, thus relieving the host processor of performing the encryption and freeing the host processor for other tasks.
Type:
Grant
Filed:
May 7, 2018
Date of Patent:
October 22, 2019
Assignee:
Goke US Research Laboratory
Inventors:
Steven Schauer, Xinhai Kang, Engling Yeo
Abstract: A method and apparatus for efficient data decoding is described. Data is encoded by an LDPC encoder using a G matrix. An LDPC decoder uses a modified H matrix to decode encoded blocks of data, the modified H matrix having at least two columns of its circulants swapped with each other. The encoded blocks of data are stored, decoded and reconstructed in an order that considers the circulants in the columns that have been swapped.
Abstract: Look-ahead LDPC decoder. In an exemplary embodiment, a method includes generating a message (QA) to a first check node, the QA message is generated from a result (RA) from the first check node, and generating a message (QB) to a second check node, the QB message is generated from the result (RA) and is transmitted to avoid decoder stall. The method also includes receiving a result (R?A) from the first check node, computing a difference (R?A) between the result (R?A) and the result (RA), and receiving a result (R?B) from the second check node. The method also includes computing a bit value P(B) using the difference (R?A) and the result (R?B).