# US 9,436,616 B2 · Multi-core page table sets of attribute fields

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

- Number: US 9,436,616 B2
- Document ID: US9436616B2
- Status: Granted
- Kind: B2
- Application number: 13/888,069
- Filed: 2013-05-06
- Published: 2014-11-06
- Granted: 2016-09-06
- Earliest claimed: 2013-05-06
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Colin Christopher Sharp; Thomas Andrew Sartorius
- Web page: https://patentgrep.com/patent/US9436616B2

## CPC

- G06F 12/1009: using page tables, e.g. page table structures
- G06F 12/145: {the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A device includes a memory that stores a first page table that includes a first page table entry, wherein the first page table entry further includes a physical address, an alternative location associated with the page table entry, and a physical page of memory associated with the physical address. A first processing unit is configured to: read the first page table entry, and determine the physical address from the first page table entry. The second processing unit is configured to: read the physical address from the first page table entry, determine second page attribute data from the alternative location, wherein the second page attribute data define one or more accessibility attributes of the physical page of memory for the second processing unit, and access the physical page of memory associated with the physical address according to the one or more accessibility attributes.

## Claims

### Claim 1

A method of accessing memory comprising:
reading, with a first processing unit, a physical address from a first page table entry in a first page table;
determining, with the first processing unit, first page attribute data from the first page table entry, wherein the first page attribute data define one or more accessibility attributes of the physical page of memory for the first processing unit, and wherein the first page attribute data is included in one or more first fields;
reading, with a second processing unit, the physical address from the first page table entry in the first page table;
determining, with the second processing unit, second page attribute data from an alternative location, wherein the alternate location includes one or more second fields that are separate from the one of more first fields, the alternate location is a page table entry that is separate from the first page table entry, the alternative location is associated with the first page table entry, and wherein the second page attribute data define one or more accessibility attributes of the physical page of memory for the second processing unit;
accessing, with the first processing unit, a physical page of memory associated with the physical address according to the one or more accessibility attributes of the first page attribute data; and
accessing, with the second processing unit, the physical page of memory associated with the physical address according to the one or more accessibility attributes of the second page attribute data.

### Claim 2 (depends on 1)

The method of claim 1, wherein the alternative location comprises a second page table entry in a second page table, wherein determining the second page attribute data further comprises:
determining, with the second processing unit, the second page attribute data from the second page table entry in parallel with reading the first page table entry.

### Claim 3 (depends on 1)

The method of claim 1, wherein the alternative location is a second page table entry in a second page table, the method further comprising:
reading, with the second processing unit, data associated with the second page table from the first page table entry,
wherein determining the second page attribute data further comprises:
identifying, with the second processing unit, the second page table based on the data associated with the second page table.

### Claim 4 (depends on 3)

The method of claim 3, wherein the data associated with the second page table comprises an identifier that identifies the second page table from a plurality of parallel page tables.

### Claim 5 (depends on 1)

The method of claim 1, wherein the alternative location comprises a second page table entry in the first page table,
wherein the second page table entry in the first page table is associated with the first page table entry based on a pointer value of the first page table entry.

### Claim 6 (depends on 5)

The method of claim 5, wherein the pointer value comprises at least one of a virtual address and a physical address.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
combining, with the second processing unit, the one or more attributes of the first page attribute data with one or more attributes of the second page attribute data to form one or more accessibility attributes of combined page attribute data,
wherein the second processing unit accesses the physical page of memory associated with the physical address according to the one or more attributes of the combined page attribute data.

### Claim 8 (depends on 7)

The method of claim 7, wherein the second page attribute data includes one or more attribute values that are different from the one or more attribute values of the first page attribute data.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
reading, with the first processing unit, valid data from the first page table entry that indicates whether the second page attribute data is valid,
wherein determining the second page attribute data further comprises:
determining, with the second processing unit, the second page attribute data if the valid data from the first page table entry indicates that the second page attribute data is valid.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first page attribute data and the second page attribute data define whether the page of memory is at least one of:
readable, writeable, cacheable, executable, and dirty.

### Claim 11 (depends on 1)

The method of claim 1, wherein the alternative location comprises a register,
wherein the register is associated with the first page table entry based on a pointer value in the first page table entry.

### Claim 12 (depends on 1)

The method of claim 1, wherein the first processing unit is a CPU, and the second processing unit is a GPU.

### Claim 13 (depends on 12)

The method of claim 12 wherein the first processing unit comprises a first memory management unit (MMU) and the second processing unit comprises a second MMU, wherein the first MMU is configured to access at least one of the first page table and the alternate location, and the second MMU is configured to access at least one of the first page table and the alternate location.

### Claim 14

An apparatus comprising:
means for storing:
a first page table that includes a first page table entry, wherein the first page table entry further includes a physical address;
an alternative location associated with the first page table entry; and
a physical page of memory associated with the physical address;
first means for processing, wherein the first means for processing comprises:
means for reading, from the first page table entry, the physical address;
means for determining first page attribute data from the first page table entry, wherein the first page attribute data define one or more accessibility attributes of the physical page of memory for the first means for processing, and wherein the first page attribute data is included in one or more first fields; and
means for accessing a physical page of memory with the physical address according to the one or more accessibility attributes of the first page attribute data;
a second means for processing, wherein the second means for processing comprises:
means for reading, from the first page table, the first page table entry;
means for determining the physical address from the first page table entry;
means for determining second page attribute data from the alternative location, wherein the alternate location includes one or more second fields that are separate from the one of more first fields, the alternate location is a page table entry that is separate from the first page table entry, the alternative location is associated with the first page table entry, and wherein the second page attribute data define one or more accessibility attributes of the physical page of memory for the second means for processing; and
means for accessing the physical page of memory associated with the physical address according to the one or more accessibility attributes of the second page attribute data.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the alternative location comprises a second page table entry in a second page table, wherein the means for determining the second page attribute data further comprises:
means for determining the second page attribute data from the second page table entry in parallel with the means for determining the first page attribute data.

### Claim 16 (depends on 14)

The apparatus of claim 14, wherein the alternative location is a second page table entry in a second page table, the second means for processing further comprising:
means for reading data associated with the second page table from the first page table entry,
wherein the means for determining the second page attribute data further comprises:
means for identifying the second page table based on the data associated with the second page table.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the data associated with the second page table comprises an identifier that identifies the second page table from a plurality of parallel page tables.

### Claim 18 (depends on 14)

The apparatus of claim 14, wherein the alternative location comprises a second page table entry in the first page table,
wherein the second page table entry in the first page table is associated with the first page table entry based on a pointer value of the first page table entry.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the pointer value comprises at least one of a virtual address and a physical address.

### Claim 20 (depends on 14)

The apparatus of claim 14, wherein the second means for processing further comprises:
means for combining the one or more attributes of the first page attribute data with one or more attributes of the second page attribute data to form one or more accessibility attributes of combined page attribute data,
wherein the second means for processing accesses the physical page of memory associated with the physical address according to the one or more attributes of the combined page attribute data.

### Claim 21 (depends on 20)

The apparatus of claim 20, wherein the second page attribute data includes one or more attribute values that are different from the one or more attribute values of the first page attribute data.

### Claim 22 (depends on 14)

The apparatus of claim 14, wherein the first means for processing further comprises means for reading valid data from the first page table entry that indicates whether the second page attribute data is valid,
wherein the means for determining the second page attribute data further comprises:
means for determining the second page attribute data if the valid data from the first page table entry indicates that the second page attribute data is valid.

### Claim 23 (depends on 14)

The apparatus of claim 14, wherein the first page attribute data and the second page attribute data define whether the page of memory is at least one of:
readable, writeable, cacheable, executable, and dirty.

### Claim 24 (depends on 14)

The apparatus of claim 14, wherein the alternative location comprises a register,
wherein the register is associated with the first page table entry based on a pointer value in the first page table entry.

### Claim 25 (depends on 14)

The apparatus of claim 14, wherein the first means for processing is a CPU, and the second means for processing is a GPU.

### Claim 26 (depends on 25)

The apparatus of claim 25, wherein the first means for processing comprises a first memory management unit (MMU) and the second means for processing comprises a second MMU,
wherein the first MMU comprises configured means for accessing at least one of the first page table and the alternate location; and
the second MMU comprises means for accessing at least one of the first page table and the alternate location.

### Claim 27

An apparatus comprising:
memory that stores:
a first page table that includes a first page table entry, wherein the first page table entry further includes a physical address;
an alternative location associated with the first page table entry; and
a physical page of memory associated with the physical address;
a first processing unit configured to:
read, from the first page table, the physical address;
determine first page attribute data from the first page table entry, wherein the first page attribute data define one or more accessibility attributes of the physical page of memory for the first processing unit, and wherein the first page attribute data is included in one or more first fields; and
access the physical page of memory associated with the physical address according to the one or more accessibility attributes of the first page attribute data;
a second processing unit configured to:
read, from the first page table, the first page table entry;
determine the physical address from the first page table entry;
determine second page attribute data from the alternative location, wherein the alternate location includes one or more second fields that are separate from the one of more first fields, the alternate location is a page table entry that is separate from the first page table entry, the alternative location is associated with the first page table entry, and wherein the second page attribute data define one or more accessibility attributes of the physical page of memory for the second processing unit; and
access the physical page of memory associated with the physical address according to the one or more accessibility attributes of the second page attribute data.

### Claim 28 (depends on 27)

The apparatus of claim 27, wherein the alternative location comprises a second page table entry in a second page table, wherein to determine the second page attribute data, the second processing unit is further configured to:
determine the second page attribute data from the second page table entry and read the first page table entry in parallel.

### Claim 29 (depends on 27)

The apparatus of claim 27, wherein the alternative location is a second page table entry in a second page table, wherein the second processing unit is further configured to:
read data associated with the second page table from the first page table entry, and
wherein to determine the second page attribute data, the second processing unit is further configured to identify the second page table based on the data associated with the second page table.

### Claim 30 (depends on 29)

The apparatus of claim 29, wherein the data associated with the second page table comprises an identifier that identifies the second page table from a plurality of parallel page tables.

### Claim 31 (depends on 27)

The apparatus of claim 27, wherein the alternative location comprises a second page table entry in the first page table,
wherein the second page table entry in the first page table is associated with the first page table entry based on a pointer value of the first page table entry.

### Claim 32 (depends on 31)

The apparatus of claim 31, wherein the pointer value comprises at least one of a virtual address and a physical address.

### Claim 33 (depends on 27)

The apparatus of claim 27, wherein the second processing unit is further configured to:
combine the one or more attributes of the first page attribute data with one or more attributes of the second page attribute data to form one or more accessibility attributes of combined page attribute data,
wherein the second means processing unit accesses the physical page of memory associated with the physical address according to the one or more attributes of the combined page attribute data.

### Claim 34 (depends on 33)

The apparatus of claim 33, wherein the second page attribute data includes one or more attribute values that are different from the one or more attribute values of the first page attribute data.

### Claim 35 (depends on 27)

The apparatus of claim 27, wherein the first processing unit further is further configured to read valid data from the first page table entry that indicates whether the second page attribute data is valid,
wherein to determine the second page attribute data, the second processing unit is further configured to:
determine the second page attribute data if the valid data from the first page table entry indicates that the second page attribute data is valid.

### Claim 36 (depends on 27)

The apparatus of claim 27, wherein the first page attribute data and the second page attribute data define whether the page of memory is at least one of:
readable, writeable, cacheable, executable, and dirty.

### Claim 37 (depends on 27)

The apparatus of claim 27, wherein the alternative location comprises a register,
wherein the register is associated with the first page table entry based on a pointer value in the first page table entry.

### Claim 38 (depends on 27)

The apparatus of claim 27, wherein the first processing unit is a CPU, and the second processing unit is a GPU.

### Claim 39 (depends on 38)

The apparatus of claim 38, wherein the first means for processing comprises a first memory management unit (MMU) and the second means for processing comprises a second MMU,
wherein the first MMU comprises configured means for accessing at least one of the first page table and the alternate location; and
the second MMU comprises means for accessing at least one of the first page table and the alternate location.

### Claim 40

A non-transitory computer-readable storage medium having stored thereon instructions that when executed cause a first processing unit and a second processing unit to:
read, with a first processing unit, a physical address from a first page table entry in a first page table;
determine, with the first processing unit, first page attribute data from the first page table entry, wherein the first page attribute data define one or more accessibility attributes of the physical page of memory for the first processing unit, and wherein the first page attribute data is included in one or more first fields;
read, with the second processing unit, the physical address from the first page table entry in the first page table;
determine, with the second processing unit, second page attribute data from an alternative location, wherein the alternate location includes one or more second fields that are separate from the one of more first fields, the alternate location is a page table entry that is separate from the first page table entry, the alternative location is associated with the first page table entry, and wherein the second page attribute data define one or more accessibility attributes of the physical page of memory for the second processing unit;
access, with the first processing unit, a physical page of memory associated with the physical address according to the one or more accessibility attributes of the first page attribute data; and
access, with the second processing unit, the physical page of memory associated with the physical address according to the one or more accessibility attributes of the second page attribute data.

### Claim 41 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, wherein the alternative location comprises a second page table entry in a second page table, wherein the instructions that cause the second processing unit to determine the second page attribute data further comprise instructions that, when executed, cause the second processing unit to:
determine the second page attribute data from the second page table entry and read the first page table entry in parallel.

### Claim 42 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, wherein the alternative location is a second page table entry in a second page table, further comprising instructions that, when executed, cause the second processing unit to:
read data associated with the second page table from the first page table entry,
wherein the instructions that cause the second processing unit to determine the second page attribute data further comprise instructions, that when executed, cause the second processing unit to:
identify the second page table based on the data associated with the second page table.

### Claim 43 (depends on 42)

The non-transitory computer-readable storage medium of claim 42, wherein the data associated with the second page table comprises an identifier that identifies the second page table from a plurality of parallel page tables.

### Claim 44 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, wherein the alternative location comprises a second page table entry in the first page table,
wherein the second page table entry in the first page table is associated with the first page table entry based on a pointer value of the first page table entry.

### Claim 45 (depends on 44)

The non-transitory computer-readable storage medium of claim 44, wherein the pointer value comprises at least one of a virtual address and a physical address.

### Claim 46 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, further comprising instructions, that when executed, cause the second processing unit to:
combine the one or more attributes of the first page attribute data with one or more attributes of the second page attribute data to form one or more accessibility attributes of combined page attribute data,
wherein the second processing unit accesses the physical page of memory associated with the physical address according to the one or more attributes of the combined page attribute data.

### Claim 47 (depends on 46)

The non-transitory computer-readable storage medium of claim 46, wherein the second page attribute data includes one or more attribute values that are different from the one or more attribute values of the first page attribute data.

### Claim 48 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, further comprising instructions that, when executed, cause the first processing unit to:
read valid data from the first page table entry that indicates whether the second page attribute data is valid,
wherein the instructions that cause the second processing unit to determine the second page attribute data further comprise instructions that, when executed, cause the second processing unit to:
determine the second page attribute data if the valid data from the first page table entry indicates that the second page attribute data is valid.

### Claim 49 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, wherein the first page attribute data and the second page attribute data define whether the page of memory is at least one of:
readable, writeable, cacheable, executable, and dirty.

### Claim 50 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, wherein the alternative location comprises a register,
wherein the register is associated with the first page table entry based on a pointer value in the first page table entry.

### Claim 51 (depends on 40)

The non-transitory computer-readable storage medium of claim 40, wherein the first processing unit is a CPU, and the second processing unit is a GPU.

### Claim 52 (depends on 51)

The non-transitory computer-readable storage medium of claim 51, wherein the first processing unit comprises a first memory management unit (MMU) and the second processing unit comprises a second MMU, wherein the first MMU is configured to access at least one of the first page table and the alternate location, and the second MMU is configured to access at least one of the first page table and the alternate location.
