IP Library Granted Patent US 7,725,683
Granted Patent B2
US 7,725,683 · App. 10/671,844 · Granted May 25, 2010

Apparatus and method for power optimized replay via selective recirculation of instructions

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,725,683
App. No.
10/671,844
Granted
May 25, 2010
Kind
B2
Abstract

A method and apparatus for power optimized replay. In one embodiment, the method includes the issuance of an instruction selected from a queue. Once issued, the instruction may be enqueued within a recirculation queue if completion of the instruction is blocked by a detected blocking condition. Once enqueued, instructions contained within the recirculation queue may be reissued once a blocking condition of an instruction within the recirculation queue is satisfied. Accordingly, a power optimized replay scheme as described herein optimizes power while retaining the advantages provided by selectively replaying of blocked instructions to improve power efficiency.

Claims (66)

1. A method comprising:

issuing a first instruction from a queue;

in response to detecting a blocking condition that prevents the first instruction from being completed, determining whether the blocking condition is a non-transient blocking condition or a transient blocking condition, a transient blocking condition having a shorter duration relative to a non-transient blocking condition;

in response to the blocking condition being a non-transient blocking condition,

enqueuing the first instruction within a recirculation queue,

setting a state of the first instruction in the recirculation queue to a blocked state to prevent the first instruction from being reissued from the recirculation queue, and

in response to detecting that the non-transient blocking condition no longer exists, changing the state of the first instruction in the recirculation queue to an unblocked state to permit the first instruction to be reissued from the recirculation queue; and

in response to the blocking condition being a transient blocking condition,

enqueuing the first instruction within the recirculation queue, and

setting the state of the first instruction in the recirculation queue to the unblocked state to permit the first instruction to be reissued from the recirculation queue,

wherein the blocking condition corresponds to a hazard in which the first instruction cannot execute until completion of a second instruction issued prior to the first instruction.

2. The method of claim 1 , wherein issuing the first instruction from the queue comprises:

arbitrating between a plurality of queues to select the queue;

selecting a current instruction from the queue; and

issuing the current instruction from the queue.

3. The method of claim 2 , wherein issuing the current instruction comprises:

determining a state of the current instruction; and

if the state of the current instruction is blocked, then

selecting an alternate queue from the plurality of queues, and

issuing an instruction from the alternate queue.

4. The method of claim 1 , wherein enqueuing the first instruction within the recirculation queue comprises:

placing the first instruction within the recirculation queue; and

storing the blocking condition.

5. The method of claim 1 , further comprising:

identifying blocking conditions of instructions within the recirculation queue;

determining whether any blocking condition of any instruction within the recirculation queue is satisfied; and

enabling reissuance of a given instruction from the recirculation queue by setting the state of the given instruction within the recirculation queue to the unblocked state if the blocking condition associated with the given instruction is satisfied.

6. The method of claim 1 , further comprising:

in response to engueuing the first instruction in the recirculation queue due to the blocking condition being a transient blocking condition,

resetting a state of all other instructions within the recirculation queue to the unblocked state.

7. The method of claim 1 , wherein the hazard corresponds to a data hazard or a resource hazard.

8. The method of claim 1 , wherein the recirculation queue is a first in, first out circular queue.

9. The method of claim 1 , wherein the non-transient blocking condition has a duration of 1 cycle.

10. An article of manufacture including a machine readable storage medium having computer executable instructions tangibly stored thereon the instructions for:

issuing a first instruction from a queue;

in response to detecting a blocking condition that prevents the first instruction from being completed, determining whether the blocking condition is a non-transient blocking condition or a transient blocking condition, a transient blocking condition having a shorter duration relative to a non-transient blocking condition;

in response to the blocking condition being a non-transient blocking condition,

enqueuing the first instruction within a recirculation queue,

setting a state of the first instruction in the recirculation queue to a blocked state to prevent the first instruction from being reissued from the recirculation queue, and

in response to detecting that the non-transient blocking condition no longer exists, changing the state of the first instruction in the recirculation queue to an unblocked state to permit the first instruction to be reissued from the recirculation queue; and

in response to the blocking condition being a transient blocking condition,

enqueuing the first instruction within the recirculation queue, and

setting the state of the first instruction in the recirculation queue to the unblocked state to permit the first instruction to be reissued from the recirculation queue,

wherein the blocking condition corresponds to a hazard in which the first instruction cannot execute until completion of a second instruction issued prior to the first instruction.

11. The article of manufacture of claim 10 , wherein issuing the first instruction from the queue comprises:

arbitrating between a plurality of queues to select the queue;

selecting a current instruction from the queue; and

issuing the current instruction from the queue.

12. The article of manufacture of claim 11 , wherein issuing the current instruction comprises:

determining a state of the current instruction; and

if the state of the current instruction is blocked, then

selecting an alternate queue from the plurality of queues, and

issuing an instruction from the alternate queue.

13. The article of manufacture of claim 10 , wherein enqueuing the first instruction within the recirculation queue comprises:

placing the first instruction within the recirculation queue; and

storing the blocking condition.

14. The article of manufacture of claim 10 , wherein the machine readable storage medium further comprises instructions for:

identifying blocking conditions of instructions within the recirculation queue;

determining whether any blocking condition of any instruction within the recirculation queue is satisfied; and

enabling reissuance of a given instruction from the recirculation queue by setting a state of the given instruction within the recirculation queue to the unblocked state if the blocking condition associated with the given instruction is satisfied.

15. The article of manufacture of claim 10 , wherein the machine readable storage medium further comprises instructions for:

in response to enqueuing the first instruction in the recirculation queue due to the blocking condition being a transient blocking condition,

resetting a state of all other instructions within the recirculation queue to the unblocked state.

16. The article of manufacture of claim 10 , wherein the hazard corresponds to a data hazard or a resource hazard.

17. The article of manufacture of claim 11 , wherein the recirculation queue is a first in, first out circular queue.

18. The article of manufacture of claim 10 , wherein the non-transient blocking condition has a duration of 1 cycle.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2006
From: INTEL CORPORATION
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 018515/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2003
From: JAMIL, SUJAT; NGUYEN, HANG; EDIRISOORIYA, SAMANTHA J.; MINER, DAVID E.; O'BLENESS, R. FRANK; TU, STEVEN J.
To: INTEL CORPORATION
Reel/Frame 014558/0860 →