IP Library › Granted Patent US 12,019,559
Granted Patent B2
US 12,019,559 · App. 18/348,047 · Granted Jun 25, 2024

Method and apparatus for dual issue multiply instructions

Inventors: Timothy David Anderson (University Park, TX); Mujibur Rahman (Plano, TX)
Assignee: Texas Instruments Incorporated
G06F12/1045G06F7/24G06F7/487G06F7/4876G06F7/49915G06F7/53G06F7/57G06F9/3001G06F9/30014G06F9/30021G06F9/30032G06F9/30036G06F9/30065G06F9/30072G06F9/30098G06F9/30112G06F9/30145G06F9/30149G06F9/3016G06F9/32G06F9/345G06F9/3802G06F9/3818G06F9/383G06F9/3836G06F9/3851G06F9/3856G06F9/3867G06F9/3887G06F9/48G06F11/00G06F11/1048G06F12/0862G06F12/0875G06F12/0897G06F12/1009G06F17/16H03H17/0664G06F9/30018G06F9/325G06F9/381G06F9/3822G06F11/10G06F15/7807G06F15/781G06F2212/452G06F2212/60G06F2212/602G06F2212/68
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,019,559
App. No.
18/348,047
Granted
Jun 25, 2024
Kind
B2
Abstract

Various configurations of processors are provided. In a configuration, the processor comprises first and second multiplication unit. Each of these multiplication units includes carry-save adder circuitry with a respective outputs, partial product alignment multiplexing logic coupled to the outputs of the associated carry-save adder circuitry. The processor further comprises communication paths coupled between the outputs of the carry-save adder circuitry of the first multiplication unit and the partial product alignment multiplexing logic of the second multiplication unit. In other configurations, each of the first and second multiplication units may include one or more instances of masking logic, one or more instances of a multiplier array coupled to the associated instance(s) of masking logic, and one or more instances of a multiplexer set coupled to the associated instance(s) of multiplier array(s). Each of multiplexer set instance(s) of a particular multiplication unit is coupled to the carry-save adder circuitry of that multiplication unit.

Claims (93)

1. A processor comprising:

a first multiplication unit including:

first carry-save adder circuitry including outputs; and

first partial product alignment multiplexing logic coupled to the outputs of the first carry-save adder circuitry;

a second multiplication unit including:

second carry-save adder circuitry including outputs;

second partial product alignment multiplexing logic coupled to the outputs of the second carry-save adder circuitry; and

communication paths coupled between the outputs of the first carry-save adder circuitry and the second partial product alignment multiplexing logic.

2. The processor of claim 1 , wherein:

the first partial product alignment multiplexing logic includes an output;

the first multiplication unit further includes a first carry-save adder coupled to the output of the first partial product alignment multiplexing logic;

the second partial product alignment multiplexing logic includes an output; and

the second multiplication unit further includes a second carry-save adder coupled to the output of the second partial product alignment multiplexing logic.

3. The processor of claim 2 , wherein:

the first carry-save adder is configured to add a first partial sum and a first partial carry received from the first partial product alignment multiplexing logic for a first dot product operation, a first finite impulse filter operation, or a first matrix multiplication operation; and

the second carry-save adder is configured to add a second partial sum and a second partial carry received from the second partial product alignment multiplexing logic for a second dot product operation, a second finite impulse filter operation, or a second matrix multiplication operation.

4. The processor of claim 2 , wherein:

the first carry-save adder includes an output;

the first multiplication unit further includes a first set of multiplexers coupled to the outputs of the first carry-save adder circuitry and the first carry-save adder;

the second carry-save adder includes an output; and

the second multiplication unit further includes a second set of multiplexers coupled to the outputs of the second carry-save adder circuitry and the second carry-save adder.

5. The processor of claim 4 , wherein:

the first carry-save adder is configured to generate a first partial sum and a first partial carry;

the first set of multiplexers is configured to, based on a first instruction being performed by the first multiplication unit, select the first partial sum and the first partial carry or select first bypass data from the first carry-save adder circuitry;

the second carry-save adder is configured to generate a second partial sum and a second partial carry; and

the second set of multiplexers is configured to, based on a second instruction being performed by the second multiplication unit, select the second partial sum and the second partial carry or select second bypass data from the second carry-save adder circuitry.

6. The processor of claim 4 , wherein:

the first set of multiplexers includes a first set of four 64-bit wide multiplexers; and

the second set of multiplexers includes a second set of four 64-bit wide multiplexers.

7. The processor of claim 4 , wherein:

the first set of multiplexers includes outputs;

the first multiplication unit further comprises a first adder coupled to the outputs of the first set of multiplexers;

the second set of multiplexers includes outputs; and

the second multiplication unit further comprises a second adder coupled to the outputs of the second set of multiplexers.

8. The processor of claim 7 , wherein:

the first adder includes an output;

the first multiplication unit further includes a first final result multiplexer coupled to the output of the first adder and configured to produce a first final result;

the second adder includes an output; and

the second multiplication unit further includes a second final result multiplexer coupled to the output of the second adder and configured to produce a second final result.

9. The processor of claim 1 , wherein the first and second multiplication units are configured to operate together to complete a dual issue instruction, and the communication paths are used to complete the dual issue instruction.

10. A processor of claim 1 , comprising:

a first multiplication unit including:

first masking logic;

a first array of multipliers coupled to the first masking logic;

a first set of multiplexers coupled to the first array of multipliers;

first carry-save adder circuitry coupled to the first set of multiplexers; and

first partial product alignment multiplexing logic coupled to the first carry-save adder circuitry; and

a second multiplication unit including:

second masking logic;

a second array of multipliers coupled to the second masking logic;

a second set of multiplexers coupled to the second array of multipliers;

second carry-save adder circuitry coupled to the second set of multiplexers; and

second partial product alignment multiplexing logic coupled to the second carry-save adder circuitry.

11. The processor of claim 10 , wherein the first multiplication unit includes first and second multiplication clusters, and the second multiplication unit includes third and fourth multiplication clusters.

12. The processor of claim 11 , wherein:

the first and second multiplication clusters include respective instances of: the first masking logic, the first array of multipliers, the first set of multiplexers, and the first carry-save adder circuitry; and

the third and fourth multiplication clusters include respective instances of: the second masking logic, the second array of multipliers, the second set of multiplexers, and the second carry-save adder circuitry.

13. The processor of claim 12 , wherein the first partial product alignment multiplexing logic is coupled to the respective instances of the first carry-adder circuitry, and the second partial product alignment multiplexing logic is coupled to the respective instances of the second carry-save adder circuitry.

14. The processor of claim 13 , further comprising:

communication paths coupled between outputs of the respective instances of the first carry-save adder circuitry and the second partial product alignment multiplexing logic.

15. The processor of claim 10 , wherein:

the first multiplication unit further includes a first carry-save adder coupled to the first partial product alignment multiplexing logic; and

the second multiplication unit further includes a second carry-save adder coupled to the second partial product alignment multiplexing logic.

16. A processor comprising:

a first multiplication unit including:

a first array of four multipliers including an output;

a second array of four multipliers including an output;

a first set of multiplexers coupled to the output of the first array of four multipliers, wherein the first set of multiplexers includes an output;

a second set of multiplexers coupled to the output of the second array of four multipliers, wherein the second set of multiplexers includes an output;

a first compressor coupled to the output of the first set of multiplexers, wherein the first compressor includes an output;

a second compressor coupled to the output of the second set of multiplexers, wherein the second compressor includes an output; and

first partial product alignment multiplexing logic coupled to the output of the first compressor and coupled to the output of the second compressor;

communication paths; and

a second multiplication unit coupled to the first partial product alignment multiplexing logic by the communication paths.

17. The processor of claim 16 , wherein the second multiplication unit includes:

a third array of four multipliers including an output;

a fourth array of four multipliers including an output;

a third set of multiplexers coupled to the output of the third array of four multipliers, wherein the third set of multiplexers includes an output;

a fourth set of multiplexers coupled to the output of the fourth array of four multipliers, wherein the fourth set of multiplexers includes an output;

a third compressor coupled to the output of the third set of multiplexers, wherein the third compressor includes an output;

a fourth compressor coupled to the output of the fourth set of multiplexers, wherein the fourth compressor includes an output; and

second partial product alignment multiplexing logic coupled to the output of the third compressor and coupled to the output of the fourth compressor,

wherein the communication paths couple the outputs of the first and second compressors to the second partial product alignment multiplexing logic.

18. The processor of claim 17 , wherein:

the first multiplication unit includes first masking logic configured to mask off unused bits in a first operand;

the first array of four multipliers is coupled to the first masking logic;

the second multiplication unit includes second masking logic configured to mask off unused bits in a second operand; and

the second array of four multipliers is coupled to the second masking logic.

19. The processor of claim 16 , wherein the first array of multipliers, the first set of multiplexers, and the first compressor are configured to perform:

four 16-by-16 multiplication operations;

one 32-by-32 multiplication operation;

one 32-by-32 complex multiplication operation; or

one 32-by-32 complex multiplication operation with one operand conjugated.

Continuity (4)
Continuation 17713002 · Apr 4, 2022
Continuation 16878608 · May 20, 2020
Provisional Application 62852870 · May 24, 2019
Related Publication 20230350813A1 · Nov 2, 2023