IP Library › Granted Patent US 11,416,414
Granted Patent B2
US 11,416,414 · App. 16/724,603 · Granted Aug 16, 2022

Technologies for execute only transactional memory

Inventors: David M. Durham (Beaverton, OR); Michael Lemay (Hillsboro, OR); Men Long (Beaverton, OR)
Assignee: INTEL CORPORATION
G06F12/1027G06F9/3005G06F12/1408G06F12/1475G06F12/1045G06F12/1081G06F2212/402G06F2212/50G06F2212/65G06F2212/652G06F2212/657Y02D10/00
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 11,416,414
App. No.
16/724,603
Granted
Aug 16, 2022
Kind
B2
Abstract

Technologies for execute only transactional memory include a computing device with a processor and a memory. The processor includes an instruction translation lookaside buffer (iTLB) and a data translation lookaside buffer (dTLB). In response to a page miss, the processor determines whether a page physical address is within an execute only transactional (XOT) range of the memory. If within the XOT range, the processor may populate the iTLB with the page physical address and prevent the dTLB from being populated with the page physical address. In response to an asynchronous change of control flow such as an interrupt, the processor determines whether a last iTLB translation is within the XOT range. If within the XOT range, the processor clears or otherwise secures the processor register state. The processor ensures that an XOT range starts execution at an authorized entry point. Other embodiments are described and claimed.

Claims (67)

1. A computing device comprising:

a processor including an instruction translation lookaside buffer and a data translation lookaside buffer;

a first circuitry to (i) configure an execute only transactional range of a memory of the computing device, wherein the execute only transactional range cannot be read or written as data and (ii) execute a page miss handler of the processor in response to a page miss;

wherein the page miss handler is to (i) determine a virtual-to-physical address mapping in response to the page miss, wherein the virtual-to-physical address mapping associates a virtual memory address to a physical memory address, and (ii) determine whether the physical memory address is within the execute only transactional range, wherein to determine whether the physical memory address is within the execute only transaction range includes to determine a last translation value of the instruction translation lookaside buffer, wherein to determine the last translation value includes to read a last instruction translation lookaside buffer hit register of the processor; and

a second circuitry to (i) determine, in response to a change of control flow other than a branch, whether a last instruction pointer physical address of the processor is within the execute only transactional range, and (ii) secure a processor state of the processor in response to a determination that the last instruction pointer physical address is within the execute only transactional range.

2. The computing device of claim 1 , wherein the page miss hander is further to (iii) populate the instruction translation lookaside buffer with the virtual-to-physical address mapping in response to a determination that the physical memory address is within the execute only transactional range, and (iv) prevent the data translation lookaside buffer from being populated with the virtual-to-physical address mapping in response to the determination that the page physical address is within the execute only transactional range.

3. The computing device of claim 1 , wherein:

the page miss handler is further to: (i) determine whether a page size associated with the execute only transactional range matches a page size associated with the physical memory address by a page table of the computing device and (i) generate a page size mismatch fault in response to a determination that the page size associated with the execute only transactional range does not match the page size associated with the physical memory address by the page table;

wherein to populate the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping further comprises to populate the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping in response to a determination that the page size associated with the execute only transactional range matches the page size associated with the physical memory address by the page table.

4. The computing device of claim 1 , wherein the computing device further comprises a third circuitry to execute a mapping change handler of the processor in response to a change in value of the last instruction translation lookaside buffer hit register, wherein the mapping change handler is to:

determine a second physical memory address, wherein second physical memory address comprises a last translation value of the instruction translation lookaside buffer of the processor;

determine whether the second physical memory address is within the execute only transaction range;

determine whether an offset part of the second physical memory address matches a predefined entry point offset in response to a determination that the second physical memory address is within the execute only transaction range; and

generate a fault in response to a determination that the offset part of the second physical memory address does not match the predefined entry point offset.

5. The computing device of claim 1 , wherein the third circuitry is further to execute a miss handler of the processor in response to an instruction translation lookaside buffer miss, wherein the miss handler is to:

determine whether a physical memory address associated with the instruction translation lookaside buffer miss is within an execute only transaction range;

determine whether the physical memory address associated with the instruction translation lookaside buffer miss is at an authorized entry point in response to a determination that the physical memory address associated with the instruction translation lookaside buffer miss is within the execute only transaction range; and

generate a fault in response to a determination that the physical memory address associated with the instruction translation lookaside buffer miss is not at an authorized entry point.

6. The computing device of claim 5 , wherein:

the miss handler is further to record an execute only transaction index of a virtual-to-physical address mapping associated with the instruction translation lookaside buffer miss in response to a determination that the physical memory address associated with the instruction translation lookaside buffer miss is at an authorized entry point; and

the third circuitry is further to execute a hit handler of the processor in response to an instruction translation lookaside buffer hit, wherein the hit handler is to: (i) determine whether a previous instruction executed by the processor was executed within an execute only transaction range, (ii) determine whether an index of a virtual-to-physical address mapping associated with the instruction translation lookaside buffer hit matches the recorded execute only transaction index in response to a determination that the previous instruction executed by the processor was executed within an execute only transaction range, and (iii) evict an entry of the instruction translation lookaside buffer at the recorded execute only transaction index in response to a determination that the index of the virtual-to-physical address mapping associated with the instruction translation lookaside buffer hit does not match the recorded execute only transaction index.

7. The computing device of claim 5 , wherein:

the miss handler is further to: (i) record an index of a virtual-to-physical address mapping associated with the instruction translation lookaside buffer miss as a last-used instruction translation buffer entry in response to a determination that the physical memory address associated with the instruction translation lookaside buffer miss is at an authorized entry point and (ii) set an execute only transaction bit of the virtual-to-physical address mapping associated with the instruction translation lookaside buffer miss in response to the determination that the physical memory address associated with the instruction translation lookaside buffer miss is at an authorized entry point; and

the third circuitry is further to execute a hit handler of the processor in response to an instruction translation lookaside buffer hit, wherein the hit handler is to: (i) determine whether an index of a virtual-to-physical address mapping associated with the instruction translation lookaside buffer hit matches an index of the last-used instruction translation buffer entry, (ii) determine whether an execute only transaction bit of the virtual-to-physical address mapping associated with the instruction translation lookaside buffer hit is set in response to a determination that the index of the virtual-to-physical address mapping associated with the instruction translation lookaside buffer hit does not match the index of the last-used instruction translation buffer entry, (iii) determine whether a physical memory address associated with the instruction translation lookaside buffer hit is at an authorized entry point in response to a determination that the execute only transaction bit of the virtual-to-physical address mapping associated with the instruction translation lookaside buffer hit is set, and (iv) generate a fault in response to a determination that the physical memory address associated with the instruction translation lookaside buffer hit is not at an authorized entry point.

8. A method comprising:

configuring, by a processor of a computing device, an execute only transactional range of a memory of the computing device, wherein the execute only transactional range cannot be read or written as data;

executing, by the processor of the computing device, a page miss handler of the processor in response to configuring the execute only transactional range and in response to a page miss;

determining, by the page miss handler, a virtual-to-physical address mapping in response to the page miss, wherein the virtual-to-physical address mapping associates a virtual memory address to a physical memory address;

determining, by the page miss handler, whether the physical memory address is within the execute only transactional range, wherein to determine whether the physical memory address is within the execute only transaction range includes to determine a last translation value of the instruction translation lookaside buffer, wherein to determine the last translation value includes to read a last instruction translation lookaside buffer hit register of the processor; and

determining, by the computing device in response to a change of control flow other than a branch, whether a last instruction pointer physical address of the processor is within the execute only transactional range; and

securing, by the processor, a processor state of the processor in response to determining that the last instruction pointer physical address is within the execute only transactional range.

9. The method of claim 8 , further comprising:

populating, by the page miss handler, an instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping in response to determining that the physical memory address is within the execute only transactional range; and

preventing, by the page miss handler, a data translation lookaside buffer of the processor from being populated with the virtual-to-physical address mapping in response to determining that the page physical address is within the execute only transactional range.

10. The method of claim 8 , further comprising:

determining, by the page miss handler, whether a page size associated with the execute only transactional range matches a page size associated with the physical memory address by a page table of the computing device; and

generating, by the page miss handler, a page size mismatch fault in response to determining that the page size associated with the execute only transactional range does not match the page size associated with the physical memory address by the page table;

wherein populating the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping further comprises populating the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping in response to determining that the page size associated with the execute only transactional range matches the page size associated with the physical memory address by the page table.

11. At least one non-transitory computer-readable medium having stored thereon instructions which, when executed, cause a computing device to perform operations comprising:

configuring an execute only transactional range of a memory of the computing device, wherein the execute only transactional range cannot be read or written as data;

executing, by a processor of the computing device, a page miss handler of the processor in response to configuring the execute only transactional range and in response to a page miss;

determining, by the page miss handler, a virtual-to-physical address mapping in response to the page miss, wherein the virtual-to-physical address mapping associates a virtual memory address to a physical memory address;

determining, by the page miss handler, whether the physical memory address is within the execute only transactional range, wherein to determine whether the physical memory address is within the execute only transaction range includes to determine a last translation value of the instruction translation lookaside buffer, wherein to determine the last translation value includes to read a last instruction translation lookaside buffer hit register of the processor; and

determining, by the computing device in response to a change of control flow other than a branch, whether a last instruction pointer physical address of the processor is within the execute only transactional range; and

securing, by the processor, a processor state of the processor in response to determining that the last instruction pointer physical address is within the execute only transactional range.

12. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise a plurality of instructions that in response to being executed cause the computing device to:

populate, by the page miss handler, an instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping in response to determining that the physical memory address is within the execute only transactional range; and

prevent, by the page miss handler, a data translation lookaside buffer of the processor from being populated with the virtual-to-physical address mapping in response to determining that the page physical address is within the execute only transactional range.

13. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise a plurality of instructions that in response to being executed cause the computing device to:

determine, by the page miss handler, whether a page size associated with the execute only transactional range matches a page size associated with the physical memory address by a page table of the computing device; and

generate, by the page miss handler, a page size mismatch fault in response to determining that the page size associated with the execute only transactional range does not match the page size associated with the physical memory address by the page table;

wherein to populate the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping further comprises to populate the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping in response to determining that the page size associated with the execute only transactional range matches the page size associated with the physical memory address by the page table.

14. The non-transitory computer-readable medium of claim 11 , wherein the one or more operations comprise a plurality of instructions that in response to being executed cause the computing device to:

execute, by the processor, a mapping change handler of the processor in response to a change in value of the last instruction translation lookaside buffer hit register;

determine, by the mapping change handler, a second physical memory address, wherein second physical memory address comprises a last translation value of the instruction translation lookaside buffer of the processor;

determine, by the mapping change handler, whether the second physical memory address is within the execute only transaction range;

determine, by the mapping change handler, whether an offset part of the second physical memory address matches a predefined entry point offset in response to determining that the second physical memory address is within the execute only transaction range; and

generate, by the mapping change handler, a fault in response to determining that the offset part of the second physical memory address does not match the predefined entry point offset.

15. A system comprising:

a processor coupled to a memory, the processor hosting an instruction translation lookaside buffer and a data translation lookaside buffer, the processor including an application processor or a graphics processor;

a first circuitry to (i) configure an execute only transactional range of a memory of the computing device, wherein the execute only transactional range cannot be read or written as data and (ii) execute a page miss handler of the processor in response to a page miss;

wherein the page miss handler is to (i) determine a virtual-to-physical address mapping in response to the page miss, wherein the virtual-to-physical address mapping associates a virtual memory address to a physical memory address, and (ii) determine whether the physical memory address is within the execute only transactional range, wherein to determine whether the physical memory address is within the execute only transaction range includes to determine a last translation value of the instruction translation lookaside buffer, wherein to determine the last translation value includes to read a last instruction translation lookaside buffer hit register of the processor; and

a second circuitry to (i) determine, in response to a change of control flow other than a branch, whether a last instruction pointer physical address of the processor is within the execute only transactional range, and (ii) secure a processor state of the processor in response to a determination that the last instruction pointer physical address is within the execute only transactional range.

16. The system claim 15 , wherein the page miss hander is further to (iii) populate the instruction translation lookaside buffer with the virtual-to-physical address mapping in response to a determination that the physical memory address is within the execute only transactional range, and (iv) prevent the data translation lookaside buffer from being populated with the virtual-to-physical address mapping in response to the determination that the page physical address is within the execute only transactional range.

17. The system of claim 15 , wherein:

the page miss handler is further to: (i) determine whether a page size associated with the execute only transactional range matches a page size associated with the physical memory address by a page table of the computing device and (i) generate a page size mismatch fault in response to a determination that the page size associated with the execute only transactional range does not match the page size associated with the physical memory address by the page table;

wherein to populate the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping further comprises to populate the instruction translation lookaside buffer of the processor with the virtual-to-physical address mapping in response to a determination that the page size associated with the execute only transactional range matches the page size associated with the physical memory address by the page table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: DURHAM, DAVID M.; LEMAY, MICHAEL; LONG, MEN
To: INTEL CORPORATION
Reel/Frame 053767/0390 →
Continuity (3)
Continuation 14974972 · Dec 18, 2015
Provisional Application 62236405 · Oct 2, 2015
Related Publication 20200142837A1 · May 7, 2020