CN105589679B - 用于共享处理器过程上下文的寄存器堆组织 - Google Patents
用于共享处理器过程上下文的寄存器堆组织 Download PDFInfo
- Publication number
- CN105589679B CN105589679B CN201510938098.XA CN201510938098A CN105589679B CN 105589679 B CN105589679 B CN 105589679B CN 201510938098 A CN201510938098 A CN 201510938098A CN 105589679 B CN105589679 B CN 105589679B
- Authority
- CN
- China
- Prior art keywords
- storage units
- coupled
- kernels
- ports
- write
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
- Power Sources (AREA)
Abstract
本发明涉及用于共享处理器过程上下文的寄存器堆组织。具体地,一种寄存器堆组织用于支持来自多个处理器或流水线的多个访问。这种共享寄存器堆被组织用于包括高性能(HP)内核和低功率(LP)内核的多个处理器设备。该共享寄存器堆包括耦合至独立HP和LP写和读端口的独立HP和LP存储单元。
Description
相关申请交叉引用
本发明是申请号为201110461471.9、申请日为2011年12月30日的中国发明专利申请的分案申请。
技术领域
本发明总体上涉及寄存器堆组织,并且特别涉及用于支持来自多个处理器或流水线的多个访问的寄存器堆组织。
背景技术
为了利用单一芯片满足广泛的功率和性能需求,趋向于将两个处理器内核嵌在一起以便在不同的运行情境中提供不同的平衡。所以,当运行情境要改变时,将发生从一个内核到另一个的过程迁移。为了实现从一个处理器内核到另一个的快速过程迁移,可使用共享寄存器堆技术以允许一个处理器内核访问由另一处理器内核写入的所有过程上下文。以此方式,可以在几乎没有等待时间和没有软件成本的情况下实现过程迁移。
但是,因为两个内核以不同的定时和功率分配为目标,共享的寄存器堆很难满足这两个内核的需求。通常,一个内核将被设计用于低功耗并且是非常慢的,而另一个内核将是高性能的并且因此功耗要高得多。由于CMOS电路的性质,很快的电路将使用更多面积并且因此具有更大的功耗;反之,极低功率的电路应当使用最小化的面积,但是其速度非常慢。
还需要一种寄存器堆组织,以用于对于高速内核具有很高性能同时对于低功率内核具有很低功率需求的芯片。
发明内容
因此,本发明涉及用于支持来自多个处理器或流水线的多个访问的寄存器堆组织。
根据本发明的一个实施方式,一种共享寄存器堆,包括:高性能(HP)写端口;低功率(LP)写端口;耦合至HP写端口的HP存储单元;以及耦合至LP写端口的LP存储单元。
根据本发明的另一个实施方式,一种多处理器芯片,包括:高性能(HP)内核;低性能(LP)内核;以及共享寄存器堆,该共享寄存器堆包括:高性能(HP)写端口;低功率(LP)写端口;耦合至HP写端口的HP存储单元;以及耦合至LP写端口的LP存储单元,其中HP写端口耦合至HP内核,以及LP写端口耦合至LP内核。
根据本发明的又一实施方式,一种用于共享寄存器堆的模式转变的方法,包括:在高性能(HP)模式中,向共享寄存器堆中的高速存储单元和低速存储单元进行写入,以及在低功率(LP)模式中,仅向共享寄存器堆中的低功率存储单元进行写入。
通过以下如附图所示的本发明的实施方式的更具体的说明,本发明的上述和其他特征、用途和优点将变得更清楚。
附图说明
图1所示为“一次写二次读”寄存器堆的示例。图1A 所示为普通的非共享寄存器堆。图1B 所示为具有复用写端口的共享寄存器堆。图1C 所示为具有复用写端口的倍增端口共享寄存器堆。
图2所示为根据本发明的实施方式用于异质双核处理器的共享寄存器堆。
图3所示为根据本发明的实施方式寄存器堆状态转变。
具体实施方式
下面将参考附图详细说明本发明的实施方式,以及仅用于图示而不是为了限制本发明,如所附权利要求及其等价物所限定。为了简单清楚,省略了对公知的功能和结构的说明。图是为了图示本发明的示范实施方式的特征,且不是按规定比例画的。
下面是本发明的详细说明,使用附图作为图的参考。在说明每个图时参考了优选实施方式。
共享寄存器堆被设计为允许多个处理器内核、流水线或执行单元访问相同的数据集。一般地,创建共享寄存器堆的方法是通过复用或倍增其端口。
图1所示为一写二读寄存器堆的示例。虽然图1示出了有限的写和读端口,但是寄存器堆通常具有多个写和读端口。
图1A 所示为普通的非共享寄存器堆110。在普通的非共享寄存器堆中,信息使用无区别的写端口111而被存储到存储单元112,并且由多个读端口114通过其对应的复用器113被读取。
图1B 所示为具有复用写端口120的共享寄存器堆。在具有复用写端口的共享寄存器堆中,芯片的低功率(LP)和高性能(HP)部分通过其对应的写端口121将信息存储到存储单元。写端口121向去往共享写端口123的复用器122进行输入,以对共享存储单元124进行写入。共享存储单元124由多个读端口126通过其对应的复用器125读取。
图1C 所示为具有复用写端口130的倍增端口共享寄存器堆。在具有复用写端口的倍增端口共享寄存器堆中,芯片的LP和HP部分通过其对应的写端口131将信息存储到存储单元132。共享的存储单元132由倍增的多个读端口134通过其对应的复用器133读取。倍增的多个读端口134被配置为存在用于芯片的每个LP和LP部分的独立端口。LP读端口134A和134B输出到LP内核,以及HP读端口134C和134D输出到HP内核。
倍增的端口类型允许两个内核并行地进行读/写,但是由于大得多的扇出和多得多的复用器阵列,其代价是显著增加芯片的面积。在应用单个ISA异质多核处理器的情境中,不需要并行访问;因此很少使用这种类型。
复用的写端口被更广泛地使用,因为它比非复用的版本更为简单。对于读端口,仅需要一个扇出以输出到另一内核;对于写端口和地址端口,需要复用器以选择想要的数据/地址源。很明显,存储单元和输出复用器阵列可以在内核之间共享。
然而,共享存储单元和复用器阵列导致几个缺点。高速和低速内核具有不同的定时需求,使得共享单元难以满足二者的定时需求。因为低功率内核需要非常低的功率,因此所需的输出延迟相当大;该延迟无法匹配高速内核需要的输出延迟。反之,如果高速存储单元和复用器阵列被用于满足高速内核的需要,其面积将不得不显著增加。这直接导致大动态功率和泄漏功率,与低功率内核的需求矛盾。
为了解决这个矛盾,可使用的一个方法是倍增端口类型,它针对低功率内核而使用低速复用器,并且针对高速内核而使用高速复用器。然而,此方法仍需使用具有较大扇出的相同高速存储单元。因此,对于低功率内核而言,功耗还是不够好。
为了满足高速内核和低功率内核二者的需求,一种新的寄存器堆结构使用两组存储单元和复用器。低功率存储单元组是高速存储单元的影子(shadow)。
该新颖的寄存器堆组织消除了双核高速/低功率芯片的两种需求之间的差异:高速内核的甚高性能需求以及低功率内核的甚低功率需求。通过使用两组影子寄存器和对这两个组的不同约束,该新颖的寄存器堆组织能满足这两个需求。而且,当低功率内核运行时,仅需要激活寄存器堆的较低功率部分;其余部分可断电,由此进一步降低了功率需求。
图2所示为根据本发明实施方式的用于共享针对异质双核处理器的架构状态的寄存器堆组织的结构。注意,在这个示范实施方式中,对于每个内核存在2个读端口和1个写端口,但也可以是本领域技术人员知道的其他配置。
在寄存器堆组织结构200中,存在两组连接在一起的存储单元221和222(触发器)。在此基础上,还存在与读端口241-244对应的复用器阵列231和232,以及用于写端口211和212的数据输入广播网络。
两个存储单元组包括低功率组222和高速组221。低功率组包括低速低功率触发器,高速组包括高速触发器。对于读端口241-244的对应复用器阵列,高速内核使用具有较大面积和功率的高速阵列232,低功率内核使用具有较长延迟的低功率阵列231。
存在两种工作模式:高性能(HP)模式和低功率(LP)模式。除此之外,当处理器从LP改变为HP模式时存在一类特殊的动作。图3图示了根据本发明的实施方式的模式转变。
在HP模式中,仅高速内核运行,而低功率内核是空闲的。任何来自高速内核的写入被广播到高速存储单元和低功率存储单元二者。因此,两组存储单元在任意时刻将保持相同的值。高速存储单元将其值跨越高速复用器阵列而驱动到高速内核,由此保证了定时。因为低功率内核是空闲的,因此低速复用器阵列的长延迟不是问题。
在LP模式中,仅低功率内核运行,而高速内核是空闲的或功率门控的。如果是功率门控的,则高速存储单元组和对应的复用器阵列也被功率门控,以最大程度降低泄漏功率。来自低功率内核的任何写如仅被写入低功率存储单元。低功率存储单元继而将值跨越低功率复用器阵列而驱动到低功率内核,因此电路切换功率被最小化。
当处理器要从LP模式切换到HP模式时,存在一个特殊动作。在这个时间点,唯一要做的是把数据从低功率存储单元并行地拷贝到高速存储单元。
当处理器要从高速内核切换到低功率内核时,不需任何特殊动作。
虽然已参考优选实施方式具体展示和说明了本发明,但是本领域技术人员将理解,可以对形式和细节做各种其他改变而不脱离本发明的精神和范围。
本发明目前优选的实施方式和及其很多改进已经在一定程度的特定性下被描述。应当理解,该描述是示例性的,本发明由所附权利要求的范围限定。
Claims (14)
1.一种操作多核设备的方法,所述多核设备包括高性能HP内核、低性能LP内核以及共享寄存器堆,所述共享寄存器堆耦合在所述HP内核与所述LP内核之间,并且包括耦合至所述HP内核的HP写端口、耦合至所述LP内核的LP写端口、耦合至所述HP写端口的HP存储单元,以及耦合至所述LP写端口的LP存储单元,所述方法包括:
在LP模式中时操作所述多核设备,使得所述HP内核为空闲,并且来自所述LP内核的所有写操作被存储在所述LP存储单元中;
在HP模式中时操作所述多核设备,使得所述LP内核为空闲,并且来自所述HP内核的所有写操作被存储在所述HP存储单元和所述LP存储单元二者中;以及
操作所述多核设备从所述LP模式切换到所述HP模式,并且使得所述LP存储单元中的存储数据被拷贝到所述HP存储单元中。
2.根据权利要求1所述的方法,其中所述共享寄存器堆包括:
耦合至所述HP存储单元的HP读端口;以及
耦合至所述LP存储单元的LP读端口。
3.根据权利要求2所述的方法,其中所述HP存储单元包括耦合至所述HP写端口的多个HP存储单元,并且其中所述LP存储单元包括耦合至所述LP写端口的多个LP存储单元。
4.根据权利要求3所述的方法,其中所述多核设备还包括:
耦合至所述多个HP存储单元的多个HP复用器;
耦合至所述多个LP存储单元的多个LP复用器;
其中所述HP读端口包括多个HP读端口,每个HP读端口耦合至所述多个HP复用器中的相应HP复用器;以及
其中所述LP读端口包括多个LP读端口,每个LP读端口耦合至所述多个LP复用器中的相应LP复用器。
5.根据权利要求1所述的方法,其中所述HP存储单元和所述LP存储单元均包括多个触发器。
6.一种操作多核设备的装置,所述多核设备包括高性能HP内核、低性能LP内核以及共享寄存器堆,所述共享寄存器堆耦合在所述HP内核与所述LP内核之间,并且包括耦合至所述HP内核的HP写端口、耦合至所述LP内核的LP写端口、耦合至所述HP写端口的HP存储单元,以及耦合至所述LP写端口的LP存储单元,所述装置包括:
用于在LP模式中时操作所述多核设备的模块,使得所述HP内核为空闲,并且来自所述LP内核的所有写操作被存储在所述LP存储单元中;
用于在HP模式中时操作所述多核设备的模块,使得所述LP内核为空闲,并且来自所述HP内核的所有写操作被存储在所述HP存储单元和所述LP存储单元二者中;以及
用于操作所述多核设备从所述LP模式切换到所述HP模式,并且使得所述LP存储单元中的存储数据被拷贝到所述HP存储单元中的模块。
7.根据权利要求6所述的装置,其中所述共享寄存器堆包括:
耦合至所述HP存储单元的HP读端口;以及
耦合至所述LP存储单元的LP读端口。
8.根据权利要求7所述的装置,其中所述HP存储单元包括耦合至所述HP写端口的多个HP存储单元,并且其中所述LP存储单元包括耦合至所述LP写端口的多个LP存储单元。
9.根据权利要求8所述的装置,其中所述多核设备还包括:
耦合至所述多个HP存储单元的多个HP复用器;
耦合至所述多个LP存储单元的多个LP复用器;
其中所述HP读端口包括多个HP读端口,每个HP读端口耦合至所述多个HP复用器中的相应HP复用器;以及
其中所述LP读端口包括多个LP读端口,每个LP读端口耦合至所述多个LP复用器中的相应LP复用器。
10.根据权利要求6所述的装置,其中所述HP存储单元和所述LP存储单元均包括多个触发器。
11.一种多核设备中的共享寄存器堆,耦合在高性能HP内核与低性能LP内核之间,所述共享寄存器堆包括:
耦合至所述HP内核的HP写端口;
耦合至所述LP内核的LP写端口;
耦合至所述HP写端口的HP存储单元;
耦合至所述LP写端口的LP存储单元;
其中在LP模式中时,所述HP内核为空闲,并且来自所述LP内核的所有写操作被存储在所述LP存储单元中;
其中在HP模式中时,所述LP内核为空闲,并且来自所述HP内核的所有写操作被存储在所述HP存储单元和所述LP存储单元二者中;以及
用于当从所述LP模式切换到所述HP模式时,所述LP存储单元中的存储数据被拷贝到所述HP存储单元中的模块。
12.根据权利要求11所述的共享寄存器堆,其中所述共享寄存器堆包括:
耦合至所述HP存储单元的HP读端口;以及
耦合至所述LP存储单元的LP读端口。
13.根据权利要求12所述的共享寄存器堆,其中所述HP存储单元包括耦合至所述HP写端口的多个HP存储单元,并且其中所述LP存储单元包括耦合至所述LP写端口的多个LP存储单元。
14.根据权利要求13所述的共享寄存器堆,还包括:
耦合至所述多个HP存储单元的多个HP复用器;
耦合至所述多个LP存储单元的多个LP复用器;
其中所述HP读端口包括多个HP读端口,每个HP读端口耦合至所述多个HP复用器中的相应HP复用器;以及
其中所述LP读端口包括多个LP读端口,每个LP读端口耦合至所述多个LP复用器中的相应LP复用器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510938098.XA CN105589679B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110461471.9A CN103186502B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
CN201510938098.XA CN105589679B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110461471.9A Division CN103186502B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105589679A CN105589679A (zh) | 2016-05-18 |
CN105589679B true CN105589679B (zh) | 2018-07-20 |
Family
ID=48677673
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110461471.9A Active CN103186502B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
CN201510938098.XA Active CN105589679B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110461471.9A Active CN103186502B (zh) | 2011-12-30 | 2011-12-30 | 用于共享处理器过程上下文的寄存器堆组织 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9015377B2 (zh) |
CN (2) | CN103186502B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10020031B2 (en) * | 2015-05-21 | 2018-07-10 | Arm Limited | Location-based optimization for memory systems |
US10856220B2 (en) | 2015-12-21 | 2020-12-01 | Apple Inc. | Energy-efficient signal processing |
US10423415B2 (en) | 2017-04-01 | 2019-09-24 | Intel Corporation | Hierarchical general register file (GRF) for execution block |
US10248558B2 (en) | 2017-08-29 | 2019-04-02 | Qualcomm Incorporated | Memory leakage power savings |
CN111239910B (zh) * | 2020-03-23 | 2021-02-09 | 北京大学 | 一种光子灯笼型简并模组复用/解复用器及传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101160562A (zh) * | 2005-03-03 | 2008-04-09 | 高通股份有限公司 | 用于异质多管线处理器中的功率减小的方法和设备 |
CN101593097A (zh) * | 2009-05-22 | 2009-12-02 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100060B2 (en) * | 2002-06-26 | 2006-08-29 | Intel Corporation | Techniques for utilization of asymmetric secondary processing resources |
US7340591B1 (en) * | 2004-10-28 | 2008-03-04 | Altera Corporation | Providing parallel operand functions using register file and extra path storage |
CN100419913C (zh) * | 2004-11-03 | 2008-09-17 | 东南大学 | 低位线摆幅的低功耗静态随机存储器 |
US7831850B2 (en) * | 2007-03-29 | 2010-11-09 | Microsoft Corporation | Hybrid operating systems for battery powered computing systems |
US9367462B2 (en) * | 2009-12-29 | 2016-06-14 | Empire Technology Development Llc | Shared memories for energy efficient multi-core processors |
US8751833B2 (en) * | 2010-04-30 | 2014-06-10 | Arm Limited | Data processing system |
-
2011
- 2011-12-30 CN CN201110461471.9A patent/CN103186502B/zh active Active
- 2011-12-30 CN CN201510938098.XA patent/CN105589679B/zh active Active
-
2012
- 2012-12-03 US US13/692,744 patent/US9015377B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101160562A (zh) * | 2005-03-03 | 2008-04-09 | 高通股份有限公司 | 用于异质多管线处理器中的功率减小的方法和设备 |
CN101593097A (zh) * | 2009-05-22 | 2009-12-02 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103186502A (zh) | 2013-07-03 |
CN105589679A (zh) | 2016-05-18 |
CN103186502B (zh) | 2016-08-10 |
US20130173865A1 (en) | 2013-07-04 |
US9015377B2 (en) | 2015-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580038B2 (en) | Quasi-volatile system-level memory | |
CN105589679B (zh) | 用于共享处理器过程上下文的寄存器堆组织 | |
US7782683B2 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
JP5529212B2 (ja) | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ | |
RU2405189C2 (ru) | Расширение блока стековых регистров с помощью теневых регистров | |
US7913000B2 (en) | Stacked semiconductor memory device with compound read buffer | |
JP5384576B2 (ja) | 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 | |
US8949550B2 (en) | Memory-centered communication apparatus in a coarse grained reconfigurable array | |
CN112035381B (zh) | 一种存储系统及存储数据处理方法 | |
US7206925B1 (en) | Backing Register File for processors | |
JP2015164090A (ja) | 複数の独立したシリアルリンクメモリ | |
US20070294515A1 (en) | Register file bit and method for fast context switch | |
CN106168882A (zh) | 管理存储装置的方法及其存储系统 | |
CN1996271B (zh) | 一种数据传输的方法及系统 | |
WO2006051780A1 (ja) | 同時アクセスするバンク数が異なるメモリコントローラに対応した不揮発性メモリ装置 | |
KR20100100395A (ko) | 복수의 프로세서를 포함하는 메모리 시스템 | |
JP2011510408A (ja) | 従属接続メモリ配置 | |
US5923608A (en) | Scalable N-port memory structures | |
KR100245311B1 (ko) | 블록액세스응용에이용되는반도체메모리장치 | |
CN102004626B (zh) | 双口存储器 | |
CN103500075A (zh) | 一种基于新材料的外接的计算机加速设备 | |
US20210208894A1 (en) | Processing-in-memory (pim) device | |
CN101819821A (zh) | 一种固态硬盘动态损耗均衡方法 | |
CN100514362C (zh) | 具有独立输出的交换开关系统及其方法 | |
US20060253659A1 (en) | Method and virtual port register array for implementing shared access to a register array port by multiple sources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |