MLC self-raid flash data protection scheme
First Claim
1. A method of managing a multiple level cell flash memory that is logically organized to include a block having a plurality of pages, each page including a plurality of sectors, the method comprising:
- choosing a parity sector in each page of the plurality of pages in the block;
assigning the pages of the block into two or more groups and selecting a page in each group as a parity page of the group;
for each page, calculating a sector parity value for data stored in the sectors of the page and storing the sector parity value into the parity sector of the page; and
calculating a group parity value of data stored in the pages of a respective group of the pages in the block and storing the group parity value in the parity page of the respective group.
6 Assignments
0 Petitions
Accused Products
Abstract
A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.
-
Citations
17 Claims
-
1. A method of managing a multiple level cell flash memory that is logically organized to include a block having a plurality of pages, each page including a plurality of sectors, the method comprising:
-
choosing a parity sector in each page of the plurality of pages in the block; assigning the pages of the block into two or more groups and selecting a page in each group as a parity page of the group; for each page, calculating a sector parity value for data stored in the sectors of the page and storing the sector parity value into the parity sector of the page; and calculating a group parity value of data stored in the pages of a respective group of the pages in the block and storing the group parity value in the parity page of the respective group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A multiple level cell flash memory data storage device, comprising:
-
a flash memory array having a plurality of blocks, each block comprising an erase unit and having a plurality of pages, a respective block including a plurality of groups of pages, each group of pages including an assigned parity page; each page of a respective block having a plurality of sectors, including an assigned parity sector; wherein the device is operable, for a respective page, to store data in data sectors of the respective page; to store, in the assigned parity sector of the respective page, a sector parity value of data stored in sectors of the respective page; and wherein the device is operable, for a respective group of pages, to store data in data pages of the respective group of pages; to store, in the parity page of the respective group, a group parity value of the data stored in the data pages of the respective group. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
Specification