IP Library Granted Patent US 7,082,507
Granted Patent B1
US 7,082,507 · App. 10/419,086 · Granted Jul 25, 2006

Method of controlling access to an address translation data structure of a computer system

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 7,082,507
App. No.
10/419,086
Granted
Jul 25, 2006
Kind
B1
Abstract

A method of controlling access to an address translation data structure of a computer system. The computer system includes a processor having a normal execution mode and a secure execution mode. The method includes executing code and generating a linear address. During translation of the linear address into a physical address, the method also includes generating a read-only page fault exception during the normal execution mode in response to detecting a software invoked write access to an address translation data structure having a read/write attribute set to be read-only. The method further includes selectively generating either the read-only page fault exception or a security exception during the secure execution mode in response to detecting the software invoked write access.

Claims (53)

1. A method of controlling access to an address translation data structure of a computer system including a processor having a normal execution mode and a secure execution mode, said method comprising:

executing code and generating a linear address;

translating said linear address into a physical address;

generating a read-only page fault exception during said normal execution mode in response to detecting a software invoked write access to an address translation data structure having a read/write attribute set to be read-only; and

selectively generating either said read-only page fault exception or a security exception during said secure execution mode in response to detecting said software invoked write access.

2. The method as recited in claim 1 further comprising generating said security exception in response to said processor executing in a normal kernel mode.

3. The method as recited in claim 2 further comprising generating said security exception in response to detecting that an entry within said address translation data structure is present.

4. The method as recited in claim 3 further comprising generating said security exception in response to detecting that said software invoked write access includes an address which is different than an address included in said address translation data structure.

5. The method as recited in claim 4 further comprising generating said security exception in response to detecting that said software invoked write access changes permission control flags of said address translation data structure.

6. The method as recited in claim 1 further comprising generating said read-only page fault exception in response to said processor executing in a normal user mode.

7. The method as recited in claim 1 , wherein said address translation data structure is a page directory memory page.

8. The method as recited in claim 1 , wherein said address translation data structure is a page table memory page.

9. The method as recited in claim 1 further comprising accessing a page map data structure configured to indicate whether an address included in said software invoked write access is an address of a page map.

10. The method as recited in claim 9 further comprising generating a read-only page fault exception in response to determining that said address included in said software invoked write access is an address of a given address translation data structure.

11. The method as recited in claim 9 further comprising generating said security exception in response to determining that said address included in said software invoked write access is not an address of a given address translation data structure.

12. A processor having a normal execution mode and a secure execution mode, said processor comprising:

execution logic configured to execute code and to generate a linear address;

address translation logic coupled to said execution logic and configured to translate said linear address into a physical address; and

protection logic coupled to said address translation logic and configured to generate a read-only page fault exception during said normal execution mode in response to detecting a software invoked write access to an address translation data structure having a read/write attribute set to be read-only;

wherein said protection logic includes security logic configured to selectively generate either said read-only page fault exception or a security exception during said secure execution mode in response to detecting said software invoked write access.

13. The processor as recited in claim 12 , wherein said security logic is further configured to generate said security exception in response to said processor executing in a normal kernel mode.

14. The processor as recited in claim 13 , wherein said security logic is further configured to generate said security exception in response to detecting that an entry within said address translation data structure is present.

15. The processor as recited in claim 14 , wherein said security logic is further configured to generate said security exception in response to detecting that said software invoked write access includes an address which is different than an address included in said address translation data structure.

16. The processor as recited in claim 15 , wherein said security logic is further configured to generate said security exception in response to detecting that said software invoked write access changes permission control flags of said address translation data structure.

17. The processor as recited in claim 12 , wherein said security logic is further configured to generate said read-only page fault exception in response to said processor executing in a normal user mode.

18. The processor as recited in claim 12 , wherein said address translation data structure is a page directory memory page.

19. The processor as recited in claim 12 , wherein said address translation data structure is a page table memory page.

20. The processor as recited in claim 12 , said security logic is further configured to access a page map data structure configured to indicate whether an address included in said software invoked write access is an address of a page map.

21. The processor as recited in claim 20 , wherein said security logic is further configured to generate a read-only page fault exception in response to determining that said address included in said software invoked write access is an address of a given address translation data structure.

22. The processor as recited in claim 20 , wherein said security logic is further configured to generate said security exception in response to determining that said address included in said software invoked write access is not an address of a given address translation data structure.

23. A computer system comprising:

a processor having a normal execution mode and a secure execution mode; and

a memory coupled to said processor and configured to store instructions and data;

wherein said processor includes:

execution logic configured to execute code and to generate a linear address;

address translation logic coupled to said execution logic and configured to translate said linear address into a physical address; and

protection logic coupled to said address translation logic and configured to generate a read-only page fault exception during said normal execution mode in response to detecting a software invoked write access to an address translation data structure having a read/write attribute set to be read-only;

wherein said protection logic includes security logic configured to selectively generate either said read-only page fault exception or a security exception during said secure execution mode in response to detecting said software invoked write access.

24. The computer system as recited in claim 23 , wherein said security logic is further configured to generate said security exception in response to said processor executing in a normal kernel mode.

25. The computer system as recited in claim 24 , wherein said security logic is further configured to generate said security exception in response to detecting that an entry within said address translation data structure is present.

26. The computer system as recited in claim 25 , wherein said security logic is further configured to generate said security exception in response to detecting that said software invoked write access includes an address which is different than an address included in said address translation data structure.

27. The computer system as recited in claim 26 , wherein said security logic is further configured to generate said security exception in response to detecting that said software invoked write access changes permission control flags of said address translation data structure.

28. The computer system as recited in claim 27 , wherein said security logic is further configured to generate said read-only page fault exception in response to said processor executing in a normal user mode.

29. The computer system as recited in claim 23 , wherein said address translation data structure is a page directory memory page.

30. The computer system as recited in claim 23 , wherein said address translation data structure is a page table memory page.

31. The computer system as recited in claim 23 , said security logic is further configured to access a page map data structure configured to indicate whether an address included in said software invoked write access is an address of a currently mapped page map.

32. The computer system as recited in claim 31 , wherein said security logic is further configured to generate a read-only page fault exception in response to determining that said address included in said software invoked write access is an address of said currently mapped page map.

33. The computer system as recited in claim 31 , wherein said security logic is further configured to generate said security exception in response to determining that said address included in said software invoked write access is not an address of said currently mapped page map.

34. A method of controlling access to an address translation data structure of a computer system including a processor having a normal execution mode and a secure execution mode, said method comprising:

executing code and generating a linear address;

translating said logical address into a physical address;

generating a read-only page fault exception during said normal execution mode in response to detecting a software invoked write access to an address translation data structure having a read/write attribute set to be read-only;

means for selectively generating either said read-only page fault exception or a security exception during said secure execution mode in response to detecting said software invoked write access.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: ADVANCED MICRO DEVICES, INC.
To: ADVANCED SILICON TECHNOLOGIES, LLC
Reel/Frame 036700/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2003
From: CHRISTIE, DAVID S.; STRONGIN, GEOFFREY S.; MCGRATH, KEVIN J.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 013987/0629 →