具体实施方式
本发明提供一种光电计算单元的工作状态控制方法,以及由该光电计算单元组成的卷积运算器及控制方法。
如图1所示,光电计算单元中的计算单元为包括三大功能区的多功能区结构,其中三大功能区为:载流子控制区、耦合区、光生载流子收集和读出区,具体功能分别如下:
载流子控制区:负责控制并调制光电计算单元内的载流子,并且作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量;或者只控制并调制光电计算单元内的载流子,通过其他区域输入电输入量。
耦合区:负责连接光生载流子收集和读出区中的收集区和读出区,使得光子入射产生的光生载流子作用于光电计算单元内的载流子,形成运算关系。
光生载流子收集和读出区:包括收集区和读出区,其中收集区负责吸收入射的光子并收集产生的光生载流子,并且作为光电计算单元的光输入端口,输入其中一个运算量作为光输入量;读出区可以作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量,并且作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子作为单元输出量;或者通过其他区域输入电输入量,读出区只作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子,作为单元输出量。
单个计算单元和一个发光单元组合成一个完整的光电计算单元,发光单元发出的光作为入射光电计算单元光生载流子收集和读出区的光子,参与运算。
实施例1
如图2所示,本实施例的计算单元包括:作为载流子控制区的控制栅极、作为耦合区的电荷耦合层,以及作为光生载流子收集和读出区的P型半导体衬底,其中P型衬底中包含通过离子注入形成的N型源端和漏端。P型半导体衬底可以同时承担感光和读出的工作。N型源端位于读出区内靠近底层介质层的一侧,通过离子注入法掺杂而形成。N型漏端位于半导体衬底中靠近底层介质层与所述N型源端相对的另一侧,同样通过离子注入法进行掺杂法形成。
感光时,在P型半导体衬底上施加一个电压范围为负压的脉冲,同时在作为载流子控制区的控制栅极上施加一个电压范围为正压的脉冲,使得P型衬底中产生用于光电子收集的耗尽层,产生在耗尽区内的电子在控制栅极和P型衬底两端之间的电场作用下被加速,并在到达获得足够高的能量,穿过P型衬底和电荷耦合层之间的底层介质层势垒,进入电荷耦合层并储存于此,电荷耦合层中的电荷数量,会影响器件开启时的阈值,进而影响读出时的源漏间电流大小;读出时,在控制栅极上施加一脉冲电压,使N型源端和N型漏端间形成导电沟道,再通过在N型源端和N型漏端间施加一个脉冲电压,使得导电沟道内的电子加速形成源漏之间的电流。源漏之间的电流受到控制栅脉冲电压、源漏间电压和电荷耦合层中存储的电子数量共同作用,作为被光输入量和电输入量共同作用后的电子,以电流的形式进行输出,其中控制栅电压、源漏间电压可以作为器件的电输入量,电荷耦合层中存储的光电子数量则为器件的光输入量。
耦合区的电荷耦合层用于储存进入其中的光电子,并改变读出时器件阈值大小,进而影响读出区源漏间电流,从而通过判断读出区源漏间电流来读出感光时产生并且进入电荷耦合层中的光电子数量。
载流子控制区的控制栅,用以在其上施加一个脉冲电压,使得在P型半导体衬底读出区中产生用于激发光电子的耗尽区,同时也可以作为电输入端,输入其中一位运算量。
此外,P型半导体衬底和电荷耦合层之间存在一层用于隔离的底层介质层;电荷耦合层和控制栅之间亦存在一层用于隔离的顶层介质层。
控制单个计算单元处于各种状态的技术思路为:通过在控制栅极和P型衬底以及N型源极和漏极施加不同的电学条件,改变光电计算单元内的电学状态,以此使得器件处于不同的工作阶段。工作阶段一共包括四个:处于接收光子,并生成光生载流子的光输入阶段;处于接收电子,并使电子和光生载流子产生运算关系的电输入阶段;处于输出被光生载流子和电输入电子共同作用的被作为光电运算结果读出区电子的读出阶段;处于擦除光输入数据的光输入复位阶段。每个阶段的具体控制方法如下:
1、控制单个计算单元处于光输入阶段的方法为:在P型半导体衬底上施加一个电压范围为负压的脉冲,同时在作为载流子控制区的控制栅极上施加一个电压范围为正压的脉冲,使得P型衬底中产生用于光电子收集的耗尽层,产生在耗尽区内的电子在控制栅极和P型衬底两端之间的电场作用下被加速,并在到达获得足够高的能量,穿过P型衬底和电荷耦合层之间的底层介质层势垒,进入电荷耦合层并储存于此,电荷耦合层中的电荷数量,会影响器件开启时的阈值,进而影响读出时的源漏间电流大小,关于上述操作方式的详细推导过程如下:
如图3所示,本实施例计算单元的结构和浮栅器件大致相当,最顶端的栅是控制栅,与中间的电荷耦合层是完全隔开的,电荷耦合层即相当于浮栅器件中的浮栅。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作用,并且天生包含乘法和加法的运算关系,利用所述的作用关系,即可设计出可以实现各种不同功能的运算装置。
2、控制单个计算单元处于光输入复位阶段的方法为:通过在控制栅极上施加负压,并且在P型衬底上施加正压或者零偏压,亦或在控制栅极上施加负压或零偏压,并且在P型衬底上施加正压。根据前文的分析,衬底进入光输入阶段收集光子产生光生载流子,光生载流子会在电场的作用下被收集到电荷耦合层并存储于此。当在P型衬底和控制栅极上施加和光输入阶段相反的压降时,电子就会在电场的作用下以FN隧穿的方式被从电荷耦合层中抽走,完成光输入量的复位。
3、控制单个光电计算单元处于电输入阶段的方法为:通过在控制栅极上施加代表电输入量的大小的正偏压,使电输入量以载流子的形式输入光电运算单元的载流子控制区当中;或者在P型衬底的N型漏极和N型源极之间施加代表电输入量的大小的偏压,使电输入量以载流子的形式输入光电运算单元的载流子收集和读出区当中,使光电计算单元进入电输入阶段并输入电输入量。
根据式(16),如果使用控制栅极作为电输入量的输入端口,则输入的电输入量和最后作为结果输出的源漏间电流的关系则为加法关系,再加上光输入量和输出电流同为加法关系,则此时光电计算单元实现的功能可以被认为是加法运算;或者电输入量被输入固定为0或者1的二值化的值,则也可以认为此时光电计算单元实现的运算是0×Q或者1×Q的乘法运算,其中Q为光输入量。如果使用载流子收集和读出区中读出区的N型源极和N型漏极作为电输入量的输入端口,则输入的电输入量和最后作为结果输出的源漏间电流的关系则为乘法关系,光电计算单元进行的为乘法运算。因为控制栅极的电压必须大于沟道开启的阈值,否则运算结果将无法通过读出区电流读出,因此控制栅极作为电输入端时的电压有个下限。
因为电输入量不具有“存储”的功能,如果需要使电输入量输入到单元中参与运算,就必须使计算单元长时间处于电输入阶段。因此,使光电计算单元处于电输入阶段的条件为:
且V
G代表电输入量或V
DS存在代表电输入量的电压。
4、控制单个光电计算单元处于读出阶段的方法为:当代表电输入量的载流子通过控制栅极输入计算单元当中时,通过在P型衬底中的N型源极和N型漏极之间加一恒定偏压,使P型衬底区沟道内受到光输入量和电输入量共同作用的载流子以电流的形式输出,让计算单元进入读出阶段并完成读出工作;或者当代表电输入量的载流子通过P型衬底中的源极和漏极输入计算单元当中时,通过在控制栅极上施加一恒定偏压,使P型衬底表面产生沟道,受到光输入量和电输入量共同作用的沟道内载流子再以电流的形式输出,使计算单元进入读出阶段并完成读出工作。
根据前文的分析,当通过控制栅极进行电输入的时候,计算单元实现加法或二值化乘法运算,此时需要在P型衬底的源漏之间施加一恒定偏压,就可以驱动沟道内受到光输入量和电输入量共同作用的载流子产生电流并读出;同样,当通过源极和漏极进行电输入的时候,光电计算单元实现乘法运算,此时需要在控制栅极上施加一恒定且大于MOSFET阈值的正压,就可以驱动沟道内受到光输入量和电输入量共同作用的载流子产生电流并读出。
因此,使计算单元处于读出阶段的条件为:
实施例2
使用实施例1的光电计算单元可以组成如图4所示的卷积运算器,该图中为一卷积核为3*3尺寸的卷积运算器,其中每一个带有一个V的方框,即代表一个使用实施例1的光电计算单元,长边引出的一条引线代表控制栅极引线,短边的两条引线代表源极和漏极的引线,9个光电计算单元共用一个P型衬底的接口。卷积运算器的工作原理如下:
以矩阵A的针对于卷积核a的卷积运算为例,简单介绍下卷积运算的过程,其中A为10*10矩阵,a为3*3的卷积核,步长为1,如式(17):
卷积运算的规则,是待卷积矩阵在卷积核的映射下和卷积核中元素一一作用,再按照相应的步长移动卷积核,进行下一次映射。要求解(17)中的卷积运算,需要进行以下几个步骤:
1)补零操作:
将待卷积矩阵A从10*10矩阵扩展为12*12矩阵,即在0行之上,0列之左,10行之下和10列之又各添加一行/列,添加的行列中的元素全部为0,故而叫补零,经过后,矩阵A变为矩阵A0,如(18):
2)确定初始卷积核位置:
卷积核的初始位置和矩阵A的最左上角重合,即卷积核a的3行3列分别对应矩阵A0的第0、1、2行和第0、1、2列,再将卷积核中的元素和与卷积核对应位置的矩阵A0中的元素一一相乘,如式(19),变为9个乘法结果,再将9个乘法结果全部累加,得到当前卷积核位置的卷积运算结果,叫做R00,即为完成(20)所述运算:
(a00*0)+(a01*0)+(a02*0)+(a10*0)+(a11*A00)+(a12*A01)+(a20*0)+(a21*A10)+(a22*A11)=R00 (20)
3)移动卷积核的位置:
因为事先定义了此次卷积运算的步长为1,因此将卷积核的位置左移1列,即左移1列后卷积核a的3行3列分别对应矩阵A0的第0、1、2行和第1、2、3列,之后再在当前位置下进行卷积运算,将卷积运算结果叫做R01。
4)待卷积核遍历整个矩阵A0后,一共可以得到(10+2-2)2个卷积结果,将卷积结果按照对应的卷积核位置排列为矩阵,得到(21)
上述矩阵R,即为带卷积矩阵A,在卷积核a的作用下进行步长为1的卷积运算的结果。从上述卷积运算的步骤中可以看出,卷积运算即为多次两个矩阵对应元素两两相乘再累加的运算,其中元素两两相乘的两个矩阵,其中一个矩阵为卷积核,为在多次运算中不变的量,另一个矩阵为带卷积矩阵与卷积核位置对应的元素,在多次运算中为变化的量,因此可以利用光输入存储可以存储数据这一优势特性,采用光输入端输入卷积核数据,并通过电输入端输入带卷积矩阵数据进行卷积运算,这样可以极大提高能效比和运算速度。因此,单元的电输入端为卷积运算器的待卷积矩阵数据输入端,光输入端为卷积核输入端。
卷积运算器可以分为串行输入和并行输入两种,主要区别为使用单元的数量和电输入端数据输入的方式,串行输入方案如下:根据卷积运算方式,使用数量和卷积核中元素数量相当的采用第一种方案的光电计算单元,将单元排列成和卷积核维度相同的阵列,并将载流子收集和读出区中读出区的输出端全部相连,通过汇聚完成相加。
首先,将卷积核数据通过光输入端,一一输入到计算单元当中,再将矩阵中当前卷积核对应位置的数据转化为二进制,然后串行从所述作为载流子控制区的控制栅上输入阵列中,输出的结果汇聚相加后经过AD转换进入控制系统,再经过移位和累加,即得到当前卷积核位置的卷积运算结果,之后在移动卷积核,利用之前光输入预存好的卷积核数据,直接重新输入电输入数据,即可获得下一个卷积核位置对应的卷积运算结果,以此类推,直到卷积核便利整个待卷积矩阵,然后将输出的卷积结果重新组合成结果矩阵,即完成了全部卷积运算。
以下详细举例说明如何在一个3*3卷积核的卷积运算器中控制单个光电计算单元处于各种不同的工作状态装并进行精确的光输入。
代表3*3卷积核的共9个数据通过光分别输入九个光电计算单元当中,利用多次卷积运算中卷积核数据不变的特性发挥光电计算单元“存算一体”的优势;被卷积矩阵中的数据从9个控制栅极引线依次输入。
如需使卷积运算器中的9个光电计算单元中的任意一个单元进入光输入阶段,根据单个单元进入光输入阶段的控制方法,只需在P型衬底上施加-3V的电压,并在需要进入光输入阶段的器件的控制栅极上施加10V,产生表面到衬底的3V电势差的耗尽层,其他不需要进入光输入阶段的器件的控制栅极上加0V,使表面到衬底的电场强度小于光输入的条件。
如需使卷积运算器中的9个光电计算单元中的任意一个单元进入光输入数据复位阶段,则需在需要进入复位阶段的器件的漏极上施加+7V,并在需要进入复位阶段的器件的控制栅极上施加-7V,其他不需要进入复位阶段的器件的控制栅极上施加0V,即可完成光电计算单元的光输入数据复位。
假如发光单元采用单一均场光源光输入的方法,通过控制每个计算单元处于光输入阶段的时间长短,来对该卷积运算器进行光输入,需要输入的卷积核矩阵为
则具体步骤为:
1、打开均场光源照射卷积运算器。
2、驱动图4中最左上角的光电计算单元进入光输入阶段20ms,代表光输入量为2时光电计算单元应当被输入2000个电子。
3、在图4中的Vd处施加恒定电压值0.5V,下端读出端接0V。并在左上角光电计算单元的控制栅极引线上施加3V电压,其他单元的控制栅极施加0V,使得只有左上角的光电计算单元进入读出阶段并输出电流。
4、假如当光输入量精确等于2000个电子时,该单元的读出电流应当为10uA,但实际左上角的单元读出电流为9uA,则再驱动该单元进入光输入阶段2ms,再次判断读出电流,发现等于9.9uA,认为光输入精度已经达到要求,即可认为该单元的光输入已完成。
5、用同样的方法驱动该卷积运算器中其他8个光电计算单元完成光输入,即完成了整个卷积运算器的高精度光输入。
因为卷积运算中多次运算卷积核数据不变,因此进行一次精准的光输入后,可完成多次卷积运算。
假如发光单元采用单一均场光源光输入的方法,控制单个光电计算单元进入固定时长的光输入阶段,对该卷积运算器进行光输入。其中,固定时长相对于使得光电计算单元达到光输入量饱和的最大时长而言是短暂的,具体时长取决于所需要达到的光输入精度;需要输入的卷积核矩阵同样为
则具体步骤为:
1、打开均场光源照射卷积运算器。
2、驱动图4中最左上角的光电计算单元进入光输入阶段0.1ms,代表光输入量为0.01时光电计算单元应当被输入10个电子,作为光输入的最小单位,最终需要达到的光输入量为2,则需要输入2000个电子。
3、在图4中的Vd处施加恒定电压值0.5V,下端读出端接0V。并在左上角光电计算单元的控制栅极引线上施加3V电压,其他单元的控制栅极施加0V,使得只有左上角的光电计算单元进入读出阶段并输出电流。
4、假如当光输入量精确等于2000个电子时,该单元的读出电流应当为10uA,但只进行了单次0.1ms光输入后,左上角的单元读出电流为0.05uA,判断0.05uA远没有达到预期结果10uA,则再驱动该单元进入光输入阶段0.1ms,再次判断读出电流,直到读出电流最终等于或很接近10uA时,认为光输入精度已经达到要求,即可认为该单元的光输入已完成。
5、用同样的方法驱动该卷积运算器中其他8个光电计算单元完成光输入,即完成了整个卷积运算器的高精度光输入。
因为卷积运算中多次运算卷积核数据不变,因此进行一次精准的光输入后,可完成多次卷积运算。