# US 11,029,856 B2 · Flash memory device with data fragment function

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

- Number: US 11,029,856 B2
- Document ID: US11029856B2
- Status: Granted
- Kind: B2
- Application number: 16/287,393
- Filed: 2019-02-27
- Published: 2019-09-05
- Granted: 2021-06-08
- Earliest claimed: 2018-03-02
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Hyunsuk Shin; Hung Vuong
- Web page: https://patentgrep.com/patent/US11029856B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/061: {Improving I/O performance}
- G06F 3/064: {Management of blocks}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2201/81: Threshold
- G06F 2201/86: Event-based monitoring
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G11C 16/06: Auxiliary circuits, e.g. for writing into memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

Methods and apparatuses to fragment data in a flash memory device are presented. The apparatus includes a host configured to request a flash memory device, via a memory bus, to fragment data stored in the flash memory device in response to a determination of a data fragmentation status of the flash memory device exceeding a threshold. The method includes determining a data fragmentation status of the flash memory device exceeding a threshold and requesting, by a host, the flash memory device to fragment data stored in the flash memory device in response to the determining the data fragmentation status exceeding the threshold.

## Claims

### Claim 1

An apparatus, comprising:
a host configured to request a flash memory device, via a memory bus, to fragment data stored in the flash memory device in response to a determination of a data fragmentation status, corresponding to a distribution of continuous data within a memory portion, of the flash memory device exceeding a threshold, wherein the determination of the data fragmentation status exceeding the threshold is based on comparing a percentage of fragmentation to a preset percentage.

### Claim 2 (depends on 1)

The apparatus of claim 1, further comprising the flash memory device and the memory bus.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the flash memory device is further configured to fragment the data stored in the flash memory device in response to the request to fragment the data stored in the flash memory device.

### Claim 4 (depends on 3)

The apparatus of claim 3, further comprising one of a computing system, a mobile computing system, an Internet of Things device, and a virtual reality or augmented reality system incorporating the host, the flash memory device, and the memory bus.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein the flash memory device is further configured to determine the data fragmentation status of the flash memory device.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the host is further configured to request, via the memory bus, the flash memory device to report the data fragmentation status,
the flash memory device is further configured to report, via the memory bus, the data fragmentation status in response to the request to report the data fragmentation status, and
the host is further configured to determine the data fragmentation status reported by the flash memory device exceeding the threshold.

### Claim 7 (depends on 4)

The apparatus of claim 4, wherein the host is further configured to interrupt the flash memory device determining the data fragmentation status.

### Claim 8 (depends on 4)

The apparatus of claim 4, wherein the flash memory device is configured to determine the data fragmentation status without responding to a specific request from the host to determine the data fragmentation status.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the flash memory device is configured to determine the data fragmentation status exceeding the threshold and to trigger an exception event at the host in response to the data fragmentation status exceeding the threshold.

### Claim 10 (depends on 4)

The apparatus of claim 4, wherein the host is further configured to interrupt the flash memory device fragmenting the data stored in the flash memory device.

### Claim 11

An apparatus comprising:
a flash memory device configured to receive from a host, via a memory bus, a request to fragment data stored in the flash memory device and to fragment the data stored in the flash memory device, to increase fragmentation of a piece of continuous data, in response to the request to fragment the data stored in the flash memory device,
wherein the flash memory device is further configured to:
determine a data fragmentation status of the flash memory device;
determine the data fragmentation status exceeds a threshold based on comparing a percentage of fragmentation to a preset percentage; and
trigger an exception event at the host in response to the data fragmentation status exceeding the threshold.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the flash memory device is further configured to receive from the host, via the memory bus, a request to report the data fragmentation status of the flash memory device and to determine the data fragmentation status of the flash memory device in response to the request to report the data fragmentation status, and
wherein the flash memory device is further configured to report to the host, via the memory bus, the data fragmentation status.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the flash memory device is further configured to halt the determination of the data fragmentation status in response to an interrupt from the host.

### Claim 14 (depends on 11)

The apparatus of claim 11, further comprising one of a computing system, a mobile computing system, an Internet of Things device, and a virtual reality or augmented reality system incorporating the flash memory device, the host, and the memory bus.

### Claim 15 (depends on 11)

The apparatus of claim 11, wherein the flash memory device is configured to determine the data fragmentation status of the flash memory device without responding to a specific request from the host to determine the data fragmentation status.

### Claim 16 (depends on 11)

The apparatus of claim 11, wherein the flash memory device is further configured to halt fragmenting the data in response to an interrupt from the host.

### Claim 17 (depends on 16)

The apparatus of claim 16, further comprising one of a computing system, a mobile computing system, an Internet of Things device, and a virtual reality or augmented reality system incorporating the flash memory device, the host, and the memory bus.

### Claim 18 (depends on 11)

The apparatus of claim 11, wherein the flash memory device comprises a universal flash storage (UFS) device.

### Claim 19

A method to fragment data in a flash memory device, comprising:
determining a data fragmentation status, corresponding to a distribution of continuous data within a memory portion, of the flash memory device exceeding a threshold, wherein determining the data fragmentation status exceeding the threshold comprises comparing a percentage of fragmentation to a preset percentage;
requesting, by a host, the flash memory device to fragment data stored in the flash memory device in response to determining the data fragmentation status exceeding the threshold.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
fragmenting, by the flash memory device, the data stored in the flash memory device in response to requesting to fragment the data stored in the flash memory device.

### Claim 21 (depends on 20)

The method of claim 20, further comprising:
determining, by the flash memory device, the data fragmentation status of the flash memory device.

### Claim 22 (depends on 21)

The method of claim 21, further comprising:
requesting, by the host, the flash memory device to report the data fragmentation status; and
reporting, by the flash memory device, the data fragmentation status in response to requesting to report the data fragmentation status, wherein determining the data fragmentation status exceeding the threshold comprises determining, by the host, the data fragmentation status reported by the flash memory device exceeding the threshold.

### Claim 23 (depends on 21)

The method of claim 21, further comprising:
interrupting, by the host, the flash memory device determining the data fragmentation status.

### Claim 24 (depends on 21)

The method of claim 21, wherein the flash memory device determines the data fragmentation status without responding to a specific request from the host to determine the data fragmentation status.

### Claim 25 (depends on 24)

The method of claim 24, further comprising:
determining, by the flash memory device, the data fragmentation status exceeding the threshold; and
triggering, by the flash memory device, an exception event at the host in response to the data fragmentation status exceeding the threshold.

### Claim 26 (depends on 21)

The method of claim 21, further comprising:
interrupting, by the host, the flash memory device fragmenting the data stored in the flash memory device.
