CN114510287B - 多处理单元的系统启动方法、装置、存储介质和电子设备 - Google Patents

多处理单元的系统启动方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN114510287B
CN114510287B CN202210087385.4A CN202210087385A CN114510287B CN 114510287 B CN114510287 B CN 114510287B CN 202210087385 A CN202210087385 A CN 202210087385A CN 114510287 B CN114510287 B CN 114510287B
Authority
CN
China
Prior art keywords
processing unit
memory
image file
kernel
peripheral
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.)
Active
Application number
CN202210087385.4A
Other languages
English (en)
Other versions
CN114510287A (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.)
Nanjing Horizon Integrated Circuit Co ltd
Original Assignee
Nanjing Horizon Integrated Circuit 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 Nanjing Horizon Integrated Circuit Co ltd filed Critical Nanjing Horizon Integrated Circuit Co ltd
Priority to CN202210087385.4A priority Critical patent/CN114510287B/zh
Publication of CN114510287A publication Critical patent/CN114510287A/zh
Application granted granted Critical
Publication of CN114510287B publication Critical patent/CN114510287B/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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/4406Loading of operating system

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)

Abstract

本公开实施例公开了一种多处理单元的系统启动方法、装置、计算机可读存储介质及电子设备,其中,该方法包括:获取启动指令,对第一外设进行初始化操作;从第一存储器中确定多处理单元中的第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中;响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。本公开实施例实现了原本由第一处理单元进行的外设初始化操作和内核加载操作等交由第二处理单元执行,从而简化了第一处理单元的启动步骤,第一处理单元和第二处理单元并行地执行片上系统的启动操作,节约了系统启动的时间,提高了系统启动速度。

Description

多处理单元的系统启动方法、装置、存储介质和电子设备
技术领域
本公开涉及计算机技术领域,尤其是一种多处理单元的系统启动方法、装置、计算机可读存储介质及电子设备。
背景技术
现有嵌入式处理器芯片结构日益复杂,典型架构的设计中除了配置有高性能的主处理单元(例如ARM cortex-a)外,还配置有例如为cortex-m处理单元、dsp处理单元、risc-v处理单元和/或cortex-r处理单元等从处理单元,以承担功能安全、实时计算、外设控制、数据处理等功能。主处理单元上可以运行例如Linux等高级操作系统,并且可以运行各种复杂功能的业务软件。这些软件架构和运行过程复杂,驱动模块众多,导致系统启动时间较长。因此,针对主处理单元,如何提升系统的启动速度成为亟待解决的问题。
发明内容
本公开的实施例提供了一种多处理单元的系统启动方法、装置、计算机可读存储介质及电子设备。
本公开的实施例提供了一种多处理单元的系统启动方法,应用于多处理单元中的第二处理单元,该方法包括:获取启动指令,对第一外设进行初始化操作;从第一存储器中确定多处理单元中的第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中;响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
根据本公开实施例的另一个方面,提供了一种多处理单元的系统启动装置,应用于多处理单元中的第二处理单元,该装置包括:第一初始化模块,用于获取启动指令,对第一外设进行初始化操作;第一加载模块,用于从第一存储器中确定多处理单元中的第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中;第二初始化模块,用于响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
根据本公开实施例的另一个方面,提供了一种芯片,该芯片与存储器相连或包括存储器,所述芯片还包括第一处理单元和第二处理单元;第二处理单元,用于执行上述第一方面描述的方法;第一处理单元,用于在第二处理单元对第一外设进行初始化操作期间,进行设备启动操作;响应于内核镜像文件加载完毕,基于共享内存中的内核镜像文件进行内核启动操作。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:第一处理单元、第二处理单元、第一存储器、共享内存、外设和用于存储第一处理单元和第二处理单元的可执行指令的第二存储器;第二处理单元,用于从第二存储器中读取对应的可执行指令,并执行读取的可执行指令以实现上述第一方面描述的多处理单元的系统启动方法;第一处理单元,用于从第二存储器中读取对应的可执行指令,并执行读取的可执行指令以实现:在第二处理单元对第一外设进行初始化操作期间,进行设备启动操作;响应于内核镜像文件加载完毕,基于共享内存中的内核镜像文件进行内核启动操作。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述多处理单元的系统启动方法。
根据本公开实施例的另一个方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
基于本公开上述实施例提供的多处理单元的系统启动方法、装置、计算机可读存储介质及电子设备,通过第二处理单元在获取到启动指令时,首先对第一外设执行初始化操作,然后从第一存储器中确定第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中,最后响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。由于本公开无需采用由第一处理单元进行外设初始化操作和内核加载操作等,而改进为由第二处理单元执行外设初始化操作和内核加载操作,从而简化了第一处理单元的启动步骤,在系统启动过程中,第一处理单元和第二处理单元并行地执行SOC(片上系统,System on Chip)的启动操作,节约了系统启动的时间,提高了系统的启动速度。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开所适用的系统图。
图2是本公开一示例性实施例提供的多处理单元的系统启动方法的流程示意图。
图3是本公开另一示例性实施例提供的多处理单元的系统启动方法的流程示意图。
图4是本公开一示例性实施例提供的多处理单元的系统启动装置的结构示意图。
图5是本公开另一示例性实施例提供的多处理单元的系统启动装置的结构示意图。
图6是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
申请概述
在SOC(片上系统,System on Chip)中,包括多个处理单元,该多个处理单元进一步包括至少一个第一处理单元和至少一个第二处理单元,其中,第一处理单元又称主处理单元或主核,常采用例如为cortex-a架构的处理单元,其搭载有例如Linux的高级操作系统,可以运行各种功能复杂的软件。第二处理单元又称从处理单元或从核,例如为cortex-m处理单元、dsp处理单元、risc-v处理单元和cortex-r处理单元,在芯片架构和设计上较为碎片化,其上搭载的操作系统多为轻量级,甚至不具备操作系统。第一处理单元上运行的软件架构和执行过程复杂,驱动模块众多,导致系统启动速度较慢,启动时间较长。系统启动过程中,往往是逐个模块启动,串行化完成,无法并行化处理。对于需要系统快速启动的场景,往往无法满足需求。
现有的用于提升主处理单元的启动速度的方案,通常是只在主处理单元上做优化工作。例如优化代码执行效率、减少日志打印、提高cpu频率、裁剪镜像大小等。但是启动速度提升效果有限,系统启动依旧是串行化进行,对于一些需要系统更加快速启动的场景,仍然无法满足需求。
示例性系统
图1示出了可以应用本公开的实施例的多处理单元的系统启动方法或多处理单元的系统启动装置的示例性系统架构100。
如图1所示,系统架构100可以包括第一处理单元101、第二处理单元102、共享内存103、第一存储器104和外设105。其中,第一处理单元101、第二处理单元102、共享内存103、第一存储器104和外设105通常集成在一个芯片中,但也可以设置到不同的芯片或电路板中,这些芯片或电路板之间可以建立数据通信的链路。
其中,第一处理单元101通常为高性能的处理单元,例如采用ARM cortex-a处理单元。第二处理单元102通常为较低性能的处理单元,例如为ARM cortex-m处理单元、DSP处理单元、risc-v处理单元、ARM cortex-r处理单元等。第二处理单元102用于承担功能安全、实时计算、外设控制、数据处理等功能。
共享内存103是第一处理单元101和第二处理单元102可以共同访问的内存,可以存储由第二处理单元102从第一存储器104加载的内核镜像文件等,以利于第一处理单元101从共享内存103提取内核镜像文件进行内核启动等操作。
第一存储器104用于预先存储系统启动时所需的各种数据,例如内核镜像文件、应用程序镜像文件等。第一存储器104可以是各种类型的存储器,例如,可以是诸如flash存储器(闪存)的只读存储器(ROM,Read-Only Memory)。
外设105是该系统在运行时执行特定功能的硬件,并且,外设105的数量可以任意设置。例如,外设105可以包括但不限于以下至少一种:eMMC(嵌入式多媒体存储卡,Embedded Multi Media Card)、flash存储器、以太网模块、I2C(集成电路内部,Inter-Integrated Circuit)总线模块、SPI(串行外设接口,Serial Peripheral Interface)总线模块、UART(通用异步收发传输器,Universal Asynchronous Receiver/Transmitter)模块等。
需要说明的是,本公开的实施例所提供的多处理单元的系统启动方法通常由第二处理单元102执行,相应地,多处理单元的系统启动装置通常位于第二处理单元102中。
本公开的实施例所提供的第一处理单元101、第二处理单元102、共享内存103、第一存储器104和外设105的数量仅仅是示例性的,根据实际需要,可以设置任意数量的第一处理单元101、第二处理单元102、共享内存103、第一存储器104和外设105。例如,第一处理单元101和第二处理单元102可以分别为至少一个,至少一个第一处理单元101中的第一处理单元和至少一个第二处理单元102中的第二处理单元的对应关系可以预先任意设置。例如,至少一个第一处理单元101可以均对应于同一个第二处理单元,也可以分别对应于不同的第二处理单元,即每个第一处理单元运行时所需的外设的初始化操作、内核镜像文件的加载操作等可以由对应的第二处理单元进行。至少一个第一处理单元101和至少一个第二处理单元102并行地执行启动操作。
示例性方法
图2是本公开一示例性实施例提供的多处理单元的系统启动方法的流程示意图。本实施例的方法可应用在如图1所示的第二处理单元102上,即该方法由第二处理单元102执行,如图2所示,该方法包括如下步骤:
步骤201,获取启动指令,对第一外设进行初始化操作。
在本实施例中,第二处理单元102可以获取启动指令,对第一外设进行初始化操作。其中,启动指令可以是第二处理单元102所在的系统启动时生成的指令。例如,系统上电时,第二处理单元102检测到上电信号,该上电信号即为启动指令。或者,如图1所示的系统中的第一处理单元101,可以向第二处理单元102发送启动指令,指示第二处理单元102开始启动并对第一外设进行初始化操作。通常,第一处理单元101上搭载有操作系统,操作系统具有对应的启动方式和启动阶段,在设定的启动阶段,第一处理单元101可以向第二处理单元102发送启动指令。例如,当第一处理单元101即将运行Linux操作系统时,第一处理单元101在进入Uboot(UniversalBootLoader,通用启动引导程序)启动阶段时,可以向第二处理单元发送启动指令。
第一外设可以是如图1所示的外设105,包括由第二处理单元102第一次进行初始化操作的外设。作为示例,第一外设可以包括但不限于eMMC、flash等。
相关技术中,对第一外设进行初始化操作是由第一处理单元101执行的。例如,当第一处理单元101运行Linux操作系统时,第一处理单元101的启动过程包括BootRom(启动用只读存储器)启动、Uboot启动、内核镜像文件加载等阶段,Uboot启动阶段中,需要由第一处理单元101对第一外设进行初始化操作,因此,第一处理单元101的启动过程耗费了较长的时间。而本公开实施例提供的方法,对第一外设进行初始化操作由第二处理单元102执行,第一处理单元101只需要初始化其上运行的软件上下文即可。由于第二处理单元102已经完成对第一外设的初始化,因此第一处理单元101直接可控制第一外设,并且第一处理单元101可以在第二处理单元102对第一外设进行初始化操作的同时,执行其他操作,因此节省了第一处理单元101对第一外设进行初始化的耗时。
步骤202,从第一存储器中确定多处理单元中的第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中。
在本实施例中,第二处理单元102可以从如图1所示的第一存储器104中确定多处理单元中的第一处理单元101的内核镜像文件,并将内核镜像文件加载到共享内存103中。其中,第一存储器104用于预先存储系统启动时所需的各种数据,例如内核镜像文件、应用程序镜像文件等。第一存储器104可以是各种类型的存储器,例如flash存储器。通常,第一存储器中的各种数据可以预先利用烧写工具烧写至第一存储器104中。
第一处理单元101可以从共享内存103提取内核镜像文件进行操作系统内核的内核启动操作。
步骤203,响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
在本实施例中,第二处理单元102可以响应于第一处理单元利用共享内存103中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
具体地,在第一处理单元101进行内核启动操作的过程中,需要再次对部分外设(即第二外设)进行初始化,这一初始化过程,是内核启动操作中的一个过程。现有技术的内核启动操作过程中对第二外设进行初始化的操作一般由第一处理单元101执行,而本公开实施例提供的方法,对第二外设进行初始化的操作由第二处理单元102执行,对于第二外设初始化相关的软件的上下文,只需由第一处理单元在软件中提前定义好具体数值即可,从而可以节约第一处理单元101对第二外设进行初始化耗费的时间。
需要说明的是,第二外设可以与第一外设完全不同,也可以部分不同,也可以完全相同。例如,第一外设包括eMMC、flash存储器等,第二外设包括eMMC、flash存储器、以太网模块、I2C总线模块、SPI总线模块、UART模块等。在实际应用中,eMMC、flash存储器用于存储内核镜像文件,即eMMC、flash存储器为第一存储器,为了从其中读取内核镜像文件,需要对其进行初始化。在第一处理单元利用内核镜像文件进行内核启动操作时,需要对eMMC、flash存储器再次初始化,用来执行挂载文件系统等操作。因此,第一外设和第二外设均包括eMMC、flash存储器,两次初始化操作在诸如配置总线频率、总线宽度、校验开关等方面有不同。本公开的上述实施例提供的方法,通过第二处理单元在获取到启动指令时,首先对第一外设执行初始化操作,然后从第一存储器中确定第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中,最后响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。由于本公开无需采用第一处理单元进行的外设初始化操作和内核加载操作,而是由第二处理单元执行外设初始化操作和内核加载操作,从而简化了第一处理单元的启动步骤,在系统启动过程中,第一处理单元和第二处理单元并行地执行片上系统的启动操作,节约了系统启动的时间,提高了系统启动速度。
在一些可选的实现方式中,在上述步骤203之后,第二处理单元102还可以执行如下步骤:
从第一存储器104中确定第一处理单元101的应用程序镜像文件,并将应用程序镜像文件加载到共享内存103中。
其中,应用程序镜像文件(也可称为app镜像文件)可以是同上述内核镜像文件一起预先烧写进第一存储区104中的。应用程序镜像文件提供了对应的应用程序在执行时所需的代码、数据等内容,第一处理单元101可以在执行应用程序镜像文件对应的应用程序时,直接从内存中调用应用程序的代码和数据。
现有技术中,应用程序镜像文件一般由第一处理单元101从第一存储器104加载到共享内存中,而本公开实施例提供的方法,应用程序镜像文件是由第二处理单元102从第一存储器104加载到共享内存中,因此,可以进一步节约原先由第一处理单元101加载应用程序镜像文件耗费的时间,进一步提高了系统启动的速度。
在一些可选的实现方式中,第一存储器104中可以预先存入至少一个链接库。其中,链接库用于提供对应的应用程序在运行时所需的资源。
第二处理单元102可以从第一存储器104中确定第一处理单元101所需的目标链接库,并将目标链接库加载到共享内存中。目标链接库用于提供对应的目标应用程序在运行时所需的资源。
需要说明的是,本实施例中加载目标链接库的时机可以根据需要任意设置,例如在内核镜像文件加载到共享内存后,或者在对第二外设进行初始化操作后。
现有技术通常由第一处理单元101执行目标链接库的加载操作,而本实施例是由第二处理单元执行,从而节约现有的由第一处理单元101加载目标链接库所耗费的时间,提高了系统启动的速度。
在一些可选的实现方式中,如图3所示,第二处理单元102可以执行如下步骤:
步骤301,从第一存储器中确定第一处理单元所需的目标链接库对应的加密链接库。
其中,加密链接库可以是预先基于各种加密算法,对目标链接库进行加密生成的。作为示例,加密算法可以为AES(高级加密标准,Advanced Encryption Standard)算法、SHA256(256位安全哈希算法,Secure Hash Algorithm)算法等。加密链接库可以预先烧写进第一存储器104中。
步骤302,对加密链接库进行验证,在确定加密链接库合法时,对加密链接库进行解密。
具体地,可以将步骤301获取的链接库与预设的对应于目标链接库的链接库进行对比,若一致,确定目标链接库合法,否则,若不一致,确定目标链接库不合法。
然后,可以基于上述加密算法,对加密链接库进行相应的解密操作,从而还原目标链接库。
步骤303,将解密后得到的目标链接库加载到共享内存中。
本实现方式通过预先对目标链接库进行加密,第二处理单元102在加载目标链接库前先对加密链接库进行验证,从而在提高系统启动的速度的基础上,还可防止目标链接库被篡改,提高了系统的安全性。
可选的,在上述步骤202中,第二处理单元102可以从第一存储器104的第一分区中确定应用程序镜像文件,并将应用程序镜像文件加载到共享内存中,以及从第一存储器104中的第二分区确定内核镜像文件,并将内核镜像文件加载到共享内存中,其中,第一分区为未设置文件系统的分区,第二分区为设置有文件系统的分区。通常,第一处理单元在加载内核镜像后还需要挂载文件系统,从而使第一处理单元上的操作系统可以利用文件系统对第二分区进行读写。而应用程序镜像文件在加载时不需要文件系统,所以可以存储在第一分区。若应用程序镜像文件存储在设置有文件系统的第二分区,则需要等待第一处理单元挂载文件系统后,第二处理单元才能访问应用程序镜像文件。本实施例提供的方法,应用程序镜像文件不需要等待第一处理单元挂载文件系统,因此,第二处理单元可以在将内核镜像文件加载到共享内存后,立即加载应用程序镜像文件,从而进一步节约了等待第一处理单元挂载文件系统的时间,提高了系统启动的速度。
示例性装置
图4是本公开一示例性实施例提供的多处理单元的系统启动装置的结构示意图。本实施例可应用在如图1所示的多处理单元中的第二处理单元102,如图4所示,该装置包括:第一初始化模块401,用于获取启动指令,对第一外设进行初始化操作;第一加载模块402,用于从第一存储器中确定多处理单元中的第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中;第二初始化模块403,用于响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
在本实施例中,第一初始化模块401可以获取启动指令,对第一外设进行初始化操作。其中,启动指令可以是第二处理单元102所在的系统启动时生成的指令。例如,系统上电时,第一初始化模块401检测到上电信号,该上电信号即为启动指令。或者,如图1所示的系统中的第一处理单元101,可以向第二处理单元102发送启动指令,指示第二处理单元102开始启动并对第一外设进行初始化操作。通常,第一处理单元101上搭载有操作系统,例如搭载有Linux操作系统,该Linux操作系统具有对应的启动方式和启动阶段,在设定的启动阶段,第一处理单元101可以向第二处理单元102发送启动指令。具体地,当第一处理单元101即将运行Linux操作系统时,第一处理单元101在进入Uboot启动阶段时,可以向第二处理单元发送启动指令。
第一外设可以是如图1所示的外设105,包括由第二处理单元102第一次进行初始化操作的外设。作为示例,第一外设可以包括但不限于eMMC、flash等。
在本实施例中,第一加载模块402可以从如图1所示的第一存储器104中确定多处理单元中的第一处理单元101的内核镜像文件,并将内核镜像文件加载到共享内存103中。其中,第一存储器104用于预先存储系统启动时所需的各种数据,例如内核镜像文件、应用程序镜像文件等。第一存储器104可以是各种类型的存储器,例如flash存储器。通常,第一存储器中的各种数据可以预先利用烧写工具烧写至第一存储器104中。
第一处理单元101可以从共享内存103提取内核镜像文件进行操作系统内核的内核启动操作。
在本实施例中,第二初始化模块403可以响应于第一处理单元利用共享内存103中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
具体地,在第一处理单元101进行内核启动操作的过程中,需要再次对部分外设(即第二外设)进行初始化,这一初始化过程,是内核启动操作中的一个过程。现有技术的内核启动操作过程中对第二外设进行初始化的操作一般由第一处理单元101执行,而本公开实施例提供的方法,对第二外设进行初始化的操作由第二处理单元102执行,对于第二外设初始化相关的软件的上下文,只需由第一处理单元在软件中提前定义好具体数值即可,从而可以节约第一处理单元101对第二外设进行初始化耗费的时间。
需要说明的是,第二外设可以与第一外设完全不同,也可以部分不同,也可以完全相同。例如,第一外设包括eMMC、flash存储器等,第二外设包括eMMC、flash存储器、以太网模块、I2C总线模块、SPI总线模块、UART模块等。
参照图5,图5是本公开另一示例性实施例提供的多处理单元的系统启动装置的结构示意图。
在一些可选的实现方式中,该装置还包括:第二加载模块404,用于从第一存储器中确定第一处理单元的应用程序镜像文件,并将应用程序镜像文件加载到共享内存中。
在一些可选的实现方式中,该装置还包括:第三加载模块405,用于从第一存储器中确定第一处理单元所需的目标链接库,并将目标链接库加载到共享内存中。
在一些可选的实现方式中,该装置还包括:确定模块406,用于从第一存储器中确定第一处理单元所需的目标链接库对应的加密链接库;验证模块407,用于对加密链接库进行验证,在确定加密链接库合法时,对加密链接库进行解密;第三加载模块408,用于将解密后得到的目标链接库加载到共享内存中。
本公开上述实施例提供的多处理单元的系统启动装置,通过第二处理单元在获取到启动指令时,首先对第一外设执行初始化操作,然后从第一存储器中确定第一处理单元的内核镜像文件,并将内核镜像文件加载到共享内存中,最后响应于第一处理单元利用共享内存中的内核镜像文件进行内核启动操作,对第二外设进行初始化操作。由于本公开无需采用第一处理单元进行的外设初始化操作和内核加载操作,而是由第二处理单元执行外设初始化操作和内核加载操作,从而简化了第一处理单元的启动步骤,在系统启动过程中,第一处理单元和第二处理单元并行地执行片上系统的启动操作,节约了系统启动的时间,提高了系统启动速度。
示例性芯片
本公开一示例性实施例还提供了一种芯片,该芯片包括第一处理单元和第二处理单元。通常,该芯片由SOC(片上系统)构成,SOC包括异构的多处理单元,其中包括至少一个主处理单元和至少一个从处理单元,至少一个主处理单元可以包括上述第一处理单元,至少一个从处理单元可以包括上述第二处理单元,即至少一个从处理单元中的部分从处理单元或全部从处理单元可以作为第二处理单元,以对第一外设、第二外设进行初始化操作,以及从第一存储器加载内核镜像文件等。至少一个主处理单元中的部分主处理单元或全部主处理单元可以作为第一处理单元。
第二处理单元,用于执行上述图2对应实施例及其任一可选实现方式描述的方法。
第一处理单元,用于执行如下步骤:
首先,在第二处理单元对第一外设进行初始化操作期间,进行设备启动操作。其中,设备启动操作是指在第一处理单元上电后自动执行的启动操作,作为示例,当第一处理单元运行Linux操作系统时,设备启动操作可以包括BootRom启动、Uboot启动等阶段。
然后,响应于内核镜像文件加载完毕,基于共享内存中的内核镜像文件进行内核启动操作。
其中,内核镜像文件加载的过程是由第二处理单元执行的。在内核镜像文件加载完毕后,第一处理单元可以利用加载进共享内存的内核镜像文件进行操作系统内核的启动操作。
需要说明的是,该芯片在启动过程中所使用的共享内存、外设和第一存储器可以设置在该芯片外。可选的,该芯片还可以包括共享内存和/或外设和/或第一存储器。
本公开的上述实施例提供的芯片,通过在启动时由其包括的第二处理单元执行第一外设、第二外设的初始化操作,以及执行内核镜像文件的加载操作,实现了在系统启动时的部分操作由第二处理单元执行,从而简化了第一处理单元的启动步骤,第一处理单元和第二处理单元并行地执行片上系统的启动操作,节约了系统启动的时间,提高了系统启动速度。
示例性电子设备
下面,参考图6来描述根据本公开实施例的电子设备。图6图示了根据本公开实施例的电子设备的框图。
如图6所示,电子设备600包括第一处理单元601、第二处理单元602、共享内存603、第一存储器604、外设605和用于存储第一处理单元601和第二处理单元602的可执行指令的第二存储器606。
第一处理单元601和第二处理单元602可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备600中的其他组件以执行期望的功能。
第二存储器606可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令。
第一存储器604用于预先存储电子设备在启动时所需的各种数据,例如内核镜像文件、应用程序镜像文件等。第一存储器604也可以是各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
需要说明的是,第一存储器604和第二存储器606的名称包括的“第一”、“第二”仅仅是用于功能上的区分,第一存储器604和第二存储器606可以为两个不同的存储器,也可以是同一个存储器上不同的存储区域。
外设605是该电子设备在运行时执行特定功能的硬件,并且,外设605的数量可以任意设置。例如,外设605可以包括但不限于以下至少一种:eMMC、flash存储器、以太网模块、I2C总线模块、SPI总线模块、UART模块等。需要说明的是,图6所示的电子设备包括的各部分仅仅是示意性的,可以根据实际需要对各部分进行组合或分解。例如,由于第一存储器604和第二存储器606也可以是一种外设,因此,外设605可以包括第一存储器604和/或第二存储器606,即第一存储器604和/或第二存储器606也可以被第二处理单元602进行初始化操作。
第二处理单元602,用于从第二存储器606中读取对应的可执行指令,并执行读取的可执行指令以实现上述图2对应实施例及其可选实现方式提供的多处理单元的系统启动方法以及/或者其他期望的功能。
第一处理单元601,用于从第二存储器606中读取对应的可执行指令,并执行读取的可执行指令以实现:
在第二处理单元602对第一外设进行初始化操作期间,进行设备启动操作;响应于内核镜像文件加载完毕,基于共享内存603中的内核镜像文件进行内核启动操作。
其中,设备启动操作是指在第一处理单元601上电后自动执行的启动操作,作为示例,当第一处理单元运行Linux操作系统时,设备启动操作可以包括BootRom启动、Uboot启动等阶段。内核镜像文件加载的过程是由第二处理单元602执行的。在内核镜像文件加载完毕后,第一处理单元601可以利用加载进共享内存603的内核镜像文件进行操作系统内核的启动操作。
在一个示例中,电子设备600还可以包括:输入装置607和输出装置608,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置607可以是鼠标、键盘等设备,用于输入用于系统启动过程的各种命令等内容。该输入装置607还可以是通信网络连接器,用于从远程接收用于系统启动过程的各种命令等内容。
该输出装置608可以向外部输出各种信息,包括系统启动的进度信息等。该输出装置608可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备600中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备600还可以包括任何其他适当的组件。
本公开的上述实施例提供的电子设备,通过在启动时由其包括的第二处理单元执行第一外设、第二外设的初始化操作,以及执行内核镜像文件的加载操作,实现了在系统启动时的部分操作由第二处理单元执行,从而简化了第一处理单元的启动步骤,第一处理单元和第二处理单元并行地执行片上系统的启动操作,节约了系统启动的时间,提高了系统启动速度。
在一些可选的实现方式中,如图6所示,第二处理单元602为至少一个,至少一个第二处理单元602分别对应于不同的第一外设和/或第二外设,至少一个第二处理单元分别用于对相应的第一外设和/或第二外设进行初始化操作。
具体地,每个第二处理单元602可以分别对应于不同的第一外设和第二外设,即每个第二处理单元602可以初始化对应的第一外设和对应的第二外设。或者,每个第二处理单元602可以分别对应于不同的第一外设或第二外设,即每个第二处理单元602只能初始化对应的第一外设或对应的第二外设。
本实现方式通过至少一个第二处理单元分别初始化对应的第一外设和/或第二外设,实现了至少一个第二处理单元并行地对外设进行初始化操作,进一步提高了电子设备启动的速度。
在一些可选的实现方式中,第二处理单元602为至少一个,至少一个第二处理单元602分别对应于不同的应用程序镜像文件,至少一个第二处理单元分别用于将相应的应用程序镜像文件加载到共享内存603中。
第一处理单元601,用于基于共享内存603中的应用程序镜像文件运行对应的应用程序。
应当理解,每个第二处理单元602可以对应于一个或多个应用程序镜像文件。即每个第二处理单元602分别将至少一个应用程序镜像文件加载到共享内存603
需要说明的是,本可选实现方式和上述可选实现方式中,除了至少一个第二处理单元602之外,该电子设备还可以包括其他与第二处理单元602具有相似性能的其他处理单元。例如,当电子设备包括异构的多核SOC(片上系统)时,片上系统包括上述第一处理单元601、至少一个第二处理单元602和上述其他处理单元。第一处理单元601为主核,至少一个第二处理单元602和上述其他处理单元为从核。即部分从核承担辅助第一处理单元601启动的功能。
本实现方式通过至少一个第二处理单元分别加载对应的应用程序镜像文件,实现了至少一个第二处理单元并行地加载应用程序镜像文件,进一步提高了电子设备启动的速度。
可选的,如图6所示,第一处理单元601可以为至少一个,至少一个第一处理单元601中的第一处理单元和至少一个第二处理单元602中的第二处理单元的对应关系可以预先任意设置。例如,至少一个第一处理单元601可以均对应于同一个第二处理单元,也可以分别对应于不同的第二处理单元,即每个第一处理单元运行时所需的外设的初始化操作、内核镜像文件的加载操作等可以由对应的第二处理单元进行。至少一个第一处理单元601和至少一个第二处理单元602并行地执行启动操作,从而提高了包含多处理单元的电子设备的启动速度。
在一些可选的实现方式中,第一存储器604包括未设置文件系统的第一分区和设置有文件系统的第二分区,第一分区用于存储应用程序镜像文件,第二分区用于存储内核镜像文件。
通常,第一处理单元601在加载内核镜像后还需要挂载文件系统,从而使第一处理单元上的操作系统可以利用文件系统对第二分区进行读写。而应用程序镜像文件在加载时不需要文件系统,所以可以存储在第一分区。若应用程序镜像文件存储在设置有文件系统的第二分区,则需要等待第一处理单元挂载文件系统后,第二处理单元才能访问应用程序镜像文件。本实施例中的应用程序镜像文件不需要等待第一处理单元挂载文件系统,因此,第二处理单元602可以在将内核镜像文件加载到共享内存603后,立即加载应用程序镜像文件,从而进一步节约了等待第一处理单元601挂载文件系统的时间,提高了电子设备启动的速度。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的多处理单元的系统启动方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的多处理单元的系统启动方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种多处理单元的系统启动方法,应用于所述多处理单元中的第二处理单元,所述方法包括:
获取启动指令,对第一外设进行初始化操作;
从第一存储器中确定所述多处理单元中的第一处理单元的内核镜像文件,并将所述内核镜像文件加载到共享内存中;其中,所述第一处理单元为片上系统中的主处理单元,所述第二处理单元为所述片上系统中的从处理单元;
响应于所述第一处理单元利用所述共享内存中的所述内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
2.根据权利要求1所述的方法,其中,在所述对第二外设进行初始化操作之后,所述方法还包括:
从所述第一存储器中确定所述第一处理单元的应用程序镜像文件,并将所述应用程序镜像文件加载到所述共享内存中。
3.根据权利要求1所述的方法,其中,所述方法还包括:
从所述第一存储器中确定所述第一处理单元所需的目标链接库,并将所述目标链接库加载到所述共享内存中。
4.根据权利要求1所述的方法,其中,所述方法还包括:
从所述第一存储器中确定所述第一处理单元所需的目标链接库对应的加密链接库;
对所述加密链接库进行验证,在确定所述加密链接库合法时,对所述加密链接库进行解密;
将解密后得到的所述目标链接库加载到所述共享内存中。
5.一种多处理单元的系统启动装置,应用于所述多处理单元中的第二处理单元,所述装置包括:
第一初始化模块,用于获取启动指令,对第一外设进行初始化操作;
第一加载模块,用于从第一存储器中确定所述多处理单元中的第一处理单元的内核镜像文件,并将所述内核镜像文件加载到共享内存中;其中,所述第一处理单元为片上系统中的主处理单元,所述第二处理单元为所述片上系统中的从处理单元;
第二初始化模块,用于响应于所述第一处理单元利用所述共享内存中的所述内核镜像文件进行内核启动操作,对第二外设进行初始化操作。
6.一种电子设备,所述电子设备包括第一处理单元、第二处理单元、第一存储器、共享内存、外设和用于存储所述第一处理单元和所述第二处理单元的可执行指令的第二存储器,所述第一处理单元为片上系统中的主处理单元,所述第二处理单元为所述片上系统中的从处理单元;
所述第二处理单元,用于从所述第二存储器中读取对应的可执行指令,并执行读取的可执行指令以实现上述权利要求1-4中任一所述的多处理单元的系统启动方法;
所述第一处理单元,用于从所述第二存储器中读取对应的可执行指令,并执行读取的可执行指令以实现:在所述第二处理单元对第一外设进行初始化操作期间,进行设备启动操作;响应于内核镜像文件加载完毕,基于所述共享内存中的内核镜像文件进行内核启动操作。
7.根据权利要求6所述的电子设备,其中,所述第二处理单元为至少一个,至少一个所述第二处理单元分别对应于不同的所述第一外设和/或所述第二外设,至少一个所述第二处理单元分别用于对相应的所述第一外设和/或所述第二外设进行初始化操作。
8.根据权利要求6所述的电子设备,其中,所述第二处理单元为至少一个,至少一个所述第二处理单元分别对应于不同的应用程序镜像文件,至少一个所述第二处理单元分别用于将相应的应用程序镜像文件加载到所述共享内存中;
所述第一处理单元,用于基于所述共享内存中的所述应用程序镜像文件运行对应的应用程序。
9.根据权利要求8所述的电子设备,其中,所述第一存储器包括未设置文件系统的第一分区和设置有文件系统的第二分区,所述第一分区用于存储所述应用程序镜像文件,所述第二分区用于存储所述内核镜像文件。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-4任一所述的方法。
CN202210087385.4A 2022-01-25 2022-01-25 多处理单元的系统启动方法、装置、存储介质和电子设备 Active CN114510287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210087385.4A CN114510287B (zh) 2022-01-25 2022-01-25 多处理单元的系统启动方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210087385.4A CN114510287B (zh) 2022-01-25 2022-01-25 多处理单元的系统启动方法、装置、存储介质和电子设备

Publications (2)

Publication Number Publication Date
CN114510287A CN114510287A (zh) 2022-05-17
CN114510287B true CN114510287B (zh) 2024-07-05

Family

ID=81550559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210087385.4A Active CN114510287B (zh) 2022-01-25 2022-01-25 多处理单元的系统启动方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN114510287B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721990A (zh) * 2021-07-20 2021-11-30 北京比特大陆科技有限公司 数据处理方法、数据处理设备、加速卡和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279935A (zh) * 2016-12-30 2018-07-13 北京中科晶上科技股份有限公司 一种针对片上系统的操作系统启动引导方法
CN112463260B (zh) * 2021-01-26 2021-04-20 杭州万高科技股份有限公司 用于终端设备的安全启动方法、终端设备及介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721990A (zh) * 2021-07-20 2021-11-30 北京比特大陆科技有限公司 数据处理方法、数据处理设备、加速卡和存储介质

Also Published As

Publication number Publication date
CN114510287A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
US10613773B2 (en) Backing up firmware during initialization of device
US9965270B2 (en) Updating computer firmware
US9886580B2 (en) Method for optimizing boot time of an information handling system
US20200042710A1 (en) Method and Apparatus for Providing a Root of Trust using a Baseboard Management Controller
US8468334B1 (en) Efficient initial RAM disk creation
US20050246478A1 (en) Information processing apparatus and a method and a program of loading a device driver
US9658863B2 (en) Information processing apparatus and control method therefor
JPH04263349A (ja) コンピュータにbiosをロードする装置及び方法
KR101673299B1 (ko) 운영 시스템 복구 방법 및 장치, 그리고 단말기기
CN102135893A (zh) 将操作系统集成到bios芯片及启动服务器上操作系统的方法
KR20080108526A (ko) 제1 및 제2 처리 유닛을 포함하는 처리 장치, 이를 부팅하는 방법 및 이 방법을 수행하게 하도록 적응되는 컴퓨터 실행가능 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품
US10025587B2 (en) Method of bootup and installation, and computer system thereof
KR102693699B1 (ko) 전자 장치에서 어플리케이션 업데이트 시 런타임 성능 개선 방법 및 장치
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
US20030188146A1 (en) Method of ordered execution of firmware modules in a pre-memory execution environment
WO2024208268A1 (zh) 计算设备中访问tpm的方法和计算设备
JP7102524B2 (ja) 複数のバイナリイメージのファームウェア公開
US8499142B1 (en) UEFI boot loader for loading non-UEFI compliant operating systems
US11120166B1 (en) Generation of a firmware configured for use in restricting the use of a firmware tool
CN114510287B (zh) 多处理单元的系统启动方法、装置、存储介质和电子设备
CN110286953B (zh) 嵌入式系统的启动方法、装置、嵌入式设备及存储介质
US9778936B1 (en) Booting a computing system into a manufacturing mode
CN114064138A (zh) 包括多核处理器的系统的启动方法以及采用该方法的系统
US8918630B1 (en) System, apparatus, and method for initiating a reboot of a personal computer system by pressing a button on an attached storage device and causing the operating system on the attached storage device to be booted
US11204781B2 (en) Optimizing power, memory and load time of a computing system during image loading based on image segmentation

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
GR01 Patent grant
GR01 Patent grant