CN112732481A - 一种处理器的异常修复方法及装置 - Google Patents

一种处理器的异常修复方法及装置 Download PDF

Info

Publication number
CN112732481A
CN112732481A CN202011615563.3A CN202011615563A CN112732481A CN 112732481 A CN112732481 A CN 112732481A CN 202011615563 A CN202011615563 A CN 202011615563A CN 112732481 A CN112732481 A CN 112732481A
Authority
CN
China
Prior art keywords
exception
processor
data
alignment
identifier
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
CN202011615563.3A
Other languages
English (en)
Other versions
CN112732481B (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.)
Beijing Acoinfo Technology Co ltd
Southern Power Grid Digital Grid Research Institute Co Ltd
Research Institute of Southern Power Grid Co Ltd
Original Assignee
Beijing Acoinfo Technology Co ltd
Southern Power Grid Digital Grid Research Institute Co Ltd
Research Institute of Southern Power Grid 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 Beijing Acoinfo Technology Co ltd, Southern Power Grid Digital Grid Research Institute Co Ltd, Research Institute of Southern Power Grid Co Ltd filed Critical Beijing Acoinfo Technology Co ltd
Priority to CN202011615563.3A priority Critical patent/CN112732481B/zh
Publication of CN112732481A publication Critical patent/CN112732481A/zh
Application granted granted Critical
Publication of CN112732481B publication Critical patent/CN112732481B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

本发明提供了一种处理器的异常修复方法及装置,该方法包括:检测步骤S101,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;修复步骤S102:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。本发明的方法可以快速修复非对齐访问异常,通过抽象出的操作系统ARCH层对异常进行修复,使上层应用软件感知不到此类异常,继续正确执行相关程序代码,解决了上层应用出现错误时继续执行导致错误执行结果的问题,提高了用户体验,本发明中,不仅确定出处理器异常,还确定产生该异常的应用,且在修复过程中,在修复时仅需要将产生的异常的指令重新执行即可,修复速度快。

Description

一种处理器的异常修复方法及装置
技术领域
本发明涉及处理器修复技术领域,特别是一种处理器的异常修复方法及装置。
背景技术
现有软件针对c-sky架构处理器的非对齐访问异常处理比较简单,触发异常后会抛异常,直接造成相关软件无法直接运行的情况,需要运行在c-sky架构处理器上的应用软件在编码过程中注意非对齐指令的使用,进行人为控制,影响了软件的运行。
可见现有技术中,针对在c-sky架构处理器上非对齐访问异常的处理方法主要有以下缺陷和不足:
①不够智能,人为避免,目前,现有方法仅仅做到CPU异常的通知功能,没有真正规避硬件异常,均由上层应用用户自身编程控制,非常繁琐。
②不能通用,不利于多应用运行,这类处理器往往面对大量的用户开发各种应用软件,各软件运行时触发异常将导致原有软件停止运行,不利于多应用运行。
③影响上层应用正确运行,这类异常并非致命性异常,当上层应用触发非对齐访问异常时容易忽略,此时应用执行状态,通用寄存器状态容易不正常,导致上层应用运行得到错误的执行结果。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种处理器的异常修复方法,该方法包括:
检测步骤,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;
修复步骤:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。
更进一步地,所述异常为非对齐访问异常。
更进一步地,所述处理器为c-sky架构的处理器。
更进一步地,在所述回调函数中对所述异常进行恢复的操作包括:基于所述异常标识获取所述异常的初始地址,将所述初始地址到下一个对齐地址ADD之间的第一数据读出并写入寄存器中,读取ADD+1对齐地址处的第二数据,将所述第二数据与所述第一数据在所述寄存器中进行组合得到组合数据,通过PC指针反汇出导致处理器异常的指令,将所述指令基于所述组合数据重新执行。
更进一步地,所述检测步骤的操作为:检测所述处理器上的运行状态,当检测到所述处理器发生非对齐异常时,记录所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用,设置异常标识,并将所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用与所述异常标识相关联。
本发明还提出了一种处理器的异常修复装置,该装置包括:
检测单元,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;
修复单元:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。
更进一步地,所述异常为非对齐访问异常。
更进一步地,所述处理器为c-sky架构的处理器。
更进一步地,在所述回调函数中对所述异常进行恢复的操作包括:基于所述异常标识获取所述异常的初始地址,将所述初始地址到下一个对齐地址ADD之间的第一数据读出并写入寄存器中,读取ADD+1对齐地址处的第二数据,将所述第二数据与所述第一数据在所述寄存器中进行组合得到组合数据,通过PC指针反汇出导致处理器异常的指令,将所述指令基于所述组合数据重新执行。
更进一步地,所述检测单元的操作为:检测所述处理器上的运行状态,当检测到所述处理器发生非对齐异常时,记录所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用,设置异常标识,并将所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用与所述异常标识相关联。
本发明的一种处理器的异常修复方法及装置,该方法包括:检测步骤S101,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;修复步骤S102:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。本发明的方法可以快速修复非对齐访问异常,通过抽象出的操作系统ARCH层对异常进行修复,使上层应用软件感知不到此类异常,继续正确执行相关程序代码,解决了上层应用出现错误时继续执行导致错误执行结果的问题,提高了用户体验,本发明中,将异常的起始地址到下一个对齐地址ADD处的有效数据读出,存入相关寄存器中,再将ADD+1的对齐地址处的有效数据读出后进行组合,通过让PC指针反汇出导致处理器异常的指令,重新执行此次非对齐访问的操作的指令即可得到正确的地址数据并使软件正确运行,本发明中,不仅确定出处理器异常,还确定产生该异常的进程及相应的应用程序(可简称应用、APP等),使得在多应用运行时,确定产生该异常的应用,且在修复过程中,在修复时仅需要将产生的异常的指令重新执行即可,修复速度快,从而软件不必停止运行,提高了多应用同时运行的性能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种处理器的异常修复方法的流程图。
图2是根据本发明的实施例的一种处理器的异常修复装置的示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种处理器的异常修复方法,本发明的方法包括以下步骤。
检测步骤S101,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;所述异常为非对齐访问异常,所述处理器为c-sky架构的处理器。
修复步骤S102:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。
本发明的方法可以快速修复非对齐访问异常,通过抽象出的操作系统ARCH层对异常进行修复,使上层应用软件感知不到此类异常,继续正确执行相关程序代码,解决了上层应用出现错误时继续执行导致错误执行结果的问题,提高了用户体验,这是本发明的重要发明点之一。
在一个实施例中,在所述回调函数中对所述异常进行恢复的操作包括:基于所述异常标识获取所述异常的初始地址,将所述初始地址到下一个对齐地址ADD之间的第一数据读出并写入寄存器中,读取ADD+1对齐地址处的第二数据,将所述第二数据与所述第一数据在所述寄存器中进行组合得到组合数据,通过PC指针反汇出导致处理器异常的指令,将所述指令基于所述组合数据重新执行。
回调函数在系统中有很多,比如,异常类型为除0异常,则调用回调函数archDivideZeroExceptHandle,未对齐访问异常时,调用archUnalignedExceptHandle函数等等。
本发明中,将异常的起始地址到下一个对齐地址ADD处的有效数据读出,存入相关寄存器中,再将ADD+1的对齐地址处的有效数据读出后进行组合,通过让PC指针反汇出导致处理器异常的指令,重新执行此次非对齐访问的操作的指令即可得到正确的地址数据并使软件正确运行,这是本发明的重要发明点之一。
在一个实施例中,所述检测步骤S101的操作为:检测所述处理器上的运行状态,当检测到所述处理器发生非对齐异常时,记录所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用,设置异常标识,并将所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用与所述异常标识相关联。
在本发明中,每一个异常对应一个异常入口号,当硬件产生异常时记录对应的异常号,并将所述异常号写入异常标识中,通过所述异常标识即可跳转到相对应的回调函数中,所有的异常回调函数会输入当前向量号以及任务上下文,并通过堆栈回溯将任务调用链关系保存,所述当前向量号至少包括所述非对齐异常发生的初始地址,所述任务上下文至少包括导致该异常的进程以及所述进程所隶属的应用,这样就可以快速的恢复处理器的异常,这是本发明的一个重要发明点。
本发明中,不仅确定出处理器异常,还确定产生该异常的进程及相应的应用程序(可简称应用、APP等),使得在多应用运行时,确定产生该异常的应用,且在修复过程中,在修复时仅需要将产生的异常的指令重新执行即可,修复速度快,从而软件不必停止运行,提高了多应用同时运行的性能,这是本发明的一个重要发明点。
本发明还提出了一种处理器的异常修复装置,本发明的装置包括以下单元。
检测单元201,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;所述异常为非对齐访问异常,所述处理器为c-sky架构的处理器。
修复单元202:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。
本发明的方法可以快速修复非对齐访问异常,通过抽象出的操作系统ARCH层对异常进行修复,使上层应用软件感知不到此类异常,继续正确执行相关程序代码,解决了上层应用出现错误时继续执行导致错误执行结果的问题,提高了用户体验,这是本发明的重要发明点之一。
在一个实施例中,在所述回调函数中对所述异常进行恢复的操作包括:基于所述异常标识获取所述异常的初始地址,将所述初始地址到下一个对齐地址ADD之间的第一数据读出并写入寄存器中,读取ADD+1对齐地址处的第二数据,将所述第二数据与所述第一数据在所述寄存器中进行组合得到组合数据,通过PC指针反汇出导致处理器异常的指令,将所述指令基于所述组合数据重新执行。
回调函数在系统中有很多,比如,异常类型为除0异常,则调用回调函数archDivideZeroExceptHandle,未对齐访问异常时,调用archUnalignedExceptHandle函数等等。
本发明中,将异常的起始地址到下一个对齐地址ADD处的有效数据读出,存入相关寄存器中,再将ADD+1的对齐地址处的有效数据读出后进行组合,通过让PC指针反汇出导致处理器异常的指令,重新执行此次非对齐访问的操作的指令即可得到正确的地址数据并使软件正确运行,这是本发明的重要发明点之一。
在一个实施例中,所述检测单元201的操作为:检测所述处理器上的运行状态,当检测到所述处理器发生非对齐异常时,记录所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用,设置异常标识,并将所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用与所述异常标识相关联。
在本发明中,每一个异常对应一个异常入口号,当硬件产生异常时记录对应的异常号,并将所述异常号写入异常标识中,通过所述异常标识即可跳转到相对应的回调函数中,所有的异常回调函数会输入当前向量号以及任务上下文,并通过堆栈回溯将任务调用链关系保存,所述当前向量号至少包括所述非对齐异常发生的初始地址,所述任务上下文至少包括导致该异常的进程以及所述进程所隶属的应用,这样就可以快速的恢复处理器的异常,这是本发明的一个重要发明点。
本发明中,不仅确定出处理器异常,还确定产生该异常的进程及相应的应用程序(可简称应用、APP等),使得在多应用运行时,确定产生该异常的应用,且在修复过程中,在修复时仅需要将产生的异常的指令重新执行即可,修复速度快,从而软件不必停止运行,提高了多应用同时运行的性能,这是本发明的一个重要发明点。
本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行上述之任一的方法。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种处理器的异常修复方法,其特征在于:该方法包括:
检测步骤,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;
修复步骤:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。
2.根据权利要求1所述的方法,其特征在于,所述异常为非对齐访问异常。
3.根据权利要求2所述的方法,其特征在于,所述处理器为c-sky架构的处理器。
4.根据权利要求3所述的方法,其特征在于,在所述回调函数中对所述异常进行恢复的操作包括:基于所述异常标识获取所述异常的初始地址,将所述初始地址到下一个对齐地址ADD之间的第一数据读出并写入寄存器中,读取ADD+1对齐地址处的第二数据,将所述第二数据与所述第一数据在所述寄存器中进行组合得到组合数据,通过PC指针反汇出导致处理器异常的指令,将所述指令基于所述组合数据重新执行。
5.根据权利要求4所述的方法,所述检测步骤的操作为:检测所述处理器上的运行状态,当检测到所述处理器发生非对齐异常时,记录所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用,设置异常标识,并将所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用与所述异常标识相关联。
6.一种处理器的异常修复装置,其特征在于:该装置包括:
检测单元,对处理器的运行状态进行检测,如果检测到异常则设置异常标识;
修复单元:当操作系统SylixOS的ARCH层检测到所述异常标识时,所述ARCH层触发回调函数,在所述回调函数中对所述异常进行恢复。
7.根据权利要求6所述的装置,其特征在于,所述异常为非对齐访问异常。
8.根据权利要求7所述的装置,其特征在于,所述处理器为c-sky架构的处理器。
9.根据权利要求8所述的装置,其特征在于,在所述回调函数中对所述异常进行恢复的操作包括:基于所述异常标识获取所述异常的初始地址,将所述初始地址到下一个对齐地址ADD之间的第一数据读出并写入寄存器中,读取ADD+1对齐地址处的第二数据,将所述第二数据与所述第一数据在所述寄存器中进行组合得到组合数据,通过PC指针反汇出导致处理器异常的指令,将所述指令基于所述组合数据重新执行。
10.根据权利要求9所述的装置,所述检测单元的操作为:检测所述处理器上的运行状态,当检测到所述处理器发生非对齐异常时,记录所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用,设置异常标识,并将所述非对齐异常发生的初始地址、导致该异常的进程以及所述进程所隶属的应用与所述异常标识相关联。
CN202011615563.3A 2020-12-31 2020-12-31 一种处理器的异常修复方法及装置 Active CN112732481B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011615563.3A CN112732481B (zh) 2020-12-31 2020-12-31 一种处理器的异常修复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011615563.3A CN112732481B (zh) 2020-12-31 2020-12-31 一种处理器的异常修复方法及装置

Publications (2)

Publication Number Publication Date
CN112732481A true CN112732481A (zh) 2021-04-30
CN112732481B CN112732481B (zh) 2023-10-10

Family

ID=75611856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011615563.3A Active CN112732481B (zh) 2020-12-31 2020-12-31 一种处理器的异常修复方法及装置

Country Status (1)

Country Link
CN (1) CN112732481B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040202030A1 (en) * 2003-04-14 2004-10-14 Adtran, Inc. Mechanism for on-the-fly handling of unaligned memory accesses
CN101299192A (zh) * 2008-06-18 2008-11-05 中国科学院计算技术研究所 一种非对齐访存的处理方法
CN101539883A (zh) * 2009-05-05 2009-09-23 北京和利时系统工程有限公司 嵌入式系统的错误追踪方法和装置
US20100153776A1 (en) * 2008-12-12 2010-06-17 Sun Microsystems, Inc. Using safepoints to provide precise exception semantics for a virtual machine
US8458404B1 (en) * 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance
CN107908495A (zh) * 2017-11-15 2018-04-13 南京南瑞继保电气有限公司 一种嵌入式系统异常记录展示方法
CN110308933A (zh) * 2019-04-25 2019-10-08 龙芯中科(合肥)技术有限公司 访问指令确定方法、装置及存储介质
CN110489258A (zh) * 2019-07-26 2019-11-22 苏州浪潮智能科技有限公司 一种基于xtensa处理器的栈回溯方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040202030A1 (en) * 2003-04-14 2004-10-14 Adtran, Inc. Mechanism for on-the-fly handling of unaligned memory accesses
CN101299192A (zh) * 2008-06-18 2008-11-05 中国科学院计算技术研究所 一种非对齐访存的处理方法
US8458404B1 (en) * 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance
US20100153776A1 (en) * 2008-12-12 2010-06-17 Sun Microsystems, Inc. Using safepoints to provide precise exception semantics for a virtual machine
CN101539883A (zh) * 2009-05-05 2009-09-23 北京和利时系统工程有限公司 嵌入式系统的错误追踪方法和装置
CN107908495A (zh) * 2017-11-15 2018-04-13 南京南瑞继保电气有限公司 一种嵌入式系统异常记录展示方法
CN110308933A (zh) * 2019-04-25 2019-10-08 龙芯中科(合肥)技术有限公司 访问指令确定方法、装置及存储介质
CN110489258A (zh) * 2019-07-26 2019-11-22 苏州浪潮智能科技有限公司 一种基于xtensa处理器的栈回溯方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
祝晓林 等: "基于 SPARC 的地址非对齐异常处理研究", 《计算机技术与发展》, vol. 25, no. 4, pages 18 - 21 *

Also Published As

Publication number Publication date
CN112732481B (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
CN103186461B (zh) 一种现场数据的保存方法和恢复方法以及相关装置
US9740562B2 (en) Method for checkpointing and restoring program state
US20190378139A1 (en) Tracking and recovering transactions performed across multiple applications
US20120331449A1 (en) Device, method and computer program product for evaluating a debugger script
JP4703718B2 (ja) 選択的サブルーチンリターン構造
CN101027647B (zh) 在计算机系统上执行计算机程序的方法
KR970066876A (ko) 계산기 시스템 및 그 소프트웨어 고장 회복 방법
US20070245322A1 (en) System and method for interactive and assisted program development
US8261251B2 (en) Modification of array access checking in AIX
JP5315748B2 (ja) マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法
WO2021101894A1 (en) Auto-recovery for software systems
CN115935631A (zh) 用于车机设备的测试系统和方法、存储介质
CN100454269C (zh) 基本输入输出系统自动修复方法及系统
CN114020432A (zh) 任务异常处理方法、装置及任务异常处理系统
US20030046524A1 (en) Method for dynamically designating initialization modules as recovery code
US7613950B2 (en) Detecting floating point hardware failures
CN112732481B (zh) 一种处理器的异常修复方法及装置
EP4089538A1 (en) System and method for improved control flow monitoring of processors
US20210011717A1 (en) Verified Stack Trace Generation And Accelerated Stack-Based Analysis With Shadow Stacks
US20070255978A1 (en) Retroactive verbose logging
JP2004252525A (ja) エミュレータおよびプログラム
US7353343B2 (en) Memory management system for preventing program execution when CPU fetches execution code from unoccupied region of memory
WO2024101091A1 (ja) ソフトウェア生成支援システム、ソフトウェア生成支援方法およびコンピュータプログラム
CN115470151B (zh) 一种应用运行分析方法、计算设备及存储介质
US20220197776A1 (en) Information processing apparatus, information processing method, and storage medium

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