CN116610595A - 固态硬盘的管理方法及装置 - Google Patents
固态硬盘的管理方法及装置 Download PDFInfo
- Publication number
- CN116610595A CN116610595A CN202310501686.1A CN202310501686A CN116610595A CN 116610595 A CN116610595 A CN 116610595A CN 202310501686 A CN202310501686 A CN 202310501686A CN 116610595 A CN116610595 A CN 116610595A
- Authority
- CN
- China
- Prior art keywords
- virtual
- block
- blocks
- virtual block
- solid state
- 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 200
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000013500 data storage Methods 0.000 claims abstract description 8
- 238000007726 management method Methods 0.000 claims description 69
- 230000002159 abnormal effect Effects 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 18
- 238000004064 recycling Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 230000000875 corresponding effect Effects 0.000 description 17
- 238000004590 computer program Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000011084 recovery Methods 0.000 description 10
- 238000013519 translation Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种固态硬盘的管理方法及装置,固态硬盘中包括多个逻辑单元,每个逻辑单元包括M个平面,每个平面包括块,方法包括:确定多个虚拟块的虚拟块信息,虚拟块信息包括虚拟块级别、以及虚拟块中各块的块位置,虚拟块级别用于指示虚拟块中包括的块的数量,其中,每个虚拟块包括至少一个块,至少一个块为同一逻辑单元中各个平面上块号相同的至少一个好块,好块为可以进行数据存储或数据读取的块;根据多个虚拟块的虚拟块信息,对多个虚拟块中的部分虚拟块进行组合处理,组合后的虚拟块中包括的块的数量小于或等于M,M为大于1的整数。通过上述方法,可以提高固态硬盘的资源利用率。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种固态硬盘的管理方法及装置。
背景技术
固态硬盘(Solid State Disk,SSD)中,可以对单个闪存芯片中的多个平面(plane)并发使用,以提升固态硬盘的性能。其中,上述多个平面可以为同一逻辑单元(Logic Unit Number,LUN)中的多个平面。例如,假设一个逻辑单元中包括4个平面,每个平面包括多个块(block),每个块包括多个页(page),各页的大小为16k,若以单个平面的形式写数据,则每次可写入16k数据;若以4个平面并发的形式写数据,则每次可写入64k数据。由此,通常对多个平面并发使用。
目前,可以将同一逻辑单元中各个平面上、位置相同的多个块确定为一个虚拟块。对多个平面并发使用的前提是,各虚拟块中的所有块未被损坏。若某个虚拟块中部分块被损坏,则该虚拟块将不会被使用,即该虚拟块中未被损坏的块也不会被使用。导致固态硬盘中部分未被损坏的块被浪费,使得固态硬盘的资源利用率较低。
发明内容
本申请实施例提供了一种固态硬盘的管理方法及装置,所述方法可以提高固态硬盘的资源利用率。
第一方面,本申请实施例提供一种固态硬盘的管理方法,所述固态硬盘中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块,所述方法包括:
确定多个虚拟块的虚拟块信息,所述虚拟块信息包括虚拟块级别、以及所述虚拟块中各块的块位置,所述虚拟块级别用于指示所述虚拟块中包括的块的数量,其中,每个所述虚拟块包括至少一个块,所述至少一个块为同一逻辑单元中各个所述平面上块号相同的至少一个好块,所述好块为可以进行数据存储或数据读取的块;
根据所述多个虚拟块的虚拟块信息,对所述多个虚拟块中的部分虚拟块进行组合处理,组合后的虚拟块中包括的块的数量小于或等于所述M,所述M为大于1的整数。
上述技术方案提供的固态硬盘的管理方法,可以确定多个虚拟块的虚拟块信息,并可以根据多个虚拟块的虚拟块信息,对多个虚拟块中的部分虚拟块进行组合处理。通过上述方法,可以对不同虚拟块中的好块进行组合并使用,使得固态硬盘的资源利用率较高,且可以提高虚拟块的性能。
一种可能的实现方式中,所述根据所述多个虚拟块的虚拟块信息,对所述多个虚拟块中的部分虚拟块进行组合处理,包括:
根据所述多个虚拟块的虚拟块信息,在所述多个虚拟块中确定待选虚拟块,所述待选虚拟块中包括的块的数量小于所述M;
根据所述待选虚拟块的虚拟块信息,在所述多个待选虚拟块中确定虚拟块组,所述虚拟块组中包括至少两个虚拟块,所述至少两个虚拟块中包括的块的数量的和小于或等于所述M,所述至少两个虚拟块中包括的多个块的块位置不同;
对所述虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,并记录所述组合虚拟块的虚拟块信息。
上述技术方案提供的固态硬盘的管理方法,可以在多个虚拟块中确定虚拟块组,并对虚拟块组中的至少两个虚拟块进行组合处理。通过上述方法,可以提高虚拟块的虚拟块级别,进而提高虚拟块的性能。
一种可能的实现方式中,所述根据所述待选虚拟块的虚拟块信息,在所述多个待选虚拟块中确定虚拟块组,包括:
根据所述多个虚拟块的虚拟块级别,在所述多个待选虚拟块中确定至少两个目标虚拟块;所述至少两个目标虚拟块的虚拟块级别之和小于或等于所述M;
若所述至少两个目标虚拟块中、各块的块位置不同,则将所述至少两个目标虚拟块确定为所述虚拟块组。
上述技术方案提供的固态硬盘的管理方法,可以将至少两个虚拟块级别之和小于或等于M,且所包括的各块的块位置不同的虚拟块,确定为虚拟块组。实现了确定虚拟块组的目的。
一种可能的实现方式中,所述虚拟块信息中还包括所述虚拟块中各块的已擦除次数;所述根据所述多个虚拟块的虚拟块级别,在所述多个虚拟块中确定至少两个目标虚拟块,包括:
根据所述多个虚拟块的虚拟块级别、以及所述多个虚拟块中各块的已擦除次数,在所述多个虚拟块中确定至少两个目标虚拟块,其中,
所述至少两个目标虚拟块中包括的各块的已擦除次数差值的绝对值,小于或等于预设阈值。
上述技术方案提供的固态硬盘的管理方法,可以对可擦除次数较为接近的虚拟块进行组合处理。通过上述方法得到的组合虚拟块中,各块的已擦除次数较为接近,即各块的使用寿命较为接近,使得组合虚拟块较为稳定、使用寿命较长。
一种可能的实现方式中,所述确定多个虚拟块的虚拟块信息之前,所述方法还包括:
获取每个块的块信息,所述块信息包括块状态、块位置和块号;所述块状态包括健康状态或者异常状态,所述块位置为块所在的平面;
将各个平面上块号相同、且块状态为健康状态的至少一个块,确定为一个虚拟块,并记录所述虚拟块的虚拟块信息,其中,当块状态为健康状态时,该块为好块。
上述技术方案提供的固态硬盘的管理方法,可以将各个平面上块号相同、且块状态为健康状态的至少一个块,确定为一个虚拟块。通过上述方法,可以建立不同级别的虚拟块,以对固态硬盘中的所有好块进行使用,避免了由于部分块被损坏,导致整个虚拟块不被使用。
一种可能的实现方式中,所述方法还包括:
针对任意一个虚拟块,获取所述虚拟块中包括的至少一个块的当前块状态;
若所述至少一个块中存在块的当前块状态为异常状态,从所述虚拟块中删除当前块状态为异常状态的块。
上述技术方案提供的固态硬盘的管理方法,可以将状态为异常状态的块从虚拟块中删除,以保证虚拟块中其余状态为健康状态的块可以被继续使用。
一种可能的实现方式中,所述更新所述虚拟块之后,所述方法还包括:
根据所述虚拟块中剩余的块数量、以及所述剩余的块的位置,更新所述虚拟块的虚拟块信息。
上述技术方案提供的固态硬盘的管理方法,可以根据虚拟块汇总包括的块,动态更新各虚拟块的虚拟块信息,以使各虚拟块可以被正常使用。
一种可能的实现方式中,所述方法还包括:
获取每个虚拟块中的有效数据占比,所述有效数据占比为有效数据量与虚拟块总容量的比值;
根据所述每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。
上述技术方案提供的固态硬盘的管理方法,可以获取每个虚拟块中的有效数据占比;可以根据每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。通过上述方法,可以在固态硬盘中空闲虚拟块较少时,快速对待回收虚拟块进行回收,以增加固态硬盘中的空闲虚拟块,提升固态硬盘的存储性能。
一种可能的实现方式中,所述根据所述每个虚拟块中的有效数据占比,确定待回收虚拟块,包括:
将有效数据占比最小的一个虚拟块确定为待回收虚拟块;或者,
将有效数据占比最小的多个虚拟块中、虚拟块等级最低的虚拟块确定为待回收虚拟块。
上述技术方案提供的固态硬盘的管理方法,可以将有效数据最少的虚拟块确定为待回收虚拟块,使得对待回收虚拟块回收过程中、可以快速完成有效数据的迁移,使得虚拟块的回收速度较快。
一种可能的实现方式中,获取每个虚拟块中的有效数据占比之前,还包括:
确定多个虚拟块中不存在有空闲页的虚拟块。
上述技术方案提供的固态硬盘的管理方法,可以在多个虚拟块中不存在有空闲页的虚拟块时,对可以回收的虚拟块进行回收,以释放存储空间,便于用户数据的写入。
一种可能的实现方式中,所述方法还包括:
接收数据写入请求,所述数据写入请求中包括目标数据;
在多个虚拟块中确定至少一个待写入虚拟块,所述待写入虚拟块为所述多个虚拟块中有空闲页的虚拟块;
按照级别从高到低的顺序,对所述至少一个待写入虚拟块进行排序,并将前N个待选虚拟块确定为目标写入虚拟块,得到N个目标写入虚拟块;N为大于或等于1的整数;
将所述目标数据存储至所述N个目标写入虚拟块;
根据所述N个目标写入虚拟块的块信息,更新目标数据的地址映射信息。
上述技术方案提供的固态硬盘的管理方法,可以将多个虚拟块中有空闲页、且等级较高的N个虚拟块,确定为目标写入虚拟块,并将目标数据存储至目标写入虚拟块。通过上述方法,可以将数据存储至等级较高的虚拟块中,使固态硬盘的写性能较好。
一种可能的实现方式中,所述将所述目标数据存储至所述N个目标写入虚拟块,包括:
针对任意一个目标写入虚拟块,根据所述目标写入虚拟块的级别,确定所述目标写入虚拟块对应的单次写入量;
按照所述N个目标写入虚拟块的级别从高到低的顺序,根据每个目标写入虚拟块对应的单次写入量,依次将所述目标数据存储至所述N个目标写入虚拟块的所述空闲页中。
上述技术方案提供的固态硬盘的管理方法,可以根据目标写入虚拟块的块级别,确定单次写入的数据量,并按照级别从高到低的顺序,先向高级别的目标写入虚拟块中写入数据、再向低级别的目标写入虚拟块中写入数据,使得固态硬盘的写性能较好。实现了将目标数据存储中目标写入虚拟块的目的。
一种可能的实现方式中,所述虚拟块信息中还包括所述虚拟块中各块的块号;所述根据目标写入虚拟块的块信息,更新目标数据的地址映射信息,包括:
在目标数据的所述地址映射信息中,记录所述目标数据对应的块的块块号;所述目标数据对应的块为,所述目标数据存储至的所述空闲页所在的块。
上述技术方案提供的固态硬盘的管理方法,可以在写入目标数据之后,更新目标数据的地址映射信息,以便于计算设备中的处理器可以根据目标数据的地址映射信息对目标数据进行查找或访问。
第二方面,本申请实施例提供一种固态硬盘管理装置,所述固态硬盘管理装置应用于固态硬盘,所述固态硬盘中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块;所述固态硬盘管理装置包括确定模块和组合模块,其中,
所述确定模块用于,确定多个虚拟块的虚拟块信息,所述虚拟块信息包括虚拟块级别、以及所述虚拟块中各块的块位置,所述虚拟块级别用于指示所述虚拟块中包括的块的数量,其中,每个所述虚拟块包括至少一个块,所述至少一个块为同一逻辑单元中各个所述平面上块号相同的至少一个好块,所述好块为可以进行数据存储或数据读取的块;
所述组合模块用于,根据所述多个虚拟块的虚拟块信息,对所述多个虚拟块中的部分虚拟块进行组合处理,组合后的虚拟块中包括的块的数量小于或等于所述M,所述M为大于1的整数。
上述技术方案提供的固态硬盘管理装置,可以确定多个虚拟块的虚拟块信息,并可以根据多个虚拟块的虚拟块信息,对多个虚拟块中的部分虚拟块进行组合处理。通过上述装置,可以对不同虚拟块中的好块进行组合并使用,使得固态硬盘的资源利用率较高,且可以提高虚拟块的性能。
一种可能的实现方式中,组合模块具体用于:
根据所述多个虚拟块的虚拟块信息,在所述多个虚拟块中确定待选虚拟块,所述待选虚拟块中包括的块的数量小于所述M;
根据所述待选虚拟块的虚拟块信息,在所述多个待选虚拟块中确定虚拟块组,所述虚拟块组中包括至少两个虚拟块,所述至少两个虚拟块中包括的块的数量之和小于或等于所述M,所述至少两个虚拟块中包括的多个块的块位置不同;
对所述虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,以更新所述虚拟块。
上述技术方案提供的固态硬盘管理装置,可以在多个虚拟块中确定虚拟块组,并对虚拟块组中的至少两个虚拟块进行组合处理。通过上述装置,可以提高虚拟块的虚拟块级别,进而提高虚拟块的性能。
一种可能的实现方式中,组合模块具体用于:
根据所述多个虚拟块的虚拟块级别,在所述多个待选虚拟块中确定至少两个目标虚拟块;所述至少两个目标虚拟块的虚拟块级别之和、小于或等于所述M;
若所述至少两个目标虚拟块中、各块的块位置不同,则将所述至少两个目标虚拟块确定为所述虚拟块组。
上述技术方案提供的固态硬盘管理装置,可以将至少两个虚拟块级别之和小于或等于M,且所包括的各块的块位置不同的虚拟块,确定为虚拟块组。实现了确定虚拟块组的目的。
一种可能的实现方式中,所述虚拟块信息中还包括所述虚拟块中各块的已擦除次数;组合模块具体用于:
根据所述多个虚拟块的虚拟块级别、以及所述多个虚拟块中各块的已擦除次数,在所述多个虚拟块中确定至少两个目标虚拟块,其中,
所述至少两个目标虚拟块中包括的各块的已擦除次数差值的绝对值,小于或等于预设阈值。
上述技术方案提供的固态硬盘管理装置,可以对可擦除次数较为接近的虚拟块进行组合处理。组合虚拟块中,各块的已擦除次数较为接近,即各块的使用寿命较为接近,使得组合虚拟块较为稳定、使用寿命较长。
一种可能的实现方式中,确定模块具体用于:
获取每个块的块信息,所述块信息包括块状态、块位置和块号;所述块状态包括健康状态或者异常状态,所述块位置为块所在的平面;
将各个平面上块号相同、且块状态为健康状态的至少一个块,确定为一个虚拟块,并记录所述虚拟块的虚拟块信息,其中,当块状态为健康状态时,该块为好块。
上述技术方案提供的固态硬盘管理装置,可以将各个平面上块号相同、且块状态为健康状态的至少一个块,确定为一个虚拟块。通过上述装置,可以建立不同级别的虚拟块,以对固态硬盘中的所有好块进行使用,避免了由于部分块被损坏,导致整个虚拟块不被使用。
一种可能的实现方式中,所述装置还包括更新模块,所述更新模块用于:
若所述至少一个块中存在块的当前块状态为异常状态,从所述虚拟块中删除当前块状态为异常状态的块。
上述技术方案提供的固态硬盘管理装置,可以将状态为异常状态的块从虚拟块中删除,以保证虚拟块中其余状态为健康状态的块可以被继续使用。
一种可能的实现方式中,更新模块具体用于:
根据所述虚拟块中剩余的块数量、以及所述剩余的块的位置,更新所述虚拟块的虚拟块信息。
上述技术方案提供的固态硬盘管理装置,可以根据虚拟块汇总包括的块,动态更新各虚拟块的虚拟块信息,以使各虚拟块可以被正常使用。
一种可能的实现方式中,所述装置还包括回收模块,所述回收模块用于:
获取每个虚拟块中的有效数据占比,所述有效数据占比为有效数据量与虚拟块总容量的比值;
根据所述每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。
上述技术方案提供的固态硬盘管理装置,可以获取每个虚拟块中的有效数据占比;可以根据每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。通过上述装置,可以在固态硬盘中空闲虚拟块较少时,快速对待回收虚拟块进行回收,以增加固态硬盘中的空闲虚拟块,提升固态硬盘的存储性能。
一种可能的实现方式中,回收模块具体用于:
将有效数据占比最小的一个虚拟块确定为待回收虚拟块;或者,
将有效数据占比最小的多个虚拟块中、虚拟块等级最低的虚拟块确定为待回收虚拟块。
上述技术方案提供的固态硬盘管理装置,可以将有效数据最少的虚拟块确定为待回收虚拟块,使得对待回收虚拟块回收过程中、可以快速完成有效数据的迁移,使得虚拟块的回收速度较快。
一种可能的实现方式中,获取每个虚拟块中的有效数据占比之前,回收模块具体用于:
确定多个虚拟块中不存在有空闲页的虚拟块。
上述技术方案提供的固态硬盘管理装置,可以在多个虚拟块中不存在有空闲页的虚拟块时,对可以回收的虚拟块进行回收,以释放存储空间,便于用户数据的写入。
一种可能的实现方式中,所述装置还包括存储模块,所述存储模块用于:
接收数据写入请求,所述数据写入请求中包括目标数据;
在多个虚拟块中确定至少一个待写入虚拟块,所述待写入虚拟块为所述多个虚拟块中有空闲页的虚拟块;
按照级别从高到低的顺序,对所述至少一个待写入虚拟块进行排序,并将前N个待写入虚拟块确定为目标虚拟块,得到N个目标写入虚拟块;N为大于或等于1的整数;
将所述目标数据存储至所述N个目标写入虚拟块;
根据所述N个写入目标虚拟块的块信息,更新目标数据的地址映射信息。
上述技术方案提供的固态硬盘管理装置,可以将多个虚拟块中有空闲页、且等级较高的N个虚拟块,确定为目标写入虚拟块,并将目标数据存储至目标写入虚拟块。通过上述装置,可以将数据存储至等级较高的虚拟块中,使固态硬盘的写性能较好。
一种可能的实现方式中,存储模块具体用于:
针对任意一个目标写入虚拟块,根据所述目标写入虚拟块的级别,确定所述目标写入虚拟块对应的单次写入量;
按照所述N个目标写入虚拟块的级别从高到低的顺序,根据每个目标写入虚拟块对应的单次写入量,依次将所述目标数据存储至所述N个目标写入虚拟块的所述空闲页中。
上述技术方案提供的固态硬盘管理装置,可以根据目标写入虚拟块的块级别,确定单次写入的数据量,并按照级别从高到低的顺序,先向高级别的目标写入虚拟块中写入数据、再向低级别的目标写入虚拟块中写入数据,使得固态硬盘的写性能较好。实现了将目标数据存储中目标写入虚拟块的目的。
一种可能的实现方式中,所述虚拟块信息中还包括所述虚拟块中各块的块号;存储模块具体用于:
在目标数据的所述地址映射信息中,记录所述目标数据对应的块的块块号;所述目标数据对应的块为,所述目标数据存储至的所述空闲页所在的块。
上述技术方案提供的固态硬盘管理装置,可以在写入目标数据之后,更新目标数据的地址映射信息,以便于计算设备中的处理器可以根据目标数据的地址映射信息对目标数据进行查找或访问。
第三方面,本申请实施例提供一种固态硬盘,所述固态硬盘包括微处理器和闪存芯片,所述闪存芯片中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块,所述微处理器与所述M个平面连接;所述微处理器用于执行第一方平面任一项所述的方法。
上述技术方案提供的固态硬盘,可以将同一逻辑单元中各个平面上、块号相同的多个好块确定为一个虚拟块,并可以将虚拟块中包括的块的数量确定为虚拟块的级别。若固态硬盘中某个块被损坏,可以将该块从所属虚拟块中删除,并更新该虚拟块的级别。还可以对可以组合的多个虚拟块进行组合,以得到更高级别的虚拟块。使得固态硬盘的资源利用率较高。
第四方面,本申请实施例提供一种计算设备,所述计算机设备包括主板、处理器和第三方面所述的固态硬盘;
所述处理器设置在所述主板上,所述主板与所述固态硬盘连接;
所述处理器通过所述主板与所述固态硬盘进行通信,以向所述固态硬盘存储数据、或者读取所述固态硬盘中的数据。
上述技术方案提供的计算设备中的固态硬盘,可以将同一逻辑单元中各个平面上、块号相同的多个好块确定为一个虚拟块,并可以将虚拟块中包括的块的数量确定为虚拟块的级别。若固态硬盘中某个块被损坏,可以将该块从所属虚拟块中删除,并更新该虚拟块的级别。还可以对可以组合的多个虚拟块进行组合,以得到更高级别的虚拟块。使得固态硬盘的资源利用率较高。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被计算机执行时实现如第一方面中任一项所述的方法。
上述技术方案,可以将同一逻辑单元中各个平面上、块号相同的多个好块确定为一个虚拟块,并可以将虚拟块中包括的块的数量确定为虚拟块的级别。若固态硬盘中某个块被损坏,可以将该块从所属虚拟块中删除,并更新该虚拟块的级别。还可以对可以组合的多个虚拟块进行组合,以得到更高级别的虚拟块。使得固态硬盘的资源利用率较高。
第六方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时实现如第一方面中任一项所述的方法。
上述技术方案,可以将同一逻辑单元中各个平面上、块号相同的多个好块确定为一个虚拟块,并可以将虚拟块中包括的块的数量确定为虚拟块的级别。若固态硬盘中某个块被损坏,可以将该块从所属虚拟块中删除,并更新该虚拟块的级别。还可以对可以组合的多个虚拟块进行组合,以得到更高级别的虚拟块。使得固态硬盘的资源利用率较高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种计算设备的结构示意图;
图2为本申请实施例提供的一种闪存芯片的结构示意图;
图3为本申请实施例提供的一种虚拟块的示意图;
图4为本申请实施例提供的一种固态硬盘的管理方法的流程示意图;
图5为本申请实施例提供的另一种虚拟块的示意图;
图6为本申请实施例提供的另一种固态硬盘的管理方法的流程示意图;
图7为本申请实施例提供的又一种固态硬盘的管理方法的流程示意图;
图8为本申请实施例提供的又一种固态硬盘的管理方法的流程示意图;
图9为本申请实施例提供的又一种固态硬盘的管理方法的流程示意图;
图10为本申请实施例提供的一种固态硬盘管理装置的结构示意图;
图11为本申请实施例提供的另一种固态硬盘管理装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
为便于理解,首先结合图1,对本申请实施例涉及的计算设备进行说明。
图1为本申请实施例提供的一种计算设备的结构示意图。如图1所示,计算设备100可以包括固态硬盘101、主板102和处理器103。处理器103设置于主板102上。主板102与固态硬盘101通过有线或无线的方式连接。处理器103可以通过主板102与固态硬盘101进行通信,以实现数据交互。
在其他实施方式中,固态硬盘101还可以不设置于计算设备100内。固态硬盘101可以通过有线或无线的方式与计算设备100中的处理器103连接(通信),以实现数据交互。
固态硬盘101至少可以包括主机接口单元(Host-Interface Logic,HIL)1011、缓存1012、存储控制器1013、闪存(Flash Memory)1014和微处理器(CPU core)1015。
主机接口单元1011可以分别与缓存1012、微处理器1015连接,以及与主板102连接。固态硬盘101与主板102之间可以通过主机接口单元1011进行数据传输。
缓存1012可以与主机接口单元1011和存储控制器1013连接。缓存1012可以暂时存储主机接口单元1011接收的数据。缓存1012可以为动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)。
存储控制器1013可以分别与缓存1012、闪存1014以及微处理器1015连接。存储控制器1013可以用于将缓存1012中的数据存储至闪存1014中。
闪存1014可以为固态硬盘101内部用于承载数据的主体。闪存1014可以包括多个闪存芯片。例如,闪存芯片可以为NAND闪存(NAND flash)。需要说明的是,对于闪存芯片的详细说明,可以参见图2,此处不做赘述。
微处理器1015可以为ARM(Advanced RISC(Reduced Instruction Set Computer,精简指令集计算机)Machine)处理器。微处理器1015可以处理从主板102接收的请求,并可以控制主机接口单元1011、存储控制器1013以及闪存1014的内部功能模块。例如,微处理器1015上可以运行闪存转换层(Flash Translation Layer,FTL),微处理器1015可以通过闪存转换层完成逻辑地址与物理地址之间的转换、可以通过闪存转换层实现闪存1014的磨损均衡、以及可以通过闪存转换层对闪存1014上的块进行回收等。
需要说明的是,本申请实施例示意的计算设备100的结构并不构成对计算设备100的具体限定。在一些实施例中,计算设备100可以包括比图示更多或更少的结构,本申请实施例对此不作赘述。
下面,结合图2,对本申请实施例涉及的闪存芯片的结构进行说明。
图2为本申请实施例提供的一种闪存芯片的结构示意图。如图2所示,闪存芯片(Device)可以包括逻辑单元(Logic unit,LUN),其中,LUN又可以叫做Die。逻辑单元可以包括平面(Plane),平面中可以包括块(Block),块中可以包括页(Page)。
一个闪存芯片可以包括多个逻辑单元,例如4至8个逻辑单元。请参见图2,图2以闪存芯片包括8个逻辑单元为例。8个逻辑单元可以分别为逻辑单元0、逻辑单元1、……、和逻辑单元7。逻辑单元可以为闪存芯片中接收和执行命令的基本单元。不同的逻辑单元可以同时接收和执行不同的命令。但对于一个逻辑单元而言,该逻辑单元一次只能执行一个命令。
示例性的,在同一时刻,逻辑单元0和逻辑单元1可以分别接收读命令和写命令。但对于逻辑单元0或者逻辑单元1而言,该逻辑单元在同一时刻只能接收一个命令,而不能既接收读命令又接收写命令。
一个逻辑单元可以包括多个平面,例如2至4个平面。请参见图2,图2以逻辑单元包括2个平面为例。例如,逻辑单元0可以包括平面0和平面1,每个平面具有独立的页寄存器。
一个平面可以包括多个块。块可以为物理形式的块,即块可以为物理块。例如,平面0可以包括块0、块1、……、和块n。块可以为闪存芯片中的最小擦除单元。
一个块可以包括多个页。页可以为物理形式的页,即页可以为物理页。例如,块1可以包括页0、页1、……、和页n。页可以为闪存芯片中的最小读写单元。
需要说明的是,本申请实施例示意的闪存芯片的结构是为了更加清楚的说明本申请实施例的技术方案,并不构成对闪存芯片的具体限定。
目前,微处理器可以对同一逻辑单元中的多个平面并发使用。也就是说,可以将同一逻辑单元中各个平面上、块号相同的多个块确定为一个虚拟块,并同时向一个虚拟块中存储数据、或同时从一个虚拟块中读取数据。下面,以一个逻辑单元可以包括4个平面,每个平面可以包括8个块为例,结合图3,对闪存芯片中的虚拟块进行说明。
图3为本申请实施例提供的一种虚拟块的示意图。请参见图3,逻辑单元可以包括平面0、平面1、平面2和平面3。每个平面可以包括块0、块1、……、和块7。
如图3所示,各个平面上块号相同的多个块可以组成一个虚拟块。如图3所示,每个虚线框中的多个块可以构成一个虚拟块。
虚拟块的块号可以与虚拟块中所包括的块的块号相同。例如,多个块0组成的虚拟块可以为虚拟块0。或者,也可以采用“X+n”的方式命名虚拟块,其中,X可以为虚拟块中所包括的块的块号,n可以为任意正整数。例如,假设n为100,则多个块0组成的虚拟块可以为虚拟块100、多个块1组成的虚拟块可以为虚拟块101。本申请实施例中,虚拟块的块号可以与虚拟块中所包括的块的块号相同。
对于图3所示的虚拟块,若某个虚拟块中的任意一个或多个块被损坏,则该虚拟块将不会被使用。例如,假设虚拟块0中有一个块被损坏,则整个虚拟块0将不会被使用,也就是说,虚拟块0中其他3个未被损坏的块也不会被使用(下文中将被损坏的块称为坏块,将未被损坏的块称为好块)。
然而,闪存芯片中的部分块可能出厂时就为坏块。另外,出厂时,闪存芯片上各个好块的初始擦除次数并不一致(出厂前的测试流程导致各个块的初始擦除次数不同),导致固态硬盘在使用过程中、同一虚拟块中的所有块一般不会同时损坏。一旦虚拟块中出现坏块,该虚拟块将不会被使用,使得固态硬盘中大量好块被浪费。
有鉴于此,本申请实施例提供了一种固态硬盘的管理方法。该方法可以在固态硬盘初始化时,将同一逻辑单元中各个平面上、块号相同的多个好块确定为一个虚拟块,并可以将虚拟块中包括的好块的数量确定为虚拟块的级别。例如,若某个虚拟块中包括4个好块,则该虚拟块的级别可以为4;若某个虚拟块中包括3个好块,则该虚拟块的级别可以为3。若固态硬盘使用过程中,某个块被损坏,可以将该块从所属虚拟块中删除,并更新该虚拟块的级别。固态硬盘在使用过程中,还可以对可以组合的多个虚拟块进行组合,以得到更高级别的虚拟块。通过上述方法,可以对固态硬盘中每一个好块进行使用,使得固态硬盘的资源利用率较高。
下面以具体的实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图4为本申请实施例提供的一种固态硬盘的管理方法的流程示意图。该方法的执行主体可以为固态硬盘管理装置,也可以为集成了固态硬盘管理装置的固态硬盘,下述以执行主体为集成了固态硬盘管理装置的固态硬盘为例进行说明。本实施例中,固态硬盘管理装置可以为图1中的微处理器。请参见图5,该方法可以包括:
S401、确定多个虚拟块的虚拟块信息。
本实施例中,固态硬盘中包括多个逻辑单元,每个逻辑单元包括M个平面,每个平面包括多个块。
本实施例中,可以将同一逻辑单元中、各个平面上块号相同的好块,确定为一个虚拟块。
应该理解的是,一个虚拟块中至少包括一个块,最多可以包括M个块。
本实施例中,块可以为物理形式的块。即块可以为物理块。
虚拟块信息包括:虚拟块级别、以及虚拟块中各块的块位置,虚拟块级别用于指示虚拟块中包括的块的数量,其中,每个所述虚拟块包括至少一个块,所述至少一个块为同一逻辑单元中各个所述平面上块号相同的至少一个好块,所述好块为可以进行数据存储或数据读取的块。例如,若某虚拟块中包括4个块,则该虚拟块的虚拟块级别可以为4;若某虚拟块中包括1个块,则该虚拟块的虚拟块级别可以为1。
虚拟块中各块的块位置可以用于指示,各个块所在的平面。
下面,结合图5,对本申请实施例中的虚拟块进行说明。
图5为本申请实施例提供的另一种虚拟块的示意图。图5表示好块的方框为实线框,表示坏块的方框为虚线框。请参加图5,逻辑单元可以包括4个平面,4个平面可以分别为平面0、平面1、平面2和平面3。每个平面上可以包括块0、块1、……、和块6。
其中,平面0上的块3和块6为坏块。平面1上的块4、块5和块6为坏块。平面2上的块4、块5和块6为坏块。平面3上的块5和块6为坏块。
图5中各个平面上的块0可以组成虚拟块0,各个平面上的块1可以组成虚拟块1,各个平面上的块2可以组成虚拟块2。平面1、平面2和平面3上的块3可以组成虚拟块3。平面0和平面3上的块4可以组成虚拟块4。平面0上的块5可以组成虚拟块5。由于各个平面上的块6均为坏块,因此各个块6不能组成虚拟块。
由此,虚拟块0、虚拟块1和虚拟块2的虚拟块级别为4。虚拟块3的虚拟块级别为3。虚拟块4的虚拟块级别为2。虚拟块5的虚拟块级别为1。
虚拟块0中各块的块位置分别为平面0、平面1、平面2和平面3;虚拟块1中各块的块位置分别为平面0、平面1、平面2和平面3;虚拟块2中各块的块位置分别为平面0、平面1、平面2和平面3。虚拟块3中各块的块位置分别为平面1、平面2和平面3。虚拟块4中各块的块位置分别为平面0和平面3;虚拟块5中的1个块的块位置为平面0。
本实施例中,各虚拟块的虚拟块信息可以存储于固态硬盘的缓存或者闪存中。确定多个虚拟块的虚拟块信息时,可以从固态硬盘的缓存或者闪存中获取多个虚拟块的虚拟块信息。
S402、根据多个虚拟块的虚拟块信息,对多个虚拟块中的部分虚拟块进行组合处理。
组合后的虚拟块中包括的块的数量小于或等于M,M为大于1的整数。
本实施例中,可以对至少两个虚拟块进行组合处理。其中,该至少两个虚拟块的虚拟块级别之和小于或等于M,且该至少两个虚拟块中、各块的块位置不同。
以图5为例,图5中M为4。图5中虚拟块3的虚拟块级别为3,虚拟块4的虚拟块级别为2,虚拟块5的虚拟块级别为1。
虚拟块3的虚拟块级别与虚拟块5的虚拟块级别之和等于4,虚拟块3和虚拟块5中各个块的块位置不同,由此,可以对虚拟块3和虚拟块5进行组合处理,以得到一个虚拟块级别为4的组合虚拟块。
虚拟块4的虚拟块级别与虚拟块5的虚拟块级别之和小于4,然而,虚拟块4中平面0上的块4、与虚拟块5中平面0上的块5的物理块位置相同。因此,不能对虚拟块4和虚拟块5进行组合处理。
应该理解的是,虚拟块的虚拟块等级越高,该虚拟块的性能越好。因此,对虚拟块进行组合处理可以提高虚拟块的性能。
可选的,本实施例中,对至少两个虚拟块进行组合处理,得到组合虚拟块之后。还可以对组合虚拟块的虚拟块信息进行更新。
以图5为例,假设对图5中的虚拟块3和虚拟块5进行组合处理后,得到组合虚拟块。组合虚拟块中可以包括面0上的块5,以及面1、面2和面3上的块3。则组合虚拟块的虚拟块等级可以为4。
可选的,组合虚拟块的块号可以与组合次数相关。例如,第N次进行组合处理形成的组合虚拟块的块号为组合虚拟块N。例如,通过第一次组合处理得到的虚拟块可以为组合虚拟块1,通过第二次组合处理得到的虚拟块可以为组合虚拟块2等。
本实施例提供的固态硬盘的管理方法,可以确定多个虚拟块的虚拟块信息,并可以根据多个虚拟块的虚拟块信息,对多个虚拟块中的部分虚拟块进行组合处理。通过上述方法,可以对不同虚拟块中的好块进行组合并使用,使得固态硬盘的资源利用率较高,且可以提高虚拟块的性能。
在图4实施例的基础上,下面,结合图7,对上述方案进行详细说明。
图6为本申请实施例提供的另一种固态硬盘的管理方法的流程示意图。该方法的执行主体可以为固态硬盘管理装置,也可以为集成了固态硬盘管理装置的固态硬盘,下述以执行主体为集成了固态硬盘管理装置的固态硬盘为例进行说明。本实施例中,固态硬盘管理装置可以为图1中的微处理器。请参见图6,该方法可以包括:
S601、确定多个虚拟块的虚拟块信息。
需要说明的是,S601的具体实现方式可以参见S401,此处不再赘述。
S602、根据多个虚拟块的虚拟块信息,在多个虚拟块中确定待选虚拟块。
待选虚拟块中包括的块的数量小于M。也就是说,待选虚拟块可以为,虚拟块级别小于M的虚拟块。
示例性的,假设M等于4,则虚拟块级别为3、2或者1的虚拟块均可以为待选虚拟块。
本实施例中,可以周期性获取各个虚拟块的信息,并根据虚拟块信息在多个虚拟块中确定待选虚拟块。
S603、根据多个虚拟块的虚拟块级别,在多个待选虚拟块中确定至少两个目标虚拟块。
至少两个目标虚拟块的虚拟块级别之和小于或等于M。也就是说,至少两个目标虚拟块可以为,虚拟块级别之和小于或等于M的至少两个虚拟块。
应该理解的是,目标虚拟块的数量可以为大于或等于2、且小于或等于M的任意一个整数。
示例性的,假设M等于4,多个待选虚拟块、以及待选虚拟块的级别可以如表1所示:
表1
待选虚拟块 | 待选虚拟块的级别 |
虚拟块1 | 3 |
虚拟块2 | 2 |
虚拟块3 | 1 |
虚拟块4 | 1 |
由表1可知,至少两个目标虚拟块可以为虚拟块1和虚拟块3;或者,至少两个目标虚拟块可以为虚拟块1和虚拟块4;或者,至少两个目标虚拟块可以为虚拟块2和虚拟块3;或者,至少两个目标虚拟块可以为虚拟块2和虚拟块4;或者,至少两个目标虚拟块可以为虚拟块3和虚拟块4;或者,至少两个目标虚拟块可以为虚拟块2、虚拟块3和虚拟块4。
可选的,虚拟块信息中还可以包括虚拟块中各块的已擦除次数。本实施例中,还可以根据多个虚拟块的虚拟块级别、以及多个虚拟块中各块的已擦除次数,在多个虚拟块中确定至少两个目标虚拟块,其中,至少两个目标虚拟块中包括的各块的已擦除次数差值的绝对值,小于或等于预设阈值。
具体而言,至少两个目标虚拟块可以为,虚拟块级别之和小于或等于M的至少两个虚拟块;且至少两个目标虚拟块中包括的各块的已擦除次数差值的绝对值,小于或等于预设阈值。也就是说,至少两个目标虚拟块中包括的各块的已擦除次数较为接近。这样,至少两个目标虚拟块组合得到组合虚拟块之后,组合虚拟块中包括的各块的已擦除次数较为接近,进一步优化了固态硬盘的磨损均衡,使得组合虚拟块的使用寿命较长。
示例性的,假设预设阈值为5。假设虚拟块1与虚拟块3的虚拟块级别之和小于M,虚拟块1与虚拟块4的虚拟块级别之和也小于M。假设虚拟块1中的块已擦除次数为50次,虚拟块3中的块已擦除次数为30次,虚拟块4中的块已擦除次数为48次。则可以将虚拟块1和虚拟块4确定为两个目标虚拟块。
S604、判断至少两个目标虚拟块中、各块的块位置是否相同。
若是,执行S605;
若否,执行S606。
需要说明的是,本实施例中,若至少两个目标虚拟块中、存在至少两个块的块位置相同,则认为至少两个目标虚拟块中、各块的块位置相同。其中,块位置用于指示块所在的平面的位置。
示例性的,假设S603中确定的两个目标虚拟块为虚拟块2和虚拟块3,且虚拟块2的虚拟块级别为2、虚拟块3的虚拟块级别为1。其中,虚拟块2中的2个块分别在面0和面1上,虚拟块3中的1个块在面0上。则虚拟块2中面0上的块、与虚拟块3中面0上的块的块位置相同。由此可以确定,虚拟块2和虚拟块3中各块的块位置相同。
S605、停止将至少两个目标虚拟块确定为虚拟块组。
S606、将至少两个目标虚拟块确定为虚拟块组,对虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,并记录组合虚拟块的虚拟块信息。
S605-S606中,虚拟块组中可以包括至少两个虚拟块,至少两个虚拟块中包括的块的数量之和小于或等于M。
本实施例中,虚拟块组中的至少两个虚拟块可以为,可以进行合并的虚拟块。
需要说明的是,若至少两个目标虚拟块中、至少存在两个块的块位置相同,则不能对该至少两个目标虚拟块进行合并处理,因此,可以停止将该至少两个目标虚拟块确定为虚拟块组。若至少两个目标虚拟块中、各块的块位置不同,则可以对该至少两个目标虚拟块进行合并处理,因此,可以将该至少两个目标虚拟块确定为虚拟块组,对虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,并记录组合虚拟块的虚拟块信息。
需要说明的是,S606中对虚拟块组中的虚拟块进行组合处理的具体实现方式可以参见S402,此处不再赘述。
可选的,本实施例中,还可以在固态硬盘初始化时,确定多个虚拟块、并记录多个虚拟块的虚拟块信息,以便于在固态硬盘使用过程中,根据虚拟块信息,对可以组合的虚拟块进行组合处理。
具体而言,可以获取每个块的块信息,块信息包括块状态、块位置和块号;块状态包括健康状态或者异常状态,块位置为块所在的平面;将各个平面上块号相同、且块状态为健康状态的至少一个块,确定为一个虚拟块,并记录虚拟块的虚拟块信息。
块状态为健康状态的块可以为,未被损坏的块、或者上文中所述的好块。
块状态为异常状态的块可以为,被损坏的块、或者上文中所述的坏块。
需要说明的是,虚拟块的确定方法可以参见图3实施例,此处不做赘述。
本实施例提供的固态硬盘的管理方法,通过根据多个虚拟块的虚拟块信息,在多个虚拟块中确定待选虚拟块;并根据多个虚拟块的虚拟块级别,在多个待选虚拟块中确定至少两个目标虚拟块;若至少两个目标虚拟块中、各块的块位置不同,则将至少两个目标虚拟块确定为虚拟块组,并对虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,并记录组合虚拟块的虚拟块信息。通过上述方法,可以对不同虚拟块中的好块进行组合并使用,使得固态硬盘的资源利用率较高,且可以提高虚拟块的性能。
在上述任一实施例的基础上,固态硬盘在运行过程中,若某个块被损坏,还可以对该块所在的虚拟块进行更新。下面,结合图7,对上述方案进行详细说明。
图7为本申请实施例提供的又一种固态硬盘的管理方法的流程示意图。该方法的执行主体可以为固态硬盘管理装置,也可以为集成了固态硬盘管理装置的固态硬盘,下述以执行主体为集成了固态硬盘管理装置的固态硬盘为例进行说明。本实施例中,固态硬盘管理装置可以为图1中的微处理器。请参见图7,该方法可以包括:
S701、针对任意一个虚拟块,获取虚拟块中包括的至少一个块的当前块状态。
本实施例中,可以周期性获取每个虚拟块中各块的块状态。
本实施例中,可以通过擦除指令,获取至少一个块的当前块状态。
具体而言,可以采用擦除指令对任一块进行擦除,若擦除成功,则可以确定该块的当前块状态为健康状态;若擦除失败,则可以确定该块的当前块状态为异常状态。
本实施例中,至少可以通过如下两种方式,对至少一个块进行擦除:
方式1、通过多平面擦除指令、和单平面擦除指令对至少一个块进行擦除。
多平面擦除指令可以为,一次可以对一个虚拟块中的所有块进行擦除的擦除指令。
单平面擦除指令可以为,一次可以对一个块进行擦除的擦除指令。
该方式下,可以先采用多平面擦除指令对虚拟块进行擦除,若擦除成功,则可以确定虚拟块中包括的所有块的当前块状态为健康状态。若擦除失败,可以进一步采用单平面擦除指令、对虚拟块中的各个块进行擦除。采用单平面擦除指令对各块进行擦除时,若擦除成功,则可以确定该块的当前块状态为健康状态;若擦除失败,则可以确定该块的当前块状态为异常状态。
该方式下,若虚拟块的虚拟块级别较高,可以较快的确定至少一个块的当前块状态。
方式2、通过单平面擦除指令对至少一个块进行擦除。
该方式下,可以采用单平面擦除指令对各个块进行擦除,以确定块的当前块状态。
该方式下,无需对多平面擦除指令和单平面擦除指令进行切换,使得对块的擦除过程较为简单。
需要说明的是,多平面擦除指令和单平面擦除指令可以由闪存芯片的厂家提供。
S702、判断至少一个块的当前块状态是否为异常状态。
若否,执行S703;
若是,执行S704。
S703、确定虚拟块无需更新。
应该理解的是,若虚拟块中各块的当前块状态均为健康状态,则虚拟块中所有块可以为未被损坏的好块,虚拟块可以继续使用、无需更新。
S704、从虚拟块中删除当前块状态为异常状态的块。
异常状态的块可以为被损坏的坏块。应该理解的是,被损坏的块不能被继续使用,因此需要从虚拟块中删除,以保证虚拟块中其余的好块可以被继续使用。
S705、更新虚拟块的虚拟块信息。
本实施例中,可以根据虚拟块中剩余的块数量、以及剩余的块的块位置,更新虚拟块的虚拟块信息。
具体而言,可以根据虚拟块中剩余的块数量,确定更新后虚拟块的虚拟块级别,并在虚拟块信息中更新虚拟块级别。可以根据剩余的块的块位置,确定更新后虚拟块中各块的块位置,并在虚拟块信息中更新块的块位置。
示例性的,假设更新前的虚拟块等级为4,虚拟块中、各块的块号和块位置如表2A所示:
表2A
块号 | 块位置 |
块0 | 平面0 |
块0 | 平面1 |
块0 | 平面2 |
块0 | 平面3 |
若平面0、平面1和平面3上的块0的当前块状态为健康状态,平面2上的块0的当前块状态为异常状态。可以从虚拟块中删除平面2上的块0,得到更新后的虚拟块。更新后的虚拟块中、各块的块号和块位置可以如表2B所示:
表2B
块号 | 块位置 |
块0 | 平面0 |
块0 | 平面1 |
块0 | 平面3 |
由表2B可知,更新后的虚拟块的虚拟块等级可以为3,更新后的虚拟块中各块的块位置可以为平面0、平面1和平面3。
本实施例提供的固态硬盘的管理方法,可以周期性获取虚拟块中包括的至少一个块的当前块状态,若存在块的当前块状态为异常状态,则对虚拟块进行更新。通过上述方法,可以及时删除虚拟块中的坏块,以动态更新各虚拟块中包括的块,并可以动态更新各虚拟块的虚拟块信息,以使各虚拟块可以被正常使用。
在上述任一实施例的基础上,固态硬盘在运行过程中,还可以对可回收的虚拟块进行回收。下面,结合图8,对上述方案进行详细说明。
图8为本申请实施例提供的又一种固态硬盘的管理方法的流程示意图。该方法的执行主体可以为固态硬盘管理装置,也可以为集成了固态硬盘管理装置的固态硬盘,下述以执行主体为集成了固态硬盘管理装置的固态硬盘为例进行说明。本实施例中,固态硬盘管理装置可以为图1中的微处理器。请参见图8,该方法可以包括:
S801、获取每个虚拟块中的有效数据占比。
有效数据占比为有效数据量与虚拟块总容量的比值。例如,假设某虚拟块总容量为16320k,有效数据量为640k,则有效数据占比为640/16320=3.9%。
本实施例中,虚拟块信息中还可以包括,虚拟块中的有效数据占比。相应的,可以从各虚拟块信息中,获取每个虚拟块中的有效数据占比。
一种可能的实现方式中,固态硬盘中空闲虚拟块的数量小于或等于预设阈值时,微处理器可以对固态硬盘中可以回收的虚拟块进行回收处理。其中,空闲虚拟块可以为可用于存储数据的虚拟块。也就是说,固态硬盘中空闲虚拟块的数量小于或等于预设阈值时,可以获取每个虚拟块中的有效数据占比,以便于对可以回收的虚拟块进行回收。
另一种可能的实现方式中,在向固态硬盘中写数据时,若固态硬盘中不存在有空闲页的虚拟块,可以对固态硬盘中可以回收的虚拟块进行回收处理。也就是说,在向固态硬盘中写数据时,若固态硬盘中不存在有空闲页的虚拟块,可以获取每个虚拟块中的有效数据占比,以便于对可以回收的虚拟块进行回收。
S802、根据每个虚拟块中的有效数据占比,确定待回收虚拟块。
本实施例中,可以将有效数据占比最小的一个虚拟块确定为待回收虚拟块;或者,将有效数据占比最小的多个虚拟块中、虚拟块等级最低的虚拟块确定为待回收虚拟块。
具体而言,一种可能的实现方式中,若多个虚拟块中有一个虚拟块的有效数据占比最小,则可以将该有效数据占比最小的虚拟块确定为待回收虚拟块。
示例性的,假设多个虚拟块和虚拟块的有效数据占比如表3所示,
表3
虚拟块号 | 有效数据占比 |
虚拟块0 | 38.4% |
虚拟块1 | 19.6% |
虚拟块2 | 3.9% |
虚拟块3 | 39.2% |
由表3可知,有效数据占比最小的虚拟块为虚拟块2,则可以将虚拟块2确定为待回收虚拟块。
应该理解的是,对虚拟块回收处理时,需要将虚拟块中的有效数据迁移。若虚拟块中包括的有效数据占比最小,则有效数据最少,则可以更快的完成有效数据的迁移,使得虚拟块的回收速度较快。
该方式下,虚拟块2中包括的有效数据占比最小。因此,将有虚拟块2确定为待回收虚拟块可以使得虚拟块的回收速度较快。
另一种可能的实现方式中,若多个虚拟块中有多个虚拟块的有效数据占比一致,且该有效数据占比小于其他虚拟块的有效数据占比,则可以将该多个虚拟块中、虚拟块等级最低的虚拟块确定为待回收虚拟块。
示例性的,假设多个虚拟块、虚拟块等级、以及虚拟块的有效数据占比如表4所示,
表4
虚拟块号 | 虚拟块等级 | 有效数据占比 |
虚拟块0 | 4 | 3.9% |
虚拟块1 | 4 | 38.4% |
虚拟块2 | 3 | 19.6% |
虚拟块3 | 2 | 3.9% |
由表4可知,虚拟块0和虚拟块3的有效数据占比均为3.9%,且其余虚拟块的有效数据占比均大于3.9%。虚拟块0的虚拟块等级为4,虚拟块3的虚拟块等级为2,则可以将虚拟块3确定为待回收虚拟块。
该方式下,虽然虚拟块0和虚拟块3的有效数据占比一致,但由于虚拟块3中包括的块较少,因此虚拟块3中的实际有效数据少于虚拟块0中的实际有效数据。因此,将虚拟块3确定为待回收虚拟块可以使得虚拟块的回收速度较快。
可选的,若固态硬盘中空闲虚拟块的数量小于或等于预设阈值时,还可以将级别最高的至少一个虚拟块中有效数据占比最小的虚拟块确定为待回收虚拟块,以减少级别较低的虚拟块的擦除次数。
可选的,在向固态硬盘中写数据时,若固态硬盘中不存在有空闲页的虚拟块,可以直接将多个虚拟块中、有效数据占比最小的虚拟块确定为待回收虚拟块,避免进一步判断虚拟块的级别,使得虚拟块的回收速度较快。
S803、对待回收虚拟块进行回收。
应该理解的是,垃圾回收可以为,迁移待回收虚拟块上的有效数据、并对迁移后的待回收虚拟块进行擦除,从而对待回收的虚拟块进行回收,以释放回收后虚拟块的存储空间的处理过程。
应该理解的是,对虚拟块进行回收处理的过程中,需要对虚拟块进行擦除处理。若擦除处理时,确定虚拟块中包括坏块,还可以对虚拟块进行更新。对虚拟块更新的具体方式,可以参见图7实施例,此处不再赘述。
需要说明的是,若在回收的过程中对虚拟块进行了更新,则对虚拟块回收处理后,需要对虚拟块的虚拟块信息进行更新。
本实施例提供的固态硬盘的管理方法,可以获取每个虚拟块中的有效数据占比;可以根据每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。通过上述方法,可以在固态硬盘中空闲虚拟块较少时、或者向固态硬盘中写数据时发现不存在有空闲页的虚拟块时,快速对待回收虚拟块进行回收,以增加固态硬盘中的空闲虚拟块,提升固态硬盘的存储性能。
在上述任一实施例的基础上,固态硬盘接收到数据后,可以根据目标写入虚拟块的虚拟块级别,对数据进行存储。下面,结合图9,对上述方案进行详细说明。
图9为本申请实施例提供的又一种固态硬盘的管理方法的流程示意图。该方法的执行主体可以为固态硬盘管理装置,也可以为集成了固态硬盘管理装置的固态硬盘,下述以执行主体为集成了固态硬盘管理装置的固态硬盘为例进行说明。本实施例中,固态硬盘管理装置可以为图1中的微处理器。请参见图9,该方法可以包括:
S901、接收数据写入请求,数据写入请求中包括需要写入的目标数据。
本实施例中,固态硬盘接收目标数据时,可以先将目标数据暂存在缓存中;并可以在闪存芯片中确定了存储位置之后,将缓存中的目标数据存储至闪存芯片中。
S902、在多个虚拟块中确定目标写入虚拟块。
目标写入虚拟块可以为,用于存储目标数据的虚拟块。
本实施例中,可以在多个虚拟块中确定至少一个待写入虚拟块,待写入虚拟块为多个虚拟块中有空闲页的虚拟块;按照级别从高到低的顺序,对至少一个待写入虚拟块进行排序,并将前N个待写入虚拟块确定为目标写入虚拟块,得到N个目标写入虚拟块;N为大于或等于1的整数。
具体而言,可以根据目标数据所需的存储空间的大小,将有空闲页、且等级较高的至少一个虚拟块确定为目标写入虚拟块。
应该理解的是,虚拟块的等级越高,虚拟块中包括的块的数量越多,虚拟块的性能越好。由此,本实施例中,可以将有空闲页、且等级较高的虚拟块确定为目标写入虚拟块。以使固态硬盘的写性能较好。
可选的,若固态硬盘中不存在有空闲页的虚拟块,本实施例中,还可以通过图8实施例提供的方法,对固态硬盘中可以回收的虚拟块进行回收。并可以在回收的虚拟块中确定目标写入虚拟块,以通过目标写入虚拟块对目标数据进行存储。
S903、将目标数据存储至目标写入虚拟块。
本实施例中,针对任意一个目标写入虚拟块,根据目标写入虚拟块的级别,确定目标写入虚拟块对应的单次写入量;按照N个目标写入虚拟块的级别从高到低的顺序,根据每个目标写入虚拟块对应的单次写入量,依次将目标数据存储至N个目标写入虚拟块的所述空闲页中。
具体而言,不同级别的目标写入虚拟块对应的单次写入量不同。若N个目标写入虚拟块的级别相同,可以通过至少一次写操作,根据单次写入量将目标数据存储至目标写入虚拟块的空闲页中;其中,每次写操作存储的数据量等于单次写入量。若N个目标写入虚拟块的级别不同,可以按照级别从高到低的顺序,先根据级别最高的虚拟块的单次写入量、向最高级别的目标虚拟块中写入目标数据;再依次根据较低级别的虚拟块的单次写入量、向较低级别的目标虚拟块中写入目标数据,直至将所有目标数据写入N个目标写入虚拟块的空闲页中。
示例性的,假设块中各页的大小为16k。假设N等于1。若目标写入虚拟块的级别为4,则目标写入虚拟块中可以包括4个块,目标写入虚拟块单次写入量可以为16k×4=64k。若目标写入虚拟块的级别为3,则目标写入虚拟块中可以包括3个块,目标写入虚拟块单次写入量可以为16k×3=48k。
假设块中各页的大小为16k。假设N等于2,其中一个目标写入虚拟块的级别为4,另一个目标写入虚拟块的级别3。则可以先以单次写入量为64k、向级别为4的目标写入虚拟块中写入数据,再以单次写入量为48k、向级别为3的目标写入虚拟块中写入数据。
S904、根据目标写入虚拟块的块信息,更新目标数据的地址映射信息。
目标数据的地址映射信息,可以为目标数据在计算设备的处理器中的逻辑地址、与目标数据实际存储至的块之间的映射信息。
本实施例中,虚拟块信息中还包括虚拟块中各块的块号。将目标数据存储至目标写入虚拟块之后,还可以在目标数据的地址映射信息中,记录目标数据对应的块的块号;目标数据对应的块为,目标数据存储至的空闲页所在的块。
示例性的,假设虚拟块3包括平面0、平面1、平面2和平面3上的块3。假设通过S903,将目标数据存储至虚拟块3中、块3的页10上。则可以在目标数据的地址映射信息中,将目标数据的实际存储地址更新为虚拟块3中、块3的页10。
本实施例提供的固态硬盘的管理方法,可以将多个虚拟块中有空闲页、且等级较高的虚拟块,确定为目标写入虚拟块,可以按照级别从高到低的顺序,先向高级别的目标写入虚拟块中写入数据、再向低级别的目标写入虚拟块中写入数据;并可以更新目标数据的地址映射信息。通过上述方法,可以将数据写入虚拟块级别较高的虚拟块中,以使固态硬盘的写性能较好。
图10为本申请实施例提供的一种固态硬盘管理装置的结构示意图。所述固态硬盘管理装置应用于固态硬盘,所述固态硬盘中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块;所述固态硬盘管理装置10包括确定模块11和组合模块12,其中,
所述确定模块11用于,确定多个虚拟块的虚拟块信息,所述虚拟块信息包括虚拟块级别、以及所述虚拟块中各块的块位置,所述虚拟块级别用于指示所述虚拟块中包括的块的数量,其中,每个所述虚拟块包括至少一个块,所述至少一个块为同一逻辑单元中各个所述平面上块号相同的至少一个好块,所述好块为可以进行数据存储或数据读取的块;
所述组合模块12用于,根据所述多个虚拟块的虚拟块信息,对所述多个虚拟块中的部分虚拟块进行组合处理,组合后的虚拟块中包括的块的数量小于或等于所述M,所述M为大于1的整数。
本申请实施例提供的固态硬盘管理装置,可用于执行上述方法实施例所示的固态硬盘的管理方法,其实现原理以及有益效果类似,此处不再进行赘述。
一种可能的实现方式中,组合模块12具体用于:
根据所述多个虚拟块的虚拟块信息,在所述多个虚拟块中确定待选虚拟块,所述待选虚拟块中包括的块的数量小于所述M;
根据所述待选虚拟块的虚拟块信息,在所述多个待选虚拟块中确定虚拟块组,所述虚拟块组中包括至少两个虚拟块,所述至少两个虚拟块中包括的块的数量的和小于或等于所述M,所述至少两个虚拟块中包括的多个块的块位置不同;
对所述虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,并记录所述组合虚拟块的虚拟块信息。
一种可能的实现方式中,组合模块12具体用于:
根据所述多个虚拟块的虚拟块级别,在所述多个待选虚拟块中确定至少两个目标虚拟块;所述至少两个目标虚拟块的虚拟块级别之和、小于或等于所述M;
若所述至少两个目标虚拟块中、各块的块位置不同,则将所述至少两个目标虚拟块确定为所述虚拟块组。
一种可能的实现方式中,所述虚拟块信息中还包括所述虚拟块中各块的已擦除次数;组合模块12具体用于:
根据所述多个虚拟块的虚拟块级别、以及所述多个虚拟块中各块的已擦除次数,在所述多个虚拟块中确定至少两个目标虚拟块,其中,
所述至少两个目标虚拟块中包括的各块的已擦除次数差值的绝对值,小于或等于预设阈值。
一种可能的实现方式中,确定模块11具体用于:
获取每个块的块信息,所述块信息包括块状态、块位置和块号;所述块状态包括健康状态或者异常状态,所述块位置为块所在的平面;
将各个平面上块号相同、且块状态为健康状态的至少一个块,确定为一个虚拟块,并记录所述虚拟块的虚拟块信息,其中,当块状态为健康状态时,该块为好块。
本申请实施例提供的固态硬盘管理装置,可用于执行上述方法实施例所示的固态硬盘的管理方法,其实现原理以及有益效果类似,此处不再进行赘述。
图11为本申请实施例提供的另一种固态硬盘管理装置的结构示意图。在图10的基础上,请参见图11,固态硬盘管理装置10还包括更新模块13、回收模块14和存储模块15,其中,所述更新模块13用于:
针对任意一个虚拟块,获取所述虚拟块中包括的至少一个块的当前块状态;
若所述至少一个块中存在块的当前块状态为异常状态,从所述虚拟块中删除当前块状态为异常状态的块。
一种可能的实现方式中,更新模块13具体用于:
根据所述虚拟块中剩余的块数量、以及所述剩余的块的位置,更新所述虚拟块的虚拟块信息。
所述回收模块14用于:
获取每个虚拟块中的有效数据占比,所述有效数据占比为有效数据量与虚拟块总容量的比值;
根据所述每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。
一种可能的实现方式中,回收模块14具体用于:
将有效数据占比最小的一个虚拟块确定为待回收虚拟块;或者,
将有效数据占比最小的多个虚拟块中、虚拟块等级最低的虚拟块确定为待回收虚拟块。
一种可能的实现方式中,获取每个虚拟块中的有效数据占比之前,回收模块14具体用于:
确定多个虚拟块中不存在有空闲页的虚拟块。
所述存储模块15用于:
接收数据写入请求,所述数据写入请求中包括目标数据;
在多个虚拟块中确定至少一个待写入虚拟块,所述待写入虚拟块为所述多个虚拟块中有空闲页的虚拟块;
按照级别从高到低的顺序,对所述至少一个待写入虚拟块进行排序,并将前N个待写入虚拟块确定为目标写入虚拟块,得到N个目标写入虚拟块;N为大于或等于1的整数;
将所述目标数据存储至所述N个目标写入虚拟块;
根据N个目标写入虚拟块的块信息,更新目标数据的地址映射信息。
一种可能的实现方式中,存储模块15具体用于:
针对任意一个目标写入虚拟块,根据所述目标写入虚拟块的级别,确定所述目标写入虚拟块对应的单次写入量;
按照所述N个目标写入虚拟块的级别从高到低的顺序,根据每个目标写入虚拟块对应的单次写入量,依次将所述目标数据存储至所述N个目标写入虚拟块的所述空闲页中。
一种可能的实现方式中,所述虚拟块信息中还包括所述虚拟块中各块的块号;存储模块15具体用于:
在目标数据的所述地址映射信息中,记录所述目标数据对应的块的块块号;所述目标数据对应的块为,所述目标数据存储至的所述空闲页所在的块。
本申请实施例提供的固态硬盘管理装置,可用于执行上述方法实施例所示的固态硬盘的管理方法,其实现原理以及有益效果类似,此处不再进行赘述。
本申请实施例还提供一种固态硬盘,所述固态硬盘包括微处理器和闪存芯片,所述闪存芯片中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块,所述微处理器与所述M个平面连接;所述微处理器用于执行如上任一方法实施例所示的固态硬盘的管理方法,其实现原理和技术效果类似,此处不作赘述。
本申请实施例还提供一种计算设备,所述计算机设备包括主板、处理器和上述实施例所述的固态硬盘;所述处理器设置在所述主板上,所述主板与所述固态硬盘连接;所述处理器通过所述主板与所述固态硬盘进行通信,以向所述固态硬盘存储数据、或者读取所述固态硬盘中的数据,其实现原理和技术效果类似,此处不作赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机执行时,实现如上任一方法实施例所示的固态硬盘的管理方法,其实现原理和技术效果类似,此处不作赘述。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时,实现如上任一方法实施例所示的固态硬盘的管理方法,其实现原理和技术效果类似,此处不作赘述。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程终端设备的处理单元以产生一个机器,使得通过计算机或其他可编程终端设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程终端设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请实施例权利要求及其等同技术的范围之内,则本申请实施例也意图包含这些改动和变型在内。
在本申请实施例中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本申请实施例中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请实施例中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
Claims (10)
1.一种固态硬盘的管理方法,其特征在于,所述固态硬盘中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块,所述方法包括:
确定多个虚拟块的虚拟块信息,所述虚拟块信息包括虚拟块级别、以及所述虚拟块中各块的块位置,所述虚拟块级别用于指示所述虚拟块中包括的块的数量,其中,每个所述虚拟块包括至少一个块,所述至少一个块为同一逻辑单元中各个所述平面上块号相同的至少一个好块,所述好块为可以进行数据存储或数据读取的块;
根据所述多个虚拟块的虚拟块信息,对所述多个虚拟块中的部分虚拟块进行组合处理,组合后的虚拟块中包括的块的数量小于或等于所述M,所述M为大于1的整数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个虚拟块的虚拟块信息,对所述多个虚拟块中的部分虚拟块进行组合处理,包括:
根据所述多个虚拟块的虚拟块信息,在所述多个虚拟块中确定待选虚拟块,所述待选虚拟块中包括的块的数量小于所述M;
根据所述待选虚拟块的虚拟块信息,在所述多个待选虚拟块中确定虚拟块组,所述虚拟块组中包括至少两个虚拟块,所述至少两个虚拟块中包括的块的数量的和小于或等于所述M,所述至少两个虚拟块中包括的多个块的块位置不同;
对所述虚拟块组中的虚拟块进行组合处理,形成组合虚拟块,并记录所述组合虚拟块的虚拟块信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待选虚拟块的虚拟块信息,在所述多个待选虚拟块中确定虚拟块组,包括:
根据所述多个虚拟块的虚拟块级别,在所述多个待选虚拟块中确定至少两个目标虚拟块;所述至少两个目标虚拟块的虚拟块级别之和小于或等于所述M;
若所述至少两个目标虚拟块中、各块的块位置不同,则将所述至少两个目标虚拟块确定为所述虚拟块组。
4.根据权利要求3所述的方法,其特征在于,所述虚拟块信息中还包括所述虚拟块中各块的已擦除次数;所述根据所述多个虚拟块的虚拟块级别,在所述多个虚拟块中确定至少两个目标虚拟块,包括:
根据所述多个虚拟块的虚拟块级别、以及所述多个虚拟块中各块的已擦除次数,在所述多个虚拟块中确定至少两个目标虚拟块,其中,
所述至少两个目标虚拟块中包括的各块的已擦除次数差值的绝对值,小于或等于预设阈值。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
针对任意一个虚拟块,获取所述虚拟块中包括的至少一个块的当前块状态;
若所述至少一个块中存在块的当前块状态为异常状态,从所述虚拟块中删除当前块状态为异常状态的块,以更新所述虚拟块。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
获取每个虚拟块中的有效数据占比,所述有效数据占比为有效数据量与虚拟块总容量的比值;
根据所述每个虚拟块中的有效数据占比,确定待回收虚拟块,并对待回收虚拟块进行回收。
7.根据权利要求6所述的方法,其特征在于,获取每个虚拟块中的有效数据占比之前,还包括:
确定多个虚拟块中不存在有空闲页的虚拟块。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
接收数据写入请求,所述数据写入请求中包括目标数据;
在多个虚拟块中确定至少一个待写入虚拟块,所述待写入虚拟块为所述多个虚拟块中有空闲页的虚拟块;
按照级别从高到低的顺序,对所述至少一个待写入虚拟块进行排序,并将前N个待写入虚拟块确定为目标写入虚拟块,得到N个目标写入虚拟块;N为大于或等于1的整数;将所述目标数据存储至所述N个目标写入虚拟块;
根据所述N个目标写入虚拟块的块信息,更新目标数据的地址映射信息。
9.一种固态硬盘,其特征在于,所述固态硬盘包括微处理器和闪存芯片,所述闪存芯片中包括多个逻辑单元,每个所述逻辑单元包括M个平面,每个平面包括块,所述微处理器与所述M个平面连接;所述微处理器用于执行权利要求1-8任一项所述的方法。
10.一种计算设备,其特征在于,所述计算设备包括主板、处理器和权利要求9所述的固态硬盘;
所述处理器设置在所述主板上,所述主板与所述固态硬盘连接;
所述处理器通过所述主板与所述固态硬盘进行通信,以向所述固态硬盘存储数据、或者读取所述固态硬盘中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310501686.1A CN116610595A (zh) | 2023-05-05 | 2023-05-05 | 固态硬盘的管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310501686.1A CN116610595A (zh) | 2023-05-05 | 2023-05-05 | 固态硬盘的管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116610595A true CN116610595A (zh) | 2023-08-18 |
Family
ID=87684635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310501686.1A Pending CN116610595A (zh) | 2023-05-05 | 2023-05-05 | 固态硬盘的管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610595A (zh) |
-
2023
- 2023-05-05 CN CN202310501686.1A patent/CN116610595A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237769B2 (en) | Memory system and method of controlling nonvolatile memory | |
CN102999431B (zh) | 用于非易失性存储器系统的编织序列计数器 | |
CN105045523B (zh) | 存储控制器、存储装置和系统及操作存储控制器的方法 | |
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
KR101465789B1 (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
US11042305B2 (en) | Memory system and method for controlling nonvolatile memory | |
US11216368B2 (en) | Memory system for garbage collection using page offsets, invalid offset ratio, sequential ratio, and logical address prediction | |
US20130166828A1 (en) | Data update apparatus and method for flash memory file system | |
CN102419735A (zh) | 存储器系统 | |
CN101169751A (zh) | 具有闪存设备的系统及其数据恢复方法 | |
US8856475B1 (en) | Efficient selection of memory blocks for compaction | |
CN109671458A (zh) | 管理闪存模块的方法及相关的闪存控制器 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
KR20160106240A (ko) | 반도체 장치 및 그 동작 방법 | |
CN112035061A (zh) | 固态硬盘资源分配方法、装置和存储介质 | |
US10083181B2 (en) | Method and system for storing metadata of log-structured file system | |
CN104424110A (zh) | 固态驱动器的主动回收 | |
US20230153236A1 (en) | Data writing method and apparatus | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
CN111104045A (zh) | 一种存储控制方法、装置、设备和计算机存储介质 | |
CN115756312A (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 |