IP Library Granted Patent US 7,840,776
Granted Patent B1
US 7,840,776 · App. 09/699,947 · Granted Nov 23, 2010

Translated memory protection apparatus for an advanced microprocessor

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,840,776
App. No.
09/699,947
Granted
Nov 23, 2010
Kind
B1
Abstract

A method of responding to an attempt to write a memory address including a target instruction which has been translated to a host instruction for execution by a host processor including the steps of marking a memory address including a target instruction which has been translated to a host instruction, detecting a memory address which has been marked when an attempt is made to write to the memory address, and responding to the detection of a memory address which has been marked by protecting a target instruction at the memory address until it has been assured that translations associated with the memory address will not be utilized before being updated.

Claims (43)

1. A system comprising:

means for providing an indication whether a first memory address to be written stores a target instruction for a first instruction set architecture which has been translated to at least one host instruction for a second instruction set architecture, the at least one host instruction stored at a second memory address, the means for providing comprising:

a look-aside buffer including a plurality of storage locations for virtual addresses and associated physical addresses including a first storage location for the first memory address, and

a storage position corresponding to the first storage location for storing the indication; and

means for responding to the indication and for assuring that the at least one host instruction will not be utilized once the first memory address has been written, in which case the means for responding removes the at least one host instruction from the second memory address.

2. The system as claimed in claim 1 in which the means for responding invalidates the at least one host instruction by marking the at least one host instruction at the second memory address.

3. The system as claimed in claim 1 wherein the indication comprises a first bit value.

4. The system as claimed in claim 3 wherein a second bit value is also associated with the first storage location, the second bit value for indicating a type for a respective physical address.

5. The system as claimed in claim 4 wherein the type is selected from the group consisting of: a memory address; and a memory-mapped I/O address.

6. The system as claimed in claim 1 wherein the host processor is a very long instruction word processor and wherein the target instruction set architecture comprises x86 instructions.

7. The system as claimed in claim 1 further comprising means for detecting the indication to prevent writing the first memory address and for indicating a subsequent operation before accessing the first memory address.

8. The system as claimed in claim 7 wherein the means for detecting comprises:

means for generating an exception in response to the detection of the indication; and

means for responding to the exception to indicate the subsequent operation to be taken with respect to the host instruction before accessing the first memory address.

9. A memory controller comprising:

an address translation buffer including a plurality of storage locations in which recently accessed virtual addresses are to be recorded and in which physical addresses represented by the virtual addresses are to be recorded, each of the storage locations including means for indicating whether a physical address stores an instruction of a target instruction set which has been translated to an instruction of a host instruction set for execution by a computer system including a host processor, the instruction of the host instruction set for execution by the memory controller; and

means for detecting an indication in a storage location to prevent a write access of the physical address and for indicating a subsequent operation before accessing the physical address, the means for detecting comprising:

means for generating an exception in response to the detection of the indication; and

means for responding to the exception to indicate the subsequent operation to be taken with respect to the instruction of a host instruction set before accessing the physical address.

10. The memory controller as claimed in claim 9 in which the means for indicating comprises a storage position in the storage location.

11. The memory controller as claimed in claim 9 wherein the indication comprises a first bit value.

12. The memory controller as claimed in claim 11 wherein a second bit value is also associated with the storage location, the second bit value for indicating a type for the physical address, wherein the type is selected from the group consisting of: a memory address; and a memory-mapped I/O address.

13. The memory controller as claimed in claim 9 wherein the host processor is a very long instruction word processor and wherein the target instruction comprises an x86 instruction.

14. A computer-implemented method comprising:

checking a storage position for an indication whether a first memory address to be written stores a target instruction for a first instruction set architecture that has been translated to a host instruction for a second instruction set architecture, wherein the host instruction is executable by a host processor and is stored at a second memory address; and

preventing utilization of the host instruction subsequent to a write to the first memory address that overwrites the target instruction.

15. The method as claimed in claim 14 wherein the storage position is associated with a storage location for the first memory address in a look-aside buffer, wherein the look-aside buffer comprises a plurality of storage locations for virtual addresses and associated physical addresses.

16. The method as claimed in claim 15 wherein the indication comprises a first bit value, wherein a second bit value is also associated with the first memory address to indicate a type of physical address associated with the storage location.

17. The method as claimed in claim 16 wherein the type is selected from the group consisting of: a memory address; and a memory-mapped I/O address.

18. The method as claimed in claim 14 further comprising:

detecting an attempt to write to the first memory address;

generating an exception in response to the attempt to write; and

suspending the write to the first memory address until after the exception is handled.

19. The method as claimed in claim 18 further comprising removing the host instruction from the second memory address in response to the exception.

20. The method as claimed in claim 18 further comprising invalidating the host instruction in response to the exception.

21. A computer system comprising:

a memory; and

a microprocessor coupled to the memory, the microprocessor comprising a look-aside buffer comprising a plurality of storage locations for virtual addresses and associated physical addresses including a first storage location for a first memory address; wherein the look-aside buffer comprises a configuration to indicate whether a first memory address to be written stores a target instruction for a first instruction set architecture that has been translated to a host instruction for a second instruction set architecture and that is stored at a second memory address, the host instruction for execution by the microprocessor; and wherein, in response to an indication that the first memory address to be written stores a target instruction that has been translated to a host instruction, the host instruction will not be utilized once the target instruction at the first memory address has been overwritten.

22. The computer system as claimed in claim 21 wherein the indication comprises a first bit value.

23. The computer system as claimed in claim 22 wherein a second bit value is also associated with the first storage location, wherein the second bit value indicates a type of physical address associated with the storage location for the first memory address.

24. The computer system as claimed in claim 23 wherein the type is selected from the group consisting of: a memory address; and a memory-mapped I/O address.

25. The computer system as claimed in claim 21 wherein, in response to detecting an attempt to write to the first memory address, an exception is generated in response to the attempt to write, wherein further the host instruction is removed from the second memory address in response to the exception and wherein the attempt to write is suspended until after the exception is handled.

26. The computer system as claimed in claim 21 wherein, in response to detecting an attempt to write to the first memory address, an exception is generated in response to the attempt to write, wherein further the host instruction is invalidated in response to the exception and wherein the attempt to write is suspended until after the exception is handled.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: INTELLECTUAL VENTURES ASSETS 154 LLC
To: LIBERTY PATENTS LLC
Reel/Frame 051632/0864 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 036711 FRAME: 0160. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 6, 2015
From: INTELLECTUAL VENTURES FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036797/0356 →
MERGER Recorded Sep 29, 2015
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036711/0160 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2009
From: TRANSMETA LLC
To: INTELLECTUAL VENTURE FUNDING LLC
Reel/Frame 023268/0771 →
MERGER Recorded Mar 26, 2009
From: TRANSMETA CORPORATION
To: TRANSMETA LLC
Reel/Frame 022454/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2003
From: KELLY, EDMUND J.; CMELIK, ROBERT F.; KING, MALCOLM J.
To: TRANSMETA CORPORATION
Reel/Frame 014208/0467 →
MERGER Recorded Feb 13, 2001
From: TRANSMETA CORPORATION, A CALIFORNIA CORPORATION
To: TRANSMETA CORPORATION
Reel/Frame 011566/0681 →