CN107402724B - 一种SSD中Journal元数据的保存方法及*** - Google Patents
一种SSD中Journal元数据的保存方法及*** Download PDFInfo
- Publication number
- CN107402724B CN107402724B CN201710640093.8A CN201710640093A CN107402724B CN 107402724 B CN107402724 B CN 107402724B CN 201710640093 A CN201710640093 A CN 201710640093A CN 107402724 B CN107402724 B CN 107402724B
- Authority
- CN
- China
- Prior art keywords
- metadata
- flash
- incremental
- size
- base
- 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 67
- 230000001960 triggered effect Effects 0.000 claims description 4
- 239000003990 capacitor Substances 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/0629—Configuration or reconfiguration 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/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]
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
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)
- Coating Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种SSD中Journal元数据的保存方法及***,包括将新增的元数据存储至预先建立的与元数据对应的缓冲区中;判断缓冲区中存储的第一增量元数据是否达到4k,若是,获取第一增量元数据及3个4k大小的第一base元数据,将获取的这些数据刷写至flash中;当接收到下电指令后判断缓冲区中的第二增量元数据是否达到4k,若是,获取第二增量元数据及3个4k大小的第二base元数据,将第二增量元数据及3个4k大小的第二base元数据刷写至flash中;若否,采用无效数据填充缓冲区中的剩余地址,将缓冲区中的总数据信息作为第二增量元数据。本发明实施例降低了下电保存过程中所需保存的元数据数量,提高了***的可靠性。
Description
技术领域
本发明实施例涉及数据存储技术领域,特别是涉及一种SSD中Journal元数据的保存方法及***。
背景技术
目前,SSD盘的下电过程分为两种,一种是正常下电,另一种是异常下电,无论哪种下电过程,对于元数据的保存过程而言JM(Journal Manager)模块是不进行区分的,唯一的区别是在正常下电时SSD盘是收到了host端的下电信号后执行下电时的保存等相关处理的操作,但此时是可以使用SSD的外接电源来完成下电时的处理过程的,而异常下电大部分情况下是由于外接电源突然断开导致的,所以此时的下电保存的工作所使用的电源要依赖于SSD自身的大电容进行放电。
现有技术中,在下电时刻到来时,JM模块将所有的元数据进行保存,即当SSD下电时将整个元数据刷写至flash中,对于异常下电的情况而言,由于下电保存工作所使用的电源依赖于SSD自身的大电容的放电,并且SSD中的电容的放电时间有限,所以可能会导致数据保存不完整,从而使数据的安全性降低。
因此,如何提供一种解决上述技术问题的SSD中Journal元数据的保存方法及***成为本领域的技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种SSD中Journal元数据的保存方法及***,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了***下电时导致元数据不能完全保存的风险,提高了***的可靠性。
为解决上述技术问题,本发明实施例提供了一种SSD中Journal元数据的保存方法,包括:
S11:将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;
S12:判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则进入S13;
S13:获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;
S14:当接收到下电指令后,判断所述缓冲区中的第二增量元数据是否达到4k,如果是,进入S15,否则,进入S16;
S15:获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;
S16:采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并返回S15。
可选的,所述将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中的过程具体为:
获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;
将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;
所述方法还包括依据各个所述pba更新L2p列表。
可选的,在S15之后所述方法还包括:
从所述L2p列表中获取与各个所述pba对应的一级元数据;
将所述一级元数据以4k为单位刷写至所述flash中。
可选的,所述方法还包括:
分别依据各个4k大小的一级元数据生成与各个所述4k大小的一级元数据分别相应的各个二级元数据;
将各个所述二级元数据刷写至flash中的super block区域中。
为解决上述技术问题,本发明实施例提供了一种SSD中Journal元数据的保存***,包括:
存储模块,用于将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;
判断模块,用于判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则触发刷写模块;用于判断所述缓冲区中的第二增量元数据是否达到4k,如果是,则触发所述刷写模块,否则,触发填充模块;
所述刷写模块,用于获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;还用于获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;
接收模块,用于当接收到下电指令后触发所述判断模块;
所述填充模块,用于采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并触发所述刷写模块。
可选的,所述刷写模块包括:
获取单元,用于获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;
刷写单元,用于将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;
则,所述***还包括更新模块,用于依据各个所述pba更新L2p列表。
本发明实施例提供了一种SSD中Journal元数据的保存方法及***,包括:将新增的元数据存储至预先建立的、与元数据对应的缓冲区中;判断缓冲区中存储的第一增量元数据是否达到4k,如果第一增量元数据达到4k,则获取第一增量元数据及3个4k大小的第一base元数据,并将第一增量元数据及3个4k大小的第一base元数据刷写至flash中;当接收到下电指令后,判断缓冲区中的第二增量元数据是否达到4k,如果第二增量元数据达到4k,则获取第二增量元数据及3个4k大小的第二base元数据,并将第二增量元数据及3个4k大小的第二base元数据刷写至flash中;若第二增量元数据没有达到4k,采用无效数据填充缓冲区中的剩余地址,使缓冲区中所存储的总数据信息达到4k,将总数据信息作为第二增量元数据。
本发明实施例中,预先建立与每种元数据分别对应的缓冲区,并且在***运行过程中当缓冲区中的第一增量元数据达到4k时,则将该第一增量元数据和4k大小的第一base元数据按照1:3的对应关系刷写至flash中,在***运行过程中即可将相应的元数据刷写至flash中,使当SSD下电时,仅需要将此时的缓冲区中所存储的第二增量元数据及3个相应的第二base元数据刷写至flash中即可,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了***下电时导致元数据不能完全保存的风险,提高了***的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种SSD中Journal元数据的保存方法的流程示意图;
图2为本发明实施例提供的一种SSD中Journal元数据的保存***的结构示意图。
具体实施方式
本发明实施例提供了一种SSD中Journal元数据的保存方法及***,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了***下电时导致元数据不能完全保存的风险,提高了***的可靠性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施例提供的一种SSD中Journal元数据的保存方法的流程示意图。
该方法包括:
S11:将新增的元数据存储至预先建立的、与元数据对应的缓冲区中;
需要说明的是,在***运行时预先为每一种元数据的增量元数据建立与其对应的DDR缓冲区,并在***运行中每当每种元数据发生改变时,则将其增量元数据(即元数据的该变量)存储至相应的缓冲区中,该缓冲区的大小可以为4k。具体的每种元数据对应的缓冲区的数量可以为两个,两个缓冲区轮流进行数据缓存,当其中一个缓冲区中的增量元数据达到4k时,则向另一个缓冲区进行缓存,并且在缓存区中的增量元数据刷写至flash中后,该缓冲区可以用来进行下一次的缓存并用本次缓存的增量元数据覆盖上一次缓存的增量元数据。
下面将以一种元数据的一个缓冲区为例对元数据保存过程进行详细的说明,具体如下:
S12:判断缓冲区中存储的第一增量元数据是否达到4k,如果是,则进入S13;
在***运行过程中可以实时或定时对每个缓冲区中的增量元数据的大小进行判断,例如对元数据L2p列表对应的缓冲区中的第一增量元数据的大小进行判断,并当该缓冲区中的第一增量元数据的大小为4k(即缓冲区满4k)时,将该第一增量元数据刷写至flash中,具体刷写过程如下:
S13:获取第一增量元数据及3个4k大小的第一base元数据,并将第一增量元数据及3个4k大小的第一base元数据刷写至flash中;
具体的,在本发明实施例中base元数据与增量元数据的数量关系为3:1,故每将一个第一增量元数据刷写至flash中的同时还将获取3个4k大小的第一base元数据,并将其刷写至flash中,具体的获取方式为从第一个4k大小的第一元数据起按照次序获取前3个4k大小的第一元数据,待下一次缓冲区中第一增量元数据又满4k时,则将该第一增量元数据刷写至flash中的同时再获取后续3个4k大小的第一元数据,并将其刷写至flash中。
进一步的,在S13中将第一增量元数据及3个4k大小的第一base元数据刷写至flash中的过程具体为:
获取4个LBA,并依据各个LBA分别计算出与第一增量元数据及与各个第一base元数据分别对应的pba;
将第一增量元数据及3个4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;
该方法还包括依据各个pba更新L2p列表。
需要说明的是,在将一个第一增量元数据及3个4k大小的第一base元数据刷写至flash中的过程,通过JM(Journal Manager)模块获取4个LBA(逻辑地址),并对每个LBA进行计算得出与各个LBA一一对应的pba(物理地址),一个pba即flash中的一个地址,第一增量元数据按照与其对应的一个pba刷写至flash中相应的地址上,同样每个第一base元数据都依据与其对应的pba刷写至flash中相应的地址上。同时,将计算得出的各个pba存储至L2p列表中,以更新L2p列表。
S14:当接收到下电指令后,判断缓冲区中的第二增量元数据是否达到4k,如果是,进入S15,否则,进入S16;
S15:获取第二增量元数据及3个4k大小的第二base元数据,并将第二增量元数据及3个4k大小的第二base元数据刷写至flash中;
S16:采用无效数据填充缓冲区中的剩余地址,使缓冲区中所存储的总数据信息达到4k,将总数据信息作为第二增量元数据,并返回S15。
需要说明的是,当SSD下电过程到来时,则可以先判断DDR缓冲区中是否有第二增量元数据,若没有数据,则说明将上一次满4k的增量元数据刷写至flash后还没有缓存新的增量元数据,若有数据,则此时需要判断缓冲区中的第二增量元数据是否达到4k,当此时的第二增量元数据达到4k时,则直接获取第二增量元数据,并按照顺序获取相应的3个4k大小的第二base元数据,并依据相应的各个LBA计算出各个相应的pba,并将第二增量元数据及该3个4k大小的第二base元数据按照相应的pba刷写至flash中相应的位置上,同时更新相应的L2p列表。
当下电过程到来时,缓冲区中缓存有第二增量元数据,但是该第二增量元数据没有达到4k,此时,需要将缓冲区中剩余的地址用无效(dummy)数据来填充,该无效数据可以预先设置,例如将数据0设置为无效数据,则可以采用数据0进行填充,并将填充后达到4k的数据刷写至flash中,同时刷写相应的3个4k大小的第二元数据。
进一步的,在上述S15之后该方法还包括:
从L2p列表中获取与各个pba对应的一级元数据;
将一级元数据以4k为单位刷写至flash中。
需要说明的是,当SSD下电时,不仅需要将各个增量元数据及相应的base元数据刷写至flash中,还需要将与L2p表中的各个pba对应的一级元数据刷写至flash中。具体可以将一级元数据以4k为单位刷写至flash中,例如获取第二LBA,依据第二LBA计算得出与4k大小的一级元数据对应的第二pba,并将该4k大小的一级元数据按照第二pba刷写至flash中的相应位置上。在将每4k大小的一级元数据刷写至flash的过程中所产生的第二pba对应的为二级元数据,并且该二级元数据的数量较少。
更进一步的,该方法还可以包括:
分别依据各个4k大小的一级元数据生成与各个4k大小的一级元数据分别相应的各个二级元数据;
将各个二级元数据刷写至flash中的super block区域中。
如上述所说明的,在将每4k大小的一级元数据刷写至flash的过程中所产生的第二pba对应的为二级元数据,例如有多个4k大小的一级元数据,与每个4k大小的一级元数据均分别对应一个二级元数据,因此二级元数据的数量较少,从而可以将这些二级元数据直接刷写至flash中的super block区域中,具体可以再JM模块完成下电后通知controlmanager模块将flash中的super block区域中的信息写入flash中进行保存。此时,JM模块可以通知LKM(Lookup Manager)模块下电过程完成。
另外,在下电保存的过程中,需要依据上述过程计算出电容放电时间要求,以下电时需要保存三种元数据且SSD盘为8T盘为例,JM下电时电容的总时间消耗最大约为17.2ms,在电容放电总时间达到17.2ms时,JM模块可以将所有的元数据保存完毕,且在下电后的保存过程中所需保存的数据量较少。
需要说明的是,本发明实施例中预先建立与每种元数据分别对应的缓冲区,并且在***运行过程中当缓冲区中的第一增量元数据达到4k时,则将该第一增量元数据和4k大小的第一base元数据按照1:3的对应关系刷写至flash中,在***运行过程中即可将相应的元数据刷写至flash中,使当SSD下电时,仅需要将此时的缓冲区中所存储的第二增量元数据及3个相应的第二base元数据刷写至flash中即可,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了***下电时导致元数据不能完全保存的风险,提高了***的可靠性。
相应的本发明实施例还公开了一种SSD中Journal元数据的保存***,具体请参照图2,图2为本发明实施例提供的一种SSD中Journal元数据的保存***的结构示意图。
该***包括:
存储模块1,用于将新增的元数据存储至预先建立的、与元数据对应的缓冲区中;
判断模块2,用于判断缓冲区中存储的第一增量元数据是否达到4k,如果是,则触发刷写模块3;用于判断缓冲区中的第二增量元数据是否达到4k,如果是,则触发刷写模块3,否则,触发填充模块5;
刷写模块3,用于获取第一增量元数据及3个4k大小的第一base元数据,并将第一增量元数据及3个4k大小的第一base元数据刷写至flash中;还用于获取第二增量元数据及3个4k大小的第二base元数据,并将第二增量元数据及3个4k大小的第二base元数据刷写至flash中;
接收模块4,用于当接收到下电指令后触发判断模块2;
填充模块5,用于采用无效数据填充缓冲区中的剩余地址,使缓冲区中所存储的总数据信息达到4k,将总数据信息作为第二增量元数据,并触发刷写模块3。
可选的,刷写模块3包括:
获取单元,用于获取4个LBA,并依据各个LBA分别计算出与第一增量元数据及与各个第一base元数据分别对应的pba;
刷写单元,用于将第一增量元数据及3个4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;
则,***还包括更新模块,用于依据各个pba更新L2p列表。
需要说明的是,本发明实施例中预先建立与每种元数据分别对应的缓冲区,并且在***运行过程中当缓冲区中的第一增量元数据达到4k时,则将该第一增量元数据和4k大小的第一base元数据按照1:3的对应关系刷写至flash中,在***运行过程中即可将相应的元数据刷写至flash中,使当SSD下电时,仅需要将此时的缓冲区中所存储的第二增量元数据及3个相应的第二base元数据刷写至flash中即可,在确保了元数据的完整性的基础上,降低了下电保存过程中所需保存的元数据数量,进一步降低了***下电时导致元数据不能完全保存的风险,提高了***的可靠性。
另外,对于本发明实施例中所涉及到的SSD中Journal元数据的保存方法的具体介绍请参照上述方法实施例,本申请在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种SSD中Journal元数据的保存方法,其特征在于,包括:
S11:将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;
S12:判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则进入S13;
S13:获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;
S14:当接收到下电指令后,判断所述缓冲区中的第二增量元数据是否达到4k,如果是,进入S15,否则,进入S16;
S15:获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;
S16:采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并返回S15。
2.根据权利要求1所述的SSD中Journal元数据的保存方法,其特征在于,所述将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中的过程具体为:
获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;
将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;
所述方法还包括依据各个所述pba更新L2p列表。
3.根据权利要求2所述的SSD中Journal元数据的保存方法,其特征在于,在S15之后所述方法还包括:
从所述L2p列表中获取与各个所述pba对应的一级元数据;
将所述一级元数据以4k为单位刷写至所述flash中。
4.根据权利要求3所述的SSD中Journal元数据的保存方法,其特征在于,所述方法还包括:
分别依据各个4k大小的一级元数据生成与各个所述4k大小的一级元数据分别相应的各个二级元数据;
将各个所述二级元数据刷写至flash中的super block区域中。
5.一种SSD中Journal元数据的保存***,其特征在于,包括:
存储模块,用于将新增的元数据存储至预先建立的、与所述元数据对应的缓冲区中;
判断模块,用于判断所述缓冲区中所述存储的第一增量元数据是否达到4k,如果是,则触发刷写模块;用于判断所述缓冲区中的第二增量元数据是否达到4k,如果是,则触发所述刷写模块,否则,触发填充模块;
所述刷写模块,用于获取所述第一增量元数据及3个4k大小的第一base元数据,并将所述第一增量元数据及3个所述4k大小的第一base元数据刷写至flash中;还用于获取所述第二增量元数据及3个4k大小的第二base元数据,并将所述第二增量元数据及3个所述4k大小的第二base元数据刷写至flash中;
接收模块,用于当接收到下电指令后触发所述判断模块;
所述填充模块,用于采用无效数据填充所述缓冲区中的剩余地址,使所述缓冲区中所存储的总数据信息达到4k,将所述总数据信息作为所述第二增量元数据,并触发所述刷写模块。
6.根据权利要求5所述的SSD中Journal元数据的保存***,其特征在于,所述刷写模块包括:
获取单元,用于获取4个LBA,并依据各个所述LBA分别计算出与所述第一增量元数据及与各个所述第一base元数据分别对应的pba;
刷写单元,用于将所述第一增量元数据及3个所述4k大小的第一base元数据分别依据与其一一对应的pba刷写至flash中;
则,所述***还包括更新模块,用于依据各个所述pba更新L2p列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710640093.8A CN107402724B (zh) | 2017-07-31 | 2017-07-31 | 一种SSD中Journal元数据的保存方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710640093.8A CN107402724B (zh) | 2017-07-31 | 2017-07-31 | 一种SSD中Journal元数据的保存方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107402724A CN107402724A (zh) | 2017-11-28 |
CN107402724B true CN107402724B (zh) | 2020-07-24 |
Family
ID=60401322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710640093.8A Active CN107402724B (zh) | 2017-07-31 | 2017-07-31 | 一种SSD中Journal元数据的保存方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107402724B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874309B (zh) * | 2018-05-25 | 2021-07-23 | 新华三技术有限公司 | 一种管理固态硬盘中物理块的方法和装置 |
CN108762989B (zh) * | 2018-06-05 | 2021-08-31 | 郑州云海信息技术有限公司 | 固态硬盘的数据存储方法、装置、设备及可读存储介质 |
CN109508144B (zh) * | 2018-08-30 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种日志处理方法及相关装置 |
CN111581126B (zh) * | 2020-05-08 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 一种基于ssd的日志数据保存方法、装置、设备和介质 |
CN112069189B (zh) * | 2020-09-16 | 2024-05-17 | 深圳市硅格半导体有限公司 | 多层级映射表格的更新方法、***、终端设备及存储介质 |
CN112162703B (zh) * | 2020-09-25 | 2022-02-22 | 杭州宏杉科技股份有限公司 | 缓存实现方法及缓存管理模块 |
CN112631950B (zh) * | 2020-12-11 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种l2p表的保存方法、***、设备以及介质 |
CN117591036B (zh) * | 2024-01-18 | 2024-03-19 | 四川云海芯科微电子科技有限公司 | 基于固件与芯片微内核的占位数据补齐方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1522927A2 (en) * | 2003-10-10 | 2005-04-13 | Sony Corporation | File storage apparatus capable of restoring file management information |
CN101840380A (zh) * | 2009-03-12 | 2010-09-22 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
CN102521147A (zh) * | 2011-11-17 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种使用高速非易失介质做缓存的管理方法 |
CN102902637A (zh) * | 2012-11-19 | 2013-01-30 | 北京理工大学 | 一种固态硬盘数据断电保护方法 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN105677588A (zh) * | 2016-01-06 | 2016-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据保护方法及装置 |
CN106933706A (zh) * | 2017-03-10 | 2017-07-07 | 联想(北京)有限公司 | 非易失性内存的掉电保护方法及装置 |
-
2017
- 2017-07-31 CN CN201710640093.8A patent/CN107402724B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1522927A2 (en) * | 2003-10-10 | 2005-04-13 | Sony Corporation | File storage apparatus capable of restoring file management information |
CN101840380A (zh) * | 2009-03-12 | 2010-09-22 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
CN102521147A (zh) * | 2011-11-17 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种使用高速非易失介质做缓存的管理方法 |
CN102902637A (zh) * | 2012-11-19 | 2013-01-30 | 北京理工大学 | 一种固态硬盘数据断电保护方法 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN105677588A (zh) * | 2016-01-06 | 2016-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据保护方法及装置 |
CN106933706A (zh) * | 2017-03-10 | 2017-07-07 | 联想(北京)有限公司 | 非易失性内存的掉电保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107402724A (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402724B (zh) | 一种SSD中Journal元数据的保存方法及*** | |
US10275162B2 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
WO2018059361A1 (zh) | 一种存储***掉电保护方法、存储控制器及电子设备 | |
KR101892302B1 (ko) | 불휘발성 메모리 시스템들을 위한 위브 시퀀스 카운터 | |
EP2626792A1 (en) | Wear leveling method, memory device, and information system | |
US10599345B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US20030093610A1 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
KR101668054B1 (ko) | 제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들 | |
US20180188981A1 (en) | Methods and apparatus for read disturb detection based on logical domain | |
US20180253384A1 (en) | Variable cache for non-volatile memory | |
US20190138341A1 (en) | Method and apparatus for managing disaggregated memory | |
US20140325123A1 (en) | Information processing apparatus, control circuit, and control method | |
CN103984506A (zh) | 闪存存储设备数据写的方法和*** | |
CN104021089A (zh) | 快闪存储器控制芯片与存储装置以及快闪存储器控制方法 | |
CN112835528A (zh) | 脏页刷新方法和装置、电子设备和存储介质 | |
CN105512047A (zh) | Flash闪存的写操作、擦除操作方法及装置 | |
CN111324549B (zh) | 一种存储器及其控制方法和装置 | |
CN113342276B (zh) | 一种日志保存方法、***、设备以及介质 | |
CN111061429B (zh) | 一种数据访问方法、装置、设备、介质 | |
JP2019091517A (ja) | メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ | |
US10120611B2 (en) | Storage device and data control method for storage error control | |
CN110334034B (zh) | 映射表动态加载的方法、装置、计算机设备及存储介质 | |
TWI585676B (zh) | 資料儲存裝置、記憶體控制器及其操作方法 | |
CN114328548A (zh) | 双存储池数据淘汰速度控制方法、***、终端及存储介质 | |
CN109407989B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200628 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |