TWI830511B - 記憶體內運算裝置及其運算方法 - Google Patents
記憶體內運算裝置及其運算方法 Download PDFInfo
- Publication number
- TWI830511B TWI830511B TW111145425A TW111145425A TWI830511B TW I830511 B TWI830511 B TW I830511B TW 111145425 A TW111145425 A TW 111145425A TW 111145425 A TW111145425 A TW 111145425A TW I830511 B TWI830511 B TW I830511B
- Authority
- TW
- Taiwan
- Prior art keywords
- shift
- shifted
- storage area
- memory
- memory cells
- 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/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/2253—Address circuits or decoders
- G11C11/2255—Bit-line or column 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
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- 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/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- 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/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4097—Bit-line organisation, e.g. bit-line layout, folded bit lines
-
- 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
- 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
- G11C7/1012—Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Biophysics (AREA)
- Mathematical Optimization (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
一種記憶體內運算裝置及其運算方法。記憶體陣列包括儲存已移位權重值的已移位權重儲存區、儲存移位單元數的移位資訊儲存區以及儲存移位單元量的移位單元量儲存區。移位復原電路依據已移位權重值的移位單元數以及行移位單元量復原已移位乘積和的權重移位量,而產生多個已復原乘積和。
Description
本發明是有關於一種運算裝置,且特別是有關於一種記憶體內運算裝置及其運算方法。
人工智慧(Artificial Intelligence,AI)是指透過電腦程式來呈現人類智慧的技術。目前已經在影像辨識、語言分析、棋類遊戲等方面達到優越的水準。以影像辨識的AI網絡為例,卷積神經網路(Convolutional neural network,CNN)是目前廣泛用於處理影像辨識的方案,其中包括許多乘積累加(multiply-accumulate,MAC)的計算,其涉及將儲存於記憶陣列中的每一記憶體元件中的值(權重)乘以輸入值且對所有乘積求和,而涉及大量資料移動,因此導致高功率消耗。
本發明提供一種記憶體內運算裝置及其運算方法,可有效降低記憶體內運算裝置的功率消耗。
本發明的記憶體內運算裝置包括記憶體控制電路、記憶體陣列、感測電路以及移位復原電路。記憶體陣列耦接記憶體控制電路,記憶體控制電路控制記憶體陣列的資料存取。該記憶體陣列包括已移位權重儲存區、移位資訊儲存區以及移位單元量儲存區。已移位權重儲存區儲存多個已移位權重值,依據記憶體控制電路透過多條第一字元線提供的多個輸入信號提供多個已移位乘積和。移位資訊儲存區儲存已移位權重值的移位單元數,依據記憶體控制電路透過多條第二字元線提供的多個控制信號提供已移位權重值的移位單元數。移位單元量儲存區儲存移位單元量,依據輸入信號提供行移位單元量,其中行移位單元量等於輸入信號與移位單元量的乘積和。感測電路耦接記憶體陣列,感測已移位權重儲存區、移位資訊儲存區以及移位單元量儲存區提供的多個電流信號,以獲得已移位乘積和、已移位權重值的移位單元數以及行移位單元量。移位復原電路耦接感測電路,依據已移位權重值的移位單元數以及行移位單元量復原已移位乘積和的權重移位量,以產生多個已復原乘積和。
本發明還提供一種記憶體內運算裝置的運算方法,其中記憶體內運算裝置包括記憶體陣列,記憶體陣列包括已移位權重儲存區、移位資訊儲存區以及移位單元量儲存區,已移位權重儲存區儲存多個已移位權重值,移位資訊儲存區儲存已移位權重值的移位單元數,移位單元量儲存區儲存移位單元量,記憶體內運算裝置的運算方法包括下列步驟。提供多個控制信號至該移位資訊儲
存區,以使移位資訊儲存區提供已移位權重值的移位單元數。提供多個輸入信號至已移位權重儲存區與移位單元量儲存區,以使已移位權重儲存區提供多個已移位乘積和,並使移位單元量儲存區提供行移位單元量,其中行移位單元量等於輸入信號與移位單元量的乘積和。依據已移位權重值的移位單元數以及行移位單元量復原已移位乘積和的權重移位量,以產生多個已復原乘積和。
基于上述,本發明實施例的記憶體陣列包括儲存已移位權重值的已移位權重儲存區、儲存移位單元數的移位資訊儲存區以及儲存移位單元量的移位單元量儲存區,移位復原電路可依據已移位權重值的移位單元數以及行移位單元量復原已移位乘積和的權重移位量,而產生多個已復原乘積和。如此藉由已移位權重儲存區儲存已移位權重值,而後再利用已移位權重值的移位單元數以及行移位單元量來復原已移位乘積和的權重移位量,可有效減少記憶體內運算裝置在進行乘積和運算時位元線上的電流值,而可大幅降低記憶體內運算裝置的功率消耗。
102:記憶體控制電路
104:記憶體陣列
106:感測電路
108:移位復原電路
110:已移位權重儲存區
112:移位資訊儲存區
114:移位單元量儲存區
302:移位暫存器
304:及加法器電路
BL0~BLm、BLu、BLK0~BLKm:位元線
NSF0~NSFm、NSF[m:0]:移位單元數
WL0~WLj、WLF0~WLFi:字元線
X0~XFi:控制信號
X0~Xj:輸入信號
YS0~YSm、Ys[m:0]:已移位乘積和
Yu:行移位單元量
Y0~Ym、Y[m:0]:已復原乘積和
C1~C3:記憶胞
SA0~SAm、SAu:感測器
SL:源極線
AD0~ADm:移位調整量
S502~S506:記憶體內運算裝置的運算方法步驟
圖1是依照本發明一實施例所繪示的記憶體內運算裝置的示意圖。
圖2是依照本發明另一實施例所繪示的記憶體內運算裝置的電路示意圖。
圖3是依照本發明一實施例所繪示的移位復原單元的示意圖。
圖4是依照本發明另一實施例所繪示的記憶體內運算裝置的示意圖。
圖5是依照本發明一實施例所繪示的記憶體內運算裝置的運算方法的流程圖。
為了使本發明之內容可以被更容易明瞭,以下特舉實施例做為本發明確實能夠據以實施的範例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟,係代表相同或類似部件。
以下請參照圖1,圖1是依照本發明一實施例所繪示的記憶體內運算裝置的示意圖。記憶體內運算裝置可包括記憶體控制電路102、記憶體陣列104、感測電路106以及移位復原電路108,記憶體陣列104耦接記憶體控制電路102與感測電路106,感測電路106還耦接移位復原電路。記憶體陣列104可包括已移位權重儲存區110、移位資訊儲存區112以及移位單元量儲存區114,其中已移位權重儲存區110儲存多個已移位權重值,移位資訊儲存區112儲存對應多個已移位權重值的移位單元數NSF0~NSFm,移位單元量儲存區114儲存移位單元量。
記憶體控制電路102可控制記憶體陣列104的資料存取。進一步來說,記憶體控制電路102可透過字元線WLF0~WLFi提供多個控制信號X0~XFi給移位資訊儲存區112,以使移位資訊儲
存區112依據控制信號X0~XFi提供多個已移位權重值的移位單元數NSF0~NSFm,其中i、m為正整數。此外,記憶體控制電路102可透過字元線WL0~WLj(其中j為正整數)提供多個輸入信號X0~Xj給已移位權重儲存區110與移位單元量儲存區114,以使已移位權重儲存區110依據多個輸入信號X0~Xj提供多個已移位乘積和YS0~YSm,並使移位單元量儲存區114依據輸入信號X0~Xj提供透過位元線BLu提供行移位單元量Yu。其中已移位乘積和YS0~YSm為輸入信號X0~Xj與多個已移位權重值的乘積和,舉例來說,已移位乘積和YS0與YS1可如下式(1)、(2)所示:
其中Xn為字元線WLn的輸入信號,SF0、SF1分別為位元線BL0與BL1上的記憶胞所儲存的已移位權重值的移位量。Wn0為位元線BL0上對應字元線WLn的記憶胞所儲存的已移位權重值進行移位量SF0的移位前的權重值,Wn1為位元線BL1上對應字元線WLn的記憶胞所儲存的已移位權重值進行移位量SF1的移位前的權重值,也就是說,Wn0與Wn1為原始權重值,“Wn0-SF0”為位元線BL0上對應字元線WLn的記憶胞所儲存的已移位權重值,而“Wn1-SF1”為位元線BL1上對應字元線WLn的記憶胞所儲存的已移位權重值。依此類推,YS2~YSm也可以類似式(1)或(2)的方式表示,在此不再贅述。
感測電路106可感測已移位權重儲存區110、移位單元量
儲存區114以及移位資訊儲存區112提供的電流信號,以獲得已移位乘積和YS0~YSm、位元線BL0~BLm所對應的已移位權重值的移位單元數NSF0~NSFm以及行移位單元量Yu,其中行移位單元量Yu等於輸入信號X0~Xj與移位單元量儲存區114儲存的移位單元量的乘積和。移位復原電路108則可依據移位單元數NSF0~NSFm以及行移位單元量Yu復原已移位乘積和YS0~YSm的權重移位量,以產生多個已復原乘積和Y0~Ym。舉例來說,已復原乘積和Y0可如下式(3)所示:
如式(3)所示,在本實施例中,行移位單元量Yu為輸入信號X0~Xj與移位單元量的乘積和(在本實施例中移位單元量儲存區114中各記憶胞儲存的移位單元量設為1,然不以此為限,移位單元量可視需求設定),且行移位單元量Yu與移位單元數NSF0的乘積值(移位調整量)被設計為等於位元線BL0所對應的已移位權重值的移位量SF0,因此最後可獲得權重移位量已被復原的已復原乘積和Y0。類似地,已復原乘積和Y1可如下式(4)所示:
依此類推,Y2~Ym也可以類似式(3)或(4)的方式表示,在此不再贅述。
如此藉由已移位權重儲存區110儲存已移位權重值,而後再利用已移位權重值的移位單元數NSF0~NSFm以及行移位單元量Yu來復原已移位乘積和YS0~YSm的權重移位量,可有效減少記憶體內運算裝置在進行乘積和運算時位元線BL0~BLm上的電流值,而可大幅降低記憶體內運算裝置的功率消耗。
圖2是依照本發明另一實施例所繪示的記憶體內運算裝置的電路示意圖。進一步來說,圖1實施例的記憶體陣列104可例如圖2所示,以NOR快閃記憶體陣列來實施,其中已移位權重儲存區110包括多個記憶胞C1,移位資訊儲存區112包括多個記憶胞C2,移位單元量儲存區114包括多個記憶胞C3,此外,感測電路106包括感測器SA0~SAm以及感測器SAu。
各個記憶胞C1、C2與C3的一端透過對應的位元線耦接對應的感測器,另一端耦接源極線SL,控制端則耦接對應的字元線。舉例來說,位元線BL0上的記憶胞C1與C2的一端透過位元線BL0耦接感測器SA0,另一端耦接源極線SL,位元線BL0上的記憶胞C1的控制端耦接字元線WL0~WLj,位元線BL0上的記憶胞C2的控制端則耦接字元線WLF0~WLFi。此外,位元線BLu上的記憶胞C3的一端耦接位元線BLu,另一端耦接源極線SL,控制端則耦接字元線WL0~WLj與WLF0~WLFi。
多個記憶胞C1可自字元線WL0~WLj接收輸入信號X0~Xj,以依據輸入信號X0~Xj透過位元線BL0~BLm提供表示已移位乘積和YS0~YSm的電流信號給感測器SA0~SAm。記憶體控制電路102可例如透過調整記憶胞C1的臨界電壓值或電阻值來調整記憶胞C1所儲存的已移位權重值,而使已移位權重值具有預期的偏移量,其中在同一位元線上的記憶胞C1儲存的已移位權重值具有相同的移位量,例如在位元線BL0上的記憶胞C1所儲存的已移位權重值可具有相同的移位量SF0。多個記憶胞C2可自字元線WLF0~WLFi接收控制信號XF0~XFi,以依據控制信號XF0~XFi透過位元線BL0~BLm提供表示已移位權重值的移位單元數NSF0~NSFm的電流信號給感測器SA0~SAm。此外,多個記憶胞C3可自字元線WL0~WLj接收輸入信號X0~Xj,以依據輸入信號X0~Xj透過位元線BLu提供表示行移位單元量Yu的電流信號給感測器SAu。
感測器SA0~SAm以及感測器SAu耦接對應的位元線BL0~BLm、BLu以及移位復原電路108,將已移位乘積和YS0~YSm、移位單元數NSF0~NSFm以及行移位單元量Yu等感測結果提供給移位復原電路108,以復原已移位乘積和YS0~YSm的權重移位量,而產生已復原乘積和Y0~Ym。移位復原電路108的實施方式可如圖3所示,包括移位暫存器302以及加法器電路304,移位暫存器302耦接感測器SA0~SAm以及感測器SAu,加法器電路304耦接移位暫存器302。移位暫存器302可接收來自感測器SA0~SAm以
及感測器SAu提供的移位單元數NSF0~NSFm以及行移位單元量Yu,而依據移位單元數NSF0~NSFm以及行移位單元量Yu產生用以復原已移位乘積和YS0~YSm的移位調整量AD0~ADm。加法器電路304則可將感測器SA0~SAm提供的已移位乘積和YS0~YSm與對應的移位調整量AD0~ADm相加,以產生多個已復原乘積和Y0~Ym。
值得注意的是,上述實施例的已移位權重儲存區110與移位資訊儲存區112雖共用位元線BL0~BLm,然在其他實施例中,已移位權重儲存區110與移位資訊儲存區112也可使用不同的位元線。舉例來說,在圖4實施例中,已移位權重儲存區110耦接位元線BL0~BLm,而移位資訊儲存區112則耦接位元線BLK0~BLKm。由於本實施例的已移位權重儲存區110與移位資訊儲存區112未共用位元線,因此可不需以先後驅動移位資訊儲存區112與已移位權重儲存區110的方式,來獲得移位單元數NSF0~NSFm與已移位乘積和YS0~YSm,而可同時驅動移位資訊儲存區112與已移位權重儲存區110,使移位資訊儲存區112與已移位權重儲存區110同時提供移位單元數NSF0~NSFm與已移位乘積和YS0~YSm,從而有效地提高記憶體內運算裝置的運算效率。
圖5是依照本發明一實施例所繪示的記憶體內運算裝置的運算方法的流程圖。記憶體內運算裝置包括記憶體陣列,記憶體陣列包括已移位權重儲存區、移位資訊儲存區以及移位單元量儲存區,已移位權重儲存區儲存多個已移位權重值,移位資訊儲存區
儲存已移位權重值的移位單元數,移位單元量儲存區儲存移位單元量。其中已移位權重儲存區可包括多個第一記憶胞,移位資訊儲存區可包括多個第二記憶胞,移位單元量儲存區可包括多個第三記憶胞,上述多個第一記憶胞與上述多個第二記憶胞共用多條位元線,上述多個第一記憶胞與上述多個第三記憶胞使用不同的位元線。
由於上述實施例可知,記憶體內運算裝置的運算方法可包括至少包括下列步驟。首先,提供多個控制信號至移位資訊儲存區,以使移位資訊儲存區提供多個已移位權重值的移位單元數(步驟S502),其中,第一記憶胞所儲存的已移位權重值可透過調整第一記憶胞的臨界電壓值或電阻值來進行調整,,在同一位元線上的第一記憶胞儲存的已移位權重值具有相同的移位量。接著,提供多個輸入信號至已移位權重儲存區與移位單元量儲存區,以使已移位權重儲存區提供多個已移位乘積和,並使移位單元量儲存區提供行移位單元量(步驟S504),其中行移位單元量等於上述多個輸入信號與移位單元量的乘積和。最後,依據上述多個已移位權重值的移位單元數以及行移位單元量復原上述多個已移位乘積和的權重移位量,以產生多個已復原乘積和(步驟S506),進一步來說,可依據上述多個已移位權重值的移位單元數以及行移位單元量產生多個移位調整量,然後將上述多個已移位乘積和分別與對應的移位調整量相加,以產生上述多個已復原乘積和。此外,值得注意的是,在部分實施例中,已移位權重儲存區耦接的位元線可不同於移
位資訊儲存區耦接的位元線,如此可有效地提高記憶體內運算裝置的運算效率。
綜上所述,本發明實施例的記憶體陣列包括儲存已移位權重值的已移位權重儲存區、儲存移位單元數的移位資訊儲存區以及儲存行移位單元量的移位單元量儲存區,移位復原電路可依據已移位權重值的移位單元數以及行移位單元量復原已移位乘積和的權重移位量,而產生多個已復原乘積和。如此藉由已移位權重儲存區儲存已移位權重值,而後再利用已移位權重值的移位單元數以及行移位單元量來復原已移位乘積和的權重移位量,可有效減少記憶體內運算裝置在進行乘積和運算時位元線上的電流值,而可大幅降低記憶體內運算裝置的功率消耗。在部分實施例中,已移位權重儲存區耦接的位元線可不同於移位資訊儲存區耦接的位元線,如此可有效地提高記憶體內運算裝置的運算效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
102:記憶體控制電路
104:記憶體陣列
106:感測電路
108:移位復原電路
110:已移位權重儲存區
112:移位資訊儲存區
114:移位單元量儲存區
BL0~BLm、BLu:位元線
NSF0~NSFm:移位單元數
WL0~WLj、WLF0~WLFi:字元線
X0~XFi:控制信號
X0~Xj:輸入信號
YS0~YSm:已移位乘積和
Yu:行移位單元量
Y0~Ym:已復原乘積和
Claims (14)
- 一種記憶體內運算裝置,包括: 一記憶體控制電路; 一記憶體陣列,耦接該記憶體控制電路,該記憶體控制電路控制該記憶體陣列的資料存取,該記憶體陣列包括: 一已移位權重儲存區,儲存多個已移位權重值,依據該記憶體控制電路透過多條第一字元線提供的多個輸入信號提供多個已移位乘積和; 一移位資訊儲存區,儲存該些已移位權重值的移位單元數,依據該記憶體控制電路透過多條第二字元線提供的多個控制信號提供該些已移位權重值的移位單元數;以及 一移位單元量儲存區,儲存一移位單元量,依據該些輸入信號提供一行移位單元量,其中該行移位單元量等於該些輸入信號與該移位單元量的乘積和; 一感測電路,耦接該記憶體陣列,感測該已移位權重儲存區、該移位資訊儲存區以及該移位單元量儲存區提供的多個電流信號,以獲得該些已移位乘積和、該些已移位權重值的移位單元數以及該行移位單元量;以及 一移位復原電路,耦接該感測電路,依據該些已移位權重值的移位單元數以及該行移位單元量復原該些已移位乘積和的權重移位量,以產生多個已復原乘積和。
- 如請求項1所述的記憶體內運算裝置,其中該感測電路包括多個第一感測器與一第二感測器,該已移位權重儲存區包括多個第一記憶胞,該移位資訊儲存區包括多個第二記憶胞,該移位單元量儲存區包括多個第三記憶胞,該些第一記憶胞以及該些第二記憶胞透過多條第一位元線耦接該些第一感測器,該些第三記憶胞透過一第二位元線耦接該第二感測器,該些第一記憶胞與該些第三記憶胞共用該些第一字元線,該些第二記憶胞耦接該些第二字元線。
- 如請求項2所述的記憶體內運算裝置,其中該些第一記憶胞自該些第一字元線接收該些輸入信號,以依據該些輸入信號透過該些第一位元線提供表示該些已移位乘積和的多個電流信號給該些第一感測器,該些第三記憶胞自該些第一字元線接收該些輸入信號,以依據該些輸入信號透過該第二位元線提供表示該行移位單元量的電流信號給該第二感測器,該些第二記憶胞自該些第二字元線接收該些控制信號,以依據該些控制信號透過該些第一位元線提供表示該些已移位權重值的移位單元數的多個電流信號給該些第一感測器。
- 如請求項2所述的記憶體內運算裝置,其中該移位復原電路包括: 一移位暫存器,耦接該些第一感測器以及該第二感測器,依據該些已移位權重值的移位單元數以及該行移位單元量產生多個移位調整量;以及 一加法器電路,耦接該移位暫存器與該些第一感測器,將該些第一感測器提供的多個已移位乘積和分別與對應的移位調整量相加,以產生多個已復原乘積和。
- 如請求項2所述的記憶體內運算裝置,其中在該已移位權重儲存區中,同一位元線上的多個第一記憶胞儲存的該些已移位權重值具有相同的移位量。
- 如請求項2所述的記憶體內運算裝置,其中該記憶體控制電路調整該些第一記憶胞的臨界電壓值或電阻值,以調整該些已移位權重值。
- 如請求項1所述的記憶體內運算裝置,其中該已移位權重儲存區耦接的位元線不同於該移位資訊儲存區耦接的位元線。
- 一種記憶體內運算裝置的運算方法,其中該記憶體內運算裝置包括一記憶體陣列,該記憶體陣列包括一已移位權重儲存區、一移位資訊儲存區以及一移位單元量儲存區,該已移位權重儲存區儲存多個已移位權重值,該移位資訊儲存區儲存該些已移位權重值的移位單元數,該移位單元量儲存區儲存一移位單元量,該記憶體內運算裝置的運算方法包括: 提供多個控制信號至該移位資訊儲存區,以使該移位資訊儲存區提供該些已移位權重值的移位單元數; 提供多個輸入信號至該已移位權重儲存區與該移位單元量儲存區,以使該已移位權重儲存區提供多個已移位乘積和,並使該移位單元量儲存區提供一行移位單元量,其中該行移位單元量等於該些輸入信號與該移位單元量的乘積和;以及 依據該些已移位權重值的移位單元數以及該行移位單元量復原該些已移位乘積和的權重移位量,以產生多個已復原乘積和。
- 如請求項8所述的記憶體內運算裝置的運算方法,其中該已移位權重儲存區包括多個第一記憶胞,該移位資訊儲存區包括多個第二記憶胞,該移位單元量儲存區包括多個第三記憶胞。
- 如請求項9所述的記憶體內運算裝置的運算方法,其中該些第一記憶胞與該些第二記憶胞共用多條位元線,該些第一記憶胞與該些第三記憶胞使用不同的位元線。
- 如請求項9所述的記憶體內運算裝置的運算方法,包括: 依據該些已移位權重值的移位單元數以及該行移位單元量產生多個移位調整量;以及 將該些已移位乘積和分別與對應的移位調整量相加,以產生該些已復原乘積和。
- 如請求項9所述的記憶體內運算裝置的運算方法,其中在該已移位權重儲存區中,同一位元線上的多個第一記憶胞儲存的該些已移位權重值具有相同的移位量。
- 如請求項9所述的記憶體內運算裝置的運算方法,包括: 調整該些第一記憶胞的臨界電壓值或電阻值,以調整該些已移位權重值。
- 如請求項8所述的記憶體內運算裝置的運算方法,其中該已移位權重儲存區耦接的位元線不同於該移位資訊儲存區耦接的位元線。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/553,801 | 2021-12-17 | ||
| US17/553,801 US11657864B1 (en) | 2021-12-17 | 2021-12-17 | In-memory computing apparatus and computing method having a memory array includes a shifted weight storage, shift information storage and shift restoration circuit to restore a weigh shifted amount of shifted sum-of-products to generate multiple restored sum-of-products |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202340979A TW202340979A (zh) | 2023-10-16 |
| TWI830511B true TWI830511B (zh) | 2024-01-21 |
Family
ID=86385306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111145425A TWI830511B (zh) | 2021-12-17 | 2022-11-28 | 記憶體內運算裝置及其運算方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11657864B1 (zh) |
| CN (1) | CN116266107A (zh) |
| TW (1) | TWI830511B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20240163992A (ko) * | 2023-05-11 | 2024-11-19 | 삼성전자주식회사 | 메모리 장치 및 그것의 동작 방법 |
| TWI857640B (zh) * | 2023-06-07 | 2024-10-01 | 旺宏電子股份有限公司 | 記憶體內運算器 |
| US12277968B2 (en) | 2023-06-07 | 2025-04-15 | Macronix International Co., Ltd. | In-memory computation device |
| TWI866591B (zh) * | 2023-11-08 | 2024-12-11 | 旺宏電子股份有限公司 | 記憶體內計算記憶體裝置及記憶體內計算方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160342891A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Neural Network Processor |
| TW201714080A (zh) * | 2015-10-08 | 2017-04-16 | 上海兆芯集成電路有限公司 | 利用使用者指定二維定點算術運算之裝置 |
| US20180165577A1 (en) * | 2016-12-13 | 2018-06-14 | Google Inc. | Performing average pooling in hardware |
| TW202024899A (zh) * | 2018-12-24 | 2020-07-01 | 旺宏電子股份有限公司 | 可做內乘積運算的記憶體儲存裝置及其操作方法 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112771533B (zh) | 2018-11-08 | 2024-10-01 | Tdk株式会社 | 积和运算器、积和运算方法、逻辑运算装置和神经形态器件 |
| US11599779B2 (en) | 2018-11-15 | 2023-03-07 | Arizona Board Of Regents On Behalf Of Arizona State University | Neural network circuitry having approximate multiplier units |
| US10847523B1 (en) | 2019-07-03 | 2020-11-24 | Macronix International Co., Ltd. | Stacked memory and ASIC device |
| TWI782573B (zh) * | 2021-01-28 | 2022-11-01 | 旺宏電子股份有限公司 | 記憶體內運算器及記憶體內運算方法 |
-
2021
- 2021-12-17 US US17/553,801 patent/US11657864B1/en active Active
-
2022
- 2022-11-28 TW TW111145425A patent/TWI830511B/zh active
- 2022-12-14 CN CN202211605071.5A patent/CN116266107A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160342891A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Neural Network Processor |
| TW201714080A (zh) * | 2015-10-08 | 2017-04-16 | 上海兆芯集成電路有限公司 | 利用使用者指定二維定點算術運算之裝置 |
| US20180165577A1 (en) * | 2016-12-13 | 2018-06-14 | Google Inc. | Performing average pooling in hardware |
| TW202024899A (zh) * | 2018-12-24 | 2020-07-01 | 旺宏電子股份有限公司 | 可做內乘積運算的記憶體儲存裝置及其操作方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116266107A (zh) | 2023-06-20 |
| TW202340979A (zh) | 2023-10-16 |
| US11657864B1 (en) | 2023-05-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI830511B (zh) | 記憶體內運算裝置及其運算方法 | |
| CN112070204B (zh) | 一种基于阻变存储器的神经网络映射方法、加速器 | |
| US11373092B2 (en) | Training of artificial neural networks | |
| CN113826122B (zh) | 人工神经网络的训练 | |
| CN109976808B (zh) | 存储器查找机制的方法与系统以及存储器裸片 | |
| CN111950718B (zh) | 利用存算一体芯片实现递进式cnn运算的方法 | |
| WO2021163866A1 (zh) | 神经网络权重矩阵调整方法、写入控制方法以及相关装置 | |
| TWI787691B (zh) | 神經網路運算裝置及方法 | |
| CN113344170A (zh) | 神经网络权重矩阵调整方法、写入控制方法以及相关装置 | |
| CN110265002A (zh) | 语音识别方法、装置、计算机设备及计算机可读存储介质 | |
| US20240273349A1 (en) | Performing processing-in-memory operations related to pre-synaptic spike signals, and related methods and systems | |
| KR20220054411A (ko) | 스파이킹 이벤트와 관련된 메모리 내 프로세싱 동작 수행 및 관련 방법, 시스템 및 디바이스 | |
| CN114723024A (zh) | 用于存算一体芯片的基于线性规划的神经网络映射方法 | |
| WO2020172950A1 (zh) | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 | |
| US20170140264A1 (en) | Neural random access machine | |
| CN109670171A (zh) | 一种基于词对非对称共现的词向量表示学习方法 | |
| CN209514618U (zh) | 动态偏置模拟向量-矩阵乘法运算电路 | |
| CN115796252A (zh) | 权重写入方法及装置、电子设备和存储介质 | |
| CN114254106B (zh) | 文本分类方法、装置、设备及存储介质 | |
| CN114020239B (zh) | 数据处理方法及电子装置 | |
| TWI743710B (zh) | 卷積神經網路的方法、電子裝置與電腦程式產品 | |
| CN115329327A (zh) | 一种选择输入的水平能量分析卷积神经网络的方法及应用 | |
| CN119358619B (zh) | 一种具有片上训练系统的模拟计算机芯片 | |
| Krausse et al. | Exploring Neuronal Leakage for Spiking Neural Networks on Event-Driven Hardware | |
| CN111507178B (zh) | 数据处理的优化方法及装置、存储介质、计算机设备 |