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

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

Info

Publication number
CN105190550A
CN105190550A CN201380074736.7A CN201380074736A CN105190550A CN 105190550 A CN105190550 A CN 105190550A CN 201380074736 A CN201380074736 A CN 201380074736A CN 105190550 A CN105190550 A CN 105190550A
Authority
CN
China
Prior art keywords
task
cpu
tasks
tdc
initialized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380074736.7A
Other languages
English (en)
Other versions
CN105190550B (zh
Inventor
夏又瑞·戴斯
阿曼·沙黒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105190550A publication Critical patent/CN105190550A/zh
Application granted granted Critical
Publication of CN105190550B publication Critical patent/CN105190550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种用于启动具有多个中央处理器的计算机系统的方法。所述方法包括:在启动进程开始时,初始化多个CPU中的至少两个CPU;所述至少两个已初始化的CPU中的每个CPU访问存储在计算机系统中的任务描述图表(TDC),其中所述TDC包括启动进程中至少两个任务的信息;所述至少两个初始化的CPU中的每个CPU根据TDC中的至少两个任务的选择信息从至少两个任务中选择一个任务;所述至少两个初始化的CPU中的每个CPU根据TDC中所选任务的地址信息获取所选任务;以及已初始化的CPU至少部分并行地执行所选任务。

Description

用于启动具有多个中央处理器的计算机系统的方法
技术领域
本申请大体涉及计算机技术,尤其涉及一种用于启动具有多个中央处理器(CentralProcessingUnit,CPU)的计算机系统的方法。
背景技术
计算机系统的启动是一种引导进程。当计算机系统上电时,该进程初始化计算机系统硬件,然后启动操作系统(OperatingSystem,OS)(如内核)。启动顺序通常很简短,从基本输入输出系统(BasicInputOutputSystem,BIOS)开始,到引导加载器(BootLoader),然后是内核(Kernel)。
当计算机系统上电时,BIOS执行上电自检(poweronselftest,POST)来初始化包括随机存取存储器(RandomAccessMemory,RAM)、处理器、键盘以及监控器等设备。通常情况下,计算机系统中的处理器是一种包括单个CPU或多个CPU(通常称为单核处理器或多核处理器)的功能硬件单元。或者,计算机系统可包括多个处理器。如果计算机系统包括多个CPU(如以多处理器系统或多核处理器系统的形式),可确定其中一个CPU为一个“引导CPU”来执行启动进程的BIOS初始化代码和内核初始化代码。其余CPU(通常称为应用处理器(ApplicationProcessor,AP))仍然处于空闲状态,直到OS开始执行任务。当BIOS初始化完成后,识别一种启动设备并且将引导加载器从该启动设备载入到RAM以及将控制传递到该引导加载器。引导加载器确定启动哪个OS(如内核),将确定的OS从启动设备载入到RAM并将控制传递到该OS。当开始执行任务时,OS初始化资源和数据结构和其余的CPU并执行初始化各种业务的初始脚本。
在大多数现有的计算机系统中,仅由一个CPU按一定顺序执行上述启动步骤。启动进程花费了大量时间,减少启动时间是一个重要的问题。
发明内容
为了节省具有多个CPU的计算机系统的启动时间,本发明提供了各种实施例。
根据本发明的第一方面,提供了一种启动具有多个CPU的计算机系统的方法。该方法包括:在启动进程开始时,初始化多个CPU中的至少两个CPU;所述至少两个已初始化的CPU中的每个CPU访问存储在所述计算机系统中的任务描述图表(TDC),其中该TDC包括启动进程中至少两个任务的信息;所述至少两个已初始化的CPU中的每个CPU根据TDC中至少两个任务的选择信息从至少两个任务中选择一个任务;所述至少两个已初始化的CPU中的每个CPU根据TDC中所选任务的地址信息获取所选任务;以及已初始化的CPU至少部分并行地执行所选任务。
根据本发明的第二方面,提供了一种计算机系统。所述计算机系统包括:与存储器耦合的多个CPU,其中在启动进程开始时,初始化多个CPU中的至少两个CPU;所述存储器用于存储TDC和第一指令,其中该TDC包括启动进程中至少两个任务的信息;以及多个CPU中的至少两个已初始化的CPU中的每个CPU用于根据第一指令访问TDC,每个已初始化的CPU根据所述TDC中至少两个任务的选择信息从至少两个任务中选择一个任务,每个已初始化的CPU根据TDC中所选任务的地址信息获取所选任务;以及至少部分并行地执行所选任务。
根据本发明的第三方面,提供了一种非瞬时计算机可读媒介,所述非瞬时计算机可读媒介包含启动具有多个CPU的计算机系统的代码。当多个CPU中的多个已初始化的CPU执行所述代码时,实现以下步骤的执行:每个已初始化的CPU访问存储在计算机系统中的TDC,其中该TDC包括启动进程中至少两个任务的信息;每个已初始化的CPU根据TDC中至少两个任务的选择信息从至少两个任务中选择一个任务;每个已初始化的CPU根据TDC中所选任务的地址信息获取所选任务;以及已初始化的CPU至少部分并行地执行所选任务。
根据本发明的第四方面,提供了一种数据表。该数据表包括:选择信息字段,用于表示与至少两个任务对应的选择信息;以及地址信息字段,用于表示与至少两个任务对应的地址信息;其中具有多个CPU的计算机系统中的多个已初始化的CPU根据选择信息字段从所述至少两个任务中选择任务,根据地址信息字段获取所选任务,并至少部分并行地执行所选任务。
根据本发明的第五方面,提供了另一种启动具有多个CPU的计算机系统的方法,所述方法包括:计算机系统的初始化电路初始化计算机系统中的一个或多个CPU;每个已初始化的CPU根据存储在计算机系统中的TDC从至少两个任务中选择一个任务,其中每个任务拥有其记录在TDC中的选择信息和地址信息,并且不同的已初始化的CPU根据任务的选择信息从所述至少两个任务中选择不同的任务;每个已初始化的CPU根据所选任务的地址信息获取所选任务的程序指令;以及已初始化的CPU至少部分同时执行所选任务;其中TDC包括启动进程中所有任务的信息,以及已初始化的CPU根据所述TDC继续选择和执行任务,直到所有记录在TDC中的任务被执行。
附图说明
图1是根据本发明的一项实施例的计算机系统的方框图;
图2是根据本发明的一项实施例的并行执行任务的方法的流程图;
图3示出根据本发明的一项实施例的任务描述图表(TDC)的结构;
图4是根据本发明的一项实施例的CPU选择和执行TDC中任务的过程的流程图;
图5是根据本发明的一项实施例的多个CPU并行执行任务的流程图;
图6是TDC的示例性结构以及启动进程中生成TDC的模块化过程;
图7是用于启动计算机系统的装置的方框图。
具体实施方式
为了使本申请的上述目的、技术方案和优点更易于理解,下文描述了实施例和附图。
图1是根据本发明的一项实施例的计算机系统100的方框图。计算机系统100包括处理器101,所述处理器101与存储器(如随机存取存储器(RAM)104)耦合以及可选择性地与存储单元106耦合。存储单元106可以为只读存储器(ROM)或其他存储媒介(如硬盘或闪存等等)。
处理器101可包括如图1所示的CPU0和CPU1等多个CPU。可选地,计算机系统100包括如图1所示的处理器101和处理器108等一个以上的处理器。每个处理器101和108可为单核处理器或多核处理器。
用于处理器101的CPU执行的各种代码可存储在RAM104或存储单元106中。可选地,将代码109从存储单元106中复制到RAM104用于处理器101来执行。可选地,存储在存储单元中的代码包括但不限于BIOS模块、引导加载器模块和内核模块中的任一或其组合。存储单元中同样存储有任务描述图表(TDC)、第一指令和第二指令,下文将详细论述。
可选地,计算机系统还包括输出设备102(例如,显示设备,如LCD(液晶显示屏)、LED(发光二极管)显示器、CRT(阴极射线管)或投影仪),以及输入设备103(如鼠标、键盘、触摸屏或能够检测用户输入的传感器设备)。输出设备102由处理器101控制用于显示图形交互界面。可选地,计算机系统还包括与外部网络或其他设备交换数据或信号的通信接口105。可通过通信接口105从其他设备获取上述用于执行的处理器101的CPU的代码(如BIOS模块、引导加载器模块、内核模块、TDC、第一指令以及第二指令中的任一或其组合)。
计算机系统100的上述元件可通过如数据总线、地址总线、控制总线、扩展总线或本地总线等总线互相耦合。
计算机系统100可为台式计算机、网络服务器、个人数字助理(PDA)、移动电话、平板电脑、终端设备、电信设备、嵌入系统或具有如图1所示的类似结构的任何其他设备。然而,本发明并不受限于任何特定类型的计算机系统。
提供了一种启动具有多个CPU的计算机系统的方法。图2是所述方法的流程图。尽管此处描述的方法可以在图1所示的计算机系统100中实施,但不限于此种系统。
由于启动过程中涉及包括多个CPU的计算机系统以及至少两个CPU,所述方法包括以下步骤:
S100:在启动进程开始时,初始化多个CPU中的至少两个CPU。
可选地,耦合至计算机系统中CPU(参见图1)的初始化电路110初始化启动进程中所涉及的至少两个CPU。当计算机系统上电或复位时,初始化电路初始化计算机系统的组件,包括启动过程中涉及的至少两个CPU。初始化电路还可以初始化RAM104,以便至少两个CPU使用。或者,初始化电路可首先初始化至少两个CPU中的部分CPU,例如至少两个CPU中的引导CPU,然后初始化其余的CPU。例如,已初始化的引导CPU可访问存储介质106以获取存储在存储介质106中的第二指令,并根据所述第二指令初始化其余的CPU。
S102:至少两个已初始化的CPU中的每个CPU访问存储在计算机系统中的任务描述图表(TDC),其中TDC包括启动进程中至少两个任务的信息。
可选地,当已初始化的CPU中的第一CPU访问TDC时,第一CPU锁定该TDC,且除了第一CPU,其他CPU不能访问该锁定的TDC。例如,如图3所示,TDC可包括“TDC锁定”字段。为了锁定TDC,第一CPU可将TDC的TDC锁定字段标记为锁定。
S104:至少两个已初始化的CPU中的每个CPU根据TDC中至少两个任务的选择信息从至少两个任务中选择一个任务。
可选地,选择信息还包括表示至少两个任务中每个任务的优先级的优先级字段,以及第一CPU首先在至少两个任务中选择具有较高优先级的任务。
可选地,选择信息还包括表示至少两个任务中的第一任务依赖第二任务的依存字段,以及当第二任务标记为完成时,第一CPU可以选择第一任务。
可选地,选择信息还包括锁定字段,用于表示所述至少两个任务中的每个任务是否被已初始化的CPU锁定,其中在第一CPU根据选择信息选择至少两个任务中的第三任务之后,第一CPU将第三任务的锁定字段标记为锁定,以及除了第一CPU,其他已初始化的CPU不能选择已标记为锁定的第三任务。
可选地,选择信息还包括表示至少两个任务中的每个任务是否完成的状态字段,其中在完成执行至少两个任务中的第四任务之后,第一CPU将第四任务的状态字段标记为完成,以及已初始化的CPU不能选择已标记为完成的第四任务。
可选地,在第一CPU结束选择之后,第一CPU将所述TDC解锁。
S106:至少两个已初始化的CPU中的每个CPU根据TDC中所选任务的地址信息获取所选任务。
S108:已初始化的CPU至少部分并行地执行所选任务。
可选地,选择信息还包括表示至少两个任务中的每个任务大小的大小字段,以及第一CPU根据用于执行任务的可用内存和第五任务和在可用内存中执行的任务的大小字段确定是否执行至少两个任务中的第五任务。
可选地,在初始化步骤和访问步骤之后,已初始化的CPU重复进行选择、获取和执行步骤,直到所有记录在该TDC中的任务被执行。
第一CPU根据第一指令可完成上述步骤S102至S108。
可选地,所述至少两个任务包括由已初始化的CPU可并行执行的任务并且来自计算机系统的启动进程,该启动进程包括基本输入输出系统(BIOS)模块、引导加载器模块和内核模块。
可选地,将BIOS模块、引导加载器模块和内核模块执行的步骤模块化划分为独立或非同步步骤,并且将划分后的步骤分离重组成至少两个任务中的任务。
可选地,将BIOS模块中的外围设备初始化步骤划分为用于初始化设备而不是修改配置寄存器的初始化步骤和基于初始化步骤用于修改配置寄存器的寄存步骤,以及将所述初始化步骤和寄存步骤分离重组成至少两个任务中的不同任务。
可选地,根据模块化划分和分离生成的任务生成TDC。
如图3所示,示例性TDC包括多个任务(如任务1到任务N,N≥2)的地址信息和选择信息。启动进程中涉及的每个已初始化的CPU根据选择信息选择至少两个任务中的一个任务,根据任务的地址信息从存储单元106或RAM104中获取所选任务以及执行所获取的任务。
所述TDC可包括表示TDC文件信息的TDC元数据字段,可由用于处理文件内容和安全相关问题等的进程使用。TDC锁定字段可为所述TDC元数据字段的一部分。
以下是两个已初始化的CPU(如CPU1和CPU2)根据所述TDC利用不同的选择信息(如锁定、状态和依存)从TDC中的3个任务(如任务1、任务2和任务3)中选择任务的例子。任务1到3的选择信息如表1所示。
表1
当CPU1访问TDC时,CPU1可根据选择信息选择任务1来执行,因为任务1在任务1到3之中具有最高优先级并且被标记为“未锁定”。在选择任务1之后,CPU1可将任务1的锁定字段标记为“锁定”。随后,CPU2访问TDC以选择一个任务。因为:1)任务1的锁定字段表示任务1是锁定的(即,具有最高优先级的任务1已经被CPU1选中);2)具有第二优先级的任务2依赖于任务1;以及3)任务1的状态字段表示任务1未完成,CPU2根据选择信息选择具有第三优先级的任务3来执行。在选择任务3之后,CPU2可将任务3的锁定字段标记为“锁定”。在执行任务1之后,CPU1可重新访问TDC,将任务1的状态字段标记为“完成”,并选择TDC中的另一任务来执行。因为:1)任务3的锁定字段表示任务3被“锁定”,并且任务1的状态字段表示任务1为“完成”(即任务1和3是不可选的),由于任务1已完成,CPU1可选择现在为可选的任务2。上述选择信息的任务选择和修改可根据第一指令由运行在处理器上的调度程序来完成。
在启动进程期间,可部分地初始化存储器(如RAM104)。因此,用于并行执行一定大小任务的存储空间是有限的。如果并行执行许多大型任务,则不可执行或复制另一任务到存储器中。为了解决这个问题,实施例中提供了一种内存管理器(如由其中一个CPU运行的内存管理程序)用于管理内存。所述TDC还可包括任务的大小字段。该大小字段可表示相应任务的大小。调度程序还可根据可用内存(可用内存的信息可以由内存管理器提供)以及大小字段(如已执行的和随后要执行的任务的大小)决定执行或当前不执行哪个任务。例如,所述调度程序可访问TDC以修改任务的选择信息(如锁定字段、状态字段、优先级字段以及依存字段中的任一或其组合)。相应地,为了更好的利用内存,可动态地调整任务的执行顺序。该内存管理器还可以在需要时触发初始化存储器其他部分。存储器其他部分的初始化可与其他任务并行执行。
在实施例中,基于TDC调度任务,所述TDC充当用于调度的枢纽。通过使用此TDC还可以实现基本内存管理。
可选地,选择信息还可包括用于可能调试的错误代码字段。例如,如果在内存管理器执行、选择或管理过程中任务失败,将相应的错误代码输入到该任务的错误代码字段中。
例如,任务的程序代码、第一指令或第二指令可存储在存储单元106中或被读入到RAM104中。根据第一指令和TDC,在启动进程中涉及到的每个已初始化的CPU可访问存储单元106或RAM104来执行其选中的任务。用作引导CPU的已初始化的CPU可初始化其他CPU并使用启动处理器间中断(inter-processorinterrupts,IPI)来激活其他CPU。已初始化的CPU可在由IPI消息指定的实模式起始地址(realmodestartaddress)开始执行。此种起始地址对应于第一指令,用于已初始化的CPU根据TDC选择和执行所述任务。
为了减少启动时间,本申请实施例至少部分同时执行启动进程中涉及到的已初始化的CPU选中的至少两个任务。
通过本发明的上述实施例中的技术方案,通过至少部分并行地执行减少执行任务的时间。应了解,一种可能的情况是,在此种方案中,使用的CPU越多,启动进程中可节省的执行时间越多,这是有可能的。
图4是根据本发明的一项实施例的CPU选择和执行TDC中任务的示例性过程的流程图。所述方法包括以下步骤:
在步骤S401中,CPU加载上文所述的第一指令,并开始执行所述第一指令。如先前所述,第一指令用于CPU根据TDC选择和执行任务。在步骤S401之后,CPU首先执行步骤S403。
在步骤S403中,CPU确定TDC是否锁定。若TDC被锁定,CPU执行步骤S402。若TDC未锁定,CPU执行步骤S404。
在步骤402中,CPU等待/轮询一段时间,然后转到步骤S403,重新确定TDC是否被锁定。
锁定属性在此实施例中用作同步机制以限定/限制访问可在多个进程之间共享的TDC中的数据。允许一个如由CPU控制的进程在给定的实例/时间内访问该数据。因此即使如由多个CPU控制的多个进程可以在给定的实例/时间内访问/修改该共享数据,只有锁定该数据的进程可以访问/修改该共享数据。当另一进程锁定该数据时(当该进程先前锁定了该数据时,释放该锁),可以访问/修改该数据。
在步骤S404中,CPU锁定TDC中相应的字段。例如,CPU可使用CPU的标识将TDC中要执行的任务的锁定字段标记为锁定,以防止TDC中的相同数据被其他CPU访问。
在步骤S405中,CPU根据任务的选择信息确定TDC中所有的任务是否已经完成。若TDC中并非所有的任务已经完成,CPU执行步骤S407。若TDC中所有的任务已经完成,CPU执行步骤S406或可直接执行步骤S416。
在步骤S406中,CPU将TDC中的任务解锁。例如,CPU可将TDC中任务的锁定字段标记为“未锁定”。随后,CPU可执行步骤S416。
在步骤S407中,CPU根据TDC的选择信息从TDC中选择一个任务,并锁定所选任务。上文已经描述了特定的任务选择策略。为了简洁起见,这里将不再重述。
在步骤S408中,CPU将TDC中的任务解锁,然后执行步骤S409或直接执行步骤S411。在步骤S408之后,其他CPU可访问TDC来选择任务。
在步骤S409中,CPU确定所选任务是否已经存在于RAM中。若是,CPU执行步骤S411。若否,CPU执行步骤S410。
在步骤S410中,CPU将要执行的任务复制到RAM中。随后,CPU执行步骤S411。例如,CPU可根据任务的地址信息在存储单元中查找任务代码,以及将任务代码从存储单元复制到RAM中来执行。
在步骤S411中,CPU执行所选任务。在所选任务执行完成后,CPU可执行步骤S413。可选地,在执行之前,CPU根据任务的地址信息在RAM中查找所选任务并获取所选任务。
在步骤S413中,CPU确定TDC是否被锁定。若TDC被锁定,CPU执行步骤S412。若TDC未锁定,CPU执行步骤S414。
在步骤412中,CPU等待/轮询一段时间,然后转到步骤S413,重新确定TDC是否被锁定。
在步骤S414中,CPU锁定TDC中的任务。随后,CPU执行步骤S415。
在步骤S415中,CPU将已完成任务的选择信息中的状态字段标记为“完成”。随后,CPU可转到步骤S405。
在步骤S416中,如图4所示,CPU退出选择和执行过程。例如,CPU可停止执行第一指令。
图5是根据本发明的一项实施例的多个CPU并行执行任务的流程图。
如图5所示,在可选阶段1,计算机系统的上电或复位可初始化所有或部分多个CPU(如CPU0-N中的CPU0)。启动进程中可涉及到一些或所有已初始化的CPU。
可选地,当只有CPU0作为引导CPU在阶段1期间被初始化时以及当其他CPU处理空闲状态(或未初始化状态)时,已初始化的CPU0在可选阶段2初始化其余的CPU。
在阶段3中,已初始化的CPU可从TDC中选择任务以及如图4所示的方式独立和至少部分同时执行它们,直到TDC中所有任务完成。
通过上述描述的多个CPU并行执行,减少了执行多个CPU计算机系统CPU的启动进程中的任务的时间。例如,启动时间可减少到90/100*(X/N-N*D*X),其中X是当前启动时间,N是CPU的数量,D是CPU选择TDC中下一个任务的时间段。这仅仅是一种估计,超过一定数目,上述公式可能不能适用。
应注意的是,上述关于多个CPU并行执行的实施例,不仅在启动进程中,还可在计算机系统的各种进程中实施。然而,启动进程可能是从并行执行中获取最大好处的进程。如上所述,典型的启动进程包括BIOS模块、引导加载器模块以及内核模块。所述BIOS模块用于初始化和测试系统硬件组件。BIOS模块可以是任何种类的实现至少系统硬件组件初始化和测试功能的系统,如基本输入/输出系统、统一可扩展固件界面(UnifiedExtensibleFirmwareInterface,UEFI)以及可扩展固件接口(ExtensibleFirmwareInterface,EFI)。所述引导加载器是由BIOS调用的模块,用来将内核的图像载入到RAM中。该内核是大多数计算机操作系统中的主要组件。它是应用程序与在硬件层进行的实际数据处理之间的桥梁。在引导加载器模块完成后,可执行内核模块来初始化内核的资源和数据结构。
众所周知,启动进程中有三个模块,每个模块包括各种执行步骤。如图6所示,为了在启动进程中实施多CPU执行,三个模块的步骤可在称为“模块化”的过程中进行交叉分配,即每个模块可划分成段。每个段可包括一个或多个独立或非同步步骤。参见图6,例如,BIOS模块中的init()步骤可划分成互相独立的init_0_0()和init_0_1()步骤。此处还提供了BIOS模块上的另一具体模块化示例。BIOS模块中的外围设备初始化步骤用于按顺序执行,由于配置寄存器可仅由一个进程在给定的时间/实例中修改。在此实施例中,外围设备初始化步骤可划分成两个较小的步骤组:用于初始化设备而不是修改配置寄存器的初始化步骤以及基于初始化步骤用于修改配置寄存器的寄存步骤。因此,用于初始化多个外围设备的初始化步骤可以由多个CPU并行执行。关于多个外围设备的寄存步骤可在随后需要的时候由CPU按顺序执行。可以在引导模块和内核模块上实施类似的模块化。多个CPU可以通过锁定访问共享资源来实现同步。
这时,可以分离模块化后的步骤以形成单个任务。例如,可将BIOS模块中的模块化后的步骤分组为任务bios_task1()和bios_task2()。分组后的任务中至少两个任务为同时可执行的任务。可根据每个任务设定的优先级确定任务的顺序。例如,可设置引导加载器模块的任务和BIOS模块的任务被并行执行。因此,当BIOS模块完成执行时,可实现像内核复制和解压缩这样的任务。可根据至少以下每个任务的属性生成描述这些任务的TDC:优先级、依存、地址、大小、错误码、锁定以及状态。
可选地,当执行部分或全部BIOS模块的步骤时,初始化所有CPU的中断向量表(InterruptVectorTable,IVT)。IVT是一个关联于CPU的,包含中断和中断处理器映射的表。这个表告知CPU在接收到一个特定的中断时执行哪个中断处理器(interrupthandler)(程序/功能)。
可选地,可分阶段初始化RAM。在每个阶段中,只初始化一部分RAM的区域。例如,在第一阶段和/或第二阶段中,只初始化用于复制BIOS模块和引导加载器模块中的任务的RAM区域。在第三阶段中,可初始化用于复制内核模块中的任务的其余RAM区域。可选地,由于TDC包括每个任务的大小,可以以更精细的方式处理RAM的初始化。例如,可以根据TDC中任务的顺序和大小在多个阶段中完成RAM的初始化。可选地,作为TDC中的一个任务,RAM的初始化和其他引导任务并行完成。
图7是计算机系统开启装置的方框图。该装置包括:多个处理模块702(包括如处理模块1和处理模块2等至少两个处理模块)以及存储模块703,其中在启动进程开始时,初始化多个处理模块702中的至少两个处理模块;存储模块703用于存储任务描述图表(TDC),其中TDC包括启动进程中至少两个任务的信息;以及多个处理模块中的每个已初始化的处理模块用于访问该TDC,每个模块根据TDC中至少两个任务的选择信息从至少两个任务中选择一个任务,每个模块根据TDC中所选任务的地址信息获取所选任务;并至少部分并行地执行所选任务。
可选地,多个处理模块702对应于图1中的处理器101和/或处理器108。存储模块对应于图1中的存储单元106和RAM104。
可选地,已初始化的处理模块中的第一处理模块还用于在访问TDC之后锁定该TDC,其中除了第一处理模块之外,其他处理模块不能访问该锁定的TDC。
可选地,选择信息还包括表示至少两个任务中的每个任务优先级的优先级字段,其中第一处理模块还用于首先在至少两个任务之中选择具有较高优先级的任务。
可选地,选择信息还包括表示至少两个任务中的第一任务依赖第二任务的依存字段,其中当第二任务标记为完成时,第一处理模块还用于选择第一任务。
可选地,选择信息还包括锁定字段,用于表示至少两个任务中的每个任务是否被已初始化的处理模块锁定,其中在选择第三任务之后,第一处理模块还用于锁定至少两个任务中的第三任务,以及除了第一处理模块,其他已初始化的处理模块不能选择标记为锁定的第三任务。
可选地,选择信息还包括表示至少两个任务中的每个任务是否完成的状态字段,其中在完成执行第四任务之后,第一处理模块还用于将至少两个任务中的第四任务的状态字段标记为完成,以及已初始化的处理模块不能选择标记为完成的第四任务。
可选地,在结束选择之后,第一处理模块还用于解锁TDC。
可选地,所述装置还包括初始化模块701,用于将多个处理模块中的一个处理模块初始化为启动处理模块,其中启动处理模块用于初始化多个处理模块中的其他处理模块。
可选地,至少两个任务包括由已初始化的处理模块可并行执行的任务并且来自包括基本输入输出系统(BIOS)模块、引导加载器模块和内核模块的启动进程。
可选地,将BIOS模块、引导加载器模块和内核模块执行的步骤模块化划分为独立或非同步步骤,并且将划分后的步骤分离重组成至少两个任务中的任务。
可选地,将BIOS模块中的外围设备初始化步骤划分为用于初始化设备而不是修改配置寄存器的初始化步骤和基于初始化步骤用于修改配置寄存器的寄存步骤,以及将所述初始化步骤和寄存步骤分离重组成至少两个任务中的不同任务。
可选地,选择信息还包括表示至少两个任务中每个任务大小的大小字段;以及
可选地,第一处理模块还用于根据执行任务的可用内存以及第五任务和在可用内存中执行的任务的大小字段确定是否执行至少两个任务中的第五任务。
可选地,至少两个已初始化的处理模块用于根据TDC继续选择和执行任务,直到所有记录在TDC中的任务被执行。
本领域普通技术人员应该了解本申请的所有或部分方法步骤可以通过对相关硬件做出指示的计算机程序来实施。这些程序可能存储在计算机可读存储媒介中。当程序运行时,程序执行本发明实施例指定的方法。存储介质可以为磁盘、只读存储器(ROM)或随机存取储存器(RAM)。
最后,应了解上述实施例仅仅用于阐释,并不限于本申请的技术方案。尽管参考上述优选实施例对本申请进行详细描述,但是应了解,所属领域的技术人员可在不脱离本申请和所附权利要求书的范围的情况下,做出各种修改、变更或等同替换。

Claims (51)

1.一种用于启动具有多个中央处理器(CPU)的计算机系统的方法,其特征在于,包括:
在启动进程开始时,初始化多个CPU中的至少两个CPU;
所述至少两个已初始化的CPU中的每个CPU访问存储在计算机系统中的任务描述图表(TDC),其中TDC包括所述启动进程中至少两个任务的信息;以及
所述至少两个已初始化的CPU中的每个CPU根据TDC中至少两个任务的选择信息从至少两个任务中选择一个任务;
所述至少两个已初始化的CPU中的每个CPU根据TDC中所选任务的地址信息获取所选任务;以及
已初始化的CPU至少部分并行地执行所选任务。
2.根据权利要求1所述的方法,其特征在于,当已初始化的CPU中的第一CPU访问所述TDC时,第一CPU锁定该TDC,以及除了所述第一CPU,其他CPU不能访问该锁定的TDC。
3.根据权利要求2所述的方法,所述选择信息还包括表示至少两个任务中每个任务的优先级的优先级字段,以及第一CPU首先选择至少两个任务之中具有较高优先级的任务。
4.根据权利要求2至3中任一项权利要求所述的方法,其特征在于,所述选择信息还包括表示至少两个任务中的第一任务依赖第二任务的依存字段,以及当所述第二任务标记为完成时,所述第一CPU可以选择所述第一任务。
5.根据权利要求2至4中任一项权利要求所述的方法,其特征在于,所述选择信息还包括锁定字段,用于表示所述至少两个任务中每个任务是否被已初始化的CPU锁定,其中在所述第一CPU根据所述选择信息选择至少两个任务中的第三任务之后,所述第一CPU将第三任务的锁定字段标记为锁定,以及除了所述第一CPU,其他已初始化的CPU不能选择所述已标记为锁定的第三任务。
6.根据权利要求2至5中任一项权利要求所述的方法,其特征在于,所述选择信息还包括表示至少两个任务中的每个任务是否完成的状态字段,其中在完成执行至少两个任务中的第四任务之后,所述第一CPU将第四任务的状态字段标记为完成,其中已初始化的CPU不能选择所述标记为完成的第四任务。
7.根据权利要求2至6中任一项权利要求所述的方法,其特征在于,在所述第一CPU结束选择之后,所述第一CPU将所述TDC解锁。
8.根据权利要求1至7中任一项权利要求所述的方法,其特征在于,所述初始化多个CPU中的至少两个CPU包括:
计算机系统的初始化电路初始化多个CPU中的一个CPU作为引导CPU;以及
所述引导CPU初始化所述多个CPU中的其他CPU。
9.根据权利要求1至8中任一项权利要求所述的方法,其特征在于,所述至少两个任务包括已初始化的CPU可并行执行的任务并且来自计算机系统的启动进程,所述启动进程包括基本输入输出系统(BIOS)模块、引导加载器模块和内核模块。
10.根据权利要求9所述的方法,其特征在于,将BIOS模块、引导加载器模块和内核模块的步骤模块化划分为独立或非同步步骤,并且将划分后的步骤分离重组成所述至少两个任务中的任务。
11.根据权利要求10所述的方法,其特征在于,将BIOS模块中的外围设备初始化步骤划分成用于初始化设备而不是修改配置寄存器的初始化步骤和基于初始化步骤用于修改配置寄存器的寄存步骤,以及将所述初始化步骤和寄存步骤分离重组成所述至少两个任务中的不同任务。
12.根据权利要求10或11所述的方法,其特征在于,根据模块化划分和分离生成的任务生成所述TDC。
13.根据权利要求2至12中任一项权利要求所述的方法,其特征在于,所述选择信息还包括表示至少两个任务中每个任务大小的大小字段,以及所述第一CPU根据执行任务的可用内存和第五任务和在可用内存中执行的任务的大小字段确定是否执行至少两个任务中的第五任务。
14.根据权利要求1至13中任一项权利要求所述的方法,其特征在于,在所述初始化步骤之后,已初始化的CPU重复进行访问、选择、获取和执行的步骤,直到所有记录在所述TDC中的任务被执行。
15.一种计算机系统,其特征在于,包括:
与存储器耦合的多个中央处理器(CPU),其中在启动进程开始时,初始化多个CPU中的至少两个CPU;
所述存储器用于存储任务描述图表(TDC)和第一指令,其中所述TDC包括所述启动进程中至少两个任务的信息;以及
所述多个CPU中的至少两个已初始化的CPU中的每个CPU用于根据所述第一指令访问所述TDC,每个已初始化的CPU根据所述TDC中至少两个任务的选择信息从至少两个任务中选择一个任务,每个已初始化的CPU根据所述TDC中所选任务的地址信息获取所选任务;以及至少部分并行地执行所选任务。
16.根据权利要求15所述的计算机系统,其特征在于,已初始化的CPU中的第一CPU还用于根据所述第一指令在访问所述TDC之后锁定所述TDC,以及除了所述第一CPU,其他CPU不能访问所述锁定的TDC。
17.根据权利要求16所述的计算机系统,其特征在于,所述选择信息还包括表示所述至少两个任务中每个任务的优先级的优先级字段,以及第一CPU还用于首先在至少两个任务之中选择具有较高优先级的任务。
18.根据权利要求16至17中任一项权利要求所述的计算机系统,其特征在于,所述选择信息还包括表示至少两个任务中的第一任务依赖第二任务的依存字段,以及当所述第二任务标记为完成时,所述第一CPU还用于根据所述第一指令选择所述第一任务。
19.根据权利要求16至18中任一项权利要求所述的计算机系统,其特征在于,所述选择信息还包括锁定字段,用于表示所述至少两个任务中每个任务是否被已初始化的CPU锁定;在选择第三任务之后,所述第一CPU还用于根据所述第一指令标记所述至少两个任务中第三任务的锁定字段,以及除了所述第一CPU,其他已初始化的CPU不能选择所述标记为锁定的第三任务。
20.根据权利要求16至19中任一项权利要求所述的计算机系统,其特征在于,所述选择信息还包括表示至少两个任务中的每个任务是否完成的状态字段,在完成执行第四任务之后,所述第一CPU还用于将所述至少两个人中第四任务的状态字段标记为完成,以及已初始化的CPU不能选择所述标记为完成的第四任务。
21.根据权利要求16至20中任一项权利要求所述的计算机系统,其特征在于,所述第一CPU还用于在结束选择之后根据所述第一指令将所述TDC解锁。
22.根据权利要求16至21中任一项权利要求所述的计算机系统,其特征在于,还包括用于初始化多个CPU中的一个CPU为引导CPU的初始化电路,其中所述引导CPU用于根据存储在存储器中的第二指令初始化所述多个CPU中的其他CPU。
23.根据权利要求15至22中任一项权利要求所述的计算机系统,其特征在于,所述至少两个任务包括已初始化的CPU可并行执行的任务并且来自计算机系统的启动进程,所述启动进程包括基本输入输出系统(BIOS)模块、引导加载器模块和内核模块。
24.根据权利要求23所述的计算机系统,其特征在于,将BIOS模块、引导加载器模块和内核模块执行的步骤模块化划分为独立或非同步步骤,并且将划分后的步骤分离重组成所述至少两个任务中的任务。
25.根据权利要求24所述的计算机系统,其特征在于,将BIOS模块中的外围设备初始化步骤划分成用于初始化设备而不是修改配置寄存器的初始化步骤和基于初始化步骤用于修改配置寄存器的寄存步骤,以及将所述初始化步骤和寄存步骤分离重组成所述至少两个任务中的不同任务。
26.根据权利要求16至25中任一项权利要求所述的计算机系统,其特征在于,所述选择信息还包括表示至少两个任务中每个任务大小的大小字段,以及所述第一CPU根据执行任务的可用内存和第五任务和在可用内存中执行的任务的大小字段确定是否执行至少两个任务中的第五任务。
27.根据权利要求15至26中任一项权利要求所述的计算机系统,其特征在于,所述至少两个已初始化的CPU用于根据所述TDC继续选择和执行任务,直到所有记录在所述TDC中的任务被执行。
28.一种非瞬时计算机可读媒体,其包含用于启动具有多个中央处理器(CPU)的计算机系统的代码,当多个CPU中的多个已初始化的CPU执行所述代码时,实现以下步骤的执行:
每个已初始化的CPU访问存储在计算机系统中的任务描述图表(TDC),其中所述TDC包括启动进程中至少两个任务的信息;以及
每个已初始化的CPU根据TDC中至少两个任务的选择信息从至少两个任务中选择一个任务;
每个已初始化的CPU根据TDC中所选任务的地址信息获取所选任务;以及
已初始化的CPU至少部分并行地执行所选任务。
29.一种任务描述图表(TDC),其特征在于,包括:
选择信息字段,用于表示与至少两个任务对应的选择信息;以及
地址信息字段,用于表示与至少两个任务对应的地址信息;
其中具有多个CPU的计算机系统中的多个已初始化的中央处理器(CPU)根据选择信息字段从所述至少两个任务中选择任务,根据所述地址信息字段获取所选任务,以及至少部分并行地执行所选任务。
30.根据权利要求29所述的任务描述图表,其特征在于,还包括用于表示多个已初始化的CPU中的第一CPU是否锁定所述TDC的TDC锁定字段,以及除了所述第一CPU,其他CPU不能访问所述锁定的TDC。
31.根据权利要求30所述的任务描述图表,其特征在于,所述选择信息字段还包括表示至少两个任务中每个任务的优先级的优先级字段,以及所述第一CPU首先选择至少两个任务之中具有较高优先级的任务。
32.根据权利要求30至31中任一项权利要求所述的任务描述图表,其特征在于,所述选择信息还包括表示至少两个任务中的第一任务依赖第二任务的依存字段,以及当所述第二任务标记为完成时,所述第一CPU可以选择所述第一任务。
33.根据权利要求30至32中任一项权利要求所述的任务描述图表,其特征在于,所述选择信息包括锁定字段,用于表示所述至少两个任务中的每个任务是否被所述第一已初始化的CPU锁定。
34.根据权利要求30至33中任一项权利要求所述的任务描述图表,其特征在于,所述选择信息包括表示所述至少两个任务中的每个任务是否完成的状态字段。
35.根据权利要求30至34中任一项权利要求所述的方法,其特征在于,所述选择信息还包括表示至少两个任务中每个任务的大小的大小字段,以及所述第一CPU根据执行任务的可用内存和第五任务和在可用内存中执行的任务的大小字段确定是否执行所述至少两个任务中的第五任务。
36.根据权利要求30至35中任一项权利要求所述的任务描述图表,其特征在于,所述至少两个任务包括已初始化的CPU可并行执行的任务并且来自计算机系统的启动进程,所述启动进程包括基本输入输出系统(BIOS)模块、引导加载器模块和内核模块。
37.根据权利要求36所述的任务描述图表,其特征在于,将BIOS模块、引导加载器模块和内核模块执行的步骤模块化划分为独立或非同步步骤,并且将划分后的步骤分离重组成至少两个任务中的任务。
38.根据权利要求34所述的任务描述图表,其特征在于,将BIOS模块中的外围设备初始化步骤划分成用于初始化设备而不是修改配置寄存器的初始化步骤和基于初始化步骤用于修改配置寄存器的寄存步骤,以及将所述初始化步骤和寄存步骤分离重组成至少两个任务中的不同任务。
39.一种用于计算机系统的启动装置,其特征在于,包括:
初始化模块、多个处理模块以及存储模块,
其中在启动进程开始时,初始化多个处理模块中的至少两个处理模块;
所述存储模块用于存储任务描述图表(TDC),其中所述TDC包括所述启动进程中至少两个任务的信息;以及
所述多个处理模块中至少两个已初始化的处理模块中的每个处理模块用于访问所述TDC,每个已初始化的处理模块根据所述TDC中至少两个任务的选择信息从至少两个任务中选择一个任务,每个已初始化的处理模块根据所述TDC中所选任务的地址信息获取所选任务;以及至少部分并行地执行所选任务。
40.根据权利要求39所述的装置,其特征在于,已初始化的处理模块中的第一处理模块还用于在访问所述TDC之后锁定所述TDC,以及除了所述第一处理模块,其他处理模块不能访问所述锁定的TDC。
41.根据权利要求37所述的装置,其特征在于,所述选择信息还包括表示至少两个任务中每个任务的优先级的优先级字段,以及所述第一处理模块还用于首先在所述至少两个任务之中选择具有较高优先级的任务。
42.根据权利要求40至41中任一项权利要求所述的装置,其特征在于,所述选择信息还包括表示至少两个任务中的第一任务依赖第二任务的依存字段,以及当所述第二任务标记为完成时,所述第一处理模块还用于选择所述第一任务。
43.根据权利要求40至42中任一权利要求所述的装置,其特征在于,所述选择信息还包括锁定字段,用于表示所述至少两个任务中的每个任务是否被已初始化的处理模块锁定,在选择第三任务之后,第一处理模块还用于锁定至少两个任务中的第三任务,以及除了第一处理模块之外,其他已初始化的处理模块不能选择标记为锁定的第三任务。
44.根据权利要求40至43中任一项权利要求所述的装置,其特征在于,所述选择信息还包括表示至少两个任务中的每个任务是否完成的状态字段,在完成执行第四任务之后,所述第一处理模块还用于将所述至少两个人中第四任务的状态字段标记为完成,以及已初始化的处理模块不能选择所述已标记为完成的第四任务。
45.根据权利要求40至44中任一项权利要求所述的装置,其特征在于,所述第一处理模块还用于在结束选择之后将所述TDC解锁。
46.根据权利要求40至45中任一项权利要求所述的装置,其特征在于,还包括初始化模块,用于初始化多个处理模块中的处理模块作为启动处理模块,其中启动处理模块用于初始化多个处理模块中的其他处理模块。
47.根据权利要求40至46中任一项权利要求所述的方法,其特征在于,所述至少两个任务包括已初始化的处理模块可并行执行的任务并且来自计算机系统的启动进程,所述启动进程基本输入输出系统(BIOS)模块、引导加载器模块和内核模块。
48.根据权利要求47所述的装置,其特征在于,将BIOS模块、引导加载器模块和内核模块执行的步骤模块化划分为独立或非同步步骤,并且将划分后的步骤分离重组成所述至少两个任务中的任务。
49.根据权利要求48所述的装置,其特征在于,将BIOS模块中的外围设备初始化步骤划分成用于初始化设备而不是修改配置寄存器的初始化步骤和基于初始化步骤用于修改配置寄存器的寄存步骤,以及将所述初始化步骤和寄存步骤分离重组成所述至少两个任务中的不同任务。
50.根据权利要求40至49中任一项权利要求所述的装置,其特征在于,所述选择信息还包括表示至少两个任务中每个任务的大小的大小字段,以及所述第一处理模块还用于根据执行任务的可用内存和第五任务和在可用内存中执行的任务的大小字段确定是否执行至少两个任务中的第五任务。
51.根据权利要求39至50中任一项权利要求所述的装置,其特征在于,所述至少两个已初始化的处理模块用于根据所述TDC继续选择和执行任务,直到所有记录在所述TDC中的任务被执行。
CN201380074736.7A 2013-03-15 2013-03-15 用于启动具有多个中央处理器的计算机系统的方法 Active CN105190550B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/072764 WO2014139177A1 (en) 2013-03-15 2013-03-15 Booting method for computer system with multiple central processing units

Publications (2)

Publication Number Publication Date
CN105190550A true CN105190550A (zh) 2015-12-23
CN105190550B CN105190550B (zh) 2018-11-16

Family

ID=51535854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380074736.7A Active CN105190550B (zh) 2013-03-15 2013-03-15 用于启动具有多个中央处理器的计算机系统的方法

Country Status (8)

Country Link
US (1) US9690595B2 (zh)
EP (1) EP2972819B1 (zh)
JP (1) JP2016513839A (zh)
KR (1) KR101766695B1 (zh)
CN (1) CN105190550B (zh)
AU (1) AU2013382615B2 (zh)
RU (1) RU2630171C2 (zh)
WO (1) WO2014139177A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203429A (zh) * 2016-03-18 2017-09-26 阿里巴巴集团控股有限公司 一种基于分布式锁加载分布式任务的方法以及装置
CN107368255A (zh) * 2017-07-25 2017-11-21 广东欧珀移动通信有限公司 解锁方法、移动终端及计算机可读存储介质
CN108153553A (zh) * 2018-01-23 2018-06-12 郑州云海信息技术有限公司 一种高端服务器启动方法、系统、装置及计算机存储介质
CN111052083A (zh) * 2017-08-16 2020-04-21 三星电子株式会社 用于在启动期间管理服务的调度的方法和装置
CN114691594A (zh) * 2022-03-11 2022-07-01 珠海海奇半导体有限公司 一种基于非对称双核mcu设计的芯片架构及其实现方法
WO2022161101A1 (zh) * 2021-01-29 2022-08-04 苏州浪潮智能科技有限公司 多核片上系统的uboot启动方法、装置、设备及存储介质
CN115827079A (zh) * 2023-01-09 2023-03-21 深流微智能科技(深圳)有限公司 启动图形处理器的控制方法、控制装置和电子设备

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2962192B1 (en) 2014-05-09 2017-12-06 Huawei Technologies Co., Ltd. System and method thereof to optimize boot time of computers having multiple cpus
KR20160105657A (ko) * 2015-02-27 2016-09-07 한국전자통신연구원 멀티코어 프로그래밍 장치 및 방법
US10977092B2 (en) * 2015-10-16 2021-04-13 Qualcomm Incorporated Method for efficient task scheduling in the presence of conflicts
EP3365774B1 (en) * 2015-10-23 2022-04-06 Oracle International Corporation System and method for booting application servers in parallel
US9846583B2 (en) * 2015-12-15 2017-12-19 Xilinx, Inc. Hardware power-on initialization of an SoC through a dedicated processor
US10025587B2 (en) * 2016-08-17 2018-07-17 American Megatrends Inc. Method of bootup and installation, and computer system thereof
CN107704270B (zh) * 2017-09-21 2020-10-20 卡斯柯信号有限公司 基于二取二架构的μC/OS-II系统启动引导方法及装置
JP6942601B2 (ja) * 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US11108996B1 (en) 2020-07-28 2021-08-31 Bank Of America Corporation Two-way intercept using coordinate tracking and video classification
US20220244966A1 (en) * 2021-02-03 2022-08-04 Ampere Computing Llc Multi-socket computing system employing a parallelized boot architecture with partially concurrent processor boot-up operations, and related methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability
US6336185B1 (en) * 1998-09-24 2002-01-01 Phoenix Technologies Ltd. Use of other processors during BIOS boot sequence to minimize boot time
JP2011232791A (ja) * 2010-04-23 2011-11-17 Seiko Epson Corp 情報処理装置、及び情報処理方法
CN102648453A (zh) * 2009-11-24 2012-08-22 超威半导体公司 分布式多核存储器初始化

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401202B1 (en) * 1999-06-18 2002-06-04 Phoenix Technologies Ltd. Multitasking during BIOS boot-up
US6732264B1 (en) 1999-12-14 2004-05-04 Intel Corporation Multi-tasking boot firmware
US7181609B2 (en) 2003-08-15 2007-02-20 Intel Corporation System and method for accelerated device initialization
JP4840605B2 (ja) * 2007-10-24 2011-12-21 日本電気株式会社 Osの起動方法
US8683213B2 (en) * 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
US8191073B2 (en) * 2008-03-04 2012-05-29 Fortinet, Inc. Method and system for polling network controllers
US7987336B2 (en) 2008-05-14 2011-07-26 International Business Machines Corporation Reducing power-on time by simulating operating system memory hot add

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability
US6336185B1 (en) * 1998-09-24 2002-01-01 Phoenix Technologies Ltd. Use of other processors during BIOS boot sequence to minimize boot time
CN102648453A (zh) * 2009-11-24 2012-08-22 超威半导体公司 分布式多核存储器初始化
JP2011232791A (ja) * 2010-04-23 2011-11-17 Seiko Epson Corp 情報処理装置、及び情報処理方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203429A (zh) * 2016-03-18 2017-09-26 阿里巴巴集团控股有限公司 一种基于分布式锁加载分布式任务的方法以及装置
CN107368255A (zh) * 2017-07-25 2017-11-21 广东欧珀移动通信有限公司 解锁方法、移动终端及计算机可读存储介质
CN107368255B (zh) * 2017-07-25 2019-04-12 Oppo广东移动通信有限公司 解锁方法、移动终端及计算机可读存储介质
CN111052083A (zh) * 2017-08-16 2020-04-21 三星电子株式会社 用于在启动期间管理服务的调度的方法和装置
CN111052083B (zh) * 2017-08-16 2023-11-07 三星电子株式会社 用于在启动期间管理服务的调度的方法和装置
CN108153553A (zh) * 2018-01-23 2018-06-12 郑州云海信息技术有限公司 一种高端服务器启动方法、系统、装置及计算机存储介质
WO2022161101A1 (zh) * 2021-01-29 2022-08-04 苏州浪潮智能科技有限公司 多核片上系统的uboot启动方法、装置、设备及存储介质
CN114691594A (zh) * 2022-03-11 2022-07-01 珠海海奇半导体有限公司 一种基于非对称双核mcu设计的芯片架构及其实现方法
CN115827079A (zh) * 2023-01-09 2023-03-21 深流微智能科技(深圳)有限公司 启动图形处理器的控制方法、控制装置和电子设备
CN115827079B (zh) * 2023-01-09 2023-07-28 深流微智能科技(深圳)有限公司 启动图形处理器的控制方法、控制装置和电子设备

Also Published As

Publication number Publication date
AU2013382615B2 (en) 2016-06-30
KR101766695B1 (ko) 2017-08-09
US20160004542A1 (en) 2016-01-07
WO2014139177A1 (en) 2014-09-18
RU2015144322A (ru) 2017-04-24
US9690595B2 (en) 2017-06-27
CN105190550B (zh) 2018-11-16
KR20150132343A (ko) 2015-11-25
AU2013382615A1 (en) 2015-10-08
EP2972819A4 (en) 2016-03-30
RU2630171C2 (ru) 2017-09-05
EP2972819A1 (en) 2016-01-20
JP2016513839A (ja) 2016-05-16
EP2972819B1 (en) 2020-01-01

Similar Documents

Publication Publication Date Title
CN105190550A (zh) 用于启动具有多个中央处理器的计算机系统的方法
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
US7743072B2 (en) Database for storing device handle data in an extensible firmware interface environment
US11385993B2 (en) Dynamic integration of command line utilities
US7454547B1 (en) Data exchange between a runtime environment and a computer firmware in a multi-processor computing system
CN110134446B (zh) 启动pcie设备扫描的方法
CN100451966C (zh) 发现数据处理系统内的硬件的方法和设备
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP5476481B2 (ja) ノード故障の対処
US9274804B2 (en) Overlapped boot task fetches and boot task execution to reduce boot time in an electrical device
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
US9727390B1 (en) Invoking a firmware function
US8145819B2 (en) Method and system for stealing interrupt vectors
CN105094870A (zh) 64位Linux操作系统兼容32位应用软件的方法
US7873807B1 (en) Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware
US8078637B1 (en) Memory efficient peim-to-peim interface database
US20050086665A1 (en) Autonomous device driver
US9836315B1 (en) De-referenced package execution
JP2004021987A (ja) データインタフェースのロケーションを提供する方法およびシステム
JP2000276359A (ja) 情報処理装置、プログラム初期化方法及びプログラム提供媒体
WO2012138376A1 (en) Method and devices for determining parallelism of tasks of a program
US7225427B2 (en) Method and device for providing computer system component data
CN117075973A (zh) 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统
CN116775292A (zh) 硬件资源的分配方法及装置、电子设备与存储介质
Wu et al. A Simulation-Based Multi-CPU Architecture Virtual Machine Management System for OpenStack

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant