IP Library › Granted Patent US 12,169,651
Granted Patent B2
US 12,169,651 · App. 17/371,704 · Granted Dec 17, 2024

Low latency virtual memory management

Inventors: Emmanuel Amaro Ramirez (Oakland, CA); Marcos Kawazoe Aguilera (Mountain View, CA); Pratap Subrahmanyam (Saratoga, CA); Rajesh Venkatasubramanian (San Jose, CA)
Assignee: VMware LLC
G06F3/0662G06F3/061G06F3/0659G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,169,651
App. No.
17/371,704
Granted
Dec 17, 2024
Kind
B2
Abstract

Disclosed are various approaches for decreasing the latency involved in reading pages from swap devices. These approaches can include setting a first queue in the plurality of queues as a highest priority queue and a second queue in the plurality of queues as a low priority queue. Then, an input/output (I/O) request for an address in memory can be received. The type of the I/O request can be determined, and then the I/O request can be assigned to the first queue or the second queue of the swap device based at least in part on the type of the I/O request.

Claims (39)

1. A system, comprising:

a computing device comprising a processor, a memory, and a swap device comprising a plurality of queues, wherein the swap device is at least one of a hard disk drive, a solid state drive, or a network interface card, the swap device configured to store one or more pages of memory from the memory, wherein each queue of the plurality of queues is configured to store input/output (I/O) requests, wherein I/O requests are requests to access a respective memory address in the one or more pages of memory stored by the swap device, and wherein the plurality of queues is configured to be serviced by the swap device; and

machine-readable instructions stored in the memory that, when executed by the processor, cause the computing device to at least:

set a first queue in the plurality of queues on the swap device as a highest priority queue;

set a second queue in the plurality of queues on the swap device as a low priority queue;

receive an I/O request to access an address of a memory page stored on the swap device;

determine a type of the I/O request by evaluating a message provided by a virtual memory system; and

assign the I/O request to the first queue or the second queue of the swap device based at least in part on the type of the I/O request.

2. The system of claim 1 , wherein:

the I/O request is a request to prefetch a page stored on the swap device;

the machine-readable instructions further cause the computing device to at least set a third queue in the plurality of queues as a medium priority queue; and

the machine-readable instructions that cause the computing device to assign the I/O request further cause the computing device to assign the I/O request to the second queue.

3. The system of claim 2 , wherein the I/O request is a request to write the contents of a page in memory to the swap device and the machine-readable instructions that cause the computing device to assign the I/O request further cause the computing device to assign the I/O request to the third queue.

4. The system of claim 1 , wherein the swap device is the network interface card and the network interface card transmits the I/O request to a storage server or memory server in data communication with the computing device.

5. The system of claim 1 , wherein the swap device processes, in response to the computing device assigning the I/O request to the first queue or the second queue of the swap device, the I/O request.

6. The system of claim 5 , wherein the swap device processes queues in the plurality of queues in a round-robin fashion prioritizing the first queue.

7. A method, comprising:

setting a first queue in a plurality of queues provided by a swap device as a highest priority queue, wherein the swap device is at least one of a hard disk drive, a solid state drive, or a network interface card, the swap device configured to store one or more pages of memory from physical memory, wherein the swap device is one of a hard disk drive, solid state drive, or network interface card, wherein each queue of the plurality of queues is configured to store input/output (I/O) requests, wherein I/O requests are requests to access a respective memory address in the one or more pages of memory stored by the swap device, and wherein the plurality of queues is configured to be serviced by the swap device;

setting a second queue in the plurality of queues provided by the swap device as a medium priority queue;

setting a third queue in the plurality of queues provided by the swap device as a low priority queue;

receiving an I/O request to access an address of a memory page stored on the swap device;

determining a type of the I/O request by evaluating a message provided by a virtual memory system; and

assigning the I/O request to the first queue, the second queue, or the third queue of the swap device based at least in part on the type of the I/O request.

8. The method of claim 7 , wherein the I/O request is a request to prefetch a page stored on the swap device and assigning the I/O request further comprises assigning the I/O request to the second queue.

9. The method of claim 7 , wherein the I/O request is a request to write the contents of a page in memory to the swap device and assigning the I/O request further comprises assigning the I/O request to the third queue.

10. The method of claim 7 , wherein the swap device is the network interface card and the network interface card transmits the I/O request to a storage server or memory server.

11. The method of claim 7 , wherein the swap device processes, in response to the computing device assigning the I/O request to the first queue, the second queue, or the third queue of the swap device, the I/O request.

12. The method of claim 11 , wherein the swap device processes queues in the plurality of queues in a round-robin fashion prioritizing the first queue.

13. A non-transitory, computer-readable medium, comprising machine-readable instructions that, when executed by a processor of a computing device, cause the computing device to at least:

set a first queue in a plurality of queues as a highest priority queue, the plurality of queues being provided by a swap device of the computing device, wherein the swap device is at least one of a hard disk drive, a solid state drive, or a network interface card, the swap device configured to store one or more pages of memory from physical memory, wherein each queue of the plurality of queues is configured to store input/output (I/O) requests, wherein I/O requests are requests to access a respective memory address in the one or more pages of memory stored by the swap device, and wherein the plurality of queues is configured to be serviced by the swap device;

set a second queue in the plurality of queues provided by the swap device as a medium priority queue;

set a third queue in the plurality of queues provided by the swap device as a low priority queue;

receive an I/O request to access an address of a memory page stored on the swap device;

determine a type of the I/O request by evaluating a message provided by a virtual memory system; and

assign the I/O request to the first queue, the second queue, or the third queue of the swap device based at least in part on the type of the I/O request.

14. The non-transitory, computer-readable medium of claim 13 , wherein the I/O request is a request to prefetch a page stored on the swap device and the machine-readable instructions that cause the computing device to assign the I/O request further cause the computing device to assign the I/O request to the second queue.

15. The non-transitory, computer-readable medium of claim 13 , wherein the I/O request is a request to write the contents of a page the memory to the swap device and the machine-readable instructions that cause the computing device to assign the I/O request further cause the computing device to assign the I/O request to the third queue.

16. The non-transitory, computer-readable medium of claim 13 , wherein the swap device processes, in response to the computing device assigning the I/O request to the first queue, the second queue, or the third queue of the swap device, the I/O request.

17. The non-transitory, computer-readable medium of claim 16 , wherein the swap device processes queues in the plurality of queues in a round-robin fashion prioritizing the first queue.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2022
From: RAMIREZ, EMMANUEL AMARO; AGUILERA, MARCOS KAWAZOE; SUBRAHMANYAM, PRATAP; VENKATASUBRAMANIAN, RAJESH
To: VMWARE, INC.
Reel/Frame 059744/0509 →
Continuity (2)
Provisional Application 63175396 · Apr 15, 2021
Related Publication 20220334774A1 · Oct 20, 2022