Rotational use of memory to minimize write cycles
AssigneeWegener Communications, Inc.
InventorsSacha Bernstein, Anthony L. Gelsomini
Life of this patent
Estimating the term…
Abstract
A system and method to minimize the number of erase cycles performed on a flash memory device to extend its useful life. A flash memory device has several areas where data is stored. Each area is referred to as a block. Memory usage is rotated between blocks to evenly distribute erase cycles.
Claims20
A method of writing a data string to a flash memory having a plurality of erase blocks and having a plurality of records, the records being configured to store data written to them, wherein the data string occupies more than one record, the method comprising:
- finding a first block having available records;
- determining if a first group of consecutive available records in said first block with available records is large enough to contain the entire data string;
- if the first group of consecutive available records is not large enough, then determining if a next group of consecutive available records is large enough to contain the entire data string;
- writing the data string continuously to a first group of consecutive available records that is large enough to contain the data string;
- and
- identifying said written continuous data string with a first keyless header having a first flag and a first pointer.
A processor for writing data strings to flash memories and erasing blocks from flash memories, said flash memories having a plurality of erase blocks and having a plurality of records, the records being configured to store data written to them, wherein the data string occupies more than one record, the apparatus comprising:
- a processor being configured to:
- find a first block having available records;
- determine if a first group of consecutive available records in said first block with available records is large enough to contain the entire data string;
- if the first group of consecutive available records is not large enough, then determine if a next group of consecutive available records is large enough to contain the entire data string;
- write the data string continuously to a first group of consecutive available records that is large enough to contain the data string;
- and
- identify said written continuous data string with a first keyless header having a first flag and a first pointer.
Dependencies are inferred from the claim text.