CN112149051B - 执行向量-矩阵乘法的计算电路和包括其的半导体器件 - Google Patents
执行向量-矩阵乘法的计算电路和包括其的半导体器件 Download PDFInfo
- Publication number
- CN112149051B CN112149051B CN202010290818.7A CN202010290818A CN112149051B CN 112149051 B CN112149051 B CN 112149051B CN 202010290818 A CN202010290818 A CN 202010290818A CN 112149051 B CN112149051 B CN 112149051B
- Authority
- CN
- China
- Prior art keywords
- input
- output
- computing
- circuit
- vector
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 53
- 239000004065 semiconductor Substances 0.000 title claims abstract description 18
- 239000013598 vector Substances 0.000 claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 239000003990 capacitor Substances 0.000 claims description 37
- 239000000872 buffer Substances 0.000 claims description 27
- 238000005070 sampling Methods 0.000 claims description 19
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 22
- 210000002569 neuron Anatomy 0.000 description 15
- 210000000225 synapse Anatomy 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 7
- NPOJQCVWMSKXDN-UHFFFAOYSA-N Dacthal Chemical compound COC(=O)C1=C(Cl)C(Cl)=C(C(=O)OC)C(Cl)=C1Cl NPOJQCVWMSKXDN-UHFFFAOYSA-N 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0416—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a single floating gate transistor and no select transistor, e.g. UV EPROM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/565—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using capacitive charge storage elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C27/00—Electric analogue stores, e.g. for storing instantaneous values
- G11C27/02—Sample-and-hold arrangements
- G11C27/024—Sample-and-hold arrangements using a capacitive memory element
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C27/00—Electric analogue stores, e.g. for storing instantaneous values
- G11C27/02—Sample-and-hold arrangements
- G11C27/024—Sample-and-hold arrangements using a capacitive memory element
- G11C27/026—Sample-and-hold arrangements using a capacitive memory element associated with an amplifier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Abstract
本发明提供一种执行向量‑矩阵乘法的计算电路和包括该计算电路其的半导体器件。计算电路包括:计算单元阵列,被配置为提供分别与矩阵的多个元素相对应的多个物理值;向量输入电路,被配置为向计算单元阵列提供与输入向量相对应的多个输入电压;以及向量输出电路,被配置为根据所述多个输入电压和多个有效电容来输出多个输出电压,每个输出电压对应于所述输入向量与所述矩阵的列向量之间的点积。
Description
相关申请的交叉引用
本申请要求于2019年6月28日提交的申请号为10-2019-0077865的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
各个实施例大体上可以涉及用于执行向量-矩阵乘法的计算电路以及包括该计算电路的半导体器件。
背景技术
神经网络广泛用于人工智能应用中,例如图像识别和自动驾驶汽车中使用的技术。
图1是示出神经网络的结构的框图。
神经网络包括输入层、输出层以及在输入层与输出层之间的一个或更多个内层。
在图1中,在输入层和输出层之间有第一内层和第二内层。
输出层、输入层和内层中的每一个包括一个或更多个神经元。相邻的层中包含的神经元通过突触以各种方式耦接。例如,突触从给定层中的神经元指向下一层中的神经元。替代地或附加地,突触从前一层中的神经元指向给定层中的神经元。
每个神经元储存一个值。输入层中所包括的神经元的值根据输入信号、例如要识别的图像来确定。被包含在内层和输出层中的神经元的值基于对应的先前层中所包含的神经元和突触。例如,每个内层中的神经元的值基于在神经网络中的前一层中的神经元的值。
每个突触具有权重。每个突触的权重基于神经网络的训练操作。
图2是示出用于确定第二内层中的神经元的值的计算操作的框图。
第一内层的神经元由具有4个元素的向量[x1 x2 x3 x4]表示,第二内层的神经元由具有3个元素的向量[h1 h2 h3]表示,并且第一内层与第二内层之间的突触用具有4个行和3个列的矩阵表示,其中将第二内层的第一元素耦接到第一内层的第一元素的突触具有权重W11,将第二内层的第二元素耦接到第一内层的第一元素的突触具有权重W21,将第二内层的第二元素偶接到第一内层的第四元素的突触具有权重W24,并且将第二内层的第三元素耦接到第一内层的第四元素的突触具有权重W34,等等。因此,第二内层h1的第一元素将具有等于x1·W11+x2·W12+x3·W13+x4·W14的值,第二内层h2的第二元素将具有等于x1·W21+x2·W22+x3·W23+x4·W24的值,第二内层h3的第三元素将具有等于x1·W31+x2·W32+x3·W33+x4·W34的值。
如上所述,在神经网络运算中,频繁执行向量与矩阵之间的乘法运算,并且能够有效执行所述运算的计算电路的重要性正在增加。
发明内容
根据本教导,一种计算电路可以包括:计算单元阵列,被配置为提供分别与矩阵的多个元素相对应的多个物理值;向量输入电路,被配置为向所述计算单元阵列提供与输入向量相对应的多个输入电压;以及向量输出电路,被配置为根据所述多个输入电压和多个有效电容而输出多个输出电压,每个输出电压对应于所述输入向量与所述矩阵的列向量之间的点积。
根据本教导,一种半导体器件可以包括:命令解码器,被配置为接收命令和地址;数据输入/输出(IO)缓冲器,被配置为根据所述命令解码器的控制来输入数据或输出数据;以及计算电路,被配置为根据所述命令解码器的控制来产生多个输出电压,所述多个输出电压对应于从所述数据IO缓冲器提供的输入向量与矩阵的乘积。
附图说明
附图(其中在所有单独的示图中类似的附图标记指代相同或功能相似的元件)以及以下的详细描述被并入说明书中并形成说明书的一部分,并且用于进一步说明包括所要求保护的新颖性的构思的实施例,并解释这些实施例的各种原理和优点。
图1是示出神经网络的框图。
图2是示出在神经网络中执行的运算的框图。
图3是示出根据本公开的实施例的计算电路的框图。
图4是示出根据本公开的实施例的向量输入电路的框图。
图5是示出根据本公开的实施例的计算单元阵列的框图。
图6是示出根据本公开的实施例的计算单元的电路图。
图7是示出根据本公开的实施例的矩阵控制电路的框图。
图8是示出根据本公开的实施例的向量输出电路的框图。
图9是示出根据本公开的实施例的元素输出电路的电路图。
图10是示出根据本公开的实施例的半导体器件的框图。
具体实施方式
在描述与本公开一致的说明性实施例时,下列的详细描述参考了附图。提供实施例是出于说明性目的,而不是穷举。没有明确示出或描述的其他实施例是可能的。此外,可以在本教导的范围内对所呈现的实施例进行修改。详细描述并不意味着限制本公开。而是,根据所呈现的权利要求及其等同物来限定本公开的范围。
图3是示出根据本公开的实施例的计算电路1的框图。
计算电路1包括向量输入电路100、计算单元阵列200、矩阵控制电路300、向量输出电路400和计算控制电路500。
计算控制电路500控制计算电路1的每个组件以执行编程操作或计算操作。
例如,计算控制电路500可以向所述向量输入电路100提供输入开关控制信号S1m(1≤m≤i)以控制向量输入。
另外,计算控制电路500向矩阵控制电路300提供操作模式信号MODE,并提供矩阵的元素数据DCmn和索引信号m和n,使得与矩阵的每个元素相对应的数据可以被储存。
此外,计算控制电路500可以向所述向量输出电路400提供采样开关控制信号S2n(1≤n≤j)和转换开关控制信号S3n(1≤n≤j)以输出计算结果。
在下文中,将参考图4至图9描述计算电路1的详细配置和操作。
图4是示出根据本公开的实施例的向量输入电路100的框图。
向量输入电路100向计算单元阵列200提供与输入向量中所包括的多个元素相对应的输入电压Vx1,Vx2,...,Vxi,其中i是等于或大于2的自然数。
根据本公开的实施例的向量输入电路100包括与输入向量的元素的数量相对应的输入开关1101,1102,…110i。
输入开关1101,1102,...,110i分别根据相应的输入开关控制信号S11,S12,...,S1i向计算单元阵列200提供模拟输入电压Vx1,Vx2,...,Vxi。
向量输入电路100还可以包括多个输入缓冲器1201,1202,...,120i,它们可以分别对模拟输入电压Vx1,Vx2,...,Vxi进行缓冲。
在图4中,示出了向输入开关110m提供输入缓冲器120m的输出信号的实施例,其中1≤m≤i,但是在另一实施例中,连接顺序可以改变,使得输入开关110m可以耦接到输入缓冲器120m的输入端子。
图5是示出根据本公开的实施例的计算单元阵列200的框图。
计算单元阵列200包括多个计算单元21011,21012,...2101j,21021、21022,...2102j,...,210i1、210i2,...210ij(在本文中统称为多个计算单元210),其中i和j是大于1的自然数。
多个计算单元210可以被布置为i个行和j个列,使得它们可以对应于矩阵的元素,输入向量将与其相乘从而产生输出向量。
计算单元阵列200包括:多个板线(plate line)2201,2202,…220i(统称为板线220),多个第一字线2301,2302,……230i(统称为第一字线230),多个位线2401,2402,…,240j(统称为位线240),以及多个控制线2501,2502,……250j(统称为控制线250)。
在本实施例中,板线220和第一字线230在行方向上彼此平行布置,位线240和控制线250在列方向上彼此平行布置,并且板线220和位线240被布置成彼此垂直。
每个计算单元210mn与板线220m、第一字线230m、位线240n和控制线250n相交叉,n在1...j以内并且m在1…i以内。
尽管图5示出了每行一个第一字线,但是每行中可以进一步包括多个第二字线。将参考图6对此进行详细描述。
与输入向量的元素相对应的输入电压Vxm被输入到每个板线220m。
位线240n与第n列的计算单元共同地耦接,n在1...j以内。
计算单元210mn将与输入向量的第m元素(Vxm,其被输入在板线220m上)和矩阵的第(m,n)元素(该值被储存在计算单元210mn中)的积相对应的信号输出到位线240n,n在1...j以内并且m在1…i以内。
从位线240n输出的信号Qn对应于输入向量和矩阵的第n列向量的点积;也就是说,对应于由计算单元2101n,2102n,…210in输出到位线240n的乘积的总和,其中1≤n≤j。
列选择信号Vsn被输入到控制线250n。
列选择信号Vsn可以用于将矩阵的对应元素编程到计算单元阵列200的第n列的计算单元中,其中1≤n≤j。
第一字线电压Vwm施加到第一字线230m,以将矩阵的第(m,n)元素编程到计算单元210mn。
将参考图6详细描述计算单元210mn的详细结构及其相关操作。
图6是示出根据本公开的实施例的计算单元210mn的电路图。
计算单元210mn包括一个或更多个电容器Cmn,1,Cmn,2,…,Cmn,k以及一个或更多个NMOS晶体管Nmn,1,Nmn,2,…,Nmn,k,其中k是自然数,其与用于储存计算单元210mn中的值所使用的比特位的数量相对应。
电容器Cmn,p和NMOS晶体管Nmn,p(p在1…k以内)以类似于动态随机存取存储器(DRAM)单元的形式耦接(除了电容器Cmn,p的未耦接到NMOS晶体管Nmn,p的端子被耦接到板线220m而不是接地以外)。
也就是说,电容器Cmn,p的一个节点被耦接到板线220m,并且NMOS晶体管Nmn,p的源极和漏极被耦接在电容器Cmn,p的另一节点与位线240n之间。
NMOS晶体管Nmn,p的栅极被耦接到一个或更多个浮栅晶体管Fmn,1,Fmn,2,...,Fmn,k之中的浮栅晶体管Fmn,p的漏极。
浮栅晶体管Fmn,1,Fmn,2,…,Fmn,k的源极被共同耦接到开关晶体管Mmn的源极。
开关晶体管Mmn的漏极被耦接到第一字线230m,并且开关晶体管Mmn的栅极被耦接到控制线250n。
浮栅晶体管Fmn,p的控制栅极被耦接到一个或更多个开关晶体管Mmn,1,Mmn,2,…,Mmn,k中的开关晶体管Mmn,p的漏极。
开关晶体管Mmn,p的栅极被耦接到控制线250n,并且源极被耦接到一个或更多个第二字线232m,1,232m,1,…232m,k中的第二字线232m,p。
这样,第一字线230m和多个第二字线232m,1,...,232m,k被耦接到计算单元210mn。
在本实施例中,矩阵的第(m,n)元素的值对应于计算单元210mn的物理值,例如计算单元210mn中的板线220m与位线240n之间的有效电容。
在该实施例中,板线220m与位线240n之间的有效电容由多个电容器Cmn,1…Cmn,k之中的耦接在板线220m与位线240n之间的电容器来确定。
浮栅晶体管Fmn,p被配置为通过在编程操作期间将电荷注入到浮栅中或者利用擦除操作从浮栅去除电荷来控制NMOS晶体管Nmn,p的栅极电压。
在计算单元210mn上执行的编程操作和擦除操作可以由矩阵控制电路300来控制。
在编程操作期间,高电平信号被施加到控制线250n以开启开关晶体管Mmn,Mmn,1,...,Mmn,k。
因此,第一字线230m被耦接到浮栅晶体管Fmn,p的源极,第二字线232m,p被耦接到浮栅晶体管Fmn,p的控制栅极。
用于在浮栅晶体管Fmn,p的浮栅中注入或去除电荷(即,用于编程或擦除浮栅晶体管Fmn,p)的操作在本领域中是公知的。
也就是说,在第一字线230m接地时,通过向第二字线232m,p施加正的高电压,将电子注入到浮栅晶体管Fmn,p的浮栅中。通过向第二字线232m,p施加负的高电压,可以从浮栅晶体管Fmn,p的浮栅中去除电子。
当浮栅中被注入电子时,浮栅晶体管的阈值电压增大。因此,可以向浮栅晶体管的控制栅极施加电压,如果浮栅中未被注入电子,将开启浮栅晶体管,但是如果浮栅中被注入足够数量的电子,将不开启浮栅晶体管。
计算操作也可以由矩阵控制电路300控制。
根据浮栅晶体管Fmn,p的编程结果,通过调整NMOS晶体管Nmn,p的栅极电压,计算操作确定NMOS晶体管Nmn,p是开启还是截止,并且因此确定电容器Cmn,1…Cmn,k中的一个或更多个是否被导电地耦接在板线220m与位线240n之间。
在计算操作中,高电平信号被施加到控制线250n以开启开关晶体管Mmn,Mmn,1,...,Mmn,k。
在计算操作期间,电源电压VDD被施加到第一字线230m和第二字线232m,1,...,232m,k。
因此,浮栅中被注入电子的浮栅晶体管不被开启,这使得对应的NMOS晶体管不被开启,并且浮栅中未被注入电子的浮栅晶体管被开启,这使得对应的NMOS晶体管被开启,从而将对应的电容器导电地耦接在对应的板线与对应的位线之间。
在计算单元210mn中,与浮栅中未被注入电子的浮栅晶体管相对应的电容器的电容的总和(即,计算单元210mn的有效电容Cmn)对应于矩阵的第(m,n)元素的值。
通过增加计算单元210mn中所包括的电容器的数量,有效电容可以被不同地确定。计算单元210mn中所包括的电容器可以被设置为具有相同的电容或不同的电容。这些可以根据实施例而改变。例如,在一个实施例中,每个电容器Cmn,p具有等于c*2(p-1)的电容(p在1…k以内),其中c是常数,使得可以通过将二进制数编程到浮栅晶体管Fmn,1…Fmn,k中来确定有效电容Cmn。在另一实施例中,浮栅晶体管Fmn,1…Fmn,k中的一些可以耦接到一个以上的晶体管-电容器链,使得浮栅晶体管Fmn,1…Fmn,k中的一些分别地控制是否将一个以上的电容器导电地耦接在对应的板线与对应的位线之间。例如,每个浮栅晶体管Fmn,p(p在1…k以内)可以通过相关联的晶体管来控制2(p-1)个电容器,从而可以通过将二进制数编程到浮栅晶体管Fmn,1…Fmn,k中来确定有效电容Cmn。
每个计算单元210mn中的计算结果对应于被输入到板线220m的输入电压Vxm与有效电容Cmn的乘积,所述乘积对应于被充电在电容器中的电荷量。
由于位线240n和控制线250n对于同一列中的多个计算单元是公共的,因此可以在每列的基础上执行编程操作和计算操作。在执行矩阵乘法运算的实施例中,针对每一列的计算操作可以与其他列的计算操作同时执行。
另外,由于基于列来执行操作,因此可以从第n位线240n输出与输入向量和矩阵的第n列向量的点积相对应的正电荷。即,被耦接到第n位线240n并且被编程为具有与矩阵值Wmn相对应的有效电容的每一个计算单元210mn(m在1…i以内)贡献了与它的有效电容乘以耦接到它的板线220m的电压值相对应的电荷。因此,计算单元210mn的贡献电荷对应于xm·Wmn。对于位线240n的总的电荷贡献对应于由与其耦接的计算单元所产生的电荷的总和:x1·W1n+x2·W2n+...xi·Win。
图7是示出根据本公开的实施例的矩阵控制电路300的框图。
矩阵控制电路300针对被包括在计算单元阵列200中的多个计算单元而如上所述地对浮栅晶体管编程,以确定与每个计算单元相对应的有效电容。
矩阵控制电路300提供多个列选择信号Vsn以选择用于执行编程操作和计算操作的列,并提供第一字线电压Vwm和第二字线电压Vwm,p以提供用于对计算单元的浮栅晶体管进行编程的值。
矩阵控制电路300可以通过接收操作模式信号MODE来执行编程操作或计算操作。在编程操作期间,矩阵控制电路300可以接收与每个计算单元相对应的元素数据DCmn,并且确定第一字线电压Vwm和第二字线电压Vwm,p。
根据元素数据DCmn的值来确定NMOS晶体管Nmn,p中的哪一个要被开启可以由本领域技术人员以各种方式执行,并且相对应地,在编程操作中要提供的第一字线电压Vwm和第二字线电压Vwm,p的值可以由本领域技术人员从上述公开容易地确定,因此将省略其详细描述。
可以通过调整列选择信号Vsn的电平来确定第n列是执行编程操作还是计算操作。
计算控制电路500可以控制矩阵控制电路300以执行编程操作或计算操作。
图8是示出根据本公开的实施例的向量输出电路400的框图。
向量输出电路400包括多个元素输出电路4101,4102,…410j。
如上所述,从位线240n输出的电荷量Qn对应于输入向量与矩阵的第n列向量的点积。
元素输出电路410n(n在1…j以内)将电荷量Qn转换为与输入向量和矩阵的第n列向量的点积相对应的输出电压Vhn,并输出所述输出电压Vhn。
图9是示出根据本公开的实施例的元素输出电路410n的电路图。
元素输出电路410n包括采样电容器Csn、采样开关411n、转换开关412n和转换电路413n。
在该实施例中,采样开关411n根据采样开关控制信号S2n而被控制,并且转换开关412n根据转换开关控制信号S3n而被控制。
在本实施例中,采样开关411n被关断,然后在图4的输入开关110m接通之后被接通,以对图6的电容器Cmn,1,...,Cmn,k充电。
因此,通过位线240n传输的电荷Qn被传输到采样电容器Csn。
在采样开关411n被关断并且转换开关412n被接通之后,转换电路413n产生与被充电在采样电容器Csn中的电荷相对应的输出电压Vhn。
在本实施例中,转换电路413n是包括运算放大器414n和反馈电容器Cfn的放大器电路,并且产生与采样电容器Csn和反馈电容器Cfn的电容相对应的输出电压Vhn,并对输出电压Vhn进行缓冲。
如上所述,包括转换电路413n的元素输出电路410n调整信号,使得输出电压Vhn具有与输入向量和矩阵的第n列向量的点积相对应的值。
图10是示出根据本公开的实施例的半导体器件1000的框图。
根据本公开的实施例的半导体器件1000包括与诸如DRAM的半导体存储器件的结构相似的结构。
半导体器件1000包括命令解码器2和数据输入/输出(IO)缓冲器3。
根据本公开的实施例的半导体器件1000可以进一步包括计算电路1、数模转换器(DAC)4、元素缓冲器5和模数转换器(ADC)6。
由于计算电路1的配置和操作如上所述,因此省略其详细描述。
命令解码器2根据命令和地址来控制计算电路1、数据IO缓冲器3、DAC 4、元素缓冲器5和ADC 6。
命令解码器2从存储器控制器接收命令和地址。
在这种情况下,命令可以包括读取命令、写入命令(编程命令)以及计算命令等。
写入命令包括用于写入输入向量的向量写入命令和用于写入矩阵的矩阵写入命令。
可以通过执行向量写入命令而向数据IO缓冲器3提供与输入向量中所包括的元素相对应的输入数据Dxm,m在1…i以内。
在这种情况下,与向量写入命令相对应的地址可以包括关于输入向量的元素号m的信息。
在本实施例中,输入数据Dxm是数字信号,并且当提供向量写入命令时,命令解码器2控制DAC 4以产生与输入数据Dxm相对应的输入电压Vxm并向计算电路1提供输入电压Vxm。在一个实施例中,DAC 4产生多个输入电压Vxm,每个输入电压Vxm对应于相应的输入数据Dxm,m在1…i以内。
向量输入电路100可以使用缓冲器120m来保持输入电压Vxm。
通过执行矩阵写入命令,可以将与矩阵中所包括的元素相对应的元素数据DCmn提供给元素缓冲器5。
在这种情况下,与矩阵写入命令相对应的地址可以包括与矩阵的元素相对应的行号和列号。
计算电路1根据从元素缓冲器5提供的元素数据DCmn以及从命令解码器2提供的命令和地址,对计算单元阵列200中所包括的计算单元210mn的多个浮栅晶体管进行编程。
计算命令指示要执行矩阵与当前输入的输入向量的乘法。
因此,命令解码器2控制计算电路1执行计算操作。
在计算操作中,当施加了列选择信号Vsn以及第一字线电压Vwm和第二字线电压Vwm,p时,根据电荷是否已被注入到计算单元210mn的浮栅晶体管的相应浮栅中,确定计算单元210mn的有效电容Cmn。
为了进行计算操作,在图9的采样开关411n被关断时,图4的输入开关110m被接通,以根据输入电压Vxm对计算单元210mn的电容器Cmn,p充电。
此后,采样开关411n被接通以根据从位线240n提供的电荷Qn而对采样电容器Csn充电。
此后,采样开关411n被关断并且转换开关412n被接通,以产生输出电压Vhn。
读取命令对应于将输出电压Vhn输出的操作,所述输出电压Vhn与输出向量的每个元素相对应。
在读取命令中,相对应的地址可以指示要读取的输出向量的元素号。
当提供读取命令时,与元素号相对应的输出电压Vhn由计算电路1提供并由ADC 6转换为输出数据Dhn,并且转换后的数据通过数据IO缓冲器3输出。
尽管出于说明性目的已经描述了各种实施例,但是对于本领域技术人员显而易见的是,可以在不脱离由所附权利要求所限定的本公开的精神和范围的情况下,对所描述的实施例进行各种改变和修改。
Claims (17)
1.一种计算电路,包括:
计算单元阵列,被配置为提供分别与矩阵的多个元素相对应的多个物理值;
向量输入电路,被配置为向所述计算单元阵列提供与输入向量相对应的多个输入电压;和
向量输出电路,被配置为根据所述多个输入电压和多个有效电容而输出多个输出电压,每个输出电压对应于所述输入向量与所述矩阵的列向量之间的点积,
其中,所述计算单元阵列包括:
多个计算单元;
多个板线;和
多个位线,
其中,所述多个计算单元中的每一个位于所述多个板线中的相应一个板线与所述多个位线中的相应一个位线交叉的位置,
其中,所述多个计算单元中的每一个包括多个电容器,所述多个电容器被选择性地耦接在所述多个板线中的相应一个板线与所述多个位线中的相应一个位线之间;和
其中,所述多个板线中的相应一个板线与所述多个位线中的相应一个位线之间的有效电容分别对应于所述矩阵中所包括的元素的值。
2.根据权利要求1所述的计算电路,其中,所述多个计算单元中的每一个包括:
多个MOS晶体管,被配置为选择性地将所述多个电容器与所述多个板线中的所述相应一个板线耦接;和
多个非易失性晶体管,被配置为分别确定所述多个MOS晶体管的开启或截止状态。
3.根据权利要求2所述的计算电路,其中,所述计算单元阵列还包括与所述矩阵的行的数量相对应的多个第一字线,以及
其中,所述多个第一字线中的每一个通过所述多个非易失性晶体管中的相对应的一个非易失性晶体管而耦接到所述多个MOS晶体管中的相对应的一个MOS晶体管的栅极。
4.根据权利要求3所述的计算电路,其中,所述计算单元阵列还包括多个第二字线,以及
其中,所述多个非易失性晶体管中的每一个非易失性晶体管的栅极耦接到所述多个第二字线中的一个第二字线,以及
其中,所述计算单元阵列被配置为根据所述多个第二字线中的一个第二字线的电压来对所述多个非易失性晶体管中的每一个进行编程。
5.根据权利要求4所述的计算电路,其中,所述计算单元阵列还包括多个控制线,以及
其中,所述多个计算单元中的每一个还包括:
第一晶体管,其被配置为根据所述多个控制线中的一个而选择性地将所述多个第一字线中的一个耦接到所述计算单元的所述多个非易失性晶体管,以及
多个第二晶体管,其分别根据所述多个控制线中的一个而选择性地将所述计算单元的所述多个非易失性晶体管的栅极耦接到所述多个第二字线中的相应的第二字线。
6.根据权利要求1所述的计算电路,其中,所述向量输出电路包括多个元素输出电路,每个元素输出电路被配置为根据从所述多个位线中的相应一个位线提供的信号来产生所述多个输出电压之中的相应的输出电压。
7.根据权利要求6所述的计算电路,其中,所述多个元素输出电路中的每一个包括:
采样电容器,其耦接到所述多个位线中的所述相应一个位线;和
转换电路,被配置为根据被充电在所述采样电容器中的电荷来产生所述相应的输出电压。
8.根据权利要求7所述的计算电路,其中,所述多个元素输出电路中的每一个还包括:
采样开关,被配置为选择性地将所述多个位线中的所述相应一个位线和所述采样电容器耦接;和
转换开关,被配置为选择性地向所述转换电路提供被充电在所述采样电容器中的电荷。
9.根据权利要求1所述的计算电路,其中,所述向量输入电路包括:
多个输入缓冲器,被配置为分别缓冲所述多个输入电压;和
多个输入开关,被配置为选择性地向所述计算单元阵列提供所述多个输入缓冲器的输出电压。
10.根据权利要求1所述的计算电路,还包括矩阵控制电路,所述矩阵控制电路被配置为设置所述计算单元阵列中的与所述矩阵的每个元素相对应的有效电容。
11.一种半导体器件,包括:
命令解码器,被配置为接收命令和地址;
数据输入/输出IO缓冲器,被配置为根据所述命令解码器的控制来输入数据或输出数据;和
计算电路,被配置为根据所述命令解码器的控制来产生多个输出电压,所述多个输出电压对应于从所述数据输入/输出IO缓冲器提供的输入向量与矩阵的乘积,
其中,所述计算电路包括:
计算单元阵列,被配置为设置和储存分别与所述矩阵的元素相对应的多个有效电容;
向量输入电路,被配置为向所述计算单元阵列提供与所述输入向量相对应的多个输入电压;和
向量输出电路,被配置为根据所述多个输入电压和所述多个有效电容而输出多个输出电压,每个输出电压对应于所述输入向量与所述矩阵的列向量之间的点积,
其中,所述计算单元阵列包括:
多个计算单元;
多个板线;和
多个位线,
其中,所述多个计算单元中的每一个位于所述多个板线中的一个板线与所述多个位线中的一个位线交叉的位置,
其中,所述多个计算单元中的每一个包括多个电容器,所述多个电容器被选择性地耦接在所述多个板线中的一个板线与所述多个位线中的一个位线之间;以及
其中,所述多个板线中的一个板线与所述多个位线中的一个位线之间的有效电容对应于所述矩阵中所包括的元素的值。
12.根据权利要求11所述的半导体器件,还包括:数模转换器DAC,其被配置为根据所述命令解码器的控制,将所述数据输入/输出IO缓冲器的数据转换为与所述输入向量的元素相对应的输入电压,并且将所述输入电压提供给所述计算电路。
13.根据权利要求11所述的半导体器件,还包括:模数转换器ADC,其被配置为根据所述命令解码器的控制,将所述多个输出电压转换为多个输出数据,并将所述输出数据提供给所述数据输入/输出IO缓冲器。
14.根据权利要求11所述的半导体器件,还包括:元素缓冲器,其被配置为根据所述命令解码器的控制,从所述数据输入/输出IO缓冲器接收与所述矩阵的元素相对应的元素数据,并且缓冲所述元素数据。
15.根据权利要求11所述的半导体器件,其中,所述多个计算单元中的每一个包括:
多个MOS晶体管,被配置为分别选择性地将所述多个电容器与所述多个板线中的所述一个板线耦接;和
多个非易失性晶体管,被配置为分别确定所述多个MOS晶体管的开启或截止状态。
16.根据权利要求11所述的半导体器件,其中,所述向量输出电路包括多个元素输出电路,所述多个元素输出电路中的每一个包括:
采样开关,被配置为选择性地将所述多个位线中的相应一个位线和采样电容器耦接;和
转换开关,被配置为选择性地向转换电路提供被充电在所述采样电容器中的电荷。
17.根据权利要求11所述的半导体器件,其中,所述向量输入电路包括:
多个输入缓冲器,被配置为分别缓冲所述多个输入电压;和
多个输入开关,被配置为分别选择性地向所述计算单元阵列提供所述多个输入缓冲器的电压。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190077865A KR20210001574A (ko) | 2019-06-28 | 2019-06-28 | 벡터-매트릭스 곱셈을 수행하는 연산 회로 및 이를 포함하는 반도체 장치 |
KR10-2019-0077865 | 2019-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112149051A CN112149051A (zh) | 2020-12-29 |
CN112149051B true CN112149051B (zh) | 2024-03-26 |
Family
ID=73891409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010290818.7A Active CN112149051B (zh) | 2019-06-28 | 2020-04-14 | 执行向量-矩阵乘法的计算电路和包括其的半导体器件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11455371B2 (zh) |
KR (1) | KR20210001574A (zh) |
CN (1) | CN112149051B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210034172A (ko) * | 2019-09-20 | 2021-03-30 | 에스케이하이닉스 주식회사 | Mac 연산 동작을 수행하는 반도체 장치 |
TWI789589B (zh) * | 2020-02-04 | 2023-01-11 | 旺宏電子股份有限公司 | 脈衝神經網路電路及其運作方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794210A (zh) * | 2010-04-07 | 2010-08-04 | 上海交通大学 | 基于fpga的通用矩阵浮点乘法器 |
TW201710959A (zh) * | 2015-05-21 | 2017-03-16 | 咕果公司 | 類神經網路處理器 |
CN106528357A (zh) * | 2016-11-24 | 2017-03-22 | 天津大学 | 基于拟牛顿法在线训练神经网络的fpga系统及实现方法 |
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
CN107533668A (zh) * | 2016-03-11 | 2018-01-02 | 慧与发展有限责任合伙企业 | 用于计算神经网络的节点值的硬件加速器 |
CN108710505A (zh) * | 2018-05-18 | 2018-10-26 | 南京大学 | 一种基于fpga的可扩展稀疏矩阵向量乘处理器 |
CN109086249A (zh) * | 2018-08-02 | 2018-12-25 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
TW201911139A (zh) * | 2017-08-02 | 2019-03-16 | 美商谷歌有限責任公司 | 神經網路交叉條堆疊 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6405612B2 (ja) * | 2013-10-03 | 2018-10-17 | 富士通セミコンダクター株式会社 | 強誘電体メモリ装置及びメモリ書き込み方法 |
WO2017127086A1 (en) * | 2016-01-21 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Analog sub-matrix computing from input matrixes |
JP6368845B1 (ja) * | 2017-12-05 | 2018-08-01 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリデバイス |
US11061646B2 (en) * | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
US10642922B2 (en) * | 2018-09-28 | 2020-05-05 | Intel Corporation | Binary, ternary and bit serial compute-in-memory circuits |
US20200349217A1 (en) * | 2019-05-03 | 2020-11-05 | Micron Technology, Inc. | Methods and apparatus for performing matrix transformations within a memory array |
-
2019
- 2019-06-28 KR KR1020190077865A patent/KR20210001574A/ko unknown
-
2020
- 2020-03-18 US US16/822,643 patent/US11455371B2/en active Active
- 2020-04-14 CN CN202010290818.7A patent/CN112149051B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794210A (zh) * | 2010-04-07 | 2010-08-04 | 上海交通大学 | 基于fpga的通用矩阵浮点乘法器 |
TW201710959A (zh) * | 2015-05-21 | 2017-03-16 | 咕果公司 | 類神經網路處理器 |
CN107533668A (zh) * | 2016-03-11 | 2018-01-02 | 慧与发展有限责任合伙企业 | 用于计算神经网络的节点值的硬件加速器 |
CN106528357A (zh) * | 2016-11-24 | 2017-03-22 | 天津大学 | 基于拟牛顿法在线训练神经网络的fpga系统及实现方法 |
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
TW201911139A (zh) * | 2017-08-02 | 2019-03-16 | 美商谷歌有限責任公司 | 神經網路交叉條堆疊 |
CN108710505A (zh) * | 2018-05-18 | 2018-10-26 | 南京大学 | 一种基于fpga的可扩展稀疏矩阵向量乘处理器 |
CN109086249A (zh) * | 2018-08-02 | 2018-12-25 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
Also Published As
Publication number | Publication date |
---|---|
KR20210001574A (ko) | 2021-01-06 |
CN112149051A (zh) | 2020-12-29 |
US11455371B2 (en) | 2022-09-27 |
US20200410040A1 (en) | 2020-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11663457B2 (en) | Neural network circuits having non-volatile synapse arrays | |
US11842770B2 (en) | Circuit methodology for highly linear and symmetric resistive processing unit | |
US11620505B2 (en) | Neuromorphic package devices and neuromorphic computing systems | |
JP7119109B2 (ja) | 重み更新回路および推論回路を別個に有する抵抗型処理ユニット・アーキテクチャ | |
CN112149051B (zh) | 执行向量-矩阵乘法的计算电路和包括其的半导体器件 | |
US11074499B2 (en) | Synaptic weight transfer between conductance pairs with polarity inversion for reducing fixed device asymmetries | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
KR102218740B1 (ko) | 트랜스포즈가 가능한 가중치 셀 및 이의 어레이 | |
US10783963B1 (en) | In-memory computation device with inter-page and intra-page data circuits | |
US11227211B2 (en) | Neuromorphic device including a synapse having a plurality of synapse cells | |
EP3743857A2 (en) | Neural network circuits having non-volatile synapse arrays | |
US20190147328A1 (en) | Competitive machine learning accuracy on neuromorphic arrays with non-ideal non-volatile memory devices | |
JP7102528B2 (ja) | シナプス・メモリ、シナプス・メモリを備えるデバイス、及び、シナプス・メモリに記憶された重み値を読み出す方法 | |
US11379187B2 (en) | Semiconductor device performing a multiplication and accumulation operation | |
CN111243648A (zh) | 闪存单元、闪存模块以及闪存芯片 | |
KR102448396B1 (ko) | 가중치 비트폭을 탄력적으로 적용할 수 있는 커패시턴스 기반 뉴럴 네트워크 | |
JP7209068B1 (ja) | 半導体記憶装置 | |
US20240028297A1 (en) | Semiconductor device performing a multiplication and accumulation operation | |
KR102511526B1 (ko) | 하드웨어 기반 인공 신경망 제공 장치 | |
US20240135979A1 (en) | HYBRID FeRAM/OxRAM DATA STORAGE CIRCUIT | |
US20240021242A1 (en) | Memory-based neuromorphic device and operating method thereof | |
JP2022037319A (ja) | 記憶装置およびニューラルネットワーク装置 | |
JPS63261874A (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |