Distributed mapping scheme for mass storage system
AssigneeiCreate Technologies Corporation
InventorsYaw Oh, Jen Chieh Tuan
Life of this patent
Estimating the term…
Abstract
In accordance with the objectives of the invention a new method is provided for the updating and erasing of flash memory data. The new method effects and improves the write, the update and the read operations of the flash memory cell.
Claims9
A distributed mapping scheme for addressing a mass storage system, said mass storage system comprising data pages being addressed by physical addresses, said data pages comprising a data part and a spare part, comprising the steps of:
- (a) providing a mapping table, said mapping table being controlled by a host software function, said mapping table having been initiated, said initiation having created logical addresses of said mass storage system, said logical addresses providing a one-to-one correspondence between said logical addresses and physical addresses of said mass storage system, one physical address pointing to a data page of said mass storage system, spare portions of said date page not being empty pointing to a next data page belonging to a chain of data pages associated with said physical address, a first data page of said chain of data pages comprising an empty spare portion being a data page containing usable data;
- and
- (b) performing a data update operation of said data part of a data page, comprising the steps of:
- (i) storing a physical address of said data page;
- (ii) identifying the logical address corresponding with said physical address of said data page;
- (iii) copying the data part of said data page to a buffer;
- (iv) updating the data in the buffer with new data;
- (iv) locating a new data page of said mass storage system to place the data from the updated buffer, providing a physical address being associated with said new data page;
- (iv) writing the new data from the buffer to the data portion of said new data page, leaving the spare part of said new data page empty;
- and
- (v) entering the physical address of said new data page in the spare portion of a last data page of said chain of data pages associated with said physical address.
A method of implementing a distributed mapping scheme for addressing a mass storage system, comprising the steps of:
- (a) providing a host software function, said host software function providing a mapping table, said mapping table being controlled by said host software function;
- initiating said mapping table, creating logical addresses of said mass storage system, said logical addresses providing a one-to-one correspondence between said logical addresses and physical addresses of one data page of said mass storage system, said one data page comprising a data part and a spare part, one physical address pointing to a data page of said mass storage system, spare portions of said data page not being empty pointing to a next data page belonging to a chain of data pages associated with said physical address, a first data page of said chain of data pages comprising an empty spare portion being a data page containing usable data;
- (b) performing a data update operation of said data part of a data page, comprising the steps of:
- (i) storing a physical address of said data page;
- (ii) identifying the logical address corresponding with said physical address of said data page;
- (iii) copying the data part of said data page to a buffer;
- (iv) updating the data in the buffer with new data;
- (iv) locating a new data page of said mass storage system to place the data from the updated buffer, providing a physical address being associated with said new data page;
- (iv) writing the new data from-the buffer to the data portion of said new data page, leaving the spare part of said new data page empty;
- and
- (v) entering the physical address of said new data page in the spare portion of a last data page of said chain of data pages associated with said physical address.
A flash memory for use as a mass storage system, comprising the functions of:
- (a) providing a host software function, said host software function providing a mapping table,:
- said mapping table being controlled by said host software function;
- initiating said mapping table, creating logical addresses of said mass storage system, said logical addresses providing a one-to-one correspondence between said logical addresses and physical addresses of one data page of said mass storage system, said one data page comprising a data segment and a spare segment, one physical address pointing to a data page of said mass storage system, spare portions of said data page not being empty pointing to a next data page belonging to a chain of data pages associated with said physical address, a first data page of said chain of data pages comprising an empty spare portion being a data page containing usable data;
- (b) performing a data update operation of said data segment of a data page, comprising the steps of:
- (i) storing a physical address of said data page;
- (ii) identifying the logical address corresponding with said physical address of said data page;
- (iii) copying the data segment of said data page to a buffer;
- (iv) updating the data in the buffer with new data;
- (iv) locating a new data page of said mass storage system to place the data from the updated buffer, providing a physical address being associated with said new data page;
- (iv) writing the new data from the buffer to the data portion of said new data page, leaving the spare segment of said new data page empty;
- and
- (v) entering the physical address of said new data page in the spare portion of a last data page of said chain of data pages associated with said physical address.
A flash memory for the use as a mass storage system, comprising:
- (1) a plurality of blocks for storing data in said flask memory;
- (2) each of said blocks comprising a plurality of pages;
- each of said pages comprising a header segment and a data segment;
- and
- (3) wherein an address mapping table for said flash memory is distributed among said header segments, said address mapping table being supported by a data update operation of said data segment of a data page, said address mapping table comprising:
- (i) data pages being addressed by physical addresses;
- (ii) said data pages comprising a data segment and a spare segment;
- (iii) being controlled by a host software function;
- (iv) having been initiated, having created logical addresses of said mass storage system;
- (v) said logical addresses providing a one-to-one correspondence between said logical addresses and physical addresses of said mass storage system;
- (vi) one physical address pointing to a data page of said mass storage system;
- (vii) spare portions of said data page not being empty pointing to a next data page belonging to a chain of data pages associated with said physical address;
- and
- (viii) a first data page of said chain of data pages comprising an empty spare portion being a data page containing usable data.
Dependencies are inferred from the claim text.