CN117311636A - Ssd中物理块的优化管理方法、装置及电子设备 - Google Patents
Ssd中物理块的优化管理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117311636A CN117311636A CN202311307465.7A CN202311307465A CN117311636A CN 117311636 A CN117311636 A CN 117311636A CN 202311307465 A CN202311307465 A CN 202311307465A CN 117311636 A CN117311636 A CN 117311636A
- Authority
- CN
- China
- Prior art keywords
- physical block
- block group
- blocks
- physical
- bad
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 22
- 238000005457 optimization Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000013507 mapping Methods 0.000 claims abstract description 42
- 238000012360 testing method Methods 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种SSD中物理块的优化管理方法、装置及电子设备,该方法包括:根据SSD中每个Die中各个Plane的物理块分布信息构建不同类型的物理块组,在一级物理块组中选取一个Die的物理块作为存储检验数据的物理块,将其他Die的物理块作为存储用户数据的物理块;将二级物理块组中存在部分坏块的Die的物理块作为存储检验数据的物理块,将其他Die的物理块作为存储用户数据的物理块;根据二级物理块组中的坏块总数量在三级物理块组中选取对应数量的物理块作为存储二级物理块组的检验数据的物理块,在三级物理块组的其他物理块中选取一个物理块作为映射物理块。本发明能够有效提升SSD中存储空间的利用率和SSD整体性能。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种SSD中物理块的优化管理方法、装置及电子设备。
背景技术
目前,SSD(Solid State Disk或Solid State Drive,固态硬盘)都由多个可独立并发操作的逻辑单元Die组成,其挂载在SSD控制器各个通道上,相同类型颗粒的NAND中的Die都由相同个数的物理块Block组成。从所有Die上的各个面结构Plane中都选取一个Block组成物理块组Block Group,不同Die上的Block可以进行并行操作,同一个Die上不同Plane的Block,可以进行Multi Plane操作。针对SSD的纠错需求,通常选择其中一个Die存放校验数据,其他Die存放用户数据,在某一个Die的用户数据出错后,通过校验数据和其它Die的用户数据进行异或操作,可以得到丢失的数据。
因为工艺缺陷的问题,NAND颗粒在生产完成时,每个Die就会出现一些无法使用的坏块,一般称为原始坏块。另外在使用过程中,由于Block多次进行读写操作磨损后,会出现Erase失败、Program失败或者Block内多个Page的数据出现读取失败的情况,导致该Block无法正常的写入或者正确读取数据,从而成为无法继续使用的坏块,一般称这种坏块为运行时坏块。SSD的性能指标主要包含吞吐量(Throughput),即单位时间成功读写的数据数量和服务质量(Qos),在规定时间内最慢那条命令的响应时间。单位时间读写数据数量越多和命令响应时间越少则SSD性能越好。
两种类型的坏块,都会导致SSD可使用的容量减少,并导致某些Die无法进行并发读写,或者同一个Die中不同Plane无法进行Multi Plane操作,导致性能下降。针对这种情况,现有技术存在以下几种解决方式,一种方式为从好块较多的Die,分配Block给较少的Die,可以提升可用空间,但是不同Die的Block无法进行Multi Plane操作,而且相同的Die中的Block,不能同时进行操作,可见该方法对性能提升有限。另一种方式为在好块中划分出一部分备用区域,用于对坏块进行替换块操作,可以在一段时间内,出现坏块都能得到替换,保证性能稳定性,但是这样会使用户可使用的空间减少,增加使用成本。综上,如何对SSD中的Block进行更有效的管理机制,以降低原始坏块和运行时坏块带来的性能下降和空间浪费问题,对提升SSD整体性能具有重要意义。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的SSD中物理块的优化管理方法、装置及电子设备。
本发明的一个方面,提供了一种SSD中物理块的优化管理方法,所述方法包括:
根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组,所述物理块组包括一级物理块组、二级物理块组和三级物理块组,将物理块组中所有Die中各个Plane的物理块都为好块的物理块组确定为一级物理块组,将物理块组中有且仅有一个Die中存在坏块的物理块组确定为二级物理块组,将物理块组中有两个或两个以上Die存在坏块的物理块组确定为三级物理块组;
在所述一级物理块组中选取一个Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块;
将所述二级物理块组中存在部分坏块的Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块;
根据各个二级物理块组中的坏块总数量在所述三级物理块组中选取对应数量的物理块作为存储各个二级物理块组的检验数据的物理块,并在当前三级物理块组剩余的其他物理块中选取一个物理块作为存储各个二级物理块组的检验数据与记录对应数据的物理块之间的映射关系的映射物理块。
可选地,根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组包括:
从各个Die中的每个Plane中分别选取一个好块组建物理块组,得到一级物理块组,直到其中一个Die出现不存在好块的Plane;
从各个Die中的每个Plane中分别选取一个好块,若只有一个Die中的一个或者多个Plane没有好块,则将该Die有好块的Plane和其他Die的每个Plane中的好块组建物理块组,得到二级物理块组,直到两个Die同时出现不存在好块的Plane;
将各个Die中的每个Plane中剩余的好块组建物理块组,得到三级物理块组。
可选地,根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组还包括:
统计二级物理块组中的坏块总数量和三级物理块组中的好块总数量;
若二级物理块组中的坏块总数量小于三级物理块组中的好块总数量,则物理块组组建完成,若二级物理块组中的坏块总数量大于或等于三级物理块组中的好块总数量,则选取一个二级物理块组调整为三级物理块组,直到二级物理块组中的坏块总数量小于三级物理块组中的好块总数量。
可选地,在根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组之前,所述方法还包括:
预先对SSD的所有Die中的每个物理块进行Erase擦除操作,将擦除成功的物理块标记为好块;
根据擦除操作的标记结果获取每个Die中各个Plane的物理块分布信息,所述物理块分布信息包括好块的分布位置和坏块的分布位置。
可选地,在对SSD中的物理块进行数据写入时,所述方法还包括:
预先在SSD的DDR中划分出部分区域作为数据暂存区域,用于暂存写入三级物理块组的有效数据;
对不同类型的写命令的优先级进行划分,以将写命令优先级划分为W3>W1>W2>W4,其中,W1为对二级物理块组写入有效数据的写命令,W2为在所述数据暂存区域存在可用空间时,对三级物理块组写入有效数据的写命令,W3为在所述数据暂存区域不存在可用空间时,对三级物理块组写入有效数据的写命令,W4为写入无效数据的写命令。
可选地,所述方法还包括:
当SSD运行过程中一级物理块组中出现坏块时,若三级物理块组存在未使用的物理块且三级物理块组中存在与坏块处于相同Die、相同Plane的目标物理块,则采用目标物理块替换所述坏块;
若三级物理块组存在未使用的物理块,但三级物理块组中不存在与坏块处于相同Die和相同Plane的目标物理块,则将当前出现坏块的一级物理块组调整为二级物理块组,并在三级物理块组中选取一个好块,用于存放调整后得到的二级物理块组的部分校验数据;
若三级物理块组不存在未使用的物理块,则将当前出现坏块的一级物理块组调整为三级物理块组;
根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。
可选地,所述方法还包括:
当SSD运行过程中二级物理块组中出现坏块时,若三级物理块组存在未使用的物理块且对于新增坏块和原始坏块在三级物理块组均存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则采用对应的第二目标物理块替换相应的坏块,将当前出现坏块的二级物理块组调整为一级物理块组;
若三级物理块组存在未使用的物理块,当新增坏块和原始坏块在同一个Die上,且新增坏块或原始坏块其中一种坏块在三级物理块组存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块,或在三级物理块组中选取一个好块,用于存放坏块替换后得到的二级物理块组的部分校验数据;当新增坏块和原始坏块不在同一个Die上,且新增坏块或原始坏块其中一种坏块在三级物理块组存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块;
若三级物理块组不存在未使用的物理块,或三级物理块组存在未使用的物理块但新增坏块和原始坏块不在同一个Die上且任何一个Die上的坏块均不存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则将当前出现坏块的二级物理块组调整为三级物理块组;
根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。
可选地,所述方法还包括:
当SSD运行过程中三级物理块组中出现坏块时,若三级物理块组存在未使用的物理块,则在未使用的物理块中选取一个物理块替换新增坏块;
若三级物理块组不存在未使用的物理块,则根据映射物理块中的映射关系将新增坏块对应的二级物理块组调整为三级物理块组,并将当前二级物理块组中的数据搬移到其他未使用的二级物理块组或者一级物理块组;
根据物理块组之间的类型转换更新映射物理块中的映射关系。
第二方面,本发明还提供了一种SSD中物理块的优化管理装置,所述装置包括用于实现如上所述SSD中物理块的优化管理方法的功能模块。
第三方面,本发明还提供了一种电子设备,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上SSD中物理块的优化管理方法的步骤。
本发明实施例提供的SSD中物理块的优化管理方法、装置及电子设备,能够根据SSD中各个Die的物理块分布信息,基于原始坏块的不同分布情况,组建不同类型的物理块组,并根据物理块组的不同,为各个物理块组划分不同的数据区域,能够提升SSD中存储空间的利用率,避免空间浪费,进而降低因可用空间不足时,需要进行有效数据搬移来腾出空间的GC命令频率,进而有效地提升SSD的整体性能和Qos。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的SSD中物理块的优化管理方法的流程图;
图2为本发明实施例提供的各类物理块组的数据存储区域划分方式示意图;
图3为本发明实施例提供的A类Block Group运行时坏块处理流程示意图;
图4为本发明实施例提供的B类Block Group运行时坏块处理流程示意图;
图5为本发明实施例提供的C类Block Group运行时坏块处理流程示意图;
图6为本发明实施例提供的SSD中物理块的优化管理装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
图1示意性示出了本发明一个实施例的SSD中物理块的优化管理方法的流程图。参照图1,本发明实施例的SSD中物理块的优化管理方法具体包括以下步骤:
S11、根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组,所述物理块组包括一级物理块组、二级物理块组和三级物理块组,将物理块组中所有Die中各个Plane的物理块都为好块的物理块组确定为一级物理块组,将物理块组中有且仅有一个Die中存在坏块的物理块组确定为二级物理块组,将物理块组中有两个或两个以上Die存在坏块的物理块组确定为三级物理块组。
本实施例中,在根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组之前,为了获取SSD中每个Die中各个Plane的好块分布情况,预先对SSD的所有Die中的每个物理块进行Erase擦除操作,将擦除成功的物理块标记为好块;根据擦除操作的标记结果获取每个Die中各个Plane的物理块分布信息,所述物理块分布信息包括好块的分布位置和坏块的分布位置。
S12、在所述一级物理块组中选取一个Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块。
S13、将所述二级物理块组中存在部分坏块的Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块。
S14、根据各个二级物理块组中的坏块总数量在所述三级物理块组中选取对应数量的物理块作为存储各个二级物理块组的检验数据的物理块,并在当前三级物理块组剩余的其他物理块中选取一个物理块作为存储各个二级物理块组的检验数据与记录对应数据的物理块之间的映射关系的映射物理块。
本发明用三级物理块组中空闲的好物理块存放校验数据,增加SSD中空间的利用率。基于可用空间增大,还可以降低因可用空间不足时,需要进行有效数据搬移来腾出空间的GC命令频率,可以有效提升Qos。同时使所有Block磨损较为均衡,延长SSD的整体使用寿命。本发明对数据区域进行划分,并对校验数据使用DDR空间暂存的策略,对执行命令较多的Die,优先执行用户数据命令,可以有效提升Qos。
本实施例中,步骤S11中的根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组包括:从各个Die中的每个Plane中分别选取一个好块组建物理块组,得到一级物理块组,直到其中一个Die出现不存在好块的Plane;从各个Die中的每个Plane中分别选取一个好块,若只有一个Die中的一个或者多个Plane没有好块,则将该Die有好块的Plane和其他Die的每个Plane中的好块组建物理块组,得到二级物理块组,直到两个Die同时出现不存在好块的Plane;将各个Die中的每个Plane中剩余的好块组建物理块组,得到三级物理块组。进一步地,统计二级物理块组中的坏块总数量和三级物理块组中的好块总数量;若二级物理块组中的坏块总数量小于三级物理块组中的好块总数量,则物理块组组建完成,若二级物理块组中的坏块总数量大于或等于三级物理块组中的好块总数量,则选取一个二级物理块组调整为三级物理块组,直到二级物理块组中的坏块总数量小于三级物理块组中的好块总数量。
具体的,可以根据SSD中每个Die中各个Plane的好、坏物理块分布位置分别构建3种类型的物理块组Block Group。将3类Block Group分为称为一级物理块组(即A类)、二级物理块组(即B类)和三级物理块组(即C类)。其中所有的Die中各个Plane的Block都为好块组建的Block Group称为A类Block Group;将其中一个Die中存在坏块组建的Block Group称为B类Block Group;将两个或更多Die存在坏块组建的Block Group称为C类BlockGroup。
首先,组建A类的Block Group,从所有Die中的每个Plane选取一个好块,来组建一个Block Group,在其中一个Plane没有好块后停止,组建成功的Block Group即为A类BlockGroup;然后从剩余的好块中,组建B类的Block Group,从所有Die中的每个Plane选取一个好块,若只有一个Die中的一个或者多个Plane都没有好块,则略过该Die没有好块的Plane,将该Die有好块的Plane和其他Die的上好块,组为建B类Block Group,直到两个Die同时出现没有好块的Plane;最后剩余的好块则为C类Block Gorup;如果B类Block Gorup中的坏块个数小于C类Block Group的好块个数,则组建完成。相反则划分一个B类Block Group到C类Block Group中,直到B类Block Group中的坏块个数小于C类Block Group中好块个数。
具体的,在完成A类、B类和C类物理块组的构建之后,为各类物理块组划分数据存储区域的方式具体如下:将A类Block Group选取一个Die的物理块存放校验数据,其他Die的物理块存放用户数据。B类Block Group中,将好块缺少的Die,用于存放部分校验数据,其他Die的物理块存放用户数据。C类Block Group中,首先选取足够的Block用于来存放B类Block Group中剩余部分的校验数据,然后将各自对应到B类Block Gourp中,最后再选取一个映射Block,用来记录C类Block Gourp和B类Block Group的映射关系。各类物理块组的数据存储区域划分方式如图2所示。
本实施例中,在对SSD中的物理块进行数据写入时,因为B类Block Group部分校验数据需要写在C类Block Group中,所以某些Die需要进行两次写操作,导致这些Die的下一个命令操作延迟。为此,本发明预先在SSD的DDR中划分出部分区域作为数据暂存区域,用于暂存写入三级物理块组的有效数据;对不同类型的写命令的优先级进行划分,以将写命令优先级划分为W3>W1>W2>W4,其中,W1为对二级物理块组写入有效数据的写命令,W2为在所述数据暂存区域存在可用空间时,对三级物理块组写入有效数据的写命令,W3为在所述数据暂存区域不存在可用空间时,对三级物理块组写入有效数据的写命令,W4为写入无效数据的写命令。
具体的,首先划分SSD中DDR的一块空间区域,用于暂时存放C类Block Group的校验数据。然后将写命令主要分为两种,一种为写入有效数据,即用户数据和校验数据。其中将写入B类Block Gourp的有效数据记的写命令记为W1,将DDR划分出的空间区域存在可用空间时,写入C类Block Group的有效数据的写命令记为W2,将DDR划分出的空间区域不存在可用空间时,写入C类Block Group的有效数据的写命令记为W3。另一种为写入无效数据,是为了防止一个Word Line中有部分Page长时间未写入数据,导致已写入的有效数据不可靠,将写入无效数据的写命令记为W4。最后将写命令优先级划分为W3>W1>W2>W4。在当前Die存在多个写命令操作时,按照优先级顺序进行操作,暂存数据可以在Die空闲时写入,降低对用户数据读写命令的延迟。
本发明针对运行时产生的坏块提出了一种新的替换策略和物理块组类型转换策略。
具体的,针对A类Block Group即一级物理块组,当SSD运行过程中A类Block Group中出现坏块时,分为三种情况处理。第一种情况,若C类Block Group即三级物理块组存在未使用的物理块且C类Block Group中存在与坏块处于相同Die、相同Plane的目标物理块,则采用目标物理块替换所述坏块即将坏块与该目标物理块进行替换,如果目标物理块中有数据则将数据搬移到C类Block Group中其他未存放数据的物理块中;第二种情况,若C类Block Group存在未使用的物理块,但C类Block Group中不存在与坏块处于相同Die和相同Plane的目标物理块,则将当前出现坏块的一级物理块组调整为B类Block Group即二级物理块组,并在C类Block Group中选取一个好块,用于存放调整后得到的B类Block Group的部分校验数据;第三种情况,若C类Block Group不存在未使用的物理块,则将当前出现坏块的A类Block Group调整为C类Block Group。最后,根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。A类Block Group运行时坏块处理流程如图3所示。
具体的,针对B类Block Group即二级物理块组,当SSD运行过程中B类Block Group中出现坏块时,分为三种情况处理。第一种情况,若C类Block Group即三级物理块组存在未使用的物理块且对于新增坏块和原始坏块在C类Block Group均存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则采用对应的第二目标物理块替换相应的坏块即将这些C类Block Group中的第二目标物理块都和B类Block Group的坏块进行替换,然后将当前出现坏块的B类Block Group调整为A类Block Group即一级物理块组,如果第二目标物理块中有数据则将数据搬移到C类Block Group中其他未存放数据的物理块中;第二种情况,若C类Block Group存在未使用的物理块,但是新增坏块和旧的原始坏块不能全部得到替换,具体包括两种情况,一是新增坏块和旧的原始坏块在同一个Die上且新增坏块或原始坏块其中一种坏块在C类Block Group存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块即将C类Block Group中的第二目标物理块和坏块替换,或在三级物理块组中直接选取一个好块,用于存放坏块替换后得到的二级物理块组的部分校验数据,此时无需降为C类Block Group;二是新增坏块和原始坏块不在同一个Die上,且新增坏块或原始坏块其中一种坏块在C类Block Group存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块即将C类Block Group中的第二目标物理块和坏块替换,此时也无需降为C类Block Group;第三种情况,若C类Block Group不存在未使用的物理块,或C类Block Group存在未使用的物理块但新增坏块和原始坏块不在同一个Die上且任何一个Die上的坏块均不存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则将当前出现坏块的B类Block Group调整为C类Block Group。最后,根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。B类Block Group运行时坏块处理流程如图4所示。
需要说明的是,由于在一级和二级物理块组出现坏块,且三级物理块中没有可替换物理块时,一级和二级物理块组会调整为三级物理块组,也即三级物理块组的可替换的物理块的情况是不断变化的,会存在原始的坏块可替换情况。因此本发明在二级物理块组新增坏块时,对于新增坏块和原始坏块均需要判断在当前三级物理块组中是否均存在与坏块对应的处于相同Die、相同Plane的第二目标物理块。
具体的,针对C类Block Group即三级物理块组,当SSD运行过程中C类Block Group中出现坏块时,分为三种情况处理。第一种情况,若C类Block Group存在未使用的物理块,则在未使用的物理块中选取一个物理块替换新增坏块;第二种情况,若C类Block Group不存在未使用的物理块,则根据映射物理块中的映射关系将新增坏块对应的B类Block Group调整为C类Block Group,并将该B类Block Group中的数据搬移到其他未使用的B类BlockGroup或者A类Block Group。最后,根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。C类Block Group运行时坏块处理流程如图5所示。
本发明根据物理块组中新增坏块情况,灵活转化物理块组类型,将并发性较高的物理块组用于存放用户数据,并发性较低的用于存放校验数据和坏块替换,可以有效提升Throughput和SSD的整体性能。
本发明实施例提供的SSD中物理块的优化管理方法,能够根据SSD中各个Die的物理块分布信息,基于原始坏块的不同分布情况,组建不同类型的物理块组,并根据物理块组的不同,为各个物理块组划分不同的数据区域,能够提升SSD中存储空间的利用率,避免空间浪费,进而降低因可用空间不足时,需要进行有效数据搬移来腾出空间的GC命令频率,进而有效地提升SSD的整体性能和Qos。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
此外,本发明实施例还提供了一种SSD中物理块的优化管理装置,所述装置包括用于实现如上SSD中物理块的优化管理方法的功能模块。图6示意性示出了本发明一个实施例的SSD中物理块的优化管理装置的结构示意图。参照图6,本发明实施例的SSD中物理块的优化管理装置具体包括物理块组构建模块201和数据区域划分模块202,其中:
物理块组构建模块201,用于根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组,所述物理块组包括一级物理块组、二级物理块组和三级物理块组,将物理块组中所有Die中各个Plane的物理块都为好块的物理块组确定为一级物理块组,将物理块组中有且仅有一个Die中存在坏块的物理块组确定为二级物理块组,将物理块组中有两个或两个以上Die存在坏块的物理块组确定为三级物理块组;
数据区域划分模块202,用于在所述一级物理块组中选取一个Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块;
数据区域划分模块202,还用于将所述二级物理块组中存在部分坏块的Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块;
数据区域划分模块202,还用于根据各个二级物理块组中的坏块总数量在所述三级物理块组中选取对应数量的物理块作为存储各个二级物理块组的检验数据的物理块,并在当前三级物理块组剩余的其他物理块中选取一个物理块作为存储各个二级物理块组的检验数据与记录对应数据的物理块之间的映射关系的映射物理块。
进一步地,本发明实施例的SSD中物理块的优化管理装置还包括附图中未处理的坏块处理模块,所述的坏块处理模块具体用于按照如下处理策略执行坏块处理任务。
具体地,当SSD运行过程中一级物理块组中出现坏块时,若三级物理块组存在未使用的物理块且三级物理块组中存在与坏块处于相同Die、相同Plane的目标物理块,则采用目标物理块替换所述坏块;若三级物理块组存在未使用的物理块,但三级物理块组中不存在与坏块处于相同Die和相同Plane的目标物理块,则将当前出现坏块的一级物理块组调整为二级物理块组,并在三级物理块组中选取一个好块,用于存放调整后得到的二级物理块组的部分校验数据;若三级物理块组不存在未使用的物理块,则将当前出现坏块的一级物理块组调整为三级物理块组;根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。
具体地,当SSD运行过程中二级物理块组中出现坏块时,若三级物理块组存在未使用的物理块且对于新增坏块和原始坏块在三级物理块组均存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则采用对应的第二目标物理块替换相应的坏块,将当前出现坏块的二级物理块组调整为一级物理块组;若三级物理块组存在未使用的物理块,当新增坏块和原始坏块在同一个Die上,且新增坏块或原始坏块其中一种坏块在三级物理块组存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块,或在三级物理块组中选取一个好块,用于存放坏块替换后得到的二级物理块组的部分校验数据;当新增坏块和原始坏块不在同一个Die上,且新增坏块或原始坏块其中一种坏块在三级物理块组存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块;若三级物理块组不存在未使用的物理块,或三级物理块组存在未使用的物理块但新增坏块和原始坏块不在同一个Die上且任何一个Die上的坏块均不存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则将当前出现坏块的二级物理块组调整为三级物理块组;根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。
具体地,当SSD运行过程中三级物理块组中出现坏块时,若三级物理块组存在未使用的物理块,则在未使用的物理块中选取一个物理块替换新增坏块;
若三级物理块组不存在未使用的物理块,则根据映射物理块中的映射关系将新增坏块对应的二级物理块组调整为三级物理块组,并将当前二级物理块组中的数据搬移到其他未使用的二级物理块组或者一级物理块组;
根据物理块组之间的类型转换更新映射物理块中的映射关系。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,且具有相应的技术效果。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上SSD中物理块的优化管理方法的步骤。
本实施例中,所述SSD中物理块的优化管理方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
此外,本发明实施例还提供了一种电子设备,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上SSD中物理块的优化管理方法的步骤。例如图1所示的步骤S11~S14。或者,所述处理器执行所述计算机程序时实现上述SSD中物理块的优化管理装置实施例中各模块/单元的功能,例如图6所示的物理块组构建模块201和数据区域划分模块202。
在一个具体实施例中,所述电子设备可以是SSD设备。
本发明实施例提供的SSD中物理块的优化管理方法、装置及电子设备,能够根据SSD中各个Die的物理块分布信息,基于原始坏块的不同分布情况,组建不同类型的物理块组,并根据物理块组的不同,为各个物理块组划分不同的数据区域,能够提升SSD中存储空间的利用率,避免空间浪费,进而降低因可用空间不足时,需要进行有效数据搬移来腾出空间的GC命令频率,进而有效地提升SSD的整体性能和Qos。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种SSD中物理块的优化管理方法,其特征在于,所述方法包括:
根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组,所述物理块组包括一级物理块组、二级物理块组和三级物理块组,将物理块组中所有Die中各个Plane的物理块都为好块的物理块组确定为一级物理块组,将物理块组中有且仅有一个Die中存在坏块的物理块组确定为二级物理块组,将物理块组中有两个或两个以上Die存在坏块的物理块组确定为三级物理块组;
在所述一级物理块组中选取一个Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块;
将所述二级物理块组中存在部分坏块的Die的物理块作为当前物理块组中存储检验数据的物理块,并将当前物理块组中的其他Die的物理块作为当前物理块组中存储用户数据的物理块;
根据各个二级物理块组中的坏块总数量在所述三级物理块组中选取对应数量的物理块作为存储各个二级物理块组的检验数据的物理块,并在当前三级物理块组剩余的其他物理块中选取一个物理块作为存储各个二级物理块组的检验数据与记录对应数据的物理块之间的映射关系的映射物理块。
2.根据权利要求1所述的方法,其特征在于,根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组包括:
从各个Die中的每个Plane中分别选取一个好块组建物理块组,得到一级物理块组,直到其中一个Die出现不存在好块的Plane;
从各个Die中的每个Plane中分别选取一个好块,若只有一个Die中的一个或者多个Plane没有好块,则将该Die有好块的Plane和其他Die的每个Plane中的好块组建物理块组,得到二级物理块组,直到两个Die同时出现不存在好块的Plane;
将各个Die中的每个Plane中剩余的好块组建物理块组,得到三级物理块组。
3.根据权利要求2所述的方法,其特征在于,根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组还包括:
统计二级物理块组中的坏块总数量和三级物理块组中的好块总数量;
若二级物理块组中的坏块总数量小于三级物理块组中的好块总数量,则物理块组组建完成,若二级物理块组中的坏块总数量大于或等于三级物理块组中的好块总数量,则选取一个二级物理块组调整为三级物理块组,直到二级物理块组中的坏块总数量小于三级物理块组中的好块总数量。
4.根据权利要求1所述的方法,其特征在于,在根据SSD中每个Die中各个Plane的物理块分布信息分别构建不同类型的物理块组之前,所述方法还包括:
预先对SSD的所有Die中的每个物理块进行Erase擦除操作,将擦除成功的物理块标记为好块;
根据擦除操作的标记结果获取每个Die中各个Plane的物理块分布信息,所述物理块分布信息包括好块的分布位置和坏块的分布位置。
5.根据权利要求1所述的方法,其特征在于,在对SSD中的物理块进行数据写入时,所述方法还包括:
预先在SSD的DDR中划分出部分区域作为数据暂存区域,用于暂存写入三级物理块组的有效数据;
对不同类型的写命令的优先级进行划分,以将写命令优先级划分为W3>W1>W2>W4,其中,W1为对二级物理块组写入有效数据的写命令,W2为在所述数据暂存区域存在可用空间时,对三级物理块组写入有效数据的写命令,W3为在所述数据暂存区域不存在可用空间时,对三级物理块组写入有效数据的写命令,W4为写入无效数据的写命令。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当SSD运行过程中一级物理块组中出现坏块时,若三级物理块组存在未使用的物理块且三级物理块组中存在与坏块处于相同Die、相同Plane的目标物理块,则采用目标物理块替换所述坏块;
若三级物理块组存在未使用的物理块,但三级物理块组中不存在与坏块处于相同Die和相同Plane的目标物理块,则将当前出现坏块的一级物理块组调整为二级物理块组,并在三级物理块组中选取一个好块,用于存放调整后得到的二级物理块组的部分校验数据;
若三级物理块组不存在未使用的物理块,则将当前出现坏块的一级物理块组调整为三级物理块组;
根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。
7.根据权利要求1或6所述的方法,其特征在于,所述方法还包括:
当SSD运行过程中二级物理块组中出现坏块时,若三级物理块组存在未使用的物理块且对于新增坏块和原始坏块在三级物理块组均存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则采用对应的第二目标物理块替换相应的坏块,将当前出现坏块的二级物理块组调整为一级物理块组;
若三级物理块组存在未使用的物理块,当新增坏块和原始坏块在同一个Die上,且新增坏块或原始坏块其中一种坏块在三级物理块组存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块,或在三级物理块组中选取一个好块,用于存放坏块替换后得到的二级物理块组的部分校验数据;当新增坏块和原始坏块不在同一个Die上,且新增坏块或原始坏块其中一种坏块在三级物理块组存在其对应的处于相同Die、相同Plane的第二目标物理块时,则采用第二目标物理块替换相应的坏块;
若三级物理块组不存在未使用的物理块,或三级物理块组存在未使用的物理块但新增坏块和原始坏块不在同一个Die上且任何一个Die上的坏块均不存在与坏块对应的处于相同Die、相同Plane的第二目标物理块,则将当前出现坏块的二级物理块组调整为三级物理块组;
根据物理块之间替换和/或物理块组之间的类型转换更新映射物理块中的映射关系。
8.根据权利要求1或6所述的方法,其特征在于,所述方法还包括:
当SSD运行过程中三级物理块组中出现坏块时,若三级物理块组存在未使用的物理块,则在未使用的物理块中选取一个物理块替换新增坏块;
若三级物理块组不存在未使用的物理块,则根据映射物理块中的映射关系将新增坏块对应的二级物理块组调整为三级物理块组,并将当前二级物理块组中的数据搬移到其他未使用的二级物理块组或者一级物理块组;
根据物理块组之间的类型转换更新映射物理块中的映射关系。
9.一种SSD中物理块的优化管理装置,其特征在于,所述装置包括用于实现如权利要求1-8任一项所述方法的功能模块。
10.一种电子设备,其特征在于,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311307465.7A CN117311636A (zh) | 2023-10-10 | 2023-10-10 | Ssd中物理块的优化管理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311307465.7A CN117311636A (zh) | 2023-10-10 | 2023-10-10 | Ssd中物理块的优化管理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311636A true CN117311636A (zh) | 2023-12-29 |
Family
ID=89280830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311307465.7A Pending CN117311636A (zh) | 2023-10-10 | 2023-10-10 | Ssd中物理块的优化管理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311636A (zh) |
-
2023
- 2023-10-10 CN CN202311307465.7A patent/CN117311636A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245093B (zh) | 固态存储驱动器阵列中的工作负荷自适应超额配置 | |
US10204042B2 (en) | Memory system having persistent garbage collection | |
US10776263B2 (en) | Non-deterministic window scheduling for data storage systems | |
US9286210B2 (en) | System executes wear-leveling among flash memory modules | |
US8904089B2 (en) | Method for performing block management/Flash memory management, and associated memory device and controller thereof | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
US10409525B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US8484406B2 (en) | Method of evenly using a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
US20190155737A1 (en) | Solid-state hard disk and data access method for use with solid-state hard disk | |
CN110569002B (zh) | 一种基于混合模式的闪存设备可变容量装置和方法 | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
CN102317925A (zh) | 存储器系统和控制存储器系统的方法 | |
US20160011930A1 (en) | Method for preventing read-disturb errors, memory control circuit unit and memory storage apparatus | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
CN108829355B (zh) | 一种垃圾回收方法及装置 | |
US11392510B2 (en) | Management method of cache files in storage space and recording device for storing cache files | |
US10684785B2 (en) | Storage system | |
CN117311636A (zh) | Ssd中物理块的优化管理方法、装置及电子设备 | |
US20200004636A1 (en) | Data Storage System with Strategic Contention Avoidance | |
CN106469019B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
CN108572924B (zh) | 一种3d mlc闪存设备的请求处理方法 | |
CN114442936B (zh) | 一种闪存转换层的块管理方法、装置、设备及存储介质 | |
CN113127377B (zh) | 一种非易失存储器件写擦除的磨损均衡方法 | |
CN113703671B (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 |