发明内容
针对以上技术问题,本发明的目的在于提供一种矩阵向量乘阵列的控制方法。
本发明采用的技术方案如下:
一种矩阵向量乘阵列的控制方法,其矩阵向量乘阵列由多个光电计算单元排列组成,光电计算单元包括发光单元和计算单元,发光单元发出的光入射到计算单元中,所述计算单元包括三部分:作为光生载流子收集和读出区的P型半导体衬底;作为耦合区的电荷耦合层;作为载流子控制区的控制栅极;其中,P型半导体衬底中设有N型漏端和N型源端;矩阵向量乘阵列中,每一行计算单元的控制栅极相连,每一列计算单元的N型漏端和N型源端分别相连;
所述控制方法具体为:通过在控制栅极、P型半导体衬底以及N型源极和N型漏极上施加不同的电学条件,来控制矩阵向量乘阵列中的一个或多个计算单元处于不同的工作阶段,工作阶段包括:接收光子并生成光生载流子的光输入阶段;接收电子并使电子和光生载流子产生运算关系的电输入阶段;输出被光生载流子和电输入电子共同作用的读出阶段;擦除光输入数据的光输入复位阶段。
进一步地,所述矩阵向量乘阵列中,同列的计算单元的P型半导体衬底相连,不同列之间的P型半导体衬底相互隔离;所述光输入阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅极上施加正压,并且在某一列或数列同列相连的P型半导体衬底上施加负压,来控制行和列相交处的计算单元处于光输入阶段。
进一步地,所述矩阵向量乘阵列中,所有计算单元的P型半导体衬底共用一个P井;所述光输入阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅极上施加正压,在某一列或数列同列相连的N型源极和N型漏极接零偏压,且在共用的P型半导体衬底接负压,来控制行和列相交处的计算单元处于光输入阶段;同时,通过在剩余行的计算单元的控制栅极上加零偏压,并在剩余列同列相连的源漏极加高于P型半导体衬底的负偏压,来阻止剩余计算单元处于光输入阶段。
进一步地,所述矩阵向量乘阵列中,所有计算单元的P型半导体衬底共用一个P井;所述控制栅极采用双栅极结构,包括第一控制栅极和第二控制栅极,同行的计算单元的第一控制栅极通过引线相连,同列的计算单元的第二控制栅极通过引线相连;所述光输入阶段的具体控制方法为:通过在某一行或数行同行相连的第一控制栅极上施加正压,并在某一列或数列同列相连的第二控制栅极上施加零偏压或正压,且在P型半导体衬底中施加负偏压;或者通过在某一行或数行同行相连的第一控制栅极上施加正压或零偏压,并在某一列或数列同列相连的第二控制栅极上施加正压,且在P型半导体衬底中施加负偏压,来控制行和列相交处的计算单元处于光输入阶段;同时,在剩余行的计算单元的第一控制栅极上施加负压,剩余列的计算单元的第二控制栅极上施加负压,来阻止剩余计算单元处于光输入阶段。
进一步地,所述矩阵向量乘阵列中,同列的计算单元的P型半导体衬底相连,不同列之间的P型半导体衬底相互隔离;所述光输入复位阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅极上施加负压或零偏压,且在某一列或数列同列相连的P型半导体衬底上施加正压,或者通过在某一行或数行同行相连的控制栅极上施加负压,且在某一列或数列同列相连的P型半导体衬底上施加正压或零偏压,来控制行和列相交处的计算单元处于光输入复位阶段;同时,在剩余行的计算单元的控制栅极上施加正压,剩余列的计算单元的P型半导体衬底上施加负压,来阻止剩余计算单元处于光输入复位阶段。
进一步地,所述电输入阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅极上施加代表电输入量的大小的正偏压,使电输入量以载流子的形式输入载流子控制区当中,使该一行或数行的计算单元处于电输入阶段;同时,在剩余行的计算单元的控制栅极上施加零偏压或小于阈值的偏压或浮空,来阻止剩余计算单元进入电输入阶段。
进一步地,所述读出阶段的控制方法具体为:通过在某一列或数列同列相连的N型源极和N型漏极之间施加适当的偏压,使光生载流子收集和读出区中受到光输入量和电输入量共同作用的载流子以电流的形式输出,该一列或数列的计算单元进入读出阶段并完成读出工作;同时,通过在剩余列的计算单元的N型源极和N型漏极之间施加零偏压或浮空,来阻止剩余计算单元处于读出阶段。
本发明借助于施加在光电计算单元不同功能区上的电学条件,可以准确地使各个光电计算单元进入光输入阶段、电输入阶段、读出阶段或光输入复位阶段。通过控制矩阵向量乘阵列中各计算单元的工作状态,可以实现高精度的光输入,大大提高了器件计算的准确度。
具体实施方式
本发明提供一种由光电计算单元组成的矩阵向量乘阵列及控制方法。
如图1所示,光电计算单元中的计算单元为包括三大功能区的多功能区结构,其中三大功能区为:载流子控制区、耦合区、光生载流子收集和读出区,具体功能分别如下:
载流子控制区:负责控制并调制光电计算单元内的载流子,并且作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量;或者只控制并调制光电计算单元内的载流子,通过其他区域输入电输入量。
耦合区:负责连接光生载流子收集和读出区中的收集区和读出区,使得光子入射产生的光生载流子作用于光电计算单元内的载流子,形成运算关系。
光生载流子收集和读出区:包括收集区和读出区,其中收集区负责吸收入射的光子并收集产生的光生载流子,并且作为光电计算单元的光输入端口,输入其中一个运算量作为光输入量;读出区可以作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量,并且作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子作为单元输出量;或者通过其他区域输入电输入量,读出区只作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子,作为单元输出量。
单个计算单元和一个发光单元组合成一个完整的光电计算单元,发光单元发出的光作为入射光电计算单元光生载流子收集和读出区的光子,参与运算。
实施例1
如图2所示,本实施例的计算单元包括:作为载流子控制区的控制栅极、作为耦合区的电荷耦合层,以及作为光生载流子收集和读出区的P型半导体衬底,其中P型衬底中包含通过离子注入形成的N型源端和漏端。P型半导体衬底可以同时承担感光和读出的工作。N型源端位于读出区内靠近底层介质层的一侧,通过离子注入法掺杂而形成。N型漏端位于半导体衬底中靠近底层介质层与N型源端相对的另一侧,同样通过离子注入法进行掺杂法形成。
感光时,在P型半导体衬底上施加一个电压范围为负压的脉冲,同时在作为载流子控制区的控制栅极上施加一个电压范围为正压的脉冲,使得P型衬底中产生用于光电子收集的耗尽层,产生在耗尽区内的电子在控制栅极和P型衬底两端之间的电场作用下被加速,并在到达获得足够高的能量,穿过P型衬底和电荷耦合层之间的底层介质层势垒,进入电荷耦合层并储存于此,电荷耦合层中的电荷数量,会影响器件开启时的阈值,进而影响读出时的源漏间电流大小;读出时,在控制栅极上施加一脉冲电压,使N型源端和N型漏端间形成导电沟道,再通过在N型源端和N型漏端间施加一个脉冲电压,使得导电沟道内的电子加速形成源漏之间的电流。源漏之间的电流受到控制栅脉冲电压、源漏间电压和电荷耦合层中存储的电子数量共同作用,作为被光输入量和电输入量共同作用后的电子,以电流的形式进行输出,其中控制栅电压、源漏间电压可以作为器件的电输入量,电荷耦合层中存储的光电子数量则为器件的光输入量。
耦合区的电荷耦合层用于储存进入其中的光电子,并改变读出时器件阈值大小,进而影响读出区源漏间电流,从而通过判断读出区源漏间电流来读出感光时产生并且进入电荷耦合层中的光电子数量。
载流子控制区的控制栅,用以在其上施加一个脉冲电压,使得在P型半导体衬底读出区中产生用于激发光电子的耗尽区,同时也可以作为电输入端,输入其中一位运算量。
此外,P型半导体衬底和电荷耦合层之间存在一层用于隔离的底层介质层;电荷耦合层和控制栅之间亦存在一层用于隔离的顶层介质层。
使用以上计算单元组成的矩阵向量乘法器如图3所示,其中每一个中心带有一个V的方框都代表一个计算单元。该阵列的特点为:同行的计算单元的控制栅极都相连,同列的计算单元的读出区MOSFET的源极和漏极都相连。工作时,矩阵数据通过光输入到阵列的每一个单元当中,作为光输入量;向量数据通过同行相连的控制栅极转化为二进制数依次将各个比特位上的二值化数据输入控制栅极当中,作为电输入量,源极接地漏极加恒定偏压,即可在源端得到通过电流汇聚实现同列相加的结果向量。
对大规模矩阵向量乘阵列进行状态控制的难点在于:可用于控制计算单元工作状态的四个电学端口:控制栅极、P型衬底、N型源极和漏极大部分都存在于同行或者同列,甚至存在全部单元都互联的状态。要通过多个计算单元之间已经形成互联的端口对单独某一个单元进行控制,是一件较为困难的事,尤其是让单个单元进入光输入阶段,因为大量实验证明,对于大规模光电计算阵列,准确度最高的光输入方式为通过控制单元处于光输入状态的时长来控制光输入的量的大小,这就要求必须能做到对阵列中的每一个单元都精确的控制其状态。
控制矩阵向量乘阵列中的计算单元处于各种状态的核心思路为:通过在同行相连的控制栅极上和同列相连的N型漏极、N型源极以及P型衬底上施加不同的电学条件,来控制光电矩阵向量乘阵列中的一个或多个计算单元处于接收光子,并生成光生载流子的光输入阶段;或处于接收电子,并使电子和光生载流子产生运算关系的电输入阶段;或处于输出被光生载流子和电输入电子共同作用的被作为光电运算结果读出区电子的读出阶段;或处于擦除光输入数据的光输入复位阶段。
关于矩阵向量乘阵列的功能和原理详细推导如下:
图4是本实施例计算单元的电学模型。本单元的结构和浮栅器件大致相当,最顶端的栅是控制栅,与中间的电荷耦合层是完全隔开的,电荷耦合层即相当于浮栅器件中的浮栅。C
FC,C
S,C
B,C
D分别是浮栅与控制栅、源端、衬底、漏端之间的电容。当浮栅中不存电荷时,
其中VFG是浮栅上的电势,VCG是控制栅上的电势,VS,VD,VB分别为源端,漏端和衬底的电势。
如果定义C
T=C
FC+C
S+C
D+C
B即浮栅的总电容,同时定义
为电极J的耦合系数,其中J可以为G,D,S,B中的任意一个,然后浮栅的电势就可以由耦合系数表示为:
VFG=αGVGS+αDVDS+αSVS+αBVB (2)
可以看到浮栅的电势不仅与控制栅极相关,同时与源端、漏端和衬底的电势相关,如果源和衬底都接地,则
对于浮栅器件,阈值电压VT和传导系数β可由普通MOS器件的公式推导得到
当浮栅中存储有电荷时,
公式(3),(5),(7)即为:
从公式(9)可以看到V
T是和
直接相关的,同时,由该式可以的到V
T的改变ΔV
T可以表示为
在计算单元的控制栅极加上栅压脉冲,衬底上加负脉冲电压后,在衬底半导体中形成耗尽层。光输入时,代表光输入量的光子入射到半导体衬底耗尽区内,Si半导体衬底吸收一个光子并激发一个电子空穴对。光电子在栅极电压的驱使下加速移动到沟道,并获得足够高的能量,如果能量足够高,即可在栅氧电场的作用下进入电荷耦合层中,完成电荷存储。电荷耦合层在存入光电子后,读出时浮栅MOSFET的漏端电流和阈值电压将发生变化。
由式(11)可以知道光电子进入电荷耦合层后引起的器件阈值电压的变化可表示为
其中△VT为阈值电压的变化,Qe为单个电子电荷量电荷量,CCG为控制栅到浮栅的电容,Nelec为存储层中的光电子数目。公式表明阈值电压变化与光电荷量呈线性关系。通过对曝光前后阈值电压的变化量测量可推定光电子存储层中光电子数目,公式如下:
将控制栅到浮栅的电容CCG表达式代入上式
其中W,L分别代表VPS的栅宽和栅长,H为浮栅厚度,tIPD为所述器件单元中浮栅与栅之间的厚度。
由式(10)可以知道阈值电压变化对应于线性区漏端电流变化可以表示为如下
因而光电子的存储数目还可以通过测量线性区漏端电流的变化得到。
综上,最终读出区的源漏输出电流为:
从公式(16)中不难看出,作为读出量的漏电流ID同时受到作为光输入量的N、作为电输入量的VG和VDS作用,并且天生包含乘法和加法的运算关系,利用所述的作用关系,即可设计出可以实现各种不同功能的运算装置。
对于矩阵向量乘阵列而言,矩阵数据通过光输入端输入到每一个单元当中,而向量数据则是通过同行相连的控制栅极输入,根据矩阵向量乘法的运算规则可知,每个光电计算单元实现的应当为矩阵数据和向量数据,即光输入量和电输入量之间的乘法运算。在此种矩阵向量乘法阵列当中,乘法运算的具体实现方式如下:
以计算向量A和矩阵W的乘法运算A*W为例,其中A为n*1向量,W为m*n矩阵,如式(16),其中向量A中的元素通过电输入端输入,矩阵W中的元素通过光输入端输入。
首先,将向量A每一个的元素在控制系统中进行二进制转化:
k取决于向量中单个元素的位宽。
将计算单元按照如图3所示的形式排列成阵列,其中阵列的行数为n,列数为m,并且将阵列的所有同一行的计算单元的控制栅极都相连,输入同样的电输入数据;将阵列的所有同一列的计算单元的P型衬底的输出端都相连,使得输出的电流汇聚相加。
输入时,将矩阵中的m*n个数据,通过光输入端依次输入到m*n个光电计算单元中;将向量中的元素从同行单元相连的控制栅极上串行输入,同一元素不同比特位的二值数据分时依次输入,当控制栅上输入的是最低比特位的数据时,矩阵中的元素和向量中元素的最低比特位的二值数据进行对应位的相乘,即等于进行了运算(18):
电流汇聚前,n*m的光电计算单元阵列,每一个单元的计算结果分别为:
再经每一列的输出端都相连的输出电流电路,即等于进行了按列相加运算,结果(19)经汇聚相加后,最下方的矩阵向量乘法输出端输出为:
此结果即为式(16)的运算结果,完成了向量最低比特位和矩阵的矩阵向量乘法运算。
将计算结果(20)经过AD转换后输入控制系统,因为其为最低比特位故而左移0位,再将向量的第二低比特位作为电输入端数据输入控制栅极,得到向量第二低比特位和矩阵的矩阵向量乘法结果,输入控制系统后左移1位,并与之前所述向量最低比特位和矩阵乘法结果进行向量加法,以此类推,串行输入完向量的所有比特位二值数据,在控制系统后依次移位和累加后,即得到最终的矩阵向量运算结果,等同于进行了如下运算:
如果需要让该阵列中的计算单元处于光输入状态,须在P型衬底表面产生足够大的电场。其中一种光输入的控制方法为:所有计算单元的P型半导体衬底共用一个P井,通过在某一行或数行同行相连的控制栅极上施加正压,在某一列或数列同列相连的N型源极和N型漏极接零偏压,且在共用的P型半导体衬底接负压,来控制行和列相交处的计算单元处于光输入阶段;同时,通过在剩余行的计算单元的控制栅极上加零偏压,并在剩余列同列相连的源漏极加高于P型半导体衬底的负偏压,来阻止剩余计算单元处于光输入阶段。
另一种光输入的控制方法为:通过将不同列的单元制作在不同的P型衬底当中,并且在P型衬底外包N型井形成列和列的衬底之间的反偏PN结的隔离,需要某一单元单独进入光输入阶段时,该行的控制栅极上施加正压,其他行的控制栅极上接地;同时该列的P型衬底上施加负压,其他列的P型衬底接地,并且该列P型衬底的外围N井上施加正压防止PN结正向导通,并且将所有的源极和漏极都接地。此情况下,除了需要进入光输入状态的单元的电学状态为衬底表面相对于P型衬底有一足够大的正压降外,其他单元均无足够正压降存在,因此只有该单元进入光输入阶段。
对于不同列之间相互隔离的P型半导体衬底的结构,使矩阵向量乘阵列中单个光电计算单元处于光输入复位阶段的方法具体为:根据前文推导的分析,衬底在产生耗尽层后会进入光输入阶段并收集光子产生光生载流子,光生载流子会在电场的作用下被注入到电荷耦合层中并存储于此,作为“存算一体”的存量在相对于计算时间而言长时间内存储于此。当在P型衬底以及和控制栅极上施加和光输入阶段相反的压降时,电子就会在电场的作用下以FN隧穿的方式被从P型衬底中抽走,完成光输入量的复位。因此控制单个计算单元进入光输入数据复位阶段的方法可以通过将该行的控制栅极上施加负压,其他行的控制栅极上接地;同时该列的P型衬底上施加正压,并且该列P型衬底的外围N井上施加相同的正压放置PN结正向导通,其他列的P型衬底上施加更低的接地,并且将所有的源极和漏极都浮空。此情况下,除了需要进入光输入状态的单元的电学状态为控制栅极相对于P型衬底有一负压降外,其他单元均无足够负压降存在,因此只有该单元进入光输入复位阶段。
由于对于矩阵向量乘阵列而言,不需要对单个单元进行电输入,只需要对同行的单元进行相同的电输入即可,因此只需通过同行相连的控制栅极上施加代表电输入量的大小的正偏压,即代表矩阵数据中的某一个元素二值化后的某一比特位上的二进制数,使电输入量以载流子的形式输入该行所有光电运算单元的载流子控制区当中即可。
同样,对于矩阵向量乘阵列而言,不需要对单个单元进行读出,只需要操纵一列单元进行整体的输出即可。因此只需通过同列相连的漏端和源端之间施加正偏压,即可使一列计算单元进入读出状态。
值得注意的是,将读出阶段的控制和电输入阶段的控制相结合,即使单独某一行进行电输入状态,并且使单独某一列进入读出状态,则此时读出电流读出的值即为行列交叉处该单个光电计算单元的输出值,这在对整个阵列所有单元进行自检和一致性检查时有较大的作用。
实施例2
在矩阵向量乘阵列中,如果想对单个单元进行单独的电输入操作,则必须将不同列的光电计算单元的P型衬底隔离,这在工艺上会导致阵列之间距离的增大,从而导致芯片集成度的下降。为了克服这一问题,本实施例提出双控制栅结构,以解决如何让整个矩阵向量乘阵列在共用P型衬底的情况下对单个单元进行单独光输入的问题。
双控制栅结构的计算单元,除了控制栅极被劈成了两个相互独立的左侧控制栅极和右侧控制栅极之外,其他结构均和实施例1的光电计算单元相同。
本实施例单元的电学结构示意图如图5所示,不难看出,与实施例1唯一的区别就是控制栅极和电荷耦合层之间的电容从一个变为了两个,左侧控制栅极上的电势为VG1,右侧控制栅极上的电势为VG2,并且假设双控制栅极光电计算单元的顶层两个电容C3和C4之和近似等于单控制栅极光电计算单元的顶层电容C30,则此可等效为单控制栅时控制栅极电势等于:
可以看到,如果VG1和VG2满足上式的结果小于光输入所需的栅压,则光电计算单元不会进入光输入状态。
使用双控制栅结构的计算单元组成矩阵向量乘阵列时,同行的光电计算单元的所有左侧控制栅都通过引线相连;同列的光电计算单元的所有右侧控制栅都通过引线相连;所有单元共用P型衬底,源极和漏极的连接方式依旧为同列相连。如需使单个单元进入光输入阶段,只需在所有P型衬底上加一负偏压,在该单元所在行的左侧控制栅上施加一正偏压,其他行的左侧控制栅上施加一较高负偏压;该单元所在的同列相连的右侧控制栅上同样施加一正偏压,其他列的右侧控制栅上施加一较高负偏压。所述较高负偏压的为使得需要进入光输入状态的光电计算单元所在行或列中除了该单元的其他单元满足式(22)中的运算结果小于或等于P型衬底电压的一个高负偏压。在这种状态下,只有被行列选中的单元满足等效控制栅极电压和P型衬底之间电压大于光输入所需要电压的条件,能够产生用于收集光子产生光生载流子的耗尽区,因此只有单个单元进入光输入状态。
实施例3
本实施例使用矩阵向量乘阵列来进行分区域光输入情况下的对3*3的矩阵和3*1的向量的矩阵向量乘运算,并举例说明如何在一个3*3串行矩阵向量乘法器中控制光电计算单元处于各种不同的工作状态装,3*3的串行矩阵向量乘法器如图6所示,其中每一个带有一个V的方框,即代表一个计算单元,所有光电计算单元表示框内单元共用一个可以发出均匀光的发光单元进行光输入,通过金属走线相连。长边引出的一条引线代表控制栅极引线,短边的两条引线代表源极和漏极的引线,同列的单元共用P型衬底,不同列的单元P型衬底相互隔离,图6中的虚线代表列和列之间隔离的P型衬底。
使用该矩阵向量乘法器进行如下运算:
向量数据本身符合二进制数规则,无需转换。
对矩阵向量乘法器进行光输入,驱动发光单元发出均匀光,并从第0ms开始,在第一列的P型衬底上施加-3V电压,在第一行控制栅极上施加10V,其他单元施加0V;维持10ms后第三行控制栅极从0V也变为10V,第二行控制栅极保持0V,再维持10ms,这样,第一列的三个单元分别处于光输入阶段20ms、0ms和10ms,完成第一列单元的光输入。改变第一列P型衬底电势到0V,以保证光输入不会影响第一列数据的保持。在第二列P型衬底上施加-3V,用类似的方法第二行控制栅极处于10V状态50ms,第一行第三行保持0V,完成第二列的光输入。最后将第二列P型衬底恢复到0V,以相同的方式完成第三列的光输入之后,将所有单元的P型衬底恢复为0V,所有控制栅极电压变为0V,即完成了所有单元的光输入。
电输入阶段时,在第一行和第三行控制栅极上施加3V代表矩阵数值1,在第二行控制栅极上施加0V代表数值0,完成电输入。
读出阶段时,在所有的源漏之间施加0.5V的偏压,即可在3条同列相连的源端接收到代表矩阵向量乘运算结果的结果向量:(2,0,1)。