IP Library Granted Patent US 11,294,673
Granted Patent B2
US 11,294,673 · App. 16/878,608 · Granted Apr 5, 2022

Method and apparatus for dual issue multiply instructions

Inventors: Timothy David Anderson (University Park, TX); Mujibur Rahman (Plano, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F9/30036G06F7/24G06F7/487G06F7/4876G06F7/49915G06F7/53G06F7/57G06F9/3001G06F9/30021G06F9/30032G06F9/30145G06F9/30149G06F9/3818G06F9/3836G06F9/3851G06F9/48G06F17/16H03H17/0664
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,294,673
App. No.
16/878,608
Granted
Apr 5, 2022
Kind
B2
Abstract

A method is provided that includes performing, by a processor in response to a dual issue multiply instruction, multiplication of operands of the dual issue multiply instruction using multiplication units comprised in a data path of the processor and configured to operate together to determine a product of the operands, and storing, by the processor, the product in a storage location indicated by the dual issue multiply instruction.

Claims (52)

1. A method comprising:

determining, by a first multiplication unit comprised in a data path of a processor in response to a dual issue multiply instruction, first partial product terms for a most significant half of a first operand and a second operand of the dual issue multiply instruction;

determining, by a second multiplication unit comprised in the data path of the processor, second partial product terms for a least significant half of the first operand and the second operand, wherein the first multiplication unit and the second multiplication unit are configured to operate together to determine a final product of the first and second operands;

determining, by the first multiplication unit, the final product using the first partial product terms and the second partial product terms; and

storing, by the processor, the final product in a storage location indicated by the dual issue multiply instruction.

2. The method of claim 1 , wherein the data path is a scalar data path and the dual issue multiply instruction is a scalar multiply instruction.

3. The method of claim 1 , wherein the data path is a vector data path and the dual issue multiply instruction is a vector multiply instruction.

4. The method of claim 1 , further comprising:

performing, by the processor responsive to a first single issue multiply instruction and a second single issue multiply instruction, multiplication of operands of the first single issue multiply instruction using the first multiplication unit and multiplication of operands of the second single issue multiply instruction using the second multiplication unit, wherein the first and second single issue multiply instructions are executed in parallel; and

storing, by the processor, a result of the first single issue multiply instruction in a storage location indicated by the first single issue multiply instruction and a result of the second single issue multiply instruction in a storage location indicated by the second single issue multiply instruction.

5. The method of claim 1 , further comprising:

performing, by the processor responsive to a single issue multiply instruction, multiplication of operands of the single issue multiply instruction using the first multiplication unit; and

performing, by the processor responsive to a single issue arithmetic instruction, arithmetic on operands of the single issue arithmetic instruction using the second multiplication unit, wherein the single issue multiply instruction and the single issue arithmetic instruction are executed in parallel.

6. The method of claim 1 , further comprising:

performing, by the processor responsive to a single issue arithmetic instruction, arithmetic on operands of the single issue arithmetic instruction using the first multiplication unit; and

performing, by the processor responsive to a single issue multiply instruction, multiplication of operands of the single issue multiply instruction using the second multiplication unit, wherein the single issue multiply instruction and the single issue arithmetic instruction are executed in parallel.

7. The method of claim 1 , wherein determining the final product comprises receiving, in the first multiplication unit via one or more internal communication lines, the second partial product terms from the second multiplication unit.

8. A processor comprising:

a first multiplication unit in a first data path of the processor, wherein the first multiplication unit is configured to determine first partial product terms for a most significant half of a first operand and a second operand of a first dual issue multiply instruction; and

a second multiplication unit in the first data path;

wherein the second multiplication unit is configured to determine second partial product terms for a least significant half of the first operand and the second operand,

the first multiplication unit is further configured to determine a final product for the first dual issue multiply instruction using the first partial product terms and the second partial product terms, and

wherein the first multiplication unit and the second multiplication unit are configured to operate together to execute dual issue multiply instructions including the first dual issue multiply instruction.

9. The processor of claim 8 , wherein the first data path is a scalar data path and the dual issue multiply instructions are scalar multiply instructions.

10. The processor of claim 8 , wherein the first data path is a vector data path and the dual issue multiply instructions are vector multiply instructions.

11. The processor of claim 8 , wherein

the first data path is a vector data path organized in a plurality of slices;

the first multiplication unit comprises a slice multiplication component for each slice in the plurality of slices; and

the second multiplication unit comprises a slice multiplication component for each slice of the plurality of slices,

wherein for each slice of the plurality of slices, the slice multiplication component for the slice in the first multiplication unit and the slice multiplication component for the slice in the second multiplication unit are configured to operate together to determine a respective product of an element corresponding to the slice in the first operand and an element corresponding to the slice in the second operand.

12. The processor of claim 8 , wherein the first multiplication unit and the second multiplication unit are further configured to execute respective single issue multiply instructions in parallel.

13. The processor of claim 8 , wherein the processor is a digital signal processor (DSP).

14. The processor of claim 8 ,

wherein the first multiplication unit is configured to execute a single issue multiply instruction, and

wherein the second multiplication unit is configured to execute a single issue arithmetic instruction in parallel with the first multiplication unit executing the single issue multiply instruction.

15. The processor of claim 8 ,

wherein the first multiplication unit is configured to execute a single issue arithmetic instruction, and

wherein the second multiplication unit is configured to execute a single issue multiply instruction in parallel with the first multiplication unit executing the single issue arithmetic instruction.

16. The processor of claim 8 , further comprising one or more internal communication lines between the first multiplication unit and the second multiplication unit for completing the dual issue multiply instruction.

17. A system comprising:

means for determining, in response to a dual issue multiply instruction, first partial product terms for a most significant half of a first operand and a second operand of the dual issue multiply instruction;

means for determining, in response to the dual issue multiply instruction, second partial product terms for a least significant half of the first operand and the second operand,

wherein the means for determining the first partial product terms and the means for determining the second partial product terms are configured to operate together to determine a final product of the first and second operands, and

wherein the means for determining the first partial product terms comprises means for determining the final product using the first partial product terms and the second partial product terms; and

means for storing the final product in a storage location indicated by the dual issue multiply instruction.

18. The system of claim 17 ,

wherein the means for determining the first partial product terms comprise means for executing a single issue multiply instruction, and

wherein the means for determining the second partial product terms comprise means for executing a single issue arithmetic instruction in parallel with the means for executing the single issue multiply instruction.

19. The system of claim 17 ,

wherein the means for determining the first partial product terms comprise means for executing a single issue arithmetic instruction, and

wherein the means for determining the second partial product terms comprise means for executing a single issue multiply instruction in parallel with the means for executing the single issue arithmetic instruction.

20. The system of claim 17 , wherein the means for determining the first partial product terms comprises means for receiving second partial product terms from the means for determining the second partial product terms.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2020
From: ANDERSON, TIMOTHY DAVID; RAHMAN, MUJIBUR
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 052711/0626 →
Continuity (2)
Provisional Application 62852870 · May 24, 2019
Related Publication 20200371786A1 · Nov 26, 2020