IP Library Granted Patent US 11,640,359
Granted Patent B2
US 11,640,359 · App. 16/543,464 · Granted May 2, 2023

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: Unification 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/00
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 11,640,359
App. No.
16/543,464
Granted
May 2, 2023
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 (35)

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

receiving an empty-block directive from a host at a storage controller in the NAND flash storage system, the empty-block directive including a logical identifier associated with a physical storage location comprising data that does not need to be preserved;

returning by the storage controller an indication that the logical identifier is empty, in response to a read command from the host requesting to read the data identified by the logical identifier included in the empty-block directive, wherein the data in the physical storage location remains on the NAND flash storage system;

maintaining by the storage controller an index of mappings between the logical identifier and the physical storage location; and

updating the index of mappings by the storage controller, in response to the empty-block directive, to indicate that the data in the physical storage location does not need to be preserved.

2. The method of claim 1 , wherein the indication is at least one zero.

3. The method of claim 1 , further comprising:

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

overwriting the data identified by 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. A method for managing data in a system having a host processor and a block-based NAND flash storage system, the NAND flash storage system having physical NAND flash storage locations controlled by a NAND controller, the method comprising:

receiving, via the host processor, an indication of deletion of a file at the host processor;

creating, via the host processor, an empty-block identifier in response to the indication of deletion;

receiving, via the NAND controller, the empty-block identifier;

maintaining, via the NAND controller, an index of mappings between logical identifiers and physical NAND flash storage locations; and

updating the index of mappings, in response to the receiving the empty-block identifier, to indicate that data associated with the file on one or more of the physical NAND flash storage locations identified by the empty-block identifier does not need to be preserved.

8. The method of claim 7 , further comprising:

receiving, via the NAND controller, a read command including a logical identifier that was associated with the empty-block; and

returning, via the NAND controller, a data string indicating that the logical identifier is empty in response to the receiving the read command.

9. The method of claim 8 , wherein the data string comprises at least one zero.

10. The method of claim 7 , wherein the empty-block identifier indicates that the data associated with the file on the one or more physical NAND flash storage locations identified by the empty-block identifier should be overwritten.

11. The method of claim 7 , further comprising transmitting a message indicating that the data associated with the file on one or more physical NAND flash storage locations identified by the empty-block identifier has been overwritten.

12. The method of claim 7 , further comprising overwriting the data associated with the file on the one or more physical NAND flash storage locations identified by the empty-block identifier with a series of characters such that the overwritten data is non-recoverable.

13. The method of claim 7 , further comprising performing garbage collection, via the NAND controller, in the NAND flash storage system.

14. The method of claim 13 , wherein performing garbage collection comprises:

copying a block containing data that should be preserved from an erase block comprising blocks containing data that does not need to be preserved; and

erasing the erase block.

15. The method of claim 14 , further comprising writing the copied data, via the NAND controller, to the erased erase block.

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

17. The method of claim 14 , wherein each of the one or more physical NAND flash storage locations are smaller than the erase block.

18. The method of claim 1 , further comprising transmitting a message indicating that the data in the physical storage location has been deleted in response to a delete command.

19. The method of claim 1 , further comprising overwriting the data in the physical storage location with a series of characters such that the overwritten data is non-recoverable.

20. The method of claim 1 , further comprising removing a mapping between the logical identifier and the physical storage location from the index of mappings; and erasing the data stored in the physical storage location.

Assignments (7)
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: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
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 Oct 22, 2019
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
Reel/Frame 050786/0961 →