# US 10,120,792 B1 · Programming an embedded flash storage device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,792 B1
- Document ID: US10120792B1
- Status: Granted
- Kind: B1
- Application number: 14/167,879
- Filed: 2014-01-29
- Granted: 2018-11-06
- Earliest claimed: 2014-01-29
- Assignees: Avago Technologies General IP (Singapore) Pte. Ltd.
- Applicants: Avago Technologies General IP (Singapore) Pte. Ltd.
- Inventors: Avigdor Segal; Hanan Weingarten; Igal Maly; Irena Shemesh
- Web page: https://patentgrep.com/patent/US10120792B1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0611: {in relation to response time}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 2212/1024: Latency reduction
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7207: management of metadata or control data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 8)

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.

### Claim 11 (depends on 8)

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

### Claim 12 (depends on 8)

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.

### Claim 13 (depends on 8)

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.

### Claim 14 (depends on 8)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 15)

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.

### Claim 18 (depends on 15)

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

### Claim 19 (depends on 15)

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.

### Claim 20 (depends on 15)

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.
