IP Library › Granted Patent US 10,853,721
Granted Patent B2
US 10,853,721 · App. 15/685,042 · Granted Dec 1, 2020

Multiplier accumulator, network unit, and network apparatus

Inventors: Masafumi Mori (Yokkaichi, JP); Takao Marukame (Chuo, JP); Tetsufumi Tanamoto (Kawasaki, JP); Satoshi Takaya (Kawasaki, JP)
Assignee: Kabushiki Kaisha Toshiba
G06N3/0445G06N3/0472G06N3/063
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 10,853,721
App. No.
15/685,042
Granted
Dec 1, 2020
Kind
B2
Abstract

According to an embodiment, a multiplier accumulator includes a controller, a high-order multiplier, a high-order accumulator, a low-order multiplier, and an output unit. The controller is configured to designate each digit within a range of the most significant digit in a coefficient for an input value to a stop digit as a target digit. The high-order multiplier is configured to calculate a high-order multiplication value by multiplying the input value, and a value and a weight of the target digit. The high-order accumulator is configured to calculate a high-order accumulation value by accumulatively adding the high-order multiplication values for input values. The low-order multiplier is configured to calculate a low-order multiplication value by multiplying an input value and a value of a digit smaller than the stop digit. The output unit is configured to output a value determined based on whether the high-order accumulation value exceeds a boundary value.

Claims (63)

1. A multiplier accumulator comprising:

a coefficient storage configured to store N coefficients corresponding to N input values on a one-to-one basis, each coefficient having a value indicating a sign at a most significant digit, where N is an integer equal to or greater than two;

a controller configured to designate each of a plurality of digits included in the N coefficients and within a range of the most significant digit to a stop digit that is predetermined as a target digit;

a high-order multiplier configured to calculate a high-order multiplication value obtained by multiplying a corresponding input value, a value of the target digit in a corresponding coefficient, and a weight of the target digit, for each of the N input values;

a high-order accumulator configured to calculate a high-order accumulation value obtained by accumulatively adding the high-order multiplication value calculated for the N input values;

a low-order multiplier configured to calculate a low-order multiplication value by multiplying a corresponding input value and a value of a digit smaller than the stop digit in a corresponding coefficient, for each of the N input values; and

an output circuit configured to output a multiplication accumulation value, wherein

when the high-order accumulation value exceeds a boundary value that is preset, the output circuit outputs a value in a range after passing the boundary value as the multiplication accumulation value, and

when the high-order accumulation value does not exceed the boundary value even when the high-order multiplication value is calculated by designating the stop digit as the target digit, the output circuit outputs a value obtained by adding, to the high-order accumulation value, a low-order accumulation value obtained by accumulatively adding the low-order multiplication value calculated for the N input values, as the multiplication accumulation value.

2. The multiplier accumulator according to claim 1 , wherein

the high-order multiplier calculates the high-order multiplication value by a circuit configured to execute a first operation expression in which a multiplication result of a digit lower than the most significant digit and a corresponding input value is 0 or positive, and

the low-order multiplier calculates the low-order multiplication value by the circuit configured to execute the first operation expression.

3. The multiplier accumulator according to claim 2 , wherein

when the high-order accumulation value is larger than a first boundary value that is preset, the output circuit outputs a value larger than the first boundary value as the multiplication accumulation value, and

when the high-order accumulation value is not larger than the first boundary value even when the high-order multiplication value is calculated by designating the stop digit as the target digit, the output circuit outputs a value obtained by adding the low-order accumulation value to the high-order accumulation value as the multiplication accumulation value.

4. The multiplier accumulator according to claim 1 , wherein

the high-order multiplier calculates the high-order multiplication value by a circuit configured to execute a second operation expression in which a multiplication result of a digit lower than the most significant digit and a corresponding input value is 0 or negative, and

the low-order multiplier calculates the low-order multiplication value by the circuit configured to execute the second operation expression.

5. The multiplier accumulator according to claim 4 , wherein

when the high-order accumulation value is smaller than a second boundary value that is preset, the output circuit outputs a value smaller than the second boundary value as the multiplication accumulation value, and

when the high-order accumulation value is not smaller than the second boundary value even when the high-order multiplication value is calculated by designating the stop digit as the target digit, the output circuit outputs a value obtained by adding the low-order accumulation value to the high-order accumulation value as the multiplication accumulation value.

6. The multiplier accumulator according to claim 1 , wherein

the controller sequentially designates each of a plurality of digits within the range of the most significant digit to the stop digit as the target digit from a higher order, and designates a new target digit after calculating every high-order multiplication value of the N input values for the designated new target digit, and

the high-order multiplier calculates the high-order multiplication value each time the target digit is designated.

7. The multiplier accumulator according to claim 6 , wherein when the high-order accumulation value exceeds the boundary value, the controller stops multiplication processing by the high-order multiplier and the low-order multiplier.

8. The multiplier accumulator according to claim 1 , wherein

the coefficient storage includes

a first memory configured to store a value of the stop digit and a value of a digit higher than the stop digit in each of the N coefficients, and

a second memory configured to store a value of a digit lower than the stop digit in each of the N coefficients, and

the first memory allows reading the values of the N coefficients in a unit of digit.

9. The multiplier accumulator according to claim 8 , wherein a power supply voltage lower than a power supply voltage applied to the first memory is applied to the second memory.

10. The multiplier accumulator according to claim 1 , wherein each of the N coefficients is binary number data represented by 2's complement representation.

11. The multiplier accumulator according to claim 10 , wherein

each of the N input values is data including a sign, and

each time the target digit is designated, the high-order multiplier calculates, for each of the N input values, the high-order multiplication value by multiplying an absolute value of a corresponding input value, a value obtained by inverting the value of the target digit in a corresponding coefficient according to a sign of the corresponding input value, and the weight of the target digit.

12. The multiplier accumulator according to claim 1 , wherein the low-order multiplier starts processing after processing by the high-order multiplier is completed.

13. The multiplier accumulator according to claim 1 , wherein the low-order multiplier executes processing in parallel with processing by the high-order multiplier.

14. The multiplier accumulator according to claim 13 , wherein the low-order multiplier starts processing when a predetermined digit is designated as the target digit.

15. The multiplier accumulator according to claim 1 , wherein

at least one of the high-order multiplier and the low-order multiplier includes

a memory array having a plurality of resistive random access memories respectively corresponding to a plurality of coefficients,

a writer configured to set each of the plurality of resistive random access memories to a conductance according to a corresponding coefficient prior to multiplication, and

a reader configured to apply a voltage according to an input value corresponding to each of the plurality of resistive random access memories.

16. The multiplier accumulator according to claim 1 , wherein

at least one of the high-order multiplier and the low-order multiplier includes

a memory array having a plurality of capacitive coupling memories respectively corresponding to a plurality of coefficients,

a writer configured to set each of the plurality of capacitive coupling memories to a capacitance according to a corresponding coefficient prior to multiplication, and

a reader configured to apply a voltage according to an input value corresponding to each of the plurality of capacitive coupling memories.

17. A network unit comprising:

a multiplier accumulator configured to output a multiplication accumulation value obtained by accumulating N multiplication values obtained by multiplying each of N input values and a corresponding coefficient, where N is an integer equal to or greater than two; and

an activation function circuit configured to convert an intermediate value as the multiplication accumulation value into an output value based on a function in which a value of a dependent variable becomes saturated as an absolute value of an independent variable becomes large, wherein

the multiplier accumulator includes

a coefficient storage configured to store N coefficients corresponding to the N input values on a one-to-one basis, each coefficient having a value indicating a sign at a most significant digit;

a controller configured to designate each of a plurality of digits included in the N coefficients and within a range of the most significant digit to a stop digit that is predetermined as a target digit;

a high-order multiplier configured to calculate a high-order multiplication value obtained by multiplying a corresponding input value, a value of the target digit in a corresponding coefficient, and a weight of the target digit, for each of the N input values;

a high-order accumulator configured to calculate a high-order accumulation value obtained by accumulatively adding the high-order multiplication value calculated for the N input values;

a low-order multiplier configured to calculate a low-order multiplication value by multiplying a corresponding input value and a value of a digit smaller than the stop digit in a corresponding coefficient, for each of the N input values; and

an output circuit configured to output a multiplication accumulation value, wherein

when the high-order accumulation value exceeds a preset boundary value that is preset, the output circuit outputs a value in a range after passing the boundary value as the multiplication accumulation value, and

when the high-order accumulation value does not exceed the boundary value even when the high-order multiplication value is calculated by designating the stop digit as the target digit, the output circuit outputs a value obtained by adding, to the high-order accumulation value, a low-order accumulation value obtained by accumulatively adding the low-order multiplication value calculated for the N input values, as the multiplication accumulation value.

18. A network apparatus comprising a plurality of layers subordinately connected, wherein

each of the plurality of layers includes at least one network unit according to claim 17 , and

the at least one network unit included in any one of the plurality of layers receives N signal values output from an immediately preceding layer as N input values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2017
From: MORI, MASAFUMI; MARUKAME, TAKAO; TANAMOTO, TETSUFUMI; TAKAYA, SATOSHI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 043736/0291 →
Priority Claims (1)
JP 2017-011486 · Jan 25, 2017 · national
Continuity (1)
Related Publication 20180211154A1 · Jul 26, 2018
Cited By (1)
US 12,614,587