# US 12,769,653 B2 · Memory system, memory controller and operating method of the memory system for controlling garbage collection

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

- Number: US 12,769,653 B2
- Document ID: US12769653B2
- Status: Granted
- Kind: B2
- Application number: 18/982,999
- Filed: 2024-12-16
- Published: 2025-04-10
- Granted: 2026-10-20
- Earliest claimed: 2022-03-16
- Assignees: SK hynix Inc.
- Applicants: SK hynix Inc.
- Inventors: Gi Pyo Um
- Web page: https://patentgrep.com/patent/US12769653B2

## CPC

- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A memory system or memory controller may calculate a first data size, which is the sum of sizes of data requested to be written by write requests from outside the memory system after a first reference time point, calculate a second data size, which is the sum of sizes of data updated by the write requests among data already stored in the memory device from a second reference time point, and control execution of garbage collection on data stored in the memory device based on the first data size and the second data size.

## Claims

### Claim 1

A memory system comprising:
a memory device configured to store data by write requests from outside the memory system; and
a memory controller configured to:
determine an execution data size, wherein the execution data size is a sum of sizes of data updated by the write requests among data already stored in the memory device during a time period from a reference time point to a time point when a number of free memory blocks of the memory device becomes equal to or less than a preset threshold free memory block number, and
skip a garbage collection at the time point when the execution data size is equal to or greater than a predetermined threshold data size.

### Claim 2 (depends on 1)

The memory system of claim 1, wherein the memory controller executes the garbage collection at the time point when the execution data size is less than the predetermined threshold data size.

### Claim 3 (depends on 2)

The memory system of claim 2, wherein the memory controller determines a first data size, wherein the first data size is a sum of sizes of data requested to be written by the write requests during a time period from a first reference time point which is before the reference time point to the time point.

### Claim 4 (depends on 3)

The memory system of claim 3, wherein the first data size is greater than the execution data size.

### Claim 5 (depends on 3)

The memory system of claim 3, wherein the first data size is equal to or greater than a multiple of a predetermined reference data size at the time point that the garbage collection is executed.

### Claim 6 (depends on 3)

The memory system of claim 3, wherein the first data size is equal to or greater than a multiple of a predetermined reference data size at the time point that the garbage collection is skipped.

### Claim 7 (depends on 6)

The memory system of claim 6, wherein the predetermined reference data size is equal to the predetermined threshold data size.

### Claim 8 (depends on 1)

The memory system of claim 1, wherein the memory controller determines the execution data size by excluding a size of data by a write request for new data among the write requests during the time period.

### Claim 9 (depends on 1)

The memory system of claim 1, wherein the memory controller resets the execution data size after skipping the garbage collection.

### Claim 10

A memory system comprising:
a memory device configured to store data; and
a memory controller configured to:
determine an execution data size, wherein the execution data size is a sum of sizes of data updated by write requests among data already stored in the memory device during a time period from a reference time point to a time point when a number of free memory blocks of the memory device becomes equal to or less than a preset threshold free memory block number; and
execute a garbage collection during a first time when the execution data size is less than a predetermined threshold data size at the time point, and execute the garbage collection during a second time which is shorter than the first time when the execution data size is equal to or greater than the predetermined threshold data size at the time point.

### Claim 11 (depends on 10)

The memory system of claim 10, wherein a sum of sizes of data requested to be written by write requests during a time period from a first reference time point to the time point is equal to or greater than a predetermined reference data size at the time point that the garbage collection is executed during the first time.

### Claim 12 (depends on 10)

The memory system of claim 10, wherein a sum of sizes of data requested to be written by write requests during a time period from a first reference time point to the time point is equal to or greater than a predetermined reference data size at the time point that the garbage collection is executed during the second time.

### Claim 13 (depends on 12)

The memory system of claim 12, wherein the first reference time point is before the reference time point.

### Claim 14 (depends on 10)

The memory system of claim 10, wherein the memory controller resets the execution data size after the second time.

### Claim 15

A memory system comprising:
a memory device configured to store data; and
a memory controller configured to:
determine a first data size and a second data size, wherein the first data size is a sum of sizes of data requested to be written by write requests during a time period from a first reference time point to a first time point when a number of free memory blocks of the memory device becomes equal to or less than a preset threshold free memory block number, and the second data size is a sum of sizes of data updated by the write requests among data already stored in the memory device during a time period from a second reference time point to the first time point, and
execute a garbage collection during a first time when the first data size is equal to or greater than a multiple of a predetermined reference data size and the second data size is less than a predetermined threshold data size at the first time point.

### Claim 16 (depends on 15)

The memory system of claim 15, wherein the memory controller determines the first data size during a time period from the first reference time point to a second time point when the number of free memory blocks of the memory device becomes equal to or less than the preset threshold free memory block number, and the second data size during a time period from the second reference time point to the second time point, and skips the garbage collection when the first data size is equal to or greater than a multiple of the predetermined reference data size and the second data size is equal to or greater than the predetermined threshold data size at the second time point.

### Claim 17 (depends on 16)

The memory system of claim 16, wherein the memory controller maintains the first data size and resets the second data size after skipping the garbage collection.

### Claim 18 (depends on 15)

The memory system of claim 15, wherein the first data size is greater than the second data size, and the predetermined reference data size is equal to the predetermined threshold data size.

### Claim 19 (depends on 15)

The memory system of claim 15, wherein the memory controller determines the first data size during a time period from the first reference time point to a second time point when the number of free memory blocks of the memory device becomes equal to or less than the preset threshold free memory block number, and the second data size during a time period from the second reference time point to the second time point, and executes the garbage collection during a second time less than the first time when the first data size is equal to or greater than a multiple of the predetermined reference data size and the second data size is equal to or greater than the predetermined threshold data size at the second time point.

### Claim 20 (depends on 19)

The memory system of claim 19, wherein the memory controller maintains the second data size at the first time point that the garbage collection is executed during the first time, and resets the second data size at the second time point that the garbage collection is executed during the second time.
