具体实施方式
以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
本公开实施例提供两路电压的调节方法可应用任何集成了双轨存储器的系统中,不论双轨存储器是嵌入式还是独立的,也不论双轨存储器的存储器类型,例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、内容可寻址存储器(CAM)、闪速存储器、寄存器堆(register file)等。此外,本领域的技术人员可以理解,虽然下述实施例是基于片上系统的DVFS或AVFS控制器描述如何调整双轨存储器的两路电压,但在其他场景,只有两路电压之间存在约束,也可以使用本公开实施例提供的两路电压的调节方法。
片上系统
参考图上所示,片上总线102将各种元件与处理单元101耦接到一起。片上总线102例如AXI总线。AXI总线是ARM公司提出的AMBA(Advanced Microcontroller BusArchitecture)3.0及以上协议中最重要的部分,它是面向于高性能、高带宽、低延迟的片内总线。AIX总线将地址/控制和数据相位分离,支持不对齐的数据传输,同时支持突发传输和乱序传输,因此满足了超高性能和复杂的片上系统设计的需求。
如图上所示,调频调压控制器103、高速内存104通过片上总线102与处理单元101耦接。调频调压控制器103与时钟管理单元105以及位于片外的电源管理电路211耦接。
在一些实施例中,电源管理电路211也可以位于片上系统100的内部。片上系统100还可以包括未被示出的接口电路,通过接口电路与片外的外部设备耦接。外部设备例如可以为文字、音频和视频的输入/输出设备和各种其他存储器。片上系统100可通过接口电路访问片外的外部设备。不同于设置在片上系统的高速内存104,位于片外的存储器可以容量更大但速度较慢、成本较低。在一些实现中,高速内存104可以为静态随机存取存储器(SRAM),而片外的存储器为DRAM(动态随机存取存储器)和闪存(flash)存储器。
片上系统100内嵌有基本软件(例如嵌入式控制系统121)和应用程序(例如应用程序A-N)。另有其他的未被示出的应用程序可以存储在片上系统100之外的存储器中,这些应用程序可以通过接口电路拷贝到片上系统100中的高速内存104中执行,或者通过接口电路访问片上系统100上的资源。
调频调压控制器103生成调频信号REGF和调压信号REGV,将调频信号REGF发送给时钟电路管理单元105,将调压信号REGV发送给电源管理电路211。调频调压控制器103还用于在异常状况下发送告警信号ALARM并提供给处理单元101,以采取相应措施。
在本实施例中,调频调压控制器103可以是DVFS控制器,也可以是AVFS控制器。
当高速内存104不是双轨存储器时,所有部件,包括处理单元、高速内存104、调频调压控制器103,共用系统供电电压。相应地,DVFS控制器103的实现逻辑如下:DVFS控制器103经由片上总线102接收从处理单元101发送的频率配置指令和调频调压指令,从频率配置指令读取多个频率电压对(这些频率电压对是经过验证的、使系统正常工作的频率和电压),并将其存储在DVFS控制器中,同时,DVFS控制器103从调频调压指令中获得目标频率,将目标频率与多个频率电压对中的每个频率电压对进行比对,当某个频率电压对中的频率与目标频率相符时,将对应的电压值取出,生成调压信号REGV,发送给电源管理电路211,电源管理电路211据此调节处理单元的供电电压VCPU,同时,DVFS控制器生成调频信号REGF发送时钟管理单元105,时钟管理单元105生成时钟信号FCPU提供给处理单元101。
而当调频调压控制器103为AVFS控制器时,其实现逻辑如下:从片上系统102接收到频率配置指令和调频调压指令,从频率配置指令中读取至少一个频率,并将其存储在AVFS控制器103中。同时,AVFS控制器从调频调压指令中获得目标频率,将目标频率与至少一个频率进行比对,当某个频率与目标频率相符时,根据从传感器获取到的实时检测数据和目标频率计算电压值,根据电压值生成调压信号REGV,发送给电源管理电路211,电源管理电路211据此调节提供给处理单元的供电电压VCPU,同时,AVFS控制器根据目标频率生成调频信号REGF发送时钟管理单元105,时钟管理单元105生成处理单元101的时钟信号FCPU。应该指出的是,频率配置指令包含的频率应为经过验证能够使片上系统100正常工作的频率点。
但是当高速内存104是双轨存储器时,处理单元、高速内存104、调频调压控制器103、双轨存储器104的逻辑器件等共用一个系统供电电压,而双轨存储器104的存储阵列使用另一个供电电压,此时需要调节两路电路且在电压调节的过程中,系统供电电压和存储阵列的供电电压需时刻满足约束关系。因此电源管理电路211根据调压信号调节系统供电电压VCPU和存储阵列的供电电压VSTG。应理解,在双轨存储器的系统中,调频调压控制器103可向电源管理电路211发送一路调压信号,该调压信号表征调节两路供电电压,或发送两路调压信号,该两路调压信号分别调节一路供电电压。
图2是本公开一实施例的DVFS控制器的结构图。图3是本公开另一实施例的AVFS控制器的结构图。
如图2所示,电压确定单元203用于确定系统供电电压和存储阵列的供电电压各自要调节到的目标值。电压确定单元203包括寄存器F、多个比较器203和选择器2032。寄存器F用于存储目标频率。寄存器组F-V用于存储频率和电压的对应关系。如图上所示,由于使用双轨存储器,因此,该对应关系可以是频率、系统供电电压和存储阵列的供电电压之间的对应关系。多个比较器203用于将寄存器F中的目标频率与寄存器组F-V中的频率和电压之间的对应关系比对,如果目标频率和其中之一的频率相符,则得到其对应的系统供电电压和存储阵列的供电电压作为各自要调节到的目标值,并经由选择器2032提供给调压信号生成单元202。调压信号生成单元202生成针对系统供电电压的调压信号REGV1和针对存储阵列的供电电压的调压信号REGV2,该调压信号REGV1和REGV2会被提供给电源管理电路211,以控制它输出供电电压。变频信号生成单元201生成调频信号REGF,以调节处理单元的时钟频率。错误处理单元204用于在检测到目标频率与任意频率电压对中的频率都不相符时生成告警信号ALARM,并将告警信号ALARM提供给相应处理部件。当然,如果寄存器组F-V还可以仅存储频率和系统供电电压系统之间的对应关系,通过检索寄存器组F-V得到系统供电电压要调节到的目标值,然后基于供电电压和存储阵列的供电电压之间的约束关系,确定存储阵列的供电电压要调节到的目标值。
如图3所示,AVFS控制器103包括用于存储频率点表1031的寄存器组、变频控制单元306、电压确定单元302、调压信号生成单元309、温度传感器控制器303、工艺传感器控制器304和电压传感器控制器305。频率点表1031包括多个频率,该多个频率为AVFS控制器103根据频率配置指令生成。变频控制单元306在判断频率配置指令中指定的目标频率与频率点表1031的某一频率相符时,生成调频信号REGF,以调节处理单元的时钟频率。
温度传感器控制器303和温度传感器306耦接并组成温度传感器组件,工艺传感器控制器304和工艺传感器307耦接并组成工艺传感器组件,电压传感器控制器305和电压传感器308耦接并组成电压传感器组件。温度传感器306、工艺传感器307和电压传感器308位于片上系统内部但是在AVFS控制器450之外。传感器控制器303-305通过温度传感器306、工艺传感器307和电压传感器308采集片上系统的实时温度、工艺偏差和实时电压。
电压确定单元302用于确定系统供电电压和存储阵列的供电电压要调节到的目标值。例如,电压确定单元302可基于预定义的电压计算规则根据系统的实时温度和工艺偏差计算出系统供电电压要调节到的目标值,或者基于预定义的电压计算规则根据实时温度确定系统供电电压要调节到的目标值后再根据工艺偏差做电压偏置,然后根据系统供电电压的目标值确定存储阵列的供电电压的目标值。在调压操作完成之后,电压确定单元302还可以将目标值与电压传感器308采集到的实时电压比对,以确定调压操作效果如何。调压信号生成单元309基于系统供电电压和存储阵列的供电电压要调节到的目标值生成针对系统供电电压的调压信号REGV1和针对存储阵列的供电电压的调压信号REGV2,该调压信号REGV1和REGV2会被提供给电源管理电路211,以控制它输出供电电压。
在本实施例中,调压信号生成单元接收系统供电电压和存储阵列的供电电压各自要调节到的目标值,然后根据各自要调节到的目标值生成两个调压信号REGV1和REGV2。
但是正如背景技术所指出的那样,两路电压都发生变动会对彼此之间的稳定性产生影响。因此,改进的调压信号生成单元包括:针对系统供电电压和逻辑器件的两路电压,交替地生成针对当前要调节的一路电压的调压信号,直到其中的一路电压达到其目标值,每次生成调压前,通过约束关系确定当前要调节的一路电压的临时目标值,即必须确保该临时目标值与另一路电压的当前值满足约束关系,直到将两路电压都调节到各自的目标值,该交替地生成针对当前要调节的一路电压的调压信号的循环步骤才停止。
在一个实施例中,所述确定当前要调节的一路电压的临时目标值包括以下步骤:
首先对当前将要调节的一路电压增/减第一步长,以得到该一路电压的临时目标值;
然后将该一路电压的临时目标值与其目标值比较,如果该一路电压的临时目标值小于其目标值,则将该一路电压的临时目标值设定为其目标值,判断该一路电压的临时目标值与另一路电压的当前值是否满足约束关系,如果该一路电压的临时目标值与另一路电压的当前值满足约束关系,则保持该一路电压的临时目标值,如果该一路电压的临时目标值与另一路电压的当前值不满足约束关系,则将该一路电压的临时目标值设定为该一路电压的当前值减去第二步长,且该一路电压的临时目标值与另一路电压的当前值满足约束关系;最终将该一路电压调节为其临时目标值。
在一个实施例中,预先构建电压关系数据,该数据表征逻辑器件的供电电压的取值范围划分的多个子区间与存储阵列的供电电压采用的多个固定值分别对应,每个子区间内的任意值和其对应的固定值之间满足存储阵列的供电电压和存储阵列的供电电压的约束关系,
则所述确定所述当前要调节的一路电压的临时目标值包括以下步骤:
如果当前要调节的一路电压为存储阵列的供电电压,则根据调压方向从电压关系数据中获取与其当前值相邻的一固定值,并将该固定值作为所述当前要调节的一路电压的临时目标值;
如果当前要调节的一路电压为逻辑器件的供电电压,则根据调压方向从电压关系数据中获取与其当前值相邻的一子区间,并从该子区间内获取任意一个数值作为所述当前要调节的一路电压的临时目标值;
其中,所述电压关系数据表征所述逻辑器件的供电电压的取值范围划分的多个子区间与所述存储阵列的供电电压采用的多个固定值分别对应,每个子区间内的任意值和其对应的固定值之间满足所述存储阵列的供电电压和所述存储阵列的供电电压的约束关系。
在一个实施例中,存储阵列的供电电压不大于逻辑器件的供电电压和第一设定值之和,同时,不小于逻辑器件的供电电压和第二设定值的差。基于此,上文中的第一步长可设置为等于第一设定值与第二设定值之和除以2。在另一个实施例中,存储阵列的供电电压和逻辑器件的供电电压之间的差距在第三设定值和第四设定值之间。
在本公开实施例中,交替地调节两路电压,并且在每一次调节前,基于约束关系确定当前要调节的一路电压的临时目标值,以确保临时目标值与另一路电压的当前值满足约束关系。这种调压方法,根据约束关系每次调节只调节一路电压,从而确保电压调节的稳定性。
本公开实施例的两路电压的调节方法
图4是本公开一实施例提供的两路电压的调节方法的流程图。如图4所示,该调节方法包括步骤S401、S402和S403。
在步骤S401中,确定两路电压各自要调节到的目标值。两路电压各自要调节到的目标值之间存在约束条件。两路电压可以参考图1中的高速内存104,如果104是双轨存储器的话,则在调节供电电压时,系统会同时调节其存储阵列的供电电压和逻辑器件的供电电压。约束关系是两路电压即使在变动过程中也需要时时达到的数值关系,例如,对于存储器来讲,存储阵列的供电电压和逻辑器件的供电电压的约束关系是要求时时地,存储阵列的供电电压不大于逻辑器件的供电电压和第一设定值之和,同时,不小于逻辑器件的供电电压和第二设定值的差。第一设定值和第二设定值都是整数。同时,存储阵列的供电电压和逻辑器件都有各自的取值范围。
步骤S402是针对两路电压,交替地执行调压操作,直到其中一路电压达到其目标值。该步骤是循环体,在该循环体中,先对其中的一路电压执行电压调节,然后判断该路电压是否达到其目标值,如果是,则跳出循环体,如果不是,则对另一路电压执行电压调节,然后判断该路电压是否达到其目标值,如果是,则跳出循环体,如果不是,则继续对前面的一路电压进行电压调节,以此类推。下面具体说明步骤S4021至S4027。
在步骤S4021中,对该一路电压(指当前要被调节的那路电压)的当前值增/减第一步长,以得到该一路电压的临时目标值。该一路电压是当前正在被调节的那路电压。根据该路电压的当前值和目标值,能够确定该一路电压的调节方法(增加或者减少第一步长)。第一步长预先设置,例如,设置第一步长等于S401中提及的第一设定值和第二设定值之和,或者降压时,将第一步长设置为S401中提及的第二设定值,但升压时,将第一步长设置为S401中提及的第一设定值,但不局限与此,
在步骤S4021中,判断该一路电压的临时目标值是否超过其目标值。如果是,则执行步骤S4023,如果否,则执行步骤S4024。降压时,所述该一路电压的临时目标值是否超过其目标值是指该一路电压的临时目标值比其目标值小,升压时,所述该一路电压的临时目标值是否超过其目标值是指该一路电压的临时目标值比其目标值大。
在步骤S4023中,设置该一路电压的临时目标值等于其目标值。
在步骤S4024中,判断该一路电压的临时目标值与另一路电压的当前值是否满足约束关系。如果是,则执行步骤S4026,如果否,则执行步骤S4025。
在步骤S4025中,根据约束关系,对该一路电压的当前值增/减第二步长作为该一路电压的临时目标值。优选地,将该一路电压的当前值增/减第二步长得到的临时目标值接近根据约束关系限定的边界值,例如,假设第一供电电压属于区间[第二供电电压-第二设定值,第二供电电压+第一设定值],则降压时,可让第一供电电压的临时目标值等于第二供电电压的当前值-第二设定值,而升压时,则可让第一供电电压的临时目标值等于第二供电电压的当前值+第一设定值。
步骤S4021-S4025指定在不同情况下该一路电压的临时目标值应等于哪个数值。
在步骤S4026中,将该一路电压调节为其临时目标值,将该一路电压的当前值设置为该一路电压的临时目标值。
在步骤S4027中,判断该一路电压的当前值是否达到其目标值。如果否,则跳转到步骤S4021继续执行循环体,如果否,则跳出循环体,执行步骤S403。
在步骤S403中,将另一路电压调节到其目标值。
当跳出循环体时,其中的一路电路必定已经调节为目标值,则只需要将另一个路电压调节为目标值即可。由于设定两路电压的目标值满足约束关系,因此,可以一次性将另一路电压调节为目标值,也可以经由几个临时目标值将另一路电压调节到目标值。
在本实施例中,交替地调节两路电压,并且针对每一次调节,基于设定步长、约束关系以及目标值来确定每个调节要达到的临时目标值,以确保每个调节中的两路电压在任意时刻的当前值都满足约束关系。这种交替调压方式,每次调节只调节一路电压,通过设置步长,能够在有限数量步长之后使每路电压达到目标值,从而兼顾了电压调节的稳定性和效率。
下面以示例继续说明。在本示例中,设定系统供电电压的初始值为x0,要将系统供电电压调整为x_target,任意时刻的系统供电电压用x表示,存储阵列的供电电压的初始值为y0,要将存储阵列的供电电压调整为y_target,任意时刻的存储阵列的供电电压用y表示,其中任意时刻的系统供电电压和存储阵列的供电电压满足约束:y-B<X<y+A,即X+B>y>X-A,A和B都是正整数。x_target和y_target可基于调频调压指令计算出来。
图5示出了电压调节操作所经历的多个电压值。
初始时刻,系统供电电压的初始值和存储阵列的供电电压的初始值{x0,y0}满足电压约束:y0+A>x0>y0-B。
第一时刻,从x0中减去设定步长step,得到x1,此时{x1,y0}应满足电压约束:y0+A>x1>y0-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将系统供电电压从x0降压到x1的调压信号REGV1并发送给电源管理电路211。
第二时刻,从y0中减去步长step,得到y1,此时{x1,y1}应满足电压约束:y1+A>x1>y1-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将存储阵列的供电电压从y0降压到y1的调压信号REGV2并发送给电源管理电路211。
第三时刻,从x1中减去步长step,得到x2,此时{x2,y1}应满足电压约束:y1+A>x2>y1-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将系统供电电压从x1降压到x2的调压信号REGV1并发送给电源管理电路211。
第四时刻,从y1中减去步长step,得到y2,此时{x2,y2}应满足电压约束:y1+A>x2>y1-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将存储阵列的供电电压从y1降压到y2的调压信号REGV2并发送给电源管理电路211。
第五时刻,从x2中减去步长step,得到x3,此时{x3,y2}应满足电压约束:y2+A>x3>y2-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将系统供电电压从y2降压到x3的调压信号REGV1并发送给电源管理电路211。
第六时刻,从y2中减去步长step,得到y3,此时{x3,y3}应满足电压约束:y3+A>x3>y3-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将存储阵列的供电电压从y2降压到y3的调压信号REGV2并发送给电源管理电路211。
第七时刻,从x3中减去步长step,得到x4,此时{x4,y3}应满足电压约束:y3+A>x4>y3-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将系统供电电压从x3降压到x4的调压信号REGV1并发送给电源管理电路211。
第八时刻,从y3中减去步长step,得到y4,此时{x4,y4}应满足电压约束:y4+A>x4>y4-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将存储阵列的供电电压从y3降压到y4的调压信号REGV2并发送给电源管理电路211。
第九时刻,由于x4与目标电压x_target的距离已经小于step,因此,得到x_target,此时{x_target,y4}应满足电压约束:y4+A>x_target>y4-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将系统供电电压从x4降压到x_target的调压信号REGV1并发送给电源管理电路211。
第十时刻,由于y4与目标电压y_target的距离已经小于step,因此,得到y_target,此时{x_target,y_target}满足电压约束:y_target+A>x_target>y_target-B。从图上可以看出,约束满足。因此调压信号生成单元(图2中的202和309)生成将存储阵列的供电电压从y4降压到y_target的调压信号REGV2并发送给电源管理电路211。
该示例是一个理想举例,但实际上,例如{x1,y0}不满足约束时,可使用公式:x0-k=x11,k<x0-x1,只要找到能够满足约束的k值,就可以先将x0降压到x11。而且,在上面示例中,step是固定值,但实际上只要能够满足约束,每次降压采用的step也可以不同。另外,还应考虑到x_target和x0之间的距离,如果x_target和x0的距离小于step,则可以直接降压到x_target。
图6是本公开另一实施例提供的两路电压的调节方法的流程图。该调节方法预先构建电压关系数据,电压关系数据表示将两路电压中的第二供电电压的取值范围划分的多个区间与第一供电电压可采用的多个固定值分别对应,每个区间内的任意值和其对应的固定值之间满足第一供电电压和第二供电电压的约束关系。
该调节方法包括步骤S601、S602和S603。步骤S601是确定两路电压各自要调节到的最终目标值,该步骤可参考对步骤S401的详细描述。S603是将未达到目标值的第一供电电压或第二供电电压调节到其目标值,该步骤可参考对步骤S403的详细描述。
步骤S602是针对两路电压,交替地执行调压操作,直到其中一路电压达到其目标值。但是步骤S602的实施细节与步骤S402不同。具体地,步骤S602包括以下步骤。
在步骤S6021中,判断当前要调节的第一供电电压还是第二供电电压,当当前要调节的电压为第二供电电压时,执行步骤S6024,当当前要调节的电压是第一供电电压时,执行步骤S6022。
在步骤S6022和S6023中,根据调压方向从电压关系数据中获取与其当前值相邻的一固定值,并将该固定值作为当前要调节的一路电压的临时目标值。
在步骤S6024和S6025中,根据调压方向从电压关系数据中获取当前值所在的区间,并根据调压方向将该区间的一边界值作为当前要调节的电压的临时目标值,例如,升压时使用上边界值作为该电压的临时目标值,降压时使用下边界值作为该电压的临时目标值。
在步骤S6026中,将该电压调节为其临时目标值,将该电压的当前值设置为该一路电压的临时目标值。
在步骤S6027中,判断该电压的当前值是否达到其目标值,如果否,则跳转到步骤S6021处执行,否则,跳出循环体。
在本实施例中,交替地调节两路电压,并且针对每一次调节,基于电压关系数据来确保每次调节中的两路电压在任意时刻的当前值都满足约束关系,从而确保了电压调节的稳定性。
在一个实施例中,第二供电电压为片上系统中的双轨存储器的逻辑器件的供电电压(即系统供电电压),第一供电电压为片上系统中的双轨存储器的存储阵列的供电电压。当针对上述片上系统进行电压调节时,可通过调频调压指令确定第二供电电压要调节到的目标值,然后再根据两路电压的约束关系,确定第一供电电压要调节到的目标值,或者根据调频调压指令确定两路电压各自要调节到的目标值。
继续以示例方式说明本实施例。如图7所示,VDDM表征存储阵列的供电电压,VDD表征逻辑器件的供电电压,VDDM的取值范围是[0.675V,1.1V],VDD的取值范围是[0.55V,1.05V],VDD和VDDM之间的约束关系为:VDD>=VDDM-300mv,VDD<=VDDM+100mv。
则VDD和VDDM的电压关系数据可构建如下:对于VDDM,设置三个固定值:0.75V、0.85V和1V,对于VDD,构建与三个固定值一一对应的三个区间[0.55V,0.75V](对应于VDDM固定值0.75V)、[0.75V,0.85V](对应于VDDM固定值0.85V)和[0.85V,1.05V](对应于VDDM固定值1V)。所谓一一对应是指每个区间的任意值与其对应的固定值符合双轨存储器的逻辑器件和存储阵列的供电电压的电压约束关系。
在一个示例性的实施例中,当VDD小于0.75V时属于区间[0.55V,0.75V],则VDDM取与区间[0.55V,0.75V]对应的固定值0.75V。
在另一个示例性的实施例中,当VDD在区间[0.75V,0.85V]时,VDDM取与区间[0.75V,0.85V]对应的固定值0.85V。
在还有一个示例性的实施例中,当VDD在区间[0.85V,1.05V]时,VDDM取与区间[0.85V,1.05V]对应的固定值1V。
这样得到的VDD和VDDM持续符合双轨存储器的逻辑器件和存储阵列的供电电压的电压约束关系。
在上述实施例中,当VDD属于[0.55V,0.75V]时,由于VDDM固定为0.75,因此约束关系可以表示为:0.75V-300mv(0.45)<=VDD<=0.75V+100mv(0.85),这个约束关系无疑是成立的;当VDD属于[0.75V,0.85V]时,由于VDDM固定为0.85,因此约束关系可以表示为:0.85V-300mv(0.55)<=VDD<=0.85V+100mv(0.95),这个约束关系无疑是成立的;当VDD属于[0.85V,1.05V]时,由于VDDM固定为1V,因此约束关系可以表示为:1V-300mv(0.7V)<=VDD<=1V+100mv(1.1V),这个约束关系无疑也是成立的。
由此,当利用上述电压关系数据调节电压时,假设VDD的当前电压为1.05V,要调节到的目标值为0.55V,VDDM的当前电压是1V,要调节到的目标值为0.75V。则先将VDD从1.05V调节到0.85V,然后将VDDM从1V调节到0.85V,再将VDD从0.85V调节到0.75V,然后将VDDM从0.75V,再将V1从0.75V调节到0.55V,交替调节结束。
此外,电压关系数据的构造方式不局限于上述电压关系数据,下面介绍另一个基于VDD和VDDM构建的电压关系数据。首先VDDM仍旧设置三个固定值:0.75V、0.85V和1V,则对于VDD,构建与这三个固定值一一对应的三个区间:[0.45V,0.80V](对应于VDDM固定值0.75V),[0.80V,0.90V](对应于VDDM固定值0.85V)和[0.90V,1.1V](对应于VDDM固定值1V)。这是根据VDD>=VDDM-300mv,VDD<=VDDM+100mv推导出来的。此电压关系数据的其他方面可参考上文中对前一示例性的电压关系数据的相关描述,这里不再详细介绍。
综上,基于两路电压的电压关系数据交替调节两路电压,确保调节过程中,两路电压始终保持约束关系,从而确保了电压调节的稳定性。
片上系统的具体应用
图8是本公开实施例所应用的通用计算机系统的结构示意图。如图上所示,计算机系统800可以包括一个或多个处理器12,以及存储器14。其中,上述实施例提供的片上系统可用作处理器12。
计算机系统800中的存储器14可以主存储器(简称为主存或内存)。用于存储由数据信号表示的指令信息和/或数据信息,例如存放处理器12提供的数据(例如为运算结果),也可以用于实现处理器12与外部存储设备16(或称为辅助存储器或外部存储器)之间的数据交换。
在一些情形下,处理器12可能需要访问存储器14,以获取存储器14中的数据或对存储器14中的数据进行修改。由于存储器14的访问速度较慢,为了缓解处理器12与存储器14之间的速度差距,计算机系统800还包括与总线11耦合的高速缓冲存储器18,高速缓冲存储器18用于对存储器14中的一些可能会被反复调用的程序数据或者报文数据等数据进行缓存。高速缓冲存储器18例如由静态随机存储器(Static Random Access Memory,简称为SRAM)等类型的存储装置实现。高速缓冲存储器18可以为多级结构,例如具有一级缓存(L1Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器12内部或与处理器12集成于同一片上系统中。
基于此,处理器12可以包括指令执行单元121、内存管理单元122等部分。指令执行单元121在执行一些需要修改内存的指令时发起写访问请求,该写访问请求指定了需要写入内存中的写入数据和相应的物理地址;内存管理单元122用于将这些指令指定的虚拟地址转译为该虚拟地址映射的物理地址,写访问请求指定的物理地址与相应指令指定的物理地址可以一致。
存储器14和高速缓冲存储器18之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容都进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理器12在需要访问内存时,首先经总线11访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中,如果是,则高速缓冲存储器18命中,此时处理器12直接从高速缓冲存储器18中调用所要访问的内容;如果处理器12需要访问的内容不在高速缓冲存储器18中,则高速缓冲存储器18,处理器12需要经总线11访问存储器14,以在存储器14中查找相应的信息。因为高速缓冲存储器18的存取速率非常快,因此当高速缓冲存储器18命中时,处理器12的效率可以显著提高,进而也使整个计算机系统800的性能和效率得以提升。
此外,计算机系统800还可以包括存储设备16、显示设备13、音频设备19、鼠标/键盘15等输入/输出设备。存储设备16例如是通过相应接口与总线11耦合的硬盘、光盘以及闪存等用于信息存取的设备。显示设备13例如经相应的显卡与总线11耦合,用于根据总线11提供的显示信号进行显示。
计算机系统800通常还包括通信设备17,因此可以通过各种方式与网络或其他设备通信。通信设备17例如可以包括一种或多种通信模块,作为示例,通信设备17可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备17可以包括WLAN模块,用于实现符合电气和电子工程师协会(IEEE)制定的602.11标准的Wi-FiTM通信;通信设备17也可以包括WWAN模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信;通信设备17还可以包括蓝牙模块等采用其它协议的通信模块,或其它自定义类型的通信模块;通信设备17也可以是用于串行传输数据的端口。
当然,不同的计算机系统根据主板、操作系统和指令集架构的不同,其结构也可能有所变化。例如目前很多计算机系统设置有连接在总线11和各个输入/输出设备之间的输入/输出控制中心,且该输入/输出控制中心可以集成于处理器12之内或独立于处理器12。
图9是本公开实施例所应用的嵌入式系统的结构图。上述实施例提供的片上系统可用作处理器901。
虽然嵌入式系统在硬件结构上与计算机系统具有高度相似性,但是嵌入式系统应用上的特点致使嵌入式系统在硬件的组成和实现形式上与通用计算机系统又有较大区别。
首先,为满足嵌入式系统900在速度、体积和功耗上的要求,操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用随机存储器902或闪存(Flash Memory)903。
另外,在嵌入式系统900中,需要A/D(模拟/数字转换)接口905和串行接口906,用于测控的需要,这在通用计算机中用得很少。A/D接口905主要完成测试中所需要的模拟信号到数字信号的转换、和数字信号到模拟信号的转换。嵌入式系统900应用于工业生产时经常需要测试。由于单片机产生的是数字信号,在测试时需要转换成模拟信号用于测试,因此,与通用计算机不同,需要A/D(模拟/数字转换)接口905完成相关转换。另外,工业中经常需要多个嵌入式系统串接在一起,完成相关功能,因此需要用于将多个嵌入式系统串联的串行接口906,而在通用计算机中则大多不需要。
另外,嵌入式系统900作为一个基本的处理单元,常常在工业设计中需要将多个嵌入式系统900联成网络,因此需要将嵌入式系统900联入网络的网络接口907。这在通用计算机中大多也不需要。此外,根据实际应用和规模的不同,有些嵌入式系统900要采用外部总线904。随着嵌入式系统900应用领域的迅速扩张,嵌入式系统900越来越趋于个性化,根据自身特点采用总线的种类也越来越多。另外,为了对嵌入式处理器901内部电路进行测试,处理器芯片普遍采用了边界扫描测试技术。为了适应该测试,采用了调试接口908。
随着超大规模集成电路(Very Large Scale Integration)和半导体工艺的迅速发展,上述的嵌入式系统的部分或者全部可实现在一个硅片上,即为嵌入式片上系统(SoC)。
本公开实施例的商业价值
本公开实施例提供的片上系统,调频调压控制器交替地调节双轨存储器的两路电压,并且在每一次调节前,基于约束关系确定当前要调节的一路电压的临时目标值,从而确保电压调节的稳定性。这样的片上系统可用于形成多种场景使用的计算装置,例如数据中心数量庞大的云服务器;再例如,日常生活中使用的电子设备,包括诸如笔记本和手机等终端设备以及某些消费型电子产品。由此可见,本公开实施例的片上系统以及由该片上系统构建的计算装置在具有实用价值的基础上,具备了商业价值和经济价值。
本领域的技术人员能够理解,本公开可以实现为系统、方法和计算机程序产品。因此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本公开还可以实现为一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。
计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,以及上述任意合适的组合。
可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如JAVA、C++,还可以包括常规的过程式程序设计语言,例如C。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。