[go: up one dir, main page]

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

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

Info

Publication number
TWI866591B
TWI866591B TW112143001A TW112143001A TWI866591B TW I866591 B TWI866591 B TW I866591B TW 112143001 A TW112143001 A TW 112143001A TW 112143001 A TW112143001 A TW 112143001A TW I866591 B TWI866591 B TW I866591B
Authority
TW
Taiwan
Prior art keywords
memory
memory cells
balanced
computational
computing
Prior art date
Application number
TW112143001A
Other languages
English (en)
Other versions
TW202520263A (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 TW112143001A priority Critical patent/TWI866591B/zh
Application granted granted Critical
Publication of TWI866591B publication Critical patent/TWI866591B/zh
Publication of TW202520263A publication Critical patent/TW202520263A/zh

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)
  • Read Only Memory (AREA)

Abstract

本案提出一種記憶體內計算記憶體裝置及記憶體內計算方法。記憶體裝置的複數個運算記憶胞與複數個平衡運算記憶胞組成複數個記憶串。於進行程式化時,依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數。於進行運算時,當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流;由該些記憶串所產生該些記憶串電流對一負載電容充電;量測該負載電容之一電容電壓;以及,根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。

Description

記憶體內計算記憶體裝置及記憶體內計算方法
本發明是有關於一種記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置及記憶體內計算方法。
對於神經網路計算與應用而言,向量-矩陣乘法(vector-matrix multiplication),亦即感知器操作(Perceptron operation),已廣泛應用。當在記憶體內實現神經網路計算時,可將權重值存在記憶體陣列內,且把輸入值施加至記憶體陣列,來進行感知器計算,以減少功率消耗並改良計算效率。
由於記憶體陣列架構的關係,感知器計算或向量-矩陣乘法的輸入值通常是從字元線側或位元線側輸入,並利用感應放大器來讀出計算結果。故而,輸入值的數量將受限於記憶體陣列大小及感應放大器的累積總電流大小。
因為輸入值的數量會被受限,目前做法是將該些輸入值分成多個輸入值群組,並利用多個感應放大器來分別感應該些輸入值群組的個別電流。由多個不同感應放大器所得到的讀取結果還要再進行加總,但這種加總可能會引起讀取錯誤,並要花費更多運算時間及/或功率消耗。
此外,以目前而言,主要有兩種架構來評估記憶體內計算(IN-MEMORY COMPUTING (IMC))結果,一種是電流加總(sum-of-current)架構,一種是電壓加總(sum-of-voltage)架構。
對於現有的電流加總架構,如果輸入值數量太多的話,加總電流可能會太高,所以需要降低各晶胞電流或需要有特別設計的感應放大器。但這樣會額外增加設計複雜度。
對於現有的電壓加總架構,各運算記憶胞的阻值必需低才能提高感應電流,來降低本體效應(body effect)。
此外,在記憶體裝置內,各記憶體串的權重值分佈可能不是均勻的,而這樣可能會降低神經網路計算的線性度(linearity)。
故而,目前需要有一種記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置及記憶體內計算方法,以期能改善目前做法的缺點。
根據本案一方面,提出一種記憶體內計算(IMC)記憶體裝置,包括:一記憶體控制電路,以及一記憶體陣列,耦接至該記憶體控制電路。該記憶體陣列包括:複數個運算記憶胞與複數個平衡運算記憶胞,組成複數個記憶串,該些運算記憶胞儲存複數個權重值;一負載電容,耦接至該些運算記憶胞;以及一量測電路,耦接至該負載電容。其中,於進行程式化時,該記憶體控制電路依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數。其中,於進行運算時,複數個輸入電壓分別輸入至該些運算記憶胞,該些輸入電壓有關於複數個輸入值,該記憶體控制電路根據該些輸入值而設定該些輸入電壓;複數個平衡輸入電壓分別輸入至該些平衡運算記憶胞,該些平衡輸入電壓有關於複數個平衡輸入值,該些平衡輸入值為一致能輸入值,該記憶體控制電路根據該些平衡輸入值而設定該些平衡輸入電壓;該些運算記憶胞之複數個有效阻抗值有關於該些輸入電壓與該些權重值;當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流;由該些記憶串所產生該些記憶串電流對該負載電容充電;該量測電路量測該負載電容之一電容電壓;以及,根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。
根據本案另一方面,提出一種記憶體內計算方法,應用於一記憶體內計算記憶體裝置,該記憶體內計算記憶體裝置包括組成複數個記憶串的複數個運算記憶胞與複數個平衡運算記憶胞。該記憶體內計算方法包括:於進行程式化時,依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數;儲存複數個權重值於複數個運算記憶胞,該些運算記憶胞組成複數個記憶串;分別輸入複數個輸入電壓至該些運算記憶胞,該些輸入電壓有關於複數個輸入值,該些運算記憶胞之複數個有效阻抗值有關於該些輸入電壓與該些權重值;分別輸入複數個平衡輸入電壓至該些平衡運算記憶胞,該些平衡輸入電壓有關於複數個平衡輸入值,該些平衡輸入值為一致能輸入值,根據該些平衡輸入值而設定該些平衡輸入電壓;當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流;由該些記憶串所產生該些記憶串電流對該負載電容充電;量測該負載電容之一電容電壓;以及根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
本說明書的技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。本揭露之各個實施例分別具有一或多個技術特徵。在可能實施的前提下,本技術領域具有通常知識者可選擇性地實施任一實施例中部分或全部的技術特徵,或者選擇性地將這些實施例中部分或全部的技術特徵加以組合。
第1圖繪示根據本案一實施例的記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置之功能方塊圖。根據本案一實施例的記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置10包括:記憶體控制電路20、字元線驅動電路30、位元線驅動電路40與記憶體陣列100。記憶體控制電路20用以控制字元線驅動電路30與位元線驅動電路40以輸出字元線驅動電壓與位元線驅動電路至記憶體陣列100。記憶體控制電路20、字元線驅動電路30與位元線驅動電路40的操作與架構在此可不特別限定之。
第2圖繪示根據本案一實施例的記憶體內計算記憶體裝置之記憶體陣列100的架構圖。如第2圖所示,根據本案一實施例的記憶體內計算(IMC)記憶體裝置之記憶體陣列100包括:複數個運算記憶胞C11~Cmn(m與n為正整數),複數個平衡運算記憶胞BC11~BCpn(p為正整數),複數個阻抗元件RS1~RSn,負載電容C以及量測電路120。該些運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn耦接至負載電容C以及量測電路120。在一可能例中,量測電路120可由感應放大器所實施。量測電路120可比較負載電容C的電容電壓VC與參考電壓VREF。
此些運算記憶胞C11~Cmn設置排列為n個縱向行及m個橫向列以執行記憶體內運算(in-memory computing,IMC)。該些平衡運算記憶胞BC11~BCpn設置排列為n個縱向行及p個橫向列以改善根據本案一實施例的記憶體內計算(IMC)記憶體裝置在執行記憶體內運算時的效能。
每一個縱向行的運算記憶胞與平衡運算記憶胞可形成記憶串S1~Sn。記憶串S1包括運算記憶胞C11、C21、…、Cm1,平衡運算記憶胞BC11、…BCp1,與阻抗元件RS1。其餘可依此類推。
該些運算記憶胞C11~Cmn分別接收輸入電壓V11~Vmn。詳細地說,運算記憶胞C11、C21、…、Cm1分別接收輸入電壓V11、V21、…、Vm1;運算記憶胞C12、C22、…、Cm2分別接收輸入電壓V12、V22、…、Vm2。該些輸入電壓V11~Vmn有關於複數個輸入值IN11~INmn。該記憶體控制電路20根據該些輸入值IN11~INmn而設定該些輸入電壓V11~Vmn。
該些運算記憶胞C11~Cmn儲存複數個權重值W11~Wmn。
該些平衡運算記憶胞BC11~BCpn分別接收平衡輸入電壓BV1~BVp。詳細地說,平衡運算記憶胞BC11、BC12…BC1n皆接收平衡輸入電壓BV1,其餘可依此類推。該些輸入電壓BV1~BVp有關於複數個平衡輸入值BIN1~BINp。該記憶體控制電路20根據該些平衡輸入值BIN1~BINp而設定平衡輸入電壓BV1~BVp。更進一步地,在本案一實施例中,該些平衡運算記憶胞BC11~BCpn係分別電性接收平衡輸入電壓BV1~BVp。雖然平衡運算記憶胞BC11~BC1n係電性接收同一平衡輸入電壓BV1,但該些平衡運算記憶胞BC11~BC1n並不需要彼此實體串聯。該些平衡運算記憶胞BC11~BC1n也可以分布在記憶體陣列100的不同位置,只要該些平衡運算記憶胞BC11~BC1n能電性接收同一平衡輸入電壓BV1即可。此皆在本案精神範圍內。
該些記憶串S1~Sn則為並聯。由並聯的該些記憶串S1~Sn所產生的該些記憶串電流I1~In則充電該負載電容C。
此外,阻抗元件RS1~RSn為選擇性元件。
在本案一實施例中,該些運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn可被程式化為高阻抗狀態或低阻抗狀態。
在本案一實施例中,於程式化(program)階段中,依據根據本案一實施例的記憶體內計算記憶體裝置10所要執行的IMC計算,來程式化該些記憶串S1~Sn的該些運算記憶胞C11~Cmn(亦即,將該些記憶串S1~Sn的該些運算記憶胞C11~Cmn程式化為高阻抗狀態或低阻抗狀態)。
至於在程式化階段中,該些平衡運算記憶胞BC11~BCpn要被程式化為高阻抗狀態或低阻抗狀態則是依據同一記憶串S1~Sn內的該些運算記憶胞C11~Cmn的高阻抗狀態個數而決定。也就是說,在程式化階段中,該記憶體控制電路20依據同一記憶串S1~Sn內的該些運算記憶胞C11~Cmn的高阻抗狀態個數而決定該些平衡運算記憶胞BC11~BCpn的高阻抗狀態個數。
細言之,以p=3為例做說明,但當知本案並不受限於此。以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為0時(亦即該些運算記憶胞C11、C21、…、Cm1全被程式化為低阻抗狀態),則該些平衡運算記憶胞BC11、BC21與BC31皆被程式化為高阻抗狀態,亦即該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為3。
相似地,以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為1時,則該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為2。
相似地,以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為2時,則該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為1。
相似地,以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為3或以上時,則該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為0。
此外,於進行IMC計算時,平衡輸入值BIN1~BINp則為位元1(致能位元),以使得該些平衡運算記憶胞BC11~BCpn的電阻值可以貢獻於該些記憶串。
故而,在本案一實施例中,當在各記憶串內設置愈多的平衡運算記憶胞時,於程式化階段中,可依上述方式來決定各記憶串的該些平衡運算記憶胞的高阻抗狀態個數。
亦即,在本案一實施例中,在各該些記憶串內,當該些運算記憶胞的高阻抗狀態個數為較少時,則該些平衡運算記憶胞的高阻抗狀態個數會較多;以及,在各該些記憶串內,當該些運算記憶胞的高阻抗狀態個數為較多時,則該些平衡運算記憶胞的高阻抗狀態個數會較少。藉此可以改善該些記憶串的快速充電行為。
在本案一實施例中,於進行IMC運算(如乘積和(multiply-and-accumulation (MAC))時,會施加讀取電壓Vread至該記憶體裝置10的該些運算記憶胞C11~Cmn之一端,使得該些運算記憶胞C11~Cmn會產生複數個晶胞電流。同一個記憶串的該些運算記憶胞所產生的晶胞電流會加總,以成為記憶串電流I1~In。
在本案一實施例中,於進行IMC操作時,施加讀取電壓Vread至該記憶體裝置10的該些運算記憶胞C11~Cmn之一端(例如但不受限於,為汲極端),以及,測量負載電容C的電容電壓VC,以測量出負載電容C被充電至一既定電壓的充電時間(亦可稱為延遲時間)。為方便定義,將施加讀取電壓Vread之時間點稱為第一時間點,而將測量到負載電容C的電容電壓VC被充電至該既定電壓之一時間點稱為第二時間點,則在本案一實施例中,延遲時間乃是定義為:從第一時間點到第二時間點。負載電容C的電容電壓VC可由量測電路120加以量測,以量測出負載電容C的延遲時間。
在本案一實施例中,記憶串Si(i=1~n)之記憶串電阻值Ri(i=1~n)可表示如下:
其中,i代表記憶串編號,k代表該運算記憶胞在該記憶串之編號,一個記憶串有m個運算記憶胞。
所以,記憶串Si之記憶串電流Ii可表示如下:
運算記憶胞之權重值W11~Wmn是輸入值IN11~INmn的函數,所以,權重值Wki可以表示為運算記憶胞之阻抗值Wki=
在本案一實施例中,負載電容C被充電至該既定電壓的充電時間可用於代表該些運算記憶胞C11~Cmn的該些權重值W11~Wmn與該些輸入值IN11~INmn之乘積和(sum of product)。這是因為,在本案一實施例中,該些運算記憶胞C11~Cmn的該些權重值與該些輸入值IN11~INmn之乘積和(sum of product)乃是一總電流Itotal。Itotal可表示如下:
此總電流Itotal乃是對負載電容C進行充電,故而,負載電容C的電容電壓VC被充電至該既定電壓之時間點有關於負載電容C之電容值與總電流Itotal,而在本案一實施例中,負載電容C之電容值乃是已知。故而,可以得知,在本案一實施例中,負載電容C的電容電壓VC被充電至該既定電壓之時間點可視為負相關於總電流Itotal,亦即,當總電流Itotal愈大時,負載電容C的電容電壓VC被充電至該既定電壓之時間點愈短,而當總電流Itotal愈小時,負載電容C的電容電壓VC被充電至該既定電壓之時間點愈長。
故而,在本案一實施例中,可以先行找出在既定情況下,負載電容C被充電至該既定電壓的延遲時間與該些運算記憶胞C11~Cmn的該些權重值與該些輸入值IN11~INmn之乘積和之間的一既定關係。於後續的IMC運算時,則可以藉由測量出延遲時間來轉換得到該些運算記憶胞C11~Cmn的該些權重值與該些輸入值IN11~INmn之乘積和。
此外,在本案一實施例中,當運算記憶胞之權重值及/或輸入值改變時,運算記憶胞之有效阻抗值也隨之改變。這將導致不同的延遲時間(充電時間)。
第3A圖與第3B圖顯示根據本案一實施例之測量延遲時間之示意圖。在第3A圖與第3B圖中,eRS1、eRS2與eRS3代表該些記憶串S1~Sn之不同總有效阻抗值,其中,eRS1<eRS2<eRS3。
在第3A圖中,該延遲時間為,從施加該讀取電壓之一第一時間點到該負載電容的該電容電壓被充電至一既定電壓之一第二時間點,該既定電壓是根據該讀取電壓而決定。例如但不受限於,該既定電壓可以是該讀取電壓的0.7倍。
在第3A圖中,當該些記憶串S1~Sn之不同總有效阻抗值為eRS1時,於時間T1處,負載電容C被充電至既定電壓,所以,延遲時間T1代表該些權重值W11~Wmn與該些輸入值IN11~INmn之乘積和為001。同樣地,當該些記憶串S1~Sn之不同總有效阻抗值為eRS2時,於時間T2處,負載電容C被充電至既定電壓,所以,延遲時間T2代表該些權重值W11~Wmn與該些輸入值IN11~INmn之乘積和為010。同樣地,當該些記憶串S1~Sn之不同總有效阻抗值為eRS3時,於時間T3處,負載電容C被充電至既定電壓,所以,延遲時間T3代表該些權重值W11~Wmn與該些輸入值IN11~INmn之乘積和為011。其餘可依此類推。
此外,於本案另一實施例中,可選擇複數個既定延遲時間,於該些既定延遲時間處,比較電容電壓VC與參考電壓VREF,比較結果代表該些輸入值與該些權重值之運算結果(乘積和),如第3B圖所示。亦即,選擇數個既定延遲時間(t0~t3),於該些既定延遲時間處,檢查電容電壓VC是否到達既定電壓VREF,以決定該些輸入值與該些權重值之運算結果(乘積和)。如果在延遲時間t0處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為000;如果在延遲時間t1處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為001;其餘可依此類推。
於第3B圖中,當該些記憶串S1~Sn之不同總有效阻抗值為eRS1時,在延遲時間t1處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為001。同樣地,當該些記憶串S1~Sn之不同總有效阻抗值為eRS2時,在延遲時間t1處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為001。當該些記憶串S1~Sn之不同總有效阻抗值為eRS3時,在延遲時間t3處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為011。
現將說明根據本案一實施例的運算記憶胞的不同例子。
第4A圖為本案一實施例的運算記憶胞C(a)mn的電路圖。運算記憶胞C(a)mn可用於實現第2圖的記憶體陣列100的運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn。運算記憶胞C(a)mn包括電晶體TRmn及電阻R(a)mn,電晶體TRmn並聯連接於電阻R(a)mn,且電阻R(a)mn具有固定電阻值。運算記憶胞C(a)mn連接於第n條位元線BLn。電晶體TRmn的汲極d與源極s連接於位元線BLn,電晶體TRmn的閘極g接收輸入電壓Vmn。電阻R(a)mn亦連接於位元線BLn。
電晶體TRmn例如為浮動閘極(floating gate)電晶體。電晶體TRmn具有臨界電壓(threshold voltage) Vt,可施加編程電壓以調整臨界電壓Vt的電壓值。當電晶體TRmn在擦除狀態(erase state)時,臨界電壓Vt的電壓值為第一臨界電壓值VtL。當電晶體TRmn在編程狀態(programing state)時,臨界電壓Vt的電壓值可編程為第二臨界電壓值VtH。第二臨界電壓值VtH大於第一臨界電壓值VtL。第一臨界電壓值VtL例如為0.4V,第二臨界電壓值VtH例如為4.8V。並且,臨界電壓Vt對應於運算記憶胞C(a)mn儲存的權重值(weight value) Wmn。當臨界電壓Vt為第一臨界電壓值VtL時,對應於運算記憶胞C(a)mn儲存的權重值Wmn為「0」。當臨界電壓Vt為第二臨界電壓值VtH時,對應於運算記憶胞C(a)mn儲存的權重值Wmn為「1」。
電晶體TRmn的閘極g接收輸入電壓Vmn。輸入電壓Vmn對應於運算記憶胞C(a)mn接收的輸入值INmn。當輸入電壓Vmn的電壓值為第一輸入電壓值VL時,對應於輸入值INmn為「1」。當輸入電壓Vmn的電壓值為第二輸入電壓值VH時,對應於輸入值INmn為「0」。第二輸入電壓值VH大於第一輸入電壓值VL。第二輸入電壓值VH例如為3V。第一輸入電壓值VL例如為-1V。並且,第二輸入電壓值VH大於第二臨界電壓值VtH以及第一臨界電壓值VtL。再者,第一輸入電壓值VL小於第二臨界電壓值VtH且大於第一臨界電壓值VtL。
運算記憶胞C(a)mn可經由位元線BLn接收讀取電壓Vread,以產生晶胞電流Imn。在運作上,因應於不同電壓值的輸入電壓Vmn及臨界電壓Vt,運算記憶胞C(a)mn可產生或不產生晶胞電流Imn。
當運算記憶胞C(a)mn接收的輸入電壓Vmn為第二輸入電壓值VH、且電晶體TRmn的臨界電壓Vt為第一臨界電壓值VtL或第二臨界電壓值VtH時,由於輸入電壓Vmn大於臨界電壓Vt,因此電晶體TRmn為開啟狀態(turned-on) (即,導通狀態),故而,運算記憶胞C(a)mn可產生晶胞電流Imn。在此狀況下,運算記憶胞C(a)mn的等效阻抗為電晶體TRmn本身的等效電阻值Rtr並聯於電阻R(a)mn。在一種示例中,電阻R(a)mn的電阻值遠大於電晶體TRmn的等效電阻值Rtr,因而運算記憶胞C(a)mn的等效阻抗大致相等於電晶體TRmn的等效電阻值Rtr。
另一方面,當運算記憶胞C(a)mn接收的輸入電壓Vmn為第一輸入電壓值VL、且電晶體TRmn的臨界電壓Vt為第一臨界電壓值VtL時,由於輸入電壓Vmn大於臨界電壓Vt,因此電晶體TRmn為開啟狀態,故而,運算記憶胞C(a)mn可產生晶胞電流Imn。在此狀況下,運算記憶胞C(a)mn的等效阻抗大致相等於電晶體TRmn的等效電阻值Rtr。
再者,當運算記憶胞C(a)mn接收的輸入電壓Vmn為第一輸入電壓值VL、且電晶體TRmn的臨界電壓Vt為第二臨界電壓值VtH時,由於輸入電壓Vmn小於臨界電壓Vt,因此電晶體TRmn為關閉狀態(turned-off) (即,斷路狀態),故而,運算記憶胞C(a)mn不產生晶胞電流Imn。在此狀況下,運算記憶胞C(a)mn的等效阻抗大致相等於電阻R(a)mn。
根據上述的運算記憶胞C(a)mn的運作方式,表1所示為運算記憶胞C(a)mn是否產生晶胞電流Imn對應於輸入值INmn及權重值Wmn的真值表(truth table)。 表1
          Wmn INmn 0 1
0 產生晶胞電流Imn 產生晶胞電流Imn
1 產生晶胞電流Imn 不產生晶胞電流Imn
參見表1,當輸入值INmn為「0」且權重值Wmn為「0」或「1」時,運算記憶胞C(a)mn產生晶胞電流Imn。當輸入值INmn為「1」且權重值Wmn為「0」時,運算記憶胞C(a)mn產生晶胞電流Imn。當輸入值INmn為「1」且權重值Wmn為「1」時,運算記憶胞C(a)mn產生較小的晶胞電流Imn。據此,運算記憶胞C(a)mn可執行輸入值INmn與權重值Wmn的乘積運算(product operation),運算記憶胞C(a)mn所產生的晶胞電流Imn有關於輸入值INmn與權重值Wmn的乘積。
第4B圖為本案另一實施例的運算記憶胞C(c)mn的電路圖。運算記憶胞C(c)mn可用於實現第2圖的記憶體陣列100的運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn。相較於第4A圖的運算記憶胞C(a)mn,第4B圖的運算記憶胞C(c)mn的電阻R(c)mn為可變電阻,其具有可變的電阻值,可在記憶體裝置運作時動態調整電阻R(c)mn的電阻值。在另一種示例中,電阻R(c)mn具有固定的電阻值,然而,可調整製程參數以在製造過程中調整電阻R(c)mn的電阻值。第4B圖中,電晶體TRmn是一般電晶體。
電阻R(c)mn可例如調整為四個電阻值R0、R1、R2、R3,其中電阻值R0趨近於零,電阻值R0遠小於電阻值R1、R2、R3。並且,運算記憶胞C(c)mn的電晶體TRmn的等效電阻值Rtr亦遠小於電阻值R1、R2及R3。
當運算記憶胞C(c)mn儲存的權重值Wmn為「0」時,電阻R(c)mn調整為電阻值R0。類似的,當運算記憶胞C(c)mn儲存的權重值Wmn為「1」、「2」、「3」時,電阻R(c)mn調整為電阻值R1、R2、R3。
當輸入值INmn為「0」時,輸入電壓Vmn為高電壓值的第二輸入電壓值VH,電晶體TRmn為開啟狀態,運算記憶胞C(c)mn的等效阻抗大致相等於電晶體TRmn本身的等效電阻值Rtr,且運算記憶胞C(c)mn產生晶胞電流Imn。在此狀況下,不論權重值Wmn設定為「0」、「1」、「2」或「3」(即,不論電阻R(c)mn調整為電阻值R0、R1、R2或R3),運算記憶胞C(c)mn產生晶胞電流Imn。
另一方面,當輸入值INmn為「1」時,輸入電壓Vmn為低電壓值的第一輸入電壓值VL,電晶體TRmn為關閉狀態,運算記憶胞C(c)mn不產生晶胞電流Imn。當權重值Wmn設定為「0」、「1」、「2」、「3」時,電阻R(c)mn調整為電阻值R0、R1、R2、R3,運算記憶胞C(c)mn所產生的晶胞電流Imn有關於電阻值R0、R1、R2、R3。據此,運算記憶胞C(c)mn可執行乘積運算,運算記憶胞C(c)mn所產生的晶胞電流Imn有關於輸入值INmn與權重值Wmn的乘積。
第4C圖為本案又一實施例的運算記憶胞C(d)mn的電路圖。運算記憶胞C(d)mn可用於實現第2圖的記憶體陣列100的運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn。相較於第4A圖的運算記憶胞C(a)mn,第4C圖的運算記憶胞C(d)mn不包括電阻。第4C圖的運算記憶胞C(d)mn的權重值係根據電晶體TRmn的臨界電壓而決定。
在本案其他可能實施例中,運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn也可以有其他可能實現架構,例如但不受限於,(1)運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn可以包括多工器及多個電阻;(2)運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn可以包括多個開關元件及多個電阻。
根據上述之本案不同實施例,運算記憶胞與該些平衡運算記憶胞由一或多個電晶體及/或電阻組成。可調整電晶體的臨界電壓以改變運算記憶胞儲存的權重值,並根據權重值將電阻調整為高電阻值、低電阻值或不同比例的電阻值。並且,根據輸入值對應的輸入電壓控制運算記憶胞操作於「導通狀態」或「斷路狀態」,據此控制讀取電壓選擇性施加至電晶體或電阻,使運算記憶胞產生對應的晶胞電流以表示輸出值。輸出值表示輸入值與權重值的乘積運算的結果,並可加總得到乘積的總和。此外,運算記憶胞亦可包括多工器。藉由多工器的運作,使讀取電壓選擇性施加被選擇路徑上的電阻,使運算記憶胞執行輸入值與權重值的邏輯運算,或兩個位元的輸入值之間的邏輯運算。
第5A圖至第5C圖顯示根據本案一實施例的模擬圖。第5A圖至第5C圖中,乃是模擬,當記憶體陣列100有32個記憶串,且各記憶串有32個運算記憶胞的情況。該些運算記憶胞與該些平衡運算記憶胞的高電阻是555K歐姆,而該些運算記憶胞與該些平衡運算記憶胞的低電阻是13.5K歐姆。負載電容C的電容值CL為1.5pF。
在本案一實施例中,可以調整負載電容C的電容值CL,以調整延遲時間。在底下,以讀取電壓為0.5V,而負載電容C的電容電壓VC被充電至既定電壓為0.35V所需要的充電時間當成延遲時間為例做說明,但當知本案並不受限於此。亦即,在此例中,當負載電容C的電容電壓VC達到讀取電壓的0.7倍時,則視為記憶體裝置10已產生MAC(乘積和)結果。
第5A圖至第5C圖中,曲線510A代表,阻抗元件的電阻等於高電阻且在各記憶串有3個平衡運算記憶胞的情況。曲線510B代表,阻抗元件的電阻等於高電阻且在各記憶串沒有任何平衡運算記憶胞的情況。曲線510C代表,各記憶串沒有任何平衡運算記憶胞也沒有任何阻抗元件的情況。
在第5A圖中,該些32個記憶串的該些運算記憶胞的高阻抗狀態個數分別為[6, 6, 1, 4, 6, 7, 3, 5, 5, 7, 3, 6, 6, 2, 7, 8, 7, 4, 7, 6, 3, 3, 2, 8, 4, 7, 4, 3, 7, 3, 9, 5]。
在第5B圖中,該些32個記憶串的該些運算記憶胞的高阻抗狀態個數分別為[24, 23, 22, 20, 22, 21, 17, 23, 21, 22, 20, 19, 20, 20, 23, 20, 22, 20, 20, 23, 21, 22, 18, 21, 24, 24, 18, 18, 22, 20, 24, 23]。
在第5C圖中,該些32個記憶串的該些運算記憶胞的高阻抗狀態個數分別為[ 7,  4,  7,  6,  3,  3,  2,  8,  4,  7,  4,  3,  7,  3,  9,  5, 24, 23, 22, 20, 22, 21, 17, 23, 21, 22, 20, 19, 20, 20, 23, 20]。
由第5A圖至第5C圖可以看出,在本案一實施例中,延遲時間會正比於乘積和。在本案一實施例中,平衡運算記憶胞的功能類似於阻抗元件,乃是用於限制電流以避免快速充電效應(fast charging effect)。
此外,在本案一實施例中,由於導入平衡運算記憶胞,所以在評估IMC運算結果(乘積和結果)時,需要補償平衡運算記憶胞對運算結果所造成的影響。以第5C圖的曲線510A(有平衡運算記憶胞)為例,乘積和結果為400對應到的延遲時間是0.4μs,乘積和結果為0對應到的延遲時間是0.1μs。相反地,以第5C圖的曲線510C(沒有任何的平衡運算記憶胞)為例,乘積和結果為400對應到的延遲時間是0.25μs,乘積和結果為0對應到的延遲時間是0.01μs。更進一步地說,以第5C圖的曲線510C(沒有任何的平衡運算記憶胞)來看,原本是延遲時間0.12μs對應到乘積和結果為200,但以第5C圖的曲線510A(有平衡運算記憶胞)來看,則是延遲時間0.25μs對應到乘積和結果為200的輸出值。所以,在本案一實施例中,在補償平衡運算記憶胞對運算結果所造成的影響時,則把延遲時間往後偏移(shift)約0.13μs才會對應到乘積和結果。
在本案一實施例中,記憶體陣列的一部份運算記憶胞或許多部份運算記憶胞可定義為平衡運算記憶胞。而且,各記憶串包括相同數量“NBW”的平衡運算記憶胞與相同數量“m”的運算記憶胞。
在該記憶串中額外加入一個高阻抗狀態單元(高阻抗狀態單元可以是阻抗元件RS1~RSn或者平衡運算記憶胞所造成)的電流變化量將會是當該記憶串中沒有任何高阻抗狀態單元時的[(1⁄m)-(1⁄(m+1))]。例如,以下表來看,
m [(1⁄m)-(1⁄(m+1))] m [(1⁄m)-(1⁄(m+1))]
2 16.7% 5 3.3%
3 8.3% 6 2.4%
4 5.0% 7 1.8%
例如,在各記憶串中,增加一個高阻抗狀態單元使電流變化量為5%,那麼在各記憶串中需要加入4個高阻抗狀態單元,所以,在本案一實施例中,可以為各記憶串分配3個平衡運算記憶胞與1個阻抗元件。
或者,如果需要較小的電流變化量,例如電流變化量為2%,那麼在各記憶串中需要加入7個高阻抗狀態單元,所以,在本案一實施例中,可以為各記憶串分配6個平衡運算記憶胞與1個阻抗元件。
此外,於本案一實施例中,考慮到線性度、準確性、晶片面積使用等等,以及其他參數,可以進一步調整平衡運算記憶胞的數量。
在本案一實施例中,對於給定的神經網路模型,權重值和分佈是已知且可用於分配平衡運算記憶胞的值。配置平衡運算記憶胞的值有很多方法。例如,如果一記憶串的高阻抗狀態記憶胞的最小數量是“Nmin”,則可以將所有平衡運算記憶胞的輸入值設為“1”,並將這個記憶串的高阻抗單元數量增加為“Nmin + NBW”,以進一步限制電流。然後依此方式為其他記憶串分配平衡運算記憶胞的值,使每個記憶串的最小高阻抗單元數量為 “Nmin + NBW”。
此外,於本案一實施例中,定義“Nbw,Max”為表示在感知器計算中值為 “1”的平衡運算記憶胞的數量。平衡運算記憶胞可能會影響感知器操作的充電時間。分配為 “1”的平衡運算記憶胞越多,充電時間越長,感測開銷(sensing overhead)越大。
所以,在本案一實施例中,限制“Nbw,Max”的數量以減少感測開銷。例如,為將感測開銷限制為10%,可以計算出預估最大感知器輸出值(the estimated maximum perceptron output value),並將“Nbw,Max”定義為該預估最大感知器輸出值的1/10,例如預估最大感知器輸出值約為164,那麼“Nbw,Max”可以定義為16。或者,在本案一實施例中,可能會將 “Nbw,Max”定義為平衡運算記憶胞的總數量的大約一半。這取決於權重分佈。
在各記憶串中,平衡運算記憶胞的數量可以是1或多於1,每個記憶串都有相同數量的平衡運算記憶胞。
平衡運算記憶胞的輸入值被設定為 “1”,以啟用平衡運算記憶胞對各記憶串的貢獻。
平衡運算記憶胞的位置可以放在記憶串的起頭處、結尾處或其他位置。
平衡運算記憶胞的阻抗狀態取決於記憶體陣列的權重值分配。
在習知技術中,於進行IMC運算時,可能會出現快速充電行為(fast charging behavior)。快速充電行為是指,當同一記憶串的所有運算記憶胞都處於低阻抗狀態時或者是同一記憶串的只有少數運算記憶胞處於高阻抗狀態時,該同一記憶串的等效阻抗太低,使得該同一記憶串的電流過高,對負載電容C的充電電流過高,使得負載電容C的電位快速提升,進而導致誤判的可能性。
所以,在本案一實施例中,對該些記憶串S1~Sn額外增加該些平衡運算記憶胞BC11~BCpn及/或阻抗元件RS1~RSn,以增加該些記憶串S1~Sn的等效阻抗,以有效減少或避免快速充電行為。即便是當同一記憶串的所有運算記憶胞都處於低阻抗狀態時,由於額外增加該些平衡運算記憶胞BC11~BCpn及/或阻抗元件RS1~RSn(阻抗元件RS1~RSn的關係,該同一記憶串的等效阻抗仍不會太低,使得該同一記憶串的電流不會過高,對負載電容C的充電電流不會過高,使得負載電容C的電位不會快速提升,進而降低誤判的可能性。
在本案一實施例中,該些運算記憶胞與該些平衡運算記憶胞具有至少兩種阻抗狀態,高阻抗狀態與低阻抗狀態。當該些運算記憶胞處於高阻抗狀態時(亦可稱為第一阻抗狀態),該些運算記憶胞具有一高阻抗值RH(亦可稱為第一阻抗值);以及,當該些運算記憶胞處於低阻抗狀態時(亦可稱為第二阻抗狀態),該些運算記憶胞具有一低阻抗值RL(亦可稱為第二阻抗值)。
在本案一實施例中,該些阻抗元件RS1~RSn的等效阻抗RS例如但不受限於為,RS=2RL,或者,RS=5RL,則可以有效減少快速充電行為。在本案一實施例中,該些阻抗元件RS1~RSn的等效阻抗RS例如但不受限於為,RS=10RL,或者,RS≧0.5*RH,則可以有效避免甚至完全避免快速充電行為。
由此可知,本案實施例的確可以減少或避免快速充電行為,進而降低誤判的可能性。
於本案一實施例中,該些阻抗元件RS1~RSn例如為但不受限於,由製程所形成的一電阻。或者,於本案一實施例中,該些阻抗元件RS1~RSn例如為但不受限於,為電晶體。或者,於本案一實施例中,該些阻抗元件RS1~RSn例如為但不受限於,電晶體與電阻之組合,當進行程式化操作(programming operation)或運算記憶胞權重調整時,該電晶體為導通,當進行感應操作(sensing operation)時,電晶體被關閉。
在本案一實施例中,藉由調整負載電容的電容值,可以將IMC記憶體裝置的IMC運算操作的功率消耗調整至合理範圍內。此外,對於給定的輸入值數量與運算記憶胞數量,適當排列記憶串數量與各記憶串的運算記憶胞數量,也有助於調整功率消耗。
在本案一實施例中,一記憶串的運算記憶胞數量至少要大於等於2,以及,記憶體陣列的記憶串數量可為任意的。而且,運算記憶胞的阻抗值可被輸入值所改變。
在本案一實施例中,當記憶體裝置10是NAND型記憶體裝置時,讀取電壓Vread低於1V。
在本案一實施例中,記憶體裝置10可應用於,例如但不受限於,神經網路的計算,或者是,乘積和運算,或者是,將輸入資料比較於所儲存資料等。
在本案其他可能實施例中,該些運算記憶胞與該些平衡運算記憶胞具有三種或更多種阻抗狀態(亦即,三種或更多種阻抗值),此皆在本案精神範圍內。
在本案一實施例中,由於不是採用電壓加總架構來進行IMC,故而,可以同時運算更多筆輸入值,且可以僅使用單一感應放大器即可滿足IMC,本案實施例具有可以降低讀取錯誤與功率消耗的優點。
本案一實施例的IMC記憶體裝置是電流加總架構與電壓加總架構的混合模式,可允許同時運算更多筆輸入值,且能避免電流加總架構中由於較大加總電流所帶來的問題,亦能避免電壓加總架構中由於低感應電流所帶來的問題。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:記憶體裝置 20:記憶體控制電路 30:字元線驅動電路 40:位元線驅動電路 100:記憶體陣列 I1~In:記憶串電流 BL1~BLn:位元線 V11~Vmn、BV1~BVp:輸入電壓 IN11~INmn、BIN1~BINp:輸入值 100:記憶體陣列 IN11~INmn:輸入值 S1~Sn: 記憶串 C:負載電容 120:量測電路 Vread:讀取電壓 BC11~BCpn:平衡運算記憶胞 RS1~RSn:阻抗元件 C(a)mn、C(c)mn、C(d)mn:運算記憶胞 R(a)mn,R(c)mn:電阻 TRmn:電晶體 g:閘極 d:汲極 s:源極 510A-510C:曲線
第1圖繪示根據本案一實施例的記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置之功能方塊圖。 第2圖繪示根據本案一實施例的記憶體內計算記憶體裝置之記憶體陣列的架構圖。 第3A圖與第3B圖顯示根據本案一實施例之測量延遲時間之示意圖。 第4A圖為本案一實施例的運算記憶胞的電路圖。 第4B圖為本案一實施例的運算記憶胞的電路圖。 第4C圖為本案一實施例的運算記憶胞的電路圖。 第5A圖至第5C圖顯示根據本案一實施例的模擬圖。
I1~In:記憶串電流
BL1~BLn:位元線
V11~Vmn、BV1~BVp:輸入電壓
C11~Cmn:運算記憶胞
100:記憶體陣列
IN11~INmn、BIN1~BINp:輸入值
S1~Sn:記憶串
C:負載電容
RS1~RSn:阻抗元件
120:量測電路
Vread:讀取電壓
BC11~BCpn:平衡運算記憶胞

Claims (13)

  1. 一種記憶體內計算(IMC)記憶體裝置,包括: 一記憶體控制電路,以及 一記憶體陣列,耦接至該記憶體控制電路,該記憶體陣列包括: 複數個運算記憶胞與複數個平衡運算記憶胞,組成複數個記憶串,該些運算記憶胞儲存複數個權重值; 一負載電容,耦接至該些運算記憶胞;以及 一量測電路,耦接至該負載電容, 其中,於進行程式化時,該記憶體控制電路依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數; 其中,於進行運算時, 複數個輸入電壓分別輸入至該些運算記憶胞,該些輸入電壓有關於複數個輸入值,該記憶體控制電路根據該些輸入值而設定該些輸入電壓, 複數個平衡輸入電壓分別輸入至該些平衡運算記憶胞,該些平衡輸入電壓有關於複數個平衡輸入值,該些平衡輸入值為一致能輸入值,該記憶體控制電路根據該些平衡輸入值而設定該些平衡輸入電壓; 該些運算記憶胞之複數個有效阻抗值有關於該些輸入電壓與該些權重值, 當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流, 由該些記憶串所產生該些記憶串電流對該負載電容充電, 該量測電路量測該負載電容之一電容電壓,以及 根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。
  2. 如請求項1所述之記憶體內計算(IMC)記憶體裝置,其中, 該些運算記憶胞與該些平衡運算記憶胞具有一第一阻抗值與一第二阻抗值,該第一阻抗值高於該第二阻抗值, 該些運算記憶胞的該第一阻抗狀態個數代表被程式化為該第一阻抗值的該些運算記憶胞的一數量,以及,該些平衡運算記憶胞的該第一阻抗狀態個數代表被程式化為該第一阻抗值的該些平衡運算記憶胞的一數量, 各記憶串包括串聯的至少2個運算記憶胞, 該些記憶串為並聯, 該延遲時間為,從施加該讀取電壓之一第一時間點到該負載電容的該電容電壓被充電至該既定電壓之一第二時間點,該既定電壓是根據該讀取電壓而決定。
  3. 如請求項1所述之記憶體內計算(IMC)記憶體裝置,其中,於複數個既定延遲時間處,檢查該電容電壓是否到達該既定電壓以得到一比較結果,該比較結果代表該些輸入值與該些權重值之該運算結果。
  4. 如請求項1所述之記憶體內計算(IMC)記憶體裝置,更包括: 複數個阻抗元件,形成於該些記憶串之內,該些阻抗元件串聯於該些運算記憶胞與該些平衡運算記憶胞。
  5. 如請求項4所述之記憶體內計算(IMC)記憶體裝置,其中, 該些運算記憶胞與該些平衡運算記憶胞具有一第一阻抗值與一第二阻抗值,該第一阻抗值高於該第二阻抗值;以及 該些阻抗元件的一等效阻抗為等於或高於該第二阻抗值之兩倍,或者,該些阻抗元件的該等效阻抗等於或高於該第一阻抗值的一半。
  6. 如請求項1所述之記憶體內計算(IMC)記憶體裝置,其中, 在該些記憶串中,該些平衡運算記憶胞的數量是1或多於1,該些記憶串有相同數量的該些平衡運算記憶胞;以及 在該些記憶串內,該些平衡運算記憶胞位於該些記憶串的一起頭處、一結尾處或其他位置。
  7. 如請求項1所述之記憶體內計算(IMC)記憶體裝置,其中,該些運算記憶胞與該些平衡運算記憶胞具有三種或更多種阻抗狀態。
  8. 一種記憶體內計算方法,應用於一記憶體內計算記憶體裝置,該記憶體內計算記憶體裝置包括組成複數個記憶串的複數個運算記憶胞與複數個平衡運算記憶胞,該記憶體內計算方法包括: 於進行程式化時,依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數; 儲存複數個權重值於複數個運算記憶胞,該些運算記憶胞組成複數個記憶串; 分別輸入複數個輸入電壓至該些運算記憶胞,該些輸入電壓有關於複數個輸入值,該些運算記憶胞之複數個有效阻抗值有關於該些輸入電壓與該些權重值; 分別輸入複數個平衡輸入電壓至該些平衡運算記憶胞,該些平衡輸入電壓有關於複數個平衡輸入值,該些平衡輸入值為一致能輸入值,根據該些平衡輸入值而設定該些平衡輸入電壓; 當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流; 由該些記憶串所產生該些記憶串電流對該負載電容充電; 量測該負載電容之一電容電壓;以及 根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。
  9. 如請求項8所述之記憶體內計算方法,其中, 該些運算記憶胞與該些平衡運算記憶胞具有一第一阻抗值與一第二阻抗值,該第一阻抗值高於該第二阻抗值, 該些運算記憶胞的該第一阻抗狀態個數代表被程式化為該第一阻抗值的該些運算記憶胞的一數量,以及,該些平衡運算記憶胞的該第一阻抗狀態個數代表被程式化為該第一阻抗值的該些平衡運算記憶胞的一數量, 該延遲時間為,從施加該讀取電壓之一第一時間點到該負載電容的該電容電壓被充電至該既定電壓之一第二時間點,該既定電壓是根據該讀取電壓而決定。
  10. 如請求項8所述之記憶體內計算方法,其中,於複數個既定延遲時間處,檢查該電容電壓是否到達該既定電壓以得到一比較結果,該比較結果代表該些輸入值與該些權重值之該運算結果。
  11. 如請求項8所述之記憶體內計算方法,其中,該記憶體內計算記憶體裝置更包括:複數個阻抗元件,形成於該些記憶串之內,該些阻抗元件串聯於該些運算記憶胞與該些平衡運算記憶胞; 該些運算記憶胞與該些平衡運算記憶胞具有一第一阻抗值與一第二阻抗值,該第一阻抗值高於該第二阻抗值;以及 該些阻抗元件的一等效阻抗為等於或高於該第二阻抗值之兩倍,或者,該些阻抗元件的該等效阻抗等於或高於該第一阻抗值的一半。
  12. 如請求項8所述之記憶體內計算方法,其中, 在該些記憶串中,該些平衡運算記憶胞的數量是1或多於1,該些記憶串有相同數量的該些平衡運算記憶胞;以及 在該些記憶串內,該些平衡運算記憶胞位於該些記憶串的一起頭處、一結尾處或其他位置。
  13. 如請求項8所述之記憶體內計算方法,其中,該些運算記憶胞與該些平衡運算記憶胞具有三種或更多種阻抗狀態。
TW112143001A 2023-11-08 2023-11-08 記憶體內計算記憶體裝置及記憶體內計算方法 TWI866591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW112143001A TWI866591B (zh) 2023-11-08 2023-11-08 記憶體內計算記憶體裝置及記憶體內計算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW112143001A TWI866591B (zh) 2023-11-08 2023-11-08 記憶體內計算記憶體裝置及記憶體內計算方法

Publications (2)

Publication Number Publication Date
TWI866591B true TWI866591B (zh) 2024-12-11
TW202520263A TW202520263A (zh) 2025-05-16

Family

ID=94769474

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112143001A TWI866591B (zh) 2023-11-08 2023-11-08 記憶體內計算記憶體裝置及記憶體內計算方法

Country Status (1)

Country Link
TW (1) TWI866591B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202340979A (zh) * 2021-12-17 2023-10-16 華邦電子股份有限公司 記憶體內運算裝置及其運算方法
TW202341150A (zh) * 2022-04-05 2023-10-16 台灣積體電路製造股份有限公司 記憶體系統及記憶體陣列的操作方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202340979A (zh) * 2021-12-17 2023-10-16 華邦電子股份有限公司 記憶體內運算裝置及其運算方法
TW202341150A (zh) * 2022-04-05 2023-10-16 台灣積體電路製造股份有限公司 記憶體系統及記憶體陣列的操作方法

Also Published As

Publication number Publication date
TW202520263A (zh) 2025-05-16

Similar Documents

Publication Publication Date Title
US11625586B2 (en) Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays
US11733929B2 (en) Memory system with dynamic calibration using a variable adjustment mechanism
US20210183452A1 (en) Memory devices for comparing input data to data stored in memory cells coupled to a data line
US20200311523A1 (en) Realization of neural networks with ternary inputs and binary weights in nand memory arrays
US11568200B2 (en) Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
KR102332254B1 (ko) 메모리 동작을 위한 이벤트 카운터
US10566063B2 (en) Memory system with dynamic calibration using a trim management mechanism
US7782679B2 (en) Memory device and reading method
CN110751276A (zh) 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
Kim et al. Rank modulation hardware for flash memories
TWI866591B (zh) 記憶體內計算記憶體裝置及記憶體內計算方法
CN118824307A (zh) 存储器内计算存储器装置及存储器内计算方法
US12444446B2 (en) Dynamic sensing levels for nonvolatile memory devices
CN119964621A (zh) 存内计算存储器装置及存内计算方法
TWI845270B (zh) 記憶體內計算記憶體裝置及記憶體內計算方法
KR102365470B1 (ko) 트랜지스터-커패시터 쌍으로 가중치를 조절할 수 있는 커패시턴스 기반 순차 행렬 곱셈 뉴럴 네트워크
CN110797067A (zh) 存储阵列模块及其控制方法、装置、模组