CN102012873B - Nand闪存的缓存系统及缓存方法 - Google Patents
Nand闪存的缓存系统及缓存方法 Download PDFInfo
- Publication number
- CN102012873B CN102012873B CN201010564892A CN201010564892A CN102012873B CN 102012873 B CN102012873 B CN 102012873B CN 201010564892 A CN201010564892 A CN 201010564892A CN 201010564892 A CN201010564892 A CN 201010564892A CN 102012873 B CN102012873 B CN 102012873B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- queue
- page
- page data
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种NAND闪存的缓存系统,包括:两级哈希存储模块101,读写接口模块104,页数据缓存组织模块102和块数据缓存组织模块103,所述页数据缓存组织模块102和块数据缓存组织模块103均连接所述两级哈希存储模块101和读写接口模块104,所述两级哈希存储模块101用于记录存储在缓存中的数据,所述页数据缓存组织模块102用于组织缓存中页数据缓存队列,所述块数据缓存组织模块103用于组织缓存中块数据缓存队列,所述页数据缓存组织模块102和块数据缓存组织模块103通过所述读写接口模块104读写闪存中的数据。本发明增强了闪存缓存系统对文件系统的适应性和可用性。
Description
技术领域
本发明涉及计算机存储技术领域,特别涉及一种NAND闪存的缓存系统及缓存方法。
背景技术
当今,NAND(Not AND)闪存已经成为了移动设备的主要存储介质。它具备随机访问、高吞吐率、低能耗、抗震性强、体积小等等优点。因此,在个人计算机和服务器存储领域,它很可能成为替代磁盘作为二级存储的主要介质。尽管如此,NAND闪存存在三个主要的缺点:(1)它并不可以在原地改写数据;(2)它写数据占用的时间较长,并且在改写数据前需要用相对很长的时间进行数据擦除操作;(3)一个闪存的存储单元的擦除次数有限,因而擦除操作会影响它的使用寿命。这三个主要缺点在实用的NAND闪存存储系统上都需要进行合理的解决。
利用缓存系统可以较好得解决NAND闪存存在的缺点。作为缓存的介质主要是RAM,即随机访问存储器。在缓存系统中,如果需要较大容量的缓存介质,则可以选取SDRAM,而需要小容量而更快速的缓存介质可以选SRAM。无论哪种缓存介质,其储存访问速率都比NAND闪存的存储访问速率快104到105倍。因此,利用缓存系统可以很大程度的提高数据的读写速度。当一些数据被读写多次时,在闪存上的读写时间就可以被节省下来,而闪存上的擦除操作次数也会因此而大大减少。这样整个存储系统的访问速率即可以整体提高。
早期的NAND闪存的缓存系统都是单独基于页数据(2KB~4KB)或者单独基于块数据(128KB~256KB)进行组织处理的。它们都只能适应较少一部分的访问类型,比如只适应随机访问类型或者只能适 应连续访问类型。而NAND闪存储存系统无法将页数据和块数据统一进行组织处理的缓存系统,无法适应在实际中的随机访问和连续访问的混合访问模式,闪存缓存系统对文件系统的适应性和可用性比较弱。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何使NAND闪存储存系统适应在实际中的随机访问和连续访问的混合访问模式,从而扩大NAND闪存储存系统的适用性和可用性。
(二)技术方案
为解决上述技术问题,本发明提供了一种NAND闪存的缓存系统,包括:两级哈希存储模块101,读写接口模块104,页数据缓存组织模块102和块数据缓存组织模块103,所述页数据缓存组织模块102和块数据缓存组织模块103均连接所述两级哈希存储模块101和读写接口模块104,所述两级哈希存储模块101用于记录数据在缓存中的存储位置信息,所述页数据缓存组织模块102用于组织缓存中页数据缓存队列,所述块数据缓存组织模块103用于组织缓存中块数据缓存队列,所述页数据缓存组织模块102和块数据缓存组织模块103通过所述读写接口模块104读写闪存中的数据。
其中,所述两级哈希存储模块101包括:
第一级哈希存储模块,用于记录以块数据为单元的数据在缓存中的存储位置信息;
第二级哈希存储模块,用于记录以页数据为单元的数据在缓存中的存储位置信息。
本发明还提供了一种利用上述NAND闪存的缓存系统的缓存方法,包括以下步骤:
S1:若文件系统要从闪存中读写的数据为页数据,则页数据缓存 模块102通过读写接口模块104从闪存中装入以页为单位的数据到缓存;
S2:若文件系统要从闪存中读写的数据为块数据,则块数据缓存模块103通过读写接口模块104从闪存中装入以块为单位的数据到缓存;
S3:将步骤S1和S2中装入缓存的页数据和块数据的存储位置信息分别记录在所述第二级哈希存储模块和第一级哈希存储模块中。
其中,所述步骤S1中的缓存方式为:
当闪存中的数据被改写时,将该数据所在的脏页数据插入到所述页数据缓存队列的第一部分的最前端,所述页数据缓存队列中其它页数据相对位置不变,整体向队尾移动,所述页数据缓存队列的第一部分只存储脏页数据;
当缓存中的干净数据被改写时,页数据缓存队列中对应的干净页数据转变成为脏数据,转变后的脏页数据被移动到页数据缓存队列第一部分的最前端,其它页数据相对位置不变,整体向队尾移动;
当文件系统从闪存中读取页数据时,该干净页数据插入到页数据缓存队列的第二部分的最前端,其它页数据相对位置不变,整体向队尾移动;
当缓存空间不足时,将页数据缓存队列队尾的页数据替换出缓存。
其中,所述步骤S2中的缓存方式为:
当块数据中的所有页数据都被装入到缓存中时,所述块数据被添加到所述块数据缓存队列中;
若是脏块数据插入到块数据缓存队列中时,该脏块数据被插入到块数据缓存队列的第一部分的最前端,块数据缓存队列中的其它块数据相对位置不变,整体向队尾移动,所述块数据缓存队列的第一部分只存储脏块数据,脏块数据为至少包含一个脏页数据的块数据;
若队列中的干净块数据转变成为脏块数据时,转变后的脏块数据被移动到块数据缓存队列的第一部分的最前端,其它块数据相对位置不变,整体向队尾移动;
若是干净块数据插入到所述块数据缓存队列中时,该干净块数据被插入到所述块数据缓存队列第二部分的最前端,其它块数据相对位置不变,整体向队尾移动;
当缓存空间不足时,将块数据缓存队列队尾的块数据替换出缓存。
其中,所述页数据大小为:2~4KB。
其中,所述块数据大小为:128~256KB。
(三)有益效果
本发明通过在NAND闪存的缓存系统中结合页数据缓存队列和块数据缓存队列的组织模块,是NAND闪存够适应在实际中的随机访问和连续访问的混合访问模式,增强了NAND闪存缓存系统对文件系统的适应性和可用性。
附图说明
图1是本发明实施例的一种NAND闪存的缓存系统结构示意图,也示出了和文件系统及闪存的连接关系;
图2是图1中系统维护的页数据缓存队列组织示意图;
图3是图1中系统维护的块数据缓存队列组织示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明NAND闪存的缓存系统10包括:两级哈希存储模块101,读写接口模块104,页数据缓存组织模块102和块数据缓存组织模块103,页数据缓存组织模块102和块数据缓存组织模块103均连接两级哈希存储模块101和读写接口模块104,两级哈希 存储模块101用于记录数据在缓存中的存储位置信息。两级哈希存储模块101包括:
第一级哈希存储模块,用于记录以块数据为单元的数据,即块数据在缓存中的存储位置信息;
第二级哈希存储模块,用于记录以页数据为单元的数据,即页数据在缓存中的存储位置信息。
文件系统通过该存储位置信息从缓存中获取所需的页数据和块数据。
页数据缓存组织模块102用于组织缓存中页数据缓存队列,页数据大小一般为:2~4KB,块数据缓存组织模块103用于组织缓存中块数据缓存队列,数据大小一般为:128~256KB。
页数据缓存组织模块102和块数据缓存组织模块103通过所述读写接口模块104读写闪存中的数据。读写接口模块104通过闪存转换层与闪存物理单元交互。文件系统要从闪存中读取块数据,则将该块数据的信息记录在第一级哈希存储模块中,块数据缓存组织模块103通过该信息通过读写接口模块104在闪存中读取该块数据并缓存,文件系统再通过两级哈希存储模块101从块数据缓存组织模块103中获取该块数据。文件系统从闪存中读取页数据时和上述方法类似,只是将页数据记录在第二级哈希存储模块中。
利用上述NAND闪存的缓存系统的缓存方法,包括以下步骤:
步骤S1,若文件系统要从闪存中读写的数据为页数据,则页数据缓存模块102通过读写接口模块104从闪存中装入以页为单位的数据到缓存。具体装入到缓存中的页数据缓存队列中,如图2所示,为页数据缓存队列组织示意图。本实施例中,将页数据缓存队列分成两个部分,其中第一个部分全部存储的是脏页数据,第二个部分是干净页数据和脏页数据的混合区域。在缓存系统中被替换的页数据是队列末尾的页数据。当脏数据进入缓存并将要插入到队列中时,它将插入到整个队列的最前端,即队头的位置。当队列中的干净页数据变为脏页数据的时候,它被插入到整个队列的最前端。当干净页数据首次插入到队列中或者被系统读取时,它将被插入到第二部分的最前端。具体方式如下:
当闪存中的数据被改写时,被改写的数据就变成了脏数据,当脏数据以一定大小的页(通常4KB)为单位进行组织时,就形成了缓存系统中控制的脏页数据。将该数据所在的脏页数据插入到所述页数据缓存队列的第一部分的最前端,即队头的位置,页数据缓存队列中其它页数据相对位置不变,整体向队尾移动,页数据缓存队列的第一部分只存储脏页数据。
干净数据是指读入到缓存而未被改动过的数据,当干净数据以一定大小的页(通常4KB)为单位进行组织时,就形成了缓存系统中控制的干净页数据。当缓存中的干净数据被改写时,页数据缓存队列中对应的干净页数据转变成为脏数据,转变后的脏页数据被移动到页数据缓存队列第一部分的最前端,其它页数据相对位置不变,整体向队尾移动。
当文件系统从闪存中读取页数据时,因为数据还未改动,因此是干净页数据,该干净页数据插入到页数据缓存队列的第二部分的最前端,即队列第二部分的第一个位置,其它页数据相对位置不变,整体向队尾移动。
当缓存空间不足时,将页数据缓存队列队尾的页数据替换出缓存。
步骤S2,若文件系统要从闪存中读写的数据为块数据,则块数据缓存模块103通过读写接口模块104从闪存中装入以块为单位的数据到缓存。具体装入到缓存中的块数据缓存队列中,如图3所示,为块数据缓存队列组织示意图。本实施例中,将块数据缓存队列分成两个部分,其中第一个部分全部存储的是具有至少一个脏页数据的脏块数据,第二个部分是干净块数据和脏块数据的混合区域。只有当一个块数据中的所有页数据都在缓存中时(满块数据),才将该块数据加入到块数据队列中。当缓存空间被占满时,一个队尾的块数据将被替换出缓存,在该块数据中的全部页数据都将被替换出缓存。具体方式如下:
当块数据中的所有页数据都被装入到缓存中时,该块数据被添加到块数据缓存队列中。
若是脏块数据插入到块数据缓存队列中时,该脏块数据被插入到块数据缓存队列的第一部分的最前端,块数据缓存队列中的其它块数据相对位置不变,整体向队尾移动,块数据缓存队列的第一部分只存储脏块数据,脏块数据为至少包含一个脏页数据的块数据。
若队列中的干净块数据转变成为脏块数据时,转变后的脏块数据被移动到块数据缓存队列的第一部分的最前端,其它块数据相对位置不变,整体向队尾移动。
若是干净块数据插入到块数据缓存队列中时,该干净块数据被插入到块数据缓存队列第二部分的最前端,其它块数据相对位置不变,整体向队尾移动。
当缓存空间不足时,将块数据缓存队列队尾的块数据替换出缓存。
步骤S3,将步骤S1和S2中装入缓存的页数据和块数据分别记录在第二级哈希存储模块和第一级哈希存储模块中。文件系统根据两级哈希模块中的存储位置信息从缓存中获取所需的页数据和块数据。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (4)
1.一种NAND闪存的缓存系统,其特征在于,包括:两级哈希存储模块(101),读写接口模块(104),页数据缓存组织模块(102)和块数据缓存组织模块(103),所述页数据缓存组织模块(102)和块数据缓存组织模块(103)均连接所述两级哈希存储模块(101)和读写接口模块(104),所述两级哈希存储模块(101)用于记录数据在缓存中的存储位置信息,包括:第一级哈希存储模块,用于记录以块数据为单元的数据在缓存中的存储位置信息;第二级哈希存储模块,用于记录以页数据为单元的数据在缓存中的存储位置信息,所述页数据缓存组织模块(102)用于组织缓存中页数据缓存队列,
将页数据缓存队列分成两个部分,其中第一个部分全部存储的是脏页数据,第二个部分是干净页数据和脏页数据的混合区域,所述页数据缓存模块(102)通过读写接口模块(104)从闪存中装入以页为单位的数据到缓存:
当闪存中的数据被改写时,将该数据所在的脏页数据插入到所述页数据缓存队列的第一部分的最前端,所述页数据缓存队列中其它页数据相对位置不变,整体向队尾移动,所述页数据缓存队列的第一部分只存储脏页数据;
当缓存中的干净数据被改写时,页数据缓存队列中对应的干净页数据转变成为脏数据,转变后的脏页数据被移动到页数据缓存队列第一部分的最前端,其它页数据相对位置不变,整体向队尾移动;
当文件系统从闪存中读取页数据时,该干净页数据插入到页数据缓存队列的第二部分的最前端,其它页数据相对位置不变,整体向队尾移动;
当缓存空间不足时,将页数据缓存队列队尾的页数据替换出缓存;
所述块数据缓存组织模块(103)用于组织缓存中块数据缓存队列, 所述块数据缓存模块(103)通过读写接口模块(104)从闪存中装入以块为单位的数据到缓存:
将块数据缓存队列分成两个部分,其中第一个部分全部存储的是具有至少一个脏页数据的脏块数据,第二个部分是干净块数据和脏块数据的混合区域,当块数据中的所有页数据都被装入到缓存中时,所述块数据被添加到所述块数据缓存队列中:
若是脏块数据插入到块数据缓存队列中时,该脏块数据被插入到块数据缓存队列的第一部分的最前端,块数据缓存队列中的其它块数据相对位置不变,整体向队尾移动,所述块数据缓存队列的第一部分只存储脏块数据,脏块数据为至少包含一个脏页数据的块数据;
若队列中的干净块数据转变成为脏块数据时,转变后的脏块数据被移动到块数据缓存队列的第一部分的最前端,其它块数据相对位置不变,整体向队尾移动;
若是干净块数据插入到所述块数据缓存队列中时,该干净块数据被插入到所述块数据缓存队列第二部分的最前端,其它块数据相对位置不变,整体向队尾移动;
当缓存空间不足时,将块数据缓存队列队尾的块数据替换出缓存。
2.一种利用权利要求1所述NAND闪存的缓存系统的缓存方法,其特征在于,包括以下步骤:
S1:若文件系统要从闪存中读写的数据为页数据,则页数据缓存模块(102)通过读写接口模块(104)从闪存中装入以页为单位的数据到缓存,将页数据缓存队列分成两个部分,其中第一个部分全部存储的是脏页数据,第二个部分是干净页数据和脏页数据的混合区域,具体缓存方式为:
当闪存中的数据被改写时,将该数据所在的脏页数据插入到所述页数据缓存队列的第一部分的最前端,所述页数据缓存队列中其它页 数据相对位置不变,整体向队尾移动,所述页数据缓存队列的第一部分只存储脏页数据;
当缓存中的干净数据被改写时,页数据缓存队列中对应的干净页数据转变成为脏数据,转变后的脏页数据被移动到页数据缓存队列第一部分的最前端,其它页数据相对位置不变,整体向队尾移动;
当文件系统从闪存中读取页数据时,该干净页数据插入到页数据缓存队列的第二部分的最前端,其它页数据相对位置不变,整体向队尾移动;
当缓存空间不足时,将页数据缓存队列队尾的页数据替换出缓存;
S2:若文件系统要从闪存中读写的数据为块数据,则块数据缓存模块(103)通过读写接口模块(104)从闪存中装入以块为单位的数据到缓存,将块数据缓存队列分成两个部分,其中第一个部分全部存储的是具有至少一个脏页数据的脏块数据,第二个部分是干净块数据和脏块数据的混合区域,具体缓存方式为:
当块数据中的所有页数据都被装入到缓存中时,所述块数据被添加到所述块数据缓存队列中;
若是脏块数据插入到块数据缓存队列中时,该脏块数据被插入到块数据缓存队列的第一部分的最前端,块数据缓存队列中的其它块数据相对位置不变,整体向队尾移动,所述块数据缓存队列的第一部分只存储脏块数据,脏块数据为至少包含一个脏页数据的块数据;
若队列中的干净块数据转变成为脏块数据时,转变后的脏块数据被移动到块数据缓存队列的第一部分的最前端,其它块数据相对位置不变,整体向队尾移动;
若是干净块数据插入到所述块数据缓存队列中时,该干净块数据被插入到所述块数据缓存队列第二部分的最前端,其它块数据相对位置不变,整体向队尾移动;
当缓存空间不足时,将块数据缓存队列队尾的块数据替换出缓存;
S3:将步骤S1和S2中装入缓存的页数据和块数据的存储位置信息分别记录在所述第二级哈希存储模块和第一级哈希存储模块中。
3.如权利要求2所述的缓存方法,其特征在于,所述页数据大小为:2~4KB。
4.如权利要求2所述的缓存方法,其特征在于,所述块数据大小为:128~256KB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010564892A CN102012873B (zh) | 2010-11-24 | 2010-11-24 | Nand闪存的缓存系统及缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010564892A CN102012873B (zh) | 2010-11-24 | 2010-11-24 | Nand闪存的缓存系统及缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102012873A CN102012873A (zh) | 2011-04-13 |
CN102012873B true CN102012873B (zh) | 2012-09-05 |
Family
ID=43843048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010564892A Active CN102012873B (zh) | 2010-11-24 | 2010-11-24 | Nand闪存的缓存系统及缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102012873B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156753B (zh) * | 2011-04-29 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
CN102306124A (zh) * | 2011-08-01 | 2012-01-04 | 深圳市文鼎创数据科技有限公司 | Nand Flash芯片硬件驱动层的实现方法 |
CN103514110B (zh) * | 2012-06-20 | 2016-08-24 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN104731722B (zh) * | 2015-04-17 | 2018-08-07 | 吉林大学 | 一种针对缓存页面的页面管理方法及装置 |
CN105068941A (zh) * | 2015-07-31 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种缓存页面替换方法及装置 |
CN105930282B (zh) * | 2016-04-14 | 2018-11-06 | 北京时代民芯科技有限公司 | 一种用于nand flash的数据缓存方法 |
CN106991059B (zh) * | 2017-03-15 | 2019-12-13 | 湖北盛天网络技术股份有限公司 | 对数据源的访问控制方法 |
CN107590287B (zh) * | 2017-09-26 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种文件系统页缓存回写方法、系统、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1932818A (zh) * | 2006-09-20 | 2007-03-21 | 华为技术有限公司 | 数据库系统及管理数据库数据的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032691A1 (en) * | 2000-05-26 | 2002-03-14 | Infolibria, Inc. | High performance efficient subsystem for data object storage |
-
2010
- 2010-11-24 CN CN201010564892A patent/CN102012873B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1932818A (zh) * | 2006-09-20 | 2007-03-21 | 华为技术有限公司 | 数据库系统及管理数据库数据的方法 |
Non-Patent Citations (2)
Title |
---|
Chul-Woong YANG 等.An Efficient Dynamic Hash Index Structure for NAND Flash Memory.《IEICE TRANS. FUNDAMENTALS》.2009,第E92-A卷(第7期),第1716页至第1719页. * |
周大 等.HF_Tree_一种闪存数据库的高更新性能索引结构.《第26届中国数据库学术会议论文集(A辑)》.2009,第68页至第74页. * |
Also Published As
Publication number | Publication date |
---|---|
CN102012873A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012873B (zh) | Nand闪存的缓存系统及缓存方法 | |
US8843691B2 (en) | Prioritized erasure of data blocks in a flash storage device | |
US9311232B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
CN104572478A (zh) | 数据存取方法和数据存取装置 | |
US11354236B2 (en) | Garbage collection method for data storage device | |
CN102043687B (zh) | 实现数据快照的首写拷贝装置及控制方法 | |
CN102043727A (zh) | 恢复固态硬盘映射表的方法及其装置 | |
US20120166709A1 (en) | File system of flash memory | |
TW201517051A (zh) | 具有揮發性及非揮發性記憶體之混合固態記憶體系統 | |
CN101499036A (zh) | 信息存储设备及其控制方法 | |
CN104268095A (zh) | 一种存储器及基于该存储器进行数据读/写操作的方法 | |
CN101727395A (zh) | 闪存设备的管理系统、方法及闪存设备 | |
US9176866B2 (en) | Active recycling for solid state drive | |
KR20130096881A (ko) | 플래시 메모리 장치 | |
CN107608625B (zh) | 一种提升固存储设备读性能的方法 | |
CN102890620A (zh) | 非易失性临时数据处理 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
US20100217918A1 (en) | Data storage device and method for accessing flash memory | |
CN105630700A (zh) | 一种具有二级缓存结构的存储系统及读写方法 | |
SG126863A1 (en) | Recording apparatus | |
US9928177B2 (en) | Managing method for cache memory of solid state drive |
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 |