公开/公告号CN112233712A
专利类型发明专利
公开/公告日2021-01-15
原文格式PDF
申请/专利权人 中科院微电子研究所南京智能技术研究院;
申请/专利号CN202011461392.3
申请日2020-12-14
分类号G11C11/412(20060101);G11C11/417(20060101);G06F7/544(20060101);
代理机构11569 北京高沃律师事务所;
代理人王爱涛
地址 211100 江苏省南京市江宁区创研路266号麒麟人工智能产业园1号楼5层
入库时间 2023-06-19 09:35:27
技术领域
本发明涉及计算机技术领域,特别是涉及一种6T SRAM存算装置、存算系统及存算方法。
背景技术
计算机的存算能力在很大程度上影响了计算机的整体性能。在计算机的传统计算过程中,用于计算的权重需要在存储器和运算单元之间往复移动,对功耗要求较高。且计算机中传统的存算结构8T SRAM(8T表示8个晶体管,SRAM表示静态随机存储器)自身晶体管数量较多,面积较大,采用1比特输入的计算模式,其存算效率和准确率均较低。
基于此,现有需要结构简单、面积较小,但存算精度较高的存算结构,以提升计算机的整体存算能力。
发明内容
为了解决上述问题,本发明设计了一种6T SRAM存算装置、存算系统及存算方法,能够减少计算机中存算结构内的晶体管数量,减小存算结构在计算机内的占有面积,简化计算机内部结构;提出的2比特输入的计算模式相比1比特输入的计算模式具有更高的存算精度和准确率,能够有效提升计算机的存算能力。
为实现上述目的,本发明提供了如下方案:
一种6T SRAM存算装置,包括存储部分和计算部分,所述存储部分包括晶体管M1、晶体管M2、晶体管M3和晶体管M4,所述存储部分用于存储输入的权重,所述计算部分包括晶体管M5和晶体管M6,所述计算部分用于对输入的数据和所述权重做计算操作;
所述晶体管M5的栅极作为所述存算装置的第一数据输入端连接至输入线VWLM;所述晶体管M6的栅极作为所述存算装置的第二数据输入端连接至输入线VWLL;
所述晶体管M5的漏极与所述晶体管M3的漏极连接,用于从所述晶体管M3获取第一权重;所述晶体管M6的漏极与所述晶体管M4的漏极连接,用于从所述晶体管M4获取第二权重;所述晶体管M5的源极连接至输出线RBLM,所述晶体管M5对所述第一数据和所述第一权重做加权计算得到第一加权结果并通过所述晶体管M5的源极输出,所述晶体管M6的源极连接至输出线RBLL,所述晶体管M6对所述第二数据和所述第二权重做加权计算得到第二加权结果并通过所述晶体管M6的源极输出。
本发明还介绍了一种6T SRAM存算系统,在6T SRAM存算装置的基础上构建,在所述存算装置的基础上还包括:
输入驱动器,
通过所述输入线VWLM与所述晶体管M5的栅极连接,用于向所述晶体管M5中输入所述数据的第一比特;
通过所述输入线VWLL与所述晶体管M6的栅极连接,用于向所述晶体管M6中输入所述数据的第二比特;
加权按位乘累加输出模块,
通过所述输出线RBLM与所述晶体管M5的源极连接,
通过所述输出线RBLL与所述晶体管M6的源极连接,
用于对所述输出线RBLM输出的所述第一加权结果和所述输出线RBLL输出的所述第二加权结果做乘累加计算。
本发明还介绍了一种6T SRAM存算装置的存算方法,基于6T SRAM存算装置实现,包括:
获取输入数据,并将所述输入数据转换为2比特形式;
将所述输入数据的第一比特通过输入线VWLM输入到所述6T SRAM存算装置的晶体管M5的栅极,将所述输入数据的第二比特通过输入线VWLL输入到所述6T SRAM存算装置的晶体管M6的栅极;
获取第一权重和第二权重;所述晶体管M5将所述输入数据的第一比特与所述第一权重做加权计算得到第一加权结果,所述晶体管M6将所述输入数据的第二比特与所述第二权重做加权计算得到第二加权结果;
所述晶体管M5通过输出线RBLM将所述第一加权结果输出,所述晶体管M6通过输出线RBLL将所述第二加权结果输出。
本发明还介绍了一种6T SRAM存算系统的存算方法,基于6T SRAM存算系统实现,包括:
通过所述6T SRAM存算系统中的输入驱动器向6T SRAM存算装置中输入数据,并将所述输入数据转换为2比特形式;
具体为:
将输入数据的第一比特通过输入线VWLM输入晶体管M5中;
将输入数据的第二比特通过输入线VWLL输入晶体管M6中;
所述6T SRAM存算装置中的晶体管M5从晶体管M3中获取第一权重,所述6T SRAM存算装置中的晶体管M6从晶体管M4中获取第二权重;
所述晶体管M5对所述输入数据的第一比特和所述第一权重做加权计算得到第一加权结果,并通过输出线RBLM输出给所述6T SRAM存算系统中的加权按位乘累加输出模块;所述晶体管M6对所述输入数据的第二比特和所述第二权重做加权计算得到第二加权结果,并通过输出线RBLL输出给所述加权按位乘累加输出模块;
所述加权按位乘累加输出模块对所述第一加权结果和所述第二加权结果做乘累加计算。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
1)与传统的8T SRAM结构相比,本发明中使用的6T SRAM结构具有更少的晶体管,减少了面积损耗;
2)传统1比特的计算模式不能保证计算效率和计算精度。本发明中提出了与传统1比特的计算模式完全不同的2比特的计算模式。首先在计算过程中减少了计算能耗,提升了计算效率;其次在数据相同时,2比特的计算模式的精度要高于1比特的计算模式,进而在利用2比特的计算模式进行计算时,具有更高的计算精度。
因此,本发明中提出的6T SRAM存算装置、存算系统及存算方法,不仅能简化计算机的存算结构,减小面积占用,还能提升计算机的存算效率和存算精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中8T SRAM单元的结构示意图;
图2为本发明实施例1中6T SRAM存算装置的结构示意图;
图3为本发明实施例2中6T SRAM存算系统的结构示意图。
符号说明:
1-6T SRAM存算装置、2-输入驱动器、3-列译码和位线驱动模块、4-行解码器、5-加权按位乘累加输出模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的计算机多以8T SRAM单元作为存算结构的核心,其中的T表示晶体管,SRAM表示静态随机存储器,8T SRAM即表示为以8个晶体管构成的静态随机存储器。
如图1所示,为现有技术中8T SRAM单元的结构示意图。其中包括晶体管T1-T8,图中的G表示晶体管的栅极,S表示晶体管的源极,D表示晶体管的漏极。晶体管T1的源极和晶体管T2的源极均与电源VDD连接,晶体管T3的源极和晶体管T4的源极均接地,晶体管T1的漏极与晶体管T3的漏极连接,晶体管T2的漏极与晶体管T4的漏极连接;晶体管T1的栅极与晶体管T3的栅极连接,晶体管T2的栅极与晶体管T4的栅极连接;晶体管T1的漏极与晶体管T2的栅极连接,晶体管T2的漏极与晶体管T1的栅极连接;
晶体管T5的漏极与晶体管T1的漏极连接,晶体管T5的栅极与字线WL连接,晶体管T5的源极与位线BL连接;
晶体管T6的漏极与晶体管T2的漏极连接,晶体管T6的栅极与字线WL连接,晶体管T6的源极与位线BLB连接;
晶体管T7的栅极与晶体管T4的漏极连接,晶体管T7的源极接地,晶体管T7的漏极与晶体管T8的漏极连接;
晶体管T8的栅极与电源RWL连接,晶体管T8的源极与输出线RBL连接输出数据。
在对数据进行计算时,采用1比特计算模式:以晶体管T6中的值作为权重,在晶体管T6中输入1比特的数据,假设为IN[1],则在计算时,若晶体管T6的权重为1,则现有8TSRAM单元的计算结果为1×IN[1],若晶体管T6的权重为0,则计算结果为0×IN[1]。
通过上述和图1可看出,现有计算机的8T SRAM存算部分结构复杂,含有8个晶体管。且基于一位权重计算,其计算准确度较低。
本发明对现有8T SRAM存算结构做了改进,仅利用6个晶体管就可实现8T SRAM对应的存算功能,提出了一种基于6T SRAM存算装置或存算系统的2比特计算模式,能够有效提高计算机内存算结构的存算效率和存算精度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
如图2所示为本发明实施例1中6T SRAM存算装置1的结构示意图。存算装置1包括存储部分和计算部分。其中,存储部分用于存储输入的权重;计算部分用于对权重和输入的数据做加权计算;
存储部分包括4个晶体管:晶体管M1、晶体管M2、晶体管M3和晶体管M4;计算部分包括2个晶体管:晶体管M5和晶体管M6。图中的G表示晶体管的栅极,S表示晶体管的源极,D表示晶体管的漏极。
晶体管M3的源极作为存算装置1的第一权重输入端连接至位线BL;晶体管M4的源极作为存算装置1的第二权重输入端连接至位线BLB;晶体管M3的栅极作为存算装置1的第一权重控制端连接至字线WL;晶体管M4的栅极作为存算装置1的第二权重控制端连接至字线WL;晶体管M3的漏极与晶体管M1的漏极连接;晶体管M4的漏极与晶体管M2的漏极连接;
晶体管M1的源极和晶体管M2的源极均与电源VDD连接;
晶体管M1的栅极与晶体管M2的漏极连接;晶体管M2的栅极与晶体管M1的漏极连接;
晶体管M5的栅极作为存算装置1的第一数据输入端连接至输入线VWLM;晶体管M6的栅极作为存算装置1的第二数据输入端连接至输入线VWLL;
晶体管M5的漏极与晶体管M3的漏极连接,晶体管M6的漏极与晶体管M4的漏极连接;晶体管M5的源极作为存算装置1的第一数据输出端连接至输出线RBLM,晶体管M6的源极作为存算装置1的第二数据输出端连接至输出线RBLL。
更具体的,本发明实施例1中6T SRAM存算装置1的存算方法如下:
获取输入数据,将输入数据转换为2比特形式;
将输入数据的第一比特经输入线VWLM输入到晶体管M5的栅极,将输入数据的第二比特经输入线VWLL输入到晶体管M6的栅极;
获取第一权重和第二权重;将第一权重经位线BL输入到晶体管M3的源极,将第二权重经位线BLB输入到晶体管M4的源极;
其中,只有在经字线WL向晶体管M3的栅极输入高电平时,第一权重才能输入到晶体管M3中;只有在经字线WL向晶体管M4的栅极输入高电平时,第二权重才能输入到晶体管M4中;
第一权重经晶体管M3的漏极进入晶体管M5,与输入数据的第一比特做加权计算得到第一加权结果并通过与晶体管M5的源极连接的输出线RBLM输出,第二权重经晶体管M4的漏极进入晶体管M6,与输入数据的第二比特做加权计算得到第二加权结果并通过与晶体管M6的源极连接的输出线RBLL输出。
结合图2,当晶体管M3的漏极为高电平,晶体管M4的漏极为低电平,即图2中的a点为高电平,b点为低电平时,晶体管M1导通,晶体管M2闭合,此时在晶体管M3的栅极和晶体管M4的栅极接入高电平,晶体管M3和晶体管M4导通,则晶体管M1和晶体管M3构成通路,此时若晶体管M3的栅极接入低电平,可使a点电压下降,通过晶体管M3的源极向晶体管M3内写入权重0,电流经电源VDD流向晶体管M3的源极。
当晶体管M3的漏极为低电平,晶体管M4的漏极为高电平,即图2中的a点为低电平,b点为高电平时,晶体管M2导通,晶体管M1闭合,此时在晶体管M3的栅极和晶体管M4的栅极接入高电平,晶体管M3和晶体管M4导通,则晶体管M2和晶体管M4构成通路,此时若晶体管M4的栅极接入低电平,可使b点电压下降,通过晶体管M4的源极向晶体管M4内写入权重0,电流经电源VDD流向晶体管M4的源极。
基于上述即可将第一权重或第二权重写入到6T SRAM存算装置1中。
之后向6T SRAM存算装置1中输入数据,例如输入数据IN[1:0],则将其划分为2比特形式:IN[1]和IN[0],其中的IN[1]通过晶体管M5的栅极输入到晶体管M5内,与晶体管M3中存储的第一权重做加权计算得到第一加权结果;IN[0]通过晶体管M6的栅极输入到晶体管M6内,与晶体管M4中存储的第二权重做加权计算得到第二加权结果;最后对第一加权结果和第二加权结果做乘累加计算,计算公式为2i+j,其中i表示第一加权结果,j表示第二加权结果;最终将乘累加计算后的结果输出。
另外,本发明还在实施例2中介绍了基于6T SRAM存算装置1的存算系统以及具体的存算方法,便于将6T SRAM存算装置1扩展到现有的计算机系统中。
实施例2:
如图3为本发明实施例2中6T SRAM存算系统的结构示意图。
具体的,在6T SRAM存算装置1的基础上增加了输入驱动器2、列译码和位线驱动模块3、行解码器4和加权按位乘累加输出模块5。
其中,
输入驱动器2通过输入线VWLM与存算装置1中的晶体管M5的栅极连接,用于向晶体管M5中输入数据的第一比特;通过输入线VWLL与晶体管M6的栅极连接,用于向晶体管M6中输入数据的第二比特;
列译码和位线驱动模块3通过位线BL与存算装置1中的晶体管M3的源极连接,用于向晶体管M3中输入第一权重;通过位线BLB与晶体管M4的源极连接,用于向晶体管M4中输入第二权重;
行解码器4通过字线WL与存算装置1中的晶体管M3的栅极连接,用于控制第一权重的输入;通过字线WL与晶体管M4的栅极连接,用于控制第二权重的输入;
加权按位乘累加输出模块5通过输出线RBLM与存算装置1中的晶体管M5的源极连接,通过输出线RBLL与晶体管M6的源极连接,用于对第一加权结果和第二加权结果做乘累加计算。
更具体的,本发明实施例2中6T SRAM存算系统的存算方法如下:
通过6T SRAM存算系统中的输入驱动器2向6T SRAM存算装置1中输入数据,并将输入数据转换为2比特形式;输入数据的第一比特经6T SRAM存算装置1的晶体管M3的源极进入到晶体管M3中,输入数据的第二比特经6T SRAM存算装置1的晶体管M4的源极进入到晶体管M4中;
通过6T SRAM存算系统中的列译码和位线驱动模块3向6T SRAM存算装置1中输入第一权重和第二权重;
通过6T SRAM存算系统中的行解码器4控制将第一权重输入到6T SRAM存算装置1的晶体管M3中,将第二权重输入到6T SRAM存算装置1的晶体管M4中;
6T SRAM存算装置1中的晶体管M5将输入数据的第一比特和第一权重做加权计算得到第一加权结果,晶体管M6将输入数据的第二比特和第二权重做加权计算得到第二加权结果;
通过6T SRAM存算系统中的加权按位乘累加输出模块5对第一加权结果和第二加权结果做乘累加计算,并输出计算结果。
另外,如图3可看出,6T SRAM存算系统中的6T SRAM存算装置1可为多个,相邻两个6T SRAM存算装置1中,第一个6T SRAM存算装置1的第一加权结果作为下一个6T SRAM存算装置1中输入数据的第一比特,第一个6T SRAM存算装置1的第二加权结果作为下一个6TSRAM存算装置1中输入数据的第二比特。依此类推,直到利用6T SRAM存算系统中的多个6TSRAM存算装置1实现输入数据的存储和计算。
通过上述可看出,本发明中提出的6T SRAM存算装置1相比现有的8T SRAM具有更少的晶体管数量,简化了计算机存算结构。提出的基于6T SRAM存算装置1或存算系统的2比特计算模式相比现有的1比特计算模式节省了计算资源,同时提高了计算精度和计算效率。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
机译: 绝对速度响应计算装置,使用该装置的绝对速度响应计算系统以及绝对速度响应计算方法
机译: 绝对速度响应计算装置,使用相同速度的绝对速度响应计算系统和绝对速度响应计算方法
机译: 锁存胶片单元,锁存装置,系统和方法