本发明专利技术提出了一种全模拟向量矩阵乘法存内计算电路及其应用,属于半导体和CMOS超大规模集成电路中存内计算技术领域。该电路包括输入电路、阵列、输出钳位电路和模拟移位相加单元,输入电路对模拟输入进行采样并保持,然后输入阵列,阵列采用阻性器件,以电导的形式存储权重,根据基尔霍夫定律与欧姆定律,模拟输入和电导进行相乘,完成输入与权重的向量矩阵乘法,输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出,采用模拟移位相加单元电路将各列的计算结果移位相加以完成进位计算。本发明专利技术与传统以数模混合计算方式工作的存内计算电路不同,完全工作在模拟域,存内计算电路的面积与功耗问题得到有效改善。得到有效改善。得到有效改善。
【技术实现步骤摘要】
一种全模拟向量矩阵乘法存内计算电路及其应用
[0001]本专利技术属于半导体(Semiconductor)和CMOS超大规模集成电路(ULSI)中的存内计算(Process
‑
In
‑
Memory)
,具体涉及一种使用全模拟计算进行向量矩阵乘法运算的存内计算电路。
技术介绍
[0002]随着人工智能与深度学习技术的发展,人工神经网络在自然语言处理、图像识别、自动驾驶、图神经网络等领域得到了广泛的应用。然而逐渐增大的网络规模导致数据在内存与传统计算设备如CPU、GPU间的搬运消耗了大量的能量,这被称为冯诺依曼瓶颈。在人工神经网络算法中占据最主要部分的计算为向量矩阵乘法计算(Vector Matrix Multiplication,VMM)。存内计算,把权重存储在存储器阵列单元中,并在阵列中进行向量矩阵乘法计算,避免了数据在内存与计算单元间的频繁搬运,被认为是一种有希望突破冯诺依曼瓶颈的方式。
[0003]如图1所示,存内计算通常使用数模混合计算方式。存储器单元可以是SRAM、DRAM等易失存储器,也可以是Flash、RRAM、PCRAM、MRAM等非易失存储器。图2为传统数模混合计算的向量矩阵乘法。权重表示为存储器阵列中的器件电导值,输入特征图为存储在数字存储器中的数字量。实现向量矩阵乘法计算时,数字存储器中存储的特征图通过DAC转换为模拟电压输入阵列,在阵列中执行模拟域的向量乘法计算,计算结果表示为位线上的电流和,再通过ADC转换成数字量,最后传输回数字存储器中存储。
[0004]然而,高精度DAC与ADC的面积与功耗都随精度呈指数增加。神经网络通常由数十甚至上百层组成,数据在每层之间都经过模数与数模(A/D)转换,消耗了大量的能量。有工作使用纯模拟计算,即在神经网络层之间不经过A/D转换,直接把上一层输出的模拟电压作为下一层的输入,如图3。但这种方式中除了输入输出是模拟量,也要求使用模拟器件来表达高精度的权重。
[0005]现有的阻性器件如RRAM、PCRAM、MRAM的多值工艺还不成熟,因此在对精度要求高的神经网络存内计算系统中,常用多个低精度器件(如二值器件)表示一个高精度权重的每个进制位。然而现有的纯模拟计算向量矩阵乘法的方案还都需要使用模拟器件,并不能直接使用工艺更为成熟的低精度器件(如二值器件),也没有解决使用低精度器件时如何在模拟电路实现进位与保持计算精度的问题。
技术实现思路
[0006]本专利技术针对使用低精度器件(如二值器件)以实现高精度的全模拟向量矩阵乘法,提供了一种全模拟域的存内计算电路。与传统以数模混合计算方式工作的存内计算不同,电路完全工作在模拟域,这样避免了复杂神经网络存内计算中频繁的数模与模数转换,输入不再需要通过DAC转换为模拟量,阵列输出也不再需要使用ADC转换为数字量,存内计算电路的面积与功耗问题得到有效改善。同时,使用工艺更为成熟的低精度器件构成的阵列
实现了高精度的向量矩阵乘法,将高精度权重的每个进制位存储在多个低精度器件中,在阵列中完成向量矩阵乘法后直接在模拟域中实现进位计算,与传统纯模拟存内计算设计中使用模拟器件相比,低精度器件具有较高的可靠性,提升了计算精度。
[0007]基于此,本专利技术所采用的技术方案如下:
[0008]一种全模拟向量矩阵乘法存内计算电路,其特征在于,该电路包括输入电路、阵列、输出钳位电路和模拟移位相加单元,其中,所述输入电路对模拟输入数据进行采样并保持,然后输入阵列,所述阵列采用阻性器件,以电导的形式存储权重,完成输入与权重的向量矩阵乘法,所述输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出,所述模拟移位相加单元电路将各列的计算结果移位相加以完成进位计算。
[0009]进一步,所述输入电路为采样保持电路S/H。
[0010]进一步,模拟移位相加单元包含阵列中每一列对应的列电容,还有一个冗余电容以及电压跟随器,列电容用来暂时存储每列的计算结果,冗余电容将每列计算结果进行加权求和,电压跟随器用来输出最终移位相加的结果,所述阵列中每一列对应的列电容大小相同;且冗余电容与列电容也大小相同。
[0011]本专利技术同时提供一种全模拟向量矩阵乘法存内计算电路的运算方法,其步骤包括:
[0012]1)模拟输入数据通过输入电路输入阵列;
[0013]2)根据基尔霍夫定律与欧姆定律,模拟输入数据在阵列中与存储的权重值完成向量矩阵乘法,输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出;
[0014]3)模拟移位相加单元包含阵列中每一列对应的列电容C
col
,还有一个冗余电容C
R
以及电压跟随器,C
R
依次与每个C
col
相连并断开进行电荷分配,将每列计算结果进行加权求和,电压跟随器输出最终移位相加的结果n为列电容个数。
[0015]对于N bit权重计算,步骤1)的模拟输入与步骤2)的阵列向量矩阵乘法可以交替进行,步骤3)使用N/2+1个模拟移位相加单元完成移位相加,实现电路的流水线工作。
[0016]本专利技术提出的全模拟向量矩阵乘法存内计算电路具有以下优点:
[0017]全模拟向量矩阵乘法存内计算电路工作在模拟域,省去了常用存内计算设计中包含的ADC与DAC,没有频繁的A/D转换,在能效与面积方面具有显著优势。使用工艺更为成熟的低精度器件代替模拟器件,用多个低精度器件来表示神经网络中权重的一个进制位,提升了计算精度。提出的模拟移位相加单元解决了存内计算中低精度器件在模拟域中的进位计算,保持计算精度。提出的全模拟存内计算电路,通过使用多个模拟移位相加单元,实现流水线的工作方式,有效提升了计算效率。
附图说明
[0018]图1为基于数模混合存内计算的向量矩阵乘法示意图;
[0019]图2为传统基于数模混合存内计算的向量矩阵乘法示意图;
[0020]图3为传统使用模拟器件实现纯模拟计算的向量矩阵乘法示意图;
[0021]图4为本专利技术具体实施例使用低精度器件进行全模拟向量矩阵乘法的电路示意
图;
[0022]图5为本专利技术具体实施例中模拟移位相加单元的计算工作过程示意图;
[0023]图6为本专利技术具体实施例中全模拟向量矩阵乘法电路的流水线工作示意图。
[0024]具体工作方式
[0025]下面结合附图,通过具体实施例,进一步清楚、完整地阐述本专利技术。
[0026]本专利技术全模拟向量矩阵乘法存内计算电路包括输入电路、阵列、输出钳位电路、模拟移位相加单元。其中,输入电路核心为采样保持电路(S/H),对模拟输入数据进行采样并保持,然后输入阵列。阵列采用阻性器件,由低精度器件构成,以电导的形式存储权重,根据基尔霍夫定律与欧姆定律,模拟输入和电导进行相乘,完成输入与权重的向量矩阵乘法。输出钳位电路(VG)将阵列输出点钳位到零电平,并将电流形式的计本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种全模拟向量矩阵乘法存内计算电路,其特征在于,该电路包括输入电路、阵列、输出钳位电路和模拟移位相加单元,其中,所述输入电路对模拟输入数据进行采样并保持,然后输入阵列,所述阵列采用阻性器件,以电导的形式存储权重,完成输入与权重的向量矩阵乘法,所述输出钳位电路将阵列输出点钳位到零电平,并将电流形式的计算结果转换为电压形式输出,所述模拟移位相加单元电路将各列的计算结果移位相加以完成进位计算。2.如权利要求1所述全模拟向量矩阵乘法存内计算电路,其特征在于,所述输入电路为采样保持电路S/H。3.如权利要求1所述全模拟向量矩阵乘法存内计算电路,其特征在于,所述模拟移位相加单元包含阵列中每一列对应的列电容,还有一个冗余电容以及电压跟随器,列电容用来暂时存储每列的计算结果,冗余电容将每列计算结果进行加权求和,电压跟随器用来输出最终移位相加的结果。4.如权利要求3所述全模拟向量矩阵乘法存内计算电路,其特征在于,所述阵列中每一列对应的列电容大小相同;且...
【专利技术属性】
技术研发人员:王宗巍,张晓畅,蔡一茂,杨韵帆,黄如,
申请(专利权)人:北京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。