TW202131331A - 串列化神經網路計算單元 - Google Patents
串列化神經網路計算單元 Download PDFInfo
- Publication number
- TW202131331A TW202131331A TW109142688A TW109142688A TW202131331A TW 202131331 A TW202131331 A TW 202131331A TW 109142688 A TW109142688 A TW 109142688A TW 109142688 A TW109142688 A TW 109142688A TW 202131331 A TW202131331 A TW 202131331A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- neural network
- current
- input
- bit line
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 3
- 210000000225 synapse Anatomy 0.000 claims description 129
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000005669 field effect Effects 0.000 claims description 5
- 210000004027 cell Anatomy 0.000 claims description 4
- 230000000946 synaptic effect Effects 0.000 description 98
- 238000000034 method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000003491 array Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 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/04—Architecture, e.g. interconnection topology
-
- 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/045—Combinations of 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/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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/223—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using MOS with ferroelectric gate insulating film
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2293—Timing circuits or 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
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0061—Timing circuits or methods
-
- 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/0425—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
-
- 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/0441—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
- G11C16/045—Floating gate memory cells with both P and N channel memory transistors, usually sharing a common floating gate
-
- 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/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/32—Timing circuits
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/79—Array wherein the access device being a transistor
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
Abstract
本發明揭露一種串列化神經網路計算單元。此計算單元包含:位元線;記體陣列,其具有複數個記憶塊,各記憶塊具有一個或多於一個的記憶元件,各記憶元件連接至位元線;控制電路配置為:依序施加串列化輸入至記憶元件,使得記憶元件響應於串列化輸入依序產生輸出,其中各輸出對應於輸入與儲存在記憶元件中的權重值的乘積;以及為控制電路設定一組參考電流位準,此組參考電流位準中的每一個具有特定的電流量,以控制記憶元件產生對應於此組參考電流位準的個別輸出電流。
Description
相關申請案之交互參照
本申請案主張於2019年12月3日所提出名稱為「串列化非揮發神經網路計算單元(SERIALIZED NONVOLATILE NEURAL NETWORK COMPUTING UNIT)」之第62/942,923號美國臨時申請案之優先權。
本發明闡述了一種串列化神經網路計算單元,其輸入、加權及輸出模式被串列化,使得可以使用數位輸入訊號、低精密度的記憶元件(memory cell)及傳統的1位元感測放大器實現神經網路計算單元,並且不需要在具有高精密度記憶元件的記憶體陣列的列電路及行電路中的複雜的高精密度數位類比轉換器電路及類比數位轉換器電路。
神經網路計算單元越來越多地用於人工智慧及機器學習的應用。計算的主要部分為輸入資料與對應的訓練加權值之間的大量的乘法與累加(Multiply-and-Accumulate,MAC)運算。為了有效地實現上述MAC運算而提出的一種方法為記憶體中計算(compute-in-memory)架構,其在儲存資料的位置執行計算。在先前技術中,配置有記憶體中計算架構的MAC計算塊(computing block)使用記憶元件作為神經網路的突觸記憶元件,其用於執行類比輸入資料與類比加權值的乘法運算以產生最終的類比輸出電流。可以透過對類比領域中的記憶體陣列的位元線上的電流求和以執行累加運算。
然而,由於計算系統的其餘部分與數位領域中的MAC計算塊之間進行通訊,因此先前的MAC計算裝置需要複雜的高精度(例如4、8、16或32位元)數位類比轉換器電路及類比數位轉換器電路,以在數位領域與類比領域之間轉換關聯的訊號。數位領域資料可以表示最大為4、8、16或32位元的資訊。並且,先前的MAC計算塊需要高精度(例如4、8、16或32位元)的突觸元件,其中4、8、16或32位元的資訊可以儲存在單個突觸元件中。因此,配置有記憶體中計算架構的MAC引擎的效率顯著地受限於高精度數位類比轉換器電路及類比數位轉換器電路以及高精度突觸元件的可利用性。
本發明揭露一種神經網路計算單元。根據本發明,神經網路計算單元包含:位元線;記憶體陣列,其具有複數個記憶塊,各記憶塊具有一個或多於一個的記憶元件,各記憶元件連接至位元線;以及控制電路,其配置為:依序施加串列化輸入至記憶元件,使得記憶元件響應於串列化輸入依序產生複數個輸出,其中各輸出對應於輸入與儲存在記憶元件中的權重值的乘積;以及為該控制電路設定一組參考電流位準,此組參考電流位準中的每一個具有特定的電流量,以控制記憶元件產生與對應於此組參考電流位準的個別輸出電流。
在一實施例中,控制電路進一步配置為依序施加的串列化電壓輸入至記憶元件,使得記憶元件對應於串列化電壓輸入依序產生各個輸出電流,其中輸出電流對應於串列化電壓輸入與儲存在記憶元件中的權重值的乘積。在一實施例中,計算單元進一步包含感測電路,用以依序接收該位元線中的記憶元件的輸出電流。在一實施例中,該計算單元進一步包含累加器電路,其耦接至感測電路,並且累加器電路配置為將所接收的溫度計碼形式的輸出電流之值轉換為二進制碼。在一實施例中,累加器電路進一步配置為以控制電路所定義的位元移位方式累加經轉換的值。
在一實施例中,計算單元進一步包含:主突觸陣列,其包含連接至通用位元線的複數個記憶元件;並且控制電路進一步配置為:將對應於複數個串列輸入資料的複數個流電壓輸入串列化地施加至主突觸陣列中對應的複數個記憶元件。在一實施例中,串列輸入資料的最高有效位元係最先輸入至對應的記憶元件中。在一實施例中,神經網路計算單元在不完全計算最低有效位元的情況下完成計算。在一實施例中,計算單元進一步包含:參考突觸陣列,其包含連接至位元線的複數個參考元件,其中參考元件係程式化為產生相同或不同的預定義輸出電流至位元線;並且控制電路進一步配置為:施加對應於複數個串列輸入資料的複數個輸入電壓至選定的參考突觸陣列的複數個參考元件。
在一實施例中,控制電路進一步配置為關閉或者啟動零個、一個或多個參考元件,以產生對應於由控制電路所定義的參考位準的個別輸出。在一實施例中,來自參考元件的輸出電流為二進制加權的。在一實施例中,感測電路進一步配置為感測第一記憶塊中的記憶元件的輸出電流與第二記憶塊中的記憶元件的輸出電流之和。
在一實施例中,感測電路進一步配置為獲取以下各項之和:(i)對應於施加至第一記憶塊的串列輸入資料中的一個位元的輸出電流,以及(ii)在施加至第二記憶塊中的串列輸入資料的一位元的持續時間內,對應於各參考位準相的參考元件的輸出電流。在一實施例中,感測電路進一步配置為:獲取位元線中的總輸出電流;產生特定的閾值電流位準與總輸出電流位準之間的比較結果;以及轉換比較結果為對應的二進制訊號。在一實施例中,感測電路進一步配置以為下列步驟設定迭代次數:(i)閾值電流位準與總輸出電流位準之間的比較,以及(ii)根據結果將比較結果轉換為對應的二進制訊號。
在本發明的一實施例中,一種裝置包含:記憶元件陣列,其包含:位元線;第一組記憶元件,其分別連接至位元線;第二組記憶元件,其分別連接至位元線;控制電路;第一組控制線,其連接控制電路至第一組記憶元件,其中控制電路配置為依序以串列格式施加電壓輸入資料至第一組記憶元件,使其響應於電壓輸入資料依序產生輸出電流,其中輸出電流對應於電壓輸入資料與儲存於各記憶元件中的權重的乘績;以及,第二組控制線,其連接控制電路至第二組記憶元件,其中控制電路配置為設定一組參考電流位準,此組參考電流位準中的每一個具有特定的電流量,使得控制電路控制第二組記憶元件產生對應於此組參考電流位準的個別輸出電流;以及,感測電路,用以接收來自位元線中的第一組記憶元件及第二組記憶元件的輸出電流。
在一實施例中,記憶元件為快閃記憶體、可變電阻式記憶體、鐵電場效記憶體或具有權重記憶體的邏輯電晶體,其中的每一個皆經過程式化以產生預定義的特定輸出電流。在一實施例中,此裝置進一步包含累加器電路,其耦接至感測電路,其中累加器電路配置為以控制電路定義的位元移位方式從感測電路接收經處理的訊號值。在一實施例中,感測電路進一步配置為串列化地接收位元線中的相應一個輸出電流,並將其與預定義的閾值進行比較。在一實施例中,累加器電路進一步配置為執行將所接收的訊號值從溫度計碼轉換為二進制碼,並且以控制電路定義的位元移位方式累加經轉換的二進制碼。
第1圖為根據本發明一實施例的神經網路計算單元的方塊圖。神經網路計算單元100包含控制器110、主突觸陣列120、參考突觸陣列130、感測電路140及累加器電路150。
控制器110與主突觸陣列120、參考突觸陣列130、感測電路140及累加器電路150進行通訊。主突觸陣列120可以包含單個或多個突觸記憶元件以共同表現特定的參數值。參考突觸陣列130可以包含單個或多個突觸記憶元件以共同表現特定的參考值。主突觸陣列120及參考突觸陣列130可以從控制器110接收串列化的數位輸入序列訊號。來自主突觸陣列120及參考突觸陣列130的對應於輸入序列訊號的輸出可以在連接至感測電路140的共用的位元線BL中累加。
感測電路140配置為應用一個或多於一個的透過控制器110校正的閾值位準。感測電路140依序地從位元線(bit line)BL接收串列化訊號,並且使用透過控制器110配置的閾值位準以產生其串列化輸出(serialized output)SO序列。累加器電路150從感測電路140接收串列化輸出SO的值,並將這些值以透過控制器110的另一個控制訊號配置的位元移位方式累加在其輸出節點(accumulator output)AO中。
此外,控制器110可以包含關鍵子區塊(key subblock),例如暫存器、資料記憶體、程式碼記憶體(code memory)、一次可程式記憶體或唯讀記憶體或其他非揮發性記憶體、時序電路或數位處理電路。暫存器可以儲存用於使控制器110執行預期操作的關鍵配置(key configuration)。資料記憶體可以儲存數位輸入資料以提供至主突觸陣列120及參考突觸陣列130。程式碼記憶體配置為儲存控制器110的操作順序。一次可程式記憶體或唯讀記憶體或其他非揮發性記憶體可以儲存感測電路140的參考電流位準,並且可以進一步配置為儲存輸入數位序列訊號的串列化序列順序(serialization sequence order)或時序資訊(例如,MSB優先、CSB優先或LSB優先)、參數選擇序列(parameter selection sequence)訊號(例如,MSB優先、CSB優先或LSB優先)或者參考數位序列(reference digital sequence)訊號(例如,低位準優先、中位準優先或高位準優先)。由於來自MSB資料的結果對整個結果的貢獻最大,因此可以優先輸入MSB輸入數位訊號及MSB參數選擇訊號,使得控制器110能夠在用LSB資料完成完整的運算序列訊號之前停止發送數位序列訊號,以在輸出精度可犧牲的情況下取得更高的性能表現。當在LSB資料的運算結束前停止了輸入序列,累加器輸出AO節點上的中間累加器輸出訊號可以大約足夠好地表示(represent approximately good enough)來自計算單元的總體輸出。
時序電路可以檢查操作順序並且根據特定的時序以調製關鍵訊號脈衝(modulate key signal pulses)(例如,第4圖中示出的操作時序)。數位處理電路可以從暫存器、資料記憶體或程式碼記憶體、一次性可編程記憶體或唯讀記憶體或其他非揮發性記憶體或時序電路中檢索資訊,並且具有錯誤檢測或修正、壓縮或解壓縮、加密或解密,模式檢測或計數、過濾、調制,布林邏輯運算等能力,使得控制器110可以彈性地(resiliently)且高效率地發送位元串列化(bit-serialized)數位序列訊號至主突觸陣列120及參考突觸陣列130,以及發送控制訊號至感測電路140及累加器電路150。控制器110的關鍵子區塊的定義及使用為本領域具有通常知識者習知的,並且不限定於在此闡述的具體說明或形式。
雖然將單條位元線BL定義為用於神經網路計算單元100中相關聯的電路元件的單條線,但是可以將複數條位元線BL並聯連接以同時計算多個行。因此,各個行可以共用通用串列化數位輸入及參考序列訊號以及來自控制器110的控制訊號。另一方面,位元線BL上的訊號可以表示資訊的正值或者負值。儘管在第1圖中繪示了單條位元線(例如,位元線BL),但是突觸陣列可以具有兩條不同的輸出位元線(例如,BL_P及BL_N),使得一條線(例如,BL_P)攜帶正值的資訊並且另一條線(例如,BL_N)攜帶負值的資訊。在此情況下,感測電路140將兩線訊號之間的差作為輸入。
此外,即使在第1圖中示出了單組的主突觸陣列120,也可以將多組的主突觸陣列120並聯連接以表示多個參數,並且同時在共用的位元線BL中累加多組的輸出。因此,各組主突觸陣列120可以分別具有串列化的數位輸入序列訊號。
進一步地,主突觸陣列120及參考突觸陣列130可以具有來自控制器110的多條輸入訊號線,使得輸入資料的符號資訊及其大小資訊可以被攜帶至突觸陣列。在一實施例中,主突觸陣列120中的一組記憶元件從控制器110依序接收複數個輸入訊號。控制器110依序傳送n位元(二進制)輸入資料至主突觸陣列120中的各個突觸記憶元件,使得對應的記憶元件產生對應於輸入乘以所儲存的記憶元件權重的函數的輸出電流訊號。當提供n位元輸入訊號至主突觸陣列120中選定的記憶元件中時,控制器110同步化主突觸陣列120及參考突觸陣列130中的記憶元件的操作。控制器110同時傳輸複數個參考序列訊號至參考突觸陣列130中的參考元件組,其中此訊號啟動零個、一個或多個對應的參考元件,以在各步驟中依序設定參考突觸電流位準。
多個參考突觸電流位準依序施加,係透過傳送複數個參考序列訊號至參考突觸陣列130,同時將n位元輸入中的一個位元提供至主突觸陣列120中選定的記憶元件而實現。控制器110控制參考突觸陣列130中的參考元件組,使其一旦當輸入的n位元中的一個由主突觸陣列120中選定的記憶元件處理時,則會將各參考突觸位準依序加以調整。
第2A圖至第2H圖為使用各種記憶元件的根據本發明一實施例的例示性突觸記憶元件的示意圖,其使用例如邏輯快閃記憶體、邏輯反及閘快閃記憶體、反及閘快閃記憶體、或閘快閃記憶體、具有電晶體的可變電阻記憶體、不具有電晶體的可變電阻記憶體、鐵電場效(Ferroelectric Field-Effect Transistor,FeFET)記憶體以及具有權重記憶體W的邏輯電晶體。各突觸記憶元件可以根據控制線輸入訊號(例如,CG或CGx)以及以閾值電壓(用於快閃記憶體)、電阻(用於可變式電阻記憶體)、極化(用於鐵電場效記憶體)或電導(用於具有權重記憶體的邏輯電晶體)等形式儲存於記憶體的加權值,以使適當的電流位準(例如,Cur_W)流向位元線BL。
第2A圖示出設定(programmed)在電流位準Cur_W的使用邏輯快閃記憶體的突觸記憶元件。電流位準表示輸入訊號及權重參數的乘積。在此,透過一對訊號線CG1及CG2施加輸入訊號。權重參數儲存在邏輯快閃記憶體元件中。輸出電流位準Cur_W提供至位元線BL。
第2B圖示出設定在電流位準Cur_W的使用邏輯反及閘(NAND)快閃記憶體的突觸記憶元件。電流位準表示輸入訊號及權重參數的乘積。在此,透過從多對訊號線中選定的一對訊號線以施加輸入訊號(例如,訊號線CG1/訊號線CG2及訊號線CG3/訊號線CG4中的一組)。權重參數儲存在選定的邏輯反及閘(NAND)快閃記憶體元件中。透過開啟(turning on)所有其他的未選定的記憶元件以及連接至訊號線SG1/訊號線SG2的頂部/底部開關電晶體,以提供輸出電流位準Cur_W至位元線BL。
第2C圖示出設定在電流位準Cur_W的使用反及閘(NAND)快閃記憶體的突觸記憶元件。電流位準表示輸入訊號及權重參數的乘積。在此,透過從多條訊號線(訊號線CG1至訊號線CG4)中選定的一條訊號線以施加輸入訊號。權重參數儲存在選定的反及閘(NAND)快閃記憶體元件中。透過開啟所有其他的未選定的記憶元件以及連接至訊號線SG1/訊號線SG2的頂部/底部開關電晶體,以提供輸出電流位準Cur_W至位元線BL。
第2D圖示出設定在電流位準Cur_W的使用反或閘(NOR)快閃記憶體的突觸記憶元件。電流位準表示輸入訊號及權重參數的乘積。在此,透過訊號線CG以施加輸入訊號。權重參數儲存在反或閘(NOR)快閃記憶體元件中。透過開關連接至訊號線SG的開關電晶體,以提供輸出電流位準Cur_W至位元線BL。
第2E圖示出設定在電流位準Cur_W的使用可變式電阻(resistive change)記憶體的突觸記憶元件,其具有電晶體。電流位準表示輸入訊號及權重參數的乘積。在此,透過訊號線CG以施加輸入訊號。權重參數儲存在可變電阻R_w中。透過開關連接至訊號線CG的開關電晶體,以提供輸出電流位準Cur_W至位元線BL。
第2F圖示出設定在電流位準Cur_W的使用可變式電阻記憶體的突觸記憶元件,其不具有電晶體。電流位準表示輸入訊號及權重參數的乘積。在此,透過訊號線CG以施加輸入訊號。權重參數儲存在可變電阻R_w中。輸出電流位準Cur_W提供至位元線BL。
第2G圖示出設定在電流位準Cur_W的使用鐵電場效記憶體的突觸記憶元件。電流位準表示輸入訊號及權重參數的乘積。在此,透過訊號線CG以施加輸入訊號。權重參數儲存在鐵電場效記憶體中。輸出電流位準Cur_W提供至位元線BL。
第2H圖示出設定在電流位準Cur_W的使用具有權重記憶體W的邏輯電晶體的突觸記憶元件。電流位準表示輸入訊號及權重參數的乘積。在此,透過訊號線CG以施加輸入訊號。權重參數儲存在權重記憶體W中。透過開關連接至訊號線CG的開關電晶體,以提供輸出電流位準Cur_W至位元線BL。
除了上述的突觸記憶元件之外,可以進一步配置有其他種類的突觸記憶元件,這些突觸記憶元件經過仔細地設定以達到對應於神經網路的權重參數的目標電流位準。
第3圖為根據本發明一實施例的突觸記憶體陣列的簡化方塊圖。
在一實施例中,主突觸陣列120包含四個突觸記憶元件Wa、Wb、Wc及Wd。這些突觸記憶元件Wa、Wb、Wc及Wd透過通用位元線BL連接,並且透過訊號線CG_Wa、CG_Wb、CG_Wc及CG_Wd分別接收輸入序列訊號。進一步地,參考突觸陣列130包含六個參考元件R0、R1、R2、R3、R4及R5,其透過位元線BL連接,並且透過耦接的訊號線CG_R0、CG_R1、CG_R2、CG_R3、CG_R4及CG_R5接收參考序列訊號。感測放大器(感測電路140)連接至位元線BL,並且產生其串列化輸出SO至連接至累加器(累加器電路150)的線。累加器(累加器電路150)配置為累加串列化的部分和(serialized partial sums)以產生累加器輸出(accumulator output) AO。
值得一提的是,主突觸陣列120及參考突觸陣列130的數量可以大於一個,並且沿著行及列擴展。主突觸陣列120及參考突觸陣列130中的一個或兩者可以根據各種特定的技術需求,以行或列的單一或多種形式佈置。在此,主突觸陣列120包含四個突觸記憶元件Wa、Wb、Wc及Wd,並且參考突觸陣列130包含六個參考元件R0、R1、R2、R3、R4及R5。雖然第3圖中的主突觸陣列120及參考突觸陣列130繪示為分別具有四個或六個記憶元件,但是其可以根據記憶元件用於儲存權重值的容量以及陣列的可用面積,而包含多於或少於在此所述的記憶元件。
在兩個陣列主突觸陣列120及參考突觸陣列130中的突觸記憶元件以串聯連接,並且共用通用位元線BL。主突觸陣列120及參考突觸陣列130中的各突觸記憶元件可以儲存固定或可調的突觸權重並且產生輸出,其為輸入乘以權重的函數。進一步地,在本發明的一實施例中,透過訊號線(訊號線CG_Wa、CG_Wb、CG_Wc及CG_Wd)施加至複數個記憶元件的各輸入具有特定的時間間隔。因此,對應於輸入的輸出電流將以特定的時間間隔分別在位元線BL上流動。
主突觸陣列120中的突觸記憶元件的總量可以根據各記憶元件的容量而調整。舉例來說,當將8位元權重分配至主突觸陣列120時,且如果可用記憶元件可以儲存具有四個邏輯狀態的兩位元資訊,則主突觸陣列120可能總共需要四個記憶元件以執行相關的乘法運算。然而,如果主突觸陣列120可以儲存具有十六個邏輯狀態的四位元資訊,則主突觸陣列120可能只需要兩個記憶元件。並且,如果各記憶元件儲存具有兩個邏輯狀態的1位元資訊,則需要八個突觸記憶元件。
第3圖示出設置有8位元權重的情形;各記憶元件配置為儲存2位元資訊;因此,主突觸陣列120中總共佈置有4個記憶元件以執行相關的對應乘法。在一實施例中,參考突觸陣列130包含一組參考元件R0、R1、R2、R3、R4及R5。這些參考元件R0、R1、R2、R3、R4及R5可以與主突觸陣列120中的記憶元件相同或者相似。這些參考元件R0、R1、R2、R3、R4及R5分別耦接至參考訊號線(例如,參考訊號線CG_R0至參考訊號線CG_R5),並且共享通用位元線BL。各參考元件R0、R1、R2、R3、R4及R5在輸出線BL上輸出特定的參考電流,因為當經由對應的訊號線接收電壓時,各參考元件R0、R1、R2、R3、R4及R5具有其自己的特定突觸權重。在此,參考突觸陣列130中的六個參考元件R0、R1、R2、R3、R4及R5中的每一個可以設定為產生漸增的不同電流(incrementally different current)。例如,從字符串的最高位至最低位的順序,啟動(activated)的參考元件R5配置為輸出6μA;啟動的參考元件R4可以輸出5μA;啟動的參考元件R3可以輸出4μA;啟動的參考元件R2可以輸出3μA;啟動的參考元件R1可以輸出2μA;並且,啟動的參考元件R0可以輸出1μA。
感測電路140可以確認在位元線BL中感測到的輸出電流是否大於或小於閾值,其為控制器110所定義的預定值或校準值。在一實施例中,關於主突觸陣列120中的突觸記憶元件與參考突觸陣列130中的參考元件(或稱參考記憶元件)之間的交互作用,控制器110可以被配置為:
1.選擇主突觸陣列120中的突觸記憶元件之間的操作的順序以進行啟動。
2.定義一組參考突觸位準(透過零個、一個或多於一個參考突觸記憶元件獲得的輸出電流設定值)。
3. 選擇性地操作參考突觸陣列130中的參考元件,使得選擇性組合的參考元件(selectively combined reference cells)可以同時產生與所定義的參考位準相同電流的輸出電流。
4.在主突觸陣列120中選定的突觸記憶元件正在處理中(under progress)之時控制參考元件的操作。
5.透過在參考突觸陣列130中不啟動參考元件中的任何一個、選擇性地啟動部分的參考元件或者啟動的所有參考元件,以取得(pursue)透過參考位準設定的位元線BL中的各個不同的電流。
在另一實施例中,根據所儲存的預設順序,控制器110可以以預定順序逐個提供序列操作輸入及參考訊號至主突觸陣列120及參考突觸陣列130。這些記憶元件的依序啟動為預先確定的,或者可以由使用者重新設置。透過選擇性地在訊號線上施加電壓輸入,控制器110控制選定的主突觸記憶元件(例如,權重A)以產生輸出,其為輸入乘以儲存在主突觸記憶元件中參數的函數。控制器110同步化參考元件組的啟動與選定權重記憶元件的操作。也就是說,當選定的突觸記憶元件產生對應於經由訊號線施加的輸入電壓的輸出電流時,控制器110可以逐步啟動參考元件組(參考元件R0至參考元件R5)。可以一起啟動多個突觸列,以使累加電流流經位元線BL。
第4圖為根據本發明的一實施例的第1圖的計算電路的操作的時序圖。
在此,從圖式的頂部到第四行表示訊號線(訊號線CG_Wd、CG_Wc、CG_Wb及CG_Wa),訊號線攜帶用於主突觸陣列120中的記憶元件(突觸記憶元件Wa、Wb、Wc及Wd)的3位元輸入訊號。3數元輸入值(3-digit input value)透過最高有效位元(Most Significant Bit,MSB)、中心有效位元(Center Significant Bit,CSB)及最低有效位元(Least Significant Bit,LSB)表示。此外,第五列(標為「CG_R5」)與圖式底部(標為「CG_R0」)之間的六個行中的每一行示出了經由訊號線(訊號線CG_R5、CG_R4、CG_R3、CG_R2、CG_R1及CG_R0)分別輸入至參考元件組(參考元件R5、R4、R3、R2、R1及R0)的串列二進制輸入資料。
在一實施例中,控制器110依序啟動零個、一個或多個參考元件(參考元件R0、R1、R2、R3、R4及R5),以在位元線BL中產生預定義的參考突觸位準,而選定記憶元件(突觸記憶元件Wd、Wc、Wb及Wa)中的一個接收3位元輸入訊號以產生對應的輸出電流,此輸出電流為3位元輸入乘以儲存在記憶元件中的權重的函數。
更具體的是,在時間段T1期間,控制器110傳送佔用最高有效位元(IN_MSB)的二進制輸入至突觸記憶元件Wd,以透過位元線產生二進制輸入乘以儲存在突觸記憶元件Wd中的權重的電流。在時間段T2期間,控制器110透過訊號線CG_Wd傳送佔用中間有效位元(IN_CSB)的二進制輸入至突觸記憶元件Wd,且因此,突觸記憶元件Wd透過位元線產生二進制輸入乘以儲存在突觸記憶元件Wd中的權重的電流。在時間段T3期間,控制器110透過訊號線CG_Wd傳送佔用最低有效位元(IN_LSB)的二進制輸入至突觸記憶元件Wd,且因此,突觸記憶元件Wd透過位元線產生二進制輸入乘以儲存在突觸記憶元件Wd中的權重的電流。在時間段T4至時間段T6期間執行發送3位元輸入訊號至突觸記憶元件Wc;在時間段T7至時間段T9期間執行發送3位元輸入訊號至突觸記憶元件Wb;並且,在時間段T10至時間段T12期間執行發送3位元輸入訊號至突觸記憶元件Wa。如圖4所示,所執行的對突觸記憶元件Wa、Wb及Wc的3位元輸入訊號的傳輸與上述的對突觸記憶元件Wd的3位元輸入訊號的傳輸相似。
如第4圖所示,當時間段T1被分割為7個子時間段t1至子時間段t7時,控制器110可以控制與7個子時間段中的每一個相對應的零個、一個或多個參考元件組(參考元件R0、R1、R2、R3、R4及R5)的操作。換句話說,控制器110可以傳送訊號組至參考元件組(參考元件R0、R1、R2、R3、R4及R5),使得具有訊號1的參考元件被共同啟動以在位元線BL中設定電流的預定參考突觸位準,上述電流為添加至來自選定參考元件的輸出電流,選定參考元件為被3位元輸入訊號啟動的突觸記憶元件Wd、Wc、Wb及Wa中的一個。在用於參考元件(參考元件R5、R4、R3、R2、R1及R))的二進制序列輸入資料中,「1」表示賦能訊號,而「0」表示對應參考元件的閒置訊號。
在子時間段t1期間,控制器操作突觸記憶元件Wd(透過提供IN_MSB輸入訊號)以及參考元件R5(透過提供賦能1資料訊號)以輸出。因此,在子時間段t1期間產生這些參考元件的輸出電流的總和。並且,在子時間段t2至子時間段t7中的每一個時間段期間,控制器110持續傳輸IN-MSB輸入訊號至突觸記憶元件Wd,並且使得能夠依序操作參考元件R4、R3、R2、R1、R0及無以輸出對應的輸出電流。
在時間段T2期間,控制器110傳送IN_CSB訊號至突觸記憶元件Wd並依序傳輸輸入訊號1至參考元件R5至參考元件R0中的每一個,並且在構成時間段T2的子時間段t8至t14期間傳送所有「0」至參考元件。在時間段T3期間,控制器110傳送IN_LSB訊號至突觸記憶元件Wd並依序傳輸輸入訊號1至參考元件R5至參考元件R0中的每一個,並且在構成時間段T3的子時間段t15至子時間段t21期間傳送所有「0」至參考元件。並且,控制器110在剩餘的時間段T4至時間段T12中,將與在時間段T1至時間段T3期間所執行的控制器操作的相同方式應用於剩餘的記憶元件(突觸記憶元件Wc、Wb及Wa)。
第5圖為說明根據本發明一實施例的串列化感測操作的過程的流程圖。應注意的是,在神經網路計算單元100中複數個主突觸陣列120及複數個參考突觸陣列130排列成複數個列及複數個行。應注意的還有,主突觸陣列120及參考突觸陣列130中記憶元件的數量為控制器110或者使用者透過與神經網路計算單元100相關聯的介面(未示出)以預先設置或確定的。
在步驟501中,感測電路140設定為「開啟(on)」模式以開始感測/校正操作。在步驟503中,主突觸位準表示主突觸陣列120中對應的突觸記憶元件所獲得的特定輸出電流。當接收到時,感測電路140可以識別對應於輸入(施加至突觸記憶元件的n位元輸入中的一個)乘以儲存在選定記憶元件中的權重的函數的輸出電流量。
在步驟505,控制器110可以設定參考突觸位準(透過零個、一個或多於一個的參考元件所獲得的一組輸出電流值)。為了獲取突觸位準指定的輸出電流,控制器110可以在參考突觸陣列130中設定零個、一個或多於一個的參考元件。當透過組合參考元件獲得設定的輸出電流時,控制器110可以計算參考元件的理想數量。例如,為了產生3位元格式的輸出,其為輸入(例如,3位元輸入)乘以儲存在主突觸陣列120的突觸記憶元件中的權重的函數,控制器110可以設定總共七個參考突觸位準(7個輸出電流設定值),並且根據於程式化等式,例如總參考突觸位準 S = 2^(3)-1,即7,以執行相關的操作。控制器110的操作決定(1)執行感測步驟的次數,以及(2)透過預定義的程式碼或者可以根據使用者的需求手動輸入實現參考突觸位準的數量。
在步驟507中,控制器110可以操作主突觸陣列120及參考突觸陣列130中的記憶元件以結合(1)來自參考突觸陣列130的輸出電流,以及(2)來自主突觸陣列120的輸出電流。換句話說,由特定的參考突觸位準所定義的輸出電流被添加至來自位元線BL中的主突觸陣列120中選定的突觸記憶元件的輸出電流。
在步驟509中,感測電路140可以比較在特定時間段T測量的添加輸出電流與預設閾值電流值。感測電路140可以儲存閾值電流值或者允許使用者輸入新的閾值電流值或重設預設閾值電流值。
在步驟511中,當發現測量到的輸出電流和大於預設閾值時,感測電路140可以將比較結果記錄為二進制訊號,例如H。相反地,在步驟513中,當發現測量到的輸出電流和未大於預設閾值時,控制器110將比較結果紀錄為二進制訊號,例如L。
在步驟515中,感測電路140可以檢查所有的預定義參考突觸位準是否經過了添加及比較步驟507及509。如第4圖中所述,例如,當完成與參考元件R5相關聯的參考突觸位準的添加/比較步驟時,這些步驟將應用於與參考元件R4相關聯的參考突觸位準,並且接著用於參考元件R3、R2、R1、R0及無。
在步驟517中,當發現比較操作並未施加至所有的預設參考突觸位準時,感測電路140在重複步驟507至步驟515的操作之前,透過啟動不同的參考元件組以繼續調整參考突觸位準。步驟519為當所有的預設參考突觸位準的操作完成時。
在步驟519中,已經完成所有選定的主突觸記憶元件的預設操作。然而,應注意的是,當突觸記憶元件Wd處理3位元輸入資料的一位元(MSB)時,在第4圖中的時間段(例如,T1)期間實現針對相關記憶元件的添加、比較及循環步驟。因此,如第4圖所示,整個步驟501至步驟519可以應用於時間段T2至時間段T12中的每一個。
第6圖為第5圖中所示的串列化電流位準感測的示例的示意圖。在一實施例中,感測電路140可以配置為獲取以下各項之和:(i)來自主突觸陣列120中的一個選定記憶元件的電流,以及(ii)如第4圖所示,在預設時間段(例如,子時間段t1、t2、t3…)期間來自參考突觸陣列130中的零個、一個或多個參考元件的電流。感測電路140可以根據參考突觸位準實施求和比較步驟。在本發明的另一實施例中,控制器110可以進一步配置為將比較結果轉換為指定的特定二進制碼。
第6圖為根據本發明一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。在第6圖中,突觸陣列控制器110透過控制線CG_Wa傳送IN_LSB位元輸入電壓值High至突觸列中選定的突觸記憶元件Wa。並且,如第3圖所示,記憶元件Wa輸出2μA,其為輸出High乘以兩位元權重的函數。與突觸記憶元件Wa相關聯(例如,權重參數的權重位元0及1)的Cur_Wa為2µA。參考單位中的一組參考突觸記憶元件(參考元件R0、R1、R2、R3、R4及R5)中的每一個皆使用與主突觸記憶元件相同類型的突觸記憶元件實現。這些突觸記憶元件耦接至對應的參考訊號線(例如,訊號線CG_R0至訊號線CG_R5),彼此並聯連接,並且共用通用位元線。因為當透過對應的訊號線接收電壓時各參考突觸記憶元件具有特定的突觸權重,各參考突觸記憶元件在輸出線(位元線BL)上輸出特定參考電流。在此,六個參考突觸記憶元件中的每一個配置為產生漸增的不同電流。例如,從陣列的頂部至底部的順序,啟動的參考元件R5配置為輸出6μA;啟動的參考元件R4可以輸出5μA;啟動的參考元件R3可以輸出4μA;啟動的參考元件R2可以輸出3μA;啟動的參考元件R1可以輸出2μA;並且,啟動的參考元件R0可以輸出1μA。感測放大器的閾值位準可以定義為7μA。當通用位元線電流位準Cur大於閾值位準時,感測電路140的串列化輸出SO為高。當通用位元線電流位準Cur未大於閾值位準時,感測電路140的串列化輸出SO為低。
在步驟S1中,感測電路140感測到總電流值8µA(等於2µA的電流位準Cur_Wa加上6µA的電流位準Cur_R5)大於參考閾值位準7µA,且因此產生二進制碼High或H的判斷結果。接下來,在步驟S2中,感測電路140接續感測到總電流值7µA(等於2µA的電流位準Cur_Wa加上5µA的電流位準Cur_R4)等於參考閾值位準7µA,且因此產生二進制碼low或L的判斷結果。接下來,在步驟S2中,感測電路140感測到總電流值6µA(等於2µA的電流位準Cur_Wa加上4µA的電流位準Cur_R3)小於參考閾值位準7µA,且因此產生二進制碼L的判斷結果。接下來,在步驟S4中,感測電路140感測到總電流值5µA(等於2µA的電流位準Cur_Wa加上3µA的電流位準Cur_R2)小於參考閾值位準7µA,且因此產生二進制碼L的判斷結果。
接下來,在步驟S5中,感測電路140感測到總電流值4µA(等於2µA的電流位準Cur_Wa加上2µA的電流位準Cur_R1)小於參考閾值位準7µA,且因此產生二進制碼L的判斷結果。接下來,在步驟S6中,感測電路140感測到總電流值3µA(等於2µA的電流位準Cur_Wa加上1µA的電流位準Cur_R0)小於參考閾值位準7µA,且因此產生二進制碼L的判斷結果。接下來,在步驟S7中,感測電路140感測到總電流值2µA(等於2µA的電流位準Cur_Wa)小於參考閾值位準7µA,且因此產生二進制碼L的判斷結果。
在另一實施例中,以這種方式,從感測電路140串列化地感測位元線電流位準Cur,且因此透過七個步驟以產生序列「HLLLLLL」。儘管在第6圖中針對特定的感測電路140繪示了特定位元線中的用於電流位準Cur的一個特定序列,但是各感測電路140可以根據各位元線電流位準Cur以在各串列化輸出SO節點中產生不同的序列。然後,透過對數量進行計數,可以將溫度計碼轉換為二進制碼,並且因為溫度計碼具有一個高訊號,在此處的陣列的行中產生用於溫度計碼「HLLLLLL」的二進制碼「001」。相較於溫度計碼,二進制碼僅需較少的位元數以儲存相同的資訊。然後,可以透過適當的移位以將二進制碼適當地累加至累加器電路150的暫存器位置,以更新累加器輸出AO。
如第6圖所示,當在輸入LSB(IN_LSB)與加權位元0、1之間進行計算時,不可以進行位元的移位。當計算為用於輸入LSB(IN_LSB)及加權位元2、3時,可以進行2位元移位。在輸入LSB(IN_LSB)與加權位元4、5之間進行計算時,可以移位4位元。在計算用於輸入LSB(IN_LSB)及加權位元6、7時,可以進行6位元移位。在輸入CSB(IN_CSB)與加權位元0、1之間進行計算時,可以進行1位元移位。在輸入CSB(IN_CSB)與加權位元2、3之間進行計算時,可以進行3位元移位。在輸入CSB(IN_CSB)與加權位元4、5之間進行計算時,可以進行5位元移位。在輸入CSB(IN_CSB)與加權位元6、7之間進行計算時,可以進行7位元移位。在輸入MSB(IN_MSB)與加權位元0、1之間進行計算時,可以進行2位元移位。在輸入MSB(IN_MSB)與加權位元2、3之間進行計算時,可以進行4位元移位。在輸入MSB(IN_MSB)與加權位元4、5之間進行計算時,可以進行6位元移位。在輸入MSB(IN_MSB)與加權位元6、7之間進行計算時,可以進行8位元移位。對於權重及輸入位元的其他精度,可以透過適當的位元移位計數以進行類似地串連化地累加。
第7圖為根據本發明另一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。如第6圖中所述,感測電路140根據指定的參考突觸位準以執行求和比較步驟。
在步驟S1中,當發現輸出電流和13µA(包含第一參考突觸位準6µA)大於參考閾值7µA時,感測電路140產生二進制碼H。接下來在步驟S2中,當發現輸出電流和12µA(包含第二參考突觸位準5µA)大於參考閾值位準7µA時,感測電路140產生二進制碼H。
接下來在步驟S3中,當發現輸出電流和11µA(包含第三參考突觸位準4µA)大於參考閾值位準7µA時,感測電路140產生二進制碼H。接下來在步驟S4中,當發現輸出電流和10µA(包含第四參考突觸位準3µA)大於參考閾值位準7µA時,感測電路140產生二進制碼H。
接下來在步驟S5中,當發現輸出電流和9µA(包含第五參考突觸位準2µA)大於參考閾值位準7µA時,感測電路140產生二進制碼H。接下來在步驟S6中,當發現輸出電流和8µA(包含第六參考突觸位準1µA)大於參考閾值位準7µA時,感測電路140產生二進制碼H。最後,在步驟S7中,當發現輸出電流和7µA(包含第七參考突觸位準0µA)等於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。
在另一實施例中,以這種方式,串列化地從感測電路140感測位元線電流位準Cur,並透過七個步驟產生序列「HHHHHHL」。透過對數量進行計數,可以將溫度計碼轉換為二進制碼,並且因為溫度計碼具有六個高訊號,在此處的行中產生用於溫度計碼「HHHHHHL」的二進制碼「110」。然後,可以透過適當的移位以將二進制碼適當地累加至累加器電路150的暫存器位置,以更新累加器輸出AO。如第7圖所示,當在輸入LSB(IN_LSB)與加權位元0、1之間進行計算時,不可以進行位元的移位。當在輸入LSB(IN_LSB)與加權位元2、3之間進行計算時,可以進行二位元移位。當在輸入LSB(IN_LSB)與加權位元4、5之間進行計算時,可以進行四位元移位。當在輸入LSB(IN_LSB)與加權位元6、7之間進行計算時,可以進行六位元移位。
第8圖為根據本發明另一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。如第6圖及第7圖中所述,感測電路140根據指定的參考突觸位準以執行求和比較步驟。在此情況下,突觸陣列控制器110透過控制線CG_Wa傳送IN_LSB位元輸入電壓值Low至突觸列中選定的突觸記憶元件Wa。並且,如第3圖所示,突觸記憶元件Wa的輸出接近0μA,其為輸入low乘以兩位元的權重的函數。電流位準Cur_Wa與突觸記憶元件Wa(例如,權重參數的加權位元0及1)相關聯。
在步驟S1中,當發現總輸出電流接近6µA,其僅包第一參考突觸位準6µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。接下來在步驟S2中,當發現總輸出電流接近5µA,其僅包含第二參考突觸位準5µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。
接下來在步驟S3中,當發現總輸出電流接近4µA,其僅包含第二參考突觸位準4µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。接下來在步驟S4中,當發現總電流值大約為3µA,其僅包含第二參考突觸位準3µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。
下來在步驟S5中,當發現總電流值大約為2µA,其僅包含第二參考突觸位準2µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。接下來在步驟S6中,當發現總電流值大約為1µA,其僅包含第二參考突觸位準1µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。接下來,在步驟S7中,當發現總電流值大約為0µA,其僅包含第七參考突觸位準0µA,而小於參考閾值位準7µA時,感測電路140產生二進制碼L的判斷結果。
在另一實施例中,以這種方式,串列化地從感測電路140感測位元線電流位準Cur,並且如第8圖所示,從七個步驟中產生序列「LLLLLLL」。透過對數量進行計數,可以將溫度計碼轉換為二進制碼,並且因為溫度計碼具有零個高訊號,因此產生用於溫度計碼「LLLLLLL」的二進制碼「000」。然後,因為此添加不會改變累加器輸出AO,所以此二進制碼可以不被添加至累加器電路150的暫存器位置。
第9圖為根據本發明另一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。
在此情況中,突觸陣列控制器110透過控制線CG_Wa傳送IN_LSB位元輸入電壓值High至突觸列中選定的突觸記憶元件Wa。並且,參考突觸位準為透過參考突觸陣列130中的零個、單個參考元件或者參考元件的組合以獲得的。來自參考元件的輸出位準為二進制加權的(例如,電流位準Cur_R2為電流位準Cur_R1的兩倍,並且電流位準Cur_R1為電流位準Cur_R0的兩倍)。當使用二進制加權的參考元件時,用於執行與第7圖相同的操作所需的參考元件的數量從六個(例如,第7圖中的電流位準Cur_R5至電流位準Cur_R0)減少至三個(第9圖中的電流位準Cur_R2至電流位準Cur_R0)。這樣可以減少參考元件陣列所需要的面積,並增加神經網路計算單位的面積效率。
在步驟S1中,感測電路140感測到總電流值8µA(包含(i)透過電流位準Cur_Wa的突觸記憶元件的2µA,以及(ii)透過參考元件R2、R1的組合以獲取的突觸位準1的6µA)大於參考閾值位準7µA,並且產生二進制碼H的判斷結果。在步驟S2中,感測電路140接續感測到總電流值7µA(包含(i)透過電流位準Cur_Wa的突觸記憶元件的2µA,以及(ii)透過參考元件R2、R0的組合以獲取的突觸位準2的5µA)等於參考閾值位準7µA,並且產生二進制碼L的判斷結果。
接下來,在步驟S3中,感測電路140感測到總電流值6µA(包含(i)透過電流位準Cur_Wa的突觸記憶元件的2µA,以及(ii)透過參考元件R2以獲取的突觸位準3的4µA)小於參考閾值位準7µA,並且產生二進制碼L的判斷結果。接下來,在步驟S4中,感測電路140感測到總電流值5µA(包含(i)透過電流位準Cur_Wa的突觸記憶元件的2µA,以及(ii)透過參考元件R1、R0的組合以獲取的突觸位準4的3µA)小於參考閾值位準7µA,並且產生二進制碼L的判斷結果。
接下來,在步驟S5中,感測電路140感測到總電流值4µA(包含(i)透過電流位準Cur_Wa的突觸記憶元件的2µA,以及(ii)透過參考元件R1以獲取的突觸位準5的2µA)小於參考閾值位準7µA,並且產生二進制碼L的判斷結果。接下來,在步驟S6中,感測電路140感測到總電流值3µA(包含(i)透過電流位準Cur_Wa的突觸記憶元件的2µA,以及(ii)透過參考元件R0以獲取的突觸位準6的1µA)小於參考閾值位準7µA,並且產生二進制碼L的判斷結果。接下來,在步驟S7中,感測電路140感測到總電流值2µA(包含不透過參考元件獲取的突觸位準7的0µA),其僅包含電流位準Cur_Wa的2µA,小於參考閾值位準7µA,並且產生二進制碼L的判斷結果。
在另一實施例中,以這種方式,串列化地從感測電路140感測位元線電流位準Cur,並且如第9圖所示,從七個步驟中產生序列「HLLLLLL」。透過對數量簡單地進行計數,可以將溫度計碼轉換為二進制碼,並且因為溫度計碼具有一個高訊號,因此在所示的行中產生用於溫度計碼「HLLLLLL」的二進制碼「001」。然後,因為此添加不會改變累加器輸出AO,所以此二進制碼可以不被添加至累加器電路150的暫存器位置。可以透過適當的移位以將二進制碼適當地累加至累加器電路150的暫存器位置,以更新累加器輸出AO。如第9圖所示,當在輸入LSB(IN_LSB)與加權位元0、1之間進行計算時,不可以進行位元的移位。當在輸入LSB(IN_LSB)與加權位元2、3之間進行計算時,可以進行二位元移位。當在輸入LSB(IN_LSB)與加權位元4、5之間進行計算時,可以進行四位元移位。當在輸入LSB(IN_LSB)與加權位元6、7之間進行計算時,可以進行六位元移位。
100:神經網路計算單元
110:控制器
120:主突觸陣列
130:參考突觸陣列
140:感測電路
150:累加器電路
300:突觸記憶體陣列
600,700,800,900:流程
BL:位元線
SO:串列化輸出
AO:累加器輸出
CG_W,CG_R,CG,CG1,CG2,CG3,CG4,CG_R0,CG_R1,CG_R2,CG_R3,CG_R4,CG_R5,CG_Wa,CG_Wb,CG_Wc,CG_Wd,SG,SG1,SG2:訊號線
Cur,Cur_W,Cur_Wa,Cur_Wb,Cur_Wc,Cur_Wd,Cur_R,Cur_R0,Cur_R1,Cur_R2,Cur_R3,Cur_R4,Cur_R5:電流位準
Wa,Wb,Wc,Wd:突觸記憶元件
R0,R1,R2,R3,R4,R5:參考元件
SL:限位開關
R_w:可變電阻
W:權重記憶體
T,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12:時間段
t1~t21:子時間段
501,503,505,507,509,511,513,515,517,519,S1,S2,S3,S4,S5,S6,S7,610,710,810,910:步驟
透過以下對於附圖的說明,本發明的特徵對於本領域具有通常知識者將變得顯而易見。應當理解的是,附圖僅繪示了本發明的典型實施例,且因此不應將附圖視為對本發明範圍的限制,並且將透過使用附圖以附加的特徵及細節來說明本發明。
第1圖為根據本發明一實施例的神經網路計算單元的方塊圖。
第2A圖至第2H圖為使用各種記憶元件的根據本發明一實施例的例示性突觸記憶元件的示意圖。
第3圖為根據本發明一實施例的突觸記憶體陣列的簡化方塊圖。
第4圖為根據本發明的一實施例的第1圖的計算電路的操作的時序圖。
第5圖為說明根據本發明一實施例的串列化感測操作的過程的流程圖。
第6圖為根據本發明一實施例的比較位元線中所測量的總電流與預設閾值電流組的過程的流程圖。
第7圖為根據本發明另一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。
第8圖為根據本發明另一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。
第9圖為根據本發明另一實施例的比較位元線中所測量的總電流與一組預設閾值電流的過程的流程圖。
110:控制器
120:主突觸陣列
130:參考突觸陣列
140:感測電路
150:累加器電路
BL:位元線
SO:串列化輸出
AO:累加器輸出
CG_W,CG_R:訊號線
Cur,Cur_W,Cur_R:電流位準
Claims (20)
- 一種神經網路計算單元,其包含: 一位元線; 一記憶體陣列,具有複數個記憶塊,各該記憶塊具有一個或多於一個的一記憶元件,各該記憶元件連接至該位元線;以及 一控制電路,配置為: 依序施加一串列化輸入至該記憶元件,使得該記憶元件響應於該串列化輸入依序產生複數個輸出,其中各該輸出對應於該串列化輸入與儲存在該記憶元件中的一權重值的乘積;以及 為該控制電路設定一組參考電流位準,該組參考電流位準中的每一個具有特定的電流量,以控制該記憶元件產生與對應於該組參考電流位準的個別輸出電流。
- 如請求項1所述之神經網路計算單元,其中該控制電路進一步配置為依序施加的一串列化電壓輸入至該記憶元件,使得該記憶元件對應於該串列化電壓輸入依序產生各輸出電流,其中該輸出電流對應於該串列化電壓輸入與儲存在該記憶元件中的該權重值的乘積。
- 如請求項2所述之神經網路計算單元,其中該計算單元進一步包含一感測電路,用以依序接收該位元線中的該記憶元件的該輸出電流。
- 如請求項3所述之神經網路計算單元,其中該計算單元進一步包含一累加器電路,其耦接至該感測電路,並且該累加器電路配置為將所接收的溫度計碼形式的該輸出電流之值轉換為二進制碼。
- 如請求項4所述之神經網路計算單元,其中該累加器電路進一步配置為以該控制電路所定義的位元移位方式累加經轉換的值。
- 如請求項2所述之神經網路計算單元,其中該計算單元進一步包含: 一主突觸陣列,包含連接至該位元線的複數個記憶元件;並且 該控制電路進一步配置為: 將對應於複數個串列輸入資料的複數個電壓輸入串列化地施加至該主突觸陣列中對應的該複數個記憶元件。
- 如請求項6所述之神經網路計算單元,其中該串列輸入資料的最高有效位元係最先輸入至對應的該記憶元件中。
- 如請求項7所述之神經網路計算單元,其中該神經網路計算單元在不完全計算最低有效位元的情況下完成計算。
- 如請求項6所述之神經網路計算單元,其中該計算單元進一步包含: 一參考突觸陣列,包含連接至該位元線的複數個參考元件,其中該複數個參考元件係配置為產生相同或不同的預定義輸出電流至該位元線;並且 該控制電路進一步配置為: 施加對應於複數個串列輸入資料的複數個輸入電壓至選定的該參考突觸陣列的該複數個參考元件。
- 如請求項9所述之神經網路計算單元,其中該控制電路進一步配置為關閉或者啟動零個、一個或多個該參考元件,以產生對應於由該控制電路所定義的該組參考電流位準的個別輸出。
- 如請求項9所述之神經網路計算單元,其中來自該參考元件的該輸出電流為二進制加權的。
- 如請求項3所述之神經網路計算單元,其中該感測電路進一步配置為感測一第一記憶塊中的記憶元件的輸出電流與一第二記憶塊中的記憶元件的輸出電流之和。
- 如請求項12所述之神經網路計算單元,其中該感測電路進一步配置為獲取以下各項之和:(i)對應於施加至該第一記憶塊的一串列輸入資料中的一個位元的輸出電流,以及(ii)對應於該控制電路所定義的各參考電流位準的一參考元件的輸出電流。
- 如請求項13所述之神經網路計算單元,其中該感測電路進一步配置為: 獲取該位元線中的一總輸出電流; 產生特定的一閾值電流位準與所獲得的該總輸出電流之位準之間的一比較結果;以及 轉換該比較結果為對應的二進制訊號。
- 如請求項14所述之神經網路計算單元,其中該感測電路進一步配置以為下列步驟設定一迭代次數:(i)該閾值電流位準與該總輸出電流之位準之間的比較,以及(ii)將該比較結果轉換為對應的二進制訊號。
- 一種裝置,包含: 一記憶元件陣列,包含: 一位元線; 一第一組記憶元件,分別連接至該位元線; 一第二組記憶元件,分別連接至該位元線; 一控制電路; 一第一組控制線,連接該控制電路至該第一組記憶元件,其中該控制電路配置為依序以串列格式施加一電壓輸入資料至該第一組記憶元件,使其響應於該電壓輸入資料依序產生輸出電流,其中輸出電流對應於該電壓輸入資料與儲存於各該記憶元件中的權重的乘績; 一第二組控制線,連接該控制電路至該第二組記憶元件,其中該控制電路配置為設定一組參考電流位準,該組參考電流位準中的每一個具有特定的電流量,使得該第二組記憶元件產生對應於該組參考電流位準的個別輸出電流;以及 一感測電路,用以接收來自該位元線中的該第一組記憶元件及該第二組記憶元件的輸出電流。
- 如請求項16所述之裝置,其中該記憶元件為快閃記憶體、可變電阻式記憶體、鐵電場效記憶體或具有權重記憶體的邏輯電晶體,其中的每一個皆經過程式化以產生預定義的特定輸出電流。
- 如請求項16所述之裝置,其進一步包含一累加器電路,其耦接至該感測電路,其中該累加器電路配置為以該控制電路定義的位元移位方式從該感測電路接收經處理的訊號值。
- 如請求項16所述之裝置,其中該感測電路進一步配置為串聯化地接收該位元線中的相應一個輸出電流,並將其與預定義的閾值進行比較。
- 如請求項18所述之裝置,其中該累加器電路進一步配置為執行將接收的訊號值從溫度計碼轉換為二進制碼,並且以該控制電路定義的位元移位方式累加經轉換的二進制碼。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962942923P | 2019-12-03 | 2019-12-03 | |
US62/942,923 | 2019-12-03 | ||
US17/109,114 US20210166110A1 (en) | 2019-12-03 | 2020-12-01 | Serialized neural network computing unit |
US17/109,114 | 2020-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202131331A true TW202131331A (zh) | 2021-08-16 |
Family
ID=76091568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109142688A TW202131331A (zh) | 2019-12-03 | 2020-12-03 | 串列化神經網路計算單元 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20210166110A1 (zh) |
EP (1) | EP4070243A4 (zh) |
KR (1) | KR20220112280A (zh) |
CN (1) | CN114902241A (zh) |
TW (1) | TW202131331A (zh) |
WO (1) | WO2021113298A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI806640B (zh) * | 2022-01-11 | 2023-06-21 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12019905B2 (en) | 2021-08-02 | 2024-06-25 | Qualcomm Incorporated | Digital compute in memory |
WO2023177269A1 (en) * | 2022-03-18 | 2023-09-21 | Samsung Electronics Co., Ltd. | Neural network based method and device |
CN116863936B (zh) * | 2023-09-04 | 2023-12-19 | 之江实验室 | 一种基于FeFET存算一体阵列的语音识别方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5256911A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Neural network with multiplexed snyaptic processing |
US6081456A (en) * | 1999-02-04 | 2000-06-27 | Tower Semiconductor Ltd. | Bit line control circuit for a memory array using 2-bit non-volatile memory cells |
US9846644B2 (en) * | 2013-01-14 | 2017-12-19 | Hewlett Packard Enterprise Development Lp | Nonvolatile memory array logic |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
EP3769426A4 (en) * | 2018-03-19 | 2021-12-22 | Mythic, Inc. | SYSTEM AND METHOD FOR CALCULATION OF MIXED SIGNALS |
US11048434B2 (en) * | 2018-09-28 | 2021-06-29 | Intel Corporation | Compute in memory circuits with time-to-digital computation |
US11132176B2 (en) * | 2019-03-20 | 2021-09-28 | Macronix International Co., Ltd. | Non-volatile computing method in flash memory |
TWI760746B (zh) * | 2019-05-22 | 2022-04-11 | 力旺電子股份有限公司 | 運用於類神經網路系統的乘積累加電路之控制電路 |
-
2020
- 2020-12-01 US US17/109,114 patent/US20210166110A1/en active Pending
- 2020-12-02 EP EP20896243.1A patent/EP4070243A4/en active Pending
- 2020-12-02 KR KR1020227022815A patent/KR20220112280A/ko unknown
- 2020-12-02 WO PCT/US2020/062802 patent/WO2021113298A1/en unknown
- 2020-12-02 CN CN202080082888.1A patent/CN114902241A/zh active Pending
- 2020-12-03 TW TW109142688A patent/TW202131331A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI806640B (zh) * | 2022-01-11 | 2023-06-21 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114902241A (zh) | 2022-08-12 |
WO2021113298A1 (en) | 2021-06-10 |
KR20220112280A (ko) | 2022-08-10 |
EP4070243A4 (en) | 2024-02-28 |
EP4070243A1 (en) | 2022-10-12 |
US20210166110A1 (en) | 2021-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202131331A (zh) | 串列化神經網路計算單元 | |
US20230113231A1 (en) | Methods and systems of operating a neural circuit in a non-volatile memory based neural-array | |
TWI793277B (zh) | 用於混合訊號運算的系統與方法 | |
CN111406265A (zh) | 具有非易失性突触阵列的神经网络电路 | |
TWI744899B (zh) | 運用於類神經網路系統的乘積累加電路之相關控制電路 | |
US20190122105A1 (en) | Training of artificial neural networks | |
KR102542532B1 (ko) | 혼합-신호 연산 시스템 및 방법 | |
JP2022533539A (ja) | ビットオーダバイナリ加重乗算器/積算器 | |
US11018186B2 (en) | Multi-level memristor elements | |
US10891108B2 (en) | Calculation device | |
KR20180088258A (ko) | 뉴로모픽 연산 장치 | |
EP4022426A1 (en) | Refactoring mac operations | |
US11783171B2 (en) | Computing circuitry | |
TWI771835B (zh) | 用於神經網路之推理引擎及其操作方法 | |
TWI761860B (zh) | 記憶體設備及使用記憶體之方法 | |
He et al. | Rvcomp: Analog variation compensation for rram-based in-memory computing | |
US20220101142A1 (en) | Neural network accelerators resilient to conductance drift | |
US20240223207A1 (en) | Multiply-accumulate successive approximation devices and methods | |
US20240220742A1 (en) | Multiply-accumulate successive approximation devices and methods | |
CN112447228A (zh) | 执行乘法累加运算的非易失性存储器件 | |
US20230177319A1 (en) | Methods and systems of operating a neural circuit in a non-volatile memory based neural-array | |
US20240152332A1 (en) | Method for approximatively determining a scalar product using a matrix circuit | |
WO2024141221A1 (en) | Multiply-accumulate successive approximation devices and methods | |
US20210241084A1 (en) | Neural network unit | |
CN111985630B (zh) | 运用于类神经网络系统的乘积累加电路的控制电路 |