一种cpu和降低cpu功耗的方法

文档序号:6619080阅读:243来源:国知局
专利名称:一种cpu和降低cpu功耗的方法
技术领域
本发明涉及嵌入式系统技术领域,特别是涉及一种CPU和降低CPU功 耗的方法。
背景技术
CPU的应用非常广泛,例如,CPU作为重要器件应用在各种soc
(System On Chip,片上系统)中。
超长指令字CPU是一条指令来实现多个操作的并行执行,之所以放到 一条指令是为了减少内存访问,同时并行执行增加了运算的速度。通常一条 超长指令字多达上百位,有若干操作指令,每条超长指令字可以做不同的几
种运算。哪些操作指令可以并行执行是由编译器或者汇编程序员来选择的。 通常超长指令字(VLIW, Very Long Instruction Word)机只有一个控制器, 每个时钟周期启动一条超长指令字,超长指令字被分为几个字段,每个字段 为一个操作指令,控制相应的部件。
如图l所示,为现有技术的一种CPU的部件结构示意图,该CPU为超 长指令字CPU,包括功能部件和控制器。假设该CPU可以最大同时执行3 个操作指令, 一条加载/存储(Load/Store)指令,由加载/存储部件完成,两 条运算指令,由运算部件完成。如果在时钟周期N超长指令字N只包含一 条Load/Store指令,那么传统方法除了执行Load/Store指令的Load/Store部 件的时钟需要开启外,其它所有部件的时钟也都要开启。
随着芯片的规模不断增大,CPU的个数和速率不断增加,在芯片设计和 应用中,CPU功耗是一个必须考虑的问题,如何降低其功耗也是现有技术一 直渴望改进的一个方向。图1所示的一种CPU在工作时,数据存储器、数 据存储管理器、运算部件、指令存储器、指令存储管理器、指令读取部件各 个功能部件的时钟一直处于开启状态,多数量、高速度的CPU产生了大量 的功耗。因而,目前需要本领域技术人员迫切解决的一个技术问题就是如 何能够降低CPU器件的功耗。

发明内容
本发明所要解决的技术问题是提供一种CPU和降低CPU功耗的方法, 以降低CPU器件的功耗。
为了解决上述技术问题,本发明实施例公开了一种CPU,包括功能部
件和控制器,
所述功能部件包括 指令存储器,用于存储指令;
指令存储管理器,用于管理指向所述指令存储器的访问请求; 数据存储器,用于存储数据;
数据存储管理器,用于管理指向所述数据存储器的访问请求; 运算部件,用于完成各种算术和逻辑运算; 所述控制器,用于控制并协调各个功能部件运行; 还包括
时钟控制模块,位于控制器中,用于依据指令判断在当前时钟周期中是 否有针对某个功能部件的访问请求;如果有,则在当前时钟周期控制该功能 部件的时钟开启,否则,在当前时钟周期控制该功能部件的时钟关闭。
其中,所述时钟控制模块依据的指令包括所述指令存储管理器从所述 指令存储器中读取的指令,以及CPU外部设备通过指令总线发送至所述指 令存储管理器的指令。
优选的,所述指令为超长指令字, 一条超长指令字包含多个操作指令, 所述多个操作指令在同 一个时钟周期内并行执行来完成对相应功能部件的 访问。
其中,每个时钟周期启动一条超长指令字。
优选的,所述指向所述数据存储器的访问请求为CPU外部设备通过数 据总线发送至数据存储管理器的。
优选的,所述功能部件还包括加载/存储部件;所述指向所述数据存储 器的访问请求为CPU的控制器通过所述加载/存储部件发送至数据存储管理 器的。依据本发明的另 一实施例,还公开了 一种降低CPU功耗的方法,该CPU
的功能部件包括指令存储器、指令存储管理器、数据存储器、数据存储管理
器、运算部件,所述的方法包括
依据指令判断当前时钟周期中,是否有针对某个功能部件的访问请求; 如果有,则在当前时钟周期控制该功能部件的时钟开启,否则,在当前
时钟周期控制该功能部件的时钟关闭。
其中,所述依据的指令包括所述指令存储管理器/人所述指令存储器中
读取的指令,以及CPU外部设备通过指令总线发送至指令存储管理器的指令。
优选的,所述指令为超长指令字, 一条超长指令字包含多个操作指令, 所述多个操作指令在同 一时钟周期内并行执行来完成对相应功能部件的访 问。
其中,每个时钟周期启动一条超长指令字。 与现有技术相比,本发明具有以下优点
控制器在整个CPU中控制并协调各个功能部件运行,本发明对控制器 进行了改进,具体的,本发明在控制器中增加了时钟控制模块,根据指令判 断当前时钟周期中,是否有针对某个功能部件的访问请求;如果有,则在当 前时钟周期控制该功能部件的时钟开启,否则,在当前时钟周期控制该功能 部件的时钟关闭。由于在COMS ( Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)电路中,动态功耗与时钟成正 比;各个功能部件并不是一直都在执行命令,空闲功能部件处于功耗浪费 的状态,所以将空闲的功能部件的时钟关闭,就可以去掉该功能部件的能 量消耗,所以本发明可以很好的降低CPU器件的功耗。


图1是现有技术一种CPU的部件结构示意图2是本发明一种CPU实施例的部件结构示意图3是本发明一种CPU的优选实施例的部件结构示意图;图4是本发明一种降低CPU功耗的方法实施例的步骤流程图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图 和具体实施方式
对本发明作进一步详细的说明。
本发明的核心构思在于在CPU的控制器中增加了时钟控制模块, 当识别出某一 CPU的功能部件处于空闲状态时,关闭没有访问需求的功 能部件的时钟,由于在COMS ( Complementary Metal Oxide Semiconductor, 互补金属氧化物半导体)电路中,功耗与时钟成正比;所以在空闲时刻关闭 时钟,可以去掉此时空闲功能部件的能量消耗,以达到降低功耗的目的。
参照图2,示出了本发明一种CPU实施例的部件结构示意图,所述CPU 具体包括功能部件20和控制器21,
所述功能部件20包括指令存储器201,用于存储指令;
指令存储管理器202,用于管理指向所述指令存储器201的访问请求; 数据存储器203,用于存储数据;
数据存储管理器204,用于管理指向所述数据存储器204的访问请求; 运算部件205,用于完成各种算术和逻辑运算; 所述控制器21 ,用于控制并协调各个功能部件运行; 还包括
时钟控制模块211,位于控制器21中,用于依据指令判断在当前时钟周 期中是否有针对某个功能部件的访问请求;如果有,则在当前时钟周期控制 该功能部件的时钟开启,否则,在当前时钟周期控制该功能部件的时钟关闭。
图2所示的实施例采用的是哈佛体系结构,将数据和指令分开存储和调 用,即CPU包括指令通道(指令存储器201和指令存储管理器202 )和数据 通道(数据存储器203和数据存储管理器204 )。
本发明的重要改进之处在于,在控制器21中增加了时钟控制模块211, 时钟控制模块211依据指令判断在当前时钟周期中,需要对哪些功能部件执 行指令操作,针对有访问需求的功能部件,在当前时钟周期控制该功能部件的时钟开启;针对没有访问需求的功能部件,例如,没有需要执行的指令, 或者,由于种种原因导致的访问被中止,指令无法执行的情形,则在当前 时钟周期控制该功能部件的时钟关闭。
其中,所述时钟控制模块依据的指令包括两种情况 一种情况是所述指 令存储管理器从所迷指令存储器中读取的指令,在这种情况下,根据从所述 指令存储器中读取的指令,将执行该指令功能部件的时钟开启,例如当前时 钟周期中只有Load/Store指令,则只开启Load/Store部件的时钟,而不像 传统方法中,将运算部件等其它功能部件的时钟都开启;另一种情况是CPU 外部设备通过指令总线发送至所述指令存储管理器的指令,在此情况下,如 果其它功能部件没有访问请求,由于该情况在当前时钟周期中只用到了指令 存储管理器,则只将指令存储管理器的时钟开启,将其它功能部件的时钟关 闭,比起传统的所有功能部件的时钟都开启的方案,减少了不必要的能量消 耗。
参照图3,示出了本发明一种CPU的优选实施例的部件结构示意图,其 采用现阶段比较常用的VLIW架构体系实现。
VLIW是指一条超长指令字实现多个操作的并行执行,增加了运算的速 度。在这种计算机处理结构里面语言编译器或者预处理器中断程序指令分解 到可以被处理器并行执行的基本操作。这些操作指令放在一个超长指令字 里,这样处理器就可以直接分解它而不用进一步分析,对应每个操作指令到 适当的功能单元。VLIW处理器主要的优点是复杂性从硬件移到了软件,这 就意味着硬件可以变得更小,更便宜并且耗电量也更少。
图3所示的一种CPU的优选实施例,包括功能部件30和控制器31,
所述功能部件30包括
指令存储器301,用于存储指令;
指令存储管理器302,用于管理指向所述指令存储器301的访问请求; 指令读取部件303,用于通过指令存储管理器302从指令存储器301读 取所需执行的指令;所述指令读取部件还可以用于对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作; 数据存储器304,用于存储数据;
数据存储管理器305,用于管理指向所述数据存储器的访问请求;
运算部件306,用于完成各种算术和逻辑运算;所#1行的运算会与所需 执行的指令和/或所读写的数据有关;
Load/Store部件307,用于发出加载或存储指令,通过数据存储管理器 305从数据存储器304读取或者写入所需的数据;
所述控制器31,用于控制并协调各个功能部件运行;
还包括
时钟控制模块311,位于控制器31中,用于依据指令判断在当前时钟周 期中是否有针对某个功能部件的访问请求;如果有,则在当前时钟周期控制 该功能部件的时钟开启,否则,在当前时钟周期控制该功能部件的时钟关闭。
图3所示的实施例还包括指令总线320和数据总线321, 二者仅是逻辑 划分,实际上,如果总线分时复用的话,二者在物理上是同一的。
其中,所述时钟控制模块依据的指令包括所述指令存储管理器302从 所述指令存储器301中读取的指令,以及CPU外部设备通过指令总线320 发送至所述指令存储管理器302的指令。
另外,本实施例中的指令为超长指令字,每个时钟周期启动一条超长指 令字, 一条超长指令字包含多个操作指令,所述多个操作指令在同一个时钟 周期内并行执行来完成对相应功能部件的访问。
对于指向所述数据存储器的访问请求,有两种情况, 一种情况是,所述 指向所述数据存储器的访问请求是CPU外部设备通过数据总线321发送至 数据存储管理器的。例如,对于DMA (Direct Memory Access,直接存储器 存取)而言,其可以暂时占用数据总线,直接向数据存储管理器发出针对数 据存储器的访问请求。
另一种情况是,指向所述数据存储器的访问请求是由CPU内部发起的, 通常会通过Load/Store部件向数据存储管理器发出。然后由数据存储管理器 完成相应的读写操作;如果涉及到运算的,则调用运算部件完成即可。具体的访问请求通常可以包括地址信息,读或写操作的控制信息;对于写操作 而言,还可以包括所需写入的数据。
对于CPU来说,它的工作可分为获取指令、解码、运算、结果等几个 步骤,每一步骤分别有不同的功能部件完成。按照传统的方式,所有指令按 顺序执行,先由指令存储器、指令存储管理器、指令读取部件工作,完成指 令的获取和译码,然后数据存储器、数据存储管理器、运算器工作,完成数 据读取、运算等操作。很明显,当指令读取部件工作时运算器等其它功能部 件处于闲置状态,当运算器在工作时指令读取部件等又在休息,这样就造成 了相当大的资源浪费。于是CPU借鉴了工业生产中#:广泛应用的流水线设 计,当某个功能部件完成了第一条指令后,直接开始第二条指令的操作,这 样就形成了流水线。流水线技术可最大限度地利用了 CPU资源,使每个功 能部件在每个时钟周期都在工作,从而提高了 CPU的运算频率。
根据本发明一种CPU的优选实施例,如果在时钟周期N超长指令字N 包含一条Load/Store指令,那么传统的CPU在时钟周期N除了执行 Load/Store指令,开启Load/Store部件的时钟外,其它所有功能部件的时钟 都开启,这必然来产生了额外的功耗。根据本发明,在CPU的控制器中增 加时钟控制模块311,依据指令将所需要的功能部件的时钟开启或者关闭。
如上所述,控制器31的时钟控制模块311在时钟周期N根据超长指令 字N将Load/Store部件的时钟开启,并根据Load/Store指令在N+l, N+2, N+3等以下时钟周期将所需要的功能部件的时钟开启,并将不需要的功能部 件的时钟关闭。下面针对在时钟周期N中的一条超长指令字N在CPU中的 执行操作进行具体描述。
操作指令一所述超长指令字N包含一条操作指令为Load/Store指令, 则具体的操作为
时钟周期N,打开Load/Store部件的时钟,访问Load/Store部件的地址 寄存器;
时钟周期N+1, Load/Store部件的时钟保持开启状态,在Load/Store部 件中进行Load地址计算;时钟周期N+2,关闭Load/Store部件的时钟,打开数据存储管理器的时 钟,向数据存储管理器发出读取请求;
时钟周期N+3,数据存储管理器的时钟保持开启状态,打开数据存储器 的时钟,对数据存储器进行数据读取访问;
时钟周期N+4,数据存储管理器的时钟保持开启状态,关闭数据存储器 的时钟,将数据回写到数据存储管理器中;
时钟周期N+5,关闭数据存储管理器的时钟,打开Load/Store部件的时 钟,此时数据写入Load/Store部件的寄存器中。
操作指令二相应的,如果在时钟周期N,超长指令字N还包括一条操 作指令为运算指令,所述运算指令与上述Load/Store指令并行执行,互不干 扰,则具体执行操作为
时钟周期N,打开数据存储管理器的时钟,向数据存储器发出读取请求;
时钟周期N+1,数据存储管理器的时钟保持开启状态,打开数据存储器 的时钟,对数据存储器进行数据读取访问;
时钟周期N+2,数据存储管理器的时钟保持开启状态,关闭数据存储器 的时钟,将数据回写到数据存储管理器中;
时钟周期N+3,关闭数据存储管理器的时钟,打开运算部件的时钟,在 运算部件中进行逻辑与运算;
时钟周期N+4,关闭运算部件的时钟,开启数据存储管理器的时钟,将 运算结果数据写入到数据存储管理器;
时钟周期N+5,关闭数据存储管理器的时钟,打开数据存储器的时钟, 运算结果数据最终写回到数据存储器。
指令三相应的,如果在时钟周期N+1, CPU外部设备通过指令总线发 送指令到存储管理器,则具体执行操作为
时钟周期N+1,打开指令存储管理器的时钟,通过指令总线将CPU外 部设备的指令发送到指令存储管理器。
ii时钟周期N+2,关闭指令存储管理器的时钟,打开指令存储器的时钟,
将CPU外部设备的指令发送至指令存储器。
综合以上三种指令情况的时钟控制,CPU功能部件的时钟状态如下 在时钟周期N,根据操作指令一,打开Load/Store部件的时钟,根据操
作指令二,打开数据存储管理器的时钟,其它功能部件的时钟保持关闭状态; 时钟周期N+l,根据操作指令一,Load/Store部件的时钟保持开启状态,
根据操作指令二,数据存储管理器的时钟保持开启状态,打开数据存储器的
时钟,根据指令三,打开指令存储管理器的时钟,其它功能部件的时钟保持
关闭状态;
时钟周期N+2,根据操作指令一,关闭Load/Store部件的时钟,根据操 作指令二,关闭数据存储器的时钟,根据操作指令一和二,数据存储管理器 的时钟保持开启状态,根据指令三,关闭指令存储管理器的时钟,打开指令 存储器的时钟,其它功能部件的时钟保持关闭状态;
时钟周期N+3,根据操作指令一,数据存储管理器的时钟保持开启状态, 打开数据存储器的时钟,根据操作指令二,打开运算部件的时钟,其它功能 部件的时钟保持关闭状态;
时钟周期N+4,根据操作指令一,关闭数据存储器的时钟,根据操作指 令二,关闭运算部件的时钟,根据操作指令一和二,数据存储管理器的时钟 保持开启状态,其它功能部件的时钟保持关闭状态;
时钟周期N+5,根据操作指令一,打开Load/Store部件的时钟,根据指 令二,打开数据存储器的时钟,根据操作指令一和二,关闭数据存储管理器 的时钟,其它功能部件的时钟保持关闭状态。
根据CPU的流水线技术,在时钟周期N+1、 N+2等下面的时钟周期中 又会启动其它的超长指令字,则具体的执行操作与上述时钟控制操作相类 似。根据本发明实施例,在CPU的控制器31中增加了时钟控制模块311, 当判断出在当前识别出某一功能部件处于空闲状态时,关闭没有访问需 求的功能部件的时钟,就可以去掉此时空闲功能部件的能量消耗,以达到降低功耗的目的。
参照图4,示出了本发明一种降低CPU功耗的方法实施例的步骤流程 图,该CPU功能部件包括指令存储器、指令存储管理器、指令读取部件、 数据存储器、数据存储管理器、Load/Store部件、运算部件,所述的方法包 括
步骤401,依据指令判断当前时钟周期中,是否有针对某个功能部件的 访问请求;
步骤402,如果有,则在当前时钟周期控制该功能部件的时钟开启;
步骤403,否则,在当前时钟周期控制该功能部件的时钟关闭。
其中,所述依据的指令包括所述指令存储管理器从所迷指令存储器中
读取的指令,以及CPU外部设备通过指令总线发送至所述指令存储管理器
的指令。
另夕卜,本实施例中的指令为超长指令字,每个时钟周期启动一条长指令, 一条长指令包含多个操作指令,所述多个操作指令在同 一个时钟周期内并行 执行来完成对相应功能部件的访问。
一般来说,CPU采用流水线技术,当某个功能部件完成了第一条指 令后,直接开始第二条指令的操作,流水线技术可最大限度地利用了 CPU 资源,使每个功能部件在每个时钟周期都在工作,从而提高了CPU的运 算频率。
本发明实施例中,如果在时钟周期N超长指令字N包含Load/Store指 令和运算指令这两个操作指令,则在时钟周期N启动超长指令字N, Load/Store指令和运算指令在时钟周期N内并行执行,分别完成对Load/Store 部件和运算部件的访问。根据本发明一种降低CPU功耗的方法,依据指令 判断当前时钟周期中,是否有针对某个功能部件的访问请求,如果有,则在 当前时钟周期控制该功能部件的时钟开启,否则,在当前时钟周期控制该功 能部件的时钟关闭。根据上述方法,在时钟周期N中将Load/Store部件和数 据存储管理器的时钟开启。并根据Load/Store指令和运算指令在N+1, N+2,等接下来的时钟周期中将需要访问的功能部件的时钟开启,并将不需要
访问的功能部件的时钟关闭。
根据CPU的流水线技术,在时钟周期N+1,又会启动一条新的超长指 令字N+1,则又会根据超长指令字N+l包含的操作指令,开启所述操作指 令需要访问的功能部件的时钟。相应的,如果在时钟周期N+2, CPU外部 设备通过指令总线发送指令到指令存储管理器,则时钟周期N+2将指令存储 管理器的时钟打开,将不需要的功能部件的时钟关闭。
总之,为保证指令得以顺利执行,在现有技术中,对于任何一个时钟周 期,所有功能部件的时钟都处于开启状态,因而CPU的功耗较大。而本领 域技术人员一般仅从改变指令执行优先级的角度来考虑降低CPU功耗,即 在同样CPU功耗的条件下,如何尽可能多地执行指令,从而提高CPU的利 用率,间接降低CPU功耗,这种设计往往需要都对指令系统做出较大、较 复杂地改动。本发明另辟蹊径,从CPU中对其它功能部件有控制、协调作 用的控制器入手,增加了时钟控制模块来控制各个功能部件的时钟开启或者 关闭,直接消除了 CPU不必要的功耗,对CPU结构和运行过程的改动小, 同样却也达到了降低CPU功耗的目的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明 的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见 即可。
以上对本发明所提供的一种降低CPU功耗的方法以及一种应用上述 方法的CPU,进行了详细介绍,本文中应用了具体个例对本发明的原理及 实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及 其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具 体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理 解为对本发明的限制。
权利要求
1、一种CPU,其特征在于,包括功能部件和控制器,所述功能部件包括指令存储器,用于存储指令;指令存储管理器,用于管理指向所述指令存储器的访问请求;数据存储器,用于存储数据;数据存储管理器,用于管理指向所述数据存储器的访问请求;运算部件,用于完成各种算术和逻辑运算;所述控制器,用于控制并协调各个功能部件运行;还包括时钟控制模块,位于控制器中,用于依据指令判断在当前时钟周期中是否有针对某个功能部件的访问请求;如果有,则在当前时钟周期控制该功能部件的时钟开启,否则,在当前时钟周期控制该功能部件的时钟关闭。
2、 根据权利要求1所述的一种CPU,其特征在于,所述时钟控制模块 依据的指令包括所述指令存储管理器从所述指令存储器中读取的指令,以及CPU外部 设备通过指令总线发送至所述指令存储管理器的指令。
3、 根据权利要求1或2所述的一种CPU,其特征在于,所述指令为超 长指令字, 一条超长指令字包含多个操作指令,所述多个操作指令在同一个 时钟周期内并行执行来完成对相应功能部件的访问。
4、 根据权利要求3所述的一种CPU,其特征在于,每个时钟周期启动 一条超长指令字。
5、 根据权利要求1所述的一种CPU,其特征在于, 所述指向所述数据存储器的访问请求为CPU外部设备通过数据总线发送至数据存储管理器的。
6、 根据权利要求1所述的一种CPU,其特征在于,所述功能部件还包 括加载/存储部件;所述指向所述数据存储器的访问请求为CPU的控制器通过所述加载/存 储部件发送至数据存储管理器的。
7、 一种降低CPU功耗的方法,该CPU的功能部件包括指令存储器、 指令存储管理器、数据存储器、数据存储管理器、运算部件,其特征在于, 所述的方法包括依据指令判断当前时钟周期中,是否有针对某个功能部件的访问请求; 如果有,则在当前时钟周期控制该功能部件的时钟开启,否则,在当前 时钟周期控制该功能部件的时钟关闭。
8、 根据权利要求7所述的方法,其特征在于,所述依据的指令包括 所述指令存储管理器从所述指令存储器中读取的指令,以及CPU外部设备通过指令总线发送至指令存储管理器的指令。
9、 根据权利要求7或8所述的方法,其特征在于,所述指令为超长指 令字, 一条超长指令字包含多个操作指令,所述多个操作指令在同一时钟周 期内并行执行来完成对相应功能部件的访问。
10、 根据权利要求9所述的方法,其特征在于,每个时钟周期启动一条 超长指令字。
全文摘要
本发明提供了一种CPU和降低CPU功耗的方法,该CPU包括功能部件和控制器,所述功能部件包括指令存储器,用于存储指令;指令存储管理器,用于管理指向指令存储器的访问请求;数据存储器,用于存储数据;数据存储管理器,用于管理指向数据存储器的访问请求;运算部件,用于完成算术和逻辑运算;所述控制器用于控制并协调各个功能部件运行;还包括位于控制器的时钟控制模块,用于依据指令判断在当前时钟周期中是否有针对某个功能部件的访问请求;如果有,则在当前时钟周期控制该功能部件的时钟开启,否则,在当前时钟周期控制该功能部件的时钟关闭。本发明通过控制功能部件的时钟开启或关闭,去除了空闲状态功能部件的功耗,进而降低了整个CPU的功耗。
文档编号G06F9/38GK101581961SQ200910086468
公开日2009年11月18日 申请日期2009年6月15日 优先权日2009年6月15日
发明者艳 石 申请人:北京红旗胜利科技发展有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1