CN112395005B - 浮点simd上下文切换的性能优化方法 - Google Patents

浮点simd上下文切换的性能优化方法 Download PDF

Info

Publication number
CN112395005B
CN112395005B CN201910764140.9A CN201910764140A CN112395005B CN 112395005 B CN112395005 B CN 112395005B CN 201910764140 A CN201910764140 A CN 201910764140A CN 112395005 B CN112395005 B CN 112395005B
Authority
CN
China
Prior art keywords
floating point
cpu
point simd
state
flag
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
CN201910764140.9A
Other languages
English (en)
Other versions
CN112395005A (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910764140.9A priority Critical patent/CN112395005B/zh
Publication of CN112395005A publication Critical patent/CN112395005A/zh
Application granted granted Critical
Publication of CN112395005B publication Critical patent/CN112395005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种浮点SIMD上下文切换的性能优化方法,包括以下步骤:在进程描述符结构中增加一CPU标识字段,创建一个全局的数组;进程切换时将被选中进程的浮点SIMD状态最近被装载的CPU号与所述目标CPU号进行匹配,同时将目标CPU最近装载浮点SIMD寄存器的所述进程号与被选中进程号进行匹配,若二者均相等,目标CPU不对进程的浮点SIMD状态进行恢复,此时清除进程的进程标志位FOREIGN_FPSTATE标志,若否,目标CPU对该进程的浮点SIMD状态进行恢复,此时设置进程的进程标志位FOREIGN_FPSTATE标志。本发明减小了内核进程切换开销,对内核改动较小,且适用其他系统寄存器的保留和恢复过程,如性能计数器等。

Description

浮点SIMD上下文切换的性能优化方法
技术领域
本发明属于处理器数据处理技术领域,尤其涉及一种浮点SIMD上下文切换的性能优化方法。
背景技术
典型的众核处理器为了提高数据并行处理性能,通常都对基本指令系统进行向量扩展,设计专用的SIMD向量指令并引入特殊的向量寄存器,向量寄存器通常与浮点寄存器共用,形成具有向量特征的浮点SIMD处理技术。进程是所有现代操作系统内核中的基本概念,充当系统资源(CPU/内存等)分配的基本实体,每个进程都有描述进程执行活动全过程的进程上下文信息,包含计算机系统中与执行该进程有关的各种寄存器,如通用寄存器、程序计数器和浮点SIMD寄存器等。
现有技术中,内核为每个进程分配一个进程描述符结构和一片用作系统空间堆栈的存储空间,每次实施进程切换的过程中,为了确保进程上下文信息的完整性,会将所有信息保存在进程描述符结构和内核栈中。申请人在对现有技术的研究过程中发现,每次进程切换必然伴随被切换进程浮点SIMD状态的保留和被选中运行进程浮点SIMD状态的恢复,在进程切换时将当前CPU上所有浮点SIMD寄存器内容保存在被切换进程的内核栈上,再从下一个被选中运行的进程内核栈中恢复该进程的浮点SIMD状态信息。
由于浮点SIMD寄存器数据位宽大且数量多,现代操作系统进程数目成千上万,进程切换频率极高,因此每次保存和恢复浮点SIMD寄存器消耗了大量宝贵的处理器时间,造成较大的系统性能开销。因此,如何解决现有技术中每次进程切换时系统性能开销过大的问题,成为本领域技术人员努力的方向。
发明内容
本发明目的在于提供一种浮点SIMD上下文切换的性能优化方法,以解决现有技术中每次进程切换时由于保留和恢复浮点SIMD寄存器导致系统性能开销过大的问题。
为达到上述目的,本发明采用的技术方案是:一种浮点SIMD上下文切换的性能优化方法,基于众核处理器架构,包括以下步骤:
S1、在进程描述符结构中增加一CPU标识字段,保存每个进程的浮点SIMD状态最近被装载的CPU号,每当该进程切换至另一个的CPU时,该CPU标识字段更新为目标CPU号;
S2、创建一个全局的数组,数组长度为当前系统中的CPU个数,数组中的每一项对应一个CPU号,保存每个CPU的浮点SIMD寄存器最近所装载的进程号,记录该CPU最近装载的特定进程的浮点SIMD寄存器状态地址;
S31、设置一进程标志位FOREIGN_FPSTATE,此进程标志位表示进程的最新浮点SIMD状态是否对应当前运行的CPU上,置位表示当前进程的最新浮点SIMD状态不是对应当前运行的CPU上,而是对应其他CPU上;
S32、进程切换时判断当前进程是否为内核进程,若是,不保存浮点SIMD寄存器信息;若否,继续执行下一步;
S33、继续检查当前进程的浮点标志位是否置位,若是,当该进程被切换出去时,不保存浮点SIMD寄存器信息;若否,保存当前进程的浮点SIMD寄存器信息;
S4、进程切换时将被选中进程的浮点SIMD状态最近被装载的CPU号与所述目标CPU号进行匹配,同时将目标CPU最近装载浮点SIMD寄存器的所述进程号与被选中进程号进行匹配,若二者均相等,目标CPU不对进程的浮点SIMD状态进行恢复,此时清除进程的进程标志位FOREIGN_FPSTATE标志,若否,目标CPU对该进程的浮点SIMD状态进行恢复,此时设置进程的进程标志位FOREIGN_FPSTATE标志;
S5、当且仅当进程返回用户态时,判断该进程的FOREIGN_FPSTATE标志是否被设置,若是,则将该进程的浮点SIMD状态从内存中恢复到CPU的浮点SIMD寄存器中,并将该进程的浮点SIMD状态最近被装载的CPU号指向运行的CPU,同时将目标CPU最近装载浮点SIMD寄存器的进程号指向当前运行的进程,最后清除该进程的FOREIGN_FPSTATE标志;若否,表明当前进程的最新浮点SIMD状态对应当前运行的CPU,不进行浮点SIMD状态的恢复过程;
S6、当进程执行系统调用结束,由内核态返回用户态时,清除该进程的进程标志位FOREIGN_FPSTATE标志。
上述技术方案中进一步改进的技术方案如下:
1. 上述方案中,所述进程具有描述进程执行活动全过程的进程上下文信息,包含计算机系统中与执行该进程有关的寄存器。
2. 上述方案中,所述寄存器为通用寄存器、程序计数器和浮点SIMD寄存器。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明浮点SIMD上下文切换的性能优化方法,其解决众核处理器架构下浮点SIMD寄存器数量众多,导致进程上下文切换延时太大影响系统性能的问题,仅当进程返回用户态时,根据该进程标志决定是否实施浮点SIMD寄存器的保留和恢复过程,减小了内核进程切换开销,对内核改动较小,且适用其他系统寄存器的保留和恢复过程,如性能计数器等。
附图说明
附图1为浮点SIMD上下文切换的性能优化方法流程图。
具体实施方式
在本专利的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性;此外,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利的具体含义。
下面结合实施例对本发明作进一步描述:
实施例:一种浮点SIMD上下文切换的性能优化方法,基于众核处理器架构,包括以下步骤:
S1、在进程描述符结构中增加一CPU标识字段,保存每个进程的浮点SIMD状态最近被装载的CPU号,每当该进程切换至另一个的CPU时,该CPU标识字段更新为目标CPU号;
S2、创建一个全局的数组,数组长度为当前系统中的CPU个数,数组中的每一项对应一个CPU号,保存每个CPU的浮点SIMD寄存器最近所装载的进程号,记录该CPU最近装载的特定进程的浮点SIMD寄存器状态地址;
S31、设置一进程标志位FOREIGN_FPSTATE,此进程标志位表示进程的最新浮点SIMD状态是否对应当前运行的CPU上,置位表示当前进程的最新浮点SIMD状态不是对应当前运行的CPU上,而是对应其他CPU上;
S32、进程切换时判断当前进程是否为内核进程,若是,不保存浮点SIMD寄存器信息;若否,继续执行下一步;
S33、继续检查当前进程的浮点标志位是否置位,若是,当该进程被切换出去时,不保存浮点SIMD寄存器信息;若否,保存当前进程的浮点SIMD寄存器信息;
S4、进程切换时将被选中进程的浮点SIMD状态最近被装载的CPU号与所述目标CPU号进行匹配,同时将目标CPU最近装载浮点SIMD寄存器的所述进程号与被选中进程号进行匹配,若二者均相等,目标CPU不对进程的浮点SIMD状态进行恢复,此时清除进程的进程标志位FOREIGN_FPSTATE标志,若否,目标CPU对该进程的浮点SIMD状态进行恢复,此时设置进程的进程标志位FOREIGN_FPSTATE标志;
S5、当且仅当进程返回用户态时,判断该进程的FOREIGN_FPSTATE标志是否被设置,若是,则将该进程的浮点SIMD状态从内存中恢复到CPU的浮点SIMD寄存器中,并将该进程的浮点SIMD状态最近被装载的CPU号指向运行的CPU,同时将目标CPU最近装载浮点SIMD寄存器的进程号指向当前运行的进程,最后清除该进程的FOREIGN_FPSTATE标志;若否,表明当前进程的最新浮点SIMD状态对应当前运行的CPU,不进行浮点SIMD状态的恢复过程;
S6、当进程执行系统调用结束,由内核态返回用户态时,清除该进程的进程标志位FOREIGN_FPSTATE标志。
上述进程具有描述进程执行活动全过程的进程上下文信息,包含计算机系统中与执行该进程有关的寄存器。
上述寄存器为通用寄存器、程序计数器和浮点SIMD寄存器。
实施例进一步解释如下:
保存每个进程的浮点SIMD状态最近被装载的CPU号,包括在进程描述符结构中增加一个特殊字段,每当该进程切换至某个特定的CPU时,该字段更新为目标CPU号。
保存每个CPU的浮点SIMD寄存器最近所装载的进程号,包括创建一个全局的数组,数组长度为当前系统中的CPU个数,数组中的每一项对应一个CPU号,记录该CPU最近装载的特定进程的浮点SIMD寄存器状态地址。
进程切换时检查当前进程是否为内核进程,若是,由于所有的内核进程都只运行在内核态,任何情况下决不会修改浮点SIMD寄存器,因此不需要保存浮点SIMD寄存器信息。若否,继续检查当前进程的浮点标志位是否置位。引入一种新的进程标志FOREIGN_FPSTATE,表示进程的最新浮点SIMD状态是否对应当前运行的CPU上。进程切换时检查当前进程的FOREIGN_FPSTATE是否置位,若是,表示当前进程的最新浮点SIMD状态不是对应当前运行的CPU上,而是对应其他CPU上,因此当该进程被切换出去时,不需要保存浮点SIMD寄存器信息。进程切换时,当且仅当被切换出去的进程是用户进程且其浮点标志位未置位,才需要保存当前进程的浮点SIMD寄存器信息。
进程切换时将被选中进程的浮点SIMD状态最近被装载的CPU号与目标CPU号进行匹配,同时将目标CPU最近装载浮点SIMD寄存器的进程号与被选中进程号进行匹配。若二者均相等,则说明目标CPU此时的浮点SIMD寄存器保存的正好是要切换来即将运行的进程,目标CPU不需要对进程的浮点SIMD状态进行恢复,此时清除进程的FOREIGN_FPSTATE标志。若否,说明目标CPU此时的浮点SIMD寄存器保存的是其他进程的浮点SIMD状态,目标CPU需要对该进程的浮点SIMD状态进行恢复,以确保进程的硬件上下文环境一致,此时设置进程的FOREIGN_FPSTATE标志。
延迟进程的浮点SIMD状态的保留和恢复过程。当且仅当进程返回用户态时,判断该进程的FOREIGN_FPSTATE标志是否被设置,若是,则将该进程的浮点SIMD状态从内存中恢复到CPU的浮点SIMD寄存器中,并将该进程的浮点SIMD状态最近被装载的CPU号指向运行的CPU,同时将目标CPU最近装载浮点SIMD寄存器的进程号指向当前运行的进程,最后清除该进程的FOREIGN_FPSTATE标志。若否,表明当前进程的最新浮点SIMD状态对应当前运行的CPU,避免了不必要的浮点SIMD状态的恢复过程。当进程执行系统调用结束,由内核态返回用户态时,清除该进程的FOREIGN_FPSTATE标志。
采用上述浮点SIMD上下文切换的性能优化方法时,其解决众核处理器架构下浮点SIMD寄存器数量众多,导致进程上下文切换延时太大影响系统性能的问题,仅当进程返回用户态时,根据该进程标志决定是否实施浮点SIMD寄存器的保留和恢复过程。该技术减小了内核进程切换开销,对内核改动较小,且适用其他系统寄存器的保留和恢复过程,如性能计数器等。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (3)

1.一种浮点SIMD上下文切换的性能优化方法,其特征在于:基于众核处理器架构,包括以下步骤:
S1、在进程描述符结构中增加一CPU标识字段,保存每个进程的浮点SIMD状态最近被装载的CPU号,每当该进程切换至另一个的CPU时,该CPU标识字段更新为目标CPU号;
S2、创建一个全局的数组,数组长度为当前系统中的CPU个数,数组中的每一项对应一个CPU号,保存每个CPU的浮点SIMD寄存器最近所装载的进程号,记录该CPU最近装载的特定进程的浮点SIMD寄存器状态地址;
S31、设置一进程标志位FOREIGN_FPSTATE,此进程标志位表示进程的最新浮点SIMD状态是否对应当前运行的CPU上,置位表示当前进程的最新浮点SIMD状态不是对应当前运行的CPU上,而是对应其他CPU上;
S32、进程切换时判断当前进程是否为内核进程,若是,不保存浮点SIMD寄存器信息;若否,继续执行下一步;
S33、继续检查当前进程标志位是否置位,若是,当该进程被切换出去时,不保存浮点SIMD寄存器信息;若否,保存当前进程的浮点SIMD寄存器信息;
S4、进程切换时将被选中进程的浮点SIMD状态最近被装载的CPU号与所述目标CPU号进行匹配,同时将目标CPU最近装载浮点SIMD寄存器的所述进程号与被选中进程号进行匹配,若二者均相等,目标CPU不对进程的浮点SIMD状态进行恢复,此时清除进程的进程标志位FOREIGN_FPSTATE标志,若否,目标CPU对该进程的浮点SIMD状态进行恢复,此时设置进程的进程标志位FOREIGN_FPSTATE标志;
S5、当且仅当进程返回用户态时,判断该进程的FOREIGN_FPSTATE标志是否被设置,若是,则将该进程的浮点SIMD状态从内存中恢复到CPU的浮点SIMD寄存器中,并将该进程的浮点SIMD状态最近被装载的CPU号指向运行的CPU,同时将目标CPU最近装载浮点SIMD寄存器的进程号指向当前运行的进程,最后清除该进程的FOREIGN_FPSTATE标志;若否,表明当前进程的最新浮点SIMD状态对应当前运行的CPU,不进行浮点SIMD状态的恢复过程;
S6、当进程执行系统调用结束,由内核态返回用户态时,清除该进程的进程标志位FOREIGN_FPSTATE标志。
2.根据权利要求1所述的浮点SIMD上下文切换的性能优化方法,其特征在于:所述进程具有描述进程执行活动全过程的进程上下文信息,包含计算机系统中与执行该进程有关的寄存器。
3.根据权利要求2所述的浮点SIMD上下文切换的性能优化方法,其特征在于:与执行该进程有关的所述寄存器为通用寄存器、程序计数器和浮点SIMD寄存器。
CN201910764140.9A 2019-08-19 2019-08-19 浮点simd上下文切换的性能优化方法 Active CN112395005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910764140.9A CN112395005B (zh) 2019-08-19 2019-08-19 浮点simd上下文切换的性能优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910764140.9A CN112395005B (zh) 2019-08-19 2019-08-19 浮点simd上下文切换的性能优化方法

Publications (2)

Publication Number Publication Date
CN112395005A CN112395005A (zh) 2021-02-23
CN112395005B true CN112395005B (zh) 2022-07-12

Family

ID=74603429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910764140.9A Active CN112395005B (zh) 2019-08-19 2019-08-19 浮点simd上下文切换的性能优化方法

Country Status (1)

Country Link
CN (1) CN112395005B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115774574A (zh) * 2021-09-06 2023-03-10 华为技术有限公司 一种操作系统内核切换方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679585A (zh) * 2013-11-28 2015-06-03 中国航空工业集团公司第六三一研究所 浮点上下文切换方法
CN106133690A (zh) * 2014-03-27 2016-11-16 国际商业机器公司 多线程计算机系统中的线程上下文保留
CN107003899A (zh) * 2015-10-28 2017-08-01 华为技术有限公司 一种中断响应方法、装置及基站

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679585A (zh) * 2013-11-28 2015-06-03 中国航空工业集团公司第六三一研究所 浮点上下文切换方法
CN106133690A (zh) * 2014-03-27 2016-11-16 国际商业机器公司 多线程计算机系统中的线程上下文保留
CN107003899A (zh) * 2015-10-28 2017-08-01 华为技术有限公司 一种中断响应方法、装置及基站

Also Published As

Publication number Publication date
CN112395005A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
US10169268B2 (en) Providing state storage in a processor for system management mode
US8412981B2 (en) Core sparing on multi-core platforms
US8201165B2 (en) Virtualizing the execution of homogeneous parallel systems on heterogeneous multiprocessor platforms
CN101529383B (zh) 任务处理装置
US20120265835A1 (en) Query performance data on parallel computer system having compute nodes
US9063794B2 (en) Multi-threaded processor context switching with multi-level cache
WO2007099483A2 (en) Method and apparatus for dynamic resizing of cache partitions based on the execution phase of tasks
US20100083275A1 (en) Transparent user mode scheduling on traditional threading systems
CN110007964A (zh) 用于risc-v架构的中断系统
Dathathri et al. Gluon-async: A bulk-asynchronous system for distributed and heterogeneous graph analytics
US20160239210A1 (en) Copy-offload on a device stack
JP2018511119A (ja) トランザクション実行に応じて追跡データを生成する装置及び方法
CN112395005B (zh) 浮点simd上下文切换的性能优化方法
CN102436393A (zh) 任务处理装置
CN101533370B (zh) 一种内存异常访问定位方法及装置
KR20010080208A (ko) 처리 시스템 스케쥴링
CN112783652A (zh) 当前任务的运行状态获取方法、装置、设备及存储介质
CN112540871B (zh) 通用寄存器保留恢复的实现方法
US11210757B2 (en) GPU packet aggregation system
US8332596B2 (en) Multiple error management in a multiprocessor computer system
US7934073B2 (en) Method for performing jump and translation state change at the same time
Won et al. A hardware accelerator for maze routing
CN112631510A (zh) 堆栈区域扩充的方法、装置及硬件平台
JPH02242434A (ja) タスクのスケジューリング方法
JP2014153851A (ja) 命令実行制御装置、命令実行制御システム、命令実行制御方法、及び、命令実行制御プログラム

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