掌桥专利:专业的专利平台
掌桥专利
首页

存算单元、存算方法、存内计算区块及神经网络电路组件

文献发布时间:2024-07-23 01:35:21


存算单元、存算方法、存内计算区块及神经网络电路组件

技术领域

本发明涉及电子电路技术领域,特别是一种存算单元、存算方法、存内计算区块及神经网络电路组件。

背景技术

随着人工智能、机器学习和自动驾驶等一大批数据密集型应用的兴起和发展,对海量数据的存取和处理有了更高的要求。然而,现代计算机系统所使用的冯·诺依曼架构的瓶颈开始显现,其存储单元和运算单元在物理上分离的特点,需要数据在两者之间进行传输。在现代CMOS工艺下,数据在运算单元和存储单元之问传输产生的功耗和延时已经远大于数据处理的功耗和延时,即内存墙问题。因此,突破冯·诺依曼架构瓶颈的设计越来越重要,存内计算(In Memory Computing,IMC)作为一个新兴的体系结构被提出用来解决传统计算架构中面临的内存墙问题,一方面这类新型架构使得高能效完成数据密集型应用成为可能,另一方面,高能效地处理此类任务使得这类任务可以更为广泛的部署到资源受限的边缘端,推动智能生态发展。静态随机存储器(SRAM)由于其高速,逻辑兼容以及工艺成熟的特点,其作为存内计算的介质,受到了国内外研究机构的广泛关注。基于SRAM的存算方式主要可以分为模拟计算和数字计算两大类。

现有的模拟域存算方案根据基尔霍夫电流定律或电荷守恒定律等物理定律,实现阵列级并行的乘累加操作。该计算模式下,由于计算结果以模拟电压的形式体现,因此对于电路噪声、温度和工艺扰动十分敏感,输出数据具有不确定性,且精度较低。此外模拟域存算方案需要使用数模转化电路(Analog to Digital Conversion,ADC),而ADC会占用大量的面积,并且能耗极高,因此计算能效也会大幅降低。而现有的数字域存算方案虽然无需ADC单元且抗扰动,但是为了保存权重等信息,基于SRAM的存算电路必须要一直提供电源以补偿漏电流来避免造成信息存储错误,例如在芯片进入待机模式时。由此造成的功耗开销是基于SRAM的存算方式的主要问题。

发明内容

鉴于上述现有技术中存在的问题,提出了本发明,本发明提供一种存算单元、存算方法、存内计算区块及神经网络电路组件,可以在数字域内进行乘法计算,而且即使在不提供电源的情况下也不会丢失权重等重要信息,使得计算电路具有高性能、低功耗和高能效的优势。

为达上述目的,第一方面,本发明提供了一种存算单元,其包括,静态随机存取电路单元,其具有第一电压端和第二电压端,所述第一电压端与所述第二电压端分别具有第一电压与第二电压,依照所述第一电压与所述第二电压的值决定权重信息;至少一个非易失存储单元,其与所述第一电压端或所述第二电压端相连接;以及,逻辑门电路单元,所述逻辑门电路单元的两个输入端分别与所述第二电压端以及输入线相连。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储单元具有第一连接端和第二连接端,所述第一连接端与所述第一电压端或所述第二电压端相连,所述第二连接端与板线相连。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储单元包括至少一个非易失存储元件。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储单元为铁电存储单元。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储单元为阻变存储单元、相变存储单元或磁电存储单元。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储单元包括多个并联的自发极化电容。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储元件为三维自发极化电容,所述三维自发极化电容位于所述静态随机存取电路单元的上方。

作为本发明所述存算单元的一种优选方案,其中:所述非易失存储单元还包括第三晶体管,所述第三晶体管的第一电极端与所述第一电压端或所述第二电压端相连接,第三晶体管的第二电极端连接所述非易失存储元件,所述第三晶体管的栅极端连接非易失存储字线。

作为本发明所述存算单元的一种优选方案,其中:所述静态随机存取电路单元包括锁存器电路单元,所述锁存器电路单元包括两个反相器电路。

作为本发明所述存算单元的一种优选方案,其中:所述静态随机存取电路单元还包括,第一晶体管,所述第一晶体管的第一电极端连接位线,所述第一晶体管的第二电极端连接所述锁存器电路单元,所述第一晶体管的栅极端连接字线;第二晶体管,所述第二晶体管的第一电极端连接互补位线,所述第二晶体管的第二电极端连接所述锁存器电路单元,所述第二晶体管的栅极端连接所述字线。

作为本发明所述存算单元的一种优选方案,其中:所述逻辑门电路单元为或非门电路。

第二方面,本发明提供了一种存算方法,方法包括,根据预先配置的模式控制信号,使得存算电路处于存储模式或计算模式;当所述存算电路处于计算模式时,获取输入信号和权重信息并一同输入至逻辑门器件单元进行运算;其中,所述权重信息存储在非易失存储器件中,所述非易失存储器件由静态随机存储器和存储单元组成;所述存储单元用于在所述存算电路断电时存储所述权重信息。

作为本发明所述存算方法的一种优选方案,其中:获取所述存储单元中的所述权重信息包括,激活所述非易失存储器件中的字线并调整位线和互补位线的电压至0且浮动,调整所述存储单元所连接的板线电压以读取存储在所述存储单元中的所述权重信息。

作为本发明所述存算方法的一种优选方案,其中:当所述存算电路处于存储模式时,在通电情况下,所述存算电路作为静态随机存储器运行;在断电之前,调整所述板线电压,使所述存储单元发生极化,以使所述静态随机存储器上的所述权重信息写入所述存储单元中。

作为本发明所述存算方法的一种优选方案,其中:当所述存算电路处于待机模式时,所述存储单元的极化相关漏电流会对所述静态随机存储器中存储有权重信息的电压端进行电流补偿,以使所述静态随机存储器在所述待机模式下实现数据保持。

第三方面,本发明了提供一种存内计算区块,包括存算单元阵列,其由多个上述的存算单元组成;加法树电路单元,其与所述存算单元阵列相连接。

作为本发明所述存内计算区块的一种优选方案,其中:所述存算单元阵列由M行和N列所述存算单元组成;M行和N列所述存算单元与M个字线、M个输入线、N个位线、N个互补位线以及板线一一对应连接。

作为本发明所述存内计算区块的一种优选方案,其中:所述存算单元阵列储存N比特权重信息,每个周期送入M个单比特信号,产生M个N比特乘法结果提供给所述加法树电路单元,所述加法树电路单元将其进行累加求和。

第四方面,本发明提供了一种神经网络电路组件,包括多个上述的存内计算区块,还包括,行地址译码器、输入模块、字线驱动器、板线驱动器、列地址译码器、位线驱动器、感应放大器组和输出模块,所述行地址译码器的输出端连接所述字线驱动器输入端,所述列地址译码器的输出端连接所述位线驱动器输入端,所述字线驱动器通过字线与多个所述存内计算区块连接,所述位线驱动器通过位线与多个所述存内计算区块连接,所述板线驱动器通过板线与多个所述存内计算区块连接,所述感应放大器组包括多个感应放大器,通过所述位线与多个所述存内计算区块连接。

本发明有益效果为:在本发明提供的存算单元可以在数字域内进行乘法计算,提高了计算结果的精确性且具备高能效优势。且存内计算电路采用了非易失存储单元,可以在断电时保证数据不会丢失,大幅度降低了功耗开销。在待机状态下,本发明无需对存算单元进行供电,因而可以达到极低的功耗。相比基于SRAM的存算电路需要在待机状态下维持供电,本发明可降低功耗超过30倍。在正常的神经网络计算操作中,相比于基于SRAM的存算电路,本发明无需外接非易失存储器并对其进行读写操作,因而可以大幅度节约操作时间以及省去数据搬运所消耗的功耗。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为实施例1中所述的存算单元电路结构示意图。

图2为实施例2中所述的存算单元电路结构示意图。

图3为实施例3中所述的存算单元电路结构示意图。

图4为实施例4中所述的存算单元电路结构示意图。

图5为实施例4中所述的存算单元电路另一种结构示意图。

图6为实施例5中所述的存算单元电路结构示意图。

图7为实施例6中所述的存算单元电路结构示意图。

图8为实施例8中所述的存内计算区块的结构示意图。

图9为实施例9中所述的神经网络电路组件的结构示意图。

图中:10、存算单元;100、静态随机存取电路单元;101、反相器电路;102、锁存器电路单元;120、第一晶体管;130、第二晶体管;20、加法树电路单元;200、非易失存储单元;210、第三晶体管;220、非易失存储元件;30、存算单元阵列;300、逻辑门电路单元;410、字线;420、板线;430、位线;440、互补位线;450、输入线;460、非易失存储字线;50、存内计算区块;510、行地址译码器;520、输入模块;530、字线驱动器;540、板线驱动器;550、列地址译码器;560、位线驱动器;570、感应放大器组;580、输出模块;Q、第一电压端;QB、第二电压端。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式作详细地说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独地或选择性地与其他实施例互相排斥的实施例。

实施例1

参照图1,为本发明第一个实施例,该实施例提供了一种存算单元10,存算单元10包括静态随机存取电路单元100、非易失存储单元200和逻辑门电路单元300。

具体的,静态随机存取电路单元100包括锁存器电路单元102,所述锁存器电路单元102包括两个反相器电路101。两个反相器101的输出端分别为静态随机存取电路单元100的第一电压端Q和第二电压端QB。第一电压端Q和第二电压端QB的电压值决定权重信息。在本实施例中,静态随机存取电路单元100基于4T SRAM电路。

在本实施例中,非易失存储单元200为铁电存储单元且设置有两个,每个非易失存储单元200具有一个非易失存储元件220,每个非易失存储元件220均具有第一连接端和第二连接端,这两个非易失存储元件220的第一连接端分别与静态随机存取电路单元100的第一电压端Q和第二电压端QB相连,第二连接端均与板线420相连。

逻辑门电路单元300,其具有第一输入端、第二输入端和输出端。其中,第一输入端与静态随机存取电路单元100的第二电压端QB相连,用于接收权重信息。第二输入端与输入线450相连,用于接收输入信号。输出端用于输出运算结果以供下一步计算。

进一步的,本存算单元10具有两种工作模式:存储模式和计算模式。

在正常的存储模式下,存算单元10仅作为SRAM工作。存算单元10可以通过与SRAM相同的接口读写数据。在这种设计中,板线420需要设置在一个较高的初始电压(V

当存算单元10进入待机模式时,极化相关漏电流(PDLC)可以补偿第一电压端Q(假设Q =“1”)的泄漏电流。与现有技术中使用阻性负载,即以两个加载电阻置于第一电压Q和第二电源QB上的方式相比,通过阻性负载来提供驱动电流以确保SRAM在待机状态下数据的保持,负载电阻路径的直流电将在几个微安培级别,导致较大功耗。而极化相关漏电流(PDLC)仅为纳安培级,既可以补偿泄漏电流,同时又显著降低功耗。

当系统处于存储模式下电时,第一电压端Q和第二电压端QB中的权重数据必须存储到非易失存储单元200,也即铁电存储单元中。第一电压端Q和第二电压端QB分别为VDD =0.9V和GND = 0V,为了完成这个存储操作,板线420被上拉到电压V

当存算单元10唤醒时,需要将存储的权重数据读入第一电压端Q和第二电压端QB即恢复操作。要开始这个过程,应该先打开字线410,然后将位线430和互补位线440放电至0并浮动,然后将板线420拉至电压V

本实施例的存算单元10,用于低功耗应用。两个铁电存储单元嵌入在4T SRAM中,由于铁电存储单元与CMOS工艺的兼容性,铁电存储单元可直接集成到线后端工艺中。4TSRAM的面积比标准6T SRAM小1/3。因此,本实施例的存算单元10在节省面积方面具有显著优势。

另外,铁电存储单元具有优异的记忆特性。利用铁电存储单元的极化相关漏电流(PDLC)补偿传统4T无负载SRAM动态节点漏电流,大大降低了功耗,使基于铁电存储单元的存算单元10成为未来低功耗应用的有前途的解决方案。该存算单元10具有低功耗、小面积、结构简单、CMOS兼容性高等特点。

实施例2

参照图2,为本发明第二个实施例,本实施例同样提供一种存算单元10,但与实施例1不同的是,本实施例存算单元10中的静态随机存取电路单元100采用的是6T SRAM。

具体的,静态随机存取电路单元100还包括第一晶体管120,第一晶体管120具有第一电极端、第二电极端以及栅极端,第一晶体管120的第一电极端连接位线430,第一晶体管120的第二电极端连接锁存器电路单元102,栅极端连接字线410;

第二晶体管130,具有第一电极端、第二电极端以及栅极端,第二晶体管130的第一电极端连接互补位线440,第二晶体管130的第二电极端连接锁存器电路单元102,栅极端连接字线410。

优选的,非易失存储单元200为铁电存储单元。

值得说明的是,在正常模式下,板线420设置在V

在存储期间,板线420上拉到V

实施例3

参照图3,为本发明第三个实施例,本实施基于上一个实施例,但与实施例2不同的是,本实施中的非易失存储单元200只设置有一个,且这个非易失存储单元200的第一连接端与静态随机存取电路单元100的第一电压端Q相连,第二连接端与板线420相连。

另外,非易失存储单元200可以为阻变存储单元、相变存储单元或磁电存储单元中的一种。

实施例4

参照图4,为本发明第四个实施例,本实施基于上一个实施例,但与实施例3不同的是,本实施例中的非易失存储单元200除了包括一个非易失存储元件220外,还包括一个第三晶体管210。

具体的,第三晶体管210具有第一电极端、第二电极端以及栅极端,第三晶体管210的第一电极端与第一电压端Q相连接,第二电极端连接非易失存储元件220,栅极端连接非易失存储字线460。

存算单元10在正常模式下就像SRAM一样工作,存算单元10可以通过与SRAM相同的接口读写数据。第三晶体管210的漏极增加了第一电压端Q处的准电容,但不会对读写访问时间造成太大影响。

在存储操作时,打开字线410,将位线430上的数据写入第一电压端Q。同时,第三晶体管210接通,板线420处于VDD-Vstore =-1.1V,根据第一电压端Q处的电压对铁电存储单元进行编程。因此,如果第一电压端Q是VDD = 0.9V,则铁电存储单元的电压为-2.0V,铁电存储单元将被完全极化。如果第一电压端Q为GND=0V,则铁电存储单元的偏置电压为-1.1V,铁电存储单元将部分极化,然后关闭电源。

在恢复模式下,第三晶体管210导通,然后将板线420上拉至V

参照图5,包括一个非易失存储元件220和一个第三晶体管210的非易失存储单元200同样可以设置成两个,并分别与第一电压端Q和第二电压端QB相连。两个非易失存储单元200存放相反的信息,其操作方式同上。

实施例5

参照图6,为本发明第五个实施例,本实施基于实施例2,但与实施例2不同的是,非易失存储单元200中的具有多个非易失存储元件220且互相并联。

较佳的,非易失存储元件220为自发极化电容,在恢复操作中即可通过自发极化电容放电到第一电压端Q和第二电压端QB上,放电导致这两个电压端产生不同的电压,感应放大器把这个电压值放大,即可得到权重,同时并联的自发极化电容越多,放电就越多,电压差值就越明显,恢复操作的结果就越准确。

优选的,非易失存储元件220为三维自发极化电容,三维自发极化电容位于静态随机存取电路单元100的上方。采用三维自发极化电容占地面积极大缩小,且可以放置于静态随机存取电路单元100的上方,成本较低,信息可以在断电的情况下存留10年以上。其所需操作电压较低,产生的电流也较低,操作速度极快,因此功耗很低。另外,自发极化电容抗辐射和电磁干扰能力超强,耐高温。如果不使用自发极化电容而使用例如磁性隧道结,则制造工艺难度大,成本高,电流大导致功耗较高,而且容易受到磁场干扰,不耐高温。如果使用阻变存储单元,则耐久度很差。

实施例6

参照图7,为本发明的第六个实施例,本实施例基于实施例2,与实施例2不同的是,本实施例中的逻辑门单元300为或非门电路,其包括两个PMOS晶体管和两个NMOS晶体管。

两个PMOS晶体管和两个NMOS晶体管组成的或非门电路单元300面积开销较小,比较适合大规模存算电路。其中一个操作数W由静态随机存取电路单元100的反端输入,另一个操作数A采用反码的形式从外部输入,那么或非门电路单元300的输出结果M就是W×A的运算结果。

实施例7

本实施例提供一种用于存算电路的存算方法,存算方法包括:

首先根据周边电路预先配置的模式控制信号,来控制存算电路运行存储模式还是计算模式。

当存算电路处于计算模式时,获取输入信号和权重信息并一同输入至逻辑门器件单元进行运算。

其中,获取输入信号的方式为通过外部输入线将输入信号加载至逻辑门器件单元,逻辑门器件单元可以是或非门器件单元。

权重信息存储在非易失存储器件中,其中非易失存储器件由静态随机存储器和存储单元组成,在通电时,权重信息可以直接从静态随机存储器加载至逻辑门器件中与输入信号进行结合运算。存储单元可以在存算电路断电时存储权重信息。存储单元可以是铁电存储单元。

若存算电路经历过断电,在上电之后要将存储在存储单元中的权重信息加载至静态随机存储器中。要完成这个操作,首先需要激活存算电路中的字线,然后将位线和互补位线放电至0且浮动。然后在再调整非易失存储器件中的板线电压至指定电压,使得存储在存储单元中的权重信息加载至静态随机存储器中。

值得说明的是,当存算电路处于存储模式时,在通电情况下,所述存算电路作为常规的静态随机存储器运行,例如进行存储操作;

在断电之前,调整板线电压,使存储单元发生极化,以使静态随机存储器上的权重信息写入存储单元中。如此,存算电路中的信息不会因为断电而丢失。如果选用存储单元为铁电存储单元,则可以在断电之前的微秒级的超短时间段内,通过多个存储电路并行操作来写入大量信息,因此可以省略掉备用电池,显著简化系统并节约成本。

其中,当存算电路处于待机模式时,存储单元的极化相关漏电流会对静态随机存储器中存储有权重信息的电压端进行电流补偿,以使静态随机存储器在待机状态下实现数据保持。

实施例8

参照图8,为本发明的第八个实施例,提供了一种存内计算区块50结构,包括存算单元阵列30和加法树电路单元20。

具体的,存算单元阵列30由多个存算单元10所组成;

加法树电路单元20与存算单元阵列30相连接。

进一步的,存算单元阵列30由M行和N列存算单元10所组成且连接有M个字线410、M个输入线450、N个位线430、N个互补位线440以及板线420。

进一步的,其中存算单元阵列30储存N比特权重信息,每个周期送入M个单比特信号,产生M个N比特乘法结果提供给加法树电路单元20,加法树电路单元20将其进行累加求和。

应说明的是,多个存算单元10能够呈M×N矩形阵列排布,形成存内计算区块50。具体的,字线410和输入线450共有M个,每个字线410对应一个输入线450;每组字线410和输入线450对应连接一行存算单元10;

一个位线430和一个互补位线440为一组,共有N组。每组对应连接一列存算单元10。输入线450为神经网络输入信号的反信号,每个周期进入单比特信号,p比特IN_B信号通过p个周期串行送入存算单元,p个周期的输出将会通过移位累加在加法树电路单元20中进行求和。

实施例9

参照图9,为本发明的第九个实施例,提供了一种神经网络电路组件,包括多个存内计算区块50,还包括,行地址译码器510、输入模块520、字线驱动器530、板线驱动器540、列地址译码器550、位线驱动器560、感应放大器组570和输出模块580。

更进一步的,其中行地址译码器510的输出端连接字线驱动器530输入端;列地址译码器550的输出端连接位线驱动器560输入端;字线驱动器530通过字线410与多个存内计算区块50连接;位线驱动器560通过位线430与多个存内计算区块50连接;板线驱动器540通过板线420与多个存内计算区块50连接。感应放大器组570包括多个感应放大器,通过位线430与多个存内计算区块50连接。

应说明的是,神经网络电路中的多个存内计算区块50组成了存内计算阵列。具体的,存内计算阵列输入模块520的输出端连接行地址译码器510和列地址译码器550的输入端。输入模块520的编码器用于接收神经网络输入数据,并对输入数据进行编码以匹配行地址译码器510的输入要求;行地址译码器510对输入的数据译码,并通过字线驱动器给存算单元10列提供字线信号,进行卷积运算;列地址译码器550根据得到的列地址选择所需的存算单元10列,而感应放大器组570能够放大电压信号。

所提出的电路架构支持两种工作模式,即正常SRAM模式和存内计算模式。在正常SRAM模式下,神经网络电路中的SRAM单元可以进行常规的数据存取,与基本的SRAM存储器一致。时序模块产生相应的读写控制信号,对字线410被激活的行进行读写操作。而工作在存内计算模式时,其优势在于运算的并行性,即多行可以同时进行运算,执行乘法运算前,需在SRAM模式下将权重数据写入存内计算区块50,然后通过模式控制信号将电路切换到存内计算模式。内存中的乘法运算是神经网络电路和明确定义的脉冲序列配合完成的,在接收到模式控制信号后,产生相应的时序信号,这些信号将控制神经网络电路执行运算,在这个过程中,外部输入从低位到高位依次被驱动到存内计算区块50之内,全存内计算阵列并行运算。

另外需要额外说的是,本发明中非易失存储单元200还可以采用超稳态随机存取存储单元HsRAM。此种存储器是在逻辑芯片基础上,使用High-K 自发极化材料作为电容介质,实现存储功能的一种新型存储芯片。High-K自发极化材料以及上下电极是通过ALD原子层沉积的方法沉积在3D存算模块内的。ALD是采用原子层逐层生长来实现薄膜沉积的一种方式,其最薄膜层可实现原子级厚度,广泛应用于芯片晶圆制造领域。现有应用自发极化材料构成存储单元的存储器包括超稳态存储器以及铁电存储器等。

综上,本发明提供的存内计算电路用全数字域的方式进行计算,抗工艺及噪声扰动,且输出具有确定性;

在掉电时,采用了非易失存储单元200来储存权重信息。优选的非易失存储元件220为自发极化电容,由于自发极化电容具有非易失、超低待机功耗的特性,可有效避免使用SRAM存算单元必须要一直被提供电源以补偿漏电流的问题,大幅度降低了功耗开销。本发明可广泛应用于基于乘累加运算的应用,如神经网络,图像滤波等。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

相关技术
  • 一种存内计算单元、存算阵列及存算芯片
  • 存算芯片内的加权融合变换部件、存算电路及协同计算方法
技术分类

06120116678669