IP Library Granted Patent US 11,520,584
Granted Patent B2
US 11,520,584 · App. 16/914,098 · Granted Dec 6, 2022

FPGA specialist processing block for machine learning

Inventors: Martin Langhammer (Alderbury, GB); Dongdong Chen (San Jose, CA); Jason R. Bergendahl (Cupertino, CA)
Assignee: Intel Corporation
G06F9/30101G06F7/50G06F7/523G06F7/556G06F9/30105G06F30/34G06F30/343G06F30/38G06N20/00H03K19/177H03K19/17748H03M7/24G06F7/483
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,520,584
App. No.
16/914,098
Granted
Dec 6, 2022
Kind
B2
Abstract

The present disclosure describes a digital signal processing (DSP) block that includes a plurality of columns of weight registers and a plurality of inputs configured to receive a first plurality of values and a second plurality of values. The first plurality of values is stored in the plurality of columns of weight registers after being received. Additionally, the DSP block includes a plurality of multipliers configured to simultaneously multiply each value of the first plurality of values by each value of the second plurality of values.

Claims (63)

1. An integrated circuit device comprising:

a digital signal processing block comprising:

a first plurality of inputs configured to receive a first plurality of values;

a second plurality of inputs;

a third plurality of inputs;

a plurality of weight registers configured to store a second plurality of values received via the first plurality of inputs, the second plurality of inputs, or the third plurality of inputs; and

multiplier circuitry configured to simultaneously multiply each value of the first plurality of values by a value of the second plurality of values to generate a third plurality of values.

2. The integrated circuit device of claim 1 , wherein:

the digital signal processing block comprises a fourth plurality of inputs configured to receive a fourth plurality of values; and

the fourth plurality of values comprise exponent values shared by at least a portion of the first plurality of values.

3. The integrated circuit device of claim 1 , wherein the digital signal processing block is configured to receive the second plurality of values via the second plurality of inputs or the third plurality of inputs.

4. The integrated circuit device of claim 1 , wherein the digital signal processing block is configured to receive a fourth plurality of values via the second plurality of inputs or the third plurality of inputs while performing a multiplication.

5. The integrated circuit device of claim 4 , wherein:

the digital signal processing block comprises a second plurality of weight registers configured to store the fourth plurality of values; and

the digital signal processing block is configured to switch from multiplying values received via the first plurality of inputs by values stored in the plurality of weight registers to multiplying the values received via the first plurality of inputs by values stored in the second plurality of weight registers.

6. The integrated circuit device of claim 1 , wherein:

the digital signal processing block comprises a second plurality of weight registers;

the digital signal processing block is configured to receive a fourth plurality of values and store the fourth plurality of values in the second plurality of weight registers; and

after multiplying values of first plurality of values by values of the second plurality of values, the multiplier circuitry is configured to multiply each value of the first plurality of values by a value of the fourth plurality of values to generate a fifth plurality of values.

7. The integrated circuit device of claim 6 , wherein the digital signal processing block comprises:

first adding circuitry configured to add the third plurality of values to generate a first sum; and

second adding circuitry configured to add the fifth plurality of values to generate a second sum.

8. The integrated circuit device of claim 7 , wherein the digital signal processing block comprises:

a fourth plurality of inputs communicatively coupled to a second digital signal processing block;

third adding circuitry configured to:

receive a first value from the second digital signal processing block via the fourth plurality of inputs; and

add the first value and the first sum to generate a third sum; and

fourth adding circuitry configured to:

receive a second value from the second digital signal processing block via the fourth plurality of inputs; and

add the second value and the second sum to generate a fourth sum.

9. The integrated circuit device of claim 8 , wherein the first sum and the second sum comprise fixed-point values.

10. The integrated circuit device of claim 9 , wherein:

the digital signal processing block comprises conversion circuitry configured to convert the first sum and second sum from fixed-point to floating point; and

the third adding circuitry and the fourth adding circuitry comprise floating-point adder circuitry.

11. The integrated circuit device of claim 10 , wherein the floating-point adder circuitry comprises adder circuitry configured to add single-precision floating-point values.

12. The integrated circuit device of claim 1 , wherein the integrated circuit device comprises a field-programmable gate array (FPGA).

13. A digital signal processing block, comprising:

a first plurality of inputs configured to receive a first plurality of values;

a second plurality of inputs;

a third plurality of inputs;

a plurality of weight registers configured to store a second plurality of values received via the first plurality of inputs, the second plurality of inputs, or the third plurality of inputs; and

multiplier circuitry configured to simultaneously multiply each value of the first plurality of values by a value of the second plurality of values to generate a third plurality of values.

14. The digital signal processing block of claim 13 , further comprising a second plurality of weight registers configured to store a fourth plurality of values via the first plurality of inputs, the second plurality of inputs, or the third plurality of inputs.

15. The digital signal processing block of claim 14 , further comprising a plurality of multiplexers, wherein each multiplexer of the plurality of multiplexers is configured to selectively provide a value of the second plurality of values or a value of the fourth plurality of values to the multiplier circuitry.

16. The digital signal processing block of claim 13 , further comprising:

a second plurality of weight registers; and

a third plurality of weight registers, wherein:

the digital signal processing block is configured to receive a fourth plurality of values and store the fourth plurality of values in the second plurality of weight registers;

the digital signal processing block is configured to receive a fifth plurality of values and store the fifth plurality of values in the third plurality of weight registers;

after multiplying values of first plurality of values by values of the second plurality of values, the multiplier circuitry is configured to multiply each value of the first plurality of values by a value of the fourth plurality of values to generate a sixth plurality of values; and

after multiplying values of the first plurality of values by values of the fourth plurality of values, the multiplier circuitry is configured to multiply each value of the first plurality of values by a value of the fifth plurality of values to generate a seventh plurality of values.

17. A system, comprising

a first digital signal processing block; and

a second digital signal processing block, comprising:

a first plurality of inputs configured to receive a first plurality of values;

a second plurality of inputs communicatively coupled to the first digital signal processing block;

a third plurality of inputs;

a fourth plurality of inputs communicatively coupled to the first digital signal processing block;

a plurality of weight registers configured to store a second plurality of values received via the first plurality of inputs, the second plurality of inputs, or the third plurality of inputs; and

multiplier circuitry configured to simultaneously multiply each value of the first plurality of values by a value of the second plurality of values to generate a third plurality of values.

18. The system of claim 17 , wherein the first digital signal processing block and the second digital signal processing block are implemented within a programmable logic device.

19. The system of claim 18 , comprising a processor communicatively coupled to the programmable logic device.

20. The system of claim 18 , wherein the programmable logic device comprises a field-programmable logic array (FPGA).

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: INTEL CORPORATION
To: ALTERA CORPORATION
Reel/Frame 066353/0886 →