存储装置及方法、数据处理装置及方法、电子装置与流程

文档序号:17548206发布日期:2019-04-30 18:00阅读:166来源:国知局
存储装置及方法、数据处理装置及方法、电子装置与流程

本公开属于数据处理技术领域,更具体地涉及存储装置及方法、数据处理装置及方法、电子装置。



背景技术:

神经网络(neuralnetwork)已经获得了非常成功的应用,但是大规模的神经网络参数对存储提出了很高的要求。一方面,大量神经网络参数需要巨大的存储容量。另一个方面,访问大量神经网络数据会带来巨大的访存能耗。

现在存储神经网络参数的内存是ecc(errorcorrectingcode)内存,ecc内存虽然能够纠正读取数据时发生的错误,但是ecc内存会带来额外的存储容量开销和访存功耗开销。神经网络算法有一定的容错能力,而将神经网络所有参数使用ecc内存存储忽略了神经网络的容错,带来额外存储开销,计算开销和访存开销,因此如何结合神经网络容错能力选用适合神经网络处理的内存是一个亟待解决的问题。

公开内容

(一)要解决的技术问题

有鉴于此,本公开提供了一种存储装置及方法、数据处理装置及方法、电子装置,以期解决上述问题。

(二)技术方案

一种存储装置,包括:精确存储单元,用于存储数据中的重要比特位;非精确存储单元,用于存储数据中的非重要比特位。

在本公开一些示例性实施例中,所述精确存储单元采用ecc内存,所述非精确存储单元采用非ecc内存。

在本公开一些示例性实施例中,所述数据为神经网络参数,包括输入神经元、权值和输出神经元;所述精确存储单元用于存储输入神经元的重要比特位、输出神经元的重要比特位和权值的重要比特位;所述非精确存储单元用于存储输入神经元的非重要比特位、输出神经元的非重要比特位和权值的非重要比特位。

在本公开一些示例性实施例中,所述数据包括浮点型数据和定点型数据;所述浮点型数据中的符号位和指数部分为重要比特位,底数部分为非重要比特位;所述定点型数据中的符号位和数值部分的前x比特为重要比特位,数值部分的剩余比特为非重要比特位,其中,x为大于等于0且小于m的正整数,m为数据总比特位。

在本公开一些示例性实施例中,所述ecc内存包括有ecc校验的dram和有ecc校验的sram;所述有ecc校验的sram采用6tsram,或者采用4tsram或3tsram。

在本公开一些示例性实施例中,所述非ecc内存包括非ecc校验的dram和非ecc校验的sram;所述非ecc校验的sram采用6tsram,或者采用4tsram或3tsram。

在本公开一些示例性实施例中,所述6tsram中存放每一个比特的存储单元包括6个mos管;所述4tsram中存放每一个比特的存储单元包括4个mos管;所述3tsram中存放每一个比特的存储单元包括3个mos管。

在本公开一些示例性实施例中,所述4个mos管包括:第一mos管、第二mos管、第三mos管和第四mos管,第一mos管和第二mos管用于门控,第三mos管和第四mos管用于存储,其中,第一mos管栅极与字线wl电连接,源极与位线bl电连接;第二mos管栅极与字线wl电连接,源极与位线blb电连接;第三mos管栅极与第四mos管源极和第二mos管漏极连接,并通过电阻r2与工作电压连接,第三mos管漏极接地;第四mos管栅极与第三mos管源极和第一mos管漏极连接,并通过电阻r1与工作电压连接,第四mos管漏极接地;wl用于控制存储单元的门控访问,bl用于进行存储单元的读写。

在本公开一些示例性实施例中,所述3个mos管包括:第一mos管,第二mos管和第三mos管,第一mos管用于门控,第二mos管和第三mos管用于存储,其中,第一mos管栅极与字线wl电连接,源极与位线bl电连接;第二mos管栅极与第三mos管源极连接,并通过电阻r2与工作电压连接,第二mos管漏极接地;第三mos管栅极与第二mos管源极和第一mos管漏极连接,并通过电阻r1与工作电压连接,第三mos管漏极接地;wl用于控制存储单元的门控访问,bl用于进行存储单元的读写。

一种数据处理装置,包括运算单元、指令控制单元和上述的存储装置;所述存储装置用于接收输入的指令和运算参数,并将运算参数中的重要比特位和指令存储于精确存储单元,将运算参数中的非重要比特位存储于非精确存储单元;所述指令控制单元用于接收存储装置中的指令,并译码生成控制信息;所述运算单元用于接收存储装置中的运算参数,依据控制信息进行运算,并将运算结果传输至存储装置。

在本公开一些示例性实施例中,所述运算单元为神经网络处理器。

在本公开一些示例性实施例中,所述运算参数为神经网络参数,所述运算单元用于接收存储装置中的输入神经元和权值,依据控制信息完成神经网络运算得到输出神经元,并将输出神经元传输至存储装置。

在本公开一些示例性实施例中,所述运算单元用于接收存储装置中的输入神经元的重要比特位和权值的重要比特位进行计算;或者,所述运算单元用于接收重要比特位和非重要比特位拼接完整的输入神经元和权值进行计算。

在本公开一些示例性实施例中,还包括:指令缓存,设置在存储装置和指令控制单元之间,用于存储专用指令;输入神经元分层缓存,设置在存储装置和运算单元之间,用于缓存输入神经元,所述输入神经元分层缓存包括输入神经元精确缓存和输入神经元非精确缓存;权值分层缓存,设置在存储装置和运算单元之间,用于缓存权值数据,所述权值分层缓存包括权值精确缓存和权值非精确缓存;输出神经元分层缓存,设置在存储装置和运算单元之间,用于缓存输出神经元,所述输出神经元分层缓存包括输出神经元精确缓存和输出神经元非精确缓存。

在本公开一些示例性实施例中,还包括直接数据存取单元dma,用于在所述存储装置、指令缓存、权值分层缓存、输入神经元分层缓存和输出神经元分层缓存中进行数据或者指令读写。

在本公开一些示例性实施例中,所述指令缓存、输入神经元分层缓存、权值分层缓存和输出神经元分层缓存采用4tsram或3tsram。

在本公开一些示例性实施例中,还包括预处理模块,用于对输入数据进行预处理并传输至存储装置;所述预处理包括切分、高斯滤波、二值化、正则化和归一化。

在本公开一些示例性实施例中,所述运算单元为通用运算处理器。

一种电子装置,包括上述的数据处理装置。

一种存储方法,包括:将数据中的重要比特位进行精确存储;将数据中的非重要比特位进行非精确存储。

在本公开一些示例性实施例中,包括:提取数据的重要比特位和非重要比特位;将数据中的重要比特位存储在ecc内存中进行精确存储;将数据中的非重要比特位存储在非ecc内存中进行非精确存储。

在本公开一些示例性实施例中,所述数据为神经网络参数,包括输入神经元、权值和输出神经元;将输入神经元的重要比特位、输出神经元的重要比特位和权值的重要比特位进行精确存储;将输入神经元的非重要比特位、输出神经元的非重要比特位和权值的非重要比特位进行非精确存储。

在本公开一些示例性实施例中,所述数据包括浮点型数据和定点型数据;所述浮点型数据中的符号位和指数部分为重要比特位,底数部分为非重要比特位;所述定点型数据中的符号位和数值部分的前x比特为重要比特位,数值部分的剩余比特为非重要比特位,其中,x为大于等于0且小于m的正整数,m为参数总比特位。

在本公开一些示例性实施例中,所述ecc内存包括有ecc校验的dram和有ecc校验的sram;所述有ecc校验的sram采用6tsram,或者采用4tsram或3tsram。

在本公开一些示例性实施例中,所述非ecc内存包括非ecc校验的dram和非ecc校验的sram;所述非ecc校验的sram采用6tsram,或者采用4tsram或3tsram。

一种数据处理方法,包括:接收指令和参数,并将参数中的重要比特位和指令进行精确存储,将参数中的非重要比特位进行非精确存储;接收指令,并将指令译码生成控制信息;接收参数,并依据控制信息进行运算,将运算结果存储。

在本公开一些示例性实施例中,所述运算为神经网络运算,所述参数为神经网络参数。

在本公开一些示例性实施例中,所述接收参数,并依据控制信息进行运算,将运算结果存储包括:接收输入神经元和权值,依据控制信息完成神经网络运算得到输出神经元,并将输出神经元存储或输出。

在本公开一些示例性实施例中,所述接收输入神经元和权值,依据控制信息完成神经网络运算得到输出神经元包括:接收输入神经元的重要比特位和权值的重要比特位进行计算;或者,接收将重要比特位和非重要比特位拼接完整的输入神经元和权值进行计算。

在本公开一些示例性实施例中,还包括:缓存专用指令;对输入神经元进行精确缓存和非精确缓存;对权值数据进行精确缓存和非精确缓存;对输出神经元进行精确缓存和非精确缓存。

在本公开一些示例性实施例中,所述运算为通用运算。

在本公开一些示例性实施例中,在所述接收指令和参数,并将参数中的重要比特位和指令存储于进行精确存储,将参数中的非重要比特位进行非精确存储之前还包括:对输入数据进行预处理并存储;所述预处理包括切分、高斯滤波、二值化、正则化和归一化。

一种存储单元,所述存储单元为4tsram或3tsram,用于存储神经网络参数。

在本公开一些示例性实施例中,所述4tsram中存放每一个比特的存储单元包括4个mos管;所述3tsram中存放每一个比特的存储单元包括3个mos管。

在本公开一些示例性实施例中,所述4个mos管包括:第一mos管、第二mos管、第三mos管和第四mos管,第一mos管和第二mos管用于门控,第三mos管和第四mos管用于存储,其中,第一mos管栅极与字线wl电连接,源极与位线bl电连接;第二mos管栅极与字线wl电连接,源极与位线blb电连接;第三mos管栅极与第四mos管源极和第二mos管漏极连接,并通过电阻r2与工作电压连接,第三mos管漏极接地;第四mos管栅极与第三mos管源极和第一mos管漏极连接,并通过电阻r1与工作电压连接,第四mos管漏极接地;wl用于控制存储单元的门控访问,bl用于进行存储单元的读写。

在本公开一些示例性实施例中,所述3个mos管包括:第一mos管,第二mos管和第三mos管,第一mos管用于门控,第二mos管和第三mos管用于存储,其中,第一mos管栅极与字线wl电连接,源极与位线bl电连接;第二mos管栅极与第三mos管源极连接,并通过电阻r2与工作电压连接,第二mos管漏极接地;第三mos管栅极与第二mos管源极和第一mos管漏极连接,并通过电阻r1与工作电压连接,第三mos管漏极接地;wl用于控制存储单元的门控访问,bl用于进行存储单元的读写。

在本公开一些示例性实施例中,所述神经网络参数包括输入神经元、权值和输出神经元。

(三)有益效果

(1)本公开采用近似存储技术,充分挖掘神经网络的容错能力,将神经参数进行近似存储,参数中重要的比特位采用精确存储,不重要的比特位采用非精确存储,从而减少存储开销和访存能耗开销。

(2)采用4tsram或者3tsram存储技术,增加sram存储密度,减少sram访存功耗,利用神经网络算法的容错性掩盖4tsram和3tsram的抗噪能力弱的缺点。加速装置能够充分利用近似存储技术,并充分挖掘神经网络的容错能力,减少神经网络的计算量和神经网络访存量,从而减少计算能耗和访存能耗。

附图说明

图1是本公开实施例的分层存储装置结构示意图。

图2是本公开实施例的4tsram存储单元的结构示意图。

图3是本公开实施例的3tsram存储单元的结构示意图。

图4是本公开实施例的数据处理装置结构示意图。

图5是本公开另一实施例的数据处理装置结构示意图。

图6是本公开实施例的数据存储方法流程图。

图7是本公开实施例的数据处理方法流程图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。

本公开一实施例提供一种分层存储装置,如图1所示为本公开实施例的分层存储装置结构示意图,包括:精确存储单元和非精确存储单元,精确存储单元用于存储数据中的重要比特位,非精确存储单元用于存储数据中的非重要比特位。

精确存储单元采用ecc内存,非精确存储单元采用非ecc内存。

进一步地,分层存储装置存储的数据为神经网络参数,包括输入神经元、权值和输出神经元,精确存储单元存储输入神经元的重要比特位、输出神经元的重要比特位和权值的重要比特位,非精确存储单元存储输入神经元的非重要比特位、输出神经元的非重要比特位和权值的非重要比特位。

进一步地,分层存储装置存储的数据包括浮点型数据和定点型数据,浮点型数据中的符号位和指数部分指定为重要比特位,将底数部分指定为非重要比特位;定点型数据中的符号位和数值部分的前x比特为重要比特位,数值部分的剩余比特为非重要比特位,其中,x为大于等于0且小于m的正整数,m为数据总比特位。将重要比特位存放在ecc内存进行精确存储,将非重要比特位存放在非ecc内存都进行非精确存储。

进一步地,ecc内存包括有ecc校验的dram和有ecc校验的sram,有ecc校验的sram采用6tsram,在本公开其他实施例中,也可采用4tsram或3tsram。

非ecc内存包括非ecc校验的dram和非ecc校验的sram,非ecc校验的sram采用6tsram,在本公开其他实施例中,也可采用4tsram或3tsram。

6tsram中存放每一个比特的单元由6个mos(metaloxidesemiconductor)管组成,4tsram中存放每一个比特的单元由4个mos管组成,3tsram中存放每一个比特的单元由3个mos管组成。

存储神经网络权值的sram一般采用6tsram,6tsram稳定性高但是占用的面积大,读写功耗也高。神经网络算法有一定的容错能力,而6tsram无法利用神经网络的容错特性,因此,在本实施例为充分挖掘神经网络的容错能力,采用4tsram或3tsram存储技术代替6tsram,增加sram存储密度,减少sram访存功耗,利用神经网络算法的容错性掩盖4tsram的抗噪能力弱的缺点。

4tsram相比于6tsram,存储密度更高,访存功耗更低,又因为神经网络算法具有一定的容错能力,因此4tsram相比于6tsram更适合于神经网络算法,增强了存储密度的同时保证了抗噪效果。4tsram能够充分挖掘神经网络的容错特性,减少sram的设计面积和访存能耗。图2为4tsram存储单元的结构示意图,如图2所示,4tsram存储单元由4个nmos组成,分别是m1(第一mos管),m2(第二mos管),m3(第三mos管),m4(第四mos管)。m1和m2是用于门控,m3和m4用于存储。

m1栅极与字线wl(wordline)电连接,源极与位线bl(bitline)电连接;m2栅极与字线wl电连接,源极与位线blb电连接;m3栅极与m4源极、m2漏极连接,并通过电阻r2与工作电压vdd连接,m3漏极接地;m4栅极与m3源极、m1漏极连接,并通过电阻r1与工作电压vdd连接,m4漏极接地。wl用来控制存储单元的门控访问,bl来进行存储单元的读写。当进行读操作时,拉高wl,从bl中读出位即可。当进行写操作时,拉高wl,拉高或者拉低bl,由于bl的驱动能力比存储单元强,会强制覆盖原来的状态。

图3为3tsram存储单元的结构示意图,如图3所示,3tsram存储单元由3个nmos组成,分别是m1(第一mos管),m2(第二mos管)和m3(第三mos管)。m1用于门控,m2和m3用于存储。

m1栅极与字线wl(wordline)电连接,源极与位线bl(bitline)电连接;m2栅极与m3源极连接,并通过电阻r2与工作电压vdd连接,m2漏极接地;m3栅极与m2源极、m1漏极连接,并通过电阻r1与工作电压vdd连接,m3漏极接地。wl用来控制存储单元的门控访问,bl来进行存储单元的读写。当进行读操作时,拉高wl,从bl中读出位即可。当进行写操作时,拉高wl,拉高或者拉低bl,由于bl的驱动能力比存储单元强,会强制覆盖原来的状态。

本公开的存储装置采用近似存储技术,能够充分挖掘神经网络的容错能力,将神经参数进行近似存储,参数中重要的比特位采用精确存储,不重要的比特位采用非精确存储,从而减少存储开销和访存能耗开销。

本公开另一实施例提供一种数据处理装置,是一种与近似存储技术相对应的加速装置,如图4所示为本公开实施例的数据处理装置结构示意图,包括:非精确运算单元、指令控制单元和上述的分层存储装置。

分层存储装置接收指令和运算参数,并将运算参数中的重要比特位和指令存储于精确存储单元,将运算参数中的非重要比特位存储于非精确存储单元。

指令控制单元接收分层存储装置中的指令,并将指令进行译码生成控制信息控制非精确运算单元进行计算操作。

非精确运算单元接收分层存储装置中的运算参数,依据控制信息进行运算,并将运算结果传输至分层存储装置进行存储或输出。

进一步地,非精确运算单元为神经网络处理器。进一步地,上述运算参数为神经网络参数,分层存储装置用来存储神经网络的神经元,权值和指令,将神经元的重要比特位、权值的重要比特位和指令存储在精确存储单元,神经元的非重要比特位和权值的非重要比特位存储在非精确存储单元。非精确运算单元接收分层存储装置中的输入神经元和权值,依据控制信息完成神经网络运算得到输出神经元,并将输出神经元重新传输至存储装置进行存储或输出。

进一步地,非精确运算单元可以有两种计算模式:(1)非精确运算单元直接接收来自分层存储装置的精确存储单元中的输入神经元的重要比特位和权值的重要比特位进行计算;(2)非精确运算单元接收重要比特位和非重要比特位拼接完整的输入神经元和权值进行计算,其中,输入神经元和权值的重要比特位和非重要比特位在存储单元中读取时进行拼接。

进一步地,如图5所示,数据处理装置还包括预处理模块,用于对输入的原始数据进行预处理并传输至存储装置,预处理包括切分、高斯滤波、二值化、正则化、归一化等等。

进一步地,数据处理装置还包括指令缓存、输入神经元分层缓存、权值分层缓存和输出神经元分层缓存,其中,指令缓存设置在分层存储装置和指令控制单元之间,用于存储专用指令;输入神经元分层缓存设置在存储装置和非精确运算单元之间,用于缓存输入神经元,输入神经元分层缓存包括输入神经元精确缓存和输入神经元非精确缓存,分别缓存输入神经元的重要比特位和非重要比特位;权值分层缓存设置在存储装置和非精确运算单元之间,用于缓存权值数据,权值分层缓存包括权值精确缓存和权值非精确缓存,分别缓存权值的重要比特位和非重要比特位;输出神经元分层缓存设置在存储装置和非精确运算单元之间,用于缓存输出神经元,所述输出神经元分层缓存包括输出神经元精确缓存和输出神经元非精确缓存,分别缓存输出神经元的重要比特位和非重要比特位。

进一步地,数据处理装置还包括直接数据存取单元dma(directmemoryaccess),用于在存储装置、指令缓存、权值分层缓存、输入神经元分层缓存和输出神经元分层缓存中进行数据或者指令读写。

进一步地,上述指令缓存、输入神经元分层缓存、权值分层缓存和输出神经元分层缓存采用4tsram或3tsram。

进一步地,非精确运算单元包括但不仅限于三个部分,第一部分乘法器,第二部分加法树,第三部分为激活函数单元。第一部分将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out),过程为:out=in1*in2;第二部分将输入数据in1通过加法树逐级相加得到输出数据(out),其中in1是一个长度为n的向量,n大于1,过程为:out=in1[1]+in1[2]+...+in1[n],和/或将输入数据(in1)通过加法数累加之后和输入数据(in2)相加得到输出数据(out),过程为:out=in1[1]+in1[2]+...+in1[n]+in2,或者将输入数据(in1)和输入数据(in2)相加得到输出数据(out),过称为:out=in1+in2;第三部分将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等,除了做激活操作,第三部分可以实现其他的非线性函数,可将将输入数据(in)通过运算(f)得到输出数据(out),过程为:out=f(in)。

非精确运算单元还可以包括池化单元,池化单元将输入数据(in)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。

非精确运算单元执行运算包括几个部分,第一部分是将输入数据1和输入数据2相乘,得到相乘之后的数据;第二部分执行加法树运算,用于将输入数据1通过加法树逐级相加,或者将所述输入数据1通过和输入数据2相加得到输出数据;第三部分执行激活函数运算,对输入数据通过激活函数(active)运算得到输出数据。以上几个部分的运算可以自由组合,从而实现各种不同功能的运算。

本公开的数据处理装置能够充分利用近似存储技术,并充分挖掘神经网络的容错能力,减少神经网络的计算量和神经网络访存量,从而减少计算能耗和访存能耗。通过采用针对多层人工神经网络运算的专用simd指令和定制的运算单元,解决了cpu和gpu运算性能不足,前端译码开销大的问题,有效提高了对多层人工神经网络运算算法的支持;通过采用针对多层人工神经网络运算算法的专用非精确存储的片上缓存,充分挖掘了输入神经元和权值数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络运算及其训练算法性能瓶颈的问题。

以上仅是示例性的说明,但本公开并不限于此,数据处理装置可以包括非神经网络处理器,以代替上述神经网络处理器,非神经网络处理器例如是通用运算处理器,通用运算具有相应的通用运算指令和数据,可以是例如标量算数运算、标量逻辑运算等,通用运算处理器例如但不仅限于包括一个或多个乘法器、一个或多个加法器,执行例如加法、乘法等基本运算。

本公开另一实施例提供了一种芯片,其包括了上述实施例的数据处理装置。

本公开另一实施例提供了一种芯片封装结构,其包括了上述实施例的芯片。

本公开另一实施例提供了一种板卡,其包括了上述实施例的芯片封装结构。

本公开另一实施例提供了一种电子装置,其包括了上述实施例的板卡。该电子装置包括、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。

所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。

在本公开中,各功能单元/模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如cpu、gpu、fpga、dsp和asic等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如rram,dram,sram,edram,hbm,hmc等等。

本公开另一实施例提供一种数据存储方法,采用近似存储的方式,将数据进行分层存储,如图6所示为本公开实施例的数据存储方法流程图,包括以下步骤:

a1:将数据中的重要比特位进行精确存储;

a2:将数据中的非重要比特位进行非精确存储。

进一步地,包括以下步骤:提取数据的重要比特位和非重要比特位;将数据中的重要比特位存储在ecc内存中进行精确存储;将数据中的非重要比特位存储在非ecc内存中进行非精确存储。

本实施例中,存储的数据为神经网络参数,将表示神经网络参数的比特数比特位分为重要比特位和非重要比特位。若神经网络一个参数共有m个比特位,其中n个比特位是重要比特位,(m-n)个比特位是非重要比特位,其中m是大于0的正整数,n是大于0小于等于m的正整数。

神经网络参数包括输入神经元、权值和输出神经元,将输入神经元的重要比特位、输出神经元的重要比特位和权值的重要比特位进行精确存储;将输入神经元的非重要比特位、输出神经元的非重要比特位和权值的非重要比特位进行非精确存储。

数据包括浮点型数据和定点型数据,浮点型数据中的符号位和指数部分为重要比特位,底数部分为非重要比特位;定点型数据中的符号位和数值部分的前x比特为重要比特位,数值部分的剩余比特为非重要比特位,其中,x为大于等于0且小于m的正整数,m为参数总比特位。

ecc内存包括有ecc校验的sram和有ecc校验的dram;所述非ecc内存包括非ecc校验的sram和非ecc校验的dram;所述有ecc校验的sram和非ecc校验的sram采用6tsram,在本公开其他实施例中,也可以采用4tsram或3tsram。

本公开另一实施例提供一种数据处理方法,图7是本公开实施例的数据处理方法流程图,如图7所示,包括:

s1:接收指令和参数,并将参数中的重要比特位和指令进行精确存储,将参数中的非重要比特位进行非精确存储;

s2:接收指令,并将指令译码生成控制信息;

s3:接收参数,并依据控制信息进行运算,将运算结果存储。

进一步地,上述运算为神经网络运算,参数为神经网络参数,包括输入神经元、权值和输出神经元。

步骤s3进一步包括:接收输入神经元和权值,依据控制信息完成神经网络运算得到输出神经元,并将输出神经元存储或输出。

进一步地,上述接收输入神经元和权值,依据控制信息完成神经网络运算得到输出神经元包括:接收输入神经元的重要比特位和权值的重要比特位进行计算;或者,接收将重要比特位和非重要比特位拼接完整的输入神经元和权值进行计算。

进一步地,还包括以下步骤:缓存专用指令;对输入神经元进行精确缓存和非精确缓存;对权值数据进行精确缓存和非精确缓存;对输出神经元进行精确缓存和非精确缓存。

进一步地,在步骤s1之前还包括:对参数进行预处理。

本公开另一实施例公开一种存储单元,该存储单元为4tsram或3tsram,用于存储神经网络参数。

进一步地,4tsram中存放每一个比特的存储单元包括4个mos管;所述3tsram中存放每一个比特的存储单元包括3个mos管。4tsram和3tsram能够充分挖掘神经网络的容错特性,减少sram的设计面积和访存能耗。

进一步地,图2为4tsram存储单元的结构示意图,如图2所示,4tsram存储单元由4个nmos组成,分别是m1(第一mos管),m2(第二mos管),m3(第三mos管),m4(第四mos管)。m1和m2是用于门控,m3和m4用于存储。

m1栅极与字线wl(wordline)电连接,源极与位线bl(bitline)电连接;m2栅极与字线wl电连接,源极与位线blb电连接;m3栅极与m4源极、m2漏极连接,并通过电阻r2与工作电压vdd连接,m3漏极接地;m4栅极与m3源极、m1漏极连接,并通过电阻r1与工作电压vdd连接,m4漏极接地。wl用来控制存储单元的门控访问,bl来进行存储单元的读写。当进行读操作时,拉高wl,从bl中读出位即可。当进行写操作时,拉高wl,拉高或者拉低bl,由于bl的驱动能力比存储单元强,会强制覆盖原来的状态。

进一步地,图3为3tsram存储单元的结构示意图,如图3所示,3tsram存储单元由3个nmos组成,分别是m1(第一mos管),m2(第二mos管)和m3(第三mos管)。m1用于门控,m2和m3用于存储。

m1栅极与字线wl(wordline)电连接,源极与位线bl(bitline)电连接;m2栅极与m3源极连接,并通过电阻r2与工作电压vdd连接,m2漏极接地;m3栅极与m2源极、m1漏极连接,并通过电阻r1与工作电压vdd连接,m3漏极接地。wl用来控制存储单元的门控访问,bl来进行存储单元的读写。当进行读操作时,拉高wl,从bl中读出位即可。当进行写操作时,拉高wl,拉高或者拉低bl,由于bl的驱动能力比存储单元强,会强制覆盖原来的状态。

本公开提供了一种存储装置和方法,以及相对应的数据存储装置和方法。近似存储技术能够充分挖掘神经网络的容错能力,将神经参数进行近似存储,参数中重要的比特位采用精确存储,不重要的比特位采用非精确存储,从而减少存储开销和访存能耗开销。同时采用4tsram或者3tsram存储技术,增加sram存储密度,减少sram访存功耗,又因为神经网络算法具有一定的容错能力,因此4tsram相比于6tsram更适合于神经网络算法,增强了存储密度的同时保证了抗噪效果。加速装置能够充分利用近似存储技术,并充分挖掘神经网络的容错能力,减少神经网络的计算量和神经网络访存量,从而减少计算能耗和访存能耗。

还需要说明的是,实施例中提到的方向用语,仅是参考附图的方向,并非用来限制本公开的保护范围。贯穿附图,相同的元素由相同或相近的附图标记来表示。在可能导致对本公开的理解造成混淆时,将省略常规结构或构造。

并且图中各部件的形状和尺寸不反映真实大小和比例,而仅示意本公开实施例的内容。另外,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。

再者,单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。

此外,除非特别描述或必须依序发生的步骤,上述步骤的顺序并无限制于以上所列,且可根据所需设计而变化或重新安排。并且上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。

类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1