功率高效的近存储器模拟乘法和累加(MAC)制造技术

技术编号:34319584 阅读:19 留言:0更新日期:2022-07-30 23:54
提供了一种近存储器系统,用于机器学习应用中的层的计算。近存储器系统包括用于存储滤波器权重阵列的存储器单元阵列。乘法和累加电路耦合到阵列中的列以形成层的计算。路耦合到阵列中的列以形成层的计算。路耦合到阵列中的列以形成层的计算。

【技术实现步骤摘要】
【国外来华专利技术】功率高效的近存储器模拟乘法和累加(MAC)
[0001]相关申请的交叉引用
[0002]本专利申请要求于2019年12月19日提交的题为“POWER EFFICIENT NEAR MEMORY ANALOG MULTIPLY

AND

ACCUMULATE(MAC)”的非临时申请No.16/721,819的优先权,该申请已转让给本申请的受让人,并且在本文中通过引用被明确地并入。


[0003]本申请涉及乘法和累加(multiply

and

accumulate,MAC)电路,更具体地,涉及一种功率高效的近存储器模拟MAC。

技术介绍

[0004]数据的计算机处理通常使用冯诺依曼(Von Neumann)架构,其中数据从存储器中被检索以在算术和逻辑单元中进行处理。在诸如机器学习的计算密集型应用中,来自和去往存储器的数据流成为处理速度的瓶颈。为了解决这种数据移动瓶颈,已经开发了近存储器架构,其中数据处理硬件邻近存储器单元。

技术实现思路

[0005]根据本专利技术的第一方面,提供了一种近存储器系统,包括:存储器单元阵列,被布置成多个行和多个列,其中每一行被配置为存储用于机器学习应用中的层的多个滤波器权重;以及乘法和累加(MAC)电路,被耦合到每一列,该MAC电路被配置为将来自行中的一存取行的多个滤波器权重与对应的多个输入相乘以提供多个乘积,该MAC电路还被配置为对多个乘积求和以提供层的输出。
[0006]根据本专利技术的第二方面,提供了一种近存储器系统,包括:多个存储器单元阵列,其中每个阵列布置成多个行和列,并且其中每个行还被配置为存储用于机器学习应用中的层的多个滤波器权重,并且其中每个存储器单元阵列被细分为多个子阵列;以及多个乘法和累加(MAC)电路,该多个MAC电路对应于多个子阵列,每个MAC电路耦合到对应子阵列中的每一列,每个MAC电路被配置为将来自对应子阵列中的行中的一存取行的多个滤波器权重与对应的多个输入相乘以提供多个乘积,该MAC电路还被配置为对多个乘积求和以提供总和,并且其中每个阵列还包括加法器以将来自阵列的MAC电路的总和相加以形成阵列的输出。
[0007]根据本专利技术的第三方面,提供了一种用于近存储器系统的方法,包括:断言用于存储器单元行的字线,以检索针对用于机器学习应用的层中的输出神经元的多个滤波器权重;在被耦合到存储器单元行的乘法和累加电路中,将多个滤波器权重与多个输入神经元相乘以形成多个乘积;以及对多个乘积求和以计算输出神经元的值。
[0008]通过以下详细描述可以更好地理解这些和其他有利特征。
附图说明
[0009]图1图示了用于神经网络的常规全连接层。
[0010]图2A图示了根据本公开的一方面的具有数字乘法和累加(MAC)电路的近存储器系统。
[0011]图2B图示了根据本公开的一方面的用于近存储器系统的位单元和解码器。
[0012]图3图示了根据本公开的一方面的分段式近存储器系统。
[0013]图4图示了根据本公开的一方面的具有模拟MAC电路的近存储器系统,其中滤波器权重和输入神经元权重都是单位(single

bit)信号。
[0014]图5图示了根据本公开的一方面的具有模拟MAC电路的近存储器系统,其中滤波器权重是单位权重并且输入神经元权重是多位(multi

bit)权重。
[0015]图6图示了根据本公开的一方面的具有模拟MAC电路的近存储器系统,其中滤波器权重和输入神经元权重都是多位权重。
[0016]图7是根据本公开的一方面的用于近存储器系统的示例性操作方法的流程图。
[0017]图8图示了各自包含根据本公开的一方面的近存储器系统的一些示例性电子系统。
[0018]通过参考下面的详细描述,可以最好地理解本公开的实施例及其优势。应当理解,相同的附图标记用于标识一个或多个附图中示出的相同元件。
具体实施方式
[0019]一种近存储器架构被提供有乘法和累加(MAC)电路,以用于将来自机器学习应用中的前一层的多个输入神经元与多个滤波器权重相乘以形成多个乘积。MAC电路对乘积求和以计算针对机器学习应用中的层(例如,全连接层)的输出神经元。虽然以下讨论针对机器学习实施例,但是应当理解,可以使用具有如本文中所公开的MAC电路的近存储器来计算其他类型的输入向量与滤波器权重的相乘。图1示出了具有M个输出神经元的示例全连接层100。M个输出神经元的范围从第0个输出神经元到第(M

1)个输出神经元。前一层105包括从第0个输入神经元到第(N

1)个输入神经元的N个输入神经元。通常,整数N基本上大于整数M。为了清楚地说明,针对每个层仅示出了前两个和最后一个神经元。
[0020]全连接层100中的每个输出神经元接收前一层105中的每个输入神经元的加权版本。例如,全连接层100中的输入神经元0接收第0个输入神经元的加权版本、第一输入神经元的加权版本、以此类推至第(N

1)个输入神经元的加权版本。因此,全连接层100中的每个输出神经元与用于对来自前一层105的输入神经元进行加权的N个权重相关联。如本文中所使用的,用于全连接层100中的输出神经元的权重被共同表示为滤波器。因此,每个权重也被表示为滤波器权重。本文公开了一种具有位单元阵列的存储器,用于存储对应的滤波器。位单元阵列按行和列来布置。如果每个滤波器权重是一位滤波器权重,则每一行可以与用于输出神经元的滤波器相对应。例如,假设有128个具有一位滤波器权重的输出神经元,则位单元阵列将具有128行。在这样的实施例中,位单元阵列的列数对应于输入神经元的数目。在备选实施例中,滤波器权重可以是多位滤波器权重。因此,在这种多位滤波器权重实施例中,每个滤波器将对应于一组行。每组行中的行数与针对多位滤波器权重实施例的宽度(位数)相对应。在每组行中,每一行将与多位权重中的一位相对应,如本文中将进一步解
释的。
[0021]为了计算针对输出神经元的值,读取操作发生在一位滤波器权重实施例中的对应行上(或顺序地跨在多位权重实施例中的对应组的行)以存取所存储的滤波器权重。然后将被存取的所存储的滤波器权重乘以对应的输入神经元。来自所存储的滤波器权重与其对应的输入神经元的所有乘法的乘积被求和以形成输出神经元。虽然可以使用存储器中计算位单元来执行所存储的滤波器权重与对应的输入神经元的乘法,但是应注意,在机器学习应用中,全连接层具有大多数权重。存储器中计算位单元明显大于传统的六晶体管(6T)静态随机存取存储器(SRAM)位单元。因此,在用于实现全连接层的存储器中计算架构中存储滤波器权重将需要相对大量的管芯空间(例如,大约是常规6T位单元阵列所需的四倍)。此外,用于存储器中计算实现的读取和写入能量相对较高。
[0022]因此,公开了一种在一些实施例中包括按行和列而布置的用于存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种近存储器系统,包括:存储器单元阵列,被布置成多个行和多个列,其中每一行被配置为存储用于机器学习应用中的层的多个滤波器权重;以及乘法和累加(MAC)电路,被耦合到每一列,所述MAC电路被配置为将来自所述行中的一存取行的所述多个滤波器权重与所述层的多个输入相乘以提供多个乘积,所述MAC电路还被配置为对所述多个乘积求和以提供所述层的输出。2.根据权利要求1所述的近存储器系统,还包括:多个字线,所述多个字线对应于所述多个行,每个字线跨越该字线的对应行而延伸;以及控制器,被配置为:循序地断言所述字线以形成所述行中的所述一存取行。3.根据权利要求1所述的近存储器系统,其中每个存储器单元从由以下构成的组合中选择:静态随机存取存储器(SRAM)位单元、磁性RAM(MRAM)位单元、电阻式RAM(RRAM)位单元、铁电RAM(FRAM)位单元以及相变存储器(PCM)位单元。4.根据权利要求3所述的近存储器系统,其中每个SRAM位单元是六晶体管SRAM位单元。5.根据权利要求1所述的近存储器系统,其中所述MAC电路包括与所述多个列相对应的多个逻辑门,并且其中每个逻辑门被配置为将滤波器权重与输入相乘以形成二进制乘积。6.根据权利要求5所述的近存储器系统,其中每个逻辑门包括异或非(XNOR)门。7.根据权利要求6所述的近存储器系统,其中所述MAC电路还包括数字加法器以将来自每个XNOR门的输出相加。8.根据权利要求6所述的近存储器系统,其中所述MAC电路还包括:多个电容器,所述多个电容器对应于所述多个XNOR门,并且其中每个XNOR门被配置为驱动用于所述对应电容器的第一板。9.根据权利要求8所述的近存储器系统,其中所述MAC电路还包括模数转换器,所述模数转换器被耦合到用于每个电容器的第二板。10.根据权利要求8所述的近存储器系统,其中每个输入是多位输入,所述MAC电路还包括循序累加器,所述循序累加器被耦合到每个电容器的第二板,其中所述循序累加器被配置为:根据所述多位输入的串行处理来循序地对来自每个第二板的电荷进行累加,以提供累加结果。11.根据权利要求10所述的近存储器系统,其中所述层是全连接层,并且其中所述MAC电路还包括模数转换器,所述模数转换器被配置为将所述累加结果转换为全连接层的输出。12.一种近存储器系统:多个存储器阵列,其中每个阵列被布置成多个行和列,并且其中每个行被配置为存储用于机器学习应用中的层的多个滤波器权重,并且其中每个存储器单元阵列被细分为多个子阵列;以及多个乘法和累加(MAC)电路,所述多个MAC电路对应于所述多个子阵列,每个MAC电路被耦合到对应子阵列中的每一列,每个MAC电路被配置为将来自所述对应子阵列中的行中的一存取行的所述多个滤波器权重与对应的多个输入相乘以提供多个乘积,所述MAC电路还被配置为对所述多个乘积求和...

【专利技术属性】
技术研发人员:A
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1