TW202143026A - 記憶體內運算架構及用於執行乘積累加運算的方法 - Google Patents

記憶體內運算架構及用於執行乘積累加運算的方法 Download PDF

Info

Publication number
TW202143026A
TW202143026A TW110106872A TW110106872A TW202143026A TW 202143026 A TW202143026 A TW 202143026A TW 110106872 A TW110106872 A TW 110106872A TW 110106872 A TW110106872 A TW 110106872A TW 202143026 A TW202143026 A TW 202143026A
Authority
TW
Taiwan
Prior art keywords
bit line
charge storage
charge
bit
memory cell
Prior art date
Application number
TW110106872A
Other languages
English (en)
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
Application filed by 美商英飛淩科技有限責任公司 filed Critical 美商英飛淩科技有限責任公司
Publication of TW202143026A publication Critical patent/TW202143026A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • G06G7/163Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division using a variable impedance controlled by one of the input signals, variable amplification or transfer function
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/34Analogue value compared with reference values
    • H03M1/38Analogue value compared with reference values sequentially only, e.g. successive approximation type
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • H03M1/74Simultaneous conversion
    • H03M1/80Simultaneous conversion using weighted impedances
    • H03M1/802Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices
    • H03M1/804Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices with charge redistribution
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Engineering (AREA)
  • Read Only Memory (AREA)
  • Analogue/Digital Conversion (AREA)
  • Memory System (AREA)

Abstract

本發明提供一種記憶體內運算架構及用於執行乘積累加運算的方法。所述方法包括依序移位第一輸入位元組中的位元到配置成行和列的記憶胞陣列的每個列中。每個記憶胞基於所述位元而被激活,以從在共享位元線上的行中的每個經激活的記憶胞產生位元線電流,所述位元線電流正比於所述位元和儲存於其中的權重的乘積。藉由在行中的所述位元線電流的總和所產生的電荷被累加在第一電荷儲存庫中,所述第一電荷儲存庫耦接到在每個所述行的共享位元線。同時,來自第二輸入位元組之被累加在第二電荷儲存庫中的電荷被依次轉換成輸出位元組,所述第二電荷儲存庫先前耦合到所述行。在所述第一輸入位元組被累加並且來自所述第二輸入位元組的所述電荷被轉換之後,前述的電荷儲存庫被交換。然後重複上述方法。

Description

記憶體內運算架構及用於執行乘積累加運算的方法
本發明關於一種記憶體內運算(In-Memory Computing,IMC),並且特別是關於IMC架構及用於執行乘積累加(Multiply and Accumulate,MAC)運算的方法。 相關申請案之交叉參考
本申請案主張依據35 U.S.C. §119(e),2020年3月2日申請的美國臨時申請案第62/983,866號之優先權的利益,其整體藉由引用併入本文。
記憶體內運算(IMC)或是處理是發展中的技術,其用於在記憶體中執行數據的計算,而不是從記憶體中提取數據並且在處理器中的分開的計算元件中執行計算。馮紐曼運算架構(Von Neumann compute architecture)方法用於人工智慧(AI)需要連續的外部記憶體存取以提取用於神經網路中所儲存的權重、數據並且將中間結果儲存到所述計算元件中。系統電源效率受限於在外部記憶體和處理結構之間的數據移動。IMC大大的改善計算的數據處理速度和電源效率,因為儲存在記憶體內的數據不用在所述記憶體外部的處理元件中來回移動。事實證明,IMC在電源敏感型的AI應用的高速神經網路架構中特別有用。
目前的IMC技術主要使用數位執行,而當對於此技術提供數據處理速度改善時,可能會遭受到明顯的電源效率問題。特別是,被使用於AI應用中的IMC執行會損失電源效率,其由於在存取記憶體行以類比方式進行乘法累加(MAC)操作之前,與將輸入數據位元組流轉換為等效類比表示形式相關的延遲。提供類比IMC解決方法之先前嘗試依賴數位-類比轉換器(DAC)以將所述輸入數據位元組流轉換成類比以用在記憶體陣列或矩陣中的每個列中,然後使用所述DAC輸出以驅動記憶胞,所述記憶胞儲存數據矩陣的權重。因此,目前類比IMC執行具有顯著的電源開銷,由於所述DAC被用來將所述輸入數據位元組流轉換為類比並且也由於從所述輸入數據位元組流產生所述輸出類比電壓涉及的所述延遲。
因此,需要類比IMC架構以及操作其之方法以執行乘積累加(MAC)運算,其能夠在高速並且高電源效率之下將輸入數位位元組轉換為類比。
本發明提供記憶體內運算(IMC)架構以及用於執行乘積累加(MAC)運算的方法。所述IMC架構和操作其之方法以執行MAC運算在硬體加速器中或是與硬體加速器一起使用的情況下特別有用,像是使用於人工智慧(AI)應用之中。
所述IMC架構包括MAC核心,所述MAC核心包含以行和列配置的記憶胞陣列,每個記憶胞包括多階、非揮發性記憶體(NVM)裝置,並且每行包括共享位元線,所述共享位元線連接在所述行中的NVM裝置。耦接到所述陣列的一個列上的多個暫存器之每個經配置以依序移位第一輸入位元組的位元到所述列以基於所述位元的狀態來激活所述NVM裝置,並且從每個被激活的NVM裝置產生經加權的位元線電流,所述經加權的位元線電流正比於所述位元和儲存於所述NVM裝置中之權重的乘積。多個第一電荷儲存庫之每個耦接到在所述行中的一個行中的所述共享位元線並且被配置以接收經加權的位元線電流的總和,並且累加由經加權的位元線電流的所述總和所產生的每個位元的所述輸入位元組電荷。所述MAC核心進一步包括多個第二電荷儲存庫,所述多個第二電荷儲存庫耦接到數個類比數位轉換器(ADC),所述多個第二電荷儲存庫中的每一個經配置以將所述移位和累加同時動作,以對於先前接收到的第二輸入位元組中的每個位元提供經縮放的電壓到所述數個ADC以用於轉換成輸出位元組。控制器,所述控制器耦接到所述多個第一電荷儲存庫以及所述多個第二電荷儲存庫,在所述第一輸入位元組中的每個位元在所述第一電荷儲存庫中被累加以及在所述第二電荷儲存庫中的所述電荷被轉換之後,將所述第一電荷儲存庫與所述第二電荷儲存庫切換或交換。
一種使用上述架構執行MAC操作的方法,所述方法包括將儲存在所述暫存器中的數個第一輸入位元組中的每一個耦接到陣列中的多個列中的一個,將所述數個第一輸入位元組中的位元依序移位到每個列中的每個記憶胞;並且將所述位元與儲存在每個記憶胞中的權重相乘,藉由基於所述位元的狀態來激活每個記憶胞以從每個經激活的記憶胞產生經加權的位元線電流,所述經加權的位元線電流正比於所述位元和儲存於其中之所述權重的乘積。從所述行中的每個經激活的記憶胞的所述經加權的位元線電流的總和所產生的電荷被累加在所述第一電荷儲存庫中,每個所述第一電荷儲存庫耦接到在所述行中的一行中的所述共享位元線。一般而言,所述方法進一步包括與所述移位、相乘、累加在所述第一電荷儲存庫同時,使用數個ADC將電荷轉換成輸出位元組,所述電荷藉由來自先前累加在第二電荷儲存庫的數個第二輸入位元組的經加權位元線電流的總和所產生的,並且在所述第一輸入位元組的每個位元被累加並且在所述第二電荷儲存庫中的所述電荷已經被轉換之後,將所述第一電荷儲存庫和所述第二電荷儲存庫交換。
下面參照附圖詳細描述本發明的實施例的其他特徵和優點以及本發明的各種實施例的結構和操作。應注意的是,本發明不限於本文描述的特定實施例。本文中所提出的實施例僅出於說明性目的。基於本文所包含的教導,其他實施例對所屬技術領域中具有通常知識者將是顯而易見的。
本發明提供一種記憶體內運算(IMC)架構及操作其之方法,以快速且有效率地使用其來執行乘積累加運算。本發明中所記載的所述IMC架構和方法在硬體加速器中或與硬體加速器一起特別有用,所述硬體加速器包括數個神經引擎,像是使用於人工智慧(AI)應用中的神經引擎。
在下文的敘述中,出於解釋的目的,闡述了許多具體細節以便提供對本發明的透徹理解。然而,對於所屬技術領域中具有通常知識者為顯而易見的是,可以在沒有這些具體細節的情況下實踐本發明。在其他情況下,未詳細顯示或以方塊圖形式顯示出眾所周知的結構和技術,以避免不必要地混淆對本說明書的理解。
在說明書中提及“一個實施例”或“實施例”意謂著與所述實施例相關的特定特徵、結構或特性被包含在本發明的至少一個實施例中。說明書中各個地方出現的用語“在一個實施例中”不一定全都指同一個實施例。如本文中所使用的,術語“耦合”可以包括直接電連接兩個或更多個部件或元件以及通過一個或更多個中間部件間接地連接。
圖1A和圖1B是例示類比乘積累加(MAC)引擎或核心100的實施例的示意性方塊圖,所述類比乘積累加(MAC)引擎或核心100適用於使用於人工智慧(AI)應用或系統中的硬體加速器,以用來在執行MAC操作時消除延遲並且改善效率。
參照圖1A,在一個實施例中,所述MAC核心100包括記憶單元或記憶胞104的記憶體陣列或陣列102,每個記憶單元或記憶胞104具有儲存於其中的程式化數值或是權重(如圖1A中橢圓形所示的W00、W01、W10…等等,並且每個記憶單元或記憶胞104被配置成數個(m個)列和數個(n個)行,其中在行中的每個記憶胞耦接到共享位元線106,並且在列中的每個記憶胞耦接到共享字元線108。雖然在所述實施例中顯示的記憶體陣列102是4
Figure 02_image001
8的陣列,其包含4個列和8個行,將可以了解的是,所述記憶體陣列可任意包含任何數目的列和行,也包括相較於圖示中所示的具有較少的列或行的實施例。所述MAC核心100進一步包括多個暫存器110,通常所述記憶體陣列102中的每個列有至少一個暫存器,並且能夠儲存多位元輸入數據字元或位元組。每個暫存器110經由所述共享字元線而耦接到所述記憶體陣列102的一個列,並且每個暫存器110被設置以依序移位第一輸入數據位元組的位元(如實施例中所顯示的D0到D7)到列中以回應時脈信號來根據所述經移位的位元的狀態來激活在所述列中的記憶胞104,以從在行中的每個經激活的記憶胞產生經加權的位元線電流於所述行的所述共享位元線上,所述經加權的位元線電流正比於所述位元乘以儲存於其中的權重的乘積。
MAC核心100進一步包括多個累加器112,每個累加器112耦接到在所述行的一個中的所述共享位元線,並且每個累加器112包括可切換地連接到所述共享位元線106的第一電荷儲存庫114a,並且每個累加器112被配置以接收從在所述行中的經激活的記憶胞104的經加權的位元線電流的總和,並且對於所述第一輸入數據位元組的每個位元累加藉由經加權的位元線電流的總和所產生的經縮放的電荷。所述累加器112中的每一個進一步包括第二電荷儲存庫114b,所述第二電荷儲存庫114b耦接到數個類比數位轉換器(ADC) 116,所述第二電荷儲存庫中的每一個被配置以回應時脈信號,並且與將每個列中的位元移位以及將經縮放的電荷累加到所述第一電荷儲存庫114a同時地,對於先前接收到的第二輸入數據位元組的每個位元線提供累加的電壓到所述ADC 116,以用於轉換成儲存於多位元輸出暫存器118中的輸出位元組的數位位元。在一個實施例中,所述操作是定時的,使得將一個位元移位到第一電荷儲存庫的時間實質上相等於將先前接收的第二輸入數據位元組的一個位元線轉換的時間。
MAC核心100進一步包括在每個累加器112中的控制器120,所述控制器120耦接到所述第一電荷儲存庫114a以及所述第二電荷儲存庫114b,在所述數個第一輸入數據位元組中的所有位元被累加到所述第一電荷儲存庫並且在所述第二電荷儲存庫中的電荷被轉換之後,所述控制器經配置以將所述第一電荷儲存庫114a與所述第二電荷儲存庫114b切換或交換。所謂的切換或交換指的是,耦接到記憶體陣列102中的行中的共享位元線106的每個累加器112中的所述第一電荷儲存庫114a解開與所述共享位元線或記憶體陣列的耦接關係,並且耦接到用於電荷/電壓轉換的所述數個ADC 116,而所述第二電荷儲存庫114a基本上同時解開與所述數個ADC的耦接關係,並且耦接到所述記憶體陣列102中的所述共享位元線以用於電荷累加。在某些實施例中,如圖中所示,所述控制器120被包含在所述MAC核心100中,並且可與所述MAC核心的其他元件一起被整體製造在共用或共享基板上,或者是可與所述MAC核心的其他元件一起被封裝在共享積體電路封裝或被附接到共用或共享電路。或者是,所述控制器120可以是在所述ADC 116中的一個ADC中的控制器,或者是在包含所述MAC核心100的硬體加速器中或是在使用所述硬體加速器的系統中的微控制單元(micro-control unit,MCU)或是處理器。
一般來說,在所述MAC核心100中的所述數個ADC 116被選擇,使得所述ADC在所述第一輸入數據位元組的所述位元被移位到所述記憶體陣列102的每個列以及每個位元的經縮放的電荷被累加到第一電荷儲存庫114a的時間過程中,完成儲存在每個所述第二電荷儲存庫114b中的所有電荷的轉換。應注意的是,雖然儲存在所述多個第二電荷儲存庫114b中經過累加的電荷的轉換基本上在與所述輸入數據位元組中的位元的移位以及經縮放的電荷累加在所述第一電荷儲存庫114a相同的第一時脈週期上開始,用於讀取所述共享位元線106所需要的時脈週期的時間和次數不需要與將儲存在每個所述第二電荷儲存庫114b中的所有電荷轉換的時脈週期的時間和次數相同。如果讀取一個位元線電流所花費的時間等於ADC轉換時間,則對於每個共享位元線106將經8位元縮放的電流累加在所述第一電荷儲存庫114a時,單一個8位元之ADC 116足夠用於轉換來自儲存在第二電荷儲存庫114b的先前輸入數據位元組的電荷,並且ADC 116的數量等於或大於n/b四捨五入至最接近的整數,其中n是在記憶體陣列102中行的數目,且b是在所述輸入數據位元組中位元的數目。然而,如果需要更多的時間來將用於每個位元讀取的經縮放的電荷移位和累加在所述第一電荷儲存庫114a,例如如果每個共享位元線的所述電荷儲存時間需要ADC轉換的兩倍時間或是兩倍時脈週期,則ADC116的數目可以減少一半,因為一個ADC可經時間多工化來在兩倍數量的位元線106或行上執行轉換,從而減少ADC面積同時維持ADC的有效使用及100%的輸出。
其中,用於移位和累加所述輸入數據位元組所需要的時脈週期的數目是數量(x)次,其大於用於轉換電壓的時脈週期的數目,並且所述MAC核心100進一步包括如圖中所示的時脈緩衝器122,用以增加供應到所述第一電荷儲存庫以及所述第二電荷儲存庫114a、114b以及數個ADC116的時脈信號的頻率。
一般而言,如圖1A所示的實施例中的在所述記憶體陣列102中的每個記憶胞104包括一個多階、非揮發性記憶體(NVM)裝置或是電晶體,其上有權重(等效於可被儲存在所述NVM胞中的多個位準的數值的類比值)儲存有在每個記憶胞中。在另外的實施例中,如圖B中所示,在記憶體陣列102中的每個記憶單元104可具有兩個NVM裝置或NVM電晶體,包括耦接到第一位元線106a且以子行P表示的第一NVM胞,以及耦接到第二位元線106b且以子行N表示的第二NVM胞。在此實施例中,所述將數值或是權重程式化到記憶體陣列102中的每個記憶胞104可包括藉由儲存在每個所述第一NVM裝置和第二NVM裝置中的不同數值或不同權重來程式化在子行P中的所述第一NVM裝置以及在子行N中的所述第二NVM胞,所述第一NVM裝置和第二NVM裝置包括相反的極性N或P。又如圖1B中所示,在此實施例中,數個ADC 116可包括具有耦接到所述第一位元線106a和所述第二位元線106b的不同輸入的不同ADC。
在另外的實施例中,多階的NVM裝置可包含多階、矽-氧化物-氮化物-氧化物-矽(SONOS)NVM電晶體,其包括一個或多個氮化物或氮氧化物電荷捕獲層並且能夠儲存或捕獲多位準的為電荷以移位臨界電壓(VTH ),所述臨界電壓必須被施加到耦接到所述ONO型NVM電晶體的閘極的字元線,以開啟電晶體來程式化或在所述記憶胞104中儲存程式化數值或權重。圖2是方塊圖,其圖示SONOS NVM電晶體的橫截面側視圖。參照圖2,SONOS NVM電晶體200包括形成在基板204上的閘極堆疊202。所述NVM電晶體200進一步包括形成在閘極堆疊202的兩側上而在基板204中的井區210中的源極區域206/汲極區域208、在閘極堆疊下方的通道區域212,以及本體偏壓端子214,所述本體偏壓端子214亦可被稱為井區端子或塊材端子,以與所述井區210形成歐姆接觸。根據所述NVM電晶體是p型或是n型而藉由植入適當類型的摻雜物、藉由離子植入或擴散到所述井區214的方式來形成所述源極區域206、汲極區域208、通道區域212以及本體偏壓端子214。源極區域206、汲極區域208和本體偏壓端子214可進一步包括矽化物的薄層(未顯示於圖示中)以與在基板204中的所述區域形成歐姆接觸。
閘極堆疊202包括氧化穿隧介電層216、一個或多個氮化物或氮氧化物電荷捕獲層218、頂部阻擋氧化層220以及多晶矽(polysilicon或poly)、提供做為控制閘極222的矽化物多晶矽或金屬層。
當所述控制閘極222、源極區域206、汲極區域208和本體偏壓端子214被適當的偏壓時,來自所述源極/汲極/通道區域的電子被注入或穿透穿隧介電層216並且被捕獲在所述電荷捕獲層218之中。將電荷注入的機制可包括富爾諾罕(Fowler Nordheim,FN)穿隧以及熱載子注入。被捕獲在所述電荷捕獲層218中的電荷造成在汲極和源極之間的能量障壁、提高關閉所述NVM電晶體200使得所述電晶體進入“程式化”狀態所必須的臨界電壓VT 。藉由施加相反的偏壓於所述控制閘極222上,則所述NVM電晶體200可被“抹除”或是可移除被捕獲的電荷而由電洞所取代。將源極區域206、汲極區域208和本體偏壓端子214偏壓以改變多階臨界電壓(VTH )或胞電流(部分程式化或部分抹除所述NVM電晶體200)以代表所儲存的權重值的類比值。
舉例而言,多階SONOS型NVM電晶體被描述於共同授權的共同於審查階段的於西元2020年3月24日提出申請的美國專利申請序號第16/827,948號專利申請案中,其整體藉由引用併入本文。
在顯示於圖1A或圖1B中的MAC核心100的操作中,儲存在暫存器110中的輸入數據位元組以逐位元(bit wise manner)的方式被移位到記憶體陣列102中,首先由所述最重要位元(most significant bit,MSB)開始。記憶體陣列102的每個列提供有不同或是相同的輸入數據位元組。這些輸入數據位元組可例如代表輸入影像像素或是在現實生活的卷積神經網路(real-life convolutional neural network(CNN))中的激活。如果所述移位的位元是1,在列中所對應的記憶胞104被開啟或是被選擇為讀取操作,並且將提供胞電流,所述胞電流等於或是代表個別記憶胞的程式化數值;並且如果所述位元是0,則所述記憶胞不會被開啟或是不會被選擇為讀取操作,並且沒有電流被迫進入所述相關的共享位元線106。當在好幾個列且一行中的記憶胞104以上述的方式被同時激活時,與所述行相關的所述共享位元線106攜載來自相同行的記憶胞的所有所述胞電流的總和。累加在與所述共享位元線耦接的所述第一電荷儲存庫114a或第二電荷儲存庫114b中的所述位元線電流基於與輸入數據位元組的所述位元相關的權重而使用如下文中所述的結構和方法而在所述電荷儲存庫中被縮放。
參照圖1A,考慮列的數目(m)和行的數目(n)都是4以形成4
Figure 02_image001
4記憶體陣列。儲存在第一列中的所述程式化的數值或權重為W00、W01、W02和W03。儲存在第二列中的權重為W10、W11、W12和W13。儲存在第三列中的權重為W20、W21、W22和W23,並且儲存在第四列中的權重為W30、W31、W32和W33。
按照上述步驟,8位元、輸入數據位元組P0<D7:D0>被依序移位到所述陣列102的所述第一列,同時第二8位元、輸入數據位元組P1<D7:D0>被依序移位到所述第二列,而第三8位元、輸入數據位元組P2<D7:D0>被依序移位到所述第三列,並且第四8位元、輸入數據位元組Pm或P3<D7:D0>被依序移位到所述第四列。因此,在8個時脈週期結束時,所述第一行的所述共享位元線106(其中已經被依序移位有所述每個位元輸入數據位元組,其開始於每個輸入數據位元組的所述MSB)將具有以下的有效電流: 27 * (W00*P0<D7>+W10*P1<D7>+W20*P2<D7>+W30*P3<D7>) + 26 * (W00*P0<D6>+W10*P1<D6>+W20*P2<D6>+W30*P3<D6>) + 25 * (W00*P0<D5>+W10*P1<D5>+W20*P2<D5>+W30*P3<D5>) + 24 * (W00*P0<D4>+W10*P1<D4>+W20*P2<D4>+W30*P3<D4>) + 23 * (W00*P0<D3>+W10*P1<D3>+W20*P2<D3>+W30*P3<D3>) + 22 * (W00*P0<D2>+W10*P1<D2>+W20*P2<D2>+W30*P3<D2>) + 21 * (W00*P0<D1>+W10*P1<D1>+W20*P2<D1>+W30*P3<D1>) + 20 * (W00*P0<D0>+W10*P1<D0>+W20*P2<D0>+W30*P3<D0>)
相似的,所述第二行(其中已經被同時且被依序移位有所述每個所述位元輸入數據位元組,其開始於每個輸入數據位元組的所述MSB)將具有的有效電流為: 27 * (W01*P0<D7>+W11*P1<D7>+W21*P2<D7>+W31*P3<D7>) + 26 * (W01*P0<D6>+W11*P1<D6>+W21*P2<D6>+W31*P3<D6>) + 25 * (W01*P0<D5>+W11*P1<D5>+W21*P2<D5>+W31*P3<D5>) + 24 * W01*P0<D4>+W11*P1<D4>+W21*P2<D4>+W31*P3<D4>) + 23 * (W01*P0<D3>+W11*P1<D3>+W21*P2<D3>+W31*P3<D3>) + 22 * (W01*P0<D2>+W11*P1<D2>+W21*P2<D2>+W31*P3<D2>) + 21 * (W01*P0<D1>+W11*P1<D1>+W21*P2<D1>+W31*P3<D1>) + 20 * (W01*P0<D0>+W11*P1<D0>+W21*P2<D0>+W31*P3<D0>)
對於所述第三行和第四行的所述有效電流將是相似的,只有由於每個行的所述不同的權重或程式化數值而有所不同,也就是第三行的權重W02、 W12、W22和W32,以及第四行的權重W03、W13、W23和W33。
將每個這些位元線電流轉換成等效數位數值,提供有效MAC數值P0*W00+ P1*W10 + P2*W20 + P3*W30給所述第一行、P0*W01 + P1*W11 + P2*W21 + P3*W31給所述第二行、P0*W02 + P1*W12 + P2*W22 + P3*W32給所述第三行以及P0*W03 + P1*W13 + P2*W23 + P3*W33給所述第四行。
使用MAC核心執行MAC操作的方法相似於圖1A,現在將參照圖3的流程圖來描述。應注意的是,雖然此圖的左側及右側上所顯示的所有順序都同時或併行地執行,顯示於右側上的每個分開或不同的步驟不需要並行地與左側上的任何步驟同時發生。舉例來說,因為與第一電荷儲存庫上的位元的累加相比,耦合至第二電荷儲存庫的ADC的轉換可更快或更慢地執行,所以對儲存在第二電荷儲存庫中的第一位線電荷進行轉換不需要與在第一電荷儲存庫中的第一位元的累加完全重疊。因此,從所述第二電荷儲存庫的第一位元線電荷的轉換可被完成並且在第一電荷儲存庫中的最重要位元(MSB)產生的電荷累加完成之前,開始第二或後續位元線電荷的轉換。
在第一階段,b位元的數個輸入數據位元組中的每個位元的電荷(在本例中為b= 8)從在b或8個時脈週期中的最重要位元(MSB)到最不重要位元(LSB)被累積並儲存在第一電荷儲存庫中。參照圖3,所述方法開始於第一時脈週期而將每個所述輸入數據位元組中的MSB移位到所述記憶體陣列的每個列上並且儲存所述結果MSB數據於所述第一電荷儲存庫中(步驟301)。將每個所述輸入數據位元組中的所述MSB移位到所述記憶體陣列的每個列上以基於所述位元的狀態而激活在所述列中的每個記憶胞,即當所述移位位元是“1”則激活所述記憶胞,將位元與儲存在每個記憶胞中的權重相乘,藉由激活每個記憶胞來產生經加權的位元線電流,其正比於所述位元和儲存於其中的權重的乘積。來自每行中的每個經激活的記憶胞的經加權的位元線電流被耦接到所述行中的所述共享位元線而對每行產生加總的經加權的位元線電流,其接著以下文中將參照圖4和圖5的描述方式,而被轉換成縮放的電荷並且被累加於在所述第一電荷儲存庫中的電荷儲存元件或電容器上。一般而言,所述第一電荷儲存庫和所述第二電荷儲存庫包括數個採樣或位元線電容器,其等於或多於在所述輸入數據位元組中的位元的數量,並且來自每個位元的數據或電荷被累加在分開的所述位元線電容器中。每個所述位元線電容器具有不同的電容值並且還自每個位元的數據結果被累加在位元線電容器上,所述位元線電容器根據輸入數據位元組中的位元的重要性來選擇。因此,移位入每行的第一位元是與列電荷耦合的第一輸入數據位元組的MSB,該列電荷是由來自MSB位元的經加權的位元線電流之總和所產生,並累積在第一電荷儲存庫中具有最大容量的位元線電容器上。
在第二時脈週期期間,每個所述輸入數據位元組中的所述下一個最重要位元(MSB-1)被移位到所述記憶體陣列中的每一列,並且所述結果MSB-1數據被儲存在所述第一電荷儲存庫(302)。當再次將所述MSB移位到所述陣列以及累加所述結過MSB數據時,在一列中的每個記憶胞基於所述位元的狀態而被激活,有效地將所述位元乘以儲存在每個記憶胞中的權重以產生與所述位元和儲存於其中的權重的乘積成比例的經加權的位元線電流,然後將其轉換成電荷並且累加在所述第一電荷儲存庫中具有下一個最大電容值的電荷儲存元件或電容器上。所述過程藉由在每個連續時脈週期將所述第一輸入位元組的每一個中的一個位元依序移位到所述陣列中的每一列而繼續進行,直到每個所述第一輸入位元組中的所述最不重要的位元移位到所述到記憶體陣列的每一列並且所述結果LSB數據被儲存在所述第一電荷儲存庫中具有最小電容值的電荷儲存元件或電容器上(303)。
當所述移位到所述第一輸入數據位元組的位元與所述儲存或累加所述結果數據為同時或基本上同時的時候,使用耦接到所述第二電荷儲存庫的數個ADC,而將從儲存在所述多個第二電荷儲存庫上的先前、第二輸入數據位元組中的所述累加電流從類比值轉換成多位元、數位輸出數據位元組。
再參照圖3,在與步驟301的所述相同第一時脈週期之後的第一轉換步驟中,將從先前接收的第二輸入數據位元組中並且被儲存在耦接到所述陣列中的第一行中的第一位元線的第二電荷儲存庫中的所述累加電荷轉換(304)。使用所述數個ADC完成所述轉換,並且使用如下文參照圖4和5所詳細記載的方法,而依序將在所述第二電荷儲存庫中的每個所述位元線電容器耦接到所述第二電荷儲存庫的輸出節點。接著,將從所述第二輸入數據位元組中並且被儲存在耦接到在所述陣列中的第二位元線的第二電荷儲存庫中的所述累加電荷轉換(305)。所述轉換繼續進行,其藉由將從所述第二輸入數據位元組中並且被儲存在耦接到所述陣列中的依序位元線的每個所述多個第二電荷儲存庫中的所述累加電荷轉換,直到從所有位元線累加的數據已經被轉換(306)。在上述的範例中,累加並且儲存在所述第一電荷儲存庫以及所述第二電荷儲存庫中的每個輸入數據位元組中的所述位元線的數目(b)是8個。因此,從中轉換累積電荷的所述多個第二電荷儲存庫中的最後一個是被耦接到所述陣列中的第八列中的位元線8,並且一個ADC可能足夠為所有8條位線執行轉換。
最後,在第二階段中,將所述電荷儲存庫的所述耦接交換或互換(307),並且所述ADC開始將在所述第一階段中所儲存在所述第一電荷儲存庫中的電荷轉換,同時所述第二電荷儲存庫開始累加並且儲存電荷用於所述下一個輸入數據位元組。交換或互換是指將所述第一電荷儲存庫解開與所述記憶體陣列的耦接關係且耦接到所述數個ADC,並且所述第二電荷儲存庫解開與所述數個ADC的耦接關係且耦接到所述記憶體陣列。
再次,應注意的是,雖然描述於步驟304到306中的將儲存於所述多個第二電荷儲存庫中的累加電荷的轉換開始於與步驟301中MSB輸入數據的移位及累加實際上相同的第一時脈週期,然而描述於上述步驟301到303中之記憶胞的讀取所需的時間(時脈週期的數目)不需要相同。圖3中所示的範例性方法所提出的假設是,每個輸入位元組的位元的所述電荷儲存時間以及每個位元線的所述ADC轉換時間實質上相等的。如果將所述輸入位元組中的一個位元移位所花費的時間等於一個位元線的ADC轉換時間,則當所述8位元縮放電流被累加在每個位元線的所述第一電荷儲存庫中時,則單個ADC將已完成自儲存在多個第二電荷儲存庫中的先前輸入數據位元組的電荷之轉換,每個第二電荷儲存庫都耦合到所述陣列的所述8條位線中的一條。然而,如果每個位元的電荷儲存時間需要更多的時間時,例如,如果每個位元的電荷儲存時間是用於一個位元線的所述ADC轉換所需的時間量或時脈週期數目的兩倍時,則ADC的數目可被減少一半如同ADC可經多工化以在兩倍的位元線或行的數目上執行轉換,從而減少ADC面積同時維持所述ADC的有效利用及100%輸出。
適合用於MAC核心100中的電荷儲存庫(例如圖1A和1B中所示)將參照圖4A的示意性方塊圖來說明。參照圖4A,所述電荷儲存庫400通常包括電流對電壓(I對V)轉換器402(像是包含回授電阻器406的運算放大器404)以轉換來自與所述電荷儲存庫耦接的所述陣列中的行中的經激活的記憶胞的總和的位元線電流,以及數個電荷儲存元件(像是位元線電容器或取樣408a-e)以用於取樣或累加由所述總和的位元線電流所產生或生成的電荷。一般而言,取樣電容器408a-e的數量等於或大於預期在所述多位元輸入位元組中的位元的數量(b)。因此,在圖4A中所示的實施例中,所述電荷儲存庫400特別適用於累加並且轉換五個(5)位元輸入位元組,並且包括五個(5)取樣電容器408a-e。所述電荷儲存庫400也包括虛設電容器(Cdummy ) 410,其耦接到所述電荷儲存庫的輸出節點N,在所述輸出節點N上,儲存於所述取樣電容器408a-e上的所有電荷可被重新分佈以導出或提供等效電壓,在藉由ADC的元件或電路(未顯示於圖式中)的類比數位轉換之前,對於儲存在每個取樣電容器上的電荷來縮放電壓。
如上中所述,每個取樣電容器408a-e具有不同的電容值,所述電容值被選擇以相關於所述輸入數據位元組的每個位元來縮放電壓。如所述實施例所示,來自其中移位有所述輸入數據位元組的所述最重要位元(MSB)的行的位元線電流(IMSB )被轉換成電壓並且作為電荷被儲存或累加在取樣電容器408e上,其具有電容值16C。儲存或累加下一個最重要位元(VMSB-1 )的電壓被儲存在取樣電容器408d上,其具有電容值8C;VMSB-2 被儲存在取樣電容器408c,其具有電容值4C;VMSB-3 被儲存在取樣電容器408b,其具有電容值2C;並且VLSB 被儲存在取樣電容器408a,其具有電容值C。
除了上文所述的,所述電荷儲存庫400進一步包括第一切換器412,第一或輸入匯流排414經由所述第一切換器412而被耦接到所述I對V轉換器402的輸出或耦接到參考電壓(VREF );以及第二切換器416,第二或輸出匯流排418經由所第二切換器416可被耦接到接地,同時累加由儲存在每個所述取樣電容器408a-e上的所述總和的位元線電流所產生的電荷。每個所述取樣電容器408a-e的第一或頂部平板是經由獨立切換器420a-e而個別耦接到所述輸入匯流排414,以允許在所述輸入數據位元組中的每個位元的電荷被個別累加到所述取樣電容器408a-e中的一個取樣電容器上,而不是像在習知的SAR ADC中那樣同時累加到所有的取樣電容器上。每個所述取樣電容器408a-e的第二或下部平板彼此並聯並且所述虛設電容器410的下部平板耦接到所述輸出匯流排418。虛設電容器410的頂部平板經由切換器422而耦接到所述輸入匯流排。當所述I對V轉換器402的輸入耦接到所述記憶體陣列中的行中的共享位元線424以從對應於所述輸入數據位元組流的特定位元的位元線接收電流時,切換器420a-e被依序開啟以充電每個所述取樣電容器408a-e。所述切換器412、416、420a-e和422藉由在所述MAC核心中或耦接到所述MAC的控制器(未顯示)而被控制或操作。
圖5是一種用於操作單一電荷儲存庫的流程圖,所述單一電荷儲存庫耦接到單一位元線以累加由於將輸入數據位元組移位到每列所產生的電流,執行MAC操作到所述輸入數據位元組的所有位元上,以及將由MAC操作於所述輸入數據位元組的所有位元上而產生的電荷轉換成輸出數據位元組。將可以理解的是,雖然下述方法參照耦接到單一位元線的單一電荷儲存庫來描述,但是在MAC核心之實際操作中,所述MAC核心包括耦接到包含多個行的陣列中的一行的每個位元線的第一電荷儲存庫和第二電荷儲存庫,在所述多個第一電荷儲存庫和第二電荷儲存庫中的每一個耦接到所述陣列中的每個位元線而同時或同步地執行這些步驟。
參照圖5,該方法從第一階段開始於第一時脈週期,在第一列中的位元線上接收電流(IMSB ),該電流從由移位到所述陣列中的列並且耦接到電荷儲存庫的第一輸入數據位元組的MSB在所述第一行中所激活的的所有記憶胞的經加權的位元線電流的總和(步驟502)。接著,經加權的位元線電流的所述總和被轉換成電壓(VMSB )並且作為電荷被儲存於所述電荷儲存庫的第一電荷儲存元件上(步驟504)。參照圖4A,這是藉由使用I對V轉換器402而將所述電流轉換成電壓,關閉切換器412以將所述輸入匯流排414耦接到所述I對V轉換器402的輸出,關閉切換器416以將所述輸出匯流排418耦接到接地,以及關閉切換器420e以在第一電容器408e上耦接累加的電荷而完成的。在第二時脈週期中,第一輸入數據位元組的下一個MSB(MSB-1)被移位到在所述陣列中的所述列中並且來自所述行中所有被激活的記憶胞的經加權的位元線電流(IMSB-1 )的總和被耦接到所述電荷儲存庫(步驟506)。來自所述下一個MSB的經加權的位元線電流的所述總和被轉換成電壓(VMSB-1 )並且作為電荷而被儲存在所述電荷儲存庫中的第二電荷儲存元件上(步驟508)。參照圖4B,其之完成是藉由開啟切換器420e並且關閉切換器420d以累加電荷於第二電容器408d上。所述過程以相似的方式依序繼續,直到由在所述第一輸入數據位元組中的所有位元所產生的經加權的位元線電流被接收並且儲存在所述電荷儲存庫400中的個別取樣電容器408a-e上。參照圖4C,由所述輸入數據位元組的所有位元所產生的所述累加電荷可接著藉由透過第一切換器412將所述輸入匯流排414連接到參考電壓(VREF)而被保持在所述電荷儲存元件中,開啟切換器416並且切換所有切換器420a-e到接地。在另外的實施例中,不是使用MBS優先的方式,而是LSB可在所述第一時脈週期中被移位,接著是LSB+1,直到由所述第一輸入數據位元組的所有位元所產生的經加權的位元線電流被接收並且儲存在所述電荷儲存庫400中的個別取樣電容器408a-e上。
在五個(5)時脈週期結束時,所述電荷儲存庫解開與在所述行中的所述共享位元線的耦接關係,並且在節點N處或透過節點N而耦接到ADC (步驟510)。接著,需要用於縮放與每個輸入位元相關的所述電壓的等效電壓被提供於節點N上(步驟512)。參照圖4C,其之完成是藉由關閉所有切換器420a-e以及切換器422以將所有取樣電容器408a-e的上平板耦接到虛設電容器410以接地來重新分配其上的電荷。接著,與每個輸入位元相關並且儲存在每個取樣電容器408a-e上的電壓的標準SAR ADC轉換被依序地執行(步驟514)。參照圖4D,其之完成是藉由將VREF電壓施加到取樣電容器408e的上平板,藉由將切換器420e轉到VREF,其將產生VREF/2 – Vin 的電壓於節點N上(此處的Vin是在取樣階段中橫跨所述輸入位元組中的所有輸入位元而儲存在電容器480a到480e上的所有電荷的等效縮放電壓)。所述ADC根據所述節點N上的電壓來決定所述MSB位元。從那時起,所述一般SAR控制器操作如下。即,根據所述MSB位元的決定,所述SAR控制器決定對節點N取樣VREF/4或3*VREF/4…等等。
圖6是具有硬體加速器602的人工智慧(AI)系統600的實施例的示意性方塊圖,所述人工智慧系統600包括數個神經引擎或神經核心604,其含有具備ICM架構的MAC核心606並且根據本文所記載的內容來操作。參照圖6,除了所述硬體加速器602,所述系統還包括微控制器或處理器608。所述處理器608可包括或是可被執行為晶片上系統(system-on-chip,SOC)、現場可程式化邏輯閘陣列(field programmable gate array,FPGA)、特定應用積體電路(application specific integrated circuit,ASIC)或微控制單元(MCU),並且取決於所述AI系統600的複雜度,並且特別是所述處理器可被整合地形成在與所述硬體加速器602或所述硬體加速器的元件共同或共享的基板上、或者是被封裝在與所述硬體加速器共享的積體電路封裝中或被附接到與所述硬體加速器共用或共享的電路板。
除了所述MAC核心606,每個神經核心604通常進一步包括可程式化非線性引擎(programmable non-linear engine,NLE) 610以在所述MAC輸出上執行非線性激活功能,以及含有隨機存取記憶體(RAM)或靜態隨機存取記憶體(SRAM)的快取記憶體(cache)612。
除了所述神經核心604,所述硬體加速器602通常進一步包括AI協同處理器614(像是中央處理單元(CPU)子系統)、含有RAM或SRAM的緩衝器616、輸入/輸出子系統(IOSS) 618以及系統資源子系統(system resources sub-system (SRSS) 620,全部透過周邊互連件622及/或系統互連件624而電性耦合於所述AI協同處理器中。
所述AI協同處理器614通常包括儲存於唯讀記憶體(ROM) 626、RAM 628或SRAM中的韌體以及處理器630,所述處理器630具有精簡指令集運算(RISC)架構或來自安謀控股公司(Arm Holdings)的市售Cortex M系列處理器。
包含具備NVM記憶體陣列以及雙電荷儲存庫的MAC核心的記憶體內運算(IMC)架構以及用於操作其以提升MAC操作的速度及效率之方法已記載於本文中。MAC核心和MAC操作方法的優點包括消除了根據輸入位元的權重來縮放輸入電流時所需要的額外消耗功率,以及因為縮放電壓由電荷儲存庫中的相同電容器產生的,因此任何電荷儲存庫中的電荷洩漏會導致,可在系統層級加以考慮的增益誤差。因此,將理解的是,與使用類似的先前技術IMC架構得實現的相比,本發明所記載的MAC核心和MAC操作方法提供更好的功率效率,並且增加每秒的總操作數(TOPS)和TOPS/Watt。
上文中已藉由功能性及示意性方塊圖描述了本發明的實施例,這些方塊圖顯示了特定功能的實施方式及其關係。為便於描述,本文已任意定義了這些功能構建方塊的解釋範圍。只要適當地執行指定的功能及其關係,就可定義替代解釋範圍。
特定實施例的前述描述將非常充分地記載本發明的一般性質,以至於其他人可通過應用所屬技術領域中的知識,在不違背本發明的一般概念之下,不須過度實驗,則可容易地修改及/或適用這些特定實施例的各種應用。因此,基於本文中呈現的教示和指導,此類調適和修改旨在處於所記載實施例的等效物的含義和範圍內。應當理解的是,本文中的用詞或術語是為了描述而非限制目的,則本說明書的術語或用詞將由本領域技術人員根據教示和指導來解釋。
應理解的是,並非是“發明內容”和”發明摘要”,而是所述“實施方式”是用於解釋申請專利範圍。“發明內容”和”發明摘要”部分可闡述發明人所設想的本發明一個或多個但不是所有的範例性實施例,因此,其目的不是要以任何方式限制本發明以及所附申請專利範圍。
本發明的廣度和範圍不應受上述範例性實施例中的任一個所限制,而應僅根據所附申請專利範圍及其等同範圍來限定。
100:類比乘積累加(MAC)引擎或核心 102:記憶體陣列/陣列 104:記憶單元/記憶胞 106:共享位元線 106a:第一位元線 106b:第二位元線 108:共享字元線 110:暫存器 112:累加器 114a:第一電荷儲存庫 114b:第二電荷儲存庫 116:類比數位轉換器/ADC 118:多位元輸出暫存器 120:控制器 122:時脈緩衝器 200:NVM電晶體 202:閘極堆疊 204:基板 206:源極區域 208:汲極區域 210:井區 212:通道區域 214:本體偏壓端子 216:氧化穿隧介電層 218:電荷捕獲層 220:頂部阻擋氧化層 222:控制閘極 301-307:步驟 400:電荷儲存庫 402:I對V轉換器 404:運算放大器 406:回授電阻器 408a-b:取樣電容器 408d:取樣電容器/第二電容器 408e:取樣電容器/第一電容器 410:虛設電容器 412:第一切換器/切換器 414:輸入匯流排 416:第二切換器/切換器 418:輸出匯流排 420a-e:切換器 422:切換器 424:共享位元線 502-514:步驟 600:人工智慧系統 602:硬體加速器 604:神經核心 606:MAC核心 608:處理器 610:可程式化非線性引擎(NLE) 612:快取記憶體 614:AI協同處理器 616:緩衝器 618:輸入/輸出子系統(IOSS) 620:系統資源子系統(SRSS) 622:周邊互連件 624:系統互連件 626:唯讀記憶體(ROM) 628:RAM 630:處理器
現在將僅通過範例的方式,參考所附示意圖來描述本發明實施例,在附圖中,相應附圖標記指示相應部分。此外,結合在本文中並構成說明書一部分的附圖顯示本發明的實施例,並且與說明書一起進一步用於解釋本發明原理並使所屬技術領域中具有通常知識者能夠進行操作來製造和使用本發明。
[圖1A]是類比乘積累加(MAC)核心的實施例的示意性方塊圖,所述MAC核心包括記憶體陣列、多個電荷儲存庫和類比對數位轉換器(ADC)以在執行MAC操作時消除延遲和改善效率;
[圖1B]是MAC核心的另一個實施例的示意性方塊圖,在所述MAC核心中,在所述記憶體陣列中的每個記憶胞包括兩個非揮發性記憶體(NVM)胞,每個NVM胞包含一個或多個NVM裝置;
[圖2]是顯示SONOS NVM電晶體的橫截面側視圖的方塊圖;
[圖3]是使用圖1A或圖1B的MAC核心來執行MAC操作的方法的流程圖;
[圖4A]是使用於圖1A或圖1B的MAC核心中的電荷儲存庫的實施例的示意性方塊圖,並且被設置以取樣從輸入數據位元組的第一位元移位至每一列所產生的在行中的電流並且將產生的電荷儲存在所述電荷儲存庫中的電荷儲存元件上;
[圖4B]是圖4A的所述電荷儲存庫的示意性方塊圖,所述電荷儲存庫被設置以取樣從所述輸入數據位元組的第二位元所產生的在所述行中的電流並且將產生的電荷儲存在所述電荷儲存庫中的第二電荷儲存元件上;
[圖4C]是圖4A的所述電荷儲存庫的示意性方塊圖,所述電荷儲存庫被設置以保持從所述輸入數據位元組的所有位元所產生的電荷並且提供等效電壓於節點N,需要所述等效電壓以相關於每個輸入位元來縮放所述電壓;
[圖4D]是圖4A的所述電荷儲存庫的示意性方塊圖,所述電荷儲存庫被設置以使用逐漸逼近式類比數位轉換器(successive approximation register analog to digital converter,SAR ADC)來將MAC操作於所述輸入數據位元組的所有位元所產生的電荷轉換成輸出數據位元組;
[圖5]是用於操作單一電荷儲存庫的流程圖,所述單一電荷儲存庫耦接到單一位元線以將從輸入數據位元組的移位所產生的電流累加到每個列、將MAC操作執行於所述輸入數據位元組的所有位元上且將MAC操作執行於所述輸入數據位元組的所有位元上所產生的電荷轉換成輸出數據位元組;以及
[圖6]是人工智慧(AI)系統的實施例的示意性方塊圖,所述人工智慧系統具有硬體加速器,所述硬體加速器包含具有MAC核心的數個神經引擎,所述MAC核心是根據本文中所記載的內容來操作。
100:類比乘積累加(MAC)引擎或核心
102:記憶體陣列/陣列
104:記憶單元/記憶胞
106:共享位元線
108:共享字元線
110:暫存器
112:累加器
114a:第一電荷儲存庫
114b:第二電荷儲存庫
116:類比數位轉換器/ADC
118:多位元輸出暫存器
120:控制器
122:時脈緩衝器

Claims (20)

  1. 一種方法,包括: 將數個第一輸入位元組中的每一個耦接到多個列中的一個,所述多個列在以行和列配置的記憶胞陣列中,在行中的每個記憶胞耦接到共享位元線; 將所述數個第一輸入位元組中的位元依序移位到每個列中的每個記憶胞;並且對於每個位元: 將所述位元與儲存在每個記憶胞中的權重相乘,藉由基於所述位元的狀態來激活每個記憶胞以從每個經激活的記憶胞產生經加權的位元線電流,所述經加權的位元線電流正比於所述位元和儲存於其中之所述權重的乘積; 在第一電荷儲存庫中,將從所述行中的每個經激活的記憶胞的所述經加權的位元線電流的總和所產生的電荷累加,每個所述第一電荷儲存庫耦接到所述行的一個行中所述共享位元線,其中經累加的所述電荷相關於在所述數個第一輸入位元組中的所述位元的重要性(significance)而被縮放;並且 與所述移位、所述相乘、所述累加同時,將電荷轉換成輸出位元組,所述電荷藉由來自先前累加在第二電荷儲存庫的數個第二輸入位元組的經加權位元線電流的總和所產生的,利用耦合到所述第二電荷儲存庫的數個類比對數位轉換器(ADC)來進行。
  2. 如請求項1的方法,其中所述移位、所述相乘以及所述累加在不需要使用數位對類比轉換器來轉換所述數個第一輸入位元組中的位元之情形下來完成。
  3. 如請求項1的方法,其進一步包括:在所述數個第一輸入位元組中的位元被移位並且經累加在所述第一電荷儲存庫中的所述電荷以及在所述第二電荷儲存庫中的所述電荷被轉換之後,將所述第一電荷儲存庫與所述第二電荷儲存庫交換。
  4. 如請求項1的方法,其中所述第一電荷儲存庫以及所述第二電荷儲存庫中的每一個包括多個位元線電容器,所述多個位元線電容器包含不同的電容值,並且其中將電荷累加包括將藉由每個依序移位的位元而在行上所產生的電荷累加到所述多個位元線電容器中的一個位元線電容器上,該個位元線電容器具有相關於在所述數個第一輸入位元組中的所述位元的重要性而選擇的電容值。
  5. 如請求項4的方法,其中移位到每個列中的第一位元是耦接到所述列的所述輸入位元組中的最重要位元(MSB),並且其中將藉由來自行中的所述第一位元的所述經加權的位元線電流的所述總合所產生的電荷累加包括:將電荷累加在所述第一電荷儲存庫中具有最大電容值的位元線電容器上。
  6. 如請求項4的方法,其中所述第一電荷儲存庫以及所述第二電荷儲存庫中的每一個進一步包括耦接到其之輸出節點,並且其中將先前累加在所述第二電荷儲存庫中的電荷轉換包括將儲存在所述多個位元線電容器中的電荷重新分佈到所述虛設電容器中以提供等效電壓,用於相關於儲存在所述多個位元線電容器中的每一個上的電荷來縮放電壓。
  7. 如請求項1的方法,其中每個記憶胞包括多階之非揮發性記憶體(NVM)裝置,並且進一步包括在依序移位所述數個第一輸入位元組中的位元到每個記憶胞之前,將所述權重儲存在每個NVM裝置中。
  8. 如請求項1的方法,其中每個記憶胞包括兩個多階之非揮發性記憶體(NVM)裝置,包括耦接到所述共享位元線的第一NVM裝置以及耦接到第二共享位元線的第二NVM裝置,所述第二共享位元線由在所述行中的記憶胞中的第二NVM裝置所共享,並且進一步包括在依序移位所述數個第一輸入位元組中的位元到每個記憶胞之前,將不同的權重儲存在所述記憶胞中的所述第一NVM裝置以及所述第二NVM裝置的每一個中。
  9. 如請求項8的方法,其中儲存在所述第一NVM裝置以及所述第二NVM裝置的每一個中的所述不同的權重包括相反極性。
  10. 一種乘積累加(MAC)核心,包括: 記憶胞陣列,配置成行和列,在行中的每個記憶胞耦接到共享位元線; 多個暫存器,所述多個暫存器中的每個耦接到所述記憶胞陣列中的一個列,以依序移位第一輸入位元組中的位元到所述列,以基於所述位元的狀態來激活所述記憶胞以產生來自每個經激活的記憶胞的經加權的位元線電流,所述經加權的位元線電流正比於所述位元和儲存於其中之權重的乘積;以及 多個第一電荷儲存庫,所述多個第一電荷儲存庫中的每個耦接到在所述行中的一個行的所述共享位元線並且經配置以接收經加權的位元線電流的總和,並且對於所述輸入位元組中的每一位元累加藉由經加權的位元線電流的所述總和所產生的電荷; 多個第二電荷儲存庫,所述多個第二電荷儲存庫耦接到數個類比對數位轉換器(ADC),所述多個第二電荷儲存庫中的每一個經配置以與所述移位和所述累加同時動作,以對於先前接收到的第二輸入位元組中的每個位元提供經縮放的電壓到所述數個ADC以用於轉換成輸出位元組;以及 控制器,所述控制器耦接到所述多個第一電荷儲存庫以及所述多個第二電荷儲存庫,在所述第一輸入位元組中的每個位元在所述第一電荷儲存庫中被累加以及在所述第二電荷儲存庫中的所述電荷被轉換之後,將所述第一電荷儲存庫與所述第二電荷儲存庫切換。
  11. 如請求項10的所述MAC核心,其中在所述多個暫存器和所述記憶胞陣列之間不包括數位對類比轉換器。
  12. 如請求項10的所述MAC核心,其中所述第一電荷儲存庫以及所述第二電荷儲存庫中的每一個包括多個位元線電容器,所述多個位元線電容器包括不同的電容值,以將藉由每個依序移位的位元而在行上所產生的電荷累加到所述多個位元線電容器中的一個位元線電容器上,該個位元線電容器具有相關於在所述數個第一輸入位元組中的所述位元的重要性而選擇的電容值。
  13. 如請求項12的所述MAC核心,其中所述第一電荷儲存庫以及所述第二電荷儲存庫中的每一個進一步包括虛設電容器,所述虛設電容器耦接到其之輸出節點以將儲存在所述多個位元線電容器中的電荷重新分佈到所述虛設電容器中,以提供等效電壓來相關於儲存在所述多個位元線電容器中的每個上的電荷來縮放電壓。
  14. 如請求項10的所述MAC核心,其中每個記憶胞包括多階之非揮發性記憶體(NVM)裝置,在所述非揮發性記憶體(NVM)裝置上,每個記憶胞中儲存有所述權重。
  15. 如請求項14的所述MAC核心,其中每個記憶胞包括兩個多階之非揮發性記憶體(NVM)裝置,包括耦接到所述共享位元線的第一NVM裝置以及耦接到第二共享位元線的第二NVM裝置,所述第二共享位元線由在所述行中的記憶胞中的第二NVM裝置所共享,並且其中所述第一NVM裝置和所述第二NVM裝置儲存不同的權重。
  16. 如請求項10的所述MAC核心,其中將在所述第一電荷儲存庫中累加從所述第一輸入位元組中的每個位元所產生的縮放電荷的時間大於將在所述第二電荷儲存庫中的電荷轉換的時間,並且其中所述數個ADC經時間多工化以對於在多個第二電荷儲存庫中的電荷執行轉換。
  17. 一種人工智慧(AI)系統,包括: 微控制器;以及 多個乘積累加(MAC)核心,其中每個MAC核心包括: 配置成行和列的記憶胞的陣列,每個記憶胞包括非揮發性記憶(NVM)裝置,並且每個行包括連接在所述行中之NVM裝置的位元線; 多個暫存器,所述多個暫存器中的每個耦接到所述陣列中的一個列,以依序移位第一輸入位元組中的位元到所述列,以基於所述位元的狀態來激活所述NVM裝置以產生來自每個經激活的NVM裝置的經加權的位元線電流,所述經加權的位元線電流正比於所述位元和儲存於其中之權重的乘積;以及 多個第一電荷儲存庫,所述多個第一電荷儲存庫中的每個耦接到在所述行中的一個行的所述位元線並且經配置以接收經加權的位元線電流的總和,並且對於所述輸入位元組中的每一位元累加藉由經加權的位元線電流的所述總和所產生的電荷; 多個第二電荷儲存庫,所述多個第二電荷儲存庫耦接到數個類比對數位轉換器(ADC),所述多個第二電荷儲存庫中的每一個經配置以與所述移位和所述累加同時動作,以對於先前接收到的第二輸入位元組中的每個位元提供經縮放的電壓到所述數個ADC以用於轉換成輸出位元組;以及 控制器,所述控制器耦接到所述多個第一電荷儲存庫以及所述多個第二電荷儲存庫,在所述第一輸入位元組中的每個位元在所述第一電荷儲存庫中被累加以及在所述第二電荷儲存庫中的所述電荷被轉換之後,將所述第一電荷儲存庫與所述第二電荷儲存庫交換。
  18. 如請求項17的所述AI系統,其中所述第一電荷儲存庫以及所述第二電荷儲存庫中的每一個包括多個位元線電容器,所述多個位元線電容器包括不同的電容值以將藉由每個依序移位的位元而在行上所產生的電荷累加到所述多個位元線電容器中的一個位元線電容器上,該個位元線電容器具有電容值,所述電容值相關於在所述數個第一輸入位元組中的所述位元的重要性而選擇的。
  19. 如請求項18的所述AI系統,所述第一電荷儲存庫以及所述第二電荷儲存庫中的每一個進一步包括虛設電容器,所述虛設電容器耦接到其之輸出節點以將儲存在所述多個位元線電容器中的電荷重新分配到所述虛設電容器,以提供等效電壓來相關於儲存在所述多個位元線電容器中之每個的電荷來縮放電壓。
  20. 如請求項17的所述AI系統,其中每個NVM裝置包括多階NVM裝置,在所述多階NVM裝置上,每個記憶胞中儲存有所述權重。
TW110106872A 2020-03-02 2021-02-26 記憶體內運算架構及用於執行乘積累加運算的方法 TW202143026A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062983866P 2020-03-02 2020-03-02
US62/983,866 2020-03-02
US16/908,210 US11586896B2 (en) 2020-03-02 2020-06-22 In-memory computing architecture and methods for performing MAC operations
US16/908,210 2020-06-22

Publications (1)

Publication Number Publication Date
TW202143026A true TW202143026A (zh) 2021-11-16

Family

ID=77463781

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110106872A TW202143026A (zh) 2020-03-02 2021-02-26 記憶體內運算架構及用於執行乘積累加運算的方法

Country Status (6)

Country Link
US (2) US11586896B2 (zh)
JP (1) JP2023516343A (zh)
CN (1) CN115244508A (zh)
DE (1) DE112021001388T5 (zh)
TW (1) TW202143026A (zh)
WO (1) WO2021178225A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586494B2 (en) 2019-09-23 2023-02-21 SK Hynix Inc. Processing-in-memory (PIM) devices
US11586500B2 (en) 2019-09-23 2023-02-21 SK Hynix Inc. Processing-in-memory (PIM) devices
KR20210034999A (ko) 2019-09-23 2021-03-31 에스케이하이닉스 주식회사 Aim 장치 및 aim 장치에서의 곱셈-누산 연산 방법
US11544547B2 (en) * 2020-06-22 2023-01-03 Western Digital Technologies, Inc. Accelerating binary neural networks within latch structure of non-volatile memory devices
US11756615B2 (en) * 2020-08-31 2023-09-12 Stmicroelectronics S.R.L. Memory device and method for in-memory computing
US11922240B2 (en) * 2020-12-31 2024-03-05 Ceremorphic, Inc. Unit element for asynchronous analog multiplier accumulator
KR20220141652A (ko) * 2021-04-13 2022-10-20 삼성전자주식회사 멀티-비트 연산 장치 및 방법
US20220382516A1 (en) * 2021-05-31 2022-12-01 Redpine Signals, Inc. Chopper Stabilized Analog Multiplier Accumulator with Binary Weighted Charge Transfer Capacitors
US11811416B2 (en) * 2021-12-14 2023-11-07 International Business Machines Corporation Energy-efficient analog-to-digital conversion in mixed signal circuitry
US11899518B2 (en) 2021-12-15 2024-02-13 Microsoft Technology Licensing, Llc Analog MAC aware DNN improvement
US20240086153A1 (en) * 2022-09-14 2024-03-14 Samsung Electronics Co., Ltd. Multi-bit accumulator and in-memory computing processor with same
CN115995256B (zh) * 2023-03-23 2023-05-16 北京大学 一种自校准电流编程及电流计算型存内计算电路及其应用

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
US6868009B1 (en) 2003-10-20 2005-03-15 Macronix International Co., Ltd. Flash memory device with byte erase
JP5194302B2 (ja) 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US9142306B2 (en) 2013-01-11 2015-09-22 Atmel Corporation Selecting memory cells using source lines
US11385863B2 (en) * 2018-08-01 2022-07-12 Hewlett Packard Enterprise Development Lp Adjustable precision for multi-stage compute processes
US10825509B2 (en) * 2018-09-28 2020-11-03 Intel Corporation Full-rail digital read compute-in-memory circuit
WO2020139895A1 (en) * 2018-12-24 2020-07-02 The Trustees Of Columbia University In The City Of New York Circuits and methods for in-memory computing
US11568200B2 (en) * 2019-10-15 2023-01-31 Sandisk Technologies Llc Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
KR20210050966A (ko) * 2019-10-29 2021-05-10 삼성전자주식회사 적층형 뉴로모픽 장치 및 뉴로모픽 컴퓨팅 장치
US11574173B2 (en) * 2019-12-19 2023-02-07 Qualcomm Incorporated Power efficient near memory analog multiply-and-accumulate (MAC)
US11657259B2 (en) * 2019-12-20 2023-05-23 Sandisk Technologies Llc Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine
US11657238B2 (en) * 2020-01-31 2023-05-23 Qualcomm Incorporated Low-power compute-in-memory bitcell
CN113344170B (zh) * 2020-02-18 2023-04-25 杭州知存智能科技有限公司 神经网络权重矩阵调整方法、写入控制方法以及相关装置
WO2022015967A1 (en) * 2020-07-15 2022-01-20 Spero Devices, Inc. High endurance memory circuitry
KR20220010362A (ko) * 2020-07-17 2022-01-25 삼성전자주식회사 뉴럴 네트워크 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
US20210271959A1 (en) 2021-09-02
CN115244508A (zh) 2022-10-25
WO2021178225A1 (en) 2021-09-10
JP2023516343A (ja) 2023-04-19
DE112021001388T5 (de) 2023-01-19
US11586896B2 (en) 2023-02-21
US20230259748A1 (en) 2023-08-17

Similar Documents

Publication Publication Date Title
TW202143026A (zh) 記憶體內運算架構及用於執行乘積累加運算的方法
US11521051B2 (en) Memristive neural network computing engine using CMOS-compatible charge-trap-transistor (CTT)
TWI779285B (zh) 用於執行向量矩陣乘法的方法和設備,及向量矩陣乘法電路
WO2023142883A1 (zh) 存算一体运算方法、忆阻器神经网络芯片及存储介质
CN112181895B (zh) 可重构架构、加速器、电路部署和计算数据流方法
Xiang et al. Analog deep neural network based on NOR flash computing array for high speed/energy efficiency computation
Seo et al. ARCHON: A 332.7 TOPS/W 5b variation-tolerant analog CNN processor featuring analog neuronal computation unit and analog memory
Krishnan et al. Hybrid RRAM/SRAM in-memory computing for robust DNN acceleration
Kohda et al. Unassisted true analog neural network training chip
Caselli et al. Charge sharing and charge injection A/D converters for analog in-memory computing
US20220309328A1 (en) Compute-in-memory devices, systems and methods of operation thereof
CN115691613B (zh) 一种基于忆阻器的电荷型存内计算实现方法及其单元结构
US11494628B2 (en) Charge domain mathematical engine and method
CN116032258A (zh) 延时缓冲单元及其操作方法、计算装置及其操作方法
CN111859261B (zh) 计算电路及其操作方法
Lu et al. Compute-in-RRAM with Limited On-chip Resources
CN113114262B (zh) 一种高效直接功能函数映射模数转换电路
CN117037877A (zh) 基于NOR Flash的存内计算芯片及其控制方法
US20230027768A1 (en) Neural network computing device and computing method thereof
CN111243648A (zh) 闪存单元、闪存模块以及闪存芯片
CN113674785A (zh) 存内计算单元、模块和系统
US20240112003A1 (en) Output circuit for artificial neural network array
CN116049094A (zh) 一种基于光电存算一体单元的多阈值配置装置及其方法
CN117559980A (zh) 延时缓冲单元、延时缓冲阵列、电子装置及操作方法
TW202416180A (zh) 用於人工神經網路陣列的輸出電路