Flash file system power-up by using sequential sector allocation
First Claim
1. A method of generating mapping table data for a memory block within a non-volatile memory device on power-up of a processing device in which the non-volatile memory device is used, the block comprising a plurality of pages, each page associated with a logical sector number and a consecutive sector count, and a page of the block further comprising a flag indicating whether deleted pages in the block are present, the method comprising identifying the status of the flag;
- reading the last page of the block and identifying the logical sector number, and the consecutive sector count;
reading one or more additional pages of the block when the consecutive sector count indicates that not all sectors associated with the block are consecutive; and
recording mapping table data for the block without reading all of the pages in the block when the flag indicates that no deleted pages in the block are present.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for reducing the time for initializing a non-volatile memory device, such as flash memory, at power-up that takes advantage of the fact that many file systems are designed to perform sequential writes within a block of data units. The method and system includes, in one aspect, reading the last page of a block, determining the logical sector number of the page and generating a mapping table for that block by allocating the logical sector number to the last page and respectively allocating to each remaining page sequentially decreasing logical sector numbers. When not all sectors in the block are consecutive, mapping table information is built by reading only one page from each chain of consecutive sectors. In another aspect, a “deleted sector(s) present” flag is used in the last page of each block to determine whether the block contains deleted sectors, in which case the initialization procedure generally reads all sectors in the block. In addition, the initialization procedure reduces the time required to identify erased blocks by reading only the first and last pages of the block.
-
Citations
27 Claims
-
1. A method of generating mapping table data for a memory block within a non-volatile memory device on power-up of a processing device in which the non-volatile memory device is used, the block comprising a plurality of pages, each page associated with a logical sector number and a consecutive sector count, and a page of the block further comprising a flag indicating whether deleted pages in the block are present, the method comprising
identifying the status of the flag; -
reading the last page of the block and identifying the logical sector number, and the consecutive sector count;
reading one or more additional pages of the block when the consecutive sector count indicates that not all sectors associated with the block are consecutive; and
recording mapping table data for the block without reading all of the pages in the block when the flag indicates that no deleted pages in the block are present. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of initializing a unit of a non-volatile memory device of a processing device in which the non-volatile memory device is used, the non-volatile memory device comprising a plurality of units, each unit comprising a known plurality of sub-units, each sub-unit comprising a logical unit number and a consecutive sub-unit count, the method comprising:
-
reading one of the sub-units of one of the units;
reading one or more additional sub-units when the consecutive sub-unit count of the one of the sub-units indicates that not all sub-units associated with the one of the units are consecutive;
identifying the logical unit number of the sub-unit; and
generating mapping table data for the one of the units without reading all of the sub-units in the unit. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for optimizing the initialization process for a non-volatile memory device on power-up of a processing device in which the non-volatile memory device is used, the method comprising:
-
reading a last consecutive page associated with a plurality of sectors comprising a block of a plurality of blocks in the memory device;
determining whether the last consecutive page is erased;
reading the first page of the plurality of pages when the last consecutive page is erased;
determining whether the first page has been erased;
recording that the block has been erased when the first page has been erased; and
repeating the procedure for all other blocks in the memory device. - View Dependent Claims (22, 23, 24)
-
-
25. Computer-readable media embodying a program of instructions to perform a method of initializing a non-volatile memory device of a processing device in which the non-volatile memory device is used, the non-volatile memory device comprising a plurality of units, each unit comprising a known plurality of sub-units, each sub-unit comprising a logical unit number and a consecutive sub-unit count, the method comprising:
- reading one of the sub-units of one of the units;
reading one or more additional sub-units when the consecutive sub-unit count of the one of the sub-units indicates that not all sub-units associated with the one of the units are consecutive;
identifying the logical unit number of the sub-unit; and
generating mapping table data for the one of the units without reading all of the sub-units in the unit.
- reading one of the sub-units of one of the units;
-
26. A method of generating mapping table data for a memory block within a non-volatile memory device on power-up of a processing device in which the non-volatile memory device is used, the block comprising a plurality of pages, the method comprising:
-
reading a page of the block;
identifying a consecutive sector count associated with the page; and
recording mapping table data for the block without reading all of the pages in the block when the consecutive sector count indicates that consecutive sectors are present in the block.
-
-
27. A processing device comprising a non-volatile memory device, the memory device comprising a block of pages, the processing device further comprising media embodying a program of instructions executable by the processing device to perform a method of generating mapping table data for a memory block within a non-volatile memory device on power-up of a processing device in which the non-volatile memory device is used, the block comprising a plurality of pages, the method comprising reading a page of the block;
- identifying a consecutive sector count associated with the page; and
recording mapping table data for the block without reading all of the pages in the block when the consecutive sector count indicates that consecutive sectors are present in the block.
- identifying a consecutive sector count associated with the page; and
Specification