CN117316237A - 时域8t1c-sram存算单元及时序跟踪量化的存算电路 - Google Patents
时域8t1c-sram存算单元及时序跟踪量化的存算电路 Download PDFInfo
- Publication number
- CN117316237A CN117316237A CN202311635817.1A CN202311635817A CN117316237A CN 117316237 A CN117316237 A CN 117316237A CN 202311635817 A CN202311635817 A CN 202311635817A CN 117316237 A CN117316237 A CN 117316237A
- Authority
- CN
- China
- Prior art keywords
- bit
- sram
- bit line
- quantization
- unit
- 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.)
- Granted
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 76
- 239000003990 capacitor Substances 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 60
- 230000008569 process Effects 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 17
- 230000001934 delay Effects 0.000 claims description 16
- 238000009825 accumulation Methods 0.000 claims description 15
- 238000003491 array Methods 0.000 claims description 14
- 238000007599 discharging Methods 0.000 claims description 14
- 101100286980 Daucus carota INV2 gene Proteins 0.000 claims description 9
- 101100397045 Xenopus laevis invs-b gene Proteins 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 9
- 101150110971 CIN7 gene Proteins 0.000 claims description 8
- 101150110298 INV1 gene Proteins 0.000 claims description 8
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 4
- 230000000630 rising effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000011002 quantification Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims 5
- 238000006880 cross-coupling reaction Methods 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000007547 defect Effects 0.000 abstract description 2
- 238000005265 energy consumption Methods 0.000 abstract description 2
- 230000003068 static effect Effects 0.000 abstract description 2
- 238000004088 simulation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000000342 Monte Carlo simulation Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- 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/24—Bit-line control circuits
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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
- Static Random-Access Memory (AREA)
Abstract
本发明属于集成电路技术领域,具体涉及一种时域8T1C‑SRAM存算单元、以及一种时序跟踪量化的存算电路和芯片。存算单元由2个PMOS管P1~P2,6个NMOS管N1~N6,以及一个电容C0构成;其中,N5、N6和C0构成用于实现单比特或多比特乘法的运算单元;其余元件构成6T‑SRAM单元;运算单元的电路连接关系为:N5的栅极连接在存储节点QB上,N5的源极通过一根源线CSL接电容C0的一端,C0的另一端接地;N5的漏极与N6的源极相连;N6的栅极接运算字线CWL;N6的漏极接全局位线CBL;本发明改善了现有电流域和电压域的存内运算电路在性能和能耗等指标上的不足。
Description
技术领域
本发明属于集成电路技术领域,具体涉及一种时域8T1C-SRAM存算单元、以及一种时序跟踪量化的存算电路和芯片。
背景技术
近年来,深度神经网络DNN在图像处理和语音识别等各种分类应用中取得了显著的成功。DNN中需要执行大量的逻辑计算操作,卷积层中的乘法累加操作需要大量的数据移动,这是功耗和延迟增加的主要原因之一。
现阶段,许多应用硬件DNN加速器的新兴智能应用在处理事件时往往需要频繁访问内存。然而,冯诺依曼体系结构是最常用的数据处理体系结构,如图1左半部分所示,它是通过分离存储器(Memory)和计算单元来实现的。其中所需处理的数据和相应的指令集存储在Memory中。大量数据在内存和处理单元之间往返。但是,随着半导体技术不断发展,运算单元朝着高速发展,而存储阵列则在高密度上不断发展,这就导致存储器的存储速度无法匹配运算单元的运算速度,也就产生了“存储墙”壁垒。此外,研究表明,访问数据所需的时间和功耗是远大于计算时所需的时间和功耗,并且随着技术不断地进步这一差异性会更加明显。冯诺依曼架构是制约设备运算性能和功耗的主要瓶颈,如何在资源有限的设备上,实现高效低开销的运算是未来的发展方向。
为了彻底解决冯诺依曼瓶颈,存内计算架构被提出,如图1右半部分所示。在该架构中所需要计算的数据存储在阵列内部,在存储器内就能完成计算,读出的数据便是运算后的结果。该架构的优势在于可以一次同时激活多行,对多行数据进行处理,提高处理数据的吞吐量。并且该架构之下,数据无需在存储器和运算器之间移动,这样可以节省大量的功耗和延时。通过模糊化存储器和计算器的概念,将二者融为一体可以大幅度提高计算效率。现有的存内运算电路大多是基于电流域和电压域的,这些方案在性能和功耗上仍存在可以提升的空间。
发明内容
为了解决现有技术中电流域和电压域的存内运算电路的性能和能耗等指标难以满足需求的问题,本发明提供一种时域8T1C-SRAM存算单元、以及一种时序跟踪量化的存算电路和芯片。
本发明采用以下技术方案实现:
一种时域8T1C-SRAM存算单元,其由2个PMOS管P1~P2,6个NMOS管N1~N6,以及一个电容C0构成。其中, P1、P2、N1、N2、N3和N4构成具有数据读、写、保持功能的6T-SRAM单元。N5、N6和C0构成用于实现单比特或多比特乘法的运算单元。运算单元的电路连接关系为:N5的栅极连接在6T-SRAM单元的存储节点QB上,N5的源极通过一根源线CSL接电容C0的一端,C0的另一端接地;N5的漏极与N6的源极相连;N6的栅极接运算字线CWL;N6的漏极接全局位线CBL。
在本发明提供的时域8T1C-SRAM存算单元中,运算字线CWL的输入信号作为乘法运算的单比特输入;存储节点QB的值作为单比特权重或多比特权重的其中一位上的值;全局位线CBL放电过程的延时作为乘法运算的结果。
作为本发明进一步的改进,6T-SRAM单元的电路连接关系如下:P1和N1构成一个反相器,P2和N2构成另一个反相器;二者反相交叉耦合形成存储节点Q和QB。存储节点Q通过传输管N3接到位线BLC上,存储节点QB通过传输管N4接到位线BLT上,N3和N4的栅极接字线WL。
本发明还包括一种时序跟踪量化的存算电路,其用于实现数据存储及逻辑运算功能。该电路具有的逻辑运算功能包括单比特与单比特数的乘法、单比特与多比特数的乘法,以及单比特数与多比特数的乘累加运算。该型时序跟踪量化的存算电路包括:存算阵列、位线组、字线组、时序跟踪量化模块、计数器、行译码器、字线驱动、预充电路、列选择器、灵敏放大器、输入输出单元以及主时序控制模块。
其中,存算阵列中包括至少一个由128×128个如前述的8T1C-SRAM存算单元按方阵排列而成的基本阵列。存算阵列中包括两个全同的由64×128个的8T1C-SRAM存算单元构成的左bank和右bank。每个bank中包括8行4列共32个16×16的子阵列。按行将各个子阵列从左到右依次定义为一类~四类子阵列;其中,一类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL两个为一组相连。二类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL四个为一组相连。三类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL八个为一组相连。四类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL十六个为一组相连。源线相连后,当同一子阵列中仅有一行开启时,连在一起的8T1C-SRAM存算单元可以共享源线上连接的所有电容C0;进而改变不同子阵列中放电过程的延时。
位线组包括128对位线BLC和BLT,128条全局字线CBL。存算阵列中同列的所有时域8T1C-SRAM存算单元连接在同一对位线BLC和BLT,以及同一个条全局位线CBL上。将每一类子阵列中对应列序号上全局位线CBL相连,并连接一个反相器后作为运算结果CIMOUT的输出端口。在每个bank中,输出端口的数量为16个。
字线组包括128条字线WL和128条运算字线CWL;在整个存算阵列中,同一行的所有8T1C-SRAM存算单元都连接在同一条字线WL和运算字线CWL上。
时序跟踪量化模块利用放电切换型复制位线技术生成量化时钟CK,每个量化时钟CK在参考端产生一个与存储阵列中最小乘积结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对CIMOUT输出的乘累加运算结果进行量化。
计数器用于统计生成的时钟CK上升沿量化的MAC结果中高电平个数,进而生成乘累加运算的量化结果。
行译码器用于控制各条字线的字线驱动。字线驱动用于根据行译码器的译码结果控制各条字线的开启或关闭。预充电路用于对位线组中的各个位线电容进行充电。列选择器用于选择各位线组,进而结合行译码器和字线驱动实现对存算阵列中任意8T1C-SRAM进行选择,并在读、写模式下执行相应8T1C-SRAM的读/写操作。
灵敏放大器用于在读模式下输出任意8T1C-SRAM中存储的数据。输入输出单元用于在写模式下获取待写入的输入数据,并在读模式下输出读取到的存储数据。主时序控制模块用于生成读/写操作过程中所需的各个时钟信号。
作为本发明进一步的改进,时序跟踪量化模块包括:复制放电列、放电切换单元和输出单元。
其中,复制放电列用于生成与存储阵列中最小乘积结果对应的延时相同的量化时钟CK。复制放电列包括至少两组复制单元,每组包括至少一个复制单元。每个复制单元与存算阵列中使用的8T1C-SRAM存算单元相同,其上挂载的电容分别记为C1和C2。每个复制单元的N3和N4栅极接地。其中一组的复制单元的源线CSL与电容C1的连接点接复制位线BLB;另一组复制单元的源线CSL与电容C2的连接点接复制位线RBLB。复制单元的存储节点QB预设为高电平。
放电切换单元用于交替使能 WL1 和 WL2 信号,进而控制复制位线RBL和RBLB轮流放电。
输出单元由两级反相器构成;输出单元的输入端连接在WL1上,WL1经过两级反相器后生成量化时钟CK并输出。
作为本发明进一步的改进,放电切换单元由两个PMOS管P3和P4、两个反相器INV1和INV2、一个与门AND、以及一个门XOR构成;电路连接关系如下:
P3和P4的源极接VDD,P3的漏极和INV1的输入端接复制位线RBL;P4的漏极和INV2的输入端接复制位线RBLB。控制信号START分别接在AND和XOR的其中一个输入端上,AND的另一个输入端接INV1的输出端A1;XOR的另一个输入端接INV2的输出端A2。AND的输出端和P4的栅极相连并作为信号WL2的节点,XOR的输出端和P3的栅极相连并作为信号WL1的节点。
在本发明的放电切换单元中,RBL通过一个反相器A1后同控制信号START通过一个与门产生WL2信号,并且WL2接在输出RBLB的预充管P4的栅极,控制RBLB的充电;RBLB通过一个反相器A2后,同控制信号START通过一个异或门产生WL1信号,并且WL1接在输出RBL的预充管P3的栅极,控制RBL的充电。因此,放电切换单元的控制逻辑如下:
当START=1时,处于工作状态,此时,复制位线RBL和RBLB根据WLI和WL2的延时交替放电,二者的其中一个位线按指定延时放电至预设的阈值电压后恰好触发另一个位线放电;
当START=0时,处于复位状态,此时,复制位线RBL和RBLB处于高电平并不再放电。
作为本发明进一步的改进,存算阵列中,每个bank中一类到四类子阵列的源线CSL上挂载的电容C0的数量比为8:4:2:1,由于各个子阵列中放电通路上的放电电流大小完全一致,因而各自在CBL上产生的放电延时之比为23:22:21:20;进而在单个BANK内的不同子阵列中形成所需的4bit权重。
作为本发明进一步的改进,本发明提供的时序跟踪量化的存算电路执行单比特与多比特数的乘累加运算的操作过程如下:
S1:并行激活128行CWL,打开预放电开关,清空挂载电容C0的原始数据。
S2:关闭预放电开关,打开预充电开关,将全局的挂载电容C0充至满电荷电位。
S3:将全局CBL充电到底部反向器的阈值电压。
S4:根据输入的数据并行激活存算阵列中各类子阵列对应行的CWL,反相器输出表征运算结果的CIMOUT信号。
S5:在时域将CIMOUT信号的延时与不同延时的参考信号进行比较,根据参考信号中量化时钟CK的数量完成在数字域乘累加运算结果的转化。
作为本发明进一步的改进,时序跟踪量化模块通过对全局位线CBL放电过程中CIMOUT信号的延时T CIMOUT 进行计量,实现了乘累加运算结果的高精度量化。根据乘累加预算的结果的数量,本发明将CIMOUT信号的时域输出延时T CIMOUT 分为120级。其中,量化过程的延时信号遵循以下公式:
;
上式中, R和C REF 表示充电路径上的电阻和电容;V DD 表示电源电压;V INV 表示反相器的翻转阈值电压;T REF 表示参考信号REF的延时;ΔT表示T CIMOUT 和T REF 的延时差。
本发明还包括一种CIM芯片,其由如前述的时序跟踪量化的存算电路封装而成。
本发明提供的技术方案,具有如下有益效果:
本发明在经典的6T-SRAM的基础上,利用两个NMOS管N5、N6和一个电容C0设计了一个时域8T1C-SRAM存算单元,该单元继承了6T-SRAM的数据存储功能,又可以利用N5、N6和C0构成运算单元实现单比特的乘法运算。
在利用时域8T1C-SRAM存算单元构成的存算阵列中,本发明对阵列进行划分,并在划分出的子阵列中对不同模块中连接C0的源线CSL进行特殊的互联布局,进而实现对子模块乘法运算的权重进行分配,使得本发明的存算阵列可以实现多比特的乘法运算和多比特的乘累加运算。不同于电压域和电流域的存算电路需要通过多阶段的操作实现乘累加运算,本发明方案可以在一个时钟周期内完成全部乘法和累积的操作过程。
针对新设计的时域存内计算电路,本发明还设计了专用的量化电路,量化电路部分采用新型放电切换型复制位线电路,通过时序跟踪的方法利用放电切换单元来控制RBL和RBLB轮流放电,实现量化时钟CK的产生,为8T 1C-SRAM的输出在时域上的量化奠定了基础。
本发明时序跟踪量化的存算电路可以克服冯诺依曼瓶颈,大幅提高了计算效率。利用存算阵列中子阵列的存内计算单元互联布局实现权重分配,进而实现了快速的多比特计算,并且通过新设计的时序跟踪量化模块完成了运算结果的高精度量化。本发明克服了传统的电压域和电流域存算电路的性能缺陷。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为背景技术中介绍的存在运算速率瓶颈的冯诺依曼架构(左)以及传统的电流域或电压域的存内计算芯片的架构(右)。
图2为本发明实施例1中提供的时域8T1C-SRAM存算单元的电路图。
图3为本发明实施例2中提供的时序跟踪量化的存算电路的电路架构图。
图4为本发明实施例2提供的时序跟踪量化的存算电路中不同类的子阵列中源线CSL的电路连接状态。
图5为时序跟踪量化的存算电路的每个bank中,执行1bit×4bit乘法运算时参与运算的8T1C-SRAM存算单元的分布,图中灰色部分为阵列中参与工作的单元。
图6为时序跟踪量化的存算电路的每个bank中,执行1bit和4bit间乘累加运算时,参与运算过程的8T1C-SRAM存算单元的分布,图中灰色部分为阵列中参与工作的单元。
图7为本发明实施例2中时序跟踪量化的存算电路执行单比特与多比特数的乘法和乘累加运算的操作过程的步骤流程图。
图8为本发明实施例2中提供的时序跟踪量化模块的电路图。
图9为仿真实验过程中,时序跟踪量化模块中实现量化时钟CK跟随的信号波形图。
图10为仿真实验过程中量化运算结果时的信号波形图。
图11为仿真实验过程不同情况下时延分布的蒙特卡罗仿真结果(0.9V,TT工艺角,25oC)。
图12为仿真实验过程中不同 MAC 级别的延迟累积的蒙特卡罗仿真结果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步地详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供一种时域8T1C-SRAM存算单元,如图2所示,其由2个PMOS管P1~P2,6个NMOS管N1~N6,以及一个电容C0构成。其中, P1、P2、N1、N2、N3和N4构成具有数据读、写、保持功能的6T-SRAM单元。N5、N6和C0构成用于实现单比特或多比特乘法的运算单元。运算单元的电路连接关系为:N5的栅极连接在6T-SRAM单元的存储节点QB上,N5的源极通过一根源线CSL接电容C0的一端,C0的另一端接地;N5的漏极与N6的源极相连;N6的栅极接运算字线CWL;N6的漏极接全局位线CBL。
其中,6T-SRAM单元的电路连接关系如下:P1和N1构成一个反相器,P2和N2构成另一个反相器;二者反相交叉耦合形成存储节点Q和QB。存储节点Q通过传输管N3接到位线BLC上,存储节点QB通过传输管N4接到位线BLT上,N3和N4的栅极接字线WL。
一、数据存储功能
本实施例提供的时域8T1C-SRAM存算单元的数据存储功能包括数据读、数据写和数据保持。由于数据存储功能由其中的6T-SRAM部分完成,N5、N6和C0构成的运算单元并不参与,因此本实施例中时域8T1C-SRAM存算单元实现数据存储功能的操作逻辑和经典的6T-SRAM存储单元完全一致。包括如下过程:
1.1、数据写操作
结合图2,在写操作之前,两位线BLC和BLT的位线电压首先被预充电到高电平VDD。当外部地址信号有效时,通过地址译码电路确定了待写入的8T1C-SRAM存算单元的存储部分,写入的数据被写驱动电路送入到位线BLC和BLT上。接下来,当WL开启后,传输管N3和N4打开,此时,数据被写入到单元中的存储节点Q和QB中,写操作完成。
例如,当需要向存储节点Q写入数据“1”时,则将BLC和BLT分为置为高电平和低电平,当字线WL开启后,传输管内N3和N4导通,此时,存储节点Q被位线BLC拉升致高电平,对应数据“1”;存储节点QB通过位线BLT放电并呈低电平,对应数据“0”。即实现存储节点的电平状态改写和数据写入。
1.2、数据读操作
在读操作之前,两位线的电压先被预充电到VDD,外部地址信号有效时,通过地址译码电路确定了待读数据的6T 单元时,当WL为高电平时,位线与6T 单元形成了一条通路使得两位线具有一定的电压差,两条位线的电压差通过灵敏放大器的放大及数据输出驱动电路,使得6T 单元的数据被读出,读操作完成。
当原存储节点Q和QB中分别存储有数据“0”和数据“1”时,在字线WL开启,传输管内N3和N4导通后,位线BLC会通过处于低电平状态的存储节点Q放电。而位线BLT则会因而存储节点QB也为高电平而保持高电平。根据位线BLC和BLT的电平状态变化即可读出原存储节点Q和QB的数据,BLC电平下降则表征存储节点Q为数据“0”,BLT高电平保持则表征存储节点QB为数据“1”。
1.3、数据保持操作
当6T 单元的WL信号未打开时,6T 单元的位线信号与存储节点处于隔离的状态。6T 单元的核心是一对反相器形成的锁存器结构,其使单元的存储节点Q和QB始终处于双稳定的状态,实现通电状态下的数据保持。
二、逻辑运算功能
本实施例提供的时域8T1C-SRAM存算单元支持实现的逻辑运算功能包括单比特与单比特数的乘法、单比特与多比特数的乘法,以及单比特数与多比特数的乘累加运算。其中,每个8T1C-SRAM存算单元作为独立完成单比特与单比特数出的乘法运算的基本单元。而在执行单比特与多比特数的乘法,以及单比特数与多比特数的乘累加运算时则需要其他多个时域8T1C-SRAM存算单元配合完成,这部分将在后文的时序跟踪量化的存算电路部分进行详细介绍,本实施例以下内容仅介绍单比特乘法的运算逻辑和原理。
2.1、单比特×单比特运算
在本实施例提供的时域8T1C-SRAM存算单元中,乘法运算在时域中实现量化,乘法运算过程中,运算字线CWL的输入信号作为乘法运算的单比特输入;存储节点QB的值作为单比特权重或多比特权重的其中一位上的值;全局位线CBL放电过程的延时作为乘法运算的结果。全局位线CBL上的位线电荷的放电路径由存储节点QB的权重,以及运算字线CWL上输入的信号控制。即:时域8T1C-SRAM存算单元实现的乘法运算为:
CBL=QB×CWL
例如,当8T1C-SRAM存算单元内存储节点Q存储的数据为“1”,QB为“0”,即乘法运算的权重为“0”。此时,由于存储节点QB点同N5管的栅极相连,N5管为高电平使能,此时N5管为关闭状态,从CBL到CWL的放电路径关闭。因此无论N6管栅极连接的运算字线CWL的输入信号为高电平(操作数为0)还是低电平(操作数为1),CBL均无法通过CBL放电,放电延时为0。即实现运算过程:“0×0=0”和“0×1=0”。
同理,当6T 单元内存储节点Q存储的数据为0,QB为1,即乘法运算的权重为“0”。此时,N5管处于导通状态,从CBL到CWL的放电路径的导通状态则进一步取决于N6管的导通状态,当N6管的栅极连接为运算字线CWL的输入信号为高电平(操作数为0),放电路径关闭,放电延时为0,即实现运算过程:“1×0=0”。当N6管的栅极连接为运算字线CWL的输入信号为低电平(操作数为1),则放电路径打开,CBL经过指定延时后完成放电,即实现运算过程“1×1=1”。
综上,本实施例中提供的时域8T1C-SRAM存算单元在执行乘法运算过程的中运算逻辑的真值表如下:
2.2、多比特乘法与乘累积
在本实施例中单比特乘法运算过程中不涉及第二操作数的权重调整,第一操作数和第二操作数的权重均为1,因此只需要单个时域8T1C-SRAM存算单元就能完成全部的乘法运算过程。另外在乘积运算结果的量化阶段,CBL经CWL的放电路径的放电过程的延时也仅存在“有”和“无”两种状态,对应乘积结果为“1”和“0”。
在多比特乘法运算中,可以多个8T1C-SRAM存算单元来分别实现多比特数中各个位数上的乘法运算,并匹配多个8T1C-SRAM存算单元上的电容C0,来调整每一位上运算结果为1时的延时的长度,进而产生不同的权重。
即:在单比特与多比特乘法运算中,将会利用多个8T1C-SRAM存算单元构成的阵列来实现对CBL经CWL的放电过程的延时进行调整,以使得放电延时存在“长/短”之分,以便实现根据放电延时的长短对乘积结果进行量化。具体地,多比特乘法和乘累加运算的实现方式将在后续内容中进一步说明。
实施例2
本实施例提供一种时序跟踪量化的存算电路,其用于实现数据存储及逻辑运算功能。该电路具有的逻辑运算功能包括单比特与单比特数的乘法、单比特与多比特数的乘法,以及单比特数与多比特数的乘累加运算。
本实施例提供的时序跟踪量化的存算电路的电路设计中包括两个关键,一是对以时域8T1C-SRAM存算单元为基础的核心MAC阵列进行优化,以在多比特运算过程中为不同的运算单元赋予不同的权重。二是设计配套的外围电路,以实现在时域对乘积或乘累加运算结果进行精准量化。
三、MAC阵列设计
如图3所示,该型时序跟踪量化的存算电路包括:存算阵列、位线组、字线组、时序跟踪量化模块、计数器、行译码器、字线驱动、预充电路、列选择器、灵敏放大器、输入输出单元以及主时序控制模块。
其中,存算阵列中包含至少一个由128×128个如前述的8T1C-SRAM存算单元按方阵排列而成的基本阵列。存算阵列中包括两个全同的由64×128个的8T1C-SRAM存算单元构成的左bank和右bank。每个bank中包括8行4列共32个16×16的子阵列。按行将各个子阵列从左到右依次定义为一类~四类子阵列。其中,如图4所示,一类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL两个为一组相连。二类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL四个为一组相连。三类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL八个为一组相连。四类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL十六个为一组相连。
位线组包括128对位线BLC和BLT,128条全局字线CBL。存算阵列中同列的所有时域8T1C-SRAM存算单元连接在同一对位线BLC和BLT,以及同一个条全局位线CBL上。将每一类子阵列中对应列序号上全局位线CBL相连,并连接一个反相器后作为运算结果CIMOUT的输出端口。在每个bank中,输出端口的数量为16个。
字线组包括128条字线WL和128条运算字线CWL;在整个存算阵列中,同一行的所有8T1C-SRAM存算单元都连接在同一条字线WL和运算字线CWL上。
时序跟踪量化模块利用放电切换型复制位线技术生成量化时钟CK,每个量化时钟CK在参考端产生一个与存储阵列中最小乘积结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对CIMOUT输出的乘累加运算结果进行量化。
计数器用于统计生成的时钟CK上升沿量化的MAC结果中高电平个数,进而生成乘累加运算的量化结果。
行译码器用于控制各条字线的字线驱动。字线驱动用于根据行译码器的译码结果控制各条字线的开启或关闭。预充电路用于对位线组中的各个位线电容进行充电。列选择器用于选择各位线组,进而结合行译码器和字线驱动实现对存算阵列中任意8T1C-SRAM存算单元进行选择,并在读、写模式下执行相应的读/写操作。
灵敏放大器用于在读模式下输出任意8T1C-SRAM中存储的数据。输入输出单元用于在写模式下获取待写入的输入数据,并在读模式下输出读取到的存储数据。主时序控制模块用于生成读/写操作过程中所需的各个时钟信号。
本实施例提供的时序跟踪量化的存算电路中包含至少一个由128×128个8T1C-SRAM存算单元构成的存算阵列,存算阵列中包含两个bank,每个bank又被划分为4×8共32个子阵列;每个子阵列的规模为16×16。在这种架构内,为了实现多比特乘法中操作数的权重的划分,本实施例特别对每个子阵列中源线CSL的连接关系进行了调整。不同权重对应的CSL的接线方式不同。本实施例中,源线相连后,当同一子阵列中仅有一行开启时,连在一起的8T1C-SRAM存算单元可以共享源线上连接的所有电容C0;进而改变不同子阵列中放电过程的延时。即实现了权重的赋值。
具体地,如图4所示:在本实施例存算电路的架构,每个bank中一类到四类子阵列的源线CSL上挂载的电容C0的数量比为8:4:2:1,由于各个子阵列中放电通路上的放电电流大小完全一致,因而各自在CBL上产生的放电延时之比为23:22:21:20;进而在单个BANK内的不同子阵列中形成所需的4bit权重。
另外,本实施例的存算电路中包括2个bank,因此在实际应用过程中,可以将左bank和右bank分别通过外围电路设计为不同的权重级别,例如将左bank作为高位运算的bank,赋予权重分别为27:26:25:24。而将右bank作为低位运算的bank,赋予权重分别为23:22:21:20。在此基础上,最终实现单比特数与最高8bit数的乘积运算和乘累加运算。
3.1、多比特乘法运算
以下将以1bit×4bite运算为例,对本实施例中多比特乘法的运算逻辑和电路原理进行说明:
在1bit×Nbite的乘法运算中,至少需要使用到同一行的N个子阵列。例如,1bit×4bite数则需要如图5所示的四个子阵列,分别为一类~四类子阵列。而1bit×8bite则需要利用两个bank中分别对应的同一行的8个子阵列。
该多比特乘法的运算模型为:A1×B1B2B3B4;其中,A1为单比特数,B1B2B3B4为4bit数,B1、B2、B3、B4则为4bit数上不同位上的值,B1、B2、B3、B4的权重分别为20、21、22、23。
需要强调的是:本实施例提供的时序跟踪量化的存算电路的每个子阵列为16×16的结构,但是由于需要在运算阶段通过源线CSL共享C0进而实现权重分配,因此每次运算仅允许开启一行的8T1C-SRAM,并行开启不同行会造成权重分配失效。而对于列来说,本实施例则允许并行开启多列,并通过配置16个CIMOUT的输出端口支持并行完成16组的不同运算过程。
在本实施例的运算过程中,每次运算时默认开启的分别是四个子阵列中相同行和相同列。例如,本实施例运算过程中开启一类子阵列、二类子阵列、三类子阵列和四类子阵列中的第一行第一列的8T1C-SRAM存算单元。选中的4个8T1C-SRAM存算单元就是执行1bit×4bit运算的基本单元。
在运算过程,单比特数×多比特数的过程和单比特数乘单比特数的运算过程完全一致,区别在于多比特数乘法的所有8T1C-SRAM存算单元同时开始计算本位上的乘积结果,由于每一列中的计算位线CBL连接在一起,因此每一位上输出表征乘积结果的“部分延时信号”会合成最终的“总延时信号”,进而可以用于量化出乘积运算的最终结果。
例如:当单比特的1和多比特中权重为20的1相乘时,产生的延时为Tck;即乘积结果为1×20。而单比特的1和多比特中权重为22的1相乘时,产生的延时为4Tck,;即乘积结果为1×22。每一位上得到的结果的延时最终在CBL上累加,即可在CIMOUT的输出端口得到多比特乘积的最终结果。
3.1、多比特乘累加运算
以上内容介绍了实现多比特乘法的基本逻辑和原理,在此基础上,以下进一步介绍多比特乘累加的运算过程:
结合前文内容可知,本实施例提供的时序跟踪量化的存算电路中的利用同一排的4类子阵列可以实现1bit×4bit乘法运算。由于每个子阵列对应列的计算位线CBL是连接在一起的,因此那么如果在每个bank中,分别从纵向的8排一类~四类子阵列中分别按照相同的步骤抽取对应位置的8T1C-SRAM存算单元同时执行乘法运算,那么每个单元运算结果的延时也会在CBL上累加,并在CIMOUT的输出端口输出所有带权重的8T1C-SRAM存算单元生成的放电延时信号的总延时。即:实现对每一排的多比特乘法的乘积进行累加,也就是需要完成的多比特乘累加运算。
由于本发明中的每个bank中具有8排包含一类到四类子阵列的多比特乘法基本功能单元,因此每个bank在一轮运算中最多支持对8个多比特乘法结果进行累加。图6为乘累加运算中需要实际参与运算的8T1C-SRAM存算单元的分布图。
例如:在实际运算过程,假设第一排输入的CWL为A1,第二排输入的CWL为A2,……,第八排输入的CWL为A8,第一排存储节点QB的组合为B1B2B3B4,第二排存储节点QB的组合为C1C2C3C4,……,第二排存储节点QB的组合为I1I2I3I4,。
则在CIMOUT的输出端口输出的结果实际上为:
A1×B1B2B3B4+A2×C1C2C3C4+……+ A8×I1I2I3I4。
需要说明的是:以上内容均为以128×128的基本阵列为例,对本发明方案的介绍。在其他实施例中,基于相同的“bank划分”和“子阵列权重分配”的电路设计思想,也可以根据需要对基本阵列的规模进行缩小或放大,以调整存算电路对不同比特数的多比特乘法或乘累加运算的兼容性。
综上所述,如图7所示,本实施例提供的时序跟踪量化的存算电路执行单比特与多比特数的乘法和乘累加运算的操作过程如下:
S1:并行激活128行CWL,打开预放电开关,清空挂载电容C0的原始数据。
S2:关闭预放电开关,打开预充电开关,将全局的挂载电容C0充至满电荷电位。
S3:将全局CBL充电到底部反向器的阈值电压。
S4:根据输入的数据并行激活存算阵列中各类子阵列对应行的CWL,反相器输出表征运算结果的CIMOUT信号。
S5:在时域将CIMOUT信号的延时与不同延时的参考信号进行比较,根据参考信号中量化时钟CK的数量完成在数字域乘累加运算结果的转化。
四、运算结果的时序跟踪量化
本实施例方案中为了实现对CIMOUT的输出端口的输出进行量化,还针对性的设计了一个全新的时序跟踪量化模块,该模块与计数器配合可以实现对通过时域信号表征的逻辑运算结果进行精准量化。
本实施例中提供的时序跟踪量化模块的工作原理为:在运算结果输入时,同步生成与运算结果中延时的最小值等长的量化时钟CK,利用重复生成的量化时钟CK对运算结果的延时进行“丈量”,并通过计数器统计运算结果对应的量化时钟CK的个数。此时,计数器的统计结果即为量化出的多比特乘法的乘积或多比特乘累加的和。
在电路设计层面,如图8所示,本实施例提供的时序跟踪量化模块包括:复制放电列、放电切换单元和输出单元。
其中,复制放电列用于生成与存储阵列中最小乘积结果对应的延时相同的量化时钟CK。复制放电列包括至少两组复制单元,每组包括至少一个复制单元,每个复制单元与存算阵列中的8T1C-SRAM存算单元相同,其上挂载的电容分别记为C1和C2。每个复制单元的N3和N4栅极接地;其中一组的复制单元的源线CSL与电容C1的连接点接复制位线BLB;另一组复制单元的源线CSL与电容C2的连接点接复制位线RBLB。复制单元的存储节点QB预设为高电平。
放电切换单元,其用于交替使能 WL1 和 WL2 信号,进而控制复制位线RBL和RBLB轮流放电。具体地,放电切换单元由两个PMOS管P3和P4、两个反相器INV1和INV2、一个与门AND、以及一个门XOR构成;电路连接关系如下:
P3和P4的源极接VDD,P3的漏极和INV1的输入端接复制位线RBL;P4的漏极和INV2的输入端接复制位线RBLB。控制信号START分别接在AND和XOR的其中一个输入端上,AND的另一个输入端接INV1的输出端;XOR的另一个输入端接INV2的输出端。AND的输出端和P4的栅极相连并作为信号WL2的节点,XOR的输入端和P3的栅极相连并作为信号WL1的节点。
在本实施例的放电切换单元中,RBL通过一个反相器INV1后同控制信号START通过一个与门产生WL2信号,并且WL2接在输出RBLB的预充管P4的栅极,控制RBLB的充电;RBLB通过一个反相器INV2后,同控制信号START通过一个异或门产生WL1信号,并且WL1接在输出RBL的预充管P3的栅极,控制RBL的充电。因此,放电切换单元的控制逻辑如下:
(1)当START=1时,处于工作状态,此时,复制位线RBL和RBLB根据WLI和WL2的延时交替放电,二者的其中一个位线按指定延时放电至预设的阈值电压后恰好触发另一个位线放电。
(2)当START=0时,处于复位状态,此时,复制位线RBL和RBLB保持高电平并不再放电。
输出单元,其由两级反相器构成;输出单元的输入端连接在WL1上,WL1经过两级反相器后生成量化时钟CK并输出。
具体地,结合图8,本实施例中的放电切换单元和时序跟踪量化模块实现上述工作逻辑的电路原理如下:
在电路未工作时,START信号为0,放电切换单元处于复位状态,由与门控制的WL2信号被置为0,P4晶体管导通,对应的复制单元的传输管关断,位线RBLB被充电。当其电位被预充至超过反相器INV2的阈值电压时,A2点电位由1翻转至0,由于A2与START信号通过异或门共同控制WL1,则WL1信号被置为0,晶体管P1导通,对应复制单元的传输管关断,位线RBL电位被预充至高电平。
在电路开始工作时,START信号为由0转1,而A2为0。A2和START信号通过异或门共同控制WL1,则信号WL1由0转1,晶体管P1关断,对应的复制放电单元的传输管导通,位线RBL通过第一组复制单元放电。当位线RBL放电至电位低于反相器INV1的阈值电压时,A1点信号由0转1,由于A1点和START信号通过与门共同控制WL2,则信号WL2由0转1,晶体管P2关断,对应复制单元的传输管导通,复制位线RBLB通过另一组复制单元放电。当位线BLB放电至电位低于反相器INV2的阈值电压时,A2点电位由1转0,由于WL1受控于A2点电位和START信号,则WL1信号由1转0,往后循环之前的操作。
由于两组复制单元的数量相同,挂载的复制放电单元数量一致,因此复制位线RBL、RBLB放电延时相同,RBL、RBLB交替充放电,WL1经过两级反相器可以生成稳定的量化时钟CK。
因此在本实施例的方案中,只需要让START信号和运算过程同步,时序跟踪量化模块就可以产生量化运算结果所需的量化时钟CK,并完成运算结果的生成。具体地,本实施例中时序跟踪量化模块通过对全局位线CBL放电过程中CIMOUT信号的延时T CIMOUT 进行计量,实现了乘累加运算结果的高精度量化。根据乘累加预算的结果的数量,本发明将CIMOUT信号的时域输出延时T CIMOUT 分为120级。其中,量化过程的延时信号遵循以下公式:
;
上式中, R和C REF 表示充电路径上的电阻和电容;V DD 表示电源电压;V INV 表示反相器的翻转阈值电压;T REF 表示参考信号REF的延时;ΔT表示T CIMOUT 和T REF 的延时差。
需要强调的是:在本实施例设计的时序跟踪量化模块中,复制放电列中的复制单元的数量虽然最低只需要两个,但是在实际应用于也可以设计多个,进而通过冗余的复制单元来支持存算电路并行开展运算和量化。例如,考虑到本实施例中的128×128的存算阵列最多支持并行执行16个多比特乘法运算,每个Bank对应的复制放电列中的复制单元的数量也可以设计为16×2个,包含两个Bank的存算阵列则对应设置包含64个复制单元。当然,在其它实施例中也可以设计包含更多复制单元的复制放电列,且复制放电列中的各个复制单元仍需分为两组,并按照规定的接线方式连接。
考虑到本实施例中的阵列里最小单位延时对应1C0放电,本实施例中的复制单元中的C1和C2均设置为1倍C0。此外,根据需求不同,也可以通过调整C1和C2的比例或者两组复制单元数目的比例,生成不同占空比的稳定时钟。
本实施例还提供一种CIM芯片,其由如前述的时序跟踪量化的存算电路封装而成。本实施例中提供的时序跟踪量化的存算电路可以以集成电路的形式进行生产制造、销售和应用。
性能测试
为了验证本发明提供的方案的有效性,技术人员在仿真器和测试平台中对实施例2中提供的时序跟踪量化的存算电路进行仿真和性能测试,仿真和测试结果如下:
1、基础性能测试
1.1、时序跟踪量化模块的功能测试
本实验在TT工艺角,27°C条件下对时序跟踪量化模块进行了信号仿真,产生的信号波形如图9所示。
分析可以看到:本实施例的时序跟踪量化模块在START信号开启后,WL1和WL2可以对BLC和BLT的信号变化进行精准跟踪,这为量化时刻CK的生成奠定了基础。图9的数据证明本发明新设计得到时序跟踪量化模块确实能够完美地执行标准的复制位线技术,实现量化所需的参考信号的生成。
2.2、运算结果的量化过程仿真
本实施例通过轮流写入权值0001,0010,0011……1111,进而模拟运算过程的结果,并由量化部分对运算结果进行量化。模拟过程中通过量化信号CK的上升沿抓取120种MAC值对应的延时。模拟过程得到的量化结果的波形图如图10所示,
分析图10所示的量化波形图可知,本实施例提供的基于新型的放电切换型复制位线技术的时序跟踪量化模块所生成的CK信号,能够实现所有运算结果的量化功能。
2.3、蒙特卡洛仿真
为了验证本发明提供的方案能有效克服工艺波动影响,本实验采用22nm 工艺,在仿真器中对实施例2中的时序跟踪量化的存算电路进行5000次蒙特卡洛仿真和性能测试,仿真结果如图11和图12所示。
分析蒙特卡洛仿真波形图12可以看出,除了并行计算的数量外,工艺偏差,供电电压,温度的变化也会影响 TCIMOUT。仿真结果表明,ΔT约为100ps时,能够有效克服工艺波动影响。
从蒙特卡洛仿真波形图11可以看出,在使用扫描MAC结果获得的模拟延时累积,将最终量化值与 16×8 矩阵 4 位权重和8x二进制输入的所有 MAC电平一起绘制,仿真结果表明,随着延时的累积,电容失配的影响变得很大,延时变化更加严重。但相邻结果之间的识别率仍然有保证,电容失配对充电路径的影响可以忽略不计。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种时域8T1C-SRAM存算单元,其特征在于:其由2个PMOS管P1~P2,6个NMOS管N1~N6,以及一个电容C0构成;其中, P1、P2、N1、N2、N3和N4构成具有数据读、写、保持功能的6T-SRAM单元;N5、N6和C0构成用于实现单比特或多比特乘法的运算单元;所述运算单元的电路连接关系为:N5的栅极连接在6T-SRAM单元的存储节点QB上,N5的源极通过一根源线CSL接电容C0的一端,C0的另一端接地;N5的漏极与N6的源极相连;N6的栅极接运算字线CWL;N6的漏极接全局位线CBL;
运算字线CWL的输入信号作为乘法运算的单比特输入;存储节点QB的值作为单比特权重或多比特权重的其中一位上的值;全局位线CBL放电过程的延时作为乘法运算的结果。
2.如权利要求1所述的时域8T1C-SRAM存算单元,其特征在于:6T-SRAM单元的电路连接关系如下:P1和N1构成一个反相器,P2和N2构成另一个反相器;二者反相交叉耦合形成存储节点Q和QB;存储节点Q通过传输管N3接到位线BLC上,存储节点QB通过传输管N4接到位线BLT上,N3和N4的栅极接字线WL。
3.一种时序跟踪量化的存算电路,其用于实现数据存储及逻辑运算功能,所述逻辑运算功能包括单比特乘法、单比特与多比特数的乘法,以及单比特数与多比特数的乘累加运算;所述时序跟踪量化的存算电路包括:
存算阵列,其包括至少一个由128×128个如权利要求1或2所述的8T1C-SRAM存算单元按方阵排列而成的基本阵列;所述存算阵列包括两个全同的由64×128个的8T1C-SRAM存算单元构成的左bank和右bank;每个bank中包括8行4列共32个16×16的子阵列;按行将各个子阵列从左到右依次定义为一类~四类子阵列;其中,一类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL两个为一组相连;二类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL四个为一组相连;三类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL八个为一组相连;四类子阵列中按列将相邻的8T1C-SRAM存算单元的源线CSL十六个为一组相连;
位线组,其包括128对位线BLC和BLT,128条全局字线CBL;所述存算阵列中同列的所有时域8T1C-SRAM存算单元连接在同一对位线BLC和BLT,以及同一个条全局位线CBL上;将每一类子阵列中对应列序号上全局位线CBL相连,并连接一个反相器后作为运算结果CIMOUT的输出端口;每个bank中的输出端口的数量为16个;
字线组,其包括128条字线WL和128条运算字线CWL;存算阵列中同一行的所有8T1C-SRAM存算单元连接在同一条字线WL和运算字线CWL上;
时序跟踪量化模块,其利用放电切换型复制位线技术生成量化时钟CK,每个量化时钟CK在参考端产生一个与存储阵列中最小乘积结果对应的延时;利用延时梯度增加的方式输出多个量化时钟CK,进而实现对CIMOUT输出的乘累加运算结果进行量化;
计数器,其用于统计生成的时钟CK上升沿量化的MAC结果中高电平个数,进而生成乘累加运算的量化结果;
行译码器,其用于控制各条字线的字线驱动;
字线驱动,其用于根据所述行译码器的译码结果控制各条字线的开启或关闭;
预充电路,其用于对位线组中的各个位线电容进行充电;
列选择器,其用于选择各位线组,进而结合行译码器和字线驱动实现对所述存算阵列中任意8T1C-SRAM进行选择,并在读、写模式下执行相应8T1C-SRAM的读/写操作;
灵敏放大器,其用于在读模式下输出任意8T1C-SRAM中存储的数据;
输入输出单元,其用于在写模式下获取待写入的输入数据,并在读模式下输出读取到的存储数据;以及
主时序控制模块,其用于生成读/写操作过程中所需的各个时钟信号。
4.如权利要求3所述的时序跟踪量化的存算电路,其特征在于,所述时序跟踪量化模块包括:
复制放电列,其用于生成与存储阵列中最小乘积结果对应的延时相同的量化时钟CK;所述复制放电列包括两组复制单元,每组包括至少一个复制单元,每个复制单元与所述8T1C-SRAM存算单元相同,其上挂载的电容分别记为C1和C2;每个复制单元的N3和N4栅极接地;其中一组的复制单元的源线CSL与电容C1的连接点接复制位线BLB;另一组复制单元的源线CSL与电容C2的连接点接复制位线RBLB,所述复制单元的存储节点QB预设为高电平;
放电切换单元,其用于交替使能 WL1 和 WL2 信号,进而控制复制位线RBL和RBLB轮流放电;以及
输出单元,其由两级反相器构成;所述输出单元的输入端连接在WL1上,WL1经过两级反相器后生成量化时钟CK并输出。
5.如权利要求4所述的时序跟踪量化的存算电路,其特征在于:所述放电切换单元由两个PMOS管P3和P4、两个反相器INV1和INV2、一个与门AND、以及一个门XOR构成;电路连接关系如下:
P3和P4的源极接VDD,P3的漏极和INV1的输入端接复制位线RBL;P4的漏极和INV2的输入端接复制位线RBLB;控制信号START分别接在AND和XOR的其中一个输入端上,AND的另一个输入端接INV1的输出端A1;XOR的另一个输入端接INV2的输出端A2;AND的输出端和P4的栅极相连并作为信号WL2的节点,XOR的输入输出端和P3的栅极相连并作为信号WL1的节点。
6.如权利要求5所述的时序跟踪量化的存算电路,其特征在于:所述放电切换单元的控制逻辑如下:
当START=1时,处于工作状态;此时,复制位线RBL和RBLB根据WLI和WL2的延时交替放电,二者的其中一个位线按指定延时放电至预设的阈值电压后恰好触发另一个位线放电;
当START=0时,处于复位状态;此时,复制位线RBL和RBLB处于高电平并不再放电。
7.如权利要求3所述的时序跟踪量化的存算电路,其特征在于:所述存算阵列中,每个bank中一类到四类子阵列的源线CSL上挂载的电容C0的数量比为8:4:2:1,由于各个子阵列中放电通路上的放电电流大小完全一致,因而各自在CBL上产生的放电延时之比为23:22:21:20;进而在单个BANK内的不同子阵列中形成所需的4bit权重。
8.如权利要求3所述的时序跟踪量化的存算电路,其特征在于:其执行单比特与多比特数的乘累加运算的操作过程如下:
S1:并行激活128行CWL,打开预放电开关,清空挂载电容C0的原始数据;
S2:关闭预放电开关,打开预充电开关,将全局的挂载电容C0充至满电荷电位;
S3:将全局CBL充电到底部反向器的阈值电压;
S4:根据输入的数据并行激活存算阵列中各类子阵列对应行的CWL,反相器输出表征运算结果的CIMOUT信号;
S5:在时域将CIMOUT信号的延时与不同延时的参考信号进行比较,根据参考信号中量化时钟CK的数量完成在数字域乘累加运算结果的转化。
9.如权利要求3所述的时序跟踪量化的存算电路,其特征在于:所述时序跟踪量化模块通过对全局位线CBL放电过程中CIMOUT信号的延时T CIMOUT 进行计量,实现了乘累加运算结果的高精度量化,CIMOUT信号的时域输出延时T CIMOUT 分为120级,其中,量化过程的延时信号遵循以下公式:
;
上式中, R和C REF 表示充电路径上的电阻和电容;V DD 表示电源电压;V INV 表示反相器的翻转阈值电压;T REF 表示参考信号REF的延时;ΔT表示T CIMOUT 和T REF 的延时差。
10.一种CIM芯片,其特征在于,其由如权利要求3-9中任意一项所述的时序跟踪量化的存算电路封装而成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311635817.1A CN117316237B (zh) | 2023-12-01 | 2023-12-01 | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311635817.1A CN117316237B (zh) | 2023-12-01 | 2023-12-01 | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117316237A true CN117316237A (zh) | 2023-12-29 |
CN117316237B CN117316237B (zh) | 2024-02-06 |
Family
ID=89274158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311635817.1A Active CN117316237B (zh) | 2023-12-01 | 2023-12-01 | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117316237B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117910424A (zh) * | 2024-03-20 | 2024-04-19 | 安徽大学 | 时域存算单元、时域量化单元、及时域存内计算结构 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024823A (zh) * | 2009-09-18 | 2011-04-20 | 台湾积体电路制造股份有限公司 | 具有嵌入式静态随机存取存储器的集成电路及其工艺方法 |
US20190088310A1 (en) * | 2017-09-21 | 2019-03-21 | Qualcomm Incorporated | Static random access memory (sram) bit cells employing current mirror-gated read ports for reduced power consumption |
CN109658960A (zh) * | 2018-12-10 | 2019-04-19 | 安徽大学 | 一种具有超低功耗和高写裕度的12t tfet sram单元电路 |
CN110058839A (zh) * | 2019-03-21 | 2019-07-26 | 安徽大学 | 一种基于静态随机存储器内存内减法的电路结构 |
CN112951294A (zh) * | 2019-11-27 | 2021-06-11 | 台湾积体电路制造股份有限公司 | 计算设备以及计算方法 |
CN113393879A (zh) * | 2021-04-27 | 2021-09-14 | 北京航空航天大学 | 非易失存储器与sram混合的存算一体数据快速加载结构 |
CN113593618A (zh) * | 2021-07-30 | 2021-11-02 | 电子科技大学 | 适用于差分sram存储单元的存算一体化存储阵列结构 |
CN114186676A (zh) * | 2020-09-15 | 2022-03-15 | 深圳市九天睿芯科技有限公司 | 一种基于电流积分的存内脉冲神经网络 |
CN114530176A (zh) * | 2022-04-25 | 2022-05-24 | 中科南京智能技术研究院 | 一种分布式位线补偿数模混合存内计算阵列 |
CN116092553A (zh) * | 2023-02-06 | 2023-05-09 | 上海高性能集成电路设计中心 | 一种兼具乘加功能的存储器 |
CN116364137A (zh) * | 2023-04-03 | 2023-06-30 | 安徽大学 | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 |
WO2023207441A1 (zh) * | 2022-04-27 | 2023-11-02 | 北京大学 | 基于电容耦合的sram存算一体芯片 |
-
2023
- 2023-12-01 CN CN202311635817.1A patent/CN117316237B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024823A (zh) * | 2009-09-18 | 2011-04-20 | 台湾积体电路制造股份有限公司 | 具有嵌入式静态随机存取存储器的集成电路及其工艺方法 |
US20190088310A1 (en) * | 2017-09-21 | 2019-03-21 | Qualcomm Incorporated | Static random access memory (sram) bit cells employing current mirror-gated read ports for reduced power consumption |
CN109658960A (zh) * | 2018-12-10 | 2019-04-19 | 安徽大学 | 一种具有超低功耗和高写裕度的12t tfet sram单元电路 |
CN110058839A (zh) * | 2019-03-21 | 2019-07-26 | 安徽大学 | 一种基于静态随机存储器内存内减法的电路结构 |
CN112951294A (zh) * | 2019-11-27 | 2021-06-11 | 台湾积体电路制造股份有限公司 | 计算设备以及计算方法 |
CN114186676A (zh) * | 2020-09-15 | 2022-03-15 | 深圳市九天睿芯科技有限公司 | 一种基于电流积分的存内脉冲神经网络 |
CN113393879A (zh) * | 2021-04-27 | 2021-09-14 | 北京航空航天大学 | 非易失存储器与sram混合的存算一体数据快速加载结构 |
CN113593618A (zh) * | 2021-07-30 | 2021-11-02 | 电子科技大学 | 适用于差分sram存储单元的存算一体化存储阵列结构 |
CN114530176A (zh) * | 2022-04-25 | 2022-05-24 | 中科南京智能技术研究院 | 一种分布式位线补偿数模混合存内计算阵列 |
WO2023207441A1 (zh) * | 2022-04-27 | 2023-11-02 | 北京大学 | 基于电容耦合的sram存算一体芯片 |
CN116092553A (zh) * | 2023-02-06 | 2023-05-09 | 上海高性能集成电路设计中心 | 一种兼具乘加功能的存储器 |
CN116364137A (zh) * | 2023-04-03 | 2023-06-30 | 安徽大学 | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117910424A (zh) * | 2024-03-20 | 2024-04-19 | 安徽大学 | 时域存算单元、时域量化单元、及时域存内计算结构 |
CN117910424B (zh) * | 2024-03-20 | 2024-05-28 | 安徽大学 | 时域存算单元、时域量化单元、及时域存内计算结构 |
Also Published As
Publication number | Publication date |
---|---|
CN117316237B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xue et al. | A CMOS-integrated compute-in-memory macro based on resistive random-access memory for AI edge devices | |
CN112581996A (zh) | 基于磁性随机存储器的时域存内计算阵列结构 | |
CN109979503B (zh) | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 | |
Mann et al. | Impact of circuit assist methods on margin and performance in 6T SRAM | |
CN110058839B (zh) | 一种基于静态随机存储器内存内减法的电路结构 | |
CN113467751B (zh) | 一种基于磁性随机存储器的模拟域存内计算阵列结构 | |
CN117316237B (zh) | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 | |
CN112558919B (zh) | 一种存内计算位单元及存内计算装置 | |
CN111429956B (zh) | 一种多模式可计算的sram单元电路及其控制方法 | |
CN112992232B (zh) | 一种多位正负单比特存内计算单元、阵列及装置 | |
CN112509620A (zh) | 基于平衡预充与组译码的数据读取电路 | |
CN116364137A (zh) | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 | |
CN114974337B (zh) | 一种基于自旋磁随机存储器的时间域存内计算电路 | |
CN115588446A (zh) | 一种存储运算电路、存内计算电路及其芯片 | |
CN117079688A (zh) | 一种电流域8tsram单元及动态自适应量化的存算电路 | |
CN117636945A (zh) | 5bit带符号位的同或与同或累加运算电路、CIM电路 | |
CN113053434B (zh) | 基于FeFET结构的高能效TCAM及其操作方法 | |
CN114944180B (zh) | 一种基于复制列的可配权重脉冲发生装置 | |
CN116204490A (zh) | 一种基于低电压技术的7t存算电路、乘累加运算电路 | |
CN115954029A (zh) | 多比特运算模块以及使用了该模块的存内计算电路结构 | |
CN115472197A (zh) | 一种通过冗余行量化位线电压差的sram存内计算电路 | |
Qiao et al. | Non-volatile in memory dual-row X (N) OR operation with write back circuit based on 1T1C FeRAM | |
CN118280410B (zh) | 10t1c-sram存算单元、存算阵列、及存算电路 | |
CN117910424B (zh) | 时域存算单元、时域量化单元、及时域存内计算结构 | |
CN111883192B (zh) | 基于9t sram单元在内存实现汉明距离计算的电路及9t 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 |