# US 12,007,917 B2 · Priority scheduling in queues to access cache data in a memory sub-system

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

- Number: US 12,007,917 B2
- Document ID: US12007917B2
- Status: Granted
- Kind: B2
- Application number: 17/443,735
- Filed: 2021-07-27
- Published: 2021-11-18
- Granted: 2024-06-11
- Earliest claimed: 2019-02-28
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Dhawal Bavishi
- Web page: https://patentgrep.com/patent/US12007917B2

## CPC

- G06F 13/18: based on priority control (G06F13/1605 takes precedence)
- G06F 3/0611: {in relation to response time}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 12/0866: for peripheral storage systems, e.g. disk cache
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 13/161: {with latency improvement}
- G06F 13/1642: {with request queuing}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/1024: Latency reduction
- G06F 2212/2022: Flash memory
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A processing device in a memory sub-system generates a fill operation to store data from a memory device at a cache of a memory sub-system, assigns a first priority indicator to the fill operation associated with the data, and assigns a second priority indicator to a read operation associated with a request to read the data from the memory sub-system. The processing device further determines a schedule of executing the fill operation and the read operation based on the first priority indicator and the second priority indicator and executes the fill operation and the read operation based on the determined schedule.

## Claims

### Claim 1

A method comprising:
generating a fill operation to store data from a memory device at a cache of a memory sub-system;
assigning a first priority indicator to the fill operation associated with the data;
assigning a second priority indicator to a read operation associated with a first request to read the data from the memory sub-system;
determining, by a processing device, a schedule of executing the fill operation and the read operation based on the first priority indicator and the second priority indicator, wherein the first priority indicator indicates a higher priority than the second priority indicator, wherein the schedule is different than an order in which the fill operation and the read operation were added to respective processing queues, and wherein the read operation was added to a first respective processing queue before the fill operation was added to a second respective processing queue; and
executing the fill operation and the read operation based on the determined schedule.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
storing the fill operation and the data that is obtained from the memory device in a fill queue.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
storing the first request in a queue corresponding to an address associated with the data.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
receiving a second request to read the data stored at the memory sub-system;
determining whether an identifier associated with the second request to read the data is assigned to the queue;
responsive to determining that the identifier associated with the second request to read the data is assigned to the queue:
assigning a third priority indicator to the second request; and
storing the second request in the queue.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
receiving a third request to write other data to the address associated with the data at the memory sub-system;
determining whether another identifier associated with the third request to write other data is assigned to the queue;
responsive to determining that the identifier associated with the third request to write other data is assigned to the queue:
assigning a fourth priority indicator to the third request; and
storing the third request in the queue.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
determining a schedule of executing the fill operation, the request to read the data, the second request to read the data, and the third request to write the other data based on the first priority indicator, the second priority indicator, the third priority indicator, and the fourth priority indicator, wherein the schedule reflects an order in which the request, the second request, and the third request have been received.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving a second request to read other data stored at the memory sub-system;
determining whether the other data is stored at the cache of the memory sub-system;
responsive to determining that the other data is not stored at the cache of the memory sub-system, obtaining the other data from the memory device of the memory sub-system;
assigning a third priority indicator to a second fill operation associated with the other data that is obtained from the memory device;
assigning a fourth priority indicator to the second request to read the other data; and
determining a schedule of executing the fill operation, the request to read the data, the second fill operation, and the second request to read the other data based at least on the first priority indicator, the second priority indicator, the third priority indicator, and the fourth priority indicator.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
executing, based on the determined schedule, the request to read the data and the second request to read the other data in a different order than in which the request to read the data and the second request to read the other data have been received.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
storing the data in the cache and executing the request to read the data to provide the data stored in the cache to a host system based on the determined schedule.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
responsive to executing the fill operation and the request to read the data, reassigning the first priority indicator and the second priority indicator to a second fill operation associated with other data and a second request to read the other data.

### Claim 11

A system comprising:
a memory device;
a processing device, operatively coupled with the memory device, to perform operations comprising:
generating a fill operation to store data from the memory device at a cache of the system;
assigning a first priority indicator to the fill operation associated with the data;
assigning a second priority indicator to a read operation associated with a request to read the data from the system;
determining, by a processing device, a schedule of executing the fill operation and the read operation based on the first priority indicator and the second priority indicator, wherein the first priority indicator indicates a higher priority than the second priority indicator, wherein the schedule is different than an order in which the fill operation and the read operation were added to respective processing queues, and wherein the read operation was added to a first respective processing queue before the fill operation was added to a second respective processing queue; and
executing the fill operation and the read operation based on the determined schedule.

### Claim 12 (depends on 11)

The system of claim 11, wherein the processing device is to perform operations further comprising:
receiving a second request to read the data stored at the system;
determining whether an identifier associated with the second request to read the data is assigned to a queue;
responsive to determining that the identifier associated with the second request to read the data is assigned to the queue:
assigning a third priority indicator to the second request; and
storing the second request in the queue.

### Claim 13 (depends on 12)

The system of claim 12, wherein the processing device is to perform operations further comprising:
receiving a third request to write other data to an address associated with the data at the system;
determining whether an identifier associated with the third request to write other data is assigned to the queue; and
responsive to determining that the identifier associated with the third request to write other data is assigned to the queue:
assigning a fourth priority indicator to the request; and
storing the third request in the queue.

### Claim 14 (depends on 13)

The system of claim 13, wherein the processing device is to perform operations further comprising:
determining a schedule of executing the fill operation, the request to read the data, the second request to read the data, and the third request to write the other data based on the first priority indicator, the second priority indicator, the third priority indicator, and the fourth priority indicator, wherein the schedule reflects an order in which the request, the second request, and the third request have been received.

### Claim 15 (depends on 11)

The system of claim 11, wherein the processing device is to perform operations further comprising:
receiving a second request to read other data stored at the system;
determining whether the other data is stored at the cache of the system;
responsive to determining that the other data is not stored at the cache of the system, obtaining the other data from the memory device;
assigning a third priority indicator to a second fill operation associated with the other data that is obtained from the memory device;
assigning a fourth priority indicator to the second request to read the other data; and
determining a schedule of executing the fill operation, the request to read the data, the second fill operation, and the second request to read the other data based at least on the first priority indicator, the second priority indicator, the third priority indicator, and the fourth priority indicator.

### Claim 16 (depends on 15)

The system of claim 15, wherein the processing device is to perform operations further comprising:
executing, based on the determined schedule, the request to read the data and the second request to read the other data in a different order than in which the request to read the data and the second request to read the other data have been received.

### Claim 17

A non-transitory computer-readable storage medium storing instructions, which when executed by a processing device, cause the processing device to perform operations comprising:
generating a fill operation to store data from a memory device at a cache of a memory sub-system;
assigning a first priority indicator to the fill operation associated with the data;
assigning a second priority indicator to a read operation associated with a first request to read the data from the memory sub-system;
determining, by a processing device, a schedule of executing the fill operation and the read operation based on the first priority indicator and the second priority indicator, wherein the first priority indicator indicates a higher priority than the second priority indicator, wherein the schedule is different than an order in which the fill operation and the read operation were added to respective processing queues, and wherein the read operation was added to a first respective processing queue before the fill operation was added to a second respective processing queue; and
executing the fill operation and the read operation based on the determined schedule.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions cause the processing device to perform operations further comprising:
storing the fill operation and the data that is obtained from the memory device in a fill queue.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions cause the processing device to perform operations further comprising:
storing the first request in a queue corresponding to an address associated with the data.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein the instructions cause the processing device to perform operations further comprising:
receiving a second request to read the data stored at the memory sub-system;
determining whether an identifier associated with the second request to read the data is assigned to the queue;
responsive to determining that the identifier associated with the second request to read the data is assigned to the queue:
assigning a third priority indicator to the second request; and
storing the second request in the queue.
