IP Library Granted Patent US 9,286,245
Granted Patent B2
US 9,286,245 · App. 13/995,360 · Granted Mar 15, 2016

Hardware enforced memory access permissions

Inventors: David M. Durham (Beaverton, OR); Ravi L. Sahita (Portland, OR); Prashant Dewan (Hillsboro, OR)
Assignee: Intel Corporation
G06F12/1458G06F21/121G06F21/50G06F21/79
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 9,286,245
App. No.
13/995,360
Granted
Mar 15, 2016
Kind
B2
Abstract

Embodiments of apparatuses and methods for hardware enforced memory access permissions are disclosed. In one embodiment, a processor includes address translation hardware and memory access hardware. The address translation hardware is to support translation of a first address, used by software to access a memory, to a second address, used by the processor to access the memory. The memory access hardware is to detect an access permission violation.

Claims (24)

1. A processor comprising:

page walk hardware to traverse a hierarchy of page tables to perform an address translation of an actual linear address to a physical address, wherein the actual linear address is used by software to access a memory and the physical address is used by the processor to access the memory;

a translation lookaside buffer to store a plurality of address translations performed by the page walk hardware; and

memory access control hardware to look up, in a permissions map separate from the hierarchy of page tables, the physical address from the page walk hardware to find access permissions and an expected linear address, compare the expected linear address to the actual linear address, and store the address translation and the access permissions in the translation lookaside buffer only if the expected linear address matches the actual linear address.

2. The processor of claim 1 , wherein the memory access control hardware is also to respond to an access permission violation by invoking microcode to collect information regarding an attempted access.

3. A method comprising:

performing, by page walk hardware in a processor, an address translation of an actual linear address to a physical address by traversing a hierarchy of page tables, where the actual linear address is used by software to access a memory and the physical address is used by the processor to access a memory; and

looking up, by memory access control hardware in the processor, the physical address in a permissions map separate from the hierarchy of page tables to find access permissions and an expected linear address;

comparing, by the memory access control hardware in the processor, the expected linear address to the actual linear address; and

storing the address translation and the access permissions in a translation lookaside buffer in the processor only if the expected linear address matches the actual linear address.

4. The method of claim 3 , further comprising creating, by security software, the permissions map.

5. The method of claim 4 , wherein the security software runs at the highest privilege level on the processor.

6. The method of claim 4 , further comprising responding to an access permission violation by invoking microcode to collect information regarding an attempted access.

7. The method of claim 6 , further comprising transferring, by the microcode, control of the processor to the security software.

8. The method of claim 7 , further comprising modifying, by the security software, the permissions map.

9. The method of claim 8 , further comprising restarting, by the security software, the access.

10. A system comprising:

a memory; and

a processor including

page walk hardware to traverse a hierarchy of page tables to perform an address translation of an actual linear address to a physical address, wherein the actual linear address is used by software to access a memory and the physical address is used by the processor to access the memory;

a translation lookaside buffer to store a plurality of address translations performed by the page walk hardware; and

memory access control hardware to look up, in a permissions map separate from the hierarchy of page tables, the physical address from the page walk hardware to find access permissions and an expected linear address, compare the expected linear address to the actual linear address, and store the address translation and the access permissions in the translation lookaside buffer only if the expected linear address matches the actual linear address.

11. The system of claim 10 , wherein the memory is to store the permissions map.

12. The system of claim 10 , wherein the permissions map is created by security software running at the highest privilege level on the processor.

Continuity (1)
Related Publication 20140041033A1 · Feb 6, 2014