调压控制器、相关装置和方法

文档序号:1891627 发布日期:2021-11-26 浏览:35次 >En<

阅读说明:本技术 调压控制器、相关装置和方法 (Voltage regulation controller, related apparatus and method ) 是由 李一帆 王彤 江鹏 蒲宇 寇博华 王洁 于 2021-07-22 设计创作,主要内容包括:本公开提供了一种调压控制器、相关装置和方法。所述调压控制器包括:电压确定单元,用于根据调压指令确定为双轨存储器的逻辑器件供电的第一供电电压的第一目标值和为双轨存储器的存储阵列供电的第二供电电压的第二目标值;调压信号生成单元,用于在第二供电电压保持不变的情况下,根据调节步长、和电压约束关系生成对第一供电电压的第一调压信号;再在第一供电电压保持不变的情况下,根据调节步长、和所述电压约束关系生成对所述第二供电电压的第二调压信号,如此反复调节,直至两个供电电压分别达到第一和第二目标值。本公开实施例在将双轨存储器的第一和第二供电电压分别调节到其相应目标值的过程中,保持存储器工作稳定性。(The present disclosure provides a voltage regulation controller, related devices and methods. The voltage regulation controller includes: a voltage determination unit for determining a first target value of a first supply voltage for supplying a logic device of the dual-rail memory and a second target value of a second supply voltage for supplying a storage array of the dual-rail memory according to the voltage regulation instruction; the voltage regulating signal generating unit is used for generating a first voltage regulating signal for the first power supply voltage according to the regulating step length and the voltage constraint relation under the condition that the second power supply voltage is kept unchanged; and under the condition that the first power supply voltage is kept unchanged, generating a second voltage regulating signal for the second power supply voltage according to the regulating step length and the voltage constraint relation, and repeatedly regulating until the two power supply voltages respectively reach a first target value and a second target value. The disclosed embodiments maintain memory operational stability during adjustment of the first and second supply voltages of the dual-rail memory to their respective target values, respectively.)

调压控制器、相关装置和方法

技术领域

本公开涉及芯片领域,具体而言,涉及调压控制器、相关装置和方法。

背景技术

目前,各种处理单元芯片日益小型化。小型化芯片对降低芯片功耗提出更高的要求。芯片降低功耗的方法主要有两种:动态电压与频率调节(Dynamic Voltage andFrequency Scaling,DVFS)和自适应电压与频率调节(Adaptive Voltage FrequencyScaling,AVFS)。DVFS根据处理单元所运行的应用程序对计算能力的不同需要,动态调节处理单元和相关元件(例如存储器)的时钟频率和供电电压,从而达到节能的目的。AVFS通过传感器实时检测芯片应用环境来确定时钟频率和供电电压。

处理单元芯片大多使用双轨存储器,而双轨存储器中用于实际数据存储的存储阵列和用于控制读写过程的逻辑器件使用不同的供电电压。逻辑器件的供电电压同时是系统供电电压(芯片上除存储阵列之外的其他部件均使用该供电电压)。用于存储阵列的供电电压和用于逻辑器件的供电电压有一定电压约束关系。例如,用于逻辑器件的供电电压不大于用于存储阵列的供电电压和第一设定值之和,且用于逻辑器件的供电电压不小于用于存储阵列的供电电压和第二设定值之差,其中,第一设定值和第二设定值为正数。在调节两个供电电压到达各自所需的目标值的过程中,要时时刻刻保证上述两个供电电压满足电压约束关系。一旦在某个时刻,两个供电电压不满足电压约束关系,就会影响双轨存储器的性能。

在双轨存储器的某种应用场景下,需要将双轨存储器的两个供电电压分别调节到其相应目标值。为此,现有技术中有两种方案。一种方案是双轨存储器的两个电压轨接同一路电压,同时给逻辑器件和数据存储供电。这样,一般都会满足电压约束关系。如上例中要求,用于逻辑器件的供电电压不大于用于存储阵列的供电电压和第一设定值之和,且用于逻辑器件的供电电压不小于用于存储阵列的供电电压和第二设定值之差。如果两个供电电压合二为一,上述电压约束关系显然满足。但是,两路供电电压工作在不同电压范围,不能用同一路供电。以一款SRAM为例,用于逻辑器件的供电电压VDD的动态范围为0.5V≦VDD≦1.05V,用于存储阵列的供电电压VDDM的动态范围为0.675V≦VDDM≦1.05V。这样,VDD不能和VDDM接同一路电压,因为VDD可以工作在0.675V之下,但是VDDM无法工作在0.675V之下。另一种方案是同步调节上述两个供电电压到其目标值。在这种情况下,两个供电电压以相同调压速率同步同相位调整至各自的目标电压值,但是由于两路供电电源纹波影响、电源的负载迁移影响,可能会一路供电电压往上飘,一路供电电压往下飘,两路供电电压变化速率不同,造成两路供电电压之间不满足电压约束关系,导致双轨存储器无法正常工作。

发明内容

有鉴于此,本公开的一个目的是在将双轨存储器的用于逻辑器件的供电电压和用于存储阵列的供电电压分别调节到其相应目标值的过程中,保证其每一时刻两个供电电压满足电压约束关系,维持存储器工作稳定性。

根据本公开的一方面,提供了一种调压控制器,用于双轨存储器的第一供电电压和第二供电电压的调节,所述第一供电电压为所述双轨存储器的逻辑器件供电,所述第二供电电压为所述双轨存储器的存储阵列供电,其中,所述调压控制器包括:

电压确定单元,用于根据调压指令确定所述第一供电电压的第一目标值和所述第二供电电压的第二目标值;

调压信号生成单元,用于在第二供电电压保持不变的情况下,确定用所述调节步长调节第一供电电压的步长调节结果,基于第二供电电压、以及第一供电电压和第二供电电压的电压约束关系确定第一供电电压容许范围,如果所述步长调节结果在所述第一供电电压容许范围之内,根据所述步长调节结果生成第一调压信号,用于调节所述第一供电电压,如果所述步长调节结果不在所述第一供电电压容许范围之内,根据第一供电电压容许范围被超出的边界值生成所述第一调压信号;在第一供电电压保持不变的情况下,确定用所述调节步长调节第二供电电压的步长调节结果,基于第一供电电压和所述电压约束关系确定第二供电电压容许范围,如果所述步长调节结果在所述第二供电电压容许范围之内,根据所述步长调节结果生成第二调压信号,用于调节第二供电电压,如果所述步长调节结果不在所述第二供电电压容许范围之内,根据第二供电电压容许范围被超出的边界值生成所述第二调压信号;如此反复调节,直至所述第一供电电压达到所述第一目标值,且所述第二供电电压达到所述第二目标值。

可选地,所述调压信号生成单元在生成所述第一调压信号或第二调压信号之后,进一步用于:

确定所述第一调压信号对应的第一供电电压是否超出第一目标值,或所述第二调压信号对应的第二供电电压是否超出第二目标值;

如果是,将超出所述第一目标值的第一供电电压削减到所述第一目标值,或将超出所述第二目标值的第二供电电压削减到所述第二目标值。

可选地,所述电压约束关系为:第一供电电压不大于第二供电电压和第一设定值之和,且第一供电电压不小于第二供电电压和第二设定值之差,其中,第一设定值和第二设定值为正数。

可选地,所述调压控制器为动态电压与频率调节控制器,所述电压确定单元包括:

目标寄存器,用于存储从所述调压指令获得的目标频率;

频率与电压对应关系库,用于存储目标频率与所述第一目标值、所述第二目标值之间的对应关系;

比较器,用于基于所述目标频率查找频率与电压对应关系库,得到相应的第一目标值和第二目标值。

可选地,所述调压控制器为自适应电压与频率调节控制器,所述电压确定单元包括:

目标寄存器,用于存储从所述调压指令获得的目标频率;

可用频率库,用于存储预先设置的可用频率;

逻辑处理单元,用于如果所述目标频率与所述可用频率之一匹配,基于接收到的感测的实时温度和工艺偏差确定所述第一目标值和第二目标值。

可选地,该调压控制器还包括:变频信号生成单元,用于根据所述目标频率生成变频信号,所述变频信号用于调节所述双轨存储器和处理单元的时钟频率。

根据本公开的一方面,提供了一种外围管理组件,包括:

如上所述的调压控制器;

电源管理电路,用于接收所述调压信号生成单元生成的第一调压信号和第二调压信号,以根据所述第一调压信号和所述第二调压信号分别调节所述第一供电电压和所述第二供电电压。

可选地,该外围管理组件还包括:时钟管理单元,用于接收所述变频信号生成单元产生的变频信号,根据所述变频信号产生给所述双轨存储器和所述处理单元的时钟信号。

根据本公开的一方面,提供了一种片上系统,包括:双轨存储器;如上所述的外围管理组件。

根据本公开的一方面,提供了一种计算装置,包括:双轨存储器;处理单元;如上所述的外围管理组件。

根据本公开的一方面,提供了一种数据中心,包括如上所述的计算装置。

根据本公开的一方面,提供了一种调压控制方法,用于双轨存储器的第一供电电压和第二供电电压的调节,所述第一供电电压为所述双轨存储器的逻辑器件供电,所述第二供电电压为所述双轨存储器的存储阵列供电,所述调压控制方法包括:

根据调压指令确定所述第一供电电压的第一目标值和所述第二供电电压的第二目标值;

在第二供电电压保持不变的情况下,确定用所述调节步长调节第一供电电压的步长调节结果,基于第二供电电压、以及第一供电电压和第二供电电压的电压约束关系确定第一供电电压容许范围,如果所述步长调节结果在所述第一供电电压容许范围之内,根据所述步长调节结果生成第一调压信号,用于调节所述第一供电电压,如果所述步长调节结果不在所述第一供电电压容许范围之内,根据第一供电电压容许范围被超出的边界值生成所述第一调压信号;在第一供电电压保持不变的情况下,确定用所述调节步长调节第二供电电压的步长调节结果,基于第一供电电压和所述电压约束关系确定第二供电电压容许范围,如果所述步长调节结果在所述第二供电电压容许范围之内,根据所述步长调节结果生成第二调压信号,用于调节第二供电电压,如果所述步长调节结果不在所述第二供电电压容许范围之内,根据第二供电电压容许范围被超出的边界值生成所述第二调压信号;如此反复调节,直至所述第一供电电压达到所述第一目标值,且所述第二供电电压达到所述第二目标值。

在本公开实施例中,不是同时调节第一供电电压和第二供电电压到其目标值,而是先让一个供电电压保持不变,根据两个供电电压的电压约束关系、和调节步长调节另一个供电电压,再让另一个供电电压保持不变,根据电压约束关系、和调节步长调节该供电电压,这样反复调节,直到两个供电电压都达到其目标值。在上述过程中,每个时间点都是有一个供电电压保持不变,另一个供电电压按照电压约束关系变化,充分保证了在调节过程中的每一个时刻,两个供电电压都是满足电压约束关系的,从而维持存储器工作稳定性。由于每次调压都是按照一个可调节的较小步长来调节的,避免一次调压步长太大导致超出两路电压约束关系。本公开实施例在调节双轨存储器的两个供电电压时,最大程度地减小了两个供电电压彼此之间的影响,防止同时调压时电压抖动较大,在某一瞬间超出电压约束关系。每次调压的大小使用步长做约束,步长可以自行定义,使每次调压时第一或第二供电电压变化的区间满足电压约束关系。由于每次第一或第二供电电压的变化都不超过该区间,所以调压期间将会满足电压约束关系。

附图说明

通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是本公开一实施例应用的数据中心的体系构架图;

图2A是本公开实施例应用于带有中央处理器的芯片的场景下的计算装置内部结构图;

图2B是本公开实施例应用于带有加速单元的芯片的场景下的计算装置内部结构图;

图3A是根据本公开的一个实施例当调压控制器是DVFS控制器时电压确定单元的内部结构图;

图3B是根据本公开的一个实施例当调压控制器是AVFS控制器时电压确定单元的内部结构图;

图4示出了根据本公开实施例反复调节第一供电电压和第二供电电压的一个示例;

图5是根据本公开一个实施例的调压控制方法的流程图。

图6是根据本公开一个实施例的反复调节第一供电电压和第二供电电压的过程的流程图。

具体实施方式

以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

在本文中使用的术语

双轨存储器:内部具有逻辑器件和存储阵列、且给逻辑器件和存储阵列分别供电的存储器,其可以表现为随机存取存储器(RAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、内容可寻址存储器(CAM)、闪速存储器、寄存器堆(register file)等多种形式。

存储阵列:存储器中实际存储数据的部分。其由大量的存储单元组成,每个存储单元能存放1位二值数据(0,1)。通常存储单元排列成N行×M列矩阵形式,叫做存储阵列。它是把多个磁盘组成一个阵列,当作单一磁盘使用。它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间。

逻辑器件:存储器内执行对存储阵列的读写等逻辑的器件。

动态电压频率调节:英文全称为Dynamic Voltage and Frequency Scaling,简称为DVFS。DVFS是根据处理单元所运行的应用程序对计算能力的不同需要,动态调节处理单元和相关元件(例如存储器)的时钟频率和供电电压,从而达到节能的目的的器件。

自适应电压频率调节:英文全称为Adaptive Voltage Frequency Scaling,简称为AVFS。AVFS是通过传感器实时检测芯片应用环境来确定时钟频率和供电电压,从而达到节能的目的的器件。

计算装置:具有计算或处理能力的设备,它可以体现为终端的形式,如物联网设备、移动终端、桌上电脑、膝上电脑等,也可以体现为服务器或服务器组成的集群。在数据中心的环境下,计算装置是数据中心中的服务器。

片上系统:具有处理能力的单元和外围电路封装成片,可以插入计算装置或从计算装置中更换。

外围管理组件:上述片上系统中与处理单元封装在一起的、对处理单元起到管理功能(例如电源管理、频率管理)的外围组件。

调度单元:在计算装置或片上系统中进行传统处理(非用于图像处理和各种深度学习模型等复杂运算的处理)之外,还承担着对加速单元的调度职能的单元。其向加速单元分配加速单元需要承担的任务。调度单元可以采用中央处理器(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等多种形式。

加速单元:针对传统处理单元在一些专门用途的领域(例如,处理图像、处理深度学习模型的各种运算,等等)效率不高的情况,为了提高在这些专门用途领域中的数据处理速度而设计的处理单元。加速单元包括中央处理器(CPU)、图形处理器(GPU)、通用图形处理器(GPGPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以及专用智能加速硬件(例如,神经网络处理器NPU)。

处理单元:具有处理能力的单元,包括进行传统处理(非用于图像处理和各种深度学习模型等复杂运算的处理)的单元、上述兼具有调度职能的调度单元、以及上述加速单元等。

本公开的应用环境

本公开实施例提供两路供电电压的调压控制方法可应用任何集成了双轨存储器的系统中,不论双轨存储器是嵌入式还是独立的,也不论双轨存储器的存储器类型,例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、内容可寻址存储器(CAM)、闪速存储器、寄存器堆(register file)等。此外,本领域的技术人员可以理解,虽然下述实施例是基于DVFS或AVFS控制器描述如何调整双轨存储器的两路供电电压,但在基于其它控制器的场景下,或通过软件控制双轨存储器的两路供电电压的场景下,本公开都适用。另外,应当理解,虽然在下文中仅仅以本公开实施例应用在数据中心的场景进行描述,但该方案同样适用于其它应用场景。本领域技术人员可以受益于本公开实施例的在数据中心场景下的描述容易地构想出在其它场景中的实现细节。

数据中心

数据中心是全球协作的特定设备网络,用来在互联网网络基础设施上传递、加速、展示、计算、存储数据信息。在今后的发展中,数据中心也将会成为企业竞争的资产。随着数据中心应用的广泛化,数据中心的数据安全越来越被重视。

在传统的大型数据中心,网络结构通常如图1所示,即互连网络模型(hierarchical inter-networking model)。这个模型包含了以下部分:

服务器140:各服务器140是数据中心的处理和存储实体,数据中心中大量数据的处理和存储都是由这些服务器140完成的。

接入交换机130:接入交换机130是用来让服务器140接入到数据中心中的交换机。一台接入交换机130接入多台服务器140。接入交换机130通常位于机架顶部,所以它们也被称为机顶(Top of Rack)交换机,它们物理连接服务器。

汇聚交换机120:每台汇聚交换机120连接多台接入交换机130,同时提供其他的服务,例如防火墙,入侵检测,网络分析等。

核心交换机110:核心交换机110为进出数据中心的包提供高速的转发,为汇聚交换机120提供连接性。整个数据中心的网络分为L3层路由网络和L2层路由网络,核心交换机110为通常为整个数据中心的网络提供一个弹性的L3层路由网络。

通常情况下,汇聚交换机120是L2和L3层路由网络的分界点,汇聚交换机120以下的是L2网络,以上是L3网络。每组汇聚交换机管理一个传送点(POD,Point Of Delivery),每个POD内都是独立的VLAN网络。服务器在POD内迁移不必修改IP地址和默认网关,因为一个POD对应一个L2广播域。

汇聚交换机120和接入交换机130之间通常使用生成树协议(STP,Spanning TreeProtocol)。STP使得对于一个VLAN网络只有一个汇聚层交换机120可用,其他的汇聚交换机120在出现故障时才被使用(上图中的虚线)。也就是说,在汇聚交换机120的层面,做不到水平扩展,因为就算加入多个汇聚交换机120,仍然只有一个在工作。

计算装置

由于服务器140才是数据中心真实的处理设备,图2A和图2B各示出了一个服务器140内部的结构框图,其中,图2A所示服务器140基于中央处理器(Central ProcessingUnit,简称CPU)构建,图2B所示服务器140基于加速单元(如GPU、NPU等)构建。

首先,参照图2A,一些实施例中,服务器140不仅包括总线(图中未示出)连接的处理单元310和双轨存储器210,还包括本公开实施例提供的外围管理组件300。在该实施例中,处理单元310表现为该中央处理器12。外围管理组件300用于确定中央处理器12和双轨存储器210的工作频率和工作电压,以使中央处理器12和双轨存储器210按照该工作频率和工作电压工作。

各种处理单元芯片的日益小型化使得芯片制造商投入越多越多的精力在降低芯片功耗方面。为了降低功耗,尽量是处理单元310和双轨存储器210在没有工作需求时不工作,在有工作需求时被唤醒,从而以唤醒后目标工作频率和目标工作电压工作。外围管理组件300的功能就是在有工作需求时接受唤醒,使处理单元310和双轨存储器210以唤醒后的目标工作频率和目标工作电压工作。处理单元310和双轨存储器210的当前工作频率和目标工作频率之间、当前工作电压和目标工作电压之间都是有差别的,外围管理组件300就要是弥补这个差别,使处理单元310和双轨存储器210的当前工作频率变成目标工作频率,当前工作电压变成目标工作电压。关于处理单元310的频率和电压调节,本公开实施例暂不考虑。本公开实施例主要着眼于双轨存储器210的供电电压调节,其中双轨处理器210具有逻辑器件和存储阵列,用于逻辑器件的第一供电电压和用于存储阵列的第二供电电压是分开的。本公开实施例的外围管理组件300使得在将双轨存储器210的第一供电电压和第二供电电压分别调节到其相应目标值的过程中,保证其每一时刻两个供电电压满足电压约束关系,维持双轨存储器210工作稳定性。

如图2A所示,在一个实施例中,外围管理组件300包括调压控制器330、电源管理电路350、时钟管理单元370、电压门控单元360、温度传感器321、工艺传感器322。

调压控制器330是根据调压调频指令生成用于调节双轨存储器210的供电电压的调压信号(可能还有用于调节处理单元310的供电电压的调压信号,本公开不涉及)的部件。该调压调频指令可以来自于唤醒源。唤醒源是触发唤醒处理单元310和双轨存储器210工作的器件。如上所述,为了降低功耗,处理单元310和双轨存储器210在正常状态下不工作,当接收到唤醒源的唤醒时才以需要的频率和供电电压工作。这样,当唤醒源需要唤醒处理单元310和双轨存储器210工作时,就需要向调压控制器330发送调压调频指令,指示其调节处理单元310和双轨存储器210的频率和供电电压,从而使得调节处理单元310和双轨存储器210的工作满足实际需求。该唤醒源可能是温度监测模块,其定时采集温度汇报给处理单元310。处理单元310平时不工作,当接收到温度监测模块定期采集的温度时才工作。该唤醒源可能是计时器,其通过每隔预定时长向处理单元310发出脉冲信号来唤醒处理单元310执行相关控制。另外,该唤醒源也可能是另一个处理单元310,其执行到某个程序语句时,按照该语句触发唤醒当前处理单元310工作。本公开实施例的改进主要集中在调压控制器330,其使得在满足上述调压调频指令,从而将双轨存储器210的第一供电电压和第二供电电压分别调节到其相应目标值的过程中,保证其每一时刻的两个供电电压都满足电压约束关系,维持双轨存储器210工作稳定性。调压控制器330的详细结构在下文详述。

电源管理电路350是根据对处理单元310和双轨存储器210的调压信号分别调节处理单元310和双轨存储器210的供电电压的部件。具体地,在本公开实施例中,它以所述第一调压信号和所述第二调压信号分别调节双轨存储器210的第一供电电压和第二供电电压。

时钟管理单元370是根据对处理单元310和双轨存储器210的变频信号分别调节处理单元310和双轨存储器210的时钟频率的部件。

电压门控单元360是对处理单元310的通断电进行控制的部件。当调压控制器330没有接收到用于触发处理单元310工作的调压调频指令时,处理单元310处于不工作状态,电压门控单元360给处理单元310断电。当调压控制器330接收到用于触发处理单元310工作的调压调频指令时,电压门控单元360给处理单元310通电,使处理单元310工作。示例性地,电压门控单元360为晶体管,晶体管的栅极连接调压控制器330以接收电压门控信号,源极连接电源,漏极连接处理单元310。这样,电压门控信号使得晶体管导通后,则电源向处理单元310供电。

温度传感器321感测处理单元310和双轨存储器210工作的实时温度。工艺传感器322感测处理单元310和双轨存储器210工作时的工艺偏差。它们在AVFS的情形下,如后文所述,用于确定处理单元310和双轨存储器210的供电电压目标值。

接着,参看图2B,图2B与图2A的区别在于,处理单元310由中央处理器12变成了加速单元230。在人工智能时代,数据中心的服务器(计算装置)140需要处理大量的神经网络运算。神经网络运算需要大规模的并行运算。传统的中央处理单元的架构设计,使得在架构中控制单元、存储单元占用了很大一部分空间,而计算单元占用的空间反而不足,因此其在逻辑控制方面十分有效,而在大规模并行计算方面则效率不够。在这种情况下,采用具有大量加速单元230的服务器(计算装置)140。如图2B所示,这种计算装置140包括由总线连接的双轨存储器210、调度单元集群270和加速单元集群280。调度单元集群270包括多个调度单元220。加速单元集群280包括多个加速单元230。

如上所述,传统的中央处理单元在逻辑控制方面十分有效,在大规模并行计算方面则效率不够。加速单元230是用来针对不同功能和不同领域的计算进行更有效的提高运算速度的处理的单元,例如专用于加速神经网络模型的运算处理速度的处理单元(NPU)。它是采用数据驱动并行计算的架构,用于处理各神经网络节点的大量运算(例如卷积、池化等)的处理单元。由于各神经网络节点的大量运算(例如卷积、池化等)中的数据和中间结果在整个计算过程中紧密联系,会被经常用到,用现有的中央处理单元构架,由于中央处理单元的核内的内存容量很小,因此要大量频繁访问核外存储器,造成处理的低效。采用这种专用于加速神经网络模型的运算处理速度的加速单元,由于加速单元中具有适于神经网络计算用到的存储容量的片上内存,避免频繁访问核外部的存储器,就能大大提高处理效率,提高计算性能。本公开实施例中,加速单元230可以体现为专门为神经网络运算处理设计的处理单元(NPU)、图形处理单元(GPU)、专用集成电路(ASIC)和现场可编程门阵列(FPGA)等。

调度单元220是对加速单元230进行调度、向各加速单元230分配要执行的待执行指令序列的处理单元,它可以采用中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等多种形式。调度单元220可以同时充当执行传统的逻辑控制方面的运算的中央处理单元。调度单元220从存储器210读取待执行指令。当发现该指令是逻辑控制指令,则由调度单元220自己执行该执行,完成相应逻辑控制运算。如果发现该指令是需要加速单元230处理的指令,则分配给加速单元230执行。加速单元230要接受调度单元220的调度。

以神经网络运算为例。双轨存储器210中存储有各种神经网络模型,包括这些模型的节点和节点的权重数据等。这些神经网络模型当需要时被图2B中的一个调度单元220部署到一个加速单元230。即,调度单元220可以通过指令的形式向加速单元230发送模型中的参数(如各节点的权重)在双轨存储器210中的地址。加速单元230在实际使用该神经网络模型进行计算时,就会根据这些参数(例如权重)在双轨存储器210中的地址,直接在双轨存储器210中寻址这些参数,将其暂存在其片上内存中。加速单元230在实际使用该神经网络模型进行计算时,调度单元220还会将模型的输入参数通过指令的形式发送给加速单元230,暂存在加速单元230的片上内存中。这样,加速单元230就可以根据这些输入参数和模型中的参数(例如权重)进行推理计算。

图2B的外围管理组件300的内部结构和各部件的功能与图2A完全相同,故不赘述。

调压控制器

如图2A和2B所示,根据本公开一个实施例的调压控制器330包括电压确定单元333、调压信号生成单元331、变频信号生成单元332。

电压确定单元333接收调压指令并根据调压指令确定第一供电电压的第一目标值和第二供电电压的第二目标值。调压指令即上述的调压调频指令。由于本公开实施例着重于双轨存储器210的两个供电电压的调节,不着重于调频,因此将调压调频指令简称为调压指令。第一供电电压的第一目标值即第一供电电压要调节成的值。第二供电电压的第二目标值即第二供电电压要调节成的值。另外,它可能还确定用于处理单元310的供电电压的目标值,但这部分不是本公开实施例关心的。为了降低功耗,处理单元310和双轨存储器210在正常状态下不工作,当接收到唤醒源的唤醒时才以需要的频率和供电电压工作。这个需要的频率即目标频率。该需要的供电电压对于双轨存储器210来说就是上述第一供电电压的第一目标值和第二供电电压的第二目标值。

如图3A所示,在调压控制器330是DVFS控制器的情况下,在一个实施例中,电压确定单元333包括目标寄存器410、频率电压对应关系库420、和比较器430。目标寄存器410存储从所述调压指令获得的目标频率。目标频率是处理单元310和双轨存储器210的时钟频率要调节到的值。它一般根据唤醒源的性质决定,并包含在调压指令中。例如,如果唤醒源是一个温度监测模块,其上报的是感测的温度,那么处理单元310一般对感测的温度进行处理需要的时钟频率是固定的,因此,在调压指令中上报该固定频率。电压确定单元333接收到调压指令后,将目标频率存储在目标寄存器410中。频率与电压对应关系库420事先存储设置好的目标频率与所述第一目标值、所述第二目标值之间的对应关系。在双轨存储器210工作在某一时钟频率时,其需要的第一供电电压的大小、第二供电电压的大小也是相对固定的,因此可以将它们对应地事先存储在频率与电压对应关系库420中。当目标寄存器410中新存入一个目标频率,比较器430就可以基于所述目标频率查找频率与电压对应关系库420,得到相应的第一目标值和第二目标值。

如图3B所示,在调压控制器330是AVFS控制器的情况下,在一个实施例中,电压确定单元333包括目标寄存器410、可用频率库440、和逻辑处理单元450。目标寄存器410与图3A中的目标寄存器410相同,故不赘述。可用频率库440存储预先设置的可用频率。这些可用频率是经过验证能够使处理单元310和双轨存储器210正常工作的频率点。只有调压指令所含的目标频率与这些频率点中的一个匹配,才能进行后续确定第一目标值和第二目标值的任务,否则该目标频率不符合要求,提示唤醒源重新提交所需的目标频率。AVFS是通过传感器实时感测应用环境来确定所需的供电电压的,在本公开实施例中具体由温度传感器321感测的实时温度和工艺传感器322感测的工艺偏差确定第一供电电压的第一目标值和第二供电电压的第二目标值。可以在逻辑处理单元450中预先保存第一供电电压和第二供电电压随实时温度和工艺偏差变化的函数关系。逻辑处理单元450根据温度传感器321感测的实时温度和工艺传感器322感测的工艺偏差,按照该函数关系,可以得出第一供电电压的第一目标值和第二供电电压的第二目标值。

调压信号生成单元331负责将第一供电电压调节到电压确定单元333确定的第一目标值,将第二供电电压调节到电压确定单元333确定的第二目标值。与现有技术相区别,本公开实施例的上述过程不是同时调节第一供电单元和第二供电电压到其目标值,而是先让一个供电电压保持不变,根据两个供电电压的电压约束关系、和调节步长调节另一个供电电压(先让第二供电电压保持不变,调节第一供电电压),再让另一个供电电压保持不变,根据电压约束关系、和调节步长调节该供电电压(再让第一供电电压保持不变,调节第二供电电压),这样反复调节,直到两个供电电压都达到其目标值。在上述过程中,每个时间点都是有一个供电电压保持不变,另一个供电电压按照电压约束关系变化,充分保证了在调节过程中的每一个时刻,两个供电电压都是满足电压约束关系的,从而维持存储器工作稳定性。由于每次调压都是围绕一个调节步长来调节的,避免一次调压太多导致系统不稳定。

具体地,在一个实施例中,调压信号生成单元331在第二供电电压保持不变的情况下,确定用所述调节步长调节第一供电电压的步长调节结果,基于第二供电电压、以及第一供电电压和第二供电电压的电压约束关系确定第一供电电压容许范围。

调节步长是每次调节第一供电电压或第二供电电压时,对第一供电电压或第二供电电压的改变值。当电压确定单元333确定的第一目标值高于第一供电电压的当前值时,调节步长为正值,步长调节结果就是第一供电电压加上该正值的结果,即第一供电电压会增加。反之,调节步长为负值,步长调节结果就是第一供电电压加上该负值的结果,即第一供电电压会减少。在一个实施例中,上述调节步长可以由当前供电电压与目标值之间的距离、以及容许调节时间决定。当前供电电压与目标值之间差得越多,调节步长一般需要越大。容许调节时间越短,调节步长一般也越大。具体地,在一个实施例中,可以设置调节步长随所述距离、和容许调节时间变化的函数关系。然后,获得实际的当前供电电压与目标值之间的距离、以及容许调节时间后,将其代入函数关系,得到调节步长。

第一供电电压与第二供电电压的电压约束关系是指,第一供电电压与第二供电电压中的一个供电电压的变化范围受到另一个供电电压的制约的关系。在一个实施例中,该电压约束关系为:第一供电电压(VDD)不大于第二供电电压(VDDM)和第一设定值(margin_up)之和,且第一供电电压(VDD)不小于第二供电电压(VDDM)和第二设定值(margin_down)之差,其中,第一设定值和第二设定值为正数。即:

VDD≦VDDM+margin_up (公式1)

VDD≥VDDM-margin_down (公式2)

在获得第一供电电压和第二供电电压的电压约束关系后,将当前的第二供电电压代入该电压约束关系(如公式1和2),就得到第一供电电压的边界值,即上限值和下限值,从而得到第一供电电压容许范围。第一供电电压容许范围即由上限值和下限值定义的第一供电电压的变化区间。

接着,调压信号生成单元331可以针对步长调节结果是否落在所述第一供电电压容许范围之内作出判断。如果所述步长调节结果在所述第一供电电压容许范围之内,说明该步长调节结果没有违背上述电压约束关系,可以采纳该步长调节结果,第一调压信号生成单元510可以根据所述步长调节结果生成所述第一调压信号。如果所述步长调节结果不在所述第一供电电压容许范围之内,说明该步长调节结果违背了上述电压约束关系,不能采纳该步长调节结果,要将该步长调节结果压缩进该第一供电电压容许范围,即利用第一供电电压容许范围被超出的边界值,即上限值或下限值生成所述第一调压信号。例如,如果第一供电电压容许范围为【450mV,540mV】,步长调节结果为560mV,其超过上限值540mV,此时利用上限值540mV而不是步长调节结果560mV生成第一调压信号;如果第一供电电压容许范围为【450mV,540mV】,步长调节结果为430mV,其超出下限值450mV,此时利用下限值450mV而不是步长调节结果430mV生成第一调压信号。

如图4的例子中,假设第一供电电压(VDD)和第二供电电压(VDDM)的初始值都是750mV,相应的第一目标值和第二目标值都是1000mV。调节步长是80mV,margin_up为50,margin_down为200。最开始先保持第二供电电压(VDDM)不变,进入第一次调节第一供电电压(VDD)的环节。在第一次调节VDD时,首先得到第一供电电压(VDD)的步长调节结果750+80=830(mV)。将当前第二供电电压750mV代入公式1和2,得到第一供电电压(VDD)的取值范围为750-200(mV)≦VDD≦750+50(mV),即550mV≦VDD≦800mV。由于步长调节结果830mV大于该范围的上限值,将该上限值800mV加入第一调压信号中发给电源管理电路350,让电源管理电路350按照800mV调节给双轨存储器210的第一供电电压(VDD)。

接着,调压信号生成单元331可以在第一供电电压保持不变的情况下,确定用所述调节步长调节第二供电电压的步长调节结果,基于第一供电电压和所述电压约束关系确定第二供电电压容许范围。

当电压确定单元333确定的第二目标值高于第二供电电压的当前值时,调节步长为正值,步长调节结果就是第二供电电压加上该正值的结果,即第二供电电压会增加。反之,调节步长为负值,步长调节结果就是第二供电电压加上该负值的结果,即第二供电电压会减少。在一个实施例中,上述调节步长的设置方法与设置第一供电电压的调节步长时相同,故不赘述。

基于第一供电电压和所述电压约束关系确定第二供电电压容许范围时,可以将当前第一供电电压代入所述电压约束关系,得到第二供电电压的上限值和下限值,从而得到第二供电电压容许范围。第二供电电压容许范围就是该上限值和下限值之间的区间。

如果用第一供电电压(VDD)来表示第二供电电压(VDDM)的变化范围,则电压约束关系为:第二供电电压(VDDM)不大于第一供电电压(VDD)和第二设定值(margin_down)之和,且第二供电电压(VDDM)不小于第一供电电压(VDD)和第一设定值(margin_up)之差,其中,第一设定值和第二设定值为正数,即:

VDDM≦VDD+margin_down (公式3)

VDDM≥VDD-margin_up (公式4)。

接着,调压信号生成单元331可以针对步长调节结果是否落在所述第二供电电压容许范围之内作出判断。如果所述步长调节结果在所述第二供电电压容许范围之内,说明该步长调节结果没有违背上述电压约束关系,可以采纳该步长调节结果。因此,第二调压信号生成单元520根据所述步长调节结果生成所述第二调压信号。如果所述步长调节结果不在所述第二供电电压容许范围之内,说明该步长调节结果违背了上述电压约束关系,不能采纳该步长调节结果。第二调压信号生成单元520根据第二供电电压容许范围被超出的边界值,即上限值或下限值生成所述第二调压信号。

如图4的例子中,在上述第一次调节了第一供电电压(VDD)之后,保持第一供电电压(VDD)为800mV不变,开始第一次调节第二供电电压(VDDM)的环节。首先得到第二供电电压(VDDM)的步长调节结果750+80=830(mV)。将当前第一供电电压800mV代入公式3和4,得到第二供电电压(VDDM)的取值范围为800-50(mV)≦VDDM≦800+200(mV),即750mV≦VDDM≦1000mV。由于步长调节结果830mV在该范围之内,将该步长调节结果830mV加入第二调压信号中发给电源管理电路350,让电源管理电路350按照830mV调节给双轨存储器210的第二供电电压(VDDM)。

接着,调压信号生成单元331按照上述方法反复调节第一供电电压(VDD)和第二供电电压(VDDM),直至所述第一供电电压(VDD)达到所述第一目标值,且所述第二供电电压(VDDM)达到所述第二目标值。具体地,每当调压信号生成单元331生成第一调压信号或第二调压信号后,要确定所述第一调压信号对应的第一供电电压是否超出第一目标值,或所述第二调压信号对应的第二供电电压是否超出第二目标值。如果所述第一调压信号对应的第一供电电压超出第一目标值,说明第一供电电压已经调得超出预期了,没有必要过度调节,可以将超出所述第一目标值的第一供电电压调节到所述第一目标值。如果所述第二调压信号对应的第二供电电压超出第二目标值,说明第二供电电压已经调得超出预期了,没有必要过度调节,可以将超出所述第二目标值的第二供电电压调节到所述第二目标值。

仍以图4继续为例,在第一次调节第一供电电压(VDD)和第二供电电压(VDDM)后,第一供电电压(VDD)变成800mV,第二供电电压(VDDM)变成830mV。然后,保持第二供电电压(VDDM)不变,进入第二次调节第一供电电压(VDD)的环节。首先,得到第一供电电压(VDD)的步长调节结果800+80=880(mV)。将当前第二供电电压830mV代入公式1和2,得到第一供电电压(VDD)的取值范围为830-200(mV)≦VDD≦830+50(mV),即630mV≦VDD≦880mV。由于步长调节结果880mV在上述范围内且没有达到第一目标值1000mV,将该步长调节结果880mV加入第一调压信号中发给电源管理电路350,让电源管理电路350按照880mV调节给双轨存储器210的第一供电电压(VDD)。

然后,保持第一供电电压(VDD)为880mV不变,开始第二次调节第二供电电压(VDDM)的环节。首先得到第二供电电压(VDDM)的步长调节结果830+80=910(mV)。将当前第一供电电压880mV代入公式3和4,得到第二供电电压(VDDM)的取值范围为880-50(mV)≦VDDM≦880+200(mV),即830mV≦VDDM≦1080mV。由于步长调节结果910mV在该范围之内且没有达到第二目标值1000mV,将该步长调节结果910mV加入第二调压信号中发给电源管理电路350,让电源管理电路350按照910mV调节给双轨存储器210的第二供电电压(VDDM)。

然后,保持第二供电电压(VDDM)不变,进入第三次调节第一供电电压(VDD)的环节。首先,得到第一供电电压(VDD)的步长调节结果880+80=960(mV)。将当前第二供电电压910mV代入公式1和2,得到第一供电电压(VDD)的取值范围为910-200(mV)≦VDD≦910+50(mV),即710mV≦VDD≦960mV。由于步长调节结果960mV在上述范围内且没有达到第一目标值1000mV,将该步长调节结果960mV加入第一调压信号中发给电源管理电路350,让电源管理电路350按照960mV调节给双轨存储器210的第一供电电压(VDD)。

然后,保持第一供电电压(VDD)为960mV不变,开始第三次调节第二供电电压(VDDM)的环节。首先得到第二供电电压(VDDM)的步长调节结果910+80=990(mV)。将当前第一供电电压960mV代入公式3和4,得到第二供电电压(VDDM)的取值范围为960-50(mV)≦VDDM≦960+200(mV),即910mV≦VDDM≦1160mV。由于步长调节结果990mV在该范围之内且没有达到第二目标值1000mV,将该步长调节结果990mV加入第二调压信号中发给电源管理电路350,让电源管理电路350按照990mV调节给双轨存储器210的第二供电电压(VDDM)。

然后,保持第二供电电压(VDDM)不变,进入第四次调节第一供电电压(VDD)的环节。首先,得到第一供电电压(VDD)的步长调节结果960+80=1040(mV)。将当前第二供电电压990mV代入公式1和2,得到第一供电电压(VDD)的取值范围为990-200(mV)≦VDD≦990+50(mV),即790mV≦VDD≦1040mV。步长调节结果1040mV在上述范围内,因此将步长调节结果1040mV加入第一调压信号中。但是,该1040mV超出第一目标值1000mV,将超出第一目标值1000mV的步长调节结果1040mV调回第一目标值1000mV,即将第一调压信号中的1040mV改成1000mV,发给电源管理电路350,让电源管理电路350按照1000mV调节给双轨存储器210的第一供电电压(VDD)。

然后,保持第一供电电压(VDD)为1000mV不变,开始第四次调节第二供电电压(VDDM)的环节。首先得到第二供电电压(VDDM)的步长调节结果990+80=1070(mV)。将当前第一供电电压1000mV代入公式3和4,得到第二供电电压(VDDM)的取值范围为1000-50(mV)≦VDDM≦1000+200(mV),即950mV≦VDDM≦1200mV。步长调节结果1070mV在该范围之内,因此将步长调节结果1070mV加入第二调压信号中。但是,该1070mV超出第二目标值1000mV,将超出第一目标值1000mV的步长调节结果1070mV调回第二目标值1000mV,即将第二调压信号中的1070mV改成1000mV,发给电源管理电路350,让电源管理电路350按照1000mV调节给双轨存储器210的第二供电电压(VDDM)。

图6更形象地表示出了本公开实施例反复调节第一供电电压和第二供电电压的过程。在步骤710中,调压控制器330还没有接收到调压指令,处于空闲状态。当接收到调压指令后。在步骤720中,调压控制器330先根据调节步长、电压约束关系生成第一调压信号,调节第一供电电压。在调节第一供电电压时,如果调节后的第一供电电压超出了第一供电电压的第一目标值,则调节第一供电电压回到第一目标值。然后,在步骤730中,调压控制器330再根据调节步长、电压约束关系生成第二调压信号,调节第二供电电压。在调节第二供电电压时,如果调节后的第二供电电压超出了第二供电电压的第二目标值,则调节第二供电电压回到第二目标值。然后,不断反复执行步骤720和730,直到所述第一供电电压达到所述第一目标值,且所述第二供电电压达到所述第二目标值,即调压结束740。

另外,变频信号生成单元332可以根据目标频率生成变频信号(例如将目标频率加入变频信号)发给时钟管理单元370。时钟管理单元370根据变频信号中的目标频率,生成给双轨存储器210和处理单元310的时钟。

本公开实施例的两路电压的调节方法

另外,如图5所示,根据本公开的一个实施例,还提供了一种调压控制方法,用于双轨存储器210的第一供电电压和第二供电电压的调节。所述调压控制方法包括:

步骤610、根据调压指令确定所述第一供电电压的第一目标值和所述第二供电电压的第二目标值;

步骤620、在第二供电电压保持不变的情况下,确定用所述调节步长调节第一供电电压的步长调节结果,基于第二供电电压、以及第一供电电压和第二供电电压的电压约束关系确定第一供电电压容许范围,如果所述步长调节结果在所述第一供电电压容许范围之内,根据所述步长调节结果生成第一调压信号,用于调节所述第一供电电压,如果所述步长调节结果不在所述第一供电电压容许范围之内,根据第一供电电压容许范围被超出的边界值生成所述第一调压信号;在第一供电电压保持不变的情况下,确定用所述调节步长调节第二供电电压的步长调节结果,基于第一供电电压和所述电压约束关系确定第二供电电压容许范围,如果所述步长调节结果在所述第二供电电压容许范围之内,根据所述步长调节结果生成第二调压信号,用于调节第二供电电压,如果所述步长调节结果不在所述第二供电电压容许范围之内,根据第二供电电压容许范围被超出的边界值生成所述第二调压信号;如此反复调节,直至所述第一供电电压达到所述第一目标值,且所述第二供电电压达到所述第二目标值。

上述步骤的实现细节在前述装置实施例中已经详细描述,为节约篇幅,故不赘述。

本公开实施例的商业价值

本公开实施例在调节给双轨存储器的逻辑器件供电的第一供电电压和给双轨存储器的存储阵列供电的第二供电电压时,先让一个供电电压保持不变,根据两个供电电压的电压约束关系、和调节步长调节另一个供电电压,再让另一个供电电压保持不变,根据电压约束关系、和调节步长调节该供电电压,这样反复调节,直到两个供电电压都达到其目标值。在上述过程中,每个时间点都是有一个供电电压保持不变,另一个供电电压按照电压约束关系变化,充分保证了在调节过程中的每一个时刻,两个供电电压都是满足电压约束关系的,从而维持存储器工作稳定性,防止了同步调压可能会造成的电压抖动较大、在某一瞬间超出电压约束关系的后果,具有很大的市场前景。

本领域的技术人员能够理解,本公开可以实现为系统、方法和计算机程序产品。因此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本公开还可以实现为一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。

计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,以及上述任意合适的组合。

可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如JAVA、C++,还可以包括常规的过程式程序设计语言,例如C。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于基于中国语言便携式录音装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!