CN111077976B - 多核心处理器的空闲状态低功耗模式实现方法和处理器 - Google Patents
多核心处理器的空闲状态低功耗模式实现方法和处理器 Download PDFInfo
- Publication number
- CN111077976B CN111077976B CN201811214744.8A CN201811214744A CN111077976B CN 111077976 B CN111077976 B CN 111077976B CN 201811214744 A CN201811214744 A CN 201811214744A CN 111077976 B CN111077976 B CN 111077976B
- Authority
- CN
- China
- Prior art keywords
- core
- interrupt source
- inter
- processor
- power
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明公开了一种多核心处理器的空闲状态低功耗模式实现方法和处理器,用以至少解决多核处理器低功耗管理中功耗较高、性能较差和响应滞后的问题。所述方法包括:处于空闲状态的多核心中第一核心从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理;所述第一核心和所述第二核心为不同核心。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种多核心处理器的空闲状态低功耗模式实现方法和处理器。
背景技术
为了降低多核CPU(中央处理器,Central Processing Unit)功耗,现有技术中存在多核CPU低功耗管理方法上,但是现有多核CPU低功耗管理方法存在技术的功耗较高、性能较差和响应滞后的问题;例如,现有多核CPU低功耗管理方法是通过统计当前时间窗口内CPU的负载状况决定下一步动作是开(关)核还是维持当前状态,其存在以下缺陷:
a)开(关)核心对功耗和性能的影响大。关核时需要把被关核心上的执行线程迁移到其他核心,然后再关核心;开核心时需要根据负载均衡原则,把其他核心上的选定执行线程迁移到新开核心上。此过程中主要的性能损耗有:1、线程迁移引入的额外开销。2、线程迁移后Cache(缓存)变冷,需要重新预热,也会引入功耗和性能损失。
b)开(关)核心动作的直接依据是当前时刻的CPU负载。而当前时刻的CPU负载是基于当前时刻之前的某个时间段内CPU负载统计得来的。如果统计窗口太小,会导致频繁的开(关)核心动作,从而引入更多的额外性能损耗,导致整体性能降低;如果统计窗口太大,则实时响应慢,用户体验不佳。
c)开关核心的核心思想是通过统计“过去一段时间”的CPU负载状况来决定未来的开关核行为,从原理上来说就存在着时间滞后性,对突发的实时高负载需求反映迟缓,从而导致卡顿等现象。
发明内容
为了克服上述缺陷,本发明要解决的技术问题是提供一种多核心处理器的空闲状态低功耗模式实现方法和处理器,用以至少解决多核处理器低功耗管理中功耗较高、性能较差和响应滞后的问题。
为解决上述技术问题,本发明实施例中的一种多核心处理器的空闲状态低功耗模式实现方法包括:
处于空闲状态的多核心中第一核心从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理;所述第一核心和所述第二核心为不同核心。
可选地,所述处于空闲状态的多核心中第一核心从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理,包括:
所述第一核心向所述第二核心发出核间通信信息,所述核间通信信息用于指示所述第二核心执行对所述第一核心下电处理;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理。
可选地,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之前,包括:
所述第二核心将所述第一核心负责处理的第一中断源迁移至所述第二核心;并标记所述第一中断源的原始归属核心。
可选地,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之后,包括:
所述第二核心在检测到第二中断源触发中断时,根据所述第二中断源的原始归属核心和标记的第一中断源的原始归属核心,判断所述第二中断源是否属于所述第一核心;在判定属于时,对所述第一核心进行上电处理。
可选地,所述方法还包括:
所述第一核心在确定所述多核心中无处于运行状态的核心时,根据所述第一核心的最近唤醒时间和预设的时间阈值,确定是否触发所述多核处理器进入***休眠流程。
为解决上述技术问题,本发明实施例中的一种处理器包括互相连接的多个核心;
处于空闲状态的多核心中第一核心,用于从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理;所述第一核心和所述第二核心为不同核心。
可选地,所述第一核心,具体用于向所述第二核心发出核间通信信息,所述核间通信信息用于指示所述第二核心执行对所述第一核心下电处理;
所述第二核心,用于在接收到所述核间通信时,将所述第一核心进行下电处理。
可选地,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之前,还用于将所述第一核心负责处理的第一中断源迁移至所述第二核心;并标记所述第一中断源的原始归属核心。
可选地,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之后,还用于在检测到第二中断源触发中断时,根据所述第二中断源的原始归属核心和标记的第一中断源的原始归属核心,判断所述第二中断源是否属于所述第一核心;在判定属于时,对所述第一核心进行上电处理。
可选地,所述第一核心,还用于在确定所述多核心中无处于运行状态的核心时,根据所述第一核心的最近唤醒时间和预设的时间阈值,确定是否触发所述多核处理器进入***休眠流程。
本发明有益效果如下:
本发明各个实施例有效解决多核处理器低功耗管理中功耗较高、性能较差和响应滞后的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例中进入CPUidle流程图;
图2是本发明实施例中退出CPUidle流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
使用用于区分元件的诸如“第一”、“第二”等前缀仅为了有利于本发明的说明,其本身没有特定的意义。
实施例一
本发明实施例提供一种多核心处理器的空闲状态低功耗CPUidle模式实现方法,所述方法包括:
处于空闲状态的多核心中第一核心从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理;所述第一核心和所述第二核心为不同核心。
本发明实施例在核心无事可做(即处于空闲状态)时主动关核心,核心中断来临时实时唤醒核心进行任务处理,并且通过第二核心执行对第一核心的下电处理,从而巧妙地避免了现有技术中的种种缺陷,有效解决多核处理器低功耗管理中功耗较高、性能较差和响应滞后的问题。
其中,在具体实现时,可以通过核间通信来触发第二核心对第一核心进行下电处理,从而不需要引入额外的开销,更加有效解决上述问题。也就说,所述处于空闲状态的多核心中第一核心从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理,可以包括:
所述第一核心向所述第二核心发出核间通信信息,所述核间通信信息用于指示所述第二核心执行对所述第一核心下电处理;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理。
当然,在本发明实施例中,在中断到来时,也可以先判断此中断是否属于“被关核心”的中断。如果是,则执行被关核心的上电操作,基于此,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之前,也可以包括:
所述第二核心将所述第一核心负责处理的第一中断源迁移至所述第二核心;并标记所述第一中断源的原始归属核心。
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之后,可以包括:
所述第二核心在检测到中断触发第二中断源时,根据所述第二中断源的原始归属核心和标记的第一中断源的原始归属核心,判断所述第二中断源是否属于所述第一核心;在判定属于时,对所述第一核心进行上电处理,并将所述第一中断源从所述第二核心迁移至所述第一核心。例如,确定所述第二中断源的原始归属核心,将所述第二中断源的原始归属核心与所述第二核心标记的第一中断源的原始归属核心进行匹配,在匹配时,判定所述第二中断源属于所述第一核心;在判定属于时,对所述第一核心进行上电处理,并将所述第一中断源从所述第二核心迁移至所述第一核心。
本发明实施例在第一核心掉电时,先判断是否存在其他处于运行态的核心。如果有,则由其执行本核心的掉电操作。如果没有(间接说明整个***都处于“无事可做”状态),则根据情况执行***级的standby操作(即***休眠流程)。也就说,所述方法还包括:
所述第一核心在确定所述多核心中无处于运行状态的核心时,根据所述第一核心的最近唤醒时间和预设的时间阈值,确定是否触发所述多核处理器进入***休眠流程。
以下通过实例详细描述本发明实施例,本实例中包括进入CPUidle流程和退出CPUidle流程。
如图1所示,进入CPUidle流程可以包括:
步骤1)CPU中调度算法决定第一核心(简称coreA)需要进入CPUidle模式。
步骤2)判断当前***是否存在其他处于运行态的核心。
步骤3)如果有,则选择其中之一第二核心(简称coreB)。
步骤a)coreA向coreB发出核间通信消息,通知coreB将coreA下电。
步骤b)coreA进入等待关闭(下电)状态。
步骤c)coreB收到消息后得知coreA需要下电。
步骤d)coreB将coreA所负责处理的中断源(第一中断源)迁移至coreB。
步骤e)coreB标记被迁移中断的原始归属核心(即coreA)。
步骤f)coreB将coreA下电,使coreA进入核心掉电状态。
步骤4)如果没有,则表示***有进入待机状态的需求。
步骤5)判断***的最近唤醒时间是否大于时间阈值。
步骤6)如果大于,则进入***休眠流程。
步骤a)DDR进入自刷新模式。
步骤b)关闭***时钟。
步骤c)进入***休眠。
步骤7)如果不大于,coreA进入等待中断响应模式。
如图2所示,退出CPUidle流程可以包括:
步骤1)某中断源(第二中断源)触发中断。
步骤2)判断中断源是否是步骤3d所述被迁移中断源。
步骤3)如果是,则:
步骤a)确认中断源的原始归属核心(即进入CPUidle流程3e标记的coreA)。
步骤b)给coreA上电。
步骤c)将被迁移中断源迁移回coreA。
步骤d)coreA重新恢复正常工作状态。
步骤4)如果否,则进行正常中断处理。
本实例在核心无事可做时主动关核心,中断来临时实时唤醒核心进行任务处理,从而巧妙地避免了上述现有技术中的缺陷,并且每个核心在运行态都有自己的idle线程(内核线程),优先级最低。其他线程没有任务需求时才会执行idle线程。idle线程根据本核心未来中断到来的最近时间判断进入什么级别的掉电状态,从而巧妙的满足了低功耗和响应时间两方面的要求。
实施例二
本发明实施例提供一种处理器,所述处理器包括互相连接的多个核心;
处于空闲状态的多核心中第一核心,用于从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理;所述第一核心和所述第二核心为不同核心。
其中,所述第一核心,可以具体用于向所述第二核心发出核间通信信息,所述核间通信信息用于指示所述第二核心执行对所述第一核心下电处理;
所述第二核心,用于在接收到所述核间通信时,将所述第一核心进行下电处理。
其中,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之前,还可以用于将所述第一核心负责处理的第一中断源迁移至所述第二核心;并标记所述第一中断源的原始归属核心。
其中,所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之后,还可以用于在检测到第二中断源触发中断时,根据所述第二中断源的原始归属核心和标记的第一中断源的原始归属核心,判断所述第二中断源是否属于所述第一核心;在判定属于时,对所述第一核心进行上电处理。
其中,所述第一核心,还可以用于在确定所述多核心中无处于运行状态的核心时,根据所述第一核心的最近唤醒时间和预设的时间阈值,确定是否触发所述多核处理器进入***休眠流程。
本发明实施例为实施例一的装置实施例,在具体实现时可以参阅实施例一,具有相应的技术效果。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (4)
1.一种多核心处理器的空闲状态低功耗模式实现方法,其特征在于,所述方法包括:
处于空闲状态的多核心中第一核心从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理,包括:
所述第一核心向所述第二核心发出核间通信信息,所述核间通信信息用于指示所述第二核心执行对所述第一核心下电处理;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理;
所述第一核心和所述第二核心为不同核心;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之前,包括:
所述第二核心将所述第一核心负责处理的第一中断源迁移至所述第二核心;并标记所述第一中断源的原始归属核心;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之后,包括:
所述第二核心在检测到第二中断源触发中断时,根据所述第二中断源的原始归属核心和标记的第一中断源的原始归属核心,判断所述第二中断源是否属于所述第一核心;在判定属于时,对所述第一核心进行上电处理。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一核心在确定所述多核心中无处于运行状态的核心时,根据所述第一核心的最近唤醒时间和预设的时间阈值,确定是否触发所述多核心处理器进入***休眠流程。
3.一种处理器,其特征在于,所述处理器包括互相连接的多个核心;
处于空闲状态的多核心中第一核心,用于从所述多核心中选择处于运行状态的第二核心,触发所述第二核心执行对所述第一核心进行下电处理;
所述第一核心,具体用于向所述第二核心发出核间通信信息,所述核间通信信息用于指示所述第二核心执行对所述第一核心下电处理;
所述第二核心,用于在接收到所述核间通信时,将所述第一核心进行下电处理;
所述第一核心和所述第二核心为不同核心;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之前,还用于将所述第一核心负责处理的第一中断源迁移至所述第二核心;并标记所述第一中断源的原始归属核心;
所述第二核心在接收到所述核间通信时,将所述第一核心进行下电处理之后,还用于在检测到第二中断源触发中断时,根据所述第二中断源的原始归属核心和标记的第一中断源的原始归属核心,判断所述第二中断源是否属于所述第一核心;在判定属于时,对所述第一核心进行上电处理。
4.如权利要求3所述的处理器,其特征在于,所述第一核心,还用于在确定所述多核心中无处于运行状态的核心时,根据所述第一核心的最近唤醒时间和预设的时间阈值,确定是否触发所述多核心处理器进入***休眠流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811214744.8A CN111077976B (zh) | 2018-10-18 | 2018-10-18 | 多核心处理器的空闲状态低功耗模式实现方法和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811214744.8A CN111077976B (zh) | 2018-10-18 | 2018-10-18 | 多核心处理器的空闲状态低功耗模式实现方法和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111077976A CN111077976A (zh) | 2020-04-28 |
CN111077976B true CN111077976B (zh) | 2021-07-20 |
Family
ID=70308700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811214744.8A Active CN111077976B (zh) | 2018-10-18 | 2018-10-18 | 多核心处理器的空闲状态低功耗模式实现方法和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111077976B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114651B (zh) * | 2020-09-24 | 2022-08-16 | 哲库科技(北京)有限公司 | 处理器簇的节电方法及装置、芯片、设备、存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451333B2 (en) * | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
CN100507807C (zh) * | 2007-04-10 | 2009-07-01 | 北京中星微电子有限公司 | 一种电源控制装置及方法 |
US7779191B2 (en) * | 2008-07-29 | 2010-08-17 | Nvidia Corporation | Platform-based idle-time processing |
KR101620103B1 (ko) * | 2009-10-21 | 2016-05-13 | 삼성전자주식회사 | 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법 |
EP2750043B1 (en) * | 2011-08-23 | 2016-04-20 | Fujitsu Limited | Information processing apparatus and scheduling method |
CN102955549B (zh) * | 2011-08-29 | 2016-06-29 | 华为技术有限公司 | 一种多核cpu的电源管理方法、***及cpu |
CN102566739B (zh) * | 2012-01-06 | 2014-11-26 | 威盛电子股份有限公司 | 多核处理器***及其动态电源管理方法与控制装置 |
JP6038699B2 (ja) * | 2013-03-22 | 2016-12-07 | シャープ株式会社 | 電子機器 |
CN103793041B (zh) * | 2014-02-21 | 2017-06-09 | 珠海全志科技股份有限公司 | 多核对称多处理***的电源管理方法及装置 |
CN105608049A (zh) * | 2015-12-23 | 2016-05-25 | 魅族科技(中国)有限公司 | 智能终端的cpu控制方法及控制装置 |
US10203749B2 (en) * | 2016-01-04 | 2019-02-12 | Marvell World Trade Ltd. | Method and apparatus for saving power, including at least two power saving modes |
CN106991770B (zh) * | 2017-03-30 | 2019-09-24 | 福建实达电脑设备有限公司 | 基于双cpu架构的智能pos安卓同步低功耗方法 |
-
2018
- 2018-10-18 CN CN201811214744.8A patent/CN111077976B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111077976A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109803359B (zh) | 一种唤醒终端***的方法及终端 | |
CN103324500B (zh) | 一种回收内存的方法及装置 | |
US8752060B2 (en) | Multi-CPU domain mobile electronic device and operation method thereof | |
KR101029414B1 (ko) | 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 | |
CN110058889B (zh) | 一种应用唤醒方法及装置 | |
CN102656539B (zh) | 用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法 | |
RU2595577C2 (ru) | Приостановление и/или регулирование процессов для состояния ожидания с подключением | |
US20090217065A1 (en) | Power management based on policy | |
CN106125885B (zh) | 用于功率管理的***和方法 | |
KR101503628B1 (ko) | 휴대용 컴퓨팅 디바이스에서 인터럽트 제어기들의 슬립 상태들을 관리하는 방법 및 시스템 | |
CN107533479B (zh) | 功率知晓调度和功率管理器 | |
KR20140067041A (ko) | 중단 상태 및 실행 상태에 있는 프로세스의 관리 기법 | |
US11467650B2 (en) | Selecting a low power state in an electronic device | |
WO2015007246A1 (zh) | 移动终端中应用程序的唤醒控制方法、装置和移动终端 | |
KR101943133B1 (ko) | 중단 상태 및 실행 상태에 있는 프로세스의 관리 기법 | |
CN106168902A (zh) | 一种唤醒控制方法、装置及设备 | |
EP2972826B1 (en) | Multi-core binary translation task processing | |
CN111077976B (zh) | 多核心处理器的空闲状态低功耗模式实现方法和处理器 | |
CN108616906A (zh) | 一种lte基站节能方法和装置 | |
US20160179716A1 (en) | Timer management apparatus | |
WO2016180241A1 (zh) | 终端节能管理方法、装置及终端 | |
US20140237475A1 (en) | Sleep/wake with suppression and donated importance | |
US9760145B2 (en) | Saving the architectural state of a computing device using sectors | |
EP2867790B1 (en) | Systems and methods for automatic modification of device configuration values | |
CN114610578A (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 |