IP Library Granted Patent US 11,907,719
Granted Patent B2
US 11,907,719 · App. 16/914,009 · Granted Feb 20, 2024

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,907,719
App. No.
16/914,009
Granted
Feb 20, 2024
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 (43)

1. A digital signal processing (DSP) block comprising:

a plurality of columns of weight registers;

a plurality of inputs configurable to receive a first plurality of values and a second plurality of values, wherein the first plurality of values is stored in the plurality of columns of weight registers after being received;

conversion circuitry configurable to receive a shared exponent for the second plurality of values and convert fixed-point values to floating-point values based on the shared exponent; and

a plurality of multipliers configurable to simultaneously multiply each value of the first plurality of values by each value of the second plurality of values.

2. The DSP block of claim 1 , wherein values of the first plurality of values and the second plurality of values each comprise one to eight integer bits.

3. The DSP block of claim 1 , wherein the plurality of columns of weight registers comprises three columns of weight registers.

4. The DSP block of claim 1 , wherein the first plurality of values is stored in the plurality of columns of weight registers prior to receiving the second plurality of values.

5. The DSP block of claim 1 , wherein:

the plurality of multipliers is configurable to generate a third plurality of values by multiplying each value of the first plurality of values by each value of the second plurality of values and

the DSP block comprises compression circuitry configurable to determine a sum of the third plurality of values.

6. The DSP block of claim 5 , wherein the DSP block is configurable to receive a fourth plurality of values from a second DSP block and determine a sum of the third plurality of values and the sum of the third plurality of values.

7. The DSP block of claim 1 , wherein the DSP block is included within a field-programmable gate array (FPGA).

8. An integrated circuit device, comprising:

a digital signal processing (DSP) block, comprising:

a plurality of columns of registers;

a plurality of inputs configurable to receive a first plurality of values and a second plurality of values, wherein the first plurality of values is stored in the plurality of columns of registers after being received;

conversion circuitry configurable to receive a shared exponent for the second plurality of values and convert fixed-point values to floating-point values based on the shared exponent and

a plurality of multipliers configurable to simultaneously multiply each value of the first plurality of values by each value of the second plurality of values.

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

the first plurality of values and the second plurality of values are fixed-point values; and

the DSP block is configurable to perform floating-point and fixed-point addition.

10. The integrated circuit device of claim 9 , wherein the DSP block is configurable to perform fixed-point addition involving:

one or more values determined based on the first and second pluralities of values; and

a third plurality of values received from a second DSP block communicatively coupled to the DSP block.

11. The integrated circuit device of claim 8 , wherein the first plurality of values, the second plurality of values, or both are generated from a third plurality of values that are more precise than the first plurality of values, the second plurality of values, or both.

12. The integrated circuit device of claim 8 , wherein the first plurality of values is stored in a single column of the plurality of columns of registers.

13. The integrated circuit device of claim 8 , comprising a programmable logic device, wherein the programmable logic device comprises the DSP block.

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

15. A system comprising:

a first digital signal processing (DSP) block; and

a second DSP block communicatively coupled to the first DSP block, wherein the second DSP block comprises:

a plurality of columns of weight registers;

a plurality of inputs configurable to receive a first plurality of values and a second plurality of values, wherein the first plurality of values is stored in the plurality of columns of weight registers after being received;

conversion circuitry configurable to receive a shared exponent for the second plurality of values and convert fixed-point values to floating-point values based on the shared exponent and

a plurality of multipliers configurable to simultaneously multiply each value of the first plurality of values by each value of the second plurality of values.

16. The system of claim 15 , wherein the second DSP block is configurable to simultaneously perform thirty multiplication operations when simultaneously multiplying each value of the first plurality of values by each value of the second plurality of values.

17. The system of claim 15 , wherein the first DSP block is configurable to receive one or more values from the second DSP block and determine a sum for each column of the plurality of columns of weight registers of the second DSP block used to store the first plurality of values.

18. The system of claim 15 , comprising:

a programmable logic device that comprises the first and second DSP blocks; and

an integrated circuit device communicatively coupled to the programmable logic device.

19. The DSP block of claim 1 , wherein the DSP block is included within an integrated circuit device that comprises programmable logic.

20. The DSP block of claim 1 , wherein the first plurality of values, the second plurality of values, or both are generated from a third plurality of values that are more precise than the first plurality of values, the second plurality of values, or both.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2020
From: LANGHAMMER, MARTIN; CHEN, DONGDONG; BERGENDAHL, JASON R.
To: INTEL CORPORATION
Reel/Frame 053296/0924 →