CN105677244B - 一种降低tlc闪存的固态硬盘写放大的方法 - Google Patents
一种降低tlc闪存的固态硬盘写放大的方法 Download PDFInfo
- Publication number
- CN105677244B CN105677244B CN201511031253.6A CN201511031253A CN105677244B CN 105677244 B CN105677244 B CN 105677244B CN 201511031253 A CN201511031253 A CN 201511031253A CN 105677244 B CN105677244 B CN 105677244B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- recycled
- word line
- valid data
- 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
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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种降低使用TLC闪存的固态硬盘写放大的方法,其特征在于一个Word Line处于Incomplete状态时,当系统触发对该Word Line所在的数据进行Read操作时或系统需要掉电时,先查询预先建立的待回收数据查询表,查找到合适的存在待回收数据block,将该待回收数据作为填充数据填充到对应的存储区域,完成数据垃圾回收工作,Word Line进入Complete状态,再触发对该Word Line的Read数据操作或系统掉电操作。通过使用待垃圾回收块中的有效数据代替无效数据,推动Word Line进入Complete状态,达到降低写放大,提高系统性能,增加使用寿命的目的。
Description
技术领域
本发明涉及信息存储领域,尤其涉及一种降低TLC闪存的固态硬盘写放大的方法。
背景技术
TLC NAND flash是一种每个存储单元(memory cell)中存储有3个bit的flash类型,其较高的存储密度在固态硬盘及存储器领域有着愈来愈广泛的应用。
在TLC NAND flash每个存储单元的3个bit信息中,分别属于不同的分组,相对于MLC及SLC中page的概念,TLC中的三个数据分组称为sub-page,其中存储低位bit的叫做lowpage,存储中间bit的叫做middle page,存储高位bit的叫做up page。而三个sub-page所属的同一个Word Line(WL)即是相对于MLC及SLC中page的存在。
在TLC的Program写过程中,需要遵循一定的写序列program order,这个programorder根据颗粒的不同而有所差异,但总体来说都需要遵循每个存储单元需要被program 3次,并且3次program并非连续进行。在对TLC颗粒的block进行program操作时,需要将整个block进行依照program order进行program操作,当所写数据量不足以将整个block写满时,需要将后面的WL写dummy数据(无效数据)以将整个block填满,否则会出现较多的bit出错。在写操作时,将未能写满的block称为unclosed Block,将未能写满的WL称为Incomplete状态。使用无效数据写操作的方式推动有效数据所在Word Line进入Complete状态,这种做法会增加SSD内部无效数据的写入,增加写放大,减少SSD使用寿命。
发明内容
针对以上缺陷,本发明目的在于提出了如何降低由于待读出数据所在的WordLine处于非UWL状态,通过填充无效数据引起的写放大问题。
为了实现上述目的,本发明提供了一种降低使用TLC闪存的固态硬盘写放大的方法,其特征在于一个Word Line的完成一个Program操作后,该Word Line处于Incomplete状态时,如果系统触发对该Word Line所在的数据进行Read操作时或系统需要掉电时,先查询预先建立的待回收数据查询表,查找到合适的存在待回收数据block,将该待回收数据作为填充数据填充到当前处于Incomplete状态所在的Word Line对应的存储区域,完成数据垃圾回收工作,同时将处于Incomplete状态的Word Line进入Complete状态,再触发对该WordLine的Read数据操作或系统掉电操作。
所述的降低使用TLC闪存的固态硬盘写放大的方法,其特征在于所述的待回收数据查询表包括待回收block列表,并建立各个待回收block中有效数据地址信息子表;待回收block列表由系统动态更新,实时记录当前存在需垃圾回收的所有block信息;各个待回收block中有效数据地址信息子表详细记录本block中存在的有效数据的地址。
所述的降低使用TLC闪存的固态硬盘写放大的方法,其特征在于选取当前待回收block中有效数据最少的block,当该block中有效数据量不足以满足所需填充数据量时,则继续选取下一个待回收block,直到有足够的有效数据填充到当前处于Incomplete状态所在的Word Line对应的存储区域。
本发明通过使用待垃圾回收块中的有效数据代替无效数据,推动Incomplete的有效数据所在Word Line进入Complete状态,达到降低写放大,提高系统性能,增加使用寿命的目的。
附图说明
图1是一种TLC NAND Flash数据写入序列示意图;
图2是存在Incomplete状态的TLC数据页示意图;
图3是TLC填入无效数据推动数据页进入Complete示意图;
图4是TLC填入搬移的有效数据推动数据页进入Complete示意图;
图5是有效数据被搬移,实现垃圾回收块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是一种TLC NAND Flash数据写入序列示意图;现行TLC NAND Flash的读写特性是:一个Word Line需要Program 3次才进入Complete状态才可读出数据,但block内WordLine的program又有特定的顺序,并不是按顺序同一个Word Line完成3个program后再执行下一个Word Line操作。如Word Line0的3次Program操作,是要在完成Word Line 1的WL11st和WL12nd的2次Program操作完成Word Line 2的WL2 1st的1次Program操作后才执行到Word Line 0的WL0 3rd的Program操作,Word Line 0才完成3次Program操作进入Complete状态,假设刚完成WL0 3rd的Program操作时,出发读操作,该时刻Word Line 1和Word Line 2就处于Incomplete状态。
图2是存在Incomplete状态的TLC数据页示意图;假设TLC NAND Flash的Program执行到某个时刻触发了读操作,该时刻Word Line0、Word Line1、Word Line2和Word Line3处于Complete状态设为Complete Data Word Line,该时刻Word Line4、Word Line5处于Incomplete状态设为Incomplete Data Word Line。在正常使用TLC block时,会造成有效数据完成写入,但是暂时无法读出的情况(Incomplete Word Line),此时如遇到主机端需要对该数据进行访问,则无法直接读出该数据。并且,在此期间若发生异常掉电,再次上电后也会出现完成写入的数据丢失的情况。
图3是TLC填入无效数据推动数据页进入Complete示意图;为了正常读出WordLine4和Word Line5上处于Incomplete状态的数据,常见的方法就是通过填写入无效数据Dummy Data将Word Line4和Word Line5推进到Complete状态,为了实现该目的,就必须至少完成对Word Line6和Word Line7填入无效数据才可实现该目的。人为在该TLC block后填入无效数据Dummy Data,使得之前Incomplete Data所在Word Line进入Complete状态。该方法保护了有效数据,但是带来的问题是增加了SSD在运行期间的无效数据的写入,会增加写放大,减少SSD使用寿命。
图4是TLC填入搬移的有效数据推动数据页进入Complete示意图;图5是有效数据被搬移,实现垃圾回收块示意图。在SSD正常的使用过程中,存在着垃圾回收处理,即随着SSD的使用,系统中会产生越来越多的存在有效数据Valid Data,但是有效数据含量较少的block,这些block中大部分都是无效数据Invalid Data。对于这些block,我们会进行垃圾回收操作,将其中为数不多的有效数据读出再写入到新的block中,使得之前的block内不再有有效数据存在,此时,这些block就可以进行擦除操作,等待重新使用。本发明就是有效的将垃圾回收操作和在需要对TLC有效数据进行填充数据而进入Word Line Complete操作时相结合,同时实现数据的正常读取和垃圾回收的目的。系统在使用过程中建立待回收block列表,并建立各个待回收block中有效数据地址信息子表。同样针对Word Line4和Word Line5上处于Incomplete状态,本发明具体的解决办法是先查找待回收block列表查找到对应存在待回收的block列表,进一步查找到有效数据地址信息子表,根据该信息提取有效数据,将该有效数据替代现有技术中的无效数据写入Word Line6和Word Line7,实现将Word Line4和Word Line5推进到Complete状态。同时待回收的block中的有效数据也实现了数据搬移,待回收的block的数据都可以视为是无效数据,对于该block即可进行擦除操作实现该block的回收。此方案即减少了系统无效数据的写入,又提高了垃圾回收处理的工作效率,可以有效提高SSD的性能,并提高使用寿命。
为了进一步提高垃圾回收的效率,尽快的释放出block资源,总是选取当前待回收block中有效数据最少的block,当该block中有效数据量不足以满足所需填充数据量时,才继续选取下一个待回收block,直到有足够的有效数据填充到当前处于Incomplete状态所在的Word Line对应的存储区域。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种降低使用TLC闪存的固态硬盘写放大的方法,其特征在于一个Word Line的完成一个Program操作后,该Word Line处于Incomplete状态时,当系统触发对该Word Line所在的数据进行Read操作或系统需要掉电时,先查询预先建立的待回收数据查询表,查找到合适的存在待回收数据block,将该待回收数据作为填充数据填充到当前处于Incomplete状态所在的Word Line对应的存储区域,完成数据垃圾回收工作,同时将处于Incomplete状态的Word Line进入Complete状态,再触发对该Word Line的Read数据操作或系统掉电操作。
2.根据权利要求1所述的降低使用TLC闪存的固态硬盘写放大的方法,其特征在于所述的待回收数据查询表包括待回收block列表,并建立各个待回收block中有效数据地址信息子表;待回收block列表由系统动态更新,实时记录当前存在需垃圾回收的所有block信息;各个待回收block中有效数据地址信息子表详细记录本block中存在的有效数据的地址。
3.根据权利要求2所述的降低使用TLC闪存的固态硬盘写放大的方法,其特征在于选取当前待回收block中有效数据最少的block,当该block中有效数据量不足以满足所需填充数据量时,则继续选取下一个待回收block,直到有足够的有效数据填充到当前处于Incomplete状态所在的Word Line对应的存储区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031253.6A CN105677244B (zh) | 2015-12-31 | 2015-12-31 | 一种降低tlc闪存的固态硬盘写放大的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031253.6A CN105677244B (zh) | 2015-12-31 | 2015-12-31 | 一种降低tlc闪存的固态硬盘写放大的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677244A CN105677244A (zh) | 2016-06-15 |
CN105677244B true CN105677244B (zh) | 2019-04-09 |
Family
ID=56298461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511031253.6A Active CN105677244B (zh) | 2015-12-31 | 2015-12-31 | 一种降低tlc闪存的固态硬盘写放大的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677244B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132890B (zh) * | 2017-12-20 | 2021-08-03 | 北京兆易创新科技股份有限公司 | 存储芯片的垃圾回收方法、装置、设备及存储介质 |
CN108874309B (zh) * | 2018-05-25 | 2021-07-23 | 新华三技术有限公司 | 一种管理固态硬盘中物理块的方法和装置 |
CN109032519A (zh) * | 2018-07-24 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法及存储设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768644A (zh) * | 2011-05-06 | 2012-11-07 | 创惟科技股份有限公司 | 闪存系统及其闪存无效数据页信息的管理方法与回收方法 |
CN103714856A (zh) * | 2012-10-05 | 2014-04-09 | 三星电子株式会社 | 存储器系统及其读取回收方法 |
CN104484283A (zh) * | 2014-11-27 | 2015-04-01 | 记忆科技(深圳)有限公司 | 一种降低固态硬盘写放大的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135106B2 (en) * | 2012-05-22 | 2015-09-15 | Hgst Technologies Santa Ana, Inc. | Read level adjustment using soft information |
TWI545571B (zh) * | 2014-02-18 | 2016-08-11 | 慧榮科技股份有限公司 | 存取快閃記憶體的方法及相關的控制器與記憶裝置 |
-
2015
- 2015-12-31 CN CN201511031253.6A patent/CN105677244B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768644A (zh) * | 2011-05-06 | 2012-11-07 | 创惟科技股份有限公司 | 闪存系统及其闪存无效数据页信息的管理方法与回收方法 |
CN103714856A (zh) * | 2012-10-05 | 2014-04-09 | 三星电子株式会社 | 存储器系统及其读取回收方法 |
CN104484283A (zh) * | 2014-11-27 | 2015-04-01 | 记忆科技(深圳)有限公司 | 一种降低固态硬盘写放大的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105677244A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105988718B (zh) | 非挥发性储存装置与控制器进行的控制方法 | |
CN101650972B (zh) | 智能卡的非易失性存储器数据更新方法 | |
US9632880B2 (en) | Data storage device and flash memory control method | |
JP5213965B2 (ja) | 1セル当り単一ビットnandフラッシュメモリをエミュレートする1セル当り多ビットnandフラッシュメモリ用コントローラ | |
CN104484283B (zh) | 一种降低固态硬盘写放大的方法 | |
US10936661B2 (en) | Data tree with order-based node traversal | |
CN109977034A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN103106143B (zh) | 固态储存装置及其逻辑至实体对应表建立方法 | |
CN110058795A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN103455435A (zh) | 数据写入方法及装置 | |
CN104268095A (zh) | 一种存储器及基于该存储器进行数据读/写操作的方法 | |
CN104360958A (zh) | 基于块保留区替换的坏块管理系统及管理方法 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN101923448A (zh) | 一种nand闪存的转换层读写方法 | |
CN108073522A (zh) | 可用于数据储存装置的垃圾搜集方法 | |
CN110399310A (zh) | 一种存储空间的回收方法及装置 | |
CN105677244B (zh) | 一种降低tlc闪存的固态硬盘写放大的方法 | |
CN109117383A (zh) | 管理闪存模块的方法和闪存控制器 | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
CN106598493A (zh) | 一种固态硬盘地址映射表管理方法 | |
CN109582593A (zh) | 一种基于计算的ftl地址映射方法及数据读、写方法 | |
CN103970669A (zh) | 用于加速在固态设备中的回收操作的物理到逻辑地址映射 | |
CN109669889B (zh) | 一种轻量型Nor Flash闪存控制方法和装置 | |
CN104978154A (zh) | 一种基于缓存操作的flash快速读写方法及系统 | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |