IP Library Granted Patent US 7,231,510
Granted Patent B1
US 7,231,510 · App. 10/007,498 · Granted Jun 12, 2007

Pipelined multiply-accumulate unit and out-of-order completion logic for a superscalar digital signal processor and method of operation thereof

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,231,510
App. No.
10/007,498
Granted
Jun 12, 2007
Kind
B1
Abstract

A mechanism for, and method of, processing multiply-accumulate instructions with out-of-order completion in a pipeline, for use in a processor having an at least four-wide instruction issue architecture, and a digital signal processor (DSP) incorporating the mechanism or the method. In one embodiment, the mechanism including: (1) a multiply-accumulate unit (MAC) having an initial multiply stage and a subsequent accumulate stage and (2) out-of-order completion logic, associated with the MAC, that causes interim results produced by the multiply stage to be stored when the accumulate stage is unavailable and allows younger instructions to complete before the multiply-accumulate instructions.

Claims (36)

1. For use in a processor having an at least four-wide instruction issue architecture, a mechanism for pipeline processing multiply-accumulate instructions with out-of-order completion, comprising:

instruction grouping logic implementing instruction grouping rules;

a multiply-accumulate unit (MAC) having an initial multiply stage and a subsequent accumulate stage; and

out-of-order completion logic, associated with said MAC, that causes interim results produced by said multiply stage to be stored when said accumulate stage is unavailable and allows younger instructions to complete before said multiply-accumulate instructions, said multiply-accumulate instructions being grouped based on said rules, wherein said rules comprise:

a rule of never grouping an instruction that depends on a result of an older instruction, with the following exceptions:

except wherein said instruction is a younger instruction and is a store or push operation, and wherein said older instruction is not a MAC instruction, or

except wherein said younger instruction is a multiply accumulate operation and said older instruction updates said accumulate stage.

2. The mechanism as recited in claim 1 wherein said initial multiply stage and said subsequent accumulate stage are single clock cycle stages.

3. The mechanism as recited in claim 1 wherein said out-of-order completion logic is contained in a writeback stage of a pipeline in said processor.

4. The mechanism as recited in claim 1 wherein said out-of-order completion logic writes back said interim results to at least one register in said MAC before said multiply-accumulate instructions arrive at said accumulation stage of said MAC.

5. The mechanism as recited in claim 1 wherein said interim results are unavailable to an external program executing in said processor.

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

7. For use in a processor having an at least four-wide instruction issue architecture, a method of pipeline processing multiply-accumulate instructions with out-of-order completion, comprising:

providing a multiply-accumulate unit (MAC) having an initial multiply stage and a subsequent accumulate stage;

causing interim results produced by said multiply stage to be stored when said accumulate stage is unavailable; and

completing younger instructions before said multiply-accumulate instructions, said multiply-accumulate instructions being grouped according to grouping rules based on said causing and said allowing, wherein said rules comprise:

a rule of never grouping an instruction that depends on a result of an older instruction, with the following exceptions:

except wherein said instruction is a younger instruction and is a store or push operation, and wherein said older instruction is not a MAC instruction, or

except wherein said younger instruction is a multiply accumulate operation and said older instruction updates said accumulate stage.

8. The method as recited in claim 7 wherein said initial multiply stage and said subsequent accumulate stage are single clock cycle stages.

9. The method as recited in claim 7 wherein said causing is carried out in a writeback stage of a pipeline in said processor.

10. The method as recited in claim 7 wherein said causing comprises writing back said interim results to at least one register in said MAC before said multiply-accumulate instructions arrive at said accumulation stage of said MAC.

11. The method as recited in claim 7 wherein said interim results are unavailable to an external program executing in said processor.

12. The method as recited in claim 7 wherein said processor is a digital signal processor.

13. A digital signal processor (DSP), comprising:

a pipeline having stages and capable of processing multiply-accumulate instructions;

an instruction issue unit, containing grouping logic implementing instruction grouping rules, and at least four-wide instruction issue logic;

a multiply-accumulate unit (MAC), coupled to said instruction issue logic, having an initial multiply stage and a subsequent accumulate stage; and

out-of-order completion logic, associated with said pipeline, that causes interim results produced by said multiply stage to be stored when said accumulate stage is unavailable and allows younger instructions to complete before said multiply-accumulate instructions, said multiply-accumulate instructions being grouped according to said rules wherein said rules comprise:

a rule of never grouping an instruction that depends on a result of an older instruction, with the following exceptions:

except wherein said instruction is a younger instruction and is a store or push operation, and wherein said older instruction is not a MAC instruction, or

except wherein said younger instruction is a multiply accumulate operation and said older instruction updates said accumulate stage.

14. The DSP as recited in claim 13 wherein said initial multiply stage and said subsequent accumulate stage are single clock cycle stages.

15. The DSP as recited in claim 13 wherein said out-of-order completion logic is contained in a writeback stage of said pipeline.

16. The DSP as recited in claim 13 wherein said out-of-order completion logic writes back said interim results to at least one register in said MAC before said multiply-accumulate instructions arrive at said accumulation stage of said MAC.

17. The DSP as recited in claim 13 wherein said interim results are unavailable to an external program executing in said DSP.

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 13, 2001
From: NGUYEN, HUNG T.; WICHMAN, SHANNON A.
To: LSI LOGIC CORPORATION
Reel/Frame 012370/0838 →