CN103077096A - 数据纠错系统、固态硬盘及数据纠错方法 - Google Patents
数据纠错系统、固态硬盘及数据纠错方法 Download PDFInfo
- Publication number
- CN103077096A CN103077096A CN2012105915648A CN201210591564A CN103077096A CN 103077096 A CN103077096 A CN 103077096A CN 2012105915648 A CN2012105915648 A CN 2012105915648A CN 201210591564 A CN201210591564 A CN 201210591564A CN 103077096 A CN103077096 A CN 103077096A
- Authority
- CN
- China
- Prior art keywords
- physical block
- place
- error
- maximum
- error correction
- 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.)
- Pending
Links
Images
Abstract
本发明适用于存储技术领域,提供了一种数据纠错方法,所述方法包括:记录每个物理块的擦除次数;记录所述每个物理块的最大出错位数;所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。本发明还相应的提供一种实现上述方法的数据纠错系统及包含该系统的固态硬盘。借此,本发明可以根据固态硬盘内各个物理块的状态,使用动态的ECC纠错强度,可以有效地保护固态硬盘内的数据,提升了固态硬盘的寿命。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种数据纠错系统、固态硬盘及数据纠错方法。
背景技术
随着存储技术的发展,固态存储系统的应用也越来越广泛。在固态存储系统的存储介质在生命周期内不断的被擦除写入,其最小擦除单元为块(block),典型地MLC NAND擦除次数为3000次,且每个Block内包含256个Page。而Page是固态存储系统内的最小编程单元,典型地每个Page包含(8192+448)字节,其中8192用来存储用户数据,448存储ECC纠错码以及系统管理数据。逻辑页(LPA)是固态硬盘内管理主机数据的最小单元,典型地大小为4KB,故一个物理页内最多可以放2个逻辑页。现有的固态存储系统大多对每个物理块采用固定的ECC纠错强度,但实际上固态存储系统在每个生命阶段其出错机率是不同的,对于固态的ECC纠错算法不能对所有阶段进行更好的纠错处理。
综上可知,现有的固态存储系统的纠错方法,在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种数据纠错系统、固态硬盘及数据纠错方法,
为了实现上述目的,本发明提供一种数据纠错方法,所述方法包括:
记录每个物理块的擦除次数;
记录所述每个物理块的最大出错位数;
所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。
根据本发明的数据纠错方法,所述记录所述每个物理块的最大出错位数步骤包括:
若所述新的纠错强度反馈的纠错位数大于所述记录的最大出错位数,则更新所述物理块的最大出错位数。
根据本发明的数据纠错方法,所述方法还包括:
所述物理块内的物理页在写入逻辑页数据时,根据所述物理块的纠错强度,生成与所述物理页匹配的纠错校验码。
根据本发明的数据纠错方法,若储存所述纠错强度匹配的纠错校验码的物理页不能储存两个逻辑页,则将所述物理页内储存的逻辑页数量调整为一个。
本发明还提供一种数据纠错系统,包括:
第一记录模块,用于记录每个物理块的擦除次数;
第二记录模块,用于记录所述每个物理块的最大出错位数;
计算处理模块,用于所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。
根据本发明的数据纠错系统,所述第二记录模块进一步用于所述新的纠错强度反馈的纠错位数大于所述记录的最大出错位数时,更新所述物理块的最大出错位数。
根据本发明的数据纠错系统,所述计算处理模块包括生成子模块,用于所述物理块内的物理页在写入逻辑页数据时,根据所述物理块的纠错强度,生成与所述物理页匹配的纠错校验码。
根据本发明的数据纠错系统,所述计算处理模块包括调整子模块,用于储存所述纠错强度匹配的纠错校验码的物理页不能储存两个逻辑页时,将所述物理页内储存的逻辑页数量调整为一个。
本发明还提供一种包括上述数据纠错系统的固态硬盘。
本发明通过记录每个物理块的擦除次数,并在物理块有擦除时更新擦除次数,同时还记录所述每个物理块的最大出错位数,若所述新的纠错强度反馈的纠错位数大于所述记录的最大出错位数,则更新所述物理块的最大出错位数,当某物理块接受擦除操作后,系统根据该物理块对应的擦除次数及最大出错位数计算新的纠错强度。借此,本发明可以根据固态硬盘内各个物理块的状态,使用动态的ECC纠错强度,可以有效地保护固态硬盘内的数据,提升了固态硬盘的寿命。
附图说明
图1是本发明的数据纠错系统的结构示意图;
图2是本发明优选实施例的数据纠错系统的结构示意图;
图3是本发明一实施例的物理块的结构示意图;
图4是本发明另一实施例的物理块的结构示意图;
图5是本发明的数据纠错方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,本发明提供了一种数据纠错系统,该系统100可应用于固态存储装置,并且所述系统100包括第一记录模块10、第二记录模块20及计算处理模块30,其中:
第一记录模块10,用于记录每个物理块的擦除次数。在系统100的内存内可维护一个物理块的擦除次数表g_block_erase_cnt[MAX_BLOCK_NUM],用于储存每个物理块的擦除次数,索引为物理块编号,值为擦除次数。具体应用中,某物理块接受擦除操作后,第一记录模块10即更新对应的表项的值。如果系统100掉电,则在掉电前将擦除次数表写入到掉电非易失性存储介质中,系统100上电后,重新加载该表到内存中。
第二记录模块20,用于记录每个物理块的最大出错位数。系统100的内存中实时维护每个物理块(block)的最大出错Bit数,该出错位数可表示为g_block_bit_err_cnt[MAX_BLOCK_NUM],其索引为物理块编号,值为最大读出错Bit数。系统100每次读该物理块n内的物理页时,根据ECC所反馈的纠错Bit数,如果大于对应表项的值g_block_bit_err_cnt[n],则将该值更新到对应的表项,否则不做更新。同样的,如果系统100掉电,则在掉电前将该表值写入到掉电非易失性存储介质中,且在上电后,重新加载该表到内存中。
计算处理模块30,用于所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。系统100在内存中实时维护每个Block的ECC纠错强度表g_block_ecc_power[MAX_BLOCK_NUM],每次物理块Block n被擦除后,根据该Block对应的擦除次数g_block_erase_cnt[n]和最大出错位数g_block_bit_err_cnt[n]重新计算所需的纠错强度。
再参见图2,该实施例中,计算处理模块包括生成子模块31和调整子模块32。其中:
生成子模块31用于所述物理块内的物理页在写入逻辑页数据时,根据所述物理块的纠错强度,生成与所述物理页匹配的纠错校验码。结合图3,每个物理页写入逻辑页LPA_X数据时,生成子模块根据该物理页所在物理块的纠错强度需求,生成所需要的纠错校验码,并写入到对应的ECC_X区域。优选的,在该物理页的“Other Meta”区域中携带该物理页所在物理块的当前纠错强度。
在系统100掉电后,首先恢复g_block_erase_cnt[MAX_BLOCK_NUM]和g_block_bit_err_cnt[MAX_BLOCK_NUM],然后扫描各个物理块的第一个物理页,如果其已经写入数据,则从固定区域中获取当前纠错强度,并设置到对应的g_block_ecc_power[MAX_BLOCK_NUM]表中;如果该物理页尚未被写入过,则依据物理块的擦除次数表g_block_erase_cnt[MAX_BLOCK_NUM]和最大出错位数g_block_bit_err_cnt[MAX_BLOCK_NUM]重新计算并设置纠错强度表。
调整子模块32,用于当储存所述纠错强度匹配的纠错校验码的物理页不能储存两个逻辑页时,将所述物理页内储存的逻辑页数量调整为一个。当纠错强度发生变化时,所需要的ECC纠错校验码的长度也发生改变。对应地,纠错强度要求越高,所需要的校验码长度越大。结合图4,当校验码的长度过大,导致一个物理页内无法存放两个逻辑页时,则降低该物理页内的逻辑页数量到1,同时在“Other Meta”区域内记录该信息。借此给ECC校验码提供足够的存储空间。
本发明还相应的提供一种包括上述系统100的固态硬盘,根据物理块的擦除次数(剩余寿命),运行时刻状况(读出错的Bit数)等指标,实时调整固态硬盘内的ECC纠错强度,借此可以有效地降低数据出错的概率,从而延长其使用寿命周期。
参见图5,本发明提供了一种数据纠错方法,其可以通过如图1所示的系统100实现,该方法包括:
步骤S501,记录每个物理块的擦除次数。
在系统100的内存内可维护一个物理块的擦除次数表g_block_erase_cnt[MAX_BLOCK_NUM],用于储存每个物理块的擦除次数,索引为物理块编号,值为擦除次数。具体应用中,某物理块接受擦除操作后,第一记录模块10即更新对应的表项的值。如果系统100掉电,则在掉电前将擦除次数表写入到掉电非易失性存储介质中,系统100上电后,重新加载该表到内存中。
步骤S502,记录所述每个物理块的最大出错位数。
系统100的内存中实时维护每个物理块(block)的最大出错Bit数,该出错位数可表示为g_block_bit_err_cnt[MAX_BLOCK_NUM],其索引为物理块编号,值为最大读出错Bit数。系统100每次读该物理块n内的物理页时,根据ECC所反馈的纠错Bit数,如果大于对应表项的值g_block_bit_err-cnt[n],则将该值更新到对应的表项,否则不做更新。同样的,如果系统100掉电,则在掉电前将该表值写入到掉电非易失性存储介质中,且在上电后,重新加载该表到内存中。
步骤S503,所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。
系统100在内存中实时维护每个Block的ECC纠错强度表g_block_ecc_power[MAX_BLOCK_NUM],每次物理块Block n被擦除后,根据该Block对应的擦除次数g_block_erase_cnt[n]和最大出错位数g_block_bit_err_cnt[n]重新计算所需的纠错强度。
本发明应用于固态硬盘,根据物理块的擦除次数(剩余寿命),运行时刻状况(读出错的Bit数)等指标,实时调整固态硬盘内的ECC纠错强度,借此可以有效地降低数据出错的概率,从而延长其使用寿命周期。
优选的是,结合图2~图4,所述物理块内的物理页在写入逻辑页数据时,根据所述物理块的纠错强度,生成与所述物理页匹配的纠错校验码。每个物理页写入逻辑页LPA_X数据时,生成子模块根据该物理页所在物理块的纠错强度需求,生成所需要的纠错校验码,并写入到对应的ECC_X区域。优选的,在该物理页的“Other Meta”区域中携带该物理页所在物理块的当前纠错强度。
当纠错强度发生变化时,所需要的ECC纠错校验码的长度也发生改变。对应地,纠错强度要求越高,所需要的校验码长度越大。结合图4,当校验码的长度过大,导致一个物理页内无法存放两个逻辑页时,则降低该物理页内的逻辑页数量到1,同时在“Other Meta”区域内记录该信息。借此给ECC校验码提供足够的存储空间。
综上所述,本发明通过记录每个物理块的擦除次数,并在物理块有擦除时更新擦除次数,同时还记录所述每个物理块的最大出错位数,若所述新的纠错强度反馈的纠错位数大于所述记录的最大出错位数,则更新所述物理块的最大出错位数,当某物理块接受擦除操作后,系统根据该物理块对应的擦除次数及最大出错位数计算新的纠错强度。借此,本发明可以根据固态硬盘内各个物理块的状态,使用动态的ECC纠错强度,可以有效地保护固态硬盘内的数据,提升了固态硬盘的寿命。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1.一种数据纠错方法,其特征在于,所述方法包括:
记录每个物理块的擦除次数;
记录所述每个物理块的最大出错位数;
所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。
2.根据权利要求1所述的数据纠错方法,其特征在于,所述记录所述每个物理块的最大出错位数步骤包括:
若所述新的纠错强度反馈的纠错位数大于所述记录的最大出错位数,则更新所述物理块的最大出错位数。
3.根据权利要求1所述的数据纠错方法,其特征在于,所述方法还包括:
所述物理块内的物理页在写入逻辑页数据时,根据所述物理块的纠错强度,生成与所述物理页匹配的纠错校验码。
4.根据权利要求1~3任一项所述的数据纠错方法,其特征在于,若储存所述纠错强度匹配的纠错校验码的物理页不能储存两个逻辑页,则将所述物理页内储存的逻辑页数量调整为一个。
5.一种数据纠错系统,其特征在于,包括:
第一记录模块,用于记录每个物理块的擦除次数;
第二记录模块,用于记录所述每个物理块的最大出错位数;
计算处理模块,用于所述物理块接受擦除操作后,根据该物理块对应的所述擦除次数及最大出错位数计算新的纠错强度。
6.根据权利要求5所述的数据纠错系统,其特征在于,所述第二记录模块进一步用于所述新的纠错强度反馈的纠错位数大于所述记录的最大出错位数时,更新所述物理块的最大出错位数。
7.根据权利要求5所述的数据纠错系统,其特征在于,所述计算处理模块包括生成子模块,用于所述物理块内的物理页在写入逻辑页数据时,根据所述物理块的纠错强度,生成与所述物理页匹配的纠错校验码。
8.根据权利要求5~7任一项所述的数据纠错系统,其特征在于,所述计算处理模块包括调整子模块,用于储存所述纠错强度匹配的纠错校验码的物理页不能储存两个逻辑页时,将所述物理页内储存的逻辑页数量调整为一个。
9.一种包括权利要求8所述数据纠错系统的固态硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105915648A CN103077096A (zh) | 2012-12-31 | 2012-12-31 | 数据纠错系统、固态硬盘及数据纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105915648A CN103077096A (zh) | 2012-12-31 | 2012-12-31 | 数据纠错系统、固态硬盘及数据纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103077096A true CN103077096A (zh) | 2013-05-01 |
Family
ID=48153629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105915648A Pending CN103077096A (zh) | 2012-12-31 | 2012-12-31 | 数据纠错系统、固态硬盘及数据纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077096A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376876A (zh) * | 2013-08-13 | 2015-02-25 | 北京兆易创新科技股份有限公司 | 一种ecc纠错能力的调节方法及调节装置 |
CN107402726A (zh) * | 2017-08-07 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种固态硬盘数据巡检周期的确定方法及系统 |
CN107562644A (zh) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
CN107577440A (zh) * | 2017-10-11 | 2018-01-12 | 深圳佰维存储科技股份有限公司 | 提高存储器寿命的方法 |
CN109542667A (zh) * | 2018-10-26 | 2019-03-29 | 珠海妙存科技有限公司 | 一种提高nand闪存数据可靠性的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499532A (zh) * | 2002-10-28 | 2004-05-26 | 非易失性存储器系统内纠错码的混合实现 | |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
CN101458957A (zh) * | 2007-09-13 | 2009-06-17 | 三星电子株式会社 | 存储器系统及其磨损平衡方法 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN101615427A (zh) * | 2008-06-24 | 2009-12-30 | 群联电子股份有限公司 | 非易失性存储器的存储器管理方法及使用此方法的控制器 |
CN102073563A (zh) * | 2011-02-23 | 2011-05-25 | 深圳市江波龙电子有限公司 | 闪存设备、闪存设备中存储块的管理方法及系统 |
CN102394114A (zh) * | 2011-11-14 | 2012-03-28 | 清华大学 | 具有自适应纠错能力的bch码纠错方法 |
CN102543177A (zh) * | 2010-12-17 | 2012-07-04 | 西安奇维测控科技有限公司 | 一种固态盘静态磨损平衡算法 |
-
2012
- 2012-12-31 CN CN2012105915648A patent/CN103077096A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499532A (zh) * | 2002-10-28 | 2004-05-26 | 非易失性存储器系统内纠错码的混合实现 | |
CN101458957A (zh) * | 2007-09-13 | 2009-06-17 | 三星电子株式会社 | 存储器系统及其磨损平衡方法 |
CN101615427A (zh) * | 2008-06-24 | 2009-12-30 | 群联电子股份有限公司 | 非易失性存储器的存储器管理方法及使用此方法的控制器 |
CN101441599A (zh) * | 2008-11-28 | 2009-05-27 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘的均衡方法和固态硬盘 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN102543177A (zh) * | 2010-12-17 | 2012-07-04 | 西安奇维测控科技有限公司 | 一种固态盘静态磨损平衡算法 |
CN102073563A (zh) * | 2011-02-23 | 2011-05-25 | 深圳市江波龙电子有限公司 | 闪存设备、闪存设备中存储块的管理方法及系统 |
CN102394114A (zh) * | 2011-11-14 | 2012-03-28 | 清华大学 | 具有自适应纠错能力的bch码纠错方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376876A (zh) * | 2013-08-13 | 2015-02-25 | 北京兆易创新科技股份有限公司 | 一种ecc纠错能力的调节方法及调节装置 |
CN104376876B (zh) * | 2013-08-13 | 2018-03-27 | 北京兆易创新科技股份有限公司 | 一种ecc纠错能力的调节方法及调节装置 |
CN107402726A (zh) * | 2017-08-07 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种固态硬盘数据巡检周期的确定方法及系统 |
CN107402726B (zh) * | 2017-08-07 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种固态硬盘数据巡检周期的确定方法及系统 |
CN107562644A (zh) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
CN107577440A (zh) * | 2017-10-11 | 2018-01-12 | 深圳佰维存储科技股份有限公司 | 提高存储器寿命的方法 |
CN107577440B (zh) * | 2017-10-11 | 2021-02-09 | 深圳佰维存储科技股份有限公司 | 提高存储器寿命的方法 |
CN109542667A (zh) * | 2018-10-26 | 2019-03-29 | 珠海妙存科技有限公司 | 一种提高nand闪存数据可靠性的方法及装置 |
CN109542667B (zh) * | 2018-10-26 | 2023-03-24 | 珠海妙存科技有限公司 | 一种提高nand闪存数据可靠性的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10082962B2 (en) | Wear leveling of a memory array | |
US10824352B2 (en) | Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded | |
US10241877B2 (en) | Data storage system employing a hot spare to proactively store array data in absence of a failure or pre-failure event | |
US9478292B2 (en) | Read operation for a non-volatile memory | |
US10884914B2 (en) | Regrouping data during relocation to facilitate write amplification reduction | |
US10365859B2 (en) | Storage array management employing a merged background management process | |
KR101184557B1 (ko) | 멀티레벨 데이터 저장 셀용 관리 동작 | |
US10552288B2 (en) | Health-aware garbage collection in a memory system | |
US8959280B2 (en) | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear | |
US9588702B2 (en) | Adapting erase cycle parameters to promote endurance of a memory | |
TWI454916B (zh) | 儲存單元管理方法、記憶體控制器與記憶體儲存裝置 | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TW201351148A (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
CN104641419A (zh) | 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质 | |
CN103077096A (zh) | 数据纠错系统、固态硬盘及数据纠错方法 | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
CN103279402A (zh) | 基于多层单元固态硬盘的数据恢复方法及固态硬盘 | |
CN104794019A (zh) | 一种嵌入式存储器的数据保护方法及装置 | |
KR102032878B1 (ko) | 플래시 메모리 컨트롤러의 에러 정정 방법 | |
JP2011134031A (ja) | 半導体記録装置および半導体記録システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130501 |
|
RJ01 | Rejection of invention patent application after publication |