TW202230165A - 記憶體內計算的裝置及方法 - Google Patents

記憶體內計算的裝置及方法 Download PDF

Info

Publication number
TW202230165A
TW202230165A TW110133489A TW110133489A TW202230165A TW 202230165 A TW202230165 A TW 202230165A TW 110133489 A TW110133489 A TW 110133489A TW 110133489 A TW110133489 A TW 110133489A TW 202230165 A TW202230165 A TW 202230165A
Authority
TW
Taiwan
Prior art keywords
signal
adder
memory
weight
bit
Prior art date
Application number
TW110133489A
Other languages
English (en)
Other versions
TWI799983B (zh
Inventor
李伯浩
李嘉富
史毅駿
池育德
藤原英弘
森陽紀
趙威丞
Original Assignee
台灣積體電路製造股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202230165A publication Critical patent/TW202230165A/zh
Application granted granted Critical
Publication of TWI799983B publication Critical patent/TWI799983B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital 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/412Digital 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Complex Calculations (AREA)
  • Static Random-Access Memory (AREA)

Abstract

一種記憶體內計算(CIM)的裝置,具有記憶體陣列,記憶體陣列具有配置成列及行的記憶體單元。記憶體單元包括記憶體陣列的第一列及第一行中的第一記憶體單元,以及記憶體陣列的第一列及第二行中的第二記憶體單元。第一及第二記憶體單元用以儲存各自的第一及第二權重信號。輸入驅動器提供輸入信號。第一邏輯電路耦接至第一記憶體單元,以基於來自輸入驅動器的第一輸入信號及第一權重信號提供第一輸出信號。第二邏輯電路耦接至第二記憶體單元,以基於來自輸入驅動器的第二輸入信號及第二權重信號提供第二輸出信號。

Description

記憶體內計算
本揭示內容一般係關於記憶體內運算或記憶體內計算(「compute-in-memory,CIM」),且進一步係關於資料處理中使用的記憶體陣列,諸如乘法累加(「multiply-accumulate,MAC」)運算。記憶體內計算或記憶體內運算系統將資訊儲存在電腦的主隨機存取記憶體(random-access memory,RAM)中,且在記憶體單元層級執行計算,而非針對各個計算步驟在主RAM與資料儲存器之間移動大量資料。由於資料儲存在RAM中時所儲存資料的存取速度更快,因此記憶體內計算允許實時分析資料,從而在業務及機器學習應用程式中使能更快的報告及決策。目前正在努力提高記憶體內計算系統的效能。
以下揭示內容提供用於實施所提供標的物的不同特徵的許多不同實施例、或實例。下文描述組件及配置的特定實例以簡化本揭示內容。當然,這些僅為實例且非意欲為限制性的。舉例而言,在以下描述中第一特徵於第二特徵上方或上的形成可包括第一及第二特徵直接接觸地形成的實施例,且亦可包括額外特徵可形成於第一特徵與第二特徵之間使得第一特徵及第二特徵可不直接接觸的實施例。此外,本揭示內容在各種實例中可重複參考數字及/或字母。此重複係出於簡單及清楚的目的,且本身且不指明所論述的各種實施例及/或組態之間的關係。
此外,為了方便用於描述如諸圖中圖示的一個元件或特徵與另一(多個)元件或(多個)特徵的關係的描述,在本文中可使用空間相對術語,諸如「在……下面」、「在……之下」、「下部」、「在……之上」、「上部」及類似者。空間相對術語意欲涵蓋除了諸圖中所描繪的定向以外的裝置在使用或操作時的不同定向。裝置可另外定向(旋轉90度或處於其他定向),且本文中所使用的空間相對描述符可類似地加以相應解釋。
本揭示內容一般係關於記憶體內計算(「compute-in-memory,CIM」)。CIM應用的一個實例係乘法累加(「multiply-accumulate,MAC」)操作。電腦人工智慧(「artificial intelligence,AI」)使用深度學習技術,其中計算系統可組織為類神經網路。類神經網路指複數個互連的處理節點,這些節點能夠分析資料,舉例而言。類神經網路計算「權重」,以對新的輸入資料執行計算。類神經網路使用多層計算節點,其中較深層基於由較高層執行的計算結果執行計算。
CIM電路在記憶體內局部執行運算,而無需發送資料至主處理機。這可減少記憶體與主處理機之間傳輸的資料量,從而使能更高的產量及效能。資料移動的減少亦降低了計算裝置內整體資料移動的能耗。
根據一些所揭示實施例,CIM裝置包括具有配置成列及行的記憶體單元的記憶體陣列。記憶體單元用以儲存權重信號,且輸入驅動器提供輸入信號。記憶體單元中的各者耦接至各自的第一邏輯電路,諸如乘法電路,乘法電路基於來自輸入驅動器的輸入信號及儲存在相應記憶體單元中的權重信號提供輸出信號。邏輯單元的輸出經累加或相加以獲得系統輸出值。
MAC運算的數學描述的實例如下所示。
Figure 02_image001
在上面的方程式(1)中,A I係第I個輸入,WIJ係對應於第I個輸入及第J個權重行的權重。O J係第J個權重行的MAC輸出,且h係累加數。
第1圖係示出根據本揭示內容的實例CIM裝置100的方塊圖。CIM記憶體陣列110包括用以儲存權重信號W的複數個記憶體單元112。CIM可用多種記憶體裝置實施,包括靜態隨機存取記憶體(「static random-access memory,SRAM」)。在典型的SRAM裝置中,當SRAM單元中的一或多個存取電晶體藉由來自一或多個字線(「wordline,WL」)的使能信號啟動時,資料透過一或多個位元線(「bitline,BL」)寫入SRAM單元、以及自SRAM單元讀取。
第2圖係示出根據一些實施例的實例記憶體單元112的電路圖。記憶體單元112包括但不限於六電晶體(six-transistor,6T) SRAM單元212。在一些實施例中,可使用多於或少於六個電晶體來實施SRAM單元212。舉例而言,在一些實施例中,SRAM單元212可使用4T、8T或10T SRAM結構,且在其他實施例中,可包括類似記憶體的位元單元或構建單元。SRAM單元212包括由NMOS/PMOS電晶體對M1及M2形成的第一反向器、及由NMOS/PMOS電晶體對M3及M4形成的第二反向器、以及存取電晶體/通道閘M5及M6。
電力供應至反向器中的各者,例如電晶體M2及M4的各者的第一端子耦接至電力供應VDD,而電晶體M1及M3的各者的第一端子耦接至參考電壓VSS,例如接地。資料的位元作為節點Q處的電壓位準儲存在SRAM單元212中,且可藉由電路系統透過位元線BL讀取。對節點Q的存取由通道閘電晶體M5控制。節點Qbar (QB)儲存Q處的值的補碼(complement),例如,若Q為「高」,則QB將為「低」,且可藉由電路系統透過位元線BLbar (BLB)讀取。對QB的存取由通道閘電晶體M6控制。
通道閘電晶體M5的閘極耦接至字線WL。通道閘電晶體M5的第一源極/汲極(source/drain,S/D)端子耦接至位元線BL,且通道閘電晶體M5的第二S/D端子耦接至節點Q處的電晶體M1及M2的第二端子。類似地,通道閘電晶體M6的閘極耦接至字線WL。通道閘電晶體M6的第一S/D端子耦接至互補位元線BLB,且通道閘電晶體M6的第二S/D端子耦接至節點QB處的電晶體M3及M4的第二端子。
返回至第1圖,CIM裝置100進一步包括輸入驅動器102及WL驅動器104。輸入驅動器102將輸入信號A驅動至邏輯電路114。WL驅動器輸出WL信號以啟動記憶體陣列110的所需列i,因此提供儲存的權重信號至邏輯電路114。記憶體控制器120接收控制輸入,且提供控制信號至SRAM讀/寫電路122,SRAM讀/寫電路122連接至記憶體陣列110的位元線BL、BLB,以便選擇對應於儲存的權重W的適當位元線BL、BLB(即,行)。在所示的實例中,採用4位元權重W[0:3],因此使用四行的記憶體單元100及邏輯電路來儲存各種權重值。因此,具有w位元的權重值使用w行的記憶體單元100及相應的邏輯電路。來自邏輯電路114的輸出信號被提供至加法器電路116,加法器電路116將各種邏輯電路114的輸出相加。累加器電路被耦接至加法器電路116且用以提供MAC輸出O J
如上所示,在一些實施例中,邏輯電路114係乘法器電路,乘法器電路用以計算上述方程式1的A Ix WIJ部分。第3圖示出了一個實例,其中邏輯電路114係NOR閘214,NOR閘214自其相應的記憶體單元112接收權重信號W,同時接收反向選擇信號SELB形式的輸入信號A,以輸出權重信號W與選擇信號SELB的乘積P。第4圖示出了所揭示實施例的進一步態樣,其中記憶體單元係如第2圖中所示及上文所討論的6T SRAM單元212,且乘法器電路114包括二輸入反或(NOR)閘214。NOR閘214的一個輸入耦接至SRAM單元212的節點QB以接收反向權重信號,而NOR閘214的另一輸入接收SELB信號。
第5圖示出了另一個實例,其中乘法器電路114係與(AND)閘215,AND閘215自其相應的記憶體單元112接收權重信號W,同時接收選擇信號SEL形式的輸入信號A,以輸出權重信號W與選擇信號SEL的乘積P。第6圖示出了所揭示實施例的進一步態樣,其中記憶體單元係如第2圖中所示及上文所討論的6T SRAM單元212,且乘法器電路114包括二輸入AND閘215。AND閘215的一個輸入耦接至SRAM單元212的節點Q以接收權重信號,而AND閘215的另一輸入接收SEL信號。
第7圖示出了實例CIM記憶體陣列110的態樣。記憶體單元112可包含上文討論的SRAM單元212、或其他適合的記憶體電路。乘法器電路114由NOR閘214實施,儘管其他邏輯電路可用於乘法器電路,諸如AND閘。在第7圖中,記憶體單元112中的各者儲存權重信號W的一位元。在這個實例中,使用4位元輸入A及4位元權重W,因此使用記憶體單元112的四個行j及相關聯的NOR閘214(即,乘法器電路)來儲存各個輸入列i中的4位元權重。換言之,權重信號係w位元權重,其中w=4。因此陣列110的所示部分包括表示4位元權重值的一個權重行J的「乘法」部分130,其中儲存在記憶體單元112中的權重W使用NOR閘214(或其他適合的邏輯電路)乘以接收的輸入A。換言之,權重行J具有記憶體單元112及相應的NOR閘214的w個行j。
注意,在本揭示內容中,記憶體單元112及相關聯邏輯電路214的行用小寫字母「j」標記。如上所示,在具有4位元權重W[0:3]的所示實例中,具有四個行j的記憶體單元的CIM或「權重行」(即,乘法部分130)用大寫字母J標記。「累加」部分132自乘法部分130接收乘積,以移位及相加所接收的乘積,下面將進一步討論。因此,第7圖實施了一個MAC運算,表示為
Figure 02_image003
其中A I係第I個輸入,WI係對應於所示行中第I個輸入的權重,O係加法器樹116的輸出,且h係累加數。在所示實例中,使用多週期「逐位元」乘法,其中4位元權重信號W[0:3]的各個位元依次乘以輸入信號A的各個位元,以提供部分和。
在所示實例中,來自相鄰列i的NOR閘214的乘積輸出藉由接線218及219耦接至加法器電路116。具體而言,第一列i-1的NOR閘214的乘積輸出由接線218接收且傳輸至加法器樹116,而相鄰列i-2中的NOR閘214的乘積在接線219上輸出傳輸至加法器樹116。
第8圖示出了加法器電路116的加法器樹220實例的態樣。加法器樹220包括八個加法器樹分支,其中包括「求和2」分支222,該分支將陣列110的兩個相鄰列的乘積輸出相加。如上所示,乘積值包括權重W[3:0]及由輸入啟動驅動器102提供的輸入乘數。在第8圖中,輸入值標記為A0…A255(即,h-1)。求和2分支222的5位元加法器224各將乘法器電路214的兩個相鄰列的兩個乘積輸出相加。因此,第一輸入A0與權重W[3:0]的乘積藉由加法器樹116的求和2分支222中的最頂部5位元加法器224加到第二輸入A1與相應權重W[3:0]的乘積上。
加法器樹進一步包括具有6位元加法器電路228的「求和4」分支226、具有7位元加法器電路232的「求和8」分支230、具有8位元加法器電路236的「求和16」分支234、具有9位元加法器電路240的「求和32」分支238、具有10位元加法器電路244的「求和64」分支242,具有11位元加法器電路248的「求和128」分支246、及具有12位元加法器電路252的「求和256」分支250。
求和4分支226的6位元加法器電路228的各者接收求和2分支222的兩個相鄰5位元加法器224的輸出,求和8分支230的7位元加法器電路232的各者接收求和4分支226的兩個相鄰6位元加法器電路228的輸出,求和16分支234的8位元加法器電路236的各者接收求和8分支230的兩個相鄰7位元加法器電路232的輸出,求和32分支238的9位元加法器電路240的各者接收求和16分支234的兩個相鄰8位元加法器電路236的輸出,求和64分支242的10位元加法器電路244的各者接收求和32分支238的兩個相鄰9位元加法器電路240的輸出,求和128分支246的11位元加法器電路248的各者接收求和64分支242的兩個相鄰10位元加法器電路244的輸出,且求和256分支250的12位元加法器電路252接收求和128分支246的相鄰11位元加法器電路248的輸出。
由十二位元加法器電路252輸出的12位元部分和PSUM[11:0]被提供至累加器124,在所示實例中,累加器124包括部分和加法器及移位器。如下文將進一步討論的,除了乘積輸出之外,加法器電路中的各者接收指示權重係帶正負號(即,負的)或係無正負號的權重正負號位元WS。因此,舉例而言,4位元權重W[3:0]乘以輸入A I,與相應的權重正負號位元WS一起由5位元加法器224接收。權重正負號WS可例如儲存在與CIM記憶體陣列110相關聯的暫存器中。
在一些所揭示實例中,多週期「逐位元」乘法用於可組態的n位元帶正負號/無正負號(signed/unsigned)輸入。如下文將討論的,藉由逐位元移位輸入來實施計算。下面來說明具有4位元輸入A及4位元權重W的實例。 O J
Figure 02_image005
(2)
上述方程式2可重述如下。
Figure 02_image007
對於帶正負號輸入,可採用二補數加法器組態。因此,若權重輸入係帶正負號的(WS=1),則最高有效位元(most significant bit,MSB)計算結果將改變為負的(即,結果反向且加1)。
第9圖示出了CIM裝置100的實例,包括累加器124的進一步態樣。如前所示,CIM記憶體陣列110包括用以儲存權重信號W的記憶體單元112的陣列。輸入信號A i儲存在輸入暫存器312中且乘以儲存在陣列110中的權重W[0:3],並且加法器樹116提供如第7圖中所示的12位元部分和PSUM[11:0]。WL驅動器104輸出WL信號以啟動記憶體陣列110,且記憶體控制器120接收控制輸入並將控制信號提供至連接至記憶體陣列110的位元線的SRAM讀/寫電路122。來自邏輯電路陣列110的輸出信號被提供至加法器電路116,且累加器124耦接至加法器電路116,並用以提供MAC輸出O J
來自加法器樹116的部分和被輸出至部分和電路300的第一暫存器314。第一多工器(MUX)316接收部分和輸出PSUM[11:0]及其反向,且基於權重正負號輸入WS與最高有效權重位元的乘積SIGNED*MSB輸出所選輸入。因此,若PSUM輸入的MSB係帶正負號的(即WS=1),則藉由反向結果且加1將MSB結果改變為負。這個部分和318提供至20位元加法器310的一個輸入端。
由第二部分和暫存器320接收20位元加法器310的輸出,其輸出由移位器322接收且左移1位元(即乘以2 1),並且在20位元加法器310的第二輸入端接收且與下一部分和318求和。輸出暫存器330在其D輸入端接收20位元加法器310的輸出,且在其Q輸出端提供累加器的輸出Q[19:0]。
第10圖係示出加法器樹116及累加器124的運算的時序圖。在上面討論的實例中,顯示了4位元權重W[0:3],儘管其他權重組態在本揭示內容的範疇內。第10圖示出了一個5週期運算。輸入包括時脈信號CLK、標記5週期運算開始及結束的IMCEN信號、及輸入信號A[1023:0]。4位元輸入信號A[3:0]的各個位元乘以權重信號W[3:0]。在第一運算週期350期間,藉由CIM陣列110的邏輯電路114,輸入A的MSB乘以權重W[3:0]的各個位元以產生部分積,部分積由加法器樹116相加,從而產生12位元部分和S3。
在第二運算週期352期間,藉由CIM陣列110的邏輯電路114,輸入A的第二MSB乘以權重W[3:0]的各個位元以產生部分積,部分積由加法器樹116相加,從而產生12位元部分和S2。藉由CIM陣列110的邏輯電路114,輸入A的第三MSB乘以權重W[3:0]的各個位元以產生部分積,部分積由加法器樹116相加,從而在第三運算週期354期間產生12位元部分和S1,且藉由CIM陣列110的邏輯電路114,輸入A的LSB乘以權重W[3:0]的各個位元以產生部分積,部分積由加法器樹116相加,從而在第四運算週期356期間產生12位元部分和S0。
部分和PSUM[11:0]輸出S3、S2、S1及S0延遲了一個週期,且因此分別在第二運算週期352、第三運算週期354、第四運算週期356及第五運算週期358運算週期期間輸出至第一部分和暫存器314。因此,在第一運算週期350,沒有自第一部分和暫存器314至20位元加法器310的部分和輸入。亦沒有自加法器310至暫存器320及移位器322的輸出,且因此在第二運算週期352,SUM[15:0]=0。
如上所示,在第二運算週期352,S3部分和被提供至第一暫存器314且輸入至加法器310的第一輸入端。加法器314的先前輸出(即,Sum=0)由第二暫存器320接收,由移位器322左移1位元,且輸入至加法器310的第二輸入端。因此由加法器314在第三運算週期354期間輸出的SUM[15:0]係S3部分和。在第三運算週期354,第二MSB的第二部分和S2由加法器樹116輸出,且由第一暫存器314接收,並輸入至加法器310。在第三運算週期354期間,由加法器314輸出的和(即,S3部分和)由暫存器320輸出,且由移位器322左移。在在第四運算週期356期間,經移位的和因此被加到S2部分和上。
在第四運算週期356,第三MSB的下一部分和S1由加法器樹116輸出,且由第一暫存器314接收,並輸入至加法器310。在第四運算週期356期間,由加法器314輸出的和由暫存器320輸出,且由移位器322左移。在第五運算週期358期間,經移位的和因此被加到S1部分和上。
在第五運算週期358,LSB的下一部分和S0由加法器樹116輸出,且由第一暫存器314接收,並輸入至加法器310。在第五運算週期358期間,由加法器314輸出的和由暫存器320輸出,且由移位器322左移。在下一運算的第一運算週期360期間,經移位的和因此被加到S0部分和上。SRDY信號在這個週期期間被判定,且響應於此,由輸出暫存器330輸出最終和Q[19:0]。
上面揭示的可程式化帶正負號/無正負號權重可用於支撐可組態n位元權重。換言之,多個CIM或權重行J可組合成儲存所需權重位元數目n。返回參考第7圖,所示陣列100包括4位元權重行J。因此,權重行J具有四個行的記憶體單元112及相關聯的NOR閘214,以儲存4位元權重值的各個位元。若需要更大的權重值,則可組合多個權重行J。例如,兩個4位元權重行J可經組合以提供8位元權重值。具有帶正負號MSB的8位元權重的實例如下所示。 W7  W6 W5 W4    W3  W2  W1   W0 -128  64   32  16     8     4     2   1
這樣的8位元帶正負號權重可分為4位元帶正負號權重加上4位元無正負號權重,如下所示(自第一個4位元權重中分解出16)。
Figure 02_image009
因此,MAC運算可表示如下。
Figure 02_image011
第11圖示出了實例CIM記憶體陣列111,其中四個4位元權重行J-1、J-2、J-3、J-4經組合,以提供一個16位元帶正負號權重值。第11圖中所示的權重行J-1、J-2、J-3、J-4中的各者均具有四個記憶體陣列行j,用於儲存如第7圖中所示的4位元權重。第一權重行J-1係帶正負號的,而剩餘的權重行J-2、J-3及J-4係無正負號的,因為僅權重值的MSB係帶正負號的。輸入驅動器102控制乘以權重值的輸入信號A I的啟動。權重行J-1、J-2、J-3、J-4的乘積輸出由與權重行J的各者相關聯的加法器樹116部分求和,且部分和被提供至累加器124,用於移位/相加運算,以計算最終CIM輸出。
第12圖示出了加法器樹220的求和2分支222的5位元加法器224的實例。如上所示,在所示實例中,陣列的相鄰列的4位元乘積輸出被輸出至加法器樹116的5位元加法器224。在第8圖中,相鄰列218a、219a的乘積輸出由5位元加法器224接收。在第12圖中,相鄰列218a、219a的這些輸入分別標記為A及B。舉例而言,在第12圖中,列i-1的NOR閘214的4位元輸出被標記為A[3:0],而列i-2的NOR閘214的4位元輸出被標記為B[3:0]。
5位元加法器224包括半加器電路HA0,半加器電路HA0接收第一輸出位元A[0]及B[0],且提供位元0和數輸出S[0],以及第一進位輸出C[1]。5位元加法器224進一步包括四個全加器電路FA1、FA2、FA3及FA4。第一全加器FA1接收位元1 NOR閘的輸出A[1]及B[1],以及來自半加器HA0的第一進位輸出C[1]。第一全加器FA1將輸入A[1]及B[1]相加,且提供位元1和數輸出S[1],以及第二進位輸出C[2]。第二全加器FA2接收位元2 NOR閘的位元2輸出,以及來自第一全加器FA1的第二進位輸出C[2]。第二全加器FA2將輸入A[2]及B[2]相加,且提供位元2和數輸出S[2],以及第三進位輸出C[3]。第三全加器FA3接收位元3 NOR閘214的輸出A[3]及B[3],以及來自第二全加器FA2的第三進位輸出C[3]。第三全加器FA3將位元3輸入A[3]及B[3]相加,且提供位元3和數輸出S[3],以及第四進位輸出C[4]。
第四全加器FA4接收兩個AND閘270及272的輸出,以及來自第三全加器FA3的第四進位輸出C[4]。AND閘270在其輸入端接收A[3]信號及用於A輸入的權重正負號WSA,而AND閘272在其輸入端接收B[3]信號及用於B輸入的權重正負號WSB。藉由提供用以接收權重正負號指示符WS的AND閘270及272,加法器224對於帶正負號及無正負號權重格式變得「可切換」,這將在下面進一步討論。
具體而言,若權重係無正負號的,則可使用第13圖中所示的4位元二進制加法器224a將4位元權重值相加。二進制加法器224a包括半加器電路HA0,半加器電路HA0接收第一輸出位元A[0]及B[0],且提供位元0和數輸出S[0],以及第一進位輸出C[1]。然而,二進制加法器224a僅使用三個全加電路FA1、FA2及FA3。三個全加器電路FA1、FA2、FA3以及半加器HA0能夠將無正負號4位元輸入A3[3:0]與無正負號4位元B[3:0]輸入相加。
對於帶正負號權重輸入,使用如第14圖中所示的二補數加法器224b,用於由權重正負號擴展WS所指示的負值的加法。二補數加法器224b包括半加器電路HA0,半加器電路HA0接收第一輸出位元A[0]及B[0],且提供位元0和數輸出S[0],以及第一進位輸出C[1]。5位元加法器224進一步包括四個全加器電路FA1、FA2、FA3及FA4。第一全加器FA1接收位元1 NOR閘的輸出A[1]及B[1],以及來自半加器HA0的第一進位輸出C[1]。第一全加器FA1將輸入A[1]與B[1]相加,且提供位元1和數輸出S[1],以及第二元輸出C[2]。第二全加器FA2接收位元2 NOR閘的位元2輸出,以及來自第一全加器FA1的第二進位輸出C[2]。第二全加器FA2將輸入A[2]與B[2]相加,且提供位元2和數輸出S[2],以及第三進位輸出C[3]。第三全加器FA3接收位元3 NOR閘214的輸出A[3]及B[3],以及來自第二全加器FA2的第三進位輸出C[3]。第三全加器FA3將位元3輸入A[3]與B[3]相加,且提供位元3和數輸出S[3],以及第四進位輸出C[4]。
第四全加器FA4接收位元3 NOR閘214的輸出A[3]及B[3],以及來自第三全加器FA3的第四進位輸出C[4]。第三全加器FA3將位元3輸入A[3]與B[3]相加,且提供位元3和數輸出S[3],以及第四進位輸出C[4]。
返回至第12圖,AND閘270及272的添加使加法器224「可切換」,使得若MSB權重輸入A[3]、B[3]均非帶正負號的,則AND閘270及272均輸出0且第四全加器FA4有效地自電路中取出,第四進位輸出C[4]提供第五和數位元S[4]。或者,若權重輸入A[3]、B[3]中的任一個係帶正負號的,則AND閘270、272基於MSB權重輸入A[3]、B[3]提供輸出。第四全加器FA4的S[4]輸出為和數輸出S[3]提供正負號擴展。
第12圖中所示的5位元加法器224用於第8圖中所示加法器樹220的求和2分支222。5位元加法器224的5位元輸出S[4:0]由加法器樹220的求和4分支226的6位元加法器電路228接收。第15圖示出了加法器樹220中使用的加法器的通用形式,即加法器電路225。加法器的各者接收各自的乘積位元A[0:n]及B[0:n],且MSB加法器n進一步接收一位元權重正負號WS。例如,5位元加法器224接收4位元乘積信號A[0:3]及B[0:3]以及一位元權重正負號擴展WS。因此,5位元加法器224採用一個半加器HA及四個全加器FA1~FA4。
因此,第15圖中所示的通用加法器電路225具有提供n個和數輸出的n個加法器。n個加法器包括半加器Adder0,Adder0接收A[0]及B[0]乘積輸入,且輸出S[0]和數輸出。n個加法器進一步包括n-1個全加器。第一全加器Adder1接收A1及B1輸入以及來自半加器Adder0的進位輸出Co。全加器中的各者接收適當的A及B輸入,以及來自前一加法器的進位輸入位元Ci,且輸出相應的和數輸出及進位輸出位元Co。
第n個加法器(全加器)自第n-1個加法器接收正負號擴展WS及進位位元,以及An及Bn輸入,且加法器Adder n輸出進位輸出位元Co及S[n]和數位元,即WS位元。在所示實例中,加法器Adder n在其進位輸入端接收加法器Adder n-1的進位輸出位元的反向(即,進位反向的CiB)。
第16圖示出了第15圖中所示加法器電路225的第n個加法器的真值表。如結合第12圖所述,第n個加法器(即FA4)接收C[4]進位輸入位元Ci以及AND閘270及272的輸出。AND閘270及272分別接收MSB乘積位元A[3]及B[3],以及相應的權重正負號擴展位元WSA及WSB。第16圖示出了對應於A、B及Ci的各種輸入組合的無正負號權重(WS=0)及帶正負號權重(WS=1)的和數輸出。
若WS位元為1,即權重係帶正負號的,則第n個加法器(第12圖中的FA4)將不會發生A=B=0、Ci=1及A=B=1、Ci=0的情況,因為AND閘270、272的輸出將跟隨A及B輸入。舉例而言,參考第12圖,當WSA及WSB擴展為1(帶正負號權重)時,FA3及FA4全加器(即第n-1個及第n個加法器)均接收A[3]及B[3]輸入。若A[3]=B[3]=0,則FA3加法器的進位輸出位元Co將為0。因此,FA4加法器的A=B=0、Ci=1的情況將永遠不會發生。類似地,若A[3]=B[3]=1,則FA3加法器的進位輸出位元Co將為1,且FA4加法器的A=B=1、Ci=0的情況亦將永遠不會發生。此外,第n個加法器的溢位(即,進位)被丟棄。因此,可簡化第n個加法器電路的電路,從而減少用於實施這個全加器的電晶體的數目。
第17圖示出了用於第n個加法器的加法器電路280的實例,諸如第12圖中所示的5位元加法器224的全加器FA4。與將兩個AND閘270、272與常規全加器電路組合相比,在一些實例中,第17圖中所示的電路將電晶體計數減少了22個電晶體。第17圖的加法器電路280使用10個電晶體來實施輸入電路282,輸入電路282用以接收A及B輸入位元以及CiB信號(即自n-1加法器接收的反向Ci信號)。基於這些輸入,在節點284處提供中間信號。節點284係至輸出電路286的輸入,輸出電路286亦接收CiB信號以及SIGN擴展信號及其反向SIGNB,以提供Sn和數輸出。
如上所示,簡化的加法器電路280自前一全加器(n-1加法器)接收進位輸出信號Co的反向。因此,n-1加法器被修改為輸出Co信號的反向(即,CiB信號)。第18圖係示出全加器電路的實例的示意圖,諸如第15圖中所示的Adder1全加器。所示Adder1電路包括反向器290,反向器290在進位輸出端子292處提供進位輸出信號Co。進位輸出位元Co輸出至後續加法器的進位輸入端子Ci。
然而,最後一個全加器(Adder n)自前一加法器(Adder n-1)接收進位輸出位元Co的反向。第19圖示出了Adder n-1的實例,其中消除了反向器290,以便在進位輸出端子292處輸出進位輸出信號的反向,它將反向進位輸入CiB提供至最終全加器(Adder n)。如前所述,第17圖的簡化加法器電路280中顯示了最終加法器的實例Adder n。
第20圖係一個流程圖,示出了根據所揭示實施例的CIM方法的實例。進一步參考第7圖及第8圖,方法400包括在操作410處將複數個權重信號W[3:0]儲存在複數個記憶體單元112中。記憶體單元112中的各者儲存W位元權重信號中的一位元。在操作412處提供複數個邏輯電路214,其連接至複數個記憶體單元中的各自一者。在操作414處提供輸入信號A I至複數個邏輯電路214。邏輯電路214用以在操作416處將權重信號W[3:0]乘以輸入信號A I,以提供複數個乘積信號。在操作418處,複數個乘積信號自複數個邏輯電路214輸出至加法器樹220。在操作420處提供權重正負號信號WS。權重正負號信號WS用以指示權重信號係帶正負號的或係無正負號的。在操作422處,由加法器樹220基於乘積信號及權重正負號信號輸出部分和信號。
因此,本揭示內容提供了一種CIM系統,CIM系統包括用於儲存CIM權重的記憶體單元,具有耦接至記憶體單元的各者的乘法電路。所揭示的系統用以使用多週期輸入將輸入信號與基於行的所儲存權重相乘。輸入信號及/或權重信號可係帶正負號或無正負號的,且乘法電路的乘積輸出由加法器樹及累加器累加。
所揭示實施例包括具有記憶體陣列的CIM的裝置,記憶體陣列具有配置成列及行的複數個記憶體單元。複數個記憶體單元包括記憶體陣列的第一列及第一行中的第一記憶體單元,以及記憶體陣列的第一列及第二行中的第二記憶體單元。第一及第二記憶體單元用以儲存各自的第一及第二權重信號。輸入驅動器用以提供複數個輸入信號,且第一邏輯電路耦接至第一記憶體單元以基於來自輸入驅動器的第一輸入信號及第一權重信號提供第一輸出信號。第二邏輯電路耦接至第二記憶體單元,且基於來自輸入驅動器的第二輸入信號及第二權重信號提供第二輸出信號。
根據進一步的實施例,CIM的裝置包括具有複數個排列成列及行的記憶體單元的記憶體陣列。複數個記憶體單元儲存具有w位元的權重信號,其中w係正整數。記憶體陣列具有w行,且記憶體單元中的各者用以儲存權重信號的一位元。記憶體單元中的各者耦接至相應的乘法電路,乘法電路用以基於接收到的輸入信號及儲存在相應的記憶體單元中的權重信號來提供乘積信號。多個加法器電路用以將乘積信號相加且輸出部分和信號。
根據進一步的實施例,CIM的方法包括在複數個記憶體單元中儲存複數個權重信號,其中權重信號中的各者具有w位元(w為正整數)。記憶體單元中的各者儲存w位元權重信號的一位元。複數個邏輯電路連接至複數個記憶體單元中的各自一者。提供輸入信號至複數個邏輯電路,以將權重信號乘以輸入信號,從而提供複數個乘積信號。複數個乘積信號自複數個邏輯電路輸出至加法器樹。權重正負號信號指示權重信號是否係帶正負號的。由加法器樹基於乘積信號及權重正負號信號輸出部分和信號。
前述內容概述若干實施例的特徵,使得熟習此項技術者可更佳地理解本揭示內容的態樣。熟習此項技術者應瞭解,其可易於使用本揭示內容作為用於設計或修改用於實施本文中引入的實施例的相同目的及/或達成相同優勢的其他製程及結構的基礎。熟習此項技術者亦應認識到,此類等效構造並不偏離本揭示內容的精神及範疇,且此類等效構造可在本文中進行各種改變、取代、及替代而不偏離本揭示內容的精神及範疇。
100:CIM裝置、記憶體單元、陣列 102:輸入驅動器 104:WL驅動器 110:陣列 111:CIM記憶體陣列 112:記憶體單元 114:邏輯電路、乘法器電路 116:加法器電路、加法器樹 120:記憶體控制器 122:SRAM讀/寫電路 124:累加器 130:乘法部分 132:累加部分 212:SRAM單元 214:反或(NOR)閘、電路 215:與(AND)閘 218:接線 219:接線 218a:列 219a:列 220:加法器樹 222:求和2分支 224:加法器 224a:加法器 224b:二補數加法器 225:加法器電路 226:求和4分支 228:加法器電路 230:求和8分支 232:加法器電路 234:求和16分支 236:加法器電路 238:求和32分支 240:加法器電路 242:求和64分支 244:加法器電路 246:求和128分支 248:加法器電路 250:求和256分支 252:加法器電路 270:AND閘 272:AND閘 280:加法器電路 282:輸入電路 286:輸出電路 290:反向器 292:進位輸出端子 300:部分和電路 310:加法器 312:輸入暫存器 314:暫存器、加法器 316:第一多工器(MUX) 320:暫存器 322:移位器 330:輸出暫存器 350:第一運算週期 352:第二運算週期 354:第三運算週期 356:第四運算週期 358:第五運算週期 400:方法 410:操作 412:操作 414:操作 416:操作 418:操作 420:操作 422:操作
本揭示內容的態樣在與隨附圖式一起研讀時自以下詳細描述內容來最佳地理解。應注意,根據行業中的標準慣例,各種特徵未按比例繪製。實際上,各種特徵的尺寸可為了論述清楚經任意地增大或減小。此外,附圖係作為本揭示內容的實施例的說明,並不意欲為限制性的。 第1圖係示出根據一些實施例的記憶體內計算(compute-in-memory,CIM)裝置的實例的方塊圖。 第2圖係示出根據一些實施例的在第1圖的CIM裝置中使用的SRAM記憶體單元的實例的示意圖。 第3圖係示出根據一些實施例的在第1圖的CIM裝置中使用的記憶體單元及NOR閘的實例的示意圖。 第4圖係示出根據一些實施例的在第1圖的CIM裝置中耦接至記憶體單元的SRAM記憶體單元及NOR閘的實例的示意圖。 第5圖係示出根據一些實施例的在第1圖的CIM裝置中使用的記憶體單元及AND閘的實例的示意圖。 第6圖係示出根據一些實施例的在第1圖的CIM裝置中耦接至記憶體單元的SRAM記憶體單元及AND閘的實例的示意圖。 第7圖係根據一些實施例的CIM記憶體陣列的實例的示意圖。 第8圖係根據一些實施例的加法器樹的實例的方塊圖。 第9圖係根據一些實施例的累加器的實例的方塊圖。 第10圖係示出根據一些實施例的CIM輸出計算的時序的時序圖。 第11圖係示出根據一些實施例的多個權重行經組合的CIM記憶體陣列的部分的方塊圖。 第12圖係示出根據一些實施例的與帶正負號/無正負號權重格式組合的加法器電路的方塊圖。 第13圖係示出根據一些實施例的二進制加法器電路的方塊圖。 第14圖係示出根據一些實施例的二補數加法器電路的方塊圖。 第15圖係示出根據一些實施例的加法器電路組態的方塊圖。 第16圖係根據一些實施例的全加器電路的真值表。 第17圖係示出根據所揭示實施例的簡化加法器電路的實例的示意圖。 第18圖係示出根據所揭示實施例的全加器的實例的示意圖。 第19圖係示出根據所揭示實施例的改進全加器的實例的示意圖。 第20圖係示出根據所揭示實施例的CIM方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
400:方法
410:操作
412:操作
414:操作
416:操作
418:操作
420:操作
422:操作

Claims (20)

  1. 一種記憶體內計算的裝置,包含: 一記憶體陣列,包括配置成多個列及多個行的複數個記憶體單元,該些記憶體單元包括該記憶體陣列的一第一列及一第一行中的一第一記憶體單元,以及該記憶體陣列的該第一列及一第二行中的一第二記憶體單元,該第一記憶體單元及該第二記憶體單元用以儲存各自的一第一權重信號及一第二權重信號; 一輸入驅動器,用以提供複數個輸入信號; 一第一邏輯電路,耦接至該第一記憶體單元且用以基於來自該輸入驅動器的一第一輸入信號及該第一權重信號提供一第一輸出信號;及 一第二邏輯電路,耦接至該第二記憶體單元且用以基於來自該輸入驅動器的一第二輸入信號及該第二權重信號提供一第二輸出信號。
  2. 如請求項1所述之裝置,其中該第一邏輯電路及該第二邏輯電路各包含一乘法電路。
  3. 如請求項2所述之裝置,其中該乘法電路包含一反或閘。
  4. 如請求項2所述之裝置,其中該乘法電路包含一與閘。
  5. 如請求項1所述之裝置,其中該第一記憶體單元及該第二記憶體單元各包含一靜態隨機存取記憶體單元。
  6. 如請求項1所述之裝置,其中該第一權重信號及該第二權重信號中的至少一者係多個帶正負號權重。
  7. 如請求項1所述之裝置,進一步包含: 該記憶體陣列的一第二列及該第一行中的一第三記憶體單元,以及該記憶體陣列的該第二列及該第二行中的一第四記憶體單元,該第三記憶體單元及該第四記憶體單元用以儲存各自的一第三權重信號及一第四權重信號; 一第三邏輯電路,耦接至該第三記憶體單元且用以基於來自該輸入驅動器的一第三輸入信號及該第三權重信號提供一第三輸出信號;及 一第四邏輯電路,耦接至該第四記憶體單元且用以基於來自該輸入驅動器的一第四輸入信號及該第四權重信號提供一第四輸出信號。
  8. 如請求項7所述之裝置,進一步包含一加法器電路,該加法器電路用以將該第一輸出信號、該第二輸出信號、該第三輸出信號及該第四輸出信號相加。
  9. 如請求項8所述之裝置,其中該加法器電路用以將與該第一權重信號、該第二權重信號、該第三權重信號及該第四權重信號相關聯的多個權重正負號信號相加。
  10. 一種記憶體內計算的裝置,包含: 一記憶體陣列,包括配置成多個列及多個行的複數個記憶體單元,該些記憶體單元用以儲存具有w位元的一權重信號,其中w係一正整數,該記憶體陣列包括w行,該些記憶體單元中的各者用以儲存該權重信號的一位元; 複數個乘法電路,該些記憶體單元中的各者耦接至該些乘法電路中的一相應一者,且該些乘法電路用以基於接收到的一輸入信號及儲存在一相應記憶體單元中的該權重信號提供一乘積信號;及 多個加法器電路,用以將該些乘積信號相加且輸出一部分和信號。
  11. 如請求項10所述之裝置,其中儲存該權重信號的w位元的該些記憶體單元在該記憶體陣列的一列中。
  12. 如請求項10所述之裝置,其中該些記憶體單元用以儲存複數個權重信號,且其中儲存該些權重信號的w位元的該些記憶體單元及相應的該些乘法電路在該記憶體陣列的各自複數個列中。
  13. 如請求項12所述之裝置,其中該些加法器電路各用以自該記憶體陣列的兩個列接收該些乘積信號。
  14. 如請求項13所述之裝置,其中該些加法器電路各用以接收對應於該些權重信號的一權重正負號。
  15. 如請求項13所述之裝置,其中該些加法器電路各包括一個半加器電路及w個全加器電路。
  16. 如請求項10所述之裝置,進一步包含一累加電路,該累加電路用以移位及相加該部分和信號以產生一記憶體內計算輸出。
  17. 一種記憶體內計算的方法,包含: 在複數個記憶體單元中儲存複數個權重信號,其中該些權重信號中的各者具有w位元,其中w係一正整數,且其中該些記憶體單元中的各者儲存該些w位元權重信號中的一位元; 提供複數個邏輯電路,該些邏輯電路連接至該些記憶體單元中的各自一者; 提供一輸入信號至該些邏輯電路以將該些權重信號乘以該輸入信號,以提供複數個乘積信號; 將該些乘積信號自該些邏輯電路輸出至一加法器樹; 提供一權重正負號信號,該權重正負號信號用以指示該權重信號是否係帶正負號的;及 由該加法器樹基於該些乘積信號及該權重正負號信號輸出一部分和信號。
  18. 如請求項17所述之方法,進一步包含: 由一累加器移位及相加該部分和信號,以產生一記憶體內計算輸出。
  19. 如請求項17所述之方法,其中該些記憶體單元配置成多個列及多個行的一矩陣,其中該加法器樹包括複數個加法器電路,且其中自該些邏輯電路輸出該些乘積信號包括自多個相鄰列輸出該些乘積信號至該些加法器電路中的各者。
  20. 如請求項17所述之方法,進一步包含:組合複數個w位元權重信號。
TW110133489A 2021-01-29 2021-09-09 記憶體內計算的裝置及方法 TWI799983B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163143467P 2021-01-29 2021-01-29
US63/143,467 2021-01-29
US17/387,598 2021-07-28
US17/387,598 US20220244916A1 (en) 2021-01-29 2021-07-28 Compute in memory

Publications (2)

Publication Number Publication Date
TW202230165A true TW202230165A (zh) 2022-08-01
TWI799983B TWI799983B (zh) 2023-04-21

Family

ID=81858118

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110133489A TWI799983B (zh) 2021-01-29 2021-09-09 記憶體內計算的裝置及方法

Country Status (5)

Country Link
US (1) US20220244916A1 (zh)
KR (1) KR20220110090A (zh)
CN (1) CN114613404A (zh)
DE (1) DE102021120080A1 (zh)
TW (1) TWI799983B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12019905B2 (en) * 2021-08-02 2024-06-25 Qualcomm Incorporated Digital compute in memory
US11790243B1 (en) * 2022-06-30 2023-10-17 International Business Machines Corporation Ferroelectric field effect transistor for implementation of decision tree
US20240028298A1 (en) * 2022-07-19 2024-01-25 Samsung Electronics Co., Ltd. Memory device and method with in-memory computing
KR102662742B1 (ko) * 2022-08-05 2024-05-03 주식회사 아티크론 Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법
KR102665969B1 (ko) * 2022-08-30 2024-05-17 삼성전자주식회사 Imc(in memory computing) 회로, imc 회로를 포함하는 뉴럴 네트워크 장치, 및 imc 회로의 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4010995B2 (ja) * 2003-07-31 2007-11-21 Necエレクトロニクス株式会社 半導体メモリ及びそのリファレンス電位発生方法
US10418098B2 (en) * 2017-12-28 2019-09-17 Intel Corporation Methods and systems for performing a calculation across a memory array
US10943652B2 (en) * 2018-05-22 2021-03-09 The Regents Of The University Of Michigan Memory processing unit
TWI705391B (zh) * 2018-05-29 2020-09-21 英屬開曼群島商意騰科技股份有限公司 適用於人工神經元的記憶體內運算記憶體裝置及記憶體內運算記憶體區塊
US12099912B2 (en) * 2018-06-22 2024-09-24 Samsung Electronics Co., Ltd. Neural processor
KR20200004700A (ko) * 2018-07-04 2020-01-14 삼성전자주식회사 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
US10748603B2 (en) * 2018-09-28 2020-08-18 Intel Corporation In-memory multiply and accumulate with global charge-sharing
US11347477B2 (en) * 2019-09-27 2022-05-31 Intel Corporation Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations
US11714570B2 (en) * 2020-02-26 2023-08-01 Taiwan Semiconductor Manufacturing Company, Ltd. Computing-in-memory device and method
US11340867B2 (en) * 2020-03-03 2022-05-24 Qualcomm Incorporated Compute-in-memory (CIM) binary multiplier
KR20220096991A (ko) * 2020-12-31 2022-07-07 삼성전자주식회사 컨볼루션 sram 및 대각방향 축적 sram을 포함하는 신경망 가속기
US20220269483A1 (en) * 2021-02-19 2022-08-25 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory accumulator
US20220366968A1 (en) * 2022-08-01 2022-11-17 Intel Corporation Sram-based in-memory computing macro using analog computation scheme

Also Published As

Publication number Publication date
DE102021120080A1 (de) 2022-08-04
CN114613404A (zh) 2022-06-10
US20220244916A1 (en) 2022-08-04
TWI799983B (zh) 2023-04-21
KR20220110090A (ko) 2022-08-05

Similar Documents

Publication Publication Date Title
TW202230165A (zh) 記憶體內計算的裝置及方法
US7167890B2 (en) Multiplier-based processor-in-memory architectures for image and graphics processing
TWI784879B (zh) 計算方法及電子裝置
CN112636745B (zh) 逻辑单元、加法器以及乘法器
CN114072876B (zh) 存储器处理单元和计算点积的方法
US11574173B2 (en) Power efficient near memory analog multiply-and-accumulate (MAC)
TWI771014B (zh) 記憶體電路及其操作方法
US11996137B2 (en) Compute in memory (CIM) memory array
CN117608519B (zh) 基于10t-sram的带符号乘法与乘累加运算电路
JP2024530610A (ja) デジタルコンピュートインメモリのための折り畳み列加算器アーキテクチャ
CN114267391A (zh) 机器学习硬件加速器
CN115629734A (zh) 并行向量乘加器的存内计算装置和电子设备
CN116543808A (zh) 一种基于sram单元的全数字域存内近似计算电路
CN115910152A (zh) 电荷域存内计算电路以及具有正负数运算功能的存算电路
JP6944733B1 (ja) 内積計算装置
CN115658011B (zh) 向量乘加器的sram存内计算装置和电子设备
CN115658012B (zh) 向量乘加器的sram模拟存内计算装置和电子设备
KR102726631B1 (ko) 컴퓨트 인 메모리 (cim) 메모리 어레이
US20230418557A1 (en) Data computation circuit and method
CN117521734A (zh) 一种用于实现高能效乘法运算的存内计算电路
CN116913344A (zh) 基于sram的双倍数据存储容量的存内计算方法和装置
CN115394337A (zh) 一种存内计算电路及方法
JP2024013205A (ja) インメモリコンピューティングのためのメモリ装置及びその動作方法
KR20240011596A (ko) 인메모리 컴퓨팅을 위한 메모리 장치 및 그 동작 방법
CN115860074A (zh) 集成电路以及操作存储器中计算器件的方法