Pipelined hardware implementation of a neural network circuit
First Claim
Patent Images
1. A pipelined hardware implementation of a neural network circuit, comprising:
- an input stage for receiving and storing input values;
a first processing stage coupled to the input stage, the first processing stage including a plurality of first processing units, each first processing unit including;
(a) a weight store for storing a plurality of weighted values;
(b) a plurality of multipliers each for multiplying an input value by a respective weighted value;
(c) an adder for adding a product outputted from one of the multipliers with at least one product outputted from a respective multiplier of another one of the plurality of first processing units;
(d) a function circuit for receiving a sum outputted by the adder and for generating therefrom a processing unit value; and
(e) a register for storing the processing unit value generated by the function circuit;
an additional processing stage coupled to an upstream processing stage and including a plurality of additional stage processing units, each additional stage processing unit including;
(i) a weight store for storing a plurality of weighted values;
(ii) a plurality of multipliers each for multiplying a processing unit value received from a processing unit of the upstream processing stage by a respective weighted value;
(iii) an adder for adding a product outputted from one of the multipliers of the respective additional stage processing unit with at least one product outputted from a respective multiplier of another one of the plurality of additional stage processing units;
(iv) a function circuit for receiving a sum outputted by the adder of the respective additional stage processing unit and for generating therefrom a processing unit value; and
(v) a register for storing the processing unit value generated by the function circuit of the respective additional stage processing unit; and
an output stage formed from output ports of the registers of the additional processing stage.
1 Assignment
0 Petitions
Accused Products
Abstract
In a first aspect, a pipelined hardware implementation of a neural network circuit includes an input stage, two or more processing stages and an output stage. Each processing stage includes one or more processing units. Each processing unit includes storage for weighted values, a plurality of multipliers for multiplying input values by weighted values, an adder for adding products outputted from product multipliers, a function circuit for applying a non-linear function to the sum outputted by the adder, and a register for storing the output of the function circuit.
31 Citations
17 Claims
-
1. A pipelined hardware implementation of a neural network circuit, comprising:
-
an input stage for receiving and storing input values;
a first processing stage coupled to the input stage, the first processing stage including a plurality of first processing units, each first processing unit including;
(a) a weight store for storing a plurality of weighted values;
(b) a plurality of multipliers each for multiplying an input value by a respective weighted value;
(c) an adder for adding a product outputted from one of the multipliers with at least one product outputted from a respective multiplier of another one of the plurality of first processing units;
(d) a function circuit for receiving a sum outputted by the adder and for generating therefrom a processing unit value; and
(e) a register for storing the processing unit value generated by the function circuit;
an additional processing stage coupled to an upstream processing stage and including a plurality of additional stage processing units, each additional stage processing unit including;
(i) a weight store for storing a plurality of weighted values;
(ii) a plurality of multipliers each for multiplying a processing unit value received from a processing unit of the upstream processing stage by a respective weighted value;
(iii) an adder for adding a product outputted from one of the multipliers of the respective additional stage processing unit with at least one product outputted from a respective multiplier of another one of the plurality of additional stage processing units;
(iv) a function circuit for receiving a sum outputted by the adder of the respective additional stage processing unit and for generating therefrom a processing unit value; and
(v) a register for storing the processing unit value generated by the function circuit of the respective additional stage processing unit; and
an output stage formed from output ports of the registers of the additional processing stage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of performing a neural network process, comprising:
-
providing an input stage for receiving and storing input values;
providing a first processing stage coupled to the input stage, the first processing stage including a plurality of first processing units, each first processing unit including;
(a) a weight store for storing a plurality of weighted values;
(b) a plurality of multipliers each for multiplying an input value by a respective weighted value;
(c) an adder for adding a product outputted from one of the multipliers with at least one product outputted from a respective multiplier of another one of the plurality of first processing units;
(d) a function circuit for receiving a sum outputted by the adder and for generating therefrom a processing unit value; and
(e) a register for storing the processing unit value generated by the function circuit;
providing an additional processing stage coupled to an upstream processing stage and including a plurality of additional stage processing units, each additional stage processing unit including;
(i) a weight store for storing a plurality of weighted values;
(ii) a plurality of multipliers each for multiplying a processing unit value received from a processing unit of the upstream processing stage by a respective weighted value;
(iii) an adder for adding a product outputted from one of the multipliers of the respective additional stage processing unit with at least one product outputted from a respective multiplier of another one of the plurality of additional stage processing units;
(iv) a function circuit for receiving a sum outputted by the adder of the respective additional stage processing unit and for generating therefrom a processing unit value; and
(v) a register for storing the processing unit value generated by the function circuit of the respective additional stage processing unit;
forming an output stage from output ports of the registers of the additional processing stage; and
operating the first processing stage and the additional processing stage simultaneously to process respective sets of input values.
-
-
11. A pipelined hardware implementation of a neural network circuit, comprising:
-
an input stage for receiving and storing input values;
a first processing stage coupled to the input stage, the first processing stage including a plurality of first processing units, each first processing unit including;
(a) a weight store for storing a plurality of weighted values;
(b) a plurality of multipliers each for multiplying an input value by a respective weighted value;
(c) an adder for adding a product outputted from one of the multipliers with at least one product outputted from a respective multiplier of another one of the plurality of first processing units;
(d) a function circuit for receiving a sum outputted by the adder and for generating therefrom a processing unit value; and
(e) a register for storing the processing unit value generated by the function circuit;
an additional processing stage coupled to an upstream processing stage and including at least one additional stage processing unit, the additional stage processing unit including;
(i) a weight store for storing a plurality of weighted values;
(ii) a plurality of multipliers each for multiplying a processing unit value received from a processing unit of the upstream processing stage by a respective weighted value;
(iii) an adder for adding at least some of the products outputted from the multipliers of the respective additional stage processing unit;
(iv) a function circuit for receiving a sum outputted by the adder of the respective additional stage processing unit and generating therefrom a processing unit value; and
(v) a register for storing the processing unit value generated by the function circuit of the respective additional stage processing unit; and
an output stage including an output port of the register of the additional processing stage. - View Dependent Claims (12, 13)
-
-
14. A pipelined hardware implementation of a neural network circuit, comprising:
-
an input stage adapted to receive and store input values;
a first processing stage coupled to the input stage, the first processing stage including a plurality of first processing units, each first processing unit including;
(a) a weight store adapted to store a plurality of weighted values;
(b) a plurality of multipliers each adapted to multiply an input value by a respective weighted value;
(c) an adder adapted to add a product outputted from one of the multipliers with at least one product outputted from a respective multiplier of another one of the plurality of first processing units;
(d) a function circuit adapted to receive a sum outputted by the adder and to generate therefrom a processing unit value; and
(e) a register adapted to store the processing unit value generated by the function circuit;
an additional processing stage coupled to an upstream processing stage and including a plurality of additional stage processing units, each additional stage processing unit including;
(i) a weight store adapted to store a plurality of weighted values;
(ii) a plurality of multipliers each adapted to multiply a processing unit value received from a processing unit of the upstream processing stage by a respective weighted value;
(iii) an adder adapted to add a product outputted from one of the multipliers of the respective additional stage processing unit with at least one product outputted from a respective multiplier of another one of the plurality of additional stage processing units;
(iv) a function circuit adapted to receive a sum outputted by the adder of the respective additional stage processing unit and to generate therefrom a processing unit value; and
(v) a register adapted to store the processing unit value generated by the function circuit of the respective additional stage processing unit; and
an output stage formed from output ports of the registers of the additional processing stage.
-
-
15. A pipelined hardware implementation of a recall-only neural network circuit, comprising:
-
an input stage adapted to receive and store at least one input value;
a first processing stage coupled to the input stage, the first processing stage including at least one processing unit having;
(a) a weight store adapted to store at least one weighted value;
(b) at least one multiplier adapted to multiply an input value by a respective weighted value;
(c) a function circuit coupled downstream from one or more of the at least one multiplier and adapted to receive a function input and to generate therefrom a processing unit value; and
(d) a register adapted to store the processing unit value generated by the function circuit;
an additional processing stage coupled to an upstream processing stage and including at least one additional stage processing unit having;
(i) a weight store adapted to store at least one weighted value;
(ii) at least one multiplier adapted to multiply a processing unit value received from a processing unit of the upstream processing stage by a weighted value;
(iii) a function circuit coupled downstream from one or more of the at least one multiplier of the respective additional stage processing unit and adapted to receive a function input and to generate therefrom a processing unit value; and
(iv) a register adapted to store the processing unit value generated by the function circuit of the respective additional stage processing unit; and
an output stage including an output port of the register of the additional processing stage. - View Dependent Claims (16, 17)
-
Specification