CN109460371A - 一种固态硬盘数据块错误处理方法 - Google Patents
一种固态硬盘数据块错误处理方法 Download PDFInfo
- Publication number
- CN109460371A CN109460371A CN201811312570.9A CN201811312570A CN109460371A CN 109460371 A CN109460371 A CN 109460371A CN 201811312570 A CN201811312570 A CN 201811312570A CN 109460371 A CN109460371 A CN 109460371A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- block
- error
- wrong
- 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
- 239000007787 solid Substances 0.000 title claims abstract description 42
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 4
- 230000007257 malfunction Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种固态硬盘数据块错误处理方法,包括:当数据块发生读错误或写错误时,判断发生读错误或写错误的数据块是否为第一次出错;如果是,标记数据块为有错误页块;检测有错误页块的全部数据页;根据有错误页块的每一数据页分别为错误页或无错页,建立有错误页块的页位图;如果否,根据发生读错误或写错误的数据页更新有错误页块的页位图;根据页位图判断有错误页块的错误页数量是否超过阈值;如果超过,则将有错误页块标记为故障块。本申请实施例提高了固态硬盘闪存的利用率,增加了固态硬盘使用寿命。
Description
技术领域
本申请涉及固态硬盘技术领域,尤其涉及一种固态硬盘数据块错误处理方法。
背景技术
目前绝大多数SSD(Solid State Drives,固态硬盘)使用闪存芯片作为存储介质。闪存芯片是一种非易失性存储器,其基本存储单元是浮栅晶体管,因电荷泄漏、氧化层老化等物理特性,闪存芯片在使用过程中不可避免会发生读错误、编程失败或擦编程失败等写错误,固态硬盘的主控芯片必须对这些错误进行处理。
固态硬盘的数据块发生读取错误或写错误后给固态硬盘的数据存取带来较高的风险,容易造成数据丢失,为保障数据安全性,现有技术中,固态硬盘的主控芯片将发生读错误的数据块标记为坏块,该数据块将不再使用。
然而,现有技术在数据块发生一次读错误或写错误就标记为坏块且不再使用,将导致固态硬盘的损耗过快,缩短了固态硬盘的使用寿命。
发明内容
本申请提供了一种固态硬盘数据块错误处理方法,以解决固态硬盘损耗较快的问题。
本申请提供了一种固态硬盘数据块错误处理方法,该方法包括:
当数据块发生读错误或写错误时,判断发生所述读错误或写错误的数据块是否为第一次出错;
如果是,标记所述数据块为有错误页块;
检测所述有错误页块的全部数据页;
根据所述有错误页块的每一数据页分别为错误页或无错页,建立所述有错误页块的页位图;
如果否,根据发生所述读错误或写错误的数据页更新所述有错误页块的页位图;
根据所述页位图判断所述有错误页块的错误页数量是否超过阈值;
如果超过,则将所述有错误页块标记为故障块。
优选地,所述检测所述有错误页块的全部数据页,包括:
对所述有错误页块的每一数据页分别进行读操作或写操作;
判断所述数据页是否出现所述读错误或写错误;
如果出现所述读错误或写错误,将所述数据页标记为错误页;
如果没有出现所述读错误或写错误,将所述数据页标记为无错页。
优选地,所述方法还包括:
如果未超过,则将所述有错误页块标记为不稳定块。
优选地,所述方法还包括:
获取主机下发的写请求;
判断所述写请求对应的数据块是否为不稳定块;
如果是,查询所述不稳定块的页位图;
根据所述页位图的无错页数量计算所述不稳定块的容纳数据量;
将所述写请求中对应所述容纳数据量的数据写入到所述不稳定块的无错页中。
优选地,所述查询所述不稳定块的页位图,之前还包括:如果是,判断所述写请求的数据是否为冷数据。
优选地,所述根据所述有错误页块的每一数据页分别为错误页或无错页,建立所述有错误页块的页位图,包括:
建立包含数据页状态信息的页位图,所述数据页状态信息的数量与所述有错误页块的数据页页数相同,所述数据页状态信息用二进制数值分别表示无错页和错误页。
优选地,所述阈值为60%。
本申请实施例提供的固态硬盘数据块错误处理方法的有益效果包括:
本申请实施例提供的固态硬盘读错误处理方法,当数据块发生读错误或写错误时,判断数据块是否为第一次出错,如果是则建立表征数据块的数据页状态的页位图,如果否则更新页位图,根据页位图计算出错误页数量达到阈值时再将数据块标记为故障块,不再使用,降低了固态硬盘的损耗速度,延长了固态硬盘的使用寿命。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种固态硬盘数据块错误处理方法的流程示意图;
图2为本申请实施例提供的一种不稳定块的数据写处理方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
参见图1,为本申请实施例提供的一种固态硬盘数据块错误处理方法的流程示意图,如图1所示,本申请实施例提供的固态硬盘数据块错误处理方法,具体包括以下步骤:
步骤S110:当数据块发生读错误或写错误时,判断发生读错误或写错误的数据块是否为第一次出错。
具体的,对数据块进行读操作发生读错误,或进行写操作发生写错误时,对数据块是否为第一次出错进行判断,判断方法为:查询是否存在上述数据块的页位图。
步骤S120:如果是,标记数据块为有错误页块。
具体的,如果没有查询到数据块的页位图,则表示数据块为第一次发现出错,设置数据块的状态为有错误页块。
本实施例中,数据块状态共有4种标记方式,分别为:好块、有错误页块、不稳定块和故障块,其中,好块是指数据块的全部数据页都没有出过读错误或写错误,有错误页块是指数据块的n个数据页出过读错误或写错误,0<n<m,m为数据块的数据页数量,不稳定块是指数据块的p个数据页出过读错误或写错误,0<p≤q,q为阈值,故障块是指数据块的w个数据页出过读错误或写错误,q<w<m。
步骤S130:检测有错误页块的全部数据页。
具体的,当数据块发生读错误或写错误时,数据块中出错的数据页可能不只一页,通过对数据块的全部数据页进行检测,有利于对数据块的状态进行全面分析。
对全部数据页进行检测的检测方法为:
对有错误页块的每一数据页分别进行读操作;判断数据页是否出现读错误;如果出现读错误,将数据页标记为错误页;如果没有出现读错误,将数据页标记为无错页。
或,对有错误页块的每一数据页分别进行写操作;判断数据页是否出现写错误;如果出现写错误,将数据页标记为错误页;如果没有出现写错误,将数据页标记为无错页。
步骤S140:根据有错误页的每一数据页分别为错误页或无错页,建立有错误页块的页位图。
具体的,对数据块全部数据页检测完毕后,得到每一数据页是否出错,据此建立起数据块的页位图,页位图包含全部数据页的状态信息,本实施例中,数据页状态信息用二进制数值0或1表示,其中,0代表数据页为无错页,1代表数据页为错误页。数据页状态信息的数量与有错误页块的数据页页数相同。
步骤S150:如果否,根据发生读错误或写错误的数据页更新有错误页块的页位图。
具体的,如果在步骤S110中查询到了数据块的页位图,则表示数据块之前出现过读错误或写错误,在数据块的页位图中,将当前发生读错误或写错误的状态信息设置为1。
步骤S160:根据页位图判断有错误页块的错误页数量是否超过阈值。
具体的,根据页位图中状态信息为1的数量,得到数据块的错误页数量。当数据块中的错误页数量较多时,数据块的稳定性和有效容量大幅降低,不宜继续使用。本实施例中,设置的阈值为60%,当错误页数量小于数据块总数据页数量的60%时,固态硬盘可靠性较高,当错误页数量大于总数据页数量的60%时,固态硬盘可靠性较差。
步骤S170:如果超过,则将有错误页块标记为故障块。
具体的,如果错误页数量大于总数据页数量的60%,固态硬盘的可靠性大幅降低,将其标记为故障块,不再使用。
步骤S180:如果未超过,则将有错误页块标记为不稳定块。
具体的,对于错误页数量小于60%的有错误页块,将其标记为不稳定块,其可靠性相较没有错误页的数据块较低。
本申请实施例中,不稳定块仍可继续使用,参见图2,为本申请实施例提供的一种不稳定块的数据写处理方法的流程示意图,具体包括以下步骤:
步骤S210:获取主机下发的写请求。
步骤S220:判断写请求对应的数据块是否为不稳定块。
如果写请求对应的数据块为好块,则无需进行下列步骤,直接将写请求的数据写入到对应的数据块中即可。
步骤S230:如果是,判断写请求的数据是否为冷数据。
冷数据指较少更新的数据,将较少更新的冷数据存储到不稳定块中,使不稳定块保持在较低的使用频率,从而减缓不稳定块的进一步损耗。
步骤S240:查询不稳定块的页位图。
步骤S250:根据页位图的无错页数量计算不稳定块的容纳数据量。
步骤S260:将写请求中对应容纳数据量的数据写入到不稳定块的无错页中。
由于错误页不可使用,因此在写入数据时需要跳过错误页。在数据写的流程中,如果当前正在写的数据块是不稳定块,则需要查询页位图,根据页位图跳过错误页计算写入的数据量,将数据写入好的数据页中。
有错误页的数据块是不稳定块,需要特殊的处理策略。本申请实施例在判断出写请求写入的数据块为不稳定块之后,在查询页位图之前对写请求的数据判断是否为较少更新的冷数据,如果是,则将上述冷数据写入到不稳定块中,如果写请求的数据为频繁更新的热数据,则停止写入到不稳定块中,从而保障数据块的稳定性和可靠性,避免数据丢失。
本申请提供的固态硬盘读错误处理方法,通过为数据块建立读错误或写错误的页位图,将数据块中的无错页和错误页进行标记,在错误页数量达到阈值时再将数据块标记为不能使用的坏块,极大地提高了固态硬盘闪存芯片的利用率,延长了固态硬盘的使用寿命,并且,对于存在故障页的不稳定块,通过计算无错页的数量,使不稳定块也能存储一部分数据,进一步提高了固态硬盘闪存芯片的利用率,实现了对固态硬盘地址空间状态的精细化控制,有效提高了固态硬盘的利用率,延长了固态硬盘使用寿命。
由于以上实施方式均是在其他方式之上引用结合进行说明,不同实施例之间均具有相同的部分,本说明书中各个实施例之间相同、相似的部分互相参见即可。在此不再详细阐述。
需要说明的是,在本说明书中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或暗示这些实体或操作之间存在任何这种实际的关系或顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的电路结构、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种电路结构、物品或者设备所固有的要素。在没有更多限制的情况下,有语句“包括一个……”限定的要素,并不排除在包括所述要素的电路结构、物品或者设备中还存在另外的相同要素。
本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本申请的其他实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求的内容指出。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (7)
1.一种固态硬盘数据块错误处理方法,其特征在于,包括:
当数据块发生读错误或写错误时,判断发生所述读错误或写错误的数据块是否为第一次出错;
如果是,标记所述数据块为有错误页块;
检测所述有错误页块的全部数据页;
根据所述有错误页块的每一数据页分别为错误页或无错页,建立所述有错误页块的页位图;
如果否,根据发生所述读错误或写错误的数据页更新所述有错误页块的页位图;
根据所述页位图判断所述有错误页块的错误页数量是否超过阈值;
如果超过,则将所述有错误页块标记为故障块。
2.如权利要求1所述的固态硬盘数据块错误处理方法,其特征在于,所述检测所述有错误页块的全部数据页,包括:
对所述有错误页块的每一数据页分别进行读操作或写操作;
判断所述数据页是否出现所述读错误或写错误;
如果出现所述读错误或写错误,将所述数据页标记为错误页;
如果没有出现所述读错误或写错误,将所述数据页标记为无错页。
3.如权利要求1所述的固态硬盘数据块错误处理方法,其特征在于,还包括:
如果未超过,则将所述有错误页块标记为不稳定块。
4.如权利要求3所述的固态硬盘数据块错误处理方法,其特征在于,所述方法还包括:
获取主机下发的写请求;
判断所述写请求对应的数据块是否为不稳定块;
如果是,查询所述不稳定块的页位图;
根据所述页位图的无错页数量计算所述不稳定块的容纳数据量;
将所述写请求中对应所述容纳数据量的数据写入到所述不稳定块的无错页中。
5.如权利要求4所述的固态硬盘数据块错误处理方法,其特征在于,所述如果是,查询所述不稳定块的页位图,之前还包括:
如果是,判断所述写请求的数据是否为冷数据。
6.如权利要求1所述的固态硬盘数据块错误处理方法,其特征在于,所述根据所述有错误页块的每一数据页分别为错误页或无错页,建立所述有错误页块的页位图,包括:
建立包含数据页状态信息的页位图,所述数据页状态信息的数量与所述有错误页块的数据页页数相同,所述数据页状态信息用二进制数值分别表示无错页和错误页。
7.如权利要求1所述的固态硬盘数据块错误处理方法,其特征在于,所述阈值为60%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811312570.9A CN109460371A (zh) | 2018-11-06 | 2018-11-06 | 一种固态硬盘数据块错误处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811312570.9A CN109460371A (zh) | 2018-11-06 | 2018-11-06 | 一种固态硬盘数据块错误处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109460371A true CN109460371A (zh) | 2019-03-12 |
Family
ID=65609455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811312570.9A Pending CN109460371A (zh) | 2018-11-06 | 2018-11-06 | 一种固态硬盘数据块错误处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460371A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209550A (zh) * | 2019-05-24 | 2019-09-06 | 新华三技术有限公司成都分公司 | 存储介质的故障处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377010A (zh) * | 2012-04-25 | 2013-10-30 | 西部数据技术公司 | 管理数据存储系统中的不可靠存储器 |
CN105788647A (zh) * | 2014-12-26 | 2016-07-20 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
CN106653090A (zh) * | 2016-12-30 | 2017-05-10 | 湖南国科微电子股份有限公司 | 大幅提升固态硬盘服务时间的闪存的错误管理方法 |
CN108614664A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NANDflash的读错误处理方法和装置 |
-
2018
- 2018-11-06 CN CN201811312570.9A patent/CN109460371A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377010A (zh) * | 2012-04-25 | 2013-10-30 | 西部数据技术公司 | 管理数据存储系统中的不可靠存储器 |
CN105788647A (zh) * | 2014-12-26 | 2016-07-20 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
CN108614664A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NANDflash的读错误处理方法和装置 |
CN106653090A (zh) * | 2016-12-30 | 2017-05-10 | 湖南国科微电子股份有限公司 | 大幅提升固态硬盘服务时间的闪存的错误管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209550A (zh) * | 2019-05-24 | 2019-09-06 | 新华三技术有限公司成都分公司 | 存储介质的故障处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105868122A (zh) | 快闪存储设备的数据处理方法及装置 | |
US20070061498A1 (en) | Method and System for NAND-Flash Identification without Reading Device ID Table | |
US20190034290A1 (en) | Method and System for Improving Open Block Data Reliability | |
CN106486170A (zh) | 固态硬盘的潜在坏块定位方法及装置 | |
CN104360957A (zh) | 一种维持闪存损耗均衡的方法 | |
CN106205731B (zh) | 信息处理方法及存储设备 | |
CN102298543A (zh) | 一种存储器管理方法和装置 | |
US20180210784A1 (en) | Metadata Recovery Method and Apparatus | |
CN112068772B (zh) | 数据存储方法、数据存储装置及存储装置 | |
CN103605484A (zh) | 一种数据存储的方法和存储服务器 | |
CN108614743A (zh) | 基于NAND flash的超级数据块处理方法和装置 | |
CN109256166A (zh) | 闪存器的擦除方法及闪存器 | |
CN109460371A (zh) | 一种固态硬盘数据块错误处理方法 | |
CN105487824A (zh) | 信息处理方法、存储装置及电子设备 | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
CN105512047A (zh) | Flash闪存的写操作、擦除操作方法及装置 | |
CN104932830A (zh) | 信息处理方法及电子设备 | |
CN105302474A (zh) | 控制闪存的写操作的方法和闪存的控制器 | |
CN104461379A (zh) | 提高nand闪存的稳定性的方法和nand闪存 | |
CN116994631A (zh) | 基于ecc的闪存颗粒多次筛选方法、控制器及介质 | |
CN111949569A (zh) | 一种存储设备及其控制方法和控制装置 | |
CN101620575B (zh) | 闪存卡及闪存预防数据毁损的方法 | |
CN106502839B (zh) | 一种基于汽车BCM Flash的存储方法及系统 | |
CN111078128A (zh) | 数据管理方法、装置及固态硬盘 | |
CN114884836A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190312 |