用于启动具有多个中央处理器的计算机系统的方法

文档序号:9438879阅读:761来源:国知局
用于启动具有多个中央处理器的计算机系统的方法
【技术领域】
[0001] 本申请大体涉及计算机技术,尤其涉及一种用于启动具有多个中央处理器 (Central Processing Unit,CPU)的计算机系统的方法。
【背景技术】
[0002] 计算机系统的启动是一种引导进程。当计算机系统上电时,该进程初始化计算 机系统硬件,然后启动操作系统(Operating System,OS)(如内核)。启动顺序通常很简 短,从基本输入输出系统(Basic Input Output System,BIOS)开始,至Ij引导加载器(Boot Loader),然后是内核(Kernel)。
[0003] 当计算机系统上电时,BIOS执行上电自检(power on self test,POST)来初始化 包括随机存取存储器(Random Access Memory,RAM)、处理器、键盘以及监控器等设备。通常 情况下,计算机系统中的处理器是一种包括单个CPU或多个CPU (通常称为单核处理器或多 核处理器)的功能硬件单元。或者,计算机系统可包括多个处理器。如果计算机系统包括 多个CPU(如以多处理器系统或多核处理器系统的形式),可确定其中一个CPU为一个"引导 CPU"来执行启动进程的BIOS初始化代码和内核初始化代码。其余CPU (通常称为应用处理 器(Application Processor,AP))仍然处于空闲状态,直到OS开始执行任务。当BIOS初 始化完成后,识别一种启动设备并且将引导加载器从该启动设备载入到RAM以及将控制传 递到该引导加载器。引导加载器确定启动哪个OS(如内核),将确定的OS从启动设备载入 到RAM并将控制传递到该0S。当开始执行任务时,OS初始化资源和数据结构和其余的CPU 并执行初始化各种业务的初始脚本。
[0004] 在大多数现有的计算机系统中,仅由一个CPU按一定顺序执行上述启动步骤。启 动进程花费了大量时间,减少启动时间是一个重要的问题。

【发明内容】

[0005] 为了节省具有多个CPU的计算机系统的启动时间,本发明提供了各种实施例。
[0006] 根据本发明的第一方面,提供了一种启动具有多个CPU的计算机系统的方法。该 方法包括:在启动进程开始时,初始化多个CPU中的至少两个CPU ;所述至少两个已初始化 的CPU中的每个CPU访问存储在所述计算机系统中的任务描述图表(TDC),其中该TDC包括 启动进程中至少两个任务的信息;所述至少两个已初始化的CPU中的每个CPU根据TDC中 至少两个任务的选择信息从至少两个任务中选择一个任务;所述至少两个已初始化的CPU 中的每个CPU根据TDC中所选任务的地址信息获取所选任务;以及已初始化的CPU至少部 分并行地执行所选任务。
[0007] 根据本发明的第二方面,提供了一种计算机系统。所述计算机系统包括:与存储器 耦合的多个CPU,其中在启动进程开始时,初始化多个CPU中的至少两个CPU ;所述存储器用 于存储TDC和第一指令,其中该TDC包括启动进程中至少两个任务的信息;以及多个CPU中 的至少两个已初始化的CPU中的每个CPU用于根据第一指令访问TDC,每个已初始化的CPU 根据所述TDC中至少两个任务的选择信息从至少两个任务中选择一个任务,每个已初始化 的CPU根据TDC中所选任务的地址信息获取所选任务;以及至少部分并行地执行所选任务。
[0008] 根据本发明的第三方面,提供了一种非瞬时计算机可读媒介,所述非瞬时计算机 可读媒介包含启动具有多个CPU的计算机系统的代码。当多个CPU中的多个已初始化的CPU 执行所述代码时,实现以下步骤的执行:每个已初始化的CPU访问存储在计算机系统中的 TDC,其中该TDC包括启动进程中至少两个任务的信息;每个已初始化的CPU根据TDC中至 少两个任务的选择信息从至少两个任务中选择一个任务;每个已初始化的CPU根据TDC中 所选任务的地址信息获取所选任务;以及已初始化的CPU至少部分并行地执行所选任务。
[0009] 根据本发明的第四方面,提供了一种数据表。该数据表包括:选择信息字段,用于 表示与至少两个任务对应的选择信息;以及地址信息字段,用于表示与至少两个任务对应 的地址信息;其中具有多个CPU的计算机系统中的多个已初始化的CPU根据选择信息字段 从所述至少两个任务中选择任务,根据地址信息字段获取所选任务,并至少部分并行地执 行所选任务。
[0010] 根据本发明的第五方面,提供了另一种启动具有多个CPU的计算机系统的方法, 所述方法包括:计算机系统的初始化电路初始化计算机系统中的一个或多个CPU ;每个已 初始化的CPU根据存储在计算机系统中的TDC从至少两个任务中选择一个任务,其中每个 任务拥有其记录在TDC中的选择信息和地址信息,并且不同的已初始化的CPU根据任务的 选择信息从所述至少两个任务中选择不同的任务;每个已初始化的CPU根据所选任务的地 址信息获取所选任务的程序指令;以及已初始化的CPU至少部分同时执行所选任务;其中 TDC包括启动进程中所有任务的信息,以及已初始化的CPU根据所述TDC继续选择和执行任 务,直到所有记录在TDC中的任务被执行。
【附图说明】
[0011] 图1是根据本发明的一项实施例的计算机系统的方框图;
[0012] 图2是根据本发明的一项实施例的并行执行任务的方法的流程图;
[0013] 图3示出根据本发明的一项实施例的任务描述图表(TDC)的结构;
[0014] 图4是根据本发明的一项实施例的CPU选择和执行TDC中任务的过程的流程图;
[0015] 图5是根据本发明的一项实施例的多个CPU并行执行任务的流程图;
[0016] 图6是TDC的示例性结构以及启动进程中生成TDC的模块化过程;
[0017] 图7是用于启动计算机系统的装置的方框图。
【具体实施方式】
[0018] 为了使本申请的上述目的、技术方案和优点更易于理解,下文描述了实施例和附 图。
[0019] 图1是根据本发明的一项实施例的计算机系统100的方框图。计算机系统100包 括处理器101,所述处理器101与存储器(如随机存取存储器(RAM) 104)耦合以及可选择性 地与存储单元106耦合。存储单元106可以为只读存储器(ROM)或其他存储媒介(如硬盘 或闪存等等)。
[0020] 处理器101可包括如图1所示的CPUO和CPUl等多个CPU。可选地,计算机系统 100包括如图1所示的处理器101和处理器108等一个以上的处理器。每个处理器101和 108可为单核处理器或多核处理器。
[0021] 用于处理器101的CPU执行的各种代码可存储在RAM104或存储单元106中。可 选地,将代码109从存储单元106中复制到RAM104用于处理器101来执行。可选地,存储 在存储单元中的代码包括但不限于BIOS模块、引导加载器模块和内核模块中的任一或其 组合。存储单元中同样存储有任务描述图表(TDC)、第一指令和第二指令,下文将详细论述。
[0022] 可选地,计算机系统还包括输出设备102 (例如,显示设备,如IXD (液晶显示屏)、 LED (发光二极管)显示器、CRT (阴极射线管)或投影仪),以及输入设备103 (如鼠标、键 盘、触摸屏或能够检测用户输入的传感器设备)。输出设备102由处理器101控制用于显 示图形交互界面。可选地,计算机系统还包括与外部网络或其他设备交换数据或信号的通 信接口 105。可通过通信接口 105从其他设备获取上述用于执行的处理器101的CPU的代 码(如BIOS模块、引导加载器模块、内核模块、TDC、第一指令以及第二指令中的任一或其组 合)。
[0023] 计算机系统100的上述元件可通过如数据总线、地址总线、控制总线、扩展总线或 本地总线等总线互相耦合。
[0024] 计算机系统100可为台式计算机、网络服务器、个人数字助理(PDA)、移动电话、平 板电脑、终端设备、电信设备、嵌入系统或具有如图1所示的类似结构的任何其他设备。然 而,本发明并不受限于任何特定类型的计算机系统。
[0025] 提供了一种启动具有多个CPU的计算机系统的方法。图2是所述方法的流程图。 尽管此处描述的方法可以在图1所示的计算机系统100中实施,但不限于此种系统。
[0026] 由于启动过程中涉及包括多个CPU的计算机系统以及至少两个CPU,所述方法包 括以下步骤:
[0027] SlOO :在启动进程开始时,初始化多个CPU中的至少两个CPU。
[0028] 可选地,耦合至计算机系统中CPU(参见图1)的初始化电路110初始化启动进程 中所涉及的至少两个CPU。当计算机系统上电或复位时,初始化电路初始化计算机系统的组 件,包括启动过程中涉及的至少两个CPU。初始化电路还可以初始化RAM104,以便至少两个 CHJ使用。或者,初始化电路可首先初始化至少两个CPU中的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1