CN115906976A - 一种全模拟向量矩阵乘法存内计算电路及其应用 - Google Patents
一种全模拟向量矩阵乘法存内计算电路及其应用 Download PDFInfo
- Publication number
- CN115906976A CN115906976A CN202211461099.6A CN202211461099A CN115906976A CN 115906976 A CN115906976 A CN 115906976A CN 202211461099 A CN202211461099 A CN 202211461099A CN 115906976 A CN115906976 A CN 115906976A
- Authority
- CN
- China
- Prior art keywords
- analog
- circuit
- array
- input
- matrix multiplication
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 54
- 239000003990 capacitor Substances 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 10
- 239000004065 semiconductor Substances 0.000 abstract description 5
- 230000000295 complement effect Effects 0.000 abstract description 2
- 229910044991 metal oxide Inorganic materials 0.000 abstract description 2
- 150000004706 metal oxides Chemical class 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Complex Calculations (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明提出了一种全模拟向量矩阵乘法存内计算电路及其应用,属于半导体和CMOS超大规模集成电路中存内计算技术领域。该电路包括输入电路、阵列、输出钳位电路和模拟移位相加单元,输入电路对模拟输入进行采样并保持,然后输入阵列,阵列采用阻性器件,以电导的形式存储权重,根据基尔霍夫定律与欧姆定律,模拟输入和电导进行相乘,完成输入与权重的向量矩阵乘法,输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出,采用模拟移位相加单元电路将各列的计算结果移位相加以完成进位计算。本发明与传统以数模混合计算方式工作的存内计算电路不同,完全工作在模拟域,存内计算电路的面积与功耗问题得到有效改善。
Description
技术领域
本发明属于半导体(Semiconductor)和CMOS超大规模集成电路(ULSI)中的存内计算(Process-In-Memory)技术领域,具体涉及一种使用全模拟计算进行向量矩阵乘法运算的存内计算电路。
背景技术
随着人工智能与深度学习技术的发展,人工神经网络在自然语言处理、图像识别、自动驾驶、图神经网络等领域得到了广泛的应用。然而逐渐增大的网络规模导致数据在内存与传统计算设备如CPU、GPU间的搬运消耗了大量的能量,这被称为冯诺依曼瓶颈。在人工神经网络算法中占据最主要部分的计算为向量矩阵乘法计算(Vector MatrixMultiplication,VMM)。存内计算,把权重存储在存储器阵列单元中,并在阵列中进行向量矩阵乘法计算,避免了数据在内存与计算单元间的频繁搬运,被认为是一种有希望突破冯诺依曼瓶颈的方式。
如图1所示,存内计算通常使用数模混合计算方式。存储器单元可以是SRAM、DRAM等易失存储器,也可以是Flash、RRAM、PCRAM、MRAM等非易失存储器。图2为传统数模混合计算的向量矩阵乘法。权重表示为存储器阵列中的器件电导值,输入特征图为存储在数字存储器中的数字量。实现向量矩阵乘法计算时,数字存储器中存储的特征图通过DAC转换为模拟电压输入阵列,在阵列中执行模拟域的向量乘法计算,计算结果表示为位线上的电流和,再通过ADC转换成数字量,最后传输回数字存储器中存储。
然而,高精度DAC与ADC的面积与功耗都随精度呈指数增加。神经网络通常由数十甚至上百层组成,数据在每层之间都经过模数与数模(A/D)转换,消耗了大量的能量。有工作使用纯模拟计算,即在神经网络层之间不经过A/D转换,直接把上一层输出的模拟电压作为下一层的输入,如图3。但这种方式中除了输入输出是模拟量,也要求使用模拟器件来表达高精度的权重。
现有的阻性器件如RRAM、PCRAM、MRAM的多值工艺还不成熟,因此在对精度要求高的神经网络存内计算系统中,常用多个低精度器件(如二值器件)表示一个高精度权重的每个进制位。然而现有的纯模拟计算向量矩阵乘法的方案还都需要使用模拟器件,并不能直接使用工艺更为成熟的低精度器件(如二值器件),也没有解决使用低精度器件时如何在模拟电路实现进位与保持计算精度的问题。
发明内容
本发明针对使用低精度器件(如二值器件)以实现高精度的全模拟向量矩阵乘法,提供了一种全模拟域的存内计算电路。与传统以数模混合计算方式工作的存内计算不同,电路完全工作在模拟域,这样避免了复杂神经网络存内计算中频繁的数模与模数转换,输入不再需要通过DAC转换为模拟量,阵列输出也不再需要使用ADC转换为数字量,存内计算电路的面积与功耗问题得到有效改善。同时,使用工艺更为成熟的低精度器件构成的阵列实现了高精度的向量矩阵乘法,将高精度权重的每个进制位存储在多个低精度器件中,在阵列中完成向量矩阵乘法后直接在模拟域中实现进位计算,与传统纯模拟存内计算设计中使用模拟器件相比,低精度器件具有较高的可靠性,提升了计算精度。
基于此,本发明所采用的技术方案如下:
一种全模拟向量矩阵乘法存内计算电路,其特征在于,该电路包括输入电路、阵列、输出钳位电路和模拟移位相加单元,其中,所述输入电路对模拟输入数据进行采样并保持,然后输入阵列,所述阵列采用阻性器件,以电导的形式存储权重,完成输入与权重的向量矩阵乘法,所述输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出,所述模拟移位相加单元电路将各列的计算结果移位相加以完成进位计算。
进一步,所述输入电路为采样保持电路S/H。
进一步,模拟移位相加单元包含阵列中每一列对应的列电容,还有一个冗余电容以及电压跟随器,列电容用来暂时存储每列的计算结果,冗余电容将每列计算结果进行加权求和,电压跟随器用来输出最终移位相加的结果,所述阵列中每一列对应的列电容大小相同;且冗余电容与列电容也大小相同。
本发明同时提供一种全模拟向量矩阵乘法存内计算电路的运算方法,其步骤包括:
1)模拟输入数据通过输入电路输入阵列;
2)根据基尔霍夫定律与欧姆定律,模拟输入数据在阵列中与存储的权重值完成向量矩阵乘法,输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出;
3)模拟移位相加单元包含阵列中每一列对应的列电容Ccol,还有一个冗余电容CR以及电压跟随器,CR依次与每个Ccol相连并断开进行电荷分配,将每列计算结果进行加权求和,电压跟随器输出最终移位相加的结果n为列电容个数。
对于N bit权重计算,步骤1)的模拟输入与步骤2)的阵列向量矩阵乘法可以交替进行,步骤3)使用N/2+1个模拟移位相加单元完成移位相加,实现电路的流水线工作。
本发明提出的全模拟向量矩阵乘法存内计算电路具有以下优点:
全模拟向量矩阵乘法存内计算电路工作在模拟域,省去了常用存内计算设计中包含的ADC与DAC,没有频繁的A/D转换,在能效与面积方面具有显著优势。使用工艺更为成熟的低精度器件代替模拟器件,用多个低精度器件来表示神经网络中权重的一个进制位,提升了计算精度。提出的模拟移位相加单元解决了存内计算中低精度器件在模拟域中的进位计算,保持计算精度。提出的全模拟存内计算电路,通过使用多个模拟移位相加单元,实现流水线的工作方式,有效提升了计算效率。
附图说明
图1为基于数模混合存内计算的向量矩阵乘法示意图;
图2为传统基于数模混合存内计算的向量矩阵乘法示意图;
图3为传统使用模拟器件实现纯模拟计算的向量矩阵乘法示意图;
图4为本发明具体实施例使用低精度器件进行全模拟向量矩阵乘法的电路示意图;
图5为本发明具体实施例中模拟移位相加单元的计算工作过程示意图;
图6为本发明具体实施例中全模拟向量矩阵乘法电路的流水线工作示意图。
具体工作方式
下面结合附图,通过具体实施例,进一步清楚、完整地阐述本发明。
本发明全模拟向量矩阵乘法存内计算电路包括输入电路、阵列、输出钳位电路、模拟移位相加单元。其中,输入电路核心为采样保持电路(S/H),对模拟输入数据进行采样并保持,然后输入阵列。阵列采用阻性器件,由低精度器件构成,以电导的形式存储权重,根据基尔霍夫定律与欧姆定律,模拟输入和电导进行相乘,完成输入与权重的向量矩阵乘法。输出钳位电路(VG)将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出。由于使用低精度器件表示权重的各个进制位来提高计算精度,所以需要将各列的计算结果移位相加以完成进位计算。而为了解决模拟域中的进位计算,设计了模拟移位相加单元电路。模拟移位相加单元包含阵列中每一列对应的列电容,还有一个冗余电容以及电压跟随器。列电容用来暂时存储每列的计算结果,冗余电容将每列计算结果进行加权求和,电压跟随器用来输出最终移位相加的结果。模拟移位相加单元对输出的计算结果进行移位相加,发明的电路在存内计算中无需进行A/D转换,使用电容充电与电荷分配的原理实现结果的移位加法,实现全模拟高精度的向量矩阵乘法。
本发明全模拟向量矩阵乘法存内计算电路可以实现电路的流水线工作。在使用单个模拟移位相加单元时,当输出钳位电路将阵列计算结果输出给模拟移位相加单元进行移位加法计算后,此时没有新的模拟输入,在阵列中也没有新的向量矩阵乘法进行,输入电路与阵列是闲置的。而通过同时使用(N/2+1)(N为权重bit数)个模拟移位相加单元,可以使模拟输入与阵列中的向量矩阵乘法交替进行,以实现电路的流水线工作,使电路计算效率最大化。
图4为本发明具体实施例中全模拟向量矩阵乘法的电路示意图。图4中以四个二值器件表示4bit权重,W[i](i=0-3)为4bit权重的每个二进制位,阵列为四输入四输出。第一个时钟周期,模拟输入通过总线输入采样保持电路。第二个时钟周期,根据基尔霍夫定律与欧姆定律,模拟输入在阵列中与存储的权重值完成向量矩阵乘法,计算结果通过VG电路由电流转为电压。第三个时钟周期到第六个时钟周期,通过模拟移位相加单元完成计算结果的移位相加。即在模拟移位相加单元中,Ci(i=0-3)为大小相同的列电容,负责暂时存储每列的计算结果;CR为冗余电容,其电容大小与各个列电容相同,负责计算结果的加权求和。
图5为本发明具体实施例中模拟移位相加单元的计算过程。首先第一个时钟周期进行模拟输入,同时模拟移位相加单元进行初始化,所有电容进行复位。第二个时钟周期进行阵列内的向量矩阵乘法,同时将电流形式的计算结果转为电压形式,并存储到列电容中。第三个时钟周期,CR与C0相连进行电荷重分配,由于电容的容值相同,电压跟随器输出第四个时钟周期,CR与C0断开再与C1相连,电压跟随器输出通过这种方式,CR依次与C0-C3相连并断开进行电荷分配,到第六个时钟周期就可以完成计算结果的移位相加,最终在只使用一个模拟移位相加单元时,从第三个时钟周期开始到第六个时钟周期,并没有新的模拟输入与向量矩阵乘法进行。
为提高计算效率,通过同时使用多个模拟移位相加单元,电路可以实现流水线的工作方式,使得第一个时钟周期的模拟输入与第二个时钟周期的向量矩阵乘法可以交替进行。图6为提出的全模拟向量矩阵乘法电路的流水线工作示意图。同样是权重表示为4bit的情况下,同时使用三个模拟移位相加单元即可实现流水线工作。为方便叙述,将三个模拟移位相加单元分别简称为单元1、单元2、单元3。在单元1进入第三个时钟周期时,此时单元2同步开始第一个时钟周期,电路进行模拟输入;在单元1进入第四个时钟周期时,单元2此时开始第二个时钟周期,阵列中进行向量矩阵乘法。而单元3同理,在单元2进入第三个时钟周期时单元3开始第一个时钟周期,单元2进入第四个时钟周期时单元3开始第二个时钟周期。这样,在单元1完成第六个时钟周期的工作后又可以进行第一个时钟周期的任务,即模拟输入。如此循环,电路实现了流水线的工作方式。更进一步,对于N bit权重的应用来说,同时使用(N/2+1)个模拟移位相加单元即可实现流水线工作,使计算效率最大化。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (6)
1.一种全模拟向量矩阵乘法存内计算电路,其特征在于,该电路包括输入电路、阵列、输出钳位电路和模拟移位相加单元,其中,所述输入电路对模拟输入数据进行采样并保持,然后输入阵列,所述阵列采用阻性器件,以电导的形式存储权重,完成输入与权重的向量矩阵乘法,所述输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出,所述模拟移位相加单元电路将各列的计算结果移位相加以完成进位计算。
2.如权利要求1所述全模拟向量矩阵乘法存内计算电路,其特征在于,所述输入电路为采样保持电路S/H。
3.如权利要求1所述全模拟向量矩阵乘法存内计算电路,其特征在于,所述模拟移位相加单元包含阵列中每一列对应的列电容,还有一个冗余电容以及电压跟随器,列电容用来暂时存储每列的计算结果,冗余电容将每列计算结果进行加权求和,电压跟随器用来输出最终移位相加的结果。
4.如权利要求3所述全模拟向量矩阵乘法存内计算电路,其特征在于,所述阵列中每一列对应的列电容大小相同;且冗余电容与列电容也大小相同。
6.如权利要求5所述的运算方法,其特征在于,对于N bit权重计算,步骤1)的模拟输入与步骤2)的阵列向量矩阵乘法交替进行,步骤3)使用N/2+1个模拟移位相加单元完成移位相加,实现电路的流水线工作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211461099.6A CN115906976A (zh) | 2022-11-16 | 2022-11-16 | 一种全模拟向量矩阵乘法存内计算电路及其应用 |
PCT/CN2023/132035 WO2024104427A1 (zh) | 2022-11-16 | 2023-11-16 | 全模拟向量矩阵乘法存内计算电路及其运行方法、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211461099.6A CN115906976A (zh) | 2022-11-16 | 2022-11-16 | 一种全模拟向量矩阵乘法存内计算电路及其应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115906976A true CN115906976A (zh) | 2023-04-04 |
Family
ID=86486505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211461099.6A Pending CN115906976A (zh) | 2022-11-16 | 2022-11-16 | 一种全模拟向量矩阵乘法存内计算电路及其应用 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115906976A (zh) |
WO (1) | WO2024104427A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116486857A (zh) * | 2023-05-17 | 2023-07-25 | 北京大学 | 一种基于电荷再分配的存内计算电路 |
WO2024104427A1 (zh) * | 2022-11-16 | 2024-05-23 | 北京大学 | 全模拟向量矩阵乘法存内计算电路及其运行方法、计算机设备和计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922131B2 (en) * | 2020-10-08 | 2024-03-05 | Applied Materials, Inc. | Scalable, multi-precision, self-calibrated multiplier-accumulator architecture |
WO2022087810A1 (en) * | 2020-10-27 | 2022-05-05 | NeoNexus Pte. Ltd. | Apparatus and method for matrix multiplication using processing-in-memory |
CN115130058A (zh) * | 2022-06-15 | 2022-09-30 | 南京大学 | 一种可配置和扩展的向量矩阵乘法装置及工作方法 |
CN115906976A (zh) * | 2022-11-16 | 2023-04-04 | 北京大学 | 一种全模拟向量矩阵乘法存内计算电路及其应用 |
-
2022
- 2022-11-16 CN CN202211461099.6A patent/CN115906976A/zh active Pending
-
2023
- 2023-11-16 WO PCT/CN2023/132035 patent/WO2024104427A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024104427A1 (zh) * | 2022-11-16 | 2024-05-23 | 北京大学 | 全模拟向量矩阵乘法存内计算电路及其运行方法、计算机设备和计算机可读存储介质 |
CN116486857A (zh) * | 2023-05-17 | 2023-07-25 | 北京大学 | 一种基于电荷再分配的存内计算电路 |
CN116486857B (zh) * | 2023-05-17 | 2024-04-02 | 北京大学 | 一种基于电荷再分配的存内计算电路 |
Also Published As
Publication number | Publication date |
---|---|
WO2024104427A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209375B (zh) | 一种基于radix-4编码和差分权重存储的乘累加电路 | |
CN111431536B (zh) | 子单元、mac阵列、位宽可重构的模数混合存内计算模组 | |
CN115906976A (zh) | 一种全模拟向量矩阵乘法存内计算电路及其应用 | |
WO2021223547A1 (zh) | 子单元、mac阵列、位宽可重构的模数混合存内计算模组 | |
CN114707647B (zh) | 适用于多精度神经网络的精度无损存算一体装置及方法 | |
CN115390789A (zh) | 基于磁隧道结计算单元的模拟域全精度存内计算电路及方法 | |
CN104779957B (zh) | 高速逐次逼近模数转换器 | |
Chen et al. | RIMAC: An array-level ADC/DAC-free ReRAM-based in-memory DNN processor with analog cache and computation | |
CN116468090A (zh) | 一种基于忆阻器实现的硬件卷积神经网络模型 | |
CN116303229A (zh) | 一种分组前向梯度回归的存算系统的计算方法 | |
CN111988031B (zh) | 一种忆阻存内矢量矩阵运算器及运算方法 | |
CN114758699A (zh) | 一种数据处理方法、系统、装置及介质 | |
CN114168107A (zh) | 一种存内精度可调的矢量矩阵乘法运算方法及运算器 | |
CN113741857A (zh) | 一种乘累加运算电路 | |
CN115664422B (zh) | 一种分布式逐次逼近型模数转换器及其运算方法 | |
CN113988279A (zh) | 一种支持负值激励的存算阵列输出电流读出方法及系统 | |
CN111611528A (zh) | 电流值可变的电流积分和电荷共享的多位卷积运算模组 | |
CN115658013B (zh) | 向量乘加器的rom存内计算装置和电子设备 | |
WO2024103480A1 (zh) | 存算一体电路、芯片及电子设备 | |
CN118074717B (zh) | 面向存算的低功耗比特可重构模数转换器及其操作方法 | |
CN115658012B (zh) | 向量乘加器的sram模拟存内计算装置和电子设备 | |
TWI788964B (zh) | 子單元、mac陣列、位寬可重構的模數混合存內計算模組 | |
CN110717580B (zh) | 面向二值化神经网络的基于电压调制的计算阵列 | |
CN116402106B (zh) | 神经网络加速方法、神经网络加速器、芯片及电子设备 | |
Lin et al. | A Multi-Bit Near-RRAM based Computing Macro with Highly Computing Parallelism for CNN Application |
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 |