发明内容
本发明的目的是提供一种基于NOR Flash模块的数据运算方法,实现了基于NORFlash存储单元的乘加运算,同时提高了中央处理器的计算速度,并进一步降低了功耗。
本发明提供的技术方案如下:
一种基于NOR Flash模块的数据运算方法,其特征在于,所述NOR Flash 模块中包括至少一个存储单元;每个所述存储单元包括栅端、漏端以及源端;
步骤S1000根据所述存储单元的初始参数,对所述存储单元的阈值电压进行编程,获取所述存储单元的阈值电压随编程操作的变化曲线;步骤S2000根据所述存储单元的阈值电压随编程操作的变化曲线,调整所述存储单元的阈值电压;步骤S3000向所述存储单元的输入端,或电流镜对应的输入端输入数据参数;步骤S4000根据调整后的所述存储单元的阈值电压,以及所述输入数据参数,利用预设算法获取所述存储单元,或所述电流镜的输出数据参数;步骤 S5000根据所述存储单元,或所述电流镜的输出数据参数,对所述NORFlash 模块中所述存储单元,或所述电流镜的所述输出数据参数进行运算处理,将运算处理后的所述NOR Flash模块的所述输出数据参数通过测量电路进行测量;其中,所述输入数据参数包括第一输入信号和第二输入信号;所述第一输入信号包括等幅值和不等幅值的电压信号,以及等幅值和不等幅值的电流信号;所述第二输入信号包括等脉宽和不等脉宽的电压信号,以及等脉宽和不等脉宽的电流信号。
进一步优选的,包括:步骤S3100分别向所述存储单元的栅端输入等幅值的电压信号,或向电流镜中MOS管的漏端输入所述第一输入信号中的电流信号;且向所述存储单元的漏端输入所述第一输入信号中的电压信号,或向所述电流镜中的存储单元的漏端输入等幅值的电压信号;步骤S4100根据所述步骤S3100所述存储单元的栅端输入的等幅值的电压信号,或向电流镜中MOS管的漏端输入的所述第一输入信号中的电流信号;且向所述存储单元的漏端输入所述第一输入信号中的电压信号,或向所述电流镜中的存储单元的漏端的输入的等幅值的电压信号;及所述存储单元的阈值电压,获取所述存储单元,或所述电流镜对应输出的所述输出数据参数;其中,所述电流镜包括一个MOS管与一个所述存储单元。
进一步优选的,所述步骤S5000包括:步骤S5100在所述NOR Flash模块中使能多个所述存储单元,或多个所述电流镜,并将每个所述存储单元,或每个所述电流镜的所述输出数据参数进行累加,并将累加结果设置为所述NOR Flash模块的所述输出数据参数。
进一步优选的,所述步骤S5100包括:当所述NOR Flash模块的所述输出结果参数为电流信号,且所述输入数据参数为所述第一输入信号中的电压信号时;步骤S5110将多个所述存储单元的栅端进行连接,建立公共字线,在所述公共字线上输入等幅值的电压信号;步骤S5111通过位线分别向多个所述存储单元的漏端输入所述第一输入信号中的电压信号;步骤S5112将多个所述存储单元的源端进行连接,建立公共源线,根据所述公共字线上输入等幅值的电压信号、所述存储单元的漏端输入的所述第一输入信号中的电压信号,以及每个所述存储单元的阈值电压进行运算处理,通过所述公共源线输出所述NOR Flash模块的所述输出数据参数。
进一步优选的,所述步骤S5100还包括:当所述NOR Flash模块的所述输出结果参数为电流信号时,且所述输入数据参数为所述第一输入信号中的电流信号时;在所述NORFlash模块中使能多个所述电流镜;步骤S5120并向多个所述电流镜中的MOS管的漏端输入所述第一输入信号中的电流信号;步骤S5121向每个所述电流镜中的存储单元的漏端输入等幅值的电压信号;步骤 S5122将多个所述电流镜中的存储单元的源端进行连接,建立公共源线,根据所述电流镜中的MOS管的漏端输入的所述第一输入信号中的电流信号、所述电流镜中的所述存储单元的漏端输入等幅值的电压信号、以及每个所述存储单元的阈值电压进行运算,并通过所述公共源线输出所述NOR Flash模块的所述输出数据参数;其中,所述电流镜中输入的电流信号与输出的电流信号的比值相等,或者不等。
进一步优选的,所述步骤S5100包括:当所述NOR Flash模块的输出结果参数为电流信号时,且所述输入数据参数为所述第一输入信号中的电流信号时;在所述NOR Flash模块中使能多个所述电流镜;步骤S5120向多个所述电流镜中的所述MOS管的漏端输入所述第一输入信号中的电流信号;步骤S5123将多个所述电流镜中的所述存储单元的源端进行连接,并同时接地;步骤S5124 将多个所述电流镜的存储单元的漏端进行连接,建立公共位线,并在所述公共位线上输入等幅值的电压信号;根据所述电流镜的中MOS管的漏端输入的所述第一输入信号中的电流信号,所述公共位线上输入的等幅值的电压信号,以及每个所述存储单元的阈值电压进行运算,并通过所述公共位线输出所述输出数据参数;其中,所述电流镜中输入的电流信号与输出的电流信号的比值相等,或者不等。
进一步优选的,所述步骤S5100还包括:当所述NOR Flash模块的输出结果参数为电荷量时;步骤S5125在所述NOR Flash模块中设置储能单元,或设置输出电流镜,在所述输出电流镜中输出管的源端,或漏端设置储能单元;步骤S5126将多个所述存储单元的所述输出数据参数进行累加,并将所述累加结果与所述储能单元的储能参数,或与所述输出电流镜的参数进行运算处理,并将运算处理的结果设置为所述NOR Flash模块输出的输出结果参数;所述NOR Flash模块输出的输出结果参数为电荷量;当所述NOR Flash模块中设置所述输出电流镜时,在所述输出电流镜的输出管的源端,或漏端设置储能单元;当所述NORFlash模块中没有设置所述输出电流镜时,所述储能单元设置在所述输出数据参数的源线或者位线上。
进一步优选的,包括:当所述存储单元的所述输入数据参数中包括所述第二输入信号时;步骤S3200向所述存储单元的栅端输入等幅值的电压信号;或向电流镜中MOS管的漏端输入所述第二输入信号的电流信号;且向所述存储单元的漏端输入所述第二入信号中的电压信号;或向所述电流镜中所述存储电源的漏端输入等幅值的电压信号;步骤S4200根据所述步骤S3200向所述存储单元的栅端输入的等幅值的电压信号;或向电流镜中MOS管的漏端输入的所述第二输入信号的电流信号;且向所述存储单元的漏端输入的所述第二输入信号中的电压信号,或向所述电流镜中所述存储电源的漏端输入等幅值的电压信号;以及设置在所述存储单元,或所述电流镜上的储能单元的储能参数进行运算处理,获取所述存储单元,或所述电流镜对应输出的所述输出数据参数;其中,所述电流镜包括一个MOS管与一个所述存储单元;当所述存储单元,或所述电流镜中设置输出电流镜时,在所述输出电流镜的输出管的源端或漏端设置所述储能单元;当所述存储单元,或所述电流镜中没有设置所述输出电流镜时,所述储能单元设置在所述输出数据参数的源线或者位线上。
进一步优选的,包括:步骤S3210向所述存储单元的栅端输入所述第二输入信号中的电压信号,并向所述存储单元的漏极端输入等幅值的电压信号;步骤S4210根据所述步骤S3210对所述存储单元的栅端输入的所述第二输入信号中的电压信号,漏端输入的等幅值的电压信号、及所述存储单元所述阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的漏端位线上;所述输出电流镜由2个MOS组成。
进一步优选的,包括:步骤S3220向所述存储单元的栅端所述第二输入信号中的电压信号,并对应的向所述存储单元的漏端输入等幅值的电压信号;步骤S4220根据所述步骤S3220对栅端输入的所述第二输入信号中的电压信号、漏端输入等幅值的电压、及所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的源端源线;所述输出电流镜由2个MOS组成。
进一步优选的,包括:步骤S3230向所述存储单元的栅端输入等幅值的电压信号,并对应的向所述存储单元的漏端所述第二输入信号中的电压信号;步骤S4230根据所述步骤S3230对栅端输入的等幅值的电压信号,漏端输入的所述第二输入信号中的电压信号,所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的源端源线;所述输出电流镜由2个MOS组成。
进一步优选的,包括:步骤S3240向所述电流镜中MOS管的漏极端输入所述第二输入信号中的电流信号,且向所述电流镜中存储单元的漏极端输入等幅值电压信号;步骤S4240根据所述步骤S3240中所述电流镜中MOS管的漏极端输入的所述第二输入信号中的电流信号,所述电流镜中存储单元的漏极端输入的等幅值电压信号,所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述电流镜的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的源端源线;所述输出电流镜由 2个MOS组成。
进一步优选的,包括:步骤S3250向电流镜中MOS管的漏极端输入所述第二输入信号的电流信号,且向所述电流镜中存储单元的漏极端输入等幅值电压信号;步骤S4250根据所述步骤S3250中所述电流镜中MOS管的漏极端输入的所述第二输入信号的电流信号,所述电流镜中存储单元的漏极端输入的等幅值电压信号,所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的漏端位线;所述输出电流镜由2个 MOS组成。
进一步优选的,所述步骤S5000包括:步骤S5200在所述NOR Flash模块中使能多个所述存储单元,或多个所述电流镜,以及在NOR Flash模块中设置储能单元,根据多个所述存储单元输入的所述输入数据参数,或多个所述电流镜输入的所述输入数据参数,以及所述存储单元的阈值电压,获取所述存储单元,或所述电流镜输出的所述输出数据参数,并将多个所述存储单元,或所述电流镜输出的所述输出数据参数进行累加,并进一步将所述累加结果与所述储能单元的储能参数进行运算处理,将运算处理后的结果设置为所述NORFlash模块的输出结果参数,所述输出结果参数为电荷量。
进一步优选的,所述步骤S5200包括:步骤S5210向多个所述存储单元的栅端输入所述第二输入信号中的电压信号;步骤S5211将多个所述存储单元的漏端进行连接,建立公共位线,并输入等幅值的电压信号;步骤S5212将多个所述存储单元的源端进行连接,建立公共源线,根据所述栅端所述第二输入信号中的电压信号、所述漏端输入的等幅值的电压信号,以及所述存储单元的阈值电压,获取每个所述储能单元的输出数据参数,将多个所述储能单元的输出数据参数进行累加,将累加后的输出数据参数与所述储能单元的储能参数运算处理,并输出所述NOR Flash模块的所述输出数据参数;其中,所述储能单元设置在所述输出数据参数的所述公共源线或所述公共位线上。
进一步优选的,所述步骤S5200包括:步骤S5220将多个所述存储单元的栅端进行连接,建立公共字线,输入等幅值的电压信号;步骤S5221向多个所述存储单元的漏端所述第二输入信号中的电压信号;步骤S5222将多个所述存储单元的源端进行连接,建立公共源线,根据所述公共字线上输入等幅值的电压信号、漏端所述第二输入信号中的电压信号,以及每个所述存储单元的阈值电压,获取每个所述储能单元的输出数据参数;将多个所述储能单元的输出数据参数进行累加,将累加后的输出数据参数与所述储能单元的储能参数运算处理,并输出所述NOR Flash模块的所述输出数据参数;并通过所述公共源线输出所述输出参数信号;其中,所述储能单元设置在所述输出数据参数的所述公共源线上。
进一步优选的,所述步骤S5200包括:步骤S5230向多个电流镜中的MOS 管的漏端输入所述第二输入信号的电流信号;步骤S5231将多个所述电流镜中的存储单元的漏端进行连接,建立公共位线,并输入等幅值的电压信号;步骤S5232将多个所述电流镜中所述存储单元的源端进行接地,或进行连接建立公共源线,根据向电流镜中的MOS管的漏端输入的所述第二输入信号的电流信号,向所述公共位线输入的等幅值的电压信号,以及每个所述存储单元的阈值电压,获取每个所述电流镜的输出数据参数,将多个所述电流镜的输出数据参数进行累加,将累加后的输出数据参数与所述储能单元的储能参数运算处理,并输出所述NOR Flash模块的所述输出数据参数;其中,所述储能单元设置在所述输出数据参数的所述公共源线,或所述公共位线上。
进一步优选的,所述步骤5000包括:步骤S5400在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,建立公共位线;所述矩阵中的所述存储单元的源端相连,建立公共源线并接地;步骤S5410通过每一条所述公共字线输入所述第二输入信号中的电压信号;步骤S5411通过每一条所述公共位线输入等幅值的电压信号;步骤S5412根据所述公共字线输入所述第二输入信号中电压信号,所述公共位线输入等幅值的电压信号,以及所述存储单元的阈值电压进行运算处理,输出所述NOR Flash模块的所述输出数据参数;步骤S5413在每一条所述公共位线的输出端,或所述电流镜的输出端设置储能单元,控制所述NOR Flash模块的所述输出数据参数为电荷量。
进一步优选的,所述步骤5000包括:步骤S5400在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,建立公共位线;每一列上的所述存储单元的源端相连,建立公共源线;步骤 S5420通过每一条所述公共字线输入所述第二输入信号中电压信号;步骤S5421 通过每一条所述公共位线输入等幅值的电压信号;步骤S5422根据所述公共字线输入的所述第二输入信号中电压信号,所述公共位线输入的等幅值的电压信号,所述存储单元的阈值电压进行运算处理,并输出所述NOR Flash模块的所述输出数据参数;步骤S5423在每一条所述公共源线的输出端,或在所述NOR Flash模块的输出端设置储能单元,或设置所述输出电流镜;控制所述NOR Flash模块的所述输出数据参数为电荷量。
进一步优选的,所述步骤S5000包括:步骤S5400在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,建立公共位线;每一行上的所述存储单元的源端相连,建立公共源线;步骤 S5430通过每一条所述公共字线输入等幅值的电压信号;步骤S5431通过每一条所述公共位线输入所述第一输入信号的电压信号,或所述第二输入信号中的电压信号;步骤S5432根据所述公共字线输入幅值等的电压信号、所述公共位线输入的所述第一输入信号的电压信号,或所述第二输入信号中的电压信号,以及所述存储单元的阈值电压,并输出所述NOR Flash模块的所述输出数据参数;步骤S5433当所述NORFlash模块的所述输出数据参数为电荷量时;在每一条所述公共源线的输出端设置储能单元;当所述公共源线上设置输出电流镜时,在所述输出电流镜的输出管的源端或漏端源端置所述储能单元。
进一步优选的,所述步骤S5000包括:步骤S5400在所述NOR Flash模块中使能多个所述电流镜,并将多个所述电流镜建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述电流镜中存储单元的漏端相连,建立公共位线;每一列或每一行的所述电流镜中存储单元的源端相连,建立公共源线;步骤S5440分别向每一行上的所述电流镜中MOS管的漏端输入所述第一输入信号的电流信号,或所述第二输入信号的电流信号;步骤S5441 分别向所述公共位线输入等幅值的电压信号;步骤S5442根据所述电流镜中 MOS管的漏端输入的所述第一输入信号的电流信号,或所述第二输入信号的电流信号;所述公共位线输入的等幅值的电压信号;以及所述电流镜中存储单元的阈值电压进行运算处理,并输出所述NOR Flash模块的所述输出数据参数;步骤S5444当所述NOR Flash模块的所述输出数据参数为电荷量时;在每一条所述公共源线的输出端设置所述储能单元;
或;
在每一条所述公共位线的输出端设置储能单元;其中,当所述公共源线,或者所述公共位线上设置输出电流镜时,在所述输出电流镜的输出管的源端或漏端源端置所述储能单元。
进一步优选的,所述步骤S5000包括:当所述输入数据参数中包括负参数时;步骤S5500在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元,或将多个所述电流镜建立矩阵;所述矩阵的行数为偶数行,或列数为偶数列;每一行上的所述存储单元的栅端相连,建立公共字线;相邻两行或两列所述存储单元,或所述电流镜设置为一组,每一组中包括两条公共源线,或两条公共位线;每一列上的所述存储单元的漏端相连,或所述电流镜中的存储单元的漏端相连,建立公共位线;每一行,或每一列上的所述存储单元的源端相连,建立公共源线;步骤S5510向每一条所述公共字线输入等幅值的电压信号,或向每一行所述电流镜中的MOS管的漏端输入所述第一输入信号中的电流信号,并在所述公共位线上输入所述第一输入信号中的电压信号,或等幅值的电压信号;步骤S5511根据向每一条所述公共字线输入的等幅值的电压信号,或向每一行所述电流镜中的MOS管的漏端输入的所述第一输入信号中的电流信号,并在所述公共位线上输入的所述第一输入信号中的电压信号,或等幅值的电压信号,以及所述存储单元的阈值电压进行运算处理,通过所述公共源线,或公共位线输出对应的所述输出数据参数;步骤S5512将每一组中两条所述公共源线,或公共位线输出的所述输出参数进行差值计算,将差值计算的结果设置为所述NORFlash模块输出的所述输出数据参数;当所述NOR Flash 模块的所述输出数据参数为电荷量时;在每一条所述公共源线的输出端设置储能单元或输出电流镜;在所述输出电流镜源端或漏端设置储能单元。
进一步优选的,所述步骤S5000包括:当所述输入数据参数中包括负参数时;步骤S5500在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元,或将多个所述电流镜建立矩阵;所述矩阵的列数为偶数列,或行数为偶数行;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,或所述电流镜中的存储单元的漏端相连,建立公共位线;将所述矩阵中每一行,或列的所述存储单元的源端,或所述电流镜中的存储单元源端相连,建立公共源线;步骤S5520向每一条所述公共字线输入所述第二输入信号中的电压信号,等幅值的电压信号,或向每一行中所述电流镜中的MOS管的漏端输入所述第二输入信号中的电流信号;且向每一条所述公共位线输入等幅值电压信号,或输入所述第二输入信号中的电压信号,步骤S5522根据向每一条所述公共字线输入的所述第二输入信号中的电压信号,等幅值的电压信号,或向每一行中所述电流镜中的MOS管的漏端输入的所述第二输入信号中的电流信号;且向每一条所述公共位线输入的等幅值电压信号,或输入的所述第二输入信号中的电压信号,以及所述存储单元的阈值电压,通过每条所述公共位线,或公共源线输出对应的所述输出数据参数;步骤S5523 将每相邻2条公共位线,或公共源线上的所述存储单元,或所述电流镜设置为一组,在每组所述存储单元,或电流镜的两条所述公共位线,或公共源线上共同设置一储能单元,将每组中的两条公共位线,公共位线,或公共源线输出的所述输出参数进行差值计算,并将差值计算后的结果,以及对应组的所述储能单元的储能参数进行运算,获取对应组的所述输出数据参数;在每一条所述公共源线的输出端设置储能单元,或输出电流镜;所述输出电流镜源端或漏端设置储能单元。
进一步优选的,所述步骤S5000包括:步骤S5500在所述NOR Flash模块中使能多个所述存储单元;每4个所述存储单元设置为一个乘法器,设置多个所述乘法器;将所述乘法器中的所述存储单元设置为两组,每相邻两个存储单元设置为一组存储单元组;第一组所述存储单元组中的一个所述存储单元与第二组所述存储单元组中一个所述存储单元的栅端相连,建立第一公共字线;第一组所述存储单元组中的另一个所述存储单元与第二组所述存储单元组中另一个所述存储单元的栅端相连,建立第二公共字线;在第一组所述存储单元组建立第一公共位线和第一公共源线;在第二组所述存储单元组建立第二公共位线和第二公共源线;步骤S5540分别向所述第一公共字线和所述第二公共字线输入所述第二输入信号中的电压信号;步骤S5541分别向所述第一公共位线和所述第二公共位线输入等幅值的电压信号;根据向所述第一公共字线和所述第二公共字线输入的所述第二输入信号中的电压信号,向所述第一公共位线和所述第二公共位线输入的等幅值的电压信号,以及所述存储单元的阈值电压信号,通过所述第一公共源线和所述第二公共源线输出每组所述存储单元组的所述输出数据参数;
或;
将所述第一公共源线和所述第二公共源线接地;根据向所述第一公共字线和所述第二公共字线输入的所述第二输入信号中的电压信号,以及所述存储单元的阈值电压信号,通过所述第一公共位线和所述第二公共位线输出每组所述存储单元组的所述输出数据参数;步骤S5542将每组中输出的所述输出数据参数进行差值计算,并将差值计算的结果设置为所述乘法器的输出结果;当所述乘法器的输出结果为电荷量时,在所述乘法器的输出端设置储能单元,或输出电流镜;所述输出电流镜源端或漏端设置储能单元。
进一步优选的,所述步骤S5000包括:步骤S5500在所述NOR Flash模块中使能多个所述电流镜;每4个所述电流镜设置为一个乘法器,设置多个所述乘法器;将所述乘法器中的所述电流镜设置为两组,每相邻两个所述电流镜设置为一组电流镜组;第一组所述电流镜组中的所述电流镜中的存储单元共用第一M0S管作为第一输入管;第二组所述电流镜组中的所述电流镜中的存储单元共用第二M0S管作为第二输入管;第一组所述电流镜组中的一个所述存储单元与第二组所述电流镜组中一个所述存储单元的源端相连,建立第一公共源线;第一组所述电流镜组中的另一个所述存储单元与第二组所述电流镜组中另一个所述存储单元的源端相连,建立第二公共源线;第一组所述电流镜组中的一个所述存储单元与第二组所述电流镜组中一个所述存储单元的漏端相连,建立第一公共位线;第一组所述电流镜组中的另一个所述存储单元与第二组所述电流镜组中另一个所述存储单元的漏端相连,建立第二公共位线;步骤S5550 分别向第一输入管和第二输入管输入第一输入信号中的电流信号,或第二输入信号中的电流信号;步骤S5551分别向所述第一公共位线和所述第二公共位线输入等幅值的电压信号;根据向所述第一输入管和所述第二输入管输入的第一输入信号中的电流信号,或第二输入信号中的电流信号,及所述第一公共位线和所述第二公共位线输入的等幅值的电压信号,以及所述电流镜的阈值电压信号,通过所述第一公共源线和所述第二公共源线分别输出第一输出数据参数和第二输出数据参数;
或;
将所述第一公共源线和所述第二公共源线接地;根据向所述第一输入管和所述第二输入管输入的第一输入信号中的电流信号,或第二输入信号中的电流信号,以及所述存储单元的阈值电压信号,通过所述第一公共位线和所述第二公共位线分别输出第三输出数据参数和第四输出数据参数;步骤S5552将所述第一输出数据参数和所述第二输出数据参数,或所述第三输出数据参数和所述第四输出数据参数进行差值计算,并将差值计算的结果设置为所述乘法器的输出结果;当所述乘法器的输出结果为电荷量时,在所述乘法器的输出端设置储能单元,或输出电流镜;所述输出电流镜的源端或漏端设置储能单元。
进一步优选的,所述步骤S5000包括:步骤S5500在所述NOR Flash模块中使能多个所述存储单元;每4个所述存储单元设置为一个乘法器,设置多个所述乘法器;将所述乘法器中设置两组存储单元组,每相邻两个存储单元设置为一组存储单元组;4个所述存储单元的栅端相连,建立公共字线;第一组所述存储单元组中的一个所述存储单元与第二组各组所述存储单元组中一个所述存储单元的漏端相连,建立第一公共位线;第一组所述存储单元组中的另一个所述存储单元与第二组所述存储单元组中另一个所述存储单元的漏端相连,建立第二公共位线;每组所述存储单元组中两个所述存储单元的源端相连,设置为所述存储单元组的所述输出数据参数的输出端;步骤S5550向多个所述存储单元的所述公共字线输入等幅值的电压信号;步骤S5551分别向所述第一公共位线和所述第二公共位线输入第一输入信号中的电压信号,或第二输入信号中的电压信号;步骤S5552根据所述第一公共位线和所述第二公共位线输入的第一输入信号中的电压信号,或第二输入信号中的电压信号;以及每个所述存储单元的阈值电压,通过所述存储单元组的输出端获取每组所述存储单元组的所述输出数据参数;步骤S5553将每个所述乘法器中每组所述存储单元组的所述输出数据参数进行对应差值运算,将差值运算的结果设置为所述乘法器的所述输出数据参数。
本发明提供的一种基于NOR Flash模块的数据运算方法,能够带来以下至少一种有益效果:
在本发明中,基于NOR Flash实现在内存计算(In Memory Computing),进行乘加运算操作,可以实现比传统冯诺依曼结构更高的性能及更低的功耗,实现需要的资源也大大降低。因此,实现基于NOR Flash的高速低功耗的乘加运算在技术上具有极大的重要性。
在本发明中,与传统的设计相比较,本设计摆脱了传统冯诺依曼结构的约束,将乘加运算在存储芯片内实现,大大节省了计算单元(如CPU)和存储器之间的通讯开销,实现了高性能、低功耗的计算。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于NOR Flash模块的数据运算方法的上述特性、技术特征、优点及其实现方式予以进 一步说明。
图1是本发明基于NOR Flash模块的数据运算方法实施例的流程图;
图2是本发明基于NOR Flash模块的数据运算方法实施例的结构图;
图3是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图4是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图5是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图6是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图7是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图8是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图9是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图10是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11a是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11b是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11c是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11d是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11e是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11f是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11g是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11h是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图11i是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图12a是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图12b是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图12c是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图12d是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图12e是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图12f是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图13a是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图13b是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图13c是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图13d是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图14是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图15a是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图15b是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图15c是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图16a是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图16b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图16c是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图16d是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图16e是本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图17a本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图17b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图18a本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图18b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图19a本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图19b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图20本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图21a本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图21b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图21c本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图22a本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图22b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图23a本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图23b本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图23c本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图24本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图25本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图26本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图27本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图28本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图29本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图30本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图31本发明基于NOR Flash模块的数据运算方法实施例的另一结构图;
图32本发明基于NOR Flash模块的数据运算方法实施例的另一结构图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明提供了本发明提供了一种基于NOR Flash模块的数据运算方法的第 1个实施例,参考图1和图2所示;所述NOR Flash模块中包括至少一个存储单元;每个所述存储单元包括栅端、漏端以及源端;步骤S1000根据所述存储单元的初始参数,对所述存储单元的阈值电压进行编程,获取所述存储单元的阈值电压随编程操作的变化曲线;步骤S2000根据所述存储单元的阈值电压随编程操作的变化曲线,调整所述存储单元的阈值电压;步骤S3000向所述存储单元的输入端,或电流镜对应的输入端输入数据参数;步骤S4000根据调整后的所述存储单元的阈值电压,以及所述输入数据参数,利用预设算法获取所述存储单元,或所述电流镜的输出数据参数;步骤S5000根据所述存储单元,或所述电流镜的输出数据参数,对所述NOR Flash模块中所述存储单元,或所述电流镜的所述输出数据参数进行运算处理,将运算处理后的所述NOR Flash模块的所述输出数据参数通过测量电路进行测量;其中,所述输入数据参数包括第一输入信号和第二输入信号;所述第一输入信号包括等幅值和不等幅值的电压信号,以及等幅值和不等幅值的电流信号;所述第二输入信号包括等脉宽和不等脉宽的电压信号,以及等脉宽和不等脉宽的电流信号。
具体的,在本发明中,存储单元是指NOR型闪存(NOR Flash)的存储单元,其内部结构参考图2所示;由于生产工艺的不同,其存储单元的长宽比的差异,沟道区域的掺杂浓度在分布上存在相应的差异,以及氧化层厚度的差异,也即初始参数的变化,因此通过对NOR型闪存(NOR Flash)的存储单元进行编程 (PGM)和擦除(ERS)操作,可以使参考图2中浮栅中的电荷量不同,进而使其存储单元的阈值电压也在发生变化;根据存储单元的阈值电压随编程操作的变化曲线图,可以设定其阈值电压到相应值;通过NOR Flash模块对其内部存储的数据和外部输入的数据进行计算;包括乘加运算;根据在存储单元的三端施加不同的信号,可以输出不同的电流,和电荷量;在NOR Flash模块中的结构可以包括电流镜的组合和存储单元的组合;不同组合结构输出的输出数据参数可以为电流,或者电荷量;由于结构的不同,相应的输入参数也不相同,包括电流信号和电压信号,电流信号包括脉冲信号和非脉冲信号;电压信号也包括脉冲信号和非脉冲信号;相当于输入4种不同信号;NOR Flash模块中可实现多个存储单元的使能,或者单个存储单元工作的情况;根据用户的需求不同,以及工作环境不同,NOR Flash模块可以作为一个整体封装成一个芯片,或者以模块的形式嵌入至其他相应的芯片中;同时,可以添加相应的外设电路进行配合使用;NOR Flash模块计算完成后输出的输出数据参数,可以通过测量电路进行测量,从而了解NOR Flash模块输出的数据信息。每个存储单元或者存储模块输出的电流可以通过比例放大,或者ADC转换等多种方式,进一步处理。在本发明中,第一输入信号是指幅值发生改变的电压信号和电流信号,即0.3V、 0.5V、1.2V,和/或1uA、2uA、3uA等,属于非脉冲信号;第二输入信号是指脉宽不同的电压脉冲信号和电流脉冲信号。另外,在存储单元工作在三极管区时,信号的关系为,漏端的电流ID与栅端电压VGS有如下关系ID=K(VGS-VTH)VDS,通过编程(PGM)和擦除(ERS)操作,可以控制Flash浮栅中电荷量的多少,进而控制Flash存储单元的阈值电压VTH大小。
基于以上的实施例,本发明还提供第2个实施例,参考图3和图4所示;包括:步骤S3100分别向所述存储单元的栅端输入等幅值的电压信号,或向电流镜中MOS管的漏端输入所述第一输入信号中的电流信号;且向所述存储单元的漏端输入所述第一输入信号中的电压信号,或向所述电流镜中的存储单元的漏端输入等幅值的电压信号;步骤S4100根据所述步骤S3100所述存储单元的栅端输入的等幅值的电压信号,或向电流镜中MOS管的漏端输入的所述第一输入信号中的电流信号;且向所述存储单元的漏端输入所述第一输入信号中的电压信号,或向所述电流镜中的存储单元的漏端输入等幅值的电压信号;及所述存储单元的阈值电压,获取所述存储单元,或所述电流镜对应输出的所述输出数据参数;其中,所述电流镜包括一个MOS管与一个所述存储单元。
具体的,在本发明中,NOR Flash模块的组合中,输入可以包括非脉冲的电压信号和非脉冲的电流信号;也即通过输入信号幅值的变化而控制输出信号的幅值;进入工作状态时,每一个NOR Flash存储单元的栅端在工作状态时,需要施加一定的控制电压信号,用于控制存储单元的工作状态;如果在本实施例中输入的信号为电流信号时,其NOR Flash模块中是通过电流镜进行组合;而电流镜是由1个MOS管与1个所述存储单元组成的,参见图4所示;电流镜中存储单元的漏端需要输入的信号为等幅值的电压信号,也即为驱动电压;存储单元栅端和漏端输入的信号参数的幅值可以相同,也可以不同。在本实施例中无论是存储单元结构,还是电流镜结构,输出均为电流信号,将输入的参数进行统筹运算,例如参数间的乘法运算,从而得到输出的电流值。在本发明中可以通过NOR Flash存储单元实现乘法运算,当通过电压幅度表征数值,也即输入数据参数为电压值,输出的数据参数为电流值时,通过输入的电压幅度变化而影响输出电流的幅度变化。
通过以下实例进行说明,当输入的信号为电压信号时;包括以下:存储单元的漏端电流ID受自身状态VTH和各端电压的控制,ID=K(VGS-VTH)VDS,导电因子K=(μC_ox W)/L,对确定工艺及尺寸的存储单元,其导电因子K为定值。首先对NOR Flash进行离线标定,获取其初始参数,得到NOR Flash存储单元自身阈值电压VTH随编程操作的变化曲线。对存储单元进行编程时,通过图3 所示,根据乘数的值将存储单元编程到相应的状态,使得VGS0-VTH可以表征该乘数。将NOR Flash存储单元的源端接地,在其栅端施加固定电压VGS0,在NOR Flash存储单元漏端加一电压作为输入,其幅度表征被乘数。此时输出的漏端电流大小即可表征乘法的结果。由于VDS可以为正电压或负电压,但为了保证存储单元工作在三极管区,结合图2即要求VGS0>VTH,本实施例中要求被乘数为任意值,乘数为非负值。
当以计算c=a×b为例,对NOR Flash存储单元编程,使得对固定栅端电压VGS0,该值与阈值电压之差VGS0-VTH可以与b成固定比例ww;然后根据a的值,在NOR Flash存储单元漏端施加相应电压,其脉冲幅度VDS与a成固定比例w';此时,输出的漏端电流信号ID=KVDS(VGS-VTH)=Kabww',其中K= (μCox W)/L。由于Kww'为固定值,故通过分流或者比例电流镜将获得大小为漏端电流1/(Kww')的电流值ID'=ab,然后利用模拟数字转换器(AnalogDigital Convertor,ADC)将该电流转换为具体结果;或者为ADC设置合适的参考电流 Iref=1/Kww’,此时其测量结果即为计算结果。本实施例的实现方法对工作在深线性区的存储单元可以得到精确的乘法结果,对其他状态的存储单元可以得到模糊的乘法结果。
在本发明中,当电流信号作输入的结构,输出的数据参数为电流值,通过输入的电流幅度从而影响输出电流的幅度;也可以通过NOR Flash存储单元实现乘法运算。参考图4所示;
当输入信号为电流信号时,有如下关系:
其中,NOR Flash存储单元和相连的MOS管形成电流镜,使得存储单元漏端电流ID与MOS管漏端电流Iin成比例w,即ID=Iinw,其中,式中下标F 代表NOR Flash存储单元,VTHF由NOR Flash存储单元的编程状态决定。
具体的实现方式为:首先对存储单元进行离线标定,对确定工艺及尺寸的存储单元,获取其初始参数,获得电流镜的比例w和不同编程状态的对应曲线。当进行计算时,根据乘数的值,将存储单元编程到相应的状态,使得存储单元和MOS管组成的电流镜的比例w可以表征该乘数。在MOS管的漏端施加电流Iin,输入电流的幅值Iin用以表征被乘数,此时输出的电流的幅值ID受Iin和 w控制,该幅值即为Iin和w的乘积ID=Iinw。
基于以上的实施例,本发明还提供第3个实施例,所述步骤S5000包括:步骤S5100在所述NOR Flash模块中使能多个所述存储单元,或多个所述电流镜,并将每个所述存储单元,或每个所述电流镜的所述输出数据参数进行累加,并将累加结果设置为所述NOR Flash模块的所述输出数据参数。
具体的,当在NOR Flash模块包括多个存储单元,或多个电流镜时,由于输出的为电流值,可以实现将多个存储单元,或多个电流镜输出的参数进行累加,得到NOR Flash模块总的电流值;也即将单个结构中的相关参数进行乘法运算,每个电流镜和每个存储单元对于输出参数的获取的方式,是以第2实施例中的乘法运算求出;最后将输出结果进行累加计算,也即实现了电流累加的算法。基于以上的实施例,本实施例实现再获取NOR Flash模块的输出数据参数时的算法为乘加运算。
基于以上的实施例,本发明还提供第4个实施例,参考图5所示;所述步骤S5000包括:当所述NOR Flash模块的所述输出结果参数为电流信号,且所述输入数据参数为所述第一输入信号中的电压信号时;步骤S5110将多个所述存储单元的栅端进行连接,建立公共字线,在所述公共字线上输入等幅值的电压信号;步骤S5111通过位线分别向多个所述存储单元的漏端输入所述第一输入信号中的电压信号;步骤S5112将多个所述存储单元的源端进行连接,建立公共源线,根据所述公共字线上输入等幅值的电压信号、所述存储单元的漏端输入的所述第一输入信号中的电压信号,以及每个所述存储单元的阈值电压进行运算处理,通过所述公共源线输出所述NOR Flash模块的所述输出数据参数。
具体的,在本实施例中,基于上述实施例中对单个存储单元的乘法运算为基础,继而在漏端输入电压信号,将多个存储单元输出的电流进行累加;在NOR Flash模块中存储单元的连接关系参考图5所示;在输入端的位线BL施加电压信号,各存储单元BL位线上的电压可以为等幅值,或各位不等幅值,或各位线某几条等幅值,其它为不等幅值的情况;以源端输出电流的值表征计算结果时,电流累加可以通过将存储单元以或非形式连接,并将其源端连接到公共源线实现,每个存储单元进行独立的乘法计算,其计算结果由每个存储单元的漏端电流值IDi表征,参见上述实施例。此时,源线SL上的总电流即表示了各个乘积的和的大小。
基于以上的实施例,本发明还提供第5个实施例,参考图6所示;所述步骤S5100还包括:当所述NOR Flash模块的所述输出结果参数为电流信号时,且所述输入数据参数为所述第一输入信号中的电流信号时;在所述NOR Flash 模块中使能多个所述电流镜;步骤S5120并向多个所述电流镜中的MOS管的漏端输入所述第一输入信号中的电流信号;步骤S5121向每个所述电流镜中的存储单元的漏端输入等幅值的电压信号;步骤S5122将多个所述电流镜中的存储单元的源端进行连接,建立公共源线,根据所述电流镜中的MOS管的漏端输入的所述第一输入信号中的电流信号、所述电流镜中的所述存储单元的漏端输入等幅值的电压信号、以及每个所述存储单元的阈值电压进行运算,并通过所述公共源线输出所述NOR Flash模块的所述输出数据参数;其中,所述电流镜中输入的电流信号与输出的电流信号的比值相等,或者不等。
基于以上的实施例,本发明还提供第6个实施例,参考图7所示;所述步骤S5100包括:所述步骤S5100包括:当所述NOR Flash模块的输出结果参数为电流信号时,且所述输入数据参数为所述第一输入信号中的电流信号时;在所述NOR Flash模块中使能多个所述电流镜;步骤S5120向多个所述电流镜中的所述MOS管的漏端输入所述第一输入信号中的电流信号;步骤S5123将多个所述电流镜中的所述存储单元的源端进行连接,并同时接地;步骤S5124将多个所述电流镜的存储单元的漏端进行连接,建立公共位线,并在所述公共位线上输入等幅值的电压信号;根据所述电流镜的中MOS管的漏端输入的所述第一输入信号中的电流信号,所述公共位线上输入的等幅值的电压信号,以及每个所述存储单元的阈值电压进行运算,并通过所述公共位线输出所述输出数据参数;其中,所述电流镜中输入的电流信号与输出的电流信号的比值相等,或者不等。
具体的,在第5个实施例和第6个实施例中,参考图6和图7提供了具体的连接关系;都是通过电流镜中的MOS管输入相应的电流信号,即为非脉冲信号,即包括等幅值,或各位不等幅值,或者各位线某几条等幅值,其它为不等幅值的情况;输出的累加结果为电流值;每个存储单元进行独立的乘法计算,其计算结果由每个存储单元的源端或漏端电流值IDi表征;基于上述实施例中的乘法运算,将每个电流镜输出的电流幅值进行累加,电流累加可以通过将存储单元以或非形式连接;第5个实施例以源线输出,源线上的总电流即表示了各个乘积和的大小;第6个实施例以位线输出的电流值表征计算结果时,此时,位线上的总电流即表示了各个乘积的和的大小。源线上的总电流即表示了各个乘积和的大小;具体的在NOR Flash存储模块中存储单元的连接关系包括参考图6和图7所示。
结合第3-6实施例,参考图5-7所示;输入的为第一输入信号,输出为电流信号;即幅值表征数值的电流累加方法;因此可实现电流累加方法;具体的举个例进行说明;在进行计算时,在栅端加固定电压VGS0,并根据标定结果及b1至bn的值,分别对各个Flash存储单元进行不同程度的编程操作,使得每个存储单元的VGS0-VTH与相应的bi成固定比例w;在Flash各位线(BL)施加驱动电压,其幅度与ai成固定比例w′;各存储单元乘法的计算结果以其漏端电流 ID=K(VGS-VTH)VDS=Kww′ab表示;根据基尔霍夫定律,各个存储单元的漏端电流在源线(SL)实现累加,SL上总电流为其中Kww′为固定值;经过分流或者比例电流镜后,得到电流即为此次乘加运算的结果;或者在使用ADC测量时为ADC设置合适的参考电流 Iref=1/Kww′,此时其测量结果即为计算结果。
基于以上的实施例,本发明还提供第7个实施例,参考图8、9、10所示;所述步骤S5100还包括:当所述NOR Flash模块的输出结果参数为电荷量时;步骤S5125在所述NORFlash模块中设置储能单元,或设置输出电流镜,在所述输出电流镜中输出管的源端,或漏端设置储能单元;步骤S5126将多个所述存储单元的所述输出数据参数进行累加,并将所述累加结果与所述储能单元的储能参数,或与所述输出电流镜的参数进行运算处理,并将运算处理的结果设置为所述NOR Flash模块输出的输出结果参数;所述NOR Flash模块输出的输出结果参数为电荷量;当所述NOR Flash模块中设置所述输出电流镜时,在所述输出电流镜的输出管的源端,或漏端设置储能单元;当所述NOR Flash模块中没有设置所述输出电流镜时,所述储能单元设置在所述输出数据参数的源线或者位线上。
具体的,在本实施例中,输入的信号为电压或者电流信号,为非脉冲信号;当在NORFlash模块使能有多个存储单元或者多个电流镜时,输入的信号包括等幅值,或位不等幅值,或者各位线某几条等幅值;基于实施例2-6中的输入信号为基础,而输出参数信号为电荷量,即对累加输出的电流值以存入电容的电荷量来表征计算结果时;NOR Flash模块中结构的连接关系请参照图8、9、 10所示;基于上述实施例中提供的对累加输出的电流值运算的实施例;电荷累加时可以通过将存储单元以或非形式连接,并将其漏端连接到公共位线,再使用总电流对电容充电,参考图8至图10所示。每个单元进行独立的乘法计算,其计算结果可由每个存储单元输出的电荷量Qi表征。对脉冲幅度表征数值的计算,Qi=IDit0;其中t0不变,为固定值;实现了漏端输入电压,源线累加;电流输入时,通过电流镜的MOS管输入,在源线,和位线累加的方法;本实施例电荷累加的方法亦可省去比例电流镜,通过直接将电流通入电容实现电荷的累加。
当输入的信号为第一输入信号时,可以通过幅值表征数值的电荷累加方法;例如:针对某一Flash工艺,先对Flash存储单元的阈值电压VTH进行离线标定,得到阈值电压VTH随编程操作的变化曲线。在进行计算时,在各字线(WL) 上施加电压VGS0,根据标定结果及b1至bn的值,分别对各个Flash存储单元进行不同程度的编程操作,使得每个存储单元的VGS0-VTH与相应的bi成固定比例 w;在Flash位线(BL)施加输入脉冲,脉冲的宽度为固定值t0,其幅度VDS与 ai成比例w′;各存储单元乘法的计算结果以其源端电流的电荷量QS=ISt0= IDt0=K(VGS0-VTH)VDS=Kww′t0ab表示;根据基尔霍夫定律,各个存储单元的源端电流在源线(SL)实现累加,SL上总电流为对脉宽为t0的输入信号,SL上输出电流的时间也为t0,使用电流镜获得幅度为输出电流幅度α倍的电流脉冲,并使用该电流对电容进行充电,最终电容的总电荷量其中αKww′t0为固定值,经过放电电路测量,即得此次乘加运算的结果。
本实施例的方法亦可省去比例电流镜,通过直接将电流通入电容实现电荷的累加。
本实施例的方法亦可直接通过测量电路测量电容上极板的电压U,再根据电容值大小C,利用Q=CU计算得到最终的电荷量,此即乘加运算的结果。测量电路的工作过程参见图14;测量电路中,SL接入比例电流镜,电流镜的输出电流,即对电容充电的电流Icap,应与SL上电流ISL成固定比例α,同时,锁存器会对上极板的电压进行锁存。EN控制测量时电容的放电与否,放电电流为一恒定电流Iref。计算完成后,电容上会存储一定电荷,上极板比下极板电压高,锁存器锁存高电平,经过一定程度的放电后,电容电压降低,锁存器翻转为低电平。故输出脉冲的上升沿,需要与放电的EN信号上升沿对齐;输出脉冲的下降沿,标志着放电结束,在锁存器翻转时触发。两沿之间的时间长度Δt,即为计算结果。
测量的步骤如下:首先Comp开关导通,EN开关断开,进行前述的计算过程,此过程中比例电流镜复制的电流信号会不断对电容进行充电,使电容存储的电荷为Q;计算完成后,断开Comp开关,使电容与计算电路隔离开来;打开EN开关,以恒定电流Iref放电;分别检测EN信号的上升沿和锁存器的翻转,作为放电信号的开始和结束标志,则可以得到一脉宽t=Q/Iref的放电信号,此处脉宽t即表征此次乘加运算的结果。
基于以上的实施例,本发明还提供第8个实施例,参考图11a至图11m, 及图12a至图12f所示;包括:当所述存储单元的所述输入数据参数中包括所述第二输入信号时;步骤S3200向所述存储单元的栅端输入等幅值的电压信号;或向电流镜中MOS管的漏端输入所述第二输入信号的电流信号;且向所述存储单元的漏端输入所述第二入信号中的电压信号;或向所述电流镜中所述存储电源的漏端输入等幅值的电压信号;步骤S4200根据所述步骤S3200向所述存储单元的栅端输入的等幅值的电压信号;或向电流镜中MOS管的漏端输入的所述第二输入信号的电流信号;且向所述存储单元的漏端输入的所述第二入信号中的电压信号,或向所述电流镜中所述存储电源的漏端输入等幅值的电压信号;以及设置在所述存储单元,或所述电流镜上的储能单元的储能参数进行运算处理,获取所述存储单元,或所述电流镜对应输出的所述输出数据参数;其中,所述电流镜包括一个MOS管与一个所述存储单元;当所述存储单元,或所述电流镜中设置输出电流镜时,在所述输出电流镜的输出管的源端或漏端设置所述储能单元;当所述存储单元,或所述电流镜中没有设置所述输出电流镜时,所述储能单元设置在所述输出数据参数的源线或者位线上。
具体的,在以上的实施例2-7中输入的信号为非脉冲信号,通过输入信号的幅值表征输出信号的幅值;本实施例中输入信号包括脉冲信号,因此包括了电压和电流两种;包括其一在栅端输入电压脉冲信号,漏端输入等幅值的电压信号,输出数据参数的输出端不同;其二栅端输入等幅值的电压信号,漏端输入电压脉冲信号,输出数据参数的输出端不同;还包括电流镜的MOS管的漏端输入电压信号,输出数据参数的输出端不同;具体的连接关系以及输入的参数,详见图参考图11a至图11m,及考图12a至图12f所示;由于输出的参数信号为电荷信号,因此在其存储端元中设置有储能单元,从而计算出对应的电荷量。具体的累加方法同上述实施例的累加方法一致。
基于以上的实施例,本发明还提供第9个实施例,参考图11a、图11b、图11c所示;步骤S3210向所述存储单元的栅极端输入所述第二输入信号中的电压信号,并向所述存储单元的漏极端输入等幅值的电压信号;步骤S4210根据所述步骤S3210对所述存储单元的栅端输入的所述第二输入信号中的电压信号,漏端输入的等幅值的电压信号、及所述存储单元所述阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的漏端位线上;所述输出电流镜由2个MOS管组成。在本实施例中通过栅端输入电压脉冲信号,输出的信号通过存储单元的漏端输出;可以实现有无输出电流镜的结构,其实现的方法参见第8实施例。
基于以上的实施例,本发明还提供第10个实施例,参考图11g、图11h、图11m所示;包括:步骤S3220向所述存储单元的栅端所述第二输入信号中的电压信号,并对应的向所述存储单元的漏端输入等幅值的电压信号;步骤S4220 根据所述步骤S3220对栅端输入的所述第二输入信号中的电压信号、漏端输入等幅值的电压、及所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的源端源线;所述输出电流镜由2个MOS组成。在本实施例中通过存储单元的漏端输入电压脉冲信号,输出的信号通过存储单元的源端输出;可以实现有无输出电流镜的结构,其实现的方法参见第8实施例。
基于以上的实施例,本发明还提供第11个实施例,参考图11g、图11h、图11m所示;包括:步骤S3230向所述存储单元的栅端输入等幅值的电压信号,并对应的向所述存储单元的漏端所述第二输入信号中的电压信号;步骤S4230 根据所述步骤S3230对栅端输入的等幅值的电压信号,漏端输入的所述第二输入信号中的电压信号,所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的源端源线;所述输出电流镜由 2个MOS组成。在本实施例中通过电流镜的MOS的漏端输入电流脉冲信号,输出的信号通过在电流镜的存储单元的源端输出;可以实现有无输出电流镜的结构,其实现的方法参见第8实施例。
基于以上的实施例,本发明还提供第12个实施例,参考图12a、图12b、图12c所示;包括:步骤S3240向所述电流镜中MOS管的漏极端输入所述第二输入信号中的电流信号,且向所述电流镜中存储单元的漏极端输入等幅值电压信号;步骤S4240根据所述步骤S3240中所述电流镜中MOS管的漏极端输入的所述第二输入信号中的电流信号,所述电流镜中存储单元的漏极端输入的等幅值电压信号,所述存储单元的阈值电压,以及所述储能元件的储能参数进行运算处理,并输出所述电流镜的所述输出数据参数;其中,所述储能元件,或所述输出电流镜设置在所述存储单元的源端源线;所述输出电流镜由2个 MOS组成。在本实施例中通过电流镜的MOS的漏端输入电流脉冲信号,输出的信号通过在电流镜的存储单元的源端输出;可以实现有无输出电流镜的结构,其实现的方法参见第8实施例。
基于以上的实施例,本发明还提供第13个实施例;参考图12d、图12e、图12f所示;步骤S3250向电流镜中MOS管的漏极端输入所述第二输入信号的电流信号,且向所述电流镜中存储单元的漏极端输入等幅值电压信号;步骤 S4250根据所述步骤S3250中所述电流镜中MOS管的漏极端输入的所述第二输入信号的电流信号,所述电流镜中存储单元的漏极端输入的等幅值电压信号,所述存储单元的阈值电压,以及所述储能单元的储能参数进行运算处理,并输出所述存储单元的所述输出数据参数;其中,所述储能单元,或所述输出电流镜设置在所述存储单元的漏端位线;所述输出电流镜由2个MOS组成。在本实施例中通过电流镜的MOS的漏端输入电流脉冲信号,输出的信号通过在电流镜的存储单元的漏端输出;可以实现有无输出电流镜的结构,其实现的方法参见第8实施例。
基于以上的实施例,本发明还提供第14个实施例;参考图13a、图13b、图13c所示;步骤S5200在所述NOR Flash模块中使能多个所述存储单元,或多个所述电流镜,以及在NORFlash模块中设置储能单元,根据多个所述存储单元输入的所述输入数据参数,或多个所述电流镜输入的所述输入数据参数,以及所述存储单元的阈值电压,获取所述存储单元,或所述电流镜输出的所述输出数据参数,并将多个所述存储单元,或所述电流镜输出的所述输出数据参数进行累加,并进一步将所述累加结果与所述储能单元的储能参数进行运算处理,将运算处理后的结果设置为所述NOR Flash模块的输出结果参数,所述输出结果参数为电荷量。
具体的,在本实施例中,以前述的所有实施例为基础,参见上述第8-13 实施例,可知,在输入的信号中包括脉冲信号;当NOR Flash模块中包含有多个存储单元,或多个电流镜等组合的情况下;其连接关系进行不同的组合,信号输入端输入的信号进行相互组合,但是在本实施例中,无论结构关系怎么组合变化,其输入信号中必定存在脉宽不同的电压信号,或脉宽不同的电流信号;因此其输出的参数为电荷量;每个存储单元,以及每个电流镜输出的参数运算算法,也即乘法运算则基于前述实施例1-7;NOR Flash模块中使能多个存储单元,或多个电流镜时的则累加方法基于前述实施例8-12;因此在本实施例中 NORFlash模块的输出数据参数为电荷量,实现乘法与加法相结合。
例如,步骤如下:首先对Flash存储单元进行离线标定,得到栅端电压及漏端电压为固定值时漏端电流与不同编程状态的对应关系。在进行计算时,根据标定的对应关系以及b1至bn的值,分别将同一条BL上各相应存储单元编程到相应的状态,使得第i个存储单元的栅端电压为上述固定值时,其漏端的电流 Ii与bi成固定比例w;在Flash各字线分别施加输入脉冲,各输入脉冲的幅度为上述固定值,即施加在Flash存储单元栅端的电压幅度固定,各脉冲的宽度ti与 ai成固定比例w′,同时在漏端施加驱动电压;各存储单元的计算结果由其输出电荷量表示,Qi=Iiti=Kww′aibi,根据基尔霍夫定律,各存储单元输出的电荷会在电容上实现累加,电容上总电荷量其中Kww′为固定值;经过分流或者比例电流镜,可令通入电容的电流为BL上电流的1/(Kww′),此时电容上电荷即表征了此次乘加运算的结果。
本实施例中的方法亦可通过在漏端施加幅度固定、宽度为t的信号脉冲实现,并在源线上对电荷进行累加,原理相同。
本实施例中的方法亦可省去比例电流镜,通过直接将电流通入电容实现电荷的累加。
本实施例中的方法亦可直接测量电容上极板的电压U,再根据电容值大小C,利用Q=CU计算得到最终的电荷量,此即乘加运算的结果。测量电容上极板的电压同样通过测量的电路,参考图14;连接关系做出适应性的调整,使其本实施例的要求。
本实施例的方法也同样适用于电流输入的情况,在输入为电流信号时,适应的调整电流镜的连接关系,以及输入信号的变化。
本实施例的实现方法亦可直接测量电容上极板的电压U,再根据电容值大小C,利用Q=CU计算得到最终的电荷量,此即乘加运算的结果。其参考图14 所示的测量电路;其参考图14的测量电路;可以应用于本发明的任一实施例中;测量电路中,SL接入比例电流镜,电流镜的输出电流,即对电容充电的电流Icap,应与SL上电流ISL成固定比例α,同时,锁存器会对上极板的电压进行锁存。EN控制测量时电容的放电与否,放电电流为一恒定电流Iref。计算完成后,电容上会存储一定电荷,上极板比下极板电压高,锁存器锁存高电平,经过一定程度的放电后,电容电压降低,锁存器翻转为低电平。故输出脉冲的上升沿,需要与放电的EN信号上升沿对齐;输出脉冲的下降沿,标志着放电结束,在锁存器翻转时触发。两沿之间的时间长度Δt,即为计算结果。
测量的步骤如下:首先Comp开关导通,EN开关断开,进行前述的计算过程,此过程中比例电流镜复制的电流信号会不断对电容进行充电,使电容存储的电荷为Q;计算完成后,断开Comp开关,使电容与计算电路隔离开来;打开EN开关,以恒定电流Iref放电;分别检测EN信号的上升沿和锁存器的翻转,作为放电信号的开始和结束标志,则可以得到一脉宽t=Q/I_ref的放电信号,此处脉宽t即表征此次乘加运算的结果。
基于以上的实施例,本发明还提供第15个实施例,参考图13a、图13b、图13c和图14所示;所述步骤S5200包括:步骤S5210向多个所述存储单元的栅端输入所述第二输入信号中的电压信号;步骤S5211将多个所述存储单元的漏端进行连接,建立公共位线,并输入等幅值的电压信号;步骤S5212将多个所述存储单元的源端进行连接,建立公共源线,根据所述栅端所述第二输入信号中的电压信号、所述漏端输入的等幅值的电压信号,以及所述存储单元的阈值电压,获取每个所述储能单元的输出数据参数,将多个所述储能单元的输出数据参数进行累加,将累加后的输出数据参数与所述储能单元的储能参数运算处理,并输出所述NOR Flash模块的所述输出数据参数;其中,所述储能单元设置在所述输出数据参数的所述公共源线或所述公共位线上。在本实施例中通过公共字线输入电压脉冲信号,输出的信号通过公共源线输出;其实现的算法参见第14实施例。
基于以上的实施例,本发明还提供第16个实施例,参考图13c和图14所示;步骤S5220将多个所述存储单元的栅端进行连接,建立公共字线,输入等幅值的电压信号;步骤S5221向多个所述存储单元的漏端所述第二输入信号中的电压信号;步骤S5222将多个所述存储单元的源端进行连接,建立公共源线,根据所述公共字线上输入等幅值的电压信号、漏端所述第二输入信号中的电压信号,以及每个所述存储单元的阈值电压,获取每个所述储能单元的输出数据参数;将多个所述储能单元的输出数据参数进行累加,将累加后的输出数据参数与所述储能单元的储能参数运算处理,并输出所述NOR Flash模块的所述输出数据参数;并通过所述公共源线输出所述输出参数信号;其中,所述储能单元设置在所述输出数据参数的所述公共源线上。在本实施例中通过公共位线输入电压脉冲信号,输出的信号通过公共源线输出;其实现的算法参见第14实施例。
基于以上的实施例,本发明还提供第17个实施例,参考图15a、图15b、图15c所示;所述步骤S5200包括:步骤S5230向多个电流镜中的MOS管的漏端输入所述第二输入信号的电流信号;步骤S5231将多个所述电流镜中的存储单元的漏端进行连接,建立公共位线,并输入等幅值的电压信号;步骤 S5232将多个所述电流镜中所述存储单元的源端进行接地,或进行连接建立公共源线,根据向电流镜中的MOS管的漏端输入的所述第二输入信号的电流信号、向所述公共位线输入的等幅值的电压信号,以及每个所述存储单元的阈值电压,获取每个所述电流镜的输出数据参数,将多个所述电流镜的输出数据参数进行累加,将累加后的输出数据参数与所述储能单元的储能参数运算处理,并输出所述NOR Flash模块的所述输出数据参数;其中,所述储能单元设置在所述输出数据参数的所述公共源线,或所述公共位线上。在本实施例中通过电流镜中MOS管的漏端输入不等脉宽的电流信号,输出的信号通过电流镜中所述存储单元公共源或者位线输出;其实现的算法参见第14实施例。
在本发明中以上述提供的实施例为基础,可将NOR Flash模块中存储单元或者电流镜组合成阵列形式,具体的行数与列数不做任何的限制。
基于以上的实施例,本发明还提供第18个实施例,优选的参考第8,和/ 或第9实施例;参考图16a所示;栅端作为信号输入端,公共位线作为输出端;所述步骤5000包括:步骤S5400在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,建立公共位线;所述矩阵中的所述存储单元的源端相连,建立公共源线并接地;步骤S5410通过每一条所述公共字线输入所述第二输入信号中的电压信号;步骤S5411通过每一条所述公共位线输入等幅值的电压信号;步骤S5412根据所述公共字线输入所述第二输入信号中电压信号,所述公共位线输入等幅值的电压信号,以及所述存储单元的阈值电压进行运算处理,输出所述NOR Flash模块的所述输出数据参数;步骤S5413在每一条所述公共位线的输出端,或所述电流镜的输出端设置储能单元,控制所述NOR Flash模块的所述输出数据参数为电荷量。
具体的,根据上述的在NOR Flash模块中使能多个存储单元实施例的计算方法,以及单个存储单元的计算方法为基础,首先,对向量的数乘运算k(a1,a2,…,an),可使用图16d的结构:当NOR Flash模块中存储单元建立矩阵时;则为向量与矩阵之间的运算;在本实施例中举例说明;对向量与矩阵之间的运算,以为例,则需要使用二维的NOR Flash矩阵,矩阵结构图16a所示,WL1-WL2分别代表向量各值,矩阵各元素被相应存入Flash阵列各单元中。若为向量乘以矩阵,BL1上Flash单元存储矩阵第一列元素的值,若为矩阵乘以向量,则BL1上Flash单元存储矩阵第一行元素的值,以此类推。最终各BL上电流大小,即对应计算结果的各值大小。对矩阵与矩阵之间的乘法运算,则只需将矩阵与矩阵之间的乘法,拆分为若干个向量与矩阵之间的乘法即可。利用上述结构,依次计算各向量与矩阵的乘法。
在以上实施例的基础上,还提供了第19个实施例;在本实施例中,参考图16b所示;优选的参考第8,和/或第10实施例;栅端作为信号输入端,即电压信号;源端作为输出端;所述步骤S5000包括:步骤S5400在所述NOR Flash 模块中使能多个所述存储单元,并将多个所述存储单元建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,建立公共位线;每一列上的所述存储单元的源端相连,建立公共源线;步骤S5420通过每一条所述公共字线输入所述第二输入信号中电压信号;步骤 S5421通过每一条所述公共位线输入等幅值的电压信号;步骤S5422根据所述公共字线输入的所述第二输入信号中电压信号,所述公共位线输入的等幅值的电压信号,所述存储单元的阈值电压进行运算处理,并输出所述NOR Flash模块的所述输出数据参数;步骤S5423在每一条所述公共源线的输出端,或在所述NOR Flash模块的输出端设置储能单元,或设置所述输出电流镜;控制所述 NOR Flash模块的所述输出数据参数为电荷量。本实施例计算方法可以参见第 18个实施例,只是通过源线累加实现,原理相同。
在以上实施例的基础上,还提供了第20个实施例;在本实施例中,优选的参考第4,和/或第8,和/或第11实施例;位线作为信号输入端,即电压信号;源端作为输出端;参考图16c所示;所述步骤S5000包括:步骤S5400在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,建立公共位线;每一行上的所述存储单元的源端相连,建立公共源线;步骤S5430通过每一条所述公共字线输入等幅值的电压信号;步骤S5431通过每一条所述公共位线输入所述第一输入信号的电压信号,或所述第二输入信号中的电压信号;步骤S5432根据所述公共字线输入幅值等的电压信号、所述公共位线输入的所述第一输入信号的电压信号,或所述第二输入信号中的电压信号,以及所述存储单元的阈值电压,并输出所述NOR Flash模块的所述输出数据参数;步骤S5433当所述NOR Flash模块的所述输出数据参数为电荷量时;在每一条所述公共源线的输出端设置储能单元;当所述公共源线上设置输出电流镜时,在所述输出电流镜的输出管的源端或漏端源端置所述储能单元。本实施例计算方法可以参见第18个实施例,只是通过源线累加实现,原理相同。
在以上实施例的基础上,还提供了第21个实施例;在本实施例中,优选的参考第5,和/或第6,和/或第12,和/或第13,和/或第17实施例;通电流镜中MOS管的漏端作为信号输入端,即电流信号;输入电流镜中存储单元的源端,或漏端作为输出端;参考图17a,图17b所示;所述步骤S5000包括:当所述输入数据参数中包括负参数时;步骤S5400在所述NORFlash模块中使能多个所述电流镜,并将多个所述电流镜建立矩阵;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述电流镜中存储单元的漏端相连,建立公共位线;每一列或每一行的所述电流镜中存储单元的源端相连,建立公共源线;步骤S5440分别向每一行上的所述电流镜中MOS管的漏端输入所述第一输入信号的电流信号,或所述第二输入信号的电流信号;步骤S5441分别向所述公共位线输入等幅值的电压信号;步骤S5442根据所述电流镜中MOS 管的漏端输入的所述第一输入信号的电流信号,或所述第二输入信号的电流信号;所述公共位线输入的等幅值的电压信号;以及所述电流镜中存储单元的阈值电压进行运算处理,并输出所述NOR Flash模块的所述输出数据参数;步骤 S5444当所述NOR Flash模块的所述输出数据参数为电荷量时;在每一条所述公共源线的输出端设置所述储能单元;或;在每一条所述公共位线的输出端设置储能单元;其中,当所述公共源线,或者所述公共位线上设置输出电流镜时,在所述输出电流镜的输出管的源端或漏端源端置所述储能单元。本实施例计算方法可以参见第18个实施例,其差异仅在于通过输入端在位线上,源线累加实现,原理相同。
在以上实施例的基础上,还提供了第22个实施例;在本实施例中,优选的参考2实施例;参考图18所示;所述步骤S5000包括:当所述输入数据参数中包括负参数时;步骤S5500在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元,或将多个所述电流镜建立矩阵;所述矩阵的行数为偶数行,列数为偶数列;每一行上的所述存储单元的栅端相连,建立公共字线;相邻两行所述存储单元,或所述电流镜设置为一组,每一组中包括两条公共源线,或两条公共位线;每一列上的所述存储单元的漏端相连,或所述电流镜中的存储单元的漏端相连,建立公共位线;每一行,或每一列上的所述存储单元的源端相连,建立公共源线;步骤S5510向每一条所述公共字线输入等幅值的电压信号,或向每一行所述电流镜中的MOS管的漏端输入所述第一输入信号中的电流信号,并在所述公共位线上输入所述第一输入信号中的电压信号,或等幅值的电压信号;步骤S5511根据向每一条所述公共字线输入的等幅值的电压信号,或向每一行所述电流镜中的MOS管的漏端输入的所述第一输入信号中的电流信号,并在所述公共位线上输入的所述第一输入信号中的电压信号,或等幅值的电压信号,以及所述存储单元的阈值电压进行运算处理,通过所述公共源线,或公共位线输出对应的所述输出数据参数;步骤S5512将每一组中两条所述公共源线,或公共位线输出的所述输出参数进行差值计算,将差值计算的结果设置为所述NOR Flash模块输出的所述输出数据参数;当所述 NOR Flash模块的所述输出数据参数为电荷量时;在每一条所述公共源线的输出端设置储能单元或输出电流镜;在所述输出电流镜源端或漏端设置储能单元。
具体的,在本实施例中,以前述实施例中的乘法运算,累加运算,以及乘加运算的实施例为基础;实现本实施例的运算方法;参考图18a和18b所示;正、负导线的实现方法;若电流通过SL累加,则使用两条SL来实现权值为负的计算。以使用两行存储单元来计算的结果为例,其中bi可以有负值。计算时,首先根据bi各值的正负,并利用前述标定的曲线,分别对WL+、WL-两条位线与BLi相交节点的两个存储单元进行编程。若bi为正,则对WL+上的存储单元编程,使其状态能够表征bi的大小,对WL-上的存储单元编程,使其处于高阈值状态,即对WL及BL上的电压,其漏端电流几乎为0;若bi为负,则对WL+上的存储单元编程,使其处于高阈值状态,即对WL上的电压,其漏端电流几乎为0,对WL+上的存储单元编程,使其状态能够表征bi的绝对值大小。然后使用前述实施例中乘法与加法的结合方法进行计算。实现了NOR Flash模块的电流累加:参见数学模型:完成电流的累加。
在以上实施例的基础上,还提供了第23个实施例;在本实施例中,优选的参考第8实施例;参考图19所示;所述步骤S5000包括:当所述输入数据参数中包括负参数时;步骤S5500在所述NOR Flash模块中使能多个所述存储单元,并将多个所述存储单元,或将多个所述电流镜建立矩阵;所述矩阵的列数为偶数列,或行数为偶数行;每一行上的所述存储单元的栅端相连,建立公共字线;每一列上的所述存储单元的漏端相连,或所述电流镜中的存储单元的漏端相连,建立公共位线;将所述矩阵中每一行,或列的所述存储单元的源端,或所述电流镜中的存储单元源端相连,建立公共源线;步骤S5520向每一条所述公共字线输入所述第二输入信号中的电压信号,等幅值的电压信号,或向每一行中所述电流镜中的MOS管的漏端输入所述第二输入信号中的电流信号;且向每一条所述公共位线输入等幅值电压信号,或输入所述第二输入信号中的电压信号,步骤S5522根据向每一条所述公共字线输入的所述第二输入信号中的电压信号,等幅值的电压信号,或向每一行中所述电流镜中的MOS管的漏端输入的所述第二输入信号中的电流信号;且向每一条所述公共位线输入的等幅值电压信号,或输入的所述第二输入信号中的电压信号,以及所述存储单元的阈值电压,通过每条所述公共位线,或公共源线输出对应的所述输出数据参数;步骤S5523将每相邻2条公共位线,或公共源线上的所述存储单元,或所述电流镜设置为一组,在每组所述存储单元,或电流镜的两条所述公共位线,或公共源线上共同设置一储能单元,将每组中的两条公共位线,公共位线,或公共源线输出的所述输出参数进行差值计算,并将差值计算后的结果,以及对应组的所述储能单元的储能参数进行运算,获取对应组的所述输出数据参数;在每一条所述公共源线的输出端设置储能单元,或输出电流镜;所述输出电流镜源端或漏端设置储能单元。
具体的,在本实施例中NOR Flash模块内的结构,参考图19以及图20所示所示,若电流通过SL累加,则使用两条SL来实现权值为负的计算。以使用两行存储单元来计算的结果为例,其中bi可以有负值。计算时,首先根据bi各值的正负,并利用前述标定的曲线,分别对WL+、WL-两条位线与让BLi相交节点的两个存储单元进行编程。若bi为正,则对WL+上的存储单元编程,使其状态能够表征bi的大小,对WL-上的存储单元编程,使其处于高阈值状态,即对WL及BL上的电压,其漏端电流几乎为0;若bi为负,则对WL+上的存储单元编程,使其处于高阈值状态,即对 WL上的电压,其漏端电流几乎为0,对WL-上的存储单元编程,使其状态能够表征bi的绝对值大小。然后使用前述与输入数据参数和输出数据参数相对应的运算方法进行计算。当使用电荷量累加方法时,测量时,使正负两列的电流作差,则最终得到的电荷量的乘加结果;参见数学模型: 完成电流的累加。因此,实现基于NORFlash的高速低功耗的乘加运算在技术上具有极大的重要性。
此测量电路与前述实施例中基于的图14的原理相同,在本实施例中参考图20所示;具体测量步骤为:首先将Comp打开,EN1、EN2断开,进行计算操作,此时电容两端分别由正、负位线电流所对应的复制电流充电,计算完成后,Comp开关关闭,此时电容所存储电荷为二者之差,若差值为正,则电容上极板存储正电荷,其电压高于下级板,反之则存储负电荷,其电压低于下级板。Comp关闭后,保持EN1断开并将EN2打开,Ref接地,,Ref接地,进行正值结果的测量,此时,若电容存储正值,则EN2通路会对电容的电荷进行放电,直至放电完成,对应产生输出脉冲的宽度即为计算结果,此结果为正值;若电容存储负值,则电容上端的电压为负值,此时使EN1打开并将EN2断开,Ref接 Vdd,开始负值结果的测量,EN1通路会对电容的电荷进行放电,直至放电完成,对应产生输出脉冲的宽度即为计算结果,此结果为负值。
同理,若使用SL进行电荷累加,则可以使用两条SL,分别代表正、负结果。此时二者之差,亦可表征权值含负值的乘加结果。
本实施例的运算方法亦可省去比例电流镜,通过直接将电流通入电容实现电荷的累加。
本实施例的运算方法亦可直接测量电容上极板的电压U,再根据电容值大小 C,利用Q=CU计算得到最终的电荷量,此即乘加运算的结果。
基于前述实施例,本发明又提供了第24个实施例;参考图19a,图19b及图20所示;本实施例的运算方法亦可通过预充电和设置基准的方式,得到电荷量大小。基于本申请中所有矩阵的结构,都可以通过本实施例实现;具体步骤为:计算前,将Comp和EN2关闭,Ref接地,并将EN1打开,持续时间为T0,对电容进行预充电。此时,电容会在两端电压的驱动下,以Iref1的电流大小进行充电,预充电荷量为Iref1T0;预充电完成后,将EN1和EN2关闭,保持Ref接地,并将Comp打开,在Flash存储阵列中进行计算;计算完成后,断开Comp和 EN1,将EN2打开,对电容进行放电,并依据前述实施例中基于的图14节的原理相同,测量出放电时间t。若计算结果为0,则电容中的原电荷量不会改变,此时Q0=Iref1T0,放电时,该电量会以Iref2的电流大小随时间减少,对应的放电时间为(Iref1T0)/Iref2,该值为固定值,将此时间记为基准,表征0的结果,即Tbaseline=(Iref1T0)/Iref2。若测量结果为正值,则电容会被充入额外的电荷,此时电容的电荷量Q+大于Iref1T0,对应的放电时间t=Q+/Iref2,故额外充入的电荷量对应的时间Δt=(Q+-Iref1T0)/Iref2=t-Tbaseline即为放电时间t与基准Tbaseline之差,此差值即表征了计算结果的大小,差值越大则该正值越大,反之越小。同理,当测量结果为负值时,电容中的电荷量会被抽取一部分,其电荷量Q-小于Iref1T0,对应的放电时间t与基准Tbaseline之差即表征了该负值的大小。在本实施例中还包括,NOR Flash模块中使能多个电流镜,通过电流镜构建矩阵的方式,其矩阵的结构搭建种类,可参见前述实施例中包含有电流镜的所有实施例;计算方法与前述相关的实施例基本一致,而在本实施例中,参见本实施例矩阵向量的算法。
基于前述实施例,本发明又提供了第25个实施例;参考图21,图19b及图20所示;当所述输入数据参数中包括负参数时;Twin-cell的方法,使用双存储单元的结构;所述NORFlash模块中设置多个存储子模块;每个所述存储子模块中包括两个所述存储单元,将两个所述存储单元的源端进行电连接,并将电连接后的公共连接端设置为所述存储子模块的信号输出端;在两个所述存储单元的漏端分别输入正的所述输入参数信号和负的所述输入参数信号;在两个所述存储单元的栅端分别输入同一栅端电压信号;步骤S5532根据所述栅端电压信号、所述漏端输入的所述输入参数信号,以及所述存储单元的阈值电压,通过所述存储子模块的信号输出端对应的所述输出数据参数。
具体的,在本实施例中,可以实现负数的乘法,以及计算结果的加减法操作。计算时,可以依据前述所有实施例运算方法,以及对应的连接关系,提供一优选的实例进行说明;Cell_up和Cell_down可以分别进行乘法计算。以 c=a1b1+a2b2为例,利用实施例2和3的内容,分别让Cell_up和Cell_down实现a1b1和a2b2的乘法操作,此时两存储单元产生的电流均汇聚到SL上,故SL 上的电流即表征了二者之和。当计算a1b1-a2b2时,分别让让Cell_up和Cell_down实现a1b1和(-a2)b2的乘法操作,此时Cell_up会向SL流入电流ID1, Cell_down会从SL抽取电流ID2,故SL上的电流即表征了为二者之差,此亦为乘数为负值时的加法。
进一步优选的,当进行乘加运算时,可以利用此双存储单元结构的阵列实现,如下图。当计算时,则根据bi的正/负,分别利用第i列双存储单元结构的上/下存储单元,以实现aibi和-ai|bi|的计算,另一存储单元则置为高阈值状态,输出为0。此时对所有选中的计算单元,若其ai、bi同号,均会向SL注入电流,若其ai、bi异号,均会从SL抽取电流,最终SL上总电流即表征了的结果。
基于前述实施例,本发明又提供了第26个实施例;参考图22a和图22b 所示;设置基准Baseline的方法;实施例24利用测量的放电时间和基准之差表征了输出结果。此方法亦可适用于幅度表征的结果以及输入信号。举例进行说明;当施加幅度表征的输入信号时,根据第3-6实施例中的乘法原理,设置一基准电压Vbaseline,计算时,该电压对应的输出电流Ibaseline=KVbaseline(VGS-VTH)。当输入为非负值时,施加电压V+≥Vbaseline,该值与Vbaseline的差值ΔV表征了a值大小,计算时V+对应的输出电流 I+=KV+(VGS-VTH)=K(ΔV+Vbaseline)(VGS-VTH)=KVbaseline(VGS- VTH)+KΔV(VGS-VTH)=Ibaseline+IΔV,故计算时ΔV对应的电流IΔV即为I+与 Ibaseline之差。同理,当输入为负值时,施加电压V-<Vbaseline,该值与Vbaseline的差值ΔV表征了a值大小,其对应结果亦可以由V-对应的输出电流I-与Ibaseline之差表征。本实施例的方法可以进行被乘数a为负值时的乘法计算。此方法亦可对电流信号为输入的方法使用,参考第5和6实施例。此方法亦可对脉冲宽度表征输入的方法适用,参考8-13实施例,以电流幅度表征输出的过程为例,根据乘法算法,可设置基准Tbaseline,其对应累加的基准电荷量Qbaseline= TbaselineI0,放电时间tbaseline=Qbaseline/Iref2=Qbaseline/Iref2。对具体的被乘数a,输入脉冲的脉冲宽度T与Tbaseline之差表征了被乘数a,原理与前述类似。对应放电时间t与tbaseline之差即表征了计算结果。此方法亦可对脉冲宽度表征输入,电容电荷量表征输出的方法适用。参考图22b所示;此设置基准的方法亦对乘加运算适用。在前述乘法计算的基础上,对电流累加方法,有此值表征第i个存储单元的计算结果。将同一条SL上所有存储单元的电流累加,并将总基准设为所有存储单元的基准之和,则此时,总电流与总基准之差,即表征了乘加运算的结果。同理,此方法适用于电荷累加方法,原理一致。此方法亦适本发明中所有乘加运算。
在以上实施例的基础上,还提供了第27个实施例;在本实施例中,优选的参考第2和第8实施例;位线作为信号输入端,即电压信号;源线作为输出端;图23a、图23c所示;所述步骤S5000包括:步骤S5500在所述NOR Flash 模块中使能多个所述存储单元;每4个所述存储单元设置为一个乘法器,设置多个所述乘法器;将所述乘法器中设置两组存储单元组,相邻两个存储单元设置为一组存储单元组;第一组所述存储单元组中的一个所述存储单元与第二组所述存储单元组中一个所述存储单元的栅端相连,建立第一公共字线;第一组所述存储单元组中的另一个所述存储单元与第二组所述存储单元组中另一个所述存储单元的栅端相连,建立第二公共字线;4个所述存储单元的漏端相连,建立公共位线;每组所述存储单元组中两个所述存储单元的源端相连,设置为所述存储单元组的所述输出数据参数的输出端;步骤S5540分别向所述第一公共字线输入第一驱动电压信号,向所述第二公共字线输入第二驱动电压信号;步骤S5541向每个所述存储单元的所述公共位线输入等幅值的电压信号;步骤 S5542根据所述第一栅端电压信号、所述第二栅端电压信号、等幅值的电压信号,以及每个所述存储单元的阈值电压,通过所述存储单元组的输出端获取每组所述存储单元组的所述输出数据参数;步骤S5543将每个所述乘法器中每组所述存储单元组的所述输出数据参数进行对应和差差值运算,将差值运算的结果设置为所述NOR Flash模块的所述输出数据参数。
在以上实施例的基础上,还提供了第28个实施例;在本实施例中,优选的参考第2和第8实施例;位线作为信号输入端,即电压信号;源线作为输出端;图23b、图23c;所述步骤S5000包括:步骤S5500在所述NOR Flash模块中使能多个所述存储单元;每4个所述存储单元设置为一个乘法器,设置多个所述乘法器;将所述乘法器中设置两组存储单元组,相邻两个存储单元设置为一组存储单元组;4个所述存储单元的栅端相连,建立公共字线;第一组所述存储单元组中的一个所述存储单元与第二组各组所述存储单元组中一个所述存储单元的漏端相连,建立第一公共位线;第一组所述存储单元组中的另一个所述存储单元与第二组所述存储单元组中另一个所述存储单元的漏端相连,建立第二公共位线;每组所述存储单元组中两个所述存储单元的源端相连,设置为所述存储单元组的所述输出数据参数的输出端;步骤S5550向多个所述存储单元的所述公共字线输入等幅值的电压信号;步骤S5551分别向所述第一公共位线输入第一漏端电压信号,向所述第二公共位线输入第二漏端电压信号;步骤S5552根据所述第一漏端电压信号、所述第二漏端电压信号、所述等幅值的电压信号,以及每个所述存储单元的阈值电压,通过所述存储单元组的输出端获取每组所述存储单元组的所述输出数据参数;步骤S5552将每个所述乘法器中每组所述存储单元组的所述输出数据参数进行对应差值做差运算,将差值运算的结果设置为所述NOR Flash模块的所述输出数据参数。
具体的,参见实施例27和28;参考图23a、图23b、图23c在前述实施例 NOR Flash存储模块中原有阵列进行修改,根据前述内容,当选择存储单元栅端为输入时,参考图23a,虚线框内为一次乘法需要的结构,使用两条WL来进行输入的控制;当漏端为输入时,如图23b,使用两条BL来进行输入的控制。其中差值分别表征乘数和被乘数,即a=IN+-IN-,b=ω+-ω-,各存储单元的漏端电流/源端电流/电荷表征了乘数IN和乘数ω的积,即Iout +=ω+IN++ω-IN-,Iout -=ω+IN-+ω-IN+。有Iout +-Iout -=ω+IN++ ω-IN--ω+IN--ω-IN+=(ω+-ω-)(IN+-IN-)=ab。
其中,ω+IN+、ω-IN-、ω+IN-和ω-IN+由四个存储单元分别计算。计算乘加时,参考图23c;根据输入信号,可对结果进行相应的电流/电荷累加。当在WL或输入电流镜的MOS管漏端输入时,可在BL/SL上进行累加;当漏端为输入时,则只能在SL上累加。此法中,所有的乘数和被乘数都是以差值表征,故原表征乘数和被乘数的量,应替换为相应的差值来表征。结果的测量可基于参考图20相关实施例的测量电路及测量方式。
在以上实施例的基础上,还提供了第29个实施例;参考图24所示;量化的输入值;具体的实施:无论使用的是电荷累加还是电流累加的方法,都可以用于进行量化的乘数和被乘数的乘加计算。视具体需求,量化程度也可以不同,一种极限的情况,就是进行二值化(单比特)乘数和被乘数的乘加计算。此时,前述所有方法依然适用的同时,有一种新的计算方法可以实现。
首先,对存储单元进行擦除操作,使其处于擦除状态(ERS状态,或者‘1’状态),此时,其阈值电压为VT1。然后根据被乘数的值决定是否对存储单元进行编程操作,若被乘数的值为1,则不进行,若被乘数的值为0,则对其进行编程操作,使其处于编程状态(PGM状态,或者‘0’状态),此时,其阈值电压为VT2。有VT1<VT2。根据乘数的值决定加在栅端的电压,若乘数的值为0,则加电压V0,若乘数的值为1,则加电压V1,且有V0<VT1<V1<VT2。当且仅当存储单元处于‘1’状态且栅端电压为V1时,即乘数及被乘数皆为1时,漏端会有较大幅度的电流I0,其他情况漏端仅有极小的漏电流。设定合适的阈值电流ITH,以漏端是否有大于ITH的电流来表征计算的结果,若大于,则结果为1,否则结果为0。即完成了二值化的乘法计算。
基于本申请的实施例,不仅可以实现二值化(0,1)的乘法,还可以扩展为三值化乘法(-1,0,1)。电路的控制复杂度与量化程度有关,量化阶数越少,相应的电路控制越容易实现。
基于以上29个实施例的运算方法,以及存储模块的连接关系;搭建了又一结构;参见图25所示;基于该图25的结构框架中,NOR Flash阵列负责对乘数进行存储并进行乘加运算,电路中的矩阵形式适用于本发明中的所有矩阵形式;WL输入控制模块和BL输入控制模块,根据相应的输入值,分别负责各条WL和BL上输入的控制;输出测量模块负责对最终得出的计算结果进行测量,其测量方式是通过测量电路图14和20实现的;擦除/编程控制模块包含一些译码器和电荷泵等,可以对Flash阵列进行写操作,将运算需要的值存入 Flash存储单元中。
在以上实施例的基础上,还提供了第30个实施例;参考图26所示;在本实施例中,以前述输入参数中包括负数的实施例为基础,还可以实现将输入参数信号的正负乘数列分开置于两个阵列的实施方案;具体的编程机运算方式参考前述对应的实施例;根据输出的参数,以及输入参数的不同,并根据相应的算法进行计算。
在以上实施例的基础上,还提供了第31个实施例;对一个阵列实现一个测量电路的,具体的元器件的连接关系参考图27所示;通过多路选择器由各位线或源线共享测量电路的实施方案;
在以上实施例的基础上,还提供了第32个实施例;在本发明中还包括对一个阵列实现多个测量电路的一个实施例,具体的元器件的连接关系参考图28 所示;将阵列分组,每组通过多路选择器由组内各位线或源线共享测量电路的实施方案;
在以上实施例的基础上,还提供了第33个实施例;在本发明中还包括对一个阵列实现多个测量电路的一个实施例,具体的元器件的连接关系参考图29 所示;阵列中每个位线或源线使用各自专用的测量电路的实施方案;
在以上实施例的基础上,还提供了第34个实施例;在本发明中还包括对一个阵列实现多个测量电路的一个实施例,具体的元器件的连接关系参考图30 所示;还包括把多列的位线或源线互相连接,进行更大规模乘加计算的实施方案。
在以上实施例的基础上,还提供了第35个实施例;参考图31所示;该实施例通过AD/DA实现将上一层计算阵列的输出结果,直接转化为数字量,(幅值表征输出的信号通过ADC转化,宽度表征输出的信号通过TDC转化),再传递给下一层的输入控制模块,经由DAC重新转变为模拟信号,输入计算阵列中进行计算。
具体的经由模拟结构实现包括以下:
a.上一阵列输出为电流幅值,下一阵列输入由电压幅值表征;该情况可以将输出电流通过一定值电阻,将其转换为电压值。进一步,为了电流的稳定,可以使用比例电流镜。
b.上一阵列输出为电流幅值,下一阵列输入由电流幅值表征;该情况可以直连。
c.上一阵列输出为电流幅值,下一阵列输入由电压脉宽表征;该情况可以使用电容,对一段时间内电流充入的电荷量进行充电,再对其进行放电,放电信号即为电压脉冲信号。如图32所示。
d.上一阵列输出为电流幅值,下一阵列输入由电流脉宽表征;该情况在c. 所述基础上,将得到的电压脉冲施加在MOS管栅极,此时MOS管漏端的信号,即为脉宽表征输出的电流脉冲。
e.上一阵列输出为电荷量,下一阵列输入由电压幅值表征;该情况对使用测量电容电压的方法,可以实现直连。
f.上一阵列输出为电荷量,下一阵列输入由电流幅值表征;该情况可以将电压施加在MOS的栅端,并将漏端电流输入下一阵列。
g.上一阵列输出为电荷量,下一阵列输入由电压脉宽表征;该情况可以使用对电容放电的测量方法,实现直连。
h.上一阵列输出为电荷量值,下一阵列输入由电流脉宽表征;将电压脉冲施加在MOS管的栅端,其漏端输出,即为对应的电流脉冲,且脉宽表征下一阵列输入。
在本发明中,与其算法相关的矩阵,多存储单元,多电流镜的结构模块,根据输入数据参数,以及对应输出数据参数的不同,可以适应性调整其本发明中说明书附图中个图之间的连接关系,以及组合形式;当在输出端设置有输出电流镜的情况,参见本实施例中各图;在本发明中不限于输入数据参数的相关因子存在负数形式。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。