会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 协处理器 / 模拟协处理器

模拟协处理器

阅读:913发布:2020-05-13

IPRDB可以提供模拟协处理器专利检索,专利查询,专利分析的服务。并且一种协处理器被配置用于执行向量矩阵乘法(VMM)以求解诸如偏微分方程(PDE)的计算问题。可通过利用模拟纵横阵列调用输入信号与傅里叶基函数的VMM来实现模拟离散傅里叶变换(DFT)。可通过实现频谱PDE求解方法作为大规模离散化有限差分方法的替代,同时利用通过纵横阵列实现的固有并行性来求解线性和非线性PDE。模拟纵横阵列可在CMOS和忆阻器或者包括CMOS和忆阻器的组合的混合解决方案中实现。,下面是模拟协处理器专利的具体信息内容。

1.一种电路,该电路包括:

信号生成器,该信号生成器被配置为基于向量矩阵乘法(VMM)的至少一个系数来生成编程信号;

忆阻器网络,该忆阻器网络具有忆阻器的阵列;

读/写控制电路,该读/写控制电路被配置为在所述忆阻器网络处选择性地允许读操作和写操作;

忆阻器控制电路,该忆阻器控制电路被配置为选择性地允许所述忆阻器的选择,该忆阻器控制电路包括列开关复用器、行开关复用器和地址编码器;

写电路,该写电路被配置为基于所述编程信号设定所述网络内的至少一个电阻值,该写电路包括电压驱动器;

读输入电路,该读输入电路被配置为将至少一个输入信号施加到所述忆阻器网络,所述输入信号与向量对应,所述读输入电路包括电压驱动器;以及读出电路,该读出电路被配置为读取所述忆阻器网络处的至少一个电流值并基于所述至少一个电流值生成输出信号。

2.根据权利要求1所述的电路,其中,所述忆阻器网络包括按照分压器配置布置的多个忆阻器。

3.根据权利要求1所述的电路,其中,所述忆阻器网络包括电路元件的阵列,各个所述电路元件包括与晶体管串联的忆阻器,所述晶体管被配置为选择性地允许电流通过相应忆阻器。

4.根据权利要求1所述的电路,其中,所述编程信号基于至少一个离散傅里叶变换(DFT)系数。

5.根据权利要求4所述的电路,其中,所述忆阻器网络包括忆阻器的多个子阵列,所述多个子阵列中的第一子阵列被应用于所述DFT系数的实部,并且所述多个子阵列中的第二子阵列被应用于所述DFT子阵列的虚部。

6.根据权利要求1所述的电路,其中,所述输入信号的电压值是预期用于乘法的所述输入向量的函数。

7.根据权利要求1所述的电路,其中,所述读出电路还被配置为作为所述向量与所述忆阻器网络的编程的电阻值的VMM函数的结果生成所述输出信号。

8.根据权利要求1所述的电路,其中,所述读出电路还被配置为检测所述忆阻器网络的多个节点处的电流,所述输出信号是所述电流的函数。

9.根据权利要求8所述的电路,其中,所述读出电路还包括被配置为输出表示所述输出信号的数字值的模数转换器(ADC)。

10.根据权利要求1所述的电路,其中,所述写电路还被配置为基于所述编程信号来生成基于乘法系数的至少一个模拟设定信号以设定所述至少一个电阻值,所述至少一个模拟信号被施加到所述忆阻器网络。

11.根据权利要求10所述的电路,该电路还包括被配置为基于所述编程信号生成所述至少一个模拟设定信号的数模转换器(DAC)。

12.根据权利要求1所述的电路,该电路还包括被配置为基于所述向量生成所述至少一个输入信号的数模转换器(DAC)。

13.根据权利要求1所述的电路,其中,所述读出电路还包括被配置为将所述输出电流转换为电压值的跨阻放大器,所述输出信号包括所述电压值。

14.根据权利要求1所述的电路,其中,所述读电路还被配置为生成至少一个模拟输入信号以与所述忆阻器网络的至少一个电阻值相乘,所述至少一个模拟输入信号被施加到所述忆阻器网络。

15.一种协处理器电路,该协处理器电路包括:

向量矩阵乘法(VMM)电路的阵列,各个VMM电路包括:信号生成器,该信号生成器被配置为基于向量矩阵乘法(VMM)的至少一个系数来生成编程信号;

忆阻器网络,该忆阻器网络具有忆阻器的阵列;

读/写控制电路,该读/写控制电路被配置为在所述忆阻器网络处选择性地允许读操作和写操作;

忆阻器控制电路,该忆阻器控制电路被配置为选择性地允许所述忆阻器的选择,该忆阻器控制电路包括列开关复用器、行开关复用器和地址编码器;

写电路,该写电路被配置为基于所述编程信号设定所述网络内的至少一个电阻值,该写电路包括电压驱动器;

读输入电路,该读输入电路被配置为将至少一个输入信号施加到所述忆阻器网络,所述输入信号与向量对应,所述读输入电路包括电压驱动器;以及读出电路,该读出电路被配置为读取所述忆阻器网络处的至少一个电流值并基于所述至少一个电流值生成输出信号;以及读DAC阵列,该读DAC阵列将至少一个输入向量转换为模拟信号以施加到所述忆阻器网络;

写DAC阵列,该写DAC阵列基于乘法系数将至少一个设定信号转换为模拟设定信号以施加到所述忆阻器网络;

ADC阵列,该ADC阵列将来自所述忆阻器网络的至少一个VMM模拟输出转换为数字值;

移位寄存器阵列,该移位寄存器阵列被配置为将所述ADC阵列的所述数字值格式化;

加法器阵列,该加法器阵列被配置为将来自所述忆阻器网络阵列的输出相加,各个加法器执行与所述系数关联的VMM运算的子集;以及组合器,该组合器被配置为将各个所述加法器阵列的所述输出信号组合以生成组合的输出信号。

16.根据权利要求15所述的电路,该电路还包括处理器,该处理器被配置为基于数学运算为所述VMM电路生成所述编程信号。

17.根据权利要求16所述的电路,其中,所述数学运算包括求解至少一个偏微分方程(PDE)的运算。

18.根据权利要求16所述的电路,其中,所述数学运算包括至少一个N位定点计算,所述VMM电路配置多个相应忆阻器以表示总共N位中的T位子集。

19.根据权利要求16所述的电路,其中,所述数学运算包括至少一个N位浮点计算,所述VMM电路配置多个相应忆阻器以表示总共N位中的T位子集。

20.根据权利要求15所述的电路,其中,VMM的所述至少一个系数对应于离散傅里叶变换(DFT)。

21.根据权利要求20所述的电路,其中,所述阵列还被配置为通过将与第一1D DFT对应的VMM的所述至少一个系数应用于所述阵列的第一子集,并且将所述第一子集的输出作为第二1D DFT的输入应用于所述阵列的第二子集,来处理2D DFT。

22.根据权利要求20所述的电路,其中,VMM的所述至少一个系数对应于离散傅里叶变换(DFT)以通过频谱法求解偏微分方程。

23.根据权利要求20所述的电路,其中,VMM的所述至少一个系数对应于离散傅里叶变换(DFT)以执行距离-多普勒信号处理。

24.根据权利要求15所述的电路,其中,VMM的所述至少一个系数对应于卷积系数以在卷积神经网络中执行推断。

25.根据权利要求15所述的电路,其中,VMM的所述至少一个系数对应于格林函数表示以求解偏微分方程。

26.根据权利要求15所述的电路,其中,所述组合器还被配置为与外围组件互连快速(PCIe)主机处理器接口。

27.根据权利要求15所述的电路,其中,VMM的所述至少一个系数对应于网格格林函数表示以求解偏微分方程。

28.根据权利要求15所述的电路,其中,VMM的所述至少一个系数对应于通过共轭梯度法求解的能量最小化优化问题。

29.根据权利要求28所述的电路,其中,所述共轭梯度法被配置为求解偏微分方程。

30.根据权利要求28所述的电路,其中,所述共轭梯度法被配置为在神经网络内执行反向传播算法。

31.一种方法,该方法包括以下步骤:

基于向量矩阵乘法(VMM)的至少一个系数来生成编程信号;

在具有忆阻器的阵列的忆阻器网络处选择性地允许读操作和写操作;

选择性地允许所述忆阻器的选择;

基于所述编程信号设定所述网络内的至少一个电阻值;

将至少一个输入信号施加到所述忆阻器网络,所述输入信号与向量对应;以及读取所述忆阻器网络处的至少一个电流值并基于所述至少一个电流值生成输出信号。

说明书全文

模拟协处理器

[0001] 相关申请
[0002] 本申请要求2016年2月8日提交的美国临时申请No.62/292,458的权益。上述申请的完整教导通过引用并入本文。

背景技术

[0003] 忆阻器是行为像电阻开关一样的器件,其可基于所施加的电压和电流的历史保持内阻状态。忆阻器可存储和处理信息,并且提供超过传统集成电路技术的若干性能特性。重要的一类忆阻器件是基于离子运动的双端电阻开关,其由简单的导体-绝缘体-导体薄膜叠层构建而成。对于大规模应用,忆阻器器件可按照纵横(crossbar)阵列的形式使用。

发明内容

[0004] 在一个实施方式中,一种电路经由向量矩阵乘法(VMM)提供模拟协处理。该电路可包括信号生成器、忆阻器网络和支持输入/输出(I/O)电路。信号生成器基于VMM的至少一个系数来生成编程信号。忆阻器网络包括忆阻器阵列。读/写控制电路可被配置为在忆阻器网络处选择性地允许读和写操作。忆阻器控制电路可被配置为选择性地允许忆阻器的选择,其中忆阻器控制电路可包括列开关复用器、行开关复用器和地址编码器中的一个或更多个。写电路可被配置为基于编程信号设定网络内的至少一个电阻值,其中写电路可包括电压转换器/驱动器。读输入电路可被配置为将至少一个输入信号施加到忆阻器网络,该输入信号与向量对应,其中读输入电路可包括电压转换器/驱动器。读出电路可被配置为读取在忆阻器网络处的至少一个电流值并基于所述至少一个电流值生成输出信号。
[0005] 在另外的实施方式中,忆阻器网络可包括按照分压器配置布置的多个忆阻器。忆阻器网络还可包括电路元件的阵列,各个电路元件包括与晶体管串联的忆阻器,该晶体管被配置为选择性地允许电流通过相应忆阻器。
[0006] 在另外的实施方式中,编程信号可基于至少一个离散傅里叶变换(DFT)系数。忆阻器网络包括忆阻器的多个子阵列,多个子阵列中的第一子阵列被应用于DFT系数的实部,多个子阵列中的第二子阵列被应用于DFT子阵列的虚部。输入信号可具有电压值,该电压值是预期用于乘法的输入向量的函数。读出电路还可被配置为作为向量与忆阻器网络的编程的电阻值的VMM函数的结果生成输出信号。
[0007] 在另外的实施方式中,读出电路还可被配置为检测忆阻器网络的多个节点处的电流,其中输出信号是所述电流的函数。读出电路还可包括被配置为输出表示输出信号的数字值的模数转换器(ADC)。写电路还可被配置为基于编程信号来生成基于乘法系数的至少一个模拟设定信号以设定所述至少一个电阻值,其中所述至少一个模拟信号被施加到忆阻器网络。数模转换器(DAC)可被配置为基于编程信号生成所述至少一个模拟设定信号。
[0008] 在另外的实施方式中,数模转换器(DAC)可被配置为基于所述向量来生成所述至少一个输入信号。读出电路还可包括被配置为将输出电流转换为电压值的跨阻放大器,输出信号包括所述电压值。读电路还可被配置为生成至少一个模拟输入信号以与忆阻器网络的至少一个电阻值相乘,所述至少一个模拟输入信号被施加到忆阻器网络。
[0009] 另外的实施方式包括一种协处理器电路,其包括向量矩阵乘法(VMM)电路的阵列以及支持I/O电路。VMM电路的阵列可包括上述特征中的一个或更多个,包括被配置为基于VMM的至少一个系数生成编程信号的信号生成器以及忆阻器网络。此外,读DAC阵列可被配置为将至少一个输入向量转换为模拟信号以施加到述忆阻器网络。写DAC阵列可被配置为基于乘法系数将至少一个设定信号转换为模拟设定信号以施加到忆阻器网络。ADC阵列可被配置为将来自忆阻器网络的至少一个VMM模拟输出转换为数字值。移位寄存器阵列可被配置为将ADC阵列的数字值格式化。加法器阵列可被配置为将来自忆阻器网络阵列的输出相加,各个加法器执行与所述系数关联的VMM运算的子集。组合器可被配置为将加法器阵列中的每一个的输出信号组合以生成组合的输出信号。
[0010] 在另外的实施方式中,处理器可被配置为基于数学运算为各个VMM电路生成编程信号。所述数学运算可包括求解至少一个偏微分方程(PDE)的运算。所述数学运算可包括至少一个N位定点计算,VMM电路配置多个相应忆阻器以表示总共N位中的T位子集。所述数学运算可包括至少一个N位浮点计算,VMM电路配置多个相应忆阻器以表示总共N位中的T位子集。
[0011] 在另外的实施方式中,VMM的所述至少一个系数可对应于离散傅里叶变换(DFT)。所述阵列可被配置为通过将与第一1D DFT对应的VMM的所述至少一个系数应用于阵列的第一子集,并且将第一子集的输出作为第二1D DFT的输入应用于阵列的第二子集,来处理2D DFT。VMM的所述至少一个系数可对应于离散傅里叶变换(DFT)以通过频谱方法求解偏微分方程。此外,VMM的所述至少一个系数可对应于离散傅里叶变换(DFT)以执行距离-多普勒信号处理。
[0012] 在另外的实施方式中,VMM的所述至少一个系数可对应于卷积系数以在卷积神经网络中执行推断。VMM的所述至少一个系数可对应于格林函数表示以求解偏微分方程。组合器还可被配置为与外围组件互连快速(PCIe)主机处理器接口。
[0013] 在另外的实施方式中,VMM的所述至少一个系数可对应于网格格林函数表示以求解偏微分方程。VMM的所述至少一个系数可对应于通过共轭梯度法求解的能量最小化优化问题。共轭梯度法可被配置为求解偏微分方程。共轭梯度法可被配置为在神经网络内执行反向传播算法。
[0014] 另外的实施方式可包括一种执行VMM运算的方法。可基于VMM的至少一个系数生成编程信号。在具有忆阻器的阵列的忆阻器网络处选择性地允许读和写操作。选择性地允许忆阻器的选择。可基于编程信号设定网络内的至少一个电阻值。至少一个输入信号可被施加到忆阻器网络,输入信号与向量对应。可读取忆阻器网络处的至少一个电流值并且可基于所述至少一个电流值生成输出信号。
[0015] 示例实施方式提供被配置用于求解偏微分方程(PDE)的模拟协处理器。此外,可通过利用模拟纵横阵列调用输入信号与傅里叶基函数的向量矩阵乘法(VMM)来实现模拟离散傅里叶变换(DFT)。可通过实现频谱PDE求解方法作为大规模离散化有限差分方法的替代,同时利用通过纵横阵列实现的固有并行性来求解线性和非线性PDE。模拟纵横阵列可在CMOS和忆阻器或者包括CMOS和忆阻器的组合的混合解决方案中实现。

附图说明

[0016] 上述内容将从下面如附图中所示的本发明的示例实施方式的更具体的描述显而易见,在附图中相同的标号贯穿不同的示图表示相同的部分。附图未必按比例,而是将重点放在示出本发明的实施方式上。
[0017] 图1是可在一个实施方式中实现的晶体管/忆阻器纵横阵列的电路图。
[0018] 图2是忆阻器阵列的电路图。
[0019] 图3是包括一个实施方式中的协处理器的系统的框图。
[0020] 图4是可在图3的协处理器中实现的向量矩阵乘法(VMM)引擎的阵列的框图。
[0021] 图5是一个实施方式中的VMM引擎的框图。
[0022] 图6是可实现实施方式的外围组件互连快速(PCIe)架构的框图。
[0023] 图7是一个实施方式中的H树架构的框图。

具体实施方式

[0024] 本发明的示例实施方式的描述如下。
[0025] 图1是可在一个实施方式中实现的晶体管/忆阻器纵横网络100的电路图。网络100包括晶体管/忆阻器阵列150(也称为纵横或纵横阵列),其包括布置成行和列的若干单元(也称为器件),包括单元140。单元包括与晶体管142串联连接的忆阻器144,其中晶体管142选择性地允许电流通过相应忆阻器144。晶体管142的栅极可连接到用于控制所述电流的晶体管控制电路125。此外,行选择电路110和列选择电路112选择性地允许电流通过给定行和给定列的单元。晶体管控制电路125、行选择电路110和列选择电路112一起允许电流被施加到阵列150的一个或更多个单元的选择,同时防止电流到达未选单元。
[0026] 忆阻器纵横阵列(例如,网络100的阵列150)可提供若干有益特征,例如高可扩展性、快速开关速度、非易失性、大电阻比、非破坏性读取、3D可层叠性、高CMOS兼容性和可制造性。然而,该架构也可具有若干应用相关的挑战。特别是关于向量矩阵乘法(VMM),在纵横阵列中实现高器件隔离并获得可接受的模拟行为是重要问题。
[0027] 忆阻器纵横阵列中的各个忆阻器器件的操作影响紧邻的其它器件的操作。例如,纵横阵列可表现出称为“潜行路径电流”的现象,其是流过未选忆阻器器件的电流之和。使用选择器件来减小该现象,选择器件可连接到纵横阵列的各列或行以驱动忆阻开关。选择器件可驱动的总电流可由其沟道宽度确定。然而,终端选择器件的电流-电压关系可能具有高非线性。这种效应违背了欧姆定律,因此,可使用三端选择器(例如,晶体管142)来减轻潜行路径电流问题并提供可接受的模拟行为,但是晶体管尺寸限制了可实现的忆阻器纵横密度。如图1所示,在各个交叉点处与忆阻器器件串联的晶体管可被称为1T1M(或1T1R)架构。通过在导通ON开关期间控制忆阻器的电流合规性(compliance),阵列150的各个单元140的电阻值可被设定为高电阻状态(HRS)和低电阻状态(LRS)之间的任何目标值,这被称为模拟行为。在1T1M结构中,可通过将晶体管的栅极电压设定为不同的电平来容易地实现电流合规性的控制。这允许忆阻器144中的模拟值的编程。
[0028] 图2是可包括上述网络100的一个或更多个特征的忆阻器阵列250的电路图。具体地讲,阵列250可包括多个行(V11-VN1)和列(V10-VM0)的忆阻器(例如,忆阻器244)。各个忆阻器也可配置有选择器件(例如,晶体管)以形成单元(例如,上述单元140)。
[0029] 忆阻器纵横阵列(例如,阵列250)可实现矩阵相关计算,并且由于高度并行的计算模型、电信号的有效使用以及硬件实现中的物理定律,与图形处理单元(“GPU”)或其它加速器相比可实现计算速度的超过100X的改进。忆阻器器件的低操作能量(因此,输入电压和输出电压之间的关系可按照向量矩阵乘法形式V=-V GRs(运放的负反馈)表示,其中G是由忆阻器纵横阵列的电导确定的N×M矩阵。
[0030] 可通过采用优良的开关材料(例如,TaOx和HfOx)和制造工艺来降低器件可变性。可在VMM应用中容易地采用反馈电路以将单元切换到目标值。为了提供VMM运算,小电压可作为输入施加在阵列250的行上,并且可测量列上的输出电流或电压。例如,各列处的输出电流可由转换器电路220读取并转换为对应电压。所施加的电压可保持低于忆阻器器件的有效开关阈值电压,因此,在相邻的忆阻器器件中没有任何明显的电阻改变。该操作可被称为“忆阻器读取”,可在无穷的持久循环和低的错误率或不精确下重复。更具挑战性但不太频繁的VMM运算是将矩阵映射在忆阻器纵横阵列上,这需要将电阻值编程(写入)到纵横阵列中的忆阻器器件中
[0031] 科学计算中的许多应用(包括偏微分方程(PDE)的求解)使用浮点计算。除了引言和背景技术部分中描述的定点式计算之外,下述实施方式中的模拟协处理器支持浮点格式的向量矩阵乘法。浮点是在范围和精度之间权衡的实数的表示。在浮点表示中,数由固定数量的有效数位(称为尾数(significand))表示并使用某一固定基数的指数缩放。一般表示为:尾数×基数指数的形式。多年来已使用了各种浮点表示,但自20世纪90年代以来,最常用的浮点表示如IEEE754标准所定义。
[0032] 16位浮点的指数是0至31的5位无符号整数。所使用的实际指数值是减去了偏差的指数值。16位浮点表示的偏差值为15。因此,指数的有效值范围从-15至16。真尾数包括具有隐藏前导位的二进制小数点右侧的10个小数位。仅10个小数位被存储在存储器中,但总精度为11位。这对应于3.311十进制数。
[0033] 32位浮点的指数是0至255的8位无符号整数。所使用的实际指数值是减去了偏差的指数值。32位浮点表示的偏差值为127。因此,指数的有效值范围从-127至128。真尾数包括具有隐藏前导位的二进制小数点右侧的23个小数位。仅23个小数位被存储在存储器中,但总精度为24位。这对应于7.22十进制数。
[0034] 16位浮点数的二进制表示可由下式给出:
[0035]
[0036] 该式得出十进制值:
[0037]
[0038] 使用16位浮点表示可表示的最小归一化正值为2-14=6.1×10-5,最大值为(2-2-10)×215=65504。使用32位浮点表示可表示的最小归一化正值为2-126=1.18×10-38。
[0039] 关于浮点加法,两个浮点数X和Y可相加。X和Y的尾数被表示为Xs和Ys,指数部分分别被表示为Xe和Ye。浮点数可如下相加:(a)通过明确表示“1”来将两个数转换为科学记数法。(b)为了将这些数相加,指数应该相同。该步骤通过使尾数(mantissa)的小数点移位来实现。(c)将两个尾数相加。(d)调节结果并将其表示为浮点数。
[0040] 关于浮点乘法,两个浮点数X和Y可相乘。X和Y的尾数被表示为Xs和Ys,指数部分分别被表示为Xe和Ye。然后,X和Y的乘法由下式给出:
[0041]
[0042] 在下述实施方式中,可通过将指数归一化来处理浮点数,这将其转换为尾数对齐的固定点值。将指数归一化需要位移位和填充,这是正处理的最大和最小指数值之差的直接函数。在一些应用中,对于单精度浮点计算,值可为278位那么大。为了规避该问题,VMM阵列的各列的元素可对齐。这种布置方式利用了邻近元素的指数之差显著小于极值的事实。对于用于与矩阵值相乘的向量输入,可遵循相同的归一化过程。纵横阵列的各列的归一化指数值可被存储,以在将相乘和累加的结果转换回浮点精度的反归一化处理期间使用。
[0043] 图3是一个实施方式中的协处理器300的框图,其可被应用于执行诸如N位浮点计算的计算。协处理器300可被称为模拟协处理器,因为其实现如下所述执行计算的模拟电路(例如,一个或更多个忆阻器网络)。计算所需的数据可从数字数据总线(例如,PCIe总线)接收到用于指数的归一化块305,其通过使它们的指数相同来将数据块归一化。这些归一化的值可被存储到芯片上数字存储器306,其由处理器310通过N通道总线访问。处理器310与VMM核心320接口。VMM核心320可作为协处理器的计算核心操作,并且可由P×P个VMM引擎的阵列组成。为清楚,示出了这种阵列的两个通道322a、322n。给定通道322n可包括写和读数模转换器(DAC)330、340、P×P VMM引擎阵列350、模数转换器(ADC)阵列360、移位寄存器阵列362和加法器阵列364。各个VMM引擎(例如,VMM引擎阵列350的引擎)可包括M×M忆阻器纵横阵列(例如,如上所述的阵列150、250)以及相应读和写电路连同行和列复用器(用于对忆阻器寻址以进行读和写操作)。下面参照图5更详细地描述示例VMM引擎。
[0044] 图4是在图3的协处理器300的VMM核心320中可实现的向量矩阵乘法(VMM)引擎(例如,VMM引擎470)的阵列420的框图。各个VMM引擎470可连接到相应DAC和ADC以形成阵列的各个单元460a-n。
[0045] 图5是VMM引擎500的框图。VMM引擎500可被实现为图3的协处理器300的VMM核心320的VMM引擎阵列350的引擎,并且可被实现为图4的阵列420的VMM引擎460。VMM引擎500可包括具有忆阻器单元(包括串联连接的开关和忆阻器)的阵列(1,1-M,M)的忆阻器网络500,并且可包括上面参照图1和图2描述的忆阻器网络100和阵列的一个或更多个特征。VMM引擎还包括通过设定网络550中的忆阻器的电阻值来对忆阻器网络550进行编程(也称为“写操作”)的电路以及将输入信号施加到编程的忆阻器网络550并检测所得电流和/或电压(也称为“读操作”)的电路。
[0046] 具体地讲,读/写控制电路510可选择性地允许读和写操作。对于写操作,电压转换器/驱动器512可接收编程信号(“写信号”)并生成用于设定忆阻器网络550的电阻值的对应信号(例如,电压值)。列开关复用器516和行开关复用器518允许阵列550的一个或更多个忆阻器单元的选择。编码器电路515将地址信号转换为指示用于通过复用器516、518选择的忆阻器单元的子集的信号。对于读操作,电压转换器/驱动器570可接收指示向量的“读信号”并将对应一组输入信号施加到忆阻器网络550。然后,读出电路580可通过忆阻器网络550接收并组合所得电流,并且跨阻放大器590可接收所得电流并生成具有基于该电流的电压值的输出信号。
[0047] 下面参照图3至图5描述示例实施方式中的协处理器和相应VMM引擎的操作。
[0048] 写操作
[0049] 再参照图3,为了使得协处理器300能够执行计算,相应VMM引擎可经历写操作,其可设定VMM引擎的忆阻器的电阻值。具体地讲,写DAC阵列330可将矩阵值写到VMM引擎阵列350的忆阻器中。由于各个VMM引擎500的大小为M×M,所以每VMM引擎的写DAC的数量也可为M。各个写DAC 330将T位写到各个忆阻器中,并且在单个时钟周期中可写入一整行。写DAC阵列330可利用各个VMM引擎500(图5)的写电路来写入引擎忆阻器阵列550的忆阻器中。
[0050] 由于指数已被归一化(例如,通过归一化块305),所以只有尾数可能需要协处理器300的处理。N位浮点数具有M个尾数位。因此,可能需要各行中的P个VMM引擎以按照每单元T位处理M位。例如,VMM引擎“1”(例如,引擎500)的第一忆阻器可存储T个MSB位,并且VMM引擎“P”的第一忆阻器存储T个LSB位。VMM引擎的其它(P-1)行可被写入相同的值。各个写DAC 
330可具有来自处理器310的各个通道的T位输入。该T位数字数据可被转换为作为忆阻器电导状态存储的单个模拟值。可在单个时钟循环中写入VMM引擎500的各行。例如,假定忆阻器写时间为4ns,则M×M纵横可能需要M*4ns来写入所有值。写操作可被视为开销,因为在所有忆阻器被写入之前无法开始VMM运算。为了避免这种开销,可使用交织方法,其中两个VMM核心将按照交织方式操作。
[0051] 读操作
[0052] 一旦网络550的所有忆阻器被写入,就可使用VMM核心320的VMM引擎来执行读操作(VMM运算)。如图3所示,各个VMM引擎阵列350具有其自己的读DAC阵列340。阵列340的各个DAC可为T位宽并且将T位值输入到忆阻器纵横阵列的各行中。由于VMM引擎的大小为M×M,所以各个阵列中的读DAC的数量也为M。读和写操作可以是顺序的,因此,相同的M个通道可用于读和写操作二者。读DAC 340可用于将向量输入到VMM引擎阵列350的忆阻器纵横阵列中。读DAC可提供输入向量以与存储在忆阻器纵横阵列中的矩阵值相乘。由于输入向量也是N位浮点数,所以尾数为M位宽。各个DAC 340如图所示具有T位输入。因此,计算需要VMM引擎的[P=(M/T)]列来处理M个尾数位。T位数字数据可被转换为单个模拟值。VMM引擎的各列可通过读电路570(图5)接收相同的输入向量。可使用读出电路580读出沿着各列得到的VMM输出。
[0053] 如图3所示,可使用列并行ADC 360来将各个VMM引擎500的模拟输出数字化。各个ADC可为T位宽,并且各个VMM引擎500可具有M个ADC。模拟协处理器300可处理N位浮点数的M位尾数,但是各个忆阻器可仅存储信息的T位。因此,M位尾数可被分解为M/T个T位数。在执行VMM运算并将输出数字化之后,位可被移位到其正确的位位置。为此,可在各个ADC 360的输出处实现移位寄存器362。各个移位寄存器阵列362可具有不同的位移位设置。在位被移位之后,可通过加法器阵列364将VMM引擎500的各列的输出与对应列相加。阵列364的各个加法器可具有来自各行中的P个VMM列的P个输入。类似地,也可使用阵列364的加法器将其它VMM引擎的列相加在一起。VMM核心320的各行可具有加法器阵列364的一组P个加法器。加法器364的T位长的输出可使用组合器370来组合,以形成M位尾数输出。这些输出可被存储到芯片上数字存储器306并在数字总线上发送。
[0054] 图6是可实现实施方式的外围组件互连快速(PCIe)架构的框图。PCIe是将计算和通信平台中的外围设备连接的串行点对点互连拓扑。PCIe“通道”包括两个PCIe装置之间的两个单工互连链路,其各自在相反的方向上。PCIe标准提供了通过在装置之间添加通道来增加吞吐量的灵活性。例如,PCIe版本3.0允许按照1、2、4、8、12、16和32的增量添加单工通道。由“L”表示的通道数量可能影响在PCIe架构下与装置接口的协处理器的大小和性能。
[0055] 如图6所示,CPU芯片集640和PCIe处理器主机650经由PCIe总线690在通信上联接。PCIe主机处理器650继而可与协处理器620通信,协处理器620可包括与上述协处理器300相当的特征。在操作中,CPU芯片集640可正向协处理器620发送。数据有效载荷可在芯片集640的装置核心处被创建并被发送到附加有开销的三个层(事务层、数据链路层和物理层)以确保分组按照正确的顺序可靠地传送到PCIe处理器650中的对应层。然后,所构造的分组可被呈现给芯片集640的存储器控制器,其物理地连接到PCIe总线690并确定将插入分组的通道。当分组在PCIe控制器650中从物理层流到事务层时,各个层剥离其开销并且可靠的数据有效载荷以正确的顺序传送到装置核心。PCIe处理器650主机将分组解构并将有效载荷传送到协处理器620。
[0056] 类似地,PCIe处理器主机从协处理器620所创建的数据有效载荷构造分组并将其以正确的顺序可靠地发送到CPU芯片集640中的装置核心。PCIe处理器的功能可例如在与CPU芯片集640通信并对协处理器620进行控制和编程的Xilinx FPGA中实现。PCIe协议的规定可被实现为对协处理器620进行控制和编程。另外,协处理器620的“带外”的控制和编程可在例如驻留在主机工作站中的诸如MATLAB的软件程序中执行。
[0057] 图7是一个实施方式中的H树架构700的框图。如上所述,M×M纵横的P×P并行阵列可执行浮点运算。对于单精度计算,P为6并且M为32。这种配置(具有针对32位浮点的4位/单元的36组32×32纵横,或者具有针对16位浮点的5位/单元的4组32×32纵横)可被称为“纵横核心”或“浮点核心”。使用具有32个通道的接口(例如,PCIe 4.0接口)使得32元素输入向量能够按照64GB/s的双向带宽充分地输入到协处理器的浮点核心。PCIe值可作为输入向量被聚合并映射到特定纵横以用于计算(可在FPGA上完成)。
[0058] H树架构700可包括按照H树配置连接到公共接口的多个纵横核心720a-n。使用流式缓存790按照64GB/s的H树带宽馈送8个这种核心的H树网络产生1PB/s(250TFLOP单精度)的VMM计算(16GT/s的32位输入*8个浮点核心*每核心2016浮点计算)。然后,浮点核心的输出可被逆映射回其对应输入向量分量并作为输出向量被聚合以返回给发送装置(也可在FPGA上完成)。H树架构700的纵横核心720a-n可被配置为直接与PCIe总线接口,从而避免在尝试按照TB/s标度创建内部装置带宽的存储器内处理器架构中可能存在的带宽不对称性。
[0059] 上述示例实施方式提供了一种用于需要高计算速度和低功耗的应用的模拟协处理器。该协处理器能够求解复杂系统的科学仿真中出现的偏微分方程。由于与离散变量编码和串行处理关联的限制,科学仿真内的当前PDE求解方法效率低并且常常棘手。上述实施方式通过使用CMOS-忆阻器纵横阵列的模拟行为调用输入信号与乘法系数的向量矩阵乘法来实现一组PDE求解过程。
[0060] 示例实施方式可通过实现频谱和格林函数求解方法作为大规模离散化有限差分方法的替代,同时利用通过纵横阵列实现的固有并行性来求解线性和非线性PDE。在频谱方法中,可使用模拟纵横架构将PDE转换到傅里叶域中。一旦表示在傅立叶域中,就可使用纵横来执行VMM和积分以通过利用逆离散傅里叶变换(IDFT)和卷积定理来得到PDE的解。因此,可将感兴趣的偏微分方程映射到模拟纵横离散傅里叶变换(“DFT”)架构,从而得到简单得多的傅里叶表达,其增加了PDE求解计算的速度使其远超先前方法。以这种方式求解具有深远适用性的线性PDE(例如,波和热方程)。通过线性化求解非线性PDE然后傅里叶域表示以及不可压缩流体流的纳维-斯托克斯Navier-Stokes方程是示例应用。
[0061] 求解PDE的另一方法是格林函数方法。格林函数方法可能不适用于在传统计算机上求解PDE。然而,实现诸如忆阻器-CMOS纵横的电路的上述实施方式为PDE求解提供了手段。PDE具有涉及格林函数的正式数学解:
[0062] T(x)=∫ΩG(x,x′)S(x′)dx′
[0063] 其中G(x,x')是格林函数。每一个PDE具有特定格林函数。如果域上的积分在每元素N个网格单元的离散网格上近似,则在一个单元中计算解T(x)需要在所有(N-1)个其它单元上求和并且求解(所有单元中的)所有未知解需要阶N2运算。这种运算在计算上昂贵,因为可在O(N)时间内找到该问题的解。因此,在先前方法中格林函数很少被用作求解PDE的主要求解技术。
[0064] 还可根据线性代数和矩阵来理解计算成本。一旦离散化,PDE生成矩阵问题Ax=b,其中A是仅具有O(N)非零条目的N×N稀疏矩阵,b是N个已知值的源向量,x是未知解向量(具有N个条目)。格林函数G(x,x')等同于矩阵逆。它是完整矩阵并且需要N2运算以乘以源并经由x=A-1b获得解。
[0065] 上述示例实施方式使得格林函数方法再次可行,因为其在模拟域中执行矩阵乘法运算。结果,向量乘以全矩阵乘法(VMM)的所有N2运算可在忆阻器纵横阵列上在单个循环中执行。
[0066] 这些实施方式也适用于基于卷积神经网络(CNN)的图像识别和多普勒滤波。CNN是用于对象检测和识别任务的越来越流行的机器学习工具。然而,最先进的嵌入式数字求解需要相当大的功率来执行典型的CNN任务(例如,AlexNet基准测试上的任务),无法实现实时视频操作或满足移动装置功率预算。先前的PDE求解技术也涉及GPU并且在计算效率方面面临类似的问题。另外的应用包括雷达系统中的距离-多普勒信号处理。在可能需要功耗小于1W的实时操作的群体智能和相关应用中信号处理需要这些平台的尺寸、重量和功率(SWaP)显著减小。通过利用诸如模拟纵横VMM的特征,上述示例实施方式可在上述约束下实现这些应用。
[0067] 示例实施方式可经由CMOS以及诸如忆阻器的新兴纳米技术或者由CMOS和忆阻器二者组成的混合技术来实现。这种实现方式在模拟DFT实现方面提供了许多优点,因为如上所述的模拟纵横处理器可对DFT系数进行编程并执行与输入信号的向量矩阵乘法。具体地讲,如上所述的模拟处理器可利用基本尺寸纵横阵列的足够并行化实现超过1024个点的模拟离散傅里叶变换,与数字系统相比在计算速度和功耗方面改进了2至3个数量级。
[0068] 尽管已参照本发明的示例实施方式具体示出和描述了本发明,但是本领域技术人员将理解,在不脱离由所附权利要求涵盖的本发明的范围的情况下,可对其进行形式和细节上的各种改变。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用