CN117910424B - 时域存算单元、时域量化单元、及时域存内计算结构 - Google Patents
时域存算单元、时域量化单元、及时域存内计算结构 Download PDFInfo
- Publication number
- CN117910424B CN117910424B CN202410317963.8A CN202410317963A CN117910424B CN 117910424 B CN117910424 B CN 117910424B CN 202410317963 A CN202410317963 A CN 202410317963A CN 117910424 B CN117910424 B CN 117910424B
- Authority
- CN
- China
- Prior art keywords
- dff
- bit line
- time domain
- sram
- bit
- 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
- 238000013139 quantization Methods 0.000 title claims abstract description 61
- 238000004364 calculation method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000000630 rising effect Effects 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 17
- 239000013256 coordination polymer Substances 0.000 claims description 8
- 238000009825 accumulation Methods 0.000 claims description 7
- 238000007599 discharging Methods 0.000 claims description 7
- 101150110971 CIN7 gene Proteins 0.000 claims description 6
- 101100286980 Daucus carota INV2 gene Proteins 0.000 claims description 6
- 101150110298 INV1 gene Proteins 0.000 claims description 6
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 claims description 6
- 101100397045 Xenopus laevis invs-b gene Proteins 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 6
- 101150070189 CIN3 gene Proteins 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 4
- 101100508840 Daucus carota INV3 gene Proteins 0.000 claims description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 claims 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000004088 simulation Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000000342 Monte Carlo simulation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
- G06F30/3953—Routing detailed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Neurology (AREA)
- Geometry (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明涉及集成电路设计技术领域,更具体的,涉及时域存算单元、时域量化单元、及时域存内计算结构。本发明基于经典的6T‑SRAM子单元进行设计;6T‑SRAM子单元用于存储权重数据,通过字线INL、INM实现输入,通过多比特计算子单元实现存内计算,并将位线VCL、VCM、VCR的放电延时表征计算结果,实现存内计算的时域化。本发明通过非线性时序量化模块对计算结果的非线性量化,可以提高量化的适用范围,并提高使用效率。本发明解决了现有技术中电流域和电压域的存内运算电路的在性能和功耗上不能满足需求的问题。
Description
技术领域
本发明涉及集成电路设计技术领域,更具体的,1,一种基于6T-SRAM的基于6T-SRAM的时域存算单元;2,基于该种时域存算单元构建的时域量化单元;3、基于该种时域量化单元构建的时域存内计算结构。
背景技术
神经网络处理需要对输入和权重进行大量的内存访问,这会导致内存瓶颈,从而降低神经处理单元的性能,即为冯诺依曼体系结构。它是通过分离存储器(Memory)和计算单元来实现的。大量数据在内存和处理单元之间往返。
在冯诺依曼体系结构的基础上,提出了存内计算(CIM)过程来消除以前的神经处理单元(NPU)体系结构的开销。存内计算是同时在权重和激活之间执行多次乘法运算,并将它们累积。在该架构中所需要计算的数据存储在阵列内部,在存储器内就能完成计算,读出的数据便是运算后的结果。该架构的优势在于可以一次同时激活多行,对多行数据进行处理,提高处理数据的吞吐量。在该架构下,数据无需在存储器和运算器之间移动,这样可以节省大量的功耗并降低延时。现有的存内运算电路大多是基于电流域和电压域的,这些方案在性能和功耗上不能满足需求,仍存在可以提升的空间。
发明内容
基于此,有必要针对现有技术中电流域和电压域的存内计算电路在性能和功耗上不能满足需求的问题,提供了时域存算单元、及时域存内计算结构。
本发明采用以下技术方案实现:
第一方面,本发明公开了一种基于6T-SRAM的时域存算单元,包括:N×4个6T-SRAM子单元、1×4个预充电子单元、1个多比特计算子单元、1×4个连接子单元。
N×4个6T-SRAM子单元用于存储权重数据。其中,N×4个6T-SRAM子单元分为N小行4小列;位于第j小列的6T-SRAM子单元共用位线BL<j-1>、位线BLB<j-1>,j∈[1,4];位于第i小行的6T-SRAM子单元共用字线WL<i-1>;i∈[1, N]。
位于第j小列的预充电子单元用于对位线BL<j-1>、位线BLB<j-1>进行预充。
多比特计算子单元用于进行权重与输入的乘法运算。多比特计算子单元包括:16个NMOS管N3~N18。N3、N7、N11、N15的栅极连接字线INL;N5、N9、N13、N17的栅极连接字线INM;N4、N6的栅极连接位线LBL<0>;N8、N10连接位线LBL<1>;N16、N18的栅极连接位线LBL<2>;N12、N14的栅极连接位线LBL<3>;N3、N5、N7、N9、N11、N13、N15、N17的栅极接地GND;N3的源极连接N4的漏极,N5的源极连接N6的漏极,N7的源极连接N8的漏极,N9的源极连接N10的漏极,N11的源极连接N12的漏极,N13的源极连接N14的漏极,N15的源极连接N16的漏极,N17的源极连接N18的漏极;N4、N6、N8的源极连接字线VCL;N10、N18的源极连接字线VCM;N12、N14、N16的源极连接字线VCR。其中,N3、N4、N9、N10、N11、N12的宽长比相同;N5、N6、N7、N8、N13、N14、N15、N16的宽长比相同,且是N3宽长比的2倍;N17、N18的宽长比相同,且是N3宽长比的4倍。
1×4个连接子单元用于将N×4个6T-SRAM子单元和1个多比特计算子单元连接起来。其中,位线BL<j-1>、位线BLB<j-1>通过位于第j小列的连接子单元连接位线LBL<j-1>;位于第j小列的预充电子单元和连接子单元共用位线BL<j-1>、位线BLB<j-1>。
其中,字线INM、INL分别表征2bit输入的高位与低位,位线LBL<0>、LBL<1>、LBL<2>、LBL<3>分别表征4bit权重20:21:23:22;位线VCL、VCM、VCR上的放电延时表征运算结果。
该种基于6T-SRAM的时域存算单元的实现根据本公开的实施例的方法或过程。
第二方面,本发明公开了一种时域量化单元,包括:M×1个如第一方面公开的基于6T-SRAM的时域存算单元、1个非线性时序跟踪模块。
M×1个基于6T-SRAM的时域存算单元用于进行输入与权重的乘法、及对应的乘累加运算。M×1个时域存算单元构成一个子存算阵列,分为M大行、1大列。其中,同一大列的多比特计算子单元共用同一条位线VCL、同一条位线VCM、同一条位线VCR;同一小列的连接子单元共用同一条全局位线GBL、同一条全局位线GBLB。
1个非线性时序跟踪模块与子存算阵列连接。非线性时序跟踪模块利用放电切换型位线技术生成非线性的量化时钟CK,每个量化时钟CK在参考端产生一个与子存算阵列中乘法运算结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对子存算阵列的运算结果进行量化。
该种时域量化单元的实现根据本公开的实施例的方法或过程。
第三方面,本发明公开了一种时域存内计算结构,包括:T个如第二方面所述的时域量化单元。
T个时域量化单元用于进行输入与权重的乘法、及对应的乘累加运算和量化。其中,T个时域量化单元分为T大列。
其中,同一小行的6T-SRAM子单元共用同一条字线WL;同一小行的连接子单元共用同一条字线HWL;同一小行的多比特计算子单元共用同一条字线INL、同一条字线INM。
该种时域存内计算结构的实现根据本公开的实施例的方法或过程。
与现有技术相比,本发明具备如下有益效果:
1,本发明提出了一种基于6T-SRAM的时域存算单元,基于传统的6T-SRAM子单元进行构建,通过设计出预充电子单元、多比特计算子单元、连接子单元,实现在字线INM、INL上进行2bit输入,在位线LBL<0>、LBL<1>、LBL<2>、LBL<3>表征4bit权重,通过位线VCL、VCM、VCR上的放电延时来表征运算结果,实现运算结果的时域化。
2,本发明提供了一种时域量化单元,设计了非线性时序跟踪模块,利用放电切换型位线技术生成非线性的量化时钟CK,每个量化时钟CK在参考端产生一个与子存算阵列中乘法运算结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对子存算阵列的运算结果进行量化;相比传统ADC量化的方法,本发明的时序量化可以提高量化的适用范围,并提高使用效率。
3,本发明提供了一种时域存内计算结构,基于新设计的时域量化单元进行构建,可适应电路应用的需要,实现并行计算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例1提供的基于6T-SRAM的时域存算单元整体结构图;
图2为图1的具体部件连接图;
图3为图2中6T-SRAM子单元的电路图;
图4为图2中预充电子单元的电路图;
图5为图2中多比特计算子单元的电路图;
图6为图2中连接子单元的电路图;
图7为本发明实施例1公开的时域量化单元整体结构图;
图8为图7中非线性时序跟踪模块的电路图;
图9为图8中复制子单元的电路图;
图10为本发明实施例2提供的时域存内计算结构的部分结构图;
图11为本发明实施例3提供的仿真实验得到的MAC值与产生的时域延时波形示意图;
图12为本发明实施例3提供的仿真实验得到的非线性时序跟踪模块工作波形图;
图13为本发明实施例3提供的仿真实验得到的非线性时序跟踪模块在宽电压下的能效图;
图14为本发明实施例3提供的仿真实验得到的两比特数的不同输入与权重组合的电压累积的蒙特卡罗仿真结果图;
图15为本发明实施例3提供的仿真实验得到的非线性时序跟踪模块准确性的蒙特卡罗仿真结果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当组件被称为“安装于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“设置于”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中组件。当一个组件被认为是“固定于”另一个组件,它可以是直接固定在另一个组件上或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或/及”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例1
参看图1、图2,本实施例1公开了一种基于6T-SRAM的时域存算单元,包括:N×4个6T-SRAM子单元、1×4个预充电子单元、1个多比特计算子单元、1×4个连接子单元。
下面逐一进行介绍:
1,对于N×4个6T-SRAM子单元,其用于存储权重数据。N≥1,需要说明的是,N的数值越大,所能存储的权重数据越多,方便并行计算。一般的,N取16。
N×4个6T-SRAM子单元分为N小行4小列。位于第j小列的6T-SRAM子单元共用位线BL<j-1>、位线BLB<j-1>,j∈[1,4];位于第i小行的6T-SRAM子单元共用字线WL<i-1>;i∈[1, N]。
参看图3,6T-SRAM子单元即是传统的6T存储单元,其包括2个PMOS管MP1~MP2、4个NMOS管MN1~MN4。MP1、MN1构成一个反相器,MP2、MN2构成另一个反相器,两个反相器交叉耦合形成存储节点Q、QB。
其中,在位于第j小列的6T-SRAM子单元中,存储节点Q通过MN3连接位线BL<j-1>,存储节点QB通过MN4连接位线BLB<j-1>;在位于第i行的6T-SRAM子单元中,MN3、MN4的栅极连接字线WL<i-1>。
6T-SRAM子单元能够实现数据读、数据写和数据保持等基本功能,其操作逻辑不变,此处不再展开;
2,对于1×4个预充电子单元,其位于第j小列的预充电子单元用于对位线BL<j-1>、位线BLB<j-1>进行预充。
参看图4,预充电子单元包括:2个PMOS管P1~P2。
其中,在位于第j小列的预充电子单元中,P1、P2的栅极连接预充控制信号Prec<j-1>,P1、P2的源极连接电源VDD,P1的漏极连接位线BL<j-1>,P2的漏极连接位线BLB<j-1>。
当Prec<j-1>为低电平时,P1、P2即导通,VDD通过P1给BL<j-1>充电到高电平,VDD通过P2给BLB<j-1>充电到高电平。当Prec<j-1>为高电平时,P1、P2即关断。
3,对于多比特计算子单元,其用于进行权重与输入的乘法运算。
参看图5,多比特计算子单元包括:16个NMOS管N3~N18。
N3、N7、N11、N15的栅极连接字线INL;N5、N9、N13、N17的栅极连接字线INM;N4、N6的栅极连接位线LBL<0>;N8、N10连接位线LBL<1>;N16、N18的栅极连接位线LBL<2>;N12、N14的栅极连接位线LBL<3>;N3、N5、N7、N9、N11、N13、N15、N17的栅极接地GND;N3的源极连接N4的漏极,N5的源极连接N6的漏极,N7的源极连接N8的漏极,N9的源极连接N10的漏极,N11的源极连接N12的漏极,N13的源极连接N14的漏极,N15的源极连接N16的漏极,N17的源极连接N18的漏极;N4、N6、N8的源极连接字线VCL;N10、N18的源极连接字线VCM;N12、N14、N16的源极连接字线VCR。
其中,N3、N4、N9、N10、N11、N12的宽长比相同;N5、N6、N7、N8、N13、N14、N15、N16的宽长比相同,且是N3宽长比的2倍;N17、N18的宽长比相同,且是N3宽长比的4倍。基于上述不同设计的宽长比,在VCL、VCM、VCR进行放电时会出现不同的放电延时。
LBL<0>的影响MOS管为N3~N6,对应4bit权重的最低位20;LBL<1>的影响MOS管为N7~N10,对应4bit权重的次低位21;LBL<2>的影响MOS管为N7~N10,对应4bit权重的最高位23;LBL<3>的影响MOS管为N7~N10,对应4bit权重的次高位22。
4,对于1×4个连接子单元,其用于将N×4个6T-SRAM子单元和1个多比特计算子单元连接起来。其中,位线BL<j-1>、位线BLB<j-1>通过位于第j小列的连接子单元连接位线LBL<j-1>。
参看图6,连接子单元包括:2个NMOS管N1~N2、1个反相器INV3。
在位于第j小列的连接子单元中,N1、N2的栅极连接字线HWL,NM1的源极连接位线BL<j-1>,NM1的漏极连接全局位线GBL<j-1>,NM2的源极连接位线BLB<j-1>,NM2的漏极连接全局位线GBLB<j-1>,位线BLB<j-1>经过反相器INV3连接位线LBL<j-1>。
此外,位于第j小列的预充电子单元和连接子单元共用位线BL<j-1>、位线BLB<j-1>。
总的来说,字线INM、INL分别表征2bit输入的高位与低位,位线LBL<0>、LBL<1>、LBL<2>、LBL<3>分别表征4bit权重20:21:23:22;位线VCL、VCM、VCR上的放电延时表征运算结果。
在上述结果中,单个6T-SRAM子单元可以作为完成单比特与单比特的乘法运算的基础单元;因此,1个基于6T-SRAM的时域存算单元最高可以在单运算周期中实现2bit输入与4bit权重的乘法运算。
对于单个6T-SRAM子单元进行单比特与单比特的乘法运算,其具体运算逻辑如下:
任一条字线IN(即INL或INM)的输入信号作为乘法运算的单比特输入;存储节点QB或Q的值作为单比特权重或多比特权重的其中一位上的值;任一条位线VC(即VCL、VCR或VCM)放电过程的延时作为乘法运算的结果。也就是说,位线VC的位线电荷的放电路径由存储节点QB或Q的权重,以及字线IN上输入的信号控制。
例如,打开处于第i小行的6T-SRAM子单元,并打开图5中N3、N4所处的小列(即j=1,为第1小列):
当该列对应的6T-SRAM子单元内存储节电Q为“0”、QB为“1”,即单比特权重为“0”;此时,WL<i-1>为高电平,MN4导通,BLB<0>保持高电平;BLB<0>经过INV3产生低电平的LBL<0>;N4、N6关闭,那么 VCL到地的放电路径关闭。因此,INL的输入信号为高电平还是低电平,即,不论单比特输入为“1”还是“0”,VCL 均无法进行放电,放电延时为 0。即实现乘法运算过程:“0×0=0”和“0×1=0”;INM的情况类似的,此处不再重复。
当该列对应的6T-SRAM子单元内存储节电Q为“1”、QB为“0”,即单比特权重为“1”;此时,N4、N6处于导通状态,那么从VCL到地的放电路径的导通状态则进一步取决于N3、N5的导通状态;其中,INL为高电平时,即单比特输入为“1”,N3导通,VCL通过N3、N4经过一定时长的延时完成放电,即实现乘法运算过程:“1×1=1”;INL为低电平时,即单比特输入为“0”,N3关闭,VCL放电路径关闭,放电延时为 0,即实现乘法运算过程:“1×0=0”。INM的情况是类似的,此处不再重复。
在上述单比特与单比特的乘法运算的基础上,可以使用多个6T-SRAM子单元来分别实现更多比特数中各个位数上的乘法运算,并匹配多个6T-SRAM子单元上的电流值大小,来调整每一位上运算结果为“1”时的放电延时长度,进而产生不同的MAC值。
以2bit输入与4bit权重的乘法为例进行说明:还是打开第i小行的6T-SRAM子单元,打开图5的全部小列,并通过INM、INL分别输入单比特,即进行2bit输入和4bit权重的计算,运算模型为A1A2×B1B2B3B4;其中,A1A2为2bit输入,A1、A2则为2bit输入不同位上的值,A1、A2的输入位分别为20、21;B1B2B3B4为4bit权重,B1、B2、B3、B4则为4bit权重不同位上的值,B1、B2、B3、B4的权重位分别为20、21、22、23。
第i小行的6T-SRAM子单元同时开始计算本位上的乘积结果,每一位上输出表征乘积结果的“部分放电延时”会合成最终的“总放电延时”:参看图5,2bit输入中20的“1”和4bit权重中20的“1”相乘时,流过N3、N4的电流为I0,产生的延时为T0,结果在VCL上表征,即乘积结果为1×20;2bit输入中20的“1”和4bit权重中21的“1”相乘时,由于N7、N8的宽长比是N3、N4的两倍,所以流过N7、N8的电流为2 I0,结果同样在VCL上表征,产生的延时为T0/2,即乘积结果为1×21;2bit输入中21的“1”和4bit权重中24的“1”相乘时,由于N17、N18的宽长比是N3、N4的四倍,所以流过N17、N18的电流为4 I0;结果在VCM上表征,产生的延时为T0/4,即乘积结果为21×24;其他情况与上面类似,不再赘述。
总的来说,在单小行的6T-SRAM子单元同时工作时,对于VCL、VCR,存在五种情况:放电电流为0、I0、2I0、3I0、5I0,对应放电延时为0 、T0、T0/2、T0/3、T0/5;对于VCM,存在三种情况:放电电流为0、I0、4I0、5I0,对应放电延时为0 、T0、T0/4、T0/5。那么,这些不同的放电延时即对应这不同的乘法运算结果:0 、T0、T0/2、T0/3、T0/4、T0/5分别对应MAC值000、 001、010、011、100、101。
实施例2
参看图7,本实施例2公开了一种时域量化单元,包括:M×1个如实施例1公开的基于6T-SRAM的时域存算单元、1个非线性时序跟踪模块。
M×1个基于6T-SRAM的时域存算单元用于输入与权重的乘法、及对应的乘累加运算。如图7所示,M×1个时域存算单元构成一个子存算阵列(Sub_BANK),分为M大行、1大列;其中,同一大列的多比特计算子单元共用同一条位线VCL、同一条位线VCM、同一条位线VCR;同一小列的连接子单元共用同一条全局位线GBL、同一条全局位线GBLB;
由于1个Sub_BANK存在M大行时域存算单元;例如:取M为8,假设INL<0>为A1,INM<0>为A2;INL<1>为A3,INM<A4>;……,INL<7>为A14,INM<7>为A15;第1大行的4个6T-SRAM子单元的权重组合为B1B2B3B4;第2大行的4个6T-SRAM子单元的权重组合为C1C2C3C4;……;第8大行的4个6T-SRAM子单元的权重组合为I1I2I3I4。
则,将VCL、VCM、VCR独立看作三条位线,那么其对应也有相应的累加结果。若将VCL、VCM、VCR视作同一根位线VC,则在其上累加的结果为:A2A1×B3B4B2B1+ A4A3×C3C4C2C1+……+ A15A14×I3I4I2I1。
非线性时序跟踪模块与子存算阵列连接。非线性时序跟踪模块利用放电切换型位线技术生成非线性的量化时钟CK,每个量化时钟CK在参考端产生一个与子存算阵列中乘法运算结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对子存算阵列中运算结果进行量化。
对于非线性时序跟踪模块来说,其包括:非线性时序控制器、复制放电列、时钟控制部、量化输出部。
参看图8,非线性时序控制器包括W个D触发器DFF0~DFFW-1、W+1个与门AND0~ANDW;W≥5。
需要说明的是,W至少取5,图8即展示了W取5的情况。这是因为,参看实施例1,在单小行的6T-SRAM子单元同时工作时,统计VCM、VCR、VCL上的放电情况共5种(排除放电延时为0的情况):放电延时为T0、T0/2、T0/3、T0/4、T0/5,那么设置W即保证单小行的6T-SRAM子单元同时工作的情况。当然,若多小行的6T-SRAM子单元同时工作,由于会在VCM、VCR、VCL进行累加,W的具体数值要依据VCM、VCR、VCL的具体放电情况进行调整。
DFF0的D端连接D信号;DFFh的Q端连接DFFh+1的D端,DFFh的端连接ANDh的一个输入端;h∈[0,W-2];DFFW-1的Q端悬空,DFFW-1的端连接ANDW-1的一个输入端;DFFg的CP端连接时钟信号CLK,DFFg的RESET端连接复位信号res;g∈[0,W-1];ANDg的另一个输入端连接到时序控制信号CLK_PRE;ANDg的输出端连接字线RWL<g>;其中,D信号为上升沿信号,CLK_PRE由信号START、信号RBL经过ANDW产生。
复制放电列包括W个复制子单元cell0~cellW-1。其中,cell0~cellW-1共用同一根位线RBL、同一根位线RBLB;cellg连接字线RWL<g>;RBL通过PMOS管P0连接VDD,P0的栅极连接CLK_PRE。
需要注意的是,复制子单元也是6T单元,包括:2个PMOS管CP1~CP2、4个NMOS管CN1~CN4。参看图9,CP1、CN1构成一个反相器,CP2、CN2构成另一个反相器,两个反相器交叉耦合成存储节点CQ、CQB。在第w个复制子单元中,存储节点CQ通过CN3连接位线RBL,存储节点CQB通过CN4连接位线RBLB,CN3的栅极连接字线RWL<w-1>;CN4的栅极接地GND;w∈[1,W]。
时钟控制部包括2个反相器INV1、INV2。INV1的输入端连接位线RBL,INV1的输出端连接INV2的输入端,INV2的输出端连接量化时钟CK。
量化输出部包括3个D触发器DFF5~DFF7、3个反相器INV4~INV6、3个计数器Counter1~Counter3;位线VCL通过INV4连接DFF5的D端,DFF5的Q端连接Counter1的使能端,CK连接Counter1的计数端;位线VCM通过INV5连接DFF6的D端,DFF6的Q端连接Counter2的使能端,CK连接Counter2的计数端;位线VCR通过INV6连接DFF7的D端,DFF7的Q端连接Counter3的使能端,CK连接Counter3的计数端;DFF5、DFF6、DFF7的CP端连接量化时钟CK;DFF5、DFF6、DFF7的RESET端连接复位信号RESET。
总的来说,
当START为0时,CLK_PRE为0,P0打开,VDD将RBL预充到高电平;DFF0~DFFW-1处于复位状态,其Q端均为0;AND0~ANDW-1输出为0,cell0~cellW-1关闭。
当START为1时,由于RBL预充为高电平,CLK_PRE为1,P0关断;AND0~ANDW-1输出为1,RWL<0>~RWL<W-1>全部开启,RBL向cell0~cellW-1放电;当CLK经过第一个上升沿,DFF0工作、其Q端为1、其端为0,AND0输出变为0,RWL<0>关断,cell0不再放电;与此同时,RBL由于放电变为低电平,CLK_PRE再次变为低电平,对RBL重新预充;在CLK第二个上升沿到来前,RWL<1>~RWL<W-1>开启,RBL向cell1~cellW-1放电;当CLK经过第二个上升沿,DFF1工作、其Q端为1、其端为0,AND1输出变为0,RWL<1>关断,cell1不再放电;与此同时,RBL由于放电变为低电平,CLK_PRE再次变为低电平,对RBL重新预充;依次类推,直到cellW-1不再放电;其中,RBL高低电平的变化间隔随着以上过程的进行而逐渐变大;CK与RBL的变化间隔保持一致,为间隔逐渐增大的脉冲信号;
DFF5与Counter1配合使用,对VCL放电延时进行量化;VCL经过INV4形成一个上升沿信号D1、并作用在DFF5的D端;VCL的放电延时越小,D1的上升速度越快,DFF5的D端从0变成1的耗时越短;
当CK的第一个上升沿到来时,若DFF5的D端已经为1,则DFF5的Q端为1,Counter1开始统计CK的剩余脉冲数、并作为VCL放电延时的量化结果;当CK的第一个上升沿到来时,若DFF5的D端依然为0,则Counter1不开启、并等待CK的第二个上升沿;当CK的第二个上升沿到来时,若DFF5的D端已经为1,则DFF5的Q端为1,Counter1开始统计CK的剩余脉冲数、并作为VCL放电延时的量化结果;当CK的第二个上升沿到来时,若DFF5的D端依然为0,则Counter1不开启、并等待CK的第三个上升沿;依次类推,当CK的最后一个上升沿到来时,若DFF5的D端已经为1,则Counter1只统计CK最后一个脉冲、并作为VCL放电延时的量化结果;当CK的最后一个上升沿到来时,若DFF5的D端依然为0,此时Counter1不开启,即VCL放电延时的量化结果为000。
具体的,参看实施例1,在单小行的6T-SRAM子单元同时工作时,对于VCL来说,放电延时存在5种情况:0 、T0、T0/2、T0/3、T0/5,对应的MAC值000、 001、010、011、101。
那么,若VCL的放电延时为T0/5,那么在CK的第一个上升沿到来时,DFF5的D端就已经为1,则DFF5的Q端为1,Counter1开启、并开始统计CK的剩余脉冲数,此时的计数结果为5、对应VCL放电延时的量化结果为101。若VCL的放电延时为T0/3,在CK的前2个上升沿到来时,DFF5的D端依然为0,则Counter1不开启、并等待CK的第三个上升沿;当CK的第三个上升沿到来时,DFF5的D端已经为1,则DFF5的Q端为1,Counter1开启、并开始统计CK的剩余脉冲数,此时的计数结果为3、对应VCL放电延时的量化结果为011。其他情况依次类推,不再赘述。
DFF6工作原理与DFF5相同,与Counter2配合使用,对VCM放电延时进行量化:
VCM经过INV5形成一个上升沿信号D2、并作用在DFF6的D端;VCM的放电延时越小,D2的上升速度越快,DFF6的D端从0变成1的耗时越短;
当CK的第一个上升沿到来时,若DFF6的D端已经为1,则DFF6的Q端为1,Counter2开始统计CK的剩余脉冲数、并作为VCM放电延时的量化结果;当CK的第一个上升沿到来时,若DFF6的D端依然为0,则Counter2不开启、并等待CK的第二个上升沿;当CK的第二个上升沿到来时,若DFF6的D端已经为1,则DFF6的Q端为1,Counter2开始统计CK的剩余脉冲数、并作为VCM放电延时的量化结果;当CK的第二个上升沿到来时,若DFF6的D端依然为0,则Counter2不开启、并等待CK的第三个上升沿;依次类推,当CK的最后一个上升沿到来时,若DFF6的端已经为1,则Counter2只统计CK最后一个脉冲、并作为VCM放电延时的量化结果;当CK的最后一个上升沿到来时,若DFF6的D端依然为0,此时Counter2不开启,即VCM放电延时的量化结果为000。
DFF7工作原理与DFF5相同,与Counter3配合使用,对VCR放电延时进行量化:
VCR经过INV6形成一个上升沿信号D3、并作用在DFF7的D端;VCR的放电延时越小,D3的上升速度越快,DFF7的D端从0变成1的耗时越短;
当CK的第一个上升沿到来时,若DFF7的D端已经为1,则DFF7的Q端为1,Counter3开始统计CK的剩余脉冲数、并作为VCR放电延时的量化结果;当CK的第一个上升沿到来时,若DFF7的D端依然为0,则Counter3不开启、并等待CK的第二个上升沿;当CK的第二个上升沿到来时,若DFF7的D端已经为1,则DFF7的Q端为1,Counter3开始统计CK的剩余脉冲数、并作为VCR放电延时的量化结果;当CK的第二个上升沿到来时,若DFF7的D端依然为0,则Counter3不开启、并等待CK的第三个上升沿;依次类推,当CK的最后一个上升沿到来时,若DFF7的端已经为1,则Counter3只统计CK最后一个脉冲、并作为VCR放电延时的量化结果;当CK的最后一个上升沿到来时,若DFF7的D端依然为0,此时Counter3不开启,即VCR放电延时的量化结果为000。
实施例3
本实施例3公开了一种时域存内计算结构,包括:如实施例2公开的T个时域量化单元,用于输入与权重的乘法、及对应的乘累加运算和量化。
T个时域量化单元分为T大列。参看图10,即展示了T取8的情况。
其中,同一小行的6T-SRAM子单元共用同一条字线WL;同一小行的连接子单元共用同一条字线HWL;同一小行的多比特计算子单元共用同一条字线INL、同一条字线INM。
参看实施例2,单个大列的时域量化单元可在单个运算周期实现2bit输入与4bit权重的乘法、及对应的乘累加运算,那么在时域存内计算结构中,多大列工作可进行并行运算。
为了保证T个时域量化单元的正常工作,需要在时域存内计算结构配备相应的外围功能电路(未画出),因此,时域存内计算结构还包括:位线组、字线组、行译码器、字线驱动器、预充电路、列选择器、灵敏放大器、移位加法器、输入输出单元、时序控制模块。
位线组包括4*T *M对位线BL和BLB、4*T对全局位线GBL和GBLB、4*T*M条位线LBL、T条位线VCL、T条位线VCM、T条位线VCR。
字线组包括N*M条字线WL、M条字线HWL、M对字线INL和INM。
行译码器用于控制相应字线的字线驱动。字线驱动器用于根据行译码器的译码结果控制字线的开启或关闭。预充电路用于对相应位线的电容进行充电。列选择器用于选择相应位线,进而结合行译码器和字线驱动实现对任意6T-SRAM子单元进行选择,并在读、写模式下执行相应的读/写操作。灵敏放大器用于在读模式下输出任意6T-SRAM子单元中存储的权重数据。移位加法器用于将高位权重的计算结果移位,并完成最终结果的累加。输入输出单元用于在写模式下获取待写入的输入数据,并在读模式下输出读取到的存储数据。时序控制模块用于生成读/写操作过程中所需的各个时钟信号。
时域存内计算结构具体工作方式如下:
S1:使能预充电子单元,对存内计算电路中的T条位线VCL、T条位线VCM、T条位线VCR进行预充电操作;
S2:根据权重数据并行激活相应字线WL,根据输入数据激活对应字线INL、INM;
S3:位线VCL、VCM、VCR对应进行放电,并在时域将其上的放电延时与CK进行比较,从而在数字域量化乘累加运算结果;
S4:通过移位加法器完成高位权重运算结果的移位,并实现最终结果的输出。
基于该时域存内计算结构,可以封装成CIM芯片,以实现应用。
实施例4
为了验证实施例2中时域量化单元的有效性,本实施例4在仿真器和测试平台中进行了仿真和性能测试:
令某一小行的6T-SRAM子单元工作,W取5。
1、运算结果的量化过程仿真
实验采用28nm 工艺,模拟过程中通过CK的上升沿抓取5种MAC值对应的延时(TCIMOUT)。模拟过程得到的量化结果的波形图如图11所示。
分析图11所示的量化波形图可知,时域量化单元中的非线性时序跟踪模块所生成的CK,能够实现5种运算结果(001、010、011、100、101)的量化功能。
2、非线性时序跟踪模块性能仿真
通过在宽电压下仿真非线性时序跟踪模块的功能验证和能效,结果参看图12、图13。
分析图12所示的波形示意图可知,非线性时序跟踪模块可以阶梯式关断RWL<0>、RWL<1>、RWL<2>、RWL<3>、RWL<4>,进而控制RBL的放电速度,生成非线性量化时钟CK。
分析图13所示的能效图可知,非线性时序跟踪模块能够在实现基础功能的前提下提高能效。
3、蒙特卡洛仿真
为了验证时域量化单元能够有效克服工艺波动影响,采用28nm 工艺,在仿真器中进行了5000次蒙特卡洛仿真和性能测试,结果如图14、图15所示。
从图14可知,非线性时序跟踪模块能够实现时序量化的功能;
在图15中,在使用MAC结果获得的模拟延时累积,将最终量化值的最大值(101)与次大值(100)一起绘制,并计算最大值与次大值的延时差,以表征准确性。仿真结果表明,相邻结果之间的识别率仍然有保证,电容失配对充电路径的影响可以忽略不计。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种基于6T-SRAM的时域存算单元,其特征在于,包括:
N×4个6T-SRAM子单元,其用于存储权重数据;其中,N×4个6T-SRAM子单元分为N小行4小列;位于第j小列的6T-SRAM子单元共用位线BL<j-1>、位线BLB<j-1>,j∈[1,4];位于第i小行的6T-SRAM子单元共用字线WL<i-1>;i∈[1, N-1];
其中,所述6T-SRAM子单元包括:2个PMOS管MP1~MP2、4个NMOS管MN1~MN4;
MP1、MN1构成一个反相器,MP2、MN2构成另一个反相器,两个反相器交叉耦合形成存储节点Q、QB;
在位于第j小列的6T-SRAM子单元中,存储节点Q通过MN3连接位线BL<j-1>,存储节点QB通过MN4连接位线BLB<j-1>;在位于第i行的6T-SRAM子单元中,MN3、MN4的栅极连接字线WL<i-1>;1×4个预充电子单元;其中,位于第j小列的预充电子单元用于对位线BL<j-1>、位线BLB<j-1>进行预充;
其中,预充电子单元包括:2个PMOS管P1~P2;
在位于第j小列的预充电子单元中,P1、P2的栅极连接预充控制信号Prec<j-1>,P1、P2的源极连接电源VDD,P1的漏极连接位线BL<j-1>,P2的漏极连接位线BLB<j-1>;
当Prec<j-1>为低电平时,P1、P2即导通,VDD通过P1给BL<j-1>充电到高电平,VDD通过P2给BLB<j-1>充电到高电平;当Prec<j-1>为高电平时,P1、P2即关断;
1个多比特计算子单元,其用于进行权重与输入的乘法运算;所述多比特计算子单元包括:16个NMOS管N3~N18;N3、N7、N11、N15的栅极连接字线INL;N5、N9、N13、N17的栅极连接字线INM;N4、N6的栅极连接位线LBL<0>;N8、N10连接位线LBL<1>;N16、N18的栅极连接位线LBL<2>;N12、N14的栅极连接位线LBL<3>;N3、N5、N7、N9、N11、N13、N15、N17的栅极接地GND;N3的源极连接N4的漏极,N5的源极连接N6的漏极,N7的源极连接N8的漏极,N9的源极连接N10的漏极,N11的源极连接N12的漏极,N13的源极连接N14的漏极,N15的源极连接N16的漏极,N17的源极连接N18的漏极;N4、N6、N8的源极连接字线VCL;N10、N18的源极连接字线VCM;N12、N14、N16的源极连接字线VCR;其中,N3、N4、N9、N10、N11、N12的宽长比相同;N5、N6、N7、N8、N13、N14、N15、N16的宽长比相同,且是N3宽长比的2倍;N17、N18的宽长比相同,且是N3宽长比的4倍;
以及
1×4个连接子单元,其用于将N×4个6T-SRAM子单元和1个多比特计算子单元连接起来;其中,位线BL<j-1>、位线BLB<j-1>通过位于第j小列的连接子单元连接位线LBL<j-1>;位于第j小列的预充电子单元和连接子单元共用位线BL<j-1>、位线BLB<j-1>;
其中,字线INM、INL分别表征2bit输入的高位与低位,位线LBL<0>、LBL<1>、LBL<2>、LBL<3>分别表征4bit权重20:21:23:22;位线VCL、VCM、VCR上的放电延时表征运算结果。
2.根据权利要求1所述的基于6T-SRAM的时域存算单元,其特征在于,所述连接子单元包括:2个NMOS管N1~N2、1个反相器INV3;
在位于第j小列的连接子单元中,N1、N2的栅极连接字线HWL,NM1的源极连接位线BL<j-1>,NM1的漏极连接全局位线GBL<j-1>,NM2的源极连接位线BLB<j-1>,NM2的漏极连接全局位线GBLB<j-1>,位线BLB<j-1>经过反相器INV3连接位线LBL<j-1>。
3.一种时域量化单元,其特征在于,包括:
M×1个如权利要求1或2所述的基于6T-SRAM的时域存算单元,其用于进行输入与权重的乘法、及对应的乘累加运算;M×1个的时域存算单元构成一个子存算阵列,分为M大行、1大列;其中,同一大列的多比特计算子单元共用同一条位线VCL、同一条位线VCM、同一条位线VCR;同一小列的连接子单元共用同一条全局位线GBL、同一条全局位线GBLB;
以及
1个非线性时序跟踪模块,其与子存算阵列连接;所述非线性时序跟踪模块利用放电切换型位线技术生成非线性的量化时钟CK,每个量化时钟CK在参考端产生一个与子存算阵列中乘法运算结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对子存算阵列的运算结果进行量化。
4.根据权利要求3所述的时域量化单元,其特征在于,所述非线性时序跟踪模块包括:
非线性时序控制器,其包括W个D触发器DFF0~DFFW-1、W+1个与门AND0~ANDW;W≥5;DFF0的D端连接D信号;DFFh的Q端连接DFFh+1的D端,DFFh的端连接ANDh的一个输入端;h∈[0,W-2];DFFW-1的Q端悬空,DFFW-1的端连接ANDW-1的一个输入端;DFFg的CP端连接时钟信号CLK,DFFg的RESET端连接复位信号res;g∈[0,W-1];ANDg的另一个输入端连接到时序控制信号CLK_PRE;ANDg的输出端连接字线RWL<g>;其中,D信号为上升沿信号,CLK_PRE由信号START、信号RBL经过ANDW产生;
复制放电列,其包括W个复制子单元cell0~cellW-1;其中,cell0~cellW-1共用同一根位线RBL、同一根位线RBLB;cellg连接字线RWL<g>;RBL通过PMOS管P0连接VDD,P0的栅极连接CLK_PRE;
时钟控制部,其包括2个反相器INV1、INV2;INV1的输入端连接位线RBL,INV1的输出端连接INV2的输入端,INV2的输出端连接量化时钟CK;
以及
量化输出部,其包括3个D触发器DFF5~DFF7、3个反相器INV4~INV6、3个计数器Counter1~Counter3;位线VCL通过INV4连接DFF5的D端,DFF5的Q端连接Counter1的使能端,CK连接Counter1的计数端;位线VCM通过INV5连接DFF6的D端,DFF6的Q端连接Counter2的使能端,CK连接Counter2的计数端;位线VCR通过INV6连接DFF7的D端,DFF7的Q端连接Counter3的使能端,CK连接Counter3的计数端;DFF5、DFF6、DFF7的CP端连接量化时钟CK;DFF5、DFF6、DFF7的RESET端连接复位信号RESET。
5.根据权利要求4所述的时域量化单元,其特征在于,所述复制子单元包括:2个PMOS管CP1~CP2、4个NMOS管CN1~CN4;
CP1、CN1构成一个反相器,CP2、CN2构成另一个反相器,两个反相器交叉耦合成存储节点CQ、CQB;
在第w个复制子单元中,存储节点CQ通过CN3连接位线RBL,存储节点CQB通过CN4连接位线RBLB,CN3的栅极连接字线RWL<w-1>;CN4的栅极接地GND;w∈[1,W]。
6.根据权利要求5所述的时域量化单元,其特征在于,
当START为0时,CLK_PRE为0,P0打开,VDD将RBL预充到高电平;DFF0~DFFW-1处于复位状态,其Q端均为0;AND0~ANDW-1输出为0,cell0~cellW-1关闭;
当START为1时,由于RBL预充为高电平,CLK_PRE为1,P0关断;AND0~ANDW-1输出为1,RWL<0>~RWL<W-1>全部开启,RBL向cell0~cellW-1放电;当CLK经过第一个上升沿,DFF0工作、其Q端为1、其端为0,AND0输出变为0,RWL<0>关断,cell0不再放电;与此同时,RBL由于放电变为低电平,CLK_PRE再次变为低电平,对RBL重新预充;在CLK第二个上升沿到来前,RWL<1>~RWL<W-1>开启,RBL向cell1~cellW-1放电;当CLK经过第二个上升沿,DFF1工作、其Q端为1、其端为0,AND1输出变为0,RWL<1>关断,cell1不再放电;与此同时,RBL由于放电变为低电平,CLK_PRE再次变为低电平,对RBL重新预充;依次类推,直到cellW-1不再放电;其中,RBL高低电平的变化间隔随着以上过程的进行而逐渐变大;CK与RBL的变化间隔保持一致,为间隔逐渐增大的脉冲信号;
DFF5与Counter1配合使用,对VCL放电延时进行量化;VCL经过INV4形成一个上升沿信号D1、并作用在DFF5的D端;VCL的放电延时越小,D1的上升速度越快,DFF5的D端从0变成1的耗时越短;
当CK的第一个上升沿到来时,若DFF5的D端已经为1,则DFF5的Q端为1,Counter1开始统计CK的剩余脉冲数、并作为VCL放电延时的量化结果;当CK的第一个上升沿到来时,若DFF5的D端依然为0,则Counter1不开启、并等待CK的第二个上升沿;当CK的第二个上升沿到来时,若DFF5的D端已经为1,则DFF5的Q端为1,Counter1开始统计CK的剩余脉冲数、并作为VCL放电延时的量化结果;当CK的第二个上升沿到来时,若DFF5的D端依然为0,则Counter1不开启、并等待CK的第三个上升沿;依次类推,当CK的最后一个上升沿到来时,若DFF5的D端已经为1,则Counter1只统计CK最后一个脉冲、并作为VCL放电延时的量化结果;当CK的最后一个上升沿到来时,若DFF5的D端依然为0,此时Counter1不开启,即VCL放电延时的量化结果为000;
DFF6工作原理与DFF5相同,与Counter2配合使用,对VCM放电延时进行量化;DFF7工作原理与DFF5相同,与Counter3配合使用,对VCR放电延时进行量化。
7.一种时域存内计算结构,其特征在于,包括:
T个如权利要求3-6中任一项所述的时域量化单元,用于进行输入与权重的乘法、及对应的乘累加运算和量化;其中,T个时域量化单元分为T大列;
其中,同一小行的6T-SRAM子单元共用同一条字线WL;同一小行的连接子单元共用同一条字线HWL;同一小行的多比特计算子单元共用同一条字线INL、同一条字线INM。
8.根据权利要求7所述的时域存内计算结构,其特征在于,还包括:
位线组,其包括4*T *M对位线BL和BLB、4*T对全局位线GBL和GBLB、4*T*M条位线LBL、T条位线VCL、T条位线VCM、T条位线VCR;
字线组,其包括N*M条字线WL、M条字线HWL、M对字线INL和INM;
行译码器,其用于控制相应字线的字线驱动;
字线驱动器,其用于根据行译码器的译码结果控制字线的开启或关闭;
预充电路,其用于对相应位线的电容进行充电;
列选择器,其用于选择相应位线,进而结合行译码器和字线驱动实现对任意6T-SRAM子单元进行选择,并在读、写模式下执行相应的读/写操作;
灵敏放大器,其用于在读模式下输出任意6T-SRAM子单元中存储的权重数据;
移位加法器,其用于将高位权重的计算结果移位,并完成最终结果的累加;
输入输出单元,其用于在写模式下获取待写入的输入数据,并在读模式下输出读取到的存储数据;
以及
时序控制模块,其用于生成读/写操作过程中所需的各个时钟信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410317963.8A CN117910424B (zh) | 2024-03-20 | 2024-03-20 | 时域存算单元、时域量化单元、及时域存内计算结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410317963.8A CN117910424B (zh) | 2024-03-20 | 2024-03-20 | 时域存算单元、时域量化单元、及时域存内计算结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117910424A CN117910424A (zh) | 2024-04-19 |
CN117910424B true CN117910424B (zh) | 2024-05-28 |
Family
ID=90686261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410317963.8A Active CN117910424B (zh) | 2024-03-20 | 2024-03-20 | 时域存算单元、时域量化单元、及时域存内计算结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117910424B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201043035A (en) * | 2009-05-25 | 2010-12-01 | Mstar Semiconductor Inc | Method and device for dealing with inverse quantization |
CN104637530A (zh) * | 2014-04-17 | 2015-05-20 | 清华大学 | 一种冗余结构随机访问存储器 |
CN111880763A (zh) * | 2020-07-14 | 2020-11-03 | 安徽大学 | 一种在内存中实现带有正负数乘加的sram电路 |
CN112071343A (zh) * | 2020-08-18 | 2020-12-11 | 安徽大学 | 一种在存储器中结合电容实现乘法的sram电路结构 |
US11094355B1 (en) * | 2020-05-05 | 2021-08-17 | Ecole Polytechnique Federale De Lausanne (Epfl) | Memory chip or memory array for wide-voltage range in-memory computing using bitline technology |
US11250895B1 (en) * | 2020-11-04 | 2022-02-15 | Qualcomm Incorporated | Systems and methods for driving wordlines using set-reset latches |
CN115964016A (zh) * | 2023-02-07 | 2023-04-14 | 安徽大学 | 基于边沿传输延迟的存算单元电路及乘累加计算电路 |
CN116312670A (zh) * | 2023-02-24 | 2023-06-23 | 安徽大学 | 一种9t1c存算电路、乘累加运算电路、存内运算电路、芯片 |
CN117079688A (zh) * | 2023-09-12 | 2023-11-17 | 安徽大学 | 一种电流域8tsram单元及动态自适应量化的存算电路 |
CN117130978A (zh) * | 2023-10-12 | 2023-11-28 | 东南大学 | 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法 |
CN117316237A (zh) * | 2023-12-01 | 2023-12-29 | 安徽大学 | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11404106B2 (en) * | 2020-07-27 | 2022-08-02 | Robert Bosch Gmbh | Read only memory architecture for analog matrix operations |
US20240045655A1 (en) * | 2021-03-12 | 2024-02-08 | William Marsh Rice University | Charge-domain in-memory computing circuit |
-
2024
- 2024-03-20 CN CN202410317963.8A patent/CN117910424B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201043035A (en) * | 2009-05-25 | 2010-12-01 | Mstar Semiconductor Inc | Method and device for dealing with inverse quantization |
CN104637530A (zh) * | 2014-04-17 | 2015-05-20 | 清华大学 | 一种冗余结构随机访问存储器 |
US11094355B1 (en) * | 2020-05-05 | 2021-08-17 | Ecole Polytechnique Federale De Lausanne (Epfl) | Memory chip or memory array for wide-voltage range in-memory computing using bitline technology |
CN111880763A (zh) * | 2020-07-14 | 2020-11-03 | 安徽大学 | 一种在内存中实现带有正负数乘加的sram电路 |
CN112071343A (zh) * | 2020-08-18 | 2020-12-11 | 安徽大学 | 一种在存储器中结合电容实现乘法的sram电路结构 |
US11250895B1 (en) * | 2020-11-04 | 2022-02-15 | Qualcomm Incorporated | Systems and methods for driving wordlines using set-reset latches |
CN115964016A (zh) * | 2023-02-07 | 2023-04-14 | 安徽大学 | 基于边沿传输延迟的存算单元电路及乘累加计算电路 |
CN116312670A (zh) * | 2023-02-24 | 2023-06-23 | 安徽大学 | 一种9t1c存算电路、乘累加运算电路、存内运算电路、芯片 |
CN117079688A (zh) * | 2023-09-12 | 2023-11-17 | 安徽大学 | 一种电流域8tsram单元及动态自适应量化的存算电路 |
CN117130978A (zh) * | 2023-10-12 | 2023-11-28 | 东南大学 | 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法 |
CN117316237A (zh) * | 2023-12-01 | 2023-12-29 | 安徽大学 | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 |
Non-Patent Citations (2)
Title |
---|
以双字线双阈值4T SRAM为基础的存内计算设计;蔺智挺等;《计算机科学与探索》;20210401;第2116-2125页 * |
高性能SRAM的低功耗设计;熊凯;谭全林;邢座程;李少青;;微电子学;20091220(第06期);第760-764页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117910424A (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11335387B2 (en) | In-memory computing circuit for fully connected binary neural network | |
CN112581996A (zh) | 基于磁性随机存储器的时域存内计算阵列结构 | |
CN110058839B (zh) | 一种基于静态随机存储器内存内减法的电路结构 | |
CN109979503B (zh) | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 | |
CN112558919A (zh) | 一种存内计算位单元及存内计算装置 | |
CN112185447B (zh) | 一种8管双分裂控制存储单元、存储阵列及存内计算装置 | |
CN114300012B (zh) | 一种解耦合sram存内计算装置 | |
CN111816234A (zh) | 一种基于sram位线同或的电压累加存内计算电路 | |
CN113255904A (zh) | 电压裕度增强型电容耦合存算一体单元、子阵列及装置 | |
CN113467751A (zh) | 一种基于磁性随机存储器的模拟域存内计算阵列结构 | |
CN117636945B (zh) | 5bit带符号位的同或与同或累加运算电路、CIM电路 | |
CN117219140B (zh) | 基于8t-sram和电流镜的存内计算电路 | |
CN112509620A (zh) | 基于平衡预充与组译码的数据读取电路 | |
CN116364137A (zh) | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 | |
CN114974337B (zh) | 一种基于自旋磁随机存储器的时间域存内计算电路 | |
CN117316237B (zh) | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 | |
CN117079688A (zh) | 一种电流域8tsram单元及动态自适应量化的存算电路 | |
CN115588446A (zh) | 一种存储运算电路、存内计算电路及其芯片 | |
CN114038492B (zh) | 一种多相采样存内计算电路 | |
CN117910424B (zh) | 时域存算单元、时域量化单元、及时域存内计算结构 | |
CN116204490A (zh) | 一种基于低电压技术的7t存算电路、乘累加运算电路 | |
CN115658010A (zh) | 一种脉冲宽度调制电路、量化电路、存算电路、芯片 | |
CN115954029A (zh) | 多比特运算模块以及使用了该模块的存内计算电路结构 | |
CN114944180B (zh) | 一种基于复制列的可配权重脉冲发生装置 | |
CN115472197A (zh) | 一种通过冗余行量化位线电压差的sram存内计算电路 |
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 |