IP Library Granted Patent US 8,024,522
Granted Patent B1
US 8,024,522 · App. 12/030,851 · Granted Sep 20, 2011

Memory ordering queue/versioning cache circuit

Assignee: Oracle America, Inc.
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,024,522
App. No.
12/030,851
Granted
Sep 20, 2011
Kind
B1
Abstract

A processor includes a circuit for tracking memory operations with trace-based execution. Each trace includes a sequence of operations that includes zero or more of the memory operations. The memory operations being executed form a set of active memory operations that have a predefined program order among them. At least some of the active memory operations access the memory in an execution order that is different from the program order. During the operation of the circuit, none of the operations of a given trace has any effect on the execution unit's architectural state prior to committing that trace. Each trace becomes eligible for commitment after all operations in the trace complete executing. The circuit also includes a sub-circuit that holds memory operation ordering information corresponding to the active memory operations. The sub-circuit detects violations of ordering constraints. After each trace is committed, the sub-circuit invalidates all of the memory operation ordering information associated with the trace.

Claims (22)

1. A circuit for tracking memory operations in an out-of-order and speculative processor,

wherein the circuit is adapted for use with a trace unit and with an execution unit of the processor, where the trace unit sequences traces for execution thereby forming a trace sequence order, where each of the traces includes a sequence of operations that includes zero or more of the memory operations, where the execution unit executes the operations and has an architectural state, and where the circuit comprises:

a memory configured to cache at least some of the data accessed by the memory operations,

wherein the memory operations being executed form a set of active memory operations, where the active memory operations have a predefined program order among themselves, where the predefined program order imposes a set of ordering constraints, and where at least some of the active memory operations access the memory in an execution order that is different from the predefined program order;

a sub-circuit configured to hold memory operation ordering information corresponding to the active memory operations, and configured to detect a violation of the ordering constraints;

wherein none of the operations of a first particular one of the traces has any effect on the architectural state prior to a commitment of the first particular trace, and where the first particular trace becomes eligible for the commitment after the execution completes for all operations of the first particular trace; and

wherein the sub-circuit is further configured to invalidate all of the memory operation ordering information associated with the first particular trace after the commitment of the first particular trace, provided that the first particular trace does commit.

2. The circuit of claim 1 , where:

the sub-circuit is further configured to hold all of the memory operation ordering information associated with a second particular one of the traces until after the second particular trace commits, provided that the second particular trace does commit.

3. The circuit of claim 1 , where:

none of the operations of a third particular one of the traces has any effect on the architectural state, provided that the third particular trace does abort; and

the sub-circuit is further configured to invalidate all of the memory operation ordering information associated with the third particular trace after the third particular trace does abort, provided that the third particular trace aborts.

4. The circuit of claim 1 , where:

none of the operations of a fourth particular one of the traces has any effect on the architectural state, provided that the fourth particular trace does abort; and

the sub-circuit is further configured to hold all of the memory operation ordering information associated with the fourth particular trace until after the fourth particular trace abort, provided that the fourth particular trace does abort.

5. The circuit of claim 1 , where the operation sequences of a set of at least two of the traces are executed concurrently by the execution unit, where the active memory operations include a memory operation from a first particular one of the set, and where the active memory operations include a memory operation from a second particular one of the set.

6. The circuit of claim 1 , where:

the memory is further configured to cache at least some of the active memory operations that are the cacheable type; and

the sub-circuit is further configured to hold operation ordering information for the at least some of the active memory operations.

7. The circuit of claim 1 , where:

the active memory operations include all memory operations being executed that are a write combining type of memory operation; and

the sub-circuit is further configured to hold operation ordering information for each one of the active memory operations that is of the write combining type.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 020957 FRAME 0434. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT ASSIGNEES ARE SUN MICROSYSTEMS, INC. AND SUN MICROSYSTEMS TECHNOLOGY LTD. Recorded Aug 23, 2011
From: MONTALVO SYSTEMS, INC.
To: SUN MICROSYSTEMS, INC.; SUN MICROSYSTEMS TECHNOLOGY LTD.
Reel/Frame 026794/0962 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2008
From: MONTALVO SYSTEMS, INC.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020957/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2008
From: FAVOR, JOHN GREGORY; CHAN, PAUL G.; MURPHY, GRAHAM RICKETSON; ROWLANDS, JOSEPH BYRON
To: MONTALVO SYSTEMS, INC.
Reel/Frame 020846/0903 →
Continuity (26)
Continuation In Part 11781937 · Jul 23, 2007
Continuation In Part 11535971 · Sep 27, 2006
Continuation In Part 11535972 · Sep 27, 2006
Continuation In Part 11535977 · Sep 27, 2006
Continuation In Part 11553453 · Oct 26, 2006
Continuation In Part 11553455 · Oct 26, 2006
Continuation In Part 11553458 · Oct 26, 2006
Continuation In Part 11591024 · Oct 31, 2006
Continuation In Part 11923638 · Oct 24, 2007
Continuation In Part 11923640 · Oct 24, 2007
Continuation In Part 11941900 · Nov 16, 2007
Continuation In Part 11941908 · Nov 16, 2007
Continuation In Part 11941912 · Nov 16, 2007
Provisional Application 60889547 · Feb 13, 2007
Provisional Application 60862609 · Feb 12, 2008
Provisional Application 60721385 · Sep 28, 2005
Provisional Application 60730550 · Oct 26, 2005
Provisional Application 60730810 · Oct 27, 2005
Provisional Application 60731962 · Oct 31, 2005
Provisional Application 60731785 · Oct 31, 2005
Provisional Application 60732438 · Nov 1, 2005
Provisional Application 60832848 · Jul 23, 2006
Provisional Application 60832822 · Jul 23, 2006
Provisional Application 60862609 · Oct 24, 2006
Provisional Application 60866205 · Nov 16, 2006
Provisional Application 60866203 · Nov 16, 2006