执行在具有不同指令集架构的处理器上的操作系统的制作方法

文档序号:9355163阅读:1016来源:国知局
执行在具有不同指令集架构的处理器上的操作系统的制作方法
【专利说明】执行在具有不同指令集架构的处理器上的操作系统
[0001]对相关串请案的交叉参考
[0002]本申请案主张2013年2月26日申请的共同拥有的美国非临时专利申请案第13/777,314号的优先权,其内容明确地被以引用的方式全部并入本文中。
技术领域
[0003]本发明大体上与多处理器装置处的操作系统的执行有关。
【背景技术】
[0004]技术进展已经产生更小且更强大的计算装置。例如,当前存在多种便携式个人计算装置,包含无线计算装置,例如,便携式无线电话、个人数字助理(PDA)、平板计算机和寻呼装置,其体积小,重量轻,且易于由用户携带。许多此类计算装置包含并入于其中的其它装置。例如,无线电话还可包含数字静态相机、数码摄像机、数字记录器和音频文件播放器。并且,此类计算装置可处理可执行指令,包含软件应用程序,例如,可用以访问互联网的网络浏览器应用程序,和利用静态相机或摄像机并提供多媒体播放功能性的多媒体应用程序。因而,这些装置可执行通常由例如桌上型计算机的较大装置执行的功能。
[0005]—些电子装置可包含多个处理器。例如,移动电话可包含中央处理单元(CPU)(有时被称作应用程序处理器)和数字信号处理器(DSP)。每一处理器可比其它处理器更好地适合于执行某些计算任务。例如,可充当主要处理器且可执行移动电话操作系统的CPU可在执行“控制码”(例如,网络浏览器和电子表格代码)中更有效率。另一方面,当执行信号处理和其它数学集中性功能时,DSP可比CPU更有效率。
[0006]不同处理器可针对不同工作负荷优化且可具有不同架构(例如,指令集)。例如,电话可包含根据第一架构实施的CPU,和根据第二架构实施的DSP。因为不同处理器具有不同架构,所以每一处理器可执行其自身的操作系统。即使在处理器上执行同一操作系统,每一处理器仍充当执行其自身的操作系统实例的单独机器。归因于架构的差异,两个操作系统实例可能不能够共享数据和相互分担处理任务。另外,存储器是从每一环境来分派,而非从共享池。
[0007]随着移动应用程序变得更复杂,某些应用程序或其线程可能更好地适合于CPU执行或DSP执行。然而,因为CPU与DSP执行不同操作系统,所以可强迫电话执行仅CPU或仅DSP上的应用程序(和其每一线程)。结果,移动应用程序常规地是针对CPU开发,且并不试图充分利用例如DSP的其它可用处理器的处理能力。
[0008]在个人计算领域,一些软件供应商已尝试通过提供“通用” 二进制(也被称作“丰满”二进制)来解决不同架构在不同计算机中的使用。通常,通用二进制包含用于多个架构中的每一者的同一软件的不同版本。在于特定计算机处的通用二进制的安装或执行期间,基于所述特定计算机的架构识别和安装或执行软件的恰当版本。然而,因为仅单一架构存在于每一计算机上,所以通用二进制不提供使用具有不同架构的处理器同时执行同一软件实例的方式。此外,可能难以实施和处理将在处理器之间共享的数据结构。

【发明内容】

[0009]揭示同时执行在具有不同架构的多个处理器上的软件(例如,操作系统)的同一实例的系统和方法。例如,基于本发明,可在移动电话的CPU上执行游戏的图形和用户接口(UI)线程,而在移动电话的DSP上执行游戏的多媒体处理线程,即使CPU与DSP具有不同指令集架构。根据描述的技术,CPU代码和DSP代码可显得如同存在于对称性多处理(SMP)机器上。因此,可共享数据结构和通信基元,且可利用跨不同架构的多线程。
[0010]根据第一实施方案,可在能够存取多个处理器的单一操作系统实例内提供操作系统函数(例如,核心代码)的多个版本。例如,操作系统可能能够存取一或多个函数中的每一者的第一版本和第二版本,其中第一版本是使用CPU的指令集实施且第二版本是使用DSP的指令集实施。应了解,因为函数的两个版本将在运行时间可用,所以可对应用程序开发者提供设计用于在可用架构中的一或多者上执行的应用程序(和其个别线程或部分)的机会。
[0011]此外,操作系统的调度程序可经配置以确定特定代码是否希望(或应)由CPU或由DSP执行。存储器(例如,虚拟和/或物理地址空间)和核心数据结构可由处理器和在其上执行的代码共享。在一个实施方案中,可将对操作系统的DSP请求传递到CPU,且接着可将处理结果发送回到DSP,或反之亦然。此外,同一任务(S卩,软件线程)的不同部分可由不同处理器执行。
[0012]根据第二实施方案,DSP代码可运行“远程”操作系统环境。在DSP处发生的操作系统事件(例如,页面故障、例外、系统请求、陷阱等)可由CPU处置。因此,即使任务显得在DSP环境中运行,操作系统请求仍可实际上由CPU环境来处置。
[0013]在特定实施例中,一种方法包含执行第一处理器(例如,DSP)上的第一代码。所述方法还包含在执行所述第一代码时,执行操作系统事件。所述方法进一步包含在执行所述操作所述方法进一步包含在执行所述操作系统事件后,暂停所述第一代码的执行且起始在第二处理器(例如,CPU)上的第二代码的执行,所述第二代码用以处置所述操作系统事件。所述方法包含在完成处置所述操作系统事件的所述第二代码的执行后,暂停所述第二代码且恢复在所述第一处理器(例如,所述DSP)上的所述第一代码的执行。
[0014]在另一特定实施例中,一种设备包含具有第一指令集的第一处理器。所述设备还包含具有第二指令集的第二处理器,所述第二指令集不同于所述第一指令集。所述设备进一步包含存储器,其存储可同时在所述第一处理器与所述第二处理器上执行的操作系统的至少一部分。
[0015]在另一特定实施例中,一种方法包含在操作系统的调度程序处接收调度用于执行的任务的请求。所述操作系统可同时在具有第一架构的第一处理器和具有第二架构的第二处理器上执行。所述方法还包含响应于确定所述任务可用于使用所述第一处理器上的所述第一架构和使用所述第二处理器上的所述第二架构执行,基于至少一个选择准则在所述第一处理器上调度所述任务。所述方法进一步包含在所述任务的执行期间,将所述任务的执行从所述第一处理器切换到所述第二处理器。
[0016]在另一特定实施例中,一种设备包含用于处理与第一指令集相关联的指令的第一装置。所述设备还包含用于处理与第二指令集相关联的指令的第二装置。所述设备进一步包含用于存储操作系统的至少一部分的装置,所述操作系统可同时在所述用于处理的第一装置与所述用于处理的第二装置上执行。
[0017]在另一特定实施例中,一种非暂时性计算机可读媒体包含操作系统的单一实例。所述操作系统的所述单一实例包含当在包含第一处理器和第二处理器的电子装置处执行时引起所述操作系统在所述第一处理器与所述第二处理器上的同时执行的指令。所述第一处理器与第一指令集架构相关联,且所述第二处理器与不同于所述第一指令集架构的第二指令集架构相关联。
[0018]在另一特定实施例中,一种设备包含存储器,其可由与第一指令集架构相关联的第一处理器和由与第二指令集架构相关联的第二处理器存取。所述存储器存储至少一个数据结构。所述数据结构包含经编译以在所述第一指令集架构上执行的第一函数的第一位置识别符。所述数据结构还包含经编译以在所述第二指令集架构上执行的第二函数的第二位置识别符。
[0019]由所揭示实施例中的至少一者提供的一个特定优势为同时执行在具有不同架构的多个处理器上的操作系统的单一实例和与操作系统相关联的应用程序/线程的能力。例如,操作系统代码和/或应用程序代码可基于选择标准(例如,哪一处理器负荷最少,哪一处理器最适合于执行那个类型的代码等)来调度以用于在多个可用处理器中的特定处理器上执行。由所揭示实施例中的至少一者提供的另一优势为应用程序开发者开发可充分利用传统上不用于第三方应用程序的处理器(例如,DSP)的计算能力的应用程序的能力。在审阅全部申请案后,本发明的其它方面、优点和特征将变得显而易见,所述全部申请案包含以下章节:【附图说明】、【具体实施方式】和权利要求书。
【附图说明】
[0020]图1为说明可操作以支持在具有不同架构的多个处理器上的操作系统的单一实例的执行的系统的特定实施例的图;
[0021]图2为说明图1的操作系统数据结构的特定实施例的图;
[0022]图3为说明执行在具有不同架构的多个处理器上的操作系统的单一实例的方法的特定实施例的流程图;
[0023]图4为说明执行在具有不同架构的多个处理器上的操作系统的单一实例的方法的另一特定实施例的流程图;和
[0024]图5为包含可操作以支持在具有不同架构的多个处理器上的操作系统的单一实例的执行的组件的无线装置的框图。
【具体实施方式】
[0025]图1为可操作以支持在具有不同架构(替代地被称作“指令集架构(ISA)”或“指令集”)的多个处理器上的操作系统的单一实例的同时执行的系统100的说明性实施例的图。例如,在图1的系统100中,操作系统(0/S) 104和与其相关联的组件/应用程序可同时在具有第一 ISA的第一处理器110和具有第二 ISA的第二处理器112上执行。应注意,虽然在图1中展示两个处理器,但这只为了说明。本文中描述的技术可用于包含两个以上处理器的系统中。
[0026]在特定实施
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1