一种在开机过程中快速加载数据的方法及装置的制造方法_2

文档序号:8412360阅读:来源:国知局
化后的各个CPU核,进行所需数据的加载。示例性 的,在终端运行操作系统进程模型的开机阶段,由于待启用的多个CPU核已经被初始化完 毕,则可先对该开机阶段待加载数据的加载任务进行划分得到多个子加载任务;然后,按照 多个子加载任务与初始化后的多个CPU核之间的对应关系,或者以随机的方式,将各个子 加载任务对应分配给初始化后的各个CPU核,以指示初始化后的各CPU核执行对应的子加 载任务。其中,不同的CPU核所对应的子加载任务不同,同一个CPU核可以对应一个或多个 子加载任务。
[0031] 由于在终端运行操作系统内核的开机阶段,对所确定的至少两个CPU核进行初始 化后,被初始化的各个CPU核可以被用来使用,所以在该开机阶段的后续过程当中,同样可 以采用多核方式,进行该开机阶段剩余的待加载数据的加载,其加载过程与上述在终端运 行操作系统进程模型的开机阶段采用多核方式进行数据加载的过程类似,在此不再赘述。
[0032] 在本实施例中,在终端进入运行操作系统内核的开机阶段后,可以启用多个初始 化后的CPU核,以并行的方式同时进行数据加载,相较于仅启用单个CPU核来顺次加载诸多 数据的方案而言,本发明实施例提供的技术方案可以缩短对数据的加载时长,加快开机速 度,提升用户的开机体验。
[0033] 实施例二
[0034] 图2是本发明实施例二提供的一种在开机过程中快速加载数据的方法的流程示 意图。本实施例在上述实施例一的基础上,对"启用初始化后的各个CPU核,进行数据加载" 的操作进行优化,以使得可以在终端运行操作系统进程模型的开机阶段,以并行的方式同 时启用处理芯片中的多个CPU核来进行数据加载。参见图2,本实施例提供的在开机过程中 快速加载数据的方法具体包括如下操作:
[0035] 操作210、在终端进入运行操作系统内核的开机阶段后,获取终端上的处理芯片中 能够同时启动的CPU核的数量,其中所述数量大于1。
[0036] 在本实施例的一种优选的实施方式中,可以预先在引导加载程序中增设一个用于 描述能够同时启动的CPU核的数量的变量,并赋予该变量一个值。从而,在终端开机过程 中,在引导加载程序启动操作系统内核运行时,将该变量的值传递给操作系统内核。这样, 在进入运行操作系统内核的开机阶段后,可以直接读取该变量的值,作为能够同时启动的 (PU核的数量。
[0037] 具体的,在终端进入运行操作系统内核的开机阶段后,获取终端上的处理芯片中 能够同时启动的CPU核的数量之前,还包括:在终端运行引导加载程序的开机阶段,获取根 据终端上的处理芯片中CPU核的功耗情况,所确定的能够同时启动的CPU核的数量,并将所 述数量传递给操作系统内核。
[0038] 其中,对于能够同时启动的CPU核的数量而言,可以是预先通过人工或智能的方 式,根据终端上的处理芯片中CPU核的功耗情况所确定的。示例性的,以智能的方式,来确 定所述数量的过程包括:
[0039] 预先创建一个变量,设其初始值为0 ;
[0040] 启用终端上的处理芯片中的第一个CPU核工作,读取此情况下电池的输出电流, 根据该电流计算启用一个CPU核所产生的功耗Pl ;
[0041] 如果该功耗Pl小于所允许的额定功耗,则将所创建的变量的值加1,继续启用第 二个CPU核工作,在第二个CPU核正常工作的情况下,读取此情况下电池的输出电流,根据 该电流计算启用两个CPU核所产生的功耗P2 ;
[0042] 如果该功耗P2小于所允许的额定功耗,则将所创建的变量的值再加1,继续启用 第三个CPU核工作,如此依次进行下去,直到所启用的CPU核所产生的功耗Pi大于所允许 的额定功耗,造成断电。断电时,所创建的变量的值,即为终端上的处理芯片中能够同时启 动的CPU核的数量。
[0043] 操作220、根据所述数量,确定待启用的终端上处理芯片中的至少两个CPU核,并 对所述至少两个CPU核进行初始化。
[0044] 操作230、在终端运行操作系统进程模型的开机阶段,将该开机阶段所需的待加载 数据的加载任务,分配给初始化后的至少两个CPU核。
[0045] 操作240、根据分配结果,启用初始化后的各个CPU核执行对待加载数据的加载。
[0046] 其中,上述操作230和操作240,是对"启用初始化后的各个CPU核,进行数据加载" 操作的进一步优化。
[0047] 在本实施例中,在终端开机过程中,在终端进入运行操作系统进程模型的开机阶 段后,可以先将该开机阶段所需的待加载数据的加载任务,划分为多个子加载任务,进而将 这些子加载任务对应分配给初始化后的多个CPU核,指示CPU核执行对应的子加载任务。其 中,对子加载任务的划分方式和分配方式可以是预先设定的一种划分方式和分配方式,本 实施例对此不作具体限定。
[0048] 示例性的,将该开机阶段所需的待加载数据的加载任务,分配给初始化后的至少 两个CPU核,包括:
[0049] 根据该开机阶段所需的待加载数据的种类,和/或初始化后的至少两个CPU核的 数量,对待加载数据的加载任务进行子加载任务的划分;
[0050] 将得到的各个子加载任务,分配给初始化后的至少两个CPU核。
[0051] 例如,可以根据初始化后的至少两个CPU核的数量,来划分和分配子加载任务。举 例而言,以随机的方式将待加载数据的加载任务划分为L个子加载任务,其中L为初始化后 的至少两个CPU核的数量。之后,可以逐一将各子加载任务分别分配给不同的CPU核。此 分配方式使得各个子加载任务与各个CPU核之间具有一对一关系。
[0052] 再例如,可以按照加载任务中所要加载数据的种类,来划分和分配子加载任务。举 例而言,共初始化了 3个CPU核,该开机阶段所需的待加载数据为如下4个文件:第一文件、 第二文件、第三文件和第四文件的数据。其中,所述4个文件中的数据分别属于不同种类 型。其中的一种子加载任务的划分及其分配方式,可以是:将属于第一种类型的第一文件的 数据的加载任务,作为一个子加载任务,分配给其中的一个CPU核;将属于第二种类型的第 二文件的数据的加载任务,作为一个子加载任务,分配给其中的另一个CPU核;将属于第三 种类型的第三文件的数据的加载任务,作为一个子加载任务,分配给剩余的一个CPU核;将 属于第四种类型的第四文件的数据的加载任务,作为一个子加载任务,随机分配给其中的 任意一个CPU核,或者,分配给其中加载负担最小的一个CPU核。
[0053] 当然,如果可以预知待加载数据的容量大小,则还可以结合该容量大小,开机阶段 所需的待加载数据的种类,以及初始化后的至少两个CPU核的数量,进行子加载任务的划 分。优选的,在本实施例中,对子加载任务的分配原则为:尽量使得所启用的各个CPU核要 加载的数据的容量趋于均衡。
[0054] 实施例三
[0055] 图3为本发明实施例三提供的一种在开机过程中快速加载数据的方法的流程示 意图。本实施例可以以上述所有实施例为基础,提供一种优选实例。该方法可以由在开机过 程中快速加载数据的装置来执行,所述装置由软件实现,被内置安装有安卓(Android)操 作系统的终端上。
[0056] 在本实施例中,在终端运行操作系统进程模型的开机阶段,待加载数据包括如下 三种数据:类(Classes)、资源(Resources)和图形程序接口 OpenGL。将"按照该开机阶段 所需的待加载数据的种类,对待加载数据的加载任务进行子加载任务的划分"
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1