掌桥专利:专业的专利平台
掌桥专利
首页

存算一体的数据处理方法及存算一体的电路系统

文献发布时间:2023-06-19 19:30:30


存算一体的数据处理方法及存算一体的电路系统

技术领域

本发明涉及计算机内存技术领域,尤其是存算一体的数据处理方法及存算一体的电路系统。

背景技术

在传统的冯诺依曼计算体系架构中,由于存储器与处理器是分离的,两者需要通过数据总线进行连接,数据则需要在两者之间来回传输。随着信息技术的发展,对数据处理的需求呈现爆炸式增长,海量数据的传输与处理使得传统冯诺依曼计算体系结构面临带宽与功耗的双重挑战。

为了解决这些问题,存算一体技术开始得到人们的广泛研究。存算一体技术把计算与存储融于一体,无需进行大量的数据传输,大幅节省了能耗。在相关技术方案中,其中一种方案是通过在由非易失性存储器(如闪存)组成的存储单元阵列直接进行数据运算,特别适用于神经网络中大量使用的乘累加运算。

以闪存为例,神经网络权重值存储在存储器单元的浮置栅中,从而改变存储单元的阈值电压。将单元连成阵列后,神经网络的特征变量通过栅极或者漏极电压的形式输入到单元中,与阈值电压共同影响单元的沟道电流。通过阵列沟道电流的汇总与转换,最终实现乘累加的计算操作。在实际工作中,存储单元的沟道电流往往存在波动和漂移,特别是在多值存储的情况下,这降低了存算一体电路的数据运算精度。另外,由于电路需要进行数模与模数转换,增加了电路的面积与功耗。

发明内容

有鉴于此,为至少部分解决上述技术问题或者缺陷之一,本发明实施例的目的在于提供一种存算一体的数据处理方法,方法无需对输入数据进行数模转换,并且可克服存储单元阈值电压波动与漂移引起的精度下降问题;另外,本申请技术方案还提供了与这一方案对应的存算一体的电路系统。

一方面,本申请技术方案提供了存算一体的数据处理方法,包括以下步骤:

获取目标数据的权重数据,将所述权重数据按位存储至存算阵列中的对应字线的存储单元;

获取目标数据输入至所述存算阵列的位线,根据所述目标数据的数据值以及当前输入的数位确定所述位线的第一变化值;

根据所述目标数据的数位以及所述权重数据的数位确定所述字线的第二变化值;

将所述第一变化值与所述第二变化值进行汇总输出得到阵列电流,将所述阵列电流进行汇总得到目标结果。

在本申请方案的一种可行的实施例中,所述获取所述目标数据输入至所述位线,根据所述目标数据的数据值获取所述位线的第一变化值,包括:

根据所述目标数据的数据值产生位线脉冲信号;

通过所述位线脉冲信号对所述位线中的第一电压值进行变更,或者,通过所述位线脉冲信号对所述位线中的第一脉冲宽度进行变更;

根据变更后的所述第一电压值或者变更后的所述第一脉冲宽度确定所述第一变化值。

在本申请方案的一种可行的实施例中,根据所述目标数据的数位以及所述权重数据的数位确定所述字线的第二变化值,包括:

根据所述目标数据的数位以及所述位线对应权重数据的数位产生字线脉冲信号;

通过所述字线脉冲信号对所述字线中的第二电压值进行变更,或者通过所述字线脉冲信号对所述字线中的第二脉冲宽度进行变更;

根据变更后的所述第二电压值或者变更后的所述第二脉冲宽度确定所述第一变化值。

在本申请方案的一种可行的实施例中,所述获取目标数据输入至所述存算阵列的位线,根据所述目标数据的数据值以及当前输入的数位确定所述位线的第一变化值这一步骤之前,所述方法包括:

对若干所述目标数据进行缓存;

根据所述目标数据与所述位线一一对应的关系,构建得到目标数据序列;

根据所述目标数据序列将所述目标数据按位输入至所述存算阵列的位线。

在本申请方案的一种可行的实施例中,所述将所述第一变化值与所述第二变化值进行汇总输出得到阵列电流,将所述阵列电流进行汇总得到目标结果,包括:

当所述位线产生所述第一变化值且所述字线产生所述第二变化值,通过所述存算阵列中的运算单元的位线或者源线产生所述阵列电流,所述阵列电流用于表征当前数位的运算结果。

在本申请方案的一种可行的实施例中,所述输入所述目标数据输入至所述位线,根据所述目标数据的数据值获取所述位线的第一变化值,还包括:

当所述位线不参与运算处理,赋予所述位线以接地电压。

在本申请方案的一种可行的实施例中,根据所述目标数据的数位以及所述权重数据的数位确定所述字线的第二变化值,还包括:

当所述字线不参与运算处理,赋予所述字线以接地电压或者低于预设阈值电压的电压。

在本申请方案的一种可行的实施例中,所述将所述第一变化值与所述第二变化值进行汇总输出得到阵列电流,将所述阵列电流进行汇总得到目标结果,包括;

将汇总后的所述阵列电流进行模数转化得到所述目标结果,并将所述目标结果进行缓存。

另一方面,本申请技术方案还提供了存算一体的电路系统,该系统包括:

数位输入即缓存电路,用于获取目标数据的权重数据,将所述权重数据按位存储至存算阵列中的对应字线的存储单元;以及获取并缓存目标数据;

位线信号产生及控制电路,用于根据所述目标数据的数据值产生位线信号;

字线信号产生及控制电路,用于根据所述目标数据的数位以及所述权重数据产生字线信号;

存算阵列,用于根据所述位线信号以及产生阵列电流,所述阵列电流用于表征当前数位的运算结果;

电流汇总即信号转换电路,用于将所述阵列电流进行汇总得到目标结果;

数据缓存及输出电路,用于对所述目标结果进行缓存以及输出。

在本申请方案的一种可行的实施例中,系统中的存算阵列通过若干闪存单元并联构建得到;所述闪存单元的沟道电流的汇总结果用于描述所述目标结果。

本发明的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本发明的具体实施方式了解得到:

本申请技术方案采用栅极控制数位的方法,可直接实现将数字信号输入到乘累加阵列(闪存阵列)当中,无需额外的数模转换电路,具有简化输入电路的优点;此外,由于本申请技术方案中通过基础闪存单元的字线对应存储一个比特的权重数据方式,可大幅减少权重写入所耗时间,且可大幅减少阈值电压漂移对计算精度的影响,具有高可靠性的优点。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请技术方案中提供的存算一体的数据处理方法的步骤流程图;

图2为本申请技术方案中提供的另一种存算一体的数据处理方法的步骤流程图;

图3为本申请技术方案中提供的存算一体的电路系统的结构示意图;

图4为本申请技术方案中存储阵列的工作原理示意图;

图5为本申请技术方案中浮置栅中电流随Vg的变化曲线图;

图6为本申请技术方案中控制闪存单元的栅极电压Vg和漏极电压Vd来实现计算的原理示意图;

图7为本申请技术方案中栅极电压Vg和漏极电压Vd的变化曲线;

图8为本申请技术方案中另外一种存储阵列的工作原理示意图。

具体实施方式

下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

如背景技术的内容所指出,相关技术方案中所提出的由非易失性存储器(如闪存)组成的存储单元阵列直接进行数据运算的实际工作过程中,存储单元的沟道电流往往存在波动和漂移,特别是在多值存储的情况下,这降低了存算一体电路的数据运算精度。另外,由于电路需要进行数模与模数转换,增加了电路的面积与功耗。

针对上述存在的技术问题或缺陷,在第一方面,如图1所示,本申请技术方案提供了一种存算一体的数据处理方法,方法包括步骤S01-S04:

S01、获取目标数据的权重数据,将所述权重数据按位存储至存算阵列中的对应字线的存储单元。

其中,存算阵列是存放信息的主体,由许多存储单元排列组成。每个存储单元存放一位二值代码(0或1),若干个存储单元组成一个“字”(也称一个信息单元)。地址译码器有n条地址输入线AL0~ALn-1,2n条译码输出线WL0~WL2n-1,每一条译码输出线WLi称为“字线”,它与存算阵列中的一个“字”相对应。具体在实施例中,在进行乘累加计算前,可以将二进制权重值按数位写入位于同一位线不同字线的存储单元之中进行存储,可大幅减少权重写入所耗时间。

S02、获取目标数据输入至所述存算阵列的位线,根据所述目标数据的数据值以及当前输入的数位确定所述位线的第一变化值。

具体在实施例中,进行乘累加计算时,输入数据采取按位输入的方式,并且,同一个数据占据同一个位线,不同时钟周期输入不同的数位。其中,第一变化值可以是指位线脉冲信号的幅值或脉冲宽度的变化。

S03、根据所述目标数据的数位以及所述权重数据的数位确定所述字线的第二变化值。

具体在实施例中,进行乘累加计算时,对于不同字线,根据所代表的数位加上相应的电压值,或者相应宽度的电脉冲。相对应地,实施例中的第二变化值可以是指字线脉冲信号的幅值或脉冲宽度的变化。

S04、将所述第一变化值与所述第二变化值进行汇总输出得到阵列电流,将所述阵列电流进行汇总得到目标结果。

具体在实施例中,对于输入的每一位数据,进行步骤S02和S03的操作后,对阵列电流进行计算并保存,在所有数据位输入计算完成后对所有结果进行汇总与转换。

更为具体地,基于闪存的存算一体芯片,传统方法中采用模拟存储(多值存储)方式存储权重数据,即一个管子存储多比特数据,并将输入的数字信号转化为模拟信号加到闪存栅极上,从而影响沟道电流;如图2所示,在这一理论基础上,本申请技术方案采用数字存储(单比特存储)方式,将权重数据按位存入不同的闪存单元当中;并在进行计算的时候对输入的数据进行按位计算,通过脉冲高度和/或宽度来体现输入数据和权重数据的数位,从而进行计算。需要说明的是,如图2所示的实施例中,特征变量可以是指输入至实施例系统中的用户数据,即目标数据。

在一些可行的实施方式中,所述输入所述目标数据输入至所述位线,根据所述目标数据的数据值获取所述位线的第一变化值这一步骤S02,可以包括步骤S021-S023:

S021、根据所述目标数据的数据值产生位线脉冲信号;

S022、通过所述位线脉冲信号对所述位线中的第一电压值进行变更,或者,通过所述位线脉冲信号对所述位线中的第一脉冲宽度进行变更;

S023、根据变更后的所述第一电压值或者变更后的所述第一脉冲宽度确定所述第一变化值。

在实施例中,进行乘累加计算时,根据输入数据的数位,可以改变字线的电压值或者脉冲宽度。更为具体地,位线信号产生及控制电路根据缓存数据的内容,产生相应高度和宽度的位线脉冲信号。其中,脉冲信号的高度和宽度均为预设值。

在一些可行的实施方式中,所述输入所述目标数据至所述存算阵列的字线,根据所述目标数据的数位以及所述权重数据的数位确定所述字线的第二变化值这一步骤S03,可以包括步骤S031-S033:

S031、根据所述目标数据的数位以及所述位线对应权重数据的数位产生字线脉冲信号;

S032、通过所述字线脉冲信号对所述字线中的第二电压值进行变更,或者通过所述字线脉冲信号对所述字线中的第二脉冲宽度进行变更;

S033、根据变更后的所述第二电压值或者变更后的所述第二脉冲宽度确定所述第一变化值。

在实施例中,进行乘累加计算时,根据输入数据的数位,可以改变位线的电压值或者脉冲宽度。更为具体地,字线信号产生及控制电路同时根据现在位线所输入的数据的数位,以及当前字线所存储的权重数据数位,产生相应高度和宽度的位线脉冲信号。其中,脉冲信号的高度和宽度均为预设值。

在一些可行的实施方式中,所述获取目标数据输入至所述存算阵列的位线,根据所述目标数据的数据值以及当前输入的数位确定所述位线的第一变化值这一步骤之前S01,所述方法包括步骤S001-S003:

S001、对若干所述目标数据进行缓存;

S002、根据所述目标数据与所述位线一一对应的关系,构建得到目标数据序列;

S003、根据所述目标数据序列将所述目标数据按位输入至所述存算阵列的位线。

具体在实施例中,所获取的特征变量数据,即目标数据,可以通过数据输入及缓存电路输入到芯片中。数据在缓存中将以一个数据对应一个位线的方式排列。缓存中的数据将按位依次输出到位线信号产生及控制电路。

在一些可行的实施方式中,所述将所述第一变化值与所述第二变化值进行汇总输出得到阵列电流,将所述阵列电流进行汇总得到目标结果这一步骤S04,可以具体为步骤S041:当所述位线产生所述第一变化值且所述字线产生所述第二变化值,通过所述存算阵列中的运算单元的位线或者源线产生所述阵列电流,所述阵列电流用于表征当前数位的运算结果。

具体在实施例中,当字线和位线均加有脉冲信号时,参与计算的位线(BL)或者源线(SL)将产生电流,此电流即为当前数位的计算结果。

在一些可行的实施方式中,所述输入所述目标数据输入至所述位线,根据所述目标数据的数据值获取所述位线的第一变化值这一步骤S02,还可以包括步骤S024:当所述位线不参与运算处理,赋予所述位线以接地电压。

具体在实施例中,不参与计算的BL将接地,从而不贡献电流。

在一些可行的实施方式中,所述输入所述目标数据至所述存算阵列的字线(WL),根据所述目标数据的数位以及所述权重数据的数位确定所述字线的第二变化值这一步骤S03,还可以包括步骤S034:当所述字线不参与运算处理,赋予所述字线以接地电压或者低于预设阈值电压的电压。

具体在实施例中,不参与计算的WL将赋予接地电压或低于其阈值电压的电压。

在一些可行的实施方式中,所述将所述第一变化值与所述第二变化值进行汇总输出得到阵列电流,将所述阵列电流进行汇总得到目标结果这一步骤S04,还可以包括步骤S042:将汇总后的所述阵列电流进行模数转化得到所述目标结果,并将所述目标结果进行缓存。

具体在实施例中,当脉冲信号加到相应的字线和位线后,电流汇总及信号转换电路将在此脉冲周期内,对存算阵列中参与计算的位线或者源线(SL)电流进行采集汇总,并加以保存。等所有数位计算完成后,对所采集信号进行模数转化,并通过数据缓存及输出电路输出。

另一方面,本申请技术方案还提供了存算一体的电路系统,该系统包括:

数位输入即缓存电路,用于获取目标数据的权重数据,将所述权重数据按位存储至存算阵列中的对应字线的存储单元;以及获取并缓存目标数据;

位线信号产生及控制电路,用于根据所述目标数据的数据值产生位线信号;

字线信号产生及控制电路,用于根据所述目标数据的数位以及所述权重数据产生字线信号;

存算阵列,用于根据所述位线信号以及产生阵列电流,所述阵列电流用于表征当前数位的运算结果;

电流汇总即信号转换电路,用于将所述阵列电流进行汇总得到目标结果;

数据缓存及输出电路,用于对所述目标结果进行缓存以及输出。

在一些可选的实施方式中,系统中的存算阵列通过若干闪存单元并联构建得到;所述闪存单元的沟道电流的汇总结果用于描述所述目标结果。

具体在实施例中,如图3所示,存算阵列采用的是NOR flash的布局方式,即所有闪存单元采用并联的方式。每个单元的沟道电流都会对BL或者SL电流产生影响。BL或者SL电流为其所连接的所欲单元沟道电流的汇总。

用户数据(特征变量数据),通过数据输入及缓存电路输入到芯片中。数据在缓存中将以一个数据对应一个位线的方式排列。缓存中的数据将按位依次输出到位线信号产生及控制电路。

位线信号产生及控制电路根据缓存数据的内容,产生相应高度和宽度的位线脉冲信号。字线信号产生及控制电路同时根据现在位线所输入的数据的数位,以及当前字线所存储的权重数据数位,产生相应高度和宽度的位线脉冲信号。脉冲信号的高度和宽度均为预设值。当字线和位线均加有脉冲信号时,参与计算的位线(WL)或者源线(SL)将产生电流,此电流即为当前数位的计算结果。

当脉冲信号加到相应的字线和位线后,电流汇总及信号转换电路将在此脉冲周期内,对存算阵列中参与计算的位线(WL)或者源线(SL)电流进行采集汇总,并加以保存。等所有数位计算完成后,对所采集信号进行模数转化,并通过数据缓存及输出电路输出。

下面结合具体的实施场景,对本申请技术方案的具体实施过程进行详细描述:

如图4所示,实施例中完全通过控制闪存单元的栅极电压Vg来实现计算的方式,其漏极电压Vd将恒定或为0。闪存单元(浮置栅晶体管)的沟道电流(表现为BL或者SL电流)受到栅极电压Vg和漏极电压Vd的影响。电压越大,电流越大。另外,电流还受到浮置栅中所存电荷的影响。

在图4所示的实施例中,当所存权重数据为0时,浮置栅中存有大量电荷,以致其阈值电压将高于实施例所选用的所有Vg,所以在计算中其电流将一直保持为0。当权重为1时,浮置栅中无电荷,阈值电压变低。如图5所示,此时Vg越大,电流越大。

如表1所示,针对实施例中输入特征变量为4比特,权重也为4比特的运算过程进行描述:

表1

如表2所示,对存算阵列中的权重分配如下:

表2

在第零个周期(CLK0),位线输入所有数据的最低位。BL0为“1”,BL1为“1”,BL2为“0”。其0或1通过漏极所加电压来体现。这时WL0-3分别加上Vg0-3,Vg0

如图6所示的实施方式,通过同时控制闪存单元的栅极电压Vg和漏极电压Vd来实现计算的方式,其中,栅极电压Vg和漏极电压Vd的变化曲线如图7所示。其与前述图4所示的实施例类似,不同的是图6所示的实施例是通过改变Vd来体现输入数据的数位权重。高位使用高电压,以实现高电流,低位使用低电压,以实现低电流。二栅极电压的组合从而可以减少。

参考图8,提供了另外一种存储阵列的实现方式,前述的实施例均是通过改变电压(脉冲高度)来实现;如图8所示的实施例中,引入了改变脉冲宽度的方式。由于作为运算结果的电流汇总后是通过电容保存的,电容保存的电量是电流和时间的乘积,所以通过改变脉冲的宽度(所加电压的时间)一样可以改变电量的多少。在该实施例中,输入数据的不同数位将通过不同的脉冲宽带来体现,从而达到区分不同数位贡献的目的。如表3所示,输入数据第零位时,Vd的高电位时间为X1,第二位时为X2,以此类推。更长的脉冲将贡献更多的电量,从而体现出更高的数位。

表3

从上述具体的实施过程,可以总结出,本发明所提供的技术方案相较于现有技术存在以下优点或优势:

1.本申请技术方案由于采用栅极控制数位的方法,可直接实现将数字信号输入到乘累加阵列(闪存阵列)当中,无需额外的数模转换电路,具有简化输入电路的优点。

2.本申请技术方案由于采用每个管子存储一个比特的权重数据存储方式方法,可大幅减少权重写入所耗时间,且可大幅减少阈值电压漂移对计算精度的影响,具有高可靠性的优点。

此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

技术分类

06120115936182