CN103425438A - 优化固态硬盘写请求的方法及其固态硬盘 - Google Patents
优化固态硬盘写请求的方法及其固态硬盘 Download PDFInfo
- Publication number
- CN103425438A CN103425438A CN2013102962158A CN201310296215A CN103425438A CN 103425438 A CN103425438 A CN 103425438A CN 2013102962158 A CN2013102962158 A CN 2013102962158A CN 201310296215 A CN201310296215 A CN 201310296215A CN 103425438 A CN103425438 A CN 103425438A
- Authority
- CN
- China
- Prior art keywords
- write request
- solid state
- small circle
- described write
- hard disc
- 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.)
- Granted
Links
- 239000007787 solid Substances 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000001514 detection method Methods 0.000 claims description 16
- 230000001143 conditioned effect Effects 0.000 claims description 10
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 230000002035 prolonged effect Effects 0.000 abstract 1
- 230000003321 amplification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明适用于固态硬盘技术领域,提供了一种优化固态硬盘写请求的方法及其固态硬盘,所述方法包括如下步骤:A、检测固态硬盘小范围的写请求的发生;B、将所述写请求在内存中进行缓存;C、在预设条件达到或者所述写请求结束时,将所述写请求下发。借此,本发明有效的减少固态硬盘写的次数,提高了固态硬盘的寿命。
Description
技术领域
本发明涉及固态硬盘技术领域,尤其涉及一种优化固态硬盘写请求的方法及其固态硬盘。
背景技术
由于固态硬盘使用FTL(Flash translation layer,闪存转换层)提供地址映射表即逻辑地址与物理地址映射关系,固态硬盘擦写次数是有限的。如果能够在许可的条件下,减少写的次数,将能够有效的延长固态硬盘的寿命。
但是,在目前的现有技术中,固态硬盘还没有有效的减少写的次数的技术,特别的对于小范围的写请求写入的次数。
综上可知,现有的固态硬盘结构在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种优化固态硬盘写请求的方法及其固态硬盘,以有效的减少固态硬盘写的次数,提高固态硬盘的寿命。
为了实现本发明的发明目的,本发明提供一种优化固态硬盘写请求的方法,所述方法包括如下步骤:
A、检测固态硬盘小范围的写请求的发生;
B、将所述写请求在内存中进行缓存;
C、在预设条件达到或者所述写请求结束时,将所述写请求下发。
根据所述的方法,在所述步骤A之前包括:
D、设置所述小范围的写请求的写入频率阈值和/或所述写请求写入时间阈值。
根据所述的方法,所述步骤A包括:
A1、检测在同一逻辑块寻址下反复修改的所述小范围的写请求的发生;
所述步骤C包括:
C1、在所述小范围的写请求的写入频率小于预设的频率阈值时,将所述写请求下发;或者
C2、在所述小范围的写请求的写入范围超过一个页的大小时,将所述写请求下发;或者
C3、在所述小范围的写请求的写入时间超过所述写入时间阈值时,将所述写请求下发。
根据所述的方法,在将所述写请求下发前,将所述写请求中可合并的写请求进行合并。
根据上述任一项所述的方法,所述小范围的写请求为所述写请求的逻辑块寻址范围在一个页范围内的写请求。
为了实现本发明的另一发明目的,本发明还提供了一种固态硬盘,包括:
检测模块,用于检测固态硬盘小范围的写请求的发生;
缓存模块,用于将所述写请求在内存中进行缓存;
下发模块,用于在预设条件达到或者所述写请求结束时,将所述写请求下发。
根据所述的固态硬盘,所述固态硬盘还包括:
设置模块,用于设置所述小范围的写请求的写入频率阈值和/或所述写请求写入时间阈值。
根据所述的固态硬盘,所述检测模块检测在同一逻辑块寻址下反复修改的所述小范围的写请求的发生;
所述下发模块包括:
第一下发子模块,用于在所述小范围的写请求的写入频率小于预设的频率阈值时,将所述写请求下发;或者
第二下发子模块,用于在所述小范围的写请求的写入范围超过一个页的大小时,将所述写请求下发;或者
第三下发子模块,用于在所述小范围的写请求的写入时间超过所述写入时间阈值时,将所述写请求下发。
根据所述的固态硬盘,所述下发模块在将所述写请求下发前,将所述写请求中可合并的写请求进行合并。
根据上述任一项所述的固态硬盘,所述小范围的写请求为所述写请求的逻辑块寻址范围在一个页范围内的写请求。
本发明通过检测固态硬盘小范围的写请求的发生;将所述写请求在内存中进行缓存;在预设条件达到或者所述写请求结束时,将所述写请求下发,实现对写请求的优化。优选的,在判断写请求的逻辑寻址块的范围比较小,且有反复修改的趋势时,可以把这些写请求缓存在内容中,直接对内存中的内容进行修改而不下发NAND FLASH(闪存),当判断这种趋势消失、写入时间超时或者LBA变化较大时,则下发这些写请求。例如某个计数已经结束,把最后的结果刷新到NAND FLASH,在预先设置的定时器超时以后,也把数据刷新到磁盘。对于准备下发的小范围的写请求的集合,在其中寻找可以合并的写请求进行合并,以达到page size为益,然后下发。此外,在超时后也进行下发,对于已经缓存的小范围的写请求,也可以进行适当的合并操作,达到优化写请求的目的,由此,本发明减少了固态硬盘的写请求写入次数,延长了固态硬盘的寿命。
附图说明
图1是本发明第一实施例中提供的固态硬盘结构示意图;
图2是本发明第二、三、四实施例中提供的固态硬盘结构示意图;
图3是本发明第五实施例提供的优化固态硬盘写请求的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,在本发明的第一实施例中提供了一种固态硬盘100,包括:
检测模块10,用于检测固态硬盘小范围的写请求的发生;
缓存模块20,用于将所述写请求在内存中进行缓存;
下发模块30,用于在预设条件达到或者所述写请求结束时,将所述写请求下发。
在该实施例中,通过检测模块10检测对固态硬盘100的小范围的写请求,所述小范围的写请求包括所述写请求的逻辑块寻址范围在一个页范围内的写请求。当检测到该类写请求后,缓存模块20先将该写请求在内存中进行缓存,然后下发模块30在所述写请求结束,或者是达到预设的条件时,则将所述写请求下发,写入到该固态硬盘100的存储区域。由此,减少了固态硬盘100的写入次数,特别是对于小范围的写请求的写入,起到了良好的作用。
参见图2,在本发明的第二实施例中,固态硬盘100还包括:
设置模块40,用于设置所述小范围的写请求的写入频率阈值和/或所述写请求写入时间阈值。
在该实施例中,设置模块40预先设置所述小范围的写请求的写入频率阈值,若低于该频率则可以判断所述小范围的写请求结束;或者是预设所述写请求写入时间阈值,若在时间阈值到达后,则可以判断该小范围的写请求结束,可以将这些写请求进行下发。
在本发明的第三实施例中,检测模块10检测在同一逻辑块寻址下反复修改的所述小范围的写请求的发生;
下发模块30包括:
第一下发子模块31,用于在所述小范围的写请求的写入频率小于预设的频率阈值时,将所述写请求下发;或者
第二下发子模块32,用于在所述小范围的写请求的写入范围超过一个页的大小时,将所述写请求下发;或者
第三下发子模块33,用于在所述小范围的写请求的写入时间超过所述写入时间阈值时,将所述写请求下发。
在该实施例中,在同一逻辑块寻址下反复修改的所述小范围的写请求,可以将这些写请求进行缓存。并且根据不同的预设条件的满足,第一下发子模块31、第二下发子模块32或者第三下发子模块33将这些缓存在内存中的写请求下发。优选的,下发模块30在将所述写请求下发前,将所述写请求中可合并的写请求进行合并,如写满一个页的范围内的写请求进行下发,这样可以减少固态硬盘100的写的次数。
在上述多个实施例中,该固态硬盘100的多个模块可以是内置于固态硬盘100的软件单元,硬件单元或软硬件结合单元。
参见图3,在本发明的第四实施例中,提供了一种优化固态硬盘写请求的方法,所述方法包括如下步骤:
步骤S301,检测模块10检测固态硬盘100小范围的写请求的发生;
步骤S302,缓存模块20将所述写请求在内存中进行缓存;
步骤S303,下发模块30在预设条件达到或者所述写请求结束时,将所述写请求下发。
在该实施例中,通过检测小范围的写请求的发生,然后,将这些写请求缓存在内存中,最后由下发模块30在预设条件达到或者所述写请求结束时,将所述写请求下发。将会极大的减少固态硬盘100的写入放大,尤其是比较小的写请求写入固态硬盘100的次数,延长了固态硬盘100的使用寿命。
在本发明的第四实施例中,在所述步骤S301之前包括:
设置模块40设置所述小范围的写请求的写入频率阈值和/或所述写请求写入时间阈值的步骤。
在本发明的第五实施例中,检测模块10检测在同一逻辑块寻址下反复修改的所述小范围的写请求的发生;所述同一逻辑块寻址可以是一个地址范围,该地址范围小于或者等于一个页的寻址范围。
所述步骤S303包括:
第一下发子模块31在所述小范围的写请求的写入频率小于预设的频率阈值时,将所述写请求下发;或者
第二下发子模块32在所述小范围的写请求的写入范围超过一个页的大小时,将所述写请求下发;或者
第三下发子模块33在所述小范围的写请求的写入时间超过所述写入时间阈值时,将所述写请求下发。并且,在将所述写请求下发前,将所述写请求中可合并的写请求进行合并。
在该实施例中,在固态硬盘100的接收IO(Input/Output,输入/输出),请求的过程中,对相关的写请求根据相关的策略进行分析,如果判断写请求的范围比较比较小,根据局部性原理,可以先把相关的写请求缓存,在小范围的写请求结束以后,再一起下发给固态硬盘100,或者判断写请求为比较小,该小的标准为小于page size(页大小)的SIZE,也可以先进行缓存,然后以一个page size为单位下发。对于小于一个Page size的写请求,合并为一个Page size大小的请求,也会有效的减少写入放大。本发明实例可以有效的提高固态硬盘100在小范围内反复修改,或者小范围的顺序写的性能,提高固态硬盘100在特定写应用环境下性能和寿命提升的有效方法。
为达到减少小范围的写请求的,在本发明的一个实施例中提供了一种优化固态硬盘写请求的方法,该方法包括:对于特定LBA(LogicalBlockAddressing,逻辑块寻址)反复修改的小范围的写请求,该小范围的写请求可以通过例如加入需要存储的计数器进行计数。由于保存在磁盘的同一个LBA,而当记录的对象快速变化时,就存在同一个LBA反复修改的请求,而这种请求一般不会太大,主要是计数等场合,因此该类小范围的写请求相关的内容可以在内存中进行缓存。当在判定该局部写特性消失时,如该小范围的写请求的地址超过了同一Pagesize的范围,同时写请求的请求频率小于预先的阈值,均可认为局部写特性已经消失。此后,对写请求进行下发。当然,也可以在写请求超时以后进行下发。优选的,对于连续的可以合并的小请求合并为一个Page size大小再进行下发,未达到Page size大小,超时以后也进行下发。由此,可以有效的对特定的小的写请求进行优化,减少写入放大,延长固态硬盘100寿命。
综上所述,本发明通过检测固态硬盘小范围的写请求的发生;将所述写请求在内存中进行缓存;在预设条件达到或者所述写请求结束时,将所述写请求下发,实现对写请求的优化。优选的,在判断写请求的逻辑寻址块的范围比较小,且有反复修改的趋势时,可以把这些写请求缓存在内容中,直接对内存中的内容进行修改而不下发NAND FLASH(闪存),当判断这种趋势消失、写入时间超时或者LBA变化较大时,则下发这些写请求。例如某个计数已经结束,把最后的结果刷新到NAND FLASH,在预先设置的定时器超时以后,也把数据刷新到磁盘。对于准备下发的小范围的写请求的集合,在其中寻找可以合并的写请求进行合并,以达到page size为益,然后下发。此外,在超时后也进行下发,对于已经缓存的小范围的写请求,也可以进行适当的合并操作,达到优化写请求的目的,由此,本发明减少了固态硬盘的写请求写入次数,延长了固态硬盘的寿命。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种优化固态硬盘写请求的方法,其特征在于,所述方法包括如下步骤:
A、检测固态硬盘小范围的写请求的发生;
B、将所述写请求在内存中进行缓存;
C、在预设条件达到或者所述写请求结束时,将所述写请求下发。
2.根据权利要求1所述的方法,其特征在于,在所述步骤A之前包括:
D、设置所述小范围的写请求的写入频率阈值和/或所述写请求写入时间阈值。
3.根据权利要求2所述的方法,其特征在于,所述步骤A包括:
A1、检测在同一逻辑块寻址下反复修改的所述小范围的写请求的发生;
所述步骤C包括:
C1、在所述小范围的写请求的写入频率小于预设的频率阈值时,将所述写请求下发;或者
C2、在所述小范围的写请求的写入范围超过一个页的大小时,将所述写请求下发;或者
C3、在所述小范围的写请求的写入时间超过所述写入时间阈值时,将所述写请求下发。
4.根据权利要求3所述的方法,其特征在于,在将所述写请求下发前,将所述写请求中可合并的写请求进行合并。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述小范围的写请求为所述写请求的逻辑块寻址范围在一个页范围内的写请求。
6.一种固态硬盘,其特征在于,包括:
检测模块,用于检测固态硬盘小范围的写请求的发生;
缓存模块,用于将所述写请求在内存中进行缓存;
下发模块,用于在预设条件达到或者所述写请求结束时,将所述写请求下发。
7.根据权利要求6所述的固态硬盘,其特征在于,所述固态硬盘还包括:
设置模块,用于设置所述小范围的写请求的写入频率阈值和/或所述写请求写入时间阈值。
8.根据权利要求7所述的固态硬盘,其特征在于,所述检测模块检测在同
一逻辑块寻址下反复修改的所述小范围的写请求的发生;
所述下发模块包括:
第一下发子模块,用于在所述小范围的写请求的写入频率小于预设的频率阈值时,将所述写请求下发;或者
第二下发子模块,用于在所述小范围的写请求的写入范围超过一个页的大小时,将所述写请求下发;或者
第三下发子模块,用于在所述小范围的写请求的写入时间超过所述写入时间阈值时,将所述写请求下发。
9.根据权利要求8所述的固态硬盘,其特征在于,所述下发模块在将所述写请求下发前,将所述写请求中可合并的写请求进行合并。
10.根据权利要求6~9任一项所述的固态硬盘,其特征在于,所述小范围的写请求为所述写请求的逻辑块寻址范围在一个页范围内的写请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310296215.8A CN103425438B (zh) | 2013-07-15 | 2013-07-15 | 优化固态硬盘写请求的方法及其固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310296215.8A CN103425438B (zh) | 2013-07-15 | 2013-07-15 | 优化固态硬盘写请求的方法及其固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425438A true CN103425438A (zh) | 2013-12-04 |
CN103425438B CN103425438B (zh) | 2016-08-10 |
Family
ID=49650253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310296215.8A Expired - Fee Related CN103425438B (zh) | 2013-07-15 | 2013-07-15 | 优化固态硬盘写请求的方法及其固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425438B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238962A (zh) * | 2014-09-16 | 2014-12-24 | 华为技术有限公司 | 向缓存中写入数据的方法及装置 |
CN106886368A (zh) * | 2016-12-30 | 2017-06-23 | 北京同有飞骥科技股份有限公司 | 一种块设备写io整形和多控制器同步系统及同步方法 |
CN107193505A (zh) * | 2017-06-14 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种固态硬盘的读写方法、固态硬盘和数据处理系统 |
CN107832019A (zh) * | 2017-11-24 | 2018-03-23 | 苏州韦科韬信息技术有限公司 | 优化固态硬盘写请求的方法 |
CN108446238A (zh) * | 2017-02-14 | 2018-08-24 | 点序科技股份有限公司 | 快闪存储器以及其管理方法 |
WO2019109941A1 (zh) * | 2017-12-08 | 2019-06-13 | 比亚迪股份有限公司 | 储能系统中储能电池参数存储、读取方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN102087586A (zh) * | 2009-12-02 | 2011-06-08 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
US20110191525A1 (en) * | 2010-02-04 | 2011-08-04 | Phison Electronics Corp. | Flash memory storage device, controller thereof, and data programming method thereof |
US20110296090A1 (en) * | 2007-04-25 | 2011-12-01 | Apple Inc. | Combining Memory Operations |
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
CN103034590A (zh) * | 2011-09-30 | 2013-04-10 | 国际商业机器公司 | 用于固态驱动器的直接存储器寻址的方法与系统 |
-
2013
- 2013-07-15 CN CN201310296215.8A patent/CN103425438B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296090A1 (en) * | 2007-04-25 | 2011-12-01 | Apple Inc. | Combining Memory Operations |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN102087586A (zh) * | 2009-12-02 | 2011-06-08 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
US20110191525A1 (en) * | 2010-02-04 | 2011-08-04 | Phison Electronics Corp. | Flash memory storage device, controller thereof, and data programming method thereof |
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
CN103034590A (zh) * | 2011-09-30 | 2013-04-10 | 国际商业机器公司 | 用于固态驱动器的直接存储器寻址的方法与系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238962A (zh) * | 2014-09-16 | 2014-12-24 | 华为技术有限公司 | 向缓存中写入数据的方法及装置 |
WO2016041401A1 (zh) * | 2014-09-16 | 2016-03-24 | 华为技术有限公司 | 向缓存中写入数据的方法及装置 |
CN104238962B (zh) * | 2014-09-16 | 2018-02-06 | 华为技术有限公司 | 向缓存中写入数据的方法及装置 |
CN106886368A (zh) * | 2016-12-30 | 2017-06-23 | 北京同有飞骥科技股份有限公司 | 一种块设备写io整形和多控制器同步系统及同步方法 |
CN106886368B (zh) * | 2016-12-30 | 2019-08-16 | 北京同有飞骥科技股份有限公司 | 一种块设备写io整形和多控制器同步系统及同步方法 |
CN108446238A (zh) * | 2017-02-14 | 2018-08-24 | 点序科技股份有限公司 | 快闪存储器以及其管理方法 |
CN107193505A (zh) * | 2017-06-14 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种固态硬盘的读写方法、固态硬盘和数据处理系统 |
CN107832019A (zh) * | 2017-11-24 | 2018-03-23 | 苏州韦科韬信息技术有限公司 | 优化固态硬盘写请求的方法 |
WO2019109941A1 (zh) * | 2017-12-08 | 2019-06-13 | 比亚迪股份有限公司 | 储能系统中储能电池参数存储、读取方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103425438B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049397B (zh) | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 | |
CN103425438A (zh) | 优化固态硬盘写请求的方法及其固态硬盘 | |
CN105094686B (zh) | 数据缓存方法、缓存和计算机系统 | |
CN103136121B (zh) | 一种固态盘的缓存管理方法 | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
US20170160989A1 (en) | Solid state disk and method for implementing trim command of the same | |
US10860494B2 (en) | Flushing pages from solid-state storage device | |
CN106569732B (zh) | 数据迁移方法及装置 | |
CN103885728A (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
CN103543955A (zh) | 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘 | |
TW201405309A (zh) | 資料儲存裝置與其操作方法 | |
TWI403897B (zh) | 記憶裝置及其資料管理方法 | |
CN108153682B (zh) | 一种利用闪存内部并行性进行闪存转换层地址映射的方法 | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
He et al. | Locality-aware replacement algorithm in flash memory to optimize cloud computing for smart factory of industry 4.0 | |
CN109783398A (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
CN102768645A (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
US10168926B2 (en) | Method of operating data storage device and method of operating data processing system including same | |
CN106802870B (zh) | 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法 | |
CN106527987A (zh) | 一种不带dram的ssd主控可靠性提升系统及方法 | |
US20240086332A1 (en) | Data processing method and system, device, and medium | |
CN109324979B (zh) | 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 | |
CN103077119A (zh) | 数据处理系统及方法 | |
CN111639037B (zh) | 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘 |
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: 20160810 |