IP Library Granted Patent US 10,445,101
Granted Patent B2
US 10,445,101 · App. 15/224,810 · Granted Oct 15, 2019

Controlling processing of instructions in a processing pipeline

Inventor: Spyros Lyberis (Cambridge, GB)
Assignee: ARM Limited
G06F9/3838G06F9/30032G06F9/30072G06F9/3836
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 10,445,101
App. No.
15/224,810
Granted
Oct 15, 2019
Kind
B2
Abstract

In a processing pipeline, hazards involving conditional instructions may be ignored when the conditional instruction would fail its test condition and there are no earlier instructions than the conditional instruction remaining which could potentially update the condition status information used to evaluate the test condition.

Claims (22)

1. An apparatus comprising:

an in-order processing pipeline to perform in-order execution of instructions, wherein in response to a conditional instruction, the in-order processing pipeline is configured to perform a conditional operation dependent on whether condition status information of the apparatus passes or fails a test condition specified by the conditional instruction; and

hazard detection circuitry to control the in-order processing pipeline to delay processing of a given instruction when a hazard condition is detected between the given instruction and another instruction;

wherein when the given instruction or the other instruction is a conditional instruction for which the hazard detection circuitry detects that a current value of the condition status information fails the test condition and there are no earlier instructions than the conditional instruction remaining which have the potential to update the condition status information, the hazard detection circuitry is configured to allow the given instruction to proceed regardless of whether the hazard condition is detected between the given instruction and the other instruction.

2. The apparatus according to claim 1 , wherein the hazard detection circuitry is configured to detect a first type of hazard condition between the given instruction at a first pipeline stage of the in-order processing pipeline and the other instruction at a subsequent pipeline stage of the in-order processing pipeline.

3. The apparatus according to claim 2 , wherein the hazard detection circuitry is configured to detect the first type of hazard condition when the other instruction specifies a destination register that is the same as a source register of the given instruction.

4. The apparatus according to claim 2 , wherein in response to the first type of hazard condition, the hazard detection circuitry is configured to stall the given instruction for at least one cycle unless the given instruction or the other instruction is said conditional instruction for which the hazard detection circuitry detects that the current value of the condition status information fails the test condition and there are no earlier instructions than the conditional instruction remaining which have the potential to update the condition status information.

5. The apparatus according to claim 1 , wherein the in-order processing pipeline comprises first and second instruction slots to process first and second instructions in parallel.

6. The apparatus according to claim 5 , wherein the hazard detection circuitry is configured to detect a second type of hazard condition between the given instruction in the second instruction slot and the other instruction in the first instruction slot.

7. The apparatus according to claim 6 , wherein the hazard detection circuitry is configured to detect the second type of hazard condition when one of the given instruction and the other instruction specifies a destination register which is the same as a source register of the other of the given instruction and the other instruction.

8. The apparatus according to claim 6 , wherein the hazard detection circuitry is configured to detect the second type of hazard condition when the given instruction and the other instruction both require a given processing circuit unit at a same stage of the in-order processing pipeline.

9. The apparatus according to claim 6 , wherein in response to the second type of hazard condition, the hazard detection circuitry is configured to suppress issuing of the given instruction in the second instruction slot unless the given instruction is said conditional instruction for which the hazard detection circuitry detects that the current value of the condition status information fails the test condition and there are no earlier instructions than the conditional instruction remaining which have the potential to update the condition status information.

10. The apparatus according to claim 1 , wherein the hazard detection circuitry is configured to receive an indication from at least one pipeline stage of the in-order processing pipeline indicating whether a current instruction at that pipeline stage is a condition status updating instruction having the potential to update the condition status information.

11. The apparatus according to claim 1 , wherein the condition status information comprises at least one condition flag indicative of at least one property of a previous processing result generated by the in-order processing pipeline.

12. A data processing method comprising:

processing instructions using an in-order processing pipeline configured to perform in-order execution of instructions, wherein in response to a conditional instruction, the processing pipeline is configured to perform a conditional operation dependent on whether condition status information passes or fails a test condition specified by the conditional instruction;

detecting a hazard condition between a given instruction and another instruction; and

delaying processing of the given instruction when the hazard condition is detected unless the given instruction or the other instruction is a conditional instruction for which the hazard detection circuitry detects that a current value of the condition status information fails the test condition and there are no earlier instructions than the conditional instruction remaining which have the potential to update the condition status information.

13. An apparatus comprising:

means for in-order pipelined processing of instructions, where said means for in-order pipelined processing is configured to perform in-order execution of instructions, wherein in response to a conditional instruction, the means for pipelined processing is configured to perform a conditional operation dependent on whether condition status information of the apparatus passes or fails a test condition specified by the conditional instruction; and

means for controlling the means for in-order pipelined processing to delay processing of a given instruction when a hazard condition is detected between the given instruction and another instruction;

wherein when the given instruction or the other instruction is a conditional instruction for which the means for controlling detects that a current value of the condition status information fails the test condition and there are no earlier instructions than the conditional instruction remaining which have the potential to update the condition status information, the means for controlling is configured to allow the given instruction to proceed regardless of whether the hazard condition is detected between the given instruction and the other instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2016
From: LYBERIS, SPYROS
To: ARM LIMITED
Reel/Frame 039302/0448 →
Priority Claims (1)
GR 20160100017 · Jan 21, 2016 · national
Continuity (1)
Related Publication 20170212764A1 · Jul 27, 2017