IP Library Granted Patent US 11,656,872
Granted Patent B2
US 11,656,872 · App. 16/914,025 · Granted May 23, 2023

Systems and methods for loading weights into a tensor processing block

Inventor: Martin Langhammer (Alderbury, GB)
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,656,872
App. No.
16/914,025
Granted
May 23, 2023
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. In a first mode of operation, the first and second pluralities of values are received via a first portion of the plurality of inputs. In a second mode of operation, the first plurality of values is received via a second portion of the plurality of inputs, and the second plurality of values is received via the first portion of the plurality of inputs. 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. A digital signal processing (DSP) block comprising:

a plurality of columns of weight registers;

a plurality of inputs configured 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, wherein:

in a first mode of operation, the first and second pluralities of values are received via a first portion of the plurality of inputs; and

in a second mode of operation:

the first plurality of values is received via a second portion of the plurality of inputs different than the first plurality of inputs; and

the second plurality of values is received via the first portion of the plurality of inputs; and

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.

2. The DSP block of claim 1 , wherein, in the first mode of operation, the first plurality of values is stored in the plurality of columns of weigh registers prior to the second plurality of values being received.

3. The DSP block of claim 1 , wherein the first portion of the plurality of inputs are configured to receive the first plurality of values from a second DSP block that is communicatively coupled to the DSP block.

4. The DSP block of claim 1 , comprising a third portion of the plurality of inputs configured to receive the first plurality of values in a third mode of operation, wherein the third portion of the plurality of inputs differs from the first and second portions of the plurality of inputs.

5. The DSP block of claim 1 , wherein the DSP block is included in a programmable logic device.

6. The DSP block of claim 1 , wherein the first and second plurality of inputs comprise fixed-point values.

7. The DSP block of claim 6 , wherein the first portion of the plurality of inputs is configured to receive a shared exponent of the second plurality of values.

8. The DSP block of claim 1 , wherein:

the plurality of columns of weight registers comprises a first set of weight registers and a second set of weight registers; and

the DSP block is configured to cause the first set of values to be stored in the first set of weight registers or the second set of weight registers.

9. The DSP block of claim 8 , wherein the DSP block is configured to:

store the first set of values in the first set of weight registers;

receive a third set of values;

store the third set of values in the second set of weight registers; and

selectively multiply each value of the second plurality of values by each value of the first plurality of values or each value of the third plurality of values.

10. The DSP block of claim 9 , wherein the DSP block is configured to:

multiply each value of the first plurality of values by a value of the second plurality of values; and

after multiplying each value of the first plurality of values by a value of the second plurality of values, multiply each value of the first plurality of values by a value of the third plurality of values.

11. An integrated circuit device, comprising:

one or more digital signal processing (DSP) blocks, each of the one or more DSP blocks comprising:

a plurality of columns of weight registers;

a plurality of inputs configured 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, wherein:

in a first mode of operation, the first and second pluralities of values are received via a first portion of the plurality of inputs; and

in a second mode of operation:

the first plurality of values is received via a second portion of the plurality of inputs different than the first plurality of inputs; and

the second plurality of values is received via the first portion of the plurality of inputs; and

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.

12. The integrated circuit device of claim 11 , comprising adding circuitry configured to receive outputs for each column of the plurality of weight registers from the plurality of multipliers and to sum the outputs.

13. The integrated circuit device of claim 12 , comprising converter circuitry configured to convert the sum of the outputs from a fixed-point value to a floating-point value.

14. The integrated circuit device of claim 11 , wherein the floating-point value is a single-precision floating-point value.

15. The integrated circuit device of claim 11 , wherein the integrated circuit device comprises a programmable logic device.

16. The integrated circuit device of claim 15 , wherein the programmable logic device comprises a field-programmable logic device (FPGA).

17. 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 registers;

a plurality of inputs configured 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, wherein:

in a first mode of operation, the first and second pluralities of values are received via a first portion of the plurality of inputs; and

in a second mode of operation:

the first plurality of values is received via a second portion of the plurality of inputs different than the first plurality of inputs; and

the second plurality of values is received via the first portion of the plurality of inputs; and

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.

18. The system of claim 17 , wherein the second DSP block comprises address decoding circuitry configured to cause each value of the first plurality of values to be stored in a particular register within the plurality of columns of registers.

19. The system of claim 17 , wherein the second DSP block is configured to multiply each value of the first plurality of values by each value of the second plurality of values while storing a third plurality of values in the plurality of columns of registers.

20. The system of claim 17 , 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.

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
To: INTEL CORPORATION
Reel/Frame 053296/0983 →
Continuity (4)
Provisional Application 62948124 · Dec 13, 2019
Provisional Application 62948114 · Dec 13, 2019
Provisional Application 62948110 · Dec 13, 2019
Related Publication 20200326948A1 · Oct 15, 2020