神经网络电路的制作方法

文档序号:19019543发布日期:2019-11-01 20:30阅读:553来源:国知局
神经网络电路的制作方法

本公开涉及一种包括存储部的神经网络电路,所述存储部包括以晶格形状连接的、作为存储元件的忆阻器。



背景技术:

神经网络电路包括具有作为突触的两个端子的元件,所述元件是非易失性的并且能够改变电导值,并且被称为忆阻器。已经提出了针对忆阻器的配置的研究。在神经网络电路中,忆阻器是以晶格形状来布置的,电压被施加到忆阻器上,并且生成电流,例如,如在非专利文献1的图2或者图14中所示的。通过i/v转换放大器将复合电流转换为电压。在通过激活函数对电压的波形进行成形之后,所述电压被输出为电压值。忆阻器作为突触来操作,并且i/v转换放大器作为神经元来操作。由此,神经网络电路被配置。i/v转换放大器通过模拟计算对忆阻器的电导值和所施加的电压执行积-和(product-sum)计算。

在实际电路中,当在图14中所示的输入vi1至vi3中的每个具有-1至+1的值时,vi4=-1被恒定地施加,作为针对阈值的偏置(bias)。

图26示出了十层cnn(卷积神经网络)的范例。图26示出了当由cnn执行图像识别时在第一层中的每个输入端子的输入电流比的计算范例。输入由被施加-vb至+vb的28个端子vi1至vi28来提供,并且输出由96个端子vo1至vo96来提供。在满足vi28=-vb并且恒定地施加vi28的状态下计算输入偏置。

由于输入数据具有稀疏性,因此偏置电流比实际输入电流中的每个实际输入电流大一个数位(digit)或多个数位。在图16的范例中,偏置电流表示小于输入电流的总和的40%的比率。

作为神经网络的另一种配置,忆阻器以晶格形状来布置,由d/a转换器施加模拟电压,并且生成电流,例如,如在非专利文献2的图2中所示的。复合电流由跨阻放大器转换为电压,并且由a/d转换器转换为数字数据。在通过激活函数的计算之后,执行诸如池化的信号处理。输出数据在信号处理层被传输到d/a转换器,并且所述信号处理是在多个层中执行的。积-和计算是在由忆阻器配置的交叉开关(crossbar)中执行。

此外,本公开的发明人发现了以下内容。

图26示出了基于非专利文献2的用于图像识别的十层cnn和卷积神经网络的配置的范例。图26示出了针对每个信号处理层的输入dac和输出adc的必要通道编号。在第一层的卷积中,所述卷积层包括28个输入通道和96个输出通道。在第二层中,所述卷积层包括865个输入通道和96个输出通道。865个输入通道是通过将1个偏置通道添加到第一层中的96个输出通道的9个数据而获得的96×9+1个通道。

假设在第二层中采用96个输入通道/96个输出通道的交叉开关与1个输入通道/96个输出通道的交叉开关的组合作为基本配置。96个输入通道/96个输出通道的积-和计算被执行9次,并且1个输入通道/96个输出通道的积-和计算被执行一次。提供了具有865个输入通道/96个输出通道的交叉开关的相同计算结果。除了一个偏置dac之外,可以使输出dac的数量与输入adc的数量相匹配。然而,当提供如ic的配置时,可能有必要使dac和adc在功耗和面积方面进一步降低。

非专利文献1:“aheterogeneouscomputingsystemwithmemristor-basedneuromorphicaccelerators”,highperformanceextremecomputingconference,2014ieee

非专利文献2:“lowpowerconvolutionalneuralnetworksonachip”,circuitsandsystems(iscas),2016ieee

非专利文献3:“advancingmemristiveanalogneuromorphicnetworks:increasingcomplexity,andcopingwithimperfecthardwarecomponents”arxiv:1611.04465。



技术实现要素:

本公开的目的是提供一种能够基于偏置电压的施加来降低功耗的神经网络电路。

此外,本公开的另一目的是提供一种能够在保持计算准确度和信号处理速度的同时降低电路规模的神经网络电路。

根据本公开的一个方面,一种神经网络电路,包括:存储部,其可以包括以晶格形状连接的忆阻器,所述忆阻器中的每个忆阻器是可变电阻元件;多个d/a转换器,其可以接收数据以将信号电压和参考电压施加到所述存储部的多个电压输入端子;以及多个驱动放大器,其可以被连接在所述多个d/a转换器与所述多个电压输入端子之间;多个i/v转换放大器,其可以与所述存储部的电流输出端子相连接;并且可以将在所述电流输出端子中流动的电流转换为电压以输出所述电压作为信号电压;多个a/d转换器,其可以对由所述多个i/v转换放大器转换的所述信号电压进行a/d转换;以及多个偏移校正器,其可以被布置在所述多个a/d转换器的输出侧中,并且可以校正在所述i/v转换放大器中所生成的偏移电压。所述电压输入端子中的一个电压输入端子是用于施加偏置电压的偏置端子。所述驱动放大器中可以与所述偏置端子相连接的至少一个驱动放大器是偏置施加放大器,所述偏置施加放大器可以根据从对应的d/a转换器接收到的电压施加参考电压以及具有相反极性的偏置电压。

所述偏移校正器可以包括:第一锁存电路,其可以接收所述a/d转换器的输出数据;第二锁存电路,其可以接收所述a/d转换器的所述输出数据;减法器,其可以从所述第二锁存电路的锁存数据中减去所述第一锁存电路的锁存数据;以及控制器,其可以控制所述d/a转换器、所述第一锁存电路和所述第二锁存电路。在执行偏置设置操作时,所述控制器可以控制所述偏置施加放大器以输出具有相反极性的偏置电压,控制所述d/a转换器中的每个d/a转换器以使所述驱动放大器而非所述偏置施加放大器输出所述参考电压,并且还使所述第一锁存电路锁存所述a/d转换器的输出数据。在执行正常操作时,所述控制器可以:控制所述偏置施加放大器以输出所述参考电压,控制所述d/a转换器中的每个d/a转换器以使所述驱动放大器而非所述偏置施加放大器输出信号电压,并且还使所述第二锁存电路锁存所述a/d转换器的输出数据。所述控制器可以输出所述减法器的相减结果作为信号数据。

由于偏置电流仅在偏置设置操作时在所述存储部中流动,因此可以缩短偏置电流的正常项并且降低电流消耗。可以在缩短正常项的同时校正偏移电压。

此外,根据本公开的另一方面,一种神经网络电路,包括:存储部中的至少一个存储部,其可以包括以晶格形状连接的忆阻器,所述忆阻器中的每个忆阻器是可变电阻元件;多个d/a转换器,其可以接收数据以将信号电压施加到所述存储部的多个电压输入端子;以及多个驱动放大器,其可以被连接在所述多个d/a转换器与所述多个电压输入端子之间;多个i/v转换放大器,其可以与所述存储部的电流输出端子相连接;并且将在所述电流输出端子中流动的电流转换为电压以输出所述电压;以及多个计算单元,其可以包括多个a/d转换器,所述多个a/d转换器可以对由所述多个i/v转换放大器转换的所述信号电压进行a/d转换。

所述a/d转换器可以具有逐次逼近型转换器,所述逐次逼近型转换器可以包括作为内置d/a转换器的电阻串型d/a转换器。所述内置d/a转换器可以进行切换,以便将由所述存储部执行的计算结果的信号电压施加到与在下一层中的计算单元的存储部相对应地布置的多个驱动放大器。

对于采用内置d/a转换器的配置,可以减小电路规模。

附图说明

根据下文参考附图进行的详细描述,本公开的上述和其他目的、特征和优点将变得更加明显。在附图中:

图1是示出在图2中所示的配置的图;

图2是示出神经网络电路的模拟积-和计算电路的功能框图;

图3是示出被布置在d/a转换器的输入侧的缓冲电路的图;

图4是示出减法器的内部配置的功能框图;

图5是示出激活函数的一个范例的图;

图6是示出激活函数计算器的配置的图;

图7是示出偏移校正控制器的配置的功能框图;

图8是示出偏移校正控制器的操作的时序图;

图9是示出偏移校正的电路操作的流程图;

图10是示出根据第二实施例的偏移校正控制器的配置的功能框图;

图11是示出温度传感器的操作的时序图;

图12是示出根据第三实施例的配置神经网络电路的模拟积-和计算电路的功能框图;

图13是示出偏移校正的电路操作的流程图;

图14是与非专利文献1的图2相对应的图;

图15是示出通过采用在图14中所示的电路而配置的10层cnn的配置范例的图;

图16示出了当由图15的cnn执行图像识别时在第一层中的每个输入端子的输入电流比的计算范例;

图17是示出根据第五实施例的神经网络电路的模拟积-和计算电路的功能框图;

图18是解释a/d转换器的操作模式中的每种操作模式的视图;

图19是示出多个模拟积-和计算电路被串联连接的状态的功能框图;

图20是示出交叉开关电路的配置的图;

图21是与非专利文献3的图1(d)相对应的图;

图22是示出根据第六实施例的包括多个交叉开关的模拟积-和计算电路的功能框图;

图23是示出根据第七实施例的模拟积-和计算电路的功能框图;

图24是示出在多个交叉开关电路的输出侧的差分放大器和a/d转换器的图;

图25是示意性示出包括多个交叉开关的模拟积-和计算电路的功能框图;并且

图26是示出通过采用在非专利文献2中所示的电路而配置的10层cnn的配置范例的图。

具体实施方式

在下文中,将参考附图来描述各实施例。

(第一实施例)

将描述第一实施例。在图2中所示的神经网络电路的模拟积-和计算电路1使得d/a转换器2对输入数据data_in进行电压转换。经转换的电压经由驱动放大器3被施加到忆阻器交叉开关电路4。驱动放大器3对应于驱动放大器。忆阻器交叉开关电路4包括作为存储元件的忆阻器。在忆阻器交叉开关电路4的配置中,多个存储元件以晶格形状来布置。忆阻器交叉开关电路4对应于存储部。

交叉开关电路4根据在每个存储元件中设置的电导值来输出电流。由感测放大器7将电流转换为电压。由感测放大器7转换的电压由a/d转换器8进行a/d转换,以输出为数字数据。感测放大器7对应于i/v转换放大器。所述数据经由减法器9输入到激活函数计算器10。在激活函数计算器10中,例如,在图5中所示的下文的表达式的斜坡函数f(x)可以作为所述神经网络电路的激活函数被应用于所述输入数据。

f(x)=max(0,x)...(1)

该斜坡函数f(x)具有正极性。所输出的数据data_out被输入到下一级的模拟积-和计算电路1。

偏移校正控制器11通过控制d/a转换器2和减法器9来校正包含在a/d转换器8的输出数据中的偏移。偏移校正器30包括减法器9和偏移校正控制器11。可以更多地放置d/a转换器2、驱动放大器3、感测放大器7、a/d转换器8等。图1更详细示出了在图2中所示的忆阻器交叉开关电路4的输入部和输出部。

图3示出了在d/a转换器2的数据输入部中的缓冲电路12。当输入数据di是n位时,or门13被对应于最高有效位di[n-1]进行布置,并且and门14[n-2]至14[0]被对应于其他较低的位di[n-2]至di[0]进行布置。对应的输入数据di被提供给逻辑门13和逻辑门14的输入端子中的一个输入端子。由偏移校正控制器11输出的使能信号en被提供给另一输入端子。使能信号en经由not门15被施加到or门13。

当满足使能信号en=0时,在d/a转换器2的输入数据中,msb的di[n-1]为“1”,并且所有其他较低的位di[n-2]至di[0]是“0”。如在图1中所示的,输入到d/a转换器2(b)的使能信号en是从偏移校正控制器11输出的控制信号bias_dac_select。其他d/a转换器2(1)和2(2)等是控制信号data_dac_select。

针对d/a转换器2(1)和2(2),相对于所述控制信号来输出转换电压,如下。

data_dac_select输出电压

0(初始操作)参考电压vref

1(正常操作)相对于输入数据的信号电压

针对d/a转换器2(b)bias_dac_select,相对于控制信号来输出转换电压,如下。

bias_dac_select输出电压

0(正常操作)参考电压vref

1(初始操作)相反极性的偏置电压+vb

稍后将描述“初始操作”和“正常操作”。

如在图4中所示的,减法器9包括第一锁存电路16(1)、第二锁存电路16(2)、锁存控制电路17以及减法器18。输入数据di被输入到锁存电路16,并且锁存控制电路17输入锁存信号。锁存控制电路17包括or门19(1)和19(2)以及not门20。锁存信号;le被输入到or门19(1)和19(2)的输入端子中的一个输入端子,以及选择信号latch_select;sel被输入到另一输入端子。选择信号sel经由not门20被输入到or门19(1)。

如在图6中所示的,激活函数计算器10包括n个and门21[n-1]至21[0]。从减法器9输出的数据d[n-1]至d[0]被提供至and门21的输入端子中的一个输入端子,并且数据d[n-1]被共同提供给输入端子中的另一输入端子。

如在图7中所示的,偏移校正控制器11包括计数器22。时钟信号clock被输入到计数器22的输入端子。计数值的设置值数据data_set被输入到计数器22。计数器22对计数值进行计数以在一个时钟时段内将输出信号q设置为高电平(level)。计数器22在一个时钟时段内将输出信号q的反相信号qn设置为低电平。顺便提及,本公开的高电平可以意指预定的高状态,而低电平可以意指预定的低状态。

计数器22的输出端子qn输出控制信号data_dac_select和控制信号latch_select。计数器22的输出端子q输出控制信号bias_dac_select。

图8是示出偏移校正控制器11的操作的时序图。偏移校正控制器11通过计数器22的计数值来设置初始状态的执行频率。在初始状态中,取回偏移电压voff以及具有相反极性的偏置电压+vbias。设置该执行频率,从而允许感测放大器7的偏移电压voff或者忆阻器中的电导的温度漂移的影响作为计算结果的误差。

该范例示出了在计数器22中设置的数据值data_set为“4”的情况。bias_dac_select被设置为时钟信号clock的每四个计数的高电平。控制信号data_dac_select和latch_select是控制信号bias_dac_select的反相(inversion)。

d/a转换器2(1)和2(2)每4个时钟周期处于“初始操作”中,否则处于“正常操作”中。d/a转换器2(b)每4个时钟周期与d/a转换器2(1)和2(2)同步处于“初始操作”中,否则处于“正常操作”中。

将描述所述实施例的操作。图9示出了根据图8的时序图的电路操作。在步骤s1中,当偏移校正控制器11的偏置侧操作模式处于“初始操作”中时(s2),d/a转换器2(1)和2(2)输出参考电压vref,并且d/a转换器2(b)输出相反极性的偏置电压+vb(s3)。“初始操作”对应于偏置设置操作。

假设能够将电压施加到忆阻器的这两端的电压范围被包括在±vb之内,并且施加到感测放大器7的参考电压vref例如是0v。“初始操作”指代在忆阻器的这两端之间不生成电位差的状态。电压被定义如下:

vin1=vin2=0v,vinb=+vb。

当在感测放大器7中生成偏移电压voff时,通过将在施加具有相反极性的偏置电压+vb时的输出电压+vbias加到偏移压voff,来获得输出电压vout。输出电压vout被定义如下:

vout=voff+vbias。

由于满足latch_select=0,所以减法器9的锁存电路16(2)锁存与感测放大器7的输出电压(voff+vbias)相对应的数据(s4)。

另一方面,在步骤s1中,当偏移校正控制器11的偏置侧操作模式处于“正常操作”中时(s5),d/a转换器2(1)和2(2)分别输出信号电压vin1和vin2。d/a转换器2(b)输出参考电压vref(s6)。感测放大器7的输出对应于通过根据信号电压vin将偏移电压voff加到输出电压vout而获得的电压(vout+voff)。由于满足latch_select=1,因此锁存电路16(1)锁存与感测放大器7的输出电压(vout+voff)相对应的数据(s7)。

减法器9的减法器18将锁存电路16(2)与16(10)的数据相减(s8)。相减结果可以被描述如下:

(vout+voff)-(voff+vbias)=vout-vbias。

因此,所获得的数据对应于通过将在施加具有正极性的偏置电压-vbias时的输出电压-vbias加到感测放大器7的输出电压vout而获得的电压。偏移电压voff被抵消。

在所述配置中,信号电压vin和参考电压vref经由d/a转换器2和驱动放大器3被施加到包括作为存储元件的忆阻器的交叉开关电路4的多个电压输入端子。在忆阻器交叉开关电路4的电流输出端子中流动的电流被感测放大器7将转换为电压。a/d转换器8对所述电压进行a/d转换(换言之,a/d转换器8执行a/d转换)。偏移校正器30被布置在a/d转换器8的输出侧中,并且校正在感测放大器7中所生成的偏移电压voff。

与忆阻器交叉开关电路4的偏置端子相连接的驱动放大器3(b)根据从d/a转换器2(b)输入的电压来施加参考电压vref和具有相反极性的偏置电压+vb。

在所述初始操作中,偏移校正控制器11控制d/a转换器2中的每个d/a转换器以将参考电压vref输出到驱动放大器3(1)和3(2),同时使驱动放大器3(b)输出具有相反极性的偏置电压。偏移校正控制器11使第一锁存电路16(1)锁存经a/d转换的数据。

在所述正常操作中,偏移校正控制器11控制d/a转换器2中的每个d/a转换器以将信号电压vin输出到驱动放大器3(1)和3(2),同时使驱动放大器3(b)输出参考电压vref。然后,偏移校正控制器11使第二锁存电路16(2)锁存经a/d转换的数据。减法器18输出第二锁存电路16(2)与第一锁存电路16(1)的锁存数据的相减结果作为信号数据dout。

在所述配置中,偏置电流仅在初始操作中在忆阻器交叉开关电路4中流动。因此,可以缩短偏置电流的通电项并且降低电流消耗。可以在缩短所述通电项的同时执行对偏移电压voff的校正。由于偏移校正控制器11间歇地执行所述初始操作,因此偏置电流的通电项被进一步缩短。

具体地,偏移校正控制器11每当计数器22的时钟信号的时钟计数值达到预定值“4”时执行所述初始操作。当所述计数值达到所述预定值时,计数器22在一个时钟时段内将输出信号q改变为高电平。偏移校正控制器11通过从计数器22的输出端子q输出控制信号bias_dac_select来控制d/a转换器2(b)。偏移校正控制器11通过从计数器22的输出端子qn输出控制信号data_dac_select来控制d/a转换器2(1)和2(2)。偏移校正控制器11通过从计数器22的输出端子qn输出控制信号latch_select来控制锁存电路16(1)和16(20)的锁存计时。因此,可以将偏置电流的通电项设置为每四个时钟时段一个时钟时段。

d/a转换器2包括缓冲电路12,缓冲电路12具有控制输入数据值的控制端子。缓冲电路12将数据输入到对应的驱动放大器3,以便相对于被提供给控制端子的使能信号en的二进制电平变化而输出参考电压vref。由此,可以容易地在所述初始操作与所述正常操作之间切换。

(第二实施例)

在下文中,将描述本公开的第二实施例。在第二实施例中,与第一实施例相似或对应的部分将由相同的附图标记或符号来表示,并且省略对其的解释。将描述与第一实施例的不同之处。第二实施例采用在图10中所示的偏移校正控制器31,而不是偏移校正控制器11。偏移校正控制器31包括温度传感器33和d触发器32,而不是计数器22。

温度传感器33包括重置端子以及用于输出信号dt的输出端子。例如,温度传感器33检测忆阻器交叉开关电路4的外围的温度。温度传感器33的输出端子与d触发器32的输入端子d相连接。所述重置端子与d触发器32的输出端子qn相连接。偏移校正器40包括偏移校正控制器31。

如在图11中所示的,当生成等于或大于设置值的变化时,温度传感器33将信号dt设置为高电平,而不管检测到的温度是上升还是下降。d触发器32与时钟信号clock同步以取回数据值“1”,并且将输出端子q设置为高电平。由此,执行在偏置侧的所述初始操作。当输出端子q被设置为高电平时,输出端子qn被设置为低电平。重置温度传感器33。由于信号dt被改变为低电平,所以输出端子qn在下一clock中被设置为高电平。温度传感器33的重置被释放。

在第二实施例中,当由温度传感器33检测到的温度的变化水平超过预定水平时,偏移校正控制器31在偏置侧执行初始设置操作。具体地,温度传感器33包括重置端子,所述重置端子将输出信号dt改变为高电平并且在温度的变化水平超过预定水平时将输出信号dt改变为低电平。例如,预定水平可以对应于预定范围。

温度传感器33的输出端子与d触发器32的输入端子d相连接。所述重置端子与输出端子qn相连接。通过在第一实施例中的偏移校正控制器11的相似配置来输出控制信号bias_dac_select、data_dac_select和latch_select中的每个控制信号。在所述配置中,仅当温度的变化水平超过预定水平时才执行在偏置侧的初始设置操作。因此,可以通过在必要的计时处激励偏置电流来缩短通电项。

(第三实施例)

在图12中所示的第三实施例的模拟积-和计算电路41中,第一实施例的感测放大器7(1)和7(2)分别被描述为感测放大器7(1p)和7(1n)。感测放大器7(1p)和7(1n)的输出端子与差分放大器42的每个输入端子相连接。差分放大器42的输出端子将输出电压vout1输入到a/d转换器8(1)。模拟积-和计算电路41具有差分配置。

将描述第三实施例的操作。假设当施加具有大幅度的反向偏置时,忆阻器的特性非线性地操作。在所假设的情况下,可以通过将输入信号电压和偏置电压设置为差分配置中的单极电压输入来减少计算误差。与第一实施例相似,在模拟积-和计算电路41中,施加具有与输入信号相似相反极性的偏置电压+vb。执行对偏移校正的计算。

当在正常操作中施加偏置电压时,忆阻器的电导被设置为g1b≥g2b。第三实施例采用差分输出。因此,当电导预先变为g1b≤g2b时,可以使输出电压的极性反转(s0)。如在图13中所示的,在步骤s11中,替代步骤s3,将具有与输入信号相似极性的偏置电压+vb被输出到d/a转换器2。与第一实施例相似地执行所述计算。

在第三实施例中,与第一实施例相似,可以在减小偏置电流的通电项的同时解决感测放大器7的偏移或者忆阻器的电导的温度变化问题。

(第四实施例)

在计数器22中设置的数据值可以不限于“4”。所述激活函数可以是斜坡函数之外的函数。

根据本公开的一个方面,一种神经网络电路,包括:存储部,其可以包括以晶格形状连接的忆阻器,所述忆阻器中的每个忆阻器是可变电阻元件;多个d/a转换器,其可以接收数据以将信号电压和参考电压施加到所述存储部的多个电压输入端子;多个驱动放大器,其可以被连接在所述多个d/a转换器与所述多个电压输入端子之间;多个i/v转换放大器,其可以与所述存储部的电流输出端子相连接,并且可以将在所述电流输出端子中流动的电流转换为电压以输出所述电压作为信号电压;多个a/d转换器,其可以对由所述多个i/v转换放大器转换的所述信号电压进行a/d转换;以及多个偏移校正器,其可以被布置在所述多个a/d转换器的输出侧中,并且可以校正在所述i/v转换放大器中生成的偏移电压。所述电压输入端子中的一个电压输入端子是用于施加偏置电压的偏置端子。所述驱动放大器中可以与偏置端子相连接的至少一个驱动放大器可以是偏置施加放大器,所述偏置施加放大器可以根据从对应的d/a转换器接收到的电压施加参考电压以及具有相反极性的偏置电压。

所述偏移校正器可以包括:第一锁存电路,其可以接收a/d转换器的输出数据;第二锁存电路,其可以接收a/d转换器的所述输出数据;减法器,其可以从所述第二锁存电路的锁存数据中减去所述第一锁存电路的锁存数据;以及控制器,其可以控制d/a转换器、第一锁存电路和第二锁存电路。在执行偏置设置操作时,所述控制器可以控制所述偏置施加放大器以输出具有相反极性的偏置电压,控制所述d/a转换器中的每个d/a转换器以使所述偏置施加放大器之外的驱动放大器输出参考电压,并且还使所述第一锁存电路锁存所述a/d转换器的输出数据。在执行正常操作时,所述控制器可以控制所述偏置施加放大器以输出参考电压,控制所述d/a转换器中的每个d/a转换器以使所述偏置施加放大器之外的驱动放大器输出信号电压,并且还使所述第二锁存电路锁存所述a/d转换器的输出数据。所述控制器可以输出所述减法器的相减结果作为信号数据。

例如,当具有相反极性的偏置电压可以被设置为+vb时,在偏置设置操作中锁存在所述第一锁存电路中的数据可以对应于通过将在施加具有相反极性的偏置时的输出电压vbias加到在所述i/v转换放大器中生成的偏移电压voff而获得的电压(voff+vbias)。在正常操作中锁存在所述第二锁存电路中的数据可以对应于通过将相对于可以被输入到所述i/v转换放大器中的信号电压vin的偏移电压voff加到放大器的输出电压vout而获得的电压(vout+voff)。

所述减法器的相减结果可以被描述如下:

(vout+voff)–(voff+vbias)=vout-vbias。

可以抵消偏移电压,并且相减结果也对应于可以向其加上偏置电压-vb的电压。由于偏置电流仅在偏置设置操作时在存储部中流动,因此可以缩短偏置电流的正常项并且降低电流消耗。可以在缩短所述正常项的同时校正所述偏移电压。

根据本公开的另一方面,类似地,一种神经网络电路可以具有存储部、d/a转换器、驱动放大器和i/v转换放大器的配置。在差分配置中可能是不同的。在差分配置中,差分放大器可以对形成一对的两个i/v转换放大器的输出执行差分计算。在存储部中,可以预先改变忆阻器的差分对的电导值以使偏置电压的极性反转。

亦即,可以预先改变所述忆阻器的差分对的电导值以使所述偏置电压的极性反转,所述偏置电压可以被添加到所述忆阻器。所述操作可以对应于使偏置施加放大器在偏置设置操作时输出具有相反极性的偏置电压的操作。当所述存储部的输出侧可以具有差分配置时,可以类似地降低电流消耗。

在所述神经网络电路中,由于控制器间歇地执行偏置设置操作,因此可以进一步降低电流消耗。

(第五实施例)

将描述第五实施例。图20示出了神经网络电路的模拟积-和计算电路1001。模拟积-和计算电路1001使d/a转换器1002对输入数据data_in进行电压转换。经转换的电压经由驱动放大器1003被施加到忆阻器交叉开关电路1004。忆阻器交叉开关电路1004包括作为存储元件的忆阻器g1011至g1042。在忆阻器交叉开关电路1004的配置中,多个存储元件以晶格形状来布置。忆阻器交叉开关电路1004对应于存储部。

交叉开关电路1004相对于在所述存储元件中的每个存储元件中设置的电导值来输出电流。通过感测放大器1005将所述电流转换为电压。感测放大器1005对应于i/v转换放大器。在所述实施例中,模拟积-和计算电路1001具有差分配置。感测放大器1005(1)和1005(2)的输出端子中的每个输出端子与差分放大器1006(1)的输入端子中的每个输入端子相连接。a/d转换器1007(1)对差分放大器1006(1)的输出电压进行a/d转换,以作为数字数据输出。所述a/d转换器可以被称为adc,并且所述d/a转换器可以被称为dac。

图21是与非专利文献3(“advancingmemrisitiveanalogneuromorphicnetworks:increasingcomplexity,andcopingwithimperfecthardwarecomponents”arxiv:1611.04465)的图相对应的图。如在忆阻器的i-v曲线中所示的,当所施加的读出电压的极性总是以相似的方向施加时,提供电阻值的准确度。因此,可能有必要通过使用两个忆阻器的电导之间的差来表达极性。差分放大器1006(1)的输出电压vdiff1的计算范例可以被描述如下:

vdiff1=k{vin1(g1011-g1021)+vin2(g1012-g1022)}。

值k是增益。

基于忆阻器的对g1011与g1021之间的电导的幅度关系以及忆阻器的对g1012与g1022之间的电导的幅度关系,输出极性能够相对于相似极性的输入被反转。然而,在差分配置中,放大器的数量增加。在所述神经网络电路中,模拟积-和计算电路1001对应于一个计算单元。通过采用多个计算单元来执行多个cnn计算,如在图26中所示的。因此,可能出现针对功耗以及包括dac和adc的模拟电路的面积的困难。

所述实施例采用如下配置。

如在图19中所示的,a/d转换器1007对应于逐次逼近型adc。

还采用内置在逐次逼近型adc中的d/a转换器,以便通过在下一层中的模拟积-和计算电路1001将数据输入到忆阻器交叉开关电路1004。

内置d/a转换器也被用于差分放大器的偏移校正,并且采用内置d/a转换器的配置被内置在逐次逼近型adc中。将描述所述配置的细节。

如在图17中所示的,逐次逼近型a/d转换器1007包括比较器1011、逻辑部1012、内置dac部1013和驱动放大器1014。比较器1011包括跟踪/保持电路1015和比较器1016。差分放大器1006的输出电压被输入到跟踪/保持电路1015。跟踪/保持电路1015将所述输出电压输出到比较器1016的非反相输入端子,除非在预定计时处保持所述输出电压的电平。

比较器1016的反相输入端子经由开关sw1001接收参考电压vref,并且经由开关sw1002与驱动放大器1014的输出端子相连接。差分放大器1006(1)的非反相输入端子和反相输入端子分别经由开关sw1020和sw1022与感测放大器1005(1)和1005(2)的输出端子相连接。所述反相输入端子经由开关sw1021和电阻元件与差分放大器1006(1)的输出端子相连接。非反相输入端子经由开关sw1023和电阻元件与驱动放大器1014的输出端子相连接。

逻辑部1012包括sar逻辑部1017、n位寄存器1018、偏移寄存器1019、锁存加法器1020、relu计算器1021以及锁存/池化计算器1022。逻辑部1012的sar逻辑部1017执行对应于逐次逼近型adc的控制。n位寄存器1018存储由sar逻辑部1017通过a/d转换而获得的结果的n位数据。偏移寄存器1019存储差分放大器1006的偏移电压数据,所述偏移电压数据是由a/d转换器1007进行a/d转换的。

锁存加法器1020锁存被存储在n位寄存器1018中的数据以执行加法。relu计算器1021计算从锁存加法器1020输入的数据。在所述计算中,例如,应用以下表达式的斜坡函数f(x)作为所述神经网络电路的激活函数。

f(x)=max(0,x)...(1)。

锁存/池化计算器1022锁存从relu计算器1021输入的数据以执行池化计算。

n位寄存器1018、偏移寄存器1019以及锁存/池化计算器1022的输出端子分别经由开关sw1010、sw1011和sw1012与内置dac部1013的输入端子相连接。内置dac部1013包括电阻串部1023和解码器1024。电阻串部1023包括串联电阻电路,并且施加所述参考电压中的每个参考电压以用于d/a转换。解码器1024对从逻辑部1012输入的数据进行解码和切换以便适当地施加由电阻串部1023生成的参考电压。从解码器1024输出的d/a转换结果的电压被输入到驱动放大器1014。

a/d转换器1007(2)的内置dac部1013(2)共同使用内置dac部1013(1)的电阻串部1023。类似情况适用于a/d转换器1007(3)和之后的内容(未示出)。

将描述所述实施例的操作。如在图18中所示的,a/d转换器1007执行三种操作模式,包括偏移校正模式、信号读取模式和dac输出模式。

<偏移校正模式>

在所述偏移校正模式中,a/d转换器1007校正在差分放大器1006的输入侧生成的偏移电压。在交叉开关电路1004的输出为无信号的状态下,开关sw1020至sw1023接通以操作差分放大器1006。跟踪/保持电路1015被设置在跟踪状态,并且差分放大器1006的输出电压被输入到比较器1016的非反相输入端子。

开关sw1001接通并且开关sw1002断开,以将参考电压vref输入到比较器1016的反相输入部。开关sw1010接通,开关sw1011和开关sw1012断开,以使驱动放大器1014作为差分放大器1006的偏置缓冲器来操作。sar逻辑部1017提供逐次逼近型adc的操作,并且差分放大器1006的偏移电压被a/d转换。偏移寄存器1019存储经转换的数据。

<信号读取模式>

在所述信号读取模式中,a/d转换器1007执行逐次逼近型adc的操作。开关sw1020至sw1023接通以操作差分放大器1006。开关sw1001断开并且开关sw1002接通,以将驱动放大器1014的输出电压输入到比较器1016的反相输入端子。驱动放大器1014的输出电压对应于dac输出。偏移电压对应于被存储在偏移寄存器1019中的数据。开关sw1010断开,开关sw1011接通,并且开关sw1012断开,以将偏移电压输入到差分放大器1006的反相输入端子。由此,执行所述偏移校正。

跟踪/保持电路1015被设置在跟踪状态以读取差分放大器1006的输出电压。在跟踪/保持电路1015被切换到保持状态之后,并且开关sw1010接通并且开关sw1011断开以执行逐次逼近型adc的操作。当足以执行一次对交叉开关电路1004的读取时,relu计算器1021计算数据并且存储计算结果。

<dac输出模式>

在所述dac输出模式中,a/d转换器1007将所述计算结果输入到下一层中的模拟积-和计算电路1001。开关sw1020至sw1023接通以操作差分放大器1006。开关sw1001接通并且开关sw1002断开以使驱动放大器1014与比较器1016断开连接。开关sw1010和开关sw1011断开,并且开关sw1012接通,以在下一层中的模拟积-和计算电路1001的交叉开关电路1004中在池化过程之后写入数据。在下一层的模拟积-和计算电路1001中,当执行驱动放大器1003的偏移校正时输出参考电压。

在实施例中,所述神经网络电路包括多个计算单元。所述计算单元包括交叉开关电路1004。在交叉开关电路1004中,忆阻器以晶格形状来连接,所述忆阻器中的每个忆阻器是具有双极特性的可变电阻元件。此外,所述计算单元包括:多个d/a转换器1002,其接收数据以将信号电压施加到交叉开关电路1004的多个电压输入端子;多个驱动放大器1003,其接收d/a转换器1002的输出电压,以将信号电压施加到所述多个电压输入端子;多个感测放大器1005,其将在交叉开关电路1004的电流输出端子中流动的电流转变为电压以进行输出;以及多个a/d转换器1007,其对由感测放大器1005转换的所述信号电压进行a/d转换。

a/d转换器1007包括具有电阻串型dac部13的逐次逼近类型。能够切换dac部13,使得交叉开关电路1004的计算结果的信号电压被施加到相对于下一层中的交叉开关电路1004而放置的多个驱动放大器1003。在所述配置中,可以采用内置在前一层中的a/d转换器1007中的dac部1013作为d/a转换器,以便将数据输入到下一层中的计算单元。可以减小针对所述配置的电路规模。

所述神经网络电路包括差分放大器1006,差分放大器1006执行对来自形成一对的两个感测放大器1005的输出的差分计算。a/d转换器1007对差分放大器1006的输出电压进行a/d转换。通过切换开关sw1001与sw1002,能够将参考电压vref施加到差分放大器1006。在信号电压未被施加到交叉开关电路1004的电压输入端子的状态下,从差分放大器1006输出的偏移电压被a/d转换。偏移寄存器1019存储经转换的数据。在所述配置中,可以基于被存储在偏移寄存器1019中的电压数据来执行对差分放大器1006的偏移校正。

(第六实施例)

在下文中,与第五实施例相似的部分将由相同的附图标记表示,并且省略对其的解释。将描述与第五实施例的不同之处。如在图22中示意性所示,第六实施例的模拟积-和计算电路1031例如包括在公共d/a转换器1002与公共a/d转换器1007之间的九个交叉开关电路1004。d/a转换器1002的输出端子与交叉开关电路1004的所有电压输入端子的电压输入端子相连接。a/d转换器1007的输入端子与交叉开关电路1004的电流输出端子中的所有电流输出端子相连接。

模拟积-和计算电路1031组合多个交叉开关电路1004的输出结果。然后,模拟积-和计算电路1031选择多个交叉开关电路1004中的一个交叉开关电路。当所选择的交叉开关电路1004处于第一阶段时,独立d/a转换器1002输入电压信号。当所选择的交叉开关电路1004在第二层中时,a/d转换器1007的内置dac部1013输入电压信号。

a/d转换器1007对与交叉开关电路1004的计算结果相对应的输出信号进行a/d转换。经转换的输出信号被存储在n位寄存器1018中。接下来,交叉开关电路1004被切换到另一个,并且信号被类似地输入。锁存加法器1020将输出数据相加。上述过程被重复多次。在所述过程之后,relu计算器1021和锁存/池化计算器1022执行所述计算,最终的计算结果被存储。

在第六实施例中,模拟积-和计算电路1031包括多个交叉开关电路1004。选择交叉开关电路1004中的一个交叉开关电路。输入侧的d/a转换器1002或内置dac部1013施加信号电压。a/d转换器1007对输出信号电压进行a/d转换。a/d转换器1007的锁存加法器1020累计每个交叉开关电路1004的计算结果。在所述配置中,即使在所述神经网络电路通过采用本公开的多个交叉开关电路1004来执行大规模计算的情况下,也可以大大减小电路面积。

(第七实施例)

第七实施例示出了用于执行诸如第六实施例的大规模计算的另一种配置。在第六实施例中,交叉开关电路1004中的每个交叉开关电路的积-和计算结果在a/d转换之后被加到数字区域中。在由该重复计算延长信号处理时间方面可能存在困难。

第七实施例额外地包括在内置dac部1013中添加的解码器1024(a),以及与解码器1024(a)相连接的驱动放大器1014(a),如在图23中所示的。可以增加内置dac部1013的输出端子的数量。在图25中,例如,d/a转换器1002(1)的输出端子的数量是三倍的,并且电压与交叉开关电路1004(1)、1004(2)和1004(3)并联地施加。

如在图24中所示的,每个感测放大器1005的输出端子经由电阻元件与差分放大器1006的输入侧相连接。因此,差分放大器1006还用作模拟加法电路。图中的vout1对应于例如图25中的交叉开关电路1004(1a)的输出信号。vout1a对应于图25中的交叉开关电路1004(1a)的输出信号。这些vout被加到差分放大器1006的输入侧。a/d转换器1007(1)对相加结果进行a/d转换。由此,提供了模拟积-和计算电路1041。

类似于第五实施例和第六实施例,a/d转换器1007(1)、1007(2)和1007(3)的输出数据由内置dac部1013进行d/a转换。经转换的数据被输入到下一层中的模拟积-和计算电路1041的交叉开关电路1004。在最终层中的模拟积-和计算电路1041中的计算结果数据被加到数字区域中。

在第七实施例中,模拟积-和计算电路1041包括多个交叉开关电路1004,执行对来自多个交叉开关电路1004的输出信号的相加,使差分放大器1006用作模拟加法电路,并且将相加结果输入到a/d转换器1007以执行a/d转换。在最终层的模拟积-和计算电路1041中,由a/d转换器1007进行a/d转换的数据被加到数字区域中。由于模拟信号相加和数字信号相加的组合,可以在优化计算处理时间的同时提供具有大规模的计算单元。

(第八实施例)

所述激活函数可以是斜坡函数之外的函数。

根据本公开的另一方面,一种神经网络电路,包括:存储部中的至少一个存储部,其可以包括以晶格形状连接的忆阻器,所述忆阻器中的每个忆阻器是可变电阻元件;多个d/a转换器,其可以接收数据以将信号电压施加到所述存储部的多个电压输入端子;多个驱动放大器,其可以被连接在所述多个d/a转换器与所述多个电压输入端子之间;多个i/v转换放大器,其可以与所述存储部的电流输出端子相连接,并且将在所述电流输出端子中流动的电流转换为电压以输出电压;以及多个计算单元,其可以包括多个a/d转换器,所述a/d转换器可以对由所述多个i/v转换放大器转换的信号电压进行a/d转换。

所述a/d转换器可以具有逐次逼近型转换器,所述逐次逼近型转换器可以包括作为内置d/a转换器的电阻串型d/a转换器。所述内置d/a转换器可以进行切换,以便将由所述存储部执行的计算结果的信号电压施加到与下一层中的计算单元的存储部对应地布置的多个驱动放大器。在所述配置中,可以采用内置在前一层中的逐次逼近型a/d转换器中的内置d/a转换器,作为用于将数据输入到下一层中连续计算单元之间的计算单元的d/a转换器。对于采用所述内置d/a转换器的配置,可以减小电路规模。

此外,根据本公开的另一方面,所述神经网络电路还可以包括:差分放大器,其可以对形成一对的两个i/v转换放大器的输出执行差分计算;以及偏移寄存器,其可以存储可以由a/d转换器进行a/d转换的数据。所述a/d转换器可以对所述差分放大器的输出电压进行a/d转换。所述内置d/a转换器的输出端子可以切换以将参考电压施加到所述差分放大器。所述差分放大器可以在信号电压不被施加到所述存储部的所述电压输入端子的状态下输出偏移电压。所述a/d转换器可以对偏移电压进行a/d转换。在所述配置中,可以基于被存储在偏移寄存器中的电压数据来执行对所述差分放大器的偏移校正。

所述神经网络电路可以包括多个层。所述多个层中的每层可以包括所述存储部、所述计算单元等。

尽管已经根据实施例进行了本公开,但是应当理解,本公开并不限于这样的实施例和结构。本公开涵盖各种修改范例和等价布置。此外,各种组合和构造以及包括一个或多于一个或少于一个元件的其他组合和构造可以包含于本公开的范围和主旨内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1