2D and 3D sum-of-products array for neuromorphic computing system
10957392 ยท 2021-03-23
Assignee
Inventors
Cpc classification
H01L29/792
ELECTRICITY
G06F7/388
PHYSICS
H10B43/27
ELECTRICITY
H01L29/7881
ELECTRICITY
H10B41/27
ELECTRICITY
G11C16/0483
PHYSICS
International classification
G06F7/38
PHYSICS
H01L29/792
ELECTRICITY
Abstract
An array of variable resistance cells based on a programmable threshold transistor and a resistor connected in parallel is described, including 3D and split gate variations. An input voltage applied to the transistor, and the programmable threshold of the transistor, can represent variables of sum-of-products operations. Programmable threshold transistors in the variable resistance cells comprise charge trapping memory transistors, such as floating gate transistors or dielectric charge trapping transistors. The resistor in the variable resistance cells can comprise a buried implant resistor connecting the current-carrying terminals (e.g. source and drain) of the programmable threshold transistor. A voltage sensing sense amplifier is configured to sense the voltage generated by the variable resistance cells as a function of an applied current and the resistance of the variable resistance cells.
Claims
1. A device, comprising a plurality of levels of word lines overlying a substrate, a plurality of vertical channel structures orthogonal to the substrate, extending through the plurality of levels of word lines, an array of variable resistance cells disposed at cross points of word lines in the plurality of levels of word lines and vertical channel structures in the plurality of vertical channel structures, the array of variable resistance cells being arranged in a plurality of vertical serially-connected strings of variable resistance cells along vertical channel structures in the plurality of vertical channel structures, at least some of the variable resistance cells in the array each comprising a programmable threshold transistor and a resistor connected in parallel; and circuitry to apply current to a selected vertical channel structure in the plurality of vertical channel structures, and input voltages representing values X.sub.1 to X.sub.m of an input vector, where m is at least 3, in parallel to word lines WL.sub.1 to WL.sub.m in the plurality of levels of word lines, and sense amplifier circuits configured for connection to the selected vertical channel structure in the plurality of vertical channel structures, which are responsive to voltage generated by the current and to a sum of variable resistances of a vertical serially-connected string of variable resistance cells along the selected vertical channel structure generated by the input voltages representing values X.sub.1 to X.sub.m and weights stored in the variable resistance cells to produce sum-of-products results for the selected vertical channel structure.
2. The device of claim 1, including word line drivers connected to the word lines in the plurality of levels of word lines to apply variable gate voltages as the input voltages representing values X.sub.1 to X.sub.m to the programmable threshold transistors in the variable resistance cells.
3. The device of claim 1, wherein the programmable threshold transistor in the variable resistance cell is a charge trapping memory transistor.
4. The device of claim 3, wherein the resistor in the variable resistance cell is a buried implant resistor in the charge trapping memory transistor.
5. The device of claim 1, wherein the programmable threshold transistor in the variable resistance cell is a floating gate charge trapping memory transistor, and the resistor in the variable resistance cell is a buried implant resistor in the floating gate charge trapping memory transistor.
6. The device of claim 1, wherein the programmable threshold transistor in the variable resistance cell is a dielectric charge trapping memory transistor, and the resistor in the variable resistance cell is a buried implant resistor in the dielectric charge trapping memory transistor.
7. The device of claim 1, wherein the at least some of the variable resistance cells in the array each consists of one transistor having a layout footprint, and one resistor, in which the resistor is implemented within the layout footprint of the one transistor.
8. A device, comprising: a plurality of levels of word lines overlying a substrate; a plurality of vertical strings of variable resistance cells orthogonal to the substrate, extending through the levels of word lines; variable resistance cells in at least some of the strings in the plurality of vertical strings each having a first current-carrying node in a corresponding vertical channel structure of the plurality of vertical strings, a second current-carrying node in the corresponding vertical channel structure, and a control terminal in a corresponding word line of the plurality of levels of word lines, and comprising a programmable threshold transistor and a resistor connected in parallel to the first and second current-carrying nodes, the programmable threshold transistor having a gate connected to the control terminal; and wherein: a variable resistance of each of the variable resistance cells in the strings is a function of a voltage applied to the control gate of the cell, a threshold of the programmable threshold transistor, and the resistor; and including circuitry to apply current to a selected vertical string in the plurality of vertical strings, and input voltages representing values X.sub.1 to X.sub.m of an input vector, where m is at least 3, in parallel to word lines WL.sub.1 to WL.sub.m in the plurality of levels of word lines, and sense amplifier circuits configured for connection to the selected vertical string in the plurality of vertical strings, which are responsive to voltage generated by the current and to a sum of variable resistances of the variable resistance cells along the selected vertical string generated by the input voltages representing values X.sub.1 to X.sub.m and weights stored in the variable resistance cells to produce sum-of-products results for the selected vertical string.
9. The device of claim 8, wherein the programmable threshold transistor in each of the variable resistance cells is a charge trapping memory transistor, and the threshold of the transistor is a function of charge trapped in the charge trapping memory transistor.
10. The device of claim 9, wherein the resistor in each of the variable resistance cells is a buried implant resistor in the charge trapping memory transistor.
11. The device of claim 8, including circuitry to program the threshold of the programmable threshold transistor with multiple levels.
12. The device of claim 8, wherein the programmable threshold transistor in the variable resistance cell is a floating gate charge trapping memory transistor, and the resistor in each of the variable resistance cells is a buried implant resistor in the floating gate charge trapping memory transistor, and the threshold of the transistor is a function of charge trapped in the floating gate charge trapping memory transistor.
13. The device of claim 8, wherein the programmable threshold transistor in the variable resistance cell is a dielectric charge trapping memory transistor, and the resistor in each of the variable resistance cells is a buried implant resistor in the dielectric charge trapping memory transistor, and the threshold of the transistor is a function of charge trapped in the dielectric charge trapping memory transistor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
DETAILED DESCRIPTION
(29) A detailed description of embodiments of the present invention is provided with reference to the
(30)
(31) In the illustrated example, the output of the summation is applied to a sigmoid function to produce an output that ranges in a non-linear fashion between a minimum and a maximum such as between 0 and 1. This is a common model of a synapse for example used in neuromorphic computing. Other activation functions can be used as well, such a logit function. The sum-of-products operation can be applied as well in configurations not neuromorphic or not otherwise considered to model neurological systems.
(32)
(33) A voltage applied to the word lines corresponds to the variable inputs X.sub.1 to X.sub.4, . . . X.sub.m In this manner, the variable resistance of each of the variable resistance cells in the strings is a function of a voltage applied on the word line to the control gate of the cell, a threshold of the programmable threshold transistor in the cell, the current in the cell, and the resistor.
(34) The summing nodes (SUM.sub.1 to SUM.sub.4, . . . SUM.sub.n) are coupled to a voltage sensing sense amplifier to generate a signal representing the sum-of-products output of each of the strings. A current source 21-24 is coupled to each of the strings to apply a constant current, in a representative example, to each string during the sensing operation.
(35)
(36) A voltage V.sub.G on the control terminal 32 can be characterized as a gate voltage for the programmable threshold transistor 35. The control terminal 32 can correspond to a word line in the array shown in
(37) In this example, a cell current I.sub.C is applied to the second current-carrying node 31, having a current amplitude that is set in design, or adjustable, to establish a voltage drop in the cells, depending on the voltage range of the voltage sense amplifier, and the resistance values in the cells for the resistor 36. The current amplitude can be tuned according to a particular embodiment of the array, so that a usable range of voltages can be generated on the string for supply to the summing node. Also, the magnitude of resistance of the resistor and the configuration of the programmable threshold transistor can be designed to operate with the selected current level and a specified sensing range.
(38) The programmable threshold transistor 35 can be implemented using a floating gate memory cell, a split gate floating gate memory cell, a dielectric charge trapping memory cell, such as a SONOS device or other types of dielectric charge trapping cells known as for example BE-SONOS and TANOS, and a split gate, dielectric charge trapping memory cell. Other programmable memory cell technologies, such as phase change memory, metal oxide memory, and so on, may be utilized as well.
(39) Also, in embodiments of the technology, the resistor 36 can be implemented as a buried implant resistor between source and drain terminals of the programmable threshold transistor 35.
(40)
(41) A voltage V.sub.G on the control terminal 3632 can be characterized as a gate voltage for the programmable threshold transistor 3635. The control terminal 32 can correspond to a word line in the array shown in
(42)
(43) In this example, the device is implemented on a substrate 100, which can be a p-type substrate. A source terminal 101 and a drain terminal 102 are implemented by n-type ion implantation in the substrate 100. The source terminal 101 and the drain terminal 102 have contacts 107, 108 formed thereon, coupled to a source node having voltage V.sub.S and a drain node having voltage V.sub.D. A p-type channel region 113 is disposed between the buried implant resistor 110 and a gate dielectric layer 105 (tunnel oxide) that overlies the substrate 100 between the source terminal 101 and the drain terminal 102. A floating gate polysilicon layer 103 is disposed over the gate dielectric layer 105. An inter-poly dielectric 106 is disposed over the floating gate polysilicon layer 103, implemented in some embodiments using a multilayer structure comprising silicon oxide, silicon nitride, and silicon oxide layers (ONO). A control gate polysilicon layer 104 is disposed over the inter-poly dielectric 106. A contact layer 109 is formed over the control gate polysilicon layer 104. Sidewall structures (not numbered) are formed along the sidewalls of the gate stack.
(44) The structure shown in
(45) In
(46) Thus, the device has a variable resistance (or variable conductance) that is a function of the resistance of the buried implant resistor 110, and the resistance of the channel of the floating gate device. The resistance of the channel of the floating gate device is a function of the gate voltage, and of the charge trapped in the floating gate.
(47)
(48) In this example, the device is implemented on a substrate 200, which can be a p-type substrate. A source terminal 201 and a drain terminal 202 are implemented by n-type ion implantation in the substrate 200. The source terminal 201 and the drain terminal 202 have contacts 207, 208 formed thereon, coupled to a source node having voltage V.sub.S and a drain node having voltage V.sub.D. A p-type channel region 213 is disposed between the buried implant resistor 210 and a tunneling dielectric layer 205 that overlies the substrate 200 between the source terminal 201 and the drain terminal 202. A dielectric charge trapping layer 203 is disposed over the tunneling dielectric layer 205. A blocking dielectric 206 is disposed over the dielectric charge trapping layer 203. A control gate polysilicon layer 204 is disposed over the blocking dielectric 206. A contact layer 209 is formed over the control gate polysilicon layer 204. Sidewall structures (not numbered) are formed along the sidewalls of the gate stack.
(49) The structure shown in
(50) In
(51) Thus, the device has a variable resistance (or conductance) that is a function of the resistance of the buried implant resistor 210, and the resistance of the channel of the dielectric charge trapping device. The resistance of the channel of the dielectric charge trapping device is a function of the gate voltage, and of the charge trapped in the dielectric charge trapping gate.
(52) In both of the embodiments of
(53) In operation, the cells illustrated in
(54) While the gate-to-source voltage V.sub.GS is less than the threshold voltage Vt, current can flow in the buried implant resistor but no transistor channel (surface channel) is formed, allowing only current I.sub.B in the buried resistor. Thus, the current in the cell is equal to I.sub.B and the resistance of the cell is equal to the drain-to-source voltage V.sub.DS divided by the current I.sub.B.
(55) While the gate-to-source voltage V.sub.GS is greater than the threshold voltage Vt, both the surface channel current I.sub.S and the buried resistor current I.sub.B are induced. The channel resistance can be much less than the resistance of the buried resistor, and so I.sub.S can dominate when the transistor is on. Thus, the current I.sub.n in the column is divided in the cell so that it is equal to the sum I.sub.S+I.sub.B, and the cell resistance is equal to the drain-to-source voltage V.sub.DS divided by the current I.sub.n.
(56) Since the threshold of the floating gate or dielectric charge trapping cell is programmable, this cell resistance can emulate a product of a parameter X(i) represented by the gate voltage, and a parameter W(i) represented by the charge trapped in the cell, the resistance of the resistor in the cell and the cell current. The parameter W(i) can be a binary value, where the cell operates in one of two states (I.sub.B only higher resistance state and I.sub.B+I.sub.S lower resistance state). If the cell is operated in the linear region for FET behavior, then the parameter W(i) can be analog, and vary in range according the charge trapped in the cell.
(57)
(58)
(59)
(60)
(61) As can be seen, a variable resistance cell such as that shown in
(62) Variable resistance cells having structures like that shown in
(63)
(64)
(65) In this example, the substrate is a p-type substrate, and current carrying terminals (i.e. source/drain terminals) of the variable resistance cells are implemented by n-type implants 420-427. In some high density embodiments, implants are not used in current carrying terminals between the cells, so the current carrying terminals rely on inversion for charge carriers as in the channel regions. No contacts are made directly to the current carrying terminals between all the cells in a NAND-like embodiment as illustrated.
(66) String select word lines 401 and 402 are disposed on opposing ends of the series-connected strings. Active regions 504 and 505 comprise n-type implants in the substrate used for bit line and common source line connections for the series-connected strings. The active regions 504 and 505 can be deeper implants or higher conductivity implants then the current carrying terminals of the variable resistance cells. A bit line contact 502 connects the active region 504 to a bit line in an overlying patterned conductor layer. A source line contact 503 connects the active region 505 to a source line in an overlying patterned conductor layer.
(67) An n-type buried implant resistor 451 is implemented, extending in this example from the edge of a channel of a select gate controlled by the bit line side string select word line 401, to the edge of the channel of a select gate controlled by source line side string select word line 402. In this manner, the select gates operate to connect and disconnect the buried implant resistor 451 to the active regions 504, 505.
(68) In this example, a p-type guard layer 450, having a higher p-type impurity concentration than the channel regions of the variable resistance cells, is disposed between the channels and the buried implant resistor 451. The p-type guard layer 450 helps to shield the buried implant resistor 451 from the gate voltage, and maintain the stability of the parallel resistance value.
(69)
(70)
(71)
(72)
(73)
(74)
(75)
(76)
(77)
(78) The conductors in the stack configured as word lines can be used to apply inputs for operation of the array of NAND-like strings as a sum-of-products accelerator structure.
(79)
(80)
(81) Embodiments of sum-of-products arrays utilizing variable resistance cells can have very large arrays, including arrays having thousands or millions of variable resistance cells. Manufacturing techniques that are utilized for large-scale 2D and 3D NAND devices can be applied, with the addition of steps for implementation of the buried implant resistors or other resistor structures, in the manufacturing of large sum-of-products arrays implemented in NAND-like structures as shown in
(82) The peripheral circuitry can be simplified by configuring the programmable resistance cells in the array of cells to operate in a binary mode. The programmable threshold transistors can store binary state. The current applied to the columns can be constant, or applied in a fixed number of binary levels. The resistors in the programmable resistance cells can be constant throughout the array, or be implemented in a fixed number of binary levels of resistance.
(83) Binary mode operation can allow simplification of the peripheral circuits, by reducing the complexity of the programming algorithms needed to program the threshold in the cells, the current sources used to apply current to the columns in the array and the sensing circuitry used to generate output values.
(84)
(85) The graph in
(86) When the transistor is off, a larger voltage drop V.sub.dLg dominated by the voltage drop caused by current through the resistor I*R.sub.mn is induced. When the transistor is on, a smaller voltage drop V.sub.dSm which can be considered to be close to 0 V, dominated by the voltage drop caused by current through the transistor channel, is induced. This relationship is illustrated in the following TABLE 1.
(87) TABLE-US-00001 TABLE 1 V.sub.n (voltage drop) Weight W.sub.mn Transistor state 0 High Vt (HVt) 1 Low Vt (LVt) 1 High: HVt > Input > LVt OFF, (I*R, V.sub.dLg) ON, (~0, V.sub.dSm) 0 Low: LVt > Input OFF, (I*R, V.sub.dLg) OFF, (I*R, V.sub.dLg)
(88) The binary operation can be extended to a string of variable resistance cells as illustrated in
(89) With three input variables, shown in the first column, and three potential weights, shown across the second row of the table, and assuming a constant current and constant resistor value for each of the cells, the variations on the voltage drop V.sub.n on the column can be seen (assuming V.sub.dSm is close to () zero) in the following TABLE 2.
(90) TABLE-US-00002 TABLE 2 V.sub.n Input Weight [W1.sub.n W2.sub.n W3.sub.n] [x1 x2 x3] [000] [001] [010] [011] [100] [101] [110] [111] [000] 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg [001] 3 V.sub.dLg ~2 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg [010] 3 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg ~ ~2 V.sub.dLg [011] 3 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~V.sub.dLg 3 V.sub.dLg ~ 2 V.sub.dLg ~V.sub.dLg [100] 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~ ~2 V.sub.dLg [101] 3 V.sub.dLg ~2 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~V.sub.dLg 2 V.sub.dLg ~V.sub.dLg [110] 3 V.sub.dLg 3 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~V.sub.dLg ~V.sub.dLg [111] 3 V.sub.dLg ~2 V.sub.dLg ~2 V.sub.dLg ~V.sub.dLg ~2 V.sub.dLg ~V.sub.dLg ~V.sub.dLg ~0
(91) By setting the sensing reference voltages according to these four levels of V.sub.n, the voltage across the columns can be translated into numerical outputs between 0 and 3, as shown in the following TABLE 3.
(92) TABLE-US-00003 TABLE 3 Voltage drop (3-V.sub.n/V.sub.dLg) Weight [W1.sub.n W2.sub.n W3.sub.n] Input [x1 x2 x3] [000] [001] [010] [011] [100] [101] [110] [111] [000] 0 0 0 0 0 0 0 0 [001] 0 1 0 1 0 1 0 1 [010] 0 0 1 1 0 0 1 1 [011] 0 1 1 2 0 1 1 2 [100] 0 0 0 0 1 1 1 1 [101] 0 1 0 1 1 2 1 2 [110] 0 0 1 1 1 1 2 2 [111] 0 1 1 2 1 2 2 3
(93) As the number of rows providing unique inputs and number of columns of cells increases, the array can generate complex sum-of-products while relying on binary operation (i.e., programming the transistors to a low threshold or a high threshold) of the individual programmable resistance cells.
(94) In some embodiments, multibit binary weights may be stored in some or all of the cells in the array, adding further resolution to programmable weights of the cells.
(95)
(96)
(97) The output of the sense amplifier 650 comprises a sequence of signals that correspond with the input reference voltage level. These signals can be stored in registers 660, that are provided to an arithmetic logic unit 661 or other type of processing circuitry like a digital signal processor, general purpose processor, or the like, where further arithmetic operations can be executed to further the sum-of-products operations. For example, the outputs generated on a plurality of columns of the array can be combined for the purposes of generating a single term of the sum-of-products operation, depending on how the array of programmable resistance cells configured as discussed below.
(98)
(99)
(100) Reference string 681 column is implemented in the array, using three cells that can have electrical characteristics matching those of the three cells used in the operating string 680. In order to generate the voltage V.sub.min, the weights of the cells in the reference string 681, designated W.sub.1ref, W.sub.2ref and W.sub.3ref, are all set to the value (in this case 1) of corresponding to the low threshold state. The resistors in the cells of the reference string 681 can have a constant value R that matches the value R in the cells in the operating string 680. The inputs to the cells in the reference string 681 are tied together and coupled to a voltage V.sub.ON during operation so that all the cells in the reference string 681 are turned on, and generate the small voltage drop V.sub.dSm. Thus the voltage V.sub.min in this example will be equal to about 3*V.sub.dSm, or three times the small voltage drop of the unit cell used in the operating string 680. TABLE 4 below illustrates an operating example for a given input and weight configuration for the operating string (computation column) and the reference column.
(101) TABLE-US-00004 TABLE 4 Computation column Reference column Voltage Voltage Input/ Voltage difference Input Weight drop Weight drop for each bit x1 1 W.sub.1n 1 V.sub.dSm 1/1 V.sub.dSm V.sub.dSm V.sub.dSm = 0 x2 0 W.sub.2n 1 V.sub.dLg 1/1 V.sub.dSm V.sub.dLg V.sub.dSm = V.sub.d x3 1 W.sub.3n 0 V.sub.dLg 1/1 V.sub.dSm V.sub.dLg V.sub.dSm = V.sub.d
(102) In an embodiment in which a reference string is used to generate only V.sub.min, the value V.sub.max used by the reference voltage circuitry can be set at a high enough value to provide a good operating margin for the device. The example shown in
(103) In embodiments of the present technology, the variable resistance cells can be implemented in large-scale arrays using NAND-like technologies. Thus, any given column of cells that is coupled in a string can have, for example, 16, 32, 64 or more cells. In the configuration of any given sum-of-products operation, less than all of the cells in a given column may be utilized.
(104)
(105) In the example shown, a three cell operating string 690 on the operating column n is configured for a sum-of-products operation, where the cells on the operating string 690 have inputs X.sub.1 to X.sub.3 and weights W1.sub.n, W2.sub.n and W3.sub.n. The weights are programmed into the operating string 690 according to the terms of the sum-of-products operation to be executed. Unused cells on the operating column n are given inputs Y.sub.1 and Y.sub.2 and weights W4.sub.n and W5.sub.n. The voltage generated by a current I.sub.n through the string is designated V.sub.n. The inputs Y.sub.1 and Y.sub.2 and weights W4.sub.n and W5.sub.n are configured so that the unused cells in the operating column n are turned on during the sum-of-products operation.
(106) Reference string 691 is implemented in the array or in a reference array, in a reference column using three cells that can have electrical characteristics matching those of the three cells used in the operating string 690. Unused cells on the reference column including the reference string 691 have weights W4.sub.ref and W5.sub.ref. In order to generate the voltage V.sub.min, the weights of the cells in the reference string 691, designated W1.sub.ref, W2.sub.ref and W3.sub.ref, and of the cells having weights W4.sub.ref and W5.sub.ref in the unused part of the column, are all set to the value (in this case 1) of corresponding to the low threshold state. The resistors in the cells of the reference string 691 in the unused part of the column in region 692 can have a constant value R that matches the value R in the cells in the operating string 690 and the value R of the cells in the region 692 in the same column is the operating string 690. The inputs to the cells in the reference string 691 including the unused cells are tied together and coupled to a voltage V.sub.ON during operation so that all the cells in the column including the reference string 691 are turned on, and generate the small voltage drop V.sub.dSm. Thus the voltage V.sub.min in this example with five cells in the string, will be equal to about 5*V.sub.dSm, or five times the small voltage drop of the unit cell used in the operating string 680. With more cells in the string, the value of V.sub.min will be shifted accordingly.
(107) TABLE 5 below illustrates an operating example for a given input and weight configuration for the operating string (computation column) and the reference column, for the configuration of
(108) TABLE-US-00005 TABLE 5 Computation column Reference column Voltage Voltage Input/ Voltage difference Input Weight drop Weight drop for each bit X1 1 W.sub.1n 1 V.sub.dSm 1/1 V.sub.dSm V.sub.dSm V.sub.dSm = 0 X2 0 W.sub.2n 1 V.sub.dLg 1/1 V.sub.dSm V.sub.dLg V.sub.dSm = V.sub.d X3 1 W.sub.3n 0 V.sub.dLg 1/1 V.sub.dSm V.sub.dLg V.sub.dSm = V.sub.d Y1 1 Wy.sub.1n 1 V.sub.dSm 1/1 V.sub.dSm V.sub.dSm V.sub.dSm = 0 Y2 1 Wy.sub.2n 1 V.sub.dSm 1/1 V.sub.dSm V.sub.dSm V.sub.dSm = 0
(109)
(110) A V.sub.min reference column includes a reference string 701 and unused cells in the region 703 of the array. The reference string 701 includes three cells that can have electrical characteristics matching those of the three cells used in the operating string 700. Unused cells on the V.sub.min reference column include the reference string 691 weights W4.sub.Lref and W5.sub.Lref. In order to generate the voltage V.sub.min, the weights of the cells in the reference string 701, designated W1.sub.Lref, W2.sub.Lref and W3.sub.Lref, and of the unused cells in the V.sub.min column having weights W4.sub.Lref and W5.sub.Lref in the unused part of the column, are all set to the value (in this case 1) corresponding to the low threshold state. The resistors in the cells of the reference string 701 and in the unused part of the column can have a constant value R that matches the value R in the cells in the operating string 700 and the value R of the cells in the region 703 in the operating column n. The inputs to the cells in the V.sub.min reference column including reference string 701 and the unused cells are tied together and coupled to a voltage V.sub.ON during operation so that the transistors in all the cells in the V.sub.min reference column including the reference string 701 are turned on, and assuming I.sub.ref is equal to I.sub.n, generate the small voltage drop V.sub.dSm. Thus, the voltage V.sub.min in this example with five cells in the string, will be equal to about 5*V.sub.dSm, or five times the small voltage drop of the unit cell used in the operating string 700. With more cells in the string, the value of V.sub.min will be shifted accordingly.
(111) A V.sub.max reference column includes a reference string 702 and unused cells in the region 703 of the array. The reference string 702 includes three cells that can have electrical characteristics matching those of the three cells used in the operating string 700. Unused cells on the V.sub.max reference column including the reference string 702 have weights W4.sub.Href and W5.sub.Href. In order to generate the voltage V.sub.max, the weights of the cells in the reference string 702, designated W1H.sub.ref, W2.sub.Href and W3.sub.Href, and of the unused cells in the V.sub.min column having weights W4.sub.Href and W5.sub.Href in the unused part of the V.sub.max reference column, are all set to the value (in this case 0) corresponding to the high threshold state. The resistors in the cells of the reference string 701 and in the unused part of the column can have a constant value R that matches the value R in the cells in the operating string 700 and the value R of the cells in the region 703 in the operating column n. The inputs to the cells in the V.sub.max reference column including string 702 are tied together and coupled to a voltage V.sub.OFF during operation, and the unused cells are coupled to the voltage V.sub.ON, so that the transistors in three cells in the column including the V.sub.max reference string 701 are turned off, and assuming I.sub.ref is equal to I.sub.n, generate the large voltage drop V.sub.dLg. Thus, the voltage V.sub.max in this example with five cells in the string, will be equal to about 3*V.sub.dLg, or three times the large voltage drop of the unit cell used in the operating string 700. With more cells in the string, the value of V.sub.max will be shifted accordingly.
(112) TABLE 6 below illustrates an operating example for a given input and weight configuration for the operating string (computation column) and the reference column, for the configuration of
(113) TABLE-US-00006 TABLE 6 Reference column, Reference column, Computation column (V.sub.n) Low boundary (V.sub.min) High boundary (V.sub.max) Voltage Voltage Input/ Voltage Input/ Voltage difference for Input Weight drop Weight drop Weight drop each bit X1 1 W.sub.1n 1 V.sub.dSm 1/1 V.sub.dSm 1/0 V.sub.dLg V.sub.dSm V.sub.dSm = 0 X2 0 W.sub.2n 1 V.sub.dLg 1/1 V.sub.dSm 1/0 V.sub.dLg V.sub.dLg V.sub.dSm = V.sub.d X3 1 W.sub.3n 0 V.sub.dLg 1/1 V.sub.dSm 1/0 V.sub.dLg V.sub.dLg V.sub.dSm = V.sub.d Y1 1 W.sub.4n 1 V.sub.dSm 1/1 V.sub.dSm 1/1 V.sub.dSm V.sub.dSm V.sub.dSm = 0 Y2 1 W.sub.5n 1 V.sub.dSm 1/1 V.sub.dSm 1/1 V.sub.dSm V.sub.dSm V.sub.dSm = 0
(114) In the embodiments described with reference to
(115) In some embodiments, the array of programmable resistance cells can be configured into functional sets having one input and multiple members to implement a term X.sub.iW.sub.i of the sum-of-products operation in which the weight W.sub.i can be values other than a one bit binary 0 or 1, such as a multiple bit binary value, using a single bit value programmed in the programmable transistors in the cells.
(116)
(117)
(118) An array of cells as discussed above can be configured using logic circuits to implement terms of a sum-of-products operation using many functional sets configured to implement many forms of the terms of the operation.
(119)
(120) The term of the sum-of-products operation implemented using the functional set of
(121) Peripheral circuitry configured to perform the sum can include analog summing amplifiers or digital logic. In one example, the voltage on each column can be sensed in sequence, and the results of each sensing step added in arithmetic logic as illustrated in
(122) In other embodiments, a function set of cells in the array like that of
(123)
(124) The term of the sum-of-products operation implemented using the functional set of
(125) Peripheral circuitry configured to perform the sum can include analog summing amplifiers or digital logic. In one example, the voltage on each column can be sensed in sequence, and the results of each sensing step added in arithmetic logic as illustrated in
(126) In other embodiments, a function set of cells in the array like that of
(127)
(128) The term of the sum-of-products operation implemented using the functional set of
(129) Peripheral circuitry configured to perform the sum can include analog summing amplifiers or digital logic. In one example, the voltage on each column can be sensed in sequence, and the results of each sensing step added in arithmetic logic as illustrated in
(130) In other embodiments, a function set of cells in the array like that of
(131)
(132) The term of the sum-of-products operation implemented using the functional set of
(133) Peripheral circuitry configured to perform the sum can include analog summing amplifiers or digital logic. In one example, the voltage on each column can be sensed in sequence, and the results of each sensing step added in arithmetic logic as illustrated in
(134) In other embodiments, a function set of cells in the array like that of
(135) Other functional set configurations can be utilized as well.
(136) A large array of programmable resistance cells can be configured between operations to perform complex sum-of-products operations with various functions for the terms of the summation, as needed for each computation executed. Also, the coefficients (i.e. weights) of the terms of the summation can set in nonvolatile form in the transistors in the cells, and changed by programming and erasing operations as needed for each computation executed.
(137)
(138) A word line driver 940 is coupled to a plurality of word lines 945. The driver comprises, for example, digital-to-analog converters in some embodiments that produce an input variable x(i) for each selected word line, or in the alternative a binary word line driver can be apply binary inputs. A column decoder 970 is coupled via lines 965 to one or more layers of strings of series-connected cells arranged along columns in the array 960 for selecting strings for reading sum-of-products data from and writing parameter data to the memory array 960. Addresses are supplied on bus 930 from control logic (controller) 910 to decoder 970 and driver 940. Voltage sensing sense amplifiers are coupled to the column decoder via lines 975, and are in turn coupled to buffer circuits 980. Current sources applying the load currents I.sub.n are coupled with the sensing circuits. A program buffer can be included with the sense amplifiers in circuits 980 to store program data for two-level or multiple-level programming of the programmable threshold transistors in the cells. Also, the control logic 910 can include circuits for selectively applying program and inhibit voltages to the strings in the memory in response to the program data values in the program buffer.
(139) Sensed data from the sense amplifiers are supplied via second data lines 985 to data buffer 990, which is in turn coupled to input/output circuits 991 via a data path 993. The sense amplifiers can comprise operational amplifiers configured to apply unity gain or a desired gain level, and provide analog outputs to digital-to-analog converters or other signal processing or signal routing circuits. Additional arithmetic units and routing circuits can be included to provide for arrangement of multiple layers of strings of cells into neuromorphic circuits.
(140) Also, arithmetic units and routing circuits can be included to provide for arrangement of the layers of strings into matrix multiplication units.
(141) Input/output circuits 991 drive the data to destinations external to the integrated circuit 901. Input/output data and control signals are moved via data bus 905 between the input/output circuits 991, the control logic 910 and input/output ports on the integrated circuit 901 or other data sources internal or external to the integrated circuit 901, such as a general purpose processor or special purpose application circuitry, or a combination of modules providing system-on-a-chip functionality supported by the memory array 960.
(142) In the example shown in
(143) The control logic 910 can be implemented using special-purpose logic circuitry as known in the art. In alternative embodiments, the control logic comprises a general-purpose processor, which can be implemented on the same integrated circuit, which executes a computer program to control the operations of the device. In yet other embodiments, a combination of special-purpose logic circuitry and a general-purpose processor can be utilized for implementation of the control logic.
(144)
(145) The system can receive input/output data from outside the system as shown in
(146) As represented in
(147) As represented in
(148) Also, the output data from the sum-of-products accelerator array 1001 can be routed through the data path controller 1003 back to the memory array 1002 for use in iterative sum-of-products operations.
(149) The system 1000 including the memory, the sum-of-products accelerator array and the data path logic can be implemented on a single integrated circuit in some embodiments. Also, the system 1000 can include on the same or different integrated circuits, arithmetic logic units, digital signal processors, general-purpose CPUs, state machines and the like that are configured to take advantage of the sum-of-products accelerator array 1001 during execution of computer processes.
(150) A method for using an array of programmable resistance cells according to any of the embodiments described herein can be executed using a system like that of
(151) A method for operating an array of variable resistance cells to produce sum of products data comprises programming the programmable threshold transistors in the array with thresholds corresponding to values of a weight factor for the corresponding cell; selectively applying inputs to rows of cells in the array applying currents to corresponding ones of the columns of cells in the array; and sensing voltages on one or more of the columns of cells in the array.
(152) Such a method can include configuring cells in the array into functional sets of cells including one or more members; where the functional set implementing respective terms of a sum of products function. Each functional set can receive a corresponding input term and can be programmed with a weight that is a function of the programmable thresholds of the one or more members of the functional set. The functional set can be configured in a variety of ways, such as described above with reference to
(153) Also, in some embodiments, the system can be operated to use a reference column of cells to generate a column reference voltage, or a low column reference voltage and a high column reference voltage as suits a particular implementation. The method can include generating sensing reference voltages as a function of the one or more column reference voltages. The sensing operation can include comparing voltages on selected columns of cells with the sensing reference voltages to generate outputs indicating voltage levels on the selected columns.
(154) While the present invention is disclosed by reference to the preferred embodiments and examples detailed above, it is to be understood that these examples are intended in an illustrative rather than in a limiting sense. It is contemplated that modifications and combinations will readily occur to those skilled in the art, which modifications and combinations will be within the spirit of the invention and the scope of the following claims.