一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模拟神经元的计算高效实施方式的制作方法

2021-12-07 21:28:00 来源:中国专利 TAG:


1.本文描述的主题涉及可以在神经网络的多个层中重复使用的模拟神经元的计算高效实施方式。


背景技术:

2.人工神经网络(本文简称为神经网络)是用于机器学习的计算系统。神经网络可以基于被称为神经元的连接节点的层,该神经元可以宽松地建模生物大脑中的神经元。每层都可以有多个神经元。不同层之间的神经元经由连接件相连接,该连接件对应于生物大脑中的突触。第一层中的一个神经元可以向另一层中的另一个神经元经由这两个神经元之间的连接件发送信号。连接件上发送的信号可以是实数。另一层的另一个神经元可以处理接收到的信号(即实数),然后将处理的信号发送到另外的神经元。每个神经元的输出可以通过基于该神经元的输入的一些非线性函数来计算。每个连接件都可以具有权重,该权重可以在处理信号和计算输出之前调整信号。
3.常规地,这样的神经网络通常以数字方式实施。换句话说,尽管模拟计算可能比数字计算更高效,但是神经网络通常不以模拟形式实施,如下文所述。神经网络具有许多层,每层都需要许多神经元。传统的模拟神经网络需要为神经网络中的每个神经元提供单独的电子组件。当层数增加时,实施模拟神经网络所需的电子组件的数量也增加,这继而可能需要大量的计算需求,包括功率、空间、处理和存储需求。因此,模拟神经网络是罕见的,且传统上当存在时是无效的。


技术实现要素:

4.一方面,描述了一种设备,该设备包括模拟神经网络、数字控制器和存储器装置。模拟神经网络可以包括具有神经元的第一层。神经元可以被重复使用以形成模拟神经网络的第二层。每个神经元都可以具有输入。数字控制器可以耦合到模拟神经网络以为输入的每个输入提供权重。存储器装置可以耦合到数字控制器,并且可以存储每个输入的权重。
5.在一些实施方式中,可以存在一个或多个以下特征。例如,该设备可以包括耦合到模拟神经网络以接收模拟神经网络的模拟输出的模数转换器。模数转换器可以将模拟神经网络的模拟输出转换成与数字控制器兼容的数字输出。模数转换器可以耦合到数字控制器,以将数字输出发送到数字控制器。
6.每个神经元的输出可以包括:来自耦合到模拟神经网络的传感器的模拟输入中的模拟输入;以及每个神经元的输出。可以将模拟输入输入到神经网络的第一层。模拟输入的计数可以等于神经元的计数。模拟输入可以被多路复用以形成并行信号的集合(例如,并行信号的六个集合,其中每个集合包括八个信号)。可以由模拟神经网络顺序处理并行信号的集合中的每个集合。
7.每个神经元可以包括第一电荷泵、第一运算放大器、第二电荷泵和第二运算放大器。第一电荷泵可以耦合到第一运算放大器。第二电荷泵可以耦合到第二运算放大器。第一
运算放大器可操作为缓冲器以当神经元与第一层相关联时保存神经元的输出,而第二运算放大器可操作为积分器以当神经元被重复使用作第二层的一部分时计算神经元的输出。第二运算放大器可操作来切换为作为另一个缓冲器操作,以当神经元被重复使用作为第二层的一部分时保存神经元的输出,而第一运算放大器可操作来切换为作为另一个积分器操作,以在神经元被进一步重复使用作为神经网络的第三层的一部分时计算神经元的输出。
8.第一运算放大器和第二运算放大器中的每一者都可以与被配置为执行偏置补偿的电子组件耦合。第一运算放大器和第二运算放大器中的每一者都可以与被配置为放大模拟神经网络的输出的电子组件耦合。每个神经元还可以包括削波电路,该削波电路被配置为削波第一运算放大器和第二运算放大器中的一者的输出,以将输出保持在电压值的预先确定的范围内。
9.神经元中的每个神经元可以具有包括开关的电子电路。开关中每个开关的断开和闭合可以由数字控制器控制。
10.另一方面,描述了一种用于神经网络的模拟神经元的电子电路的设备。这种设备可以包括:第一运算放大器,被配置为充当缓冲器以当神经元与神经网络的第一层相关联时保存神经元的输出;以及第二运算放大器,被配置为充当积分器以当神经元被重复使用作为神经网络的第二层的一部分时计算神经元的输出。
11.一些实施方式包括以下一个或多个特征。例如,该设备可以包括第一电荷泵和第二电荷泵。第一电荷泵可以耦合到第一运算放大器。第一电荷泵可以改变第一运算放大器的输入处的电压。第二电荷泵可以耦合到第二运算放大器。第二电荷泵可以被配置为改变第二运算放大器的输入处的电压。该设备还可以包括削波电路,该削波电路可以削波第一运算放大器和第二运算放大器中的一者的输出,以将该输出保持在电压值的预先确定的范围内。
12.第二运算放大器可以被配置为切换为充当另一个缓冲器,以当神经元被重复使用作为第二层的一部分时保存神经元的输出。第一运算放大器可以被配置为切换到充当另一个积分器,以当神经元被进一步重复使用作为神经网络的第三层的一部分时计算神经元的输出。第一运算放大器和第二运算放大器中的每一者都可以与要执行偏置补偿的电子组件耦合。第一运算放大器和第二运算放大器中的每一者都可以与被配置为放大模拟神经网络的输出的电子组件耦合。
13.一些实施方式提供了以下一个或多个优点。神经元在该神经网络内的重复使用可以使该神经网络的电子电路内使用的电子组件的数量最小化,从而最小化计算需求的数量,包括功率、空间、处理和存储需求。此外,该神经网络可以获得非常高的并行性,因为所有神经元可以同时工作。此外,因为该神经网络将计算执行为简单的模拟操作,所以该神经网络可以快速处理数据。此外,因为该神经网络处理数据高效,所以神经元可以需要较低的功率及诸如处理能力、存储器等的其他计算资源。
14.下面阐述了一个或多个实施方式的细节。根据详细的说明书、附图和权利要求中,其他特征和优点将变得显而易见。
附图说明
15.图1示出了具有模拟神经网络的电子芯片的示例。
16.图2示出了神经网络的层的部分。
17.图3示出了在神经网络内形成神经元的电子电路的示例。
18.图4示出了每个神经元的数字控制器。
19.图5示出了说明数字控制器的功能的时序图。
20.图6示出了用于为由电子电路表示的一个神经元计算两层的另一时序图。
21.图7示出了在神经元的电子电路内的包括电荷泵和积分器的电路部分。
22.图8示出了具有向图7的电路部分附加以执行偏置补偿的电子组件附加件的电子电路。
23.图9示出了具有向图8的电路部分附加以执行输出放大的电子组件附加件的电子电路。
24.图10示出了在神经元的电子电路内执行输出电压的削波的电路部分。
25.图11示出了执行输出电压的削波的另一电路部分。
具体实施方式
26.图1示出了电子芯片102,其具有包括神经元的模拟神经网络104、可以数字控制模拟神经网络104的电子电路的数字控制器106、可以将每个神经元的模拟输出(例如,输出电压)转换成与数字控制器106兼容的数字格式的模数转换器(analog

to

digital converter,adc)108、以及可以为每个神经元的每个输入存储对应权重的存储器装置110。
27.神经网络104可以包括几个层,包括输入层、隐藏层和输出层。神经网络104的输入层可以具有模拟传感器输入112。模拟神经网络104可以将那些输入112中的数据分类成各种类别,以便执行机器学习或人工智能。神经网络104的输入层中的每个神经元可以接收对应的单个模拟传感器输入112,如下图2所述。因此,模拟传感器输入112的数量可以与输入层中神经元的数量相同。在所示的示例中,输入层可以具有49个神经元,因此模拟传感器输入112的数量也可以是49个。神经网络104中每个神经元的电路在下面由图2和图3描述。
28.数字控制器106可以控制神经网络104的每个神经元的电路(如图3所示)。数字控制器106可以通过控制电路中开关的断开和闭合来控制该电路,如下面图4

图6进一步描述的。神经元的电路的各个方面——诸如电荷泵、积分、乘法和削波——在下面由图7

图11描述。为了控制电路,数字控制器106还可以执行例如以下任务:经由诸如集成电路间(inter

integrated circuit,i2c)协议的通信协议与电子芯片102外部的装置通信,该协议是用于装置之间通信的2线制总线协议;激活(例如,启动)电子芯片102;为每个神经元的每个输入分配权重并将其提供给该神经元;并且使用通信协议将权重值写入存储器装置110中。
29.adc 108可以接收每个神经元的模拟输出(其可以是电压,如图3中的电子电路所示),并且可以将模拟输出转换成与数字控制器106兼容的数字格式。数字控制器106可以保存输出。由数字控制器106存储的数字输出可以转换回模拟输出,该模拟输出然后可以作为输入提供给现在正被用作下一层神经元的相同神经元。因为相同神经元可以用于执行多层的计算(例如,电荷泵、积分、乘法和削波),所以神经元被高效地重复使用,从而有利地最小化了用于创建神经网络104的模拟组件的使用。
30.神经网络104外部的存储器装置110,可以为神经网络104中每个神经元的每个输入存储对应的权重。权重在存储器装置中而不在电路的电子组件中的存储可以有利地最小
化用于创建神经网络104的模拟组件的使用。在神经网络104中,每个神经元(例如,特定神经元)的输出可以与每个神经元(即,每个神经元,包括该特定神经元)的输入相连接,如图2所示。由于每个神经元也具有一个模拟传感器输入112作为输入,所示的具有49个神经元的示例具有50个输入(包括所有49个神经元的输出和1个模拟传感器输入112)。如果模拟神经网络104具有50层神经元(如图所示,其中的一层具有49个神经元),则存储器装置110需要空间来存储50层
×
每层50个权重=2500个权重。如果每个权重需要4比特的存储空间以供存储,则在该示例中,存储器装置110必须具有2500个权重
×
每个权重4比特=10千比特=1.25千字节的最小大小。尽管在该示例中,模拟神经网络104具有49个神经元,模拟神经网络104具有50层神经元,并且每个权重需要4比特的存储器空间以供存储,但是在其他示例中,模拟神经网络104可以具有任何其他数量的神经元,模拟神经网络104可以具有任何其他数量的层,和/或每个权重可以具有用于存储这种权重的任何其他存储器要求。
31.图中所示的模拟神经网络104、数字控制器106、模数转换器108和存储器装置110之间的箭头指示电子芯片102的那些电子组件之间的电连接。
32.图2示出了神经网络104的层的部分202,示出了每个神经元204/206接收(a)一个模拟传感器输入和(b)每个神经元204和206的输出作为输入。神经元204的模拟传感器输入是208,它是图1所示输入112的一部分。神经元206的模拟传感器输入是210,它也是图1所示输入112的一部分。
33.图3示出了在神经网络104内形成神经元303的电子电路302。神经元303还使用图2中的附图标记204和206来指代。神经元303的电子电路302可以包括两个积分器304、两个电荷泵306和削波电路308。电子电路302的功能可以通过开关的激活和去激活来控制,所有这些都以附图中的参考符号s开始。开关可以使用下面由图4描述的控制器来控制。解释这种控制器和开关的功能的时序图在下面由图5描述。神经元303的时序图的另一个示例在下面由图6描述。电子电路302的一部分(包括电荷泵306和积分器304的一部分)在下面由图7描述,以解释神经元的功能。包括电荷泵306和积分器304的另一部分的电子电路302的另一部分在下面由图8描述,以解释由电子电路302获得的偏置补偿。电子电路302的另一部分(包括电荷泵306和积分器304的又一部分)下面由图9描述,以描述由电路302获得的输出放大。削波电路308在下面由图10描述,以解释输出电压的削波。削波电路308的替代实施方式在下面由图11描述。
34.为了缓冲输出(即,保存神经元303的结果vout,直到这样的输出作为输入被提供给神经元303,随后该神经元被重复使用于神经网络104的另一层),神经元303的架构被设计成使得每个神经元303包括两个积分器304(具体地,304a和304b)和两个电荷泵306(具体地,306a和306b),如图所示。当第一积分器304a充当输出缓冲器时(即,当神经元303例如第一次用作神经网络104的第一层内的神经元303时,保持由神经元303生成的输出vout的值恒定),第二积分器304b计算出下一个输出(即,当神经元303被重复使用作为——例如,第二次用作——神经网络104的第二(即随后层)内的神经元时,神经元303的vout)。随后,第二积分器304b被切换为充当缓冲器以保存其计算的输出,并且第一积分器304a被切换为计算下一个输出。
35.对于充当缓冲器的积分器304,积分器304的输出通过控制开关s_12_1和s_12_2连接到神经元303的输出,该开关s_12_1和s_12_2继而保持输出vout恒定。更具体地,如果运
算放大器op1处于缓冲模式,则开关s_12_1闭合,且开关s_12_2断开。因此,神经元的输出vout是运算放大器op1的输出,该运算放大器op1连接到每个神经元的一个输入。运算放大器op2然后计算(即,积分、相乘和削波)下一个输出值(例如,当神经元被重复使用于例如神经网络104的随后层时的神经元的vout)。随后,op2切换为作为缓冲器,并且运算放大器op2的输出值通过闭合开关s_12_2和断开开关s_12_1连接到输出。运算放大器op1此时进行计算(积分、乘法和削波)。
36.在神经元303的替代架构中,电子电路302可以包括单个积分器电路(而不是附图中所示的两个)和一个具有采样电容器的附加缓冲电路。然而,至少在一些情况下,这种替代电子电路可能不适用,因为可能会引入不容易消除的额外偏置误差。
37.因为神经网络104是模拟神经网络,所以数据通过网络104传播所需的计算至少部分作为模拟计算完成,而不需要数字处理器。与使用数字神经网络相比,这可以提供以下优点:(a)因为所有神经元303可以同时操作而并行性非常高,(b)因为计算是简单的模拟操作而执行快速,以及(c)因为高效数据处理而功耗低。
38.图4示出了用于每个神经元303的数字控制器402,以控制在神经网络104内形成神经元303的电子电路302中的开关。神经网络104的层中的每个神经元303可以具有单独的数字控制器402,该数字控制器402为该神经元303的所有开关生成控制信号,并且这种数字控制器402可以是数字控制器106的一部分。然而,在替代实施方式中,一层的所有神经元可以耦合到相同数字控制器402,该数字控制器402可以与数字控制器106相同。例如,对于图2中的两个神经元204和206,两个神经元中的每一个都具有3个模拟输入——第一输入是模拟传感器输入112,第二输入是该神经元的输出,第三输入是另一个神经元的输出—(n=3),以及8个数字输入,该8个数字输入包括触发(toggle)信号404、时钟信号406、每个模拟传感器输入112的pulse_en信号408以及每个模拟传感器输入112的符号信号410。基于数字输入,数字控制器402可以激活和/或去激活一个或多个开关(在图中示出在数字控制器402的右侧)。下面通过图5的时序图来阐明由数字控制器402响应于输入来激活和去激活开关。
39.图5示出了时序图502,其示出了数字控制器402控制形成神经元303的电子电路302中的开关的功能。
40.触发输入404可以导致运算放大器op1和运算放大器op2的功能的触发——即,首先,运算放大器op1被设置为积分模式,并且运算放大器op2用于缓冲先前计算的输出;并且随着下一个触发脉冲,运算放大器op2进入积分模式,运算放大器op1进入缓冲模式;并且这种触发随着随后的触发阶段而继续。在触发信号404为高位期间,下一次要用作积分器的运算放大器处于复位模式,即,这种运算放大器的输出被设置为0伏。
41.时钟线406上的时钟脉冲的数量可以定义最大可能施加的权重。因此,在所示的示例中,最大可能权重为7。pulse_en信号408的脉冲宽度由权重定义。例如,如果数字控制器402指示“神经元1”的输入1的权重为3,则pulse_en_1信号将在3个时钟周期内为高位,这使得电荷被3次泵浦到积分电容器c_int中。
42.数字控制器402可以用触发信号404的下降沿设置符号信号410。如果符号脉冲410为1,则该值为负;并且如果符号脉冲410为0,则该值为正。符号比特410可以控制(例如,通过确定)电荷泵电容器c_cp是以输入电压预充电(其中开关s1和s2闭合,且开关s3和s4断开)还是以0伏预充电(其中开关s1和s4闭合,且开关s2和s3断开)。
43.在所示的示例中,第一模拟输入的权重为

3(其由3个脉冲和符号=1表示),第二模拟输入的权重为 6(其由6个脉冲和符号=0表示),第三模拟输入的权重为

5(其由5个脉冲和符号=1表示)。
44.在乘法阶段之后,当前一层的输出稳定时(即前一层的输出变得稳定),积分阶段开始。这意味着只要pulse_en信号408为高,则电荷泵306将电荷脉冲到积分电容器304中。例如,在输入1处,符号为1,这意味着电容器c_cp以0伏预充电(其中开关s1和s4闭合,且开关s2和s3断开)。在时钟信号406为高位期间,开关s1和s4断开,且开关s2和s3闭合,这使得电荷转移到积分电容器c_int中,这导致积分器输出电压vout降低。在下一个低位阶段,电荷泵电容器c_cp再次以0伏充电。只要pulse_en1信号408为高位,就重复这一过程。由数字控制器106生成pulse_en信号408。
45.图6示出了用于为由电子电路302表示的一个神经元计算两层的另一时序图602。如本文所述,层的计算是指对所有输入信号的积分、将积分的信号与其权重相乘、以及如果结果超过正或负参考电压则对结果进行削波。在第一层中,运算放大器op1可以处于积分模式,运算放大器op2可以处于缓冲模式。
46.在复位阶段,运算放大器op1的积分电容器c_int1和乘法电容器c_mult1以偏置电压来充电。这可以通过闭合开关s5_1、s7_1和s9_1来实现。
47.复位阶段后,运算放大器op2可以切换到乘法模式,方法是将积分电容器c_int2与输出断开,并将其连接到参考电压,同时将c_mult2连接到输出。这是通过断开开关s6_2且闭合开关s7_2、s8_2和s12_2来完成的。同时,削波电路308被激活,这是通过闭合开关s10_2和s11_2来完成的,以便如果输出超过正或负削波参考时对该输出进行削波。
48.当乘法阶段结束时,运算放大器op1的积分阶段和运算放大器op2的缓冲阶段开始。取决于n个输入中每一个的权重的符号,可以操纵开关s1_1、s2_1、s3_1和s4_1将输入相关电荷推送到积分电容器c_int1中或从该积分电容器c_int1中提出。权重可以指示施加在每个输入上的脉冲的数量。
49.完成积分阶段后,运算放大器op2进入复位模式,这意味着运算放大器op2的积分电容器c_int2被放电,因此它可以承担下一层的积分功能。然后运算放大器op1的乘法阶段开始。通过断开开关s6_1并闭合开关s7_1和s8_1,存储在积分电容器c_int1中的电荷可以被转移到乘法电容器c_mult1中。这将输出乘以系数c_int_1/c_mult_1。同样,在乘法阶段期间,通过闭合开关s10_1和s11_1来激活削波电路308。然后运算放大器op1进入缓冲模式,运算放大器op2开始积分。
50.当完成积分时,运算放大器op1再次改变为复位模式,以此类推。
51.图7示出了神经元的电子电路302内的电路部分702,其包括电荷泵306和(使用运算放大器形成的)积分器704。积分器704是图3所示的积分器304a的一部分。积分器304a的其他部分(其不是电路704的一部分)被添加到图8和图9中的积分器704(下面讨论),以描述积分器304a的其他功能。
52.积分器704对由电荷泵306转移的电荷进行积分(例如求和)。电荷泵306是直流(dc)到dc转换器,其使用用于高能电荷存储的电容器c_cp来升高或降低电压。积分器704可以是电流积分器,其是执行电流的时间积分的电子装置,从而测量总电荷。在一些实施方式中,这里描述的任何积分器(例如,积分器704或304)也可以被称为乘法器或加法器。
53.在电荷泵电路306中,vref是指参考电压,vin是指输入电压,c_cp是指电荷泵电容器,v_cp是指电荷泵电容器c_cp两端的电压差,并且s1、s2、s3和s4是指开关。在积分器电路704中,op1是指通过将其与积分器电路704的其他电气组件相结合而被用作积分器的运算放大器,vout是指输出电压,c_int是指积分电容器,vref是指参考电压,s5是指开关。
54.积分电容器c_int被配置为存储使用电荷泵306累积的电荷。积分电容器c_int可以通过闭合开关s5放电(例如,复位)。取决于权重的符号410,在执行积分的时间(即积分周期)期间,可以向积分电容器c_int添加或减去电荷——即通过对积分电容器充电或放电。为了向积分电容器c_int增加电荷,开关s1和s4闭合,且开关s2和s3断开,从而使得电荷泵电容器c_cp初始放电。
55.随后,开关s1和s4断开,且开关s2和s3闭合,使得电容器c_cp的一侧连接到运算放大器op1的负输入,且电荷泵电容器c_cp的另一侧连接到神经元输入vin。此外,运算放大器204的负输入增加,这导致积分器输出电压vout的变化,并且导致从神经元输入vin通过电荷泵电容器c_cp和积分电容器c_int的电流的对应变化。那么电荷泵电容器c_cp两端的电压的值为v_cp=

vin,并且电荷为q_cp=

vin*c_cp。这意味着q=vin*cp的电荷已经被转移并添加到积分电容器c_int中。
56.对于从积分电容器c_int中减去电荷,过程以另一种方式来操作。首先,开关s1和s2闭合,且开关s3和s4断开,从而用q_cp=

vin*c_cp对电荷泵电容器c_cp进行预充电。随后,开关s1和s2断开,且开关s3和s4闭合,导致电荷泵电容器c_cp连接在运算放大器op1的负输入与运算放大器op1的正输入vref之间,这导致电荷泵电容器c_cp放电,并将q=

vin*c_cp的电荷转移到积分电容器c_int中。
57.因为神经元有许多输入,所以积分电容器c_int的电容必须比电荷泵电容器c_cp大得多,以避免积分电容器c_int中的电荷溢出。这意味着输出电压vout仅针对一个输入的每个电荷泵脉冲的vin*c_cp/c_int而变化。使用电荷泵306的脉冲来施加各个输入的权重,使得权重等于电荷泵脉冲的数量。关于c_int的量化值相对于c_cp的量化值的示例,参见下面关于图9的讨论。
58.图8示出了具有向图7的电路部分702附加以执行偏置补偿的电子组件附加件804的电子电路802。开关s5闭合以复位积分电容器c_int,如上面图7所述。在这种复位期间,运算放大器op1的输出vout稳定至偏置电压。当开关s6断开且开关s7闭合时,积分电容器c_int的一侧连接到参考电压vref,另一侧经由闭合的开关s5连接到运算放大器op1的输出vout。因此,偏置电压存储在积分电容器c_int中。随后,复位开关s5断开,开关s6闭合,且开关s7断开,所有这些导致积分电容器c_int的一侧连接到运算放大器op1的输出vout。此时,存储在c_int两端的偏置电压迫使输出vout低于运算放大器op1的负输入,从而在输出处补偿偏置电压。
59.每个神经元可以具有“n”个输入vin,如图所示,其中每个输入vin可以向对应于该输入的积分电容器c_int添加电荷或从该积分电容器减去电荷。为了节省面积和减少必要的控制信号的数量,可以多路复用n个输入vin。因此,只有少量输入vin以及电荷泵306可以并行应用。“n”个输入vin可以通过使用一个或多个多路复用器来步进。
60.图9示出了具有向图8的电路部分802附加以执行输出放大的电子组件附加件904的电子电路902。
61.所有输入vin可以部分并行施加,而不是完全并行施加,并且输入信号是多路复用的。例如,如果电荷泵306的数量是8个(即,n=8),神经元的数量是47个,则每个神经元具有48个输入,该48个输入包括一个模拟传感器输入112和47个神经元输出(即,来自47个神经元中的每一个的一个输出)。这些48个输入可以多路复用成6乘8个并行信号。因此,输入被顺序递送到6个一组的8个电荷泵306。因此,在积分期间,积分计算花费的时间是并行处理所有输入的6倍(因为首先处理输入1

8,然后处理输入9

16,依此类推)。
62.由于这种串行(即顺序实施方式),因而积分电容器c_int与电荷泵电容器c_cp之间的比值必须非常高,以避免积分器运行进入轨道(rail)(这会导致输出的削波不适当)。现在用示例来描述积分器运行进入轨道的问题(即输出的削波不适当)。例如,如果输入1

8具有高正的输入值以及施加的高正权重,使得输入*权重之和为2.5v而电源仅为1.8v,则输出应削波为1.8v。如果在下一组输入9

16之后,积分器输出(即输入*权重之和)需要降低0.3v,那么计算的输出不是2.2v的准确值(比来自2.5v的先前组的未削波输出低了0.3v),而是1.5v(比来自1.8v的先前组的削波输出低了0.3v),这显然是不准确的。为了避免这样的问题,例如,c_int/c_cp的比率可以是48/1,以便给出足够的余量来获得准确的结果。还要注意的是,该比率可以随着输入组的数量以及每个输入组中的输入的数量而改变。在其中所有48个输入形成单个组的另一个示例中,使得所有输入并行并且没有多路复用,那么c_int/c_cp的比率可以是5/1或10/1。
63.当输入被划分为6组8个输入时,48/1的c_int/c_cp比值表示一个输入的一个脉冲除以因子48。例如,在最大权重为7的情况下,电压为vin的该输入导致最大输出为7/48*vin。因为输入的阻尼很高,所以输出vout需要被放大。如下所述,附加的电子组件附加件904能够实现这种放大。
64.当已经处理所有输入vin后,开关s6断开,且开关s7闭合,这将积分电容器c_int连接到参考电压。
65.开关s8闭合,且开关s9保持断开。然后,积分电容器c_int中的所有累积的电荷被转移到c_mult电容器,这导致输出电压vout增加了c_int/c_mult的因子。c_int/c_mult的比值可以是48/7,这意味着7/48*vin的最大输入乘以48/7,结果是在最大权重时7/48*vin*48/7=1*vin。请注意,因为c_mult电容比c_int小得多,所以电压vout的增加——从而放大——可以很大。
66.图10示出了在神经元的电子电路302内的电路部分1002,其执行输出电压vout的削波。电路部分1002包括削波电路308的变型。削波器(或削波电路)1002是被设计成防止输出电压超过由正参考电压ref_p和负参考电压ref_n所定义的范围的电子电路。在此,比较器comp1和comp2将积分器304的输出电压vout与正参考电压ref_p和负参考电压ref_n进行比较。比较器是比较两个电压或电流并输出指示较大电压(或替代地,在其他实施方式中,较大电流)的数字信号的装置。正参考电压ref_p和负参考电压ref_n代表削波函数的边界。在积分或乘法阶段之后,当积分器304的输出稳定时(即,当输出稳定时),out_en引脚上的数字脉冲基于比较器comp1和comp2的比较的结果来选择要闭合的特定输出开关。如果积分器304的输出高于ref_p,则comp1的输出将为高位,并且相应地,到ref_p的开关将闭合。如果积分器304的输出小于ref_n,则比较器comp2的输出为高,因此到ref_n的开关将被闭合。如果积分器输出在参考电压ref_p和ref_n之间,则比较器comp1和comp2两者的输出都为0,
因此到积分器304的输出的开关被闭合。
67.图11示出了执行输出电压的削波的电路部分1102,其是图10的电路部分1002的替代。削波电路1102将输出电压削波在特定的正电压和负电压处。这种削波可以生成神经元的激活函数。这还用于将用作下一个环路的输入信号的输出信号保持为低位,以便进一步增加神经元的余量。削波电路1102包括两个比较器comp1和comp2,其中正引脚连接到输出电压vout,并且其中负引脚连接到正参考电压ref_p和负参考电压ref_n。比较器comp1和comp2的输出经由二极管d连接到放大器的负输入。如果神经元输出高于正参考电压,则comp1的输出变高,并通过二极管对电容器c_mult充电,直到输出电压vout等于正参考电压ref_p。对于负削波,其以与比较器comp2相同或相似的方式操作。
68.这里描述的主题的各种实施方式可以在数字电子电路、集成电路、专门设计的专用集成电路(asic)、计算机硬件、固件、软件和/或它们的组合中实施。这些不同的实施方式可以在一个或多个计算机程序中实施。这些计算机程序可以在可编程系统上执行和/或解释。可编程系统可以包括至少一个可编程处理器,其可以具有专用或通用目的。该至少一个可编程处理器可以耦合到存储系统、至少一个输入装置和至少一个输出装置。至少一个可编程处理器可以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并且可以向存储系统、至少一个输入装置和至少一个输出装置发送数据和指令。
69.这些计算机程序(也称为程序、软件、软件应用或代码)可以包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实施。如这里所使用的,术语“机器可读介质”可以指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、设备和/或装置(例如,磁盘、光学盘、存储器、可编程逻辑装置(pld)),包括可以接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”可以是指用于向可编程处理器提供机器指令和/或数据的任何信号。
70.尽管上面已经详细描述了各种实施方式,但是其他修改也是可能的。例如,在附图中描述的和在此描述的逻辑流程不需要所示的特定次序或顺序次序来达到期望的结果。其他实施方式在以下权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献