CN107818014B - 一种内存分配方法以及多核并发的内存分配方法 - Google Patents

一种内存分配方法以及多核并发的内存分配方法 Download PDF

Info

Publication number
CN107818014B
CN107818014B CN201710943280.3A CN201710943280A CN107818014B CN 107818014 B CN107818014 B CN 107818014B CN 201710943280 A CN201710943280 A CN 201710943280A CN 107818014 B CN107818014 B CN 107818014B
Authority
CN
China
Prior art keywords
memory
memory allocation
continuous
allocation request
application program
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
CN201710943280.3A
Other languages
English (en)
Other versions
CN107818014A (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.)
Amlogic Shanghai Co Ltd
Original Assignee
Amlogic Shanghai 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 Amlogic Shanghai Co Ltd filed Critical Amlogic Shanghai Co Ltd
Priority to CN201710943280.3A priority Critical patent/CN107818014B/zh
Publication of CN107818014A publication Critical patent/CN107818014A/zh
Priority to PCT/CN2018/108100 priority patent/WO2019072094A1/zh
Priority to US16/325,119 priority patent/US11294720B2/en
Application granted granted Critical
Publication of CN107818014B publication Critical patent/CN107818014B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明提供了一种内存分配方法以及多核并发的内存分配方法,应用于嵌入式系统中,其中,提供一内核模块以及多个应用程序;包括以下步骤:步骤S1、获取应用程序的第一内存分配请求;步骤S2、内核模块判断第一内存分配请求中否存在预设的筛选标志;步骤S3、内核模块在存在筛选标志时,禁止通过连续内存分配器为当前的应用程序分配内存。其技术方案的有益效果在于,通过内存分配方法,可以将占用连续内存分配器分配的连续内存时间较长的应用程序筛选去除,进而可以对驱动程序提供更快的分配连续内存的时间,另一方面通过多个处理单元同时为驱动程序分配对应的连续内存,可以使分配的效率更高。

Description

一种内存分配方法以及多核并发的内存分配方法
技术领域
本发明涉及通信技术领域,尤其涉及一种内存分配方法以及多核并发的内存分配方法。
背景技术
随着音视频编解码技术的进步,在嵌入式平台上,GPU,Camera,HDMI等都需要预留大量连续内存,而这部分内存平时不用,但是一般的做法又必须先预留,为了避免这种预留内存造成资源不能充分利用的问题,通过CMA(Contiguous MemoryAllocator、连续内存分配器),即可实现不预留内存,这些内存平时的应用程序是可用的,只有当需要的时候才被分配给Camera,HDMI等设备的驱动程序使用,CMA现已成为嵌入式平台上驱动使用大量内存的最佳解决方案。CMA可通过特殊标记的迁移类型,能在驱动程序不使用内存的时候将内存共享给应用程序使用,在驱动需要内存的时候借助内核的内存回收、迁移机制为驱动整理出足够的连续内存出来。它很好的平衡了应用和驱动程序对内存的需求,大大缓解了内存不足带来的卡顿,不流畅等负面效果。但是这种解决方案存在以下问题,当内存的使用率较高时,通过CMA将内存共享给应用程序使用时,应用程序提供的数据可能提供给块设备驱动层处理,如此便造成了驱动程序在通过CMA分配连续内存时需要等待较长的时间,另外还存在CMA将内存共享给应用程序使用时,如果当前的应用程序需要执行大量的输入输出操作,则CMA为驱动程序分配连续内存所需占用的时间会更长。
发明内容
针对现有技术中CMA为驱动程序分配连续内存存在的上述问题,现提供一种旨在实现去除占用CMA分配的连续内存时间较长的应用程序,进而可以通过CMA为驱动程序提供更快的分配时间的内存分配方法以及多核并发的内存分配方法。
具体技术方案如下:
一种内存分配方法,应用于嵌入式系统中,其中,提供一内核模块以及多个应用程序;
包括以下步骤:
步骤S1、获取所述应用程序的第一内存分配请求;
步骤S2、所述内核模块判断所述第一内存分配请求中否存在预设的筛选标志;
步骤S3、所述内核模块在存在所述筛选标志时,禁止为当前所述应用程序分配连续内存分配器管理的内存。优选的,所述筛选标志包括:
第一标志,用以表示所述应用程序将数据提供给块设备进行处理;
第二标志,用以表示所述应用程序执行的写操作。
优选的,所述内存分配请求为一标志集合,所述标志集合用以指定内存分配的标志和控制内存分配的行为。
优选的,还包括多个驱动程序,当所述内核模块获取到所述驱动程序的第二内存分配请求时,执行以下步骤:
步骤A1、判断所述连续内存分配器分配的连续内存是否被其它所述应用程序占用;
若是,执行步骤A2;
若否,执行步骤A3;
步骤A2、将所述应用程序从所述连续内存中迁移至新分配的内存中;
步骤A3、所述内核模块根据所述驱动程序的内存分配请求,为所述驱动程序分配连续内存。
还包括一种多核并发的内存配置方法,其特征在于,包括上所述的内存分配方法,具体包括以下步骤:
所述嵌入式系统中提供数量为M个的处理单元,当接收的是所述驱动程序发送的所述第二内存分配请求时,包括以下步骤:
步骤B1、根据所述第二内存分配请求获取需要分配的连续内存的数量;
步骤B2、将分配的所述连续内存的数量均分为N份;
步骤B3、将所述第二内存分配请求发送至每一个所述处理单元;
步骤B4、每个所述处理单元根据所述第二内存分配请求,分配所述N份中每一份对应的所述连续内存的数量。
优选的,M=N。
优选的,M=4,N=4。
上述技术方案具有如下优点或有益效果:通过内存分配方法,可以将占用连续内存分配器分配的连续内存时间较长的应用程序筛选去除,进而可以对驱动程序提供更快的分配连续内存的时间,另一方面通过多个处理单元同时为驱动程序分配对应的连续内存,可以使分配的效率更高。
附图说明
参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
图1为本发明一种内存分配方法的实施例的流程图;
图2为本发明一种内存分配方法的实施例中,关于应用程序迁移的实施例的流程图;
图3为本发明一种内存分配方法的实施例中,关于传统的默认CMA分配方式与本发明的分配方式对比的折线图;
图4为本发明中一种多核并发的内存配置方法的实施例的流程图;
图5为本发明中一种多核并发的内存配置方法的实施例中,关于不同个数的处理单元执行内存分配所需的时间的柱形图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的技术方案中包括一种内存分配方法。
一种内存分配方法的实施例,应用于嵌入式系统中,其中,提供一内核模块以及多个应用程序;
如图1所示,包括以下步骤:
步骤S1、获取所述应用程序的第一内存分配请求;
步骤S2、所述内核模块判断所述第一内存分配请求中否存在预设的筛选标志;
步骤S3、所述内核模块在存在所述筛选标志时,禁止为当前的应用程序分配连续内存分配器管理的内存。但可以分配其它类型的内存给当前的应用程序。
针对现有技术中,存在的对CMA分配的连续内存占用时间较长的应用程序,例如,需要执行大量的输入输出的应用程序、提供的数据需要块设备驱动层进行处理的应用程序等,一旦这些应用程序占用CMA分配的连续内存之后,若此时需要为驱动程序分配连续内存时,由于此时应用程序正占用CMA分配的连续内存,而且对应用程序不能马上执行迁移操作,因为马上执行迁移出的操作可能导致应用程序出错,所以现有的做法是等待应用程序执行完毕之后,再通过CMA为驱动程序分配相应的连续内存,因此会造成CMA等待较长的时间,直接的影响包括解码过程中造成的延迟,给使用者带来较差的体验。
本发明中,通过对存在占用CMA分配的连续内存时间较长的应用程序进行筛选去除,需要说明的是此处的筛选去除并不是不执行该应用程序,而是该应用程序不会使用CMA分配的连续内存,而是使用其它方式分配的内存,如此操作带来的有益效果是可当需要为驱动程序分配连续内存时,CMA可快速执行分配操作,而不需要耗费较长的等待时间。
在一种较优的实施方式中,所述筛选标志包括:
第一标志,第一标志可为GFP_BDEV标志,用以表示所述应用程序将数据提供给块设备进行处理;
第二标志,第二标志可为GFP_WRITE标志,用以表示所述应用程序执行的写操作。
在一种较优的实施方式中,所述内存分配请求为一标志集合,该标志集合可为gfp_mask参数,所述gfp_mask参数用以指定内存分配的标志和控制内存分配的行为。
上述技术方案中,当内核模块接收到应用程序的第一内存分配请求之后,首选是判断gfp_mask参数中是否包含预设的筛选标志,即上述的GFP_BDEV标志或者GFP_WRITE标志,若存在时则表示当前的应用程序会对CMA分配的连续内存占用较长的时间。
需要说明的是,任何应用程序和驱动程序分配内存的时候,都必须提供分配标志参数,这个参数叫做gfp_mask;
gfp_mask可包含GFP_BDEV/GFP_WRITE甚至GFP_FS/GFP_IO等标志中的一个或者多个。
在一种较优的实施方式中,还包括多个驱动程序,当所述内核模块获取到所述驱动程序的第二内存分配请求时,如图2所示,执行以下步骤:
步骤A1、判断所述连续内存分配器分配的连续内存是否被其它所述应用程序占用;
若是,执行步骤A2;
若否,执行步骤A3;
步骤A2、将所述应用程序从所述连续内存中迁移至新分配的内存中;
步骤A3、所述内核模块根据所述驱动程序的内存分配请求,为所述驱动程序分配连续内存。
上述技术方案中,将应用程序从当前的CMA分配的连续内存中迁移至新分配的内存中的方法,可通过相应的迁移机制进行处理。
如图3所示,左边竖轴表示现有的默认分配方式,右边竖轴为本发明中的分配方式,从图中可知,当默认分配程序存在大量文件操作时,200M左右的内存现有的分配需要耗时2秒至30秒不等,而采取了本本发明中分配方法可以在同等条件下将CMA的分配时间降低在600ms以下。
本发明的技术方案中还包括一种多核并发的内存配置方法。
一种多核并发的内存分配方法的实施例,其中,包括上所述的内存分配方法,如图4所示,具体包括以下步骤:
所述嵌入式系统中提供数量为M个的处理单元,当接收的是所述驱动程序发送的所述第二内存分配请求时,包括以下步骤:
步骤B1、根据所述第二内存分配请求获取需要分配的连续内存的数量;
步骤B2、将分配的所述连续内存的数量均分为N份;
步骤B3、将所述第二内存分配请求发送至每一个所述处理单元;
步骤B4、每个所述处理单元根据所述第二内存分配请求,分配所述N份中每一份对应的所述连续内存的数量。
在一种较优的实施方式中,M=N。
在一种较优的实施方式中,M=4,N=4。
上述技术方案中,通过一具体的实施例进行说明,如处理单元个数位为4时,当驱动程序所需分配的连续内存的数量为500M时,首选将该数量分为4等份即每一份为125M,当每个处理单元接收到第二内存分配请求时,每个处理单元同时分配一125M的连续内存,即可实现为驱动程序提供500M的连续内存,通过多核即过个处理单元(CPU)同时执行,可使CMA更快的完成连续内存的分配。
如图5所示,Y轴代表CMA分配内存的时间,X轴表示处理单元的个数,通过对比不同个数的处理单元,可以得出采用多核并发的内存分配方法,随着处理单元个数的增加处理的时间相应的减少。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (4)

1.一种多核并发的内存配置方法,其特征在于,应用于嵌入式系统中,所述嵌入式系统提供一内核模块、多个应用程序以及多个驱动程序;
所述内存配置方法包括一内存分配方法,具体包括以下步骤:
步骤S1、获取所述应用程序的第一内存分配请求;
步骤S2、所述内核模块判断所述第一内存分配请求中否存在预设的筛选标志;
步骤S3、所述内核模块在存在所述筛选标志时,禁止为当前所述应用程序分配连续内存分配器管理的内存;
当所述内核模块获取到所述驱动程序的第二内存分配请求时,执行以下步骤:
步骤A1、判断所述连续内存分配器分配的连续内存是否被其它所述应用程序占用;
若是,执行步骤A2;
若否,执行步骤A3;
步骤A2、将所述应用程序从所述连续内存中迁移至新分配的内存中;
步骤A3、所述内核模块根据所述驱动程序的内存分配请求,为所述驱动程序分配连续内存;
其中,所述嵌入式系统中提供数量为M个的处理单元,当接收的是所述驱动程序发送的所述第二内存分配请求时,执行以下步骤:
步骤B1、根据所述第二内存分配请求获取需要分配的连续内存的数量;
步骤B2、将分配的所述连续内存的数量均分为N份;
步骤B3、将所述第二内存分配请求发送至每一个所述处理单元;
步骤B4、每个所述处理单元根据所述第二内存分配请求,分配所述N份中每一份对应的所述连续内存的数量;
其中,M、N为整数,M=N。
2.根据权利要求1所述的多核并发的内存配置方法,其特征在于,所述筛选标志包括:
第一标志,用以表示所述应用程序将数据提供给块设备进行处理;
第二标志,用以表示所述应用程序执行的写操作。
3.根据权利要求1所述的多核并发的内存配置方法,其特征在于,所述内存分配请求为一标志集合,所述标志集合用以指定内存分配的标志和控制内存分配的行为。
4.根据权利要求1所述的多核并发的内存配置方法,其特征在于,M=4,N=4。
CN201710943280.3A 2017-10-11 2017-10-11 一种内存分配方法以及多核并发的内存分配方法 Active CN107818014B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710943280.3A CN107818014B (zh) 2017-10-11 2017-10-11 一种内存分配方法以及多核并发的内存分配方法
PCT/CN2018/108100 WO2019072094A1 (zh) 2017-10-11 2018-09-27 一种内存分配方法以及多核并发的内存分配方法
US16/325,119 US11294720B2 (en) 2017-10-11 2018-09-27 CMA memory allocation method based on screening marks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710943280.3A CN107818014B (zh) 2017-10-11 2017-10-11 一种内存分配方法以及多核并发的内存分配方法

Publications (2)

Publication Number Publication Date
CN107818014A CN107818014A (zh) 2018-03-20
CN107818014B true CN107818014B (zh) 2020-06-09

Family

ID=61608167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710943280.3A Active CN107818014B (zh) 2017-10-11 2017-10-11 一种内存分配方法以及多核并发的内存分配方法

Country Status (3)

Country Link
US (1) US11294720B2 (zh)
CN (1) CN107818014B (zh)
WO (1) WO2019072094A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107818014B (zh) * 2017-10-11 2020-06-09 晶晨半导体(上海)股份有限公司 一种内存分配方法以及多核并发的内存分配方法
CN109857678A (zh) * 2019-01-31 2019-06-07 深兰科技(上海)有限公司 一种嵌入式系统内存管理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221536A (zh) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 嵌入式系统的内存管理方法及装置
US7533236B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip out of order memory allocation for a unified shader
CN102156675A (zh) * 2010-02-12 2011-08-17 中兴通讯股份有限公司 一种内存分配方法及装置
CN106294192A (zh) * 2015-05-26 2017-01-04 龙芯中科技术有限公司 内存分配方法、内存分配装置及服务器
CN107220189A (zh) * 2017-03-14 2017-09-29 晨星半导体股份有限公司 内存空间管理及内存访问控制方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523284B1 (en) * 2004-08-10 2009-04-21 American Megatrends, Inc. Method and apparatus for providing memory management within a system management mode
US7516291B2 (en) * 2005-11-21 2009-04-07 Red Hat, Inc. Cooperative mechanism for efficient application memory allocation
US7814288B2 (en) * 2007-03-29 2010-10-12 Microsoft Corporation Protecting memory operations involving zero byte allocations
WO2009098547A1 (en) * 2008-02-08 2009-08-13 Freescale Semiconductor, Inc. Memory management
US7937625B2 (en) * 2008-09-26 2011-05-03 Microsoft Corporation Evaluating effectiveness of memory management techniques selectively using mitigations to reduce errors
US8402249B1 (en) * 2009-10-19 2013-03-19 Marvell International Ltd. System and method for mixed-mode SDRAM address mapping
CN102053916B (zh) * 2010-12-17 2013-06-05 曙光信息产业股份有限公司 一种分配内核大片连续内存的方法
CN102521184A (zh) * 2011-12-20 2012-06-27 北京遥测技术研究所 一种在pci总线上实现数据高速传输的方法
US8954707B2 (en) * 2012-08-03 2015-02-10 International Business Machines Corporation Automatic use of large pages
FR3045189B1 (fr) * 2015-12-15 2019-12-06 Ingenico Group Procede de securisation d'au moins une zone memoire d'un dispositif electronique, module de securisation, dispositif electronique et programme d'ordinateur correspondants
US10019288B2 (en) * 2016-09-12 2018-07-10 Mediatek, Inc. Fast and stable mechanism for allocating contiguous memory
CN107818014B (zh) * 2017-10-11 2020-06-09 晶晨半导体(上海)股份有限公司 一种内存分配方法以及多核并发的内存分配方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533236B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip out of order memory allocation for a unified shader
CN101221536A (zh) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 嵌入式系统的内存管理方法及装置
CN102156675A (zh) * 2010-02-12 2011-08-17 中兴通讯股份有限公司 一种内存分配方法及装置
CN106294192A (zh) * 2015-05-26 2017-01-04 龙芯中科技术有限公司 内存分配方法、内存分配装置及服务器
CN107220189A (zh) * 2017-03-14 2017-09-29 晨星半导体股份有限公司 内存空间管理及内存访问控制方法及装置

Also Published As

Publication number Publication date
US11294720B2 (en) 2022-04-05
WO2019072094A1 (zh) 2019-04-18
US20210334140A1 (en) 2021-10-28
CN107818014A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
EP3425502B1 (en) Task scheduling method and device
CN109936604B (zh) 一种资源调度方法、装置和系统
CN110941481A (zh) 资源调度方法、装置及系统
KR101644800B1 (ko) 컴퓨팅 시스템 및 방법
CN110413412B (zh) 一种基于gpu集群资源分配的方法和装置
CN109788325B (zh) 视频任务分配方法及服务器
EP3881192B1 (en) An apparatus and method for handling address decoding in a system-on-chip
CN109960569B (zh) 一种虚拟化处理方法及装置
CN107818014B (zh) 一种内存分配方法以及多核并发的内存分配方法
CN104834627B (zh) 半导体设备、处理器系统及其控制方法
CN104461698A (zh) 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统
EP3208709A1 (en) Batch processing method and device for system invocation commands
CN110633130A (zh) 一种基于内存热插拔技术的虚拟内存管理方法和装置
CN117170882A (zh) 一种资源分配方法、装置、电子设备及存储介质
JP6372262B2 (ja) 印刷装置、およびプログラム
CN112235474B (zh) 预付费流量码号的调度方法、装置及设备
EP3974978A1 (en) Overlay container storage driver for microservice workloads
CN111190719A (zh) 优化集群资源分配的方法、装置、介质及电子设备
US20100153678A1 (en) Memory management apparatus and method
CN115185874B (zh) 一种pcie资源的分配方法及相关装置
CN105512091A (zh) 一种内存分配方法及装置
WO2023035664A1 (zh) 资源分配方法、云主机、计算机可读存储介质
CN107957878B (zh) 一种基于存储资源再分配的嵌入式设备软件在线升级方法
CN114035901B (zh) 用于运行进程的容器的构建方法、装置和电子设备
CN114418282A (zh) 车站场景管理方法、装置、设备及计算机程序产品

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