CN116594587A - 一种基于动态逻辑乘法的单比特全数字存内计算单元 - Google Patents
一种基于动态逻辑乘法的单比特全数字存内计算单元 Download PDFInfo
- Publication number
- CN116594587A CN116594587A CN202310662686.XA CN202310662686A CN116594587A CN 116594587 A CN116594587 A CN 116594587A CN 202310662686 A CN202310662686 A CN 202310662686A CN 116594587 A CN116594587 A CN 116594587A
- Authority
- CN
- China
- Prior art keywords
- adder
- bit
- sram
- row
- nmos tube
- 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
- 230000005284 excitation Effects 0.000 claims abstract description 11
- 230000001360 synchronised effect Effects 0.000 claims abstract description 11
- 238000009825 accumulation Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000000034 method Methods 0.000 abstract 1
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000007599 discharging Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- 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/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明公开了一种基于动态逻辑乘法的单比特全数字存内计算单元,包括输入驱动模块、SRAM阵列、触发器阵列、加法器;输入驱动模块的每个输出端分别连接至SRAM阵列中每行SRAM存储单元的输入端,用于提供输入激励信号;每行SRAM存储单元用于存储权重信息;触发器阵列中每行触发器的输入端分别连接至每行SRAM存储单元的输出端,用于寄存输出结果并进行同步操作;加法器的每个输入端分别连接至每行触发器的输出端,用于对同步操作后的输出结果进行累加操作;本发明相对于模拟域的存内计算,数字域的存内计算结构输出结果都为准确值且受到的噪声源干扰较小;采用的动态逻辑相对于传统的与门乘法器减少了晶体管的使用数量,减小了面积消耗。
Description
技术领域
本发明涉及一种基于动态逻辑乘法的单比特全数字存内计算单元,属于存内计算技术领域。
背景技术
在人工智能技术高速发展的今天,卷积神经网络作为一种高效且快速的神经网络类型而得到广泛的使用。但由于大量的数据交换需求,卷积神经网络在冯诺依曼体系下的效率较低。为了减少内存墙对性能的影响,基于卷积神经网络的存内计算技术应运而生。
在存内计算架构中有两种类型:数字域存内计算和模拟域存内计算。相比于模拟域的存内计算,数字域的存内计算具有较多优点,比如高精度和强鲁棒性等。但是,在数字域存内计算架构中的乘法和加法由于额外增加了元器件而增加了电路的面积,造成新的技术问题。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于动态逻辑乘法的单比特全数字存内计算单元,解决在数字域存内计算架构中的乘法和加法由于额外增加了元器件而增加了电路的面积的技术问题。
为达到上述目的,本发明是采用下述技术方案实现的:
本发明提供了一种基于动态逻辑乘法的单比特全数字存内计算单元,包括输入驱动模块、SRAM阵列、触发器阵列、加法器;
所述输入驱动模块的每个输出端分别连接至SRAM阵列中每行SRAM存储单元的输入端,用于提供输入激励信号;
每行所述SRAM存储单元用于存储权重信息;
所述触发器阵列中每行触发器的输入端分别连接至每行SRAM存储单元的输出端,用于寄存输出结果并进行同步操作;
所述加法器的每个输入端分别连接至每行触发器的输出端,用于对同步操作后的输出结果进行累加操作。
可选的,所述SRAM阵列包括4行1列的SRAM存储单元,所述触发器阵列包括4行1列的触发器。
可选的,所述加法器包括全加器、第一半加器和第二半加器;
所述第一、二、三行触发器的输出端分别连接至全加器的加数端A、加数端B、低位进位端CIN;
所述四行触发器的输出端和全加器的本位和端S分别连接至第一半加器的加数端A、加数端B;
所述全加器的高位进位端C和第一半加器的高位进位端C分别连接至第二半加器的加数端A、加数端B;
所述第一半加器的本位和端S输出OUT0信号,所述第二半加器的高位进位端C和本位和端S分别输出OUT1信号和OUT2信号。
可选的,所述SRAM存储单元包括NMOS管N1、NMOS管N2、NMOS管N3、NMOS管N4、PMOS管P1、反相器C1、反相器C2以及反相器C3;
所述反相器C1的输入端和反相器C2的输出端连接且连接点记为存储节点Q,所述反相器C1的输出端和反相器C2的输入端连接且连接点记为存储节点QB;
所述NMOS管N1和NMOS管N2的栅极均连接字线WL,所述NMOS管N1和NMOS管N2的漏极分别连接至存储节点Q和存储节点QB,所述所述NMOS管N1和NMOS管N2的源极分别连接位线BL和位线BLB;
所述PMOS管P1的源极、栅极和漏极分别连接电源电压VDD、预充电信号PRE和NMOS管N4的源极;所述NMOS管N4的栅极和漏极分别连接存储节点Q和NMOS管N3的源极;所述NMOS管N3的漏极连接接地零电压VSS,所述NMOS管N3的栅极作为SRAM存储单元的输入端;所述反相器C3的输入端连接至NMOS管N4的源极和PMOS管P1的漏极,所述反相器C3的输出端作为SRAM存储单元的输出端。
可选的,所述字线WL用于加载写使能信号,所述位线BL和位线BLB用于加载权重数据。
可选的,每行所述触发器的时钟输入端Clk连接同一时钟信号CK,所述加法器根据时钟信号CK控制对每行SRAM存储单元对应的同步操作后的输出结果进行累加操作。
与现有技术相比,本发明所达到的有益效果:
本发明提供了一种基于动态逻辑乘法的单比特全数字存内计算单元,相对于模拟域的存内计算,数字域的存内计算结构输出结果都为准确值且受到的噪声源干扰较小,因此在大规模和高精度的领域中的使用具有优势;采用的动态逻辑相对于传统的与门乘法器减少了晶体管的使用数量,减小了面积消耗,同时相对于模拟域中进行充放电操作并使用ADC进行计算结果量化的操作可以减少计算时导致的不必要的功耗浪费。
附图说明
图1是本发明实施例一提供的基于动态逻辑乘法的单比特全数字存内计算单元的结构图;
图2是本发明实施例一提供的SRAM存储单元的结构图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例一:
如图1所示,本发明提供了一种基于动态逻辑乘法的单比特全数字存内计算单元,包括输入驱动模块、SRAM阵列、触发器阵列、加法器;输入驱动模块的每个输出端分别连接至SRAM阵列中每行SRAM存储单元的输入端,用于提供输入激励信号;每行SRAM存储单元用于存储权重信息(1bit);触发器阵列中每行触发器的输入端分别连接至每行SRAM存储单元的输出端,用于寄存输出结果并进行同步操作;加法器的每个输入端分别连接至每行触发器的输出端,用于对同步操作后的输出结果进行累加操作。
在本实施例中,SRAM阵列包括4行1列的SRAM存储单元,触发器阵列包括4行1列的触发器,触发器均采用D型触发器,每行触发器的时钟输入端Clk连接同一时钟信号CK,加法器根据时钟信号CK控制对每行SRAM存储单元对应的同步操作后的输出结果进行累加操作。
加法器包括全加器(Full Adder)、第一半加器(Half Adder 1)和第二半加器(Half Adder2);第一、二、三行触发器的输出端分别连接至全加器的加数端A、加数端B、低位进位端CIN;四行触发器的输出端和全加器的本位和端S分别连接至第一半加器的加数端A、加数端B;全加器的高位进位端C和第一半加器的高位进位端C分别连接至第二半加器的加数端A、加数端B;第一半加器的本位和端S输出OUT0信号,第二半加器的高位进位端C和本位和端S分别输出OUT1信号和OUT2信号。
如图2所示,SRAM存储单元包括NMOS管N1、NMOS管N2、NMOS管N3、NMOS管N4、PMOS管P1、反相器C1、反相器C2以及反相器C3。
反相器C1的输入端和反相器C2的输出端连接且连接点记为存储节点Q,反相器C1的输出端和反相器C2的输入端连接且连接点记为存储节点QB;第一、二、三、四行SRAM存储单元的存储节点Q和QB分别记为Q<3>、QB<3>、Q<2>、QB<2>、Q<1>、QB<1>、Q<0>、QB<0>。
NMOS管N1和NMOS管N2的栅极均连接字线WL,NMOS管N1和NMOS管N2的漏极分别连接至存储节点Q和存储节点QB,NMOS管N1和NMOS管N2的源极分别连接位线BL和位线BLB;字线WL用于加载写使能信号,位线BL和位线BLB用于加载权重信息;第一、二、三、四行SRAM存储单元的字线WL分别记为WL<3>、WL<2>、WL<1>、WL<0>,第一、二、三、四行SRAM存储单元的位线BL和位线BLB相同。
PMOS管P1的源极、栅极和漏极分别连接电源电压VDD、预充电信号PRE和NMOS管N4的源极;NMOS管N4的栅极和漏极分别连接存储节点Q和NMOS管N3的源极;NMOS管N3的漏极连接接地零电压VSS,NMOS管N3的栅极作为SRAM存储单元的输入端(即连接至输入驱动模块的输出端,获取输入激励信号IN,第一、二、三、四行SRAM存储单元的激励信号IN分别记为IN<3>、IN<2>、IN<1>、IN<0>);反相器C3的输入端连接至NMOS管N4的源极和PMOS管P1的漏极,反相器C3的输出端作为SRAM存储单元的输出端(即连接至同行触发器的输入端);NMOS管N3、NMOS管N4、PMOS管P1进行按位乘法运算,PMOS管P1用来进行预充,NMOS管N3、NMOS管N4用来进行按位乘法,并决定SRAM存储单元是否进行放电操作,反相器C3用来进行反相操作并增加驱动。
本实施例的工作模式包括:
存储模式,进行正常的SRAM写入操作,当字线WL信号高电平到来后,开启两个N型晶体管(NMOS管N1、NMOS管N2),将位线BL和BLB上预加载的权重信息写入到SRAM存储单元中,写入后的权重信息以1bit的形式存储在SRAM存储单元中。
当存储模式完成后,进行计算模式。在计算模式下,首先开启预充电信号PRE进行预充电到电源电压VDD,再进行放电操作。根据输入激励信号IN和SRAM存储单元中存储的权重信息不同的组合情况,会产生不同的计算结果。其计算结果如表1所示:
表1:输入激励信号IN和SRAM存储单元中存储的权重信息的计算表
输入激励信号IN | 权重信息W | 是否放电 | 放电后结果 | 反向结果 |
-1 | -1 | 否 | VDD | 0 |
-1 | +1 | 否 | VDD | 0 |
+1 | -1 | 否 | VDD | 0 |
+1 | +1 | 是 | VSS | 1 |
从表1中可以看出,只有在两个N型晶体管(NMOS管N1、NMOS管N2)都导通即输入激励信号IN和权重信息W都为“+1”时,此时路径才会放电;放电后通过反相器即可得到按位乘法的结果,进入触发器后进行同步再进行累加操作。
本发明实施例提供的基于动态逻辑乘法的单比特全数字存内计算单元,该结构支持在神经网络中的二值化后的输入激励信号和权重信息进行乘累加运算,即支持BNN类型的网络。二值化网络中的“+1”在电路中使用VDD代表,“-1”使用VSS代表,在电路中进行二值化网络的加法可以看成统计“+1”的数量。本设计中采用动态逻辑进行乘法运算,使用5个晶体管完成按位乘法运算,再采用触发器进行同步打拍,最终每列的4个SRAM单元采用全加器进行相加,得到了最终的准确3bit乘累加结果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (6)
1.一种基于动态逻辑乘法的单比特全数字存内计算单元,其特征在于,包括输入驱动模块、SRAM阵列、触发器阵列、加法器;
所述输入驱动模块的每个输出端分别连接至SRAM阵列中每行SRAM存储单元的输入端,用于提供输入激励信号;
每行所述SRAM存储单元用于存储权重信息;
所述触发器阵列中每行触发器的输入端分别连接至每行SRAM存储单元的输出端,用于寄存输出结果并进行同步操作;
所述加法器的每个输入端分别连接至每行触发器的输出端,用于对同步操作后的输出结果进行累加操作。
2.根据权利要求1所述的基于动态逻辑乘法的单比特全数字存内计算单元,其特征在于,所述SRAM阵列包括4行1列的SRAM存储单元,所述触发器阵列包括4行1列的触发器。
3.根据权利要求2所述的基于动态逻辑乘法的单比特全数字存内计算单元,其特征在于,所述加法器包括全加器、第一半加器和第二半加器;
所述第一、二、三行触发器的输出端分别连接至全加器的加数端A、加数端B、低位进位端CIN;
所述四行触发器的输出端和全加器的本位和端S分别连接至第一半加器的加数端A、加数端B;
所述全加器的高位进位端C和第一半加器的高位进位端C分别连接至第二半加器的加数端A、加数端B;
所述第一半加器的本位和端S输出OUT0信号,所述第二半加器的高位进位端C和本位和端S分别输出OUT1信号和OUT2信号。
4.根据权利要求2所述的基于动态逻辑乘法的单比特全数字存内计算单元,其特征在于,所述SRAM存储单元包括NMOS管N1、NMOS管N2、NMOS管N3、NMOS管N4、PMOS管P1、反相器C1、反相器C2以及反相器C3;
所述反相器C1的输入端和反相器C2的输出端连接且连接点记为存储节点Q,所述反相器C1的输出端和反相器C2的输入端连接且连接点记为存储节点QB;
所述NMOS管N1和NMOS管N2的栅极均连接字线WL,所述NMOS管N1和NMOS管N2的漏极分别连接至存储节点Q和存储节点QB,所述所述NMOS管N1和NMOS管N2的源极分别连接位线BL和位线BLB;
所述PMOS管P1的源极、栅极和漏极分别连接电源电压VDD、预充电信号PRE和NMOS管N4的源极;所述NMOS管N4的栅极和漏极分别连接存储节点Q和NMOS管N3的源极;所述NMOS管N3的漏极连接接地零电压VSS,所述NMOS管N3的栅极作为SRAM存储单元的输入端;所述反相器C3的输入端连接至NMOS管N4的源极和PMOS管P1的漏极,所述反相器C3的输出端作为SRAM存储单元的输出端。
5.根据权利要求4所示的基于动态逻辑乘法的单比特全数字存内计算单元,其特征在于,所述字线WL用于加载写使能信号,所述位线BL和位线BLB用于加载权重数据。
6.根据权利要求1所述的基于动态逻辑乘法的单比特全数字存内计算单元,其特征在于,每行所述触发器的时钟输入端Clk连接同一时钟信号CK,所述加法器根据时钟信号CK控制对每行SRAM存储单元对应的同步操作后的输出结果进行累加操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310662686.XA CN116594587A (zh) | 2023-06-06 | 2023-06-06 | 一种基于动态逻辑乘法的单比特全数字存内计算单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310662686.XA CN116594587A (zh) | 2023-06-06 | 2023-06-06 | 一种基于动态逻辑乘法的单比特全数字存内计算单元 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594587A true CN116594587A (zh) | 2023-08-15 |
Family
ID=87604410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310662686.XA Pending CN116594587A (zh) | 2023-06-06 | 2023-06-06 | 一种基于动态逻辑乘法的单比特全数字存内计算单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594587A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116913342A (zh) * | 2023-09-13 | 2023-10-20 | 安徽大学 | 具有存内布尔逻辑运算功能的存储电路及其模块、芯片 |
CN118446268A (zh) * | 2024-07-08 | 2024-08-06 | 安徽大学 | 基于6t-sram的二值权重网络存内计算电路、模块 |
-
2023
- 2023-06-06 CN CN202310662686.XA patent/CN116594587A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116913342A (zh) * | 2023-09-13 | 2023-10-20 | 安徽大学 | 具有存内布尔逻辑运算功能的存储电路及其模块、芯片 |
CN116913342B (zh) * | 2023-09-13 | 2023-12-01 | 安徽大学 | 具有存内布尔逻辑运算功能的存储电路及其模块、芯片 |
CN118446268A (zh) * | 2024-07-08 | 2024-08-06 | 安徽大学 | 基于6t-sram的二值权重网络存内计算电路、模块 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116594587A (zh) | 一种基于动态逻辑乘法的单比特全数字存内计算单元 | |
CN111816231B (zh) | 一种双-6t sram结构的存内计算装置 | |
CN110058839B (zh) | 一种基于静态随机存储器内存内减法的电路结构 | |
CN109979503B (zh) | 一种在内存中实现汉明距离计算的静态随机存储器电路结构 | |
CN112992223B (zh) | 一种存内计算单元、阵列及装置 | |
CN112133348B (zh) | 一种基于6t单元的存储单元、存储阵列和存内计算装置 | |
CN111816232B (zh) | 一种基于4管存储结构的存内计算阵列装置 | |
CN111816234B (zh) | 一种基于sram位线同或的电压累加存内计算电路 | |
CN112036562B (zh) | 一种应用于存内计算的位单元及存算阵列装置 | |
CN112558919A (zh) | 一种存内计算位单元及存内计算装置 | |
CN113255904A (zh) | 电压裕度增强型电容耦合存算一体单元、子阵列及装置 | |
CN114937470B (zh) | 基于多比特sram单元的定点全精度存内计算电路 | |
CN117271436B (zh) | 基于sram的电流镜互补存内计算宏电路、及芯片 | |
CN114300012A (zh) | 一种解耦合sram存内计算装置 | |
CN114038492B (zh) | 一种多相采样存内计算电路 | |
CN117079688A (zh) | 一种电流域8tsram单元及动态自适应量化的存算电路 | |
CN116364137A (zh) | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 | |
CN113936717A (zh) | 一种复用权重的存算一体电路 | |
CN115938430A (zh) | 一种基于分支电流的存内累乘计算电路 | |
CN112233712B (zh) | 一种6t sram存算装置、存算系统及存算方法 | |
CN117130978A (zh) | 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法 | |
CN117332832A (zh) | 一种存内计算的带符号计算单元 | |
CN114895869B (zh) | 一种带符号的多比特存内计算装置 | |
CN114464239B (zh) | 一种存内计算单元 | |
CN115312093A (zh) | 一种基于9tsram的存内计算单元及阵列 |
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 |