CN117877553A - 一种用于非易失性随机存储器的存内计算电路 - Google Patents
一种用于非易失性随机存储器的存内计算电路 Download PDFInfo
- Publication number
- CN117877553A CN117877553A CN202311480237.XA CN202311480237A CN117877553A CN 117877553 A CN117877553 A CN 117877553A CN 202311480237 A CN202311480237 A CN 202311480237A CN 117877553 A CN117877553 A CN 117877553A
- Authority
- CN
- China
- Prior art keywords
- input
- gate
- data
- terminal
- nth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Logic Circuits (AREA)
Abstract
本申请提供了一种用于非易失性随机存储器的存内计算电路,属于集成电路技术领域,存内计算电路包括:寄存器累加模块、电压跟随读取模块和输入稀疏感知模块,其中:输入稀疏感知模块用于检测各存储单元组的输入数据是否为0,并跳过为0的输入数据;电压跟随读取模块用于读取每列存储单元阵列上的各存储单元组的计算权重;寄存器累加模块用于根据计算权重,确定每列存储单元阵列上的输入数据不为0的存储单元组的乘法结果并进行累加计算,得到该列存储单元阵列的存内计算结果。本申请通过设计电压跟随读取模块实现分段位线的并行读取,以及设计输入稀疏感知模块实现加速,从而在乘法累加操作中能够大幅提升访问时间,有效降低电路延迟和能耗。
Description
技术领域
本申请属于集成电路领域,具体地讲,涉及一种用于非易失性随机存储器的存内计算电路。
背景技术
目前基于磁随机存取存储器(Magnetic Random Access Memory,缩写为MRAM)的存内计算架构几乎都是数字存内计算方案,算法操作通过调度布尔逻辑来执行。虽然数字存内计算方案实现了高度并行和可靠的计算,但由于时序和控制更为复杂,其能源效率低于模拟存内计算方案(即基于交叉棒阵列欧姆定律的高度并行模拟乘法和累积操作);MRAM不能应用模拟存内计算方案的主要原因是磁隧道结(Magnetic Tunnel Junction,缩写为MTJ)器件的隧道磁电阻比(Tunnel Magnetoresistance Ratio,缩写为TMR)较低,这使得在传统交叉杆阵列中难以产生满足模拟计算需求的计算信号裕度。
有鉴于此,亟需设计一种新的基于非易失存储器的存内计算电路以解决上述技术问题。
发明内容
针对现有技术中存在的问题,本申请提供一种用于非易失性随机存储器的存内计算电路,从而在乘法累加操作中能够大幅提升访问时间,有效降低电路延迟和能耗。
根据本申请的第一个方面,提供了一种用于非易失性随机存储器的存内计算电路,所述非易失性随机存储器包括N列存储单元阵列,每个所述存储单元阵列包括十六个存储单元组,每个所述存储单元组包括八个比特单元;所述存内计算电路包括:寄存器累加模块、电压跟随读取模块和输入稀疏感知模块,其中:
所述输入稀疏感知模块用于检测各所述存储单元组的输入数据是否为0,并跳过为0的输入数据,其中,所述输入数据为八位比特数据,所述八位比特数据与所述八个比特单元一一对应;
所述电压跟随读取模块用于读取每列存储单元阵列上的各所述存储单元组的计算权重,其中,所述电压跟随读取模块与所述存储单元组一一对应;
所述寄存器累加模块用于根据所述计算权重,确定每列存储单元阵列上的输入数据不为0的存储单元组的乘法结果并进行累加计算,得到该列存储单元阵列的存内计算结果,其中,所述寄存器累加模块与所述存储单元阵列一一对应。
本申请提供的一种用于非易失性随机存储器的存内计算电路,一方面,通过设计电压跟随读取模块,并将其运用到分段位线的每个部分,实现并行读取,并且电压跟随读取模块能够降低MTJ(磁隧道结)的读取错误率;另一方面,对位线提出了一个类似于模拟CIM的超快全数字MAC操作,逐段顺序计算,实现了权重稀疏感知;再一方面,设计输入稀疏感知模块实现输入稀疏感知加速,从而在乘法累加操作中能够大幅提升访问时间,有效降低电路延迟和能耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例的存内计算电路的结构示意图之一;
图2为根据本申请实施例的存内计算电路的结构示意图之二;
图3a为传统的模拟CIM的计算原理的示意图;
图3b为本申请的AladCIM的计算原理的示意图;
图4为根据本申请实施例的一个存储单元组的结构示意图;
图5为根据本申请实施例的输入稀疏感知模块的原理图;
图6为根据本申请实施例的输入稀疏感知模块中各信号的瞬态仿真图;
图7为根据本申请实施例的存内计算电路的结构示意图之三;
图8为根据本申请实施例的一个电压跟随读取单元的结构示意图;
图9为根据本申请实施例的一个电压跟随读取单元的瞬态仿真结果;
图10为根据本申请实施例的不同寄生电容的激活时间示意图;
图11为根据本申请实施例的AladCIM电路结构的MAC操作的瞬态仿真图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请实施例中,术语“第一”、“第二”、“上”、“下”等用于对不同元素从称谓上进行区分,但并不表示这些元素的空间排列或时间顺序等,这些元素不应被这些术语所限制。术语“和/或”包括相关联列出的术语的一种或多个中的任何一个和所有组合。术语“包含”、“包括”、“具有”等是指所陈述的特征、元素、元件或组件的存在,但并不排除存在或添加一个或多个其他特征、元素、元件或组件。
本申请缩略语和关键术语的定义如下:IMC:In-Memory Computing存内计算;CMOS:Complementary Metal Oxide Semiconductor互补金属氧化物半导体;SRAM:StaticRandom-Access Memory静态随机存取存储器;DRAM:Dynamic Random Access Memory动态随机存取存储器;MAC:Mltiply-and-Accumulate乘法和累积;NVM:Non-volatile Memory非易失存储器;MTJ:Magnetic Tunnel Junction磁隧道结;STT-CIM:Spin-Transfer TorqueComputing-In-Memory基于自旋转移矩磁随机存储器的存内计算;DFF:D Flip-Flop D触发器;STT-MRAM:Spin-Transfer-Torque-Magnetic Random Access Memory自旋转移矩磁随机存储器;MAC:Multiply Accumulate乘法累加运算;TMR:Tunnel MagnetoresistanceRatio隧道磁电阻比。
随着数据量的指数增长,有限的数据带宽成为制约计算性能的重要因素。有限的数据带宽不仅增加了传输延迟,还会因数据在存储器和处理器之间频繁的移动导致大量的能量消耗。有限的带宽和较大的数据传输功耗形成了“冯诺依曼瓶颈”。在近几十年里,存储单元的存储速度只增长约10%,而处理单元的计算性能却高速增长60%。存储单元和处理单元存在一定的速度差异。当处理器的运算能力达到一定的程度时,由于访问存储器的速度无法跟上处理器对数据处理的速度,继续增加的处理器运算部件无法得到充分的利用,就形成了“存储墙问题”(Memory Wall)。
为解决上述问题,存内计算(In-Memory Computing,缩写为IMC)平台被提出,即在内存阵列中执行逻辑运算的硬件设计。目前,各种存内计算架构都采用了成熟的内存技术,如SRAM(Static Random-Access Memory)和DRAM(Dynamic Random Access Memory)。基于SRAM的存内计算架构已经成功地展示了执行乘法和累积(Multiply-and-Accumulate,缩写为MAC)操作的高效率,并且成功在神经网络计算中占据主导地位。然而,由于标准6晶体管SRAM的低密度限制了容量,导致基于SRAM的存内计算在大规模数据操作中的应用受到限制。基于DRAM的存内计算架构得益于更大的比特密度,可以避免上述缺点,但代价是其不断重复的刷新机制会增加能源消耗。
新兴的非易失性存储器(Non-volatile Memory,缩写为NVM)利用设备的固有物理特性来存储数据,这使得其位单元由一个晶体管和一个器件组成,即类似DRAM的高比特密度。非易失性存储器的非易失性可实现接近零泄漏和静态功耗,从而大大提高了性能。在不同的非易失性存储器中,自旋电子存储器提供了更高的读写操作速度,并已在汽车电子和可穿戴设备等领域实现了商业化。因此,它被认为最有希望成为下一代存储器。
有鉴于此,本申请提供了一种用于非易失性随机存储器的存内计算电路,即一种基于非易失存储器的类模拟的全数字存内计算电路,在乘法累加操作中能够大幅提升访问时间以及节约能耗。
基于非易失存储器的类模拟的全数字存内计算电路如图1所示,其中,AladCIM(类模拟存内计算)采用完全独立的行列解码器分别执行存储器和存内计算的功能;两个时间控制电路(存储器时域控制和存内计算时域控制),分别为存储器和存内计算功能生成定时信号,有助于降低定时电路设计的复杂性;输入寄存器、输入检测器和输入滤波组成稀疏感知模块;还包括寄存器累加电路,移位全加树以及读写驱动和感测放大器。
在本申请中,重点对寄存器累加模块、电压跟随读取模块和输入稀疏感知模块进行介绍,其余组成为现有技术,本申请在此不再详述。
如图2所示,非易失性随机存储器包括N列存储单元阵列,每个所述存储单元阵列包括十六个存储单元组,每个所述存储单元组包括八个比特单元,存内计算电路包括:寄存器累加模块、电压跟随读取模块(VRCF)和输入稀疏感知模块,其中:
所述输入稀疏感知模块用于检测各所述存储单元组的输入数据是否为0,并跳过为0的输入数据,其中,所述输入数据为八位比特数据,所述八位比特数据与所述八个比特单元一一对应;
所述电压跟随读取模块用于读取每列存储单元阵列上的各所述存储单元组的计算权重,其中,所述电压跟随读取模块与所述存储单元组一一对应;
所述寄存器累加模块用于根据所述计算权重,确定每列存储单元阵列上的输入数据不为0的存储单元组的乘法结果并进行累加计算,得到该列存储单元阵列的存内计算结果,其中,所述寄存器累加模块与所述存储单元阵列一一对应。
本申请提供的一种用于非易失性随机存储器的存内计算电路,一方面,通过设计电压跟随读取模块,并将其运用到分段位线的每个部分,实现并行读取,并且电压跟随读取模块能够降低MTJ(磁隧道结)的读取错误率;另一方面,对位线提出了一个类似于模拟CIM的超快全数字MAC操作,逐段顺序计算,实现了权重稀疏感知;再一方面,设计输入稀疏感知模块实现输入稀疏感知加速,从而在乘法累加操作中能够大幅提升访问时间,有效降低电路延迟和能耗。
需要说明的是,如图3a所示,对传统的模拟存内计算原理进行介绍,在传统的CIM模拟计算架构中,MAC的计算延迟与数据精度密切相关。例如当输入精度是8位的时候,通常需要8个周期(即T0至T7)来完成MAC操作。在每个循环中,首先在交叉阵列的每一列中实现MAC操作;然后根据权对每列的MAC进行加权,并将他们相加获得LMAC(Local MAC)结果;最后在8个循环中获得8个LMAC结果,根据输入再次加权,将他们相加获得GMAC(全局MAC)。
其中,在图3a中,Bit-cell代表存储单元组;Weight0[0]代表第一列的第一个存储单元组的计算权重;Weight0[7]代表第八列的第一个存储单元组的计算权重;Weight1[0]代表第一列的第二个存储单元组的计算权重;Weight2[0]代表第一列的第三个存储单元组的计算权重;Weight i-1[0]代表第一列的第(i-1)个存储单元组的计算权重;Weight i[0]代表第一列的第i个存储单元组的计算权重;Weight1[7]代表第八列的第二个存储单元组的计算权重;Weight2[7]代表第八列的第三个存储单元组的计算权重;Weight i-1[7]代表第八列的第(i-1)个存储单元组的计算权重;Weight i[7]代表第八列的第i个存储单元组的计算权重;Input 0[0]~[7]代表第(1至8)列的第一个存储单元组的输入数据;Input 1[0]~[7]代表第(1至8)列的第二个存储单元组的输入数据;Input 2[0]~[7]代表第(1至8)列的第三个存储单元组的输入数据;Input i-1[0]~[7]代表第(1至8)列的第(i-1)个存储单元组的输入数据;Input i[0]~[7]代表第(1至8)列的第i个存储单元组的输入数据;ADC代表模拟数字转换器;TDC代表时间数字转换器。
其中,在图3a中,在第一周期T0中,MAC00表示输入数据Input0第0位与第一列第一个存储单元组的计算权重相乘加上输入数据Input1第0位与第一列第二个存储单元组的计算权重相乘……加上Input7第0位与第一列第八个存储单元组的计算权重;MAC70表示输入数据Input0第0位与第七列第一个存储单元组的计算权重相乘加上输入数据Input1第0位与第七列第二个存储单元组的计算权重相乘……加上Input7第0位与第七列第八个存储单元组的计算权重;图3a中未示出的MAC10至MAC60同理;LMAC0表示MAC00至MAC70按照一定的比重相加;在第二周期T1中,MAC01表示输入数据Input0第1位与第一列第一个存储单元组的计算权重相乘加上输入数据Input1第1位与第一列第二个存储单元组的计算权重相乘……加上Input7第1位与第一列第八个存储单元组的计算权重;MAC71表示输入数据Input0第1位与第七列第一个存储单元组的计算权重相乘加上输入数据Input1第1位与第七列第二个存储单元组的计算权重相乘……加上Input7第1位与第七列第八个存储单元组的计算权重;LMAC1表示MAC01至MAC71按照一定的比重相加;GMAC表示LMAC0至LMAC7按照一定的比重相加;图3a中的其余参数解释类似,本申请在此不再赘述。
然而,在本申请的类模拟存内计算原理如图3b所示,AladCIM架构MAC的计算延迟与累计次数有关系。如图3b所示,在第一个周期T0中,一列上只有一个位单元被激活,它将通过使用逻辑电路和输入数据相乘。其中,一个周期为一个存储单元组的计算时间,由此,对于一列存储单元阵列而言,其从第一个存储单元组计算到第十六个存储单元组共包括16个计算周期,即T0至T15。
在每个剩余周期中,将在前一周期中获得的MAC结果添加到该周期的MAC结果,以获得LMAC结果。最后,基于由列表示的权重对最后一个循环的LMAC结果进行加权,并且将它们相加以获得GMAC结果。
在图3b中,Bit-cell代表存储单元组;Weight0[0]代表第一列的第一个存储单元组的计算权重;Weight0[7]代表第八列的第一个存储单元组的计算权重;Weight1[0]代表第一列的第二个存储单元组的计算权重;Weight2[0]代表第一列的第三个存储单元组的计算权重;Weight i-1[0]代表第一列的第(i-1)个存储单元组的计算权重;Weight i[0]代表第一列的第i个存储单元组的计算权重;Weight1[7]代表第八列的第二个存储单元组的计算权重;Weight2[7]代表第八列的第三个存储单元组的计算权重;Weight i-1[7]代表第八列的第(i-1)个存储单元组的计算权重;Weight i[7]代表第八列的第i个存储单元组的计算权重;MAC Logic代表乘法累加逻辑操作单元;Input 0[7:0]代表第(1至8)列的第一个存储单元组的输入数据;Input 1[7:0]代表第(1至8)列的第二个存储单元组的输入数据;Input i 0[7:0]代表第(1至8)列的第i个存储单元组的输入数据。
在图3b中,在第一个周期T0中,MAC00为第一列的第一个存储单元组的乘积结果;MAC70为第八列的第一个存储单元组的乘积结果,图3b中未示出的MAC10至MAC60同理,本申请在此不再赘述。在第二个周期T1中,MAC01为第一列的第二个存储单元组的乘积结果;MAC71为第八列的第二个存储单元组的乘积结果,图3b中未示出的MAC11至MAC61同理,本申请在此不再赘述。LMAC01为第一列的第一个存储单元组的乘积结果和第一列的第二个存储单元组的乘积结果之和;LMAC71为第八列的第一个存储单元组的乘积结果和第八列的第二个存储单元组的乘积结果之和;图3b中未示出的LMAC11至LMAC61同理,本申请在此不再赘述。
在第i个周期Ti中,MAC0i为第一列的第i个存储单元组的乘积结果;MAC7i为第八列的第i个存储单元组的乘积结果;LMAC0i相当于第一列的第一个存储单元组的乘积结果至第一列的第i个存储单元组的乘积结果之和;LMAC7i相当于第八列的第一个存储单元组的乘积结果至第八列的第i个存储单元组的乘积结果之和;GMAC为将八列存储单元阵列的各存储单元组的乘积结果相加,并整理为图3b中示出的公式。
此外,本申请的存储单元组的数据输入精度为8位,由此,如图4所示,一个存储单元组包括8个存储单元(即比特单元),1个存储单元包含一个受控于字线(WL)信号的晶体管和一个MTJ(磁隧道结)。1bit数据以MTJ阻态的形式存储于其中,高阻态代表数据“1”,而低阻态代表数字“0”。在一个存储单元组中,第一个存储单元被称为“0输入转化单元”,并且其MTJ被永久设置为低阻态,而其他7个存储单元各存储了1bit权重数据。
在本实施例的一些可选方式中,如图2所示,所述存储单元阵列还包括位线和源线,所述位线和所述源线分别被平分为十六个相等的部分,其中:
所述存储单元阵列还包括位线和源线,所述位线和所述源线分别被平分为十六个相等的部分,其中:
所述位线包括第一分段位线BL0[0]、第二分段位线BL0[1]、第三分段位线、第四分段位线、第五分段位线、第六分段位线、第七分段位线、第八分段位线、第九分段位线、第十分段位线、第十一分段位线、第十二分段位线、第十三分段位线、第十四分段位线、第十五分段位线以及第十六分段位线BL0[15];
所述源线包括第一分段源线SL0[0]、第二分段源线SL0[1]、第三分段源线、第四分段源线、第五分段源线、第六分段源线、第七分段源线、第八分段源线、第九分段源线、第十分段源线、第十一分段源线、第十二分段源线、第十三分段源线、第十四分段源线、第十五分段源线以及第十六分段源线;
所述十六个存储单元组包括第一存储单元组、第二存储单元组、第三存储单元组、第四存储单元组、第五存储单元组、第六存储单元组、第七存储单元组、第八存储单元组、第九存储单元组、第十存储单元组、第十一存储单元组、第十二存储单元组、第十三存储单元组、第十四存储单元组、第十五存储单元组以及第十六存储单元组;
其中,第n存储单元组的一端与第n分段位线连接,第n存储单元组的另一端与第n分段源线连接,n为大于等于1且小于等于16的整数。
例如,所述第一存储单元组的一端与所述第一分段位线连接,所述第一存储单元组的另一端与所述第一分段源线连接;所述第二存储单元组的一端与所述第二分段位线连接,所述第二存储单元组的另一端与所述第二分段源线连接;所述第三存储单元组的一端与所述第三分段位线连接,所述第三存储单元组的另一端与所述第三分段源线连接;所述第四存储单元组的一端与所述第四分段位线连接,所述第四存储单元组的另一端与所述第四分段源线连接;所述第五存储单元组的一端与所述第五分段位线连接,所述第五存储单元组的另一端与所述第五分段源线连接;所述第六存储单元组的一端与所述第六分段位线连接,所述第六存储单元组的另一端与所述第六分段源线连接……所述第十六存储单元组的一端与所述第十六分段位线连接,所述第十六存储单元组的另一端与所述第十六分段源线连接,其余存储单元组与分段源线、分段位线的连接,本申请在此不再赘述。
为了进一步降低AladCIM电路结构在执行全数字MAC操作的时候的访问时间,本申请设计了输入稀疏感知加速方案,如图2所示,输入稀疏感知模块包括输入寄存器单元、输入检测单元以及输入滤波单元。
在本实施例的一些可选方式中,如图2所示,所述输入稀疏感知模块的输入端包括:第一存储单元组数据输入端IN0[7:0]、第二存储单元组数据输入端IN1[7:0]、第三存储单元组数据输入端IN2[7:0]、第四存储单元组数据输入端IN3[7:0]、第五存储单元组数据输入端IN4[7:0]、第六存储单元组数据输入端IN5[7:0]、第七存储单元组数据输入端IN6[7:0]、第八存储单元组数据输入端IN7[7:0]、第九存储单元组数据输入端IN8[7:0]、第十存储单元组数据输入端IN9[7:0]、第十一存储单元组数据输入端IN10[7:0]、第十二存储单元组数据输入端IN11[7:0]、第十三存储单元组数据输入端IN12[7:0]、第十四存储单元组数据输入端IN13[7:0]、第十五存储单元组数据输入端IN14[7:0]以及第十六存储单元组数据输入端IN15[7:0];
所述输入稀疏感知模块的输出端包括第一输入数据检测信号输出端DE0、第二输入数据检测信号输出端DE1、第三输入数据检测信号输出端、第四输入数据检测信号输出端、第五输入数据检测信号输出端、第六输入数据检测信号输出端、第七输入数据检测信号输出端、第八输入数据检测信号输出端、第九输入数据检测信号输出端、第十输入数据检测信号输出端、第十一输入数据检测信号输出端、第十二输入数据检测信号输出端、第十三输入数据检测信号输出端、第十四输入数据检测信号输出端、第十五输入数据检测信号输出端以及第十六输入数据检测信号输出端DE15,其中,第n输入数据检测信号输出端用于输出第n输入数据检测信号。
例如,第一输入数据检测信号输出端DE0用于输出第一输入数据检测信号;第二输入数据检测信号输出端DE1用于输出第二输入数据检测信号;第三输入数据检测信号输出端用于输出第三输入数据检测信号;第四输入数据检测信号输出端用于输出第四输入数据检测信号;第五输入数据检测信号输出端用于输出第五输入数据检测信号;第六输入数据检测信号输出端用于输出第六输入数据检测信号;第七输入数据检测信号输出端用于输出第七输入数据检测信号;第八输入数据检测信号输出端用于输出第八输入数据检测信号;第九输入数据检测信号输出端用于输出第九输入数据检测信号;第十输入数据检测信号输出端用于输出第十输入数据检测信号;第十一输入数据检测信号输出端用于输出第十一输入数据检测信号;第十二输入数据检测信号输出端用于输出第十二输入数据检测信号;第十三输入数据检测信号输出端用于输出第十三输入数据检测信号;第十四输入数据检测信号输出端用于输出第十四输入数据检测信号;第十五输入数据检测信号输出端用于输出第十五输入数据检测信号;第十六输入数据检测信号输出端用于输出第十六输入数据检测信号。
在本实施例的一些可选方式中,如图2所示,所述输入稀疏感知模块包括输入寄存器单元、输入检测单元以及输入滤波单元。
首先,对输入稀疏感知模块的输入寄存器单元进行介绍:
所述输入寄存器单元的输入端为所述第一存储单元组数据输入端IN0[7:0]、第二存储单元组数据输入端IN1[7:0]、第三存储单元组数据输入端IN2[7:0]、第四存储单元组数据输入端IN3[7:0]、第五存储单元组数据输入端IN4[7:0]、第六存储单元组数据输入端IN5[7:0]、第七存储单元组数据输入端IN6[7:0]、第八存储单元组数据输入端IN7[7:0]、第九存储单元组数据输入端IN8[7:0]、第十存储单元组数据输入端IN9[7:0]、第十一存储单元组数据输入端IN10[7:0]、第十二存储单元组数据输入端IN11[7:0]、第十三存储单元组数据输入端IN12[7:0]、第十四存储单元组数据输入端IN13[7:0]、第十五存储单元组数据输入端IN14[7:0]以及第十六存储单元组数据输入端IN15[7:0];其中,第n存储单元组数据输入端用于输入所述第n存储单元组的输入数据;所述输入寄存器单元的输出端连接所述输入检测单元。
其次,对输入稀疏感知模块的输入检测单元进行介绍:
所述输入检测单元包括:第一输入检测子单元、第二输入检测子单元、第三输入检测子单元、第四输入检测子单元、第五输入检测子单元、第六输入检测子单元、第七输入检测子单元、第八输入检测子单元、第九输入检测子单元、第十输入检测子单元、第十一输入检测子单元、第十二输入检测子单元、第十三输入检测子单元、第十四输入检测子单元、第十五输入检测子单元以及第十六输入检测子单元;
其中,所述第n输入检测子单元的第一输入端用于输入所述第n存储单元组的输入数据,所述第n存储单元组的输入数据包括:第n第一比特数据、第n第二比特数据、第n第三比特数据、第n第四比特数据、第n第五比特数据、第n第六比特数据、第n第七比特数据以及第n第八比特数据;
所述第n输入检测子单元的输出端为所述第n输入数据检测信号输出端。
在本实施例的一些可选方式中,所述第n输入检测子单元的第二输入端为ENCS信号端,所述ENCS信号端用于输入ENCS信号。
在一个具体示例中,如图2所示,当n=1时:
所述第一输入检测子单元的第一输入端用于输入所述第一存储单元组的输入数据,所述第一输入检测子单元的第二输入端为ENCS信号端;所述第一存储单元组的输入数据包括:第一第一比特数据IN0[0]、第一第二比特数据IN0[1]、第一第三比特数据IN0[2]、第一第四比特数据、第一第五比特数据、第一第六比特数据、第一第七比特数据以及第一第八比特数据IN0[7];所述第一输入检测子单元的输出端为所述第一输入数据检测信号输出端DE0。
在又一个具体示例中,当n=2时:
所述第二输入检测子单元的第一输入端用于输入所述第二存储单元组的输入数据,所述第二输入检测子单元的第二输入端为ENCS信号端;所述第二存储单元组的输入数据包括:第二第一比特数据IN1[0]、第二第二比特数据IN1[1]、第二第三比特数据IN1[2]、第二第四比特数据、第二第五比特数据、第二第六比特数据、第二第七比特数据以及第二第八比特数据IN1[7];所述第二输入检测子单元的输出端为所述第二输入数据检测信号输出端DE1。
依此类推,n的其他情况类似,本申请在此不再赘述。
需要说明的是,在本申请中,第一输入检测子单元至第十六检测子单元的电路结构是相同的,即包括相同结构和相同数量的元器件,如图2所示,对第一输入检测子单元的结构进行说明,其中:
所述第一输入检测子单元包括:第一三输入或门、第二三输入或门、第一二输入或门、第三三输入或门、第一二输入与门、第二二输入与门、第一非门、第三二输入与门、第一NMOS管、第二NMOS管、第一PMOS管、第三NMOS管以及第一延迟子单元。
其中,所述第一三输入或门的第一输入端用于输入所述第一第一比特数据IN0[0];所述第一三输入或门的第二输入端用于输入所述第一第二比特数据IN0[1];所述第一三输入或门的第三输入端用于输入所述第一第三比特数据IN0[2];所述第一三输入或门的输出端用于输出所述第一第一比特数据IN0[0]、所述第一第二比特数据IN0[1]以及所述第一第三比特数据IN0[2]的第一或结果;
所述第二三输入或门的第一输入端用于输入所述第一第四比特数据;所述第二三输入或门的第二输入端用于输入所述第一第五比特数据;所述第二三输入或门的第三输入端用于输入所述第一第六比特数据;所述第二三输入或门的输出端用于输出所述第一第四比特数据、所述第一第五比特数据以及所述第一第六比特数据的第二或结果;
所述第一二输入或门的第一输入端用于输入所述第一第七比特数据;所述第一二输入或门的第二输入端用于输入所述第一第八比特数据IN0[7];所述第一二输入或门的输出端用于输出所述第一第七比特数据和所述第一第八比特数据IN0[7]的第三或结果;
所述第三三输入或门的第一输入端与所述第一三输入或门的输出端连接;所述第三三输入或门的第二输入端与所述第二三输入或门的输出端连接;第三三输入或门的第三输入端与所述第一二输入或门的输出端连接;所述第三三输入或门的输出端用于输出所述第一或结果、所述第二或结果和所述第三或结果的第四或结果。
其中,所述第一二输入与门的第一输入端与所述第三三输入或门的输出端连接,所述第一二输入与门的第二输入端与所述ENCS信号端连接,所述第一二输入与门的输出端用于输出所述第四或结果与所述ENCS信号的第一与结果;
所述第二二输入与门的第一输入端与第一ENID信号端连接,其中,所述第一ENID信号端用于输入第一ENID信号,所述第二二输入与门的第二输入端与所述第一二输入与门的输出端连接,所述第二二输入与门的输出端用于输出所述第一ENID信号与所述第一与结果的第二与结果;
所述第三二输入与门的第一输入端与所述第一非门的输出端连接,其中,所述第一非门的输入端与所述第一二输入与门的输出端连接,所述第一非门的输出端用于输出所述第一与结果的第一非结果;所述第三二输入与门的第二输入端与所述第一ENID信号端连接,所述第三二输入与门的输出端用于输出所述第一非结果与所述第一ENID信号的第三与结果。
其中,所述第一NMOS管的栅极与所述第一非门的输出端连接,所述第一NMOS管的第一端与所述第三二输入与门的输出端连接,所述第一NMOS管的第二端与所述第一ENID信号端连接;
所述第二NMOS管的栅极与所述第三NMOS管的栅极连接,所述第二NMOS管的第一端与所述第三二输入与门的输出端连接,所述第二NMOS管的第二端与所述第一ENID信号端连接;
所述第一PMOS管的栅极与所述第一非门的输出端连接,所述第一PMOS管的第一端与所述第一延迟子单元的第一端连接,所述第一PMOS管的第二端与所述第一ENID信号端连接;
所述第三NMOS管的栅极与所述第二NMOS管的栅极连接,所述第三NMOS管的第一端与所述第一延迟子单元的第一端连接,所述第三NMOS管的第二端与所述第一ENID信号端连接;
所述第一延迟子单元的第二端与所述第二二输入与门的输出端连接,其中,所述第二二输入与门的输出端为所述第一输入数据检测信号输出端DE0,所述第一输入数据检测信号为所述第二与结果。
最后,对输入稀疏感知模块的输入滤波单元进行介绍,如图2所示:
所述输入滤波单元包括第四NMOS管、第五NMOS管、第六NMOS管、第七NMOS管、第八NMOS管、第九NMOS管、第十NMOS管、第十一NMOS管、第十二NMOS管、第十三NMOS管、第十四NMOS管、第十五NMOS管、第十六NMOS管、第十七NMOS管、第十八NMOS管以及第十九NMOS管、第四三输入或门、第五三输入或门、第六三输入或门、第七三输入或门、第二二输入或门、第三二输入或门、第八三输入或门、第九三输入或门以及第四二输入或门。
其中,所述第m NOMS管的栅极与第n输入数据检测信号输出端连接,所述第m NMOS管的第一端与第n输入检测子单元的第一输入端连接,所述第m NMOS管的第二端与所述寄存器累加模块连接,其中,所述m=n+3。
在一个具体示例中,当n=1时,所述第四NMOS管的栅极与第一输入数据检测信号输出端连接,所述第四NMOS管的第一端与第一输入检测子单元的第一输入端连接,所述第四NMOS管的第二端与所述寄存器累加模块连接;
当n=2时,所述第五NMOS管的栅极与第二输入数据检测信号输出端连接,所述第五NMOS管的第一端与第二输入检测子单元的第一输入端连接,所述第五NMOS管的第二端与所述寄存器累加模块连接;
当n=16时,所述第十九NMOS管的栅极与第十六输入数据检测信号输出端连接,所述第十九NMOS管的第一端与第十六输入检测子单元的第一输入端连接,所述第十九NMOS管的第二端与所述寄存器累加模块连接。
其中,所述第四三输入或门的第一输入端与所述第一输入检测子单元的第一输入端连接,所述第四三输入或门的第二输入端与所述第二输入检测子单元的第一输入端连接,所述第四三输入或门的第三输入端与所述第三输入检测子单元的第一输入端连接,所述第四三输入或门的输出端用于输出第一输入数据检测信号、第二输入数据检测信号以及第二输入数据检测信号的第五或结果;
所述第五三输入或门的第一输入端与所述第四输入检测子单元的第一输入端连接,所述第五三输入或门的第二输入端与所述第五输入检测子单元的第一输入端连接,所述第五三输入或门的第三输入端与所述第六输入检测子单元的第一输入端连接,所述第五三输入或门的输出端用于输出第四输入数据检测信号、第五输入数据检测信号以及第六输入数据检测信号的第六或结果;
所述第六三输入或门的第一输入端与所述第七输入检测子单元的第一输入端连接,所述第六三输入或门的第二输入端与所述第八输入检测子单元的第一输入端连接,所述第六三输入或门的第三输入端与所述第九输入检测子单元的第一输入端连接,所述第六三输入或门的输出端用于输出第七输入数据检测信号、第八输入数据检测信号以及第九输入数据检测信号的第七或结果;
所述第七三输入或门的第一输入端与所述第十输入检测子单元的第一输入端连接,所述第七三输入或门的第二输入端与所述第十一输入检测子单元的第一输入端连接,所述第七三输入或门的第三输入端与所述第十二输入检测子单元的第一输入端连接,所述第七三输入或门的输出端用于输出第十输入数据检测信号、第十一输入数据检测信号以及第十二输入数据检测信号的第八或结果;
所述第二二输入或门的第一输入端与所述第十三输入检测子单元的第一输入端连接,所述第二二输入或门的第二输入端与所述第十四输入检测子单元的第一输入端连接,所述第二二输入或门的输出端用于输出第十三输入数据检测信号和第十四输入数据检测信号的第九或结果;
所述第三二输入或门的第一输入端与所述第十五输入检测子单元的第一输入端连接,所述第三二输入或门的第二输入端与所述第十六输入检测子单元的第一输入端连接,所述第三二输入或门的输出端用于输出第十五输入数据检测信号和第十六输入数据检测信号的第十或结果。
其中,所述第八三输入或门的第一输入端与所述第四三输入或门的输出端连接,所述第八三输入或门的第二输入端与所述第五三输入或门的输出端连接,所述第八三输入或门的第三输入端与所述第六三输入或门的输出端连接,所述第八三输入或门的输出端用于输出所述第五或结果、所述第六或结果以及所述第八或结果的第十一或结果;
所述第九三输入或门的第一输入端与所述第七三输入或门的输出端连接,所述第九三输入或门的第二输入端与所述第二二输入或门的输出端连接,所述第九三输入或门的第三输入端与所述第三三输入或门的输出端连接,所述第九三输入或门的输出端用于输出所述第八或结果、所述第九或结果以及所述第十一或结果的第十二或结果;
所述第四二输入或门的第一输入端与所述第八三输入或门的输出端连接,所述第四二输入或门的第二输入端与所述第九三输入或门的输出端连接,所述第四二输入或门的输出端用于输出所述第十一或结果和所述第十二或结果的第十三或结果,其中,所述第四二输入或门的输出端与所述寄存器累加模块连接,并将所述第十三或结果作为DESUM信号。
以上为本申请的输入稀疏感知模块,接下来对其工作原理做进一步介绍,如下:
输入寄存器电路由DFFs构成,用于存储16个8比特的输入数据。输入检测电路根据输入数据产生DEi和ENIDi信号。输入的8个数据执行OR逻辑。如果8位输入数据都为“0”则OR逻辑的结果为“0”,反之结果为“1”,结果与EDID进行AND操作,当结果“1”时,DEi输出ENID的结果,此时执行当结果为“0”的时候,DEi输出为“0”。例如,当第一存储单元组的输入数据IN0[7:0]不全为“0”,因此DE0为“1”,执行IN0[7:0]和Weigh0[0]的MAC操作,与此同时ENID1输出ENID的延迟信号delay。再例如,当第二存储单元组的输入数据IN1[7:0]全部为0,则DE1为“0”,VFRC不能将数据传输到CL上,则无法进行MAC操作,与此同时ENID2将直接输出ENID1的数据,因此会直接跳过IN1[7:0]和Weigh1[0]的MAC操作,如图5所示,直接跳过全为0的输入数据,不需要消耗任何时间和能量,且缩短了计算时间。从图5中能够看出,输入数据IN1、IN2、IN7、IN8以及IN14全为0,在进行计算时,可以直接跳过,即图5中虚线框圈出的部分不进行计算,由此不消耗额外的计算资源,从而在乘法累加操作中能够大幅提升访问时间,有效降低电路延迟和能耗。
输入滤波单元是将非零的输入数据传输到寄存器累加电路上。相应的输入数据通过NMOS晶体管(即第四NMOS管至第十九NMOS管)连接,例如IN0[0]数据通过DE0控制的NMOS晶体管连接到所有输入数据的0位,避免了0输入数据的输入,从而使得计算准确,同时对所有DEi(即DE0~DE15)执行OR逻辑产生DESUM信号。
参照图6,其示出了输入稀疏感知模块的瞬态仿真示意图,从图6中能够看出,DESUM信号的执行用时在2.5ns左右,相比于传统用时的3.2ns,本申请技术方案由于能够跳过输入为0的输入数据,由此,相比于传统的需要计算每个输入数据的乘积结果而言,大幅缩小了执行时间。
为了进一步提升读取性能,本申请还设计了电压跟随读取模块,接下来,如图7所示,对本申请电压跟随读取模块(VFRC)进行介绍,具体的:
电压跟随读取模块包括:第一电压跟随读取单元VFRC0[0]、第二电压跟随读取单元VFRC0[1]、第三电压跟随读取单元、第四电压跟随读取单元、第五电压跟随读取单元、第六电压跟随读取单元、第七电压跟随读取单元VFRC0[1]、第八电压跟随读取单元、第九电压跟随读取单元、第十电压跟随读取单元、第十一电压跟随读取单元、第十二电压跟随读取单元、第十三电压跟随读取单元、第十四电压跟随读取单元、第十五电压跟随读取单元以及第十六电压跟随读取单元VFRC0[15];
其中,第n电压跟随读取单元的一端与第n分段位线连接,n为大于等于1且小于等于16的整数。
进一步,所述第n电压跟随读取单元的输入端包括:第n分段位线输入端和第n参考电压输入端,其中,所述第n分段位线输入端用于连接所述第n分段位线,所述第n参考电压输入端用于输入第n参考电压;
所述第n电压跟随读取单元的输出端用于输出所述第n存储单元组的计算权重(例如,Weight n[0])。
在一个具体示例中,当n=1时:
所述第一电压跟随读取单元的输入端包括:所述ENCS信号端、第一分段位线输入端和第一参考电压输入端,其中,所述第一分段位线输入端用于连接所述第一分段位线,所述第一参考电压输入端用于输入第一参考电压;
所述第一电压跟随读取单元的输出端用于输出所述第一存储单元组的计算权重。
在又一个具体示例中,当n=2时:
所述第二电压跟随读取单元的输入端包括:所述ENCS信号端、第二分段位线输入端和第二参考电压输入端,其中,所述第二分段位线输入端用于连接所述第二分段位线,所述第二参考电压输入端用于输入第二参考电压;
所述第二电压跟随读取单元的输出端用于输出所述第二存储单元组的计算权重。
依此类推,n的其他情况类似,本申请在此不再赘述。
需要说明的是,所述第一电压跟随读取单元VFRC0[0]至所述第十六电压跟随读取单元VFRC0[15]的电路结构相同,即电路元器件的种类和数量相同。
如图7所示,以第一电压跟随读取单元为例对电路结构进行介绍,具体的:
所述第一电压跟随读取单元包括第二PMOS管、第三PMOS管、第四PMOS管、第五PMOS管、第二十NMOS管以及第二十一NMOS管,其中:
所述第二PMOS管的栅极与所述第三PMOS管的栅极连接,所述第二PMOS管的第一端用于连接电源,所述第二PMOS管的第二端用于连接所述第四PMOS管的第一端;
所述第三PMOS管的第一端用于连接电源,所述第三PMOS管的第二端用于连接所述第五PMOS管的第一端,所述第二PMOS管的栅极和所述第三PMOS管的栅极与所述ENCS信号端连接;
所述第四PMOS管的栅极与所述第五PMOS管的栅极连接,所述第四PMOS管的第二端与所述第二十NMOS管的第一端连接;
所述第五PMOS管的第二端与所述第二十一NMOS管的第一端连接,且将所述第五PMOS管的第二端作为所述第一电压跟随读取单元的输出端,所述第四PMOS管的栅极和所述第五PMOS管的栅极连接至所述第二十NMOS管的第一端;
所述第二十NMOS管的栅极为所述第一分段位线输入端,所述第二十NMOS管的第二端接地;
所述第二十一NMOS管的栅极为所述第一参考电压输入端,所述第二十一NMOS管的第二端接地。
在此,根据图8,对前述的第一电压跟随读取单元的电路结构进行总结,其中,Voltage-Following Read Cell代表电压跟随读取电路,第一电压跟随读取模块由两个部分构成,一部分是两个NMOS晶体管和两个PMOS晶体管(即二十NMOS管、第二十一NMOS管、第四PMOS管以及第五PMOS管)构成的传统放大电路;另一部分为两个PMOS管(即第二PMOS管和第三PMOS管)构成的控制电路。
在开始使用电压跟随读取电路读取位单元中MTJ的数据的时候,位线BL首先被预充电到VDD,并且EN(相当于前述的ENCS信号)也被激活。因为输入电压大于参考电压(Vref),此时的输出是“1”。随后字线被激活,BL上的电压(VBL)开始放电,并且由于MTJ的状态不同呈现出不一样的放电速度(参考图9的VFRC的瞬态仿真结果)。当MTJ是低阻态的时候,也就是MTJ的状态是“0”的时候,位线的电压下降的更快,被设置为VL,否则被设置为VH,参考电压被设置在VH—VL之间进行区分。
也就是说,在字线被激活的一段时间内,如果输入电压小于参考电压的话,电压跟随读取电路的输出电压Output随着位线电压下降到低电压状态“0”;如果输入电压输出大于参考电压的,电压跟随读取电路的输出电压Output随着位线电压增加到高电压状态“1”。
应当理解,在本申请中,根据电压跟随读取电路的输出电压Output确定各存储单元组的计算权重,当存储单元组对应的电压跟随读取单元的输出电压为高电压状态“1”时间,表示该存储单元组的计算权重为1;当存储单元组对应的电压跟随读取单元的输出电压为低电压“0”时,表示该存储单元组的计算权重为0,由此,能够确定每列存储单元阵列上的各存储单元组的计算权重,例如,确定第一列存储单元阵列的第一存储单元组至第十六存储单元组的计算权重:Weight 0[0]~Weight 15[0]等。
此外,CBL的寄生电容越小,VBL下降的越快;如果寄生电容较小,电压的下降速度过快的话,那么在放大过程中,应该高于参考电压的VBL可能会下降到参考电压以下,从而导致读取错误。为此,如图10所示,本申请的VFRC电路可以通过改变WL的激活时间来适应具有不同寄生电容的CBL,使得读取更加准确。其中,在图10中能够看出,其列举了四种具有不同寄生电容的CBL,同时示出了相应的激活时间,本申请在此不再详述。
在本实施例的一些可选方式中,如图4所示,所述第n分段位线和所述第n分段源线之间还包括第n第一分段晶体管和第n第二分段晶体管,其中:
所述第n第一分段晶体管的栅极和所述第n第二分段晶体管的栅极之间传输存内计算信号ENCIM;所述第n分段位线和所述第n分段源线的分离和连接受控于所述第n第一分段晶体管和所述第n第二分段晶体管。
在本实施例的一些可选方式中,所述存内计算电路还包括预充晶体管,所述预充晶体管的第一端用于输入PL信号,所述预充晶体管的第二端用于连接电源,所述预充晶体管的第三端用于连接所述位线,其中:
所述位线通过受所述PL信号控制的所述预充晶体管预充至高电位;
当所述位线未预充完成时,所述第n第一分段晶体管和所述第n第二分段晶体管在所述存内计算信号ENCIM的控制下全部打开,将所述第n分段位线和所述第n分段源线连接;
当所述位线预充完成后,所述PL信号断开所述电源和所述位线,所述第n第一分段晶体管和所述第n第二分段晶体管在所述存内计算信号ENCIM的控制下至少关闭一个,将所述第n分段位线和所述第n分段源线分离。
在本实施例的一些可选方式中,如图4所示,所述存内计算电路还包括设置在所述第n电压跟随读取单元和所述第n第一分段晶体管之间的第n控制晶体管,其中:
所述第n控制晶体管的栅极与所述第n输入数据检测信号输出端连接,所述第n控制晶体管的栅极用于输入所述第n输入数据检测信号;
所述第n控制晶体管的第一端与所述第n电压跟随读取单元的输出端连接;
所述第n控制晶体管的第二端与该存储单元阵列的CL计算线连接,其中,所述CL计算线用于传输CL信号。
在一个具体示例中,当n=1时:
所述存内计算电路还包括设置在所述第一电压跟随读取单元和所述第一第一分段晶体管之间的第一控制晶体管,其中:
所述第一控制晶体管的栅极与所述第一输入数据检测信号输出端连接,所述第一控制晶体管的栅极用于输入所述第一输入数据检测信号;
所述第一控制晶体管的第一端与所述第一电压跟随读取单元的输出端连接;
所述第一控制晶体管的第二端与该存储单元阵列的CL计算线连接,其中,所述CL计算线用于传输CL信号。
在又一个具体示例中,当n=2时:所述存内计算电路还包括设置在所述第二电压跟随读取单元和所述第二第一分段晶体管之间的第二控制晶体管,其中:
所述第二控制晶体管的栅极与所述第二输入数据检测信号输出端连接,所述第二控制晶体管的栅极用于输入所述第二输入数据检测信号;
所述第二控制晶体管的第一端与所述第二电压跟随读取单元的输出端连接;
所述第二控制晶体管的第二端与该存储单元阵列的CL计算线连接,其中,所述CL计算线用于传输CL信号。
以此类推,其他n的情况与之类似,本申请在此不再赘述。
接下来,对本申请的寄存器累加模块进行介绍,如图7所示,所述寄存器累加模块包括十三个输入端和十二个输出端,
其中,所述十三个输入端分别为:第一累加数据输入端、第二累加数据输入端、第三累加数据输入端、第四累加数据输入端、第五累加数据输入端、第六累加数据输入端、第七累加数据输入端、第八累加数据输入端、CL信号输入端、所述ENCS信号端、R输入端、S输入端以及DESUM信号输入端;
其中,所述存内计算结果为12位二进制数,所述第十二个输出端分别用于输出所述存内计算结果的其中一位。
在本实施例的一些可选方式中,所述第一累加数据输入端用于输入第n第一比特数据;所述第二累加数据输入端用于输入第n第二比特数据;所述第三累加数据输入端用于输入第n第三比特数据;所述第四累加数据输入端用于输入第n第四比特数据;所述第五累加数据输入端用于输入第n第五比特数据;所述第六累加数据输入端用于输入第n第六比特数据;所述第七累加数据输入端用于输入第n第七比特数据;所述第八累加数据输入端用于输入第n第八比特数据;
所述CL信号输入端与所述CL计算线连接,将所述CL信号输入所述CL信号输入端;所述DESUM信号输入端与所述第四二输入或门的输出端连接,所述DESUM信号输入端用于输入所述DESUM信号,DESUM信号实际上为DE0至DE15的或结果。
在本实施例的一些可选方式中,所述寄存器累加模块包括八个数据选择器、十二个输出寄存器以及十二个全加器,其中:所述八个数据选择器的第二端均接地,所述八个数据选择器的第三端均连接SC信号端;
当SC信号为1时,所述八个数据选择器的第一端分别用于输入第n第一比特数据、第n第二比特数据、第n第三比特数据、第n第四比特数据、第n第五比特数据、第n第六比特数据、第n第七比特数据以及第n第八比特数据;
当SC信号为0时,所述八个数据选择器的第一端分别用于输入0;所述八个数据选择器的第四端与全加器连接。
在本实施例的一些可选方式中,所述十二个全加器包括第一全加器至第十二全加器,所述八个数据选择器包括第一数据选择器至第八数据选择器,其中:
第p数据选择器的第四端与第p全加器的B输入端连接,p为大于等于1且小于等于8的整数;第九全加器的B输入端至第十二全加器的B输入端接地。
在一个具体示例中,即第一数据选择器的第四端与第一全加器的B输入端连接;第二数据选择器的第四端与第二全加器的B输入端连接;第三数据选择器的第四端与第三全加器的B输入端连接……第八数据选择器的第四端与第八全加器的B输入端连接。
所述十二个输出寄存器包括第一输出寄存器至第十二输出寄存器,其中,所述第一输出寄存器用于输出所述存内计算结果的最高位,所述第十二输出寄存器用于输出所述存内计算结果的最低位。
在本实施例的一些可选方式中,所述寄存器累加模块还包括第一三输入与门和第二非门,其中:所述第一三输入与门的第一输入端为所述CL信号输入端,所述第一三输入与门的第二输入端为所述DESUM信号输入端,所述第一三输入与门的第三输入端为所述ENCS信号端,所述第一三输入与门的输出端用于输出所述CL信号、所述DESUM信号以及所述ENCS信号的第四与结果,并将所述第四与结果作为所述SC信号的值;
所述第二非门的输入端与所述第一三输入与门的输出端连接,所述第二非门的输出端用于输出所述第四与结果的第二非结果,并将所述第二非结果作为SCB信号的值,其中,所述SCB信号分别与第一输出寄存器的时钟输入端至第十二输出寄存器的时钟输入端连接;所述R输入端分别连接至所述第一输出寄存器至所述第十二输出寄存器,所述S输入端分别连接至所述第一输出寄存器至所述第十二输出寄存器。
其中,图11示出了位线BL信号、DE0-DE15信号、CLi信号、SC信号、SCB信号、字线WL信号、S信号、R信号、预充PL信号、ENCS信号以及ENCIM信号在执行MAC操作时的瞬态仿真时序图.
由此,结合图11和上述的分离位线技术,实际上本申请提出的是一个基于分离位线技术的存内计算电路结构,位线被分成16个部分,每个部分有八个比特单元。位线和电源线(Source line,SL)通过NMOS晶体管连接,且通过信号ENCIM信号控制。BL每个部分通过VFRC读取执行计算的单元的结果,VFRCs的输出与计算线(Computing line,CL)通过DEi信号控制的NMOS晶体管连接。在进行乘法累加操作(multiply-and-accumulate,MAC)之前,ENCIM和ENCS为高电平,使得分段BL连接。此时,通过PLi信号通过PMOS晶体管将BL预充电到VDD。然后,ENCIM变成低电平,将位线分离进入计算模式。分段位线技术使得BL上的寄生电容也会平均分配。之后,BL上的第一段的VFRCi[0]输出通过激活的DE0信号传输到CLi。
例如,当VFRC[0]的输出“0”传输到CLi上,在寄存器累加电路当中,CLi,DE0和ENCS之间执行AND操作,如果在DEi激活期间,CLi处于“0”,则SC信号为“0”,这使得,全加器FA关闭,DFF处于原始状态,即寄存器累加电路不工作。相反,如果CLi为“1”的话,则当DEi被激活期间VFRC[1]的输出“1”转移到CLi信号上,此时SC信号为“1”,使得寄存器累加电路工作。
此时FA链对输入数据和DFF中的数据执行加法运算。SCB是SC经过反相器(即第二非门)的信号,当SC是下降沿的时候,SCB信号产生上升沿,用作上升沿触发DFF的Clk信号。当DE0激活结束的时候,DFF将记录FA链上生成的结果。通过上述原理,分段BL的VFRC的输出数据被顺序地传输到CLi,在寄存器累加电路中对输入数据执行加法和寄存器操作,从而在激活DE0到DE15之后实现对8位输入数据的16次权重累加。
在本实施例的一些可选方式中,所述预充晶体管为PMOS,所述控制晶体管以及所述分段晶体管为NMOS,所述预充晶体管的第一端为栅极,所述预充晶体管的第二端为源极或漏极中的一个,所述预充晶体管的第三端为源极或漏极中的另一个。
需要说明的是,受限于附图的篇幅,本申请前述中一些重复的逻辑门部件以及MOS管部件等,在附图中被省略。
综上,本申请提供的一种用于非易失性随机存储器的存内计算电路,一方面,通过设计电压跟随读取模块,并将其运用到分段位线的每个部分,实现并行读取,并且电压跟随读取模块能够降低MTJ(磁隧道结)的读取错误率;另一方面,对位线提出了一个类似于模拟CIM的超快全数字MAC操作,逐段顺序计算,实现了权重稀疏感知;再一方面,设计输入稀疏感知模块实现输入稀疏感知加速,从而在乘法累加操作中能够大幅提升访问时间,有效降低电路延迟和能耗。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种用于非易失性随机存储器的存内计算电路,其特征在于,所述非易失性随机存储器包括N列存储单元阵列,每个所述存储单元阵列包括十六个存储单元组,每个所述存储单元组包括八个比特单元;所述存内计算电路包括:寄存器累加模块、电压跟随读取模块和输入稀疏感知模块,其中:
所述输入稀疏感知模块用于检测各所述存储单元组的输入数据是否为0,并跳过为0的输入数据,其中,所述输入数据为八位比特数据,所述八位比特数据与所述八个比特单元一一对应;
所述电压跟随读取模块用于读取每列存储单元阵列上的各所述存储单元组的计算权重,其中,所述电压跟随读取模块与所述存储单元组一一对应;
所述寄存器累加模块用于根据所述计算权重,确定每列存储单元阵列上的输入数据不为0的存储单元组的乘法结果并进行累加计算,得到该列存储单元阵列的存内计算结果,其中,所述寄存器累加模块与所述存储单元阵列一一对应。
2.根据权利要求1所述的存内计算电路,其特征在于,所述存储单元阵列还包括位线和源线,所述位线和所述源线分别被平分为十六个相等的部分,其中:
所述位线包括第一分段位线、第二分段位线、第三分段位线、第四分段位线、第五分段位线、第六分段位线、第七分段位线、第八分段位线、第九分段位线、第十分段位线、第十一分段位线、第十二分段位线、第十三分段位线、第十四分段位线、第十五分段位线以及第十六分段位线;
所述源线包括第一分段源线、第二分段源线、第三分段源线、第四分段源线、第五分段源线、第六分段源线、第七分段源线、第八分段源线、第九分段源线、第十分段源线、第十一分段源线、第十二分段源线、第十三分段源线、第十四分段源线、第十五分段源线以及第十六分段源线;
所述十六个存储单元组包括第一存储单元组、第二存储单元组、第三存储单元组、第四存储单元组、第五存储单元组、第六存储单元组、第七存储单元组、第八存储单元组、第九存储单元组、第十存储单元组、第十一存储单元组、第十二存储单元组、第十三存储单元组、第十四存储单元组、第十五存储单元组以及第十六存储单元组;
其中,第n存储单元组的一端与第n分段位线连接,第n存储单元组的另一端与第n分段源线连接,n为大于等于1且小于等于16的整数。
3.根据权利要求2所述的存内计算电路,其特征在于,
所述输入稀疏感知模块的输入端包括:第一存储单元组数据输入端、第二存储单元组数据输入端、第三存储单元组数据输入端、第四存储单元组数据输入端、第五存储单元组数据输入端、第六存储单元组数据输入端、第七存储单元组数据输入端、第八存储单元组数据输入端、第九存储单元组数据输入端、第十存储单元组数据输入端、第十一存储单元组数据输入端、第十二存储单元组数据输入端、第十三存储单元组数据输入端第十四存储单元组数据输入端第十五存储单元组数据输入端以及第十六存储单元组数据输入端;
所述输入稀疏感知模块的输出端包括第一输入数据检测信号输出端、第二输入数据检测信号输出端、第三输入数据检测信号输出端、第四输入数据检测信号输出端、第五输入数据检测信号输出端、第六输入数据检测信号输出端、第七输入数据检测信号输出端、第八输入数据检测信号输出端、第九输入数据检测信号输出端、第十输入数据检测信号输出端、第十一输入数据检测信号输出端、第十二输入数据检测信号输出端、第十三输入数据检测信号输出端、第十四输入数据检测信号输出端、第十五输入数据检测信号输出端以及第十六输入数据检测信号输出端,其中,第n输入数据检测信号输出端用于输出第n输入数据检测信号;
所述输入稀疏感知模块包括输入寄存器单元、输入检测单元以及输入滤波单元,其中:
所述输入寄存器单元的输入端为所述第一存储单元组数据输入端、第二存储单元组数据输入端、第三存储单元组数据输入端、第四存储单元组数据输入端、第五存储单元组数据输入端、第六存储单元组数据输入端、第七存储单元组数据输入端、第八存储单元组数据输入端、第九存储单元组数据输入端、第十存储单元组数据输入端、第十一存储单元组数据输入端、第十二存储单元组数据输入端、第十三存储单元组数据输入端、第十四存储单元组数据输入端、第十五存储单元组数据输入端以及第十六存储单元组数据输入端,其中,第n存储单元组数据输入端用于输入所述第n存储单元组的输入数据;
所述输入寄存器单元的输出端连接所述输入检测单元。
4.根据权利要求3所述的存内计算电路,其特征在于,所述输入检测单元包括:
第一输入检测子单元、第二输入检测子单元、第三输入检测子单元、第四输入检测子单元、第五输入检测子单元、第六输入检测子单元、第七输入检测子单元、第八输入检测子单元、第九输入检测子单元、第十输入检测子单元、第十一输入检测子单元、第十二输入检测子单元、第十三输入检测子单元、第十四输入检测子单元、第十五输入检测子单元以及第十六输入检测子单元;
其中,所述第n输入检测子单元的第一输入端用于输入所述第n存储单元组的输入数据,所述第n存储单元组的输入数据包括:第n第一比特数据、第n第二比特数据、第n第三比特数据、第n第四比特数据、第n第五比特数据、第n第六比特数据、第n第七比特数据以及第n第八比特数据;
所述第n输入检测子单元的输出端为所述第n输入数据检测信号输出端;
其中,所述第n输入检测子单元的第二输入端为ENCS信号端,所述ENCS信号端用于输入ENCS信号,其中,当n=1时:
所述第一输入检测子单元的第一输入端用于输入所述第一存储单元组的输入数据,所述第一输入检测子单元的第二输入端为ENCS信号端;
所述第一存储单元组的输入数据包括:第一第一比特数据、第一第二比特数据、第一第三比特数据、第一第四比特数据、第一第五比特数据、第一第六比特数据、第一第七比特数据以及第一第八比特数据;
所述第一输入检测子单元的输出端为所述第一输入数据检测信号输出端;
其中,所述第一输入检测子单元至第十六检测子单元的电路结构相同,其中:
所述第一输入检测子单元包括:第一三输入或门、第二三输入或门、第一二输入或门、第三三输入或门、第一二输入与门、第二二输入与门、第一非门、第三二输入与门、第一NMOS管、第二NMOS管、第一PMOS管、第三NMOS管以及第一延迟子单元;
其中,所述第一三输入或门的第一输入端用于输入所述第一第一比特数据;所述第一三输入或门的第二输入端用于输入所述第一第二比特数据;所述第一三输入或门的第三输入端用于输入所述第一第三比特数据;所述第一三输入或门的输出端用于输出所述第一第一比特数据、所述第一第二比特数据以及所述第一第三比特数据的第一或结果;
所述第二三输入或门的第一输入端用于输入所述第一第四比特数据;所述第二三输入或门的第二输入端用于输入所述第一第五比特数据;所述第二三输入或门的第三输入端用于输入所述第一第六比特数据;所述第二三输入或门的输出端用于输出所述第一第四比特数据、所述第一第五比特数据以及所述第一第六比特数据的第二或结果;
所述第一二输入或门的第一输入端用于输入所述第一第七比特数据;所述第一二输入或门的第二输入端用于输入所述第一第八比特数据;所述第一二输入或门的输出端用于输出所述第一第七比特数据和所述第一第八比特数据的第三或结果;
所述第三三输入或门的第一输入端与所述第一三输入或门的输出端连接;所述第三三输入或门的第二输入端与所述第二三输入或门的输出端连接;第三三输入或门的第三输入端与所述第一二输入或门的输出端连接;所述第三三输入或门的输出端用于输出所述第一或结果、所述第二或结果和所述第三或结果的第四或结果;
其中,所述第一二输入与门的第一输入端与所述第三三输入或门的输出端连接,所述第一二输入与门的第二输入端与所述ENCS信号端连接,所述第一二输入与门的输出端用于输出所述第四或结果与所述ENCS信号的第一与结果;
所述第二二输入与门的第一输入端与第一ENID信号端连接,其中,所述第一ENID信号端用于输入第一ENID信号,所述第二二输入与门的第二输入端与所述第一二输入与门的输出端连接,所述第二二输入与门的输出端用于输出所述第一ENID信号与所述第一与结果的第二与结果;
所述第三二输入与门的第一输入端与所述第一非门的输出端连接,其中,所述第一非门的输入端与所述第一二输入与门的输出端连接,所述第一非门的输出端用于输出所述第一与结果的第一非结果;所述第三二输入与门的第二输入端与所述第一ENID信号端连接,所述第三二输入与门的输出端用于输出所述第一非结果与所述第一ENID信号的第三与结果;
其中,所述第一NMOS管的栅极与所述第一非门的输出端连接,所述第一NMOS管的第一端与所述第三二输入与门的输出端连接,所述第一NMOS管的第二端与所述第一ENID信号端连接;
所述第二NMOS管的栅极与所述第三NMOS管的栅极连接,所述第二NMOS管的第一端与所述第三二输入与门的输出端连接,所述第二NMOS管的第二端与所述第一ENID信号端连接;
所述第一PMOS管的栅极与所述第一非门的输出端连接,所述第一PMOS管的第一端与所述第一延迟子单元的第一端连接,所述第一PMOS管的第二端与所述第一ENID信号端连接;
所述第三NMOS管的栅极与所述第二NMOS管的栅极连接,所述第三NMOS管的第一端与所述第一延迟子单元的第一端连接,所述第三NMOS管的第二端与所述第一ENID信号端连接;
所述第一延迟子单元的第二端与所述第二二输入与门的输出端连接,其中,所述第二二输入与门的输出端为所述第一输入数据检测信号输出端,所述第一输入数据检测信号为所述第二与结果。
5.根据权利要求4所述的存内计算电路,其特征在于,所述输入滤波单元包括第四NMOS管、第五NMOS管、第六NMOS管、第七NMOS管、第八NMOS管、第九NMOS管、第十NMOS管、第十一NMOS管、第十二NMOS管、第十三NMOS管、第十四NMOS管、第十五NMOS管、第十六NMOS管、第十七NMOS管、第十八NMOS管以及第十九NMOS管、第四三输入或门、第五三输入或门、第六三输入或门、第七三输入或门、第二二输入或门、第三二输入或门、第八三输入或门、第九三输入或门以及第四二输入或门;
其中,第m NOMS管的栅极与第n输入数据检测信号输出端连接,所述第m NMOS管的第一端与第n输入检测子单元的第一输入端连接,所述第m NMOS管的第二端与所述寄存器累加模块连接,其中,所述m=n+3;
其中,当n=1时,所述第四NMOS管的栅极与第一输入数据检测信号输出端连接,所述第四NMOS管的第一端与第一输入检测子单元的第一输入端连接,所述第四NMOS管的第二端与所述寄存器累加模块连接;
当n=2时,所述第五NMOS管的栅极与第二输入数据检测信号输出端连接,所述第五NMOS管的第一端与第二输入检测子单元的第一输入端连接,所述第五NMOS管的第二端与所述寄存器累加模块连接;
当n=16时,所述第十九NMOS管的栅极与第十六输入数据检测信号输出端连接,所述第十九NMOS管的第一端与第十六输入检测子单元的第一输入端连接,所述第十九NMOS管的第二端与所述寄存器累加模块连接;
其中,所述第四三输入或门的第一输入端与所述第一输入检测子单元的第一输入端连接,所述第四三输入或门的第二输入端与所述第二输入检测子单元的第一输入端连接,所述第四三输入或门的第三输入端与所述第三输入检测子单元的第一输入端连接,所述第四三输入或门的输出端用于输出第一输入数据检测信号、第二输入数据检测信号以及第二输入数据检测信号的第五或结果;
所述第五三输入或门的第一输入端与所述第四输入检测子单元的第一输入端连接,所述第五三输入或门的第二输入端与所述第五输入检测子单元的第一输入端连接,所述第五三输入或门的第三输入端与所述第六输入检测子单元的第一输入端连接,所述第五三输入或门的输出端用于输出第四输入数据检测信号、第五输入数据检测信号以及第六输入数据检测信号的第六或结果;
所述第六三输入或门的第一输入端与所述第七输入检测子单元的第一输入端连接,所述第六三输入或门的第二输入端与所述第八输入检测子单元的第一输入端连接,所述第六三输入或门的第三输入端与所述第九输入检测子单元的第一输入端连接,所述第六三输入或门的输出端用于输出第七输入数据检测信号、第八输入数据检测信号以及第九输入数据检测信号的第七或结果;
所述第七三输入或门的第一输入端与所述第十输入检测子单元的第一输入端连接,所述第七三输入或门的第二输入端与所述第十一输入检测子单元的第一输入端连接,所述第七三输入或门的第三输入端与所述第十二输入检测子单元的第一输入端连接,所述第七三输入或门的输出端用于输出第十输入数据检测信号、第十一输入数据检测信号以及第十二输入数据检测信号的第八或结果;
所述第二二输入或门的第一输入端与所述第十三输入检测子单元的第一输入端连接,所述第二二输入或门的第二输入端与所述第十四输入检测子单元的第一输入端连接,所述第二二输入或门的输出端用于输出第十三输入数据检测信号和第十四输入数据检测信号的第九或结果;
所述第三二输入或门的第一输入端与所述第十五输入检测子单元的第一输入端连接,所述第三二输入或门的第二输入端与所述第十六输入检测子单元的第一输入端连接,所述第三二输入或门的输出端用于输出第十五输入数据检测信号和第十六输入数据检测信号的第十或结果;
其中,所述第八三输入或门的第一输入端与所述第四三输入或门的输出端连接,所述第八三输入或门的第二输入端与所述第五三输入或门的输出端连接,所述第八三输入或门的第三输入端与所述第六三输入或门的输出端连接,所述第八三输入或门的输出端用于输出所述第五或结果、所述第六或结果以及所述第八或结果的第十一或结果;
所述第九三输入或门的第一输入端与所述第七三输入或门的输出端连接,所述第九三输入或门的第二输入端与所述第二二输入或门的输出端连接,所述第九三输入或门的第三输入端与所述第三三输入或门的输出端连接,所述第九三输入或门的输出端用于输出所述第八或结果、所述第九或结果以及所述第十一或结果的第十二或结果;
所述第四二输入或门的第一输入端与所述第八三输入或门的输出端连接,所述第四二输入或门的第二输入端与所述第九三输入或门的输出端连接,所述第四二输入或门的输出端用于输出所述第十一或结果和所述第十二或结果的第十三或结果,其中,所述第四二输入或门的输出端与所述寄存器累加模块连接,并将所述第十三或结果作为DESUM信号。
6.根据权利要求5所述的存内计算电路,其特征在于,所述电压跟随读取模块包括:第一电压跟随读取单元、第二电压跟随读取单元、第三电压跟随读取单元、第四电压跟随读取单元、第五电压跟随读取单元、第六电压跟随读取单元、第七电压跟随读取单元、第八电压跟随读取单元、第九电压跟随读取单元、第十电压跟随读取单元、第十一电压跟随读取单元、第十二电压跟随读取单元、第十三电压跟随读取单元、第十四电压跟随读取单元、第十五电压跟随读取单元以及第十六电压跟随读取单元;
其中,第n电压跟随读取单元的一端与第n分段位线连接,n为大于等于1且小于等于16的整数;
所述第一电压跟随读取单元至所述第十六电压跟随读取单元的电路结构相同;
其中,所述第n电压跟随读取单元的输入端包括:第n分段位线输入端和第n参考电压输入端,其中,所述第n分段位线输入端用于连接所述第n分段位线,所述第n参考电压输入端用于输入第n参考电压;
所述第n电压跟随读取单元的输出端用于输出所述第n存储单元组的计算权重;
其中,当n=1时:
所述第一电压跟随读取单元的输入端包括:所述ENCS信号端、第一分段位线输入端和第一参考电压输入端,其中,所述第一分段位线输入端用于连接所述第一分段位线,所述第一参考电压输入端用于输入第一参考电压;
所述第一电压跟随读取单元的输出端用于输出所述第一存储单元组的计算权重;
其中,当n=1时,所述第一电压跟随读取单元包括第二PMOS管、第三PMOS管、第四PMOS管、第五PMOS管、第二十NMOS管以及第二十一NMOS管,其中:
所述第二PMOS管的栅极与所述第三PMOS管的栅极连接,所述第二PMOS管的第一端用于连接电源,所述第二PMOS管的第二端用于连接所述第四PMOS管的第一端;
所述第三PMOS管的第一端用于连接电源,所述第三PMOS管的第二端用于连接所述第五PMOS管的第一端,所述第二PMOS管的栅极和所述第三PMOS管的栅极与所述ENCS信号端连接;
所述第四PMOS管的栅极与所述第五PMOS管的栅极连接,所述第四PMOS管的第二端与所述第二十NMOS管的第一端连接;
所述第五PMOS管的第二端与所述第二十一NMOS管的第一端连接,且将所述第五PMOS管的第二端作为所述第一电压跟随读取单元的输出端,所述第四PMOS管的栅极和所述第五PMOS管的栅极连接至所述第二十NMOS管的第一端;
所述第二十NMOS管的栅极为所述第一分段位线输入端,所述第二十NMOS管的第二端接地;
所述第二十一NMOS管的栅极为所述第一参考电压输入端,所述第二十一NMOS管的第二端接地。
7.根据权利要求6所述的存内计算电路,其特征在于,所述第n分段位线和所述第n分段源线之间还包括第n第一分段晶体管和第n第二分段晶体管,其中:
所述第n第一分段晶体管的栅极和所述第n第二分段晶体管的栅极之间传输存内计算信号;所述第n分段位线和所述第n分段源线的分离和连接受控于所述第n第一分段晶体管和所述第n第二分段晶体管;
其中,所述存内计算电路还包括预充晶体管,所述预充晶体管的第一端用于输入PL信号,所述预充晶体管的第二端用于连接电源,所述预充晶体管的第三端用于连接所述位线,其中:
所述位线通过受所述PL信号控制的所述预充晶体管预充至高电位;
当所述位线未预充完成时,所述第n第一分段晶体管和所述第n第二分段晶体管在所述存内计算信号的控制下全部打开,将所述第n分段位线和所述第n分段源线连接;
当所述位线预充完成后,所述PL信号断开所述电源和所述位线,所述第n第一分段晶体管和所述第n第二分段晶体管在所述存内计算信号的控制下至少关闭一个,将所述第n分段位线和所述第n分段源线分离;
其中,所述存内计算电路还包括设置在所述第n电压跟随读取单元和所述第n第一分段晶体管之间的第n控制晶体管,其中:
所述第n控制晶体管的栅极与所述第n输入数据检测信号输出端连接,所述第n控制晶体管的栅极用于输入所述第n输入数据检测信号;
所述第n控制晶体管的第一端与所述第n电压跟随读取单元的输出端连接;
所述第n控制晶体管的第二端与该存储单元阵列的CL计算线连接,其中,所述CL计算线用于传输CL信号。
8.根据权利要求7所述的存内计算电路,其特征在于,当n=1时:
所述存内计算电路还包括设置在所述第一电压跟随读取单元和第一第一分段晶体管之间的第一控制晶体管,其中:
所述第一控制晶体管的栅极与所述第一输入数据检测信号输出端连接,所述第一控制晶体管的栅极用于输入所述第一输入数据检测信号;
所述第一控制晶体管的第一端与所述第一电压跟随读取单元的输出端连接;
所述第一控制晶体管的第二端与该存储单元阵列的CL计算线连接,其中,所述CL计算线用于传输CL信号。
9.根据权利要求8所述的存内计算电路,其特征在于,所述寄存器累加模块包括十三个输入端和十二个输出端,
其中,所述十三个输入端分别为:
第一累加数据输入端、第二累加数据输入端、第三累加数据输入端、第四累加数据输入端、第五累加数据输入端、第六累加数据输入端、第七累加数据输入端、第八累加数据输入端、CL信号输入端、所述ENCS信号端、R输入端、S输入端以及DESUM信号输入端;
其中,所述存内计算结果为12位二进制数,所述十二个输出端分别用于输出所述存内计算结果的其中一位;
其中,所述第一累加数据输入端用于输入第n第一比特数据;所述第二累加数据输入端用于输入第n第二比特数据;所述第三累加数据输入端用于输入第n第三比特数据;所述第四累加数据输入端用于输入第n第四比特数据;所述第五累加数据输入端用于输入第n第五比特数据;所述第六累加数据输入端用于输入第n第六比特数据;所述第七累加数据输入端用于输入第n第七比特数据;所述第八累加数据输入端用于输入第n第八比特数据;
所述CL信号输入端与所述CL计算线连接,将所述CL信号输入所述CL信号输入端;
所述DESUM信号输入端与所述第四二输入或门的输出端连接,所述DESUM信号输入端用于输入所述DESUM信号;
其中,所述寄存器累加模块包括八个数据选择器、十二个输出寄存器以及十二个全加器,其中:
所述八个数据选择器的第二端均接地,所述八个数据选择器的第三端均连接SC信号端;
当SC信号为1时,所述八个数据选择器的第一端分别用于输入第n第一比特数据、第n第二比特数据、第n第三比特数据、第n第四比特数据、第n第五比特数据、第n第六比特数据、第n第七比特数据以及第n第八比特数据;
当SC信号为0时,所述八个数据选择器的第一端分别用于输入0;
所述八个数据选择器的第四端与全加器连接;
其中,所述十二个全加器包括第一全加器至第十二全加器,所述八个数据选择器包括第一数据选择器至第八数据选择器,其中:
第p数据选择器的第四端与第p全加器的B输入端连接,p为大于等于1且小于等于8的整数;
第九全加器的B输入端至第十二全加器的B输入端接地;
所述十二个输出寄存器包括第一输出寄存器至第十二输出寄存器,其中,所述第一输出寄存器用于输出所述存内计算结果的最高位,所述第十二输出寄存器用于输出所述存内计算结果的最低位。
10.根据权利要求9所述的存内计算电路,其特征在于,所述寄存器累加模块还包括第一三输入与门和第二非门,其中:
所述第一三输入与门的第一输入端为所述CL信号输入端,所述第一三输入与门的第二输入端为所述DESUM信号输入端,所述第一三输入与门的第三输入端为所述ENCS信号端,所述第一三输入与门的输出端用于输出所述CL信号、所述DESUM信号以及所述ENCS信号的第四与结果,并将所述第四与结果作为所述SC信号的值;
所述第二非门的输入端与所述第一三输入与门的输出端连接,所述第二非门的输出端用于输出所述第四与结果的第二非结果,并将所述第二非结果作为SCB信号的值,其中,所述SCB信号分别与第一输出寄存器的时钟输入端至第十二输出寄存器的时钟输入端连接;
所述R输入端分别连接至所述第一输出寄存器至所述第十二输出寄存器,所述S输入端分别连接至所述第一输出寄存器至所述第十二输出寄存器;
其中,所述预充晶体管为PMOS,所述控制晶体管以及所述分段晶体管为NMOS,所述预充晶体管的第一端为栅极,所述预充晶体管的第二端为源极或漏极中的一个,所述预充晶体管的第三端为源极或漏极中的另一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311480237.XA CN117877553A (zh) | 2023-11-08 | 2023-11-08 | 一种用于非易失性随机存储器的存内计算电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311480237.XA CN117877553A (zh) | 2023-11-08 | 2023-11-08 | 一种用于非易失性随机存储器的存内计算电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117877553A true CN117877553A (zh) | 2024-04-12 |
Family
ID=90579925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311480237.XA Pending CN117877553A (zh) | 2023-11-08 | 2023-11-08 | 一种用于非易失性随机存储器的存内计算电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117877553A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118536563A (zh) * | 2024-05-09 | 2024-08-23 | 上海北湖冰矽科技有限公司 | 模拟存内计算电路、处理装置及电子设备 |
-
2023
- 2023-11-08 CN CN202311480237.XA patent/CN117877553A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118536563A (zh) * | 2024-05-09 | 2024-08-23 | 上海北湖冰矽科技有限公司 | 模拟存内计算电路、处理装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112581996B (zh) | 基于磁性随机存储器的时域存内计算阵列结构 | |
CN110414677B (zh) | 一种适用于全连接二值化神经网络的存内计算电路 | |
CN113467751B (zh) | 一种基于磁性随机存储器的模拟域存内计算阵列结构 | |
CN110364203A (zh) | 一种支撑存储内计算的存储系统及计算方法 | |
CN113688984B (zh) | 一种基于磁性随机存储器的存内二值化神经网络计算电路 | |
TW202147320A (zh) | 低功率記憶體內計算位元格 | |
CN114974337B (zh) | 一种基于自旋磁随机存储器的时间域存内计算电路 | |
CN110176264B (zh) | 一种基于内存内计算的高低位合并电路结构 | |
CN109979503A (zh) | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 | |
CN112599165A (zh) | 一种多bit输入与多bit权重乘累加的存内计算单元 | |
Zhang et al. | HD-CIM: Hybrid-device computing-in-memory structure based on MRAM and SRAM to reduce weight loading energy of neural networks | |
CN112509620A (zh) | 基于平衡预充与组译码的数据读取电路 | |
CN114496010A (zh) | 一种基于磁性随机存储器的模拟域近存计算阵列结构 | |
CN114360595A (zh) | 一种基于8t sram内存内行列双向的减法计算电路结构 | |
CN110970071A (zh) | 低功耗新型静态随机存取存储器的存储单元及应用 | |
CN116860696A (zh) | 一种基于非易失性存储器的存内计算电路 | |
CN117079688A (zh) | 一种电流域8tsram单元及动态自适应量化的存算电路 | |
CN117877553A (zh) | 一种用于非易失性随机存储器的存内计算电路 | |
CN114038492B (zh) | 一种多相采样存内计算电路 | |
CN115954029A (zh) | 多比特运算模块以及使用了该模块的存内计算电路结构 | |
Li et al. | A 9T-SRAM based computing-in-memory with redundant unit and digital operation for boolean logic and MAC | |
CN118298872B (zh) | 输入权重比特位可配置的存内计算电路及其芯片 | |
CN118312468B (zh) | 一种带符号乘法的存内运算电路及cim芯片 | |
CN112233712A (zh) | 一种6t sram存算装置、存算系统及存算方法 | |
CN116204490A (zh) | 一种基于低电压技术的7t存算电路、乘累加运算电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |