IP Library Granted Patent US 12,411,694
Granted Patent B2
US 12,411,694 · App. 18/314,264 · Granted Sep 9, 2025

Processor having adaptive pipeline with latency reduction logic that selectively executes instructions to reduce latency

Inventors: Christian Wiencke (Garching, DE); Shrey Sudhir Bhatia (Freising, DE); Jeroen Vliegen (Fahrenzhausen, DE)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F9/3873G06F9/3838G06F9/3867
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 12,411,694
App. No.
18/314,264
Granted
Sep 9, 2025
Kind
B2
Abstract

A system and method for reducing pipeline latency. In one embodiment, a processing system includes a processing pipeline. The processing pipeline includes a plurality of processing stages. Each stage is configured to further processing provided by a previous stage. A first of the stages is configured to perform a first function in a pipeline cycle. A second of the stages is disposed downstream of the first of the stages, and is configured to perform, in a pipeline cycle, a second function that is different from the first function. The first of the stages is further configured to selectably perform the first function and the second function in a pipeline cycle, and bypass the second of the stages.

Claims (52)

1. A method, comprising:

identifying a first instruction being executed in a pipeline stage of an instruction processing pipeline;

determining whether to perform an execute function on the first instruction in an execution stage or in a first stage, based on determining whether performing the execute function in the execution stage would cause a delay in execution of a second instruction that depends on the first instruction; and

based on determining to perform the execute function on the first instruction in the first stage, stalling the instruction processing pipeline for a single pipeline cycle.

2. The method of claim 1 , wherein the instruction processing pipeline comprises:

a plurality of stages including:

a fetch stage comprising circuitry configured to perform a fetch function on the first instruction;

a decode stage coupled to the fetch stage and comprising circuitry configured to perform a decode function on the first instruction; and

the execution stage, wherein the execution stage is coupled to the decode stage and comprises circuitry configured to perform the execute function on the first instruction.

3. The method of claim 2 , further comprising:

selecting the fetch stage or the decode stage to be the first stage.

4. The method of claim 2 , wherein one of the fetch stage or the decode stage comprises a latency reduction circuit, the latency reduction circuit comprising circuitry that performs the execute function on the first instruction in a respective one of the fetch stage or the decode stage.

5. The method of claim 1 , further comprising:

based on determining to perform the execute function on the first instruction in the first stage,

performing, by a latency reduction circuit separate from the execution stage, the execute function on the first instruction in a decode stage.

6. The method of claim 1 , further comprising:

based on performing, by a latency reduction circuit, the execute function on the first instruction, storing, by the latency reduction circuit, a result of the execute function in a memory.

7. The method of claim 6 , further comprising:

determining whether the result is written to the memory by a writeback stage or by the latency reduction circuit.

8. The method of claim 1 , further comprising:

performing, by a latency reduction circuit, the execute function on the first instruction in a decode stage; and

writing, by the latency reduction circuit, a result of the execute function produced in the decode stage.

9. A device comprising:

a plurality of stages including:

a fetch stage including circuitry configured to fetch a first instruction;

a decode stage coupled to the fetch stage and including circuitry configured to decode the first instruction; and

an execution stage coupled to the decode stage and including circuitry configured to execute the first instruction;

a latency reduction circuit included within the decode stage, the latency reduction circuit including circuitry configured to execute the first instruction; and

a pipeline control circuit coupled to the latency reduction circuit and configured to:

determine whether to execute the first instruction by the execution stage or by the latency reduction circuit of the decode stage, based on determining whether executing the first instruction by the execution stage would cause a delay in execution of a second instruction that depends on the first instruction; and

based on determining to execute the first instruction by the latency reduction circuit, stall operations of the plurality of stages for a single pipeline cycle.

10. The device of claim 9 , wherein the latency reduction circuit further comprises circuitry configured to write a result of the execution of the first instruction to a memory.

11. The device of claim 9 , wherein the plurality of stages includes a write-back stage, and wherein the pipeline control circuit is configured to:

based on determining to execute the first instruction by the execution stage,

cause the execution stage to execute the first instruction; and

cause the write-back stage to write a result of the execution of the first instruction to a memory.

12. A method comprising:

performing a first determination as to whether performing an execute operation on a first instruction using an execute stage delays a second instruction that depends on the first instruction;

based on the first determination, performing a second determination as to whether to cause (a) the execute stage or (b) execute logic within a fetch stage or a decode stage to perform the execute operation on the first instruction; and

based on the second determination, performing a third determination as to whether or not to stall the fetch stage, the decode stage, and the execute stage.

13. The method of claim 12 , wherein:

the execute logic performs a corresponding execute operation on each of a subset of a set of instructions; and

the execute stage performs a corresponding execute operation on each of a remainder of the set of instructions.

14. The method of claim 13 , wherein the subset of the set of instructions is a set of flow control instructions.

15. The method of claim 12 , further comprising:

determining whether to cause (a) a writeback stage or (b) writeback logic within the fetch stage or the decode stage to perform a writeback operation on the first instruction, wherein the writeback stage is coupled to the execute stage and is different from the writeback logic.

16. The method of claim 15 , wherein the fetch stage includes:

fetch logic that performs a fetch operation;

decode logic that performs a decode operation; and

the execute logic.

17. The method of claim 16 , wherein the decode stage is coupled to the fetch stage and is different from the decode logic of the fetch stage, and performs the decode operation.

18. The method of claim 16 , wherein the execute stage is coupled to the decode stage and is different from the execute logic.

Continuity (2)
Continuation 13974571 · Aug 23, 2013
Related Publication 20230273797A1 · Aug 31, 2023
References Cited (24)
US 5471626A · Carnevale · 1995 [cited by applicant]
US 5619668A · Zaidi · 1997 [cited by applicant]
US 5649174A · Dockser · 1997 [cited by applicant]
US 5778250A · Dye · 1998 [cited by applicant]
US 5802331A · van Berkel · 1998 [cited by applicant]
US 6018796A · Suzuki · 2000 [cited by applicant]
US 6839833B1 · Hartnett · 2005 [cited by applicant]
US 8806181B1 · O'Bleness · 2014 [cited by applicant]
US 9563432B2 · Segelken · 2017 [cited by applicant]
US 11645083B2 · Wiencke · 2023 [cited by examiner]
US 20020199085A1 · Norden · 2002 [cited by applicant]
US 20030208672A1 · Leenstra · 2003 [cited by applicant]
US 20030226000A1 · Rhoades · 2003 [cited by applicant]
US 20060095745A1 · Tran · 2006 [cited by applicant]
US 20070271449A1 · Lichtensteiger · 2007 [cited by applicant]
US 20080162891A1 · Pittman · 2008 [cited by applicant]
US 20080244234A1 · Seth · 2008 [cited by applicant]
US 20090138674A1 · Chang · 2009 [cited by applicant]
US 20090198970A1 · Emma · 2009 [cited by applicant]
US 20090292907A1 · Schwinn · 2009 [cited by applicant]
US 20090327670A1 · Orbach · 2009 [cited by applicant]
US 20140281423A1 · Caulfield · 2014 [cited by applicant]
Stokes, J., et al., “Inside the Machine, An Illustrated Introduction to Microprocessors and Computer Architecture,” No Starch Press, San Francisco, 7 pages. [cited by applicant]
Efthymiou, A., et al., “Adaptive Pipeline Structures for Speculation Control,” Proceedings of the Ninth International Symposium on Asynchronous Circuits and Systems, The Computer Society, IEEE, 10 pages. [cited by applicant]