CN117079688A - 一种电流域8tsram单元及动态自适应量化的存算电路 - Google Patents
一种电流域8tsram单元及动态自适应量化的存算电路 Download PDFInfo
- Publication number
- CN117079688A CN117079688A CN202311175010.4A CN202311175010A CN117079688A CN 117079688 A CN117079688 A CN 117079688A CN 202311175010 A CN202311175010 A CN 202311175010A CN 117079688 A CN117079688 A CN 117079688A
- Authority
- CN
- China
- Prior art keywords
- current
- circuit
- 8tsram
- cbl
- bit line
- 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
- 238000005070 sampling Methods 0.000 claims abstract description 85
- 238000004364 calculation method Methods 0.000 claims abstract description 69
- 230000006870 function Effects 0.000 claims abstract description 30
- 238000013139 quantization Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 15
- 238000009795 derivation Methods 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000006880 cross-coupling reaction Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 230000010076 replication Effects 0.000 claims 1
- 238000005265 energy consumption Methods 0.000 abstract description 3
- 230000003044 adaptive effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 6
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 235000004347 Perilla Nutrition 0.000 description 1
- 244000124853 Perilla frutescens Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/418—Address circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] 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
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Dram (AREA)
Abstract
本发明属于集成电路技术领域,具体涉及一种电流域8TSRAM单元、一种动态自适应量化的存算电路、CIM电路及其芯片。其由2个PMOS管P1~P2,6个NMOS管N1~N6构成;其中,P1、P2、N1~N4构成经典的具有两个存储节点Q和QB的6T存储单元;N5的栅极和漏极与N6的源极相连;N5的源极接信号线NIN;N6的栅极接存储节点Q;N6的漏极接计算位线CBL;所述6T存储单元用于实现数据读写保持功能;N5和N6构成乘法运算部分。自适应乘累加电路中采用了8TSRAM单元,并配置了可以随运算结果自适应调整的采样电流生成电路和参考电流生成电路;以保证输出的表征运算结果的计算电流保持稳定。本发明解决了现有CIM电路方案的性能和能耗难以均衡的问题。
Description
技术领域
本发明属于集成电路技术领域,具体涉及一种电流域8TSRAM单元、一种动态自适应量化的存算电路、一种CIM电路及其芯片。
背景技术
在传统冯诺依曼计算机架构中,CPU需要从主存储器中读取数据,进行计算,然后再将结果写回主存储器。这种计算方式在面对大量数据和复杂计算时会受到限制,造成了计算时间和能耗的浪费。苏子和人工智能应用的飞速发展,计算机设备在处理各项任务时对计算能力的需求也在与日俱增。冯诺依曼架构中的数据读写过程已经成了制约计算机数据处理能力的一个瓶颈。
存内计算(Computing in Memory)是一种将运算与存储器结合的新型技术,能够弥补存储器带宽和处理器速度之间的差距,消除数据读写过程对计算机运算性能造成的瓶颈。同时,以静态随机存储器(Static Random-Access Memory,SRAM)为基础实现的存内计算可以利用内存并行处理的优势,加速大规模数据处理和机器学习等计算任务,该技术已经成为了高性能计算、机器学习、大数据分析等领域的重要研究方向之一。
目前大量的存内计算架构将各类运算在模拟域中实现,因为模拟域能够提供较高的计算效能、与存储电路具有更高的适配性等。其中电压信号作为模拟域存内计算中的主流计算、量化信号,在计算过程中同时会引入各类非理想因素,对于存内计算的效能和准确度造成难以控制的影响。因此,如何在模拟域实现更高效能、更高计算准确度的以及更低功耗的存内计算在近年来成为了科研界和产业界的关键课题。
发明内容
为了解决现有技术中电流域的存内运算电路方案较少,电路的性能和能耗等指标难以满足需求的问题,本发明提供一种电流域8TSRAM单元、一种动态自适应量化的存算电路、CIM电路及其芯片。
本发明采用以下技术方案实现:
一种电流域8TSRAM单元,其具有数据读写保持功能和乘法运算功能;其由2个PMOS管P1~P2,6个NMOS管N1~N6构成。其中,P1、P2、N1~N4构成经典的具有两个存储节点Q和QB的6T存储单元。N5的栅极和漏极与N6的源极相连;N5的源极接信号线NIN;N6的栅极接存储节点Q;N6的漏极接计算位线CBL。
该6T存储单元用于实现数据读写保持功能;N5和N6构成乘法运算部分,存储节点Q的值作为乘法运算的其中一个操作数,输入信号线NIN的输入的反相值IN作为另一个操作数;CBL与乘法运算部分的电流导通状态作为乘法运算的结果。作为本发明进一步的改进,执行乘法运算时,6T存储单元处于数据保持状态,当计算位线上的电流经N5和N6接地,则表示乘法运算结果为1;当计算位线上的电流未能经N5和N6接地,则表示乘法运算结果为0。
作为本发明进一步的改进,电流域8TSRAM单元实现乘法运算的操作逻辑如下:
首先,向存储节点Q中预存第一操作数。
然后,在数据保持状态下,通过输入信号信息输入第二操作数的反相值。
最后,向计算位线CBL注入定值的采样电流,此时满足:
(1)当Q=0时,无论NIN=0或NIN=1,晶体管N6均保持截止,CBL上的采样电流无法通过晶体管N5和N6接地;乘法运算结果为0,即:0×1=0,0×0=0。
(2)当Q=1时,若NIN=1,晶体管N6导通,晶体管N5处于截止状态,CBL上的采样电流同样无法通过晶体管N5和N6接地,乘法运算结果为0,即1×0=0。
(3)当Q=1时,若NIN=0,晶体管N6导通,晶体管N5呈二极管连接型MOS状态,CBL上的采样电流通过N5、N6接地,即1×1=1。
作为本发明进一步的改进,6T存储单元的电路连接关系如下:P1和N1构成一个反相器,P2和N2构成另一个反相器;二者反相交叉耦合形成存储节点Q和QB;存储节点Q通过传输管N1接到位线BL上,存储节点QB通过传输管N2接到位线BLB上,N1和N2的栅极接字线WL,P1和P2的源极接VDD,N3和N4的源极接VSS。
本发明还包括一种动态自适应量化的存算电路,其包括计算列、反相阵列、采样电流生成电路、计算电流导出电路、参考电流生成电路,以及量化输出电路。
计算列由n个如前述的电流域8TSRAM单元按列排布而成;每个8TSRAM单元均连接在一条独立的字线WL和一条独立的输入信号线NIN上;所有8TSRAM单元均连接在同一组读写位线BL、BLB和计算位线CBL上。
反相阵列由n个反相器生成,其用于根据输入信号IN1-INn生成对应的反相输入信号NIN1-NINn,反相输入信号输入到计算列中各个8TSRAM单元的输入信号线NIN中;
采样电流生成电路,其输入端接反相阵列的输入,输出端接计算列中的计算位线CBL;采样电流用于根据输入信号IN1-INn中高电平信号的数据量m生成一个电流值为m*imA的输出信号,并注入到计算位线CBL上。其中,imA为单位电流,m≤n。
计算电流导出电路用于仿真任意一个8TSRAM单元在乘积为1时的状态;计算电流导出电路的一端接在计算位线CBL上,另一端用于输出乘积为1的8TSRAM单元对计算位线电流ICBL的分流值,即计算电流。
参考电流生成电路,其用于复制采样电流生成电路的输出,并生成从imA到m*imA的m个等差分布的不同等级的阶梯电流,将其作为参考电流。
量化输出电路,其输入端分别接计算电流导出电路和参考电流生成电路的输出;量化输出电路用于将计算电流分别与各个阶梯电流比较,并得到造成比较结果翻转的阶梯电流的大小,然后根据造成翻转的阶梯电流的倍率得出乘累加运算的结果。
作为本发明进一步的改进,计算电流导出电路包括一个运放OP,两个NMOS管N7和N8。电路连接关系为:OP的同相输入端和N7的栅极接计算位线CBL;N7的源极接VSS,N7的漏极和N8的源极接OP的反相输入端;N8的栅极接OP的输出端,N8漏极作为计算电流的输出端口。
作为本发明进一步的改进,采样电流生成电路采用由n个具有独立开关控制的单位电流镜组成的阵列;每个单位电流镜分别由输入信号IN1-INn的其中一个信号单独控制;所有处于开启状态的电流镜的输出共同注入到计算位线CBL上构成采样电流。
作为本发明进一步的改进,参考电流生成电路由电流复制电路以及冗余列构成;冗余列由n个Ref_CELL单元构成。电流复制电路用于复制采样电流生成电路注入到CBL上的采样电流;Ref_CELL单元由两个NMOS管构成,并采用如前述的电流域8TSRAM单元中的N5和N6的电路连接方式;冗余列中的各个Ref_CELL单元用于对电流复制电路复制的采样电流进行分流,并形成不同等级的参考电流。
本发明还包括一种CIM电路,其具有数据读写保持功能、乘法运算功能和乘累加运算功能。该型CIM电路包括:存算阵列、字线组、位线组、输入信号线组、字线驱动器、地址译码器、预充电路、时序控制模块、模式切换电路、读写控制电路、输入反相电路、采样电流生成模块、计算电流导出阵列、参考电流生成电路,以及量化输出电路。
存算阵列由n2个如前述的电流域8TSRAM单元按照n行n列的阵列方式排布而成。字线组包括n条字线WL;存算阵列中同行的各个8TSRAM单元均连接在同一条字线WL上。
位线组包括n条读写位线BL、BLB,以及n条计算位线CBL。存算阵列中同列的所有8TSRAM单元均连接在相同的位线BL、BLB和CBL上。
输入信号线组包括N条反相输入信号线NIN;存算阵列中同行的所有8TSRAM单元均连接在一条输入信号线NIN。字线驱动器用于控制各条字线WL的开启。地址译码器与字线驱动器连接,地址译码器用于将地址信号译码后传入到所述字线驱动器。
预充电路,其用于对位线BL、BLB进行预充操作。时序控制模块用于生成执行数据存储任务或执行乘法运算和乘累加运算过程中所需的各个时钟信号。模式切换电路用于切换CIM电路的工作模式,CIM电路的工作模式包括数据存储模式和逻辑运算模式。读写控制电路,其用于对CIM电路执行数据读写操作的过程进行控制。
输入反相电路,其与反相输入信号线NIN连接,用于在逻辑运算阶段根据输入信号IN1-INn生成对应的反相输入信号NIN1-NINn。
采样电流生成电路的输入端接输入信号IN1-INn,输出端接存算阵列中的计算位线CBL;采样电流生成电路用于根据输入信号IN1-INn中高电平信号的数据量m生成一个电流值为m*imA的输出信号,并注入到计算位线CBL上。其中,imA为单位电流,m≤n。
计算电流导出阵列,其由n个计算电流导出电路按行排列而成;每个计算电流导出电路与存算阵列中一列连接,并包括一个运放OP,两个NMOS管N7和N8。电路连接关系为:OP的同相输入端和N7的栅极接计算位线CBL。N7的源极接VSS,N7的漏极和N8的源极接OP的反相输入端;N8的栅极接OP的输出端,N8漏极作为计算电流的输出端口。计算电流导出阵列用于输出乘累加运算过程的计算电流。
参考电流生成电路用于复制采样电流生成电路的输出,并生成从imA到m*imA的m个等差分布的不同等级的阶梯电流,将其作为参考电流。
量化输出电路包括数据读部分和运算输出部分,数据读部分用于输出各存储节点的存储数据,运算输出部分用于根据计算电流生成乘法运算的结果;或根据参考电流和计算电流,输出乘累加运算的结果。
本发明还包括一种CIM芯片,其由如前述的CIM电路封装而成。
本发明提供的技术方案,具有如下有益效果:
本发明在经典的6T-SRAM电路的基础上,利用两个NMOS管和计算位线设计出了一种既可以保留原电路完整的数据存储功能,又可以执行乘法逻辑运算的8TSRAM单元。这种新的电路结构基于电流域采样,可以实现高可靠性的数据存储和逻辑运算。
本发明还以新设计的8TSRAM单元为基本单元,设计出了一种动态自适应量化的存算电路,该电路可以根据运算结果自适应地输出不同大小的采样电流和参考电流,进而使得电路中产生的表征运算结果的计算电流在一个较小的范围内波动,进而既可以降低逻辑预算阶段的器件功耗,又可以保证量化出的运算结果的精度。进一步地,利用本发明的动态自适应量化的存算电路的原理设计的存内计算电路通过数据输入到模数信号量化的联动,在规避了部分非理想效应的基础上,实现了高能效的存内计算。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例1中提供的一种电流域8TSRAM单元的电路图。
图2为本发明实施例1提供的8TSRAM单元中,用于执行数据存储功能部分的电路原理图。
图3为本发明实施例1提供的8TSRAM单元执行乘法运算功能的电路原理图。
图4为本发明实施例2中提供的动态自适应量化的存算电路的电路架构图。
图5为本发明实施例2提供的动态自适应量化的存算电路的电路原理图。
图6为本发明实施例2提供的动态自适应量化的存算电路中计算电流导出电路的电路图。
图7为本发明实施例3中提供的CIM电路的电路架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步地详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供一种电流域8TSRAM单元,其具有数据读写保持功能和乘法运算功能。如图1所示,该电路的基本单元由2个PMOS管P1~P2,6个NMOS管N1~N6构成。其中,P1、P2、N1~N4构成经典的具有两个存储节点Q和QB的6T存储单元。N5的栅极和漏极与N6的源极相连;N5的源极接信号线NIN;N6的栅极接存储节点Q;N6的漏极接计算位线CBL。
本实施例中的6T存储单元部分采用了经典的SRAM设计,电路连接关系如下:P1和N1构成一个反相器,P2和N2构成另一个反相器;二者反相交叉耦合形成存储节点Q和QB;存储节点Q通过传输管N1接到位线BL上,存储节点QB通过传输管N2接到位线BLB上,N1和N2的栅极接字线WL,P1和P2的源极接VDD,N3和N4的源极接VSS。
该6T存储单元用于实现数据读写保持功能;N5和N6构成乘法运算部分,存储节点Q的值作为乘法运算的其中一个操作数,输入信号线NIN的输入的反相值IN作为另一个操作数;CBL与乘法运算部分的电流导通状态作为乘法运算的结果。
本实施例提供的电流域8TSRAM单元执行乘法运算的运算逻辑大致为:
CBL=Q×IN
其中,IN为拟实现的乘法运算的操作数的值,NIN为IN的反相信号,NIN是实际输入到8TSRAM单元中输入信号,二者满足:
分析图1中电路图的乘法运算部分可以发现:NMOS晶体管N6的栅极和存储节点Q接在一起,即:NMOS晶体管N6的打开与关断由Q值决定。NMOS晶体管N5的一端接在计算位线CBL上,用于传输计算采样电流信号。另一端与NMOS晶体管N6的一端相连。NMOS晶体管N5的与NMOS晶体管N6连接的一端同时接在N5的栅极上,形成了一个二极管型连接的NMOS结构。在此状态下,计算位线CBL能否通过晶体管N5和N6实现接地,即为一个可以由存储节点Q的电平状态以及反相输入信号NIN进行动态调整的状态数据。
在本实施例提供的电流域8TSRAM单元中,乘法运算阶段,6T存储单元始终处于数据保持状态,当计算位线上的电流经N5和N6接地,即二者导通,则表示乘法运算结果为1;当计算位线上的电流未能经N5和N6接地,接二者处于截止状态,则表示乘法运算结果为0。
以下分别按照数据的读、写、保持、以及乘法的操作逻辑对本实施例提供的电流域8TSRAM单元的操作逻辑进行详细介绍;以对该功能电路的工作原理进行更加清楚的阐释。其中,如图2所示,电路中的数据读、写和保持功能仅依赖其中的6T-SRAM部分及其外围电路即可完成,而乘法运算在需要整个8TSRAM单元中的所有元器件共同参与工作。
一、数据读操作
在执行数据读操作时,首先将位线BL和BLB预充电到高电平,并将WL置高电平。此时,晶体管N1和N2导通,将位线BL和BLB分别与存储节点Q和QB连接起来。
在这种状态下,假设8TSRAM单元的内部存储节点原始存储的数据中Q为“0”,QB为“1”,则电路一侧的位线BL与存储节点Q间会存在电压差,处于高电平状态的位线BL会沿着经过N1和N3到地的放电路径放电,电压逐渐下落。另外一侧,位线BLB与存储节点QB电位一致,均为高电平;BLB通过N2和P2进行充电,维持QB点高电平;N4在此状态下保持关断,BLB没有到地的放电路径,维持为高电平。这样,当两条位线间的电压差达到一定程度时,经灵敏放大器放大输出,完成读操作。也即是说,当位线电压从高电平降低为低电平,则表示读出的对应侧存储节点中存储的数据为“1”,当位线电压保持高电平,则表示读出的对应侧存储节点中存储的数据为“0”。
反之,当8TSRAM单元的内部存储节点原始存储的数据中Q为“1”,QB为“0”,则位线BL的位线电压保持高电平,而位线BLB的位线电压从高电平降低为低电平。在上述数据读取过程,位线电压会发生变化,但存储节点Q和QB存储的数据信息不变。
二、数据写操作
在执行数据写操作时,若进行写“1”操作,则首先需要将位线BL预充到高电平,即:BL=1,并将位线BLB置为低电平,即:BLB=0。之后在将字线WL置高电平,NMOS晶体管N1和N2导通,位线BL和BLB分别与存储节点Q和QB连接起来。此时,由于位线BL电平较高,位线BLB电平较低,存储节点Q会通过位线BL充电,存储节点QB会通过PMOS晶体管P1向位线BLB放电。进而使得存储节点Q保持高电平,存储节点QB保持低电平,在存储节点Q中完成写“1”操作。
相反地,若进行写“0”操作,则首先将位线BL保持为低电平,即:BL=0。将位线BLB预充为高电平,即BLB=1。之后WL置高电平,NMOS晶体管N1和N2导通,存储节点Q会通过位线BL放电,位线BLB会通过NMOS晶体管N2向存储节点QB放电,从而使得存储节点Q保持低电平,存储节点QB保持高电平,在存储节点Q中完成写“0”操作。
三、数据保持状态
在存储节点Q和QB中已经完成数据写入后,再将字线WL置为低电平,则传输管N1和N2保持关断,使得与存储节点Q和QB分别与位线BL和BLB断开。此时,由于P1、P2、N3、N4构成了交叉耦合的锁存结构,因此可对存储节点Q和QB的原始电平状态进行稳定保持,即实现了数据保持。
四、乘法运算
本实施中的电流域8TSRAM单元实现乘法运算时需要在数据保持状态进行,其中,预先存储的在存储节点Q中的数据构成了第一操作数,而通过信号线NIN输入的信号的反相值(即IN)构成了另一个操作数,而计算位线CBL是否可以经N5、N6接地,则恰好可以表征对应的乘法运算结果。
乘法运算的过程大致如下所示:
首先,在存储节点Q中预存第一操作数Q,假如第一操作数为1,则保持存储节点Q为高电平,当第一操作数为0,则保持存储节点Q为低电平。
其次,通过NIN信号线向8TSRAM单元输入第二操作数IN,假如第二操作数为1,则输入信号线NIN为低电平(NIN=0,IN=1);假如第二操作数为0,则输入信号线NIN为高电平(NIN=1,IN=0)。
接着,向计算位线CBL注入定值的采样电流,如图3所示,此时满足:
(1)当Q=0时,无论NIN=0或NIN=1,晶体管N6均保持截止,CBL上的采样电流无法通过晶体管N5和N6接地;8TSRAM单元并不接收采样电流。乘法运算结果为0,即:0×1=0,0×0=0。
(2)当Q=1时,若NIN=1,晶体管N6导通。但是,由于NIN为高电平,晶体管N5的连接方式便不再是二极管连接型,而是类似于将NMOS的栅极和源极相连,呈现一种呈现截止状态。此时,CBL上的采样电流同样无法通过晶体管N5和N6接地,此种情况下8TSRAM单元仍然并不接收采样电流。乘法运算结果为0,即1×0=0。
(3)当Q=1时,若NIN=0,晶体管N6导通,晶体管N5呈二极管连接型MOS状态,CBL上的采样电流通过N5、N6接地,即1×1=1。同时根据二极管连接型MOS的特性,晶体管N5会将流过的采样电流转化成对应的栅压。
具体地,本实施例中8TSRAM单元执行乘法运算的逻辑真值表如表1所示:
表1:本实施例中8T-SRAM的乘法运算真值表
由此可见:在本实施例8TSRAM单元的乘法运算模式下,只有当Q=1,IN=1(NIN=0)时,8TSRAM单元才可以接收来自计算位线CBL上的采样电流,其余情况均无法形成对地通路。本实施例设计的该型电流域8TSRAM单元的逻辑状态恰好契合乘法运算的逻辑原理。综上所述,本实施例提供的电流域8TSRAM单元可以同时作为实现数据读写保持的易失性存储电路,以及实现乘法运算的逻辑运算电路的基本功能单元。
实施例2
实施例1中的8TSRAM单元具有完整的乘法运算功能,在此基础上,本实施例进一步利用8TSRAM单元设计了动态自适应量化的存算电路。如图4所示,该型动态自适应量化的存算电路包括计算列、反相阵列、采样电流生成电路、计算电流导出电路、参考电流生成电路,以及量化输出电路。
其中,计算列、反相阵列和采样电流生成电路的部分共同构成了实现乘累加运算的完整操作的逻辑电路。而计算电流导出电路、参考电流生成电路,以及量化输出电路则构成了对运算结果进行数模转换并最终输出的部分。
计算列由n个如实施例1中的电流域8TSRAM单元按列排布而成;每个8TSRAM单元均连接在一条独立的字线WL和一条独立的输入信号线NIN上;所有8TSRAM单元均连接在同一组读写位线BL、BLB和计算位线CBL上。
反相阵列由n个反相器生成,其用于根据输入信号IN1-INn生成对应的反相输入信号NIN1-NINn,反相输入信号输入到计算列中各个8TSRAM单元的输入信号线NIN中。
采样电流生成电路输入端接反相阵列的输入,输出端接计算列中的计算位线CBL;采样电流用于根据输入信号IN1-INn中高电平信号的数据量m生成一个电流值为m*imA的输出信号,并注入到计算位线CBL上。其中,imA为单位电流,m≤n。
以下对本实施例中计算列、反相阵列和采样电流生成电路实现乘累加运算的过程进行详细说明:从图4中的来看,单个乘累加运算电路是由多个可以实现乘法运算的基本单元构成,每个乘法运算单元电路均连接在同一条计算位线CBL上。在实际运算过程中,各乘法运算功能单元可以具有不同的Q、NIN组合方式,即具有不同的输入数据和存储权重;由于输入数据和存储权重分别作为乘法运算的第一操作数和第二操作数,因此可以实现对多种不同组合的乘法运算进行同步执行。每个乘法运算的结果体现在电路层面则为该8T-SRAM单元是否允许计算位线CBL上的采样电流流入。
由于本实施例的动态自适应量化的存算电路的计算位线CBL上同时连接了多个8TSRAM单元,所以在向计算位线CBL上注入固定值的总采样电流后,根据欧姆定律,CBL上的电流会被已导通的8T-SRAM单元电路进行分流操作。由于乘累加运算电路中的每个8T-SRAM单元的电路设计完全相同,各导通的8T-SRAM单元分流的电流值也完全相同。
同样,结合实施例1中对8TSRAM单元的电路设计及原理的分析可知:CBL上的分流电流在流经每个8TSRAM单元单元的同时,会在N5的栅极产生一个对应的栅压,并由于N6导通而反映到计算位线CBL上。因此,在采样电流注入后,计算位线CBL上的采样电流便包含了这一列计算单元的所有乘法结果以及将乘法结果“1”累加之后的信息。
例如,假设原始注入的总采样电流的值为I,乘累加计算结果的电流值表现为I/n,则这里的“n”即为乘法结果为“1”的个数,也就是乘累加运算的最终结果。需要额外说明的是:本实施例的乘累加运算电路中的电流值转换而得的电压值与N8的等效阻抗有关,计算结果电压与结果电流具有一一对应的关系。
本实施例中的乘累加运算的结果需要由一系列的外围电路进行“量化”并输出。如图5所示的电路功能模块图即为外围电路与核心的计算列(SRAM Array)的原理图。
在图5中,计算电流导出电路用于仿真任意一个8TSRAM单元在乘积为1时的状态;计算电流导出电路的一端接在计算位线CBL上,另一端用于输出乘积为1的8TSRAM单元对计算位线电流ICBL的分流值,即计算电流。
在本实施例中,如图6所示,计算电流导出电路包括一个运放OP,两个NMOS管N7和N8。电路连接关系为:OP的同相输入端和N7的栅极接计算位线CBL;N7的源极接VSS,N7的漏极和N8的源极接OP的反相输入端;N8的栅极接OP的输出端,N8漏极作为计算电流的输出端口。
图6所示的电路将计算位线CBL连接至运放的正相输入端和MOS晶体管N7的栅极,这两端均为高阻抗,所以计算电流并不流入。将运放的反相端连接至MOS晶体管N7的漏极,由于运放的电压钳位作用,运放的反相端等于正相端电压,即将晶体管N7的漏极钳位与栅极电压相同,相当于“复制了”导通计算单元中的一个二极管连接型MOS,即通过晶体管N7也可以产生准确的计算结果电流,完成对于计算结果电流的复制。同时,运放和晶体管N8的存在类似于为晶体管N7添加了cascode(共源共栅)结构,这增大了模块的输出阻抗,抑制了输出端电压的变化对输出电流的影响。
参考电流生成电路用于复制采样电流生成电路的输出,并生成从imA到m*imA的m个等差分布的不同等级的阶梯电流,将其作为参考电流。
量化输出电路输入端分别接计算电流导出电路和参考电流生成电路的输出;量化输出电路用于将计算电流分别与各个阶梯电流比较,并得到造成比较结果翻转的阶梯电流的大小,然后根据造成翻转的阶梯电流的倍率得出乘累加运算的结果。
本实施例中的动态自适应量化的存算电路实现对乘累加运算结果进行输出的工作原理如下:
由于每个8T-SRAM单元无法将自身的运算结果进行“导出”,所以本实施例在计算位线CBL上增加了一个计算电流导出电路,该电路的作用是模拟一个乘积“固定”为1的8T-SRAM单元。在此条件下,假如原乘累加运算中为A个乘法运算的累加和,其中有B个乘积预算的累加结果为1,那么在乘累运算电路中将有B+1个基本单元导通,并分担CBL上的采样电流I,每个导通的8T-SRAM以及计算电流导出电路分流出的电流值均为I/(B+1),这个电流值定义为计算电流。虽然各个8T-SRAM无法将计算电流导出,但在计算电流导出电路可以对计算电流进行导出。
本实施例中的参考电流生成电路的在功能上类似常规Flash ADC中的参考信号产生网络,它可以产生所需的参考电流,量化输出电路本质上是一个比较器,它将计算电流分别和不同“档位”的参考电流比较,就可以知道计算电流的大小,并输出计算电流表征的数字量,即乘累加运算的结果。
需要特别强调的是:在本实施例提供的动态自适应量化的存算电路中,所谓的“自适应”指的是注入到计算位线CBL上的采样电流,以及输入到量化输出电路的参考电流并非采用固定大小的电流值,而是采用随着计算结果而动态调整的“自适应”值。
本实施例提供的动态自适应量化的存算电路采用伴随计算规模自适应动态变化的采样电流和参考电流的突出优势在于:这种自适应的电路设计可以使计算电流和参考电流的值在任何计算结果下均处于合适的值,不会因为运算结果较小导致计算电流过大,进而增加功耗;也不会因为计算结果过大导致计算电流过小,进而产生量化误差。即:本实施例的自适应乘累加运算架构可以在保证精度和稳定性的同时,降低器件的运行功耗。
具体地,本实施例为了实现采样电流和参考电流自适应调整,特别采用了如下的电路设计:
一方面,如图5所示,采样电流生成电路采用由n个具有独立开关控制的单位电流镜组成的阵列;每个单位电流镜分别由输入信号IN1-INn的其中一个信号单独控制;所有处于开启状态的电流镜的输出共同注入到计算位线CBL上构成采样电流。
例如,假设对于一个包含64个8TSRAM的动态自适应量化的存算电路,采样电流生成电路的模块内部设计了由64个分别具有开关控制的单位电流镜组成的阵列;单位电流由系统外部的电流源输入。以上64个单位电流镜的开关分别由输入IN<63:0>控制,即注入到计算位线CBL上的采样电流值由IN<63:0>中“1”的个数决定。若单位电流为imA,IN<63:0>中“1”的个数为n,则采样电流值为n*imA。因为输入IN=1是计算单元导通的必要条件,即此时对于一列单元来说(64x 1),导通单元的数目必然小于等于n,那么计算后的电流值范围也限定在单位电流和n*imA之间。
在采样电流生成电路中,处于导通状态的电流镜的数量实际上是和乘累加运算结果的“理论最大值”决定,即实现了采样电流值与运算结果相适应。运算结果越大,采样电流越大,运算结果越小,采样电流越小。在此状态下,当采样电流被各个处于导通状态的8T-SRAM单元分流之后,各个8T-SRAM单元分流得到的计算电流总是可以保证在一个波动较小的范围内。
另一方面,如图5所示,参考电流生成电路由电流复制电路以及冗余列构成;冗余列由n个Ref_CELL单元构成。电流复制电路用于复制采样电流生成电路注入到CBL上的采样电流;Ref_CELL单元由两个NMOS管构成,并采用如前述的电流域8TSRAM单元中的N5和N6的电路连接方式;冗余列中的各个Ref_CELL单元用于对电流复制电路复制的采样电流进行分流,并形成不同等级的参考电流。
参考电流生成电路的作用类似Flash ADC中的参考信号产生网络,因为量化结果输出为3bit,因此其会产生8个量级的参考电流,输入到量化输出电路(电流比较器,SA)进行比较。不同计算中这些参考电流的值并不是固定的,是复制8个由采样电流生成电路产生的总采样电流,再分别注入由8、16、24、32、40、48、56、64个Ref_CELL单元组成的各冗余列,产生相应值的参考电流。因此,本实施例的乘累加运算电路中的参考电流是根据计算输入动态自适应产生,且保持和计算列中8T-SRAM单元同样的产生方式,差分了非理想情况的影响,保证比较精度。为了节省面积,Ref_CELL单元仅由8T-SRAM右边部分的2T(N5、N6)组成。
本实施例提供的动态自适应量化的存算电路实现乘累加运算时,首先,由采样电流生成电路根据第二操作数(IN)中高电平信号的数量,生成一个自适应的采样电流并输入到计算位线CBL上;并由参考电流生成电路生成自适应的参考电流。接着,由计算电流导出电路生成表征乘累加运算的结果的计算电流,并将参考电流和计算电流输出到量化输出电路。最后,由量化输出电路完成对于8位计算结果的量化,并送入移位寄存器。
实施例3
在实施例2中方案的基础上,本实施例进一步提供一种CIM电路,其具有数据读写保持功能、乘法运算功能和乘累加运算功能。如图7所示,按照功能划分,本实施例提供的CIM电路包括:存算阵列、字线组、位线组、输入信号线组、字线驱动器、地址译码器、预充电路、时序控制模块、模式切换电路、读写控制电路、输入反相电路、采样电流导出阵列、参考电流生成电路,以及量化输出电路。
其中,存算阵列由n2个如实施例1的电流域8TSRAM单元按照n行n列的阵列方式排布而成。
字线组包括n条字线WL;存算阵列中同行的各个8TSRAM单元均连接在同一条字线WL上。位线组包括n条读写位线BL、BLB,以及n条计算位线CBL。存算阵列中同列的所有8TSRAM单元均连接在相同的位线BL、BLB和CBL上。
输入信号线组包括N条反相输入信号线NIN;存算阵列中同行的所有8TSRAM单元均连接在一条输入信号线NIN。字线驱动器用于控制各条字线WL的开启。地址译码器与字线驱动器连接,地址译码器用于将地址信号译码后传入到所述字线驱动器。
预充电路,其用于对位线BL、BLB进行预充操作。时序控制模块用于生成执行数据存储任务或执行乘法运算和乘累加运算过程中所需的各个时钟信号。模式切换电路用于切换CIM电路的工作模式,CIM电路的工作模式包括数据存储模式和逻辑运算模式。读写控制电路,其用于对CIM电路执行数据读写操作的过程进行控制。
输入反相电路,其与反相输入信号线NIN连接,用于在逻辑运算阶段根据输入信号IN1-INn生成对应的反相输入信号NIN1-NINn。
采样电流生成电路的输入端接输入信号IN1-INn,输出端接存算阵列中的计算位线CBL;采样电流生成电路用于根据输入信号IN1-INn中高电平信号的数据量m生成一个电流值为m*imA的输出信号,并注入到计算位线CBL上。其中,imA为单位电流,m≤n。
计算电流导出阵列,其由n个计算电流导出电路按行排列而成;每个计算电流导出电路与存算阵列中一列连接,并包括一个运放OP,两个NMOS管N7和N8。电路连接关系为:OP的同相输入端和N7的栅极接计算位线CBL。N7的源极接VSS,N7的漏极和N8的源极接OP的反相输入端;N8的栅极接OP的输出端,N8漏极作为计算电流的输出端口。计算电流导出阵列用于输出乘累加运算过程的计算电流。
参考电流生成电路用于复制采样电流生成电路的输出,并生成从imA到m*imA的m个等差分布的不同等级的阶梯电流,将其作为参考电流。
量化输出电路包括数据读部分和运算输出部分,数据读部分用于输出各存储节点的存储数据,运算输出部分用于根据计算电流生成乘法运算的结果;或根据参考电流和计算电流,输出乘累加运算的结果。
该型CIM电路是一个在基于6T架构的SRAM的基础上设计出的一个全新的功能电路,电路中的6T-SRAM部分利用WL、BL、BLB等信号线,并配合字线驱动器、地址译码器、预充电路等功能电路使用时,可以实现如常规SRAM相同的数据读、写、保持功能。同时在数据保持状态下,将8T-SRAM中的晶体管N5、N6启用,并配合CBL计算字线以及其它外围电话,还可以实现基于单个8T-SRAM的乘法运算,以及集合单列8T-SRAM的乘累加运算功能。需要说明的是,本实施例中的存算阵列中最多可以同步完成n个乘累加运算的结果输出,并且每个乘累加运算中最多支持对n个乘积结果进行累加。此外,量化输出电路中的SA阵列支持将同一个计算电流分别与多个不同量级的参考电流进行同步比较,进而在一个周期内快速实现对量化结果进行输出,提高运算效率。
本实施例提出的这种存内计算(CIM)电路架构基于电流域采样,可以实现高能效、高可靠性的乘累加运算,并创新地设计了一种动态自适应系统,实现了数据输入到模数信号量化的联动,在规避了部分非理想效应的基础上,实现了高能效的存内计算。
在实际应用中,本实施例中提供的CIM电路还可以封装成一种基于8T-SRAM的CIM芯片,并作为芯片进行批量生产和对外出售。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种电流域8TSRAM单元,其特征在于:其具有数据读写保持功能和乘法运算功能;其由2个PMOS管P1~P2,6个NMOS管N1~N6构成;其中,P1、P2、N1~N4构成经典的具有两个存储节点Q和QB的6T存储单元;N5的栅极和漏极与N6的源极相连;N5的源极接信号线NIN;N6的栅极接存储节点Q;N6的漏极接计算位线CBL;
所述6T存储单元用于实现数据读写保持功能;N5和N6构成乘法运算部分,存储节点Q的值作为乘法运算的其中一个操作数,输入信号线NIN的输入的反相值IN作为另一个操作数;CBL与乘法运算部分的电流导通状态作为乘法运算的结果。
2.如权利要求1所述的电流域8TSRAM单元,其特征在于:在乘法运算阶段,所述6T存储单元处于数据保持状态,当计算位线上的电流经N5和N6接地,则表示乘法运算结果为1;当计算位线上的电流未能经N5和N6接地,则表示乘法运算结果为0。
3.如权利要求2所述的电流域8TSRAM单元,其特征在于,其实现乘法运算的操作逻辑如下:
首先,向存储节点Q中预存第一操作数;
然后,在数据保持状态下,通过输入信号信息输入第二操作数的反相值;
最后,向计算位线CBL注入定值的采样电流,此时满足:
当Q=0时,无论NIN=0或NIN=1,晶体管N6均保持截止,CBL上的采样电流无法通过晶体管N5和N6接地;乘法运算结果为0,即:0×1=0,0×0=0;
当Q=1时,若NIN=1,晶体管N6导通,晶体管N5处于截止状态,CBL上的采样电流同样无法通过晶体管N5和N6接地,乘法运算结果为0,即1×0=0;
当Q=1时,若NIN=0,晶体管N6导通,晶体管N5呈二极管连接型MOS状态,CBL上的采样电流通过N5、N6接地,即1×1=1。
4.如权利要求1所述的电流域8TSRAM单元,其特征在于:所述6T存储单元的电路连接关系如下:P1和N1构成一个反相器,P2和N2构成另一个反相器;二者反相交叉耦合形成存储节点Q和QB;存储节点Q通过传输管N1接到位线BL上,存储节点QB通过传输管N2接到位线BLB上,N1和N2的栅极接字线WL,P1和P2的源极接VDD,N3和N4的源极接VSS。
5.一种动态自适应量化的存算电路,其特征在于其包括:
计算列,其由n个如权利要求1-3中任意一项所述的电流域8TSRAM单元按列排布而成;每个8TSRAM单元均连接在一条独立的字线WL和一条独立的输入信号线NIN上;所有8TSRAM单元均连接在同一组读写位线BL、BLB和计算位线CBL上;
反相阵列,其由n个反相器生成,其用于根据输入信号IN1-INn生成对应的反相输入信号NIN1-NINn,所述反相输入信号输入到所述计算列中各个8TSRAM单元的输入信号线NIN中;
采样电流生成电路,其输入端接所述反相阵列的输入,输出端接所述计算列中的计算位线CBL;所述采样电流用于根据输入信号IN1-INn中高电平信号的数据量m生成一个电流值为m*imA的输出信号,并注入到所述计算位线CBL上;其中,imA为单位电流,m≤n;
计算电流导出电路,其用于仿真任意一个8TSRAM单元在乘积为1时的状态;所述计算电流导出电路的一端接在计算位线CBL上,另一端用于输出乘积为1的8TSRAM单元对计算位线电流ICBL的分流值,即计算电流;
参考电流生成电路,其用于复制所述采样电流生成电路的输出,并生成从imA到m*imA的m个等差分布的不同等级的阶梯电流,将其作为参考电流;
量化输出电路,其输入端分别接所述计算电流导出电路和参考电流生成电路的输出;所述量化输出电路用于将所述计算电流分别与各个阶梯电流比较,并得到造成比较结果翻转的阶梯电流的大小,然后根据造成翻转的阶梯电流的倍率得出乘累加运算的结果。
6.如权利要求5所述的动态自适应量化的存算电路,其特征在于:所述计算电流导出电路包括一个运放OP,两个NMOS管N7和N8;电路连接关系为:OP的同相输入端和N7的栅极接计算位线CBL;N7的源极接VSS,N7的漏极和N8的源极接OP的反相输入端;N8的栅极接OP的输出端,N8漏极作为计算电流的输出端口。
7.如权利要求5所述的动态自适应量化的存算电路,其特征在于:所述采样电流生成电路采用由n个具有独立开关控制的单位电流镜组成的阵列;每个单位电流镜分别由输入信号IN1-INn的其中一个信号单独控制;所有处于开启状态的电流镜的输出共同注入到计算位线CBL上构成采样电流。
8.如权利要求7所述的动态自适应量化的存算电路,其特征在于:所述参考电流生成电路由电流复制电路以及冗余列构成;所述冗余列由n个Ref_CELL单元构成;所述电流复制电路用于复制所述采样电流生成电路注入到CBL上的采样电流;所述Ref_CELL单元由两个NMOS管构成,并采用如权利要求1-4中任意一项所述的电流域8TSRAM单元中的N5和N6的电路连接方式;所述冗余列中的各个Ref_CELL单元用于对所述电流复制电路复制的采样电流进行分流,并形成不同等级的参考电流。
9.一种CIM电路,其特征在于,其包括:其具有数据读写保持功能、乘法运算功能和乘累加运算功能;所述CIM电路包括:
存算阵列,其由n2个如权利要求1-4中任意一项所述的电流域8TSRAM单元按照n行n列的阵列方式排布而成;
字线组,其包括n条字线WL;所述存算阵列中同行的各个8TSRAM单元均连接在同一条字线WL上;
位线组,其包括n条读写位线BL、BLB,以及n条计算位线CBL;所述存算阵列中同列的所有8TSRAM单元均连接在相同的位线BL、BLB和CBL上;
输入信号线组,其包括n条反相输入信号线NIN;所述存算阵列中同行的所有8TSRAM单元均连接在一条输入信号线NIN;
字线驱动器,其用于控制各条字线WL的开启;
地址译码器,其与字线驱动器连接,所述地址译码器用于将地址信号译码后传入到所述字线驱动器;
预充电路,其用于对位线BL、BLB进行预充操作;
时序控制模块,其用于生成执行数据存储任务或执行乘法运算和乘累加运算过程中所需的各个时钟信号;
模式切换电路,其用于切换所述CIM电路的工作模式,所述CIM电路的工作模式包括数据存储模式和逻辑运算模式;
读写控制电路,其用于对CIM电路执行数据读写操作的过程进行控制;
输入反相电路,其与所述反相输入信号线NIN连接,用于在逻辑运算阶段根据输入信号IN1-INn生成对应的反相输入信号NIN1-NINn;
采样电流生成电路,其输入端接输入信号IN1-INn,输出端接所述存算阵列中的计算位线CBL;所述采样电流生成电路用于根据输入信号IN1-INn中高电平信号的数据量m生成一个电流值为m*imA的输出信号,并注入到所述计算位线CBL上;其中,imA为单位电流,m≤n;
计算电流导出阵列,其由n个计算电流导出电路按行排列而成;每个所述计算电流导出电路与所述存算阵列中一列连接,并包括一个运放OP,两个NMOS管N7和N8;电路连接关系为:OP的同相输入端和N7的栅极接计算位线CBL;N7的源极接VSS,N7的漏极和N8的源极接OP的反相输入端;N8的栅极接OP的输出端,N8漏极作为计算电流的输出端口;所述计算电流导出阵列用于输出各条计算位线CBL上乘累加运算过程的计算电流;
参考电流生成电路,其用于复制所述采样电流生成电路的输出,并生成从imA到m*imA的m个等差分布的不同等级的阶梯电流,将其作为参考电流;以及
量化输出电路,其包括数据读部分和运算输出部分,所述数据读部分用于输出各存储节点的存储数据,所述运算输出部分用于根据计算电流生成乘法运算的结果,或根据参考电流和计算电流,输出乘累加运算的结果。
10.一种CIM芯片,其特征在于:其由如权利要求9所述的CIM电路封装而成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311175010.4A CN117079688A (zh) | 2023-09-12 | 2023-09-12 | 一种电流域8tsram单元及动态自适应量化的存算电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311175010.4A CN117079688A (zh) | 2023-09-12 | 2023-09-12 | 一种电流域8tsram单元及动态自适应量化的存算电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117079688A true CN117079688A (zh) | 2023-11-17 |
Family
ID=88713412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311175010.4A Pending CN117079688A (zh) | 2023-09-12 | 2023-09-12 | 一种电流域8tsram单元及动态自适应量化的存算电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117079688A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117910424A (zh) * | 2024-03-20 | 2024-04-19 | 安徽大学 | 时域存算单元、时域量化单元、及时域存内计算结构 |
CN118132507A (zh) * | 2024-05-08 | 2024-06-04 | 华南理工大学 | 一种支持多种工作负载的新型存内计算架构 |
-
2023
- 2023-09-12 CN CN202311175010.4A patent/CN117079688A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117910424A (zh) * | 2024-03-20 | 2024-04-19 | 安徽大学 | 时域存算单元、时域量化单元、及时域存内计算结构 |
CN117910424B (zh) * | 2024-03-20 | 2024-05-28 | 安徽大学 | 时域存算单元、时域量化单元、及时域存内计算结构 |
CN118132507A (zh) * | 2024-05-08 | 2024-06-04 | 华南理工大学 | 一种支持多种工作负载的新型存内计算架构 |
CN118132507B (zh) * | 2024-05-08 | 2024-07-12 | 华南理工大学 | 一种支持多种工作负载的新型存内计算架构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11335387B2 (en) | In-memory computing circuit for fully connected binary neural network | |
CN112581996A (zh) | 基于磁性随机存储器的时域存内计算阵列结构 | |
CN117079688A (zh) | 一种电流域8tsram单元及动态自适应量化的存算电路 | |
CN113467751B (zh) | 一种基于磁性随机存储器的模拟域存内计算阵列结构 | |
CN109979503B (zh) | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 | |
CN111816231A (zh) | 一种双-6t sram结构的存内计算装置 | |
CN113593618A (zh) | 适用于差分sram存储单元的存算一体化存储阵列结构 | |
CN113782072B (zh) | 一种多比特存内计算电路 | |
CN116364137A (zh) | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 | |
CN117219140B (zh) | 基于8t-sram和电流镜的存内计算电路 | |
CN112509620A (zh) | 基于平衡预充与组译码的数据读取电路 | |
CN116312670A (zh) | 一种9t1c存算电路、乘累加运算电路、存内运算电路、芯片 | |
CN111863071B (zh) | 一种基于sram实现存内运算的电路结构 | |
CN114496010A (zh) | 一种基于磁性随机存储器的模拟域近存计算阵列结构 | |
CN114300012A (zh) | 一种解耦合sram存内计算装置 | |
CN116126779A (zh) | 一种9t存算电路、乘累加运算电路、存内运算电路及芯片 | |
CN117636945A (zh) | 5bit带符号位的同或与同或累加运算电路、CIM电路 | |
CN114038492B (zh) | 一种多相采样存内计算电路 | |
CN117316237B (zh) | 时域8t1c-sram存算单元及时序跟踪量化的存算电路 | |
CN116204490A (zh) | 一种基于低电压技术的7t存算电路、乘累加运算电路 | |
CN115658010A (zh) | 一种脉冲宽度调制电路、量化电路、存算电路、芯片 | |
CN114327368B (zh) | 一种xnor运算的存算电路 | |
CN115954029A (zh) | 多比特运算模块以及使用了该模块的存内计算电路结构 | |
Li et al. | A 9T-SRAM based computing-in-memory with redundant unit and digital operation for boolean logic and MAC | |
Saha | Static Random Access Memory with Half Vdd and Dynamically Powered Read Port for High Speed and Low Switching Power Capabilities |
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 |