IP Library Granted Patent US 8,055,877
Granted Patent B1
US 8,055,877 · App. 11/248,813 · Granted Nov 8, 2011

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 8,055,877
App. No.
11/248,813
Granted
Nov 8, 2011
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 (34)

1. A processor, comprising:

a translator configured to translate target instructions of a target program into host instructions;

an execution pipeline configured to execute the host instructions, wherein at least one of the host instructions are executed speculatively; and

a memory cache configured to hold the host instructions, wherein the execution pipeline includes a configuration to re-executed host instructions held in the memory cache without translating the corresponding target instruction of the program to the host instructions held in the memory cache again.

2. The processor of claim 1 , wherein one of the host instructions is executed out of target program order.

3. The processor of claim 1 , wherein the memory cache is a translation buffer.

4. The processor of claim 3 , wherein one of the host instructions is executed out of target program order.

5. A processor, comprising:

a translator configured to translate target instructions of a program into host operations;

a memory buffer coupled to the translator and configured to store the host operations wherein the stored host operations can be fetched, issued and re-executed later from the memory buffer without translating the corresponding target instruction of the program to the stored host operation held in the memory buffer again;

a fetch pipeline stage coupled to the memory buffer and configured to fetch the host operations;

an issue pipeline stage configured to issue host operations; and

multiple execution units coupled to the issue pipeline stage and configured to execute host operations.

6. The processor of claim 5 , wherein one of the host operations is executed speculatively.

7. The processor of claim 6 , wherein the target instructions are compliant with the x-86 instruction set.

8. The processor of claim 6 , wherein the speculatively executed host operation is a memory store operation.

9. The processor of claim 8 , wherein the target instructions are compliant with the x-86 instruction set.

10. The processor of claim 6 , wherein the speculatively executed host operation is a conditional branch operation.

11. The processor of claim 10 , wherein the target instructions are compliant with the x-86 instruction set.

12. A method of operating a processor, comprising:

translating target instructions of a target program into host instructions;

executing the host instructions in an execution pipeline, wherein at least one of the host instructions are executed speculatively; and

holding the host instructions in a memory cache for subsequent execution without translating the corresponding target instruction of the program to the host instruction held in the memory cache again.

13. The method of claim 12 , wherein one of the host instructions is executed out of target program order.

14. The method of claim 12 , further comprising executing host instructions retrieved from the memory cache in response to an exception.

15. A processor, comprising:

a means for translating instructions of a program into host operations;

a means for executing the host operations; and

a means for caching the host operations wherein the cached host operations are re-executed without translating the corresponding instruction of the program again.

16. The processor of claim 15 , wherein the instructions of the program are compliant with the x-86 instruction set.

17. The processor of claim 15 , further comprising the means for executing the host operations wherein at least one host operation is executed speculatively.

18. The processor of claim 17 , wherein a speculatively executed host operation is a memory operation.

19. The processor of claim 17 , wherein a speculatively executed host operation is a condition branch operation.

20. The processor of claim 15 , wherein the cached host operations are executed in response to an exception.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: INTELLECTUAL VENTURES ASSETS 154 LLC
To: LIBERTY PATENTS LLC
Reel/Frame 051709/0805 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES ASSETS 154 LLC
Reel/Frame 051411/0565 →
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 →