CN114691433A - 一种固态硬盘的控制方法和装置 - Google Patents
一种固态硬盘的控制方法和装置 Download PDFInfo
- Publication number
- CN114691433A CN114691433A CN202210302374.3A CN202210302374A CN114691433A CN 114691433 A CN114691433 A CN 114691433A CN 202210302374 A CN202210302374 A CN 202210302374A CN 114691433 A CN114691433 A CN 114691433A
- Authority
- CN
- China
- Prior art keywords
- storage
- block
- blocks
- storage blocks
- target page
- 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
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
-
- 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/064—Management of blocks
-
- 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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供了一种固态硬盘的控制方法和装置,所述固态硬盘具有多个存储单元,每个存储单元具有多个存储块,所述方法包括:构建一个或多个超级块,每个超级块由多个存储块组成,组成所述超级块的多个存储块为所述多个存储单元所包含的存储块中的部分存储块;对组成的多个存储块中出现故障的存储块进行标记,以使所述超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。通过本发明实施例,实现了对固态硬盘中坏块管理的优化,减少了在进行坏块管理时对固态硬盘影响。
Description
技术领域
本发明涉及存储领域,特别是涉及一种固态硬盘的控制方法和装置。
背景技术
目前,固态硬盘(SSD,Solid State Disk)通常由多个存储单元构成,如存储单元可以为NAND闪存,如NAND闪存的存储单元正朝着更高密度、更大容量的趋势发展,以降低成本、提升存储效率。
然而,随着制造技术的日益复杂,质量保证也越来越具有挑战性,为了平衡生产和技术实力,如NAND闪存的存储单元本身的生产和出货要求相对宽松,其实际上比前几代产品的缺陷率更高。
因此,固态硬盘中如NAND闪存的存储单元出现故障的可能性越来越大,特别是出现坏块,坏块管理是决定固态硬盘的成本、性能、容量与寿命等关键指标的核心因素,如何在减少对固态硬盘影响的情况下对如NAND闪存的存储单元进行坏块管理,成为固态硬盘中尤为重要的问题。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种固态硬盘的控制方法和装置,包括:
一种固态硬盘的控制方法,固态硬盘具有多个存储单元,每个存储单元具有多个存储块,所述方法包括:
构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块;
对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
可选地,多个存储单元具有用于为出现故障的存储块作为备用的存储块,还包括:
对于作为备用的存储块,将其设置为固态硬盘的预留空间。
可选地,在对组成的多个存储块中出现故障的存储块进行标记之前,还包括:
在超级块的使用过程中,当组成的多个存储块中出现故障时,确定出现故障的存储块中存在数据写入的目标页,并对其进行回收;
将目标页中的数据写入除出现故障的存储块之外的存储块。
可选地,在确定出现故障的存储块中存在数据写入的目标页,并对其进行回收之前,还包括:
若组成的多个存储块中出现的故障为读故障,执行确定出现故障的存储块中存在数据写入的目标页,并对其进行回收;
若组成的存储块出现写故障,将出现故障的存储块设置为只读状态,直至出现读故障或对超级块进行垃圾回收时,执行确定出现故障的存储块中存在数据写入的目标页,并对其进行回收。
可选地,每个超级块具有用于为超级块中其他的存储块作为校验的存储块,确定出现故障的存储块中存在数据写入的目标页,包括:
读取出现故障的存储块中存在数据写入的目标页;
在无法读取出现故障的存储块中存在数据写入的目标页的情况下,采用作为校验的存储块中的校验信息,恢复出现故障的存储块中存在数据写入的目标页。
可选地,在将目标页中的数据写入除出现故障的存储块之外的存储块之后,还包括:
针对超级块中在目标页之外的数据,生成新的校验信息;
采用新的校验信息,对作为校验的存储块进行更新。
可选地,将目标页中的数据写入除出现故障的存储块之外的存储块,包括:
将目标页中的数据写入超级块中除出现故障的存储块之外的存储块,或,将目标页中的数据写入其他的超级块中的存储块。
一种固态硬盘的控制装置,固态硬盘具有多个存储单元,每个存储单元具有多个存储块,所述装置包括:
超级块构建模块,用于构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块;
故障块标记模块,用于对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
一种电子设备,包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上所述的固态硬盘的控制方法。
一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上所述的固态硬盘的控制方法。
本发明实施例具有以下优点:
在本发明实施例中,通过在固态硬盘中,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块,然后对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块,实现了对固态硬盘中坏块管理的优化,减少了在进行坏块管理时对固态硬盘影响。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种固态硬盘的架构示意图;
图2是本发明一实施例提供的一种固态硬盘的控制方法的步骤流程图;
图3是本发明一实施例提供的另一种固态硬盘的架构示意图;
图4是本发明一实施例提供的一种超级块的架构示意图;
图5是本发明一实施例提供的另一种固态硬盘的控制方法的步骤流程图;
图6是本发明一实施例提供的另一种固态硬盘的控制方法的步骤流程图;
图7是本发明一实施例提供的另一种固态硬盘的控制方法的步骤流程图;
图8是本发明一实施例提供的一种固态硬盘的控制装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在固态硬盘中,可以包括控制器和被其控制的多个存储单元,存储单元可以为NAND闪存单元,如图1,NAND闪存单元可以为NAND die,其被SSD controller(控制器)所控制。
需要说明的是,NAND闪存单元是从原始的硅材料加工出来的,硅材料被加工成晶圆(Wafer),一片晶圆上可以做出几百颗NAND闪存芯片,芯片未封装前的晶粒为NAND die,它是从晶圆上用激光切割而成的小片,每个NAND die就是一个独立的功能芯片,它由无数个晶体管电路组成,但最终可被作为一个单位封装起来成为NAND闪存颗粒芯片。
对于每个存储单元,其可以包括多个存储块(Block),如NAND闪存单元中的存储块,块是如NAND闪存单元的存储单元中最小擦除单位,一个存储块包含了若干个页(Page),页是如NAND闪存单元的存储单元中最小读写单位,一个页包含若干个比特(Byte)。
为了进行坏块管理,每个存储单元设置有一定数量的存储块作为备用,即备用块,在出现坏块的情况下,即存在存储块出现故障,可以采用作为备用的存储块替换出现故障的存储块,如图1,在NAND die(NAND闪存单元)中NAND block(NAND块,即NAND闪存单元中的存储块)出现故障时,可以采用备用的NAND block进行替换。
由于设置了用于作为备用的块,其仅能用于替换出现故障的存储块,而未将其用于其他用途,导致了容量的占用,进而影响固态硬盘的性能。
而且,为了实现纠错编码(ECC,Error Checking and Correction)和数据恢复保护,可以构建一个或多个超级块(Superblock),超级块可以由从存储单元中选取的存储块组成,同理,当组成超级块的存储块出现故障,可以用于作为备用的存储块进行替换,如图1,在Superblock中blk(Block)出现故障时,可以采用备用的blk进行替换。
然而,在采用备用块替换超级块中出现故障的存储块时,为了避免对数据恢复保护失效,会立即对出现故障的存储块所在的整个超级块进行回收,进而会导致对性能的影响。
而且,由于如NAND闪存单元的存储单元密度不断增长,每个超级块可能包含数百个存储块,为了替换一个出现故障的存储块而回收整个超级块,会导致对系统资源的消耗,包括带宽、功率、缓冲容量等,成本较高。
基于此,在本发明实施例中:
一方面,通过将用于作为备用的存储块设置为预留空间(OP,Over-Provision),预留空间是指用户不可操作的容量,不再将作为备用的存储块一直不使用,避免了对容量的占用,进而提升了固态硬盘的性能。
另一方面,当组成超级块的某个存储块出现故障时,不再直接采用作为备用的存储块对其进行替换,而是通过对出现故障的存储块进行标记,进而在超级块中删除出现故障的存储块,使超级块仅包含除去出现故障的存储块的其他存储块,以避免使用到出现故障的存储块。
以下进行具体说明:
参照图2,示出了本发明一实施例提供的一种固态硬盘的控制方法的步骤流程图,固态硬盘可以具有控制器和被其控制的多个存储单元,每个存储单元具有多个存储块,存储单元可以为NAND闪存单元,如图3,NAND闪存单元可以为被SSD Controller控制的NANDdie,每个NAND die可以包括多个NAND block。
具体的,可以包括如下步骤:
步骤201,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块。
为了实现纠错编码和数据恢复保护,可以构建一个或多个超级块,可以从多个存储单元所包含的存储块中选取一定数量的存储块,进而将选取的存储块组成超级块,如从固态硬盘所包含的每个存储单元中选取一个存储块组成超级块。
具体的,可以获取几何数据(Geometry),然后根据几何数据选取存储块,进而将选取的存储块组成超级块,例如,可以将每个存储单元中的第i个存储块组成第i个超级块。
其中,几何数据可以包括柱面数(Cylinder)、磁头数(Head)、扇区数(Sector/Track),柱面数表示硬盘每面盘片上有几条磁道,编号从0开始,最大为1023,表示有1024个磁道(用10个二进制位存储),磁头数表示硬盘总共有几个磁头,也就是几面盘片,编号从0开始,最大为255,表示有256个磁头(用8个二进制位存储),扇区数表示每条磁道上有几个扇区,编号从1开始,最大为63,表示63个扇区(用6个二进制位存储),每个扇区512字节,它是硬盘的最小存储单位。
在本发明一实施例中,多个存储单元可以具有用于为出现故障的存储块作为备用的存储块,即备用块,则还可以包括:
对于作为备用的存储块,将其设置为固态硬盘的预留空间。
由于作为备用的存储块,其仅能用于替换出现故障的存储块,而未将其用于其他用途,导致了容量的占用,进而影响固态硬盘的性能。
为了避免对容量的占用,可以将用于作为备用的存储块设置为预留空间,预留空间是指用户不可操作的容量,不再将作为备用的存储块一直不使用,避免了对容量的占用,进而提升了固态硬盘的性能。
步骤202,对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
由于在采用备用块替换超级块中出现故障的存储块时,会立即对出现故障的存储块所在的整个超级块进行回收,进而会导致对性能的影响。
为了避免对超级块的回收,不再直接采用作为备用的存储块对其进行替换,通过对出现故障的存储块进行标记,进而可以在超级块中删除出现故障的存储块,如图3,在Superblock中blk(Block)出现故障时,不再采用备用的blk进行替换(No replacement),也不再保留替换记录。
通过允许超级块具有不同数量的存储块,在超级块中删除出现故障的存储块后,超级块无需再采用作为备用的存储块进行替换,可以仅包含除去出现故障的存储块的其他存储块。
如图4,Superblock1和Superblock2原本都包含M个User blocks(即存储块),Superblock2中出现N个出现故障的User blocks,则删除N个User blocks后,Superblock1可以包括M个User blocks,Superblock2可以包括M-N个User blocks,M和N为大于1的正整数且M大于N。
针对已标记为出现故障的存储块,可以在一次会话(Session)结束时生成一记录表并对其进行持久化,其可以记录已标记为出现故障的存储块的相关信息,即哪个存储块时出现故障的存储块。
在新的一次会话开始时,超级块可以根据最新的记录表删除出现故障的存储块,进而避免超级块使用到出现故障的存储块。
在本发明一实施例中,在步骤202之前,还可以包括:
在超级块的使用过程中,当组成的多个存储块中出现故障时,确定出现故障的存储块中存在数据写入的目标页,并对其进行回收;将目标页中的数据写入除出现故障的存储块之外的存储块。
在超级块的使用过程中,当组成的多个存储块中出现故障时,出现故障的存储块中可能会包含有效数据,可以进一步确定出现故障的存储块中存在数据写入的目标页(Page),包括有效页和无效页。
在确定目标页后,进而可以对目标页进行回收,将目标页中的数据写入除出现故障的存储块之外的存储块,保证了对出现故障的存储块中有效数据的处理,避免数据丢失。
在本发明一实施例中,在确定出现故障的存储块中存在数据写入的目标页,并对其进行回收之前,还可以包括:
若组成的多个存储块中出现的故障为读故障,执行确定出现故障的存储块中存在数据写入的目标页,并对其进行回收;若组成的存储块出现写故障,将出现故障的存储块设置为只读状态,直至出现读故障或对超级块进行垃圾回收时,执行确定出现故障的存储块中存在数据写入的目标页,并对其进行回收。
为了避免回收对性能的影响,可以根据出现故障的故障类型进行区别处理,则在检测到故障时,可以判断是读故障还是写故障。
若出现的故障时读故障时,则该出现读故障的存储块不能用于后续的读写,必须立即对其中包含的有效数据进行回收,以写入其他存储块。
若出现的故障时写故障时,则可以将出现故障的存储块设置为只读状态,阻止后续的写入,为了避免对其中包含的有效数据回收而导致的流量拥塞和资源占用,不会立即对其进行回收,直至到该出现写故障的存储块再次出现读故障时,或者,对整个超级块进行垃圾回收时,则可以对其中包含的有效数据进行回收,以写入其他存储块。
如图4,当某个User block出现故障时,对于已经存在数据写入的Programmedpages(已编程页,即目标页),若故障为read error(读错误),则直接对其进行回收,若故障为Write error(写错误),则需要等待下一次进行GC(Garbage Collection,垃圾回收)。
进一步的,如图4,Superblock可以包括M个User block,相应地,具有M个Superpage(Superblock中的page),在某个User block出现Write error时,由于需要在下次进行GC时从Superblock中回收该User block,不会立即回收,则该Superblock中的Super page由M个pages,减少为M-1个pages。
在本发明一实施例中,每个超级块可以具有用于为超级块中其他的存储块作为校验的存储块,即校验块,如图4中Parity block即为作为校验的存储块,其可以包含组成超级块的所有存储块的校验信息,则确定出现故障的存储块中存在数据写入的目标页,可以包括:
读取出现故障的存储块中存在数据写入的目标页;在无法读取出现故障的存储块中存在数据写入的目标页的情况下,采用作为校验的存储块中的校验信息,恢复出现故障的存储块中存在数据写入的目标页。
在出现故障且要进行回收时,则可以尝试读取出现故障的存储块中存在数据写入的目标页,若可以读取成功,则直接进行回收。
若读取不成功,由于预先对磁盘做了RAID(Redundant Arrays of IndependentDisks,磁盘阵列)保护,则可以启动RAID恢复,采用作为校验的存储块中的校验信息,结合其他的存储块中的数据,恢复出现故障的存储块中存在数据写入的目标页。
在本发明一实施例中,在将目标页中的数据写入除出现故障的存储块之外的存储块之后,还可以包括:
针对超级块中在目标页之外的数据,生成新的校验信息;采用新的校验信息,对作为校验的存储块进行更新。
在将出现故障的存储块的目标页中有效数据写入其他的存储块后,可以在超级块中删除该出现故障的存储块,超级块中作为校验的存储块中的校验信息需要去除出现故障的存储块中有效数据的影响,则可以根据超级块中在目标页之外的数据,生成新的校验信息,如采用对校验信息和出现故障的存储块中的数据逐位异或的方式。
在获得新的校验信息后,可以采用新的校验信息,对作为校验的存储块进行更新,即将原来的校验信息擦除,写入新的校验信息。
如图4,Parity block中的Parity page(校验页)可以存储校验信息,在出现故障的User block中提取出User page(即目标页),进而可以将该User page与Parity page进行结合,得到Updated Parity page(即包含新的校验信息),通过Erase(擦除)Parityblock中原来的Parity page,将Updated Parity page写入Parity block中。
在本发明一实施例中,将目标页中的数据写入除出现故障的存储块之外的存储块,可以包括:
将目标页中的数据写入超级块中除出现故障的存储块之外的存储块,或,将目标页中的数据写入其他的超级块中的存储块。
在具体实现中,可以将目标页中的数据继续写入在该超级块中的其他存储块,也可以将目标页中的数据写入其他的超级块中的存储块。
在本发明实施例中,通过在固态硬盘中,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块,然后对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块,实现了对固态硬盘中坏块管理的优化,减少了在进行坏块管理时对固态硬盘影响。
参照图5,示出了本发明一实施例提供的另一种固态硬盘的控制方法的步骤流程图,固态硬盘可以具有多个存储单元,每个存储单元具有多个存储块,具体可以包括如下步骤:
步骤501,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块。
步骤502,在超级块的使用过程中,当组成的多个存储块中出现故障时,读取出现故障的存储块中存在数据写入的目标页,并在无法读取出现故障的存储块中存在数据写入的目标页的情况下,采用作为校验的存储块中的校验信息,恢复出现故障的存储块中存在数据写入的目标页,每个超级块具有用于为超级块中其他的存储块作为校验的存储块。
步骤503,对目标页进行回收,并将目标页中的数据写入除出现故障的存储块之外的存储块。
步骤504,针对超级块中在目标页之外的数据,生成新的校验信息,并采用新的校验信息,对作为校验的存储块进行更新。
步骤505,对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
参照图6,示出了本发明一实施例提供的另一种固态硬盘的控制方法的步骤流程图,固态硬盘可以具有多个存储单元,每个存储单元可以具有多个存储块,具体可以包括如下步骤:
步骤601,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块。
步骤602,在超级块的使用过程中,当组成的多个存储块中出现故障时,若组成的多个存储块中出现的故障为读故障,确定出现故障的存储块中存在数据写入的目标页,并对其进行回收。
步骤603,将目标页中的数据写入除出现故障的存储块之外的存储块。
步骤604,对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
参照图7,示出了本发明一实施例提供的另一种固态硬盘的控制方法的步骤流程图,固态硬盘可以具有多个存储单元,每个存储单元可以具有多个存储块,具体可以包括如下步骤:
步骤701,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块。
步骤702,在超级块的使用过程中,当组成的多个存储块中出现故障时,若组成的存储块出现写故障,将出现故障的存储块设置为只读状态,直至出现读故障或对超级块进行垃圾回收时,确定出现故障的存储块中存在数据写入的目标页,并对其进行回收。
步骤703,将目标页中的数据写入除出现故障的存储块之外的存储块。
步骤704,对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图8,示出了本发明一实施例提供的一种固态硬盘的控制装置的结构示意图,固态硬盘可以具有多个存储单元,每个存储单元可以具有多个存储块,具体可以包括如下模块:
超级块构建模块801,用于构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块中的部分存储块。
故障块标记模块802,用于对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
在本发明一实施例中,多个存储单元可以具有用于为出现故障的存储块作为备用的存储块,还可以包括:
预留空间设置模块,用于对于作为备用的存储块,将其设置为固态硬盘的预留空间。
在本发明一实施例中,还可以包括:
目标页回收模块,用于在超级块的使用过程中,当组成的多个存储块中出现故障时,确定出现故障的存储块中存在数据写入的目标页,并对其进行回收。
页数据写入模块,用于将目标页中的数据写入除出现故障的存储块之外的存储块。
在本发明一实施例中,还可以包括:
读故障处理模块,用于若组成的多个存储块中出现的故障为读故障,调用目标页回收模块。
写故障处理模块,用于若组成的存储块出现写故障,将出现故障的存储块设置为只读状态,直至出现读故障或对超级块进行垃圾回收时,调用目标页回收模块。
在本发明一实施例中,每个超级块具有用于为超级块中其他的存储块作为校验的存储块,目标页回收模块,可以包括:
目标页读取子模块,用于读取出现故障的存储块中存在数据写入的目标页。
目标页恢复子模块,用于在无法读取出现故障的存储块中存在数据写入的目标页的情况下,采用作为校验的存储块中的校验信息,恢复出现故障的存储块中存在数据写入的目标页。
在本发明一实施例中,还可以包括:
新的校验信息生成模块,用于针对超级块中在目标页之外的数据,生成新的校验信息。
校验信息更新模块,用于采用新的校验信息,对作为校验的存储块进行更新。
在本发明一实施例中,页数据写入模块,可以包括:
写入子模块将目标页中的数据写入超级块中除出现故障的存储块之外的存储块,或,将目标页中的数据写入其他的超级块中的存储块。
在本发明实施例中,通过在固态硬盘中,构建一个或多个超级块,每个超级块由多个存储块组成,组成超级块的多个存储块为多个存储单元所包含的存储块,然后对组成的多个存储块中出现故障的存储块进行标记,以使超级块使用组成的多个存储块中除出现故障的存储块之外的存储块,实现了对固态硬盘中坏块管理的优化,减少了在进行坏块管理时对固态硬盘影响。
本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上固态硬盘的控制方法。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上固态硬盘的控制方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种固态硬盘的控制方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种固态硬盘的控制方法,其特征在于,所述固态硬盘具有多个存储单元,每个存储单元具有多个存储块,所述方法包括:
构建一个或多个超级块,每个超级块由多个存储块组成,组成所述超级块的多个存储块为所述多个存储单元所包含的存储块中的部分存储块;
对组成的多个存储块中出现故障的存储块进行标记,以使所述超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
2.根据权利要求1所述的方法,其特征在于,所述多个存储单元具有用于为出现故障的存储块作为备用的存储块,还包括:
对于作为备用的存储块,将其设置为所述固态硬盘的预留空间。
3.根据权利要求1或2所述的方法,其特征在于,在所述对组成的多个存储块中出现故障的存储块进行标记之前,还包括:
在所述超级块的使用过程中,当组成的多个存储块中出现故障时,确定出现故障的存储块中存在数据写入的目标页,并对其进行回收;
将所述目标页中的数据写入除出现故障的存储块之外的存储块。
4.根据权利要求3所述的方法,其特征在于,在所述确定出现故障的存储块中存在数据写入的目标页,并对其进行回收之前,还包括:
若组成的多个存储块中出现的故障为读故障,执行所述确定出现故障的存储块中存在数据写入的目标页,并对其进行回收;
若组成的存储块出现写故障,将出现故障的存储块设置为只读状态,直至出现读故障或对所述超级块进行垃圾回收时,执行所述确定出现故障的存储块中存在数据写入的目标页,并对其进行回收。
5.根据权利要求3所述的方法,其特征在于,每个超级块具有用于为所述超级块中其他的存储块作为校验的存储块,所述确定出现故障的存储块中存在数据写入的目标页,包括:
读取出现故障的存储块中存在数据写入的目标页;
在无法读取出现故障的存储块中存在数据写入的目标页的情况下,采用所述作为校验的存储块中的校验信息,恢复出现故障的存储块中存在数据写入的目标页。
6.根据权利要求5所述的方法,其特征在于,在所述将所述目标页中的数据写入除出现故障的存储块之外的存储块之后,还包括:
针对所述超级块中在所述目标页之外的数据,生成新的校验信息;
采用所述新的校验信息,对作为校验的存储块进行更新。
7.根据权利要求3所述的方法,其特征在于,所述将所述目标页中的数据写入除出现故障的存储块之外的存储块,包括:
将所述目标页中的数据写入所述超级块中除出现故障的存储块之外的存储块,或,将所述目标页中的数据写入其他的超级块中的存储块。
8.一种固态硬盘的控制装置,其特征在于,所述固态硬盘具有多个存储单元,每个存储单元具有多个存储块,所述装置包括:
超级块构建模块,用于构建一个或多个超级块,每个超级块由多个存储块组成,组成所述超级块的多个存储块为所述多个存储单元所包含的存储块中的部分存储块;
故障块标记模块,用于对组成的多个存储块中出现故障的存储块进行标记,以使所述超级块使用组成的多个存储块中除出现故障的存储块之外的存储块。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的固态硬盘的控制方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的固态硬盘的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210302374.3A CN114691433A (zh) | 2022-03-25 | 2022-03-25 | 一种固态硬盘的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210302374.3A CN114691433A (zh) | 2022-03-25 | 2022-03-25 | 一种固态硬盘的控制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691433A true CN114691433A (zh) | 2022-07-01 |
Family
ID=82139574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210302374.3A Pending CN114691433A (zh) | 2022-03-25 | 2022-03-25 | 一种固态硬盘的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691433A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116755642A (zh) * | 2023-08-24 | 2023-09-15 | 四川云海芯科微电子科技有限公司 | 用于NAND Flash坏块的混合管理方法及装置 |
-
2022
- 2022-03-25 CN CN202210302374.3A patent/CN114691433A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116755642A (zh) * | 2023-08-24 | 2023-09-15 | 四川云海芯科微电子科技有限公司 | 用于NAND Flash坏块的混合管理方法及装置 |
CN116755642B (zh) * | 2023-08-24 | 2023-10-27 | 四川云海芯科微电子科技有限公司 | 用于NAND Flash坏块的混合管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023815B (zh) | 在固态存储器中实现raid | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
EP3072134B1 (en) | Defect management policies for nand flash memory | |
EP2367110B1 (en) | Emerging bad block detection | |
CN102194527B (zh) | 半导体存储器装置 | |
TWI625735B (zh) | 記憶體管理方法以及儲存控制器 | |
US20150363264A1 (en) | Cell-to-cell program interference aware data recovery when ecc fails with an optimum read reference voltage | |
US10489246B2 (en) | Data storage device and data maintenance method thereof | |
CN108829358B (zh) | 固态硬盘的坏块管理方法以及固态硬盘 | |
CN106297883B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
JP5950286B2 (ja) | アドレス変換テーブルを書き込む装置及び方法 | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
JP2006139478A (ja) | ディスクアレイシステム | |
JPWO2009004674A1 (ja) | 記憶装置、ディスク装置、書込み判定方法、制御装置 | |
CN114691433A (zh) | 一种固态硬盘的控制方法和装置 | |
CN113220221B (zh) | 存储器控制器与数据处理方法 | |
TW202234411A (zh) | 用於快閃記憶體中進行故障區塊管理的方法與裝置 | |
JP7177338B2 (ja) | メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 | |
JP2018136735A (ja) | メモリ制御装置及びメモリ制御方法 | |
JP2008077782A (ja) | 記憶データ処理装置、記憶装置、記憶データ処理プログラム | |
US11410741B2 (en) | Memory controller and flash memory system | |
US11443826B2 (en) | Storage area retirement in a storage device | |
US11275651B2 (en) | Memory controller and flash memory system | |
CN115185471A (zh) | Nand闪存颗粒及其逻辑单元筛选方法、电子设备 |
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 |