# US 12,761,804 B2 · Method of operating memory system and memory system performing the same

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

- Number: US 12,761,804 B2
- Document ID: US12761804B2
- Status: Granted
- Kind: B2
- Application number: 19/170,582
- Filed: 2025-04-04
- Published: 2025-07-17
- Granted: 2026-10-13
- Earliest claimed: 2023-03-21
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Changho Choi; Young Bong Kim; Eun-Kyung Choi
- Web page: https://patentgrep.com/patent/US12761804B2

## CPC

- G06F 3/0613: {in relation to throughput}
- G06F 3/064: {Management of blocks}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In a method of operating a memory system disclosed, whether a first condition is satisfied is determined. The first condition is associated with free blocks and garbage collection (GC) target blocks from among a plurality of memory blocks. In response to the first condition being satisfied, a size of a data sample associated with executions of a host input/output request and GC is adjusted. The data sample is generated based on the adjusted size of the data sample. The data sample includes a downscaled current valid page count (VPC) ratio and the first number of previous host input/output request to GC processing ratios. A current host input/output request to GC processing ratio is calculated based on the data sample. The host input/output request and the GC are performed based on the current host input/output request to GC processing ratio.

## Claims

### Claim 1

A method of operating a storage system, the method comprising:
determining a first garbage collection (GC) level among a plurality of GC levels based on a level of decrease of free blocks among a plurality of memory blocks;
reducing a size of a data sample associated with executions of host input/output requests and GC input/output requests to generate a first data sample having the reduced size, based on the first GC level; and
performing the host input/output requests and the GC input/output requests, based on the first data sample.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first GC level represents that a number of the free blocks has decreased below a given value.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first GC level represents that a ratio of the free blocks to the plurality of memory blocks decreases below a given ratio.

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of GC levels include:
a high-risk level indicating when a number or a ratio of the free blocks decreases below a given number or a given ratio; and
a block level indicating when the number or the ratio of the free blocks excessively decreases below the given number or the given ratio.

### Claim 5 (depends on 4)

The method of claim 4, wherein the performing the host input/output requests and the GC input/output requests includes:
performing the GC input/output requests first and then the host input/output requests, based on the first GC level being the high-risk level.

### Claim 6 (depends on 4)

The method of claim 4, wherein the performing the host input/output requests and the GC input/output requests includes:
performing the GC input/output requests only and blocking the host input/output requests, based on the first GC level being the block level.

### Claim 7 (depends on 1)

The method of claim 1, wherein the size of the data sample is associated with an acquisition speed for acquiring new free blocks.

### Claim 8 (depends on 7)

The method of claim 7, wherein the new free blocks are acquired faster as the size of the data sample decreases.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first data sample includes:
a downscaled current valid page count (VPC) ratio for a current GC block among GC target blocks and a first number of previous host input/output request and GC processing ratios.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
determining a second GC level among the plurality of GC levels;
maintaining the size of the data sample to generate a second data sample having the maintained size, based on the second GC level; and
performing the host input/output requests and the GC input/output requests, based on the second data sample,
wherein the second data sample includes the downscaled current VPC ratio and a second number of previous host input/output requests and GC processing ratios, and
wherein the second number is greater than the first number.

### Claim 11

A method of operating a memory device, the method comprising:
determining a first garbage collection (GC) level among a plurality of GC levels based on a level of decrease of free blocks among a plurality of memory blocks;
adjusting a size of a data sample associated with executions of host input/output requests and GC input/output requests to generate the data sample having the adjusted size, based on the first GC level; and
performing the host input/output requests and the GC input/output request, based on the data sample.

### Claim 12 (depends on 11)

The method of claim 11, wherein the determining the first GC level includes:
detecting the level of decrease by determining whether a number or a ratio of the free blocks decreases below a given number or a given ratio; and
identifying the first GC level, based on the level of decrease.

### Claim 13 (depends on 11)

The method of claim 11, wherein the generating the data sample having the adjusted size includes:
adjusting the data sample to have a first size, based on the first GC level being a high-risk level; and
adjusting the data sample to have a second size that is smaller than the first size, based on the first GC level being a block level.

### Claim 14 (depends on 13)

The method of claim 13, wherein:
the high-risk level indicating when a number or a ratio of the free blocks decreases below a given number or a given ratio; and
the block level indicating when the number or the ratio of the free blocks excessively decreases below the given number or the given ratio.

### Claim 15 (depends on 11)

The method of claim 11, wherein the size of the data sample is associated with an acquisition speed for acquiring new free blocks.

### Claim 16

A method of operating a memory controller, the method comprising:
detecting a level of decrease of free blocks among a plurality of memory blocks;
determining a first garbage collection (GC) level among a plurality of GC levels, based on the level of decrease;
adjusting a data sample associated with executions of host input/output requests and GC input/output requests to generate the data samples having the adjusted size, based on the first GC level; and
issuing the host input/output requests and the GC input/output request to a memory device, based on the data sample.

### Claim 17 (depends on 16)

The method of claim 16, wherein the first GC level indicates when a number or a ratio of the free blocks decreases below a given number or a given ratio.

### Claim 18 (depends on 16)

The method of claim 16, wherein the new free blocks are acquired faster as the size of the data sample decreases.

### Claim 19 (depends on 16)

The method of claim 16, wherein the issuing the host input/output requests and the GC input/output requests to the memory device includes:
calculating a downscaled current host input/output request to GC processing ratio, based on the data sample; and
generating the host input/output requests and the GC input/output requests, based on the downscaled current host input/output request to GC processing ratio.

### Claim 20 (depends on 19)

The method of claim 19, wherein the issuing the host input/output requests and the GC input/output requests to the memory device further includes:
determining one or more downscaled host tokens and one or more downscaled GC tokens, based on the downscaled current host input/output request to GC processing ratio;
deducting the one or more downscaled host tokens one by one whenever the host input/output request is performed; and
deducting the one or more downscaled GC tokens one by one whenever the GC is performed.
