优化具有多个中央处理器的计算机的启动时间的系统及方法_2

文档序号:8207699阅读:来源:国知局
的任务是否已经执行。若所述任务之前没有执行,执行所述任务,然后基于优先级从DTC 2选择并执行下一个任务。若所述任务已经执行,基于优先级从DTC 2选择下一个任务。相应地,检查所述状态位寄存器来确定未执行的任务。
[0037]在本发明的另一实施例中,ITC/DTC的不同变体可离线创建。在一个示例中,所提出的系统可创建仅有相互依赖的任务的DTC。因此,这些组任务完全可以在同一列表中进行管理,并基于所述系统分配到具体的CPU核。若系统有8核,DTC可以在核6和核7中进行处理,并且可以由系统或用户动态决定。可离线做出这些决定。
[0038]虽然给出了 ITC和DTC的概念来说明具体问题,DTC的变体很可能基于系统优化调度。结合附图,上述以及其他的特点和优点从下面实施例的详细描述中得以明确。
【附图说明】
[0039]详细描述将结合附图进行说明。附图中,参考编号最左边的数字表示所述参考编号首次出现的附图。附图中使用相同的编号代表类似的特征和部件。
[0040]对应的参考字符表示所有附图中的相应部分。此处图例以一种形式阐释了本发明的优选实施例,但并不以任何方式限制本发明的范围。
[0041]图1示出了本发明实施例中系统开机时的一般启动过程(现有技术)的示意图。
[0042]图2示出了本发明实施例的优化启动时间过程(现有技术)中B1S/初始化脚本的并行化的示意图。
[0043]图3示出了本发明实施例中(PCT/CN2013/072764)(现有技术)公开的在多核/处理器上执行的并行启动方法的示意图。
[0044]图4示出了本发明实施例中(PCT/CN2013/072764)(现有技术)公开的针对启动过程处理器进行的TDC离线创建的示意图。
[0045]图5(a)示出了本发明实施例中(PCT/CN2013/072764)(现有技术)公开的TDC的结构及内容的示意图。
[0046]图5(b)示出了本发明实施例中(PCT/CN2013/072764)(现有技术)公开的任务的选择信息的示意图。
[0047]图6示出了本发明实施例的计算机系统的一种结构示意图。
[0048]图7示出了本发明实施例的计算机系统的启动方法的一种流程示意图。
[0049]图8示出了本发明实施例中执行用于启动本发明中的计算机系统的任务的流程示意图。
[0050]图9示出了本发明实施例中本发明的总体处理的示意图。
[0051]图10示出了本发明实施例中(PCT/CN2013/072764)(现有技术)与本发明的总体技术之间的对比的示意图。
[0052]图11示出了本发明实施例中现有技术TDC(PCT/CN2013/072764)与本发明的TDC的分类的示意图。
[0053]图12示出了本发明实施例中按照本发明描述的执行过程的流程示意图。
[0054]图13示出了本发明实施例中(PCT/CN2013/072764)(现有技术)的处理过程与本发明的处理过程之间的对比的示意图。
[0055]可以理解的是,所述附图旨在阐释本发明的一些概念,可能不按比例绘制。
【具体实施方式】
[0056]为使上述的本发明的目的、技术方案以及优点更容易理解,下面将结合附图来描述实施例。
[0057]结合所附权利要求和附图,从下面详细描述中,本领域的技术人员将更明确本发明的目的、优点和其他创新特点。
[0058]可以理解的是,传统意义上,当计算机系统开机时,B1S进行上电自检(POST)以初始化包括随机存取存储器(RAM),处理器,键盘,显示器等的设备。通常,计算机系统中的处理器是一种功能性硬件单元,包括单个CPU或多个CPU (经常称为单核处理器或多核处理器)。或者,计算机系统可包括多个处理器。若计算机系统包括多个CPU(例如,多个处理器系统或多核处理器系统的形式),所述CPU中的一个CPU可以被确定为“启动CPU”,为启动过程执行B1S初始化代码和内核初始化代码。剩余的CPU(通常称为应用处理器(APs))在OS开始执行之前都处于空闲状态。
[0059]一旦B1S初始化完成,识别出启动设备,将启动加载程序从所述启动设备加载到RAM中,并将控制逻辑传递到所述启动加载程序。所述启动加载程序确定启动哪个OS (例如,内核),将确定的OS从所述启动设备加载到RAM中,并将控制逻辑传递给所述OS。一旦OS开始执行,其初始化资源、数据结构和剩余的CPU,并执行用于初始化各种服务的初始化脚本。
[0060]下面介绍了响应启动命令的用于启动具有至少一个中央处理器(CPU)的计算机系统的系统及方法。当由所提出的计算机系统的多个CPU的多个初始化CPU执行时,可能已存储在计算机系统的存储器中的TDC被多个中央处理器(CPUs) 604访问和处理。
[0061]所述访问的TDC可包括启动过程的多个任务的地址信息和选择信息。所述多个任务可包括使计算机系统正常工作而必须执行的所有任务。基于TDC中的多个任务的依赖关系,系统对TDC进行分类。TDC可离线分类创建两套调度图表,以生成一个独立任务图表(ITC)和一个依赖任务图表(DTC)。ITC包括独立于任何其他任务的一组任务;DTC包括对TDC的任何其他任务有至少一种依赖关系的一组任务。
[0062]基于DTC对ITC或TDC中可用的任何其他任务的依赖关系,DTC可进一步分为依赖任务图表I (DTC I)和依赖任务图表2 (DTC 2)。DTC I可包括来自DTC的对ITC的至少一个任务有至少一种依赖关系的一组任务;DTC 2可包括来自DTC的对DTC I的至少一个任务或DTC 2的至少一个任务有至少一种依赖关系的一组任务。
[0063]系统从ITC选择并执行至少一个任务,因为这些任务是使计算机系统安全正常工作所需要的基本任务。基于所述选择信息,更具体地讲,基于相对于ITC中的其他任务的所述任务的优先级从ITC选择所述至少一个任务。
[0064]可基于优先级信息将任务排列成队。检查所选择的任务是否已经执行。若所述任务之前没有执行,选择并执行所述任务,然后基于优先级从ITC选择并执行下一个任务。若所述任务已经执行,基于优先级从ITC选择下一个任务。任务的执行状态可从状态位寄存器中获取,所述状态位寄存器存储任务执行情况的所有信息。这些任务可在队列中找到,从而该系统可以很容易地从队列中获取下一个任务。
[0065]当ITC中的所有任务都执行后,所述系统从DTC I选择任务。基于任务的选择信息,更具体地讲,基于DTC I中任务的优先级选择DTC I中的所有任务。DTC I的优先级是基于DTC I的任务对ITC的依赖关系。在一个示例中,可首先执行依赖ITC任务的任务,然后按ITC的优先级执行接下来的任务。所述系统从DTC I选择至少一个任务,并检查所选择的任务是否已经执行。若所述任务之前没有执行,执行所述任务,然后基于优先级从DTCI选择并执行下一个任务。若所述任务已经执行,基于优先级从DTC I选择下一个任务。
[0066]相应地,可以检查所述状态位寄存器来确定未执行的任务。
[0067]当DTC I中的所有任务都执行后,所述系统从DTC 2选择任务。基于任务的选择信息,更具体地讲,基于DTC 2中任务的优先级选择DTC 2中的所有任务。DTC 2的优先级是基于来自DTC 2的任务对DTC I和DTC 2的依赖关系。所述系统从DTC 2选择至少一个任务,并检查所选择的任务是否已经执行。若所述任务之前没有执行,执行所述任务,然后基于优先级从DTC 2选择并执行下一个任务。若所述任务已经执行,基于优先级从DTC 2选择下一个任务。相应地,检查所述状态位寄存器来确定未执行的任务。
[0068]因为本发明涉及通过提供离线调度算法来优化并行启动框架的调度,在一个示例中,TDC —次只可被一个CPU访问。所述选择信息可包括表示多个任务的优先级的优先级字段;所述至少一个CPU基于优先级的升序从所述多个任务中选择所述至少一个任务。
[0069]所述选择信息也可包括依赖字段、锁定字段和状态字段。可以基于多个任务的依赖关系对TDC中的所有任务进行分类。ITC和DTC中的所有任务按独立于任何其他任务的一组任务的优先级的升序进行排列和执行。DTC的任务可以依赖的任何其他任务可以是DTCI或DTC 2的任何任务或者是来自ITC的任何任务。首先执行ITC中的所有任务,随后执行DTC I的任务,然后执行DTC 2的任务。
[0070]尽管所描述的响应启动命令的用于启动具有至少一个中央处理器(CPU)的计算机系统的系统及方法的各个方面可以通过多个不同的计算机系统、环境和/或配置实现,所述实施例以下面系统为例进行描述。
[0071]尽管下面描述了本发明的示例实施例,可以理解的是,即使没有详细的说明,也可以实现本发明。同时可以为此处描述的本发明做出许多实现的具体决定,以实现开发者的特殊目标,例如,遵循系统相关的和业务相关的约束,这将随系统的变化而变化,且开发工作复杂且耗时。然而,对于本领域的技术人员,掌握本发明公开的益处是一项常规工作。例如,所选方面都以框图形式而非细节形式示出,以避免对本发明造成模糊或者不适当限制。本领域的技术人员利用这些描述和陈述向本领域的其他技术人员描述以及传达他们工作的内容。本发明将结合下面描述的附图进行描述。
[0072]在整个启动过程的完全并行化上,申请PCT/CN2013/072764是当前发明的主要现有技术。后续部分将介绍对PCT/CN2013/072764的改进及优化。下面对本发明的描述和陈述也可包括本发明与PCT/CN2013/072764的对比。
[0073]现参考图1,其示出了本发明实施例中系统开机时的一般启动过程(现有技术),已在【背景技术】中公开。
[0074]现参考图2,其示出了本发明实施例的优化启动时间过程(现有技术)中B1S/初始化脚本的并行化,已在【背景技术】中公开。
[0075]现参考图3,其示出了本发明实施例中(PCT/CN2013/072764)(现有技术)公开的在多核/处理器上执行的并行启动方法,已在【背景技术】中公开。在一个示例中,该图公开了在多核/处理器上执行的并行启动方法。图3示出了 PCT/CN2013/072764中并行启动过程中的启动时间的优化。
[0076]现参考图4,其示出了 TDC的创建方法。本领域技术人员都很理解,创建任务描述图表(TDC)可能需要三个模块,可包括但不限于B1S模块、启动加载程序和/或OD内核。如现有技术(PCT/CN2013/072764)所公开的,描述计算机任务的基本操作的TDC可根据各任务的至少一个如下属性生成:优先级、依赖关系、地址、尺寸、错误代码、锁和状态。进一步地,本领域技术人员也知道,若计算机系统包括多个CPU(例如,多个处理器系统或多核处理器系统的形式),所述CPU中的一个CPU可以被确定为“启动CPU”,为启动过程执行B1S初始化代码和内核初始化代码。剩余的CPU(通常称为应用处理器(APs))在OS开始执行之前都处于空闲状态。一旦B1S初始化完成,识别出启动设备,将启动加载程序从所述启动设备加载到RAM中,并将控制逻辑传递到所述启动加载程序。所述启动加载程序确定启动哪个OS (例如,内核),将确定的OS从所述启动设备加载到RAM中,并将控制逻辑传递给所述OS。一旦OS开始执行,其初始化资源、数据结构和剩余的CPU,并执行用于初始化各种服务的初始化脚本。
[0077]下面描述了现有技术参考(PCT/CN2013/072764)中公开的TDC创建过程;为实现启动过程中多CPU的执行,所述三个模块可交互排列在叫做“模块化”的过程中,
[0078]例如,每个模块可分成几个部分。每个部分可包括一个或多个独立的或异步的步骤。如图4所示,在B1S模块中,步骤init O可分成相互独立的步骤init_0_0 O和init_0_l()。这里还提供了 B1S
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1