[go: up one dir, main page]

TWI849566B - 用於記憶體內運算(cim)的記憶體陣列及其操作方法 - Google Patents

用於記憶體內運算(cim)的記憶體陣列及其操作方法 Download PDF

Info

Publication number
TWI849566B
TWI849566B TW111142460A TW111142460A TWI849566B TW I849566 B TWI849566 B TW I849566B TW 111142460 A TW111142460 A TW 111142460A TW 111142460 A TW111142460 A TW 111142460A TW I849566 B TWI849566 B TW I849566B
Authority
TW
Taiwan
Prior art keywords
bit
weight
cnn
operating voltage
memory array
Prior art date
Application number
TW111142460A
Other languages
English (en)
Other versions
TW202420064A (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 國立陽明交通大學
Priority to TW111142460A priority Critical patent/TWI849566B/zh
Priority to US18/175,895 priority patent/US20240153552A1/en
Publication of TW202420064A publication Critical patent/TW202420064A/zh
Application granted granted Critical
Publication of TWI849566B publication Critical patent/TWI849566B/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
    • 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/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • 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/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4097Bit-line organisation, e.g. bit-line layout, folded bit lines
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Semiconductor Memories (AREA)
  • Static Random-Access Memory (AREA)

Abstract

一種用於記憶體內運算(CIM)的記憶體陣列,其包含一位元格(Bit Cell)陣列、至少一字元線、以及至少一位元線。該位元格(Bit Cell)陣列的每一位元格具有一操作電壓。該至少一字元線電連接到該位元格陣列,其中每一字元線相關於一第一參數。該至少一位元線電連接到該位元格陣列,該位元格沿一第一以及一第二方向的至少其中之一來延伸,其中每一位元線具有一電性參數、該位元格陣列的一第一複數位元格沿該第一方向延伸一第一數量、且該記憶體陣列根據該第一數量以及該操作電壓的至少其中之一來決定該第一參數的一第一權重大小。

Description

用於記憶體內運算(CIM)的記憶體陣列及其操作方法
本揭示涉及記憶體陣列及其操作方法,特別是用於人工智慧的記憶體陣列及其操作方法。
深度學習是AI晶片重要的一環,智慧消費性電子產品在不論美國或是全球的電子市場,都佔有舉足輕重的地位。根據市場調研機構IDC的報告指出,預估AI產業未來會以17.5%的年複合成長率增長,到2024年總營收將突破5千億美元。根據美國消費性電子展CES 2022展示內容,電腦、電動車、健康醫療與元宇宙應用為本次大展的重要主軸,皆是以AI智慧晶片為核心的延伸應用,足見AI技術對於產業的發展性與影響力。
在美國消費性電子展CES 2022展會上,可以觀測到在高速且低延遲的5G網路已逐漸成熟下,加上終端電子裝置聯網的興起,傳統裝置正轉變成連網裝置,其背後所搭載的半導體技術基礎,將進一步加速智慧家庭、智慧穿戴、智慧製造、智慧城市與自駕車等各種領域的興起。此物展會大部分皆是以AI智慧晶片為主軸的延伸應用,足見AI技術對於產業的發展性與影響力。因此綜合而言,發展低耗能AI晶片系統是必然的發展趨勢。
在發展AI晶片系統的深度學習中,需要使用到神經網路運算,而神經網路運算會使用到大量的乘加法運算,以傳統的將程式指令記憶體和資料記憶體合併在一起的電腦設計概念架構,例如Von Neumann架構的運算會面臨大量資料搬移所產生的功耗,而記憶體內運算(Compute-in-Memory,CIM)整合了運算單元與記憶單元,以此架構運算可以省去了大部分的資料存取與搬移,因此記憶體內運算在神經網路的運行上,有高度的潛力可達到低能耗、高能源效率。
而神經網路的精確度對於資料位寬非常敏感,但浮點數運算對於硬體運行的負擔非常重,因此為達到低能耗、高計算量,會採用二值化神經網路或是量化神經網路運行於硬體上,其中量化神經網路又有比二值化神經網路有更高的準確度,因此想達成低能耗、高準確度的神經網路運算單元硬體,可以運行多位元乘法的記憶體內運算架構具有高度潛力,為達成多位元乘法,藉由硬體架構產生資料權重是不可或缺的。
習知技術使用的CIM進行多位元(Multi-bit)乘加法運算時,例如輸入位元IN[1:0]*W(權重),會藉由改變讀取字元線Read Wordline(RWL)的操作電壓,控制SRAM cell上流經的電流為RWL為原本的1倍、2/3倍、1/3倍的電流,將IN[1:0]的數字大小權重以電流的形式呈現在類比電路上,使得Read Bitline(RBL)上的每個SRAM cell所造成的電壓壓降成為原本的1倍、2/3倍、1/3倍,實現Multi-bit乘加法運算。另一作法是將RWL維持在相同的操作電壓,藉由改變RWL脈衝寬度或增加RWL脈衝的次數,使得Read Bitline(RBL)上的每個SRAM cell所造成的電壓壓降成為原本的3倍、2倍、1倍,實現Multi-bit乘加法運算。
在美國專利號11,061,646的文獻1中,使用的技術有兩種,其一是改變RBL的預充電(pre-charge)電壓VDD,並以此產生多重multi-電壓VDD的SRAM array,以改變每個sub-array的SRAM cell所產生的電流去代表權重,免去對RWL電壓位準的調變,簡化電路設計;另一種是改變RWL的脈衝寬度,使啟動RWL後SRAM cell所產生的壓降能透過RWL脈衝寬度控制,以產生權重。
在M.Ali,A.Jaiswal,S.Kodge,A.Agrawal,I.Chakraborty and K.Roy等人的文獻2中,提出了"IMAC:In-Memory Multi-Bit Multiplication and ACcumulation in 6T SRAM Array," in IEEE Transactions on Circuits and Systems I:Regular Papers,vol.67,no.8,pp.2521-2531,Aug.2020,其使用的方式是改變RWL的脈衝寬度以控制RBL上的壓降,來實現資料的權重。
在M.E.Sinangil等人的文獻3中,提出了"A 7-nm Compute-in-Memory SRAM Macro Supporting Multi-Bit Input,Weight and Output and Achieving 351 TOPS/W and 372.4 GOPS," in IEEE Journal of Solid-State Circuits,vol.56,no.1,pp.188-198,Jan.2021,其使用的方式是增加RWL的脈衝數量以控制RBL上的壓降,來實現資料的權重。
在X.Si等人的文獻4中,提出了"A Local Computing Cell and 6T SRAM-Based Computing-in-Memory Macro With 8-b MAC Operation for Edge AI Chips," in IEEE Journal of Solid-State Circuits,vol.56,no.9,pp.2817-2831,Sept.2021、在X.Si等人的文獻5中,提出了"15.5 A 28nm 64Kb 6T SRAM Computing-in-Memory Macro with 8b MAC Operation for AI Edge Chips," 2020 IEEE International Solid-State Circuits Conference-(ISSCC), 2020,pp.246-248、以及在X.Si等人的文獻6中,提出了"24.5 A Twin-8T SRAM Computation-In-Memory Macro for Multiple-Bit CNN-Based Machine Learning," 2019 IEEE International Solid-State Circuits Conference-(ISSCC),2019,pp.396-398。文獻4、5、以及6都是針對RWL脈衝進行電壓位準的調變,改變SRAM cell所產生的電流量,以控制RBL的壓降、以實現資料權重。文獻6還改變SRAM cell的電晶體寬度,提高SRAM cell產生的電流量,以控制RBL的壓降、實現資料權重。
上述做法主要皆是針對RWL脈衝進行類比訊號的處理,由於RWL訊號是較高頻的訊號,進行動態處理的類比電路會具有高硬體複雜度以及高功耗的問題。此外,在習知技術中的這些記憶體陣列及其操作方法都是針對較高頻率的RWL訊號進行處理,在類比電路上的實現難易度較高,所產生的能耗與面積成本皆較高,且必須待類比訊號穩定才能完成運算,因此CIM macro運算時的操作頻率會因此被限制住,同時運算延時也被限制住。
有鑑於先前技術的不足,本揭示利用大尺寸記憶體內運算的面積優勢,將輸入特徵資料的權重在記憶體內運算上以位元格(Bit cell)數量的形式展開,或是對Bit cell使用不同的操作電壓,針對Bit cell處理使其產生具有權重的電流,啟動一次RWL即可達成多位元的乘加法,相比已習知技術對RWL訊號進行處理,可以大幅減少運算時間。
本揭示的實施例提出一種用於記憶體內運算(CIM)的記憶體陣列,其包含一位元格(Bit Cell)陣列、至少一字元線、至少一位元線、以 及一讀取電路。該位元格(Bit Cell)陣列的每一位元格具有一儲存位元以及一操作電壓,且各該儲存位元相關於一捲積神經網路(CNN)的一權重位元。該至少一字元線電連接到該位元格陣列,其中每一字元線相關於該CNN的一輸入位元。該至少一位元線電連接到該位元格陣列,該位元格沿一位元線方向以及一字元線方向的至少其中之一來排列,其中每一位元線具有一電性參數,該位元格陣列的複數位元格根據一第一排列數量沿該位元線方向來排列,該記憶體陣列根據該第一排列數量和該操作電壓的至少其中之一來擴展該CNN的該輸入位元為複數輸入位元,且該第一排列數量和該操作電壓的至少其中之一是相關於該複數輸入位元的一第一權重。該讀取電路電連接到該複數位元線,並感測各該位元線的該電性參數,以獲得該CNN的該複數輸入位元與相對應的權重位元的一乘加結果。
本揭示的實施例提出一種用於一記憶體陣列的操作方法,其中該記憶體陣列包含一位元格(Bit Cell)陣列,該位元格陣列的每一位元格具有一儲存位元以及一操作電壓,且各該儲存位元相關於一捲積神經網路(CNN)的一權重位元,該方法包含下列步驟:提供電連接到該位元格陣列的至少一字元線及至少一位元線,其中每一字元線相關於該CNN的一輸入位元,該位元格沿一位元線方向以及一字元線方向的至少其中之一來排列,每一位元線具有一電性參數,且該位元格陣列的複數位元格根據一第一排列數量沿該位元線方向來排列;根據該第一排列數量和該操作電壓的至少其中之一來擴展該CNN的該輸入位元為複數輸入位元;使該第一排列數量和該操作電壓的至少其中之一相關於該複數輸入位元的一第一權重;以及感測各該位元線的該電性參數,以獲得該CNN的該複數輸入位元與相對應 的權重位元的一乘加結果。
本揭示的實施例提出另一種用於記憶體內運算(CIM)的記憶體陣列,其包含一位元格(Bit Cell)陣列、至少一字元線、以及至少一位元線。該位元格(Bit Cell)陣列的每一位元格具有一操作電壓。該至少一字元線電連接到該位元格陣列,其中每一字元線相關於一第一參數。該至少一位元線電連接到該位元格陣列,該位元格沿一第一以及一第二方向的至少其中之一來延伸,其中每一位元線具有一電性參數、該位元格陣列的一第一複數位元格沿該第一方向延伸一第一數量、且該記憶體陣列根據該第一數量以及該操作電壓的至少其中之一來決定該第一參數的一第一權重大小。
本揭示的實施例提出另一種用於記憶體內運算(CIM)的記憶體陣列,其包含一位元格(Bit Cell)陣列、至少一字元線、以及至少一位元線。該位元格(Bit Cell)陣列的每一位元格具有一操作電壓。該至少一字元線電連接到該位元格陣列,其中每一字元線相關於一第一參數。該至少一位元線電連接到該位元格陣列,該位元格沿一方向來延伸,其中每一位元線具有一電性參數、每一位元格儲存一第二參數、該位元格陣列的一第一複數位元格沿該方向延伸一第一數量、且該記憶體陣列根據該方向來決定所擴展者為該第一參數以及該第二參數的至少其中之一。
本揭示可不需要對較高頻率的RWL訊號進行處理,使Bit cell產生帶有權重的電流,導致在類比電路上的實現難度較高且有較高訊號延遲的問題。本揭示所提的記憶體陣列及其操作方法可以使RWL的操作更為簡單且快速,降低電路複雜度並提高運算速度。
本揭示進一步的說明與優點可參閱後續的圖式與實施例,以 更清楚地理解本發明的技術方案。
10:CNN運算的多位元乘加法
IF:輸入特徵圖
Cin:輸入通道
20:記憶體內運算
IFE:輸入特徵元素
OF:輸入特徵圖
Cout:輸出通道
BC:位元格
BL,RBL,RBL[3],RBL[2],RBL[1],RBL[0]:位元線
30,50,60,70,80,90:用於CIM的記憶體陣列
301,501,601,701,801,901:位元格陣列
302,402,502,602,702,802,902:至少一字元線
tRWL:期間
CIM1,CIM2,...,CIMN:多位元格
VDD,VDD1~VDDN,VDD8I,VDD4I,VDD2I,VDD1I:操作電壓
DIR1:第一方向
505:讀取驅動器
WL,RWL,RWL[3],RWL[2],RWL[1],RWL[0]:字元線
32,52,62,72,92:SRAM-based記憶體內運算架構
304:讀取電路
303,403,503,603,703,803,903:至少一位元線
305:ADC
44,504,604,704,904:電壓調節電路
REG8I,REG4I,REG2I,REG1I:電壓調節電路
DIR2:第二方向
圖1為本揭示較佳實施例卷積神經網路運算的多位元乘加法的示意圖。
圖2為本揭示較佳實施例記憶體內運算的示意圖。
圖3為本揭示較佳實施例用於CIM的記憶體陣列的示意圖。
圖4為本揭示較佳實施例用於CIM的記憶體陣列的實施多位元乘加法的示意圖
圖5為本揭示較佳實施例使用電壓調節電路提供不同操作電壓至多位元格的示意圖。
圖6為本揭示較佳實施例用於CIM的記憶體陣列提供位元格不同操作電壓來實施多輸入位元的乘加法的示意圖。
圖7為本揭示另一較佳實施例用於CIM的記憶體陣列提供位元格不同操作電壓來實施多輸入位元的乘加法的示意圖。
圖8為本揭示較佳實施例用於CIM的記憶體陣列提供位元格不同操作電壓來實施多權重位元的乘加法的示意圖。。
圖9為本揭示較佳實施例用於一記憶體陣列的操作方法的示意圖。
圖10為本揭示另一較佳實施例用於CIM的記憶體陣列的示意圖。
圖11為本揭示另一較佳實施例用於CIM的記憶體陣列的示意圖。
圖12為本揭示另一較佳實施例用於CIM的記憶體陣列的示意圖。
請參酌本揭示的附圖來閱讀下面的詳細說明,其中本揭示的附圖是以舉例說明的方式,來介紹本揭示各種不同的實施例,並供瞭解如何實現本揭示。本揭示實施例提供了充足的內容,以供本領域的技術人員來實施本揭示所揭示的實施例,或實施依本揭示所揭示的內容所衍生的實施例。須注意的是,該些實施例彼此間並不互斥,且部分實施例可與其他一個或多個實施例作適當結合,以形成新的實施例,亦即本揭示的實施並不局限於以下所揭示的實施例。此外為了簡潔明瞭舉例說明,在各實施例中並不會過度揭示相關的細節,即使揭示了具體的細節也僅舉例說明以使讀者明瞭,在各實施例中的相關具體細節也並非用來限制本案的揭示。
請參閱圖1,其為本揭示較佳實施例卷積神經網路(CNN)運算的多位元(Multi-bit)乘加法10的示意圖。卷積神經網路運算範例如圖1,卷積神經網路的運算方式包含了數次的點對點乘加法,多位元乘加法的公式如下:
Figure 111142460-A0101-12-0008-44
公式1為神經網路運算多位元乘加法,其中bA為輸入特徵圖(Input feature map)的位寬、bW為Weight的位寬,Input與Weight兩數每個位元都會有不同的權重,因此將公式1進一步拆解成:
Figure 111142460-A0101-12-0008-45
Figure 111142460-A0101-12-0008-46
,為了要可以在記憶體內運算上實現高精確度的神經網路演算法,就要針對硬體架構上進行處理,使得IN i,j [b]或W i,j [b]可以帶有權重, 讓記憶體內運算可以進行多位數乘法。
公式1中的部分和(Partial Sum)是指針對CNN中的輸入特徵圖的單一元素IN i,j [b A -1:0]乘以權重的單一元素W i,j [b W -1:0]所得到的結果,例如當i=0且j=0時,其中輸入特徵圖的單一元素可擴展為多個位元的寬度,例如[b A -1:0],權重的單一元素亦可擴展為多個位元的寬度,例如[b W -1:0]。也就是說部分和代表單一位元格的輸入與權重的相乘結果。公式1中的K代表核大小、Cin代表輸入通道、Cout代表輸出通道、以及OF代表部分的輸出特徵圖,OF包含具有多位元輸入乘以多位元權重的單一元素,即,具有多輸出通道Cout的OF。多輸入通道Cin可視為擴展成多為元後的結果,例如當位元為2進制時,擴展為4個位元時,則Cin=2^4=16;位元為3進制時,擴展為4個位元時,則Cin=3^4=81,在拆解的公式1中的2 b 則為3 b ,以此類推。公式1中的部分和(Partial Sum)從j=0加總到(K^2)-1,且從i=0加總到Cin-1等於多個位元格的輸入與權重的乘加結果,此乘加結果僅為部分輸出特徵的結果。
請參閱圖2,其為本揭示較佳實施例記憶體內運算20的示意圖。請合併參閱圖2與公式1,以SRAM based CIM為例,在記憶體內運算乘加法的實現方式如圖2,SRAM cell所儲存的值和Read Wordline(RWL)的電壓準位變化在Read Bitline(RBL)上形成電流或電壓差,此電流或電壓差可視為一位元乘法的結果。而在RBL上會有數個SRAM cell,同時開啟RWL會有數個一位元乘法的結果以電流或電壓差的形式在RBL上累加起來,最後RBL上產生的電流或電壓差即可視為累加結果。以乘加法的公式來看,RWL的電壓準位會對應到公式1中的輸入IN,SRAM cell存的值會對應到公式1中的 權重W,一個SRAM cell所產生的電流或電壓差對應到公式中的Partial Sum,一整條RBL上所產生的電流或電壓差對應到公式1中的OUT。
為了在記憶體內運算實現多位元乘加法,本發明提出更改架構將擴展後的輸入IN的不同輸入位元的權重,或擴展後的權重W的不同權重位元的權重,使用硬體架構實現,使一個SRAM cell或多個SRAM cell所產生的電流或電壓差直接產生Partial Sum。其原理如下所述:
Figure 111142460-A0101-12-0010-1
Figure 111142460-A0101-12-0010-2
Figure 111142460-A0101-12-0010-3
公式2為多位元乘加法的Partial Sum公式、公式3為MOSFET電流公式、以及公式4為RBL的電壓以及電流的公式。
請參閱圖3,其為本揭示較佳實施例用於記憶體內運算的記憶體陣列30的示意圖,例如為SRAM-based記憶體內運算架構32。記憶體陣列30包含一位元格(Bit Cell)陣列301、複數字元線302、複數位元線303、以及一讀取電路304。讀取電路304例如可為類比訊號轉數位訊號的轉換電路(ADC)305。圖3中的每一個位元格BC為記憶體胞元且電連接到電晶體T2,電晶體T1電連接到字元線RWL與位元線RBL,在讀取時,字元線RWL被施加一tRWL期間的脈波,作為CNN的輸入1,讀取位元格BC的儲存位元之數值1做為CNN的權重1,而位元線RBL上的電壓差或電流則表示為單一輸入位元與單一權重位元的乘積。
請同時參閱圖3以及公式2~4,記憶體內運算架構推算,能改變以下參數,使IN或W具有權重,而改變△V RBL 的大小:
(1)位元格數量多寡
(2)位元格的操作電壓VDD大小
(3)Read Wordline(RWL)脈衝的電壓大小
(4)RWL脈衝的時間長短
(5)RWL脈衝的次數
(6)Read Bitline(RBL)的預充電(Pre-charge)的電壓大小
(7)RBL上的電容器的電容值大小
(8)位元格的臨界電壓VT的大小
(9)位元格中的電晶體寬度
以上(1)~(9)參數任意組合改變都可以改變△V RBL 的大小,而本揭示以(1)、(2)、(7)的參數組合來舉例說明,需注意的是,其他的參數(3)~(6)以及(8)~(9)亦可以與(1)、(2)、(7)的參數互相組合來達成不同的實施例。
請參閱圖4,其為本揭示較佳實施例用於CIM的記憶體陣列40的實施多位元乘加法的示意圖。用於CIM的記憶體陣列40例如為SRAM-based記憶體內運算架構42,請合併參考圖1與圖4,調整SRAM cell數量多寡可使電路能表示出多位元IN的輸入,其主要包含輸入特徵圖的展開、權重的展開、以及啟動RWL進行運算。輸入特徵元素IFE00在輸入特徵圖IF中的座標(0,0)的輸入位元擴展,可使用RWL的數量表示。IN[b]依照各位元所代表的權重使用相對應的RWL數量,以4 bits IN為例,IN[3]使用8條RWL、IN[2]使用4條RWL、IN[1]使用2條RWL、IN[0]使用1條RWL。
W[b]的權重大小可使用RBL與讀取電路304上的電容器的電容值大小8C0、4C0、2C0、以及1C0來實現,但為了IN[3:0]所對應到的RWL 位置,必須使用到相對應數量的SRAM Cell,以4 bits IN為例,每個W[b]都要使用42-1=15個SRAM cell去表示。
在另一實施例中,W[b]的權重大小可使用位元格BC在字元線RWL方向上的數量來實現,或是由一電壓調節電路對不同的RBL上的位元格BC提供不同的操作電壓VDD來實現,此兩種方式都可免除讀取電路304上的電容器。
啟動RWL進行運算係以此IN與W的對應相乘的方式,開啟RWL進行記憶體內運算乘加法,每一條RBL上可以得到W[b]×(8×IN[3]+4×IN[2]+2×IN[1]+1×IN[0]),最後由讀取電路304(例如類比訊號轉數位訊號的轉換電路305)進行電荷分享(charge sharing)即可得到IN[3:0]×W[3:0]的乘加法結果。
在另一種擴展輸入位元的方式與架構中,調整SRAM cell架構42中的位元格BC的操作電壓VDD大小也可以使電路表示出多位元IN的輸入。請參閱圖5,其為本揭示較佳實施例使用電壓調節電路44提供不同操作電壓VDD1,VDD2,...,VDDN至CIM1,CIM2,...,CIMN多位元格的示意圖。電壓調節電路44除了可以調節記憶體內運算單元CIM1,CIM2,...,CIMN的操作電壓VDD1,VDD2,...,VDDN之外,也能克服大規模運算單元受製程與操作溫度變異之影響。
請參閱圖6,其為本揭示較佳實施例用於CIM的記憶體陣列60提供位元格不同操作電壓來實施多輸入位元的乘加法的示意圖。記憶體陣列60例如為SRAM-based記憶體內運算架構62,其包含一行位元格(Bit Cell)601、複數字元線602、一位元線603、以及可提供該行位元格601不同 操作電壓VDD8I、VDD4I、VDD2I、VDD1I的電壓調節電路604。電壓調節電路604包含子調節電路REG8I、REG4I、REG2I、以及REG1I。圖4實施例中使用位元格數量來實現將一個輸入位元擴展成4個輸入位元IN[3:0],可改成圖6實施例中提供該行位元格601不同操作電壓VDD8I、VDD4I、VDD2I、VDD1I來實現輸入位元的擴展。圖4中的第4個位元IN[3]在圖6中僅用一個字元線RWL3與位元格BC,但提供8個單位的電性參數至位元格BC,以表示第4個位元IN[4]的權重大小。電性參數包含一電流、一電荷、以及一電壓的至少其中之一。圖4中的第3個位元IN[2]在圖6中僅用一個字元線RWL2與位元格BC,但提供4個單位的電性參數至位元格BC,以表示第3個位元IN[2]的權重大小。圖4中的第2個位元IN[1]在圖6中僅用一個字元線RWL1與位元格BC,但提供2個單位的電性參數至位元格BC,以表示第2個位元IN[1]的權重大小。圖4中的第1個位元IN[0]在圖6中僅用一個字元線RWL0與位元格BC,但提供1個單位的電性參數至位元格BC,以表示第1個位元IN[0]的權重大小。
圖6的實施例僅對CNN的輸入位元擴展而使每個位元有不同的權重大小,而CNN的權重位元尚未擴展,因此公式2可簡化為:
Figure 111142460-A0101-12-0013-4
請參閱圖7,其為本揭示另一較佳實施例用於CIM的記憶體陣列70提供位元格不同操作電壓來實施多輸入位元的乘加法的示意圖。記憶體陣列70例如為SRAM-based記憶體內運算架構72,其包含位元格(Bit Cell)601陣列701、複數字元線702、複數位元線703、以及可提供該位元格陣列701不同操作電壓V3、V2、V1、V0的電壓調節電路704。實施的步驟流 程包含:寫入權重、降低SRAM操作電壓、以及啟動RWL進行運算。
寫入CNN的權重W時,依照圖7的方式將權重資料對應4 bits IN在RBL方向展開成各4 bits,並且在寫入CNN的權重W時,用電壓調節電路704將SRAM操作電壓維持在正常操作電壓,使權重資料能夠順利寫入。
CNN的權重W寫入後,利用電壓調節電路704,使四條RWL[3]、RWL[2]、RWL[1]、RWL[0]上的SRAM cell使用四種不同的操作電壓V3、V2、V1、V0,使SRAM cell有四個不同權重的輸出電流I3、I2、I1、I0,以分別作為輸入位元IN[3]、IN[2]、IN[1]、IN[0]的權重,其中電壓或電流愈大,則權重愈大,反之亦然。
然後以此IN與W的對應方式,開啟RWL進行記憶體內運算乘加法,每一條RBL上可以得到W[b]×(I 3×IN[3]+I 2×IN[2]+I 1×IN[1]+I 0×IN[0]),其中透過電壓調節電路704使得SRAM cell產生的電流I 3=2×I 2=4×I 1=8×I 0,最後由類比訊號轉數位訊號的轉換電路(ADC)305進行電荷分享(charge sharing)即可得到IN[3:0]×W[3:0]的乘加法結果。W[b]的權重大小可使用RBL與讀取電路304上的電容器C3,C2,C1,C0的電容值大小8C0、4C0、2C0、以及1C0來實現。
請參閱圖8,其為本揭示較佳實施例用於CIM的記憶體陣列80提供位元格BC不同操作電壓VDD8I、VDD4I、VDD2I、VDD1I來實施多權重位元的乘加法的示意圖。圖8中的輸入位元IN僅有1個位元,由一個字元線來表示,在本揭示任一實施例中,在讀取時施加於字元線的電壓皆為靜態的,非以脈波的數量或脈波寬度來表示CNN輸入的權重,因此可大幅節省功耗,且可降低供電至字元線的電路之複雜度。從圖8可知,權重位元 W[3]、W[2]、W[1]、W[0]分別以施加在位元格BC上的不同操作電壓VDD8I、VDD4I、VDD2I、VDD1I來表示。
圖8的實施例僅對CNN的輸入位元擴展而使每個位元有不同的權重大小,而CNN的權重位元尚未擴展,因此公式1可簡化為:
Figure 111142460-A0101-12-0015-5
從上述多個實施例的說明,本揭示用於記憶體內運算(CIM)的記憶體陣列30,40,60,70,80可歸納如下:記憶體陣列30,40,60,70,80包含一位元格(Bit Cell)陣列301,401,601,701,801、至少一字元線302,402,602,702,802、至少一位元線303,403,603,703,803、以及一讀取電路304。其中其每一位元格BC具有一儲存位元以及一操作電壓VDD1,VDD2,...,VDDN,且各該儲存位元相關於一捲積神經網路(CNN)的一權重位元W。該至少一字元線302,402,602,702,802電連接到該位元格陣列301,401,601,701,801,其中每一字元線302,402,602,702,802相關於該CNN的一輸入位元IN。該至少一位元線303,403,603,703,803電連接到該位元格陣列301,401,601,701,801,該位元格BC沿一位元線RBL方向以及一字元線RWL方向的至少其中之一來排列,其中每一位元線RBL具有一電性參數,該位元格陣列301,401,601,701,801的複數位元格根據一第一排列數量bA沿該位元線RBL方向來排列,該記憶體陣列30,40,60,70,80根據該第一排列數量bA和該操作電壓VDD1,VDD2,...,VDDN的至少其中之一來擴展該CNN的該輸入位元IN[0]為複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0]且該第一排列數量bA和該操作電壓VDD1,VDD2,...,VDDN的至少其中之一是相關於該複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0]的一第一權重
Figure 111142460-A0101-12-0015-47
,
Figure 111142460-A0101-12-0016-48
,...,21,20。該讀取電路304電連接到該複數位元線RBL,並感測各該位元線RBL的該電性參數,以獲得該CNN的該複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0]與相對應的權重位元W的一乘加結果Partial Sum。
在本揭示實施例的任一實施例中,該電性參數包含一電流、一電荷、以及一電壓的至少其中之一。該記憶體陣列30,40,60,70,80還包含至少一電壓調節電路44以提供該操作電壓VDD1,VDD2,...,VDDN。該操作電壓VDD的大小正相關於該複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0]的該第一權重
Figure 111142460-A0101-12-0016-49
,
Figure 111142460-A0101-12-0016-50
,...,21,20。該第一排列數量bA正相關於該第一權重
Figure 111142460-A0101-12-0016-51
,
Figure 111142460-A0101-12-0016-52
,...,21,20。該讀取電路305包含複數電容器C3,C2,C1,C0,該複數電容器C3,C2,C1,C0分別一對一對應到該複數位元線RBL[3],RBL[2],RBL[1],RBL[0]以獲得該乘加結果Partial Sum。該記憶體陣列30,40,60,70,80還包含一類比數位轉換電路(ADC)305作為該讀取電路304,並藉由使用該類比數位轉換電路305來將該乘加結果Partical Sum轉換為一數位資料。
在本揭示實施例的任一實施例中,該複數位元格BC根據一第二排列數量bW沿著該字元線RWL方向而被排列。該記憶體陣列30,40,60,70,80根據該第二排列數量bW和該操作電壓VDD1,VDD2,...,VDDN的至少其中之一來擴展該CNN的一權重位元W[b]為複數權重位元W[bW-1],W[bW-2],...,W[1],W[0],且該第二排列數量bW和該操作電壓VDD1,VDD2,...,VDDN的至少其中之一是相關於該複數權重位元W[bW-1],W[bW-2],...,W[1],W[0]的一第二權重
Figure 111142460-A0101-12-0016-54
,
Figure 111142460-A0101-12-0016-55
,...,21,20
請參閱圖9,其為本揭示較佳實施例用於一記憶體陣列的操 作方法S10的示意圖,其中該記憶體陣列包含一位元格BC陣列301,401,601,701,801,該位元格陣列301,401,601,701,801的每一位元格BC具有一儲存位元以及一操作電壓VDD,且各該儲存位元相關於一捲積神經網路(CNN)的一權重位元W,該方法S10包含下列步驟:步驟S101,提供電連接到該位元格陣列301,401,601,701,801的至少一字元線RBL及至少一位元線RWL,其中每一字元線RWL相關於該CNN的一輸入位元IN,該位元格BC沿一位元線RBL方向以及一字元線方向RWL的至少其中之一來排列,每一位元線RBL具有一電性參數,且該位元格陣列301,401,601,701,801的複數位元格根據一第一排列數量bA沿該位元線RBL方向來排列;步驟S102,根據該第一排列數量bA和該操作電壓VDD的至少其中之一來擴展該CNN的該輸入位元IN[b]為複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0];步驟S103,使該第一排列數量bA和該操作電壓VDD的至少其中之一相關於該複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0]的一第一權重
Figure 111142460-A0101-12-0017-56
,
Figure 111142460-A0101-12-0017-57
,...,21,20;以及步驟S104,感測各該位元線RBL的該電性參數,以獲得該CNN的該複數輸入位元IN[bA-1],IN[bA-2],...,IN[1],IN[0]與相對應的權重位元W的一乘加結果Partial Sum。
在本揭示實施例的任一實施例中,其中該複數位元格BC根據一第二排列數量bW沿著該字元線RWL方向而被排列。該操作方法S10還包含下列步驟:根據該第二排列數量bW和該操作電壓VDD1,VDD2,...,VDDN的至少其中之一來擴展該CNN的一權重位元W[b]為複數權重位元W[bW-1],W[bW-2],...,W[1],W[0];以及使該第二排列數量bW和該操作電壓VDD1,VDD2,...,VDDN的至少其中之一相關於該複數權重位元W[bW-1], W[bW-2],...,W[1],W[0]的一第二權重
Figure 111142460-A0101-12-0018-58
,
Figure 111142460-A0101-12-0018-59
,...,21,20
請參閱圖10,其為本揭示另一較佳實施例用於記憶體內運算(CIM)的記憶體陣列的示意圖。圖10中的實施例是以位元格數量bA與不同操作電壓V1,V2的混和方式來擴展輸入位元IN。記憶體陣列90例如為SRAM-based記憶體內運算架構92,其包含位元格(Bit Cell)601陣列901、複數字元線902、複數位元線903、以及可提供該位元格陣列901不同操作電壓V1、V0的電壓調節電路904。實施的步驟流程包含:展開輸入特徵圖IF、展開權重W、寫入權重W、降低SRAM操作電壓、以及啟動RWL進行運算。
關於展開輸入特徵圖,在圖10的實施例中,SRAM cell有兩種操作電壓V1,V0,SRAM cell能產生一倍或兩倍的權重電流,因此IN[b]相較於(1)只使用調整數量的做法,超過兩倍的權重的IN[b]所對應到的cell數量可以被縮減,以4 bits IN為例,IN[3]使用4條RWL、IN[2]使用2條RWL、IN[1]使用1條RWL、IN[0]使用1條RWL,其中IN[3:1]對應到兩倍權重電流的Cell;IN[0]對應到一倍權重電流的Cell。
關於展開權重W,為了IN[3:0]所對應到的RWL位置,必須使用到相對應數量的SRAM Cell,以4 bits IN為例,每個W[b]都要使用8個SRAM cell去表示。
關於寫入權重W,寫入權重時,依照圖10的方式將權重資料對應4 bits IN在RBL方向展開成各4 bits,並且在寫入權重時,用電壓調節器904將SRAM操作電壓維持在正常操作電壓,使權重資料能夠順利寫入。
關於降低SRAM操作電壓,權重W寫入後,利用電壓調節器904使四條RWL上的SRAM cell使用兩種不同的操作電壓V1,V0,使SRAM cell有兩個不同權重的輸出電流。
關於啟動RWL進行運算,以此IN與W的對應方式,開啟RWL進行記憶體內運算乘加法,每一條RBL上可以得到W[b]×(I 1×4×IN[3]+I 1×2×IN[2]+I 1×IN[1]+I 0×IN[0]),其中透過電壓調節電路904使得SRAM cell產生的電流I 1=2×I 0,最後由類比訊號轉數位訊號的轉換電路(ADC)305進行電荷分享(charge sharing)即可得到IN[3:0]×W[3:0]的乘加法結果。W[b]的權重大小可使用RBL與讀取電路304上的電容器C3,C2,C1,C0的電容值大小8C0、4C0、2C0、以及1C0來實現。
本揭示的用於記憶體內運算(CIM)的記憶體陣列及其操作方法亦可應用於多個參數的乘加和,不限於CNN的單一元素的輸入特徵與權重的乘加和。請參閱圖11,其為本揭示另一較佳實施例用於記憶體內運算(CIM)的記憶體陣列50的示意圖。用於記憶體內運算(CIM)的記憶體陣列50包含一位元格(Bit Cell)陣列501、至少一字元線502、至少一位元線503,其中每一位元格BC具有一操作電壓VDD1,VDD2,...,VDDN。該至少一字元線502電連接到該位元格陣列501,其中每一字元線RWL相關於一第一參數IN。該至少一位元線503電連接到該位元格陣列501,該位元格BC沿一第一DIR1及第二方向DIR2的至少其中之一來延伸,其中每一位元線具有一電性參數、該位元格陣列501的一第一複數位元格BC沿該第一方向DIR1延伸一第一數量bA、且該記憶體陣列50根據該第一數量bA以及該操作電壓VDD1,VDD2,...,VDDN的至少其中之一來決定該第一參數IN的一第一權重大小
Figure 111142460-A0101-12-0019-60
,
Figure 111142460-A0101-12-0019-61
,...,21,20
在本揭示實施例的任一實施例中,可以套用於其他種類的記 憶體胞元,如ReRAM或MRAM等。
在本揭示實施例的任一實施例中,在不改變Bit cell本身構造情況之下,針對位元格BC進行靜態上的處理,實施例以I.改變位元格BC的數量、II.改變位元格BC的操作電壓、以及III.混合I以及II為實施例,其他使位元格BC能夠產生具有權重的電流去表示多位元的輸入訊號的作法,皆屬本揭示的實施例範圍內。
上一段I、II、III的實施方式如下:
I.本揭示利用位元格BC的數量表示權重,只需啟動一次讀取驅動器505(例如RWL)即可完成乘加法運算,且不用對RWL訊號做類比處理,以往習知技術則須啟動多次RWL、改變RWL脈衝寬度或是改變RWL訊號大小。相較而言,本技術可以減少硬體複雜度,並且減少運算時延。
II.本揭示利用電壓調節器504產生出不同操作電壓VDD1~VDDN,並藉由改變位元格BC的操作電壓來表示權重,並且也只需啟動一次讀取驅動器505(例如RWL)即可完成乘加法運算,不用對位元格BC本身構造進行改動,也不需要對RWL訊號進行類比處理,以往習知技術會針對位元格BC進行改動或是對字元線RWL進行動態類比處理以達成權重表示,會提高硬體複雜度且會提升電路功耗。相較而言,本技術透過靜態地改變操作電壓,可以有較低的硬體複雜度,且同時透過降低操作電壓進而降低CIM的功耗。
III.混和以上兩種做法,同時利用位元格BC數量和改變位元格BC的操作電壓來表示權重。
在本揭示實施例的任一實施例中,該第一參數IN相關於一捲積神經網路(CNN)的一輸入位元IN[b]。每一位元格BC具有一儲存位元,且各該儲存位元相關於一第二參數W,該第二參數W相關於該CNN的一權重位元W[b]。該權重位元W[b]相關於該CNN的單一權重元素Wi,j(例如在圖1中的W00)。該輸入位元IN[b]相關於該CNN的單一輸入元素INi,j(例如在圖1中的IN00。該第一方向DIR1為一位元線RBL方向。該記憶體陣列50根據該第一數量bA和該操作電壓VDD1~VDDN的至少其中之一來擴展該CNN的該輸入位元IN[b]為複數輸入位元IN[bA-1],IN[bW-2],...IN[1],IN[0],且該第一數量bA和該操作電壓VDD1~VDDN的至少其中之一是相關於該複數輸入位元IN[bA-1],IN[bW-2],...IN[1],IN[0]的一第一權重大小
Figure 111142460-A0101-12-0021-62
,
Figure 111142460-A0101-12-0021-63
,...,21,20。該記憶體陣列50根據該第一數量bA和該操作電壓VDD1~VDDN的至少其中之一來擴展該CNN的該輸入位元IN[b]為複數輸入位元IN[bA-1],IN[bW-2],...IN[1],IN[0],且該第一數量bA和該操作電壓VDD~VDDN的至少其中之一是相關於該複數輸入位元IN[bA-1],IN[bW-2],...IN[1],IN[0]的該第一權重大小
Figure 111142460-A0101-12-0021-64
,
Figure 111142460-A0101-12-0021-65
,...,21,20
在本揭示實施例的任一實施例中,每一位元格BC具有一儲存位元,且各該儲存位元相關於一第二參數W,該第二參數W相關於該CNN的一權重位元W[b]。該第二方向DIR2為一字元線RWL方向。該位元格陣列50的一第二複數位元格沿該第二方向DIR2延伸一第二數量bW、且該記憶體陣列50根據該第二數量bW以及該操作電壓VDD1~VDDN的至少其中之一來決定該第二參數W的一第二權重大小
Figure 111142460-A0101-12-0021-66
,
Figure 111142460-A0101-12-0021-67
,...,21,20。該記憶體陣列50根據該第二數量bW和該操作電壓VDD1~VDDN的至少其中之一來擴展該 CNN的該權重位元W[b]為複數權重位元W[bW-1],W[bW-2],...,W[1],W[0]。
請參閱圖12,其為本揭示另一較佳實施例用於記憶體內運算(CIM)的記憶體陣列12的示意圖。用於記憶體內運算(CIM)的記憶體陣列12包含一位元格(Bit Cell)陣列121、至少一字元線122、至少一位元線123,其中每一位元格BC具有一操作電壓VDD1,VDD2,...,VDDN。該至少一字元線122電連接到該位元格陣列121,其中每一字元線RWL相關於一第一參數IN。該至少一位元線123電連接到該位元格陣列121,該位元格BC沿一方向DIR1,DIR2來延伸,其中每一位元線RBL具有一電性參數、每一位元格BC儲存一第二參數W、該位元格陣列12的一第一複數位元格沿該方向DIR1/DIR2延伸一第一數量bA/bW、且該記憶體陣列12根據該方向DIR1/DIR2來決定所擴展者為該第一參數IN以及該第二參數W的至少其中之一。
在本揭示實施例的任一實施例中,該方向DIR1,DIR2係純沿該位元線RBL方向、純沿該字元線RWL方向、或沿該字元線RWL方向且沿該位元線RBL方向。該第一參數IN相關於一捲積神經網路(CNN)的一輸入位元IN[b]。每一位元格BC具有一儲存位元,且各該儲存位元相關於一第二參數W,該第二參數W相關於該CNN的一權重位元W[b]。該權重位元相關於該CNN的單一權重元素Wi,j(例如在圖1中的W00)。該輸入位元相關於該CNN的單一輸入元素INi,j(例如在圖1中的IN00)。該位元格陣列121的一第一複數位元格BC沿該位元線RBL方向延伸一第一數量bA、且該記憶體陣列12根據該第一數量bA以及該操作電壓VDD1~VDDN的至少其中之一來決定該第一參數IN的一第一權重大小
Figure 111142460-A0101-12-0022-68
,
Figure 111142460-A0101-12-0022-69
,...,21,20。該記憶體陣列12根據該第一 數量bA和該操作電壓VDD1~VDDN的至少其中之一來擴展該CNN的該輸入位元IN[b]為複數輸入位元IN[bA-1],IN[bW-2],...IN[1],IN[0],且該第一數量bA和該操作電壓VDD1~VDDN的至少其中之一是相關於該複數輸入位元IN[bA-1],IN[bW-2],...IN[1],IN[0]的該第一權重大小
Figure 111142460-A0101-12-0023-70
,
Figure 111142460-A0101-12-0023-71
,...,21,20。該位元格陣列121的一第二複數位元格BC沿該字源線RWL方向延伸一第二數量bW、且該記憶體陣列12根據該第二數量bW以及該操作電壓VDD1~VDDN的至少其中之一來決定該第二參數W的一第二權重大小
Figure 111142460-A0101-12-0023-72
,
Figure 111142460-A0101-12-0023-73
,...,21,20。該記憶體陣列12根據該第二數量bW和該操作電壓VDD1~VDDN的至少其中之一來擴展該CNN的該權重位元W[b]為複數權重位元W[bW-1],W[bW-2],...,W[1],W[0],且該第二數量bW和該操作電壓VDD1~VDDN的至少其中之一是相關於該複數權重位元W[bW-1],W[bW-2],...,W[1],W[0]的該第二權重大小
Figure 111142460-A0101-12-0023-74
,
Figure 111142460-A0101-12-0023-76
,...,21,20
本發明雖以上述數個實施方式或實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
RBL:位元線
RWL:字元線
50:用於CIM的記憶體陣列
52:SRAM-based記憶體內運算架構
502:至少一字元線
503:至少一位元線
504:電壓調節電路
505:讀取驅動器
DIR1:第一方向
DIR2:第二方向
BC:位元格
501:位元格陣列
VDD1~VDDN:操作電壓

Claims (10)

  1. 一種用於記憶體內運算(CIM)的記憶體陣列,包含:一位元格(Bit Cell)陣列,其中其每一位元格具有一儲存位元以及一操作電壓,且各該儲存位元相關於一捲積神經網路(CNN)的一權重位元;至少一字元線,電連接到該位元格陣列,其中每一字元線相關於該CNN的一輸入位元;至少一位元線,電連接到該位元格陣列,該位元格沿一位元線方向以及一字元線方向的至少其中之一來排列,其中每一位元線具有一電性參數,該位元格陣列的複數位元格根據一第一排列數量沿該位元線方向來排列,該記憶體陣列根據該第一排列數量和該操作電壓的至少其中之一來擴展該CNN的該輸入位元為複數輸入位元,且該第一排列數量和該操作電壓的至少其中之一是相關於該複數輸入位元的一第一權重,其中該第一排列數量正相關於該第一權重;以及一讀取電路,電連接到該複數位元線,並感測各該位元線的該電性參數,以獲得該CNN的該複數輸入位元與相對應的權重位元的一乘加結果。
  2. 如請求項1所述的記憶體陣列,其中:該電性參數包含一電流、一電荷、以及一電壓的至少其中之一;該記憶體陣列還包含至少一電壓調節電路以提供該操作電壓;該操作電壓的大小正相關於該複數輸入位元的該第一權重;該讀取電路包含複數電容器,該複數電容器分別一對一對應到該複數位元線以獲得該乘加結果;以及 該記憶體陣列還包含一類比數位轉換電路電作為該讀取電路,並藉由使用該類比數位轉換電路來將該乘加結果轉換為一數位資料。
  3. 如請求項1所述的記憶體陣列,其中:該複數位元格根據一第二排列數量沿著該字元線方向而被排列;以及該記憶體陣列根據該第二排列數量和該操作電壓的至少其中之一來擴展該CNN的一權重位元為複數權重位元,且該第二排列數量和該操作電壓的至少其中之一是相關於該複數權重位元的一第二權重。
  4. 一種用於一記憶體陣列的操作方法,其中該記憶體陣列包含一位元格(Bit Cell)陣列,該位元格陣列的每一位元格具有一儲存位元以及一操作電壓,且各該儲存位元相關於一捲積神經網路(CNN)的一權重位元,該方法包含下列步驟:提供電連接到該位元格陣列的至少一字元線及至少一位元線,其中每一字元線相關於該CNN的一輸入位元,該位元格沿一位元線方向以及一字元線方向的至少其中之一來排列,每一位元線具有一電性參數,且該位元格陣列的複數位元格根據一第一排列數量沿該位元線方向來排列;根據該第一排列數量和該操作電壓的至少其中之一來擴展該CNN的該輸入位元為複數輸入位元;使該第一排列數量和該操作電壓的至少其中之一相關於該複數輸入位元的一第一權重,其中該第一排列數量正相關於該第一權重;以及感測各該位元線的該電性參數,以獲得該CNN的該複數輸入位元與相對應的權重位元的一乘加結果。
  5. 如請求項4所述的操作方法,還包含其中: 該複數位元格根據一第二排列數量沿著該字元線方向而被排列;以及該操作方法還包含下列步驟:根據該第二排列數量和該操作電壓的至少其中之一來擴展該CNN的一權重位元為複數權重位元;以及使該第二排列數量和該操作電壓的至少其中之一相關於該權重位元的一第二權重。
  6. 一種用於記憶體內運算(CIM)的記憶體陣列,包含:一位元格(Bit Cell)陣列,其中每一位元格具有一操作電壓;至少一字元線,電連接到該位元格陣列,其中每一字元線相關於一第一參數;以及至少一位元線,電連接到該位元格陣列,該位元格沿一第一以及一第二方向的至少其中之一來延伸,其中每一位元線具有一電性參數、該位元格陣列的一第一複數位元格沿該第一方向延伸一第一數量、且該記憶體陣列根據該第一數量以及該操作電壓的至少其中之一來決定該第一參數的一第一權重大小,其中該第一數量正相關於該第一權重大小。
  7. 如請求項1所述的記憶體陣列,其中:該第一參數相關於一捲積神經網路(CNN)的一輸入位元;每一位元格具有一儲存位元,且各該儲存位元相關於一第二參數,該第二參數相關於該CNN的一權重位元;該權重位元相關於該CNN的單一權重元素;該輸入位元相關於該CNN的單一輸入元素;該第一方向為一位元線方向; 該記憶體陣列根據該第一數量和該操作電壓的至少其中之一來擴展該CNN的該輸入位元為複數輸入位元,且該第一數量和該操作電壓的至少其中之一是相關於該複數輸入位元的一第一權重大小;該記憶體陣列還包含一讀取電路,其中該讀取電路電連接到該複數位元線,並感測各該位元線的該電性參數,以獲得該CNN的該複數輸入位元與該相對應的權重位元的一乘加結果;該電性參數包含一電流、一電荷、以及一電壓的至少其中之一;該記憶體陣列還包含至少一電壓調節電路以提供該操作電壓;該操作電壓的大小正相關於該輸入位元的該第一權重大小;該讀取電路包含複數電容器,該複數電容器分別一對一對應到該複數位元線以獲得該乘加結果;以及該記憶體陣列還包含電連接到該讀取電路的一類比數位轉換電路,並藉由使用該類比數位轉換電路來將該乘加結果轉換為一數位資料。
  8. 如請求項6所述的記憶體陣列,其中:每一位元格具有一儲存位元,且各該儲存位元相關於一第二參數,該第二參數相關於該CNN的一權重位元;該第二方向為一字元線方向;該位元格陣列的一第二複數位元格沿該第二方向延伸一第二數量、且該記憶體陣列根據該第二數量以及該操作電壓的至少其中之一來決定該第二參數的一第二權重大小;以及該記憶體陣列根據該第二數量和該操作電壓的至少其中之一來擴展該CNN的該權重位元為複數權重位元。
  9. 一種用於記憶體內運算(CIM)的記憶體陣列,包含:一位元格(Bit Cell)陣列,其中每一位元格具有一操作電壓;至少一字元線,電連接到該位元格陣列,其中每一字元線相關於一第一參數,該第一參數為一第一權重大小;以及至少一位元線,電連接到該位元格陣列,該位元格沿一方向來延伸,其中每一位元線具有一電性參數、每一位元格儲存一第二參數、該位元格陣列的一第一複數位元格沿該方向延伸一第一數量、且該記憶體陣列根據該方向來決定所擴展者為該第一參數以及該第二參數的至少其中之一,其中該第一數量正相關於該第一權重大小。
  10. 如請求項9所述的記憶體陣列,其中:該方向係純沿該位元線方向、純沿該字元線方向、或沿該字元線方向且沿該位元線方向;該第一參數相關於一捲積神經網路(CNN)的一輸入位元;每一位元格具有一儲存位元,且各該儲存位元相關於一第二參數,該第二參數相關於該CNN的一權重位元;該權重位元相關於該CNN的單一權重元素;該輸入位元相關於該CNN的單一輸入元素;該位元格陣列的一第一複數位元格沿該位元線方向延伸一第一數量、且該記憶體陣列根據該第一數量以及該操作電壓的至少其中之一來決定該第一參數的該第一權重大小;該記憶體陣列根據該第一數量和該操作電壓的至少其中之一來擴展該CNN的該輸入位元為複數輸入位元,且該第一數量和該操作電壓的至少其 中之一是相關於該複數輸入位元的該第一權重大小;該位元格陣列的一第二複數位元格沿該字元線方向延伸一第二數量、且該記憶體陣列根據該第二數量以及該操作電壓的至少其中之一來決定該第二參數的一第二權重大小;以及該記憶體陣列根據該第二數量和該操作電壓的至少其中之一來擴展該CNN的該權重位元為複數權重位元,且該第二數量和該操作電壓的至少其中之一是相關於該複數權重位元的該第二權重大小。
TW111142460A 2022-11-07 2022-11-07 用於記憶體內運算(cim)的記憶體陣列及其操作方法 TWI849566B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111142460A TWI849566B (zh) 2022-11-07 2022-11-07 用於記憶體內運算(cim)的記憶體陣列及其操作方法
US18/175,895 US20240153552A1 (en) 2022-11-07 2023-02-28 Memory array for compute-in-memory and the operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111142460A TWI849566B (zh) 2022-11-07 2022-11-07 用於記憶體內運算(cim)的記憶體陣列及其操作方法

Publications (2)

Publication Number Publication Date
TW202420064A TW202420064A (zh) 2024-05-16
TWI849566B true TWI849566B (zh) 2024-07-21

Family

ID=90928046

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111142460A TWI849566B (zh) 2022-11-07 2022-11-07 用於記憶體內運算(cim)的記憶體陣列及其操作方法

Country Status (2)

Country Link
US (1) US20240153552A1 (zh)
TW (1) TWI849566B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12355443B2 (en) * 2023-09-01 2025-07-08 Stmicroelectronics International N.V. In-memory computation system with built-in subtraction mode for handling matrix vector multiplication of signed feature data and signed computational weight data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113496274A (zh) * 2020-03-20 2021-10-12 郑桂忠 基于存储器内运算电路架构的量化方法及其系统
TW202201396A (zh) * 2020-03-05 2022-01-01 美商高通公司 記憶體內計算動態隨機存取記憶體
TW202209318A (zh) * 2020-08-28 2022-03-01 旺宏電子股份有限公司 記憶體內運算裝置
TW202211216A (zh) * 2020-09-08 2022-03-16 旺宏電子股份有限公司 記憶體內運算方法及裝置
US20220276835A1 (en) * 2020-05-08 2022-09-01 Reexen Technology Co., Ltd. Sub-cell, Mac array and Bit-width Reconfigurable Mixed-signal In-memory Computing Module

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202201396A (zh) * 2020-03-05 2022-01-01 美商高通公司 記憶體內計算動態隨機存取記憶體
CN113496274A (zh) * 2020-03-20 2021-10-12 郑桂忠 基于存储器内运算电路架构的量化方法及其系统
US20220276835A1 (en) * 2020-05-08 2022-09-01 Reexen Technology Co., Ltd. Sub-cell, Mac array and Bit-width Reconfigurable Mixed-signal In-memory Computing Module
TW202209318A (zh) * 2020-08-28 2022-03-01 旺宏電子股份有限公司 記憶體內運算裝置
TW202211216A (zh) * 2020-09-08 2022-03-16 旺宏電子股份有限公司 記憶體內運算方法及裝置

Also Published As

Publication number Publication date
US20240153552A1 (en) 2024-05-09
TW202420064A (zh) 2024-05-16

Similar Documents

Publication Publication Date Title
Qazi et al. Challenges and directions for low-voltage SRAM
US11574173B2 (en) Power efficient near memory analog multiply-and-accumulate (MAC)
Chen et al. Analysis and optimization strategies toward reliable and high-speed 6T compute SRAM
US20200160158A1 (en) Neural Network Circuit
Burr et al. Ohm's law+ kirchhoff's current law= better ai: Neural-network processing done in memory with analog circuits will save energy
Ma et al. In-memory computing: The next-generation ai computing paradigm
CN114496010B (zh) 一种基于磁性随机存储器的模拟域近存计算阵列结构
TW202006609A (zh) 用於類神經網路的記憶體內運算裝置
Jeong et al. A ternary neural network computing-in-memory processor with 16T1C bitcell architecture
CN119495341A (zh) 一种基于柔性rram存算阵列的矩阵运算装置
TWI849566B (zh) 用於記憶體內運算(cim)的記憶體陣列及其操作方法
Gupta et al. Exploring processing in-memory for different technologies
Motaman et al. Dynamic computing in memory (DCIM) in resistive crossbar arrays
US20220334801A1 (en) Weight stationary in-memory-computing neural network accelerator with localized data multiplexing
Lin et al. High restore yield NVSRAM structures with dual complementary RRAM devices for high-speed applications
CN114093394B (zh) 一种可转置存内计算电路及其实现方法
Monga et al. A novel decoder design for logic computation in SRAM: CiM-SRAM
CN116204490B (zh) 一种基于低电压技术的7t存算电路、乘累加运算电路
CN117711461A (zh) 非易失性存储单元以及装置、计算存储单元以及装置
Bharti et al. Compute-in-memory using 6T SRAM for a wide variety of workloads
US20230259331A1 (en) Memory array structure with dynamic differential-reference based readout scheme for computing-in-memory applications, dynamic differential-reference time-to-digital converter for computing-in-memory applications and computing method thereof
Wang et al. SRAM-based computation in memory architecture to realize single command of add-multiply operation and multifunction
Varma et al. Low power SRAM using adiabatic logic
Lalu et al. Design and comparative analysis of dynamic threshold MOSFET and sleep transistor configuration based 7T SRAM cell
JP2792675B2 (ja) 半導体記憶装置