WO2019049842A1 - 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路 - Google Patents

不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路 Download PDF

Info

Publication number
WO2019049842A1
WO2019049842A1 PCT/JP2018/032676 JP2018032676W WO2019049842A1 WO 2019049842 A1 WO2019049842 A1 WO 2019049842A1 JP 2018032676 W JP2018032676 W JP 2018032676W WO 2019049842 A1 WO2019049842 A1 WO 2019049842A1
Authority
WO
WIPO (PCT)
Prior art keywords
data line
circuit
current
semiconductor memory
neural network
Prior art date
Application number
PCT/JP2018/032676
Other languages
English (en)
French (fr)
Inventor
礼司 持田
河野 和幸
百合子 早田
小野 貴史
中山 雅義
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2019540951A priority Critical patent/JP6956191B2/ja
Priority to CN201880057233.1A priority patent/CN111052154B/zh
Publication of WO2019049842A1 publication Critical patent/WO2019049842A1/ja
Priority to US16/809,359 priority patent/US11615299B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor

Definitions

  • the present invention relates to a neural network arithmetic circuit using nonvolatile semiconductor memory elements capable of achieving low power consumption and large-scale integration, and an operation method thereof.
  • IoT Internet of Things
  • AI Artificial Intelligence
  • neural network technology that imitates human brain type information processing is used, and research and development of semiconductor integrated circuits that execute neural network calculation with high speed and low power consumption are actively performed. There is.
  • a neural network is composed of basic elements (sometimes called a perceptron) called connection-connected neurons in which a plurality of inputs are called synapses each having a different connection weight coefficient, and the plurality of neurons are connected with each other. It is possible to perform advanced arithmetic processing such as image recognition and speech recognition. In the neuron, a product-sum operation is performed by adding all products obtained by multiplying each input and each coupling weight coefficient.
  • the product-sum operation circuit includes a memory circuit and a register circuit that store inputs and coupling weight coefficients, a multiplication circuit that multiplies the inputs and coupling weight coefficients, an accumulator circuit that accumulates and adds multiplication results, and control that controls the operation of these circuit blocks. It is composed of a circuit. These circuit blocks are all configured by digital circuits.
  • Non-Patent Document 1 discloses another example of a conventional neural network arithmetic circuit.
  • a neural network arithmetic circuit is configured using a resistance change type nonvolatile memory capable of setting an analog resistance value (conductance), and an analog resistance value (conductance) corresponding to a coupling weight coefficient is stored in a nonvolatile memory element.
  • the analog voltage value corresponding to the input is applied to the non-volatile memory element, and the analog current value flowing to the non-volatile memory element at this time is used.
  • the product-sum operation performed in the neuron stores a plurality of coupling weight coefficients in a plurality of nonvolatile memory elements as analog resistance values (conductances), and a plurality of analog voltage values corresponding to a plurality of inputs into a plurality of nonvolatile memories This is performed by obtaining an analog current value obtained by summing the current values applied to the element and flowing through the plurality of nonvolatile memory elements as the product-sum operation result.
  • a neural network arithmetic circuit using a non-volatile memory element can realize lower power consumption than the neural network arithmetic circuit constituted by the digital circuit described above, and can change resistance which can set an analog resistance value (conductance). In recent years, process development, device development, and circuit development have been actively conducted.
  • a large capacity memory circuit and register circuit storing a large amount of input data and coupling weight coefficients, a large amount of input data represented by floating point and a coupling weighting coefficient It is necessary to mount a large-scale multiplication circuit and a cumulative addition circuit (accumulator circuit) that perform product-sum operations, and a large-scale control circuit that controls the operation of these circuit blocks. It is.
  • the power consumption of the semiconductor chip that carries out neural network operation processing currently commercialized is several tens of watts
  • the power consumption of semiconductor integrated circuits is also an issue, as it is very large at several hundred watts.
  • a plurality of coupling weight coefficients are stored as an analog resistance value (conductance) in a plurality of nonvolatile memory elements, a plurality of analog voltage values corresponding to a plurality of input data are applied to the plurality of nonvolatile memory elements, and a plurality of nonvolatile
  • the product-sum operation is performed by obtaining an analog current value obtained by summing the current values flowing to the memory elements as a product-sum operation result, but the input and output of the neuron are processed with the analog voltage value or analog current value.
  • an analog-to-digital converter circuit (AD converter circuit) is used to convert analog values to digital values to transmit information, and a digital-analog converter circuit (DA converter circuit)
  • AD converter circuit analog-to-digital converter circuit
  • DA converter circuit digital-analog converter circuit
  • a coupling weight coefficient is stored as an analog resistance value in a nonvolatile memory element, and a charge amount reflecting the analog resistance value stored in a capacitor during product-sum operation
  • a circuit has also been proposed that compares and determines the reference voltage with a comparator.
  • it is necessary to increase or decrease the coupling weighting factor and restore the original coupling weighting factor. It is necessary to rewrite the non-volatile memory element, and it is difficult to return to the exact same value as the original analog resistance value.
  • a technique called softmax is required to determine the largest product-sum operation result from the product-sum operation result of the final stage, but the output of the comparator is output in binary, so It is difficult to determine a large product-sum operation result.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a neural network arithmetic circuit using a nonvolatile semiconductor memory element capable of achieving low power consumption and large scale integration.
  • a neural network operation circuit using the nonvolatile semiconductor memory element of the present invention comprises a plurality of input data capable of obtaining data of a first logic value or a second logic value, and a plurality of input data respectively corresponding to a plurality of input data.
  • a neural network arithmetic circuit that outputs output data of a first logic value or a second logic value according to a product-sum operation result of a coupling weighting factor, a plurality of input data, and a corresponding coupling weighting factor, A plurality of word lines, a first data line, a second data line, a third data line, a fourth data line, a first nonvolatile semiconductor memory element, and a first cell transistor One end of the first nonvolatile semiconductor memory element is connected to the first data line, one end of the first cell transistor is connected to the second data line, and the gate of the first cell transistor is connected to the word line.
  • a plurality of arithmetic units each having one end connected to the fourth data line and the gate of the second cell transistor connected to the word line, a word line selection circuit for setting the plurality of word lines in the selected state or the non-selected state, The magnitude relationship between the voltage value or current value generated at the 1 data line and the third data line or the second data line and the fourth data line is determined to determine the first logic value or the second logic value.
  • a plurality of current application circuits connected to at least one of the first data line, the second data line, the third data line, and the fourth data line. Operation of A plurality of coupling weight coefficients are stored in the first nonvolatile semiconductor memory element and the second nonvolatile semiconductor memory element, and the first data line, the second data line, the third data line, or the third data line is stored.
  • the current application circuit applies a current to any one of the fourth data lines to adjust an arbitrary coupling weight coefficient, and the word line selection circuit selects a plurality of words according to a plurality of input data. The line is selected or not selected, and the determination circuit outputs output data.
  • the current application circuit is such that the input of the first current source is connected to the fifth data line, and the fifth data line is the first Are connected to at least one of the third data line and the fourth data line via the first data line or the second data line or the second switch transistor via the switch transistor of It is also good.
  • the input of the first current source is connected to the fifth data line
  • the input of the second current source is the
  • the fifth data line is connected to the first data line or the second data line through the first switch transistor
  • the sixth data line is connected to the second switch. It may be connected to the third data line or the fourth data line via a transistor.
  • the current application circuit has one end of the first current generation circuit connected to the seventh data line, One end is connected to the eighth data line, and the seventh data line or the eighth data line is connected to the first data line or the second data line or the second switch via the first switch transistor. It may be connected to at least one of the third data line and the fourth data line via a transistor.
  • the current application circuit has one end of the first current generation circuit connected to the seventh data line, One end is connected to the eighth data line, one end of the second current generation circuit is connected to the ninth data line, and the other end of the second current generation circuit is connected to the tenth data line, and the seventh Data line or the eighth data line is connected to the first data line or the second data line via the first switch transistor, and the ninth data line or the tenth data line is It may be connected to the third data line or the fourth data line via the switch transistor of
  • the current generation circuit includes a fixed resistor element, an element such as a nonvolatile memory element, a load transistor, or a resistor element and a selection transistor connected in series.
  • a fixed resistor element an element such as a nonvolatile memory element, a load transistor, or a resistor element and a selection transistor connected in series.
  • at least one or more of the configuration in which the load transistor and the selection transistor are connected in series may be connected in parallel.
  • the current application circuit is formed by series connection of the second resistance element and the third cell transistor, and one end of the second resistance element Is connected to the first data line, one end of the third cell transistor is connected to the second data line, and the gate of the third cell transistor is connected to the word line, and the third resistance element and the fourth cell transistor And one end of the third resistance element is connected to the third data line, one end of the fourth cell transistor is connected to the fourth data line, and the gate of the fourth cell transistor is connected to the word line. It may consist of at least one or more current application units.
  • the first resistance element, the second resistance element, and the third resistance element may be configured by a fixed resistance element or a nonvolatile semiconductor memory element.
  • the neural network arithmetic circuit using the nonvolatile semiconductor memory element of the present invention storing the plurality of coupling weight coefficients in the first nonvolatile semiconductor memory element and the second nonvolatile semiconductor memory element of the plurality of arithmetic units.
  • the coupling weight coefficient is a positive value
  • the first non-volatile semiconductor memory element is written so that the current value flowing through the first non-volatile semiconductor memory element becomes a current value proportional to the value of the coupling weight factor.
  • the second nonvolatile semiconductor memory element is configured such that the current value flowing to the second nonvolatile semiconductor memory element is a current value proportional to the coupling weight coefficient value. Writing may be performed.
  • the neural network arithmetic circuit using the nonvolatile semiconductor memory element of the present invention storing the plurality of coupling weight coefficients in the first nonvolatile semiconductor memory element and the second nonvolatile semiconductor memory element of the plurality of arithmetic units.
  • the coupling weight coefficient is a positive value
  • the current value flowing to the first nonvolatile semiconductor memory element becomes larger than the current value flowing to the second nonvolatile semiconductor memory element, and the current difference is the coupling weight coefficient.
  • the second nonvolatile semiconductor element Writing to the first nonvolatile semiconductor memory element and the second nonvolatile semiconductor memory element so that the current value is proportional to the value of the second nonvolatile semiconductor memory element and the coupling weight coefficient is a negative value, the second nonvolatile semiconductor element
  • the current value flowing to the memory element is larger than the current value flowing to the first nonvolatile semiconductor memory element, and the current difference is a current value proportional to the value of the coupling weight coefficient.
  • the word line selection circuit deselects the corresponding word line and the input data is In the case of a logical value of 2, the corresponding word line may be selected.
  • the first data line or the second data line has a plurality of input data whose coupling weight coefficient is a positive value and the corresponding positive.
  • a current value corresponding to the product-sum operation result with the combined weighting factor of the values of flows flows, and the third data line or the fourth data line corresponds to a plurality of input data whose coupling weighting factor is a negative value, A current value corresponding to the product-sum operation result with a negative value of the connection weighting factor may flow.
  • the determination circuit is configured such that the current value flowing through the first data line or the second data line is the third data line or the fourth data line If it is smaller than the current value flowing to the first data line, the first logic value is output, and the current value flowing to the first data line or the second data line is greater than the current value flowing to the third data line or the fourth data line If so, a second logic value may be output.
  • the first nonvolatile semiconductor memory element and the second nonvolatile semiconductor memory element are resistance change type memories formed of resistance change type elements.
  • An element, a magnetoresistive change storage element formed of a magnetoresistive change element, a phase change storage element formed of a phase change element, or a ferroelectric storage element formed of a ferroelectric element May be
  • the coupling weighting coefficient of a positive value is increased.
  • the current is applied to the first data line or the second data line by the current application circuit to reduce the positive value of the coupling weighting factor, the current on the third data line or the fourth data line
  • a current is applied by the application circuit to increase the coupling weight coefficient of negative value
  • a current is applied by the current application circuit to the third data line or the fourth data line, and the coupling weight coefficient of negative value
  • a current may be applied to the first data line or the second data line by the current application circuit to perform the neural network operation.
  • the current is applied to the third data line or the fourth data line
  • the largest product-sum operation result may be determined in the determination circuit which applies the current by the application circuit and outputs the second logic value.
  • the neural network operation circuit using the nonvolatile semiconductor memory element of the present invention when all the determination circuits used for the operation output the first logic value, the first data line or the first data line is selected. A current may be applied to the data line 2 by the current application circuit, and the largest product-sum operation result may be determined in the determination circuit that outputs the first logic value.
  • the neural network operation circuit using the nonvolatile semiconductor memory element of the present invention is a neural network circuit in which input data and output data of a neuron can take binary data of 0 data or 1 data, and the coupling weight coefficient is A first nonvolatile semiconductor memory element and a first cell transistor connected in series between one data line and a second data line, and a series connection between a third data line and a fourth data line For example, the resistance value (conductance) of the first non-volatile semiconductor storage element and the second non-volatile semiconductor storage element.
  • the first non-volatile semiconductor storage device when the coupling weight coefficient is a positive value, the first non-volatile semiconductor storage device is such that the current value flowing through the first non-volatile semiconductor storage device is a current value proportional to the value of the coupling weighting coefficient.
  • Write (the current value flowing to the second nonvolatile semiconductor memory element is zero), and if the coupling weight coefficient is a negative value, the current value flowing to the second nonvolatile semiconductor memory element is the value of the coupling weight coefficient
  • Writing is performed on the second nonvolatile semiconductor memory element so that the current value becomes proportional to the current value (the current value flowing to the first nonvolatile semiconductor memory element is zero).
  • the coupling weight coefficient when the coupling weight coefficient is a positive value, the current value flowing to the first nonvolatile semiconductor memory element is larger than the current value flowing to the second nonvolatile semiconductor memory element, and the current difference is the coupling weight.
  • the first non-volatile semiconductor memory element and the second non-volatile semiconductor memory element are written to have a current value proportional to the value of the coefficient, and the second non-volatile property is used when the coupling weight coefficient is a negative value.
  • the first non-volatile property is set such that the value of the current flowing through the semiconductor storage element becomes larger than the value of the current flowing through the first non-volatile semiconductor storage element, and the current difference becomes a current value proportional to the value of the coupling weight coefficient Writing is performed on the semiconductor memory element and the second nonvolatile semiconductor memory element.
  • This writing method is effective when the current value flowing through the nonvolatile semiconductor memory element can not be set to zero or when it is not possible to set the current value proportional to the value of the coupling weight coefficient with only one nonvolatile semiconductor memory element.
  • the word line select circuit deselects (in the case of 0 data) or selects a word line connected to the gates of the first cell transistor and the second cell transistor according to the input data (0 data or 1 data). By setting the status (in the case of one data), the operation unit is inactivated or activated.
  • the third data line to which the corresponding current value flows and the second nonvolatile semiconductor memory element is connected is a plurality of input data whose coupling weighting factor is a negative value, and the coupling weighting factor of the corresponding negative value.
  • the determination circuit determines the magnitude relationship between the current value flowing through the first data line and the current value flowing through the third data line, and outputs output data (0 data or 1 data). That is, 0 data is output when the product-sum operation result of the input data and the connection weighting coefficient is a negative value, and 1 data is output when the result is a positive value.
  • the neural network operation circuit using the nonvolatile semiconductor memory element of the present invention performs the product-sum operation operation of the neural network circuit using the current value flowing to the nonvolatile semiconductor memory element by the above-mentioned operation.
  • product-sum operation can be performed without mounting a large-capacity memory circuit or register circuit configured with a conventional digital circuit, a large-scale multiplication circuit or accumulation addition circuit (accumulator circuit), and a complex control circuit. Since it is possible to reduce the power consumption of the neural network arithmetic circuit and to reduce the chip area of the semiconductor integrated circuit.
  • the neural network circuit can take binary digital data of 0 data or 1 data as input data and output data of neurons, it becomes possible to digitally transmit information transmission between neurons, and a plurality of neurons can be used.
  • the implementation of the large scale neural network circuit becomes easy, and the semiconductor integration becomes possible.
  • the neural network operation circuit using the nonvolatile semiconductor memory element of the present invention can realize low power consumption and large scale integration.
  • the details are disclosed by the examples described later.
  • FIG. 1A shows a neuron used in neural network operation.
  • FIG. 1B is a diagram showing a detailed circuit configuration for performing arithmetic processing of the neuron of FIG. 1A.
  • FIG. 2 is a diagram showing the configuration of a deep neural network.
  • FIG. 3 is a diagram showing calculation of neurons in neural network operation.
  • FIG. 4 is a diagram showing the calculation in the case where the calculation of the bias coefficient b is assigned to the input x0 and the coupling weight coefficient w0 in the calculation of the neuron in the neural network calculation.
  • FIG. 5 is a diagram showing an activation function f of a neuron in neural network operation according to the embodiment.
  • FIG. 6 is a diagram showing an entire configuration of a neural network arithmetic circuit using the nonvolatile semiconductor memory element according to the embodiment.
  • FIG. 7A shows a circuit diagram of a memory cell MC which is a nonvolatile semiconductor memory element constituting the memory cell array in FIG.
  • FIG. 7B shows a cross-sectional view of the memory cell MC.
  • FIG. 7C shows applied voltages in each operation mode of memory cell MC.
  • FIG. 8A is a diagram showing calculations showing the operation principle of the neural network arithmetic circuit according to the embodiment.
  • FIG. 8B shows the operation of the arithmetic unit PUi according to the embodiment.
  • FIG. 9A is a diagram showing an operation of the arithmetic unit PUi.
  • FIG. 9B is a diagram showing the state of the word line WLi with respect to the input xi of the arithmetic unit PUi according to the embodiment of the present invention.
  • FIG. 9C is a diagram showing calculation of current ranges of the variable resistance elements RP and RN of the arithmetic unit PUi according to the embodiment and a current value to be written to the variable resistance elements.
  • FIG. 9D is a diagram showing a product-sum operation operation of the input xi of the arithmetic unit PUi and the coupling weight coefficient wi according to the embodiment.
  • FIG. 10A is a diagram showing a configuration of neural network operation according to the first embodiment.
  • FIG. 10B is a diagram showing values of coupling weight coefficients of the neural network operation according to the first embodiment.
  • FIG. 11 is a diagram showing a detailed configuration of the neural network arithmetic circuit according to the first embodiment.
  • FIG. 12A is a diagram showing a current range of the variable resistance element of the arithmetic unit according to the first embodiment, and a current value to be written to the variable resistance element.
  • FIG. 12B is a diagram showing current ranges of the variable resistance elements RP and RN of the arithmetic units PU0 to PU3 according to the first embodiment, and current values (resistance values) to be written to the variable resistance elements RP and RN.
  • FIG. 13A is a diagram showing the configuration of neural network operation according to the second embodiment.
  • FIG. 13B is a diagram showing a truth table of the neural network circuit according to the second embodiment.
  • FIG. 13C is a diagram showing coupling weight coefficients of the neural network circuit according to the second embodiment.
  • FIG. 13D is a diagram showing arithmetic operations of the input layer, the hidden layer, and the output layer of the neural network circuit according to the second embodiment.
  • FIG. 14A is a diagram showing a current range of the variable resistance element of the arithmetic unit according to the second embodiment, and a current value to be written to the variable resistance element.
  • FIG. 14B is a diagram showing a current range of the variable resistance element of the arithmetic unit of the neural network arithmetic circuit according to the second embodiment, and a current value to be written to the variable resistance element.
  • FIG. 15A is a diagram showing coupling weight coefficients of the output layer.
  • FIG. 15B is a diagram showing the result of neural network calculation of the output layer according to the second embodiment.
  • FIG. 15C is a diagram showing a detailed configuration of a neural network arithmetic circuit of the output layer according to the second embodiment.
  • FIG. 16A is a diagram showing a configuration example of a current application circuit.
  • FIG. 16B is a diagram showing a configuration example 2 of the current application circuit.
  • FIG. 16C is a diagram showing a configuration example 3 of the current application circuit.
  • FIG. 16D is a diagram illustrating a configuration example 4 of the current application circuit.
  • FIG. 16E is a diagram showing a specific configuration of the current generation circuit in the current application circuit.
  • FIG. 16F is a diagram showing a specific configuration of the current generation circuit in the current application circuit.
  • FIG. 16A is a diagram showing a configuration example of a current application circuit.
  • FIG. 16B is a diagram showing a configuration example 2 of the current application circuit.
  • FIG. 16C is
  • FIG. 16G is a diagram showing a specific configuration of the current generation circuit in the current application circuit.
  • FIG. 16H is a diagram showing a specific configuration of the current generation circuit in the current application circuit.
  • FIG. 17 is a diagram showing details of the case where the current application circuit is arranged in the memory cell array.
  • FIGS. 1A and 1B are diagrams showing a detailed configuration of a neural network arithmetic circuit using the nonvolatile semiconductor memory element according to the embodiment.
  • FIG. 1A is a view showing a neuron used in neural network operation
  • FIG. 1B is a view showing a detailed circuit configuration in the case where the operation processing performed by the neuron in FIG. It is a representative drawing. 1A and 1B will be described in detail later.
  • FIG. 2 is a diagram showing the configuration of a deep neural network.
  • the neural network receives input data from the input layer 1 and input layer 1 to which input data is input, and performs hidden processing 2 (sometimes called an intermediate layer) that receives input data from the input layer 1 And an output layer 3 for performing In each of the input layer 1, the hidden layer 2 and the output layer 3, a large number of basic elements of a neural network called neurons 10 exist, and each neuron 10 is connected via a connection weight 11.
  • the plurality of connection weights 11 connect between neurons with different connection weight coefficients.
  • a plurality of input data is input to the neuron 10, and in the neuron 10, a product-sum operation of the plurality of input data and the corresponding connection weighting factor is performed and is output as output data.
  • the hidden layer 2 is a configuration in which a plurality of stages (four stages in FIG. 2) of neurons are connected, and in the sense that a deep neural network is formed, the neural network as shown in FIG. It is called.
  • FIG. 3 is a diagram showing the calculation of a neuron in neural network operation, and the calculation equations performed by the neuron 10 are shown in the equations (1) and (2) of FIG.
  • n inputs x1 to xn are connected by connection weights having connection weight coefficients w1 to wn, respectively, and a product-sum operation of the inputs x1 to xn and the connection weight coefficients w1 to wn is performed.
  • the neuron 10 has a bias coefficient b, and the bias coefficient b is added to the product-sum operation result of the inputs x1 to xn and the coupling weight coefficients w1 to wn.
  • the neuron 10 has an activation function f and performs an operation processing of the activation function on the result of adding the bias coefficient b to the product-sum operation result of the inputs x1 to xn and the coupling weight coefficients w1 to wn y is output.
  • FIG. 4 is a diagram showing the calculation in the case where the operation of bias coefficient b is assigned to the input x0 and the connection weight coefficient w0 in the calculation of the neuron in the neural network operation, and the calculation equation performed by the neuron 10 is shown in FIG. ), It shows in Formula (2).
  • the neuron 10 performs product-sum operation of inputs x1 to xn and coupling weight coefficients w1 to wn and addition operation of bias coefficient b, but as shown in FIG.
  • the calculation of the neuron 10 can be concisely expressed only by the product-sum operation of the inputs x0 to xn and the coupling weight coefficients w0 to wn.
  • FIG. 5 is a diagram showing an activation function f of a neuron in neural network operation according to the embodiment, where the x-axis is an input u of the activation function f and the y-axis is an output f (u) of the activation function f.
  • the activation function f uses a step function.
  • a step function is used as the activation function, but there is a sigmoid function as another activation function used in neural network operation.
  • FIG. 6 is a diagram showing an entire configuration of a neural network arithmetic circuit using the nonvolatile semiconductor memory element according to the embodiment.
  • the neural network operation circuit of the present invention comprises a memory cell array 20, a word line selection circuit 30, a column gate 40, a determination circuit 50, a write circuit 60, and a control circuit 70.
  • nonvolatile semiconductor memory elements are arranged in a matrix, and the nonvolatile semiconductor memory elements store coupling weight coefficients used in neural network operation.
  • the memory cell array 20 has a plurality of word lines WL0 to WLn, a plurality of bit lines BL0 to BLm, and a plurality of source lines SL0 to SLm.
  • the word line selection circuit 30 drives the word lines WL0 to WLn of the memory cell array 20.
  • the word line is set to the selected state or the non-selected state (described later) corresponding to the input of the neuron of the neural network operation.
  • the column gate 40 is connected to the bit lines BL0 to BLm and the source lines SL0 to SLm, selects a predetermined bit line and a source line from a plurality of bit lines and a plurality of source lines, and determines a determination circuit 50 and a write circuit 60 described later. Is a circuit connected to
  • the determination circuit 50 is a circuit which is connected to the bit lines BL0 to BLm and the source lines SL0 to SLm through the column gate 40, detects a current value flowing in the bit line or the source line, and outputs output data.
  • the data stored in the 20 memory cells are read out, and the output data of the neuron of the neural network operation is output (described later).
  • the write circuit 60 is a circuit in which bit lines BL0 to BLm and source lines SL0 to SLm are connected via a column gate 40 and applies a rewrite voltage to the nonvolatile semiconductor memory element of the memory cell array 20.
  • the control circuit 70 is a circuit that controls the operations of the memory cell array 20, the word line selection circuit 30, the column gate 40, the determination circuit 50, and the write circuit 60, and performs read operation, write operation, and neural network to the memory cells of the memory cell array 20. Control of arithmetic operation.
  • 7A to 7C are circuit diagrams, cross-sectional views, and diagrams showing applied voltages in respective operations of the nonvolatile semiconductor memory element according to the embodiment.
  • FIG. 7A shows a circuit diagram of a memory cell MC which is a nonvolatile semiconductor memory element constituting the memory cell array 20 in FIG.
  • the memory cell MC is formed of a resistance change element RP and a cell transistor T0 connected in series, and is a "1T1R" type memory cell formed of one cell transistor T0 and one resistance change element RP.
  • the resistance change element RP is a non-volatile semiconductor storage element called a resistance change type memory ReRAM (Resistive Random Access Memory).
  • the word line WL of the memory cell MC is connected to the gate terminal of the cell transistor T0, the bit line BL is connected to the variable resistance element RP, and the source line SL is connected to the source terminal of the cell transistor T0.
  • FIG. 7B shows a cross-sectional view of the memory cell MC.
  • Diffusion regions 81a and 81b are formed on the semiconductor substrate 80, and the diffusion region 81a functions as a source terminal of the cell transistor T0 and the diffusion region 81b functions as a drain terminal of the cell transistor.
  • the diffusion regions 81a and 81b function as a channel region of the cell transistor T0, and an oxide film 82 and a gate electrode 83 formed of polysilicon are formed on the channel region to operate as the cell transistor T0.
  • Diffusion region 81a which is a source terminal of cell transistor T0 is connected to source line SL which is first interconnection layer 85a through via 84a.
  • the diffusion region 81b which is a drain terminal of the cell transistor T0 is connected to the first wiring layer 85b via the via 84b. Furthermore, the first wiring layer 85 b is connected to the second wiring layer 87 via the via 86, and the second wiring layer 87 is connected to the resistance change element RP via the via 88.
  • the variable resistance element RP includes a lower electrode 89, a variable resistance layer 90, and an upper electrode 91.
  • the resistance change element RP is connected to the bit line BL which is the third wiring layer 93 through the via 92.
  • FIG. 7C shows applied voltages in each operation mode of memory cell MC.
  • the cell transistor T0 is selected by applying a voltage of Vg_reset (for example, 2 V) to the word line WL, and a voltage of Vreset (for example, 2.0 V) is applied to the bit line BL.
  • Vg_reset for example, 2 V
  • Vreset for example, 2.0 V
  • the ground voltage VSS (0 V) is applied to the line SL.
  • the voltage Vg_set (for example, 2.0 V) is applied to the word line WL to set the cell transistor T0 in the selected state
  • the ground voltage VSS (0 V) is applied to the bit line BL
  • the source line A voltage of Vset (for example, 2.0 V) is applied to SL.
  • the read operation applies the voltage of Vg_read (for example, 1.1 V) to the word line WL to set the cell transistor T0 in the selected state, applies the voltage of Vread (for example, 0.4 V) to the bit line BL, and applies the voltage to the source line SL. Apply the ground voltage VSS (0 V).
  • Vg_read for example, 1.1 V
  • Vread for example, 0.4 V
  • VSS ground voltage
  • the resistance value of resistance change element RP is only two resistance states (digital) of high resistance state (0 data) and low resistance state (1 data)
  • the resistance value of the variable resistance element RP is set to a multi-gradation (analog) value and used.
  • FIGS. 1A and 1B are diagrams showing a detailed configuration of a neural network arithmetic circuit using the nonvolatile semiconductor memory element according to the embodiment.
  • FIG. 1A is a diagram showing a neuron used in neural network operation, and is identical to FIG.
  • n + 1 inputs x0 to xn are inputted with coupling weight coefficients w0 to wn respectively, and the inputs x0 to xn are values of either 0 data or 1 data as coupling weight coefficients w0 to wn Can take multiple gradation (analog) values.
  • An operation y of the activation function f which is a step function shown in FIG. 5, is performed on the product-sum operation result of the inputs x0 to xn and the coupling weight coefficients w0 to wn, and an output y is output.
  • FIG. 1B is a diagram showing a detailed circuit configuration for performing arithmetic processing of the neuron 10 of FIG. 1A.
  • the memory cell array has a plurality of word lines WL0 to WLn, a plurality of bit lines BL0 and BL1, and a plurality of source lines SL0 and SL1.
  • the word lines WL0 to WLn correspond to the inputs x0 to xn of the neuron 10, the input x0 to the word line WL0, the input x1 to the word line WL1, the input xn-1 to the word line WLn-1, and the input xn It corresponds to the word line WLn.
  • the word line selection circuit 30 is a circuit that brings the word lines WL0 to WLn into a selected state or a non-selected state according to the inputs x0 to xn. When the input is 0 data, the word line is deselected, and when the input is 1 data, the word line is selected. In neural network operation, the inputs x0 to xn can take arbitrary values of 0 data or 1 data respectively. Therefore, when there are a plurality of 1 data in the inputs x0 to xn, the word line selection circuit 30 selects a plurality of word lines. Multiple selections will be made simultaneously.
  • the operation units PU0 to PUn composed of memory cells correspond to the connection weight coefficients w0 to wn of the neuron 10.
  • the connection weight coefficient w0 corresponds to the operation unit PU0
  • the connection weight coefficient wn-1 corresponds to the operation unit PUn-1
  • the coupling weight coefficient wn corresponds to the operation unit PUn.
  • the arithmetic unit PU0 is composed of a memory cell composed of a resistance change element RP and a cell transistor T0, and a memory cell composed of a resistance change element RN and a cell transistor T1. That is, one arithmetic unit is composed of two memory cells.
  • the operation unit PU0 is connected to the word line WL0, the bit lines BL0 and BL1, and the source lines SL0 and SL1.
  • the word line WL0 is connected to the gate terminals of the cell transistors T0 and T1, and the bit line BL0 is connected to the resistance change element RP.
  • the line SL0 is connected to the source terminal of the cell transistor T0, the bit line BL1 is connected to the resistance change element RN, and the source line SL1 is connected to the source terminal of the cell transistor T1.
  • the input x0 is input as the word line WL0 of the operation unit PU0, and the coupling weight coefficient w0 is stored as a resistance value (conductance) in the two resistance change elements RP and RN of the operation unit PU0.
  • the configurations of operation units PU1, PUn-1, and PUn are also the same as the configuration of operation unit PU0, and therefore detailed description will be omitted.
  • inputs x0 to xn are input as word lines WL0 to WLn connected to operation units PU0 to PUn, respectively, and coupling weight coefficients w0 to wn are resistance values of resistance change elements RP and RN of operation units PU0 to PUn, respectively. Stored as conductance).
  • the bit line BL0 is connected to the determination circuit 50 through the column gate transistor YT0, and the bit line BL1 is connected to the determination circuit 50 through the column gate transistor YT1.
  • the gate terminals of the column gate transistors YT0 and YT1 are connected to a column gate control signal YG, and the bit lines BL0 and BL1 are connected to the determination circuit 50 when the column gate control signal YG is activated.
  • Source line SL0 is connected to the ground voltage through discharge transistor DT0, and source line SL1 is connected to the ground voltage through discharge transistor DT1.
  • the gate terminals of the discharge transistors DT0 and DT1 are connected to the discharge control signal DIS, and when the discharge control signal DIS is activated, the source lines SL0 and SL1 are set to the ground voltage.
  • the bit lines BL0 and BL1 are connected to the determination circuit 50, and the source lines SL0 and SL1 are connected to the ground voltage by activating the column gate control signal YG and the discharge control signal DIS.
  • the determination circuit 50 is a circuit that detects and compares the value of the current flowing in the bit lines BL0 and BL1 connected via the column gate transistors YT0 and YT1 and outputs an output y.
  • the output y can take either 0 data or 1 data. If the current value flowing to bit line BL0 is smaller than the current value flowing to bit line BL1, 0 data output y is output, and if the current value flowing to bit line BL0 is larger than the current value flowing to bit line BL1, 1 data Output y. That is, the determination circuit 50 is a circuit that determines the magnitude relationship of the current values flowing through the bit lines BL0 and BL1 and outputs the output y.
  • the current application circuit 100 applies a current to at least one of the bit lines BL0 and BL1.
  • the input of the current source 110 is connected to the bit line BL0 through the switch transistor YTp, and the input of the current source 110 is connected to the bit line BL1 through the switch transistor YTn.
  • This is a circuit capable of applying the current generated by the current source 110 to the bit line BL0 or bit line BL1.
  • the connection to the bit line BL0 via the switch transistor YTp and the connection to the bit line BL1 via the switch transistor YTn may be either one or the other.
  • FIG. 16B is a diagram showing a configuration example 2 of the current application circuit 100.
  • the input of the current source 110 is connected to the bit line BL0 through the switch transistor YTp
  • the input of the current source 111 is connected to the bit line BL1 through the switch transistor YTn
  • the current generated by the current source 110 Is a circuit capable of applying the current generated by the bit line BL0 and the current source 111 to the bit line BL1.
  • FIG. 16C is a diagram showing a configuration example 3 of the current application circuit 100.
  • one end of the current generation circuit 120 is connected to the bit line BL0 via the switch transistor YTp, and one end of the current generation circuit 120 is connected to the bit line BL1 via the switch transistor YTn.
  • the other end is a circuit that is connected to the ground voltage by activating the discharge control signal DIS, and can apply the current generated by the current generation circuit 120 to the bit line BL0 or bit line BL1.
  • the connection to the bit line BL0 via the switch transistor YTp and the connection to the bit line BL1 via the switch transistor YTn may be either one or the other.
  • FIG. 16D is a diagram showing a configuration example 4 of the current application circuit 100.
  • one end of the current generation circuit 120 is connected to the bit line BL0 via the switch transistor YTp, and one end of the current generation circuit 121 is connected to the bit line BL1 via the switch transistor YTn.
  • the other end of 121 is connected to the ground voltage by activating discharge control signal DIS, and the current generated by current generation circuit 120 can be applied to bit line BL0 and the current generated by current generation circuit 121 can be applied to bit line BL1 Circuit.
  • FIGS. 16E, 16F, 16G, and 16H are diagrams showing a specific configuration of the current generation circuit 120 in the current application circuit 100.
  • the current generation circuit 120 may be configured of a resistive element Rw, and the resistive element Rw may be configured of a fixed resistive element or a non-volatile memory element.
  • the current generation circuit 120 is configured of a load transistor WT, and the gate of the load transistor WT is controlled by the load gate voltage WLw.
  • FIG. 16G in the current generation circuit 120, at least one or more parallel-connected configurations of resistance elements Rw0 to Rw2 and select transistors ST0 to ST2 are connected. As shown in FIG.
  • At least one or more parallel connected configurations of load transistors WT0 to WT2 and select transistors ST0 to ST2 are connected in parallel, and the gates of load transistors WT0 to WT2 are load gates. It is controlled by voltages WLw0 to WLw2.
  • FIG. 17 is a diagram of a fifth configuration example of the current application circuit 100.
  • the current application circuit 100 may be configured in a memory cell array.
  • the current to be added corresponds to the current application units PU ⁇ p and PU ⁇ n configured from memory cells, and the coupling weight coefficient w ⁇ p to be added corresponds to the current application unit PU ⁇ p, and the coupling weight coefficient w ⁇ n to be added corresponds to the current application unit PU ⁇ n There is.
  • the current application units PU ⁇ p and PU ⁇ n are each composed of a memory cell composed of the resistance change element RP and the cell transistor T0, and a memory cell composed of the resistance change element RN and the cell transistor T1. That is, one current application unit is composed of two memory cells.
  • the current application unit PU ⁇ p is connected to the word line WL ⁇ p, the bit lines BL0 and BL1, and the source lines SL0 and SL1, the word line WL ⁇ p functions as a gate terminal of the cell transistors T0 and T1, and the bit line BL0 functions as a resistance change element RP.
  • the source line SL0 is connected to the source terminal of the cell transistor T0
  • the bit line BL1 is connected to the resistance change element RN
  • the source line SL1 is connected to the source terminal of the cell transistor T1.
  • the configuration of the current application unit PU ⁇ n is also similar to the configuration of the current application unit PU ⁇ p, and therefore detailed description will be omitted. That is, a resistance value corresponding to a current applied to BL0 is set in resistance change element RP, a resistance value corresponding to a current applied to BL1 is set in resistance change element RN, and corresponding word lines WL ⁇ p and WL ⁇ n are selected. Thus, any current value can be applied to the bit lines BL0 and BL1.
  • the resistance change element may be configured by a fixed resistance element or a load transistor.
  • the current application units PU ⁇ p and PU ⁇ n can be set to one or more arbitrary numbers.
  • 8A and 8B are diagrams showing the operation principle of the neural network operation circuit according to the embodiment and the operation of the operation unit.
  • FIG. 8A is a diagram showing calculations showing the operation principle of the neural network arithmetic circuit according to the embodiment.
  • the operation performed by the neuron 10 is obtained by performing the operation processing of the activation function f which is a step function on the product-sum operation result of the input xi and the connection weight coefficient wi.
  • the coupling weight coefficient wi is replaced with the current value Ii flowing through the variable resistance element (memory cell), and the current value Ii flowing through the input xi and the variable resistance element (memory cell) It is characterized in that product-sum operation with.
  • connection weight coefficient wi in the neural network operation takes both a positive value (00) and a negative value ( ⁇ 0), and in the product-sum operation, the product of the input xi and the connection weight coefficient wi is a positive value In the case of, addition is performed, and in the case of negative value, subtraction is performed.
  • the current value Ii flowing through the variable resistance element (memory cell) can only take a positive value
  • the addition operation when the product of the input xi and the coupling weight coefficient wi is a positive value is the addition of the current value Ii
  • FIG. 8B shows the operation of the arithmetic unit PUi according to the embodiment.
  • the configuration of the arithmetic unit PUi is the one described in FIG. 1A and FIG. 1B, and the detailed description will be omitted.
  • the present invention is characterized in that the coupling weight coefficient wi is stored in two resistance change elements RP and RN, and the resistance value set in the resistance change element RP is Rpi and the resistance value set in the resistance change element RN is Rni.
  • the voltage applied to the bit lines BL0 and BL1 is Vbl, and the current values flowing through the resistance change elements RP and RN are Ipi and Ini.
  • the present invention is characterized in that the positive product-sum operation result is added to the current flowing through the bit line BL0, and the negative product-sum operation result is added to the current flowing through the bit line BL1.
  • the resistance values Rpi and Rni current values Ipi and Ini) of the variable resistance elements RP and RN are set.
  • Equations (3), (4), and (5) in FIG. 8A show calculations of the above-described operation. That is, by appropriately writing resistance values Rpi and Rni corresponding to coupling weight coefficient wi to resistance change elements RP and RN of operation unit PUi, respectively, a positive product-sum operation result, negative values on bit lines BL0 and BL1 It becomes possible to obtain a current value corresponding to the product-sum operation result.
  • the activation function f is a step function (0 data output in the case of a negative value ( ⁇ 0) and 1 data output in the case of a positive value ( ⁇ 0)). If the current value flowing to bit line BL0, which is a positive product-sum operation result, is smaller than the current value flowing to bit line BL1, which is a negative product-sum operation result, that is, all product-sum operation results are negative values.
  • the neural network operation of the neuron 10 uses the operation unit PUi having the resistance change elements RP and RN by detecting and judging the current value flowing to the bit lines BL0 and BL1 so as to output 1 data. It can become.
  • FIGS. 9A to 9D are diagrams showing the detailed operation of the arithmetic unit according to the embodiment.
  • FIG. 9A is a diagram showing the operation of the arithmetic unit PUi, and is the same as FIG. 8B, so a detailed description will be omitted.
  • the product-sum operation operation of the input xi and the connection weight coefficient wi in the operation unit PUi will be described.
  • FIG. 9B is a diagram showing the state of the word line WLi with respect to the input xi of the arithmetic unit PUi according to the embodiment.
  • the input xi takes the value of either 0 data or 1 data.
  • the word line WLi is not selected.
  • the word line WLi is selected.
  • Ru The word line WLi is connected to the gate terminals of the cell transistors T0 and T1.
  • the word line WLi is in a non-selected state, the cell transistors T0 and T1 are in a non-activated state (cutoff state).
  • bit lines BL0 and BL1 regardless of the resistance values Rpi and Rni.
  • word line WLi when word line WLi is in the selected state, cell transistors T0 and T1 are activated (connected state), and current flows to bit lines BL0 and BL1 based on resistance values Rpi and Rni of resistance change elements RP and RN. .
  • FIG. 9C is a diagram showing the calculation of the current range of the variable resistance elements RP and RN of the arithmetic unit PUi according to the embodiment and the current value to be written to the variable resistance elements.
  • the possible range of the current values supplied from the variable resistance elements RP and RN will be described as the minimum value Imin to the maximum value Imax. Normalization is performed so that the absolute value
  • connection weight coefficient wi When the connection weight coefficient wi is a positive value ( ⁇ 0), the product-sum operation result ( ⁇ 0) of the input xi (0 data or 1 data) and the connection weight coefficient wi ( ⁇ 0) is a positive product-sum operation result
  • the current value Imin + (Imax ⁇ Imin) is proportional to the absolute value
  • the coupling weight coefficient wi is a negative value ( ⁇ 0)
  • the product-sum operation result ( ⁇ 0) of the input xi (0 data or 1 data) and the coupling weighting coefficient wi ( ⁇ 0) is the product sum of negative
  • the current value Imin + (Imax) is proportional to the absolute value
  • FIG. 9D is a diagram showing a product-sum operation operation of the input xi of the arithmetic unit PUi and the coupling weight coefficient wi according to the embodiment.
  • the product-sum operation result xi ⁇ wi is 0 regardless of the value of the connection weight coefficient wi. Since the input xi is 0 data, the word line WLi is in a non-selected state and the cell transistors T0 and T1 are in a non-activated state (cut-off state). Therefore, the current values Ipi and Ini flowing through the bit lines BL0 and BL1 are 0. It becomes. That is, since the product-sum operation result xi ⁇ wi is 0, the current flows to both the bit line BL0 through which the current corresponding to the positive product-sum operation flows and the bit line BL1 through which the current corresponding to the negative product-sum operation flows Does not flow.
  • the product-sum operation result xi ⁇ wi becomes a positive value ( ⁇ 0). Since the input xi is 1 data, the word line WLi is in the selected state, and the cell transistors T0 and T1 are in the activated state (connected state). Therefore, the bit line BL0 is selected based on the resistance values of the resistance change elements RP and RN. , And the current Ipi and Ini described in FIG.
  • Is a difference current (Imax ⁇ Imin) ⁇
  • a current corresponding to the product-sum operation result xi x wi ( ⁇ 0) of and the connection weight coefficient w i flows more to the bit line BL 0 compared to the bit line BL 1.
  • the product-sum operation result xi ⁇ wi becomes a negative value ( ⁇ 0). Since the input xi is 1 data, the word line WLi is in the selected state, and the cell transistors T0 and T1 are in the activated state (connected state). Therefore, the bit line BL0 is selected based on the resistance values of the resistance change elements RP and RN. , And the current Ipi and Ini described in FIG.
  • between the current Ipi corresponding to a positive product-sum operation result for bit line BL0 and the current Ini corresponding to a negative product-sum operation result for bit line BL1 is coupled to input xi More current flows through the bit line BL1 as compared to the bit line 0 as a current corresponding to the product-sum operation result xi ⁇ wi ( ⁇ 0) with the weighting factor wi.
  • bit line BL0 is larger than the bit line BL1.
  • more current flows through the bit line BL1 than in the bit line BL0.
  • the determination circuit corresponds to performing the operation of the activation function of the step function, and enables neural network operations to perform the product-sum operation and the operation process of the activation function.
  • FIG. 10A is a diagram showing a configuration of neural network computation according to the first embodiment
  • FIG. 10B is a diagram showing values of coupling weight coefficients of the neural network computation according to the first embodiment.
  • the neuron 10 has four inputs x0 to x3 and coupling weight coefficients w0 to w3 corresponding to each other, and the operation performed by the neuron 10 is shown in equation (1) of FIG. 10A.
  • the activation function f of the neuron 10 is a step function.
  • a neural network arithmetic circuit using nonvolatile semiconductor memory elements for performing the arithmetic operation of the neuron 10 shown in FIGS. 10A and 10B will be described.
  • FIG. 11 is a diagram showing a detailed configuration of the neural network arithmetic circuit according to the first embodiment.
  • the neural network operation circuit according to the first embodiment is a four-input one-output neuron, and four words corresponding to four operation units PU0 to PU3 storing coupling weight coefficients w0 to w3 and inputs x0 to x3.
  • Lines WL0 to WL3, bit line BL0 connecting resistance change element RP and cell transistor T0, source line SL0, bit line BL1 connecting resistance change element RN and cell transistor T1, and source line SL1 are provided.
  • word lines WL0 to WL3 are selected and not selected according to inputs x0 to x3, respectively, and cell transistors T0 and T1 of operation units PU0 to PU3 are selected and not selected.
  • the bit lines BL0 and BL1 are supplied with a bit line voltage from the determination circuit 50 via the column gates YT0 and YT1, and the source lines SL0 and SL1 are connected to the ground voltage via the discharge transistors DT0 and DT1.
  • a current corresponding to a positive product-sum operation result flows through bit line BL0
  • a current corresponding to a negative product-sum operation result flows through bit line BL1.
  • the determination circuit 50 outputs an output y by detecting and determining the magnitude relation of the current flowing through the bit lines BL0 and BL1. That is, when the product-sum operation result of the neuron 10 is a negative value ( ⁇ 0), 0 data is output, and when a positive value ( ⁇ 0), 1 data is output.
  • the determination circuit 50 outputs the calculation result of the activation function f (step function) with the product-sum calculation result as an input.
  • FIG. 12A and 12B are diagrams showing current ranges of the variable resistance elements RP and RN of the operation units PU0 to PU3 according to the first embodiment, and current values (resistance values) written to the variable resistance elements RP and RN. .
  • the possible range of the current value flowed by the variable resistance elements RP and RN is 0 uA to 50 uA. That is, the minimum value Imin of the current value is 0 uA, the maximum value Imax of the current value is 50 uA, and a current range (dynamic range) of 50 uA is used.
  • the coupling weight coefficients w0 to w3 are normalized to be in the range of 0 to 1.
  • FIG. 12A current values to be written to the variable resistance elements RP and RN of the operation units PU0 to PU3 are determined using normalized coupling weight coefficients.
  • FIG. 12B shows calculation results of current values to be written to the resistance change elements RP and RN. Since the value after normalization of the coupling weight coefficient w0 is a positive value of +0.4, the current value written to the variable resistance element RP is 20 uA, and the current value written to the variable resistance element RN is 0 uA. Since the value of the coupling weight coefficient w1 after normalization is a negative value of ⁇ 0.6, the current value written to the variable resistance element RP is 0 uA, and the current value written to the variable resistance element RN is 30 uA.
  • the current value written to the variable resistance element RP is 0 uA
  • the current value written to the variable resistance element RN is 40 uA.
  • the value of the coupling weight coefficient w3 after normalization is a positive value of +1.0
  • the current value written to the variable resistance element RP is 50 uA
  • the current value written to the variable resistance element RN is 0 uA.
  • connection weight coefficient ⁇ is added to the connection weight coefficient w0 as shown in FIG. 10A.
  • FIG. 10B since the coupling weight coefficient w0 is +0.6, the coupling weighting coefficient ⁇ is +0.3.
  • the operation performed by the neuron 10 at this time is shown in equation (2) of FIG. 10A.
  • FIG. 12A similarly to the resistance change elements RP and RN, the value of the applied current to the current application circuit is determined using the normalized coupling weight coefficient.
  • FIG. 12B shows the calculation result of the applied current value of the current application circuit.
  • the value after normalization of the coupling weight coefficient ⁇ is a positive value of +0.2, and the current application circuit applies a current value of 10 uA to the BL0 side.
  • Second Embodiment of Neural Network Arithmetic Circuit Using Nonvolatile Semiconductor Memory Element 13A to 13D are diagrams showing the configuration of the neural network circuit according to the second embodiment, the truth table, the values of coupling weight coefficients, and the operation of the input layer, the hidden layer, and the output layer.
  • FIG. 13A is a diagram showing a configuration of a neural network circuit according to a second embodiment.
  • the neural network circuit of the second embodiment is a multilayer neural network circuit having an input layer 1, a hidden layer 2 and an output layer 3.
  • the input layer 1 has three inputs x0 to x2, and the input x0 is always one data input, and as shown in FIG. 4 described above, the bias factor of the hidden layer 2 by the input x0 and its coupling weight coefficient To perform the operation of Two inputs x1 and x2 are input from the outside as input data.
  • the hidden layer 2 has one input y0 and three neurons y1 to y3.
  • the input y0 is always one data input, and as shown in FIG. Calculation of the bias coefficient of layer 3 is performed.
  • Three neurons y1 to y3 receive three inputs x0 to x2 and their coupling weight coefficients from the input layer 1, respectively, and output outputs y1 to y3.
  • the output layer 3 has two neurons z1 and z2, and receives four inputs y0 to y3 and their coupling weight coefficients from the hidden layer 2 and outputs outputs z1 and z2.
  • the coupling weighting factor wik_y is a coupling weighting factor used in the calculation of the neurons y1 to y3 of the hidden layer 2
  • the coupling weighting factor wik_z is a coupling weighting factor used in the calculation of the output layer 3
  • FIG. 13B is a diagram showing a truth table of the neural network circuit according to the second embodiment.
  • Two inputs x1 and x2 and outputs z1 and z2 take values of 0 data or 1 data, and output z1 outputs 1 data only when both inputs x1 and x2 are 1 data, and 0 data otherwise Output.
  • the output z2 outputs 0 data only when both the inputs x1 and x2 are 1 data, and outputs 1 data otherwise. That is, in the neural network circuit according to the second embodiment, the output z1 outputs an AND logic of the inputs x1 and x2, and the output z2 outputs a NAND logic of the inputs x1 and x2.
  • FIG. 13C is a diagram showing coupling weight coefficients of the neural network circuit according to the second embodiment.
  • the neurons y1 to y3 of the hidden layer 2 have three connection weight coefficients respectively corresponding to three inputs x0 to x2.
  • the neurons z1 and z2 of the output layer 3 have four coupling weight coefficients respectively corresponding to four inputs y0 to y3.
  • FIG. 13D is a diagram showing arithmetic operations of the input layer, the hidden layer, and the output layer of the neural network circuit according to the second embodiment.
  • the output result of the activation function (step function) based on the product-sum operation result of the neurons z1 and z2 receiving the inputs y0 to y3 from the hidden layer 2 and the product-sum operation result is as shown in FIG. 13D.
  • the output z1 is an AND logic of the inputs x1 and x2
  • the output z2 is a NAND logic of the inputs x1 and x2.
  • FIG. 14A and FIG. 14B are diagrams showing the current range of the variable resistance element of the arithmetic unit of the neural network arithmetic circuit according to the second embodiment, and the current value to be written to the variable resistance element.
  • the possible range of the current value flowed by the variable resistance elements RP and RN is 0 uA to 50 uA. That is, the minimum value Imin of the current value is 0 uA, the maximum value Imax of the current value is 50 uA, and a current range (dynamic range) of 50 uA is used.
  • FIG. 14B is a diagram showing current values for writing coupling weight coefficients used for neural network operation of neurons y1 to y3 of hidden layer 2 and neurons z1 and z2 of output layer 3 in resistance change elements RP and RN of the operation unit. .
  • the coupling weighting factor normalized to the coupling weighting factor in the range of 0 to 1 is calculated, and the current value to be written to the resistance change elements RP and RN is determined from the coupling weighting factor after normalization.
  • the normalization of the connection weight coefficients is performed for each neuron.
  • the three coupling weight coefficients are written as resistance values (current values) in the variable resistance elements RP and RN of the three arithmetic units, respectively.
  • the normalized coupling weight coefficient is used to determine the current value to be written to the variable resistance elements RP and RN of the arithmetic unit.
  • FIG. 14B shows calculation results of current values to be written to the resistance change elements RP and RN. Since the value of the coupling weight coefficient w10_y after normalization is a positive value of +1.0, the current value written to the variable resistance element RP is 50 uA, and the current value written to the variable resistance element RN is 0 uA.
  • FIG. 14B shows the results of calculation of current values to be written to the resistance change elements RP and RN of the arithmetic unit with respect to the neurons y2 and y3 of the hidden layer 2 and the neurons z1 of the output layer 3.
  • the arithmetic operation of the neural network circuit writes the current values (resistance values) shown in FIG. 14B to the variable resistance elements RP and RN of the plurality of arithmetic units arranged in the memory cell array, and firstly inputs the input data of the input layer 1
  • the output data of the hidden layer 2 is determined by selecting the operation unit storing the coupling weight coefficient necessary for the operation of the hidden layer 2 as input and detecting and judging the current flowing in the bit line.
  • the arithmetic unit in which the connection weighting coefficient necessary for the calculation of the output layer 3 is stored is selected as the output data of the hidden layer 2 and the input, and the current flowing in the bit line is detected and determined. Determine the output data. By operating in this manner, it is possible to perform multi-layered neural network calculation.
  • FIGS. 15A to 15C show a method of canceling the writing error of the coupling weight coefficient by using the current application circuit in the neural network circuit according to the second embodiment.
  • FIG. 15A is a diagram showing coupling weight coefficients of the output layer.
  • the coupling weight coefficient w20 — z has an ideal value of ⁇ 0.2 and a writing result of +0.1.
  • the coupling weight coefficient w22_z has an ideal value of -0.3, and the writing result is -0.8.
  • FIG. 15C is a diagram showing a detailed configuration of a neural network arithmetic circuit of the output layer according to the second embodiment.
  • the neural network arithmetic circuit of the output layer of the second embodiment is a four-input two-output neuron, and stores four arithmetic units PU10 to PU13 storing coupling weight coefficients w10_z to w13_z and coupling coupling coefficients w20_z to w23_z.
  • Each operation unit PU20 to PU23 four word lines WL0 to WL3 corresponding to inputs y0 to y3, bit line BL0 at which resistance change element RP and cell transistor T0 are connected, source line SL0, resistance change element RN, Bit line BL1 to which cell transistor T1 is connected, source line SL1, bit line BL2 to which resistance change element RP is connected to cell transistor T2, source line SL2, bit line BL3 to which resistance change element RN is connected to cell transistor T3 , Source line SL3.
  • the current application circuit 100 is connected to the bit line BL0 and the bit line BL1, and the current application circuit 100 is also connected to the bit line BL2 and the bit line BL3.
  • word lines WL0 to WL3 are selected and not selected according to inputs y0 to y3, respectively, and cell transistors T0, T1, T2, T3 of operation units PU10 to PU13 and PU20 to PU23 are selected. Select and not select.
  • Bit lines BL0, BL1, BL2 and BL3 are supplied with bit line voltages from the determination circuit 50 via column gates YT0, YT1, YT2 and YT3, and source lines SL0, SL1, SL2 and SL3 are discharge transistors DT0, DT1 and DT2 , DT3 to the ground voltage.
  • a current corresponding to a positive product-sum operation result corresponding to the output z0 flows through the bit line BL0, and a current corresponding to a negative product-sum operation result corresponding to the output z0 flows through the bit line BL1. Further, a current corresponding to a positive product-sum operation result corresponding to the output z1 flows through the bit line BL2, and a current corresponding to a negative product-sum operation result corresponding to the output z1 flows through the bit line BL3.
  • the determination circuit 50 detects the magnitude relationship of the current flowing through the bit lines BL0 and BL1 and outputs the output z0 by determining it.
  • the determination circuit 50 detects the magnitude relationship of the current flowing through the bit lines BL2 and BL3 and outputs the output z1 by determining it. That is, 0 data is output if the product-sum operation result is a negative value ( ⁇ 0), and 1 data is output if it is a positive value ( ⁇ 0).
  • the determination circuit 50 outputs the calculation result of the activation function f (step function) with the product-sum calculation result as an input.
  • the writing error of the coupling weight coefficient and the determination circuit Both may output 1 data or both may output 0 data due to an error of.
  • the current applied from the current application circuit 100 to the bit lines BL1 and BL3 causes the output of the determination circuit having a smaller magnitude relation of the current applied to the determination circuit to be 1 data It is possible to change from 0 data to 0 data, and when both output 0 data, the current applied to the determination circuit by applying a current from each current application circuit 100 to bit lines BL0 and BL2 It is possible to change the output of the determination circuit having a small magnitude relationship from 0 data to 1 data.
  • FIG. 15B is a diagram showing the result of neural network calculation of the output layer according to the second embodiment.
  • the output z1 outputs the AND logic of the inputs x1 and x2, and the output z2 outputs the NAND logic of the inputs x1 and x2, but as shown in FIG. If there is an error in, there are cases where both of the outputs z1 and z2 output 1 data or both of the outputs z1 and z2 output 0 data.
  • both outputs z1 and z2 When both outputs z1 and z2 output 1 data, a current corresponding to -0.5 is applied to bit lines BL1 and BL3 as coupling weight coefficient ⁇ , and both outputs z1 and z2 output 0 data In this case, by applying a current corresponding to +0.5 to the bit lines BL0 and BL2 as the coupling weighting factor ⁇ , the output z1 is AND of the inputs x1 and x2 even when there is an error in the writing result of the coupling weighting factors It is possible to construct a neural network arithmetic circuit in which logic is output and output z2 is output to NAND logic of inputs x1 and x2.
  • the neural network operation circuit using the nonvolatile semiconductor memory element of the present invention performs the product-sum operation of the neural network circuit using the current value flowing to the nonvolatile semiconductor memory element.
  • the product-sum operation is performed without mounting a large-capacity memory circuit or register circuit configured with a conventional digital circuit, a large-scale multiplication circuit or accumulation circuit (accumulator circuit), and a complicated control circuit. It is possible to reduce the power consumption of the neural network arithmetic circuit and to reduce the chip area of the semiconductor integrated circuit.
  • the neural network circuit can take binary digital data of 0 data or 1 data as input data and output data of neurons, it becomes possible to digitally transmit information transmission between neurons, and a plurality of neurons can be obtained.
  • the implementation of the large scale neural network circuit used becomes easy, and the semiconductor integration of the large scale neural network circuit becomes possible. That is, the neural network operation circuit using the nonvolatile semiconductor memory element of the present invention can realize low power consumption and large scale integration.
  • the neural network arithmetic circuit using the nonvolatile semiconductor memory element of the present invention is not limited to the above exemplification only, and a range not departing from the gist of the present invention It is effective also to what added various change etc. in the inside.
  • the neural network operation circuit using the nonvolatile semiconductor memory element of the above embodiment is an example of a resistance change nonvolatile memory (ReRAM)
  • the present invention relates to a magnetoresistive nonvolatile memory (MRAM)
  • MRAM magnetoresistive nonvolatile memory
  • the present invention is also applicable to nonvolatile semiconductor memory elements other than resistance change type memories, such as phase change type nonvolatile memory (PRAM) and ferroelectric type nonvolatile memory (FeRAM).
  • the neural network arithmetic circuit using the nonvolatile semiconductor memory element is configured to perform a product-sum operation using the nonvolatile semiconductor memory element, so that a multiplier circuit or an accumulator circuit (accumulator (accumulator It is possible to perform a product-sum operation without mounting a circuit or the like. In addition, it is possible to easily integrate a large scale neural network circuit by digitizing input data and output data.
  • AI Artificial Intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Neurology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Semiconductor Memories (AREA)

Abstract

入力データと結合重み係数との積和演算結果に応じて出力データを出力するニューラルネットワーク演算回路において、データ線BL0、SL0との間に記憶素子RPとトランジスタT0が直列接続され、データ線BL1、SL1との間に記憶素子RNとトランジスタT1が直列接続され、トランジスタT0、T1のゲートにワード線が接続される演算ユニットを備え、記憶素子RP、RNに結合重み係数w0~wnを格納し、ワード線選択回路(30)が、入力データx0~xnに応じてワード線WL0~WLnを選択状態あるいは非選択状態とし、判定回路(50)がBL0、BL1に流れる電流値を判定することで出力データを出力する。電流印加回路(100)はBL0、BL1に流れる電流値を調整する機能を持ち、記憶素子RP、RNを書き換えることなく結合重み係数を調整する。

Description

不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
 本発明は低消費電力化と大規模集積化が可能な不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路、及びその動作方法に関する。
 情報通信技術の進展に伴い、あらゆるものがインターネットに繋がるIoT(Internet of Things)技術の到来が注目されている。IoT技術において、様々な電子機器がインターネットに接続されることで、機器の高性能化が期待されているが、更なる高性能化を実現する技術として、電子機器自らが学習と判断を行う人工知能(AI:Artificial Intelligence)技術の研究開発が近年活発に行われている。
 人工知能技術において、人間の脳型情報処理を工学的に模倣したニューラルネットワーク技術が用いられており、ニューラルネットワーク演算を高速、低消費電力で実行する半導体集積回路の研究開発が盛んに行われている。
 特許文献1、特許文献2、特許文献3に従来のニューラルネットワーク演算回路が開示されている。ニューラルネットワークは複数の入力が各々異なる結合重み係数を有するシナプスと呼ばれる結合で接続されたニューロンと呼ばれる(パーセプトロンと呼ばれる場合もある)基本素子から構成され、複数のニューロンが互いに接続されることで、画像認識や音声認識といった高度な演算処理を行うことができる。ニューロンでは各入力と各結合重み係数を乗算したものを全て加算した積和演算動作が行われる。積和演算回路は入力や結合重み係数を格納するメモリ回路とレジスタ回路、入力と結合重み係数を乗算する乗算回路、乗算結果を累積加算するアキュムレータ回路、及びこれらの回路ブロックの動作制御を行う制御回路で構成される。これらの回路ブロックは全てデジタル回路で構成される。
 非特許文献1に、従来のニューラルネットワーク演算回路の別の例が開示されている。ニューラルネットワーク演算回路をアナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリを用いて構成するものであり、不揮発性メモリ素子に結合重み係数に相当するアナログ抵抗値(コンダクタンス)を格納し、入力に相当するアナログ電圧値を不揮発性メモリ素子に印加し、このとき不揮発性メモリ素子に流れるアナログ電流値を利用する。ニューロンで行われる積和演算動作は、複数の結合重み係数を複数の不揮発性メモリ素子にアナログ抵抗値(コンダクタンス)として格納し、複数の入力に相当する複数のアナログ電圧値を複数の不揮発性メモリ素子に印加し、複数の不揮発性メモリ素子に流れる電流値を合算したアナログ電流値を積和演算結果として得ることで行われる。不揮発性メモリ素子を用いたニューラルネットワーク演算回路は、前述したデジタル回路で構成されるニューラルネットワーク演算回路と比べて低消費電力化が実現可能であり、アナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリのプロセス開発、デバイス開発、及び回路開発が近年盛んに行われている。
特開2001-188767号公報 特開平6-259585号公報 特開平2-161556号公報 特開2009-282782号公報
 しかしながら、前述した従来のニューラルネットワーク演算回路は以下に示す課題があった。
 すなわち、デジタル回路で構成されるニューラルネットワーク演算回路では、大量の入力データや結合重み係数を格納する大容量のメモリ回路とレジスタ回路、浮動小数点で表現される大量の入力データと結合重み係数との積和演算を行う大規模な乗算回路と累積加算回路(アキュムレータ回路)、及びこれらの回路ブロックの動作制御を行う大規模な制御回路を搭載する必要があり、半導体集積回路のチップ面積増大が課題である。
 また、高速なニューラルネットワーク演算を行うためには、大規模なデジタル回路を高速に動作させる必要があるため、現在製品化されているニューラルネットワーク演算処理を行う半導体チップの消費電力は数十ワットから数百ワットと非常に大きく、半導体集積回路の消費電力増大も課題である。
 一方、デジタル回路で構成されるニューラルネットワーク演算回路の消費電力増大を解決するために、近年アナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリを用いたニューラルネットワーク演算回路が提案されている。複数の結合重み係数を複数の不揮発性メモリ素子にアナログ抵抗値(コンダクタンス)として格納し、複数の入力データに相当する複数のアナログ電圧値を複数の不揮発性メモリ素子に印加し、複数の不揮発性メモリ素子に流れる電流値を合算したアナログ電流値を積和演算結果として得ることで積和演算動作を行うものであるが、ニューロンの入力及び出力がアナログ電圧値あるいはアナログ電流値で処理されるため、ニューロン間の情報伝達をアナログ値で行う必要があり、大規模なニューラルネットワーク回路の半導体集積回路への実装が困難、すなわち大規模な半導体集積化が困難という課題がある。ニューロン間の情報伝達を容易にするために、アナログ-デジタル変換回路(ADコンバータ回路)を用いてアナログ値をデジタル値に変換して情報伝達を行い、デジタル-アナログ変換回路(DAコンバータ回路)を用いてデジタル値をアナログ値に変換する方法もあるが、大規模なニューラルネットワーク回路を実装する場合、アナログ-デジタル変換回路(ADコンバータ回路)とデジタル-アナログ変換回路(DAコンバータ回路)を大量に搭載する必要があり、半導体集積化の観点から好ましくない。
 また、特許文献4で開示されているように、結合重み係数を不揮発性メモリ素子にアナログ抵抗値として格納し、積和演算動作時はコンデンサに蓄積させたアナログ抵抗値を反映した電荷量と、基準電圧とをコンパレータで比較判定する回路も提案されているが、ニューラルネットワークの学習動作をする場合等、結合重み係数を増減させ、また元の結合重み係数に戻す必要があるが、その場合、不揮発性メモリ素子を書き換える必要があり、元のアナログ抵抗値と全く同じ値に戻すことは困難である。更にニューラルネットワークでは最終段の積和演算結果から、最も大きな積和演算結果を判定するソフトマックスという手法が必要であるが、コンパレータの出力は2値で出力されるため、複数のコンパレータ出力から最も大きな積和演算結果を判定することは困難である。
 本発明は上記課題を鑑みてなされたものであり、低消費電力化と大規模集積化が可能な不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路を提供することにある。
 本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、第1の論理値、あるいは第2の論理値のデータを取り得る複数の入力データと、複数の入力データに各々対応する複数の結合重み係数と、複数の入力データと、対応する結合重み係数との積和演算結果に応じて第1の論理値、あるいは第2の論理値の出力データを出力するニューラルネットワーク演算回路であって、複数のワード線と、第1のデータ線と、第2のデータ線と、第3のデータ線と、第4のデータ線と、第1の不揮発性半導体記憶素子と第1のセルトランジスタとの直列接続で構成され、第1の不揮発性半導体記憶素子の一端が第1のデータ線に、第1のセルトランジスタの一端が第2のデータ線に、第1のセルトランジスタのゲートがワード線に接続され、且つ、第2の不揮発性半導体記憶素子と第2のセルトランジスタとの直列接続で構成され、第2の不揮発性半導体記憶素子の一端が第3のデータ線に、第2のセルトランジスタの一端が第4のデータ線に、第2のセルトランジスタのゲートがワード線に接続される複数の演算ユニットと、複数のワード線を選択状態あるいは非選択状態とするワード線選択回路と、第1のデータ線と第3のデータ線、あるいは第2のデータ線と第4のデータ線に生じる電圧値あるいは電流値の大小関係を判定して第1の論理値、あるいは第2の論理値のデータを出力する判定回路と、第1のデータ線、あるいは第2のデータ線、あるいは第3のデータ線、あるいは第4のデータ線の少なくとも1本に接続された電流印加回路とを備え、複数の演算ユニットの第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子に複数の結合重み係数を格納し、第1のデータ線、あるいは第2のデータ線、あるいは第3のデータ線、あるいは第4のデータ線の任意の1本に電流印加回路から電流を印加することで、任意の結合重み係数を調整する機能を持ち、ワード線選択回路が、複数の入力データに応じて複数のワード線を選択状態あるいは非選択状態とし、判定回路が出力データを出力する。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、電流印加回路は、第1の電流源の入力が第5のデータ線に接続され、第5のデータ線は、第1のスイッチトランジスタを介して、第1のデータ線あるいは第2のデータ線、又は第2のスイッチトランジスタを介して、第3のデータ線あるいは第4のデータ線の、少なくともどちらか片方に接続されてもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、電流印加回路は、第1の電流源の入力が第5のデータ線に接続され、第2の電流源の入力が第6のデータ線に接続され、第5のデータ線は、第1のスイッチトランジスタを介して、第1のデータ線あるいは第2のデータ線に接続され、第6のデータ線は、第2のスイッチトランジスタを介して、第3のデータ線あるいは第4のデータ線に接続されてもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、電流印加回路は、第1の電流発生回路の一端が第7のデータ線に接続され、第1の電流発生回路のもう一端が第8のデータ線に接続され、第7のデータ線あるいは第8のデータ線は、第1のスイッチトランジスタを介して、第1のデータ線あるいは第2のデータ線、又は第2のスイッチトランジスタを介して、第3のデータ線あるいは第4のデータ線の、少なくともどちらか片方に接続されてもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、電流印加回路は、第1の電流発生回路の一端が第7のデータ線に接続され、第1の電流発生回路のもう一端が第8のデータ線に接続され、第2の電流発生回路の一端が第9のデータ線に接続され、第2の電流発生回路のもう一端が第10のデータ線に接続され、第7のデータ線あるいは第8のデータ線は、第1のスイッチトランジスタを介して、第1のデータ線あるいは第2のデータ線に接続され、第9のデータ線あるいは第10のデータ線は、第2のスイッチトランジスタを介して、第3のデータ線あるいは第4のデータ線に接続されてもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、電流発生回路は、固定抵抗素子や、不揮発性記憶素子、ロードトランジスタ等の素子や、抵抗素子と選択トランジスタを直列に接続した構成や、ロードトランジスタと選択トランジスタを直列に接続した構成を少なくとも1つ以上並列に接続した構成であってもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、電流印加回路は、第2の抵抗素子と第3のセルトランジスタとの直列接続で構成され、第2の抵抗素子の一端が第1のデータ線に、第3のセルトランジスタの一端が第2のデータ線に、第3のセルトランジスタのゲートがワード線に接続され、且つ、第3の抵抗素子と第4のセルトランジスタとの直列接続で構成され、第3の抵抗素子の一端が第3のデータ線に、第4のセルトランジスタの一端が第4のデータ線に、第4のセルトランジスタのゲートがワード線に接続される少なくとも1つ以上の電流印加ユニットで構成されてもよい。
 第1の抵抗素子、第2の抵抗素子、第3の抵抗素子は固定抵抗素子、あるいは不揮発性半導体記憶素子で構成してもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、複数の演算ユニットの第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子への複数の結合重み係数の格納において、結合重み係数が正の値の場合、第1の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第1の不揮発性半導体記憶素子に書き込みを行い、結合重み係数が負の値の場合、第2の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第2の不揮発性半導体記憶素子に書き込みを行ってもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、複数の演算ユニットの第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子への複数の結合重み係数の格納において、結合重み係数が正の値の場合、第1の不揮発性半導体記憶素子に流れる電流値が第2の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子に書き込みを行い、結合重み係数が負の値の場合、第2の不揮発性半導体記憶素子に流れる電流値が第1の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子に書き込みを行ってもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、ワード線選択回路は、入力データが第1の論理値の場合、対応するワード線を非選択状態とし、入力データが第2の論理値の場合、対応するワード線を選択状態としてもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、第1のデータ線あるいは第2のデータ線に、結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値が流れ、第3のデータ線あるいは第4のデータ線に、結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値が流れるとしてもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、判定回路は、第1のデータ線あるいは第2のデータ線に流れる電流値が第3のデータ線あるいは第4のデータ線に流れる電流値よりも小さい場合、第1の論理値を出力し、第1のデータ線あるいは第2のデータ線に流れる電流値が第3のデータ線あるいは第4のデータ線に流れる電流値よりも大きい場合、第2の論理値を出力してもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子は、抵抗変化型素子で形成される抵抗変化型記憶素子、磁気抵抗変化型素子で形成される磁気抵抗変化型記憶素子、相変化型素子で形成される相変化型記憶素子、強誘電体型素子で形成される強誘電体型記憶素子、いずれかであってもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、任意の結合重み係数を変更した場合のニューラルネットワーク演算を行う場合には、正の値の結合重み係数を増加させる場合には、第1のデータ線あるいは第2のデータ線に電流印加回路で電流を印加し、正の値の結合重み係数を減少させる場合には、第3のデータ線あるいは第4のデータ線に電流印加回路で電流を印加し、負の値の結合重み係数を増加させる場合には、第3のデータ線あるいは第4のデータ線に電流印加回路で電流を印加し、負の値の結合重み係数を減少させる場合には、第1のデータ線あるいは第2のデータ線に電流印加回路で電流を印加し、ニューラルネットワーク演算を行ってもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、複数の判定回路が、第2の論理値を出力した場合には、第3のデータ線あるいは第4のデータ線に電流印加回路で電流を印加し、第2の論理値を出力する判定回路の中で、最も大きい積和演算結果を判定してもよい。
 また、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路において、演算に使用している全ての判定回路が、第1の論理値を出力した場合には、第1のデータ線あるいは第2のデータ線に電流印加回路で電流を印加し、第1の論理値を出力する判定回路の中で、最も大きい積和演算結果を判定してもよい。
 本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、ニューロンの入力データと出力データが0データあるいは1データの2値のデジタル値を取り得るニューラルネットワーク回路であり、結合重み係数を第1のデータ線と第2のデータ線との間に直列接続される第1の不揮発性半導体記憶素子と第1のセルトランジスタ、第3のデータ線と第4のデータ線との間に直列接続される第2の不揮発性半導体記憶素子と第2のセルトランジスタとで構成される演算ユニットを備え、第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子に例えば抵抗値(コンダクタンス)として格納する。
 ここで、結合重み係数が正の値の場合は、第1の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第1の不揮発性半導体記憶素子に書き込みを行い(第2の不揮発性半導体記憶素子に流れる電流値はゼロ)、結合重み係数が負の値の場合は、第2の不揮発性半導体記憶素子に流れる電流値が結合重み係数の値に比例した電流値となるように、第2の不揮発性半導体記憶素子に書き込みを行う(第1の不揮発性半導体記憶素子に流れる電流値はゼロ)。
 あるいは、結合重み係数が正の値の場合は、第1の不揮発性半導体記憶素子に流れる電流値が第2の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子に書き込みを行い、結合重み係数が負の値の場合、第2の不揮発性半導体記憶素子に流れる電流値が第1の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が結合重み係数の値に比例した電流値となるように、第1の不揮発性半導体記憶素子と第2の不揮発性半導体記憶素子に書き込みを行う。この書き込み方法は不揮発性半導体記憶素子に流れる電流値をゼロに設定できない場合、あるいは、1つの不揮発性半導体記憶素子のみで結合重み係数の値に比例した電流値を設定できない場合に有効である。
 ワード線選択回路が入力データ(0データあるいは1データ)に応じて、第1のセルトランジスタと第2のセルトランジスタのゲートに接続されるワード線を非選択状態(0データの場合)、あるいは選択状態(1データの場合)とすることで、演算ユニットを非活性化状態、あるいは活性化状態とする。
 第1の不揮発性半導体記憶素子が接続される第1のデータ線には結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値が流れ、第2の不揮発性半導体記憶素子が接続される第3のデータ線には結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値が流れる。
 判定回路が第1のデータ線に流れる電流値と、第3のデータ線に流れる電流値との大小関係を判定して出力データ(0データあるいは1データ)を出力する。すなわち、入力データと結合重み係数の積和演算結果が負の値の場合に0データが出力され、正の値の場合に1データが出力される。
 本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、上述の動作により、不揮発性半導体記憶素子に流れる電流値を用いてニューラルネットワーク回路の積和演算動作を行う。これにより、従来のデジタル回路で構成される大容量のメモリ回路やレジスタ回路、大規模な乗算回路や累積加算回路(アキュムレータ回路)、及び複雑な制御回路を搭載することなく、積和演算動作を行うことが可能となるため、ニューラルネットワーク演算回路の低消費電力化、及び半導体集積回路のチップ面積縮小化が可能となる。また、ニューロンの入力データと出力データが0データあるいは1データの2値のデジタルデータを取り得るニューラルネットワーク回路であるため、ニューロン間の情報伝達をデジタル伝送することが可能となり、複数のニューロンを用いた大規模なニューラルネットワーク回路の実装が容易となり、半導体集積化が可能となる。
 すなわち、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、低消費電力化と大規模集積化を実現することが可能である。詳細は後述する実施例により開示される。
図1Aは、ニューラルネットワーク演算で用いられるニューロンを示す図である。 図1Bは、図1Aのニューロンの演算処理を行う詳細回路構成を示す図である。 図2は、ディープニューラルネットワークの構成を示す図である。 図3は、ニューラルネットワーク演算におけるニューロンの計算を示す図である。 図4は、ニューラルネットワーク演算におけるニューロンの計算において、バイアス係数bの演算を入力x0と結合重み係数w0に割り当てた場合の計算を示す図である。 図5は、実施形態に係るニューラルネットワーク演算におけるニューロンの活性化関数fを示す図である。 図6は、の実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の全体構成を示す図である。 図7Aは、図6におけるメモリセルアレイを構成する不揮発性半導体記憶素子であるメモリセルMCの回路図を示したものである。 図7Bは、メモリセルMCの断面図を示したものである。 図7Cは、メモリセルMCの各動作モードにおける印加電圧を示す図である。 図8Aは、実施形態に係るニューラルネットワーク演算回路の動作原理を示す計算を示す図である。 図8Bは、実施形態に係る演算ユニットPUiの動作を示す。 図9Aは、演算ユニットPUiの動作を示す図である。 図9Bは、の実施形態に係る演算ユニットPUiの入力xiに対するワード線WLiの状態を示す図である。 図9Cは、実施形態に係る演算ユニットPUiの抵抗変化素子RP、RNの電流範囲、及び抵抗変化素子に書き込む電流値の計算を示す図である。 図9Dは、実施形態に係る演算ユニットPUiの入力xiと結合重み係数wiとの積和演算動作を示す図である。 図10Aは、第1の実施形態に係るニューラルネットワーク演算の構成を示す図である。 図10Bは、第1の実施形態に係るニューラルネットワーク演算の結合重み係数の値を示す図である。 図11は、第1の実施形態に係るニューラルネットワーク演算回路の詳細構成を示す図である。 図12Aは、第1の実施形態に係る演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。 図12Bは、第1の実施形態に係る演算ユニットPU0~PU3の抵抗変化素子RP、RNの電流範囲、及び抵抗変化素子RP、RNに書き込む電流値(抵抗値)を示す図である。 図13Aは、第2の実施形態に係るニューラルネットワーク演算の構成を示す図である。 図13Bは、第2の実施形態に係るニューラルネットワーク回路の真理値表を示す図である。 図13Cは、第2の実施形態に係るニューラルネットワーク回路の結合重み係数を示す図である。 図13Dは、第2の実施形態に係るニューラルネットワーク回路の入力層、隠れ層、出力層の演算動作を示す図である。 図14Aは、第2の実施形態に係る演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。 図14Bは、第2の実施形態に係るニューラルネットワーク演算回路の演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。 図15Aは、出力層の結合重み係数を示す図である。 図15Bは、第2の実施形態に係る出力層のニューラルネットワーク演算結果を示す図である。 図15Cは、第2の実施形態に係る出力層のニューラルネットワーク演算回路の詳細構成を示す図である。 図16Aは、電流印加回路の構成例を示す図である。 図16Bは、電流印加回路の構成例2を示す図である 図16Cは、電流印加回路の構成例3を示す図である。 図16Dは、電流印加回路の構成例4を示す図である。 図16Eは、電流印加回路に電流発生回路の具体的構成を示した図である。 図16Fは、電流印加回路に電流発生回路の具体的構成を示した図である。 図16Gは、電流印加回路に電流発生回路の具体的構成を示した図である。 図16Hは、電流印加回路に電流発生回路の具体的構成を示した図である。 図17は、電流印加回路をメモリセルアレイ内に配置した場合の詳細を示す図である。
 以下、本発明の実施形態について、図面を参照して説明する。
 図1A及び図1Bは、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。図1Aはニューラルネットワーク演算で用いられるニューロンを示す図であり、図1Bは図1Aのニューロンが行う演算処理を本発明で実施する場合の詳細回路構成を示す図であり、本発明の特徴を示した代表図面である。図1A及び図1Bについては後述で詳細に説明する。
 <ニューラルネットワーク演算>
 始めに、ニューラルネットワーク演算の基礎理論について説明する。
 図2はディープニューラルネットワークの構成を示す図である。ニューラルネットワークは入力データが入力される入力層1、入力層1の入力データを受けて演算処理を行う隠れ層2(中間層と呼ばれる場合もある)、隠れ層2の出力データを受けて演算処理を行う出力層3から構成される。入力層1、隠れ層2、出力層3の各々において、ニューロン10と呼ばれるニューラルネットワークの基本素子が多数存在し、各々のニューロン10は結合重み11を介して接続されている。複数の結合重み11は各々異なる結合重み係数を有してニューロン間を接続している。ニューロン10には複数の入力データが入力され、ニューロン10ではこれら複数の入力データと対応する結合重み係数との積和演算動作が行われ出力データとして出力される。ここで、隠れ層2は複数段(図2では4段)のニューロンが連結された構成であり、深いニューラルネットワークを形成しているという意味で、図2に示すようなニューラルネットワークはディープニューラルネットワークと呼ばれる。
 図3はニューラルネットワーク演算におけるニューロンの計算を示す図であり、ニューロン10が行う計算式を図3の式(1)、式(2)に示す。ニューロン10はn個の入力x1~xnが各々結合重み係数w1~wnを有する結合重みで接続されており、入力x1~xnと結合重み係数w1~wnとの積和演算が行われる。ニューロン10はバイアス係数bを有しており、入力x1~xnと結合重み係数w1~wnとの積和演算結果にバイアス係数bが加算される。ニューロン10は活性化関数fを有しており、入力x1~xnと結合重み係数w1~wnとの積和演算結果にバイアス係数bを加算した結果に対して活性化関数の演算処理を行い出力yが出力される。
 図4はニューラルネットワーク演算におけるニューロンの計算において、バイアス係数bの演算を入力x0と結合重み係数w0に割り当てた場合の計算を示す図であり、ニューロン10が行う計算式を図4の式(1)、式(2)に示す。前述した図3において、ニューロン10は入力x1~xnと結合重み係数w1~wnとの積和演算と、バイアス係数bの加算演算が行われるが、図4に示す通り、バイアス係数bの加算演算を入力x0=1、結合重み係数w0=bとして、n+1個の入力x0~xnが各々結合重み係数w0~wnを有する結合重みで接続されたニューロン10と解釈することができる。図4の式(1)、式(2)に示す通り、ニューロン10の計算を入力x0~xnと結合重み係数w0~wnとの積和演算のみで簡潔に表現できる。本実施形態では図4に示す通り、バイアス係数bの加算演算の表現を入力x0=1と結合重み係数w0=bとして表現することにする。
 図5は実施形態に係るニューラルネットワーク演算におけるニューロンの活性化関数fを示す図であり、x軸は活性化関数fの入力u、y軸は活性化関数fの出力f(u)である。本発明の実施形態では活性化関数fはステップ関数を使用する。本実施形態では活性化関数としてステップ関数を使用するが、ニューラルネットワーク演算で使用されるその他の活性化関数としてシグモイド関数等がある。図5に示す通り、ステップ関数は入力uが負の値(<0)の場合は出力f(u)=0を出力し、入力uが正の値(≧0)の場合は出力f(u)=1を出力する関数である。前述した図4のニューロン10において、ステップ関数の活性化関数fを使用した場合、入力x0~xnと結合重み係数w0~wnとの積和演算結果が負の値の場合は出力y=0が出力され、積和演算結果が正の値の場合は出力y=1が出力される。
 <不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の全体構成>
 図6は、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の全体構成を示す図である。本発明のニューラルネットワーク演算回路は、メモリセルアレイ20、ワード線選択回路30、カラムゲート40、判定回路50、書き込み回路60、制御回路70を備えている。
 メモリセルアレイ20は不揮発性半導体記憶素子がマトリックス状に配置されており、不揮発性半導体記憶素子にはニューラルネットワーク演算で使用される結合重み係数が格納される。メモリセルアレイ20は複数のワード線WL0~WLn、複数のビット線BL0~BLm、複数のソース線SL0~SLmを有している。
 ワード線選択回路30はメモリセルアレイ20のワード線WL0~WLnを駆動する回路である。ニューラルネットワーク演算のニューロンの入力に対応してワード線を選択状態、あるいは非選択状態とする(後述)。
 カラムゲート40はビット線BL0~BLm、ソース線SL0~SLmに接続され、複数のビット線、複数のソース線から所定のビット線、ソース線を選択して、後述する判定回路50、書き込み回路60に接続する回路である。
 判定回路50はカラムゲート40を介してビット線BL0~BLm、ソース線SL0~SLmが接続され、ビット線あるいはソース線に流れる電流値を検知して出力データを出力する回路であって、メモリセルアレイ20のメモリセルに格納されたデータの読み出し、及びニューラルネットワーク演算のニューロンの出力データを出力する(後述)。
 書き込み回路60はカラムゲート40を介してビット線BL0~BLm、ソース線SL0~SLmが接続され、メモリセルアレイ20の不揮発性半導体記憶素子に書き換え電圧を印加する回路である。
 制御回路70はメモリセルアレイ20、ワード線選択回路30、カラムゲート40、判定回路50、書き込み回路60の動作を制御する回路であり、メモリセルアレイ20のメモリセルに対する読み出し動作、書き込み動作、及びニューラルネットワーク演算動作の制御を行う。
 <不揮発性半導体記憶素子の構成>
 図7A~図7Cは、実施形態に係る不揮発性半導体記憶素子の回路図、断面図、及び各動作における印加電圧を示す図である。
 図7Aは、図6におけるメモリセルアレイ20を構成する不揮発性半導体記憶素子であるメモリセルMCの回路図を示したものである。メモリセルMCは抵抗変化素子RPとセルトランジスタT0の直列接続されたもので構成され、1つのセルトランジスタT0と1つの抵抗変化素子RPから構成される『1T1R』型のメモリセルである。抵抗変化素子RPは抵抗変化型メモリReRAM(Resistive Random Access Memory)と呼ばれる不揮発性半導体記憶素子である。メモリセルMCのワード線WLはセルトランジスタT0のゲート端子に接続され、ビット線BLは抵抗変化素子RPに接続され、ソース線SLはセルトランジスタT0のソース端子に接続される。
 図7Bは、メモリセルMCの断面図を示したものである。半導体基板80上に拡散領域81a、81bが形成されており、拡散領域81aがセルトランジスタT0のソース端子として、拡散領域81bがセルトランジスタのドレイン端子として作用する。拡散領域81a、81b間がセルトランジスタT0のチャネル領域として作用し、このチャネル領域上に酸化膜82、ポリシリコンで形成されるゲート電極83が形成され、セルトランジスタT0として動作する。セルトランジスタT0のソース端子である拡散領域81aはビア84aを介して第1配線層85aであるソース線SLに接続される。セルトランジスタT0のドレイン端子である拡散領域81bはビア84bを介して第1配線層85bに接続される。更に、第1配線層85bはビア86を介して第2配線層87に接続され、第2配線層87はビア88を介して抵抗変化素子RPに接続される。抵抗変化素子RPは下部電極89、抵抗変化層90、上部電極91から構成される。抵抗変化素子RPはビア92を介して第3配線層93であるビット線BLに接続される。
 図7Cは、メモリセルMCの各動作モードにおける印加電圧を示す図である。
 リセット動作(高抵抗化)はワード線WLにVg_reset(例えば2V)の電圧を印加することでセルトランジスタT0を選択状態とし、ビット線BLにVreset(例えば2.0V)の電圧を印加し、ソース線SLに接地電圧VSS(0V)を印加する。これにより、抵抗変化素子RPの上部電極に正の電圧が印加され高抵抗状態に抵抗変化する。
 セット動作(低抵抗化)はワード線WLにVg_set(例えば2.0V)の電圧を印加することでセルトランジスタT0を選択状態とし、ビット線BLに接地電圧VSS(0V)を印加し、ソース線SLにVset(例えば2.0V)の電圧を印加する。これにより、抵抗変化素子RPの下部電極に正の電圧が印加され低抵抗状態に抵抗変化する。
 読み出し動作はワード線WLにVg_read(例えば1.1V)の電圧を印加することでセルトランジスタT0を選択状態とし、ビット線BLにVread(例えば0.4V)の電圧を印加し、ソース線SLに接地電圧VSS(0V)を印加する。これにより、抵抗変化素子RPが高抵抗状態(リセット状態)の場合は小さなメモリセル電流が流れ、また、抵抗変化素子RPが低抵抗状態(セット状態)の場合は大きなメモリセル電流が流れ、この電流値の差異を判定回路で判定することでメモリセルに格納されたデータの読み出し動作を行う。
 メモリセルMCを0データあるいは1データを格納する半導体メモリとして用いる場合は抵抗変化素子RPの抵抗値は高抵抗状態(0データ)と低抵抗状態(1データ)の2つの抵抗状態(デジタル)のみを取り得るが、本発明のニューラルネットワーク演算回路として用いる場合は抵抗変化素子RPの抵抗値を多階調(アナログ)の値に設定して使用する。
 <不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成>
 図1A及び図1Bは、実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。
 図1Aはニューラルネットワーク演算で用いられるニューロンを示す図であり、図4と同一である。ニューロン10はn+1個の入力x0~xnが各々結合重み係数w0~wnを有して入力されており、入力x0~xnは0データあるいは1データのいずれかの値を、結合重み係数w0~wnは多階調(アナログ)の値を取り得る。入力x0~xnと結合重み係数w0~wnとの積和演算結果に対して、図5に示したステップ関数である活性化関数fの演算が行われて出力yが出力される。
 図1Bは図1Aのニューロン10の演算処理を行う詳細回路構成を示す図である。メモリセルアレイは、複数のワード線WL0~WLn、複数のビット線BL0、BL1、複数のソース線SL0、SL1を有している。
 ニューロン10の入力x0~xnとしてワード線WL0~WLnが対応しており、入力x0がワード線WL0に、入力x1がワード線WL1に、入力xn-1がワード線WLn-1に、入力xnがワード線WLnに対応している。ワード線選択回路30は入力x0~xnに応じてワード線WL0~WLnを選択状態あるいは非選択状態とする回路である。入力が0データの場合はワード線を非選択状態とし、入力が1データの場合はワード線を選択状態とする。ニューラルネットワーク演算では入力x0~xnは各々0データあるいは1データの値を任意に取り得るため、入力x0~xnの中に1データが複数個ある場合、ワード線選択回路30は複数のワード線を同時に多重選択することになる。
 ニューロン10の結合重み係数w0~wnとしてメモリセルから構成される演算ユニットPU0~PUnが対応しており、結合重み係数w0が演算ユニットPU0に、結合重み係数w1が演算ユニットPU1に、結合重み係数wn-1が演算ユニットPUn-1に、結合重み係数wnが演算ユニットPUnに対応している。
 演算ユニットPU0は抵抗変化素子RPとセルトランジスタT0から構成されるメモリセルと、抵抗変化素子RNとセルトランジスタT1から構成されるメモリセルとから構成される。すわなち、1つの演算ユニットは2つのメモリセルから構成される。演算ユニットPU0はワード線WL0、ビット線BL0、BL1、ソース線SL0、SL1に接続されており、ワード線WL0はセルトランジスタT0、T1のゲート端子に、ビット線BL0は抵抗変化素子RPに、ソース線SL0はセルトランジスタT0のソース端子に、ビット線BL1は抵抗変化素子RNに、ソース線SL1はセルトランジスタT1のソース端子に接続されている。入力x0は演算ユニットPU0のワード線WL0として入力され、結合重み係数w0は演算ユニットPU0の2つの抵抗変化素子RP、RNに抵抗値(コンダクタンス)として格納される。演算ユニットPU1、PUn-1、PUnの構成も演算ユニットPU0の構成と同様であるため詳細な説明は割愛する。すなわち、入力x0~xnは各々演算ユニットPU0~PUnに接続されるワード線WL0~WLnとして入力され、結合重み係数w0~wnは各々演算ユニットPU0~PUnの抵抗変化素子RP、RNに抵抗値(コンダクタンス)として格納される。
 ビット線BL0はカラムゲートトランジスタYT0を介して判定回路50に接続され、ビット線BL1はカラムゲートトランジスタYT1を介して判定回路50に接続される。カラムゲートトランジスタYT0、YT1のゲート端子はカラムゲート制御信号YGに接続されており、カラムゲート制御信号YGが活性化されるとビット線BL0、BL1は判定回路50に接続される。ソース線SL0はディスチャージトランジスタDT0を介して接地電圧に接続され、ソース線SL1はディスチャージトランジスタDT1を介して接地電圧に接続される。ディスチャージトランジスタDT0、DT1のゲート端子はディスチャージ制御信号DISに接続されており、ディスチャージ制御信号DISが活性化されるとソース線SL0、SL1は接地電圧に設定される。ニューラルネットワーク演算動作を行う場合はカラムゲート制御信号YG、ディスチャージ制御信号DISを活性化することで、ビット線BL0、BL1を判定回路50に、ソース線SL0、SL1を接地電圧に接続する。
 判定回路50はカラムゲートトランジスタYT0、YT1を介して接続されるビット線BL0、BL1に流れる電流値を検知、比較して出力yを出力する回路である。出力yは0データあるいは1データのいずれかの値を取り得る。ビット線BL0に流れる電流値がビット線BL1に流れる電流値より小さい場合は0データの出力yを出力し、ビット線BL0に流れる電流値がビット線BL1に流れる電流値より大きい場合は1データの出力yを出力する。すなわち、判定回路50はビット線BL0、BL1に流れる電流値の大小関係を判定して出力yを出力する回路である。
 電流印加回路100はビット線BL0、BL1の少なくとも片方に電流を印加する回路である。
 図16Aに示すように、電流印加回路100は電流源110の入力がスイッチトランジスタYTpを介してビット線BL0に接続され、電流源110の入力がスイッチトランジスタYTnを介してビット線BL1に接続され、電流源110で発生した電流をビット線BL0、又はビット線BL1に印加可能な回路である。また、スイッチトランジスタYTpを介したビット線BL0への接続と、スイッチトランジスタYTnを介したビット線BL1への接続は、どちらか片方のみでもよい。
 図16Bは、電流印加回路100の構成例2を示す図である。電流印加回路100は電流源110の入力がスイッチトランジスタYTpを介してビット線BL0に接続され、電流源111の入力がスイッチトランジスタYTnを介してビット線BL1に接続され、電流源110で発生した電流をビット線BL0、電流源111で発生した電流をビット線BL1に印加可能な回路である。
 図16Cは、電流印加回路100の構成例3を示す図である。電流印加回路100は電流発生回路120の一端がスイッチトランジスタYTpを介してビット線BL0に接続され、電流発生回路120の一端がスイッチトランジスタYTnを介してビット線BL1に接続され、電流発生回路120のもう一端はディスチャージ制御信号DISを活性化することで、接地電圧に接続し、電流発生回路120で発生した電流をビット線BL0、又はビット線BL1に印加可能な回路である。また、スイッチトランジスタYTpを介したビット線BL0への接続と、スイッチトランジスタYTnを介したビット線BL1への接続は、どちらか片方のみでもよい。
 図16Dは、電流印加回路100の構成例4を示す図である。電流印加回路100は電流発生回路120の一端がスイッチトランジスタYTpを介してビット線BL0に接続され、電流発生回路121の一端がスイッチトランジスタYTnを介してビット線BL1に接続され、電流発生回路120、121のもう一端はディスチャージ制御信号DISを活性化することで、接地電圧に接続し、電流発生回路120で発生した電流をビット線BL0、電流発生回路121で発生した電流をビット線BL1に印加可能な回路である。
 図16E、図16F、図16G、図16Hは電流印加回路100に電流発生回路120の具体的構成を示した図である。図16Eに示すように、電流発生回路120は抵抗素子Rwで構成され、抵抗素子Rwは、固定抵抗素子や不揮発性記憶素子で構成してもよい。図16Fに示すように、電流発生回路120はロードトランジスタWTで構成され、ロードトランジスタWTのゲートはロードゲート電圧WLwで制御される。図16Gに示すように、電流発生回路120は抵抗素子Rw0~Rw2と選択トランジスタST0~ST2との直列接続の構成が、少なくとも1つ以上並列に接続されている。図16Hに示すように、電流発生回路120はロードトランジスタWT0~WT2と選択トランジスタST0~ST2との直列接続の構成が、少なくとも1つ以上並列に接続され、ロードトランジスタWT0~WT2のゲートはロードゲート電圧WLw0~WLw2で制御される。
 図17は、電流印加回路100の構成例5を示す図である。図17に示すように電流印加回路100はメモリセルアレイの中に構成してもよい。追加する電流はメモリセルから構成される電流印加ユニットPUαp、PUαnが対応しており、追加する結合重み係数wαpが電流印加ユニットPUαpに、追加する結合重み係数wαnが電流印加ユニットPUαnに対応している。
 電流印加ユニットPUαp、PUαnは抵抗変化素子RPとセルトランジスタT0から構成されるメモリセルと、抵抗変化素子RNとセルトランジスタT1から構成されるメモリセルとから構成される。すわなち、1つの電流印加ユニットは2つのメモリセルから構成される。電流印加ユニットPUαpはワード線WLαp、ビット線BL0、BL1、ソース線SL0、SL1に接続されており、ワード線WLαpはセルトランジスタT0、T1のゲート端子に、ビット線BL0は抵抗変化素子RPに、ソース線SL0はセルトランジスタT0のソース端子に、ビット線BL1は抵抗変化素子RNに、ソース線SL1はセルトランジスタT1のソース端子に接続されている。電流印加ユニットPUαnの構成も電流印加ユニットPUαpの構成と同様であるため詳細な説明は割愛する。すなわち、抵抗変化素子RPにBL0に印加する電流に相当する抵抗値を設定し、抵抗変化素子RNにBL1に印加する電流に相当する抵抗値を設定し、対応するワード線WLαp、WLαnを選択することで、任意の電流値をビット線BL0、BL1に印加することが可能である。ここで、抵抗変化素子は固定抵抗素子、あるいはロードトランジスタで構成されてもよい。また電流印加ユニットPUαp、PUαnは1つ以上の任意の数を設定可能である。
 以上のように構成された不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の動作原理と動作方法、及び結合重み係数を抵抗変化素子へ格納する方法について、以降詳細に説明する。
 <不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の動作原理>
 図8A及び図8Bは、実施形態に係るニューラルネットワーク演算回路の動作原理を示す計算、及び演算ユニットの動作を示す図である。
 図8Aは、実施形態に係るニューラルネットワーク演算回路の動作原理を示す計算を示す図である。図8Aの式(1)に示す通り、ニューロン10が行う演算は入力xiと結合重み係数wiの積和演算結果に対してステップ関数である活性化関数fの演算処理を行ったものである。本発明では図8Aの式(2)に示す通り、結合重み係数wiを抵抗変化素子(メモリセル)に流れる電流値Iiに置き換えて、入力xiと抵抗変化素子(メモリセル)に流れる電流値Iiとの積和演算を行うことが特徴である。
 ここで、ニューラルネットワーク演算における結合重み係数wiは正の値(≧0)、負の値(<0)の双方を取り、積和演算動作において入力xiと結合重み係数wiの積が正の値の場合は加算、負の値の場合は減算が行われる。しかしながら、抵抗変化素子(メモリセル)に流れる電流値Iiは正の値しか取り得ることができないため、入力xiと結合重み係数wiの積が正の値の場合の加算演算は電流値Iiの加算で実現可能であるが、入力xiと結合重み係数wiの積が負の値の場合の減算演算を正の値の電流値Iiを用いて行うには工夫が必要である。
 図8Bは、実施形態に係る演算ユニットPUiの動作を示す。演算ユニットPUiの構成は図1A及び図1Bで説明したものであり、詳細な説明は割愛する。本発明は結合重み係数wiを2個の抵抗変化素子RP、RNに格納することが特徴であり、抵抗変化素子RPに設定する抵抗値をRpi、抵抗変化素子RNに設定する抵抗値をRniとし、ビット線BL0、BL1に印加する電圧をVblとし、抵抗変化素子RP、RNに流れる電流値をIpi、Iniとする。本発明では正の積和演算結果をビット線BL0に流れる電流に加算し、負の積和演算結果をビット線BL1に流れる電流に加算することが特徴であり、上記のように電流が流れるよう抵抗変化素子RP、RNの抵抗値Rpi、Rni(電流値Ipi、Ini)を設定する。この演算ユニットPUiを図1Bに示すように入力x0~xn(結合重み係数w0~wn)の個数だけビット線BL0、BL1に並列接続することで、ニューロン10の正の積和演算結果をビット線BL0に流れる電流値として、負の積和演算結果をビット線BL1に流れる電流値として得ることができる。図8Aの式(3)、式(4)、式(5)に上述した動作の計算を示す。すなわち、演算ユニットPUiの抵抗変化素子RP、RNに対して結合重み係数wiに相当する抵抗値Rpi、Rniを適切に書き込むことで、ビット線BL0、BL1に各々正の積和演算結果、負の積和演算結果に対応した電流値を得ることが可能となる。
 図8Aの式(5)において、活性化関数fはステップ関数(入力が負の値(<0)の場合は0データ出力、正の値(≧0)の場合は1データ出力)であるため、正の積和演算結果であるビット線BL0に流れる電流値が負の積和演算結果であるビット線BL1に流れる電流値より小さい場合、すなわち全ての積和演算結果が負の値の場合は0データを出力し、正の積和演算結果であるビット線BL0に流れる電流値が負の積和演算結果であるビット線BL1に流れる電流値より大きい場合、すなわち全ての積和演算結果が正の値の場合は1データを出力するようにビット線BL0、BL1に流れる電流値を検出、判定することで、ニューロン10のニューラルネットワーク演算が抵抗変化素子RP、RNを有する演算ユニットPUiを用いて可能となる。
 図9A~図9Dは、実施形態に係る演算ユニットの詳細動作を示す図である。図9Aは演算ユニットPUiの動作を示す図であり、図8Bと同一であるため詳細な説明は割愛する。以下、演算ユニットPUiにおける、入力xiと結合重み係数wiとの積和演算動作について説明する。
 図9Bは、実施形態に係る演算ユニットPUiの入力xiに対するワード線WLiの状態を示す図である。入力xiは0データあるいは1データのいずれかの値を取り、入力xiが0データの場合、ワード線WLiは非選択状態とされ、入力xiが1データの場合、ワード線WLiは選択状態とされる。ワード線WLiはセルトランジスタT0、T1のゲート端子に接続されており、ワード線WLiが非選択状態の場合、セルトランジスタT0、T1は非活性化状態(遮断状態)となり、抵抗変化素子RP、RNの抵抗値Rpi、Rniに係わらずビット線BL0、BL1に電流が流れない。一方、ワード線WLiが選択状態の場合、セルトランジスタT0、T1は活性化状態(接続状態)となり、抵抗変化素子RP、RNの抵抗値Rpi、Rniに基づいてビット線BL0、BL1に電流が流れる。
 図9Cは、実施形態に係る演算ユニットPUiの抵抗変化素子RP、RNの電流範囲、及び抵抗変化素子に書き込む電流値の計算を示す図である。抵抗変化素子RP、RNが流す電流値の取り得る範囲を最小値Iminから最大値Imaxとして説明する。ニューロンに入力される結合重み係数の絶対値|wi|が0~1の範囲となるよう正規化を行い、正規化後の結合重み係数|wi|に比例した電流値(アナログ値)となるように抵抗変化素子に書き込む電流値を決定する。
 結合重み係数wiが正の値(≧0)の場合、入力xi(0データあるいは1データ)と結合重み係数wi(≧0)との積和演算結果(≧0)を正の積和演算結果の電流が流れるビット線BL0に電流値として加算するために、ビット線BL0に接続される抵抗変化素子RPに対して、結合重み係数の絶対値|wi|に比例した電流値Imin+(Imax-Imin)×|wi|が流れる抵抗値Rpiの書き込みを行い、ビット線BL1に接続される抵抗変化素子RNに対して、電流値Imin(結合重み係数0相当)となる抵抗値Rniの書き込みを行う。
 一方、結合重み係数wiが負の値(<0)の場合、入力xi(0データあるいは1データ)と結合重み係数wi(<0)との積和演算結果(<0)を負の積和演算結果の電流が流れるビット線BL1に電流値として加算するために、ビット線BL1に接続される抵抗変化素子RNに対して、結合重み係数の絶対値|wi|に比例した電流値Imin+(Imax-Imin)×|wi|が流れる抵抗値Rniの書き込みを行い、ビット線BL0に接続される抵抗変化素子RPに対して、電流値Imin(結合重み係数0相当)となる抵抗値Rpiの書き込みを行う。
 上述のように抵抗変化素子RP、RNに書き込む抵抗値(電流値)を設定することで、ビット線BL0に流れる電流(正の積和演算結果に相当)と、ビット線BL1に流れる電流(負の積和演算結果に相当)との差分電流(Imax-Imin)×|wi|が入力と結合重み係数との積和演算結果に相当する電流値として得られる。結合重み係数の絶対値|wi|を0~1の範囲となるよう正規化する方法の詳細は後述する。
 図9Dは、実施形態に係る演算ユニットPUiの入力xiと結合重み係数wiとの積和演算動作を示す図である。
 入力xiが0データの場合、結合重み係数wiの値に関係なく、積和演算結果xi×wiは0となる。入力xiが0データであるため、ワード線WLiは非選択状態となり、セルトランジスタT0、T1は非活性化状態(遮断状態)となるため、ビット線BL0、BL1に流れる電流値Ipi、Iniは0となる。すなわち、積和演算結果xi×wiが0であるため、正の積和演算結果に相当する電流が流れるビット線BL0、負の積和演算結果に相当する電流が流れるビット線BL1の双方に電流が流れない。
 入力xiが1データ、結合重み係数wiが正の値(≧0)の場合、積和演算結果xi×wiは正の値(≧0)となる。入力xiが1データであるため、ワード線WLiは選択状態となり、セルトランジスタT0、T1は活性化状態(接続状態)となるため、抵抗変化素子RP、RNの抵抗値に基づいて、ビット線BL0、BL1に図9Cで説明した電流Ipi、Iniが流れる。ビット線BL0に流れる正の積和演算結果に相当する電流Ipiと、ビット線BL1に流れる負の積和演算結果に相当する電流Iniとの差分電流(Imax-Imin)×|wi|が入力xiと結合重み係数wiとの積和演算結果xi×wi(≧0)に相当する電流として、ビット線BL0にビット線BL1と比べて多く流れる。
 入力xiが1データ、結合重み係数wiが負の値(<0)の場合、積和演算結果xi×wiは負の値(<0)となる。入力xiが1データであるため、ワード線WLiは選択状態となり、セルトランジスタT0、T1は活性化状態(接続状態)となるため、抵抗変化素子RP、RNの抵抗値に基づいて、ビット線BL0、BL1に図9Cで説明した電流Ipi、Iniが流れる。ビット線BL0に正の積和演算結果に相当する電流Ipiと、ビット線BL1に負の積和演算結果に相当する電流Iniとの差分電流(Imax-Imin)×|wi|が入力xiと結合重み係数wiとの積和演算結果xi×wi(≦0)に相当する電流として、ビット線BL1にビット線0と比べて多く流れる。
 このように、入力xiと結合重み係数wiとの積和演算結果に相当する電流がビット線BL0、BL1に流れ、正の積和演算結果の場合はビット線BL0にビット線BL1と比べて多く流れ、負の積和演算結果の場合はビット線BL1にビット線BL0と比べて多く流れる。演算ユニットPUiを入力x0~xn(結合重み係数w0~wn)の個数だけビット線BL0、BL1に並列接続することで、ニューロン10の積和演算結果をビット線BL0に流れる電流と、ビット線BL1に流れる電流の差分電流として得ることができる。
 ここで、ビット線BL0、BL1に接続される判定回路を用いて、ビット線BL0に流れる電流値がビット線BL1に流れる電流値より小さい場合、すなわち積和演算結果が負の値の場合に0データの出力データを出力し、ビット線BL0に流れる電流値がビット線BL1に流れる電流値より大きい場合、すなわち積和演算結果が正の値の場合に1データの出力データを出力するようにすると、判定回路がステップ関数の活性化関数の演算を行うことに相当し、積和演算と活性化関数の演算処理を行うニューラルネットワーク演算が可能となる。
 <不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の第1の実施形態>
 前述にて本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の動作原理について説明した。以下では具体的な実施形態について説明する。
 図10Aは、第1の実施形態に係るニューラルネットワーク演算の構成を示す図であり、図10Bは、第1の実施形態に係るニューラルネットワーク演算の結合重み係数の値を示す図である。図10Aに示す通り、ニューロン10は4つの入力x0~x3と対応する結合重み係数w0~w3を有しており、ニューロン10が行う演算を図10Aの式(1)に示す。ニューロン10の活性化関数fはステップ関数である。
 図10Bに示す通り、ニューロン10が有する結合重み係数はw0=+0.6、w1=-0.9、w2=-1.2、w3=+1.5である。以下、図10A及び図10Bに示すニューロン10の演算動作を行う不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路について説明する。
 図11は、第1の実施形態に係るニューラルネットワーク演算回路の詳細構成を示す図である。図11において、図1Bの構成要件と同一のものは同一の符号、番号を付与しており、その詳細な説明は割愛する。第1の実施形態のニューラルネットワーク演算回路は4入力、1出力のニューロンであり、結合重み係数w0~w3を格納する4つの演算ユニットPU0~PU3、及び入力x0~x3に対応する4本のワード線WL0~WL3、抵抗変化素子RPとセルトランジスタT0が接続されるビット線BL0、ソース線SL0、抵抗変化素子RNとセルトランジスタT1が接続されるビット線BL1、ソース線SL1を備えている。
 ニューラルネットワーク演算動作を行う場合、入力x0~x3に応じてワード線WL0~WL3を各々選択状態、非選択状態とし、演算ユニットPU0~PU3のセルトランジスタT0、T1を選択状態、非選択状態とする。ビット線BL0、BL1はカラムゲートYT0、YT1を介して判定回路50からビット線電圧が供給され、ソース線SL0、SL1はディスチャージトランジスタDT0、DT1を介して接地電圧に接続される。これにより、ビット線BL0に正の積和演算結果に相当する電流が流れ、ビット線BL1に負の積和演算結果に相当する電流が流れる。判定回路50はビット線BL0、BL1に流れる電流の大小関係を検知、判定することで出力yを出力する。すなわち、ニューロン10の積和演算結果が負の値(<0)の場合は0データを出力し、正の値(≧0)の場合は1データを出力する。判定回路50は積和演算結果を入力とした活性化関数f(ステップ関数)の演算結果を出力する。
 図12A及び図12Bは、第1の実施形態に係る演算ユニットPU0~PU3の抵抗変化素子RP、RNの電流範囲、及び抵抗変化素子RP、RNに書き込む電流値(抵抗値)を示す図である。図12Aに示す通り、第1の実施形態では抵抗変化素子RP、RNが流す電流値の取り得る範囲は0uAから50uAとする。すなわち、電流値の最小値Iminは0uA、電流値の最大値Imaxは50uAであり、50uAの電流範囲(ダイナミックレンジ)を使用する。
 図12Bに示す通り、始めに結合重み係数w0~w3を0~1の範囲となるよう正規化を行う。本実施形態では、結合重み係数w0~w3の絶対値が最大のものはw3=+1.5であり、この結合重み係数の正規化後の値をw3=+1.0とする。この正規化により残りの結合重み係数の正規化後の値はw0=+0.4、w1=-0.6、w2=-0.8となる。
 次に、図12Aに示す通り、正規化された結合重み係数を用いて演算ユニットPU0~PU3の抵抗変化素子RP、RNに書き込む電流値を決定する。図12Bに抵抗変化素子RP、RNに書き込む電流値の計算結果を示す。結合重み係数w0の正規化後の値は+0.4と正の値のため、抵抗変化素子RPに書き込む電流値は20uA、抵抗変化素子RNに書き込む電流値は0uAとなる。結合重み係数w1の正規化後の値は-0.6と負の値のため、抵抗変化素子RPに書き込む電流値は0uA、抵抗変化素子RNに書き込む電流値は30uAとなる。結合重み係数w2の正規化後の値は-0.8と負の値のため、抵抗変化素子RPに書き込む電流値は0uA、抵抗変化素子RNに書き込む電流値は40uAとなる。結合重み係数w3の正規化後の値は+1.0と正の値のため、抵抗変化素子RPに書き込む電流値は50uA、抵抗変化素子RNに書き込む電流値は0uAとなる。このように演算ユニットPU0~PU3の抵抗変化素子RP、RNに電流値(抵抗値)を書き込むことで、ニューラルネットワーク演算を行うことが可能となる。
 更に第1の実施形態において、電流印加回路を使用することで、抵抗変化素子RP、RNの書き換えを行うことなく、結合重み係数を調整したニューラルネットワーク演算を行う方法について説明する。
 例えば、結合重み係数w0を+0.9にした場合のニューラルネットワーク演算を行うためには、図10Aに示すように結合重み係数w0に結合重み係数αを追加する。図10Bに示すように結合重み係数w0は+0.6のため、結合重み係数αは+0.3となる。この時に、ニューロン10が行う演算を図10Aの式(2)に示す。
 次に、図12Aに示す通り、抵抗変化素子RP、RNと同様に、正規化された結合重み係数を用いて電流印加回路の印加電流値を決定する。図12Bに電流印加回路の印加電流値の計算結果を示す。入力x0が入力されワード線WL0が選択状態の場合、結合重み係数αの正規化後の値は+0.2と正の値のため、電流印加回路はBL0側に電流値10uAを印加する。
 このように電流印加回路を使用することで、抵抗変化素子RP、RNの書き換えを行うことなく、結合重み係数を調整したニューラルネットワーク演算を行うことが可能となる。
 <不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の第2の実施形態>
 図13A~図13Dは、第2の実施形態に係るニューラルネットワーク回路の構成、真理値表、結合重み係数の値、及び入力層、隠れ層、出力層の演算動作を示す図である。
 図13Aは、第2の実施形態に係るニューラルネットワーク回路の構成を示す図である。第2の実施形態のニューラルネットワーク回路は入力層1、隠れ層2、出力層3を有した多層ニューラルネットワーク回路である。
 入力層1は3つの入力x0~x2を有しており、入力x0は常時1データの入力であり、前述の図4で示した通り、入力x0とその結合重み係数で隠れ層2のバイアス係数の演算を行うものである。2つの入力x1、x2が外部から入力データとして入力される。
 隠れ層2は1つの入力y0と3つのニューロンy1~y3を有しており、入力y0は常時1データの入力であり、前述の図4で示した通り、入力y0とその結合重み係数で出力層3のバイアス係数の演算を行うものである。3つのニューロンy1~y3は各々入力層1から3つの入力x0~x2とその結合重み係数を受けて出力y1~y3を出力する。
 出力層3は2つのニューロンz1、z2を有しており、隠れ層2から4つの入力y0~y3とその結合重み係数を受けて出力z1、z2を出力する。
 ニューロンy1~y3、z1、z2のニューラルネットワーク演算の計算を図13Aの式(1)と式(2)に示す。ここで、結合重み係数wik_yは隠れ層2のニューロンy1~y3の計算で使用される結合重み係数、結合重み係数wik_zは出力層3の計算で使用される結合重み係数であり、活性化関数fはステップ関数である。
 図13Bは、第2の実施形態に係るニューラルネットワーク回路の真理値表を示す図である。2つの入力のx1、x2、出力z1、z2は0データあるいは1データの値を取り、出力z1は入力x1、x2が共に1データの場合のみ1データを出力し、その他の場合は0データを出力する。また出力z2は入力x1、x2が共に1データの場合のみ0データを出力し、その他の場合は1データを出力する。すなわち、第2の実施形態に係るニューラルネットワーク回路は出力z1が入力x1、x2のAND論理を出力し、出力z2が入力x1、x2のNAND論理を出力する回路である。
 図13Cは、第2の実施形態に係るニューラルネットワーク回路の結合重み係数を示す図である。隠れ層2のニューロンy1~y3は各々3つの入力x0~x2に対応した3つの結合重み係数を有している。また、出力層3のニューロンz1、z2は各々4つの入力y0~y3に対応した4つの結合重み係数を有している。
 図13Dは、第2の実施形態に係るニューラルネットワーク回路の入力層、隠れ層、出力層の演算動作を示す図である。入力層1の入力の組み合わせは4通りである。隠れ層2における入力層1からの入力x0~x2を受けたニューロンy1~y3の積和演算結果と積和演算結果を入力とした活性化関数(ステップ関数)の出力結果、及び出力層3における隠れ層2からの入力y0~y3を受けたニューロンz1、z2の積和演算結果と積和演算結果を入力とした活性化関数(ステップ関数)の出力結果は図13Dの通りであり、図13Bの真理値表に示す通り、出力z1は入力x1、x2のAND論理が出力され、出力z2は入力x1、x2のNAND論理が出力される。
 図14A及び図14Bは、第2の実施形態に係るニューラルネットワーク演算回路の演算ユニットの抵抗変化素子の電流範囲、及び抵抗変化素子に書き込む電流値を示す図である。図14Aに示す通り、第1の実施形態と同様、第2の実施形態では抵抗変化素子RP、RNが流す電流値の取り得る範囲は0uAから50uAとする。すなわち、電流値の最小値Iminは0uA、電流値の最大値Imaxは50uAであり、50uAの電流範囲(ダイナミックレンジ)を使用する。
 図14Bは、隠れ層2のニューロンy1~y3、出力層3のニューロンz1、z2のニューラルネットワーク演算に使用する結合重み係数を演算ユニットの抵抗変化素子RP、RNに書き込む電流値を示す図である。始めに結合重み係数を0~1の範囲に正規化された結合重み係数を算出し、正規化後の結合重み係数から抵抗変化素子RP、RNに書き込む電流値を決定する。結合重み係数の正規化はニューロン毎に実施する。
 隠れ層2のニューロンy1の結合重み係数w10_y=+0.8、w11_y=-0.6、w12_y=-0.4を抵抗変化素子RP、RNに書き込む電流値を計算する方法を説明する。3つの結合重み係数を各々3つの演算ユニットの抵抗変化素子RP、RNに抵抗値(電流値)として書き込む。結合重み係数の正規化を行うにあたり、結合重み係数w10_y、w11_y、w12_yの絶対値が最大のものはw10_y=+0.8であり、この結合重み係数の正規化後の値をw10_y=+1.0とする。この正規化により残りの結合重み係数の正規化後の値はw11_y=-0.75、w12_y=-0.5となる。
 次に、図14Aに示す通り、正規化された結合重み係数を用いて、演算ユニットの抵抗変化素子RP、RNに書き込む電流値を決定する。図14Bに抵抗変化素子RP、RNに書き込む電流値の計算結果を示す。結合重み係数w10_yの正規化後の値は+1.0と正の値のため、抵抗変化素子RPに書き込む電流値は50uA、抵抗変化素子RNに書き込む電流値は0uAとなる。結合重み係数w11_yの正規化後の値は-0.75と負の値のため、抵抗変化素子RPに書き込む電流値は0uA、抵抗変化素子RNに書き込む電流値は37.5uAとなる。結合重み係数w12_yの正規化後の値は-0.5と負の値のため、抵抗変化素子RPに書き込む電流値は0uA、抵抗変化素子RNに書き込む電流値は25uAとなる。同様に、隠れ層2のニューロンy2、y3、出力層3のニューロンz1に対して演算ユニットの抵抗変化素子RP、RNに書き込む電流値を計算した結果を図14Bに示す。
 ニューラルネットワーク回路の演算動作は、メモリセルアレイに配置される複数の演算ユニットの抵抗変化素子RP、RNに対して図14Bに示す電流値(抵抗値)を書き込み、始めに入力層1の入力データを入力とし、隠れ層2の演算に必要な結合重み係数が格納された演算ユニットを選択してビット線に流れる電流を検知、判定することで、隠れ層2の出力データを決定する。次に隠れ層2の出力データと入力として、出力層3の演算に必要な結合重み係数が格納された演算ユニットを選択してビット線に流れる電流を検知、判定することで、出力層3の出力データを決定する。このように動作させることで、多層ニューラルネットワーク演算を行うことが可能となる。
 図15A~図15Cに、第2の実施形態に係るニューラルネットワーク回路において、電流印加回路を使用することで、結合重み係数の書き込み誤差をキャンセルする方法を示す。図15Aは、出力層の結合重み係数を示す図である。結合重み係数w20_zは理想値が-0.2に対し、書き込み結果は+0.1となっている。また結合重み係数w22_zは理想値が-0.3に対し、書き込み結果は-0.8となっている。
 図15Cは、第2の実施形態に係る出力層のニューラルネットワーク演算回路の詳細構成を示す図である。図15Cにおいて、図1Bの構成要件と同一のものは同一の符号、番号を付与しており、その詳細な説明は割愛する。第2の実施形態の出力層のニューラルネットワーク演算回路は4入力、2出力のニューロンであり、結合重み係数w10_z~w13_zを格納する4つの演算ユニットPU10~PU13、結合重み係数w20_z~w23_zを格納する4つの演算ユニットPU20~PU23、及び入力y0~y3に対応する4本のワード線WL0~WL3、抵抗変化素子RPとセルトランジスタT0が接続されるビット線BL0、ソース線SL0、抵抗変化素子RNとセルトランジスタT1が接続されるビット線BL1、ソース線SL1、抵抗変化素子RPとセルトランジスタT2が接続されるビット線BL2、ソース線SL2、抵抗変化素子RNとセルトランジスタT3が接続されるビット線BL3、ソース線SL3を備えている。またビット線BL0、ビット線BL1には電流印加回路100が接続され、ビット線BL2、ビット線BL3にも電流印加回路100が接続される。
 ニューラルネットワーク演算動作を行う場合、入力y0~y3に応じてワード線WL0~WL3を各々選択状態、非選択状態とし、演算ユニットPU10~PU13、PU20~PU23のセルトランジスタT0、T1、T2、T3を選択状態、非選択状態とする。ビット線BL0、BL1、BL2、BL3はカラムゲートYT0、YT1、YT2、YT3を介して判定回路50からビット線電圧が供給され、ソース線SL0、SL1、SL2、SL3はディスチャージトランジスタDT0、DT1、DT2、DT3を介して接地電圧に接続される。これにより、ビット線BL0に出力z0に対応する正の積和演算結果に相当する電流が流れ、ビット線BL1に出力z0に対応する負の積和演算結果に相当する電流が流れる。また、ビット線BL2に出力z1に対応する正の積和演算結果に相当する電流が流れ、ビット線BL3に出力z1に対応する負の積和演算結果に相当する電流が流れる。判定回路50はビット線BL0、BL1に流れる電流の大小関係を検知、判定することで出力z0を出力する。また判定回路50はビット線BL2、BL3に流れる電流の大小関係を検知、判定することで出力z1を出力する。すなわち、積和演算結果が負の値(<0)の場合は0データを出力し、正の値(≧0)の場合は1データを出力する。判定回路50は積和演算結果を入力とした活性化関数f(ステップ関数)の演算結果を出力する。しかし、本発明の第2の実施形態に係るニューラルネットワーク演算のように、2つの出力z0、z1のどちらか一方が1データを出力するニューラルネットワーク演算においても、結合重み係数の書き込み誤差や判定回路の誤差等により、両方が1データを出力する場合や、両方が0データを出力する場合がある。両方が1データを出力する場合には、ビット線BL1、BL3に各々の電流印加回路100から電流を印加することで、判定回路に印加される電流の大小関係が小さい判定回路の出力を1データから0データに変更することが可能であり、両方が0データを出力する場合には、ビット線BL0、BL2に各々の電流印加回路100から電流を印加することで、判定回路に印加される電流の大小関係が小さい判定回路の出力を0データから1データに変更することが可能である。
 図15Bは、第2の実施形態に係る出力層のニューラルネットワーク演算結果を示す図である。理想値でのニューラルネットワーク演算では出力z1は入力x1、x2のAND論理が出力され、出力z2は入力x1、x2のNAND論理が出力されるが、図15Aに示すように結合重み係数の書き込み結果に誤差がある場合は、出力z1、z2の両方が1データを出力する場合や、出力z1、z2の両方が0データを出力する場合がある。出力z1、z2の両方が1データを出力する場合にはビット線BL1、BL3に結合重み係数αとして-0.5に相当する電流を印加し、出力z1、z2の両方が0データを出力する場合にはビット線BL0、BL2に結合重み係数αとして+0.5に相当する電流を印加することで、結合重み係数の書き込み結果に誤差がある場合にも、出力z1は入力x1、x2のAND論理が出力され、出力z2は入力x1、x2のNAND論理が出力されるニューラルネットワーク演算回路を構成することが可能である。
 <結言>
 以上のように、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、不揮発性半導体記憶素子に流れる電流値を用いてニューラルネットワーク回路の積和演算動作を行う。これにより、従来のデジタル回路で構成される大容量のメモリ回路やレジスタ回路、大規模な乗算回路や累積回路(アキュムレータ回路)、及び複雑な制御回路を搭載することなく、積和演算動作を行うことが可能となるため、ニューラルネットワーク演算回路の低消費電力化、及び半導体集積回路のチップ面積縮小化が可能となる。また、ニューロンの入力データと出力データが0データ、あるいは1データの2値のデジタルデータを取り得るニューラルネットワーク回路であるため、ニューロン間の情報伝達をデジタル伝送することが可能となり、複数のニューロンを用いた大規模なニューラルネットワーク回路の実装が容易となり、大規模なニューラルネットワーク回路の半導体集積化が可能となる。すなわち、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、低消費電力化と大規模集積化を実現することが可能である。
 以上、本発明の実施形態を説明してきたが、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、上述の例示にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更等を加えたものに対しても有効である。
 例えば、上記実施形態の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、抵抗変化型不揮発性メモリ(ReRAM)の例であったが、本発明は、磁気抵抗型不揮発性メモリ(MRAM)、相変化型不揮発性メモリ(PRAM)、強誘電体型不揮発性メモリ(FeRAM)等、抵抗変化型メモリ以外の不揮発性半導体記憶素子でも適用可能である。
 本発明に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、不揮発性半導体記憶素子を用いて積和演算動作を行う構成のため、従来のデジタル回路を用いた乗算回路や累積回路(アキュムレータ回路)等を搭載することなく、積和演算動作を行うことが可能である。また、入力データと出力データを2値のデジタル化することで大規模なニューラルネットワーク回路を容易に集積化することが可能である。
 従って、ニューラルネットワーク演算回路の低消費電力化と大規模集積化を実現することができるという効果を有し、例えば、自らが学習と判断を行う人工知能(AI:Artificial Intelligence)技術を搭載した半導体集積回路、及びそれらを搭載した電子機器等に対して有用である。
 1 入力層
 2 隠れ層
 3 出力層
 10 ニューロン
 11 結合重み
 20 メモリセルアレイ
 30 ワード線選択回路
 40 カラムゲート
 50 判定回路 
 60 書き込み回路
 70 制御回路
 80 半導体基板
 81a、81b 拡散領域
 82 酸化膜
 83 ゲート電極(ワード線)
 84a、84b、86、88、92 ビア
 85a、85b 第1配線層
 87 第2配線層
 89 下部電極
 90 抵抗変化層
 91 上部電極
 93 第3配線層
 100 電流印加回路
 110、111 電流源
 120、121 電流発生回路
 x0~xn 入力
 w0~wn、wαp~wαn 結合重み係数
 b バイアス係数
 f 活性化関数
 y 出力
 PU0~PUn、PU10~PU13、PU20~PU23 演算ユニット
 PUαp、PUαn 電流印加ユニット
 MC メモリセル
 T0、T1 セルトランジスタ
 RP、RN 抵抗変化素子
 Rw、Rw0、Rw1、Rw2 抵抗素子(固定抵抗素子あるいは抵抗変化素子)
 YT0、YT1、YT2、YT3 カラムゲートトランジスタ
 YTp、YTn スイッチトランジスタ
 ST0、ST1、ST2 選択トランジスタ
 WT、WT0、WT1、WT2 ロードトランジスタ
 DT0、DT1、DT2、DT3、DTα ディスチャージトランジスタ
 WL0~WLn、WLαp、WLαn ワード線
 BL0~BLm ビット線
 SL0~SLm ソース線
 YG カラムゲート選択信号
 DIS ディスチャージ制御信号
 Vbl ビット線電圧
 Rpi、Rni 抵抗変化素子の抵抗値
 Ipi、Ini 抵抗変化素子に流れる電流値

Claims (22)

  1.  第1の論理値、あるいは第2の論理値のデータを取り得る複数の入力データと、
     前記複数の入力データに各々対応する複数の結合重み係数と、
     前記複数の入力データと、対応する前記結合重み係数との積和演算結果に応じて第1の論理値、あるいは第2の論理値の出力データを出力するニューラルネットワーク演算回路であって、
     複数のワード線と、
     第1のデータ線と、
     第2のデータ線と、
     第3のデータ線と、
     第4のデータ線と、
     第1の不揮発性半導体記憶素子と第1のセルトランジスタとの直列接続で構成され、前記第1の不揮発性半導体記憶素子の一端が前記第1のデータ線に、前記第1のセルトランジスタの一端が前記第2のデータ線に、前記第1のセルトランジスタのゲートが前記ワード線に接続され、且つ、第2の不揮発性半導体記憶素子と第2のセルトランジスタとの直列接続で構成され、前記第2の不揮発性半導体記憶素子の一端が前記第3のデータ線に、前記第2のセルトランジスタの一端が前記第4のデータ線に、前記第2のセルトランジスタのゲートが前記ワード線に接続される複数の演算ユニットと、
     前記複数のワード線を選択状態あるいは非選択状態とするワード線選択回路と、
     前記第1のデータ線と前記第3のデータ線、あるいは前記第2のデータ線と前記第4のデータ線に生じる電圧値あるいは電流値の大小関係を判定して第1の論理値、あるいは第2の論理値のデータを出力する判定回路と、
     前記第1のデータ線、あるいは前記第2のデータ線、あるいは前記第3のデータ線、あるいは前記第4のデータ線の少なくとも1本に接続された電流印加回路とを備え、
     前記複数の演算ユニットの前記第1の不揮発性半導体記憶素子と前記第2の不揮発性半導体記憶素子に複数の結合重み係数を格納し、
     前記第1のデータ線、あるいは前記第2のデータ線、あるいは前記第3のデータ線、あるいは前記第4のデータ線の任意の1本に前記電流印加回路から電流を印加することで、任意の結合重み係数を調整する機能を持ち、
     前記ワード線選択回路が、前記複数の入力データに応じて前記複数のワード線を選択状態あるいは非選択状態とし、
     前記判定回路が出力データを出力する、
     不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  2.  前記電流印加回路は、
     第1の電流源の入力が第5のデータ線に接続され、
     前記第5のデータ線は、
     第1のスイッチトランジスタを介して、前記第1のデータ線あるいは前記第2のデータ線、又は第2のスイッチトランジスタを介して、前記第3のデータ線あるいは前記第4のデータ線の、少なくともどちらか片方に接続される
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  3.  前記電流印加回路は、
     第1の電流源の入力が第5のデータ線に接続され、第2の電流源の入力が第6のデータ線に接続され、
     前記第5のデータ線は、第1のスイッチトランジスタを介して、前記第1のデータ線あるいは前記第2のデータ線に接続され、
     前記第6のデータ線は、第2のスイッチトランジスタを介して、前記第3のデータ線あるいは前記第4のデータ線に接続される
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  4.  前記電流印加回路は、
     第1の電流発生回路の一端が第7のデータ線に接続され、前記第1の電流発生回路のもう一端が第8のデータ線に接続され、
     前記第7のデータ線あるいは前記第8のデータ線は、
     第1のスイッチトランジスタを介して、前記第1のデータ線あるいは前記第2のデータ線、又は第2のスイッチトランジスタを介して、前記第3のデータ線あるいは前記第4のデータ線の、少なくともどちらか片方に接続される
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  5.  前記電流印加回路は、
     第1の電流発生回路の一端が第7のデータ線に接続され、前記第1の電流発生回路のもう一端が第8のデータ線に接続され、
     第2の電流発生回路の一端が第9のデータ線に接続され、前記第2の電流発生回路のもう一端が第10のデータ線に接続され、
     前記第7のデータ線あるいは前記第8のデータ線は、第1のスイッチトランジスタを介して、前記第1のデータ線あるいは前記第2のデータ線に接続され、
     前記第9のデータ線あるいは前記第10のデータ線は、第2のスイッチトランジスタを介して、前記第3のデータ線あるいは前記第4のデータ線に接続される
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  6.  前記電流発生回路は、第1の抵抗素子で構成され、
     前記第1の抵抗素子の一端が前記第7のデータ線に接続され、
     前記第1の抵抗素子のもう一端が前記第8のデータ線に接続される
     請求項4記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  7.  前記電流発生回路は、ロードトランジスタで構成され、
     前記ロードトランジスタの一端が前記第7のデータ線に接続され、
     前記ロードトランジスタのもう一端が前記第8のデータ線に接続され、
     前記ロードトランジスタのゲートがロードゲート線に接続された
     請求項4記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  8.  前記電流発生回路は、
     第1の抵抗素子と第1の選択トランジスタとの直列接続の構成が、少なくとも1つ以上並列に接続され、
     前記第1の抵抗素子の一端が前記第7のデータ線に接続され、
     前記第1の選択トランジスタの一端が前記第8のデータ線に接続され、
     前記第1の選択トランジスタのゲートが選択ゲート線に接続された
     請求項4記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  9.  前記電流発生回路は、
     ロードトランジスタと選択トランジスタとの直列接続の構成が、少なくとも1つ以上並列に接続され、
     前記ロードトランジスタの一端が前記第7のデータ線に接続され、
     前記選択トランジスタの一端が前記第8のデータ線に接続され、
     前記ロードトランジスタのゲートがロードゲート線に接続され、
     前記選択トランジスタのゲートが選択ゲート線に接続された
     請求項4記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  10.  前記電流発生回路は、第1の抵抗素子で構成され、
     前記第1の抵抗素子の一端が前記第7のデータ線あるいは前記第9のデータ線に接続され、
     前記第1の抵抗素子のもう一端が前記第8のデータ線あるいは前記第10のデータ線に接続される
     請求項5記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  11.  前記電流発生回路は、ロードトランジスタで構成され、
     前記ロードトランジスタの一端が前記第7のデータ線あるいは前記第9のデータ線に接続され、
     前記ロードトランジスタのもう一端が前記第8のデータ線あるいは前記第10のデータ線に接続され、
     前記ロードトランジスタのゲートがロードゲート線に接続された
     請求項5記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  12.  前記電流発生回路は、
     第1の抵抗素子と第1の選択トランジスタとの直列接続の構成が、少なくとも1つ以上並列に接続され、
     前記第1の抵抗素子の一端が前記第7のデータ線あるいは前記第9のデータ線に接続され、
     前記第1の選択トランジスタの一端が前記第8のデータ線あるいは前記第10のデータ線に接続され、
     前記第1の選択トランジスタのゲートが選択ゲート線に接続された
     請求項5記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  13.  前記電流発生回路は、
     ロードトランジスタと選択トランジスタとの直列接続の構成が、少なくとも1つ以上並列に接続され、
     前記ロードトランジスタの一端が前記第7のデータ線あるいは前記第9のデータ線に接続され、
     前記選択トランジスタの一端が前記第8のデータ線あるいは前記第10のデータ線に接続され、
     前記ロードトランジスタのゲートがロードゲート線に接続され、
     前記選択トランジスタのゲートが選択ゲート線に接続された
     請求項5記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  14.  前記電流印加回路は、
     第2の抵抗素子と第3のセルトランジスタとの直列接続で構成され、前記第2の抵抗素子の一端が前記第1のデータ線に、前記第3のセルトランジスタの一端が前記第2のデータ線に、前記第3のセルトランジスタのゲートが前記ワード線に接続され、且つ、第3の抵抗素子と第4のセルトランジスタとの直列接続で構成され、前記第3の抵抗素子の一端が前記第3のデータ線に、前記第4のセルトランジスタの一端が前記第4のデータ線に、前記第4のセルトランジスタのゲートが前記ワード線に接続される少なくとも1つ以上の電流印加ユニットで構成される
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  15.  前記第1の抵抗素子は、
     固定抵抗素子、あるいは第3の不揮発性半導体記憶素子で構成される
     請求項6、又は請求項8記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  16.  前記第2の抵抗素子、前記第3の抵抗素子は、
     固定抵抗素子、あるいは第3の不揮発性半導体記憶素子で構成される
     請求項14記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  17.  前記複数の演算ユニットの前記第1の不揮発性半導体記憶素子と前記第2の不揮発性半導体記憶素子への前記複数の結合重み係数の格納において、
     前記結合重み係数が正の値の場合、前記第1の不揮発性半導体記憶素子に流れる電流値が前記結合重み係数の値に比例した電流値となるように、前記第1の不揮発性半導体記憶素子に書き込みを行い、
     前記結合重み係数が負の値の場合、前記第2の不揮発性半導体記憶素子に流れる電流値が前記結合重み係数の値に比例した電流値となるように、前記第2の不揮発性半導体記憶素子に書き込みを行う、
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  18.  前記複数の演算ユニットの前記第1の不揮発性半導体記憶素子と前記第2の不揮発性半導体記憶素子への前記複数の結合重み係数の格納において、
     前記結合重み係数が正の値の場合、前記第1の不揮発性半導体記憶素子に流れる電流値が前記第2の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が前記結合重み係数の値に比例した電流値となるように、前記第1の不揮発性半導体記憶素子と前記第2の不揮発性半導体記憶素子に書き込みを行い、
     前記結合重み係数が負の値の場合、前記第2の不揮発性半導体記憶素子に流れる電流値が前記第1の不揮発性半導体記憶素子に流れる電流値よりも大きくなり、且つその電流差が前記結合重み係数の値に比例した電流値となるように、前記第1の不揮発性半導体記憶素子と前記第2の不揮発性半導体記憶素子に書き込みを行う、
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  19.  前記ワード線選択回路は、
     前記入力データが第1の論理値の場合、対応するワード線を非選択状態とし、
     前記入力データが第2の論理値の場合、対応するワード線を選択状態とする、
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  20.  前記第1のデータ線あるいは前記第2のデータ線に、結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値が流れ、
     前記第3のデータ線あるいは前記第4のデータ線に、結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値が流れる、
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  21.  前記判定回路は、
     前記第1のデータ線あるいは前記第2のデータ線に流れる電流値が前記第3のデータ線あるいは前記第4のデータ線に流れる電流値よりも小さい場合、第1の論理値を出力し、
     前記第1のデータ線あるいは前記第2のデータ線に流れる電流値が前記第3のデータ線あるいは前記第4のデータ線に流れる電流値よりも大きい場合、第2の論理値を出力する、
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
  22.  前記電流印加回路を前記第1のデータ線あるいは前記第2のデータ線に接続し、電流を印加した場合には、
     前記第1のデータ線あるいは前記第2のデータ線に、結合重み係数が正の値である複数の入力データと、対応する正の値の結合重み係数との積和演算結果に対応した電流値と、前記電流印加回路で印加した電流値との和が流れ、
     前記電流印加回路を前記第3のデータ線あるいは前記第4のデータ線に接続し、電流を印加した場合には、
     前記第3のデータ線あるいは前記第4のデータ線に、結合重み係数が負の値である複数の入力データと、対応する負の値の結合重み係数との積和演算結果に対応した電流値と、前記電流印加回路で印加した電流値との和が流れる
     請求項1記載の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路。
PCT/JP2018/032676 2017-09-07 2018-09-03 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路 WO2019049842A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019540951A JP6956191B2 (ja) 2017-09-07 2018-09-03 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
CN201880057233.1A CN111052154B (zh) 2017-09-07 2018-09-03 使用非易失性半导体存储元件的神经网络运算电路
US16/809,359 US11615299B2 (en) 2017-09-07 2020-03-04 Neural network computation circuit including non-volatile semiconductor memory element

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-171952 2017-09-07
JP2017171952 2017-09-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/809,359 Continuation US11615299B2 (en) 2017-09-07 2020-03-04 Neural network computation circuit including non-volatile semiconductor memory element

Publications (1)

Publication Number Publication Date
WO2019049842A1 true WO2019049842A1 (ja) 2019-03-14

Family

ID=65633993

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/032676 WO2019049842A1 (ja) 2017-09-07 2018-09-03 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路

Country Status (4)

Country Link
US (1) US11615299B2 (ja)
JP (1) JP6956191B2 (ja)
CN (1) CN111052154B (ja)
WO (1) WO2019049842A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113325909A (zh) * 2020-02-12 2021-08-31 力旺电子股份有限公司 运用于二进制类神经网络系统的乘积累加电路
JP2021168024A (ja) * 2020-04-10 2021-10-21 ルネサスエレクトロニクス株式会社 半導体装置
KR20220002053A (ko) * 2020-06-30 2022-01-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램
WO2022230674A1 (ja) * 2021-04-28 2022-11-03 国立大学法人東北大学 演算処理装置
JP7357079B2 (ja) 2019-05-22 2023-10-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 相変化メモリの閉ループ・プログラミング

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111681696B (zh) * 2020-05-28 2022-07-08 中国科学院微电子研究所 基于非易失存储器的存储和数据处理方法、装置及设备
CN111833888B (zh) * 2020-07-24 2022-11-11 清华大学 一种语音关键词识别的近传感器处理系统、电路及方法
TWI734604B (zh) * 2020-09-03 2021-07-21 旺宏電子股份有限公司 三維nand人工智慧加速器之辨識方法與控制電路
US20230326499A1 (en) * 2022-04-12 2023-10-12 Stmicroelectronics S.R.L. Signed and binary weighted computation for an in-memory computation system
CN115148845B (zh) * 2022-09-05 2023-06-27 浙江大学杭州国际科创中心 一种感光神经元晶体管及其制备方法、使用方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155802A (en) * 1987-12-03 1992-10-13 Trustees Of The Univ. Of Penna. General purpose neural computer
JPH05264645A (ja) * 1992-03-19 1993-10-12 Hitachi Ltd 絶縁物の劣化推定法
US5256911A (en) * 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
JPH0628331A (ja) * 1990-12-28 1994-02-04 Intel Corp マルチプレクスされる出力ニューロンを採用する多層ニューロンネットワーク
JPH06131487A (ja) * 1992-05-19 1994-05-13 Intel Corp ニューラル・ネットワーク
US20080172385A1 (en) * 2006-04-03 2008-07-17 Blaise Laurent Mouttet Programmable crossbar signal processor used in image processing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161556A (ja) 1988-12-14 1990-06-21 Sumitomo Electric Ind Ltd ニューラルネットワークシステム
JPH06259585A (ja) 1993-03-10 1994-09-16 Toyota Central Res & Dev Lab Inc ニューラルネットワーク装置
JP2001188767A (ja) 1999-12-28 2001-07-10 Fuji Xerox Co Ltd ニューラルネットワーク演算装置及びニューラルネットワークの演算方法
US6501256B1 (en) * 2001-06-29 2002-12-31 Intel Corporation Trimmable bandgap voltage reference
KR100400317B1 (ko) * 2001-06-30 2003-10-01 주식회사 하이닉스반도체 클럭 동기 장치의 지연 회로
JP3743891B2 (ja) * 2003-05-09 2006-02-08 松下電器産業株式会社 不揮発性メモリおよびその製造方法
JP5160304B2 (ja) 2008-05-22 2013-03-13 シャープ株式会社 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
US8018758B2 (en) * 2009-07-06 2011-09-13 Magic Technologies, Inc. Gate drive voltage boost schemes for memory array
US8467226B2 (en) * 2011-01-14 2013-06-18 Micron Technology, Inc. Programming an array of resistance random access memory cells using unipolar pulses
WO2012105164A1 (ja) * 2011-02-01 2012-08-09 パナソニック株式会社 不揮発性半導体記憶装置
KR101888468B1 (ko) * 2011-06-08 2018-08-16 삼성전자주식회사 Stdp 기능 셀을 위한 시냅스, stdp 기능 셀 및 stdp 기능 셀을 이용한 뉴로모픽 회로
CN104160450B (zh) * 2012-03-07 2017-06-09 松下知识产权经营株式会社 非易失性半导体存储装置
US10474948B2 (en) * 2015-03-27 2019-11-12 University Of Dayton Analog neuromorphic circuit implemented using resistive memories
CN105404925A (zh) * 2015-11-02 2016-03-16 上海新储集成电路有限公司 一种三维神经网络芯片

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155802A (en) * 1987-12-03 1992-10-13 Trustees Of The Univ. Of Penna. General purpose neural computer
JPH0628331A (ja) * 1990-12-28 1994-02-04 Intel Corp マルチプレクスされる出力ニューロンを採用する多層ニューロンネットワーク
JPH05264645A (ja) * 1992-03-19 1993-10-12 Hitachi Ltd 絶縁物の劣化推定法
JPH06131487A (ja) * 1992-05-19 1994-05-13 Intel Corp ニューラル・ネットワーク
US5256911A (en) * 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
US20080172385A1 (en) * 2006-04-03 2008-07-17 Blaise Laurent Mouttet Programmable crossbar signal processor used in image processing

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7357079B2 (ja) 2019-05-22 2023-10-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 相変化メモリの閉ループ・プログラミング
CN113325909A (zh) * 2020-02-12 2021-08-31 力旺电子股份有限公司 运用于二进制类神经网络系统的乘积累加电路
JP2021168024A (ja) * 2020-04-10 2021-10-21 ルネサスエレクトロニクス株式会社 半導体装置
JP7356393B2 (ja) 2020-04-10 2023-10-04 ルネサスエレクトロニクス株式会社 半導体装置
KR20220002053A (ko) * 2020-06-30 2022-01-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램
JP2022013607A (ja) * 2020-06-30 2022-01-18 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 複合計算装置、方法、人工知能チップ、電子設備、及びプログラム
JP7158510B2 (ja) 2020-06-30 2022-10-21 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 複合計算装置、方法、人工知能チップ、電子設備、及びプログラム
US11782722B2 (en) 2020-06-30 2023-10-10 Beijing Baidu Netcom Science And Technology Co., Ltd. Input and output interfaces for transmitting complex computing information between AI processors and computing components of a special function unit
KR102595540B1 (ko) 2020-06-30 2023-10-30 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램
WO2022230674A1 (ja) * 2021-04-28 2022-11-03 国立大学法人東北大学 演算処理装置

Also Published As

Publication number Publication date
US20200202207A1 (en) 2020-06-25
US11615299B2 (en) 2023-03-28
JP6956191B2 (ja) 2021-11-02
CN111052154B (zh) 2023-10-17
JPWO2019049842A1 (ja) 2020-08-06
CN111052154A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
JP6858870B2 (ja) 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
JP6956191B2 (ja) 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
Sun et al. XNOR-RRAM: A scalable and parallel resistive synaptic architecture for binary neural networks
US20220261624A1 (en) Neural network circuits having non-volatile synapse arrays
CN110782028A (zh) 具有差分二进制非易失性存储器单元结构的可配置精密神经网络
CN110825345A (zh) 使用非易失性存储器单元的乘法
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
US11443172B2 (en) Synapse array of neuromorphic device including synapses having ferro-electric field effect transistors and operation method of the same
CN111656371B (zh) 具有非易失性突触阵列的神经网络电路
CN110729011B (zh) 用于类神经网路的存储器内运算装置
TWI783538B (zh) 多階超低功率推理引擎加速器
WO2019049654A1 (ja) 半導体記憶素子を用いたニューラルネットワーク演算回路
US11727253B2 (en) Neural network system including gate circuit for controlling memristor array circuit
US20230059091A1 (en) Neuromorphic circuit based on 2t2r rram cells
JP2023505178A (ja) 容量性処理ユニット
KR20210083599A (ko) 멀티 비트 특성을 갖는 뉴로모픽 시냅스 소자 및 이의 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18853678

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019540951

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18853678

Country of ref document: EP

Kind code of ref document: A1