CN112114747A - 一种SSD中提升NAND Flash读稳定性的方法 - Google Patents

一种SSD中提升NAND Flash读稳定性的方法 Download PDF

Info

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
Application number
CN202010893217.5A
Other languages
English (en)
Other versions
CN112114747B (zh
Inventor
刘凯
王璞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN202010893217.5A priority Critical patent/CN112114747B/zh
Publication of CN112114747A publication Critical patent/CN112114747A/zh
Application granted granted Critical
Publication of CN112114747B publication Critical patent/CN112114747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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读稳定性的方法
技术领域
本发明涉及一种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,不执行读刷新。
CN202010893217.5A 2020-08-31 2020-08-31 一种SSD中提升NAND Flash读稳定性的方法 Active CN112114747B (zh)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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