# US 12,007,898 B2 · Utilizing a designated memory address to pre-fetch for memory sub-system with cache

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

- Number: US 12,007,898 B2
- Document ID: US12007898B2
- Status: Granted
- Kind: B2
- Application number: 17/527,811
- Filed: 2021-11-16
- Published: 2022-03-10
- Granted: 2024-06-11
- Earliest claimed: 2019-11-25
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Dhawal Bavishi
- Web page: https://patentgrep.com/patent/US12007898B2

## CPC

- G06F 12/0862: with prefetch
- G06F 12/0866: for peripheral storage systems, e.g. disk cache
- G06F 2212/313: In storage device
- G06F 2212/602: Details relating to cache prefetching
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various embodiments described herein provide for a pre-fetch operation on a memory sub-system, which can help avoid a cache miss when the memory sub-system subsequently processes a read command from a host system.

## Claims

### Claim 1

A memory sub-system comprising:
a set of non-volatile memory devices;
a cache comprising a volatile memory device; and
a processing device, operatively coupled to the set of non-volatile memory devices, configured to perform operations comprising:
monitoring a designated memory address on the set of non-volatile memory devices for new command-related data, the designated memory address corresponding to a first location on the set of non-volatile memory devices;
receiving, from a host system, a memory sub-system command to write command-related data to the designated memory address, the memory sub-system command comprising a command identifier specifying one of a XWRITE command or a PWRITE in accordance with a Non-Volatile Dual In-Line Memory Module-P (NVDIMM-P) memory protocol, the command-related data comprising a given memory address for a pre-fetch operation; and
in response to detecting that the command-related data has been stored at the designated memory address, performing the pre-fetch operation by reading target data from a second location on the set of non-volatile memory devices corresponding to the given memory address, and storing the target data to the cache.

### Claim 2 (depends on 1)

The memory sub-system of claim 1, wherein the command-related data comprises a value indicating an amount of data to be read, starting from the given memory address of the memory sub-system, and stored to the cache.

### Claim 3 (depends on 1)

The memory sub-system of claim 1, wherein the operations comprise:
prior to the performing of the pre-fetch operation:
assigning a first priority level to the pre-fetch operation;
determining whether a second priority level of a pending non-prefetch operation is higher than the first priority level of the pre-fetch operation; and
performing the pre-fetch operation in response to determining that the second priority level is not higher than the first priority level.

### Claim 4 (depends on 3)

The memory sub-system of claim 3, wherein the pending non-prefetch operation is requested after the receiving of the memory sub-system command to write the command-related data to the designated memory address.

### Claim 5 (depends on 4)

The memory sub-system of claim 4, wherein the assigning of the first priority level to the pre-fetch operation comprises assigning the first priority level to the pre-fetch operation according to at least one of user preference data or quality-of-service setting data accessible by the memory sub-system.

### Claim 6 (depends on 1)

The memory sub-system of claim 1, wherein the operations comprise:
after the performing of the pre-fetch operation:
receiving, from the host system, a second memory sub-system command to perform a read operation with respect to the given memory address of the memory sub-system; and
processing the read operation by providing the host system with the target data from the cache.

### Claim 7

A method comprising:
monitoring, at a memory sub-system, a designated memory address on a set of non-volatile memory devices for new command-related data, the designated memory address being corresponding to a first location on the set of non-volatile memory devices;
receiving, at the memory sub-system from a host system, a memory sub-system command to write command-related data to the designated memory address, the memory sub-system command comprising a command identifier specifying a XWRITE command in accordance with a Non-Volatile Dual In-Line Memory Module-P (NVDIMM-P) memory protocol, the command-related data comprising a given memory address for a pre-fetch operation; and
in response to detecting that the command-related data has been stored at the designated memory address, performing the pre-fetch operation by reading target data from a second location on the set of non-volatile memory devices, of the memory sub-system, corresponding to the given memory address, and storing the target data to a cache that comprises a volatile memory device.

### Claim 8 (depends on 7)

The method of claim 7, wherein the command-related data comprises a value indicating an amount of data to be read, starting from the given memory address of the memory sub-system, and stored to the cache.

### Claim 9 (depends on 7)

The method of claim 7, comprising:
prior to the performing of the pre-fetch operation:
assigning a first priority level to the pre-fetch operation;
determining whether a second priority level of a pending non-prefetch operation is higher than the first priority level of the pre-fetch operation; and
performing the pre-fetch operation in response to determining that the second priority level is not higher than the first priority level.

### Claim 10 (depends on 9)

The method of claim 9, wherein the pending non-prefetch operation is requested after the receiving of the memory sub-system command to write the command-related data to the designated memory address.

### Claim 11 (depends on 10)

The method of claim 10, wherein the assigning of the first priority level to the pre-fetch operation comprises assigning the first priority level to the pre-fetch operation according to at least one of user preference data or quality-of-service setting data accessible by the memory sub-system.

### Claim 12 (depends on 7)

The method of claim 7, comprising:
after the performing of the pre-fetch operation:
receiving, from the host system, a second memory sub-system command to perform a read operation with respect to the given memory address of the memory sub-system; and
processing the read operation by providing the host system with the target data from the cache.

### Claim 13

A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device of a memory sub-system, cause the processing device to perform operations comprising:
monitoring a designated memory address on a set of non-volatile memory devices for new command-related data, the designated memory address corresponding to a first location on the set of non-volatile memory devices;
receiving, from a host system, a memory sub-system command to write command-related data to the designated memory address, the memory sub-system command comprising a command identifier specifying one of a XWRITE command or a PWRITE in accordance with a Non-Volatile Dual In-Line Memory Module-P (NVDIMM-P) memory protocol, the command-related data comprising a given memory address for a pre-fetch operation; and
in response to detecting that the command-related data has been stored at the designated memory address, performing the pre-fetch operation by reading target data from a second location on the set of non-volatile memory devices, of the memory sub-system, corresponding to the given memory address, and storing the target data to a cache the comprises a volatile memory device.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the command-related data comprises a value indicating an amount of data to be read, starting from the given memory address of the memory sub-system, and stored to the cache.

### Claim 15 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the operations comprise:
prior to the performing of the pre-fetch operation:
assigning a first priority level to the pre-fetch operation;
determining whether a second priority level of a pending non-prefetch operation is higher than the first priority level of the pre-fetch operation; and
performing the pre-fetch operation in response to determining that the second priority level is not higher than the first priority level.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the pending non-prefetch operation is requested after the receiving of the memory sub-system command to write the command-related data to the designated memory address.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein the assigning of the first priority level to the pre-fetch operation comprises assigning the first priority level to the pre-fetch operation according to at least one of user preference data or quality-of-service setting data accessible by the memory sub-system.

### Claim 18 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the operations comprise:
after the performing of the pre-fetch operation:
receiving, from the host system, a second memory sub-system command to perform a read operation with respect to the given memory address of the memory sub-system; and
processing the read operation by providing the host system with the target data from the cache.
