具体实施方式
本发明实施例提供了一种操作系统在不同的中央处理器之间切换的方法及系统,用以实现不同功耗处理器的无缝切换,从而更加合理地利用处理器,避免功耗过大,浪费能源。
一般来说,处理器的数据处理能力越高,其功耗相应地也就高,本发明实施例提供的技术方案提供至少两个处理器,包括第一处理器及第二处理器,当系统有高性能需求时,操作系统运行在第一中央处理器上,当系统不繁忙时,即可以采用较低性能的处理器时,将操作系统无缝切换到第二中央处理器上,其中,第一中央处理器为N核处理器,第二中央处理器为M核处理器,N和M为大于或等于1的整数,例如为1~8任一整数,N和M可以相同也可以不同。
第一中央处理器的性能高于第二中央处理器的性能,相应地,第一中央处理器的功耗也高于第二中央处理器的功耗,从而通过将操作系统从第一中央处理器切换到第二中央处理器上,达到降低功耗的目的。
本发明实施例中,以两个中央处理器之间的切换为例进行的说明,当然,对于更多个中央处理器之间的切换,也同样适用本发明实施例提供的技术方案。
本发明实施例只需要第一中央处理器和第二中央处理器采用相同的指令集,即可实现操作系统的无缝切换,达到降低功耗的目的。
参见图1,本发明实施例实现的第一中央处理器和第二中央处理器之间的切换流程,通过软件和硬件部分相结合的方式来实现,其中,软件部分,即本发明实施例提供的中央处理器切换方法,该方法通过底层驱动(driver)实现,即本发明实施例提供的中央处理器切换系统相当于该驱动。硬件部分,即本发明实施例提供的处理器系统。本发明实施例不需要对操作系统进行改动,具有较好的移植性和通用性。
参见图2,本发明实施例提供的处理器系统包括:
第一中央处理器,用于运行操作系统,例如ARM Cortex A9双核或四核处理器。
第二中央处理器,用于运行操作系统,例如ARM Cortex A5单核或双核处理器。
第一中央处理器和第二中央处理器是移动芯片处理器中的CPU,负责运行操作系统,同一时间只有一个处理器在工作。
中断控制器,负责管理中断,将中断信号通知给第一中央处理器或第二中央处理器。为实现处理器间切换,本发明实施例中在中断控制器中增加了当前工作处理器标志以及切换过程标志。其中,当前工作处理器标志,用来指示当前哪个处理器处于工作状态,把对应的中断信号送到此处理器,而完全屏蔽另一个处理器。切换过程标志,用来指示当前处于第一中央处理器与第二中央处理器之间的切换流程,此时中断信号不会送给任何一个处理器,由中断控制器维持或保存中断信息,直到切换结束。
电源管理模块,负责控制各个中央处理器的供电和断电。为了实现处理器切换,电源管理模块增加了电源使能标志_0和电源使能标志_1,例如,电源使能标志_0可以用于标识给第一中央处理器上电,电源使能标志_1可以用于标识给第二中央处理器上电。
时钟和初始化管理模块,负责给各个处理器提供独立的时钟,以及负责初始化各个处理器,在调度切换过程中对两个处理器和其他硬件进行控制,例如控制自身预先设置的切换指示标志是否有效,当设置为有效时,标识当前需要将操作系统在第一中央处理器与第二中央处理器之间进行切换,以指示将要切换到的中央处理器在初始化及上电完成后挂起,否则,表示当前不需要将操作系统在第一中央处理器与第二中央处理器之间进行切换。
互联结构,包括第一中央处理器和三级缓存间的总线连接、第一中央处理器和小容量高速缓存的总线连接、第二中央处理器和三级缓存间的总线连接,以及第二中央处理器和小容量高速缓存的总线连接。
三级缓存,指可以用来存储处理器数据的缓存单元,例如低功耗双数据率随机存储器(LPDDR)、第二代低功耗双数据率随机存储器(LPDDR2)或第三代双数据率随机存储器(LPDDR3)等。
小容量高速缓存,是指相对于三级缓存来讲,容量小但是存取速度快,功耗相对较低的缓存,例如片内SRAM。该小容量高速缓存是可选,不是必须存在的,可以将需要缓存的数据全都存入到三级缓存中。
运行参数检测模块,这部分没有体现在图2所示的系统框图中,其可以是独立的模块,用于检测第一中央处理器、第二中央处理器、互联结构和/或三级缓存的运行状态参数信息。运行参数检测模块也可以是分别集成于第一中央处理器、第二中央处理器互联结构及三级缓存中的模块,其可以包括四个单元,分别为:在第一中央处理器中的性能检测单元、在第二中央处理器中的性能检测单元、在互联结构中的性能检测单元及在三级缓存中的性能检测单元。
其中,位于第一中央处理器和第二中央处理器中的性能检测单元,可以用于检测自身所处的处理器的工作频率、工作效率和空闲比例等信息。
互联结构中的性能检测单元,可以检测各个处理器的读数据量、读请求延时、写数据量、写请求延时,以及其他模块的访问数据量等信息。其中,所述其他模块的访问数据量,例如:除了处理器会访问三级缓存外,视频解码器、图像加速器等也会访问三级缓存,因此,互联结构中的性能检测单元也可以检测视频解码器、图像加速器的数据量。检测视频解码器、图像加速器对于处理器来说,构成对三级缓存访问的竞争关系,因此,也可以作为系统是否繁忙的候选参考数据。
三级缓存中的性能检测单元,可以检测对三级缓存的数据访问量。
这四部分合起来负责检测系统的运行状态参数信息,提供是否切换中央处理器的参考数据。
参见图3,本发明实施例提供的一种操作系统在不同的中央处理器之间切换的方法,包括步骤:
S11、在需要进行切换时,保存操作系统在当前运行的第一中央处理器工作的数据信息,所述数据信息包括第一中央处理器核内的寄存器信息、程序指针PC的值、页基址寄存器以及协处理器信息;
S12、第二中央处理器获取操作系统在第一中央处理器工作的数据信息;及
S13、第二中央处理器恢复所述保存的数据信息,并根据所述数据信息,执行操作系统。
不同处理器间是否需要进行切换,可以预先设定,也可以由外部指令决定。优选地,所述的中央处理器切换方法也可以通过实时检测硬件系统的运行状态信息,并根据所述行状态信息判断是否满足预设的将操作系统切换到第二中央处理器的条件。所述行状态信息包括第一中央处理器、第二中央处理器、互联结构和/或三级缓存的运行状态参数信息。
优选地,所述行状态信息为操作系统当前工作的中央处理的运行状态参数,在本实施例中即为第一中央处理的运行状态参数。
较佳地,所述操作系统当前工作的第一中央处理器的运行状态参数,包括下列一项或多项参数:
第一中央处理器的工作频率、工作效率、空闲比例、读数据量、读请求延时、写数据量、写请求延时及用于存储第一中央处理器的处理数据的三级缓存的数据访问量。
较佳地,根据所述运行状态参数判断是否满足预设的将操作系统切换到第二中央处理器的条件,包括:
将第一中央处理器的运行状态参数,与预设的该运行状态参数对应的阈值进行比较,根据比较结果,判断是否需要将操作系统从第一中央处理器切换到第二中央处理器。
较佳地,所述检测操作系统当前工作的第一中央处理器的运行状态参数,并根据所述运行状态参数判断是否满足预设的将操作系统切换到第二中央处理器的条件的操作,是周期进行的。
如此,通过上述实时检测硬件系统的运行状态参数信息的方案,可以动态地判断是否对处理器进行切换,从而使处理器的使用更加合理。
对于第一中央处理器及第二中央处理器,其功耗和数据处理性能可以不同。其中,第一中央处理器的数据处理性能高于第二中央处理器的数据处理性能,相应地第一中央处理器的功耗也高于第二中央处理器的功耗;或者,第一中央处理器的数据处理性能低于第二中央处理器的数据处理性能,并且第一中央处理器的功耗也低于第二中央处理器的功耗。
较佳地,所述操作系统在第一中央处理器工作的数据信息保存在三级缓存中,或者保存在比三级缓存容量小但存取速度快的小容量高速缓存中。所述操作系统在第一中央处理器工作的数据信息保存在三级缓存中,可以使得当第一中央处理器和第二中央处理器采用不支持一致性(cache coherency)的外部接口实现时(例如ARM Cortex A9MP和ARM Cortex A5MP是采用AXI 3外部总线接口实现的),第一中央处理器和第二中央处理器间的切换也可以实现;同时,也可以使得对于第一中央处理器和第二中央处理器的实现结构不同(noneed architecturally identical)的情形时(例如:第一中央处理器的执行流水线分为算数逻辑和乘法单元(ALU/MUL)、算数逻辑单元(ALU)、NEON处理器和读写单元(Load/store),而第二中央处理器只采用1个数据处理单元(DataProcessing Unit,DPU)实现,即第一中央处理器有四个处理单元,而第二中央处理器只有一个处理单元),第一中央处理器和第二中央处理器间的切换也可以实现。
当然,本发明实施例对于相同的中央处理器之间的切换,同样适用。
较佳地,当第一中央处理器的性能高于第二中央处理器的性能,并且第一中央处理器的功耗也高于第二中央处理器的功耗时,判断第一中央处理器的运行状态参数,是否低于预设的运行状态参数阈值,如果是,则确定需要将操作系统从第一中央处理器切换到第二中央处理器,否则,确定当前不需要将操作系统从第一中央处理器切换到第二中央处理器。
较佳地,当第一中央处理器的性能低于第二中央处理器的性能,并且第一中央处理器的功耗也低于第二中央处理器的功耗时,判断第一中央处理器的运行状态参数,是否高于预设的运行状态参数阈值,如果是,则确定需要将操作系统从第一中央处理器切换到第二中央处理器,否则,确定当前不需要将操作系统从第一中央处理器切换到第二中央处理器。
较佳地,将操作系统从第一中央处理器切换到第二中央处理器之后,该方法还包括:
检测操作系统当前工作的第二中央处理器的运行状态参数,并根据第二中央处理器的运行状态参数判断是否满足预设的将操作系统切换到第一中央处理器的条件;
当满足将操作系统切换到第一中央处理器的条件时,将操作系统从第二中央处理器切换到第一中央处理器。
较佳地,所述将操作系统从第一中央处理器切换到第二中央处理器,包括:
执行保存操作系统在第一中央处理器工作的数据信息的步骤;
执行第二中央处理器恢复所述保存的数据信息,并根据所述数据信息,执行操作系统的步骤。
较佳地,所述执行保存操作系统在第一中央处理器工作的数据信息的步骤,包括:
第一中央处理器发起切换流程;
为第二中央处理器上电,并提供时钟给第二中央处理器,控制第二中央处理器执行初始化操作,并屏蔽一切中断信号(当切换完成时,提供中断信号给工作的中央处理器);
第一中央处理器将操作系统在第一中央处理器工作的数据信息保持到预先设置的缓存中;
关闭第一中央处理器的时钟,并停止为第一中央处理器上电。
较佳地,所述执行第二中央处理器恢复所述保存的数据信息,并根据所述数据信息,执行操作系统的步骤,包括:
为第二中央处理器上电,第二中央处理器获取操作系统在第一中央处理器工作的数据信息;
为第二中央处理器提供中断信号;
第二中央处理器根据操作系统在第一中央处理器工作的数据信息,执行操作系统。
较佳地,所述协处理器包括基于NEON技术的ARM Coretex系列的多媒体协处理器,所述协处理信息包括该多媒体协处理器的D0-D31寄存器和系统寄存器(NEON system registers)的信息。
下面分别给出两个切换流程的举例说明。
第一中央处理器到第二中央处理器的切换流程包括:
步骤一:判断是否满足预设的第一切换条件,如果是,则执行步骤二;否则,等待下一次判断。
步骤一的判断操作,可以是周期进行的。
其中,第一切换条件,可以是第一中央处理器的相关参数小于、等于或大于预设的阈值,所述相关参数,例如,第一中央处理器的工作频率、工作效率或空闲比例等参数,所述阈值,可以根据实际需要进行设置。
所述第一切换条件,即将操作系统从第一中央处理器切换到第二中央处理器的条件,例如包括下列条件之一或组合:
一、第一中央处理器的工作频率小于或等于400Mhz;
二、第一中央处理器的工作效率小于或等于50%;
三、第一中央处理器的空闲比例(idle rate)大于或等于50%;
四、第一中央处理器的工作频率*第一中央处理器的核数*第一中央处理器的工作效率*(1-第一中央处理器的空闲比例)<400*第二中央处理器的核数。
步骤二:第一中央处理器将操作系统工作的数据信息归到一个核。
需要说明的是,若第一中央处理器和第二中央处理器的核数相等,则步骤二可以省略,因为若第一中央处理器和第二中央处理器的核数不等,为了便于切换,需要将第一中央处理器中多个核的工作归到一个核上,然后,在切换到第二中央处理器时,可以将第一中央处理器一个核的数据信息应用到第二中央处理器的一个核上,后续还可以从该核扩展到多个核上。
步骤三:第一中央处理器通知时钟和初始化管理模块需要开始切换流程,时钟和初始化管理模块将预设的切换指示标志设置为有效,用以标识当前需要将操作系统从第一中央处理器切换到从第二中央处理器。
步骤四:时钟和初始化管理模块,控制电源管理模块给第二中央处理器上电,并提供时钟给第二中央处理器。
步骤五:时钟和初始化管理模块控制第二中央处理器执行初始化操作。
步骤六:第二中央处理器执行初始化操作,初始化操作中会读取时钟和初始化管理模块中的切换指示标志,如果该标志无效,即没有指示当前需要将操作系统从第一中央处理器切换到从第二中央处理器,那么执行正常的初始化流程,如果该标志有效,即指示当前需要将操作系统从第一中央处理器切换到从第二中央处理器,那么第二中央处理器在初始化完成后,会通知时钟和初始化管理模块已完成初始化,并挂起,即处于等待状态。
步骤七:时钟和初始化模块获知第二中央处理器初始化完成后,通过中断控制器通知第一中央处理器第二中央处理器初始化完成,然后,第一中央处理器通知中断控制器当前处于切换流程,此时中断控制器将自身的切换过程标志设置为有效,用以标识当前处于第一中央处理器与第二中央处理器之间的切换流程,屏蔽一切中断信号。
步骤八:第一中央处理器开始执行现场保存工作,具体包括:保存核内的寄存器信息、程序指针(PC)、页基址寄存器以及协处理器信息,对于基于NOEN技术的ARM Cortex系列多媒体协处理器,需要保存该多媒体协处理器的D0-D31寄存器和4个系统寄存器信息。这些信息可以保存在三级缓存中,也可以保存在小容量高速缓存中以加速切换速度。
步骤九:第一中央处理器将一级缓存、二级缓存的必要数据,即dirty数据,写入到三级缓存中。
其中,可以按照预先设置好的地址,写入三级缓存中;也可以随机写入三级缓存中的任意地址,但此时需要将该地址通知给时钟和初始化管理模块,以使得第二中央处理器可以按照预先设置好的地址,从三级缓存中读取第一中央处理器存储的数据信息;或者从时钟和初始化管理模块获取第一中央处理器存储数据信息的地址,按照该地址,从三级缓存中读取第一中央处理器存储的数据信息。
步骤十:第一中央处理器通知时钟和初始化管理模块,已完成保存工作。
步骤十一:时钟和初始化管理模块关闭第一中央处理器的时钟,并控制电源管理模块停止为第一中央处理器上电。
步骤十二:时钟和初始化管理模块通知第二中央处理器,退出挂起,开始恢复现场,即开始从预先设置的地址,读取三级缓存的中的第一中央处理器的数据信息,即步骤九中保存的数据。具体包括:读取三级缓存中的寄存器值、程序指针(PC)值、页基址寄存器、及协处理器的寄存器信息等。
由于是不同处理器之间进行切换,对于第一中央处理器特有的现场信息,保持不变,继续存储在三级缓存内,即对于第二中央处理器无法使用的数据信息,不进行读取操作。对于第二中央处理器特有的配置和寄存器,采用默认配置进行设置。
步骤十三:第二中央处理器通知时钟和初始化模块清除切换指示标志,即表示当前不需要将操作系统从第一中央处理器切换到从第二中央处理器。
步骤十四:第二中央处理器通知中断控制器清除切换过程标志,并配置当前工作处理器标志为第二中央处理器工作中,中断控制器提供中断信号给第二中央处理器。
步骤十五:第二中央处理器从步骤十二中读取的PC值处开始执行操作系统。
步骤十六:第二中央处理器重新建立一级缓存和二级缓存。
步骤十七:切换过程完成。
相反,将操作系统从第二中央处理器切换到第一中央处理器的流程包括:
步骤一:判断是否满足预设的第二切换条件,如果是,则执行步骤二;否则,等待下一次判断。
步骤一的判断操作,可以是周期进行的。
其中,第二切换条件,可以是第二中央处理器的相关参数大于、等于或小于预设的阈值,所述相关参数,例如,第二中央处理器的工作频率、工作效率或空闲比例等参数,所述阈值,可以根据实际需要进行设置。
所述第二切换条件,即将操作系统从第二中央处理器切换到第一中央处理器的条件,例如包括下列条件之一或组合:
一、第二中央处理器的工作频率大于或等于500Mhz;
二、第二中央处理器的工作效率大于或等于80%;
三、第二中央处理器的空闲比例(idle rate)小于或等于15%。
步骤二:第二中央处理器将操作系统工作的数据信息归到一个核。
需要说明的是,若第一中央处理器和第二中央处理器的核数相等,则步骤S102可以省略,因为若第一中央处理器和第二中央处理器的核数不等,为了便于切换,需要将第一中央处理器中多个核的工作归到一个核上,然后,在切换到第二中央处理器时,可以将第一中央处理器一个核的数据信息应用到第二中央处理器的一个核上,后续还可以从该核扩展到多个核上。
步骤三:第二中央处理器通知时钟和初始化管理模块需要开始切换流程,时钟和初始化管理模块将预设的切换指示标志设置为有效,用以标识当前需要将操作系统从第二中央处理器切换到从第一中央处理器。
步骤四:时钟和初始化管理模块,控制电源管理模块给第一中央处理器上电,并提供时钟给第一中央处理器。
步骤五:时钟和初始化管理模块控制第一中央处理器执行初始化操作。
步骤六:第一中央处理器执行初始化操作,初始化操作中会读取时钟和初始化管理模块中的切换指示标志,如果该标志无效,即没有指示当前需要将操作系统从第二中央处理器切换到从第一中央处理器,那么执行正常的初始化流程,如果该标志有效,即指示当前需要将操作系统从第二中央处理器切换到从第一中央处理器,那么第一中央处理器在初始化完成后,会通知时钟和初始化管理模块已完成初始化,并挂起,即处于等待状态。
步骤七:时钟和初始化模块获知第一中央处理器初始化完成后,通过中断控制器通知第二中央处理器第一中央处理器初始化完成,然后,第二中央处理器通知中断控制器当前处于切换流程,此时中断控制器将自身的切换过程标志设置为有效,用以标识当前处于第一中央处理器与第二中央处理器之间的切换流程,屏蔽一切中断信号。
步骤八:第二中央处理器开始执行现场保存工作,具体包括:保存核内的寄存器信息、程序指针(PC)、页基址寄存器以及协处理器信息,对于基于NOEN技术的ARM Cortex系列多媒体协处理器,需要保存该多媒体协处理器的D0-D31寄存器和4个系统寄存器信息。这些信息可以保存在三级缓存中,也可以保存在小容量高速缓存中以加速切换速度。
步骤九:第二中央处理器将一级缓存、二级缓存的必要数据,即dirty数据,写入到三级缓存中。
其中,可以按照预先设置好的地址,写入三级缓存中;也可以随机写入三级缓存中的任意地址,但此时需要将该地址通知给时钟和初始化管理模块,以使得第一中央处理器可以按照预先设置好的地址,从三级缓存中读取第二中央处理器存储的数据信息;或者从时钟和初始化管理模块获取第二中央处理器存储数据信息的地址,按照该地址,从三级缓存中读取第二中央处理器存储的数据信息。
步骤十:第二中央处理器通知时钟和初始化管理模块,已完成保存工作。
步骤十一:时钟和初始化管理模块关闭第二中央处理器的时钟,并控制电源管理模块停止为第二中央处理器上电。
步骤十二:时钟和初始化管理模块通知第一中央处理器,退出挂起,开始恢复现场,即开始从预先设置的地址,读取三级缓存的中的第二中央处理器的数据信息,即步骤九中保存的数据。具体包括:读取三级缓存中的寄存器值,程序指针(PC)值,页基址寄存器,及协处理器的寄存器信息。
由于是不同处理器之间进行切换,对于第二中央处理器特有的现场信息,保持不变,继续存储在三级缓存内,即对于第一中央处理器无法使用的数据信息,不进行读取操作。对于第一中央处理器特有的配置和寄存器,在第一中央处理器切换到第二中央处理器的过程中保持在三级缓存中,因此,可以直接从三级缓存中获取。
步骤十三:第一中央处理器通知时钟和初始化模块清除切换指示标志,即表示当前不需要将操作系统从第二中央处理器切换到从第一中央处理器。
步骤十四:第一中央处理器通知中断控制器清除切换过程标志,并配置当前工作处理器标志为第一中央处理器工作中。
步骤十五:第一中央处理器从步骤十二中读取的PC值处开始执行操作系统。
步骤十六:第一中央处理器重新建立一级缓存和二级缓存。
步骤十七:切换过程完成。
参见图4,本发明实施例提供的一种中央处理器切换系统,包括:
至少一个第一中央处理器及第二中央处理器,分别用于运行操作系统;
检测判断单元21,用于检测操作系统当前工作的第一中央处理器的运行状态参数,并根据所述运行状态参数判断是否满足预设的将操作系统切换到第二中央处理器的条件;
切换单元22,用于将操作系统从第一中央处理器切换到第二中央处理器;以及,驱动当前运行操作系统的第一中央处理器保存操作系统当前工作的数据信息,驱动第二中央处理器获取操作系统在第一中央处理器工作的数据信息;及驱动第二中央处理器恢复所述保存的数据信息,并控制第二中央处理器根据所述数据信息,执行操作系统;其中,所述数据信息包括第一中央处理器核内的寄存器信息、程序指针PC的值、页基址寄存器以及协处理器信息。
较佳地,所述检测判断单元21,将第一中央处理器的运行状态参数,与预设的该运行状态参数对应的阈值进行比较,根据比较结果,判断是否需要将操作系统从第一中央处理器切换到第二中央处理器。
较佳地,第一中央处理器的性能高于第二中央处理器的性能,并且第一中央处理器的功耗也高于第二中央处理器的功耗;或者,第一中央处理器的性能低于第二中央处理器的性能,并且第一中央处理器的功耗也低于第二中央处理器的功耗。
较佳地,当第一中央处理器的性能高于第二中央处理器的性能,并且第一中央处理器的功耗也高于第二中央处理器的功耗时,所述检测判断单元21,判断第一中央处理器的运行状态参数,是否低于预设的运行状态参数阈值,如果是,则确定需要将操作系统从第一中央处理器切换到第二中央处理器,否则,确定当前不需要将操作系统从第一中央处理器切换到第二中央处理器。
较佳地,当第一中央处理器的性能低于第二中央处理器的性能,并且第一中央处理器的功耗也低于第二中央处理器的功耗时,所述检测判断单元21,判断第一中央处理器的运行状态参数,是否高于预设的运行状态参数阈值,如果是,则确定需要将操作系统从第一中央处理器切换到第二中央处理器,否则,确定当前不需要将操作系统从第一中央处理器切换到第二中央处理器。
较佳地,所述检测判断单元21,还用于在所述切换单元22将操作系统从第一中央处理器切换到第二中央处理器之后,检测操作系统当前工作的第二中央处理器的运行状态参数,并根据第二中央处理器的运行状态参数判断是否满足预设的将操作系统切换到第一中央处理器的条件;
所述切换单元22,还用于当满足将操作系统切换到第一中央处理器的条件时,将操作系统从第二中央处理器切换到第一中央处理器。
较佳地,所述切换单元22,控制所述操作系统在第一中央处理器工作的数据信息,保存在三级缓存中,或者保存在比三级缓存容量小但存取速度快的小容量高速缓存中。
较佳地,所述操作系统在第一中央处理器工作的数据信息,包括核内的寄存器信息、程序指针PC的值、页基址寄存器以及协处理器信息。
较佳地,所述操作系统在第一中央处理器工作的数据信息还包括:多媒体协处理器(NEON)的D0-D31和NEON的系统寄存器(NEON system registers)的信息。
较佳地,检测判断单元21,周期检测操作系统当前工作的第一中央处理器的运行状态参数,并根据所述运行状态参数判断是否满足预设的将操作系统切换到第二中央处理器的条件的操作。
较佳地,所述操作系统当前工作的第一中央处理器的运行状态参数,包括下列一项或多项参数:
第一中央处理器的工作频率、工作效率、空闲比例、读数据量、读请求延时、写数据量、写请求延时、用于存储第一中央处理器的处理数据的三级缓存的数据访问量。
较佳地,本发明实施例提供处理器系统,包括上述中央处理器切换系统以及第一中央处理器、第二中央处理器、中断控制器、电源管理模块、时钟和初始化管理模块、三级缓存和互联结构。其中,中央处理器切换系统,相当于图1所示的驱动,由第一中央处理器、第二中央处理器、中断控制器、电源管理模块、时钟和初始化管理模块、三级缓存和互联结构构成的整体,相当于图1所示的硬件模块。
本发明实施例个的一种处理器系统,包括所述的中央处理器切换系统,以及第一中央处理器和第二中央处理器;
中央处理器切换系统当根据操作系统当前工作的第一中央处理器的运行状态参数,确定满足预设的将操作系统切换到第二中央处理器的条件时,控制操作系统从第一中央处理器切换到第二中央处理器。
较佳地,该系统还包括:中断控制器、电源管理模块、时钟和初始化管理模块和缓存;
中断控制器,负责管理中断,将中断信号通知给第一中央处理器或第二中央处理器,该中断控制器中设置有当前工作处理器标志以及切换过程标志,其中,当前工作处理器标志,用来指示当前处于工作状态处理器,把中断信号送到此处理器,而完全屏蔽另一个处理器;所述切换过程标志,用来指示当前处于第一中央处理器与第二中央处理器之间的切换流程,此时中断信号不发送给任何一个处理器;
电源管理模块,负责控制各个中央处理器的供电和断电,该电源管理模块中设置有电源使能标志,用于标识当前需要供电的中央处理器;
时钟和初始化管理模块,负责给任一处理器提供独立的时钟,以及负责初始化任一处理器,该模块中设置有控制切换指示标志,当该标志有效时,表示当前需要将操作系统在第一中央处理器与第二中央处理器之间进行切换,以指示将要切换到的中央处理器在初始化及上电完成后出于等待状态,否则,表示当前不需要将操作系统在第一中央处理器与第二中央处理器之间进行切换。
较佳地:
第一中央处理器通知时钟和初始化管理模块需要开始切换流程,时钟和初始化管理模块将预设的切换指示标志设置为有效,用以标识当前需要将操作系统从第一中央处理器切换到从第二中央处理器;
时钟和初始化管理模块,控制电源管理模块给第二中央处理器上电,并提供时钟给第二中央处理器,控制第二中央处理器执行初始化操作;
第二中央处理器执行初始化操作,并读取时钟和初始化管理模块中的切换指示标志,根据该标志确定当前需要将操作系统从第一中央处理器切换到从第二中央处理器,在初始化完成后,通知时钟和初始化管理模块已完成初始化,然后该第二中央处理器处于等待状态;
时钟和初始化模块,通过中断控制器通知第一中央处理器第二中央处理器初始化完成,然后,第一中央处理器通知中断控制器当前处于切换流程,中断控制器将自身的切换过程标志设置为有效,用以标识当前处于第一中央处理器与第二中央处理器之间的切换流程,屏蔽一切中断信号;
第一中央处理器将操作系统在第一中央处理器工作的数据信息保持到预先设置的缓存中;
第一中央处理器通知时钟和初始化管理模块已完成保存工作,时钟和初始化管理模块关闭第一中央处理器的时钟,并控制电源管理模块停止为第一中央处理器上电。
较佳地:
时钟和初始化管理模块通知第二中央处理器退出等待状态;
第二中央处理器获取操作系统在第一中央处理器工作的数据信息;
第二中央处理器通知时钟和初始化模块清除切换指示标志,以表示当前不需要将操作系统从第一中央处理器切换到从第二中央处理器;
第二中央处理器通知中断控制器清除切换过程标志,中断控制器配置当前工作处理器标志指示为第二中央处理器工作中;
第二中央处理器根据操作系统在第一中央处理器工作的数据信息,执行操作系统。
较佳地:所述缓存包括:三级缓存,和/或比三级缓存容量小但存取速度快的小容量高速缓存。
综上所述,本发明实施例,在需要进行切换时,保存操作系统在当前运行的第一中央处理器工作的数据信息,所述数据信息包括第一中央处理器核内的寄存器信息、程序指针PC的值、页基址寄存器以及协处理器信息;第二中央处理器获取操作系统在第一中央处理器工作的数据信息;及第二中央处理器恢复所述保存的数据信息,并根据所述数据信息,执行操作系统,从而实现了操作系统在不同中央处理器之间的切换,从而更加合理地利用中央处理器,避免功耗过大,浪费能源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。