一种降低cpu功耗的方法和一种cpu、一种数字芯片的制作方法

文档序号:6483969阅读:106来源:国知局
专利名称:一种降低cpu功耗的方法和一种cpu、一种数字芯片的制作方法
技术领域
本发明涉及SOC ( System On Chip,片上系统)设计技术领域,特 别是涉及一种降低CPU功耗的方法以及一种CPU、 一种数字芯片。
背景技术
CPU应用非常广泛,例如,CPU经常会作为重要器件应用在各种soc (System On Chip ,片上系统)中。
在芯片设计和应用中,功耗是一个必须考虑的问题,而CPU作为重要 器件,如何降低其功耗也是现有技术一直渴望改进的一个方向。例如,公开 号为CN101162405的中国专利就^^开了一种动态降^f氐CPU功^^的方法。该 方法可以依据CPU占有率动态调整CPU的指令运行速度。在CPU运行过 程中,如果CPU的占有率低于设定的下限值就将CPU的指令运行速度降低, 如果CPU的占有率高于设定的上限值就将CPU的指令运行速度提高,其中 CPU的指令运行速度的调整主要通过开关数据高速緩存器接口和指令高速 存器接口来实现的。
上述改进方案是针对CPU指令运行速度进行的,那么是否还存在其 他的改进角度?因为在实际的设计和应用中,本领域技术人员对于功耗 的追求是越低越好,任何能够降低功耗的方法都是需要的。
总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够进 一步降低或者更加灵活的降低CPU器件的功耗。

发明内容
本发明所要解决的技术问题是提供一种降低CPU功耗的方法以及一 种 应用该方法的CPU,可以让CPU之外的其他模块自动控制CPU的时钟, 进而可以更灵活地控制CPU功耗、更低的降低CPU功耗。
相应的,本发明还提供了一种应用上述CPU的数字芯片,能够具有降
低的功耗。
5为了解决上述问题,本发明公开了一种降低CPU功耗的方法,包括 CPU内部;f莫块^f企测当前CPU各个通讯接口的状态信息;所述状态信息包括 该通讯接口是否在进行通信;通过CPU输出端口将各个通讯接口的状态信 息传递至该CPU的外部管理模块;所述外部管理模块依据所述状态信息控 制传输给CPU的时钟信号;当各个通讯接口的状态均为空闲时,控制传输 低于正常值的时钟信号给CPU,或者停止CPU的时钟信号供给。
优选的,当所述外部管理模块为该CPU所在数字芯片的功耗管理单元 时,所述功耗管理单元依据所述状态信息,通过数字芯片的时钟管理模块控 制输出至CPU的时钟信号。
优选的,当所述外部管理模块为该CPU所在数字芯片的另一 CPU时, 所述另一 CPU依据所述状态信息,通过数字芯片的时钟管理模块控制输出 至CPU的时钟信号。
优选的,所述外部管理模块为该CPU所在数字芯片的时钟管理模块。
依据本发明的另一实施例,还公开了一种CPU器件,包括
存储器,用于存储数据和/或指令;
控制器,用于控制并协调各个功能部件运行;
运算器,用于完成各种算术和逻辑运算;
还包括
状态监测模块,用于监测当前CPU各个通讯接口的状态信息;所述状 态信息包括该通讯接口是否在进行通信;
与通讯接口——对应的输出端口 ,用于传输各个相应通讯接口的状态信 息至该CPU的外部管理模块;
所述通讯接口的状态信息用于通知外部管理模块控制供给CPU与其当 前状态相适应的时钟信号;当各个通讯接口的状态均为空闲时,相适应的时 钟信号为低于正常值或者停止。
优选的,当所述外部管理模块为该CPU所在数字芯片的功耗管理单元 时,功耗管理单元依据所述状态信息,通过数字芯片的时钟管理模块控制输 出至CPU的时钟信号。
6优选的,当所述外部管理模块为该CPU所在数字芯片的另一 CPU时, 所述另一 CPU依据所述状态信息,通过数字芯片的时钟管理模块控制输出 至CPU的时钟信号。
优选的,所述外部管理模块为该CPU所在数字芯片的时钟管理模块。
依据本发明的另一实施例,还公开了一种数字芯片,包括
CPU;
总线;
外部存储器; 逻辑功能单元;
时钟管理模块,用于供给包括CPU在内的各个部件的时钟信号;
其中,所述CPU包括
内部存储器,用于存储数据和/或指令;
控制器,用于控制并协调各个功能部件运行;
运算器,用于完成各种算术和逻辑运算;
还包括
状态监测模块,用于监测当前CPU各个通讯接口的状态信息;所述状 态信息包括该通讯接口是否在进行通信;
与通讯接口--对应的输出端口 ,用于传输各个相应通讯接口的状态信
息至该CPU的外部管理模块;
所述外部管理模块位于所述数字芯片中,依据所述状态信息通过时钟管 理模块控制传输给CPU的时钟信号;当各个通讯接口的状态均为空闲时, 控制传输低于正常值的时钟信号给CPU,或者停止CPU的时钟信号供给。
优选的,所述外部管理模块为该数字芯片的功耗管理单元;或者,所述 外部管理模块为该数字芯片的另一CPU;或者,所述外部管理模块为该数字 芯片的时钟管理;f莫块。
与现有技术相比,本发明具有以下优点
易于得知的是,降低电压和频率就可以降低器件的功耗。本发明就是应用该原则进行功耗改进,但是对于CPU器件,其一般不能断电,因此本发 明主要针对频率进行调整。本发明的核心思想就是对CPU的工作负荷进行
自动检测,当工作空闲时就提供较低的时钟信号甚至不提供时钟信号,从而
可以降低CPU的功耗。
本发明在CPU中增加了 一个状态监测模块,用于监控该CPU各个通讯 接口的状态信息,并通过相应的输出端口传输至外部管理模块,当CPU空
闲时,其各个输出端口的状态信息即为空闲,从而外部管理模块可以及时获
知CPU空闲了,进而可以控制传输给CPU的时钟信号,以达到降低功耗的 目的。总之,本发明可以更加灵活、更低的降低CPU功耗。
尤其对于一个SOC中有多个CPU的情况,即使采用CPU内部软件控 制功耗的方式,虽然也可以在一定程度上降低CPU的功耗,但是由于每颗
CPU的功耗都依赖于其自身运行的软件,那么整个soc软件开发的工作量
将是非常繁重的,而且无法实现多个CPU之前的协调和智能管理,整个soc 的功耗仍然将非常大。而通过本发明,外部控制模块可以自动根据各个CPU 的通讯情况调整各个CPU的内部时钟,可以更灵活、更有效地降低功耗,
也可以实现集中控制,避免过大的开发工作量。


图1是本发明一种降低CPU功耗的方法的步骤流程图; 图2是本发明的一种CPU实施例的结构框图; 图3是本发明的一种数字芯片实施例的结构框图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图 和具体实施方式
对本发明作进一步详细的说明。
参照图1,示出了本发明一种降低CPU功耗的方法,具体可以包括 步骤IOI、 CPU内部模块检测当前CPU各个通讯接口的状态信息;所 述状态信息包括该通讯接口是否在进行通讯(即是否有数据在传输);
在各种数字芯片中,通常CPU通过多个总线接口接入总线BUS,进而
8与该数字芯片中的其他模块相连。当然,CPU也可以通过单独的接口直接与
该数字芯片中的其他模块相连,或者直接与其他外部设备相连。在本发明中,
将总线接口和单独接口统称为通讯接口。需要说明的是,CPU—般都会具有
多个通讯接口,这些通讯接口可以同时包括总线接口和与外部设备、外部模块相连的单独接口。
步骤102、通过CPU输出端口将各个通讯接口的状态信息传递至该CPU的外部管理才莫块;
将状态信息传递的最简单方法就是,由所述外部管理模块定时通过CPU输出端口读取或者检查其各个通讯接口的状态信息。为了提高效率,可以在现有的CPU上增加专用的输出端口,优选的是, 一个输出端口对应一个通
讯接口,例如,输出端口的"o"表示其相应的通讯接口空闲,"r表示其
相应的通讯接口正在工作;这样,外部管理模块就可以非常方便的获悉当前CPU是否在工作。当所有输出端口均为"0"时,则说明当前CPU的各个通讯接口处于空闲状态,CPU没有在工作状态,无需提供正常情况下的时钟信号。
步骤103、所述外部管理模块依据所述状态信息控制传输给CPU的时钟信号;当各个外设接口的状态均为空闲时,控制传输低于正常值的时钟信号给CPU,或者停止CPU的时钟信号供给。
众所周知,数字芯片一般都具有自己的时钟信号发生器,产生时钟基准信号后通过时钟管理模块获得各种不同的时钟信号,传送到相应的功能模块中,以供其工作4吏用。在本发明中,当外部管理;f莫块获知当前CPU处于空闲状态时(所有通讯接口都没有在传输数据),可以通过管理传输给CPU的时钟信号以降低其工作频率,从而达到降低功耗的目的。
需要说明的是,图l所示的实施例中,所述外部管理模块可以为数字芯片中的原有功能模块,也可以为新增的专用模块。
具体的,所述外部管理模块可以为该CPU所在数字芯片的功耗管理单元,该功耗管理单元可以为该数字芯片原有的,也可以是为本发明而专门增加的。当功耗管理单元依据所述状态信息获知当前CPU处于空闲状态时,
9可以通过数字芯片的时钟管理模块控制输出至CPU的时钟信号。例如,修改时钟管理模块的寄存器,使得输出给当前CPU的时钟信号为低频的信号,甚至中断时钟信号输出给当前CPU。
在本发明的另一实施例中,对于具有两个或者两个以上CPU的数字芯片而言,所述外部管理模块也可以为该CPU所在数字芯片的另一CPU,由于CPU自身就具有一定的逻辑运算功能,因此可以用于时钟控制。例如,某个数字芯片具有一个主CPU和一个副CPU,主CPU通过副CPU的输出端口监控其工作状态,当确定所述副CPU为空闲状态时,通过数字芯片的时钟管理模块控制输出至CPU的时钟信号。例如,修改时钟管理模块的寄存器,使得输出给当前CPU的时钟信号为低频的信号,甚至中断时钟信号输出给当前CPU。
在本发明的另一实施例中,所述外部管理冲莫块也可以直接为该CPU所
在数字芯片的时钟管理模块,因为时钟管理模块本身就具有时钟分频的功
能。即时钟管理模块通过CPU的输出端口监控其工作状态,当确定所述CPU为空闲状态时,则修改寄存器数值,以输出低频时钟信号至该CPU,甚至中断时钟信号输出至该CPU,以达到降低功耗之目的。
参照图2,示出了本发明一种CPU200的实施例,具体可以包括
存储器201 ,用于存储数据和/或指令;
控制器202,用于控制并协调各个功能部件运行;
运算器203,用于完成各种算术和逻辑运算;
还包括
状态监测模块204,用于监测当前CPU各个通讯接口的状态信息;所述状态信息包括该通讯接口是否在进行通讯;
与通讯接口 205——对应的输出端口 206,用于传输各个相应通讯接口的状态信息至该CPU的外部管理才莫块207;
所述通讯接口的状态信息用于通知外部管理模块207控制供给CPU 200与其当前状态相适应的时钟信号;当各个通讯接口的状态均为空闲时,相适应的时钟信号为低于正常频率值或者停止。
具体的,当图2所示的CPU 200采用哈佛体系结构时,其存储器201 是将数据和指令分开存储和调用的,例如,CPU200可以包括数据通道(数 据存储阵列和数据存储管理器)和指令通道(指令存储器和指令存储管理 器)。其中,数据存储阵列和指令存储器用于分别存储数据和指令;数据存 储管理器和指令存储管理器用于分别管理指向所述数据存储阵列的访问请 求和指向所述指令存储器的访问请求。当然,本发明的CPU实施例还可以 采用其他可行的体系结构,在此无需加以限定。由于CPU的体系架构为本 领域技术人员所熟知的,因此,在此对存储器、控制器以及运算器等功能模 块不再详细赘述。
在本发明的一个实施例中,当所述外部管理模块为该CPU所在数字芯 片的功耗管理单元时,功耗管理单元依据所述状态信息,通过数字芯片的时 钟管理模块控制输出至CPU的时钟信号。
在本发明的另一实施例中,当所述外部管理模块为该CPU所在数字芯 片的另一CPU时,所述另一CPU依据所述状态信息,通过数字芯片的时钟 管理模块控制输出至CPU的时钟信号。
在本发明的另一实施例中,所述外部管理模块还可以为该CPU所在数 字芯片的时钟管理;t莫块。
具体的,在现代的SOC (System On Chip,片上系统)芯片设计中,CPU 内核通常具有两个或者多个总线接口与外部设备或者其他CPU内核进行通 信。这些接口可以分为主动(例如,AMBA总线规范中的主设备接口 Master) 和被动(例如,AMBA总线规范中的主设备接口 Slave)两种。其中,AMBA (Advanced Microcontroller Bus Architecture )总线头见范是ARM公司i殳计的 一种用于高性能嵌入式系统的总线标准,在此不再赘述。
假设在一个数字芯片具体例子中,如果一个CPU有2个AMBA AHB Master (MaserO & Master 1)和1个AMBA AHB Slave接口 ,本发明可以通 过以下方式对其进行功耗控制。
首先,本发明需要在该CPU中增加状态监测模块,用于监测上述三个
ii接口的通讯情况;其次,本发明需要在CPU接口增加3个输出端口,分别 与上述的三个总线接口相对应,以标识各个总线接口的通讯情况。作支设,与 前述三个总线接口分别对应的输出端口为transaction—master0—on, transaction—masterl—on和transaction—slave—on。 在监控过程中
如果CPU Master0与外部进行通讯,那么状态监测模块将输出端口 transaction—masterO—on的Y直i殳置为1, 否贝'Ji殳置为0;
如果CPU Masterl与外部进行通讯,那么状态监测模块将输出端口 transaction—masterl—on的佳z没置为1,否则i殳置为0;
如果CPU Slave被外部Master访问,那么状态监测模块将输出端口 transaction—slave—on的Y直i殳置为1, 否贝'H殳置为0。
通过上述输出端口数值的变换设置,位于被监控CPU之外的外部管理 模块就可以方便的获知当前CPU的工作状态,例如,定时检测即可。当三 个输出端口的数^f直均为"0"时,得知当前CPU为空闲状态,进而对输出至 当前CPU的时钟信号进行相应控制,以降低当前CPU的功耗。
参照图3,示出了本发明的一种数字芯片实施例,具体可以包括 CPU 301; 总线302; 外部存储器303;
逻辑功能单元304;可以用于满足各种用户需求的逻辑功能,例如,音 视频处理、图像处理、数学计算等等。实际上,本发明是针对CPU的功耗 控制,只要应用CPU的数字芯片都可以应用本发明,并不限于某种逻辑功 能的数字芯片。
时钟管理模块305,用于供给包括CPU301在内的各个部件的时钟信号;
其中,所述CPU301包括
内部存储器3011,用于存储数据和/或指令;
控制器3012,用于控制并协调各个功能部件运行;运算器3013,用于完成各种算术和逻辑运算; 还包括
状态监测模块3014,用于监测当前CPU各个通讯接口 3015的状态信息; 所述状态信息包括该通讯接口是否在进行通讯;
与通讯4妻口 3015--对应的输出端口 3016,用于传输各个相应通讯接-
口的状态信息至该CPU的外部管理^f莫块306;
所述外部管理模块306位于所述数字芯片中,依据所述状态信息通过时 钟管理模块305控制传输给CPU301的时钟信号;当各个通讯接口的状态均 为空闲时,控制传输低于正常值的时钟信号给CPU301,或者停止CPU301 的时钟信号供给。
需要说明的是,图3所示实施例中的所述外部管理模块306可以为该数 字芯片的功耗管理单元;或者,所述外部管理模块306也可以为该数字芯片 的另一CPU;或者,所述外部管理模块306也可以为该数字芯片的时钟管理 模块305。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明 的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见 即可。
以上对本发明所提供的一种降低CPU功耗的方法以及应用该方法的一 种CPU、 一种数字芯片,进行了详细介绍,本文中应用了具体个例对本发明 的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明 的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思 想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内 容不应理解为对本发明的限制。
权利要求
1、一种降低CPU功耗的方法,其特征在于,包括CPU内部模块检测当前CPU各个通讯接口的状态信息;所述状态信息包括该通讯接口是否在进行通信;通过CPU输出端口将各个通讯接口的状态信息传递至该CPU的外部管理模块;所述外部管理模块依据所述状态信息控制传输给CPU的时钟信号;当各个通讯接口的状态均为空闲时,控制传输低于正常值的时钟信号给CPU,或者停止CPU的时钟信号供给。
2、 如权利要求l所述的方法,其特征在于,当所述外部管理模块为该CPU所在数字芯片的功耗管理单元时,所述 功耗管理单元依据所述状态信息,通过数字芯片的时钟管理模块控制输出至 CPU的时钟信号。
3、 如权利要求l所述的方法,其特征在于,当所述外部管理模块为该CPU所在数字芯片的另一 CPU时,所述另一 CPU依据所述状态信息,通过数字芯片的时钟管理模块控制输出至CPU的 时钟信号。
4、 如权利要求l所述的方法,其特征在于, 所述外部管理模块为该CPU所在数字芯片的时钟管理模块。
5、 一种CPU,其特征在于,包括 存储器,用于存储数据和/或指令; 控制器,用于控制并协调各个功能部件运行; 运算器,用于完成各种算术和逻辑运算; 还包括状态监测模块,用于监测当前CPU各个通讯接口的状态信息;所述状 态信息包括该通讯接口是否在进行通信;与通讯接口——对应的输出端口 ,用于传输各个相应通讯接口的状态信 息至该CPU的外部管理模块;所述通讯接口的状态信息用于通知外部管理模块控制供给CPU与其当前状态相适应的时钟信号;当各个通讯接口的状态均为空闲时,相适应的时 钟信号为低于正常值或者停止。
6、 如权利要求5所述的CPU,其特征在于,当所述外部管理模块为该CPU所在数字芯片的功耗管理单元时,功耗 管理单元依据所述状态信息,通过数字芯片的时钟管理模块控制输出至CPU 的时钟信号。
7、 如权利要求5所述的CPU,其特征在于,当所述外部管理模块为该CPU所在数字芯片的另一 CPU时,所述另一 CPU依据所述状态信息,通过数字芯片的时钟管理模块控制输出至CPU的 时钟信号。
8、 如权利要求5所述的CPU,其特征在于, 所述外部管理模块为该CPU所在数字芯片的时钟管理模块。
9、 一种数字芯片,其特征在于,包括 CPU;总线;外部存储器; 逻辑功能单元;时钟管理模块,用于供给包括CPU在内的各个部件的时钟信号;其中,所述CPU包括内部存储器,用于存储数据和/或指令;控制器,用于控制并协调各个功能部件运行;运算器,用于完成各种算术和逻辑运算;还包括状态监测模块,用于监测当前CPU各个通讯接口的状态信息;所述状 态信息包括该通讯接口是否在进行通信;与通讯接口——对应的输出端口 ,用于传输各个相应通讯接口的状态信 息至该CPU的外部管理模块;所述外部管理模块位于所述数字芯片中,依据所述状态信息通过时钟管理模块控制传输给CPU的时钟信号;当各个通讯接口的状态均为空闲时, 控制传输低于正常值的时钟信号给CPU,或者停止CPU的时钟信号供给。
10、如权利要求9所述的数字芯片,其特征在于,所述外部管理模块为该数字芯片的功耗管理单元;或者,所述外部管理模块为该数字芯片的另一CPU; 或者,所述外部管理模块为该数字芯片的时钟管理模块。
全文摘要
本发明提供了一种降低CPU功耗的方法,包括CPU内部模块检测当前CPU各个通讯接口的状态信息;所述状态信息包括该通讯接口是否在进行通信;通过CPU输出端口将各个通讯接口的状态信息传递至该CPU的外部管理模块;所述外部管理模块依据所述状态信息控制传输给CPU的时钟信号;当各个通讯接口的状态均为空闲时,控制传输低于正常值的时钟信号给CPU,或者停止CPU的时钟信号供给。本发明在CPU中增加了一个状态监测模块,用于监控该CPU各个通讯接口的状态信息,并通过相应的输出端口传输至外部管理模块,当CPU空闲时,可以通过外部管理模块控制传输给CPU的时钟信号,以达到降低功耗的目的。总之,本发明可以更加灵活、更低的降低CPU功耗。本发明还涉及一种数字芯片。
文档编号G06F1/32GK101498963SQ20091007897
公开日2009年8月5日 申请日期2009年3月2日 优先权日2009年3月2日
发明者艳 石 申请人:北京红旗胜利科技发展有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1