TW202205113A - 用於記憶體運算交叉式網路中的類比混合信號之時域比例式讀出介面 - Google Patents
用於記憶體運算交叉式網路中的類比混合信號之時域比例式讀出介面 Download PDFInfo
- Publication number
- TW202205113A TW202205113A TW110127274A TW110127274A TW202205113A TW 202205113 A TW202205113 A TW 202205113A TW 110127274 A TW110127274 A TW 110127274A TW 110127274 A TW110127274 A TW 110127274A TW 202205113 A TW202205113 A TW 202205113A
- Authority
- TW
- Taiwan
- Prior art keywords
- time
- output
- circuit
- digital
- network
- Prior art date
Links
Images
Classifications
-
- 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
- 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/4094—Bit-line management or control circuits
-
- G—PHYSICS
- G04—HOROLOGY
- G04F—TIME-INTERVAL MEASURING
- G04F10/00—Apparatus for measuring unknown time intervals by electric means
- G04F10/005—Time-to-digital converters [TDC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
- G06G7/161—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division with pulse modulation, e.g. modulation of amplitude, width, frequency, phase or form
-
- 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/048—Activation functions
-
- 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
- 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
- G11C27/00—Electric analogue stores, e.g. for storing instantaneous values
- G11C27/02—Sample-and-hold arrangements
- G11C27/024—Sample-and-hold arrangements using a capacitive memory element
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/14—Conversion in steps with each step involving the same or a different conversion means and delivering more than one bit
- H03M1/144—Conversion in steps with each step involving the same or a different conversion means and delivering more than one bit the steps being performed sequentially in a single stage, i.e. recirculation type
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/34—Analogue value compared with reference values
-
- 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/4814—Non-logic devices, e.g. operational amplifiers
-
- 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/4828—Negative resistance devices, e.g. tunnel diodes, gunn effect devices
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering 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/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/1205—Multiplexed conversion systems
- H03M1/123—Simultaneous, i.e. using one converter per channel but with common control or reference circuits for multiple converters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/50—Analogue/digital converters with intermediate conversion to time interval
- H03M1/56—Input signal compared with linear ramp
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Power Engineering (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Amplifiers (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
一種被配置以對矩陣乘加計算進行運算之電路包括:一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例且在與一參考時間相關聯之時域中經調變之一信號;一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收時間調變信號且輸出回應於該交叉式網路之網路權重及該時間調變輸入信號而按比例縮放之一經加權信號;及一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號並使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
Description
本發明係關於具有人工智慧能力的電腦系統,其包括神經網路。
深度神經網路經部署在廣泛範圍的應用中,諸如IoT裝置之低功率感測器係在該些應用中。出於推斷目的,有時被稱作「邊緣」裝置之裝置的能耗之進一步縮減係藉由最小化自感測器至網路(雲端)之恆定資料訊務之機載分類器而實現。藉由訓練機載分類器以識別有限數目個類別(元資料),可以低能量位準連續地操作感測器。一旦機載分類器偵測呈經感測量之所要特徵,則可實現高保真度感測及高資料率雲端連接以用於較智慧型操作。此最終產生此類「邊緣」裝置之低能量操作及延長的電池壽命。在此類始終起作用之方案中,在感測器之後的經訓練神經網路有時可對總能耗貢獻相當大的量。這些神經網路主要基於較大矩陣乘加運算來起作用,且通常需要大量資料自周邊記憶體傳送至處理單元。由於驅動互連件之寄生電容所需之能量,用於資料傳送之能耗可比藉由處理單元執行之數學運算大若干數量級。
根據一個實施例,一種被配置以對矩陣乘加計算進行運算之電路包括:一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例且在與一參考時間相關聯之時域中經調變之一信號;一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收時間調變信號且輸出回應於該交叉式網路之網路權重及該時間調變輸入信號而按比例縮放之一經加權信號;及一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號並使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
根據一第二實施例,一種被配置以對矩陣乘加計算進行運算之電路包括:一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例且在與一參考時間相關聯之時域中經調變之一信號;一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收時間調變信號且輸出按該交叉式網路之網路權重及該時間調變輸入信號而按比例縮放之一經加權信號,其中該些網路權重位於該交叉式網路之一或多個位元線或字線上;及一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號且使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
根據一第三實施例,一種被配置以對矩陣乘加計算進行運算之電路包括:一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例且在與一參考時間相關聯之時域中經調變之一信號;一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收時間調變信號且輸出按該交叉式網路之網路權重及該時間調變輸入信號而按比例縮放之一經加權信號,其中該些網路權重係回應於被配置為可程式化權重之非揮發性記憶體而調整;及一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號且使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
本文中描述本發明之實施例。然而,應理解,經揭示實施例僅僅為實例且其他實施例可採取各種及替代形式。圖未必按比例繪製;一些特徵可經放大或最小化以展示特定組件之細節。因此,本文中所揭示之特定結構及功能細節不應解釋為限制性,而僅為用於教示所屬技術領域中具通常知識者各自不同地使用實施例的一個代表性基礎。如所屬技術領域中具通常知識者將理解,參考圖中之任一者所說明且描述之各種特徵可與一或多個其他圖中所說明之特徵組合以產生未明確地說明或描述之實施例。所說明特徵之組合為典型應用提供代表性實施例。然而,對於特定應用或實施,可能需要根據本發明之教示之特徵的各種組合及修改。
大數據係用於訓練深度神經網路以便推斷所關注之類別。用於這些網路之架構主要依賴於較大矩陣乘加運算。在數位硬體實施中,較大能耗開銷係與權重及啟動自周邊記憶體至算術計算單元之傳送及結果返回至記憶體之傳送相關聯。記憶體內運算方案藉由執行儲存權重之計算(亦即記憶體)來解決此問題。實施記憶體內運算之方法係藉助於類比信號處理,例如藉由使用交叉式網路,來實現。此處,權重可藉助於諸如電阻器或電容器之按比例縮放之阻抗來實施,該些按比例縮放之阻抗的值形成神經網路之權重且儲存於交叉開關內。啟動輸入係呈類比電壓之形式,該些類比電壓當經施加於阻抗(權重)時,導致值與對應的啟動值成比例的電流(或電荷包)藉由權重元件按比例縮放(其阻抗之轉導)。此形成乘法運算。這些乘法結果之求和可藉由電網路操作(克希荷夫定律(Kirchhoff's law))例如藉助於電路節點中之電流求和或電容器中之電荷累加而在被動電路節點中經執行[2]。
此類交叉式網路以低位準之能耗實現同時且大規模的乘加計算(MAC運算亦被稱作矩陣點積計算)。為了應用類比啟動輸入且為了讀出所得類比MAC輸出,通常藉助於數位至類比轉換器(DAC)及類比至數位轉換器(ADC)來應用振幅域資料轉換方案。此類方案具有若干缺陷。網路及介面電路中之電流在資料轉換(類比至數位,及數位至類比)之持續時間內的連續流動並非高能效的。另外,資料轉換器為複雜的電路,且消耗靜態功率,並佔用晶片面積。因此,該些資料轉換器應用於大規模深度神經網路給網路之可擴展性及能效產生限制。此類類比乘加網路可在時域中介接,而非使用振幅域介面(用於啟動及讀出)。時域類比至數位介面電路(數位至時間轉換器及時間至數位轉換器)之架構較接近於數位電路,且因此具有小得多的佔據面積且主要消耗動態功率。因此,採用時域類比至數位介面電路較適合於較大按比例縮放,且可受益於深度亞微米積體電路技術。
圖1說明DEQ網路之表示。DEQ網路可實施如2020年6月8日提交的名為「用於多刻度深度均衡模型之系統及方法(SYSTEM AND METHOD FOR MULTISCALE DEEP EQUILIBRIUM)」之申請案第16/895,683號中所描述的功能、網路及訓練,該申請案特此以全文引用之方式併入。DEQ可具有單層。圖1之DEQ模型及網路中利用兩個重要方程式。第一方程式,方程式1(在下文展示),該方程式可界定單層DEQ模型。其可由該模型/網路之非線性函數組成。至網路之輸入可經界定為且輸入偏差可經界定為。應注意,雖然方程式1為一般表示,但其可能不表示DEQ網路之所有可能的實施例。舉例而言,線性算子不僅可指矩陣乘法,且亦可指深度網路中常見的卷積或其他結構化線性算子。且隱藏單元或隱藏狀態不僅可表示多於恰好典型的「單個」隱藏單元,且亦可表示例如多個不同時間或空間尺度上的多個隱藏單元之級聯。方程式2描述隱式的非線性微分方程式,其根係未知的且需要對該些根進行求解以評估DEQ網路。為了對根進行求解,可針對對成本函數(方程式3)反覆地進行求解。當對方程式3反覆地進行求解時,網路經設定為初始狀態,。該反覆接著繼續計算成本函數()之下一個值,該成本函數在下文被稱作方程式3。當成本函數小於預定義公差ε(如方程式4中所展示)時,可認為求根已完成(根被求解)。當在k次反覆之後符合此條件時,假設,方程式4。應注意,在根求解期間,輸入及被視為恆定的,且使用此反覆製程實施用於DEQ網路之訓練及推斷兩者。
根據以上方程式1及方程式2,可產生描述方程式2之計算的信號流圖,如圖2中所展示。該信號流圖可經表示為具有非線性函數𝜎之基於矩陣之運算。此可藉由將進一步論述之電子運算結構來實施。
在下文提供用於圖2中之變數的定義:
表
2
:變數定義
變數 | 描述 |
模型輸入。其可為純量、向量或全張量 | |
DEQ模型之當前狀態。其可為純量、向量或全張量 | |
DEQ模型之均衡狀態。其可為純量、向量或全張量 | |
DEQ模型之權重。其可為純量、向量或全張量 | |
算子「∙」 | 及:「∙」可為變數、與、z之間的任一線性運算,例如純量運算、簡單矩陣乘法或卷積。 |
DEQ輸入偏差。其可為純量、向量或全張量。 | |
求和 | |
非線性函數,其對純量、向量或張量輸入進行運算。其輸出可為純量、向量或張量 | |
DEQ模型之輸出。其可為純量、向量或全張量。其為DEQ網路狀態之任意函數。 | |
DEQ狀態之任一函數。其輸入可為純量、向量或張量。其輸出可為純量、向量或張量 |
如圖2中所展示,DEQ網路可由多個乘法及求和表示,諸如輸入、偏差及輸出狀態之卷積。此常常可被稱作點積或乘加(multiply and accumulate;MAC)運算。因而,可用於實施標準卷積神經網路之電路可經修改以實施DEQ網路。主要修改為實現運算之方式。在標準神經網路中,運算不接收當前輸出狀態對網路之輸入的連續時間回饋。典型地,若發生回饋,則其會延遲發生,亦即,其為先前運算之結果。
根之類比運算:穩定至均衡條件,而非反覆:
圖3說明具有非線性放大器309之簡單的反相電路300之實施例。非線性放大器309可具有延遲,諸如單極放大器。該電路可具有第一電阻器305及第二電阻器307。第一電阻器305可隨時間推移接收輸入301。DEQ方法之一個態樣為用於DEQ中之推斷及訓練的求根可類似於穩定至均衡之實體系統(電、機械、流體等)。DEQ模型中之有效地推斷及訓練可使用穩定至均衡點311之實體系統來實施(求根A)。作為一實例,吾人可將簡單的反相放大器視為經展示為電路300中之放大器309的反相放大器。此類比電路可具有非線性的增益301,σ,其具有小信號增益及單極(簡單延遲),圖3a。在此狀況下,吾人可展示此電路實施函數,類似於方程式1之方程式5(在以下表中展示)。對於此實例,可隨時間推移對方程式5之根進行求解,例如,如在方程式6、7及8中。可在方程式6、7及8中展示類比計算將漸近地(以指數方式)接近或穩定至均衡狀態。用於此電路之指數穩定的時間常數係由方程式8界定。應注意,由於放大器之有限增益及指數穩定,因此可能從未到達理想的均衡狀態。
以下方程式可表示圖3的反相電路300:
具有非線性放大器309之簡單的反相電路300可具有延遲310(例如,單極放大器)。此類比回饋電路300可為用於類比DEQ網路之基本構建區塊之實例實施。在以下表中在表3中展示表示簡單的反相電路之方程式及用於簡單的反相電路之輸出之近似解(根):
以上實例說明可使用連續時間類比電路來實施DEQ網路以對DEQ網路之根進行運算。應注意,DEQ網路之根為網路之最終狀態z(t)。其亦說明有限放大器增益及有限頻寬如何可產生最終均衡狀態或根之誤差。對於使用類比運算之DEQ網路,其準確度及或之誤差取決於允許電路穩定之時間或在讀出其輸出之前允許多少時間常數經過,如方程式9中所展示。此可類似於數位運算中之反覆根求解方法,其中對解進行運算所需之反覆或時間之數目取決於所需準確度或最終誤差公差。然而,對於類比電路系統,最終狀態之誤差之量亦取決於藉由放大器增益設定之有限增益誤差,方程式9。根據方程式9、10,吾人可對關於放大器增益及頻寬之要求進行運算以得到所要準確度。舉例而言,99.9%或0.1%的誤差需要約9.9位元的準確度。此可需要長於七個時間常數之潛時,,及大於1000之放大器增益。因此,在放大器及用於實施DEQ網路之網路之設計中必須考慮類比或經混合信號DEQ網路之所要準確度及潛時。
一般而言,類比方法可能不遞送與數位實施相稱之運算準確度。然而,對於可使用較低準確度實施之應用或較低SNR應用,當進行類比處理時,在整個系統功率方面,可存在優點。由此,使用DEQ網路之類比運算可針對嵌入式應用實現極低能量機器學習,對於該些嵌入式應用,這些DEQ網路之能量可根據本申請案之所要潛時/速度而定製。
在先前章節中,吾人描述如何可使用連續時間類比運算來實施DEQ模型。此係基於知曉DEQ網路可使用方程式1來模型化且其可使用圖2中所展示之信號流圖來模型化200。此圖及其其他延伸部分在下文形成所有發明之基礎。
經混合信號電路架構之許多實施例可用於基於圖2中之信號流圖來實施DEQ模型/網路。
圖4說明基於反相放大器409a、409b、409c之多輸入多狀態DEQ模型400之實例。因此,DEQ模型可基於反相放大器及電阻網路兩者。在此類實例中,可存在三個輸入401a、401b、401c(至)、三個狀態403a、403b、403c(至),及輸出450,y。輸出層420b可利用電阻器1/O1
、1/O2
及1/O3
,以應用輸入之權重且指導作為輸出450之啟動函數。隱藏狀態(z)可為放大器409a、409b、409c之輸出。這些放大器中之第一放大器可為反相放大器例如自圖3至多輸入及多輸出DEQ網路(圖4)之擴展。此實例可在DEQ網路狀態方面實施全連接網路,例如對每一輸入之所有狀態回饋。為了完整起見,提供用於DEQ模型均衡狀態(方程式11、12)及輸出(方程式13)之方程式。在此類實例中,為簡單起見,可假設放大器之增益420a、420b為無限的。在以下表中提供方程式:
應注意,在一般狀況下,除了全連接架構之外,可使用其他類型的連接。另外,網路400之電阻器可用諸如憶阻器或電容器之其他電組件或組件之組合來替換。最終,其他放大器組態,諸如非反相放大器或開關電容器放大器亦可用於實施與此類似之DEQ網路。
圖5說明使用運算結構503實施之DEQ網路500。輸出層511可為或可並非運算結構503之部分。在此實例中,來自方程式1之隱式矩陣乘法(點積、卷積)可實施於結構503中。非線性的函數σ(∙)可在運算結構內部或外部實施。運算結構503回應於接收可為數位或類比之輸入501及偏差502而在類比領域中執行DEQ均衡狀態之連續時間計算。運算結構503陣列通常為使用諸如電阻器、電容器、電晶體或這些裝置之組合的組件實施的阻抗陣列。一些運算結構503亦可使用諸如SRAM或DRAM之揮發性記憶體技術或諸如快閃記憶體、RRAM、MRAM、PCM等之非揮發性記憶體(nonvolatile memory;NVM)技術來實施。當使用這些記憶體技術中之任一者時,運算結構可被稱作記憶體內運算結構或IMC結構。DEQ網路之輸出層511(圖5)可使用數位、類比運算或其一組合(經混合信號)來實施。在一些狀況下,在用於計算均衡狀態之相同運算結構中實施輸出層511可為最佳的。應注意,均衡狀態為DEQ網路之根,且通常為網路之最終狀態z=z*。輸入x
及b
可為在運算結構內部轉換為類比的數位信號。或該些輸入可為類比的。通常,DEQ網路之根509(z)將作為類比信號經回饋至運算結構503中。然而,可存在其中狀態509作為數位信號或基於時間之信號回饋之替代性實施例。至輸出層之輸入以及輸出,及函數,可使用數位、類比或經混合信號電路系統來實施。
圖6說明運算結構600之實例。運算結構600僅僅為可用於各種實施例中之運算結構之示例。方程式可表示藉由結構600執行之運算。圖6為運算結構之實例。元素611,,可使用諸如電阻器(RRAM,PCM)、電容器、電晶體或這些裝置之組合的不同組件來實施。這些元素可用於執行列603上之輸入信號與藉由元素611()之值判定的權重之點積或卷積。此類比求和係基於基本的電現象,諸如電流累加(柯爾科夫電流定律(Kirkoff’s current law))、電荷守恆(電荷累加、再分配)、歐姆定律等。這些基本現象可本質上實現電荷、電流及電壓之領域中的類比計算或求和及乘法。列驅動器612可取決於用於運算結構600中之裝置的類型來執行不同功能。在一些狀況下,該些列驅動器可為完全數位或類比的。換言之,其執行數位至類比轉換。可在列驅動器612處接收輸入601。通常,電荷、電流、電壓之求和典型地發生在行607上。感測放大器(或「amp」)609可用作用於求和之第一放大級,且可具有取決於網路之類型的不同功能。舉例而言,對於DEQ網路,感測放大器可實施非線性函數σ(∙),其可採用諸如經整流線性單元(reLU)之雙曲正切或其他熟知的非線性啟動函數的形式。
圖7為可用於實施DEQ網路之運算結構之實施例的一個實施例之圖示。在此實例中,輸入偏差,b =,使用感測放大器來相加。可存在用於使用類比運算結構實施DEQ之與圖7相關聯的若干變化。舉例而言,對於多個行或所有行,可存在一個感測放大器709,或在感測放大器上。每一列703可存在一個列驅動器702,或多個或所有列703可存在一個列驅動器702。在另一實施例中,感測放大器709可實施任一非線性函數。另外,感測放大器709可用於添加偏差b
。一般而言,若需要結構輸出之數位化,則感測放大器709亦可用類比至數位轉換器替換或為類比至數位轉換器之部分,或亦可用輸出層711替換或為輸出層之部分。感測放大器709可用於實現較準確求和—其可包括電荷或電流累加。在實施例之又一變體中,列驅動器702可將類比、數位信號驅動至列703上。列驅動器702亦可驅動基於時間之信號(脈衝、脈寬調變(pulse-width-modulation;PWM)信號等)。結構元件713,,可為實現運算(乘法、求和)之任一元件。由此,結構元件可為電阻器、電容器、電晶體等。任一組合可用以對用於電腦結構中之方程式進行求解。
相比於圖7中所展示之實施例,圖8展示如何可使用運算結構800來利用偏差820,b,而非藉由感測放大器809來添加。在圖8之此實例中,輸入偏差,b =,係使用電腦結構來添加。亦可藉由其他方式來添加偏差820。若需要結構輸出之數位化,則感測放大器809亦可用類比至數位轉換器替換或為類比至數位轉換器之部分,或亦可用輸出層811替換或為輸出層之部分。感測放大器809可為非線性函數,其對純量、向量或張量輸入進行運算。輸出亦可為純量、向量或張量。
圖9說明展示輸出層911運算可併入至運算結構中之一種方式的替代性實施例。輸出層911亦可由不同於感測放大器909之感測放大器910組成。輸入901可經饋送至列驅動器902中。輸出層911可包括感測放大器910。另一感測放大器909可用以將各種狀態輸出回至列驅動器902,直至滿足收斂為止。DEQ模型之最終輸出可由感測放大器910輸出。
本發明亦可考慮DEQ網路,且依賴於當前及先前網路根及輸入。已經展示DEQ模型/網路之較早的實例,其中輸出狀態,,係隨輸入,,及連續時間之狀態的回饋而變化,且無延遲。然而,存在其中DEQ網路狀態可為先前(延遲的)輸入及根之函數的狀況。依賴於先前狀態及輸入之連續時間DEQ網路可通常由方程式14及15描述。
圖10為實施方程式14及15之網路之實例。圖2說明依賴於先前狀態及輸入之DEQ網路1000之實施例。可用方程式16及17來描述離散時間DEQ模型。在此狀況下,DEQ網路1000為在較早時間出現之先前狀態及輸入之函數。典型地,在這些系統中,1109被認為等效於。DEQ輸出狀態之隨後計算之間的時間為。可藉由系統時鐘(亦即)設定。或該系統可為自定時的或可為異步的。在此狀況下,隨後計算之間的時間係僅依賴於硬體可計算下一個狀態之速度。隨時間推移之輸入1001可以與時間1005相關的的延遲來饋送。偏差1002亦可經輸入至電腦結構1003。運算結構1003可以另一時間延遲1007再饋送狀態1009。電腦結構1003可將最終狀態1009輸出至輸出層1011。輸入1001、偏差1002及輸出1003可為純量、向量或全張量。其亦可為DEQ網路狀態之任意函數。
圖11說明藉由以上展示之方程式16及17描述的DEQ網路之一般實例。網路1100可接收輸入1101,其中多個先前輸入在待發送至電腦結構1103之輸入處由延遲1105提供。經取樣狀態1109可發送至輸出層1111。當前狀態1109亦可以藉由延遲1107提供之先前狀態經回饋至運算結構1103。輸出層1111可輸出最終輸出y(n)
1113,包括隨時間推移之DEQ模型的DEQ模型之函數。輸出1113可為純量、向量或全張量。其亦可為DEQ網路狀態之任意函數。
圖12為DEQ之信號流程圖。其可為離散時間實施。圖13中展示用於DEQ離散時間系統之波形。在一個實例中,圖12中展示基於離散時間之DEQ網路。在此狀況下,有時對DEQ網路之輸入及狀態進行取樣。取樣保持1203、1207之輸出可具有延遲。第二取樣保持1207將輸出DEQ狀態之函數。該輸入可為純量、向量或張量,以及輸出係相同的。輸出1211可為DEQ模型,或純量、向量或張量。
圖3說明用於DEQ離散時間系統之波形的實例。對於此實例,取樣保持可為理想的且具有零延遲。圖13亦說明描述用於DEQ網路之輸入及輸出的時間順序之波形。此為有趣的實例,此係因為運算結構在運算(圖13)期間以連續時間對保持恆定的離散時間輸入x(n)、z(n)及b(n)進行運算。輸出狀態,z(t),以連續時間穩定至均衡狀態,。應注意,均衡狀態,,可經取樣且接著用於輸出層中之運算。
圖14說明用於具有額外的延遲輸入及回饋之DEQ離散時間實施的信號流程圖。取樣保持電路1403可隨時間推移擷取輸入1401。時間延遲輸入1404(例如,作為一實例,經展示為一個時鐘週期,但可為任何類型之遲延週期)可經饋送至求和區塊1405中,該求和區塊可為運算結構。求和區塊1405可基於各種輸入及狀態實施非線性函數。求和區塊1405可考慮一或多個時鐘週期之根之延遲,如圖14中所展示。求和區塊1405可將根輸出至第二取樣保持電路1407。取樣保持電路1407可將DEQ模型之狀態輸出至函數1409。最終,DEQ模型之輸出1411可作為DEQ網路狀態之任意函數而輸出。
圖15說明記憶體內運算MAC區塊之方塊圖。在一個簡單實施中,可沿著水平尺寸提供N
個輸入啟動(每一列單位元件一個),且可沿著豎直尺寸產生M
個MAC輸出(每一行單位元件一個)。因此,列驅動器1503可將N
次啟動輸出至陣列1501。陣列可將M
行輸出至行讀出器1505。輸入啟動及輸出係由諸如電壓之物理參數表示。「神經元」可指包括連接至該行之所有單位元件之單個行。多個神經元(行)鄰近地連接,且各自輸出單個MAC運算之結果。可視情況包括重設區塊1507以便將陣列重設至指定的起始條件。
圖16說明陣列之4×4子集,諸如N×M
陣列1501之四乘四子集。因此,該圖可詳述MAC陣列之內部,該MAC陣列展示連接至字線1609及位元線1611之單個元件。輸入()可作為單位元解析度(二進位)值或以較高解析度(多位元)解析度提供,但始終以類比方式在每一行中執行求和。每一單位元件儲存可為單位元解析度(二進位)或具有較高(多位元)解析度之權重值()。使用單位胞元中之電路元件的物理參數(例如導電率)來儲存權重。陣列之每一行之輸出()為可保持在類比領域中之類比值,針對處理器內部之另一用途(諸如針對至另一MAC區塊之輸入)數位化,或用作最終輸出。對於動態讀出方案,可視情況包括重設區塊1607以便將陣列重設至指定的起始條件。
圖17說明多種技術,其用於擴展所展示之架構以按比例縮放至更高解析度權重、更高解析度輸入啟動及差動運行。多個單位元件可並行使用以增加如圖17(a)中所展示之權重解析度。權重值亦可使用溫度計碼、二進碼或其他碼來編碼(亦即,權重可拆分成多個經編碼分量,、等)。如圖17(b)中所展示,對應於經編碼權重分量之單位胞元可橫跨多個位元線來連接。對應的位元線之部分結果(例如,及)係藉由數位或類比領域中之行讀出電路系統來組合。對於溫度計譯碼方案,權重之每一分量(例如,、)對MAC運算之結果具有相同影響。然而,對於二進位或其他譯碼方案,每一權重分量對MAC運算之結果具有按比例縮放的影響。此按比例縮放可在行讀出1705電路系統內用數位方式實現。替代地,表示單位胞元內之權重值的物理參數(例如,導電率)可適當地按比例縮放以匹配編碼方案。如圖17(c)中所展示,代替對物理參數按比例縮放,多個單位元件可在一些行中並行使用以匹配編碼方案。亦可使用類似於圖17(b)及圖17(c)中所展示之技術的技術來增加輸入啟動之解析度。輸入啟動值亦可使用溫度計碼、二進碼或其他碼來編碼(例如,輸入經拆分成多個經編碼分量,、等)。如圖17(d)中所展示,這些輸入值經提供至含有相同權重值且連接至同一位元線之單位元件。舉例而言,權重值以單個行經儲存在所有單位胞元中,該些單位胞元亦連接至分量。對於溫度計譯碼方案,輸入之每一分量(例如,、)對MAC運算之結果具有相同影響。然而,對於二進位或其他譯碼方案,每一輸入分量可對MAC運算之結果具有按比例縮放的影響。可藉由適當地對表示輸入啟動之物理參數(例如,電壓)按比例縮放來實現此按比例縮放以匹配編碼方案。反而,表示儲存在一些列中之單位元件中之權重值的物理參數(例如,導電率)可按比例縮放以便對輸入啟動之個別分量的影響按比例縮放且匹配編碼方案。替代地,如圖17(e)中所展示,多個單位元件可在一些列中並行使用以對輸入啟動之個別分量的影響按比例縮放且匹配編碼方案。
亦可使用針對供應雜訊及變化提供穩定性同時增加動態範圍之差分技術,如圖17(f)及圖17(g)中所展示。圖17(f)展示差分權重方案,其中互補權重值(例如,及)經儲存在單位元件中,該些單位元件連接至互補位元線但連接至相同的輸入啟動。互補位元線之輸出(例如,及)可藉由行讀出電路以差分方式讀出。圖17(g)展示差分輸入啟動方案,其中互補輸入啟動值(例如,及)經提供在單獨的字線上。互補字線可連接至儲存相同權重值的單位元件,但連接至互補位元線。如前所述,互補位元線之輸出(例如,及)藉由行讀出電路以差分方式讀出。
圖17中所描述之技術彼此相容且可用於相同實施中。因此,各種權重方案可互換使用。
在諸如圖17(a)中所展示之一個實施例中,多個單位胞元可用於增加經儲存權重之解析度。在諸如圖17(b)中所展示之另一實施例中,儲存經編碼權重1701之分量之單位胞元1701可連接至單獨的位元線。單獨位元線之部分結果可在類比或數位領域中之行讀取電路中組合。在諸如圖17(c)中所展示之另一實施例中,多個單位胞元可在一些行上並行使用以便匹配編碼方案。在諸如圖17(d)中所展示之另一實施例中,經編碼輸入啟動可應用於保持相同權重值且連接至同一位元線之單位胞元,以便增加輸入啟動函數之解析度。在諸如圖17(e)之另一實施例中,多個單位胞元可在一些列1703中並行使用,以便按比例縮放輸入啟動函數之影響且匹配編碼方案。在圖17(f)之實施例中,差分權重連接至單獨的位元線。位元線上之差分輸出係使用差分行讀出電路來讀取。在實施例中(圖17(g)),差分輸入啟動經提供至連接至單獨的位元線之重複權重。位元線上之差分輸出係使用差分行讀出電路來讀取。該實施例亦可包括重設區塊1707。
列驅動器1703、陣列中之單位胞元及行讀出1705電路共同起作用以執行MAC運算。列驅動器及行讀出電路共同形成至MAC引擎之介面。至MAC引擎之輸入可在諸如電壓、電流、電荷或時間之多個可能域中之一者中表示。相同域或另一域可用作輸出。舉例而言,電壓驅動器可用於沿著字線提供輸入啟動,且電流讀出電路可用於自位元線讀取輸出。這些介面電路可為靜態的,其中每當應用新的輸入時,陣列之輸出自然地穩定至MAC運算值之輸出,或這些介面電路可為動態的。在動態實施中,若干時脈相位可用於諸如在開關電容器方案中完成單個MAC運算。介面電路亦可為基於時間的。舉例而言,輸入啟動值可經編碼於電壓脈衝之寬度或持續時間中。
圖18說明展示實例介面電路。圖18(a)展示基於電壓之列驅動器(例如數位至類比轉換器(digital-to-analog converter;DAC),接著為電壓緩衝器),其在用於每一輸入值(In1、In2、In3等)之字線上提供新的靜態電壓,。圖18(b)展示基於電壓脈寬調變(pulse-width modulation;PWM)之方案,其提供與輸入啟動值成比例的具有可變寬度之電壓脈衝。替代地,可使用脈衝密度調變(pulse-density modulation;PDM)方案,其中與輸入啟動值成比例之多個脈衝應用於字線。在PDM方案中,每一脈衝具有相同寬度/持續時間。圖18(c)展示當前的基於PWM之方案,其提供與輸入啟動值成比例的具有可變寬度之電流脈衝。用於每一輸入的在字線上產生之電壓,,取決於字線之電流位準、脈衝持續時間及阻抗。因此,基於電流之驅動器較適合於實施,其中字線阻抗係恆定的(獨立於輸入啟動或經儲存權重值)。亦可使用PDM方案以代替PWM及電流驅動器,以得到類似效應。圖18(d)展示列讀取電路,其自位元線直接讀取電壓或電流。亦可使用如圖18(e)中所展示之跨阻抗(transimpedance;TIA)放大器來讀出來自位元線之電流。TIA將位元線電壓維持為虛接地,且位元線電流係藉由阻抗分流以將值轉換為電壓。圖18(f)展示充當電荷積累器之電容式TIA。電容式TIA可連同開關電容器方案一起使用,以讀出基於電荷之信號。類比至數位轉換器(analog-to-digital converter;ADC)可直接在如圖18(g)中所展示之位元線上使用,以將類比值(例如電壓、電流或電荷)轉換為數位值,或其可跟隨另一放大器(以虛線展示)。圖18(h)展示差分讀出方案(其可基於圖18(d)至圖18(g)中所展示之方案中之任一者),讀取鄰近行或行集合之間的輸出量(例如電壓、電流或電荷)之差。在差分實施中,互補權重儲存在鄰近行中之單位胞元中。
在MAC引擎陣列內,單位元件促進輸入啟動與經儲存權重值之間的乘法運算。另外,單位元件亦可充當轉導元件。該單位元件亦可自諸如電壓、電流或時間之輸入域轉換為諸如電壓、電流、電荷或時間之另一域,該另一域將藉助於共用位元線累積且自MAC引擎讀出。
在許多NN演算法中,可訓練偏差(偏移項)經添加至MAC運算之輸出。此可藉由將一或多列單位元件專用於儲存偏差參數且將適當的輸入應用於對應的字線而在諸如圖16中所展示之陣列結構的陣列結構內促進。該偏差亦可包括在行讀出結構內部之類比或數位電路內部或包括在MAC單元之後在至NN之下一層的輸入之前的電路系統中。
圖18說明用於MAC引擎之介面電路系統的實施之實例。舉例而言,圖18(a)為靜態電壓輸入之圖示。在另一實例中,圖18(b)說明脈衝密度調變電壓脈衝。在又一實施例中,圖18(c)說明直流電壓或電流讀出。在另一例示性實施例中,圖18(d)展示跨阻抗放大器讀出。在另一實施例中,圖18(e)說明用於基於電荷之讀出的電容式跨阻抗放大器(電荷積累器)。在另一圖示中,圖18(g),ADC可用於直接讀出MAC運算之結果或可跟隨放大器。在又一圖示中,圖18(h)利用鄰近行或行集合(及)之間的差分讀出。
若干類型的隨機存取記憶體(random-access memory;RAM)技術已經用於經混合信號IMC NN處理器,諸如SRAM、電阻式RAM(resistive RAM;RRAM)或相變記憶體(phase change memory;PCM)、磁阻式RAM(magnetoresistive RAM;MRAM)、鐵電場效電晶體(ferroelectric field-effect transistor;FeFET)及快閃記憶體。可以任何次序讀取且更新使用這些RAM技術之記憶體。SRAM為揮發性RAM記憶體技術,其典型地經組織為具有六個、八個或更多電晶體之可儲存二進位權重值的單位胞元。另外,SRAM可廣泛地用於大部分標準積體電路製程中且不需要任一特殊處理。上文所列之除快閃記憶體之外的其他技術為新興的非揮發性記憶體(被稱作eNVM或NVRAM),且可儲存二進位值、具有更多解析度位元之值或類比值。這些不同NVRAM技術中之單位元件可在物理上小於SRAM胞元,可能縮減至該技術之最小特徵大小(例如,約為單個電晶體之大小)。然而,許多NVRAM技術仍處於開發中,典型地不可用於標準積體電路製程中,且具有較高成本。另外,由於這些NVRAM技術需要重新程式化諸如電阻之物理參數,因此該些NVRAM技術因較差穩定性、保持、產率及漂移效能而具有問題。
一次可程式化唯讀記憶體(read-only memory;ROM)可用於IMC處理器之單位元件中。可在處理器之製造期間或在處理器之製造不久之後程式化ROM陣列。基於ROM之處理器可使用該技術所固有之組件在任一積體電路製程中設計,且在效能、安全性及成本方面具有優勢。該些基於ROM之處理器非常適合於不需要在現場重新程式化之應用程式,諸如部署在物聯網(internet-of-thing;IoT)應用程式之邊緣處的低成本感測器。對於其他應用程式,基於ROM之運算單元亦可沿著含有RAM之運算單元使用。大多數模型參數可為固定的,同時為一些NN演算法維持一組專用的可再程式化的任務特定參數。此可藉由將大多數模型參數儲存在基於ROM之運算單元內部而在基於IMC之處理器中實現,其中較少數目的任務特定參數使用諸如SRAM之技術儲存在基於RAM之運算單元中。此方法維持基於ROM之IMC架構之大部分優點,同時允許針對任務專業化之可程式化性、處理隨時間推移變化之操作條件,及邊緣處之訓練。
圖19說明CMOS半導體製程之實例。基於ROM之IMC運算單元中之權重值可在製造期間或在製造不久之後經一次性程式化。CMOS半導體製程中之後段製程(back end of line;BEOL)電互連件(在圖19中展示)係用於實現可程式化性。舉例而言,金屬連接件、至基於矽之裝置(諸如電晶體、電阻器或二極體)之接點或金屬層之間的通孔可用於重新配置儲存在NN中之權重。此可在前段製程(front end of line;FEOL)處理係藉由改變微影光罩而完成之後來便宜地進行,該些微影光罩用於在BEOL製程中界定金屬、接點或通孔層。最終,可以儲存經部分處理之CMOS晶圓以用於稍後配置。可在處理該層(諸如金屬、接點或通孔層)之前停止晶圓處理,且該晶圓處理可用於界定儲存在基於ROM之運算單元中的權重。彼時,可儲存晶圓以用於稍後的程式化,同時處理剩餘的層。此使得能夠以低成本在僅改變小數目的光罩或甚至僅改變單個光罩層之情況下快速生產不同版本的基於ROM之運算單元。
如所展示,典型的CMOS半導體製程之橫截面展示前段製程(FEOL),其含有以矽製成之裝置—電阻器、電晶體、電容器。以及後段製程(BEOL),其界定晶片上之電互連件。應注意,BEOL層堆疊典型地亦可含有電氣裝置,諸如電容器、電感器、電阻器等。在較進階製程中,BEOL層堆疊亦可具有非揮發性記憶體,諸如PCM、RRAM及3D NAND快閃記憶體。
圖20說明關於具有字線2001及位元線2003之單位胞元的連接之間的實施例之各種實例。舉例而言,在圖20(a)中,該實施例說明連接至位元線2003及字線2001兩者之單位胞元2005。在圖20(b)中,金屬連接件經改變以便改變儲存在該胞元中之權重值。在圖20(c)中,該實施例展示類似實例,其中接點連接件或通孔連接件2007經改變以便改變權重值。因此,單位胞元權重係藉由移除接點連接件或通孔連接件來改變。替代地,單位胞元內之內部金屬連接件可經修改以便程式化儲存在單位胞元中之權重。舉例而言,如圖20(d)中所展示,金屬層連接件可用於連接至零、一個或多個連接選項(例如,C1、C2或C3)。在此類實施例中,該權重係藉由選擇內部金屬連接件2009來改變。圖20(e)展示可使用接點連接件或通孔連接件代替金屬層連接件。一次可程式化eFuse亦可用於程式化權重值,然而,該些一次可程式化eFuse可能不如使用金屬、接點或通孔之程式化一樣節省面積。
使用圖20中所展示之方法程式化的基於ROM之運算單元亦可與圖17中所展示之實施及在上文描述且在圖18中展示之讀出方案相容。舉例而言,其中並聯連接多個單位胞元之圖17(a)中所展示之方案可與圖20(d)及圖20(e)中所展示之程式化方法組合。被動(例如,電阻器及電容器)及/或主動(例如,電晶體)元件可包括在單位胞元中,其中經儲存權重值判定該些被動及/或主動元件互連之方式。舉例而言,為了儲存權重值「3」,三個電晶體可並聯連接且連接至字線及位元線。代替多個電晶體,亦可使用單個電晶體之根據所要權重重新配置之多個指形件。
可存在用於基於ROM之記憶體內運算(in-memory compute;IMC)運算單元的多個實施。該些實施可涉及電晶體及/或被動元件(電阻器及電容器)之組合。這些實施中之每一者利用通常可用於廣泛使用的標準積體電路製程中、不需要專用技術且因此可以低成本實施之元件。此外,由於這些實施在該技術中使用經良好模型化之組件,因此相較於上文所提及之實驗或新興的技術(例如,RRAM及MRAM),其效能係穩定的且可得到保證。電晶體及被動元件可用該技術製造成約最小特徵大小,從而允許這些實施極緊湊且具有低面積開銷,從而直接轉化為低成本。將在下文描述基於ROM之運算單元之若干特定的實施及其運算。此主要藉由ROM中之單位元件之結構來區分,如下文進一步論述。
出於這些原因,基於ROM之IMC單元相比於其他技術具有以下優點。舉例而言,基於ROM之IMC單元並不具有穩定性、保持、產率,或漂移問題,該些問題對於使用如PCM、RRAM、MRAM、FeFET或快閃記憶體之非揮發性記憶體技術的長期操作,可能為一個問題。另外,基於ROM之IMC單元不會受到在如SRAM之技術中消耗大量靜態功率之漏電流的影響。
基於ROM之單位胞元可使用可廣泛用於所有積體電路製程中之元件(例如,電阻器、電容器及電晶體)來設計,且不需要具有高成本之專用技術。可製造具有高密度、大小約為單個電晶體之ROM單位元件,從而進一步降低成本且允許需要大量(例如,數百萬個)參數之演算法儲存在單個晶片上。
程式化單位元件可以不需要電路系統,從而節省面積、成本及功率。基於ROM之運算單元可提供機密性,此係由於不包括用以直接再程式化或讀取記憶體之電路,且因此極難以自運算單元複製模型參數(及演算法)。出於類似原因,基於ROM之運算單元亦可具有高完整性及真實性。因此,在部署感測器之後,可能無法再程式化經儲存模型參數,從而使運算單元防篡改。
基於ROM之運算單元可單獨使用BEOL金屬、接點或通孔連接件來程式化。若諸如頂部或最後一個金屬層之一個層或小數目的層係用於程式化運算單元,則晶圓可經製造直至程式化層,且經儲存。必要時,BEOL處理可在僅改變一個光罩或小數目的光罩之情況下完成,以便使用經更新或不同演算法製造運算單元,以提高效能、任務專業化或完全新的應用程式。此可以低成本進行,此係因為僅小數目的光罩或甚至單個光罩需要修改。
使用圖21至圖34中所展示之基於ROM之元件的所有以下運算單元實施可使用如圖20中所展示之金屬、接點或通孔連接件來程式化。為了說明每一實施之操作,使用單極權重編碼(例如,權重值「0」或「1」)及用於每一實施之單個介面方案來呈現實例。使用圖17中所展示之方案,其他權重編碼,諸如雙極權重(例如,權重值「-1」或「1」)或多位元權重值係可能的。可使用其他介面方案,諸如圖18中的不同變型。編碼方法及介面(驅動器及讀出方案)之選擇將取決於技術限制以及效能度量,諸如面積、成本、潛時、輸送量及信雜比。
圖21說明利用第一實施之基於ROM之單個電晶體(1T)運算單元的實例。單個電晶體可用作ROM單位元件,其儲存二進位權重值,例如「0」或「1」。此可運用若干實施來實現。圖21說明第一實施,其中單個NMOS電晶體2103可用作單位元件,其具有連接至字線之第一(汲極)端子及連接至位元線之第二(源極)端子。展示乘陣列之三乘三陣列子區段。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。該權重可在電晶體之閘極連接中經編碼為電壓或電壓。若電晶體之閘極連接至,則該裝置接通且對應的經儲存權重可經視為「1」。該電晶體可充當具有有效電阻及導電率之電阻器。替代地,若電晶體閘極連接至,則該裝置可斷開,且經視為「0」。亦可藉由使閘極連接至且將一個或兩個端子與字線或位元線斷開連接而將該權重設定為「0」。該電晶體可充當具有有效電阻及導電率之電阻器。此實施亦可與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。可在以下公式中描述導電值與權重值之間的關係:
如上文所描述,可存在列驅動器及行讀出電路之多個可能實施(基於電壓或電流,靜態或動態)。在一個實施例中,單個可能的驅動及讀出方案可為實例(靜態、基於電壓之輸入啟動及電流讀出)。在此實施中,不需要重設區塊且可省去該重設區塊。僅考慮單個位元線及行(對應於NN中之單個神經元),藉由沿著字線將輸入啟動()應用為電壓()2101來執行乘法運算,該字線可攜載二進位資訊(數位)或多個資訊位元(高達類比值):
方程式22中之求和2109表示整個MAC運算。該電流可使用跨阻抗放大器經轉變為電壓,且接著在隨後的類比至數位轉換器級中數位化。替代地,該電流可直接使用電流輸入ADC數位化或經緩衝且傳遞至後續的級。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。該電路亦可包括重設區塊2107。
圖22說明使用單個電晶體作為單位元件之交替實施。在此實施例中,電晶體閘極端子連接至字線,第一端子(汲極)連接至位元線,且第二端子(源極)連接至參考電壓。展示乘陣列之三乘三陣列子區段。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。此參考電壓可經展示為信號接地,但亦可為取決於系統設計之另一電壓。可藉由在CMOS製程中使用金屬、接點或通孔連接件(圖22中之虛線)來連接或斷開閘極、汲極或源極中之一或多者與字線、位元線或參考電壓而在單位胞元中編碼該權重。當連接所有這些端子時,儲存在電晶體中之權重為「1」。取決於電晶體之偏置方案,存在模型化權重對裝置參數之影響的多種方式。若在三極體區中使電晶體偏置,該電晶體可經模型化為具有有效電阻及導電率之電阻器。替代地,若在飽和或亞臨限值區中使電晶體偏置,則該電晶體可經模型化為提供電流之電流源。若斷開端子中之任一者,則儲存在電晶體中之權重為「0」。若在三極體區中使電晶體偏置,則該電晶體可經模型化為具有有效電阻及導電率之電阻器(若端子與位元線或參考電壓斷開,則𝑅𝑜𝑓𝑓可為極大的)。替代地,若在飽和或亞臨限值區中使電晶體偏置,則該電晶體可經模型化為提供電流之電流源。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。對於當「接通」電晶體處於三極體區中且經模型化為阻抗時之狀況,可使用方程式18來描述導電值與權重值之間的關係。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於電壓或電流,靜態或動態)。此處,對於電晶體在三極體區2203中經模型化為阻抗之狀況,吾人將僅將單個可能的驅動及讀出方案描述為實例(靜態、基於電壓之輸入啟動及電流讀出)。在此實施中,不需要重設區塊且可省去該重設區塊。輸入啟動可在如上文且在方程式19中所描述之電壓中經編碼。該電壓(經展示為電壓2201)可採用類比值,其進一步調變電晶體之導電率。替代地,可為數位信號,其僅具有分別為低或高、對應於及,之兩個位準。在其中係低之狀況下,該電晶體始終為斷開的,而不管權重值如何。穿過單位元件之電流對應於啟動與權重之相乘且藉由以下方程式描述:
僅考慮單個位元線及行(對應於NN中之單個神經元),沿著如上文所描述之位元線對來自單位元件之所有電流進行求和:
在此實施中,電壓不能亦為0 V且必須不同於在每一電晶體之源極處連接之參考電壓以便產生電流。方程式25中之求和2109表示整個MAC運算。該電流可使用跨阻抗放大器經轉變為電壓,且接著在隨後的類比至數位轉換器級中數位化。替代地,該電流可直接使用電流輸入ADC數位化或經緩衝且傳遞至後續的級。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
圖23說明使用單個電晶體作為單位元件之替代性實施例。在此實施例中,電晶體閘極端子連接至字線,第一端子(汲極)連接至位元線,且第二端子(源極)連接至一組參考電壓中之一者。展示乘陣列之三乘三陣列子區段。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。藉由選擇可能的參考電壓中之一者且將其連接至電晶體來程式化該權重,其中每一位準對應於單個權重值。展示三個參考電壓2303(、及),然而,可使用參考電壓之任一整數。較多參考電壓位準實現較大數目的權重位準(較高解析度),且較少參考電壓僅允許較少數目個權重位準(較低解析度)。有可能允許電晶體與對應於一個額外位準(總共)之所有參考電壓斷開。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。參考電壓位準可自任一分佈汲取(亦即,其可能不均勻地間隔開),但可使用線性分佈。個別單位胞元中之參考電壓位準對應於權重位準且可藉由以下表達式描述:
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於電壓或電流,靜態或動態)。此處,吾人將會僅將單個可能驅動及讀出方案描述為實例(靜態、基於電壓之輸入啟動及電流讀出)。在此實施中,不需要重設區塊且可省去該重設區塊。輸入啟動可在如上文及方程式19中所描述之電壓(經展示為2301)中編碼。電壓可採用對電晶體之導電率進行調變之類比值。替代地,可為數位信號,其僅具有分別為低或高、對應於及之兩個位準。在其中係低之狀況下,該電晶體始終為斷開的,而不管權重值如何。穿過單位元件之電流對應於啟動與權重之相乘且藉由以下方程式描述:
僅考慮單個位元線及行(對應於NN中之單個神經元),在如上文所描述之位元線中對來自單位元件之所有電流進行求和:
方程式29中之求和2309表示整個MAC運算。該電流可使用跨阻抗放大器經轉變為電壓,且接著在隨後的類比至數位轉換器級中數位化。替代地,該電流可直接使用電流輸入ADC數位化或經緩衝且傳遞至後續的級。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
圖24說明利用單個電容器作為單位元件之基於ROM之MAC陣列的實施。展示乘陣列之三乘三陣列子區段。一個端子連接至位元線且一個端子連接至字線。該權重係在端子之連接中編碼。對於二進位權重值(例如,為「0」或「1」),該些端子均經連接或一個或兩個端子係斷開的。當兩個端子均經連接時,經儲存權重,否則。至字線之連接可為可程式化的,如以虛線所展示,然而,可替代地使用位元線連接或兩個連接。可並行地使用較多電容器以便具有其他權重位準。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。電容器值可用權重位準來編碼,且可經描述為:
項為將權重值轉換為電容之縮放因數,且為亦可等於零之偏移項(例如固定寄生電容)。應注意,若僅單個單位電容器與二進位權重值(「0」或「1」)一起使用,則為單位電容。若僅單個電容器係用於二進位權重值,則可採用之最大值經定義為且表示電容與之求和。若在每一單位元件中使用個電容器以提供個權重位準,則等於所有電容器以及之求和。通常,,其中為可能的最大權重值。
如上文所描述,可存在列驅動器及行讀出電路之多個可能實施(基於動態電壓、電流、電荷或時間)。在一個實施例中,該系統將單個可能的驅動及讀出方案揭示為實例(動態、基於電壓之輸入啟動及基於電壓之讀出)。在此實施例中,使用重設區塊。輸入啟動可在如在上文且在方程式19中所描述之電壓(經展示為2401)中經編碼。電壓可採用類比值。替代地,可為數位信號,其僅具有分別為低或高、對應於及之兩個位準。最初,所有字線均經設定為複歸電壓,且重設區塊(其亦可與讀出電路整合)係用於將位元線電壓重設為電壓。在下一步驟中,該位元線經釋放,且輸入啟動電壓在字線上經確證。輸入啟動電壓連同電容值引起來自每一單位元件之小電荷沿著對應的總位元線電容來共用:
方程式34中之求和表示整個MAC運算。可使用電壓-電壓緩衝器或放大器自每一位元線讀取此電壓,且該電壓接著在隨後的類比至數位轉換器級中經數位化。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。根據方程式32,應注意,電容取決於權重值且因此擴展方程式34得出:
根據方程式35,分母中存在與所有權重值之總和相關的額外項,其將會將誤差引入至MAC運算中。若所有權重之求和2409之結果係可預測的及/或具有最小變化,則可在系統位準處或在訓練待在運算單元上運行之神經網路演算法期間校準此誤差以便使其為可忽略的。
圖25說明基於ROM之MAC陣列之替代性實施例,該基於ROM之MAC陣列利用單個電容器作為解決在先前章節中提及之問題的單位元件。在此實施例中,電容器之端子中之一者連接至字線或連接至經展示為接地之參考電壓,但可為任一其他電壓位準。在此實施例中,位元線上之總電容係獨立於權重值且藉由以下方程式36給出:
藉由使用如針對先前實施描述之基於相同動態電壓之輸入啟動及基於電壓之讀出方案,可能產生用於如方程式34中之位元線電壓之相同表達式,同時使用用於之方程式36(假設)。此求和可表示整個MAC運算,且不存在基於所有權重值之總求和2509的誤差項或相關性。可使用電壓-電壓緩衝器或放大器自每一位元線讀取此電壓,且該電壓接著在隨後的類比至數位轉換器級中經數位化。可使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
圖26(a)說明在單位元件中利用單個電晶體及單個電容器之基於ROM之MAC陣列的實施。該電容器可為與電晶體分離之元件,或可為電容中之一者,諸如源極(或汲極)二極體電容自身。展示乘陣列之三乘三陣列子區段。在每一字線與位元線之間串聯連接電晶體及電容器。可切換電晶體及電容器之次序。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。在電晶體至電壓或至電壓之閘極連接中編碼權重。在此實施中,每一電晶體充當開關,其使位元線與字線之間的對應的電容器之並聯切斷或閉合。電晶體導電值並不重要,但其應足夠高以允許適當的動態穩定,其中電容器值取決於所要操作頻率。若電晶體之閘極連接至,則該裝置係接通的,且對應的經儲存權重經視為「1」。替代地,若電晶體閘極連接至,則該裝置係斷開的且經視為「0」。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。該電晶體充當一次可程式化電壓控制之開關,其使字線與位元線之間的電容器之並聯切斷或閉合。因此,上文所描述的電路(例如,圖26)可以與圖24相同之方法模型化。使用方程式30藉由電晶體之閘極之狀態,該權重修改單位元件之有效電容,如藉由位元線所見。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於動態電壓、電流或電荷)。此實施可對針對圖24之電路描述之以下相同動態輸入啟動及基於電壓之讀出進行運算。給定一組輸入啟動及權重值,方程式31至35可用於運算MAC運算之輸出。可使用電壓-電壓緩衝器或放大器自每一位元線讀取此電壓,且該電壓接著在隨後的類比至數位轉換器級中經數位化。可使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。分母(方程式18)中可存在與所有權重值之總和相關的額外項,其將會將誤差引入至MAC運算中。若所有權重之求和之結果係可預測的及/或具有最小變化,則可在系統位準處校準此誤差且此誤差如先前所描述為可忽略的。
圖26(b)中展示圖26(a)中之單位胞元之替代性實施例,其可取決於權重值對之問題進行求解。在單位胞元之此實施中,包括至參考電壓(經展示為接地,但其可為另一電壓)之額外電位金屬、接點或通孔連接件,僅在電晶體之閘極連接至之狀況下連接該連接件。否則,此實施係與圖26(a)中所展示之實施相同。以此方式,每一位元線之總電容獨立於權重值保持恆定,且係藉由方程式36給定。
圖27(a)說明使用單個電晶體及電容器作為單位元件之交替實施。展示乘陣列2703之三乘三陣列子區段。電晶體及電容器可在每一位元線與經展示為接地之參考電壓之間串聯連接,但可使用另一參考電壓。可切換電晶體及電容器之次序。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。藉由在CMOS製程中使用金屬、接點或通孔連接件來連接或斷開電晶體閘極、電晶體汲極、電晶體源極或電容器端子中之一或多者與字線、位元線或參考電壓而在單位胞元中編碼權重(如藉由圖27(a)中之虛線所說明)。當連接所有這些端子時,儲存在單位胞元中之權重為「1」。若斷開端子中之任一者,則儲存在電晶體中之權重為「0」。此實施亦可與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。類似於先前的電容實施,該權重基於如在方程式30中之權重值來修改單位元件之有效電容,如位元線所見。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於動態電壓、電流、電荷或時間)。在一個實施例中,僅單個可能的驅動及讀出方案作為一實例(動態、基於電壓之輸入啟動及基於電壓之讀出)。在此實施中,使用重設區塊。輸入啟動可在如上文且在方程式19中所描述之電壓中經編碼。為數位信號,其僅具有分別為低或高、對應於及之兩個位準。對於低電壓位準,該電晶體係斷開的,且對於高位準,該電晶體係接通的(在位元線與參考電壓之間連接電容器)。最初,所有啟動在字線上經確證,且使用重設區塊(其亦可與讀取電路整合),位元線經預充電至電壓。在下一步驟中,位元線經釋放且所有字線經確證至高電壓位準,使得開啟所有電晶體。輸入啟動電壓連同單元電容值引起來自每一單位元件之小電荷沿著對應的總位元線電容來共用:
方程式39中之求和表示整個MAC運算。可使用電壓-電壓緩衝器或放大器自每一位元線讀取此電壓,且該電壓接著在隨後的類比至數位轉換器級中經數位化。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。根據方程式32,應注意,電容取決於權重值且因此擴展方程式39得出:
此係類似於用於圖24中所展示之實施的方程式35。分母中存在與所有權重值之總和相關的額外項,其將會將誤差引入至MAC運算中。若所有權重之求和之結果係可預測的及/或具有最小變化,則可在系統位準處校準此誤差且此誤差如先前所描述為可忽略的。
圖27(b)中展示圖27(a)中之單位胞元之交替實施,其取決於權重值對之問題進行求解。類似於圖27(a),當電晶體閘極連接至位元線時,其源極連接至參考電壓(例如,接地),其汲極連接至電容器,且電容器連接至位元線,儲存在單位胞元中之權重值為「1」。為了儲存值「0」,該電晶體不連接至電容器,且電容器反而連接至參考電壓(經展示為接地,但其可為另一電壓)。此實施可與圖27(a)中所展示之實施相同。以此方式,每一位元線之總電容可獨立於權重值保持恆定,且係藉由方程式36給定。
圖28說明在單位元件中使用兩個電晶體及電容器之實施。展示乘陣列之三乘三陣列子區段2805。電容器連接至對應的位元線,且一個電晶體之閘極連接至字線。相同電晶體將電容器之另一端部連接至一組參考電壓中之一者。展示三個參考電壓((、及),然而,可使用參考電壓之任一整數。較多參考電壓位準實現較大數目的權重位準(較高解析度),且較少參考電壓位準僅允許較少數目個權重位準(較低解析度)。另一電晶體將在兩個電晶體與電容器之間共用的節點連接至另一參考電壓。第二電晶體之此閘極連接至開啟及斷開電晶體之電壓信號。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。藉由在CMOS製程中使用金屬、接點或通孔連接件連接或斷開個參考件中之一者來在單位胞元中編碼權重。在每一單位元件中應僅連接一個參考電壓。此方法允許在每一單位元件內部編碼個許多權重位準。另外,有可能允許電晶體與所有參考電壓斷開,從而提供一個額外位準(總計)。可使用豎直堆疊之金屬層在整個MAC陣列中供應參考電壓,以便節省面積且允許高密度單位元件亦可支援任意高的權重精確度。參考電壓位準可自任一分佈汲取(亦即,其可能不均勻地間隔開),但通常可使用線性分佈。個別單位胞元中之參考電壓位準對應於權重位準,且可藉由方程式26中之表達式描述。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。舉例而言,亦可使用如針對先前實施所描述之金屬、接點或通孔連接件來程式化電容器。若電容器並非可程式化的,則其具有值。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於動態電壓、電流或電荷)。此處,吾人將會僅將單個可能驅動及讀出方案描述為實例(靜態、基於電壓之輸入啟動及基於電壓之讀出)。在此實施中,使用重設區塊。輸入啟動可在如上文且在方程式19中所描述之電壓中經編碼。可為數位信號,其僅具有分別為低或高、對應於及之兩個位準。對於低電壓位準,該電晶體係斷開的,且對於高位準,該電晶體係接通的(在位元線與經選擇參考電壓之間連接電容器)。最初,所有啟動在字線上經確證,使為低的以斷開第二電晶體,且使用重設區塊(其亦可與讀出電路整合),位元線經預充電至電壓。在下一步驟中,位元線經釋放,且使所有字線達至低電壓位準,使得斷開所有電晶體。接著,使為高的,以便將電壓連接至電容器。考慮其中單位胞元電容器固定在處之狀況,此程序使得來自每一單位元件電容之小電荷沿著對應的總位元線電容共用:
方程式44中之求和表示整個MAC運算。應注意,在此情境下,該運算係反向的。可使用電壓緩衝器或放大器自每一位元線讀取此電壓,且該電壓接著在隨後的類比至數位轉換器級中經數位化。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於動態電壓、電流或電荷)。在一個實施例中,類似於針對圖28所描述之方案的單個可能驅動及讀出方案可用作一實例(動態、基於電壓之輸入啟動及基於電壓之讀出)。在此實施中,使用重設區塊。輸入啟動可在如上文且在方程式19中所描述之電壓中經編碼。可為數位信號,其僅具有分別為低或高、對應於及之兩個位準。對於低電壓位準,該電晶體係斷開的,且對於高位準,該電晶體係接通的(在位元線與經選擇參考電壓之間連接電容器)。最初,所有啟動在字線上經確證。使用重設區塊(其亦可與讀取電路整合),位元線經預充電至電壓。在下一步驟中,位元線經釋放,且使所有字線達至高電壓位準(使得開啟所有電晶體),且使用在陣列外部的驅動器將所有參考電壓位準設定為相同電壓位準。在讀出階段期間,所有單位電容器將連接於位元線與電壓之間。以此方式,此實施與圖28之實施以相同方式操作,且MAC運算可由以下方程式41至44表示。可使用電壓緩衝器或放大器自每一位元線讀取輸出電壓,且該輸出電壓接著在隨後的類比至數位轉換器級中經數位化。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
圖30說明使用單個電阻器作為單位元件之基於ROM之MAC陣列的實施例。展示乘陣列之三乘三陣列子區段。在電阻器與字線及/或位元線之連接中對權重進行編碼。對於二進位權重值(例如,為「0」或「1」),對於,該端子連接至字線及位元線兩者,且對於,該端子與字線及/或位元線斷開。可並行使用較多電阻器以便具有其他權重位準。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。電阻器之導電值使用權重位準來編碼,且可使用方程式18來描述,此與用於圖21中之實施相同。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於電壓或電流,靜態或動態)。此處,吾人將會僅將單個可能驅動及讀出方案描述為實例(靜態、基於電壓之輸入啟動及電流讀出)。在此實施中,不需要重設區塊且可省去該重設區塊。僅考慮單個位元線及行(對應於NN中之單個神經元),藉由沿著字線將輸入啟動()應用為電壓()來執行乘法運算,該字線可攜載二進位資訊(數位)或多個資訊位元(類比值),如在方程式19中。
使用方程式20、21及22描述之MAC運算可與圖21相同。行電流可使用跨阻抗放大器經轉變為電壓,且接著在隨後的類比至數位轉換器級中數位化。替代地,該電流可直接使用電流輸入ADC數位化或經緩衝且傳遞至後續的級。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
如上文所描述,可沿著相同的基於IMC之處理器內的基於RAM之運算單元使用基於ROM之運算單元。基於ROM之運算單元可為先前章節中所提及之實施中之任一者。另外,可使用上文所提及之類型RAM(或NVRAM)中之任一者,諸如SRAM、RRAM、PCM、MRAM、FeRAM或快閃記憶體。可藉由將大多數固定的模型參數儲存在ROM元件內部來維持基於ROM之運算單元在效能、可靠性及安全性方面之優點。記憶體之較小子集可儲存可在RAM中經再程式化之任務特定參數。此方案維持RAM的大部分優點,同時允許任務專業化在部署之後更新,以應對不同的操作條件或改良演算法,且允許邊緣處之訓練。
圖31針對任意機器學習演算法說明基於IMC之處理器內之運算單元的若干實施例。機器學習演算法可由若干層組成,每一層含有多個神經元。不同類型的運算單元可用於如圖31(a)中所展示之不同層,其中基於ROM之運算單元係用於層u
之運算且基於RAM之運算係用於層u
+1。此兩個層之次序可顛倒,且可在基於RAM之或不同類型的IMC運算單元可在連續層中交錯之後使用基於ROM之運算單元。圖31(b)展示一實施,其中多種類型的運算單元係用於神經網路中之同一層內之運算。圖31(c)及圖31(d)展示其中使用含有混合式ROM及RAM運算單元之運算單元來實施層之實例。
此可藉由使用如圖32(a)及圖32(b)中所展示之在同一位元線上在類比領域中直接連接的多種類型的記憶體來實現,其中沿著基於諸如RRAM、PCM或MRAM之RAM之類型的單位胞元來使用一次可程式化電晶體。在圖32(a)中,具有不同類型之單位胞元的鄰近區塊連接至同一位元線。在圖32(b)中,不同類型的單位胞元經交錯且連接至同一位元線以用於類比求和。替代地,可使用具有不同類型的記憶體之多個行,如圖32(c)及圖32(d)中所展示,其中MAC運算之結果分別經組合在類比及數位域中。基於ROM之單位胞元及/或基於RAM之單位胞元之數目可在行與行之間不同。上文所描述且在圖32中所展示之技術彼此相容。圖32中所展示之實施亦與圖17中所展示之技術相容,以用於增加輸入啟動或權重以及差動運行之解析度。
圖33(a)說明組合ROM與RAM兩者之運算單元之實施例。此實施使用在圖21中引入之基於電晶體(1T)之ROM拓樸及圖33(b)中所展示之標準的六個電晶體(6T)SRAM結構。及可分別為高供應電壓及低供應電壓。亦可使用其他標準的SRAM結構,諸如七個電晶體(7T)、八個電晶體(8T)或十個電晶體(10T)結構。圖33(a)中展示乘陣列之四乘四個子集。可使用基於ROM之單位胞元與基於SRAM之單位胞元之任一比例。可使用PMOS電晶體代替NMOS裝置。另外,可切換源極及汲極端子連接。藉由如上文所描述之金屬、接點或通孔連接件在ROM單位胞元中對權重進行一次程式化。使用特定的控制信號(SEL)及專用額外位元線(分別為用於正及負SRAM位元線之P及N)在基於SRAM之單位胞元中程式化權重。若權重值「1」經儲存在單位胞元之SRAM中,則對應的電晶體之閘極連接至。相反地,若權重值「0」經儲存在單位胞元之SRAM中,則對應的電晶體之閘極連接至。對於ROM元件及基於SRAM之元件兩者,權重可被視為用連接於字線與位元線之間的電晶體之導電率來編碼,如方程式(1)中所描述。
如上文所描述,存在列驅動器及行讀出電路之多個可能實施(基於電壓或電流,靜態或動態)。舉例而言,可使用靜態、基於電壓之輸入啟動及電流讀出,如針對圖21中之實施所描述。對於此方案,在方程式19至22之後且如上文所描述來描述用於個別行之整個MAC運算。該電流可使用跨阻抗放大器經轉變為電壓,且接著在隨後的類比至數位轉換器級中數位化。替代地,該電流可直接使用電流輸入ADC數位化或經緩衝且傳遞至後續的級。使用儲存在該行中之權重在陣列之每一行(神經元)中執行此運算。
在一些實施中,基於SRAM之單位胞元可僅包括於一些行中而非包括於所有行中。舉例而言,可僅每隔一行包括SRAM,如圖33(c)中所展示。由於SRAM在單位胞元中之存在需要額外電晶體,因此,此方法可用於縮減總面積及成本,同時仍維持可程式化程度。另外,可使用差分實施,如圖33(d)中所展示。在此實施中,SRAM胞元之差分輸出係用於控制陣列中之鄰近行中的電晶體之閘極。鄰近行中之對應的基於ROM之單位胞元亦必須以差分方式經譯碼,如所展示。讀出電路亦必須為差分實施,從而讀取鄰近行之間的輸出量(例如電壓、電流或電荷)之差。此實施亦與圖17中所展示之用於增加輸入啟動或權重以及差動運行之解析度的技術相容。這些實施亦與圖32中所展示之變化相容。
圖33(a)說明與基於SRAM之單位胞元用於同一IMC陣列中之基於1T ROM之單位胞元的實施例,其中在位元線上進行類比求和。圖33(b)說明使用及作為高供應電壓位準及低供應電壓位準之標準的6T單位胞元之實施例。圖33(c)說明可在一些行中省去基於SRAM之單位胞元之實例以便節省面積及成本。圖33(d)說明一差分實施,其中單個SRAM係用於將互補值提供至鄰近行中之電晶體。
圖32及圖33中所展示之實施例僅為實例實施例,且上文所描述的基於ROM之元件與基於RAM之元件的其他組合亦為可能的。混合式ROM/RAM架構之選擇將藉由最佳化如面積、功率消耗、潛時、輸送量及信雜比之效能度量來判定。
若干基於ROM之IMC陣列(諸如具有圖24及圖25中所展示之電容式實施之實施例)可完全在積體電路製程之金屬層中製造。另外,完全在金屬層中製造諸如用於RRAM或PCM之一些類別的基於RAM之IMC陣列可為可能的。此特徵允許IMC運算單元之3D整合,從而實現節省成本且改善效能之較高密度權重儲存及運算。
圖34(a)說明基板層中之具有IMC陣列之3D堆疊的基於ROM之IMC陣列及金屬層中之IMC陣列中之一或多者的實施例。圖34(b)說明一或多個基於ROM之IMC陣列可在金屬層中在基板中的基於RAM之IMC陣列上方進行3D堆疊。圖34(c)說明一或多個基於ROM之IMC陣列可在具有一或多個基於RAM之IMC陣列的金屬層中在基板中之基於ROM之IMC陣列上方進行3D堆疊。圖34(d)說明一或多個基於ROM之IMC陣列可在具有一或多個基於RAM之IMC之金屬層中在基板中之另一基於RAM之IMC陣列上方進行3D堆疊。
如圖34(a)中所展示,一或多個基於ROM之IMC陣列(例如,圖24及圖25之實施例)可在金屬層中在另一基於ROM之IMC陣列上方進行3D堆疊,該另一基於ROM之IMC陣列使用基板層及下部金屬層(例如,圖21至圖23及圖26至圖29中之基於電晶體之實施的實施例)。基板層可為半導體材料層,該半導體材料層可為矽晶圓或其他類型的材料。如圖34(b)中所展示,一或多個基於ROM之IMC陣列可基於諸如SRAM之技術在基於RAM之基板IMC陣列上方進行3D堆疊。一或多個基於RAM之金屬層IMC陣列可在無論是否具有基於ROM之金屬層IMC陣列之情況下在基於ROM之基板IMC陣列(圖34(c))或基於RAM之基板IMC陣列(圖34(d))上方進行3D堆疊。
圖35說明具有基於神經網路之分類器之「邊緣」感測裝置的實例,該分類器用以對有限數目個類別進行分類以觸發喚醒功能,該喚醒功能又使得能夠將用於進一步處理之巨量資料傳輸至雲端。圖35(b)為典型的矩陣乘加運算,其可在神經網路內實行。圖35(c)說明記憶體及算術邏輯單元(arithmetic logic unit;ALU)之配置。
減少此能源消耗之方法係藉由併有被稱作記憶體內運算之方案。在此方法中,神經網路之權重係固定的且經儲存在進行計算之處,且因此資料移動可極大地降低。就使用數位電路之神經網路硬體實施而言,此可經配置為一架構,其中記憶體及算術單元以一方式分佈,使得資料儲存裝置更接近其目的地處理器。一個更高效率的替代方案為基於控制電路電壓及電流之電路網路屬性來實現乘加計算(multiply and add calculation;MAC)。此使得能夠瞬時部署例如藉由諸如電阻器之阻抗實施的輸入啟動,例如,橫跨大型權重網路的電壓或電流位準。乘法運算接著藉由按比例縮放輸入啟動之權重元件之阻抗來實現,且求和藉由電路節點中之瞬時電流或電荷包求和來進行。此類比MAC運算之結果可藉助於資料轉換器而容易地用於讀出。
可出於矩陣乘加運算之目的來使用被稱作交叉式網路之類比電路組態。此類網路(例如,在圖36中說明)經由數位至類比轉換器(digital-to-analog converter;DAC)藉由存取列(字線)應用整數神經元啟動值Xi
。這些字線橫跨字線部署類比電壓Xi
.Vref,DAC
,其中Vref,DAC
為DAC之參考電壓。沿著每一字線,多個權重元件置放於與行(位元線)之交叉點處。這些權重元件係藉助於阻抗(導電率)來實施,其中每一元件為單位導電率G之整數Wij
倍,從而產生G.Wij
。每一位元線與具有對應的權重之多個字線在其交叉點處交叉,且因此實施求和節點以添加電流。對於第j個位元線,此電流可藉由連接至該位元線之權重元件而經寫為所有電流之求和:
當此位元線電流係由具有增益RTIA
之跨阻抗放大器來處理時,該放大器在每一位元線產生由以下方程式表示之電壓Vj
:
此電壓Vj
接著藉助於類比至數位轉換器(ADC)參考電壓Vref,ADC
而經數位化為整數Yj
,從而將其捨位為整數Yj
(round(x)函數):
為簡單起見,吾人可採用Vref,DAC
= Vref, ADC
及RTIA
= 1/G,且接著方程式(3)簡化為:
此展示每一位元線實施用於輸入啟動與第j行權重矩陣之間的乘法的乘加結果,且因此所有Yj
值形成矩陣點積結果。對於圖36中所展示之狀況,4×1啟動矩陣X乘以4×4權重矩陣W產生1×4矩陣Y:
圖36中所展示之交叉式網路介面的缺陷中之一些可為將連續啟動電壓施加至字線及在位元線中運行電流(高度取決於權重元件類型及值範圍)以及ADC、DAC、驅動器及感測放大器之靜態功率消耗增加了能耗。另外,每一ADC及DAC係由通常轉化為大晶片面積之許多主動及被動子組件組成,且因此限制介面與交叉開關之間距大小且限制大尺度。由於類比組件變化,DAC及ADC之傳送特性匹配的假設(簡單的假設Vref,DAC
=Vref,ADC
)在實現中並不正確。在大規模網路中包括此類非理想性使得訓練較複雜。在深度神經網路中,通常,ADC及DAC之動態範圍需要在層與層之間按比例縮放,此增加了大量複雜性及設計工作。
圖36說明藉由交叉式網路實施之類比乘加運算之實施例,該交叉式網路在電流域中使用藉由整數經加權導電率及求和實施之類比輸入啟動及權重。
在過去,交叉式網路之啟動輸入已經修改以使用脈寬調變時域信號而非圖36中所展示之振幅域啟動。圖37(a)中展示併有經儲存在二進位記憶體胞元(諸如SRAM胞元)中之二進位權重的此類網路之實例。相較於藉由位元線運行電流,此方法可具有較高能效,此係因為其主要依賴於附接至位元線之電容器(寄生電容或有意添加之電容器)上之電荷求和。圖37(a)中所展示之交叉式網路藉助於脈衝產生器實施其啟動輸入,該些脈衝產生器參考具有持續時間Ta
之單位時間參考。此處,由Xi
表示之整數啟動輸入判定啟動持續時間等於Xi
.Ta 。
舉例而言,整數輸入啟動7係由持續時間7.Ta
處之脈衝表示。
圖37(a)說明交叉式網路,其具有脈寬調變啟動信號及嵌入於記憶體中之二進位權重,該些二進位權重判定關於差分位元線電容之放電極性。圖37(b)說明網路之時序操作。類似於圖36之交叉式網路,字線橫跨許多位元線廣播啟動,其中權重元件在每一字線與位元線之交叉點處經儲存在記憶體胞元中。位元線可以差分方式配置,亦即每一線係由具有電壓VBLj
及VBLbj
之兩條線構成。這些位元線各自具有由CBL
表示之總電容,且最初在運算之前經充電至預充電電壓VP
。當在每一點積運算開始時經預充電時,橫跨位元線之由Vdj
= VBLj
- VBLbj
表示之差分電壓自零開始(在圖37(b)中展示)。對於每一字線之脈寬調變啟動之持續時間,開關SW將位元線電容器連接至保持「10」或「01」狀態之記憶體胞元(保持產生兩個狀態之0或1值的左手側及右手側或SRAM胞元)。假設開關不具有導通電阻,且電容器想總電阻係藉由電阻RBL
模型化。取決於儲存在權重記憶體中之狀態(「+1 = 10」或「-1 = 01」類似於位元線電容之充電/放電極性),位元線電容中之一者朝向供應充電,且另一位元線電容朝向接地放電(圖37(a))。一旦所有脈寬調變輸入啟動應用於字線,由於疊加,經移除或添加(取決於權重)至每一位元線電容之總電荷(取決於啟動)橫跨位元線產生差分電壓(對於具有所有權重「1」之狀況,參見圖37(b)):
位元線電壓Vdj
係藉由類比至數位轉換參考電壓Vref,ADC
來轉換以導出整數位元線點積結果:
此方案藉由移除用於圖36中之DAC來簡化啟動,且藉由位元線之電荷域運算來改善能量效率,然而,振幅域讀出之複雜性及能耗(由位元線ADC所需)保持不變。
圖38說明用經脈寬調變之啟動而啟動且用振幅域類比至數位轉換器在振幅域中讀出的基於憶阻器之交叉式網路。在此類實施例中,類似於圖38(a)之實施的實施在經加權電阻器中實施權重(導電值)。此可為用於不具有可程式化性之網路的固定電路元件,或可藉由利用諸如憶阻器元件之元件而變得可程式化(諸如圖38(b)中所展示之可程式化導電值)。用於位元線之脈寬調變啟動及其產生以及差分結構之組態類似於圖37(a)之組態。不同之處在於權重值Wij
,其可比圖37(a)之二進位位準具有較多位準。圖38(b)中展示橫跨導電率之7個位準的雙極權重值之狀況。假設Wij
(用於負權重值之Wbij
)為整數值,其物理實施係藉由導電率Gij
= G0
+ Wij
.Gu
or Gij
= G0
- Wbij
.Gu
。矩陣點積乘加運算藉由將位元線預充電至預充電電壓VP
而開始。每一字線將脈寬調變啟動輸入Xi
攜載至開關SW。在啟動輸入之持續時間內,這些開關藉由由Wij
(及Wbij
)判定之權重導電值而提供至接地之放電路徑。由於所有時間常數之疊加,因此,一旦應用所有啟動輸入,差分電壓Vdj
橫跨位元線出現,該差分電壓首先係藉由以下方程式來判定:
位元線電壓係藉由ADC數位化。在過去,在存在由參考導電值形成之額外列之情況下,藉由應用多循環充電及放電操作,將ADC之操作及交叉開關之操作嵌入。此有助於以需要多循環充電及放電操作及用於實施振幅域ADC操作之橫跨交叉開關之額外列的導電率為代價來緩解(方程式52)之非線性關係。
本發明之實施例說明用於類比乘加交叉式網路之啟動及讀出的時域介面。此類介面替代用於先前技術中之振幅域方案。其可受益於以下事實:在至交叉開關字線之啟動輸入轉化為脈寬調變時域信號之情況下,可在位元線處藉由時間量測來量測藉由各種交叉式網路組態實施之時間常數(充電時間、整合時間、放電時間)之疊加,其中可參考用於產生啟動之相同時間基準來進行時間至數位轉換。另外,本發明提議以比例式方式配置的時間量測,使得促成電阻器、電容器、參考電壓、電流、時間等之絕對值的非理想性將抵消,從而產生線性點積矩陣乘法輸出,其首先僅為整數輸入啟動及權重之函數。
圖39說明至點積計算交叉式網路的基於時間之介面。可展示時間輸入及輸出介面,以及39(b)可展示介面周邊裝置為數位至時間及時間至數位轉換器(time-to-digital converter;TDC),且在39(c)中,可展示時域操作。時域操作在此類類比交叉式乘加網路之可擴展性及可靠性方面具有若干益處。圖39(a)說明至具有時域周邊介面電路之交叉式網路的時域介面。這些周邊電路在圖39(b)中展示,且主要實施數位至時間及時間至數位轉換之功能。該些啟動係參考時間Tref
藉由形成器(脈衝產生器)產生,該時間由整數輸入Xj
按比例縮放,且MAC輸出藉助於時間至數位轉換器(TDC)自時域轉換為數位。TDC量測由標記兩個事件之開始及停止信號標記的輸入時間(圖39(c))。為了實現時間量測,需要參考時間。對於TDC,此通常係由TDC之輸入頻率(fref
)或時間基準Tref
= 1/fref
設定。將此類轉換器應用於點積交叉式網路之介面具有若干益處:
TDC之電路架構較接近於數位電路(對於中等時間解析度,TDC實施可與計數器一樣簡單,或對於高解析度狀況,環振盪器及暫存器可與計數器組合)。此類類型之電路系統具有若干益處:
深度神經網路之每一隱藏層所需的動態範圍之按比例縮放在TDC中而非在ADC中更容易實施。當使用TDC時,此可與將額外位元添加至計數器且在較長時間段內計數以將動態範圍加倍一樣簡單,而在ADC中,此類調適可對複雜性、大小及功率消耗具有嚴重影響。
TDC消耗與切換邏輯閘(如數位電路)相關聯之動態功率,而非由用於ADC中之線性類比電路消耗的靜態功率。相較於ADC,此提供優良的能量效率。
半數位電路架構使得其積體電路實現之佔據面積極小,且因此使其適合於使用類比交叉式乘加網路之較大規模的深度神經網路。
可相對於由用於實施網路權重之相同單位類比電阻或電容產生的參考時間常數來量測每一位元線之所得輸出時間。此實現比例式量測方案,其藉由首先消除類比元件之變化而極大地增強點積結果之穩定性。
藉由至以時域配置的交叉式網路之輸入及輸出介面,脈寬調變啟動產生器之時間基準可與TDC之時間基準同步(圖39c),從而接著針對至交叉式網路之類比及數位介面產生匹配的傳送特性。此對於振幅域介面係不可行的,此係因為DAC及ADC或脈寬調變器及ADC之特性本質上係不匹配的。
圖40A說明功能方塊圖,且在圖40A及圖40C中展示至基於交叉式網路之混合信號點積運算硬體的經提議時域介面之操作,且在圖40B中具有時域操作波形。此方塊圖係時域及比例式讀出操作之基礎,且將經展示為可擴展至基於不同電學屬性(電荷域、電流域等)及權重實施(諸如ROM、SRAM、M/R/PC/RAM之記憶體元件)的各種交叉式網路。為了簡化經提議方法之描述,首先展示單端結構(僅正權重值)。至具有雙極操作及差分位元線之實際實施的擴展可自此基本架構得出,且將稍後展示。
在圖40中,展示至具有比例式輸出評估之交叉式混合信號點積計算網路之時域介面之實施例。在圖40(a)中,說明具有脈寬經調變輸入啟動及基於TDC之讀出的概念方塊圖。在圖40(b)中,說明與時域輸入、輸出及控制以及參考信號相關聯的波形。且在圖40(c)中,利用按比例縮放電流源之時域比例式實施參考參考電流源Iref
。
在此實施例中,權重經展示為藉由利用單位導電率G實施之阻抗,該單位導電率係藉由適當的整數權重Wij
按比例縮放。輸入啟動信號係基於藉由整數啟動值Xi
按比例縮放之參考時間Ta
由脈寬調變產生器來產生。這些輸入啟動信號係沿著字線廣播,該些字線接著在將字線連接至位元線之對應的權重阻抗處與位元線交叉。每一位元線可連接至積分器,其在每一點積計算自由給定參考電壓Vref
界定之重設狀態開始其操作(藉助於「重設」信號執行)。一旦具有振幅Va
之脈寬調變啟動應用於所有字線,與權重相關聯之導電率將脈寬調變啟動轉換為經注入至每一位元線中之總淨電荷量(藉由流動電流Ij
來遞送),該總淨電荷量係藉由對應的積分器進行積分。第j位元線之電荷為:
由於應用輸入啟動及電荷積分,因此每一積分器會產生由Vintj
表示之輸出電壓,該輸出電壓為積分器增益之函數(圖40b)。一旦應用所有啟動(且所有經加權電荷經積分),由開始表示之信號藉由單位導電率G將積分器輸出連接至電壓-Va
,該電壓為脈寬調變輸入啟動之振幅之負值。同時,連接至位元線之TDC開始量測時間。至-Va
之連接自積分器移除電荷(藉由放電電流Idischarge,j
)。電荷之移除接著縮減積分器輸出電壓Vintj
,且此情形繼續,直至監視積分器輸出電壓之比較器偵測到積分器已達到其原始複歸值Vref
為止。一旦偵測到此位準,則停止信號係由比較器產生且傳遞至TDC以停止量測時間。因而,在啟動階段期間進行積分之總電荷Qj
係使用藉由單位導電率G構造的參考放電路徑而被完全地移除。移除此電荷(放電)所需之時間係:
TDC在其輸出處產生數位整數值Yj
,其藉由round(x)
之捨位函數(量化函數)與tOD,j
及TDC參考時間Tref
成比例:
將(54)代入(55)得到:
TDC參考時間Tref
及脈寬調變器啟動產生器之時間基準Ta
兩者以整數比率與相同的系統時脈Tclock
同步。因此,Tref
及Ta
具有由k
表示之整數比率。同步允許k
能夠經選擇為整數或兩個整數值M與N之比率,亦即k
= M/N。此亦處理較早提及之量化:
將(57)代入(56)會產生比例式線性位元線輸出量測Yj
,其僅取決於輸入整數啟動Xi
、整數權重值Wij
及固定常數k:
圖40(c)中展示經提議比例式時域交叉式網路實施之替代圖示。在此實施例中,參考參考電流源Iref
之整數的按比例縮放之電流源實施網路權重。放電路徑可由參考同一源且具有相反極性之一列電流源構成。網路中之信號之時域操作及波形恰好類似於圖40(b)中所展示之時域操作及波形。與圖40(a)中所說明之實施例之不同之處在於充電及放電電流係藉由利用主動電流源而非被動阻抗來產生。控管點積計算及比例式運算之方程式與方程式(53)至(59)保持相同,其中唯一的不同之處在於表示方程式(53)及(54)中之圖40(a)之充電及放電電流的應用Iref
替換。
就點積實施而言,方程式(58)說明實施至交叉式網路之比例式時域介面之經提議方法的重要性。時域中之比例式輸出評估首先係獨立於任何絕對參數值,諸如形成權重之單位阻抗或電流源(G或Iref
)、諸如參考電壓Vref
或啟動振幅之電壓位準、諸如積分器增益及輸出位準Vintj之電荷積分參數,以及時間基準值。
就硬體及能耗效率而言,經提議方案可具有若干益處。首先,可用於介面中之僅有的類比電路中之一者為每一位元線之比較器,其在每一點積計算運算一次,從而最小化介面電路之靜態功率消耗且最大化其輸送量(相較於ADC介面)。電荷積分可使用位元線電容被動地進行或運用主動積分器主動地進行以獲得較高準確度,然而,位元線積分器可運用諸如基於反相器之主動積分器的低功率電路來實施。
經提議時域介面技術可基於不同記憶體元件(揮發性的,諸如SRAM,或非揮發性的,諸如浮動閘極快閃記憶體、ROM、RRAM、MRAM等)應用於各種組態的交叉式網路。經提議時域介面技術亦可應用於實施混合式記憶體架構(例如部分地基於SRAM及部分地基於ROM或用於混合信號記憶體內運算之不同記憶體元件的任何組合)之網路。
靜態隨機存取記憶體(Static Random-Access Memory;SRAM)可用於在記憶體運算中儲存權重。SRAM可提供待用於使用多級輸入或二進位輸入之網路中的二進位權重元件。點積輸出亦可為二進位或多級的。每一組態可具有其自身的特性及優缺點,然而,當採用使用SRAM胞元以便儲存權重之多級輸入啟動及多級點積輸出評估時,相較於利用振幅域介面之目前先進技術,經提議時域介面提供硬體及能量效率以及高精度計算結果。接下來,引入三個架構,其利用基於SRAM之交叉式網路之時域比例式介面:
圖41說明時域多級啟動輸入、多級點積輸出、基於SRAM之記憶體內運算交叉式網路。圖41(a)中所展示之網路可基於平衡的電流積分,其使用單位阻抗及TDC位元線轉換器且使用利用位元線電容之被動積分。圖41(b)說明用主動積分器替換被動積分器。圖41(c)說明具有輸入及輸出時間值之時域介面之操作。此交叉式網路之實施例可利用單位導電值G
,以將經儲存SRAM記憶體內容轉換為雙極電流(推拉電流分量),該雙極電流係藉由差分積分器進行積分。差分位元線結構意謂二進位權重值用作+1及-1值。每一胞元需要6個電晶體(6T胞元),其中4個電晶體實施SRAM核心且2個用於應用啟動信號圖41(b)中之積分器以較多能量及晶片面積為代價提供較佳積分準確度。圖41(c)中之網路之操作係與圖6a中所展示之基礎網路架構相同。該操作自用於位元線積分器之重設狀態開始,將該些位元線積分器重設為共模參考電壓Vref
(例如SRAM供應Vdd
的一半,亦即Vref
= 0.5Vdd
)。接著,此後為應用脈寬調變啟動輸入Xi
。啟動時間基準Ta
及TDC參考時脈Tref
係與系統時脈Tclock
同步。權重導電率G使得雙極電荷(取決於經儲存SRAM值)流動至位元線積分器中,從而產生每一位元線產生之差分電壓Vintj
。在應用輸入之後,確證開始信號,以啟用放電支路。此支路使用兩個單位導電率G以藉由將經積分電荷排放回至Vref
來移除該經積分電荷(在應用啟動輸入之前積分器起動的相同初始條件)。當確證開始信號時,TDC開始量測時間。一旦積分器傳遞差分零電壓,則比較器藉由產生STOPj
信號來停止TDC(圖41(c))。使用方程式(54)且用Vdd
替換Va
(用於脈寬調變輸入啟動之SRAM供應以及振幅),假設與(57)所建議相同的同步的時間基準之間的比率,TDC數位輸出可經定義為:
此展示點積結果,其首先僅為SRAM記憶體中之整數啟動輸入及經儲存權重之函數。應注意,當實施二進位權重網路時,導電率G可僅由6T胞元中之開關電晶體之導通電阻表示,且因此未必需要為單獨的物理阻抗。
圖42說明至用於點積計算的交叉式網路之基於SRAM之多級輸入、多級輸出時域介面。圖42(a)說明基於使用8T胞元SRAM及平衡的電流源之完全平衡的電流積分之網路,及匹配的完全平衡的放電路徑以及時間量測區塊。圖42(b)說明藉由SRAM判定之平衡的電流積分之極性及藉由積分器極性判定且藉由「斬波器(Chopper)」應用之平衡的放電相位之極性。圖42(a)說明具有時域比例式介面的基於SRAM之交叉式網路之另一方法,其中單位電晶體而非單位阻抗實施完全地平衡的電流源,以在藉由輸入啟動判定之時間的持續時間內對位元線電容上之電荷進行積分。此處,提議8電晶體(8T)胞元,其中4個電晶體形成保持權重值之SRAM核心,且其他4個電晶體實施完全平衡的電流源,其極性藉由儲存在SRAM中之值來判定。8T SRAM胞元中之推拉單位電流源參考具有電流Iref
之參考分支。參考電流係藉助於參考二極體連接之電晶體MPref
及MNref
來複製,從而產生用於使8T胞元PMOS及NMOS電流源偏壓之字線電壓VGP
及VGN
。這些字線電壓匹配MPref
及MNref
且產生+/-Iref
電流。圖42(b)展示對於對應於權重值+1及-1之兩個狀態,如何判定電流之平衡注入極性。SRAM狀態藉由僅將電流源之共用源極端子偏壓為Vdd
(供應)或GND(接地)而判定啟用哪一電流源且停用哪一電流源。經提議連接藉由以相反的方式開啟及斷開電流源來保證平衡的電流方向。在藉由對應的輸入啟動Xi
判定之持續時間內藉由字線將電壓VGP
及VGN
應用於8T胞元電流源電晶體閘極。網路之整體功能操作係與(圖41(c))之實施例相同。相較於此實施例,比例式放電階段需要額外考慮。應藉由利用用於比例式操作之匹配的平衡電流源來實行放電階段。正確的放電極性(為了使得自積分器移除電荷而非添加電荷)係藉由利用相同位元線比較器輸出來判定。比較器輸出僅僅保存關於經積分電荷在啟動階段結束時之極性的資訊。此位元係用於控制「斬波器(Chopper)」區塊將NMOS及PMOS放電電流源連接至位元線之極性(參見圖42(b))。停用斬波器,直至應用開始信號為止。此時,TDC開始量測時間,且放電路徑單位電流源按照正確的極性自電容器移除電荷,直至比較器跳閘(當積分器輸出超過零時)為止。藉由停止信號標記之此事件停止TDC時間量測。因此,時域操作完全類似於圖41(c)中之架構的時域操作。
圖42(a)中所展示之被動位元線積分器亦可用圖41(b)中所展示之相同的主動積分器替換。相較於其他實施例,此網路提供精確度電荷積分及比例式輸出評估。對於在推導(59)中假設之相同的時序條件,網路輸出為:
此再次為具有來自電路值之一階獨立性的比例式點積輸出。應注意,圖42中之架構亦可在充電及放電階段兩者中用單端位元線及單極電流源來實施。
圖43說明電荷再劃分架構。圖43(a)中所展示之電荷再分佈架構實施至8電晶體SRAM胞元(8T胞元)架構之多級輸入啟動及多級輸出時域介面。此處,每一8T胞元亦包括單位電容CU
,其取決於經程式化SRAM權重值+1或-1,將在「Vdd
」與「GND」之間或在「GND」與「Vdd
」之間充電。輸入啟動轉變為脈衝列,其中脈衝之數目等於整數輸入啟動Xi
。每一脈衝具有自與系統時脈Tclock
同步之信號Ta
提取的單位脈寬。取樣時脈TS
具有與Ta
相同的週期,但相較於Ta
具有相反的相位(圖43b)。每一字線廣播用於啟動之脈衝列,其中該字線係在與位元線之交叉點處由8T胞元接收。在8T胞元內,藉由輸入啟動操作之開關以藉由SRAM值判定之極性對CU
上之電荷進行取樣。在相反相位(藉由TS
界定)下,來自所有CU之電荷將經傳送至連接至位元線之積分器(積分器自重設零相位開始)。一旦應用所有的輸入啟動脈衝,則藉由位元線積分器進行積分之總電荷係:
在此階段之後,當TDC開始量測時間時,確證開始信號(參見圖43(b)),且同時,該開始信號藉由切換單位放電電容器CU
以開始排放積分器而啟用穿過連接至取樣時脈TS
之AND閘極的放電路徑。放電極性係藉由連接至位元線積分器輸出之相同比較器來判定,且將用於當積分器被排放時停止TDC。放電時間tOD,j
可藉由經移除直至其達至初始重設狀態零之總電荷及以速率TS
(TS
= Ta
)切換之電容器CU
之有效電阻來判定:
時間tOD,j
係按照如藉由方程式(57)所描述之相同的同步比率運用參考參考時脈Tref
之TDC來量測,TDC之數位輸出計數Yj
可藉由以下方程式來判定:
此展示比例式點積輸出計算首先獨立於所有電路參數且僅為整數啟動及權重之函數。應注意,位元線可運用全差分的開關電容器電路來實施。另外,積分電容不需要匹配8T胞元電容,此係因為積分器增益與比例式點積輸出不相關。僅應使放電路徑之電容器為8T胞元電容之整數比率,且具有相同類型之電容器。只要放電時脈(在圖43(a)之狀況下,使用取樣時脈TS
)係與該系統之主時脈同步,此電容及放電時脈頻率之值亦與點積輸出不相關。
圖44說明應用於用於記憶體內運算點積計算之交叉式網路之時域介面方案的基於唯讀記憶體(ROM)之實例。輸入4401可由脈衝產生器4403接收。在圖44(a)中,展示具有基於ROM之可程式化權重的基礎架構之實施例。在圖44(b)中,展示具有基於ROM之權重程式化(量值及極性)的基於差分位元線導電率之架構的實施例。其他實施例(諸如圖40至圖43)中所展示之時域點積矩陣乘加交叉式網路可被考慮用於其中權重值作為唯讀記憶體(ROM)硬佈線之實施。此適合於其中不預期網路權重(或網路權重之部分)在實施用於記憶體內運算之硬體之後改變的應用。此技術將藉由使諸如阻抗(例如,如圖44中所展示)或電流源及電容器(例如,如下文在圖45中所展示)之較多的單位電路元件被容易地製造且經選擇為在稍後階段連接(例如作為後段製程金屬選項或NVM雷射熔融選項)而實現權重極性或甚至權重值之程式化。對於不同產品的不同權重值4405模式仍可修改基礎硬體。網路之各個部分仍可運用SRAM記憶體胞元來實現為SRAM及ROM實施之混合以提供某一可程式化性。
圖44之實施例改變圖40之一般基線架構,以及圖41之差分結構(基於單位阻抗),且因此已經轉換為基於ROM之時域交叉式網路且在圖44中展示。出於說明起見,在電路中在每一字線與位元線交叉點處預製了多個單位阻抗G,且金屬選項允許所要數目個單位阻抗連接至位元線且因此實現權重值之按比例縮放。亦可藉助於中間區段改變極性,該中間區段判定位元線阻抗之哪一側應連接至正或負電壓。此結構之時域比例式操作相較於圖40及圖41保持不變,且提供完全相同的益處。
圖45說明基於ROM之時域介面。圖45(a)說明應用於具有可程式化電容值及極性的基於電荷再分佈之交叉式網路位元線之實施例。圖45(b)說明具有可程式化電流量值及極性的基於參考電流源之交叉式網路。圖45中展示圖42及圖43之結構的基於ROM之替代方案。此處,圖45(a)之電荷再分佈網路藉助於金屬選項在每一ROM胞元具有可程式化電容值,該金屬選項使所要數目個預製的電容器並聯且將該些預製的電容器連接至該胞元。另外,位於中間之另一金屬選項藉由判定電容器充電極性來判定權重極性。圖45(b)中之架構為基於圖42架構之完全平衡的電流積分架構,其中預製的單位電流源可藉助於金屬選項以及極性選擇選項而連接至位元線。圖45之實施例中之架構的比例式時域操作在具有所有相關聯的益處之情況下保持類似於圖42及圖43展示之實施例。基於ROM之架構可以用於預製元件之增加的硬體為代價在製造後提供某一位準之權重可程式化性的可能性。該架構可與基於SRAM之記憶體組合,以將網路或權重之部分實施為ROM與SRAM之混合,以用於部分可程式化性。
圖46說明具有時域比例式介面之基於浮動閘極快閃或FeFET之交叉式網路的實例。可在脈寬產生器4603處接收輸入4601。神經網路權重可以非揮發性記憶體之形式在晶片上儲存(程式化)。此實現了可重組態硬體(相比於基於ROM之網路),其可在無需再程式化網路權重之情況下循環供電(相比於基於SRAM之網路)。另外,任一多級權重儲存能力允許增加網路效能(相比於二進位權重)以及節省晶片面積(相比於基於ROM及SRAM之方法)。一種實施此類記憶體內運算方案之方法係藉由使用浮動閘極快閃記憶體架構,其中權重經儲存在電晶體之臨限電壓中。另一方法為利用鐵電場效電晶體(Ferroelectric Field Effect Transistor;FeFET),其中鐵電層之磁極化經添加至電晶體之閘極結構且提供非揮發性儲存方法。可利用此類裝置來實現用於計算矩陣點積之交叉式記憶體內運算網路。時域比例式啟動及輸出評估技術可應用於這些網路以便提供比例式量測、線性度、小佔據面積及可擴展介面之基本益處。涉及浮動閘極電晶體或FeFET之結構經視為與2電晶體(2T)胞元相同,該2電晶體胞元具有充當存取切換器之一個電晶體及作為實施神經網路之權重的可程式化臨限電壓電晶體之另一電晶體。可程式化臨限值電晶體可用作三極體操作區中之可變電阻器或亞臨限或飽和操作區中之電流源。在較簡化的實施中,1T胞元以字線4607位準併入選擇器開關。
若可程式化臨限值電晶體用作電阻器,則電晶體之通道電導Gij
係藉由以下方程式來判定:
其中Vgs
為電晶體閘極-源極電壓,β
為與其尺寸(寬度/長度)之縱橫比、電荷載流子移動力等成比例的電晶體參數,且VTH,ij
為穿過浮動或磁閘極之經程式化臨限電壓,其最終控制權重導電率Gij
。為了將權重導電率配置成具有整數比率m
,亦即具有值:G 、 2G 、 3G 、 4G
等,經程式化臨限電壓與基線臨限電壓VTH,b
之關係必須產生最小單位權重導電率G。換言之,對於提供導電率m×G(其中m = 1, 2, 3, 4, …)之電晶體,其臨限電壓VTH,m
相較於基線電晶體應滿足以下關係:
其產生:
用於使用方程式(63)獲得線性比導電率之設計空間經限於可能3或4個導電位準,此係因為用於最小的可能的Vgs
及可能的經程式化臨限電壓之邊界受到限制(受供應電壓及電晶體特性限制)。換言之,由於方程式66之性質,對於相同類型的電晶體,獲得較大導電率產生負臨限電壓位準,此可能為不可行的(圖47頂部)。在設計空間及以下方程式(66)內,首先可達至通道電導之間的整數比率(對於有限數目個位準),且使用相同的電晶體縱橫比。考慮到這一點,比例式時域介面可應用於交叉式網路,其採用浮動閘極快閃或FeFET電晶體。
圖46說明具有時域比例式介面之基於浮動閘極快閃或FeFET之交叉式網路。圖46(a)展示基於電晶體通道電導之基於2T胞元之網路4620(三極體操作)。圖46(b)說明基於電流源之基於2T胞元之網路(亞臨限或飽和)。圖46(c)說明基於電晶體通道電導之具有合併的字線開關的基於1T胞元之網路(三極體操作)。圖46(d)說明基於電流源之具有合併的字線開關之基於1T胞元之網路(亞臨限或飽和)。可使用基線導電率G以便形成放電路徑。此在圖46(a)中展示。該些啟動作為脈寬調變信號應用。此網路之操作類似於圖40(a)之操作,且其輸出藉由方程式(54)至(58)判定。應注意,通道電導係藉由電晶體之汲極-源極電壓Vds
調變,且因此較佳的為將位元線保持在經控制DC電壓,亦即藉由採用在求和節點處提供經調節DC電壓之主動積分器而非被動積分器。圖46(c)中展示圖46(a)之網路的替代方案,其中使用1T胞元電晶體且經切換選擇器在字線處合併。
若可程式化臨限值電晶體用作電流源,則在飽和狀態下操作之情況下,電晶體之通道電流遵循平方定律:
若電晶體在亞臨限值下操作,則其遵循指數關係:
其中IS
為飽和電流,n
為亞臨限值之電晶體參數,且VT
為熱電壓(在室溫下為25 mV)。對於藉由Iij
實施之線性權重比率,亦即為了使電晶體之通道電流相對於具有基線臨限電壓VTH,b
之單位電晶體具有整數比率,亦即Im
= m×Iref
,VTH,m
應再次經配置為具有以下關係:
對於飽和操作:
對於亞臨限操作:
再次,供應及最小以及最大的可程式化臨限值的限制設置了對可實現的位準之可能數量的限制,以獲得權重之間的整數比率。可程式化的臨限值電晶體可經配置為交叉式網路中之電流源,該交叉式網路用與單位電流源一起利用之放電路徑來實施如圖46(b)中所展示之包括比例式時域讀出之網路權重。此網路之操作類似於圖40(c)之操作,且其比例式矩陣點積輸出係藉由方程式(58)導出。圖12d中展示圖46(b)之網路的替代方案,其中使用1T胞元電晶體且經切換選擇器在字線處合併。
應注意,對於用時域比例式操作方案實施較大數目的權重位準,浮動閘極快閃或FeFET之基於電流源之架構相比於藉助於通道電導實施權重之網路實現更大數目的位準(儘管可實施負臨限電壓,然而,產生線性位準意謂應用接近零或負的閘極-源極電壓,此可能為較不實際的。)。電流源實施主要由於其電流源實施之指數性質而實現具有正臨限電壓之較多整數比率位準(相比於通道電導與經程式化臨限電壓之線性相關性)。此在圖47中加以說明,圖47說明用於實施導電及電流源之整數數目個位準之臨限電壓範圍(在飽和區及亞臨限區中)。若實施了二進位權重,則此並非問題,在該狀況下,單位浮動閘極或FeFET電晶體將以二進位(接通/斷開)方式操作。在此狀況下,圖46(a)及圖46(b)之時域網路以相同方式操作,且具有相同的比例式操作益處。
圖47說明VTH,ij
之範圍,其用以利用通道電導(頂部)或飽和(中間)或亞臨限值(底部)下之電流源來實施交叉式網路之線性地按比例縮放之權重。
諸如RRAM或相變記憶體(Phase Change Memory;PCM)等之電阻記憶體(憶阻器)出於記憶體內運算的目的為藉由利用記憶體元件實施神經網路權重提供了面積有效方式。使用憶阻器來實施計算矩陣點積之交叉式網路可與經提議時域比例式介面組合,以最大化面積及能量效率以及提供可擴展的介面,該可擴展的介面首先獨立於電路元件之製程、溫度及電壓變化。若干實施例可用於架構。
在第一實施例中,該實施例可基於圖40中所展示之基礎架構,且係藉由用可程式化憶阻器元件替換權重導電率G.Wij
、實施導電值及使用基線憶阻器導電率G來實施實現比例式充電及放電操作之放電路徑來實現。在關於匹配的權重及放電路徑元件以及同步的時間基準之條件下,放電時間之時域評估產生點積,該點積首先為整數輸入及權重按比例縮放值之函數。方程式(58)表示輸出及積分函數可藉助於主動(具有放大器之積分器)或被動(位元線電容)積分來實施。
圖48說明利用位元線電容及憶阻器導電率之兩相被動放電。假設具有足夠輸入共模電壓拒斥能力之正負號比較器的可用性,該方法在如何執行比例式時間量測方面與其他實施例略有不同。如在圖48a中所說明,此方法可利用兩相被動放電,其使用位元線電容CBL
及憶阻器導電率,其藉助於按比例縮放單位導電率Gu
之雙極整數權重±Wij
來圍繞基線導電率G0
(圖38(b)中所展示之導電特性)以差分方式配置:
各自連接至電容CBL
之由VBLj
及VBLbj
表示的差分位元線電壓具有至接地之放電路徑。脈寬調變器4803控制附接至憶阻器開關之字線4809。此提供由經加權憶阻器及啟動脈寬控管之朝向接地的位元線4802之放電相位4813。第二放電路徑係藉由參考導電率控制且提供比例式時間量測。連接至每一差分位元線之兩個端子的兩個類比比較器將位元線電壓VBLj
及VBLbj
與臨限電壓Vref
進行比較(亦可以輸送量之成本為代價來在位元線當中共用比較器)。圖48(b)中展示時域讀出方案之操作。位元線自預充電狀態開始而達至預充電電壓VP
。接著,應用脈寬調變啟動信號(藉由啟動輸入Xi
按比例縮放且與時間基準Ta
同步)。該些啟動在藉由啟動判定之持續時間內驅動開關,該些開關藉由權重導電率來使位元線電容器放電。一旦應用所有啟動(如圖48(b)中所展示),指數放電時間藉由經加權時間常數之疊加會橫跨位元線產生全微分電壓VOD
,亦即VOD,j
= VBLj
- VBLbj
:
在第二階段中,位元線係藉由具有導電率Gref
之參考導電分支進行放電,且藉由受「放電」信號控制之放電開關來啟用。在此階段期間,每一位元線電壓最終超過臨限位準Vref
,此時,對應的比較器產生邏輯信號。邏輯區塊接收兩個比較器輸出且產生開始及停止信號(當第一比較器觸發時產生開始,且當第二比較器觸發時產生停止)。這些信號經饋送至位元線之時間至數位轉換器(TDC)4819,其量測開始事件與停止事件之間的時間tOD,j
。tOD,j
時間為每一位元線在將啟動應用於比較器臨限電壓Vref
之後(參見圖48(b))自其狀態放電所需之由tdis,Pj
表示之時間與tdis,Mj
之間的差,且可經導出為:
藉由將Gref
選擇為Gu
之整數倍,亦即Gref
=M
.Gu
,時域量測tOD,j
就導電率而言係按比率量測的:
時間至數位轉換器之功能可簡化為計數至N之計數器之功能,N為具有適合持續時間tOD,j
之時間段Tref
之參考時脈的週期之數目:
使脈寬調變啟動之時間單位Ta
與如藉由方程式(57)所描述之TDC之時間基準Tref
同步4815,會不再需要量化函數(round(x))且TDC之經數位化整數N輸出可重寫為:
其展示實施矩陣點積輸出之線性及比例式評估之經提議方案。
圖49說明基於憶阻器之被動放電方法,其具有使用一個比較器之比例式時域點積輸出評估。在圖49(a)中,圖示展示交叉式網路及導電。在圖49(b)中,說明時域操作波形。圖48(a)中所展示之網路之操作的替代方案為圖49(a)中所展示之實施。此處,可兩次使用單個比較器區塊(而非兩個),且可去除參考電壓Vref
。在將脈寬調變啟動輸入應用於字線且完成位元線電容之經加權放電之後,該比較器判定位元線電壓VBLj
或VBLbj
中之哪一者係兩者中之較大電壓。比較器輸出信號接著判定藉由參考放電路徑放電之具有較大電壓之位元線,而另一位元線之電容器(具有較小電壓)上之電荷保持不變(參見圖49(b))。此藉助於圖49(a)中所展示之AND及NOT邏輯閘極而僅僅應用於參考路徑放電控制開關。當確證控制信號「放電/開始」時,參考路徑放電開始,從而使具有最大電壓之位元線放電且開始TDC時間量測。當比較器輸入之正負號改變時,例如使位元線端子之電壓放電變得小於非放電線,比較器輸出雙態觸發停止事件且將停止事件標記至TDC以停止時間量測。開始與停止之間的時間差形成時間TOD,j
,其藉由等化較大電壓位元線藉由參考導電率Gref
而放電至較小電壓位元線之電壓所需的時間來導出。在時間TOD,j
之後等化兩個電壓產生:
重新配置方程式產生:
其中TOD
可經導出為:
方程式(81)再次展示第三方法亦實施交叉式網路點積輸出之比例式評估,其一階獨立於具有同步啟動及TDC時間參考(方程式57)以及比例式阻抗位準(Gref
=M
.Gu
)之電路元件值,從而產生如藉由方程式(78)所描述之相同數位輸出Yj
,例如,僅為整數啟動及權重之函數。
本文中所揭示之製程、方法或演算法可遞送至處理裝置、控制器或電腦/可由處理裝置、控制器或電腦實施,該處理裝置、控制器或電腦可包括任一現有的可程式化電子控制單元或專用電子控制單元。類似地,該些製程、方法或演算法可經儲存為可由控制器或電腦執行之呈許多形式之資料及指令,該些形式包括但不限於永久地儲存於諸如ROM裝置之不可寫入儲存媒體上之資訊,及可改變地儲存於諸如軟碟、磁帶、CD、RAM裝置及其他磁性及光學媒體之可寫入儲存媒體上的資訊。該些製程、方法或演算法亦可實施於軟體可執行物件中。替代地,該些製程、方法或演算法可使用合適的硬體組件來整體或部分地體現,該些硬體組件諸如特殊應用積體電路(ASIC)、場可程式化閘陣列(Field-Programmable Gate Array;FPGA)、狀態機、控制器或其他硬體組件或裝置,硬體、軟體及韌體組件之組合。
雖然上文描述例示性實施例,但並不意欲這些實施例描述申請專利範圍涵蓋之所有可能形式。說明書中使用之字詞為描述而非限制之字詞,且應理解,在不脫離本發明之精神及範圍的情況下可進行各種改變。如先前所描述,各種實施例之特徵可組合以形成本發明之可能未明確地描述或說明之其他實施例。雖然各種實施例可能經描述為相比於其他實施例或先前技術實施在一或多個所要特性方面提供優點或為較佳的,但所屬技術領域中具通常知識者認識到,一或多個特徵或特性可能受損以實現所要的整個系統屬性,其取決於特定應用及實施。這些屬性可包括但不限於成本、強度、耐用性、生命週期成本、可銷售性、外觀、包裝、大小、可維護性、重量、可製造性、組裝難度等。由此,在任何實施例經描述為相比於其他實施例或先前技術實施就一或多個特性而言較不合乎需要之情況下,這些實施例不在本發明之範圍外部且對於特定應用可為合乎需要的。
39:時間至數位轉換器
300:反相電路
301:輸入
305:第一電阻器
307:第二電阻器
309:非線性放大器
310:延遲
311:均衡點
400:多輸入多狀態DEQ模型
401a:輸入
401b:輸入
401c:輸入
403a:狀態
403b:狀態
403c:狀態
409a:反相放大器
409b:反相放大器
409c:反相放大器
420a:增益
420b:輸出層
450:輸出
500:DEQ網路
501:輸入
503:運算結構
504:輸出層
509:根
511:輸出層
600:運算結構
601:輸入
603:列
607:行
609:感測放大器
611:元素
612:列驅動器
702:列驅動器
703:列
709:感測放大器
711:輸出層
713:結構元件
800:運算結構
809:感測放大器
811:輸出層
820:偏差
901:輸入
902:列驅動器
909:感測放大器
910:感測放大器
911:輸出層
1000:DEQ網路
1001:輸入
1002:偏差
1003:運算結構
1005:時間
1007:另一時間延遲
1009:狀態
1011:輸出層
1100:離散時間DEQ網路
1101:輸入
1103:電腦結構
1105:延遲
1107:延遲
1109:經取樣狀態
1111:輸出層
1113:輸出
1203:取樣保持
1207:取樣保持
1211:輸出
1401:輸入
1403:取樣保持電路
1404:時間延遲輸入
1405:求和區塊
1407:第二取樣保持電路
1409:函數
1411:輸出
1501:陣列
1503:列驅動器
1505:行讀出器
1507:重設區塊
1607:重設區塊
1609:字線
1611:位元線
1701:單位胞元
1703:列驅動器
1705:行讀出
1707:重設區塊
2001:字線
2003:位元線
2005:單位胞元
2007:接點連接件或通孔連接件
2009:內部金屬連接件
2101:電壓
2103:單個NMOS電晶體
2107:重設區塊
2109:求和
2201:電壓
2203:三極體區
2301:電壓
2303:參考電壓
2309:求和
2401:電壓
2409:求和
2509:總求和
2703:N乘M陣列
2805:三乘三陣列子區段
3901:輸入
3903:數位至時間轉換器
3905:交叉式網路
3907:時脈產生器
4401:輸入
4403:脈衝產生器
4405:權重值
4601:輸入
4603:脈寬產生器
4607:字線
4620:基於2T胞元之網路
4802:位元線
4803:脈寬調變器
4809:字線
4813:放電相位
4815:同步
4819:時間至數位轉換器(TDC)
SW:開關
[圖1]說明DEQ網路之表示。
[圖2]說明用於DEQ網路之信號流程圖之實施例。
[圖3]說明具有非線性放大器309之簡單的反相電路300之實施例。
[圖4]說明基於反相放大器之多輸入多狀態DEQ模型之實例。
[圖5]說明用運算結構503及輸出層504實施之DEQ網路500。
[圖6]說明運算結構600之實例。
[圖7]為可用於實施DEQ網路之通用運算結構之一個實施例的圖示。
[圖8]說明可如何使用運算結構來利用偏差。
[圖9]說明替代性實施例,其展示併入至運算結構中之輸出層運算之實施例。
[圖10]為連續時間DEQ網路之實例,該連續時間DEQ網路之輸出為當前及先前輸入以及輸出的連續時間函數。
[圖11]為離散時間DEQ網路之實例,該離散時間DEQ網路之輸出為當前及先前輸入以及輸出之離散時間函數。
[圖12]說明不依賴於先前輸入或輸出之DEQ網路的離散時間實施之信號流程圖。
[圖13]說明用於來自圖12之實施例之DEQ離散時間系統的波形。
[圖14]說明具有額外延遲輸入及回饋之DEQ離散時間實施之信號流程圖。
[圖15]說明記憶體內運算MAC區塊之方塊圖。
[圖16]說明陣列之4×4子集,諸如N×M陣列之四乘四子集。
[圖17(a)]至[圖17(g)]說明多種技術,其用於擴展所展示之架構以按比例縮放至更高解析度權重、更高解析度輸入啟動及差動運行。
[圖18(a)]至[圖18(h)]說明展示實例介面電路。
[圖19]說明CMOS半導體製程之實例。
[圖20(a)]至[圖20(e)]說明關於具有字線及位元線之單位胞元的連接與單位胞元中之內部連接之間的實施例之各種實例。
[圖21]說明利用第一實施之基於單個電晶體(1T)ROM之運算單元的實例。
[圖22]說明使用單個電晶體作為單位元件之交替實施。
[圖23]說明使用單個電晶體作為單位元件之替代性實施例。
[圖24]說明利用單個電容器作為單位元件之基於ROM之MAC陣列的實施。
[圖25]說明利用單個電容器作為單位元件之基於ROM之MAC陣列的替代性實施例。
[圖26(a)]至[圖26(b)]說明在單位元件中利用單個電晶體及單個電容器之基於ROM之MAC陣列的實施。
[圖27(a)]至[圖27(b)]說明使用單個電晶體及電容器作為單位元件之交替實施。
[圖28]說明在單位元件中使用兩個電晶體及電容器之實施。
[圖29]說明基於單個電晶體及單個電容器ROM之運算單元之實施例。
[圖30]說明使用單個電阻器作為單位元件之基於ROM之MAC陣列的實施例。
[圖31(a)]至[圖31(d)]針對任意機器學習演算法說明基於IMC之處理器內之運算單元的若干實施例。
[圖32(a)]至[圖32(d)]說明一實施例,其中不同類型的單位胞元交錯且連接至同一位元線。
[圖33(a)]至[圖33(d)]說明組合ROM與RAM兩者之運算單元之實施例。
[圖34(a)]至[圖34(d)]說明3D堆疊的基於ROM之IMC陣列之各種實施例。
[圖35(a)]至[圖35(c)]說明「邊緣」感測裝置之實例。
[圖36]說明藉由交叉式網路實施之類比相乘及加法運算之實施例。
[圖37(a)]至[圖37(b)]說明具有嵌入於記憶體中之經脈寬調變之啟動信號及二元權重的交叉式網路。
[圖38(a)]至[圖38(c)]說明用經脈寬調變之啟動而啟動且用振幅域類比至數位轉換器在振幅域中讀出的基於憶阻器之交叉式網路。
[圖39(a)]至[圖39(c)]說明至點積計算交叉式網路的基於時間之介面。
[圖40(a)]至[圖40(c)]說明至混合信號點積運算硬體之經提議時域介面的功能方塊圖及操作。
[圖41(a)]至[圖41(c)]說明時域多級啟動輸入、多級點積輸出、基於SRAM之記憶體內運算交叉式網路。
[圖42(a)]至[圖42(b)]說明至用於點積計算的交叉式網路之基於SRAM之多級輸入、多級輸出時域介面。
[圖43(a)]至[圖43(b)]說明電荷再劃分架構。
[圖44(a)]至[圖44(b)]說明應用於用於記憶體內運算點積計算之交叉式網路之時域介面方案的基於唯讀記憶體(Read Only Memory;ROM)之實例。
[圖45(a)]至[圖45(b)]說明基於ROM之電荷再分佈時域介面。
[圖46(a)]至[圖46(d)]說明具有時域比例式介面之基於浮動閘極快閃或FeFET之交叉式網路的實例。
[圖47]說明用以利用飽和或子臨限值中之通道電導或電流源來實施交叉式網路之經線性地按比例縮放之權重的電晶體臨限電壓之範圍。
[圖48(a)]至[圖48(b)]說明利用位元線電容及憶阻器導電率之兩相被動放電。
[圖49(a)]至[圖49(b)]說明基於憶阻器之被動放電方法,其具有使用一個比較器之比例式時域點積輸出評估。
39:時間至數位轉換器
3901:輸入
3903:數位至時間轉換器
3905:交叉式網路
3907:時脈產生器
Claims (20)
- 一種被配置以對矩陣乘加計算進行運算之電路,其包含: 一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例並在與一參考時間相關聯之時域中經調變之一信號; 一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收時間調變信號,且輸出回應於該交叉式網路之網路權重及該時間調變信號而按比例縮放之一經加權信號;及 一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號,並使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
- 如請求項1之電路,其中該電路包括與該數位至時間轉換器及該時間至數位轉換器相關聯之一參考時脈。
- 如請求項1之電路,其中該些網路權重包括一或多個電元件,該一或多個電元件被配置以按比例縮放與該數位輸入成比例且在時域中經調變之該信號。
- 如請求項1之電路,其中該電路包括一積分器,該積分器用於回應於該交叉式網路之權重及該時間調變輸入信號而累加按比例縮放之該經加權信號。
- 如請求項1之電路,其中該電路包括一比例式放電路徑,該比例式放電路徑包括一或多個電元件,該一或多個電元件之值係與該交叉式網路中之電權重元件成比例。
- 如請求項1之電路,其中該比例式放電路徑具有至一積分器輸出之一電連接件。
- 如請求項1之電路,其中該電路包括一比較器,該比較器具有至一積分器輸出之一電連接件。
- 如請求項1之電路,其中該電路包括被配置以驅動該時間至數位轉換器之一比較器輸出。
- 如請求項1之電路,其中該電路被配置以執行一個二步驟操作,該二步驟操作包括一第一累加步驟,該第一累加步驟包括用於一第二步驟參考放電階段之一初始條件。
- 如請求項1之電路,其中該電路被配置以藉由該時間至數位轉換器來觸發時間量測之一開始,其中時間量測之該開始係與比例式放電操作之一開始同步。
- 如請求項1之電路,其中該電路被配置以回應於一比較器而藉由該時間至數位轉換器來觸發時間量測之一停止,其中時間量測之該停止係與一比例式放電階段之一結束同步。
- 一種被配置以對矩陣乘加計算進行運算之電路,其包含: 一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例並在與一參考時間相關聯之時域中經調變之一信號; 一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收一時間調變信號,且輸出按該交叉式網路之網路權重及該時間調變輸入信號而按比例縮放之一經加權信號,其中該些網路權重位於該交叉式網路之一或多個位元線或字線上;及 一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號,並使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
- 如請求項12之電路,其中該數位至時間轉換器及該時間至數位轉換器被配置成同步化以抵消該經加權輸出信號中之一時脈參考變化。
- 如請求項12之電路,其中該電路被配置以包括:一比例式放電路徑,其被配置以經由一參考電流或一參考電荷再分佈電路將電荷排放至參考電壓;及一比較器,其被配置以觸發該時間至數位轉換器。
- 如請求項12之電路,其中該電路包括一比較器,該比較器經配置以與該交叉式網路之累加及放電操作同步地觸發該時間至數位轉換器。
- 如請求項12之電路,其中該些網路權重包括一或多個SRAM記憶體元件或一或多個ROM記憶體元件或SRAM和ROM之組合或一或多個快閃記憶體元件或一或多個電阻式記憶體元件。
- 如請求項12之電路,其中該些網路權重包括用於累加與多個輸入脈衝成比例之經加權電荷之電晶體及單位胞元電容器元件,及使用相同的單位胞元電容器以對累加電荷進行放電之一比例式放電路徑。
- 如請求項12之電路,其中該電路包括至該交叉式網路之一時域比例式介面,其中該交叉式網路包括使用單端型或平衡型電流源之平衡型或單端型電流積分,該些單端型或平衡型電流源具有或不具有用於經加權累加之記憶體元件及用以對一累加電荷進行放電之具有匹配的平衡型電流源之比例式放電路徑。
- 一種被配置以對矩陣乘加計算進行運算之電路,其包含: 一數位至時間轉換器,其被配置以接收一數位輸入且輸出與該數位輸入成比例並在與一參考時間相關聯之時域中經調變之一信號; 一記憶體,其包括一交叉式網路,其中該記憶體被配置以自該數位至時間轉換器接收一時間調變信號,且輸出按該交叉式網路之網路權重及該時間調變輸入信號而按比例縮放之一經加權信號,其中該些網路權重係回應於被配置為可程式化權重之非揮發性記憶體(NVM)而調整;及 一輸出介面,其與該交叉式網路通信且被配置以接收經加權輸出信號,並使用一時間至數位轉換器來輸出至少與該參考時間成比例之一數位值。
- 如請求項19之電路,其中該交叉式網路包括導電率或電阻,該導電率或該電阻具有或不具有記憶體元件以及相同類型導電率之比例式放電路徑,該些記憶體元件被配置以形成充電或放電時間常數或用於對位元線積分器進行充電之單端型或平衡型電流。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/940,124 US20220027130A1 (en) | 2020-07-27 | 2020-07-27 | Time domain ratiometric readout interfaces for analog mixed-signal in memory compute crossbar networks |
US16/940,124 | 2020-07-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202205113A true TW202205113A (zh) | 2022-02-01 |
Family
ID=79179499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110127274A TW202205113A (zh) | 2020-07-27 | 2021-07-26 | 用於記憶體運算交叉式網路中的類比混合信號之時域比例式讀出介面 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220027130A1 (zh) |
CN (1) | CN113990371A (zh) |
DE (1) | DE102021207661A1 (zh) |
TW (1) | TW202205113A (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210125049A1 (en) * | 2019-10-29 | 2021-04-29 | Taiwan Semiconductor Manufacturing Co., Ltd. | System for executing neural network |
KR20230070753A (ko) * | 2021-11-15 | 2023-05-23 | 삼성전자주식회사 | 디지털 펄스 기반 크로스바 연산을 수행하는 연산 장치 및 그 동작 방법 |
US11823740B2 (en) * | 2021-12-08 | 2023-11-21 | International Business Machines Corporation | Selective application of multiple pulse durations to crossbar arrays |
FR3140454A1 (fr) * | 2022-09-30 | 2024-04-05 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Circuit de traitement logique de données intégré dans un circuit de stockage de données |
EP4358087A1 (de) | 2022-10-20 | 2024-04-24 | Semron GmbH | Anordnung einer pulsweiten gesteuerten vektor-matrix multiplikationseinheit mit kapazitiven elementen und verfahren zu dessen ansteuerung |
CN116094882B (zh) * | 2022-11-07 | 2023-09-22 | 南京大学 | 基于模拟存内计算的调制、解调方法及系统 |
DE102022211998A1 (de) | 2022-11-11 | 2024-05-16 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Betreiben einer Speichervorrichtung |
DE102022213371A1 (de) | 2022-12-09 | 2024-06-20 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Betreiben einer Speichervorrichtung und Speichervorrichtung |
CN115688897B (zh) * | 2023-01-03 | 2023-03-31 | 浙江大学杭州国际科创中心 | 低功耗紧凑型Relu激活函数神经元电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048434B2 (en) * | 2018-09-28 | 2021-06-29 | Intel Corporation | Compute in memory circuits with time-to-digital computation |
US10896242B2 (en) * | 2019-03-01 | 2021-01-19 | International Business Machines Corporation | Resistive memory device for matrix-vector multiplications |
JP2021002133A (ja) * | 2019-06-20 | 2021-01-07 | ソニー株式会社 | 演算装置及び積和演算システム |
US11573792B2 (en) * | 2019-09-03 | 2023-02-07 | Samsung Electronics Co., Ltd. | Method and computing device with a multiplier-accumulator circuit |
US11657238B2 (en) * | 2020-01-31 | 2023-05-23 | Qualcomm Incorporated | Low-power compute-in-memory bitcell |
KR20210144417A (ko) * | 2020-05-22 | 2021-11-30 | 삼성전자주식회사 | 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치 |
-
2020
- 2020-07-27 US US16/940,124 patent/US20220027130A1/en active Pending
-
2021
- 2021-07-19 DE DE102021207661.0A patent/DE102021207661A1/de active Pending
- 2021-07-26 CN CN202110843713.4A patent/CN113990371A/zh active Pending
- 2021-07-26 TW TW110127274A patent/TW202205113A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN113990371A (zh) | 2022-01-28 |
US20220027130A1 (en) | 2022-01-27 |
DE102021207661A1 (de) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202205113A (zh) | 用於記憶體運算交叉式網路中的類比混合信號之時域比例式讀出介面 | |
TW202205295A (zh) | 用於類比矩陣操作的唯讀記憶體架構 | |
US11847560B2 (en) | Hardware compute fabrics for deep equilibrium models | |
Jaiswal et al. | 8T SRAM cell as a multibit dot-product engine for beyond von Neumann computing | |
US11842770B2 (en) | Circuit methodology for highly linear and symmetric resistive processing unit | |
CN110352436B (zh) | 用于神经网络训练的具有迟滞更新的电阻处理单元 | |
TWI766799B (zh) | 基於電流積分的存內脈衝神經網路 | |
US10453527B1 (en) | In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture | |
US20190318239A1 (en) | Resistive processing unit architecture with separate weight update and inference circuitry | |
Mu et al. | SRAM-based in-memory computing macro featuring voltage-mode accumulator and row-by-row ADC for processing neural networks | |
Wan et al. | Edge AI without compromise: efficient, versatile and accurate neurocomputing in resistive random-access memory | |
Lepri et al. | In-memory computing for machine learning and deep learning | |
Roy et al. | Fundamental limits on the computational accuracy of resistive crossbar-based in-memory architectures | |
CN116601710A (zh) | 用于模拟电阻交叉阵列中的不同操作的读出电路的动态配置 | |
Wei et al. | Neuromorphic computing systems with emerging devices | |
Correll et al. | Analog Computation with RRAM and Supporting Circuits | |
Dorzhigulov et al. | Spiking CMOS-NVM mixed-signal neuromorphic ConvNet with circuit-and training-optimized temporal subsampling | |
Numan | Integrated Circuit Blocks for In-Memory Computing | |
Du et al. | A Memristive Neural Network Computing Engine using CMOS-Compatible Charge-Trap-Transistor (CTT) | |
Amer | Analog Mixed Signal Circuits Design with Emerging Technologies for AI and Edge Computing: From New Devices to New System Architectures | |
Chen | Design of resistive synaptic devices and array architectures for neuromorphic computing | |
Song et al. | A Ta2O5/ZnO Synaptic SE-FET for supervised learning in a crossbar | |
Correll | Analog In-Memory Computing on Non-Volatile Crossbar Arrays | |
Dong et al. | Rectified-linear and recurrent neural networks built with spin devices | |
Zurla et al. | Designing Circuits for AiMC Based on Non-Volatile Memories: a Tutorial Brief on Trade-offs and Strategies for ADCs and DACs Co-design |