MULTIPLY-ACCUMULATE DEVICE AND MULTIPLY-ACCUMULATE METHOD
20210240944 · 2021-08-05
Inventors
Cpc classification
G06G7/60
PHYSICS
G06N3/049
PHYSICS
International classification
G06G7/60
PHYSICS
Abstract
A multiply-accumulate device (10) includes: a comparison unit (18) that compares, with a threshold voltage, a voltage generated by an electric charge stored in a storage unit (14), and outputs an output signal at timing at which the voltage exceeds the threshold voltage; and a control circuit (110) that reduces, based on a predetermined set value, a charging current to the storage unit (14) from a plurality of input units (13) connected to the storage unit (14).
Claims
1. A multiply-accumulate device comprising: a comparison unit that compares, with a threshold voltage, a voltage generated by an electric charge stored in a storage unit, and outputs an output signal at timing at which the voltage exceeds the threshold voltage; and a control circuit that reduces, based on a predetermined set value, a charging current to the storage unit from a plurality of input units connected to the storage unit.
2. The multiply-accumulate device according to claim 1, wherein the control circuit lowers the charging current by changing a number of the plurality of input units which output signals to the storage unit.
3. The multiply-accumulate device according to claim 2, wherein the control circuit changes the number of the plurality of input units when a first time is reached.
4. The multiply-accumulate device according to claim 2, wherein the control circuit lowers the charging current by controlling switch units provided in the plurality of input units.
5. The multiply-accumulate device according to claim 2, wherein the control circuit lowers the charging current by stopping an output of a multiplier-accumulator in a previous stage or an output buffer connected to the multiplier-accumulator in the previous stage.
6. The multiply-accumulate device according to claim 1, wherein the control circuit lowers the threshold voltage supplied to the comparison unit.
7. The multiply-accumulate device according to claim 6, wherein the control circuit lowers the threshold voltage based on a value of the voltage of the storage unit.
8. The multiply-accumulate device according to claim 7, wherein the control circuit lowers the threshold voltage so that the threshold voltage becomes equal to or higher than a maximum value of a voltage of the storage unit at a first time when the output signal is output from the comparison unit at earliest timing.
9. The multiply-accumulate device according to claim 8, wherein the control circuit lowers the threshold voltage from the first time so that the threshold voltage becomes equal to or lower than a minimum value of a voltage of the storage unit at a second time having a same time length as a time length of the first time.
10. The multiply-accumulate device according to claim 1, further comprising: a first clip circuit that clips a minimum value of the output signal to a first value; and a second clip circuit that clips a maximum value of the output signal to a second value.
11. The multiply-accumulate device according to claim 10, wherein the first clip circuit is composed of an AND circuit.
12. The multiply-accumulate device according to claim 10, wherein the second clip circuit is composed of an OR circuit.
13. The multiply-accumulate device according to claim 1, further comprising a calculation device that calculates the set value.
14. A multiply-accumulate method comprising: comparing, with a threshold voltage, a voltage generated by an electric charge stored in a storage unit, and outputting an output signal at timing at which the voltage exceeds the threshold voltage; and reducing, based on a predetermined set value, a charging current to the storage unit from a plurality of input units connected to the storage unit.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
DESCRIPTION OF EMBODIMENTS
[0026] A detailed description will be given below of embodiments of the present disclosure with reference to the drawings. Note that, in the following respective embodiments, the same reference numerals are given to the same portions, and a duplicate description will be omitted.
[0027] Further, the present disclosure will be described in the following item order.
[0028] 1. Outline
[0029] 1-1. Outline of Multiply-Accumulate Device
[0030] 1-2. Outline of Multiplier-Accumulator
[0031] 1-3. Network Configuration of Multiply-Accumulate Device
[0032] 2. First Embodiment
[0033] 2-1. Configuration of Multiplier-Accumulator of Multiply-Accumulate Device According to First Embodiment
[0034] 2-2. Setting of Charge Amount and Threshold Voltage
[0035] 2-3. Clip Circuit
[0036] 2-4. Modified Example of Multiplier-Accumulator According to First Embodiment
[0037] 3. Second Embodiment
[0038] 3-1. Configuration of Multiplier-Accumulator of Multiply-Accumulate Device According to Second Embodiment
1. Outline
[1-1. Outline of Multiply-Accumulate Device]
[0039] First, a description will be given of an outline of a multiply-accumulate device 10 to which each embodiment of the present disclosure is applied. Each multiplier-accumulator 11 of the multiply-accumulate device 10 according to each embodiment of the present disclosure associates a load (weight) w.sub.i with each of N electrical signals I.sub.i, and derives a sum of N multiplication values each obtained by multiplying each value of the electrical signal I.sub.i and the load w.sub.i which make a pair, by each other. Here, N is a natural number of 2 or more, and i is a natural number of N or less.
[0040] It is assumed that the value represented by the electrical signal I.sub.i (hereinafter, also simply referred to as an electrical signal) is x.sub.i, and that the N electrical signals are given to one multiplier-accumulator 11 within a predetermined period T.sub.1. In this case, the sum of the N multiplication values, which is obtained by the multiplier-accumulator 11, is represented by the following equation (1).
[0041] As illustrated in
[0042] Such multipliers-accumulators 11 in the upper layer each associate the load w.sub.i individually with the values of the electrical signals sent from the plurality of multipliers-accumulators 11 in the lower layer, and obtain a calculation target value. Then, each of the multipliers-accumulators 11 in the upper layer transmits an electrical signal, which represents the calculation target value, to multipliers-accumulators 11 in a further upper layer. The multiply-accumulate device 10 according to each embodiment of the present disclosure is designed so as to be applicable to a neural network. Such a multiply-accumulate device 10 performs, a plurality of times, processing for obtaining the calculation target values by the multipliers-accumulators 11 in the upper layer based on the calculation target values obtained by the multipliers-accumulators 11 in the lower layer. Thus, the multiply-accumulate device 10 executes image recognition processing and the like.
[1-2. Outline of Multiplier-Accumulator]
[0043] Referring to
[0044] As illustrated in
[0045] The N input units 13 are connected in parallel to one another. Each of the input units 13 associates the load w.sub.i with the electrical signal given within the predetermined period T.sub.1, and outputs an electric charge having a magnitude corresponding to the value obtained by multiplying the electrical signal x.sub.i and the load w.sub.i by each other. Further, as illustrated in
[0046] The storage unit 14 is connected to each input unit 13 and stores the electric charge output from each input unit 13. The storage unit 14 is, for example, a capacitor.
[0047] Outside the multiplier-accumulator 11a, a length of the period T.sub.1 is defined as T.sub.in, and the following equation (2) is used, whereby the value x.sub.i represented by the electrical signal is converted into timing t.sub.i when the electrical signal is given. That is, the electrical signal is input to the input terminal 15 at the timing t.sub.i.
t.sub.i=T.sub.in(1−x.sub.i) (2)
[0048] Assuming that a waveform that is generated from the timing t.sub.i when the electrical signal is given and increases or decreases in proportion to the passage of time t is defined as a response waveform W, an electric charge amount P.sub.i(t) supplied from each input unit 13 to the storage unit 14 can be represented by a magnitude of the response waveform W. Assuming that a slope of the response waveform W with respect to the passage of time t is defined as k.sub.i, the load w.sub.i can be converted into k.sub.i using the following equation (3).
k=λw.sub.i (3)
[0049] Here, assuming that a waveform obtained by adding all the response waveforms W to one another is defined as a composite waveform TW, a magnitude of the composite waveform TW is the sum total of P.sub.1(t), P.sub.2(t), P.sub.3(t), . . . , and P.sub.N(t). This is equal to a voltage generated by the storage unit 14. Here, the voltage held in the storage unit 14 is defined as V.sub.N(t).
[0050] The comparison unit 18 compares a threshold and a signal input thereto with each other, and outputs a step waveform when the input signal exceeds the threshold. The comparison unit 18 is, for example, a comparator. The comparison unit 18 is connected to the storage unit 14 and the threshold power supply 19.
[0051] The threshold power supply 19 gives the threshold voltage to the comparison unit 18. Here, a magnitude of the threshold voltage is defined as θ. In this case, the comparison unit 18 outputs the step waveform at timing at which the voltage V.sub.N(t) held in the storage unit 14 exceeds the threshold θ. Assuming that the timing at which V.sub.N(t) reaches the threshold θ is defined as t.sub.v, the following equation (4) is obtained.
[0052] Then, assuming that the sum total of the loads w.sub.i is defined as β, β can be represented by the following equation (5).
[0053] Then, from the equations (2) to (5), the calculation target value of the multiplier-accumulator 11a can be represented by the following equation (6).
[0054] Here, it is assumed that all of the loads w.sub.i are positive values. In this case, when the value x.sub.i represented by the electrical signal given to each input terminal 15 is a minimum value 0, a left side of the equation (6) becomes 0, so that the timing of t.sub.v becomes latest. The timing t.sub.v.sup.min can be represented by the following equation (7).
[0055] The fact that the left side of the equation (6) is 0 means that the timing at which the step waveform is output from the comparison unit 18 is the latest.
[0056] On the other hand, when the value x.sub.i represented by the electrical signal given to each input terminal 15 is a maximum value 1, the left side of the equation (6) becomes β, so that the timing of t.sub.v becomes earliest. The timing t.sub.v.sup.max is represented by the following equation (8).
[0057] The fact that the left side of the equation (6) is β means that the timing at which the step waveform is output from the comparison unit 18 is the earliest. Therefore, from the equations (7) and (8), a period T.sub.2 during which the step waveform is output from the comparison unit 18 is [t.sub.v.sup.max, t.sub.v.sup.min], and a time length T.sub.v of the period T.sub.2 can be given by the following equation (9).
T.sub.v=t.sub.v.sup.min−t.sub.v.sup.max=T.sub.in (9)
[0058] Hence, the time length T.sub.v of the period T.sub.2 during which the step waveform is output from the comparison unit 18 becomes equal to the time length T.sub.in of the period T.sub.1 during which the electrical signal is given to each input unit 13.
[0059] In order to reflect all of the electrical signals given to the respective input units 13 to the calculation target value of the multiplier-accumulator 11a, the period T.sub.2 needs to be present on and after the period T.sub.1, and θ needs to be an appropriate value. For that purpose, a condition shown in the following equation (10) is required.
t.sub.v.sup.max>T.sub.in (10)
[0060] From the equation (8), the equation (10) can be transformed into the following equation (11).
θ>λβT.sub.in (11)
[0061] Here, when ε(>0) of a minute amount is defined, the threshold θ can be expressed by the following equation (12) using ε.
θ=(1+ε)λβT.sub.in (12)
[0062] From the equation (12), the threshold θ needs to be proportional to a product of the sum total β of the loads w.sub.i and the length T.sub.in of the period T.sub.1.
[0063] The following equation (13) is obtained from the equations (7) and (12), and the following equation (14) is obtained from the equations (8) and (12).
t.sub.v.sup.min=2T.sub.in+εT.sub.in (13)
t.sub.v.sup.max=T.sub.in+εT.sub.in (14)
[0064] Hence, a time range of the period T.sub.2 can be represented by the equations (13) and (14).
[0065] Referring to
[0066] For the N electrical signals given in the period T.sub.1, a multiplier-accumulator 11A associates w.sub.i.sup.+ with each of N.sub.+ electrical signals (N.sub.+ is a natural number of N or less). The multiplier-accumulator 11A associates an absolute value of w.sub.i.sup.− with each of (N-N.sup.+) electrical signals. Such a multiplier-accumulator 11A includes a first multiplier-accumulator 11Aa, a second multiplier-accumulator 11Ab, and a calculation unit 20.
[0067] As illustrated in
[0068] The first input units 13A are connected in parallel to one another. Each of the first input units 13A associates the load w.sub.i.sup.+ with the electrical signal given within the predetermined period T.sub.1, and outputs a response waveform in which a voltage changes with the passage of time. Further, as illustrated in
[0069] The first storage unit 14A is connected to each first input unit 13A and stores an electric charge output from each first input unit 13A. The first storage unit 14A is, for example, a capacitor.
[0070] The first comparison unit 18A compares a first threshold and a signal input thereto with each other, and outputs a step waveform at the time (hereinafter, referred to as first timing) when the input signal exceeds the first threshold. The first comparison unit 18A is, for example, a comparator. The first comparison unit 18A is connected to the first storage unit 14A and the first threshold power supply 19A.
[0071] The first threshold power supply 19A gives a first threshold voltage to the first comparison unit 18A. Here, a magnitude of the first threshold voltage is defined as θ.sup.+. In this case, the first comparison unit 18A outputs the step waveform at timing at which the voltage held in the first storage unit 14A exceeds the first threshold θ.sup.+.
[0072] As illustrated in
[0073] The second input units 13B are connected in parallel to one another. Each of the second input units 13B associates the load w.sub.i.sup.− with the electrical signal given within the predetermined period T.sub.1, and outputs a response waveform in which a voltage changes with the passage of time. Further, as illustrated in
[0074] The second storage unit 14B is connected to each second input unit 13B and stores an electric charge output from each second input unit 13B. The second storage unit 14B is, for example, a capacitor.
[0075] The second comparison unit 18B compares a second threshold and a signal input thereto with each other, and outputs a step waveform at the time (hereinafter, referred to as second timing) when the input signal exceeds the second threshold. The second comparison unit 18B is, for example, a comparator. The second comparison unit 18B is connected to the second storage unit 14B and the second threshold power supply 19B.
[0076] The second threshold power supply 19B gives a second threshold voltage to the second comparison unit 18B. Here, a magnitude of the second threshold voltage is defined as θ.sup.−. In this case, the second comparison unit 18B outputs the step waveform at timing at which the voltage held in the second storage unit 14B exceeds the second threshold θ.sup.−.
[0077] Here, a magnitude of the first threshold is defined as θ.sup.+, a magnitude of the second threshold is defined as θ.sup.−, the sum total of N.sup.+ positive loads w.sub.i.sup.+ is defined as β.sup.+, and the sum total of absolute values of N.sup.− negative loads w.sub.i.sup.− is defined as β.sup.−. In this case, β.sup.+ and β.sup.− can be represented by the following equations (15) and (16), respectively.
[0078] Here, N=N.sup.++N.sup.− and β=β.sup.+−β.sup.− are established. Assuming that the first timing is defined as t.sub.v.sup.+ and that the second timing is defined as t.sub.v.sup.−, then from the equation (4), θ.sup.+ and θ.sup.− can be represented by the following equations (17) and (18), respectively.
[0079] Note that λ=1 is set in the equations (17) and (18). The following equations (19) and (20) are obtained when the calculation target value (sum of N multiplication values) is divided into a calculation target value (hereinafter, a first product sum value) of the positive load w.sub.i.sup.+ and a calculation target value (hereinafter, a second product sum value) of the negative load w.sub.i.sup.−.
[0080] The calculation unit 20 calculates the calculation target value by subtracting the second product sum value from the first product sum value. Specifically, the calculation unit 20 is connected to the first comparison unit 18A, detects pulse signals transmitted from the first comparison unit 18A, and calculates the first product sum value. The calculation unit 20 is connected to the second comparison unit 18B, detects pulse signals transmitted from the second comparison unit 18B, and calculates the second product sum value.
[0081] In other words, the calculation unit 20 detects that the voltage held in the first storage unit 14A has reached the first threshold θ.sup.+, and calculates the first product sum value. The calculation unit 20 detects that the voltage held in the second storage unit 14B has reached the second threshold θ.sup.−, and calculates the second product sum value. Then, the calculation unit 20 calculates the calculation target value by subtracting the second product sum value from the first product sum value. An equation for calculating the calculation target value can be represented by the following equation (21).
[0082] Here, it is assumed that the calculation unit 20 calculates the first product sum value and the second product sum value in the period T.sub.2. In this case, in order to reflect all of the electrical signals given to the respective first input units 13A and all of the electrical signals given to the respective second input units 13B to the calculation target value, the period T.sub.2 needs to be present on and after the period T.sub.1. Moreover, the time length of the period T.sub.1 and the time length of the period T.sub.2 are both T.sub.in. Then, for that purpose, the first threshold θ.sup.+ and the second threshold θ.sup.− need to satisfy the following equations (22) and (23), respectively.
θ.sup.+=(1+ε)λβ.sup.+T.sub.in (22)
θ.sup.−=(1+ε)λβ.sup.−T.sub.in (23)
[0083] As shown in the equation (22), the first threshold θ.sup.+ is proportional to a product of the sum total θ.sup.+ of N.sup.+ loads w.sub.i.sup.+ and the length T.sub.in of the period T.sub.1. As shown in the equation (23), the second threshold θ.sup.− is proportional to a product of the sum total β.sup.− of the absolute values of N.sup.− loads w.sub.i.sup.− and the length T.sub.in of the period T1. The first threshold θ.sup.+ and the second threshold θ.sup.− satisfy the above-described relationships, whereby all of the electrical signals given to the respective first input units 13A and all of the electrical signals given to the respective second input units 13B can be reflected to the calculation target value. In other words, values of the first threshold θ.sup.+ and the second threshold θ.sup.− just need to be determined so as to satisfy the equations (22) and (23).
[0084] However, on a right side of the equation (21), a product of t.sub.v+ and β.sup.+ and a product of t.sub.v.sup.− and β.sup.− are present. Therefore, in order to calculate the calculation target value based on the equation (21), the calculation unit 20 requires a complicated circuit configuration.
[0085] Therefore, in order to simplify the circuit configuration of the calculation unit 20, an absolute value of a dummy load w.sub.0 that corresponds to a virtual electrical signal of a value 0 and is obtained by multiplying a difference between β.sup.+ and β.sup.− by −1 is added to a smaller one of β.sup.+ and β.sup.−. w.sub.0 can be represented by the following equation (24).
w.sub.0=−(β.sup.++β.sup.−) (24)
[0086] By adding the dummy load w.sub.0, β.sup.+=β.sup.− is established. From the equations (22) and (23), θ.sup.+=θ.sup.− is established. Therefore, β.sup.+=β.sup.−=β.sub.0 is established, and the equation (21) can be transformed into the following equation (25).
[0087] As shown in the equation (25), when the positive load w.sub.i.sup.+ and the negative load w.sub.i.sup.− are mixed, the calculation target value can be calculated based on a difference between the first timing and the second timing.
[0088] Here, if “t.sub.v.sup.−−t.sub.v.sup.+” that is the difference between the first timing and the second timing is input to a next layer as it is, “t.sub.v.sup.−-t.sub.v.sup.+” is multiplied by a reciprocal (1/(β) of the sum total of the loads. That is, for example, when simulation of a neural network is executed using this multiply-accumulate method, a distribution of the outputs from the multiplier-accumulator 11 is reduced as going deeper.
[1-3. Network Configuration of Multiply-Accumulate Device]
[0089] Referring to
[0090] As illustrated in
[0091]
[0092] Therefore, the multiply-accumulate device according to the present disclosure executes processing for expanding an interval of the timing at which the step waveform is output. Thus, the multiply-accumulate device according to the present disclosure can delay a time from the output of the step waveform to the output of the next step waveform, and accordingly, can prevent the concentration of the timing at which the step waveform is output.
2. First Embodiment
[2-1. Configuration of Multiplier-Accumulator of Multiply-Accumulate Device According to First Embodiment]
[0093] Referring to
[0094] As illustrated in
[0095] Referring to
[0096] A charge curve 61 is a charge curve when the step waveform is output at the first timing t.sub.v.sup.+ in the first multiplier-accumulator 11Aa having a positive load. As shown in the charge curve 61, the first storage unit 14A is charged by some of the plurality of first input units 13A between time 0 and time T.sub.in. Then, the first storage unit 14A is charged from all of the first input units 13A when the time reaches T.sub.in. A charge curve 71 is a charge curve when the step waveform is output at the second timing t.sub.v.sup.− in the second multiplier-accumulator 11Ab having an absolute value of a negative load. Here, since the signal is output from the multiplier-accumulator at the time when the voltage stored in the storage unit 14 reaches the threshold in a period from T.sub.in to 2T.sub.in a period of T.sub.in≤t≤2T.sub.in is called a VT conversion period.
[0097] A charge curve 81 shows a charge curve when the step waveform is output at earliest timing. In this case, from the point of time 0, the first storage unit 14A is started to be charged from all of the first input units 13A. A charge curve 82 shows a charge curve when the step waveform is output at latest timing. In this case, the first storage unit 14A is not charged during a time period from time 0 to time T.sub.in and is started to be charged from the point of time T.sub.in.
[0098] As mentioned above, in the multiplier-accumulator in which the first multiplier-accumulator 11Aa having a positive load and the second multiplier-accumulator 11Ab having an absolute value of a negative load are mixed, the signal is output based on the difference between the first timing and the second timing. Therefore, the difference between the first timing and the second timing becomes large by increasing a difference between the charge curve 61 and the charge curve 71 in the VT conversion period. As a result, the signal output from the calculation unit 20 becomes large. Specifically, slopes of the charge curve 61 and the charge curve 71 in the VT conversion period are individually halved, for example.
[0099] Thus, the charge curve 61 is converted into a charge curve 62, and the charge curve 71 is converted into a charge curve 72. In this case, since the output from the first multiplier-accumulator 11Aa is output as a signal in a period from T.sub.in to 3T.sub.in, the VT conversion period is changed to T.sub.in≤t≤3T.sub.in. Then, the difference between the charge curve 72 and the charge curve 62 in the VT conversion period is doubled as compared with the difference between the charge curve 71 and the charge curve 61.
[0100]
[0101] As illustrated in
[0102] The switch control circuit 120 controls opening and closing of each switch unit 121. The switch control circuit 120 controls the opening and closing of each switch unit 121 according to the control of the multiplier-accumulator control circuit 110. In this case, the multiplier-accumulator control circuit 110 outputs, to the switch control circuit 120, an instruction to set the charging current to a predetermined set value. The predetermined set value is, for example, a value that is 1/m (m is a number of 1 or more) of a charging current at the normal time. Specifically, when m is 2, the switch control circuit 120 controls each switch unit 121 so that the charging current is halved. In this case, assuming that the number of switch units 121 is 100, a desired charging current can be achieved by reducing the number to 50, which is a half of the number. Further, when m is 2.5, the switch control circuit 120 controls each switch unit 121 so that the charging current becomes 2/5. In this case, assuming that the number of switch units 121 is 100, a desired charging current can be achieved by reducing the number to 40. The switch control circuit 120 can be achieved by, for example, an electronic circuit including a CPU. Note that a synchronization signal for synchronizing operations is input from the synchronization signal generator 130 to the multiplier-accumulator control circuit 110 and the switch control circuit 120.
[0103] Referring to
[0104] As illustrated in
[0105] In a pattern B, the signal input units to the first storage unit 14A are composed of an input unit group 13A-2 and an input unit group 13A-3. In this case, at the normal time, the input unit group 13A-3 outputs signals, but the input unit group 13A-2 does not output signals. Then, in the case of reducing the charging current to the first storage unit 14A, switching is made so as not to output signals from the input unit group 13A-3 and to output signals only from the input unit group 13A-2. That is, the input unit group 13A-2 is configured to output a predetermined charging current at the time when the charging current decreases. The signal input units to the first storage unit 14A are configured in this way, whereby the normal time and the time of reducing the charging current can be switched.
[0106] In a pattern C, the signal input units to the first storage unit 14A are composed of an input unit group 13A-1 and an input unit group 13A-2. In this case, at the normal time, the input unit group 13A-1 outputs signals, but the input unit group 13A-2 does not output signals. Then, in the case of reducing the charging current to the first storage unit 14A, signals are output from the input unit group 13A-2, and signals are output from the input unit group 13A-1 so as to make up for a shortage. The signal input units to the first storage unit 14A are configured in this way, whereby the normal time and the time of reducing the current can be switched.
[0107] Note that each first input unit 13A includes the first diode 17A in the first embodiment. Therefore, if the first diode 17A can be used as a switch unit, each switch unit 121 may be omitted.
[2-2. Setting of Charging Current and Threshold Voltage]
[0108] Referring to
[0109] A description will be given of how to determine m when the charging current is set to 1/m of a current at the normal time. In order to calculate m, an output value range of the output of each multiplier-accumulator provided in the multiply-accumulate device 10 is investigated. Then, the distribution of the outputs from each multiplier-accumulator becomes a distribution close to the normal distribution. Here, if the distribution of the outputs of the multiplier-accumulator is the normal distribution, the range of ±2σ includes an output of 95.5%, and the range of ±3σ includes an output of 99.7%. First, in the first embodiment, an upper limit value t.sub.v.sup.(A).min and lower limit value t.sub.v.sup.(A).max of the timing at which the signal is output are determined. For example, as will be described in detail later, when the upper limit value and the lower limit value are included in ±2σ, approximately 4.5% of the output is present outside the range, and accordingly, the output present in that range will be clipped to an upper limit or a lower limit in processing for expanding output difference timing. When setting the upper limit value and the lower limit value, it is preferable to consider values of the upper limit value and the lower limit value and performance deterioration of the multiplier-accumulator due to insertion of a clip function. For example, if the performance deterioration caused by clipping the output signal cannot be tolerated, it is also considered to expand the output timing to a range lager than ±2σ. When the upper limit value and the lower limit value are determined, [t.sub.v.sup.(A).min−t.sub.v.sup.(A).max] as a difference between the upper limit value and the lower limit value becomes an output value range before expanding the output timing. A value obtained by dividing such a maximum output value range T.sub.in of the multiplier-accumulator by [t.sub.v.sup.(A).min−t.sub.v.sup.(A).max] becomes a limit magnification m.sub.max that expands the output timing. Due to a relationship between the output value range before the expansion and the maximum output value range, such an expansion rate cannot be increased any more.
[0110] Then, as a value of m.sub.max or less, the actual m just needs to be set arbitrarily by the user. When the user places high importance on such a timing difference expansion rate, m.sub.max may be selected as m. When it is not necessary to increase the timing difference expansion rate to the maximum, a value desired by the user just needs to be selected from values of m.sub.max or less. More specifically, for example, assuming that the number of switch units 121 is 100 when the charging current is reduced to 1/3, 100/33, which is the maximum number that does not exceed m.sub.max=3 out of 100/i (i is an integer of 1 to 100), just needs to be set as new m.sub.max. In this case, the user may arbitrarily set actual m out of 100/j (j is an integer of 34 to 100).
[0111] Next, a description will be given of a method for determining the threshold voltage. Specifically, by the increase of the expansion rate, the slope of the charge curve becomes gentle, it takes longer for the charge curve to reach the threshold voltage, and it takes time for the signal to be output. Hence, a threshold voltage after the timing expansion of the output difference is set lower than the threshold voltage before the expansion of the threshold voltage. Such a threshold voltage is calculated based on the above-mentioned lower limit value t.sub.v.sup.(A).max.
[0112] Here, the threshold voltage calculated based on the equation (10) is defined as θ.sub.L. Further, a charge curve 91 from T.sub.in to the lower limit value t.sub.v.sup.(A).max, which intersects the horizon of θ.sub.L, is considered. Then, a voltage of the charge curve 91 when t=T.sub.in is used as a new threshold voltage θA. In
[0113] In the charge curve 61, the time when the threshold voltage θ.sub.A is reached is defined as t.sub.μ.sup.+. In the charge curve 71, the time when the threshold voltage θ.sub.A is reached is defined as t.sub.μ.sup.−. Here, since the charge curve 61 and the charge curve 62 have the same slope, (t.sub.μ.sup.−−t.sub.μ.sup.+)=(t.sub.μ.sup.−−t.sub.μ.sup.+) is established. Hence, even if the threshold voltage is lowered from θ.sub.L to θ.sub.A, the difference between the first timing and the second timing does not change.
[0114] Note that, though each charge curve is approximated to the linear function in
[0115] In the equations (26) to (28), an input voltage value V.sub.in a resistance value R, and a capacitance C are known values. Therefore, even when the charge curves are expressed as the equations (26) to (28), m and θ.sub.A can be calculated by the same method as when the charge curve is a linear function.
[0116] In the present disclosure, the new lower limit value T.sub.in, the new upper limit value, the timing difference expansion rate m, and the threshold voltage θ.sub.A are stored in advance in the multiplier-accumulator control circuit 110. That is, the multiplier-accumulator control circuit 110 controls each unit based on the new lower limit value T.sub.in the new upper limit value, the timing difference expansion rate m, and the threshold voltage θ.sub.A.
[0117] For example, the multiplier-accumulator control circuit 110 sets the threshold voltage θ.sub.A in advance in the first threshold power supply 19A. In this case, the first threshold power supply 19A supplies the threshold voltage θ.sub.A to the first comparison unit 18A. The multiplier-accumulator control circuit 110 sets a switching pattern of each switch unit 121 based on, for example, the timing difference expansion rate m. The switching pattern is an instruction to set each switch unit 121 that allows supply of the voltage on and after T.sub.in in
[0118] The multiplier-accumulator control circuit 110 calculates, for example, lower limit timing and upper limit timing as the output timing. When θ.sub.A is used as the threshold voltage, the lower limit timing becomes T.sub.in regardless of the timing difference expansion rate m. In this case, the multiplier-accumulator control circuit 110 calculates the upper limit timing according to the value of m. Since the timing difference on and after T.sub.in becomes m times, the multiplier-accumulator control circuit 110 calculates m×(new upper limit value−T.sub.in)+T.sub.in and the upper limit timing. As illustrated in
[0119] The first clip circuit 210 clips the signal, which is output from the first comparison unit 18A, according to the lower limit timing signal. Then, the first clip circuit 210 outputs the clipped signal to the second clip circuit 220. The second clip circuit 220 clips the signal, which is output from the first clip circuit 210, according to the upper limit timing signal. Then, the second clip circuit 220 outputs the clipped signal to the multiplier-accumulator in the subsequent stage.
[2-3. Clip Circuit]
[0120] Referring to
[0121] A graph 211 illustrated in
[0122] On the other hand, a graph 212 illustrates an operation of the first clip circuit 210 when an input signal that rises at a time t.sub.a later than the lower limit time t.sub.b is input. In this case, the first clip circuit 210 outputs the input signal thus input to the second clip circuit 220 as it is.
[0123]
[0124] The second clip circuit 220 clips the signal, which is output from the first clip circuit 210, according to the upper limit timing signal. Then, the second clip circuit 220 outputs the clipped signal to the multiplier-accumulator in the upper layer.
[0125] Referring to
[0126] A graph 221 illustrated in
[0127] On the other hand, a graph 222 illustrates an operation of the second clip circuit 220 when an input signal that rises at a time t.sub.c later than the upper limit time t.sub.d is input. In this case, the second clip circuit 220 clips the timing at which the input signal rises to t.sub.d, and outputs the input signal to the upper multiplier-accumulator.
[0128]
[0129] Referring to
[0130]
[0131] For example, the case where an integer-format register added with an 8-bit code is used for an input unit of the circuit A 303 is considered. In such a case, the input unit of the circuit A 303 cannot handle numeric values exceeding +127 and numeric values lower than −128. Accordingly, among the signals input from the circuit X 301, the clip circuit 302 clips the numeric values, which exceed +127, to +127, and clips the numeric values, which are less than −128, to −128. Thus, the input unit of the circuit A 303 can handle all of the input signals.
[0132] Although digital signals have been described as examples in
[0133] Further, as illustrated in
[0134] Referring to
[0135] Further, the multiplier-accumulator control circuit 110 outputs the lower limit timing signal to the first clip circuit 210 when the time reaches the lower limit timing. The first clip circuit 210 clips a signal, which rises at too early timing in the step waveform output by the first comparison unit 18A, to the lower limit timing according to the lower limit timing signal, and outputs the clipped signal to the second clip circuit 220. Further, the multiplier-accumulator control circuit 110 outputs the upper limit timing signal to the second clip circuit 220 when the time reaches the upper limit timing. The second clip circuit 220 clips a too late input signal among the input signals, which are input from the first clip circuit 210, to the upper limit timing according to the upper limit timing signal, and outputs the clipped input signal to the multiplier-accumulator in the subsequent stage.
[2-4. Modified Example of Multiplier-Accumulator According to First Embodiment]
[0136]
[0137] As mentioned above, in the first embodiment, the charging current of the multiplier-accumulator is reduced, and the threshold voltage is lowered, whereby the output difference timing can be expanded without delaying the time until the output signal is output.
3. Second Embodiment
[3-1. Configuration of Multiplier-Accumulator of Multiply-Accumulate Device According to Second Embodiment]
[0138] Referring to
[0139] Each input unit 13C of a multiplier-accumulator 11Ba includes a first input terminal 15A, a first resistor 16A, and a first diode 17A. Further, each input unit 13C includes at least one of a previous-stage comparison unit 20A and an output buffer 21A.
[0140] The previous-stage comparison unit 20A is a comparison unit provided in a multiplier-accumulator in a previous stage to the multiplier-accumulator 11Ba. The output buffer 21A temporarily stores an output signal output by the previous-stage comparison unit 20A.
[0141] In the second embodiment, when including both of the previous-stage comparison unit 20A and the output buffer 21A, the switch control circuit 120 stops an output of the previous-stage comparison unit 20A or the output buffer 21A. When including only one of the previous-stage comparison unit 20A and the output buffer 21A, the switch control circuit 120 stops the one that is present. In this case, the multiplier-accumulator control circuit 110 outputs, to the switch control circuit 120, an instruction to set a charging current to a predetermined set value. Thus, the second embodiment can reduce the charging current.
[0142] Further, when the multiplier-accumulator 11Ba is in a first stage in the multiply-accumulate device 10, a DTC is connected to the first input terminal 15A. In this case, the switch control circuit 120 can stop the output of the DTC to reduce the charging current.
[0143] As mentioned above, in the second embodiment, the charging current of the multiplier-accumulator is reduced, and the threshold voltage is lowered, whereby the output difference timing can be expanded without delaying the time until the output signal is output.
[0144] Although the respective embodiments of the present disclosure have been described above, the technical scope of the present disclosure is not limited to the above-mentioned respective embodiments as they are, and various modifications can be made without departing from the spirit of the present disclosure. Further, constituents which cover different embodiments and modified examples may be combined with one another as appropriate.
[0145] Note that the effects described in the present specification are merely examples and are not limited, and other effects may be present.
[0146] Note that the present technology may also adopt such configurations as follows.
(1)
[0147] A multiply-accumulate device comprising:
[0148] a comparison unit that compares, with a threshold voltage, a voltage generated by an electric charge stored in a storage unit, and outputs an output signal at timing at which the voltage exceeds the threshold voltage; and
[0149] a control circuit that reduces, based on a predetermined set value, a charging current to the storage unit from a plurality of input units connected to the storage unit.
(2)
[0150] The multiply-accumulate device according to (1),
[0151] wherein the control circuit lowers the charging current by changing a number of the plurality of input units which output signals to the storage unit.
(3)
[0152] The multiply-accumulate device according to (2),
[0153] wherein the control circuit changes the number of the plurality of input units when a first time is reached.
(4)
[0154] The multiply-accumulate device according to (2) or (3),
[0155] wherein the control circuit lowers the charging current by controlling switch units provided in the plurality of input units.
(5)
[0156] The multiply-accumulate device according to (2) or (3),
[0157] wherein the control circuit lowers the charging current by stopping an output of a multiplier-accumulator in a previous stage or an output buffer connected to the multiplier-accumulator in the previous stage.
(6)
[0158] The multiply-accumulate device according to any one of (1) to (5),
[0159] wherein the control circuit lowers the threshold voltage supplied to the comparison unit.
(7)
[0160] The multiply-accumulate device according to (6), wherein the control circuit lowers the threshold voltage based on a value of the voltage of the storage unit.
(8)
[0161] The multiply-accumulate device according to (6) or (7),
[0162] wherein the control circuit lowers the threshold voltage so that the threshold voltage becomes equal to or higher than a maximum value of a voltage of the storage unit at a first time when the output signal is output from the comparison unit at earliest timing.
(9)
[0163] The multiply-accumulate device according to any one of (6) to (8),
[0164] wherein the control circuit lowers the threshold voltage from the first time so that the threshold voltage becomes equal to or lower than a minimum value of a voltage of the storage unit at a second time having a same time length as a time length of the first time.
(10)
[0165] The multiply-accumulate device according to any one of (1) to (9), further comprising:
[0166] a first clip circuit that clips a minimum value of the output signal to a first value; and
[0167] a second clip circuit that clips a maximum value of the output signal to a second value.
(11)
[0168] The multiply-accumulate device according to (10), wherein the first clip circuit is composed of an AND circuit.
(12)
[0169] The multiply-accumulate device according to (10) or (11),
[0170] wherein the second clip circuit is composed of an OR circuit.
(13)
[0171] The multiply-accumulate device according to any one of (1) to (12), further comprising
[0172] a calculation device that calculates the set value.
(14)
[0173] A multiply-accumulate method comprising:
[0174] comparing, with a threshold voltage, a voltage generated by an electric charge stored in a storage unit, and outputting an output signal at timing at which the voltage exceeds the threshold voltage; and
[0175] reducing, based on a predetermined set value, a charging current to the storage unit from a plurality of input units connected to the storage unit.
REFERENCE SIGNS LIST
[0176] 10 MULTIPLY-ACCUMULATE DEVICE [0177] 11, 11a, 11A MULTIPLIER-ACCUMULATOR [0178] 12 EXTERNAL INPUT UNIT [0179] 13, 13C INPUT UNIT [0180] 13A FIRST INPUT UNIT [0181] 13B SECOND INPUT UNIT [0182] 14 STORAGE UNIT [0183] 14A FIRST STORAGE UNIT [0184] 14B SECOND STORAGE UNIT [0185] 15 INPUT TERMINAL [0186] 15A FIRST INPUT TERMINAL [0187] 15B SECOND INPUT TERMINAL [0188] 16 RESISTOR [0189] 16A FIRST RESISTOR [0190] 16B SECOND RESISTOR [0191] 17 DIODE [0192] 17A FIRST DIODE [0193] 17B SECOND DIODE [0194] 18 COMPARISON UNIT [0195] 18A FIRST COMPARISON UNIT [0196] 18B SECOND COMPARISON UNIT [0197] 19 THRESHOLD POWER SUPPLY [0198] 19A FIRST THRESHOLD POWER SUPPLY [0199] 19B SECOND THRESHOLD POWER SUPPLY [0200] 110 MULTIPLIER-ACCUMULATOR CONTROL CIRCUIT [0201] 120 SWITCH CONTROL CIRCUIT [0202] 130 SYNCHRONIZATION SIGNAL GENERATOR [0203] 210 FIRST CLIP CIRCUIT [0204] 220 SECOND CLIP CIRCUIT