片上系统和调节电压和频率的方法与流程

文档序号:29248916发布日期:2022-03-15 23:35阅读:178来源:国知局
片上系统和调节电压和频率的方法与流程

1.本公开涉及芯片领域,具体而言,涉及一种片上系统和调节电压和频率的方法。


背景技术:

2.集成电路的小型化趋势使得处理器制造商对如何降低功耗充满热情。动态电压和频率调节(dynamic voltage and frequency scaling,dvfs)是处理器降低功耗的方法之一。动态电压和频率调节根据处理器所运行的应用程序对计算能力的不同需要,动态调节系统的时钟频率和供电电压,从而达到节能的目的。
3.在dvfs系统中,应用程序可通过系统接口发起调频调压请求,dvfs控制器根据调频调压请求调节系统的时钟频率和供电电压。而攻击软件利用这一点,会给系统带来安全隐患。例如,攻击软件可发起包含较大频率和电压的调频调压请求,如果将系统的时钟频率设置为该频率和电压,则可能导致系统崩溃。


技术实现要素:

4.有鉴于此,本公开的目的是提供一种片上系统和调节电压和频率的方法,以解决片上系统调频调压操作的安全隐患。
5.第一方面,本公开实施例提供一种片上系统,包括:
6.处理单元,用于生成频率配置指令和调频调压指令;
7.dvfs控制器,用于根据频率配置指令配置至少一个频率电压对,并在所述调频调压指令的目标频率与所述至少一个频率电压对中的第一频率相符的情况下,基于所述第一频率产生调频信号,基于所述第一频率对应的电压产生调压信号,所述调频信号用于调节所述片上系统的时钟频率,所述调压信号用于调节所述片上系统的供电电压;
8.片上总线,耦接所述处理单元和所述dvfs控制器。
9.可选地,所述dvfs控制器在所述目标频率与所述至少一个频率电压对中的任意频率均不相符的情况下,产生告警信号。
10.可选地,所述告警信号为中断信号、复位信号或总线错误信号中的一种。
11.可选地,所述处理单元包括硬件上划分的安全环境和非安全环境,所述处理单元在所述安全环境中生成所述频率配置指令,在所述非安全环境中生成所述调频调压指令。
12.可选地,所述处理单元在用户态和内核态之间切换,并在内核态下生成所述频率配置指令,在用户态下生成所述调频调压指令。
13.可选地,所述频率配置指令包括指示位,所述指示位用于指示所述处理单元生成所述频率配置指令时的状态信息,所述dvfs控制器还用于:根据所述频率配置指令中的指示位确定是否生成告警信号。
14.可选地,所述dvfs控制器包括:
15.多个寄存器组,用于存储至少一个频率电压对;
16.变频寄存器,用于存储所述目标频率;
17.比较器,用于将所述目标频率与所述至少一个频率电压对分别比较,并输出结果信号;
18.变频生成单元,用于根据所述结果信号生成所述调频信号;
19.电压生成单元,用于根据所述结果信号生成所述调压信号。
20.可选地,所述dvfs控制器包括:
21.中断生成单元,用于生成中断信号;
22.复位生成单元,用于生成复位信号;
23.总线响应单元,用于生成总线错误信号;
24.错误检测单元,用于采样所述结果信号,并根据所述结果信号指示所述中断生成单元、所述复位生成单元和所述总线响应单元之一启动。
25.可选地,所述至少一个频率电压对中的任意一个电压为使所述处理单元在对应频率下工作的最小电压。
26.可选地,所述片上系统还包括静态存储单元,用于存储多个频率电压对,所述处理单元根据所述多个频率电压对生成所述至少一个频率电压对。
27.第二方面,本公开实施例提供一种调节电压和频率的方法,包括:
28.生成频率配置指令和调频调压指令;
29.根据所述频率配置指令生成至少一个频率电压对;
30.将所述调频调压指令中的目标频率与所述至少一个频率电压对进行比对;
31.在所述目标频率与第一频率相符的情况下,根据所述第一频率调节系统的时钟频率,以及根据所述第一频率对应的电压调节系统的供电电压。
32.可选地,还包括:在所述目标频率与所述至少一个频率电压对中的任意频率均不相符的情况下,产生告警信号并进行告警处理。
33.可选地,所述频率配置指令包括指示位,所述指示位用于指示所述处理单元生成所述频率配置指令时的状态信息,所述方法还包括:根据所述频率配置指令中的指示位确定是否生成告警信号。
34.第三方面,本公开实施例提供一种计算装置,包括:
35.上述任一项所述的片上系统;
36.总线;
37.通过所述总线与所述片上系统耦接的存储设备;
38.与所述片上系统中的dvfs控制器耦接的电源管理电路。
39.根据本公开实施例的片上系统,为系统的时钟频率和供电电压配置允许取值范围,在允许取值范围之内的调频调压操作能够正常进行,在允许取值范围之外的调频调压操作,则被拒绝执行,以此提高调频调压操作的安全性。
附图说明
40.通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
41.图1是本公开实施例提供的片上系统的结构示意图;
42.图2是频率和电压的曲线图;
43.图3是图1中的dvfs控制器的示例性结构示意图;
44.图4是本公开实施例提供的调节电压和频率的方法的流程图;
45.图5是本公开实施例所应用的通用计算机系统的结构示意图;
46.图6是本公开实施例所应用的嵌入式系统的结构示意图。
具体实施方式
47.以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
48.本公开实施例的片上系统
49.图1是本公开实施例所应用的片上系统100的结构示意图。
50.参考图上所示,片上总线102将各种元件与处理单元101耦接到一起。片上总线102例如axi总线。axi总线是arm公司提出的amba(advanced microcontroller bus architecture)3.0及以上协议中最重要的部分,它是面向于高性能、高带宽、低延迟的片内总线。aix总线将地址/控制和数据相位分离,支持不对齐的数据传输,同时支持突发传输和乱序传输,因此满足了超高性能和复杂的片上系统设计的需求。
51.如图上所示,dvfs控制器103、高速内存104通过总线102与处理单元101耦接。dvfs控制器103与时钟管理单元105、位于片外的电源管理电路211耦接,在一些实施例中,电源管理电路211也可以位于片上系统100中。片上系统100还可以包括未被示出的接口电路,通过接口电路与片外的外部设备耦接。外部设备例如可以为文字、音频和视频的输入/输出设备和各种其他存储器。片上系统100可通过接口电路访问片外的外部设备。不同于设置在片上系统的高速内存104,位于片外的存储器可以容量更大但速度较慢、成本较低。在一些实现中,高速内存104可以为静态随机存取存储器(sram),而片外的存储器为dram(动态随机存取存储器)和闪存(flash)存储器。设计人员还可以对soc架构进行配置从而使得片上系统中的各个元件之间的通信是安全的。
52.如图上所示,片上系统100内嵌有基本软件(例如嵌入式控制系统121)和应用程序(例如应用程序a-n)。另有其他的未被示出的应用程序可以存储在片上系统100之外的存储器中,这些应用程序可以通过接口电路拷贝到片上系统100中的高速内存104中由处理单元101执行,或者通过接口电路访问片上系统100上的资源。
53.dvfs控制器103工作时,从片上总线102接收到频率配置指令和调频调压指令。频率配置指令包括至少一个频率电压对。调频调压指令包括目标频率。dvfs控制器103从频率配置指令中读取至少一个频率电压对,并将其存储为图上的频率电压表106,每个频率电压对表征系统可以设置的时钟频率和对应的供电电压。同时,dvfs控制器103会从调频调压指令中获得目标频率,dvfs控制器103将目标频率与频率电压表106中的每个频率电压对进行比对,当某个频率电压对中的频率与目标频率相符时,将对应的电压取出,生成调压信号regv,发送给电源管理电路211,电源管理电路211据此调节提供给系统的供电电压vcpu,同时,dvfs控制器103生成调频信号regf,发送给时钟管理单元105,由时钟管理单元105生成系统的时钟信号fcpu。dvfs控制器103还在目标频率与频率电压表106中的任何频率都不相
符时,拒绝执行调频调压操作并生成告警信号alarm,告警处理单元(未示出)根据告警信号alarm进行告警处理。
54.处理单元101用于生成频率配置指令和调频调压指令,更具体地,处理单元101在执行来自嵌入式控制系统121或应用程序a-n的可执行代码时生成频率配置指令和调频调压指令。例如,嵌入式控制系统121可包括以下流程的计算机代码:首先采集与系统负载有关的信号,计算当前的系统负载;再根据系统的当前负载,预测系统在下一时间段需要的性能;然后将预测的性能转换成需要的频率,然后调用系统接口将系统的时钟频率修改为需要的频率。系统接口是嵌入式控制系统提供的、用于调用底层硬件单元的接口。处理单元101在解码和执行上述计算机代码时,通过调用系统接口生成发送给硬件dvfs控制器的调频调压指令。。再例如,处理单元101在执行应用程序a-n中的可执行代码生成调频调压指令。再有,频率配置指令还执行引导程序时产生。引导程序用于在计算机上电后加载嵌入式操作系统121。也就是说,当计算机上电后到嵌入式操作系统121正常工作这段时间内,引导程序被执行并生成频率配置指令。这样做的好处由于引导程序运行时,各种接口电路可能还未正常工作,因此外部的攻击软件不容易攻击频率配置指令。
55.应该指出的是,频率配置指令中所指定的频率电压对应为经过验证的、能够使系统正常工作的频率电压对。
56.在一种实现中,soc 100上包括静态存储单元,该静态存储单元包含若干个频率电压对,而频率配置指令中所指定的频率电压对包含在这若干个频率电压对之中。
57.在另一种实现中,以图2为例。图2示出了频率和电压的曲线curve1。curve1的每个点表征一个频率与该频率对应的最小电压。频率配置指令可使用curve1上的操作点(f0,v0)-(f4,v4)来配置dvfs控制器103中的频率电压对。频率配置指令还可以选取例如图上的(f0,v11)和(f2,v12)来配置dvfs控制器103中的频率电压对,其中v11大于v0,v12大于v2,这种情况下,提供给系统的供电电压将保有余量。当然,还需要考虑电源管理电路能够提供的电压范围。
58.在进一步的实现中,处理单元101对于计算机指令的执行环境可基于硬件划分为安全环境1011和非安全环境1012。安全环境1011比非安全环境1012为更为可信的指令执行环境,例如,安全环境1011不可从外部访问,非安全环境1012从外部可访问,安全环境在输入和输出接口处包括硬件保护机制,硬件保护机制例如用于过滤经认证或未经认证的数据的寄存器,以及与安全环境通信可基于加密算法、等等。可选地,处理单元101在安全环境1011中生成频率配置指令,在非安全环境1012中生成调频调压指令。
59.在进一步的实现中,处理单元101对于计算机指令的执行环境可基于软件划分为用户态和内核态。用户态和内核态来自于多用户管理模式。多用户管理模式下至少包括两种用户类型:普通权限用户和最高权限用户。基于多用户管理模式,存储器的寻址空间在软件逻辑上划分为内核空间和用户空间,例如linux操作系统而言,将最高的1g字节(从虚拟地址0xc0000000到0xffffffff)作为内核空间,而将较低的3g字节(从虚拟地址0x00000000到0xbfffffff)作为用户空间。如果一个应用程序被普通用户执行,则该应用程序的代码和数据将被加载到用户空间中执行,如果一个应用程序被最高权限用户执行,则该应用程序的代码和数据将被加载到内核空间中执行。由此,当处理器处理内核空间中的代码时,其工作模式称为内核态,当处理器处理用户空间的代码时,其工作模式称为用户态。可选地,处
理单元101在内核态下生成频率配置指令,在用户态下生成调频调压指令。
60.正常情况下,处理单元101只在安全环境或内核态下生成频率配置指令,只在非安全环境或用户态下生成调频调压指令,从而能够保证调频调压操作的安全性。但是攻击程序仍旧可以破坏频率配置指令的生成过程,例如通过非法的计算机指令使处理单元101在非安全环境生成频率配置指令,并篡改频率配置指令中的频率电压对。
61.为此,在进一步的实现中,频率配置指令包括指示位,所述指示位用于指示生成频率配置指令时处理单元101的状态信息。例如,为0时表示处理单元101处于安全环境,为1时表示处理单元101处于非安全环境,或者为0时表示处理单元101处于内核态,为1时表示处理单元101处于用户态。由此,dvfs控制器103可通过检测指示位确定处理单元101是否在正确状态(即安全环境或内核态)下生成频率配置指令。如果avfs控制器103根据指示位确定处理单元101在正确状态下生成频率配置指令,则进行频率配置。如果avfs控制器103根据指示位确定处理单元101在错误状态下生成频率配置指令,则拒绝执行频率配置并给出告警信号,然后告警处理单元根据告警信号进行告警处理。这样,即使攻击程序能够破坏频率配置指令的生成过程,avfs控制器103也无法完成频率配置。
62.图3是一个示例性的dvfs控制器300的结构示意图。如图上所示,寄存器f用于存储目标频率。寄存器组f-v用于存储多个频率电压对。多个比较器303用于将寄存器f中的目标频率与寄存器组f-v中的频率电压对比对,如果相符,则由电压生成单元302生成调压信号regv,且由变频生成单元301生成调频信号fcpu,错误检测单元304如果检测到目标频率与任意一个频率电压对中的频率都不相符,则可由中断生成单元305、复位生成单元306或总线响应单元307生成中断信号sint、复位信号reset或总线错误信号sbus。错误检测单元304还用于检测频率配置指令中的指示位。根据指示位给出中断信号sint、复位信号reset或总线错误信号sbus。
63.中断信号sint由中断控制器(图上未示出)处理。中断控制器可设置在处理单元301的内部或外部,中断控制器定义了针对各种不同中断信号的各种处理例程,当相应的中断信号发生时,相应的处理例程被启动进行相应的处理。复位信号reset会发送给复位电路(未示出),复位电路将片上系统300进行复位后重启。总线错误信号sbus会被发送给总线302处理。
64.在一种实现中,错误检测单元304还用于检测频率配置指令的指示位,以确定处理单元在生成频率配置指令时状态是否正常,如果不正常,则启用中断生成单元305、复位生成单元306或总线响应单元307生成中断信号sint、复位信号reset或总线错误信号sbus。
65.根据本公开实施例的片上系统,为系统的时钟频率和供电电压配置允许取值范围,在允许取值范围之内对时钟频率和供电电压的调频调压操作能够正常进行,在允许取值范围之外的调频调压操作,则被拒绝执行并产生告警信号。
66.本公开实施例的调节电压和频率的方法
67.图4示出了本公开实施例的调节电压和频率的方法的流程图。该方法可由软件程序实现,或者由软件程序与硬件模块共同实现。如图上所示,该方法包括以下步骤。
68.在步骤s400中,在安全环境中生成频率配置指令。该步骤由处理单元完成,通过获取预存储的多个频率电压对生成频率配置指令,频率配置指令包含至少一个频率电压对。
69.在步骤s401中,根据频率配置指令生成至少一个频率电压对。该步骤可由dvfs控
cache)、二级缓存(l2 cache)和三级缓存(l3 cache)的三级缓存结构,也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存)可以集成在处理器12内部或与处理器12集成于同一片上系统中。
82.基于此,处理器12可以包括指令执行单元121、内存管理单元122等部分。指令执行单元121在执行一些需要修改内存的指令时发起写访问请求,该写访问请求指定了需要写入内存中的写入数据和相应的物理地址;内存管理单元122用于将这些指令指定的虚拟地址转译为该虚拟地址映射的物理地址,写访问请求指定的物理地址与相应指令指定的物理地址可以一致。
83.存储器14和高速缓冲存储器18之间的信息交互通常按块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各个数据块简称为缓存块(可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址;将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址例如包括用于定位数据块的物理地址标签。
84.由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容都进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理器12在需要访问内存时,首先经总线11访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中,如果是,则高速缓冲存储器18命中,此时处理器12直接从高速缓冲存储器18中调用所要访问的内容;如果处理器12需要访问的内容不在高速缓冲存储器18中,则高速缓冲存储器18,处理器12需要经总线11访问存储器14,以在存储器14中查找相应的信息。因为高速缓冲存储器18的存取速率非常快,因此当高速缓冲存储器18命中时,处理器12的效率可以显著提高,进而也使整个计算机系统500的性能和效率得以提升。
85.此外,计算机系统500还可以包括存储设备16、显示设备13、音频设备19、鼠标/键盘15等输入/输出设备。存储设备16例如是通过相应接口与总线11耦合的硬盘、光盘以及闪存等用于信息存取的设备。显示设备13例如经相应的显卡与总线11耦合,用于根据总线11提供的显示信号进行显示。
86.计算机系统500通常还包括通信设备17,因此可以通过各种方式与网络或其他设备通信。通信设备17例如可以包括一种或多种通信模块,作为示例,通信设备17可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备17可以包括wlan模块,用于实现符合电气和电子工程师协会(ieee)制定的802.11标准的wi-fitm通信;通信设备17也可以包括wwan模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信;通信设备17还可以包括蓝牙模块等采用其它协议的通信模块,或其它自定义类型的通信模块;通信设备17也可以是用于串行传输数据的端口。
87.当然,不同的计算机系统根据主板、操作系统和指令集架构的不同,其结构也可能有所变化。例如目前很多计算机系统设置有连接在总线11和各个输入/输出设备之间的输入/输出控制中心,且该输入/输出控制中心可以集成于处理器12之内或独立于处理器12。
88.图6是本公开实施例所应用的嵌入式系统的结构图。上述实施例提供的片上系统可作为处理器601。
89.虽然嵌入式系统在硬件结构上与计算机系统具有高度相似性,但是嵌入式系统应用上的特点致使嵌入式系统在硬件的组成和实现形式上与通用计算机系统又有较大区别。
90.首先,为满足嵌入式系统600在速度、体积和功耗上的要求,操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用随机存储器602或闪存(flash memory)603。
91.另外,在嵌入式系统600中,需要a/d(模拟/数字转换)接口605和串行接口606,用于测控的需要,这在通用计算机中用得很少。a/d接口605主要完成测试中所需要的模拟信号到数字信号的转换、和数字信号到模拟信号的转换。嵌入式系统600应用于工业生产时经常需要测试。由于单片机产生的是数字信号,在测试时需要转换成模拟信号用于测试,因此,与通用计算机不同,需要a/d(模拟/数字转换)接口605完成相关转换。另外,工业中经常需要多个嵌入式系统串接在一起,完成相关功能,因此需要用于将多个嵌入式系统串联的串行接口606,而在通用计算机中则大多不需要。
92.另外,嵌入式系统600作为一个基本的处理单元,常常在工业设计中需要将多个嵌入式系统600联成网络,因此需要将嵌入式系统600联入网络的网络接口607。这在通用计算机中大多也不需要。此外,根据实际应用和规模的不同,有些嵌入式系统600要采用外部总线604。随着嵌入式系统600应用领域的迅速扩张,嵌入式系统600越来越趋于个性化,根据自身特点采用总线的种类也越来越多。另外,为了对嵌入式处理器601内部电路进行测试,处理器芯片普遍采用了边界扫描测试技术。为了适应该测试,采用了调试接口608。
93.随着超大规模集成电路(very large scale integration)和半导体工艺的迅速发展,上述的嵌入式系统的部分或者全部可实现在一个硅片上,即为嵌入式片上系统(soc)。
94.本公开实施例的商业价值
95.本公开实施例提供的片上系统在保证调频调压操作的安全性的基础上降低了系统功耗,可形成多种场景使用的计算装置,例如数据中心数量庞大的云服务器,在此场景下,通过降低处理器的功耗从而降低每个云服务器的功耗,进而降低每个云服务器和整个数据中心的运行成本;再例如,日常生活中使用的超小型电子产品,此类电子产品由于尺寸限制,能够携带的电池容量有限,因此必须降低电子产品的功耗有助于延长电子产品的使用时间。由此,本公开实施例的片上系统以及由该片上系统构建的计算装置在具有实用价值的基础上,具备了商业价值和经济价值。
96.本领域的技术人员能够理解,本公开可以实现为系统、方法和计算机程序产品。因此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本公开还可以实现为一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
97.可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质
的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或者闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。
98.计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。
99.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,以及上述任意合适的组合。
100.可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如java、c++,还可以包括常规的过程式程序设计语言,例如c。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
101.以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1