动态核心切换的制作方法

文档序号:6478158阅读:301来源:国知局
专利名称:动态核心切换的制作方法
技术领域
本公开涉及移动计算设备,尤其是涉及对移动计算设备的多核心处理系统的核心 (core)的动态切换。
背景技术
这里提供的背景描述是为了一般呈现本公开的背景的目的。目前指出的发明人的 工作(在其在此背景技术部分中所描述的程度上)以及在提交时不能以其它方式看作现有 技术的该描述的方面,既不明示也不隐含地承认为本公开的现有技术。 诸如蜂窝电话、MP3播放器、全球定位系统(GPS)设备等的移动计算设备一般使用 线路电源和电池电源二者供电。移动计算设备一般包括在操作期间消耗功率的处理器、存 储器和显示器。处理器通常执行处理较不密集的简单应用程序和处理较密集的复杂应用程 序二者。因此,处理器的诸如处理器速度之类的能力一般被选择成匹配将被执行的处理最 密集的应用程序的性能要求。 移动计算设备的一个明显的限制涉及在不进行再充电的情况下可使用电池来操 作设备的时间量。使用满足处理密集的应用程序的性能要求的高速处理器通常增加功耗, 这对应于相对短的电池寿命。 现在参考图1A和1B,一些桌上型和膝上型计算机使用多个处理器集成电路(IC) 或具有多个核心的单个处理器IC。这些系统可以具有不同的类型。如这里使用的,术语"处 理器"用于指具有一个或多个处理核心的IC。多核心处理器指具有两个或更多个处理核心 的IC、片上系统(system-on-ship, SOC)或系统级封装(system-in-package, SIP)。
在图1A中,示出了包括主处理器2和一个或多个次级处理器3的不对称多处理器 (MP)系统1。不对称MP系统1也可被实现为具有主核心和次级核心的单个IC或SOC。主 处理器2具有与次级处理器3不同的指令集架构(ISA)。操作系统(OS)可在主处理器2上 运行。应用程序可在次级处理器3上运行。次级处理器3不运行0S的线程,并且对0S调
7度器可以是不可见的。实时0S(RT0S)的0S驱动器接口可在次级处理器3上运行。关键功 能可被下载到次级处理器3,以用于处理器2的功率节约和占空比的减小。仅仅作为例子, 不对称MP系统1可用于专用处理(例如,视频、3D图形等)。因为当应用程序被执行时,除 了主处理器2以外,次级处理器3也可运行,所以不对称MP系统1可能消耗大量的功率。
在图1B中,对称MP系统5可包括N个相同的处理器,其中N是大于1的整数。对 称MP系统5也可被实现为具有N个相同的核心的单个IC或SOC。 N可与对称MP系统5的 处理负荷成比例。N个处理器使用相同的ISA。 N个处理器对OS调度器可以是可见的。N 个处理器可透明地访问包括存储器和输入/输出(I/O)在内的系统资源。根据处理负荷,N 个处理器中的一个或多个可用于执行应用程序。对称MP系统5的高成本和高功耗往往使 该架构不适合于较低成本的移动设备。

发明内容
—种系统包括第一不对称核心、第二不对称核心和核心切换模块。当系统在第一
模式中操作时第一不对称核心执行应用程序,而当系统在第二模式中操作时第一不对称核
心不活动(inactive)。当系统在第二模式中操作时第二不对称核心执行应用程序。核心切 换模块在第一模式和第二模式之间切换系统的操作。核心切换模块在接收到第一控制信号 之后选择性地停止第一不对称核心对应用程序的处理。核心切换模块将第一不对称核心的 第一状态转移到第二不对称核心。第二不对称核心在第二模式中继续执行应用程序。
在另一特征中,第一控制信号指示出中断被禁止。 在另一特征中,当第二不对称核心在第二模式期间继续执行应用程序时,第二不 对称核心在没有指令翻译(translation)的情况下执行指令。 在其它特征中,系统还包括向应用程序提供服务的操作系统(0S)。核心切换模块
对OS透明地在第一不对称核心和第二不对称核心之间切换应用程序的执行。 在其它特征中,第一不对称核心的第一最大速度大于第二不对称核心的第二最大
速度。第一不对称核心以大于预定频率的频率操作。第二不对称核心以小于预定频率的频
率操作。第一不对称核心的第一最大操作功率级别大于第二不对称核心的第二最大操作功
率级别。 在其它特征中,第一不对称核心使用第一指令集架构(ISA)。第二不对称核心使用 第二ISA。第一ISA与第二ISA兼容。第一 ISA的第一指令集合是第二 ISA的第二指令集 合的超集(superset)。第一集合比第二集合包括更多的指令。 在其它特征中,OS包括内核(kernel)。核心切换模块在内核的级别之上执行。
在其它特征中,系统还包括监管器(hypervisor)模块。核心切换模块与监管器模 块集成。 在其它特征中,当核心切换模块选择性地停止第一不对称核心对应用程序的处理 时,核心切换模块保存第一状态。核心切换模块使第二不对称核心上电(power up),并使用 第一状态来初始化第二不对称核心。在第二不对称核心继续执行应用程序之后,中断被激 活(enable)。当第二不对称核心上电时,核心切换模块关闭第一不对称核心。在第一不对 称核心被关闭之后,不向第一不对称核心提供功率,或者向第一不对称核心提供待机功率。
在其它特征中,系统还包括与第一不对称核心进行通信的第二级(L2)缓存(cache)。在第一不对称核心被关闭之后,不向L2缓存提供功率,或者向L2缓存提供待机 功率。 在其它特征中,当第二不对称核心未能上电时,核心切换模块使用第一状态来初 始化第一不对称核心。第一不对称核心在第一模式中继续执行应用程序,且中断被激活。
在其它特征中,核心切换模块在第二模式和第一模式之间切换系统的操作。核心 切换模块在接收到第一控制信号之后选择性地停止第二不对称核心对应用程序的处理。核 心切换模块将第二不对称核心的第二状态转移到第一不对称核心。第一不对称核心在第一 模式中继续执行应用程序。第一控制信号指示出中断被禁止(disable)。
在另一特征中,当第一不对称核心在第一模式期间继续执行应用程序时,指令在 没有指令翻译的情况下被执行。 在其它特征中,系统还包括向应用程序提供服务的操作系统(0S)。核心切换模块
对OS透明地在第二不对称核心和第一不对称核心之间切换应用程序的执行。 在其它特征中,当核心切换模块选择性地停止第二不对称核心对应用程序的处理
时,核心切换模块保存第二状态。核心切换模块使第一不对称核心上电,并使用第二状态来
初始化第一不对称核心。在第一不对称核心继续执行应用程序之后,中断被激活。 在其它特征中,系统还包括与第一不对称核心进行通信的第二级(L2)缓存。在第
一不对称核心上电之后,功率被提供到L2缓存。 在其它特征中,当第一不对称核心上电时,核心切换模块关闭第二不对称核心。在 第二不对称核心被关闭之后,不向第二不对称核心提供功率,或者向第二不对称核心提供 待机功率。 在其它特征中,当第一不对称核心未能上电时,核心切换模块使用第二状态来初 始化第二不对称核心。第二不对称核心在第二模式中继续执行应用程序,且中断被激活。 在另一特征中,系统还包括根据应用程序的性能、资源利用率和核心利用率中的 至少一个产生第二控制信号的核心简档(core profile)模块。 在其它特征中,系统还包括核心改变序列(CCS)模±央,该模块根据第二控制信号 发起CCS。核心切换模块根据CCS在第一和第二不对称核心中的一个与第一和第二不对称 核心中的另一个之间切换应用程序的执行。 在其它特征中,当应用程序对第二不对称核心的核心利用率大于或等于第一预定 阈值时,CCS模块发起CCS。当应用程序对第二不对称核心的核心利用率在第一预定时间段 内大于或等于第二预定阈值时,CCS模块发起CCS。当第二不对称核心的预期核心利用率大
于或等于第三预定阈值时,ccs模块发起ccs。预期核心利用率是根据应用程序的类型和应
用程序的执行历史记录中的至少一个来确定的。当应用程序对第一不对称核心的核心利用
率小于或等于第四预定阈值时,ccs模块发起ccs。当应用程序对第一不对称核心的核心利 用率在第二预定时间段内小于或等于第五预定阈值时,ccs模块发起ccs。 在另一特征中,CCS模块根据应用程序的类型、应用程序的数量以及第一和第二不
对称核心之一所执行的指令的类型中的至少一个来发起ccs。 在另一特征中,核心简档模块根据在第一和第二不对称核心中的一个与第一和第
二不对称核心中的另一个之间切换应用程序的执行的次数来产生第二控制信号。 在其它特征中,系统还包括功率控制模块,该模块控制系统的功率消耗并根据第二控制信号和功率消耗产生第三控制信号。系统还包括根据第三控制信号发起CCS的核心 改变序列(CCS)模块。核心切换模块根据CCS在第一和第二不对称核心中的一个与第一和 第二不对称核心中的另一个之间切换应用程序的执行。 在另一特征中,系统还包括频率改变序列(FCS)模块,该模块根据第二控制信号
发起FCS,并根据FCS选择第一和第二不对称核心中的至少一个的操作频率。 在另一特征中,系统还包括电压改变序列(VCS)模块,该模块根据第二控制信号
发起VCS,并根据VCS选择第一和第二不对称核心中的至少一个的电源电压。 在另一特征中,系统还包括功率管理模块,该模块当系统在第一模式和第二模式
之间切换操作时禁止中断,并当系统在第二模式和第一模式之间切换操作时禁止中断。 在其它特征中,系统还包括多个第一不对称核心。当系统在第一模式中操作时,核
心切换模块根据CCS选择性地启动(activate)和停用(deactivate)这多个第一不对称核
心中的多于一个的第一不对称核心。 在另一特征中,系统还包括胶合(glue)逻辑模块,该模块选择性地与核心切换模
块进行通信,接收中断,从应用程序接收第一信号,并将中断和第一信号路由到核心切换模
块所启动的第一和第二不对称核心中的一个。 在另一特征中,一种片上系统(SOC)包括所述系统。 在另一特征中,一种系统级封装(SIP)包括所述系统。 在又一些其它特征中,一种方法包括当在第一模式中操作时使用第一不对称核心 执行应用程序。当在第二模式中操作时第一不对称核心不活动。该方法还包括使用核心切 换模块在第一模式和第二模式之间切换操作。该方法还包括在接收到第一控制信号之后使 用核心切换模块选择性地停止第一不对称核心对应用程序的处理。该方法还包括使用核心 切换模块将第一不对称核心的第一状态转移到第二不对称核心,以及使用第二不对称核心 在第二模式中继续执行应用程序。 在另一特征中,该方法还包括禁止中断以及通过第一控制信号指示出中断被禁 止。 在另一特征中,该方法还包括当第二不对称核心在第二模式期间继续执行应用程 序时,在没有指令翻译的情况下执行指令。 在另一特征中,该方法还包括通过操作系统(OS)向应用程序提供服务,以及使用 核心切换模块对OS透明地在第一不对称核心和第二不对称核心之间切换应用程序的执 行。 在其它特征中,该方法还包括选择性地以第一最大速度操作第一不对称核心以及 选择性地以第二最大速度操作第二不对称核心。第一最大速度大于第二最大速度。该方法 还包括选择性地以第一最大操作功率级别操作第一不对称核心,以及选择性地以第二最大 操作功率级别操作第二不对称核心。第一最大操作功率级别大于第二最大操作功率级别。
该方法还包括选择性地以大于预定频率的频率操作第一不对称核心,以及选择性地以小于 预定频率的频率操作第二不对称核心。 在其它特征中,该方法还包括使用第一指令集架构(ISA)来操作第一不对称核 心,以及使用第二ISA来操作第二不对称核心。第一ISA与第二ISA兼容。该方法还包括 使用第一 ISA的第一指令集合操作第一不对称核心,以及使用第二 ISA的第二指令集合操
10作第二不对称核心。第一集合是第二集合的超集。第一集合比第二集合包括更多的指令。
在另一特征中,该方法还包括提供OS的内核以及在内核的级别之上执行核心切 换模块。 在另一特征中,该方法还包括提供监管器模块,以及使核心切换模块与监管器模 块集成。 在其它特征中,该方法还包括当核心切换模块选择性地停止第一不对称核心对应 用程序的处理时保存第一状态。该方法还包括使第二不对称核心上电,并使用第一状态来 初始化第二不对称核心。该方法还包括在第二不对称核心继续执行应用程序之后激活中 断。该方法还包括当第二不对称核心上电时关闭第一不对称核心,以及在第一不对称核心 被关闭之后不向第一不对称核心提供功率或者向第一不对称核心提供待机功率。
在其它特征中,该方法还包括提供第二级(L2)缓存。当第一不对称核心活动 (active)时,第一不对称核心与L2缓存进行通信。该方法还包括在第一不对称核心被关闭 之后不向L2缓存提供功率或者向L2缓存提供待机功率。 在另一特征中,该方法还包括当第二不对称核心未能上电时使用第一状态来初始
化第一不对称核心,使用第一不对称核心在第一模式中继续执行应用程序,以及激活中断。 在另一特征中,该方法还包括使用核心切换模块在第二模式和第一模式之间切换
操作,在接收到指示出中断被禁止的第一控制信号之后使用核心切换模块选择性地停止第
二不对称核心对应用程序的处理,使用核心切换模块将第二不对称核心的第二状态转移到
第一不对称核心,以及使用第一不对称核心在第一模式中继续执行应用程序。 在另一特征中,该方法还包括当第一不对称核心在第一模式期间继续执行应用程
序时,在没有指令翻译的情况下执行指令。 在另一特征中,该方法还包括通过操作系统(0S)向应用程序提供服务,以及使用 核心切换模块对OS透明地在第二不对称核心和第一不对称核心之间切换应用程序的执 行。 在其它特征中,该方法还包括当核心切换模块选择性地停止第二不对称核心对应 用程序的处理时保存第二状态。该方法还包括使第一不对称核心上电,并使用第二状态来 初始化第一不对称核心。该方法还包括在第一不对称核心继续执行应用程序之后激活中 断。 在其它特征中,该方法还包括提供第二级(L2)缓存。当第一不对称核心活动时, 第一不对称核心与L2缓存进行通信。该方法还包括在第一不对称核心上电之后将功率提 供到L2缓存。 在其它特征中,该方法还包括当第一不对称核心上电时关闭第二不对称核心,以 及在第二不对称核心关闭之后不向第二不对称核心提供功率或者向第二不对称核心提供 待机功率。 在另一特征中,该方法还包括当第一不对称核心未能上电时使用第二状态来初始 化第二不对称核心,使用第二不对称核心在第二模式中继续执行应用程序,以及激活中断。
在另一特征中,该方法还包括根据应用程序的性能、资源利用率和核心利用率中 的至少一个而产生第二控制信号。 在另一特征中,该方法还包括根据第二控制信号发起核心改变序列(CCS),以及使
11用核心切换模块、根据CCS、在第一和第二不对称核心中的一个与第一和第二不对称核心中 的另一个之间切换应用程序的执行。 在其它特征中,该方法还包括当应用程序对第二不对称核心的核心利用率大于或 等于第一预定阈值时发起CCS。该方法还包括当应用程序对第二不对称核心的核心利用率 在第一预定时间段内大于或等于第二预定阈值时发起CCS。该方法还包括当应用程序对第 一不对称核心的核心利用率小于或等于第三预定阈值时发起CCS。该方法还包括当应用程 序对第一不对称核心的核心利用率在第一预定时间段内小于或等于第四预定阈值时发起
ccs。 在另一特征中,该方法还包括根据应用程序的类型和应用程序的执行历史记录中 的至少一个来确定预期核心利用率,并且当第二不对称核心的预期核心利用率大于或等于 预定阈值时发起CCS。 在另一特征中,该方法还包括根据第一和第二不对称核心之一所执行的应用程序 的数量、第一和第二不对称核心之一所执行的应用程序的类型以及第一和第二不对称核心 之一所执行的指令的类型中的至少一个来发起ccs。 在另一特征中,该方法还包括根据在第一和第二不对称核心中的一个与第一和第
二不对称核心中的另一个之间切换应用程序的执行的次数来产生第二控制信号。 在另一特征中,该方法还包括控制功率消耗,根据第二控制信号和功率消耗产生
第三控制信号,根据第三控制信号发起核心改变序列(CCS),使用核心切换模块在第一和第
二不对称核心中的一个与第一和第二不对称核心中的另一个之间切换应用程序的执行。 在另一特征中,该方法还包括根据第二控制信号发起频率改变序列(FCS),以及根
据FCS选择第一和第二不对称核心中的至少一个的操作频率。 在另一特征中,该方法还包括根据第二控制信号发起电压改变序列(VCS),以及根 据VCS选择第一和第二不对称核心中的至少一个的电源电压。 在另一特征中,该方法还包括提供多个第一不对称核心,以及当在第一模式中操 作时,使用核心切换模块根据CCS选择性地启动和停用多个第一不对称核心中的多于一个 第一不对称核心。 在另一特征中,该方法还包括提供胶合逻辑模块,使用胶合逻辑模块选择性地与 核心切换模块进行通信,通过胶合逻辑模块接收中断,通过胶合逻辑模块从应用程序接收 第一信号,以及使用胶合逻辑模块将中断和第一信号路由到核心切换模块所启动的第一和 第二不对称核心中的一个。 在另一特征中,该方法还包括在片上系统(S0C)和系统级封装(SIP)之一中提供 第一和第二不对称核心以及核心交换模块。 在又一些其他特征中,一种系统包括当系统在第一模式中操作时执行应用程序的 第一核心装置。当系统在第二模式中操作时第一不对称核心装置不活动。系统还包括当系 统在第二模式中操作时执行应用程序的第二不对称核心装置。系统还包括用于在第一模式 和第二模式之间切换操作的核心切换装置。核心切换装置在接收到第一控制信号之后选择 性地停止第一不对称核心装置对应用程序的处理。核心切换装置将第一不对称核心装置的 第一状态转移到第二不对称核心装置。第二不对称核心装置在第二模式中继续执行应用程 序。
在另一特征中,第一控制信号指示出中断被禁止。 在另一特征中,当第二不对称核心装置在第二模式期间继续执行应用程序时,第 二不对称核心装置在没有指令翻译的情况下执行指令。 在其它特征中,系统还包括向应用程序提供服务的操作系统(0S)。核心切换模块 对OS透明地在第一不对称核心装置和第二不对称核心装置之间切换应用程序的执行。
在其它特征中,第一不对称核心装置的第一最大速度大于第二不对称核心装置的 第二最大速度。第一不对称核心装置以大于预定频率的频率操作。第二不对称核心装置以 小于预定频率的频率操作。第一不对称核心装置的第一最大操作功率级别大于第二不对称 核心装置的第二最大操作功率级别。 在其它特征中,第一不对称核心装置使用第一指令集架构(ISA)。第二不对称核心
装置使用第二ISA。第一ISA与第二ISA兼容。第一 ISA的第一指令集合是第二 ISA的第
二指令集合的超集。第一集合比第二集合包括更多的指令。 在其它特征中,OS包括内核。核心切换装置在内核的级别之上执行。 在其它特征中,系统还包括用于切换核心的监管器装置。核心切换装置与监管器
装置集成。 在其它特征中,当核心切换装置选择性地停止应用第一不对称核心装置对应用程 序的处理时,核心切换装置保存第一状态。核心切换装置使第二不对称核心装置上电并使 用第一状态来初始化第二不对称核心装置。在第二不对称核心装置继续执行应用程序之 后,中断被激活。当第二不对称核心装置上电时,核心切换装置关闭第一不对称核心装置。 在第一不对称核心装置被关闭之后,不向第一不对称核心装置提供功率,或者向第一不对 称核心装置提供待机功率。 在其它特征中,系统还包括用于缓存第一不对称核心装置的指令和数据的第二级 (L2)缓存装置。在第一不对称核心装置被关闭之后,不向L2缓存装置提供功率,或者向L2 缓存装置提供待机功率。 在其它特征中,当第二不对称核心装置未能上电时,核心切换装置使用第一状态 来初始化第一不对称核心装置。第一不对称核心装置在第一模式中继续执行应用程序,且 中断被激活。 在其它特征中,核心切换装置在第二模式和第一模式之间切换系统的操作。核心 切换装置在接收到指示出中断被禁止的第一控制信号之后,选择性地停止第二不对称核心 装置对应用程序的处理。核心切换装置将第二不对称核心装置的第二状态转移到第一不对 称核心装置。第一不对称核心装置在第一模式中继续执行应用程序。 在另一特征中,当第一不对称核心装置在第一模式期间继续执行应用程序时,指 令在没有指令翻译的情况下被执行。 在其它特征中,系统还包括向应用程序提供服务的操作系统(0S)。核心切换装置 对OS透明地在第二不对称核心装置和第一不对称核心装置之间切换应用程序的执行。
在其它特征中,当核心切换装置选择性地停止第二不对称核心装置对应用程序的 处理时,核心切换装置保存第二状态。核心切换装置使第一不对称核心装置上电并使用第 二状态来初始化第一不对称核心装置。在第一不对称核心装置继续执行应用程序之后,中 断被激活。
在其它特征中,系统还包括用于缓存第一不对称核心装置的指令和数据的第二级
(L2)缓存装置。在第一不对称核心装置上电之后,功率被提供到L2缓存装置。 在其它特征中,当第一不对称核心装置上电时,核心切换装置关闭第二不对称核
心装置。在第二不对称核心装置被关闭之后,不向第二不对称核心装置提供功率,或者向第
二不对称核心装置提供待机功率。 在其它特征中,当第一不对称核心装置未能上电时,核心切换装置使用第二状态 来初始化第二不对称核心装置。第二不对称核心装置在第二模式中继续执行应用程序,且 中断被激活。 在另一特征中,系统还包括用于根据应用程序的性能、资源利用率和核心利用率 中的至少一个产生第二控制信号的核心简档装置。 在其它特征中,系统还包括核心改变序列(CCS)装置,该装置用于根据第二控制 信号发起CCS。核心切换装置根据CCS,在第一和第二不对称核心装置中的一个与第一和第 二不对称核心装置中的另一个之间切换应用程序的执行。 在其它特征中,当应用程序对第二不对称核心装置的核心利用率大于或等于第一 预定阈值时,CCS装置发起CCS。当应用程序对第二不对称核心装置的核心利用率在第一预 定时间段内大于或等于第二预定阈值时,CCS装置发起CCS。当第二不对称核心装置的预期
核心利用率大于或等于第三预定阈值时,ccs装置发起ccs。预期核心利用率是根据应用程
序的类型和应用程序的执行历史记录中的至少一个来确定的。当应用程序对第一不对称核
心装置的核心利用率小于或等于第四预定阈值时,ccs装置发起ccs。当应用程序对第一不 对称核心装置的核心利用率在第二预定时间段内小于或等于第五预定阈值时,ccs装置发 起ccs。 在另一特征中,CCS装置根据应用程序的类型、应用程序的数量以及第一和第二不
对称核心装置之一所执行的指令的类型中的至少一个来发起ccs。 在另一特征中,核心简档装置根据在第一和第二不对称核心装置中的一个与第一 和第二不对称核心装置中的另一个之间切换应用程序的执行的次数来产生第二控制信号。
在其它特征中,系统还包括功率控制装置,该装置用于控制系统的功率消耗并根 据第二控制信号和功率消耗产生第三控制信号。系统还包括根据第三控制信号发起CCS的 核心改变序列(CCS)装置。核心切换装置根据CCS在第一和第二不对称核心装置中的一个 与第一和第二不对称核心装置中的另一个之间切换应用程序的执行。 在另一特征中,系统还包括频率改变序列(FCS)装置,该装置用于根据第二控制 信号发起FCS并根据FCS选择第一和第二不对称核心装置中的至少一个的操作频率。
在另一特征中,系统还包括电压改变序列(VCS)装置,该装置用于根据第二控制 信号发起VCS并根据VCS选择第一和第二不对称核心装置中的至少一个的电源电压。
在另一特征中,系统还包括功率管理装置,该装置用于当系统在第一模式和第二 模式之间切换操作时禁止中断并当系统在第二模式和第一模式之间切换操作时禁止中断。
在其它特征中,系统还包括多个第一不对称核心装置。当系统在第一模式中操作 时,核心切换模块根据CCS选择性地启动和停用这多个第一不对称核心装置中多于一个第 一不对称核心装置。 在其它特征中,系统还包括胶合逻辑装置,该装置选择性地与核心切换模块进行
14通信。胶合逻辑装置接收中断,从应用程序接收第一信号,并将中断和第一信号路由到核心切换模块所启动的第一和第二不对称核心装置中的一个。
在另一特征中,一种片上系统(S0C)包括所述系统。
在另一特征中,一种系统级封装(SIP)包括所述系统。 在又一些其它特征中,一种存储在计算机可读介质上并由处理器执行的计算机程序包括当在第一模式中操作时使用第一不对称核心执行应用程序。当在第二模式中操作时,第一不对称核心不活动。该计算机程序还包括使用核心切换模块在第一模式和第二模式之间切换操作。该计算机程序还包括在接收到第一控制信号之后使用核心切换模块选择性地停止第一不对称核心对应用程序的处理。该计算机程序还包括使用核心切换模块将第一不对称核心的第一状态转移到第二不对称核心,以及使用第二不对称核心在第二模式中继续执行应用程序。 在另 一特征中,该计算机程序还包括禁止中断以及通过第一控制信号指示出中断被禁止。 在另一特征中,该计算机程序还包括当第二不对称核心在第二模式期间继续执行应用程序时在没有指令翻译的情况下执行指令。 在另一特征中,该计算机程序还包括通过操作系统(OS)向应用程序提供服务,以及使用核心切换模块对OS透明地在的第一不对称核心和第二不对称核心之间切换应用程序的执行。 在其它特征中,该计算机程序还包括以第一最大速度选择性地操作第一不对称核心以及以第二最大速度选择性地操作第二不对称核心。第一最大速度大于第二最大速度。该计算机程序还包括以第一最大操作功率级别选择性地操作第一不对称核心,以及以第二最大操作功率级别选择性地操作第二不对称核心。第一最大操作功率级别大于第二最大操作功率级别。该计算机程序还包括以大于预定频率的频率选择性地操作第一不对称核心,以及以小于预定频率的频率选择性地操作第二不对称核心。 在其它特征中,该计算机程序还包括使用第一指令集架构(ISA)操作第一不对称核心,以及使用第二ISA操作第二不对称核心。第一ISA与第二ISA兼容。该计算机程序还包括使用第一 ISA的第一指令集合操作第一不对称核心,以及使用第二 ISA的第二指令集合操作第二不对称核心。第一集合是第二集合的超集。第一集合比第二集合包括更多的指令。 在另一特征中,该计算机程序还包括提供OS的内核以及在内核的级别之上执行核心切换模块。 在另一特征中,该计算机程序还包括提供监管器模块,以及使核心切换模块与监管器模块集成。 在其它特征中,该计算机程序还包括当核心切换模块选择性地停止第一不对称核心对应用程序的处理时保存第一状态。该计算机程序还包括使第二不对称核心上电并使用第一状态来初始化第二不对称核心。该计算机程序还包括在第二不对称核心继续执行应用程序之后激活中断。该计算机程序还包括当第二不对称核心上电时关闭第一不对称核心,以及在第一不对称核心被关闭之后不向第一不对称核心提供功率或者向第一不对称核心提供待机功率。
在其它特征中,该计算机程序还包括提供第二级(L2)缓存。当第一不对称核心活动时,第一不对称核心与L2缓存进行通信。该计算机程序还包括在第一不对称核心被关闭之后不向L2缓存提供功率或者向L2缓存提供待机功率。 在另一特征中,该计算机程序还包括当第二不对称核心未能上电时使用第一状态来初始化第一不对称核心,使用第一不对称核心在第一模式中继续执行应用程序,以及激活中断。 在另一特征中,该计算机程序还包括使用核心切换模块在第二模式和第一模式之间切换操作,在接收到指示出中断被禁止的第一控制信号之后使用核心切换模块选择性地停止第二不对称核心对应用程序的处理,使用核心切换模块将第二不对称核心的第二状态转移到第一不对称核心,以及使用第一不对称核心在第一模式中继续执行应用程序。
在另一特征中,该计算机程序还包括当第一不对称核心在第一模式期间继续执行应用程序时,在没有指令翻译的情况下执行指令。 在另一特征中,该计算机程序还包括通过操作系统(0S)向应用程序提供服务,以及使用核心切换模块对OS透明地在第二不对称核心和第一不对称核心之间切换应用程序的执行。 在其它特征中,该计算机程序还包括当核心切换模块选择性地停止第二不对称核心对应用程序的处理时保存第二状态。该计算机程序还包括使第一不对称核心上电并使用第二状态来初始化第一不对称核心。该计算机程序还包括在第一不对称核心继续执行应用程序之后激活中断。 在其它特征中,该计算机程序还包括提供第二级(L2)缓存。当第一不对称核心活动时,第一不对称核心与L2缓存进行通信。该计算机程序还包括在第一不对称核心上电之后向L2缓存提供功率。 在其它特征中,该计算机程序还包括当第一不对称核心上电时关闭第二不对称核心,以及在第二不对称核心关闭之后不向第二不对称核心提供功率或者向第二不对称核心提供待机功率。 在另一特征中,该计算机程序还包括当第一不对称核心未能上电时使用第二状态来初始化第二不对称核心,使用第二不对称核心在第二模式中继续执行应用程序,以及激活中断。 在另一特征中,该计算机程序还包括根据应用程序的性能、资源利用率和核心利用率中的至少一个产生第二控制信号。 在另一特征中,该计算机程序还包括根据第二控制信号发起核心改变序列(CCS),以及使用核心切换模块、根据CCS、在第一和第二不对称核心中的一个与第一和第二不对称核心中的另一个之间切换应用程序的执行。 在其它特征中,该计算机程序还包括当应用程序对第二不对称核心的核心利用率大于或等于第一预定阈值时发起CCS。该计算机程序还包括当应用程序对第二不对称核心的核心利用率在第一预定时间段内大于或等于第二预定阈值时发起CCS。该计算机程序还包括当应用程序对第一不对称核心的核心利用率小于或等于第三预定阈值时发起CCS。该计算机程序还包括当应用程序对第一不对称核心的核心利用率在第一预定时间段内小于或等于第四预定阈值时发起CCS。
在另一特征中,该计算机程序还包括根据应用程序的类型和应用程序的执行的历史记录中的至少一个来确定预期核心利用率,并且当第二不对称核心的预期核心利用率大于或等于预定阈值时发起CCS。 在另一特征中,该计算机程序还包括根据第一和第二不对称核心之一所执行的应用程序的数量、第一和第二不对称核心之一所执行的应用程序的类型以及第一和第二不对称核心之一所执行的指令的类型中的至少一个来发起CCS。 在另一特征中,该计算机程序还包括根据在第一和第二不对称核心中的一个与第一和第二不对称核心中的另一个之间切换应用程序的执行的次数来产生第二控制信号。
在另一特征中,该计算机程序还包括控制功率消耗,根据第二控制信号和功率消耗产生第三控制信号,根据第三控制信号发起核心改变序列(CCS),使用核心切换模块、根据CCS、在第一和第二不对称核心中的一个与第一和第二不对称核心中的另一个之间切换应用程序的执行。 在另一特征中,该计算机程序还包括根据第二控制信号发起频率改变序列(FCS),以及根据FCS选择第一和第二不对称核心中的至少一个的操作频率。 在另一特征中,该计算机程序还包括根据第二控制信号发起电压改变序列(VCS),以及根据VCS选择第一和第二不对称核心中的至少一个的电源电压。 在另一特征中,该计算机程序还包括提供多个第一不对称核心,以及当在第一模式中操作时,使用核心切换模块、根据CCS、选择性地启动和停用这多个第一不对称核心中的多于一个的第一不对称核心。 在另一特征中,该计算机程序还包括提供胶合逻辑模块,使用胶合逻辑模块选择性地与核心切换模块进行通信,通过胶合逻辑模块接收中断,通过胶合逻辑模块从应用程序接收第一信号,以及使用胶合逻辑模块将中断和第一信号路由到核心切换模块所启动的第一和第二不对称核心中的一个。 在又一些其它特征中,一种核心切换系统包括模式切换模块、核心启动模块和状态转移模块。模式切换模块接收切换信号以在第一模式和第二模式之间切换操作。在第一模式期间,与应用程序相关的指令由第一不对称核心执行,而第二不对称核心不活动。在第二模式期间,指令由第二不对称核心执行,而第一不对称核心不活动。核心启动模块在中断被禁止之后停止第一不对称核心对应用程序的处理。状态转移模块将第一不对称核心的状态转移到第二不对称核心。核心启动模块允许第二不对称核心继续指令的执行并激活中断。 在另一特征中,当第二不对称核心在第二模式期间继续执行指令时,第二不对称核心在没有指令翻译的情况下执行指令。 在另一特征中,第一不对称核心的第一最大速度和第一最大操作功率级别分别大于第二不对称核心的第二最大速度和第二最大操作功率级别。 在另一特征中,在第二不对称核心继续执行指令时,核心启动模块不向第一不对称核心提供功率或者向第一不对称核心提供待机功率。 在其它特征中,核心切换系统还包括核心简档模块,该根据数据缓存缺失率(missrate)、指令缓存缺失率和第一不对称核心每周期执行的指令中的至少一个产生预期指令执行率以用于执行应用程序。核心简档模块根据预期指令执行率产生切换信号。
在其它特征中,核心切换系统还包括核心改变序列(CCS)模块,该模块根据切换信号产生CCS。核心启动模块根据CCS使第一和第二不对称核心中的一个上电,并关闭第一和第二不对称核心中的另一个。 在又一些其它特征中,一种设备包括存储器和核心切换模块。存储器存储包括内核的向应用程序提供服务的操作系统(OS)。核心切换模块在第一模式和第二模式之间切换操作。在第一模式期间,与应用程序相关的指令由第一不对称核心执行,而第二不对称核心不活动。在第二模式期间,指令由第二不对称核心执行,而第一不对称核心不活动。核心切换模块在高于内核的级别上操作。 在另一特征中,核心切换模块对OS透明地在第一模式和第二模式之间切换。
在其它特征中,核心切换模块包括模式切换模块、核心启动模块和状态转移模块。模式切换模块接收切换信号以在第一模式和第二模式之间切换操作。核心启动模块在中断被禁止之后停止第一不对称核心对应用程序的处理。状态转移模块将第一不对称核心的状态转移到第二不对称核心。核心启动模块允许第二不对称核心继续指令的执行并激活中断。 在另一特征中,当第二不对称核心在第二模式期间继续执行指令时,在没有指令翻译的情况下执行指令。 在另一特征中,第一不对称核心的第一最大速度和第一最大操作功率级别分别大于第二不对称核心的第二最大速度和第二最大操作功率级别。 在另一特征中,在第二不对称核心继续执行指令时,核心切换模块不向第一不对称核心提供功率,或者向第一不对称核心提供待机功率。 在其它特征中,核心切换系统还包括核心简档模块,该模块根据数据缓存缺失率、指令缓存缺失率和第一不对称核心每周期执行的指令中的至少一个产生预期指令执行率用于执行应用程序。核心切换模块根据预期指令执行率在第一和第二模式中的一个与第一和第二模式中的另 一个之间切换操作。 在其它特征中,核心切换系统还包括核心改变序列(CCS)模块,该模块根据数据缓存缺失率、指令缓存缺失率以及第一和第二不对称核心之一每周期执行的指令中的至少一个产生CCS。核心切换模块根据CCS使第一和第二不对称核心中的一个上电并关闭第一和第二不对称核心中的另一个。 在又一些其它特征中,一种方法包括在第一模式期间当第二不对称核心不活动时使用第一不对称核心执行与应用程序相关的指令,以及在第二模式期间当第一不对称核心不活动时使用第二不对称核心执行指令。该方法还包括接收切换信号以在第一模式和第二模式之间切换操作。该方法还包括根据切换信号在第一模式期间禁止中断。该方法还包括在中断被禁止之后停止第一不对称核心对应用程序的处理。该方法还包括将第一不对称核心的状态转移到第二不对称核心,允许第二不对称核心继续指令的执行,以及激活中断。
在另一特征中,该方法还包括当第二不对称核心继续执行指令时,在没有指令翻译的情况下执行指令。 在其它特征中,该方法还包括提供具有第一最大速度和第一最大操作功率级别的第一不对称核心以及提供具有第二最大速度和第二最大操作功率级别的第二不对称核心。第一最大速度和第一最大操作功率级别分别大于第二最大速度和第二最大操作功率级别。
18
在另一特征中,该方法还包括在第二不对称核心继续执行指令时,不向第一不对 称核心提供功率,或者向第一不对称核心提供待机功率。 在其它特征中,该方法还包括根据数据缓存缺失率、指令缓存缺失率和第一不对 称核心每周期执行的指令中的至少一个产生预期指令执行率用于执行应用程序。该方法还 包括根据预期指令执行率产生切换信号。 在另一特征中,该方法还包括根据切换信号产生核心改变序列(CCS),根据CCS使
第一和第二不对称核心中的一个上电,以及根据CCS关闭第一和第二不对称核心中的另一 个。 在又一些其它特征中,一种方法包括存储包括内核的向应用程序提供服务的操作 系统(OS),以及在第一模式期间当第二不对称核心不活动时使用第一不对称核心执行与应 用程序相关的指令。该方法还包括在第二模式期间当第一不对称核心不活动时使用第二不 对称核心执行指令。该方法还包括使用核心切换模块在第一模式和第二模式之间切换操 作,以及在内核之上的级别上执行核心切换模块。 在另一特征中,该方法还包括对OS透明地在第一模式和第二模式之间切换。 在另一特征中,该方法还包括接收切换信号以在第一模式和第二模式之间切换操
作,在中断被禁止之后停止第一不对称核心对应用程序的处理,将第一不对称核心的状态
转移到第二不对称核心,允许第二不对称核心继续指令的执行,以及激活中断。 在另一特征中,该方法还包括当第二不对称核心在第二模式期间继续执行指令
时,在没有指令翻译的情况下执行指令。 在其它特征中,该方法还包括提供具有第一最大速度和第一最大操作功率级别的 第一不对称核心,以及提供具有第二最大速度和第二最大操作功率级别的第二不对称核 心。第一最大速度和第一最大操作功率级别分别大于第二最大速度和第二最大操作功率级 别 在另一特征中,该方法还包括在第二不对称核心继续执行指令时不向第一不对称 核心提供功率或者向第一不对称核心提供待机功率。 在其它特征中,该方法还包括根据数据缓存缺失率、指令缓存缺失率和第一不对 称核心每周期执行的指令中的至少一个产生预期指令执行率用于执行应用程序。该方法还 包括根据预期指令执行率在第一和第二模式中的一个与第一和第二模式中的另一个之间 切换操作。 在另一特征中,该方法还包括根据数据缓存缺失率、指令缓存缺失率以及第一不 对称核心每周期执行的指令中的至少一个产生核心改变序列(CCS),根据CCS使第一和第 二不对称核心中的一个上电,以及根据CCS关闭第一和第二不对称核心中的另一个。
在又一些其它特征中,一种核心切换系统包括用于切换操作模式的模式切换装 置。模式切换装置接收切换信号以在第一模式和第二模式之间切换。在第一模式期间,与 应用程序相关的指令由用于执行指令的第一不对称核心装置执行,而用于执行指令的第二 不对称核心装置不活动。在第二模式期间,指令由第二不对称核心装置执行,而第一不对称 核心装置不活动。系统还包括用于启动第一和第二不对称核心装置的核心启动装置。核心 启动装置在中断被禁止之后停止第一不对称核心装置对应用程序的处理。系统还包括用于 将第一不对称核心装置的状态转移到第二不对称核心装置的状态转移装置。核心启动装置
19允许第二不对称核心装置继续指令的执行并激活中断。 在另一特征中,当第二不对称核心装置在第二模式期间继续执行指令时,指令在 没有指令翻译的情况下被执行。 在另一特征中,第一不对称核心装置的第一最大速度和第一最大操作功率级别分 别大于第二不对称核心装置的第二最大速度和第二最大操作功率级别。 在另一特征中,在第二不对称核心装置继续执行指令时,核心启动装置不向第一 不对称核心装置提供功率或者向第一不对称核心装置提供待机功率。 在另一特征中,核心切换系统还包括核心简档装置,该装置用于根据数据缓存缺
失率、指令缓存缺失率和第一不对称核心装置每周期执行的指令中的至少一个产生预期指
令执行率用于执行应用程序,并用于根据预期指令执行率产生切换信号。 在其它特征中,核心切换系统还包括核心改变序列(CCS)装置,该装置用于根据
切换信号产生CCS。核心启动装置根据CCS使第一和第二不对称核心装置中的一个上电并
关闭第一和第二不对称核心中的另一个。 在又一些其它特征中,一种设备包括存储器,该存储器存储包括内核的向应用程 序提供服务的操作系统(OS)。该设备还包括用于在第一模式和第二模式之间切换操作的核 心切换装置。在第一模式期间,与应用程序相关的指令由用于执行应用程序的第一不对称 核心装置执行,而用于执行应用程序的第二不对称核心装置不活动。在第二模式期间,指令 由第二不对称核心装置执行,而第一不对称核心装置不活动。核心切换装置在高于内核的 级别上操作。 在另一特征中,核心切换装置对OS透明地在第一模式和第二模式之间切换。
在其它特征中,核心切换装置包括用于接收切换信号以在第一模式和第二模式之 间切换操作的模式切换装置。核心切换装置还包括用于在中断被禁止之后停止第一不对称 核心装置对应用程序的处理的核心启动装置。核心切换装置还包括用于将第一不对称核心 装置的状态转移到第二不对称核心装置的状态转移装置。核心启动装置允许第二不对称核 心装置继续指令的执行并激活中断。 在另一特征中,当第二不对称核心装置在第二模式期间继续执行指令时,指令在 没有指令翻译的情况下被执行。 在另一特征中,第一不对称核心装置的第一最大速度和第一最大操作功率级别分 别大于第二不对称核心装置的第二最大速度和第二最大操作功率级别。 在另一特征中,在第二不对称核心装置继续执行指令时,核心切换装置不向第一 不对称核心装置提供功率,或者向第一不对称核心装置提供待机功率。 在其它特征中,该设备还包括核心简档装置,该装置根据数据缓存缺失率、指令缓 存缺失率和第一不对称核心装置每周期所执行的指令中的至少一个产生预期指令执行率 以用于执行应用程序。核心切换装置根据预期指令执行率在第一和第二模式中的一个与第 一和第二模式中的另一个之间切换。 在其它特征中,设备还包括核心改变序列(CCS)装置,该装置根据数据缓存缺失 率、指令缓存缺失率以及第一不对称核心装置每周期所执行的指令中的至少一个产生CCS。 核心切换装置根据CCS使第一和第二不对称核心装置中的一个上电并关闭第一和第二不 对称核心装置中的另一个。
在又一些其它特征中,一种存储在计算机可读介质上并由处理器执行的计算机程 序包括在第一模式期间当第二不对称核心不活动时使用第一不对称核心执行与应用程序 相关的指令,以及在第二模式期间当第一不对称核心不活动时使用第二不对称核心执行指 令。该方法还包括接收切换信号以在第一模式和第二模式之间切换操作。该方法还包括根 据切换信号在第一模式期间禁止中断。该方法还包括在中断被禁止之后停止第一不对称核 心对应用程序的处理。该方法还包括将第一不对称核心的状态转移到第二不对称核心,允 许第二不对称核心继续指令的执行以及激活中断。 在另一特征中,该计算机程序还包括当第二不对称核心在第二模式期间继续执行 指令时,在没有使用指令翻译的情况下执行指令。 在其它特征中,该计算机程序还包括提供具有第一最大速度和第一最大操作功率 级别的第一不对称核心以及提供具有第二最大速度和第二最大操作功率级别的第二不对 称核心。第一最大速度和第一最大操作功率级别分别大于第二最大速度和第二最大操作功 率级别。 在另一特征中,该计算机程序还包括在第二不对称核心继续执行指令时,不向第 一不对称核心提供功率,或者向第一不对称核心提供待机功率。 在其它特征中,该计算机程序还包括根据数据缓存缺失率、指令缓存缺失率和第 一不对称核心每周期所执行的指令中的至少一个产生用于执行应用程序的预期指令执行 率。该计算机程序还包括根据预期指令执行率产生切换信号。 在另一特征中,该计算机程序还包括根据切换信号产生核心改变序列(CCS),根据 CCS使第一和第二不对称核心中的一个上电,以及根据CCS关闭第一和第二不对称核心中 的另一个。 在又一些其它特征中,一种存储在计算机可读介质上并由处理器执行的计算机程 序包括存储包括内核的向应用程序提供服务的操作系统(0S),以及在第一模式期间当第 二不对称核心不活动时使用第一不对称核心执行与应用程序相关的指令。该方法还包括在 第二模式期间当第一不对称核心不活动时使用第二不对称核心执行指令。该方法还包括使 用核心切换模块在第一模式和第二模式之间切换操作,以及在内核之上的级别上执行核心 切换模块。 在另一特征中,该计算机程序还包括对0S透明地在第一模式和第二模式之间切 换。 在另一特征中,该计算机程序还包括接收切换信号以在第一模式和第二模式之间 切换操作,在中断被禁止之后停止第一不对称核心对应用程序的处理,将第一不对称核心 的状态转移到第二不对称核心,允许第二不对称核心继续指令的执行以及激活中断。
在另一特征中,该计算机程序还包括当第二不对称核心在第二模式期间继续执行 指令时,在没有指令翻译的情况下执行指令。 在其它特征中,该计算机程序还包括提供具有第一最大速度和第一最大操作功率 级别的第一不对称核心以及提供具有第二最大速度和第二最大操作功率级别的第二不对 称核心。第一最大速度和第一最大操作功率级别分别大于第二最大速度和第二最大操作功 率级别 在另一特征中,该计算机程序还包括在第二不对称核心继续执行指令时,不向第
21一不对称核心提供功率,或者向第一不对称核心提供待机功率。 在其它特征中,该计算机程序还包括根据数据缓存缺失率、指令缓存缺失率和第 一不对称核心每周期所执行的指令中的至少一个产生预期指令执行率用于执行应用程序。 该计算机程序还包括根据预期指令执行率在第一和第二模式中的一个与第一和第二模式 中的另一个之间切换操作。 在其它特征中,该计算机程序还包括根据数据缓存缺失率、指令缓存缺失率以及
第一不对称核心每周期所执行的指令中的至少一个产生核心改变序列(CCS),根据CCS使
第一和第二不对称核心中的一个上电,以及根据CCS关闭第一和第二不对称核心中的另一 个。 从下文提供的详细描述中本公开进一步的适用领域将变得明显。应理解,详细描 述和具体的例子希望仅用于说明的目的,而不是限制本公开的范围。


从详细描述和附图中将更充分地理解本公开,其中 图1A是根据现有技术的不对称多处理(MP)系统的功能框图; 图IB是根据现有技术的对称MP系统的功能框图; 图2是根据本公开的对称MP系统的功能框图; 图3A和3B是根据本公开的包括高功率核心和低功率核心的示例性处理系统的功 能框图; 图3C是图2A和2B的示例性控制模块的功能框图; 图3D是图3A的示例性核心利用率监控模块的功能框图; 图4是用于操作包括高功率和低功率核心的处理系统的示例性方法的流程图; 图5是具有第一和第二核心的另一示例性控制模块的功能框图; 图6是用于操作图5的第一和第二核心的示例性方法的流程图; 图7是用于操作图5的第一和第二核心的另一示例性方法的流程图; 图8A和8B是根据本公开的示例性核心变形(morph)系统的功能框图; 图9A是根据本公开的动态地切换核心的示例性功率管理系统的功能框图; 图9B是根据本公开的动态地切换核心的另一示例性功率管理系统的功能框图; 图9C是示例性核心切换模块的功能框图; 图10是根据本公开的用于使用与监管器模块集成的核心切换模块来切换核心的 示例性方法的流程图; 图11A是示例性蜂窝电话的功能框图; 图11B是与基站进行通信的示例性无线手持机(handset)的功能框图; 图11C是示例性移动设备的功能框图; 图11D是示例性全球定位系统(GPS)的功能框图;以及 图11E是桌上型计算机和/或服务器的功能框图。
具体实施例方式
下面的描述在本质上仅仅是示例性的且决不意味着限制本公开、其应用或使用。为了清楚,相同的标号在附图中将用于标识相似的元件。如这里使用的,短语"A、 B和C中 的至少一个"应被解释为意指使用非排他的逻辑"或"的逻辑(A或B或C)。应理解,方法 内的步骤可按不同的顺序执行,而不改变本公开的原理。 如这里使用的,术语"模块"指执行一个或多个软件或固件程序的专用集成电路 (ASIC)、电子电路、处理器或核心(共享、专用或组)和存储器、组合逻辑电路和/或提供所 述功能的其它适当的部件。 大多数移动计算设备执行具有不同的复杂度和/或处理要求的应用程序。 一些应 用程序可使用单核低速处理器有效地被执行,而其它应用程序可使用单核高速处理器被有 效地执行。仅仅作为例子,低速处理器可按小于或等于500兆赫兹(MHz)的速度操作,而高 速处理器可按大于或等于1千兆赫兹(GHz)的速度操作。 大多数移动计算设备目前仅使用一个单核处理器。使用单核处理器来执行所有类 型的应用程序需要功率-性能折衷。例如,使用单核低速处理器可能在损害性能的情况下 增加功率节约并延长电池寿命。 一些处理密集的应用程序可能运行缓慢或根本不运行。相 反,使用单核高速处理器可提高性能,同时减少电池寿命,因为高速处理器即使在执行需要 较低的处理速度的应用程序时也消耗较多的功率。 根据本公开,通过使用具有低速、低功率(LP)核心和高速、高功率(HP)核心的多 核处理系统,可在移动设备中实现增加的功率节约和提高的性能。LP核心和HP核心可在同 一IC或SOC上实现,或作为合并到系统级封装(SIP)中的单独的IC实现。如将在下面进 一步详细描述的,多核处理系统根据正被执行的应用程序的类型、处理负荷和/或这里所 述的其它因素,在LP和HP核心之间动态地切换。 现在参考图2,移动设备可包括不对称多处理(MP)系统10,系统10包括LP核心 12和HP核心16。 LP核心12的指令集架构(ISA)可不同于HP核心16的ISA。例如,HP核 心16可执行浮点指令,而LP核心12可能不执行浮点指令。此外,LP和HP核心(下文中 称为核心)12和16具有不同的性能和能力(例如,不同的处理速度、功率消耗等)。或者, 这两者可使用相同的ISA。 根据本公开,不对称MP系统10通过实现LP核心12和HP核心16之间的兼容性 而以伪对称的方式操作。LP和HP核心12和16之间的兼容性可用很多方式实现。例如,LP 和HP核心12和16可使用相同或相似的关键核心寄存器/接口 ;LP核心12可使用寄存器 映射;和/或LP核心12可使用与HP核心16的指令集相同的或为其子集的指令集。
因此,操作系统(OS)和应用程序可在LP和HP核心12和16 二者上运行。不对称 MP系统10根据处理负荷和正被执行的应用程序的类型,在LP和HP核心12和16之间动态 地切换,以按需要增加功率节约并提高性能。不对称MP系统10可用于通用处理(GPP)。
本公开使用核心变形来优化功率消耗并提高性能。核心变形包括MP系统的核心 的适应性动态切换。具体地,低功率和高功率核心被针对OS和/或应用程序安全和透明地 切换。换句话说,OS和应用程序可能不知道哪个核心当前正执行处理负荷。
核心变形可优化电池寿命和性能。例如,在处理负荷低时使用LP核心来运行应用 程序可延长电池寿命。另一方面,在处理负荷高时使用HP核心来运行应用程序可提供高性 能。通过按需要在LP和HP核心之间动态地切换可优化功率消耗和性能这两者。
在核心变形中,根据系统负荷而动态地激活(即,启动)或禁止(即,禁用)核心。
23根据应用程序所要求的资源利用率和性能,可部分地确定系统负荷。在一些实现方式中,一 次仅可有一个核心是活动的(即,执行应用程序)。当一个核心活动时,其它核心可被禁止 (即,禁用)以节约功率。可用很多方式来禁止其它核心。例如,其它核心可被置于待机模 式中,在该模式中,其它核心的时钟频率和/或电源电压可降低到比核心活动时更低的值。 或者,可通过断开核心的电源来彻底关闭其它核心。 当执行被从一个核心切换到另一个时,活动的核心可透明地运行OS和应用程序。 具体地,当执行被从一个核心切换到另一个时,其它核心在没有翻译的情况下执行指令。因 此,核心的切换对OS和应用程序是透明或不可见的,OS和应用程序继续运行,就好像系统 包括单个核心而不是多个核心一样。可在包括一个LP核心和一个HP核心的多核系统中使 用核心变形。当应用程序要求比一个HP核心所提供的性能还要高的性能时,可使用多个HP 核心。 虽然使用移动计算设备作为例子在整个公开中讨论了动态核心切换,但是在其它 计算系统(包括桌上型计算机、服务器等)中也可使用动态核心切换来减少功率消耗。
在详细讨论之前,给出对附图的简要概述。图3A和3B示出具有LP核心和HP核 心的多核处理系统。图3C示出切换多核处理系统的核心的控制模块。图3D示出控制模块 的核心利用率模块。图4示出用于操作多核处理系统的方法。图5示出用于切换多核处理 系统的核心的另一系统。图6和7示出用于操作多核处理系统的方法。图8A和8B示出当 核心在核心变形期间被切换时操作一个核心的胶合逻辑模块。图9A示出使用核心切换模 块来动态地切换核心的功率管理系统。图9B示出使用核心切换模块来动态地切换核心的 功率管理系统。图9C示出示例性核心切换模块。图10示出用于使用核心切换模块动态地 切换核心的方法的步骤。 现在参考图3A,其示出根据本公开的处理系统20。处理系统20包括具有缓存26 的HP核心24和具有缓存30的LP核心28。处理系统20可按需要在HP和LP核心24和 28之间切换以减少功率消耗,同时仍然支持以高速处理。处理系统20在以电池电源操作的 移动设备中延长电池寿命方面可能是有用的。HP和LP核心24和28都能够运行相同的操 作系统和/或应用程序。此外,HP和LP核心24和28都可执行彼此的指令、状态和/或线 程并继续处理。 在HP模式中,HP核心24处于活动状态中并处理线程。LP核心28在HP模式期间 也可操作。换句话说,LP核心28在HP模式的全部或一部分期间可处于活动状态。然而为 了减少功率,在HP核心24处于活动状态时,LP核心28可在不活动状态中操作。
在LP模式中,LP核心28在活动状态中操作并处理线程,而HP核心24处于不活 动状态。不活动的核心可被完全关闭(没有功率被提供)。或者,包括比活动的功率级别低 的功率级别的待机功率可在不活动状态中被提供到核心,以允许更快地转变到活动状态。
HP和LP核心24和28可使用相同或相似的操作系统。LP核心28可使用与HP核 心24的ISA相同的或为其子集的ISA。 HP和LP核心24和28可能能够运行相同的代码和 /或应用程序,虽然是以不同的速度。HP和LP核心24和28可具有相同或相似的架构。HP 核心24可具有比LP核心28更多的处理能力(例如,流水线、级等)。HP和LP核心24和 28 二者在从LP模式转变到HP模式和从HP模式转变到LP模式时,可暂时地同时在活动状 态中操作。
存储器40(例如易失性和/或非易失性存储器)存储第一应用程序42-l, 42-2,...和42-P(总称第一应用程序42)、第二应用程序44-1, 44-2,...和44_Q(总称第 二应用程序44)和/或第三应用程序46-1, 46-2,...和46_R(总称第三应用程序46),其 中P、 Q和R是大于零的整数。第一应用程序42可包括在操作期间需要相对低的处理速度 的应用程序,并且可在LP或HP模式期间被执行。换句话说,第一应用程序42可包括通常 不是处理非常密集的应用程序。然而,如果足够数量的第一应用程序42被同时执行,则处 理系统20可能需要转变到HP模式并在HP模式中操作。 第二应用程序44可包括需要中等处理速度(例如,平均起来一般高于第一应用程 序42且低于第三应用程序46)的应用程序。根据情况,第二应用程序44可能需要低、中或 高处理速度。第三应用程序46可以是往往需要高处理速度的应用程序,并可在HP模式中 被最佳地操作。HP和LP核心24和28可能能够运行所有三种类型的应用程序。或者,一些 应用程序可被限制为仅使用HP核心24运行。 可提供控制模块34以选择性地控制HP和LP模式之间的转变。控制模块34可从 另一模块或设备接收模式改变请求信号。控制模块34可监控指令、状态、线程的转移和/ 或与转移有关的信息(例如寄存器、状态、检查点和/或程序计数器)。 一旦转移完成,控制 模块34就可将HP和LP核心24和28之一转变到不活动状态。 处理系统20可用各种方式来封装。例如,处理系统20的HP和LP核心24和28 都可以可选地被实现为片上系统(SOC)。或者,处理系统20可被封装为多个芯片,这些芯片 被布置为系统级封装(SIP)或布置在印刷电路板(PCB)上。设想了其它封装方法。
现在参考图3B,处理系统20包括HP核心24、 LP核心28、共享寄存器文件112和 控制模块114。可使用高泄漏/高速工艺来制造HP核心24。可使用低泄漏/低速工艺来 制造LP核心28。 HP和LP核心24和28分别包括晶体管106和110。 HP核心24的晶体管 106在活动状态中操作期间往往比LP核心28的晶体管110消耗更多的功率。在一些实现 方式中,晶体管106可具有比晶体管IIO更高的泄漏电流。晶体管106可具有比晶体管110 的尺寸更大的尺寸。晶体管106的栅极可比晶体管110的栅极大。HP核心24的门数(gate count)可比LP核心28的门数大。 HP核心24可具有比LP核心28更复杂的架构。例如,LP核心28可具有比HP核 心24更小的宽度和/或深度。宽度可由并行流水线的数量限定。HP核心24可包括PHP条 并行流水线142,而LP核心28可包括Pw条并行流水线146。在一些实现方式中,P^p可小于 PHP。 Pw可为大于或等于零的整数。当P^二0时,LP核心28不包括任何并行流水线。深 度可由级的数量限定。HP核心24可包括SHP个级144,而LP核心28可包括SlP个级148。 在一些实现方式中,S^可小于S『可为大于或等于l的整数。 可在HP核心24和LP核心28之间共享寄存器文件112。或者,每个HP和LP核心 24和28可具有寄存器文件。寄存器文件112的内容可从很快将被禁用的活动核心转移到 很快将被启动的不活动核心。寄存器文件112可对寄存器、检查点和/或程序计数器使用 预定地址位置。例如,分别由HP和/或LP核心24和/或28使用的寄存器、检查点和/或 程序计数器可存储在寄存器文件112中的相同位置上。因此,当从一个核心转变到另一核 心时,HP和LP核心24和28可定位特定的寄存器、检查点和/或程序计数器。寄存器文件 112可以是分别在HP和LP核心24和28每一个中的寄存器文件(未示出)之外的。线程
25可包括单线程和/或多线程。 控制模块114可选择性地控制在HP和LP模式之间的转变。控制模块114可从另 一模块或设备接收模式改变请求信号。控制模块114可监控指令、状态、线程的转移和/或 与转移有关的信息(例如寄存器、状态、检查点和/或程序计数器)。 一旦转移完成,控制模 块114就可将HP和LP核心24和28之一转变到不活动状态。HP核心24、LP核心28、寄存 器文件112和/或控制模块114可被实现为片上系统(SOC) 130。 HP核心24可包括缓存26,而LP核心28可包括缓存30。缓存26在尺寸上可比 缓存30大。缓存26可比缓存30消耗更多的功率。仅仅作为例子,缓存26可包括四路缓 存(fouriay cache),而缓存30可包括直接映射缓存。仅仅作为例子,HP核心24可按大 于或等于1GHz的速度操作,而LP核心28可按小于或等于500MHz的速度操作。
现在参考图3C,控制模块114可包括下列模块中的一个或多个,以管理处理系统 的操作。控制模块114可包括性能简档模块116、空闲简档模块118、核心简档模块120、线 程转移模块122和/或缓存监控模块124。 性能简档模块116可监控HP和LP核心24和28正执行的应用程序的性能,并可 产生系统负荷的简档。具体地,性能简档模块116可动态地检测工作负荷的类型(例如,系 统负荷是以CPU为主的(CPU-bound),以存储器为主的(memory-bound),还是这两者)。此 外,当HP和LP核心24和28的时钟频率和/或电源电压改变时,性能简档模块116可检测 性能瓶颈。 空闲简档模块118可监控CPU利用率并确定用于操作HP和LP核心24和28的最 低可能时钟频率和/或电源电压。空闲简档模块118可根据工作负荷而使对性能的影响最 小化,同时对具有高空闲占空比的工作负荷节约功率。 此夕卜,当HP和LP核心24和28是不活动的时,空闲简档模块118可用于分别在HP 和LP核心24和28中维持较低的功率级别。例如,空闲简档模块118可操作电源来提供低 功率级别,该功率级别低于活动操作功率级别(但高于无功率)并足以允许不活动的核心 快速转变到活动状态。 当HP和LP核心24和28执行应用程序时,缓存监控模块124可监控缓存缺失率。 例如,缓存监控模块124可监控HP和LP核心24和28的指令缓存缺失率和数据缓存缺失 率。 核心简档模块120可分析由性能简档模块116、空闲简档模块118和/或缓存监控 模块124产生的信息。根据该信息,核心简档模块120可在应用程序被执行时监控HP和LP 核心24和28的核心利用率。核心简档模块120可指示出核心利用率何时处于某些预定阈 值或在某些预定阈值之下。当需要从LP模式到HP模式或从HP模式到LP的切换以优化功 率消耗和性能时,核心简档模块120可产生模式改变信号。功率管理系统在确定是否按要 求改变模式时可利用该模式改变信号。 更具体地,核心简档模块120可分别监控HP和LP核心24和28的处理速度。当 HP核心24开始以低于第一预定阈值的第一处理速度操作时,核心简档模块120可指示需 要将操作切换到LP核心28。当LP核心28开始以高于第二预定阈值的第二处理速度操作 时,核心简档模块120可指示需要将操作切换到HP核心24。 第一和第二预定阈值可为相等的或不相等的(以提供滞后(hysteresis))。换句话说,第一预定阈值可低于第二预定阈值。第一和第二处理速度可在第一时段和第二时段 内平均,以防止在处理速度瞬时改变期间切换。第一和第二时段可被设置为不同的时段以 促进或延缓切换。第一时段、第二时段、第一预定阈值和第二预定阈值可由程序员预设或可 以是用户定义的。通过这么做,用户可控制包括处理系统20的设备的功率耗散。当核心被 切换时,线程转移模块122促进HP核心24和LP核心28之间的线程转移。
现在参考图3D,核心简档模块120可监控系统负荷。例如,可监控HP和LP核心24 和28的一个或多个核心参数,以提供对核心利用率的指示。例如,核心简档模块120可监 控处理速度、页面文件使用情况、输入/输出负荷、线程数、缓存使用情况和/或应用类型。 CPU使用情况可表示每单位时间操作的数量与核心的容量的比率。页面文件使用情况可表 示页面文件的数量与页面文件的最大数量的比率。线程数可以是活动线程的数量。
核心简档模块120可使用单个阈值。换句话说,到HP核心24的转变可发生在LP 核心28的CPU使用情况在预定时段期间高于预定百分比时、页面文件使用情况大于预定页 面文件数量时或者线程数大于预定线程数量时。核心简档模块120也可将多个标准合并成 更复杂的条件。仅仅作为例子,核心简档模块120可能要求LP核心28的处理速度在预定 时段期间高于最大速度的预定百分比并且输入/输出负荷大于预定值。也可使用滞后。设 想了其他组合。 现在参考图4,其示出用于操作处理系统20的示例性方法300。控制在块304开 始,并前进到块306。在块306中,控制确定当前操作模式。如果步骤306等于HP,则控制 继续进行步骤308并确定模式信号是否被设置为LP模式。如果步骤308为肯定,则控制继 续步骤310并增大去往LP核心28和缓存30的功率。在步骤312中,控制确定LP核心28 和缓存30是否准备好。在步骤318中,控制将在HP核心24上运行的指令、状态、线程等转 移到LP核心28。 如果步骤306等于LP,则控制继续进行步骤328并确定模式信号是否被设置为HP 模式。如果步骤328为肯定,则控制继续进行步骤330并增大去往LP核心24和缓存26的 功率。在步骤332中,控制确定HP核心24和缓存26是否准备好。在步骤338中,控制将 在LP核心28上运行的指令、状态和/或线程转移到HP核心24。 现在参考图5,其示出具有HP和LP核心的另一示例性系统。该系统包括LP核心 200和HP核心204, LP核心200包括第一级(LI)缓存202, HP核心204包括LI缓存206。 LP和HP核心200和204可通过总线205进行通信。可提供高速存储器210。高速存储器 210可包括静态随机存取存储器(SRAM)或其它适当的高速存储器。LP和HP核心200和 204可被实现为单独的IC并被布置为系统级封装(SIP),或者被集成为IC或SOC。高速存 储器210也可与LP和HP核心200和204中的一个或两个集成。 LP和HP核心200和204也可具有这里描述的属性中的一些或全部。LP核心200 可具有比HP核心204小的核心。除了 LI缓存202和206以外,也可提供第二级(L2)缓存 208。 LI缓存202和206可与相应的LP和HP核心200和204集成。L2缓存208可由核心 200和204中的一个或两个利用。因为L2缓存208通常倾向于具有高泄漏电流和/或功率 消耗,所以如果需要,则L2缓存的使用可被限制于HP核心204。在一些实现方式中,HP核 心204可包括多个相同的核心。 LP和HP核心200和204可利用不同ISA执行相同的操作系统(OS),并可执行相同的代码。作为0S的组成部分的内核模块220管理系统资源。仅仅作为例子,OS可包括 Linux 或其它适当的操作系统。内核模块220为应用程序224(例如,应用程序224-1, 224-2,...和224-P)在执行其功能时控制的资源(例如,高速存储器210或主存储器228、 LP和HP核心200和204、以及输入/输出设备234)提供最低级别抽象层。内核模块220 一般通过进程间通信机制和系统调用来向应用程序224的进程提供这些资源。
在引导(boot up)期间,引导装载程序(boot loader) —般开始执行内核模块 220。内核模块220对其本身初始化并开始第一进程。随后,内核模块220通常响应于外部 事件(例如应用程序224为了从内核模块220请求服务而使用的系统调用)而执行,或通 过硬件部件向内核模块220通知事件所使用的中断而执行。内核模块220在没有进程可用 来运行时也可执行空闲进程循环。 可提供功率管理系统(PMS)模块242来管理功率消耗并根据所监控的系统负荷来 发起或控制系统操作的改变。核心简档模块240可监控系统负荷,例如核心负荷、输入/输 出负荷、应用程序负荷和/或基于其它系统操作参数的负荷。 例如,PMS模块242可根据要求来控制LP核心200的不同操作频率之间的切换。 换句话说,PMS模块242可根据系统负荷,处理LP核心200的T个不同操作速度之一之间 的转变,其中T是大于1的整数。例如,在低负荷条件下,LP核心200可最初以低于100MHz 的速度操作。随着系统负荷的增加,PMS模块242可能需要将操作速度增大到200MHz。如 可认识到的,较高速度的操作也可与较高的功率消耗相关。可通过提高去往LP核心200和 /或去往相关的时钟电路的电源电压Vdd来实现速度的增大。可采用额外的速度步骤来增 大LP核心200的操作速度,直到其最大处理速度。 当LP核心200达到其最高操作速度并且出现额外的系统负荷时,核心简档模块 240、 PMS模块242和/或内核模块220禁止中断,并产生对监管器模块213或核心切换模 块212的系统调用,以触发转变。核心切换模块212可为独立的或可与监管器模块213集 成。核心切换模块212可响应于系统调用而将操作从LP核心200转变(切换)到HP核心 204,并在转变(切换)完成之后将控制返回到内核模块220。 术语"监管器"通常指允许多个操作系统同时在主计算机上运行的虚拟化平台。监 管器可用于在一个OS操作时安全地暂停另一个OS的操作。监管器一般在内核之上操作。 或者,监管器可在内核之下操作。 在本公开中,术语"监管器"指允许主机设备使用多个不对称处理器的虚拟化平 台,这些处理器使用同一 OS。与不在受信区域中的其它用户应用程序相比,监管器在受信区 域中操作。受信区域是提供代码隔离的安全环境,其中服务可被安全地执行,而没有外部中 断。监管器管理处理器之间的转移,并在一个不对称处理器操作时暂停另一个不对称处理 器的操作。或者,监管器可用于运行使用多个OS的多个不对称处理器。
根据核心切换模块212是否集成在监管器模块213中,监管器模块213或核心切 换模块212在引导之后从RAM或其它存储装置被加载到高速存储器210中。核心切换模块 212在受信区域中切换核心。当一个核心的操作被暂停并移交到另一个核心时,PMS模块 242禁止对LP和HP核心200和204之一的中断。监管器模块213和/或核心切换模块212 通过使核心与OS和应用程序隔离来提供硬件抽象,并使核心的切换对OS和应用程序而言 是透明的。
28
核心切换模块212在内核模块220之上的级别上执行。因为核心切换模块212对 OS和应用程序透明地切换核心,所以当核心切换模块212切换核心时,OS和应用程序可照 旧运行。 在中断被PMS模块242禁止之后,核心切换模块212复制LP核心200的状态,启 动HP核心204,并利用LP核心200的状态来初始化HP核心204。在HP核心204被初始化 之后,核心切换模块212禁用LP核心200。 HP核心204继续执行应用程序,且PMS模块242 激活中断。 在使用HP核心204执行指令之后,系统负荷可能最终降低。当系统负荷降低到预 定点时,核心切换模块212可将操作从HP核心204转变回LP核心200。如可认识到的,当 需要相对低的处理速度时,采用核心切换的系统可受益于LP核心200的低功率消耗。当需 要高速度处理时,可使用HP核心204并在处理负荷足够降低时将其关闭。
现在参考图6,其示出用于操作图5的LP和HP核心200和204的方法的步骤。控 制以步骤250开始。在步骤252,核心简档模块240监控LP核心200的系统负荷。在步骤 256,核心简档模块240确定是否有切换到HP核心204的需要。如果步骤256为否定,则控 制返回到步骤252。 如果步骤256为肯定,则控制消息被发送到核心切换模块212。核心切换模块212 在步骤260读取LP核心200的状态(指针、寄存器、操作码(opcode)、操作数(operand)、程 序计数器(PC)等)并将状态或表示LP核心200的状态的信息复制到高速存储器210中。 在步骤264,核心切换模块212将HP核心204转变到活动状态。核心切换模块212在步骤 268将LP核心200的状态从高速存储器210加载到HP核心204中。在步骤272,核心切换 模块212将LP核心200转变到不活动状态。在步骤276, HP核心204在加载到HP核心204 中的状态下继续执行。换句话说,操作在LP核心200进入不活动状态时的相同程序计数器 值处继续。 在步骤280,在完成从LP核心200加载的指令之后,HP核心204可在应用程序级 开始执行。在步骤288,核心简档模块240监控HP核心204的系统负荷。在步骤292,核心 简档模块240确定是否有切换到LP核心200的需要。 如果步骤292为否定,则控制返回到步骤288。否则,如果步骤292为肯定,则核心 切换模块212在步骤296读取HP核心204的状态,并将状态或表示HP核心204的状态的 信息复制到高速存储器210中。或者,状态可被直接复制到要启动的核心。在步骤300,核 心切换模块212将LP核心200转变到活动状态。在步骤306,核心切换模块212将HP核心 204的状态从高速存储器210加载到LP核心200中。 在步骤310, HP核心204转变到不活动状态。在步骤320, LP核心200在加载的状 态下继续执行。在步骤324,在完成加载的指令之后,LP核心200在应用程序级执行,且控 制返回到步骤252。 现在参考图7,其示出用于操作图5的LP和HP核心200和204的另一方法的步骤。 控制在步骤328开始。在步骤330,控制确定LP核心200是否是活动的。如果步骤330为 肯定,则核心简档模块240监控LP核心200的速度或系统负荷。在步骤338,核心简档模块 240监控正执行的应用程序的类型。在步骤342,控制确定是否有任何应用程序中被指定为 HP类型。
当应用程序被指定为HP类型应用程序时,到HP核心204的立即转变可发生在应 用程序被发起时。HP类型的应用程序可以是编程的和/或用户指定的。或者,可根据电池 充电状态来选择HP应用程序。换句话说,除了当电池为低时,应用程序可默认为HP核心操 作。当电池为低时,应用程序可被迫以减小的操作速度在LP核心上操作或根本不操作。其 它应用程序可专门在HP核心204上执行。 如果步骤342为否定,则控制在步骤348确定系统负荷是否大于第一阈值。如果 步骤348为否定,则控制返回到步骤330。如果步骤348为肯定,则控制继续进行步骤352, 并使用核心切换模块212转变到HP核心204。在步骤356,核心简档模块240监控HP核心 204的系统负荷。在步骤360,控制确定系统负荷是否小于第二阈值。如果步骤360为否定, 则控制返回到步骤356。如果步骤360为肯定,则控制在步骤376转变到LP核心200,且控 制返回到步骤330。 如果步骤342为肯定,则控制以步骤364继续,并使用核心切换模块212转变到HP 核心204。在步骤368,控制确定HP类型的应用程序是否被关闭或以其它方式终止。如果 步骤368为否定,则HP核心204继续执行HP类型的应用程序。如果步骤368为肯定,则控 制以步骤372继续并确定在关闭HP类型的应用程序之后系统负荷是否小于第二速度阈值。 如果步骤372为否定,则控制返回到步骤372。如果步骤372为肯定,则控制在步骤376转 变到LP核心200,且控制返回到步骤330。 当LP核心对移动计算设备的硬件和软件的其余部分而言可能类似或看起来像HP 核心时,核心切换对OS和应用程序可能是透明的。当LP核心类似于HP核心时,无需进行 任何修改或线程着色(thread-coloring),为LP核心排定的线程就可对HP核心排定,反之 亦然。换句话说,应用程序可由任一核心执行,而不考虑任一核心的线程的特性。因此,核 心切换变得对OS和应用程序而言透明。 当LP和HP核心具有相同或兼容的关键核心寄存器和接口时,LP核心可类似于HP 核心。关键核心寄存器和接口的例子包括CPUID寄存器、调试寄存器、缓存组织和控制寄存 器、CP寄存器、跟踪(trace)宏、存储器管理单元(匪U)和性能管理单元(PMU)。此外或作 为替代,LP核心可实现寄存器映射接口和/或微序列器来获得与HP核心的动态兼容性。作 为替代或此外,LP核心的指令集可与HP核心的指令集相同或是HP核心的指令集的子集。
现在参考图8A和8B,当核心正被核心切换模块切换时,胶合逻辑模块380可用于 每次激活(即,启动)仅一个核心。在图8A中,胶合逻辑模块380可接收来自移动设备的其 它硬件和软件的外部中断(例如,IRQ和FIQ)和其它输入(例如,跟踪宏和调试)。此外, 当LP和HP核心200和204正被切换时,胶合逻辑模块380可从LP和HP核心200和204 接收唤醒交换信号。唤醒交换信号指示出在核心切换期间LP和HP核心200和204中的一 个何时醒来而另一个何时关闭。基于唤醒交换信号,胶合逻辑模块380可将中断和其它输 入路由到LP和HP核心200和204中在核心被切换之后活动的一个核心。
具体地,在图8B中,胶合逻辑模块380可包括中断控制和复用设备382、跟踪宏和 调试复用设备384以及复用控制模块386。中断控制和复用设备382可接收外部中断,并可 根据外部中断为LP和HP核心200和204产生掩蔽的中断和等待中断(WFI)信号。跟踪宏 和调试复用设备384可接收用于LP和HP核心200和204的跟踪宏和调试输入。
复用控制模块386可接收唤醒交换信号,并可根据唤醒交换信号产生复用控制信号。复用控制信号可指示出LP和HP核心200和204中的哪一个在核心切换完成之后的某 一时刻是活动的。或者,核心切换模块可根据唤醒交换信号来控制中断控制和复用设备382 以及跟踪宏和调试复用设备384。 根据复用控制信号,中断控制和复用设备382可将掩蔽的中断和WFI信号路由到 LP和HP核心200和204中在核心被切换之后活动的一个核心。跟踪宏和调试复用设备384 可将跟踪宏和/或调试信号路由到LP和HP核心200和204中在核心被切换之后活动的一 个核心。这样,LP和HP核心200和204中在某个时刻只有一个是活动的并执行应用程序。
LP和HP核心200和204具有对称的通信能力,这是因为胶合逻辑模块380对称地 与LP和HP核心200和204进行通信。具体地,由中断控制和复用设备382以及跟踪宏和 调试复用设备384产生的信号被对称地传递到LP和HP核心200和204。因此,不管LP和 HP核心200和204中的哪个在某个时刻是活动的,LP和HP核心200和204的硬件接口和 信令能力都是类似的。这使移动设备的其它硬件能够与任一核心通信,而不考虑或不识别 哪个核心是活动的。 此外,由于对称通信,LP和HP核心200和204的可编程性是类似的。具体地,应
用程序可在活动的LP核心200或HP核心204上透明地运行,而不考虑或不识别哪个核心
是活动的。胶合逻辑模块380所提供的硬件和软件透明度或对称性使硬件和软件厂商能够
正常使用、修改、开发和/或添加产品,就好像只有一个核心存在一样。 当HP核心204包括多个相同的核心时,中断控制和复用设备382可为相应的核心
产生掩蔽的中断和WFI信号。此外,跟踪宏和调试复用设备384可将跟踪宏和调试信号路
由到相应的核心。 现在参考图9A和9B,其示出使用动态核心切换来优化移动设备的功率消耗的功 率管理系统(PMS)400。在图9A中,PMS 400包括PMS模块402、核心序列模块413、核心切 换模块414和胶合逻辑模块380。在一些实现方式中,核心切换模块414可与监管器模块 415集成。PMS模块402包括功率控制模块404、性能简档模块406、空闲简档模块408、 OS 任务简档模块410和核心简档模块412。 PMS模块402根据用户简档、正被执行的应用程序 的类型、从OS接收的输入以及通过相应的设备驱动器接收的各种硬件设备的状态来管理 功率消耗。 功率控制模块404可通过用户简档从用户接收关于功率/性能的输入。例如,用 户可指定应用程序的性能级别,而不考虑所带来的功率消耗。此外,功率控制模块404可从 性能简档模块406、空闲简档模块408、0S任务简档模块410和核心简档模块412接收输入。
性能简档模块406可产生指示出应用程序的当前性能和所要求或期望的性能的 输出。例如,性能简档模块406可对功率控制模块404和核心简档模块412指示参数,这些 参数包括应用程序的当前核心利用率、缓存缺失率以及系统负荷是以存储器为主的、以核 心为主的还是以I/O为主的。性能简档模块406可部分地根据从OS服务模块416、设备驱 动器模块418和核心420接收的输入产生输出。核心420可包括LP和一个或多个HP核心。
OS服务模块416可包括内核输入/输出控制(IOCTL)模块422和调度模块424。 内核IOCTL模块422可将当前的I/O使用情况报告给功率控制模块404。调度模块424可 调度OS任务。OS任务的例子包括任务数、进程数和线程量(thread quantum) 。 OS任务的 调度由OS任务简档模块410监控并被报告给功率控制模块404。空闲简档模块408可从
31OS服务模块416接收输入,并可在核心420空闲时向功率控制模块404报告。 设备驱动器模块418可包括控制移动计算设备的硬件设备的设备驱动器。例如,
设备驱动器模块418可包括电池驱动器模块426,电池驱动器模块426根据从PMS模块402
接收的信号控制移动计算设备的电池。电池驱动器模块426可将电池的状态报告给功率控
制模块404。 此外,设备驱动器模块418可包括功率管理中断控制(PMIC)模块428, PMIC模块 428根据从PMS模块402接收的输入来控制硬件设备所消耗的功率。设备驱动器模块418 可包括监控性能或资源利用率参数的性能监控单元(PMU)模块430。资源利用率参数可包 括OS和正被核心420执行的应用程序的存储器使用情况、缓存使用情况、总线使用情况、1/ 0使用情况和CPU使用情况。PMU模块430可将资源利用率参数报告给性能简档模块406。 具体地,当应用程序被核心420之一执行时,PMU模块430可在各种资源利用率参数越过 (即,超过或下降到低于)相应的预定阈值时进行报告。阈值可以是可编程的。
设备驱动器模块418还可包括监控硬件设备的状态的设备超时和状态监控模块 432。设备超时和状态监控模块432在硬件设备中的任一个是空闲的或由于缺乏可用来执 行所请求的任务的足够资源而已超时的时候,向功率控制模块404报告。功率控制模块404 可关闭空闲的硬件设备以节约功率。或者,功率控制模块404可启动(g卩,开始上电)额外 的资源,以便硬件设备可通过完成所请求的任务而不是超时来表现性能。
核心简档模块412、核心序列模块413和核心切换模块414实现核心变形。核心 简档模块412可根据应用程序的执行的历史记录或日志来预期或预测功率/性能要求。例 如,核心简档模块412可根据数据缓存缺失率、指令缓存缺失率和/或正被核心420中活动 的那个每周期所执行的指令,来预测应用程序的每秒百万指令(MIPS)的数量要求。核心简 档模块412可从性能简档模块406、空闲简档模块408和OS任务简档模块410中的至少一 个接收历史纪录。根据历史记录,核心简档模块412可预期或预测应用程序可能要求的功 率/性能。 核心简档模块412可在功率/性能要求改变到大于或小于阈值的值时产生事件。 例如,核心简档模块412可在核心利用率或缓存缺失率超过相应的预定阈值时产生事件。 该事件是对根据功率/性能要求的改变来切换核心的请求。此外,核心简档模块412可监 控核心切换的频率并产生事件以使摆动(thrash)(即,核心420的不必要切换)达到最低 限度。例如,核心简档模块412可监控核心420在预定的时间段内被切换的次数。核心简 档模块412可在该次数超过动态可编程的阈值时产生事件。当该事件被接收时,功率控制 模块404可决定单独根据该事件来切换核心。或者,功率控制模块404可分析包括资源利 用率(过去的、当前的和计划的)在内的所有接收到的信息,并确定是否切换核心。
有时,尽管有该事件,功率控制模块404也可忽略核心简档模块412并且决定不切 换核心。例如,当移动设备由线路电源供电且HP核心是活动的核心时,虽然该事件可能指 示出性能要求为低,但是功率控制模块404可以不切换核心。或者,当HP核心是活动的核 心且应用程序被指定为高性能应用程序时,虽然移动设备不由线路电源供电且该事件由于 低电池而请求到LP核心的切换,但是功率控制模块404可以不切换核心。
在图9B中,核心序列模块413可包括频率改变序列(FCS)模块434、电压改变序 列(VCS)模块436和核心改变序列(CCS)模块438。当核心简档模块412用信号通知事件时,功率控制模块404可产生对内核10CTL模块422的以下三种调用中的至少一种FCS调 用、VCS调用和/或CCS调用。内核IOCTL模块422又可产生以下三种序列中的至少一种 频率改变序列、电压改变序列和/或核心改变序列。 根据所接收的频率改变序列,FCS模块434可产生改变活动的核心的时钟频率的 信号。根据所接收的电压改变序列,VCS模块436可产生改变活动核心的电源电压的信号。 根据所接收的核心改变序列,CCS模块438可产生切换核心420的信号。CCS模块438可结 合频率和/或电压改变序列发起核心改变序列。核心改变序列降低系统开销、系统等待时 间和核心转变时间。现在更详细地描述CCS模块438。 当功率控制模块404决定切换核心时,PMS模块402禁止中断并产生对监管器模 块415和/或核心切换模块414的系统调用以切换核心420。根据系统调用,CCS模块438 产生调用并将该调用输出到监管器模块415和/或核心切换模块414。监管器模块415和 /或核心切换模块414切换核心420。在核心420被切换之后,监管器模块415和/或核心 切换模块414将控制返回到内核IOCTL模块422和/或OS服务模块416。随后,新启动的 核心继续操作,且PMS模块402激活中断。 下面是当CCS模块438可发起核心改变序列时的一些例子。CCS模块438可在LP 核心的核心利用率大于或等于高预定阈值时发起核心改变序列,以从LP核心切换到HP核 心。仅仅作为例子,高预定阈值可为诸如80%或90%之类的百分比。CCS模块438可在LP 核心的核心利用率在预定时间段内大于或等于高预定阈值时发起核心改变序列。该预定时 间段可以短或长。仅仅作为例子,该预定时间段可为两秒或十秒。高预定阈值和预定时间 段可被编程以优化性能、功率并使可能不必要的核心切换达到最低限度。
CCS模块438可在LP核心的预期核心利用率大于或等于高预定阈值时发起核心改 变序列。可根据正被执行的应用程序的类型和/或应用程序的执行历史记录,来确定预期 核心利用率。仅仅作为例子,被用户标记为需要高性能的应用程序可发起从LP核心到HP 核心的核心切换。 CCS模块438可在HP核心的核心利用率小于或等于低预定阈值时发起核心改变序 列,以从HP核心切换到LP核心。仅仅作为例子,低预定阈值可为诸如5%或10%之类的百 分比。CCS模块438可在HP核心的核心利用率在预定时间段内小于或等于低预定阈值时发 起核心改变序列。该预定时间段可以短或长。仅仅作为例子,该预定时间段可为两秒或十 秒。低预定阈值和预定时间段可被编程以优化性能、功率并使可能不必要的核心切换达到 最低限度。 CCS模块438可根据正被LP和HP核心之一执行的应用程序的数量来发起核心改 变序列。仅仅作为例子,当正被执行的应用程序的数量为IO或更多时,核心可从LP核心切 换到HP核心,而当正被执行的应用程序的数量为10或更少时,核心可从HP核心切换到LP 核心。CCS模块438可根据应用程序的类型发起核心改变序列。仅仅作为例子,当正被执行 的应用程序被指定为需要高性能时,核心可从LP核心切换到HP核心。最后,CCS模块438 可根据被调度来由核心之一执行的指令的类型来发起核心改变序列。仅仅作为例子,当LP 核心正执行应用程序并且被调度来执行的指令可由HP核心而不是LP核心执行时,核心可 从LP核心切换到HP核心。 更具体地,CCS模块438可如下产生切换核心420的信号。当CCS模块438接收
33到核心改变序列时,CCS模块438将调用输出到监管器模块415和/或核心切换模块414。核心切换模块414根据核心改变序列切换核心420。具体地,核心切换模块414将活动的核心的状态转移到不活动的核心,在活动和不活动的核心420之间执行握手,并如下执行核心切换。 当PMS模块对核心420禁止中断时,核心切换模块414开始核心切换。核心切换模块414暂停OS和应用程序的执行并将核心420与OS和应用程序隔离开。核心切换模块414可保存活动的核心的状态,包括核心寄存器、CP寄存器、堆栈指针、程序计数器、PMU事件和匪U配置。核心切换模块414通过开启或增大去往时钟、L2缓存(例如,如果不活动的核心是HP核心)和不活动的核心的功率供应来启动不活动的核心。
根据从不活动的核心接收的唤醒交换信号,核心切换模块414确定不活动的核心是否在唤醒信号被输出到不活动的核心后的预定时间内醒来(即,上电)。如果不活动的核心在预定时间内不确认(即,不醒来或上电),则核心切换模块414重新加载活动的核心的状态。核心切换模块414将控制返回到内核I0CTL模块422和/或0S服务模块416。活动的核心根据重新加载的状态继续执行应用程序,且PMS模块402对活动的核心激活中断。
相反,如果核心切换模块414在预定时间内从不活动的核心接收到确认,则核心切换模块414将先前活动的核心的状态转移到新启动的核心。核心切换模块414利用先前活动的核心的状态来初始化新启动的核心。在新启动的核心被初始化之后,核心切换模块414通过关闭或减少去往时钟、L2缓存(例如,如果先前活动的核心是HP核心)和先前活动的核心的功率供应,来将先前活动的核心关闭到不活动的状态。核心切换模块414将控制返回到内核IOCTL模块422和/或OS服务模块416。新启动的核心根据加载的状态继续执行应用程序。PMS模块402对活动核心激活中断。这样,核心切换模块414安全地并与OS和应用程序隔离地切换核心,并使核心切换对OS和应用程序透明。
当核心切换模块414将操作从LP核心切换到HP核心时,OS和应用程序继续运行,就好像它们以升高的频率或电源电压在单个核心上继续执行一样。另一方面,当核心切换模块414将操作从HP核心切换到LP核心时,OS和应用程序继续运行,就好像它们以降低的频率或电源电压在单个核心上继续执行一样。 核心切换模块414和/或监管器模块415可将在核心切换期间由核心420交换的握手信息传递到胶合逻辑模块380。握手信息可包括指示出核心420中的哪个是活动的、中断何时被禁止/激活等的信号。根据握手信号,胶合逻辑模块380将中断和来自应用程序的其它信号路由到核心420中活动的那个。 在使用中,核心1可为LP核心,而核心2可为HP核心。移动计算设备通常可使用核心1执行大多数应用程序。核心1可在分别由频率改变序列和电压改变序列指定的频率和电压级别上操作。频率改变序列可包括按需要而顺序地增大或减小活动的核心的时钟频率的控制信号。电压改变序列可包括按需要而顺序地增大或减小活动的核心的电源电压的控制信号。 当需要高性能时(例如,当核心1的利用率在当前时钟频率和电源电压下为最大时),FCS模块434可根据为核心1产生的频率改变序列在一频率范围内从低到高改变核心1的时钟频率,直到达到核心1的最高和/或期望操作频率为止。作为替代或此外,VCS模块436可根据为核心1产生的电压改变序列在一电压范围内从低到高改变核心1的电源电
34压,直到达到核心1的最高和/或期望工作电源电压为止。 当应用程序要求更高的性能时(S卩,当核心1的利用率在最高频率和电压下为最大时),核心切换模块414可开始核心切换。核心切换模块414可启动核心2,将核心1的状态移交到核心2,并关闭核心1或以其它方式使核心1成为不活动的。具体地,核心切换模块414可禁用核心1并复制核心1的状态。然后,核心切换模块414可使核心2上电。在上电时,当核心2初始化时,核心切换模块414可将核心1的状态移交到核心2。也就是说,核心切换模块414可利用核心1的状态来重置核心2。此后,核心切换模块414可关闭核心l。核心2可使用核心1的状态在核心1进入不活动状态处继续执行应用程序。PMS模块402可激活中断。调度模块424可将本来要由核心1执行的线程调度来由核心2执行。
最初,核心2可在分别由频率改变序列和电压改变序列指定的频率和电压级别上操作。随后,FCS模块434可根据应用程序所要求的性能水平,在一频率范围内从低到高然后从高到低改变核心2的时钟频率。作为替代或此外,VCS模块436可根据应用程序所要求的性能水平,在一电压范围内从低到高并从高到低改变核心2的电源电压。如果HP核心包括多个核心2,则随着应用程序所要求的性能水平继续改变,每个其他的核心2可被启动和禁用。 当应用程序所要求的性能水平降低到核心2所表现的性能不再是最佳的、有效的、期望的和/或可能的这样一个水平时,核心切换模块414可切换核心。核心切换模块414可启动核心1,将核心2的状态移交到核心1,并关闭核心2或以其它方式使核心2成为不活动的。具体地,核心切换模块414可禁用核心2并复制核心2的状态。然后,核心切换模块414可使核心1上电。在上电时,当核心1初始化时,核心切换模块414可将核心2的状态移交到核心l。也就是说,核心切换模块414可利用核心2的状态来重置核心1。核心l可使用核心2的状态在核心2进入不活动状态处继续执行应用程序。PMS模块402可激活中断。此后,核心切换模块414可关闭核心2。调度模块424可将本来要由核心2执行的线程调度为由核心l执行。 现在参考图9C,示例性核心切换模块414可包括模式切换模块414-1、核心启动模块414-2和状态转移模块414-3。当操作将从LP模式切换到HP模式或从HP模式切换到LP模式时,模式切换模块414-1接收控制信号。在对当前活动的核心的中断被禁止之后,核心启动模块414-2停止当前活动的核心(例如,核心l)正执行的应用程序的处理。核心启动模块414-2启动当前不活动的核心(例如,核心2)并监控当前不活动的核心是否上电。在新启动的核心(例如,核心2)上电之后,状态转移模块414-3将当前活动的核心的状态转移到新启动的核心。新启动的核心继续应用程序的指令的执行,且核心启动模块414-2激活对新启动的核心的中断。核心启动模块414-2关闭核心1。 这样,核心切换模块414可动态地切换核心420,并降低功率消耗和提高移动设备的性能。此外,因为当核心420被切换时,核心切换模块414安全地并隔离地将一个核心的状态移交到另一个,所以核心420的切换对在核心420上运行的应用程序和0S是透明的。因此,核心420与现有处理硬件是插接兼容的,并可在没有任何硬件修改的情况下代替现有处理硬件。 现在参考图10,其示出用于使用核心切换模块414来切换核心420的方法500。控制在步骤502开始。控制在步骤504确定核心简档模块412是否产生事件以切换核心
35420(例如,从活动的核心(核心l)到不活动的核心(核心2))。如果步骤504的结果为否定,则控制等待,直到核心简档模块412产生事件以切换核心420为止。如果步骤504的结果为肯定,则功率控制模块404在步骤506根据当前和/或预期的资源利用率来确定核心420是否可被切换。如果步骤506的结果为否定,则控制忽视该事件并返回到步骤504。如果步骤506的结果为肯定,则控制前进到步骤508。 控制在步骤508禁止中断。核心1在步骤510完成核心1正执行的任何未决的读取/写入(R/W)命令。控制在步骤512产生对核心切换模块414的系统管理中断(SMI)调用,以切换核心420(例如,禁用活动核心(核心l),并启动不活动核心(核心2))。
控制在步骤514保存活动核心(核心1)的状态。为了一致性,控制在步骤516冲刷(flush)核心1的Ll缓存。控制在步骤518将事件发送到不活动的核心(核心2)。控制在步骤520确定核心2是否已通过上电并通过转变到活动状态而确认该事件。如果步骤520的结果为肯定,则控制在步骤521关闭核心1或以其它方式减小核心1的功率。控制在步骤522将所保存的核心1的状态加载到核心2中。在步骤524,核心2在核心1关闭处继续应用程序的执行。控制在步骤526激活中断。控制返回到步骤504。
然而,如果步骤520的结果为否定(即,如果核心2不确认该事件且不上电),则控制在步骤528将核心1的状态重新加载到核心1中。核心1在步骤530继续应用程序的执行。控制在步骤532激活中断。控制返回到步骤504。 图11A-11E示出了结合本公开的教导的各种示例性实现方式。在图IIA中,本公开的教导可以实现在蜂窝电话858的多核控制模块中。蜂窝电话858包括蜂窝电话控制模块860、电源862、存储器864、存储设备866以及蜂窝网络接口 867,该蜂窝网络接口 867可包括天线。蜂窝电话858可包括网络接口 868、麦克风870、音频输出872(例如扬声器和/或输出插孔)、显示器874以及用户输入设备876 (例如键区和/或点选设备)。如果网络接口 868包括无线局域网接口,则可包括天线869。 蜂窝电话控制模块860可实现根据本公开教导的多核控制模块。蜂窝电话控制模块860可接收来自蜂窝网络接口 867、网络接口 868、麦克风870和/或用户输入设备876的输入信号。蜂窝电话控制模块860可对信号进行处理,包括编码、解码、滤波和/或格式化,并生成输出信号。输出信号可被传输到存储器864、存储设备866、蜂窝网络接口 S67、网络接口 868和音频输出872中的一个或多个。 存储器864可包括随机存取存储器(RAM)和/或非易失性存储器。非易失性存储器可包括任何合适类型的半导体或固态存储器,例如闪存(包括NAND和NOR闪存)、相变存储器、磁RAM以及其中每个存储器单元具有多于两个状态的多态存储器。存储设备866可包括光学存储驱动器(例如DVD驱动器)和/或硬盘驱动器(HDD)。电源862向蜂窝电话858的组件提供功率。 在图11B中,本公开的教导可以实现在无线手持机958的多核控制模块中。无线手持机958包括电话控制模块960、电源962、存储器964、存储设备966以及基站接口 967,该基站接口 967可包括天线(未示出)。无线手持机958可包括麦克风970、音频输出972(例如扬声器和/或输出插孔)、显示器974以及用户输入设备976 (例如键区和/或点选设备)。 手持机控制模块960可实现根据本公开教导的多核控制模块。手持机控制模块960可接收来自基站接口 967、网络接口 968、麦克风970和/或用户输入设备976的输入信 号。手持机控制模块960可对信号进行处理,包括编码、解码、滤波和/或格式化,并生成输 出信号。输出信号可被传输到存储器964、存储设备966、基站接口 967和音频输出972中 的一个或多个。 存储器964可包括随机存取存储器(RAM)和/或非易失性存储器。非易失性存储 器可包括任何合适类型的半导体或固态存储器,例如闪存(包括NAND和NOR闪存)、相变存 储器、磁RAM以及其中每个存储器单元具有多于两个状态的多态存储器。存储设备966可 包括光学存储驱动器(例如DVD驱动器)和/或硬盘驱动器(HDD)。电源962向无线手持 机958的组件提供功率。 在图11C中,本公开的教导可以实现在移动设备989的多核控制模块中。移动设 备989可包括移动设备控制模块990、电源991、存储器992、存储设备993、网络接口 994以 及外部接口 999。如果网络接口 994包括无线局域网接口,则可包括天线(未示出)。
移动设备控制模块990可实现根据本公开教导的多核控制模块。移动设备控制 模块990可接收来自网络接口 994和/或外部接口 999的输入信号。外部接口 999可包 括USB、红外和/或以太网。输入信号可包括压縮的音频和/或视频,并且可以遵循MP3格 式。此外,移动设备控制模块990可接收来自用户输入996的输入,该用户输入996例如是 键区、触摸板或独立的按钮。移动设备控制模块990可对输入信号进行处理,包括编码、解 码、滤波和/或格式化,并生成输出信号。 移动设备控制模块990可向音频输出997输出音频信号,并向显示器998输出视 频信号。音频输出997可包括扬声器和/或输出插孔。显示器998可呈现图形用户界面, 该界面可包括菜单、图标等。电源991向移动设备989的组件提供功率。存储器992可包 括随机存取存储器(RAM)和/或非易失性存储器。 非易失性存储器可包括任何合适类型的半导体或固态存储器,例如闪存(包括 NAND和NOR闪存)、相变存储器、磁RAM以及其中每个存储器单元具有多于两个状态的多 态存储器。存储设备993可包括光学存储驱动器(例如DVD驱动器)和/或硬盘驱动器 (HDD)。移动设备可包括个人数字助理、媒体播放器、膝上型计算机、游戏机或其他移动计算 设备。 在图11D中,本公开的教导可以实现在全球定位系统(GPS) 1089的多核控制模块 中。GPS 1089可包括GPS控制模块1090、电源1091、存储器1092、存储设备1093和外部接 □ 1099。 GPS控制模块1090可实现根据本公开教导的多核控制模块。GPS控制模块1090 可接收来自外部接口 1099的输入信号。外部接口 1099可包括无线信号、USB、红外和/或 以太网。输入信号可包括压縮的音频和/或视频,并且可以遵循MP3格式。此外,GPS控制 模块1090可接收来自用户输入1096的输入,该用户输入1096例如是键区、触摸板或独立 的按钮。GPS控制模块1090可对输入信号进行处理,包括编码、解码、滤波和/或格式化,并 生成输出信号。 GPS控制模块1090可向音频输出1097输出音频信号,并向显示器1098输出视频 信号。音频输出1097可包括扬声器和/或输出插孔。显示器1098可呈现图形用户界面, 该界面可包括菜单、图标等。电源1091向GPS 1089的组件提供功率。存储器1092可包括随机存取存储器(RAM)和/或非易失性存储器。 非易失性存储器可包括任何合适类型的半导体或固态存储器,例如闪存(包括 NAND和NOR闪存)、相变存储器、磁RAM以及其中每个存储器单元具有多于两个状态的多 态存储器。存储设备1093可包括光学存储驱动器(例如DVD驱动器)和/或硬盘驱动器 (HDD)。移动设备可包括个人数字助理、媒体播放器、膝上型计算机、游戏机或其他移动计算 设备。 在图11E中,本公开的教导可以实现在桌上型计算机和/或服务器1100的多核控 制模块1103中。桌上型计算机和/或服务器1100可包括多核处理系统1102,该多核处理 系统1102包括多核控制模块1103。桌上型计算机和/或服务器1100还可包括I/O核心 1104、存储器1106和1/0设备1108。桌上型计算机和/或服务器1100可由电源1112供 电。 多核处理系统1102、1/0核心1104和存储器1106可经由系统总线1110通信。1/ O设备1108可包括硬盘驱动器(HDD)、光盘(CD)驱动器、数字多功能盘(DVD)驱动器、显示 器、键盘和其他I/O设备。I/O核心1104可包括对I/O设备1108进行控制的I/O控制器。 多核处理系统1102可执行存储在HDD、 CD驱动器和/或DVD驱动器上的操作系统(OS)和 应用程序。当多核处理系统1102执行应用程序时,多核控制模块1103可提供提高的功率 节约和提高的性能。 本领域的技术人员现在可从以上描述中意识到本公开的宽泛教导可通过多种形 式实现。因此,虽然本公开包括具体示例,但是本公开的真实范围不应当局限于此,因为在 研究附图、说明书和所附权利要求之后本领域的技术人员可以明白其他修改。
38
权利要求
一种系统,包括第一不对称核心,该第一不对称核心在所述系统在第一模式中操作时执行应用程序,而当所述系统在第二模式中操作时是不活动的;第二不对称核心,该第二不对称核心在所述系统在所述第二模式中操作时执行所述应用程序;以及核心切换模块,该核心切换模块在所述第一模式和所述第二模式之间切换所述系统的操作,在接收到第一控制信号之后选择性地停止所述第一不对称核心对所述应用程序的处理,并将所述第一不对称核心的第一状态转移到所述第二不对称核心,其中所述第二不对称核心在所述第二模式中继续执行所述应用程序。
2. 如权利要求1所述的系统,其中,所述第一控制信号指示出中断被禁止。
3. 如权利要求1所述的系统,其中,当所述第二不对称核心在所述第二模式期间继续 所述执行应用程序时,指令在没有指令翻译的情况下被执行。
4. 如权利要求l所述的系统,还包括向所述应用程序提供服务的操作系统(0S),其中 所述核心切换模块对所述OS透明地在所述第一不对称核心和所述第二不对称核心之间切 换所述应用程序的执行。
5. 如权利要求1所述的系统,其中,所述第一不对称核心的第一最大速度大于所述第 二不对称核心的第二最大速度。
6. 如权利要求1所述的系统,其中,所述第一不对称核心以大于预定频率的频率操作, 并且所述第二不对称核心以小于所述预定频率的频率操作。
7. 如权利要求1所述的系统,其中,所述第一不对称核心的第一最大操作功率级别大 于所述第二不对称核心的第二最大操作功率级别。
8. 如权利要求l所述的系统,其中,所述第一不对称核心使用第一指令集架构(ISA), 所述第二不对称核心使用第二 ISA,并且所述第一 ISA与所述第二 ISA兼容。
9. 如权利要求8所述的系统,其中,所述第一 ISA的第一指令集合是所述第二 ISA的第 二指令集合的超集,并且所述第一集合比所述第二集合包括更多的指令。
10. 如权利要求4所述的系统,其中,所述OS包括内核,并且所述核心切换模块在所述 内核的级别之上执行。
11. 如权利要求1所述的系统,还包括监管器模块,其中所述核心切换模块与所述监管 器模块集成。
12. 如权利要求1所述的系统,其中,当所述核心切换模块选择性地停止所述第一不对 称核心对所述应用程序的处理时,所述核心切换模块保存所述第一状态。
13. 如权利要求12所述的系统,其中,所述核心切换模块使所述第二不对称核心上电, 并使用所述第一状态来初始化所述第二不对称核心。
14. 如权利要求2所述的系统,其中,在所述第二不对称核心继续执行所述应用程序之 后,所述中断被激活。
15. 如权利要求13所述的系统,其中,当所述第二不对称核心上电时,所述核心切换模 块关闭所述第一不对称核心,并且在所述第一不对称核心被关闭之后,不向第一不对称核 心提供功率,或者向第一不对称核心提供待机功率。
16. 如权利要求15所述的系统,还包括与所述第一不对称核心通信的第二级(L2)缓存,其中在所述第一不对称核心被关闭之后,不向所述L2缓存提供功率或者向所述L2缓存 提供待机功率。
17. 如权利要求13所述的系统,其中,当所述第二不对称核心未能上电时,所述核心切 换模块使用所述第一状态来初始化所述第一不对称核心,所述第一不对称核心在所述第一 模式中继续执行所述应用程序,并且中断被激活。
18. 如权利要求1所述的系统,其中,所述核心切换模块在所述第二模式和所述第一模 式之间切换所述系统的操作,在接收到所述第一控制信号之后选择性地停止所述第二不对 称核心对所述应用程序的处理,并且将所述第二不对称核心的第二状态转移到所述第一不 对称核心,其中所述第一不对称核心在所述第一模式中继续执行所述应用程序,并且所述 第一控制信号指示出中断被禁止。
19. 如权利要求18所述的系统,其中,当所述第一不对称核心在所述第一模式期间继 续执行所述应用程序时,指令在没有指令翻译的情况下被执行。
20. 如权利要求18所述的系统,还包括向所述应用程序提供服务的操作系统(0S),其 中所述核心切换模块对所述0S透明地在所述第二不对称核心和所述第一不对称核心之间 切换所述应用程序的执行。
21. 如权利要求18所述的系统,其中,当所述核心切换模块选择性地停止所述第二不 对称核心对所述应用程序的处理时,所述核心切换模块保存所述第二状态。
22. 如权利要求21所述的系统,其中,所述核心切换模块使所述第一不对称核心上电, 并使用所述第二状态来初始化所述第一不对称核心。
23. 如权利要求18所述的系统,其中,在所述第一不对称核心继续执行所述应用程序 之后,所述中断被激活。
24. 如权利要求22所述的系统,还包括与所述第一不对称核心通信的第二级(L2)缓 存,其中在所述第一不对称核心上电之后,功率被提供到所述L2缓存。
25. 如权利要求22所述的系统,其中,当所述第一不对称核心上电时,所述核心切换模 块关闭所述第二不对称核心,并且在所述第二不对称核心被关闭之后,不向所述第二不对 称核心提供功率或者向所述第二不对称核心提供待机功率。
26. 如权利要求22所述的系统,其中,当所述第一不对称核心未能上电时,所述核心切 换模块使用所述第二状态来初始化所述第二不对称核心,所述第二不对称核心在所述第二 模式中继续执行所述应用程序,并且所述中断被激活。
27. 如权利要求1所述的系统,还包括核心简档模块,所述核心简档模块根据所述应用 程序的性能、资源利用率和核心利用率中的至少一个产生第二控制信号。
28. 如权利要求27所述的系统,还包括核心改变序列(CCS)模块,该CCS模块根据所述 第二控制信号发起CCS,其中所述核心切换模块根据所述CCS在所述第一不对称核心和所 述第二不对称核心中的一个与所述第一不对称核心和第二不对称核心中的另一个之间切 换所述应用程序的执行。
29. 如权利要求28所述的系统,其中,当以下各项的至少一项发生时所述CCS模块发起 所述CCS :所述应用程序对所述第二不对称核心的所述核心利用率大于或等于第一预定阈值; 所述应用程序对所述第二不对称核心的所述核心利用率在第一预定时间段内大于或等于第二预定阈值;所述第二不对称核心的预期核心利用率大于或等于第三预定阈值,其中所述预期核心 利用率是根据所述应用程序的类型和所述应用程序的执行历史记录中的至少一个来确定 的;所述应用程序对所述第一不对称核心的所述核心利用率小于或等于第四预定阈值;以及所述应用程序对所述第一不对称核心的所述核心利用率在第二预定时间段内小于或 等于第五预定阈值。
30. 如权利要求28所述的系统,其中,所述CCS模块根据所述应用程序的类型、所述应 用程序的数量以及指令的类型中的至少一个来发起所述CCS。
31. 如权利要求27所述的系统,其中,所述核心简档模块根据在所述第一不对称核心 和所述第二不对称核心中的一个与所述第一不对称核心和第二不对称核心中的另一个之 间切换应用程序的执行的次数来产生所述第二控制信号。
32. 如权利要求27所述的系统,还包括功率控制模块,该功率控制模块控制所述系统 的功率消耗并根据所述第二控制信号和所述功率消耗产生第三控制信号。
33. 如权利要求32所述的系统,还包括根据所述第三控制信号发起CCS的核心变化序 列(CCS)模块,其中,所述核心切换模块根据所述CCS在所述第一不对称核心和所述第二不 对称核心中的一个与所述第一不对称核心和所述第二不对称核心中的另一个之间切换所 述应用程序的执行。
34. 如权利要求28所述的系统,还包括频率改变序列(FCS)模块,所述频率改变序列模 块根据所述第二控制信号发起FCS,并根据所述FCS选择所述第一不对称核心和所述第二 不对称核心中的至少一个的操作频率。
35. 如权利要求28所述的系统,还包括电压改变序列(VCS)模块,所述电压改变序列模 块根据所述第二控制信号发起VCS,并根据所述VCS选择所述第一不对称核心和所述第二 不对称核心中的至少一个的电源电压。
36. 如权利要求18所述的系统,还包括功率管理模块,所述功率管理模块当所述系统 在所述第一模式和所述第二模式之间切换所述操作时禁止所述中断,并当所述系统在所述 第二模式和所述第一模式之间切换所述操作时禁止所述中断。
37. 如权利要求28所述的系统,还包括多个所述第一不对称核心,其中,当所述系统在 所述第一模式中操作时,所述核心切换模块根据所述CCS而选择性地启动和停用所述多个 所述第一不对称核心中的多于一个第一不对称核心。
38. 如权利要求1所述的系统,还包括胶合逻辑模块,所述胶合逻辑模块选择性地与所 述核心切换模块通信并且接收中断;从所述应用程序接收第一信号;以及将所述中断和所述第一信号路由到所述第一不对称核心和所述第二不对称核心中被 所述核心切换模块所启动的那个。
39. —种片上系统(S0C),其包括如权利要求1所述的系统。
40. —种系统级封装(SIP),其包括如权利要求1所述的系统。
41. 一种核心切换系统,包括模式切换模块,该模式切换模块接收切换信号以在第一模式和第二模式之间切换操作,其中在所述第一模式期间,与应用程序相关的指令由第一不对称核心执行,第二不对 称核心不活动,其中在所述第二模式期间,所述指令由所述第二不对称核心执行,所述第一不对称核 心不活动;核心启动模块,该核心启动模块在中断被禁止之后停止所述第一不对称核心对所述应 用程序的处理;以及状态转移模块,该状态转移模块将所述第一不对称核心的状态转移到所述第二不对称 核心,其中,所述核心启动模块允许所述第二不对称核心继续所述指令的执行,并且所述中 断被激活。
42. 如权利要求41所述的核心切换系统,其中,当所述第二不对称核心在所述第二模 式期间继续执行所述指令时,所述指令在没有指令翻译的情况下被执行。
43. 如权利要求41所述的核心切换系统,其中,所述第一不对称核心的第一最大速度 和第一最大操作功率级别分别大于所述第二不对称核心的第二最大速度和第二最大操作 功率级别。
44. 如权利要求41所述的核心切换系统,其中,当所述第二不对称核心继续执行所述 指令时,所述核心启动模块不向所述第一不对称核心提供功率或者向所述第一不对称核心 提供待机功率。
45. 如权利要求41所述的核心切换系统,还包括核心简档模块,所述核心简档模块根 据数据缓存缺失率、指令缓存缺失率和所述第一不对称核心每周期执行的指令中的至少一 个产生预期指令执行率以用于执行所述应用程序,并根据所述预期指令执行率产生所述切 换信号。
46. 如权利要求41所述的核心切换系统,还包括核心改变序列(CCS)模块,所述核心改 变序列模块根据所述切换信号产生CCS,其中所述核心启动模块根据所述CCS使所述第一 不对称核心和所述第二不对称核心中的一个上电,并关闭所述第一不对称核心和所述第二 不对称核心中的另一个。
47. —种设备,包括存储器,该存储器存储包括内核的向应用程序提供服务的操作系统(0S);以及 核心切换模块,该核心切换模块在第一模式和第二模式之间切换操作,其中,在所述第 一模式期间,与所述应用程序相关的指令由第一不对称核心执行,第二不对称核心不活动, 并且在所述第二模式期间,所述指令由所述第二不对称核心执行,所述第一不对称核心不 活动,并且其中,所述核心切换模块在所述内核之上的级别上操作。
48. 如权利要求47所述的设备,其中,所述核心切换模块对所述0S透明地在所述第一 模式和所述第二模式之间切换操作。
49. 如权利要求47所述的设备,其中,所述核心切换模块包括模式切换模块,该模式切换模块接收切换信号以在所述第一模式和所述第二模式之间 切换操作;核心启动模块,该核心启动模块在中断被禁止之后停止所述第一不对称核心对所述应 用程序的处理;以及状态转移模块,该状态转移模块将所述第一不对称核心的状态转移到所述第二不对称 核心,其中,所述核心启动模块允许所述第二不对称核心继续所述指令的执行并激活所述中断。
50. 如权利要求47所述的设备,其中,当所述第二不对称核心在所述第二模式期间继 续执行所述指令时,所述第二不对称核心在没有指令翻译的情况下执行所述指令。
51. 如权利要求47所述的设备,其中,所述第一不对称核心的第一最大速度和第一最 大操作功率级别分别大于所述第二不对称核心的第二最大速度和第二最大操作功率级别。
52. 如权利要求47所述的设备,其中,当所述第二不对称核心继续执行所述指令时,所 述核心切换模块不向所述第一不对称核心提供功率或者向所述第一不对称核心提供待机 功率。
53. 如权利要求47所述的核心切换系统,还包括核心简档模块,所述核心简档模块根 据数据缓存缺失率、指令缓存缺失率和所述第一不对称核心每周期执行的指令中的至少一 个产生预期指令执行率以用于执行所述应用程序,其中所述核心切换模块根据所述预期指 令执行率在所述第一模式和所述第二模式中的一个与所述第一模式和所述第二模式中的 另一个之间切换操作。
54. 如权利要求47所述的核心切换系统,还包括核心改变序列(CCS)模块,所述核心 改变序列模块根据数据缓存缺失率、指令缓存缺失率以及所述第一不对称核心和第二不对 称核心中的一个每周期执行的指令中的至少一个产生CCS,其中所述核心切换模块根据所 述CCS使所述第一不对称核心和所述第二不对称核心中的一个上电,并关闭所述第一不对 称核心和所述第二不对称核心中的另一个。
全文摘要
一种系统包括第一不对称核心、第二不对称核心和核心切换模块。当系统在第一模式中操作时第一不对称核心执行应用程序,而当系统在第二模式中操作时第一不对称核心不活动。当系统在第二模式中操作时,第二不对称核心执行应用程序。核心切换模块在第一模式和第二模式之间切换系统的操作。核心切换模块在接收到第一控制信号之后选择性地停止第一不对称核心对应用程序的处理。核心切换模块将第一不对称核心的第一状态转移到第二不对称核心。第二不对称核心在第二模式中继续执行应用程序。
文档编号G06F1/32GK101790709SQ200880104884
公开日2010年7月28日 申请日期2008年8月27日 优先权日2007年8月27日
发明者塞哈特·苏塔迪嘉, 普瑞玛南德·萨卡达, 杰伊·海博, 陈弘毅, 马克·N·福勒尔顿 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1