Flash memory organization
First Claim
1. A flash memory system having a plurality of pages, each page having 2N data locations and K spare locations, and at least one page comprising:
- 2M−
1 or less user data sectors, each sector having 2N-M+L locations therein; and
error-correction code (ECC) data related to the user data and stored in at least the 2M user data locations unused by the 2M−
1 user data sectors;
wherein M, N, L, and K are positive integers, N>
M, M≧
1, 1≦
L<
2N-M, and wherein at least a portion of one user data sector is stored in the spare locations.
8 Assignments
0 Petitions
Accused Products
Abstract
A flash-memory system is organized into a plurality of blocks and a plurality of pages in each block, each page having 2N data locations and K spare locations. At least one page in the memory has 2M−1 user data sectors and each sector has 2N-M+L locations therein. Error-correction code (ECC) data related to the user data is calculated and stored in at least the 2M user data locations unused by the 2M−1 user data sectors. Because L is at least 1 but less than 2N-M (N>M), at least a portion of one user data sector is stored in the spare memory locations. Additional locations in each page are available to allow for the ECC data to have additional redundancy bits added per sector, thereby making the flash memory system more robust and reliable.
-
Citations
21 Claims
-
1. A flash memory system having a plurality of pages, each page having 2N data locations and K spare locations, and at least one page comprising:
-
2M−
1 or less user data sectors, each sector having 2N-M+L locations therein; anderror-correction code (ECC) data related to the user data and stored in at least the 2M user data locations unused by the 2M−
1 user data sectors;wherein M, N, L, and K are positive integers, N>
M, M≧
1, 1≦
L<
2N-M, and wherein at least a portion of one user data sector is stored in the spare locations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
providing a flash memory system having a plurality of pages, each page having 2N data locations and K spare locations, at least one page storing no more than 2M−
1 user data sectors therein;storing user data in at least one of the 2M−
1 user data sectors, each of the user data sectors having 2N-M+1, locations therein;calculating error-correction code (ECC) data related to the stored user data; and storing the ECC data in at least the 2M user data locations unused by the 2M−
1 user data sectors;wherein M, N, L, and K are positive integers, N>
M, M≧
1, 1≦
L<
2N-M, and wherein at least a portion of one user data sector is stored in the spare locations. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
providing a flash memory system having a plurality of pages, each page having 2N data locations and K spare locations, at least one page storing no more than 2M−
1 user data sectors therein;storing user data in at least one of the 2M−
1 user data sectors, each of the user data sectors having 2N-M+L locations therein;calculating error-correction code (ECC) data related to the stored user data; reading at least one of the 2M−
1 user data sectors and corresponding ECC data; andchecking and, if required, correcting the read user data; storing the ECC data in at least the 2M user data locations unused by the 2M−
1 user data sectors;wherein M, N, L, and K are positive integers, N>
M, M≧
1, 1≦
L<
2N-M, and wherein at least a portion of one user data sector is stored in the spare locations, and wherein the ECC data calculated using a BCH code having at least 392 bits of redundancy per user data sector. - View Dependent Claims (21)
-
Specification