TWI751403B - 具有非揮發性突觸陣列的神經網路電路及神經晶片 - Google Patents

具有非揮發性突觸陣列的神經網路電路及神經晶片 Download PDF

Info

Publication number
TWI751403B
TWI751403B TW108102597A TW108102597A TWI751403B TW I751403 B TWI751403 B TW I751403B TW 108102597 A TW108102597 A TW 108102597A TW 108102597 A TW108102597 A TW 108102597A TW I751403 B TWI751403 B TW I751403B
Authority
TW
Taiwan
Prior art keywords
electrically coupled
signal line
transistor
line
selection transistor
Prior art date
Application number
TW108102597A
Other languages
English (en)
Other versions
TW201937413A (zh
Inventor
承桓 宋
許智慧
相守 李
Original Assignee
美商安納富來希股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/196,617 external-priority patent/US11361215B2/en
Application filed by 美商安納富來希股份有限公司 filed Critical 美商安納富來希股份有限公司
Publication of TW201937413A publication Critical patent/TW201937413A/zh
Application granted granted Critical
Publication of TWI751403B publication Critical patent/TWI751403B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5614Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using conductive bridging RAM [CBRAM] or programming metallization cells [PMC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0028Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5685Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using storage elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0092Write characterized by the shape, e.g. form, length, amplitude of the write pulse
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/82Array having, for accessing a cell, a word line, a bit line and a plate or source line receiving different potentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Semiconductor Memories (AREA)
  • Logic Circuits (AREA)

Abstract

一種非揮發性神經網路之突觸電路。其突觸包括:輸入訊號線、參考訊號線、輸出線及用於產生輸出訊號之單元。其單元包括:具有電性耦合至輸入訊號線之閘極的上部選擇電晶體,以及具有串聯連接至上部選擇電晶體之一端,且另一端電性耦合至參考訊號線的電阻變化元件。電阻變化元件之值為可編程的,以改變輸出訊號之振幅。上部選擇電晶體之汲極電性耦合至第一輸出訊號線。

Description

具有非揮發性突觸陣列的神經網路電路及神經晶片
本案主張2018年11月20提交之美國專利案第16/196,617號之部分延續案之優先權,暨主張於2017年11月29日、2018年1月23日及2018年4月9日提交之美國專利案第62/592,300號、62/620,947號及第62/655,074號的優先權,其全部內容納入本文作為參考。
本發明涉及神經網路電路,且更具體地,涉及具有使用類比值(analog value)之非揮發性突觸的神經網路電路。
人工神經網路(Artificial Neural Network,ANN)係模仿人腦之計算模型的神經網路。神經網路可描述成藉由它們之間的突觸彼此連接的許多神經元。連接之強度,或每個突觸的權重值可藉由學習程序當成可訓練的參數調整。在近年中,使用ANNs之人工智能(AI)已應用至各種領域,像是視覺及音訊偵測/辨識、語言翻譯、遊戲、醫療決策(medical decision-making)、金融或天氣預報、無人機、自動駕駛汽車等等。
傳統上,神經網路之計算需要具有多個中央處理單元(CPUs)及/或圖形處理單元(GPUs)之高性能雲端伺服器,由於計算之複雜性,因為行動裝置有限的電量及計算資源,阻礙了行動裝置在本地執行AI程式。利用專屬互補 式金屬氧化物半導體(CMOS)邏輯加速神經網路計算之其他現有的特殊應用積體電路(application-specific integrated circuit,ASIC)或場效可編程邏輯閘陣列(field-programmable gate array,FPGA)的途徑,相較這些基於通用的CPU及GPU的方式雖然較節能,但是將資料移入及移出儲存訓練的權重值之單晶片外的非揮發性記憶體(NVM)時,仍然浪費不必要的電力及等待時間。因此,需要消耗更少的計算資源的神經網路電路。
在本發明之一個態樣中,非揮發性神經網路之突觸電路包括:輸入訊號線、參考訊號線、輸出線及用於產生輸出訊號之單元。其單元包括:具有電性耦合至輸入訊號線之閘極的上部選擇電晶體,以及具有串聯連接至上部選擇電晶體之一端,且另一端電性耦合至參考訊號線的電阻變化元件。電阻變化元件之值係可編程的,以改變輸出訊號之振幅。上部選擇電晶體之汲極係電性耦合至輸出線。
在本發明之另一個態樣中,突觸電路包括:第一及第二輸入訊號線、參考訊號線、第一及第二輸出訊號線、第一及第二單元及交叉耦合閂鎖電路(cross-coupled latch circuit)。交叉耦合閂鎖電路包括第一及第二反相器(inverter)及第一及第二訊號節點。第一反相器之輸入端子係在第一訊號節點耦合至第二反相器之輸出端子,且第二反相器之輸入端子係在第二訊號節點連接至第一反相器之輸出端子。單元之每一個包括第一上部選擇電晶體,其係在其閘極電性耦合至第一輸入訊號線,及耦合至第二輸入訊號線之第二上部選擇電晶體。第一及第二上部選擇電晶體之源極端子係耦合至共用節點。在第一單元中,第一及第二上部選擇電晶體之汲極係分別地耦合至第一及第二輸出訊號線。在第二 單元中,汲極端子係反轉,第一上部選擇電晶體之汲極端子連接至該第二輸出訊號線,且第二上部選擇電晶體之汲極端子連接至第一輸出訊號線。第一單元之共用節點係連接至交叉耦合閂鎖電路之第一訊號線節點,且第二單元之共用節點係連接至交叉耦合閂鎖電路之第二訊號線節點。參考訊號線係耦合至交叉耦合閂鎖電路之第一及第二反相器。
100、1316:神經網路
110、130、150、170、190:神經元陣列層
112a、112b至112n:神經元
120、140、160、180:突觸陣列層
132a、132b至132m:神經元
200、1410:突觸陣列
201:參考電壓輸入
202:訊號電壓輸入
203:正電流輸出
204:負電流輸出
210:非揮發性突觸
241:正電流連接埠
242:負電流連接埠
250:感測電路
261、262:電流值
263、268:行選擇電晶體
264:訊號線
265、420、WL、WL0、WL1至WLn、WLa、WLb、WLc、WLaB、WLbB、WLcB:字元線
266:正輸出電流線
267:負輸出電流線
300、400、500、600、700、800、1500、1700、1800、1900、2000、2100、2200:突觸
311、312:輸入電晶體
313、314:電阻變化元件(電阻器)
332、334、432、434、532、534、632、634、732、734、832、834、1532、1534、1732、1832、1932、2032、2132、2232:單元
406、BL、BL0、BL1至BLm:正輸出線
407、BLB、BLB0、BLB154BLBm:負輸出線
412、SL、SL0、SL1至SLn:參考訊號線
414:抹除字元線
416:寫入字元線
418:編程字線
422、423:耦合電晶體
424、425:寫入電晶體
432、434:記憶單元
452、752:虛線方塊
460、720、722:上部選擇電晶體
462:讀取電晶體
464:下部選擇電晶體
550、551:1T-1R單元
211、212、602、604、606、608、1502、1506:輸入選擇電晶體
802:2T-1R單元
900、1000、1600:表格
910、912、914:欄位
950、960、962、964、1050:曲線
1100:流程圖
1102、1104、1106、1108、1110:步驟
1212、1214、1216:輸出訊號線
1220:偏移電流訊號
1224:輸出(第一)電流訊號
1226:輸出(第二)電流訊號
1300:晶片
1300a、1300b、2310、2600、2700:系統單晶片
1312:CPU
1314:感測器
1318:記憶體
1400:系統
1402:參考產生器
1404:配置儲存器
1406:列驅動器
1408:路由器/控制器
1412:行選擇器
1414:感測電路
1416:累加器
1418:區塊
1420:資料緩衝器
1504、1508:電晶體
1510:交叉耦合閂鎖電路
1514、1518:反相器
2300、2400、2500:神經網路系統
2319:外部NVM晶片
2320、2720:神經網路計算引擎
2330、2430:系統匯流排
2470:外部神經網路加速器裝置
2480:晶片外互連
2619、2719:邏輯友善NVM
EWL:抹除線
FG_n、FG_p:浮動閘極節點
IBL、IBLB:差分輸出電流
PWL:編程線
R_p613、R_n614、Ra_p、Rb_p、Rc_p、Ra_n、Rb_n、Rc_n:電阻器
S、SB:節點
WWL:寫入線
將參考本發明之實施例,本發明之示例可在圖式中繪示。這些圖式旨在說明,而非限制。儘管本發明係通常在這些實施例之上下文中描述,應理解其旨不在限制本發明之申請專利範圍至這些特定實施例。
第1圖繪示根據本揭露之實施例之神經網路之示意圖。
第2圖繪示根據本揭露之實施例之突觸陣列之示意圖。
第3圖繪示根據本揭露之實施例之突觸之示意圖。
第4圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第5圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第6圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第7圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第8圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第9A圖至第9B圖繪示根據本揭露之實施例與常規之用於編程臨界電壓(VTH)的方法之比較。
第10A圖至第10B圖繪示根據本揭露之實施例之用於浮動閘極節點之臨界電壓(VTH)的另一個編程方法。
第11圖繪示根據本揭露之實施例之用於編程浮動閘極節點之臨界電壓(VTH)的說明性程序的流程圖。
第12A圖至第12C圖繪示根據本揭露之實施例之差分訊號。
第13圖繪示根據本揭露之實施例之包含神經網路之晶片之示意圖。
第14圖繪示根據本揭露之實施例之包含非揮發性突觸陣列之神經網路之示意圖。
第15圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第16圖繪示根據本揭露之實施例之第15圖的輸入及輸出線上之訊號以實現二進制乘法器的表格。
第17圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第18圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第19圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第20圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第21圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第22圖繪示根據本揭露之實施例之另一個突觸之示意圖。
第23圖繪示在習知技術中之常規神經網路系統之示意圖。
第24圖繪示根據本揭露之實施例之包括晶載(on-chip)非揮發性神經網路及外部神經網路加速裝置的SoC組成之分層神經網路計算系統的示意圖。
第25圖繪示根據本揭露之實施例之多個SoCs組成的分佈式神經網路系統之示意圖。
第26圖繪示根據本揭露之實施例之邏輯友善NVM整合神經網路系統的示意圖。
第27圖繪示根據本揭露之實施例之另一個邏輯友善NVM整合神經網路系統的示意圖。
在以下描述中,為了解釋之目的,係闡述具體細節以提供本揭露之理解,對所屬技術領域具有通常知識者而言,本揭露可以不藉由這些細節實施。所屬技術領域具有通常知識者將了解以下描述的本揭露之實施例,可以各種方法執行及使用各種手段。所屬技術領域具有通常知識者也將了解其他修正、應用及實施例係在本揭露之範圍內,且本揭露亦可在其他領域加以應用。因此,以下描述的實施例係本揭露之特定實施例之說明,且旨在避免模糊本揭露。
本說明書中對「一個實施例」或「一實施例」之引用,指的是在該實施例描述的特定的特性、結構、特徵或功能係包括在本揭露之至少一個實施例中。在本說明書中的各處出現的短語「在一個實施例中」、「在一實施例中」或其類似用語,係不必然都意指相同之實施例。
第1圖繪示根據本揭露之實施例之神經網路100示意圖(在整個說明書中,相同的元件符號標示相同元件)。如圖所示,神經網路100可包括五個神經元陣列層(或簡稱,神經元層)110、130、150、170及190,及突觸陣列層(或簡稱,突觸層)120、140、160及180。每個神經元層(例如,110)可包括適合數量的神經元。在第1圖中,係顯示有五個神經元層及四個突觸層。然而,對所屬技術領域具有通常知識者而言顯而易見的是,神經網路100可包括其他適合數量的神經元層,且突觸層可設置在兩個相鄰的神經元層之間。
應注意在神經元層(例如,110)中的每個神經元(例如,112a)在下一個神經元陣列層(例如,130)中藉由在突觸層(例如,120)中的M個突觸可連接至一個或多個神經元(例如,132a至132m)。舉例來說,假設在神經元層110中的每個神經元係電性耦合至在神經元層130中的所有神經元,則突觸層120可包括N x M個突觸。在實施例中,每個突觸可具有描述兩個神經元之間的連接強度之可訓練的權重參數(W)。
在實施例中,輸入神經元訊號(Ain)及輸出神經元訊號(Aout)之間的關係式可利用以下方程式之啟動函數(activation function)描述:Aout=f(W x Ain+Bias).........(1)其中,Ain及Aout係分別地表示突觸層之輸入訊號,及來自突觸層的輸出訊號之矩陣,W係表示突觸層之權重的矩陣,以及Bias係表示用於Aout之偏移訊號(bias signals)的矩陣。在實施例中,W及Bias為可訓練的參數,且儲存在邏輯友善(logic friendly)非揮發性記憶體(NVM)中。舉例來說,訓練/機器學習過程可與已知資料一起使用,以決定W及Bias。在實施例中,函數f可以是非線性函數,像是sigmoid、tanh、ReLU及leaky ReLU等等。在實施例中,當(W x Ain+Bias)係大於某臨界值,Aout可被啟動。
舉例來說,在方程式(1)中描述的關係式可用於說明具有兩個神經元之神經元層110、突觸層120及具有三個神經元之神經元層130。在此示例中,Ain表示來自神經元層110之輸出訊號可表示成2列乘1行的矩陣,Aout表示來自突觸層120之輸出訊號可表示成3列乘1行的矩陣,W表示突觸層120之權重可表示成具有六個權重值之3列乘2行的矩陣,以及Bias表示增加至神經元層130之偏差值可表示成3列乘1行的矩陣。在方程式(1)中施加至(W x Ain+Bias)之每個元 素的非線性函數f,可決定Aout之每個元素的最終值。作為另一個示例,神經元陣列層110可從感測器接收輸入訊號,且神經元陣列層190可表示響應訊號。
在實施例中,在神經網路100中可以有許多個神經元及突觸,且在方程式(1)中的矩陣乘法及加法可能是消耗大量計算資源的程序。在常規記憶體中處理(processing-in-memory)的計算方式中,計算裝置使用類比電值(analog electrical value)在NVM單元陣列之內執行矩陣乘法,而不是使用數位邏輯(digital logic)和運算構件(arithmetic component)。這些常規設計旨在藉由減少CMOS邏輯與NVM構件之間的通訊,以降低計算負載及降低功率需求。然而,這些常規途徑,因為在大型NVM單元陣列中,因為電流輸入訊號路徑上具有大寄生電阻值,因此傳送至每個突觸上的電流輸入訊號將遭受巨大的變化。而且,在大型的陣列中通過半選擇單元(half-selected cells)的漏電流(sneak current)會改變其編程的電阻值,造成不預期的編程擾動及神經網路計算精確度的降低。
與常規途徑不同,在實施例中,節能的神經網路可在具有差分架構(differential architecture)之邏輯友善(logic friendly)的非揮發突觸的基礎上實現,其差分架構可包含選擇電晶體及邏輯友善的NVM。在實施例中,全差分突觸架構(fully differential synapse architecture)可作為乘法器,而擴展突觸電路的操作範圍。與常規架構相比,在實施例中,些微的乘法誤差可有益於補償訓練的權重參數之量化雜訊的某些位準。
如以下的詳細討論,在實施例中,在突觸層120、140、160及180中輸入訊號至每個突觸可以被導向到突觸的選擇電晶體之閘極端子,以抑制乘法雜訊。在實施例中,乘法器電流可近似成閘極端子電壓乘以可變電阻器或NVM之電阻位準。
第2圖繪示根據本揭露之實施例之突觸陣列200示意圖。如圖所示,突觸陣列200可包括佈置成列及行的非揮發性突觸210、分別地電性耦合至行選擇電晶體263(column selection transistors)的正輸出電流線266(Bit Lines)、分別地電性耦合至行選擇電晶體268的負輸出電流線267(Bit Line Bar lines)。在實施例中,行選擇電晶體263之汲極端子可電性耦合至感測電路250之正電流連接埠241(positive current port),以及行選擇電晶體268之汲極端子可電性耦合至感測電路250之負電流連接埠242。
在實施例中,每個非揮發性突觸210可以儲存一個正權重值及一個負權重值。在實施例中,每個非揮發性突觸210可電性耦合至:訊號線264(或者,等效參考訊號線)(例如,SL1),以接收參考電壓輸入201;字元線265(word line)(或者,等效地,輸入訊號線)(例如,WL1),以接收訊號電壓輸入202;正輸出線266(例如,BL1),以輸出一個正電流輸出203;及負輸出線267(例如,BLB1),以輸出一個負電流輸出204。
在實施例中,訊號電壓輸入202及參考電壓輸入201之每個可以分別地與正及負權重值關聯,且正電流輸出203可以與正權重值關聯,並且負電流輸出204可以與負權重值關聯。
在實施例中,在每個非揮發性突觸210中儲存的正(或負)權重值可以表示為可變電阻值之倒數,且訊號電壓輸入202及參考電壓輸入值201可以是電壓值。在實施例中,正電流輸出203之值可以是正權重值乘以訊號電壓輸入202之乘積的結果,且負電流輸出204之值可以是負權重值乘以訊號電壓輸入202之乘積的結果。
如第2圖中所示,非揮發性突觸陣列200之每列可共享一個參考電壓線(SL,264)及一個訊號電壓線(WL,265),每個SL可以在對應的列中提供參考電壓輸入201至非揮發性突觸,且每個WL可以在對應的列中提供訊號電壓輸入202至非揮發性突觸,使得在一個列中的非揮發性突觸接收實質上相同的訊號電壓輸入及相同的參考電壓輸入。
如以上討論,非揮發性突觸陣列200之每行可共享一個正輸出電流線266(BL)及一個負輸出電流線267(BL-Bar),亦即,行的突觸的每個正電流輸出203可藉由一個對應的BL線266收集,且行的突觸的每個負電流輸出204可藉由一個對應的BL-bar線267收集。因此,在BL線266上的電流可以是來自行的突觸之正電輸出電流203的總和。相同地,在實施例中,在BL-bar線267上的電流值可以是來自行的突觸之負電輸出電流204的總和。
在實施例中,每個正輸出電流線266(BL)可電性耦合至一個對應的行選擇電晶體263之源極端子,且每個負輸出電流線267(BL-Bar)可電性耦合至一個對應的行選擇電晶體268之源極端子。在實施例中,一對BL線263及BL-Bar線268可在閘極端子從外部行選擇電路(在第2圖中未示出)接收相同的行選擇訊號。在實施例中,來自行選擇電晶體263之汲極端子的線可以電性耦合至感測電路250之正電流輸入241。在實施例中,來自行選擇電晶體268之汲極端子的線可以電性耦合至負電流輸入242。
在實施例中,正電流連接埠241之電流值(IBL)261可以是在正輸出電流BL 266上的值,其在它的對應的行選擇電晶體263上接收行選擇訊號。同樣地,負電流輸入242之電流值(IBL-bar)262可以是在它的對應的行選擇電晶體268上接收行選擇訊號之負輸出電流線BL-Bar 267。
在實施例中,突觸210之一個或多個列在WLs 265上可具有固定的輸入訊號電壓,且突觸在這些列上可儲存用於其行之偏壓值。在實施例中,突觸陣列可在方程式(1)中實施矩陣乘法W x Ain+Bias其中,W可以是突觸陣列,且Ain矩陣表示WL輸入。
在實施例中,每個非揮發性突觸210可具有儲存負及正權重的兩個電路(或等效單元)。在實施例中,如以上討論,權重值可分別地藉由可變電阻之倒數值1/Rn=W_neg及1/Rp=W_pos表示。在陣列200中之突觸的每列可接收輸入訊號作為電壓Ain。作為輸入訊號之響應,在陣列200中之每個突觸可產生通過BL(例如,BL0266)的正輸出電流及通過BLB(例如,267)的負輸出電流,其中正輸出電流BLc之值可以表示成BLc=Ain x W_pos,且負輸出電流BLBc可以表示成BLBc=Ain x W_neg。
在實施例中,權重值W,對於神經網路100之每個突觸層可以在分離的訓練階段(training phase)中決定(計算及調整)。然後,輸入訊號Ain,在推論階段(inference phase)期間可施加至神經網路100,其中預定(pre-determined)權重可用於產生輸出值。在實施例中,在訓練階段決定的權重值,在推論階段可以不改變。
在實施例中,如以上討論,BL(例如,BL1)可以電性耦合至突觸陣列200之在行中的突觸之輸出線的全部,且BL-bar線(例如,BLB1)可電性耦合至突觸陣列200之突觸的輸出線之全部。如此的配置可以使得在每個BL 266(或BLB 267)上的電流值,係在突觸陣列200中的對應行之單獨計算的電流值之總和。在實施例中,在BLn線及BLBn上的輸出電流,可表示成: BLn=Σ(W_pos-row x Ain-row),用於N行之列............(2a)
BLBn=Σ(W_negs-row x Ain-row),用於N行之列.........(2b)
在實施例中,陣列200之一個或多個列可具有固定的輸入訊號電壓,且在這些列上的突觸可儲存用於其行之偏壓值。在這些情形中,在BLn及BLBn上的總電流可以表示成:BLn=Σ(W_pos-row x Ain-row)+bias_pos............(3a)
BLBn=Σ(W_negs-row x Ain-row)+bias_neg.........(3b)
在實施例中,在感測電路250中,來自突觸陣列之電流輸入訊號(Isig=IBL 261或IBLB 262)可以使用電容跨阻抗放大器(Capacitive Trans Impedance Amplifier,CTIA)轉換成電壓訊號(Vsig),且使用類比數位轉換器(Analog Digital Converter,ADC)進一步處理以產生數位訊號。在實施例中,ADC可以具有使用偏移消除行比較器(offset cancelling column comparator)及計數器(Counter)的單斜率行(single-slope column)ADC架構。相比其他的ADC架構,像是管道式(pipelined)或逐次逼近(successive approximation)ADCs,此設計可以使用最小面積及功率消耗。
在實施例中,在神經網路100中的每個突觸層(例如,120)可具有電性耦合至BL266及BLB267之電構件(electrical component)(在第2圖中未示出),且電性處理在BL及BLB線上的輸出電流。舉例來說,電構件可提供差分感測(differential sensing),轉換輸出電流訊號成電壓訊號,進一步轉換成數位訊號,並且在累加器(accumulator)中加總數位訊號。在另一個示例中,電構件可對累加的值執行其他各種處理操作,像是標準化(normalization)及啟動(activation),從而 實施用於方程式(1)之Aout的啟動函數。在實施例中,最終Aout可儲存在資料緩衝器,且用來產生在神經網路100中的下一個神經陣列層的輸入訊號。
應注意的是,在實施例中,單獨的電路(在第2圖中未示出)可包括在神經網路100中,以執行輔助功能,像是:(1)路由器/控制器,其映射神經網路100之邏輯神經元突觸結構至對映的突觸陣列200之實體位址,(2)驅動電路,其驅動輸入訊號至配置的突觸之適當的列,(3)選擇電路,其藉由共用大於一行突觸的感測電路提供行選擇,(4)電壓產生器,其產生用於選擇突觸之參考電壓,以及(5)儲存器,其儲存用於路由器控制器及感測電路250之配置。
第3圖繪示根據本揭露之實施例之突觸300示意圖。在實施例中,突觸300可當作在第2圖中的突觸210。如圖所示,突觸300可包括一對輸入電晶體311及312,以及一對非揮發性電阻變化元件R_p 313及R_n 314(下文,術語「非揮發性電阻變化元件」及「電阻器」係互換使用)。換句話說,突觸300可具有一對1T-1R(一個電晶體一個電阻器)結構。在實施例中,電阻器R_p 313及R_n 314可以是邏輯友善非揮發性電阻變化元件。在實施例中,突觸300可以被認為具有兩個單元332及334,其每個單元可具有一個輸入電晶體311(或312)及一個電阻器R_p 312(或R_n 314)。
在實施例中,邏輯友善非揮發性電阻變化元件R_p 313(或R_n 314)可與突觸300可記憶/儲存的正(或負)權重參數關聯。在實施例中,每個電阻器可電性耦合至輸入電晶體(例如,311)之源極端子,且參考訊號線264可施加參考訊號至電阻器。在實施例中,字元線265(WL)可施加輸入訊號電壓至輸入電晶體(例如,311)之閘極端子。
在實施例中,電阻值R(=R_p或R_n)在訓練階段中可編程至電阻變化元件中。當突觸輸入訊號係施加在WL 265上,突觸輸出電流可藉由從先前的神經元之輸入值Ain近似權重(藉由1/R表示)之乘法,其Ain可以藉由在WL 265上的電壓表示。
在實施例中,儲存在突觸陣列200中之神經網路參數可具有接近相似數量的正及負權重參數。在陣列200中未使用的電阻元件可編程至具有高於預設值之電阻值。通過每個未使用的電阻元件之電流實質上為零,使得單元之輸出電流實質上不增加在單元之BL(或BLB)上的輸出電流。因此,未使用的電阻元件之影響在計算上係被最小化,且功率消耗係降低。訓練的權重參數可以被量化,且編程至電阻變化元件而神經網路計算之精確度不會有大幅的降低。當在訓練階段中編程電阻器R_p 313(或R_n 314)之電阻值R,且被調整的(scaled)突觸輸入訊號WLs係通過WL 265而施加,在BL 266(或BLB 267)上之突觸輸出電流IC可藉由方程式(4)及(5)描述:dIC/dWL=~gm/(1+gm * R)=~1/R(當R係遠大於1/gm).........(4)其中,gm係輸入電晶體之電導,以及IC=~WL/R=~w Ain(其中w=1/R,Ain=WL).........(5)其中w及Ain可近似地產生其乘法結果IC。
如方程式(5)中所示,輸出電流IC可近似輸入訊號(輸入電壓Ain)乘以權重(w)之乘積。不同於常規系統,此方程式(5)之邏輯乘法運算,其發生在突觸300中,不需要複雜的數位邏輯閘之使用,顯著降低突觸結構之複雜度及計算資源的使用。
在實施例中,輸入訊號Ain可以是從先前的神經元(如在第1圖中所示)之輸出訊號,且驅動輸入電晶體311(或312)之閘極。由於沒有靜態導通電流至選擇電晶體之閘極,驅動輸入訊號Ain至閘極可最小化在大的突觸陣列中之寄生電阻產生的雜訊。相反的,在常規系統中,輸入訊號係驅動至突觸之選擇器或電阻變化元件,因為操作期間在大陣列中之大的寄生電阻及靜態電流,導致其電流輸入訊號至每個突觸上具有大的變化。
在常規系統中,當編程電阻變化元件時,在大陣列中,流經半選擇單元的潛行電流(sneak current)可能會改變先前編程的電阻值,造成不期望的編程擾動。相反的,在實施例中,輸入電晶體311(或312)可允許編程脈衝在大陣列中只被驅動至選擇的電阻器313(或314)。因此,在實施例中,未選擇的突觸不會干擾選擇的突觸之編程,其選擇的突觸藉由施加適合的偏壓條件至BL(或BLB)及SL節點可以被編程。
作為示例而非限制,突觸陣列200可位在突觸層120中,來自在神經元陣列層110中之先前的神經元(例如,112a)之輸出訊號可輸入至突觸陣列200之突觸300,且來自突觸300之BL 266及BLB 267的輸出訊號可輸入至在神經元陣列層130中的下一個神經元(例如,132a~132m)之一個或多個。
在實施例中,電阻器313(或314)可利用各種電路(或記憶體)實施,像是非揮發性MRAM、RRAM、或PRAM或單一多晶嵌入式快閃記憶體(single-poly embedded flash memory),其電路可編程,以記憶(或儲存)藉由電阻值之倒數表示的關聯參數。應注意的是,在實施例中,乘法運算可以以類比值的形式在突觸內完成,不使用數位邏輯及運算電路。
第4圖繪示根據本揭露之實施例之另一個突觸400示意圖。在實施例中,突觸400可表示在第3圖中之電阻器313及314的例示性實施方式。換句話說,在實施例中,電阻器313可藉由在第4圖中的虛線方塊452中的構件實施。
如在第4圖中所示,突觸400包括一對邏輯相容(logic compatible)的嵌入式快閃記憶單元(memory cell)432及434,在快閃記憶單元中的浮動閘極節點FG_p及FG_n可分別地與突觸400記憶/儲存之正及負權重參數關聯。
在實施例中,在WL420上的突觸輸入訊號可在兩個分支之間共用,其分支在BL406及BLB407上可繪製差分突觸輸出電流(IBL及IBLB)。在實施例中,編程字元線418(或者,簡稱編程線PWL)、寫入字元線416(或者,簡稱寫入線WWL)及抹除字元線414(或者,簡稱抹除線EWL)可用於提供附加的控制訊號,其附加的控制訊號用在邏輯相容的嵌入式快閃記憶單元432及434之編程、寫入及抹除操作。
在實施例中,記憶單元432及434可包含邏輯電晶體,而毋須標準邏輯運作流程之外任何的額外流程。在實施例中,可以將直接地連接至PWL 418之耦合電晶體422(及423)增加尺寸(upsized),以提高浮動閘極節點(FG_p及FG_n)與透過PWL 418提供的控制訊號之耦合程度。在實施例中,直接地耦合至PWL 418之耦合電晶體422(或423)可以相對地大於寫入電晶體424(或425)。利用高編程電壓驅動PWL 418及WWL 416,記憶單元432(或434)可以被選擇而藉由注入電子至FG_p被編程,且同時施加0伏特至BL 406(或BLB 407),反之未被選擇的記憶單元434(或432),可以藉由施加VDD至BLB 407(或BL 406)及施加VDD至WL 420關閉未被選擇的記憶單元434(或432)之選擇電晶體,從 而被禁止編程(program-inhibited)。下文,術語選擇電晶體意旨具有電性耦合至BL 406或BLB 407之閘極的電晶體。
在實施例中,利用高抹除電壓只驅動WWL 416,被選擇的WL可藉由從FG逐出電子而被抹除。在編程及抹除操作期間,未選擇的WLs不被任何高於VDD的電壓所驅動,因此,在未被選擇的WLs中沒有擾動。在實施例中,FG節點電壓可以是一個在PWL 418、WWL 416上之訊號,以及在FG節點中之電子的儲存數量的函數。電性耦合至FG之讀取電晶體(例如,462)之電導,可藉由控制在PWL 418及WWL 416之電壓及儲存在FG節點之電荷加以編程在實施例中,當嵌入式快閃單元432(或434)之臨界電壓被編程,且當被調整(scaled)的突觸輸入訊號係透過WL 420提供,可以有一定範圍的臨界電壓,使得方程式(5)可以近似地滿足,其單元輸出電流(=IBL及IBLB)係正比於被編程的權重參數及輸入訊號。
在實施例中,神經網路100對隨機誤差或權重參數的小變化可以有穩健性。在實施例中,當預訓練(pre-trained)權重參數W在神經網路100之計算期間被量化,只要乘法誤差係在一定範圍之內,可以利用從方程式(5)之輕微的乘法誤差,將神經網路的性能或推論的精確度最佳化。進一步的,藉由本發明提出的近似乘法器之輕微的乘法誤差,可以補償神經網路100之經訓練的權重參數之量化雜訊。然而,為了避免在神經網路之重複的訓練之後,由大的單元臨界電壓偏移造成之嚴重的記憶單元保存誤差,一個蓄意的(intentional)自我修復(self-healing)電流可以透過WWL 416施加,因為其蓄意的自我修復電流可以治癒電性耦合至嵌入式快閃記憶單元432及434之WWL 416的元件之損壞的 閘極氧化物。在實施例中,不需要在每次的訓練或推論中施加自我修復電流,因此在性能或功率消耗上具有最小的影響。
在實施例中,每個記憶單元(例如,432)可包括耦合電晶體422、寫入電晶體424及上部(或第一)選擇電晶體460、讀取電晶體462及下部選擇電晶體464。應注意的是在突觸400中之單一多晶嵌入式快閃記憶體可以用來當作電阻變化元件,且電性耦合至快閃記憶單元之浮動閘極(FG)的讀取電晶體(例如,462)之電導,可以當作電阻變化元件。在實施例中,讀取電晶體(例如,462)之電導可以藉由他們分別的FG節點FG_p或FG_n之臨界電壓VTH決定。FG節點FG_p或FG_n之VTH首先可以使用平衡步進脈衝編程方法(balanced step pulse programming method)粗略地編程,隨後的具有降低的電壓之恆定脈衝編程步驟可以微調VTH值,以精確地編程在突觸400中儲存的權重值。編程步驟係結合第10A圖至第10B圖描述。
第5圖繪示根據本揭露之實施例之一個突觸500示意圖。在實施例中,突觸500可用來當作在第2圖中的突觸210。如圖所示,突觸500可具有三對1T-1Rs,其中三個字元線WLa、WLb及WLc可電性耦合至六個電晶體之閘極。應注意的是,突觸500可具有其他適合數量的輸入電晶體與電阻及電性耦合至輸入電晶體的字元線。舉例來說,在實施例中,突觸500可以被修改,使得字元線WLa及在1T-1R單元550及551中的構件可以被刪除,亦即,每個單元可具有兩對1T-1Rs。在另一個示例中,在實施例中,突觸500可以被修改,使得每個單元可具有四對1T-1Rs及四個字元線WLs(輸入訊號線)。
在實施例中,突觸500之SL、BL及BLB可具有與突觸300中的SL、BL及BLB相同功能。突觸300及突觸500之間的差異係突觸500可從先前 的神經元透過三個字元線WLa、WLb及WLc接收輸入訊號。更具體地,來自每個WL的訊號可以驅動至對應的輸入電晶體之閘極端子。
應注意的是,每個突觸500可以電性耦合至三個字元線WLa、WLb及WLc,而在第2圖中的每個突觸210係表示耦合至一個字元線265。因此,應注意在第2圖中的每個字元線265共同地意指電性耦合至包括一個或多個輸入電晶體之突觸的一個或多個字元線。
在實施例中,突觸500可以被認為具有兩個單元532及534,其中每個單元可以具有三對1T-1R(一個電晶體,一個電阻),且每個1T-1R對可以電性耦合至WL及SL。
應注意的是,在突觸500中的每個電阻器可以藉由各種電路(或記憶體)實施,像是非揮發性MRAM、RRAM、或PRAM或單一多晶嵌入式快閃記憶體,其電路可以被編程,以記憶(儲存)藉由電阻表示的一個關聯參數。在實施例中,在突觸500中的每個電阻器可以藉由在第4圖中之虛線方塊452中的構件實施,其中每個突觸500可以用與突觸400相似的方式電性連接至PWL、WWL及EWL。
第6圖繪示根據本揭露之實施例之另一個突觸600示意圖。在實施例中,突觸600可以用來當作在第2圖中的突觸210。如圖所示,每個單元632及634可包括兩個電晶體(例如,602及606)及一個電阻器(例如,613),且電性耦合至兩個輸入訊號(或字元)線、字元線(WL)及反字元線(word line bar,WLB)及一個參考訊號線SL。應注意的是,每個突觸600可以電性耦合至兩個字元線,而在第2圖中的每個突觸210係表示耦合至一個字元線265。因此,如以上討論, 在第2圖中的每個字元線265共同地意指電性耦合至包括一個或多個輸入電晶體之突觸的一個或多個字元線。
在實施例中,突觸電阻器R_p 613及R_n 614、參考訊號線SL、輸出電流線BL及BLB可具有與在第3圖中的突觸230之對應的構件相同之功能。舉例來說,輸入選擇電晶體602及604,其係電性耦合至WL及各自的電阻器R_p 613及R_n 614,可以分別地對應至輸入選擇電晶體211及212。
與在第3圖中的突觸300比較,突觸600可以電性耦合至另一個輸入訊號線WLB,其中WLB可提供相對於WL之差分輸入訊號電壓。在實施例中,額外的輸入選擇電晶體606及608可以透過他們的閘極端子電性耦合至WLB。在實施例中,輸入選擇電晶體606及608之源極端子可以分別地電性耦合至電阻器R_p 613及R_n 614。在實施例中,電晶體602之汲極端子可以電性耦合至BL,且電晶體606之汲極端子可以電性耦合至BLB。同樣地,電晶體604之汲極端子可以電性耦合至BLB,且電晶體608之汲極端子可以電性耦合至BL。
在實施例中,突觸600可以接收差分輸入訊號,其中WL提供正輸入訊號電壓a_pos(對共模參考(common mode reference)),且WLB提供負輸入訊號電壓a_neg(對共模參考)。在實施例中,R_p 613可儲存一個正權重w_pos,且R_n 614可儲存一個負權重w_neg。因此,在實施例中,在BL上之輸出訊號電流(BLo)可以是來自兩個單元532及534的兩個輸出訊號之總和:BLo=a_pos x w_pos+a_neg x w_neg.........(6)同樣地,在BLB上的輸出訊號電流(BLBo)可以是來自兩個單元532及534的兩個輸出訊號之總和: BLBo=a_pos x w_neg+a_neg x w_pos.........(7)
因此,如圖所示,某些實施例在WL及WLB上利用差分訊號,相比在第3圖中描述的在突觸300之WL上利用單端傳訊(single-ended signaling)之其他實施例,在BL及BLB上可具有較大範圍的輸出電流。此外,如描述的利用差分輸入傳訊之實施例,可以抑制電晶體偏移雜訊(offset noise)及來自供應電壓或溫度的變化之共模雜訊(common mode noise)。
應注意的是,在突觸600中的每個電阻器可以藉由各種電路(或記憶體)實施,像是非揮發性MRAM、RRAM、或PRAM或單一多晶嵌入式快閃記憶體,其電路可以被編程,以記憶(儲存)一個關聯參數。第7圖繪示根據本揭露之實施例之另一個突觸700示意圖。在實施例中,突觸700可以表示在第6圖中之電阻器613及614之例示性實施方式。換句話說,在虛線方塊752可以對應至在第6圖中的電阻器613。
如在第7圖中所示,突觸700可包括兩個單元732及734。在實施例中,單元432(或734)可以相似於突觸400之單元432(或434),其差異在於單元732(或734)可以包括附加的上部選擇電晶體720(或722)及附加的輸入訊號線WLB。在實施例中,電晶體720(或722)之閘極可以電性耦合至輸入訊號線WLB,且電晶體720(或722)之汲極可以電性耦合至輸出訊號線BLB。
第8圖繪示根據本揭露之實施例之另一個突觸800示意圖。在實施例中,突觸800可以用來當作在第2圖中的突觸210。如圖所示,突觸800可包括兩個單元(cell)832極834,其中每個單元可以包括三個電阻器及六個電晶體。突觸800可以具有2T-1R結構,亦即,每個單元可包括三組2T-1R單元(unit)802。突觸800可以電性耦合至六個輸入訊號線:三個字元線WLa、WLb及WLc,以 及三個反字元線WLaB、WLbB及WLcB。應注意的是,突觸800之每個單元可包括其他適合數量的2T-1R單元802。在實施例中,每對WL及WLB(例如,WLa及WLaB)可以提供差分輸入訊號至單元832及834。
在實施例中,參考訊號線SL可以提供參考訊號至單元832及834。在實施例中,每個輸出訊號線BL及BLB,可以收集來自在單元832中的三個電晶體之汲極端子及在單元834中的三個電晶體之汲極端子的輸出訊號。在實施例中,突觸800可以接收差分輸入訊號,其中每個WLi提供一個正輸入訊號電壓a_pos_i,且每個WLBj提供一個負輸入訊號電壓a_neg_j。在實施例中,每個R_p可儲存一個正權重w_pos_i,且每個R_n可以儲存一個負權重w_neg_j。在實施例中,在BL上的輸出訊號電流(BLo)可以是來自兩個單元832及834之六個輸出訊號之總和:BLo=Σ(a_pos_i x w_pos_i)+Σ(a_neg_j x w_neg_j).........(8)同樣地,在BLB上的輸出訊號電流(BLBo)可以是來自兩個單元832及834之六個輸出訊號之總和:BLBo=Σ(a_pos_i x w_neg_j)+Σ(a_neg_j x w_pos_i).........(9)
應注意的是,在突觸800中的每個電阻器可以藉由各種電路(或記憶體)實施,像是非揮發性MRAM、RRAM、或PRAM或單一多晶嵌入式快閃記憶體,其電路可以被編程,以記憶(儲存)一個關聯參數。在實施例中,在突觸800中的每個電阻器可以藉由在第7圖中之虛線方塊752中的構件實施,其中每個突觸800可以用與突觸700相似的方式電性連接至PWL、WWL及EWL。
通常,藉由注入電子至浮動閘極可以改變讀取電晶體(例如,462)之電導。第9A圖至第9B圖繪示根據實施例(欄位912)之用於編程浮動閘極節點 (欄位910及914)之臨界電壓(VTH)的兩個常規方法之比較方法。第9A圖表示表格900,其在浮動閘極單元(432)之編程操作期間,包括施加至端子PWL及WWL的訊號之電壓高度及寬度,因此注入電子至浮動閘極。如圖所示,表格900包括三個欄位910、912及914,其分別地對應至用於施加電壓訊號的三個途徑。
欄位910表示常規的增量步進脈衝編程(incremental step pulse programming)方法,其中每個後續的編程步驟藉由具有固定脈衝寬度(T_pulse)的差量△(amount delta),提高來自先前步驟的編程電壓。欄位912表示根據實施例之平衡步進脈衝編程方法,相比在欄位910中的編程方法,其中第一步驟藉由某些設計參數(m)而具有較長的編程脈衝寬度。欄位914表示常規的固定脈衝編程方法,其中每個步驟具有相同編程電壓及編程脈衝寬度。
第9B圖表示根據在第9A圖中的三個方法之浮動閘極單元(432或434)之VTH 950的曲線。在第9B圖中,三個曲線960、962及964分別地對應至三個方法910、912及914,且在第9B圖中的每個曲線表示對應在第9A圖中之每個步驟之後的浮動閘極單元(432或434)之VTH。
依據曲線950,根據本揭露之實施例的平衡步進脈衝編程方法在這三個方法之中可以是較佳的。每個步驟藉由近似相同的差量△提高VTH,因此VTH可以精確地編程,造成比其他方法窄的VTH變化。
第10A圖至第10B圖繪示根據本揭露之實施例之用於浮動閘極單元(432或434)之臨界電壓(VTH)的另一個編程方法。第10A圖表示表格1000,其在浮動閘極單元(432)之編程操作期間,包括施加至端子PWL及WWL的訊號之電壓高度及寬度,因此注入電子至浮動閘極。第10B圖表示在第10B圖中的每個步驟之儲存在浮動閘極單元(432或434)的VTH之曲線1050。
如圖所示,對於幾個初始步驟(此處,直至步驟4),平衡步進脈衝編程方法(也結合第9A圖及第9B圖提及)可以用於粗略地編程單元之VTH至不超過目標VTH的一個值。在某些實施例中,目標VTH可以具有可接受的餘裕而達成至這些初始步驟(直至步驟4)。在某些其他的實施例中,更精密的編程至目標VTH為必須的。在這些實施例中,目前的VTH及目標VTH之間的差異可以少於在每個步驟(在第10B圖中的差量△)之VTH的允許增量(available increment)。之後,係應用隨後的固定脈衝編程步驟進一步精確地編程VTH。
在實施例中,隨後的固定脈衝編程步驟使用降低的編程脈衝高度(在第10A圖中的α),但是增加的脈衝寬度(T_pulse * n,n係不少於1.0),以設定VTH至目標。最後,在第10A圖至第10B圖中的編程方案可以控制最終的編程的單元臨界電壓在低於從目標VTH的晶載(on-chip)參考電壓產生之允許的電壓階躍(voltage step,=△)。
第11圖繪示根據本揭露之實施例之用於編程浮動閘極節點之臨界電壓(VTH)的說明性程序的流程圖1100。在步驟1102,具有第一高度(例如,VPGM)及第一寬度(T_pulse * m,m係不少於1.0)之電壓脈衝(例如,在第10A圖中的步驟1)可以施加至浮動閘極單元(432或434)的PWL及WWL端子,因此注入電子至浮動閘極。在步驟1104,第一序列電壓脈衝(像是在第10A圖中步驟2至4)可以施加至PWL及WWL端子,而每個脈衝之高度從先前的脈衝提高一個預設值(例如,△)。
在步驟1106,可決定在施加第一序列脈衝之後是否達到目標VTH。假設判定的答案係肯定的,則流程進行至步驟1108。在步驟1108,其流程停止。否則,在步驟1110,第二序列電壓脈衝(像是在第10A圖中的步驟5至19)可以 施加至PWL及WWL端子。在實施例中,第二序列脈衝之每個脈衝具有不窄於在先前步驟中的脈衝(T_pulse)之寬度(T-pulse * n,n係不少於1.0)。在實施例中,第二序列脈衝具有不低於第一高度(VPGM-α)之高度,且第二序列脈衝具有不窄於第二寬度(T_pulse)之寬度(T_pulse * n)。在實施例中,舉例來說,其值可以是m=9.0、n=5.0、α=0.8V、△=0.1V及VPGM=7.2V。
應注意的是,在第9A圖至第11圖中用於浮動閘極節點之VTH的編程方法可以應用至單元732及734。更具體地,與在第9A圖中的欄位912及/或結合第10A圖至第10B圖描述之方法相關聯的方法可以用於編程單元732及734之VTH。
在第3圖至第8圖中的每個突觸透過兩個輸出訊號線BL及BLB可以產生兩個輸出訊號,其中差分訊號技術可以用於產生兩個輸出訊號。差分訊號可以降低電晶體偏移之靈敏度,及來自供應電壓及溫度變化的共模雜訊,其在突觸或元件之習知技術設計中,對於權重加總計算可以引入嚴重誤差至輸出電流。
第12A圖至第12C圖繪示根據本揭露之實施例之差分訊號。如在第12A圖中所示,IBL線1212及IBL-Bar線1214分別地透過突觸之輸出訊號線BL(例如,106)及BLB(例如,107)可以是輸出電流。舉例來說,依據R_p及R_n之電阻值,每個輸出電流可以從最小值0.5(任意單位,A.U.)變動至最大值1.5(A.U.)。在實施例中,IBL線1212可以是第一電流訊號1224及偏移電流訊號1220之總和,而IBL-Bar線1214可以是偏移電流1220及第二電流訊號1226之總和。如圖所示,偏移電流1220可以包括電晶體偏移及共模雜訊。
如在第12B圖中所示,藉由應用差分訊號技術在兩個輸出訊號線1212及1214上,偏移電流1220可以被消除,且可以獲得輸出電流訊號1224及1226之值。舉例來說,輸出電流訊號1224及1226可以從0.0(A.U.)變動至1.0(A.U.)。
進一步的,在實施例中,第一電流訊號1224可以具有與第二電流訊號1226相反的極性。藉由使用差分訊號在兩個輸出電流上,如在第12C圖中所示,兩個訊號IBL-IBL-Bar 1216之間的差異,可以從最小值-1.0變動至最大值+1.0,亦即,結合的訊號之範圍可以是單一輸出之範圍的兩倍大。
第13圖繪示根據本揭露之實施例之包括神經網路之晶片1300之示意圖。如圖所示,晶片1300可具有系統單晶片(system-on-chip)結構,且包括:非揮發性神經網路1316、用於控制在晶片1300上之元件的中央處理器(CPU)1312、用於提供輸入訊號至非揮發性神經網路1316之感測器1314及記憶體1318。在實施例中,神經網路1316可與在第1圖中的神經網路100相同。在實施例中,晶片1300可以是矽晶片,且構件1312至1318可以整合在晶片1300上。
第14圖繪示根據本揭露之實施例之操作非揮發性突觸陣列之系統1400之示意圖。如圖所示,系統1400可包括:非揮發性突觸陣列1410、參考產生器1402、配置儲存器1404、用於在非揮發性突觸陣列1410中的突觸選擇一列之列驅動器1406、路由器/控制器1408、用於在非揮發性突觸陣列1410中的突觸選擇一行之行選擇器1412、感測電路1414、用於收集來自非揮發性突觸陣列1410之輸出值的累加器1416、標準化/啟動/池化(normalization/activation/pooling)功能區塊1418及用於緩衝來自非揮發性突觸陣列1410之資料的資料緩 衝器1420。在實施例中,非揮發性突觸陣列1410可以與非揮發性突觸陣列200相同,且感測電路1414可以與在第2圖中的感測電路250相同。
參考產生器1402提供由列驅動器1406使用的輸入訊號線(例如,在第2圖至第8圖中的WL)及參考訊號(例如,在第2圖至第8圖中的SL)所需的電壓位準。配置儲存器1404儲存由路由器/控制器1408使用的有限狀態機(finite state machine)之資料,權重參數之實體對映至在突觸陣列200之內的突觸位置,以及其他用於感測電路之配置參數。在實施例中,配置儲存器可以實現成晶載非揮發性記憶體(on-chip non-volatile memory)。路由器/控制器1408實現為有限狀態機,以藉由列驅動器1406控制列選擇序列。感測電路1414包括電壓調節器及類比數位轉換器,以轉換來自選擇的行之輸出電流訊號至電壓訊號,且進一步成為數位值。來自感測電路之結果係在累加器1416中加總。標準化/啟動/池化函數區塊1418在累加器之上執行所需的訊號處理操作。包括多個專屬的DSPs或嵌入式CPU核心以平行執行這些數值運算。
在某些實施例中,神經網路設計可以二值化(binarize)權重及輸入參數之值為1或-1。在這些實施例中,可以修改突觸600,使得交叉耦合閂鎖電路(cross-coupled latch circuit)可以作為一對非揮發性電阻變化元件的代替。第15圖繪示根據本揭露之實施例之另一個突觸1500之示意圖。如圖所示,突觸1500可以包括交叉耦合閂鎖電路1510,其交叉耦合閂鎖電路1510可以包括反相器1514,其輸入端子電性耦合至第二反相器1518的輸出端子,且反之亦然。在實施例中,交叉耦合閂鎖電路可以在S節點上儲存數位訊號,其節點係位於1518之輸出及1514之輸入之間;以及SB節點,其節點係位於1514之輸出及1518之輸入 之間。在實施例中,當S節點具有電訊號值,SB節點可以具有互補訊號值,且因為反相器耦合,反之亦然。
如在第15圖中所示,突觸1500之單元1532及1534之每一個可以包括電性耦合至兩個輸入訊號(或字元)線、字元線(WL)及反字元線(WLB)的兩個輸入選擇電晶體(例如,1502及1506)的閘極端子。輸入選擇電晶體之源極端子可以電性耦合至共用節點,其共用節點進一步電性耦合至交叉耦合閂鎖電路1510之節點。單元1532可以電性耦合至交叉耦合閂鎖電路1510之SB節點,且單元1534係電性耦合至1510之S節點。
在實施例中,電晶體1502之汲極端子可以電性耦合至輸出線BL,且電晶體1506之汲極端子可以電性耦合至輸出線BLB。同樣地,電晶體1504及1508之汲極端子可以分別地電性耦合至BLB及BL。
在實施例中,參考訊號線SL可以電性耦合至交叉耦合閂鎖電路1510之反相器1514及1518的每一個,且參考電壓輸入訊號201可以提供至反相器1514及1518。
應注意的是,交叉耦合閂鎖電路1510可以藉由各種電路(或記憶體)實現,像是非揮發性元件,或者若具有電源(像是電池),可以用揮發性記憶體元件實現。
第16圖繪示在WL及WLB上的輸入電壓值、藉由在S及SB節點上之電壓訊號表示的權重值及藉由在BL及BLB線上之電流值表示的輸出之間的關係之表格。對於在表格中的輸入,(WL=高,WLB=低)可以是1,且(WL=低,WLB=高)可以是-1。對於在表格中的權重,(SB=高,S=低)可以是1,且(SB=低,S=高)可以是-1。對於在表格中的輸入及權重之「低」電壓值係低於「高」電壓 值的電壓值。對於在表格中的輸出,(BL=低,BLB=高)可以是1,且(BL=高,BLB=低)可以是-1。對於在表格中的輸出,「低」電流值係低於「高」電流值的電流值。
在表格中,在BL及BLB上的輸出可以表示輸入(WL,WLB)及權重(SB,S)的乘積,其中1x1=1、1x-1=-1、-1x1=-1及-1x-1=1。因此,在二值化的輸入及權重之間的乘法運算可以產出在算術方法上的正確結果。
第17圖、第18圖及第19圖分別地繪示根據本揭露之實施例之突觸1700、1800及1900的示意圖。如在第17圖中所示,突觸1700可以只包括單元1732,其可以對應至在第6圖中的突觸600中的單元632。類似地,第18圖所示之突觸1800可以只包括單元1832,其對應至在第7圖中所示之突觸700中的單元732。在第19圖中的突觸1900可以只包括單元1932,其可以對應至第8圖的突觸800中的單元832。在突觸1700、1800及1900中,負權重w_neg可以等於零,亦即,負權重可以分別地從突觸600、700及800消除。由於WLB訊號可以提供負輸入訊號至BLB線,BLB線可以被保留。
在實施例中,用於突觸1700及1800之輸出訊號電流BLBo可以是:BLBo=a_neg x w_pos.........(10)同樣地,用於突觸1900之輸出訊號BLBo可以是:BLBo=Σ(a_neg_j x w_pos_i).........(11)
第20圖繪示根據本揭露之實施例之突觸2000之示意圖。如圖所示,突觸2000可以相似於突觸300,只有在單元2032中的正權重之差異,其可以對應至在第3圖中的單元332,該單元可以包括在突觸2000中,且可以消除在第3圖中的單元334及BLB線267。
第21圖繪示根據本揭露之實施例之突觸2100之示意圖。如圖所示,突觸2100可以相似於突觸400,只有一個單元2132之差異,其可以對應至第4圖的單元432,可以使用該單元且可以消除第4圖之單元434及BLB輸出線。
第22圖繪示根據本揭露之實施例之突觸2200之示意圖。如圖所示,突觸2200可以相似於在第5圖中的突觸500,只有單元2232之差異,其對應至第5圖之單元532,可以使用其單元且可以消除第5圖中的單元534及BLB輸出線。
應注意的是,在第17圖至第22圖中的突觸可以佈置成二維陣列格式,如在第2圖中所示,亦即,在第17圖至第22圖中的突觸可以對應至突觸210。
根據本發明,在實施例中的邏輯友善(logic friendly)NVM指的是非揮發性記憶體構件(具有零待機功率(zero-standby power)),其可以用比常規NVM構件,像是分離式閘極快閃記憶體(split-gate flash memory)或EEPROM較少的處理步驟來產生。因為相比於在CPUs或神經網路計算引擎中的邏輯構件,在實施例中的NVM可以只需要一些附加的製程步驟,嵌入實施例中的NVM在與CPU或神經網路引擎相同的晶片上係可行的。相反的,由於製作這些晶片需要過度的附加製程,嵌入常規NVM構件在與CPU或神經網路引擎相同的晶片上係不可行的。
在實施例中使用的邏輯友善NVM之示例包括STT-MRAM、RRAM、PRAM或FeFET元件,其可以只需要遠少於邏輯元件之製程步驟。在實施例中的邏輯友善NVM之另一個示例係單一多晶嵌入式快閃記憶體(single-poly embedded flash memory)。相比於邏輯構件,單一多晶快閃記憶體不需要任何進 一步的製程,且特別適合用於嵌入在與CPU及神經網路引擎相同的晶片上。邏輯友善NVMs,像是NVMs,當電源係關閉時,可以維持儲存的資料。
利用在第23圖中所示的常規神經網路系統,外部NVM晶片2319係分離地附接至藉由系統匯流排2330(system bus)連接的整合各種電路區塊,像是CPU 1312、感測器1314及神經網路計算引擎2320的系統單晶片(system-on-chip,SoC)2310。CPU 1312及感測器1314對應至在第13圖中的相同編號的元件。當系統電源關閉時,神經網路權重參數係儲存在外部NVM晶片2319中。因為系統匯流排2330之性能係受SoC 2310之引腳數限制,存取外部NVM晶片2319係緩慢的。由於外部導線電容,存取外部NVM也消耗大量的電源。此外,當隱私相關的神經網路參數係在SoC 2310及外部NVM 2319之間傳送時,安全性為一個議題。
第24圖繪示根據本發明在第13圖中描述的由SoC 1300及外部神經網路加速器裝置2470組成之用於神經網路的分層系統。在實施例中,晶載非揮發性神經網路模組1316係在SoC 1300之內憑藉高性能系統匯流排2430與CPU 1312、感測器1314及記憶體1318區塊整合。
在實施例中,高性能系統匯流排2430之寬度係不受SoC 1300之引腳數限制。因此,通過高性能系統匯流排2430之通訊係比在第23圖之習知技術設計的系統匯流排2330更快速。外部神經網路加速器裝置2470可以藉由晶片外的互連2480連接,其存取方式可以是本地接線(locally wired)或遠端存取(remotely accessed)。本地接線方法可以包括TSV、3D堆疊、導線接合或憑藉PCB佈線。遠端存取方法可以包括LAN、Wi-Fi及藍芽。外部神經網路加速裝置可以含有自有 的CPU及高密度記憶體(DRAM、快閃記憶體及SCM等等),且可以位於雲端伺服器。
在實施例中,藉由分離全部的神經網路成SoC 1300及外部神經網路加速器裝置2470,可以在SoC 1300之內使用非揮發性神經網路模組1316執行某些關鍵層(critical layer),而使用晶片外的加速器2470可以執行其他剩餘的層。外部神經網路加速器裝置2470可以使用低成本及高密度記憶體,像是3D-NAND。舉例來說,神經網路之早期層(early layer)可以在晶片上處理,且剩餘的層可以利用外部神經網路加速器裝置2470處理。因為只有來自晶載非揮發性神經網路之萃取或編碼特徵係晶片外通訊,且相比在SoC之內沒有神經網路模組的情形,外部通訊的資料量可以降低。來自晶載神經網路的中介結果可以提供低延遲的部分結果,因為用於執行之必要的參數係儲存在晶載非揮發性神經網路1316中,其部分結果對於最終結果之早期預測為有用的。藉由與只有在SoC 1300及外部神經網路加速器裝置2470之間的編碼資訊之晶片外通訊,隱私顧慮係顯著降低。
第25圖繪示根據本發明的SoC 1300a及1300b之多個晶粒(dies)組成的分佈式神經網路系統。在實施例中,SoCs 1300a及1300b係相似於根據本發明在第13圖及第24圖中描述的SoC 1300。晶片外互連2480係相似於第24圖之互連。藉由劃分全部的神經網路成多個SoC裝置,神經網路之計算可以平行的進行,改善性能。舉例來說,某些早期層可以利用一個SoC之晶載神經網路模組處理,而其餘的層可以利用另一個SoC處理。只有來自第一SoC之萃取或編碼特徵係晶片外通訊。來自第一SoC的中介結果可以提供低延遲的部分結果,因為用於執行之必要的參數係儲存在晶載非揮發性神經網路1316之每一個中,其部分結 果對於最終結果之早期預測為有用的。藉由與只有在SoCs 1300a及1300b之間的編碼資訊之晶片外通訊,隱私顧慮係顯著降低。
第26圖繪示根據本發明之系統單晶片,其中邏輯友善NVM 2619係整合至有其他的電路區塊,像是CPU 1312、感測器1314及神經網路計算引擎2320,且憑藉高性能系統匯流排2430連接的SoC 2600中。相同編號的構件表示對應至第23圖的構件。在實施例中藉由整合邏輯友善NVM 2619至有中等(moderate)密度神經網路計算引擎的SoC中,相比於在第23圖中的習知技術設計,能量耗散(energy dissipation)及延遲負載(latency overhead)可以被改善。此外,藉由外部NVM存取帶來的安全性顧慮係降低。實施例之單一邏輯晶片解決方案,對於以邏輯相容的嵌入式快閃記憶體作為特色之IoT應用係有成本效益及吸引力,其嵌入式快閃記憶體安全地儲存神經網路參數。
在實施例中,匯流排寬度係不受晶片之可用的引腳數限制。因此,寬的I/O及低延遲記憶體介面可以用於在邏輯友善NVM及在SoC 2600中的其他區塊之間的通訊。因此,相比於使用外部快閃記憶體的習知技術系統,神經網路計算引擎2320可以從邏輯友善NVM 2619快速地存取資料。
第27圖繪示本發明之神經網路系統,其邏輯友善NVM 2719係整合至在神經網路引擎之內的SoC 2700中。神經網路計算引擎2720係相似於在第26圖中的神經網路計算引擎2620。神經網路計算引擎2720可以不在CPU介入下存取邏輯友善NVM 2719,相比於在第23圖中的習知技術,以改善性能及電源效率。
有第24圖至第27圖中描述的晶載非揮發性神經網路之本發明提供的架構具有各種優點,相比於習知技術,像是低功率消耗及高性能。此外, 在實施例中當個人的使用者資料係用於執行神經網路時,藉由限制晶片外的存取,隱私顧慮係顯著地降低。
在實施例中這些隱私性增強的(privacy-enhanced)神經網路可以用於創造性個人裝置。舉例來說,可以從在實施例中使用晶載非揮發性神經網路之手持教育裝置或智慧型玩具交互地創造個別的新工作、問題或答案。用於憑藉影像或聲音識別來辨識個體而限制晶片外的存取,實施例可以是有用的。特別地,因為網絡必須識別其語音的人數有限,家庭或兒童保育(child-care)裝置可以不需要高度複雜的神經網路模型。然而,這些裝置可能需要高度的個人化及關於隱私性具有嚴格需求。此外,因為用於此種類的應用之關鍵神經網路層可以在沒有任何晶片外的關鍵資訊之通訊下執行,在實施例中的晶載非揮發性神經網路可以改善軍事裝置或網路防火牆之安全性。
在本發明之另一個態樣中,提供的晶載非揮發性神經網路系統藉由在晶片上儲存及計算個人化的資訊,可以用於安全的個人化視覺/運動/聲音識別裝置。舉例來說,由於所有神經網路計算係晶片上的計算,裝置可以識別特定個人的手勢或聲音而不在晶片外傳送任何個人訓練的神經網路參數。這些視覺/運動/聲音識別神經網路裝置可以取代大型的使用者介面裝置(舉例來說,PC的鍵盤或滑鼠,電視的遠端控制器)。舉例來說,鍵盤觸控顯示器可以被神經網路引擎取代,其神經網路引擎可以識別對於每個文字字符之裝置擁有者的手勢。藉由具有儲存在晶載非揮發性神經網路之個人化資訊,只有特定個人可以與其裝置互動。
此外,提供的非揮發性神經網路可以應用至增強其他SoC構建區塊的性能及可靠度,像是CPU、記憶體及感測器。舉例來說,因為電晶體的老 化效應及像是溫度之變化的操作條件,在SoC之壽命期間需要適應性地控制操作電壓及頻率。這些參數之手動調整係神經網路可以最佳化之困難的工作。然而,晶片外之神經網路加速其裝置可能不滿足性能需求,且需要過度的額外功率。對於給定的性能及功率需求,非揮發性神經網路可以用於最佳化其擁有的晶片之其他構件的這些參數。
即使本發明係允許各種修正及替代形式,具體示例因此在圖式中表示,且在本文詳細描述。然而應理解的是,本發明系不限制於這些揭露的特定形式,相反的,本發明涵蓋申請專利範圍之範疇之內的所有修正、等效及替代物。
1312:CPU
1314:感測器
2320:神經網路計算引擎
2430:系統匯流排
2600:系統單晶片
2619:邏輯友善NVM

Claims (15)

  1. 一種非揮發性突觸電路,其包含:一第一輸入訊號線,該第一輸入訊號線用於提供一第一輸入訊號;一參考訊號線,該參考訊號線用於提供一參考訊號;一第一輸出訊號線,該第一輸出訊號線用於承載一第一輸出訊號於其上;以及一單元,該單元用於產生該第一輸出訊號,該單元包括:一第一上部選擇電晶體,該第一上部選擇電晶體具有一閘極,該閘極係電性耦合至該第一輸入訊號線;以及一第一電阻變化元件,該第一電阻變化元件具有以串聯連接至該第一上部選擇電晶體之一端,且另一端電性耦合至該參考訊號線,該第一電阻變化元件之值係可編程的,以改變一輸出訊號之一振幅;其中該單元之該第一上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線。
  2. 如申請專利範圍第1項所述之非揮發性突觸電路,其進一步包含:一編程線,該編程線用於提供一編程訊號;一寫入線,該寫入線用於提供一寫入訊號;以及一抹除線,該抹除線用於提供一抹除訊號;其中該第一電阻變化元件包括: 一耦合電晶體及一寫入電晶體,其佈置成具有一浮動閘極節點,該耦合電晶體電性耦合至該編程線,該寫入電晶體係電性耦合至該寫入線;以及一讀取電晶體及一下部選擇電晶體,其與該第一上部選擇電晶體係串聯佈置,該下部選擇電晶體具有一源極電性耦合至該參考訊號線,以及一閘極電性耦合至該抹除線,該讀取電晶體具有一閘極電性耦合至該浮動閘極節點。
  3. 如申請專利範圍第1項所述之非揮發性突觸電路,其進一步包含:一第二輸入訊號線,該第二輸入訊號線用於提供一第二輸入訊號;其中該單元進一步包括:一第二上部選擇電晶體,該第二上部選擇電晶體具有一閘極,該閘極電性耦合至該第二輸入訊號線;以及一第二電阻變化元件,該第二電阻變化元件具有以串聯連接至該第二上部選擇電晶體之一端,且另一端電性耦合至該參考訊號線,該第二電阻變化元件之值係可編程的,以改變一輸出訊號之一振幅;其中該單元之該第二上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線。
  4. 如申請專利範圍第1項所述之非揮發性突觸電路,其進一步包含: 一第二輸入訊號線,該第二輸入訊號線用於提供一第二輸入訊號;一第二輸出訊號線,該第二輸出訊號線用於提供一第二輸出訊號;其中該單元進一步包括:一第二上部選擇電晶體,該第二上部選擇電晶體具有一閘極,該閘極係電性耦合至該第二輸入訊號線;以及該第二上部選擇電晶體具有一源極,該源極係電性耦合至該第一電阻變化元件,該第一上部選擇電晶體之一源極及該第二上部選擇電晶體之該源極係直接地連接至一第一共用節點;其中該單元之該第二上部選擇電晶體之一汲極係電性耦合至該第二輸出訊號線。
  5. 如申請專利範圍第4項所述之非揮發性突觸電路,其進一步包含:一編程線,該編程線用於提供一編程訊號;一寫入線,該寫入線用於提供一寫入訊號;以及一抹除線,該抹除線用於提供一抹除訊號;其中該第一電阻變化元件包括:一耦合電晶體及一寫入電晶體,其佈置成具有一浮動閘極節點,該耦合電晶體電性耦合至該編程線,該寫入電晶體係電性耦合至該寫入線;以及 一讀取電晶體及一下部選擇電晶體,其係串聯佈置,該下部選擇電晶體具有一源極電性耦合至該參考訊號線,以及一閘極電性耦合至該抹除線,該讀取電晶體具有一閘極電性耦合至該浮動閘極節點,以及一源極直接地連接至該第一共用節點。
  6. 如申請專利範圍第4項所述之非揮發性突觸電路,其進一步包含:一第三輸入訊號線,該第三輸入訊號線用於提供一第三輸入訊號;一第四輸入訊號線,該第四輸入訊號線用於提供一第四輸入訊號;其中該單元進一步包括:一第三上部選擇電晶體,該第三上部選擇電晶體具有一閘極,該閘極係電性耦合至該第三輸入訊號線;一第四上部選擇電晶體,該第四上部選擇電晶體具有一閘極,該閘極係電性耦合至該第四輸入訊號線,該第三上部選擇電晶體之一源極及該第四上部選擇電晶體之一源極係直接地連接至一第二共用節點;以及一第二電阻變化元件,該第二電阻變化元件具有連接至該第二共用節點之一端,且另一端電性耦合至該參考訊號線,該第二電阻變化元件之值係可編程的,以改變一輸出訊號之一振幅;其中該單元之該第三上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線; 其中該單元之該第四上部選擇電晶體之一汲極係電性耦合至該第二輸出訊號線。
  7. 一種突觸電路,其包含:一第一輸入訊號線,該第一輸入訊號線用於提供一第一輸入訊號;一第二輸入訊號線,該第二輸入訊號線用於提供一第二輸入訊號;一參考訊號線,該參考訊號線用於提供一參考訊號;一第一輸出訊號線及一第二輸出訊號線,該第一輸出訊號線及該第二輸出訊號線用於承載一第一輸出訊號及一第二輸出訊號於其上;一交叉耦合閂鎖電路,該交叉耦合閂鎖電路用於儲存一電訊號,其包括:一第一反相器及一第二反相器,每一個該第一反相器及該第二反相器具有一輸入端子及一輸出端子,該第一反相器之該輸入端子係在一第一訊號節點連接至該第二反相器之該輸出端子,該第二反相器之該輸入端子係在一第二訊號節點連接至該第一反相器之該輸出端子;以及一第一單元及一第二單元,其用於分別地產生該第一輸出訊號及該第二輸出訊號,該第一單元及該第二單元之每一個包括:一第一上部選擇電晶體,該第一上部選擇電晶體具有一閘極,該閘極係電性耦合至該第一輸入訊號線; 一第二上部選擇電晶體,該第二上部選擇電晶體具有一閘極,該閘極係電性耦合至該第二輸入訊號線;以及該第一上部選擇電晶體之一源極及該第二上部選擇電晶體之一源極係直接地連接至一共用節點,該第一單元之該共用節點係電性耦合至該交叉耦合閂鎖電路之該第一訊號節點,且該第二單元之該共用節點係電性耦合至該交叉耦合閂鎖電路之該第二訊號節點,其中;該第一單元之該第一上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線,且該第二單元之該第一上部選擇電晶體之一汲極係電性耦合至該第二輸出訊號線;該第一單元之該第二上部選擇電晶體之一汲極係電性耦合至該第二輸出訊號線,且該第二單元之該第二上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線;以及該交叉耦合閂鎖電路之該第一反相器及該第二反相器係電性耦合至該參考訊號線。
  8. 如申請專利範圍第7項所述之突觸電路,其中,該交叉耦合閂鎖電路係實現成一非揮發性記憶體電路。
  9. 一種神經網路晶片,其包含:一中央處理單元,該中央處理單元用於控制在該神經網路晶片中之各元件;一感測器,該感測器用於提供一輸入訊號;一記憶單元,該記憶單元用於儲存資料 一非揮發性神經網路單元;其中該中央處理單元、該感測器、該記憶單元及該非揮發性神經網路單元係電性耦合,且該非揮發性神經網路單元進一步包含:一突觸陣列,該突觸陣列包括複數個非揮發性突觸,該複數個非揮發性突觸之每一個包括:一第一輸入訊號線,該第一輸入訊號線用於提供一第一輸入訊號;一參考訊號線,該參考訊號線用於提供一參考訊號;一第一輸出訊號線,該第一輸出訊號線用於承載一輸出訊號於其上;以及一單元,該單元用於產生該輸出訊號,該單元包括:一第一上部選擇電晶體,該第一上部選擇電晶體具有一閘極,該閘極係電性耦合至該第一輸入訊號線;以及一第一電阻變化元件,該第一電阻變化元件具有以串聯連接至該第一上部選擇電晶體之一端,且另一端電性耦合至該參考訊號線,該第一電阻變化元件之值係可編程的,以改變一輸出訊號之一振幅;其中該單元之該第一上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線。
  10. 如申請專利範圍第9項所述之神經網路晶片,其中在該突觸陣列中之每一個該非揮發性突觸進一步包括:一編程線,該編程線用於提供一編程訊號; 一寫入線,該寫入線用於提供一寫入訊號;以及一抹除線,該抹除線用於提供一抹除訊號;其中該第一電阻變化元件包括:一耦合電晶體及一寫入電晶體,其佈置成具有一浮動閘極節點,該耦合電晶體電性耦合至該編程線,該寫入電晶體係電性耦合至該寫入線;以及一讀取電晶體及一下部選擇電晶體,其係與該第一上部選擇電晶體串聯佈置,該下部選擇電晶體具有一源極電性耦合至該參考訊號線,以及一閘極電性耦合至該抹除線,該讀取電晶體具有一閘極電性耦合至該浮動閘極節點。
  11. 如申請專利範圍第9項所述之神經網路晶片,其中在該突觸陣列中之每一個該非揮發性突觸進一步包括:一第二輸入訊號線,該第二輸入訊號線用於提供一第二輸入訊號;其中該單元進一步包括:一第二上部選擇電晶體,該第二上部選擇電晶體具有一閘極,該閘極係電性耦合至該第二輸入訊號線;以及一第二電阻變化元件,該第二電阻變化元件具有以串聯連接至該第二上部選擇電晶體之一端,且另一端電性耦合至該參考訊號線,該第二電阻變化元件之值係可編程的,以改變一輸出訊號之一振幅其中該單元之該第二上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線。
  12. 如申請專利範圍第9項所述之神經網路晶片,其中在該突觸陣列中之每一個該非揮發性突觸進一步包括:一第二輸入訊號線,該第二輸入訊號線用於提供一第二輸入訊號;一第二輸出訊號線,該第二輸出訊號線用於提供一第二輸出訊號;其中該單元進一步包括:一第二上部選擇電晶體,該第二上部選擇電晶體具有一閘極,該閘極係電性耦合至該第二輸入訊號線;以及該第二上部選擇電晶體具有一源極,該源極係電性耦合至該第一電阻變化元件,該第一上部選擇電晶體之一源極及該第二上部選擇電晶體之該源極係直接地連接至一第一共用節點;其中該單元之該第二上部選擇電晶體之一汲極係電性耦合至該第二輸出訊號線。
  13. 如申請專利範圍第12項所述之神經網路晶片,其中在該突觸陣列中之每一個該非揮發性突觸進一步包括:一編程線,該編程線用於提供一編程訊號;一寫入線,該寫入線用於提供一寫入訊號;以及一抹除線,該抹除線用於提供一抹除訊號;其中該第一電阻變化元件包括: 一耦合電晶體及一寫入電晶體,其佈置成具有一浮動閘極節點,該耦合電晶體電性耦合至該編程線,該寫入電晶體係電性耦合至該寫入線;以及一讀取電晶體及一下部選擇電晶體,其係串聯佈置,該下部選擇電晶體具有一源極電性耦合至該參考訊號線,以及一閘極電性耦合至該抹除線,該讀取電晶體具有一閘極電性耦合至該浮動閘極節點,以及一源極直接地連接至該第一共用節點。
  14. 如申請專利範圍第12項所述之神經網路晶片,其中在該突觸陣列中之每一個該非揮發性突觸進一步包括:一第三輸入訊號線,該第三輸入訊號線用於提供一第三輸入訊號;一第四輸入訊號線,該第四輸入訊號線用於提供一第四輸入訊號;其中該單元進一步包括:一第三上部選擇電晶體,該第三上部選擇電晶體具有一閘極,該閘極係電性耦合至該第三輸入訊號線;一第四上部選擇電晶體,該第四上部選擇電晶體具有一閘極,該閘極係電性耦合至該第四輸入訊號線,該第三上部選擇電晶體之一源極及該第四上部選擇電晶體之一源極係直接地連接至一第二共用節點;以及一第二電阻變化元件,該第二電阻變化元件具有連接至該第二共用節點之一端,且另一端電性耦合至該參考訊號線, 該第二電阻變化元件之值係可編程的,以改變一輸出訊號之一振幅;其中該單元之該第三上部選擇電晶體之一汲極係電性耦合至該第一輸出訊號線;其中該單元之該第四上部選擇電晶體之一汲極係電性耦合至該第二輸出訊號線。
  15. 一種神經網路晶片,其包含:一中央處理單元,該中央處理單元用於控制該神經網路晶片中之各元件;一非揮發性神經網路單元;一感測器,該感測器用於提供一輸入訊號至該非揮發性神經網路單元;一記憶單元;其中該中央處理單元、該感測器、該記憶單元及該非揮發性神經網路單元係電性耦合,且該非揮發性神經網路單元適應性地控制一操作參數,該操作參數包含該中央處理單元、該記憶單元或該感測器之一電壓或一頻率。
TW108102597A 2018-01-23 2019-01-23 具有非揮發性突觸陣列的神經網路電路及神經晶片 TWI751403B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862620947P 2018-01-23 2018-01-23
US62/620,947 2018-01-23
US201862655074P 2018-04-09 2018-04-09
US62/655,074 2018-04-09
US16/196,617 US11361215B2 (en) 2017-11-29 2018-11-20 Neural network circuits having non-volatile synapse arrays
US16/196,617 2018-11-20
US16/252,640 US11361216B2 (en) 2017-11-29 2019-01-20 Neural network circuits having non-volatile synapse arrays
US16/252,640 2019-01-20

Publications (2)

Publication Number Publication Date
TW201937413A TW201937413A (zh) 2019-09-16
TWI751403B true TWI751403B (zh) 2022-01-01

Family

ID=67395562

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108102597A TWI751403B (zh) 2018-01-23 2019-01-23 具有非揮發性突觸陣列的神經網路電路及神經晶片

Country Status (4)

Country Link
EP (1) EP3743857A4 (zh)
KR (1) KR102567160B1 (zh)
TW (1) TWI751403B (zh)
WO (1) WO2019147522A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11694751B2 (en) 2019-11-30 2023-07-04 Semibrain Inc. Logic compatible flash memory programming with a pulse width control scheme
US11636322B2 (en) * 2020-01-03 2023-04-25 Silicon Storage Technology, Inc. Precise data tuning method and apparatus for analog neural memory in an artificial neural network
US11475946B2 (en) * 2020-01-16 2022-10-18 International Business Machines Corporation Synapse weight update compensation
US11663455B2 (en) * 2020-02-12 2023-05-30 Ememory Technology Inc. Resistive random-access memory cell and associated cell array structure
TWI776645B (zh) * 2021-03-17 2022-09-01 神盾股份有限公司 乘積和運算裝置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080281220A1 (en) * 2004-10-04 2008-11-13 Statchip Aps Handheld Home Monitoring Sensors Network Device
TWI512608B (zh) * 2013-03-14 2015-12-11 Micron Technology Inc 包括訓練、資料組織及/或蔭蔽之記憶體系統及方法
TWI604457B (zh) * 2014-04-07 2017-11-01 美光科技公司 用於記憶體操作參數之儲存及寫入多重參數編碼之裝置及方法
TW201741943A (zh) * 2016-05-17 2017-12-01 超捷公司 使用非揮發性記憶體陣列之深度學習類神經網路分類器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956564A (en) * 1989-07-13 1990-09-11 Intel Corporation Adaptive synapse cell providing both excitatory and inhibitory connections in an associative network
US5353382A (en) * 1990-10-15 1994-10-04 California Institute Of Technology Programmable synapse for neural network applications
JP3119392B2 (ja) 1992-06-03 2000-12-18 直 柴田 半導体装置
US5336937A (en) * 1992-08-28 1994-08-09 State University Of New York Programmable analog synapse and neural networks incorporating same
KR100983295B1 (ko) * 2002-03-22 2010-09-24 조지아 테크 리서치 코오포레이션 부동 게이트 아날로그 회로
US7656710B1 (en) 2005-07-14 2010-02-02 Sau Ching Wong Adaptive operations for nonvolatile memories
US7167392B1 (en) * 2005-07-15 2007-01-23 National Semiconductor Corporation Non-volatile memory cell with improved programming technique
KR20130133111A (ko) * 2012-05-28 2013-12-06 송승환 순수 로직 트랜지스터로 구성된 플래시 메모리
FR3016724B1 (fr) 2014-01-22 2016-02-05 Commissariat Energie Atomique Memoire non volatile multiport
US9760533B2 (en) * 2014-08-14 2017-09-12 The Regents On The University Of Michigan Floating-gate transistor array for performing weighted sum computation
US10019631B2 (en) * 2015-11-05 2018-07-10 Qualcomm Incorporated Adapting to appearance variations when tracking a target object in video sequence
US9715916B1 (en) 2016-03-24 2017-07-25 Intel Corporation Supply-switched dual cell memory bitcell
KR20170117863A (ko) * 2016-04-14 2017-10-24 에스케이하이닉스 주식회사 고정된 저항 값들을 갖는 시냅스들을 포함하는 뉴로모픽 소자
US11361215B2 (en) 2017-11-29 2022-06-14 Anaflash Inc. Neural network circuits having non-volatile synapse arrays

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080281220A1 (en) * 2004-10-04 2008-11-13 Statchip Aps Handheld Home Monitoring Sensors Network Device
TWI512608B (zh) * 2013-03-14 2015-12-11 Micron Technology Inc 包括訓練、資料組織及/或蔭蔽之記憶體系統及方法
TWI604457B (zh) * 2014-04-07 2017-11-01 美光科技公司 用於記憶體操作參數之儲存及寫入多重參數編碼之裝置及方法
TW201741943A (zh) * 2016-05-17 2017-12-01 超捷公司 使用非揮發性記憶體陣列之深度學習類神經網路分類器

Also Published As

Publication number Publication date
KR102567160B1 (ko) 2023-08-16
EP3743857A4 (en) 2021-12-29
KR20200110701A (ko) 2020-09-24
WO2019147522A3 (en) 2020-04-09
WO2019147522A2 (en) 2019-08-01
TW201937413A (zh) 2019-09-16
EP3743857A2 (en) 2020-12-02
CN111656371A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
US11361216B2 (en) Neural network circuits having non-volatile synapse arrays
TWI751403B (zh) 具有非揮發性突觸陣列的神經網路電路及神經晶片
CN110914906B (zh) 用于执行具有多位输入矢量的矩阵计算的多级单元(mlc)非易失性(nv)存储器(nvm)矩阵电路
US11604974B2 (en) Neural network computation circuit including non-volatile semiconductor memory element
CN110892480A (zh) 采用nvm矩阵电路以执行矩阵计算的非易失性(nv)存储器(nvm)矩阵电路
US11615299B2 (en) Neural network computation circuit including non-volatile semiconductor memory element
US20200202206A1 (en) Artificial neuron for neuromorphic chip with resistive synapses
Park et al. 3-D stacked synapse array based on charge-trap flash memory for implementation of deep neural networks
TWI699711B (zh) 記憶體裝置及其製造方法
US20210319293A1 (en) Neuromorphic device and operating method of the same
US11100989B2 (en) Multiplier-accumulator
Lee et al. Novel method enabling forward and backward propagations in NAND flash memory for on-chip learning
CN108154227B (zh) 一种使用模拟计算的神经网络芯片
CN111656371B (zh) 具有非易失性突触阵列的神经网络电路
JP7480391B2 (ja) インメモリコンピューティングのための記憶装置
KR102656337B1 (ko) 삼항 정밀도 xor 논리 연산을 기반으로 하는 반도체 소자 및 이를 포함하는 뉴로모픽 컴퓨팅 시스템
US20240135979A1 (en) HYBRID FeRAM/OxRAM DATA STORAGE CIRCUIT
Doevenspeck In-Memory Neural Network Computing With Resistive Memories
Saxena Challenges and Recent Advances in NVM-based Neuromorphic Computing ICs
CN117409830A (zh) 存储器内计算的存储器装置以及固态驱动模块