【专利下载】【专利代理】【商标和版权申请】Tel:18215660330

基于振荡器的神经网络装置的制作方法

专利查询2022-5-9  203

【专利下载】【专利代理】【商标和版权申请】Tel:18215660330


本申请要求于2019年9月23日提交的、题为“基于振荡器的神经网络装置(Oscillator Based Neural Network Apparatus)”的美国专利申请NO.16/579,765的优先权权益,该美国专利申请通过引用以其整体并入本文。

背景技术

根据摩尔定律,晶体管的缩放在过去五十年里推动了传统的布尔计算的空前进步。最近,与人工智能(artificial intelligence,AI)和机器学习(machine learning,ML)有关的应用消耗了更多的计算份额。对于这些,布尔计算的效率较低。这刺激了对神经计算的研究,其涵盖了一个广泛的研究领域;从可以在传统的布尔硬件例如CPU(中央处理单元)或GPU(图形处理器单元)上编程的神经网络算法,到在专门的硬件——特定应用引擎——中实现的神经网络电路。

神经网络是一种计算系统,它通过以可配置电路参数处理连续信号来执行推理并且学习数据中的模式,通常无需任务特定的编程。例如,神经网络可以学习从图片或图像中识别某个物体。神经网络包括被称为“神经元”的处理单元的集合,它们经由通常被称为“突触”的连接来与其他神经元通信。神经网络通常具有几千个到几百万个单元和数百万个连接。

神经网络的操作关键首先取决于学习,即,改变权重以实现期望的识别的过程。有两种类型的学习:有监督的和无监督的。在有监督的学习中,对于某些类别的输入,网络的期望输出是已知的。在无监督的学习中,网络收敛到一组输出,每个输出对应于一类输入。当前,对于模拟、细胞元或振荡器神经网络,还没有高效的无监督的学习过程。

附图说明

通过以下给出的详细描述并且通过本公开的各种实施例的附图,将更充分理解本公开的实施例,然而,详细描述和附图不应当被理解为将本公开限制到特定实施例,而只是用于说明和理解的目的。

图1图示了根据一些实施例的利用无监督的学习装置来训练权重的高级别一般神经网络方案。

图2图示了根据一些实施例的利用使用振荡器的无监督的学习装置来训练模拟权重的神经网络方案。

图3图示了根据一些实施例的利用使用振荡器的无监督的学习装置来训练数字权重的神经网络方案。

图4图示了根据一些实施例的用于图2和图3的装置中的具有相位频率检测器和电荷泵的电路。

图5图示了根据一些实施例的用于图2和图3的装置中的电压缓冲器。

图6图示了根据一些实施例的用于图2的装置中的模拟加法器或减法器。

图7图示了根据本公开的一些实施例的具有神经网络方案的智能设备或者计算机系统或者SoC(片上系统),该神经网络方案的权重是利用使用振荡器的无监督的学习装置来训练的。

具体实施方式

一些实施例描述了一种在振荡器神经网络中使用无监督的学习的神经网络方案。根据各种实施例,通过与来自频率检测器的输出成比例地改变权重来发生训练。输入和初始权重被分割成多个输入和多个权重。在一些实施例中,当每个输入和相应的权重是模拟性质的时,那么每个输入和相应的权重被模拟加法器或减法器接收,该模拟加法器或减法器生成指示出输入与相应的权重之间的差值的电流。该电流为电容器充电,这在该电容器上形成电压。在一些实施例中,电压缓冲器耦合到电容器以缓冲电容器上的电压。振荡器接收该电压(例如,缓冲的电压)并且生成振荡信号,该振荡信号的频率取决于从电压缓冲器接收的电压。每个输入和相应的权重经过相同的电路路径,该电路路径例如具有模拟加法器或减法器、电容器、电压缓冲器和振荡器。在各种实施例中,每个振荡器的输出被短接在一起,并且平均器(例如,将所有振荡器输出进行短接的节点)生成具有平均频率fa(例如,振荡器输出的所有频率的平均值)的振荡信号。振荡器作为突触工作。平均频率是接近每个振荡器的初始频率的分布的中心的同步频率。平均器作为神经元工作。

在各种实施例中,每个振荡器耦合到相位频率检测器(phase frequency detector,PFD)或频率检测器,该检测器耦合到电荷泵(charge pump,CP)。与CP耦合的PFD一起提供一电压,该电压代表平均频率fa与相应振荡器的频率(例如,振荡器1的f1)之间的差值。然后模拟加法器或减法器将该电压与模拟输入电压和模拟输入权重相加或相减。在这个过程的几次迭代之后,来自PDF和CP电路的输出电压与其先前值相比稳定到几乎恒定的值。在这个时点,在一些实施例中,存储器将来自PDF和CP的输出电压保存为与该输入相关联的经训练权重。同样,存储器为每个相应的输入保存所有这样的经训练权重。在一些实施例中,推理逻辑或芯片使用经训练权重来执行输入数据的快速推理。

在各种实施例中,提供了一种类似的数字输入神经网络方案,其中输入和初始权重是数字性质的。在这样的方案中,输入、权重和对所学习权重的改变在数字加法器中被加/减。然后,数字加法器的结果驱动数模转换器(digital-to-analog converter,DAC)的输入。DAC的输出电压进而又控制振荡器的频率。另外,模数转换器(analog-to-digital converter,ADC)将来自每个PFD和CP电路的输出电压转换为数字数据,然后该数字数据被与初始数字输入和数字权重相加或相减。在这个过程的几次迭代之后,来自ADC的输出数字数据与其先前值相比稳定到几乎恒定的值。在这个时点,存储器将ADC的输出保存为与该输入相关联的经训练权重。在一些实施例中,推理芯片使用ADC的输出作为经训练权重,以根据经训练权重为输入推理出值或结果。在一些实施例中,峰值检测器从同步频率中检测峰值频率,以推理出输入的值或结果。

各种实施例有许多技术效果。例如,各种实施例的神经网络方案使得能够在更简单的更小电路中实现学习功能,并且使得学习神经网络更快速且更节能。另外,与脉冲时序相比,振荡器的频率对于噪声和抖动更鲁棒。其他技术效果将从各种附图和实施例中清楚显现。

在接下来的描述中,论述了许多细节以提供对本公开的实施例的更透彻说明。然而,本领域技术人员将会清楚,没有这些具体细节也可以实现本公开的实施例。在其他情况下,以框图形式而不是详细示出公知的结构和设备,以避免模糊本公开的实施例。

注意,在实施例的相应附图中,以线条来表示信号。一些线条可能更粗,以指示更多的构成信号路径,和/或在一端或多端具有箭头,以指示主信息流方向。这种指示并不旨在进行限制。更确切地说,这些线条与一个或多个示例性实施例被联合使用来帮助更容易理解电路或逻辑单元。由设计需要或偏好决定的任何所表示的信号可实际上包括可在任一方向上行进并且可利用任何适当类型的信号方案来实现的一个或多个信号。

在整个说明书中,以及在权利要求中,术语“连接”的意思是直接连接,例如连接的事物之间的电连接、机械连接或磁连接,没有任何中间设备。

这里,术语“模拟信号”是任何这样的连续信号:对于该连续信号,该信号的时变特征(变量)是某个其他时变量的表示,即,类似于另一时变信号。

这里,术语“数字信号”是这样的物理信号:其是例如任意比特流的或者经数字化的(经采样和模数转换的)模拟信号的离散值(量化离散时间信号)的序列的表示。

术语“耦合”的意思是直接或间接连接,例如连接的事物之间的直接电连接、机械连接或磁连接,或者通过一个或多个无源或有源中间设备的间接连接。

这里的术语“邻近”一般指的是一事物的位置与另一事物挨着(例如,紧挨着或者接近并且其间有一个或多个事物)或者毗邻(例如,与其邻接)。

术语“电路”或“模块”可以指被布置为与彼此合作来提供期望的功能的一个或多个无源和/或有源组件。

术语“信号”可以指至少一个电流信号、电压信号、磁信号、或者数据/时钟信号。“一”、“一个”和“该”的含义包括复数引用。“在…中”的含义包括“在…中”和“在…上”。

术语“缩放”一般是指将某个设计(图解和布局)从一种工艺技术转换到另一种工艺技术并随后减小布局面积。术语“缩放”一般也指在同一技术节点内减小布局和器件的大小。术语“缩放”还可以指相对于另一参数(例如,电力供应水平)对信号频率进行的调整(例如,减慢或加速——即分别是缩小或放大)。术语“基本上”、“接近”、“大致”、“近似”和“大约”一般是指在目标值的+/-10%内。

除非另有说明,否则,使用序数形容词“第一”、“第二”和“第三”等等来描述共同对象只是表明相似对象的不同实例被引用,而并不旨在暗示这样描述的对象必须在时间上、空间上、排名上或者以任何其他方式处于给定的序列中。

对于本公开而言,短语“A和/或B”和“A或B”的意思是(A)、(B)或者(A和B)。对于本公开而言,短语“A、B和/或C”的意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。

说明书中和权利要求中的术语“左”、“右”、“前”、“后”、“顶部”、“底部”、“之上”、“下方”等等(如果存在的话)是用于描述性目的的,而并不一定用于描述永久的相对位置。

要指出的是,附图中具有与任何其他附图的元素相同的附图标记(或名称)的那些元素可以按与所描述的相似的任何方式来操作或工作,但不限于此。

对于实施例而言,这里描述的各种电路和逻辑块中的晶体管是金属氧化物半导体(metal oxide semiconductor,MOS)晶体管或其衍生物,其中MOS晶体管包括漏极、源极、栅极和体端子。晶体管和/或MOS晶体管衍生物也包括三栅极和FinFET晶体管、栅极全环绕圆柱体晶体管、隧穿场效应晶体管(Tunneling FET,TFET)、方形线晶体管、矩形带状晶体管、铁电FET(ferroelectric FET,FeFET)、或者像碳纳米管或自旋器件之类的实现晶体管功能的其他器件。MOSFET对称源极和漏极端子是相同的端子并且在这里可被互换使用。另一方面,TFET器件具有非对称源极和漏极端子。本领域技术人员将会明白,在不脱离本公开的范围的情况下,可以使用其他晶体管,例如双极结型晶体管(BJT PNP/NPN)、BiCMOS、CMOS,等等。

图1图示了根据一些实施例的具有权重和输入的高级别神经网络方案100。神经门电路是神经网络的构建模块。它产生输出“f”,该输出是具有n个元素“xi”的输入x的阵列和存储的权重“wi”的阵列的非线性函数,其中“i”是整数索引。模型100表达了一种神经门函数:

其中g()是非线性阈值函数,并且b是可以被加到总和上的偏移量。这里,突触执行输入“x”与其相应权重“w”的乘积。这些突触是执行模拟乘法的神经门的元素。神经元是执行突触输入的求和并且应用非线性阈值函数的元素。

这里,向量的点积被表达为:

神经网络的操作首先取决于学习,即,改变权重以实现期望的识别的过程。有两种类型的学习:有监督的和无监督的。在有监督的学习中,对于某些类别的输入,网络的期望输出是已知的。在无监督的学习中,当网络收敛到一组输出时,每个输出对应于一类输入。对于无监督的学习,当提供多个训练输入时,权重会根据某种规则演变或“训练”,例如,以下的赫布(Hebbian)规则:

Δwij=ηxjyi...(3)

虽然仅对于尖峰神经网络存在一种实现无监督的学习的高效的方法,但对于模拟、细胞元或振荡器神经网络而言,现今还没有可行的解决方案。它们必须依赖有监督的学习。对于尖峰神经网络(spiking neural network,SNN),存在一种无监督的学习的解决方案:尖峰时序依赖性可塑性(spike timing dependent plasticity,STDP),它的效果类似于赫布规则。例如,STDP的电路被设计为根据脉冲的时序来改变突触的存储器中保存的权重。然而,STDP的电路是为SNN工作的,该SNN要求多个尖峰才能工作。这使得SNN通常比其他神经网络更慢且能效更低。尖峰电路的实现方式可能很复杂,并且STDP算法进一步加剧了这种复杂性,从而导致电路面积和功率更大。

各种实施例的神经网络方案在振荡器神经网络中使用无监督的学习。根据各种实施例,通过与来自频率差值检测器的输出成比例地改变权重来发生训练。图2-图3描述了这种训练装置。

图2图示了根据一些实施例的利用使用振荡器的无监督的学习装置来训练权重的神经网络方案200。学习神经网络方案200包括模拟加法器/减法器(analog adders/subtractor,AAS)201(例如,2011-M,其中M是整数)、电压缓冲器203(例如,2031至203M)、振荡器204(例如,2041至204M)、平均电路205、峰值检测器206、以及PDF和CP电路207(例如,2071至207M)。

在一些实施例中,AAS 201接收模拟输入(例如,Vx1-M)和初始待训练模拟权重Vw1-M。取决于AAS 201的实现方式,模拟权重可以被从模拟输入中减去,模拟权重用负号指示(例如,-Vw1-M)。该输入可以是任何希望被分类或识别的模拟输入。任何适当的模拟电压加法器或减法器可被用于将两个输入(例如,Vx1和Vw1)相减,并且减去来自PDF和CP电路207(例如,2071)的新输出。在图6中图示了AAS 201的一个这样的示例。

返回参考图2,在各种实施例中,缓冲器203将缓冲电压作为控制电压提供给相应的振荡器204。每个输入和相应的权重经过一个相同的电路路径,该电路路径例如具有AAS 201、缓冲器203和振荡器204。

在各种实施例中,每个振荡器耦合到相位频率检测器(PFD),该PFD耦合到电荷泵(CP)。与CP耦合的PFD一起被表示为电路207,该电路207提供一电压,该电压代表平均频率fa与相应振荡器的频率(例如,Osc1 2041的f1)之间的差值。然后模拟加法器或减法器AAS 201将该电压与模拟输入电压x和模拟输入权重w相加或相减。

振荡器204是电压可控的,因此其初始频率,fi,由输入与权重向量之间的差值来设置,其中“i”是整数。每个振荡器204作为突触操作,其中输入和权重被编码为振荡器的频率。例如,振荡器2041的频率输出被表达为:

f1=fc+Δf(x1-w1)....(4)

振荡器2042的频率输出被表达为:

f2=fc+Δf(x2-w2)....(5)

振荡器2043的频率输出被表达为:

f3=fc+Δf(x3-w3)....(6)

振荡器204M的频率输出被表达为:

fM=fc+Δf(xM-wM)....(7)

其中,fc是这个线性近似的参考(中心)频率。

平均电路205对振荡器204进行耦合并且使频率(fa)同步,该频率fa接近每个振荡器的初始频率分布的中心。例如,输出209具有平均频率fa,它随着时间的推移成为所有振荡器的振荡频率。

学习中的权重变化的一个示例算法是Oja规则,它被给出为:

Δwij=η(xj-yi)...(8)

公式(8)的一个优点是,在长时间训练之后,权重不会无限制地增长。

在各种实施例中,PFD和CP电路207确定来自振荡器的振荡信号的频率和来自平均器205的信号的频率之间的频率差值。例如,PFD1和CP1电路2071比较具有频率f1的来自Osc12041的信号与具有频率fa的来自平均器205的信号的差值,并且生成指示出该频率差值的电压输出Vd1。

根据一些实施例,通过检测平均器205和每个振荡器204的频率差值,可以实现公式(8)。例如:

Δwi=C(fi-fa)...(9)

公式(9)等同于:

Δwi=C(fc+Δf(xi-wi)-fa)...(10)

来自每个PFD和CP电路207的输出电压Vd等同于Δwi,它被从输入和初始权重的差值中减去。例如,AAS1从Vx1和Vw1之差中减去Vd1。然后,新的电流(这是AAS1的输出)产生新的信号频率f1,这进而又产生新的Vd1。

在这个过程的几次迭代之后,来自PDF和CP电路207的输出电压Vd与其先前值相比稳定到几乎恒定的值。在这个时点,存储器(未示出),例如模拟存储器,将来自PDF和CP 207的输出电压Vd保存为与该输入相关联的经训练权重。存储器可以是易失性存储器或者非易失性存储器。存储器的示例包括相变存储器(phase change memory,PCM)、浮动门(闪存)存储器(例如,NAND、NOR闪存)、动态随机存取存储器(dynamic random access memory,DRAM)、磁性RAM(magnetic RAM,MRAM)、电阻性RAM(resistive RAM,ReRAM)、铁电RAM(ferroelectric RAM,FeRAM),等等。同样,存储器为每个相应的输入保存所有这样的经训练权重。在一些实施例中,推理逻辑或芯片使用经训练权重来执行输入数据的快速推理。

在各种实施例中,振荡器204是电流模式振荡器。例如,来自缓冲器203的输出被用来修改通过振荡器的电流,从而修改其振荡频率。在一些实施例中,振荡器204是电压模式振荡器。例如,来自缓冲器203的输出被用来修改振荡器的晶体管的栅极偏置,从而修改其振荡频率。在一些实施例中,振荡器204包括环形振荡器。在一些实施例中,振荡器204包括LC(电感器-电容器)振荡器。

在一些实施例中,来自平均器205的输出210fa被进一步处理以生成结果(例如,输入数据x的分类)。在一些实施例中,峰值检测器206从同步频率fa中确定峰值频率,以推理出输入的值或结果。任何合适的用于确定峰值频率的电路都可被用于峰值检测器206。

图3图示了根据一些实施例的利用使用振荡器的无监督的学习装置来训练数字权重的神经网络方案300。方案300类似于方案200,只不过是数字输入x和权重w。这里,AAS被替换为数字加法器/减法器,例如数字加法器/减法器301。在一些实施例中,数字加法器/减法器301中的进位值由多数决定逻辑门(majority logic gate)计算,该逻辑门输出的逻辑值是输入x、w和dw的多数决定。例如,数字加法器/减法器3011执行函数x1-w1-dw1。任何适当的数字加法器/减法器都可以用来实现加法器/减法器301。

ADC 302(例如,ADC 3021-M)用于转换PFD和CP电路207的输出以生成dw。例如,ADC 3021用于将电路2071的模拟输出转换成相应的数字值。然后从x1和w1的差值中减去(或加上)这个数字代码w1。在各种实施例中,x、w和dw是多比特信号。数字加法/减法301的结果被提供给DAC 303的输入。电压的输出值与DAC 303的输出电流相结合被用来驱动振荡器204,从而控制其频率。

ADC是将连续物理量(例如,电压)转换为代表物理量的幅度的数字的装置。在一些实施例中,ADC 3021-M将电路207的模拟输出转换为其相应的数字表示。任何适当的ADC都可用于实现ADC 3021-M。例如,ADC3021-M是以下之一:直接转换ADC(用于快闪ADC)、两步快闪ADC、逐次逼近ADC(successive-approximation ADC,SAR ADC)、斜坡比较ADC、威尔金森ADC、积分ADC、delta编码的ADC或计数器跃升ADC、管线ADC(也称为分段结构量化器)、sigma-delta ADC(也称为delta-sigma ADC)、时间交错的ADC、具有中间FM阶段的ADC、或者时间伸缩ADC。为了说明各种实施例,ADC 3021-M被认为是快闪ADC。

DAC是一种将数字数据(例如,二进制或温度计编码的)转换为模拟信号(电流、电压或电荷)的装置。在一些实施例中,DAC 3031-M是脉冲宽度调制器DAC。在其他实施例中,可以使用其他类型的DAC来实现DAC 3031-M。例如,插值DAC(也称为过采样DAC)、二进制加权DAC(例如,开关电阻器DAC、开关电容器DAC、开关电流源DAC)、R-2R梯形DAC、温度计编码的DAC、分段的DAC等等可被用于实现DAC3031-M。任何适当的DAC都可用于实现DAC 3031-M。

图4图示了根据一些实施例的用于图2和图3的装置中的具有相位频率检测器和电荷泵的电路400。电路400包括触发器401和402、与非门403、反相器404、p型器件MP1和n型器件MN1,它们如图所示那样耦合。输入Va和Vi分别被触发器401和402作为时钟输入接收,触发器401和402分别生成向上和向下电压VUp和VDown。这些向上和向下导致触发器401和402复位。Va和Vi的差值被电荷泵晶体管MP1和MN1转换为相应的电流IΦ。这个电流IΦ给电容器CL充电,以形成电压Vd。对于神经网络200,Vd被AAS减去。对于神经网络300,Vd被ADC 302转换为数字形式。

图5图示了根据一些实施例的用于图2和图3的装置中的电压缓冲器500。电压缓冲器500包括放大器501、反馈电容器C和反馈电阻器R。任何适当的单级或多级放大器都可用于实现放大器501。缓冲器500的输入Vin耦合到AAS的输出。缓冲器500的输出Vout耦合到振荡器204的输入。反馈电阻器R和电容器C是以任何适当的方式来实现的。例如,电阻器R被实现为在线性区域中工作的晶体管、由工艺节点提供的分立电阻器,或者它们的组合。在各种实施例中,电阻器R的电阻可由硬件(例如,熔丝、寄存器)或软件(例如,固件、操作系统)来编程。

在一些实施例中,各个图中的电容器C(例如,CL)被实现为分立电容器、金属-绝缘体-金属(metal-insulator-metal,MIM)电容器、金属电容器、铁电电容器、被配置为电容器的晶体管,或者它们的组合。在各种实施例中,电容器C的电容可由硬件(例如,熔丝、寄存器)或者软件(例如,固件、操作系统)来编程。

图6图示了根据一些实施例的用于图2的装置中的模拟加法器或减法器(AAS)600(例如,2011)。在一些实施例中,AAS 600包括p型晶体管MP4a、MP5a、MP4b和MP5b;n型晶体管MN1a、MN2a、MN1b和MN2b,以及电流源Iba和Ibb,它们如图所示那样耦合。输入是V1、V2和V3,输出是Vo。输出节点Vo处的电压被提供给AAS 201。

图7图示了根据本公开的一些实施例的具有神经网络方案的智能设备或者计算机系统或者SoC(片上系统),该神经网络方案的权重是利用使用振荡器的无监督的学习装置来训练的。在一些实施例中,设备2400表示适当的计算设备,例如计算平板电脑、移动电话或智能电话、膝上型电脑、桌面型电脑、物联网(Internet-of-Things,IOT)设备、服务器、可穿戴设备、机顶盒、具备无线能力的电子阅读器,等等。将会理解,某些组件被概括地示出,并且在设备2400中没有示出这种设备的所有组件。

在一示例中,设备2400包括SoC(片上系统)2401。SOC 2401的示例边界在图7中利用虚线图示,其中一些示例组件被图示为包括在SOC 2401内——然而,SOC 2401可包括设备2400的任何适当组件。

在一些实施例中,设备2400包括处理器2404。处理器2404可包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑器件、处理核心、或者其他处理装置。由处理器2404执行的处理操作包括对其上执行应用和/或设备功能的操作平台或操作系统的执行。处理操作包括关于与人类用户或与其他设备的I/O(输入/输出)的操作、关于功率管理的操作、关于将计算设备2400连接到另一设备的操作,等等。处理操作还可包括与音频I/O和/或显示I/O有关的操作。在各种实施例中,利用(使用振荡器的)无监督的学习装置来训练权重的神经网络方案由处理器2404实现。

在一些实施例中,处理器2404包括多个处理核心(也称为核心)2408a、2408b、2408c。虽然只图示了三个核心2408a、2408b、2408c,但处理器2404可包括任何其他适当数目的处理核心,例如数十个或者甚至数百个处理核心。处理器核心2408a、2408b、2408c可被实现在单个集成电路(IC)芯片上。此外,芯片可包括一个或多个共享的和/或私有的缓存、总线或互连、图形和/或存储器控制器,或者其他组件。

在一些实施例中,处理器2404包括缓存2406。在一示例中,缓存2406的一些部分可专用于个体核心2408(例如,缓存2406的第一部分专用于核心2408a,缓存2406的第二部分专用于核心2408b,等等)。在一示例中,缓存2406的一个或多个部分可以在两个或更多个核心2408之间共享。缓存2406可被分割成不同的级别,例如第1级(L1)缓存、第2级(L2)缓存、第3级(L3)缓存,等等。

在一些实施例中,处理器核心2404可包括取得单元来取得指令(包括带有条件分支的指令)以供核心2404执行。可以从诸如存储器2430之类的任何存储设备取得指令。处理器核心2404也可以包括解码单元来对取得的指令进行解码。例如,解码单元可以将取得的指令解码成多个微操作。处理器核心2404可包括调度单元来执行与存储经解码的指令相关联的各种操作。例如,调度单元可保存来自解码单元的数据,直到指令准备好调谴为止,例如,直到经解码的指令的所有源值变得可用为止。在一个实施例中,调度单元可调度和/或发出(或调谴)经解码的指令到执行单元以供执行。

执行单元可在调谴的指令被解码(例如,被解码单元解码)和派谴(例如,被调度单元调谴)之后执行这些指令。在一实施例中,执行单元可包括多于一个执行单元(例如,成像计算单元、图形计算单元、通用计算单元,等等)。执行单元也可以执行各种算术操作,例如加法、减法、乘法和/或除法,并且可包括一个或多个算术逻辑单元(arithmetic logic unit,ALU)。在一实施例中,协处理器(未示出)可联合执行单元来执行各种算术操作。

另外,执行单元可无序地执行指令。因此,在一个实施例中,处理器核心2404可以是无序处理器核心。处理器核心2404也可包括引退单元。引退单元可以在执行的指令被提交之后引退这些指令。在一实施例中,执行的指令的引退可导致处理器状态被从指令的执行中提交、指令所使用的物理寄存器被解除分配,等等。处理器核心2404也可包括总线单元来使能处理器核心2404的组件和其他组件之间经由一个或多个总线的通信。处理器核心2404也可包括一个或多个寄存器来存储被核心2404的各种组件访问的数据(例如,与指派的应用优先级和/或子系统状态(模式)关联有关的值)。

在一些实施例中,设备2400包括连通性电路2431。例如,连通性电路2431包括硬件设备(例如,无线和/或有线连接器和通信硬件)和/或软件组件(例如,驱动器、协议栈),来例如使得设备2400能够与外部设备通信。设备2400可与诸如其他计算设备、无线接入点或基站等等之类的外部设备相分离。

在一示例中,连通性电路2431可包括多种不同类型的连通性。概括来说,连通性电路2431可包括蜂窝连通性电路、无线连通性电路,等等。连通性电路2431的蜂窝连通性电路一般指的是由无线运营商提供的蜂窝网络连通性,例如经由以下所列项来提供的蜂窝网络连通性:GSM(global system for mobile communications,全球移动通信系统)或者变体或衍生物,CDMA(code division multiple access,码分多址接入)或者变体或衍生物,TDM(time division multiplexing,时分复用)或者变体或衍生物,第3代合作伙伴计划(3rd Generation Partnership Project,3GPP)通用移动电信系统(Universal Mobile Telecommunications Systems,UMTS)系统或者变体或衍生物,3GPP长期演进(Long-Term Evolution,LTE)系统或者变体或衍生物,3GPP LTE高级版(LTE-Advanced,LTE-A)系统或者变体或衍生物,第五代(5G)无线系统或者变体或衍生物,5G移动网络系统或者变体或衍生物,5G新无线电(New Radio,NR)系统或者变体或衍生物,或者其他蜂窝服务标准。连通性电路2431的无线连通性电路(或无线接口)指的是非蜂窝的无线连通性,并且可包括个人区域网(例如蓝牙、近场,等等)、局域网(例如Wi-Fi)和/或广域网(例如WiMax),和/或其他无线通信。在一示例中,连通性电路2431可包括网络接口,例如有线或无线接口,例如,使得系统实施例可被包含到无线设备中,例如,蜂窝电话或个人数字助理。

在一些实施例中,设备2400包括控制中枢2432,该控制中枢表示关于与一个或多个I/O设备的交互的硬件设备和/或软件组件。例如,处理器2404可经由控制中枢2432与显示器2422、一个或多个外围设备2424、存储设备2428、一个或多个其他外部设备2429等等中的一个或多个进行通信。控制中枢2432可以是芯片组、平台控制中枢(Platform Control Hub,PCH),等等。

例如,控制中枢2432说明了连接到设备2400的附加设备的一个或多个连接点,例如,用户可以通过这些附加设备与系统交互。例如,可以附接到设备2400的设备(例如,设备2429)包括麦克风设备、扬声器或立体声系统、音频设备、视频系统或其他显示设备、键盘或小键盘设备、或者用于特定应用的其他I/O设备,例如读卡器或其他设备。

如上所述,控制中枢2432可以与音频设备、显示器2422等等交互。例如,通过麦克风或其他音频设备的输入可以为设备2400的一个或多个应用或功能提供输入或命令。此外,取代显示输出,或者除了显示输出以外,还可以提供音频输出。在另一示例中,如果显示器2422包括触摸屏,则显示器2422也充当输入设备,该输入设备可以至少部分地由控制中枢2432来管理。在计算设备2400上也可以有额外的按钮或开关来提供由控制中枢2432管理的I/O功能。在一个实施例中,控制中枢2432管理诸如加速度计、相机、光传感器或其他环境传感器之类的设备,或者可以被包括在设备2400中的其他硬件。输入可以是直接用户交互的一部分,以及向系统提供环境输入以影响其操作(例如,对噪声进行过滤,调整显示器以进行亮度检测,对相机应用闪光灯,或者其他特征)。

在一些实施例中,控制中枢2432可以利用任何适当的通信协议耦合到各种设备,例如PCIe(Peripheral Component Interconnect Express,快速外围组件互连)、USB(Universal Serial Bus,通用串行总线)、雷电(Thunderbolt)、高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)、火线(Firewire),等等。

在一些实施例中,显示器2422表示提供视觉和/或触觉显示来供用户与设备2400交互的硬件(例如,显示设备)和软件(例如,驱动器)组件。显示器2422可包括显示接口、显示屏、和/或用于向用户提供显示器的硬件设备。在一些实施例中,显示器2422包括向用户提供输出和输入两者的触摸屏(或触摸板)设备。在一示例中,显示器2422可以直接与处理器2404进行通信。显示器2422可以是像在移动电子设备或膝上型电脑设备中那样的内部显示设备或者经由显示接口(例如,显示端口(DisplayPort)等等)附接的外部显示设备中的一个或多个。在一个实施例中,显示器2422可以是头戴式显示器(head mounted display,HMD),例如立体显示设备,来用于虚拟现实(virtual reality,VR)应用或增强现实(augmented reality,AR)应用中。

在一些实施例中,虽然在附图中没有图示,但除了处理器2404以外(或者取代处理器2004),设备2400还可以包括图形处理单元(Graphics Processing Unit,GPU),该图形处理单元包括一个或多个图形处理核心,其可控制在显示器2422上显示内容的一个或多个方面。

控制中枢2432(或者平台控制器中枢)可以包括硬件接口和连接器,以及软件组件(例如,驱动器、协议栈),来进行例如到外围设备2424的外围连接。

将会理解,设备2400既可以是其他计算设备的外围设备,也可以有外围设备连接到它。设备2400可具有“坞接”连接器来连接到其他计算设备,以便例如管理设备2400上的内容(例如,下载和/或上传、改变、同步)。此外,坞接连接器可以允许设备2400连接到某些外设,这些外设允许计算设备2400控制例如到视听或其他系统的内容输出。

除了专属坞接连接器或其他专属连接硬件以外,设备2400还可以经由常见的或者基于标准的连接器来进行外围连接。常见类型可以包括通用串行总线(Universal Serial Bus,USB)连接器(其可包括若干种不同硬件接口中的任何一种)、包括MiniDisplayPort(MDP)的显示端口,高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)、火线、或者其他类型。

在一些实施例中,连通性电路2431可耦合到控制中枢2432,例如除了直接耦合到处理器2404以外或者取代直接耦合到处理器2404。在一些实施例中,显示器2422可以耦合到控制中枢2432,例如除了直接耦合到处理器2404以外或者取代直接耦合到处理器2404。

在一些实施例中,设备2400包括存储器2430,其经由存储器接口2434耦合到处理器2404。存储器2430包括用于存储设备2400中的信息的存储器设备。存储器可以包括非易失性存储器设备(如果到存储器设备的电力中断,状态不会变化)和/或易失性存储器设备(如果到存储器设备的电力中断,则状态是不确定的)。存储器设备2430可以是动态随机存取存储器(dynamic random access memory,DRAM)设备、静态随机存取存储器(static random access memory,SRAM)设备、闪存设备、相变存储器设备、或者具有适当的性能来用作进程存储器的某种其他存储器设备。在一个实施例中,存储器2430可以充当设备2400的系统存储器,以存储数据和指令来在一个或多个处理器2404执行应用或进程时使用。存储器2430可以存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与设备2400的应用和功能的执行有关的系统数据(无论是长期的还是暂时的)。

各种实施例和示例的元素也可以以用于存储计算机可执行指令(例如,实现本文论述的任何其他过程的指令)的机器可读介质(例如,存储器2430)的形式来提供。机器可读介质(例如,存储器2430)可包括但不限于闪存、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡、相变存储器(phase change memory,PCM)、或者适合用于存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本公开的实施例可以作为计算机程序(例如,BIOS)被下载,该计算机程序可以经由通信链路(例如,调制解调器或网络连接)借由数据信号被从远程计算机(例如,服务器)传送到作出请求的计算机(例如,客户端)。

在一些实施例中,设备2400包括温度测量电路2440,例如用于测量设备2400的各种组件的温度。在一示例中,温度测量电路2440可以被嵌入,或者耦合或附接到其温度要被测量和监视的各种组件。例如,温度测量电路2440可以测量核心2408a、2408b、2408c,电压调节器2414,存储器2430,SoC 2401的主板和/或设备2400的任何适当组件中的一个或多个的温度(或者其内的温度)。

在一些实施例中,设备2400包括功率测量电路2442,例如用于测量设备2400的一个或多个组件消耗的功率。在一示例中,除了测量功率以外,或者取代测量功率,功率测量电路2442还可以测量电压和/或电流。在一示例中,功率测量电路2442可以被嵌入,或者耦合或附接到其功率、电压和/或电流消耗要被测量和监视的各种组件。例如,功率测量电路2442可以测量由一个或多个电压调节器2414供应的功率、电流和/或电压、供应到SOC 2401的功率、供应到设备2400的功率、由设备2400的处理器2404(或任何其他组件)消耗的功率,等等。

在一些实施例中,设备2400包括一个或多个电压调节器电路,一般称为电压调节器(voltage regulator,VR)2414VR,其具有高带宽和低功率差动到单端III型补偿器。VR 2414按适当的电压水平生成信号,这些信号可被供应来操作设备2400的任何适当组件。仅作为示例,VR 2414被图示为向设备2400的处理器2404供应信号。在一些实施例中,VR 2414接收一个或多个电压标识(Voltage Identification,VID)信号,并且基于VID信号来生成处于适当水平的电压信号。对于VR 2414可利用各种类型的VR。例如,VR 2414可包括“降压”VR、“升压”VR、降压和升压VR的组合、低压差(low dropout,LDO)调节器、开关DC-DC调节器,等等。降压VR一般被用于其中输入电压需要被以小于单位一的比率变换成输出电压的电力输送应用中。升压VR一般被用于其中输入电压需要被以大于单位一的比率变换成输出电压的电力输送应用中。在一些实施例中,每个处理器核心具有其自己的VR,该VR被PCU 2410a/b和/或PMIC 2412控制。在一些实施例中,每个核心具有分布式LDO的网络,来提供对功率管理的高效控制。LDO可以是数字的、模拟的或者是数字或模拟LDO的组合。VR是可如参考各种实施例所述那样提供自适应电压输出的自适应VR。

在一些实施例中,设备2400包括一个或多个时钟生成器电路,统称为时钟生成器2416。时钟生成器2416可按适当的频率水平生成时钟信号,这些信号可被供应给设备2400的任何适当组件。仅作为示例,时钟生成器2416被图示为向设备2400的处理器2404供应时钟信号。在一些实施例中,时钟生成器2416接收一个或多个频率标识(Frequency Identification,FID)信号,并且基于FID信号按适当的频率生成时钟信号。时钟生成器2416是可如参考各种实施例所述提供自适应频率输出的自适应时钟源。

在一些实施例中,设备2400包括向设备2400的各种组件供应电力的电池2418。仅作为示例,电池2418被图示为向处理器2404供应电力。虽然在附图中没有图示,但设备2400可包括充电电路,以例如基于从交流电(Alternating Current,AC)适配器接收的AC电力供应来对电池进行再充电。

在一些实施例中,设备2400包括功率控制单元(Power Control Unit,PCU)2410(也称为功率管理单元(Power Management Unit,PMU)、功率控制器,等等)。在一示例中,PCU 2410的一些部分可以由一个或多个处理核心2408实现,并且PCU 2410的这些部分被利用虚线框来象征性图示并且被标注为PCU 2410a。在一示例中,PCU 2410的一些其他部分可以在处理核心2408外部实现,并且PCU 2410的这些部分被利用虚线框来象征性图示并且被标注为PCU 2410b。PCU 2410可以为设备2400实现各种功率管理操作。PCU 2410可以包括硬件接口、硬件电路、连接器、寄存器等等,以及软件组件(例如,驱动器、协议栈),来为设备2400实现各种功率管理操作。

在一些实施例中,设备2400包括功率管理集成电路(Power Management Integrated Circuit,PMIC)2412,以例如为设备2400实现各种功率管理操作。在一些实施例中,PMIC 2412是可重配置功率管理IC(Reconfigurable Power Management IC,RPMIC)和/或IMVP(Mobile Voltage Positioning,移动电压定位)。在一示例中,PMIC在与处理器2404分离的IC芯片内。这可以为设备2400实现各种功率管理操作。PMIC 2412可以包括硬件接口、硬件电路、连接器、寄存器,等等,以及软件组件(例如,驱动器、协议栈),来为设备2400实现各种功率管理操作。

在一示例中,设备2400包括PCU 2410或PMIC 2412中的一者或两者。在一示例中,PCU 2410或者PMIC 2412中的任何一者可以不存在于设备2400中,因此这些组件是利用虚线来图示的。

设备2400的各种功率管理操作可以由PCU 2410、由PMIC 2412或者由PCU 2410和PMIC 2412的组合来执行。例如,PCU 2410和/或PMIC 2412可以为设备2400的各种组件选择功率状态(例如,P状态)。例如,PCU 2410和/或PMIC 2412可以为设备2400的各种组件选择功率状态(例如,根据ACPI(Advanced Configuration and Power Interface,高级配置和电力接口)规范)。仅作为示例,PCU 2410和/或PMIC 2412可以使得设备2400的各种组件转变到睡眠状态、转变到活跃状态、转变到适当的C状态(例如,C0状态,或者另一适当的C状态,根据ACPI规范),等等。在一示例中,PCU 2410和/或PMIC 2412可以控制由VR 2414(例如,SCVR)输出的电压和/或由时钟生成器输出的时钟信号的频率,例如分别通过输出VID信号和/或FID信号。在一示例中,PCU 2410和/或PMIC 2412可以控制电池功率使用、电池2418的充电、以及与省电操作有关的特征。

时钟生成器2416可以包括锁相环(phase locked loop,PLL)、锁频环(frequency locked loop,FLL)、或者任何适当的时钟源。在一些实施例中,处理器2404的每个核心具有其自己的时钟源。这样,每个核心可按独立于其他核心的操作频率的频率来进行操作。在一些实施例中,PCU 2410和/或PMIC 2412执行适应性的或者动态的频率缩放或调整。例如,如果核心没有在其最大功率消耗阈值或限度下进行操作,则可增大该处理器核心的时钟频率。在一些实施例中,PCU 2410和/或PMIC 2412确定处理器的每个核心的操作条件,并且当PCU 2410和/或PMIC 2412确定核心在低于目标性能水平下操作时,适时地调整该核心的频率和/或供电电压,而核心钟控源(例如,该核心的PLL)不会失去锁定。例如,如果核心在从电力供应轨汲取电流,该电流小于为该核心或处理器2404分配的总电流,则PCU 2410和/或PMIC 2412可临时增大对于该核心或处理器2404的功率汲取(例如,通过增大时钟频率和/或电力供应电压水平),使得该核心或处理器2404可以按更高的性能水平来运转。这样,可以在不违反产品可靠性的情况下,为处理器2404临时增大电压和/或频率。

在一示例中,PCU 2410和/或PMIC 2412可例如至少部分地基于从功率测量电路2442、温度测量电路2440接收测量、接收电池2418的充电水平、和/或接收可用于功率管理的任何其他适当的信息,来执行功率管理操作。为此,PMIC 2412通信地耦合到一个或多个传感器,来感测/检测对于系统/平台的功率/热行为有影响的一个或多个因素中的各种值/变化。一个或多个因素的示例包括电流、电压下降、温度、操作频率、操作电压、功率消耗、核心间通信活动,等等。这些传感器中的一个或多个可被设置为与计算系统的一个或多个组件或者逻辑/IP块物理地近邻(和/或与其热接触/耦合)。此外,在至少一个实施例中,(一个或多个)传感器可以直接耦合到PCU 2410和/或PMIC 2412,以允许PCU 2410和/或PMIC 2412至少部分地基于由这些传感器中的一个或多个检测到的(一个或多个)值来管理处理器核心能量。

还图示了设备2400的示例软件栈(虽然没有图示该软件栈的所有元素)。仅作为示例,处理器2404可以执行应用程序2450、操作系统2452、一个或多个功率管理(Power Management,PM)特定应用程序(例如,一般称为PM应用2458),等等。PM应用2458也可被PCU 2410和/或PMIC 2412执行。OS 2452也可包括一个或多个PM应用2456a、2456b、2456c。OS 2452也可包括各种驱动器2454a、2454b、2454c等等,其中一些可专用于功率管理目的。在一些实施例中,设备2400还可包括基本输入/输出系统(Basic Input/Output System,BIOS)2420。BIOS 2420可以与OS 2452通信(例如,经由一个或多个驱动器2454),与处理器2404通信,等等。

例如,PM应用2458、2456、驱动器2454、BIOS 2420等等中的一个或多个可用于实现功率管理特定任务,例如用于控制设备2400的各种组件的电压和/或频率,控制设备2400的各种组件的唤醒状态、睡眠状态和/或任何其他适当的功率状态,控制电池功率使用、电池2418的充电、与功率节省操作有关的特征,等等。

说明书中提及“一实施例”、“一个实施例”、“一些实施例”或者“其他实施例”的意思是联系这些实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但不一定包括在所有实施例中。“一实施例”、“一个实施例”或者“一些实施例”的各种出现不一定全都指的是相同的实施例。如果说明书陈述“可”、“可能”或者“可以”包括某一组件、特征、结构或特性,那么并不是必须要包括该特定组件、特征、结构或特性。如果说明书或权利要求提及“一”或“一个”元素,那么并不意味着只有一个该元素。如果说明书或权利要求提及“一额外”元素,那么并不排除有多于一个的该额外元素。

此外,在一个或多个实施例中可按任何适当的方式来组合特定的特征、结构、功能或特性。例如,在与第一实施例和第二实施例相关联的特定特征、结构、功能或特性不互斥的任何地方,可将两个实施例相组合。

虽然已经结合其特定实施例描述了本公开,但本领域普通技术人员根据前述描述,将会清楚这种实施例的许多替换、修改和变化。本公开的实施例旨在包含落在所附权利要求的宽广范围内的所有这样的替换、修改和变化。

此外,为了图示和论述的简单起见,并且为了不模糊本公开,在给出的附图内可能示出或者不示出到集成电路(IC)芯片和其他组件的公知电力/接地连接。另外,可能以框图形式示出了布置以避免模糊本公开,并且同时也考虑到了如下事实:关于这种框图布置的实现方式的具体细节是高度取决于要在其内实现本公开的平台的(即,这种具体细节应当完全在本领域技术人员的认知内)。在阐述具体细节(例如,电路)以便描述本公开的示例实施例的情况下,本领域技术人员应当清楚,没有这些具体细节,或者利用这些具体细节的变体,也可实现本公开。因此,说明书应当被认为是说明性的,而不是限制性的。

提供以下示例来说明各种实施例。这些示例可按任何适当的方式从属于彼此。

示例1:一种装置,包括:多个加法器或减法器,其中,所述多个加法器或减法器中的每一者接收输入电压、相应的初始权重电压、以及相应的调整电压;多个缓冲器,其中,每个缓冲器耦合到所述多个加法器或减法器中的一个加法器或减法器;多个振荡器,其中,每个振荡器耦合到所述多个缓冲器中的个体缓冲器的输出;平均器,所述平均器耦合到所述多个振荡器,其中,所述平均器生成信号,该信号的频率是所述多个振荡器的输出的频率的平均值;以及多个频率检测器,其中,每个频率检测器耦合到个体振荡器和所述平均器,并且还耦合到所述多个加法器或减法器中的个体加法器或减法器。

示例2:如示例1所述的装置,其中,每个振荡器是电流受控或电压受控振荡器。

示例3:如示例1所述的装置,其中,每个缓冲器是包括放大器的电压缓冲器。

示例4:如示例1所述的装置,包括:峰值检测器,耦合到所述平均器的输出。

示例5:如示例1所述的装置,其中,每个频率检测器生成指示出所述频率的平均值与来自所述个体振荡器的信号的频率之间的差值的信号。

示例6:如示例1所述的装置,其中,每个加法器或减法器的输出是经训练权重。

示例7:如示例6所述的装置,包括:存储器,用于存储所述经训练权重。

示例8:如示例1所述的装置,其中,每个加法器或减法器从输入电压中减去相应的初始权重电压和相应的调整电压。

示例9:如示例1所述的装置,其中,每个频率检测器耦合到电荷泵,所述电荷泵耦合到个体加法器或减法器。

示例10:如示例1所述的装置,其中,每个加法器或减法器是模拟加法器或减法器。

示例11:一种装置,包括:多个数字加法器或减法器,其中,所述多个数字加法器或减法器中的每一者接收输入代码、相应的初始权重代码、以及相应的调整代码;多个数模转换器(DAC),其中,每个DAC耦合到所述多个数字加法器或减法器中的个体数字加法器或减法器;多个振荡器,其中,每个振荡器耦合到所述DAC中的个体DAC的输出;平均器,所述平均器耦合到所述多个振荡器,其中,所述平均器生成信号,该信号的频率是所述多个振荡器的输出的频率的平均值;以及多个频率检测器,其中,每个频率检测器耦合到个体振荡器和所述平均器;以及多个模数转换器(ADC),其中,每个ADC耦合到个体数字加法器或减法器。

示例12:如示例11所述的装置,其中,每个频率检测器耦合到电荷泵,所述电荷泵耦合到个体ADC。

示例13:如示例11所述的装置,其中,每个数字加法器或减法器的输出是经训练权重。

示例14:如示例13所述的装置,包括:存储器,用于存储所述经训练权重。

示例15:如示例11所述的装置,其中,每个振荡器是电流受控或电压受控振荡器。

示例16:如示例11所述的装置,包括:峰值检测器,所述峰值检测器耦合到所述平均器的输出。

示例17:一种系统,包括:存储器;具有神经网络电路的处理器,所述神经网络电路包括:多个加法器或减法器,其中,所述多个加法器或减法器中的每一者接收输入电压、相应的初始权重电压、以及相应的调整电压;多个缓冲器,其中,每个缓冲器耦合到所述多个加法器或减法器中的一个加法器或减法器;多个振荡器,其中,每个振荡器耦合到所述多个缓冲器中的个体缓冲器的输出;平均器,所述平均器与所述多个振荡器耦合,其中,所述平均器生成信号,该信号的频率是所述多个振荡器的输出的频率的平均值;以及多个频率检测器,其中,每个频率检测器耦合到个体振荡器和所述平均器,并且还耦合到所述多个加法器或减法器中的个体加法器或减法器;以及无线接口,用于允许所述处理器与另一设备进行通信。

示例18:如示例17所述的系统,其中,每个加法器或减法器的输出是经训练权重。

示例19:如示例18所述的系统,其中,存储器用于存储所述经训练权重。

示例20:如示例17所述的系统,其中,所述神经网络电路包括:峰值检测器,所述峰值检测器与所述平均器的输出耦合。

提供了摘要,它将允许读者确定本技术公开内容的性质和主旨。摘要是带着如下理解提交的:它不会被用于限制权利要求的范围或含义。特此将所附权利要求纳入到详细描述中,其中每个权利要求独立作为一个单独的实施例。


最新回复(0)