发明内容
针对以上技术问题,本发明的目的在于提供一种矩阵向量乘法器工作状态的控制方法。
本发明采用的技术方案如下:
一种矩阵向量乘法器工作状态的控制方法,其矩阵向量乘法器由多个光电计算单元排列组成,光电计算单元包括发光单元和计算单元,发光单元发出的光入射到计算单元中,所述计算单元包括三部分:作为光生载流子收集和读出区的P型半导体衬底;作为耦合区的电荷耦合层;作为载流子控制区的控制栅极;其中,P型半导体衬底分为收集区和读出区,读出区中设有浅槽隔离、N型源端和N型漏端,浅槽隔离位于收集区和读出区之间;矩阵向量乘法器中,每一行计算单元的控制栅极相连,每一列计算单元的N型漏端和N型源端分别相连;
所述控制方法具体为:通过在控制栅极、P型半导体衬底以及N型源极和N型漏极上施加不同的电学条件,来控制矩阵向量乘法器中的一个或多个计算单元处于接收光子并生成光生载流子的光输入阶段,或者处于接收电子并使电子和光生载流子产生运算关系的电输入阶段,或者处于输出被光生载流子和电输入电子共同作用的读出阶段,或者处于擦除光输入数据的光输入复位阶段。
进一步地,同列的计算单元被设置在同一个P型井内,不同列的计算单元位于不同的P型井内,不同的P型井之间通过反偏的PN结和氧化层隔离;所述P型井即为在井内的计算单元的P型半导体衬底;所述光输入阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅上施加正压,并在某一列或数列的P型半导体衬底上施加负压,来控制行和列相交处的计算单元处于光输入阶段;同时,在剩余行的计算单元的控制栅极上施加负压,并在剩余列的计算单元的P型半导体衬底上施加正压,来阻止剩余计算单元处于光输入阶段。
进一步地,同列的计算单元被设置在同一个P型井内,不同列的计算单元位于不同的P型井内,不同的P型井之间通过反偏的PN结和氧化层隔离;所述P型井即为在井内的计算单元的P型半导体衬底;所述光输入复位阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅极上施加负压或零偏压,且在某一列或数列的P型半导体衬底上施加正压;或者通过在某一行或数行同行相连的控制栅极上施加负压,且在某一列或数列的P型半导体衬底上施加正压或零偏压,来控制行和列相交处的计算单元处于光输入复位阶段;同时,在剩余行的计算单元的控制栅极上施加正压,剩余列的计算单元的P型半导体衬底上施加负压,来阻止剩余计算单元处于光输入复位阶段。
进一步地,所述电输入阶段的具体控制方法为:通过在某一行或数行同行相连的控制栅极上施加代表电输入量的大小的正偏压,使电输入量以载流子的形式输入载流子控制区当中,使该一行或数行的计算单元处于电输入阶段;同时,在剩余行的计算单元的控制栅极上施加零偏压或小于阈值的偏压或浮空,来阻止剩余计算单元进入电输入阶段。
进一步地,所述读出阶段的控制方法具体为:通过在某一列或数列同列相连的N型源极和N型漏极之间施加适当的偏压,使光生载流子收集和读出区中受到光输入量和电输入量共同作用的载流子以电流的形式输出,该一列或数列的计算单元进入读出阶段并完成读出工作;同时,通过在剩余列的计算单元的N型源极和N型漏极之间施加零偏压或浮空,来阻止剩余计算单元处于读出阶段。
进一步地,所述控制栅极采用双栅极结构,包括第一控制栅极和第二控制栅极,同行的计算单元的第一控制栅极通过引线相连,同列的计算单元的第二控制栅极通过引线相连;所述光输入阶段的具体控制方法为:通过在某一行或数行同行相连的第一控制栅极上施加正压,并在某一列或数列同列相连的第二控制栅极上施加零偏压或正压,且在P型半导体衬底中施加零偏压;或者通过在某一行或数行同行相连的第一控制栅极上施加正压或零偏压,并在某一列或数列同列相连的第二控制栅极上施加正压,且在P型半导体衬底中施加零偏压,来控制行和列相交处的计算单元处于光输入阶段;同时,在剩余行的计算单元的第一控制栅极上施加负压,剩余列的计算单元的第二控制栅极上施加负压,来阻止剩余计算单元处于光输入阶段。
本发明借助于施加在光电计算单元不同功能区上的电学条件,可以准确地使各个光电计算单元进入光输入阶段、电输入阶段、读出阶段或光输入复位阶段。通过控制矩阵向量乘法器中各计算单元的工作状态,可以实现高精度的光输入,大大提高了器件计算的准确度。
具体实施方式
本发明提供一种由光电计算单元组成的矩阵向量乘法器及其工作状态的控制方法。
如图1所示,光电计算单元中的计算单元为包括三大功能区的多功能区结构,其中三大功能区为:载流子控制区、耦合区、光生载流子收集和读出区,具体功能分别如下:
载流子控制区:负责控制并调制光电计算单元内的载流子,并且作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量;或者只控制并调制光电计算单元内的载流子,通过其他区域输入电输入量。
耦合区:负责连接光生载流子收集和读出区中的收集区和读出区,使得光子入射产生的光生载流子作用于光电计算单元内的载流子,形成运算关系。
光生载流子收集和读出区:包括收集区和读出区,其中收集区负责吸收入射的光子并收集产生的光生载流子,并且作为光电计算单元的光输入端口,输入其中一个运算量作为光输入量;读出区可以作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量,并且作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子作为单元输出量;或者通过其他区域输入电输入量,读出区只作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子,作为单元输出量。
单个计算单元和一个发光单元组合成一个完整的光电计算单元,发光单元发出的光作为入射光电计算单元光生载流子收集和读出区的光子,参与运算。
实施例1
如图2所示,本实施例的计算单元包括:作为载流子控制区的控制栅极、作为耦合区的电荷耦合层,以及作为光生载流子收集区和读出区的P型衬底,P型衬底中分为左侧收集区和右侧读出区,其中右侧读出区中包括浅槽隔离、通过离子注入形成的N型源端和N型漏端。浅槽隔离位于半导体衬底中部、收集区和读出区的中间,浅槽隔离通过刻蚀并填充入二氧化硅来形成,以用于隔离收集区和读出区的电信号。N型源端位于读出区内靠近底层介质层的一侧,通过离子注入法掺杂而形成。N型漏端位于半导体衬底中靠近底层介质层与N型源端相对的另一侧,同样通过离子注入法进行掺杂法形成。应理解,本文中提及的左侧、右侧、上方以及下方只代表在通过图中所示视角观察下的相对位置随观察视角变化而变化,并不理解为对具体结构的限制。
在收集区的衬底上施加一个电压范围为负压的脉冲,或在控制栅上施加一个电压范围为正压的脉冲,使得收集区衬底中产生用于光电子收集的耗尽层,并通过右侧读出区读出收集的光电子数量,作为光输入端的输入量。读出时,在控制栅极上施加一正电压,使N型源端和收集区N型漏端间形成导电沟道,再通过在N型源端和N型漏端间施加一个偏置脉冲电压,使得导电沟道内的电子加速形成源漏之间的电流。源漏之间沟道内形成电流的载流子,受到控制栅电压、源漏间电压和收集区收集的光电子数量共同作用,作为被光输入量和电输入量共同作用后的电子,以电流的形式进行输出,其中控制栅电压、源漏间电压可以作为器件的电输入量,光电子数量则为器件的光输入量。
耦合区的电荷耦合层用于连接收集区和读出区,使收集区衬底内耗尽区开始收集光电子以后,收集区衬底表面势就会受到收集的光电子数量影响;通过电荷耦合层的连接,使得读出区半导体衬底表面势受到收集区半导体衬底表面势影响,进而影响读出区源漏间电流大小,从而通过判断读出区源漏间电流来读出收集区收集的光电子数量;
载流子控制区的控制栅极,用以在其上施加一个脉冲电压,使得在P型半导体衬底读出区中产生用于激发光电子的耗尽区,同时也可以作为电输入端,输入其中一位运算量。
此外,P型半导体衬底和电荷耦合层之间存在用于隔离的底层介质层;电荷耦合层和控制栅之间亦存在用于隔离的顶层介质层。
使用以上计算单元组成的矩阵向量乘法器如图3所示,其中每一个中心带有一个V的方框都代表一个计算单元。该阵列的特点为:同行的计算单元的控制栅极都相连,同列的计算单元的读出区MOSFET的源极和漏极都相连。工作时,矩阵数据通过光输入到阵列的每一个单元当中,作为光输入量;向量数据通过同行相连的控制栅极转化为二进制数依次将各个比特位上的二值化数据输入控制栅极当中,作为电输入量,源极接地漏极加恒定偏压,即可在源端得到通过电流汇聚实现同列相加的结果向量。
对大规模矩阵向量乘阵列进行状态控制的难点在于:可用于控制计算单元工作状态的四个电学端口:控制栅极、P型衬底、N型源极和漏极大部分都存在于同行或者同列,甚至存在全部单元都互联的状态。要通过多个计算单元之间已经形成互联的端口对单独某一个单元进行控制,是一件较为困难的事,尤其是让单个单元进入光输入阶段,因为大量实验证明,对于大规模光电计算阵列,准确度最高的光输入方式为通过控制单元处于光输入状态的时长来控制光输入的量的大小,这就要求必须能做到对阵列中的每一个单元都精确的控制其状态。
控制矩阵向量乘阵列中的计算单元处于各种状态的核心思路为:通过在同行相连的控制栅极上和同列相连的N型漏极、N型源极以及P型衬底上施加不同的电学条件,来控制光电矩阵向量乘阵列中的一个或多个计算单元处于接收光子,并生成光生载流子的光输入阶段;或处于接收电子,并使电子和光生载流子产生运算关系的电输入阶段;或处于输出被光生载流子和电输入电子共同作用的被作为光电运算结果读出区电子的读出阶段;或处于擦除光输入数据的光输入复位阶段。
关于矩阵向量乘法器的功能和原理详细推导如下:
如图3所示,左侧收集区等效于一个电容为
的MOS电容,右侧读出区等效于一个标准的浮栅MOS管。由于设计时,电容C
2远小于C
1,因此器件工作时读出区对感光区产生的影响忽略不计。
对于一个MOS-电容Si中的电势可以通过解如下泊松方程得到:
其中,εSI为硅的介电常数,ρ为P型衬底的体电荷密度。
当作为载流子收集和读出区的P型衬底施加一负脉冲,或作为载流子控制区的控制栅上施加一正脉冲时,衬底将处在耗尽状态,开始收集作为光输入信号的光子并产生光电子,对于耗尽区而言ρ=qNA,其中NA为掺杂浓度。
求解上述泊松方程可以得到:
其中,x方向为垂直于底层介质层向下的方向,xd为耗尽区深度,q为电子电荷量,V为深度为x处的电势。对于MOS而言,P型衬底表面电势VS即为x=0时电势V的值
因此可得:
求导该式即可得:
其中ES为表面电场强度,假设衬底电压设为0V,这样感光过程中的控制栅极电势为:
其中,VG为控制栅电势,解可得耗尽区深度xd为:
当有光子入射器件时,在耗尽区内产生光电子并且在栅极电场的作用下收集于收集区沟道内,控制栅上的总电荷量QCG=NA+Q,Q即为信号电荷量(e-/cm2),因为此信号电荷在控制栅和P型衬底之间电场的作用下被收集于收集区中,并且因为半导体衬底中载流子的复合需要一定的时间,再加上耗尽区内热激发载流子的存在,因此,此信号电荷将在断光后较长的时间内依旧存储于运算单元当中,实现存-算一体功能。
此时,
其中,VQ为信号电荷产生的电势总和:
由上式可以看到随着信号电荷量Q的增大,xd逐渐减小,当Q的值使得VQ=0时xd即为0,此时表面电势Vs=0,沟道电势不再变化,此时器件到达满阱。
对于右侧的读出区浮栅MOSFET,其沟道电流Id可以表示为:
其中W和L分别为栅宽栅长,VDS为源漏间电压,VFG为电荷耦合层电势,其大小受到控制栅电势VG和P型衬底表面势Vs的影响,可表示为:
当P型衬底掺杂浓度较低时(如2E15每立方厘米),耗尽区的分压远大于电容C1和C3的分压,因此公式(6)可以简化为:
式(11)带入(3),即得到P型衬底表面电势VS和控制栅电势VG以及信号电荷产生的电势总和VQ为近似相等,即:
Vs≈VQ (12)
将公式(12)、(8)带入(10),再带入(9),即可得:
并用入射光子数Xphoton来表示信号电荷Q的大小:
Q=Xphotontη (14)
其中t为曝光时间,Xphoton为单位时间入射的光子个数,η为器件量子效率。
从而就得到器件可以作为乘法器工作的表达式:
从公式(15)中不难看出,作为输出量的读出区源漏电流Id同时受到作为光输入量的Xphoton、作为电输入量的VG和VDS作用,利用这样的作用关系,该光电计算单元就可以实现各种不同的运算功能。
对于矩阵向量乘法器而言,矩阵数据通过光输入端输入到每一个单元当中,而向量数据则是通过同行相连的控制栅极输入,根据矩阵向量乘法的运算规则可知,每个光电计算单元实现的应当为矩阵数据和向量数据,即光输入量和电输入量之间的乘法运算。在此种矩阵向量乘法器当中,所述乘法运算的具体实现方式如下:
以计算向量A和矩阵W的乘法运算A*W为例,其中A为n*1向量,W为m*n矩阵,如式(16),其中向量A中的元素通过电输入端输入,矩阵W中的元素通过光输入端输入。
首先,,将A每一个的元素在控制系统中进行二进制转化:
k取决于向量中单个元素的位宽。
将光电计算单元按照如图3所示的形式排列成阵列,图3中每一个中心有一个V的方框即代表一个光电计算单元,其中阵列的行数为n,列数为m,并且将所述阵列的所有同一行的光电计算单元的作为所述载流子控制区的控制栅极都相连,输入同样的电输入数据;将所述阵列的所有同一列的光电计算单元的作为所述载流子收集和读出区的P型衬底的输出端都相连,使得输出的电流汇聚相加。
输入时,将矩阵中的m*n个数据,通过光输入端依次输入到m*n个光电计算单元中;将向量中的元素从同行单元相连的控制栅极上串行输入,同一元素不同比特位的二值数据分时依次输入,当控制栅上输入的是最低比特位的数据时,矩阵中的元素和向量中元素的最低比特位的二值数据进行对应位的相乘,即等于进行了运算(18):
电流汇聚前,n*m的光电计算单元阵列,每一个单元的计算结果分别为:
再经每一列的输出端都相连的输出电流电路,即等于进行了按列相加运算,结果(19)经汇聚相加后,最下方的矩阵向量乘法输出端输出为:
此结果即为式(16)的运算结果,完成了向量最低比特位和矩阵的矩阵向量乘法运算。
将计算结果(20)经过AD转换后输入控制系统,因为其为最低比特位故而左移0位,再将向量的第二低比特位作为电输入端数据输入控制栅极,得到向量第二低比特位和矩阵的矩阵向量乘法结果,输入控制系统后左移1位,并与之前所述向量最低比特位和矩阵乘法结果进行向量加法,以此类推,串行输入完向量的所有比特位二值数据,在控制系统后依次移位和累加后,即得到最终的矩阵向量运算结果,等同于进行了如下运算:
控制系统,可以是数字电路,也可以是计算机、单片机、FPGA等多种逻辑控制单元。
上文所述的为串行输入矩阵向量乘法器的工作方式,并行输入的矩阵向量乘法器之在布线方式和使用的光电计算单元数量上有所差异但本质上相同。以串行输入矩阵向量乘法器为例,如果需要让该阵列中的光电计算单元处于光输入状态,须在P型衬底的光生载流子收集和读出区中的收集区中,即P型衬底的左侧感光区中产生耗尽层,除了推导中所述的再控制栅极上施加正压VG,还可以通过在衬底上施加负压的方式来产生耗尽层,根据电势的相对性原理,因为光电计算单元处于光输入状态时N型源极和漏极均浮空,因此此时的电学端口只有控制栅极和衬底,故而只要控制栅极相对于衬底产生了足够的正电势差,即可产生足够的耗尽层以收集作为光输入量的入射光子。因此控制单个光电计算单元进入光输入阶段的方法可以通过将不同列的单元制作在不同的P型衬底当中,并且在P型衬底外包N型井形成列和列的衬底之间的反偏PN结的隔离,需要某一单元单独进入光输入阶段时,该行的控制栅极上施加正压,其他行的控制栅极上施加负压;同时该列的P型衬底上施加负压,其他列的P型衬底上施加正压,并且该列P型衬底的外围N井上施加相同的正压放置PN结正向导通,并且将所有的源极和漏极都浮空。此情况下,除了需要进入光输入状态的单元的电学状态为控制栅极相对于P型衬底有一正压降外,其他单元均无正压降存在,因此只有该单元进入光输入阶段。
使矩阵向量乘法器中单个光电计算单元处于光输入复位阶段的方式,同单个单元的光输入方法类似,将不同列的P型衬底隔离,将同列的光电计算单元共用P型衬底。根据前文推导的分析,左侧感光区在产生耗尽层后会进入光输入阶段并收集光子产生光生载流子,光生载流子会在电场的作用下被收集到左侧感光区的表面并存储于此,作为“存算一体”的存量在相对于计算时间而言长时间内存储于此,因此当在P型衬底和控制栅极上施加和光输入阶段相反的压降时,电子就会在电场的作用下被从P型衬底中抽走,完成光输入量的复位,此外,完全撤去加在衬底和控制栅极上的电学条件后,由于载流子的复合作用,较长时间后光输入量也会自行复合完成复位。因此控制单个光电计算单元进入光输入数据复位阶段的方法可以通过将该行的控制栅极上施加负压,其他行的控制栅极上施加更高的正压;同时该列的P型衬底上施加正压,并且该列P型衬底的外围N井上施加相同的正压放置PN结正向导通,其他列的P型衬底上施加更低的负压,并且将所有的源极和漏极都浮空。此情况下,除了需要进入光输入状态的单元的电学状态为控制栅极相对于P型衬底有一负压降外,其他单元均无负压降存在,因此只有该单元进入光输入复位阶段。需要注意的是,因为此时不处于光输入数据复位阶段的光电计算单元都处于控制栅极相对于P型衬底的正压降情况下,因此此过程中如果有光的存在会发生并不期望的光输入,并且单元处于此阶段的时间应当尽可能短,以避免载流子热激发的出现导致的光输入数据的增加。
对于矩阵向量乘法器而言,不需要对单个器件进行电输入,只需要对同行的单元进行相同的电输入即可,因此只需通过同行相连的控制栅极上施加代表电输入量的大小的正偏压,即代表矩阵数据中的某一个元素二值化后的某一比特位上的二进制数,使电输入量以载流子的形式输入该行所有光电运算单元的载流子控制区当中即可。
同样,对于矩阵向量乘法器而言,不需要对单个器件进行读出,只需要操纵一列单元进行整体的输出即可。因此只需通过同列相连的漏端和源端之间施加正偏压,即可使一列光电计算单元进入读出状态。
值得注意的是,将读出阶段的控制和电输入阶段的控制相结合,即使单独某一行进行电输入状态,并且使单独某一列进入读出状态,则此时读出电流读出的值即为行列交叉处该单个光电计算单元的输出值,这在对整个阵列所有单元进行自检和一致性检查时有较大的作用。
实施例2
在矩阵向量乘阵列中,如果想对单个单元进行单独的电输入操作,则必须将不同列的光电计算单元的P型衬底隔离,这在工艺上会导致阵列之间距离的增大,从而导致芯片集成度的下降。为了克服这一问题,本实施例提出双控制栅结构,以解决如何让整个矩阵向量乘阵列在共用P型衬底的情况下对单个单元进行单独光输入的问题。
双控制栅结构的计算单元如图5所示,除了控制栅极被劈成了两个相互独立的左侧控制栅极和右侧控制栅极之外,其他结构均和实施例1的光电计算单元相同。
本实施例单元的电学模型如图6所示,不难看出,与实施例1唯一的区别就是控制栅极和电荷耦合层之间的电容从一个变为了两个,左侧控制栅极上的电势为VG1,右侧控制栅极上的电势为VG2,并且假设双控制栅极光电计算单元的顶层两个电容C3和C4之和近似等于单控制栅极光电计算单元的顶层电容C30,则此可等效为单控制栅时控制栅极电势等于:
可以看到,如果VG1和VG2满足上式的结果小于光输入所需的栅压,则光电计算单元不会进入光输入状态。
使用双控制栅结构的计算单元组成矩阵向量乘阵列时,同行的光电计算单元的所有左侧控制栅都通过引线相连;同列的光电计算单元的所有右侧控制栅都通过引线相连;所有单元共用P型衬底,源极和漏极的连接方式依旧为同列相连。如需使单个单元进入光输入阶段,只需在所有P型衬底上加一负偏压,在该单元所在行的左侧控制栅上施加一正偏压,其他行的左侧控制栅上施加一较高负偏压;该单元所在的同列相连的右侧控制栅上同样施加一正偏压,其他列的右侧控制栅上施加一较高负偏压。所述较高负偏压的为使得需要进入光输入状态的光电计算单元所在行或列中除了该单元的其他单元满足式(22)中的运算结果小于或等于P型衬底电压的一个高负偏压。在这种状态下,只有被行列选中的单元满足等效控制栅极电压和P型衬底之间电压大于光输入所需要电压的条件,能够产生用于收集光子产生光生载流子的耗尽区,因此只有单个单元进入光输入状态。
实施例3
本实施例使用矩阵向量乘法器来对3*3的矩阵和3*1的向量的矩阵向量乘运算,并举例说明如何在一个3*3串行矩阵向量乘法器中控制光电计算单元处于各种不同的工作状态装,3*3的串行矩阵向量乘法器如图7所示,其中每一个带有一个V的方框,即代表一个计算单元,每一个虚线框框出的单元表示框内计算单元在位置上相邻且共用一个可以在框内发出均匀光的发光单元进行光输入,不同框的单元位置上距离较远,通过金属走线相连,之间不会发生光串扰。长边引出的一条引线代表控制栅极引线,短边的两条引线代表源极和漏极的引线,同列的单元共用P型衬底,不同列的单元P型衬底相互隔离。
使用上述矩阵向量乘法器进行如下运算:
向量数据本身符合二进制数规则,无需转换。
对矩阵向量乘法器进行光输入,驱动最左测一列的发光单元发出均匀光,并从第0ms开始,在第一列的P型衬底上施加-3V电压,在第一行控制栅极上施加0V,其他单元施加-3V;维持10ms后第三行控制栅极从-3V也变为0V,第二行控制栅极保持-3V,再维持10ms,这样,第一列的三个单元分别处于光输入阶段20ms、0ms和10ms,完成第一列单元的光输入。关闭第一列的发光单元,并改变第一列P型衬底电势到-5V,以保证第二列的光输入不会影响第一列数据的保持。开启第二列的发光单元,并在第二列P型衬底上施加-3V,用类似的方法第二行控制栅极处于0V状态50ms,第一行第三行保持-3V,完成第二列的光输入。最后关闭第二列发光单元,并将第二列P型衬底降低到-5V,以相同的方式完成第三列的光输入之后,将所有单元的P型衬底升高为-3V,所有控制栅极电压变为0V,即完成了所有单元的光输入。
电输入阶段时,在第一行和第三行控制栅极上施加3V代表矩阵数值1,在第二行控制栅极上施加0V代表数值0,完成电输入。
读出阶段时,在所有的源漏之间施加0.5V的偏压,即可在3条同列相连的源端接收到代表矩阵向量乘运算结果的结果向量:(2,0,1)。