CN116088950A - 系统启动方法、装置和电子设备 - Google Patents
系统启动方法、装置和电子设备 Download PDFInfo
- Publication number
- CN116088950A CN116088950A CN202310080153.0A CN202310080153A CN116088950A CN 116088950 A CN116088950 A CN 116088950A CN 202310080153 A CN202310080153 A CN 202310080153A CN 116088950 A CN116088950 A CN 116088950A
- Authority
- CN
- China
- Prior art keywords
- chip
- firmware image
- loaded
- image
- firmware
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种系统启动方法、装置和电子设备。所述方法包括:第一芯片响应于镜像分发条件的触发,分别与各第二芯片建立通信连接;镜像分发条件包括第一芯片进入启动过程中的引导程序阶段;获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像,分别通过各通信连接将相应的第二固件镜像传输给对应的第二芯片;在第一芯片加载完第一固件镜像、且各第二芯片加载完第二固件镜像的情况下,确定系统启动完成。本申请实施例提供了近似的并行加载能力,减弱整机系统受性能较弱芯片启动花费时间较长的影响。
Description
技术领域
本申请涉及芯片技术领域,特别是涉及一种系统启动方法、装置和电子设备。
背景技术
随着芯片技术和芯片工艺的不断提升,诸如CPE(Customer Premise Equipment,客户终端设备)等电子设备中,通常会设置多个芯片,例如设置双芯片。然而,当芯片数目较多时,会严重影响系统的启动时间
发明内容
基于此,有必要针对上述技术问题,提供一种能够加速启动的系统启动方法、装置和电子设备。
第一方面,本申请提供了一种系统启动方法,应用于电子设备,电子设备包括第一芯片、以及与第一芯片电连接的至少一个第二芯片,方法包括:
响应于镜像分发条件的触发,分别与各第二芯片建立通信连接;镜像分发条件包括第一芯片进入启动过程中的引导程序阶段;
获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像,分别通过各通信连接将相应的第二固件镜像传输给对应的第二芯片;
在第一芯片加载完第一固件镜像、且各第二芯片加载完第二固件镜像的情况下,确定系统启动完成。
在其中一个实施例中,镜像分发条件还包括第二芯片进入启动过程中的引导程序阶段;方法还包括:
若第一芯片触发二级引导程序启动,确认第一芯片进入引导程序阶段;
若第二芯片触发二级引导程序启动,确认第二芯片进入引导程序阶段。
在其中一个实施例中,分别与各第二芯片建立通信连接的步骤,包括:
基于二级引导程序,通过初始化与第二芯片之间的互联总线,建立通信连接。
在其中一个实施例中,电子设备还包括与第一芯片电连接的存储单元;获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像的步骤,包括:
从存储单元中读取出第一固件镜像和各第二固件镜像。
在其中一个实施例中,方法还包括:
对第一固件镜像和各第二固件镜像进行完整性校验;
若针对第二固件镜像的完整性校验的校验结果为校验成功,则通过相应的通信连接向对应的第二芯片发送第二固件镜像。
在其中一个实施例中,在通过相应的通信连接向对应的第二芯片发送第二固件镜像的步骤之前,还包括步骤:
通过相应的通信连接向对应的第二芯片发送加载通知;加载通知用于指示第二芯片从等待加载状态进入针对第二固件镜像的接收状态。
在其中一个实施例中,完整性校验包括对校验失败的次数进行计数;方法还包括:
若校验失败的次数超过阈值,则输出用于表征固件镜像损坏的指示。
第二方面,本申请还提供了一种系统启动装置,应用于电子设备,电子设备包括第一芯片、以及与第一芯片电连接的至少一个第二芯片,装置包括:
连接建立模块,用于响应于镜像分发条件的触发,分别与各第二芯片建立通信连接;镜像分发条件包括第一芯片进入启动过程中的引导程序阶段;
镜像传输模块,用于获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像,分别通过各通信连接将相应的第二固件镜像传输给对应的第二芯片;
启动确认模块,用于在第一芯片加载完第一固件镜像、且各第二芯片加载完第二固件镜像的情况下,确定系统启动完成。
第三方面,本申请还提供了一种电子设备,包括第一芯片,以及与第一芯片电连接的至少一个第二芯片;其中,第一芯片用于实现上述的方法的步骤。
在其中一个实施例中,电子设备还包括与第一芯片电连接的存储单元,存储单元用于存储第一固件镜像和各第二固件镜像。
在其中一个实施例中,第二芯片的数量为至少两个;各第二芯片分别通过互连总线连接第一芯片。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述系统启动方法、装置和电子设备,响应于镜像分发条件的触发,第一芯片发起与各第二芯片之间通信连接的建立,该镜像分发条件包括第一芯片进入启动过程中的引导程序阶段;在通信连接建立后,第一芯片可以获取其待加载的第一固件镜像以及各第二芯片分别待加载的第二固件镜像,并通过各通信连接将相应第二固件镜像传输给对应第二芯片,进而在第一芯片加载完第一固件镜像、且第二芯片加载完第二固件镜像的情况下,确定系统启动完成。本申请实施例中,第一芯片在引导程序阶段即建立通信连接,并利用各通信连接分别为各第二芯片提供固件镜像加载服务,能够解耦对第一芯片的启动依赖,无需等待第一芯片业务系统启动;本申请实施例提供了近似的并行加载能力,减弱整机系统受性能较弱芯片启动花费时间较长的影响。
附图说明
图1为一个实施例中电子设备的结构示意图;
图2为传统系统启动方案的流程示意图;
图3为一个实施例中系统启动方法的应用环境图;
图4为一个实施例中系统启动方法的流程示意图;
图5为一个实施例中校验步骤的流程示意图;
图6为另一个实施例中电子设备的结构示意图;
图7为另一个实施例中系统启动方法的流程示意图;
图8为一个实施例中系统启动装置的结构框图;
图9为一个实施例中电子设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解的是,本申请中诸如“第一”、“第二”等术语仅用于区分类似的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
示例性的采用图1所示结构,以主芯片为芯片A、副芯片为芯片B,所对应的系统镜像分别为固件镜像A(图1中简称为镜像A)、固件镜像B(图1中简称为镜像B)为例,如图2所示,传统系统启动方案可以包括如下过程:①整机上电,主芯片率先完成业务系统启动;②主芯片从闪存(Flash Memory)读取副芯片的系统镜像,并进行系统镜像校验;③校验通过后,主芯片向副芯片通知准备分发镜像;④副芯片通过USB(Universal Serial Bus,通用串行总线)总线完成系统镜像的接收,进行必要的镜像校验,然后启动业务系统。
以上,基于传统方案,整个系统启动流程表现为串行加载。传统方案中,鉴于主芯片性能较强,副芯片性能较弱,整个业务系统表现为串行启动,整体业务系统的启动时长受制于启动最慢的副芯片的启动,用户体验较差;此外,基于传统方案,主芯片需要在启动业务系统后,才进行副芯片的固件加载,系统启动时间略长。并且产品在工厂产线自检时,每个工位均会进行断电重启,多个工位叠加,基于传统方案,会导致单机启动后功能自检时间较长,无法满足规模出货的量产需求。
本申请实施例提供的系统启动方法,可以应用于如图3所示的应用环境中。其中,电子设备可以包括第一芯片102、第二芯片104和存储单元106。第一芯片102与存储单元106电连接,例如可以通过总线电连接;第一芯片102与第二芯片104电连接,例如可以通过印刷线路电连接。
进一步地,第一芯片102与第二芯片104可以通过总线连接。其中,连接在第一芯片102与第二芯片104之间的总线,可以采用互联总线予以实现,例如USB总线、PCIE(Peripheral Component Interconnect Express,串行计算机扩展总线)总线,还可以采用GPIO(General Purpose Input Output,通用输入/输出口)等;可选地,第一芯片102可以包括互连总线接口,进而第一芯片102通过该互连总线接口连接第二芯片104。需要说明的是,第一芯片与第二芯片之间的连接方式,可以依据系统资源来确定,例如根据第一芯片的性能确定;其中,若第二芯片的数量为多个,各第二芯片可分别通过相同类型或不同类型的总线与第一芯片连接。
示例性地,第一芯片102的数量为一个,第二芯片104的数量可以为一个或多个,每个第二芯片104分别连接第一芯片102。进一步地,第二芯片104的数量为至少两个,例如电子设备可以包括3个第二芯片。
示例性地,第一芯片102、第二芯片104都可以集成有处理器和存储器,第一芯片102、第二芯片104都可以存储数据以及进行数据处理。实际应用中,可选地,第一芯片102与第二芯片104的规格、配置、处理速度等方面可以是不同的,以使得第一芯片102、第二芯片104可以执行不同的功能。以电子设备包括通过互连总线相连的至少两个芯片为例,该至少两个芯片包括一个主芯片和其他的副芯片,其中,主芯片与存储单元直接连接,每个副芯片均直接连接该主芯片,进而,本申请实施例中第一芯片可以作为主芯片,第二芯片可以作为副芯片,其中,第一芯片的性能相对较强,第二芯片的性能相对较弱。可选地,本申请实施例中,主芯片主要是指用于处理任务多、处理能力强的芯片;副芯片主要是指用于处理任务比较单一、处理能力相对较弱的芯片。
此外,第一芯片102还可以包括处理器、调制解调模块等功能模块。第一芯片102的处理器可以用于运行程序、进行数据处理等,以及用于对第一芯片102进行监控和调度。调制解调模块可以用于对通信信号进行调制、解调。可以理解的,第二芯片104也可以包括处理器。第二芯片104的处理器也可以用于运行程序、进行数据处理等,以及用于对第二芯片104进行监控和调度。
进一步地,本申请实施例中,存储单元106可以用于保存/缓存/存储固件镜像,并将固件镜像同步或传输给其他芯片执行。本申请实施例中,存储单元106用于供第一芯片102访问和调度,进而第一芯片102可以调用存储单元106中存储的固件镜像;此外,存储单元106的存储空间大小可以根据需要进行设置。
示例性地,存储单元106可以采用闪存(Flash Memory);可选地,存储单元可以包括随机存储记忆体(Random4Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)、双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM)、紧耦合存储器(Tightly Coupled Memory,TCM)等中的至少之一项。
示例性地,存储单元106中具有第一芯片102待加载的第一固件镜像,以及第二芯片104待加载的第二固件镜像。需要说明的是,本申请实施例中的固件(Firmware)是设备启动时执行的固件程序,能够为设备提供最底层、最直接的硬件控制,固件具体可以是设备启动时连接硬件和操作系统的底层代码。而固件镜像(Image)可以是固件对应的固件副本(例如,固件信息副本),具体可以包括固件对应的配置和文件。可以理解,固件用于支持硬件的运行,固件镜像可包括固件支持硬件运行所需的驱动、程序和文件等。
需要说明的是,关于本申请实施例中的电子设备,该电子设备可以为CPE(Customer Premise Equipment,客户终端设备)、智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、笔记本电脑、桌面计算设备等。示例性地,本申请实施例中的客户终端设备CPE可以用于室内/近距离通信网络转接。进一步地,本申请实施例适用于路由器终端厂商的终端产品。
在一个实施例中,如图4所示,提供了一种系统启动方法,以该方法应用于图3中电子设备为例进行说明,该电子设备可以包括第一芯片、以及与第一芯片电连接的至少一个第二芯片,该方法包括以下步骤:
步骤202,响应于镜像分发条件的触发,分别与各第二芯片建立通信连接;镜像分发条件包括第一芯片进入启动过程中的引导程序阶段。
其中,引导程序阶段可以指芯片触发引导程序(Bootloader)启动所进入的阶段,该阶段下系统的软硬件环境处于合适的状态,能够为第一芯片执行固件镜像的分发准备好正确的环境;以电子设备为例,在整机上电情况下,芯片通过例如硬件模块初始化、引导程序核心组件加载等过程,启动至引导程序阶段。
本申请实施例中,引导程序指业务系统运行之前所运行的程序,在芯片加载业务系统时会退出该引导程序。示例性地,第一芯片内部具有引导程序,第二芯片内部具有引导程序;以电子设备为例,在整机上电的情况下,第一芯片可自动触发执行内部的引导程序,第二芯片也可自动触发执行内部的引导程序。本申请实施例中,可以根据需要使用引导程序的部分功能,示例性地,引导程序的作用范围包括但不限于互联总线的初始化,固件镜像读取与校验以及固件镜像分发等。
可选地,本申请实施例中的引导程序可以指SBL(Second Bootloader,二级引导程序)。
进一步地,响应于镜像分发条件的触发,第一芯片分别与各第二芯片建立通信连接,即在第一芯片进入启动过程中的引导程序阶段的情况下,第一芯片可以发起与各第二芯片之间通信连接的建立。其中,通信连接可以指基于连接在第一芯片和第二芯片之间的总线所建立的数据连接;例如,第一芯片的通信身份被配置为总线主设备,可以主动发起通信,第二芯片的通信身份被配置为总线从设备,进而,第一芯片可以通过发起与第二芯片的总线的初始化,建立通信连接,以使得第一芯片可以通过总线向第二芯片提供镜像分发服务。
以上,第一芯片在引导程序阶段即建立通信连接,进而可以利用各通信连接分别为各第二芯片提供固件镜像加载服务,从而能够解耦对第一芯片的启动依赖,无需等待第一芯片业务系统启动。
在其中一个实施例中,镜像分发条件还包括第二芯片进入启动过程中的引导程序阶段;方法还可以包括:
若第一芯片触发二级引导程序启动,确认第一芯片进入引导程序阶段;
若第二芯片触发二级引导程序启动,确认第二芯片进入引导程序阶段。
具体地,第一芯片和第二芯片触发二级引导程序SBL启动,则可确认第一芯片与第二芯片启动至二级引导程序SBL阶段,进而可以确认当前满足镜像分发条件。以电子设备为例,整机上电,若第一芯片与第二芯片启动至二级引导程序SBL阶段,第一芯片则可以发起与第二芯片之间的通信连接的建立。
其中,第二芯片启动至二级引导程序SBL阶段后,可以进入等待加载状态;该等待加载状态可以指第二芯片处于等待第一芯片传输对应的固件镜像的状态。
在其中一个实施例中,分别与各第二芯片建立通信连接的步骤,可以包括:
基于二级引导程序,通过初始化与第二芯片之间的互联总线,建立通信连接。
具体而言,若第一芯片通过互联总线连接第二芯片,在第一芯片启动至二级引导程序SBL阶段的情况下,第一芯片可以发起与第二芯片互联总线的初始化。示例性地,本申请实施例中的互联总线的初始化是在二级引导程序SBL中完成的。
以总线为互联总线为例,互联总线的初始化过程可以包括:第一芯片的通信身份被配置为总线主设备,能够主动发起通信,第二芯片的通信身份被配置为总线从设备,进而第一芯片通过发起与第二芯片的互联总线的初始化,建立通信连接,以使得第一芯片通过芯片间互联总线向各第二芯片提供镜像分发服务。本申请实施例可以实现基于互联总线的多芯片数据交换。
步骤204,获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像,分别通过各通信连接将相应的第二固件镜像传输给对应的第二芯片。
具体而言,在与各第二芯片的通信连接建立完成后,第一芯片可以获取第一芯片待加载的第一固件镜像,以及第二芯片待加载的第二固件镜像,进而可以调用第一固件镜像以及各第二固件镜像。本申请实施例能够解耦对第一芯片的启动依赖,无需等待第一芯片业务系统启动,就可以获得对各固件镜像的读取及调用权限,进而通过镜像分发,提供了近似的并行加载能力。
示例性地,第一芯片可以通过读取的方式来获取固件镜像。
在其中一个实施例中,电子设备还包括与第一芯片电连接的存储单元;获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像的步骤,可以包括:
从存储单元中读取出第一固件镜像和各第二固件镜像。
具体地,以电子设备还包括与第一芯片电连接的存储单元为例,在与各第二芯片的通信连接建立完成后,第一芯片可以从存储单元读取第一固件镜像以及各第二固件镜像。示例性地,存储单元可以是闪存。本申请实施例中,在进入引导程序阶段后,第一芯片为第二芯片提供镜像读取的功能,扩展了第一芯片引导程序的软件框架的能力,能够虚拟多个磁盘加载服务。
进一步地,本申请实施例能够解耦对第一芯片的启动依赖,无需等待第一芯片业务系统启动,就可以读取到各第二固件镜像,进而通过镜像分发,减弱整机系统受性能较弱芯片启动花费时间较长的影响。
在其中一个实施例中,如图5所示,方法还可以包括:
步骤302,对第一固件镜像和各第二固件镜像进行完整性校验;
步骤304,若针对第二固件镜像的完整性校验的校验结果为校验成功,则通过相应的通信连接向对应的第二芯片发送第二固件镜像。
具体而言,在获取到第一固件镜像和各第二固件镜像之后,第一芯片可以对对第一固件镜像和各第二固件镜像分别进行完整性校验;其中,对固件镜像的完整性校验可以采用对固件的校验方式,例如,可以通过D5(Message Digest Algorithm,消息摘要算法)对固件进行完整性校验。
若校验成功,则可以通过相应的通信连接向对应的第二芯片发送第二固件镜像,即进行镜像分发;若校验失败,则表示该固件被损坏。
以上,以第一芯片为主芯片、引导程序为二级引导程序SBL为例,在启动至SBL阶段,主芯片即利用主副芯片间互联的系统总线为各个副芯片提供镜像加载服务;其中,主芯片可以利用自身的存储(例如Flash存储空间)能力,为副芯片提供镜像读取的功能的同时,还实现读取后的镜像校验,并完成镜像分发;本申请实施例扩展了主芯片SBL软件框架的能力,能够虚拟多个磁盘加载服务。
在其中一个实施例中,完整性校验包括对校验失败的次数进行计数;方法还可以包括:
若校验失败的次数超过阈值,则输出用于表征固件镜像损坏的指示。
具体而言,若校验失败则表示该固件镜像被损坏,第一芯片可以通过发出指示的方式,进行包括但不限于更新固件、固件损坏后的恢复操作。进一步地,本申请实施例中,第一芯片可以对校验失败的次数进行计数,在校验失败的次数超过阈值的情况下,确定固件镜像已经损坏,进而发出指示,并可在发出指示后,读取并校验固件镜像,直到校验成功。
在其中一个实施例中,在通过相应的通信连接向对应的第二芯片发送第二固件镜像的步骤之前,还包括可以步骤:
通过相应的通信连接向对应的第二芯片发送加载通知;加载通知用于指示第二芯片从等待加载状态进入针对第二固件镜像的接收状态。
具体地,第一芯片在对第二固件镜像的完整性校验的校验结果为校验成功地情况下,可以通过通信连接向对应的第二芯片发送加载通知(Notify),进而在发出加载通知后开始并发固件镜像,第二芯片则在接收到加载通知后,从等待加载状态进入针对第二固件镜像的接收状态,进而接收第一芯片发送的第二固件镜像。
步骤206,在第一芯片加载完第一固件镜像、且各第二芯片加载完第二固件镜像的情况下,确定系统启动完成。
具体而言,第一芯片在分别通过各通信连接将相应的第二固件镜像传输给对应的第二芯片后,即完成固件镜像的分发后,可以加载第一固件镜像并启动业务系统。各第二芯片在接收到对应的第二固件镜像后,可以加载第二固件镜像并启动业务系统。
以上,第一芯片在引导程序阶段即建立通信连接,并利用各通信连接分别为各第二芯片提供固件镜像加载服务,能够解耦对第一芯片的启动依赖,无需等待第一芯片业务系统启动;本申请实施例提供了近似的并行加载能力,减弱整机系统受性能较弱芯片启动花费时间较长的影响。本申请实施例基于互联总线的多芯片数据交换,通过高速总线在启动过程中实现并行启动,提高量产产品生产效率。
为了进一步阐释本申请的方案,下面结合一个具体示例予以说明,以电子设备中第一芯片为芯片A,第二芯片为芯片B\芯片C,存储单元为闪存为例,如图6所示,芯片A通过总线连接闪存,内部互联总线包括连接在芯片A和芯片C之间的PCIE总线(采用PCIE协议),以及连接在芯片A和芯片B之间的USB总线(采用USB协议)。需要说明的是,芯片A(B/C)所对应的固件镜像A(B/C)在图6中简称为镜像A(B/C);进一步地,如图7所示,系统启动流程可以包括:
步骤1:整机上电,芯片A/B/C启动至引导程序SBL阶段;
步骤2:由芯片A发起与芯片X(芯片B/芯片C)互联总线的初始化;
步骤3:芯片A通过系统芯片间互联总线(USB/PCIE)向芯片X(芯片B/芯片C)提供镜像分发服务;
步骤4:从闪存(Flash)读取固件镜像X(固件镜像B/固件镜像C);
步骤5:校验固件镜像X(固件镜像B/固件镜像C);
步骤6:如果校验失败则进行重试;
步骤7:如果验证正常则通知芯片X(芯片B/芯片C);
步骤8:如果芯片X(芯片B/芯片C)收到通知则开始接收固件镜像X(固件镜像B/固件镜像C),完成后启动业务系统;
步骤9:芯片A加载固件(固件镜像A)并启动业务系统。
以上,本申请实施例无需等待主芯片业务系统启动,能够进一步解耦启动依赖,在主芯片SBL阶段即利用主副芯片间互联的系统总线为各个副芯片提供镜像加载服务。本申请扩展了主芯片SBL软件框架的能力,能够虚拟多个磁盘加载服务。本申请提供近似的并行加载能力,减弱整机系统受性能较弱芯片(例如,性能最弱芯片)启动花费时间较长的影响。
本申请实施例能够缩短产线量产时单机自检所需的时间,提高了规模量产时的生产效率;同时,能够尽可能削弱整机系统提供服务的启动时间,受制于性能最弱的副芯片系统加载时间的影响;本申请实施例缩短了产品业务系统启动时间,整机表现为近似的并行启动流程;并且加快了产品提供服务的时间,在同类方案中提高了产品竞争力,且不增加硬件Bom(Bill of Material,物料清单)成本。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的系统启动方法的系统启动装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个系统启动装置实施例中的具体限定可以参见上文中对于系统启动方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种系统启动装置800,应用于电子设备;电子设备包括第一芯片、以及与第一芯片电连接的至少一个第二芯片;装置包括:
连接建立模块810,用于响应于镜像分发条件的触发,分别与各第二芯片建立通信连接;镜像分发条件包括第一芯片进入启动过程中的引导程序阶段;
镜像传输模块820,用于获取第一芯片待加载的第一固件镜像、以及第二芯片待加载的第二固件镜像,分别通过各通信连接将相应的第二固件镜像传输给对应的第二芯片;
启动确认模块830,用于在第一芯片加载完第一固件镜像、且各第二芯片加载完第二固件镜像的情况下,确定系统启动完成。
在其中一个实施例中,镜像分发条件还包括第二芯片进入启动过程中的引导程序阶段;装置还包括:
阶段确认模块,用于若第一芯片触发二级引导程序启动,确认第一芯片进入引导程序阶段;以及若第二芯片触发二级引导程序启动,确认第二芯片进入引导程序阶段。
在其中一个实施例中,连接建立模块810,用于基于二级引导程序,通过初始化与第二芯片之间的互联总线,建立通信连接。
在其中一个实施例中,电子设备还包括与第一芯片电连接的存储单元;镜像传输模块820包括:
镜像读取模块,用于从存储单元中读取出第一固件镜像和各第二固件镜像。
在其中一个实施例中,镜像传输模块820还包括:
校验模块,用于对第一固件镜像和各第二固件镜像进行完整性校验;
镜像传输模块820,用于若校验模块针对第二固件镜像的完整性校验的校验结果为校验成功,则通过相应的通信连接向对应的第二芯片发送第二固件镜像。
在其中一个实施例中,镜像传输模块820还包括:
加载通知模块,用于通过相应的通信连接向对应的第二芯片发送加载通知;加载通知用于指示第二芯片从等待加载状态进入针对第二固件镜像的接收状态。
在其中一个实施例中,完整性校验包括对校验失败的次数进行计数;校验模块,用于若校验失败的次数超过阈值,则输出用于表征固件镜像损坏的指示。
上述系统启动装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种芯片,包括处理器,处理器用于执行计算机程序,以使芯片所在的电子设备实现上述的系统启动方法的步骤。
在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图9所示。该电子设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的输入/输出接口用于处理器与外部设备之间交换信息。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种系统启动方法。该电子设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种电子设备,包括第一芯片,以及与第一芯片电连接的至少一个第二芯片;其中,第一芯片用于实现上述的系统启动方法的步骤。
在其中一个实施例中,电子设备还包括与第一芯片电连接的存储单元,存储单元用于存储第一固件镜像和各第二固件镜像。
在其中一个实施例中,第二芯片的数量为至少两个;各第二芯片分别通过互连总线连接第一芯片。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的系统启动方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的系统启动方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (13)
1.一种系统启动方法,其特征在于,应用于电子设备,所述电子设备包括第一芯片、以及与所述第一芯片电连接的至少一个第二芯片,所述方法包括:
响应于镜像分发条件的触发,分别与各所述第二芯片建立通信连接;所述镜像分发条件包括所述第一芯片进入启动过程中的引导程序阶段;
获取所述第一芯片待加载的第一固件镜像、以及所述第二芯片待加载的第二固件镜像,分别通过各所述通信连接将相应的所述第二固件镜像传输给对应的所述第二芯片;
在所述第一芯片加载完所述第一固件镜像、且各所述第二芯片加载完所述第二固件镜像的情况下,确定系统启动完成。
2.根据权利要求1所述的方法,其特征在于,所述镜像分发条件还包括所述第二芯片进入启动过程中的引导程序阶段;所述方法还包括:
若所述第一芯片触发二级引导程序启动,确认所述第一芯片进入所述引导程序阶段;
若所述第二芯片触发二级引导程序启动,确认所述第二芯片进入所述引导程序阶段。
3.根据权利要求2所述的方法,其特征在于,所述分别与各所述第二芯片建立通信连接的步骤,包括:
基于所述二级引导程序,通过初始化与所述第二芯片之间的互联总线,建立所述通信连接。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述电子设备还包括与所述第一芯片电连接的存储单元;所述获取所述第一芯片待加载的第一固件镜像、以及所述第二芯片待加载的第二固件镜像的步骤,包括:
从所述存储单元中读取出所述第一固件镜像和各所述第二固件镜像。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述第一固件镜像和各所述第二固件镜像进行完整性校验;
若针对所述第二固件镜像的所述完整性校验的校验结果为校验成功,则通过相应的所述通信连接向对应的所述第二芯片发送所述第二固件镜像。
6.根据权利要求5所述的方法,其特征在于,在所述通过相应的所述通信连接向对应的所述第二芯片发送所述第二固件镜像的步骤之前,还包括步骤:
通过相应的所述通信连接向对应的所述第二芯片发送加载通知;所述加载通知用于指示所述第二芯片从等待加载状态进入针对所述第二固件镜像的接收状态。
7.根据权利要求5所述的方法,其特征在于,所述完整性校验包括对校验失败的次数进行计数;所述方法还包括:
若所述校验失败的次数超过阈值,则输出用于表征固件镜像损坏的指示。
8.一种系统启动装置,其特征在于,应用于电子设备,所述电子设备包括第一芯片、以及与所述第一芯片电连接的至少一个第二芯片,所述装置包括:
连接建立模块,用于响应于镜像分发条件的触发,分别与各所述第二芯片建立通信连接;所述镜像分发条件包括所述第一芯片进入启动过程中的引导程序阶段;
镜像传输模块,用于获取所述第一芯片待加载的第一固件镜像、以及所述第二芯片待加载的第二固件镜像,分别通过各所述通信连接将相应的所述第二固件镜像传输给对应的所述第二芯片;
启动确认模块,用于在所述第一芯片加载完所述第一固件镜像、且各所述第二芯片加载完所述第二固件镜像的情况下,确定系统启动完成。
9.一种电子设备,其特征在于,包括第一芯片,以及与所述第一芯片电连接的至少一个第二芯片;其中,所述第一芯片用于实现权利要求1至7中任一项所述的方法的步骤。
10.根据权利要求9所述的电子设备,其特征在于,所述电子设备还包括与所述第一芯片电连接的存储单元,所述存储单元用于存储所述第一固件镜像和各所述第二固件镜像。
11.根据权利要求9所述的电子设备,其特征在于,所述第二芯片的数量为至少两个;各所述第二芯片分别通过互连总线连接所述第一芯片。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080153.0A CN116088950A (zh) | 2023-02-02 | 2023-02-02 | 系统启动方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080153.0A CN116088950A (zh) | 2023-02-02 | 2023-02-02 | 系统启动方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116088950A true CN116088950A (zh) | 2023-05-09 |
Family
ID=86198949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310080153.0A Pending CN116088950A (zh) | 2023-02-02 | 2023-02-02 | 系统启动方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116088950A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594953A (zh) * | 2023-07-18 | 2023-08-15 | 北京芯驰半导体科技有限公司 | 一种基于pcie互联的多核异构芯片、启动方法和系统 |
CN117648132A (zh) * | 2023-11-24 | 2024-03-05 | 江苏米特物联网科技有限公司 | 一种双模芯片的启动管理方法 |
-
2023
- 2023-02-02 CN CN202310080153.0A patent/CN116088950A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594953A (zh) * | 2023-07-18 | 2023-08-15 | 北京芯驰半导体科技有限公司 | 一种基于pcie互联的多核异构芯片、启动方法和系统 |
CN116594953B (zh) * | 2023-07-18 | 2023-09-22 | 北京芯驰半导体科技有限公司 | 一种基于pcie互联的多核异构芯片、启动方法和系统 |
CN117648132A (zh) * | 2023-11-24 | 2024-03-05 | 江苏米特物联网科技有限公司 | 一种双模芯片的启动管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116088950A (zh) | 系统启动方法、装置和电子设备 | |
US6934873B2 (en) | Automatic BIOS recovery in a multi-node computer system | |
US9563437B2 (en) | Technologies for pre-memory phase initialization of a computing device | |
US10761730B2 (en) | Method for configuring disk array of electronic device and related electronic device | |
WO2020233435A1 (zh) | 数据处理方法、装置和系统 | |
WO2008138258A1 (fr) | Procédé d'exploitation de dispositif périphérique, dispositif périphérique et hôte | |
US20210334383A1 (en) | Secure boot method for terminal device, terminal device and medium | |
TW201342215A (zh) | 用於多核心處理單元的啟動載入處理器指派的技術 | |
CN114817105A (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
US8909818B2 (en) | Method for shortening enumeration of tightly coupled USB device | |
CN115904809A (zh) | 一种数据恢复方法及电子设备 | |
CN103838746A (zh) | 多cpu系统共享存储数据的方法及该系统 | |
US20070061613A1 (en) | Restart method for operating system | |
CN116521209B (zh) | 操作系统的升级方法及装置、存储介质及电子设备 | |
CN116450046A (zh) | 云盘实现方法、装置、智能网卡、服务器及存储介质 | |
CN104731577A (zh) | 多系统和启动所述多系统的方法 | |
CN114817107B (zh) | Pcie设备切换系统、方法、装置、计算机设备和存储介质 | |
US20230130911A1 (en) | Apparatus for managing cache loss and operation method thereof | |
US11403162B2 (en) | System and method for transferring diagnostic data via a framebuffer | |
US20230083523A1 (en) | Multi-processor system and booting method thereof | |
CN116028433B (zh) | 数据迁移方法和电子设备 | |
CN114546920B (zh) | 基于智能网卡的飞腾cpu架构下裸金属服务器数据盘热插拔方法 | |
CN102253867A (zh) | 一种生成flash存储器镜像文件的方法和装置 | |
CN115016851A (zh) | Bios加载方法、桥接芯片、bmc、设备及其主板 | |
CN112685343A (zh) | 一种双控sd卡通信的方法、装置及介质 |
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 |