IP Library › Granted Patent US 11,501,151
Granted Patent B2
US 11,501,151 · App. 16/885,704 · Granted Nov 15, 2022

Pipelined accumulator

Inventors: Paul Nicholas Whatmough (Cambridge, MA); Zhi-Gang Liu (Westford, MA); Matthew Mattina (Boylston, MA)
Assignee: Arm Limited
G06N3/063G06N7/00
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,501,151
App. No.
16/885,704
Granted
Nov 15, 2022
Kind
B2
Abstract

The present disclosure advantageously provides a pipelined accumulator that includes a data selector configured to receive a sequence of operands to be summed, an input register coupled to the data selector, an output register, coupled to the data selector, configured to store a sequence of partial sums and output a final sum, and a multi-stage add module coupled to the input register and the output register. The multi-stage add module is configured to store a sequence of partial sums and a final sum in a redundant format, and perform back-to-back accumulation into the output register.

Claims (45)

1. A hardware accelerator, comprising:

a computing engine (CE) including a plurality of pipelined accumulators, each pipelined accumulator including:

a multiplexor having a first input, a second input and an output, the first input configured to receive a sequence of operands to be summed;

an input register coupled to the output of the multiplexor;

a multi-stage add module, including:

a first stage adder, having a first input coupled to the input register, a second input, and an output, configured to add two numbers and output a partial result,

a pipeline register, coupled to the output of the first stage adder, configured to store the partial result, and

a second stage adder, having an output and an input coupled to the pipeline register, configured to convert the partial result into a complete result and output the complete result; and

an output register, coupled to the output of the second stage adder, the second input of the multiplexor and the second input of the first stage adder, configured to store a sequence of partial sums and output a final sum.

2. The hardware accelerator of claim 1 , further comprising:

a communication bus interface configured to:

receive at least a portion of an artificial neural network (ANN) model with ANN weights, and input data, and

transmit output data;

a memory, coupled to the communication bus interface, configured to store the portion of the ANN model, the ANN weights, the input data and the output data; and

a controller coupled to the communication bus interface and the memory,

where the CE includes a multiplier coupled to each pipelined accumulator to form a plurality of pipelined multiply-and-accumulate (MAC) units.

3. The hardware accelerator of claim 2 , where the ANN model is a convolutional neural network (CNN) model that includes an input layer, at least one convolutional layer, a fully-connected layer and an output layer.

4. The hardware accelerator of claim 1 , where the partial result has a redundant format and the complete result has a non-redundant format.

5. The hardware accelerator of claim 4 , where the redundant format is a carry-save format.

6. The hardware accelerator of claim 1 , where each pipelined accumulator executes a number of processing cycles including a reset cycle, an operand input processing cycle for each operand, a bubble processing cycle, an alignment processing cycle, a final sum processing cycle, and an output processing cycle.

7. The hardware accelerator of claim 6 , where the pipeline register stores a portion of a partial sum of the operands and the output register stores a remaining portion of the partial sum of the operands during the operand input processing cycles and the bubble processing cycle.

8. The hardware accelerator of claim 1 , where the multi-stage add module further includes one or more additional pipeline stages.

9. A pipelined accumulator, comprising:

a multiplexor having a first input, a second input and an output, the first input configured to receive a sequence of operands to be summed;

an input register coupled to the output of the multiplexor;

a multi-stage add module, including:

a first stage adder, having a first input coupled to the input register, a second input, and an output, configured to add two numbers and output a partial result,

an pipeline register, coupled to the output of the first stage adder, configured to store the partial result, and

a second stage adder, having an output and an input coupled to the pipeline register, configured to convert the partial result into a complete result and output the complete result; and

an output register, coupled to the output of the second stage adder, the second input of the multiplexor and the second input of the first stage adder, configured to store a sequence of partial sums and output a final sum.

10. The pipelined accumulator of claim 9 , where the partial result has a redundant format and the complete result has a non-redundant format.

11. The pipelined accumulator of claim 10 , where the redundant format is a carry-save format.

12. The pipelined accumulator of claim 9 , where the pipelined accumulator executes a number of processing cycles including a reset cycle, an operand input processing cycle for each operand, a bubble processing cycle, an alignment processing cycle, a final sum processing cycle, and an output processing cycle.

13. The pipelined accumulator of claim 12 , where the pipeline register stores a portion of a partial sum of the operands and the output register stores a remaining portion of the partial sum of the operands during the operand input processing cycles and the bubble processing cycle.

14. The pipelined accumulator of claim 9 , where the multi-stage add module further includes one or more additional pipeline stages.

15. An arithmetic logic unit including the pipelined accumulator according to claim 9 .

16. A central processing unit including the pipelined accumulator according to claim 9 .

17. A hardware accelerator including the pipelined accumulator according to claim 9 .

18. The hardware accelerator of claim 17 , where the hardware accelerator is a graphics processing unit or a neural processing unit.

19. A pipelined accumulator, comprising:

a data selector configured to receive a sequence of operands to be summed;

an input register coupled to the data selector;

an output register, coupled to the data selector, configured to store a sequence of partial sums and output a final sum; and

a multi-stage add module, coupled to the input register and the output register, configured to store a sequence of partial sums and a final sum in a redundant format, and perform back-to-back accumulation into the output register.

20. The pipelined accumulator of claim 19 , where the redundant format is a carry-save format.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2020
From: WHATMOUGH, PAUL NICHOLAS; LIU, ZHI-GANG; MATTINA, MATTHEW
To: ARM LIMITED
Reel/Frame 052881/0033 →
Continuity (1)
Related Publication 20210374508A1 · Dec 2, 2021