IP Library › Granted Patent US 12,443,541
Granted Patent B2
US 12,443,541 · App. 18/587,416 · Granted Oct 14, 2025

Multiple 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/30018G06F9/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/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,443,541
App. No.
18/587,416
Granted
Oct 14, 2025
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 (103)

1. A system comprising:

a first multiplication unit;

a second multiplication unit;

a third multiplication unit; and

a fourth multiplication unit;

wherein the first multiplication unit is configurable to receive a first instruction including a first instruction type field that indicates whether the first instruction is to be executed by more than one multiplication unit,

wherein the first multiplication unit and the second multiplication unit are configurable to execute the first instruction to generate a first result and a second result respectively in response to the first instruction type field indicating that the first instruction is to be executed by more than one multiplication unit,

wherein the first multiplication unit is configurable to provide a third result based on the first result and the second result,

wherein the third multiplication unit is configurable to receive a second instruction including a second instruction type field that indicates whether the second instruction is to be executed by more than one multiplication unit, and

wherein the third multiplication unit and the fourth multiplication unit are configurable to execute the second instruction to generate a fourth result in response to the second instruction type field indicating that the second instruction is to be executed by more than one multiplication unit.

2. The system of claim 1 , further comprising:

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

a vector data path including the third multiplication unit and the fourth multiplication unit.

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

4. The system of claim 3 , wherein the processor is configurable to withhold issuing subsequent instructions to the fourth multiplication unit until the second instruction is completed.

5. The system of claim 1 ,

wherein the first multiplication unit includes a first number of multipliers,

wherein a subset of the first number of multipliers is configurable to execute the first instruction to generate the first result,

wherein the first result is a set of most significant bits of the third result, and

wherein the second result is a set of least significant bits of the third result.

6. The system of claim 1 , wherein the second instruction includes:

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

a source field; and

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

7. The system of claim 6 ,

wherein the destination field indicates a single register, and

wherein a write to the single register is by the third multiplication unit.

8. The system of claim 6 ,

wherein the destination field indicates a register pair including a first register and a second register,

wherein the third multiplication unit writes to the first register, and

wherein the fourth multiplication unit writes to the second register.

9. The system of claim 6 ,

wherein the source field indicates a single register, and

wherein a read to the single register is made by the third multiplication unit and the fourth multiplication unit.

10. The system of claim 6 ,

wherein the source field indicates a register pair including a first register and a second register,

wherein the third multiplication unit is configurable to read from the first register, and

wherein the fourth multiplication unit is configurable to read from the second register.

11. The system of claim 1 , further comprising internal communication lines coupled to the first multiplication unit and the second multiplication unit,

wherein the first multiplication unit and the second multiplication unit are configurable to use the internal communication lines to execute the first instruction.

12. The system of claim 1 , wherein the first multiplication unit is configurable to store the first result in a storage location indicated by the first instruction.

13. A system comprising:

a first multiplication unit;

a second multiplication unit;

a third multiplication unit; and

a fourth multiplication unit;

wherein the first multiplication unit is configurable to receive a first instruction including a first instruction type field indicating a dual issue instruction type,

wherein the first multiplication unit and the second multiplication unit are configurable to execute the first instruction to generate a first result in response to the first instruction indicating the dual issue instruction type,

wherein the third multiplication unit is configurable to receive a second instruction including a second instruction type field indicating the dual issue instruction type,

wherein the third multiplication unit and the fourth multiplication unit are configurable to execute the second instruction to generate a second result in response to the second instruction indicating the dual issue instruction type,

wherein the first multiplication unit is configurable to receive a third instruction including a third instruction type field indicating a single issue instruction type, and

wherein the first multiplication unit is configurable to execute the third instruction to generate a third result in response to the third instruction indicating the single issue instruction type.

14. The system of claim 13 ,

wherein the second multiplication unit is configurable to receive a fourth instruction including a fourth instruction type field indicating the single issue instruction type, and

wherein the second multiplication unit is configurable to execute the fourth instruction to generate a fourth result in response to the fourth instruction indicating the single issue instruction type.

15. The system of claim 14 , wherein the second multiplication unit is configurable to execute the fourth instruction in parallel with the first multiplication unit executing the third instruction.

16. The system of claim 13 ,

wherein the third instruction type field indicates a single issue vector arithmetic instruction type, and

wherein the first multiplication unit includes:

a multiplication logic circuit configurable to execute the first instruction; and

an arithmetic logic circuit configurable to execute the third instruction.

17. A method comprising:

receiving, at a first multiplication unit, a first instruction including a first instruction type field that indicates whether the first instruction is to be executed by more than one multiplication unit;

executing, by the first multiplication unit and by a second multiplication unit, the first instruction to generate a first result and a second result respectively in response to the first instruction type field indicating that the first instruction is to be executed by more than one multiplication unit;

providing, by the first multiplication unit, a third result based on the first result and the second result;

receiving, at a third multiplication unit, a second instruction including a second instruction type field that indicates whether the second instruction is to be executed by more than one multiplication unit; and

executing, by the third multiplication unit and a fourth multiplication unit, the second instruction to generate a fourth result in response to the second instruction type field indicating that the second instruction is to be executed by more than one multiplication unit.

18. A system comprising:

a first multiplication unit;

a second multiplication unit;

a third multiplication unit;

a fourth multiplication unit; and

a processor configurable to:

issue a first instruction to the first multiplication unit; and

issue a second instruction to the third multiplication unit,

wherein the first instruction includes a first instruction type field that indicates whether the first instruction is to be executed by more than one multiplication unit,

wherein the first multiplication unit and the second multiplication unit are configurable to execute the first instruction to generate a first result and a second result respectively in response to the first instruction type field indicating that the first instruction is to be executed by more than one multiplication unit,

wherein the first multiplication unit is configurable to provide a third result based on the first result and the second result,

wherein the second instruction includes a second instruction type field that indicates whether the second instruction is to be executed by more than one multiplication unit,

wherein the third multiplication unit and the fourth multiplication unit are configurable to execute the second instruction to generate a fourth result and a fifth result respectively in response to the second instruction type field indicating that the second instruction is to be executed by more than one multiplication unit, and

wherein the third multiplication unit is configurable to provide a sixth result based on the fourth result and the fifth result.

19. A system comprising:

a first multiplication unit;

a second multiplication unit;

a third multiplication unit;

a fourth multiplication unit; and

a processor configurable to:

issue a first instruction to the first multiplication unit; and

issue a second instruction to the third multiplication unit,

wherein the first instruction includes a first instruction type field indicating a dual issue instruction type,

wherein the first multiplication unit and the second multiplication unit are configurable to execute the first instruction to generate a first result in response to the first instruction indicating the dual issue instruction type,

wherein the second instruction includes a second instruction type field indicating the dual issue instruction type,

wherein the third multiplication unit and the fourth multiplication unit are configurable to execute the second instruction to generate a second result in response to the second instruction indicating the dual issue instruction type,

wherein the processor is further configurable to:

withhold issuing subsequent instructions to the second multiplication unit until the first instruction is completed, and

withhold issuing subsequent instructions to the fourth multiplication unit until the second instruction is completed,

wherein the processor is configurable to issue a third instruction to the first multiplication unit,

wherein the third instruction includes a third instruction type field indicating a single issue vector arithmetic instruction type, and

wherein the first multiplication unit is configurable to execute the third instruction to generate a third result in response to the third instruction indicating the single issue vector arithmetic instruction type.

20. The system of claim 19 ,

wherein the processor is configurable to issue a fourth instruction to the second multiplication unit,

wherein the fourth instruction includes a fourth instruction type field indicating a single issue multiplication instruction type, and

wherein the second multiplication unit is configurable to execute the fourth instruction in parallel with the first multiplication unit executing the third instruction to generate a fourth result in response to the fourth instruction indicating the single issue multiplication instruction type.

Continuity (4)
Continuation 17690344 · Mar 9, 2022
Continuation 16878603 · May 20, 2020
Provisional Application 62852870 · May 24, 2019
Related Publication 20240211411A1 · Jun 27, 2024
References Cited (21)
US 5475856A · Kogge · 1995 [cited by examiner]
US 6112298A · Deao · 2000 [cited by examiner]
US 6606686B1 · Agarwala et al. · 2003 [cited by applicant]
US 6636950B1 · Mithal et al. · 2003 [cited by applicant]
US 6820189B1 · Hoffman · 2004 [cited by examiner]
US 7085917B2 · Busaba et al. · 2006 [cited by applicant]
US 8352532B1 · Kostarnov · 2013 [cited by examiner]
US 8918445B2 · Anderson et al. · 2014 [cited by applicant]
US 9304775B1 · Lindholm · 2016 [cited by examiner]
US 9904645B2 · Thompson et al. · 2018 [cited by applicant]
US 10402199B2 · Anderson et al. · 2019 [cited by applicant]
US 20020138777A1 · Feierbach · 2002 [cited by applicant]
US 20060224864A1 · DeMent · 2006 [cited by examiner]
US 20070079179A1 · Jourdan · 2007 [cited by examiner]
US 20110252220A1 · Busaba et al. · 2011 [cited by applicant]
US 20120191767A1 · Anderson et al. · 2012 [cited by applicant]
US 20160004665A1 · Elmer · 2016 [cited by applicant]
US 20170115990A1 · Anderson et al. · 2017 [cited by applicant]
US 20190391812A1 · Anderson et al. · 2019 [cited by applicant]
“66AK2Hx Keystone Multicore DSP+ARM System-on-Chips”, SPRT651A, Texas Instruments, Inc., 2013, pp. 1-3. [cited by applicant]
Pradeep Kumar Kumawat and Gajendra Sujediya, “Design and Comparison of 8×8 Wallace Tree Multiplier using CMOS and GDI Technology”, IOSR Journal of VLSI and Signal Processing (IOSR-JVSP), vol. 7, Issue 4, Version 1, Jul.… [cited by applicant]