# US 10,310,985 B2 · Systems and methods for accessing and managing a computing system memory

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

- Number: US 10,310,985 B2
- Document ID: US10310985B2
- Status: Granted
- Kind: B2
- Application number: 15/633,083
- Filed: 2017-06-26
- Published: 2018-12-27
- Granted: 2019-06-04
- Earliest claimed: 2017-06-26
- Assignees: ATI Technologies ULC
- Applicants: ATI Technologies ULC
- Inventors: Dhirendra Partap Singh Rana; Conrad Lai; Jeffrey G. Cheng
- Web page: https://patentgrep.com/patent/US10310985B2

## CPC

- G06F 12/10: Address translation
- G06F 11/34: Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation {; Recording or statistical evaluation of user activity, e.g. usability assessment}
- G06F 12/02: Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00)
- G06F 12/0292: {using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10)}
- G06F 12/1018: involving hashing techniques, e.g. inverted page tables
- G06F 12/1072: Decentralised address translation, e.g. in distributed shared memory systems
- G06F 12/128: adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
- G06F 12/08: in hierarchically structured memory systems, e.g. virtual memory systems
- G06F 2212/1016: Performance improvement
- G06F 2212/281: Single cache
- G06F 2212/502: using adaptive policy
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, apparatuses, and methods for accessing and managing memories are disclosed herein. In one embodiment, a system includes at least first and second processors and first and second memories. The first processor maintains a request log with entries identifying requests that have been made to pages stored in the second memory. The first processor generates an indication for the second processor to process the request log when the number of entries in the request log reaches a programmable threshold. The second processor dynamically adjusts the programmable threshold based on one or more first conditions. The second processor also processes the request log responsive to detecting the indication. Additionally, the second processor determines whether to migrate pages from the second memory to the first memory based on one or more second conditions.

## Claims

### Claim 1

A system comprising:
a first processor and a second processor; and
a first memory and a second memory;
wherein the first processor is configured to:
maintain a request log of entries identifying requests that have been made to pages stored in the second memory;
generate an indication for the second processor to process the request log when the number of entries in the request log reaches a first threshold;
wherein the second processor is configured to:
increase the first threshold responsive to determining a rate of indication generation is greater than a given range; and
decrease the first threshold responsive to determining the rate of indication generation is less than the given range;
process the request log responsive to detecting the indication; and
determine whether to migrate physical pages from the second memory to the first memory.

### Claim 2 (depends on 1)

The system as recited in claim 1, wherein the given range is based on generating one indication per graphics frame.

### Claim 3 (depends on 1)

The system as recited in claim 1, wherein processing the request log comprises:
retrieving a physical addresses of a physical page identified in an entry in the request log;
determining a virtual page which maps to the physical page;
updating an access count associated with the virtual page; and
migrating a plurality of physical pages, of the virtual page, from the second memory to the first memory responsive to determining the access count is greater than a second threshold.

### Claim 4 (depends on 3)

The system as recited in claim 3, wherein processing the request log further comprises:
performing a reverse lookup of a reverse mapping table to retrieve a virtual address of the virtual page which maps to the physical page identified in the entry of the request log; and
updating page table entries for the plurality of physical pages which are migrated.

### Claim 5 (depends on 1)

The system as recited in claim 1, wherein:
the first processor is a graphics processing unit (GPU);
the second processor is a central processing unit (CPU); and
the indication is an interrupt.

### Claim 6

A method comprising:
maintaining, by a first processor, a request log of with entries identifying requests that have been made to pages stored in a second memory;
generating, by the first processor, an indication for a second processor to process the request log when the number of entries in the request log reaches a first threshold;
increasing the first threshold responsive to determining a rate of indication generation is greater than a given range; and
decrease the first threshold responsive to determining the rate of indication generation is less than the given range
processing, by the second processor, the request log responsive to detecting the indication; and
determining, by the second processor, whether to migrate physical pages from the second memory to a first memory.

### Claim 7 (depends on 6)

The method as recited in claim 6, wherein the given range is based on generating one indication per graphics frame.

### Claim 8 (depends on 6)

The method as recited in claim 6, wherein processing the request log comprises:
retrieving a physical addresses of a physical page identified in an entry in the request log;
determining a virtual page which maps to the physical page;
updating an access count associated with the virtual page; and
migrating a plurality of physical pages, of the virtual page, from the second memory to the first memory responsive to determining the access count is greater than a second threshold.

### Claim 9 (depends on 8)

The method as recited in claim 8, wherein processing the request log further comprises:
performing a reverse lookup of a reverse mapping table to retrieve a virtual address of the virtual page which maps to the physical page identified in the entry of the request log; and
updating page table entries for the plurality of physical pages which are migrated.

### Claim 10 (depends on 6)

The method as recited in claim 6, wherein:
the first processor is a graphics processing unit (GPU);
the second processor is a central processing unit (CPU); and
the indication is an interrupt.

### Claim 11

An apparatus comprising:
a graphics processing unit (GPU);
a central processing unit (CPU);
a first memory; and
a second memory;
wherein the GPU is configured to:
maintain a request log of with entries identifying requests that have been made to pages stored in the second memory;
generate an indication for the second processor to process the request log when the number of entries in the request log reaches a first threshold;
wherein the CPU is configured to:
increase the first threshold responsive to determining a rate of indication generation is greater than a given range; and
decrease the first threshold responsive to determining the rate of indication generation is less than the given range;
process the request log responsive to detecting the indication; and
determine whether to migrate physical pages from the second memory to the first memory.

### Claim 12 (depends on 11)

The apparatus as recited in claim 11, wherein the given range is based on generating one indication per graphics frame.

### Claim 13 (depends on 11)

The apparatus as recited in claim 11, wherein processing the request log comprises:
retrieving a physical addresses of a physical page identified in an entry in the request log;
determining a virtual page which maps to the physical page;
updating an access count associated with the virtual page; and
migrating a plurality of physical pages, of the virtual page, from the second memory to the first memory responsive to determining the access count is greater than a second threshold.

### Claim 14 (depends on 13)

The apparatus as recited in claim 13, wherein processing the request log further comprises:
performing a reverse lookup of a reverse mapping table to retrieve a virtual address of the virtual page which maps to the physical page identified in the entry of the request log; and
updating page table entries for the plurality of physical pages which are migrated.
