CN114442936B - 一种闪存转换层的块管理方法、装置、设备及存储介质 - Google Patents
一种闪存转换层的块管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114442936B CN114442936B CN202111645432.4A CN202111645432A CN114442936B CN 114442936 B CN114442936 B CN 114442936B CN 202111645432 A CN202111645432 A CN 202111645432A CN 114442936 B CN114442936 B CN 114442936B
- Authority
- CN
- China
- Prior art keywords
- state
- pool
- blocks
- super
- block
- 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 35
- 238000006243 chemical reaction Methods 0.000 title abstract description 13
- 238000007726 management method Methods 0.000 claims abstract description 50
- 230000002159 abnormal effect Effects 0.000 claims abstract description 25
- 238000013519 translation Methods 0.000 claims description 30
- 238000004064 recycling Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 9
- 238000011084 recovery Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000638 solvent extraction 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种闪存转换层的块管理方法、装置、设备及计算机可读存储介质,该方法包括:根据硬件结构,对块进行重新分组,建立超级块;对各超级块设置相应的状态标识;其中,状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;根据状态标识,对超级块进行管理;本发明根据硬件结构对块进行重新划分和状态定义,实现块的高效管理,极大降低块对闪存转换层性能影响,使得顺序写带宽和随机写IOPS都能够显著提高。
Description
技术领域
本发明涉及存储***技术领域,特别涉及一种闪存转换层的块管理方法、装置、设备及计算机可读存储介质。
背景技术
随着大数据的发展,人们对存储性能有着更高的需求。基于NAND闪存(一种非易失性存储设备)的SSD(Solid State Disk,固态硬盘)因具有更高的可靠性、更好的性能、更低的能耗等特点在存储领域被广泛使用。而闪存转换层块(block)的管理会直接影响SSD的性能。目前针对block的管理主要是对block标记open和closed两种状态或者open、used和closed三种状态,根据block状态直接搜寻可用的block。但是,这种方法block的管理效率非常低,导致闪存转换层(FTL)性能下降严重,主要表现在顺序写带宽很低,随机写IOPS下降严重。因此,如何提供一种高效的block管理,是现今急需解决的问题。
发明内容
本发明的目的是提供一种闪存转换层的块管理方法、装置、设备及计算机可读存储介质,根据硬件结构对块进行重新划分和状态定义,实现块的高效管理,保证SSD运行过程中FTL性能显著提升。
为解决上述技术问题,本发明提供一种闪存转换层的块管理方法,包括:
根据硬件结构,对块进行重新分组,建立超级块;
对各所述超级块设置相应的状态标识;其中,所述状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;
根据所述状态标识,对所述超级块进行管理。
可选的,所述根据硬件结构,对块进行重新分组,建立超级块,包括:
利用Nsblk=Sblock/(Nplane*?RAID_SIZE)建立超级块;
其中,Nsblk表示超级块的数量,Sblock表示NAND中块的总数,Sblock=Nchannel*Nce*Nlun*Nplane*Sblock;Nplane表示NAND中每个逻辑单元里包含的面数量,RAID_SIZE表示磁盘阵列所需要的块数量,Nchannel表示闪存通道数量,Nce表示每个闪存通道包含片选信号的数量,Nlun表示每个片选信号包含的逻辑单元的数量,Sblock表示每个面包含块的数量。
可选的,所述闪存转换层的块管理方法还包括:
建立各状态对应的超级块池,存放对应状态的超级块;其中,所述超级块池包含可擦除状态池、擦除状态池、写入状态池、回收状态池和异常状态池。
可选的,所述回收状态池包含正在回收状态池,以及回收完成状态池;对应的,所述正在回收状态池用于存放回收状态的超级块,当所述正在回收状态池中存在回收完成的超级块时,将回收完成的超级块存放到所述回收完成状态池。
可选的,所述状态标识还包括旧数据无效状态;所述异常状态包括错误状态,以及坏块状态,对应的,将所述错误状态以及所述坏块状态对应的超级块均存放到所述异常状态池。
可选的,所述可擦除状态池按照擦写次数排放具有可擦除状态的各个超级块,以使从所述可擦除状态池中获取超级块时,按照擦写次数从小到大的顺序获取。
可选的,所述建立各状态对应的超级块池之后还包括:
为每个所述超级块池设置相应的流转阈值。
本发明还提供了一种闪存转换层的块管理装置,包括:
超级块建立模块,用于根据硬件结构,对块进行重新分组,建立超级块;
状态标识模块,用于对各所述超级块设置相应的状态标识;其中,所述状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;
管理模块,用于根据所述状态标识,对所述超级块进行管理。
本发明还提供了一种闪存转换层的块管理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的闪存转换层的块管理方法的步骤。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的闪存转换层的块管理方法的步骤。
本发明所提供的一种闪存转换层的块管理方法,包括:根据硬件结构,对块进行重新分组,建立超级块;对各超级块设置相应的状态标识;其中,状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;根据状态标识,对超级块进行管理;
可见,本发明根据硬件结构对块进行重新划分和状态定义,实现块的高效管理,极大降低块对闪存转换层性能影响,使得顺序写带宽和随机写IOPS都能够显著提高。此外,本发明还提供了一种闪存转换层的块管理装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种闪存转换层的块管理方法的流程图;
图2为本发明实施例所提供的一种根据硬件分级展示的super block划分示意图;
图3为本发明实施例所提供的一种从lun上取block组成super block的示意图;
图4为本发明实施例所提供的一种super block状态及super block pool应用示意图;
图5为本发明实施例所提供的一种闪存转换层的块管理装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种闪存转换层的块管理方法的流程图。该方法可以包括:
步骤101:根据硬件结构,对块进行重新分组,建立超级块。
本发明实施例为了避免当前直接针对block(块)简单标记open(可用)和closed(不可用)两种状态,或者open、used(旧数据无效状态)和closed三种状态,根据block状态直接进行管理所带来的管理效率低下,导致FTL(闪存转换层)性能下降严重,主要表现在顺序写带宽很低,随机写IOPS(是一个用于SSD性能测试的量测方式,可以视为是每秒的读写次数)下降严重的问题。需要对block进行重新分组,建立super block(超级块),以确保最大限度的提高NAND flash(NAND闪存)并行处理的性能和支持NAND flash RAID(RedundantArrays of Independent Disks,磁盘阵列)特性。
需要说明的是,本发明实施例为了保证建立的super block有更高的并行度,可以根据硬件结构,对block进行重新分组,建立super block。当然,本发明实施例中并不限定依据硬件结构对block进行重新分组的方式。优选的,本发明实施例可以利用Nsblk=Sblock/(Nplane*?RAID_SIZE)建立超级块;
其中,Nsblk表示超级块的数量,Sblock表示NAND中块的总数,其中,Sblock=Nchannel*Nce*Nlun*Nplane*Sblock;Nplane表示NAND中每个逻辑单元(lun,闪存执行命令并回报自身状态的最小独立单元)里包含的面(plane,一个lun可以有多个plane)数量,RAID_SIZE表示磁盘阵列(RAID,redundant array of independent disks,独立磁盘冗余阵列,简称磁盘阵列,一种数据可靠性提升技术)所需要的块数量,Nchannel表示闪存通道(channel,直接反映SSD的并发读写能力)数量,Nce表示每个闪存通道包含片选信号(ce,chip enable)的数量,ce可以为紧随闪存通道的下一级结构,除了通道可以提升吞吐量外,多ce也可以提升固态硬盘性能;Nlun表示每个片选信号包含的逻辑单元的数量,Sblock表示每个面包含块的数量。根据该方式获取的super block中所有参与的block在原plane上的地址都相等。例如,如果建立的一个super block对应的地址为X,则所有参与的block在原plane上的地址都等于X。
上述过程可以参考图2和图3,图2为根据硬件分级展示的super block划分示意图,图3为从lun上取block组成super block的示意图。通过图2可以看到同一个lun上的多个plane里地址相同的block组成super block的一个基本组成单元,由数量为RAID_SIZE的基本组成单元组成一个super block。举例说明如下:假如硬件结构采用8个chanel,每个chanel包含8个ce,每个ce包含2个lun,每个lun包含4个plane,每个plane包含980个block,则根据公式Sblock=Nchannel*Nce*Nlun*Nplane*Sblock可以计算出该硬件结构总共有501760个block,再假如RAID_SIZE等于32(31个数据存储位置加上1个校验数据存储位置),则根据公式Nsblk=Sblock/(Nplane*?RAID_SIZE)计算可以得出super block的数量为3920,一个superblock包含32个基本组成单元。
步骤102:对各超级块设置相应的状态标识;其中,状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态。
本发明实施例中为了给各super block设置相应的状态标识以表明该superblock当前的状态,需要定义super block状态。可以将super block状态定义为FREE(可擦除状态)、ERASE(擦除状态)、ACTIVE(写入状态)、RECYCLE(回收状态)和异常状态。其中,FREE代表可用于擦出的super block,ERASE代表已经进入擦除操作的super block,ACTIVE代表正在写入的super block,RECYCLE表示需要回收或正在回收的super block。当然,还可以对上述状态进行扩充,本发明实施例对此并不进行限定。例如,状态标识还可以包括USED(旧数据无效状态),即,USED代表有新数据写入时,super block中旧的数据慢慢变得无效的过程。为了进一步便于对异常状态的super block进行管理,还可以将异常状态进一步细分为FORCE(错误状态)以及BAD(坏块状态),即,FORCE为super block出现错误状态,BAD为super block被标为坏块的状态。上述状态中FREE、USED、ERASE、ACTIVE和RECYCLE均为super block的正常状态。
需要说明的是,本发明实施例为了进一步提高block的管理效率,极大降低block对FTL性能影响,以显著提升顺序写带宽和随机写IOPS。本发明实施例还可以建立各状态对应的超级块池,用于存放对应状态的超级块;即,本发明实施例中已经对超级块设置相应的状态标识,进而可以将其放入对应的super block pool中待用。其中,超级块池可以与超级块状态一一对应,例如超级块池可以包含FREE POOL(可擦除状态池)、ERASE POOL(擦除状态池)、ACTIVE POOL(写入状态池)、回收状态池和异常状态池。其中,FREE POOL用来存放FREE状态的super block,ERASE POOL用来存放ERASE状态的super block,ACTIVE POOL用来存放ACTIVE状态的super block,回收状态池用来存放RECYCLE状态的super block,异常状态池用来存放异常状态的super block。当然,还可以对上述超级块池进行扩充或者细化,本发明实施例对此并不进行限定。例如,回收状态池可以包含RECYELICNG POOL(正在回收状态池),以及RECYCLED POOL(回收完成状态池);其中,RECYELICNG POOL和RECYCLEDPOOL用来流转RECYCLE状态的super block,此时,该RECYELICNG POOL和RECYCLED POOL与RECYCLE状态是多对一的关系。可以理解的是,正在回收状态池用于存放回收状态的超级块,当正在回收状态池中存在回收完成的超级块时,将回收完成的超级块存放到回收完成状态池。进一步的,当异常状态包括错误状态,以及坏块状态,对应的,可以将错误状态以及坏块状态对应的超级块均存放到异常状态池,如FORCE POOL,即,FORCE POOL用来存放BAD和FORCE状态的super block,此时,该FORCE POOL与BAD状态和FORCE状态是一对多的关系。
需要说明的是,本发明实施例并不限定各个超级块池存放对应状态超级块的方式。例如,可以利用队列存放各个超级块,也可以是按照规则确定各个超级块的顺序,并按照该顺序存放各个超级块。例如,可擦除状态池按照擦写次数排放具有可擦除状态的各个超级块,以使从可擦除状态池中获取超级块时,按照擦写次数从小到大的顺序获取。本发明实施例给出了一种super block在super block pool中的具体存放方式。FREE状态的superblock按PE次数存放在FREE POOL中,具体的,根据磨损均衡按照擦写次数从小到大的顺序存放,这样从FREE POOL中获取对应状态的super block时,每次都从PE次数最小的superblock开始取。USED状态的super block属于中间态,因此不需要存放到相关的super blockpool中,具体的,USED代表有新数据写入时,super block中旧的数据慢慢变得无效的过程,因此当其当前数据全部变为无效时,该super block状态就变成了FREE状态。可见USED状态为中间过程态,进而无需入池存放。ERASE状态的super block按队列存放于ERASE POOL中。ACTIVE状态的super block按队列存放于ACTIVE POOL中。RECYCLE状态的super block按队列存放于RECYCLING POOL中,待回收完成按队列进入RECYCLED POOL中。FORCE状态的superblock按栈存放于FORCE POOL中;BAD状态的super block按栈存放于FORCE POOL中。
可以理解的是,超级块的状态是可以变化的,其可以在各个超级块池中流传。例如,从FREE POOL中获取FREE状态的super block后,随即该super block进入擦除操作,进而其状态就由FREE状态变为ERASE状态,并进入ERASE POOL;在该super block擦除完成后该super block状态由ERASE状态变成ACTIVE状态,进入写入操作,并进入ACTIVE POOL;当该super block写满以后,如果仍有数据要继续写入该super block,那么该super block中对应位置的旧数据就会变成无效数据,直到整个super block上的数据全部变成无效数据,对应该过程中该super block状态由ACTIVE状态变成USED状态,由于该过程中一般不会把该super block另作他用,所以不用入池;待该super block中的旧数据全部变成无效数据后表示该super block的USED状态结束,进入RECYCLE状态,该super block随即进入RECYCLING POOL,待回收完成后,进入该super block进入RECYCLED POOL;当然,在上述过程中如果任何环节发现该super block出现坏块,就会把该super block状态标记为BAD,进入FORCE POOL,后续可以进行强制回收处理,处理完成后可以更新坏块表,不再使用该super block;在上述过程中如果任何环节发现该super block出现错误待处理,就会把该super block状态标记为FORCE状态,进入FORCE POOL,后续可以进行强制回收处理,处理成功完成后可以将该super block状态变为FREE,进入FREE POOL;由此,完成该super block的循环利用。上述过程仅是以一个super block为例进行说明,任何一个super block都可以存在上述流转过程。具体可以参考图4,具体给出了super block对应的各个状态,以及在各个super block pool中流转过程对应的示意图。
进一步的,为了确保super block能在这几种super block pool中正常流转。本发明实施例还可以为每个超级块池设置相应的流转阈值。当然,本发明实施例并不限定各个super block pool的流转阈值的具体数值,用户可以根据实际情况进行设置,且,各个super block pool的流转阈值的数值可以相等也可以分别设置不同的数值,或者部分super block pool的流转阈值的数值相等。可以理解的是,在所有的super block pool中,FREE POOL、ERASE POOL、ACTIVE POOL、RECYCLING POOL、RECYCLED POOL的流转阈值意味着其池中超级块的数量小于流转阈值就必须去上一级super block pool中去寻找对应状态的super block来填充该super block pool;其中,按照上述顺序前者为后者的上一级,FREE POOL的上一级为RECYCLED POOL;而FORCE POOL的流转阈值意味着大于该流转阈值就强制回收处理。
下面举例给出一种设置流转阈值的方式。可以先设置最基本的FREE POOL的流转阈值,FREE POOL的流转阈值一般可以取值在3到5之间,太小可能会出现FREE POOL中的super block被取空,太大则会影响FREE POOL中的super block在各个super block pool中的流转效率。剩余的ERASE POOL、ACTIVE POOL、RECYCLING POOL、RECYCLED POOL的流转阈值均可以在FREE POOL的流转阈值基础上设定,一般ERASE POOL、ACTIVE POOL的流转阈值可以设定等于FREE POOL的流转阈值。RECYCLING POOL、RECYCLED POOL的流转阈值一般比FREE POOL的流转阈值大1~5,进而可以确保FREE状态对应的super block数量不足时,有足够的super block数量填充。最后由于FORCE POOL是用来接收BAD和FORCE状态的superblock,其对应的流转阈值一般可以设定10左右,这是由于大于该流转阈值的数值后就必须处理FORCE POOL中的super block,因此该数值太小会影响super block流转效率,该数值太大则会导致过多super block在该处积压无法及时回收利用。例如,若将FREE POOL的流转阈值设定为3,ERASE POOL、ACTIVE POOL的流转阈值也可以设定为3,RECYCLING POOL、RECYCLED POOL的流转阈值可以设定为4,而FORCE POOL的流转阈值可以设定为8。
步骤103:根据状态标识,对超级块进行管理。
本发明实施例可以根据状态标识来获取对应状态的超级块来进行管理操作。例如,可以根据实际管理需求,去对应的池中获取不同状态的super block执行相应的管理操作。例如,当管理人员想要获取FREE状态的super block可以直接到FREE POOL中获取,想要获取ACTIVE状态的super block可以直接去ACTIVE POOL中获取。进一步的,当管理人员在FREE POOL中获取失败,可以去RECYCLED POOL中获取,即,将获取到的RECYCLED POOL中的super block的状态置为FREE,进入FREE POOL,然后再次执行该获取操作。
本实施例中,本发明实施例建立super block,可以根据硬件结构,对block进行重新分组,确保最大限度的提高NAND flash并行处理的性能和支持NAND flash RAID特性;定义super block状态,可以将super block状态定义为FREE、USED、ERASE、ACTIVE、FORCE、RECYCLE、BAD七种状态;建立super block pool,可以包含FREE POOL、ACTIVE POOL、ERASEPOOL、FORCE POOL、RECYCLING POOL、RECYCLED POOL六种super block pool;在适当的时机对super block作相应状态标注,并放入对应的super block pool中待用;根据管理人员的需求,去对应的池中获取不同状态的super block;为每个super block pool设置相应的流转阈值,确保super block能在这几种super block pool中正常流转;可见,本发明实施例根据硬件结构对block进行重新划分和状态定义,并结合super block pool的使用,实现对block的高效管理。即能够显著提高block的管理效率,极大降低block对FTL性能影响,使得顺序写带宽和随机写IOPS都能够显著提高。
相应于上面的方法实施例,本发明实施例还提供了一种闪存转换层的块管理装置,下文描述的一种闪存转换层的块管理装置与上文描述的一种闪存转换层的块管理方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种闪存转换层的块管理装置的结构框图。该装置可以包括:
超级块建立模块10,用于根据硬件结构,对块进行重新分组,建立超级块;
状态标识模块20,用于对各超级块设置相应的状态标识;其中,状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;
管理模块30,用于根据状态标识,对超级块进行管理。
可选的,超级块建立模块10,具体用于利用Nsblk=Sblock/(Nplane*?RAID_SIZE)建立超级块。
其中,Nsblk表示超级块的数量,Sblock表示NAND中块的总数,Sblock=Nchannel*Nce*Nlun*Nplane*Sblock;Nplane表示NAND中每个逻辑单元里包含的面数量,RAID_SIZE表示磁盘阵列所需要的块数量,Nchannel表示闪存通道数量,Nce表示每个闪存通道包含片选信号的数量,Nlun表示每个片选信号包含的逻辑单元的数量,Sblock表示每个面包含块的数量。
可选的,该装置还可以包括:
池建立模块,用于建立各状态对应的超级块池,存放对应状态的超级块;其中,超级块池包含可擦除状态池、擦除状态池、写入状态池、回收状态池和异常状态池。
可选的,回收状态池包含正在回收状态池,以及回收完成状态池;对应的,正在回收状态池用于存放回收状态的超级块,当正在回收状态池中存在回收完成的超级块时,将回收完成的超级块存放到回收完成状态池。状态标识还包括旧数据无效状态;异常状态包括错误状态,以及坏块状态,对应的,将错误状态以及坏块状态对应的超级块均存放到异常状态池。
可选的,可擦除状态池按照擦写次数排放具有可擦除状态的各个超级块,以使从可擦除状态池中获取超级块时,按照擦写次数从小到大的顺序获取。
可选的,该装置还可以包括:
流转阈值设置模块,用于为每个超级块池设置相应的流转阈值。
本实施例中,本发明实施例提升SSD固件中block管理效率,保证SSD运行过程中FTL性能显著提升。
相应于上面的方法实施例,本发明实施例还提供了一种闪存转换层的块管理设备,下文描述的一种闪存转换层的块管理设备与上文描述的一种闪存转换层的块管理方法可相互对应参照。
一种闪存转换层的块管理设备,该闪存转换层的块管理设备可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述方法实施例所提供的存储***的数据分层方法的步骤。
其中,该闪存转换层的块管理设备还可以包括:
NAND存储器,用于提供处理器所需的块(block)。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种闪存转换层的块管理方法可相互对应参照。
一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所提供的闪存转换层的块管理方法的步骤。
该计算机可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种闪存转换层的块管理方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种闪存转换层的块管理方法,其特征在于,包括:
根据硬件结构,对块进行重新分组,建立超级块;其中,所述超级块的一个基本组成单元由同一个逻辑单元上的多个面里地址相同的块组成,一个所述超级块由磁盘阵列所需要的块数量的基本组成单元组成;
对各所述超级块设置相应的状态标识;其中,所述状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;
根据所述状态标识,对所述超级块进行管理;
其中,所述根据硬件结构,对块进行重新分组,建立超级块,包括:
利用建立超级块;
其中,表示超级块的数量,/>表示NAND中块的总数,/>;表示NAND中每个逻辑单元里包含的面数量,/>表示磁盘阵列所需要的块数量,表示闪存通道数量,/>表示每个闪存通道包含片选信号的数量,/>表示每个片选信号包含的逻辑单元的数量,/>表示每个面包含块的数量。
2.根据权利要求1所述的闪存转换层的块管理方法,其特征在于,还包括:
建立各状态对应的超级块池,存放对应状态的超级块;其中,所述超级块池包含可擦除状态池、擦除状态池、写入状态池、回收状态池和异常状态池。
3.根据权利要求2所述的闪存转换层的块管理方法,其特征在于,所述回收状态池包含正在回收状态池,以及回收完成状态池;对应的,所述正在回收状态池用于存放回收状态的超级块,当所述正在回收状态池中存在回收完成的超级块时,将回收完成的超级块存放到所述回收完成状态池。
4.根据权利要求2所述的闪存转换层的块管理方法,其特征在于,所述状态标识还包括旧数据无效状态;所述异常状态包括错误状态,以及坏块状态,对应的,将所述错误状态以及所述坏块状态对应的超级块均存放到所述异常状态池。
5.根据权利要求2所述的闪存转换层的块管理方法,其特征在于,所述可擦除状态池按照擦写次数排放具有可擦除状态的各个超级块,以使从所述可擦除状态池中获取超级块时,按照擦写次数从小到大的顺序获取。
6.根据权利要求2所述的闪存转换层的块管理方法,其特征在于,所述建立各状态对应的超级块池之后还包括:
为每个所述超级块池设置相应的流转阈值。
7.一种闪存转换层的块管理装置,其特征在于,包括:
超级块建立模块,用于根据硬件结构,对块进行重新分组,建立超级块;其中,所述超级块的一个基本组成单元由同一个逻辑单元上的多个面里地址相同的块组成,一个所述超级块由磁盘阵列所需要的块数量的基本组成单元组成;
状态标识模块,用于对各所述超级块设置相应的状态标识;其中,所述状态标识包含可擦除状态、擦除状态、写入状态、回收状态和异常状态;
管理模块,用于根据所述状态标识,对所述超级块进行管理;
其中,所述超级块建立模块具体用于利用建立超级块;
其中,表示超级块的数量,/>表示NAND中块的总数,/>;表示NAND中每个逻辑单元里包含的面数量,/>表示磁盘阵列所需要的块数量,表示闪存通道数量,/>表示每个闪存通道包含片选信号的数量,/>表示每个片选信号包含的逻辑单元的数量,/>表示每个面包含块的数量。
8.一种闪存转换层的块管理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的闪存转换层的块管理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的闪存转换层的块管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111645432.4A CN114442936B (zh) | 2021-12-29 | 2021-12-29 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111645432.4A CN114442936B (zh) | 2021-12-29 | 2021-12-29 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114442936A CN114442936A (zh) | 2022-05-06 |
CN114442936B true CN114442936B (zh) | 2024-03-08 |
Family
ID=81365476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111645432.4A Active CN114442936B (zh) | 2021-12-29 | 2021-12-29 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114442936B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722339A (zh) * | 2011-03-28 | 2012-10-10 | 西部数据技术公司 | 供电安全的数据管理*** |
CN102779096A (zh) * | 2012-07-11 | 2012-11-14 | 山东华芯半导体有限公司 | 一种基于页块面三维的闪存地址映射方法 |
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
KR101607292B1 (ko) * | 2014-12-17 | 2016-03-29 | 고려대학교 산학협력단 | 플래시 스토리지 시스템 및 플래시 변환 계층을 통한 고속 결함 복구방법 |
CN108716916A (zh) * | 2018-05-31 | 2018-10-30 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN109725847A (zh) * | 2017-10-30 | 2019-05-07 | 东芝存储器株式会社 | 存储器***及控制方法 |
KR20190121461A (ko) * | 2018-04-18 | 2019-10-28 | 에스케이하이닉스 주식회사 | 전자 장치 |
CN113296694A (zh) * | 2020-11-13 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种上电重建方法及装置和固态硬盘 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117414B2 (en) * | 2006-09-04 | 2012-02-14 | Sandisk Il Ltd. | Method for prioritized erasure of flash memory |
US8738846B2 (en) * | 2010-10-15 | 2014-05-27 | Arkologic Limited | File system-aware solid-state storage management system |
US10540274B2 (en) * | 2016-03-29 | 2020-01-21 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
-
2021
- 2021-12-29 CN CN202111645432.4A patent/CN114442936B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722339A (zh) * | 2011-03-28 | 2012-10-10 | 西部数据技术公司 | 供电安全的数据管理*** |
CN102779096A (zh) * | 2012-07-11 | 2012-11-14 | 山东华芯半导体有限公司 | 一种基于页块面三维的闪存地址映射方法 |
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
KR101607292B1 (ko) * | 2014-12-17 | 2016-03-29 | 고려대학교 산학협력단 | 플래시 스토리지 시스템 및 플래시 변환 계층을 통한 고속 결함 복구방법 |
CN109725847A (zh) * | 2017-10-30 | 2019-05-07 | 东芝存储器株式会社 | 存储器***及控制方法 |
KR20190121461A (ko) * | 2018-04-18 | 2019-10-28 | 에스케이하이닉스 주식회사 | 전자 장치 |
CN108716916A (zh) * | 2018-05-31 | 2018-10-30 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN113296694A (zh) * | 2020-11-13 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种上电重建方法及装置和固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN114442936A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60303895T2 (de) | Hybridimplementierung von Fehlerkorrekturkoden eines nichtflüchtigen Speichersystems | |
US9201785B2 (en) | Data writing method, memory controller and memory storage apparatus | |
CN105653202A (zh) | 一种用于逻辑存储管理的多级方案 | |
US20140289451A1 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
CN109426622B (zh) | 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘 | |
US8667209B2 (en) | Non-volatile memory access method and system, and non-volatile memory controller | |
US8667210B2 (en) | Memory management method, memory controller and memory storage apparatus | |
US8832527B2 (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN105340020A (zh) | 存储器***中的擦除管理 | |
CN110058795A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN104464809A (zh) | 一种延长快闪存储器使用寿命的方法 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
US20220413737A1 (en) | Secure-Erase Prediction for Data Storage Devices | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
CN114442936B (zh) | 一种闪存转换层的块管理方法、装置、设备及存储介质 | |
CN105868046B (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
CN109491925A (zh) | 存储设备及其数据写入方法、存储装置 | |
CN115525605A (zh) | 一种文件***的传输***、方法 | |
CN101493726B (zh) | 固态硬盘管理方法、装置和*** | |
CN108054114A (zh) | 一种提高闪存可利用率的方法 | |
CN111338846B (zh) | 一种基于多核恢复l2p表的方法和装置 |
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 |