×

High endurance non-volatile memory devices

  • US 7,953,931 B2
  • Filed: 02/21/2008
  • Issued: 05/31/2011
  • Est. Priority Date: 08/04/1999
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method of managing data transfer operations in a high endurance non-volatile memory device (NVMD) adapted to a host computer system, the NVMD comprises a volatile memory as a data cache subsystem and at least one non-volatile memory module as a data storage of the host, the method comprises:

  • receiving a data transfer request including a logical sector address (LSA) of data to be transferred from the host computer system;

    determining whether a ‘

    cache-hit’

    or a ‘

    cache-miss’

    status in the data cache subsystem according to an index and a tag derived from the received LSA, the ‘

    cache-hit’

    status represents a ‘

    cache-hit’

    cache line contains relevant data;

    determining whether the data transfer request is a read or a write operation;

    when the read operation and the ‘

    cache-hit’

    are determined, retrieving requested data from the ‘

    cache-hit’

    cache line and sending to the host; and

    updating a cache usage status;

    when the read operation and the ‘

    cache-miss’

    are determined, loading the request data from the at least one non-volatile memory module based on the received LSA to a least-recently used (LRU) cache line in the data cache subsystem;

    sending the requested data to the host; and

    updating a cache usage status;

    when the write operation and the ‘

    cache-hit’

    are determined, writing incoming data to ‘

    cache-hit’

    cache line;

    updating the cache usage status; and

    storing the incoming data into the at least one non-volatile memory module according to the received LSA; and

    when the write operation and the ‘

    cache-miss’

    are determined, writing the incoming data to the LRU cache line;

    updating the cache usage status; and

    storing the incoming data into the at least one non-volatile memory module according to the received LSA;

    wherein the at least one non-volatile memory module includes Single-Level Cell flash memory (SLC) and Multi-Level Cell flash memory (MLC) and said storing the incoming data into the at least one non-volatile memory module according to the received LSA further comprises;

    if SLC data programming rules allow, storing the incoming data to a block corresponding to the physical address in the SLC, otherwise storing the incoming data to a new available SLC block;

    when the SLC has been used up to its capacity, a lowest hit block in the SLC is copied to a new MLC block for reuse, the new MLC block is allocated according to a selection process using a probability density function along with a pseudo random number generator.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×