Apparatus and method with in-memory computing
View Patent ↗A multiply-accumulator (MAC) circuit includes: a plurality of multipliers each comprising: a field-effect transistor configured to apply an intermediate voltage to a node; a pair of resistive devices having resistance values determined based on the intermediate voltage applied to one ends connected to the node and weight setting voltages applied to the other ends; and a capacitor configured to be charged and discharged with an electric charge by receiving a voltage generated in the node based on a combined resistance value of the pair of resistive devices and input voltages applied individually to the other ends of the pair of resistive devices in response to individual resistance values of the pair of resistive devices being determined; and an output line configured to output a voltage based on electric charges charged to and discharged from the plurality of multipliers.
1 . A multiply-accumulator (MAC) circuit comprising:
a plurality of multipliers each comprising:
a field-effect transistor configured to apply an intermediate voltage to a node;
a pair of resistive devices having resistance values determined based on the intermediate voltage applied to one ends connected to the node and weight setting voltages applied to the other ends; and
a capacitor configured to be charged and discharged with an electric charge by receiving a voltage generated in the node corresponding to a value calculated by multiplying a weight corresponding to a combined resistance value of the pair of resistive devices by an input value corresponding to input voltages applied individually to the other ends of the pair of resistive devices in response to individual resistance values of the pair of resistive devices being determined; and
an output line configured to output a voltage based on electric charges charged to and discharged from the plurality of multipliers.
2 . The MAC circuit of claim 1 , wherein each of the pair of resistive devices is either one of a resistive random access memory (RRAM) and a magnetic random access memory (MRAM).
3 . The MAC circuit of claim 1 , wherein each of the pair of resistive devices is a resistive device having a variable resistance value.
4 . The MAC circuit of claim 1 , wherein, for each of the multipliers, the MAC circuit is configured to:
determine the resistance values of the pair of resistive devices by applying a voltage to both ends of each of the pair of resistive devices; and
write a weight according to a combined resistance value of the pair of resistive devices on the multiplier.
5 . The MAC circuit of claim 1 , wherein the combined resistance value of the pair of resistive devices corresponds to one ternary value among ternary values representing weights of connection lines between layers included in a neural network.
6 . The MAC circuit of claim 1 , wherein the MAC circuit is configured to:
apply a preset voltage to input terminals connected to the other ends of the pair of the resistive devices before the input voltages are applied to the pair of resistive devices; and
apply the preset voltage to the output line so as to precharge both ends of the capacitor at the preset voltage.
7 . The MAC circuit of claim 1 , wherein, in response to the resistance values of the pair of resistive devices being determined, the MAC circuit is configured to:
individually apply the input voltages to input terminals connected to the other ends of the pair of resistive devices; and
apply an input value according to combined input voltages to a multiplier.
8 . The MAC circuit of claim 7 , wherein the combined input voltages correspond to one ternary value among ternary values representing output values of nodes included in layers of a neural network.
9 . The MAC circuit of claim 1 , wherein the MAC circuit is configured to generate, in the node, a voltage corresponding to a value calculated by multiplying the input value corresponding to a combination of the input voltages individually applied to the pair of resistive devices, by the weight corresponding to a combination of the resistance values of the pair of resistive devices.
10 . The MAC circuit of claim 1 , wherein the output line is connected to each of the capacitors included in each of the plurality of multipliers and is configured to output a voltage based on an accumulation of electric charges charged to and discharged from each of the capacitors of the plurality of multipliers through capacitive coupling.
11 . A method performed by a multiply-accumulator (MAC) circuit, the method comprising:
applying an intermediate voltage to a node by a field-effect transistor connected to the node;
determining resistance values of a pair of resistive devices based on the intermediate voltage applied to one ends of the pair of resistive devices connected to the node and weight setting voltages applied to the other ends of the pair of resistive devices;
charging and discharging an electric charge in a capacitor connected to the node by receiving a voltage generated in the node corresponding to a value calculated by multiplying a weight corresponding to a combined resistance value of the pair of resistive devices by an input value corresponding to input voltages individually applied to the other ends of the pair of resistive devices in response to individual resistance values of the pair of resistive devices being determined; and
outputting a voltage based on the charged and discharged electric charge.
12 . The method of claim 11 , wherein each of the pair of resistive devices is either one of a resistive random access memory (RRAM) and a magnetic random access memory (MRAM).
13 . The method of claim 11 , wherein the determining of the resistance values of the pair of resistive devices comprises:
determining the resistance values of the pair of resistive devices by applying a voltage to both ends of each of the pair of resistive devices; and
writing a weight according to a combined resistance value of the pair of resistive devices on a multiplier comprising the pair of resistive devices.
14 . The method of claim 11 , wherein the combined resistance value of the pair of resistive devices corresponds to one ternary value among ternary values representing weights of connection lines between layers included in a neural network.
15 . The method of claim 11 , wherein the charging and discharging of the electric charge comprises precharging both ends of a capacitor at a preset voltage by applying, before the input voltages are applied to the pair of resistive devices, the preset voltage to input terminals connected to the other ends of the pair of the resistive devices and applying the preset voltage to an output line.
16 . The method of claim 11 , wherein, in response to the resistance values of the pair of resistive devices being determined, the charging and discharging of the electric charge comprises:
individually applying the input voltages to input terminals connected to the other ends of the pair of resistive devices; and
applying an input value according to combined input voltages to a multiplier.
17 . The method of claim 16 , wherein the combined input voltages correspond to one ternary value among ternary values representing output values of nodes included in layers of a neural network.
18 . The method of claim 11 , wherein the charging and discharging of the electric charge comprises generating, in the node, a voltage corresponding to the value calculated by multiplying an input value corresponding to a combination of the input voltages individually applied to the pair of resistive devices, by the weight corresponding to a combination of the resistance values of the pair of resistive devices.
19 . A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, configure the one or more processors to perform the method of claim 11 .
20 . A multiplier included in a multiply-accumulator (MAC) circuit, the multiplier comprising:
a field-effect transistor configured to apply an intermediate voltage to a node;
a pair of resistive devices having resistance values determined based on the intermediate voltage applied to one ends connected to the node and weight setting voltages applied to the other ends; and
a capacitor configured to be charged and discharged with an electric charge by receiving a voltage generated in the node corresponding to a value calculated by multiplying a weight corresponding to a combined resistance value of the pair of resistive devices and by input value corresponding to input voltages applied individually to the other ends of the pair of resistive devices in response to individual resistance values of the pair of resistive devices being determined.
21 . The multiplier of claim 20 , wherein the multiplier is configured to generate, in the node, a voltage corresponding to the value calculated by multiplying an input value corresponding to a combination of the input voltages individually applied to the pair of resistive devices, by the weight corresponding to a combination of the resistance values of the pair of resistive devices.
22 . A method performed by a multiply-accumulator (MAC) circuit, the method comprising:
writing a weight for a multiplier by applying an intermediate voltage to a node by a field-effect transistor connected to the node, the node corresponding to an end of each of a first resistive device and a second resistive device of the multiplier, and by applying a first weight setting voltage to another end of the first resistive device and a second weight setting voltage to another end of the second resistive device;
applying an input value to the multiplier by applying a first input voltage to the other end of the first resistive device and a second input voltage to the other end of the second resistive device; and
generating an output value of a neural network node corresponding to a value calculated by multiplying the input value by the weight by discharging a capacitor connected to the node in response to the applying of the input value.
23 . The method of claim 22 , wherein the writing of the weight comprises:
writing a first weight in response to the first weight setting voltage being greater than the second weight setting voltage;
writing a second weight in response to the first weight setting voltage being a same value as the second weight setting voltage; and
writing a third weight in response to the first weight setting voltage being less than the second weight setting voltage.
24 . The method of claim 22 , wherein the applying of the input value comprises:
applying a first input value in response to the first input voltage being greater than the second input voltage;
applying a second input value in response to the first input voltage being a same value as the second input voltage; and
applying a third input value in response to the first input voltage being less than the second input voltage.
25 . The method of claim 22 , further comprising:
in response to the writing of the weight, applying a predetermined voltage to the other end of the first resistive device, the other end of the second resistive device, and an output line connected to an end of the capacitor,
wherein the applying of the input value comprises applying the input value in response to the applying of the predetermined voltage.