CN102880556B - 一种实现Nand Flash磨损均衡的方法及其*** - Google Patents
一种实现Nand Flash磨损均衡的方法及其*** Download PDFInfo
- Publication number
- CN102880556B CN102880556B CN201210335273.2A CN201210335273A CN102880556B CN 102880556 B CN102880556 B CN 102880556B CN 201210335273 A CN201210335273 A CN 201210335273A CN 102880556 B CN102880556 B CN 102880556B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- chained list
- erasing times
- cold
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000013500 data storage Methods 0.000 claims abstract description 11
- 238000005299 abrasion Methods 0.000 claims description 11
- 238000000151 deposition Methods 0.000 claims description 9
- 238000004064 recycling Methods 0.000 claims description 5
- 238000011084 recovery Methods 0.000 abstract description 2
- 230000002035 prolonged effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种实现Nand Flash磨损均衡的方法:统计当前Nand Flash中每个Block的擦除次数,并计算出各Block的热度;根据数据存储信息以及热度将各Block分配至EDOL、HSL或CSL中;定时启动冷块处理程序;当NandFlash有数据写入时,从空闲块链表中挑选出擦除次数最少的若干Block,将数据写入这些Block中。本发明还公开了实现上述方法的***,包括:EDOL、HSL、CSL、统计模块、数据写入模块、脏块回收模块、冷块处理模块和分配模块;本发明能够有效地均衡Nand Flash中各Block的擦除次数,提高Nand Flash的使用寿命。
Description
技术领域
本发明属于存储技术领域,具体涉及一种实现Nand Flash磨损均衡的方法及其***。
背景技术
闪存(Flash Memory)是嵌入式***中一种常用的存储介质,它是一种非易失、防震、节能的存储设备。Nand Flash是现在市场上主要的非易失闪存芯片,其特有的结构能提供极高的单元密度,可以达到高存储密度,同时其写入和擦除的速度也较快。
一个闪存通常是由若干个闪存块(block)组成的,每个闪存块又分成若干个物理页(page)。页是写入数据的最小单位,块是擦除数据的最小单位。页内数据不能被反复写入,只有当包含该页的块被擦除后才能重新写入。而每个闪存块的擦除次数是有限制的,一般是在十万次到一百万次之间,只要其中有一个闪存块的擦除次数达到了上限,数据存储就会变得不可靠,会影响到整个闪存的寿命。
为了避免对Nand Flash某一Block的频繁读写造成该快的老化加速,目前最常用的算法是磨损均衡算法。磨损均衡包括两大类算法:
一类是针对数据写入过程中通过控制写入的物理块,动态均衡所有物理块擦除次数的动态磨损均衡算法;动态磨损均衡算法可以确保我们在分配块进行写入时采取较优的策略,实现整体上的负载均衡。可是该方法忽略了冷数据存在,如果有的块上存放着冷数据,那么该块就永远不会被擦除;
另一类是通过调整物理块上存储的数据(经常被擦写的热数据和不经常被擦写的冷数据),静态地均衡所有物理块擦除次数的静态磨损均衡算法,周期性地交换冷数据和热数据,静态磨损均衡算法解决了动态算法忽略冷数据的问题,但是频繁的调整冷热数据无疑会增加***的开销,同时也会带来很多额外的磨损。
发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种实现Nand Flash磨损均衡的方法及其***,能够更好的均衡Nand Flash中各Block的擦除次数,提高Nand Flash的使用寿命。
一种实现Nand Flash磨损均衡的方法:统计Nand Flash中每个Block的擦除次数,并计算出各Block的热度;根据Block的数据存储信息以及热度将各Block分配至以下三个链表中:热数据块链表、冷数据块链表和空闲块链表;定时启动冷块处理程序;
当Nand Flash有数据写入时,以擦除次数少作为优先挑选原则,依次从空闲块链表中挑选出若干个Block,将数据写入这些Block中,并对这些Block重新分配;
当对脏块进行回收时,擦除其所存放的数据,并使其擦除次数加1,进而根据其擦除次数将脏块放入空闲块链表中相应位置;
根据公式R=D/Dmax计算Block的热度;其中,R为Block的热度,D为Block的擦除次数,Dmax为Nand Flash中擦除次数最大的Block的擦除次数。
根据以下标准对各Block进行分配:将存有有用数据且当前热度大于给定阈值的Block分配至热数据块链表中;将存有有用数据且当前热度小于或等于给定阈值的Block分配至冷数据块链表中;将未存有任何数据的Block分配至空闲块链表中且按擦除次数由少到多进行排列。
所述的脏块为Nand Flash中存有无用数据的Block。
所述的有用数据为存储在Nand Flash中未被用户删除且能被读取的数据;所述的无用数据为存储在Nand Flash中已被用户删除且不能被读取的数据。
所述的冷块处理程序为:首先,以擦除次数多作为优先挑选原则,依次从空闲块链表中挑选出n个Block,n为冷数据块链表中Block的个数;然后,将冷数据块链表中各Block上存放的数据对应复制给空闲块链表中挑选出的n个Block;最后,将冷数据块链表中各Block归为脏块并从冷数据块链表中移除,并对空闲块链表中写入数据的这n个Block重新分配。
一种用于实现上述方法的***,包括:
热数据块链表,用于存放存有有用数据且当前热度大于给定阈值的Block;
冷数据块链表,用于存放存有有用数据且当前热度小于或等于给定阈值的Block;
空闲块链表,用于按擦除次数由少到多的次序存放未存有任何数据的Block;
统计模块,用于统计Nand Flash中每个Block的擦除次数,并计算各Block的热度;
数据写入模块,用于当Nand Flash有数据写入时,以擦除次数少作为优先挑选原则,依次从空闲块链表中挑选出若干个Block,并将数据写入这些Block中;
脏块回收模块,用于擦除脏块所存放的数据,并使其擦除次数加1;
冷块处理模块,用于定时启动冷块处理程序:以擦除次数多作为优先挑选原则,依次从空闲块链表中挑选出n个Block,将冷数据块链表中各Block上存放的数据对应复制给空闲块链表中挑选出的n个Block,将冷数据块链表中各Block归为脏块并从冷数据块链表中移除;
分配模块,用于根据Block的数据存储信息以及热度将各Block分配至热数据块链表、冷数据块链表或空闲块链表中;并当Block的数据存储信息发生变化时,对Block进行重新分配。
本发明方法能够有效地均衡Nand Flash中各Block的擦除次数,提高NandFlash的使用寿命;其使用的数据结构以及算法的开销小,且实现简单和方便,不需要排序等冗余操作,节约了CPU资源;本发明***中的链表使用的是静态链表,解决了许多实时操作***不支持动态内存管理的问题。
附图说明
图1为EDOL、HSL和CSL的示意图。
图2为数据写入时Block从EDOL转移至HSL的示意图。
图3为脏块回收时脏块***至EDOL的示意图。
图4为CSL的Block数据复制至EDOL中对应Block的示意图。
图5为本发明***的结构示意图。
图6(a)为采用传统动态磨损均衡方法各Block的擦除次数示意图。
图6(b)为采用传统静态磨损均衡方法各Block的擦除次数示意图。
图6(c)为采用本发明磨损均衡方法各Block的擦除次数示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明方法及***进行详细说明。
一种实现Nand Flash磨损均衡的方法,在开始前我们需要定义ME,用来记录最大块擦除次数,最大块擦除次数为Nand Flash中擦除次数最大的Block的擦除次数;设置冷热度的阈值R以及冷块处理程序的启动频率F;阈值的选取非常重要,若阈值选取过大,则可能导致需要替换的冷块大于空闲块的数量,不能全部替换;若阈值选取过小,会导致冷块得不到及时释放,影响磨损均衡的效果;本实施方式中R为0.18,F为3×10-4Hz。
首先,统计Nand Flash中每个Block的擦除次数,并根据公式R=D/Dmax计算出各Block的热度;其中,R为Block的热度,D为Block的擦除次数,Dmax为最大块擦除次数;
根据数据存储信息以及热度将各Block分配至以下三个链表中:热数据块链表、冷数据块链表和空闲块链表;其中:将存有有用数据且当前热度大于阈值R的Block(热块,HotBlock)分配至热数据块链表中;将存有有用数据且当前热度小于或等于阈值R的Block(冷块,ColdBlock)分配至冷数据块链表中;将未存有任何数据的Block(空闲块,EmptyBlock)分配至空闲块链表中且按擦除次数由少到多进行排列,有用数据为存储在Nand Flash中未被用户删除且能被读取的数据。
如图1所示,我们要维护的3个数据结构:热数据块链表HSL、冷数据块链表CSL、空闲块链表EDOL。HSL和CSL中的Block没有顺序,EDOL中的Block按照擦除次数从少到多的顺序进行排列。
当Nand Flash有数据写入时,以擦除次数少作为优先挑选原则,依次从EDOL中挑选出若干个Block,将数据写入这些Block中,并对这些Block重新分配,即根据热度将这些Block***至HSL或CSL中,图2以***HSL为例。
当对脏块进行回收时,擦除其所存放的数据,并使其擦除次数加1(若该脏块的擦除次数值大于最大块擦除次数ME,则更新ME),进而根据其擦除次数将脏块放入EDOL中相应位置,如图3所示;脏块为Nand Flash中存有无用数据的Block,无用数据为存储在Nand Flash中已被用户删除且不能被读取的数据。
在Nand Flash正常运行过程中,根据启动频率F定时启动冷块处理程序,如图4所示:首先,以擦除次数多作为优先挑选原则,依次从EDOL中挑选出n个Block,n为CSL中Block的个数;然后,将CSL中各Block上存放的数据对应复制给EDOL中挑选出的n个Block;最后,将CSL中各Block归为脏块并从CSL中移除,并对空闲块链表中写入数据的这n个Block重新分配(即根据热度将这些Block***至HSL或CSL中)。
如图5所示,本实施方式对应的***,包括:EDOL、HSL、CSL、统计模块、数据写入模块、脏块回收模块、冷块处理模块和分配模块;其中:
HSL用于存放存有有用数据且当前热度大于给定阈值的Block;
CSL用于存放存有有用数据且当前热度小于或等于给定阈值的Block;
EDOL用于按擦除次数由少到多的次序存放未存有任何数据的Block;
统计模块用于统计Nand Flash中每个Block的擦除次数,并计算各Block的热度;
数据写入模块用于当Nand Flash有数据写入时,以擦除次数少作为优先挑选原则,依次从空闲块链表中挑选出若干个Block,并将数据写入这些Block中;
脏块回收模块用于擦除脏块所存放的数据,并使其擦除次数加1;
冷块处理模块用于定时启动冷块处理程序:以擦除次数多作为优先挑选原则,依次从空闲块链表中挑选出n个Block,将冷数据块链表中各Block上存放的数据对应复制给空闲块链表中挑选出的n个Block,将冷数据块链表中各Block归为脏块并从冷数据块链表中移除;
分配模块用于根据Block的数据存储信息以及热度将各Block分配至热数据块链表、冷数据块链表或空闲块链表中;并当Block的数据存储信息发生变化时,对Block进行重新分配。
统计模块、数据写入模块、脏块回收模块、冷块处理模块和分配模块均通过计算机编程实现。
为了验证本实施方式的实际效果,我们搭建了一个计算机仿真测试平台,其包含一个容量为8MB的闪存仿真模型,指定闪存的物理页大小为4KB,每个Block包含64个物理页,那么总共有32个Block,每个块的可擦除次数设置上限为20万次,初始化时已经放入了4MB的数据。测试的方法为:每次请求对一个逻辑页进行更新操作,直到有任意Block达到了可擦除次数的上限值。
从实验结果可以看出,单纯的动态磨损均衡算法各块的擦除次数起伏比较大,原因就在于其没有考虑到冷数据的存在,如图6(a)所示;单纯静态磨损均衡算法跟动态更新相比,各Block的擦除次数起伏小,但是由于频繁的进行冷块和热块的交换,其消耗的内存等资源比较多,同时也有一些擦除次数源于其不停的交换,如图6(b)所示;本实施方式所采用的动静结合方法跟单纯的静态或动态相比有明显的优势,不仅整体利用率的提升,同时也不存在各Block之间有大的起伏,如图6(c)所示。
Claims (2)
1.一种实现Nand Flash磨损均衡的方法,其特征在于:统计Nand Flash中每个Block的擦除次数,并根据公式R=D/Dmax计算出各Block的热度;其中,R为Block的热度,D为Block的擦除次数,Dmax为Nand Flash中擦除次数最大的Block的擦除次数;
根据Block的数据存储信息以及热度将各Block分配至以下三个链表中:热数据块链表、冷数据块链表和空闲块链表;其中,将存有有用数据且当前热度大于给定阈值的Block分配至热数据块链表中;将存有有用数据且当前热度小于或等于给定阈值的Block分配至冷数据块链表中;将未存有任何数据的Block分配至空闲块链表中且按擦除次数由少到多进行排列;
定时启动冷块处理程序:首先,以擦除次数多作为优先挑选原则,依次从空闲块链表中挑选出n个Block,n为冷数据块链表中Block的个数;然后,将冷数据块链表中各Block上存放的数据对应复制给空闲块链表中挑选出的n个Block;最后,将冷数据块链表中各Block归为脏块并从冷数据块链表中移除,并对空闲块链表中写入数据的这n个Block重新分配;
当Nand Flash有数据写入时,以擦除次数少作为优先挑选原则,依次从空闲块链表中挑选出若干个Block,将数据写入这些Block中,并对这些Block重新分配;
当对脏块进行回收时,擦除其所存放的数据,并使其擦除次数加1,进而根据其擦除次数将脏块放入空闲块链表中相应位置。
2.一种用于实现如权利要求1所述的方法的***,包括:
热数据块链表,用于存放存有有用数据且当前热度大于给定阈值的Block;
冷数据块链表,用于存放存有有用数据且当前热度小于或等于给定阈值的Block;
空闲块链表,用于按擦除次数由少到多的次序存放未存有任何数据的Block;
统计模块,用于统计Nand Flash中每个Block的擦除次数,并计算各Block的热度;
数据写入模块,用于当Nand Flash有数据写入时,以擦除次数少作为优先挑选原则,依次从空闲块链表中挑选出若干个Block,并将数据写入这些Block中;
脏块回收模块,用于擦除脏块所存放的数据,并使其擦除次数加1;
冷块处理模块,用于定时启动冷块处理程序:以擦除次数多作为优先挑选原则,依次从空闲块链表中挑选出n个Block,将冷数据块链表中各Block上存放的数据对应复制给空闲块链表中挑选出的n个Block,将冷数据块链表中各Block归为脏块并从冷数据块链表中移除;
分配模块,用于根据Block的数据存储信息以及热度将各Block分配至热数据块链表、冷数据块链表或空闲块链表中;并当Block的数据存储信息发生变化时,对Block进行重新分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335273.2A CN102880556B (zh) | 2012-09-12 | 2012-09-12 | 一种实现Nand Flash磨损均衡的方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335273.2A CN102880556B (zh) | 2012-09-12 | 2012-09-12 | 一种实现Nand Flash磨损均衡的方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102880556A CN102880556A (zh) | 2013-01-16 |
CN102880556B true CN102880556B (zh) | 2015-05-20 |
Family
ID=47481890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210335273.2A Expired - Fee Related CN102880556B (zh) | 2012-09-12 | 2012-09-12 | 一种实现Nand Flash磨损均衡的方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880556B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218306B (zh) * | 2013-03-29 | 2016-03-30 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
CN104156317A (zh) * | 2014-08-08 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种非易失性闪存的擦写管理方法及*** |
JP6107802B2 (ja) * | 2014-12-15 | 2017-04-05 | コニカミノルタ株式会社 | 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム |
CN105260135A (zh) * | 2015-09-23 | 2016-01-20 | Tcl移动通信科技(宁波)有限公司 | 一种存储空间读写控制方法及*** |
CN106339324B (zh) * | 2016-08-19 | 2019-05-10 | 浪潮(北京)电子信息产业有限公司 | 一种选择垃圾回收块的方法及装置 |
CN107025066A (zh) * | 2016-09-14 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
CN108614663B (zh) * | 2016-12-09 | 2021-05-04 | 北京兆易创新科技股份有限公司 | 基于NAND flash的数据处理方法和装置 |
CN106951187B (zh) * | 2017-03-07 | 2020-01-24 | 记忆科技(深圳)有限公司 | 一种固态存储静态磨损均衡的实现方法 |
CN107239400A (zh) * | 2017-06-09 | 2017-10-10 | 山东超越数控电子有限公司 | 一种NandFlash磨损均衡仿真平台 |
CN107562641A (zh) * | 2017-07-11 | 2018-01-09 | 捷开通讯(深圳)有限公司 | 存储空间的均衡磨损方法、***和装置 |
CN107562381A (zh) * | 2017-08-30 | 2018-01-09 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN108255419A (zh) * | 2017-12-19 | 2018-07-06 | 深圳忆联信息***有限公司 | 一种用于tlc类型ssd的磨损均衡方法及ssd |
CN109947353B (zh) * | 2017-12-20 | 2021-03-09 | 浙江宇视科技有限公司 | 存储管理方法、固态硬盘及可读存储介质 |
CN108182035A (zh) * | 2017-12-28 | 2018-06-19 | 湖南国科微电子股份有限公司 | 一种提高ssd可靠性的方法 |
CN109582224A (zh) * | 2018-11-12 | 2019-04-05 | 哈尔滨工业大学 | 一种基于自恢复效应的NAND Flash存储可靠性优化方法 |
CN109753443B (zh) * | 2019-01-12 | 2021-05-18 | 湖南国科微电子股份有限公司 | 一种数据处理方法、装置及电子设备 |
CN111124305B (zh) * | 2019-12-20 | 2021-08-31 | 浪潮电子信息产业股份有限公司 | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 |
CN111966299A (zh) * | 2020-08-24 | 2020-11-20 | 深圳三地一芯电子有限责任公司 | 一种用于Nand Flash的磨损均衡方法及装置 |
CN112612420A (zh) * | 2020-12-28 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种flash磨损均衡方法、装置、设备及存储介质 |
CN112817880A (zh) * | 2021-03-17 | 2021-05-18 | 深圳市安信达存储技术有限公司 | 一种固态硬盘及其磨损平衡方法和终端设备 |
CN113703670B (zh) * | 2021-07-21 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 一种磨损均衡控制方法、装置、设备及可读存储介质 |
CN113900994B (zh) * | 2021-12-02 | 2022-03-01 | 新华三智能终端有限公司 | 一种文件写入方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667160A (zh) * | 2009-09-27 | 2010-03-10 | 浪潮电子信息产业股份有限公司 | 一种提高Nand Flash芯片使用寿命的方法 |
CN102222046A (zh) * | 2011-06-09 | 2011-10-19 | 清华大学 | 一种磨损均衡方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
CN101339808B (zh) * | 2008-07-28 | 2011-02-09 | 华中科技大学 | 存储块的擦除方法及装置 |
-
2012
- 2012-09-12 CN CN201210335273.2A patent/CN102880556B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667160A (zh) * | 2009-09-27 | 2010-03-10 | 浪潮电子信息产业股份有限公司 | 一种提高Nand Flash芯片使用寿命的方法 |
CN102222046A (zh) * | 2011-06-09 | 2011-10-19 | 清华大学 | 一种磨损均衡方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102880556A (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102880556B (zh) | 一种实现Nand Flash磨损均衡的方法及其*** | |
CN105934748B (zh) | 用于储存***中的损耗均衡的偏置 | |
CN103049397B (zh) | 一种基于相变存储器的固态硬盘内部缓存管理方法及*** | |
CN103559138B (zh) | 固态硬盘及其空间管理方法 | |
CN102081576B (zh) | 一种闪存的磨损平衡方法 | |
Stoica et al. | Improving flash write performance by using update frequency | |
CN109902039A (zh) | 存储器控制器、存储器***及于一存储器中管理数据配置的方法 | |
TWI630540B (zh) | 資料儲存裝置及非揮發式記憶體操作方法 | |
US9086807B2 (en) | Storage apparatus and tier control method | |
US8195971B2 (en) | Solid state disk and method of managing power supply thereof and terminal including the same | |
CN101727295B (zh) | 一种基于虚拟块闪存地址映射的数据写入及读出方法 | |
CN101740110B (zh) | 一种Nand Flash擦除均衡的方法及装置 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
WO2019178845A1 (zh) | 一种存储介质垃圾回收方法、存储介质和程序产品 | |
CN108108128A (zh) | 一种混合ssd的磨损均衡方法及ssd | |
CN104899154B (zh) | 基于嵌入式***混合主存的页面管理方法 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN103064792A (zh) | 数据写入方法及装置 | |
Chen et al. | Heating dispersal for self-healing NAND flash memory | |
CN116737064B (zh) | 一种固态硬盘的数据管理方法和*** | |
CN102999441A (zh) | 一种细粒度内存访问的方法 | |
CN104298615B (zh) | 一种存储器交换分区损耗的均衡方法 | |
CN116364148A (zh) | 一种面向分布式全闪存储***的磨损均衡方法及*** | |
Yong et al. | Design and implementation of virtual stream management for NAND flash-based storage | |
CN101739350B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150520 |