IP Library Granted Patent US 7,509,366
Granted Patent B2
US 7,509,366 · App. 10/418,113 · Granted Mar 24, 2009

Multiplier array processing system with enhanced utilization at lower precision

Assignee: Microunity Systems Engineering, Inc.
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,509,366
App. No.
10/418,113
Granted
Mar 24, 2009
Kind
B2
Abstract

A multiplier array processing system which improves the utilization of the multiplier and adder array for lower-precision arithmetic is described. New instructions are defined which provide for the deployment of additional multiply and add operations as a result of a single instruction, and for the deployment of greater multiply and add operands as the symbol size is decreased.

Claims (28)

1. A method for performing a group-multiply-add instruction in a programmable processor, the method comprising:

partitioning a first register, a second register, and a third register into a plurality of floating-point operands;

multiplying, in parallel, the plurality of floating-point operands from the first register by the plurality of floating-point operands from the second register and adding the plurality of floating-point operands from the third register, producing a plurality of floating-point numbers; and

providing the plurality of floating-point numbers to a plurality of partitioned fields of a result.

2. The method of claim 1 wherein the floating-point operands of the first register, the second register, the third register, and of the result are each capable of being represented by equal defined bit widths.

3. The method of claim 1 wherein the floating-point operands of the first register, the second register, and of the result are each capable of being represented by equal defined bit widths.

4. The method of claim 1 wherein the floating-point operands of the third register and of the result are each capable of being represented by equal defined bit widths.

5. The method of claim 1 wherein each of the first, second, and third registers are partitionable into four fields to hold four floating-point operands in parallel.

6. The method of claim 1 wherein the first, second, and third registers are 128 bit registers.

7. The method of claim 1 wherein the result is returned to a result register.

8. The method of claim 7 wherein the result register is a different register than either the first, second, or third registers.

9. A programmable processor for performing a group-multiply-add instruction, the processor comprising:

first, second, and third registers partitioned into a plurality of floating-point operands; and

a multiplier and adder array, configured to multiply, in parallel, the plurality of floating-point operands from the first register by the plurality of floating-point operands from the second register and add the plurality of floating-point operands from the third register to produce a plurality of floating-point numbers; and to provide the plurality of floating-point numbers to a plurality of partitioned fields of a result.

10. The processor of claim 9 wherein the floating-point operands of the first register, the second register, the third register, and of the result are each capable of being represented by equal defined bit widths.

11. The processor of claim 9 wherein the floating-point operands of the first register, the second register, and of the result are each capable of being represented by equal defined bit widths.

12. The processor of claim 9 wherein the floating-point operands of the third register and of the result are each capable of being represented by equal defined bit widths.

13. The processor of claim 9 wherein each of the first, second, and third registers are partitionable into four fields to hold four floating-point operands in parallel.

14. The processor of claim 9 wherein the first, second, and third registers are 128 bit registers.

15. The processor of claim 9 further comprising:

fourth, fifth and sixth registers partitioned to into a plurality of fixed-point operands,

wherein the multiplier and adder array is further configurable to multiply, in parallel, the plurality of fixed-point operands from the fourth register by a plurality of fixed-point operands from the fifth register and add the plurality of fixed-point operands from the sixth register to produce the plurality of fixed-point numbers; and to provide the plurality of fixed-point numbers to a plurality of partitioned fields of a result.

16. The processor of claim 9 wherein the multiplier and adder array is further configured for performing a group-multiply instruction for a plurality of floating-point operands.

17. The processor of claim 9 further comprising:

fourth and fifth registers partitioned to into a plurality of fixed-point operands,

wherein the multiplier and adder array is further configurable to multiply, in parallel, the plurality of fixed-point operands from the fourth register by a plurality of fixed-point operands from the fifth register to produce the plurality of fixed-point numbers; and to provide the plurality of fixed-point numbers to the plurality of partitioned fields of a result.

18. The processor of claim 9 wherein the result is returned to a result register.

19. The processor of claim 18 wherein the result register is a different register than either the first, second, or third registers.

Continuity (5)
Continuation 0937718200 · Aug 19, 1999
Continuation 0885759600 · May 16, 1997
Continuation In Part 0851603600 · Aug 16, 1995
Provisional Application 6002113200 · May 17, 1996
Related Publication 20040015533A1 · Jan 22, 2004