# US 9,430,400 B2 · Migration directives in a unified virtual memory system architecture

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

- Number: US 9,430,400 B2
- Document ID: US9430400B2
- Status: Granted
- Kind: B2
- Application number: 14/109,712
- Filed: 2013-12-17
- Published: 2014-09-18
- Granted: 2016-08-30
- Earliest claimed: 2013-03-14
- Assignees: NVIDIA Corporation
- Applicants: Nvidia Corporation
- Inventors: Jerome F. Duluk, Jr.
- Web page: https://patentgrep.com/patent/US9430400B2

## CPC

- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 12/08: in hierarchically structured memory systems, e.g. virtual memory systems
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 12/109: for multiple virtual address spaces, e.g. segmentation (G06F12/1036 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

One embodiment of the present invention sets forth a computer-implemented method for altering migration rules for a unified virtual memory system. The method includes detecting that a migration rule trigger has been satisfied. The method also includes identifying a migration rule action that is associated with the migration rule trigger. The method further includes executing the migration rule action. Other embodiments of the present invention include a computer-readable medium, a computing device, and a unified virtual memory subsystem. One advantage of the disclosed approach is that various settings of the unified virtual memory system may be modified during program execution. This ability to alter the settings allows for an application to vary the manner in which memory pages are migrated and otherwise manipulated, which provides the application the ability to optimize the unified virtual memory system for efficient execution.

## Claims

### Claim 1

A computer-implemented method for altering migration rules for a unified virtual memory system, the method comprising:
detecting that a migration rule trigger associated with a migration rule related to a system call has been satisfied, wherein the migration rule controls the migration of at least one memory page within the unified virtual memory system;
identifying a migration rule action that is associated with the migration rule trigger; and
executing the migration rule action.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising storing both the migration rule trigger and the migration rule action are in a page state directory.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising generating both the migration rule trigger and the migration rule action based on a compiler directive.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising detecting the migration rule trigger during execution of an application program based on memory access operations performed by the application program.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the migration rule trigger includes a memory access operation corresponding to a first data structure.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the migration rule trigger includes a page fault event associated with a memory page access operation.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the migration rule trigger includes an immediate event, and detecting that the migration rule trigger has been satisfied comprises determining that an application program executes a system call associated with the migration rule trigger.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the migration rule action includes changing a page state that is stored in a page state directory and that is associated with a memory page, to modify migration behavior of the unified virtual memory system with respect to the memory page.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the migration rule action includes transmitting a memory page from a first memory unit to a second memory unit.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the migration rule action includes changing one or more thrashing settings that specify how the unified virtual memory system responds to repeatedly copying memory pages back and forth between different memory units.

### Claim 11

A non-transitory computer-readable medium storing instructions, that when executed by a processor, cause a computer system to alter migration rules for a unified virtual memory system, by performing the steps of:
detecting that a migration rule trigger associated with a migration rule related to a system call has been satisfied, wherein the migration rule controls the migration of at least one memory page within the unified virtual memory system;
identifying a migration rule action that is associated with the migration rule trigger; and
executing the migration rule action.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the instructions further cause the computer system to store both the migration rule trigger and the migration rule action in a page state directory.

### Claim 13 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein both the migration rule trigger and the migration rule action are generated based on a compiler directive.

### Claim 14 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the instructions further cause the computer system to detect the migration rule trigger during execution of an application program based on memory access operations performed by the application program.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the migration rule trigger includes a memory access operation corresponding to a first data structure.

### Claim 16

A computing device for altering migration rules for a unified virtual memory system, the computing device comprising:
a unified virtual memory system driver configured to:
detect that a migration rule trigger associated with a migration rule related to a system call has been satisfied, wherein the migration rule controls the migration of at least one memory page within the unified virtual memory system;
identify a migration rule action that is associated with the migration rule trigger; and
execute the migration rule action.

### Claim 17 (depends on 16)

The computing device of claim 16, wherein the unified virtual memory system driver is further configured to store both the migration rule trigger and the migration rule action in a page state directory.

### Claim 18 (depends on 16)

The computing device of claim 16, wherein both the migration rule trigger and the migration rule action are generated based on a compiler directive.

### Claim 19 (depends on 16)

The computing device of claim 16, wherein the unified virtual memory system driver is further configured to detect the migration rule trigger during execution of an application program based on memory access operations performed by the application program.

### Claim 20 (depends on 16)

The computing device of claim 16, wherein the migration rule trigger includes a memory access operation corresponding to a first data structure.

### Claim 21

A computer-implemented method for altering migration rules for a unified virtual memory system, the method comprising:
detecting that a migration rule trigger has been satisfied;
identifying a migration rule action that is associated with the migration rule trigger; and
executing the migration rule action,
wherein both the migration rule trigger and the migration rule action are generated based on a compiler directive.
