IP Library Granted Patent US 11,347,417
Granted Patent B2
US 11,347,417 · App. 16/813,265 · Granted May 31, 2022

Locking structures in flash memory

Inventors: Grant R. Wallace (Pennington, NJ); Philip N. Shilane (Newtown, PA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0637G06F3/061G06F3/0616G06F3/0679G06F9/30087G06F9/52G06F8/458
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,347,417
App. No.
16/813,265
Granted
May 31, 2022
Kind
B2
Abstract

Systems and methods for managing content in a flash memory. A locking data structure is used to control access to data structures and the locking data structure is implemented in flash memory. The locking data structure is updated by overwriting the data such that the associated data structure is identified as locked or unlocked.

Claims (32)

1. A method, the method comprising:

instantiating an erasure unit in a flash memory that includes locking data structures including a locking data structure;

associating the locking data structure with a shared resource such that the locking data structure controls access to the shared resource by clients that request access to the shared resource;

locking the shared resource by overwriting contents of the locking data structure to a value that indicates that the shared resource is locked;

unlocking the shared resource by overwriting the contents of the locking data structure to a second value that indicates that the data structure is unlocked, wherein the locking data structure allows the shared resource to be locked and unlocked multiple times;

instantiating a second locking data structure when the locking data structure cannot be overwritten and setting the locking data structure for erasure such that multiple locking data structures can be erased at the same time,

wherein overwriting contents includes only setting bits in the locking data structure; and

providing an extension structure in a second memory, wherein the extension structure includes additional bits for locking the shared resource associated with the locking data structure, wherein the extension structure allows more time to use more bits of the other locking data structures in the flash memory when the locking data structure cannot be overwritten before erasing the erasure unit.

2. The method of claim 1 , wherein the shared resource is stored in the flash memory or in a different memory and wherein the second memory is RAM (Random Access Memory).

3. The method of claim 1 , wherein the locking data structures initially includes all 0s.

4. The method of claim 1 , wherein locking the shared resource includes overwriting the locking data structure such that the locking data structure includes an odd number of zeros.

5. The method of claim 1 , wherein unlocking the shared resource includes overwriting the locking data structure such that the locking data structure includes an even number of zeros.

6. The method of claim 1 , wherein overwriting the locking data structure includes performing an atomic operation on the locking data structure to isolate the overwriting operation from other clients.

7. The method of claim 6 , wherein overwriting the locking data structure includes performing a logical OR a compare-and-swap operation, wherein the value used in performing the logical OR the compare and swap operation is determined by reading the locking data structure such that the value includes one more 1 than the existing number of 1s in the locking data structure.

8. The method of claim 1 , further comprising receiving requests from multiple clients to access the shared resource, wherein the lock status of the locking data structure is used to grant access to the shared resource to only one of the clients at a time.

9. The method of claim 1 , wherein the client granted access to the shared resource causes the locking data structure to be overwritten twice such that the lock status is locked while the client performs operations on the shared resource and such that the lock status is unlocked after the client finishes performing the operations.

10. A non-transitory computer readable medium comprising computer executable instructions that are executable by a processor for implementing a method, the method comprising:

instantiating an erasure unit in a flash memory that includes locking data structures including a locking data structure;

associating the locking data structure with a shared resource such that the locking data structure controls access to the shared resource by clients that request access to the shared resource;

locking the shared resource by overwriting contents of the locking data structure to a value that indicates that the shared resource is locked;

unlocking the shared resource by overwriting the contents of the locking data structure to a second value that indicates that the data structure is unlocked, wherein the locking data structure allows the shared resource to be locked and unlocked multiple times;

instantiating a second locking data structure when the locking data structure cannot be overwritten and setting the locking data structure for erasure such that multiple locking data structures can be erased at the same time,

wherein overwriting contents includes only setting bits in the locking data structure; and

providing an extension structure in a second memory, wherein the extension structure includes additional bits for locking the shared resource associated with the locking data structure, wherein the extension structure allows more time to use more bits of the other locking data structures in the flash memory when the locking data structure cannot be overwritten before erasing the erasure unit.

11. The non-transitory computer readable medium of claim 10 , wherein the shared resource is stored in the flash memory or in a different memory and wherein the second memory is RAM (Random Access Memory).

12. The non-transitory computer readable medium of claim 10 , wherein the locking data structures initially include all 0s.

13. The non-transitory computer readable medium of claim 10 , wherein locking the shared resource includes overwriting the locking data structure such that the locking data structure includes an odd number of zeros.

14. The non-transitory computer readable medium of claim 10 , wherein unlocking the shared resource includes overwriting the locking data structure such that the locking data structure includes an even number of zeros.

15. The non-transitory computer readable medium of claim 10 , wherein overwriting the locking data structure includes performing an atomic operation on the locking data structure to isolate the overwriting operation from other clients.

16. The non-transitory computer readable medium of claim 15 , wherein overwriting the locking data structure includes performing a logical OR a compare-and-swap operation, wherein the value used in performing the logical OR the compare and swap operation is determined by reading the locking data structure such that the value includes one more 1 than the existing number of 1s in the locking data structure.

17. The non-transitory computer readable medium of claim 10 , the method further comprising receiving requests from multiple clients to access the shared resource, wherein the lock status of the locking data structure is used to grant access to the shared resource to only one of the clients at a time.

18. The non-transitory computer readable medium of claim 10 , wherein the client granted access to the shared resource causes the locking data structure to be overwritten twice such that the lock status is locked while the client performs operations on the shared resource and such that the lock status is unlocked after the client finishes performing the operations.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 060436/0582 →
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 (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 AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
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 INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 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 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 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 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2020
From: WALLACE, GRANT R.; SHILANE, PHILIP N.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052057/0661 →