面向存算阵列的电荷域可重构列并行加权累加读出电路
- 国知局
- 2024-07-31 20:00:29
本发明涉及存算一体ai加速器领域,尤其涉及的是面向存算阵列的电荷域可重构列并行加权累加读出电路。
背景技术:
1、存算一体(cim)架构集成存储和计算单元,使得数据的存储和计算可以在同一单元内直接完成,减少了数据搬运的影响。此外,基于存算一体架构的乘累加(mac)计算以统一的模拟方式进行处理,进一步提高了数据处理的能效。在同等算力下,存算一体架构的功耗低于传统架构的20%。存算一体架构的工作方式通常是将神经网络的权重数据存储在由存算单元组成的存算阵列中,在存算阵列中不同的字线上以电压的方式写入一组输入数据,经过输入电压和存算单元的乘积运算后,在同一位线上读出多个输出电流,电流累加后作为输入数据与权重数据乘累加的结果,最后通过adc将模拟结果量化为数字结果。
2、目前基于存算一体架构的加速器大多均存在以下问题:
3、在传统方案中,存算一体架构通常采用电流型累加输出方式,如图2所示,其累加读出电路包括数字移位累加模块和模数转换模块,由大位宽的数字移位累加电路和大量的运放、adc组成,占据了整个系统约70%的功耗。并且大多数的存算一体架构仅支持单一精度模式,缺乏一定的灵活性。而对于不同的神经网络来说,计算精度和计算效率的关系并不是固定的,这限制了存算一体架构对不同神经网络的兼容性。
4、简言之,目前常规存算一体设计中的读出电路为了输出数字结果,在每一列位线下都需要布置一个adc,占据了整个系统的大部分面积和功耗,并且缺乏对不同计算精度的兼容性。
5、因此,现有技术还有待改进和发展。
技术实现思路
1、本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供面向存算阵列的电荷域可重构列并行加权累加读出电路,旨在解决目前存算一体设计中的读出电路在每一列位线下都需要布置一个adc,耗费大量的系统空间和功耗,并且缺乏对不同计算精度的兼容性的问题。
2、本发明解决问题所采用的技术方案如下:
3、第一方面,本发明实施例提供一种面向存算阵列的电荷域可重构列并行加权累加读出电路,所述可重构多精度加权累加电路包括并联电容阵列组、补充电容模块以及adc采样电容模块;
4、所述并联电容阵列组包括若干并联电容阵列,每一所述并联电容阵列对应存算阵列中的一列位线;每一所述并联电容阵列,用于获取对应的位线的输出数据,根据量化精度调整自身的电容值;
5、所述补充电容模块,用于电容调整完毕后,根据所述并联电容阵列组的总电容值和adc采样电容值确定补充电容值;
6、所述adc采样电容模块,用于获取上一周期的计算结果,将上一周期的计算结果与所述并联电容阵列组的总电容值和所述补充电容值进行电荷平分;判断当前周期是否为最后一个周期,若否,则将电荷平分结果作为当前周期的计算结果保留;若是,则根据电荷平分结果确定最终计算结果。
7、在一种实施方式中,每一周期开始前先对各所述并联电容阵列进行电容复位操作。
8、在一种实施方式中,每一所述并联电容阵列中设置有若干开关,所述并联电容阵列的电容值基于各开关的开闭状态调整。
9、在一种实施方式中,所述存算阵列包括n个位线,所述并联电容阵列组包括n个所述并联电容阵列,所述量化精度为n bit,n、n为正数,且n小于或者等于n;各所述并联电容阵列的电容值的调整方法包括:
10、将n个所述并联电容阵列分为组,每组中相邻两个所述并联电容阵列的电容比例为2:1,各所述并联电容阵列的电容值基于排列顺序依次增加。
11、在一种实施方式中,所述并联电容阵列组包括8个所述并联电容阵列。
12、在一种实施方式中,所述并联电容阵列组的总电容值与所述补充电容值的和等于所述adc采样电容值。
13、第二方面,本发明实施例还提供一种可重构多精度累加读出电路,所述可重构多精度累加读出电路包括:
14、如上述任一所述的面向存算阵列的电荷域可重构列并行加权累加读出电路;
15、adc模数转换模块,用于将所述面向存算阵列的电荷域可重构列并行加权累加读出电路输出的模拟结果量化为数字结果。
16、第三方面,本发明实施例还提供一种基于电荷域的可重构多精度加权累加读出方法,所述方法应用于上述任一所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,所述方法包括:
17、获取存算阵列中各列位线的输出数据,将各列位线的输出数据分别传输至各自对应的并联电容阵列;
18、根据量化精度调整各所述并联电容阵列的电容值;
19、电容调整完毕后,根据所述并联电容阵列组的总电容值和adc采样电容值确定补充电容值;
20、获取上一周期的计算结果,将上一周期的计算结果与所述并联电容阵列组的总电容值和所述补充电容值进行电荷平分;判断当前周期是否为最后一个周期,若否,则将电荷平分结果作为当前周期的计算结果保留;
21、继续执行所述获取存算阵列中各列位线的输出数据的步骤,直至当前周期为最后一个周期,根据电荷平分结果确定最终计算结果。
22、第四方面,本发明实施例还提供一种终端,所述终端包括有存储器和一个以上处理器;所述存储器存储有一个以上的程序;所述程序包含用于执行如上述所述的基于电荷域的可重构多精度加权累加读出方法的指令;所述处理器用于执行所述程序。
23、第五方面,本发明实施例还提供一种计算机可读存储介质,其上存储有多条指令,所述指令适用于由处理器加载并执行,以实现上述所述的基于电荷域的可重构多精度加权累加读出方法的步骤。
24、本发明的有益效果:本发明通过对权重数据和输入数据的电荷域后置加权,输出存算阵列的输入数据的模拟结果。本发明适用于不同计算精度,并且只需要结合单个adc即可将模拟结果量化为数字结果。解决了现有技术中存算一体设计需要设置多个adc,耗费大量的系统空间和功耗,并且缺乏对不同计算精度的兼容性的问题。
技术特征:1.一种面向存算阵列的电荷域可重构列并行加权累加读出电路,其特征在于,所述可重构多精度加权累加电路包括并联电容阵列组、补充电容模块以及adc采样电容模块;
2.根据权利要求1所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,其特征在于,每一周期开始前先对各所述并联电容阵列进行电容复位操作。
3.根据权利要求1所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,其特征在于,每一所述并联电容阵列中设置有若干开关,所述并联电容阵列的电容值基于各开关的开闭状态调整。
4.根据权利要求3所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,其特征在于,所述存算阵列包括n个位线,所述并联电容阵列组包括n个所述并联电容阵列,所述量化精度为n bit,n、n为正数,且n小于或者等于n;各所述并联电容阵列的电容值的调整方法包括:
5.根据权利要求1所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,其特征在于,所述并联电容阵列组包括8个所述并联电容阵列。
6.根据权利要求1所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,其特征在于,所述并联电容阵列组的总电容值与所述补充电容值的和等于所述adc采样电容值。
7.一种可重构多精度累加读出电路,其特征在于,所述可重构多精度累加读出电路包括:
8.一种基于电荷域的可重构多精度加权累加读出方法,其特征在于,所述方法应用于权利要求1-6任一所述的面向存算阵列的电荷域可重构列并行加权累加读出电路,所述方法包括:
9.一种终端,其特征在于,所述终端包括有存储器和一个以上处理器;所述存储器存储有一个以上的程序;所述程序包含用于执行如权利要求8所述的基于电荷域的可重构多精度加权累加读出方法的指令;所述处理器用于执行所述程序。
10.一种计算机可读存储介质,其上存储有多条指令,其特征在于,所述指令适用于由处理器加载并执行,以实现上述权利要求8所述的基于电荷域的可重构多精度加权累加读出方法的步骤。
技术总结本发明公开了面向存算阵列的电荷域可重构列并行加权累加读出电路。本发明通过对权重数据和输入数据的电荷域后置加权,输出存算阵列的输入数据的模拟结果。本发明适用于不同计算精度,并且只需要结合单个ADC即可将模拟结果量化为数字结果。解决了现有技术中存算一体设计需要设置多个ADC,耗费大量的系统空间和功耗,并且缺乏对不同计算精度的兼容性的问题。技术研发人员:刘俊,李富翼,毛伟,周浩翔,刘定邦,安丰伟,陈全,潘权,林龙扬,张留洋,余浩受保护的技术使用者:南方科技大学技术研发日:技术公布日:2024/6/11本文地址:https://www.jishuxx.com/zhuanli/20240731/185003.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表