CN112114747A - 一种SSD中提升NAND Flash读稳定性的方法 - Google Patents
一种SSD中提升NAND Flash读稳定性的方法 Download PDFInfo
- Publication number
- CN112114747A CN112114747A CN202010893217.5A CN202010893217A CN112114747A CN 112114747 A CN112114747 A CN 112114747A CN 202010893217 A CN202010893217 A CN 202010893217A CN 112114747 A CN112114747 A CN 112114747A
- Authority
- CN
- China
- Prior art keywords
- refresh
- read
- lun
- timer
- block
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000001960 triggered effect Effects 0.000 claims description 17
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/0629—Configuration or reconfiguration of storage systems
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Dram (AREA)
Abstract
本发明公开一种SSD中提升NAND Flash读稳定性的方法,本方法为每个LUN分配一个定时器,充分利用LUN的并行性,并且将每个LUN的刷新操作均匀分布在Trefresh时间内,避免了集中刷新带来的明显性能下降,同时设计刷新等待功能,减少读性能的波动。另外,引入block read bitmap将刷新操作与SSD正常读取操作结合起来,进一步减少刷新操作的次数,提升整体QoS。
Description
技术领域
本发明涉及一种SSD中提升NAND Flash读稳定性的方法,属于NAND Flash读取技术领域。
背景技术
NAND Flash作为存储介质广泛应用于SSD之中,如今主流SSD使用的NAND Flash多数为3D结构的TLC。NAND Flash尤其是3D TLC存在一种特性:一段较长时间不读取NANDFlash后第一次读取时数据错误位较多,后续的读取错误位数明显减少。这个特性就可能导致第一次读取的数据超过ECC纠错能力或者影响性能。针对这一特性,就需要增加“读刷新”操作来规避。
NAND Flash的“读刷新”操作可能有多种形式,比如pSLC read刷新、page read刷新、refresh command刷新等。然而归根结底都是在读取当前Block之前内部先有一次读取操作。
虽然该特性的前提是一段较长时间不读取,但是由于SSD中的包含成千上万个block,很难将每个block的两次读间隔时间都记录下来,故一般的做法是不停的进行“读刷新”。但是这会对SSD读性能,尤其是QoS产生消极影响。
发明内容
本发明要解决的技术问题是提供一种SSD中提升NAND Flash读稳定性的方法,既降低第一次读取数据的错误位数,又降低读刷新操作对性能产生的影响,从而提升SSD整体读操作的稳定性。
为了解决所述技术问题,本发明采用的技术方案是:一种SSD中提升NAND Flash读稳定性的方法,本方法将读刷新操作平滑分配到固定时间内,同时对每个block的读状态进行记录,通过记录的状态控制读刷新操作。
进一步的,读刷新操作平滑分配到固定时间内的实现方式为:以LUN为单位定义一个定时器TimerLUN,它的触发间隔为Trefresh_step,TimerLUN每次触发都会对当前LUN产生一次读刷新操作。
进一步的,Trefresh_step = Trefresh / MAXblock,其中,Trefresh 表示对一个block的读刷新时间间隔,MAXblock表示1个LUN上block的数量。
进一步的,当TimerLUN被触发时,通过当前LUN排队的NAND Flash read数量判断当前LUN是否处在密集读情况下,如果是,读刷新被暂时中止,并设置一个新的定时器Timerdelay用于当前LUN的刷新等待,刷新等待的时间间隔Tdelay设置为Trefresh_step的一个分数,即Tdelay = Trefresh_step / n,n=2,3…;当Timerdelay被触发时,继续判断当前是否仍处在密集读状态,如果仍然是,继续设置定时器Timerdelay并等待其触发;Timerdelay的设置次数必须小于n-1次,如果当前LUN一直处在密集读状态,那么第n-1次Timerdelay触发时强制执行当前Block读刷新,一旦强制执行了读刷新,记录Timerdelay被设置的次数m,然后在当前LUN不是密集读状态时将Trefresh_step更新为原来的1/m,该值记做Trefresh_step_new,直至完成m次读刷新后将Trefresh_step恢复原值,在完成m次操作之前,刷新等待功能被禁止。
进一步的,在SSD的DRAM中保存一份block read bitmap,其中每个bit对应一个block,SSD运行过程中,如果该block的任何一个page被读取,那么对应的bit置1;TimerLUN触发时对应的bit置0;当TimerLUN被触发时先检查block read bitmap中对应bit是否为0,如果是则执行读刷新;如果不是则bit置0,不执行读刷新。
本发明的有益效果:本发明为每个LUN分配一个定时器,充分利用LUN的并行性,并且将每个LUN的刷新操作均匀分布在Trefresh时间内,避免了集中刷新带来的明显性能下降,同时设计刷新等待功能,减少读性能的波动。另外,引入block read bitmap将刷新操作与SSD正常读取操作结合起来,进一步减少刷新操作的次数,提升整体QoS。
附图说明
图1为定时器初始化的流程图;
图2为读刷新流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种SSD中提升NAND Flash读稳定性的方法。为了详细描述方案,本实施例使用pSLC read作为读刷新的方式进行描述,并且假设对一个block的读刷新时间间隔为Trefresh。假设1个LUN上最大block数量为2048,表示为MAXblock。
首先,以LUN为单位定义一个定时器TimerLUN,它的触发间隔为Trefresh_step,TimerLUN每次触发都会对当前LUN产生一次“读刷新”操作,每次刷新的block依次为block 0,1,2…2046,2047,完成一轮后block重新从0开始递增。
TimerLUN的触发间隔Trefresh_step根据(1)计算:
Trefresh_step = Trefresh / MAXblock (1),
Trefresh_step使LUN的所有读刷新得以均匀的分布在Trefresh中,避免了集中处理的长时间的等待。
由于TimerLUN配置完成后自动执行,然而当前LUN可能正处在密集读情况下,此时频繁执行读刷新会导致SSD读性能波动,所以当TimerLUN被触发时,需要进行针对性的处理,避免影响数据的读取。
密集读可以根据当前LUN排队的NAND Flash read数量判断,定义阈值为RCU(ReadCounts Number)。当TimerLUN被触发时,假如当前LUN正处在密集读状态下,读刷新会被暂时终止,并设置一个新的定时器Timerdelay用于当前LUN的刷新等待,它的时间间隔Tdelay设置为Trefresh_step的一个分数。
Tdelay = Trefresh_step / n (n=2,3…) (2),
当Timerdelay被触发时,继续判断当前是否仍处在密集读状态,如果仍然是,那么会继续设置定时器Timerdelay并等待其触发,但是Timerdelay的设置次数必须小于n-1次。如果当前LUN一直处在密集读状态,那么第n-1次Timerdelay触发时会强制执行当前Block读刷新。一旦强制执行了读刷新,需要记录Timerdelay被设置的次数m,然后在当前LUN不是密集读状态时将Trefresh_step更新为原来的1/m(m分之一)记做Trefresh_step_new,直至完成m次读刷新后将Trefresh_step恢复为公式(1)得到的值。在完成m次操作之前,刷新等待功能会被禁止。
另外,TimerLUN被触发时,即使不在密集读状态,读刷新也不会马上执行。在SSD的DRAM中会保存一份block read bitmap,其中每个bit对应一个block,SSD运行过程中,如果该block的任何一个page被读取,那么对应的bit置1;TimerLUN触发时对应的bit置0。
当TimerLUN被触发时先检查block read bitmap中对应bit是否为0,如果是则执行读刷新;如果不是则bit置0,不执行读刷新。这么做的目的是进一步降低“读刷新”的触发概率,提升QoS。
如图1所示,定时器初始化过程发生在SSD初始化过程中,主要步骤如下:
1.获取SSD所有LUN的数量,以及每个LUN的最大有效Block数量,将当前LUN设置为0,执行步骤2;
2.选中当前LUN并针对这个LUN设置一个定时器,定时器时间间隔为Trefresh_step,设置定时器触发时对应的Block编号为0,执行步骤3;
3.开启当前LUN的“刷新等待功能”,执行步骤4;
4.判断当前LUN是否是最后一个LUN,如果是则结束;如果不是则把当前LUN加一,执行步骤2。
如图2所示,读刷新在SSD工作周期中一直被执行,流程主要步骤如下:
1.等待定时器被触发,触发时执行步骤2;
2.根据定时器得到需要刷新的LUN,并根据上一次配置得到需要刷新的Block,判断当前LUN是否在密集读状态,如果是执行步骤3,如果不是执行步骤7;
3.判断刷新等待功能是否被开启,如果是执行步骤4,如果不是执行步骤7;
4.定义定时器Timerdelay,设置间隔为Tdelay,记录当前设置Timerdelay的次数m,执行步骤5;
5.判断m是否小于n-1,如果是则执行步骤1,如果不是执行步骤6;
6.取消Timerdelay配置,关闭刷新等待功能,执行步骤7;
7.从DRAM中定位并获取对应bit的值,执行步骤8;
8.判断bit值是否为0,如果是则执行步骤9,如果不是则执行步骤10;
9.对当前Block执行刷新操作,执行步骤5;
10.将DRAM中的bit值更新为0,执行步骤11;
11.重新配置定时器触发时间间隔为Trefresh,并且设置触发时对应Block值为当前Block加一,执行步骤12;
12.判断m是否为0,如果是执行步骤13,如果不是执行步骤15;
13.将Trefresh_step修改为Trefresh_step_new,执行步骤14;
14.将m的值更新为m-1,执行步骤16;
15.重新开启当前LUN的刷新等待功能,执行步骤16;
16.判断Block值是否等于当前LUN的最大有效Block数量,如果是,则执行步骤17;如果不是,则执行步骤1;
17.设置Block值为0,执行步骤1。
本实施例所述方法为每个LUN分配一个定时器,充分利用LUN的并行性,并且将每个LUN的刷新操作均匀分布在Trefresh时间内,避免了集中刷新带来的明显性能下降,同时设计刷新等待功能,减少读性能的波动。另外,引入block read bitmap将刷新操作与SSD正常读取操作结合起来,进一步减少刷新操作的次数,提升整体QoS。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改机和替换,属于本发明的保护范围。
Claims (5)
1.一种SSD中提升NAND Flash读稳定性的方法,其特征在于:本方法将读刷新操作平滑分配到固定时间内,同时对每个block的读状态进行记录,通过记录的状态控制读刷新操作。
2.根据权利要求1所述的SSD中提升NAND Flash读稳定性的方法,其特征在于:读刷新操作平滑分配到固定时间内的实现方式为:以LUN为单位定义一个定时器TimerLUN,它的触发间隔为Trefresh_step,TimerLUN每次触发都会对当前LUN产生一次读刷新操作。
3.根据权利要求2所述的SSD中提升NAND Flash读稳定性的方法,其特征在于:Trefresh_step = Trefresh / MAXblock,其中,Trefresh 表示对一个block的读刷新时间间隔,MAXblock表示1个LUN上block的数量。
4.根据权利要求2所述的SSD中提升NAND Flash读稳定性的方法,其特征在于:当TimerLUN被触发时,通过当前LUN排队的NAND Flash read数量判断当前LUN是否处在密集读情况下,如果是,读刷新被暂时中止,并设置一个新的定时器Timerdelay用于当前LUN的刷新等待,刷新等待的时间间隔Tdelay设置为Trefresh_step的一个分数,即Tdelay = Trefresh_step / n,n=2,3…;当Timerdelay被触发时,继续判断当前是否仍处在密集读状态,如果仍然是,继续设置定时器Timerdelay并等待其触发;Timerdelay的设置次数必须小于n-1次,如果当前LUN一直处在密集读状态,那么第n-1次Timerdelay触发时强制执行当前Block读刷新,一旦强制执行了读刷新,记录Timerdelay被设置的次数m,然后在当前LUN不是密集读状态时将Trefresh_step更新为原来的1/m,该值记做Trefresh_step_new,直至完成m次读刷新后将Trefresh_step恢复原值,在完成m次操作之前,刷新等待功能被禁止。
5.根据权利要求2所述的SSD中提升NAND Flash读稳定性的方法,其特征在于:在SSD的DRAM中保存一份block read bitmap,其中每个bit对应一个block,SSD运行过程中,如果该block的任何一个page被读取,那么对应的bit置1;TimerLUN触发时对应的bit置0;当TimerLUN被触发时先检查block read bitmap中对应bit是否为0,如果是则执行读刷新;如果不是则bit置0,不执行读刷新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010893217.5A CN112114747B (zh) | 2020-08-31 | 2020-08-31 | 一种SSD中提升NAND Flash读稳定性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010893217.5A CN112114747B (zh) | 2020-08-31 | 2020-08-31 | 一种SSD中提升NAND Flash读稳定性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112114747A true CN112114747A (zh) | 2020-12-22 |
CN112114747B CN112114747B (zh) | 2024-02-09 |
Family
ID=73804580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010893217.5A Active CN112114747B (zh) | 2020-08-31 | 2020-08-31 | 一种SSD中提升NAND Flash读稳定性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114747B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5122988A (en) * | 1989-09-21 | 1992-06-16 | Schlumberger Tecnologies, Inc. | Data stream smoothing using a FIFO memory |
US5808952A (en) * | 1996-10-28 | 1998-09-15 | Silicon Magic Corporation | Adaptive auto refresh |
US20030072206A1 (en) * | 2001-10-11 | 2003-04-17 | Wenliang Chen | Asynchronous hidden refresh of semiconductor memory |
CN1755834A (zh) * | 2004-08-23 | 2006-04-05 | 恩益禧电子股份有限公司 | 半导体存储装置、测试电路和方法 |
CN1971759A (zh) * | 2006-12-07 | 2007-05-30 | 北京中星微电子有限公司 | 一种随机存储器的刷新方法及装置 |
CN102157191A (zh) * | 2010-02-08 | 2011-08-17 | 精工爱普生株式会社 | 电子机器 |
CN103559142A (zh) * | 2013-11-05 | 2014-02-05 | 中国科学院声学研究所 | 动态随机访问存储器的刷新方法 |
CN103811047A (zh) * | 2014-02-17 | 2014-05-21 | 上海新储集成电路有限公司 | 一种基于分块dram的低功耗刷新方法 |
CN107077882A (zh) * | 2015-05-04 | 2017-08-18 | 华为技术有限公司 | 一种dram刷新方法、装置和系统 |
CN107527648A (zh) * | 2017-09-04 | 2017-12-29 | 珠海市杰理科技股份有限公司 | 存储器的刷新方法和系统 |
US20190043556A1 (en) * | 2018-09-28 | 2019-02-07 | Intel Corporation | Non volatile mass storage device with improved refresh algorithm |
-
2020
- 2020-08-31 CN CN202010893217.5A patent/CN112114747B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5122988A (en) * | 1989-09-21 | 1992-06-16 | Schlumberger Tecnologies, Inc. | Data stream smoothing using a FIFO memory |
US5808952A (en) * | 1996-10-28 | 1998-09-15 | Silicon Magic Corporation | Adaptive auto refresh |
US20030072206A1 (en) * | 2001-10-11 | 2003-04-17 | Wenliang Chen | Asynchronous hidden refresh of semiconductor memory |
CN1755834A (zh) * | 2004-08-23 | 2006-04-05 | 恩益禧电子股份有限公司 | 半导体存储装置、测试电路和方法 |
CN1971759A (zh) * | 2006-12-07 | 2007-05-30 | 北京中星微电子有限公司 | 一种随机存储器的刷新方法及装置 |
CN102157191A (zh) * | 2010-02-08 | 2011-08-17 | 精工爱普生株式会社 | 电子机器 |
CN103559142A (zh) * | 2013-11-05 | 2014-02-05 | 中国科学院声学研究所 | 动态随机访问存储器的刷新方法 |
CN103811047A (zh) * | 2014-02-17 | 2014-05-21 | 上海新储集成电路有限公司 | 一种基于分块dram的低功耗刷新方法 |
CN107077882A (zh) * | 2015-05-04 | 2017-08-18 | 华为技术有限公司 | 一种dram刷新方法、装置和系统 |
CN107527648A (zh) * | 2017-09-04 | 2017-12-29 | 珠海市杰理科技股份有限公司 | 存储器的刷新方法和系统 |
US20190043556A1 (en) * | 2018-09-28 | 2019-02-07 | Intel Corporation | Non volatile mass storage device with improved refresh algorithm |
Non-Patent Citations (1)
Title |
---|
苟军林,赵彦卿,林殷茵: ""一种延长NAND闪存寿命的新策略"", 《半导体检测与设备》, pages 1 - 5 * |
Also Published As
Publication number | Publication date |
---|---|
CN112114747B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
US8683113B2 (en) | Concurrently searching multiple devices of a non-volatile semiconductor memory | |
CN111752487B (zh) | 一种数据恢复方法、装置及固态硬盘 | |
CN111149083A (zh) | 支持低延时操作的ssd架构 | |
US10628081B2 (en) | Managing internal command queues in solid state storage drives | |
JP2019200833A (ja) | メモリアクセス動作のサスペンド/再開 | |
US11630769B2 (en) | Data processing method for controlling write speed of memory device to avoid significant write delay and data storage device utilizing the same | |
EP4012547B1 (en) | Storage method and apparatus for key value (kv) and storage device | |
US10416907B2 (en) | Storage system, storage control apparatus, and method of controlling a storage device | |
US20150220394A1 (en) | Memory system and method of controlling memory system | |
US20180143886A1 (en) | Method for Rebuilding a Mapping Table of a Solid State Disk | |
US11500543B2 (en) | Data storage device and method for memory operation and iterative polling | |
TWI697009B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
CN113467713A (zh) | 数据分离方法及固态硬盘 | |
CN111026678B (zh) | 基于固态硬盘的缓存设计方法、装置及计算机设备 | |
CN112114747A (zh) | 一种SSD中提升NAND Flash读稳定性的方法 | |
CN109324929B (zh) | 一种快照创建方法、装置、设备及可读存储介质 | |
US11789864B2 (en) | Flush method for mapping table of SSD | |
CN115857811A (zh) | 一种数据处理方法、装置、固态硬盘及可读存储介质 | |
JP6423282B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
CN115470052A (zh) | 存储芯片的坏块检测方法、检测装置及存储介质 | |
US10824563B2 (en) | Method for processing data in in-memory database using non-volatile memory and in-memory database | |
CN114047880B (zh) | 多Pass编程的NAND写入功耗优化方法、装置及计算机设备 | |
CN115525581A (zh) | 减小DRAM-less固态硬盘写放大的实现方法和装置 | |
CN113868060A (zh) | 基于固态硬盘的dram时序矫正方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |