IP Library Granted Patent US 10,120,792
Granted Patent B1
US 10,120,792 · App. 14/167,879 · Granted Nov 6, 2018

Programming an embedded flash storage device

Inventors: Avigdor Segal (Netanya, IL); Hanan Weingarten (Herzelia, IL); Igal Maly (Tel Aviv, IL); Irena Shemesh (Haifa, IL)
Assignee: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
G06F12/0246G06F3/0611G06F3/0659G06F3/0679G06F2212/7207
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,120,792
App. No.
14/167,879
Granted
Nov 6, 2018
Kind
B1
Abstract

A method that includes sending to an embedded flash storage device (EFSD) and during a transaction, a data unit and recovery metadata that differs from a flash memory unit memory management data structure (FMUMMDS); instructing the EFSD to program the data unit and the recovery metadata to a group of flash memory cells; sending to the host computer a transaction completion indication in response to a successful completion of the programming and before a completion of a management process that comprises updating by the flash memory controller, the FMUMMDS to reflect (a) the recovery metadata and (b) physical address information related to the group of the flash memory cells; and programming, by the EFSD, the FMUMMDS to the flash memory unit; wherein the data structure is reconstructible based upon the recovery metadata and the physical address information related to the group of the flash memory cells.

Claims (57)

1. A method, comprising:

sending, by a flash memory controller, a data unit and recovery metadata to an embedded flash storage device, wherein the recovery metadata is associated with a logical address of the data unit;

instructing the embedded flash storage device to initiate a write transaction;

performing stages of the write transaction and stages of a management process in parallel;

wherein the stages of the write transaction comprise:

programming, by the embedded flash storage device, the data unit and the recovery metadata to a flash memory unit of the embedded flash storage device;

informing, by the embedded flash storage device, the flash memory controller that the programming of the data unit and the recovery metadata succeeded; and

sending, by the flash memory controller, to a host computer a transaction completion indication in response to a successful completion of the write transaction; and

wherein the stages of the management process comprise:

updating, by the flash memory controller, a flash memory unit management data structure to reflect one or more of the recovery metadata and a physical address of the flash memory unit of the embedded flash storage device; and

programming, by the embedded flash storage device, the flash memory unit management data structure to the flash memory unit of the embedded flash storage device; and

comparing, by the flash memory controller, a content of the flash memory unit management data structure with a combination of the recovery metadata and the physical address of the flash memory unit.

2. The method according to claim 1 , further comprising:

reading a content of the flash memory unit during a power-up process, wherein the recovery metadata is retrieved upon power-up.

3. The method according to claim 1 , wherein programming the data unit and the recovery metadata to the flash memory unit of the embedded flash storage device comprises writing the data unit and the recovery metadata to the physical address of the flash memory unit.

4. The method according to claim 1 , further comprising determining, by the flash memory controller, whether the management process failed.

5. The method according to claim 1 , wherein the updating of the flash memory unit management data structure is performed in parallel to programming the data unit.

6. The method according to claim 1 , further comprising informing, by the embedded flash storage device, the flash memory controller that the programming of the data unit and the recovery metadata succeeded.

7. The method according to claim 1 , wherein the flash memory unit is read during a power up process in order to allow retrieval of the recovery metadata upon power up.

8. A non-transitory computer readable medium that includes instructions to be executed by a computerized system and include instructions for performing the steps of:

sending, by a flash memory controller, a data unit and recovery metadata to an embedded flash storage device, wherein the recovery metadata is associated with a logical address of the data unit;

instructing the embedded flash storage device to initiate a write transaction;

performing stages of the write transaction and stages of a management process in parallel;

wherein the stages of the write transaction comprise:

performing, by the embedded flash storage device, the data unit and the recovery metadata to a flash memory unit of the embedded flash storage device;

informing, by the embedded flash storage device, the flash memory controller that the programming of the data unit and the recovery metadata succeeded; and

sending, by the flash memory controller, to a host computer a transaction completion indication in response to a successful completion of the write transaction; and

wherein the stages of the management process comprise:

updating, by the flash memory controller, a flash memory unit management data structure to reflect one or more of the recovery metadata and a physical address of the flash memory unit of the embedded flash storage device; and

programming, by the embedded flash storage device, the flash memory management data structure to the flash memory unit of the embedded flash storage device; and

comparing, by the flash memory controller, a content of the flash memory unit management data structure with a combination of the recovery metadata and the physical address of the flash memory unit.

9. The non-transitory computer readable medium of claim 8 , further comprising:

reading a content of the flash memory unit during a power-up process, wherein the recovery metadata is retrieved upon power-up.

10. The non-transitory computer readable medium of claim 8 , wherein programming the data unit and the recovery metadata to the flash memory unit of the embedded flash storage device comprises writing the data unit and the recovery metadata to the physical address of the flash memory unit.

11. The non-transitory computer readable medium of claim 8 , further comprising determining, by the flash memory controller, whether the management process failed.

12. The non-transitory computer readable medium of claim 8 , wherein the updating of the flash memory unit management data structure is performed in parallel to programming the data unit.

13. The non-transitory computer readable medium of claim 8 , further comprising informing, by the embedded flash storage device, the flash memory controller that the programming of the data unit and the recovery metadata succeeded.

14. The non-transitory computer readable medium of claim 8 , wherein the flash memory unit is read during a power up process in order to allow retrieval of the recovery metadata upon power up.

15. An embedded flash storage device comprising:

a flash memory controller, the flash memory controller operable to:

send, by the flash memory controller, send a data unit and recovery metadata to the embedded flash storage device, wherein the recovery metadata is associated with a logical address of the data unit;

instruct the embedded flash storage device to initiate a write transaction;

perform stages of the write transaction and stages of a management process in parallel;

wherein the stages of the write transaction comprise:

programming by the embedded flash storage device, the data unit and the recovery metadata to a flash memory unit of the embedded flash storage device;

informing, by the embedded flash storage device, the flash memory controller that the programming of the data unit and the recovery metadata succeeded; and

sending, by the flash memory controller, to a host computer a transaction completion indication in response to a successful completion of the write transaction; and

wherein the stages of the management process comprise:

updating, by the flash memory controller, a flash memory unit management data structure to reflect one or more of the recovery metadata and a physical address of the flash memory unit of the embedded flash storage device; and

programming, by the embedded flash storage device, the flash memory unit management data structure to the flash memory unit of the embedded flash storage device; and

compare a content of the flash memory unit management data structure with a combination of the recovery metadata and the physical address of the flash memory unit.

16. The embedded flash storage device of claim 15 , wherein the flash memory controller is further operable to:

read a content of the flash memory unit during a power-up process, wherein the recovery metadata is retrieved upon power-up.

17. The embedded flash storage device of claim 15 , wherein programming the data unit and the recovery metadata to the flash memory unit of the embedded flash storage device comprises writing the data unit and the recovery metadata to the physical address of the flash memory unit.

18. The embedded flash storage device of claim 15 , wherein the flash memory controller is further operable to determine whether the management process failed.

19. The embedded flash storage device of claim 15 , wherein the updating of the flash memory unit management data structure is performed in parallel to programming the data unit.

20. The embedded flash storage device of claim 15 , wherein the stages of the management process further comprise informing, by the embedded flash storage device, the flash memory controller that the programming of the data unit and the recovery metadata succeeded.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048549/0113 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047231/0369 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2014
From: SEGAL, AVIGDOR; WEINGARTEN, HANAN; MALY, IGAL; SHEMESH, IRENA
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 034215/0136 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →