技术新讯 > 信息存储应用技术 > 基于SRAM的双倍数据存储容量的存内计算方法和装置  >  正文

基于SRAM的双倍数据存储容量的存内计算方法和装置

  • 国知局
  • 2024-07-31 19:12:34

本发明涉及内存计算,尤其涉及一种基于sram的双倍数据存储容量的存内计算方法和装置。

背景技术:

1、随着“算力时代”到来,大规模数据需要在存储器和处理器之间往返,然而传统冯·诺依曼架构中存储单元与计算单元分离,无法满足数据频繁访问的需求。存内计算作为新型的计算范式,是将信息存储在存储单元中并在存储单元中执行计算,从而消除数据在计算单元和存储单元之间频繁的数据搬移,解决了传统冯诺依曼计算架构中的“存储墙”问题。由于存储在随机存取存储器(ram)中的数据可以被快速访问并计算,允许实时分析数据,从而在商业和机器学习应用中实现更快的报告和决策,因此对于“算力时代”具有革命性意义。早期存内计算一般在电压域或电流域进行模拟乘累加(mac)计算,但是模拟计算会引入大量模数转换器(adc),从而产生额外的面积开销和功耗开销。模拟计算同时会引入工艺偏差,导致精度下降。由于adc精度有限,只有部分阵列可以被激活,从而极大的限制了计算并行度。为了解决上述限制,研究人员进一步提出了数字存内(cim)的方法,即按位操作。数字cim将逻辑单元集成到单元阵列中从而进行按位逻辑操作。采用该种结构可以保证同时激活所有的行进行计算,以提高计算的并行性。

2、研究显示,rram、sram和mram等均为数字存内有效候选之一。在这些技术中,静态随机存取存储器(sram)由于其读取数据的速度快且与先进逻辑工艺兼容,因此受到学术界和工业界广泛的关注。但sram由于其自身6t结构,导致基于sram存内计算信息存储密度较低。

3、比如公开号为cn114613404a的专利申请公开了一种存内计算。其中存内计算器件包含存储阵列和逻辑计算电路。其中存储阵列具有按行和列布置的多个存储单元。多个存储单元包括在存储阵列的第一行和第一列中的第一存储单元、以及在存储阵列的第一行和第二列中的第二存储单元。第一存储单元和第二存储单元被配置为存储各自的第一权重信号和第二权重信号。输入驱动器提供多个输入信号。第一逻辑电路耦合到第一存储单元以基于第一权重信号和来自输入驱动器的第一输入信号来提供第一输出信号。第二逻辑电路耦合到第二存储单元以基于第二权重信号和来自输入驱动器的第二输入信号来提供第二输出信号。

4、由cn114613404a的说明书部分可知其也使用传统6t晶体管作为一个存储单元,其一个存储单元仅存储1bit权重信息,这就导致其基于sram的存内计算的信息存储密度较低。另一方面,由于其每6个晶体管只能存储1bit的权重信息,且其每个存储单元仅对应一个逻辑计算模块,因此其数据的计算并行度较低。

技术实现思路

1、有鉴于此,本发明提供一种基于sram的双倍数据存储容量的存内计算方法和装置,以解决上述提及的至少一个问题。

2、为了实现上述目的,本发明采用以下方案:

3、根据本发明的第一方面,提供一种基于sram的双倍数据存储容量的存内计算方法,所述方法包括:基于神经网络数据集训练权重输出模型,所述权重输出模型输出的权重信号之间具有按位互补关系;将具有按位互补关系的权重信号写入sram存储模块的交叉耦合反相器q和qb中;提供一对逻辑计算模块分别耦合至所述sram存储模块的bl及blb位线上;提供输入驱动器连接至所述一对逻辑计算模块,为所述逻辑计算模块提供一对相同或不同的输入信号;所述逻辑计算模块将一对输入信号分别和sram存储模块中一对按位互补的权重信号进行逻辑计算;将所述逻辑计算模块的输出通过加法树进行加法运算,然后送入移位累加模块做移位累加;将移位累加结果进行后处理后输出。

4、作为本发明的一个实施例,上述方法中基于神经网络数据集训练权重输出模型包括预训练过程和量化感知训练过程,所述预训练过程包括:计算两个相邻卷积核的均值,将两个相邻卷积核中对应位置元素按照均值做对称得到预训练模型;所述量化感知训练过程包括:将预训练得到的对称卷积核进行量化再做对称,然后对对称算法中得到的较小的位置元素进行减1得到以均值为偏置的互补权重信号。

5、作为本发明的一个实施例,上述方法中权重信号之间具有按位互补关系包括:相邻卷积核对应位置元素之间的互补、或同一卷积核中相邻通道对应位置元素之间的互补、或同一通道内相邻位置元素之间的互补。

6、作为本发明的一个实施例,上述方法中将具有按位互补关系的权重信号写入sram存储模块的交叉耦合反相器q和qb中包括:将具有按位互补关系的权重信号中的一个权重信号写入sram存储模块的交叉耦合反相器q或qb中。

7、作为本发明的一个实施例,上述方法中将移位累加结果进行后处理后输出包括:将移位累加结果进行激活、池化、归一化操作后输出。

8、根据本发明的第二方面,提供一种基于sram的双倍数据存储容量的存内计算装置,所述装置包括:权重输出单元、存内计算单元和后处理单元,所述存内计算单元分别和权重输出单元及后处理单元相连,其中:所述权重输出单元用于基于神经网络数据集训练权重输出模型,为所述存内计算单元输出权重信号,所述权重输出模型输出的权重信号之间具有按位互补关系;所述存内计算单元包括sram存储模块、输入驱动器模块、逻辑计算模块、加法器模块和移位累加模块;所述sram存储模块的交叉耦合反相器q和qb用于接受所述权重输出单元写入的按位互补的权重信号;所述输入驱动器模块连接至一对逻辑计算模块,用于为所述逻辑计算模块提供一对相同或不同的输入信号;所述逻辑计算模块用于将一对输入信号分别和sram存储模块中一对按位互补的权重信号进行逻辑计算;由一个所述sram存储模块及一对所述逻辑计算模块构成一基本存储模块,由若干个基本存储模块构成一存储阵列;所述加法器模块用于将存储阵列中所有逻辑计算模块的输出进行加法运算;所述移位累加模块用于将所述加法器的输出进行移位累加;所述后处理单元用于将所述移位累加模块的输出进行后处理后再输出。

9、作为本发明的一个实施例,上述权重输出单元包括:预训练模块,用于计算两个相邻卷积核的均值,将两个相邻卷积核中对应位置元素按照均值做对称得到预训练模型;量化感知训练模块:用于将预训练得到的对称卷积核进行量化再做对称,然后对对称算法中得到的较小的位置元素进行减1得到以均值为偏置的互补权重信号。

10、作为本发明的一个实施例,上述权重信号之间具有按位互补关系包括:相邻卷积核对应位置元素之间的互补、或同一卷积核中相邻通道对应位置元素之间的互补、或同一通道内相邻位置元素之间的互补。

11、作为本发明的一个实施例,上述sram存储模块的交叉耦合反相器q和qb用于接受所述权重输出单元写入的按位互补的权重信号包括:所述sram存储模块的交叉耦合反相器q或qb用于接受所述权重输出单元写入的按位互补的权重信号中的一个权重信号。

12、作为本发明的一个实施例,上述后处理单元具体用于:将移位累加结果进行激活、池化、归一化操作后输出。

13、由上述技术方案可知,本发明提供的基于sram的双倍数据存储容量的存内计算方法和装置,能够有效的解决基于sram存内计算架构信息存储密度较低的问题,利用sram固有的交叉耦合结构存储一对按位互补的权重信号,等效于使用3t晶体管存储1bit信息,同时由于一个存储单元可以存储两个按位取反的信号,因此可以集成一对逻辑计算模块,这一对逻辑计算模块可以同时接收不同的输入进行并行计算,因此可以提高一倍计算并行度,能够带来存内计算性能的大幅提升。

本文地址:https://www.jishuxx.com/zhuanli/20240731/181862.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。