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

文档序号:9355163阅读:来源:国知局
例中,处理器110、112中的至少一者可为中央处理单元(CPU),例如,经配置以执行与CPU指令集相关联的指令的CPU。例如,CPU可具有多个执行核心(例如,双核CPU、四核CPU等)。在多处理器电子装置(例如,移动计算装置,例如移动电话)中,(PU可负责和/或较好地适合于执行控制码,例如,输入/输出(I/O)代码、用户接口(U/I)代码、浏览器代码、电子表格代码等。例如,当移动电话执行包含U/I任务(或线程)和多媒体处理任务(或线程)的游戏时,CPU可在执行U/I任务时比在执行多媒体处理任务时更有效率地执行。
[0027]在特定实施例中,处理器110、112中的至少一者可为数字信号处理器(DSP),例如,经配置以执行与DSP指令集相关联的指令的处理器。例如,DSP可具有多个硬件线程,且可支持动态交错的多线程处理和实时处理。在多处理器电子装置(例如,移动电话)中,DSP可负责和/或较好地适合于执行无线信号处理功能和数学集中性代码。例如,当移动电话执行包含U/I任务(或线程)和多媒体处理任务(或线程)两者的游戏时,DSP可在执行多媒体处理任务时比在执行U/I任务时更有效率地执行。
[0028]应注意,可结合描述的技术使用各种处理器组合。在一个实例中,系统100可包含属于相同类型但具有不同指令集的多个处理器。为了说明,两个处理器110、112可为CPU,但CPU的ISA可不同。替代地,两个处理器110、112可为DSP,但DSP的ISA可不同。在另一实例中,处理器110、112中的一者可为CPU,且处理器110、112中的另一者可为DSP。不同于CPU和DSP的处理器也可存在于系统100中。其它类型或处理器可包含(但不限于)网络处理单元(NPU)、图形处理单元(GPU)等。也应注意到,虽然本文中的描述提及CPU型架构和DSP型架构,但这只是举例来说。可结合描述的技术使用各种架构/指令集。不同架构可支持不同函数、不同操作码、针对共同函数的不同类型和数目的论断等。
[0029]系统100可包含数据存储能力。数据存储装置可包含易失性存储器(例如,随机存取存储器(RAM)、基于寄存器的存储器或基于高速缓冲存储的存储器)和/或非易失性存储器(例如,硬盘)。在图1的实施例中,系统100包含存储器116。如本文进一步描述,存储器116可为“相干”存储器,其存储至少一个操作系统数据结构118以支持操作系统104跨处理器110、112的同时执行。例如,操作系统数据结构118可包含锁定、调度队列和函数指针的表,如进一步参看图2所描述。
[0030]操作系统104可通常可操作以在系统100处执行系统层级(例如,核心层级)函数。例如,操作系统104可执行阻塞/解除阻塞,且可提供针对硬件资源(例如,处理器110、112和存储器116)的抽象化和对所述硬件资源的多路复用存取。除了提供系统层级功能性夕卜,操作系统104可支持一或多个应用程序(例如,用户模式应用程序)的执行。例如,应用程序102可为由用户或管理员安装在系统100处的第三方应用程序。
[0031]操作系统104可包含一或多个模块或逻辑块来执行操作系统功能。例如,操作系统104可包含调度程序106和事件处置程序107。调度程序106可经配置以调度在处理器110、112处的任务的执行,且事件处置程序107可经配置以处置(例如,响应)操作系统事件。在特定实施例中,操作系统104可包含防止处理器110、112中的任一者修改正使用的操作系统状态(例如,存储器116中的数据)或处理器110、112中的另一者可依赖于的防护或控制。
[0032]响应于接收到执行特定任务114的请求(例如,来自操作系统104或应用程序102),调度程序106可确定特定任务114支持(例如,可用于使用以下各者来执行)第一处理器110的第一指令集、第二处理器112的第二指令集还是两者。在特定实施例中,确定任务是否支持特定指令集包含确定系统100是否能够存取对应于正使用特定指令集的指令表示的所述任务(和任何相关联的子例程、操作系统调用等)的代码。当调度程序106确定请求的任务114支持指令集中的仅一者时,调度程序106可调度请求的任务114,以用于在对应的支持的处理器110或112上执行。
[0033]当调度程序106确定请求的任务114支持多个指令集/多个处理器时,调度程序106可选择在其上调度任务114以供执行的特定处理器。在选择在其上调度任务114的特定处理器110、112后,调度程序106可提供系统调用以开始使用对应的指令集的任务。
[0034]在特定实施例中,调度程序106可在选择特定处理器时使用选择准则108。选择准则108可包含负荷最小的处理器的识别。例如,调度程序106可选择处理器110、112中的负荷最小的在其上调度任务114,以达成负荷平衡。替代地或此外,选择准则108可包含任务的类型。例如,调度程序106可调度CPU上的U/I任务,且可调度DSP上的数学集中性任务。替代地,或此外,选择准则108可包含与任务114相关联的最低功耗的识别。例如,调度程序106可调度将在执行任务114时消耗最少量的功率的处理器110或112上的任务114,由此减少系统100处的总功率消耗。其它选择准则也可由调度程序106使用。
[0035]在特定实施例中,当任务114支持第一处理器110的第一指令集和第二处理器112的第二指令集两者时,调度程序106可经配置以将任务的执行从处理器110、112中的一者切换到另一者。此外,此动态切换可在任务114的执行期间且明显地关于系统的较高阶组件(例如,应用程序102)执行。例如,任务114可从第一处理器110 “迀移”(例如,使用系统调用)到第二处理器112,或反之亦然,如在120处所展示。此迀移可至少部分因能够存取同一相干存储器116和存储于其上的操作系统数据结构118的第一处理器110和第二处理器112而使得成为可能。应了解,动态迀移支持多个指令集的任务的能力可释放用于仅支持一个指令集的任务的处理资源。
[0036]应注意,虽然前文描述任务的调度和迀移,但也可在图1的系统100处执行子任务的调度和迀移。例如,可分别在CPU、DSP和GPU处同时调度和执行I/O任务/线程、多媒体处理任务/线程和游戏的图形任务/线程。调度恰当处理器上的任务可增加效率且减少在图1的系统100处的功率消耗。因此,当将系统100集成到电池供电的装置(例如,移动电话)内时,系统100可导致增加的性能和电池寿命。例如,用户可能能够在其移动电话上比游戏只在CPU上运行的情况更长地打游戏,而不需要对移动电话充电。
[0037]操作期间,操作系统104、其任务(例如,任务114)和/或与其相关联的应用程序(例如,应用程序102)可在处理器110、112中的一或两者上执行,即使处理器110、112具有不同架构。例如,根据在图1的系统100处的操作的第一实施例,处理器110、112中的一者可为“主”处理器,且另一处理器可为“次”处理器。在此实施例中,可将从次处理器到操作系统的请求传递到主处理器,且可将处理结果发送回到次处理器。
[0038]为了说明,主处理器可为CPU,且次处理器可为DSP。DSP可执行“远程”操作系统环境。在第一代码(例如,DSP特定代码)的执行期间,DSP可检测和/或执行操作系统事件。操作系统事件可为使执行的流程从操作系统的用户模式切换到操作系统的核心模式的事件。操作系统事件的实例包含(但不限于)页面故障、陷阱、系统故障、系统请求(例如,与例如互斥量或信号量的同步目标相关联)、硬件错误(例如,总线错误)、地址错误、权限违反等。DSP可依赖于CPU处置操作系统事件。例如,在执行操作系统事件后,DSP可暂停第一代码的执行,且可起始CPU上的第二代码的执行,其中第二代码经配置以处置操作系统事件。在特定实施例中,在CPU处的事件处理代码的起始是使用处理器间消息传递、由调度程序106、使用相干存储器116、使用应用程序编程接口(API)或其任何组合来执行。因此,处理器110、112中的每一者可经配置以在执行代码的同时和/或在暂停的同时与处理器110、112中的另一者通信。在CPU处的事件处理代码可处置操作系统事件,且可将任何执行结果提供到DSP。在完成事件处理后,事件处置程序可在CPU处暂停,且可在DSP处恢复DSP代码。
[0039]根据在图1的系统100处的操作的第二实施例,操作系统104可包含操作系统例程、模块和函数的多个版本。例如,当第一处理器110为CPU且第二处理器112为DSP时,操作系统104的单一实例可包含一或多个例程、模块和函数中的至少两个版本--在CPU的
ISA的指令中表示的第一版本和在DSP的ISA的指令中表示的第二版本。在此实施例中,调度程序106可自由地调度在处理器110或112上的应用程序102 (或其组件),这是因为操作系统104具有响应由应用程序102使用处理器进行的操作系统调用的能力。
[0040]图1的系统100可因此实现在具有不同架构的多个处理器上的操作系统104、其组件和与此相关联的应用程序的同时执行。此可增加效率且减少在图1的系统100处的功率消耗。图1的系统100也可使应用程序开发者能够开发充分利用传统上并不用于第三方应用程序的处理器(例如,DSP)的能力的应用程序。这可使图1的系统100比不支持跨具有不同架构的处理器的动态应用程序调度和数
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1