基于数字域存内计算的电路制造技术

技术编号:28226927 阅读:10 留言:0更新日期:2021-04-28 10:03
本公开实施例公开了一种基于数字域存内计算的电路,其中,该电路包括:计算存储单元阵列,其中,计算存储单元包括一一对应的预设数量个数据存储单元和预设数量个单比特乘法器;加法树,用于将各个计算存储单元输出的乘积数据累加,得到累加结果;多比特输入转换单元,用于将加法树输出的、对应于输入特征数据包括的各个单比特位的累加结果转换为多比特输入特征数据和多比特权重数据的乘加结果。本公开实施例实现了对多比特的权重数据和输入特征数据的存内乘加计算,提高了存内计算的效率和能效密度,避免位线上的电压变化导致的读干扰写问题,提高计算的稳定性。提高计算的稳定性。提高计算的稳定性。

【技术实现步骤摘要】
基于数字域存内计算的电路


[0001]本公开涉及计算机
,尤其是一种基于数字域存内计算的电路。

技术介绍

[0002]随着人工智能(Artificial Intelligent, AI)和物联网(Internet of Things, IoT)应用的快速发展,中央处理器(CPU)和存储电路(Memory)之间需要经由有限的总线带宽进行频繁且大量的数据传输,这也被公认为目前传统的冯诺依曼架构体系中的最大的瓶颈。深度神经网络作为目前在人工智能领域中应用于图像识别的最成功的算法之一,它需要对输入特征数据和权重数据做大量的读写,乘法和加法运算。这也意味着需要更大数目的数据传输和更多的能量消耗。值得注意的是,在不同的AI任务下,读写数据所消耗的能量远远大于计算数据的能量。如在基于传统的冯诺依曼架构的深度神经网络处理器中,不管是输入特征数据(input activation)还是权重数据(weight),都需要先存储在对应的存储器单元中,然后经由总线送到对应的数字运算单元进行乘加(Multiplicaiton and Computation, MAC)的运算,最后再把运算结果读出。由于有限的存储器读取接口(memory interface)数目,权重数据的读取带宽(单位周期所能读取到的权重的数目)没办法做到很高,从而限制了单位周期所进行的MAC运算数目,进一步地,系统整体的吞吐量(throughput)也将收到很大的影响。
[0003]为了打破冯诺依曼架构中的这一瓶颈,存算一体架构被提出。这种系统架构不仅保留了存储电路本身所具有的存储和读写功能,同时可以支持不同的逻辑或者乘加运算,从而在很大程度上减少了中央处理器和存储器电路之间频繁的总线交互,也进一步降低了大量的数据搬移量,提升了系统的能耗效率。在目前的基于存算一体架构的深度神经网络处理器中,权重数据可以不经过读取就直接进行MAC运算,并直接得出最终的乘加结果。因此系统的吞吐量将不再受限于有限的存储器读取接口。

技术实现思路

[0004]本公开的实施例提供了一种基于数字域存内计算的电路,该电路包括:计算存储单元阵列,其中,计算存储单元包括一一对应的预设数量个数据存储单元和预设数量个单比特乘法器,预设数量个数据存储单元分别用于存储权重数据包括的单比特位,并将存储的单比特位输入对应的单比特乘法器,预设数量个单比特乘法器分别用于对输入的权重数据包括的单比特位和输入特征数据包括的单比特位相乘,得到乘积数据;加法树,用于将各个计算存储单元输出的乘积数据累加,得到累加结果;多比特输入转换单元,用于将加法树输出的、对应于输入特征数据包括的各个单比特位的累加结果转换为多比特输入特征数据和多比特权重数据的乘加结果。
[0005]在一些实施例中,该电路还包括:至少一个字线驱动器,分别对应于一组计算存储单元;地址译码器,用于根据外部输入的地址信号,从计算存储单元阵列中选择目标计算存储单元;数据读写接口,用于向目标计算存储单元写入权重数据;至少一个输入线驱动器,
用于将输入特征数据包括的各个单比特位分别输入预设数量个单比特乘法器。
[0006]在一些实施例中,该电路还包括:时序控制单元,用于输出时钟信号;至少一个输入线驱动器,进一步用于根据时钟信号,依次将输入特征数据包括的各个单比特位分别输入预设数量个单比特乘法器;加法树,进一步用于根据时钟信号,依次将各个计算存储单元输出的乘积数据累加,得到累加结果;多比特输入转换单元,进一步用于根据时钟信号,依次将加法树输出的、对应于输入特征数据包括的各个单比特位的累加结果进行转换。
[0007]在一些实施例中,加法树包括至少两个子树,并且对于至少两个子树中的每个子树,该子树用于将各个计算存储单元输出的乘积数据包括的、与该子树对应的比特位累加,得到该子树对应的子累加结果;电路还包括:乘法累加器,用于将各个子累加结果进行乘法累加运算,得到累加结果。
[0008]在一些实施例中,至少两个子树包括第一子树和第二子树,第一子树对应于乘积数据的、对应位数的高比特位,第二子树对应于乘积数据的、对应位数的低比特位;乘法累加器包括乘法单元和第一加法单元,乘法单元用于将第一子树对应的子累加结果与预设数值相乘,第一加法单元用于将乘法单元输出的结果与第二子树对应的子累加结果相加,得到累加结果。
[0009]在一些实施例中,对应位数的高比特位为乘积数据的最高位,对应位数的低比特位为乘积数据中的除最高位以外的其他位。
[0010]在一些实施例中,多比特输入转换单元包括移位单元和第二加法单元,移位单元和第二加法单元用于循环执行如下操作:将输入特征数据的最高比特位对应的累加结果输入移位单元,将移位后的累加结果与相邻的低比特位对应的累加结果输入第二加法单元,将相加后的累加结果输入移位单元,再次将移位后的累加结果与相邻的低比特位对应的累加结果输入第二加法单元,直到将输入特征数据的最低比特位对应的累加结果与移位后的累加结果输入第二加法单元,得到乘加结果。
[0011]在一些实施例中,多比特输入转换单元包括目标数量个移位单元和第三加法单元,目标数量为输入特征数据包括的比特位数减一;目标数量个移位单元分别用于对输入的累加结果进行对应位数的移位操作;第三加法单元用于将目标数量个移位单元分别输出的移位后的累加结果相加,得到乘加结果。
[0012]在一些实施例中,电路还包括模式选择单元,用于根据输入的模式选择信号选择电路当前的工作模式,工作模式包括普通读写模式和多比特乘加计算模式;在普通读写模式下,地址译码器,还用于根据外部输入的写地址信号或读地址信号,从至少一个字线驱动器中选择目标字线驱动器;数据读写接口,还用于基于写地址信号,向所选择的目标字线驱动器对应的各个计算存储单元包括的数据存储单元写入数据;或者,基于读地址信号,从所选择的目标字线驱动器对应的各个计算存储单元包括的数据存储单元读出数据。
[0013]在一些实施例中,单比特乘法器包括或非门,或非门用于对取反后的权重数据包括的单比特位和取反后的输入特征数据包括的单比特位进行或非运算,得到单比特乘积数据。
[0014]本公开上述实施例提供的基于数字域存内计算的电路,利用多比特数据乘法的原理,在计算存储单元阵列中设置单比特乘法器,将各个数据存储单元中存储的权重数据包括的每个单比特位和输入特征数据包括的每个单比特位分别相乘,得到多个乘积数据,再
利用加法树对每个比特位对应的各个乘积数据累加,得到多个累加结果,最后利用多比特输入转换单元,对各个累加结果进行相应的移位以及累加操作,最终得到权重数据和输入特征数据的乘加结果。本公开的实施例实现了对多比特的权重数据和输入特征数据的存内乘加计算,提高了存内计算的效率和能效密度。相比于现有技术利用两个位线之间的电压差实现乘加,本公开的实施例可以避免位线上的电压变化导致的读干扰写问题,提高计算的稳定性。将该电路应用到深度神经网络的计算,可以大大提高神经网络的识别速度。
[0015]下面通过附图和实施例,对本公开的技术方案做本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数字域存内计算的电路,包括:计算存储单元阵列,其中,计算存储单元包括一一对应的预设数量个数据存储单元和预设数量个单比特乘法器,所述预设数量个数据存储单元分别用于存储权重数据包括的单比特位,并将存储的单比特位输入对应的单比特乘法器,所述预设数量个单比特乘法器分别用于对输入的权重数据包括的单比特位和输入特征数据包括的单比特位相乘,得到乘积数据;加法树,用于将各个计算存储单元输出的乘积数据累加,得到累加结果;多比特输入转换单元,用于将所述加法树输出的、对应于所述输入特征数据包括的各个单比特位的累加结果转换为多比特输入特征数据和多比特权重数据的乘加结果。2.根据权利要求1所述的电路,其中,所述电路还包括:至少一个字线驱动器,分别对应于一组计算存储单元;地址译码器,用于根据外部输入的地址信号,从所述计算存储单元阵列中选择目标计算存储单元;数据读写接口,用于向所述目标计算存储单元写入权重数据;至少一个输入线驱动器,用于将输入特征数据包括的各个单比特位分别输入所述预设数量个单比特乘法器。3.根据权利要求2所述的电路,其中,所述电路还包括:时序控制单元,用于输出时钟信号;所述至少一个输入线驱动器,进一步用于根据所述时钟信号,依次将所述输入特征数据包括的各个单比特位分别输入所述预设数量个单比特乘法器;所述加法树,进一步用于根据所述时钟信号,依次将各个计算存储单元输出的乘积数据累加,得到累加结果;所述多比特输入转换单元,进一步用于根据所述时钟信号,依次将所述加法树输出的、对应于所述输入特征数据包括的各个单比特位的累加结果进行转换。4.根据权利要求1所述的电路,其中,所述加法树包括至少两个子树,并且对于所述至少两个子树中的每个子树,该子树用于将各个计算存储单元输出的乘积数据包括的、与该子树对应的比特位累加,得到该子树对应的子累加结果;所述电路还包括:乘法累加器,用于将各个子累加结果进行乘法累加运算,得到所述累加结果。5.根据权利要求4所述的电路,其中,所述至少两个子树包括第一子树和第二子树,所述第一子树对应于所述乘积数据的、对应位数的高比特位,所述第二子树对应于所述乘积数据的、对应位数的低比特位;所述乘法累加器包括乘法单元和第一加法单元,所...

【专利技术属性】
技术研发人员:司鑫常亮陈亮沈朝晖吴强
申请(专利权)人:南京后摩智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1