IP Library Granted Patent US 10,055,150
Granted Patent B1
US 10,055,150 · App. 15/170,768 · Granted Aug 21, 2018

Writing volatile scattered memory metadata to flash device

Inventors: Marvin Dela Cruz Fenol (Bacood Santa Mesa Manila, PH); Jik-Jik Oyong Abad (Pasay, PH); Precious Nezaiah Umali Pestano (Quezon, PH)
Assignee: BiTMICRO Networks, Inc.
G06F3/0619G06F3/065G06F3/0685G06F3/0688G06F12/0804G06F12/121G06F2212/2022G06F2212/60G06F2212/69
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,055,150
App. No.
15/170,768
Granted
Aug 21, 2018
Kind
B1
Abstract

In an embodiment of the invention, a method comprises: requesting an update on a control data in at least one flash block in a storage memory; replicating, from the storage memory to a cache memory, the control data to be updated; moving a clean cache link list to a dirty cache link list so that the dirty cache link list is changed to reflect the update on the control data; and moving the dirty cache link list to a for-flush link list and writing an updated control data from the for-flush link list to a free flash page in the storage memory. In another embodiment of the invention, an apparatus comprises: a control data flushing system configured to: request an update on a control data in at least one flash block in a storage memory; replicate, from the storage memory to a cache memory, the control data to be updated; move a clean cache link list to a dirty cache link list so that the dirty cache link list is changed to reflect the update on the control data; and move the dirty cache link list to a for-flush link list and write an updated control data from the for-flush link list to a free flash page in the storage memory. In yet another embodiment of the invention, an article of manufacture, comprises a non-transient computer-readable medium having stored thereon instructions operable to permit an apparatus to: request an update on a control data in at least one flash block in a storage memory; replicate, from the storage memory to a cache memory, the control data to be updated; move a clean cache link list to a dirty cache link list so that the dirty cache link list is changed to reflect the update on the control data; and move the dirty cache link list to a for-flush link list and write an updated control data from the for-flush link list to a free flash page in the storage memory.

Claims (41)

1. A method, comprising:

requesting an update on a control data in at least one flash block in a storage memory;

replicating, from the storage memory to a cache memory, the control data to be updated;

moving a clean cache link list in the cache memory to a dirty cache link list in the cache memory so that the dirty cache link list is changed to reflect the update on the control data, wherein the dirty cache link list will first contain the control data without the update prior to moving the clean cache link list to the dirty cache link list, and wherein the dirty cache link list is changed into an updated control data after the control data is updated and the clean cache link list is moved to the dirty cache link list;

moving the dirty cache link list to a for-flush link list in the cache memory so that the for-flush link list will contain the updated control data; and

asking for a free flash page in the storage memory;

and writing the updated control data from the for-flush link list to the free flash page in the storage memory.

2. The method of claim 1 , wherein the cache memory is used as a temporary location for modifying the control data.

3. The method of claim 1 , wherein the at least one flash block comprises at least one flash page and wherein the at least one flash page comprises a control data identifier information and a control data information.

4. The method of claim 1 , further comprising:

returning the for-flush link list to the clean cache link list in the cache memory.

5. The method of claim 1 , wherein the dirty cache link list is moved to the for-flush link list prior to writing the updated control data to the storage memory.

6. The method of claim 1 , wherein the storage memory comprises at least one solid state drive (SSD).

7. The method of claim 1 , wherein the storage memory comprises at least one flash memory device.

8. An apparatus, comprising:

a control data flushing system configured to:

request an update on a control data in at least one flash block in a storage memory;

replicate, from the storage memory to a cache memory, the control data to be updated;

move a clean cache link list in the cache memory to a dirty cache link list in the cache memory so that the dirty cache link list is changed to reflect the update on the control data, wherein the dirty cache link list will first contain the control data without the update prior to moving the clean cache link list to the dirty cache link list, and wherein the dirty cache link list is changed into an updated control data after the control data is updated and the clean cache link list is moved to the dirty cache link list;

move the dirty cache link list to a for-flush link list in the cache memory so that the for-flush link list will contain the updated control data;

ask for a free flash page in the storage memory; and

write the updated control data from the for-flush link list to the free flash page in the storage memory.

9. The apparatus of claim 8 , wherein the cache memory is used as a temporary location for modifying the control data.

10. The apparatus of claim 8 , wherein the at least one flash block comprises at least one flash page and wherein the at least one flash page comprises a control data identifier information and a control data information.

11. The apparatus of claim 8 , wherein the control data flushing system is configured to return the for-flush link list to the clean cache link list in the cache memory.

12. The apparatus of claim 8 , wherein the dirty cache link list is moved to the for-flush link list prior to writing the updated control data to the storage memory.

13. The apparatus of claim 8 , wherein the storage memory comprises at least one solid state drive (SSD).

14. The apparatus of claim 8 , wherein the storage memory comprises at least one flash memory device.

15. An article of manufacture, comprising:

a non-transitory computer-readable medium having stored thereon instructions operable to permit an apparatus to perform a method comprising:

requesting an update on a control data in at least one flash block in a storage memory;

replicating, from the storage memory to a cache memory, the control data to be updated;

moving a clean cache link list in the cache memory to a dirty cache link list in the cache memory so that the dirty cache link list is changed to reflect the update on the control data, wherein the dirty cache link list will first contain the control data without the update prior to moving the clean cache link list to the dirty cache link list, and wherein the dirty cache link list is changed into an updated control data after the control data is updated and the clean cache link list is moved to the dirty cache link list;

moving the dirty cache link list to a for-flush link list in the cache memory so that the for-flush link list will contain the updated control data;

asking for a free flash page in the storage memory; and

writing the updated control data from the for-flush link list to the free flash page in the storage memory.

16. The article of manufacture of claim 15 , wherein the instructions are operable to permit the apparatus to perform a method further comprising: returning the for-flush link list to the clean cache link list in the cache memory.

17. The article of manufacture of claim 15 , wherein the dirty cache link list is moved to the for-flush link list prior to writing the updated control data to the storage memory.

18. The article of manufacture of claim 15 , wherein the storage memory comprises at least one solid state drive (SSD).

19. The article of manufacture of claim 15 , wherein the storage memory comprises at least one flash memory device.

20. The article of manufacture of claim 15 , wherein the cache memory is used as a temporary location for modifying the control data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2021
From: BITMICRO NETWORKS, INC.
To: BITMICRO LLC
Reel/Frame 055840/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2018
From: FENOL, MARVIN DELA CRUZ; ABAD, JIK-JIK OYONG; PESTANO, PRECIOUS NEZAIAH UMALI
To: BITMICRO NETWORKS, INC.
Reel/Frame 045736/0699 →
Continuity (5)
Continuation In Part 14690370 · Apr 17, 2015
Provisional Application 61981165 · Apr 17, 2014
Provisional Application 61981150 · Apr 17, 2014
Provisional Application 61980634 · Apr 17, 2014
Provisional Application 61980594 · Apr 17, 2014