IP Library Granted Patent US 7,953,933
Granted Patent B1
US 7,953,933 · App. 11/880,875 · Granted May 31, 2011

Instruction cache, decoder circuit, basic block cache circuit and multi-block cache circuit

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,953,933
App. No.
11/880,875
Granted
May 31, 2011
Kind
B1
Abstract

An instruction processing circuit includes an instruction cache, a decoder configured to receive at least one of the instructions and to generate, based thereon, a decoder sequence of at least one operation. The circuit includes a basic block cache that includes a basic block sequence of at least one of the operations. The basic block sequence is derived from at least one of the decoder sequences and includes at most one conditional control transfer operation. The circuit includes a multi-block cache that includes a multi-block sequence consisting of at least one of the operations derived from two or more smaller op sequences. A sequencer is configured to generate a prediction for the result of a conditional control transfer operation, select the next sequence of operations, and provide an indication of the next sequence to the instructions cache, the basic block cache, and the multi-block cache.

Claims (30)

1. An instruction processing circuit for a processor, where the instruction processing circuit is adapted to provide one or more sequence of operations, based on one or more sequence of instructions, to an execution circuit of the processor, where the instruction processing circuit comprises:

an instruction cache operable to hold at least an instruction;

a decoder configured to receive at least one of the instructions and to generate, based thereon, a decoder sequence of at least one operation;

a basic block cache configured to hold a basic block trace that includes a basic block sequence of at least one of the ops, where the basic block sequence is derived from at least one of the decoder sequences and includes at most one conditional control transfer op;

a multi-block cache operable to hold a multi-block block trace that includes a multi-block sequence consisting of at least one of the ops derived from two or more smaller op sequences; and

a sequencer configured to:

generate a prediction for the result of a particular conditional control transfer op;

select, based on the predicted result, a next sequence of operations to be provided to a back end portion after the particular conditional branch operation; and

provide an indication of the next sequence to the instruction cache, the basic block cache, and the multi-block cache;

where the instruction cache, the basic block cache, and the multi-block cache are configurable such that the instruction cache provides at least one of the program instructions to the decoder, which provides the corresponding sequence of ops to the basic block cache, which stores the op sequence regardless of the state of the basic block cache; and

where the instruction cache, the decoder, and the basic block cache are also configurable such that the instruction cache provides at least one of the program instructions to the decoder, which provides the corresponding sequence of operations to the basic block cache, which stores the op sequence only after the basic block cache has determined that it does not contain the ops corresponding to the next sequence indication.

2. An instruction processing circuit, where the circuit is configured to receive a sequence of instructions and to provide a sequence of ops, where the op sequence corresponds to the instruction sequence and can be executed by another circuit within the microprocessor, the circuit comprising:

means for storing instructions, configured to store at least one instruction;

decoding means for receiving at least one of the instructions and for generating, based thereon, a decoder trace;

means for storing a basic block trace, wherein the basic block trace represents at least one of the decoder traces and includes at most one conditional control transfer op;

means for storing a multi-block trace that represents a multi-block sequence that represents two or more op sequences; and

sequencing means for generating a prediction for the result of a particular conditional control transfer op, for selecting, based on the predicted result, a next trace to be provided to a back end portion of the microprocessor after the particular conditional branch operation, and for providing an indication of the next sequence to the instruction cache, the basic block cache, and the multi-block cache,

wherein the means for storing instructions, the means for storing a basic block trace, and the means for storing a multi-block trace are configurable such that the means for storing instructions provides at least one of the program instructions to the decoding means, which provides the corresponding traces to the means for storing a basic block, which stores the trace regardless of the state of the means for storing a basic block cache, and

wherein the means for storing instructions, the decoding means, and the means for storing a basic block are also configurable such that the means for storing instructions provides at least one of the program instructions to the decoding means, which provides the corresponding traces to the means for storing a basic block, which stores the trace only after the means for storing a basic block has determined that it does not contain the ops corresponding to the next sequence indication.

3. A computer-readable medium containing a description expressed in a hardware description language which is interpreted by a computer to specify a circuit that performs a method for optimizing performance of a timing-constrained circuit, comprising:

an instruction cache operable to hold at least an instruction;

a decoder configured to receive at least one of the instructions and to generate, based thereon, a decoder sequence of at least one operation;

a basic block cache configured to hold a basic block trace that includes a basic block sequence of at least one of the ops, where the basic block sequence is derived from at least one of the decoder sequences and includes at most one conditional control transfer op;

a multi-block cache operable to hold a multi-block block trace that includes a multi-block sequence consisting of at least one of the ops derived from two or more smaller op sequences; and

a sequencer configured to:

generate a prediction for the result of a particular conditional control transfer op;

select, based on the predicted result, a next sequence of operations to be provided to a back end portion after the particular conditional branch operation; and

provide an indication of the next sequence to the instruction cache, the basic block cache, and the multi-block cache;

where the instruction cache, the basic block cache, and the multi-block cache are configurable such that the instruction cache provides at least one of the program instructions to the decoder, which provides the corresponding sequence of ops to the basic block cache, which stores the op sequence regardless of the state of the basic block cache; and

where the instruction cache, the decoder, and the basic block cache are also configurable such that the instruction cache provides at least one of the program instructions to the decoder, which provides the corresponding sequence of operations to the basic block cache, which stores the op sequence only after the basic block cache has determined that it does not contain the ops corresponding to the next sequence indication.

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 Jan 16, 2008
From: THAIK, RICHARD WIN, MR.; FAVOR, JOHN GREGORY, MR.; ROWLANDS, JOSEPH BYRON, MR.; SHAR, LEONARD ERIC, MR.
To: MONTALVO SYSTEMS, INC.
Reel/Frame 020373/0346 →