CN107422995B - 一种固态硬盘写带宽调整方法及装置 - Google Patents
一种固态硬盘写带宽调整方法及装置 Download PDFInfo
- Publication number
- CN107422995B CN107422995B CN201710671741.6A CN201710671741A CN107422995B CN 107422995 B CN107422995 B CN 107422995B CN 201710671741 A CN201710671741 A CN 201710671741A CN 107422995 B CN107422995 B CN 107422995B
- Authority
- CN
- China
- Prior art keywords
- scale factor
- adjusting
- physical blocks
- available physical
- sampling period
- 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
- 239000007787 solid Substances 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000005070 sampling Methods 0.000 claims abstract description 51
- 238000009499 grossing Methods 0.000 claims abstract description 28
- 238000004817 gas chromatography Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
Abstract
本发明公开了一种固态硬盘写带宽调整方法,该方法包括:根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;根据可用物理块个数,实时调整比例因子,比例因子为GC写带宽与总带宽的比值;利用PID控制器,根据前一采样周期的比例因子差值,平滑处理比例因子的误差。通过利用实时的可用物理块个数,调整GC写带宽与总带宽间的比例因子,保证比例因子的准确性;且通过PID控制器,利用前一采样周期的比例因子对比例因子误差进行控制,降低比例因子的波动,从而提高用户写带宽的稳定性。此外,本发明还公开了一种固态硬盘写带宽调整装置,与上述方法有一一对应优点。
Description
技术领域
本发明涉及固态硬盘技术领域,特别涉及一种固态硬盘写带宽调整方法及装置。
背景技术
固态硬盘在生命周期内长时间是处于GC写(Garbage Col lect ion,垃圾回收的数据搬移过程中的写操作)与用户写共同抢占硬盘后端带宽的状态。用户写和GC写两者间的比例值及短时间内的比例波动,直接影响到写带宽波动及GC的搬移效率。
在某一时间段内,GC写带宽与总带宽(GC写带宽与用户写带宽之和)的比例过大或过小会造成用户带宽偏低、GC效率太低等不同的影响。且该比例在短时间内发生跳变,会造成呈现给用户的写带宽波动太大等问题。
目前,调控固态硬盘的写带宽时,有采用比例固定的方式,也有采用比例实时调控方式。但是,现有的方式存在比例因子不准确或者短时间内比例因子波动太大的问题。因此,如何在保证瞬时比例准确的同时,能有效平滑比例的波动,从而呈现给用户稳定的写带宽是本领域亟待解决的问题。
发明内容
本发明的目的是提供一种固态硬盘写带宽调整方法及装置,以解决现有GC写带宽和用户写带宽间瞬时比例不准确且短时间内波动导致的用户写带宽不稳定的问题。
为解决上述技术问题,本发明提供如下技术方案:
一方面,本发明提供一种固态硬盘写带宽调整方法,该方法包括:
根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;
根据所述可用物理块个数,实时调整比例因子,所述比例因子为GC写带宽与总带宽的比值;
利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差。
可选地,所述利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差包括:
利用所述PID控制器,将前一采样周期的目标比例因子与实际比例因子比较,得出所述比例因子差值;
利用所述比例因子差值补偿当前可用物理块个数,平滑当前比例因子差值。
可选地,所述根据所述可用物理块个数,实时调整比例因子包括:
根据所述可用物理块个数,通过可用物理块个数与比例因子间的线性关系,实时调整所述比例因子。
可选地,所述预设采样周期为5ms。
另一方面,本发明还提供了一种固态硬盘写带宽调整装置,该装置包括:
采集模块,用于根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;
调整模块,用于根据所述可用物理块个数,实时调整比例因子,所述比例因子为GC写带宽与总带宽的比值;
平滑处理模块,用于利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差。
可选地,所述平滑处理模块包括:
比较单元,用于利用所述PID控制器,将前一采样周期的目标比例因子与实际比例因子比较,得出所述比例因子差值;
补偿单元,用于利用所述比例因子差值补偿当前可用物理块个数,平滑当前比例因子差值。
可选地,所述调整模块包括:
线性调整单元,用于根据所述可用物理块个数,通过可用物理块个数与比例因子间的线性关系,实时调整所述比例因子。
可选地,所述预设采样周期为5ms。
本发明所提供的固态硬盘写带宽调整方法及装置,通过根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;根据可用物理块个数,实时调整比例因子,比例因子为GC写带宽与总带宽的比值;利用PID控制器,根据前一采样周期的比例因子差值,平滑处理比例因子的误差。本申请利用实时的可用物理块个数,调整GC写带宽与总带宽间的比例因子,保证比例因子的准确性;且通过PID控制器,利用前一采样周期的比例因子对比例因子误差进行控制,降低比例因子的波动,从而提高用户写带宽的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的固态硬盘写带宽调整方法的一种具体实施方式的流程示意图;
图2为本发明实施例提供的可用物理块个数与比例因子的关系示意图;
图3为本发明实施例提供的比例因子平滑控制器示意图;
图4为本发明实施例提供的固态硬盘写带宽调整装置的结构示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的固态硬盘写带宽调整方法的一种具体实施方式的流程示意图,该方法包括以下步骤:
步骤101:根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数。
需要说明,上述预设采样周期的数值应合理设定。如果将采样周期设置过长,则前一次采用后设定的GC写带宽和用户写带宽间的比值不能实时反映整个采样周期内硬盘的使用情况;而如果设置过短,则会耗费CPU资源,进而增加系统负担,影响硬盘性能。故优选地,可以将该预设采样周期设定为5ms。当然,预设采样周期还可以根据需求设定为其它值,在此不作限定。
步骤102:根据可用物理块个数,实时调整比例因子,比例因子为GC写带宽与总带宽的比值。
可以理解,上述总带宽为GC写带宽和用户写带宽之和。通过实时的可用物理块个数,即根据固态硬盘的实时剩余物理空间,来调整比例因子,从而调整GC写和用户写的比例。
固态硬盘系统中,GC写操作和用户写操作的开启关闭都可以根据阈值来操作。具体地,当前系统中剩余的可用物理块个数小于阈值N时,则开启GC写操作;而当前系统中剩余的可用物理块个数小于阈值M时,则停止用户写操作。
比例因子可以某一段时间内GC写带宽和硬盘总带宽的比值,且该比例因子和当前硬盘系统内所剩余可用物理块个数呈反比关系,具体可以参见图2,图2为本发明实施例提供的可用物理块个数与比例因子的关系示意图。
根据比例因子与可用物理块的反比关系,可以实时调整比例因子。故在本发明的一些具体实施方式中,上述根据可用物理块个数,实时调整比例因子的过程可以具体为:根据可用物理块个数,通过可用物理块个数与比例因子间的线性关系,实时调整比例因子。
通过实时可用物理块个数,调整比例因子,从而实现GC写带宽和用户写带宽的比例调节。
例如,假定固态硬盘当前的系统总的写带宽是3GB/s,比例因子的作用时间窗口是10ms,则在该时间窗口内落盘的数据量为3GB/s×10ms=30MB。在特定的采样时间,获取的系统中剩余的可用物理块个数为X;根据图2的反比关系和X,可以获取当前设定的比例因子为a,则在下一个比例因子作用时间窗口内,GC写可以写入的数据量(GC的权重)是30MB×a,用户写可写入的用户数据量(用户权重)为30MB(1-a)。在采样时间间隔窗口内,GC每搬移一定的数据量,GC的权重值就减去对应的数值,同理用户每写入一定数据量,用户的权重就要减去对应的数值。权重如果减为0,则停止后续类型操作,比如GC的权重减为0则在下一次采样之前停止后续GC操作,如果用户写的权重减为0,则在下次采样之前停止后续的用户写操作。
步骤103:利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差。
需要说明,比例因子的作用时间窗口略大于采样时间窗口,从而在比例因子的作用时间窗口的中间即可对比例因子的有效性利用PID控制器进行纠正,达到平滑比例因子的作用。例如,当采样周期为5ms时,比例因子的作用时间窗口可以为10ms。
PID控制器可以用于调节控制系统的偏差,故可以利用PID控制器对前一个采样间隔内的目标比例因子和实际比例因子间的偏差,并将该偏差按照一定比例增益到下一次调节中,以达到偏差控制的目的。
在本发明的一些具体实施方式中,上述利用PID控制器,根据前一采样周期的比例因子差值,平滑处理比例因子的误差的过程可以具体为:利用PID控制器,将前一采样周期的目标比例因子与实际比例因子比较,得出比例因子差值;利用比例因子差值补偿当前可用物理块个数,平滑当前比例因子差值。
参见图3,图3为本发明实施例提供的比例因子平滑控制器示意图。可见,用比例因子补偿值X补偿当前系统剩余的可用物理块个数,从而实现平滑比例因子的作用。而此处的比例因子补偿值X为前一次采样周期内预设比例因子与系统实际运行的比例因子间的误差值。
可以看出,前一次采样周期内比例因子的误差可以在下一次采样周期内及时得到纠正,从而达到平滑比例因子的作用。
本实施例所提供的固态硬盘写带宽调整方法,通过根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;根据可用物理块个数,实时调整比例因子,比例因子为GC写带宽与总带宽的比值;利用PID控制器,根据前一采样周期的比例因子差值,平滑处理比例因子的误差。利用实时的可用物理块个数,调整GC写带宽与总带宽间的比例因子,保证比例因子的准确性;且通过PID控制器,利用前一采样周期的比例因子对比例因子误差进行控制,降低比例因子的波动,从而提高用户写带宽的稳定性。
下面对本发明实施例提供的固态硬盘写带宽调整装置进行介绍,下文描述的固态硬盘写带宽调整装置与上文描述的固态硬盘写带宽调整方法可相互对应参照。
请参考图4,图4为本发明实施例提供的固态硬盘写带宽调整装置的结构示意框图,该装置包括:
采集模块41,用于根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;
调整模块42,用于根据可用物理块个数,实时调整比例因子,比例因子为GC写带宽与总带宽的比值;
平滑处理模块43,用于利用PID控制器,根据前一采样周期的比例因子差值,平滑处理比例因子的误差。
在本发明的一些具体实施方式中,平滑处理模块可以包括:
比较单元,用于利用PID控制器,将前一采样周期的目标比例因子与实际比例因子比较,得出比例因子差值;
补偿单元,用于利用比例因子差值补偿当前可用物理块个数,平滑当前比例因子差值。
在本发明的一些具体实施方式中,调整模块可以包括:
线性调整单元,用于根据可用物理块个数,通过可用物理块个数与比例因子间的线性关系,实时调整比例因子。
在本发明的一些具体实施方式中,预设采样周期为5ms。
本实施例所提供的固态硬盘写带宽调整装置,通过利用实时的可用物理块个数,调整GC写带宽与总带宽间的比例因子,保证比例因子的准确性;且通过PID控制器,利用前一采样周期的比例因子对比例因子误差进行控制,降低比例因子的波动,从而提高用户写带宽的稳定性。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的固态硬盘写带宽调整方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (6)
1.一种固态硬盘写带宽调整方法,其特征在于,包括:
根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;
根据所述可用物理块个数,实时调整比例因子,所述比例因子为GC写带宽与总带宽的比值;
利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差;
其中,所述利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差包括:
利用所述PID控制器,将前一采样周期的目标比例因子与实际比例因子比较,得出所述比例因子差值;
利用所述比例因子差值补偿当前可用物理块个数,平滑当前比例因子差值。
2.如权利要求1所述的固态硬盘写带宽调整方法,其特征在于,所述根据所述可用物理块个数,实时调整比例因子包括:
根据所述可用物理块个数,通过可用物理块个数与比例因子间的线性关系,实时调整所述比例因子。
3.如权利要求1至2任一项所述的固态硬盘写带宽调整方法,其特征在于,所述预设采样周期为5ms。
4.一种固态硬盘写带宽调整装置,其特征在于,包括:
采集模块,用于根据预设采样周期,采集当前固态硬盘内剩余的可用物理块个数;
调整模块,用于根据所述可用物理块个数,实时调整比例因子,所述比例因子为GC写带宽与总带宽的比值;
平滑处理模块,用于利用PID控制器,根据前一采样周期的比例因子差值,平滑处理所述比例因子的误差;
其中,所述平滑处理模块包括:
比较单元,用于利用所述PID控制器,将前一采样周期的目标比例因子与实际比例因子比较,得出所述比例因子差值;
补偿单元,用于利用所述比例因子差值补偿当前可用物理块个数,平滑当前比例因子差值。
5.如权利要求4所述的固态硬盘写带宽调整装置,其特征在于,所述调整模块包括:
线性调整单元,用于根据所述可用物理块个数,通过可用物理块个数与比例因子间的线性关系,实时调整所述比例因子。
6.如权利要求4至5任一项所述的固态硬盘写带宽调整装置,其特征在于,所述预设采样周期为5ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710671741.6A CN107422995B (zh) | 2017-08-08 | 2017-08-08 | 一种固态硬盘写带宽调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710671741.6A CN107422995B (zh) | 2017-08-08 | 2017-08-08 | 一种固态硬盘写带宽调整方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107422995A CN107422995A (zh) | 2017-12-01 |
CN107422995B true CN107422995B (zh) | 2020-06-19 |
Family
ID=60437672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710671741.6A Active CN107422995B (zh) | 2017-08-08 | 2017-08-08 | 一种固态硬盘写带宽调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107422995B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977031B (zh) * | 2017-12-27 | 2021-06-01 | 成都华为技术有限公司 | 固态硬盘垃圾回收的方法和固态硬盘 |
CN109977032A (zh) * | 2017-12-28 | 2019-07-05 | 北京忆恒创源科技有限公司 | 垃圾数据回收控制方法及其装置 |
CN110058794B (zh) * | 2018-01-19 | 2022-11-01 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
CN108984116B (zh) * | 2018-06-14 | 2021-07-20 | 浙江大华存储科技有限公司 | 一种固态硬盘垃圾回收带宽的流控方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360823A (zh) * | 2014-10-28 | 2015-02-18 | 记忆科技(深圳)有限公司 | 动态调整固态硬盘带宽的方法及其固态硬盘 |
CN106528004A (zh) * | 2016-12-14 | 2017-03-22 | 湖南国科微电子股份有限公司 | 提高DRAM less SSD垃圾回收效率的方法、Block及垃圾回收系统 |
CN106802772A (zh) * | 2016-12-30 | 2017-06-06 | 北京联想核芯科技有限公司 | 数据回收的方法、装置及固态硬盘 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291131B2 (en) * | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
-
2017
- 2017-08-08 CN CN201710671741.6A patent/CN107422995B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360823A (zh) * | 2014-10-28 | 2015-02-18 | 记忆科技(深圳)有限公司 | 动态调整固态硬盘带宽的方法及其固态硬盘 |
CN106528004A (zh) * | 2016-12-14 | 2017-03-22 | 湖南国科微电子股份有限公司 | 提高DRAM less SSD垃圾回收效率的方法、Block及垃圾回收系统 |
CN106802772A (zh) * | 2016-12-30 | 2017-06-06 | 北京联想核芯科技有限公司 | 数据回收的方法、装置及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN107422995A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107422995B (zh) | 一种固态硬盘写带宽调整方法及装置 | |
CN109885469B (zh) | 一种扩容方法、预测模型创建方法、装置、设备及介质 | |
RU2636133C2 (ru) | Способ и устройство для отображения прикладного программного обеспечения | |
US6628994B1 (en) | Method to obtain improved performance by automatic adjustment of computer system parameters | |
CN111695791A (zh) | 一种业务指标预测方法及装置 | |
CN106569893B (zh) | 流量控制方法及设备 | |
CN107948090A (zh) | 一种Ceph存储集群卷的带宽控制方法及装置 | |
CN110554945A (zh) | 一种电量控制方法、电子设备及计算机可读存储介质 | |
CN109388550B (zh) | 一种缓存命中率确定方法、装置、设备及可读存储介质 | |
CN115712247A (zh) | 用于制砂系统的控制方法及控制装置、处理器及制砂系统 | |
US8559656B2 (en) | System and method for automatic microphone volume setting | |
CN102624387A (zh) | 一种原子频标的短期稳定度参数优化的方法和装置 | |
US20170308317A1 (en) | Storage management apparatus, storage apparatus management method, and computer-readable recording medium | |
CN104361518A (zh) | 一种数据处理方法及设备 | |
CN108667463A (zh) | 监测数据压缩方法 | |
CN110231772B (zh) | 一种获取过程模型的方法、装置及设备 | |
CN105319434A (zh) | 一种电能表测量电流的方法及装置 | |
CN109445279B (zh) | 参数调整方法及电子设备 | |
CN110830003A (zh) | 一种基于α-β滤波器的滤波方法 | |
CN114356218B (zh) | Flash存储器的数据纠错方法、设备以及介质 | |
CN107678692B (zh) | 一种io流速控制方法及系统 | |
CN109375104A (zh) | 一种应用在网源平台的机组avr模型的在线校核方法 | |
CN111522687B (zh) | 数据处理方法、装置、固态硬盘及计算机可读存储介质 | |
CN114757429A (zh) | 一种pm2.5浓度目标获取方法及装置 | |
KR101725531B1 (ko) | 주파수 엔벌로프 벡터 양자화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200526 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |