IP Library Granted Patent US 11,106,362
Granted Patent B2
US 11,106,362 · App. 16/707,895 · Granted Aug 31, 2021

Additive library for data structures in a flash memory

Inventors: Philip N. Shilane (Newtown, PA); Grant R. Wallace (Pennington, NJ)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/061G06F3/064G06F3/0616G06F3/0655G06F3/0679G06F3/0688G06F16/9014G06F16/9024G11C16/10G11C16/102
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,106,362
App. No.
16/707,895
Granted
Aug 31, 2021
Kind
B2
Abstract

Systems and methods for managing data structures in a flash memory. A library is provided that supports read requests and write requests. The library allows reads and writes to be implemented without requiring the client to understand how the data structure is implemented in the flash memory.

Claims (26)

1. A method for interacting with data stored in a flash memory, the method comprising:

receiving a request from a client at a library to perform an operation in the flash memory without requiring the client to know how that the operation is being performed the flash memory and without requiring the client to specify how the operation is performed in the flash memory, wherein the library includes a plurality of calls for performing read operations and write operations in the flash memory;

when the request is a write request to write first data in the flash memory, performing the write request by writing the first data with an overwrite operation when the overwrite operation can be performed and performing the write request by writing the first data to an in-memory table or to a new location in the flash memory when the overwrite operation cannot be performed; and

when the request is a read request for second data, reading the second data from the flash memory, wherein the second data is updated from the in-memory table when at least a portion of the second data is present in the in-memory table and has not been written to the flash memory.

2. The method of claim 1 , further comprising performing the request by a controller of the flash memory.

3. The method of claim 1 , wherein the library comprises calls configured to be accessed by a process or a thread.

4. The method of claim 1 , wherein the read request is accompanied by a location that identifies a data structure in the flash memory and an offset within the data structure.

5. The method of claim 1 , wherein the write request is accompanied by a location in a data structure and data to be written to the location in the data structure.

6. The method of claim 1 , wherein the client is not required to specify how the operation is performed, wherein the write request is one of an overwrite or a write, wherein the library comprises logic to perform the overwrite when possible.

7. The method of claim 1 , further comprising performing the read request by reading the second data stored in the flash memory and then updating the second data from the in-memory table when portions of the second data are stored in the in-memory table.

8. The method of claim 1 , further comprising converting the write request into the overwrite operation by the library.

9. The method of claim 1 , further comprising temporarily storing the first data associated with the write request in the in-memory table or in another memory.

10. The method of claim 1 , wherein the first data and the second data are stored in a data structure, wherein the write request is implemented by overwriting a pointer portion of the data structure or a data portion of the data structure.

11. A non-transitory computer readable medium comprising computer executable instructions that, when executed by a processor, implement a method for interacting with data stored in a flash memory, the method comprising:

receiving a request from a client at a library to perform an operation in the flash memory without requiring the client to know how the operation is being performed the flash memory and without requiring the client to specify how the operation is performed in the flash memory, wherein the library includes a plurality of calls for performing read operations and write operations in the flash memory;

when the request is a write request to write first data in the flash memory, performing the write request by writing the first data with an overwrite operation when the overwrite operation can be performed and performing the write request by writing the first data to an in-memory table or to a new location in the flash memory when the overwrite operation cannot be performed; and

when the request is a read request for second data, reading the second data from the flash memory, wherein the second data is updated from the in-memory table when at least a portion of the second data is present in the in-memory table and has not been written to the flash memory.

12. The non-transitory computer readable medium of claim 11 , the method further comprising performing the request by a controller of the flash memory.

13. The non-transitory computer readable medium of claim 11 , wherein the library comprises calls configured to be accessed by a process or a thread.

14. The non-transitory computer readable medium of claim 11 , wherein the read request is accompanied by a location that identifies a data structure in the flash memory and an offset within the data structure.

15. The non-transitory computer readable medium of claim 11 , wherein the write request is accompanied by a location in a data structure and first data to be written to the location in the data structure.

16. The non-transitory computer readable medium of claim 11 , wherein the client is not required to specify how the operation is performed, wherein the write request is one of an overwrite or a write, wherein the library comprises logic to perform the overwrite when possible.

17. The non-transitory computer readable medium of claim 11 , the method further comprising performing the read request by reading the second data store in the flash memory and then updating the second data from the in-memory table when portions of the second data are stored in the in-memory table.

18. The non-transitory computer readable medium of claim 11 , the method further comprising converting the write request into the overwrite operation by the library.

19. The non-transitory computer readable medium of claim 11 , the method further comprising temporarily storing the first data associated with the write request in the in-memory table or in another memory.

20. The non-transitory computer readable medium of claim 11 , wherein the first data and the second data are stored in a data structure, wherein the write request is implemented by overwriting a pointer portion of the data structure or a data portion of the data structure.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2019
From: SHILANE, PHILIP N.; WALLACE, GRANT R.
To: EMC CORPORATION
Reel/Frame 051220/0951 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2019
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051231/0001 →