CN114879916B - 一种管理存储单元的方法和装置 - Google Patents
一种管理存储单元的方法和装置 Download PDFInfo
- Publication number
- CN114879916B CN114879916B CN202210811916.XA CN202210811916A CN114879916B CN 114879916 B CN114879916 B CN 114879916B CN 202210811916 A CN202210811916 A CN 202210811916A CN 114879916 B CN114879916 B CN 114879916B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- target
- storage
- page
- error
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012937 correction Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 230000002035 prolonged effect Effects 0.000 abstract description 5
- 238000013500 data storage Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种管理存储单元的方法和装置,属于数据存储技术领域。方法包括:响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元;响应于确定所述存储设备处于设定状态,获取每一个所述目标存储单元,执行:遍历所述目标存储单元包含的各个存储页;在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。采用本发明,可以提高存储设备的使用时长。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种管理存储单元的方法和装置。
背景技术
随着信息技术的飞速发展和数据量的剧增,数据存储设备(例如闪存设备等)得到广泛应用。
通常,数据存储设备在处理数据读写时可能出现读写错误,现有的方法将出现读写错误的存储单元(例如存储块)直接确定为错误存储块;但是在一些情况下,存储单元发生读写错误可能是由外部环境噪声或存储设备内部噪声导致。现有的方法将被噪声影响的可用存储单元错误地判断为错误存储块,导致可用存储单元不能被使用,由此影响了存储设备的可用空间、读写效率,并降低了存储设备的使用时长。
发明内容
有鉴于此,本发明实施例提供一种管理存储单元的方法和装置,能够响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,针对记录的每一个所述目标存储单元,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。通过针对目标存储单元进行进一步判断,克服了将被噪声影响的可用存储单元错误地判断为错误存储块的问题,提高了存储设备的读写效率,从而提高了存储设备的使用时长。
为实现上述目的,根据本发明的一个方面,提供了一种管理存储单元的方法,包括:
响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元;
响应于确定所述存储设备处于设定状态,获取每一个所述目标存储单元,执行:
遍历所述目标存储单元包含的各个存储页;
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。
可选地,所述方法还包括:
在检测出存储设备的任一存储页发生读写异常的情况下,利用纠错模块针对所述发生读写异常的存储页进行纠错;
在所述纠错模块针对所述存储页纠错失败的情况下,触发多次读写所述存储页的重试策略;
在利用所述重试策略对所述存储页纠错失败的情况下,确定所述存储设备中的所述存储页发生读写错误。
可选地,在所述确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元之前,还包括:
获取所述目标存储单元对应的当前擦写次数、当前读次数;
判断所述当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值;如果是,则执行记录所述目标存储单元的步骤。
可选地,所述响应于确定所述存储设备处于设定状态,获取每一个所述目标存储单元,包括:
监听所述存储设备的状态,在判断出运行状态处于设定状态的情况下,获取记录的每一个所述目标存储单元,其中,所述设定状态为空闲状态或上电流程。
可选地,所述记录各个所述目标存储单元,包括:
利用目标队列存储各个目标存储单元;
所述方法还包括:
在将所述目标存储单元判断为错误存储单元或者可用存储单元的情况下,将所述目标存储单元从所述目标队列中移除。
可选地,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元,进一步包括:
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中;
否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;
利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
根据本发明的另一方面,提供了一种管理存储单元的装置,包括确定存储单元模块和管理存储单元模块;其中,
所述确定存储单元模块,用于响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元;
所述管理存储单元模块,用于获取记录的每一个所述目标存储单元,执行:遍历所述目标存储单元包含的各个存储页;在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。
可选地,所述确定存储单元模块,还用于:
在检测出存储设备的任一存储页发生读写异常的情况下,利用纠错模块针对所述发生读写异常的存储页进行纠错;
在所述纠错模块针对所述存储页纠错失败的情况下,触发多次读写所述存储页的重试策略;
在利用所述重试策略对所述存储页纠错失败的情况下,确定所述存储设备中的所述存储页发生读写错误。
可选地,所述确定存储单元模块,还用于:
获取所述目标存储单元对应的当前擦写次数、当前读次数;
判断所述当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值;如果是,则执行记录所述目标存储单元的步骤。
可选地,所述管理存储单元模块,用于:
监听所述存储设备的状态,在判断出运行状态处于设定状态的情况下,获取记录的每一个所述目标存储单元,其中,所述设定状态为空闲状态或上电流程。
可选地,所述确定存储单元模块,用于:利用目标队列存储各个目标存储单元;
所述管理存储单元模块,还用于:在将所述目标存储单元判断为错误存储单元或者可用存储单元的情况下,将所述目标存储单元从所述目标队列中移除。
可选地,所述管理存储单元模块,进一步用于:
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中;
否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;
利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
根据本发明的另一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述管理存储单元的方法。
根据本发明的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述管理存储单元的方法。
上述发明中的一个实施例具有如下优点或有益效果:能够响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,针对记录的每一个所述目标存储单元,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。通过针对目标存储单元进行进一步判断,克服了将被噪声影响的可用存储单元错误地判断为错误存储块的问题,提高了存储设备的读写效率,从而提高了存储设备的使用时长。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:
图1是本发明示例性实施例提供的一种管理存储单元的方法的流程示意图;
图1A是本发明示例性实施例提供的一种记录存储单元的队列示意图;
图1B是本发明示例性实施例提供的一种管理错误存储单元的方法的流程示意图;
图1C是本发明示例性实施例提供的一种管理可用存储单元的方法的流程示意图;
图2是本发明示例性实施例提供的一种管理存储单元的方法的流程示意图;
图3是本发明示例性实施例提供的一种管理存储单元的装置的结构示意图;
图4示出了能够用于实现本发明的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
如图1所示,本发明实施例提供了一种管理存储单元的方法,该方法可以包括以下步骤:
步骤S101:响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元。
具体地,存储设备为计算机设备包含用于存储数据的部分,计算机设备例如为台式机、笔记本电脑、平板电脑、服务器设备、智能手机等,存储设备例如为归属于闪存类型的ssd、emmc或ufs等。
进一步地,在闪存设备(即存储设备)中的读数据的最小单位是存储页(例如用page表示),通常,在处理写入数据到闪存阵列时需要进行纠错码编码,在处理从闪存阵列读取数据时需要进行解码;由于闪存阵列的物理属性,在读取闪存阵列中的数据时会有一定概率性发生数据比特翻转现象,若比特翻转较多时就会导致解码失败现象(即读错误);或者,由于多种原因导致写错误;其中,一个或多个存储页归属于存储块(即存储单元)。
确定存储设备中的一个或多个存储页发生读写错误的方法包括:
当存储设备检测到的一个或多个存储页(page)发生读写错误时,存储设备首先利用纠错模块对所述发生读写异常的存储页进行纠错,其中,纠错模块可以基于低密度奇偶校验码(Low Density Parity Check Code,缩写为ldpc)技术所实现,ldpc是一种前向纠错码,封装在存储设备主控里,当存储设备因环境温度、本身使用时长(即使用寿命)等因素出错时,可以首先利用ldpc进行纠错;如果纠错成功则退出,否则在纠错失败的情况下,进入重试(read retry)流程(即触发多次读写所述存储页的重试策略)。即,在检测出存储设备的任一存储页发生读写异常的情况下,利用纠错模块针对所述发生读写异常的存储页进行纠错;在所述纠错模块针对所述存储页纠错失败的情况下,触发多次读写所述存储页的重试策略;在利用所述重试策略对所述存储页纠错失败的情况下,确定所述存储设备中的所述存储页发生读写错误。
进一步地,在利用纠错模块和重试策略进行纠错均失败的情况下,确定所述存储设备中的所述存储页发生读写错误,并进一步加以判断和处理。具体地,在本发明的一个实施例中,获取所述目标存储单元对应的当前擦写次数、当前读次数;判断所述当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值;如果是,则执行记录所述目标存储单元的步骤。其中,目标存储单元可以为存储块(block), 可以理解的是,存储设备具有使用时长(即使用寿命),为了保证存储设备的可用性,针对存储设备的存储块设置有擦写次数阈值(擦写次数阈值越大使用寿命越长)和读次数阈值,因此,可以通过获取某一个存储块的当前擦写次数(例如用pec代表)、当前读次数(例如用rc代表)来判断存储设备的当前的擦写次数和读次数是否均在对应的阈值范围内,如果是则执行存储该存储块(即目标存储单元)的步骤。即,在所述确定所述一个或多个存储页所归属的目标存储单元,记录所述目标存储单元之前,进一步包括:获取所述目标存储单元对应的当前擦写次数、当前读次数;判断所述当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值;如果是,则执行记录所述目标存储单元的步骤。
进一步地,记录所述目标存储单元的方法:可以将所述目标存储单元存储于队列、数组、数据库、文件等数据结构中。本发明的一个实施例以队列说明:所述记录所述目标存储单元,包括:利用目标队列存储各个目标存储单元;获取记录的每一个所述目标存储单元,进一步包括:在将所述目标存储单元判断为错误存储单元或者可用存储单元的情况下,将所述目标存储单元从所述目标队列中移除。图1A示出了一种队列(环形队列)的示意图,其中,在确定出任一目标存储单元的情况下,则将所述目标存储单元添加至所述目标队列的队尾(tail指示的位置);进一步地,获取环形队列的各个存储单元时,从环形队列的头部(head指示的位置,blkA代表的存储单元)获取。经过判断,所述目标存储单元判断出错误存储单元或者可用存储单元的情况下,将所述目标存储单元从所述目标队列中移除。通过利用队列的数据结构存储目标存储单元,提高了定位和获取存储单元的效率。
步骤S102:响应于确定所述存储设备处于设定状态,获取每一个所述目标存储单元,执行:遍历所述目标存储单元包含的各个存储页;在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。
具体地,如步骤S101所描述,目标队列中包含有多个待处理的目标存储单元(block);
进一步地,响应于确定所述存储设备处于设定状态,获取每一个所述目标存储单元。设定状态包括空闲状态或上电流程;即:监听所述存储设备的状态,在判断出运行状态处于设定状态的情况下,触发获取记录的每一个所述目标存储单元的步骤。通过判断存储设备的状态(空闲状态或上电流程)后获取每一个所述目标存储单元,降低了多种类型的外部干扰因素的影响。提高了管理目标存储单元的有效性和效率。
进一步地,管理目标队列中的各个目标存储单元(block);具体地,在判断所述目标队列存储的数据不为空的情况下,从所述目标队列的队首中,获取所存储的所述目标存储单元,为所述目标存储单元执行遍历所述存储单元包含的各个存储页的步骤,以及将所述目标存储单元从所述目标队列中移除的步骤。
其中,在本发明的一个实施例中,为所述目标存储单元执行遍历所述存储单元包含的各个存储页的步骤包括:在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。
具体地,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元,进一步包括:在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中;否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
下面结合图1B、图1C的示意图说明该处理步骤:
如图1B所示,从目标队列的队首中,获取所存储的所述目标存储单元,以blkA作为队首的目标存储单元为例,使用二分法读取blkA包含的各个存储页(page),其中,可以判断存储页是否存在uecc(uncorrectable error correction code,不可纠正的错误编码),并进一步判断存储页归属的存储单元(block)。如果存在uecc,则将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中。其中,错误存储单元集合可以是数组、队列、数据表等多种数据结构。图1B示出了以数组结构作为错误存储单元集合的示意图,假设判断出blkA为错误存储单元,则将blkA从目标队列(环形队列)移除(队列的队首对应的存储单元从blkA变更为blkB),添加到数组中,对应的记录为index3:badblkA。
如图1C所示,从目标队列的队首中,获取所存储的所述目标存储单元,以blkB作为队首的目标存储单元为例,获取blkB包含的各个存储页(page),在判断出不存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中。其中,可用存储单元集合可以是数组、队列、数据表、链表等多种数据结构。图1C示出了以链表结构作为可用存储单元集合的示意图,假设判断出blkB为可用存储单元,则将blkB从目标队列(环形队列)移除(队列的队首对应的存储单元从blkB变更为blkC),添加到链表中,对应的记录为usedblkB。
即,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元,进一步包括:在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中;否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
在判断目标队列的每一个存储单元之后,根据形成的错误存储单元集合、可用存储单元集合管理存储设备,例如将可用存储单元集合包含的各个存储单元作为可用存储块,克服了现有技术中将被噪声影响的可用存储单元错误地判断为错误存储块,导致可用存储单元不能被使用的问题,提高了存储设备的读写效率,提高了存储设备的使用时长。
如图2所示,本发明实施例提供了一种管理存储单元的流程,该流程可以包括以下步骤:
步骤S201:在检测出存储设备的任一存储页发生读写异常的情况下,利用纠错模块针对所述发生读写异常的存储页进行纠错;在所述纠错模块针对所述存储页纠错失败的情况下,触发多次读写所述存储页的重试策略。
步骤S202:利用所述重试策略对所述存储页纠错失败的情况下,获取所述目标存储单元对应的当前擦写次数、当前读次数。
步骤S203:判断当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值。
如果是,执行步骤S204,否则执行步骤S211。
步骤S204:利用目标队列存储各个目标存储单元对应的单元标识;在确定出任一目标存储单元的情况下,将所述目标存储单元对应的单元标识添加至所述目标队列的队尾。
步骤S205:判断设备运行状态是否为空闲状态或上电流程。
如果是,执行步骤S206,否则执行步骤S211。
步骤S206:判断目标队列是否为空。
如果是,执行步骤S211,否则执行步骤S207。
步骤S207:从所述目标队列的队首中,获取所存储的所述目标存储单元,为所述目标存储单元执行遍历所述存储单元包含的各个存储页。
步骤S208:判断是否存在任一存储页为不可纠正的错误页。
如果是,执行步骤S209,否则执行步骤S210。
步骤S209:将所述目标存储单元作为错误存储单元;将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中。
并针对下一个目标存储单元执行步骤S205。
步骤S210:将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中。
并针对下一个目标存储单元执行步骤S205。
步骤S211:其他处理流程。
步骤S201-步骤S211中描述的管理存储单元的流程与步骤S101-步骤S102的描述的内容一致,在此不再赘述。
在本发明的一个实施例中,可以利用闪存转换层(Flash Translation Layer,简称FTL)处理本发明的管理存储数据的方法;也可以利用闪存转换层执行其他的流程处理。
由此可见,通过本发明的实施例可以保留存储设备中的因环境噪声产生的通道噪声(channel noise)导致读出错的存储块(即不是由于存储单元自身的错误导致);从而减少了存储单元(即存储块)的损耗,进而延长存储设备的使用时长。
本发明实施例提供了一种管理存储单元的装置,该装置用于实现上述管理存储单元的方法。如图3所示的示意性框图,基于管理存储单元的装置300包括:确定存储单元模块301,管理存储单元模块302。其中,
所述确定存储单元模块301,用于响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元;
所述管理存储单元模块302,用于获取记录的每一个所述目标存储单元,执行:遍历所述目标存储单元包含的各个存储页;在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。
可选地,所述确定存储单元模块301,还用于:
在检测出存储设备的任一存储页发生读写异常的情况下,利用纠错模块针对所述发生读写异常的存储页进行纠错;
在所述纠错模块针对所述存储页纠错失败的情况下,触发多次读写所述存储页的重试策略;
在利用所述重试策略对所述存储页纠错失败的情况下,确定所述存储设备中的所述存储页发生读写错误。
可选地,所述确定存储单元模块301,还用于:
获取所述目标存储单元对应的当前擦写次数、当前读次数;
判断所述当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值;如果是,则执行记录所述目标存储单元的步骤。
可选地,所述管理存储单元模块302,用于:
监听所述存储设备的状态,在判断出运行状态处于设定状态的情况下,获取记录的每一个所述目标存储单元,其中,所述设定状态为空闲状态或上电流程。
可选地,所述确定存储单元模块301,用于:利用目标队列存储各个目标存储单元;
所述管理存储单元模块302,还用于:在将所述目标存储单元判断为错误存储单元或者可用存储单元的情况下,将所述目标存储单元从所述目标队列中移除。
可选地,所述管理存储单元模块302,进一步用于:
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从所述目标队列中移除,并添加至错误存储单元集合中;
否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;
利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
本实施例中,能够响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,针对记录的每一个所述目标存储单元,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元。通过针对目标存储单元进行进一步判断,克服了将被噪声影响的可用存储单元错误地判断为错误存储块的问题,提高了存储设备的读写效率,从而提高了存储设备的使用时长。
本发明示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的方法。
本发明示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
本发明示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
参考图4,现将描述可以作为本发明的电子设备400的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,数据中心服务器、笔记本电脑、瘦客户机、膝上型计算机、台式计算机、工作站、个人数字助理、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
电子设备400中的多个部件连接至I/O接口405,包括:输入单元406、输出单元407、存储单元408以及通信单元409。输入单元406可以是能向电子设备400输入信息的任何类型的设备,输入单元406可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元407可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元408可以包括但不限于磁盘、光盘。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理。例如,在一些实施例中,上述管理存储单元的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到电子设备400上。在一些实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为上述管理存储单元的方法。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本发明使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
Claims (9)
1.一种管理存储单元的方法,其特征在于,所述方法包括:
响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元;
其中,所述记录各个所述目标存储单元,包括:利用目标队列存储各个目标存储单元;
其中,所述目标队列为环形队列;在确定出任一目标存储单元的情况下,则将所述目标存储单元添加至所述目标队列的队尾,获取环形队列的各个存储单元时,从环形队列的头部获取;
响应于确定所述存储设备处于设定状态,获取每一个所述目标存储单元,执行:
遍历所述目标存储单元包含的各个存储页;
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元;
其中,所述设定状态包括空闲状态或上电流程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测出存储设备的任一存储页发生读写异常的情况下,利用纠错模块针对所述发生读写异常的存储页进行纠错;
在所述纠错模块针对所述存储页纠错失败的情况下,触发多次读写所述存储页的重试策略;
在利用所述重试策略对所述存储页纠错失败的情况下,确定所述存储设备中的所述存储页发生读写错误。
3.根据权利要求1所述的方法,其特征在于,在所述确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元之前,还包括:
获取所述目标存储单元对应的当前擦写次数、当前读次数;
判断所述当前擦写次数是否小于擦写次数阈值以及所述当前读次数是否小于读次数阈值;如果是,则执行记录所述目标存储单元的步骤。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在将所述目标存储单元判断为错误存储单元或者可用存储单元的情况下,将所述目标存储单元从所述目标队列中移除。
5.根据权利要求1所述的方法,其特征在于,在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元,进一步包括:
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从目标队列中移除,并添加至错误存储单元集合中;
否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;
利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
6.一种管理存储单元的装置,其特征在于,包括:确定存储单元模块和管理存储单元模块;其中,
所述确定存储单元模块,用于响应于确定存储设备中的一个或多个存储页发生读写错误,确定所述一个或多个存储页所归属的目标存储单元,并记录各个所述目标存储单元;
其中,所述确定存储单元模块,用于:利用目标队列存储各个目标存储单元;
其中,所述目标队列为环形队列;在确定出任一目标存储单元的情况下,则将所述目标存储单元添加至所述目标队列的队尾,获取环形队列的各个存储单元时,从环形队列的头部获取;
所述管理存储单元模块,用于响应于确定所述存储设备处于设定状态,获取记录的每一个所述目标存储单元,执行:遍历所述目标存储单元包含的各个存储页;在判断出存在任一存储页为不可纠正的错误页的情况下,将所述目标存储单元作为错误存储单元,否则将所述目标存储单元作为可用存储单元;其中,所述设定状态包括空闲状态或上电流程。
7.根据权利要求6所述的装置,其特征在于,所述管理存储单元模块,进一步用于:
在判断出存在任一存储页为不可纠正的错误页的情况下,将所述存储页归属的所述目标存储单元作为错误存储单元,将所述错误存储单元从目标队列中移除,并添加至错误存储单元集合中;
否则将所述目标存储单元作为可用存储单元,将所述可用存储单元从所述目标队列中移除,并添加至可用存储单元集合中;
利用所述错误存储单元集合、所述可用存储单元集合管理其归属的所述存储设备。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210811916.XA CN114879916B (zh) | 2022-07-12 | 2022-07-12 | 一种管理存储单元的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210811916.XA CN114879916B (zh) | 2022-07-12 | 2022-07-12 | 一种管理存储单元的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114879916A CN114879916A (zh) | 2022-08-09 |
CN114879916B true CN114879916B (zh) | 2022-09-30 |
Family
ID=82683559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210811916.XA Active CN114879916B (zh) | 2022-07-12 | 2022-07-12 | 一种管理存储单元的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114879916B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622306A (zh) * | 2012-02-21 | 2012-08-01 | 中颖电子股份有限公司 | 存储装置的坏块管理方法 |
CN111274061A (zh) * | 2018-12-04 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 处理大容量存储器中的不可纠正的数据错误的***和方法 |
CN111708495A (zh) * | 2020-06-19 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 环形队列存储方法、装置及计算设备、存储介质 |
CN112558860A (zh) * | 2019-09-10 | 2021-03-26 | 爱思开海力士有限公司 | 分布和读取数据的存储器***及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216665B (zh) * | 2014-09-01 | 2017-03-08 | 上海新储集成电路有限公司 | 多层单元固态硬盘的存储管理方法 |
US9997258B2 (en) * | 2016-05-10 | 2018-06-12 | Sandisk Technologies Llc | Using non-volatile memory bad blocks |
CN106601305A (zh) * | 2016-11-18 | 2017-04-26 | 华中科技大学 | 一种使用检错码和纠错码相结合的固态盘纠错方法 |
CN111459708B (zh) * | 2020-03-11 | 2023-08-29 | 深圳佰维存储科技股份有限公司 | 坏块处理方法及装置 |
CN111722803A (zh) * | 2020-06-12 | 2020-09-29 | 苏州浪潮智能科技有限公司 | 固态硬盘的数据写入方法、装置、计算机设备和存储介质 |
KR20210156563A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 에러 체크 코드(ecc) 디코더 및 이를 포함하는 메모리 시스템 |
-
2022
- 2022-07-12 CN CN202210811916.XA patent/CN114879916B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622306A (zh) * | 2012-02-21 | 2012-08-01 | 中颖电子股份有限公司 | 存储装置的坏块管理方法 |
CN111274061A (zh) * | 2018-12-04 | 2020-06-12 | 阿里巴巴集团控股有限公司 | 处理大容量存储器中的不可纠正的数据错误的***和方法 |
CN112558860A (zh) * | 2019-09-10 | 2021-03-26 | 爱思开海力士有限公司 | 分布和读取数据的存储器***及其操作方法 |
CN111708495A (zh) * | 2020-06-19 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 环形队列存储方法、装置及计算设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114879916A (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8671330B2 (en) | Storage device, electronic device, and data error correction method | |
JP5211751B2 (ja) | 計算機、ダンププログラムおよびダンプ方法 | |
CN104572489B (zh) | 磨损均衡方法及装置 | |
US20150074461A1 (en) | Method and relevant apparatus for starting boot program | |
CN115495025B (zh) | 一种管理异常存储块的方法和装置 | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN107315616B (zh) | 一种固件的加载方法、装置及电子设备 | |
US8863110B2 (en) | Firmware updating system and method | |
CN109150642B (zh) | 应用内存错误检测方法、检测装置及存储介质 | |
CN107451006B (zh) | 限制存储设备中的性能变化的技术 | |
CN114996173B (zh) | 一种管理存储设备写操作的方法和装置 | |
CN108874441B (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN112650446A (zh) | NVMe全闪存存储***的智能存储方法、装置及设备 | |
CN107943605B (zh) | 一种存储卡处理方法及装置 | |
US9658922B2 (en) | Computer-readable recording medium having stored therein program for write inspection, information processing device, and method for write inspection | |
US9785374B2 (en) | Storage device management in computing systems | |
CN114138838A (zh) | 数据处理方法及装置、设备和介质 | |
CN113590405A (zh) | 硬盘错误的检测方法、装置、存储介质和电子装置 | |
WO2021027271A1 (zh) | 坏块信息保护方法、装置、计算机设备及存储介质 | |
CN114879916B (zh) | 一种管理存储单元的方法和装置 | |
CN112306995A (zh) | 一种数据库操作的实现方法及装置 | |
CN116126581B (zh) | 内存故障处理方法、装置、***、设备及存储介质 | |
CN109343800B (zh) | 存储设备管理方法、装置及可读存储介质 | |
CN110865772A (zh) | 保护***数据物理块擦除计数值的方法、装置、计算机设备及存储介质 | |
CN114880164B (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 |