Method for efficiently controlling read/write of flash memory
First Claim
1. A method for efficiently controlling read/write of a flash memory comprising the steps of:
- setting a plurality of blocks in said flash memory as a zone, building three logical/physical address mapping tables based on the relationship between block addresses and corresponding logical addresses when the system is booted, said three address mapping tables being a FAT address mapping table, a zone address mapping table of Zone 0, and a cache address mapping table of part blocks of Zone 1; and
directly finding the physical address from said FAT address mapping table when the host end sends out a logical address to be looked up if the logical address is in the FAT of said flash memory, calculating to which block of which zone said logical address to be looked up belongs otherwise, finding the physical address from said zone address mapping table of Zone 0 when the calculation result shows said logical address to be looked up is in Zone 0, searching said cache address mapping table if said logical address to be looked up is not in Zone 0, rebuilding another cache address mapping table according to the calculation result when said cache address mapping table has not said logical address to be looked up, determining whether a zone address mapping table of another zone is to be rebuilt according to the search result until the physical address corresponding to said logical address to be looked up is found for readout or write-in of data.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for efficiently controlling read/write of a flash memory is proposed, wherein two address mapping tables and an empty block FIFO mechanism are built. A zone address mapping table matched with its empty block FIFO data is used for the logical address of the file allocation table (FAT). When a host end performs read/write to a flash memory, no matter to which zone the zone address mapping table corresponds, it is not necessary to rebuild the FAT address mapping table. Moreover, a cache address mapping table and its empty block FIFO data can be added. When the logical address is not in the zone address mapping table and the FAT address mapping table, a smaller cache address mapping table is first built to increase the system speed, let control of the flash memory be more efficient, and distribute the utility rate of each block.
39 Citations
17 Claims
-
1. A method for efficiently controlling read/write of a flash memory comprising the steps of:
-
setting a plurality of blocks in said flash memory as a zone, building three logical/physical address mapping tables based on the relationship between block addresses and corresponding logical addresses when the system is booted, said three address mapping tables being a FAT address mapping table, a zone address mapping table of Zone 0, and a cache address mapping table of part blocks of Zone 1; and
directly finding the physical address from said FAT address mapping table when the host end sends out a logical address to be looked up if the logical address is in the FAT of said flash memory, calculating to which block of which zone said logical address to be looked up belongs otherwise, finding the physical address from said zone address mapping table of Zone 0 when the calculation result shows said logical address to be looked up is in Zone 0, searching said cache address mapping table if said logical address to be looked up is not in Zone 0, rebuilding another cache address mapping table according to the calculation result when said cache address mapping table has not said logical address to be looked up, determining whether a zone address mapping table of another zone is to be rebuilt according to the search result until the physical address corresponding to said logical address to be looked up is found for readout or write-in of data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for efficiently controlling read/write of a flash memory comprising the steps of:
-
setting a plurality of blocks in said flash memory as a zone, building two logical/physical address mapping tables based on the relationship between block addresses and corresponding logical addresses when the system is booted, said three address mapping tables being a FAT address mapping table and a zone address mapping table of Zone 0;
when the host end sends out a logical address to be looked up, directly finding the physical address from said FAT address mapping table if said logical address is in the FAT of said flash memory, calculating to which zone said logical address to be looked up belongs otherwise; and
finding the physical address from said zone address mapping table of Zone 0 when the calculation result shows said logical address to be looked up is in Zone 0, rebuilding a zone address mapping table of another zone according to the calculation result when the calculation result shows said logical address to be looked up is not in Zone 0 until the physical address corresponding to said logical address to be looked up is found for readout or write-in of data. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification