TW202316262A - 記憶體裝置及記憶體內計算方法 - Google Patents
記憶體裝置及記憶體內計算方法 Download PDFInfo
- Publication number
- TW202316262A TW202316262A TW111122147A TW111122147A TW202316262A TW 202316262 A TW202316262 A TW 202316262A TW 111122147 A TW111122147 A TW 111122147A TW 111122147 A TW111122147 A TW 111122147A TW 202316262 A TW202316262 A TW 202316262A
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- configurable
- memory
- memory device
- output
- Prior art date
Links
Images
Classifications
-
- 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/408—Address circuits
- G11C11/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/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
- 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
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4814—Non-logic devices, e.g. operational amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/16—Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
一種裝置包括乘法單元及可配置求和單元。所述乘法單元被配置成接收第N層的資料及權重,其中N是正整數。所述乘法單元被配置成將所述資料乘以所述權重以提供乘法結果。所述可配置求和單元藉由第N層值進行配置以接收第N層數目個輸入並執行第N層數目個加法,且對所述乘法結果進行求和並提供可配置求和單元輸出。
Description
記憶體內計算(compute-in-memory,CIM)系統及方法將資訊儲存於記憶體裝置的例如隨機存取記憶體(random-access memory,RAM)等記憶體中,並在記憶體裝置中執行計算,而非針對各種計算步驟在記憶體裝置與另一裝置之間移動資料。在CIM系統及方法中,自記憶體裝置對所儲存的資料進行存取較自其他儲存裝置進行存取快得多。此外,在記憶體裝置中對資料分析得更快,此能夠在例如卷積神經網路(convolutional neural network,CNN)等商業應用及機器學習應用中達成更快的報告及決策。CNN亦被稱為ConvNets,其為一種專門處理格點化(grid-like topology)的資料(例如包括視覺影像的二進制表示(binary representation)的數位影像資料)的人工神經網路。數位影像資料包括格點化排列的畫素,該些畫素包含表示影像特性(例如顏色及亮度)的值。CNN常常用於在影像識別應用中分析視覺影像。目前人們正在努力提高CIM系統及CNN的效能。
以下揭露內容提供用於實施所提供標的物的不同特徵的諸多不同實施例或實例。以下闡述組件及排列的具體實例以簡化本揭露。當然,該些僅為實例且不旨在進行限制。舉例而言,以下說明中將第一特徵形成於第二特徵之上或第二特徵上可包括其中第一特徵與第二特徵被形成為直接接觸的實施例,且亦可包括其中第一特徵與第二特徵之間可形成有附加特徵進而使得第一特徵與第二特徵可不直接接觸的實施例。另外,本揭露可能在各種實例中重複使用參考編號及/或字母。此種重複使用是出於簡潔及清晰的目的,而不是自身表示所論述的各種實施例及/或配置之間的關係。
此外,為易於說明,本文中可能使用例如「位於…之下(beneath)」、「位於…下方(below)」、「下部的(lower)」、「位於…上方(above)」、「上部的(upper)」及類似用語等空間相對性用語來闡述圖中所示的一個裝置或特徵與另一(其他)裝置或特徵的關係。所述空間相對性用語旨在除圖中所繪示的定向外亦囊括裝置在使用或操作中的不同定向。設備可具有其他定向(旋轉90度或處於其他定向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。
本揭露是有關於一種記憶體,且更具體而言,是有關於一種包括至少一個可程式化或可配置求和單元(programmable or configurable summing unit)的CIM系統及方法。可配置求和單元可在CIM系統的操作期間被程式化或設定成處理不同數目個輸入、使用不同數目個和數單元(例如位於加法器樹中的加法器)以及在一些實施例中提供不同數目的輸出。在一些實施例中,所述CIM系統及方法用於CNN,例如用於加速或改善CNN的效能。
通常,CNN包括輸入層、輸出層及隱藏層,所述隱藏層包括多個卷積層、彙集層(pooling layer)、全連接層(fully connected layer)及標準化層(normalization layer)。其中卷積層可包括執行卷積及/或執行互相關(cross-correlation)。在CNN中,對不同的層(例如對不同的卷積層)而言,輸入資料的大小常常是不同的。此外,對不同的卷積層而言,權重值、過濾器/內核值(filter/kernel)以及其他運算數的數目常常是不同的。因此,對不同的層(例如對不同的卷積層)而言,和數單元的大小(例如位於加法器樹中加法器的數目)、輸入的數目及/或輸出的數目常常是不同的。然而,傳統的CIM電路具有基於記憶體陣列大小的固定配置,使得其無法調整輸入的數目及/或和數單元中加法器的數目。
所揭露實施例包括一種記憶體電路,所述記憶體電路包括位於一或多個CIM邏輯電路上或更高的記憶體陣列,即所述一或多個CIM邏輯電路位於所述記憶體陣列下方。在一些實施例中,耦合至CIM邏輯電路的記憶體陣列是動態隨機存取記憶體(dynamic random-access memory,DRAM)陣列、電阻式隨機存取記憶體(resistive random-access memory,RRAM)陣列、磁阻式隨機存取記憶體(magneto-resistive random-access memory,MRAM)陣列及相變隨機存取記憶體(phase-change random-access memory,PCRAM)陣列中的一或多者。在其他實施例中,記憶體陣列可位於所述一或多個CIM邏輯電路之下或下面。
所揭露實施例更包括一種記憶體電路,所述記憶體電路包括至少一個可程式化的可配置求和單元,使得可在CIM系統的操作期間對所述可配置求和單元進行程式化或設定。在一些實施例中,在CIM系統的操作期間針對不同卷積層中的每一者將所述至少一個可配置求和單元設定成針對不同的卷積層來適應(即處理)不同數目個輸入、使用不同數目個和數單元(例如位於加法器樹中的加法器)及/或提供不同數目個輸出。
在一些實施例中,CIM系統可使用相同的可配置求和單元對CNN的不同層中的每一者進行計算,包括對不同卷積層中的每一者進行計算。在一些實施例中,在CNN的第一層中,單元(例如乘法單元)將輸入資料與權重(例如內核/過濾器權重)進行交互作用。將交互結果輸出至可配置求和單元,所述可配置求和單元對所述交互結果進行求和且在一些實施例中提供對求和結果進行縮放及非線性激勵函數(例如整流非線性單元(rectified non-linear unit,ReLU)函數)中的一或多者。接下來,對來自可配置求和單元的資料執行彙集,以減少資料的大小,且在彙集之後,將輸出反饋回至用於將資料與權重進行交互作用的單元,以對CNN的下一層進行計算。一旦對CNN的所有層的全部計算皆已完成,則輸出結果。本揭露的實施例可在多種不同的技術世代(例如在多種不同的技術節點)中使用。此外,本揭露的實施例亦可適用於除CNN之外的其他應用。
此種架構的優點包括具有可支援可變數目的輸入、加法器及輸出的可配置求和單元。可針對CNN的不同層中的每一者(例如針對不同卷積層中的每一者)對所述可配置求和單元進行程式化或設定,包括對輸入數目、求和或加法器的數目以及輸出數目的設定,進而使得針對自第一層至最後一層的不同層中每一層的計算皆可由一個記憶體裝置中的一個可配置求和單元完成。此外,此種架構能夠為CIM系統提供用於執行CNN功能的更高的記憶容量,例如用於加速或改善CNN的效能。
圖1是示意性地示出根據一些實施例的記憶體裝置20的圖,記憶體裝置20包括位於記憶體裝置電路24上或更高的記憶體陣列22。在一些實施例中,記憶體裝置20是包括記憶體裝置電路24的CIM記憶體裝置,記憶體裝置電路24被配置成向例如CNN應用等應用提供功能。在一些實施例中,記憶體裝置20包括記憶體陣列22,記憶體陣列22是位於作為前端製程(front-end-of-line,FEOL)電路的記憶體裝置電路24上方的後端製程(back-end-of-line,BEOL)記憶體陣列。在其他實施例中,記憶體陣列22可位於與記憶體裝置電路24相同的水準上或位於記憶體裝置電路24之下/下部。
記憶體陣列22為包括多個單電晶體單電容器(one transistor, one capacitor,1T-1C)DRAM記憶體陣列26的DRAM記憶體陣列。在其他實施例中,記憶體陣列22可為不同類型的記憶體陣列,例如RRAM陣列、MRAM陣列及PCRAM陣列。在另一些其他實施例中,記憶體陣列22可為靜態隨機存取記憶體(SRAM)陣列。
記憶體裝置電路24包括字元線驅動器(word line driver,WLDV)28、感測放大器(sense amplifier,SA)30、行選擇(column select,CS)電路32、讀取電路34及CIM電路36。WLDV 28及SA 30位於DRAM記憶體陣列26正下方,且電性耦合至DRAM記憶體陣列26。CS電路32及讀取電路34位於DRAM記憶體陣列26的佔用區域(footprint)之間,且電性耦合至SA 30。讀取電路34中的每一者包括電性耦合至CIM電路36的讀取埠,CIM電路36被配置成自讀取埠接收資料。
CIM電路36包括執行所支援應用(例如CNN應用)的功能的電路。在一些實施例中,CIM電路36包括類比-數位轉換器(analog-to-digital converter,ADC)電路38及至少一個可程式化/可配置求和單元40,所述至少一個可程式化/可配置求和單元40可在記憶體裝置20的操作期間被程式化或設定成處理不同數目個輸入、使用不同數目個和數單元(例如位於加法器樹中的加法器)以及提供不同數目個輸出。在一些實施例中,CIM電路36執行CNN的功能,使得在記憶體裝置的操作期間針對CNN中不同卷積層中的每一者將所述至少一個可配置求和單元設定成針對不同的卷積層來處理不同數目個輸入、使用不同數目個和數單元及/或提供不同數目個輸出。
圖2是示意性地示出根據一些實施例的電性耦合至記憶體裝置電路24的DRAM記憶體陣列26的圖。記憶體裝置電路24包括WLDV 28及SA 30,WLDV 28及SA 30位於記憶體陣列26正下方且電性耦合至記憶體陣列26。此外,記憶體裝置電路24包括CS電路32及讀取電路34,CS電路32及讀取電路34電性耦合至SA 30且鄰近於記憶體陣列26的佔用區域。另外,記憶體裝置電路24包括CIM電路36,CIM電路36包括ADC電路38及所述至少一個可程式化或可配置求和單元40。
在讀取操作期間,SA 30感測來自DRAM記憶體陣列26中的記憶胞的電壓,且讀取電路34自SA 30獲得與自DRAM記憶體陣列26中的記憶胞感測的電壓對應的電壓。WLDV 28及CS電路32提供用於讀取DRAM記憶體陣列26的訊號,且讀取電路34在讀取埠處輸出與由讀取電路34自SA 30讀取的電壓對應的電壓。CIM電路36自讀取埠接收輸出電壓,並執行記憶體裝置20的功能,例如CNN的功能。在寫入操作期間,WLDV 28及CS電路32提供用於對DRAM記憶體陣列26進行寫入的訊號,且SA 30接收被寫入至DRAM記憶體陣列26的資料。在一些實施例中,讀取電路34是SA 30的一部分。在一些實施例中,讀取電路34是電性連接至SA 30的單獨的電路。
讀取電路34經由讀取埠提供與自SA 30及DRAM記憶體陣列26讀取的電壓對應的輸出電壓。在一些實施例中,讀取埠將輸出電壓直接提供至ADC電路38,且ADC電路38將輸出電壓提供至CIM電路36中的其他電路。在一些實施例中,讀取埠將輸出電壓直接提供至CIM電路36中的其他電路,即,除ADC電路38之外的其他電路。
圖3是示意性地示出根據一些實施例的CIM記憶體裝置50的實例的圖,CIM記憶體裝置50包括電性耦合至CIM記憶體裝置50中的記憶體陣列100的CIM電路52。在一些實施例中,CIM記憶體裝置50類似於圖1所示記憶體裝置20。在一些實施例中,CIM電路52被配置成向例如CNN應用等應用提供功能。在一些實施例中,記憶體陣列100是位於作為FEOL電路的CIM電路52上方的BEOL記憶體陣列。
在此實例中,記憶體陣列100包括儲存CIM權重的多個記憶胞。記憶體陣列100及相關聯電路連接於被配置成接收電壓VDD的電源端子與接地端子之間。列選擇電路102及行選擇電路104連接至記憶體陣列100,且被配置成在讀取及寫入操作期間選擇記憶體陣列100的列及行中的記憶胞。
記憶體陣列100包括控制電路120,控制電路120連接至記憶體陣列100的位元線且被配置成因應於選擇訊號SELECT來選擇記憶胞。控制電路120包括連接至記憶體陣列100的控制電路120-1、120-2 … 120-n。
CIM電路52包括乘法單元(或乘法電路)130以及可配置求和單元(或可配置求和電路)140。輸入端子被配置成接收輸入訊號IN,且乘法電路130被配置成將儲存於記憶體陣列100中的所選擇權重乘以輸入訊號IN以產生多個部分乘積(partial product)P。乘法電路130包括乘法電路130-1、130-2 …130-n。將部分乘積P輸出至可配置求和單元140,可配置求和單元140被配置成將部分乘積P相加以產生求和輸出(summation output)。
圖4是示意性地示出根據一些實施例的記憶體陣列100及對應的CIM電路52的圖。記憶體陣列100包括排列成列及行的包括記憶胞200-1、200-2、200-3及200-4在內的多個記憶胞200。記憶體陣列100具有N個列,其中所述N個列中的每一列具有被命名為字元線WL_0至WL_N-1中的一者的對應字元線。所述多個記憶胞200中的每一者耦合至其列中的字元線。此外,陣列100的每一行具有位元線及反相位元線(inverted bit line)。在此實例中,記憶體陣列100具有Y個行,因而位元線被命名為位元線BL[0]至BL[Y-1]以及反相位元線BLB[0]至BLB[Y-1]。所述多個記憶胞200中的每一者耦合至其行中的位元線中的一者或反相位元線中的一者。
SA 122及控制電路120連接至位元線及反相位元線,且多工器(multiplexer,MUX)124連接至SA 122的輸出及控制電路120的輸出。因應於權重選擇訊號W_SEL,MUX 124將自記憶體陣列100擷取的所選擇權重輸出至乘法電路130。
記憶體陣列100中的記憶胞200中的每一者儲存高電壓、低電壓或參考電壓。記憶體陣列100中的記憶胞200是其中電壓被儲存於電容器上的1T-1C記憶胞。在其他實施例中,記憶胞200可為另一種類型的記憶胞。
圖5是示意性地示出根據一些實施例的記憶體陣列100的1T-1C記憶胞200中的記憶胞200-1的圖。記憶胞200-1具有一個電晶體,例如金屬氧化物半導體場效電晶體(metal-oxide-semiconductor field effect transistor,MOSFET)202及一個儲存電容器204。電晶體202作為開關進行操作,所述開關設置於記憶胞200-1的儲存電容器204與位元線BL之間。電晶體202的第一汲極/源極端子連接至位元線中的一者(位元線BL),且電晶體202的第二汲極/源極端子連接至電容器204的第一端子。電容器204的第二端子連接至用於接收參考電壓(例如參考電壓½VDD)的電壓端子。記憶胞200-1將資訊位元以電荷形式儲存於電容器204上。電晶體202的閘極連接至字元線中的一者(字元線WL)以對記憶胞200-1進行存取。在一些實施例中,電壓VDD是1.0伏(V)。在其他實施例中,電容器204的第二端子連接至用於接收參考電壓(例如接地電壓)的電壓端子。
參照圖4,字元線中的每一者連接至所述多個記憶胞200中的多個記憶胞,其中記憶體陣列100的每一列具有對應的字元線。此外,記憶體陣列100的每一行包括位元線及反相位元線。記憶體陣列100的第一行包括位元線BL[0]及反相位元線BLB[0],記憶體陣列100的第二行包括位元線BL[1]及反相位元線BLB[1],等等,直至第Y行包括位元線BL[Y-1]及反相位元線BLB[Y-1]。每一位元線及反相位元線連接至一行中的每隔一個記憶胞200。因此,示出於記憶體陣列100的最左行中的記憶胞200-1連接至位元線BL[0],記憶胞200-2連接至反相位元線BLB[0],記憶胞200-3連接至位元線BL[0],且記憶胞200-4連接至反相位元線BLB[0],以此類推。
記憶體陣列100的每一行具有連接至所述行的位元線及反相位元線的SA 122。SA 122包括位於位元線與反相位元線之間的一對交叉連接的反相器,其中第一反相器具有連接至位元線的輸入及連接至反相位元線的輸出,且第二反相器具有連接至反相位元線的輸入及連接至位元線的輸出。此會形成正回饋回路(positive feedback loop),所述正回饋回路使位元線及反相位元線中的一者穩定於高電壓且使位元線及反相位元線中的另一者穩定於低電壓。
在讀取操作中,基於由列選擇電路102及行選擇電路104接收的位址來選擇字元線及位元線。將記憶體陣列100中的位元線及反相位元線預充電至介於高電壓(例如電壓VDD)與低電壓(例如接地電壓)之間的電壓。在一些實施例中,將位元線及反相位元線預充電至參考電壓½VDD。
此外,驅動所選擇列的字元線以對儲存於所選擇記憶胞200中的資訊進行存取。若記憶體陣列100中的電晶體是NMOS電晶體,則字元線被驅動至高電壓以接通電晶體且將儲存電容器連接至對應的位元線及反相位元線。若記憶體陣列100中的電晶體是PMOS電晶體,則字元線被驅動至低電壓以接通電晶體且將儲存電容器連接至對應的位元線及反相位元線。
將儲存電容器連接至位元線或連接至反相位元線會使所述位元線或反相位元線上的電荷/電壓自預充電電壓位準改變為更高或更低的電壓。由SA 122中的一者對此新電壓與另一電壓進行比較,以決定儲存於記憶胞200中的資訊。
在一些實施例中,為了感測此新電壓,控制電路120中的一者因應於選擇訊號SELECT而選擇SA 122,且來自位元線及反相位元線(或參考記憶胞)的電壓被提供至SA 122。SA 122對該些電壓進行比較,且讀取電路(例如讀取電路34中的一者)向ADC電路(例如ADC電路38)提供輸出訊號。ADC電路38向MUX 124中的一者提供ADC輸出,MUX 124中的所述一者向乘法電路130中的一者提供MUX輸出,在乘法電路130中的所述一者中對輸入訊號IN(例如是圖4所示的輸入訊號IN[M-1:0])與權重訊號進行組合。乘法電路130更向可配置求和單元140提供部分乘積P,可配置求和單元140被配置成對部分乘積P進行相加以產生可配置求和單元輸出。
在寫入操作中,基於由列選擇電路102及行選擇電路104接收的位址來選擇字元線及位元線。為了對記憶胞(例如記憶胞200-1)進行寫入,將字元線WL_0驅動為高以對儲存電容器204進行存取,且藉由將位元線BL[0]驅動為高電壓位準或低電壓位準而將高電壓或低電壓寫入至記憶胞200-1中,此會將儲存電容器204充電或放電至所選擇的電壓位準。
在一些實施例中,圖1所示的記憶體裝置20及圖3所示的CIM記憶體裝置50用於執行CNN功能。如上所述,CNN包括多個層,例如輸入層、隱藏層及輸出層,其中隱藏層可包括多個卷積層、彙集層、全連接層及縮放或標準化層。
圖6是示意性地示出根據一些實施例的CNN 300的至少一部分的圖。CNN 300包括三個卷積302、304及306以及一個彙集函數308。在一些實施例中,CNN 300包括更多的卷積及/或更多的彙集函數。在一些實施例中,CNN 300包括其他函數,例如縮放/標準化函數及/或非線性激勵函數,例如ReLU函數。
第一卷積302接收為224×224×3單位(例如畫素)的輸入影像310。此外,第一卷積302包括各自為3×3×3單位的64個內核/過濾器312,總共為(3×3×3)×64個權重314。和數單元316的輸入是利用64個內核/過濾器312對224×224×3輸入影像310進行的3×3×3卷積計算,此得到為224×224×64單位的輸出影像318。
第二卷積304接收為224×224×64單位的輸出影像318。此外,第二卷積304包括各自為3×3×3單位的64個內核/過濾器320,總共為(3×3×64)×64個權重322。和數單元324的輸入是利用64個內核/過濾器320對224×224×64影像318進行的3×3×64卷積計算,得到為224×224×64單位的輸出影像326。
彙集函數308被配置成接收為224×224×64的輸出影像326,並產生為112×112×64單位的尺寸減小的輸出影像328。
第三卷積306接收為112×112×64單位的尺寸減小的輸出影像328,且第三卷積306包括各自為3×3×3單位的128個內核/過濾器330,總共為(3×3×64)×128個權重332。和數單元334的輸入是利用128個內核/過濾器330對112×112×64影像320進行的3×3×64卷積計算,得到為112×112×128單位的輸出影像336。在一些實施例中,此繼續對更多的卷積及/或更多的彙集函數進行計算。
因此,在CNN中,輸入影像資料的大小、內核/過濾器的大小及數目、權重的數目以及輸出影像資料的大小因卷積層而異。因此,輸入的數目、和數單元的大小及數目(例如位於加法器樹中的加法器的數目)以及輸出的數目對於不同的卷積層而言常常是不同的。
在CNN 300中,和數單元316、324及334的輸入資料的大小自3×3×3單位變化至3×3×64單位,且所得輸出318、326及336的大小自224×224×64單位變化至112×112×128單位。因此,輸入資料的大小、和數單元或加法器的大小及數目以及輸出的大小對於不同的卷積層而言是不同的。
圖7是示意性地示出根據一些實施例的記憶體陣列340及CIM電路342的圖,所述CIM電路可被程式化或配置成決定CNN(例如圖6所示的CNN 300)中不同卷積層的輸出。在一些實施例中,CIM電路342類似於CIM電路36(圖1所示)。在一些實施例中,CIM電路342類似於CIM電路52(圖3所示)。
CIM電路342包括乘法單元344、可配置求和單元346、彙集單元348及緩衡器350。記憶體陣列340電性耦合至乘法單元344,乘法單元344電性耦合至可配置求和單元346及緩衡器350。此外,可配置求和單元346電性耦合至彙集單元348,彙集單元348電性耦合至緩衡器350。
記憶體陣列340儲存用於CNN的每一卷積層的內核/過濾器,例如CNN 300的內核/過濾器312、320及330。因此,記憶體陣列340儲存CNN的權重。記憶體陣列340位於CIM電路342的上或更高,即CIM電路342位於記憶體陣列340的下方。在一些實施例中,記憶體陣列340類似於記憶體陣列22(圖1所示)。在一些實施例中,記憶體陣列340類似於記憶體陣列26(圖1所示)中的一者。在一些實施例中,記憶體陣列340類似於記憶體陣列100(圖3所示)。在一些實施例中,記憶體陣列340是DRAM陣列、RRAM陣列、MRAM陣列及PCRAM陣列中的一或多者。在其他實施例中,記憶體陣列340位於與CIM電路342齊平的水準或位於CIM電路342之下/下部。
緩衡器350被配置成自資料輸入352接收輸入資料,例如初始影像資料,且自彙集單元348接收經處理的輸入資料。乘法單元344自緩衡器350接收輸入資料,且自記憶體陣列340接收權重。乘法單元344將輸入資料與權重進行交互作用,以產生交互結果,交互結果被提供至可配置求和單元346。在一些實施例中,乘法單元344自緩衡器350接收輸入資料,且自記憶體陣列344接收權重,並對輸入資料及權重執行卷積乘法以產生交互結果。在一些實施例中,將輸入資料組織成資料矩陣IN
00、IN
0n、IN
m0至IN
mn,且將權重組織成權重矩陣W
00、W
0n、W
m0至W
mn。在一些實施例中,乘法單元344類似於乘法電路130。
可配置求和單元346包括和數單元354a至354x以及縮放/ReLU單元356a至356x。藉由每一卷積層(例如藉由0與1的圖案)對可配置求和單元346進行程式化,以將可配置求和單元346配置成針對卷積層處理所選擇數目個輸入、提供所選擇數目個求和以及提供所選擇數目個輸出。可配置求和單元346自乘法單元344接收交互結果,並對交互結果與所選擇數目個和數單元354a至354x進行求和,以提供和數結果。在一些實施例中,在CNN 300中,可配置求和單元346藉由每一卷積層302、304及306進行配置,以執行和數單元316、324及334(圖6所示)中的每一者的求和。在一些實施例中,可配置求和單元346類似於可配置求和單元40。在一些實施例中,可配置求和單元346類似於可配置求和單元140。
和數單元354a至354x向縮放/ReLU單元356a至356x提供和數結果。在一些實施例中,縮放/ReLU單元356a至356x接收所述和數結果並對所述和數結果進行縮放,例如對所述和數結果進行標準化,以提供縮放結果。在一些實施例中,縮放/ReLU單元356a至356x接收所述和數結果並對所述和數結果執行ReLU功能。在一些實施例中,縮放/ReLU單元356a至356x對所述縮放結果執行ReLU功能。在其他實施例中,縮放/ReLU單元356a至356x對所述和數結果或縮放結果執行另一非線性激勵功能。
可配置求和單元346向彙集單元348提供可配置求和單元結果,彙集單元348對可配置求和單元結果執行彙集功能以減小輸出資料的大小並提供彙集輸出。在一些實施例中,彙集單元348被配置成執行彙集功能308(圖6所示)。
在彙集之後,由緩衡器350接收彙集輸出,並反饋回至乘法單元344,以將資料與用於CNN(例如CNN 300)的下一卷積層的權重進行交互作用。一旦對CNN的所有層的全部計算皆已完成,則自緩衡器350輸出結果。
CIM電路342的優點包括具有支援多個不同卷積層1-N的可配置求和單元346。可針對CNN的不同卷積層1-N中的每一者(例如針對CNN 300的不同卷積層中的每一者)對可配置求和單元346進行程式化或設定,包括對輸入數目、求和或加法器數目以及輸出數目的設定,進而使得針對自第一層至最後一層的不同卷積層1-N中的每一層的計算皆可由一個可配置求和單元346完成。
圖8是示意性地示出根據一些實施例的CIM電路342的操作流程的圖。CIM電路342包括可配置求和單元346,使得對CNN的不同卷積層的計算可使用同一電路來完成。藉由由卷積層(例如藉由0與1的圖案)提供的值來針對卷積層中的一者對可配置求和單元346進行程式化或設定,以對卷積層的輸入數目、求和數目及輸出數目進行設定。此可針對CNN中卷積層的每一者進行。
在操作400處,由緩衡器350接收例如用於第一卷積層的初始影像資料等輸入資料或作為來自先前卷積層的輸出資料且用於後續卷積層的輸入資料。在操作402處,由乘法單元344接收來自緩衡器350的輸入資料及來自記憶體陣列340的針對卷積層中的一者的權重,所述乘法單元344將輸入資料與權重進行交互作用以獲得交互結果。在一些實施例中,乘法單元344提供輸入資料與權重的卷積乘法,以提供交互結果。
在操作404處,可配置求和單元346接收來自卷積層資料的值,以用於針對當前卷積層來設定輸入數目、求和或加法器數目以及輸出數目。針對當前卷積層對可配置求和單元346進行設定,且可配置求和單元346自乘法單元344接收交互結果。可配置求和單元346執行以下操作中的一或多者:對交互結果進行求和以提供和數結果;對和數結果進行縮放以提供縮放結果;以及對和數結果或縮放結果執行非線性激勵函數(例如ReLU)以提供可配置求和單元結果。
在操作406處,彙集單元348接收可配置求和單元結果,且對可配置求和單元結果執行彙集函數,以減小輸出資料的大小並提供彙集輸出。在彙集之後,若尚未完成CNN的所有層,則將彙集輸出提供至操作400處的緩衡器350及操作402處的乘法單元344,以將彙集輸出資料與CNN的下一卷積層的權重進行交互作用。在彙集之後,若針對CNN的所有層的全部計算皆已完成,則自緩衡器350提供結果。在一些實施例中,在經歷所述方法期間,僅執行所述方法的其中一些步驟。在一些實施例中,在操作406處的彙集是可選擇性的。
圖9是示意性地示出根據一些實施例的決定CNN中卷積層的和數結果的方法的圖。在操作500處,所述方法包括根據第N層自記憶體陣列(例如記憶體陣列340)獲得權重,其中N是正整數。在操作502處,所述方法包括由乘法單元(例如乘法單元344)將每一資料輸入與權重中的對應一者進行交互作用,以提供交互結果。在一些實施例中,乘法單元344提供輸入資料與權重的卷積乘法,以提供交互結果。
在操作504處,所述方法包括對可配置求和單元(例如可配置求和單元346)進行配置,以接收第N層數目個輸入並執行第N層數目個加法。在一些實施例中,藉由由卷積層(例如藉由0與1的圖案)提供的值來針對卷積層中的一者對可配置求和單元346進行程式化,以對用於此卷積層的輸入數目、求和數目及輸出數目中的一或多者進行設定。
在操作506處,所述方法包括由可配置求和單元對交互結果進行求和,以提供和數結果,本文中亦稱為和數輸出。在一些實施例中,所述方法包括以下中的至少一者:對和數輸出進行縮放以提供縮放結果(本文中亦稱為縮放輸出);以及利用非線性激勵函數對和數輸出及縮放輸出中的一者進行過濾以提供可配置求和單元結果/輸出。在一些實施例中,利用非線性激勵函數對和數輸出及縮放輸出中的一者進行過濾包括利用ReLU函數對和數輸出及縮放輸出中的一者進行過濾。
在一些實施例中,所述方法更包括以下操作中的一或多者:對可配置求和單元結果進行彙集以提供彙集結果;將彙集結果反饋回至乘法單元以執行下一層計算;以及在所層皆已完成之後輸出最終結果。
因此,所揭露的實施例提供包括至少一個可程式化或可配置求和單元的CIM系統及方法,所述至少一個可程式化或可配置求和單元可在CIM系統的操作期間被程式化成處理不同數目個輸入、使用不同數目個和數單元(例如位於加法器樹中的加法器)、以及提供不同數目個輸出。在一些實施例中,在CIM系統的操作期間針對CNN中的每一卷積層來設定所述至少一個可配置求和單元。
在一些實施例中,在CNN的第一層中,乘法單元將輸入資料與權重進行交互作用以提供交互結果。可配置求和單元接收所述交互結果並對所述交互結果進行求和,並提供對求和結果進行縮放及非線性激勵函數(例如ReLU函數)中的一或多者。接下來,至少可選地,對來自可配置求和單元的資料執行彙集,以減小資料的大小。在彙集之後,若尚未完成所有層,則將輸出反饋回至乘法單元,以將資料與用於CNN的下一層的權重進行交互作用。一旦對CNN的所有層的全部計算皆已完成,則輸出結果。
此種架構的優點包括具有可配置求和單元,可針對CNN的不同層中的每一者對所述可配置求和單元進行程式化,使得自第一層至最後一層的不同層中每一層的計算皆可由一個記憶體裝置中的一個可配置求和單元來完成。
本揭露的實施例更包括位於CIM電路上或更高的記憶體陣列。此種架構能夠為CIM系統提供用於執行CNN功能的更高的記憶容量,例如用於加速或改善CNN的效能。
根據一些實施例,一種裝置包括乘法單元及可配置求和單元。乘法單元被配置成接收第N層的資料及權重,其中N是正整數。乘法單元被配置成將資料乘以權重以提供乘法結果。可配置求和單元藉由第N層值進行配置以接收第N層數目個輸入並執行第N層數目個加法,且對所述乘法結果進行求和並提供可配置求和單元輸出。
根據另一些實施例,一種記憶體裝置包括包含記憶胞的記憶體陣列以及記憶體內計算電路,所述記憶體內計算電路位於所述記憶體裝置中且電性耦合至所述記憶體陣列。記憶體內計算電路包括乘法單元、可配置求和單元、彙集單元及緩衡器。所述乘法單元自記憶體陣列接收第N層的權重以及接收資料輸入,其中N是正整數。所述乘法單元將每一資料輸入與權重中的對應一者進行交互作用以提供交互結果。所述可配置求和單元基於第N層進行配置以對交互結果進行求和並提供求和結果。所述彙集單元對求和結果進行彙集,且緩衡器將經彙集的求和結果反饋回至乘法單元,以對第N層中的下一層進行計算,其中緩衡器在所有N個層皆已完成之後輸出結果。
根據再一些所揭露的態樣,一種方法包括:根據第N層自記憶體陣列獲得權重,其中N是正整數;藉由乘法單元將每一資料輸入與所述權重中的對應一者進行交互作用,以提供交互結果;對可配置求和單元進行配置以接收第N層數目個輸入並執行第N層數目個加法;以及藉由可配置求和單元對所述交互結果進行求和以提供和數輸出。
本揭露概述了各種實施例,以使熟習此項技術者可更佳地理解本揭露的態樣。熟習此項技術者應理解,他們可容易地使用本揭露作為設計或修改其他製程及結構的基礎來施行與本文中所介紹的實施例相同的目的及/或達成與本文中所介紹的實施例相同的優點。熟習此項技術者亦應認識到,此種等效構造並不背離本揭露的精神及範圍,而且他們可在不背離本揭露的精神及範圍的條件下對其作出各種改變、取代及變更。
20:記憶體裝置
22、100、340:記憶體陣列
24:記憶體裝置電路
26:DRAM記憶體陣列
28:字元線驅動器(WLDV)
30、122:感測放大器(SA)
32、104:行選擇(CS)電路
34:讀取電路
36、52、342:CIM電路
38:類比-數位轉換器(ADC)電路
40:可配置求和單元
50:CIM記憶體裝置
102:列選擇電路
120、120-1、120-2、120-n:控制電路
124:多工器(MUX)
130:乘法電路
130-1、130-2~130-n:乘法電路
140:可配置求和單元
200、200-1、200-2、200-3、200-4:記憶胞
202:電晶體
204:儲存電容器
300:CNN
302、304、306:卷積
308:彙集函數
310:輸入影像
312、320、330:內核/過濾器
314、322、332:權重
316、324、334:和數單元
318、326、328、336:輸出影像
344:乘法單元
346:可配置求和單元
348:彙集單元
350:緩衡器
352:資料輸入
354a、354x:和數單元
356a、356x:縮放/ReLU單元
400、402、404、406、500、502、504、506:操作
½VDD:參考電壓
BL、BL[0]、BL[1]、BL[Y-1]、BL[Y-2]、BLB[0]、BLB[1]、BLB[Y-1]、BLB[Y-2]:位元線
IN、IN[M-1:0]:輸入訊號
IN
00、IN
0n、IN
m0、IN
mn:資料矩陣
SELECT:選擇訊號
P:部分乘積
W
00、W
0n、W
m0、W
mn:權重矩陣
WL、WL_0、WL_1、WL_2、WL_3、WL_N-1、WL_N-2:字元線
W_SEL:權重選擇訊號
VDD:電壓
藉由結合附圖閱讀以下詳細說明,會最佳地理解本揭露的態樣。應注意,根據行業中的標準慣例,各種特徵並非按比例繪製。事實上,為使論述清晰起見,可任意增大或減小各種特徵的尺寸。另外,所述圖式是作為本揭露實施例的實例進行例示,而非旨在進行限制。
圖1是示意性地示出根據一些實施例的記憶體裝置的圖,所述記憶體裝置包括位於記憶體裝置電路上或更高的記憶體陣列。
圖2是示意性地示出根據一些實施例的電性耦合至記憶體裝置電路的DRAM記憶體陣列的圖。
圖3是示意性地示出根據一些實施例的CIM記憶體裝置的實例的圖,所述CIM記憶體裝置包括電性耦合至CIM記憶體裝置中的記憶體陣列的CIM電路。
圖4是示意性地示出根據一些實施例的記憶體陣列及對應的CIM電路的圖。
圖5是示意性地示出根據一些實施例的記憶體陣列的1T-1C記憶胞的其中一者的圖。
圖6是示意性地示出根據一些實施例的CNN的至少一部分的圖。
圖7是示意性地示出根據一些實施例的記憶體陣列及CIM電路的圖,所述CIM電路可被配置成決定CNN中不同卷積層的輸出。
圖8是示意性地示出根據一些實施例的圖7所示CIM電路的操作流程的圖。
圖9是示意性地示出根據一些實施例的決定CNN中卷積層的和數結果的方法的圖。
340:記憶體陣列
342:CIM電路
344:乘法單元
346:可配置求和單元
348:彙集單元
350:緩衡器
352:資料輸入
354a、354x:和數單元
356a、356x:縮放/ReLU單元
IN00、IN0n、INm0、INmn:資料矩陣
W00、W0n、Wm0、Wmn:權重矩陣
Claims (20)
- 一種記憶體裝置,包括: 乘法單元,被配置成接收第N層的資料及權重,且將所述資料乘以所述權重以提供乘法結果,其中N是正整數;以及 可配置求和單元,藉由第N層值進行配置以接收第N層數目個輸入並執行第N層數目個加法,所述可配置求和單元對所述乘法結果進行求和並提供可配置求和單元輸出。
- 如請求項1所述的記憶體裝置,其中所述可配置求和單元包括至少一個和數單元,所述至少一個和數單元被配置成對所述乘法結果進行求和並提供和數輸出。
- 如請求項2所述的記憶體裝置,其中所述可配置求和單元包括縮放單元,所述縮放單元被配置成對所述和數輸出進行縮放並提供縮放輸出。
- 如請求項3所述的記憶體裝置,其中所述可配置求和單元包括非線性激勵函數單元,所述非線性激勵函數單元被配置成對所述和數輸出及所述縮放輸出中的一者進行過濾,以提供所述可配置求和單元輸出。
- 如請求項4所述的記憶體裝置,其中所述非線性激勵函數單元包括整流非線性單元。
- 如請求項1所述的記憶體裝置,包括被配置成對所述可配置求和單元輸出進行彙集並提供彙集結果的彙集單元。
- 如請求項6所述的記憶體裝置,包括緩衡器,所述緩衡器被配置成接收輸入資料及所述彙集結果並將所述輸入資料及所述彙集結果中的一者提供回至所述乘法單元,以對所述第N層中的下一層進行計算,其中所述緩衡器在所有N個層皆已完成之後輸出結果。
- 如請求項1所述的記憶體裝置,包括包含記憶胞的記憶體陣列,所述記憶體陣列被配置成儲存所述權重。
- 一種記憶體裝置,包括: 記憶體陣列,包括記憶胞;以及 記憶體內計算電路,位於所述記憶體裝置中且電性耦合至所述記憶體陣列,所述記憶體內計算電路包括: 乘法單元,自所述記憶體陣列接收第N層的權重以及接收資料輸入,所述乘法單元將所述資料輸入中的每一者與所述權重中的對應一者進行交互作用以提供交互結果,其中N是正整數; 可配置求和單元,基於所述第N層進行配置以對所述交互結果進行求和並提供求和結果; 彙集單元,對所述求和結果進行彙集;以及 緩衡器,將經彙集的所述求和結果反饋回至所述乘法單元,以對所述第N層中的下一層進行計算,其中所述緩衡器在所有N個層皆已完成之後輸出結果。
- 如請求項9所述的記憶體裝置,其中所述可配置求和單元藉由所述第N層進行配置以接收第N層數目個輸入。
- 如請求項9所述的記憶體裝置,其中所述可配置求和單元藉由所述第N層進行配置以執行第N層數目個加法。
- 如請求項9所述的記憶體裝置,其中所述可配置求和單元包括多個加法器。
- 如請求項9所述的記憶體裝置,其中所述可配置求和單元包括位於加法器樹中的多個加法器。
- 如請求項9所述的記憶體裝置,其中所述N個層是卷積神經網路中的卷積層。
- 如請求項14所述的記憶體裝置,其中所述卷積層包括執行互相關。
- 一種記憶體內計算方法,包括: 根據第N層自記憶體陣列獲得權重,其中N是正整數; 藉由乘法單元將每一資料輸入與所述權重中的對應一者進行交互作用,以提供交互結果; 對可配置求和單元進行配置以接收第N層數目個輸入並執行第N層數目個加法;以及 藉由所述可配置求和單元對所述交互結果進行求和,以提供和數輸出。
- 如請求項16所述的記憶體內計算方法,包括以下中的至少一者: 對所述和數輸出進行縮放以提供縮放輸出;以及 利用非線性激勵函數對所述和數輸出及所述縮放輸出中的一者進行過濾,以提供可配置求和單元輸出。
- 如請求項17所述的記憶體內計算方法,其中利用非線性激勵函數對所述和數輸出及所述縮放輸出中的一者進行過濾包括利用整流非線性單元函數對所述和數輸出及所述縮放輸出中的一者進行過濾。
- 如請求項16所述的記憶體內計算方法,包括對所述可配置求和單元輸出進行彙集以提供彙集結果。
- 如請求項19所述的記憶體內計算方法,包括: 將所述彙集結果反饋回至所述乘法單元,以執行下一第N層計算;以及 在所有N個層皆已完成之後輸出結果。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163224942P | 2021-07-23 | 2021-07-23 | |
| US63/224,942 | 2021-07-23 | ||
| US17/686,147 US20230022516A1 (en) | 2021-07-23 | 2022-03-03 | Compute-in-memory systems and methods with configurable input and summing units |
| US17/686,147 | 2022-03-03 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202316262A true TW202316262A (zh) | 2023-04-16 |
| TWI815502B TWI815502B (zh) | 2023-09-11 |
Family
ID=83948651
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111122147A TWI815502B (zh) | 2021-07-23 | 2022-06-15 | 記憶體裝置及記憶體內計算方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20230022516A1 (zh) |
| CN (1) | CN115346573A (zh) |
| TW (1) | TWI815502B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250232163A1 (en) * | 2024-01-16 | 2025-07-17 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory circuits with multi-row storage cells and methods for operating the same |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10891538B2 (en) * | 2016-08-11 | 2021-01-12 | Nvidia Corporation | Sparse convolutional neural network accelerator |
| GB2568086B (en) * | 2017-11-03 | 2020-05-27 | Imagination Tech Ltd | Hardware implementation of convolution layer of deep neutral network |
| US10692570B2 (en) * | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
| US11934480B2 (en) * | 2018-12-18 | 2024-03-19 | Macronix International Co., Ltd. | NAND block architecture for in-memory multiply-and-accumulate operations |
| TWI696129B (zh) * | 2019-03-15 | 2020-06-11 | 華邦電子股份有限公司 | 可執行人工智慧運算的記憶體晶片及其運算方法 |
| US11423979B2 (en) * | 2019-04-29 | 2022-08-23 | Silicon Storage Technology, Inc. | Decoding system and physical layout for analog neural memory in deep learning artificial neural network |
| TWI706337B (zh) * | 2019-05-02 | 2020-10-01 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
| US20210064379A1 (en) * | 2019-08-29 | 2021-03-04 | Arm Limited | Refactoring MAC Computations for Reduced Programming Steps |
| US11562205B2 (en) * | 2019-09-19 | 2023-01-24 | Qualcomm Incorporated | Parallel processing of a convolutional layer of a neural network with compute-in-memory array |
-
2022
- 2022-03-03 US US17/686,147 patent/US20230022516A1/en active Pending
- 2022-06-15 TW TW111122147A patent/TWI815502B/zh active
- 2022-07-11 CN CN202210812563.5A patent/CN115346573A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| CN115346573A (zh) | 2022-11-15 |
| US20230022516A1 (en) | 2023-01-26 |
| TWI815502B (zh) | 2023-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI705444B (zh) | 運算記憶體之架構 | |
| US11507808B2 (en) | Multi-layer vector-matrix multiplication apparatus for a deep neural network | |
| US20180315473A1 (en) | Static random access memory (sram) cell and related sram array for deep neural network and machine learning applications | |
| Luo et al. | Accelerating deep neural network in-situ training with non-volatile and volatile memory based hybrid precision synapses | |
| TWI815312B (zh) | 記憶體裝置、記憶體內計算裝置及方法 | |
| TW202022711A (zh) | 使用記憶體內運算的卷積加速器 | |
| CN113688984A (zh) | 一种基于磁性随机存储器的存内二值化神经网络计算电路 | |
| TW202135076A (zh) | 記憶體裝置、計算裝置及計算方法 | |
| CN115552523A (zh) | 使用存储器内处理的基于计数器的乘法 | |
| CN110569962B (zh) | 一种基于1t1r存储器阵列的卷积计算加速器及其操作方法 | |
| CN114830136A (zh) | 功率高效的近存储器模拟乘法和累加(mac) | |
| TWI771014B (zh) | 記憶體電路及其操作方法 | |
| CN110729011A (zh) | 用于类神经网路的存储器内运算装置 | |
| US20230317124A1 (en) | Memory system and operating method of memory system | |
| CN116483773B (zh) | 一种基于转置dram单元的存内计算电路和装置 | |
| TWI849433B (zh) | 用於實行記憶體內計算的計算裝置、記憶體控制器及方法 | |
| US20220269483A1 (en) | Compute in memory accumulator | |
| US10340001B2 (en) | Single-readout high-density memristor crossbar | |
| TWI815502B (zh) | 記憶體裝置及記憶體內計算方法 | |
| Rajput et al. | An energy-efficient hybrid SRAM-based in-memory computing macro for artificial intelligence edge devices | |
| Motaman et al. | Dynamic computing in memory (DCIM) in resistive crossbar arrays | |
| US20250362875A1 (en) | Compute-in-memory devices and methods of operating the same | |
| Bhattacharjee et al. | Efficient binary basic linear algebra operations on reram crossbar arrays | |
| US20230333814A1 (en) | Compute-in memory (cim) device and computing method thereof | |
| Rayapati et al. | Vpu-cim: A 130nm, 33.98 tops/w rram based compute-in-memory vector co-processor |