# US 12,182,031 B2 · Computer system and method using a first page table and a second page table

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

- Number: US 12,182,031 B2
- Document ID: US12182031B2
- Status: Granted
- Kind: B2
- Application number: 17/691,358
- Filed: 2022-03-10
- Published: 2022-10-20
- Granted: 2024-12-31
- Earliest claimed: 2021-03-10
- Assignees: Imagination Technologies Limited
- Applicants: Imagination Technologies Limited
- Inventors: Christopher Smith
- Web page: https://patentgrep.com/patent/US12182031B2

## CPC

- G06F 12/1009: using page tables, e.g. page table structures
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 2212/1004: Compatibility, e.g. with legacy hardware
- G06F 2212/651: Multi-level translation tables
- G06F 2212/684: TLB miss handling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer system includes a physical memory having a first page table and a second page table, and an address translation module. The first page table includes primary page table entries, where each page table entry among the primary page table entries is configured to store a mapping of a virtual memory address to a physical memory address and auxiliary information. The second page table includes secondary page table entries each storing at least one further auxiliary information, where each secondary page table entry corresponds to a primary page table entry in the first page table. The address translation module is configured to, in response to receiving a request from a processor, walk through the first page table to identify a primary page table entry and consecutively identify a location of a corresponding secondary page table entry based on a location of the primary page table entry.

## Claims

### Claim 1

A computer implemented method performed by an address translation unit in a computer system, the computer system comprising a physical memory including a first page table having primary page table entries and a second page table having secondary page table entries, each of the secondary page table entries corresponding to a respective primary page table entry in the first page table, the computer implemented method comprising:
receiving a request from a processor;
walking through the first page table to identify both a primary page table entry and a location of the primary page table entry within the first page table; and
consecutively identifying a location of a corresponding secondary page table entry of the secondary page table entries, by adding a predetermined offset to the location of the primary page table entry.

### Claim 2 (depends on 1)

The computer implemented method as claimed in claim 1, wherein the method further comprises retrieving the primary page table entry and the secondary page table entry.

### Claim 3 (depends on 1)

The computer implemented method as claimed in claim 1, wherein the method further comprises storing a plurality of address translations, each from a virtual memory address to a physical memory address in a cache and wherein the method further comprises, on receiving the request from the processor, where the request is a virtual address:
searching, in the cache, for valid address translation from the virtual address to a physical address;
providing the physical address to the processor, on identifying the valid address translation for the virtual address in the cache; and
invoking a cache miss, in an absence of the valid address translation in the cache.

### Claim 4 (depends on 3)

The computer implemented method as claimed in claim 3, wherein the method further comprises walking through the first page table to identify the primary page table entry comprising a mapping of a physical address to the virtual address, on the occurrence of the cache miss.

### Claim 5

A non-transitory computer readable storage medium having stored thereon computer readable code configured to cause, when the code is run, a computer system comprising a physical memory including a first page table having primary page table entries and a second page table having secondary page table entries, each of the secondary page table entries corresponding to a respective primary page table entry in the first page table, to perform a method comprising:
receiving a request from a processor;
walking through the first page table to identify both a primary page table entry and a location of the primary page table entry within the first page table; and
consecutively identifying a location of a corresponding secondary page table entry of secondary page table entries in the second page table, by adding a predetermined offset to the location of the primary page table entry.

### Claim 6

A computer system, comprising:
a physical memory having
a first page table comprising primary page table entries, wherein each page table entry among the primary page table entries is configured to store a mapping of a virtual memory address to a physical memory address and auxiliary information, and
a second page table comprising secondary page table entries each storing at least one further auxiliary information, wherein each of the secondary page table entries corresponds to a respective primary page table entry in the first page table; and
an address translation module configured to, in response to receiving a request from a processor, identify both a primary page table entry and a location of the primary page table entry within the first page table and consecutively identify a location of a corresponding secondary page table entry of the secondary page table entries by adding a predetermined offset to the location of the primary page table entry in said first page table.

### Claim 7 (depends on 6)

The computer system as claimed in claim 6, wherein the address translation module is further configured to retrieve the primary page table entry and the secondary page table entry, optionally wherein the address translation module further copies the primary page table entry and the corresponding secondary page table entry retrieved into a cache.

### Claim 8 (depends on 6)

The computer system as claimed in claim 6, wherein the address translation module comprises a cache configured to store a plurality of address translations, each from a virtual memory address to a physical memory address and optionally the cache is a translation look aside buffer (TLB).

### Claim 9 (depends on 8)

The computer system as claimed claim 8, wherein the address translation module on receiving a request, that is a virtual address, is configured to:
search, in the cache, for valid address translation from the virtual address to a physical address;
provide the physical address to the processor, on identifying the valid address translation for the virtual address in the cache; and
invoke a cache miss, in an absence of the valid address translation in the cache, wherein the invoking of the cache miss is handled by the address translation module by using a page table walker or by raising a software exception handler.

### Claim 10 (depends on 9)

The computer system as claimed in claim 9, wherein the address translation module walks through the first page table to identify the primary page table entry comprising a mapping of a physical address to the virtual address, on the occurrence of the cache miss.

### Claim 11 (depends on 6)

The computer system as claimed in claim 6, wherein the auxiliary information and the further auxiliary information each comprises one or more memory attributes.

### Claim 12 (depends on 6)

The computer system as claimed in claim 6, wherein the second page table is stored in the physical memory at a location physically contiguous to the first page table or at a location not physically contiguous to the first page table.

### Claim 13 (depends on 6)

The computer system as claimed in claim 6, wherein the second page table is of a same size as the first page table, with the primary and secondary page table entries having the same bit length, or the second page table is of a different size compared to the first page table, with the secondary page table entries having a different bit length compared to the primary page table entries.

### Claim 14 (depends on 6)

The computer system as claimed in claim 6, wherein the pre-determined offset is a predetermined fixed offset with each of the secondary page table entries being stored in the physical memory at a fixed same offset from the respective primary page table entry.

### Claim 15 (depends on 6)

The computer system as claimed in claim 6, wherein the pre-determined offset is a predetermined variable offset with each secondary page table entry stored in the physical memory at a different offset from the corresponding primary page table entry.
