IP Library Granted Patent US 12,124,865
Granted Patent B2
US 12,124,865 · App. 17/219,051 · Granted Oct 22, 2024

System and method for providing page migration

Inventors: Sean T. White (Boxborough, MA); Philip Ng (Markham, CA)
Assignees: ADVANCED MICRO DEVICES, INC.; ATI TECHNOLOGIES ULC
G06F9/45545G06F9/45558G06F12/063G06F12/0811G06F12/0882G06F2009/45579G06F2009/45583G06F2009/45587
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,124,865
App. No.
17/219,051
Granted
Oct 22, 2024
Kind
B2
Abstract

Methods and apparatus for providing page migration of pages among tiered memories identify frequently accessed memory pages in each memory tier and generate page hotness ranking information indicating how frequently memory pages are being accessed. Methods and apparatus provide the page hotness ranking information to an operating system or hypervisor depending on which is used in the system, the operating system or hypervisor issues a page move command to a hardware data mover, based on the page hotness ranking information and the hardware data mover moves a memory page to a different memory tier in response to the page move command from the operating system.

Claims (33)

1. A method for providing page migration of pages among tiered memories comprising:

identifying frequently accessed memory pages in each tiered memory region and generate page hotness ranking information indicating how frequently memory pages are being accessed in a respective tiered memory region;

providing the page hotness ranking information to at least one of: an operating system or hypervisor executing on a first processor;

issuing a page move command by the first processor, by the operating system or hypervisor, to a hardware data mover, based on the page hotness ranking information; and

in response to processing the page move command from the first processor, delaying input output memory management unit address mappings and moving, by the hardware data mover, a memory page from one memory tier to another memory tier in response to the page move command from the operating system or hypervisor.

2. The method of claim 1 wherein issuing the page move command comprises issuing command data that causes the hardware data mover to provide a secure nested paging batch move of a first plurality of memory pages associated with a first guest operating system to a different memory tier and move a second plurality of memory pages associated with a second guest operating system to a different memory tier region.

3. The method of claim 1 wherein issuing the page move command comprises issuing command data that causes the hardware data mover to provide a secure nested paging move of one or more memory pages securely owned by a guest operating system.

4. The method of claim 1 wherein issuing the page move command comprises issuing command data that causes the hardware data mover to move contents of one or more pages in use by a direct memory access device in a non-secure nested paging system to memory that is either unencrypted or encrypted using an operating system or hypervisor owned key.

5. The method of claim 1 wherein issuing the page move command comprises issuing command data that causes the hardware data mover to provide a secure nested paging move of input/output (I/O) device pages that moves I/O device pages that are in use by a direct memory access device.

6. The method of claim 1 comprising providing an application programming interface (API) between the operating system and the hardware data mover that provides the page move command to the hardware data mover and provides returned page migration data from the hardware data mover to the operating system.

7. An apparatus for providing page migration of pages among tiered memories comprising:

one or more processors configured to execute stored code that when executed cause the one or more processors to:

identify frequently accessed memory pages in each memory tier region and generate page hotness ranking information indicating how frequently memory pages are being accessed in a respective tiered memory region;

an operating system or hypervisor configured to issue a page move command to a hardware data mover, based on the page hotness ranking information; and

a hardware data mover, operatively coupled to the one or more processors, and operative to delay input output memory management unit address mappings and to move a memory page to a different memory tier from a current tier in response to processing the page move command received from one or more processors executing the operating system or hypervisor.

8. The apparatus of claim 7 wherein the page move command comprises command data that causes the hardware data mover to provide a secure nested paging batch move of a first plurality of memory pages associated with a first guest operating system to a different memory tier and move a second plurality of memory pages associated with a second guest operating system to a different memory tier region.

9. The apparatus of claim 7 wherein the page move command comprises command data that causes the hardware data mover to provide a secure nested paging move of one or more memory pages securely owned by a guest operating system from a current memory tier region to a different memory tier region.

10. The apparatus of claim 7 wherein issuing the page move command comprises issuing command data that causes the hardware data mover to move contents of one or more pages in use by a direct memory access device in a non-secure nested paging system to memory that is either unencrypted or encrypted using an operating system or hypervisor owned key.

11. The apparatus of claim 7 wherein the page move command comprises command data that causes the hardware data mover to provide a secure nested paging move of input/output (I/O) device pages that moves I/O device pages that are in use by a direct memory access device.

12. The apparatus of claim 7 wherein the one or more processors execute stored code that when executed cause the one or more processors to provide an application programming interface (API) between the operating system and the hardware data mover that provides the page move command to the hardware data mover and provides returned page migration data from the hardware data mover to the operating system.

13. The apparatus of claim 7 comprising an input/output memory management unit operatively coupled to the hardware data mover and operative to interface with input/output units that access the tiered memories and wherein the hardware data mover comprises:

a security processor (SP); and

a direct memory access engine (DMA), in communication with the security processor, and wherein the security processor is operative to process the page move command and wherein the DMA engine is operative to move one or more pages between different tiers of memory from a current memory tier region to a different memory tier region.

14. An apparatus for providing page migration in a multi-tier memory system comprising:

one or more first processors configured to execute stored code that when executed cause the one or more first processors to operate an operating system or hypervisor configured to issue a page move command to a hardware data mover, based on page hotness ranking information;

the hardware data mover comprising a second processor; and

a direct memory access (DMA) engine, in communication with the second processor and wherein the second processor is operative to process a page move command from the operating system or hypervisor;

and wherein the DMA engine is operative to delay input output memory management unit address mappings and to move one or more pages between different tiers of memory from a respective current tiered memory region in response to the processed based on-the-page move command processed by the second processor.

15. The apparatus of claim 14 wherein the second processor is configured to process command data that causes the hardware data mover to provide a secure nested paging batch move of a plurality of memory pages associated with a first guest operating system to a different memory tier and move a second plurality of memory pages associated with a second guest operating system to a different memory tier.

16. The apparatus of claim 14 wherein the second processor is configured to process command data that causes the hardware data mover to provide a secure nested paging move of one or more memory pages owned by a guest operating system.

17. The apparatus of claim 14 wherein the second processor is configured to process command data that causes the hardware data mover to move contents of one or more pages in use by a direct memory access device in a non-secure nested paging system to memory that is either unencrypted or encrypted using an operating system or hypervisor owned key.

18. The apparatus of claim 14 wherein the second processor is configured to process command data that causes the hardware data mover to provide a secure nested paging move of input/output (I/O) device pages that moves I/O device pages that are in use by a direct memory address device.

19. The apparatus of claim 14 wherein the second processor is a security processor configured to provide page moves for secure nested pages.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE CONVEYING PARTY DATA IN THE ASSIGNMENT DOCUMENT REMOVING THE 1ST INVENTOR SEAN T, WHITE PREVIOUSLY RECORDED AT REEL: 56604 FRAME: 429. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 3, 2024
From: NG, PHILIP
To: ATI TECHNOLOGIES ULC
Reel/Frame 068119/0095 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2024
From: WHITE, SEAN T.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 066779/0770 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2021
From: WHITE, SEAN T.; NG, PHILIP
To: ATI TECHNOLOGIES ULC
Reel/Frame 056604/0429 →
Continuity (1)
Related Publication 20220318040A1 · Oct 6, 2022