CN102141938B - 多线程系统中软件负荷的调整方法及装置 - Google Patents
多线程系统中软件负荷的调整方法及装置 Download PDFInfo
- Publication number
- CN102141938B CN102141938B CN 201010590694 CN201010590694A CN102141938B CN 102141938 B CN102141938 B CN 102141938B CN 201010590694 CN201010590694 CN 201010590694 CN 201010590694 A CN201010590694 A CN 201010590694A CN 102141938 B CN102141938 B CN 102141938B
- Authority
- CN
- China
- Prior art keywords
- hardware handles
- handles unit
- software
- thread
- software thread
- 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
Landscapes
- Power Sources (AREA)
Abstract
本发明实施例提供一种多线程系统中软件负荷的调整方法及装置,方法包括:若所述多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,所述多线程系统包括至少两个硬件处理单元;解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
Description
技术领域
本发明实施例涉及数据处理,尤其涉及一种多线程系统中软件负荷的调整方法及装置。
背景技术
多硬件处理单元的硬件系统中,某个应用软件线程或操作系统软件线程/中断与硬件处理单元可以设置为一对一的绑定关系,还可以设置为一对多的绑定关系。对于前者来说,上述应用软件线程或操作系统软件线程/中断的软件负荷只能够由与之绑定的一个硬件处理单元进行承载,其他硬件处理单元无论是否空闲,都不可以承载上述应用软件线程或操作系统软件线程/中断的软件负荷;对于后者来说,上述应用软件线程或操作系统软件线程/中断的软件负荷可以由与之绑定的多个硬件处理单元进行承载,操作系统可以调度当前最空闲的硬件处理单元执行对应的处理请求。执行完处理请求的硬件处理单元在没有被操作系统再次调度的短暂时刻可以进入节能状态。
上述现有技术中,当有处理请求需要执行时,操作系统需要频繁调度当前最空闲的硬件处理单元执行对应的处理请求,使得上述硬件处理单元在正常运行状态与节能状态之间频繁进行切换,导致了额外的系统负荷,从而增加了系统的能耗。
发明内容
本发明实施例提供一种多线程系统中软件负荷的调整方法及装置,用以避免由于硬件处理单元在正常运行状态与节能状态之间频繁进行切换所导致的额外的系统负荷,降低系统的能耗。
本发明实施例提供了一种多线程系统中软件负荷的调整方法,包括:
若所述多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,所述多线程系统包括至少两个硬件处理单元;
解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
本发明实施例还提供了一种多线程系统中软件负荷的调整装置,包括:
选择模块,用于若所述多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,所述多线程系统包括至少两个硬件处理单元;
调整模块,用于解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
由上述技术方案可知,本发明实施例通过当多线程系统的软件负荷小于预先设置的调整启动阈值时,选择一个硬件处理单元,使得能够解除该硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系,避免了由于硬件处理单元在正常运行状态与节能状态之间频繁进行切换所导致的额外的系统负荷,从而降低了系统的能耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的多线程系统中软件负荷的调整方法的流程示意图;
图2A为本发明实施例二提供的多线程系统中软件负荷的调整方法的流程示意图;
图2B为本发明实施例二提供的多线程系统中软件负荷的调整方法中CPU内核的绑定关系一个示意图;
图3为本发明实施例三提供的多线程系统中软件负荷的调整装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的多线程系统中软件负荷的调整方法的流程示意图,如图1所示,本实施例的多线程系统中软件负荷的调整方法可以包括以下步骤:
步骤101、若多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,该多线程系统包括至少两个硬件处理单元;
其中,对于单核中央处理单元(Central Processing Unit,简称CPU)来说,上述硬件处理单元则为CPU;对于多核CPU来说,上述硬件处理单元则为CPU内核,本发明实施例对此不进行限制。
具体地,本步骤可以判断上述多线程系统的软件负荷是否小于预先设置的调整启动阈值,若多线程系统的软件负荷小于预先设置的调整启动阈值,则可以选择一个硬件处理单元。其中,本步骤具体可以判断上述多线程系统的平均软件负荷是否小于预先设置的调整启动阈值,或者还可以判断上述多线程系统的总共软件负荷是否小于预先设置的调整启动阈值,本发明实施例对此不进行限制,本领域技术人员可以理解的是:上述两个调整启动阈值的大小并不相同。具体地,本步骤中上述一个硬件处理单元的选择可以根据预先设置的选择策略进行,例如:选择编号(ID)最大的硬件处理单元、选择ID最小的硬件处理单元等,本实施例对此不进行限制。
步骤102、解除上述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
具体地,本步骤还可以进一步判断其他硬件处理单元的处理能力是否大于上述多线程系统的软件负荷,若其他硬件处理单元的处理能力大于上述多线程系统的软件负荷,才解除上述一个硬件处理单元的绑定关系,否则不执行任何操作。其中,本步骤具体可以判断其他硬件处理单元的平均处理能力是否大于上述多线程系统的平均软件负荷,或者还可以判断其他硬件处理单元的处理能力之和是否大于上述多线程系统的总共软件负荷,本发明实施例对此不进行限制。
进一步地,还可以进一步判断其他硬件处理单元的处理能力是否大于上述多线程系统的软件负荷一个预先设置的安全阈值,若其他硬件处理单元的处理能力大于上述多线程系统的软件负荷一个预先设置的安全阈值,才解除上述一个硬件处理单元的绑定关系,否则不执行任何操作。类似地,本步骤具体可以判断其他硬件处理单元的平均处理能力是否大于上述多线程系统的平均软件负荷一个预先设置的安全阈值,或者还可以判断其他硬件处理单元的处理能力之和是否大于上述多线程系统的总共软件负荷一个预先设置的安全阈值,本发明实施例对此不进行限制。
进一步地,步骤102之后,还可以继续执行步骤101,判断其他硬件处理单元的软件负荷是否小于上述预先设置的调整启动阈值,若其他硬件处理单元的软件负荷小于预先设置的调整启动阈值,则可以再选择一个硬件处理单元,执行步骤102。本实施例可以重复执行上述步骤,直到剩下的硬件处理单元的软件负荷不小于(大于或等于)上述预先设置的调整启动阈值为止。进一步地,被解除绑定关系的上述硬件处理单元经过一段阈值时间之后可以进入深度节能状态,不再执行任何处理请求。
进一步地,本实施例还可以进一步判断其他硬件处理单元(没有被解除绑定关系的硬件处理单元)的软件负荷是否大于或等于预先设置的调整关闭阈值,若其他硬件处理单元的软件负荷大于或等于预先设置的调整关闭阈值,则可以恢复或重新建立被解除绑定关系的上述硬件处理单元的绑定关系。其中,具体可以判断其他硬件处理单元的平均软件负荷是否大于或等于预先设置的调整关闭阈值,或者还可以判断其他硬件处理单元的软件负荷之和是否大于或等于预先设置的调整关闭阈值,本发明实施例对此不进行限制。
上述步骤101和步骤102可以由节能管理模块软件执行。
本实施例中,通过当多线程系统的软件负荷小于预先设置的调整启动阈值时,可以选择一个硬件处理单元,使得能够解除该硬件处理单元的绑定关系,避免了由于硬件处理单元在正常运行状态与节能状态之间频繁进行切换所导致的额外的系统负荷,从而降低了系统的能耗。
下面以多核CPU进行举例,进一步详细说明本发明的详细技术方案。图2A为本发明实施例二提供的多线程系统中软件负荷的调整方法的流程示意图,本实施例中,在四个CPU内核的硬件系统上,运行着操作系统软件线程/中断、应用软件A线程(应用软件A的线程)、应用软件B线程(应用软件B的线程)、应用软件C线程(应用软件C的线程)、应用软件D线程(应用软件D的线程)、应用软件E线程(应用软件E的线程)、应用软件F线程(应用软件F的线程)、应用软件G线程(应用软件G的线程),各个CPU内核(CPU内核的ID从大到小的顺序为CPU内核a、CPU内核b、CPU内核c、CPU内核d)的绑定关系(即与操作系统软件线程/中断、应用软件线程的绑定关系)可以如图2B所示,本实施例的多线程系统中软件负荷的调整方法可以包括以下步骤,如图2A所示:
步骤201、判断CPU内核a、CPU内核b、CPU内核c、CPU内核d的平均软件负荷是否小于预先设置的调整启动阈值,若是,则执行步骤202,否则,结束流程;
步骤202、根据预先设置的选择策略,选择ID最大的CPU内核a;
步骤203、判断CPU内核b、CPU内核c、CPU内核d的处理能力之和是否大于CPU内核a、CPU内核b、CPU内核c、CPU内核d的软件负荷之和一个预先设置的安全阈值,若是,则执行步骤204,否则,结束流程;
步骤204、解除CPU内核a的绑定关系,即解除CPU内核a与操作系统软件线程/中断、应用软件A线程、应用软件D线程、应用软件G线程之间的绑定关系;
至此,CPU内核a的绑定关系被解除,此后,CPU内核a经过一段阈值时间之后,进入深度节能状态,不再执行任何处理请求;
步骤205、判断CPU内核b、CPU内核c、CPU内核d的软件负荷是否小于预先设置的调整启动阈值,若是,则执行步骤206,否则,结束流程;
步骤206、根据预先设置的选择策略,选择ID最大的CPU内核b;
步骤207、判断CPU内核c、CPU内核d的处理能力之和是否大于CPU内核b、CPU内核c、CPU内核d的软件负荷之和一个预先设置的安全阈值,若是,则执行步骤208、步骤209和步骤210,否则,执行步骤209和步骤210;
步骤208、解除CPU内核b的绑定关系,即解除CPU内核b与操作系统软件线程/中断、应用软件A线程、应用软件B线程、应用软件D线程之间的绑定关系;
至此,CPU内核b的绑定关系被解除,此后,CPU内核b经过一段阈值时间之后,进入深度节能状态,不再执行任何处理请求;
步骤209、判断CPU内核c、CPU内核d的平均软件负荷是否大于或等于预先设置的调整关闭阈值,若是,则执行步骤210,否则,结束流程;
步骤210、恢复CPU内核a和/或CPU内核b的绑定关系。
可替换地,本步骤还可以重新建立CPU内核a和/或CPU内核b的绑定关系。
本实施例中,通过当多线程系统的平均软件负荷小于预先设置的调整启动阈值时,可以选择一个硬件处理单元,使得能够当其他硬件处理单元的处理能力之和大于上述多线程系统的总共软件负荷一个预先设置的安全阈值时,解除该硬件处理单元的绑定关系,避免了由于硬件处理单元在正常运行状态与节能状态之间频繁进行切换所导致的额外的系统负荷,从而降低了系统的能耗。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本发明实施例三提供的多线程系统中软件负荷的调整装置的结构示意图,如图3所示,本实施例的多线程系统中软件负荷的调整装置可以包括选择模块31和调整模块32。其中,选择模块31若多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,调整模块32解除上述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。其中,所述多线程系统包括至少两个硬件处理单元。具体地,对于单核中央处理单元(Central Processing Unit,简称CPU)来说,上述硬件处理单元则为CPU;对于多核CPU来说,上述硬件处理单元则为CPU内核,本发明实施例对此不进行限制。
上述本发明实施例一、二中方法的功能均可以由本发明实施例提供的多线程系统中软件负荷的调整装置实现。
本实施例中,通过选择模块当多线程系统的软件负荷小于预先设置的调整启动阈值时,可以选择一个硬件处理单元,使得调整模块能够解除该硬件处理单元的绑定关系,避免了由于硬件处理单元在正常运行状态与节能状态之间频繁进行切换所导致的额外的系统负荷,从而降低了系统的能耗。
具体地,本实施例中的调整模块32具体可以若其他硬件处理单元的处理能力大于上述多线程系统的软件负荷,解除上述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。进一步地,调整模块32进一步可以若其他硬件处理单元的处理能力大于上述多线程系统的软件负荷一个预先设置的安全阈值,解除上述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
进一步地,本实施例中的调整模块32还可以进一步若其他硬件处理单元的软件负荷大于或等于调整关闭阈值,恢复或重新建立上述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种多线程系统中软件负荷的调整方法,其特征在于,包括:
若所述多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,所述多线程系统包括至少两个硬件处理单元;
解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
2.根据权利要求1所述的方法,其特征在于,所述解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系之后还包括:
若其他硬件处理单元的处理能力大于所述多线程系统的软件负荷,解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
3.根据权利要求2所述的方法,其特征在于,所述若其他硬件处理单元的处理能力大于所述多线程系统的软件负荷,解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系之后还包括:
若其他硬件处理单元的处理能力大于所述多线程系统的软件负荷一个预先设置的安全阈值,解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
4.根据权利要求1所述的方法,其特征在于,所述解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系之后还包括:所述一个硬件处理单元进入深度节能状态。
5.根据权利要求1所述的方法,其特征在于,所述硬件处理单元包括CPU或CPU内核。
6.根据权利要求1所述的方法,其特征在于,所述选择一个硬件处理单元包括:
根据预先设置的选择策略,选择一个编号最大的硬件处理单元;或者
根据预先设置的选择策略,选择一个编号最小的硬件处理单元。
7.根据权利要求1所述的方法,其特征在于,所述多线程系统的软件负荷包括所述多线程系统中每个硬件处理单元的平均软件负荷,或者包括所述多线程系统中每个硬件处理单元的软件负荷之和。
8.根据权利要求1至7任一权利要求所述的方法,其特征在于,所述解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系之后还包括:
若其他硬件处理单元的软件负荷大于或等于调整关闭阈值,恢复或重新建立所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
9.一种多线程系统中软件负荷的调整装置,其特征在于,包括:
选择模块,用于若所述多线程系统的软件负荷小于预先设置的调整启动阈值,选择一个硬件处理单元,所述多线程系统包括至少两个硬件处理单元;
调整模块,用于解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
10.根据权利要求9所述的装置,其特征在于,所述调整模块还用于
在解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系之后,若其他硬件处理单元的处理能力大于所述多线程系统的软件负荷,解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
11.根据权利要求10所述的装置,其特征在于,所述调整模块还用于
若其他硬件处理单元的处理能力大于所述多线程系统的软件负荷,解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系之后,若其他硬件处理单元的处理能力大于所述多线程系统的软件负荷一个预先设置的安全阈值,解除所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
12.根据权利要求9所述的装置,其特征在于,所述硬件处理单元包括CPU或CPU内核。
13.根据权利要求9所述的装置,其特征在于,所述选择模块具体用于
若所述多线程系统的软件负荷小于预先设置的调整启动阈值,根据预先设置的选择策略,选择一个编号最大的硬件处理单元;或者
若所述多线程系统的软件负荷小于预先设置的调整启动阈值,根据预先设置的选择策略,选择一个编号最小的硬件处理单元。
14.根据权利要求10所述的装置,其特征在于,所述多线程系统的软件负荷包括每个硬件处理单元的平均软件负荷,或者包括每个硬件处理单元的软件负荷之和。
15.根据权利要求9至14任一权利要求所述的装置,其特征在于,所述调整模块还用于
若其他硬件处理单元的软件负荷大于或等于调整关闭阈值,恢复或重新建立所述一个硬件处理单元与应用软件线程或操作系统软件线程/中断之间的绑定关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010590694 CN102141938B (zh) | 2010-12-03 | 2010-12-03 | 多线程系统中软件负荷的调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010590694 CN102141938B (zh) | 2010-12-03 | 2010-12-03 | 多线程系统中软件负荷的调整方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102141938A CN102141938A (zh) | 2011-08-03 |
CN102141938B true CN102141938B (zh) | 2013-01-30 |
Family
ID=44409476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010590694 Active CN102141938B (zh) | 2010-12-03 | 2010-12-03 | 多线程系统中软件负荷的调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102141938B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999151B (zh) * | 2012-10-30 | 2016-09-28 | 惠州Tcl移动通信有限公司 | 降低电子设备功耗的方法以及电子设备 |
US20150106601A1 (en) * | 2013-01-10 | 2015-04-16 | Huizhou Tcl Mobile Communication Co., Ltd | Method for Automatically Adapting Application to Suitable Multicore Processing Mode and Mobile Device |
CN109947569B (zh) * | 2019-03-15 | 2021-04-06 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
CN110515834B (zh) * | 2019-07-26 | 2023-11-10 | Oppo广东移动通信有限公司 | 接口测试方法、装置、移动终端及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040059704A1 (en) * | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Self-managing computing system |
US7624257B2 (en) * | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
CN101013388A (zh) * | 2007-01-26 | 2007-08-08 | 浙江大学 | 面向异构多核体系的进程调度方法 |
-
2010
- 2010-12-03 CN CN 201010590694 patent/CN102141938B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102141938A (zh) | 2011-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508716B (zh) | 任务控制装置和任务控制方法 | |
CN102576331B (zh) | 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法 | |
CN102141938B (zh) | 多线程系统中软件负荷的调整方法及装置 | |
CN102630316B (zh) | 并发任务的处理方法及装置 | |
WO2007081660A3 (en) | Method and apparatus for virtual load regions in storage system controllers | |
CN110851246A (zh) | 一种批量任务处理方法、装置、系统及存储介质 | |
US8417918B2 (en) | Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing | |
TW200614026A (en) | Grid computing system, information processing unit, job execution request generation unit, control method, program, and recording medium | |
CN103399856A (zh) | 面向scada系统的爆发式数据缓存处理系统及其方法 | |
CN106776395B (zh) | 一种共享集群的任务调度方法及装置 | |
CN106155803B (zh) | 一种基于信号量的线程池共享方法及系统 | |
CN102662747A (zh) | 一种线程访问临界区的方法、系统和终端设备 | |
CN102279766A (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
CN106325989A (zh) | 任务执行方法及装置 | |
CN104899093A (zh) | 数据处理方法、装置和系统 | |
CN106201900A (zh) | 中断闪存清除程序的方法、控制器以及存储设备 | |
CN101799772A (zh) | 内核调度方法、内核备份方法和多核处理器 | |
JP5195408B2 (ja) | マルチコアシステム | |
CN102426539B (zh) | 一种定时器任务自动处理方法及系统 | |
CN111708618A (zh) | 一种基于Java多线程的处理方法和装置 | |
TW200905567A (en) | Notifying user mode scheduler of blocking events | |
JP2007122527A (ja) | 流量制御方法 | |
EP2687944B1 (en) | Apparatus and method for managing power based on data | |
CN112835692B (zh) | 一种日志消息驱动任务方法、系统、存储介质及设备 | |
CN101673219B (zh) | 多任务处理器及其任务切换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |