TW202303382A - 記憶體內計算裝置、系統及其操作方法 - Google Patents
記憶體內計算裝置、系統及其操作方法 Download PDFInfo
- Publication number
- TW202303382A TW202303382A TW111111441A TW111111441A TW202303382A TW 202303382 A TW202303382 A TW 202303382A TW 111111441 A TW111111441 A TW 111111441A TW 111111441 A TW111111441 A TW 111111441A TW 202303382 A TW202303382 A TW 202303382A
- Authority
- TW
- Taiwan
- Prior art keywords
- nvm
- mac
- column
- values
- value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006870 function Effects 0.000 claims abstract description 27
- 210000004027 cell Anatomy 0.000 claims description 211
- 210000002569 neuron Anatomy 0.000 claims description 53
- 238000013528 artificial neural network Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 16
- 239000000758 substrate Substances 0.000 claims description 14
- 238000011176 pooling Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 238000009825 accumulation Methods 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 7
- 230000005669 field effect Effects 0.000 claims description 5
- 210000004205 output neuron Anatomy 0.000 claims description 3
- 150000004767 nitrides Chemical class 0.000 claims 2
- 210000000352 storage cell Anatomy 0.000 claims 2
- 230000000295 complement effect Effects 0.000 claims 1
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 239000004065 semiconductor Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 18
- 230000004913 activation Effects 0.000 description 17
- 238000006243 chemical reaction Methods 0.000 description 8
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 238000009792 diffusion process Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0433—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a single floating gate transistor and one or more separate select transistors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0466—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/1205—Multiplexed conversion systems
- H03M1/122—Shared using a single converter or a part thereof for multiple channels, e.g. a residue amplifier for multiple stages
- H03M1/1225—Shared using a single converter or a part thereof for multiple channels, e.g. a residue amplifier for multiple stages using time-division multiplexing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本申請案所揭示一種方法可包括,對於一非揮發性記憶體(NVM)胞元陣列的每一列,藉由將輸入值施加到位元線上來產生用於此列的一乘法累加(MAC)結果。每個MAC結果包括一類比電流或電壓的一加總,該類比電流或電壓是由此列的NVM胞元儲存之一對應權重值所修改的每個輸入值之一函式。藉由至少一個多工器的操作,可將其中一列連接到一類比至數位轉換器(ADC)電路,以將此列的類比電流或電壓轉換為一數位MAC值。每個NVM胞元的一儲存體元件可被配置為儲存一權重值,其可在不少於三個不同值之間變化。還揭示對應裝置和系統。
Description
本申請案通常有關於記憶體內計算(CIM)裝置,且更具體而言與可配置有關於非揮發性CIM裝置,其執行乘法累加(MAC)運算以用於諸如神經網路之應用中。
可執行乘法累加(multiply-accumulate;MAC)運算的電路對於許多系統來說可能是理想附加。一種如此系統可以是人工神經網路(artificial neural network;ANN)。圖19顯示ANN 1901的實例。ANN 1901可包括一輸入層、一輸出層和一個或更多隱藏層。隱藏層和輸出層可包括一個或更多人工神經元。在所示實例中,隱藏層包括三個神經元(H1、H2、H3),輸出層包括一個神經元(OUT)。
神經元可對輸入值執行一MAC運算以產生一輸出值,此輸出值可傳遞到下一層,或作為ANN的一輸出。神經元還可包括額外操作,例如啟動函數及/或過濾/池化。如此MAC運算關於將權重值施加到輸入值(其可對應於乘法運算)和所得乘積的加總(其可對應於累加運算)。
在訓練操作中,ANN 1901可具有權重值的一初始集合,其可在施加訓練輸入資料集合並產生所得輸出值和予以評估時對其進行修改。一旦經過訓練,權重值基本上可加以設置,並且ANN 1901可執行推理運算,以從新的輸入資料集合產生預測輸出值。
在圖19中,隱藏層的神經元的權重值顯示為Wi,j,其中i=1-3且j=1-3。因此,神經元H1將X1乘以權重W11,X2乘以權重W21,X3乘以權重W31,X4乘以權重W41。此些乘積將被加總(並且可能受到其它運算),且從神經元H1輸出結果並作為輸入提供給神經元OUT。神經元OUT將H1的輸出乘以權重W1。從此敘述可理解圖19的其它神經元的操作。
在許多應用中,神經元操作可用矩陣乘法來表示。圖20A顯示如此矩陣乘法的實例。向量V(帶分量Vi(i=1-3))可對應於輸入值,操作向量G(帶分量(G
i,j)(j=1-3))可對應於權重值,且向量Ii可對應於所得輸出值。
實施圖20A所示的向量運算的一種慣用方式可以是用交錯式(crossbar)記憶體陣列。圖20B顯示傳統的交錯式記憶體陣列2003。交錯式記憶體陣列2003可包括安排成列和行的記憶體元件(G
i,j),其由電阻來表示。同一列的記憶體元件可連接到同一字線,而同一行的記憶體元件可連接到同一位元線。例如,記憶體元件G
1,1、G
1,2和G
1,3可連接到同一字線(其接收電壓V
1)。交錯式記憶體陣列2003的列可連接到同一位元線。例如,記憶體元件G
1,1、G
2,1和G
3,1可連接到同一位元線(可以提供電流I
1)。
在操作上,字線可用輸入值電壓(V1、V2、V3)來驅動,從而在位元線上產生電流,其可表示MAC結果。舉例來說,如果記憶體元件之權重(Gi,j)為傳導性,則電流I
1可以是Vi*G
i,1的加總。給定加總運算的權重項可被認為是「核(kernel)」。因此,圖20B顯示三個逐列核:G
i,1;G
i,2和G
i,3。
圖21顯示用於執行如圖20B所示的MAC運算的慣用「記憶體內計算」(compute-in-memory;CIM)陣列2103。CIM陣列2103可包括安排成列和行的記憶體胞元(其中兩個顯示為2105-0/2105-1)。所有記憶體胞元都可共同連接到源極線(source line;SL),其可由源極線驅動器2107驅動。行配對(column pair)(其中一個顯示為2109)可被程式化以儲存核(其中三個顯示為2111-0到2111-2)。一配對中的一行的記憶體胞元可儲存核的正分量(+ve),而此對中的另一行可儲存核的負分量(-ve)。
圖21顯示CIM陣列2103,其被配置為對類似於圖19的神經網路執行CIM運算。行配對可提供代表隱藏層神經元(H1、H2、H3)的結果的電流值。
在計算操作中,SL驅動器2107可將共用SL驅動到預定電壓。列驅動器(其中一個顯示為2113)可依據輸入值X1到X3(X4未顯示)來啟動列。當一列被啟動時,其記憶體胞元可在相應位元線上產生電流,此電流依據程式化的權重值而變化。由於多個記憶體胞元連接到同一位元線,故一位元線可從這一行的經啟動記憶體胞元產生電流加總。
一行上所產生的加總電流可提供給多工器(MUX)(其中一個顯示為2115)。MUX 2115可將位元線配對循序地連接到積分器(其中一個顯示為2117),此積分器可對電流進行積分。然後可藉由類比至數位轉換器(ADC)電路2119將積分值轉換為數位值。
圖22是顯示圖21的CIM陣列2203的一部分的示意圖。每個記憶體胞元(其中一個顯示為2205-0)可包括一選擇電晶體M221和一矽-氧化物-氮化物-氧化物-矽(silicon-oxide-nitride-oxide-silicon;SONOS)型電晶體M223。SONOS型電晶體可具有電荷俘獲閘極絕緣層,其可被程式化為SONOS型電晶體的多位準的類比閾值電壓(Vt)或汲極電流(ID)。可程式化Vt或ID可建立記憶體胞元的權重值。一個行2221-0的記憶體胞元可儲存正權重分量(+ve)且因而產生用於核的正權重MAC結果,而另一行2221-1的記憶體胞元可儲存負分量(-ve)且因而產生用於核的負權重MAC結果。用於行配對的最終MAC輸出可藉由將正和負MAC結果轉換為數位值,然後對此些值進行減法或反向積分,且接著將結果轉換為數位值來產生。
要注意到,為了適應負輸入值,慣用CIM陣列2203就每個輸入值需要四行。一個行配對將專用於正輸入值,而另一行配對具有相反的程式化權重而將專用於負輸入值。
如同圖21和22的慣用CIM陣列可以高度並行方式來產生MAC結果。在CIM陣列的一個實施例中,可限制MAC結果處理量。由於積分器和ADC電路(例如2117、2119)消耗大量基板面積,所以MUX 2115必須在大量位元線之間切換,以便使ADC電路循序地產生MAC結果。此外,當將正和負權重結果轉換為數位結果並將權重結果相互進行減法時,對兩個值的處理可消耗功率。
另一個特徵可以是相對較短的寫入/刷新循環時間。非揮發性記憶體胞元隨著時間可能需要對值進行重新程式化。此外,核值可能必須定期地更新。由於對一個胞元進行程式化操作對相鄰胞元造成干擾,如此情況可能需要對多個列進行重新程式化。
期望獲得一種CIM陣列和利用如此基於SONOS或相似類型的記憶體陣列的系統,其可解決上述潛在問題。
依據實施例,可藉由在記憶體內計算(CIM)陣列的記憶體胞元列中儲存乘數值(例如權重)的多個集合來產生乘法累加(MAC)結果。被乘數值(例如輸入值)可以逐行方式施加到CIM陣列。響應於被乘數值,記憶體胞元可產生依據所儲存的權重值而變化的胞元電流或電壓。胞元電流或電壓可作為類比MAC值而累加在每列共用的傳導線(例如源極線)上。來自每列的類比MAC值可被多工到類比至數位轉換器(ADC)以產生數位MAC值。
依據實施例,來自CIM陣列的MAC結果可包括人工神經元的操作。CIM陣列可藉由可程式化切換結構而相互連接以形成人工神經網路。
依據實施例,被乘數(輸入)值可帶符號。對於一個符號的輸入值,可將位元線驅動到一個電壓(例如正)。對於另一個符號的輸入值,位元線可被驅動到另一個電壓(例如零或負)。在一些實施例中,權重值以配對方式來儲存,正權重(+ve)儲存在一個記憶體胞元中而負權重(-ve)儲存在相鄰記憶體胞元中。對於正輸入值,對應的位元線配對可被驅動到不同值(例如BL0=V
HI,BL1=V
LOW)。對於負輸入值,對應位元線對可被驅動到相反值(例如BL0=V
LOW,BL1=V
HI)。
依據實施例,累加MAC結果的傳導線(例如源極線)可具有比位元線還低的電阻。
依據實施例,記憶體胞元在列方向上可比在行方向上還窄。也就是說,記憶體胞元可具有大於行寬的列高。在一些實施例中,記憶體胞元高度(即在行方向上的胞元尺寸)可不小於記憶體胞元寬度(即在行方向上的胞元尺寸)的三倍。
依據實施例,在MAC運算中,可依據輸入值來驅動位元線。字線驅動器電路可啟動CIM陣列的一列或多列的字線。經啟動字線可將列中的每個記憶體胞元的可程式化元件連接到相應位元線。在位元線和源極線之間的電位差可產生通過記憶體胞元的電流,此電流依據可程式化元件而變化。由於就每列可連接一個源極線,因此源極線上的所得電流可以是由此列的記憶體胞元產生的所有電流的累加。
依據實施例,CIM陣列可以是非揮發性記憶體陣列,其中權重值以非揮發性方式來儲存。在一些實施例中,記憶體胞元可包括具有可程式化閾值電壓的絕緣閘場效電晶體(IGFET)結構。在一些實施例中,記憶體胞元可以是雙電晶體記憶體胞元,其具有選擇電晶體和可程式化電晶體。
依據實施例,可藉由在記憶體內計算(CIM)陣列的記憶體胞元列中儲存乘數值(例如權重)的多個集合來產生乘法累加(MAC)結果。被乘數值(例如輸入值)可以逐行方式施加到CIM陣列。響應於被乘數值,記憶體胞元可產生依據所儲存的權重值而變化的胞元電流或電壓。胞元電流或電壓可作為類比MAC值而累加在每列共用的傳導線(例如源極線)上。來自每列的類比MAC值可被多工到類比至數位轉換器(ADC)以產生數位MAC值。
依據實施例,來自CIM陣列的MAC結果可包括人工神經元的操作。CIM陣列可藉由可程式化切換結構而相互連接以形成人工神經網路。
依據實施例,被乘數(輸入)值可帶符號。對於一個符號的輸入值,可將位元線驅動到一個電壓(例如正)。對於另一個符號的輸入值,位元線可被驅動到另一個電壓(例如零或負)。在一些實施例中,權重值以配對方式來儲存,正權重(+ve)儲存在一個記憶體胞元中而負權重(-ve)儲存在相鄰記憶體胞元中。對於正輸入值,對應位元線配對可被驅動到不同值(例如BL0=V
HI,BL1=V
LOW)。對於負輸入值,對應位元線對可被驅動到相反值(例如BL0=V
LOW,BL1=V
HI)。
依據實施例,累加MAC結果的傳導線(例如源極線)可具有比位元線還低的電阻。
依據實施例,記憶體胞元在列方向上可比在行方向上還窄。也就是說,記憶體胞元可具有大於行寬的列高。在一些實施例中,記憶體胞元高度(即在行方向上的胞元尺寸)可不小於記憶體胞元寬度(即在行方向上的胞元尺寸)的三倍。
依據實施例,在MAC運算中,可依據輸入值來驅動位元線。字線驅動器電路可啟動CIM陣列的一列或多列的字線。經啟動字線可將列中的每個記憶體胞元的可程式化元件連接到相應位元線。在位元線和源極線之間的電位差可產生通過記憶體胞元的電流,此電流依據可程式化元件而變化。由於就每列可連接一個源極線,因此源極線上的所得電流可以是由此列的記憶體胞元產生的所有電流的累加。
依據實施例,CIM陣列可以是非揮發性記憶體陣列,其中權重值以非揮發性方式來儲存。在一些實施例中,記憶體胞元可包括具有可程式化閾值電壓的絕緣閘場效電晶體(IGFET)結構。在一些實施例中,記憶體胞元可以是兩個電晶體記憶體胞元,其具有選擇電晶體和可程式化電晶體。
在下面的各種實施例中,相同項目由相同的元件符號來表示,但前導數字對應於圖號。
圖1是依據實施例的CIM裝置100的方塊圖。CIM裝置100可包括非揮發性記憶體(NVM)胞元陣列102、字線(word line)驅動器104-0至104-n、位元線(bit line)驅動器106、源極線多工器(MUX)部分108、和ADC部分112。NVM胞元陣列102可包括安排成列(其中一個顯示為114)和行(其中一個顯示為116)的NVM胞元110。同一行的NVM胞元110可連接到同一位元線(其中一個顯示為118)。同一列的NVM胞元110可連接到同一字線WL0-WLn(或字線的集合)和同一源極線SL0-SLn。不同於傳統方法之處在於,源極線(SL0-SLn)不是共同地連接而是彼此分開的。在一個實施例中,NVM胞元可以是基於矽-氧化物-氮化物-氧化物-矽(SONOS)的電荷俘獲記憶體胞元,其能夠被程式化並保留電荷以表示複數個(多於兩個)狀態或位準。在其它實施例中,NVM胞元可以是其它多位準記憶體胞元,例如浮動閘極、R-RAM等類型。
NVM胞元110在被選擇時可被程式化到對應源極線(SL0-SLn)的預定多位準電流或電壓(例如汲極電流或閾值電壓)。如此電流或電壓由G
i,j來表示,其中i=1到k且j=1到n。在一些實施例中,可對NVM胞元110進行程式化以儲存用於MAC運算的乘數項(例如核)的多個集合。然而,與傳統方法相比,如此乘數項(其中一個由120來表示)的多個集合可以逐列方式而不是逐行方式來儲存。依據實施例,NVM胞元110可在至少三個不同狀態或類比位準之間被程式化,以提供或表示不同的類比權重值。即,NVM胞元110沒有用二進制值來程式化。
字線驅動器(104-0到104-n)可驅動每一列114的一個或更多字線以選擇此列的NVM胞元110。在一些實施例中,例如在雙電晶體(2T)配置或1.5T(分裂閘極)配置中,每列114可以有多於一個字線(例如一選擇閘極字線和一控制閘極字線),並且如此不同字線可依據工作模式來分別驅動。然而,在其它實施例中,每列114可以有一個字線。位元線驅動器106可依據輸入值(X1,X2…)124(例如被乘數)來驅動位元線118。不同位元線可表示不同輸入項。在一些實施例中,位元線118可在兩個不同電壓之間驅動(即輸入項可以是二進制值)。在其它實施例中,位元線118可在多於兩個不同狀態之間驅動或被驅動到類比值。因此,位元線驅動器106可包括以下中的任何一個:數位驅動器電路106A、多位元驅動器電路106B或類比驅動器電路106C。數位驅動器電路106A可響應於二進制輸入值X1[0]在兩個電壓位準之間驅動位元線。多位元驅動器電路106B可在三個或更多位準之間驅動位元線。在一些實施例中,位元線驅動器106B可包括數位至類比轉換器(DAC),其可響應於多位元輸入值X1[0:n](其中n≥1)而產生不同輸出電壓(V0至V
i)。類比驅動器電路106C可響應於類比輸入電壓Vin將位元線驅動到類比電壓Vout,此類比輸入電壓Vin可與Vout相同或不同。
MUX部分108可包括一個或更多MUX,用於選擇性地將源極線(SL0到SLn)連接到ADC部分112。ADC部分112可將選定源極線(SL0到SLn)上的電壓或電流轉換成數位值。
已經敘述CIM裝置100的一般部分,現在將敘述MAC運算。核(例如120)可儲存在NVM胞元陣列102的列中。輸入值124可由BL驅動器106驅動到在位元線上。列驅動器(即104-0到104-n)可驅動字線(WL0到WLn)。作為響應,可針對此列啟用在每個位元線118和源極線(SL0到SLn)之間通過選定列的NVM胞元110的電流路徑。因此,此些胞元電流在源極線上加總以作為類比MAC結果(122-0到122-n)。
MUX部分108可將源極線(SL0到SLn)連接到ADC部分112。ADC部分122可將選定類比MAC結果(122-0到122-n)轉換成數位MAC結果126。如此操作可響應於位元線118上的輸入值之同一集合而重複進行,以產生用於每一列的MAC結果(122-0到122-n)。
CIM裝置100可具有不同於傳統方法的各種特徵。依據實施例,NVM胞元陣列102可將核儲存在列中,而不是行中。輸入值的施加可經由位元線,而不是字線。此外,NVM胞元陣列102可具有專用於每列的源極線(SL0到SLn),而不是像傳統情況中聯合的源極線。可對MAC結果的加總在源極線上,而不是在位元線上。類似地,可多工到ADC電路的是列(例如源極線),而不是行(例如位元線)。
在一些實施例中,位元線驅動器106可為神經元提供輸入,並且核120可以是如此神經元輸入的權重值。每個類比MAC結果(122-0到122-n)可響應相同輸入值集合而對應於不同的神經元(例如相同隱藏層的神經元)。
實施例可包括可在多於兩個狀態之間進行程式化的任何合適類型的記憶體胞元,其中每個不同狀態可提供不同的電流或電壓響應。圖2A到圖2E是顯示可包括在實施例中的NVM胞元的實例的圖。
圖2A是依據實施例可被包括在CIM陣列中的記憶體胞元210A的方塊圖。記憶體胞元210A可連接到位元線218、字線228和源極線230。記憶體胞元210A可用權重值來程式化,此權重值可指示通過記憶體胞元210A的電流的大小。響應於字線228上的電壓,可在位元線218和源極線230之間啟用傳導路徑。位元線218可處於可依據輸入值Xn而變化的電壓V
BL。源極線230可處於源極線電位V
SL。通過記憶體胞元210A的電流(I)可依據所儲存權重值而變化,並且在一些實施例中,I=Xn*權重。電流I的方向可依據V
BL和V
SL的值而變化。
圖2B是依據實施例可包括在CIM陣列中的單電晶體(1T)胞元210B的示意圖。1T胞元210B可具有IGFET結構,其具有在不少於三個值之間可程式化的閾值電壓(Vt)。閾值電壓(Vt)可用任何合適結構來建立,包括浮動閘極或其它電荷俘獲機制,例如SONOS型裝置。SONOS型裝置可包括矽基板、ONO閘極介電質和矽(例如多晶矽閘極),但是SONOS型裝置也可能受到閘極類型、基板類型和閘極介電質結構的變化所影響。1T胞元210B可如針對圖2A的胞元所敘述的加以選擇。所得胞元電流Icell可以依據經程式化Vt而變化。
圖2C展示依據實施例可包含在CIM陣列中的雙裝置記憶體胞元210C。雙裝置記憶體胞元210C可包括選擇裝置232和可程式化元件234。響應於字線228上的電壓,選擇裝置232可啟用在位元線218和可程式化元件234之間的傳導路徑。可程式化元件234可在三個或更多權重值之間被程式化。在一些實施例中,可程式化元件234可連接到一個或更多其它節點(顯示為236),以啟用可程式化元件及/或將權重值程式化到可程式化元件中。所得電流可依據可程式化元件中程式化的權重值而變化。可程式化元件可以是兩終端裝置或三終端裝置。
圖2D顯示依據實施例可被包括在CIM陣列中的雙電晶體(2T)記憶體胞元210D。2T記憶體胞元210D可包括選擇電晶體M20和可程式化電晶體M22。選擇電晶體M20可藉由選擇閘極(select gate;SG)字線228-0上的電壓來啟用,以提供在位元線218和可程式化電晶體M22之間的電流路徑。可程式化電晶體M22可具有如本文所述的可程式化Vt和等效物。在一些實施例中,可程式化電晶體可以是SONOS型裝置。在一些實施例中,在電流產生(例如MAC)操作中,控制閘極228-1可被偏置以產生期望加權電流(Icell)。僅管圖2D顯示n型傳導的電晶體,替代實施例可包括p型傳導的電晶體以及增強型或空乏型電晶體。
圖2E顯示依據實施例可被包括在CIM陣列中的另一個1T記憶體胞元210E。1T記憶體胞元210E可包括選擇電晶體M20和可程式化元件234’。選擇電晶體M20可藉由選擇閘極(SG)字線228上的電壓來啟用,以提供在位元線218和可程式化元件234’之間的電流路徑。可程式化元件234’可在三個或更多電阻狀態之間進行程式化。可程式化元件234’可採用任何合適形式,包括但不限於鐵電隨機存取記憶體(FRAM)元件、磁阻RAM(MRAM)元件、相變RAM(PCM)元件或電阻RAM(RRAM)元件。
圖3是依據另一實施例的CIM裝置300的方塊圖。在一些實施例中,CIM裝置300可以是圖1所示的一種實施方式。CIM裝置300可包括與圖1類似的項目,並且類似項目可以相同或相似方式來操作。
在圖3中,權重值可以有正分量和負分量。正和負權重值儲存在行配對(其中一個顯示為336)的相鄰記憶體胞元(其中兩個顯示為310-0/310-1)中。例如,記憶體胞元310-0可儲存權重W11的正分量(+ve),而記憶體胞元310-1可儲存權重W11的負權重分量(-ve),或是反之亦然。
依據實施例,CIM裝置300可將權重值的多個集合儲存在列中。此外,權重值可按列進行程式化。這與可將權重值的多個集合儲存在行中的傳統方法形成對比。藉由將權重值儲存在列中,本申請案實施例與傳統裝置相比可更快速地更新權重值集合並且具有更少的干擾可能性。實施例可對單列進行程式化,而不是對多列進行程式化,以更新權重值的一個集合。
位元線驅動器電路306可在不同電壓之間來驅動列配對336的位元線。如此特徵可使輸入值具有極性。在一些實施例中,如果輸入值為正(例如X1),則可將一個位元線318-0驅動至第一電壓,而將另一個位元線318-1驅動至第二電壓。然而,如果輸入值為負(例如-X1),則可將一個位元線318-0驅動到第二電壓,而將另一個位元線318-1驅動到第一電壓。這與可能必須將負形式的權重儲存值在第二行中的傳統方法形成對比。在一些實施例中,位元線驅動器電路306可藉由將兩個行驅動到取消選擇電壓來取消選擇行配對。取消選擇電壓可以是一電壓,其在由字線選定的記憶體胞元中基本上將不產生電流。
在操作上,可將多列的多個集合連接到具有相應源極線SL0到SLn的MUX 308-0到308-i。每個MUX(308-0到308-i)可響應選擇信號SL_SEL0到SL_SELi以將源極線(SL0到SLn)連接到ADC電路。選定源極線(SL0到SLn)上的類比電流可由對應積分器338-0到338-i進行積分。經積分電荷可藉由對應ADC電路312-0到312-i轉換成數位值(DIG.MAC VALUE)。
在一些實施例中,記憶體胞元在行方向上可以比在列方向上還長。在傳統裝置中,MUX可使輸入連接到行並且在列方向上延伸。相較之下,依據實施例,MUX可具有連接到列並且在行方向上延伸的輸入。因此,與傳統裝置相比,多工器的每個輸入可具有更大面積。
圖3顯示安排成列的核(權重組合)320-0至320-2。核320-0包括儲存權重W11、W21、W31和W41的記憶體胞元。藉由輸入值X1-X4的施加,可在源極線SL0上產生對應於MAC結果(X1*W11 + X2*W21 + X3*W31 + X4*W41)的電流,這可以是針對神經元(H1)的加總運算。核320-1/320-2分別在源極線SL1和SL2上提供類似結果。如此安排可使核能夠藉由單列程式化操作進行更新。這與以行方向儲存核的傳統方法形成對比,其需要對多列進行程式化以更新核,而引入干擾其它記憶體胞元的狀態的可能性及增加記憶體胞元陣列的耗損率。
圖4是顯示依據實施例用於提供帶符號輸入值的位元線電壓的表格。圖4顯示位元線配對(V
BL+、V
BL-)的電壓。對於具有正極性的輸入值(Xj(pos)),第一位元線電壓(V
BL+)可相對高於(H)第二位元線電壓(V
BL-=L)。相反,對於具有負極性的輸入值(Xj(neg)),V
BL+= L且V
BL-= H。在一些實施例中,可藉由將位元線配對驅動到取消選擇電壓來取消選擇行配對,而在一些實施例中,此取消選擇電壓可以是源極線電壓(V
SL)。
圖5A和5B是顯示對於正輸入和負輸入的記憶體胞元配對操作的圖。圖5A和5B顯示記憶體胞元510-0/510-1,其每個包括選擇電晶體M51/M52和可程式化電晶體M50/M53。記憶體胞元510-0的可程式化電晶體M50可被程式化以儲存正權重值(ve+),而記憶體胞元510-1的可程式化電晶體M53可被程式化以儲存負權重值(ve-)。每個選擇電晶體M51/M52可具有連接到對應位元線518-0/518-1的汲極、連接到選擇字線540-1的閘極以及連接到對應可程式化電晶體M50/M53的汲極的源極。每個可程式化電晶體M50/M53可具有連接到程式化字線540-0的閘極和連接到源極線542的源極。
參考圖5A,當輸入值Xj為正時,位元線518-0可被驅動到V
BL+,而位元線518-1可被驅動到V
BL-。選擇字線540-1可被驅動到使選擇電晶體M51/M52導通的電位,使得電流能夠流過選擇電晶體M51/M52,此電流依據對應可程式化電晶體M50/M53的程式化狀態而變化。在一些實施例中,這還可包括對程式化字線540-0進行偏置。位元線電壓V
BL+可大於源極線電壓V
SL,因此正權重電流分量Ive+可從位元線518-0流過記憶體胞元510-0到源極線542。位元線電壓V
BL-可小於源極線電壓V
SL,因此負權重電流分量Ive-可從源極線542流過記憶體胞元510-1到位元線518-1。
參考圖5B所示,當輸入值Xj為負時,位元線518-0可被驅動到V
BL-,而位元線518-1可被驅動到V
BL+。因此,正和負權重電流分量Ive+、Ive-可以與圖5A相反的方向流動。
在一些實施例中,可一起選擇記憶體胞元配對510-0/510-1,其中正和負權重電流分量Ive+、Ive-在對應源極線542處相互對抗。然而,在其它實施例中,MAC產生操作可以是兩步驟過程,其中電流分量的一個集合被選擇而其它集合被取消選擇。例如,在第一步驟中,位元線518-0可被驅動到V
BL+(或V
BL-),而位元線518-1被驅動到V
SL。源極線542因此可產生正權重電流。在第二步驟中,另一位元線518-1可被驅動到V
BL+(或V
BL-),而位元線518-0被驅動到V
SL。源極線542因此可產生負權重電流。
圖6是可包括在實施例中的記憶體胞元610的截面圖。記憶體胞元610可包括選擇電晶體M62、和與基板656一起形成的可程式化電晶體M63。選擇電晶體M62可具有經連接以接收位元線電壓V
BL的汲極646、連接到選擇字線640-1或形成作為選擇字線640-1的一部分的選擇閘極(SG),以及用作源極的擴散區644。可在閘極介電質648上方形成選擇閘極(SG)。可將選擇閘極(SG)驅動到電壓V
WL,此電壓V
WL可依據操作而變化。
可程式化電晶體M63可具有來自擴散區644的汲極、連接到程式化字線640-0或形成作為程式化字線640-0的一部分的控制閘極(control gate;CG)、以及連接到源極線642或形成作為源極線642的一部分的源極。控制閘極(CG)可形成在電荷儲存閘極介電質650(其在一些實施例中可包括形成在矽氧化物層(即ONO)之間的矽氮化物層)之上。可程式化電晶體M63可具有SONOS型結構。可將控制閘極(CG)驅動到電壓V
WLNV,此電壓V
WLNV可依據操作而變化。在一些實施例中,V
WLNV的脈衝大小及/或數量可用於將權重值程式化到可程式化電晶體中。源極線642可被驅動到電壓V
SL,此電壓V
SL也可依據操作而變化。
在所示實施例中,選擇電晶體M62和可程式化電晶體M63可以是n通道裝置。然而,替代實施例可包括不同傳導類型的電晶體。選擇和可程式化電晶體(M62/M63)可具有絕緣閘場效電晶體類型的結構。然而,替代實施例可具有不同的電晶體結構類型。
選擇電晶體M62和可程式化電晶體M63可形成在第一區652中,在一些實施例中,第一區652可以是摻雜成與M62/M63的源極/汲極相反的傳導類型的井(例如p型井)。依據實施例,第一區652可被驅動到電壓V
SPW,此電壓V
SPW可依據操作而變化。在所示實施例中,第一區652本身可被包含在第二區654中。在一些實施例中,第二區654可以是摻雜成與第一區652相反的傳導類型的深井。如此佈置可使第一區652成為可偏置到裝置的電源電壓以外的電壓。例如,可將第一區652驅動到負電壓以抹除及/或程式化可程式化電晶體M63以儲存權重值。
圖7是可包括在實施例中的NVM胞元陣列702的一部分的俯視圖。圖7顯示形成在基板756中的記憶體胞元區752。記憶體胞元區752可各自對應於CIM裝置中的NVM陣列的記憶體胞元。記憶體胞元區752可設置在列方向758上(例如平行於字線並且基本上垂直於位元線)。如圖所示,可在第二區754內形成一列的記憶體胞元區752。如此佈置可使得基板能夠就一列的記憶體胞元而被驅動到程式化/抹除偏置電壓,而不必驅動其它列。這可有利地實施對記憶體胞元行的抹除和程式化,而很少或不會干擾正被程式化的列以外的記憶體胞元。
圖8是顯示可包括在實施例中的各種程式化電路的方塊圖。程式化電路可將條件施加到記憶體胞元,從而產生等效於乘法運算的電流響應。雖然記憶體胞元可採用任何合適的形式,但是圖8顯示可包括以用於可程式化電晶體的電路。
部分860-0顯示字線驅動器電路,其可施加字線(例如控制閘極)條件來建立可程式化電晶體的閾值電壓。數位至類比轉換器(DAC)864可響應於數位權重值而產生控制閘極電壓V
CG。字線驅動器804-0可用控制閘極電壓V
CG來驅動一個或更多字線(840-0/840-1)。另外或替代地,脈衝產生器868可基於數位權重值862來改變電壓脈衝的數量及/或持續時間。字線驅動器804-0可基於如此脈衝來驅動一個或更多字線(840-0/840-1)。
部分860-1顯示可包括在實施例中的位元線電壓產生器。DAC 870可響應於數位權重值862而產生汲極電壓Vdrain。可在位元線上驅動汲極電壓(Vdrain)。在一些實施例中,汲極電壓(Vdrain)可以是脈衝形式,其具有響應於數位權重值862而變化的脈衝數量及/或脈衝持續時間。
部分860-2顯示可包括在實施例中的基板電壓產生器。DAC 872可響應於數位權重值862而產生基板電壓(V
SPW、V
DNW)。DAC 872可產生多於一個的基板電壓。此外,如此基板電壓可在極性上變化。
實施例可包括用於CIM裝置的NVM胞元陣列,其具有沿著列方向延伸(即平行於字線)的源極線。此外,每個源極線可僅連接到一列的記憶體胞元。位元線基本上可垂直於源極線而延伸。
圖9是依據實施例的CIM裝置900的俯視圖。CIM可包括NVM胞元陣列902,其具有連接到ADC-MUX電路908/912的列、和連接到位元線驅動器906的行。NVM胞元陣列902可包括記憶體胞元(其中一個顯示為910),其胞元高度910H大於胞元寬度910W。每列的記憶體胞元可連接到源極線(其中一個顯示為942)。每行的記憶體胞元可連接到位元線(其中一個顯示為918)。
位元線918可具有位元線電阻R
BL,並且源極線942可具有源極線電阻R
SL。依據實施例,R
BL> R
SL。與在位元線上提供MAC結果的傳統案例相比,如此佈置可允許ADC轉換中的積分器級有更大的動態感測範圍。在一些實施例中,位元線518可具有位元長度L
BL,並且源極線942可具有L
SL,其中L
BL>L
SL。
圖10是可包括在實施例中的NVM陣列1002的一部分的俯視圖。NVM陣列1002可包括安排成列和行的記憶體胞元(其中三個顯示為1010)。記憶體胞元1010可以是2T型記憶體胞元,其包括一選擇電晶體和一SONOS型電晶體。同一列的記憶體胞元可連接到同一控制閘極WL 1040-1和同一SONOS閘極WL 1040-0。同一行的記憶體胞元1010可連接到位元線(其中兩個的位置顯示為1018)。在一些實施例中,記憶體胞元可具有大約4:1的縱橫比,而在行方向上比在列方向上長四倍。
源極線1042可平行於字線(1040-0/1040-1)而延伸。源極線1042和位元線1018可由金屬化層(未顯示)來形成。另或者,源極線1042的全部或部分可由基板內的擴散區來形成。位元線1018可藉由位元線接點(其中兩個顯示為1074)而連接到記憶體胞元1010。圖10顯示一區,其包括由隔離結構1076界定的兩列的一部分。
如本文所述,位元線1018可接收輸入項(X
j,X
k),這可導致在源極線1042上產生電流。如此電流可對應於由SONOS型電晶體儲存在記憶體胞元中的權重值。電流可以是類比MAC結果1026’,其可轉換成數位值。
圖11A和圖11B是顯示依據實施例的CIM裝置的操作的方塊圖。圖11A和11B顯示具有CIM陣列1102、列驅動器1104、位元線驅動器1106和資料緩衝器1179的CIM裝置1100。CIM陣列1102可包括依據本申請案的任何實施例的一個或更多NVM陣列或等效物。列驅動器1140可將CIM陣列1102的字線驅動到各種電位,以存取(例如產生MAC結果)和程式化(包括抹除)在其中的記憶體胞元。類似地,位元線驅動器1106可將CIM陣列1102的位元線驅動到各種電位,以存取和程式化在其中的記憶體胞元。資料緩衝器1179可儲存資料值,其將由位元線驅動器1106在位元線上驅動。
圖11A顯示可將權重集合(核)載入到CIM陣列1102的列中的程式化操作。依據儲存在資料緩衝器1179中的權重值1120-0到1120-y,位元線可由位元線驅動器依據程式化操作1178-0來驅動。在一些實施例中,可基於要儲存在記憶體胞元中的權重值來驅動位元線。列驅動器1104還可依據程式化操作1178-1來驅動字線。與位元線一樣,在一些實施例中,字線可由列驅動器1104依據待儲存的權重值來驅動。源極線(未顯示)也可在程式化操作中被驅動。僅作為一個實例,將被程式化的列的源極線可被驅動到與未被程式化的列的源極線不同的電位。可理解到,如此程式化步驟可將記憶體胞元程式化為多個狀態中的任何一個,以提供可在值範圍內變化的電流。
在一些實施例中,可以逐列地對核進行程式化。權重值的一集合(KERNEL0)1120-0可被程式化到一列中,然後下一集合(KERNEL1)1120-1被程式化到下一列中,依此類推。核可具有各種尺寸。因此,一列可容納多於一個核及/或核可僅填充一列的一部分。
圖11B顯示依據實施例的MAC產生操作。在圖11B中,假設的是核1120-0到1120-y已經被程式化到CIM陣列1002中。依據儲存在資料緩衝器1179中的輸入值1180-0到1180-p,位元線可由位元線驅動器驅動。然而,位元線可被驅動到依據MAC運算1178-2的電壓,這可不同於用於程式化操作的電壓。如本文所述,在一些實施例中,輸入值(1180-0到1180-p)可以是二進制值。列驅動器1104可驅動字線來選擇一或多列以在位元線上接收輸入值。如此列驅動器1104之操作可以是MAC運算,這又可不同於程式化操作。
在位元線上驅動的輸入值(1180-0到1180-p)可導致電流在位元線和一列的記憶體胞元之間流動,從而在源極線上產生類比MAC結果(1126-0’到1126-y’)。可將各種輸入值(1180-0到1180-p)施加到由列驅動器1104選定的權重集合。
依據實施例,CIM陣列可被配置為產生用於人工神經網路(ANN)的神經元的MAC結果。特別是,可將輸入值施加到NN層,並且可在CIM陣列的不同列上產生於NN層的每個神經元的MAC結果。
圖12A和圖12B顯示如何將不同集合的輸入值施加到CIM陣列,以產生對於不同NN 1282-0/1282-1中的層的MAC結果。圖12A和圖12B顯示具有CIM陣列1202的CIM裝置1200,CIM陣列1202具有連接到MUX 1208-0到1208-3的列。CIM陣列1202將對於不同神經元的權重值儲存在連接到不同MUX的列上。在所示實施例中,NN 1282-0包括由神經元H11、H12和H13形成的一隱藏層。此些神經元的權重1220-0、1220-1和1220-2分別儲存在連接到MUX 1208-0、1208-1和1208-2的列中。
圖12A顯示經由位元線施加到CIM陣列1202的對於NN 1282-0的輸入值X1、X2、X3。MUX 1208-0到1208-3可被配置為選擇對應於隱藏層的神經元的列。因此,可使用權重集合H11來產生對應於神經元H11的MAC結果(H11sum),並經由MUX 1208-0輸出。以類似方式,權重集合H12可產生對應於神經元H12的MAC結果(H12sum),其由MUX 1208-1輸出。權重集合H13可產生對應於神經元H13的MAC結果(H13sum),其由MUX 1208-2輸出。
圖12B顯示同一CIM陣列1202,其產生對於不同NN 1282-1的層的MAC結果。MUX 1208-0到1280-3可切換對應於隱藏層(H21、H22、H23、H24)的列,以輸出此些神經元的MAC結果(H21sum、H22sum、H23sum、H24sum)。
各種MAC結果可以是類比結果,並且可藉由ADC電路(未顯示)轉換為數位值。
圖12C和圖12D顯示CIM陣列如何藉由疊代操作對於同一NN 1282-2中的層來執行MAC結果。圖12C/12D顯示具有類似於圖12A/12B的結構的CIM裝置1200,但進一步顯示分別連接到MUX 1208-0到1208-2的輸出的ADC電路1212-0到1212-2,以及可選的啟動函數電路1284和資料緩衝器1279。
NN 1282-2可包括由神經元H31、H32和H33形成的一隱藏層以及一輸出層神經元OUT。對於隱藏層的神經元的權重1220-0、1220-1和1220-2分別儲存在連接到MUX 1208-0、1208-1和1208-2的列中。輸出神經元OUT的權重可儲存在連接到MUX 1208-0的另一列中。
圖12C顯示經由位元線施加到CIM陣列1202以產生相應MAC結果的輸入值X1、X2、X3。如此MAC結果可藉由ADC電路(1212-0到1212-2)轉換成數位值,並且可選地施加到對應於每個神經元的啟動函數電路1284。啟動函數可包括任何合適函數,包括但不限於sigmoid函數、tanh函數、整流線性單元(ReLU)函數、指數線性單元(ELU)函數或maxout函數。啟動函數電路1284可以任何合適方式來實施,包括但不限於處理器執行指令、訂製邏輯或可程式化邏輯。另或者,可在ADC轉換之前使用類比電路來實施啟動函數。
最終的神經元輸出可作為值H31out、H32out和H33out而儲存在輸入緩衝器1279中。
圖12D顯示來自隱藏層的輸出值(H31out、H32out和H33out),其正被施加作為輸出神經元OUT的權重1220-4的輸入值。這可產生由MUX 1208-0輸出到ADC電路1212-0的相應類比MAC結果。可選地,可將所得數位值施加到啟動函數電路1284’。所得數位值可以是NN 1282-2的NN輸出值1226。
圖13顯示依據實施例的CIM架構1386。CIM架構1386可實施為系統單晶片(SoC)積體電路裝置,其由形成在封裝中的一個或更多積體電路基板組成。CIM架構1386可包括經過匯流排系統1395進行通信的可配置部分1393和控制部分1390。可配置部分1393可包括形成在可配置結構內的處理元件(PE)(其中一個顯示為1392),以使PE能夠視所需彼此互連。PE 1392可包括如本申請所揭示的一個或更多CIM裝置或等效物。PE 1392還可包括用於啟用與產生MAC結果相關的功能的附加電路,包括但不限於在輸入值經施加以產生MAC結果之前對此輸入值進行處理,以及處理數位MAC結果。在一些實施例中,PE區塊(例如1392)皆可用單一單體晶粒來形成。在所示實施例中,可配置結構可包括可配置匯流排(其中一個顯示為1388-0)和切換區塊(1388-1)。可配置匯流排1388-0可啟用到PE的輸入及/或輸出的可程式化連接。切換區塊1388-1可啟用在可配置匯流排1388-0之間的可程式化連接。
控制部分1390可包括池化區塊1390-0、累加單元1390-1、啟動區塊1390-2、全局CPU 1390-3和記憶體(SRAM)1390-4。池化區塊1390-0可對資料值執行池化運算,包括但不限於依據池化特徵來聚合資料值集合。池化特徵可包括但不限於導出資料集合的最大值、最小值、平均值或中位值。累加單元1390-1可將來自複數個PE的輸出與偏置值組合,且產生可進一步被一個或更多PE使用或作為輸入提供給池化區塊1390-0或啟動區塊1390-2的輸出。啟動區塊1390-2可對由PE產生的輸出執行啟動函數(例如ReLu、tanh、sigmoid等),並且其輸出可饋送到池化區塊1390-0或PE。全局CPU 1390-3可基於指令來控制CIM架構1386並管理CIM架構1386的內部操作,在一些實施例中,CIM架構1386可以是單一積體電路。記憶體1390-4可由CIM架構使用於任何合適功能,包括但不限於儲存用於配置匯流排1388-0和切換區塊1388-1的配置資料,以及PE的權重。在所示實施例中,記憶體可包括SRAM,但是實施例可包括任何合適的記憶體類型。
圖14是依據實施例的PE 1492的方塊圖。PE 1492可被包括在類似於圖13的架構中。PE 1492可包括CIM區塊(其中四個顯示為1494)、控制區塊1492-0、I/O介面1492-1、輸入啟動緩衝器1492-2、輸入流量控制1492-3、輸入匯流排系統1492-4、輸出匯流排系統1492-5、資料路徑控制1492-6、累加部分1492-7、輸出啟動部分1492-8、輸出緩衝器1492-9和時序控制區塊1492-10。
CIM區塊1494可包括CIM陣列1402、位元線驅動器1406、MUX 1408、字線驅動器1404-0/1404-1和ADC 1412。此些項目可採用本申請案所述的任何形式或等效形式。此外,CIM區塊1494可包括頁鎖存器1494-0、積分器/放大器電路1494-1、移位/加法電路1492-2和區塊暫存器1494-3。頁鎖存器1494-0可儲存來自CIM陣列1402的頁資料。CIM陣列1402可用非二進制權重資料來程式化。在對CIM陣列1402中的權重進行程式化時,輸入權重資料可儲存在頁鎖存器1494-0中,其接著被使用在程式化操作期間。在推理運算中,積分器/放大器電路1494-1可對由MUX 1408提供的電流值進行積分並在ADC轉換之前放大所得值。
移位/加法電路1492-2可修改數位MAC結果。區塊暫存器1494-3可儲存CIM區塊1494的輸出值,以用於PE 1492的後續輸出。在一些實施例中,區塊暫存器1494-3還可將輸入資料儲存到CIM區塊1494。因此,來自一個CIM區塊1494的輸出資料可作為輸入資料而提供給另一CIM區塊1494。
控制區塊1492-0可控制PE 1492的操作。在一些實施例中,控制區塊可包括CPU和相應的ROM和RAM。I/O介面1492-1可接收PE 1492的輸入資料。輸入啟動緩衝器1492-2可儲存輸入資料,並且在一些實施例中可基於預定準則,來選擇性地使輸入資料能夠施加到CIM陣列。在一些實施例中,輸入啟動緩衝器1492-4可用作一個或更多神經元輸入的啟動函數。輸入流量控制1492-3可控制哪個輸入資料要被施加到哪個CIM區塊1494。輸入流量控制1492-3可用任何合適方法來引導輸入資料,包括但不限於藉由伴隨輸入資料或分時多工的目的地值。輸入匯流排系統1492-4可提供資料路徑以供輸入資料到每個CIM區塊1494。輸出匯流排系統1492-5可提供資料路徑以供自每個CIM區塊1494輸出。輸入匯流排系統1492-4和輸出匯流排系統1492-5可以是並行匯流排、串行匯流排或兩者的組合。
資料路徑控制1492-6可選擇性地傳遞來自CIM區塊1494的輸出資料。累加部分1492-7可累加來自CIM區塊1494的輸出值。輸出啟動緩衝器1492-8可儲存PE 1492的輸出資料並執行啟動操作(例如ReLu、tanh、sigmoid)。在一些實施例中,輸出啟動緩衝器1492-8可用作一個或更多神經元輸出的啟動函數。在一些實施例中,輸出啟動緩衝器1492-8可對輸出資料實行其它操作,包括池化或其它聚合或過濾功能。輸出緩衝器1492-9可將輸出資料驅動到輸出連接上(例如,在可配置切換結構上)。時序控制區塊1492-10可產生時序和控制信號以用於協調PE 1492的操作。
圖15包括顯示如何配置CIM架構1592以實施NN 1582的圖。CIM架構1592可包括PE 1592-0到1592-4、可配置匯流排1588-00到1588-04和切換區塊1588-10到1588-13。在所示實施例中,一個PE 1592-0可具有用對應於隱藏層的一些神經元(H1、H2)的權重值進行程式化的CIM陣列。PE 1592-3可用對應於同一隱藏層的另一個神經元(H3)的權重值進行程式化。PE 1592-1可具有用對應於隱藏層的後續層的權重值進行程式化的CIM陣列。在所示實施例中,這可以是輸出層神經元(OUT)。
藉由配置切換區塊1588-13、1588-10和可配置匯流排1588-01,可將輸入值X1、X2、X3作為輸入值以提供給PE 1592-0。藉由配置切換區塊1588-13和可配置匯流排1588-03,輸入值X1、X2、X3也可作為輸入值以提供給PE 1592-3。PE 1592-0可配置為對與神經元H1、H2相對應的輸入值X1、X2、X3執行MAC運算。在一些實施例中,PE 1592-0還可為神經元H1、H2執行輸入及/或輸出啟動函數。類似地,PE 1592-3可配置為對與神經元H3相對應的輸入值X1、X2、X3執行MAC運算,並且可選地為神經元H3執行輸入及/或輸出啟動函數。
藉由配置切換區塊1588-11和可配置匯流排1588-03和1588-02,來自PE 1592-0的輸出值(對應於神經元H1,H2的輸出)可作為輸入值而提供給PE 1592-1。藉由配置切換區塊1588-14、1588-11和可配置匯流排1588-02和1588-04,來自PE 1592-3的輸出值(對應於神經元H3的輸出)可作為輸入值而提供給PE 1592-1。PE 1592-1可配置為執行對應於神經元OUT的MAC運算。在一些實施例中,PE 1592-1還可為神經元OUT執行輸入及/或輸出啟動函數。來自PE 1592-1的輸出值(對應於來自NN 1582的輸出)可藉由對可配置匯流排1588-05和切換區塊1588-12進行配置而連接到系統的輸出或連接到另一個PE。
儘管以上實施例已經顯示各種系統、裝置和相應方法,但是將參考流程圖來敘述額外方法。
圖16是依據實施例的MAC產生方法1696的流程圖。MAC產生方法1696可包括將乘數值儲存在NVM陣列的NVM胞元中(步驟1696-0)。如此動作可包括對NVM胞元進行程式化以儲存具有大於二的範圍的值。當在一MAC產生操作中選擇時,一NVM胞元可產生對應於其所儲存乘數和一輸入值的一乘積的一電流。
MAC產生方法1696可包括將被乘數值施加到NVM陣列的行以產生用於NVM胞元的列的電流(步驟1696-1)。如此動作可包括經由NMV胞元陣列的位元線來施加被乘數。可組合選定列的NVM胞元的電流以產生被乘數/乘數配對的MAC結果(步驟1696-2)。可用MUX將選定列連接到ADC(步驟1696-3)。如此操作可使ADC電路能夠被多列的NVM胞元共用。可由ADC將選定列的電流轉換為數位值(步驟1696-4)。如此轉換可依據任何合適方法,並且可包括用積分電容器對電流進行積分。如本申請案所述,對於具有正和負乘數值(例如權重)的實施例,ADC轉換可以是採用由正和負權重產生的總電流的一個步驟。然而,在其它實施例中,轉換可以是兩步驟過程,轉換正權重值,轉換對應的負權重值,以及從正權重值中減去負權重值。
圖17是用於以可具有不同極性的輸入(例如被乘數值)產生MAC結果的方法1796的流程圖。方法1796可包括用正和負權重對NVM胞元配對進行程式化(步驟1796-0)。如此動作可包括為用於每個預期輸入值的兩個權重值進行程式化,其中正權重值將增加MAC結果,而負權重值將減少MAC結果。方法1796可包括在位元線配對上施加依據極性而變化的輸入值(步驟1796-1)。如此動作可包括基於輸入值是正還是負來將位元線配對驅動到不同電壓。在一些實施例中,對於正輸入值,第一位元線可被驅動到相對高的電壓,而第二位元線可被驅動到相對低的電壓。對於負輸入值,可切換位元線配對上的電壓位準。
可啟用在NVM胞元中的存取裝置,以使電流從位元線流過NVM胞元到列源極線(步驟1796-2)。在一些實施例中,如此動作可包括啟動用於NVM胞元的列的字線。此外,源極線可專用於列。方法1796可包括將多個源極線之一者多工到ADC電路(步驟1796-3)。可將在源極線上的電流轉換為數位值(步驟1796-4)。
圖18顯示依據實施例在CIM裝置上執行NN操作的方法1896。方法1896可包括將用於一NN層的神經元的權重值程式化到具有NVM胞元的CIM陣列的列中(步驟1896-0)。用於NN層的輸入值可施加到CIM陣列的行以產生列電流。列電流可對應於用於NN層的神經元的MAC結果(步驟1896-1)。
可將CIM陣列的列上的電流轉換成數位結果(步驟1896-2)。啟動函數可施加到數位結果(步驟1896-3)。然後可將數位結果施加作為用於與NN的不同層相對應或與不同NN相對應的CIM列的輸入值(步驟1896-4)。如此動作可包括啟用在CIM裝置的不同CIM陣列之間的可程式化路徑。
實施例可提供優於傳統方法的各種優點。
可減少用於將類比電流連接到ADC電路的MUX的數量,特別是當NVM胞元的縱橫比在行方向大於列方向時。對於具有縱橫比4:1的NVM胞元的NVM陣列,MUX的數量可減少到大約四分之一。
實施例可為ADC轉換提供更短的積分路徑。在傳統方法中,可在位元線上提供MAC電流值。相反,實施例可在源極線上提供如此電流,源極線可比位元線還短。
類似地,實施例可提供更大的積分電流範圍,因為源極線可具有比位元線還低的電阻。對於具有縱橫比4:1的NVM胞元的NVM陣列,轉換路徑中的IR壓降可減少到大約四分之一。
依據實施例,MAC運算可用帶符號輸入值來執行,而不必重複陣列中的正和負行,從而更有效地使用CIM陣列空間。
依據實施例,CIM裝置可具有比傳統方法還增加的準確度。權重值集合(例如核)可逐列方式來更新。這可用單一程式化操作來更新權重值集合,而不是當一個核的權重集合儲存在多個行和列中時的多個如此操作。按照同樣的思路,可更簡單且更快地來更新權重值。
本領域技術人士將很好地理解到其它優點。
實施例可以在各個領域享有廣泛的施加,以高度並行的方式提供快速、容易更新的MAC運算。實施例可以有利地用於提供可以執行快速、節能的推理運算的神經網路。此外,神經網路可以進行更快的學習操作,因為可以快速準確地更新神經元權重值。
本領域技術人員將很好地理解其它施加。
應理解到,貫穿本說明書對「一/一個實施例」的參考意謂結合此實施例所敘述的特定特徵、結構或特性包括在本發明的至少一個實施例中。因此,需要強調並且應理解到,在本說明書的各個部分中對「一/一個實施例」或「替代實施例」的兩個或更多參考不一定引用相同實施例。此外,特定特徵、結構或特性可在本發明的一個或更多實施例中視適當地予以組合。
類似地,應理解到,在本發明的例示性實施例的上文敘述中,本發明的各種特徵有時被群集在單一實施例、附圖或其敘述中,以出於使本申請案內容更為流暢而幫助瞭解各種發明性觀點中之一個或更多之目的。然而,本申請案之如此方式不應被解釋為反映出申請專利範圍要求比每個請求項中明確列舉的特徵還多的意圖。相反,發明性觀點不在於單一前述實施例的所有特徵。因此,詳細敘述之後的申請專利範圍在此明確地併入此詳細敘述中,而每個請求項作為本發明的各別實施例而獨立存在。
100:CIM裝置
102:非揮發性記憶體(NVM)胞元陣列
104-0、104-1、104-n:字線驅動器
106:位元線驅動器
106A:數位驅動器電路
106B:多位元驅動器電路
106C:類比驅動器電路
108:源極線多工器(MUX)部分
110:NVM胞元
112:ADC部分
114:列
116:行
118:位元線
120:核
122-0、122-1、122-n:類比MAC結果
124:輸入值
126:數位MAC結果
210A:記憶體胞元
210B、210E:單電晶體(1T)胞元
210C:裝置記憶體胞元
210D:雙電晶體(2T)記憶體胞元
218:位元線(BL)
228:字線(WL)
230:源極線(SL)
232:選擇裝置
234:可程式化元件
236:節點
300:CIM裝置
304、304-0、304-1、304-2、304-n:列驅動器
306:位元線驅動器電路
308、308-0、308-i:MUX
310-0、310-1:記憶體胞元
312、312-0、312-i:ADC電路
318-0、318-1:位元線
320-0、320-1、320-2:核
336:行配對
338-0、338-i:積分器
510-0、510-1:記憶體胞元
518-0、518-1:位元線
540-0:選擇字線
540-1:程式化字線
542:源極線
610:記憶體胞元
640-0:程式化字線
640-1:選擇字線
642:源極線
644:擴散區
646:汲極
648:閘極介電質
652:第一區
654:第二區
656:基板
702:NVM胞元陣列
752:記憶體胞元區
754:第二區
756:基板
758:列方向
804-0:字線驅動器
840-0、840-1:字線
860:程式化電路
860-0、860-1、860-2:部分
862:數位權重值
864、870、872:數位至類比轉換器(DAC)
868:脈衝產生器
900:CIM裝置
902:NVM胞元陣列
906:位元線驅動器
908/912:ADC-MUX電路
910:記憶體胞元
910H:胞元高度
910W:胞元寬度
918:位元線
942:源極線
1002:NVM陣列
1010:記憶體胞元
1018:位元線
1026’:類比MAC結果
1040-0:SONOS閘極WL
1040-1:控制閘極WL
1042:源極線
1074:位元線接點
1076:隔離結構
1100:CIM裝置
1102:CIM陣列
1104:列驅動器
1106:位元線驅動器
1120-0、1120-1、1120-y:權重值
1126-0’、1126-1’、1126-y’:類比MAC結果
1178-0:程式化操作
1178-1:程式化操作
1178-2:MAC運算
1178-3:MAC運算
1179:資料緩衝器
1180-0、1180-1、1180-p:輸入值
1200:CIM裝置
1202:CIM陣列1202
1208-0、1208-1、1208-2、1208-3:MUX
1212-0、1212-1、1212-2:ADC電路
1220-0、1220-1、1220-2、1220-3、1220-4、1220-5、1220-6:權重
1226:NN輸出值
1279:資料緩衝器
1282-0、1282-1、1282-2:NN
1284、1284’:啟動函數電路
1386:CIM架構
1388-0:可配置匯流排
1388-1:切換區塊
1390:控制部分
1390-0:池化區塊
1390-1:累加單元
1390-2:啟動區塊
1390-3:全局CPU
1390-4:記憶體
1392:處理元件(PE)
1393:可配置部分
1395:匯流排系統
1402:CIM陣列
1404-0、1404-1:字線驅動器
1406:位元線驅動器
1408:MUX
1412:ADC
1492:PE
1492-0:控制區塊
1492-1:I/O介面
1492-2:輸入啟動緩衝器
1492-3:輸入流量控制
1492-4:輸入匯流排系統
1492-5:輸出匯流排系統
1492-6:資料路徑控制
1492-7:累加部分
1492-8:輸出啟動部分
1492-9:輸出緩衝器
1492-10:時序控制區塊
1494:CIM區塊
1494-0:頁鎖存器
1494-1:積分器/放大器電路
1494-2:移位/加法電路
1494-3:區塊暫存器
1582:NN
1588-00、1588-01、1588-02、1588-03、1588-04、1588-05:可配置匯流排
1588-10、1588-11、1588-12、1588-13、1588-14:切換區塊
1592:CIM架構
1592-0、1592-1、1592-2、1592-3、1592-4:PE
1696:MAC產生方法
1696-0、1696-1、1696-2、1696-3、1696-4:步驟
1796:方法
1796-0、1796-1、1796-2、1796-3、1796-4:步驟
1896:方法
1896-0、1896-1、1896-2、1896-3、1896-4:步驟
1901:人工神經網路(ANN)
2003:交錯式記憶體陣列
2103:記憶體內計算(CIM)陣列
2105-0、2105-1:記憶體胞元
2107:源極線(SL)驅動器
2109:行配對
2111-0、2111-1、2111-2:核
2113:列驅動器
2115:多工器(MUX)
2117:積分器
2119:數位轉換器(ADC)電路
2203:CIM陣列
2205-0:記憶體胞元
2221-0、2221-1:行
H1、H2、H3、OUT:神經元
M221:矽-氧化物-氮化物-氧化物-矽(SONOS)型電晶體
M223:選擇電晶體
M51、M52、M62:選擇電晶體
M50、M53、M63:可程式化電晶體
X1、X2、X3:輸入值
[圖1]是依據實施例的記憶體內計算(CIM)裝置的示意圖。
[圖2A]到[圖2E]是顯示依據實施例可被包括在CIM陣列中的非揮發性記憶體(nonvolatile memory;NVM)胞元的圖。
[圖3]是依據另一實施例的CIM裝置的示意圖。
[圖4]是顯示依據實施例的帶符號輸入值的位元線電壓位準的表格。
[圖5A]和[圖5B]是顯示依據實施例將正和負輸入值施加到NVM胞元配對的示意圖。
[圖6]是可包括在實施例中的NVM胞元的側截面圖。
[圖7]是可包括在實施例中的一列的NVM胞元的俯視圖。
[圖8]是可包括在實施例中的程式化電路的圖。
[圖9]是依據實施例的CIM裝置的俯視圖。
[圖10]是依據實施例的CIM陣列的俯視圖。
[圖11A]和[圖11B]是顯示依據實施例的CIM裝置的程式和MAC產生操作的圖。
[圖12A]到[圖12D]是顯示依據各種實施例的CIM陣列的神經網路(NN)操作的圖。
[圖13]是依據實施例的CIM架構的方塊圖。
[圖14]是依據實施例的處理元件的方塊圖。
[圖15]是顯示依據實施例被配置為提供NN功能的CIM架構的圖。
[圖16]是依據實施例的方法的流程圖。
[圖17]是依據實施例的另一方法的流程圖。
[圖18]是依據實施例的又一方法的流程圖。
[圖19]是NN的圖。
[圖20A]是顯示引起乘法累加(MAC)運算的傳統矩陣運算的圖。
[圖20B]是用於產生MAC結果的傳統交叉點陣列的示意圖。
[圖21]是傳統CIM裝置的示意圖。
[圖22]是傳統CIM陣列的示意圖。
100:CIM裝置
102:非揮發性記憶體(NVM)胞元陣列
104-0、104-1、104-n:字線驅動器
106:位元線驅動器
106A:數位驅動器電路
106B:多位元驅動器電路
106C:類比驅動器電路
108:源極線多工器(MUX)部分
110:NVM胞元
112:ADC部分
114:列
116:行
118:位元線
120:核
122-0、122-1、122-n:類比MAC結果
124:輸入值
126:數位MAC結果
Claims (20)
- 一種方法,該方法包括: 將權重值儲存在一非揮發性記憶體(NVM)胞元陣列的NVM胞元的儲存體元件中,該NVM胞元陣列具有列和行,其中該些NVM胞元的一個列和一個行分別耦合到一字線和一位元線; 對於至少一列,藉由將輸入值施加到位元線上來產生該列的一乘法累加(MAC)結果,每個MAC結果包括一類比電流或電壓的一加總,該類比電流或電壓是每個輸入值、和由該列的該些NVM胞元儲存之一對應權重值的函式;以及 藉由至少一個多工器的操作,將複數個該些列中的一列連接到類比至一數位轉換器(ADC)電路,以將該列的該類比電流或電壓轉換為一數位MAC值; 其中每個NVM胞元的該儲存體元件被配置為儲存一權重值,其可在不少於三個不同值之間變化。
- 如請求項1之方法,其中: 將權重值儲存在該些儲存體元件中包括,對於每個NVM胞元,對該NVM胞元的一絕緣閘場效電晶體(IGFET)裝置的一電荷儲存層進行程式化,以建立該IGFET裝置的閾值電壓。
- 如請求項2之方法,其中: 該電荷儲存層包括一氮化物層。
- 如請求項1之方法,其中: 將權重值儲存在該些儲存體元件中包括,將一個權重值集合儲存在一個選定列中,該些權重值集合對應於一MAC運算的乘數值。 施加輸入值包括將該MAC運算的被乘數值施加到該選定列;且 產生該些MAC結果包括為每個選定列產生一MAC結果,其對應於每個被乘數值乘以一不同乘數值的一加總。
- 如請求項4之方法,其更包括: 使用一不同的ADC電路將每個選定列的該MAC結果轉換為一數位值。
- 如請求項1之方法,其更包括: 累加複數列的數位MAC值以產生輸出值的一集合; 經由一可程式化連接結構將該些輸出值耦合到一第二NVM胞元陣列;以及 藉由將該些輸出值作為第二陣列輸入值而施加到該第二NVM胞元陣列的位元線上,以利用該第二NVM胞元陣列來產生第二MAC結果。
- 如請求項1之方法,其中: 每個NVM胞元包括一選擇裝置和一對應儲存體元件,該儲存體元件可在不少於三個不同傳導狀態之間進行程式化;以及 產生該列的一MAC結果包括使該列的每個NVM胞元中的一選擇裝置能夠將該對應儲存體元件耦合到一位元線;其中 一列中的每個儲存體元件是傳導耦合至該列的源極線、而不傳導耦合至其它列的源極線,並且 該MAC結果是該源極線上的一電流流動。
- 一種非揮發性記憶體(NVM)裝置,該NVM裝置包括: 至少一個NVM陣列,包括安排成列和行的複數個NVM胞元,每個NVM胞元被配置為儲存一權重值,並提供依據該權重值而變化的一胞元電壓或電流; 複數個位元線,每個位元線耦合到該NVM胞元陣列的一行; 複數個字線,每個字線耦合到NVM胞元的一對應列,每個字線被配置為選擇該對應列的該些NVM胞元; 分開的複數個源極線,每個源極線耦合到NVM胞元的一不同列; 複數個多工器(MUX),每個MUX具有耦合到源極線之一不同集合的MUX輸入,並且每個MUX被配置為選擇性地將一個MUX輸入連接到一MUX輸出;以及 複數個類比至數位轉換器(ADC)部分,每個ADC部分耦合到一不同MUX的一MUX輸出;其中 每個NVM胞元可在不少於三個不同權重值之間進行程式化。
- 如請求項8之NVM裝置,其中: 每個該NVM胞元包括一絕緣閘場效電晶體(IGFET)裝置,該IGFET裝置具有一閾值電壓,其代表由該NMV胞元儲存的該權重值。
- 如請求項9之NVM裝置,其中: 每個IGFET裝置具有一電荷儲存閘極層,該電荷儲存閘極層選自以下群組中:一氧化物-氮化物-氧化物(ONO)層和一高k介電層、氮化物層和一氧化物層。
- 如請求項8之NVM裝置,其中: 每個ADC部分包括: 一積分器電路,該積分器電路被配置為對在由一對應MUX選定的一源極線上所產生的一類比信號進行積分,以產生一積分類比值,以及 一ADC電路,該ADC電路被配置為將該積分類比值轉換為一數位值。
- 如請求項8之NVM裝置,其更包括: 一位元線驅動器電路,該位元線驅動器電路耦合到該些位元線,並且被配置為在從以下群組中選定的任何電壓位準之間驅動每個位元線:響應於一輸入值和一類比電壓範圍的至少兩個不同電壓位準。
- 如請求項12之NVM裝置,其中: 每列的該些NVM胞元包括相鄰的胞元配對,每個胞元配對包括: 一第一NVM胞元,該第一NVM胞元被配置為儲存一正權重值,且 一第二NVM胞元,該第二NVM胞元被配置為儲存一負權重值; 該些位元線包括位元線配對;和 該位元線驅動器電路被配置為基於一輸入值的一極性而將位元線配對驅動到互補值。
- 如請求項8之NVM裝置,其中: 每個源極線具有比每個位元線還低的一電阻。
- 一種系統,該系統包括: 複數個處理元件(PE),每個PE包括: 複數個非揮發性記憶體(NVM)陣列,每個NVM陣列包括安排成列和行的NVM胞元,每列的該些NVM胞元耦合到一字線,每行的該些NVM胞元耦合到一位元線,每列被配置為: 將權重值儲存在該列的NVM胞元中, 藉由將一輸入值施加到該列的NVM胞元來產生一乘法累加(MAC)結果,每個MAC結果包括一類比電流或電壓的一加總,,該類比電流或電壓是每個輸入值、和由該列的該些NVM胞元所儲存之對應的一權重值, 複數個類比至數位轉換器(ADC),每個ADC被配置為將來自一選定列的一MAC結果轉換成一數位MAC值;以及 電路,該些電路被配置為將該些PE彼此傳導互連。
- 如請求項15之系統,其中: 該些複數個PE由相同的一個半導體基板來形成。
- 如請求項15之系統,其中: 每個PE還包括一累加電路,該累加電路耦合到該些NVM陣列,並且被配置為累加數位MAC值。
- 如請求項15之系統,其中: 該些電路包括一可配置切換結構,該可配置切換結構包括: 複數個可配置匯流排,該複數個可配置匯流排耦合到該些PE,以及 複數個切換區塊,該複數個換塊在配置上將可配置匯流排相互連接。
- 如請求項15之系統,其中: 該PE還包括池化電路,該些池化電路被配置為聚集經累加的該些數位MAC值之集合。
- 如請求項15之系統,其中: 該複數個PE被配置為至少一個神經網路,該至少一個神經網路包括: 一第一群PE,該第一群PE被配置為一隱藏層的神經元,該第一群PE中的每個PE經耦合以接收輸入值,並將該些輸入值施加到該些PE之至少一個NVM陣列,以產生數位MAC值,以及 至少一個PE,該至少一個PE被配置為一輸出神經元,並且被耦合以接收由該隱藏層產生的數位MAC值作為輸入值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/215,372 US20220309328A1 (en) | 2021-03-29 | 2021-03-29 | Compute-in-memory devices, systems and methods of operation thereof |
US17/215,372 | 2021-03-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202303382A true TW202303382A (zh) | 2023-01-16 |
Family
ID=83364785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111111441A TW202303382A (zh) | 2021-03-29 | 2022-03-25 | 記憶體內計算裝置、系統及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220309328A1 (zh) |
CN (1) | CN117157636A (zh) |
DE (1) | DE112022001822T5 (zh) |
TW (1) | TW202303382A (zh) |
WO (1) | WO2022212282A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230317161A1 (en) * | 2022-03-31 | 2023-10-05 | Crossbar, Inc. | Matrix multiplication with resistive memory circuit having good substrate density |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258934A (en) * | 1990-05-14 | 1993-11-02 | California Institute Of Technology | Charge domain bit serial vector-matrix multiplier and method thereof |
US7184290B1 (en) * | 2000-06-28 | 2007-02-27 | Marvell International Ltd. | Logic process DRAM |
JP2004303918A (ja) * | 2003-03-31 | 2004-10-28 | Renesas Technology Corp | 半導体装置の製造方法および半導体装置 |
US7574482B2 (en) * | 2003-10-31 | 2009-08-11 | Agere Systems Inc. | Internal memory controller providing configurable access of processor clients to memory instances |
US7551486B2 (en) * | 2006-05-15 | 2009-06-23 | Apple Inc. | Iterative memory cell charging based on reference cell value |
CA2810457C (en) * | 2013-03-25 | 2018-11-20 | Gerald Bradley PENN | System and method for applying a convolutional neural network to speech recognition |
US9779355B1 (en) * | 2016-09-15 | 2017-10-03 | International Business Machines Corporation | Back propagation gates and storage capacitor for neural networks |
US20210064379A1 (en) * | 2019-08-29 | 2021-03-04 | Arm Limited | Refactoring MAC Computations for Reduced Programming Steps |
-
2021
- 2021-03-29 US US17/215,372 patent/US20220309328A1/en active Pending
-
2022
- 2022-03-25 TW TW111111441A patent/TW202303382A/zh unknown
- 2022-03-28 WO PCT/US2022/022188 patent/WO2022212282A1/en active Application Filing
- 2022-03-28 CN CN202280026508.1A patent/CN117157636A/zh active Pending
- 2022-03-28 DE DE112022001822.4T patent/DE112022001822T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220309328A1 (en) | 2022-09-29 |
DE112022001822T5 (de) | 2024-01-25 |
WO2022212282A1 (en) | 2022-10-06 |
CN117157636A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11663457B2 (en) | Neural network circuits having non-volatile synapse arrays | |
CN109214510B (zh) | 神经形态多位式数字权重单元 | |
US10552510B2 (en) | Vector-by-matrix multiplier modules based on non-volatile 2D and 3D memory arrays | |
US10534840B1 (en) | Multiplication using non-volatile memory cells | |
US20210019609A1 (en) | Mixed signal neuromorphic computing with nonvolatile memory devices | |
US10217512B1 (en) | Unit cell with floating gate MOSFET for analog memory | |
US11170838B2 (en) | Temperature effect compensation in memory arrays | |
CN113467751B (zh) | 一种基于磁性随机存储器的模拟域存内计算阵列结构 | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
US20220044099A1 (en) | Method for in-memory convolutional computation and corresponding integrated circuit | |
WO2014138641A1 (en) | Circuit for mixed memory storage and polymorphic logic computing | |
US11100989B2 (en) | Multiplier-accumulator | |
TW202303382A (zh) | 記憶體內計算裝置、系統及其操作方法 | |
Motaman et al. | Dynamic computing in memory (DCIM) in resistive crossbar arrays | |
JP2022060146A (ja) | 読み出し中のmramにおける信号の保存 | |
Luo et al. | Benchmark non-volatile and volatile memory based hybrid precision synapses for in-situ deep neural network training | |
Lee et al. | Review of candidate devices for neuromorphic applications | |
CN116032258A (zh) | 延时缓冲单元及其操作方法、计算装置及其操作方法 | |
JP7095163B2 (ja) | 読み出し中のmramにおける信号の増幅 | |
CN110136760B (zh) | Mram芯片 | |
Zhou et al. | A 28 nm 81 Kb 59–95.3 TOPS/W 4T2R ReRAM computing-in-memory accelerator with voltage-to-time-to-digital based output | |
CN111243648A (zh) | 闪存单元、闪存模块以及闪存芯片 | |
WO2024021365A1 (zh) | 存储器单元、阵列电路结构及数据处理方法 | |
US20230292533A1 (en) | Neural network system, high efficiency embedded-artificial synaptic element and operating method thereof | |
US20220085107A1 (en) | Topologies of unit crossbars |