CN117170754A - 多核处理器启动控制系统、方法、电子设备及存储介质 - Google Patents

多核处理器启动控制系统、方法、电子设备及存储介质 Download PDF

Info

Publication number
CN117170754A
CN117170754A CN202311136815.8A CN202311136815A CN117170754A CN 117170754 A CN117170754 A CN 117170754A CN 202311136815 A CN202311136815 A CN 202311136815A CN 117170754 A CN117170754 A CN 117170754A
Authority
CN
China
Prior art keywords
starting
core
cores
address
memory
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
CN202311136815.8A
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.)
Bouffalo Lab Nanjing Co ltd
Original Assignee
Bouffalo Lab Nanjing 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 Bouffalo Lab Nanjing Co ltd filed Critical Bouffalo Lab Nanjing Co ltd
Priority to CN202311136815.8A priority Critical patent/CN117170754A/zh
Publication of CN117170754A publication Critical patent/CN117170754A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明揭示了一种多核处理器启动控制系统、方法、电子设备及存储介质,所述启动控制系统包括:主核心、若干第一核心、若干第二核心、存储模块、启动控制模块及启动流程追踪模块;所述存储模块包括只读存储器ROM、一次性可编程存储器efuse、第一随机存取存储器、第二随机存取存储器及外部存储器。本发明提出的多核处理器启动控制系统、方法、电子设备及存储介质,可有效监测多核系统的启动过程,提高应用程序的灵活性、准确性,使应用程序开发的更顺利,降低客户的应用程序开发成本。

Description

多核处理器启动控制系统、方法、电子设备及存储介质
技术领域
本发明属于处理器启动控制技术领域,涉及一种处理器启动控制系统,尤其涉及一种多核处理器启动控制系统、方法、电子设备及存储介质。
背景技术
多核处理器是一种具有多个独立处理核心的中央处理器(CPU)。每个核心都可以执行独立的指令流,从而实现并行处理。多核处理器每个核心可以在同一时间处理不同的任务,提高应用整体处理性能。
多核处理器可以有多种不同的配置,例如根据多个核心架构是否相同可以分为同构和异构多核处理器,例如根据核心数量又可以分为双核、三核、五核处理器等,由于每个核心都可以独立运行程序、响应中断与处理数据,所以核心越多的系统,其响应速度和处理能力就越好。
多核处理器常用的启动方式是由一个主核先启动,这个主核负责依次把其余各个核心启动起来。现有多核处理器通常只有一种启动方式,无法根据不同使用场景做调整。
有鉴于此,如今迫切需要设计一种新的多核处理器控制方式,以便克服现有多核处理器控制方式存在的上述至少部分缺陷。
发明内容
本发明提供一种多核处理器启动控制系统、方法、电子设备及存储介质,可有效监测多核系统的启动过程,提高应用程序的灵活性、准确性,使应用程序开发的更顺利,降低客户的应用程序开发成本。
为解决上述技术问题,根据本发明的一个方面,采用如下技术方案:
一种多核处理器启动控制系统,所述启动控制系统包括:主核心、若干第一核心、若干第二核心、存储模块、启动控制模块及启动流程追踪模块;
所述存储模块包括只读存储器ROM、一次性可编程存储器efuse、第一随机存取存储器、第二随机存取存储器及外部存储器;
所述只读存储器ROM用以存储主核心的启动代码;
所述一次性可编程存储器efuse用以存储设定核心的启动信息;
所述外部存储器用以存放镜像数据,镜像数据包括主核心、各第一核心、各第二核心的启动信息及应用程序;
所述第一随机存取存储器用以存放主核心根据只读存储器ROM存储的启动代码、一次性可编程存储器efuse及外部存储器存储的启动信息生成各第一核心、各第二核心的启动代码补丁patch,供各第一核心、各第二核心取值并执行;
所述第二随机存取存储器用以存放主核心根据只读存储器ROM存储的启动代码、一次性可编程存储器efuse及外部存储器存储的启动信息生成各第二核心的启动代码补丁patch,供各第二核心取值并执行;
所述主核心、各第一核心、各第二核心分别连接第一随机存取存储器,各第二核心分别连接第二随机存取存储器;所述主核心、各第一核心、各第二核心分别连接外部存储器;所述主核心连接所述只读存储器ROM及一次性可编程存储器efuse;
所述启动控制模块用以控制主核心在多核处理器上电启动后从只读存储器ROM中读取启动代码、从一次性可编程存储器efuse及外部存储器读取启动信息,并根据获取的启动代码及启动信息执行;其余核心保持复位状态;在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心从预设地址获取指令并执行;
所述启动流程追踪模块用以在启动流程的各阶段进行指令执行流程检测,再根据检测结果决定后续流程的执行并记录该检测结果;根据该检测结果判断启动流程是否正常执行。
作为本发明的一种实施方式,在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心在跳转到镜像前先执行对应的启动代码补丁patch,进行对应核心的环境配置;
所述启动代码补丁patch为固定的一段寄存器配置逻辑,或者能根据外部存储器内启动信息进行相应的调整;
所述启动代码补丁patch的最后一条指令为各个核心的入口地址的跳转指令,以此保证对应核心执行完启动代码补丁patch后跳转到各自的目标入口地址继续执行代码;
在完成启动代码补丁patch的准备后,主核心依次设置其它核心的跳转地址为各自启动代码补丁patch所在地址,并释放对应核心的复位信号,令对应核心能开始执行启动代码补丁patch;对应核心执行完各自的启动代码补丁patch代码后会跳转到各自的目标入口地址继续执行。
作为本发明的一种实施方式,所述启动控制系统进一步包括入口地址检测模块,所述入口地址检测模块用以检测应用程序启动信息中的应用程序入口地址是否合法;
若判断入口地址合法,则跳转到此入口地址开始执行此应用程序的代码;
若判断入口地址非法,则不跳转到此入口地址执行,而是执行启动失败流程,不再尝试启动此镜像,等待外部硬件复位。
作为本发明的一种实施方式,所述启动信息包括应用程序的入口地址、环境配置、应用程序的校验。
根据本发明的另一个方面,采用如下技术方案:一种上述多核处理器启动控制系统的启动控制方法,所述启动控制方法包括:
启动控制模块控制主核心在多核处理器上电启动后从只读存储器ROM中读取指令并执行,其余核心保持复位状态;
在主核心释放对应核心的复位操作,所述启动控制模块控制对应核心从预设地址获取指令并执行;
启动流程追踪模块在启动流程的各阶段进行指令执行流程检测,再根据检测结果决定后续流程的执行并记录此检测信息;根据此检测信息进行判断启动流程是否正常执行。
作为本发明的一种实施方式,在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心在跳转到镜像前先执行对应的启动代码补丁patch,进行对应核心的环境配置。
作为本发明的一种实施方式,所述启动代码补丁patch为固定的一段寄存器配置逻辑,或者能根据外部存储器内启动信息进行相应的调整;所述启动代码补丁patch的最后一条指令为各个核心的入口地址的跳转指令,以此保证对应核心执行完启动代码补丁patch后跳转到各自的目标入口地址继续执行代码;
在完成启动代码补丁patch的准备后,主核心依次设置其它核心的跳转地址为各自启动代码补丁patch所在地址,并释放对应核心的复位信号,令对应核心能开始执行启动代码补丁patch;对应核心执行完各自的启动代码补丁patch代码后会跳转到各自的目标入口地址继续执行。
根据本发明的又一个方面,采用如下技术方案:一种上述多核处理器启动控制系统的启动控制方法,所述启动控制方法包括:
步骤S1、主核心首先启动,其余核心默认保持在复位状态;
在本发明中,主核心负责大部分启动工作;主核心需要作为默认启动核,其余核心默认保持在复位状态,即多核处理器上电后仅主核从只读存储器ROM中获取指令并执行,其余核心需要由主核在合适的时机进行复位释放操作后才能从预设地址获取指令并执行;
步骤S2、判断是否为低功耗快速启动模式,若否则执行步骤S4,若是则执行步骤S3;
当发现本次启动是第一次上电启动,则执行步骤S4;当发现本次启动是某次低功耗睡眠模式醒来后的快速启动模式,直接跳转到目标地址执行代码;
步骤S3、判断快速启动合规检测是否合格,若否则执行步骤S4,若是则执行步骤S11;
低功耗快速启动模式由应用程序在指定地址设定了特定的标志位和跳转地址来实现,这个标志位和跳转地址会受到合法性约束,合规检测会判断标志位和跳转地址是否合法,仅在合法的情况下才会跳过大部分流程直接跳转到目标地址执行;若不合法,则转而执行正常的启动流程;
步骤S4、读取一次性可编程存储器efuse中存储的启动信息;
一次性可编程存储器eFuse是一种一次性编程器件,一旦被编程就不能被再次擦除或修改;芯片制造商在生产过程中将启动流程的控制信息烧录到一次性可编程存储器efuse中,保护其不被非法复制或篡改;这里读取的就是多核处理器中存放的一次性可编程存储器efuse的值,供后续流程使用;
步骤S5、根据从一次性可编程存储器efuse读取到的启动信息启动流程;
步骤S4中从一次性可编程存储器efuse获取到的启动信息中有一部分启动信息作为多核处理器启动流程控制,后续的启动流程会根据对应启动信息进行设定调整;
步骤S6、初始化计时器模块MTimer;
计时器模块MTimer提供精确的实时计时功能,用于测量和记录程序执行的时间;通过读取计时器模块MTimer的计数器值,可以确定经过的时间周期,从而实现对时间的准确测量;这里初始化计时器模块MTimer就是为了给应用程序提供一个启动时间的参考,让应用程序对启动时间进行监测;
步骤S7、进行代码追踪验证CodePath;
为了实现启动流程的监测功能,需要开启代码追踪验证CodePath功能;这个功能会在启动流程的每一个小阶段进行一些指令执行流程的检测,再根据检测结果决定后续流程的执行并记录此检测信息;应用程序根据此检测信息进行判断启动流程是否正常执行;
步骤S8、目标镜像跳转入口地址检测;
目标镜像是存放在外部存储器中的数据;它包含了多核系统的应用程序与其启动信息,在其启动信息中存放了应用程序的入口地址;由于这个入口地址未必合法,所以需要进行地址检测;
步骤S9、为其余核心准备启动代码补丁patch;
对于主核心而言,它需要执行的配置可以从efuse和镜像中获得,并直接进行处理,但其它核心一直处于复位状态,所以需要准备合适的配置代码patch,令其它核心在跳转到镜像之前先执行此段patch代码进行其它核心的环境配置;patch代码可以是固定的一段寄存器配置逻辑,也可以根据外部存储器内启动信息进行合适的调整,但patch的最后一条指令需要是各个核心的入口地址的跳转指令,以此保证其它核心执行完patch之后会跳转到各自的目标入口地址继续执行代码;
步骤S10、主核控制其余核心依次执行启动代码补丁patch并启动;
在完成了patch代码的准备后,主核需要依次设置其它核心的跳转地址为各自patch所在地址,并释放其复位信号,令其可以开始执行启动代码补丁patch;其它核心执行完各自的启动代码补丁patch后跳转到各自的目标入口地址继续执行;
步骤S11、主核跳转至镜像指定的启动地址开始运行;
在释放其它核心复位信号后,主核心需要跳转到自身的目标入口地址执行;
步骤S12、多核处理器启动流程结束。
根据本发明的又一个方面,采用如下技术方案:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
根据本发明的又一个方面,采用如下技术方案:一种存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法的步骤。
本发明的有益效果在于:本发明提出的多核处理器启动控制系统、方法、电子设备及存储介质,可以实现多核心处理器的低功耗快速启动、正常启动、启动计时、启动流程追踪、多核启动环境初始化的功能。可有效监测多核系统的启动过程,为应用程序提供启动过程计时信息,为多核系统提供初始环境配置;使得启动过程对多核系统应用程序更透明,为用户的应用程序提供了更好的环境信息及配置;提高应用程序的灵活性、准确性,使应用程序开发的更顺利,降低客户的应用程序开发成本。
附图说明
图1为本发明一实施例中多核处理器启动控制系统的组成示意图。
图2为本发明一实施例中多核处理器启动控制方法的流程图。
图3为本发明一实施例中电子设备的组成示意图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。
该部分的描述只针对几个典型的实施例,本发明并不仅局限于实施例描述的范围。相同或相近的现有技术手段与实施例中的一些技术特征进行相互替换也在本发明描述和保护的范围内。
说明书中各个实施例中的步骤的表述只是为了方便说明,本申请的实现方式不受步骤实现的顺序限制。
说明书中的“连接”既包含直接连接,也包含间接连接,如通过一些有源器件、无源器件或电传导媒介进行的连接;还可包括本领域技术人员公知的在可实现相同或相似功能目的的基础上通过其他有源器件或无源器件的连接,如通过开关、跟随电路等电路或部件的连接。
本发明揭示了一种多核处理器启动控制系统,图1为本发明一实施例中多核处理器启动控制系统的组成示意图;请参阅图1,所述启动控制系统包括:主核心1、若干第一核心2、若干第二核心3、存储模块、启动控制模块及启动流程追踪模块;
所述存储模块包括只读存储器ROM 4、一次性可编程存储器efuse 5、第一随机存取存储器6、第二随机存取存储器7及外部存储器8;
所述只读存储器ROM 4用以存储主核心的启动代码;所述一次性可编程存储器efuse 5用以存储设定核心的启动信息(启动信息包含应用程序的入口地址、环境配置、应用程序的校验等多种信息);所述外部存储器8用以存放镜像数据,镜像数据包括主核心、各第一核心、各第二核心的启动信息及应用程序。
所述第一随机存取存储器6用以存放主核心根据只读存储器ROM存储的启动代码、一次性可编程存储器efuse及外部存储器存储的启动信息生成各第一核心、各第二核心的启动代码补丁patch,供各第一核心、各第二核心取值并执行。
所述第二随机存取存储器7用以存放主核心根据只读存储器ROM存储的启动代码、一次性可编程存储器efuse及外部存储器存储的启动信息生成各第二核心的启动代码补丁patch,供各第二核心取值并执行。第二随机存取存储器仅供各第二核心读取,各第二核心访问存储器的速度可以较快;如果设计成多个核心都能访问该存储器,则存储器的最高访问速度不能做到很快。
所述主核心1、各第一核心2、各第二核心3分别连接第一随机存取存储器6,各第二核心3分别连接第二随机存取存储器7;所述主核心1、各第一核心2、各第二核心3分别连接外部存储器8;所述主核心1连接所述只读存储器ROM 4及一次性可编程存储器efuse 5。
所述启动控制模块用以控制主核心在多核处理器上电启动后从只读存储器ROM中读取启动代码、从一次性可编程存储器efuse及外部存储器读取启动信息,并根据获取的启动代码及启动信息执行;其余核心保持复位状态;在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心从预设地址获取指令并执行。
所述启动流程追踪模块用以在启动流程的各阶段(如图2中各个流程可以作为一个阶段)进行指令执行流程检测,再根据检测结果决定后续流程的执行并记录该检测结果;根据该检测结果判断启动流程是否正常执行。
在本发明的一实施例中,在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心在跳转到镜像前先执行对应的启动代码补丁patch,进行对应核心的环境配置。
所述启动代码补丁patch为固定的一段寄存器配置逻辑,或者能根据外部存储器内启动信息进行相应的调整;所述启动代码补丁patch的最后一条指令为各个核心的入口地址的跳转指令,以此保证对应核心执行完启动代码补丁patch后跳转到各自的目标入口地址继续执行代码。
在完成启动代码补丁patch的准备后,主核心依次设置其它核心的跳转地址为各自启动代码补丁patch所在地址,并释放对应核心的复位信号,令对应核心能开始执行启动代码补丁patch;对应核心执行完各自的启动代码补丁patch代码后会跳转到各自的目标入口地址继续执行。
在本发明的一实施例中,所述启动控制系统进一步包括入口地址检测模块,所述入口地址检测模块用以检测应用程序启动信息中的应用程序入口地址是否合法。若判断入口地址合法,则跳转到此入口地址开始执行此应用程序的代码;若判断入口地址非法,则不跳转到此入口地址执行,而是执行启动失败流程,不再尝试启动此镜像,等待外部硬件复位。
在本发明的一种使用场景中,主核心1在上电后会默认从ROM取指令执行;由主核心负责多核系统启动流程。ROM区域存放启动代码,efuse和外部存储器内都存放了一些启动配置(即启动信息),主核心执行启动代码的过程中会读取启动信息,并根据此启动信息调整自身的跳转流程,执行不同的逻辑。
各第一核心2(核A、核B、......核N)上电后默认保持复位状态,需要等待主核心1将其复位信号释放后,才能从设定好的地址(patch A、patch B、......patch N)取指令并执行代码。
各第二核心(核A’、核B’、......核N’)上电后默认保持复位状态,需要等待主核将其复位信号释放后,才能从设定好的地址(patch A’、patch B’、......patch N’)取指令并执行代码。
只读存储器ROM(Read-Only Memory)是一种存储器件,在断电的时候可以保留数据。芯片流片时可以固化一段指令到ROM内,作为芯片的启动代码。由于固化后便无法再修改,因此不用担心启动代码被第三方篡改导致的安全隐患。在本发明的一实施例中,ROM用于存放主核的启动代码。
第一随机存取存储器RAM(Random Access Memory)是一种存储器件;RAM常用于临时存储数据和程序指令,供CPU快速读取和写入,但断电时数据会被清除。在本发明的一实施例中,第一随机存取存储器RAM用于存放主核根据ROM、efuse、启动信息而生成的patchA、patch B、......patch N、patch A’、patch B’、......patch N’,供其它核心取值并执行。
第二随机存取存储器RAM’与第一随机存取存储器RAM的功能类似相同,在此架构内仅供各第二核心(核A’、核B’、......核N’)访问使用。
在本发明的一实施例中,外部存储器8用于存放镜像数据,镜像数据由启动信息和应用程序组成。外部存储器8内的数据可以被用户修改,用于存放用户应用的具体实现;外部存储器8可以为Flash存储器。
本发明还揭示一种上述多核处理器启动控制系统的启动控制方法,所述启动控制方法包括:
启动控制模块控制主核心在多核处理器上电启动后从只读存储器ROM中读取指令并执行,其余核心保持复位状态;
在主核心释放对应核心的复位操作,所述启动控制模块控制对应核心从预设地址获取指令并执行;
启动流程追踪模块在启动流程的各阶段进行指令执行流程检测,再根据检测结果决定后续流程的执行并记录此检测信息;根据此检测信息进行判断启动流程是否正常执行。
作为本发明的一种实施方式,在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心在跳转到镜像前先执行对应的启动代码补丁patch,进行对应核心的环境配置。
所述启动代码补丁patch为固定的一段寄存器配置逻辑,或者能根据外部存储器内启动信息进行相应的调整;所述启动代码补丁patch的最后一条指令为各个核心的入口地址的跳转指令,以此保证对应核心执行完启动代码补丁patch后跳转到各自的目标入口地址继续执行代码;
在完成启动代码补丁patch的准备后,主核心依次设置其它核心的跳转地址为各自启动代码补丁patch所在地址,并释放对应核心的复位信号,令对应核心能开始执行启动代码补丁patch;对应核心执行完各自的启动代码补丁patch代码后会跳转到各自的目标入口地址继续执行。
图2为本发明一实施例中多核处理器启动控制方法的流程图;请参阅图2,在本发明的一种使用场景中,一种上述多核处理器启动控制系统的启动控制方法包括如下步骤:
步骤S1、主核心首先启动,其余核心默认保持在复位状态;
在本发明中,主核心负责大部分启动工作;主核心需要作为默认启动核,其余核心默认保持在复位状态,即多核处理器上电后仅主核从只读存储器ROM中获取指令并执行,其余核心需要由主核在合适的时机进行复位释放操作后才能从预设地址获取指令并执行;
步骤S2、判断是否为低功耗快速启动模式,若否则执行步骤S4,若是则执行步骤S3;
多核处理器除了第一次上电以外,还有可能是在应用程序中进入了低功耗睡眠模式,此时被唤醒后也会重新执行此启动流程,因此需要进行是否为快速启动模式的判断;当发现本次启动是第一次上电启动,则执行步骤S4;当发现本次启动是某次低功耗睡眠模式醒来后的快速启动模式,由于进入低功耗睡眠模式前很多环境已经处于就绪状态,因此可以避免掉正常流程大部分配置流程,直接跳转到目标地址执行代码;
步骤S3、判断快速启动合规检测是否合格,若否则执行步骤S4,若是则执行步骤S11;
低功耗快速启动模式由应用程序在指定地址设定了特定的标志位和跳转地址来实现,这个标志位和跳转地址会受到合法性约束,合规检测会判断标志位和跳转地址是否合法,仅在合法的情况下才会跳过大部分流程直接跳转到目标地址执行;若不合法,则转而执行正常的启动流程;
步骤S4、读取一次性可编程存储器efuse中存储的启动信息;
一次性可编程存储器eFuse是一种一次性编程器件,一旦被编程就不能被再次擦除或修改;芯片制造商在生产过程中将启动流程的控制信息烧录到一次性可编程存储器efuse中,保护其不被非法复制或篡改;这里读取的就是多核处理器中存放的一次性可编程存储器efuse的值,供后续流程使用;
步骤S5、根据从一次性可编程存储器efuse读取到的启动信息启动流程;
步骤S4中从一次性可编程存储器efuse获取到的启动信息中有一部分启动信息作为多核处理器启动流程控制,后续的启动流程会根据对应启动信息进行设定调整;
步骤S6、初始化计时器模块MTimer;
计时器模块MTimer是一个在RISC-V处理器中常见的计时器模块,它可以提供精确的实时计时功能,用于测量和记录程序执行的时间;通过读取计时器模块MTimer的计数器值,可以确定经过的时间周期,从而实现对时间的准确测量;这里初始化计时器模块MTimer就是为了给应用程序提供一个启动时间的参考,让应用程序对启动时间进行监测;
步骤S7、进行代码追踪验证CodePath;
为了实现启动流程的监测功能,需要开启代码追踪验证CodePath功能;这个功能会在启动流程的每一个小阶段进行一些指令执行流程的检测,再根据检测结果决定后续流程的执行并记录此检测信息;应用程序根据此检测信息进行判断启动流程是否正常执行;
步骤S8、目标镜像跳转入口地址检测;
目标镜像是存放在外部存储器中的数据;它包含了多核系统的应用程序与其启动信息,在其启动信息中存放了应用程序的入口地址;由于这个入口地址未必合法,所以需要进行地址检测;
步骤S9、为其余核心准备启动代码补丁patch;
对于主核心而言,它需要执行的配置可以从efuse和镜像中获得,并直接进行处理,但其它核心一直处于复位状态,所以需要准备合适的配置代码patch,令其它核心在跳转到镜像之前先执行此段patch代码进行其它核心的环境配置;patch代码可以是固定的一段寄存器配置逻辑,也可以根据外部存储器内启动信息进行合适的调整,但patch的最后一条指令需要是各个核心的入口地址的跳转指令,以此保证其它核心执行完patch之后会跳转到各自的目标入口地址继续执行代码;
步骤S10、主核控制其余核心依次执行启动代码补丁patch并启动;
在完成了patch代码的准备后,主核需要依次设置其它核心的跳转地址为各自patch所在地址,并释放其复位信号,令其可以开始执行启动代码补丁patch;其它核心执行完各自的启动代码补丁patch后跳转到各自的目标入口地址继续执行;
步骤S11、主核跳转至镜像指定的启动地址开始运行;
在释放其它核心复位信号后,主核心需要跳转到自身的目标入口地址执行;
步骤S12、多核处理器启动流程结束。
本发明还揭示一种电子设备,图3为本发明一实施例中电子设备的组成示意图;请参阅图3,在硬件层面所述电子设备包括存储器、处理器及至少一网络接口;所述处理器可以为微处理器,所述存储器可以包括内存,如可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(non-volatile memory)等。当然,所述电子设备还可以根据需要设置其他硬件。
所述处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(工业标准体系结构)总线、PCI(外设部件互连标准)总线或EISA(扩展工业标准结构)总线等;所述总线可以包括地址总线、数据总线、控制总线等。所述存储器用于存放程序(可包括操作系统程序及应用程序);程序可以包括程序代码,所述程序代码可以包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
在一实施例中,所述处理器可以从非易失性存储器中读取对应的程序到内存中,而后运行;处理器能执行存储器所存放的程序,并具体用于执行以下操作(如图2所示):
步骤S1、主核心首先启动,其余核心默认保持在复位状态;
在本发明中,主核心负责大部分启动工作;主核心需要作为默认启动核,其余核心默认保持在复位状态,即多核处理器上电后仅主核从只读存储器ROM中获取指令并执行,其余核心需要由主核在合适的时机进行复位释放操作后才能从预设地址获取指令并执行;
步骤S2、判断是否为低功耗快速启动模式,若否则执行步骤S4,若是则执行步骤S3;
多核处理器除了第一次上电以外,还有可能是在应用程序中进入了低功耗睡眠模式,此时被唤醒后也会重新执行此启动流程,因此需要进行是否为快速启动模式的判断;当发现本次启动是第一次上电启动,则执行步骤S4;当发现本次启动是某次低功耗睡眠模式醒来后的快速启动模式,由于进入低功耗睡眠模式前很多环境已经处于就绪状态,因此可以避免掉正常流程大部分配置流程,直接跳转到目标地址执行代码;
步骤S3、判断快速启动合规检测是否合格,若否则执行步骤S4,若是则执行步骤S11;
低功耗快速启动模式由应用程序在指定地址设定了特定的标志位和跳转地址来实现,这个标志位和跳转地址会受到合法性约束,合规检测会判断标志位和跳转地址是否合法,仅在合法的情况下才会跳过大部分流程直接跳转到目标地址执行;若不合法,则转而执行正常的启动流程;
步骤S4、读取一次性可编程存储器efuse中存储的启动信息;
一次性可编程存储器eFuse是一种一次性编程器件,一旦被编程就不能被再次擦除或修改;芯片制造商在生产过程中将启动流程的控制信息烧录到一次性可编程存储器efuse中,保护其不被非法复制或篡改;这里读取的就是多核处理器中存放的一次性可编程存储器efuse的值,供后续流程使用;
步骤S5、根据从一次性可编程存储器efuse读取到的启动信息启动流程;
步骤S4中从一次性可编程存储器efuse获取到的启动信息中有一部分启动信息作为多核处理器启动流程控制,后续的启动流程会根据对应启动信息进行设定调整;
步骤S6、初始化计时器模块MTimer;
计时器模块MTimer是一个在RISC-V处理器中常见的计时器模块,它可以提供精确的实时计时功能,用于测量和记录程序执行的时间;通过读取计时器模块MTimer的计数器值,可以确定经过的时间周期,从而实现对时间的准确测量;这里初始化计时器模块MTimer就是为了给应用程序提供一个启动时间的参考,让应用程序对启动时间进行监测;
步骤S7、进行代码追踪验证CodePath;
为了实现启动流程的监测功能,需要开启代码追踪验证CodePath功能;这个功能会在启动流程的每一个小阶段进行一些指令执行流程的检测,再根据检测结果决定后续流程的执行并记录此检测信息;应用程序根据此检测信息进行判断启动流程是否正常执行;
步骤S8、目标镜像跳转入口地址检测;
目标镜像是存放在外部存储器中的数据;它包含了多核系统的应用程序与其启动信息,在其启动信息中存放了应用程序的入口地址;由于这个入口地址未必合法,所以需要进行地址检测;
步骤S9、为其余核心准备启动代码补丁patch;
对于主核心而言,它需要执行的配置可以从efuse和镜像中获得,并直接进行处理,但其它核心一直处于复位状态,所以需要准备合适的配置代码patch,令其它核心在跳转到镜像之前先执行此段patch代码进行其它核心的环境配置;patch代码可以是固定的一段寄存器配置逻辑,也可以根据外部存储器内启动信息进行合适的调整,但patch的最后一条指令需要是各个核心的入口地址的跳转指令,以此保证其它核心执行完patch之后会跳转到各自的目标入口地址继续执行代码;
步骤S10、主核控制其余核心依次执行启动代码补丁patch并启动;
在完成了patch代码的准备后,主核需要依次设置其它核心的跳转地址为各自patch所在地址,并释放其复位信号,令其可以开始执行启动代码补丁patch;其它核心执行完各自的启动代码补丁patch后跳转到各自的目标入口地址继续执行;
步骤S11、主核跳转至镜像指定的启动地址开始运行;
在释放其它核心复位信号后,主核心需要跳转到自身的目标入口地址执行;
步骤S12、多核处理器启动流程结束。
本发明进一步揭示一种存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现本发明方法的如下步骤(如图2所示):
步骤S1、主核心首先启动,其余核心默认保持在复位状态;
在本发明中,主核心负责大部分启动工作;主核心需要作为默认启动核,其余核心默认保持在复位状态,即多核处理器上电后仅主核从只读存储器ROM中获取指令并执行,其余核心需要由主核在合适的时机进行复位释放操作后才能从预设地址获取指令并执行;
步骤S2、判断是否为低功耗快速启动模式,若否则执行步骤S4,若是则执行步骤S3;
多核处理器除了第一次上电以外,还有可能是在应用程序中进入了低功耗睡眠模式,此时被唤醒后也会重新执行此启动流程,因此需要进行是否为快速启动模式的判断;当发现本次启动是第一次上电启动,则执行步骤S4;当发现本次启动是某次低功耗睡眠模式醒来后的快速启动模式,由于进入低功耗睡眠模式前很多环境已经处于就绪状态,因此可以避免掉正常流程大部分配置流程,直接跳转到目标地址执行代码;
步骤S3、判断快速启动合规检测是否合格,若否则执行步骤S4,若是则执行步骤S11;
低功耗快速启动模式由应用程序在指定地址设定了特定的标志位和跳转地址来实现,这个标志位和跳转地址会受到合法性约束,合规检测会判断标志位和跳转地址是否合法,仅在合法的情况下才会跳过大部分流程直接跳转到目标地址执行;若不合法,则转而执行正常的启动流程;
步骤S4、读取一次性可编程存储器efuse中存储的启动信息;
一次性可编程存储器eFuse是一种一次性编程器件,一旦被编程就不能被再次擦除或修改;芯片制造商在生产过程中将启动流程的控制信息烧录到一次性可编程存储器efuse中,保护其不被非法复制或篡改;这里读取的就是多核处理器中存放的一次性可编程存储器efuse的值,供后续流程使用;
步骤S5、根据从一次性可编程存储器efuse读取到的启动信息启动流程;
步骤S4中从一次性可编程存储器efuse获取到的启动信息中有一部分启动信息作为多核处理器启动流程控制,后续的启动流程会根据对应启动信息进行设定调整;
步骤S6、初始化计时器模块MTimer;
计时器模块MTimer是一个在RISC-V处理器中常见的计时器模块,它可以提供精确的实时计时功能,用于测量和记录程序执行的时间;通过读取计时器模块MTimer的计数器值,可以确定经过的时间周期,从而实现对时间的准确测量;这里初始化计时器模块MTimer就是为了给应用程序提供一个启动时间的参考,让应用程序对启动时间进行监测;
步骤S7、进行代码追踪验证CodePath;
为了实现启动流程的监测功能,需要开启代码追踪验证CodePath功能;这个功能会在启动流程的每一个小阶段进行一些指令执行流程的检测,再根据检测结果决定后续流程的执行并记录此检测信息;应用程序根据此检测信息进行判断启动流程是否正常执行;
步骤S8、目标镜像跳转入口地址检测;
目标镜像是存放在外部存储器中的数据;它包含了多核系统的应用程序与其启动信息,在其启动信息中存放了应用程序的入口地址;由于这个入口地址未必合法,所以需要进行地址检测;
步骤S9、为其余核心准备启动代码补丁patch;
对于主核心而言,它需要执行的配置可以从efuse和镜像中获得,并直接进行处理,但其它核心一直处于复位状态,所以需要准备合适的配置代码patch,令其它核心在跳转到镜像之前先执行此段patch代码进行其它核心的环境配置;patch代码可以是固定的一段寄存器配置逻辑,也可以根据外部存储器内启动信息进行合适的调整,但patch的最后一条指令需要是各个核心的入口地址的跳转指令,以此保证其它核心执行完patch之后会跳转到各自的目标入口地址继续执行代码;
步骤S10、主核控制其余核心依次执行启动代码补丁patch并启动;
在完成了patch代码的准备后,主核需要依次设置其它核心的跳转地址为各自patch所在地址,并释放其复位信号,令其可以开始执行启动代码补丁patch;其它核心执行完各自的启动代码补丁patch后跳转到各自的目标入口地址继续执行;
步骤S11、主核跳转至镜像指定的启动地址开始运行;
在释放其它核心复位信号后,主核心需要跳转到自身的目标入口地址执行;
步骤S12、多核处理器启动流程结束。
综上所述,本发明提出的多核处理器启动控制系统、方法、电子设备及存储介质,可以实现多核心处理器的低功耗快速启动、正常启动、启动计时、启动流程追踪、多核启动环境初始化的功能。可有效监测多核系统的启动过程,为应用程序提供启动过程计时信息,为多核系统提供初始环境配置;使得启动过程对多核系统应用程序更透明,为用户的应用程序提供了更好的环境信息及配置;提高应用程序的灵活性、准确性,使应用程序开发的更顺利,降低客户的应用程序开发成本。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施;例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中;例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现;例如,作为与处理器配合从而执行各个步骤或功能的电路。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。实施例中所涉及的效果或优点可因多种因素干扰而可能不能在实施例中体现,对于效果或优点的描述不用于对实施例进行限制。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

Claims (10)

1.一种多核处理器启动控制系统,其特征在于,所述启动控制系统包括:主核心、若干第一核心、若干第二核心、存储模块、启动控制模块及启动流程追踪模块;
所述存储模块包括只读存储器ROM、一次性可编程存储器efuse、第一随机存取存储器、第二随机存取存储器及外部存储器;
所述只读存储器ROM用以存储主核心的启动代码;
所述一次性可编程存储器efuse用以存储设定核心的启动信息;
所述外部存储器用以存放镜像数据,镜像数据包括主核心、各第一核心、各第二核心的启动信息及应用程序;
所述第一随机存取存储器用以存放主核心根据只读存储器ROM存储的启动代码、一次性可编程存储器efuse及外部存储器存储的启动信息生成各第一核心、各第二核心的启动代码补丁patch,供各第一核心、各第二核心取值并执行;
所述第二随机存取存储器用以存放主核心根据只读存储器ROM存储的启动代码、一次性可编程存储器efuse及外部存储器存储的启动信息生成各第二核心的启动代码补丁patch,供各第二核心取值并执行;
所述主核心、各第一核心、各第二核心分别连接第一随机存取存储器,各第二核心分别连接第二随机存取存储器;所述主核心、各第一核心、各第二核心分别连接外部存储器;所述主核心连接所述只读存储器ROM及一次性可编程存储器efuse;
所述启动控制模块用以控制主核心在多核处理器上电启动后从只读存储器ROM中读取启动代码、从一次性可编程存储器efuse及外部存储器读取启动信息,并根据获取的启动代码及启动信息执行;其余核心保持复位状态;在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心从预设地址获取指令并执行;
所述启动流程追踪模块用以在启动流程的各阶段进行指令执行流程检测,再根据检测结果决定后续流程的执行并记录该检测结果;根据该检测结果判断启动流程是否正常执行。
2.根据权利要求1所述的多核处理器启动控制系统,其特征在于:
在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心在跳转到镜像前先执行对应的启动代码补丁patch,进行对应核心的环境配置;
所述启动代码补丁patch为固定的一段寄存器配置逻辑,或者能根据外部存储器内启动信息进行相应的调整;
所述启动代码补丁patch的最后一条指令为各个核心的入口地址的跳转指令,以此保证对应核心执行完启动代码补丁patch后跳转到各自的目标入口地址继续执行代码;
在完成启动代码补丁patch的准备后,主核心依次设置其它核心的跳转地址为各自启动代码补丁patch所在地址,并释放对应核心的复位信号,令对应核心能开始执行启动代码补丁patch;对应核心执行完各自的启动代码补丁patch代码后会跳转到各自的目标入口地址继续执行。
3.根据权利要求1所述的多核处理器启动控制系统,其特征在于:
所述启动控制系统进一步包括入口地址检测模块,所述入口地址检测模块用以检测应用程序启动信息中的应用程序入口地址是否合法;
若判断入口地址合法,则跳转到此入口地址开始执行此应用程序的代码;
若判断入口地址非法,则不跳转到此入口地址执行,而是执行启动失败流程,不再尝试启动此镜像,等待外部硬件复位。
4.根据权利要求1所述的多核处理器启动控制系统,其特征在于:
所述启动信息包括应用程序的入口地址、环境配置、应用程序的校验。
5.一种权利要求1至4任一所述多核处理器启动控制系统的启动控制方法,其特征在于,所述启动控制方法包括:
启动控制模块控制主核心在多核处理器上电启动后从只读存储器ROM中读取指令并执行,其余核心保持复位状态;
在主核心释放对应核心的复位操作,所述启动控制模块控制对应核心从预设地址获取指令并执行;
启动流程追踪模块在启动流程的各阶段进行指令执行流程检测,再根据检测结果决定后续流程的执行并记录此检测信息;根据此检测信息进行判断启动流程是否正常执行。
6.根据权利要求5所述的启动控制方法,其特征在于:
在主核心释放对应核心的复位操作后,所述启动控制模块控制对应核心在跳转到镜像前先执行对应的启动代码补丁patch,进行对应核心的环境配置。
7.根据权利要求6所述的启动控制方法,其特征在于:
所述启动代码补丁patch为固定的一段寄存器配置逻辑,或者能根据外部存储器内启动信息进行相应的调整;所述启动代码补丁patch的最后一条指令为各个核心的入口地址的跳转指令,以此保证对应核心执行完启动代码补丁patch后跳转到各自的目标入口地址继续执行代码;
在完成启动代码补丁patch的准备后,主核心依次设置其它核心的跳转地址为各自启动代码补丁patch所在地址,并释放对应核心的复位信号,令对应核心能开始执行启动代码补丁patch;对应核心执行完各自的启动代码补丁patch代码后会跳转到各自的目标入口地址继续执行。
8.一种权利要求1至4任一所述多核处理器启动控制系统的启动控制方法,其特征在于,所述启动控制方法包括:
步骤S1、主核心首先启动,其余核心默认保持在复位状态;
在本发明中,主核心负责大部分启动工作;主核心需要作为默认启动核,其余核心默认保持在复位状态,即多核处理器上电后仅主核从只读存储器ROM中获取指令并执行,其余核心需要由主核在合适的时机进行复位释放操作后才能从预设地址获取指令并执行;
步骤S2、判断是否为低功耗快速启动模式,若否则执行步骤S4,若是则执行步骤S3;
当发现本次启动是第一次上电启动,则执行步骤S4;当发现本次启动是某次低功耗睡眠模式醒来后的快速启动模式,直接跳转到目标地址执行代码;
步骤S3、判断快速启动合规检测是否合格,若否,则执行步骤S4,若是,则执行步骤S11;
低功耗快速启动模式由应用程序在指定地址设定了特定的标志位和跳转地址来实现,这个标志位和跳转地址会受到合法性约束,合规检测会判断标志位和跳转地址是否合法,仅在合法的情况下才会跳过大部分流程直接跳转到目标地址执行;若不合法,则转而执行正常的启动流程;
步骤S4、读取一次性可编程存储器efuse中存储的启动信息;
一次性可编程存储器eFuse是一种一次性编程器件,一旦被编程就不能被再次擦除或修改;芯片制造商在生产过程中将启动流程的控制信息烧录到一次性可编程存储器efuse中,保护其不被非法复制或篡改;这里读取的就是多核处理器中存放的一次性可编程存储器efuse的值,供后续流程使用;
步骤S5、根据从一次性可编程存储器efuse读取到的启动信息启动流程;
步骤S4中从一次性可编程存储器efuse获取到的启动信息中有一部分启动信息作为多核处理器启动流程控制,后续的启动流程会根据对应启动信息进行设定调整;
步骤S6、初始化计时器模块MTimer;
计时器模块MTimer提供精确的实时计时功能,用于测量和记录程序执行的时间;通过读取计时器模块MTimer的计数器值,可以确定经过的时间周期,从而实现对时间的准确测量;这里初始化计时器模块MTimer就是为了给应用程序提供一个启动时间的参考,让应用程序对启动时间进行监测;
步骤S7、进行代码追踪验证CodePath;
为了实现启动流程的监测功能,需要开启代码追踪验证CodePath功能;这个功能会在启动流程的每一个小阶段进行一些指令执行流程的检测,再根据检测结果决定后续流程的执行并记录此检测信息;应用程序根据此检测信息进行判断启动流程是否正常执行;
步骤S8、目标镜像跳转入口地址检测;
目标镜像是存放在外部存储器中的数据;它包含了多核系统的应用程序与其启动信息,在其启动信息中存放了应用程序的入口地址;由于这个入口地址未必合法,所以需要进行地址检测;
步骤S9、为其余核心准备启动代码补丁patch;
对于主核心而言,它需要执行的配置可以从efuse和镜像中获得,并直接进行处理,但其它核心一直处于复位状态,所以需要准备合适的配置代码patch,令其它核心在跳转到镜像之前先执行此段patch代码进行其它核心的环境配置;patch代码可以是固定的一段寄存器配置逻辑,也可以根据外部存储器内启动信息进行合适的调整,但patch的最后一条指令需要是各个核心的入口地址的跳转指令,以此保证其它核心执行完patch之后会跳转到各自的目标入口地址继续执行代码;
步骤S10、主核控制其余核心依次执行启动代码补丁patch并启动;
在完成了patch代码的准备后,主核需要依次设置其它核心的跳转地址为各自patch所在地址,并释放其复位信号,令其可以开始执行启动代码补丁patch;其它核心执行完各自的启动代码补丁patch后跳转到各自的目标入口地址继续执行;
步骤S11、主核跳转至镜像指定的启动地址开始运行;
在释放其它核心复位信号后,主核心需要跳转到自身的目标入口地址执行;
步骤S12、多核处理器启动流程结束。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求5至8任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求5至8任一项所述方法的步骤。
CN202311136815.8A 2023-09-05 2023-09-05 多核处理器启动控制系统、方法、电子设备及存储介质 Pending CN117170754A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311136815.8A CN117170754A (zh) 2023-09-05 2023-09-05 多核处理器启动控制系统、方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311136815.8A CN117170754A (zh) 2023-09-05 2023-09-05 多核处理器启动控制系统、方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117170754A true CN117170754A (zh) 2023-12-05

Family

ID=88942573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311136815.8A Pending CN117170754A (zh) 2023-09-05 2023-09-05 多核处理器启动控制系统、方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117170754A (zh)

Similar Documents

Publication Publication Date Title
KR101407835B1 (ko) 플랫폼 독립적인 메모리 로직의 제공
US9122501B1 (en) System and method for managing multiple bios default configurations
US6212631B1 (en) Method and apparatus for automatic L2 cache ECC configuration in a computer system
US6446203B1 (en) Method and system for selecting from multiple boot code images to be loaded in a data processing system
KR100990188B1 (ko) Mmc/sd 기기로부터 호스트 기기를 부팅시키는 방법, mmc/sd 기기로부터 부팅 가능한 호스트 기기 및 호스트 기기가 부팅되는 mmc/sd 기기 방법
EP3274788B1 (en) Technologies for improved hybrid sleep power management
JP3292864B2 (ja) データ処理装置
US8595552B2 (en) Reset method and monitoring apparatus
JPH08137763A (ja) フラッシュメモリ制御装置
JP2006276967A (ja) 半導体装置
EP1634168A1 (en) Booting from non-volatile memory
US20090150662A1 (en) Firmware modification in a computer system environment supporting operational state changes
JP2004334486A (ja) ブートコードを用いた起動システム、及び起動方法
TW201248392A (en) System and method for recovering data of a NVRAM
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
US20060206764A1 (en) Memory reliability detection system and method
CN112667442B (zh) 基于非易失内存器件启动系统的控制方法、装置及设备
US9928079B2 (en) Conditional processor auto boot with no boot loader when coupled with a nonvolatile memory
CN117170754A (zh) 多核处理器启动控制系统、方法、电子设备及存储介质
CN109189457B (zh) 智能惯导传感系统的固件升级系统及方法
KR100223844B1 (ko) 옵션 자동 설정 회로
US20030061529A1 (en) Computer system
CN111045739B (zh) 基于启动程序的固件引导方法、介质及设备
EP3699913B1 (en) Delayed reset for code execution from memory device
US11170109B2 (en) Boot ROM gating circuit

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