IP Library Granted Patent US 10,521,123
Granted Patent B2
US 10,521,123 · App. 16/209,054 · Granted Dec 31, 2019

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/0655G06F3/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 10,521,123
App. No.
16/209,054
Granted
Dec 31, 2019
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 (28)

1. A method for writing data to a data structure implemented in a flash memory, the method comprising:

receiving a write request from a client at the flash memory, wherein the flash memory includes a controller and a library that includes a plurality of calls that are performed by the controller, wherein the controller is configured to perform the write request, and wherein the write request is to write an update to a data structure stored in the flash memory in accordance with a particular call;

determining, by the controller, how to implement the write request in the flash memory, wherein the controller overwrites a location in the flash memory when an overwrite operation can be performed, wherein the update is written to an in-memory table or to a new location in the flash memory when the overwrite operation cannot be performed.

2. The method of claim 1 , wherein the particular call is specified by the client in the write request.

3. The method of claim 1 , wherein the particular call is determined by the controller.

4. The method of claim 1 , wherein the write request includes the update and a location in the flash memory.

5. The method of claim 1 , wherein the overwrite operation is performed when the write request only requires setting bits.

6. The method of claim 1 , further comprising flushing contents of the in-memory table to the flash memory, wherein the contents are written to new locations in the flash memory when flushing the contents.

7. The method of claim 1 , wherein the particular call is a logical OR operation or a compare and swap operation.

8. The method of claim 1 , wherein the data structure includes a data portion and a pointer portion, wherein the data portion and the pointer portion can by overwritten independently.

9. A non-transitory computer readable medium comprising computer executable instructions that, when executed by a processor, perform a method for writing data to a data structure implemented in a flash memory, the method comprising:

receiving a write request from a client at the flash memory, wherein the flash memory includes a controller and a library that includes a plurality of calls that are performed by the controller, wherein the controller is configured to perform the write request wherein the write request is to write an update to a data structure stored in the flash memory in accordance with a particular call;

determining, by the controller, how to implement the write request in the flash memory, wherein the controller overwrites a location in the flash memory when an overwrite operation can be performed, wherein the update is written to an in-memory table or to a new location in the flash memory when the overwrite operation cannot be performed.

10. The non-transitory computer readable medium of claim 9 , wherein the particular call is specified by the client in the write request.

11. The non-transitory computer readable medium of claim 9 , wherein the particular call is determined by the controller.

12. The non-transitory computer readable medium of claim 9 , wherein the write request includes the update and a location in the flash memory.

13. The non-transitory computer readable medium of claim 9 , wherein the overwrite operation is performed when the write request only requires setting bits.

14. The non-transitory computer readable medium of claim 9 , further comprising flushing contents of the in-memory table to the flash memory, wherein the contents are written to new locations in the flash memory when flushing the contents.

15. The non-transitory computer readable medium of claim 9 , wherein the particular call is a logical OR operation or a compare and swap operation.

16. The non-transitory computer readable medium of claim 9 , wherein the data structure includes a data portion and a pointer portion, wherein the data portion and the pointer portion can by overwritten independently.

17. A method for reading data from a data structure implemented in a flash memory, the method comprising:

receiving a read request from a client at the flash memory for data stored in a data structure, wherein the read request includes a location in the data structure, wherein the flash memory is associated with a library and a controller that are configured to support write requests and read requests, wherein the library includes a plurality of calls configured to perform the read requests and the write requests in the flash memory;

reading the data from the data structure at the location in the data structure stored in the flash memory;

applying updates to the data that are stored in an in-memory table, wherein the updates stored in the in-memory table correspond to writes to the requested data that were stored in the in-memory table instead of being written to the flash memory; and

returning the updated data to the client in response to the read request.

18. The method of claim 17 , wherein the controller determines a particular call for the read request.

19. The method of claim 17 , wherein the client specifies a particular call for the read request.

20. The method of claim 17 , further comprising flushing the updates to the flash memory.

Assignments (7)
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: WALLACE, GRANT R.; SHILANE, PHILIP N.
To: EMC CORPORATION
Reel/Frame 051104/0432 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051108/0585 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
Continuity (2)
Continuation 15196283 · Jun 29, 2016
Related Publication 20190107946A1 · Apr 11, 2019