IP Library Granted Patent US 11,494,186
Granted Patent B2
US 11,494,186 · App. 16/914,107 · Granted Nov 8, 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,494,186
App. No.
16/914,107
Granted
Nov 8, 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 (54)

1. An integrated circuit device comprising:

a first digital signal processing block comprising:

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

a plurality of weight registers configured to store the first plurality of values;

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 plurality of products; and

first adder circuitry configured to add the plurality of products to generate one or more first sums; and

a second digital signal processing block comprising:

a second plurality of inputs configured to receive the one or more first sums from the first digital signal processing block; and

second adder circuitry configured to add the one or more first sums and one or more values received by the second adder circuitry.

2. The integrated circuit device of claim 1 , wherein the one or more first sums comprise one or more fixed-point values.

3. The integrated circuit device of claim 2 , wherein the second digital signal processing block comprises conversion circuitry configured to convert the one or more first sums to one or more floating-point values.

4. The integrated circuit device of claim 3 , wherein the one or more values comprise one or more second floating-point values.

5. The integrated circuit device of claim 4 , wherein the one or more second floating-point values comprise one or more bfloat24 values.

6. The integrated circuit device of claim 4 , wherein the one of more second floating-point values comprise one or more single-precision floating-point values.

7. The integrated circuit device of claim 1 , wherein the one or more values comprise one or more values previously determined by the second adder circuitry.

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

9. A system comprising:

a first digital signal processing block comprising:

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

a plurality of weight registers configured to store the first plurality of values;

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 plurality of products; and

first adder circuitry configured to add the plurality of products to generate one or more first sums; and

a second digital signal processing block comprising:

a second plurality of inputs configured to receive the one or more first sums from the first digital signal processing block; and

second adder circuitry configured to add a first portion of the one or more first sums and one or more values received by the second adder circuitry.

10. The system of claim 9 , further comprising a first buffer communicatively coupled to the second digital signal processing block, wherein the second digital signal processing block is configured to receive the one or more values from the first buffer.

11. The system of claim 10 , wherein the one or more values comprise one or more values previously determined by the second adder circuitry.

12. The system of claim 10 , further comprising a third digital signal processing block that comprises third adder circuitry configured to add a second portion of the one or more first sums and one or more second values received by the third adder circuitry.

13. The system of claim 12 , further comprising a second buffer communicatively coupled to the third digital signal processing block, wherein:

the third digital signal processing block is configured to receive the one or more second values from the second buffer; and

the one or more second values comprises one or more values previously determined by the third adder circuitry.

14. The system of claim 12 , wherein the third adder circuitry is configured to receive the second portion of the one or more first sums from the second digital signal processing block.

15. The system of claim 9 , wherein the one or more first sums comprise three values.

16. The system of claim 9 wherein the system is implemented on a single programmable logic device.

17. A method, comprising:

receiving, via a first plurality of inputs of a first digital signal processing block, a first plurality of values and a second plurality of values;

generating a plurality of products by multiplying, via multiplier circuitry of the first digital signal processing block, the first plurality of values and the second plurality of values;

generating one or more sums by adding, via first adder circuitry of the first digital signal processing block, the plurality of products;

receiving, via a second digital signal processing block, one or more values; and

adding, via second adder circuitry of the second digital signal processing block, the one or more sums and the one or more values.

18. The method of claim 17 , further comprising storing the first plurality of values in a plurality of weight registers of the first digital signal processing block.

19. The method of claim 18 , wherein:

adding the one or more sums and the one or more values generates one or more second sums; and

the method further comprises:

sending, via the second digital signal processing block, the one or more second sums to a buffer;

receiving, via the first plurality of inputs, a third plurality of values;

generating a second plurality of products by multiplying, via the multiplier circuitry, the first plurality of values and the third plurality of values;

generating one or more third sums by adding, via the first adder circuitry, the second plurality of products;

receiving, via the second adder circuitry, the one or more second sums and the one or more third sums; and

adding, via the second adder circuitry, the one or more second sums and the one or more third sums.

20. The method of claim 17 , wherein:

the first plurality of inputs comprises a first portion of the plurality of inputs and a second portion of the plurality of inputs different than the first portion of the plurality of inputs;

receiving the first plurality of values comprises receiving the first plurality of values via the first portion of the first plurality of inputs; and

receiving the second plurality of values puts comprises receiving the second plurality of values via the second portion of the first plurality of inputs.

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 →
Continuity (5)
Continuation 16914009 · Jun 26, 2020
Provisional Application 62948110 · Dec 13, 2019
Provisional Application 62948114 · Dec 13, 2019
Provisional Application 62948124 · Dec 13, 2019
Related Publication 20210182023A1 · Jun 17, 2021