IP Library Granted Patent US 7,953,931
Granted Patent B2
US 7,953,931 · App. 12/035,398 · Granted May 31, 2011

High endurance non-volatile memory devices

Assignee: Super Talent Electronics, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,953,931
App. No.
12/035,398
Granted
May 31, 2011
Kind
B2
Abstract

High endurance non-volatile memory devices (NVMD) are described. A high endurance NVMD includes an I/O interface, a NVM controller, a CPU along with a volatile memory subsystem and at least one non-volatile memory (NVM) module. The volatile memory cache subsystem is configured as a data cache subsystem. The at least one NVM module is configured as a data storage when the NVMD is adapted to a host computer system. The I/O interface is configured to receive incoming data from the host to the data cache subsystem and to send request data from the data cache subsystem to the host. The at least one NVM module may comprise at least first and second types of NVM. The first type comprises SLC flash memory while the second type MLC flash. The first type of NVM is configured as a buffer between the data cache subsystem and the second type of NVM.

Claims (21)

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.

2. The method of claim 1 , wherein the received LSA corresponds to one physical address either in the SLC or in the MLC.

3. The method of claim 1 , wherein the SLC and the MLC are arranged in a hierarchical scheme such that the SLC is a buffer between the data cache subsystem and the MLC and total capacity of the NVMD comprises a combined capacity of the SLC and the MLC.

4. The method of claim 1 , wherein the cache usage status includes data validity, least-recently use, number of write hits.

5. A method of initializing a cache subsystem of a non-volatile memory device (NVMD) having first and second types of non-volatile memory (NVM) arranged in a hierarchical scheme with the first type of NVM as a buffer between the cache subsystem and the second type of NVM, the method comprises:

(a) receiving a power on or reset signal in the NVMD;

(b) retrieving tag, index, set number and number-of-hits flag from spare area of first page of a block in the first type of NVM;

(c) loading stored data from data area of all of the pages of the block of the first type of NVM into a particular cache line in the cache subsystem when the particular cache line is empty, wherein the particular cache line is determined by the retrieved index and the retrieved set number;

(d) otherwise loading the stored data from data area of all of the pages of the block of the first type of NVM into the particular cache line only if the retrieved number-of-hits flag shows a number greater than number-of-hits already stored in the cache line; and

repeating (a)-(d) for another block of the first type of NVM until there are no more blocks.

6. The method of claim 5 , wherein the first type of NVM is single-level cell flash memory while the second type is multi-level cell flash memory.

Assignments (2)
CHANGE OF NAME Recorded Mar 27, 2014
From: SUPER TALENT ELECTRONIC, INC.
To: SUPER TALENT TECHNOLOGY, CORP.
Reel/Frame 032540/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2008
From: YU, I-KANG; CHOW, DAVID Q.; LEE, CHARLES C.; MA, ABRAHAM CHIH-KANG; SHEN, MING-SHIANG
To: SUPER TALENT ELECTRONICS, INC.
Reel/Frame 020916/0348 →
Continuity (13)
Continuation In Part 11770642 · Jun 28, 2007
Continuation In Part 11748595 · May 15, 2007
Continuation In Part 10818653 · Apr 5, 2004
Continuation In Part 12035398
Continuation In Part 12025706 · Feb 4, 2008
Continuation In Part 11926743 · Oct 29, 2007
Continuation In Part 11466759 · Aug 23, 2006
Continuation In Part 10789333 · Feb 26, 2004
Continuation In Part 12035398
Continuation In Part 11471000 · Sep 7, 2006
Continuation In Part 11624667 · Jan 18, 2007
Division 09478720 · Jan 6, 2000
Related Publication 20080209112A1 · Aug 28, 2008