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

文档序号:9355163阅读:来源:国知局
系统事件后,暂停第一代码的执行且起始在第二处理器上的第二代码的执行。第二代码可经配置以处置操作系统事件。第二处理器可为多核心CPU。例如,在执行操作系统事件后,图1的第一处理器110可暂停第一代码的执行,且可引起在图1的第二处理器112上的第二代码的执行。
[0058]方法300可包含在308,在完成处置操作系统事件的第二代码后,暂停第二代码且恢复第一处理器上的第一代码的执行。例如,可暂停在图1的第二处理器112处的第二代码的执行,且可恢复在图1的第一处理器110处的第一代码的执行。
[0059]图3的方法300可因此使“次”处理器执行“远程”操作系统环境,且依赖于“主”处理器处置操作系统事件。例如,即使代码可能已被写入且针对执行特定操作系统的CPU编译,所述代码仍可在与CPU —起运行特定操作系统的DSP上执行,且DSP可依赖于用于事件处理和其它操作系统任务的CPU。从过程在DSP上运行的角度看来,如果所述过程正在CPU上运行那么将已可用的设施/服务可仍为可用的。
[0060]在特定实施例中,图3的方法300可由DSP、CPU、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置或其任何组合来实施。作为实例,图3的方法300可由执行指令的处理器执行,如关于图5所描述。
[0061]图4为说明执行在具有不同架构的多个处理器上的操作系统的单一实例的方法400的另一特定实施例的流程图。在说明性实施例中,方法400可由图1的系统100执行,且可参照图2的函数和表来描述。
[0062]方法400可包含在402,在操作系统的调度程序处接收调度用于执行的任务的请求。操作系统可同时在具有第一架构的第一处理器和具有第二架构的第二处理器上执行。例如,在图1中,调度程序106可接收调度用于执行的任务114的请求。
[0063]方法400还可包含在404确定所述任务是否支持多个指令集。例如,在图1中,调度程序106可确定任务114是否支持第一处理器110的第一指令集和第二处理器112的第二指令集两者。当所述任务支持单一指令集时,方法400可包含在406调度和开始在具有支持的指令集的处理器上的任务。
[0064]当任务支持多个指令集时,方法400可包含在408调度在支持的处理器中的一者上的任务,且在410,开始使用调度的处理器的指令集的任务。可基于选择准则(例如,负荷最少的处理器、任务的类型、与任务相关联的最低功耗等)来选择调度的处理器。例如,在图1中,调度程序106可基于选择准则108调度用于在第一处理器110上执行的任务114,且可产生系统调用以开始使用第一指令集的任务114。
[0065]方法400还可包含在412,在任务的执行期间,将任务的执行切换到其它处理器和到其它指令集。例如,在图1中,在第一处理器110上的任务114的执行期间,可将任务114的执行切换到第二处理器112,如在120处所展示。
[0066]在说明性实施例中,切换任务的执行可包含在414进行第一处理器上的系统调用以将任务的执行切换到其它指令集。继续进行到416,可从第一处理器(即,在410处使用的调度的处理器)的调度去除任务。前进到418,可将任务添加到第二处理器(即,与其它指令集相关联的另一处理器)的调度。继续到420,方法400可包含从具有第二指令集的第二处理器上的系统调用返回。
[0067]图4的方法400可因此实现根据可改良在多ISA系统处的执行性能、资源使用和/或功率消耗的选择准则在这些系统处的任务的动态调度。
[0068]在特定实施例中,图4的方法400可由DSP、CPU、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置或其任何组合来实施。作为实例,图4的方法400可由执行指令的处理器执行,如关于图5所描述。
[0069]参看图5,展示电子装置500的框图。在特定实施例中,电子装置500或其组件可包含在机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元、计算装置或其任何组合中。
[0070]电子装置500包含耦合到存储器532的CPU 510和DSP 574。CPU 510可包含多个核心(例如,第一核心570和第二核心572)且DSP 574可包含多个硬件线程(例如,第一硬件线程576和第二硬件线程578)。虽然在图5中展示两个核心和两个硬件线程,但应注意,也可使用具有不同数目个核心和/或硬件线程的其它配置。
[0071]图5包含耦合到CPU 510和显示器528的显示控制器526。译码器/解码器(编码解码器)534可耦合到CPU 510和DSP 574。扬声器536和麦克风538可耦合到编码解码器534。图5还指示无线控制器540可耦合到DSP 574和天线542 (例如,经由射频(RF)接口)。因此,在图5的实施例中,CPU 510可用以执行显示功能,DSP 574可用以执行无线信号处理功能,且CPU 510和DSP 574皆可能能够执行音频I/O功能。
[0072]存储器532可为包含可执行指令556的有形非暂时性计算机可读或处理器可读存储媒体。例如,存储器532可存储图1的操作系统104和/或其组件(例如,图1的调度程序106、图1的事件处置程序107和图1的选择准则108)的至少一部分。当存储器532 (例如,RAM)存储操作系统的一部分时,操作系统的其余部分可存储在另一存储器或存储装置(例如,硬盘)中。存储器532也可存储操作系统数据结构558 (例如,图1的操作系统数据结构118和/或图2的表)。指令556可由例如CPU 510或DSP 574的处理器执行,以执行各种功能和方法,包含图3和4的方法300和400。
[0073]在特定实施例中,CPU 510,DSP 574、显示控制器526、存储器532、编码解码器534和无线控制器540包含于系统级封装或片上系统装置522中。在特定实施例中,输入装置530和电力供应器544耦合到片上系统装置522。此外,在特定实施例中,如图5中所说明,显示器528、输入装置530、扬声器536、麦克风538、天线542和电力供应器544在片上系统装置522外部。然而,显示器528、输入装置530、扬声器536、麦克风538、天线542和电力供应器544中的每一者可耦合到片上系统装置522的组件,例如,接口或控制器。
[0074]结合所描述实施例,一种设备包含用于处理与第一指令集相关联的指令的第一装置。例如,用于处理的第一装置可包含图1的第一处理器110、图1的第二处理器112、图5的CPU 510、图5的DSP 574、另一处理器(例如,NPU或GPU)、经配置以处理指令的另一装置或模块或其任何组合。
[0075]所述设备还可包含用于处理与第二指令集相关联的指令的第二装置。例如,用于处理的第二装置可包含图1的第一处理器110、图1的第二处理器112、图5的CPU 510、图5的DSP 574、另一处理器(例如,NPU或GPU)、经配置以处理指令的另一装置或模块或其任何组合。
[0076]所述设备可进一步包含用于存储操作系统的至少一部分的装置,所述操作系统可同时在所述用于处理的第一装置与所述用于处理的第二装置上执行。例如,用于存储操作系统的至少一部分的装置可包含图1的相干存储器116、图5的存储器532、经配置以存储数据的另一装置或模块或其任何组合。
[0077]所述设备还可包含用于存储与操作系统相关联的至少一个共享数据结构的装置。例如,用于存储至少一个共享数据结构的装置可包含图1的存储器116、图5的存储器532、经配置以存储数据的另一装置或模块或其任何组合。
[0078]所述设备可包含用于在用于处理的第一装置或用于处理的第二装置中的任一者上调度支持第一指令集和第二指令集两者的任务的执行的装置。例如,用于调度的装置可包含图1的调度程序106、经配置以调度用于执行的任务的另一装置或模块或其任何组合。
[0079]所属领域的技术人员将进一步了解,结合本文中揭示的实施例描述的逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、由处理器执行的计算机软件或两者的组合。各种说明性组件、块、配置、模块、电路和步骤已在上文大体按其功能性来描述。此功能性是实施为硬件还是处理器可执行指令取决于特定应用和强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解译为引起对本发明的范围的偏离。
[0080]结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(R0M)、可编程只读存储器(PROM)、可抹除可编程只读存储器(EPROM)、电可抹除可编程只读存储器(EEPROM)、寄存器、硬盘、装卸式磁盘、压缩光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或此项技术中已知的任何其它形式的非暂时性存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1