MEMORY DEVICE AND COMPUTING METHOD THEREOF
20230118468 · 2023-04-20
Inventors
- Yun-Yuan WANG (Kaohsiung City, TW)
- Ming-Liang WEI (Kaohsiung City, TW)
- Ming-Hsiu Lee (Hsinchu, TW)
- Cheng-Hsien LU (Taoyuan City, TW)
Cpc classification
G06F7/575
PHYSICS
G11C16/0458
PHYSICS
International classification
G06F7/575
PHYSICS
Abstract
A memory device and a computing method thereof are provided in the present disclosure. The computing method includes the following steps. A plurality of input-values of a model computation are respectively received through a plurality of first-word-lines of a memory array. Inverted logic values of the input-values are respectively received through a plurality of second-word-lines. The input-values are respectively received through a plurality of first-bit-lines. The inverted logic values are respectively received through a plurality of second-bit-lines. Logic XNOR operation is performed according to each of the input-values and each of the inverted values to obtain a first computation result, and multiplied with one of self-coefficients or one of mutual coefficients of the model computation to obtain a plurality of output-values. The output-values are outputted through a plurality of common-source-lines.
Claims
1. A memory device, comprising: a memory array, for processing a model computation, wherein the model computation has a plurality of input-values, a plurality of self-coefficients, a plurality of mutual-coefficients and a plurality of output-values, and the memory array comprises: a plurality of first-word-lines and a plurality of second-word-lines; a plurality of first-bit-lines and a plurality of second-bit-lines; a plurality of common-source-lines; and a plurality of memory cells, wherein the memory cells respectively receive the input-values through the first-word-lines, receive inverted logic values of the input-values through the second-word-lines, receive the input-values through the first-bit-lines, and receive the inverted logic values through the second-bit-lines and output the output-values through the common-source-lines, wherein each of the memory cells performs a logic XNOR operation according to each of the input-values and each of the inverted logic values to obtain a first computation result, and multiplies each of the first computation results by one of the self-coefficients or one of the mutual-coefficients to obtain each of the output-values.
2. The memory device according to claim 1, wherein each of the memory cells comprises: a first transistor, coupled to the i-th first-word-line of the first-word-lines to be applied with a first-gate-voltage, coupled to the j-th first-bit-line of the first-bit-lines to be applied with a first-drain-voltage, and coupled to the j-th common-source-line of the common-source-lines to output a first-source-current; and a second transistor, coupled to the i-th second-word-line of the second-word-lines to be applied with a second-gate-voltage, coupled to the j-th second-bit-line of the second-bit-lines to be applied with a second-drain-voltage, and coupled to the j-th common-source-line of the common-source-lines to output a second-source-current, wherein the second-source-current and the first-source-current are summed up to form a common-source-current, wherein the first-gate-voltage corresponds to the i-th input-value of the input-values, the second-gate-voltage corresponds to the inverted logic value of the i-th input-value, the first-drain-voltage corresponds to the j-th input-value of the input-values, the second-drain-voltage corresponds to the inverted logic value of the j-th input-value, and the common-source-current corresponds to the output-value outputted by the j-th common-source-line.
3. The memory device according to claim 2, wherein, if “i” is equal to “j”, the i-th input-value received by the i-th first-word-line is equal to the j-th input-value received by the j-th first-bit-line, the i-th input-value is the i-th spin state of a plurality of spin states.
4. The memory device according to claim 3, wherein the first transistor has a first threshold voltage, the second transistor has a second threshold voltage, and if “i” is equal to “j”, the first threshold voltage and the second threshold voltage correspond to one of the self-coefficients.
5. The memory device according to claim 4, wherein, if “i” is not equal to “j”, the first threshold voltage and the second threshold voltage correspond to one of the mutual-coefficients.
6. The memory device according to claim 2, wherein if “i” is not equal to “one” and “i” is equal to (j+1), the i-th input-value received by the i-th first-word-line is equal to the j-th input-value receive by the j-th first-bit-line, and the i-th input-value is the i-th spin state of a plurality of spin states.
7. The memory device according to claim 6, wherein the first transistor has a first threshold voltage, the second transistor has a second threshold voltage, and if “i” is equal to “one”, the first threshold voltage and the second threshold voltage correspond to one of the self-coefficients.
8. The memory device according to claim 7, wherein, if “i” is not equal to “one” and “i” is not equal to (j+1), the first threshold voltage and the second threshold voltage correspond to one of the mutual-coefficients.
9. The memory device according to claim 2, further comprising: a plurality of sensing amplifiers, respectively coupled to the common-source-lines, wherein each of the sensing amplifier sums up the output-values of the corresponding common-source-line to form a total-output-value.
10. The memory device according to claim 9, further comprising: an updating circuit, for comparing each of the total-output-values of the common-source-lines with a threshold value, and updating the j-th input-value received by the j-th first-bit-line if the total-output-value of the j-th common-source-line is greater than the threshold value.
11. A computing method of a memory device, comprising: receiving a plurality of input-values of a model computation through a plurality of first-word-lines of a memory array; receiving inverted logic values of the input-values through a plurality of second-word-lines of the memory array; receiving the input-values through a plurality of first-bit-lines of the memory array; receiving the inverted logic values through a plurality of second-bit-lines of the memory array; performing a logic XNOR operation according to each of the input-values and each of the inverted logic values to obtain a first computation result; multiplying each of the first computation results by one of the self-coefficients of the model computation or one of the mutual-coefficients of the model computation to obtain a plurality of output-values of the model computation; and outputting the output-values respectively through a plurality of common-source-lines of the memory array.
12. The computing method according to claim 11, wherein the memory array comprises a plurality of memory cells, each of the memory cells comprises a first transistor and a second transistor, and the computing method further includes: applying a first-gate-voltage to the first transistor through the i-th first-word-line of the first-word-lines, wherein the first-gate-voltage corresponds to the i-th input-value of the input-values; applying a first-drain-voltage to the first transistor through the j-th first-bit-line of the first-bit-lines, wherein the first-drain-voltage corresponds to the j-th input-value of the input-values; outputting a first-source-current of the first transistor through the j-th common-source-line of the common-source-lines; applying a second-gate-voltage to the second transistor through the i-th second-word-line of the second-word-lines, wherein the second-gate-voltage corresponds to the inverted logic value of the i-th input-value; applying a second-drain-voltage to the second transistor through the j-th second-bit-line of the second-bit-lines, wherein the second-drain-voltage corresponds to the inverted logic value of the j-th input-value; outputting a second-source-current of the second transistor through the j-th common-source-line of the common-source-lines; and summing up the second-source-current and the first-source-current to form a common-source-current, wherein the common-source-current corresponds to the output-value outputted by the j-th common-source-line.
13. The computing method according to claim 12, wherein if “i” is equal to “j”, the i-th input-value received by the i-th first-word-line is equal to the j-th input-value receive by the j-th first-bit-line, the i-th input-value is the i-th spin state of a plurality of spin states.
14. The computing method according to claim 13, further comprising: adjusting a first threshold voltage of the first transistor; and adjusting a second threshold voltage of the second transistor, wherein if “i” is equal to “j”, the first threshold voltage and the second threshold voltage correspond to one of the self-coefficients.
15. The computing method according to claim 14, wherein if “i” is not equal to “j”, the first threshold voltage and the second threshold voltage correspond to one of the mutual-coefficients.
16. The computing method according to claim 12, wherein if “i” is not equal to “one” and “i” is equal to (j+1), the i-th input-value received by the i-th first-word-line is equal to the j-th input-value receive by the j-th first-bit-line, and the i-th input-value is the i-th spin state of a plurality of spin states.
17. The computing method according to claim 16, further comprising: adjusting a first threshold voltage of the first transistor; and adjusting a second threshold voltage of the second transistor, wherein if “i” is equal to “one”, the first threshold voltage and the second threshold voltage correspond to one of the self-coefficients.
18. The computing method according to claim 17, wherein if “i” is not equal to “one” and “i” is not equal to (j+1), the first threshold voltage and the second threshold voltage correspond to one of the mutual-coefficients.
19. The computing method according to claim 12, further comprising: summing up the output-values of each of the common-source-lines to form a total-output-value.
20. The computing method according to claim 19, further comprising: setting a threshold value; comparing each of the total-output-values of the common-source-lines with the threshold value; and updating the j-th input-value received by the j-th first-bit-line if the total-output-value of the j-th common-source-line is greater than the threshold value.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025] In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, that one or more embodiments may be practiced without these specific details. In other instances, well-known structures and devices are schematically illustrated in order to simplify the drawing.
DETAILED DESCRIPTION
[0026]
[0027] Furthermore, referring to
[0028]
[0029] The operator symbol of “*” in equation (1) represents a logic XNOR operation. If the input-values σi and σj have the same logic value (for example, “1, 1” or “0, 0”), the result of the logic XNOR operation is “1”. If the input-values σi and σj have different logic values (for example, “1, 0” or “0, 1”), the result of the logic XNOR operation is “0”. In the embodiment illustrated in
H=h.sub.1σ.sub.1+h.sub.2σ.sub.2+h.sub.3σ.sub.3+J.sub.12(σ.sub.1*σ.sub.2)+J.sub.13(σ.sub.1*σ.sub.3)+J.sub.23(σ.sub.2*σ.sub.3) (2)
[0030]
[0031]
H.sub.j=h.sub.jσ.sub.j+Σ.sub.i,j<jJ.sub.ij(σ.sub.i*σj),j=1,2,3,4 (3)
[0032] Then, the updating circuit 320 may compare each of the total-output-values H.sub.1 to H.sub.4 with a threshold value Hth according to the majority vote rule. If the j-th total-output-value Hj is greater than the threshold value Hth, the updating circuit 320 returns a control signal SP_IN(σ.sub.j) to the spin operator 310 to update the j-th input-value σj. For example, the input-value σ.sub.j is flipped from logic value “1” to logic value “0”. Then, the spin operator 310 performs the Ising model computing again according to the updated input-value σj and other input-values which maintain the original logic value, and the updating circuit 320 determines whether updating is needed again, until the lowest energy H.sub.min is located.
[0033] In the technical solution of the present disclosure, a semiconductor memory device can be used to implement the spin operator 310 to process Ising model computations.
[0034]
[0035]
[0036] In addition, the first transistor Ma has a first threshold voltage V.sub.tha. The relationship between the first-gate-voltage V.sub.Ga, the first-drain-voltage V.sub.Da and the first-source-current I.sub.Sa of the first transistor Ma can be expressed as equation (4):
I.sub.Sa≅(V.sub.Ga−V.sub.tha)×V.sub.Da (4)
[0037] According to equation (4), if the first-gate-voltage V.sub.Ga is a relatively high voltage value (for example, 1.8V) and is higher than the first threshold voltage V.sub.tha (for example, 0.6V), channel of the first transistor Ma can be turned on. Furthermore, the first-drain-voltage V.sub.Da is also a relatively high voltage value (for example, 1.5V) so as to drive the drain-source current, and hence the first-source-current I.sub.Sa can be generated. The first-source-current I.sub.Sa is positively related to the product of the difference between the first-gate-voltage V.sub.Ga and the first threshold voltage V.sub.tha with the first-drain-voltage V.sub.Da.
[0038] In view of logic computations, the first-gate-voltage V.sub.Ga may correspond to the input-value σi of the Ising model, where the argument “i” represents the i-th input-value σi (i.e., the i-th spin state of the Ising model). This argument “i” also indicates that, the memory cell 30(i,j) is coupled to the i-th first-word-line WLia. For example, the first-gate-voltage V.sub.Ga of the memory cell 30(3,4) corresponds to the 3rd input-value σ.sub.3 of the Ising model, and the first transistor Ma of the memory cell 30(3,4) is coupled to the 3rd first-word-line WL3a. If the first-gate-voltage V.sub.Ga is a relatively high voltage value (for example, 1.8V) and is higher than the first threshold voltage V.sub.tha (for example, 0.6V), the input-value σi corresponding to the first-gate-voltage V.sub.Ga refers to logic value “1”. On the other hand, if the first-gate-voltage V.sub.Ga is a relatively low voltage value (for example, 0.3V) and is lower than the first threshold voltage Vtha, the corresponding input-value σi refers to logic value “0”.
[0039] Similarly, the first-drain-voltage V.sub.Da corresponds to the input-value σj, where the argument “j” represents the j-th input-value σj (i.e., the j-th spin state of the Ising model). This argument “j” also means that, the memory cell 30(i j) is coupled to the j-th first-bit-line BLja. If the argument “j” is equal to the argument “i”, the input-value σj is the same as the input-value σ.sub.i, which is the same spin state. If the first-drain-voltage V.sub.Da is a higher voltage value (for example, 1.5V), the corresponding input-value σj=“1”. If the first-drain-voltage V.sub.Da is a relatively low voltage value (for example, 0.2V), the corresponding input-value σj=“O”. In addition, the first-source-current I.sub.Sa also corresponds to an output-value Pa.sub.ij of the logic value “1” or “0”.
[0040] According to equation (4), if the first-gate-voltage V.sub.Ga is a relatively high voltage value (i.e., input-value σi=“1”) and the first-drain-voltage V.sub.Da is also a relatively high voltage value (i.e., input-value σj=“1”) the first-source-current I.sub.Sa may be generated (i.e., output-value Pa.sub.ij=“1”). In view of logic computation, the output-value Pa.sub.ij is the result of the logic AND operation of the input-value a; and the input-value σj, which can be expressed as equation (5):
Pa.sub.ij=σ.sub.1AND σ.sub.j (5)
[0041] In addition, if the first transistor Ma is a floating gate transistor, the first threshold voltage V.sub.tha is adjustable. If the first threshold voltage V.sub.tha is adjusted to a relatively low voltage value (for example, 0.2V), the relationship between the input-value σi, the input-value σj and the output-value Pa.sub.ij still remains as equation (5). In contrast, if the first threshold voltage V.sub.tha is adjusted to a relatively high voltage value (for example, 2.0V), no matter whether the first-gate-voltage V.sub.Ga is a relatively high voltage value (for example, 1.8V) or a relatively low voltage value (for example, 0.3V) the channel of the first transistor Ma cannot be turned-on and therefore cannot generate the first-source-current I.sub.Sa, hence the output-value Pa.sub.ij is always logic value “0”. From the above, the first threshold voltage V.sub.tha may correspond to one of the mutual-coefficients J.sub.ij of the Ising model. If the first threshold voltage V.sub.tha is adjusted to a relatively low voltage value (for example, 0.2V), it corresponds to the mutual-coefficient J.sub.ij=“1”. If the first threshold voltage V.sub.tha is adjusted to a relatively high voltage value (for example, 2.0V), it corresponds to the mutual-coefficient J.sub.ij=“0”. Moreover, if the arguments “i” and “j” are swapped (i.e., interchanged), the mutual-coefficient J.sub.ij is still equal to the mutual-coefficient J.sub.ji. Taking the factor of the first threshold voltage Vtha into consideration, the relationship between the input-value σ.sub.i, the input-value σ.sub.j and the output-value Pa.sub.ij can be expressed as equation (6):
Pa.sub.ij=J.sub.ij×(σ.sub.i AND σ.sub.j) (6)
[0042] On the other hand, if the applied first-gate-voltage V.sub.Ga is a higher voltage value (for example, 2.0V), correspondingly, the second-gate-voltage V.sub.Gb applied by the second transistor Mb is a lower voltage value (for example, 0.3V). In view of logic computations, the second-gate-voltage V.sub.Gb of the second transistor Mb corresponds to an inverted logic value σ.sub.i′ of the input-value σ.sub.i.
[0043] Similarly, the second-drain-voltage V.sub.Db applied to the second transistor Mb corresponds to the inverted logic value σj′ of the input-value σ.sub.j. In addition, the second threshold voltage V.sub.thb of the second transistor Mb also corresponds to the mutual-coefficient J.sub.ij, and the second-source-current I.sub.Sb corresponds to the output-value Pb.sub.ij. Then, the output-value Pb.sub.ij is the result of the logic AND operation of the inverted logic value σ.sub.i′ and the inverted logic value σ.sub.j′ and multiplied by the mutual-coefficient J.sub.ij, as shown in equation (7):
Pb.sub.ij=J.sub.ij×(σ.sub.i′ AND σ.sub.j′) (7)
[0044] Moreover, the output-value P.sub.ij corresponding to the common-source current I.sub.s outputted by the memory cell 30(i,j) is the sum of the output-value Pa.sub.ij of the first transistor Ma and the output-value Pb.sub.ij of the second transistor Mb. The output-value P.sub.ij can be expressed as equation (8):
[0045] From the above, the output-value P.sub.ij of the memory cell 30(i,j) on the common-source-line SLj is the product of the result of the logic XNOR operation of the input-value σ.sub.i and the input-value σ.sub.j and the mutual-coefficient J.sub.ij. That is, the first transistor Ma of the memory cell 30(i,j) performs a logic “AND” operation of the input-value σ.sub.i and the input-value σ.sub.j, and the second transistor Mb performs a logic “AND” operation of the inverted logic value σ.sub.i′ and the inverted logic value of σ.sub.j′, then, the common-source-line SLj performs a logic “OR” operation on the result of the logic “AND” operation of the first transistor Ma and the result of the logic “AND” operation of the second transistor Mb. That is, the memory cell 30(i, j) performs two logic “AND” operations and one logic “OR” operation to achieve one logic XNOR operation.
[0046] In addition, the mutual-coefficient J.sub.ij is not limited to digital logic “1” or logic “0”, the mutual-coefficient J.sub.ij may also have an analog value. As shown in Table 1, if the first threshold voltage V.sub.tha and the second threshold voltage Vthb are set to any voltage value between zero (i.e., 0V) and a relatively high voltage value (for example, 2.0V), the corresponding mutual-coefficient J.sub.ij has an analog value between value “0” and value “1”.
TABLE-US-00001 TABLE 1 mutual-coefficient First threshold second threshold J.sub.ij voltage V.sub.tha voltage V.sub.thb 0 2.0 V 2.0 V 0.4 1.2 V 1.2 V 0.7 0.6 V 0.6 V 1 0 V 0 V
[0047] The above paragraphs describe that a single memory cell 30(i,j) performs one time of spin state computation for a set of input-values σ.sub.i and σ.sub.j. The following paragraphs will describe overall computation by the entire memory array 302 of four input-values σ.sub.1, σ.sub.2, σ.sub.3 and σ.sub.4. Please refer to FIG. 3B again, the common-source-lines SL1˜SL4 are respectively coupled to the sensing amplifiers SA1˜SA4. Taking the first sensing amplifier SA1 as an example, the sensing amplifier SA1 can sum the common-source currents output by all the memory cells of the first common-source-line SL1, so as to sum up all the output-values of the common-source-line SL1 as a total-output-value H1. The sensing amplifiers SA1˜SA4 are coupled to the summing circuit 304 to sum the total-output-values H.sub.1˜H.sub.4 of the common-source-lines SL1˜SL4 as the energy H. Energy H is expressed as equation (9):
H=Σ.sub.i=1˜4,i<j[J.sub.ij×(σ.sub.i*σ.sub.j)] (9)
[0048] The energy H of equation (9) temporarily does not include computation results of the memory cells 30(1,1), 30(2,2), 30(3,3) and 30(4,4) in the diagonal address of the memory array 302. For these memory cells in the diagonal address, taking the memory cell 30(1,1) as an example, the input-value σ.sub.1 received via the first-word-line WL1a and the input-value σ.sub.1 received via the first-bit-line BL1a is the same. In this embodiment, the memory cells 30(1,1), 30(2,2), 30(3,3) and 30(4,4) in the diagonal address do not perform logic “XNOR” operation on the input-values σ.sub.1˜σ.sub.4, but perform logic “AND” operation, instead. Referring to
[0049] In equation (10), the computing coefficient of the memory cell 30(i,j) (where i=j) in the diagonal address is not the mutual-coefficient Jij but the self-coefficient hi. According to equations (9) and (10), the sum of the computing results of all memory cells 30(1,1)˜30(4,4) of the memory array 302 is energy H, which can be expressed as equation (11):
H=Σ.sub.i=1˜4(h.sub.i×σ.sub.i)+Σ.sub.i=1˜4,i<j[J.sub.ij×(σ.sub.i*σ.sub.j)] (11)
[0050] According to equation (11), the energy H computed by the memory device 300B matches the energy H of Ising model.
[0051]
[0052] Then, in step S120, the inverted logic values σ.sub.1′˜σ.sub.4′ of the input-values σ.sub.1˜σ.sub.4 (not shown in
[0053] Next, in step S130, input-values σ.sub.1˜σ.sub.4 are respectively received via the first-bit-lines BL1a˜BL4a. More specifically, the first-drain-voltage V.sub.Da is applied to the first transistor Ma of the memory cell 30(i,j) through the j-th first-bit-line BLja. The first-drain-voltage V.sub.D corresponds to the input-value σj received by the j-th first-bit-line BLja.
[0054] Next, in step S140, the inverted logic values σ.sub.1′˜σ.sub.4′ of the input-values σ.sub.1˜σ.sub.4 (not shown in
[0055] Next, in step S150, each of the memory cells 30(1,1)˜30(4,4) performs a logic XNOR operation based on each input-value σ.sub.1˜σ.sub.4 and each inverted logic value σ.sub.1′˜σ.sub.4′ to obtain a first computation result. Next, in step S160, each of the memory cells 30(1,1)˜30(4,4) multiplies the first computation result by one of the self-coefficients h.sub.1˜h.sub.4 or one of the mutual-coefficients J.sub.12˜J.sub.34 of the Ising model, thus to obtain a plurality of output-values P.sub.ij of the Ising Model.
[0056] Please also refer to
[0057] Next, in step S162, adjusting the first threshold voltage V.sub.tha and the second threshold voltage V.sub.thb of memory cells 30(1,2), 30(1,3), 30(1,4), 30(2,4), 30(3,1) and 30(4,2) other than those in the diagonal address so as to correspond to mutual-coefficients J.sub.12, J.sub.13, J.sub.14, J.sub.24, J.sub.31, J.sub.42 being all “1”. In
[0058] Referring to
[0059] Then, in step S180, the output-values P.sub.ij of the common-source-lines SL1˜SL4 are summed up as total-output-values H.sub.1˜H.sub.4 via the sensing amplifiers SA1˜SA4, which can be expressed as equations (12) to (15):
H.sub.1=h.sub.1σ.sub.1+J.sub.13(σ.sub.3*σ.sub.1)=1+0=1 (12)
H.sub.2=J.sub.12(σ.sub.1*σ.sub.2)+J.sub.24(σ.sub.4*σ.sub.2)=1+1=2 (13)
H.sub.3=J.sub.13(σ.sub.1*σ.sub.3)+h.sub.3σ.sub.3=0+0=0 (14)
H.sub.4=J.sub.14(σ.sub.1*σ.sub.4)+J.sub.24(σ.sub.2*σ.sub.4)+h.sub.4σ.sub.4=1+1+1=3 (15)
[0060] From the above, the sum of the total-output-values H.sub.1˜H.sub.4 at the first time T1 is energy H (H=6). Then, in step S190, a threshold value Hth is set (for example, set as “2”), and the total-output-values H.sub.1˜H.sub.4 are compared with the threshold value H.sub.th.
[0061] Then, in step S200, if it is determined that the total-output-value H.sub.j of the j-th common-source-line SLj is greater than the threshold value H.sub.th, step S210 is performed to update the input-value σ.sub.j received by the j-th first-bit-line BLja. For example, if the total-output-value H.sub.4 (value of H.sub.4 is “3”) of the 4-th common-source-line SL4 is greater than the threshold H.sub.th (value of H.sub.th is “2”), the 4-th input-value σ.sub.4 is updated from logic value “1” to the logic value “0”.
[0062] Next, referring to
H.sub.1=h.sub.1σ.sub.1+J.sub.13(σ.sub.3*σ.sub.1)=1+0=1 (16)
H.sub.2=J.sub.12(σ.sub.1*σ.sub.2)+J.sub.24(σ.sub.4*σ.sub.2)=1+0=1 (17)
H.sub.3=J.sub.13(σ.sub.1*σ.sub.3)+h.sub.3σ.sub.3=0+0=0 (18)
H.sub.4=J.sub.14(σ.sub.1*σ.sub.4)+J.sub.24(σ.sub.2*σ.sub.4)+h.sub.4σ.sub.4=0+0+0=0 (19)
[0063] From the above, the sum of the total-output-values H.sub.1˜H.sub.4 at the second time T2 is energy H (which is “2”). Such an energy H tends to decrease, and hence the lowest energy H.sub.min can be located accordingly.
[0064]
[0065] Next, please refer to
[0066] Referring again to
[0067] Please refer to
[0068] First, referring to
[0069] Then, in step S162B, adjusting the first threshold voltage V.sub.tha and the second threshold voltage V.sub.thb of memory cells 50(2,2), 50(2,3), 50(2,4), 50(3,4), 50(4, 1) and 50 (5, 2), so as to correspond to the mutual-coefficients J.sub.12, J.sub.13, J.sub.14, J.sub.24, J.sub.13, J.sub.24 being all “1”.
[0070] Then, in step S163B, for the memory cells other than those in the first raw address, the common-source currents of memory cells 50(i,i-1) of the shifted diagonal address are zero. From the above, at the first time T1, the total-output-values H.sub.1˜H.sub.4 of the sensing amplifiers SA1˜SA4 of the memory array 502 can be expressed as equations (20) to (23):
H.sub.1=h.sub.1σ.sub.1+J.sub.13s(σ.sub.3*σ.sub.1)=1+0=1 (20)
H.sub.2=J.sub.12(σ.sub.1*σ.sub.2)+J.sub.24(σ.sub.4*σ.sub.2)=1+1=2 (21)
H.sub.3=h.sub.3σ.sub.3+J.sub.13(σ.sub.1*σ.sub.3)=0+0=0 (22)
H.sub.4=h.sub.4σ.sub.4+J.sub.14(σ.sub.1*σ.sub.4)+J.sub.24(σ.sub.2*σ.sub.4)=1+1+1=3 (23)
[0071] The sum of the total-output-values H.sub.1˜H.sub.4 at the first time T1 is energy H with value of “6”. Then, step S200 in
[0072] Next, referring to
H.sub.1=h.sub.1σ.sub.1+J.sub.13(σ.sub.3*σ.sub.1)=1+0=1 (24)
H.sub.2=J.sub.12(σ.sub.1*σ.sub.2)+J.sub.24(σ.sub.4*σ.sub.2)=1+0=1 (25)
H.sub.3=h.sub.3σ.sub.3+J.sub.13(σ.sub.1*σ.sub.3)=0+0=0 (26)
H.sub.4=h.sub.4σ.sub.4+J.sub.14(σ.sub.1*σ.sub.4)+J.sub.24(σ.sub.2*σ.sub.4)=0+0+0=0 (27)
[0073] The sum of the total-output-values H.sub.1˜H.sub.4 at the second time T2 is energy H (with value of “2”), and such an energy H tends to decrease. Based on the above, the lowest energy H.sub.min in can be located.
[0074]
[0075] In addition, the common-source-line SL1-1 of the memory cell 70(1,1) is coupled to an analog-to-digital converter (ADC) 702, so as to convert an analog signal of the common-source current outputted by the memory cell 70(1,1) to a digital signal. In addition, the ADC 702 is further coupled to a two-bit shifter 708 to shift the digital signal with two-bits toward the higher bit. Similarly, the common-source-line SL1-2 of the memory cell 70(1, 2) is also coupled to an ADC 704 to convert the analog signal of the common-source current to a digital signal, which is then shifted with one-bit toward higher bit via the one-bit shifter 710. In addition, the digital signal outputted by the ADC 706 of the common-source-line SL1-3 of the memory cell 70 (1, 3) is not performed bit-shifting. The outputs of the two-bits shifter 708, the one-bit shifter 710 and the ADC 706 can be integrated as a total-output-value H.sub.1 (which equals h.sub.1σ.sub.1).
[0076] Similarly, the memory cells 70(1,4), 70(1,5) and 70(1,6) of another group may correspond to the mutual-coefficient J.sub.12, where the mutual-coefficient J.sub.12 can be encoded as the first-bit J.sub.12(1), the second-bit J.sub.12(2) and the third-bit J.sub.12(3). The first threshold voltage V.sub.tha and the second threshold voltage V.sub.f of the memory cells 70 (1, 4), 70(1, 5) and 70(1, 6) can be adjusted to set the first-bit J.sub.12(1), the second-bit J.sub.12(2) and the third-bit J.sub.12(3). The ADC 712, 714, and 716, the two-bits shifter 718 and the one-bit shifter 720 are used to convert analog common-source current outputted by the common-source-lines SL2-1, SL2-2 and SL2-3 to digital signals and then integrated into a total-output-value H.sub.2 (which equals J.sub.12 σ.sub.1*σ.sub.2).
[0077]
[0078]
[0079] Similarly, the first threshold voltage V.sub.tha and the second threshold voltage V.sub.thb of the memory cells 92(1,9)˜92(9,9) at the 9-th row address of the memory subarray 902 correspond to the first portion J.sub.19.sup.+ of the mutual-coefficient J.sub.19. The first threshold voltage V.sub.tha and the second threshold voltage V.sub.thb of the memory cells 94(1,9)˜94(9,9) at the 9-th row address of the memory subarray 904 correspond to the second portion J.sub.19.sup.− of the mutual-coefficient J.sub.19. The first portion J.sub.19.sup.+ and the second portion J.sub.19.sup.− may form the mutual-coefficient J.sub.19 (where J.sub.19=J.sub.19.sup.++J.sub.19.sup.−).
[0080]
[0081]
[0082]
[0083] According to the memory devices 300B˜1200 of the above-mentioned embodiments and the corresponding computing method, the technical solution of the present disclosure employs semiconductor memory devices 300B˜1200 to process Ising model computations, which can be used for processing a plurality of input-values σi, a plurality of self-coefficients hi and mutual-coefficients J.sub.ij to obtain the energy H. Furthermore, cooperating with updating mechanism with the majority vote rule, the lowest energy H.sub.min in of the Ising model can be located. The technical solution of the present disclosure can rapidly compute energy H by the semiconductor memory device 300B˜1200 with simulating quantum annealing computation, and hence obtain input-values a, of the best solution (lowest energy H.sub.min).
[0084] It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.