内核中的两个或更多个内核之间分配用于进行处理的一个或多个应用或程序。
[0068]CPU 110可以从可包括软件和/或硬件的TPM模块101和/或MAM模块207接收命令。如果体现为软件,TPM模块101和/或MAM模块207包括由向由CPU 110执行的指令,CPU 110向由CPU 110和其它处理器执行的其它应用程序发布命令。
[0069]CPU 110的第一内核222、第二内核224至第N内核230可以集成在单个集成电路裸片(die)上,或者它们可以集成或耦合在多个电路封装中的单独的裸片上。设计者可以经由一个或多个共享高速缓冲存储器来耦合第一内核222、第二内核224至第N内核230,并且它们可以经由诸如总线、环、网(mesh)和交叉开关(crossbar)拓扑结构的网络拓扑结构来实现消息或指令传送。
[0070]如本领域中已知的:总线211可以包括经由一个或多个有线或无线连接的多个通信路径。总线211可以具有能够用来进行通信的额外的单元(为了简单起见而省略了),诸如控制器、缓冲器(高速缓冲存储器)、驱动器、转发器和接收机。此外,总线211可以包括能够在上述组件之间进行合适的通信的地址、控制和/或数据连接。
[0071]当由PCD 100使用的逻辑单元在软件中实现时(如图5B中所示),应该指出的是:启动逻辑单元250、管理逻辑单元260、模态工作负载分配接口逻辑单元270、应用存储280中的应用以及文件系统290的一些部分中的一个或多个可以存储在任何计算机可读介质上,用于由任何计算机相关的系统或方法使用或者与之结合。
[0072]在本文档的上下文中,计算机可读介质是可以包含或存储由计算机相关的系统或方法使用或者与之结合的计算机程序和数据的电子的、磁的、光的或其它物理设备或单元。各种逻辑元件和数据存储可以体现在任何计算机可读介质中,用于由指令执行系统、装置或设备(诸如基于计算机的系统、处理器包含的系统,或可以从指令执行系统、装置或设备取回指令并执行这些指令的其它系统)使用或与之结合。在本文档的上下文中,“计算机可读介质”可以是可以存储、传送、传播或传输用于由指令执行系统、装置或设备使用或与之结合的程序的任何单元。
[0073]计算机可读存储介质可以是,例如但不限于:电子的、磁的、光的、电磁的、红外的或半导体系统、装置、设备,或传播介质。计算机可读介质的更具体的示例(非穷举列表)将包括下列各项:具有一条或多条线的电连接(电子的)、便携式计算机磁盘(磁的)、随机存取存储器(RAM)(电子的)、只读存储器(ROM)(电子的)、可擦除可编程只读存储器(EPR0M、EEPROM或闪存)(电子的)、光纤(光的)以及便携式压缩盘只读存储器(CDROM)(光的)。注意:计算机可读介质甚至可以是纸或在其上对程序进行印刷的另一种合适的介质,因为程序可以通过电的方式捕捉(例如,经由对纸或其它介质的光学扫描),然后进行编译、解释或者如果必要的话用合适的方法以其它方式处理,并且然后存储在计算机存储器中。
[0074]在启动逻辑单元250、管理逻辑单元260以及可能模态工作负载分配接口逻辑单元270实现为硬件的替换实施例中,各个逻辑单元可以用下列技术(每项技术都是本领域公知的)中的任何技术或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门的分立逻辑电路、其具有合适的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(PGA)、现场可编程门阵列(FPGA)等。
[0075]存储器112是诸如闪存器或固态存储器设备的非易失性数据存储设备。虽然被描绘为单个设备,但存储器112可以是耦合到数字信号处理器110 (或额外的处理器内核)的具有单独数据存储的分布式存储器设备。
[0076]启动逻辑单元250包括用于基于操作模式来选择性识别、加载和执行用于确定操作模式和选择可用于工作负载分配的内核(诸如第一内核222、第二内核224至第N内核230)中的一个或多个内核的选择程序的一个或多个可执行指令。管理逻辑单元260包括用于终止基于模式的工作负载分配程序以及选择性地识别、加载和执行更合适的替代程序的一个或多个可执行指令。管理逻辑单元260被安排为在运行时或者在PCD 100加电并由设备操作者使用时执行这些功能。可以在嵌入式文件系统290的程序存储296中找到替代程序。
[0077]当替代程序由数字信号处理器中的内核处理器中的一个或多个内核处理器执行时,其可以根据由TPM模块101、MAM模块207和监测器模块114提供的一个或多个信号来操作。在这一方面,模块114可以响应于源自TPM 101或MAM模块207的控制信号来提供事件、过程、应用、资源状态条件、流逝时间、温度等的一个或多个指示符。
[0078]接口逻辑单元270包括用于呈现、管理外部输入以及与外部输入进行交互,以便对存储在嵌入式文件系统290中的信息进行观察、配置或以其它方式更新的一个或多个可执行指令。在一个实施例中,接口逻辑单元270可以结合经由USB端口 142接收的制造商输入来进行操作。这些输入可以包括将要从程序存储296删除或向程序存储296添加的一个或多个程序。或者,这些输入可以包括对程序存储296中的程序中的一个或多个程序的编辑或改变。此外,这些输入可以标识对启动逻辑单元250和管理逻辑单元260中的一个或二者的一个或多个改变,或者对其的整体替换。通过举例的方式,输入可以包括对管理逻辑单元260的改变,所述管理逻辑单元260在视频编解码器134活动时指示MAM模块207将操作模式识别为HPP模式。
[0079]接口逻辑单元270使得制造商能够在PCD 100上定义的操作条件下对端用户的体验进行可控的配置和调整。当存储器112是闪存器时,可以对下列各项中的一个或多个进行编辑、替换或其它方式的修改:启动逻辑单元250、管理逻辑单元260、接口逻辑单元270、应用存储280中的应用程序或嵌入式文件系统290中的信息。在一些实施例中,接口逻辑单元270可以允许P⑶100的端用户或运营商对启动逻辑单元250、管理逻辑单元260、应用存储280中的应用程序和嵌入式文件系统290中的信息进行搜索、定位、修改或替换。运营商可以使用所得到的接口进行将在PCD 100的下一次启动时实现的改变。或者,运营商可以使用所得到的接口进行在运行时间期间所实现的改变。
[0080]嵌入式文件系统290包括分层排列的内核特性数据存储24。在这一方面,文件系统290可以包括用于与各个内核222、224、226、228的性能特性相关联的信息的存储的其总文件系统容量的保留的部分。
[0081]图6是示出用于P⑶100中的异构的处理组件之间的基于模式的工作负载重新分配的方法600的实施例的逻辑流程图。在图6的实施例中,每个个体处理组件(诸如内核222、224、226、228)的性能特性在框605处表征并存储在CC数据存储24中。值得注意的是,如上所述,多核、异构SoC中的各个处理组件的个体性能特性是独特的。也就是说,某些处理组件可以表现出比相同SoC中的其它处理组件要高的处理频率。此外,某些其它处理组件可以表现出比其它处理组件要低的功率泄漏率。优选地,运行并实现基于模式的重新分配算法的MAM模块207可以利用异构的处理组件的性能特性的固有差异来向被装备得最好的用于处理与操作目标(诸如功率节省或高处理速度)一致的工作负载的特定处理组件分配或重新分配工作负载。
[0082]一旦确定了各个处理内核222、224、226、228的性能特性,在框610处可以对这些内核评级,并针对它们各自的性能强度来对其进行识别。例如,再次参考图1和图3,可以将内核226识别为具有最快处理频率的内核(例如图1的内核O)。类似地,可以将内核222识别为具有最低泄漏率的内核(例如图1的内核3)。以这种方式,可以根据性能特性对这些内核中的每个内核相对于其对等体来进行评级。
[0083]在框615处,MAM模块207结合监测器模块114来跟踪异构内核222、224、226、228之间的活动工作负载分配。在框620处,监测器模块114对各个模式决策条件(诸如但不限于图2中概述的条件)进行轮询。基于在框620处对模式决策条件的轮询,识别出的条件由监测器模块114和/或MAM模块207基于优先级来进行调和。随后,在决策框630处,利用经调和的模式决策条件来确定PCD 110的操作模式。操作模式继而可以触发MAM模块207来在子例程635处在异构内核222、224、226、228之间重新分配工作负载。如上所述,MAM模块207对工作负载的重新分配是基于在框605和610处确定的性能特性的评级的。在工作负载重新分配之后,该过程返回框615,并且活动工作负载受到监测直到活动工作负载的变化或操作模式的变化使随后的重新分配成为必需。
[0084]转到图7,基于模式的工作负载重新分配子例程635在决策框630之后开始。如果决策框630确定rcD 110处于高性能处理模式,那么接下来进行“HPP”分支。然而,如果决策框630确定PCD 110处于功率节省模式,那么接下来进行“PS”分支。
[0085]跟随着在决策框630之后的HPP分支,子例程635移动到框640。在框640处,识别出在框605和610处确定的表现出最高处理频率能力的内核。例如,暂时地参考回图1的图示,这些内核根据最高处理频率性能的评级顺序将是内核O和内核1,随后是内核2,然后是内核3。接下来,在框645处,按照来自MAM模块207的指示对处理内核222、224、226、228上的活动工作负载进行重新分配,从而使得向具有最高最大处理频率的内核分配工作负载任务。该过程返回图6的框615。
[0086]跟随着在决策框630之后的PS分支,子例程635移动到框650。在框650处,识别出在框605和610处确定的表现出最低功率泄漏特性的内核。例如,暂时地参考回图1的图示,这些内核根据最低功率泄漏性能的评级顺序将是内核3和内核1,随后是内核2,然后是内核O。接下来,在框655处,按照来自MAM模块207的指示对处理内核222、224、226、228上的活动工作负载进行重新分配,从而使得向具有最低功率泄漏的内核分配工作负载任务。该过程返回图6的框615。
[0087]为了本发明如所述那样运作,本说明中描述的过程或过程流中的某些步骤自然地先于其它步骤。然而,本发明并不局限于所描述的步骤的次序,如果这种次序或顺序并不改变本发明的功能的话。也就是说,应该认识到:在不脱离本发明的范围和精神的前提下,一些步骤可以在其它步骤之前、之后或与其它步骤并行(基本上同时)执行。在某些情况下,可以在不脱离本发明的情况下省略或不执行某些步骤。此外,诸如“此后”、“然后”、“接下来”等等的词并不旨在限制这些步骤的次序。这些词语只是用于通过示例性方法的描述来引导读者。
[0088]另外,编程领域的普通技术人员能够写计算机代码或识别合适的硬件和/或电路,以便例如基于本说明中的流程图和相关联的描述没有困难地实现所公开的发明。因此,特定集合的程序代码指令或详细硬件设备的公开不应该被认为是要充分理解怎样实现和使用本发明所必要的。在上文的描述中并且结合可以示出各个处理流的附图更详细地解释了所要求保护的计算机实现的过程的创造性功能。
[0089]在一个或多个示例性方面中,本文中所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。如果用软件实现,则