CN111857844A - 一种多核处理器的初始化方法及相关装置 - Google Patents

一种多核处理器的初始化方法及相关装置 Download PDF

Info

Publication number
CN111857844A
CN111857844A CN202010567659.0A CN202010567659A CN111857844A CN 111857844 A CN111857844 A CN 111857844A CN 202010567659 A CN202010567659 A CN 202010567659A CN 111857844 A CN111857844 A CN 111857844A
Authority
CN
China
Prior art keywords
initialization
processor
operations
processors
board level
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.)
Pending
Application number
CN202010567659.0A
Other languages
English (en)
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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN202010567659.0A priority Critical patent/CN111857844A/zh
Publication of CN111857844A publication Critical patent/CN111857844A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file

Landscapes

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

Abstract

本申请公开了一种多核处理器的初始化方法,首先控制每个处理器执行对应的配置操作,然后根据初始化依赖关系将多个前置板级初始化操作和多个后置板级初始化操作分配至每个处理器中,最后每个处理器按照顺序对分配好的初始化操作执行,实现了将初始化操作的并行处理,提高初始化效率,降低操作时长,缩短启动时间。本申请还公开了一种多核处理器的初始化装置、服务器以及计算机可读存储介质,具有以上有益效果。

Description

一种多核处理器的初始化方法及相关装置
技术领域
本申请涉及计算机技术领域,特别涉及一种多核处理器的初始化方法、初始化装置、服务器以及计算机可读存储介质。
背景技术
目前,嵌入式系统一般都需要加载操作系统,在操作系统的基础上运行应用软件才能执行相应的任务。在加载操作系统前需要有一段程序对外设进行初始化,建立内存空间映射表,从而建立完整的软件环境和硬件环境,为运行操作系统做好准备。加载操作系统前的初始化操作就是Boot Loader。Boot Loader是在操作系统内核运行之前运行的一段程序。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
现有技术中,应用比较普遍的嵌入式Boot Loader是U-boot(Universal BootLoader)方式,U-boot作为Boot Loader具有与Linux很相似的目录结构和编译形式,提高了嵌入式开发的便利程度。但是,现有技术中采用u-boot对处理器进行初始化操作的操作时长较长,导致启动时间长。
因此,如何降低处理器初始化操作中的操作时长,缩短启动时长,是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种多核处理器的初始化方法、初始化装置、服务器以及计算机可读存储介质,通过将多个前置板级初始化操作和多个后置板级初始化操作分配至多个处理器进行处理,然后每个处理器分别执行分配对应的初始化操作,实现并行处理初始化操作,提高初始化效率,降低操作时长,缩短启动时间。
为解决上述技术问题,本申请提供一种多核处理器的初始化方法,包括:
控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作;其中,所述N大于等于2;
根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器;
所述第一处理器至所述第N处理器分别执行分配到的前置板级初始化操作;
当所有处理器执行完成所有前置板级初始化操作时,所述第一处理器至所述第N处理器分别执行分配到的后置板级初始化操作;
当所有处理器执行完成所有后置板级初始化操作时,所述第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
可选的,控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作,包括:
控制所述第一处理器至所述第N处理器执行CPU模式配置操作;
控制所述第一处理器至所述第N处理器执行vector配置操作;
控制所述第一处理器至所述第N处理器执行寄存器配置操作;
控制所述第一处理器执行运行环境建立操作。
可选的,根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器,包括:
根据所述预设的初始化依赖关系表和处理器的数量将所述多个前置板级初始化操作和所述多个后置板级初始操作中无依赖关系的初始化操作平均分配至所有处理器;
根据所述预设的初始化依赖关系表将所述多个前置板级初始化操作和所述多个后置板级初始操作中存在依赖关系的初始化操作设置同步机制标记;
根据同一处理器执行规则将设有所述同步机制标记的初始化操作分配至所有处理器。
可选的,还包括:
当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,所述第一处理器执行uboot重定位操作。
本申请还提供一种多核处理器的初始化装置,包括:
配置环境建立模块,用于控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作;其中,所述N大于等于2;
初始化操作分配模块,用于根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器;
前置初始化操作模块,用于控制所述第一处理器至所述第N处理器分别执行分配到的前置板级初始化操作;
后置初始化操作模块,用于当所有处理器执行完成所有前置板级初始化操作时,控制所述第一处理器至所述第N处理器分别执行分配到的后置板级初始化操作;
系统启动模块,用于当所有处理器执行完成所有后置板级初始化操作时,控制所述第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
可选的,所述配置环境建立模块,包括:
CPU模式配置操作模块,用于控制所述第一处理器至所述第N处理器执行CPU模式配置操作;
vector配置操作模块,用于控制所述第一处理器至所述第N处理器执行vector配置操作;
寄存器配置操作模块,用于控制所述第一处理器至所述第N处理器执行寄存器配置操作;
运行环境建立模块,用于控制所述第一处理器执行运行环境建立操作。
可选的,所述初始化操作分配模块,包括:
初始化操作分配模块,用于根据所述预设的初始化依赖关系表和处理器的数量将所述多个前置板级初始化操作和所述多个后置板级初始操作中无依赖关系的初始化操作平均分配至所有处理器;
依赖关系标记模块,用于根据所述预设的初始化依赖关系表将所述多个前置板级初始化操作和所述多个后置板级初始操作中存在依赖关系的初始化操作设置同步机制标记;
依赖初始化操作分配模块,用于根据同一处理器执行规则将设有所述同步机制标记的初始化操作分配至所有处理器。
可选的,还包括:
重定位操作模块,用于当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,所述第一处理器执行uboot重定位操作。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的初始化方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的初始化方法的步骤。
本申请所提供的一种多核处理器的初始化方法,包括:控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作;其中,所述N大于等于2;根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器;所述第一处理器至所述第N处理器分别执行分配到的前置板级初始化操作;当所有处理器执行完成所有前置板级初始化操作时,所述第一处理器至所述第N处理器分别执行分配到的后置板级初始化操作;当所有处理器执行完成所有后置板级初始化操作时,所述第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
首先控制每个处理器执行对应的配置操作,然后根据初始化依赖关系将多个前置板级初始化操作和多个后置板级初始化操作分配至每个处理器中,最后每个处理器按照顺序对分配好的初始化操作执行,实现了将初始化操作的并行处理,提高初始化效率,降低操作时长,缩短启动时间。
本申请还提供一种多核处理器的初始化装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种多核处理器的初始化方法的流程图;
图2为本申请实施例所提供的一种多核处理器的初始化装置的结构示意图。
具体实施方式
本申请的核心是提供一种多核处理器的初始化方法、初始化装置、服务器以及计算机可读存储介质,通过将多个前置板级初始化操作和多个后置板级初始化操作分配至多个处理器进行处理,然后每个处理器分别执行分配对应的初始化操作,实现并行处理初始化操作,提高初始化效率,降低操作时长,缩短启动时间。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,应用比较普遍的嵌入式Boot Loader是U-boot(Universal BootLoader)方式,U-boot作为Boot Loader具有与Linux很相似的目录结构和编译形式,提高了嵌入式开发的便利程度。但是,现有技术中采用u-boot对处理器进行初始化操作的操作时长较长,导致启动时间长。
造成这个问题的原因是没有充分利用到嵌入式CPU中多核的优势,仅仅利用主CPU初始化外设,其他CPU处于待命状态,这样就不能在boot loader阶段充分发挥多核的优势,造成了资源的闲置,延长了启动时间。本专利正是针对这个问题提出了自己的解决方案,充分利用除主CPU外的其他CPU,在启动阶段实现外围设备的并行初始化,从而达到在bootloader阶段加快启动速度,缩短启动时间的目的。以双核为例现有U-boot的启动流程如图1所示,可以看出,在前置板级初始化阶段,只有CPU0在做初始化工作,有大量的初始化需要完成,而CPU1则一直处于休眠状态。同样的情况也发生在在后续的后置板级初始化阶段,大量的初始化任务仅靠CPU0独自完成,CPU1处于休眠状态。这样的作法造成初始化的时间很长,大部分的时间都消耗在被前置板级初始化和后置板级初始化两个阶段。本专利正是针对这个问题做了创新,充分利用多核CPU的优势,在两个板级初始化阶段做并行处理,从而缩短初始化的时间。
因此,本申请提供一种多核处理器的初始化方法,首先控制每个处理器执行对应的配置操作,然后根据初始化依赖关系将多个前置板级初始化操作和多个后置板级初始化操作分配至每个处理器中,最后每个处理器按照顺序对分配好的初始化操作执行,实现了将初始化操作的并行处理,提高初始化效率,降低操作时长,缩短启动时间。
以下通过一个实施例,对本申请提供的一种多核处理器的初始化方法进行说明。
请参考图1,图1为本申请实施例所提供的一种多核处理器的初始化方法的流程图。
本实施例中,该方法可以包括:
S101,控制第一处理器至第N处理器执行配置操作,第一处理器执行运行环境建立操作;其中,N大于等于2;
本步骤旨在控制该第一处理器至第N处理器执行配置操作,第一处理器执行运行环境建立操作。也就是,本步骤中主要是每个处理器执行对应的配置操作。
本步骤中所执行的配置操作可以参考现有技术提供的任意一种配置操作执行方式,在此不做限定。具体的,其中的配置操作可以包括:CPU模式配置操作、vector配置操作、寄存器配置操作。
并且,本步骤中的N大于等于2。因此,本实施例中存在至少两个处理器执行相关的初始化操作。也就是说在对多核处理器执行初始化操作时,至少需要两个处理器需要执行对应的配置操作。
可选的,本步骤可以包括:
步骤1,控制第一处理器至第N处理器执行CPU模式配置操作;
步骤2,控制第一处理器至第N处理器执行vector配置操作;
步骤3,控制第一处理器至第N处理器执行寄存器配置操作;
步骤4,控制第一处理器执行运行环境建立操作。
可见,本可选方案主要是对第一处理器至第N处理器中的执行配置操作进行说明。具体的,本可选方案中首先控制第一处理器至第N处理器执行CPU模式配置操作、vector配置操作、寄存器配置操作。当CPU模式配置操作、vector配置操作、寄存器配置操作执行完成后,第一处理器执行运行环境建立操作,其他处理器等待第一处理器将运行环境建立操作执行完成。
S102,根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至第一处理器至第N处理器;
在S101的基础上,本步骤旨在根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至第一处理器至第N处理器。也就是说,通过初始化依赖关系表中的相互依赖关系,将多个前置板级初始化操作和多个后置板级初始化操作之间进行分组,然后将每个分组中的初始化操作配置给对应的处理器。
其中,预设的初始化依赖关系表指的是表明了各个初始化操作之间的相互依赖关系。该依赖关系指后一个初始化操作的执行条件是前一个初始化操作的结果,因此,在执行过程中需要先执行前一个初始化操作然后才能执行后一个初始化操作,执行顺序相互依赖。
进一步的,根据预设的初始化依赖关系表就是将相互之间没有依赖关系的初始化操作分配至不同的处理器中,存在依赖关系的初始化操作尽量分配至同一个处理器中。当存在依赖关系的初始化操作被分配至不同的处理器时,则设立同步机制以便该依赖关系对应的初始化操作保持一致的执行顺序。例如,存在两个初始化操作,即A和B。A和B之间存在依赖关系,即先执行A才能执行B。但是,A被分配至第一处理器中,B被分配至至第二处理器中。因此,需要通过同步机制,保持第一处理器先执行A,第二处理器确定A被执行后,才能执行B。
此外,本步骤中存在多个前置板级初始化操作和多个后置板级初始化操作。该前置板级初始化操作和后置板级初始化操作之间就是存在依赖关系的初始化操作。需要先执行前置板级初始化操作然后才可以执行后置板级初始化操作。
可选的,本步骤可以包括:
步骤1,根据预设的初始化依赖关系表和处理器的数量将多个前置板级初始化操作和多个后置板级初始操作中无依赖关系的初始化操作平均分配至所有处理器;
步骤2,根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始操作中存在依赖关系的初始化操作设置同步机制标记;
步骤3,根据同一处理器执行规则将设有同步机制标记的初始化操作分配至所有处理器。
可见,本可选方案中主要是如何将初始化操作分配进行说明。具体来说,本可选方案中按照如下规则进行分配。其中,该规则可以包括没有依赖关系的初始化步骤分到不同的CPU完成;有前后依赖关系的初始化步骤尽量由同一个CPU完成,如果需要不同CPU完成则要有一定的同步机制保证初始化的正确性。其中,尽量由同一个CPU完成的初始化就是本可选方案中的同一处理器执行规则。
其中,同步机制可以通过中断操作实现,也可以通过CPU的轮询操作在寄存器阵列中的寄存器实现。具体实现的方式是通过配置同步模块中的ctrl模块来实现的。Ctrl模块的作用主要是对同步模块进行配置,包括同步方式,同步模块的打开关闭。其中GeneralRegisters Array是一组通用寄存器,可自定义每个寄存器的及每一bit的用处,从而实现高自由度的同步处理。
通过同步机制就可以保持不同的处理器中存在相互依赖的初始化操作可以根据依赖的先后顺序执行。
可选的,本实施例还可以包括:
当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,第一处理器执行uboot重定位操作。
可见,本可选方案中主要是对在处理器初始化中的uboot重定位操作的执行时间进行说明。
S103,第一处理器至第N处理器分别执行分配到的前置板级初始化操作;
在S102的基础上,本步骤旨在控制第一处理器至第N处理器分别执行分配到的前置板级初始化操作。也就是,每个处理器都执行被分配到的前置板级初始化操作。
其中,每个处理器执行前置板级初始化操作的具体方式可以参考现有技术提供的任意一种执行方式,在此不做具体限定。
需要说明的是,本步骤中当存在依赖关系的前置板级初始化操作存在于不同的处理器中时,对应的处理器通过同步机制执行存在依赖关系的前置板级初始化操作。也就是,先执行作为条件的前置板级初始化操作,然后通过同步机制判断该前置板级初始化操作是否执行结束。若是,则执行后续的前置板级初始化操作。若否,则继续执行等待。
S104,当所有处理器执行完成所有前置板级初始化操作时,第一处理器至第N处理器分别执行分配到的后置板级初始化操作;
在S103的基础上,本步骤旨在当执行完所有的前置板级初始化操作后,每个处理器执行被分配到的后置板级初始化操作。也就是,每个处理器都执行被分配到的后置板级初始化操作。
其中,每个处理器执行后置板级初始化操作的具体方式可以参考现有技术提供的任意一种执行方式,在此不做具体限定。
需要说明的是,本步骤中当存在依赖关系的后置板级初始化操作存在于不同的处理器中时,对应的处理器通过同步机制执行存在依赖关系的后置板级初始化操作。也就是,先执行作为条件的后置板级初始化操作,然后通过同步机制判断该后置板级初始化操作是否执行结束。若是,则执行后续的后置板级初始化操作。若否,则继续执行等待。
S105,当所有处理器执行完成所有后置板级初始化操作时,第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
在S104的基础上,本步骤旨在当所有处理器执行完成所有后置板级初始化操作时,第一处理器执行系统启动操作,其他所有处理器进入休眠状态。也就是,所有的初始化操作执行完成后,就正常启动系统执行后续的操作。
据此,可见本实施例中的所有初始化操作均是分配至对应的处理器进行执行,并不是在一个处理器中执行。虽然初始化操作的总数没有变化,但是分配至多个处理器执行,执行效率提高,降低了处理的操作时长,也就缩短了启动时长。
综上,本实施例首先控制每个处理器执行对应的配置操作,然后根据初始化依赖关系将多个前置板级初始化操作和多个后置板级初始化操作分配至每个处理器中,最后每个处理器按照顺序对分配好的初始化操作执行,实现了将初始化操作的并行处理,提高初始化效率,降低操作时长,缩短启动时间。
以下通过一个具体的实施例,对本申请提供的一种多核处理器的初始化方法进行说明。
本实施例中,实现前置板级初始化操作和后置板级初始化操作需要遵循以下规则进行分配:
不存在依赖关系的初始化步骤分到不同的CPU完成;
存在依赖关系的初始化步骤尽量由同一个CPU完成,如果需要不同CPU完成则要有一定的同步机制保证初始化的正确性。
根据上述的原则,本实施例在前置板级初始化过程中与DDR有关的初始化操作,包括DDR控制器的配置,DDR空间的预留和部分的重定位步骤分配给了CPU 0,其余的初始化操作,芯片内部模块和软件模块的初始化留给了CPU 1。
具体的,该初始化操作可以包括:
步骤1,控制CPU 0和CPU 1执行配置操作,CPU 0执行运行环境建立操作;其中,配置操作包括:CPU模式配置操作、vector配置操作、寄存器配置操作。
步骤2,CPU 0至CPU 1分别执行分配到的前置板级初始化操作;
步骤3,当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,CPU 0执行uboot重定位操作
步骤4,当所有处理器执行完成所有前置板级初始化操作时,CPU 0至CPU 1分别执行分配到的后置板级初始化操作;
步骤5,当所有处理器执行完成所有后置板级初始化操作时,CPU 0执行系统启动操作,其他所有处理器进入休眠状态。
可见,本实施例首先控制每个处理器执行对应的配置操作,然后根据初始化依赖关系将多个前置板级初始化操作和多个后置板级初始化操作分配至每个处理器中,最后每个处理器按照顺序对分配好的初始化操作执行,实现了将初始化操作的并行处理,提高初始化效率,降低操作时长,缩短启动时间。
下面对本申请实施例提供的一种多核处理器的初始化装置进行介绍,下文描述的一种多核处理器的初始化装置与上文描述的一种多核处理器的初始化方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种多核处理器的初始化装置的结构示意图。
本实施例中,该装置可以包括:
配置环境建立模块100,用于控制第一处理器至第N处理器执行配置操作,第一处理器执行运行环境建立操作;其中,N大于等于2;
初始化操作分配模块200,用于根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至第一处理器至第N处理器;
前置初始化操作模块300,用于控制第一处理器至第N处理器分别执行分配到的前置板级初始化操作;
后置初始化操作模块400,用于当所有处理器执行完成所有前置板级初始化操作时,控制第一处理器至第N处理器分别执行分配到的后置板级初始化操作;
系统启动模块500,用于当所有处理器执行完成所有后置板级初始化操作时,控制第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
可选的,该配置环境建立模块100,可以包括:
CPU模式配置操作模块,用于控制第一处理器至第N处理器执行CPU模式配置操作;
vector配置操作模块,用于控制第一处理器至第N处理器执行vector配置操作;
寄存器配置操作模块,用于控制第一处理器至第N处理器执行寄存器配置操作;
运行环境建立模块,用于控制第一处理器执行运行环境建立操作。
可选的,该初始化操作分配模块200,可以包括:
初始化操作分配模块,用于根据预设的初始化依赖关系表和处理器的数量将多个前置板级初始化操作和多个后置板级初始操作中无依赖关系的初始化操作平均分配至所有处理器;
依赖关系标记模块,用于根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始操作中存在依赖关系的初始化操作设置同步机制标记;
依赖初始化操作分配模块,用于根据同一处理器执行规则将设有同步机制标记的初始化操作分配至所有处理。
可选的,该装置还可以包括:
重定位操作模块,用于当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,第一处理器执行uboot重定位操作。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的初始化方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的初始化方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种多核处理器的初始化方法、初始化装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种多核处理器的初始化方法,其特征在于,包括:
控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作;其中,所述N大于等于2;
根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器;
所述第一处理器至所述第N处理器分别执行分配到的前置板级初始化操作;
当所有处理器执行完成所有前置板级初始化操作时,所述第一处理器至所述第N处理器分别执行分配到的后置板级初始化操作;
当所有处理器执行完成所有后置板级初始化操作时,所述第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
2.根据权利要求1所述的初始化方法,其特征在于,控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作,包括:
控制所述第一处理器至所述第N处理器执行CPU模式配置操作;
控制所述第一处理器至所述第N处理器执行vector配置操作;
控制所述第一处理器至所述第N处理器执行寄存器配置操作;
控制所述第一处理器执行运行环境建立操作。
3.根据权利要求1所述的初始化方法,其特征在于,根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器,包括:
根据所述预设的初始化依赖关系表和处理器的数量将所述多个前置板级初始化操作和所述多个后置板级初始操作中无依赖关系的初始化操作平均分配至所有处理器;
根据所述预设的初始化依赖关系表将所述多个前置板级初始化操作和所述多个后置板级初始操作中存在依赖关系的初始化操作设置同步机制标记;
根据同一处理器执行规则将设有所述同步机制标记的初始化操作分配至所有处理器。
4.根据权利要求1所述的初始化方法,其特征在于,还包括:
当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,所述第一处理器执行uboot重定位操作。
5.一种多核处理器的初始化装置,其特征在于,包括:
配置环境建立模块,用于控制第一处理器至第N处理器执行配置操作,所述第一处理器执行运行环境建立操作;其中,所述N大于等于2;
初始化操作分配模块,用于根据预设的初始化依赖关系表将多个前置板级初始化操作和多个后置板级初始化操作分配至所述第一处理器至所述第N处理器;
前置初始化操作模块,用于控制所述第一处理器至所述第N处理器分别执行分配到的前置板级初始化操作;
后置初始化操作模块,用于当所有处理器执行完成所有前置板级初始化操作时,控制所述第一处理器至所述第N处理器分别执行分配到的后置板级初始化操作;
系统启动模块,用于当所有处理器执行完成所有后置板级初始化操作时,控制所述第一处理器执行系统启动操作,其他所有处理器进入休眠状态。
6.根据权利要求1所述的初始化装置,其特征在于,所述配置环境建立模块,包括:
CPU模式配置操作模块,用于控制所述第一处理器至所述第N处理器执行CPU模式配置操作;
vector配置操作模块,用于控制所述第一处理器至所述第N处理器执行vector配置操作;
寄存器配置操作模块,用于控制所述第一处理器至所述第N处理器执行寄存器配置操作;
运行环境建立模块,用于控制所述第一处理器执行运行环境建立操作。
7.根据权利要求1所述的初始化装置,其特征在于,所述初始化操作分配模块,包括:
初始化操作分配模块,用于根据所述预设的初始化依赖关系表和处理器的数量将所述多个前置板级初始化操作和所述多个后置板级初始操作中无依赖关系的初始化操作平均分配至所有处理器;
依赖关系标记模块,用于根据所述预设的初始化依赖关系表将所述多个前置板级初始化操作和所述多个后置板级初始操作中存在依赖关系的初始化操作设置同步机制标记;
依赖初始化操作分配模块,用于根据同一处理器执行规则将设有所述同步机制标记的初始化操作分配至所有处理器。
8.根据权利要求1所述的初始化装置,其特征在于,还包括:
重定位操作模块,用于当所有处理器执行完成所有前置板级初始化操作时,执行后置板级初始化操作之前,所述第一处理器执行uboot重定位操作。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的初始化方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的初始化方法的步骤。
CN202010567659.0A 2020-06-19 2020-06-19 一种多核处理器的初始化方法及相关装置 Pending CN111857844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010567659.0A CN111857844A (zh) 2020-06-19 2020-06-19 一种多核处理器的初始化方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010567659.0A CN111857844A (zh) 2020-06-19 2020-06-19 一种多核处理器的初始化方法及相关装置

Publications (1)

Publication Number Publication Date
CN111857844A true CN111857844A (zh) 2020-10-30

Family

ID=72987042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010567659.0A Pending CN111857844A (zh) 2020-06-19 2020-06-19 一种多核处理器的初始化方法及相关装置

Country Status (1)

Country Link
CN (1) CN111857844A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013200602A (ja) * 2012-03-23 2013-10-03 Sharp Corp 画像処理装置
CN104520811A (zh) * 2014-05-09 2015-04-15 华为技术有限公司 优化具有多个中央处理器的计算机的启动时间的系统及方法
CN104778066A (zh) * 2015-04-21 2015-07-15 北京凌阳益辉科技有限公司 一种嵌入式操作系统的快速启动方法及其装置
CN106354535A (zh) * 2016-08-31 2017-01-25 福建联迪商用设备有限公司 一种提高支付终端启动速度的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013200602A (ja) * 2012-03-23 2013-10-03 Sharp Corp 画像処理装置
CN104520811A (zh) * 2014-05-09 2015-04-15 华为技术有限公司 优化具有多个中央处理器的计算机的启动时间的系统及方法
CN104778066A (zh) * 2015-04-21 2015-07-15 北京凌阳益辉科技有限公司 一种嵌入式操作系统的快速启动方法及其装置
CN106354535A (zh) * 2016-08-31 2017-01-25 福建联迪商用设备有限公司 一种提高支付终端启动速度的方法及装置

Similar Documents

Publication Publication Date Title
US9454397B2 (en) Data processing systems
EP2128759B1 (en) Operating system startup control method and information processing apparatus
US7987352B2 (en) Booting with sub socket partitioning
US20090182980A1 (en) Systems and methods for asymmetric multiprocessing
JP5445669B2 (ja) マルチコアシステムおよび起動方法
CN114090498B (zh) 一种嵌入式soc系统实现多核启动与业务的相互解耦方法
US20200264941A1 (en) Dynamically loadable unikernel binaries
US7574696B2 (en) Multiprocessor application interface requiring no utilization of a multiprocessor operating system
CN113094111A (zh) 设备以及设备的启动方法
EP3719645B1 (en) Extension application mechanisms through intra-process operation systems
CN112965755B (zh) 多核处理器的初始化方法、装置、电子设备及存储介质
CN104714843B (zh) 多内核操作系统实例支持多处理器的方法及装置
CN111857844A (zh) 一种多核处理器的初始化方法及相关装置
CN110990151A (zh) 一种基于异构计算平台的业务处理方法
EP4187374A1 (en) Kernel restarting method
US7562209B2 (en) Supporting different instruction set architectures during run time
CN109408407B (zh) 显示内存的分配方法和装置
CN109656720B (zh) 地址空间分配方法和装置
JP5641128B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
US20230161600A1 (en) Kernel reboot method
RU2718235C1 (ru) Архитектура операционной системы для обеспечения поддержки поколений микроядер
JP2006012158A (ja) デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置
JP2012145995A (ja) 計算機、計算機の再起動方法および再起動プログラム
CN109669771B (zh) 依赖环境更迭方法及装置
JPH0363768B2 (zh)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20201030

RJ01 Rejection of invention patent application after publication