IP Library Granted Patent US 12,373,216
Granted Patent B2
US 12,373,216 · App. 18/427,411 · Granted Jul 29, 2025

Conditional branch instructions

Inventors: Alexander Tessarolo (Lindfield, AU); Venkatesh Natarajan (Bangalore, IN); Alan Davis (Sugar Land, TX)
Assignee: Texas Instruments Incorporated
G06F9/3804G06F9/30058G06F9/30061G06F9/323
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,373,216
App. No.
18/427,411
Granted
Jul 29, 2025
Kind
B2
Abstract

Various embodiments of the present disclosure relate to conditional branch instructions to support software pipelining techniques. In an example embodiment, a system including instruction fetch circuitry, decoder circuitry, and conditional branch circuitry is provided. The instruction fetch circuitry is configured to fetch a conditional branch instruction from memory and provide the instruction to the decoder circuitry. The instruction includes an iteration count and multiple branch destinations. The branch destinations include two or more branch destinations corresponding to conditions against which the conditional branch circuitry evaluates the iteration count. The decoder circuitry is configured to cause the conditional branch circuitry to select a branch destination, of the two or more branch destinations, based on a comparison of the iteration count to each of the conditions and cause the instruction fetch circuitry to fetch an indication of an instruction from a memory location stored at the selected branch destination.

Claims (38)

1. A system, comprising:

instruction fetch circuitry;

decoder circuitry coupled to the instruction fetch circuitry; and

conditional branch circuitry coupled to the decoder circuitry;

wherein the instruction fetch circuitry is configured to:

fetch a conditional branch instruction from a memory, wherein the conditional branch instruction specifies an iteration count and two or more branch destinations, corresponding to conditions against which the conditional branch circuitry evaluates the iteration count; and

provide the conditional branch instruction to the decoder circuitry; and

wherein the decoder circuitry is configured to cause the conditional branch circuitry to:

select a branch destination, of the two or more branch destinations, based on a comparison of the iteration count to each of the conditions; and

cause the instruction fetch circuitry to fetch an indication of an instruction from a memory location stored at the selected branch destination.

2. The system of claim 1 , wherein the decoder circuitry is further configured to cause the conditional branch circuitry to perform the comparison of the iteration count to each of the conditions, wherein each condition of the conditions corresponds to a branch destination of the two or more branch destinations.

3. The system of claim 1 , wherein the iteration count is based on a number of remainder operations resulting after performing a loop instruction a number of times.

4. The system of claim 3 , wherein the instruction fetch circuitry is further configured to fetch the loop instruction from the memory and provide the loop instruction to the decoder circuitry.

5. The system of claim 4 , wherein the decoder circuitry is further configured to cause conditional branch circuitry to perform the loop instruction the number of times and the conditional branch circuitry to decrement the iteration count each time the conditional branch circuitry performs the loop instruction.

6. The system of claim 1 , wherein the conditional branch instruction further identifies a field.

7. The system of claim 1 , wherein the instruction at the memory location stored at the selected branch destination corresponds to a number of remainder operations.

8. The system of claim 1 , further comprising the memory.

9. One or more computer-readable storage media, comprising:

program instructions stored thereon comprising a conditional branch instruction that specifies an iteration count and two or more branch destinations corresponding to conditions against which a processor evaluates the iteration count, wherein the program instructions, when read and executed by a processing system, direct the processor to:

select a branch destination, of the two or more branch destinations, based on a comparison of the iteration count to each of the conditions; and

fetch an indication of an instruction from a memory location stored at the selected branch destination.

10. The one or more computer-readable storage media of claim 9 , wherein the program instructions further direct the processor to perform the comparison of the iteration count to each of the conditions, wherein each condition of the conditions corresponds to a branch destination of the two or more branch destinations.

11. The one or more computer-readable storage media of claim 9 , wherein the iteration count is based on a number of remainder operations resulting after performing a loop instruction a number of times.

12. The one or more computer-readable storage media of claim 11 , wherein the program instructions further comprise a loop instructions.

13. The one or more computer-readable storage media of claim 12 , wherein the program instructions further direct the processor to perform the loop instruction the number of times and decrement the iteration count each time the loop instruction is performed.

14. The one or more computer-readable storage media of claim 9 , wherein the conditional branch instruction further identifies a field.

15. The one or more computer-readable storage media of claim 9 , wherein the instruction at the memory location stored at the selected branch destination corresponds to a number of remainder operations.

16. A method, comprising:

receiving, instruction fetch circuitry, a conditional branch instruction from memory;

performing a comparison of an iteration count specified by the conditional branch instruction to each of multiple conditions corresponding to two or more branch destinations specified by the conditional branch instruction;

selecting a branch destination, of the two or more branch destinations, based on the result of the comparison; and

causing the instruction fetch circuitry to fetch an indication of an instruction from a memory location stored at the selected branch destination.

17. The method of claim 16 , wherein the iteration count is based on a number of remainder operations resulting after performing a loop instruction a number of times.

18. The method of claim 17 , further comprising receiving, via the instruction fetch circuitry, the loop instruction from the memory.

19. The method of claim 18 , further comprising:

performing the loop instruction the number of times; and

decrementing the iteration count each time the loop instruction is performed.

20. The method of claim 16 , wherein the instruction at the memory location stored at the selected branch destination corresponds to a number of remainder operations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: TESSAROLO, ALEXANDER; NATARAJAN, VENKATESH; DAVIS, ALAN
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 066673/0175 →
Continuity (2)
Provisional Application 63532941 · Aug 16, 2023
Related Publication 20250060965A1 · Feb 20, 2025
References Cited (8)
US 20070234019A1 · Terashima · 2007 [cited by examiner]
US 20080313443A1 · Terashima · 2008 [cited by examiner]
US 20090177874A1 · Terashima · 2009 [cited by examiner]
US 20140189296A1 · Ould-Ahmed-Vall · 2014 [cited by examiner]
US 20190079770A1 · Grocutt · 2019 [cited by examiner]
US 20200341765A1 · Ogawa · 2020 [cited by examiner]
US 20240086295A1 · Ogawa · 2024 [cited by examiner]
US 20240202002A1 · Ido · 2024 [cited by examiner]