CN117636945B - 5bit带符号位的同或与同或累加运算电路、CIM电路 - Google Patents

5bit带符号位的同或与同或累加运算电路、CIM电路 Download PDF

Info

Publication number
CN117636945B
CN117636945B CN202410109635.9A CN202410109635A CN117636945B CN 117636945 B CN117636945 B CN 117636945B CN 202410109635 A CN202410109635 A CN 202410109635A CN 117636945 B CN117636945 B CN 117636945B
Authority
CN
China
Prior art keywords
bit
circuit
exclusive
signed
data
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
Application number
CN202410109635.9A
Other languages
English (en)
Other versions
CN117636945A (zh
Inventor
彭春雨
刘筱彧
朱志国
张蓓蓓
赵强
卢文娟
蔺智挺
吴秀龙
陈军宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Microelectronics Research Institute Co ltd
Anhui University
Original Assignee
Hefei Microelectronics Research Institute Co ltd
Anhui University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei Microelectronics Research Institute Co ltd, Anhui University filed Critical Hefei Microelectronics Research Institute Co ltd
Priority to CN202410109635.9A priority Critical patent/CN117636945B/zh
Publication of CN117636945A publication Critical patent/CN117636945A/zh
Application granted granted Critical
Publication of CN117636945B publication Critical patent/CN117636945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明属于集成电路领域,具体涉及一种5bit带符号位的同或与同或累加运算电路、CIM电路。其具有数据存储和逻辑运算功能,该电路包括8T‑SRAM单元,以及由N1~N6,P1、P2构成的计算单元;N1的漏极接输出位线IBL1,N1的源极接N3的漏极;N2的漏极接输出位线IBL2,N2的源极接N4的漏极;P1的源极接输出位线CBL1,P1的漏极接N5的漏极;P2的源极接输出位线CBL2,P2、N6的漏极相连;N1、N2、P1和P2的栅极接运算节点FO;N3和N5的栅极接输入信号线INH;N4和N6的栅极接输入信号线INL;N3~N6的源极接地;本发明可以大幅提高神经网络中同或运算的数据处理效率。

Description

5bit带符号位的同或与同或累加运算电路、CIM电路
技术领域
本发明属于集成电路领域,具体涉及一种5bit带符号位的同或运算电路,一种5bit带符号位的同或累加运算电路,以及对应的CIM电路。
背景技术
深度学习推动了广泛的人工智能(AI)应用,从图像分类到语音识别。人工智能设备依赖高精度的本地计算进行推理操作,并依赖云计算进行训练。将人工智能算法部署到边缘终端设备有如下问题:第一,大多数涉及在云端静态训练模型的应用,如果不适应用户依赖的个人数据和操作情况,就无法实现高精确度。第二,许多用户不愿意将个人数据发送到云端重新训练模型。第三,许多远程应用缺乏对云的访问能力,无法针对现场遇到的新情况实时进行重新训练。在这些条件下,直接在AI边缘设备上完成算法的学习和训练是一种可取的方法。
在冯·诺依曼架构中,计算和存储功能分别由CPU和存储器完成。而CPU在跟随摩尔定律逐年提升性的过程中,将对制程工艺不敏感的存储器甩在了后面,两者之间逐渐被拉大的差距形成了“存储墙”。为了解决这个问题,技术人员提出的存内运算(CIM)的技术,其可以在存储芯片内部完成部分逻辑运算任务。存算一体架构能在很大程度上降低CPU和存储器之间的数据搬运,克服“存储墙”的缺陷。
神经网络的主要能量消耗在于卷积计算层,浩如烟海的数据在存储器和计算单元之间迁移,模块之间的长互连带来了巨大的能量损耗,在深亚微米甚至纳米的先进工艺下,连线及间距变窄,电阻及耦合电容变大,这一损耗就变得愈发严重。因此,如何减少数据搬运,并降低计算功耗具有重要意义,已经成为设计者主要的目标。神经网络的算法经过了许许多多版本的改进,一开始的全连接神经网络每一层都是通过全连接的方式进行推理计算,参数较多容易丢失空间信息,并且大多数的任务并不要求提取全图特征。后面广泛研究的卷积神经网络(CNN)其结构和参数量也越来越大,再到后面提出的二值神经网络(BNN),二值神经网络是一种参数量化后的神经网络,极大的减小了参数量。由此可以看出算法研究人员也想设计出能简化参数量同时还可以不损失过多精度的神经网络。存内计算架构搭载轻量化的神经网络模型这种强强联合的方式可以将神经网络计算提升到一个新高度。虽然同或运算是神经网络训练和应用过程的一种基本的逻辑运算,但是现有的支持存内运算的逻辑电路中却缺少可以高效执行多比特带符号数的同或运算的电路架构。
发明内容
为了解决现有技术缺乏支持同或运算的存内计算电路架构的问题,本发明提供一种5bit带符号位的同或运算电路,一种5bit带符号位的同或累加运算电路,以及对应的CIM电路。
本发明采用以下技术方案实现:
一种5bit带符号位的同或运算电路,其具有数据存储和逻辑运算功能。该电路支持的逻辑运算功能包括计算一个带符号的5bit数与单比特权重之间的乘积。该同或运算电路包括一个由反相器INV1、INV2,以及NMOS管M1~M4构成的8T-SRAM单元,以及一个由NMOS管N1~N6,以及PMOS管P1、P2构成的计算单元。
在8T-SRAM单元中,INV1、INV2首尾相连构成包含存储节点Q和QB的锁存器,存储节点Q与M1和M3的源极相连,存储节点QB与M2和M4的源极相连。M1和M2的栅极接字线WL;M1和M2的漏极分别接位线BL和BLB。M3和M4的栅极分别接符号位控制线FP和FN;M3和M4的漏极相连作为运算节点FO。
在计算单元中,N1的漏极接输出位线IBL1,N1的源极接N3的漏极;N2的漏极接输出位线IBL2,N2的源极接N4的漏极。P1的源极接输出位线CBL1,P1的漏极接N5的漏极;P2的源极接输出位线CBL2,P2的漏极接N6的漏极。N1、N2、P1和P2的栅极接运算节点FO。N3和N5的栅极接输入信号线INH;N4和N6的栅极接输入信号线INL。N3~N6的源极接地。
其中,NMOS晶体管N1的宽长比是N2的两倍,N3是N4的两倍,N5是N6的两倍。PMOS晶体管P1的宽长比是P2的两倍。
作为本发明进一步的改进,该5bit带符号位的同或运算电路实现5bit带符号数与单比特权重间同或运算的策略如下:
将存储节点Q和QB中预存的值作为单比特权重。
通过符号位控制线FP和FN输入5bit数的符号位部分。
通过两个周期输入5bit数中剩余4bit的无符号数部分;在前一个周期内,通过输入信号线INH和IHL输入高两位中的高位和低位。在后一个周期内,通过输入信号线INH和IHL输入低两位中的高位和低位。前一个周期输入信号的脉冲宽度是后一个周期输入信号的脉冲宽度的4倍。并在两个周期中对位线IBL1、IBL2、CBL1和CBL2上的放电电压分别进行量化。
输出位线IBL1和IBL2在两个周期的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在两个周期后的放电电压总和用于表征乘积结果的负值数据。
作为本发明进一步的改进,存储节点中单比特权重的编码规则为:当“Q=1,QB=0”,则表示权重为“+1”;当“Q=0,QB=1”,则表示权重为“-1”。
作为本发明进一步的改进,在符号位控制线FP和FN中,多比特数的符号位的编码规则为:当“FP=1,FN=0”,则表示符号位为“正”;当“FP=0,FN=1”,则表示符号位为“负”。
作为本发明进一步的改进,该5bit带符号位的同或运算电路还具备计算一个带符号的3bit数与单比特权重之间的乘积的功能,计算策略如下:
将存储节点Q和QB中预存的值作为单比特权重。
通过符号位控制线FP和FN输入3bit数的符号位部分。
通过输入信号线INH和IHL输入3bit数的无符号位部分的高位和低位。
对位线IBL1、IBL2、CBL1和CBL2上的放电电压进行量化;
输出位线IBL1和IBL2在当前周期的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在当前周期后的放电电压总和用于表征乘积结果的负值数据。
作为本发明进一步的改进,在8SRAM单元中,由反相器INV1、INV2构成的数据锁存单元与传输管M1和M2构成实现数据存储功能的基本单元,并用于执行数据的读写和保持。
作为本发明进一步的改进,在数据存储模式下,M3、M4以及计算单元处于关断状态;将字线WL置为高电平,通过位线BL、BLB写入或读出数据。
本发明还包括一种5bit带符号位的同或累加运算电路,其包括至少2个如前述的5bit带符号位的同或运算电路中的8T-SRAM单元,以及一个如前述的5bit带符号位的同或运算电路中的计算单元。
在同或累加运算电路中,各个8T-SRAM单元和计算单元按列排布;每个8T-SRAM单元连接独立的字线WL以及符号位控制线FP和FN。所有8T-SRAM单元连接在同一对位线BL和BLB上,且各个8T-SRAM单元的计算节点FO相连。
作为本发明进一步的改进,该同或累加运算电路实现5bit带符号数与单比特权重间的同或累加运算的策略如下:
(1)选择预存对应单比特权重的8T-SRAM单元作为参与运算的单元。
(2)在不同的周期内,依次选中一个8T-SRAM,输入符号位和无符号数部分,并对位线IBL1、IBL2、CBL1和CBL2上的放电电压进行量化;完成其中一个5bit带符号数与单比特权重间的同或运算。
(3)将输出位线IBL1和IBL2在全周期内的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在全周期内的放电电压总和用于表征乘积结果的负值数据。
(4)将正值数据与负值数据从模拟域转换到数字域后,正值数据与负值数据的差即为所需的同或累加运算结果。
本发明还包括一种CIM电路,其包括由若干个如前述的5bit带符号位的同或累加运算电路作为基本单元并按行列排布后构成的存算阵列,以及用于配合存算阵列实现数据存储和逻辑运算功能的外围电路。
本发明提供的技术方案,具有如下有益效果:
本发明在8T-SRAM的基础上,增加了由8个晶体管构成的计算单元,计算单元连接在一列8T SRAM的FO上,进而实现利用8T-SRAM的存储数据作为权重,输入到传输管上的信号作为符号位,并结合输入到计算单元的信号进行同或运算和同或累加。
本发明设计出5bit带符号数与单比特权重间的同或运算和同或累加运算的存内运算电路,可以支持最低3bit带符号数与单比特权重的同或运算和同或累加运算,也可以在多个周期内结合对输入信号的脉宽调制实现多比特带符号数与单比特权重的同或运算和同或累加运算。该电路一次计算开启一行,具有高精度计算的优点;因而特别适合处理BNN神经网络中包含的大量同或运算任务。
附图说明
图1为本发明实施例1中提供的一种5bit带符号位的同或运算电路的电路图。
图2为本发明实施例2中提供的一种5bit带符号位的同或累加运算电路的电路图。
图3为本发明实施例3中提供的基于5bit带符号位的同或累加运算电路的CIM电路的架构图。
图4为仿真实验中不同乘积结果对应的计算位线的放电信号。
图5为仿真实验中只开启一个8T-SRAM单元且输入无符号4bit数据为0001、0010、0011、0100时对应的输出信号。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步地详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供了一种5bit带符号位的同或运算电路,其具有数据存储和逻辑运算功能。该电路支持的逻辑运算功能包括计算一个带符号的5bit数与单比特权重之间的乘积,因此可以将该电路用于处理神经网络中海量的同或运算任务。
如图1所示,该同或运算电路包括一个由反相器INV1、INV2,以及NMOS管M1~M4构成的8T-SRAM单元,以及一个由NMOS管N1~N6,以及PMOS管P1、P2构成的计算单元。
在8T-SRAM单元中,INV1、INV2首尾相连构成包含存储节点Q和QB的锁存器,存储节点Q与M1和M3的源极相连,存储节点QB与M2和M4的源极相连。M1和M2的栅极接字线WL;M1和M2的漏极分别接位线BL和BLB。M3和M4的栅极分别接符号位控制线FP和FN;M3和M4的漏极相连作为运算节点FO。
8T-SRAM单元是实现数据存储的基本单元,因而可以执行存储数据的读写和保持。详细来说,反相器INV1、INV2分别由一对PMOS管和一对NMOS管反向交叉耦合构成,该4T部分构成的数据锁存单元,在数据锁存单元中包括一对反相的存储节点Q和QB;NMOS型传输管M1和M2连接存储节点和位线BL和BLB,因而可以辅助完成数据的读取和写入。其中,INV1、INV2、M1和M2构成了一个典型的6T-SRAM电路,而增加的NMOS管M3和M4则可以与6T-SRAM电路中的传输管M1和M2独立,并进一步根据符号位的值选择Q或QB信号传输到计算节点FO,以便支持完成后续的逻辑运算任务。因此,在数据存储模式下,M3、M4以及计算单元均处于关断状态。此时,将字线WL置为高电平,则可以通过位线BL、BLB写入或读出数据。
在计算单元中,N1的漏极接输出位线IBL1,N1的源极接N3的漏极;N2的漏极接输出位线IBL2,N2的源极接N4的漏极。P1的源极接输出位线CBL1,P1的漏极接N5的漏极;P2的源极接输出位线CBL2,P2的漏极接N6的漏极。N1、N2、P1和P2的栅极接运算节点FO。N3和N5的栅极接输入信号线INH;N4和N6的栅极接输入信号线INL。N3~N6的源极接地。
本实施例的5bit带符号位的同或运算电路属于是电压域的逻辑运算电路。其中的计算单元的主要工作原理是根据符号位和权值选择不同的路径进行放电,并通过放电电压的大小对无符号数的数值进行表征。进而实现带符号的同或运算。
需要强调的是:本实施例方案在对多比特数乘积结果进行量化输出的阶段,实现不同位上的数对应的放电电压的大小的“分级”主要依赖器件的规格参数的特殊选型,以及对输入信号线INH和输入信号线INL上的输入信号的脉宽的调整。例如,在本实施例方案中,NMOS晶体管N1的宽长比是N2的两倍,N3是N4的两倍,N5是N6的两倍。PMOS晶体管P1的宽长比是P2的两倍。器件的宽长比可以使得高位上的乘积结果对应的发电电压恰好等于低位上的两倍。而输入信号脉宽呈倍数放大也可以延长放电时间,并使得放电电压呈倍数增长。
以下结合图1分别对本实施例的5bit带符号位的同或运算电路实现数据存储和逻辑运算的详细过程进行描述,以使得该方案的原理和优势更加清楚:
一、数据存储功能,
(1)写操作
在本实施例的5bit带符号位的同或运算电路中,数据存储功能以及逻辑运算功能中的权重设置阶段均需要执行数据写入操作。写操作由8T-SRAM单元完成,此时,M3、M4,以及N1~N6、P1、P2等与计算相关的MOS管均不工作,不会对电路造成影响。
以存储数据为“1”,写入数据“0”为例,在写操作前存储单元存储节点Q为高电平,QB为低电平。首先将写操作字线WL被拉为高电平选中单元,同时将需要写入的数据“0”加载到写位线上,即BL为低电平,BLB为高电平。接下来,位线BL会通过NMOS晶体管M1下拉节点Q,BLB通过NMOS晶体管M2上拉节点QB,锁存结构反馈环被打破,数据“0”被写入存储单元,写入完成后,存储节点Q为低电平,QB为高电平。
写入数据“1”与上述过程同理,区别仅在于需要将位线BL置位为高电平,而将位线BLB置位为低电平。
(2)读操作
在8T-SRAM单元中可以实现存储数据的读取操作时,假设在读操作前存储单元存储节点Q为高电平,QB为低电平,即存储数据为“1”。在读操作开始时,读位线BL和BLB预充电至高电平,字线WL被拉为高电平,NMOS晶体管M1、M2被开启。读位线BL仍保持高电平,读位线BLB收到存储节点内部的电压影响被拉低。经过灵敏放大器SA放大后,读出结果为“1”。
若存储节点Q为低电平,存储节点QB为高电平,即存储数据为“0”,则数据读取过程与上述过程同理。
(3)数据保持
本实施例的8T-SRAM单元中除M3和M4以外的部分为经典的6T-SRAM结构,在存储节点Q和QB写入数据后,将字线WL置为低电平,断开传输管与存储节点的连接,INV1和INV2构成的锁存结构可以对存储的数据进行保持。
二、逻辑运算功能
本实施例提供5bit带符号位的同或运算电路实现逻辑运算实际上是多比特带符号数与单比特权重间的同或运算。在执行过程中,本实施例的电路将存储节点Q和QB中预存的值作为单比特权重,存储节点中单比特权重的编码规则为:当“Q=1,QB=0”,则表示权重为“+1”;当“Q=0,QB=1”,则表示权重为“-1”。
以5bit带符号数与单比特权重间的同或运算为例,本实施例的同或运算电路在执行运算时将有符号数输入分成1bit的符号位和4bit的无符号数两部分,在计算同时向计算单元部分同时输入,分别对M3、M4、N3、N4、N5、N6进行晶体管开关控制,实现5bit带符号位的操作数的输入。在符号位控制线FP和FN中,多比特数的符号位的编码规则为:当“FP=1,FN=0”,则表示符号位为“正”;当“FP=0,FN=1”,则表示符号位为“负”。
在执行逻辑运算任务的过程中,计算单元在预充阶段将计算节点FO预充到高电平,符号位FP、FN保持在低电平。8T-SRAM的存储节点Q和QB中存储的数据即为同或运算中所需的单比特权重。存储节点Q和QB通过传输管M3、M4与N1、N2的栅极和P1、P2的栅极相连,选择读出某一行权重数据时,对应的符号位控制信号FP、FN根据符号位的值打开对应的管子,存储节点Q或QB的值会作用在FO上,即N1、N2的栅极和P1、P2的栅极。由于8T-SRAM单元存储的权重为‘+1’,即“Q=1,QB=0”,单元存储的权重为‘-1’,即“Q=0,QB=1”.若输入信号的符号位为‘正’,即“FP=1,FN=0”,则传输管M3打开。若输入信号的符号位为‘负’,即“FP=0,FN=1”,则传输管M4打开。根据符号位的值选择Q或QB信号传输到FO。由此可见:权重数据和符号位的输入共同影响最终的放电路径,而放电路径即对应了不同的乘积结果的符号。
在本实施例的计算单元中,输入信号线有两条,分别位INH和INL,二者可以在同一个周期内同时向计算单元输入2bit的无符号数的高位和低位。再加上FP和FN输入的1bit的符号位,则构成了同或运算中的一个3bit的操作数。因此,本实施例的同或运算电路只需要一个周期即可完成可以3bit带符号数与单比特权重间的同或运算。为了实现5bit甚至更高比特的带符号数与单比特权重的同或运算,本实施选择利用多个周期,并在不同周期输入不同脉冲宽度的输入信号,以调整多比特数中不同位与权重相乘时对应的发电电压的大小。
具体地,在5bit有符号数输入与1bit权重的同或(同或)计算中,无符号数通过脉宽调制输入,例如,数据“1”会通过输入宽度为t的高电平信号产生,数据“2”会输入宽度为2t的高电平信号。以4bit X3X2X1X0(8421)为例,分成两个周期T1和T2进行输入,T1周期输入X3X2,X3由INH输入,X2由INL输入,输入高电平信号的宽度为4t;T2周期输入X1X0,X1由INH输入,X0由INL输入,输入高电平信号的宽度为t。
综上所述,本实施例提供的5bit带符号位的同或运算电路中实现带符号的3bit数与单比特权重之间的乘积的功能的策略如下:
(A)将存储节点Q和QB中预存的值作为单比特权重。
(B)通过符号位控制线FP和FN输入3bit数的符号位部分。
(C)通过输入信号线INH和IHL输入3bit数的无符号位部分的高位和低位。
(D)对位线IBL1、IBL2、CBL1和CBL2上的放电电压进行量化;
(E)输出位线IBL1和IBL2在当前周期的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在当前周期后的放电电压总和用于表征乘积结果的负值数据。
相应地,该5bit带符号位的同或运算电路实现5bit带符号数与单比特权重间同或运算的策略如下:
(a)将存储节点Q和QB中预存的值作为单比特权重。
(b)通过符号位控制线FP和FN输入5bit数的符号位部分。
(c)通过两个周期输入5bit数中剩余4bit的无符号数部分;在前一个周期内,通过输入信号线INH和IHL输入高两位中的高位和低位。在后一个周期内,通过输入信号线INH和IHL输入低两位中的高位和低位。前一个周期输入信号的脉冲宽度是后一个周期输入信号的脉冲宽度的4倍。并在两个周期中对位线IBL1、IBL2、CBL1和CBL2上的放电电压分别进行量化。
(d)输出位线IBL1和IBL2在两个周期的放电电压总和表征乘积结果的正值数据;输出位线CBL1和CBL2在两个周期后的放电电压总和表征乘积结果的负值数据。
基于以上内容还可以进一步发现:本实施例的电路实际上也可以完成7bit、9bit……等多比特带符号数与单比特权重间的同或运算。区别仅在于需要利用更多周期来完成不同位的无符号的输入,并需要对输入的信号的脉冲宽度进行调整,保证每一个阶段输入的信号的脉宽是下一周期的4倍。
进一步地,本实施例的5bit带符号位的同或运算电路在执行同或运算时的电路实现原理可以结合以下运算过程进行更详细的说明:
2.1、正正相乘
假设单元存储权重为“+1”且符号位为“0”即为正时,此时传输管M3打开,Q点与N1、N2、P1、P2的栅极通过传输管M3连接起来,此时Q点为高电平,N1、N2管导通,P1、P2管截止。
当输入无符号4bit数据为“0110”时,分为两个周期, T1周期输入X3X2=01,X3由INH输入,X2由INL输入,所以INH不输入高电平信号,INL输入4t宽度的高电平信号;则传输管N4、N6导通,此时计算位线IBL2与GND构成通路,位线IBL2放电。T2周期输入X1X0=10,X1由INH输入,X0由INL输入,所以INH输入t宽度的高电平信号,INL不输入高电平信号;则传输管N3、N5导通,此时计算位线IBL1与GND构成通路,位线IBL1放电。根据IBL1和IBL2在两个周期放电量的总和得出正值数据。
2.2、负正相乘
假设单元存储权重为“-1”且符号位为“0”即为正时,此时传输管M3打开,Q点与N1、N2、P1、P2的栅极通过传输管M3连接起来,此时Q点为低电平,N1、N2管截止,P1、P2管导通。
当输入无符号4bit数据为“1001”时,分为两个周期, T1周期输入X3X2=10,X3由INH输入,X2由INL输入,所以INH输入4t宽度的高电平信号,INL不输入高电平信号;则传输管N3、N5导通,此时计算位线CBL1与GND构成通路,位线CBL1放电。T2周期输入X1X0=01,X1由INH输入,X0由INL输入,所以INH不输入高电平信号,INL输入t宽度的高电平信号;则传输管N4、N6导通,此时计算位线CBL2与GND构成通路,位线CBL2放电。根据CBL1和CBL2在两个周期放电量的总和得出负值数据。
2.3、正负相乘
假设单元存储权重为“+1”且符号位为“1”即为负时,此时传输管M4打开,QB点与N1、N2、P1、P2的栅极通过传输管M4连接起来,此时QB点为低电平,N1、N2管截止,P1、P2管导通。
当输入无符号4bit数据为“1001”时,分为两个周期, T1周期输入X3X2=10,X3由INH输入,X2由INL输入,所以INH输入4t宽度的高电平信号,INL不输入高电平信号;则传输管N3、N5导通,此时计算位线CBL1与GND构成通路,位线CBL1放电。T2周期输入X1X0=01,X1由INH输入,X0由INL输入,所以INH不输入高电平信号,INL输入t宽度的高电平信号;则传输管N4、N6导通,此时计算位线CBL2与GND构成通路,位线CBL2放电。根据CBL1和CBL2在两个周期放电量的总和得出负值数据。
2.4、负负相乘
假设单元存储权重为“-1”且符号位为“1”即为负时,此时传输管M4打开,QB点与N1、N2、P1、P2的栅极通过传输管M4连接起来,此时QB点为高电平,N1、N2管导通,P1、P2管截止。
当输入无符号4bit数据为“0110”时,分为两个周期, T1周期输入X3X2=01,X3由INH输入,X2由INL输入,所以INH不输入高电平信号,INL输入4t宽度的高电平信号;则传输管N4、N6导通,此时计算位线IBL2与GND构成通路,位线IBL2放电。T2周期输入X1X0=10,X1由INH输入,X0由INL输入,所以INH输入t宽度的高电平信号,INL不输入高电平信号;则传输管N3、N5导通,此时计算位线IBL1与GND构成通路,位线IBL1放电。根据IBL1和IBL2在两个周期放电量的总和得出正值数据。
实施例2
在实施例1方案的基础上,本实施例进一步提供一种5bit带符号位的同或累加运算电路,其包括至少2个如实施例1的5bit带符号位的同或运算电路中的8T-SRAM单元,以及一个如实施例1的5bit带符号位的同或运算电路中的计算单元。
如图2所示,在本实施例同或累加运算电路中,各个8T-SRAM单元和计算单元按列排布;每个8T-SRAM单元连接独立的字线WL以及符号位控制线FP和FN。所有8T-SRAM单元连接在同一对位线BL和BLB上,且各个8T-SRAM单元的计算节点FO相连。
具体地,该同或累加运算电路实现5bit带符号数与单比特权重间的同或累加运算的策略如下:
(1)选择预存对应单比特权重的8T-SRAM单元作为参与运算的单元。
(2)在不同的周期内,依次选中一个8T-SRAM,输入符号位和无符号数部分,并对位线IBL1、IBL2、CBL1和CBL2上的放电电压进行量化;完成其中一个5bit带符号数与单比特权重间的同或运算。
(3)将输出位线IBL1和IBL2在全周期内的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在全周期内的放电电压总和用于表征乘积结果的负值数据。
(4)将正值数据与负值数据从模拟域转换到数字域后,正值数据与负值数据的差即为所需的同或累加运算结果。
本实施例的同或累加运算单元将多个8T-SRAM和一个计算单元按列排列,各个8T-SRAM共享同一个计算单元。同或累加运算的实质就是将多个同或运算的结果累加在一起,因此,本实施例提供的同或累加运算单元的运算过程即在不同的周期内分别选择一个8T-SRAM与“公共”的计算单元组合一个可以执行同或运算的基本单元,完成对应的同或运算,最后将所有同或运算的结果(放电电压)保存在相应的计算位线上等待ADC进行结果量化将计算结果从模拟域转化为数字域,然后连接一个减法器,将正值减去负值得到最后的计算结果。
实施例3
在实施例2的基础上,本实施例进一步提供一种CIM电路,其包括由若干个如实施例2的5bit带符号位的同或累加运算电路作为基本单元并按行列排布后构成的存算阵列,还包括用于配合存算阵列实现数据存储和逻辑运算功能的外围电路。
在存算阵列中,IBL1、IBL2、CBL1、CBL2列共享,INH、INL行共享,若干个同或累加运算电路可以同时计算,并在计算位线IBL1、IBL2、CBL1、CBL2上累积放电值。
如图3所示,将如实施例2中的每8个8T-SRAM和一个计算单元构成基本单元作为一个bank,整个CIM的大小为256×64,bank数量共有32×64个,每一行由64个bank组成,每一列有32个bank,每个bank为8个8T-SRAM加一个8T的计算单元,一列32个bank计算位线IBL1、IBL2、CBL1、CBL2的结果积累在一起。整体阵列每次计算32行(即每个bank的相同行),计算结果保存在相应的计算位线上等待ADC进行结果量化将计算结果从模拟域转化为数字域,然后连接一个减法器,将正值减去负值得到最后的计算结果。
本实施例提供的CIM中的bank采用了阵列排布的布局方式,并按行列进行信号线共享,因而可以在不同bank内支持进行并行运算,该型CIM电路中并行完成多个同或累加运算的策略如下:
假设进行计算的是每个bank的第一行,64组输入信号给到每一列,每一组输入信号都会分成符号位和无符号数分别给到FN、FP和INH、INL,根据符号位会选择导通Q或QB到N1、N2或P1、P2栅极的通路,正值导通N1、N2晶体管,负值导通P1、P2晶体管,无符号数会根据数值大小分为两个周期产生对应的脉宽加在对应列N3、N4、N5、N6的栅极,每个bank导通放电通路对同一积累位线IBL1、IBL2、CBL1、CBL2进行放电,第一行计算完成后开启第二行进行上述相同步骤。
为了实现电路的数据存储和逻辑运算功能,本实施例的CIM电路中还应该包括多种外围电路,例如在实现数据存储功能时,需要的外围电路就包括:字线驱动器、地址译码器、预充电路、时序控制模块、模式切换电路、读写控制电路。字线驱动器用于控制各条字线WL的开启。地址译码器与字线驱动器连接,地址译码器用于将地址信号译码后传入到字线驱动器。预充电路用于对位线BL、BLB等信号线进行预充操作。时序控制模块用于生成执行数据存储任务或执行同或运算和同或累加运算过程中所需的各个时钟信号。模式切换电路用于切换CIM电路的工作模式。
而在执行逻辑运算任务时,必要的外围电路至少还包括:用于向符号位控制线FN和FP输入不同信号的符号位编码电路,用于输入不同无符号数的脉宽调制电路,用于对计算结果进行获取的信号采样电路,ADC量化电路,以及对正指数据和负值数据进行累计的减法器,等等。
仿真测试
为了验证本实施例提供的5bit带符号位的同或运算电路、同或累加运算电路和CIM电路的性能,技术人员对相关电路进行仿真和测试。
1、仿真实验环境
本实例采用28nm CMOS工艺的最小尺寸,在27℃,TT 工艺角条件下,利用Virtuoso仿真软件进行仿真。
2、放电电压的梯级测试
本实施例提供的电路通过计算位线上的放电电压来表征最终的乘积结构的数值大小,数值大小与放电电压呈正正比。为了验证这种映射关系,本实验对MAC=10、MAC=20、MAC=30、MAC=40、MAC=50、MAC=60的情况进行了仿真,最终得到的计算位线的放电曲线如图4所示。
分析图4中数据可知:MAC取最大值对应OUT电压为0的时候。取ΔV=15mv,OUT的电压分别为1050mv、900mv、750mv、600mv、450mv、300mv,对应的总放电电压为150mv、300mv、450mv、600mv、750mv、900mv,即对应的MAC为10、20、30、40、50、60。由此可见,放电电压确实与乘积结果的数值成正比,本发明利用计算位线的放电电压来表征运算结果的数值大小是合适的。
3、同或运算测试
本实验对只开启一个8T-SRAM单元的情况进行仿真,单元存储权重为“+1”,即单元中存储数据“Q=1、QB=0”,且符号位为“0”即为正时,FP=1、FN=0,对输入无符号4bit数据为X0X1、X1X0、X1X1的情况进行仿真。仿真过程的实验数据如图5所示。
分析图5中数据可知:在不同阶段,IBL2输出的电压分别为1185mv、1140mv、1125mv,对应的总放电量为15mv、60mv、75mv,输入数据保持的高电平周期分别为100ps、400ps、500ps,即对应的输入数据为X0X1、X1X0、X1X1,根据IBL1和IBL2在两个周期放电量的总和得出正值数据。由此可见,本发明提供的电路可以实现同或运算,即带符号的多比特数与单比特权重间的同或运算。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种5bit带符号位的同或运算电路,其特征在于,其具有数据存储和逻辑运算功能,所述逻辑运算功能包括计算一个带符号的5bit数与单比特权重之间的乘积;所述同或运算电路包括一个由反相器INV1、INV2,以及NMOS管M1~M4构成的8T-SRAM单元,以及一个由NMOS管N1~N6,以及PMOS管P1、P2构成的计算单元;
在8T-SRAM单元中,INV1、INV2首尾相连构成包含存储节点Q和QB的锁存器,存储节点Q与M1和M3的源极相连,存储节点QB与M2和M4的源极相连;M1和M2的栅极接字线WL;M1和M2的漏极分别接位线BL和BLB;M3和M4的栅极分别接符号位控制线FP和FN;M3和M4的漏极相连作为运算节点FO;
在计算单元中,N1的漏极接输出位线IBL1,N1的源极接N3的漏极;N2的漏极接输出位线IBL2,N2的源极接N4的漏极;P1的源极接输出位线CBL1,P1的漏极接N5的漏极;P2的源极接输出位线CBL2,P2的漏极接N6的漏极;N1、N2、P1和P2的栅极接运算节点FO;N3和N5的栅极接输入信号线INH;N4和N6的栅极接输入信号线INL;N3~N6的源极接地;
其中,NMOS晶体管N1的宽长比是N2的两倍,N3是N4的两倍,N5是N6的两倍;PMOS晶体管P1的宽长比是P2的两倍。
2.如权利要求1所述的5bit带符号位的同或运算电路,其特征在于:其实现5bit带符号数与单比特权重间同或运算的策略如下:
将存储节点Q和QB中预存的值作为单比特权重;
通过符号位控制线FP和FN输入5bit数的符号位部分;
通过两个周期输入5bit数中剩余4bit的无符号数部分;在所述两个周期中的前一个周期内,通过输入信号线INH和IHL输入高两位中的高位和低位;在所述两个周期中的后一个周期内,通过输入信号线INH和IHL输入低两位中的高位和低位;所述两个周期中前一个周期输入信号的脉冲宽度是后一个周期输入信号的脉冲宽度的4倍;并在两个周期中对位线IBL1、IBL2、CBL1和CBL2上的放电电压分别进行量化;
输出位线IBL1和IBL2在两个周期后的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在两个周期后的放电电压总和用于表征乘积结果的负值数据。
3.如权利要求2所述的5bit带符号位的同或运算电路,其特征在于:当“Q=1,QB=0”,则表示权重为“+1”;当“Q=0,QB=1”,则表示权重为“-1”。
4.如权利要求2所述的5bit带符号位的同或运算电路,其特征在于:当“FP=1,FN=0”,则表示符号位为“正”;当“FP=0,FN=1”,则表示符号位为“负”。
5.如权利要求2所述的5bit带符号位的同或运算电路,其特征在于,其还具备计算一个带符号的3bit数与单比特权重之间的乘积的功能,计算策略如下:
将存储节点Q和QB中预存的值作为单比特权重;
通过符号位控制线FP和FN输入3bit数的符号位部分;
通过输入信号线INH和IHL输入3bit数的无符号位部分的高位和低位;
对位线IBL1、IBL2、CBL1和CBL2上的放电电压进行量化;
输出位线IBL1和IBL2在当前周期的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在当前周期后的放电电压总和用于表征乘积结果的负值数据。
6.如权利要求1所述的5bit带符号位的同或运算电路,其特征在于:在8SRAM单元中,由反相器INV1、INV2构成的数据锁存单元与传输管M1和M2构成实现数据存储功能的基本单元,并用于执行数据的读写和保持。
7.如权利要求6所述的5bit带符号位的同或运算电路,其特征在于:在数据存储模式下,M3、M4以及计算单元处于关断状态;将字线WL置为高电平,通过位线BL、BLB写入或读出数据。
8.一种5bit带符号位的同或累加运算电路,其特征在于:其包括至少2个如权利要求1-7中任意一项所述的5bit带符号位的同或运算电路中的8T-SRAM单元,以及一个如权利要求1-7中任意一项所述的5bit带符号位的同或运算电路中的计算单元;
各个所述8T-SRAM单元和所述计算单元按列排布;每个8T-SRAM单元连接独立的字线WL以及符号位控制线FP和FN;所有8T-SRAM单元连接在同一对位线BL和BLB上,且各个8T-SRAM单元的计算节点FO相连。
9.如权利要求8所述的5bit带符号位的同或累加运算电路,其特征在于:其实现5bit带符号数与单比特权重间的同或累加运算的策略如下:
(1)选择预存对应单比特权重的8T-SRAM单元作为参与运算的单元;
(2)在不同的周期内,依次选中一个8T-SRAM,输入符号位和无符号数部分,并对位线IBL1、IBL2、CBL1和CBL2上的放电电压进行量化;完成其中一个5bit带符号数与单比特权重间的同或运算;
(3)将输出位线IBL1和IBL2在全周期内的放电电压总和用于表征乘积结果的正值数据;输出位线CBL1和CBL2在全周期内的放电电压总和用于表征乘积结果的负值数据;
(4)将正值数据与负值数据从模拟域转换到数字域后,正值数据与负值数据的差即为所需的同或累加运算结果。
10.一种CIM电路,其特征在于:其包括由若干个如权利要求8或9中所述的5bit带符号位的同或累加运算电路作为基本单元并按行列排布后构成的存算阵列,以及用于配合所述存算阵列实现数据存储和逻辑运算功能的外围电路。
CN202410109635.9A 2024-01-26 2024-01-26 5bit带符号位的同或与同或累加运算电路、CIM电路 Active CN117636945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410109635.9A CN117636945B (zh) 2024-01-26 2024-01-26 5bit带符号位的同或与同或累加运算电路、CIM电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410109635.9A CN117636945B (zh) 2024-01-26 2024-01-26 5bit带符号位的同或与同或累加运算电路、CIM电路

Publications (2)

Publication Number Publication Date
CN117636945A CN117636945A (zh) 2024-03-01
CN117636945B true CN117636945B (zh) 2024-04-09

Family

ID=90036030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410109635.9A Active CN117636945B (zh) 2024-01-26 2024-01-26 5bit带符号位的同或与同或累加运算电路、CIM电路

Country Status (1)

Country Link
CN (1) CN117636945B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11024358B1 (en) * 2020-05-27 2021-06-01 Qualcomm Incorporated Differential compute-in-memory bitcell
CN112992223A (zh) * 2021-05-20 2021-06-18 中科院微电子研究所南京智能技术研究院 一种存内计算单元、阵列及装置
CN114882921A (zh) * 2022-07-08 2022-08-09 中科南京智能技术研究院 一种多比特计算装置
CN114895869A (zh) * 2022-07-13 2022-08-12 中科南京智能技术研究院 一种带符号的多比特存内计算装置
WO2022232055A1 (en) * 2021-04-25 2022-11-03 University Of Southern California Embedded matrix-vector multiplication exploiting passive gain via mosfet capacitor for machine learning application
CN116185336A (zh) * 2023-02-21 2023-05-30 湖南大学 一种基于sram的有符号数模拟存内计算电路
CN116364137A (zh) * 2023-04-03 2023-06-30 安徽大学 一种同侧双位线的8t单元、逻辑运算电路及cim芯片
CN117219140A (zh) * 2023-11-03 2023-12-12 安徽大学 基于8t-sram和电流镜的存内计算电路
CN117271436A (zh) * 2023-11-21 2023-12-22 安徽大学 基于sram的电流镜互补存内计算宏电路、及芯片

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170292B2 (en) * 2017-09-21 2021-11-09 The Trustees Of Columbia University In The City Of New York Static random-access memory for deep neural networks
US10964362B2 (en) * 2019-04-25 2021-03-30 Marvell Asia Pte, Ltd. Three-port memory cell and array for in-memory computing
US20200349106A1 (en) * 2019-05-01 2020-11-05 Samsung Electronics Co., Ltd. Mixed-precision neural-processing unit tile
US11593573B2 (en) * 2021-05-31 2023-02-28 Ceremorphic, Inc. Chopper stabilized analog multiplier unit element with binary weighted charge transfer capacitors
US20230326499A1 (en) * 2022-04-12 2023-10-12 Stmicroelectronics S.R.L. Signed and binary weighted computation for an in-memory computation system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11024358B1 (en) * 2020-05-27 2021-06-01 Qualcomm Incorporated Differential compute-in-memory bitcell
WO2022232055A1 (en) * 2021-04-25 2022-11-03 University Of Southern California Embedded matrix-vector multiplication exploiting passive gain via mosfet capacitor for machine learning application
CN112992223A (zh) * 2021-05-20 2021-06-18 中科院微电子研究所南京智能技术研究院 一种存内计算单元、阵列及装置
CN114882921A (zh) * 2022-07-08 2022-08-09 中科南京智能技术研究院 一种多比特计算装置
CN114895869A (zh) * 2022-07-13 2022-08-12 中科南京智能技术研究院 一种带符号的多比特存内计算装置
CN116185336A (zh) * 2023-02-21 2023-05-30 湖南大学 一种基于sram的有符号数模拟存内计算电路
CN116364137A (zh) * 2023-04-03 2023-06-30 安徽大学 一种同侧双位线的8t单元、逻辑运算电路及cim芯片
CN117219140A (zh) * 2023-11-03 2023-12-12 安徽大学 基于8t-sram和电流镜的存内计算电路
CN117271436A (zh) * 2023-11-21 2023-12-22 安徽大学 基于sram的电流镜互补存内计算宏电路、及芯片

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
以双字线双阈值 4T SRAM 为基础的存内计算设计;蔺智挺, 钮建超, 吴秀龙, 彭春雨;计算机科学与探索;20210401;第15卷(第11期);2116-2125 *

Also Published As

Publication number Publication date
CN117636945A (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
CN112183739B (zh) 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构
CN111880763B (zh) 一种在内存中实现带有正负数乘加的sram电路
CN112133348B (zh) 一种基于6t单元的存储单元、存储阵列和存内计算装置
CN109979503B (zh) 一种在内存中实现汉明距离计算的静态随机存储器电路结构
US11817173B2 (en) Timing-based computer architecture systems and methods
CN114937470B (zh) 基于多比特sram单元的定点全精度存内计算电路
US20220269483A1 (en) Compute in memory accumulator
Mu et al. SRAM-based in-memory computing macro featuring voltage-mode accumulator and row-by-row ADC for processing neural networks
CN113703718B (zh) 一种可变权重的多位存内计算装置
CN117219140B (zh) 基于8t-sram和电流镜的存内计算电路
US20230297235A1 (en) Sram-based cell for in-memory computing and hybrid computations/storage memory architecture
CN117636945B (zh) 5bit带符号位的同或与同或累加运算电路、CIM电路
CN117056277A (zh) 基于读写分离sram配置自适应扫描adc的乘累加存内计算电路
CN114895869B (zh) 一种带符号的多比特存内计算装置
CN114882921B (zh) 一种多比特计算装置
CN113391786B (zh) 一种多位正负权重的计算装置
CN115312093A (zh) 一种基于9tsram的存内计算单元及阵列
CN114093394A (zh) 一种可转置存内计算电路及其实现方法
Bian et al. In-MRAM computing elements with single-step convolution and fully connected for BNN/TNN
CN117316237B (zh) 时域8t1c-sram存算单元及时序跟踪量化的存算电路
CN111883192B (zh) 基于9t sram单元在内存实现汉明距离计算的电路及9t sram单元
CN117153218A (zh) 单bit权重产生单元、多bit权重产生单元、阵列组及计算宏
US20240069780A1 (en) In-memory computing architecture for nearest neighbor search of cosine distance and operating method thereof
CN115658011B (zh) 向量乘加器的sram存内计算装置和电子设备
Saragada et al. An in-memory architecture for machine learning classifier using logistic regression

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