CN104699638B - 内存访问方法和内存访问装置 - Google Patents
内存访问方法和内存访问装置 Download PDFInfo
- Publication number
- CN104699638B CN104699638B CN201310654956.9A CN201310654956A CN104699638B CN 104699638 B CN104699638 B CN 104699638B CN 201310654956 A CN201310654956 A CN 201310654956A CN 104699638 B CN104699638 B CN 104699638B
- Authority
- CN
- China
- Prior art keywords
- memory
- frequency
- information
- cpu
- access information
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种内存访问方法和内存访问装置。方法包括:通过确定CPU访问内存的信息,接着,采用第一频率向内存发送访问信息,其中,访问信息为访问内存的信息,第一频率与同一时刻其他CPU发送访问信息的频率不同,实现了对CPU到内存之间共享信道的频分复用,从而实现了CPU在同一时刻对多个内存的访问。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种内存访问方法和内存访问装置。
背景技术
随着计算机科技技术的不断发展,在信息产业的发展过程中,多个CPU可以访问同一个内存。
在现有技术中,通过并行总线的方式实现CPU对内存的访问,该并行总线包括数据总线,命令总线和地址总线。在多个CPU同时访问一个内存或是访问多个内存时,为了避免产生冲突,可以分时的在总线上发送访问信息。
然而,现有技术无法实现多个CPU在同一时刻对同一片内存的访问,其中,该同一片内存为使用同一总线与CPU连接的内存。
发明内容
本发明实施例提供一种内存访问方法和内存访问装置,用以解决多个CPU无法在同一时刻对同一片内存的访问。
第一个方面,本发明实施例提供一种内存访问方法,包括:
确定CPU访问内存的信息;
采用第一频率向所述内存发送访问信息,所述访问信息为访问所述内存的信息,所述第一频率与同一时刻其他CPU发送访问信息的频率不同。
在第一种可能的实现方式中,所述确定CPU访问内存的信息之前,还包括:
所述内存控制器接收所述CPU发送的所述访问信息,所述访问信息携带内存标识和通道标识,所述通道标识为从所述CPU到所述内存控制器之间通道的标识,所述内存标识为所述CPU访问内存的标识;
所述确定CPU访问内存的信息,包括:
所述内存控制器根据所述访问内存的信息,获取内存标识和通道标识;
所述采用第一频率向所述内存发送访问信息,包括:
所述内存控制器根据所述内存标识和所述通道标识,确定发送所述访问信息的所述第一频率;
所述内存控制器采用所述第一频率向所述内存标识所指示的内存发送所述访问信息。
结合第一个方面或是第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述采用第一频率向所述内存发送访问信息,还包括:
所述内存控制器根据所述第一频率,将特征向量段增加在所述访问信息的前段,所述特征向量用以标识所述访问信息访问内存的地址信息。
在第一种可能的实现方式中,所述确定CPU访问内存的信息,包括:
所述CPU确定自身访问内存的信息;
所述采用第一频率向所述内存发送访问信息,包括:
所述CPU采用第一频率向所述内存发送所述访问信息,所述第一频率与同一时刻其他CPU发送访问信息的频率不同。
第二个方面,本发明实施例提供一种内存访问装置,包括:
处理模块,用于确定CPU访问内存的信息;
发送模块,用于采用第一频率向所述内存发送访问信息,所述访问信息为访问所述内存的信息,所述第一频率与同一时刻其他CPU发送访问信息的频率不同。
在第一种可能的实现方式中,还包括:接收模块;
所述接收模块,用于接收所述CPU发送的所述访问信息,所述访问信息携带内存标识和通道标识,所述通道标识为从所述CPU到所述内存控制器之间通道的标识,所述内存标识为所述CPU访问内存的标识;
所述处理模块,还用于根据所述访问内存的信息,获取内存标识和通道标识;根据所述内存标识和所述通道标识,确定发送所述访问信息的所述第一频率;
所述发送模块,具体用于采用所述第一频率向所述内存标识所指示的内存发送所述访问信息。
结合第一个方面或是第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理模块,还用于根据所述第一频率,将特征向量段增加在所述访问信息的前段,所述特征向量用以标识所述访问信息访问内存的地址信息。
本发明实施例提供的内存访问方法和内存访问装置,通过确定CPU访问内存的信息,接着,采用第一频率向内存发送访问信息,其中,访问信息为访问内存的信息,第一频率与其他CPU发送访问信息的频率不同,实现了对CPU到内存之间共享信道的频分复用,从而实现了CPU在同一时刻对多个内存的访问。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种内存访问方法的流程图;
图2为本发明实施例的另一种内存访问方法的流程图;
图3为本发明实施例的一种内存访问方法的结构示意图;
图4为本发明实施例的再一种内存访问方法的流程图;
图5为本发明实施例的一种内存访问装置的结构示意图;
图6为本发明实施例的另一种内存访问装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的一种内存访问方法的流程图。如图1所示,该方法适用于,不同的CPU下挂着相同的内存条,该内存条的个数至少为一个,其中,该方法包括:
步骤101、确定CPU访问内存的信息。
本实施例适用于至少两个适用场景,包括:
第一适用场景,至少一个CPU需要同一时刻访问多个内存时,该内存为内存条中的内存颗粒,本实施例中的多个内存可以为一个内存条中的多个内存颗粒,也可以为多个内存条中的内存颗粒。
第二适用场景,多个CPU在同一时刻访问同一个内存,或者同一时刻访问多个内存时,在本实施例中,该多个内存为设置在一个内存条中的,也可以为设置在多个内存条中。
步骤102、采用第一频率向内存发送访问信息,其中,该访问信息为访问内存的信息,第一频率与同一时刻其他CPU发送访问信息的频率不同。
无论是上述的哪种适用场景,本发明实施例可以在同一时刻采用频分复用(Frequency Division Multiplexing,简称为FDM)的方式在共享信道上发送访问信息,即采用不同频率向内存发送访问信息,从而将用于发送访问信息的共享信道带宽进行划分,获得若干个子频带(或称子信道),接着,在每一个子信道传输1路信号,从而实现在该共享信道上并行的发送访问信息。
对于采用第一频率向内存发送访问信息的实现方式,至少包括以下两种:
第一种实现方式,内存控制器根据访问信息,获取内存标识和通道标识,其中,该访问信息携带CPU访问的内存标识和通道标识,通道标识为访问信息从CPU到内存控制器之间通道的标识,内存标识为CPU访问内存的标识,接着,内存控制器根据内存标识和通道标识,确定发送访问信息的第一频率,然后,内存控制器采用第一频率向内存标识所指示的内存发送访问信息。需要说明的是,可以根据内存标识和通道标识与频率的映射关系,确定发送访问信息的第一频率。
第二种实现方式,CPU确定自身访问内存的信息,接着,CPU采用第一频率向内存发送访问信息,该第一频率与同一时刻其他CPU发送访问信息的频率不同。
在本实施例提供的内存访问方法中,通过确定CPU访问内存的信息,接着,采用第一频率向内存发送访问信息,其中,访问信息为访问内存的信息,第一频率与其他CPU发送访问信息的频率不同,实现了对CPU到内存之间共享信道的频分复用,从而实现了CPU在同一时刻对多个内存的访问。
在上述实施例的基础上,在步骤102之前,还可以包括:
内存控制器根据第一频率,将特征向量段增加在访问信息的前段,该特征向量用以标识访问信息访问内存的地址信息。
具体的,内存控制器可以根据内存标识和通道标识,将特征向量段增加在访问信息的前段,用以标识访问信息访问所述内存的地址信息。
图2为本发明实施例的另一种内存访问方法的流程图。图3为本发明实施例的一种内存访问方法的结构示意图。如图3所示,该结构中包括多个CPU,如CPU1、CPU2、CPU3或CPU4,其中,每个CPU下挂相同的内存条,如f1、f2、f3、f4、f5、f6、f7和f8。如图2所示,该方法包括:
步骤201、内存控制器接收CPU发送的访问信息。
本实施例中,该访问信息携带内存标识和通道标识,该通道标识为访问信息从CPU到内存控制器之间通道的标识,内存标识为CPU访问内存的标识。。
步骤202、内存控制器确定CPU访问内存的信息。
具体的,内存控制器根据该访问信息,获取内存标识和通道标识,其中,内存标识为CPU访问内存的标识,通道标识为CPU与内存控制器之间通道的标识。
步骤203、内存控制器根据内存标识和通道标识,确定发送访问信息的第一频率。
在本实施例中,该频率与内存标识和通道标识对应,也就是说,根据获得的内存标识和通道标识,通过内存标识和通道标识与频率的映射表,确定发送访问信息的频率,进一步的,内存控制器根据多个CPU的内存标识和通道标识,确定发送访问信息的不同频率。
举例来讲,内存控制器可以根据CPU1发送的访问信息和CPU2发送的访问信息,首先,确定CPU1准备访问的内存标识和CPU1与内存控制器之间通道的标识,接着,根据CPU1的内存标识和通道标识,确定内存控制器发送该访问信息的第一频率,同时,内存控制器确定CPU2准备访问的内存标识和CPU2与内存控制器之间通道的标识,然后,根据CPU2的内存标识和通道标识,确定内存控制器发送该访问信息的第二频率,需要说明的是,即使CPU1与CPU2访问的内存相同,但是因为通道标识不同,因此获得第一频率域第二频率是不同的,需要说明的是,本实施例不限制CPU的个数。
步骤204、内存控制器采用第一频率向内存标识所指示的内存发送访问信息。
需要说明的是,在CPU可以分别直接与多个内存进行通信的架构中,当多个CPU同一时刻访问同一个内存或多个内存时,会出冲突现象,即访问数据被多个CPU接收。为了避免冲突的现象,多个CPU之间需要实现缓存一致性功能,即当任一内存中数据被改写时,需要同步到CPU缓存中。
在本实施例中,通过将每个CPU的访问信息加载到一个频率的频点上,从而实现同一时刻通过共享通道传输多个访问信息,从而实现了多CPU并行访问统一内存阵列,提升了总线带宽,增大了共享通道容量。
进一步的,内存可以为树状结构,并同时与多个CPU分别直接通信,其中,多个CPU在同时刻对内存的操作,可以使用上述实施例的方法,在此不再一一赘述。
图4为本发明实施例的再一种内存访问方法的流程图。本实施例方法的适用结构如图3所示,该方法包括:
步骤401、CPU确定自身访问内存的信息。
举例来讲,CPU在准备访问内存前,首先确定自身准备访问内存的标识,以及对应的操作指令,如写入指令、读取指令。
步骤402、CPU采用第一频率向内存发送访问信息。
需要说明的是,该第一频率与同一时刻其他CPU发送访问信息的频率不同。也就是说,每个CPU采用一个频率发送访问信息,从而实现多个CPU在同时刻向至少一个内存发送访问信息。
步骤403、频分多址调度装置将接收的CPU发送的访问信息转发给对应的内存。
在本实施例中,该频分多址调度装置可以设置在每个内存条上,当频分多址调度装置接收到不同CPU采用不同频率发送的访问信息时,可以对该些访问信息进行解析,获得该些访问信息准备访问内存的地址,该内存的地址为该内存条中的内存颗粒的地址。
具体的,频分多址调度装置首先根据接收到的访问信息,获取该访问信息中的命令信息和地址信息,例如,命令信息为写入命令或是读取命令,地址信息为该访问信息访问的内存地址,若该命令信息为写入信息,则该访问信息还包括准备写入的数据信息,接着,频分多址调度装置将访问信息中获得的命令信息、地址信息和写入信息分别存入与CPU对应的队列,如CPU1队列、CPU2队列、CPU3队列和CPU4队列,然后,频分多址调度装置根据先到先出(FIFO)的方式将访问信息转发给该访问信息所指示的内存。
在上述实施例的基础上,若该访问信息包括读取命令,则频分多址调度装置转发该访问信息给该访问信息所指示的内存之后,还包括:
频分多址调度装置接收内存发送的数据,接着,将内存发送的数据调制到不同频段的信号发送到共享内存总线上,该共享内存总线为多个CPU与频分多址调度装置之间的总线,从而实现了在共享内存总线上同时刻多个信号的传输,若有四端口的内存颗粒,就可以做到完全的并行访问。
图5为本发明实施例的一种内存访问装置的结构示意图。如图5所示,该内存访问装置,包括:处理模块51和发送模块52,其中,处理模块51,用于确定CPU访问内存的信息;发送模块52,用于采用第一频率向内存发送访问信息,访问信息为访问内存的信息,第一频率与同一时刻其他CPU发送访问信息的频率不同。
在本实施例中,通过确定CPU访问内存的信息,接着,采用第一频率向内存发送访问信息,其中,访问信息为访问内存的信息,第一频率与其他CPU发送访问信息的频率不同,实现了对CPU到内存之间共享信道的频分复用,从而实现了CPU在同一时刻对多个内存的访问。
图6为本发明实施例的另一种内存访问装置的结构示意图。如图6所示,该内存访问装置,还包括:接收模块53;其中,接收模块53,用于接收CPU发送的访问信息,访问信息携带内存标识和通道标识,通道标识为从CPU到内存控制器之间通道的标识,内存标识为CPU访问内存的标识;
处理模块51,还用于根据访问内存的信息,获取内存标识和通道标识;根据内存标识和通道标识,确定发送访问信息的第一频率;
发送模块53,具体用于采用第一频率向内存标识所指示的内存发送访问信息。
在上述实施例的基础上,处理模块51,还用于根据第一频率,将特征向量段增加在访问信息的前段,特征向量用以标识访问信息访问内存的地址信息。
本实施例实现了对CPU到内存之间共享信道的频分复用,从而实现了CPU在同一时刻对多个内存的访问。
以上所描述的通信端实施例仅仅是示意性的,其中所述作为分离部件说明的模块、单元可以是或者也可以不是物理上分开的,作为模块、单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块、单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (5)
1.一种内存访问方法,其特征在于,包括:
确定CPU访问内存的信息;
采用第一频率向所述内存发送访问信息,所述访问信息为访问所述内存的信息,所述第一频率与同一时刻其他CPU发送访问信息的频率不同;
所述确定CPU访问内存的信息之前,还包括:
内存控制器接收所述CPU发送的所述访问信息,所述访问信息携带内存标识和通道标识,所述通道标识为从所述CPU到所述内存控制器之间通道的标识,所述内存标识为所述CPU访问内存的标识;
所述确定CPU访问内存的信息,包括:
所述内存控制器根据所述访问信息,获取所述内存标识和所述通道标识;
所述采用第一频率向所述内存发送访问信息,包括:
所述内存控制器根据所述内存标识和所述通道标识,确定发送所述访问信息的所述第一频率;
所述内存控制器采用所述第一频率向所述内存标识所指示的内存发送所述访问信息。
2.根据权利要求1所述的方法,其特征在于,所述采用第一频率向所述内存发送访问信息,还包括:
所述内存控制器根据所述第一频率,将特征向量段增加在所述访问信息的前段,所述特征向量用以标识所述访问信息访问内存的地址信息。
3.根据权利要求1所述的方法,其特征在于,所述确定CPU访问内存的信息,包括:
所述CPU确定自身访问内存的信息;
所述采用第一频率向所述内存发送访问信息,包括:
所述CPU采用第一频率向所述内存发送所述访问信息,所述第一频率与同一时刻其他CPU发送访问信息的频率不同。
4.一种内存访问装置,其特征在于,包括:
处理模块,用于确定CPU访问内存的信息;
发送模块,用于采用第一频率向所述内存发送访问信息,所述访问信息为访问所述内存的信息,所述第一频率与同一时刻其他CPU发送访问信息的频率不同;
还包括:接收模块;
所述接收模块,用于接收所述CPU发送的所述访问信息,所述访问信息携带内存标识和通道标识,所述通道标识为从所述CPU到所述内存控制器之间通道的标识,所述内存标识为所述CPU访问内存的标识;
所述处理模块,还用于根据所述访问信息,获取所述内存标识和所述通道标识;根据所述内存标识和所述通道标识,确定发送所述访问信息的所述第一频率;
所述发送模块,具体用于采用所述第一频率向所述内存标识所指示的内存发送所述访问信息。
5.根据权利要求4所述的装置,其特征在于,所述处理模块,还用于根据所述第一频率,将特征向量段增加在所述访问信息的前段,所述特征向量用以标识所述访问信息访问内存的地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310654956.9A CN104699638B (zh) | 2013-12-05 | 2013-12-05 | 内存访问方法和内存访问装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310654956.9A CN104699638B (zh) | 2013-12-05 | 2013-12-05 | 内存访问方法和内存访问装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104699638A CN104699638A (zh) | 2015-06-10 |
CN104699638B true CN104699638B (zh) | 2017-11-17 |
Family
ID=53346785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310654956.9A Active CN104699638B (zh) | 2013-12-05 | 2013-12-05 | 内存访问方法和内存访问装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699638B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936778A (zh) * | 2006-10-27 | 2007-03-28 | 北京中星微电子有限公司 | 切换内存时钟频率的方法和装置以及切换时钟频率的系统 |
CN101213532A (zh) * | 2005-06-30 | 2008-07-02 | 英特尔公司 | 微瓦片存储器接口 |
CN102298561A (zh) * | 2011-08-10 | 2011-12-28 | 北京百度网讯科技有限公司 | 一种对存储设备进行多通道数据处理的方法、系统和装置 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN102681946A (zh) * | 2012-05-11 | 2012-09-19 | 龙芯中科技术有限公司 | 内存访问方法和装置 |
CN103218416A (zh) * | 2013-03-27 | 2013-07-24 | 华为技术有限公司 | 一种数据库加载方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961269B2 (en) * | 2003-06-24 | 2005-11-01 | Micron Technology, Inc. | Memory device having data paths with multiple speeds |
US20050132145A1 (en) * | 2003-12-15 | 2005-06-16 | Finisar Corporation | Contingent processor time division multiple access of memory in a multi-processor system to allow supplemental memory consumer access |
-
2013
- 2013-12-05 CN CN201310654956.9A patent/CN104699638B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101213532A (zh) * | 2005-06-30 | 2008-07-02 | 英特尔公司 | 微瓦片存储器接口 |
CN1936778A (zh) * | 2006-10-27 | 2007-03-28 | 北京中星微电子有限公司 | 切换内存时钟频率的方法和装置以及切换时钟频率的系统 |
CN102298561A (zh) * | 2011-08-10 | 2011-12-28 | 北京百度网讯科技有限公司 | 一种对存储设备进行多通道数据处理的方法、系统和装置 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN102681946A (zh) * | 2012-05-11 | 2012-09-19 | 龙芯中科技术有限公司 | 内存访问方法和装置 |
CN103218416A (zh) * | 2013-03-27 | 2013-07-24 | 华为技术有限公司 | 一种数据库加载方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104699638A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120324160A1 (en) | Method for data access, message receiving parser and system | |
CN114356223B (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
CN107391285A (zh) | 内存共享方法和系统 | |
CN107222357B (zh) | 一种配置网卡的装置及方法 | |
CN108462649B (zh) | 降低onu中拥塞状态下高优先级数据传输时延的方法和装置 | |
CN103714038A (zh) | 一种数据处理方法和装置 | |
CN102388357A (zh) | 访问存储设备的方法及系统 | |
CN106959929B (zh) | 一种多端口访问的存储器及其工作方法 | |
CN106330788B (zh) | 报文分片传输方法和装置 | |
CN110457251B (zh) | 一种多处理器间的数据通信方法及装置 | |
CN108549725A (zh) | 数据库访问控制方法、装置、系统、设备及计算机可读介质 | |
CN105786732B (zh) | 数据访问方法及装置 | |
CN115408108A (zh) | 一种云环境下的i/o卸载方法、设备、系统及存储介质 | |
CN104699638B (zh) | 内存访问方法和内存访问装置 | |
KR20110040827A (ko) | Pci 익스프레스 태그 필드에 의한 정보 전달 방법 | |
CN102929562A (zh) | 基于识别标识的可扩展重排序方法 | |
EP3758264A1 (en) | Data transmission apparatuses, data processing systems and methods, and media | |
CN105939242B (zh) | 实现虚拟系统的方法及装置 | |
CN107656702A (zh) | 加速硬盘读写的方法及其系统、以及电子设备 | |
CN108073541A (zh) | 一种实现网卡多路节点复用的方法及系统 | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
CN110868344B (zh) | 一种仿真mvb的方法、系统、装置和计算机可读介质 | |
CN108717402B (zh) | 用于可重构处理系统的存储器和可重构处理系统 | |
CN106897021A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |