# US 11,907,573 B2 · Performing background operations during host read in solid state memory device

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

- Number: US 11,907,573 B2
- Document ID: US11907573B2
- Status: Granted
- Kind: B2
- Application number: 17/353,176
- Filed: 2021-06-21
- Published: 2022-12-22
- Granted: 2024-02-20
- Earliest claimed: 2021-06-21
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Pradeep Sreedhar; Deepak Naik; Bala Siva Kumar Narala; Abhishek Shetty
- Web page: https://patentgrep.com/patent/US11907573B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0611: {in relation to response time}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 13/1668: {Details of memory controller}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A SD Card including, in one implementation, a memory array, a controller coupled to the memory array, and a bus for transferring data between the memory array and a host device in communication with the SD Card. The controller is configured to perform background maintenance operations on the memory array during execution of a read command received from the host device.

## Claims

### Claim 1

A SD Card, comprising:
a memory array;
a controller coupled to the memory array; and
a bus for transferring data between the memory array and a host device in communication with the SD Card,
wherein the controller is configured to:
determine a first duration of a host transfer between the memory array and the host device,
determine a second duration of a sector host transfer of a plurality of sector host transfers,
determine a throttle delay based on the first duration and the second duration,
perform one or more data transfer support operations based on the determined throttle delay,
determine a third duration of the one or more data transfer support operations performed during the host transfer,
determine an overhead time for the host transfer based on the first duration and the third duration,
determine an amount of time available for background operations based on the overhead time, and
perform background maintenance operations on the memory array during execution of a read command received from the host device and based on the amount of time available for background operations that is determined.

### Claim 2 (depends on 1)

The SD Card of claim 1, wherein the SD Card is powered down within 5 milliseconds of completing execution of the read command.

### Claim 3 (depends on 2)

The SD Card of claim 2, wherein the SD Card is powered down when not performing the read command or a write command.

### Claim 4 (depends on 1)

The SD Card of claim 1, wherein the background maintenance operations include at least one of:
a read scrub operation,
an EPWR operation, and
an SLC to MLC relocation.

### Claim 5 (depends on 1)

The SD Card of claim 1, wherein the controller is further configured to:
determine a host profile associated with the host device, and
select the sector host transfer rate from the plurality of host transfer rates based on the host profile that is determined.

### Claim 6 (depends on 1)

The SD Card of claim 1, wherein the controller is further configured to:
program a throttling module according to the determined throttle delay.

### Claim 7 (depends on 1)

The SD Card of claim 1, wherein the plurality of host transfer rates includes a rate of thirty megabytes-per-second (MBPS), a rate of sixty MBPS, and a rate of ninety MBPS.

### Claim 8

A method for performing background maintenance operations on a memory array of a SD Card, the method comprising:
determining, with a controller, a first duration of a host transfer between a memory array and a host device;
determining, with the controller, a second duration of a sector host transfer of a plurality of sector host transfers;
determining, with the controller, a throttle delay based on the first duration and the second duration;
performing, with the controller, one or more data transfer support operations based on the determined throttle delay;
determining, with the controller, a third duration of the one or more data transfer support operations performed during the host transfer;
determining, with the controller, an overhead time for the host transfer based on the first duration and the third duration;
determining, with the controller, an amount of time available for background operations based on the overhead time;
receiving a read command from the host device;
executing the read command with the controller; and
performing, with the controller, the background maintenance operations on the memory array during execution of the read command received from the host device and based on the amount of time available for background operations that is determined.

### Claim 9 (depends on 8)

The method of claim 8, wherein the SD card is powered down within 5 milliseconds of completing execution of the read command.

### Claim 10 (depends on 9)

The method of claim 9, wherein the SD card is powered down when not performing the read command or a write command.

### Claim 11 (depends on 8)

The method of claim 8, wherein the background maintenance operations includes performing at least one of:
a read scrub operation,
an EPWR operation, and
an SLC to MLC relocation.

### Claim 12

An apparatus for performing background maintenance operations on a memory array of a SD Card, the apparatus comprising:
means for determining a first duration of a host transfer between a memory array and a host device;
means for determining a second duration of a sector host transfer of a plurality of sector host transfers;
a means for determining a throttle delay based on the first duration and the second duration;
means for performing one or more data transfer support operations based on the determined throttle delay;
means for determining a third duration of the one or more data transfer support operations performed during the host transfer;
means for determining an overhead time for the host transfer based on the first duration and the third duration;
means for determining an amount of time available for background operations based on the overhead time;
means for receiving a read command from the host device; and
means for executing the read command;
means for performing the background maintenance operations on the memory array during execution of the read command received from the host device and based on the amount of time available for background operations that is determined.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the background maintenance operations includes performing at least one of:
a read scrub operation,
an EPWR operation, and
an SLC to MLC relocation.
