IP Library › Granted Patent US 11,921,643
Granted Patent B2
US 11,921,643 · App. 17/690,344 · Granted Mar 5, 2024

Method and apparatus for dual multiplication units in a data path

Inventors: Mujibur Rahman (Plano, TX); Timothy David Anderson (University Park, TX); Soujanya Narnur (Austin, 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 11,921,643
App. No.
17/690,344
Granted
Mar 5, 2024
Kind
B2
Abstract

A processor is provided that includes a first multiplication unit in a first data path of the processor, the first multiplication unit configured to perform single issue multiply instructions, and a second multiplication unit in the first data path, the second multiplication unit configured to perform single issue multiply instructions, wherein the first multiplication unit and the second multiplication unit are configured to execute respective single issue multiply instructions in parallel.

Claims (90)

1. A system comprising:

a first multiplication unit;

a second multiplication unit;

a first data path including the first multiplication unit and the second multiplication unit; and

an instruction dispatch unit coupled to the first data path and configured to;

receive a first instruction including a first instruction type field indicating a dual issue instruction type;

dispatch the first instruction to the first multiplication unit and to the second multiplication unit in response to the first instruction type field indicating the dual issue instruction type;

receive a second instruction including a second instruction type field indicating a single issue instruction type; and

dispatch the second instruction to the first multiplication unit and not to the second multiplication unit in response to the second instruction t field indicating the single issue instruction type,

wherein the first multiplication unit and the second multiplication unit are configured to execute the first instruction to generate a first result, and

wherein the first multiplication unit is configured to execute the second instruction to generate a second result.

2. The system of claim 1 , further comprising:

a third multiplication unit;

a fourth multiplication unit; and

a second data path including the third multiplication unit and the fourth multiplication unit;

wherein the third multiplication unit is configured to execute a third instruction.

3. The system of claim 2 , wherein the third instruction includes a third instruction type field indicating one of the single issue instruction type and the dual issue instruction type.

4. The system of claim 2 , wherein the first data path is a scalar data path and the second data path is a vector data path.

5. The system of claim 1 , further comprising a processor configured to withhold issuing subsequent instructions to the second multiplication unit until the first instruction is completed.

6. The system of claim 1 , wherein:

the first multiplication unit includes a first number of multipliers;

a subset of the first number of multipliers executes the first instruction to generate the first result;

the first result includes a set of most significant bits and a set of least significant bits;

the set of least significant bits are communicated by the first multiplication unit;

the set of the most significant bits are communicated by the second multiplication unit.

7. The system of claim 1 , wherein the first instruction includes:

a destination field indicating a destination register for the first result;

a source field; and

an opcode field encoding a functional unit associated with the first instruction.

8. The system of claim 7 , wherein:

the destination field indicates a single register; and

a write to the single register is by the first multiplication unit.

9. The system of claim 7 , wherein:

the destination field indicates a register pair including a first register and a second register;

the first multiplication unit writes to the first register; and

the second multiplication unit writes to the second register.

10. The system of claim 7 , wherein:

the source field indicates a single register; and

a read to the single register is by the first multiplication unit and the second multiplication unit.

11. The system of claim 7 , wherein:

the source field indicates a register pair including a first register and a second register;

the first multiplication unit reads from the first register; and

the second multiplication unit reads from the second register.

12. A method comprising:

decoding, by a processor, a first instruction including a first instruction type field indicating a dual issue instruction type;

dispatching the first instruction to a first multiplication unit and to a second multiplication unit in response to the first instruction type field indicating the dual issue instruction type;

executing the first instruction by the first multiplication unit and the second multiplication unit in a first data path of the processor;

storing, by the processor, a first result of the first instruction in a first storage location indicated by the first instruction;

decoding, by the processor, a second instruction including a second instruction type field indicating a single issue instruction type;

dispatching the second instruction to the first multiplication unit and not to the second multiplication unit in response to the second instruction type field indicating the single issue instruction type;

executing the second instruction by the first multiplication unit; and

storing, by the processor, a second result of the second instruction in a second storage location indicated by the second instruction.

13. The method of claim 12 , further comprising:

decoding, by the processor, a third instruction having a third instruction type field indicating the single issue instruction type;

dispatching the third instruction to a third multiplication unit and not to the first multiplication unit or the second multiplication unit in response to the third instruction type field indicating the single issue instruction type;

executing the third instruction by the third multiplication unit in a second data path of the processor; and

storing, by the processor, a third result of the third instruction in a third storage location indicated by the third instruction.

14. The method of claim 13 , wherein:

the first data path is a scalar data path and the second data path is a vector data path; and

the processor is configured to withhold issuing subsequent instructions to the second multiplication unit until the first instruction is completed.

15. The method of claim 13 , wherein:

the first instruction includes:

a first destination field indicating a first destination register for the first result;

a first source field; and

a first opcode field encoding a first functional unit associated with the first instruction, wherein the first functional unit includes the first multiplication unit and the second multiplication unit; and

the second instruction includes:

a second destination field indicating a second destination register for the second result;

a second source field; and

a second opcode field encoding a second functional unit associated with the second instruction,

wherein the second functional unit includes the first multiplication unit and not the second multiplication unit.

16. The method of claim 15 , wherein:

the first destination field indicates a single register; and

a write to the single register is by the first multiplication unit.

17. The method of claim 15 , wherein:

the first destination field indicates a register pair including a first register and a second register;

the first multiplication unit writes to the first register; and

the second multiplication unit writes to the second register.

18. The method of claim 15 , wherein:

the first source field indicates a single register; and

a read to the single register is by the first multiplication unit and the second multiplication unit.

19. The method of claim 15 , wherein:

the first source field indicates a register pair including a first register and a second register;

the first multiplication unit reads from the first register; and

the second multiplication unit reads from the second register.

20. The method of claim 12 , wherein:

the first multiplication unit includes a first number of multipliers;

a subset of the first number of multipliers executes the first instruction to generate the first result;

the first result includes a set of most significant bits and a set of least significant bits;

the set of least significant bits are communicated by the first multiplication unit;

the set of the most significant bits are communicated by the second multiplication unit.

Continuity (3)
Continuation 16878603 · May 20, 2020
Provisional Application 62852870 · May 24, 2019
Related Publication 20220206802A1 · Jun 30, 2022