IP Library Granted Patent US 10,387,328
Granted Patent B2
US 10,387,328 · App. 15/460,126 · 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,328
App. No.
15/460,126
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 (48)

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

identifying, at a host processor, a file to be deleted, and

issuing, by the host processor, an empty-block directive to a solid-state storage controller in response to identifying the file to be deleted, the empty-block directive including a logical block identifier for a logical block corresponding to the file to be deleted; and

storing, by a solid-state storage controller, data pertaining to a logical address space at respective physical addresses of a NAND flash storage medium in response to requests from the host processor;

receiving the empty-block directive at the solid-state storage controller; and

updating, by the solid-state storage controller, a table mapping logical identifiers to physical NAND flash storage locations, wherein the table is updated to assign logical addresses of the logical address space to physical addresses in use to store data on the NAND flash storage medium and, in response to receiving the empty-block directive, to indicate that data stored in one or more of the physical NAND flash storage locations associated with the block identifier do not need to be preserved.

2. The method of claim 1 , wherein responsive to receiving a read command including the block identifier from the host processor after updating the table mapping logical identifiers, the solid-state storage controller returns a data string comprising data bits with a predetermined logic level.

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

4. The method of claim 1 , wherein at least a part of the table is maintained in volatile memory.

5. The method of claim 1 , wherein the empty-block directive issued by the host processor further comprises an indication that data stored in the one or more physical NAND flash storage locations associated with the block identifier should be overwritten.

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

7. The method of claim 1 , wherein the empty-block directive is issued at an application programming interface of the host processor.

8. The method of claim 1 , wherein the empty-block directive is issued by a file system of the host processor.

9. The method of claim 1 , wherein the empty-block directive is issued by a storage client of the host processor.

10. The method of claim 1 , further comprising the solid-state storage controller performing garbage collection in the NAND flash storage system.

11. The method of claim 10 , wherein performing garbage collection comprises the solid-state storage controller:

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.

12. The method of claim 11 , further comprising the solid-state storage controller writing data to the erased erase block.

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

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

15. A system comprising:

a host processor;

a NAND flash storage device; and

a solid-state storage controller;

wherein the host processor is configured to:

identify a file to be deleted, and

issue an empty-block directive to the solid-state storage controller in response to identifying the file to be deleted, the empty-block directive including a logical block identifier for a logical block corresponding to the file to be deleted; and

the solid-state storage controller is configured to:

store data pertaining to a logical address space at respective physical addresses of a NAND flash storage medium in response to requests from the host processor;

update a table mapping logical identifiers to physical NAND flash storage locations, wherein the table is updated to assign logical addresses of the logical address space to physical addresses in use to store data on the NAND flash storage device and, in response to receiving the empty-block directive, to indicate that data stored in one or more of the physical NAND flash storage locations associated with the block identifier do not need to be preserved;

receive the empty-block directive, and

update a table mapping logical identifiers to physical storage locations of the NAND flash storage device, wherein the table is updated to assign logical addresses of the logical address space to physical addresses in use to store data on the NAND flash storage device and, in response to receiving the empty-block directive, to indicate that data stored in one or more physical NAND flash storage locations associated with the block identifier do not need to be preserved.

16. The system of claim 15 , wherein the solid-state storage controller is configured such that, responsive to receiving a read command including the block identifier from the host processor, the solid-state storage controller returns a data string comprising data bits with a predetermined logic level after updating the table.

17. The system of claim 16 , wherein the predetermined logic level is zero.

18. The system of claim 15 , wherein at least a part of the predetermined the table is maintained in volatile memory.

19. The system of claim 15 , wherein the empty-block directive issued by the host processor further comprises an indication that data stored in the one or more physical NAND flash storage locations associated with the block identifier should be overwritten.

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

21. The system of claim 15 , wherein the host is configured to issue the empty-block directive at an application programming interface of the host processor.

22. The system of claim 15 , wherein a file system of the host processor is configured to issue the empty-block directive.

23. The system of claim 15 , wherein a storage client of the host processor is configured to issue the empty-block directive.

24. The system of claim 15 , wherein the solid-state storage controller is configured to perform garbage collection in the NAND flash storage system.

25. The system of claim 24 , wherein the solid-state storage controller is configured to perform the garbage collection by performing steps comprising:

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.

26. The system of claim 25 , wherein the solid-state storage controller is further configured to write data to the erased erase block.

27. The system of claim 15 , wherein the NAND flash storage system is an append-only storage system.

28. The system of claim 15 , wherein each of the one or more physical NAND flash storage locations are smaller than a NAND flash erase block.

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 (7)
Continuation 15228893 · Aug 4, 2016
Continuation 14309751 · Jun 19, 2014
Continuation 13566471 · Aug 3, 2012
Continuation 11952113 · Dec 6, 2007
Provisional Application 60974470 · Sep 22, 2007
Provisional Application 60873111 · Dec 6, 2006
Related Publication 20170185347A1 · Jun 29, 2017
Cited By (3)
US 12,277,090 US 12,321,629 US 12,332,838