CN111880763B - 一种在内存中实现带有正负数乘加的sram电路 - Google Patents
一种在内存中实现带有正负数乘加的sram电路 Download PDFInfo
- Publication number
- CN111880763B CN111880763B CN202010677209.7A CN202010677209A CN111880763B CN 111880763 B CN111880763 B CN 111880763B CN 202010677209 A CN202010677209 A CN 202010677209A CN 111880763 B CN111880763 B CN 111880763B
- Authority
- CN
- China
- Prior art keywords
- bit
- sram
- word line
- multiplication
- column
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明公开了一种在内存中实现带有正负数乘加的SRAM电路,通过将多个乘数存入一列单元中,多个被乘数通过SRAM的字线WL输入,与单元内的相应的乘数进行乘法运算,再将每组乘得的结果累加在位线上,可直接通过位线电压得出乘加的结果。另外添加了一列参考列以判断计算结果是正数还是负数,以实现正负数的乘法。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种在内存中实现带有正负数乘加的SRAM 电路。
背景技术
随着机器学习、图像识别和边缘计算等应用领域的快速发展,这些领域需要处理海量数据和对计算能耗效率要求较高。传统的传统冯诺伊曼架构把处理器计算单元和存储器分开,需要时处理器从存储器读数据,之后在处理器处理完了数据之后再写回存储器。由于摩尔定律的快速发展,内存运行速度与处理器速度的不同步,内存的存取速度严重滞后于处理器的计算速度,内存性能已经成为了整体计算机性能的一个重要瓶颈。内存对于能效比的限制也成了传统冯诺伊曼体系计算机的一个瓶颈,这个瓶颈在机器学习和图像识别计算量大的领域例如卷积神经网络中尤为明显,为了克服这些传统的冯诺依曼结构带来的弊端,内存内计算(Computing in Memory,缩写为CIM)成为解决这个问题的热点,内存内计算不需要把数据传输到处理器中,直接在内存中进行运算,因此大大减少了计算过程中数据存取能量消耗,同时在计算速度和能效上得到提高。
现有存内技术大部分都着重与在SRAM单元内部实现逻辑布尔运算,例如简单的与或运算,但是这些运算并不能充分体现出存内计算的优势。目前图像识别等领域,卷积神经网络的作用十分重要,所以仅仅对数据进行简单逻辑处理时远远不够的,需要更复杂的计算,而乘法与加法在卷积神经网路中的是最基本的运算,也是进行最多的运算,所以在SRAM中实现乘法运算可以很好的提升整个存内系统的工作效率,充分体现其优势。虽然目前有相关实现乘法的电路,但是他们仅仅考虑简单的正数相乘,没有考虑实际情况中存在正负数相乘的情况,不适合实际的应用。
发明内容
本发明的目的是提供一种在内存中实现带有正负数乘加的SRAM电路,可以实现在SRAM中实现正负数的乘加运算,极大的提升了SRAM存内计算的实用性。
本发明的目的是通过以下技术方案实现的:
一种在内存中实现带有正负数乘加的SRAM电路,包括:行译码模块、列译码模块、时序控制电路、字线数据控制模块、以及SRAM存储阵列;其中:
时序控制电路与行译码模块、列译码模块以及字线数据控制模块连接,行译码模块与字线数据控制模块,列译码模块与SRAM存储阵列相连接;
SRAM存储阵列包含一个参考列与若干计算列,参考列与计算列都包含多个SRAM 6管单元;三个同列的SRAM 6管单元构成一个带有符号位的2位乘法计算单元;在计算前的准备阶段,时序控制模块控制行译码模块和列译码模块选中计算列的相应SRAM 6管单元,由SRAM 6管单元存储被乘数,乘数则从外部输入到字线数据控制模块中,采用双字线设计,左字线连接字线信号WLP,右字线连接字线信号WLN,字线信号WLP与WLN表示乘数,根据乘数的正负来相应的开启或关闭字线信号WLP与WLN;每列SRAM单元的全局位线GBL与GBLB与列译码模块的输出端相连;通过比较计算列和参考列的全局位线电位得到最终整列的乘加结果。
由上述本发明提供的技术方案可以看出,电路结构提高了SRAM存内计算的实用性:通过带有符号位的2位乘法计算单元可以实现正负数的乘法运算,再综合同列的乘法结果与参考率进行比较,从而得到整个计算列的乘加结果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种在内存中实现带有正负数乘加的SRAM电路的示意图;
图2为本发明实施例提供的2位乘法计算单元及SRAM 6管单元的结构示意图;
图3为本发明实施例提供的字线脉宽调制信号示意图;
图4为本发明实施例提供的测试仿真图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例提供一种在内存中实现带有正负数乘加的SRAM电路,通过将多个乘数存入一列单元中,多个被乘数通过SRAM的字线WL输入,与单元内的相应的乘数进行乘法运算,再将每组乘得的结果累加在位线上,可直接通过位线电压得出乘加的结果。另外添加了一列参考列以产生乘法结果为0时的电位,通过计算列的电位与其比较即可判断计算结果是正数还是负数,以实现正负数的乘法。
如图1所示,其主要包括:行译码模块、列译码模块、时序控制电路、字线数据控制模块、以及SRAM存储阵列;其中:
时序控制电路与行译码模块、列译码模块以及字线数据控制模块连接,行译码模块与字线数据控制模块,列译码模块与SRAM存储阵列相连接;
时序控制模块用于控制整个电路的工作状态。在计算前的准备阶段,时序控制模块控制行译码模块和列译码模块选中相应SRAM单元,将被乘数存入选中的单元中,而乘数则从外部输入到字线数据控制模块中;在计算开始时,时序控制模块启用字线数据控制模块,根据输入的乘数值产生对应的字线信号。
SRAM存储阵列包含一个参考列与若干计算列,参考列与计算列都包含多个SRAM 6管单元;三个同列的SRAM 6管单元构成一个带有符号位的2位乘法计算单元;SRAM 6 管单元存储被乘数,采用双字线设计,将传统单字线WL拆分为WLP和WLN,左字线连接字线信号WLP(WL Positive代表控制正数放电的字线),右字线连接字线信号WLN (WL Negative代表控制负数放电的字线),字线信号WLP与WLN表示乘数,根据乘数的正负来相应的开启或关闭字线信号WLP与WLN;每列SRAM单元的全局位线GBL (Global BL)与GBLB(Global BLB)与列译码模块的输出端相连;通过比较计算列和参考列的全局位线电位得到最终整列的乘加结果。
如图2所示,为2位乘法计算单元及SRAM 6管单元的结构。
一个带有符号位的2位乘法计算单元包括:三个SRAM 6管单元6T-0、6T-1与6T-2,两个传输门构成的开关SW1和SW2,以及四个电容C1、C2、C3与C4;三个SRAM 6管单元6T-0、6T-1与6T-2的左侧的BL端相连组成局部位线LBL(Local BL),右侧的BLB端相连组成局部位线LBLB(Local BLB);三个SRAM 6管单元6T-0、6T-1与6T-2的左端字线分别对应的接入WLP0、WLP1与WLP2,右端字线分别对应接入WLN0、WLN1与 WLN2;电容C1上端与局部位线LBL相连,下端与GND相连;电容C2上端与局部位线 LBLB相连,下端与GND相连;电容C3上端与全局位线GBL相连,下端与GND相连;电容C4上端与全局位线GBLB相连,下端与GND相连;开关SW1连接全局位线GBL与局部位线LBL;开关SW2连接全局位线GBLB与局部位线LBLB。
单个SRAM 6管单元结构如图2右侧虚线框所示,主要包括:两个交叉耦合的反相器I0和I1,以及两个NMOS晶体管N0和N1;其中,NMOS晶体管N0栅极与字线信号WLP相连,NMOS晶体管N1栅极与字线信号WLN相连,字线信号WLP和WLN成双字线信号; NMOS晶体管N0的源极与位线信号BL相连,NMOS管N0的漏极与反相器I0的输入端点Q 相连,NMOS晶体管N1的源极与位线信号BLB相连,NMOS晶体管N2的漏极与反相器I1 的输入端点QB相连,反相器I0的输出端与反相器I1的输入端QB相连,反相器I1的输出端与反相器I0的输入端Q相连。
本发明实例所提供的内存内乘加计算电路在原本SRAM双稳态锁存六管存储单元的互补结构基础上,将单字线转化为双字线,实现控制两根局部位线分别不用程度的放电,得到正数和负数的计算结果。通过控制字线的开启宽度成比例的增加,可以将一个乘数用字线信号表示,每三个6T存储单元组成一个带有符号位的2位乘法计算单元,当做一个乘法数据模块,被乘数的符号位、高位和低位分别单独存入带有符号位的2位乘法计算单元中的一个SRAM 6管单元中,与表示乘数的字线数据位一一对应:存入被乘数符号位的SRAM单元与代表乘数符号位的字线相连;存入被乘数高位的SRAM单元与代表乘数高位的字线相连;存入被乘数低位的SRAM单元与代表乘数低位的字线相连。同时,根据外部输入的乘数,字线数据控制模块会同时打开相应字线,与存储在2位乘法计算单元内的数据进行乘法运算,2位乘法计算单元中的局部位线会根据乘数与被乘数的乘法运算情况而放电到不同的电压,通过对局部位线的电压换算即可得到乘法结果;再将相应计算列的全局位线与局部位线之间的开关打开将所有乘法结果汇总到全局位线上,再与参考列数据比对,从而得到最终的乘加结果。相较于传统的SRAM操作每次只打开一根字线,在进行乘加计算时同时打开所有单元的字线可以极大地提高数据处理的效率。
下面结合图2所示的2位乘法计算单元介绍计算列中两个计算单元实现乘法再相加的计算原理。
每一计算列开始计算前,关闭2位乘法计算单元中的局部位线与计算列全局位线的开关SW1和SW2,使得每个2位乘法计算单元单独计算。被乘数二进制码第一位为符号位,为1时代表正数,为0时代表负数,为正数即为正常的二进制编码,为负数时即为对应正数的二进制编码的反码加一;第二位与第三位分别为数据位高位和低位;符号位存入 SRAM 6管单元6T-2,数据位高位存入SRAM 6管单元6T-1中,低位存入SRAM 6管单元 6T-0中。
示例性的,具体存入单元的被乘数如下表1所示:
被乘数值 | 6T-2 | 6T-1 | 6T-0 |
3 | 1 | 1 | 1 |
2 | 1 | 1 | 0 |
1 | 1 | 0 | 1 |
0 | 1 | 0 | 0 |
-1 | 0 | 1 | 1 |
-2 | 0 | 1 | 0 |
-3 | 0 | 0 | 1 |
表1SRAM 6管单元存入的被乘数
对于乘数用字线信号表示,当符号位为1(为正数)时,左端字线WLP0、WLP1与WLP2开启,WLN0、WLN1与WLN2关闭,局部位线LBL放电,局部位线LBLB不放电;当符号位为0(为负数)时,右端字线WLN0、WLN1与WLN2开启,WLP0、WLP1与 WLP2关闭,局部位线LBLB放电,局部位线LBL不放电,使得正数和负数在不同的位线上面放电。
字线WLP与WLN根据数据位来调节脉宽,且每一位字线权值都具有高位低位两种调制。根据乘数的二进制编码,当高位为1时产生高位调制信号,高位为0时屏蔽高位调制信号,当低位为1时产生低位调制信号,低位为0时屏蔽低位调制信号,高位低位都为0时则高位调制与低位调制信号都屏蔽,字线信号为0,此时位线不会放电;高位调制信号的脉宽长度是低位调制信号脉宽的两倍。脉宽调制宽度如图3所示,可以看出高位调制信号脉宽长度是低位调制信号脉宽的两倍,WLP2低位脉宽为4t0,高位脉宽为8t0,WLP1低位脉宽为2t0,高位脉宽为4t0,WLP0低位脉宽为1t0,高位脉宽为2t0。每个脉宽t0将会放电一个ΔV,字线WLP和WLN的电压也降低到合适的电位以保证良好的线性度。
当计算开始时,对局部位线LBL和LBLB进行预充,每个2位乘法计算单元根据单元内存的数据(被乘数)以及字线的信号(乘数)在局部位线上放电,进而得到乘法结果。当每个2位乘法计算单元计算结束后,再打开全局位线与局部位线之间的开关,将同列的乘法结果累加起来,在全局位线GBL和GBLB上平均。另外,添加了一列参考列,该列每个数据模块组(2位乘法计算单元)中,6T-2~0存入固定值100,代表数据0,其余构造与存储阵列中的计算列相同,并接入相同的字线信号,与计算列同时放电。在计算过程中,参考列会得到字线信号表示的乘数乘于0时的电位,这个电位代表一个基准电位,当计算列得到的电位比这个电位低时,即代表这个数为正数,比这个电位低时即代表是负数。因为被乘数为负数时代表符号位的6T-2单元存储的值为0,所以位线会放电,而被乘数为正数时,6T-2单元存储的值为1,位线不会向其放电,所以结果为负数时放的电会比结果为正数时放电多。
具体放电情况由下表2得出,表中“3x0、-1x0”所在的两列即为参考列放的电,字线括号里面的数字表示乘数。
字线(3) | 放电量 | 字线(2) | 放电量 | 字线(1) | 放电量 |
3x3 | 0ΔV | 2x3 | 0ΔV | 1x3 | 0ΔV |
3x2 | 3ΔV | 2x2 | 2ΔV | 1x2 | 1ΔV |
3x1 | 6ΔV | 2x1 | 4ΔV | 1x1 | 2ΔV |
3x0 | 9ΔV | 2x0 | 6ΔV | 1x0 | 3ΔV |
3x-1 | 12ΔV | 2x-1 | 8ΔV | 1x-1 | 4ΔV |
3x-2 | 15ΔV | 2x-2 | 10ΔV | 1x-2 | 5ΔV |
3x-3 | 18ΔV | 2x-3 | 12ΔV | 1x-3 | 6ΔV |
字线(-1) | 放电量 | 字线(-2) | 放电量 | 字线(-3) | 放电量 |
-1x3 | 7ΔV | -2x3 | 14ΔV | -3x3 | 21ΔV |
-1x2 | 6ΔV | -2x2 | 12ΔV | -3x2 | 18ΔV |
-1x1 | 5ΔV | -2x1 | 10ΔV | -3x1 | 15ΔV |
-1x0 | 4ΔV | -2x0 | 8ΔV | -3x0 | 12ΔV |
-1x-1 | 3ΔV | -2x-1 | 6ΔV | -3x-1 | 9ΔV |
-1x-2 | 2ΔV | -2x-2 | 4ΔV | -3x-2 | 6ΔV |
-1x-3 | 1ΔV | -2x-3 | 2ΔV | -3x-3 | 3ΔV |
表2放电情况
为了更加清晰地展现出本发明所提供的技术方案及所产生的技术效果,取一列中两个2位乘法计算单元进行2位数乘加的仿真验证乘加计算的详细过程,下面结合图4,介绍乘法结果相加的仿真验证过程:
以-3*3和2*-3为例。首先,各自进行乘法运算,关闭两个2位乘法计算单元的开关SW2和SW1。两个被乘数3和-3,转换为存入2位乘法计算单元的二进制码分别为111和 001,即第一个2位乘法计算单元(计算列的数据模块一)的6T-2~0按顺序存入111,其中6T-2~0存储节点Q的数据都为1,QB都为0;第二个2位乘法计算单元(计算列的数据模块二)6T-2~0存入按顺序存入001,其中6T-2和6T-1存储节点Q数据为0,QB为1,6T- 0存储节点Q数据为1,QB为0。
乘数分别为-3和2。其中-3为负数,所以字线WLN2~0开启,WLP2~0关闭,仅LBLB放电,且3的二进制码为11,高位和低位都是1,所以字线的高位调制和低位调制信号都产生,此时WLN2的脉宽为4t+8t=12t,WLN1的脉宽为2t+4t=6t,WLN0的脉宽为 1t+2t=3t。另一个乘数2为正数,所以该2位乘法计算单元字线WLP2~0开启,WLN2~0关闭,仅LBL放电,且2的二进制码为10,高位为1,低位为0,所以字线产生高位调制屏蔽低位调制信号,此时WLP2的脉宽为8t,WLN1的脉宽为4t,WLN0的脉宽为2t。对局部位线LBL和LBLB预充,对于计算列,第一个2位乘法计算单元右端字线WLN开启,且存储节点QB都为0,所以LBLB放电12△V+6△V+3△V=21△V,第2位乘法计算单元左端字线WLP开启,且6T-2和6T-1存储节点Q数据为0,所以LBL放电8△V+4△V=12△V。
对于参考列,6T-2存储节点Q的数据为1,QB为0,6T-1~0存储节点Q的数据都为 0,QB为1。与第一个2位乘法计算单元字线信号对应的数据模块一仅右端字线WLN开启,故LBLB仅在6T-2放电8△V+4△V=12△V;与第2位乘法计算单元字线信号对应的数据模块二仅左端字线WLP开启,故LBL在6T-1和6T-0放电4△V+2△V=6△V。
此时打开全局位线与局部位线的开关SW1和SW2,计算列GBL仅一个2位乘法计算单元放电12△V,所以电位在GBL上平均为[VDD+(VDD-12△V)]/2=VDD-6△V,GBLB仅一个2 位乘法计算单元放电21△V,所以电位在GBL上平均为[VDD+(VDD-21△V)]/2=VDD-10.5△ V;参考列GBL仅一个2位乘法计算单元放电6△V,所以电位在GBL上平均为[VDD+(VDD-6 △V)]/2=VDD-3△V,GBLB仅一个2位乘法计算单元放电12△V,所以电位在GBL上平均为 [VDD+(VDD-12△V)]/2=VDD-6△V。
计算列GBL和GBLG总电位为(VDD-6△V)+(VDD-10.5△V)=2VDD-16.5△V,参考列GBL和GBLG总电位为(VDD-3△V)+(VDD-6△V)=2VDD-9△V,用计算列总电位减去参考列总电位再乘上2位乘法计算单元的数量2就可以得到乘加结果-15△V,与-3*3和2*-3的结果一致。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (4)
1.一种在内存中实现带有正负数乘加的SRAM电路,其特征在于,包括:行译码模块、列译码模块、时序控制电路、字线数据控制模块、以及SRAM存储阵列;其中:
时序控制电路与行译码模块、列译码模块以及字线数据控制模块连接,行译码模块与字线数据控制模块,列译码模块与SRAM存储阵列相连接;
SRAM存储阵列包含一个参考列与若干计算列,参考列与计算列都包含多个SRAM 6管单元;三个同列的SRAM 6管单元构成一个带有符号位的2位乘法计算单元;在计算前的准备阶段,时序控制模块控制行译码模块和列译码模块选中计算列的相应SRAM 6管单元,由SRAM6管单元存储被乘数,乘数则从外部输入到字线数据控制模块中,采用双字线设计,左字线连接字线信号WLP,右字线连接字线信号WLN,字线信号WLP与WLN表示乘数,根据乘数的正负来相应的开启或关闭字线信号WLP与WLN;每列SRAM单元的全局位线GBL与GBLB与列译码模块的输出端相连;通过比较计算列和参考列的全局位线电位得到最终整列的乘加结果;
其中,一个带有符号位的2位乘法计算单元包括:三个SRAM 6管单元6T-0、6T-1与6T-2,两个传输门构成的开关SW1和SW2,以及四个电容C1、C2、C3与C4;
三个SRAM 6管单元6T-0、6T-1与6T-2的左侧的BL端相连组成局部位线LBL,右侧的BLB端相连组成局部位线LBLB;三个SRAM 6管单元6T-0、6T-1与6T-2的左端字线分别对应的接入WLP0、WLP1与WLP2,右端字线分别对应接入WLN0、WLN1与WLN2;
电容C1上端与局部位线LBL相连,下端与GND相连;电容C2上端与局部位线LBLB相连,下端与GND相连;电容C3上端与全局位线GBL相连,下端与GND相连;电容C4上端与全局位线GBLB相连,下端与GND相连;
开关SW1连接全局位线GBL与局部位线LBL;开关SW2连接全局位线GBLB与局部位线LBLB。
2.根据权利要求1所述的一种在内存中实现带有正负数乘加的SRAM电路,其特征在于,每一计算列开始计算前,关闭2位乘法计算单元中的局部位线与计算列全局位线的开关SW1和SW2,使得每个2位乘法计算单元单独计算;
被乘数的符号位、高位和低位分别单独存入带有符号位的2位乘法计算单元中的一个SRAM 6管单元中,与字线数据位一一对应,同时打开多行字线,与存储在2位乘法计算单元内的数据进行乘法运算,2位乘法计算单元中的局部位线会根据乘数与被乘数的乘法运算情况而放电到不同的电压,通过对局部位线的电压换算即可得到乘法结果;再将相应计算列的全局位线与局部位线之间的开关打开将所有乘法结果汇总到全局位线上,再与参考列数据比对,从而得到最终的乘加结果。
3.根据权利要求2所述的一种在内存中实现带有正负数乘加的SRAM电路,其特征在于,
被乘数二进制码第一位为符号位,为1时代表正数,为0时代表负数,为正数即为正常的二进制编码,为负数时即为对应正数的二进制编码的反码加一;第二位与第三位分别为数据位高位和低位;符号位存入SRAM 6管单元6T-2,数据位高位存入SRAM 6管单元6T-1中,低位存入SRAM 6管单元6T-0中;
对于乘数用字线信号表示,为正数时,左端字线WLP0、WLP1与WLP2开启,WLN0、WLN1与WLN2关闭,局部位线LBL放电,局部位线LBLB不放电;为负数,右端字线WLN0、WLN1与WLN2开启,WLP0、WLP1与WLP2关闭,局部位线LBLB放电,局部位线LBL不放电,使得正数和负数在不同的位线上面放电;
字线WLP与WLN根据数据位来调节脉宽,且每一位字线权值都具有高位低位两种调制,当高位为1时产生高位调制信号,高位为0时屏蔽高位调制信号,当低位为1时产生低位调制信号,低位为0时屏蔽低位调制信号;高位调制信号的脉宽长度是低位调制信号脉宽的两倍。
4.根据权利要求1-3任一项所述的一种在内存中实现带有正负数乘加的SRAM电路,其特征在于,SRAM 6管单元包括:两个交叉耦合的反相器I0和I1,以及两个NMOS晶体管N0和N1;
其中,NMOS晶体管N0栅极与字线信号WLP相连,NMOS晶体管N1栅极与字线信号WLN相连,字线信号WLP和WLN成双字线信号;
NMOS晶体管N0的源极与位线信号BL相连,NMOS管N0的漏极与反相器I0的输入端点Q相连,NMOS晶体管N1的源极与位线信号BLB相连,NMOS晶体管N2的漏极与反相器I1的输入端点QB相连,反相器I0的输出端与反相器I1的输入端QB相连,反相器I1的输出端与反相器I0的输入端Q相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010677209.7A CN111880763B (zh) | 2020-07-14 | 2020-07-14 | 一种在内存中实现带有正负数乘加的sram电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010677209.7A CN111880763B (zh) | 2020-07-14 | 2020-07-14 | 一种在内存中实现带有正负数乘加的sram电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111880763A CN111880763A (zh) | 2020-11-03 |
CN111880763B true CN111880763B (zh) | 2022-12-02 |
Family
ID=73150952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010677209.7A Active CN111880763B (zh) | 2020-07-14 | 2020-07-14 | 一种在内存中实现带有正负数乘加的sram电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880763B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112232501B (zh) * | 2020-12-11 | 2021-09-28 | 中科南京智能技术研究院 | 一种存内计算装置 |
CN112599165B (zh) * | 2021-03-04 | 2021-06-29 | 中科院微电子研究所南京智能技术研究院 | 一种多bit输入与多bit权重乘累加的存内计算单元 |
CN112992232B (zh) * | 2021-04-28 | 2021-08-17 | 中科院微电子研究所南京智能技术研究院 | 一种多位正负单比特存内计算单元、阵列及装置 |
CN113258910B (zh) * | 2021-06-25 | 2021-10-19 | 中科院微电子研究所南京智能技术研究院 | 基于脉宽调制的计算装置 |
KR102614377B1 (ko) * | 2021-11-26 | 2023-12-19 | 주식회사 아티크론 | Cim 기반 lcc를 구비한 메모리 디바이스 |
CN113971971B (zh) * | 2021-12-22 | 2022-05-20 | 中科南京智能技术研究院 | 一种带正负计算的存内计算单元、阵列及装置 |
CN114300012B (zh) * | 2022-03-10 | 2022-09-16 | 中科南京智能技术研究院 | 一种解耦合sram存内计算装置 |
CN114464239B (zh) * | 2022-04-12 | 2022-07-05 | 中科南京智能技术研究院 | 一种存内计算单元 |
CN114512161B (zh) * | 2022-04-19 | 2022-07-05 | 中科南京智能技术研究院 | 一种带符号的存内计算装置 |
WO2024027936A1 (en) * | 2022-08-05 | 2024-02-08 | Synthara Ag | Compact in-memory computer architecture |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979503A (zh) * | 2019-03-22 | 2019-07-05 | 安徽大学 | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 |
CN110058839A (zh) * | 2019-03-21 | 2019-07-26 | 安徽大学 | 一种基于静态随机存储器内存内减法的电路结构 |
CN110427171A (zh) * | 2019-08-09 | 2019-11-08 | 复旦大学 | 可扩展的定点数矩阵乘加运算的存内计算结构和方法 |
CN110633069A (zh) * | 2019-09-06 | 2019-12-31 | 安徽大学 | 一种基于静态随机存储器的乘法电路结构 |
CN110750232A (zh) * | 2019-10-17 | 2020-02-04 | 电子科技大学 | 一种基于sram的并行乘加装置 |
WO2020112485A1 (en) * | 2018-11-29 | 2020-06-04 | The Regents Of The University Of Michigan | Sram-based process in memory system |
EP3671748A1 (en) * | 2018-12-21 | 2020-06-24 | IMEC vzw | In-memory computing for machine learning |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10748603B2 (en) * | 2018-09-28 | 2020-08-18 | Intel Corporation | In-memory multiply and accumulate with global charge-sharing |
-
2020
- 2020-07-14 CN CN202010677209.7A patent/CN111880763B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020112485A1 (en) * | 2018-11-29 | 2020-06-04 | The Regents Of The University Of Michigan | Sram-based process in memory system |
EP3671748A1 (en) * | 2018-12-21 | 2020-06-24 | IMEC vzw | In-memory computing for machine learning |
CN110058839A (zh) * | 2019-03-21 | 2019-07-26 | 安徽大学 | 一种基于静态随机存储器内存内减法的电路结构 |
CN109979503A (zh) * | 2019-03-22 | 2019-07-05 | 安徽大学 | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 |
CN110427171A (zh) * | 2019-08-09 | 2019-11-08 | 复旦大学 | 可扩展的定点数矩阵乘加运算的存内计算结构和方法 |
CN110633069A (zh) * | 2019-09-06 | 2019-12-31 | 安徽大学 | 一种基于静态随机存储器的乘法电路结构 |
CN110750232A (zh) * | 2019-10-17 | 2020-02-04 | 电子科技大学 | 一种基于sram的并行乘加装置 |
Non-Patent Citations (2)
Title |
---|
Conv-sram: An energy-efficient sram with in-memory dot-product computation for low-power convolutional neural networks;Avishek Biswas et al.;《IEEE Journal of Solid-State Circuits》;20190131;第54卷(第1期);第217-230页 * |
一种基于斯格明子介质的高效存内计算框架;刘必成 等;《计算机研究与发展》;20190415;第56卷(第4期);第798-809页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111880763A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111880763B (zh) | 一种在内存中实现带有正负数乘加的sram电路 | |
CN111816231B (zh) | 一种双-6t sram结构的存内计算装置 | |
CN112558919B (zh) | 一种存内计算位单元及存内计算装置 | |
CN109979503B (zh) | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 | |
CN110633069B (zh) | 一种基于静态随机存储器的乘法电路结构 | |
CN112599165B (zh) | 一种多bit输入与多bit权重乘累加的存内计算单元 | |
CN112036562B (zh) | 一种应用于存内计算的位单元及存算阵列装置 | |
CN113257306B (zh) | 一种基于静态随机存取存储器的存算一体阵列及加速装置 | |
US20220269483A1 (en) | Compute in memory accumulator | |
CN113296734B (zh) | 一种多位存算装置 | |
CN116206650B (zh) | 一种8t-sram单元及基于该种8t-sram单元的运算电路、芯片 | |
CN113703718B (zh) | 一种可变权重的多位存内计算装置 | |
CN116126779A (zh) | 一种9t存算电路、乘累加运算电路、存内运算电路及芯片 | |
CN114300012A (zh) | 一种解耦合sram存内计算装置 | |
CN113936717A (zh) | 一种复用权重的存算一体电路 | |
CN115691613B (zh) | 一种基于忆阻器的电荷型存内计算实现方法及其单元结构 | |
CN115223619A (zh) | 一种存内计算电路 | |
CN114895869B (zh) | 一种带符号的多比特存内计算装置 | |
CN116204490A (zh) | 一种基于低电压技术的7t存算电路、乘累加运算电路 | |
CN115312093A (zh) | 一种基于9tsram的存内计算单元及阵列 | |
WO2023015105A1 (en) | Folding column adder architecture for digital compute in memory | |
CN115424645A (zh) | 计算器件、存储器控制器和执行存储器中计算的方法 | |
CN116543808A (zh) | 一种基于sram单元的全数字域存内近似计算电路 | |
CN117636945B (zh) | 5bit带符号位的同或与同或累加运算电路、CIM电路 | |
CN114911453B (zh) | 一种多比特乘累加全数字存内计算装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |