CN107632943A - 一种固态硬盘数据保护的方法及固态硬盘 - Google Patents
一种固态硬盘数据保护的方法及固态硬盘 Download PDFInfo
- Publication number
- CN107632943A CN107632943A CN201710760615.8A CN201710760615A CN107632943A CN 107632943 A CN107632943 A CN 107632943A CN 201710760615 A CN201710760615 A CN 201710760615A CN 107632943 A CN107632943 A CN 107632943A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- state hard
- write
- mapping table
- 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 26
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000013507 mapping Methods 0.000 claims abstract description 68
- 238000010304 firing Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种固态硬盘数据保护的方法及固态硬盘,其特征在于在固态硬盘控制器中增加判断当前写入的数据页所在wordline内的sub‑page是否都已完成写入操作,如果所在wordline内的sub‑page都已完成写入操作,则在数据页写入操作完成后直接更新映射表,所述映射表记录了逻辑地址与物理地址的映射关系;如果所在wordline内的sub‑page还存在未完成写入操作时,则将该写入数据页对应的逻辑地址与物理地址的映射关系在数据页写入操作完成后写入新增加的临时映射表中;所述临时映射表在固态硬盘控制器掉电重启时重新进行初始化。在保证同一个wordline上的所有sub_page的数据都完成写入才将对应的逻辑地址与物理地址的映射关系更新到映射表中,防止数据丢失对系统造成不可预知的影响。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种固态硬盘数据保护的方法及固态硬盘。
背景技术
固态硬盘存储介质主要为NAND flash,不同工艺的NAND flash存在不同的特性。根据NAND flash的特性,block内各page之间存在同属于一个字线wordline的关系。例如,MLC NAND flash一个wordline有两个子页sub_page,分别为低页low_page和高页up_page。图1是NAND FLASH同一个wordline的组成示意图,page_x和page_x’同属于一个wordline。同一wordline内的sub_page之间有如下特性:在program up_page时,若发生异常掉电,导致该up_page发生partial program,则与该up_page同一wordline的low_page内的数据会发生读取错误。
图2是发生数据丢失的示例图,正常处理逻辑在写program page a完成后,LPA x->page a的映射信息就同步记录到映射表中,当在写program page a’是发生异常掉电时,发生了掉电,这时候就会发生再次上电后根据该映射信息读取page a,page a内数据无法读取,造成数据丢失现有技术在处理此问题时通常采用外置电容的方式,通过外置电容在异常掉电时对SSD提供额外的电源支撑,保证数据的安全写入再掉电。该方案的缺陷在于外置电容成本高昂,且随着时间的推移,外置电容备电时间会存在下降的情况。本方案采用纯软件解决方案,不会增加设备成本,且可以有效处理掉电场景下的数据丢失。
发明内容
针对以上缺陷,本发明目的是如何通过纯软件的方式解决异常掉电时造成的数据破坏问题。
为了解决以上问题本发明提出了一种固态硬盘数据保护的方法,其特征在于在固态硬盘控制器中增加判断当前写入的数据页所在wordline内的sub-page是否都已完成写入操作,如果所在wordline内的sub-page都已完成写入操作,则在数据页写入操作完成后直接更新映射表,所述映射表记录了逻辑地址与物理地址的映射关系;如果所在wordline内的sub-page还存在未完成写入操作时,则将该写入数据页对应的逻辑地址与物理地址的映射关系在数据页写入操作完成后写入新增加的临时映射表中;所述临时映射表在固态硬盘控制器掉电重启时重新进行初始化。
所述的固态硬盘数据保护的方法,其特征在于在固态硬盘控制器中还设有数据页写入状态表,所述数据页写入状态表记录各个数据块的各个数据页是否完成写入操作的状态,固态硬盘控制器通过检索数据页写入状态表来快速判定当前写入的数据页所在wordline内的sub-page是否都已完成写入操作。
所述的固态硬盘数据保护的方法,其特征在于所述固态硬盘为MLC类型或TLC类型,在固态硬盘控制器中增加判断当前写入的数据页是否属于low_page,如果是,则在当前数据页写入完成后同时判断当前所写入的数据页所在的up_page是否已写入数据,如果是则直接更新映射表;如果存在up_page还没写入数据,则将当前写入的low_page对应的逻辑地址与物理地址的映射关系写入临时映射表;如果当前写入的数据为up_page,则直接更新逻辑映射表,同时检索判断临时映射表是否存在该up_page对应的low_page的数据,如果存在则将该数据更新到映射表。
所述的固态硬盘数据保护的方法,其特征在于将临时映射表分开为多个数组元素,每个数组元素记录一个数据页的逻辑映射关系,将各个数组元素分别存储在所在数据页的META区间或者内存中。
一种固态硬盘,其特征在于固体硬盘的采用了权利要求1至4任意一项所述的固态硬盘数据保护的方法。
本发明通过增加临时映射表记录存在丢失风险的数据,在保证同一个wordline上的所有sub_page的数据都完成写入才将对应的逻辑地址与物理地址的映射关系更新到映射表中,否则先预存储在临时映射表中防止将有丢失风险的数据直接记录至映射表,防止数据丢失对系统造成不可预知的影响。
附图说明
图1是NAND FLASH同一个wordline的组成示意图;
图2是发生数据丢失的示例图;
图3是增加Temp mapping table后的处理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对以上问题提出了一种固态硬盘数据保护的方法,在于在固态硬盘控制器中增加判断当前写入的数据页所在wordline内的sub-page是否都已完成写入操作,如果所在wordline内的sub-page都已完成写入操作,则在数据页写入操作完成后直接更新映射表,所述映射表记录了逻辑地址与物理地址的映射关系;如果所在wordline内的sub-page还存在未完成写入操作时,则将该写入数据页对应的逻辑地址与物理地址的映射关系在数据页写入操作完成后写入新增加的临时映射表中;所述临时映射表在固态硬盘控制器掉电重启时重新进行初始化。
以下以MLC类型的固态硬盘为例进行说明。
具体示例如下:当数据写入program至NAND flash内时,不立刻更新映射表,直到page所在wordline内所有的sub_page都完成program后才进行映射表更新。图3是增加Tempmapping table后的处理示意图,数据依次写入page a,page b,page c,page a’,page b’,page c’。其中page a&page a’为同一wordline内的sub-page,当page a被program后,映射表不立刻更新,而是记录在临时映射表temp mapping table内,直到page a’被program后,则page a所在wordline内所有sub-page都完成program,此时,同时更新page a&page a’。当host进行读数据时,先查询临时映射表temp mapping table,若映射在temp mappingtable内,则根据临时映射表temp mapping table内映射与映射表base mapping table内映射进行比较,选择最新数据进行读取;若不在临时映射表temp mapping table内,则查询映射表base mapping table。
该发明的优势在于,不会将有丢失风险的数据记录至映射表,若在program pagea’时发生异常掉电,下次上电后,page a内数据丢失,但由于掉电时刻,page a的映射信息未记入至映射表,所以,page a内的数据对host来说不可见,即无效数据,丢失不会造成影响。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (5)
1.一种固态硬盘数据保护的方法,其特征在于在固态硬盘控制器中增加判断当前写入的数据页所在wordline内的sub-page是否都已完成写入操作,如果所在wordline内的sub-page都已完成写入操作,则在数据页写入操作完成后直接更新映射表,所述映射表记录了逻辑地址与物理地址的映射关系;如果所在wordline内的sub-page还存在未完成写入操作时,则将该写入数据页对应的逻辑地址与物理地址的映射关系在数据页写入操作完成后写入新增加的临时映射表中;所述临时映射表在固态硬盘控制器掉电重启时重新进行初始化。
2.根据权利要求1所述的固态硬盘数据保护的方法,其特征在于在固态硬盘控制器中还设有数据页写入状态表,所述数据页写入状态表记录各个数据块的各个数据页是否完成写入操作的状态,固态硬盘控制器通过检索数据页写入状态表来快速判定当前写入的数据页所在wordline内的sub-page是否都已完成写入操作。
3.根据权利要求2所述的固态硬盘数据保护的方法,其特征在于所述固态硬盘为MLC类型或TLC类型,在固态硬盘控制器中增加判断当前写入的数据页是否属于low_page,如果是,则在当前数据页写入完成后同时判断当前所写入的数据页所在的up_page是否已写入数据,如果是则直接更新映射表;如果存在up_page还没写入数据,则将当前写入的low_page对应的逻辑地址与物理地址的映射关系写入临时映射表;如果当前写入的数据为up_page,则直接更新逻辑映射表,同时检索判断临时映射表是否存在该up_page对应的low_page的数据,如果存在则将该数据更新到映射表。
4.根据权利要求1至3任意一项所述的固态硬盘数据保护的方法,其特征在于将临时映射表分开为多个数组元素,每个数组元素记录一个数据页的逻辑映射关系,将各个数组元素分别存储在所在数据页的META区间或者内存中。
5.一种固态硬盘,其特征在于固体硬盘的采用了权利要求1至4任意一项所述的固态硬盘数据保护的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710760615.8A CN107632943B (zh) | 2017-08-30 | 2017-08-30 | 一种固态硬盘数据保护的方法及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710760615.8A CN107632943B (zh) | 2017-08-30 | 2017-08-30 | 一种固态硬盘数据保护的方法及固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107632943A true CN107632943A (zh) | 2018-01-26 |
CN107632943B CN107632943B (zh) | 2020-09-11 |
Family
ID=61100773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710760615.8A Expired - Fee Related CN107632943B (zh) | 2017-08-30 | 2017-08-30 | 一种固态硬盘数据保护的方法及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107632943B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002258A (zh) * | 2018-06-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 固态硬盘内命名空间分配方法、系统及设备和存储介质 |
CN109460192A (zh) * | 2018-11-15 | 2019-03-12 | 苏州韦科韬信息技术有限公司 | 一种防止固态硬盘数据丢失的方法 |
CN110275596A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | 基于固态硬盘的上电初始化加速方法、装置和计算机设备 |
CN111694764A (zh) * | 2020-05-29 | 2020-09-22 | 四川效率源信息安全技术股份有限公司 | 一种故障固态硬盘的数据读取方法 |
CN112764685A (zh) * | 2021-01-26 | 2021-05-07 | 华中科技大学 | 一种消除固态盘中预写式日志重复数据写的方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518000A (zh) * | 2003-01-26 | 2004-08-04 | 深圳市朗科科技有限公司 | 闪存介质中的数据管理方法 |
EP1607867A1 (en) * | 2003-03-04 | 2005-12-21 | Netac Technology Co., Ltd. | Data management method for slash memory medium |
CN101464834A (zh) * | 2007-12-19 | 2009-06-24 | 群联电子股份有限公司 | 闪存数据写入方法及使用此方法的控制器 |
US20090287893A1 (en) * | 2008-05-16 | 2009-11-19 | Skymedi Corporation | Method for managing memory |
CN101788955A (zh) * | 2009-01-23 | 2010-07-28 | 群联电子股份有限公司 | 闪存数据的存取方法及其储存系统与控制系统 |
CN103514095A (zh) * | 2012-06-18 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN105122220A (zh) * | 2013-03-15 | 2015-12-02 | 西部数据技术公司 | 固态驱动器中的原子写入命令支持 |
-
2017
- 2017-08-30 CN CN201710760615.8A patent/CN107632943B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518000A (zh) * | 2003-01-26 | 2004-08-04 | 深圳市朗科科技有限公司 | 闪存介质中的数据管理方法 |
EP1607867A1 (en) * | 2003-03-04 | 2005-12-21 | Netac Technology Co., Ltd. | Data management method for slash memory medium |
CN101464834A (zh) * | 2007-12-19 | 2009-06-24 | 群联电子股份有限公司 | 闪存数据写入方法及使用此方法的控制器 |
US20090287893A1 (en) * | 2008-05-16 | 2009-11-19 | Skymedi Corporation | Method for managing memory |
CN101788955A (zh) * | 2009-01-23 | 2010-07-28 | 群联电子股份有限公司 | 闪存数据的存取方法及其储存系统与控制系统 |
CN103514095A (zh) * | 2012-06-18 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN105122220A (zh) * | 2013-03-15 | 2015-12-02 | 西部数据技术公司 | 固态驱动器中的原子写入命令支持 |
Non-Patent Citations (3)
Title |
---|
QI ZHANG: "Optimizing Translation Information Management in NAND Flash Memory Storage Systems", 《2013 18TH ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE (ASP-DAC)》 * |
张琦等: "一种优化的闪存地址映射方法", 《软件学报》 * |
李思思: "一种基于子页的固态存储FTL性能优化算法的研究", 《万方学术期刊数据库》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002258A (zh) * | 2018-06-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 固态硬盘内命名空间分配方法、系统及设备和存储介质 |
CN109460192A (zh) * | 2018-11-15 | 2019-03-12 | 苏州韦科韬信息技术有限公司 | 一种防止固态硬盘数据丢失的方法 |
CN110275596A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | 基于固态硬盘的上电初始化加速方法、装置和计算机设备 |
CN111694764A (zh) * | 2020-05-29 | 2020-09-22 | 四川效率源信息安全技术股份有限公司 | 一种故障固态硬盘的数据读取方法 |
CN111694764B (zh) * | 2020-05-29 | 2023-03-14 | 四川效率源信息安全技术股份有限公司 | 一种故障固态硬盘的数据读取方法 |
CN112764685A (zh) * | 2021-01-26 | 2021-05-07 | 华中科技大学 | 一种消除固态盘中预写式日志重复数据写的方法及设备 |
CN112764685B (zh) * | 2021-01-26 | 2022-07-15 | 华中科技大学 | 一种消除固态盘中预写式日志重复数据写的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107632943B (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107632943A (zh) | 一种固态硬盘数据保护的方法及固态硬盘 | |
US8407408B2 (en) | Static wear leveling | |
CN102855193B (zh) | 非易失性存储系统中未使用的逻辑地址的挂载时去映射 | |
JP5612514B2 (ja) | 不揮発性メモリコントローラ及び不揮発性記憶装置 | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
CN103577574B (zh) | 一种基于nand flash的高可靠线性文件系统 | |
US9170893B2 (en) | Method and system for selecting region of a nonvolatile memory | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
US10635358B2 (en) | Memory management method and storage controller | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US20120254511A1 (en) | Memory storage device, memory controller, and data writing method | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US20120290769A1 (en) | Flash memory device, memory control device, memory control method, and storage system | |
TW201212033A (en) | Hybrid storage apparatus and hybrid storage medium controller and addressing method thereof | |
TWI420308B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
CN104298606A (zh) | 固态存储装置中垃圾搜集动作的控制方法 | |
US20110271032A1 (en) | Access device and memory controller | |
CN107220001A (zh) | 一种固态硬盘缓存实现方法及固态硬盘 | |
JP5329689B2 (ja) | メモリコントローラ、不揮発性記憶装置 | |
CN108763100B (zh) | 一种固态存储设备快速trim方法及其系统 | |
TW201225109A (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
CN105487824A (zh) | 信息处理方法、存储装置及电子设备 | |
US10509583B1 (en) | Memory management method and storage controller | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200911 |