TWI768479B - 數位類比轉換方法與向量矩陣乘法設備 - Google Patents
數位類比轉換方法與向量矩陣乘法設備 Download PDFInfo
- Publication number
- TWI768479B TWI768479B TW109133289A TW109133289A TWI768479B TW I768479 B TWI768479 B TW I768479B TW 109133289 A TW109133289 A TW 109133289A TW 109133289 A TW109133289 A TW 109133289A TW I768479 B TWI768479 B TW I768479B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- vector
- analog
- digital
- msb
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
- H03M1/38—Analogue value compared with reference values sequentially only, e.g. successive approximation type
- H03M1/46—Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter
- H03M1/466—Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter using switched capacitors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/66—Digital/analogue converters
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
用於執行循序漸進向量矩陣乘法的各種佈置可以包括:對輸入向量中的值的每個位元順序依次執行第一向量矩陣乘法運算。每個位元順序的第一向量矩陣乘法運算可以生成類比輸出。對於由向量矩陣乘法運算生成的每個類比輸出,可以將類比輸出轉換為一個或多個數位位元值,並且可以將一個或多個數位位元值發送到第二向量矩陣乘法運算。
Description
對相關申請案的交互參照:本申請案主張對於申請於2019年9月27日的美國臨時申請案第62/907,419號的優先權,並主張對於申請於2019年11月19日的美國專利申請案第16/688,782號的優先權,在此仰賴且併入此等美國申請案之內容以作為參考。
本揭示內容總體上涉及用於乘法器-累加器操作的向量矩陣乘法電路。本揭示內容特別針對用於依次執行向量矩陣乘法運算,以根據類比結果循序漸進地生成數位輸出的電路。
向量矩陣乘法運算可以定義為向量與矩陣的乘積之和。具體來說,等式1可用於定義一個其中乘積相加的向量矩陣乘法運算。
在等式1中,X i 是由值組成的輸入向量(可以在電子環境中使用二進制位元表示),而W ij 表示矩陣加權值。Y是藉由對乘積向量求和而獲得的輸出向量。此功能在各種
信號處理,圖像處理和人工智能應用中都有應用,例如在神經網路的使用中。
當以數位方式執行此等式時,會消耗大量的處理資源和/或能量。習知的類比部件或數位和類比混合部件,可能需要相對大量的時脈週期和/或相對較大的空間面積來實施。
在一些具體實施例中,一種用於執行循序漸進二進制加權的數位類比轉換的方法可以包括:對輸入向量中的值的每個位元順序依次執行第一向量矩陣乘法運算,其中對每個位元順序的第一向量矩陣乘法運算可生成類比輸出。方法亦可包含:對於由向量矩陣乘法運算生成的每個類比輸出,將類比輸出轉換為一個或多個數位位元值,並且可以將一個或多個數位位元值發送到第二向量矩陣乘法運算。
在一些具體實施例中,向量矩陣乘法器電路可包括複數個數位輸入,其中每個數位輸入可以接收輸入向量的二進制編碼的輸入值。電路亦可包含向量矩陣乘法器電路,向量矩陣乘法器電路使用二進制編碼的輸入值一次對單個位元順序執行二進制編碼的向量乘法運算。電路可以進一步包括:循序漸進二進制加權類比數位轉換器,循序漸進二進制加權類比數位轉換器依次從向量矩陣乘法器電路接收類比輸出,並將類比輸出中的每一個依次轉換為一個或多個數位位元值。
在一些具體實施例中,用於執行向量矩陣乘法的設備可包括:接收構件,用於接收複數個數位輸入,其中每個數位輸入可接收輸入向量的二進制編碼的輸入值。設備亦可包含依次執行構件,用於對複數個輸入向量值中的每個位元順序依次執行向量矩陣乘法運算,其中對每個位元順序的向量矩陣乘法運算可生成類比輸出。設備可進一步包含:轉換構件,用於將類比輸出中的每個類比輸出轉換為一個或多個數位位元值。
在任何具體實施例中,以下特徵中的任何一個或全部可以以任何組合被包括並且沒有限制。第一向量矩陣乘法運算可以輸入向量中的每個值的最高有效位元(MSB)開始,且可以輸入向量中的每個值的最低有效位元(LSB)結束而執行。將類比輸出轉換成一個或多個數位位元值可包含:將類比輸出與參考信號進行比較,其中當類比輸出大於參考信號時一個或多個數位位元值中的第一數位位元值可表示邏輯1,並且當類比輸出小於參考信號時第一數位位元值可表示邏輯0。將類比輸出轉換成一個或多個數位位元值可包含:當第一數位位元值表示邏輯1時調整參考信號。類比輸出可對應於輸入向量中每個值的MSB,且一個或多個數位位元值可包括第一數位位元值而沒有進位位元。將類比輸出轉換成一個或多個數位位元值可進一步包含:在調整參考信號之後將類比輸出與參考信號進行比較,其中當類比輸出大於參考信號時一個或多個數位位元值中的第二數位位元值可表示邏輯1,並且當類比輸出小於
參考信號時第二數位位元值可表示邏輯0。第一數位位元值可表示對應於當前類比輸出的值,且第二數位位元值可表示將被加到對應於先前類比輸出的值的進位值。將類比輸出轉換成一個或多個數位位元值可進一步包含:當第一數位位元值表示邏輯0時保持參考信號。將類比輸出轉換成一個或多個數位位元值可進一步包含:在調整參考信號之後將類比輸出與參考信號進行比較,其中當類比輸出大於參考信號時一個或多個數位位元值中的第二數位位元值可表示邏輯1,並且當類比輸出小於參考信號時第二數位位元值可表示邏輯0。在將類比輸出轉換成一個或多個數位位元值與將一個或多個數位位元值發送到第二向量矩陣乘法運算之間可存在兩週期延遲。循序漸進二進制加權類比數位轉換器亦可包括帶有電容器的電荷積分電路,每個類比輸出將電荷存儲在電容器上。向量矩陣乘法器電路亦可傳遞當前位元順序的指示。向量矩陣乘法器電路亦可包含多工器,多工器將一個或多個數位位元值發送到複數個暫存器中的一個暫存器,其中對於當前位元順序的指示可控制多工器。循序漸進二進制加權類比數位轉換器亦可包括複數個二進制加權開關和電容器,複數個二進制加權開關和電容器中的每一個儲存類比輸出中的不同的類比輸出。電路/設備可進一步包含循序漸進二進制加權類比數位轉換器,循序漸進二進制加權類比數位轉換器從依次執行向量矩陣乘法運算的依次執行構件依次接收類比輸出,並將類比輸出中的每一個依次轉換為至少一個數位位元值。設備亦可
包含轉換構件,用於將複數個數位輸入轉換為複數個類比信號,複數個類比信號被輸入到依次執行向量矩陣乘法運算的依次執行構件。設備亦可包括將類比輸出與之比較的參考電壓。設備亦可包括用於將參考電壓與模擬輸出進行比較的裝置。
100:電路
110:部分
112-1~112-4:數位輸入信號
114-1~114-4:一位元DAC
116-1~116-4:類比信號
120:部分
122:類比向量矩陣乘法器
124:乘法結果信號
130:部分
132:求和部件
134:總和輸出
200:類比向量矩陣乘法器的具體實施例
201:類比向量矩陣乘法器
202:加權元件
204:加權元件
206:加權元件
208:加權元件
210:加權元件
212:加權元件
214:加權元件
216:加權元件
220:電流輸出
222:電流輸出
300:類比求和電路的具體實施例
301:輸入
302:電容器切換陣列
310:讀出放大器
312:開關
314-1~314-5:開關
316-1~316-4:電容器
320:地
330:開關控制邏輯
410-450:操作
500:電路
502:部分
504:循序漸進二進制加權ADC
506-1~506-4:數位輸出信號
602-0~602-n:位元串流
604:數位輸出
701:操作
704:電荷積分電路
705:比較器
708:多工器
710:電壓參考電路
712:輸出暫存器
714:輸出信號
902:二進制序列控制
905:二進制加權開關和/或電容器
906:TIA
910:二進制加權參考縮放電路
1001:第二MAC單元陣列
1004:第二二進制加權ADC
1102-1106:操作
藉由參考以下附圖可以實現對各種具體實施例的性質和優點的進一步理解。在附加圖式中,類似的組件或特徵可具有相同的元件符號。再者,相同類型的各個部件,可由元件符號之後的字母來分辨,此字母分辨類似的部件。若說明書中僅使用了首個元件符號,則其說明可適用於具有相同的首個元件符號的類似部件之任意者,不論其字尾字母為何。
圖1示出了向量矩陣乘法器電路的具體實施例,其中使用類比分量對位元排序的二進制值執行向量乘法。
圖2示出了類比向量矩陣乘法器的具體實施例。
圖3示出了類比求和電路的具體實施例。
圖4示出了用於執行向量矩陣乘法運算的方法的具體實施例。
圖5示出了其中在二進制編碼的輸入上使用類比部件執行向量乘法的電路的具體實施例。
圖6示出了根據一些具體實施例的如何處理各個位元的輸入流以產生依次輸出位元串流。
圖7示出了根據一些具體實施例的用於生成循序漸進的二進制加權數位輸出的特定處理。
圖8示出了根據一些具體實施例的用於生成循序漸進的二進制加權數位輸出的特定處理。
圖9示出了根據一些具體實施例的用於生成循序漸進的二進制加權數位輸出的替代性處理。
圖10示出了根據一些具體實施例的循序漸進MAC操作的管線,循序漸進MAC操作的管線可以隨著在每一層之間被單獨地處理位元而被連續地分層和執行。
圖11示出了根據一些具體實施例的用於執行循序漸進的二進制加權的數位類比轉換的方法的流程圖。
與習知的類比具體實施例相比,本文詳述的具體實施例允許在較短的時間量(例如,較少的時脈週期)內執行乘法累加器(MAC)運算,並且不需要對數位輸入信號進行解碼。相反的,可以接收二進制編碼(或「位元排序」)值形式的輸入向量。這樣的值通常從LSB到MSB或MSB到LSB排列(例如,「1110」,代表值14),並且可以在類比域中相乘,然後在類比或數位域中相加。本文詳細描述的佈置直接在二進制編碼值的類比轉換上執行,並且不需要將輸入向量轉換為一系列脈衝(例如,十四個脈衝代表值14)。因此,可以比習知的類比裝置更快地執行計算。更具體地說,可以將執行向量矩陣乘法的運算週期數減少倍。在此等式中,分母中指示的其他2個週期
可以隨實現方式而變化。例如,本文詳述的具體實施例可以對8位元輸入向量執行向量矩陣乘法,與習知的類比MAC設計相比,其可以被加速25.6倍。
此外,與習知的類比MAC設計相比,本文詳述的佈置可以節省大量空間。藉由使用一位元數模轉換器(DAC),與使用轉換並行接收的二進制值的多位元DAC相比,可能需要的面積更少。特定而言,多個一位元DAC可以用於將二進制編碼的輸入向量並行轉換為二進制編碼的類比電壓值。例如,對於四位元輸入向量,可能需要四個時脈週期以從一位元DAC輸出二進制編碼的類比電壓值(一個週期用於LSB、一個週期用於第二LSB、一個週期用於第二MSB、一個週期對於MSB)。一位元DAC的數量可能取決於輸入向量的數量(等式1中的X i )。
可以一次對輸入向量值的每個位元順序依次執行矩陣乘法運算。每個一位元DAC的並行輸出可以被輸入到向量矩陣乘法器電路的加權組件。向量矩陣乘法器電路可以具有各種加權分量,其對應於與X i 相乘的等式1的W ij 矩陣。向量矩陣乘法器電路可以對輸入向量的每個位元順序執行乘法運算。因此,如果輸入向量包含長度為四個位元的值,則向量矩陣乘法器電路可以在時域中依次對四個位元順序中的每個位元順序執行乘法運算。來自向量矩陣乘法器電路的輸出可以是被輸出到求和電路的依次信號(例如,具有指示乘法結果的電流或一些電特性的信號)。
在已經執行矩陣乘法運算之後,求和電路可以用於執行位元順序加權求和。求和電路可以在類比或數位域中起作用。求和電路可以從向量矩陣乘法電路接收信號,存儲對每個矩陣乘法運算的指示以使其對適當的位元順序進行加權,並且進行求和以決定輸出值Y。
圖1示出了電路100的具體實施例,其中在二進制編碼的輸入上使用類比部件執行向量乘法。電路100可以包括:一位元DAC 114;以及類比向量矩陣乘法器122;和求和部件132。電路100可以理解為分為三個部分。部分110接收二進制編碼的數位信號(代表輸入向量),並將二進制編碼的數位信號轉換成二進制編碼的類比信號。部分120接收二進制編碼的類比信號,並輸出指示二進制編碼的類比信號與預定義矩陣(例如,加權矩陣)之間的乘法的二進制編碼的乘積。部分130執行位元順序加權求和以對二進制編碼的乘積求和,並考慮二進制編碼信號的位元順序加權。因此,二進制編碼的輸入信號的每個位元的適當位元順序被保持,使得可以適當地決定總和。部分130可以使用類比部件來有效地求和部分120的乘積輸出。部分130也可以在數位域中起作用。
特定而言,在部分110中,可以並行接收多個數位輸入信號112。數位輸入信號112表示二進制編碼值,數位輸入信號112的每個數位輸入信號可以表示等式1的向量X i 的值。輸入信號112的二進制位元可以由電壓位準(例如,高位準為1,低位準為0)、脈衝(例如,一個脈衝為
1,無脈衝為0)或時間(例如,第一持續時間的脈衝表示1、第二持續時間的脈衝表示0)。如圖所示,可以並行接收四個數位輸入信號(112-1、112-2、112-3和112-4)。這些輸入信號中的每一個可以接收輸入向量的單獨的值。在其他具體實施例中,可以接收比圖1具體示出的更少或更多數量的數位輸入信號。每個數位輸入信號112可以是二進制編碼的。因此,對於電路的數位部分的每個時脈週期,可以接收用於特定位元順序的位元作為數位輸入信號112。例如,如果經由每個數位輸入信號112輸入四位元二進制值,則可以對要接收且並行轉換為類比域的二進制值的每一位元使用四個時脈週期。數位輸入信號112可以被二進制編碼,使得每個值的位元順序是從最低有效位元(LSB)到最高有效位元(MSB)、從MSB到LSB、或者以任意的預定模式。
數位輸入信號112可以被輸入到一位元DAC 114。再次說明,如圖所示,存在四個一位元DAC 114(114-1、114-2、114-3和114-4)。在其他具體實施例中,可以存在更少或更多數量的一位元DAC 114。對於每個二進制編碼的數位輸入信號112,可以存在單個一位元DAC。每個一位元DAC 114可以輸出指示接收到的數位值的類比信號。因此,二進制編碼的類比信號116(116-1、116-2、116-3、116-4)可以表示數位輸入信號112的類比轉換。
在部分120中,類比向量矩陣乘法器122可以接收二進制編碼的類比信號116。類比向量矩陣乘法器122可以對輸入值的每個位元順序(例如,用於LSB的第一時脈週期、用於第二LSB的第二時脈週期、用於第二MSB的第三時脈週期等)依次執行乘法運算。因此,可以對接收到的二進制編碼的類比信號116的每個位元順序執行單獨的乘法運算。下面連同圖2提供關於類比向量矩陣乘法器122的可能具體實施例的更多細節。二進制編碼的乘法結果信號124可以輸出到求和部件132。
求和部件132可以理解為執行位元順序加權求和功能。求和部件132可以適當地考慮當前由類比向量矩陣乘法器122評估的位元的位元順序,存儲輸出以使得此位元順序被考慮,並且執行求和功能。如本文中所詳述,可由求和組件132執行位元順序加權,從而在由向量矩陣乘法電路評估時允許輸入值保持二進制編碼。
在求和電路的可能的類比具體實施例中,電荷積累和再分配可以用於執行被動位元順序加權求和。當從類比向量矩陣乘法器122接收到二進制編碼的信號時,求和部件132可以使用電荷累積來累積部分求和。一旦所有位元順序(例如,具有四個位值的輸入向量的四個位元順序)已由類比向量矩陣乘法器122相乘,並且求和部件132已存儲部分求和,例如使用電荷累積,就可以重新分配電荷並且可以輸出代表最終求和值的電壓。下面在圖3中給出關於
求和部件132的類比實施方式的可能具體實施例的進一步細節。
圖2示出了類比向量矩陣乘法器的具體實施例200,其評估已經被轉換為類比的輸入向量的單個位元順序。類比向量矩陣乘法器201可以代表圖1的類比向量矩陣乘法器122的具體實施例。然而,應當理解,具體實施例200僅是示例。在圖2中,二進制向量輸入X i 將與W ij 相乘。類比向量矩陣乘法器201可以包括多個加權元件(202、204、206、208、210、212、214和216)。每個加權元件可以從一位元DAC接收二進制編碼的類比信號116的二進制編碼的類比信號。在此示例中,加權元件可以基於其接收的二進制編碼的類比信號的電壓和特定加權元件的加權值來輸出電流。例如,每個加權元件可以使用各種電導來實現。藉由改變加權部件的電導,可以改變取決於輸入電壓的電流輸出量。例如,如果電壓為1V,加權模塊的電導為8μS,則可獲得8μA的輸出。可以進一步基於此值的位元順序對此值進行加權。因此,對於最低有效位元,乘數將為1,對於第二個LSB,乘數將為2,依此類推。在一些具體實施例中,每個加權元件所使用的加權可以是預定的並且在製造時固定。在其他具體實施例中,每個加權元件的加權可以在製造之後可配置,並且在具體實施例200的使用期間可重新配置。
每個加權元件(202、204、206、208、210、212、214和216)的輸出可以是電特性,例如電流。從連
接到相同電流輸出的加權元件輸出的電流可以被求和。因此,電流輸出220可以包括加權元件202、204、206和208所輸出的電流的總和;以及電流輸出222可以包括加權元件210、212、214和216輸出的電流之和。
一次評估輸入向量每個值的一位元(並且類比向量矩陣乘法器201不考慮位元順序)。例如,對於具有四個四位元值的輸入向量,可以首先評估每個值的MSB,然後評估每個值的第二MSB,然後評估第二LSB,最後評估每個值的LSB(因此對應於由一位元DAC輸出的二進制編碼資料的四個時脈週期)。在其他具體實施例中,評估可以從LSB到MSB或以任何其他預定義的任意順序進行。如本文稍後所詳述,類比向量矩陣乘法器201的輸出可以由求和電路加權,以考慮向量矩陣乘法器正對其執行乘法運算的位元的位元順序。
加權元件的行數是任意的,並且可以基於與輸入向量相乘的加權矩陣。因此,儘管在具體實施例200中存在兩個行,但是在其他元件中可以存在更少或更多的行。加權元件的列數可以對應於輸入向量中存在的值的數。例如,等式2可以表示類比向量矩陣乘法器201的電流輸出:
繼續此示例,電流輸出(例如電流輸出220、222)可以連接在一起以創建二進制編碼的乘法結果信號124。
求和部件132適當地加權、存儲、然後將每個位元順序求和以獲得正確的最終求和。
圖3示出了類比求和電路的具體實施例300。應當理解,可以使用各種不同類型的電路來累加和重新分配信號,這些信號的形式可以是電壓、電流、電荷或某些其他電特性。類比求和電路的一個關鍵態樣是,它對類比向量矩陣乘法器201的接收到的輸出應用了適當的位元加權。例如,當由類比向量矩陣乘法器201輸出與輸入向量的第二LSB相對應的輸出時,類比求和電路施加的位元加權是LSB的兩倍,並且是第三LSB的一半。具體實施例300可以表示圖1的求和部件132。輸入301代表來自類比向量矩陣乘法器的二進制編碼乘法結果信號124。輸入301饋送到讀出放大器310。讀出放大器310根據讀出放大器310在輸入301上接收的電流輸出電壓。特定而言,具體實施例300可以使用被動電荷共享和重新分配。這樣的佈置可以幫助減少功率消耗並且減小熱雜訊對輸出值的影響。
具體實施例300包括電容器切換陣列302。電容器可以按位元順序加權,這意味著可以選擇每個電容器的電容來被動存儲針對特定位元順序加權的電荷量。例如,要輸出一個四位元值,需要使用四個電容器。電容器316-1可用於存儲對應於LSB的電荷。因此,電容器316-1可以具有C的電容(其中C是單位值)。電容器316-2可用於存儲與第二LSB相對應的電荷。因此,電容器316-2可以具有2C的電容(其代表加權為C的兩倍,因此對應於二進制
位元順序的第二LSB)。電容器316-3可用於存儲與第二MSB相對應的電荷。因此,電容器316-3可以具有4C的電容。電容器316-4可用於存儲對應於MSB的電荷。因此,電容器316-4可以具有8C的電容。每個電容器都有一個與位元順序相對應的電容,電容將用於存儲表示類比向量矩陣乘法器輸出的電荷。可以根據等式3計算電容,其中C為單位值,N為輸入向量值中的位元數。
電容=2 N-1 C 等式3
開關控制邏輯330可以是數位的,並與部分110具有相同的時脈,它可以控制開關312、314-1、314-2、314-3、314-4和314-5是斷開還是閉合。為了簡單起見,在圖3中,未示出開關控制邏輯330與開關312和314之間的通信。開關控制邏輯330可以是專用邏輯電路,或者可以合併為處理系統的一部分。開關控制邏輯330可以最初閉合開關314-1、314-2、314-3、314-4和314-5,而開關312斷開。開關314-5可以用作重置,使電容器316-1、316-2、316-3和316-4中存在的電荷放電到地320。
開關控制邏輯330然後可以控制開關,以使具有與由類比向量矩陣乘法器122評估的當前位元順序相關的電容的電容器連接到二進制編碼的乘法結果信號124。開關控制邏輯330可以閉合開關312並且斷開開關314-2、314-3、314-4和314-5。因此,僅開關314-1可以保持
閉合,從而將電容器316-1連接到讀出放大器310的輸出。在此時脈週期期間,類比向量矩陣乘法器122可以輸出與LSB相對應的二進制編碼的乘法結果信號。對於下一個時脈週期,開關控制邏輯330可以保持開關312閉合,斷開開關314-1以及閉合開關314-2。在此時脈週期期間,類比向量矩陣乘法器122可以輸出與第二LSB相對應的二進制編碼的乘法結果信號。由於電容器316-2的電容是電容器316-1的兩倍,因此適當的位元加權被被動地施加到所存儲的電荷量中。對於下一個時脈週期,開關控制邏輯330可以保持開關312閉合,斷開開關314-2和閉合開關314-3。在此時脈週期期間,類比向量矩陣乘法器122可以輸出對應於第二MSB的二進制編碼的乘法結果信號。由於電容器316-3的電容是電容器316-2的兩倍,因此適當的位元加權被被動地施加到所存儲的電荷量中。對於下一個時脈週期,開關控制邏輯330可以保持開關312閉合,斷開開關314-3和閉合開關314-4。在此時脈週期期間,類比向量矩陣乘法器122可以輸出對應於MSB的二進制編碼的乘法結果信號。由於電容器316-4的電容是電容器316-3的兩倍,因此適當的位元加權被被動地施加到所存儲的電荷量中。在這一階段,開關電容器開關陣列302將二進制編碼的乘法結果作為電荷分別存儲在位元順序加權電容器中。
此時,電容器316-1、216-2、316-3和316-4中的每一個存儲與電容器的特定位元順序相對應的電荷量
(Q)。對於給定的位元順序數N,可以藉由等式4定義存儲在特定電容器上的電荷量。
Q=2 N-1*C*V 等式4
因此,電荷量等於電容器的電容乘以讀出放大器310輸出的電壓。如關於等式3所詳細描述的,對於每個更大的位元順序,電容增加了2N-1倍。
在下一個時脈週期期間,開關控制邏輯330可以斷開開關312,保持開關314-5斷開,並且閉合開關314-1、314-2、314-3和314-4。此步驟可以理解為電荷重分配步驟。由於每個電容器存儲的電荷量與其位元順序相對應,因此在電荷重分配階段,每個電容器中的電荷都會分配到電容器316-1、316-2、316-2和316-3之間,這並指示最終總和。一旦發生重分配,總和就被表示為電容器316頂板上的電壓值,此電壓值經由總和輸出134輸出。等式5表示基於存儲在每個電容器中的電荷經由求和輸出134輸出的電壓值。
在等式5中,每個電容器的電荷基於電容器的相關聯的位元順序向V Out 貢獻適當的加權量,作為求和輸出134,其表示類比向量矩陣乘法的最終加權和。
總的來說,當輸入向量包括四位元值時,求和過程可能需要六個時脈週期,直到輸出有效的求和輸出
134。概括地說,求和過程可能需要重置時脈週期、重分配時脈週期以及對於該值的每個位元的時脈週期。
儘管圖3示出了四個電容器,但是應當理解,此具體實施例僅用於示例目的。可以增加或減少電容器的數量,以適應輸入向量值的不同位元數。在替代具體實施例中,可以實現差動求和電路,以便可以從求和輸出134中消除共模干擾。此外,其他具體實施例可以使用替代的被動類比部件來存儲和求和電荷以決定求和輸出134。在其他具體實施例中,可使用數位電路來實現求和電路。
可以使用圖1至圖3中詳述的系統和電路來執行各種方法。圖4示出了用於執行向量矩陣乘法運算的方法400的具體實施例。可以使用圖1至圖3的電路或此類電路的替代版本來執行方法400。換言之,應該理解的是,諸如圖2至圖3中的那些電路的具體示例是圖1的電路如何進行和圖4的方法如何實現的示例。在一些具體實施例中,可以使用數位求和電路。
在框410,可以將二進制編碼的信號的位元順序轉換為二進制編碼的類比信號。為了執行此功能,可以並行使用多個1位元DAC。因此,每個DAC可以並行將給定位元順序的數位信號轉換為類比信號。每個DAC可以接收二進制編碼的數位信號,數位信號指示輸入向量的特定位元順序。每個向量可以具有N個位元。因此,對於一位元DAC而言,將二進制編碼的數位信號轉換為類比信號可能需要N個時脈週期。例如,如果二進制編碼的數位信號為
「10011」,則一位元DAC可能需要五個時脈週期才能輸出此二進制編碼的值(假設最右邊的數位是LSB則代表19的值)。每個一位元DAC輸出的類比電壓可以取決於提供給每個一位元DAC的功率電壓。
在框420處,針對所接收的二進制編碼的類比信號的位元順序依次執行向量矩陣乘法。可以針對從一位元DAC接收的輸入向量的特定位元順序執行框420。換言之,可以首先對輸入向量的值的每個LSB執行框420(然後,在框420的下一次迭代期間,可以評估第二LSB)。通常,所評估的第一位元將是輸入向量的值的MSB或LSB。向量矩陣乘法可以由類似於圖2的具體實施例200的電路執行。應當理解,類比乘法電路的其他具體實施例也是可能的。向量矩陣乘法乘法器可以包括加權部件,每個加權部件引起指示類比輸入值和加權的乘積的電流的加權量。這樣的電流或一些其他電特性可以被輸出到求和電路。
在框430處,對於在框420處向量矩陣乘法器對其執行乘法功能的給定位元順序,可以以適當的位元順序權重來存儲向量矩陣乘法器的輸出(其可以是電流或電壓的形式)。根據類比向量矩陣乘法器評估並存儲的位元的位元順序對接收信號的指示進行加權。例如,如果藉由類比向量矩陣乘法器進行的評估是從LSB到MSB進行的,則當由求和電路存儲時,與前一個位元相比,每個後繼位元的權重可以加倍。僅作為示例,讀出放大器可以將從類比向量矩陣乘法器接收的電流轉換為電壓。在求和電路的一
些示例中,電壓可以用於對具有與執行框420的位元順序相對應的電容的特定電容器充電。因此,例如,當評估LSB時,類比矩陣乘法器的輸出可用於為電容C充電;當評估第二LSB時,類比矩陣乘法器的輸出可用於為電容為2C的電容器充電,依此類推。
在框435處,如果尚未評估額外的位元順序,則方法400可返回到框410且針對輸入向量的下一位元順序執行。因此,每個位元順序由類比向量矩陣乘法器依次評估,並且相應的輸出由求和電路依次存儲,其權重對應於其位元順序。如果在框420處已經對所有位元順序執行了乘法運算並且在框430處存儲了乘法運算,則方法400可以前進至框440。因此,如果輸入向量的每個值具有四個位元,則框420和430被執行四次:對於值的每個位元一次。
在框440處,可諸如藉由執行累加來決定求和。在一些具體實施例中,求和是在類比域中決定的。可以將在框430處存儲的各種位元順序加權值相加在一起。僅作為示例,如果使用開關電容器陣列,則電容器的電荷可以在用於累積總電荷的電容器之間重分配,並藉助於與特定位元順序相對應的每個電容器的電容值進行位元加權。為此,可以斷開開關以隔離開關電容器陣列,並且可以將直接連接到電容器的所有開關(例如,圖3的314-1、314-2、314-3和314-4)設置為閉合。每個電容器的電荷可以在電容器的領域之間重分配。但是,由於電容器之間的電容差異,電荷總量將保持恆定,並按位元順序進行適當加權。
在其他具體實施例中,代替使用電容器陣列,可以使用另一種形式的類比或數位電路來使用每個乘法結果的適當位元順序來決定最終求和。
在框450,輸出求和的指示。在一些具體實施例中,求和的指示被輸出為類比電特性,例如電壓幅度。例如,如圖3所示,電容器陣列的頂板上的電壓可以表示向量矩陣乘法的和。可以測量此電壓,並可以將其用於決定數值。例如,單獨的電路可以使用此輸出電壓(例如ADC)將電壓轉換回數位域。
在一些具體實施例中,一旦二進制加權的MAC操作完成,數位化的MAC結果就可以使用。這些具體實施例可以改進上面在圖1至圖4中描述的位元排序的二進制加權乘法累加器,其中,對於八位元寬的資料輸入,在八個MAC週期和八個SAR ADC週期之後,可獲得MAC數位化的輸出資料。這些具體實施例使MAC資料的MSB在第二週期的末端可用,並且其餘七個MAC輸出位元可以在每個循序漸進週期的末端可用。這將MAC操作的等待時間減少了八倍。
在一些具體實施例中,ADC可以整合在MAC內部。可以從最高有效位元到最低有效位元執行循序漸進的MAC和ADC操作。在每個MAC週期結束時,可能會有一個數位化的MAC資料位元。因為可以立即將資料饋入乘法累加器的下一層,所以減少了位元排序的二進制加權乘法
累加器的潛時。這縮短了每個層的潛時。藉由直接將資料饋送到下一層,無需從MAC陣列和處理器單元來回傳輸資料,這可以節省功耗並減少延遲。
在一些具體實施例中,可以從最高有效位元到最低有效位元來執行MAC。因此,整合的ADC和MAC也可以從最高有效位元到最低有效位元工作。可能會有涉及殘留的類比資料的難題,這些殘留的類比資料在較高的位元上沒有被數位化,而這些殘留的類比資料可在最低有效位元上變成殘留位元。由於首先輸出MAC最高有效位元,因此可以消除此殘留問題,因為不應將進位位元(carry-over bits)加回到最高有效位元。一些具體實施例藉由在每個MAC週期的末尾產生兩個MAC輸出位元來解決該問題。一個位元可表示進位位元,一個位元可表示當前位元。進位位元可能與一個更高的有效位元具有相同的二進制權重。以此方式,不需要將進位位元上移到更高的位元。每個二進制位元的MAC資料然後可以由兩個MAC資料輸出表示。一個可能是來自下一個MAC週期的進位,另一個可能是當前MAC週期的當前位元。下一個MAC層可以接收分配了適當權重的兩個資料位元。這兩個資料位元可以轉換為三級輸入資料驅動器。如果進位和當前位元均為1,則輸入資料位準可能為2。如果單個MAC資料為1,則輸入資料級別可以為1;如果所有MAC資料都不為1,則輸入資料級別可以為0。
圖5示出了電路500的具體實施例,其中在二進制編碼的輸入上使用類比部件執行向量乘法。電路500類似於圖1中的電路100,區別在於類比向量矩陣乘法器122的輸出被引導到循序漸進的二進制加權ADC 504中。如前述,電路100可以包括:一位元DAC 114;類比向量矩陣乘法器122;和求和部件132。電路100仍可以理解為分為三個部分。部分110可以接收二進制編碼的數位信號,其每個可以表示輸入向量中的值。部分100還可以將二進制編碼的數位信號轉換為二進制編碼的類比信號116。部分120可接收二進制編碼的類比信號116,並輸出指示二進制編碼的類比信號與預定義矩陣(例如,加權矩陣)之間的乘法的二進制編碼的乘積124。當從部分120接收單個位元時,部分502可以依次從部分120接收位元排序的輸出,並且遞增地執行二進制加權的類比數位轉換。在一些具體實施例中,電路500可以使用預定義的位元排序,其中首先接收每個數位輸入信號112的MSB,隨後依次是MSB-1位元,直到LSB。部分502可以依次提供複數個數位輸出信號506,當它們被部分502處理時立即可用。例如,可以輸出表示MSB的複數個數位輸出信號506之一,然後輸出表示MSB-1位元的數位輸出信號506之一,依此類推。
舉例來說,多個數位輸入信號112可以由部分110並行接收。數位輸入信號112可以表示二進制編碼值,並且數位輸入信號112的每個數位輸入信號可以表示等式1的向量X i 的值X i (i=0、1、2,...)。輸入信號112
的二進制位元可以由電壓位準(例如,高位準為1,低位準為0)、脈衝(例如,一個脈衝為1,無脈衝為0)或時間(例如,第一持續時間的脈衝表示1、第二持續時間的脈衝表示0)。如圖所示,並行接收四個數位輸入信號(112-1、112-2、112-3和112-4)。這些輸入信號中的每一個接收輸入向量的單獨值。在其他具體實施例中,可以接收更少或更多數量的數位輸入信號。每個數位輸入信號112可以是二進制編碼的。因此,對於電路的數位部分的每個時脈週期,接收用於特定位元順序的位元作為數位輸入信號112。例如,如果經由每個數位輸入信號輸入四位元二進制值,則可以對要接收且並行轉換為類比域的二進制值的每一位元使用四個時脈週期。數位輸入信號112可以被二進制編碼,使得可以從MSB到LSB接收每個值的位元順序。
數位輸入信號112可以被輸入到一位元DAC 114。存在的四個一位元DAC 114(114-1、114-2、114-3和114-4)僅作為示例使用。在其他具體實施例中,可以存在更少或更多數量的一位元DAC 114。例如,其他具體實施例可以使用資料的八位元、16位元、32位元、64位元、128位元和/或類似表示。在本揭示內容中,為了便於說明,可以將四位資料值用作代表示例。但是,下面針對MSB和LSB之間的位元描述的操作可以在值寬度的任何日期進行乘法並重複。無論位數如何,對於每個二進制編碼的數位輸入信號112都可以存在一個一位元DAC。每
個一位元DAC 114可以輸出指示接收到的數位值的類比信號。因此,二進制編碼的類比信號116(116-1、116-2、116-3、116-4)可以表示數位輸入信號112的類比轉換。
在部分120中,類比向量矩陣乘法器122可以接收二進制編碼的類比信號116。類比向量矩陣乘法器122可以對輸入值的每個位元順序(例如,用於MSB的第一時脈週期、用於MSB-1的第二時脈週期、用於MSB-2的第三時脈週期等)依次執行乘法運算。因此,可以對接收到的二進制編碼的類比信號116的每個位元順序執行單獨的乘法運算。上面關於圖2提供了關於類比向量矩陣乘法器122的可能具體實施例的更多細節。
部分502中的循序漸進二進制加權ADC 504可以接收從類比向量矩陣乘法器122輸出的乘法結果信號124。例如,當類比向量矩陣乘法器122處理二進制編碼的類比信號116(以MSB開頭)的每個位元時,結果可以立即傳遞到循序漸進的二進制加權ADC 504。隨後,循序漸進二進制加權ADC 504可以對從類比向量矩陣乘法器122接收到的每個類比位元執行類比數位轉換。這可以導致隨著類比向量矩陣乘法器122處理每個類比位元而提供的增量提供的數位輸出信號506。另外,在由數位輸出信號506表示的每個位元之間,循序漸進二進制加權ADC 504還可以提供可以用於建構結果的最終數位表示的進位位元。
在一些具體實施例中,電路500的部分502還可以包括圖1中的電路100的部分130的全部或部分。例如,
一些具體實施例可以包括電荷積分電路、電荷累積和重分配電路,和/或用於在此階段生成矩陣乘法過程的最終類比結果的求和部件132的其他部分。
圖6示出了根據一些具體實施例的如何處理各個位元的輸入流以產生依次輸出位元串流。等式1中的輸入向量X i 可以被提供為複數個位元串流602(Ip_0...Ip_N)。例如,對於8位元資料表示,可以使用8位元序列表示輸入向量中的每個值。可以對每個位元串流602進行排序,使得首先提供MSB,並且依次將每個較低階的位元向下提供到LSB。在一些具體實施例中,如上所述,位元串流602可以被循序漸進地路由通過1位元DAC。
從位元串流602中的每個位元生成的類比值,可以被一次一個提供給MAC單元陣列601。陣列601可以類似於以上描述的圖2的類比向量矩陣乘法器201。陣列601中的權重值可以代表等式2中的W ij 的矩陣值。如上所述,陣列601可以從位元串流602中的特定位置接收位元,並一起處理這些位元以生成類比輸出,該輸出可以傳遞給二進制加權ADC 504。在一些具體實施例中,陣列601還可提供指示已處理位元的位元位置的值。例如,由陣列601接收的第一位元可以是每個位元串流602的MSB。每個MSB可以轉換為類比值,並與陣列601中的矩陣值相乘。這可以產生從陣列601輸出的類比電流,該類比電流輸出被提供給二進制加權ADC 504。該輸出可以包括8位元資料的索引7處的一位元或MSB(例如,Op_b<7>)。該值可
以描述為用於控制資料路徑中隨後的後續電路元件的輸出。
二進制加權ADC 504可以接收從陣列601提供的每個位元。與圖3的具體實施例相反,這些具體實施例可以一經陣列601處理就開始提供來自二進制加權ADC 504的數位輸出604。例如,這些具體實施例可以在從陣列601提供類比值時對每個類比值分別執行增量類比數位轉換,而不是等待從陣列601提供圖3中的每個電容器上的總和類比值,且隨後對最終類比值執行類比數位轉換。當陣列601處理位元串流602的MSB和來自MSB-1的進位值時,二進制加權ADC 504可以生成數位輸出604的MSB。
在處理了位元串流602中的每個位元之後,二進制加權ADC 504可以提供指示等式1的結果的數位表示的數位輸出。然而,如圖6所示,數位輸出604可以包括用於N位元資料的另外的N-1位元。特定而言,在每個位元值之間,數位輸出604還可以包括進位位元,進位位元表示來自位元串流中要添加到前一位元的下一位元的進位值。例如,數位輸出604可以包括位元7的結果、位元6的結果、要被添加到位元7的結果的位元6的進位結果等等。這可以導致具有用於N位元資料的2N-1位元的數位輸出604。
圖7示出了根據一些具體實施例的用於生成循序漸進的二進制加權數位輸出的特定處理。此特定具體實施例使用電荷積分電路704以便存儲來自乘法矩陣的依次輸出。以下示例再次使用8位元資料值作為示例。但是,可以
複製/刪除用於處理位元6至位元0的原理,以增加/減少用於表示每個資料值的位元數。以下描述將逐步介紹8位元值中每個位元所涉及的過程。
由類比乘法矩陣執行的MAC運算由圖7的左側的操作流程表示。從操作701處的MSB(例如位元7)開始,MAC操作可以從輸入資料值中的每一個輸出與乘法矩陣中的權重相對應的與MSB相乘的電流。來自MAC操作的電流可以被傳遞到電荷積分電路704。電荷積分電路704可以包括電容器,電容器從MAC操作接收電流並且將類比值存儲為電容器上的電荷。電荷積分電路704還可以包括電路,該電路在將電流傳遞到電容器時縮放電流,使得其對應於電流操作的位元位數。例如,當從MAC操作接收到MSB時,電荷積分電路704可以允許將全部電流(未縮放)存儲在電容器上。
接下來,比較器705可以接收電容器上的電壓作為輸入。可以從電壓參考電路710接收另一輸入。最初,可以將電壓參考電路710的輸出設置為在MAC操作的全尺度輸出之間的一半的電壓位準。如果電容器電壓高於參考電壓,則比較器704的輸出將為邏輯1。如果電容器電壓低於參考電壓,則比較器704的輸出將為邏輯0。
如上所述,MAC操作還可以將當前位元值提供給電荷積分電路704作為輸出。當前位元值可用於基於當前位元值將電流縮放到適當的位凖。當前位元值還可以用作多工器708的選擇信號,多工器708將比較器705的輸出路
由到特定暫存器。例如,多工器708可以耦合到複數個輸出暫存器712。當前位元值可以用於選擇與正在處理的當前位元相對應的輸出暫存器712之一。對於MSB,可以選擇「msb<7>bit reg」暫存器,並且比較器705的輸出可以鎖存在該暫存器中。
在當前值被鎖存在對應的暫存器712中時,可以產生輸出信號714,使得處理管線中的後續級可以開始使用那些位元輸出來處理後續的乘法運算。在該階段,可以將「msb<7>bit o/p」(即,最高有效位元7輸出)輸出提供給隨後的循序漸進MAC操作,類似於以上在圖1和圖2中描述的乘法操作。該輸出可以代表當前位元的當前二進制位數,並且可以被稱為數位位元值,或者與正由MAC操作處理的當前位元有關的「第一數位位元值」。
在每個階段,可以調節由參考電壓電路710提供的參考電壓的值。繼續以MSB(位元7)為例,如果比較器705的輸出為邏輯1,則可以為參考電壓電路710提供新的增量DVref7=(1/2)Vref_msb,其中Vref_msb代表用於處理MSB的原始參考電壓。另一方面,如果比較器705的輸出為邏輯0,則參考電壓可以保持為Vref_msb而沒有任何額外的增量。參考電壓可以結合至少兩個元素。一個元素可以代表一個基本參考電壓,並且其值可以由位元級別的位數決定。對於電荷積分具體實施例,這可以在下面的等式5中表示。
在處理完MSB(第7位元)之後,乘法運算可能會輸出下一個最高有效位元或MSB-1(第6位元)的結果。按照上述相同的過程,可以將乘法運算提供的類比值縮放0.5,以反映MSB-1(位元6)的較低位元順序,並且可以將相應的電荷存儲在電荷積分電路704的電容器上。電容器上的所得電壓可以與參考電壓電路710提供的參考電壓一起提供給比較器705。參考電壓電路710提供的信號可以對應於比當前位元位準高一位元的參考電壓。在該示例中,比較器可以如上所述接收由MSB使用的Vref_msb信號位準。
前一週期中比較器705的輸出產生了MSB的數位值。然而,在用於下一MSB-1的第一週期中,比較器705的輸出可以產生進位(例如,co<6>)值。如果電荷積分電路704的電容器上的電壓高於參考電壓電路710提供的參考電壓,則邏輯1可以存儲在「co<6>bit reg」暫存器中。當進位位元是邏輯1時,可以為電壓參考710提供新的增量DVref6c=(1/2)Vref_msb,使得對於下一比較器操作,其變為(3/2)Vref_msb。或者,如果電荷積
分電路704的電容器上的電壓低於參考電壓電路710提供的參考電壓,則邏輯0可以存儲在「co<6>bit reg」暫存器中。此位元表示可以作為以下描述的標準算術運算的一部分添加到MSB<7>的進位位元。
MSB-1位元乘法運算的類比輸出可用於兩種不同的比較操作,一種用於生成MSB-1進位位元(或上述「第二數位位元值」),另一種用於生成MSB-1 MAC操作的MSB-1二進制有效位元(或上述「第一數位位元值」)。
為了生成MSB-1二進制有效位元,比較器可以再次將電容器上的電壓與MSB-1位準的參考位準進行比較,參考位準為Dvref6s+(1/2)Vref_msb,其中DVref6s是所有累加的DVref值之和。對於MSB-1位元,DVref6s=DVref7+DVref6c。如果電容器電壓較高,則位元輸出為1;如果電容器電壓較低,則位元輸出為0。最後,如果位元值為1,則參考位準可以接收DVref6=(1/4)Vref_msb的另一個增量。
在一般意義上,MSB之後的每個位元都可以藉由使用前一個位元的參考電壓來生成一個進位位元。對於MSB之後的任何位元,可使用如上所述的比較器生成第N個進位位元,該比較器使用位元位數級別高一位的參考信號。如果較高有效輸出位元為邏輯1,則比較器參考位準升高DVrefNc,其中N為第N個進位位元,DVrefNc=1/2 M-(N+1) Vref_msb,其中M為Mth=MSB位元,Vref_msb是MSB位元參考位準,N是從第M位元(MSB)
到第0位元(LSB)操作的第N位元。對於每個第N個進位位元,參考位準為VrefNc=VrefNcb+DvrefNcs,其中VrefNcb=1/2 M-(N+1) Vref_msb是第N個進位位元基準參考位準(即,第(N+1)位元基準參考位準),是第N位元之前的升高Vref增量的累積和。
類似地,當前二進制位元位數當前有效二進制的第N位元比較器操作使用參考位準。如果積分電荷位準高於參考位準,並且比較器參考位準升高DVrefN=1/2 M-N+1 Vref_msb,則當前二進制輸出位元為1。對於每個第N位元,參考位準為VrefN=VrefNb+DvrefNs,其中VrefNb=1/2 M-N *Vref_msb是第N位元基本參考位準,的累加和升高的Vref在第N個進位位元之前遞增。可以對直到LSB的序列中的每個位元重複此一般過程。如下所述,每個二進制輸出都具有一個進位位元和一個用於當前位元級位數的通常位元。這兩個位元可以直接饋送MAC操作的後續層。舉例來說,清單A完成了圖7所示的操作,為使用8位元資料的電荷整合具體實施例的圖。
圖8示出了根據一些具體實施例的用於生成循序漸進的二進制加權數位輸出的特定處理。該電路類似於圖7所示的電路。然而,代替使用電荷積分電路704,該電路使用多工器從乘法功能接收不同的輸出。該電路可以從乘法功能中選擇不同的輸出並將其提供給比較器,而不是按
比例縮放乘法功能的類比輸出並將與這些輸出相關的電荷相加到單個積分電容器上。該功能如以上關於圖7所述地操作,除了參考電壓電路710提供的參考電壓可以相應地縮放外。
圖9示出了根據一些具體實施例的用於生成循序漸進的二進制加權數位輸出的替代性處理。具體而言,該電路可以包括跨阻(TIA)或讀出放大器906,以及複數個二進制加權開關和/或電容器905。這可以類似於以上在圖3中示出的佈置。來自乘法功能的類比輸出可以分別存儲在由複數個開關隔開的專用電容器上。可以將二進制序列控制902提供給二進制加權開關和/或電容器905以控制開關,使得乘法函數的類比輸出被存儲在正確的電容器上。
如上所述,MSB可以由比較器705處理一次,並且MSB之後的每個循序漸進位元可以由比較器705處理兩次。MSB可以生成第一數位位元值(例如「msb<7>bit reg」),並且隨後的每個位元可以生成第一數位位元值和第二數位位元值(例如,進位位元)。在每個階段,可以基於對應位元的二進制權重來縮放參考電壓電路710提供的參考電壓。因此,二進制加權參考縮放電路910可以被包括在參考電壓電路710提供的參考電壓的輸出上。可以使用分壓器、電容分壓器和/或選擇性地縮放電壓的任何其他方法來縮放參考電壓電路710提供的參考電壓。
下面的描述詳細描述了用於處理MSB以及8位元資料在MSB之後的每個位元的操作。首先,可以利用TIA
906將MSB位元<7>MAC電流轉換為電壓,並且可以將關聯的MSB電容器905充電到該電壓。比較器705可以將該電壓與MSB參考位準進行比較,該MSB參考位準可以是Vref_msb7=Vref_msb。如果電壓高於Vref_msb7,則MSB輸出位元可以為1,並且可以將參考位準提高DVref7=(1/2)Vref_msb7。
進行針對MSB-1位元(例如位元6)的操作,乘法操作的輸出電流可以由TIA 906轉換為電壓,並存儲在關聯的電容器905上。該電容器可以是上述MSB電容器的一半大小。接下來,可以透過開關將MSB-1電容器連接到MSB電容器,以重分配電荷。參考電壓電路710提供的參考電壓可以被調整為以比率RVC6=1/(1+1/2)=2/3來補償增加的電容效應。co<6>參考位準可以是Vref6c=(Vref_msb+DVref6cs)×RVC6=2/3×Vref_msb,其中DVref6cs=DVref7。然後,比較器可以將電容器上重新分配的電壓與(2/3)Vref_msb進行比較。在比較之後,如果重分配的電壓位準高於參考值,則co<6>可以設置為邏輯1,否則co<6>可以設置為邏輯0。如果co<6>=1,則藉由適當地施加電容比,將參考電壓位準提高DVref6c=(1/2)Vref_msb。
接下來,可以執行對MSB-1位元的操作的後一半。上述操作的前半部分可以生成進位位元,而後半部分可以為MSB-1乘法操作生成位元級位數位元。比較器705
可以接收位元<6>參考位準,該參考位準是Vref6=RVC6((1/2)Vref_msb+DVref6s),其中DVref6s=DVref7+DVref6c。如果位元位準高於參考位準,則bit<6>輸出可以為邏輯1,否則,bit<6>輸出可以為邏輯0。舉例來說,清單B完成了圖9所示的操作,針對使用8位元資料的TIA具體實施例。
圖10示出了根據一些具體實施例的循序漸進MAC操作的管線,循序漸進MAC操作的管線可以隨著在每一層之間被單獨地處理位元而被連續地分層和執行。管線可以包括第一級,第一級包括以上在圖6中示出的MAC單元陣列601和二進制加權ADC 504。管線的第一級的輸出可以包括如上所述的循序漸進生成的位元604的流。循序漸進生成的位元串流604可以包括位元級位數位元,位元級位數位元被稱為「第一數位位元值」且在圖10中被示出為<7>、<6>...<0>(在8位元資料示例中)。循序漸進生成的位元串流604還可以包括進位位元,進位位元被稱為「第二數位位元值」且在圖10中示出為co<6>...co<0>。當從二進制加權ADC 504輸出循序漸進生成的位元604的流中的每個位元時,可以使這些位元可用作連續級的輸入。
管線還可包括第二級,第二級包括第二MAC單元陣列1001和第二二進制加權ADC 1004。第二MAC單元陣列1001可以在管線的第一級中的第一二進制加權ADC 504的輸出接收循序漸進生成的位元604的流。在一些具體
實施例中,整個位元串流可以被直接提供給MAC單元陣列1001,使得其包括位元串流中的第一數位位元值和第二數位位元值(例如,位元級位數位元和進位位元)兩者。在其他具體實施例中,進位位元可以與位元級位數位元組合,使得到第二MAC單元陣列1001的輸入位元串流與資料路徑的其餘部分具有相同的寬度(例如8位元)。可以藉由將進位位元添加到先前的位元級位數位元來組合這些位元。這可能會導致某些值為「2」的位元值,該值由電壓/電流的兩倍表示為輸入上的邏輯1信號。
圖10示出了由循序漸進二進制加權ADC在MAC操作的輸出上提供的優點之一。具體而言,管線中的第二MAC級可以在輸出位元時開始處理位元,而不是等待管線中的第一MAC級處理完所有位元。如前述,兩個MAC單元陣列201、1001都使用複數個1位元DAC循序漸進地在輸入處接收到位元。因此,作為第一級提供的單個位元,第二級可以開始執行1位元DAC操作。在2個週期的延遲之後,可以在第一二進制加權ADC 504的輸出處提供<7>和co<6>位元。然後可以由第二MAC單元陣列1001立即接收這些位元,而無需等待<6>位元和管線的第一級將提供的任何後續位元。
儘管圖10僅示出了MAC管線的兩個級,但是其他具體實施例也可以包括許多未在圖10中明確描繪的附加級。在本揭示內容之前,每個附加級將需要至少N個附加時脈週期,其中N代表資料路徑中的位元數。然而,使用本文
所述和圖10中描繪的具體實施例,每個附加級僅需要附加的2個時脈週期作為延遲來準備從每個級輸出的前兩位元。
圖11示出了根據一些具體實施例的用於執行循序漸進的二進制加權的數位類比轉換的方法1100的流程圖。方法1100中的每個步驟可以如以上在圖1至圖10中所描述的那樣執行。具體而言,以上描述的任何操作、特徵和/或電路都可以用於執行這些操作。
方法可以包括針對輸入向量中的值的每個位元順序依次執行第一向量矩陣乘法運算(1102)。每個位元順序的第一向量矩陣乘法運算可以生成類比輸出。例如,如上所述,可以使用MAC單元陣列來從輸入向量中的值接收每個循序漸進的數位位元。這些值可以藉由1位元DAC循序漸進轉換為類比信號,並可以藉由類比乘法矩陣進行處理。類比輸出可以包括代表由矩陣表示的乘法/累加運算的結果的類比電流。
方法還可以包括將來自MAC操作的類比輸出轉換成一個或多個數位位元值(1104)。可藉由將電壓基準作為一個輸入提供給比較器來執行該轉換。作為比較器的另一輸入,一些具體實施例可以提供基於向量矩陣乘法操作的類比輸出的電壓。例如,跨阻放大器可以將類比電流轉換為電壓,電壓可以存儲在積分電容器上,或者存儲在代表每個位元級位數的個別電容器上。在一些具體實施例中,代表單個乘法運算輸出的每個類比輸出可以被轉換成一個或多個數位位元值。例如,MSB可以被轉換成單個位
元級位數位元,其可以被稱為第一數位位元值。對於跟隨MSB到LSB的位元,每個位元都可以轉換為位元級位數位元和進位位元,稱為第二數位位元值。術語「第一」和「第二」並不意味著順序或重要性,而只是在操作中將這兩位相互區分開。取決於特定具體實施例,當第一數位位元值表示邏輯1時,可以使用不同的方法來調整提供給比較器的參考信號。相反,當比較器的輸出為邏輯0時,參考信號可以保持與當前位元級位數的基準參考電壓相同(亦即,無需在當前位元級上進行額外的基準參考電壓調整,即使每個循序漸進位元級的基本參考電壓可能不同)。上面以及清單A和清單B中詳細描述了調節參考信號的這些不同方法。
方法可進一步包含將一個或一個數位位元值發送到第二向量矩陣乘法運算(1106)。在一些具體實施例中,操作可以是可選的,並且對於管線包括複數個MAC級的體系結構可以包括該操作,其中一個MAC級的輸出饋送隨後的MAC級的輸入。每個MAC級之間可能存在2個週期的延遲,以生成MSB位元和前一級的第一個進位位元。
上面討論的方法、系統和設備是示例。各種配置可以適當地省略、替代或添加各種處理或組件。例如,在替代配置中,可以以與所描述的順序不同的順序來執行方法,和/或可以添加、省略和/或組合各個階段。而且,關於某些配置描述的特徵可以在各種其他配置中組合。可以以類似方式組合配置的不同態樣和元素。而且,技術在發
展,因此,許多元件是示例,並且不限制本揭示內容或申請專利範圍的範圍。
在說明書中給出了具體細節,以提供對示例配置(包括實施方式)的透徹理解。然而,可以在沒有這些具體細節的情況下實踐配置。例如,已經示出了公知的電路、處理、演算法、結構和技術,而沒有不必要的細節,以避免使配置模糊。該描述僅提供示例配置,並且不限制申請專利範圍的範圍、適用性或配置。相反,配置的先前描述將向本領域技術人員提供用於實現所描述的技術的致能性描述。在不脫離本揭示內容的精神或範圍的情況下,可以對元件的功能和佈置進行各種改變。
而且,可以將配置描述為被描繪為流程圖或框圖的處理。儘管每個操作都可以將操作描述為依次處理,但是許多操作可以並行或同時執行。另外,可以重新排列操作的順序。一個處理可能具有圖中未包括的其他步驟。
已經描述了幾個示例配置,在不脫離本揭示內容的精神的情況下,可以使用各種修改、替代構造和等同形式。例如,以上元件可以是較大系統的組件,其中其他規則可以優先於或以其他方式修改本發明的應用。同樣,在考慮以上要素之前、之中或之後可以採取許多步驟。
1.電荷藉由二進制加權方法從MSB輸入到LSB輸入位元積分
2.藉由縮放MAC電流進行二進制加權以為電容器充電
3.在對每個二進制位元進行電荷積分/充電後,依次執行兩次比較器檢查。
1.第N個進位位元比較器檢查高於位數參考位準一個位元。如果積分電荷位準較高,則較高的位數輸出位元為1,並且藉由DVrefNc來提高比較器參考位準,其中N為第N個進位位元。此較高有效輸出位元是借位位元。DVrefNc=1/2M-N*Vref_msb,其中M為Mth=MSB位元,Vref_msb為MSB位元參考位準。N是從第M個(MSB)到第0個(LSB)進行操作的第N位元。
2.第N個(當前)位元比較器檢查當前二進制參考位準。如果積分電荷位準較高,則當前二進制輸出位元為1,並且比較器參考位準升高DVrefN=1/2M-N+1*Vref_msb
4.對於每個第N個進位位元,參考位準為VrefNc=VrefNcb+DvrefNcs,VrefNcb是第N個進位位元基本參考位準,即第(N+1)位元基本參考位準。VrefNcb=1/2M-(N+1)*Vref_msb。DvrefNcs是上升的Vref前N位元的累加和。
5.對於每個第N位元,參考位準為VrefN=VrefNb+DvrefNs,VrefNb為第N位元基本參考位準。
VrefNb=1/2M-N*Vref_msb。DVrefNs是第N個進位位元之前的Vref的累加和。DVrefNs=
6.繼續到LSB位元。
7.基準位準調整可從DAC電路獲得。
8.每個二進制輸出都有借位位元和自己的位元。這兩位元被直接饋送MAC操作的下一層。
9.在輸入驅動器(例如DL驅動器)中,檢查每個當前位元的二進制位元和下一個有效位元的進位位元。
1.如果當前或進位位元之一為1,則輸入強度(例如電壓位準)為1。
2.如果電流或進位位元均為1,則輸入強度(例如電壓位準)將加倍。
3.這樣可以將電荷積分時間減少一半。
4.此操作需要三級DL驅動器/DAC。
1. MSB位元MAC電流為積分電容器充電。
1.比較器檢查電容器電壓是否達到MSB參考位準(Vref_msb)。
1.如果電容器電壓更高,則MSB<7>位元的輸出為1,或者為0。
2.如果<7>=1,則參考位準提高Dvref7=1/2*Vref_msb。
2. Bit<6>位元MAC電流以0.5的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對MSB參考位準Vref_msb。
1.如果電容器電壓較高,則co<6>位元輸出為1或co<6>=0。在此,co<6>是進位位元<7>。
2.如果co<6>=1,則參考位準由DVref6c=1/2*Vref_msb提高到3/2*Vref_msb。
2.比較器檢查電容器電壓對<6>參考位準,即Dvref6s+1/2*Vref_msb。DVref6s是所有累積的DVref的總和。DVref6s=DVref7+DVref7c。
1.如果電容器電壓更高,則<6>位元輸出為1,或者<6>=0。
2.如果<6>=1,則將參考位準提高DVref6=1/4*Vref_msb。
3. Bit<5>位元MAC電流以0.25的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對<6>位元參考位準,即Dvref5cs+1/2*Vref_msb。Dvref5cs=DVref7+DVref6c+DVref6。
1.如果電容器電壓較高,則co<5>位元的輸出為1,或者co<5>=0。
2.如果co<5>=1,則參考位準提高DVref5c=1/4*Vref_msb。
2.比較器檢查電容器電壓對<5>參考位準,即Dvref5s+1/4*Vref_msb。Dvref5s=DVref7+DVref6c+DVref6+DVref5c。
1.如果電容器電壓更高,則<5>位元輸出為1,或者<5>=0。
2.如果<5>=1,則參考位準提高到1/8*Vref_msb
4. Bit<4>位元MAC電流以1/8的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對<5>參考位準,即Dvref4cs+1/4*Vref_msb。Dvref4cs=DVref7+DVref6c+DVref6+DVref5c+DVref5。
1.如果電容器電壓更高,則MSB co<4>位元輸出為1,或者co<4>=0。
2.如果co<4>=1,則參考位準提高DVref4c=1/8×Vref_msb。
2.比較器檢查電容器電壓對<4>參考位準,即Dvref4s+1/8*Vref_msb。Dvref4s=
DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c。
1.如果電容器電壓更高,則<4>位元輸出為1,或者<4>=0。
2.如果<4>=1,則參考位準提高DVref4=1/16*Vref_msb
5.位元<3>位元MAC電流以1/16的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對<4>位元參考位準,即Dvref3cs+1/8*Vref_msb。Dvref3cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4。
1.如果電容器電壓較高,則co<3>位元輸出為1或co<3>=0。
2.如果co<3>=1,則參考位準提高DVref3c=1/16*Vref_msb。
2.比較器檢查電容器電壓對<3>參考位準,即Dvref3s+1/16*Vref_msb。Dvref3s=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c。
1.如果電容器電壓更高,則<3>位元輸出為1,或者<3>=0。
2.如果<3>=1,則將參考位準提高DVref3=1/32*Vref_msb。
6. Bit<2>位元MAC電流以1/32的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對<3>位元參考位準,即Dvref2cs+1/16*Vref_msb。Dvref2cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3。
1.如果電容器電壓較高,則co<2>位元輸出為1或co<2>=0。
2.如果co<2>=1,則參考位準升高DVref2c=1/32*Vref_msb。
2.比較器檢查電容器電壓對<2>參考位準,即Dvrefs+1/32*Vref_msb。Dvref2s=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3+DVref2c。
1.如果電容器電壓更高,則<2>位元輸出為1,或者<2>=0。
2.如果<2>=1,則參考位準提高DVref2=1/64*Vref_msb。
7. Bit<1>位元MAC電流以1/64的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對<2>位元參考位準,即Dvref1cs+1/32*Vref_msb。Dvref1cs
=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3+DVref2c+DVref2。
1.如果電容器電壓更高,則co<1>位元的輸出為1,或者co<1>=0。
2.如果co<1>=1,則參考位準提高DVref1c=1/64*Vref_msb。
2.比較器檢查電容器電壓對參考電壓<1>,即Dvrefs+1/64*Vref_msb。Dvref1s=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c。
1.如果電容器電壓較高,則<1>位元輸出為1,或者<1>=0。
2.如果<1>=1,則參考位準提高DVref1=1/128*Vref_msb。
8. Bit<0>位元MAC電流以1/128的電流比(與MSB MAC相比)為積分電容器充電。
1.比較器檢查電容器電壓對<1>位元參考位準,即Dvrefs+1/64*Vref_msb。Dvref0cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1。
1.如果電容器電壓更高,則co<0>位元的輸出為1,或者co<0>=0。
2.如果co<0>=1,則參考位準提高DVref0c=1/128*Vref_msb。
2.比較器檢查電容器電壓對<0>參考電壓,即Dvrefs+1/64*Vref_msb。Dvref1s=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1+DVref0c。
3.如果電容器電壓更高,則<0>位元輸出為1,或者<0>=0。
1.使用二進制加權方法從MSB到LSB輸入位元的MAC
2. TIA將每個二進制位元的MAC電流轉換為電壓,並將電壓保存在二進制加權電容器中
1.從MSB到LSB,每個二進制位元都有其二進制加權電容器來存儲TIA輸出電壓。
2.在存儲TIA輸出電壓時,存儲電容器連接到與較高有效位元相關的其他電容器。這將添加新的二進制電荷(以電壓和電容表示)並重分配總電荷。
3.重分配每個二進制位元的電荷後,將依次執行兩個比較器檢查。
1.進位位元比較器以更高一位元的參考位準檢查。如果重分配的電容器位準較高,則進位位元為1,並且比較器參考位準升高DVrefNc=1/2M-N*Vref_msb,其中M為Mth=MSB位元,而Vref_msb為MSB位元參考位準。N是從第M個(MSB)到第0個(LSB)進行操作的第N位元。
2.第N個(當前)位元比較器檢查當前二進制參考位準。如果積分電荷位準較高,則當前二進制輸出位元為1,並且比較器參考位準升高DVrefN=1/2M-N+1*Vref_msb
4.對於每個第N個進位位元,參考位準為VrefNc=(VrefNcb+DvrefNcs)*RVCN,VrefNcb是第N個進位位元基本參考位準,即第(N+1)位元基本參考位準。VrefNcb=1/2M-(N+1)*Vref_msb。DvrefNcs是上升的Vref前N位元的累加和。
5.對於每個第N位元,參考位準為VrefN=(VrefNb+DvrefNs)*RVCN,VrefNb為第N位元基本參考位準。VrefNb=1/2M-N*
Vref_msb。DVrefNs是第N個進位位元之前的Vref
的累加和。
6.繼續到LSB位元。
7.每個二進制輸出都有借位位元和自己的位元。這兩位元被直接饋送MAC操作的下一層。
1. MSB位元<7>MAC電流被由TIA轉換為V<7>,且相關的MSB電容器充電至V<7>。
1.比較器檢查此V<7>對於MSB參考位準Vref_msb7=Vref_msb。
1.如果V<7>高於Vref_msb7,則MSB輸出位元為1。
2.如果<7>=1,則將參考位準提高DVref7=1/2*Vref_msb7。
2.位元<6>MAC電流被由TIA轉換為V<6>,且相關的位元<6>電容器(MSB電容器的一半大小)被充電至V<6>。
1.<6>電容器連接到<7>電容器以重分配電荷。
2.由比率RVC6=1/(1+1/2)=2/3調整參考位準以增加電容效應。
3. co<6>參考位準為Vref6c=(Vref_msb+DVref6cs)×RVC6=2/3×Vref_msb。其中,DVref6cs=DVref7。
1.比較器檢查重分配的位準對於2/3*Vref_msb。
2.如果重分配的位準更高則co<6>=1,或者co<6>=0。
3.如果co<6>=1,則藉由適當地使用電容比率將參考位準提高DVref6c=1/2×Vref_msb。
4.比較器使用位元<6>參考位準Vref6=RVC6*(1/2*Vref_msb+DVref6s)進行檢查。其中,DVref6s=DVref7+DVref6c。
1.如果位準更高則位元<6>輸出為1,或者位元<6>輸出為0。
2.如果<6>=1,則參考位準會提高DVref6=1/4*Vref_msb,並施加適當的電容比率。
3.位元<5>MAC電流被由TIA轉換為V<5>,且相關的位元<5>電容器(MSB電容器的四分之一大小)被充電至v<5>。
1.<5>電容器連接到<7>和<6>電容器以重分配電荷。
2.由比率RVC5=1/(1+1/2+1/4)=4/7調整參考位準以增加電容效應。
3. co<5>參考位準是Vref5c=(1/2×Vref_msb+DVref5cs)×RVC5=4/7×
(1/2×Vref_msb+Dvref5s)。其中,DVref5cs=DVref7+DVref6c+DVref6。
1.比較器檢查重分配的位準對於Vref5c。
2.如果重分配的位準較高則co<5>=1,或者co<5>=0。
3.如果co<5>=1,則藉由適當地使用電容比率將參考位準提高DVref5c=1/4×Vref_msb。
4.比較器使用位元<5>參考位準Vref5=RVC5*(1/4*Vref_msb+DVref5)進行檢查。DVref5=DVref7+DVref6c+DVref6+DVref5c。
1.如果位準更高則位元<5>輸出為1,或者位元<5>輸出為0。
2.如果<5>=1,則參考位準會提高DVref5=1/8*Vref_msb,並施加適當的電容比率。
4.位元<4>MAC電流被由TIA轉換為V<4>,且相關的位元<4>電容器(MSB電容器的八分之一大小)被充電至V<4>。
1.<4>電容器連接到<7>、<6>和<5>電容器以重分配電荷。
2.由比率RVC4=1/(1+1/2+1/4+1/8)=8/15調整參考位準以增加電容效應。
3. co<4>參考位準為Vref4c=(1/4×Vref_msb+DVref4cs)×RVC4=8/15×(1/4×Vref_msb+Dvref4cs)。其中,DVref4cs=DVref7+DVref6c+DVref6+DVref5c+DVref5。
1.比較器檢查重分配的位準對於Vref4c。
2.如果重分配的位準更高則co<4>=1,或者co<4>=0。
3.如果co<4>=1,則藉由適當地使用電容比率將參考位準提高DVref4c=1/8×Vref_msb。
4.比較器使用位元<4>參考位準Vref4=RVC4*(1/8*Vref_msb+DVref4)進行檢查。DVref4=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c。
1.如果位準更高則位元<4>輸出為1,或者位元<4>輸出為0。
2.如果<4>=1,則參考位準會提高DVref4=1/16*Vref_msb,並施加適當的電容比率。
5.位元<3>MAC電流被由TIA轉換為V<3>,且相關的位元<3>電容器(MSB電容器的十六分之一大小)被充電至V<3>。
1.<3>電容器連接到<7>、<6>、<5>和<4>電容器以重分配電荷。
2.由比率RVC3=1/(1+1/2+1/4+1/8+1/16)=16/31調整參考位準以增加電容效應。
3. co<3>參考位準為Vref3c=(1/8*Vref_msb+DVref3cs)*RVC3=16/31*(1/8*Vref_msb+Dvref3cs)。其中,DVref3cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4。
1.比較器檢查重分配的位準對於Vref3c。
2.如果重分配的位準更高則co<3>=1,或者co<3>=0。
3.如果co<3>=1,則藉由適當地使用電容比率將參考位準提高DVref3c=1/16×Vref_msb。
4.比較器使用位元<3>參考位準Vref3=RVC3*(1/16*Vref_msb+DVref3)進行檢查。DVref3=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c。
1.如果位準更高則位元<3>輸出為1,或者位元<3>輸出為0。
2.如果<3>=1,則參考位準會提高DVref3=1/32*Vref_msb,並施加適當的電容比率。
6.位元<2>MAC電流被由TIA轉換為V<2>,且相關的位元<2>電容器(MSB電容器的1/32大小)被充電至V<2>。
1.<2>電容器連接到<7>、<6>、<5>、<4>和<3>電容器以重分配電荷。
2.由比率RVC2=1/(1+1/2+1/4+1/8+1/16+1/32)=32/63調整參考位準以增加電容效應。
3. co<2>參考位準為Vref2c=(1/16×Vref_msb+DVref2cs)×RVC2=32/63×(1/16×Vref_msb+Dvref2cs)。其中,DVref2cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3。
1.比較器檢查重分配的位準對於Vref2c。
2.如果重分配的位準更高則co<2>=1,或者co<2>=0。
3.如果co<2>=1,則藉由適當地使用電容比率將參考位準提高DVref2c=1/32×Vref_msb。
4.比較器使用位元<2>參考位準Vref2=RVC2*(1/32*Vref_msb+DVref2)進行檢查。DVref2=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c。
1.如果位準更高則位元<2>輸出為1,或者位元<2>輸出為0。
2.如果<2>=1,則參考位準會提高DVref2=1/64*Vref_msb,並施加適當的電容比率。
7.位元<1>MAC電流被由TIA轉換為V<1>,且相關的位元<1>電容器(MSB電容器的1/64大小)被充電至V<2>。
1.<1>電容器連接到<7>、<6>、<5>、<4>、<3>和<2>電容器以重分配電荷。
2.由比率RVC2=1/(1+1/2+1/4+1/8+1/16+1/32+1/64)=64/127調整參考位準以增加電容效應。
3. co<1>參考位準為Vref1c=(1/32×Vref_msb+DVref1cs)×RVC1=64/127×(1/32×Vref_msb+Dvref1cs)。其中,DVref1cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+
DVref4+DVref3c+DVref3+DVref2c+DVref2。
1.比較器檢查重分配的位準對於Vref1c。
2.如果重分配的位準更高則co<1>=1,或者co<1>=0。
3.如果co<1>=1,則藉由適當地使用電容比率將參考位準提高DVref1c=1/64×Vref_msb。
4.比較器使用位元<1>參考位準Vref1=RVC1*(1/64*Vref_msb+DVref1)進行檢查。DVref1=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c。
1.如果位準更高則位元<1>輸出為1,或者位元<1>輸出為0。
2.如果<1>=1,則參考位準會提高DVref1=1/128*Vref_msb,並施加適當的電容比率。
8.位元<0>MAC電流被由TIA轉換為V<0>,且相關的位元<0>電容器(MSB電容器的1/128大小)被充電至V<0>。
1.<0>電容器連接到<7>、<6>、<5>、<4>、<3>、<2>和<1>電容器以重分配電荷。
2.由比率RVC0=1/(1+1/2+1/4+1/8+1/16+1/32+1/64+1/128)=128/255調整參考位準以增加電容效應。
3. co<0>參考位準為Vref0c=(1/64*Vref_msb+DVref0cs)*RVC0=128/255*(1/64*Vref_msb+Dvref0cs)。其中DVref0cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1。
1.比較器檢查重分配的位準對於Vref0c。
2.如果重分配的位準更高則co<0>=1,或者co<0>=0。
3.如果co<0>=1,則藉由適當地使用電容比率將參考位準提高DVref0c=1/128×Vref_msb。
4.比較器使用位元<0>參考位準Vref0=RVC0*(1/128*Vref_msb+DVref0)進行檢查。DVref0=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1+DVref0c。
1.如果位準更高則位元<0>輸出為1,或者位元<0>輸出為0。
110:部分
112-1~112-4:數位輸入信號
114-1~114-4:一位元DAC
116-1~116-4:類比信號
120:部分
122:類比向量矩陣乘法器
124:乘法結果信號
500:電路
502:部分
504:循序漸進二進制加權ADC
506-1~506-4:數位輸出信號
Claims (20)
- 一種用於執行一循序漸進二進制加權數位類比轉換的方法,該方法包含以下步驟:對一輸入向量中的值的每個位元順序依次執行一第一向量矩陣乘法運算,其中對每個位元順序的該第一向量矩陣乘法運算生成一類比輸出;對於該向量矩陣乘法運算生成的每個類比輸出:將該類比輸出轉換為一個或多個數位位元值;將一個或多個數位位元值發送到一第二向量矩陣乘法運算。
- 如請求項1所述之方法,其中該第一向量矩陣乘法運算以該輸入向量中的每個值的一最高有效位元(MSB)開始,且以該輸入向量中的每個值的一最低有效位元(LSB)結束而執行。
- 如請求項1所述之方法,其中將該類比輸出轉換為該一個或多個數位位元值之步驟包括以下步驟:將該類比輸出與一參考信號進行比較,其中當該類比輸出大於該參考信號時該一個或多個數位位元值中的一第一數位位元值表示一邏輯1,並且當該類比輸出小於該參考信號時該第一數位位元值表示一邏輯0。
- 如請求項3所述之方法,其中將該類比輸出轉換為該一個或多個數位位元值之步驟進一步包括以下步驟: 當該第一數位位元值表示一邏輯1時調整該參考信號。
- 如請求項3所述之方法,其中:該類比輸出對應於該輸入向量中每個值的一MSB;和該一個或多個數位位元值包括該第一數位位元值而沒有一進位位元。
- 如請求項4所述之方法,其中將該類比輸出轉換為該一個或多個數位位元值之步驟進一步包括以下步驟:在調整該參考信號之後將該類比輸出與該參考信號進行比較,其中當該類比輸出大於該參考信號時該一個或多個數位位元值中的一第二數位位元值表示一邏輯1,並且當該類比輸出小於該參考信號時該第二數位位元值表示一邏輯0。
- 如請求項6所述之方法,其中:該第一數位位元值表示對應於一當前類比輸出的一值;和該第二數位位元值表示將被加到對應於一先前類比輸出的一值上的一進位值。
- 如請求項3所述之方法,其中將該類比輸出轉換為該一個或多個數位位元值之步驟進一步包括以下步驟: 當該第一數位位元值表示一邏輯0時,保持該參考信號。
- 如請求項8所述之方法,其中將該類比輸出轉換為該一個或多個數位位元值之步驟進一步包括以下步驟:在調整該參考信號之後將該類比輸出與該參考信號進行比較,其中當該類比輸出大於該參考信號時該一個或多個數位位元值中的一第二數位位元值表示一邏輯1,並且當該類比輸出小於該參考信號時該第二數位位元值表示一邏輯0。
- 如請求項1所述之方法,其中在將該類比輸出轉換成該一個或多個數位位元值與將該一個或多個數位位元值發送到該第二向量矩陣乘法運算之間存在一兩週期延遲。
- 一種向量矩陣乘法器電路,包括:複數個數位輸入,其中每個數位輸入接收一輸入向量的一二進制編碼的輸入值;一向量矩陣乘法器電路,該向量矩陣乘法器電路使用該二進制編碼的輸入值一次對一單個位元順序執行二進制編碼的向量乘法運算;一循序漸進二進制加權類比數位轉換器,該循序漸進二進制加權類比數位轉換器依次從該向量矩陣乘法器電路接收類比輸出,並將該等類比輸出中的每一個依次轉 換為一個或多個數位位元值。
- 如請求項11所述之向量矩陣乘法器電路,其中該循序漸進二進制加權類比數位轉換器包括:一電荷積分電路,該電荷積分電路包括一電容器,該等類比輸出中的每一個類比輸出都在該電容器上存儲電荷。
- 如請求項11所述之向量矩陣乘法器電路,其中該向量矩陣乘法器電路還傳遞一當前位元順序的一指示。
- 如請求項13所述之向量矩陣乘法器電路,該向量矩陣乘法器電路進一步包含一多工器,該多工器將該一個或多個數位位元值發送到複數個暫存器中的一個暫存器,其中對於一當前位元順序的該指示控制該多工器。
- 如請求項11所述之向量矩陣乘法器電路,其中該循序漸進二進制加權類比數位轉換器包括:複數個二進制加權開關和電容器,該複數個二進制加權開關和電容器中的每一個儲存該等類比輸出中的不同的類比輸出。
- 一種用於執行向量矩陣乘法的設備,該設備包括:接收構件,用於接收複數個數位輸入,其中每個數位輸入接收一輸入向量的一二進制編碼的輸入值; 依次執行構件,用於對複數個輸入向量值中的每個位元順序依次執行一向量矩陣乘法運算,其中對每個位元順序的該向量矩陣乘法運算生成一類比輸出;和轉換構件,用於將該等類比輸出中的每個類比輸出轉換為一個或多個數位位元值。
- 如請求項16所述之用於執行向量矩陣乘法的設備,該設備進一步包含一循序漸進二進制加權類比數位轉換器,該循序漸進二進制加權類比數位轉換器從依次執行一向量矩陣乘法運算的該依次執行構件依次接收類比輸出,並將該等類比輸出中的每一個依次轉換為至少一個數位位元值。
- 如請求項16所述之用於執行向量矩陣乘法的設備,該設備進一步包括:轉換構件,用於將複數個數位輸入轉換為複數個類比信號,該複數個類比信號被輸入到依次執行一向量矩陣乘法運算的該依次執行構件。
- 如請求項16所述之用於執行向量矩陣乘法的設備,該設備進一步包括將該類比輸出與之比較的一參考電壓。
- 如請求項19所述之用於執行向量矩陣乘法的設備,該設備進一步包括比較構件,用於將該參考電壓與該類比輸出進行比較。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962907419P | 2019-09-27 | 2019-09-27 | |
| US62/907,419 | 2019-09-27 | ||
| US16/688,782 | 2019-11-19 | ||
| US16/688,782 US11354383B2 (en) | 2019-09-27 | 2019-11-19 | Successive bit-ordered binary-weighted multiplier-accumulator |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202121162A TW202121162A (zh) | 2021-06-01 |
| TWI768479B true TWI768479B (zh) | 2022-06-21 |
Family
ID=75162040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109133289A TWI768479B (zh) | 2019-09-27 | 2020-09-25 | 數位類比轉換方法與向量矩陣乘法設備 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US11354383B2 (zh) |
| EP (1) | EP4035032A4 (zh) |
| JP (1) | JP7779831B2 (zh) |
| KR (1) | KR20220066396A (zh) |
| CN (1) | CN114430889A (zh) |
| TW (1) | TWI768479B (zh) |
| WO (1) | WO2021061733A1 (zh) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11586896B2 (en) * | 2020-03-02 | 2023-02-21 | Infineon Technologies LLC | In-memory computing architecture and methods for performing MAC operations |
| US11522555B1 (en) * | 2021-06-14 | 2022-12-06 | Tetramem Inc. | Multistage analog-to-digital converters for crossbar-based circuits |
| US20230083270A1 (en) * | 2021-09-14 | 2023-03-16 | International Business Machines Corporation | Mixed signal circuitry for bitwise multiplication with different accuracies |
| US20250004720A1 (en) * | 2021-11-10 | 2025-01-02 | Synthara Ag | Hybrid matrix multiplier |
| US11899518B2 (en) * | 2021-12-15 | 2024-02-13 | Microsoft Technology Licensing, Llc | Analog MAC aware DNN improvement |
| TWI869843B (zh) * | 2023-05-05 | 2025-01-11 | 虹原科技股份有限公司 | 類比數位整合系統 |
| US20250217052A1 (en) * | 2023-12-27 | 2025-07-03 | Micron Technology, Inc. | Charge Domain Compute-in-DRAM for Binary Neural Network |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170228345A1 (en) * | 2016-02-08 | 2017-08-10 | Spero Devices, Inc. | Analog Co-Processor |
| TW201802666A (zh) * | 2016-03-30 | 2018-01-16 | 華邦電子股份有限公司 | 非模數乘法器、用於非模數乘法的方法及計算裝置 |
| US20180173677A1 (en) * | 2016-12-15 | 2018-06-21 | Hewlett Packard Enterprise Development Lp | Hierarchical computations on sparse matrix rows via a memristor array |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5644313A (en) * | 1995-06-05 | 1997-07-01 | Motorola, Inc. | Redundant signed digit A-to-D conversion circuit and method thereof |
| IL145245A0 (en) | 2001-09-03 | 2002-06-30 | Jtc 2000 Dev Delaware Inc | System and method including vector-matrix multiplication |
| US8055886B2 (en) * | 2007-07-12 | 2011-11-08 | Texas Instruments Incorporated | Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction |
| US10235343B2 (en) | 2012-11-06 | 2019-03-19 | Pavel Dourbal | Method for constructing a circuit for fast matrix-vector multiplication |
| EP3289477B1 (en) * | 2016-01-30 | 2021-08-25 | Hewlett Packard Enterprise Development LP | Dot product engine with negation indicator |
| US9910827B2 (en) | 2016-07-01 | 2018-03-06 | Hewlett Packard Enterprise Development Lp | Vector-matrix multiplications involving negative values |
| US10180820B2 (en) * | 2016-09-30 | 2019-01-15 | HEWLETT PACKARD ENTERPRlSE DEVELOPMENT LP | Multiply-accumulate circuits |
| US9922696B1 (en) | 2016-10-28 | 2018-03-20 | Samsung Electronics Co., Ltd. | Circuits and micro-architecture for a DRAM-based processing unit |
| US11315009B2 (en) * | 2017-03-03 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Analog multiplier-accumulators |
| US11263522B2 (en) * | 2017-09-08 | 2022-03-01 | Analog Devices, Inc. | Analog switched-capacitor neural network |
| US10878317B2 (en) | 2017-09-11 | 2020-12-29 | Samsung Electronics Co., Ltd. | Method and system for performing analog complex vector-matrix multiplication |
| US11513797B2 (en) * | 2018-09-12 | 2022-11-29 | Mentium Technologies Inc. | Systems and methods for analog vector by matrix multiplier |
| US10831446B2 (en) | 2018-09-28 | 2020-11-10 | Intel Corporation | Digital bit-serial multi-multiply-and-accumulate compute in memory |
| CN109542392A (zh) * | 2018-11-09 | 2019-03-29 | 复旦大学 | 基于忆阻器交叉阵列的低功耗加权求和电路 |
| CN110263296B (zh) | 2019-05-18 | 2020-12-04 | 南京惟心光电系统有限公司 | 一种基于光电计算阵列的矩阵向量乘法器及其运算方法 |
| KR102903267B1 (ko) * | 2020-05-20 | 2025-12-22 | 삼성전자주식회사 | 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법 |
-
2019
- 2019-11-19 US US16/688,782 patent/US11354383B2/en active Active
-
2020
- 2020-09-23 EP EP20869926.4A patent/EP4035032A4/en active Pending
- 2020-09-23 JP JP2022518260A patent/JP7779831B2/ja active Active
- 2020-09-23 WO PCT/US2020/052161 patent/WO2021061733A1/en not_active Ceased
- 2020-09-23 CN CN202080066321.5A patent/CN114430889A/zh active Pending
- 2020-09-23 KR KR1020227013845A patent/KR20220066396A/ko active Pending
- 2020-09-25 TW TW109133289A patent/TWI768479B/zh not_active IP Right Cessation
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170228345A1 (en) * | 2016-02-08 | 2017-08-10 | Spero Devices, Inc. | Analog Co-Processor |
| TW201802666A (zh) * | 2016-03-30 | 2018-01-16 | 華邦電子股份有限公司 | 非模數乘法器、用於非模數乘法的方法及計算裝置 |
| US20180173677A1 (en) * | 2016-12-15 | 2018-06-21 | Hewlett Packard Enterprise Development Lp | Hierarchical computations on sparse matrix rows via a memristor array |
Also Published As
| Publication number | Publication date |
|---|---|
| US11354383B2 (en) | 2022-06-07 |
| WO2021061733A1 (en) | 2021-04-01 |
| US20210097131A1 (en) | 2021-04-01 |
| CN114430889A (zh) | 2022-05-03 |
| KR20220066396A (ko) | 2022-05-24 |
| JP7779831B2 (ja) | 2025-12-03 |
| EP4035032A1 (en) | 2022-08-03 |
| TW202121162A (zh) | 2021-06-01 |
| JP2022550021A (ja) | 2022-11-30 |
| EP4035032A4 (en) | 2023-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI768479B (zh) | 數位類比轉換方法與向量矩陣乘法設備 | |
| KR102598838B1 (ko) | 비트-오더링된 이진-가중 곱셈기-누산기 | |
| US11922131B2 (en) | Scalable, multi-precision, self-calibrated multiplier-accumulator architecture | |
| US12019702B2 (en) | Throughput and precision-programmable multiplier-accumulator architecture | |
| EP2055006B1 (en) | Analog-to-digital conversion using asynchronous current-mode cyclic comparison | |
| US11893078B2 (en) | Analog dot product multiplier | |
| JP7611373B2 (ja) | バイナリ重み付け電荷再分配回路のための適応型セトリング時間制御 | |
| JP6512929B2 (ja) | データ加重平均化回路、インクリメンタルデルタシグマad変換器、及びデータ加重平均化方法 | |
| CN117492696A (zh) | 乘加运算电路、存储器及电子设备 | |
| US20240223207A1 (en) | Multiply-accumulate successive approximation devices and methods | |
| US20240220742A1 (en) | Multiply-accumulate successive approximation devices and methods |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |