Flash file system

  • US 5,404,485 A
  • Filed: 03/08/1993
  • Issued: 04/04/1995
  • Est. Priority Date: 03/08/1993
  • Status: Expired due to Term
First Claim
Patent Images

1. A memory management method for a memory in which data can be written only in unwritten physical memory locations and in which a zone of contiguous memory locations can be simultaneously erased, comprising the steps of:

  • organizing the memory into a plurality of units;

    organizing each unit into a plurality of blocks, each of said blocks made up of a plurality of contiguous physical memory locations;

    establishing an allocation map for each unit which indicates the status of each block in a unit as written, unwritten or deleted;

    establishing a virtual map to map virtual addresses to physical addresses;

    in writing data to said memory at a virtual address;

    (a) mapping said virtual address to a physical block address using said virtual map;

    (b) examining said allocation map for said unit to which said virtual address has been mapped in step (a) to determine the status of a block at said physical block address as written, unwritten or deleted;

    (c) if said block at said physical block address is in written or deleted status;

    (1) examining said allocation map for at least one of said units to identify an unwritten block address;

    (2) writing said data into said memory to said unwritten block address;

    (3) changing said allocation map for a block in a unit in which said data have been written in paragraph (c)(2) to indicate as written said previously unwritten block address where said data have been written;

    (4) changing said virtual map to map virtual addresses to physical addresses within a unit so that said virtual map maps said virtual address to the physical address of said previously unwritten block in which said data have been written in step (c)(2);

    establishing a transfer unit in said memory in which all blocks are in unwritten status, said transfer unit including a transfer unit allocation map;

    periodically identifying a selected unit, other than said transfer unit, to be erased;

    reading each written block in said selected unit;

    writing each written block in said selected unit into said transfer unit;

    updating said transfer unit allocation map to indicate as written the status of blocks that have been written in the just previous writing step;

    erasing said selected unit;

    updating said virtual map to reflect the above-described movement of said written blocks.

View all claims
    ×
    ×

    Thank you for your feedback

    ×
    ×