IP Library Granted Patent US 7,013,382
Granted Patent B1
US 7,013,382 · App. 10/002,817 · Granted Mar 14, 2006

Mechanism and method for reducing pipeline stalls between nested calls and digital signal processor incorporating the same

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,013,382
App. No.
10/002,817
Granted
Mar 14, 2006
Kind
B1
Abstract

For use in a wide-issue pipelined processor, a mechanism and method for reducing pipeline stalls between nested calls and supporting early prefetching of instructions in nested subroutines and a digital signal processor (DSP) incorporating the mechanism or the method. In one embodiment, the mechanism includes: (1) a program counter (PC) generator that generates return PC values for call instructions in a pipeline of the processor and (2) return PC storage, coupled to the PC generator and located in an execution core of said processor, that stores the return PC values and makes ones of the return PC values available to a PC of the processor upon execution of corresponding return instructions.

Claims (31)

1. For use in a wide-issue pipelined processor, a mechanism for reducing pipeline stalls between nested calls, comprising:

a program counter (PC) generator configured to generate return PC values for multiple call instructions in a pipeline of said processor; and

return PC storage, located in an execution core of said processor, coupled to said PC generator and including a PC queue and staging registers, said return PC storage configured to store said return PC values in said PC queue and, upon execution of a corresponding return instruction, make one of said return PC values available to a PC of said processor by employing said staging registers to track said corresponding return instruction while moving through stages in said pipeline.

2. The mechanism as recited in claim 1 wherein said PC generator is associated with an instruction issue unit of said processor.

3. The mechanism as recited in claim 1 wherein said PC generator generates each of said return PC values in a single clock cycle.

4. The mechanism as recited in claim 1 wherein said return PC queue has at least as many slots as a number of call instructions that a fetch/decode stage of said pipeline can decode prior to grouping.

5. The mechanism as recited in claim 1 wherein said return PC storage makes said one of said return PC values available to said PC of said processor as said corresponding return instruction is in an execution stage of said pipeline.

6. The mechanism as recited in claim 1 wherein said call instructions executed in a fetch/decode stage of said pipeline.

7. The mechanism as recited in claim 1 wherein said processor is a digital signal processor.

8. The mechanism as recited in claim 1 further comprising a selector configured to select and move said one of said return PC values from said PC queue to said staging registers upon said execution of said corresponding return instruction to make said one of said return PC values available for said PC.

9. The mechanism as recited in claim 8 where said selector is a multiplexer.

10. For use in a wide-issue pipelined processor, a method of reducing pipeline stalls between nested calls, comprising:

generating return PC values for call instructions in a pipeline of said processor;

storing said return PC values in a PC queue of a return PC storage having staging registers and located in an execution core of said processor; and

making one of said return PC values available to a PC of said processor upon execution of a corresponding return instruction by employing said staging registers to track said corresponding return instruction while moving through stages in said pipeline.

11. The method as recited in claim 10 wherein said generating is carried out in an instruction issue unit of said processor.

12. The method as recited in claim 10 wherein said generating comprises generating each of said return PC values in a single clock cycle.

13. The method as recited in claim 10 wherein said return PC queue has at least as many slots as a number of call instructions that a fetch/decode stage of said pipeline can decode prior to grouping.

14. The method as recited in claim 10 wherein said return PC storage makes said one of said return PC values available to said PC of said processor as said corresponding return instruction is in an execution stage of said pipeline.

15. The method as recited in claim 10 further comprising executing said call instructions in a fetch/decode stage of said pipeline.

16. The method as recited in claim 10 wherein said processor is a digital signal processor.

17. A digital signal processor, comprising:

a pipeline having stages capable of executing call instructions;

a wide-issue instruction issue unit;

a program counter (PC) generator configured to return PC values for multiple call instructions in a pipeline of said processor; and

return PC storage, located in an execution core of said processor, coupled to said PC generator and including a PC queue and staging registers, said return PC storage configured to store said return PC values in said PC queue and, upon execution of a corresponding return instruction, make one of said return PC values available to a PC of said processor by employing said staging registers to track said corresponding return instruction while moving through stages in said pipeline.

18. The DSP as recited in claim 17 wherein said PC generator is associated with an instruction issue unit of said DSP.

19. The DSP as recited in claim 17 wherein said PC generator generates each of said return PC values in a single clock cycle.

20. The DSP as recited in claim 17 wherein said return PC queue has at least as many slots as a number of call instructions that a fetch/decode stage of said pipeline can decode prior to grouping.

21. The DSP as recited in claim 17 wherein said return PC storage makes said one of said return PC values available to said PC of said processor as said corresponding return instruction is in an execution stage of said pipeline.

22. The DSP as recited in claim 17 wherein said call instructions are executed in a fetch/decode stage of said pipeline.

Assignments (7)
CHANGE OF ADDRESS Recorded Jan 8, 2021
From: VERISILICON HOLDINGS CO., LTD.
To: VERISILICON HOLDINGS CO., LTD.
Reel/Frame 054927/0651 →
CHANGE OF ADDRESS Recorded Mar 19, 2020
From: VERISILICON HOLDINGSCO., LTD.
To: VERISILICON HOLDINGSCO., LTD.
Reel/Frame 052189/0438 →
CHANGE OF NAME Recorded Aug 6, 2019
From: VERISILICON HOLDINGS (CAYMAN ISLANDS) CO. LTD.
To: VERISILICON HOLDINGS CO., LTD.
Reel/Frame 050122/0833 →
RELEASE OF SECURITY INTEREST Recorded Aug 6, 2019
From: LSI LOGIC CORPORATION
To: VERISILICON HOLDINGS CO., LTD.
Reel/Frame 049971/0525 →
SALE Recorded Nov 9, 2006
From: LSI LOGIC CORPORATION
To: VERISILICON HOLDINGS (CAYMAN ISLANDS) CO. LTD.
Reel/Frame 018639/0192 →
SECURITY INTEREST Recorded Jul 7, 2006
From: VERISILICON HOLDINGS (CAYMAN ISLANDS) CO., LTD.
To: LSI LOGIC CORPORATION
Reel/Frame 017906/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2001
From: NGUYEN, HUNG T.
To: LSI LOGIC CORPORATION, A CORPORATION OF DELAWARE
Reel/Frame 012357/0831 →