The present disclosure relates to a computation circuit unit that includes nonvolatile semiconductor storage elements, a neural network computation circuit, and a method for driving the neural network computation circuit.
Along with development of information communication technology, the arrival of Internet of Things (IoT) technology with which various things are connected to the Internet has been attracting attention. With the IoT technology, performance of various electronic devices is expected to be improved by the devices being connected to the Internet, but nevertheless, as technology for achieving further improvement in performance, research and development of artificial intelligence (AI) technology that allows electronic devices to train themselves and make determinations have been actively conducted in recent years.
In the AI technology, neural network technology of technologically imitating human brain information processing has been used, and research and development have been actively conducted for semiconductor integrated circuits that perform neural network computation at high speed with low power consumption.
A neural network includes basic elements referred to as neurons (that may also be referred to as perceptrons) connected to inputs by junctions referred to as synapses and having different connection weight coefficients (that are also simply referred to as “weight coefficients” hereinafter), and can perform advanced computation processing such as image recognition and speech recognition by the neurons being connected to one another. Each neuron performs a multiply-accumulate operation to obtain a sum total of products resulting from multiplying inputs by connection weight coefficients.
Non Patent Literature (NPT) 1 discloses an example of a neural network computation circuit that includes variable resistance nonvolatile memories (that may also be simply referred to as nonvolatile variable resistance elements or simply “resistance elements” hereinafter). A neural network computation circuit is configured using a variable resistance nonvolatile memory having an analog resistance value (or stated differently, conductance). An analog resistance value corresponding to a connection weight coefficient is stored in a nonvolatile memory element. An analog voltage corresponding to an input is applied to the nonvolatile memory element, and a value of analog current flowing through the nonvolatile memory element at this time is utilized. A multiply-accumulate operation performed in a neuron is performed by storing connection weight coefficients in nonvolatile memory elements as analog resistance values, applying analog voltages having values corresponding to inputs to the nonvolatile memory elements, and obtaining, as a result of the multiply-accumulate operation, an analog current value that is a sum of current values of current flowing through the nonvolatile memory elements. A neural network computation circuit that includes such nonvolatile memory elements can reduce power consumption, and process development, device development, and circuit development have been actively conducted in recent years for variable resistance nonvolatile memories having settable analog resistance values.
Patent Literature (PTL) 1 and PLT 2 each disclose a neural network computation circuit that stores therein an analog resistance value as a weight coefficient of a neural network. In these literatures, each weight coefficient is obtained by a set that includes an analog resistance element and a selection transistor. An input vector for a neural network computation circuit is a vector that includes 0 and 1, and word lines corresponding to the components of the vector are each selected in the case of input 1 and is non-selected in the case of input 0, and an input voltage is applied to a gate terminal of the selection transistor. By adding up, on the same data line, current flowing according to analog resistance values corresponding to weight coefficients in a state in which a plurality of word lines in correspondence with input 1 are selected, the total current is obtained as the result of a multiply-accumulate operation. In PTL 2, a ferroelectric-gate field-effect transistor (FeFET) and a fixed resistor are used for the selection transistor, so that space is saved. In PTL 3, a weight coefficient is a programmable current source, but the principle as a multiply-accumulate operation circuit is similar to those in PTL 1 and PTL 2.
When a conventional neural network computation circuit is configured using a calculator that includes a logical circuit including complementary metal-oxide-semiconductor field-effect transistors (CMOSFETs) and is configured of using, for instance, a central processing unit (CPU), there is a load due to a transfer of a weight coefficient from a memory region that holds the weight coefficient, which is known as a Von Neumann bottleneck, and addition operation that is to be performed for multiply-accumulate operation calculation is to be successively performed. The neural network computation circuit typified by PTL 1 stated above has a configuration in which a computation circuit holds a weight coefficient by using a nonvolatile memory element, and a circuit configuration that allows a multiply-accumulate operation to be performed by adding up analog current. With those configurations, such a neural network computation circuit is to address an issue of an increase in time for calculation due to transferring a weight coefficient and successive addition, and to perform neural network computation at higher speed.
In these neural network computation circuits, addition operation in a multiply-accumulate operation is substituted by obtaining current corresponding to a computation result by adding up current flowing through resistance elements corresponding to weight coefficients on a single data line as parallel current. In order to describe issues that the present disclosure is to address, a typical configuration of such neural network computation circuits is to be described.
A relation between a neural network and total current is to be described with reference to
In the calculation model of the neural network illustrated in
In
To simplify a description, considering an example in which the activation function is a step function shown in
Note that operation of binarizing input and output to 0 and 1 has been described herein in order to simplify the description, yet a configuration, for instance, is conceivable which further enhances expression accuracy of circuit realization analogy with a neural network computation model by providing analog-digital (AD) conversion and digital-analog (DA) conversion circuits. As examples, the accuracy of an activation function is increased by setting the input level of word line WL to an intermediate level between 0 and 1, by causing a comparing circuit for total current IP and total current IN to make analog comparison, or by setting output according to a comparison level. But nevertheless, these are techniques that can be analogized from the above description, and thus description of the techniques is omitted.
An issue that relates to a usable current range (a dynamic range) for each resistance element, which is an issue when realizing such a circuit for a multiply-accumulate operation using total current, is to be described below.
As a factor that affects computation accuracy when realizing such a neural network computation circuit by using a method of adding up a plurality of currents at one time, an allowable current amount of current flowing through each bit line is to be described with reference to
While the upper limit of total current is restricted by their allowable current amounts, an issue that arises in reducing current flowing through each cell and expressing a weight coefficient is to be described next.
A weight coefficient of a neural network as a mathematical model takes on a real number. Thus, in order to associate current flowing through a resistance element with a weight coefficient, a current range of the resistance element and a current range that the weight coefficient may cover are to be associated with each other.
In a neural network computation circuit, two cells represent one real number with a sign.
Accordingly, total current I is determined by the relation
I=(Imax−Imin)×w+Imin
and thus by determining the value of I according to weight coefficient w, weight coefficient w that takes on a value of at least 0 and at most 1 can be associated with a value of at least cell-current lower limit Imin and at most cell-current upper limit Imax, and thus linearity of a multiply-accumulate operation can be theoretically maintained by the association. However, as described above, as adding up current flowing through a plurality of cells, current is not unlimitedly increased, and is clamped at a certain current level. From the viewpoint of linearity of computation, when such a clamp phenomenon is considered, this can be rephrased as an issue of deterioration of linearity due to current being clamped.
On the other hand, to decrease cell-current upper limit Imax is to be considered in order to assure the linearity with regard to adding up current. As described above, cell-current lower limit Imin is cancelled out in computation, and thus it is possible to consider Imin=0(A), to simplify the description. In order to express a real number of at least 0 and at most 1, to decrease cell-current upper limit Imax requires higher accuracy for the controllability of cell current. This leads to an issue of being prone to be affected by manufacturing variations, in particular when actual products are manufactured especially in large quantities.
From the above description, with regard to a cell current amount, a conventional neural network computation circuit have an issue of an allowable current amount of a bit line through which total current flows and an antinomic issue of maintaining current accuracy in reducing current.
The present disclosure is to address the above conventional issues, and is to provide a computation circuit unit, a neural network computation circuit, and a method for driving the neural network computation circuit, which achieve both of maintaining current accuracy and reduction in total current.
In order to provide such a computation circuit unit, a computation circuit unit according to an aspect of the present disclosure is a computation circuit unit that holds a weight coefficient having a positive value or a negative value and corresponding to input data that selectively takes on a first logical value or a second logical value, and provides current corresponding to a product of the input data and the weight coefficient, the computation circuit unit including: a word line; a first data line; a second data line; a third data line; a fourth data line; a fifth data line; a sixth data line; a seventh data line; an eighth data line; first nonvolatile semiconductor storage element; a second nonvolatile semiconductor storage element; a third nonvolatile semiconductor storage element; a fourth nonvolatile semiconductor storage element; a first selection transistor; a second selection transistor; a third selection transistor; and a fourth selection transistor. A gate of the first selection transistor, a gate of the second selection transistor, a gate of the third selection transistor, and a gate of the fourth selection transistor are connected to the word line, one terminal of the first nonvolatile semiconductor storage element and a drain terminal of the first selection transistor are connected, one terminal of the second nonvolatile semiconductor storage element and a drain terminal of the second selection transistor are connected, one terminal of the third nonvolatile semiconductor storage element and a drain terminal of the third selection transistor are connected, one terminal of the fourth nonvolatile semiconductor storage element and a drain terminal of the fourth selection transistor are connected, the first data line and a source terminal of the first selection transistor are connected, the third data line and a source terminal of the second selection transistor are connected, the fifth data line and a source terminal of the third selection transistor are connected, the seventh data line and a source terminal of the fourth selection transistor are connected, the second data line and an other terminal of the first nonvolatile semiconductor storage element are connected, the fourth data line and an other terminal of the second nonvolatile semiconductor storage element are connected, the sixth data line and an other terminal of the third nonvolatile semiconductor storage element are connected, the eighth data line and an other terminal of the fourth nonvolatile semiconductor storage element are connected, the first nonvolatile semiconductor storage element holds, as a resistance value, information of a positive weight coefficient with a weight different from a weight for the second nonvolatile semiconductor storage element, the third nonvolatile semiconductor storage element holds, as a resistance value, information of a negative weight coefficient with a weight different from a weight for the fourth nonvolatile semiconductor storage element, and by the first data line, the third data line, the fifth data line, and the seventh data line being grounded and the second data line, the fourth data line, the sixth data line, and the eighth data line each being applied with a voltage, the computation circuit unit provides, based on current flowing through the second data line, the fourth data line, the sixth data line, and the eighth data line, (i) current corresponding to the product obtained from the input data having the first logical value when the word line is non-selected, and (ii) current corresponding to the product obtained from the input data having the second logical value when the word line is selected.
In order to provide such a neural network computation circuit, a neural network computation circuit according to an aspect of the present disclosure is a neural network computation circuit including: a main region that includes a plurality of computation circuit units each of which is the computation circuit unit; a first additional region, a second additional region, a third additional region, and a fourth additional region each of which includes a selection transistor and a nonvolatile semiconductor storage element having a structure identical to a structure of the first to fourth nonvolatile semiconductor storage elements included in each of the plurality of computation circuit units; a first control circuit for selecting a word line to be connected to a gate of the selection transistor included in the first additional region; a second control circuit for selecting a word line to be connected to a gate of the selection transistor included in the second additional region; a third control circuit for selecting a word line to be connected to a gate of the selection transistor included in the third additional region; a fourth control circuit for selecting a word line to be connected to a gate of the selection transistor included in the fourth additional region; a first node; a second node; a third node; a fourth node; a fifth node; a sixth node; a seventh node; an eighth node; a first determination circuit; and a second determination circuit. The first data line included in each of the plurality of computation circuit units in the main region is connected to the first node, the second data line included in each of the plurality of computation circuit units in the main region is connected to the second node, the third data line included in each of the plurality of computation circuit units in the main region is connected to the third node, the fourth data line included in each of the plurality of computation circuit units in the main region is connected to the fourth node, the fifth data line included in each of the plurality of computation circuit units in the main region is connected to the fifth node, the sixth data line included in each of the plurality of computation circuit units in the main region is connected to the sixth node, the seventh data line included in each of the plurality of computation circuit units in the main region is connected to the seventh node, the eighth data line included in each of the plurality of computation circuit units in the main region is connected to the eighth node, the first determination circuit is connected to the second node and the sixth node, the second determination circuit is connected to the fourth node and the eighth node, the first control circuit is connected to a word line in the first additional region, the second control circuit is connected to a word line in the second additional region, the third control circuit is connected to a word line in the third additional region, the fourth control circuit is connected to a word line in the fourth additional region, each of a plurality of word lines in the main region receives input of corresponding binary data, by the third node and the seventh node being grounded and the fourth node and the eighth node each being applied with a voltage, the neural network computation circuit determines, based on current flowing through the fourth node and the eighth node, a low-order computation result by controlling the first control circuit, the third control circuit, and the second determination circuit, and the neural network computation circuit: determines control of the second control circuit and the fourth control circuit, based on the low-order computation result; and outputs, using the first determination circuit, a computation result corresponding to a sum of products, by the first node and the fifth node being grounded and the second node and the sixth node each being applied with a voltage, the products being obtained by the plurality of computation circuit units.
In order to provide such a method, a method for driving a neural network computation circuit according to an aspect of the present disclosure is a method for driving a neural network computation circuit, the method including: normalizing absolute values of weight coefficients of a plurality of computation circuit units included in the neural network computation circuit, by dividing the absolute values by a maximum value of the weight coefficients; quantizing, based on a bit count, each of the weight coefficients normalized; separating quantized information into one or more high-order bits and one or more low-order bits; and determining, according to the one or more high-order bits and the one or more low-order bits into which the quantized information is separated, a current amount of current flowing through a nonvolatile semiconductor storage element corresponding to a high-order bit among the one or more high-order bits and a current amount of current flowing through a nonvolatile semiconductor storage element corresponding to a low-order bit among the one or more low-order bits, the nonvolatile semiconductor storage element corresponding to the high-order bit and the nonvolatile semiconductor storage element corresponding to the low-order bit being included in each of the plurality of computation circuit units.
According to the computation circuit unit, the neural network computation circuit, and the method for driving the neural network computation circuit according to the present disclosure, antinomic issues of reducing current and maintaining accuracy in a current use range with a conventional technique can be addressed, and a neural network computation circuit that includes nonvolatile semiconductor storage elements that can achieve reduction in power consumption and large-scale integration can be provided.
These and other advantages and features will become apparent from the following description thereof taken in conjunction with the accompanying Drawings, by way of non-limiting examples of embodiments disclosed herein.
Hereinafter, embodiments of the present disclosure are to be described with reference to the drawings.
First, experimental data on a typical configuration of a neural network computation circuit on which the present disclosure is based is to be described.
As can be seen from the graph illustrated in
In view of this issue, a property when the maximum current of cell current is decreased is shown.
A weight coefficient of a neural network has an analog real number of at least 0 and at most 1 as a mathematical model. Yet, on a neural network computation circuit, the weight coefficients are grouped at discrete levels by appropriate quantization from the viewpoint of convenience. In this data, an absolute value is expressed using seven bits and one bit is used as a sign bit, so that a weight coefficient is expressed as an integer with a sign by using eight bits. Thus, the quantization level count (the number of quantization levels) is 127, and current resulting from dividing cell-current upper limit Imax by 127 is cell current per quantization unit (refer to (b) of
An optimal quantization bit count varies depending on the accuracy that a multiply-accumulate operation is to have. Yet, from the viewpoint of operation stability as a neural network computation circuit, a variation in cell current that belongs to a quantization level is to be separate from a variation in cell current that belongs to a different quantization level. Various factors can be considered to cause a variation in cell current, such as a property of a nonvolatile variable resistance element, circuit accuracy for writing current, and a variation in voltage Vth of a selection transistor. Yet, as shown by conventional condition 2 shown in (c) of
In order to address such issues, embodiments of the present disclosure in which the maximum cell current is decreased while cell current per quantization unit is ensured are to be described next.
As illustrated in (a) of
A gate of first selection transistor TPU1, a gate of second selection transistor TPL1, a gate of third selection transistor TNU1, and a gate of fourth selection transistor TNL1 are connected to word line WL1, one terminal of the first nonvolatile semiconductor storage element (nonvolatile variable resistance element RPU1) and a drain terminal of first selection transistor TPU1 are connected, one terminal of the second nonvolatile semiconductor storage element (nonvolatile variable resistance element RPL1) and a drain terminal of second selection transistor TPL1 are connected, one terminal of the third nonvolatile semiconductor storage element (nonvolatile variable resistance element RNU1) and a drain terminal of third selection transistor TNU1 are connected, and one terminal of the fourth nonvolatile semiconductor storage element (nonvolatile variable resistance element RNL1) and a drain terminal of fourth selection transistor TNL1 are connected. The first data line (source line SLPU) and a source terminal of first selection transistor TPU1 are connected, the third data line (source line SLPL) and a source terminal of second selection transistor TPL1 are connected, the fifth data line (source line SLNU) and a source terminal of third selection transistor TNU1 are connected, the seventh data line (source line SLNL) and a source terminal of fourth selection transistor TNL1 are connected. The second data line (bit line BLPU) and another terminal of the first nonvolatile semiconductor storage element (nonvolatile variable resistance element RPU1) are connected, the fourth data line (bit line BLPL) and another terminal of the second nonvolatile semiconductor storage element (nonvolatile variable resistance element RPL1) are connected, the sixth data line (bit line BLNU) and another terminal of the third nonvolatile semiconductor storage element (nonvolatile variable resistance element RNU1) are connected, the eighth data line (bit line BLNL) and another terminal of the fourth nonvolatile semiconductor storage element (nonvolatile variable resistance element RNL1) are connected.
The first nonvolatile semiconductor storage element (nonvolatile variable resistance element RPU1) holds, as a resistance value, information of a positive weight coefficient with a weight different from a weight for the second nonvolatile semiconductor storage element (nonvolatile variable resistance element RPL1), the third nonvolatile semiconductor storage element (nonvolatile variable resistance element RNU1) holds, as a resistance value, information of a negative weight coefficient with a weight different from a weight for the fourth nonvolatile semiconductor storage element (nonvolatile variable resistance element RNL1).
By the first data line (source line SLPU), the third data line (source line SLPL), the fifth data line (source line SLNU), and the seventh data line (source line SLNL) being grounded and the second data line (bit line BLPU), the fourth data line (bit line BLPL), the sixth data line (bit line BLNU), and the eighth data line (bit line BLNL) each being applied with a voltage, the computation circuit unit provides, based on current flowing through the second data line (bit line BLPU), the fourth data line (bit line BLPL), the sixth data line (bit line BLNU), and the eighth data line (bit line BLNL), (i) current corresponding to the product obtained from the input data having the first logical value when word line WL1 is non-selected, and (ii) current corresponding to the product obtained from the input data having the second logical value when word line WL1 is selected.
The first nonvolatile semiconductor storage element (nonvolatile variable resistance element RPU1) holds information of an upper digit of an absolute value of the positive weight coefficient, the second nonvolatile semiconductor storage element (nonvolatile variable resistance element RPL1) holds information of a lower digit of the absolute value of the positive weight coefficient, the third nonvolatile semiconductor storage element (nonvolatile variable resistance element RNU1) holds information of an upper digit of an absolute value of the negative weight coefficient, and the fourth nonvolatile semiconductor storage element (nonvolatile variable resistance element RNL1) holds information of a lower digit of the absolute value of the negative weight coefficient.
More specifically, one computation circuit unit illustrated in (a) of
First, cell-current upper limit Imax of each cell current is determined within a range that is not influenced by a clamped current when current is added up. In the experimental data stated above, influence due to clamp can be reduced by setting cell-current upper limit Imax to about one third of Imax0, and thus description is given in this embodiment based on this (refer to (b) of
When a quantization bit count that is to be originally expressed is seven bits, half the bit count, that is, a quantization level count is reduced to about its square root to set the current. Thus, the lower four bits when a weight is quantized are assigned to lower-level cell CellPL, and upper three bits are assigned to upper-level cell CellPU. An advantage of assigning bits in this manner is that cell current per quantization unit can be increased by decreasing the quantization bit count, as shown in the table in (b) of
When a relation between bit count B of quantization and decrease rate R of cell-current upper limit Imax is considered, separating bits into upper and lower bits is dividing quantization level count 2{circumflex over ( )}B originally expressed into 2{circumflex over ( )}(B/2) each. Here, 2 means 2 to the power of B. In addition, a value as a result of division is rounded up to an integer value herein. Thus, change rate Runit of cell current per quantization unit is:
If current decrease rate R that makes Runit exceed 1 can be set, entire current can be decreased without decreasing cell current per quantization unit. Halving bit count B yields an effect of reducing the entirety into an about square root. The effect is greater than that achieved with decrease rate R of a constant multiple from the viewpoint of the complexity order, and it can be expected that setting Runit in this manner is relatively easy. In the description above,
Hence, while cell current per quantization unit is increased by 2.67 times, total current that flows through a bit line when a multiply-accumulate operation is performed can be reduced to one third.
By configuring a computation circuit unit using four cells in this manner, antinomic issues of reduction in current and maintaining accuracy are addressed, and at the same time, when such a computation circuit unit is provided in a neural network computation circuit, a multiply-accumulate operation is performed for each of an upper-level cell and a lower-level cell for the positive and negative weight coefficients, and thus in order to obtain final output, the final output is to be determined by integrating a computation result of the upper-level cell and a computation result of the lower-level cell.
As illustrated in
“Cell current per quantization unit” is Imax0/127 under “Conventional condition 1”, Imax0/127/3 under “Conventional condition 2”, and Imax0/15/3 according to “Embodiment”. Thus, “Current accuracy” of cell current is “Deteriorated” under “Conventional condition 2” and “Unchanged or Improved” according to “Embodiment” when the value under “Conventional condition 1” is regarded as “Reference value”.
As described above, “Conventional technology” has an issue of an allowable current amount of a bit line through which total current flows (linearity of total current) and an antinomic issue of maintaining current accuracy when a current is decreased. In contrast, a computation circuit unit according to the embodiment can achieve both maintaining current accuracy and reduction in total current.
As described above, an algorithm for separating a weight coefficient into one or more high-order bits and one or more low-order bits is illustrated in
Next, a configuration of a neural network computation circuit that includes such computation circuit units is to be described with reference to
A first data line (source line SLPU) included in each of computation circuit units PUn in main region PUs is connected to the first node (the terminal connected to source line SLPU), a second data line (bit line BLPU) included in each of computation circuit units PUn in main region PUs is connected to the second node (the terminal connected to bit line BLPU), and a third data line (source line SLPL) included in each of computation circuit units PUn in main region PUs is connected to the third node (the terminal connected to source line SLPL). A fourth data line (bit line BLPL) included in each of computation circuit units PUn in main region PUs is connected to the fourth node (the terminal connected to bit line BLPL), and a fifth data line (source line SLNU) included in each of computation circuit units PUn in main region PUs is connected to the fifth node (the terminal connected to source line SLNU), a sixth data line (bit line BLNU) included in each of computation circuit units PUn in main region PUs is connected to the sixth node (the terminal connected to bit line BLNU), a seventh data line (source line SLNL) included in each of computation circuit units PUn in main region PUs is connected to the seventh node (the terminal connected to source line SLNL), and an eighth data line (bit line BLNL) included in each of computation circuit units PUn in main region PUs is connected to the eighth node (the terminal connected to bit line BLNL). The first determination circuit (higher-order readout determination circuit C4) is connected to the second node and the sixth node (terminals connected to bit line BLNU), the second determination circuit (lower-order readout determination circuit C3) is connected to the fourth node and the eighth node (terminals connected to bit line BLNL), the first control circuit (positive-side comparing control circuit C21) is connected to word line WL1 in first additional region PCPLs, the second control circuit (positive-side carry control circuit control circuit C22) is connected to word line WL1 in second additional region PCPUs, the third control circuit (negative-side comparing control circuit C23) is connected to word line WL1 in third additional region PCNLs, the fourth control circuit (negative-side carry control circuit control circuit C24) is connected to word line WL1 in fourth additional region PCNUs, and corresponding binary data is input to each of word lines WL1 to WLn in main region PUs.
By the third node (a terminal connected to source line SLPL) and the seventh node (a terminal connected to source line SLNL) being grounded and the fourth node (a terminal connected to bit line BLPL) and the eighth node (a terminal connected to bit line BLNL) each being applied with a voltage, based on current flowing through the fourth node and the eighth node, the neural network computation circuit determines a low-order computation result by controlling the first control circuit (positive-side comparing control circuit C21) and the third control circuit (negative-side comparing control circuit C23), and the second determination circuit (lower-order readout determination circuit C3), and determines, based on the low-order computation result, control of the second control circuit (positive-side carry control circuit C22) and the fourth control circuit (negative-side carry control circuit C24). By the first node (a terminal connected to source line SLPU) and the fifth node (a terminal connected to source line SLNU) being grounded and the second node (a terminal connected to bit line BLPU) and the sixth node (a terminal connected to bit line BLNU) each being applied with a voltage, the neural network computation circuit outputs a computation result corresponding to a sum of products obtained by plural computation circuit units PUn, by using the first determination circuit (higher-order readout determination circuit C4).
The first control circuit (positive-side comparing control circuit C21), the second control circuit (positive-side carry control circuit C22), the third control circuit (negative-side comparing control circuit C23), and the fourth control circuit (negative-side carry control circuit C24) cause first additional region PCPLs, second additional region PCPUs, third additional region PCNLs, and fourth additional region PCNUs to pass current having a predetermined current amount to the first node (a terminal connected to source line SLPU), the third node (a terminal connected to source line SLPL), the fifth node (a terminal connected to source line SLNU), and the seventh node (a terminal connected to source line SLNL).
More specifically, current is set for each cell to cause computation circuit units PU1, . . . , PUn each including four cells to express a weight coefficient according to the method stated above. Computation circuit units PU1, . . . , PUn are connected by common source lines SLPU, SLPL, SLNU, and SLNL and common bit lines BLPU, BLPL, BLNU, and BLNL, to have the same relations between high-order cells and between low-order cells for the positive sign and the negative sign. Word-line selection circuit C1 controls word lines WL1, . . . , WLn according to input vector x=(x1, x2, . . . , xn) of a neural network.
A DIS signal and source line selection transistors DT1, . . . , DT4 in the drawing control connections of source lines SLPU, SLPL, SLNU, and SLNL to the ground (Vss). When a readout operation is performed, the DIS signal is activated, and functions as a ground for current applied from the readout determination circuits (lower-order readout determination circuit C3 and higher-order readout determination circuit C4). Lower-order readout determination circuit C3 and higher-order readout determination circuit C4 each include a drive circuit that applies readout current to the connected bit lines, and a circuit that determines the magnitude of current flowing through the pair of connected bit lines. The readout determination circuits can be considered to have various configurations, but an example of a configuration with minimum functionality is to be described later.
The neural network computation circuit includes additional regions PCPLs and PCNLs that include memory cells for use in comparing results of multiply-accumulate operations of low-order cells, and additional regions PCPUs and PCNUs for adding carries of results of multiply-accumulate operations of low-order cells to high-order cells, in addition to main region PUs that includes the computation circuit units that each express a weight coefficient.
Word-line selection circuit C2 for controlling such additional regions is provided. Word-line selection circuit C2 includes positive-side carry control circuit C22, positive-side comparing control circuit C21, negative-side carry control circuit C24, and negative-side comparing control circuit C23 that are selection circuits that control selection and non-selection of memory cells in additional regions PCPUs, PCPLs, PCNUs, and PCNLs, and a logical circuit block (not illustrated) that calculates a carry to high-order cells from the result of computation in low-order cells in conjunction with lower-order readout determination circuit C3, in particular.
All additional regions PCPUs, PCPLs, PCNUs, and PCNLs in
As an example of a setting method for satisfying conditions for cell current flowing through the cells, (c) of
and current through a memory cell is set to a current value that is an integral multiple of cell current Iunit per quantization unit (refer to (c) of
Note that for each cell in additional regions PCPUs, PCPLs, PCNUs, and PCNLs, a structure the same as that of the cells in the main region is to be used, but as long as the configuration can achieve similar effects, a nonvolatile semiconductor storage element may be configured using a different fixed resistance element or a different nonvolatile variable resistance element, for instance. On the other hand, an advantage of adopting the same structure as that of the cells in the main region is that a property of the cells in an additional region can be readily changed when cell current Iunit per quantization unit or cell-current upper limit Imax is changed. In particular, when an analog-to-digital (AD) conversion circuit is provided outside as in PTL 3, if the case where cell current Iunit per quantization unit is to be changed is assumed, a more accurate AD conversion circuit and more accurate computation are to be used, so that an increase in circuit scale is expected. Many nonvolatile variable resistance elements exhibit a change in resistance to a certain degree due to an elapse of time when being kept for a long time. In order to address this, it can be considered that a change in relative difference in cell current can be reduced by adopting the same cell structure. Hence, it is considered that the same elements are to be included, rather than providing an additional region or an AD conversion circuit using other external structures.
First, operation phase Step 1 that is a first phase is to be described in detail. As illustrated in
Circuit operation in operation phase Step 1 is to be described in detail, with reference to
Here, low-order readout determination circuit C3 compares the magnitude of IsumP and IsumN. Word-line selection circuit C2 that has obtained the result of the comparison selects positive-side comparing control circuit C21 when IsumP is less than IsumN, and selects negative-side comparing control circuit C23 when IsumN is less than or equal to IsumP. For the convenience of the description, here, it is assumed that IsumP is less than IsumN so that positive-side comparing control circuit C21 is selected. According to the description of an embodiment of the additional region, if positive-side comparing control circuit C21 is appropriately used, total current ICPLs flowing through cells in additional region PCPLs can be controlled. A method for calculating, by using this, a difference in current between IsumP and IsumN as a level value is to be described next.
An Example of a method for calculating a difference in current between IsumP and IsumN as a level value is to be described with reference to
As can be seen from (a) and (b) of
Binary search is a known technique, yet an example of an algorithm in the present embodiment is shown in
Then, low-order readout determination circuit C3 compares the magnitude of IsumN and (ICPLs+IsumP corresponding to level value mid) (S15), and based on the result thereof, word-line selection circuit C2 sets variable Lhs to the value of variable mid when (ICPLs+IsumP corresponding to level value mid)<IsumN, and sets variable Rhs to the value of variable mid if not (S16), after which, steps S11 to S16 are repeated again.
In step S11, when (Rhs-Lhs) is determined not to be greater than 1 (False in S11), word-line selection circuit C2 determines the value of variable Lhs as change point QLdiff (S12).
Next, operation phase Step 2 that is the second phase in the flowchart in
Circuit operation in operation phase Step 2 is to be described in detail, with reference to
In second operation phase Step 2, a level value of a carry amount is obtained from difference level value QLdiff of multiply-accumulate operations of low-order cells obtained in first operation phase Step 1, and readout is performed in a state in which the level value is added. In the present embodiment, quantization levels for weight coefficients of the cells are expressed using two cells for each sign. In particular, the base that shows digits of a high-order bit and a low-order bit is set to 16. Thus, a quotient obtained by dividing level value QLdiff of a low-order current difference by the base number is a carry amount to be added to a high-order cell. In a binary logic circuit, division by 16 can be calculated by simple bit-shift computation, and thus can be readily mounted by using a simple logic circuit. Level value Qcarry of a carry amount is obtained by:
Finally, as shown by operation phase Step 3 that is the third phase in the flowchart in
Thus, as shown by operation in operation phase Step 2, in a state in which negative-side additional region PCNUs adds an appropriate carry amount in parallel to high-order cells as cell current, word-line selection circuit C1 selects a word line corresponding to an input vector for the neural network, and high-order readout determination circuit C4 executes readout. As a final output result, a comparison determination result of high-order readout determination circuit C4 is adopted, yet if high-order comparison is difficult, a comparison result obtained by lower-order readout determination circuit C3 is made a final output.
Note that although description so far shows the readout determination circuits determine that input is equal, normally in current comparison determination in which a differential current sense amplifier, for instance, is used, it is typical to output logical value 0 or 1 according to the magnitude of the input. For input with current that is equal or has a very small difference, it is well known that an output undefined region referred to as a dead zone is present, and it is not general to expect an operation of determining whether input is identical as a comparison function of a differential sense amplifier. However, in the case of the present embodiment to compare current in a quantized state, a known evaluation technique for determining, as equality determination, whether a difference in input is sufficiently close to 0 as compared to resolution at a quantization level can be used to make such determination, by using a method such as margin lead that corresponds to machine epsilon to see if a result changes by a load of about Iunit*0.5, for example, being additionally given.
By using the neural network computation circuit and the operation method as described above, cell current per quantization unit can be ensured while reducing total current of a multiply-accumulate operation by a current adding method on a bit line.
As described above, a computation circuit unit according to the present embodiment is a computation circuit unit that holds a weight coefficient having a positive value or a negative value and corresponding to input data that selectively takes on a first logical value or a second logical value, and provides current corresponding to a product of the input data and the weight coefficient, the computation circuit unit including: a word line; a first data line; a second data line; a third data line; a fourth data line; a fifth data line; a sixth data line; a seventh data line; an eighth data line; a first nonvolatile semiconductor storage element; a second nonvolatile semiconductor storage element; a third nonvolatile semiconductor storage element; a fourth nonvolatile semiconductor storage element; a first selection transistor; a second selection transistor; a third selection transistor; and a fourth selection transistor. A gate of the first selection transistor, a gate of the second selection transistor, a gate of the third selection transistor, and a gate of the fourth selection transistor are connected to the word line, one terminal of the first nonvolatile semiconductor storage element and a drain terminal of the first selection transistor are connected, one terminal of the second nonvolatile semiconductor storage element and a drain terminal of the second selection transistor are connected, one terminal of the third nonvolatile semiconductor storage element and a drain terminal of the third selection transistor are connected, one terminal of the fourth nonvolatile semiconductor storage element and a drain terminal of the fourth selection transistor are connected, the first data line and a source terminal of the first selection transistor are connected, the third data line and a source terminal of the second selection transistor are connected, the fifth data line and a source terminal of the third selection transistor are connected, the seventh data line and a source terminal of the fourth selection transistor are connected, the second data line and an other terminal of the first nonvolatile semiconductor storage element are connected, the fourth data line and an other terminal of the second nonvolatile semiconductor storage element are connected, the sixth data line and an other terminal of the third nonvolatile semiconductor storage element are connected, the eighth data line and an other terminal of the fourth nonvolatile semiconductor storage element are connected, the first nonvolatile semiconductor storage element holds, as a resistance value, information of a positive weight coefficient with a weight different from a weight for the second nonvolatile semiconductor storage element, the third nonvolatile semiconductor storage element holds, as a resistance value, information of a negative weight coefficient with a weight different from a weight for the fourth nonvolatile semiconductor storage element, and by the first data line, the third data line, the fifth data line, and the seventh data line being grounded and the second data line, the fourth data line, the sixth data line, and the eighth data line each being applied with a voltage, the computation circuit unit provides, based on current flowing through the second data line, the fourth data line, the sixth data line, and the eighth data line, (i) current corresponding to the product obtained from the input data having the first logical value when the word line is non-selected, and (ii) current corresponding to the product obtained from the input data having the second logical value when the word line is selected.
Accordingly, a positive weight coefficient is expressed using two nonvolatile semiconductor storage elements having different weights and a negative weight coefficient is expressed using two nonvolatile semiconductor storage elements having different weights. Hence, both of maintaining current accuracy and reduction in total current in multiply-accumulate operations, which are antinomic issues, can be achieved. Thus, a neural network computation circuit that includes nonvolatile semiconductor storage elements that can achieve reduction in power consumption and large-scale integration can be provided.
More specifically, the first nonvolatile semiconductor storage element holds information of an upper digit of an absolute value of the positive weight coefficient, the second nonvolatile semiconductor storage element holds information of a lower digit of the absolute value of the positive weight coefficient, the third nonvolatile semiconductor storage element holds information of an upper digit of an absolute value of the negative weight coefficient, and the fourth nonvolatile semiconductor storage element holds information of a lower digit of the absolute value of the negative weight coefficient. Accordingly, both of the positive weight coefficient and the negative weight coefficient can be expressed by two bits.
Note that each of the first nonvolatile semiconductor storage element, the second nonvolatile semiconductor storage element, the third nonvolatile semiconductor storage element, and the fourth nonvolatile semiconductor storage element may be a variable resistance storage element, a phase-change storage element, a field effect transistor element, or a resistance element having a predetermined fixed resistance value. Accordingly, a computation circuit unit that includes various types of nonvolatile semiconductor storage elements can be provided.
The neural network computation circuit according to the embodiment is a neural network computation circuit including: a main region that includes a plurality of computation circuit units each of which is the computation circuit unit; a first additional region, a second additional region, a third additional region, and a fourth additional region each of which includes a selection transistor and a nonvolatile semiconductor storage element having a structure identical to a structure of the first to fourth nonvolatile semiconductor storage elements included in each of the plurality of computation circuit units; a first control circuit for selecting a word line to be connected to a gate of the selection transistor included in the first additional region; a second control circuit for selecting a word line to be connected to a gate of the selection transistor included in the second additional region; a third control circuit for selecting a word line to be connected to a gate of the selection transistor included in the third additional region; a fourth control circuit for selecting a word line to be connected to a gate of the selection transistor included in the fourth additional region; a first node; a second node; a third node; a fourth node; a fifth node; a sixth node; a seventh node; an eighth node; a first determination circuit; and a second determination circuit. The first data line included in each of the plurality of computation circuit units in the main region is connected to the first node, the second data line included in each of the plurality of computation circuit units in the main region is connected to the second node, the third data line included in each of the plurality of computation circuit units in the main region is connected to the third node, the fourth data line included in each of the plurality of computation circuit units in the main region is connected to the fourth node, the fifth data line included in each of the plurality of computation circuit units in the main region is connected to the fifth node, the sixth data line included in each of the plurality of computation circuit units in the main region is connected to the sixth node, the seventh data line included in each of the plurality of computation circuit units in the main region is connected to the seventh node, the eighth data line included in each of the plurality of computation circuit units in the main region is connected to the eighth node, the first determination circuit is connected to the second node and the sixth node, the second determination circuit is connected to the fourth node and the eighth node, the first control circuit is connected to a word line in the first additional region, the second control circuit is connected to a word line in the second additional region, the third control circuit is connected to a word line in the third additional region, the fourth control circuit is connected to a word line in the fourth additional region, each of a plurality of word lines in the main region receives input of corresponding binary data, by the third node and the seventh node being grounded and the fourth node and the eighth node each being applied with a voltage, the neural network computation circuit determines, based on current flowing through the fourth node and the eighth node, a low-order computation result by controlling the first control circuit, the third control circuit, and the second determination circuit, and the neural network computation circuit: determines control of the second control circuit and the fourth control circuit, based on the low-order computation result; and outputs, using the first determination circuit, a computation result corresponding to a sum of products, by the first node and the fifth node being grounded and the second node and the sixth node each being applied with a voltage, the products being obtained by the plurality of computation circuit units.
Accordingly, a neural network computation circuit that includes a plurality of computation circuit units that can achieve both of maintaining current accuracy and reduction in total current in multiply-accumulate operations can be provided. Thus, a neural network computation circuit that includes nonvolatile semiconductor storage elements that can achieve reduction in power consumption and large-scale integration can be provided.
Here, the first control circuit, the second control circuit, the third control circuit, and the fourth control circuit cause the first additional region, the second additional region, the third additional region, and the fourth additional region to pass current having a predetermined current amount to the first node, the third node, the fifth node, and the seventh node, respectively. Accordingly, a difference between the positive weight coefficient and the negative weight coefficient can be calculated, and a carry from a lower digit to an upper digit can be appropriately processed.
An allowable current amount of current flowing through each of the first node, the second node, the third node, the fourth node, the fifth node, the sixth node, the seventh node, and the eighth node is determined to prevent total current flowing through the plurality of computation circuit units included in the main region from deteriorating linearity of a sum of current flowing through each of the plurality of computation circuit units. Accordingly, linearity of total current can be ensured.
Based on output results from the first determination circuit and the second determination circuit, the first control circuit, the second control circuit, the third control circuit, and the fourth control circuit determine, by linear search or binary search, a predetermined current amount that causes current flowing through the second node and current flowing through the sixth node to have an identical current amount, and a predetermined current amount that causes current flowing through the fourth node and current flowing through the eighth node to have an identical current amount, the second node and the sixth node being connected to the first determination circuit, the fourth node and the eighth node being connected to the second determination circuit. Accordingly, the carry amounts from the lower digit to the upper digit of the positive weight coefficient and the negative weight coefficient can be calculated for a short time.
A method for driving a neural network computation circuit according to the present embodiment is a method for driving a neural network computation circuit, the method including: normalizing absolute values of weight coefficients of a plurality of computation circuit units included in the neural network computation circuit, by dividing the absolute values by a maximum value of the weight coefficients; quantizing, based on a bit count, each of the weight coefficients normalized; separating quantized information into one or more high-order bits and one or more low-order bits; and determining, according to the one or more high-order bits and the one or more low-order bits into which the quantized information is separated, a current amount of current flowing through a nonvolatile semiconductor storage element corresponding to a high-order bit among the one or more high-order bits and a current amount of current flowing through a nonvolatile semiconductor storage element corresponding to a low-order bit among the one or more low-order bits, the nonvolatile semiconductor storage element corresponding to the high-order bit and the nonvolatile semiconductor storage element corresponding to the low-order bit being included in each of the plurality of computation circuit units.
Accordingly, a weight coefficient is normalized and thereafter is separated into a high-order bit and a low-order bit and the amounts of current corresponding to the high-order bit and the low-order bit are determined. Thus, a neural network computation circuit that can achieve both of maintaining current accuracy and reduction in total current in multiply-accumulate operations, which are antinomic issues with conventional technology, can be provided.
The method for driving the neural network computation circuit according to the present embodiment includes: selecting one of the plurality of word lines in the main region for an input signal to the neural network computation circuit; determining the low-order computation result by controlling the first control circuit, the third control circuit, and the second determination circuit, based on the current flowing through the fourth node and the eighth node; determining the control of the second control circuit and the fourth control circuit, based on the low-order computation result; and outputting a computation result for selecting the one of the plurality of word lines in the main region, the computation result being obtained using the second control circuit, the fourth control circuit, and the first determination circuit.
Accordingly, a difference between the positive weight coefficient and the negative weight coefficient for a lower digit is conveyed to an upper digit. Finally, the magnitude between the positive weight coefficient and the negative weight coefficient for which the upper digit and the lower digit are taken into consideration is determined, and output of an activation function in a neuron can be obtained.
Embodiment 1 has shown a configuration of performing one multiply-accumulate operation. Embodiment 2 is an embodiment for embodying, with use of a neural network computation circuit according to the present disclosure, a neural network that performs a plurality of multiply-accumulate operations. In order to describe such an embodiment, first, a relation between a structure of a neural network and the neural network computation circuit according to the present disclosure is to be further clarified.
Embodiment 1 is an embodiment for performing one multiply-accumulate operation, yet considering the configuration of the above neural network for actual use, the entire operation can be performed at higher speed by parallelizing multiply-accumulate operations in the same layer. An embodiment that may be adopted therefor is to be described next.
In a readout operation using two parallels, a basic unit in each of parallel readout units or output therefrom is referred to as a bit. In
Additional regions PCPUs, PCPLs, PCNUs, and PCNLs and word line groups CPUWLs, CPLWLs, CNUWLs, and CNLWLs for controlling the additional regions are to be independently controlled on a bit-by-bit basis in a parallel readout unit. On the other hand, additional regions and word line groups are not affected in different parallel readout units, and thus can be shared. Considering these, as illustrated in
As a method often used as a typical technique for designing a memory array, there is a method of adopting an architecture in which a circuit used for reading out and writing in is shared, and when reading out or writing in, the circuit is connected to a bit line or a source line that is to be accessed using a column selector. From such a viewpoint, a circuit and a configuration that relate to reading out can be shared also in the present embodiment.
These yield effects of reducing space, but may raise design related issues such as variations in length of paths from cells to the readout determination circuits due to the layout arrangement and an increase in resistance component of a selection switch, and thus a configuration is to be determined comprehensively, taking these into consideration when designing circuits.
In Embodiment 1, a computation circuit unit for expressing one weight coefficient divides the weight coefficient into two cells for each sign of the weight, and halves the bit-count load at a weight quantization level, whereby a neural network computation circuit that achieves both reduction in cell current and maintaining computation accuracy. Yet, a weight coefficient can be divided into more cells. Embodiment 3 is to show this.
More specifically, (a) of
Accordingly, by dividing a quantization bit count, cell current can be increased per quantization unit, but nevertheless the number of elements to be provided also increases in proportion to the division count. Hence, an appropriate division count is to be determined under such constraints when designing. Normally, quantization bit count B, decrease rate R for cell-current upper limit Imax, and division count m are used, change rate Runit of cell current per quantization unit is:
Here, B/m is rounded up and an integer value is obtained.
An example of a configuration of a neural network computation circuit that adopts Embodiment 3 is to be described with reference to
A multiply-accumulate operation is to be performed for each bit, similarly to Embodiment 1. Thus, operations of m steps are to be performed for division count m. Similarly to Embodiment 1, except computation of the most significant bit, a carry amount is to be calculated at a level count. Connection of additional regions PCPLs3, PCPLs2, PCNLs3, and PCNLs2 is controlled by operating CPLWLs and CNLWLs, and a level at which determination is switched is determined using readout determination circuits CT3 and CT2. This method is the same as in Embodiment 1, and details are omitted. Also with regard to a carry, similarly to Embodiment 1, a quantization level count corresponding to the carry calculated in the previous phase is divided by the base of bit expression, to determine an amount of additional current to be added to a high-order cell by a carry.
Here, as a difference from Embodiment 1, a multiply-accumulate operation for bits except the most significant bit and the least significant bit is supplementarily described. For each of such bits, a carry amount to the bit itself from a low order is to be considered in calculation of a carry amount from the bit itself to the high order. Hence, a current amount that is a carry amount from the low order is added to the current amount added on a bit line of the bit, and then a carry amount from the bit itself to a high order is calculated. However, such operation can be performed with the configuration illustrated in
As a final output of the result of a multiply-accumulate operation as a neural network computation circuit, a comparison result of high-order cells is preferentially adopted, and if the comparison result of the high-order cells shows that the computation results are the same, a comparison result of next low-order cells is adopted, similarly to Embodiment 1.
As described above, in addition to the configuration of the first to fourth nonvolatile semiconductor storage elements illustrated in
Accordingly, a computation circuit unit is configured of six cells, and a positive weight coefficient and a negative weight coefficient are expressed using three digits, and thus a neural network computation circuit that handles a weight coefficient having a higher quantization level can be obtained.
In Embodiment 1, two operation phases are to be performed to read out a result of a multiply-accumulate operation, whereas a method for finishing computation in one phase by readily making determination is to be described as Embodiment 4.
Normally, a network configuration of a neural network and a distribution of values used for weight coefficients, in particular, vary depending on their usages and scales, yet in a practical network, optimization and a training method for making the distribution sparse are well studied. With regard to the weight coefficients in the sparse distribution, many weights are considered to be 0, and a small number of weight coefficients have meaningful values. In such cases, it is considered to be highly probabilistic that results of multiply-accumulate operations also concentrate around 0 or are positioned at values distant from 0 to a certain degree.
From the above description, such simplification of operations by pruning, which is shown as Embodiment 4, can increase the speed of operation of the neural network computation circuit.
As described above, the neural network computation circuit according to the present disclosure performs a multiply-accumulate operation in a neural network calculation model using a current value of current flowing through nonvolatile semiconductor storage elements. Accordingly, a multiply-accumulate operation can be performed without mounting a multiplication circuit or an accumulation circuit (accumulator circuit) for which conventional digital circuits are used, and thus power consumption of the neural network computation circuit can be reduced and the chip area for the semiconductor integrated circuit can be reduced. In particular, antinomic issues of reduction in cell current and maintaining calculation accuracy with conventional technology can be addressed by calculation divided among a plurality of cells. Hence, it is possible to provide further various neural network models with ways to achieve their functionality.
The above has described embodiments of the present disclosure, yet the neural network computation circuit that includes nonvolatile semiconductor storage elements according to the present disclosure is not limited only to the examples described above, and is effective to circuits resulting from applying various changes within a range that does not depart from the gist of the present disclosure.
For example, the neural network computation circuit that includes nonvolatile semiconductor storage elements according to the above embodiments is an example that includes a variable resistance nonvolatile memory (resistive random access memory (ReRAM)). Yet, the present disclosure is applicable to the case where a phase-change storage element (PRAM), a variable-resistance nonvolatile resistance element such as flash memory, or a variable current element in which a nonvolatile semiconductor storage element other than those is indirectly used.
When the neural network computation circuit according to the present disclosure is regarded as a multiply-accumulate operation circuit, although the detailed description of the embodiments relates to integers having signs resulting from quantizing real numbers with signs. But it is possible to take out only functions for computation without signs, for example. At that time, as illustrated in
Although only some exemplary embodiments of the present disclosure have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the present disclosure.
A neural network computation circuit that includes nonvolatile semiconductor storage elements according to the present disclosure has a configuration of performing a multiply-accumulate operation using nonvolatile semiconductor storage elements, and thus can perform a multiply-accumulate operation without including a multiplication circuit or an accumulation circuit (accumulator circuit) that includes a conventional digital circuit. Since input data and output data are converted into binary digital data, and thus a large-scale neural network circuit can be readily integrated. Thus, the neural network computation circuit yields effects of reducing power consumption and achieving large-scale integration of a neural network computation circuit, and is useful to, for example, a semiconductor integrated circuit that includes artificial intelligence (AI) technology so as to be trained by themselves and make determinations, and electronic devices that includes such an integrated circuit.
Number | Date | Country | Kind |
---|---|---|---|
2022-038182 | Mar 2022 | JP | national |
This is a continuation application of PCT International Application No. PCT/JP2023/006677 filed on Feb. 24, 2023, designating the United States of America, which is based on and claims priority of Japanese Patent Application No. 2022-038182 filed on Mar. 11, 2022. The entire disclosures of the above-identified applications, including the specifications, drawings and claims are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2023/006677 | Feb 2023 | WO |
Child | 18824477 | US |