用于多处理器应用程序支持的系统及方法

文档序号:6453834阅读:189来源:国知局
专利名称:用于多处理器应用程序支持的系统及方法
技术领域
本发明通常涉及计算装置的功率管理领域,且更明确地说,涉及多处理器移动装 置上的功率管理。
背景技术
当今,消费者使用移动装置(例如,手持蜂窝式电话)来执行许多不同的事情。 常规移动装置可执行各种类型的软件应用程序,且经常包含添加或安装新软件产品的 能力。这些软件产品的每一者需要不同水平的系统功率以部分地基于计算要求的量来 执行置于处理器上的软件产品,所述处理器执行所述软件产品。例如,本机用户接口 ("U1")应用程序比多媒体应用程序或高速游戏需要的计算工作少得多。
一些移动装置尝试通过使用包含低功率处理器及高功率处理器的双处理器设计 来解决此问题。使用此设计,移动装置的功能被分离,从而使得某些功能始终使用低 功率处理器(例如,操作调制解调器的代码)而其它功能始终使用高功率处理器(例 如,任一所安装的应用程序)。尽管此设计为用户确保高水平的性能,但其也导致电 池寿命变短,因为需要向高功率处理器供电以处置应用程序而无论所需的计算工作的 程度如何。
直到现在,用于支持移动装置中的多处理器平台的适当系统一直困扰着所属领域 的技术人员。

发明内容
本发明针对一种用于在多处理器系统中执行应用程序的系统及方法。简单地说, 提供包含至少一低功率处理器及高功率处理器的多处理器(例如,双处理器)专用集 成电路(ASIC)。所述ASIC由经配置以支持应用程序的执行的操作系统控制。当加 载应用程序时,操作系统评估与所述应用程序相关联的属性以确定在多个处理器的哪 一处理器上执行应用程序。接着调度所述应用程序以在适当的处理器上执行。
在一个方面, 一种用于在多处理器系统中执行应用程序的方法包含接收执行应用
程序的请求及识别与所述应用程序相关联的属性。所述属性指定利用多个处理器中的 哪一处理器来执行应用程序。所述方法进一步包含基于所述识别的属性调度所述应用 程序以供在所述指定的处理器上执行。另外,所述方法包含在所述指定的处理器上执 行应用程序。
在另一方面, 一种移动装置包含第一处理器;第二处理器;至少一个存储器存 储装置,其与所述处理器通信;及至少一个计算机可读存储器装置,其可由所述处理 器读取。所述计算机可读存储器包含经配置以致使处理器执行以下操作的一系列计算 机可执行步骤在操作系统处接收执行应用程序的请求;识别与所述应用程序相关联 的属性,所述属性指定利用多个处理器中的哪一处理器来执行应用程序;基于所述识 别的属性调度所述应用程序以供在所述指定的处理器上执行;及利用所述指定的处理 器执行应用程序。
在又一方面, 一种存储用于在多处理器系统中执行应用程序的计算机程序的计算 机可读媒体包含用以接收执行应用程序的请求的计算机可读代码;用以识别与所述 应用程序相关联的属性的计算机可读代码,所述属性指定利用多个处理器中的哪一处 理器来执行应用程序;用以基于所述识别的属性调度所述应用程序以供在所述指定的 处理器上执行的计算机可读代码;及用以致使使用所述指定的处理器执行应用程序的 计算机可读代码。
在另一方面, 一种用于在多处理器系统中执行应用程序的系统包含用于接收执 行应用程序的请求的装置;用于识别与所述应用程序相关联的属性的装置,所述属性 指定利用多个处理器中的哪一处理器来执行应用程序;用于基于所述识别的属性调度 所述应用程序以供在所述指定的处理器上执行的装置;及用于利用所述指定的处理器 执行应用程序的装置。
在另一方面, 一种用于在多处理器环境中处理应用程序的方法包含接收处理应 用程序的请求;识别与所述应用程序相关联的属性,所述属性指定利用多个处理器中 的哪一处理器来处理应用程序及处理所述应用程序。在一个方面,所述应用程序可以 是内容数据。
在另一方面, 一种移动装置包含第一处理器;第二处理器;至少一个存储器存 储装置,其与所述处理器通信;及至少一个计算机可读存储器装置,其可由所述处理 器读取。所述计算机可读存储器包含经配置以致使处理器执行以下操作的一系列计算 机可执行步骤在操作系统处接收执行应用程序的请求;识别与所述应用程序相关联 的属性,所述属性指定利用多个处理器中的哪一处理器来处理应用程序;及利用所述 指定的处理器处理所述应用程序。在一个实施例中,所述应用程序可以是内容数据。


图1是大体图解说明其中特别适用本发明实施方案的移动装置的功能框图。
图2是大体图解说明根据本发明的实施例用于提供多处理器应用程序支持的系统 的功能框图。
图3是根据本发明的实施例提供多处理器应用程序支持的操作系统的概念图解。
图4是大体图解说明用于提供多处理器应用程序支持的过程的操作流程图。
具体实施例方式
以下详细描述用于移动装置中的功率管理的各种技术及机制。大概来说,本发明 针对基于应用程序的属性确定在多个处理器的哪一处理器上执行应用程序。应注意, 在整个说明中,使用"应用程序"仅出于方便目的,而不打算用于进行限制。例如, 所属领域的技术人员将认识到本文中所用的"应用程序"包含任何功能、任务、内容 或发送到处理器供处理的其它数据。
图1是大体图解说明其中特别适用本发明实施方案的样本移动装置101的功能框 图。移动装置101可以是任一手持式计算装置,例如蜂窝式电话、个人数字助理、便 携式音乐播放器、全球定位卫星(GPS)装置或类似装置。虽然本文是在手持式计算 装置的上下文中进行描述,但应了解,本发明的实施方案可在其它领域(例如,膝上 型、桌上型或可能甚至服务器计算装置)中具有同等的应用性。
在此实例中,移动装置101包含全部经由系统总线107耦合的多处理器装置102、 存储器108、存储媒体113及通信模块121。多处理器装置102可以是专用集成电路 ("ASIC"),其包含囊封成单个单元的第一处理器单元104及第二处理器单元106, 在另一实施例(未显示)中,每一处理器实施为离散单元。
根据本发明的一个实施例, 一个处理器单元(例如,处理器单元1 104)比另一处理 器单元(例如,处理器单元2 106)功能更强大。当需要更多处理通量时选择功能更强大 的处理器,例如,其可更适合于处理器密集型应用程序。然而,功能较不强大的处理 器消耗较少功率,且因此导致更慷慨的电池寿命并可更为处理较不密集的应用程序(包 含任务)接受。处理器单元的每一者(处理器单元104及106)是微处理器或专用处 理器(例如,数字信号处理器(DSP)),但在替代方案中其可以是任何常规形式的 处理器、控制器、微控制器或状态机。在一个实施例中,第一处理器单元104实施为 高功率微处理器,且第二处理器单元106实施为低功率DSP。移动装置101还可包含 所属领域的技术人员已知的额外组件。
多处理器装置102耦合到存储器108,存储器108可实施为保持由处理器单元104 及106执行的软件指令的RAM。在此实施例中,存储于存储器108中的软件指令包含 一个或一个以上应用程序112及操作系统110,重要的是应注意存储器108可实施 为独立的RAM,或其可集成到具有处理器单元104及106的多处理器装置102中,以 实现改进的效率。存储器108可由固件或快闪存储器(例如,智能媒体卡)组成。在 另一实施例中,操作系统IIO包含使操作系统110能够确定使用哪一处理器单元来执
行来自应用程序112的一个或一个以上应用程序的软件指令。
储存媒体113可实施为任一非易失性存储器,例如ROM存储器、快闪存储器或 磁盘驱动器,此仅是几个实例。存储媒体113还可实施为那些或其它技术的任一组合, 例如,磁盘驱动器与高速缓冲(RAM)存储器等等。在此特定实施例中,存储媒体113 用于在移动装置101可能被断电或没有电时的周期期间存储数据。
通信模块121使移动装置101与一个或一个以上其它计算装置之间能够进行双向 通信。通信模组121可包含能够实现RF或其它无线通信的组件,例如蜂窝式电话网 络、蓝芽连接、无线局域网络或可能无线广域网络。另一选择是,通信模块121可包 含能实现陆线或硬线网络通信的组件,例如因特网连接、通用串行总线连接、IEEE1394 (火线(Firewire))连接等等。本文打算将这些实例作为非排他性列举,且可能存在 许多其它替代方案。
图2是以略微更详细的方式图解说明其中特别适用本发明实施方案的系统存储器 108的功能框图。如上所述,系统存储器108包含操作系统210及一个或一个以上应 用程序,例如第一应用程序240及第二应用程序250。此处,将在本发明的上下文中 描述所述组件的每一者,
为图解说明本发明的原理,第一应用程序240需要更多处理功率以可接受地执行 (例如)多媒体应用程序或高速游戏。第二应用程序250需要较少处理功率以可接受 地执行(例如)本机用户接口模块或类似模块。所述应用程序的每一者具有例如模块 信息文件("MIF")的相关联元信息,其包含关于应用程序(例如其图标、标题) 的突出细节以及其为了操作而需要的特权的列举。因此,第一应用程序240具有相关 联的MIF文件241 ,且第二应用程序250具有相关联的MIF文件251 。
每一相应MIF文件进一步包含识别符或属性,其直接识别在多个处理器的哪一处 理器上执行应用程序或包含可用于确定在哪一处理器上执行应用程序的识别信息 ("proc属性")。例如,第一应用程序240具有MIF文件241,其包含指示第一应 用程序240需要较大处理功率的proc属性242。类似地,第二应用程序250具有MIF 文件251,其包含指示第二应用程序需要较少处理功率且可在低功率处理器上起到充 分作用的proc属性252。应注意数据在属性中的实际形式可采取许多形式。例如,设 想可通过处理器的计算性能、通过功率消耗或两者来大体分类处理器来形成处理器的 类别。以此方式,所述proc属性可仅识别最小需要的处理器而非直接识别在其上执行 应用程序的特定处理器。
操作系统(0/S)210经配置以组织及控制移动装置的硬件及软件。在此特定实施例 中,操作系统210包含调度器232及加载器235。调度器232管理可能正在移动装置 上执行的过程,且调度用于每一过程或线程的处理器时间。另外,调度器232经配置 以通过参考特定应用程序的proc属性来确定在哪一处理器上执行所述应用程序。为此, 调度器232经配置以直接或间接地从与所述应用程序相关联的MIF文件读取元信息, 以确定在哪一处理器上执行应用程序。加载器235经配置以将应用程序加载到过程中
并在调度器232的控制下开始在特定处理器上执行所述应用程序。在一个实施例中, 调度器232及加载器235以核执行模式或受保护执行模式操作。
在操作中,操作系统210例如经由系统呼叫从外壳(shell)接收执行第一应用程 序240的指令。此指令可能已由用户通过选择及启动用户接口或类似接口中的图标而 起始。在此特定实施例中,操作系统210接着询问本地存储装置以确定应用程序240 的位置。操作系统210读取应用程序240的MIF文件241,以识别应用程序240的执 行环境,例如当执行相关联应用程序时将在多处理器环境中使用哪一处理器。操作系 统210可从MIF文件241中提取proc属性242并将其与执行应用程序240的指令一起 传递到调度器232。
调度器接着根据应用程序的proc属性调度待加载到系统存储器180中并在特定处 理器上执行的应用程序。加载器接着将应用程序加载到所识别的存储器位置中。调度 器232及操作系统210使应用程序与处理器匹配的能力增加总系统功率利用效率。
在其它实施例中,当调度器232分别从应用程序(例如,第一应用程序240及第二 应用程序250)读取属性(例如,属性242及252)时,调度器232可不使应用程序与处理 器匹配,例如,在单处理器配置中,调度器232可简单地忽略proc属性且以常规方式 调度对应用程序的执行。类似地,在多处理器配置中,当通过属性识别的处理器不可 用时,调度器232基于其它准则(例如,对系统处理器的最有效使用)调度应用程序。 在又一实例中,在多处理器配置中,当应用程序未识别优选处理器时,调度器232可 以常规方式(例如,对系统处理器的最有效使用)调度应用程序。
图3是根据本发明的操作系统310的图形图解,操作系统310基于四个应用程序 的每一者的属性调度所述应用程序在两个处理器的每一者上的执行。如上所述,图3
中所示的实例性应用程序加载系统300可实施于移动装置101上。应用程序加载系统 300用于增加计算系统的总效率,应用程序加载系统300在所述计算系统内操作。这 通过识别及读取与应用程序相关联的属性(以上图2中所描述)来进行,所述属性指 令操作系统310在指定的处理器上执行应用程序。
在图3中,应用程序加载系统300包含第一处理器304、第二处理器306、操作 系统310、第一应用程序320、第二应用程序330、第三应用程序340及第四应用程序 350。第一处理器304 (其可以是ASIC上的处理器核心)是性能及功率相对高的处理 单元。相反,第二处理器306 (其可以是与第一处理器304相同ASIC上的另一处理器) 是比第一处理器304消耗较少功率的相对低性能处理单元。
在此实例中,第一应用程序320是本机用户接口(U/I)应用程序,第二应用程序330 是(例如)用于观看.mpeg文件或播放.wav文件的多媒体应用程序,第三应用程序340 是本机蜂窝式传输及/或接收应用程序及第四应用程序350是例如游戏等高速娱乐应用 程序。因此,己提前确定第一应用程序320及第三应用程序340将使用低功率处理器 实现可接受的性能水平。相反,也已确定第二应用程序330及第四应用程序350需要 高功率处理器来实现可接受的性能水平。因此,第一应用程序320及第三应用程序340
两者包含将第二处理器306识别为在其上执行所述应用程序的优选处理器的属性。类 似地,第二应用程序330及第四应用程序350两者包含将第一处理器304识别为在其 上执行所述应用程序的优选处理器的属性。
另外,如果由应用程序内的属性指定的处理器不可用,那么操作系统310基于其 它准则调度应用程序的执行。例如,为在低功率处理器的利用程度高时的周期期间实 现充足性能,操作系统310可调度其它低功率应用程序在高功率处理器上执行。然而, 应用程序内的属性未指定处理器时,操作系统310可基于其它准则(例如,常规负载 平衡或功率考虑)来调度应用程序,
图4是大体图解说明方法400的操作流程图,方法400用于为引导应用程序在多 处理器系统中的哪一处理器上执行提供支持。在一个实施例中,以图1-3的实例性操 作环境的组件实施方法400。优选地,方法400的一个或一个以上步骤体现于含有计 算机可读代码的计算机可读媒体中,以使得当计算机可读代码在计算装置上执行时实 施一系列步骤。在一些实施例中,同时或以不同次序组合、执行方法400的某些步骤, 此并不背离方法400的目标。
在步骤处410处,在操作系统处接收在多处理器系统内执行应用程序的请求。在 一个实施例中,操作系统例如经由系统呼叫从外壳接收执行应用程序的指令。在实例 中且参照以上图l,操作系统110经由媒体控制组件111从外壳接收执行应用程序112 中的一应用程序的指令,例如系统呼叫。
在步骤处420处,识别与应用程序相关联的属性。所述属性提供用于确定在多处 理器系统内的哪一处理器上执行应用程序的信息。在一个实施例中,通过操作系统的 组件来识别与应用程序相关联的属性。在实例中且参照以上图2,操作系统210识别 与第一应用程序240相关联的第一 proc属性242并将所识别属性的内容传递到调度器 232。
在步骤430处,基于所识别的属性调度应用程序以在所指定的处理器上执行。在 一个实施例中,调度器确定所识别的处理器当前是否正以可接受的利用率操作以支持 应用程序的执行。在实例中且参照以上图1及2,调度器232(在操作系统210及110 内)创建执行应用程序240的过程且接着调度所述过程以在第一处理器104上执行。
在步骤440处,响应于应用程序的调度加载应用程序。在一个实施例中,加载器 响应于调度器调度待加载的应用程序而将所述应用程序加载到存储器中。在实例中且 参照以上图1及2,加载器235响应于调度器232调度待加载的应用程序240而将应 用程序240加载到存储器108。
在步骤450处,使用所指定的处理器执行应用程序。在一个实施例中,调度器将 先前所识别的处理器的堆栈指针设定为含有应用程序的多部分的存储器位置。
有利地,上述系统及技术使移动装置能够在单个ASIC上具有两个处理器核心, 其中一个处理器核心的功率消耗要求低于另一处理器核心的功率消耗要求,且其中两 个处理器核心共享资源,例如RAM及操作系统组件。另外,安装在移动装置上的应
用程序可经调度而在将产生适当的功率及性能平衡的处理器上执行,而非基于调控哪 些应用程序在哪些处理器上运行的硬性规则。所述系统及技术在未必牺牲应用程序可 用性的情况下产生改进的电池寿命。
尽管已参照特定实施例及实施方案描述了本发明,但应理解,所述实施例仅是说 明性且本发明的范围并不限于所述实施例。可对上述实施例作出很多变化、修改、添 加及改进。本发明预期这些改变、修改、添加及改进均归属于在如下权利要求书中 所详细阐述的本发明范围内。
权利要求
1、一种用于在多处理器系统中执行应用程序的方法,其包括接收执行所述应用程序的请求;识别与所述应用程序相关联的属性,所述属性指定利用多个处理器中的哪一处理器来执行所述应用程序;基于所述识别的属性调度所述应用程序以供在所述指定的处理器上执行;及利用所述指定的处理器来执行所述应用程序。
2、 如权利要求1所述的方法,其中所述多个处理器包含高通量处理器及低通量 处理器。
3、 如权利要求2所述的方法,其进一步包括基于应用程序的通量处理需要, 指派与所述应用程序相关联的属性的步骤。
4、 一种用于在多处理器系统中处理应用程序的方法,其包括 接收处理所述应用程序的请求;识别与所述应用程序相关联的属性,所述属性指定利用多个处理器中的哪一处理 器来处理所述应用程序;及,利用所述指定的处理器来处理所述应用程序。
5、 如权利要求4所述的方法,其中所述多个处理器包含高通量处理器及低通量 处理器。
6、 如权利要求4所述的方法,其中所述应用程序是内容数据。
7、 一种移动装置,其包括 通信总线; 第一处理器; 第二处理器;至少一个存储器存储装置,其与所述处理器通信;及至少一个计算机可读存储器装置,其可由所述处理器读取,所述计算机可读存储 器装置包含经配置以致使所述处理器执行以下操作的一系列计算机可执行步骤 在操作系统处接收执行应用程序的请求;识别与所述应用程序相关联的属性,所述属性识别在多个处理器中的哪一处理 器上执行所述应用程序;基于所述识别的属性调度所述应用程序以供在所述指定的处理器上执行;及 在所述指定的处理器上执行所述应用程序。
8、 一种移动装置,其包括 通信总线; 第一处理器; 第二处理器;至少一个存储器存储装置,其与所述处理器通信;及至少一个计算机可读存储器装置,其可由所述处理器读取,所述计算机可读存储 器装置包含经配置以致使所述处理器执行以下操作的一系列计算机可执行步骤 在操作系统处接收处理应用程序的请求;识别与所述应用程序相关联的属性,所述属性识别在多个处理器中的哪一处理 器上处理所述应用程序;及在所述指定的处理器上处理所述应用程序。
9、 如权利要求8所述的移动装置,其中所述第一处理器具有与所述第二处理器 不同的处理通量。
10、 如权利要求8所述的移动装置,其中所述应用程序是内容数据。
11、 一种计算机可读媒体,其存储用以在多处理器系统中执行应用程序的计算机 程序,其包括用以接收执行所述应用程序的请求的计算机可读代码;用以识别与所述应用程序相关联的属性的计算机可读代码,所述属性指定使用多 个处理器中的哪一处理器来执行所述应用程序;用以基于所述识别的属性调度所述应用程序以供在所述指定的处理器上执行的 计算机可读代码;用以响应于所述应用程序的所述调度加载所述应用程序的计算机可读代码;及 用以响应于所述应用程序的所述加载而利用所述指定的处理器执行所述应用程 序的计算机可读代码。
12、 一种计算机可读媒体,其存储用以在多处理器系统中处理应用程序的计算机 程序,其包括用以接收处理所述应用程序的请求的计算机可读代码;用以识别与所述应用程序相关联的属性的计算机可读代码,所述属性指定使用多 个处理器中的哪一处理器来执行所述应用程序;用以基于所述识别的属性调度所述应用程序以供在所述指定的处理器上处理的 计算机可读代码。
13、 如权利要求12所述的计算机可读媒体,其中所述应用程序是内容数据。
14、 一种用于在多处理器系统中执行应用程序的装置,其包括 用于接收执行所述应用程序的请求的装置;用于识别与所述应用程序相关联的属性的装置,所述属性指定利用多个处理器中 的哪一处理器来执行所述应用程序;用于基于所述识别的属性调度所述应用程序以供在所述指定的处理器上执行的 装置;及用于在所述指定的处理器上执行所述应用程序的装置。
15、 一种用于在多处理器系统中处理应用程序的装置,其包括 用于接收处理所述应用程序的请求的装置;用于识别与所述应用程序相关联的属性的装置,所述属性指定利用多个处理器中 的哪一处理器来执行所述应用程序;用于在所述指定的处理器上处理所述应用程序的装置。
16、 如权利要求15所述的装置,其中所述应用程序是内容数据。
全文摘要
本发明描述用于在多处理器系统中提供应用程序支持的方法及机构,其包含接收执行应用程序的请求;识别与所述应用程序相关联的属性,所述属性指定利用多个处理器中的哪一处理器来执行所述应用程序;基于所述识别的属性来调度所述应用程序以供在所述指定的处理器上执行;响应于所述应用程序的所述调度加载所述应用程序;及利用所述指定的处理器执行所述应用程序。
文档编号G06F9/50GK101385000SQ200780005335
公开日2009年3月11日 申请日期2007年2月16日 优先权日2006年2月17日
发明者保罗·E·雅各布斯, 斯蒂芬·A·斯普里格 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1