TW202217602A - 特別用於乘法累加(mac)操作的採用低功率記憶體內運算(cim)電路採用靜態隨機存取記憶體(sram)位元單元的cim - Google Patents
特別用於乘法累加(mac)操作的採用低功率記憶體內運算(cim)電路採用靜態隨機存取記憶體(sram)位元單元的cim Download PDFInfo
- Publication number
- TW202217602A TW202217602A TW110133576A TW110133576A TW202217602A TW 202217602 A TW202217602 A TW 202217602A TW 110133576 A TW110133576 A TW 110133576A TW 110133576 A TW110133576 A TW 110133576A TW 202217602 A TW202217602 A TW 202217602A
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- cim
- true
- node
- multiplying
- 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
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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/403—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 with charge regeneration common to a multiplicity of memory cells, i.e. external refresh
- G11C11/404—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 with charge regeneration common to a multiplicity of memory cells, i.e. external refresh with one charge-transfer gate, e.g. MOS transistor, per cell
- G11C11/4045—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 with charge regeneration common to a multiplicity of memory cells, i.e. external refresh with one charge-transfer gate, e.g. MOS transistor, per cell using a plurality of serially connected access transistors, each having a storage capacitor
-
- 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/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- 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/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- 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/41—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
-
- 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/41—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/418—Address circuits
-
- 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/41—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- 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
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Static Random-Access Memory (AREA)
- Semiconductor Memories (AREA)
Abstract
採用CIM電路的低功率記憶體內計算(CIM)的系統,CIM電路包括靜態隨機存取記憶體(SRAM)位元單元電路。CIM電路可以用於乘法與累加(MAC)操作。CIM電路可以包括五電晶體(5T)SRAM位元單元,每個五電晶體(5T)SRAM位元單元均具有被耦合到存取電路的單個位元線,用於存取SRAM位元單元以進行讀取/寫入操作。CIM電路亦包括被耦合到SRAM位元單元的乘法電路(例如,基於異或(XOR)的電路)。CIM電路被配置為:執行由乘法電路接收到的輸入資料值與被儲存在SRAM位元單元中的權重資料值的乘法。5T SRAM位元單元中的存取電路的減少允許被耦合到5T SRAM位元單元的反相器的供電電壓軌處的上拉電壓被減小,以減小待機功率,同時提供儲存穩定性。
Description
本案的技術大體而言係關於機器學習計算,並且更具體地係關於與用於機器學習計算的靜態隨機存取記憶體(SRAM)單元電路整合的計算性記憶體內計算(CIM)電路。
機器學習是計算設備逐步改良特定任務的效能的能力。例如,機器學習演算法可以使用處理已知資料的結果來「訓練」計算設備,來以更高的準確性處理新資料。神經網路是可以實現機器學習演算法的框架。神經網路以大腦的組織為模型,具有複數個節點,每個節點對應一個大腦突觸。每個節點從前面的節點接收表示輸入資料的輸入信號,並且產生輸出,該輸出成為後續節點的輸入信號。節點被組織成連續的層,使得在第一處理階段,第一層的節點從外部源接收輸入資料,並且產生被提供給第二層之每一者節點的輸出。在下一個處理階段,第二層的節點接收第一層之每一者節點的輸出,並且在第一層中的節點接收和處理新的外部輸入時,產生另外的輸出以提供給第三層之每一者節點,在後續處理階段中以此類推。
在每個節點內,經由將數值輸入信號乘以相關聯的數值權重來唯一地加權每個輸入信號。對應於表示權重資料的加權輸入信號的乘積被求和來產生節點輸出。該等操作在一起被統稱為乘法與累加(MAC)操作。圖1是表示可以在神經網路中使用的習知節點100的操作的方塊圖。在節點100中,數值輸入信號X
0-X
M之每一者數值輸入信號被接收並且乘以相應的數值權重資料W
0-W
M以產生乘積P
0-P
M。數值權重資料W
0-W
M在每個處理階段被節點100儲存和重新使用。當處理已知資料時,可以使用基於實際結果與預期結果的比較的回饋,在機器學習方法中更新數值權重資料W
0-W
M。節點100使用累加或求和函數來將乘積P
0-P
M相加以產生求和信號SUM。習知節點100可以包括附加步驟,其中可以對SUM信號執行「啟用函數」以從節點100產生輸出信號。然而,啟用函數超出本案的範疇並且在本文中不再進一步論述。
隨著新的數值輸入信號集合X
0-X
M被提供,圖1中的節點100在每個處理階段執行「M」次乘法運算和求和函數。執行神經網路框架的處理設備執行的運算數目將取決於到神經網路的外部輸入數目、每層中的節點數目以及神經網路中的層數目。在大型神經網路中,處理設備必須在每個處理階段執行數千次操作。當數值輸入信號和權重是高精度浮點值時,執行MAC操作需要大量的處理時間、功率和記憶體,此舉消耗大量能量,其中大部分作為熱量散發。此外,必須在記憶體和執行MAC操作的一或多個處理器之間傳輸大量資料,此舉會導致延遲,從而增加應用的回應時間。因此,在習知處理設備上執行的神經網路應用程式可能具有非常慢的回應時間,佔用大量記憶體,並且使電池供電設備快速放電。
期望在可由處理器存取的記憶體系統中的記憶體陣列中提供記憶體電路來儲存權重資料,權重資料可以有效地乘以輸入資料以用於執行MAC操作,包括用於機器學習應用。
詳細描述中所揭示的態樣包括採用CIM電路的低功率記憶體內計算(CIM)系統,CIM電路採用靜態隨機存取記憶體(SRAM)位元單元。作為非限制性實例,CIM電路可以用於乘法與累加(MAC)操作,諸如在機器學習應用中採用的彼等操作。CIM電路各自包括SRAM位元單元電路,該SRAM位元單元電路包括用於儲存資料的儲存電路。經由預充電位元線並且啟用被耦合在位元線與儲存電路之間的存取電路(例如存取電晶體),可以從SRAM位元單元電路的儲存電路讀取資料。經由在位元線上斷言所需邏輯位準的電壓並且啟用存取電路,可以將資料寫入到SRAM位元單元電路的儲存電路。在本文所揭示的態樣中,CIM電路亦可以在輸入資料與SRAM位元單元的儲存電路中的儲存資料之間執行乘法運算。在該點上,CIM電路包括被耦合到SRAM位元單元電路的乘法電路。作為實例,乘法電路可以是基於異或(XOR)的電路,該基於XOR的電路被配置為執行基於XOR的邏輯運算(例如,XOR或異或非(XNOR)運算)來執行乘法運算。CIM電路被配置為執行在乘法電路中接收的輸入信號上的輸入資料與來自SRAM位元單元電路中的儲存資料的權重資料的乘法。CIM系統可以採用大量的CIM電路。因此,可能期望減小CIM電路中的待機及/或動態功耗以減小CIM系統中的整體功耗。
在該點上,在示例性態樣,CIM系統包括位元線驅動器電路,該位元線驅動器電路被配置為對被耦合到CIM電路的SRAM位元單元電路的位元線預充電以用於讀取操作。由於位元線驅動器電路可以被耦合到多於一個的CIM電路,因此待讀取的SRAM位元單元電路的存取電路亦被啟用,使得儲存電路中儲存的電荷可以經由存取電路被傳遞到位元線。為了減小對CIM電路的讀取操作中的動態功率,位元線驅動器電路可以被配置為將位元線預充電到減小的預充電電壓。例如,CIM系統可以被包括在基於處理器的系統中,該基於處理器的系統包括由記憶體域中的記憶體域供電電壓(例如,V
DD)供電的其他記憶體陣列。作為實例,位元線驅動器電路被配置為將位元線預充電至從記憶體域供電電壓的電壓位準減小的預充電電壓位準(例如,V
DD/2)。經由減小位元線上的預充電電壓,減小了用於對CIM電路的讀取操作的動態功率。用於讀取操作的位元線預充電中的電壓擺動亦被減小,從而進一步減小了針對讀取操作而耗散的動態功率。然而,減小用於讀取操作的位元線預充電電壓可能引起SRAM位元單元的存取電路與儲存電路之間的讀取干擾問題。例如,在互補六電晶體(6T)SRAM位元單元電路中,在位元線上針對讀取操作斷言的減小的位元線預充電電壓可能不會使反相器電路中的下拉N型場效應電晶體(FET)(NFET)增強被儲存的邏輯「0」值以足夠快地放電,以避免相應的存取電路導致電荷在其儲存節點上積聚。此舉可能會導致補儲存節點上的電壓翻轉。
因此,在另外的示例性態樣,CIM電路中的SRAM位元單元電路可以被提供作為五電晶體(5T)SRAM位元單元電路。5T SRAM位元單元包括與補反相器電路交叉耦合的真反相器電路。單個存取電路被耦合在單個位元線與真反相器電路之間。與6T補SRAM位元單元電路相比,5T SRAM位元單元電路消除了被耦合到補反相器電路的補存取電路(例如,補存取電晶體)和補位元線。經由在CIM電路的5T SRAM位元單元電路中消除補存取電路,減小或避免了可能存在於5T SRAM位元單元電路中的補反相器電路與補存取電路之間的、由在讀取操作中將位元線充電到減小的預充電電壓引起的爭用。同樣經由在CIM電路的5T SRAM位元單元電路中消除補位元線和補存取電晶體,可以進一步減小CIM電路的動態和待機功率。
位元線和補位元線被提供在6T SRAM位元單元中以提供位元線與補位元線之間的差分電壓,來實現CIM電路中可能不需要的針對讀取操作的高讀取靈敏度。例如,在採用CIM電路的應用中,高準確性讀取感測可能不如採用6T SRAM位元單元的記憶體應用一般重要。
此外,在讀取操作中,經由減小在被耦合到CIM電路的5T SRAM位元單元電路的位元線上斷言的預充電電壓,減小的位元線預充電電壓與為SRAM位元單元供電的供電電壓之間的電壓裕度可以增加。因此,經由對CIM電路的讀取操作採用減小的位元線預充電電壓,存在可用的電壓裕度以允許減小被提供給CIM電路的5T SRAM位元單元電路的供電電壓。減小CIM電路的供電電壓可以進一步減小CIM電路的待機和動態功率,而不會增加其5T SRAM位元單元電路中讀取干擾的可能性。減小的供電電壓可以允許5T SRAM位元單元中的儲存節點在讀取操作中仍然足夠快地放電以避免讀取干擾狀況,因為要在5T SRAM位元單元中放電的位元線預充電電壓亦被減小。
然而,在被提供給沒有補存取電晶體的5T SRAM位元單元電路的減小的供電電壓的情況下,將資料寫入到5T SRAM位元單元電路中可能困難。此情形是因為5T SRAM位元單元電路中較弱的NFET存取電晶體與較強的下拉NFET電晶體之間的寫入爭用問題。因此,在另外的示例性態樣,被提供給5T SRAM位元單元電路的供電電壓在寫入操作中可以被升高,以提供寫入輔助來避免或減小CIM電路的5T SRAM位元單元電路中的寫入爭用的風險。此外,由於採用CIM電路的機器學習應用可能涉及比寫入操作多得多的讀取操作,因此升高對CIM電路的寫入操作的供電電壓可以不對CIM電路的整體動態功耗產生顯著影響。此外,若需要,被提供給CIM電路中的5T SRAM位元單元電路的供電電壓亦可以可選地在讀取操作中被升高,以向SRAM位元單元電路提供讀取輔助。提供讀取輔助可以使對SRAM位元單元電路的讀取操作更快,從而在讀取操作中消耗更少的動態功率。
在另一態樣,CIM系統可以在一或多個相應的CIM陣列電路中包括一或多個CIM電路陣列,一或多個相應的CIM陣列電路各自被耦合到共用全域位元線。為了減小在給定CIM陣列電路中被耦合到CIM電路的位元線的線電容,位元線驅動器電路可以在實體上位於其相應的CIM陣列電路中的末端CIM電路之間。例如,位元線驅動器電路可以在實體上位於CIM陣列電路的中間,以減小位元線驅動器電路與CIM陣列電路中最遠的CIM電路之間的距離。作為實例,可以將一個位元線提供給由位元線驅動器電路驅動的給定CIM陣列電路中的一半CIM電路,而將由位元線驅動器電路提供和驅動的另一位元線提供給另一半CIM電路。以該方式,與被耦合到CIM陣列中的所有CIM電路的單個位元線相比,兩(2)個位元線各自具有被減小大約一半的長度。此舉允許減小由位元線驅動器電路驅動的位元線的長度,從而減小位元線的線電容。減小位元線的線電容可以減小針對讀取操作對位元線預充電和針對寫入操作斷言寫入資料的時間,從而減小CIM電路消耗的動態功率。
在另一示例性態樣,電容器電路可以被提供並且被耦合到CIM電路中的乘法電路的乘法輸出節點。電容器電路儲存表示CIM電路的乘法運算的乘積輸出以在全域位元線上被斷言和累積的電荷。電容器電路可以被提供作為非揮發性(NV)電容器電路,其具有經由功率循環以非揮發性方式保持電荷的能力。
在另一示例性態樣,用於對全域位元線預充電的全域位元線驅動器亦可以被配置為:在減小的供電電壓(例如,V
DD/2)下對全域位元線進行預充電。全域位元線可以被耦合到例如CIM列陣列電路中的CIM電路的複數個乘法輸出,其中乘法輸出的電荷在乘法運算中被累積在全域位元線上。在CIM電路被啟用以執行乘法運算之前,全域位元線被預充電。減小全域位元線上的預充電電壓可以減小在給定CIM電路陣列中用於乘法運算的CIM電路的動態功率。
在該點上,一態樣,提供了一種CIM電路。CIM電路包括位元線。CIM電路亦包括SRAM位元單元。SRAM位元單元電路包括儲存電路,儲存電路包括:真反相器電路,其包括真反相器輸入節點和真反相器輸出節點,該真反相器輸出節點包括真儲存節點;及補反相器電路,其包括補反相器輸入節點和補反相器輸出節點,該補反相器輸入節點被耦合到真反相器輸出節點,該補反相器輸出節點包括僅被耦合到真反相器輸入節點的補儲存節點。SRAM位元單元電路亦包括被耦合到真儲存節點的存取電路。CIM電路亦包括乘法電路,乘法電路包括第一乘法輸入節點、第二乘法輸入節點和乘法輸出節點,該第一乘法輸入節點被耦合到儲存電路。乘法電路被配置為:在乘法輸出節點上,產生第一乘法輸入節點上的第一乘法輸入與第二乘法輸入節點上的第二乘法輸入的乘積。
在另一示例性態樣,提供了一種執行CIM操作的方法。方法包括以下步驟:啟用存取電路以將位元線耦合到SRAM位元單元電路的真反相器電路的真儲存節點。SRAM位元單元電路包括:真反相器電路,其包括真反相器輸入節點和真反相器輸出節點,該真反相器輸出節點包括真儲存節點;及補反相器電路,其包括補反相器輸入節點和補反相器輸出節點,該補反相器輸入節點被耦合到真反相器輸出節點,該補反相器輸出節點包括僅被耦合到真反相器輸入節點的補儲存節點。方法亦包括以下步驟:將來自真儲存節點的真資料值作為第一乘法輸入提供給乘法電路的第一乘法輸入節點。方法亦包括以下步驟:基於第一乘法輸入與第二乘法輸入的乘法,在乘法電路的乘法輸出節點上產生乘積。
在另一個示例性態樣,提供了一種記憶體系統。記憶體系統包括CIM陣列電路,該CIM陣列電路包括複數個CIM電路。CIM陣列電路之每一者CIM電路包括SRAM位元單元電路,SRAM位元單元電路包括儲存電路,該儲存電路包括:真反相器電路,其包括真反相器輸入節點和真反相器輸出節點,真反相器輸出節點包括真儲存節點;補反相器電路,其包括補反相器輸入節點和補反相器輸出節點,該補反相器輸入節點被耦合到真反相器輸出節點,該補反相器輸出節點包括僅被耦合到真反相器輸入節點的補儲存節點;及被耦合到真儲存節點的存取電路。CIM陣列電路之每一者CIM電路亦包括乘法電路,乘法電路包括第一乘法輸入節點、第二乘法輸入節點和乘法輸出節點,該第一乘法輸入節點被耦合到儲存電路。乘法電路被配置為:在乘法輸出節點上,產生第一乘法輸入節點上的第一乘法輸入與第二乘法輸入節點上的第二乘法輸入的乘積。CIM陣列電路亦包括第一位元線,第一位元線被耦合到複數個CIM電路的第一子集的存取電路之每一者存取電路。CIM陣列電路亦包括第二位元線,第二位元線被耦合到複數個CIM電路的第二子集的存取電路之每一者存取電路,複數個CIM電路的第二子集與複數個CIM電路的第一子集不同。CIM陣列電路亦包括被耦合到第一位元線和第二位元線的位元線驅動器電路。位元線驅動器電路被配置為:將第一位元線預充電至真讀取資料的第一預充電電壓,並且將第二位元線預充電至補讀取資料的第二預充電電壓。
現在參考附圖,描述了本案的幾個示例性態樣。「示例性」一詞在本文中用於表示「用作示例、實例或說明」。在本文中被描述為「示例性」的任何態樣不必被解釋為比其他態樣更佳或有利。
詳細描述中所揭示的態樣包括採用CIM電路的低功率記憶體內計算(CIM)系統,CIM電路採用靜態隨機存取記憶體(SRAM)位元單元。作為非限制性實例,CIM電路可以用於乘法與累加(MAC)操作,諸如在機器學習應用中採用的彼等運算。CIM電路各自包括SRAM位元單元電路,該SRAM位元單元電路包括用於儲存資料的儲存電路。經由預充電位元線並且啟用被耦合在位元線和儲存電路之間的存取電路(例如存取電晶體),可以從SRAM位元單元電路的儲存電路讀取資料。經由在位元線上斷言所需邏輯位準的電壓並且啟用存取電路,可以將資料寫入到SRAM位元單元電路的儲存電路。在本文所揭示的態樣中,CIM電路亦可以在輸入資料和SRAM位元單元的儲存電路中的儲存資料之間執行乘法運算。在該點上,CIM電路包括被耦合到SRAM位元單元電路的乘法電路。作為實例,乘法電路可以是基於異或(XOR)的電路,其被配置為執行基於XOR的邏輯運算(例如,XOR或異或非(XNOR)運算)來執行乘法運算。CIM電路被配置為執行乘法電路中接收的輸入信號上的輸入資料與來自SRAM位元單元電路中的儲存資料的權重資料的乘法。CIM系統可以採用大量的CIM電路。因此,可能期望減小CIM電路中的待機及/或動態功耗以減小CIM系統中的整體功耗。
在該點上,在示例性態樣,CIM系統包括位元線驅動器電路,該位元線驅動器電路被配置為對被耦合到CIM電路的SRAM位元單元電路的位元線預充電以用於讀取操作。由於位元線驅動器電路可以被耦合到多於一個的CIM電路,因此待讀取的SRAM位元單元電路的存取電路亦被啟用,以使在儲存電路中儲存的電荷可以經由存取電路被傳遞到位元線。為了減小對CIM電路的讀取操作中的動態功率,位元線驅動器電路可以被配置為將位元線預充電至減小的預充電電壓。例如,CIM系統可以被包括在基於處理器的系統中,該基於處理器的系統包括由記憶體域中的記憶體域供電電壓(例如,V
DD)供電的其他記憶體陣列。作為實例,位元線驅動器電路被配置為將位元線預充電至從記憶體域供電電壓的電壓位準減小的預充電電壓位準(例如,V
DD/2)。經由減小位元線上的預充電電壓,減小了對CIM電路的讀取操作的動態功率。用於讀取操作的位元線預充電中的電壓擺動亦被減小,從而進一步減小了讀取操作耗散的動態功率。然而,減小讀取操作的位元線預充電電壓可能引起SRAM位元單元的存取電路與儲存電路之間的讀取干擾問題。例如,在互補六電晶體(6T)SRAM位元單元電路中,在位元線上針對讀取操作斷言的減小的位元線預充電電壓可能不會使反相器電路中的下拉N型場效應電晶體(FET)(NFET)增強被儲存的邏輯「0」值以足夠快地放電,以避免相應的存取電路使電荷在其儲存節點上積聚。此舉可能會導致補儲存節點上的電壓翻轉。
因此,在另外的示例性態樣,CIM電路中的SRAM位元單元電路可以被提供作為五電晶體(5T)SRAM位元單元電路。5T SRAM位元單元包括與補反相器電路交叉耦合的真反相器電路。單個存取電路被耦合在單個位元線和真反相器電路之間。與6T補SRAM位元單元電路相比,5T SRAM位元單元電路消除了被耦合到補反相器電路的補位元線和補存取電路(例如,補存取電晶體)。經由在CIM電路的5T SRAM位元單元電路中消除補存取電路,減小或避免了可能存在於5T SRAM位元單元電路中的補反相器電路與補存取電路之間的、由在讀取操作中將位元線充電到減小的預充電電壓引起的爭用。同樣經由在CIM電路的5T SRAM位元單元電路中消除補位元線和補存取電晶體,可以進一步減小CIM電路的動態和待機功率。
位元線和補位元線被提供在6T SRAM位元單元中以提供位元線與補位元線之間的差分電壓,來實現CIM電路中可能不需要的針對讀取操作的高讀取靈敏度。例如,在採用CIM電路的應用中,高準確性讀取感測可能不如採用6T SRAM位元單元的記憶體應用一般重要。
此外,在讀取操作中,經由減小在被耦合到CIM電路的5T SRAM位元單元電路的位元線上斷言的預充電電壓,減小的位元線預充電電壓與為SRAM位元單元供電的供電電壓之間的電壓裕度可以增加。因此,經由對CIM電路的讀取操作採用減小的位元線預充電電壓,存在可用的電壓裕度以允許減小被提供給CIM電路的5T SRAM位元單元電路的供電電壓。減小CIM電路的供電電壓可以進一步減小CIM電路的待機和動態功率,而不會增加其5T SRAM位元單元電路中讀取干擾的可能性。減小的供電電壓可以允許5T SRAM位元單元中的儲存節點在讀取操作中仍然足夠快地放電以避免讀取干擾狀況,因為要在5T SRAM位元單元中放電的位元線預充電電壓亦被減小。
然而,在被提供給沒有補存取電晶體的5T SRAM位元單元電路的減小的供電電壓的情況下,將資料寫入到5T SRAM位元單元電路中可能困難。此情形是因為5T SRAM位元單元電路中較弱的NFET存取電晶體與較強的下拉NFET電晶體之間的寫入爭用問題。因此,在另外的示例性態樣,被提供給5T SRAM位元單元電路的供電電壓在寫入操作中可以被升高,以提供寫入輔助來避免或減小CIM電路的5T SRAM位元單元電路中的寫入爭用的風險。此外,由於採用CIM電路的機器學習應用可能涉及比寫入操作多得多的讀取操作,因此升高對CIM電路的寫入操作的供電電壓可以不對CIM電路的整體動態功耗產生顯著影響。此外,若需要,被提供給CIM電路中的5T SRAM位元單元電路的供電電壓亦可以可選地在讀取操作中被升高,以向SRAM位元單元電路提供讀取輔助。提供讀取輔助可以使對SRAM位元單元電路的讀取操作更快,從而在讀取操作中消耗更少的動態功率。
在另一態樣,CIM系統可以在一或多個相應的CIM陣列電路中包括一或多個CIM電路陣列,一或多個相應的CIM陣列電路各自被耦合到共用全域位元線。為了減小在給定CIM陣列電路中被耦合到CIM電路的位元線的線電容,位元線驅動器電路可以在實體上位於其相應的CIM陣列電路中的末端CIM電路之間。例如,位元線驅動器電路可以在實體上位於CIM陣列電路的中間,以減小位元線驅動器電路與CIM陣列電路中最遠的CIM電路之間的距離。作為實例,可以將一個位元線提供給由位元線驅動器電路驅動的給定CIM陣列電路中的一半CIM電路,而將由位元線驅動器電路提供和驅動的另一位元線提供給另一半CIM電路。以該方式,與被耦合到CIM陣列中的所有CIM電路的單個位元線相比,兩(2)個位元線各自具有被減小大約一半的長度。此舉允許減小由位元線驅動器電路驅動的位元線的長度,從而減小位元線的線電容。減小位元線的線電容可以減小針對讀取操作對位元線預充電和針對寫入操作斷言寫入資料的時間,從而減小CIM電路消耗的動態功率。
在另一示例性態樣,電容器電路可以被提供並且被耦合到CIM電路中的乘法電路的乘法輸出節點。電容器電路儲存表示CIM電路的乘法運算的乘積輸出以在全域位元線上被斷言和累積的電荷。電容器電路可以被提供作為非揮發性(NV)電容器電路,其具有經由功率循環以非揮發性方式保持電荷的能力。
在另一示例性態樣,用於對全域位元線預充電的全域位元線驅動器亦可以被配置為:在減小的供電電壓(例如,V
DD/2)下對全域位元線進行預充電。全域位元線可以被耦合到例如CIM列陣列電路中的CIM電路的複數個乘法輸出,其中乘法輸出的電荷在乘法運算中被累積在全域位元線上。在CIM電路被啟用以執行乘法運算之前,全域位元線被預充電。減小全域位元線上的預充電電壓可以減小在給定CIM電路陣列中用於乘法運算的CIM電路的動態功率。
如前述,CIM電路包括可以提供二進位乘法運算的基於XOR的電路。圖2是XNOR邏輯真值表200的圖,以顯示對兩個輸入X和Y進行XNOR運算以產生XNOR輸出202等效於輸入X與Y的二進位乘法運算。輸入X與Y的二進位乘法在皆是「0」或「1」的值時等於「1」,「1」是圖2中所示的XNOR運算的XNOR輸出202。輸入X與Y的二進位乘法在一個具有值「0」並且另一個具有值「1」時等於「0」,「0」亦是如圖2中所示的XNOR運算的XNOR輸出202。因此,用於執行基於XOR的邏輯運算(諸如XNOR邏輯運算)的基於XOR的電路可以用於二進位乘法。基於XOR的電路可以與記憶體位元單元結合,來執行在記憶體位元單元中儲存的值與第二輸入值的二進位乘法。該電路佈置針對機器學習應用特別有用,其中作為基於XOR的電路的輸入值的權重值是記憶體位元單元中的儲存值。
在論述包括記憶體位元單元的CIM電路的實例之前,每個記憶體位元單元各自具有整合乘法電路,整合乘法電路被配置為在圖4處開始執行低功率乘法運算,下文首先參考圖3描述示例性CIM電路,其包括6T SRAM位元單元電路形式的記憶體位元單元。
在該點上,圖3是示例性CIM電路300的圖,其包括以被耦合到乘法電路306的6T SRAM位元單元電路304形式的記憶體位元單元電路302。在該實例中,乘法電路306是以基於XOR的電路308的形式,基於XOR的電路308被配置為執行基於XOR的邏輯運算(例如,XNOR邏輯運算)。CIM電路300被配置為執行作為6T SRAM位元單元電路304中的儲存資料的儲存資料值與被提供給乘法電路306的輸入資料值X的二進位乘法。輸入資料值X由圖3中的標記「X」表示。輸入資料值X的補資料值由圖3中的標記「X
B」表示。複數個CIM電路300可以以行和列格式被佈置在記憶體陣列中以提供MAC操作。例如,CIM電路300可以被佈置為列陣列,其中CIM電路300的輸出之每一者輸出被耦合到共用全域位元線(GBL)310,來以GBL 310上的電荷作為乘積的形式,在乘法輸出節點314上提供來自乘法電路306的二進位乘法輸出312。以該方式,從GBL 310上的CIM電路300之每一者CIM電路斷言的二進位乘法輸出312的電荷可以被累積為表示點積的累積電荷,以提供累積操作作為MAC操作的部分。
繼續參考圖3,6T SRAM位元單元電路304包括儲存電路316,儲存電路316包括真反相器電路318T和補反相器電路318C。真反相器電路318T和補反相器電路318C各自包括相應的上拉真和補正(P)型場效應電晶體(FET)(PFET)P
T、P
C和下拉真和補負(N)型FET(NFET)N
T、N
C,總共四(4)個電晶體。真PFET和補PFET P
T、P
C被耦合到正供電電壓軌320P,正供電電壓軌320P被配置為接收供電電壓V
DD。真NFET和補NFET N
T、N
C被耦合到負供電電壓軌320N,其在該實例中是接地節點並且被配置為接收接地電壓V
SS。真反相器電路318T具有真反相器輸入節點322T-I,真反相器輸入節點322T-I被配置為接收輸入信號以在真反相器輸出節點324T-O上產生具有與輸入信號的邏輯值相反的邏輯值的輸出信號。例如,若真反相器輸入節點322T-I上的輸入信號是正供電電壓V
DD的電壓,則真反相器電路318T被配置為:基於接地電壓V
SS,在真反相器輸出節點324T-O上產生輸出信號。若真反相器輸入節點322T-I上的輸入信號是接地電壓V
SS的電壓,則真反相器電路318T被配置為:基於正供電電壓V
DD,在真反相器輸出節點324T-O上產生輸出信號。補反相器電路318C被配置為在其補反相器輸出節點324C-O上產生輸出信號,該輸出信號具有與真反相器電路318T在真反相器輸出節點324T-O上產生的輸出信號相反的邏輯值。
真反相器電路318T和補反相器電路318C經由真反相器輸入節點322T-I和補反相器輸入節點322C-I而彼此交叉耦合,真反相器輸入節點322T-I被耦合到補反相器輸出節點324C-O,並且補反相器輸入節點322C-I被耦合到真反相器輸出節點324T-O。被耦合到真反相器輸出節點324T-O的補反相器輸入節點322C-I形成真儲存節點326T。被耦合到補反相器輸出節點324C-O的真反相器輸入節點322T-I形成補儲存節點326C。SRAM位元單元電路304將在真儲存節點326T處表示補邏輯值的電壓強制到在補儲存節點326C處的電壓。真反相器電路318T與補反相器電路318C的交叉耦合維持在真儲存節點326T和補儲存節點326C上的電壓被加強以進行保持,直到寫入操作出現,寫入操作改變了真儲存節點326T和補儲存節點326C上的儲存電壓。
為了在CIM電路300的6T SRAM位元單元電路304中的儲存電路316中執行儲存資料的乘法運算,在該實例中,以XNOR電路328形式的乘法電路306被配置為執行如圖2中所示的XNOR邏輯運算。XNOR電路328包括真和補PFET 330T、330C,真和補PFET 330T、330C包括被耦合到相應的真和補乘法輸入節點332T、332C的相應閘極G。真和補PFET 330T、330C的閘極G被配置為接收被表示作為輸入資料X和X
B的相應輸入資料信號。一次僅被儲存在相應真和補儲存節點326T、326C中的一個儲存節點處的輸入資料X
B、X經由XNOR電路328的相應PFET 330T、330C被傳遞到乘法輸出節點314,因為一次僅PFET 330T、330C中的一個PFET將基於輸入資料X與X
B之間的補電壓而啟用。XNOR電路328被配置為在作為附加的相應乘法輸入節點的真和補儲存節點326T、326C上的相應儲存資料與相應真資料X
B、X之間執行XNOR運算,以在乘法輸出節點314上產生乘法輸出312。例如,被儲存在真儲存節點326T上的資料可以是權重資料,權重資料經由用於機器學習應用的乘法電路306乘以輸入資料X
B。CIM電路300中的乘法運算類似於6T SRAM記憶體位元單元中的讀取操作,因為被儲存在真和補儲存節點326T、326C處的儲存資料亦被放電到位元線BL和補位元線BLB。
CIM電路300亦包括電容器電路334,電容器電路334被配置為儲存電荷以鎖存乘法輸出312。CIM電路300亦包括傳遞閘336,傳遞閘336作為選擇設備來控制CIM電路300中的電流流動,以執行乘法運算並且控制將電容器電路334中的鎖存電荷到GBL 310的傳遞。以該方式,被傳遞到GBL 310的表示乘法輸出312的電荷可以與表示來自其他CIM電路的乘法輸出的其他電荷一起被累積作為點積來提供MAC操作。
為了從6T SRAM位元單元電路304的儲存電路316讀取資料,亦提供了位元線驅動器電路338。位元線驅動器電路338被配置為:基於為SRAM位元單元電路304供電的供電電壓V
DD,將位元線BL和補位元線BLB預充電至補電壓位準,來在讀取操作中讀取被儲存在儲存電路316中的資料。被耦合到真和補存取電路340T、340C(在本實例中是NFET,在SRAM位元單元電路304中提供總共六(6)個電晶體)的閘極G的字線(WL)被斷言,以評估真儲存節點326T和補儲存節點326C上的差分電壓。例如,若表示邏輯值「1」的電壓被儲存在真儲存節點326T,表示邏輯值位準「0」的電壓被儲存在補儲存節點326C,則PFET P
T維持真儲存節點326T上的電荷。真存取電路340T將真儲存節點326T上的電荷傳遞到位元線BL,以表示在儲存節點326T中被儲存的邏輯「1」值。表示被儲存在真儲存節點326T處的邏輯值「1」的電壓使補NFET N
C對補位元線BLB上的預充電電壓進行放電,來表示補儲存節點326C中的邏輯「0」值。
為了將資料寫入6T SRAM位元單元電路304的儲存電路316,位元線驅動器電路338亦被配置為:基於為6T SRAM位元單元電路304供電的供電電壓V
DD,將寫入資料和補寫入資料斷言為相應位元線BL和補位元線BLB上的寫入電壓和補寫入電壓。此舉使位元線BL和補位元線BLB上的寫入電壓作為寫入資料經由啟用的真和補存取電路340T、340C被傳遞到相應的真和補儲存節點326T、326C。
CIM電路300在其操作中消耗的有功功率或動態功率是正供電電壓軌320P上的供電電壓V
DD的電壓位準、位元線BL和補位元線BLB的預充電和放電中的電壓擺動,以及位元線BL和補位元線BLB的電容的函數。在正和負供電電壓軌320P、320N處的供電電壓V
DD、V
SS的電壓位準影響由在6T SRAM位元單元電路304中的真和補反相器電路318T、318C以及在乘法運算中的乘法電路306消耗的有功功率。正和負供電電壓軌320P、320N處的供電電壓V
DD、V
SS的電壓位準亦決定了當對位元線BL和補位元線BLB預充電以用於對6T SRAM位元單元電路304進行寫入操作時的擺動電壓位準。位元線BL和補位元線BLB的線電容(根據其長度而增加)亦影響CIM電路300用於乘法和寫入操作的動態功耗。位元線BL和補位元線BLB的線電容增加導致充電時間的增加,並且因此導致對位元線BL和補位元線BLB預充電和放電的動態功率的增加。CIM電路300的動態功率亦被乘法運算消耗,導致真和補儲存節點326T、326C中儲存的電壓被放電到位元線BL和補位元線BLB,類似於習知6T SRAM記憶體位元單元中的讀取操作。
正和負供電電壓軌320P、320N處的供電電壓V
DD、V
SS的電壓位準亦影響由CIM電路300消耗的待機(亦即閒置)功率。在正供電電壓軌320P處的供電電壓V
DD在待機操作期間向6T SRAM位元單元電路304的真反相器電路318T和補反相器電路318C供電,來增強在儲存電路316中的真和補儲存節點326T、326C處作為儲存資料的電壓作為儲存資料。正和負供電電壓軌320P、320N處的供電電壓V
DD、V
SS的電壓位準亦影響真和補存取電路340T、340C中的漏電流的量,從而影響6T SRAM位元單元電路304的功耗。
期望減小CIM電路300的功耗,尤其是在諸如行動設備的低功率應用中被採用時。例如,記憶體陣列可以包含大量CIM電路300。因此,CIM電路300消耗的有功功率和待機功率乘以記憶體陣列中存在的CIM電路300的數目。
在該點上,圖4是被包括在CIM系統401中的示例性CIM電路400的圖。CIM系統401可以包括複數個其他CIM電路400(未圖示)。CIM電路400包括記憶體位元單元電路402,與圖3中的CIM電路300中的6T SRAM位元單元電路304相反,其包括5T SRAM位元單元電路404。5T SRAM位元單元電路404被耦合到乘法電路406,乘法電路406在本實例中是基於XOR的電路408,以執行5T SRAM位元單元電路404中的儲存資料與被提供給乘法電路406的輸入資料的乘法運算。5T SRAM位元單元電路404消除了如圖3中的6T SRAM位元單元電路304中存在的補存取電路340C一般提供的補存取電路。5T SRAM位元單元電路404亦消除了如圖3中的6T SRAM位元單元電路304中的補位元線BLB一般存在的補位元線電路。如下文更詳細論述的,以該方式在CIM電路400中提供5T SRAM位元單元電路404促進CIM電路400的操作來執行乘法(亦即,讀取)和寫入操作,同時比圖3中的CIM電路300消耗更少的動態功率和待機功率。
在該點上,如圖4中所示,5T SRAM位元單元電路404包括儲存電路416,儲存電路416包括真反相器電路418T和補反相器電路418C。真反相器電路418T和補反相器電路418C各自包括相應的上拉真和補PFET P
T、P
C和下拉真和補負NFET N
T、N
C,總共四(4)個電晶體。真PFET P
T被耦合到第一正供電電壓軌420P(1),第一正供電電壓軌420P(1)被配置為接收第一供電電壓V
DL ( 1 )。補PFET P
C被耦合到第二正供電電壓軌420P(2),第二正供電電壓軌420P(2)被配置為接收第二供電電壓V
DL ( 2 )。在閒置/待機操作中,第二供電電壓V
DL ( 2 )可以等於或是基於第一供電電壓V
DL ( 1 ),以保持真和補儲存節點426T、426C中的儲存資料。真NFET N
T被耦合到第一負供電電壓軌420N(1),第一負供電電壓軌420N(1)被配置為接收第一接地電壓V
SL ( 1 )(在該實例中是接地電壓)。補NFET N
C被耦合到第二負供電電壓軌420N(2),第二負供電電壓軌420N(2)被配置為接收第二接地電壓V
SL ( 2 )(在該實例中是接地電壓)。在閒置/待機操作中,第二接地電壓V
SL ( 2 )可以等於或是基於第一接地電壓V
SL ( 1 ),以保持真和補儲存節點426T、426C中的儲存資料。
真反相器電路418T具有真反相器輸入節點422T-I,真反相器輸入節點422T-I被配置為接收輸入信號以在真反相器輸出節點424T-O上產生具有與輸入信號的邏輯值相反的邏輯值的輸出信號。例如,若真反相器輸入節點422T-I上的輸入信號是基於第一正供電電壓V
DL ( 1 )的電壓,則真反相器電路418T被配置為:基於接地電壓V
SL ( 1 ),在真反相器輸出節點424T-O上產生輸出信號。若真反相器輸入節點422T-I上的輸入信號是基於第一接地電壓V
SL ( 1 )的電壓,則真反相器電路418T被配置為:基於第一正供電電壓V
DL ( 1 ),在真反相器輸出節點424T-O上產生輸出信號。
補反相器電路418C具有補反相器輸入節點422C-I,補反相器輸入節點422C-I被配置為:接收輸入信號,在補反相器輸出節點424C-O上產生與輸入信號的邏輯值相反的邏輯值的輸出信號。例如,若補反相器輸入節點422C-I上的輸入信號是基於第二正供電電壓V
DL ( 2 )的電壓,則補反相器電路418C被配置為:基於第二接地電壓V
SL ( 2 ),在補反相器輸出節點424C-O上產生輸出信號。若補反相器輸入節點422C-I上的輸入信號是基於第二接地電壓V
SL ( 2 )的電壓,則補反相器電路418C被配置為基於第二正供電電壓V
DL ( 2 ),在真反相器輸出節點424T-O上產生輸出信號。
真反相器電路418T和補反相器電路418C經由真反相器輸入節點422T-I和補反相器輸入節點422C-I而彼此交叉耦合,真反相器輸入節點422T-I被耦合到補反相器輸出節點424C-O,並且補反相器輸入節點422C-I被耦合到真反相器輸出節點424T-O。被耦合到真反相器輸出節點424T-O的補反相器輸入節點422C-I形成真儲存節點426T。被耦合到補反相器輸出節點424C-O的真反相器輸入節點422T-I形成補儲存節點426C。真儲存節點426T處的電壓的電壓位準是補儲存節點426C處的電壓的補。真和補反相器電路418T、418C的交叉耦合保持真和補儲存節點426T、426C上的電壓被增強以進行保持,直到改變所儲存的電壓的寫入操作出現。
為了在圖4中的CIM電路400的5T SRAM位元單元電路404中的儲存電路416中執行儲存資料的乘法運算,本實例中以XNOR電路428形式的乘法電路406被配置為執行如圖2中所示的XNOR邏輯運算。XNOR電路428包括真和補PFET 430T、430C,真和補PFET 430T、430C包括被耦合到相應真和補乘法輸入節點432T、432C的相應閘極G。真和補PFET 430T、430C的汲極D被耦合到相應的補和真儲存節點426C、426T。真和補PFET 430T、430C的源極S被耦合到XNOR電路428的乘法輸出節點414。真和補PFET 430T、430C的閘極G被配置為接收被表示為輸入資料X和X
B的相應輸入信號。一次僅被儲存在補和真儲存節點426C、426T中的一個儲存節點處的輸入資料X和X
B經由XNOR電路428的相應真和補PFET 430T、430C被傳遞到乘法輸出節點414,因為一次僅PFET 430T、430C中的一個PFET將基於輸入資料X和X
B之間的互補電壓而啟用。XNOR電路428被配置為在作為附加的相應乘法輸入節點的補和真儲存節點426C、426T上的相應儲存資料與相應真輸入信號X和X
B之間執行XNOR邏輯運算,以在乘法輸出節點414上產生乘法輸出412。例如,針對機器學習應用,被儲存在真儲存節點426T上的資料可以是與輸入資料X相乘的權重資料。CIM電路400執行的乘法運算類似於SRAM位元單元電路的讀取操作,因為真和補儲存節點426T、426C上的儲存資料亦被放電到位元線BL。
圖4中的CIM電路400亦包括電容器電路434,電容器電路434被配置為儲存電荷以鎖存乘法輸出412。電容器電路434可以是電容器電路,在CIM電路400沒有被供電的情況下,該電容器電路將最終丟失其電荷。或者,電容器電路434可以是非揮發性(NV)電容器電路,該非揮發性(NV)電容器電路被配置為即使在沒有功率的情況下亦保持電荷。以該方式,若電容器電路434被提供作為NV電容器電路,則電容器電路434將保持表示CIM電路400的乘法輸出412的電荷,即使經由CIM電路400的供電循環。例如,電容器電路434可以是鐵電電容器,該鐵電電容器可以經由外部電場對薄鐵電膜的極化來儲存電荷,並且即使在外部電場被移除的情況下亦保持極化。CIM電路400亦包括傳輸閘436,傳輸閘436作為選擇設備來控制CIM電路400中的電流流動,以執行乘法運算並且控制電容器電路434中的鎖存電荷到GBL 410的傳遞。以該方式,被傳遞到GBL 410的表示乘法輸出412的電荷可以與表示來自其他CIM電路的乘法輸出的其他電荷一起被累積來提供MAC操作。
為了從5T SRAM位元單元電路404的儲存電路416讀取資料,CIM系統401中亦提供了位元線驅動器電路438。位元線驅動器電路438被配置為將位元線BL預充電到預充電電壓以進行讀取操作。為了執行讀取操作,位元線驅動器電路438向位元線BL施加預充電電壓。被耦合到存取電路440(在本實例中被提供作為NFET,在SRAM位元單元電路404中提供總共五(5)個電晶體)的閘極G的字線(WL)亦被斷言,以啟用存取電路440來將位元線BL電耦合到真儲存節點426T。例如,在讀取操作中,若表示邏輯值「1」的電壓被儲存在真儲存節點426T,表示邏輯值「0」的電壓被儲存在補儲存節點426C,則真反相器電路418T中的真PFET P
T在真儲存節點426T上維持來自供電電壓V
DD的電荷,該電荷被傳遞到位元線BL。然而,若表示邏輯值「0」的電壓被儲存在真儲存節點426T,表示邏輯值「1」的電壓被儲存在補儲存節點426C並且使真PFET P
T被關斷。真NFET N
T導通以將真儲存節點426T和位元線BL拉到第一負供電電壓軌420N(1)。存取電路440將真儲存節點426T的電荷傳遞到位元線BL以進行讀取操作。位元線BL上的電壓位準可以被感測,以決定被儲存在5T SRAM位元單元電路404的真儲存節點426T中的資料值的邏輯。
為了減小CIM電路400的動態功率,在該實例中,位元線驅動器電路438被配置為:將5T SRAM位元單元電路404中的位元線BL預充電至減小的預充電電壓V
PRE。例如,CIM系統401可以被包括在基於處理器的系統中,基於處理器的系統包括由記憶體域中的記憶體域供電電壓(例如,V
DD)供電的其他記憶體陣列。位元線驅動器電路438可以被配置為:將位元線BL預充電至減小的預充電電壓V
PRE,減小的預充電電壓V
PRE的電壓位準低於用於對CIM電路400的寫入操作的記憶體域供電電壓V
DD。作為實例,充電電壓V
PRE可以是記憶體域供電電壓V
DD的一半(例如,V
DD/2)。經由減小位元線BL上的預充電電壓V
PRE,減小了CIM電路400中用於寫入操作的動態功率。此外,與基於記憶體域供電電壓V
DD的電壓對位元線BL進行預充電相比,在CIM電路400中將位元線BL預充電到預充電電壓V
PRE的預充電時間減小。此舉提高了預充電時間的速度,以提供更快的寫入操作,並且因此減小了寫入操作的動態功率。用於讀取操作的位元線BL預充電中的電壓擺動亦被減小,從而進一步減小了CIM電路400中針對讀取操作消耗的動態功率。
在CIM電路400中提供SRAM位元單元電路作為5T SRAM位元單元電路404,可以允許針對讀取操作減小在位元線BL上被斷言的預充電電壓V
PRE,而不會引起5T SRAM位元單元電路404的存取電路440與儲存電路416之間的讀取干擾問題。此情形是因為在5T SRAM位元單元電路404中不存在補存取電路,補存取電路如在例如圖3中的6T SRAM位元單元電路304中作為補存取電路340C而存在。若在5T SRAM位元單元電路404中包括被耦合到補儲存節點426C的補存取電路,則位元線驅動器電路438針對讀取操作在位元線BL上斷言的減小的預充電電壓V
PRE會削弱補反相器電路418C中的下拉補NFET N
C。在該情況下,下拉補NFET N
C可能不能足夠快地從補位元線釋放由補存取電路傳遞的預充電電壓以防止由於減小的預充電電壓引起的積累電荷在補儲存節點426C上出現。隨後,此舉會使真PFET P
T被關斷,並且在讀取操作中引起真儲存節點426T上的電壓翻轉。因此,此舉會在讀取操作中引起補儲存節點426C上的電壓翻轉。
因此,經由在CIM電路400中將SRAM位元單元電路提供作為5T SRAM位元單元電路404,可以減小或避免在位元線BL上被斷言用於讀取操作的預充電電壓V
PRE,並且沒有增加讀取干擾問題的可能性。此外,在5T SRAM位元單元電路404中消除補位元線和補存取電路亦可以減小CIM電路400的待機功率和動態功率。位元線BL和補位元線BLB被提供在圖3中的6T SRAM位元單元304中,以在位元線BL和補位元線BLB之間提供差分電壓來實現針對讀取操作的高讀取靈敏度,圖4中的CIM電路400可以不需要高讀取靈敏度。例如,高準確性讀取感測在採用CIM電路400的應用中可能不如採用圖3中的6T SRAM位元單元電路304的記憶體應用重要。
此外,在讀取操作中減小由位元線驅動器電路438在被耦合到CIM電路404的5T SRAM位元單元電路404的位元線BL上被斷言的預充電電壓V
PRE,增加了真儲存節點426T與為SRAM位元單元電路404供電的供電電壓V
DL ( 1 )之間的電壓裕度。預充電電壓V
PRE可以小於正供電電壓V
DL ( 1 )。因此,經由對CIM電路400的讀取操作採用減小的位元線預充電電壓V
PRE,存在可用的電壓裕度。該電壓裕度允許被提供給CIM電路400的5T SRAM位元單元電路404的第一和第二正供電電壓軌420P(1)、420P(2)的正供電電壓V
DL ( 1 )、V
DL ( 2 )減小,而不增加在其5T SRAM位元單元電路404中的讀取干擾的可能性。例如,供電電壓V
DL ( 1 )、V
DL ( 2 )可以是記憶體域供電電壓V
DD的一半V
DD/2。減小5T SRAM位元單元電路404的供電電壓亦減小了5T SRAM位元單元電路404的待機(洩漏)功率和動態功率,並且因此減小了CIM電路400的待機(洩漏)功率和動態功率。減小的正供電電壓V
DL ( 1 )、V
DL ( 2 )仍然可以允許儲存邏輯值「0」的5T SRAM位元單元404中的真儲存節點426T在讀取操作中足夠快地放電到第一負供電電壓軌420N(1),而不會在真儲存節點426T上積聚電荷來避免或減小讀取干擾狀況。
然而,隨著被提供給CIM電路400的5T SRAM位元單元電路404的正供電電壓V
DL ( 1 )、V
DL ( 2 )的減小,其中5T SRAM位元單元電路404沒有補存取電晶體,將資料寫入到5T SRAM位元單元電路404中可能是困難的。在該實例中,由於存取電路440的較弱NFET與反相器電路418T的較強下拉NFET N
T之間的爭用,針對寫入操作,在5T SRAM位元單元電路404的儲存電路416中可能存在寫入爭用問題。因此,在另外的示例性態樣,被提供給5T SRAM位元單元電路404的補反相器電路418C的第二供電電壓V
DL ( 2 )、V
SL ( 2 )可以在寫入操作時被升高,以提供寫入輔助來避免或減小CIM電路400的5T SRAM位元單元電路404中的寫入爭用的風險。將被提供給5T SRAM位元單元電路404的補反相器電路418C的第二供電電壓V
DL ( 2 )、V
SL ( 2 )升高,可以經由在寫入操作中輔助翻轉5T SRAM位元單元電路404中的補反相器418C的狀態,來提供寫入輔助。被耦合到5T SRAM位元單元電路404的字線WL亦可以在寫入操作中被升壓。
若在機器學習應用中採用CIM電路400,則CIM電路404的5T SRAM位元單元電路404可以執行比寫入操作更多的讀取操作。因此,在對CIM電路400的寫入操作中升高補反相器電路418C的第二供電電壓V
DL ( 2 )、V
SL ( 2 )可以不對CIM電路400的整體動態功耗產生顯著影響。將第二供電電壓V
DL ( 2 )升高可以涉及增加在第二正供電電壓軌420P(2)處的第二供電電壓V
DL ( 2 )的電壓。將第二供電電壓V
SL ( 2 )升高可以涉及減小或降低在第二負供電電壓軌420N(2)處的電壓。此外,若需要,被提供給CIM電路400中的5T SRAM位元單元電路404的供電電壓亦可以可選地在讀取操作中被升高,以向5T SRAM位元單元電路404提供讀取輔助。提供讀取輔助可以使5T SRAM位元單元電路404的讀取操作更快,從而在讀取操作中消耗更少的動態功率。
資料亦可以被寫入到用於乘法運算的CIM電路400的5T SRAM位元單元電路404的儲存電路416。在寫入操作中,位元線驅動器電路338在位元線BL上斷言寫入電壓以表示要被寫入到真儲存節點426T的資料的邏輯值。被耦合到單個存取電路440的閘極G的字線(WL)被斷言,以啟用存取電路440來將寫入資料從位元線BL傳遞到真儲存節點426T。真儲存節點426T上的寫入電壓使補反相器電路418C儲存針對補儲存節點426C上的寫入電壓的補電壓。然而,在被提供給圖4中的CIM電路400的5T SRAM位元單元電路404的正供電電壓V
DL ( 1 )、V
DL ( 2 )較低的情況下,針對寫入操作,在儲存電路416中的補反相器電路418C中可能出現寫入爭用問題。例如,在寫入操作中,若邏輯「1」被儲存在真儲存節點426T中,並且在位元線BL上斷言的要被寫入到真儲存節點426T的寫入資料是邏輯「0」,則存取電路440將真儲存節點426T放電到位元線BL以將邏輯「0」寫入到真儲存節點426T。因為在該實例中為NFET,因此存取電路440能夠傳遞強邏輯「0」。然而,在寫入操作開始時被儲存在補儲存節點426C中的邏輯「0」可以使得增強的真PFET P
T克服存取電路440的驅動強度,以將真儲存節點426T充電至供電電壓V
DL ( 1 )(亦即,邏輯「1」),從而引起真儲存節點426T上的寫入爭用。此舉轉而可能引起補儲存節點426C上的寫入爭用問題。
因此,在該實例中,被提供給5T SRAM位元單元電路404中的補反相器電路418C的正和負供電電壓V
DL ( 2 )、V
SL ( 2 )可以在寫入操作時被升高,以提供寫入輔助來避免或減小5T SRAM位元單元電路404中的寫入爭用的風險。此情形經由實例在圖5中的寫入時序圖500中被圖示。如圖中所示,針對寫入操作,位元線BL被預充電至寫入電壓V
PRE以實現邏輯「0」或「1」寫入操作。字線WL被斷言以啟用存取電路440。為補反相器電路418C供電的相應第二正和負供電電壓軌420P(2)、420N(2)上的供電電壓最初是較低的供電電壓V
DL ( 2 )、V
SL ( 2 ),較低的供電電壓V
DL ( 2 )、V
SL ( 2 )被耦合到為真反相器電路418T供電的第一正供電電壓軌420P(1)和第一負供電電壓軌420N(1)。然而,如圖5中所示,回應於字線WL的下降沿,相應的第二正和負供電電壓軌420P(2)、420N(2)上的供電電壓V
DL ( 2 )、V
SL ( 2 )可以分別在正向和負向上被升高至正(亦即,電壓更大)和負(亦即,電壓更小)升高的供電電壓V
DH ( 2 )、V
SH ( 2 )。相應的第二正和負供電電壓軌420P(2)、420N(2)上的供電電壓在寫入操作時被升高(電壓分別增加和減小)超過相應的較低供電電壓V
DL ( 2 )、V
SL ( 2 ),以向補反相器電路418C提供寫入輔助來避免真儲存節點426T的寫入爭用問題。
在升壓中消耗附加的動態功率,但另外在待機時間期間和執行乘法運算時,較低的供電電壓V
DL ( 2 )、V
SL ( 2 )可以用於為CIM電路400供電。機器學習應用可以涉及比對CIM電路400的寫入操作多得多的讀取操作。因此,針對寫入操作,將供電電壓V
DL ( 2 )、V
SL ( 2 )升高到用於CIM電路400的5T SRAM位元單元電路404中的補反相器電路418C的升高的供電電壓V
DH ( 2 )、V
SH ( 2 ),可以不對CIM電路400中的整體功耗產生顯著影響。
若需要,被提供給CIM電路400中的5T SRAM位元單元電路404中的補反相器電路418C的供電電壓V
DL ( 2 )、V
SL ( 2 )亦可以可選地在讀取(乘法)操作中被升高,以向5T SRAM位元單元電路404提供讀取輔助。提供讀取輔助可以使SRAM位元單元電路404的讀取操作更快,從而在CIM電路400中的乘法運算中消耗更少的動態功率。此情形經由實例在圖6中的讀取時序圖502被圖示。如圖中所示,針對讀取(亦即,乘法)操作,字線WL被斷言以啟用所需CIM電路400的存取電路440。在該實例中,為補反相器電路418C供電的第二正和負供電電壓軌420P(2)、420N(2)上的供電電壓最初是較低的供電電壓V
DL ( 2 )、V
SL ( 2 ),較低的供電電壓V
DL ( 2 )、V
SL ( 2 )被耦合到在該實例中為真反相器電路418T供電的相應的第一正供電電壓軌420P(1)和第一負供電電壓軌道420N(1)。然而,如圖6中所示,回應於字線的斷言的上升沿,第二正和負供電電壓軌420P(2)、420N(2)上的供電電壓可以分別在正向和負向上被升高到升高的供電電壓V
DH ( 2 )、V
SH ( 2 )。在該點上,在該實例中,第二正供電電壓軌420P(2)上的供電電壓可以在正向上被升高(亦即,電壓增加)到升高的供電電壓V
DH ( 2 )以超過(亦即,大於)供電電壓V
DL ( 1 )。在該實例中,第二負供電電壓軌420N(2)上的供電電壓可以在負向上被升高(亦即,電壓減小)到升高的供電電壓V
SH ( 2 )以在負向上超過(亦即低於)供電電壓V
SL ( 1 )。回應於字線WL的下降沿,第二正供電電壓軌420P(2)和第二負供電電壓軌420N(2)上的供電電壓可以分別在正向上被升高(亦即,電壓增加)和在負向上被升高(亦即,電壓減小)到升高的供電電壓V
DH ( 2 )、V
SH ( 2 ),來提供讀取輔助。
如前述,CIM系統401可以包括複數個CIM電路400來提供記憶體陣列。在該點上,圖7圖示了包括CIM陣列700的CIM系統401,CIM陣列700包括複數個CIM列陣列電路702(1)-702(X)。每一或多個相應的CIM列陣列電路702(1)-702(X)包括複數個CIM電路400。例如,CIM陣列700包括CIM電路400(1)(1)-400(Y)(X),其中「X」是CIM列陣列電路702(1)-702(X)的數目,並且「Y」是給定CIM列陣列電路702(1)-702(X)中的CIM電路400的行。如圖7中所示,每個CIM列陣列電路702(1)-702(X)具有其自己的專用位元線驅動器電路438(1)-438(X),位元線驅動器電路438(1)-438(X)被配置為驅動其相應的位元線BL
1-BL
X。
如圖7中所示,在另一實例中,為了減小在給定的CIM列陣列電路702(1)-702(X)中被耦合到CIM電路400(1)()-400(Y)()的位元線BL
1-BL
X的線電容,針對寫入操作對相應位元線BL
1-BL
X進行預充電的位元線驅動器電路438(1)-438(X)可以在實體上位於在其相應的CIM列陣列電路702(1)-702(X)中的末端CIM電路400(1)()、400(Y)()之間。例如,位元線驅動器電路438(1)-438(X)可以在實體上位於每個相應CIM列陣列電路702(1)-702(X)的中間,以減小位元線驅動器電路438(1)-438(X)與在其相應的CIM列陣列電路702(1)-702(X)中的最遠的末端CIM電路400(1)()、400(Y)()之間的距離。作為實例,若「X」等於512,位元線BL
1-BL
256可以被提供給CIM列陣列電路702(1)-702(X)中的一半CIM電路400(1)()-400(Y/2),該位元線BL
1-BL
256由相應的位元線驅動器電路438(1)-438(X)驅動。補位元線BLB
257-BLB
Y , 512可以被相應位元線驅動器電路438(1)-438(X)驅動到另一半CIM電路400(Y/2+1)-400(Y)。以該方式,與被耦合到給定CIM列陣列電路702(1)-702(X)中的所有CIM電路400(1)()、400(Y)()的單個位元線相比,兩個位元線BL和BLB各自具有被減小大約一半的長度。此舉允許由位元線驅動器電路438(1)-438(X)驅動的位元線BL、BLB的長度減小,從而減小相應位元線BL、BLB的線電容。減小位元線BL、BLB的線電容減小了將位元線BL、BLB預充電到預充電電壓的時間,從而減小了對用於CIM電路400(1)(1)、400(Y)(X)的電位元線BL、BLB進行預充電而消耗的動態功率。
在另一示例性態樣,亦如圖7中所示,全域位元線(GBL)驅動器電路704(1)-704(X)被提供,並且用於對用於相應CIM列陣列電路702(1)-702(X)的GBL 410(1)-410(X)進行預充電。GBL驅動器電路704(1)-704(X)各自被配置為:在每個CIM列陣列電路702(1)-702(X)中的相應YL線上,驅動預充電電壓,其中每個YL線被耦合到相應CIM列陣列電路702(1)-702(X)中的CIM電路400的傳輸閘436。GBL 410(1)-410(X)被預充電以啟用相應CIM列陣列電路702(1)-702(X)中的CIM電路400的傳輸閘436,以在相應的CIM列陣列電路702(1)-702(X)中執行MAC操作。以該方式,用於給定CIM列陣列電路702(1)-702(X)的CIM電路400(1)()、400(Y)()可以被啟用,以在其相應的乘法輸出412上執行其乘法,並且在其相應的GBL 410(1)-410(X)上被斷言以被累積。若需要,GBL驅動器電路704(1)-704(X)可以被配置為在減小的供電電壓(例如,V
DD/2)下對其相應的GBL 410(1)-410(X)進行預充電以進一步減小動態功率。列選擇線Y
1-Y
X亦被提供以用於每個CIM列陣列電路702(1)-702(X),並且被被耦合到給定CIM電路400(1)()、400(Y)()中的傳輸閘436(1)()-436(Y)()以啟用用於MAC操作的CIM列陣列電路702(1)-702(X)。
此外,如圖8中所示,由於CIM電路400(1)(1)、400(Y)(X)不具有用於其相應的SRAM位元單元電路404的補位元線,所以在X軸方向上有更多空間以為每個CIM列陣列電路702(1)-702(X)中的列選擇線Y
1-Y
X提供空間。若在CIM列陣列電路702(1)-702(X)中採用圖3中的6T SRAM位元單元電路304,則此情形與線佈局800形成對比。
圖9是與圖4中的CIM電路400類似的另一示例性CIM電路900的圖。CIM電路900可以被提供在如圖4和圖7中描述的CIM系統901中。在圖9中的CIM電路900中,類似於圖4中的乘法電路406的乘法電路906被提供。圖9中的CIM電路900與圖4中的CIM電路400之間的共同元件以相同的元件編號被圖示,並且將不再重複描述。然而,在圖9中,真和補PFET 430T、430C的閘極G被耦合到相應的補和真儲存節點426C、426T。真和補PFET 430T、430C的汲極D被耦合到真和補乘法輸入節點432T、432C。
為了在圖9中的CIM電路900中的5T SRAM位元單元電路404中的儲存電路416中執行儲存資料的乘法運算,在該實例中,以XNOR電路928形式的基於XOR的電路908被配置為執行XNOR運算。真和補PFET 430T、430C的真和補乘法輸入節點432T、432C被配置為接收被表示為輸入資料X和X
B的相應輸入信號。真和補PFET 430T、430C的閘極G被配置為:在真和補儲存節點426T、426C上接收真和補儲存資料。一次僅在真和補儲存節點426T、426C中的一個儲存節點處的儲存資料經由XNOR電路928的相應PFET 430T、430C被傳遞到乘法輸出節點914,因此基於真和補儲存節點426T、426C之間的補電壓,一次僅PFET 430T、430C中的一個PFET將啟用。XNOR電路928被配置為:在真輸入信號X和X
B與真和補儲存節點426T、426C上的儲存資料之間執行XNOR運算,以在乘法輸出節點914上產生乘法輸出912。
注意,當第一耦合提及FET的源極/汲極並且第二耦合提及相同FET的汲極/源極時,此情形意味著第一耦合中涉及源極,並且第二耦合中涉及汲極,或第一耦合中涉及汲極,並且第二耦合中涉及源極。
CIM系統包括一或多個CIM電路,每個CIM電路包括5T SRAM位元單元電路,5T SRAM位元單元電路被配置為耦合到單個位元線以進行讀取和寫入操作並且被配置為在減小的供電電壓下操作以減小待機和動態功率,並且每個CIM電路進一步包括用於產生乘法輸出的基於XOR的電路,該乘法輸出表示作為SRAM位元單元電路中的儲存資料的讀取儲存資料值與輸入資料值的乘法運算,包括但不限於圖4和圖7至圖9中以及根據任何本文中所揭示的態樣的CIM電路。實例包括但不限於:機上盒、娛樂單元、導航設備、通訊設備、固定位置資料單元、行動位置資料單元、全球定位系統(GPS)設備、行動電話、蜂巢式電話、智慧型電話、通信期啟動協定(SIP)電話、平板電腦、平板手機、伺服器、電腦、可攜式電腦、行動計算設備、可穿戴計算設備(例如,智慧手錶、健康或健身追蹤器、眼鏡等)、桌上型電腦、個人數位助理(PDA)、顯示器、電腦顯示器、電視、調諧器、收音機、衛星廣播、音樂播放機、數位音樂播放機、可攜式音樂播放機、數位視訊播放機、視訊播放機、數位視訊光碟(DVD)播放機、可攜式數位視訊播放機、汽車、交通工具元件、航空電子系統、無人機和多軸飛行器。
在該點上,圖10圖示了基於處理器的系統1000的實例,系統1000包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路包括5T SRAM位元單元電路,5T SRAM位元單元電路被配置為耦合到單個位元線以進行讀取和寫入操作並且被配置為在減小的供電電壓下操作以減小待機和動態功率,並且每個CIM電路進一步包括用於產生乘法輸出的基於XOR的電路,該乘法輸出表示作為SRAM位元單元電路中的儲存資料的讀取儲存資料值與輸入資料值的乘法運算,包括但不限於圖4和圖7至圖9中以及根據本文中所揭示的任何態樣的CIM電路。在該實例中,基於處理器的系統1000可以被形成為積體電路(IC)1004作為晶片上系統(SoC)1006。基於處理器的系統1000包括中央處理單元(CPU)1008,該中央處理單元(CPU)1008包括一或多個處理器1010,處理器1010亦可以被稱為CPU核或處理器核。CPU 1008可以具有被耦合到CPU 1008的快取記憶體1012,以用於快速存取臨時儲存的資料。快取記憶體1012可以包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路均包括5T SRAM位元單元電路,5T SRAM位元單元電路被配置為耦合到單個位元線以進行讀取和寫入操作並且被配置為在減小的供電電壓下操作以減小待機和動態功率,並且每個CIM電路進一步包括用於產生乘法輸出的基於XOR的電路,該乘法輸出表示作為SRAM位元單元電路中的儲存資料的讀取儲存資料值與輸入資料值的乘法運算,包括但不限於圖4和圖7至圖9中以及根據本文中所揭示的任何態樣的CIM電路。
CPU 1008被耦合到系統匯流排1014,系統匯流排1014可以將基於處理器的系統1000中包括的主設備和從設備相互耦合。眾所周知,CPU 1008經由在系統匯流排1014上交換位址資訊、控制資訊和資料資訊與該等其他設備通訊。例如,CPU 1008可以將匯流排事務請求傳送到作為從設備的實例的記憶體控制器1016。儘管圖10中未圖示,但可以提供多個系統匯流排1014,其中每個系統匯流排1014構成不同的結構。
其他主設備和從設備可以連接到系統匯流排1014。如圖10中所示,作為實例,該等設備可以包括記憶體系統1020(其包括記憶體控制器1016和(多個)記憶體陣列1018)、一或多個輸入設備1022、一或多個輸出設備1024、一或多個網路介面設備1026以及一或多個顯示控制器1028。記憶體系統1020、一或多個輸入設備1022、一或多個輸出設備1024、一或多個網路介面設備1026以及一或多個顯示控制器1028中的每者可以包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路包括5T SRAM位元單元電路,5T SRAM位元單元電路被配置為被耦合到單個位元線以進行讀取和寫入操作並且被配置為在減小的供電電壓下操作以減小待機和動態功率,並且每個CIM電路進一步包括用於產生乘法輸出的基於XOR的電路,該乘法輸出表示作為SRAM位元單元電路中的儲存資料的讀取儲存資料值與輸入資料值的乘法運算,包括但不限於圖4和圖7至圖9中以及根據本文中所揭示的任何態樣的CIM電路。
(多個)輸入設備1022可以包括任何類型的輸入設備,包括但不限於輸入鍵、開關、語音處理器等。(多個)輸出設備1024可以包括任何類型的輸出設備,包括但不限於音訊、視訊、其他視覺指示器等。(多個)網路介面設備1026可以是被配置為允許資料去往和來自網路1030的交換的任何設備。網路1030可以是任何類型的網路,包括但不包括限於有線或無線網路、專用或公共網路、區域網路(LAN)、無線區域網路(WLAN)、廣域網路(WAN)、BLUETOOTH
TM網路和網際網路。(多個)網路介面設備1026可以被配置為支援所需的任何類型的通訊協定。
CPU 1008亦可以被配置為經由系統匯流排1014存取(多個)顯示控制器1028,以控制發送到一或多個顯示器1032的資訊。(多個)顯示控制器1028向(多個)顯示器1032發送資訊,以經由一或多個視訊處理器1034進行顯示,視訊處理器1034將要被顯示的資訊處理成適合(多個)顯示器1032的格式。(多個)顯示器1032可以包括任何類型的顯示器,包括但不限於陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器、發光二極體(LED)顯示器等。(多個)顯示控制器1028、(多個)視訊處理器1034和顯示器1032可以包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路包括5T SRAM位元單元電路,該5T SRAM位元單元電路被配置為耦合到單個位元線以進行讀取和寫入操作,並且被配置為在減小的供電電壓下操作以減小待機和動態功率,並且進一步包括基於XOR的電路,用於產生乘法輸出,該乘法輸出表示作為SRAM位元單元電路中的儲存資料的讀取儲存資料值與輸入資料值的乘法運算,包括但不限於圖4和圖7至圖9中以及根據任何本文揭示的態樣的CIM電路。
圖11圖示了示例性無線通訊設備1100,無線通訊設備1100包括由一或多個IC 1102形成的射頻(RF)元件,其中IC 1102中的任一個可以包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路包括5T SRAM位元單元電路,該5T SRAM位元單元電路被配置為耦合到單個位元線以進行讀取和寫入操作,並且被配置為在減小的供電電壓下操作以減小待機和動態功率,並且進一步包括基於XOR的電路,用於產生乘法輸出,該乘法輸出表示作為SRAM位元單元電路中的儲存資料的讀取儲存資料值與輸入資料值的乘法運算,包括但不限於圖4和圖7至圖9中以及根據任何本文揭示的態樣的CIM電路。
如圖11中所示,無線通訊設備1100包括收發器1104和資料處理器1106。資料處理器1106可以包括用於儲存資料和程式碼的記憶體。收發器1104包括支援雙向通訊的傳輸器1108和接收器1110。通常,無線通訊設備1100可以包括用於任何數目的通訊系統和頻帶的任何數目的傳輸器1108及/或接收器1110。收發器1104的全部或一部分可以被實施在一或多個類比IC、RF IC(RFIC)、混合信號IC等上。
傳輸器1108或接收器1110可以用超外差架構或直接轉換架構來被實現。在超外差架構中,信號在RF和基頻之間分多個階段進行頻率轉換,例如,在一個階段中從RF轉換到中頻(IF),隨後在另一階段從IF轉換到基頻。在直接轉換架構中,信號在一個階段中在RF和基頻之間進行頻率轉換。超外差轉換架構和直接轉換架構可以使用不同的電路區塊及/或具有不同的要求。在圖11的無線通訊設備1100中,傳輸器1108和接收器1110利用直接轉換架構來被實現。
在傳輸路徑中,資料處理器1106處理要被傳輸的資料,並且向傳輸器1108提供I和Q類比輸出信號。在示例性無線通訊設備1100中,資料處理器1106包括數位類比轉換器(DAC)1112(1)、1112(2),以用於將由資料處理器1106產生的數位信號轉換成I和Q類比輸出信號,例如I和Q輸出電流,以供進一步處理。
在傳輸器1108內,低通濾波器1114(1)、1114(2)分別對I和Q類比輸出信號進行濾波,以去除由先前的數位類比轉換引起的不期望信號。放大器(AMP)1116(1)、1116(2)分別放大來自低通濾波器1114(1)、1114(2)的信號,並且提供I和Q基頻信號。上轉換器1118經由混頻器1120(1)、1120(2),利用來自TX LO信號產生器1122的I和Q傳輸(TX)本端振盪器(LO)信號,來對I和Q基頻信號進行上轉換,以提供上轉換信號1124。濾波器1126對上轉換信號1124進行濾波,以去除由頻率上轉換引起的不期望信號以及接收頻帶中的雜訊。功率放大器(PA)1128放大來自濾波器1126的上轉換信號1124,以獲得期望的輸出功率位準並且提供傳輸RF信號。傳輸RF信號經由雙工器或開關1130被路由,並且經由天線1132被傳輸。
在接收路徑中,天線1132接收由基地站傳輸的信號,並且提供接收的RF信號,該RF信號經由雙工器或開關1130被路由,並且被提供給低雜訊放大器(LNA)1134。雙工器或開關1130被設計成以特定的接收(RX)至TX雙工器頻率分離操作,以使RX信號與TX信號隔離。所接收的RF信號被LNA 1134放大,並且被濾波器1136濾波以獲得期望的RF輸入信號。下轉換混頻器1138(1)、1138(2)將濾波器1136的輸出與來自RX LO信號產生器1140的I和Q RX LO信號(亦即,LO_I和LO_Q)混合,以產生I和Q基頻信號。I和Q基頻信號被AMP 1142(1)、1142(2)放大,並且被低通濾波器1144(1)、1144(2)進一步濾波,以獲得I和Q類比輸入信號,I和Q類比輸入信號被提供給資料處理器1106。在該實例中,資料處理器1106包括類比數位轉換器(ADC)1146(1)、1146(2),以用於將類比輸入信號轉換成數位信號,以供資料處理器1106進一步處理。
在圖11的無線通訊設備1100中,TX LO信號產生器1122產生用於頻率上轉換的I和Q TX LO信號,而RX LO信號產生器1140產生用於頻率下轉換的I和Q RX LO信號。每個LO信號是具有特定基頻的週期信號。TX鎖相迴路(PLL)電路1148從資料處理器1106接收時序資訊,並且產生用於調整來自TX LO信號產生器1122的TX LO信號的頻率及/或相位的控制信號。類似地,RX PLL電路1150從資料處理器1106接收時序資訊,並且產生用於調整來自RX LO信號產生器1140的RX LO信號的頻率及/或相位的控制信號。
熟習此項技術者將進一步理解,結合本文揭示的態樣描述的各種說明性的邏輯區塊、模組、電路和演算法可以實現為電子硬體、儲存在記憶體或另一電腦可讀取媒體中並且由處理器或其他處理設備執行的指令或兩者的組合。作為實例,本文描述的主設備和從設備可以在任何電路、硬體元件、IC或IC晶片中被採用。本文揭示的記憶體可以是任何類型和大小的記憶體,並且可以被配置為儲存期望的任何類型的資訊。為了清楚地說明此種可互換性,上文已經大體上根據其功能描述了各種說明性的元件、方塊、模組、電路和步驟。如何實現此種功能取決於特定的應用、設計選擇及/或強加於整體系統的設計約束。熟習此項技術者可以針對每個特定應用以變化的方式來實現所描述的功能,但是此種實現決定不應當被解釋為導致脫離本案的範疇。
結合本文揭示的態樣描述的各種說明性邏輯區塊、模組和電路可利用被設計成執行本文所描述的功能的通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯設備、個別閘門或電晶體邏輯、個別的硬體元件或其任何組合來實施或執行。處理器可以是微處理器,但在備選方案中,處理器可以是任何習知的處理器、控制器、微控制器或狀態機。處理器亦可以被實施成計算設備的組合(例如DSP與微處理器的組合、複數個微處理器、與DSP核結合的一或多個微處理器或任何其他此種配置)。
本文揭示的態樣可以以硬體和被儲存在硬體中的指令來體現,並且可以常駐在例如隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式設計ROM(EPROM)、電子可抹除可程式設計ROM(EEPROM)、暫存器、硬碟、抽取式磁碟、CD-ROM或本領域已知的任何其他形式的電腦可讀取媒體中。示例性儲存媒體被耦合到處理器,使得處理器能夠從該儲存媒體讀取資訊並且能夠向該儲存媒體寫入資訊。在備選方案中,儲存媒體可以被整合到處理器。處理器和儲存媒體可常駐在ASIC中。ASIC可以常駐在遠端站中。在備選方案中,處理器和儲存媒體可以作為個別元件常駐在遠端站、基地站或伺服器中。
亦應當注意,描述了本文的任何示例性態樣中描述的操作性步驟以提供實例和論述。所描述的操作可以以除了圖示的順序之外的許多不同的順序執行。另外,在單個操作步驟中描述的操作實際上可以在許多不同的步驟中執行。附加地,可以組合示例性態樣中論述的一或多個操作步驟。應當理解,流程圖中圖示的操作步驟可以進行許多不同的修改,此舉對於熟習此項技術者而言是顯而易見的。熟習此項技術者亦將理解,可以使用多種不同科技和技術中的任何一種來表示資訊和信號。例如,在以上整個說明書中可能引用的資料、指令、命令、資訊、信號、位元、符號和碼片可以由電壓、電流、電磁波、磁場或粒子、光場或粒子或其任何組合表示。
提供對本案的之前描述以使熟習此項技術者能夠製造或使用本案。對本案的各種修改對於熟習此項技術者而言將是顯而易見的,並且本文中定義的一般原理可以應用於其他變型。因此,本案內容不意欲限於本文描述的實例和設計,而是與符合本文揭示的原理和新穎特徵的最寬範疇一致。
0:值
1:值
100:節點
200:XNOR邏輯真值表
202:XNOR輸出
300:CIM電路
302:記憶體位元單元電路
304:6T SRAM位元單元電路
306:乘法電路
308:基於XOR的電路
310:GBL
312:二進位乘法輸出
314:乘法輸出節點
316:儲存電路
318C:補反相器電路
318T:真反相器電路
320N:負供電電壓軌
320P:正供電電壓軌
322C-I:補反相器輸入節點
322T-I:真反相器輸入節點
324C-O:補反相器輸出節點
324T-O:真反相器輸出節點
326C:補儲存節點
326T:真儲存節點
328:XNOR電路
330C:補PFET
330T:真PFET
332C:補乘法輸入節點
332T:真乘法輸入節點
334:電容器電路
336:傳遞閘
338:位元線驅動器電路
340C:補存取電路
340T:真存取電路
400:CIM電路
400(1)(1):CIM電路
400(1)(2):CIM電路
400(1)(X):CIM電路
400(Y)(1):CIM電路
400(Y)(2):CIM電路
400(Y)(X):CIM電路
401:CIM系統
402:記憶體位元單元電路
404:5T SRAM位元單元電路
406:乘法電路
408:基於XOR的電路
410:GBL
410(1):GBL
410(2):GBL
410(X):GBL
412:乘法輸出
414:乘法輸出節點
416:儲存電路
418C:補反相器電路
418T:真反相器電路
420N(1):第一負供電電壓軌道
420N(2):第二負供電電壓軌
420P(1):第一正供電電壓軌
420P(2):第二正供電電壓軌
422C-I:補反相器輸入節點
422T-I:真反相器輸入節點
424C-O:補反相器輸出節點
424T-O:真反相器輸出節點
426C:補儲存節點
426T:真儲存節點
428:XNOR電路
430C:補PFET
430T:真PFET
432C:補乘法輸入節點
432T:真乘法輸入節點
434:電容器電路
436:傳輸閘
436(1)(1):傳輸閘
436(1)(2):傳輸閘
436(1)(X):傳輸閘
436(Y)(1):傳輸閘
436(Y)(2):傳輸閘
436(Y)(X):傳輸閘
438:位元線驅動器電路
438(1)(1):位元線驅動器電路
438(1)(2):位元線驅動器電路
438(1)(X):位元線驅動器電路
440:存取電路
500:寫入時序圖
502:讀取時序圖
700:CIM陣列
702:CIM列陣列電路
702(1):CIM列陣列電路
702(2):CIM列陣列電路
702(X):CIM列陣列電路
704(1):全域位元線(GBL)驅動器電路
704(2):全域位元線(GBL)驅動器電路
704(X):全域位元線(GBL)驅動器電路
800:線佈局
900:CIM電路
901:CIM系統
906:乘法電路
908:基於XOR的電路
912:乘法輸出
914:乘法輸出節點
928:XNOR電路
1000:基於處理器的系統
1004:積體電路(IC)
1006:晶片上系統(SoC)
1008:中央處理單元(CPU)
1010:處理器
1012:快取記憶體
1014:系統匯流排
1016:記憶體控制器
1018:記憶體陣列
1020:記憶體系統
1022:輸入設備
1024:輸出設備
1026:網路介面設備
1028:顯示控制器
1030:網路
1032:顯示器
1034:視訊處理器
1100:無線通訊設備
1102:IC
1104:收發器
1106:資料處理器
1108:傳輸器
1110:接收器
1112(1):數位類比轉換器(DAC)
1112(2):數位類比轉換器(DAC)
1114(1):低通濾波器
1114(2):低通濾波器
1116(1):放大器(AMP)
1116(2):放大器(AMP)
1118:上轉換器
1120(1):混頻器
1120(2):混頻器
1122:TX LO信號產生器
1124:上轉換信號
1126:濾波器
1128:功率放大器(PA)
1130:雙工器或開關
1132:天線
1134:低雜訊放大器(LNA)
1136:濾波器
1138(1):下轉換混頻器
1138(2):下轉換混頻器
1140:RX LO信號產生器
1142(1):AMP
1142(2):AMP
1144(1):低通濾波器
1144(2):低通濾波器
1146(1):類比數位轉換器(ADC)
1146(2):類比數位轉換器(ADC)
1148:TX鎖相迴路(PLL)電路
1150:RX PLL電路
BL:位元線
BL
1:位元線
BLB:補位元線
BLB
Y:補位元線
D:汲極
DL(1):供電電壓
DL(2):供電電壓
G:閘極
GBL
00:全域位元線
GBL
01:全域位元線
GBL
02:全域位元線
GBL
03:全域位元線
N
C:補負(N)型FET
N
T:真負(N)型FET
P
0:乘積
P
1:乘積
P
2:乘積
P
C:補PFET
P
M:乘積
P
T:真PFET
S:源極
V
DD:正供電電壓
V
DH ( 2 ):升高的供電電壓
V
DL ( 2 ):供電電壓
V
PRE:充電電壓
V
SH ( 2 ):升高的供電電壓
V
SL ( 1 ):供電電壓
V
SL ( 2 ):供電電壓
V
SS:接地電壓
W
0:數值權重資料
W
1:數值權重資料
W
2:數值權重資料
W
M:數值權重資料
WL:字線
X:軸
X
0:數值輸入信號
X
1:數值輸入信號
X
2:數值輸入信號
X
B:真資料
X
M:數值輸入信號
Y:軸
Y
1:列選擇線
Y
2:列選擇線
Y
X:列選擇線
YL:線
Z:軸
SUM:求和信號
圖1是深度神經網路(DNN)的節點的示例性乘法與累加(MAC)操作的圖;
圖2是異或非(NOR)(XNOR)真值表的圖,其圖示XNOR邏輯運算可以用於二進位乘法;
圖3是示例性記憶體內計算(CIM)電路的圖,其包括六電晶體(6T)靜態隨機存取記憶體(SRAM)位元單元和以基於異或(XOR)電路形式的乘法電路,其中CIM電路被配置為執行被儲存在SRAM位元單元電路中的資料值與被提供給乘法電路的輸入值的乘法運算;
圖4是示例性CIM電路的圖,該示例性CIM電路包括被配置為耦合到單個位元線的五電晶體(5T)SRAM位元單元電路,並且包括以基於XOR的電路形式的乘法電路,用於產生乘法輸出,乘法輸出表示5T SRAM位元單元電路中的儲存資料值與輸入資料值的乘法運算,其中CIM電路被配置為在減小的供電電壓下操作以減小待機和動態功率;
圖5是圖4中CIM電路中的寫入操作的信號圖;
圖6是圖4中CIM電路中的讀取操作的信號圖;
圖7是包括複數個CIM陣列電路的示例性CIM系統,每個CIM陣列電路包括圖4中的複數個CIM電路,其中每個CIM電路被配置為將表示乘法輸出的電荷施加到相應的全域位元線以被累積作為MAC操作,並且其中每個CIM列陣列電路包括位元線驅動器電路,該位元線驅動器電路被配置為:以減小的電壓驅動其相應的CIM陣列電路的位元線以減小動態功率;
圖8是圖7中CIM陣列電路的位元線和全域位元線的示例性佈局的圖;
圖9是類似於圖4中的CIM電路的另一示例性CIM電路的圖,但是乘法電路的存取電路被耦合到其中的5T SRAM位元單元電路的儲存節點;
圖10是示例性的基於處理器的系統的方塊圖,該基於處理器的系統可以包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路包括被配置為耦合到單個位元線的5T SRAM位元單元電路,並且包括以基於XOR的電路形式的乘法電路,用於產生乘法輸出,乘法輸出表示5T SRAM位元單元電路中的儲存資料值與輸入資料值的乘法運算,其中CIM電路被配置為在減小的供電電壓下操作以減小待機和動態功率,包括但不限於圖4和圖7至圖9中的CIM電路;及
圖11是示例性無線通訊設備的方塊圖,該無線通訊設備包括射頻(RF)元件並且包括CIM系統,CIM系統包括一或多個CIM電路,每個CIM電路包括被配置為耦合到單個位元線的5T SRAM位元單元電路,並且包括以基於XOR的電路形式的乘法電路,用於產生乘法輸出,乘法輸出表示5T SRAM位元單元電路中的儲存資料值與輸入資料值的乘法運算,其中CIM電路被配置為在減小的供電電壓下操作以減小待機和動態功率,包括但不限於圖4和圖7至圖9中的CIM電路。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
400:CIM電路
401:CIM系統
402:記憶體位元單元電路
404:5T SRAM位元單元電路
406:乘法電路
408:基於XOR的電路
410:GBL
412:乘法輸出
414:乘法輸出節點
416:儲存電路
418C:補反相器電路
418T:真反相器電路
420N(1):第一負供電電壓軌道
420N(2):第二負供電電壓軌
420P(1):第一正供電電壓軌
420P(2):第二正供電電壓軌
422C-I:補反相器輸入節點
422T-I:真反相器輸入節點
424C-O:補反相器輸出節點
424T-O:真反相器輸出節點
426C:補儲存節點
426T:真儲存節點
428:XNOR電路
430C:補PFET
430T:真PFET
432C:補乘法輸入節點
432T:真乘法輸入節點
434:電容器電路
436:傳輸閘
438:位元線驅動器電路
440:存取電路
Claims (27)
- 一種記憶體內計算(CIM)電路,包括: 一位元線; 一靜態隨機存取記憶體(SRAM)位元單元電路,包括: 一儲存電路,包括: 一真反相器電路,包括一真反相器輸入節點和一真反相器輸出節點,該真反相器輸出節點包括一真儲存節點;及 一補反相器電路,包括一補反相器輸入節點和一補反相器輸出節點,該補反相器輸入節點被耦合到該真反相器輸出節點,該補反相器輸出節點包括僅被耦合到該真反相器輸入節點的一補儲存節點;及 一存取電路,被耦合到該真儲存節點;及 一乘法電路,包括一第一乘法輸入節點、一第二乘法輸入節點以及一乘法輸出節點,該第一乘法輸入節點被耦合到該儲存電路; 該乘法電路被配置為:在該乘法輸出節點上,產生該第一乘法輸入節點上的一第一乘法輸入與該第二乘法輸入節點上的一第二乘法輸入的一乘積。
- 根據請求項1之CIM電路,其中該CIM電路不包括一第二存取電路,該第二存取電路被耦合到該補儲存節點。
- 根據請求項2之CIM電路,其中該CIM電路不包括一第二位元線,該第二位元線被耦合到該SRAM位元單元電路。
- 根據請求項1之CIM電路,其中該乘法電路包括一基於異或(XOR)的電路,該基於異或(XOR)的電路被配置為:在該乘法輸出節點上產生該乘積,作為該第一乘法輸入與該第二乘法輸入的一基於XOR的邏輯運算。
- 根據請求項4之CIM電路,其中: 該第一乘法輸入節點包括: 一第一真乘法輸入節點,被耦合到該真儲存節點,並且被配置為接收在該真儲存節點上的真儲存資料;及 一第一補乘法輸入節點,被耦合到該補儲存節點,並且被配置為接收在該補儲存節點上的補儲存資料; 該第二乘法輸入節點包括: 一第二真乘法輸入節點,被配置為接收一第二真乘法輸入資料;及 一第二補乘法輸入節點,被配置為接收一第二補乘法輸入資料;並且 該基於XOR的電路包括: 一第一乘法電晶體,包括: 一第一源極/汲極,被耦合到該第一真乘法輸入節點; 一第一汲極/源極,被耦合到該乘法輸出節點;及 一第一閘極,被耦合到該第二真乘法輸入節點;及 一第二乘法電晶體,包括: 一第二源極/汲極,被耦合到該第一補乘法輸入節點; 一第二汲極/源極,被耦合到該乘法輸出節點;及 一第二閘極,被耦合到該第二補乘法輸入節點。
- 根據請求項4之CIM電路,其中: 該第一乘法輸入節點包括: 一第一真乘法輸入節點,被耦合到該真儲存節點,並且被配置為接收在該真儲存節點上的真儲存資料;及 一第一補乘法輸入節點,被耦合到該補儲存節點,並且被配置為接收在該補儲存節點上的補儲存資料; 該第二乘法輸入節點包括: 一第二真乘法輸入節點,被配置為接收一第二真乘法輸入資料;及 一第二補乘法輸入節點,被配置為接收一第二補乘法輸入資料;並且 該基於XOR的電路包括: 一第一乘法電晶體,包括: 一第一源極/汲極,被耦合到該第二真乘法輸入節點; 一第一汲極/源極,被耦合到該乘法輸出節點;及 一第一閘極,被耦合到該第一真乘法輸入節點;及 一第二乘法電晶體,包括: 一第二源極/汲極,被耦合到該第二補乘法輸入節點; 一第二汲極/源極,被耦合到該乘法輸出節點;及 一第二閘極,被耦合到該第一補乘法輸入節點。
- 根據請求項1之CIM電路,亦包括一非揮發性(NV)電容器電路,該NV電容器電路被耦合到該乘法輸出節點。
- 根據請求項7之CIM電路,其中該NV電容器電路包括一鐵電電容器電路。
- 根據請求項1之CIM電路,其中: 該位元線被配置為被預充電至一預充電電壓;並且 該存取電路被配置為:回應於該存取電路被啟用,將該真儲存節點上的一資料值傳遞到該位元線。
- 根據請求項1之CIM電路,亦包括: 一第一供電電壓軌,被耦合到該真反相器電路,該第一供電電壓軌被配置為接收一第一供電電壓;及 一第二供電電壓軌,被耦合到該補反相器電路,該第二供電電壓軌被配置為接收一第二供電電壓; 該第二供電電壓軌被配置為:回應於該存取電路被啟用以執行對該SRAM位元單元電路的一存取操作,基於該第二供電電壓來提供一升壓電壓,該升壓電壓超過該第一供電電壓。
- 根據請求項1之CIM電路,亦包括: 一第一正供電電壓軌,被配置為接收一第一正供電電壓; 一第二正供電電壓軌,被配置為接收一第二正供電電壓; 一第一負供電電壓軌,被配置為接收一第一接地電壓;及 一第二負供電電壓軌,被配置為接收一第二接地電壓; 其中該真反相器電路包括: 一真正(P)型場效應電晶體(FET)(PFET),包括: 一真P型源極,被耦合到該第一正供電電壓軌; 一真P型閘極,被耦合到該補反相器輸出節點;及 一真P型汲極,被耦合到該補反相器輸入節點;及 一真負(N)型場效應電晶體(NFET),包括: 一真N型汲極,被耦合到該第一負供電電壓軌; 一真N型閘極,被耦合到該補反相器輸出節點;及 一真N型源極,被耦合到該補反相器輸入節點;並且 該補反相器電路包括: 一補PFET,包括: 一補P型源極,被耦合到該第二正供電電壓軌; 一補P型閘極,被耦合到該真反相器輸出節點;及 一補P型汲極,被耦合到該真反相器輸入節點;及 一補NFET,包括: 一補N型汲極,被耦合到該第二負供電電壓軌; 一補N型閘極,被耦合到該真反相器輸出節點;及 一補N型源極,被耦合到該真反相器輸入節點。
- 根據請求項11之CIM電路,其中該第二正供電電壓軌被耦合到該第一正供電電壓軌。
- 根據請求項11之CIM電路,其中: 該第二正供電電壓軌被配置為:回應於該存取電路被啟用以執行對該SRAM位元單元電路的一存取操作,基於該第二正供電電壓來提供一正升壓電壓,該正升壓電壓超過該第一正供電電壓;並且 該第二負供電電壓軌被配置為:回應於該存取電路被啟用以執行對該SRAM位元單元電路的該存取操作,基於該第二接地電壓來提供一負升壓電壓,該負升壓電壓在負向上超過該第一接地電壓。
- 根據請求項1之CIM電路,其中該SRAM位元單元電路是一五電晶體(5T)SRAM位元單元電路。
- 根據請求項1之CIM電路,該CIM電路被整合到一設備中,該設備選自由以下項組成的群組:一機上盒、一娛樂單元、一導航設備、一通訊設備、一固定位置資料單元、一行動位置資料單元、一全球定位系統(GPS)設備、一行動電話、一蜂巢式電話、一智慧型電話、一通信期啟動協定(SIP)電話、一平板電腦、一平板手機、一伺服器、一電腦、一可攜式電腦、一行動計算設備、一可穿戴計算設備、一桌上型電腦、一個人數位助理(PDA)、一顯示器、一電腦顯示器、一電視、一調諧器、一收音機、一衛星廣播、一音樂播放機、一數位音樂播放機、一可攜式音樂播放機、一數位視訊播放機、一視訊播放機、一數位視訊光碟(DVD)播放機、一可攜式數位視訊播放機、一汽車、一交通工具元件、航空電子系統、一無人機以及一多軸飛行器。
- 根據請求項1之CIM電路,該CIM電路被整合在一積體電路(IC)中。
- 一種執行一記憶體內計算(CIM)操作的方法,包括以下步驟: 啟用一存取電路,以將一位元線耦合到一靜態隨機存取記憶體(SRAM)位元單元電路的一真反相器電路的一真儲存節點,該SRAM位元單元電路包括: 該真反相器電路,包括一真反相器輸入節點和一真反相器輸出節點,該真反相器輸出節點包括該真儲存節點;及 一補反相器電路,包括一補反相器輸入節點和一補反相器輸出節點,該補反相器輸入節點被耦合到該真反相器輸出節點,該補反相器輸出節點包括僅被耦合到該真反相器輸入節點的一補儲存節點; 將來自該真儲存節點的一真資料值作為一第一乘法輸入提供給一乘法電路的一第一乘法輸入節點; 將一第二乘法輸入斷言到該乘法電路的一第二乘法輸入節點;及 基於該第一乘法輸入與該第二乘法輸入的一乘法,在該乘法電路的一乘法輸出節點上產生一乘積。
- 根據請求項17之方法,亦包括以下步驟: 將一第一正供電電壓軌的一第一正供電電壓提供給該真反相器電路; 將一第二正供電電壓軌的一第二正供電電壓提供給該補反相器電路;及 回應於該存取電路被啟用,在正向上升高該第二正供電電壓以超過該第一正供電電壓。
- 根據請求項18之方法,亦包括以下步驟: 將一第一負供電電壓軌的一第一接地電壓提供給該真反相器電路; 將一第二負供電電壓軌的一第二接地電壓提供給該補反相器電路;及 回應於該存取電路被啟用,在負向上升高該第二接地電壓以在負向上超過該第一接地電壓。
- 根據請求項17之方法,亦包括以下步驟: 將一記憶體域供電電壓提供給在一基於處理器的系統中的一記憶體陣列; 將一第一供電電壓提供給該真反相器電路,該第一供電電壓小於該記憶體域供電電壓;及 將一第二供電電壓提供給該補反相器電路。
- 根據請求項20之方法,亦包括以下步驟:將該位元線預充電至該第一供電電壓。
- 一種記憶體系統,包括: 一記憶體內計算(CIM)陣列電路,該CIM陣列電路包括複數個CIM電路,每個CIM電路包括: 一靜態隨機存取記憶體(SRAM)位元單元電路,包括: 一儲存電路,包括: 一真反相器電路,該真反相器電路包括一真反相器輸入節點和一真反相器輸出節點,該真反相器輸出節點包括一真儲存節點;及 一補反相器電路,該補反相器電路包括一補反相器輸入節點和一補反相器輸出節點,該補反相器輸入節點被耦合到該真反相器輸出節點,該補反相器輸出節點包括僅被耦合到該真反相器輸入節點的一補儲存節點;及 一存取電路,被耦合到該真儲存節點;及 一乘法電路,包括一第一乘法輸入節點、一第二乘法輸入節點以及一乘法輸出節點,該第一乘法輸入節點被耦合到該儲存電路; 該乘法電路被配置為:在該乘法輸出節點上,產生該第一乘法輸入節點上的一第一乘法輸入與該第二乘法輸入節點上的一第二乘法輸入的一乘法的一乘積; 一第一位元線,被耦合到該複數個CIM電路的一第一子集的該等存取電路之每一者存取電路; 一第二位元線,被耦合到該複數個CIM電路的一第二子集的該等存取電路之每一者存取電路,該複數個CIM電路的該第二子集與該複數個CIM電路的該第一子集不同;及 一位元線驅動器電路,被耦合到該第一位元線和該第二位元線; 該位元線驅動器電路被配置為: 將該第一位元線預充電至真讀取資料的一第一預充電電壓;及 將該第二位元線預充電至補讀取資料的一第二預充電電壓。
- 根據請求項22之記憶體系統,其中該位元線驅動器電路在實體上位於在該複數個CIM電路的該第一子集之中的一第一端CIM電路與該複數個CIM電路的該第二子集之中的一第二端CIM電路之間的該CIM陣列電路中。
- 根據請求項22之記憶體系統,其中: 在該複數個CIM電路的該第一子集中的CIM電路的一數目等於在該複數個CIM電路的該第二子集中的CIM電路的一數目; 該複數個CIM電路的該第一子集被佈置在一第一線性陣列中; 該複數個CIM電路的該第二子集被佈置在與該第一線性陣列對準的一第二線性陣列中;並且 該位元線驅動器電路在實體上位於在該第一線性陣列與該第二線性陣列之間的一區域中。
- 根據請求項22之記憶體系統,其中: 該CIM陣列電路亦包括一全域位元線(GBL);並且 該CIM陣列電路中的該複數個CIM電路的該等乘法輸出節點之每一者乘法輸出節點被耦合到該GBL。
- 根據請求項25之記憶體系統,其中該CIM陣列電路亦包括一全域位元線驅動器電路,該全域位元線驅動器電路被配置為將該GBL預充電至一預充電電壓。
- 根據請求項26之記憶體系統,亦包括一記憶體陣列,其中: 該記憶體陣列被配置為接收一記憶體域供電電壓;並且 該全域位元線驅動器電路被配置為:將該GBL預充電至小於該記憶體域供電電壓的該預充電電壓。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/084,779 US11176991B1 (en) | 2020-10-30 | 2020-10-30 | Compute-in-memory (CIM) employing low-power CIM circuits employing static random access memory (SRAM) bit cells, particularly for multiply-and-accumluate (MAC) operations |
US17/084,779 | 2020-10-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202217602A true TW202217602A (zh) | 2022-05-01 |
Family
ID=78080563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110133576A TW202217602A (zh) | 2020-10-30 | 2021-09-09 | 特別用於乘法累加(mac)操作的採用低功率記憶體內運算(cim)電路採用靜態隨機存取記憶體(sram)位元單元的cim |
Country Status (5)
Country | Link |
---|---|
US (1) | US11176991B1 (zh) |
EP (1) | EP4204950B1 (zh) |
CN (1) | CN116368461A (zh) |
TW (1) | TW202217602A (zh) |
WO (1) | WO2022093413A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI841998B (zh) * | 2022-05-24 | 2024-05-11 | 旺宏電子股份有限公司 | 積體電路、將資料儲存於積體電路中的方法以及自在記憶體中儲存於多個位置中的資料獲得錯誤校正資料的方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11914973B2 (en) * | 2020-11-19 | 2024-02-27 | Apple Inc. | Performing multiple bit computation and convolution in memory |
US11551747B2 (en) * | 2021-03-25 | 2023-01-10 | Taiwan Semiconductor Manufacturing Company, Ltd. | Computation apparatus and method using the same |
CN114298297A (zh) * | 2021-11-04 | 2022-04-08 | 清华大学 | 存内计算装置、芯片及电子设备 |
US12094527B2 (en) * | 2022-03-31 | 2024-09-17 | International Business Machines Corporation | Reconfigurable data processing and storage unit for deep neural networks |
CN115048075A (zh) * | 2022-04-27 | 2022-09-13 | 北京大学 | 基于电容耦合的sram存算一体芯片 |
US20240028298A1 (en) * | 2022-07-19 | 2024-01-25 | Samsung Electronics Co., Ltd. | Memory device and method with in-memory computing |
EP4332751A1 (en) * | 2022-08-30 | 2024-03-06 | Samsung Electronics Co., Ltd. | Apparatus and method with in-memory computing (imc) |
CN115658011B (zh) * | 2022-09-30 | 2023-11-28 | 杭州智芯科微电子科技有限公司 | 向量乘加器的sram存内计算装置和电子设备 |
CN117608519B (zh) * | 2024-01-24 | 2024-04-05 | 安徽大学 | 基于10t-sram的带符号乘法与乘累加运算电路 |
CN118312468B (zh) * | 2024-06-07 | 2024-08-16 | 安徽大学 | 一种带符号乘法的存内运算电路及cim芯片 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875788B2 (en) * | 2010-03-25 | 2018-01-23 | Qualcomm Incorporated | Low-power 5T SRAM with improved stability and reduced bitcell size |
US10332590B2 (en) * | 2017-09-21 | 2019-06-25 | Qualcomm Incorporated | Static random access memory (SRAM) bit cells employing current mirror-gated read ports for reduced power consumption |
EP3671748A1 (en) * | 2018-12-21 | 2020-06-24 | IMEC vzw | In-memory computing for machine learning |
US11126402B2 (en) * | 2019-03-21 | 2021-09-21 | Qualcomm Incorporated | Ternary computation memory systems and circuits employing binary bit cell-XNOR circuits particularly suited to deep neural network (DNN) computing |
-
2020
- 2020-10-30 US US17/084,779 patent/US11176991B1/en active Active
-
2021
- 2021-09-09 TW TW110133576A patent/TW202217602A/zh unknown
- 2021-09-14 WO PCT/US2021/050317 patent/WO2022093413A1/en active Application Filing
- 2021-09-14 EP EP21787231.6A patent/EP4204950B1/en active Active
- 2021-09-14 CN CN202180068631.5A patent/CN116368461A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI841998B (zh) * | 2022-05-24 | 2024-05-11 | 旺宏電子股份有限公司 | 積體電路、將資料儲存於積體電路中的方法以及自在記憶體中儲存於多個位置中的資料獲得錯誤校正資料的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116368461A (zh) | 2023-06-30 |
WO2022093413A1 (en) | 2022-05-05 |
EP4204950A1 (en) | 2023-07-05 |
EP4204950B1 (en) | 2023-10-18 |
US11176991B1 (en) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176991B1 (en) | Compute-in-memory (CIM) employing low-power CIM circuits employing static random access memory (SRAM) bit cells, particularly for multiply-and-accumluate (MAC) operations | |
US11126402B2 (en) | Ternary computation memory systems and circuits employing binary bit cell-XNOR circuits particularly suited to deep neural network (DNN) computing | |
US10410714B2 (en) | Multi-level cell (MLC) static random access memory (SRAM) (MLC SRAM) cells configured to perform multiplication operations | |
US10224087B1 (en) | Sensing voltage based on a supply voltage applied to magneto-resistive random access memory (MRAM) bit cells in an MRAM for tracking write operations to the MRAM bit cells | |
US10332590B2 (en) | Static random access memory (SRAM) bit cells employing current mirror-gated read ports for reduced power consumption | |
US10803942B1 (en) | Transistor noise tolerant, non-volatile (NV) resistance element-based static random access memory (SRAM) physically unclonable function (PUF) circuits, and related systems and methods | |
US9842634B2 (en) | Wordline negative boost write-assist circuits for memory bit cells employing a P-type field-effect transistor (PFET) write port(s), and related systems and methods | |
US20190342106A1 (en) | Physically unclonable function (puf) circuits employing multiple puf memories to decouple a puf challenge input from a puf response output for enhanced security | |
US10319425B1 (en) | Offset-cancellation sensing circuit (OCSC)-based non-volatile (NV) memory circuits | |
US10424380B1 (en) | Physically unclonable function (PUF) memory employing static random access memory (SRAM) bit cells with added passive resistance to enhance transistor imbalance for improved PUF output reproducibility | |
US10438654B2 (en) | Transpose static random access memory (SRAM) bit cells configured for horizontal and vertical read operations | |
US10163490B2 (en) | P-type field-effect transistor (PFET)-based sense amplifiers for reading PFET pass-gate memory bit cells, and related memory systems and methods | |
US10290340B1 (en) | Offset-canceling (OC) write operation sensing circuits for sensing switching in a magneto-resistive random access memory (MRAM) bit cell in an MRAM for a write operation | |
US11322199B1 (en) | Compute-in-memory (CIM) cell circuits employing capacitive storage circuits for reduced area and CIM bit cell array circuits | |
US11487507B2 (en) | Multi-bit compute-in-memory (CIM) arrays employing bit cell circuits optimized for accuracy and power efficiency | |
WO2018048572A1 (en) | Adaptive pulse generation circuits for clocking pulse latches with minimum hold time | |
US11581037B2 (en) | Digital compute-in-memory (DCIM) bit cell circuit layouts and DCIM arrays for multiple operations per column | |
US11251123B1 (en) | Static random access memory (SRAM) bit cells employing asymmetric width read and write word lines, and related methods | |
TW202223887A (zh) | 分別被佈置在cim位元單元陣列電路中包括讀字線(rwl)電路的cim位元單元電路佈局的定向上的記憶體中計算(cim)位元單元電路 |