TW202135076A - 記憶體裝置、計算裝置及計算方法 - Google Patents

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

Info

Publication number
TW202135076A
TW202135076A TW110106174A TW110106174A TW202135076A TW 202135076 A TW202135076 A TW 202135076A TW 110106174 A TW110106174 A TW 110106174A TW 110106174 A TW110106174 A TW 110106174A TW 202135076 A TW202135076 A TW 202135076A
Authority
TW
Taiwan
Prior art keywords
capacitor
input
weight
capacitors
storage element
Prior art date
Application number
TW110106174A
Other languages
English (en)
Other versions
TWI750038B (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 TW202135076A publication Critical patent/TW202135076A/zh
Application granted granted Critical
Publication of TWI750038B publication Critical patent/TWI750038B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/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
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

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

Abstract

使用電荷共享方案來減輕胞元電流的變化,以便達成CIM計算的更高精度。在一些實施例中,電容器與每個SRAM胞元相關聯,並且在平均RBL電流中包括與一行中的所有SRAM胞元相關聯的電容器。在一些實施例中,與CIM裝置中的RBL相關聯的記憶體單元包括適於儲存權重的儲存元件、連接至儲存元件且適於由輸入訊號控制並產生乘積訊號的第一開關裝置,所述乘積訊號的大小指示輸入訊號與所儲存權重的乘積。記憶體單元更包括電容器,所述電容器適於接收乘積訊號並儲存對應於乘積訊號的大小的電荷量。記憶體單元更包括適於將電容器上的電荷轉移至RBL的第二開關裝置。

Description

記憶體裝置、計算裝置及計算方法
本揭露概言之是有關於用於資料處理(例如,乘法累加運算)的記憶體陣列。記憶體內計算(compute-in-memory或in-memory computing)系統將資訊儲存在電腦的主隨機存取記憶體(random-access memory,RAM)中,並在記憶體胞元層面上執行計算,而非為每個計算步驟在主RAM與資料儲存之間移動大量資料。由於所儲存的資料在儲存於RAM中時被更快地存取,因此記憶體內計算允許即時分析資料,從而在業務及機器學習應用中實現更快的報告及決策。正在努力提高記憶體內計算系統的效能。
以下揭露內容提供用於實作所提供標的物的不同特徵的諸多不同實施例或實例。以下闡述組件及佈置的具體實例以簡化本揭露。當然,該些僅為實例且不旨在進行限制。舉例而言,在以下說明中,將第一特徵形成於第二特徵之上或第二特徵上可包括其中第一特徵與第二特徵被形成為直接接觸的實施例,且亦可包括其中在第一特徵與第二特徵之間可形成有附加特徵、進而使得第一特徵與第二特徵可能不直接接觸的實施例。另外,本揭露可在各種實例中重複使用參考編號及/或字母。此種重複使用是出於簡潔及清晰的目的,且本身並不表示所論述的各種實施例及/或配置之間的關係。
本揭露概言之是有關於記憶體內計算(「CIM」)。CIM的應用的實例是乘法累加(multiply-accumulate,「MAC」)運算,其中輸入數字陣列被另一數字(權重)陣列(例如,行)中的相應元素相乘(加權),並且將乘積一起相加(累加)以產生輸出和。此在數學上類似於兩個向量的點積(或純量積),在所述過程中,兩個向量的分量成對地彼此相乘,並且對分量對(component pair)的乘積進行求和。在某些人工智慧(artificial intelligence,AI)系統(例如,人工神經網路)中,一個數字陣列可由多行權重來加權。每一行的加權會產生各自的輸出和。因此,藉由輸入數字陣列乘以具有多個行的矩陣中的權重,產生輸出和陣列(output array of sums)。在其他應用中採用類似的運算,例如多位元卷積類神經網路(convolutional neural network,「CNN」)運算。
CIM可用包括靜態隨機存取記憶體(static random-access memory,「SRAM」)在內的各種記憶體裝置來實作。在典型的SRAM裝置中,當SRAM胞元中的一或多個存取電晶體藉由來自一或多個字線(wordline,「WL」)的賦能訊號而激活時,資料經由一或多個位元線(bitline,「BL」)被寫入SRAM胞元及自SRAM胞元讀取。傳統的基於SRAM的CIM設計接通一行SRAM胞元中的多個WL,以對公共BL(例如,讀取BL(read-BL,「RBL」))進行放電,從而實作1位元MAC。然而,由於胞元電流變化,RBL放電位準隨著不同的胞元電流組合而變化,從而導致MAC運算的不準確性。
根據在本揭露中揭露的一些實施例,使用電荷共享方案來減輕胞元電流的變化,以便達成CIM計算的更高精度。在一些實施例中,電容器與每個SRAM胞元相關聯,並且在平均RBL電流中包括與一行中的所有SRAM胞元相關聯的電容器。在一些實施例中,與CIM裝置中的RBL相關聯的記憶體單元包括適於儲存權重的儲存元件、連接至儲存元件且適於由輸入訊號控制並產生乘積訊號的第一開關裝置,所述乘積訊號的大小指示輸入訊號與所儲存權重的乘積。記憶體單元更包括電容器,所述電容器適於接收乘積訊號並儲存對應於乘積訊號的大小的電荷量。記憶體單元更包括適於將電容器上的電荷轉移至RBL的第二開關裝置。
根據一些實施例,一種計算方法包括產生一組乘積訊號,所述乘積訊號中的每一者指示對應於一組輸入訊號中的一者的值與儲存在一組資料儲存元件中的相應一者中的值的乘積;將一組電容器兩端的電壓設置為預定位準(例如,接地),所述一組電容器中的每一者對應於所述一組資料儲存元件中的一者;在已將所述電容器兩端的所述電壓設置為所述預定位準之後,將所述一組乘積訊號施加至所述一組電容器中的相應的電容器;在已將所述乘積訊號施加至所述電容器之後,經由輸出線對所述電容器進行放電;以及在所述輸出線上產生指示所述乘積訊號之和的訊號。
在某些更具體的實施例中,如圖1至圖5中所示,記憶體內計算裝置100包括以列112(第i 列標記為112 i )及行114(第j 行標記為114 j )排列的記憶體單元120(每個胞元標記為120 i,j )的陣列110。記憶體單元120在列及行中的排列是邏輯性排列,但亦也為物理性排列。每個記憶體單元120包括儲存元件122、第一開關裝置124、具有電容Ccell 的電容器126及第二開關裝置128。CIM裝置100更包括與記憶體單元的每個列112相關聯的寫入字線(write wordline,「WWL」)、輸入線(input line,「輸入」)及評估控制線(evaluation control line,「EVAL」)。CIM裝置100更包括與記憶體單元的每個行114相關聯的寫入位元線(write bitline,「WBL」)及讀取位元線(read bitline,「RBL」)。儲存元件122連接至與其列相關聯的WWL及與其行相關聯的WBL,並且適於在被WWL上的訊號激活時輸入指示權重(「W」)的二進位訊號(0或1)並儲存所述權重。第一開關裝置124連接至儲存元件112及相關聯的IN。第一開關裝置124由IN上的訊號控制,適於自儲存元件122接收權重。電容器126連接於第一開關裝置124與參考電壓(在此實例中為接地)之間。第二開關裝置128連接至相應的EVAL,並由EVAL上的訊號控制。第二開關內連相應的RBL及節點P,其中第一開關裝置124與電容器126在所述節點P處彼此連接。
第一開關裝置124輸出至節點P的值由第一開關裝置124的狀態及儲存在儲存元件122中的權重W決定;第一開關裝置124的狀態又由IN上的訊號決定。當IN上的訊號為「1」時,第一開關裝置124將儲存在儲存元件122中的權重傳遞至節點P;當IN上的訊號為「0」時,第一開關裝置124向節點P輸出「0」,而無論儲存在儲存元件122中的權重為何。因此,第一開關裝置124的輸出由下表(表1)給出:
IN W 輸出
0 0 0
0 1 0
1 0 0
1 1 1
表1
自表中顯而易見的是,輸出是IN上的訊號與儲存在儲存元件122中的權重的乘積,即,輸出=IN×W。
在一些實施例的運算中,在第一步驟中,如圖2所示,藉由逐個接通相應的WWL並依據被接通的WWL設置WBL上的值而將權重寫入行114中的儲存元件122中。例如,當第n 列的WWL接通時,可將WBL設置為「0」,以向第n 列中的儲存元件寫入「0」;當第(n -1)列的WWL接通時,可將WBL設置為「1」,以向第(n -1)列中的儲存元件寫入「0」。
接下來,如圖3所示,藉由對電容器126進行預放電而重置每個記憶體單元120的節點P處的電壓V cell。在一些實施例中,此可藉由斷開每個記憶體單元120中的第一開關裝置124(藉由斷開IN)及接通每個記憶體單元120中的第二開關裝置128(藉由接通EVAL)並驅動RBL為0來完成。
接下來,如圖4所示,藉由在每個記憶體單元中的第二開關裝置128斷開(EVAL=0)的情況下將IN設置為適當的值來執行上述乘法運算IN×W。因此,每個記憶體單元120的節點P處的電壓V cell指示記憶體單元120的乘積IN×W(例如,與所述乘積成比例)。在圖4所示的實例中,儲存在儲存元件122中的權重值對於第n 列而言為0,且對於第(n -1)列而言為1;兩個輸入皆為1,即,IN[n ]=1,且IN[n -1]=1。
接下來,如圖5所示,在RBL上獲得與行114中所有記憶體單元120的IN×W之和成比例的電壓V RBL 。此是藉由將RBL預放電至0伏特、且然後接通所有第二開關裝置128(藉由接通EVAL,即EVAL=1)而執行的,藉此使得電容器126能夠放電至RBL。RBL有其自身的電容CRBL 。RBL上的電壓V RBL 因此將升高,並且記憶體單元120的電容器126被放電。由於電容器126彼此並聯並且與具有電容CRBL 的虛擬電容器並聯,因此在W=1的記憶體單元中的電容器126上的電荷現在在所有電容器之間共享。最終的V RBL 因此由下式給出
Figure 02_image001
其中n 是在同一RBL上的記憶體單元120的數量,m 是在電荷共享之前儲存有IN×W=1的節點P的數量,且VDD 是供應電壓。
因此,V RBL 代表共享同一RBL的所有記憶體單元120中的IN×W之和。
更概括而言,根據一些實施例,如圖12中所概述的計算方法1200包括產生一組乘積訊號1210(例如,藉由將輸入訊號施加至IN線,如圖4所示),所述乘積訊號中的每一者指示對應於一組輸入訊號中的一者的值與儲存在一組資料儲存元件中的相應一者中的值的乘積。方法1200亦包括將一組電容器兩端的電壓設置為預定位準(例如,接地)1220(例如,藉由在保持第一開關124斷開的同時接通第二開關128,藉此對電容器126進行預充電,如圖3所示),所述一組電容器中的每一者對應於所述一組資料儲存元件中的一者。方法1200更包括在已將所述電容器兩端的所述電壓設置為所述預定位準之後,將所述一組乘積訊號施加至所述一組電容器中的相應的電容器1230(例如,藉由在保持第二開關128斷開的同時接通第一開關124,藉此對電容器126進行充電,如圖4所示);在已將所述乘積訊號施加至所述電容器之後,經由輸出線對所述電容器進行放電1240(例如,藉由在保持第一開關124斷開的同時接通第二開關128,如圖5所示)。最後,方法1200包括在所述輸出線上產生指示所述乘積訊號之和的訊號1250(例如,藉由基於電容CRBL 建立電壓,如圖5所示)。
以上以一般性術語論述的CIM裝置可以多種配置實作。在圖6至圖11中示出若干實例。示例性CIM裝置600是圖1所示CIM裝置100的具體實施方式。記憶體元件122用SRAM胞元622實作,所述SRAM胞元622包括兩個反向耦合的反相器,每個反相器由一對互補金屬氧化物半導體(complementary metal oxide semiconductor,「CMOS」)電晶體製成。第一反相器由串行連接(即,源極-汲極電流路徑串聯)在高參考電壓(例如,VDD )與低參考電壓(例如,接地)之間的p型金屬氧化物半導體(metal-oxide-semiconductor,MOS)場效應電晶體(p-type metal-oxide-semiconductor field-effect transistor,PMOS)632及n型MOS場效應電晶體(n-type MOS field-effect transistor,NMOS)634製成;第二反相器由串行連接在高參考電壓(例如,VDD )與低參考電壓(例如,接地)之間的PMOS(636)及NMOS(638)製成。儲存元件622更包括寫入存取電晶體(640),所述寫入存取電晶體在此實例中是NMOS。反相器是反向耦合的,即,一個反相器的輸出(即,源極/汲極電流路徑之間的接合)耦合至另一個反相器的輸入(即,閘極)。寫入存取電晶體640的源極/汲極電流路徑連接在反向耦合的反相器的接合與寫入位元線(「WBL」)之間。圖1中的第一開關裝置124用CMOS傳輸閘624來實作,所述CMOS傳輸閘624可藉由一對輸入線IN及其補數(complement)INB來接通及斷開。電容器626可具有任何合適的類型,包括金屬-絕緣體-金屬(metal-insulator-metal,「MIM」)電容器及金屬-絕緣體-半導體(「MOS」)電容器。圖1中的第二開關裝置128由另一CMOS傳輸閘628實作,所述CMOS傳輸閘628藉由一對評估控制線EVAL及其補數EVALB來接通及斷開。
在圖7所示的另一示例性實施方式中,除了CIM裝置600中的CMOS傳輸閘624由PMOS 724代替之外,CIM裝置700與圖6所示的CIM裝置600實質上相同。
在圖8所示的另一示例性實施方式中,CIM裝置800與圖7所示的CIM裝置700實質上相同,只是重置電晶體650連接在電容器626兩端並由重置線(reset line,「RST」)控制以對電容器626進行放電,而非使用RSL及第二開關裝置628進行放電。當RST上的訊號變高時,在此特定實例中,重置電晶體650被接通並進行傳導,藉此使電容器626放電。
在圖9所示的另一個示例性實施方式中,除了與CMOS對636、638(參見圖8)串聯添加PMOS 662及NMOS 664、並且CIM裝置700中的NMOS 640被CMOS傳輸閘940代替之外,CIM裝置900與圖7所示的CIM裝置700實質上相同。PMOS 662及NMOS 664的添加引入與CMOS對636、638串聯的汲極/源極電壓降,藉此增加用於向SRAM胞元進行寫入的臨限電壓,並因此提高了寫入裕量(write margin)。
在圖10所示的另一示例性實施方式中,CIM裝置1000與圖9所示的CIM裝置900實質上相同,只是重置電晶體1050以與圖8所示的實例相同的方式連接在電容器626兩端並由重置線(「RST」)控制以對電容器626進行放電,而非使用RSL及第二開關裝置628進行放電。
在圖11所示的另一示例性實施方式中,除了CIM裝置900中的CMOS傳輸閘624由PMOS 1124代替之外,CIM裝置1100與圖9所示的CIM裝置900實質上相同。
上述CIM裝置可用於多種應用。例如,如圖13所示,具有記憶體單元622的2×4陣列110的裝置1300可用於執列兩個2位元數字的乘法運算。在一些實施例中,由於乘積n ×wnw 的和,因此將「1」應用於n 個WL,或者可接通n 個WL,其中在每列中儲存有w 。例如,對於IN數字00b 而言,無WL被接通;對於IN數字01b 而言,一(1)個WL被接通;對於IN數字10b 而言,兩(2)個WL被接通;並且對於IN數字11b 而言,三(3)個WL被接通。2位元W儲存在所有四列112中,其中每一位元儲存在相應的行114中,每一行具有相應的位值(place value)。每行的RBL電壓V RBL 被饋送至相應的類比數位轉換器(analog-to-digital converter,「ADC」)1370,以產生所述行的和的二進位表示,從而使得每行具有各自的位值。使用移位器(例如,桶形移位器)(圖中未示出)根據行的位值將每個ADC 1370的輸出向左移位一定數量的位數:最低有效行為0個位元,第二最低有效行為1個位元,依此類推。最後,使用數位加法器1380將移位的和一起求和,以產生兩個2位元數字的乘積。
作為具體的實例,為計算n =11b (十進位3)及w =11(十進位3)的乘積,將w 的「11」儲存在所有四列中,並且將「1」應用於三(3)個WL以表示n 的值。因此,每個位元線產生RBL電壓V RBL ,所述RBL電壓V RBLw 的位元值(在此實例中,兩個位元皆為「1」)的n (3)倍成比例。因此,每個位元線的ADC 1370的輸出為「11」。然後,將MSB(左手行)的ADC輸出向左移位一個(1)位元,以產生為「110」的移位輸出。最後,MSB的位元移位輸出(「110」)與LSB的未移位輸出(「11」)一起求和,以產生11b ×11b :110b +11b =1001b (十進位9)的乘積。
上述示例性實施例藉由當第二開關128、628接通時在每行中的電容器126(圖1至圖5)或626(圖6至圖11)之間共享電荷而在所有記憶體單元之間使用電荷共享,以減輕由於裝置變化引起的胞元電流的變化。因此,CIM計算精度相較於傳統的CIM裝置有所提高。
以上概述了若干實施例的特徵,以使熟習此項技術者可更佳地理解本揭露的各態樣。熟習此項技術者應理解,他們可容易地使用本揭露作為設計或修改其他製程及結構的基礎來施行與本文中所介紹的實施例相同的目的及/或達成與本文中所介紹的實施例相同的優點。熟習此項技術者亦應認識到,此種等效構造並不背離本揭露的精神及範圍,且他們可在不背離本揭露的精神及範圍的條件下在本文中作出各種改變、替代及變更。
100、600、700、800、900、1000、1100:記憶體內計算(CIM)裝置 110:陣列 112 i :第i 列 114 j :第j 行 120 i,j :胞元 122:儲存元件/記憶體元件 124:第一開關裝置/第一開關 126、626:電容器 128:第二開關裝置/第二開關 622:SRAM胞元/儲存元件/記憶體單元 624、940:CMOS傳輸閘 628:CMOS傳輸閘/第二開關裝置/第二開關 632、636、662、724、1124:p型金屬氧化物半導體場效應電晶體(PMOS) 634、638、664:n型MOS場效應電晶體(NMOS) 640:寫入存取電晶體/NMOS 650、1050:重置電晶體 1200:計算方法 1210、1220、1230、1240、1250:步驟 1300:裝置 1370:類比數位轉換器(ADC) 1380:數位加法器 Ccell、CRBL :電容 EVAL:評估控制線 EVALB:評估控制線的補數 IN:輸入線 INB:輸入線的補數 P:節點 RBL:讀取位元線 RST:重置線 Vcell:電壓 VRBL :RBL電壓 WBL:寫入位元線 W:權重 WWL:寫入字線
藉由結合附圖閱讀以下詳細說明,會最佳地理解本揭露的各態樣。應注意,根據行業中的標準慣例,各種特徵並非按比例繪製。事實上,為論述清晰起見,可任意增大或減小各種特徵的尺寸。 圖1是根據一些實施例的記憶體內計算(computing-in-memory,「CIM」)裝置的一部分的示意圖。 圖2示意性地示出根據一些實施例將權重寫入圖1中的CIM裝置。 圖3示意性地示出根據一些實施例,重置圖1中的CIM裝置的胞元電容器電壓。 圖4示意性地示出根據一些實施例,執行輸入與儲存在圖1中的CIM裝置中的權重的乘法運算。 圖5示意性地示出根據一些實施例,輸入與儲存在圖1中的CIM裝置中的權重的乘積的求和。 圖6是根據一些實施例的記憶體內計算(「CIM」)裝置的一部分的詳細示意圖。 圖7是根據一些實施例的記憶體內計算(「CIM」)裝置的一部分的詳細示意圖。 圖8是根據一些實施例的記憶體內計算(「CIM」)裝置的一部分的詳細示意圖。 圖9是根據一些實施例的記憶體內計算(「CIM」)裝置的一部分的詳細示意圖。 圖10是根據一些實施例的記憶體內計算(「CIM」)裝置的一部分的詳細示意圖。 圖11是根據一些實施例的記憶體內計算(「CIM」)裝置的一部分的詳細示意圖。 圖12概述根據一些實施例的用於執行乘法累加(multiplication-accumulation,「MAC」)運算的過程。 圖13是根據一些實施例的用於執行2位元乘法運算(2-bit multiplication)的CIM裝置的示意圖。
100:記憶體內計算(CIM)裝置
110:陣列
112 i :第i
114 j :第j
120 i,j :胞元
122:儲存元件/記憶體元件
124:第一開關裝置/第一開關
126:電容器
128:第二開關裝置/第二開關
Ccell:電容
EVAL:評估控制線
IN:輸入線
P:節點
RBL:讀取位元線
Vcell:電壓
WBL:寫入位元線
W:權重
WWL:寫入字線

Claims (20)

  1. 一種記憶體裝置,包括: 儲存元件,具有寫入控制輸入、權重輸入及權重輸出,並且適於因應於來自所述寫入控制輸入的寫入控制訊號而在所述權重輸入處接收權重值,並且儲存所述權重值; 電容器; 第一開關裝置,具有資料輸入,並且適於因應於所述資料輸入處的資料輸入控制訊號而將所述儲存元件的所述權重輸出內連至所述電容器的第一端;以及 第二開關裝置,具有讀取控制輸入,並且適於因應於所述讀取控制輸入處的讀取控制訊號而將所述電容器的所述第一端內連至讀取位元線。
  2. 如請求項1所述的記憶體裝置,其中所述儲存元件包括靜態隨機存取記憶體胞元。
  3. 如請求項2所述的記憶體裝置,其中所述第二開關裝置與所述第一開關裝置適於協作以在一開關狀態下將所述電容器的所述第一端自所述儲存元件斷開並且經由所述讀取位元線對所述電容器進行放電,並且在另一開關狀態下將所述電容器的所述第一端自所述讀取位元線斷開並且將所述電容器的所述第一端與所述儲存元件的所述權重輸出內連。
  4. 如請求項1所述的記憶體裝置,更包括連接在所述電容器兩端的開關裝置,並適於經由所述開關裝置對所述電容器進行放電。
  5. 如請求項1所述的記憶體裝置,其中所述儲存元件包括在第一節點及第二節點處彼此交叉耦合的一對互補金屬氧化物半導體反相器,並且其中所述第一開關裝置適於因應於所述資料輸入處的所述資料輸入控制訊號而將所述第一節點內連至所述電容器的所述第一端。
  6. 如請求項1所述的記憶體裝置,其中所述第一開關裝置包括具有一對互補資料輸入的互補金屬氧化物半導體傳輸閘。
  7. 如請求項5所述的記憶體裝置,更包括存取開關裝置,所述存取開關裝置具有寫入控制輸入,並且適於因應於所述寫入控制輸入處的寫入控制訊號而將所述第二節點內連至寫入位元線。
  8. 如請求項1所述的記憶體裝置,更包括: 第二儲存元件,具有寫入控制輸入、權重輸入及權重輸出,且適於因應於來自所述寫入控制輸入的第二寫入控制訊號而在所述權重輸入處接收權重值,並且儲存所述權重值; 第二電容器; 第三開關裝置,具有資料輸入,並且適於因應於所述第三開關裝置的所述資料輸入處的資料輸入控制訊號而將所述第二儲存元件的所述權重輸出內連至所述第二電容器的第一端;以及 第四開關裝置,具有讀取控制輸入,並且適於因應於所述第四開關裝置的所述讀取控制輸入處的讀取控制訊號而將所述第二電容器的所述第一端內連至所述讀取位元線。
  9. 一種計算裝置,包括: 多個讀取位元線; 多個寫入位元線; 多個寫入字線; 多個輸入線; 多個評估線;以及 多個記憶體單元,邏輯排列成多列及多行,所述記憶體單元的所述多行中的每一者與所述讀取位元線中的相應一者及所述寫入位元線中的相應一者相關聯,所述記憶體單元的所述多列中的每一者與所述寫入字線中的相應一者、所述輸入線中的相應一者及所述評估線中的相應一者相關聯,所述記憶體單元中的每一者包括: 儲存元件,具有寫入控制輸入、權重輸入及權重輸出,其中所述寫入控制輸入連接至與所述儲存元件所屬的列相關聯的所述寫入字線,所述權重輸入連接至與所述記憶體單元所屬的行相關聯的所述寫入位元線,且所述儲存元件適於因應於來自所述寫入字線的寫入控制訊號而自所述寫入位元線接收權重值,並且儲存所述權重值; 電容器; 第一開關裝置,具有連接至與所述記憶體單元所屬的列相關聯的所述輸入線的資料輸入,並且適於因應於來自所述輸入線的資料輸入控制訊號而將所述儲存元件的所述權重輸出內連至所述電容器的第一端;以及 第二開關裝置,具有連接至與所述記憶體單元所屬的列相關聯的所述評估線的讀取控制輸入,並且適於因應於來自所述評估線的讀取控制訊號而將所述電容器的所述第一端內連至與所述記憶體單元所屬的列相關聯的所述讀取位元線。
  10. 如請求項9所述的計算裝置,其中所述多行中的每一行中的所述記憶體單元的所述第一開關裝置及所述第二開關裝置適於將所述電容器的所述第一端自相應的所述儲存元件斷開,並將所述行中的所述電容器並行連接在所述第一開關裝置與參考電壓之間。
  11. 如請求項10所述的計算裝置,更包括多個類比數位轉換器,所述多個類比數位轉換器中的每一者連接至所述讀取位元線中的相應一者,並適於自所述讀取位元線接收類比訊號,且產生指示所述類比訊號的值的數位輸出。
  12. 如請求項11所述的計算裝置,更包括多個數位移位器,所述多個數位移位器中的每一者適於自所述類比數位轉換器中的相應一者接收所述數位輸出,並將所述數位輸出移位預定數量的位數,所述預定數量的位數對於每一行而言是不同的。
  13. 一種計算方法,包括: 產生一組乘積訊號,所述一組乘積訊號中的每一者指示對應於一組輸入訊號中的一者的值與儲存在一組資料儲存元件中的相應一者中的值的乘積; 將一組電容器兩端的電壓設置為預定位準,所述一組電容器中的每一者對應於所述一組資料儲存元件中的一者; 在已將所述一組電容器兩端的所述電壓設置為所述預定位準之後,將所述一組乘積訊號施加至所述一組電容器中的相應的電容器; 在已將所述一組乘積訊號施加至所述電容器之後,將所述電容器放電至輸出線;以及 在所述輸出線上產生指示所述一組乘積訊號之和的訊號。
  14. 如請求項13所述的計算方法,其中將所述一組電容器兩端的所述電壓設置為所述預定位準包括使所述電容器完全放電。
  15. 如請求項14所述的計算方法,其中使所述電容器完全放電包括將所述輸出線設置為0伏特、以及藉由相應的第二開關裝置將所述電容器放電至所述輸出線。
  16. 如請求項14所述的計算方法,其中使所述電容器完全放電包括藉由接通連接在每一電容器兩端的相應開關裝置來內連所述一組電容器中的每一者的兩端。
  17. 如請求項13所述的計算方法,其中將所述一組乘積訊號施加至相應的所述電容器包括在所述電容器與所述輸出線斷開時將所述一組乘積訊號施加至相應的所述電容器。
  18. 如請求項13所述的計算方法,其中將所述電容器放電至所述輸出線包括在所述輸出線與電壓參考點之間將所述電容器彼此並行連接。
  19. 如請求項13所述的計算方法,更包括將在所述輸出線上產生的所述訊號轉換成數位訊號,並將所述數位訊號移位預定數量的位元。
  20. 如請求項13所述的計算方法,其中將所述一組乘積訊號施加至相應的所述電容器包括:若相應的所述訊號是1,則將所述一組資料儲存元件中的一者連接至相應的所述電容器;以及若相應的所述訊號是0,則將所述一組資料儲存元件中的一者自相應的所述電容器斷開。
TW110106174A 2020-02-26 2021-02-22 記憶體裝置、計算裝置及計算方法 TWI750038B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062981834P 2020-02-26 2020-02-26
US62/981,834 2020-02-26
US17/130,918 2020-12-22
US17/130,918 US11714570B2 (en) 2020-02-26 2020-12-22 Computing-in-memory device and method

Publications (2)

Publication Number Publication Date
TW202135076A true TW202135076A (zh) 2021-09-16
TWI750038B TWI750038B (zh) 2021-12-11

Family

ID=77366140

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110106174A TWI750038B (zh) 2020-02-26 2021-02-22 記憶體裝置、計算裝置及計算方法

Country Status (3)

Country Link
US (2) US11714570B2 (zh)
CN (1) CN113314163B (zh)
TW (1) TWI750038B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220244916A1 (en) * 2021-01-29 2022-08-04 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory
US11942148B2 (en) * 2021-04-23 2024-03-26 The Regents Of The University Of Michigan Mixed-signal interface circuit for non-volatile memory crossbar array
KR102614377B1 (ko) * 2021-11-26 2023-12-19 주식회사 아티크론 Cim 기반 lcc를 구비한 메모리 디바이스
WO2024027936A1 (en) * 2022-08-05 2024-02-08 Synthara Ag Compact in-memory computer architecture

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4053510B2 (ja) * 2004-03-23 2008-02-27 日本テキサス・インスツルメンツ株式会社 Sram装置
KR20140092537A (ko) * 2013-01-16 2014-07-24 삼성전자주식회사 메모리 셀 및 이를 포함하는 메모리 장치
US8953365B2 (en) * 2013-06-07 2015-02-10 International Business Machines Corporation Capacitor backup for SRAM
KR102540082B1 (ko) * 2015-09-17 2023-06-02 제너직 에이비 감소된 누설을 위한 sram 아키텍처들
US10521229B2 (en) * 2016-12-06 2019-12-31 Gsi Technology, Inc. Computational memory cell and processing array device using memory cells
US11263522B2 (en) 2017-09-08 2022-03-01 Analog Devices, Inc. Analog switched-capacitor neural network
US10410714B2 (en) * 2017-09-20 2019-09-10 Qualcomm Incorporated Multi-level cell (MLC) static random access memory (SRAM) (MLC SRAM) cells configured to perform multiplication operations
US11669446B2 (en) * 2018-06-18 2023-06-06 The Trustees Of Princeton University Configurable in memory computing engine, platform, bit cells and layouts therefore
US10839894B2 (en) 2018-06-29 2020-11-17 Taiwan Semiconductor Manufacturing Company Ltd. Memory computation circuit and method
US20200105337A1 (en) * 2018-09-28 2020-04-02 Gregory Chen Memory cells and arrays for compute in memory computations
US10748603B2 (en) 2018-09-28 2020-08-18 Intel Corporation In-memory multiply and accumulate with global charge-sharing
US11061646B2 (en) * 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
US10825510B2 (en) * 2019-02-09 2020-11-03 Purdue Research Foundation Multi-bit dot product engine
US11322195B2 (en) * 2019-11-27 2022-05-03 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory system
US11657238B2 (en) * 2020-01-31 2023-05-23 Qualcomm Incorporated Low-power compute-in-memory bitcell
US11487507B2 (en) * 2020-05-06 2022-11-01 Qualcomm Incorporated Multi-bit compute-in-memory (CIM) arrays employing bit cell circuits optimized for accuracy and power efficiency

Also Published As

Publication number Publication date
US20240028254A1 (en) 2024-01-25
US11714570B2 (en) 2023-08-01
CN113314163A (zh) 2021-08-27
TWI750038B (zh) 2021-12-11
CN113314163B (zh) 2024-04-05
US20210263672A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
TWI750038B (zh) 記憶體裝置、計算裝置及計算方法
CN112951294B (zh) 计算设备以及计算方法
US11893271B2 (en) Computing-in-memory circuit
US11948659B2 (en) Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
US11783875B2 (en) Circuits and methods for in-memory computing
US20210019596A1 (en) Computing in-memory system and method based on skyrmion racetrack memory
US11574173B2 (en) Power efficient near memory analog multiply-and-accumulate (MAC)
TW202147320A (zh) 低功率記憶體內計算位元格
CN113688984B (zh) 一种基于磁性随机存储器的存内二值化神经网络计算电路
TW202203007A (zh) 分時的記憶體內計算位元單元
CN114743580B (zh) 一种电荷共享存内计算装置
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
US20230297235A1 (en) Sram-based cell for in-memory computing and hybrid computations/storage memory architecture
CN114895869B (zh) 一种带符号的多比特存内计算装置
US20230045840A1 (en) Computing device, memory controller, and method for performing an in-memory computation
Bian et al. In-MRAM computing elements with single-step convolution and fully connected for BNN/TNN
CN114974351B (zh) 一种多比特存内计算单元及存内计算装置
CN220155191U (zh) 内存阵列结构
US20230253019A1 (en) Memory device supporting in-memory mac operation between ternary input data and binary weight using charge sharing method and operation method thereof
CN115910152A (zh) 电荷域存内计算电路以及具有正负数运算功能的存算电路