IP Library Granted Patent US 9,323,667
Granted Patent B2
US 9,323,667 · App. 13/860,118 · Granted Apr 26, 2016

System and method for managing trim operations in a flash memory system using mapping tables and block status tables

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 9,323,667
App. No.
13/860,118
Granted
Apr 26, 2016
Kind
B2
Abstract

A method and system for managing a flash memory system facilitates the use of TRIM or similar operations so as to release physical memory space of logical block addresses (LBAs) that are declared to be deleted by a user file management system. A plurality of data structures corresponding to levels of indirection are used to manage the mapping between a user logical block address and the physical location of the data in the flash memory system and to respond to user read and write requests by determining the current status of the user logical block address in the frame of reference of the memory system. This process substantially decouples TRIM management from garbage collection and wear leveling operations.

Claims (38)

1. A method of managing a flash memory comprising:

providing a controller configured to:

maintain a first table mapping between a user logical address and a physical address where data is stored in the flash memory;

maintain a second table indicating a status for each physical address of a block of physical addresses;

maintain a third table representing a user initiated data invalidation operation of the user logical address;

wherein the controller is further operative for:

accepting a user initiated data invalidation command for the user logical address; and

updating the first, the second, and the third tables to show the status of an invalid logical and physical data address as invalid;

receiving a read request from a user and:

using an entry in the third table to determine if the user logical address corresponds to an entry in the second table that is valid or invalid; and

if the entry in the third table is invalid, return a value determined by a protocol; or,

if the entry in the third table is valid:

 using the first table to retrieve data

corresponding to the read request from the physical address;

receiving a write request from a user and:

using the entry in the third table to determine if the user logical address corresponds to an entry in the second table that is valid or invalid; and

if the entry in the third table is valid, writing data corresponding to the user logical address of the write request to a physical address allocated by the second table; or

if the entry in the third table corresponding to the user logical address of the write request is invalid, updating the entry in the third table to valid; and

 writing data corresponding to the user logical address of the write request to a physical address allocated using the second table.

2. A non-transitory computer readable memory storing a computer program product, comprising:

instructions for configuring a controller to:

maintain a first table mapping between a user logical address and a physical address where data is stored in flash memory;

maintain a second table indicating a status for each physical address of a block of physical addresses;

maintain a third table representing a user initiated data invalidation operation of the user logical address;

wherein the controller is further operative for:

accepting a user initiated data invalidation command for the user logical address; and

updating the first, the second, and the third tables to show the status of invalid logical and physical data addresses as invalid;

receiving a read request from a user and:

using an entry in the third table to determine if the user logical address corresponds to a second table entry that is valid or invalid; and

if the entry in the third table is invalid, return a value determined by a protocol; or,

if the entry in the third table is valid, using the first table to retrieve data corresponding to the read request from the physical address;

receiving a write request from a user and:

using the entry in the third table to determine if the user logical address corresponds to an entry in the second table that is valid or invalid; and

if the entry in the third table is valid, writing data corresponding to the user logical address of the write request to a physical address allocated by the second table;

or

if the entry in the third table entry-corresponding to the user logical address of the write request is invalid:

updating the entry in the third table to valid; and

writing data corresponding to the user logical address of the write request to a physical address allocated using the second table.

Assignments (8)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Feb 26, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 045039/0421 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2015
From: BENNETT, JON C.R.
To: VIOLIN MEMORY INC.
Reel/Frame 037015/0274 →
SECURITY INTEREST Recorded Aug 27, 2014
From: VIOLIN MEMORY, INC.
To: SILICON VALLEY BANK
Reel/Frame 033645/0834 →