TWI866591B - In-memory computing (imc) memory device and in-memory computing method - Google Patents
In-memory computing (imc) memory device and in-memory computing method Download PDFInfo
- 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
Links
Images
Landscapes
- Static Random-Access Memory (AREA)
- Read Only Memory (AREA)
Abstract
Description
本發明是有關於一種記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置及記憶體內計算方法。The present invention relates to an in-memory computing (IMC) memory device and an in-memory computing method.
對於神經網路計算與應用而言,向量-矩陣乘法(vector-matrix multiplication),亦即感知器操作(Perceptron operation),已廣泛應用。當在記憶體內實現神經網路計算時,可將權重值存在記憶體陣列內,且把輸入值施加至記憶體陣列,來進行感知器計算,以減少功率消耗並改良計算效率。For neural network computation and applications, vector-matrix multiplication, also known as perceptron operation, has been widely used. When implementing neural network computation in memory, weight values can be stored in a memory array and input values can be applied to the memory array to perform perceptron computation, thereby reducing power consumption and improving computational efficiency.
由於記憶體陣列架構的關係,感知器計算或向量-矩陣乘法的輸入值通常是從字元線側或位元線側輸入,並利用感應放大器來讀出計算結果。故而,輸入值的數量將受限於記憶體陣列大小及感應放大器的累積總電流大小。Due to the memory array architecture, the input values of sensor calculations or vector-matrix multiplication are usually input from the word line side or bit line side, and the calculation results are read out using sense amplifiers. Therefore, the number of input values will be limited by the size of the memory array and the total accumulated current of the sense amplifier.
因為輸入值的數量會被受限,目前做法是將該些輸入值分成多個輸入值群組,並利用多個感應放大器來分別感應該些輸入值群組的個別電流。由多個不同感應放大器所得到的讀取結果還要再進行加總,但這種加總可能會引起讀取錯誤,並要花費更多運算時間及/或功率消耗。Because the number of input values is limited, the current practice is to divide the input values into multiple input value groups and use multiple sense amplifiers to sense the individual currents of the input value groups. The reading results obtained by multiple different sense amplifiers must be summed up, but this summing up may cause reading errors and take more computing time and/or power consumption.
此外,以目前而言,主要有兩種架構來評估記憶體內計算(IN-MEMORY COMPUTING (IMC))結果,一種是電流加總(sum-of-current)架構,一種是電壓加總(sum-of-voltage)架構。In addition, currently, there are two main architectures for evaluating in-memory computing (IMC) results, one is the sum-of-current architecture, and the other is the sum-of-voltage architecture.
對於現有的電流加總架構,如果輸入值數量太多的話,加總電流可能會太高,所以需要降低各晶胞電流或需要有特別設計的感應放大器。但這樣會額外增加設計複雜度。For the existing current summing architecture, if the number of input values is too large, the summed current may be too high, so it is necessary to reduce the current of each unit cell or require a specially designed inductive amplifier. However, this will increase the design complexity.
對於現有的電壓加總架構,各運算記憶胞的阻值必需低才能提高感應電流,來降低本體效應(body effect)。For the existing voltage summing architecture, the resistance of each computational memory cell must be low in order to increase the induced current and reduce the body effect.
此外,在記憶體裝置內,各記憶體串的權重值分佈可能不是均勻的,而這樣可能會降低神經網路計算的線性度(linearity)。In addition, within a memory device, the weight values of each memory string may not be evenly distributed, which may reduce the linearity of the neural network calculation.
故而,目前需要有一種記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置及記憶體內計算方法,以期能改善目前做法的缺點。Therefore, there is a need for an in-memory computing (IMC) memory device and an in-memory computing method to improve the shortcomings of the current approach.
根據本案一方面,提出一種記憶體內計算(IMC)記憶體裝置,包括:一記憶體控制電路,以及一記憶體陣列,耦接至該記憶體控制電路。該記憶體陣列包括:複數個運算記憶胞與複數個平衡運算記憶胞,組成複數個記憶串,該些運算記憶胞儲存複數個權重值;一負載電容,耦接至該些運算記憶胞;以及一量測電路,耦接至該負載電容。其中,於進行程式化時,該記憶體控制電路依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數。其中,於進行運算時,複數個輸入電壓分別輸入至該些運算記憶胞,該些輸入電壓有關於複數個輸入值,該記憶體控制電路根據該些輸入值而設定該些輸入電壓;複數個平衡輸入電壓分別輸入至該些平衡運算記憶胞,該些平衡輸入電壓有關於複數個平衡輸入值,該些平衡輸入值為一致能輸入值,該記憶體控制電路根據該些平衡輸入值而設定該些平衡輸入電壓;該些運算記憶胞之複數個有效阻抗值有關於該些輸入電壓與該些權重值;當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流;由該些記憶串所產生該些記憶串電流對該負載電容充電;該量測電路量測該負載電容之一電容電壓;以及,根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。According to one aspect of the present invention, an in-memory computing (IMC) memory device is provided, comprising: a memory control circuit, and a memory array coupled to the memory control circuit. The memory array comprises: a plurality of computational memory cells and a plurality of balanced computational memory cells, forming a plurality of memory strings, wherein the computational memory cells store a plurality of weight values; a load capacitor coupled to the computational memory cells; and a measurement circuit coupled to the load capacitor. During programming, the memory control circuit determines the number of first impedance states of the balanced computational memory cells in the memory string according to the number of first impedance states of the computational memory cells in the memory string. When performing calculations, a plurality of input voltages are input to the calculation memory cells respectively, the input voltages are related to a plurality of input values, and the memory control circuit sets the input voltages according to the input values; a plurality of balanced input voltages are input to the balanced calculation memory cells respectively, the balanced input voltages are related to a plurality of balanced input values, the balanced input values are consistent input values, and the memory control circuit sets the balanced input voltages according to the balanced input values; a plurality of valid The impedance value is related to the input voltages and the weight values; when a read voltage is applied to the computational memory cells, the computational memory cells generate a plurality of memory cell currents, and the memory cell currents form a plurality of memory string currents; the memory string currents generated by the memory strings charge the load capacitor; the measuring circuit measures a capacitor voltage of the load capacitor; and, based on a relationship among the capacitor voltage of the load capacitor, at least a delay time and a predetermined voltage, a computation result of the input values and the weight values is determined.
根據本案另一方面,提出一種記憶體內計算方法,應用於一記憶體內計算記憶體裝置,該記憶體內計算記憶體裝置包括組成複數個記憶串的複數個運算記憶胞與複數個平衡運算記憶胞。該記憶體內計算方法包括:於進行程式化時,依據該記憶串內的該些運算記憶胞的一第一阻抗狀態個數而決定該記憶串的該些平衡運算記憶胞的一第一阻抗狀態個數;儲存複數個權重值於複數個運算記憶胞,該些運算記憶胞組成複數個記憶串;分別輸入複數個輸入電壓至該些運算記憶胞,該些輸入電壓有關於複數個輸入值,該些運算記憶胞之複數個有效阻抗值有關於該些輸入電壓與該些權重值;分別輸入複數個平衡輸入電壓至該些平衡運算記憶胞,該些平衡輸入電壓有關於複數個平衡輸入值,該些平衡輸入值為一致能輸入值,根據該些平衡輸入值而設定該些平衡輸入電壓;當一讀取電壓施加至該些運算記憶胞時,該些運算記憶胞產生複數個記憶胞電流,該些記憶胞電流形成複數個記憶串電流;由該些記憶串所產生該些記憶串電流對該負載電容充電;量測該負載電容之一電容電壓;以及根據該負載電容之該電容電壓、至少一延遲時間與一既定電壓間之一關係,決定該些輸入值與該些權重值之一運算結果。According to another aspect of the present invention, an in-memory computing method is proposed and applied to an in-memory computing memory device, wherein the in-memory computing memory device includes a plurality of computing memory cells and a plurality of balancing computing memory cells constituting a plurality of memory strings. The in-memory calculation method includes: during programming, determining the number of first impedance states of the balanced computing memory cells in the memory string according to the number of first impedance states of the computing memory cells in the memory string; storing a plurality of weight values in a plurality of computing memory cells, the computing memory cells forming a plurality of memory strings; inputting a plurality of input voltages to the computing memory cells respectively, the input voltages being related to a plurality of input values, the plurality of effective impedance values of the computing memory cells being related to the input voltages and the weight values; inputting a plurality of balanced input voltages to the balanced computing memory cells respectively, the The balanced input voltage is related to a plurality of balanced input values, which are consistent input values, and the balanced input voltages are set according to the balanced input values; when a read voltage is applied to the computational memory cells, the computational memory cells generate a plurality of memory cell currents, and the memory cell currents form a plurality of memory string currents; the memory string currents generated by the memory strings charge the load capacitor; a capacitor voltage of the load capacitor is measured; and a computation result of the input values and the weight values is determined according to a relationship between the capacitor voltage of the load capacitor, at least a delay time and a predetermined voltage.
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:In order to better understand the above and other aspects of the present invention, the following embodiments are specifically described in detail with reference to the accompanying drawings:
本說明書的技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。本揭露之各個實施例分別具有一或多個技術特徵。在可能實施的前提下,本技術領域具有通常知識者可選擇性地實施任一實施例中部分或全部的技術特徵,或者選擇性地將這些實施例中部分或全部的技術特徵加以組合。The technical terms in this specification refer to the customary terms in this technical field. If this specification explains or defines some terms, the interpretation of these terms shall be subject to the explanation or definition in this specification. Each embodiment of the present disclosure has one or more technical features. Under the premise of possible implementation, a person with ordinary knowledge in this technical field can selectively implement part or all of the technical features in any embodiment, or selectively combine part or all of the technical features in these embodiments.
第1圖繪示根據本案一實施例的記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置之功能方塊圖。根據本案一實施例的記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置10包括:記憶體控制電路20、字元線驅動電路30、位元線驅動電路40與記憶體陣列100。記憶體控制電路20用以控制字元線驅動電路30與位元線驅動電路40以輸出字元線驅動電壓與位元線驅動電路至記憶體陣列100。記憶體控制電路20、字元線驅動電路30與位元線驅動電路40的操作與架構在此可不特別限定之。FIG. 1 shows a functional block diagram of an in-memory computing (IMC) memory device according to an embodiment of the present invention. The in-memory computing (IMC) memory device 10 according to an embodiment of the present invention includes a
第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。FIG. 2 shows a structural diagram of a
此些運算記憶胞C11~Cmn設置排列為n個縱向行及m個橫向列以執行記憶體內運算(in-memory computing,IMC)。該些平衡運算記憶胞BC11~BCpn設置排列為n個縱向行及p個橫向列以改善根據本案一實施例的記憶體內計算(IMC)記憶體裝置在執行記憶體內運算時的效能。The computing memory cells C11-Cmn are arranged in n vertical rows and m horizontal columns to perform in-memory computing (IMC). The balanced computing memory cells BC11-BCpn are arranged in n vertical rows and p horizontal columns to improve the performance of the in-memory computing (IMC) memory device according to an embodiment of the present invention when performing in-memory computing.
每一個縱向行的運算記憶胞與平衡運算記憶胞可形成記憶串S1~Sn。記憶串S1包括運算記憶胞C11、C21、…、Cm1,平衡運算記憶胞BC11、…BCp1,與阻抗元件RS1。其餘可依此類推。The computing memory cells and the balanced computing memory cells in each vertical row can form memory strings S1 to Sn. The memory string S1 includes computing memory cells C11, C21, ..., Cm1, balanced computing memory cells BC11, ... BCp1, and impedance element RS1. The rest can be deduced in the same way.
該些運算記憶胞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。The computing memory cells C11 to Cmn receive input voltages V11 to Vmn, respectively. Specifically, the computing memory cells C11, C21, ..., Cm1 receive input voltages V11, V21, ..., Vm1, respectively; the computing memory cells C12, C22, ..., Cm2 receive input voltages V12, V22, ..., Vm2, respectively. The input voltages V11 to Vmn are related to a plurality of input values IN11 to INmn. The
該些運算記憶胞C11~Cmn儲存複數個權重值W11~Wmn。The computational memory cells C11~Cmn store a plurality of weight values 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即可。此皆在本案精神範圍內。The balanced computing memory cells BC11~BCpn receive balanced input voltages BV1~BVp respectively. Specifically, the balanced computing memory cells BC11, BC12...BC1n all receive balanced input voltage BV1, and the rest can be deduced accordingly. The input voltages BV1~BVp are related to a plurality of balanced input values BIN1~BINp. The
該些記憶串S1~Sn則為並聯。由並聯的該些記憶串S1~Sn所產生的該些記憶串電流I1~In則充電該負載電容C。The memory strings S1-Sn are connected in parallel. The memory string currents I1-In generated by the memory strings S1-Sn connected in parallel charge the load capacitor C.
此外,阻抗元件RS1~RSn為選擇性元件。In addition, the impedance elements RS1-RSn are selective elements.
在本案一實施例中,該些運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn可被程式化為高阻抗狀態或低阻抗狀態。In an embodiment of the present case, the computing memory cells C11-Cmn and the balanced computing memory cells BC11-BCpn can be programmed to be in a high impedance state or a low impedance state.
在本案一實施例中,於程式化(program)階段中,依據根據本案一實施例的記憶體內計算記憶體裝置10所要執行的IMC計算,來程式化該些記憶串S1~Sn的該些運算記憶胞C11~Cmn(亦即,將該些記憶串S1~Sn的該些運算記憶胞C11~Cmn程式化為高阻抗狀態或低阻抗狀態)。In an embodiment of the present case, in the programming stage, the operation memory cells C11~Cmn of the memory strings S1~Sn are programmed according to the IMC calculation to be executed by the in-memory computing memory device 10 according to an embodiment of the present case (that is, the operation memory cells C11~Cmn of the memory strings S1~Sn are programmed to a high impedance state or a low impedance state).
至於在程式化階段中,該些平衡運算記憶胞BC11~BCpn要被程式化為高阻抗狀態或低阻抗狀態則是依據同一記憶串S1~Sn內的該些運算記憶胞C11~Cmn的高阻抗狀態個數而決定。也就是說,在程式化階段中,該記憶體控制電路20依據同一記憶串S1~Sn內的該些運算記憶胞C11~Cmn的高阻抗狀態個數而決定該些平衡運算記憶胞BC11~BCpn的高阻抗狀態個數。As for the programming stage, whether the balanced computing memory cells BC11-BCpn are programmed to a high impedance state or a low impedance state is determined according to the number of high impedance states of the computing memory cells C11-Cmn in the same memory string S1-Sn. That is, in the programming stage, the
細言之,以p=3為例做說明,但當知本案並不受限於此。以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為0時(亦即該些運算記憶胞C11、C21、…、Cm1全被程式化為低阻抗狀態),則該些平衡運算記憶胞BC11、BC21與BC31皆被程式化為高阻抗狀態,亦即該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為3。Specifically, p=3 is used as an example for explanation, but it should be known that the present invention is not limited thereto. For memory string S1, when the number of high impedance states of the computational memory cells C11, C21, ..., Cm1 is 0 (i.e., the computational memory cells C11, C21, ..., Cm1 are all programmed to a low impedance state), the balanced computational memory cells BC11, BC21, and BC31 are all programmed to a high impedance state, i.e., the number of high impedance states of the balanced computational memory cells BC11, BC21, and BC31 is 3.
相似地,以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為1時,則該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為2。Similarly, for the memory string S1, when the number of high impedance states of the computing memory cells C11, C21, . . . , Cm1 is 1, the number of high impedance states of the balanced computing memory cells BC11, BC21 and BC31 is 2.
相似地,以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為2時,則該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為1。Similarly, for the memory string S1, when the number of high impedance states of the computing memory cells C11, C21, . . . , Cm1 is 2, the number of high impedance states of the balanced computing memory cells BC11, BC21 and BC31 is 1.
相似地,以記憶串S1而言,當該些運算記憶胞C11、C21、…、Cm1的高阻抗狀態個數為3或以上時,則該些平衡運算記憶胞BC11、BC21與BC31的高阻抗狀態個數為0。Similarly, for the memory string S1, when the number of high impedance states of the computing memory cells C11, C21, . . . , Cm1 is 3 or more, the number of high impedance states of the balanced computing memory cells BC11, BC21 and BC31 is 0.
此外,於進行IMC計算時,平衡輸入值BIN1~BINp則為位元1(致能位元),以使得該些平衡運算記憶胞BC11~BCpn的電阻值可以貢獻於該些記憶串。In addition, when performing IMC calculation, the balanced input values BIN1-BINp are bit 1 (enable bit), so that the resistance values of the balanced operation memory cells BC11-BCpn can contribute to the memory strings.
故而,在本案一實施例中,當在各記憶串內設置愈多的平衡運算記憶胞時,於程式化階段中,可依上述方式來決定各記憶串的該些平衡運算記憶胞的高阻抗狀態個數。Therefore, in an embodiment of the present case, when more balanced computing memory cells are set in each memory string, the number of high impedance states of the balanced computing memory cells in each memory string can be determined according to the above method in the programming stage.
亦即,在本案一實施例中,在各該些記憶串內,當該些運算記憶胞的高阻抗狀態個數為較少時,則該些平衡運算記憶胞的高阻抗狀態個數會較多;以及,在各該些記憶串內,當該些運算記憶胞的高阻抗狀態個數為較多時,則該些平衡運算記憶胞的高阻抗狀態個數會較少。藉此可以改善該些記憶串的快速充電行為。That is, in one embodiment of the present case, in each of the memory strings, when the number of high impedance states of the computational memory cells is small, the number of high impedance states of the balanced computational memory cells will be large; and, in each of the memory strings, when the number of high impedance states of the computational memory cells is large, the number of high impedance states of the balanced computational memory cells will be small. This can improve the fast charging behavior of the memory strings.
在本案一實施例中,於進行IMC運算(如乘積和(multiply-and-accumulation (MAC))時,會施加讀取電壓Vread至該記憶體裝置10的該些運算記憶胞C11~Cmn之一端,使得該些運算記憶胞C11~Cmn會產生複數個晶胞電流。同一個記憶串的該些運算記憶胞所產生的晶胞電流會加總,以成為記憶串電流I1~In。In an embodiment of the present case, when performing an IMC operation (such as multiply-and-accumulation (MAC)), a read voltage Vread is applied to one end of the operation memory cells C11-Cmn of the memory device 10, so that the operation memory cells C11-Cmn will generate a plurality of cell currents. The cell currents generated by the operation memory cells of the same memory string are summed to become the memory string currents I1-In.
在本案一實施例中,於進行IMC操作時,施加讀取電壓Vread至該記憶體裝置10的該些運算記憶胞C11~Cmn之一端(例如但不受限於,為汲極端),以及,測量負載電容C的電容電壓VC,以測量出負載電容C被充電至一既定電壓的充電時間(亦可稱為延遲時間)。為方便定義,將施加讀取電壓Vread之時間點稱為第一時間點,而將測量到負載電容C的電容電壓VC被充電至該既定電壓之一時間點稱為第二時間點,則在本案一實施例中,延遲時間乃是定義為:從第一時間點到第二時間點。負載電容C的電容電壓VC可由量測電路120加以量測,以量測出負載電容C的延遲時間。In an embodiment of the present case, when performing an IMC operation, a read voltage Vread is applied to one end (for example but not limited to, a drain end) of the computational memory cells C11-Cmn of the memory device 10, and a capacitance voltage VC of the load capacitor C is measured to measure the charging time (also referred to as a delay time) for the load capacitor C to be charged to a predetermined voltage. For the convenience of definition, the time point at which the read voltage Vread is applied is referred to as a first time point, and the time point at which the capacitance voltage VC of the load capacitor C is measured to be charged to the predetermined voltage is referred to as a second time point. In an embodiment of the present case, the delay time is defined as: from the first time point to the second time point. The capacitance voltage VC of the load capacitor C can be measured by the measuring
在本案一實施例中,記憶串Si(i=1~n)之記憶串電阻值Ri(i=1~n)可表示如下: 。 In an embodiment of the present case, the memory string resistance Ri (i=1~n) of the memory string Si (i=1~n) can be expressed as follows: .
其中,i代表記憶串編號,k代表該運算記憶胞在該記憶串之編號,一個記憶串有m個運算記憶胞。Here, i represents the memory string number, k represents the number of the operation memory cell in the memory string, and a memory string has m operation memory cells.
所以,記憶串Si之記憶串電流Ii可表示如下: 。 Therefore, the memory string current Ii of the memory string Si can be expressed as follows: .
運算記憶胞之權重值W11~Wmn是輸入值IN11~INmn的函數,所以,權重值Wki可以表示為運算記憶胞之阻抗值Wki= 。 The weight values W11~Wmn of the computational memory cell are functions of the input values IN11~INmn, so the weight value Wki can be expressed as the impedance value Wki of the computational memory cell = .
在本案一實施例中,負載電容C被充電至該既定電壓的充電時間可用於代表該些運算記憶胞C11~Cmn的該些權重值W11~Wmn與該些輸入值IN11~INmn之乘積和(sum of product)。這是因為,在本案一實施例中,該些運算記憶胞C11~Cmn的該些權重值與該些輸入值IN11~INmn之乘積和(sum of product)乃是一總電流Itotal。Itotal可表示如下: 。 In an embodiment of the present case, the charging time of the load capacitor C to be charged to the predetermined voltage can be used to represent the sum of products of the weight values W11~Wmn and the input values IN11~INmn of the computational memory cells C11~Cmn. This is because, in an embodiment of the present case, the sum of products of the weight values and the input values IN11~INmn of the computational memory cells C11~Cmn is a total current Itotal. Itotal can be expressed as follows: .
此總電流Itotal乃是對負載電容C進行充電,故而,負載電容C的電容電壓VC被充電至該既定電壓之時間點有關於負載電容C之電容值與總電流Itotal,而在本案一實施例中,負載電容C之電容值乃是已知。故而,可以得知,在本案一實施例中,負載電容C的電容電壓VC被充電至該既定電壓之時間點可視為負相關於總電流Itotal,亦即,當總電流Itotal愈大時,負載電容C的電容電壓VC被充電至該既定電壓之時間點愈短,而當總電流Itotal愈小時,負載電容C的電容電壓VC被充電至該既定電壓之時間點愈長。This total current Itotal is used to charge the load capacitor C. Therefore, the time point when the capacitance voltage VC of the load capacitor C is charged to the predetermined voltage is related to the capacitance value of the load capacitor C and the total current Itotal. In one embodiment of the present case, the capacitance value of the load capacitor C is known. Therefore, it can be known that in one embodiment of the present case, the time point when the capacitance voltage VC of the load capacitor C is charged to the predetermined voltage can be regarded as negatively related to the total current Itotal, that is, when the total current Itotal is larger, the time point when the capacitance voltage VC of the load capacitor C is charged to the predetermined voltage is shorter, and when the total current Itotal is smaller, the time point when the capacitance voltage VC of the load capacitor C is charged to the predetermined voltage is longer.
故而,在本案一實施例中,可以先行找出在既定情況下,負載電容C被充電至該既定電壓的延遲時間與該些運算記憶胞C11~Cmn的該些權重值與該些輸入值IN11~INmn之乘積和之間的一既定關係。於後續的IMC運算時,則可以藉由測量出延遲時間來轉換得到該些運算記憶胞C11~Cmn的該些權重值與該些輸入值IN11~INmn之乘積和。Therefore, in an embodiment of the present case, a predetermined relationship between the delay time for the load capacitor C to be charged to the predetermined voltage and the sum of the products of the weight values of the computational memory cells C11-Cmn and the input values IN11-INmn under a predetermined condition can be found in advance. In the subsequent IMC operation, the sum of the products of the weight values of the computational memory cells C11-Cmn and the input values IN11-INmn can be obtained by measuring the delay time.
此外,在本案一實施例中,當運算記憶胞之權重值及/或輸入值改變時,運算記憶胞之有效阻抗值也隨之改變。這將導致不同的延遲時間(充電時間)。In addition, in one embodiment of the present case, when the weight value and/or input value of the computational memory cell changes, the effective impedance value of the computational memory cell also changes accordingly, which will result in different delay times (charging times).
第3A圖與第3B圖顯示根據本案一實施例之測量延遲時間之示意圖。在第3A圖與第3B圖中,eRS1、eRS2與eRS3代表該些記憶串S1~Sn之不同總有效阻抗值,其中,eRS1<eRS2<eRS3。FIG. 3A and FIG. 3B are schematic diagrams showing a delay time measurement according to an embodiment of the present invention. In FIG. 3A and FIG. 3B, eRS1, eRS2 and eRS3 represent different total effective impedance values of the memory strings S1-Sn, wherein eRS1<eRS2<eRS3.
在第3A圖中,該延遲時間為,從施加該讀取電壓之一第一時間點到該負載電容的該電容電壓被充電至一既定電壓之一第二時間點,該既定電壓是根據該讀取電壓而決定。例如但不受限於,該既定電壓可以是該讀取電壓的0.7倍。In FIG. 3A , the delay time is from a first time point when the read voltage is applied to a second time point when the capacitor voltage of the load capacitor is charged to a predetermined voltage, and the predetermined voltage is determined according to the read voltage. For example, but not limited to, the predetermined voltage may be 0.7 times the read voltage.
在第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。其餘可依此類推。In FIG. 3A , when the different total effective impedance values of the memory strings S1 to Sn are eRS1, at time T1, the load capacitor C is charged to a predetermined voltage, so the delay time T1 represents that the sum of the products of the weight values W11 to Wmn and the input values IN11 to INmn is 001. Similarly, when the different total effective impedance values of the memory strings S1 to Sn are eRS2, at time T2, the load capacitor C is charged to a predetermined voltage, so the delay time T2 represents that the sum of the products of the weight values W11 to Wmn and the input values IN11 to INmn is 010. Similarly, when the different total effective impedance values of the memory strings S1-Sn are eRS3, at time T3, the load capacitor C is charged to a predetermined voltage, so the delay time T3 represents that the sum of the products of the weight values W11-Wmn and the input values IN11-INmn is 011. The rest can be deduced in the same way.
此外,於本案另一實施例中,可選擇複數個既定延遲時間,於該些既定延遲時間處,比較電容電壓VC與參考電壓VREF,比較結果代表該些輸入值與該些權重值之運算結果(乘積和),如第3B圖所示。亦即,選擇數個既定延遲時間(t0~t3),於該些既定延遲時間處,檢查電容電壓VC是否到達既定電壓VREF,以決定該些輸入值與該些權重值之運算結果(乘積和)。如果在延遲時間t0處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為000;如果在延遲時間t1處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為001;其餘可依此類推。In addition, in another embodiment of the present invention, a plurality of predetermined delay times can be selected, and at these predetermined delay times, the capacitor voltage VC is compared with the reference voltage VREF, and the comparison result represents the operation result (sum of products) of the input values and the weight values, as shown in FIG. 3B. That is, a plurality of predetermined delay times (t0-t3) are selected, and at these predetermined delay times, it is checked whether the capacitor voltage VC reaches the predetermined voltage VREF to determine the operation result (sum of products) of the input values and the weight values. If the capacitor voltage VC reaches a predetermined voltage at the delay time t0, the calculation result (sum of products) of the input values and the weight values is determined to be 000; if the capacitor voltage VC reaches a predetermined voltage at the delay time t1, the calculation result (sum of products) of the input values and the weight values is determined to be 001; and the rest can be deduced in the same way.
於第3B圖中,當該些記憶串S1~Sn之不同總有效阻抗值為eRS1時,在延遲時間t1處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為001。同樣地,當該些記憶串S1~Sn之不同總有效阻抗值為eRS2時,在延遲時間t1處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為001。當該些記憶串S1~Sn之不同總有效阻抗值為eRS3時,在延遲時間t3處,電容電壓VC到達既定電壓,則決定該些輸入值與該些權重值之運算結果(乘積和)為011。In FIG. 3B , when the different total effective impedance values of the memory strings S1 to Sn are eRS1, at the delay time t1, the capacitor voltage VC reaches a predetermined voltage, and the calculation results (sum of products) of the input values and the weight values are determined to be 001. Similarly, when the different total effective impedance values of the memory strings S1 to Sn are eRS2, at the delay time t1, the capacitor voltage VC reaches a predetermined voltage, and the calculation results (sum of products) of the input values and the weight values are determined to be 001. When the different total effective impedance values of the memory strings S1-Sn are eRS3, at the delay time t3, the capacitor voltage VC reaches a predetermined voltage, and the calculation results (sum of products) of the input values and the weight values are determined to be 011.
現將說明根據本案一實施例的運算記憶胞的不同例子。Different examples of computational memory cells according to an embodiment of the present invention will now be described.
第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。FIG. 4A is a circuit diagram of a computational memory cell C(a)mn of an embodiment of the present invention. The computational memory cell C(a)mn can be used to implement the computational memory cells C11~Cmn and the balanced computational memory cells BC11~BCpn of the
電晶體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」。The transistor TRmn is, for example, a floating gate transistor. The transistor TRmn has a threshold voltage Vt, and a programming voltage can be applied to adjust the voltage value of the threshold voltage Vt. When the transistor TRmn is in an erase state, the voltage value of the threshold voltage Vt is a first threshold voltage value VtL. When the transistor TRmn is in a programming state, the voltage value of the threshold voltage Vt can be programmed to a second threshold voltage value VtH. The second threshold voltage value VtH is greater than the first threshold voltage value VtL. The first critical voltage value VtL is, for example, 0.4V, and the second critical voltage value VtH is, for example, 4.8V. Furthermore, the critical voltage Vt corresponds to a weight value Wmn stored in the computational memory cell C(a)mn. When the critical voltage Vt is the first critical voltage value VtL, the weight value Wmn stored in the computational memory cell C(a)mn is "0". When the critical voltage Vt is the second critical voltage value VtH, the weight value Wmn stored in the computational memory cell C(a)mn is "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。The gate g of the transistor TRmn receives the input voltage Vmn. The input voltage Vmn corresponds to the input value INmn received by the computational memory cell C(a)mn. When the voltage value of the input voltage Vmn is the first input voltage value VL, the corresponding input value INmn is "1". When the voltage value of the input voltage Vmn is the second input voltage value VH, the corresponding input value INmn is "0". The second input voltage value VH is greater than the first input voltage value VL. The second input voltage value VH is, for example, 3V. The first input voltage value VL is, for example, -1V. Furthermore, the second input voltage value VH is greater than the second critical voltage value VtH and the first critical voltage value VtL. Furthermore, the first input voltage value VL is less than the second critical voltage value VtH and greater than the first critical voltage value VtL.
運算記憶胞C(a)mn可經由位元線BLn接收讀取電壓Vread,以產生晶胞電流Imn。在運作上,因應於不同電壓值的輸入電壓Vmn及臨界電壓Vt,運算記憶胞C(a)mn可產生或不產生晶胞電流Imn。The computational memory cell C(a)mn can receive a read voltage Vread via a bit line BLn to generate a cell current Imn. In operation, the computational memory cell C(a)mn may or may not generate a cell current Imn in response to different voltage values of the input voltage Vmn and the critical voltage Vt.
當運算記憶胞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。When the input voltage Vmn received by the computational memory cell C(a)mn is the second input voltage value VH, and the critical voltage Vt of the transistor TRmn is the first critical voltage value VtL or the second critical voltage value VtH, since the input voltage Vmn is greater than the critical voltage Vt, the transistor TRmn is turned-on (i.e., conductive), and thus the computational memory cell C(a)mn can generate a cell current Imn. In this case, the equivalent impedance of the computational memory cell C(a)mn is the equivalent resistance value Rtr of the transistor TRmn itself connected in parallel with the resistor R(a)mn. In one example, the resistance value of the resistor R(a)mn is much larger than the equivalent resistance value Rtr of the transistor TRmn, so the equivalent impedance of the computing memory cell C(a)mn is substantially equal to the equivalent resistance value Rtr of the transistor TRmn.
另一方面,當運算記憶胞C(a)mn接收的輸入電壓Vmn為第一輸入電壓值VL、且電晶體TRmn的臨界電壓Vt為第一臨界電壓值VtL時,由於輸入電壓Vmn大於臨界電壓Vt,因此電晶體TRmn為開啟狀態,故而,運算記憶胞C(a)mn可產生晶胞電流Imn。在此狀況下,運算記憶胞C(a)mn的等效阻抗大致相等於電晶體TRmn的等效電阻值Rtr。On the other hand, when the input voltage Vmn received by the computational memory cell C(a)mn is the first input voltage value VL and the critical voltage Vt of the transistor TRmn is the first critical voltage value VtL, since the input voltage Vmn is greater than the critical voltage Vt, the transistor TRmn is in the on state, and therefore, the computational memory cell C(a)mn can generate a cell current Imn. In this case, the equivalent impedance of the computational memory cell C(a)mn is substantially equal to the equivalent resistance value Rtr of the transistor TRmn.
再者,當運算記憶胞C(a)mn接收的輸入電壓Vmn為第一輸入電壓值VL、且電晶體TRmn的臨界電壓Vt為第二臨界電壓值VtH時,由於輸入電壓Vmn小於臨界電壓Vt,因此電晶體TRmn為關閉狀態(turned-off) (即,斷路狀態),故而,運算記憶胞C(a)mn不產生晶胞電流Imn。在此狀況下,運算記憶胞C(a)mn的等效阻抗大致相等於電阻R(a)mn。Furthermore, when the input voltage Vmn received by the computational memory cell C(a)mn is the first input voltage value VL and the critical voltage Vt of the transistor TRmn is the second critical voltage value VtH, since the input voltage Vmn is less than the critical voltage Vt, the transistor TRmn is turned-off (i.e., open circuit state), and therefore, the computational memory cell C(a)mn does not generate the cell current Imn. In this case, the equivalent impedance of the computational memory cell C(a)mn is substantially equal to the resistor R(a)mn.
根據上述的運算記憶胞C(a)mn的運作方式,表1所示為運算記憶胞C(a)mn是否產生晶胞電流Imn對應於輸入值INmn及權重值Wmn的真值表(truth table)。
表1
參見表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的乘積。Referring to Table 1, when the input value INmn is "0" and the weight value Wmn is "0" or "1", the computational memory cell C(a)mn generates a cell current Imn. When the input value INmn is "1" and the weight value Wmn is "0", the computational memory cell C(a)mn generates a cell current Imn. When the input value INmn is "1" and the weight value Wmn is "1", the computational memory cell C(a)mn generates a smaller cell current Imn. Accordingly, the computational memory cell C(a)mn can perform a product operation of the input value INmn and the weight value Wmn, and the cell current Imn generated by the computational memory cell C(a)mn is related to the product of the input value INmn and the weight value 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是一般電晶體。FIG. 4B is a circuit diagram of a computing memory cell C(c)mn of another embodiment of the present invention. The computing memory cell C(c)mn can be used to implement the computing memory cells C11~Cmn and the balanced computing memory cells BC11~BCpn of the
電阻R(c)mn可例如調整為四個電阻值R0、R1、R2、R3,其中電阻值R0趨近於零,電阻值R0遠小於電阻值R1、R2、R3。並且,運算記憶胞C(c)mn的電晶體TRmn的等效電阻值Rtr亦遠小於電阻值R1、R2及R3。The resistor R(c)mn can be adjusted to four resistance values R0, R1, R2, and R3, for example, wherein the resistance value R0 approaches zero and is much smaller than the resistance values R1, R2, and R3. Furthermore, the equivalent resistance value Rtr of the transistor TRmn of the computing memory cell C(c)mn is also much smaller than the resistance values R1, R2, and R3.
當運算記憶胞C(c)mn儲存的權重值Wmn為「0」時,電阻R(c)mn調整為電阻值R0。類似的,當運算記憶胞C(c)mn儲存的權重值Wmn為「1」、「2」、「3」時,電阻R(c)mn調整為電阻值R1、R2、R3。When the weight value Wmn stored in the computational memory cell C(c)mn is "0", the resistor R(c)mn is adjusted to the resistance value R0. Similarly, when the weight value Wmn stored in the computational memory cell C(c)mn is "1", "2", or "3", the resistor R(c)mn is adjusted to the resistance values R1, R2, or 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。When the input value INmn is "0", the input voltage Vmn is the second input voltage value VH of the high voltage value, the transistor TRmn is in the on state, the equivalent impedance of the computing cell C(c)mn is substantially equal to the equivalent resistance value Rtr of the transistor TRmn itself, and the computing cell C(c)mn generates a cell current Imn. In this case, regardless of whether the weight value Wmn is set to "0", "1", "2" or "3" (i.e., regardless of whether the resistor R(c)mn is adjusted to the resistance value R0, R1, R2 or R3), the computing cell C(c)mn generates a cell current 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的乘積。On the other hand, when the input value INmn is "1", the input voltage Vmn is the first input voltage value VL of the low voltage value, the transistor TRmn is in the off state, and the calculation memory cell C(c)mn does not generate the cell current Imn. When the weight value Wmn is set to "0", "1", "2", "3", the resistor R(c)mn is adjusted to the resistance value R0, R1, R2, R3, and the cell current Imn generated by the calculation memory cell C(c)mn is related to the resistance value R0, R1, R2, R3. Accordingly, the computational memory cell C(c)mn can perform a multiplication operation, where the cell current Imn generated by the computational memory cell C(c)mn is related to the product of the input value INmn and the weight value 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的臨界電壓而決定。FIG. 4C is a circuit diagram of a computing memory cell C(d)mn of another embodiment of the present invention. The computing memory cell C(d)mn can be used to implement the computing memory cells C11~Cmn and the balancing computing memory cells BC11~BCpn of the
在本案其他可能實施例中,運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn也可以有其他可能實現架構,例如但不受限於,(1)運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn可以包括多工器及多個電阻;(2)運算記憶胞C11~Cmn與該些平衡運算記憶胞BC11~BCpn可以包括多個開關元件及多個電阻。In other possible embodiments of the present invention, the computing memory cells C11~Cmn and the balanced computing memory cells BC11~BCpn may also have other possible implementation architectures, such as but not limited to, (1) the computing memory cells C11~Cmn and the balanced computing memory cells BC11~BCpn may include a multiplexer and a plurality of resistors; (2) the computing memory cells C11~Cmn and the balanced computing memory cells BC11~BCpn may include a plurality of switch elements and a plurality of resistors.
根據上述之本案不同實施例,運算記憶胞與該些平衡運算記憶胞由一或多個電晶體及/或電阻組成。可調整電晶體的臨界電壓以改變運算記憶胞儲存的權重值,並根據權重值將電阻調整為高電阻值、低電阻值或不同比例的電阻值。並且,根據輸入值對應的輸入電壓控制運算記憶胞操作於「導通狀態」或「斷路狀態」,據此控制讀取電壓選擇性施加至電晶體或電阻,使運算記憶胞產生對應的晶胞電流以表示輸出值。輸出值表示輸入值與權重值的乘積運算的結果,並可加總得到乘積的總和。此外,運算記憶胞亦可包括多工器。藉由多工器的運作,使讀取電壓選擇性施加被選擇路徑上的電阻,使運算記憶胞執行輸入值與權重值的邏輯運算,或兩個位元的輸入值之間的邏輯運算。According to the above-mentioned different embodiments of the present case, the computational memory cells and the balanced computational memory cells are composed of one or more transistors and/or resistors. The critical voltage of the transistor can be adjusted to change the weight value stored in the computational memory cell, and the resistor can be adjusted to a high resistance value, a low resistance value or a resistance value of different proportions according to the weight value. In addition, the computational memory cell is controlled to operate in a "conduction state" or "open circuit state" according to the input voltage corresponding to the input value, and the read voltage is selectively applied to the transistor or resistor accordingly, so that the computational memory cell generates a corresponding cell current to represent the output value. The output value represents the result of the product operation of the input value and the weight value, and the sum of the products can be added up. In addition, the computational memory cell may also include a multiplexer. Through the operation of the multiplexer, the read voltage is selectively applied to the resistor on the selected path, so that the computational memory cell performs a logical operation of the input value and the weight value, or a logical operation between two-bit input values.
第5A圖至第5C圖顯示根據本案一實施例的模擬圖。第5A圖至第5C圖中,乃是模擬,當記憶體陣列100有32個記憶串,且各記憶串有32個運算記憶胞的情況。該些運算記憶胞與該些平衡運算記憶胞的高電阻是555K歐姆,而該些運算記憶胞與該些平衡運算記憶胞的低電阻是13.5K歐姆。負載電容C的電容值CL為1.5pF。FIG. 5A to FIG. 5C show simulation diagrams according to an embodiment of the present invention. FIG. 5A to FIG. 5C are simulations of a case where the
在本案一實施例中,可以調整負載電容C的電容值CL,以調整延遲時間。在底下,以讀取電壓為0.5V,而負載電容C的電容電壓VC被充電至既定電壓為0.35V所需要的充電時間當成延遲時間為例做說明,但當知本案並不受限於此。亦即,在此例中,當負載電容C的電容電壓VC達到讀取電壓的0.7倍時,則視為記憶體裝置10已產生MAC(乘積和)結果。In an embodiment of the present case, the capacitance value CL of the load capacitor C can be adjusted to adjust the delay time. In the following, the charging time required for the capacitance voltage VC of the load capacitor C to be charged to a predetermined voltage of 0.35V when the read voltage is 0.5V is used as an example for explanation, but it should be understood that the present case is not limited to this. That is, in this example, when the capacitance voltage VC of the load capacitor C reaches 0.7 times the read voltage, it is considered that the memory device 10 has generated a MAC (product sum) result.
第5A圖至第5C圖中,曲線510A代表,阻抗元件的電阻等於高電阻且在各記憶串有3個平衡運算記憶胞的情況。曲線510B代表,阻抗元件的電阻等於高電阻且在各記憶串沒有任何平衡運算記憶胞的情況。曲線510C代表,各記憶串沒有任何平衡運算記憶胞也沒有任何阻抗元件的情況。In FIGS. 5A to 5C ,
在第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]。In Figure 5A, the numbers of high-impedance states of the computational memory cells of the 32 memory strings are [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] respectively.
在第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]。In FIG. 5B , the numbers of high-impedance states of the computational memory cells of the 32 memory strings are [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] respectively.
在第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]。In Figure 5C, the numbers of high-impedance states of the computational memory cells of the 32 memory strings are [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)。As can be seen from FIG. 5A to FIG. 5C , in an embodiment of the present invention, the delay time is proportional to the sum of products. In an embodiment of the present invention, the function of the balanced computing memory cell is similar to an impedance element, which is used to limit the current to avoid the 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才會對應到乘積和結果。In addition, in an embodiment of the present case, since the balanced computation memory cell is introduced, when evaluating the IMC computation result (the sum of products), it is necessary to compensate for the influence of the balanced computation memory cell on the computation result. Taking the
在本案一實施例中,記憶體陣列的一部份運算記憶胞或許多部份運算記憶胞可定義為平衡運算記憶胞。而且,各記憶串包括相同數量“NBW”的平衡運算記憶胞與相同數量“m”的運算記憶胞。In one embodiment of the present case, a portion of the computing memory cells or a plurality of portions of the computing memory cells of the memory array can be defined as balanced computing memory cells. Moreover, each memory string includes the same number of "NBW" balanced computing memory cells and the same number of "m" computing memory cells.
在該記憶串中額外加入一個高阻抗狀態單元(高阻抗狀態單元可以是阻抗元件RS1~RSn或者平衡運算記憶胞所造成)的電流變化量將會是當該記憶串中沒有任何高阻抗狀態單元時的[(1⁄m)-(1⁄(m+1))]。例如,以下表來看,
例如,在各記憶串中,增加一個高阻抗狀態單元使電流變化量為5%,那麼在各記憶串中需要加入4個高阻抗狀態單元,所以,在本案一實施例中,可以為各記憶串分配3個平衡運算記憶胞與1個阻抗元件。For example, in each memory string, if a high impedance state unit is added to make the current change 5%, then 4 high impedance state units need to be added to each memory string. Therefore, in an embodiment of the present case, 3 balanced operation memory cells and 1 impedance element can be allocated to each memory string.
或者,如果需要較小的電流變化量,例如電流變化量為2%,那麼在各記憶串中需要加入7個高阻抗狀態單元,所以,在本案一實施例中,可以為各記憶串分配6個平衡運算記憶胞與1個阻抗元件。Alternatively, if a smaller current variation is required, for example, a current variation of 2%, then 7 high impedance state cells need to be added to each memory string. Therefore, in an embodiment of the present case, 6 balanced operation memory cells and 1 impedance element can be allocated to each memory string.
此外,於本案一實施例中,考慮到線性度、準確性、晶片面積使用等等,以及其他參數,可以進一步調整平衡運算記憶胞的數量。In addition, in one embodiment of the present invention, the number of balanced computing memory cells can be further adjusted taking into account linearity, accuracy, chip area usage, and other parameters.
在本案一實施例中,對於給定的神經網路模型,權重值和分佈是已知且可用於分配平衡運算記憶胞的值。配置平衡運算記憶胞的值有很多方法。例如,如果一記憶串的高阻抗狀態記憶胞的最小數量是“Nmin”,則可以將所有平衡運算記憶胞的輸入值設為“1”,並將這個記憶串的高阻抗單元數量增加為“Nmin + NBW”,以進一步限制電流。然後依此方式為其他記憶串分配平衡運算記憶胞的值,使每個記憶串的最小高阻抗單元數量為 “Nmin + NBW”。In one embodiment of the present case, for a given neural network model, the weight values and distribution are known and can be used to assign the values of the balanced computing memory cells. There are many ways to configure the values of the balanced computing memory cells. For example, if the minimum number of high-impedance state memory cells of a memory string is "Nmin", the input values of all balanced computing memory cells can be set to "1" and the number of high-impedance units of this memory string can be increased to "Nmin + NBW" to further limit the current. Then, the values of the balanced computing memory cells are assigned to other memory strings in this way so that the minimum number of high-impedance units of each memory string is "Nmin + NBW".
此外,於本案一實施例中,定義“Nbw,Max”為表示在感知器計算中值為 “1”的平衡運算記憶胞的數量。平衡運算記憶胞可能會影響感知器操作的充電時間。分配為 “1”的平衡運算記憶胞越多,充電時間越長,感測開銷(sensing overhead)越大。In addition, in one embodiment of the present case, "Nbw,Max" is defined to represent the number of balancing computing memory cells with a value of "1" in sensor calculation. The balancing computing memory cells may affect the charging time of sensor operation. The more balancing computing memory cells are assigned to "1", the longer the charging time and the greater the sensing overhead.
所以,在本案一實施例中,限制“Nbw,Max”的數量以減少感測開銷。例如,為將感測開銷限制為10%,可以計算出預估最大感知器輸出值(the estimated maximum perceptron output value),並將“Nbw,Max”定義為該預估最大感知器輸出值的1/10,例如預估最大感知器輸出值約為164,那麼“Nbw,Max”可以定義為16。或者,在本案一實施例中,可能會將 “Nbw,Max”定義為平衡運算記憶胞的總數量的大約一半。這取決於權重分佈。Therefore, in an embodiment of the present case, the number of "Nbw,Max" is limited to reduce the sensing overhead. For example, to limit the sensing overhead to 10%, the estimated maximum perceptron output value can be calculated, and "Nbw,Max" can be defined as 1/10 of the estimated maximum perceptron output value. For example, if the estimated maximum perceptron output value is about 164, then "Nbw,Max" can be defined as 16. Alternatively, in an embodiment of the present case, "Nbw,Max" may be defined as approximately half of the total number of balanced computational memory cells. This depends on the weight distribution.
在各記憶串中,平衡運算記憶胞的數量可以是1或多於1,每個記憶串都有相同數量的平衡運算記憶胞。In each memory string, the number of balanced operation memory cells can be 1 or more than 1, and each memory string has the same number of balanced operation memory cells.
平衡運算記憶胞的輸入值被設定為 “1”,以啟用平衡運算記憶胞對各記憶串的貢獻。The input value of the balance operation memory cell is set to "1" to enable the balance operation memory cell's contribution to each memory string.
平衡運算記憶胞的位置可以放在記憶串的起頭處、結尾處或其他位置。The location of the balance operation memory cell can be placed at the beginning, end or other position of the memory string.
平衡運算記憶胞的阻抗狀態取決於記憶體陣列的權重值分配。The impedance state of the balanced computation memory cell depends on the weight value distribution of the memory array.
在習知技術中,於進行IMC運算時,可能會出現快速充電行為(fast charging behavior)。快速充電行為是指,當同一記憶串的所有運算記憶胞都處於低阻抗狀態時或者是同一記憶串的只有少數運算記憶胞處於高阻抗狀態時,該同一記憶串的等效阻抗太低,使得該同一記憶串的電流過高,對負載電容C的充電電流過高,使得負載電容C的電位快速提升,進而導致誤判的可能性。In the prior art, when performing IMC operations, fast charging behavior may occur. Fast charging behavior means that when all computing memory cells of the same memory string are in a low impedance state or only a few computing memory cells of the same memory string are in a high impedance state, the equivalent impedance of the same memory string is too low, making the current of the same memory string too high, and the charging current of the load capacitor C is too high, causing the potential of the load capacitor C to rise rapidly, thereby leading to the possibility of misjudgment.
所以,在本案一實施例中,對該些記憶串S1~Sn額外增加該些平衡運算記憶胞BC11~BCpn及/或阻抗元件RS1~RSn,以增加該些記憶串S1~Sn的等效阻抗,以有效減少或避免快速充電行為。即便是當同一記憶串的所有運算記憶胞都處於低阻抗狀態時,由於額外增加該些平衡運算記憶胞BC11~BCpn及/或阻抗元件RS1~RSn(阻抗元件RS1~RSn的關係,該同一記憶串的等效阻抗仍不會太低,使得該同一記憶串的電流不會過高,對負載電容C的充電電流不會過高,使得負載電容C的電位不會快速提升,進而降低誤判的可能性。Therefore, in an embodiment of the present case, the memory strings S1~Sn are additionally provided with the balancing operation memory cells BC11~BCpn and/or impedance elements RS1~RSn to increase the equivalent impedance of the memory strings S1~Sn, so as to effectively reduce or avoid the fast charging behavior. Even when all the operation memory cells of the same memory string are in a low impedance state, due to the additional addition of the balancing operation memory cells BC11~BCpn and/or impedance elements RS1~RSn (impedance elements RS1~RSn), the equivalent impedance of the same memory string will not be too low, so that the current of the same memory string will not be too high, the charging current of the load capacitor C will not be too high, and the potential of the load capacitor C will not increase rapidly, thereby reducing the possibility of misjudgment.
在本案一實施例中,該些運算記憶胞與該些平衡運算記憶胞具有至少兩種阻抗狀態,高阻抗狀態與低阻抗狀態。當該些運算記憶胞處於高阻抗狀態時(亦可稱為第一阻抗狀態),該些運算記憶胞具有一高阻抗值RH(亦可稱為第一阻抗值);以及,當該些運算記憶胞處於低阻抗狀態時(亦可稱為第二阻抗狀態),該些運算記憶胞具有一低阻抗值RL(亦可稱為第二阻抗值)。In one embodiment of the present case, the computational memory cells and the balanced computational memory cells have at least two impedance states, a high impedance state and a low impedance state. When the computational memory cells are in the high impedance state (also referred to as the first impedance state), the computational memory cells have a high impedance value RH (also referred to as the first impedance value); and, when the computational memory cells are in the low impedance state (also referred to as the second impedance state), the computational memory cells have a low impedance value RL (also referred to as the second impedance value).
在本案一實施例中,該些阻抗元件RS1~RSn的等效阻抗RS例如但不受限於為,RS=2RL,或者,RS=5RL,則可以有效減少快速充電行為。在本案一實施例中,該些阻抗元件RS1~RSn的等效阻抗RS例如但不受限於為,RS=10RL,或者,RS≧0.5*RH,則可以有效避免甚至完全避免快速充電行為。In an embodiment of the present invention, the equivalent impedance RS of the impedance elements RS1-RSn is, for example but not limited to, RS=2RL, or RS=5RL, which can effectively reduce the fast charging behavior. In an embodiment of the present invention, the equivalent impedance RS of the impedance elements RS1-RSn is, for example but not limited to, RS=10RL, or RS≧0.5*RH, which can effectively avoid or even completely avoid the fast charging behavior.
由此可知,本案實施例的確可以減少或避免快速充電行為,進而降低誤判的可能性。It can be seen that the embodiment of this case can indeed reduce or avoid fast charging behavior, thereby reducing the possibility of misjudgment.
於本案一實施例中,該些阻抗元件RS1~RSn例如為但不受限於,由製程所形成的一電阻。或者,於本案一實施例中,該些阻抗元件RS1~RSn例如為但不受限於,為電晶體。或者,於本案一實施例中,該些阻抗元件RS1~RSn例如為但不受限於,電晶體與電阻之組合,當進行程式化操作(programming operation)或運算記憶胞權重調整時,該電晶體為導通,當進行感應操作(sensing operation)時,電晶體被關閉。In an embodiment of the present invention, the impedance elements RS1-RSn are, for example, but not limited to, a resistor formed by a process. Alternatively, in an embodiment of the present invention, the impedance elements RS1-RSn are, for example, but not limited to, a transistor. Alternatively, in an embodiment of the present invention, the impedance elements RS1-RSn are, for example, but not limited to, a combination of a transistor and a resistor, and when performing a programming operation or calculating a memory cell weight adjustment, the transistor is turned on, and when performing a sensing operation, the transistor is turned off.
在本案一實施例中,藉由調整負載電容的電容值,可以將IMC記憶體裝置的IMC運算操作的功率消耗調整至合理範圍內。此外,對於給定的輸入值數量與運算記憶胞數量,適當排列記憶串數量與各記憶串的運算記憶胞數量,也有助於調整功率消耗。In one embodiment of the present invention, the power consumption of the IMC operation of the IMC memory device can be adjusted to a reasonable range by adjusting the capacitance value of the load capacitor. In addition, for a given number of input values and number of operation memory cells, properly arranging the number of memory strings and the number of operation memory cells of each memory string can also help adjust the power consumption.
在本案一實施例中,一記憶串的運算記憶胞數量至少要大於等於2,以及,記憶體陣列的記憶串數量可為任意的。而且,運算記憶胞的阻抗值可被輸入值所改變。In one embodiment of the present invention, the number of computational memory cells in a memory string is at least greater than or equal to 2, and the number of memory strings in the memory array can be arbitrary. Furthermore, the impedance value of the computational memory cell can be changed by an input value.
在本案一實施例中,當記憶體裝置10是NAND型記憶體裝置時,讀取電壓Vread低於1V。In one embodiment of the present invention, when the memory device 10 is a NAND memory device, the read voltage Vread is lower than 1V.
在本案一實施例中,記憶體裝置10可應用於,例如但不受限於,神經網路的計算,或者是,乘積和運算,或者是,將輸入資料比較於所儲存資料等。In one embodiment of the present case, the memory device 10 can be applied to, for example but not limited to, neural network calculations, or multiplication and calculations, or comparing input data with stored data, etc.
在本案其他可能實施例中,該些運算記憶胞與該些平衡運算記憶胞具有三種或更多種阻抗狀態(亦即,三種或更多種阻抗值),此皆在本案精神範圍內。In other possible embodiments of the present invention, the computational memory cells and the balanced computational memory cells have three or more impedance states (ie, three or more impedance values), which are all within the spirit and scope of the present invention.
在本案一實施例中,由於不是採用電壓加總架構來進行IMC,故而,可以同時運算更多筆輸入值,且可以僅使用單一感應放大器即可滿足IMC,本案實施例具有可以降低讀取錯誤與功率消耗的優點。In an embodiment of the present case, since a voltage summing architecture is not used for IMC, more input values can be calculated simultaneously, and only a single sensing amplifier can be used to satisfy IMC. This embodiment of the present case has the advantages of reducing reading errors and power consumption.
本案一實施例的IMC記憶體裝置是電流加總架構與電壓加總架構的混合模式,可允許同時運算更多筆輸入值,且能避免電流加總架構中由於較大加總電流所帶來的問題,亦能避免電壓加總架構中由於低感應電流所帶來的問題。The IMC memory device of one embodiment of the present case is a hybrid mode of a current summing architecture and a voltage summing architecture, which allows more input values to be calculated simultaneously and can avoid the problems caused by the larger summed current in the current summing architecture and the problems caused by the low inductive current in the voltage summing architecture.
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。In summary, although the present invention has been disclosed as above by the embodiments, it is not intended to limit the present invention. Those with ordinary knowledge in the technical field to which the present invention belongs can make various changes and modifications without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the scope defined by the attached patent application.
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:曲線10: Memory device 20: Memory control circuit 30: Word line driver circuit 40: Bit line driver circuit 100: Memory array I1~In: Memory string current BL1~BLn: Bit line V11~Vmn, BV1~BVp: Input voltage IN11~INmn, BIN1~BINp: Input value 100: Memory array IN11~INmn: Input value S1~Sn: Memory string C: Load capacitor 120: Measurement circuit Vread: Read voltage BC11~BCpn: Balanced operation memory cell RS1~RSn: Impedance element C(a)mn, C(c)mn, C(d)mn: computational memory cells R(a)mn, R(c)mn: resistors TRmn: transistors g: gate d: drain s: source 510A-510C: curves
第1圖繪示根據本案一實施例的記憶體內計算(IN-MEMORY COMPUTING (IMC))記憶體裝置之功能方塊圖。 第2圖繪示根據本案一實施例的記憶體內計算記憶體裝置之記憶體陣列的架構圖。 第3A圖與第3B圖顯示根據本案一實施例之測量延遲時間之示意圖。 第4A圖為本案一實施例的運算記憶胞的電路圖。 第4B圖為本案一實施例的運算記憶胞的電路圖。 第4C圖為本案一實施例的運算記憶胞的電路圖。 第5A圖至第5C圖顯示根據本案一實施例的模擬圖。 FIG. 1 shows a functional block diagram of an in-memory computing (IMC) memory device according to an embodiment of the present invention. FIG. 2 shows an architecture diagram of a memory array of an in-memory computing memory device according to an embodiment of the present invention. FIG. 3A and FIG. 3B show schematic diagrams of measuring delay time according to an embodiment of the present invention. FIG. 4A is a circuit diagram of a computing memory cell according to an embodiment of the present invention. FIG. 4B is a circuit diagram of a computing memory cell according to an embodiment of the present invention. FIG. 4C is a circuit diagram of a computing memory cell according to an embodiment of the present invention. FIG. 5A to FIG. 5C show simulation diagrams according to an embodiment of the present invention.
I1~In:記憶串電流 I1~In: memory string current
BL1~BLn:位元線 BL1~BLn: bit line
V11~Vmn、BV1~BVp:輸入電壓 V11~Vmn, BV1~BVp: input voltage
C11~Cmn:運算記憶胞 C11~Cmn: Calculation memory cells
100:記憶體陣列 100:Memory array
IN11~INmn、BIN1~BINp:輸入值 IN11~INmn, BIN1~BINp: input value
S1~Sn:記憶串 S1~Sn: memory string
C:負載電容 C: Load capacitance
RS1~RSn:阻抗元件 RS1~RSn: Impedance elements
120:量測電路 120: Measurement circuit
Vread:讀取電壓 Vread: read voltage
BC11~BCpn:平衡運算記憶胞 BC11~BCpn: Balanced computational memory cells
Claims (13)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW112143001A TWI866591B (en) | 2023-11-08 | 2023-11-08 | In-memory computing (imc) memory device and in-memory computing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW112143001A TWI866591B (en) | 2023-11-08 | 2023-11-08 | In-memory computing (imc) memory device and in-memory computing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI866591B true TWI866591B (en) | 2024-12-11 |
| TW202520263A TW202520263A (en) | 2025-05-16 |
Family
ID=94769474
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112143001A TWI866591B (en) | 2023-11-08 | 2023-11-08 | In-memory computing (imc) memory device and in-memory computing method |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI866591B (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW202340979A (en) * | 2021-12-17 | 2023-10-16 | 華邦電子股份有限公司 | In-memory computing apparatus and computing method thereof |
| TW202341150A (en) * | 2022-04-05 | 2023-10-16 | 台灣積體電路製造股份有限公司 | Memory system and operating method of memory array |
-
2023
- 2023-11-08 TW TW112143001A patent/TWI866591B/en active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW202340979A (en) * | 2021-12-17 | 2023-10-16 | 華邦電子股份有限公司 | In-memory computing apparatus and computing method thereof |
| TW202341150A (en) * | 2022-04-05 | 2023-10-16 | 台灣積體電路製造股份有限公司 | Memory system and operating method of memory array |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202520263A (en) | 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 (en) | Event counter for memory operation | |
| US10566063B2 (en) | Memory system with dynamic calibration using a trim management mechanism | |
| US7782679B2 (en) | Memory device and reading method | |
| CN110751276A (en) | Implementing neural networks with ternary inputs and binary weights in NAND memory arrays | |
| Kim et al. | Rank modulation hardware for flash memories | |
| TWI866591B (en) | In-memory computing (imc) memory device and in-memory computing method | |
| CN118824307A (en) | In-memory computing memory device and in-memory computing method | |
| US12444446B2 (en) | Dynamic sensing levels for nonvolatile memory devices | |
| CN119964621A (en) | In-memory computing storage device and in-memory computing method | |
| TWI845270B (en) | In-memory computing (imc) memory device and in-memory computing method | |
| KR102365470B1 (en) | Capacitance-based sequential matrix multiplication neural network by controlling weights with transistor-capacitor pair | |
| CN110797067A (en) | Storage array module and control method, device and module thereof |