Flash memory management method that is resistant to data corruption by power loss
First Claim
1. A method of managing a memory that includes a plurality of pages, the method comprising the steps of:
- (a) for each page;
identifying a respective risk zone;
(b) selecting at least one unwritten page for writing new data; and
(c) writing said new data to said at least one unwritten page only if, for each said at least one unwritten page, said risk zone of said each at least one unwritten page lacks written pages.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for managing page-based data storage media such as flash media, a system that uses that method, and a computer-readable storage medium bearing code for implementing the method. New data are written to the storage medium in a manner that precludes corruption of old data if the writing of the new data is interrupted. Specifically, risk zones are defined, by identifying, for each page, the other pages whose data are put at risk of corruption if writing to the page is interrupted. A page, that otherwise would be the target of a write operation, is not written if any of the pages in its risk zone contain data that could be corrupted if the write operation is interrupted.
251 Citations
28 Claims
-
1. A method of managing a memory that includes a plurality of pages, the method comprising the steps of:
-
(a) for each page;
identifying a respective risk zone;(b) selecting at least one unwritten page for writing new data; and (c) writing said new data to said at least one unwritten page only if, for each said at least one unwritten page, said risk zone of said each at least one unwritten page lacks written pages. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A data storage system, comprising:
-
(a) a data storage medium including a plurality of pages; and (b) a controller for writing new data to said plurality of pages in a manner that precludes corruption of old data stored in a first one of said plurality of pages if writing said new data to a second one, of said plurality of pages, that shares at least one cell of said data storage medium with said first one of said plurality of pages, is interrupted, said writing being effected by steps including; (i) identifying a respective risk zone of each page of said plurality of pages; (ii) selecting at least one unwritten page of said plurality of pages for writing said new data; and (iii) writing said new data to said at least one unwritten page only if, for each said at least one unwritten page, said risk zone of said each at least one unwritten page lacks written pages. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A computer readable storage medium having computer readable code embodied in said computer readable storage medium, the computer readable code for writing new data to at least one of a plurality of pages of a data storage medium in a manner that precludes corruption of old data stored in a first said page if writing said new data to a second said page, that shares at least one cell of the data storage medium with said first page, is interrupted, the computer readable code comprising:
-
(a) program code for identifying a respective risk zone for each page; (b) program code for selecting at least one unwritten page for writing new data; and (c) program code for writing said new data to said at least one unwritten page only if, for each said at least one unwritten page, said risk zone of said each at least one unwritten page lacks written pages.
-
-
25. A data storage system, comprising:
-
(a) a data storage medium including a plurality of physical pages; and (b) a controller for; (i) accessing said data storage medium as a plurality of logical pages, with each said physical page spanning at least a portion of each of at least two said logical pages of said plurality of logical pages, and (ii) writing new data to said plurality of logical pages in a manner that precludes corruption of old data stored in a first one of said plurality of logical pages if writing said new data to a second one of said plurality of logical pages, that is spanned by at least one of said physical pages that also spans said first one of said plurality of logical pages, is interrupted, said writing being effected by steps including; (A) identifying a respective risk zone of each logical page of said plurality of logical pages; (B) selecting at least one unwritten logical page of said plurality of logical pages for writing said new data; and (C) writing said new data to said at least one unwritten logical page only if, for each said at least one unwritten logical page, said risk zone of said at least one unwritten logical page lacks written logical pages.
-
-
26. A computer readable storage medium having computer readable code embodied in said computer readable storage medium, the computer readable code comprising:
-
(a) program code for accessing, as a plurality of logical pages, a data storage medium that includes a plurality of physical pages, with each said physical page spanning at least a portion of each of at least two said logical pages; and (b) program code for writing new data to said plurality of logical pages in a manner that precludes corruption of old data stored in a first one of said plurality of logical pages if writing said new data to a second one of said plurality of logical pages, that is spanned by at least one of said physical pages that also spans said first one of said plurality of logical pages, is interrupted, said program code for writing new data to said plurality of logical pages including; (i) program code for identifying a respective risk zone of each logical page of said plurality of logical pages; (ii) program code for selecting at least one unwritten logical page of said plurality of logical pages for writing said new data; and (iii) program code for writing said new data to said at least one unwritten logical page only if, for each said at least one unwritten logical page, said risk zone of said at least one unwritten logical page lacks written logical pages.
-
-
27. A data storage system, comprising:
-
(a) a data storage medium including a plurality of pages; and (b) a controller for writing new data to said plurality of pages by steps including; (i) identifying a respective risk zone of each page of said plurality of pages; (ii) selecting at least one unwritten page of said plurality of pages for writing said new data; and (iii) writing said new data to said at least one unwritten page only if, for each said at least one unwritten page, said risk zone of said each at least one unwritten page lacks written pages.
-
-
28. A computer readable storage medium having computer readable code embodied in said computer readable storage medium, the computer readable code for writing new data to at least one of a plurality of pages of a data storage medium, the computer readable code comprising:
-
(a) program code for identifying a respective risk zone for each page; (b) program code for selecting at least one unwritten page for writing new data; and (c) program code for writing said new data to said at least one unwritten page only if, for each said at least one unwritten page, said risk zone of said each at least one unwritten page lacks written pages.
-
Specification