Method and System for In-NAND Checksum Calculating for Scrambled NAND Data
A method and memory system for calculating checksums on scrambled data read from a storage of a memory system. Scrambled data from the storage of the memory system is descrambled inside the storage of the memory system, and checksum calculations are performed inside the storage of the memory system on the descrambled data.
1 . A method for calculating checksums on scrambled data read from a storage of a memory system, comprising:
reading the scrambled data from the storage of the memory system;
inside the storage of the memory system, descrambling the read data; and
inside the storage of the memory system, performing checksum calculations on the descrambled data.
2 . The method of claim 1 , wherein the checksum calculations provide an estimate for a raw bit error in the descrambled data.
3 . The method of claim 2 , wherein the performing checksum calculations comprise using submatrices of a LDPC matrix to calculate the checksums.
4 . The method of claim 3 , wherein the submatrices are formed by reshuffling columns of the LDPC matrix to move all the nonzero columns toward a beginning of the LDPC matrix to form the submatrices having a reduced matrix size compared to the LDPC matrix.
5 . The method of claim 4 , wherein the reshuffling columns of the LDPC matrix results in the submatrices being a set of identity matrices where values on diagonals are 1 and remaining values are all 0.
6 . The method of claim 4 , wherein the LDPC matrix comprises q check nodes and the submatrices comprise a reduced number of check nodes ranging from q/2 to q/8.
7 . The method of claim 4 , wherein the submatrices H cs comprise a single layer of matrices disposed all on one side of the reshuffled LDPC matrix.
8 . The method of claim 4 , wherein the submatrices comprise stair-cased layers of matrices disposed all on one side of the reshuffled LDPC matrix.
9 . The method of claim 1 , wherein the descrambling the read data comprises:
generating a descrambling sequence during a time period when the scrambled data is read from the storage of the memory system; and
descrambling the scrambled data using the descrambling sequence.
10 . The method of claim 1 , wherein the performing checksum calculations on the descrambled data comprises:
comparing with an AND gate bits of descrambled data to column entry values a low density parity check LDPC matrix;
exclusive XORing a compared bit with previous bits having been XORed in a cycle of reading the scrambled data from the storage of the memory system;
storing the XORed results for each syndrome bit; and
counting for a checksum value the number of 1's stored in the XORed results.
11 . A memory system, comprising:
a storage having therein both a checksum calculator and a descrambler,
wherein
the descrambler inside the storage is configured to descramble scrambled data read from the storage of the memory, and
the checksum calculator inside the storage is configured to perform checksum calculations on the descrambled data.
12 . The memory system of claim 11 , wherein the checksum calculations provide an estimate for a raw bit error in the descrambled data.
13 . The memory system of claim 12 , wherein the checksum calculator is configured to use submatrices of a LDPC matrix to calculate the checksums.
14 . The memory system of claim 13 , wherein the submatrices are formed by reshuffling columns of the LDPC matrix to move all the nonzero columns toward a beginning of the LDPC matrix to form the submatrices having a reduced matrix size compared to the LDPC matrix.
15 . The memory system of claim 14 , wherein the reshuffling columns of the LDPC matrix results in the submatrices being a set of identity matrices where values on diagonals are 1 and remaining values are all 0.
16 . The memory system of claim 15 , wherein the LDPC matrix comprises q check nodes and the submatrices comprise a reduced number of check nodes ranging from q/2 to q/8.
17 . The memory system of claim 15 , wherein the submatrices comprise a single layer of matrices disposed all on one side of the reshuffled LDPC matrix.
18 . The memory system of claim 14 , wherein the submatrices comprise stair-cased layers of matrices disposed all on one side of the reshuffled LDPC matrix.
19 . The memory system of claim 11 , wherein the descrambler is configured to:
generate a descrambling sequence during a time period when the scrambled data is read from the storage of the memory system; and
descramble the scrambled data using the descrambling sequence.
20 . The memory system of claim 11 , wherein the checksum calculator is configured to:
compare with an AND gate bits of descrambled data to column entry values a low density parity check LDPC matrix;
exclusive XOR a compared bit with previous bits having been XORed in a cycle of reading the scrambled data from the storage of the memory system;
store the XORed results for each syndrome bit; and
count for a checksum value the number of 1's stored in the XORed results.