ARTIFICIAL NEURAL NETWORK COMPRISING AN ANALOG ARRAY AND A DIGITAL ARRAY
20230244903 · 2023-08-03
Inventors
- Hieu Van Tran (San Jose, CA)
- Thuan Vu (San Jose, CA)
- Stanley Hong (San Jose, CA)
- Stephen Trinh (San Jose, CA)
- Anh Ly (San Jose, CA)
Cpc classification
G11C16/0425
PHYSICS
G11C5/025
PHYSICS
G11C11/005
PHYSICS
G11C2211/5641
PHYSICS
G11C16/349
PHYSICS
G11C16/28
PHYSICS
G11C7/16
PHYSICS
G11C7/1006
PHYSICS
G11C16/0483
PHYSICS
H10B41/00
ELECTRICITY
International classification
Abstract
Numerous examples are described for providing an artificial neural network system comprising an analog array and a digital array. In certain examples, an analog array and a digital array are coupled to shared bit lines. In other examples, an analog array and a digital array are coupled to separate bit lines.
Claims
1. An artificial neural network system, comprising: an analog array of non-volatile memory cells arranged into rows and columns; a digital array of non-volatile memory cells arranged into rows and columns; and a plurality of bit lines, wherein each bit line in the plurality of bit lines is connected to a column of non-volatile memory cells in the analog array and a column of non-volatile memory cells in the digital array.
2. The artificial neural network system of claim 1, comprising: a first row decoder coupled to the analog array; and a first high voltage row decoder coupled to the analog array.
3. The artificial neural network system of claim 2, comprising: a second row decoder, separate from the first row decoder, coupled to the digital array; and a second high voltage row decoder, separate from the first high voltage row decoder coupled to the digital array.
4. The artificial neural network system of claim 3, wherein during a read of the analog array, the first row decoder and the first high voltage row decoder apply a first set of voltages to the analog array.
5. The artificial neural network system of claim 4, wherein during a read of the digital array, the second row decoder and the second high voltage row decoder apply a second set of voltages to the digital array, the second set of voltages different than the first set of voltages.
6. The artificial neural network system of claim 3, comprising a read circuit used during a read of the analog array and a read of the digital array.
7. The artificial neural network system of claim 6, wherein during a read of the digital array, the read circuit outputs a “1” if a majority of output bits generated by the read circuit are a “1” and outputs a “0” if less than a majority of output bits generated by the read circuit are a “1”.
8. The artificial neural network system of claim 1, wherein the digital array comprises a user data array and a system data array.
9. The artificial neural network system of claim 8, wherein a speed of one or more of a read, program, or erase for the system data array is slower than for the user data array.
10. The artificial neural network system of claim 8, wherein a speed of a read of the system data array is slower than for the user data array.
11. The artificial neural network system of claim 8, wherein an endurance of the system data array is less than an endurance of the user data array.
12. An artificial neural network system, comprising: an analog array of non-volatile memory cells arranged into rows and columns; a digital array of non-volatile memory cells arranged into rows and columns, the analog array and the digital array fabricated on a same semiconductor die; a first plurality of bit lines, wherein each bit line in the first plurality of bit lines is coupled to a column of non-volatile memory cells in the analog array; and a second plurality of bit lines, wherein each bit line in the second plurality of bit lines is coupled to a column of non-volatile memory cells in the digital array and the second plurality of bit lines are disconnected from the first plurality of bit lines.
13. The artificial neural network system of claim 12, comprising: a first row decoder coupled to the analog array; and a first high voltage row decoder coupled to the analog array.
14. The artificial neural network system of claim 13, comprising: a second row decoder, separate from the first row decoder, coupled to the digital array; and a second high voltage row decoder, separate from the first high voltage row decoder, coupled to the digital array.
15. The artificial neural network system of claim 14, wherein during a read of the analog array, the first row decoder and the first high voltage row decoder apply a first set of voltages to the analog array.
16. The artificial neural network system of claim 15, wherein during a read of the digital array, the second row decoder and the second high voltage row decoder apply a second set of voltages to the digital array, the second set of voltages different than the first set of voltages.
17. The artificial neural network system of claim 12, wherein the first plurality of bit lines and the second plurality of bit lines share a diffusion layer.
18. The artificial neural network system of claim 17, wherein the first plurality of bit lines and the second plurality of bit lines have different metal interconnects.
19. The artificial neural network system of claim 12, wherein the first plurality of bit lines and the second plurality of bit lines have different diffusion layers.
20. The artificial neural network system of claim 18, wherein the first plurality of bit lines and the second plurality of bit lines have different metal interconnects.
21. The artificial neural network system of claim 12, wherein the digital array comprises a system data array.
22. The artificial neural network system of claim 12, comprising a read circuit used during a read of the analog array and a read of the digital array.
23. The artificial neural network system of claim 21, wherein during a read of the digital array, a read circuit outputs a “1” if a majority of output bits generated by the read circuit are a “1” and outputs a “0” if less than a majority of output bits generated by the read circuit are a “1”.
24. The artificial neural network system of claim 12, comprising: a second digital array of non-volatile memory cells arranged into rows and columns.
25. The artificial neural network system of claim 24, wherein each bit line in the second plurality of bit lines is coupled to a column of non-volatile memory cells in the second digital array.
26. The artificial neural network system of claim 12 wherein the digital array of non-volatile memory cells comprises a user data array and a system data array.
27. The artificial neural network system of claim 26, wherein a speed of one or more of read, program, or erase operations for the system data array is slower than for the user data array.
28. The artificial neural network system of claim 26, wherein a speed of a read operation for the system data array is slower than for the user data array.
29. The artificial neural network system of claim 26, wherein an endurance of the system data array is less than an endurance of the user data array.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
DETAILED DESCRIPTION OF THE INVENTION
[0136] The artificial neural networks described herein utilize a combination of CMOS technology and non-volatile memory arrays.
VMM System Overview
[0137]
[0138] The input circuit 3506 may include circuits such as a DAC (digital to analog converter), DPC (digital to pulses converter, digital to time modulated pulse converter), AAC (analog to analog converter, such as a current to voltage converter, logarithmic converter), PAC (pulse to analog level converter), or any other type of converters. The input circuit 3506 may implement one or more of normalization, linear or non-linear up/down scaling functions, or arithmetic functions. The input circuit 3506 may implement a temperature compensation function for input levels. The input circuit 3506 may implement an activation function such as ReLU or sigmoid. The output circuit 3507 may include circuits such as an ADC (analog to digital converter, to convert neuron analog output to digital bits), AAC (analog to analog converter, such as a current to voltage converter, logarithmic converter), APC (analog to pulse(s) converter, analog to time modulated pulse converter), or any other type of converters. The output circuit 3507 may implement an activation function such as rectified linear activation function (ReLU) or sigmoid. The output circuit 3507 may implement one or more of statistic normalization, regularization, up/down scaling/gain functions, statistical rounding, or arithmetic functions (e.g., add, subtract, divide, multiply, shift, log) for neuron outputs. The output circuit 3507 may implement a temperature compensation function for neuron outputs or array outputs (such as bitline output) so as to keep power consumption of the array approximately constant or to improve precision of the array (neuron) outputs such as by keeping the IV slope approximately the same.
[0139] As discussed above, a neural network may comprise many different layers, and within each layer, many calculations may be performed involving stored weight values in one or more arrays within that layer. Some layers will be used more than other layers, and it can be appreciated that such layers are more important to the overall accuracy of the neural network based on their high frequency of use.
[0140]
[0141] Digital array 3604 optionally may include a first array, which can be referred to as user data array 3607, comprising rows for storing digital data stored and retrieved by external sources (such as user data or operating system code for a computer) and a second array, which can be referred to as system data array 3608 comprising rows for storing digital system data, i.e. data that is used by VMM system 3600 itself and is not stored and retrieved by external sources, which is sometimes referred to as digital non-volatile registers (NVRs) or information rows or an information array. Examples of data that might be stored in system data array 3608 include user ID, trim bits, configuration bits, manufacturing info, security codes, password, lock bit, and other system data. The performance of system data array 3608 may be relaxed compared to user data array 3607.
[0142] For example, the content of system data array 3608 may be read once at power up or at the beginning of a system operation and not read thereafter during operation. As another example, content of system data array 3608 may be erased or programmed only a few times throughout its lifetime usage. Thus, a read, program, or erase operation of system data array 3608 can occur at a slower speed than for the user data array without much performance loss since the system data array is used so rarely. This difference in speed can be implemented in the VMM system 3600, for example, to save power when operating on system data array 3608.
[0143] As another example, non-volatile memory cells have a characteristic referred to as endurance, which refers to the number of times the non-volatile memory cell may be programmed or erased before it degrades to the point of no longer being reliable or usable. Thus, system data array 3608 may be provided with non-volatile memory cells of a lower endurance than non-volatile memory cells of user data array 3607 since system data array 3608 will be used much less during operation than user data array 3607.
[0144] Table 9 depicts example operating voltages used in VMM system 3600, where CG-main, EG-main, BL-main, and SL-main are a first set of voltages applied to the control gate terminal, erase gate terminal, bit line terminal, and source line terminal, respectively, of one or more memory cells in analog array 3601, by row decoder 3702 and high voltage decoder 3703, and CG-DIG, EG-DIG, BL-DIG, and SL-DIG are a second set of voltages applied to a control gate terminal, erase gate terminal, bit line terminal, and source line terminal, respectively, of one or more cells in digital array 3604, by row decoder 3705 and high voltage decoder 3706:
TABLE-US-00009 TABLE No 9 Operating Voltages for VMM System 3600 in FIG. 36 CG- EG- BL- SL- CG- EG- BL- SL- Action main main main main DIG DIG DIG DIG Neural 1.5 V 0 V 0.6 V >=0 V 0 V 0 V 0.6 V >=0 V Read Digital 0 V 0 V 0.9 V 0 V 1.5 V-2.5 V 0 V-1.5 V 0.9 V 0 V Read
[0145] The ability to apply different sets of voltages to memory cells of analog array 3601 and memory cells of digital array 3604 enhances performance during neural read operations of analog array 3601 and digital read operations of digital array 3604, such as reducing leakage during read neural operations (caused by the ability to shut off the high current of the digital cells sharing the same bit lines as the analog cells) and higher speed for digital cells due to higher current levels.
[0146]
[0147] Table 10 depicts the operating voltages used in VMM system 3700, where CG-main, EG-main, BL-main, and SL-main are a first set of voltages applied to the control gate terminal, erase gate terminal, bit line terminal, and source line terminal, respectively, of one or more memory cells in analog array 3701 by row decoder 3702 and high voltage decoder 3703, and CG-IFR, EG-IFR, BL-IFR, and SL-IFR are a second set of voltages applied to a control gate terminal, erase gate terminal, bit line terminal, and source line terminal, respectively, of one or more memory cells in digital array 3704 by row decoder 3705 and high voltage decoder 3706.
TABLE-US-00010 TABLE No 10 Operating Voltages for VMM System 3700 in FIG. 37 EG- BL- CG- EG- BL- Action CG-main main main SL-main DIG DIG DIG SL-DIG Neural 1.5 V 0 V 0.6 V >=0 V 0 V 0 V 0 V 0 V Read Digital 0 V 0 V 0 V 0 V 2.5 V 1.5 V 0.9 V 0 V Read
[0148]
[0149] The ability to apply different sets of voltages to memory cells in analog array 3701 and memory cells in digital array 3704 enhances performance during neural read operations of analog array 3701 and digital read operations of digital array 3704, such as reducing leakage during read neural operations (caused by the ability to shut off the high current of the digital cells sharing the same bit lines as the analog cells) and higher speed for digital cells due to higher current levels.
[0150]
[0151]
[0152] In
[0153] In
[0154] In
[0155]
[0156]
[0157]
[0158] Differential current-to-voltage converter 4201 comprises operational amplifier 4203; variable integrating resistors 4204 and 4205; and common mode circuit 4206 (which is used for a differential amplifier implementation of operational amplifier 4203). Differential current-to-voltage converter 4201 converts two current inputs, IBL+ and IBL−, into differential output voltages, VO+ and VO−, where the output voltages are proportional to the resistance of variable resistors 4204 and 4205. Input currents IBL+ and IBL− optionally are currents representing a positive weight and a negative weight. For example, IBL+ can be a current, Iw+ from a single cell or a bitline current that is the sum of currents from a plurality of w+ cells coupled to the bit line, and IBL− can be a current, Iw−, from a single cell or a bit line current that is the sum of currents from a plurality of w− cells coupled to the bit line. Such positive weights and negative weights can be used in a neural network to present a weight (W=W+−W−). In another example, the two input currents, IBL+ and IBL−, can represent a cell current (in which case, it is used to verify the cell current target in weight tuning, meaning program or erase cell to a target current) or bitline current from the array and a reference current.
[0159] Optionally, the bias current for operational amplifier 4203 and/or the common mode circuit 4206, can be set to a higher current level for a digital read than for an analog read.
[0160] Optionally the resistor 4204 and 4205 can be set to a different value for digital read versus for analog read. Optionally the resistor 4204 and 4205 can be set to a different value for when the converter 4201 is used for cell verify in a weight tuning operation (such as program or erase memory cell to a target current).
[0161] Differential successive approximation register analog-to-digital converter 4202 converts an analog input or differential analog input into a digital output using a binary search through all possible quantization levels to identify the appropriate digital output.
[0162] Differential successive approximation register analog-to-digital converter 4202 comprises binary capacitive digital-to-analog converter (CDAC) 4207, binary CDAC 4208 (complementary to CDAC 4207), comparator 4209, and SAR logic and registers 4210.
[0163] Differential successive approximation register analog-to-digital converter (SAR ADC) 4202 receives a differential voltage inputs, Vinp and Vinn, which are for example provided by the differential current-to-voltage converter 4201. SAR logic and registers 4210 cycle through all possible digital bit combinations, which in turn control switches in CDAC 4207 and 4208 to couple voltage sources to capacitors. When the output of comparator 4209 flips, then the digital bit combination in SAR logic and registers 4210 is output as Digital Outputs. Optionally, SAR logic and registers 4210 generates an additional 1-bit digital output, DMAJ, in Digital Outputs which is a “1” if a majority of the bits in the digital value are a “1”, and a “0” if a majority of the bits in the corresponding digital value are not “1.”
[0164] Optionally, resistors 4204 and 4205 can be set to different resistance values for a digital read operation than for an analog read operation.
[0165] It should be noted that, as used herein, the terms “over” and “on” both inclusively include “directly on” (no intermediate materials, elements or space disposed therebetween) and “indirectly on” (intermediate materials, elements or space disposed therebetween). Likewise, the term “adjacent” includes “directly adjacent” (no intermediate materials, elements or space disposed therebetween) and “indirectly adjacent” (intermediate materials, elements or space disposed there between), “mounted to” includes “directly mounted to” (no intermediate materials, elements or space disposed there between) and “indirectly mounted to” (intermediate materials, elements or spaced disposed there between), and “electrically coupled” includes “directly electrically coupled to” (no intermediate materials or elements there between that electrically connect the elements together) and “indirectly electrically coupled to” (intermediate materials or elements there between that electrically connect the elements together). For example, forming an element “over a substrate” can include forming the element directly on the substrate with no intermediate materials/elements therebetween, as well as forming the element indirectly on the substrate with one or more intermediate materials/elements there between.