TWI699762B - 使用半導體記憶元件之類神經網路運算電路及動作方法 - Google Patents
使用半導體記憶元件之類神經網路運算電路及動作方法 Download PDFInfo
- Publication number
- TWI699762B TWI699762B TW107130584A TW107130584A TWI699762B TW I699762 B TWI699762 B TW I699762B TW 107130584 A TW107130584 A TW 107130584A TW 107130584 A TW107130584 A TW 107130584A TW I699762 B TWI699762 B TW I699762B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- aforementioned
- output
- word line
- neural network
- Prior art date
Links
Images
Classifications
-
- 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
- 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
-
- 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
- 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/08—Address circuits; Decoders; Word-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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- 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/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Neurology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Semiconductor Memories (AREA)
- Memory System (AREA)
- Image Analysis (AREA)
Abstract
將在類神經網路運算使用之鏈結權重係數儲存在記憶體陣列,藉由字線驅動電路而驅動與類神經網路之輸入資料對應之字線,藉由行選擇電路而將與成為運算對象之鏈結權重係數連接之位元線連接於運算電路,在運算電路判定於位元線流動之單元電流之總和。將運算電路之判定結果保存在輸出保持電路,當作下一層之類神經網路之輸入而設定在字線驅動電路。控制電路是基於網路構成資訊保持電路所保持之資訊,對字線驅動電路及行選擇電路,指示在類神經網路運算使用之字線及位元線之選擇。
Description
本發明是涉及可低消耗功率化與大規模積體化之使用非揮發性半導體記憶元件之類神經網路運算電路、及其動作方法。
隨著資訊通訊技術之發展,將各式各樣之物以網路連繫之IoT(Internet of Things,物聯網)技術之來臨受到矚目。在IoT技術,雖然期待藉由將各種電子機器連接於網路而令機器高性能化,但作為實現更高性能化之技術,近年來正活耀地研究開發令電子機器自己進行學習與判斷之人工智慧(AI:Artificial Intelligence)技術。
人工智慧技術是使用到工學性地模仿人類之腦型資訊處理之類神經網路技術,將類神經網路運算以高速、低消耗功率來實行之半導體積體電路正在被積極地研究開發。
類神經網路是由被稱作神經元(有時被稱作感知器)之基本元件而構成,神經元是以分別具有不同之鏈結權重係數之被稱作突觸之鏈結來與複數個輸入連接,可藉由將複數個神經元相互連接而進行圖像辨識、語音辨識這樣之高度之運算處理。在神經元是進行將各輸入與各鏈
結權重係數之相乘結果全部加起來之乘積累加運算動作。
在非專利文獻1揭示到使用可變電阻型非揮發性記憶體之類神經網路運算電路之例。令類神經網路運算電路是使用可設定類比電阻值(電導)之可變電阻型非揮發性記憶體而構成,將相當於鏈結權重係數之類比電阻值(電導)儲存在非揮發性記憶體元件,將相當於輸入之類比電壓值施加在非揮發性記憶體元件,利用此時在非揮發性記憶體元件流動之類比電流值。在神經元進行之乘積累加運算動作是如下而進行:將複數個鏈結權重係數作為類比電阻值(電導)而儲存在複數個非揮發性記憶體元件,將相當於複數個輸入之複數個類比電壓值施加在複數個非揮發性記憶體元件,將把在複數個非揮發性記憶體元件流動之電流值加起來之類比電流值當作乘積累加運算結果。使用非揮發性記憶體元件之類神經網路運算電路可實現低消耗功率化,近年來正在積極地進行可設定類比電阻值(電導)之可變電阻型非揮發性記憶體之製程開發、裝置開發、及電路開發。
專利文獻1提案了將神經元資訊儲存在記憶體裝置、可構成類神經網路之類神經核電路。其採用如下之構成:在1個核將各神經元之突觸鏈結性資訊、神經元參數、神經元之路由資料保持在記憶體裝置,因應路由資料而令神經元核內之啟動事件按路由往別的神經元核。
專利文獻1:日本特表2015-534172號公報
非專利文獻1:M. Prezioso, et al., “Training and operation of an integrated neuromorphic network based on metal-oxide memristors,” Nature, no. 521, pp. 61-64, 2015.
然而,關於前述之專利文獻1之類神經核,為了構成任意之層數及節點數之類神經網路,必須將複數個核連結。因此,需要對1個晶片搭載複數個核連結電路,有著電路規模會因應類神經網路之規模增大而變大之課題。又,由於可搭載之神經元數量是依周邊電路之尺寸而決定,故神經元之大規模積體化會變得困難。
本發明之使用半導體記憶元件之類神經網路運算電路是藉由以下而構成:複數條字線;複數條位元線,以與前述複數條字線交叉之形式而排列;複數個記憶體單元,配置在前述複數條字線與前述複數條位元線之交點,分別保持類神經網路之鏈結權重係數;字線驅動電路,可將前述複數條字線中之任意之1條以上之字線驅動;行選擇電路,可選擇前述複數條位元線中之任意之位元線;運算電路,將與由前述行選擇電路選擇之位元線連
接之複數個記憶體單元群所保持之複數個鏈結權重係數、以及、以前述複數條字線之驅動狀態顯示之輸入資料的乘積累加運算,藉由判定在由前述行選擇電路選擇之位元線流動之電流而予以實施;輸出保持電路,保持前述運算電路之輸出資料;網路構成資訊保持電路,保持網路構成資訊,前述網路構成資訊含有分配到類神經網路之各鏈結權重係數之記憶體單元之位址資訊;控制電路,具有基於前述網路構成資訊而將來自外部之輸入資料設置在前述字線驅動電路之功能、基於前述網路構成資訊而將前述輸出保持電路之保持資料設置在前述字線驅動電路之功能、基於前述網路構成資訊而將在運算使用之位元線指定於前述行選擇電路之功能。
控制電路是參考網路構成資訊而將輸入層之輸入資料設定於字線驅動電路。又,參考網路構成資訊而將位元線選擇、連接於運算電路。運算電路是利用在被選擇之位元線流動之被字線驅動電路驅動之記憶體單元之單元電流之總和,而輸出類神經網路運算結果。當輸出節點數比運算電路之搭載個數大的情況下,無法以1次之運算電路動作來獲得全部之輸出,故變更位元線之選擇,使用不同之記憶體單元而再次進行運算。某層之運算結果是保持在輸出保存電路,當輸出全部湊齊後,參考網路構成資訊,當作下一層之輸入而設定字線驅動電路。因應網路構成資訊而反覆進行了任意之層數分之運算動作後,將輸出層之資料從輸出保持電路輸出,令類神經網路運算動作
結束。
本發明是藉由網路構成資訊而管理記憶體陣列內之鏈結權重係數之配置,藉此,可將某層之運算結果當作下一層之輸入而再次設定記憶體陣列之字線,以1個記憶體陣列運算複數層之類神經網路是成為可能。又,可藉由將網路構成資訊改寫,而使用同一記憶體陣列來構成不同之類神經網路。此外,由於使用行選擇電路將記憶體陣列與運算電路分離,故保持鏈結權重係數之記憶體單元可高度地積體化,可令電路所搭載之神經元數量大幅地增加。
由以上之效果,可提供如下之使用非揮發性半導體記憶元件之類神經網路運算電路:使用1個記憶體陣列,能以省面積的方式實現以大量之神經元及複數層而構成之類神經網路之運算。
1:輸入層
2:隱藏層
3:輸出層
10:神經元
11:鏈結權重
20:記憶體陣列
21:記憶體單元
21A:正側記憶體單元
21B:負側記憶體單元
22:字線
23:位元線
23A:正側位元線
23B:負側位元線
24:字線驅動電路
25:行選擇電路
26:運算電路
27:輸出保持電路
28:網路構成資訊保持電路
29:控制電路
30、31、32:選擇器電路
40:行選擇訊號
41:列位址訊號
42:設定資料
b:偏差值係數
f:活性化函數
w0~wn:鏈結權重係數
x0~xn:輸入
y:輸出
N1:第1層之節點數
N2:第2層之節點數
Nn-1:第N-1層之節點數
Nn:第N層之節點數
圖1是顯示類神經網路、尤其是顯示深度類神經網路之構成例的圖。
圖2是顯示類神經網路運算之神經元之計算的圖。
圖3是顯示本發明之將偏差值之計算予以考慮之類神經網路運算之神經元之計算的圖。
圖4是顯示身為活性化函數之例之階梯函數的圖。
圖5是顯示第一實施形態的圖。
圖6是顯示網路構成資訊之構成例的圖。
圖7A是顯示類神經網路之鏈結權重係數之映射例及各構成要件之連接例的圖。
圖7B是表示保持某1個鏈結權重係數wi,j之記憶體單元21之連接關係的圖。
圖8是顯示用來解說本發明之類神經網路運算動作之類神經網路之例的圖。
圖9是顯示圖8之類神經網路之網路構成資訊之例的圖。
圖10是說明圖8之類神經網路運算時之各構成要件之動作的概念圖。
圖11是說明圖8之類神經網路運算時之各構成要件之動作的概念圖。
圖12是說明圖8之類神經網路運算時之各構成要件之動作的概念圖。
圖13是說明圖8之類神經網路運算時之各構成要件之動作的概念圖。
圖14是顯示本發明之第二實施形態的圖。
圖15是顯示本發明之第三實施形態的圖。
以下,參考圖面而說明本發明之實施形態。
<類神經網路運算>
首先,說明類神經網路運算之基礎理論。
圖1是顯示深度類神經網路之構成的圖。類
神經網路是由以下而構成:讓輸入資料輸入之輸入層1、接收輸入層1之輸入資料而進行運算處理之隱藏層2(有時被稱作中間層)、接收隱藏層2之輸出資料而進行運算處理之輸出層3。在輸入層1、隱藏層2、輸出層3分別存在有多個被稱作神經元10之類神經網路之基本元件,各神經元10是透過鏈結權重11而連接。複數個鏈結權重11是分別具有不同之鏈結權重係數而將神經元間連接。複數個輸入資料輸入至神經元10,神經元10是進行該等複數個輸入資料與對應之鏈結權重係數的乘積累加運算動作,將其當作輸出資料而輸出。在此,隱藏層2是把複數段(在圖1是4段)之神經元連結之構成,形成深的類神經網路,故如圖1所示之類神經網路被稱作深度類神經網路。
圖2是顯示類神經網路運算之神經元之計算的圖,將神經元10所進行之計算式顯示在圖2之式子(1)、式子(2)。神經元10是令n個輸入x1~xn與分別具有鏈結權重係數w1~wn之鏈結權重連接,進行輸入x1~xn與鏈結權重係數w1~wn之乘積累加運算。神經元10具有偏差值係數b,在輸入x1~xn與鏈結權重係數w1~wn之乘積累加運算結果加上偏差值係數b。神經元10具有活性化函數f,對於在輸入x1~xn與鏈結權重係數w1~wn之乘積累加運算結果加上偏差值係數b後之結果進行活性化函數之運算處理,將輸出y輸出。
圖3是顯示在類神經網路運算之神經元之計算中,將偏差值係數b之運算分配到輸入x0與鏈結權重係
數w0之情況下之計算的圖,將神經元10所進行之計算式顯示在圖3之式子(1)、式子(2)。在前述之圖2,神經元10是進行輸入x1~xn與鏈結權重係數w1~wn之乘積累加運算、以及、偏差值係數b之加法運算,但如圖3所示,可以將偏差值係數b之加法運算當作輸入x0=1、鏈結權重係數w0=b,而解釋成將n+1個輸入x0~xn以分別具有鏈結權重係數w0~wn之鏈結權重而連接之神經元10。如圖3之式子(1)、式子(2)所示,可以將神經元10之計算只用輸入x0~xn與鏈結權重係數w0~wn之乘積累加運算來簡潔地表現。本實施形態是如圖3所示,令偏差值係數b之加法運算之表現是以輸入x0=1與鏈結權重係數w0=b來表現。
圖4是顯示身為類神經網路運算之神經元之活性化函數f之例之階梯函數的圖,x軸是活性化函數f之輸入u,y軸是活性化函數f之輸出f(u)。如圖4所示,階梯函數是如下之函數:當輸入u為負值(<0)的情況下,將輸出f(u)=0輸出,當輸入u為正值(0)的情況下,將輸出f(u)=1輸出。若在前述之圖3之神經元10使用階梯函數之活性化函數f,則當輸入x0~xn與鏈結權重係數w0~wn之乘積累加運算結果為負值的情況下,將輸出y=0輸出,當乘積累加運算結果為正值的情況下,將輸出y=1輸出。
雖然以後是將階梯函數當作活性化函數之例而使用,但可在類神經網路運算使用之其他之活性化函數還有正比例函數等,本發明之活性函數並非限定於階梯函數。
<類神經網路運算電路>
圖5是顯示與第一實施形態相關之使用非揮發性半導體記憶元件之類神經網路運算電路之詳細構成的圖。
記憶體單元21是縱橫配置而構成記憶體陣列20。記憶體單元21是與橫方向配置之字線22、縱方向配置之位元線23連接。記憶體單元是使用非揮發性半導體記憶元件而構成,當電壓施加於字線22時,令與自身狀態對應之單元電流朝位元線23流動。記憶體單元21是在字線22與位元線23之交點配置非揮發性半導體記憶元件之交叉點型,或是將非揮發性半導體記憶元件與電晶體串聯連接而構成1單元,藉由字線22而驅動電晶體之閘極,將位元線23與電晶體之源極或非揮發性半導體記憶元件之另一端連接。
關於記憶體單元21之非揮發性半導體記憶元件,可利用身為可設定任意之單元電流之元件之可變電阻型元件、可變磁阻型元件、相變化型元件、鐵電性記憶元件。
字線驅動電路24是因應類神經網路之輸入而將電壓施加於各字線22之電路。具有在複數條任意之字線22同時施加電壓之功能。字線驅動電路24是輸入列位址訊號41及設定資料42,將設定資料42設置在列位址訊號41所指示之位置,藉此設置各字線22之驅動狀態。對1條字線22設定驅動狀態之設定資料42是具有1位元以上之資料寬。例如,當1條表現1位元之資料寬的情況下,將0資料
分配於GND位準設定,將1資料分配於高位準設定。又,當1條表現多位元的情況下,將字線22之電壓位準分配於各資料。字線驅動電路是因應電壓位準之分配與各字線22之設定資料42而將電壓施加於字線22。又,在被列位址訊號41指示、將設定資料42設定之字線22以外之字線22是設定GND位準。
行選擇電路25是如下之電路:基於從控制電路29輸出之行選擇訊號40,從複數條位元線23將在類神經網路運算使用之1條以上之位元線23選擇而連接於運算電路26。對1個記憶體陣列20搭載1個以上之運算電路26。當搭載複數個運算電路26的情況下,將記憶體陣列20於行方向依運算電路數而分割,由各運算電路26負責各分割區域。行選擇電路25是對各自之運算電路26,使用共通之行選擇訊號40,從各分割區域將在類神經網路運算使用之位元線23選擇而連接。
運算電路26是判定在連接之位元線23流動之電流值,藉此,實現活性化函數之運算動作。本發明之運算電路是取數位值。例如,將2條位元線23之大小以感測放大器電路比較而輸出(0,1)之2值資料,藉此實現階梯函數之運算動作。又,亦有將在位元線23流動之電流值以A/D轉換電路轉換成數位訊號之方式。以運算電路26進行之活性化函數之運算之結果是累積在輸出保持電路27。輸出保持電路27是使用正反器、鎖存器電路等而構成。在圖5之第一實施形態,累積在輸出保持電路27之資料是可往
外部輸出。
控制電路29是參考保持在網路構成資訊保持電路28之網路構成資訊,對字線驅動電路24輸出列位址訊號41,指示用來設定輸入資料或輸出保持電路27之保持資料之字線區域。當設定類神經網路之輸入層1之輸入資料的情況下,以選擇器電路30選擇外部輸入,朝字線驅動電路24指示設定資料42。當設定隱藏層2以後之輸入資料的情況下,以選擇器電路30選擇輸出保持電路27之資料,朝字線驅動電路24指示設定資料42。又,控制電路29是參考網路構成資訊,生成對行選擇電路25指示關於與運算電路26連接之位元線23之選擇之行選擇訊號40。
網路構成資訊是含有類神經網路之各層之節點數、隱藏層2之總數、分配到各鏈結權重係數之記憶體單元21之記憶體陣列20內之位址資訊。在圖6顯示網路構成資訊之構成例。將各層之節點數及鏈結權重係數之開始分配位址以清單形式而保持。鏈結權重係數之開始分配位址與記憶體陣列20內之鏈結權重係數之映射之關係性是在後述與動作例一起詳細說明。
網路構成資訊保持電路28是將網路構成資訊保持之記憶電路。為了可將網路構成資訊改寫,使用RAM(Random Access Memory)而構成。另,當搭載有用來將記憶體陣列20之一部分當作數位記憶體而使用之存取電路的情況下,亦可以是將記憶體陣列20之一部分當作網路構成資訊保持電路28而使用。
接著,說明用到第一實施形態之神經元之計算。
在本發明,字線22之各偏差值狀態是相當於神經元之計算式中之輸入x0~xn。藉由在以相同之行選擇訊號40選擇、與連接於相同之運算電路26之位元線23連接之記憶體單元21中之以相同之字線22驅動之1個以上之記憶體單元21,而表現1個鏈結權重係數。
以下,說明以第一實施形態計算神經元之例,其中,各輸入x0~xn是取(0,1)之2值,鏈結權重係數是使用2個記憶體單元21之單元電流值之差分而以帶有符號之類比值表現。又,活性化函數是使用階梯函數。
在圖7A顯示含有使用於說明之記憶體單元21、記憶體陣列20、字線驅動電路24、行選擇電路25及運算電路26的簡略圖。在圖7A,記憶體陣列20是於行方向分割成8個區域,各區域分別與1個運算電路26對應。行選擇電路25是對各運算電路26,基於行選擇訊號40將2條位元線23選擇而連接。
與藉由行選擇電路25而連接於各運算電路26之2條位元線23連接之記憶體單元21是以共通之字線驅動之2個記憶體單元21,表示1個鏈結權重係數。在圖7B表示保持某1個鏈結權重係數wi,j之記憶體單元21之連接關係。為了設定帶有符號之類比值之鏈結權重係數,將2個記憶體單元21之其中一方當作用於表示正鏈結權重係數之正側記憶體單元21A來使用,將另一方當作用於表示
負鏈結權重係數之負側記憶體單元21B來使用。以在字線22施加高位準時之正側記憶體單元21A之單元電流與負側記憶體單元21B之單元電流之差分會與鏈結權重係數成比例的方式,設定各單元電流。藉由行選擇電路25選擇之2條位元線23是分成與正側記憶體單元21A連接之正側位元線23A、以及、與負側記憶體單元21B連接之負側位元線23B。雖然為了使標記簡略化而令圖中之正側位元線23A與負側位元線23B鄰接,但只要是以共通之行選擇訊號40選擇之位元線23,則在記憶體陣列20內之位置可為任意。
字線驅動電路24是因應設定之輸入之(0,1)資料,在設定1之字線22施加高位準之電壓,在設定0之字線22施加GND位準。在字線22被施加高位準之電壓之記憶體單元21,有與各單元之保持狀態對應之單元電流流動。另一方面,在字線22為GND位準之記憶體單元21,未有單元電流流動。因此,在正側位元線23A流動的是字線22為高位準之正側記憶體單元21A之電流之總和,在負側位元線23B流動的是字線22為高位準之負側記憶體單元21B之電流之總和。
運算電路26是將連接之正側位元線23A與負側位元線23B之電流比較,若正側位元線23A之電流大則輸出1,若負側位元線23B之電流大則輸出0。藉由該動作,可獲得將以字線22之驅動狀態表示之輸入、以及、以正側記憶體單元21A與負側記憶體單元21B之單元電流之差分表示之鏈結權重係數的總和代入階梯函數之結果。
接著,說明以前述之神經元作為節點之類神經網路之運算動作。
在圖8顯示用來說明之類神經網路的圖。採用之3層構造是令輸入層1為9個節點、令隱藏層2為17個節點、令輸出層3為8個節點。輸入層1及隱藏層2之節點中之節點0是用於表現加上偏差值係數之節點(以下,稱作偏差值節點(bias node)),其輸入值是固定為1。來自外部之輸入資料x1~x8是以8位元之(0,1)資料顯示。
在圖9顯示用來說明之類神經網路之網路構成資訊。網路構成資訊之第1層之資訊含有:輸入層1之節點是除了偏差值節點之外有8個節點;從輸入層1至隱藏層2之鏈結權重係數之分配之字線開始位址是位址0號;位元線開始位址是位址0號。網路構成資訊之第2層之資訊含有:隱藏層2之節點數是除了偏差值節點之外有16個節點;從隱藏層2至輸出層3之鏈結權重係數之分配之字線開始位址是位址0號;位元線開始位址是位址2號。網路構成資訊之第3層之資訊含有:輸出層3之節點數是8個節點。
圖7A記載著將在圖8及圖9顯示之類神經網路之鏈結權重係數往記憶體陣列區域映射之結果。將圖8之類神經網路之從輸入層1往隱藏層2之鏈結權重係數以wi,j表示,將從隱藏層2往輸出層3之鏈結權重係數以w’i,j表示。各i是表示輸入側之節點號碼,j是表示輸出側之節點號碼。例如,從圖8之輸入層1之偏差值節點(節點0)往隱藏層2之節點1之鏈結權重係數是w0,1,從隱藏層2之節點1
往輸出層3之節點1之鏈結權重係數是w’1,1。
記憶體陣列20內之位址是依各字線22與分割記憶體區域內之正負位元線之組合而賦予,配置w0,1~w0,8之位置是相當於字線位址0號、位元線位址0號。
如圖7A所示,從輸入層1往隱藏層2之鏈結權重係數是分為屬於位元線位址0號之wx,1~wx,8(x=0~8)與屬於位元線位址1號之wx,9~wx,16(x=0~8)而映射。在本構成,從某層往下一層之鏈結權重係數是當下一層之節點數超過運算電路數的情況下,令字線區域共通、在不同位元線位址進行映射。針對某字線驅動狀態(亦即輸入),以1次之運算電路動作獲得之輸出節點是受限於搭載之運算電路數。然而,藉由使用前述之映射方法,令字線驅動狀態維持原樣且將行選擇訊號40切換而使運算電路26動作,藉此,可將運算電路數以上之輸出節點數予以處理。
雖然在圖7A之鏈結權重之映射及圖9之網路構成資訊所顯示之例子,從某層往下一層之鏈結權重係數是以映射於連續之位元線位址作為前提,而只管理鏈結權重係數之開始分配位址,但如果是以控制電路29可指示從某層往下一層之鏈結權重係數之分配位置的方式而具有網路構成資訊、硬體之資訊,則並非一定要映射於連續之位元線位址。
使用圖10、圖11、圖12、圖13,顯示令某輸入進入至以圖8、圖9顯示之類神經網路時之運算流程。在
圖10,首先,從外部輸入將輸入層1之資料輸入,設置於字線驅動電路24。此時,控制電路29是參考圖9之網路構成資訊之第1層之資訊。由第1層之資訊可得知:輸入層1之節點數是除了偏差值節點之外有8個節點;輸入層1與下一層之鏈結權重係數是配置在從字線位址0號開始之字線22。因此,將身為偏差值節點之輸入之資料1設置在字線位址0號之字線,將輸入資料設置在連續之字線位址1號至8號。又,由第1層之資訊可得知:輸入層1與下一層之鏈結權重係數是配置在從位元線位址0號開始之領域。因此,行選擇電路25是將以位元線位址0號顯示之正側位元線23A及負側位元線23B連接於運算電路26。搭載之8個運算電路26是分別對正側位元線23A與負側位元線23B之電流進行比較判定,將(0,1)輸出。輸出之結果是成為隱藏層2之節點1至節點8之資料,保存在輸出保持電路27。
接著,在圖11,由網路構成資訊之第2層之資訊可得知:隱藏層2之節點是除了偏差值節點之外有16個節點。由於圖10之運算動作只得到隱藏層2之節點1至節點8的運算結果,故控制電路29令位元線位址之值增加,指示行選擇電路25選擇位址1號。行選擇電路25是將以位元線位址1號顯示之正側位元線23A及負側位元線23B連接於運算電路26。再次以運算電路26實施電流之比較判定,藉此,可獲得隱藏層2之節點9至節點16之資料。將運算電路26之輸出結果追加保存在輸出保持電路27。
接著,在圖12,由於隱藏層2之運算結束,
故將輸出保持電路27之保持資料傳送至字線驅動電路24。由網路構成資訊之第2層之資訊可得知:隱藏層2與輸出層3之鏈結權重係數是配置在從字線位址0號開始之字線22。因此,將身為偏差值節點之輸入之資料1設置在字線位址0號之字線,將隱藏層2之節點1至節點16之資料設置在連續之字線位址1號至16號。
最後,在圖13,由網路構成資訊之第2層之資訊可得知:隱藏層2與輸出層3之鏈結權重係數是配置在從位元線位址2號開始之領域。因此,行選擇電路25是將以位元線位址2號顯示之正側位元線23A及負側位元線23B連接於運算電路26。運算電路26是對正側位元線23A與負側位元線23B之電流進行比較判定,將(0,1)輸出。運算電路26之輸出結果是保存在輸出保持電路27,作為輸出層3之運算結果而從外部輸出來輸出。
藉由以上之動作,可使用1個記憶體陣列20所保持之鏈結權重係數而實施在圖8顯示之類神經網路之運算。即便類神經網路之層數增加,亦如前述,可藉由反覆以下之動作而實現:參考網路構成資訊,將輸出保持電路27之保持資料設定在字線驅動電路24,選擇位元線23,以運算電路26獲得運算結果而保存在輸出保持電路27。
圖14是顯示與本發明之第二實施形態相關之使用非揮發性半導體記憶元件之類神經網路運算電路之詳細構成的圖。藉由選擇器電路31選擇外部輸入與運算電路26之輸出,保存在輸出保持電路27。當要以來自外部之
輸入資料進行設定時,將資料暫時保存在輸出保持電路27,之後才進行設定在字線驅動電路24之動作。又,亦可以是將從運算電路26輸出之資料、以及、從外部輸入而輸入之資料在輸出保持電路27結合,設定在字線驅動電路24。
圖15是顯示與本發明之第三實施形態相關之使用非揮發性半導體記憶元件之類神經網路運算電路之詳細構成的圖。其構成是:令運算電路26之輸出與外部輸出連接,藉由選擇器電路32而選擇運算電路26之輸出與外部輸入,連接於輸出保持電路27。與第二實施形態同樣,當要以來自外部之輸入資料進行設定時,將資料暫時保存在輸出保持電路27,之後才進行設定在字線驅動電路24之動作。又,亦可以是將從運算電路26輸出之資料、以及、從外部輸入而輸入之資料在輸出保持電路27結合,設定在字線驅動電路24。
雖然網路構成資訊保持電路28在圖5、圖14、圖15是以包含於控制電路29中之形式而記載,但並非限制其搭載處。又,關於在實施形態之說明用到之圖面中之各構成要件之實現方法及搭載數量,目的是舉例顯示,並非限制其實施形態。
另,本發明之記憶體陣列20並非一定要全面用在類神經網路之鏈結權重係數之安裝,亦可以是除了本發明之構成要件之外還搭載數位記憶體之存取電路,將記憶體陣列20之一部分當作數位記憶體來使用。又,當將一
部分當作數位記憶體來使用的情況下,亦可以是將各構成要件之功能用在數位記憶體存取。
雖然以上是以本發明之實施形態進行說明,但本發明之使用非揮發性半導體記憶元件之類神經網路運算電路並非僅限定於上述之舉例顯示,對於在不超脫本發明之要旨之範圍內進行了各式各樣變更等之情況亦為有效。
與本發明相關之使用非揮發性半導體記憶元件之類神經網路運算電路是藉由網路構成資訊而管理類神經網路之構成,藉此,使用1個記憶體陣列來構成深度類神經網路成為可能。又,亦可以是藉由在記憶體陣列之不同領域保持複數個類神經網路之鏈結權重係數,而在1個記憶體陣列保持複數個類神經網路。又,由於本發明之構成是令記憶體陣列部與運算電路分離,故記憶體陣列部可高度地積體化,搭載大量之神經元成為可能。
此外,由於亦可以將記憶體陣列之一部分當作數位記憶體來使用,故可將作為類神經網路運算電路、數位記憶體之功能同時搭載。
所以,可作為將複數個大規模之類神經網路運算以1個核而實現之巨集來活用,又,亦可以是與馮紐曼型處理器併用、作為具有類神經網路運算之加速器與數位記憶體之兩功能之巨集來活用。該等活用是例如對搭載有自己進行學習與判斷之人工智慧(AI:Artificial
Intelligence)技術之半導體積體電路、以及、將這些予以搭載之電子機器等有用。
20‧‧‧記憶體陣列
21‧‧‧記憶體單元
22‧‧‧字線
23‧‧‧位元線
24‧‧‧字線驅動電路
25‧‧‧行選擇電路
26‧‧‧運算電路
27‧‧‧輸出保持電路
28‧‧‧網路構成資訊保持電路
29‧‧‧控制電路
30‧‧‧選擇器電路
40‧‧‧行選擇訊號
41‧‧‧列位址訊號
42‧‧‧設定資料
Claims (6)
- 一種半導體積體電路,具備:複數條字線;複數條位元線,以與前述複數條字線交叉之形式而排列;複數個記憶體單元,配置在前述複數條字線與前述複數條位元線之交點,分別保持類神經網路之鏈結權重係數;字線驅動電路,可將前述複數條字線中之任意之1條以上之字線驅動;行選擇電路,可選擇前述複數條位元線中之任意之位元線;運算電路,使用流動於前述行選擇電路選擇之位元線之電流來進行乘積累加運算,並藉由判定前述電流來決定輸出資料,前述乘積累加運算是與由前述行選擇電路選擇之位元線連接之複數個記憶體單元群所保持之複數個鏈結權重係數、以及以前述複數條字線之驅動狀態顯示之輸入資料的乘積累加運算;輸出保持電路,保持前述運算電路之輸出資料;網路構成資訊保持電路,保持網路構成資訊,前述網路構成資訊含有分配到類神經網路之各鏈結權重係數之記憶體單元之位址資訊;以及控制電路,具有基於前述網路構成資訊而將來自外部之輸入資料設置在前述字線驅動電路之功能、基於前述 網路構成資訊而將前述輸出保持電路之保持資料設置在前述字線驅動電路之功能、基於前述網路構成資訊而將在運算使用之位元線指定於前述行選擇電路之功能。
- 如請求項1之半導體積體電路,其具有如下之功能:將某字線驅動狀態與某位元線選擇狀態下之前述運算電路之輸出資料保存在前述輸出保持電路後,在令前述字線驅動狀態維持原樣之情形下將選擇之位元線變更,將前述運算電路之輸出資料追加到前述輸出保持電路而保存,將結合之資料設定在前述字線驅動電路。
- 如請求項1之半導體積體電路,其更具備:選擇器電路,從前述來自外部之輸入資料與前述輸出保持電路之保持資料,選擇與前述字線驅動電路連接之資料。
- 如請求項1之半導體積體電路,其更具備:選擇器電路,從前述來自外部之輸入資料與前述運算電路之輸出資料,選擇與前述輸出保持電路連接之資料。
- 一種類神經網路半導體積體電路之動作方法,使用半導體積體電路,前述半導體積體電路具備:複數條字線;複數條位元線,以與前述複數條字線交叉之形式而排列;複數個記憶體單元,配置在前述複數條字線與前述複數條位元線之交點,分別保持類神經網路之鏈結權重係數;字線驅動電路,可將前述複數條字線中之任意之1條以上之字線驅動;行選擇電路,可選擇前述複數條位 元線中之任意之位元線;運算電路,使用流動於前述行選擇電路選擇之位元線之電流來進行乘積累加運算,並藉由判定前述電流來決定輸出資料,前述乘積累加運算是與由前述行選擇電路選擇之位元線連接之複數個記憶體單元群所保持之複數個鏈結權重係數、以及以前述複數條字線之驅動狀態顯示之輸入資料的乘積累加運算;輸出保持電路,保持前述運算電路之輸出資料;網路構成資訊保持電路,保持網路構成資訊,該網路構成資訊含有分配到類神經網路之各鏈結權重係數之記憶體單元之位址資訊;以及控制電路,具有基於前述網路構成資訊而將來自外部之輸入資料設置在前述字線驅動電路之功能、基於前述網路構成資訊而將前述輸出保持電路之保持資料設置在前述字線驅動電路之功能、基於前述網路構成資訊而將在運算使用之位元線指定於前述行選擇電路之功能,基於前述網路構成資訊,將前述來自外部之輸入資料以驅動與第一記憶體單元群對應之第一字線區域的方式而設定,將與前述第一記憶體單元群對應之1條以上之第一位元線群選擇而連接於前述運算電路,前述第一記憶體單元群是保持類神經網路之輸入層及身為該輸入層之下一層之第一隱藏層之鏈結權重係數的記憶體單元群,將從前述運算電路獲得之運算結果保持在前述輸出保持電路,將前述輸出保持電路之保持資料當作身為前述第一隱藏層之下一層之第二隱藏層之輸入資料,以驅動與保持前述第一隱藏層及前述第二隱藏層之鏈結權重係數之 第二記憶體單元群對應之第二字線區域的方式而設定,將與前述第二記憶體單元群對應之1條以上之第二位元線群選擇而連接於前述運算電路,將從前述運算電路獲得之結果保持在前述輸出保持電路,當前述運算電路之輸出不為輸出層的情況下,更對下一層之隱藏層使用對應之記憶體單元群而將與對前述第二隱藏層之動作同樣之動作反覆實施。
- 如請求項5之類神經網路半導體積體電路之動作方法,其將前述第一位元線群或前述第二位元線群選擇而連接於前述運算電路,且將從前述運算電路獲得之運算結果保持在前述輸出保持電路之動作是一面變更位元線選擇一面反覆實施直到將下一層之節點之運算結果全部獲得為止。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-171953 | 2017-09-07 | ||
JP2017171953 | 2017-09-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201921354A TW201921354A (zh) | 2019-06-01 |
TWI699762B true TWI699762B (zh) | 2020-07-21 |
Family
ID=65634134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107130584A TWI699762B (zh) | 2017-09-07 | 2018-08-31 | 使用半導體記憶元件之類神經網路運算電路及動作方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11495289B2 (zh) |
EP (1) | EP3680824A4 (zh) |
JP (1) | JP6844013B2 (zh) |
CN (1) | CN111052153B (zh) |
TW (1) | TWI699762B (zh) |
WO (1) | WO2019049686A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11514300B2 (en) | 2019-06-14 | 2022-11-29 | Macronix International Co., Ltd. | Resistor circuit, artificial intelligence chip and method for manufacturing the same |
US11233049B2 (en) | 2019-06-14 | 2022-01-25 | Macronix International Co., Ltd. | Neuromorphic computing device |
TWI698810B (zh) * | 2019-06-14 | 2020-07-11 | 旺宏電子股份有限公司 | 類神經計算裝置 |
KR102389413B1 (ko) * | 2019-08-21 | 2022-04-21 | 연세대학교 산학협력단 | 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법 |
CN110751279B (zh) * | 2019-09-02 | 2022-10-14 | 北京大学 | 一种铁电电容耦合神经网络电路结构及神经网络中向量与矩阵的乘法运算方法 |
CN112580790B (zh) * | 2019-09-29 | 2023-06-30 | 华为技术有限公司 | 神经网络计算电路、芯片及系统 |
TWI732702B (zh) * | 2019-11-22 | 2021-07-01 | 旺宏電子股份有限公司 | 記憶體內運算器 |
CN115171322A (zh) * | 2022-05-27 | 2022-10-11 | 国网江苏省电力有限公司 | 一种电缆沟火灾预警及危险性判断系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5087826A (en) * | 1990-12-28 | 1992-02-11 | Intel Corporation | Multi-layer neural network employing multiplexed output neurons |
US5274746A (en) * | 1989-12-26 | 1993-12-28 | Mitsubishi Denki Kabushiki Kaisha | Coupling element for semiconductor neural network device |
US20020032670A1 (en) * | 1990-01-24 | 2002-03-14 | Hitachi, Ltd. | Neural network processing system using semiconductor memories |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4988891A (en) * | 1989-05-09 | 1991-01-29 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor neural network including photosensitive coupling elements |
US5058180A (en) * | 1990-04-30 | 1991-10-15 | National Semiconductor Corporation | Neural network apparatus and method for pattern recognition |
JPH0454685A (ja) * | 1990-06-22 | 1992-02-21 | Kobe Steel Ltd | 状熊学習装置及び状態推定装置 |
EP0482408A3 (en) * | 1990-10-22 | 1993-12-01 | Motorola Inc | Digital neural network computation ring |
US5237210A (en) * | 1992-03-12 | 1993-08-17 | Intel Corporation | Neural network accomodating parallel synaptic weight adjustments for correlation learning algorithms |
JP3056324B2 (ja) * | 1992-04-01 | 2000-06-26 | 株式会社日立製作所 | 学習/想起方法および装置 |
US5371834A (en) * | 1992-08-28 | 1994-12-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Adaptive neuron model--an architecture for the rapid learning of nonlinear topological transformations |
JP4191218B2 (ja) * | 2006-10-12 | 2008-12-03 | エルピーダメモリ株式会社 | メモリ回路及び半導体装置 |
US9159020B2 (en) | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
US20150324691A1 (en) * | 2014-05-07 | 2015-11-12 | Seagate Technology Llc | Neural network connections using nonvolatile memory devices |
JP6375884B2 (ja) * | 2014-11-13 | 2018-08-22 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその制御方法 |
-
2018
- 2018-08-24 WO PCT/JP2018/031298 patent/WO2019049686A1/ja unknown
- 2018-08-24 CN CN201880057223.8A patent/CN111052153B/zh active Active
- 2018-08-24 JP JP2019540878A patent/JP6844013B2/ja active Active
- 2018-08-24 EP EP18853797.1A patent/EP3680824A4/en active Pending
- 2018-08-31 TW TW107130584A patent/TWI699762B/zh active
-
2020
- 2020-03-04 US US16/809,365 patent/US11495289B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274746A (en) * | 1989-12-26 | 1993-12-28 | Mitsubishi Denki Kabushiki Kaisha | Coupling element for semiconductor neural network device |
US20020032670A1 (en) * | 1990-01-24 | 2002-03-14 | Hitachi, Ltd. | Neural network processing system using semiconductor memories |
US5087826A (en) * | 1990-12-28 | 1992-02-11 | Intel Corporation | Multi-layer neural network employing multiplexed output neurons |
Also Published As
Publication number | Publication date |
---|---|
TW201921354A (zh) | 2019-06-01 |
JP6844013B2 (ja) | 2021-03-17 |
US20200202925A1 (en) | 2020-06-25 |
CN111052153B (zh) | 2023-07-14 |
WO2019049686A1 (ja) | 2019-03-14 |
EP3680824A4 (en) | 2020-11-04 |
US11495289B2 (en) | 2022-11-08 |
EP3680824A1 (en) | 2020-07-15 |
JPWO2019049686A1 (ja) | 2020-08-06 |
CN111052153A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI699762B (zh) | 使用半導體記憶元件之類神經網路運算電路及動作方法 | |
US11361216B2 (en) | Neural network circuits having non-volatile synapse arrays | |
TWI674534B (zh) | 使用非揮發性半導體記憶元件之類神經網路運算電路 | |
US11531871B2 (en) | Stacked neuromorphic devices and neuromorphic computing systems | |
JP5963315B2 (ja) | シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路 | |
US11620505B2 (en) | Neuromorphic package devices and neuromorphic computing systems | |
JP6956191B2 (ja) | 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路 | |
JP2021507349A (ja) | 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法 | |
WO2019043990A1 (ja) | ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム | |
Krishnan et al. | Interconnect-aware area and energy optimization for in-memory acceleration of DNNs | |
US11055611B2 (en) | Circuit for CMOS based resistive processing unit | |
TWI699711B (zh) | 記憶體裝置及其製造方法 | |
Merkel et al. | Neuromemristive systems: boosting efficiency through brain-inspired computing | |
JP6568222B2 (ja) | 半導体システムおよび計算方法 | |
Agrawal et al. | X-CHANGR: Changing memristive crossbar mapping for mitigating line-resistance induced accuracy degradation in deep neural networks | |
Fernando et al. | 3D memristor crossbar architecture for a multicore neuromorphic system | |
JP2021039477A (ja) | 演算装置及び積和演算システム | |
KR102607860B1 (ko) | 3차원 적층 시냅스 구조를 갖는 뉴로모픽 장치 및 이를 포함하는 메모리 장치 | |
US8983886B2 (en) | Self-evolvable logic fabric | |
Lu et al. | NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware | |
US11562240B2 (en) | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference | |
JP6902000B2 (ja) | 演算装置 | |
WO2023162632A1 (ja) | ニューラルネットワーク演算回路、その制御回路、および、その制御方法 | |
JP6826063B2 (ja) | 演算装置 | |
Wang | RRAM-Based In-Memory Computing Architecture Designs |