一种CPU、CPU指令系统及降低CPU功耗的方法.pdf

上传人:a**** 文档编号:970703 上传时间:2018-03-22 格式:PDF 页数:23 大小:1.13MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910076813.8

申请日:

2009.01.21

公开号:

CN101504567A

公开日:

2009.08.12

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 1/32申请日:20090121|||公开

IPC分类号:

G06F1/32; G06F9/30

主分类号:

G06F1/32

申请人:

北京红旗胜利科技发展有限责任公司

发明人:

石 艳

地址:

100081北京市海淀区中关村南大街甲10号银海大厦南715A室

优先权:

专利代理机构:

北京润泽恒知识产权代理有限公司

代理人:

苏培华

PDF下载: PDF下载
内容摘要

本发明提供了一种CPU指令系统,包括:指令存储器;指令存储管理器,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件的数据缓存器中;指令读取部件,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;数据缓存器,用于缓存所述需执行的指令;还包括:时钟控制模块,位于所述指令存储管理器中,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。本发明通过降低CPU器件中存储部分在运行中的功耗,从而降低整个CPU器件的功耗。

权利要求书

1、  一种CPU指令系统,其特征在于,包括:
指令存储器,用于存储指令;
指令存储管理器,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件的数据缓存器中;
指令读取部件,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;
数据缓存器,位于所述指令读取部件中,用于缓存所述需执行的指令;
还包括:
时钟控制模块,位于所述指令存储管理器中,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。

2、
  如权利要求1所述的CPU指令系统,其特征在于,所述指令存储管理器还包括:
缓存管理模块,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。

3、
  如权利要求1或2所述的CPU指令系统,其特征在于,
当所述时钟控制模块控制时钟信号输出至指令存储器时,时钟控制模块还用于控制针对该指令存储器的数据使能信号为有效状态;
当所述时钟控制模块禁止时钟信号输出至指令存储器时,时钟控制模块还用于控制针对该指令存储器的数据使能信号为无效状态。

4、
  如权利要求3所述的CPU指令系统,其特征在于,所述数据缓存器为FIFO数据缓存器。

5、
  一种CPU,其特征在于,包括:
数据存储器,用于存储数据;
数据存储管理器,用于管理指向所述数据存储器的访问请求;
指令存储器,用于存储指令;
指令存储管理器,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件的数据缓存器中;
控制器,用于控制并协调各个功能部件运行;
运算器,用于完成各种算术和逻辑运算;
还包括:
位于所述指令存储管理器中的第一时钟控制模块,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。

6、
  如权利要求5所述的CPU,其特征在于,所述指令存储管理器还包括:
缓存管理模块,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。

7、
  如权利要求5或6所述的CPU,其特征在于,还包括:
位于所述数据存储管理器中的第二时钟控制模块,用于判断下一个时钟周期中,是否有针对所述数据存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述数据存储器,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。

8、
  一种降低CPU功耗的方法,该CPU包括指令存储器,其特征在于,所述的方法包括:
接收指向所述指令存储器的访问请求;
判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;并从所述指令存储器中取出所述访问请求所对应的指令,写入指令读取部件的数据缓存器中;
如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。

9、
  如权利要求8所述的方法,其特征在于,还包括:
判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。

10、
  如权利要求8或9所述的方法,该CPU还包括数据存储器,其特征在于,还包括:
接收指向所述数据存储器的访问请求;
判断下一时钟周期中,是否有针对所述数据存储器的访问请求;
如果有,则在下一个时钟周期输出时钟信号至所述数据存储器,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。

说明书

一种CPU、CPU指令系统及降低CPU功耗的方法
技术领域
本发明涉及CPU指令控制领域,特别是涉及一种CPU、一种CPU指令系统及一种降低CPU功耗的方法。
背景技术
CPU应用非常广泛,例如,CPU作为重要器件应用在各种SOC(System On Chip,片上系统)中。CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。一般而言,这种指令系统包括指令存储器、指令读取部件和指令存储管理器,指令存储管理器负责将指令从指令存储器中读出,送入指令读取部件,然后控制运算部件或者Load/Store(加载/存储)部件等组成部件执行。
在芯片设计和应用中,CPU功耗是一个必须考虑的问题,如何降低其功耗也是现有技术一直渴望改进的一个方向。例如,公开号为CN101162405的中国专利就公开了一种动态降低CPU功耗的方法。该方法可以依据CPU占有率动态调整CPU的指令运行速度。在CPU运行过程中,如果CPU的占有率低于设定的下限值就将CPU的指令运行速度降低,如果CPU的占有率高于设定的上限值就将CPU的指令运行速度提高,其中CPU的指令运行速度的调整主要通过开关数据高速缓存器接口和指令高速存器接口,以及改变传输时延来实现的。
上述改进方案是针对CPU整体进行的,那么是否还存在其他的改进角度?将CPU器件作进一步的细分,其可能包括控制部分、运算部分和存储部分,那么是否可以对CPU器件的某个或者多个部件进行改进,或者对某个或者多个部件的运行过程进行改进,以进一步降低CPU的功耗?因为在实际的设计和应用中,本领域技术人员对于功耗的追求是越低越好,任何能够降低功耗的方法都是需要的。
因而,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够进一步降低CPU器件的功耗。
发明内容
本发明所要解决的技术问题是提供一种能够进一步降低CPU器件功耗的解决方案以及应用该解决方案的CPU器件,以降低CPU器件中存储部分在运行中的功耗,从而降低整个CPU器件的功耗。
为了解决上述技术问题,本发明实施例公开了一种CPU指令系统,包括:
指令存储器,用于存储指令;
指令存储管理器,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件的数据缓存器中;
指令读取部件,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;
数据缓存器,位于所述指令读取部件中,用于缓存所述需执行的指令;
还包括:
时钟控制模块,位于所述指令存储管理器中,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。
优选的,所述指令存储管理器还包括:
缓存管理模块,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。
优选的,当所述时钟控制模块控制时钟信号输出至指令存储器时,时钟控制模块还用于控制针对该指令存储器的数据使能信号为有效状态;
当所述时钟控制模块禁止时钟信号输出至指令存储器时,时钟控制模块还用于控制针对该指令存储器的数据使能信号为无效状态。
优选的,所述数据缓存器为FIFO数据缓存器。
本发明实施例还公开了一种CPU,包括:
数据存储器,用于存储数据;
数据存储管理器,用于管理指向所述数据存储器的访问请求;
指令存储器,用于存储指令;
指令存储管理器,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件的数据缓存器中;
控制器,用于控制并协调各个功能部件运行;
运算器,用于完成各种算术和逻辑运算;
还包括:
位于所述指令存储管理器中的第一时钟控制模块,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。
优选的,所述指令存储管理器还包括:
缓存管理模块,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。
优选的,所述的CPU还包括:
位于所述数据存储管理器中的第二时钟控制模块,用于判断下一个时钟周期中,是否有针对所述数据存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述数据存储器,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。
本发明实施例还公开了一种降低CPU功耗的方法,该CPU包括指令存储器,所述的方法包括:
接收指向所述指令存储器的访问请求;
判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;并从所述指令存储器中取出所述访问请求所对应的指令,写入指令读取部件的数据缓存器中;
如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。
优选的,所述的方法还包括:
判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。
优选的,所述CPU还包括数据存储器,所述的方法还包括:
接收指向所述数据存储器的访问请求;
判断下一时钟周期中,是否有针对所述数据存储器的访问请求;
如果有,则在下一个时钟周期输出时钟信号至所述数据存储器,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。
与现有技术相比,本发明具有以下优点:
本专利的发明人从整个CPU器件选择了指令系统进行改进,针对CPU指令存储器件,在CPU芯片中增加时钟信号控制器,当识别出没有指向指令存储器件的访问请求或访问请求由于种种原因被中止或不能被执行时,针对该指令存储器件停止提供时钟信号。由于在COMS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)电路中,动态功耗与时钟成正比;所以在空闲时刻停止提供时钟信号,就可以去掉此时指令存储器件的能量消耗,由于CPU指令系统的功耗占整个CPU器件功耗的比例较高,所以本发明可以较好的降低CPU器件功耗。
附图说明
图1是本发明的一种CPU指令系统实施例1的结构图;
图2是本发明的一种CPU指令系统实施例2的结构图;
图3是本发明的一种CPU器件实施例1的结构图;
图4是本发明的一种CPU器件实施例2的结构图;
图5是本发明的一种降低CPU功耗的方法实施例1的流程图;
图6是本发明的一种降低CPU功耗的方法实施例2的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
CPU指令执行的过程实际上就是取出指令、分析指令和执行指令的循环过程。具体而言,当CPU执行一条指令时,先把它从指令存储器取到指令读取部件,为提高指令执行的效率,所述指令读取部件中设置数据缓存器以缓存该所需执行的指令,在这种情况下,将指令从指令存储器取到数据缓存器中,即完成取指令的过程。然后,指令读取部件会对指令码进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。比如一次内存读/写操作,一个算术逻辑运算操作,或一个输入/输出操作等。
为将CPU指令从指令存储器中取出来,一般需要由CPU输出时钟信号(Clock Signal)至指令存储器,时钟信号通常是由一个周期性的方波构成,即每隔一定的时间间隔(时间周期)发出的脉冲式电信号。现有技术中,由于指令执行频率较高,因而时钟信号被持续加载在指令存储器件上,但在实际中,可能出现的一种情形为,当前没有需要执行的指令,即不产生指向指令存储器件的访问请求;若在此时仍输出时钟信号至指令存储器,显然过于浪费CPU的功耗。
另外,在采用数据缓存器的情况下,还有可能出现的一种情形为,由于缓存存储容量有限(一般为存储4-8条指令),当数据缓存器的存储容量已满时,则需要在执行完一条数据缓存器中的指令后,才能继续从指令存储器中取出下一条指令,此时,即使产生了指向指令存储器件的访问请求,在指令存储器上加载时钟信号,但取指令操作会产生错误;而需要等到数据缓存器的存储容量有剩余时,该取指令操作才得以实现。显然,若在较长的指令执行期间中,仍产生访问请求并持续加载指令存储器的时钟信号,也会导致CPU的功耗过大。
简而言之,取指令过程中,在当前没有指向指令存储器件的访问请求,或该访问请求由于种种原因被中止或不能被执行时,若该指令存储器件的时钟信号和数据使能信号都是有效的,即此时该指令存储器件在消耗CPU的能量,也就是说,该指令存储器件就处于功耗浪费的状态。
正是由于本专利的发明人注意到了这一点,因此,创新性的提出本发明实施例的核心构思之一:针对CPU指令存储器件,在CPU芯片中增加时钟信号控制器,当识别出没有指向指令存储器件的访问请求或访问请求被中止或不能被执行时,针对该指令存储器件停止提供时钟信号。由于在COMS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)电路中,动态功耗与时钟成正比;所以在空闲时刻停止提供时钟信号,就可以去掉此时指令存储器件的能量消耗,以达到降低功耗的目的。
参考图1,示出了本发明的一种CPU指令系统实施例1的结构图,具体可以包括:
指令存储器101,用于存储指令;
指令存储管理器102,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件103的数据缓存器1031中;
指令读取部件103,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;
数据缓存器1031,位于所述指令读取部件中,用于缓存所述需执行的指令;
所述CPU指令系统还包括:
时钟控制模块1021,位于所述指令存储管理器102中,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。
本实施例的重要改进之处就在于在指令存储管理器中增加了时钟控制模块。在本实施例中,指令存储管理器用于管理指向所述指令存储器的访问请求;具体的,当指令存储管理器的时钟控制模块判断在下一个时钟周期中,有针对所述指令存储器的访问请求时,则在下一个时钟周期输出时钟信号至所述指令存储器,使所述访问请求所对应的指令能从指令存储器中取出,并写入指令读取部件的数据缓存器中;当所述时钟控制模块判断在下一个时钟周期中没有针对所述指令存储器的访问请求时,例如,没有需要执行的指令,或者,由于种种原因导致的访问被中止,指令无法执行的情形,则禁止时钟信号输出至所述指令存储器。在实际中简单的情况就是,针对指令存储器,有连线引入时钟信号,控制该连线关闭,中断时钟信号的输入,从而去掉此时指令存储器件的能量消耗,即可达到减小功耗的效果。
在具体实现中,当数据缓存器的存储容量已满时,即使产生了指向指令存储器件的访问请求,但其实仍然无法将该指令取到数据缓存器中;也就是说,此时的访问请求并不产生作用,应当被中止。鉴于这种构思,参考图2,本发明提出了一种CPU指令系统实施例2的结构图,具体可以包括:
指令存储器201,用于存储指令;
指令存储管理器202,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件203的数据缓存器2031中;
指令读取部件203,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;
数据缓存器2031,位于所述指令读取部件中,用于缓存所述需执行的指令;
其中,所述指令存储管理器202还包括:
时钟控制模块2021,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器;
缓存管理模块2022,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。
本实施例的重要改进之处就在于在指令存储管理器中增加了时钟控制模块和缓存管理模块。在本实施例中,指令存储管理器用于管理指向所述指令存储器的访问请求;具体的,当指令存储管理器的时钟控制模块判断在下一个时钟周期中,有针对所述指令存储器的访问请求时,则在下一个时钟周期输出时钟信号至所述指令存储器,使所述访问请求所对应的指令能从指令存储器中取出,并写入指令读取部件的数据缓存器中;当所述时钟控制模块判断在下一个时钟周期中没有针对所述指令存储器的访问请求时,包括由缓存管理模块判断数据缓存器的存储容量已满时,中止发出指向所述指令存储器的访问请求的情形,则禁止时钟信号输出至所述指令存储器。在实际中简单的情况就是,针对指令存储器,有连线引入时钟信号,控制该连线关闭,中断时钟信号的输入,从而去掉此时指令存储器件的能量消耗,即可达到减小功耗的效果。
当然,本领域技术人员根据实际中种种原因导致的访问被中止,指令无法执行的情形设备相应模块以中止发出指向指令存储器的访问请求都是可行的,本发明对此无需加以限制。
在本发明的一种优选实施例中,所述数据缓存器可以为FIFO(FirstInput First Output,先进先出)数据缓存器。这种数据缓存器采用顺序写入数据,顺序读出数据的方式,其数据地址由内部读写指针自动加1完成;当FIFO已满或将要满时,FIFO的状态电路会送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow);而当FIFO已空或将要空时,FIFO的状态电路会送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。
在本发明实施例中,优选的,当所述时钟控制模块控制时钟信号输出至指令存储器时,时钟控制模块还用于控制针对该指令存储器的数据使能信号为有效状态;即在有访问请求时,保证针对指令存储器的时钟信号和数据使能信号都是有效的。
当所述时钟控制模块禁止时钟信号输出至指令存储器时,时钟控制模块还用于控制针对该指令存储器的数据使能信号为无效状态;即在没有访问请求时,保证针对该指令存储器的时钟信号和数据使能信号都是无效的。
在具体实现中,所述指令存储器可以为Cache(高速缓冲存储器)或TCM(紧耦合物理存储模块),TCM是一个固定大小的RAM(RandomAccess Memory随机存贮器),紧密地耦合至CPU内核,提供与cache相当的性能。当然,本领域技术人员根据实际需要选用任一种存储器件都是可行的,本发明对此无需加以限制。
参考图3,示出了本发明的一种CPU器件实施例1的结构图,具体可以包括:
数据存储器301,用于存储数据;
数据存储管理器302,用于管理指向所述数据存储器的访问请求;
指令存储器303,用于存储指令;
指令存储管理器304,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器303中取出相应的指令,写入指令读取部件305的数据缓存器3051中;
指令读取部件305,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;
数据缓存器3051,位于所述指令读取部件中,用于缓存所述需执行的指令;
控制器306,用于控制并协调各个功能部件运行;
运算器307,用于完成各种算术和逻辑运算;
该CPU器件还包括:
位于所述指令存储管理器304中的第一时钟控制模块3041,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器303;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。
作为本发明的另一优选实施例,所述指令存储管理器304还可以包括:
缓存管理模块3042,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。
作为本发明的另一优选实施例,所述数据存储管理器302还可以包括:第二时钟控制模块3021,用于判断下一个时钟周期中,是否有针对所述数据存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述数据存储器302,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。
图3所示的实施例采用的是哈佛体系结构,将数据和指令分开存储和调用,即CPU包括数据通道(数据存储器301和数据存储管理器302)和指令通道(指令存储器303和指令存储管理器304)。
在本实施例中,数据存储管理器用于管理指向所述数据存储器的访问请求。具体的,数据存储管理器接收访问请求,首先根据这些请求判断其指向CPU数据存储器中哪一个数据存储器,如果有多个访问请求竞争同一个存储器,则进行仲裁,找出优先级最高的访问请求;之后处理优先级最高的访问,对该存储器进行访问(包括读/写请求)。当数据存储管理器的第二时钟控制模块判断在下一个时钟周期中,有针对所述数据存储器的访问请求时,则在下一个时钟周期输出时钟信号至所述数据存储器;否则禁止时钟信号输出至所述数据存储器,在实际中简单的情况就是,针对数据存储器,有连线引入时钟信号,控制该连线关闭,中断时钟信号的输入,从而去掉此时数据存储器件的能量消耗,即可达到减小功耗的效果。
图3所示的CPU器件可以应用在各种嵌入式系统开发中。例如,其可以应用到ARM嵌入式系统中,ARM体系结构是RISC(精简指令集处理器)结构的CPU。当然,本发明并不限于RISC结构,CISC(复杂指令集处理器)也是可行的。
在ARM嵌入式系统中,数据存储管理器(MMU,Memory ManagementUnit)可以完成存储器访问权限的控制以及虚拟存储空间到物理存储空间的映射(因为在ARM中采用了页式虚拟存储管理)。正是由于数据存储管理器会接收所有针对数据存储器的访问请求,并具有权限控制、仲裁管理等能力,所以基于这些信息,在数据存储管理器中增加一个功能模块,就可以实现针对每个数据存储器的时钟信号控制功能。
优选的,当所述第一时钟控制模块控制时钟信号输出至指令存储器时,所述第一时钟控制模块还用于控制针对该指令存储器的数据使能信号为有效状态;即在有访问请求时,保证针对指令存储器的时钟信号和数据使能信号都是有效的。
当所述第一时钟控制模块禁止时钟信号输出至指令存储器时,所述第一时钟控制模块还用于控制针对该指令存储器的数据使能信号为无效状态;即在没有访问请求时,保证针对该指令存储器的时钟信号和数据使能信号都是无效的。
当所述第二时钟控制模块控制时钟信号输出至数据存储器时,所述第二时钟控制模块还用于控制针对该数据存储器的数据使能信号为有效状态;即在有访问请求时,保证针对数据存储器的时钟信号和数据使能信号都是有效的。
当所述第二时钟控制模块禁止时钟信号输出至数据存储器时,所述第二时钟控制模块还用于控制针对该数据存储器的数据使能信号为无效状态;即在没有访问请求时,保证针对该数据存储器的时钟信号和数据使能信号都是无效的。
参照图4,示出了本发明的一种CPU器件实施例2的结构图,其采用现阶段比较常用的RISC结构实现。
RISC和CISC(复杂指令集处理器)的区别在于:RISC不必像CISC那样设置微程序控制存储器,可以通简单的操作(例如,一般仅通过Load和Store操作访问即可)完成指令执行。一般的,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起,大部分指令能在一个时钟周期内完成;并且通过采用指令流水线操作,可以实现指令的并行操作。本发明采用上述两种结构都是可行的。
图4所示的CPU实施例,其结构部件更为详细,具体可以包括:
数据存储器401,用于存储数据;
指令存储器402,用于存储指令;
数据存储管理器403,用于管理指向所述数据存储器的访问请求;
指令存储管理器404,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器402中取出相应的指令,写入指令读取部件405的数据缓存器4051中;
指令读取部件405,用于通过指令存储管理器404从指令存储器402读取所需执行的指令,并放入数据缓存器4051中;所述指令读取部件还可以用于对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作;
数据缓存器4051,位于所述指令读取部件中,用于缓存所述需执行的指令;
Load/Store部件406,用于发出加载或存储指令,通过数据存储管理器303从数据存储器301读取或者写入所需的数据;
运算部件407,用于完成各种算术和逻辑运算;所执行的运算会与所需执行的指令和/或所读写的数据有关;
控制部件408,用于控制并协调各个功能部件运行;由于控制器是CPU器件中的基本部件,属于本领域的熟知技术,并且其功能会随着其他部件的变化而变化。本发明对此几乎没有改进,所以在此就不再赘述了;
该CPU器件还包括:
位于所述指令存储管理器404中的第一时钟控制模块4041,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述指令存储器303;如果无,则在下一个时钟周期禁止时钟信号输出至所述指令存储器。
位于所述指令存储管理器404中的缓存管理模块4042,用于判断所述数据缓存器的存储容量是否已满,如果已满,则中止发出指向所述指令存储器的访问请求。
位于所述数据存储管理器403中的第二时钟控制模块4031,用于判断下一个时钟周期中,是否有针对所述数据存储器的访问请求;如果有,则在下一个时钟周期输出时钟信号至所述数据存储器,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。
图4所示的实施例还包括指令总线410和数据总线411,所述指向指令存储器的访问请求可以为CPU外部设备通过指令总线410发送至指令存储管理器的;所述指向所述数据存储器的访问请求可以为CPU外部设备通过数据总线411发送至数据存储管理器的。例如,对于DMA(DirectMemory Access,直接存储器存取)而言,其可以暂时占用数据总线,直接向数据存储管理器发出针对数据存储器的访问请求。当然所述指令总线和数据总线这二者仅是逻辑划分,实际上,如果总线分时复用的话,二者在物理上是同一的。
当然,对于指向所述数据存储器的访问请求,还有一种情况是,由CPU内部发起的,则在RISC结构中,都会通过加载Load/存储Store部件向数据存储管理器发出。然后由数据存储管理器完成相应的读写操作,如果涉及到运算的,则调用运算部件完成即可。访问请求通常可以包括:地址信息,读或写操作的控制信息;对于写操作而言,还可以包括所需写入的数据。
实际上,由于CPU内部结构比较复杂,细分下去还有很多未涉及的地方,但是由于其大部分功能都可以归于控制器,所以本发明就不一一详述了。例如,为保证指令能够周而复始、有条不紊地执行下去,CPU必须使用指令计数器来保证在执行完当前指令时能知道下一条指令的地址。指令计数器工作通常分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入指令计数器。当执行指令时,指令读取部件或者控制器将自动修改指令计数器的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单加1即可。当遇到转移指令如JMP指令时,后继指令的地址(即指令计数器的内容)不能像通常一样按顺序来取得,而是根据当前指令的地址加上一个向前或向后转移的位移量相加的和得到,或者根据转移指令给出的直接转移的地址得到。
由于在数据存储器和CPU之间存在着操作速度上的判别,所以可能还需要使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。而且地址线和数据线大多数是分时复用的,所以也要地址存储器来暂时保存有关的地址数据。当CPU和数据存储器进行信息交换(读写数据),都要使用地址寄存器。
参考图5,示出了本发明的一种降低CPU功耗的方法实施例1的流程图,该CPU包括指令存储器,具体可以包括:
步骤501、接收指向所述指令存储器的访问请求;
步骤502、判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果有,则执行步骤503;否则,执行步骤504;
步骤503、在下一个时钟周期输出时钟信号至所述指令存储器;并从所述指令存储器中取出所述访问请求所对应的指令,写入指令读取部件的数据缓存器中;
步骤504、在下一个时钟周期禁止时钟信号输出至所述指令存储器。
参考图6,示出了一种降低CPU功耗的方法实施例2的流程图,该CPU包括指令存储器,具体可以包括:
步骤601、接收指向所述指令存储器的访问请求;
步骤602、判断下一个时钟周期中,是否有针对指令存储器的访问请求;如果没有,则执行步骤603;如果有,则执行步骤604;
步骤603、在下一个时钟周期禁止时钟信号输出至所述指令存储器;
步骤604、判断所述数据缓存器的存储容量是否已满,如果未满,则执行步骤605;如果已满,则执行步骤606;
步骤605;在下一个时钟周期输出时钟信号至所述指令存储器;并从所述指令存储器中取出所述访问请求所对应的指令,写入指令读取部件的数据缓存器中。
步骤606、中止发出指向所述指令存储器的访问请求,并跳转至步骤603。
在实际中,所述CPU器件还可以包括数据存储器,在这种情况下,本发明实施例优选地还可以包括以下步骤:
接收指向所述数据存储器的访问请求;
判断下一时钟周期中,是否有针对所述数据存储器的访问请求;
如果有,则在下一个时钟周期输出时钟信号至所述数据存储器,否则,在下一个时钟周期禁止时钟信号输出至所述数据存储器。
优选的,在本发明实施例中,当控制时钟信号输出至所述指令存储器时,还包括:控制针对该指令存储器的数据使能信号为有效状态;当禁止时钟信号输出至所述指令存储器时,还包括:控制针对该指令存储器的数据使能信号为无效状态。
总之,为保证指令得以顺利执行,在现有技术中,任何时刻的时钟信号和数据使能信号都是恒定有效的,因而CPU的功耗较大。而本领域技术人员一般仅从改变指令执行优先级的角度来考虑降低CPU功耗,即在同样CPU功耗的条件下,如何尽可能多地执行指令,从而提高CPU的利用率,间接降低CPU功耗,这种设计往往需要都对指令系统做出较大、较复杂地改动。而本发明另辟蹊径,直接降低了数据存储器件的功耗,对CPU结构和运行过程的改动最小,却也达到了降低CPU功耗的目的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
此外,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种CPU、一种CPU指令系统及一种降低CPU功耗的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

一种CPU、CPU指令系统及降低CPU功耗的方法.pdf_第1页
第1页 / 共23页
一种CPU、CPU指令系统及降低CPU功耗的方法.pdf_第2页
第2页 / 共23页
一种CPU、CPU指令系统及降低CPU功耗的方法.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《一种CPU、CPU指令系统及降低CPU功耗的方法.pdf》由会员分享,可在线阅读,更多相关《一种CPU、CPU指令系统及降低CPU功耗的方法.pdf(23页珍藏版)》请在专利查询网上搜索。

本发明提供了一种CPU指令系统,包括:指令存储器;指令存储管理器,用于管理指向所述指令存储器的访问请求;并依据所述访问请求从指令存储器中取出相应的指令,写入指令读取部件的数据缓存器中;指令读取部件,用于通过所述指令存储管理器从指令存储器中读取所需执行的指令;数据缓存器,用于缓存所述需执行的指令;还包括:时钟控制模块,位于所述指令存储管理器中,用于判断下一个时钟周期中,是否有针对指令存储器的访问请求。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1