System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于实现高能效乘法运算的存内计算电路制造技术_技高网
当前位置: 首页 > 专利查询>南京大学专利>正文

一种用于实现高能效乘法运算的存内计算电路制造技术

技术编号:40343195 阅读:7 留言:0更新日期:2024-02-09 14:30
本发明专利技术提供了一种用于实现高能效乘法运算的存内计算电路,包括存内Booth编码器阵列和存内计算阵列,存内计算阵列包括存内部分积生成器;存内部分积生成器存储被乘数,利用数据锁存单元中两个互补的锁存节点代表被乘数和被乘数的相反数,用临近数据锁存单元的两个互补锁存节点代表被乘数的两倍和被乘数的两倍的相反数,不增加额外的晶体管开销即可实现取反和移位,产生基4Booth算法所有可能的非零部分积,乘数信号控制存内Booth编码器阵列产生编码信号,编码信号控制数据选择器选出四种非零部分积中的一种。本发明专利技术适用于任意位宽乘法运算,提升了数据锁存单元电路的利用率和存算一体单元电路的对称性,能灵活调整计算并行度。

【技术实现步骤摘要】

本专利技术涉及一种用于实现高能效乘法运算的存内计算电路


技术介绍

1、人工智能(artificial intelligence,ai)在各个领域得到了广泛的应用,同时也推动着“算力时代”的到来。与ai相关的算法,如深度神经网络(deep neural networks,dnn)、卷积神经网络(convolutional neural networks,cnn)等需要进行大量的数据处理。然而,大多数现代计算系统是以传统的冯诺依曼结构为基础建立的,物理结构上包括独立的计算单元和数据锁存单元,其在执行各种计算任务的过程中,需要在存储器和计算单元之间反复传输大量的数据,这将导致巨大的延迟和能量损耗,从而限制了数据处理的效率。由于处理器和存储设备长期非均衡的发展,使得存储器和处理器之间的速度差距越来越大,这种差距被称为“内存墙”,由此产生众所周知的冯·诺依曼瓶颈。只有解决冯诺依曼瓶颈,才能将人工智能应用到能耗和面积有严格限制的设备中(如物联网设备、可移动设备、可穿戴设备等),实现“人工智能无处不在”。为了克服传统冯诺依曼结构带来的计算限制,存内计算(computing in memory,cim)应运而生,其不需要将数据从存储器传输到处理器,直接将运算部分整合到存储阵列内部执行计算,这不仅减少了中间数据的传输,还减轻了处理器的运算量。在存内计算架构中,由于总线的带宽不再是吞吐量的限制因素,从而显著的提高了吞吐量和能效。存内计算的另一个显著的优势是能够实现多行读取,从而减少了存储访问的次数,增加了数据吞吐量。随着存内计算成为一个热门的研究领域,越来越多的学者开始从事这方面的研究,乘法计算、加减法运算以及逻辑运算都已通过存内计算实现。实现存内计算的载体包括静态随机存取存储器(static random-access memory,sram)、动态随机存储器(dynamic random-access memory,dram)、阻变随机存储器(resistiverandom access memory,rram)、相变随机存取存储器(phase change random accessmemory,pram)、闪存(flash memory)等多种易失性和非易失性存储器。由于静态随机存取存储器(static random-access memory,sram)数据锁存单元稳定性高、读取速度快、可擦写次数高,而且sram的制造工艺与先进的逻辑工艺兼容,基于sram的存内计算受到了学术界和工业界的广泛关注。

2、现有技术方案:现有的基于sram的存内计算实现技术可分为模拟存内计算(analog computing in memory,acim)和数字存内计算(analog computing in memory,dcim)两种。acim通常需要将输入的数字信号转换为模拟信号,与数据锁存单元存储的逻辑值进行单比特的模拟乘法运算,构成一个乘累加单元,同时激活多条字线,同一列上的乘累加单元产生的放电电流就可以进行求和,经模数转换电路转换为数字信号后,可供后级电路进行下一步运算操作。数字存内计算一般则是将数据锁存单元复用为逻辑运算单元,将单比特乘法(即按位与)转移到存内实现,在存储阵列外围实现移位累加器和加法器电路,完成乘累加运算。acim的优势是具有很高的能效,但是模拟计算的特性也导致其很容易受到工艺偏差、电压波动、电路噪声等因素的影响,因此计算精度通常都在8bit以下。acim架构中外围的数模转换和模数转换电路也带来了额外的开销。dcim避免了数据转换器的开销,也不存在计算精度损失,但是其能效比和面效比通常比模拟存内计算芯片差。


技术实现思路

1、专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供一种用于实现高能效乘法运算的存内计算电路,包括存内booth编码器阵列、行解码器及字线驱动电路、列解码器及读写驱动电路和存内计算阵列;

2、不同于传统的乘法器电路设计,本专利技术的上述所有部件都在存储器内部或紧邻存储器实现,因此可以消除或降低数据在乘法单元和存储器之间传输的开销。

3、所述存内计算电路有三种工作模式,分别是读、写和计算;

4、读、写模式下,行解码器的功能是选择存储器芯片中的特定行或单元以进行读取或写入,如果行解码器选择了某一行,字线驱动电路会生成必要的控制信号来激活所述行,从所述行读取数据或向所述行写入数据;列解码器的功能是选择已经被行解码器选中的存储器行中的特定列,当存储器系统接收到地址信号后,列解码器将进一步解码地址信号以确定要访问的存储器列;列解码器确保只有选定的存储器列上的数据被读取或写入;读写驱动电路控制数据的读取和写入操作,对于读操作,读写驱动电路将选择的存储器单元中的数据放大和输出给数据总线;对于写操作,读写驱动电路将数据从数据总线写入所选的存储器单元;读写驱动电路还包括数据的写入和读取时序控制;行解码器和列解码器协同工作以选择存储器中的特定数据单元,而字线驱动电路和读写驱动电路则负责激活和处理所选数据单元以进行读取或写入操作。这些组件在存储器系统中起到关键作用,确保数据能够有效地存储和检索。

5、计算模式下,存内booth编码器阵列接收乘数信号,输出booth编码信号;存内计算阵列在booth编码信号的控制下,对存储器存储的被乘数进行取反、移位操作,输出乘数与被乘数相乘所产生的所有部分积信号。

6、所述存内计算阵列包括n个存内部分积生成器阵列,每个存内部分积生成器阵列包括m个存内部分积生成器,每个存内部分积生成器包括k个存算一体单元;其中,n是存内计算阵列的行数,k是被乘数的位宽,k*m是存内计算阵列的列数。

7、每个存算一体单元包括一个数据锁存单元、一对以上的读写端口和一个数据选择器阵列,数据选择器阵列包括z个数据选择器。

8、第i个数据锁存单元有两个互补的数据锁存节点q[i]和qn[i],其中i表示数据锁存单元的位置,0<<i<<k-1,k个数据锁存单元按照从低位到高位的顺序,从右到左存储k比特的被乘数。

9、读写端口在外围电路的控制下对存内计算阵列进行读写操作。

10、每个数据选择器都包括四个控制信号输入端two,twon,neg,negn,四个数据输入端w、2w、2wn和wn,一个数据输出端out;

11、two、twon、neg、negn由存内booth编码器阵列所产生,w、2w、2wn和wn由存算一体单元的数据锁存单元所产生。

12、利用存储器本身存在的互补锁存信号,并设计从右到左逐个级联k个存算一体单元的方式,在存内以零晶体管开销实现存内左移一位电路,进而产生radix-4 booth算法中所有可能的非零部分积待选信号。

13、在每个存内部分积生成器中存储一个被乘数,利用数据锁存单元中两个互补的锁存节点代表被乘数和被乘数的相反数,用临近数据锁存单元的两个互补锁存节点代表被乘数的两倍和被乘数的两倍的相反数,不增加额外的晶体管开销即实现取反和本文档来自技高网...

【技术保护点】

1.一种用于实现高能效乘法运算的存内计算电路,其特征在于,包括存内Booth编码器阵列、行解码器及字线驱动电路、列解码器及读写驱动电路和存内计算阵列;

2.根据权利要求1所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,所述存内计算阵列包括n个存内部分积生成器阵列,每个存内部分积生成器阵列包括m个存内部分积生成器,每个存内部分积生成器包括k个存算一体单元;其中,n是存内计算阵列的行数,k是被乘数的位宽,k*m是存内计算阵列的列数。

3.根据权利要求2所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,每个存算一体单元包括一个数据锁存单元、一对以上的读写端口和一个数据选择器阵列,数据选择器阵列包括z个数据选择器。

4.根据权利要求3所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,第i个数据锁存单元有两个互补的数据锁存节点Q[i]和QN[i],其中i表示数据锁存单元的位置,0<<i<<k-1,k个数据锁存单元按照从低位到高位的顺序,从右到左存储k比特的被乘数。

5.根据权利要求4所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,读写端口在外围电路的控制下对存内计算阵列进行读写操作。

6.根据权利要求5所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,每个数据选择器都包括四个控制信号输入端TWO,TWON,NEG,NEGN,四个数据输入端W、2W、2WN和WN,一个数据输出端OUT;

7.根据权利要求6所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,利用存储器本身存在的互补锁存信号,并设计从右到左逐个级联k个存算一体单元的方式,在存内以零晶体管开销实现存内左移一位电路,进而产生Radix-4 Booth算法中所有可能的非零部分积待选信号。

8.根据权利要求7所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,在每个存内部分积生成器中存储一个被乘数,利用数据锁存单元中两个互补的锁存节点代表被乘数和被乘数的相反数,用临近数据锁存单元的两个互补锁存节点代表被乘数的两倍和被乘数的两倍的相反数,不增加额外的晶体管开销即实现取反和移位,产生基4Booth算法所有可能的非零部分积,具体的实现方式是:第0个存算一体单元的数据选择器阵列的所有数据选择器的2W输入端接地,第0个存算一体单元的数据选择器阵列的所有数据选择器的2WN输入端接地,第0个存算一体单元的数据选择器阵列的所有数据选择器的W输入端与第0个存算一体单元的Q[0]节点相连,第0个存算一体单元的数据选择器阵列的所有数据选择器的WN输入端与第0个存算一体单元的QN[0]节点相连;第x个存算一体单元的数据选择器阵列的所有数据选择器的2W输入端与第x-1个存算一体单元的Q[x-1]节点相连,第x个存算一体单元的数据选择器阵列的所有数据选择器的2WN输入端与第x-1个存算一体单元的QN[x-1]节点相连,第x个存算一体单元的数据选择器阵列的所有数据选择器的W输入端与第x个存算一体单元的Q[x]节点相连,第x个存算一体单元的数据选择器阵列的所有数据选择器的W输入端与第x个存算一体单元的QN[x]节点相连,其中,1<<x<<k-1。

9.根据权利要求8所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,每个存算一体单元的z个数据选择器各有一组独立的控制输入端,即{NEG[0],NEGN[0],TWO[0],TWON[0]}、{NEG[1],NEGN[1],TWO[1],TWON[1]},...,{NEG[z-1],NEGN[z-1],TWO[z-1],TWON[z-1];其中NEG[0],NEGN[0],TWO[0],TWON[0]是第0个数据选择器的控制信号;

10.根据权利要求9所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,k个存算一体单元的相同序号的部分积比特构成一个完整的部分积即{OUT0[0],OUT0[1],...,OUT0[k-1]}构成第0个部分积,{OUT1[0],OUT1[1],...,OUT1[k-1]}构成第1个部分积,以此类推,{OUTz-1[0],OUTz-1[1],...,OUTz-1[k-1]}构成第z-1个部分积;

...

【技术特征摘要】

1.一种用于实现高能效乘法运算的存内计算电路,其特征在于,包括存内booth编码器阵列、行解码器及字线驱动电路、列解码器及读写驱动电路和存内计算阵列;

2.根据权利要求1所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,所述存内计算阵列包括n个存内部分积生成器阵列,每个存内部分积生成器阵列包括m个存内部分积生成器,每个存内部分积生成器包括k个存算一体单元;其中,n是存内计算阵列的行数,k是被乘数的位宽,k*m是存内计算阵列的列数。

3.根据权利要求2所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,每个存算一体单元包括一个数据锁存单元、一对以上的读写端口和一个数据选择器阵列,数据选择器阵列包括z个数据选择器。

4.根据权利要求3所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,第i个数据锁存单元有两个互补的数据锁存节点q[i]和qn[i],其中i表示数据锁存单元的位置,0<<i<<k-1,k个数据锁存单元按照从低位到高位的顺序,从右到左存储k比特的被乘数。

5.根据权利要求4所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,读写端口在外围电路的控制下对存内计算阵列进行读写操作。

6.根据权利要求5所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,每个数据选择器都包括四个控制信号输入端two,twon,neg,negn,四个数据输入端w、2w、2wn和wn,一个数据输出端out;

7.根据权利要求6所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,利用存储器本身存在的互补锁存信号,并设计从右到左逐个级联k个存算一体单元的方式,在存内以零晶体管开销实现存内左移一位电路,进而产生radix-4 booth算法中所有可能的非零部分积待选信号。

8.根据权利要求7所述的一种用于实现高能效乘法运算的存内计算电路,其特征在于,在每个存内部分积生成器中存储一个被乘数,利用数据锁存单元中两个互补的锁存节点代表被乘数和被乘数的相反数,用临近数据锁存单元的两个互补锁存...

【专利技术属性】
技术研发人员:王中风张旭邹丁阳张高澈王美琪
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1