# US 12,007,905 B2 · Translation hints

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

- Number: US 12,007,905 B2
- Document ID: US12007905B2
- Status: Granted
- Kind: B2
- Application number: 17/484,155
- Filed: 2021-09-24
- Published: 2023-03-30
- Granted: 2024-06-11
- Earliest claimed: 2021-09-24
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Jonathan Curtis Beard; Luis Emilio Pena
- Web page: https://patentgrep.com/patent/US12007905B2

## CPC

- G06F 12/1009: using page tables, e.g. page table structures
- G06F 12/1063: {the data cache being concurrently virtually addressed}
- G06F 12/084: with a shared cache
- G06F 12/1036: for multiple virtual address spaces, e.g. segmentation (G06F12/1045 takes precedence)
- G06F 12/1072: Decentralised address translation, e.g. in distributed shared memory systems
- G06F 12/1081: for peripheral access to main memory, e.g. direct memory access [DMA]
- G06F 2212/6028: Prefetching based on hints or prefetch instructions
- G06F 2212/657: Virtual address space management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A hinter data processing apparatus is provided with processing circuitry that determines that an execution context to be executed on a hintee data processing apparatus will require a virtual-to-physical address translation. Hint circuitry transmits a hint to a hintee data processing apparatus to prefetch a virtual-to-physical address translation in respect of an execution context of the further data processing apparatus. A hintee data processing apparatus is also provided with receiving circuitry that receives a hint from a hinter data processing apparatus to prefetch a virtual-to-physical address translation in respect of an execution context of the further data processing apparatus. Processing circuitry determines whether to follow the hint and, in response to determining that the hint is to be followed, causes the virtual-to-physical address translation to be prefetched for the execution context of the data processing apparatus. In both cases, the hint comprises an identifier of the execution context.

## Claims

### Claim 1

A hinter data processing apparatus comprising:
processing circuitry configured to perform a determination of whether an executable execution context to be executed on a hintee data processing apparatus will require a virtual-to-physical address translation, wherein the hinter data processing apparatus is a processor core and the hintee data processing apparatus is a separate processor core separate from the hinter processing apparatus, wherein the determination is made prior to the executable execution context being executed on the hintee data processing apparatus; and
hint circuitry configured to transmit a hint to the hintee data processing apparatus to prefetch a virtual-to-physical address translation with respect to the executable execution context on a condition that prefetching the virtual-to-physical address translation will not displace another translation being used by a current execution context, prior to the executable execution context being executed on the hintee data processing apparatus,
wherein the hint comprises an identifier of the executable execution context.

### Claim 2 (depends on 1)

The hinter data processing apparatus according to claim 1, comprising:
memory access circuitry configured to access a shared memory, which is shared with the hintee data processing apparatus to execute within the executable execution context, wherein
the virtual-to-physical address translation provides a translation from a virtual address to a physical address that is backed by the shared memory.

### Claim 3 (depends on 1)

The hinter data processing apparatus according to claim 1, wherein
the hint is to the hintee data processing apparatus to prefetch the virtual-to-physical address translation into a cache.

### Claim 4 (depends on 1)

The hinter data processing apparatus according to claim 1, wherein
the hint is to the hintee data processing apparatus to prefetch the virtual-to-physical address translation into a first level cache.

### Claim 5 (depends on 1)

The hinter data processing apparatus according to claim 1, wherein
the identifier comprises at least one of: an Application Space Identifier, a Virtual Machine identifier, and a Process Address Space Identifier.

### Claim 6 (depends on 1)

The hinter data processing apparatus according to claim 1, comprising:
dispatch circuitry configured to dispatch a work unit to the hintee data processing apparatus to be executed within the executable execution context; and
the virtual-to-physical address translation is used in execution of the work unit by the executable execution context on the hintee data processing apparatus.

### Claim 7 (depends on 1)

The hinter data processing apparatus according to claim 1, comprising:
memory access circuitry configured to transfer data to a shared memory, which is shared with the hintee data processing apparatus; and
notification circuitry configured to issue a notification to the hintee data processing apparatus regarding the data, to cause the hintee data processing apparatus to operate on the data, wherein
the virtual-to-physical address translation provides a physical address in the shared memory at which the data is located; and
the hint circuitry is configured to transmit the hint before the notification is issued by the notification circuitry.

### Claim 8 (depends on 1)

The hinter data processing apparatus according to claim 1, wherein
the virtual-to-physical address translation provides a physical address at which at least one of data and an instruction is stored.

### Claim 9

A data processing method comprising:
performing a determination at a processor core that an executable execution context to be executed on a hintee data processing apparatus, wherein the hintee data processing apparatus is a separate processor core separate from the processor core, will require a virtual-to-physical address translation, wherein the determination is made prior to the executable execution context being executed on the hintee data processing apparatus; and
transmitting a hint to the hintee data processing apparatus to prefetch a virtual-to-physical address translation with respect to an executable execution context of the further data processing apparatus on a condition that prefetching the virtual-to-physical address translation will not displace another translation being used by a current execution context, prior to the executable execution context being executed on the hintee data processing apparatus,
wherein the hint comprises an identifier of the executable execution context.

### Claim 10

A hintee data processing apparatus comprising:
receiving circuitry configured to receive a hint from a hinter data processing apparatus to prefetch a virtual-to-physical address translation with respect to an executable execution context, prior to the executable execution context being executed on the hintee data processing apparatus, wherein the hintee data processing apparatus is a processor core and the hinter data processing apparatus is a separate processor core separate from the hintee processing apparatus; and
processing circuitry configured to determine whether following the hint will displace another translation being used by a current execution context and, in response to determining that following the hint will not displace the another translation being used by the current execution context, causing the virtual-to-physical address translation to be prefetched for the executable execution context prior to the executable execution context being executed on the hintee data processing apparatus,
wherein the hint comprises an identifier of the executable execution context.

### Claim 11 (depends on 10)

The hintee data processing apparatus according to claim 10, comprising:
memory access circuitry to access a shared memory, which is shared with the hinter data processing apparatus, wherein
the virtual-to-physical address translation provides a translation from a virtual address to a physical address that is backed by the shared memory.

### Claim 12 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the hint is to the hintee data processing apparatus to prefetch the virtual-to-physical address translation into a cache.

### Claim 13 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the hint is to the hintee data processing apparatus to prefetch the virtual-to-physical address translation into a first level cache.

### Claim 14 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the identifier comprises at least one of: an Application Space Identifier, a Virtual Machine identifier, and a Process Address Space Identifier.

### Claim 15 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the receiving circuitry is configured to receive a work unit from the hinter data processing apparatus to be executed within the executable execution context; and
the virtual-to-physical address translation is used in execution of the work unit by the executable execution context on the hintee data processing apparatus.

### Claim 16 (depends on 10)

The hintee data processing apparatus according to claim 10, comprising:
memory access circuitry configured to access data in a shared memory, which is shared with the hinter data processing apparatus; and
notification circuitry configured to receive a notification from the hinter data processing apparatus regarding the data and, in response, to cause the processing circuitry to operate on the data, wherein
the virtual-to-physical address translation provides a physical address in the shared memory at which the data is located; and
the hint is received before the notification is received by the notification circuitry.

### Claim 17 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the virtual-to-physical address translation provides a physical address at which at least one of data and an instruction is stored.

### Claim 18 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the processing circuitry is configured to determine that the hint should be disregarded in response to the executable execution context being inactive or being absent from the hintee data processing apparatus.

### Claim 19 (depends on 10)

The hintee data processing apparatus according to claim 10, wherein
the processing circuitry is configured to determine that the hint should be disregarded in response to determining that prefetching the virtual-to-physical address translation will displace another translation being used by a current execution context.

### Claim 20

A data processing method comprising:
receiving a hint at a processor core from a hinter data processing apparatus, wherein the hinter data processing apparatus is a separate processor core separate from the processor core, to prefetch a virtual-to-physical address translation with respect to an executable execution context, prior to the executable execution context being executed on a data processing apparatus; and
determining whether following the hint will displace another translation being used by a current execution context and, in response to determining that following the hint will displace the another translation being used by the current execution context, causing the virtual-to-physical address translation to be prefetched for the executable execution context prior to the executable execution context being executed on the hintee data processing apparatus,
wherein the hint comprises an identifier of the executable execution context.
