CN110046703B - 一种用于神经网络的片上存储处理系统 - Google Patents
一种用于神经网络的片上存储处理系统 Download PDFInfo
- Publication number
- CN110046703B CN110046703B CN201910170271.4A CN201910170271A CN110046703B CN 110046703 B CN110046703 B CN 110046703B CN 201910170271 A CN201910170271 A CN 201910170271A CN 110046703 B CN110046703 B CN 110046703B
- Authority
- CN
- China
- Prior art keywords
- data
- relationship
- group
- storage
- organization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
本发明提供一种用于神经网络的片上存储处理系统,其包括:编码器模块、解码器模块以及存储群模块;编码器模块被配置为接收目标数据序列,对所述目标数据序列中所有数据逐个比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序编码,再将相邻比特位的数值编码依次顺序相连,生成编码数据;解码器模块被配置为根据运算指令,读取并解码存储群模块中存储的编码数据;存储群模块被配置为根据接收到的控制信息,生成存储结构,存储编码数据。将本发明的片上存储处理系统用于神经网络的运算,可实现按照数据精度的进行数据存储,能够降低神经网络数据运算过程中的功耗消耗,避免发生数据冗余现象。
Description
技术领域
本发明涉及神经网络技术领域,尤其涉及一种用于神经网络的片上存储处理系统。
背景技术
深度学习技术在近几年得到了飞速的发展,在解决高级抽象认知问题上,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用并具有出色的表现,因此成为了学术界和工业界的研究热点。
神经网络是人工智能领域具有最高发展水平的感知模型之一,该类网络通过建立模型模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大规模数据处理任务带来了突破性进展。该模型结构是一种运算模型,由大量节点通过网状互连结构构成,这些节点被称为神经元。每两个节点间连接强度都代表通过该连接信号在两个节点间的加权值,被称为权重,与人类神经网络中的记忆相对应。
而现有技术中,神经网络进行数据处理过程的功耗消耗很大一部分来自于数据搬运过程,其中,数据搬运过程包括片外存储与片上存储之间的访问过程以及片上存储与计算部件之间的访问过程。对于使用定点数据进行计算的神经网络,当数据的参数数量一定时,参数的数据精度(数据位宽)决定着数据量的大小,从而影响数据搬运的功耗。神经网络针对不同的应用场景可使用不同的数据精度,比如手写数字识别、语音激活等功能可以采用低精度的数据表示,图像识别等复杂应用可以采用高精度的数据来保证其正确识别率。
而现有的神经网络处理器通常被设计为只支持一种数据精度或者简单支持2n(n为自然数)个bit位的数据精度,对于可能出现的多种数据精度的神经网络,并不能进行很好的支持,且会出现数据冗余现象。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种用于神经网络的片上存储处理系统。
根据本发明的第一方面,提供了一种用于神经网络的片上存储处理系统,该片上存储处理系统包括:编码器模块、存储群模块以及解码器模块;编码器模块被配置为接收目标数据序列,对目标数据序列中所有数据逐个比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序编码,再将顺序编码后的数值顺序相连,生成编码数据;存储群模块被配置为根据接收到的控制信息,生成对应的存储结构,并存储编码后的编码数据;解码器模块被配置为根据运算指令,读取并解码存储群模块中存储的编码数据,其中,解码过程为生成编码数据的逆过程。
在本发明的一个实施例中,存储群模块包括:至少一个存储单元组以及一个微控制器;微控制器根据控制信息中的访存地址信息和数据精度,生成组间组织关系和组内组织关系,或者,根据控制信息中的访存地址信息和数据精度,生成组内组织关系;相邻的两个存储单元组可根据组间组织关系进行结构排序,且任一个存储单元组内设置有预定数目的存储单元,存储单元之间可根据组内组织关系进行结构重组,存储单元组用于存储编码后的编码数据。
在本发明的一个实施例中,存储单元组被配置为进行结构重组时:存储单元依次按照m行n列的方式进行结构重组,m*n为存储单元数目,m、n为正整数,n的值代表数据精度,m的值代表存储单元组重组后所能存储的数据数目。
在本发明的一个实施例中,一个存储单元组包括的存储单元的数目为12,存储单元被配置为:当组内组织关系为第一关系时,12个存储单元依次按照12行1列的方式进行结构重组,其中,第一关系对应的数据精度为1比特位;当组内组织关系为第二关系时,12个存储单元依次按照6行2列的方式进行结构重组其中,第二关系对应的数据精度为2比特位;当组内组织关系为第三关系时,12个存储单元依次按照4行3列的方式进行结构重组,其中,第三关系对应的数据精度为3比特位;当组内组织关系为第四关系时,12个存储单元依次按照3行4列的方式进行结构重组其中,第四关系对应的数据精度为4比特位;微控制器被配置为:当判定数据精度小于或等于4比特位时,根据访存地址信息确定数据存储起始位置,并根据数据精度,选取第一关系、第二关系、第三关系以及第四关系中的一种,生成组内组织关系。
在本发明的一个实施例中,微控制器生成组间组织关系和组内组织关系时,被配置为:当判定数据精度大于4比特位时,根据访存地址信息确定数据存储起始位置,并计算数据精度对应于预设参数的整数倍数和余数,其中,预设参数的取值为4;根据整数倍数,生成组间组织关系,此时,该整数倍数组内的各组内的组织关系为第四关系;根据余数,选取第一关系、第二关系、第三关系以及第四关系中的一种,生成组内组织关系;此外,也还可以在前一个存储单元组输出并行度未达到最高(4比特位)时,将数据存储在下一个存储单元组。
在本发明的一个实施例中,存储群模块,具体还包括:缓冲行模块;缓冲行模块用于缓存存储群模块中的编码数据。
在本发明的一个实施例中,片上存储处理系统用于对多个目标数据序列进行存储,每个目标数据序列包含预定数目的数据,预定数目的取值为大于或等于2的正整数。
根据本发明的第二方面,提供了一种用于神经网络的片上存储处理方法,用于上述的片上存储处理系统,片上数据处理方法,包括:步骤1,接收目标数据序列,对目标数据序列中所有数据逐个比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序编码,再将相邻比特位的数值编码依次顺序相连,生成编码数据,其中,目标数据序列至少包括两个数据;步骤2,根据接收到的控制信息,生成对应的存储结构,并存储编码后的编码数据;步骤3,根据运算指令,读取并解码存储群模块中存储的编码数据,其中,解码过程为生成编码数据的逆过程。
在本发明的一个实施例中,生成存储结构具体包括:根据控制信息中的访存地址信息和数据精度,生成组间组织关系和组内组织关系,并根据组间组织关系对至少两个存储单元组进行互联,并根据组内组织关系对存储单元组内的m*n个存储单元进行结构重组,生成存储结构,其中,m*n为存储单元数目,m、n为正整数,n的值代表数据精度,m的值代表存储单元组重组后所能存储的数据数目,或者,根据控制信息中的访存地址信息和数据精度,生成组内组织关系,并根据组内组织关系对存储单元组内的m*n个存储单元进行结构重组,生成存储结构,其中,m*n为存储单元数目,m、n为正整数,n的值代表数据精度,m的值代表存储单元组重组后所能存储的数据数目。
在本发明的一个实施例中,存储单元的数目为12个,结构重组的步骤包括:当组内组织关系为第一关系时,12个存储单元依次按照12行1列的方式进行结构重组,其中,第一关系对应的数据精度为1比特位;当组内组织关系为第二关系时,12个存储单元依次按照6行2列的方式进行结构重组其中,第二关系对应的数据精度为2比特位;当组内组织关系为第三关系时,12个存储单元依次按照4行3列的方式进行结构重组,其中,第三关系对应的数据精度为3比特位;当组内组织关系为第四关系时,12个存储单元依次按照3行4列的方式进行结构重组其中,第四关系对应的数据精度为4比特位。
与现有技术相比,本发明的优点在于:通过在片上存储系统中设置微控制器和至少一个存储单元组和一个微控制器,利用微控制器对存储单元组中的12个存储单元进行结构重组,以及两个及两个以上的存储单元组之间的结构排序,实现了按照数据精度进行数据存储,有效降低了神经网络进行数据处理过程中的功耗,避免了数据冗余现象的发生。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1示出了根据本发明一个实施例的一种用于神经网络的片上存储处理系统的示意框图;
图2示出了根据本发明一个实施例的数据编码过程的示意图;
图3示出了根据本发明一个实施例的数据解码过程的示意图;
图4示出了根据本发明一个实施例的存储单元模式配置的示意图;
图5示出了根据本发明一个实施例的1bit存储模式的示意图;
图6示出了根据本发明一个实施例的6bit存储模式的示意图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一:
以下结合图1至6对本发明进行说明。
如图1所示,该实施例提供了一种用于神经网络的片上存储处理系统,该片上存储处理系统101包括:编码器102、解码器103以及存储群模块104;编码器102被配置为接收目标数据序列,对所述目标数据序列中所有数据逐个比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序编码,再将相邻比特位的数值编码依次顺序相连,生成编码数据;存储群模块104被配置为根据接收到的控制信息,生成对应的存储结构,并存储编码后的编码数据;解码器103被配置为根据运算指令,读取并解码存储群模块104中存储的编码数据,其中,解码过程为生成编码数据的逆过程。在二进制编码中,每个二进制数据的每一个比特位均有一个固定的权值,以表示该比特处于该二进制数据中的第几位。
优选地,存储群模块104包括:缓冲行模块107;缓冲行模块107用于缓存存储群模块104中的编码数据。
作为示例,编码器102对接收到的32个6比特精度的数据进行数据编码的过程如图2所示,编码器102接收到外部传来的正常排列的目标数据序列d1、d2…dx…d32,(x为1-32的自然数),编码器102的工作过程是分别先将数据d1、d2到d32的第1bit位中的比特位数据提取出来,并按序排列,然后分别提取每一个数据的第2bit位中的比特位数据,按序排列,直到每个数据的最后一位1bit位。根据本发明的其他实施例,也可以从最高比特位依次提取。
假定32个6bit位的数据依次为:010001、101010、010101、100010、101011、101010、001010、100010、000101、010101、110101、110110、110101、101001、010101、010101、111010、010100、101010、101010、001001、101010、101001、010010、010100、001010、010101、010101、010010、101010、111011、110111。
设定数据处理的顺序为正序处理,即按照从左向右的方式进行提取,
取32个数据的第一位,得到的数据b1为01011101001111001011011000000111;
取32个数据的第二位,得到的数据b2是10100000011110111100000110111011;
取32个数据的第三位,得到的数据b3是01001110000001001011111001000110;
取32个数据的第四位,得到的数据b4是00100000111110110100000010110001;
取32个数据的第五位,得到的数据b5是01011111000100001011010101001111;
取32个数据的第六位,得到的数据b6是10101000111011110000101000110011;
最后,由编码器102将得到的数据拼接到一起,生成的编码数据是010111010011110010110110000001111010000001111011110000011011101101001110000001001011111001000110001000001111101101000000101100010101111100010000101101010100111110101000111011110000101000110011。
将生成的编码数据发送至缓冲行模块107,经缓冲行模块107后,存储至存储群模块104中。
进一步地,存储群模块104包括:至少一个存储单元组105以及一个微控制器108;微控制器108被配置为根据控制信息中的访存地址信息和数据精度,生成组间组织关系和组内组织关系,或者,根据控制信息中的访存地址信息和数据精度,生成组内组织关系;相邻的两个存储单元组105被配置为可根据组间组织关系进行结构排序,且任一个存储单元组105内设置有预定数目的存储单元,存储单元之间可根据组内组织关系进行结构重组,存储单元组105用于存储编码后的编码数据。
具体地,微控制器108生成组间组织关系和组内组织关系后,存储单元组105根据组间组织关系进行结构排序,而存储单元根据组内组织关系进行结构重组,以生成对应的存储结构,即存储单元组进行结构排序,存储单元进行结构重组。
存储单元组105结构重组时:存储单元依次按照m行n列的方式进行结构重组,m*n为存储单元数目,m、n为正整数,n的值代表数据精度,m的值代表存储单元组105重组后所能存储的数据数目。
优选地,一个存储单元组105包括的存储单元的数目为12,存储单元106被配置为:当组内组织关系为第一关系时,12个存储单元依次按照12行1列的方式进行结构重组,其中,第一关系对应的数据精度为1比特位;当组内组织关系为第二关系时,12个存储单元依次按照6行2列的方式进行结构重组其中,第二关系对应的数据精度为2比特位;当组内组织关系为第三关系时,12个存储单元依次按照4行3列的方式进行结构重组,其中,第三关系对应的数据精度为3比特位;当组内组织关系为第四关系时,12个存储单元依次按照3行4列的方式进行结构重组。其中,第四关系对应的数据精度为4比特位。
一个存储单元组105的内部结构如图4(A)所示,一个存储单元组105中包括12个存储单元106,各个存储单元106在未进行数据处理时处于无结构化模式,由于12为1、2、3、4的最小公倍数,因此,12个存储单元106可以无冗余的实现1bit、2bit、3bit、4bit数据的存储。在片上存储处理系统101接收到控制信息后,微控制器108可以根据控制信息中的访存地址信息确定数据存储起始位置,再结合数据精度,生成对应的组织关系,包括组内组织关系和组间组织关系,其中,组内组织关系用于12个存储单元106之间进行结构重组,组间组织关系用于多个存储单元组105之间进行结构排序。
当组内组织关系为第一关系时,12个存储单元106依次按照12行1列的方式进行结构重组,其中,第一关系对应的数据精度为1比特位;
如图4(B)所示,当数据精度为1比特位时,12个存储单元106逻辑上按照12行1列的方式排列在一起(1bit模式),每一次数据写入(存储)都是根据输入的地址信号(访存地址信息)的特定的4位信号选择其中一个存储单元106,即确定数据存储起始位置,然后将缓冲行模块107中的数据写入该存储单元106,由缓冲行模块107按照数据存储起始位置,向存储单元中存储。
以将精度为1比特的32个数据存储到宽度是32bit、深度为512的存储单元106为例,如图5所示,首先将存储单元组的模式配置成1bit模式。因为原始数据为32个1bit的数据,此时的数据排列方式已经满足存储单元组的排列关系,不需要进行重新编码。假设要存储600行的数据,可以先将前512行存储在第一个存储单元106内,从第513行起,将剩余的数据存储到第二个存储单元106内。
当组内组织关系为第二关系时(即数据精度为2比特位),12个存储单元106依次按照6行2列的方式进行结构重组。
以1个存储单元组中的12个存储单元为例,详细介绍结构重组以及数据访问的详细过程。
设定存储单元的单元地址依次为A1、A2、…、A12,共有4个待存储数据,每一个待存储数据的数据精度为2bit,依次为:10、10、10和10,编码器102接收到4个待存储数据后,对待存储数据进行编码,提取4个待存储数据的第1bit位得到数据b1=1111,提取4个待存储数据的第2bit位得到数据b2=0000,再进行拼接,得到编码数据11110000。
微控制器108对该存储单元组内的12个存储单元进行结构重组,将12个存储单元排列成2列6行,其地址关系对照表为表1所示。
表1
单元地址 | 地址编号 |
A1 | B11 |
A2 | B12 |
A3 | B21 |
A4 | B22 |
A5 | B31 |
A6 | B32 |
… | … |
A11 | B61 |
A12 | B62 |
存储单元的单元地址A1、A2、…、A12为其固有的物理地址,存储单元组105根据微控制器108生成的组内组织关系进行结构重排,为每个存储单元配置地址编号B11、B12…B62等等,其中,地址编号中第一位表示行,第二位表示列,将存储单元排列成2列6行。
在进行数据存储时,将数据b1存储至重组后的存储单元组的第一行第一列的存储单元A1中,对应地址编号为B11,将数据b2存储至重组后的存储单元组的第一行第二列的存储单元A2中,对应的地址编号为B12。
假设每个存储单元的存储宽度为32bit,存储深度为256行,,则当待存储数据的数目超过32时,以32个数据为一组进行数据编码,每一组数据都会有对应的b1和b2,利用第一行第一列存储单元A1的第一行存储第一组数据的b1,第一行第二列存储单元A2的第一行存储第一组数据的b2;第一行第一列存储单元A1的第二行存储第二组数据的b1,第一行第二列存储单元A2的第二行存储第二组数据的b2,依次类推;当第一行的存储单元存满后(数据量大于256组),存储到第二行的存储单元,依次类推。
如图4(C)所示,当数据精度为2比特位时(地址关系对照表如表1所示),12个存储单元106逻辑上按照6行2列的方式排列在一起(2bit模式),每一次数据写入都是根据输入的地址信号(访存地址信息)的特定的3位信号选择其中一行存储单元106,即确定数据存储起始位置,然后将该行存储单元106中的数据写入缓冲行模块107,或者将缓冲行模块107中的数据写入该行存储单元106。
当组内组织关系为第三关系时(即数据精度为3比特位),12个存储单元106依次按照4行3列的方式(3bit模式)进行结构重组;
当组内组织关系为第四关系时(即数据精度为4比特位),12个存储单元106依次按照3行4列的方式(4bit模式)进行结构重组。
具体地,如图4(D)和图4(E)所示,写入的方法与上述类似,此处不再赘述。
进一步地,微控制器108被配置为:当判定数据精度小于或等于4比特位时,根据访存地址信息确定数据存储起始位置,并根据数据精度,选取第一关系、第二关系、第三关系以及第四关系中的一种,生成组内组织关系。
具体地,当判定数据精度小于或等于4比特位时,仅选用一个存储单元组105进行数据写入,微控制器108选取对应数据精度的关系,生成组内组织关系,如数据精度为2比特位时,选取第二关系生成组内组织关系,控制一个存储单元组105中的12个存储单元106按照第二关系进行排序。
进一步地,微控制器108生成组间组织关系和组内组织关系时,被配置为:当判定数据精度大于4比特位时,根据访存地址信息确定数据存储起始位置,并计算数据精度对应于预设参数的整数倍数和余数,其中,预设参数的取值为4;根据整数倍数,生成组间组织关系,此时,该整数倍数组内的各组内的组织关系为第四关系;根据余数,选取第一关系、第二关系、第三关系以及第四关系中的一种,生成组内组织关系;
此外,也还可以在前一个存储单元组输出并行度未达到最高(4比特位)时,将数据存储在下一个存储单元组。
也就是说,当判定数据精度大于4比特位时,根据访存地址信息确定数据存储起始位置,并且根据总体的数据精度来设置各个单元组的存储精度,并且保证所有单元组的存储精度之和为总体的数据精度。以两个存储单元组存储5bit精度的数据为例,5bit可以通过1+4或2+3的方式组成,以1+4方式来说,就是将其中一个存储单元组配置成第一关系,另一个存储单元组配置成第四关系。为简单起见,计算数据精度对应于预设参数的整数倍数和余数,但并不排除其他的组间组织关系,其中,预设参数的取值为4;根据整数倍数,生成组间组织关系,此时,该整数倍数组内的各组内的组织关系为第四关系;根据余数,选取第一关系、第二关系、第三关系以及第四关系中的一种,生成组内组织关系。
具体地,当数据精度大于4比特位时,选取至少两个存储单元组105,即在前一存储单元组105的输出并行度达到最高(4比特位)后再启用下一存储单元组105,以便于减小存储群模块104内互连线的复杂度。
如图6所示,以6比特位数据为例,其对应的数据精度为6比特位,根据预设参数可确定:整数倍数的取值为1,余数的取值为2。设定所有的存储单元中均不包含数据。因此,选定两个存储单元组,第一个存储单元组(存储单元组1)按照第四关系(4bit模式)进行结构重组,将第二个存储单元组(存储单元组2)按照组间组织关系与第一存储单元组进行互连,将第二关系(2bit模式)作为对应的组内组织关系,将6比特位数据中的第一、二、三、四位数据依次存入第一个存储单元组中,将第五、六位数据依次存入第二个存储单元组中。
需要说明的是,虽然本实施例中,以12个存储单元为一个存储单元组为例进行说明,但是本领域技术人员应该理解,一个存储单元组中的存储单元的数目不限于12个。
进一步地,片上存储处理系统用于对多个目标数据序列进行存储,每个目标数据序列包含预定数目的数据,预定数目的取值为大于或等于2的正整数。
解码器103根据运算指令,读取存储群模块104中存储的编码数据的过程,与编码器102向存储模块104中写入编码数据的过程互为逆过程,此处不再赘述。
实施例二:
该实施例提供了一种用于神经网络的片上存储处理方法,包括:
步骤1,接收目标数据序列,对所述目标数据序列中所有数据逐个比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序编码,再将相邻比特位的数值编码依次顺序相连,生成编码数据,其中,所述目标数据序列至少包括两个数据;
具体地,将需要存储的神经网络数据,按照传统方式存储的单个数据,如16个8bit的数据,将不同数据中相同权值的位置的bit位的数据提取出来,然后,将提取出来的相同权值的位置的bit位数据按序排列在一起,进行重新编码,生成编码数据。
步骤2,根据接收到的控制信息,生成对应的存储结构,并存储编码后的编码数据;
进一步地,生成存储结构具体包括:根据控制信息中的访存地址信息和数据精度,生成组间组织关系和组内组织关系,并根据组间组织关系对至少两个存储单元组进行互联,并根据组内组织关系对存储单元组内的m*n个存储单元进行结构重组,生成存储结构,其中,m*n为存储单元数目,m、n为正整数,n的值代表数据精度,m的值代表存储单元组重组后所能存储的数据数目,或者,根据控制信息中的访存地址信息和数据精度,生成组内组织关系,并根据组内组织关系对存储单元组内的m*n个存储单元进行结构重组,生成存储结构,其中,m*n为存储单元数目,m、n为正整数,n的值代表数据精度,m的值代表存储单元组重组后所能存储的数据数目。
具体地,根据外部控制器向片上存储处理系统发送的控制信息,获取控制信息中的访存地址信息与数据精度,对编码数据进行存储,具体包括:
首先,根据控制信息中的数据精度,计算存储群模块中存储单元对应的模式,包括1bit模式、2bit模式、3bit模式以及4bit模式。再根据控制信息中的访存地址信息,确定数据存储起始位置,选择对应的存储单元组,进而生成数据通路开关状态信息分为两种,一种是组内组织关系,另一种是组内组织关系和组间组织关系,即根据控制信息中的访存地址信息生成片上存储群中存储单元的选择信息(即存储单元的始能信号)与每个存储单元的地址信息;
其次,将生成的数据通路开关状态信息,通过广播的方式,发送至所有的存储单元。
优选地,上述过程均在同一个时钟周期内完成。
最后,根据存储单元接收到的数据通路开关状态信息对互连网络中的各个存储单元的连接关系进行配置,生成对应的存储结构,对编码后的编码数据进行存储,直至数据存储完成。
需要说明的是,虽然本实施例中,以12个存储单元为例进行说明,但是本领域技术人员应该理解,存储单元的数目不限于12个。
优选地,存储单元的数目为12个,结构重组的步骤包括:
当组内组织关系为第一关系时,12个存储单元依次按照12行1列的方式进行结构重组,其中,第一关系对应的数据精度为1比特位;
当组内组织关系为第二关系时,12个存储单元依次按照6行2列的方式进行结构重组其中,第二关系对应的数据精度为2比特位;
当组内组织关系为第三关系时,12个存储单元依次按照4行3列的方式进行结构重组,其中,第三关系对应的数据精度为3比特位;
当组内组织关系为第四关系时,12个存储单元依次按照3行4列的方式进行结构重组其中,第四关系对应的数据精度为4比特位。
步骤3,根据运算指令,读取并解码存储群模块中存储的编码数据,其中,解码过程为生成编码数据的逆过程。
具体地,读取编码数据与存储编码数据互为逆过程,且解码与编码互为逆过程,此处不再赘述。
综上所述,在本发明提供的一种用于神经网络的片上存储处理系统,通过设置编码器模块、存储群模块以及解码器模块;编码器模块被配置为接收目标数据序列,对目标数据序列中所有数据逐个比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序编码,再将顺序编码后的数值顺序相连,生成编码数据;存储群模块被配置为根据接收到的控制信息,生成对应的存储结构,并存储编码后的编码数据;解码器模块被配置为根据运算指令,读取并解码存储群模块中存储的编码数据,解码过程为生成编码数据的逆过程。将本发明的片上存储处理系统用于神经网络的运算,可实现按照数据精度的进行数据存储,能够降低神经网络数据运算过程中的功耗消耗,避免发生数据冗余现象。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.一种用于神经网络的片上存储处理系统,其特征在于,所述片上存储处理系统包括:编码器模块、解码器模块以及存储群模块;
所述编码器模块被配置为接收目标数据序列,对所述目标数据序列中所有数据按比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的所述数值顺序相连,生成所述目标数据序列的编码数据;
所述存储群模块被配置为根据接收到的控制信息,生成对应的存储结构,并存储编码后的所述编码数据;
所述解码器模块被配置为根据运算指令,读取并解码所述存储群模块中存储的所述编码数据,其中,解码过程为生成所述编码数据的逆过程,
所述存储群模块包括:至少一个存储单元组以及一个微控制器,所述微控制器被配置为根据所述控制信息中的访存地址信息和数据精度,生成组内组织关系,任一个所述存储单元组内设置有预定数目的存储单元,所述存储单元之间可根据所述组内组织关系进行结构重组,所述存储单元组用于存储编码后的所述编码数据,
所述存储单元组被配置为进行结构重组时:
所述存储单元依次按照m行n列的方式进行结构重组,m*n为存储单元数目,m、n为正整数,n代表数据精度,m代表所述存储单元组重组后所能存储的数据数目。
2.根据权利要求1所述的用于神经网络的片上存储处理系统,其特征在于,
所述微控制器被配置为根据所述控制信息中的访存地址信息和数据精度,生成组间组织关系;
相邻的两个所述存储单元组被配置为可根据所述组间组织关系进行结构排序。
3.根据权利要求1所述的用于神经网络的片上存储处理系统,其特征在于,一个存储单元组包括的存储单元的数目为12,
存储单元被配置为:当组内组织关系为第一关系时,12个存储单元依次按照12行1列的方式进行结构重组,其中,第一关系对应的数据精度为1比特位;当组内组织关系为第二关系时,12个存储单元依次按照6行2列的方式进行结构重组其中,第二关系对应的数据精度为2比特位;当组内组织关系为第三关系时,12个存储单元依次按照4行3列的方式进行结构重组,其中,第三关系对应的数据精度为3比特位;当组内组织关系为第四关系时,12个存储单元依次按照3行4列的方式进行结构重组其中,第四关系对应的数据精度为4比特位;
所述微控制器被配置为:
当判定所述数据精度小于或等于4比特位时,根据所述访存地址信息确定数据存储起始位置,并根据所述数据精度,选取所述第一关系、所述第二关系、所述第三关系以及所述第四关系中的一种,生成所述组内组织关系。
4.根据权利要求3所述的用于神经网络的片上存储处理系统,其特征在于,所述微控制器生成所述组间组织关系和所述组内组织关系时,被配置为:
当判定所述数据精度大于4比特位时,根据所述访存地址信息确定数据存储起始位置,并计算所述数据精度对应于预设参数的整数倍数和余数,其中,所述预设参数的取值为4;
根据所述整数倍数,生成所述组间组织关系,此时,该整数倍数组内的各组内的组织关系为第四关系;根据所述余数,选取所述第一关系、所述第二关系、所述第三关系以及所述第四关系中的一种,生成所述组内组织关系。
5.根据权利要求1所述的用于神经网络的片上存储处理系统,其特征在于,所述存储群模块还包括:缓冲行模块;
所述缓冲行模块用于缓存所述存储群模块中的所述编码数据。
6.一种用于神经网络的片上存储处理方法,适用于如权利要求1至5中任一项所述的用于神经网络的片上存储处理系统,其特征在于,所述片上数据处理方法包括:
步骤1,接收目标数据序列,对所述目标数据序列中所有数据按比特位地提取各比特位的数值,并将所有数据中相同权值的比特位的数值进行顺序相连,生成所述目标数据序列的编码数据,其中,所述目标数据序列至少包括两个数据;
步骤2,根据接收到的控制信息,生成对应的存储结构,并存储编码后的所述编码数据,
其中,还包括根据所述控制信息中的访存地址信息和数据精度,生成组内组织关系,并根据所述组内组织关系对所述存储单元组内的m*n个存储单元进行结构重组,生成所述存储结构,其中,m*n为存储单元数目,m、n为正整数,n的值代表所述数据精度,m的值代表所述存储单元组重组后所能存储的数据数目。
7.根据权利要求6所述的用于神经网络的片上存储处理方法,其特征在于,还包括
步骤3,根据运算指令,读取并解码所述存储群模块中存储的所述编码数据,其中,解码过程为生成所述编码数据的逆过程。
8.根据权利要求6-7之一所述的用于神经网络的片上存储处理方法,其特征在于,生成所述存储结构具体包括:
根据所述控制信息中的访存地址信息和数据精度,生成组间组织关系,并根据所述组间组织关系对至少两个存储单元组进行互联。
9.根据权利要求8所述的用于神经网络的片上存储处理方法,其特征在于,存储单元的数目为12个,结构重组的步骤包括:
当所述组内组织关系为第一关系时,12个所述存储单元依次按照12行1列的方式进行结构重组,其中,所述第一关系对应的所述数据精度为1比特位;
当所述组内组织关系为第二关系时,12个所述存储单元依次按照6行2列的方式进行结构重组其中,所述第二关系对应的所述数据精度为2比特位;
当所述组内组织关系为第三关系时,12个所述存储单元依次按照4行3列的方式进行结构重组,其中,所述第三关系对应的所述数据精度为3比特位;
当所述组内组织关系为第四关系时,12个所述存储单元依次按照3行4列的方式进行结构重组其中,所述第四关系对应的所述数据精度为4比特位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910170271.4A CN110046703B (zh) | 2019-03-07 | 2019-03-07 | 一种用于神经网络的片上存储处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910170271.4A CN110046703B (zh) | 2019-03-07 | 2019-03-07 | 一种用于神经网络的片上存储处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046703A CN110046703A (zh) | 2019-07-23 |
CN110046703B true CN110046703B (zh) | 2020-07-31 |
Family
ID=67274619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910170271.4A Active CN110046703B (zh) | 2019-03-07 | 2019-03-07 | 一种用于神经网络的片上存储处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046703B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459856B (zh) * | 2020-03-20 | 2022-02-18 | 中国科学院计算技术研究所 | 一种数据传输装置及传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930357A (zh) * | 2010-08-17 | 2010-12-29 | 中国科学院计算技术研究所 | 采用可配置的片上存储装置实现访存操作的系统及方法 |
CN106447034A (zh) * | 2016-10-27 | 2017-02-22 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546232A (zh) * | 2012-07-11 | 2014-01-29 | 中兴通讯股份有限公司 | 数据的处理方法及装置 |
CN108427990B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 神经网络计算系统和方法 |
CN106796668B (zh) * | 2016-03-16 | 2019-06-14 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
JP6183980B1 (ja) * | 2016-12-02 | 2017-08-23 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
CN107092961B (zh) * | 2017-03-23 | 2018-08-28 | 中国科学院计算技术研究所 | 一种基于模式频率统计编码的神经网络处理器及设计方法 |
CN107423816B (zh) * | 2017-03-24 | 2021-10-12 | 中国科学院计算技术研究所 | 一种多计算精度神经网络处理方法和系统 |
CN107844829A (zh) * | 2017-10-31 | 2018-03-27 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
-
2019
- 2019-03-07 CN CN201910170271.4A patent/CN110046703B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930357A (zh) * | 2010-08-17 | 2010-12-29 | 中国科学院计算技术研究所 | 采用可配置的片上存储装置实现访存操作的系统及方法 |
CN106447034A (zh) * | 2016-10-27 | 2017-02-22 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
Non-Patent Citations (4)
Title |
---|
Cnvlutin:ineffectual-neuron-free deep neural network computing;Jorge Albericio et al;《2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA)》;20160622;第1-13页 * |
Eyeriss: a spatial architecture for energy-efficient dataflow for convolutional neural networks;Yu-Hsin Chen et al;《ISCA "16: Proceedings of the 43rd International Symposium on Computer Architecture》;20160630;第367-379页 * |
基于LZW编码的卷积神经网络压缩方法;刘崇阳等;《计算机工程》;20181114;第188-193页 * |
基于卷积编码的SOC测试响应压缩研究;韩银和等;《中国科学E辑:信息科学》;20060620;第686-697页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110046703A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109615073B (zh) | 一种神经网络模型的构建方法、设备以及存储介质 | |
TWI680409B (zh) | 適用於人工神經網路之矩陣及向量相乘的方法 | |
CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
US9361577B2 (en) | Processing device and computation device | |
WO2018022821A1 (en) | Memory compression in a deep neural network | |
KR20130029080A (ko) | 소거 없는 플래시 메모리의 다중 프로그래밍 | |
US11715002B2 (en) | Efficient data encoding for deep neural network training | |
CN102017425A (zh) | 用于执行级联纠错的方法和系统 | |
CN113741858B (zh) | 存内乘加计算方法、装置、芯片和计算设备 | |
CN106788891A (zh) | 一种适用于分布式存储的最优局部修复码构造方法 | |
CN111898750A (zh) | 基于进化算法的神经网络模型压缩方法及装置 | |
CN110046703B (zh) | 一种用于神经网络的片上存储处理系统 | |
CN115858235B (zh) | 循环冗余检验处理方法及装置、电路、电子设备和介质 | |
WO2021038793A1 (ja) | 学習システム、学習方法、及びプログラム | |
CN111008691A (zh) | 一种权值和激活值都二值化的卷积神经网络加速器架构 | |
CN109716363B (zh) | 用于硬件神经形态内核中的突触权重的高效存储的混合压缩方案 | |
US10559093B2 (en) | Selecting encoding options | |
CN114707655A (zh) | 一种量子线路转换方法、系统、存储介质和电子设备 | |
CN113988279A (zh) | 一种支持负值激励的存算阵列输出电流读出方法及系统 | |
CN114267391A (zh) | 机器学习硬件加速器 | |
CN116662063B (zh) | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 | |
CN110703994A (zh) | 一种神经网络模型的数据存储系统及方法 | |
CN112436923B (zh) | 一种极化码的编码方法、装置及计算机可读存储介质 | |
CN111143641A (zh) | 深度学习模型的训练方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |