# US 12,216,525 B2 · Detecting page fault traffic

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

- Number: US 12,216,525 B2
- Document ID: US12216525B2
- Status: Granted
- Kind: B2
- Application number: 18/137,895
- Filed: 2023-04-21
- Published: 2023-11-16
- Granted: 2025-02-04
- Earliest claimed: 2020-08-14
- Applicants: Micron Technology, Inc.
- Inventors: Luca Porzio; Alessandro Orlando; Danilo Caraccio; Roberto Izzi
- Web page: https://patentgrep.com/patent/US12216525B2

## CPC

- G06F 11/073: {in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00)}
- G06F 11/076: {by exceeding a count or rate limit, e.g. word- or bit count limit}
- G06F 11/0772: {Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers}
- G06F 11/0781: {Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level}
- G06F 11/3037: {where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00)}
- G06F 2201/81: Threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and devices for detecting page fault traffic are described. A memory device may execute a self-learning algorithm to determine a priority size for read requests, such as a maximum readahead window size or other size related to page faults in a memory system. The memory device may determine the priority size based at least in part on by tracking how many read requests are received for different sizes of sets of data. Once the priority size is determined, the memory device may detect subsequent read requests for sets of data having the priority size, and the memory device may prioritize or other optimize the execution of such read requests.

## Claims

### Claim 1

A method, comprising:
generating a plurality of weighted counts each associated with a data size in a subset of respective data sizes;
incrementing a value of a counter associated with a first data size in response to receiving one or more commands, wherein each command of the one or more commands indicates a respective set of data having the first data size and wherein the one or more commands indicate respective additional sets of data each having a respective data size in the subset of respective data sizes;
selecting a highest weighted count of the plurality of weighted counts based at least in part on generating the plurality of weighted counts and based at least in part on incrementing the value of the counter, wherein the highest weighted count corresponds to the first data size; and
executing, based at least in part on selecting the highest weighted count, the one or more commands according to an order that is based on the first data size.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating the plurality of weighted counts further comprises:
multiplying each data size in the subset of respective data sizes by a corresponding quantity of each data size.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving the one or more commands, each indicating the respective set of data having a respective data size in the subset of respective data sizes, wherein generating the plurality of weighted counts is based at least in part on receiving the one or more commands.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining a quantity of each data size in the subset of respective data sizes based at least in part on receiving one or more second commands.

### Claim 5 (depends on 1)

The method of claim 1, wherein the highest weighted count is associated with a first priority level that is greater than one or more other priority levels associated with one or more other weighted counts of the plurality of weighted counts.

### Claim 6

An apparatus, comprising:
a controller associated with a memory device, wherein the controller is configured to cause the apparatus to:
generate a plurality of weighted counts each associated with a data size in a subset of respective data sizes;
increment a value of a counter associated with a first data size in response to receiving one or more commands, wherein each command of the one or more commands indicates a respective set of data having the first data size and wherein the one or more commands indicate respective additional sets of data each having a respective data size in the subset of respective data sizes;
select a highest weighted count of the plurality of weighted counts based at least in part on generating the plurality of weighted counts and based at least in part on incrementing the value of the counter, wherein the highest weighted count corresponds to the first data size; and
execute, based at least in part on selecting the highest weighted count, the one or more commands according to an order that is based on the first data size.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein generating the plurality of weighted counts is further configured to cause the apparatus to:
multiply each data size in the subset of respective data sizes by a corresponding quantity of each data size.

### Claim 8 (depends on 6)

The apparatus of claim 6, wherein the controller is further configured to cause the apparatus to:
receive the one or more commands, each indicating the respective set of data having a respective data size in the subset of respective data sizes, wherein generating the plurality of weighted counts is based at least in part on receiving the one or more commands.

### Claim 9 (depends on 6)

The apparatus of claim 6, wherein the controller is further configured to cause the apparatus to:
determine a quantity of each data size in the subset of respective data sizes based at least in part on receiving one or more second commands.

### Claim 10 (depends on 6)

The apparatus of claim 6, wherein the highest weighted count is associated with a first priority level that is greater than one or more other priority levels associated with one or more other weighted counts of the plurality of weighted counts.

### Claim 11

A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:
generate a plurality of weighted counts each associated with a data size in a subset of respective data sizes;
increment a value of a counter associated with a first data size in response to receiving one or more commands, wherein each command of the one or more commands indicates a respective set of data having the first data size and wherein the one or more commands indicate respective additional sets of data each having a respective data size in the subset of respective data sizes;
select a highest weighted count of the plurality of weighted counts based at least in part on generating the plurality of weighted counts and based at least in part on incrementing the value of the counter, wherein the highest weighted count corresponds to the first data size; and
execute, based at least in part on selecting the highest weighted count, the one or more commands according to an order that is based on the first data size.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the instructions to generate the plurality of weighted counts are further executable by the one or more processors to:
multiply each data size in the subset of respective data sizes by a corresponding quantity of each data size.

### Claim 13 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the instructions are further executable by the one or more processors to:
receive the one or more commands, each indicating the respective set of data having a respective data size in the subset of respective data sizes, wherein generating the plurality of weighted counts is based at least in part on receiving the one or more commands.

### Claim 14 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the instructions are further executable by the one or more processors to:
determine a quantity of each data size in the subset of respective data sizes based at least in part on receiving one or more second commands.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the highest weighted count is associated with a first priority level that is greater than one or more other priority levels associated with one or more other weighted counts of the plurality of weighted counts.
