IP Library › Granted Patent US 12,405,898
Granted Patent B1
US 12,405,898 · App. 18/586,674 · Granted Sep 2, 2025

Memory synchronisation subsequent to a page table walk

Inventors: . Abhishek Raja (Niagara Falls, NY); Alexander Donald Charles Chadwick (Cambridge, GB); Andrew Brookfield Swaine (Sheffield, GB); Timothy Hayes (Cambridge, GB)
Assignee: Arm Limited
G06F12/1009G06F11/2082G06F12/1045
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,405,898
App. No.
18/586,674
Granted
Sep 2, 2025
Kind
B1
Abstract

There is provided an apparatus, a method, and a computer readable storage medium. The apparatus comprises memory translation circuitry responsive to receipt of a translation request specifying a first address, to perform a page table walk process to identify a corresponding second address. The apparatus is also provided with control circuitry responsive to receipt of a memory synchronisation occurring subsequent to at least one maintenance operation, to implement a delay before performing the memory synchronisation. The delay continues whilst one or more pending memory accesses affected by the maintenance operation are outstanding. The control circuitry is configured to perform a filtering process to identify candidate page table walk processes affected by the maintenance operation and, for each candidate page table walk, to cancel the candidate page table walk process and to issue a replayed translation request to trigger a replay of the candidate page table walk process.

Claims (47)

1. An apparatus comprising:

memory translation circuitry responsive to receipt of a translation request specifying a first address in a first address space, to perform a page table walk process to identify a corresponding second address in a second address space; and

control circuitry responsive to receipt of a memory synchronisation occurring subsequent to at least one maintenance operation, to implement a delay before performing the memory synchronisation, the delay continuing while one or more pending memory accesses affected by the maintenance operation are outstanding,

wherein the control circuitry is configured:

to perform a filtering process to identify candidate page table walk processes affected by the at least one maintenance operation; and

for each candidate page table walk of the candidate page table walk processes, to cancel the candidate page table walk process and, subsequent to the memory synchronisation, to issue a replayed translation request to trigger a replay of the candidate page table walk process.

2. The apparatus of claim 1 , wherein:

the apparatus comprises translation storage circuitry configured to store entries identifying translation data indicative of translations between the first address space and the second address space, the translation data corresponding to at least one stage of the page table walk process;

the memory translation circuitry is responsive to receipt of the first address to perform a lookup of the first address in the translation storage circuitry, and when the lookup hits on an entry in the translation storage circuitry defining a partial translation to perform the page table walk process using the translation data identified in the entry; and

the at least one maintenance operation is an invalidation operation relating to translation storage circuitry.

3. The apparatus of claim 2 , wherein the invalidation operation comprises invalidating one or more of the entries in the translation storage circuitry.

4. The apparatus of claim 2 , wherein the invalidation operation comprises marking a pending page table walk as using invalid translation data to prevent allocation into the translation storage circuitry.

5. The apparatus of claim 2 , wherein the translation storage circuitry is a translation lookaside buffer and the maintenance operation is a translation lookaside buffer maintenance operation.

6. The apparatus of claim 1 , wherein:

the translation request is associated with a requesting context of a plurality of processing contexts;

the at least one maintenance operation is associated with at least one given processing context of the plurality of processing contexts; and

the candidate page table walk processes comprise occurrences of the page table walk process performed in response to a corresponding translation request associated with the at least one given processing context.

7. The apparatus of claim 6 , wherein the control circuitry is responsive to at least a first encoding of the maintenance operation, to identify a single one of the plurality of processing contexts as the at least one given processing context.

8. The apparatus of claim 6 , wherein the at least one given processing context excludes one or more of the plurality of processing contexts.

9. The apparatus of claim 6 , wherein the control circuitry is responsive to at least a second encoding of the maintenance operation, to identify all of the plurality of processing contexts as the at least one given processing context.

10. The apparatus of claim 1 , wherein the filtering process comprises at least one of:

identifying occurrences of the page table walk process issued speculatively as the candidate page table walk processes; and

identifying occurrences of the page table walk process associated with a prefetch request as the candidate page table walk processes.

11. The apparatus of claim 1 , wherein the control circuitry is configured to associate replay occurrence information indicative of a number of times a translation request has been replayed with the replayed translation request; and

the filtering process comprises omitting page table walk processes from the candidate page table walk processes when the replay occurrence information associated with the page table walk processes exceeds a predefined threshold.

12. The apparatus of claim 11 , wherein the control circuitry is configured to associate the replay occurrence information only with an oldest non-speculative translation request.

13. The apparatus of claim 11 , wherein the predefined threshold is a single replay.

14. The apparatus of claim 1 , wherein the page table walk process is a multi-stage page table walk process.

15. The apparatus of claim 1 , wherein the first address is a virtual address and the first address space is a virtual address space, and the second address is a physical address and the second address space is a physical address space or an intermediate physical address space.

16. The apparatus of claim 1 , comprising execution circuitry comprising a 6×128 bit vector datapath.

17. A system comprising:

the apparatus of claim 1 , implemented in at least one packaged chip;

at least one system component; and

a board,

wherein the at least one packaged chip and the at least one system component are assembled on the board.

18. A chip-containing product comprising the system of claim 17 , wherein the system is assembled on a further board with at least one other product component.

19. A method comprising:

performing in response to receipt of a translation request specifying a first address in a first address space, a page table walk process to identify a corresponding second address in a second address space; and

implementing, in response to receipt of a memory synchronisation occurring subsequent to at least one maintenance operation, a delay before performing the memory synchronisation, the delay continuing while one or more pending memory accesses affected by the maintenance operation are outstanding,

performing a filtering process to identify candidate page table walk processes affected by the at least one maintenance operation; and

for each candidate page table walk of the candidate page table walk processes, cancelling the candidate page table walk process and, subsequent to the memory synchronisation, issuing a replayed translation request to trigger a replay of the candidate page table walk process.

20. A non-transitory computer-readable medium storing computer-readable code for fabrication of an apparatus comprising:

memory translation circuitry responsive to receipt of a translation request specifying a first address in a first address space, to perform a page table walk process to identify a corresponding second address in a second address space; and

control circuitry responsive to receipt of a memory synchronisation occurring subsequent to at least one maintenance operation, to implement a delay before performing the memory synchronisation, the delay continuing while one or more pending memory accesses affected by the maintenance operation are outstanding,

wherein the control circuitry is configured:

to perform a filtering process to identify candidate page table walk processes affected by the at least one maintenance operation; and

for each candidate page table walk of the candidate page table walk processes, to cancel the candidate page table walk process and, subsequent to the memory synchronisation, to issue a replayed translation request to trigger a replay of the candidate page table walk process.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2024
From: ABHISHEK RAJA, .; CHADWICK, ALEXANDER DONALD CHARLES; SWAINE, ANDREW BROOKFIELD; HAYES, TIMOTHY
To: ARM LIMITED
Reel/Frame 066555/0772 →
References Cited (7)
US 9531647B1 · Goyal · 2016 [cited by examiner]
US 11748267B1 · Williams · 2023 [cited by examiner]
US 12045615B1 · Duggal · 2024 [cited by examiner]
US 20040215898A1 · Arimilli · 2004 [cited by examiner]
US 20160140040A1 · Mukherjee · 2016 [cited by examiner]
US 20190042253A1 · Eyole · 2019 [cited by examiner]
US 20200065260A1 · Ghoshal · 2020 [cited by examiner]