基于读写分离SRAM配置自适应扫描ADC的乘累加存内计算电路

文档序号:35992745发布日期:2023-11-16 02:26阅读:83来源:国知局
基于读写分离

本发明属于集成电路,具体涉及一种基于读写分离sram配置自适应扫描adc的乘累加存内计算电路,以及对应的cim芯片。


背景技术:

1、近些年来,人工智能技术的不断发展,使得需要处理的计算任务呈爆发式增长,边缘端设备需要承担越来越海量的数据处理任务。传统的冯诺依曼计算架构采用的是处理器与存储器分离的设计,因此在进行高密度运算时,存储与计算的数据搬移会消耗很大的资源,难以应付大算力的需求。

2、存内计算(computing in memory)是一种新型计算架构,将计算和存储器融合在一起以减少数据在计算和存储之间的传输,能够在数据传输过程中直接进行计算,从而提高计算速度和能效。其中,以静态随机存储器(static random-access memory,sram)为基础实现的存内计算架构是学术界、工业界探索的主流方向之一。基于sram的存内计算设计既可以实现sram的基本读写功能,也可以通过设置位线电压,改变单元结构以及修改外围电路来实现计算功能。目前一些存内设计主要实现的功能有布尔运算、内容可寻址存储器、乘法累计等。

3、存内计算目前多应用于神经网络加速器,而神经网络中的卷积计算是其核心,在神经网络的功能实现过程中需要进行海量的卷积运算,卷积运算的关键算法是矩阵向量乘法,包括乘法和累加计算,即乘累加运算(multiply accumulate,mac)。因此在存内计算架构中实现高能效、高准确度的乘累加运算逐渐成为存内计算技术的核心研究方向之一。

4、现有可以执行乘累加运算任务的村内计算电路的系统架构众多,但是大部分电路都需要依赖复杂的外围电路实现输入信号的管理和计算结果的量化输出,这些外围电路提高器件执行逻辑运算时的功耗,也降低了芯片的集成度。造成芯片的处理速率降低,功耗增大。因此,如何提供一种更高效的乘累加村内计算电路正成为本领域技术人员亟待解决的技术难题。


技术实现思路

1、为了解决现有技术中各类乘累加存内计算电路在集成度、功耗和能效方面存在不足的问题,本发明提供一种基于读写分离sram配置自适应扫描adc的乘累加存内计算电路,以及对应的cim芯片。

2、本发明采用以下技术方案实现:

3、一种基于读写分离sram配置自适应扫描adc的乘累加存内计算电路,其具有数据读写保持、乘法和乘累加运算功能,按照电路功能划分,其包括:存算阵列,行信号线、列信号线、模式控制电路、以及量化电路。

4、其中,存算阵列由多个8tsram单元按阵列排布而成;每个8tsram由2个pmos管p1~p2,6个nmos管n1~n6构成,p1、p2、n1~n4构成经典的具有两个存储节点q和qb的6t存储单元。n5的栅极接存储节点q,n5的漏极和n6的源极相连。

5、行信号线连接在存算阵列中同行的所有8tsram单元上,包括连接在每个n1和n2的栅极上的字线wl,连接在每个n6的栅极上的读字线rwl,以及连接在每个n5的源极上的切换字线sw。

6、列信号线连接在存算阵列中同列的所有8tsram单元上,包括连接在每个n1的漏极上的bl,连接在每个n2的漏极上的blb,以及连接在每个n6的漏极的rbl。

7、模式控制电路用于切换行信号线和列信号线的接入状态,以调整乘累加存内计算电路的工作模式。模式控制电路包括行开关组和列开关组。行开关组连接在存算阵列各列的列信号线上,其中,读位线rbl通过开关s3连接rbl端口,并通过开关s4连接nin端口。列开关组连接在存算阵列各行的行信号线上,其中,读字线rwl通过开关s1连接rwl端口,并通过开关s5连接采样电流输入端口current。切换字线sw通过开关s2连通vss。开关s4连接在读字线rwl和切换字线sw之间。

8、量化电路用于对乘累加存内计算电路的乘法或乘累加运算的结果进行量化和输出。

9、在存算阵列中,每个8tsram单元作为执行数据读、写、保持和乘法运算的基本单元,同行的所有8tsram单元作为执行乘累加运算的基本单元。

10、作为本发明进一步的改进,每个8tsram单元执行数据写和数据保持操作的操作逻辑如下:

11、首先,将对应8tsram单元连接的开关s1~s6断开,即切换到数据写模式。然后,按照准备写入到存储节点q或qb的数据,将对应列的位线bl或blb预充为高电平或低电平。最后,开启对应行的8tsram单元的字线wl,完成数据的写入。

12、在完成数据写入后,将字线wl恢复为低电平,断开位线bl和blb与存储节点的连接,即进入到数据保持状态。

13、作为本发明进一步的改进,每个8tsram单元执行数据读操作的操作逻辑如下:

14、首先,将对应8tsram单元连接的开关s1~s3闭合,开关s4~s6断开,即切换到数据读模式。然后,通过rbl端口将对应列的读位线rbl预充到高电平。接着,通过rwl端口将对应行的读字线rwl置为高电平。最后,当读位线rbl保持为高电平,则对应8tsram单元的存储节点q中存储的数据为“1”,当读位线rbl下降为低电平,则对应8tsram单元的存储节点q中存储的数据为“0”。

15、作为本发明进一步的改进,每个8tsram单元执行乘法运算的操作逻辑如下:

16、首先,在数据保持状态下,将存储节点q的值作为其中一个操作数。然后,将对应8tsram单元连接的开关s1~s3断开,开关s4~s6闭合,即切换到运算模式。接着,通过current端口向写字线rwl输入采样电流,并通过nin端口输入乘法运算的另一个操作数in的反相值。最后,将采样电流能否流经s4、n5、n6,并经in端口流出的导通状态,作为表征乘法运算的结果的值。

17、作为本发明进一步的改进,8tsram单元中乘法运算结果还能够通过连接的读字线rwl上生成的计算电压vrwl进行量化:

18、(1)当计算电压vrwl相对运算前读字线rwl的初始电压vrwl0下降,则表征乘法运算结果为1。

19、(2)当计算电压vrwl相对运算前读字线rwl的初始电压vrwl0不变时,则表征乘法运算结果为0。

20、作为本发明进一步的改进,在本发明提供的基于读写分离sram配置自适应扫描adc的乘累加存内计算电路中,每一行中所有8tsram单元执行乘累加运算的操作逻辑如下:

21、首先,在数据保持状态下,将同行中各个8tsram单元的存储节点q的值作为其中一个操作数。然后,将对应8tsram单元连接的开关s1~s3断开,开关s4~s6闭合。接着,通过current端口向写字线rwl输入采样电流,并通过同行中各个8tsram单元的nin端口输入另一个操作数in的反相值nin。最后,将连接在同一读字线rwl上处于导通状态的8tsram单元的数量m作为表征乘累加运算结果的值。

22、作为本发明进一步的改进,量化电路包括复制行、电流舵dac、adc逻辑控制电路、比较器,以及采样控制器。

23、复制行由多个复制单元按行排列而成,每个复制单元由两个nmos管构成,并采用如8tsram单元中n5和n6的电路连接方式连接而成。复制行中的各个n5的栅极均接常为高电平的信号线;其余端口分别接复制行对应的读字线rwl、读位线rbl和切换字线sw。

24、电流舵dac用于在连续的各个周期内,根据收到的时序控制信号,同步输出一个单倍的参考电流,和一个电流值等于参考电流多倍的采样电流。参考电流输入到复制行的读字线rwl上,采样电流输入到存算阵列各行的采样电流输入端口current上。

25、adc逻辑控制电路用于根据时钟信号依次生成控制电流舵dac的时序控制信号。电流舵dac接收时序控制信号后,依次生成所需单倍的参考电路以及倍率逐次增大的采样电流。adc逻辑控制电路还用于接受一个比较器的输出作为反馈信号,并根据反馈信号终止时序控制信号的生成过程。

26、比较器包括两个输入和一个输出;其中一个输入端口连接在存算阵列中各行的读字线rwl上,另一个输入端口连接在复制行的读字线rwl上。比较器的输出作为adc逻辑控制电路所需的反馈信号。

27、采样控制器由多个采样开关pre_calculate构成,每条读字线rwl与比较器的输入端口间均连接有一个采样开关pre_calculate;采样开关在电流舵dac输出逻辑运算所需的参考电流或采样电流时打开;并在逻辑运算结束后闭合,以允许比较器进行量化;

28、作为本发明进一步的改进,adc逻辑控制电路包括时序控制模块和结果递存模块,时序控制器模块用于生成所需的时序控制信号。结果递存模块用于在获取到的反馈信号发生翻转时向时序控制模块发送一个终止信号,并将当前的时序控制信号的序列数m减一后的值输出为乘累加运算的结果。

29、作为本发明进一步的改进,6t存储单元的电路连接关系如下:

30、p1和n3构成一个反相器,p2和n4构成另一个反相器;二者反相交叉耦合形成存储节点q和qb。存储节点q通过传输管n1接到位线bl上,存储节点qb通过传输管n2接到位线blb上。n1和n2的栅极接字线wl,p1和p2的源极接vdd,n3和n4的源极接vss。

31、本发明还包括一种cim芯片,其由如前述的基于读写分离sram配置自适应扫描adc的乘累加存内计算电路封装而成。

32、本发明提供的技术方案,具有如下有益效果:

33、本发明在经典的读写分离的8tsram的基础上,利用合理配置的字线和位线配合模式控制电路中的各个开关,可以对电路的元件连接状态和信号通路进行调整。进而使得各个8tsram可以在不同模式下执行完整的数据存储功能和乘法运算功能。本发明改进后的电路利用8tsram中计算单元的导通状态作为乘法运算结果,并将同行中的读字线的电压作为表征乘累加运算的状态数据。

34、本发明设计的方案是一种按行运算的转置型的乘累加存内计算电路,该电路和运算逻辑和量化方法与常规方案完全不同。本发明针对这种特殊的按行运算的逻辑电路还设计了一种自适应扫描adc作为量化电路。本发明中的量化电路通过固定参考电压,并使得表征计算结果的计算电压逐次翻倍的策略实现了对非线性计算结果进行精准量化。

35、本发明设计出的全新架构杜绝了传统存内计算中电压模式带来的诸多非理想效应,提高了全并行乘累加计算的能效和准确度。本发明在量化模式上创新性地设计的自适应扫描adc,可以兼顾芯片的面积与集成度,并改善芯片的功耗和能效。

36、本发明方案可以基于sram电路的经典架构完成高精确度的乘累加运算,因而在神经网络应用方面具有广泛的前景。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1