IP Library Granted Patent US 7,000,095
Granted Patent B2
US 7,000,095 · App. 10/238,993 · Granted Feb 14, 2006

Method and apparatus for clearing hazards using jump 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,000,095
App. No.
10/238,993
Granted
Feb 14, 2006
Kind
B2
Abstract

A method and apparatus for overlaying hazard clearing with a jump instruction within a pipeline microprocessor is described. The apparatus includes hazard logic to detect when a jump instruction specifies that hazards are to be cleared as part of a jump operation. If hazards are to be cleared, the hazard logic disables branch prediction for the jump instruction, thereby causing the jump instruction to proceed down the pipeline until it is finally resolved, and flushing the pipeline behind the jump instruction. Disabling of branch prediction for the jump instruction effectively clears all execution and/or instruction hazards that preceded the jump instruction. Alternatively, hazard logic causes issue control logic to stall the jump instruction for n-cycles until all hazards are cleared. State tracking logic may be provided to determine whether any instructions are executing in the pipeline that create hazards. If so, hazard logic performs normally. If not, state tracking logic disables the effect of the hazard logic.

Claims (29)

1. A pipelined microprocessor for executing an instruction to clear instruction hazards in conjunction with performing a jump, the pipelined microprocessor comprising:

issue control, for issuing instructions to be executed by the pipelined microprocessor, said issue control having the ability to stall issuance of instructions for n-cycles upon receipt of a stall indication signal; and

jump with hazard baffler tracking logic, coupled to said issue control, for detecting when the instruction to clear instruction hazards in conjunction with performing a jump is to be executed, and when it is, for providing the stall indication signal to said issue control;

wherein said jump with hazard baffler tracking logic distinguishes between jump instructions that do not clear instruction hazards and the instruction to clear instruction hazards in conjunction with performing a jump.

2. The pipelined microprocessor as recited in claim 1 wherein by detecting when the instruction to clear instruction hazards in conjunction with performing a jump is to be executed, and stalling issuance of the instruction for n-cycles, all instruction hazards within the pipelined microprocessor are cleared.

3. The pipelined microprocessor as recited in claim 2 wherein the instruction hazards are cleared prior to the time a consuming instruction requires the result from a producing instruction that created a hazard.

4. The pipelined microprocessor as recited in claim 1 wherein the instruction hazards are hazards created by the instruction of a one instruction (the producer) and seen by the instruction of another instruction (the consumer).

5. The pipelined microprocessor as recited in claim 1 wherein the number of n-cycles that are stalled by said issue control depends on the number of cycles within the pipelined microprocessor required to clear all instruction hazards.

6. The pipelined microprocessor as recited in claim 1 wherein the number of n-cycles that are stalled by said issue control is predefined within said issue control.

7. The pipelined microprocessor as recited in claim 1 wherein the jump instruction to clear instruction hazards in conjunction with performing a jump comprises a hint field for designating whether instruction hazards are to be cleared.

8. A pipelined microprocessor for executing an instruction to clear instruction hazards in conjunction with performing a jump, the pipelined microprocessor comprising:

issue control, for issuing instructions to be executed by the pipelined microprocessor, said issue control having the ability to stall issuance of instructions for n-cycles upon receipt of a stall indication signal;

jump with hazard barrier tracking logic, coupled to said issue control, for detecting when the instruction to clear instruction hazards in conjunction with performing a jump is to be executed, and when it is, for providing the stall indication signal to said issue control; and

state change tracking logic, coupled to said issue control, for detecting when instructions executed by the pipelined microprocessor are of a type to create instruction hazards.

9. The pipelined microprocessor as recited in claim 8 wherein said state change tracking logic tracks progress of instructions detected as being of a type that create instruction hazards.

10. The pipelined microprocessor as recited in claim 8 wherein said state change tracking logic provides a signal to said issue control when an instruction is executing within the pipelined microprocessor that is of a type that creates an instruction hazard.

11. The pipelined microprocessor as recited in claim 10 wherein said issue control stalls issuance of the instruction to clear instruction hazards in conjunction with performing a jump when it receives said signal from said state change tracking logic, and said stall indication signal from said jump with hazard barrier tracking logic.

12. The pipelined microprocessor as recited in claim 11 wherein said issue control issues the instruction to clear instruction hazards in conjunction with performing a jump when said signal from said state change tracking logic indicates that all instruction hazards are cleared.

13. A pipelined microprocessor having hazard clearing logic, the pipelined microprocessor comprising:

branch prediction logic, for predicting a target address for causing the pipelined microprocessor to jump to said predicted target address, prior to said jump instruction completing instruction;

jump with hazard barrier tracking logic, coupled to said branch prediction logic, for detecting when said jump instruction indicates that hazards are to be cleared, and when said jump instruction indicates that hazards are to be cleared, for signaling said branch prediction logic to disable branch prediction for said jump instruction; and

state change tracking logic, coupled to said branch prediction logic, for determining whether instructions are executing within the pipelined microprocessor that produce instruction hazards.

14. The pipelined microprocessor as recited in claim 13 wherein said jump with hazard barrier tracking logic signals said branch prediction logic to disable branch prediction for said jump instruction whether or not an actual hazard exists within the pipelined microprocessor.

15. The pipelined microprocessor as recited in claim 13 wherein said jump instruction specifies said target address and that instruction hazards are to be cleared.

16. The pipelined microprocessor as recited in claim 13 wherein said branch prediction logic is located within a fetch stage of the pipelined microprocessor.

17. The pipelined microprocessor as recited in claim 13 wherein when said branch prediction logic is disabled for said jump instruction, it does not cause the pipelined microprocessor to jump to said predicted target address.

18. The pipelined microprocessor as recited in claim 17 wherein the pipelined microprocessor jumps to a target address specified by said jump instruction when said jump instruction completes execution.

19. The pipelined microprocessor as recited in claim 13 wherein if said state change tracking logic determines that instructions are executing within the pipelined microprocessor that produce instruction hazards, said state change tracking logic signals said branch prediction logic.

20. The pipelined microprocessor as recited in claim 19 wherein said branch prediction logic disables branch prediction for said jump instruction only if it receives said signal from said state change tracking logic.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 046588/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 046589/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: MIPS TECH LIMITED
To: MIPS TECH, LLC
Reel/Frame 046589/0726 →
CHANGE OF NAME Recorded May 1, 2017
From: MIPS TECHNOLOGIES, INC.
To: IMAGINATION TECHNOLOGIES, LLC
Reel/Frame 042375/0221 →