IP Library Granted Patent US 10,387,327
Granted Patent B2
US 10,387,327 · App. 15/228,893 · Granted Aug 20, 2019

Systems and methods for identifying storage resources that are not in use

Inventors: David Flynn (Sandy, UT); Jonathan Thatcher (Liberty Lake, WA); Michael Zappe (Arvada, CO)
Assignee: FIO Semiconductor Technologies, LLC
G06F12/121G06F1/183G06F3/0604G06F3/065G06F3/0608G06F3/0613G06F3/0619G06F3/0643G06F3/0652G06F3/0656G06F3/0659G06F3/0679G06F3/0685G06F3/0688G06F9/52G06F9/54G06F11/108G06F12/0246G06F12/0804G06F12/0868G06F12/12G06F12/123G06F13/28G06F13/4022G06F13/426H04L67/02H05K7/1444H05K7/1487G06F2211/002G06F2211/103G06F2212/1044G06F2212/2022G06F2212/222G06F2212/70G06F2212/7205H04L67/1097Y02D10/13Y02D10/14Y02D10/151
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 10,387,327
App. No.
15/228,893
Granted
Aug 20, 2019
Kind
B2
Abstract

An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.

Claims (40)

1. A method for managing data in a NAND flash storage system, the method comprising:

sending, by a host processor, an empty-block directive including a logical identifier comprising data deleted by the host processor;

receiving, at a solid-state storage controller maintaining a block mapping table between logical identifiers and physical storage locations of the NAND flash memory, the empty block directive including the logical identifier, wherein the logical identifier is associated, in the block mapping table, with a physical storage location comprising data deleted by the host processor;

updating, by the solid state storage controller, the block mapping table to indicate that the physical storage location associated with the logical identifier comprises data deleted by the host;

sending, by the host processor, a read command requesting to read data associated with the logical identifier included in the empty block directive; and

returning, from the solid-state storage controller to the host processor, a data string comprising data of a predetermined logic level, based on the updated block mapping table, in response to the read command requesting to read data associated with the logical identifier included in the empty block directive, wherein the data of the predetermined logic level indicates that the data associated with the logical block identifier is deleted.

2. The method of claim 1 wherein the predetermined logic level is zero.

3. The method of claim 1 further comprising:

determining that the empty-block directive further includes an indication that data associated with the logical identifier should be overwritten; and

overwriting the data associated with the logical identifier.

4. The method of claim 1 wherein the empty-block directive is part of a block storage protocol.

5. The method of claim 1 wherein the empty-block directive is received through an application programming interface.

6. The method of claim 1 wherein the empty-block directive is received from a file system.

7. The method of claim 1 , wherein the empty-block directive is received from a storage client.

8. The method of claim 1 , further comprising performing garbage collection on storage locations in the flash storage system.

9. The method of claim 8 , wherein performing garbage collection comprises:

copying a block containing data to be preserved from an erase block, wherein the erase block comprises at least one block containing data to be preserved and blocks containing data that do not need to be preserved, and

erasing data from the erase block.

10. The method of claim 9 , further comprising writing new data to the erased erase block.

11. The method of claim 1 , wherein the NAND flash storage system is an append-only storage system.

12. A system, comprising:

a host processor configured to:

send an empty block directive, wherein the empty block directive includes a logical identifier for data to be deleted; and

send a read command requesting to read data associated with a logical identifier;

a NAND flash memory; and

a solid-state storage controller configured to:

maintain a block mapping table between logical identifiers and physical storage locations of the NAND flash memory;

receive an empty-block directive from the host processor, the empty block directive including a logical block identifier associated, in the block mapping table, with one or more physical storage locations of the NAND flash memory;

update the block mapping table to indicate that the one or more locations comprise data deleted by the host;

return, from the solid-state storage controller to the host processor, a data string comprising data of a predetermined logic level, based on the updated block mapping table, in response to a read command requesting to read data associated with the logical block identifier, wherein the data of the predetermined logic level indicates that the data associated with the logical block identifier is deleted.

13. The system of claim 12 , wherein the predetermined logic level is zero.

14. The system of claim 12 , wherein the storage controller is further configured to:

determine that the empty-block directive includes an indication that data associated with the block identifier should be overwritten; and

overwrite the data associated with the block identifier.

15. The system of claim 12 , wherein the empty-block directive is part of a block storage protocol.

16. The system of claim 12 , wherein the empty-block directive is received through an application programming interface.

17. The system of claim 12 , wherein the empty-block directive is received from a file system.

18. The system of claim 12 , wherein the empty-block directive is received from a storage client.

19. The system of claim 12 , wherein the storage controller is further configured to perform garbage collection on storage locations in the NAND flash memory.

20. The system of claim 12 , wherein the system is an append-only storage system.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 053654 FRAME: 0254. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 15, 2021
From: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 058134/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Nov 15, 2021
From: UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 058223/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: ACACIA RESEARCH GROUP LLC
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 052096/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT DOCUMENT FILED PREVIOUSLY RECORDED ON REEL 047702 FRAME 0413. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 16, 2019
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
Reel/Frame 048918/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES LIMITED
Reel/Frame 047702/0413 →
Continuity (6)
Continuation 14309751 · Jun 19, 2014
Continuation 13566471 · Aug 3, 2012
Continuation 11952113 · Dec 6, 2007
Provisional Application 60873111 · Dec 6, 2006
Provisional Application 60974470 · Sep 22, 2007
Related Publication 20160342366A1 · Nov 24, 2016