一种固态盘异常掉电后的映射表恢复方法及其系统与流程

文档序号:12363300阅读:550来源:国知局
一种固态盘异常掉电后的映射表恢复方法及其系统与流程

本发明涉及快照技术领域,特别是涉及一种固态盘异常掉电后的映射表恢复方法及其系统。



背景技术:

随着NAND闪存工艺的进步,固态盘(固态盘内包括多个闪存芯片)容量越来越大,固态盘的元数据,尤其是映射表也越来越大,为避免由于固态盘异常掉电而导致映射表失去许多重要数据,目前普遍采用增加电容延长掉电时间,同时使用快照技术将存有更改的映射信息的快照片段保存到闪存上的方法。

其中,快照技术是指对逻辑页到物理页的映射表信息做快照。固态盘的正常工作流程为:当内存接收到更新的映射信息后,根据该映射信息生成快照片段存储于快照片段页(物理页)中,并更新内存中的映射表内容;当快照片段页容量满时,将这个快照片段页刷写入闪存中,当刷写入闪存内的快照片段页的数量达到预设阈值后,将内存中的映射表刷写入闪存内。

但是,目前在对映射表进行掉电恢复时,往往由于待恢复的数据较多而导致恢复时间较长的问题出现,可靠性较低。

因此,如何提供一种掉电恢复时间短的固态盘异常掉电后的映射表恢复方法及其系统是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种固态盘异常掉电后的映射表恢复方法及其系统,能够增强掉电恢复时的并行处理程度,进而缩短掉电恢复的时间,提高固态盘的可靠性。

为解决上述技术问题,本发明提供了一种固态盘异常掉电后的映射表恢复方法,所述固态盘的闪存内包括用于存储奇数快照片段页的奇数通道以及用于存储偶数快照片段页的偶数通道,所述奇数快照片段页内存有奇数逻辑页修改数据,所述偶数快照片段页内存有偶数逻辑页修改数据;所述方法包括:

当所述固态盘进行掉电恢复时,从所述闪存内读取异常掉电时存储的映射信息以及所述闪存在异常掉电之前最后一次存储的映射表;其中,所述映射信息包括所述最后一次存储的映射表的位置信息以及在所述最后一次存储的映射表开始刷写至所述闪存的时刻之后存入所述闪存的快照片段页的起止地址;

N个CPU根据所述起止地址分别读取奇数快照片段页以及偶数快照片段页;并根据读取得到的奇数快照片段页以及偶数快照片段页对所述最后一次存储的映射表进行更新操作,N为偶数。

优选地,所述根据读取得到的所述奇数快照片段页以及所述偶数快照片段页对所述最后一次存储的映射表进行更新操作的过程具体为:

按照存入所述闪存的时间由晚至早的顺序读取相应通道内的快照片段页;

判断当前读取的快照片段页中对应的逻辑页数据在此次更新过程中是否已进行过修改,若是,忽略此次对所述逻辑页数据的修改,若否,按照所述当前读取的快照片段页对所述逻辑页数据进行修改。

优选地,所述奇数快照片段页存入所述奇数通道以及所述偶数快照片段页存入所述偶数通道的过程具体为:

当接收逻辑页修改数据后,若所述逻辑页修改数据的页码为奇数,将所述逻辑页修改数据作为奇数逻辑页修改数据,并生成相应的奇数快照片段;若所述逻辑页修改数据的页码为偶数,将所述逻辑页修改数据作为偶数逻辑页修改数据,并生成相应的偶数快照片段;

将生成的所述奇数快照片段或所述偶数快照片段分别存储至对应的物理页内;

当存储所述所述奇数快照片段的物理页存满后,将所述物理页作为奇数快照片段页刷写至所述闪存内的一个奇数通道内;

当存储所述所述偶数快照片段的物理页存满后,将所述物理页作为偶数快照片段页刷写至所述闪存内的一个偶数通道内;

当所述固态盘出现异常掉电时,将当前尚未刷写至所述闪存的奇数快照片段页以及偶数快照片段页分别刷写至对应的奇数通道和偶数通道内。

优选地,所述从所述闪存内读取异常掉电时存储的映射信息的过程具体为:

从所述闪存内读取元数据信息;

获取所述元数据信息内记录的异常掉电时的所述映射信息。

优选地,所述奇数通道与所述偶数通道均为2个。

优选地,N为2,一个所述CPU根据所述起止地址读取奇数快照片段页,并根据读取得到的奇数快照片段页对所述最后一次存储的映射表进行更新操作;另一个所述CPU根据所述起止地址读取偶数快照片段页,并根据读取得到的偶数快照片段页对所述最后一次存储的映射表进行更新操作。

为解决上述技术问题,本发明还提供了一种固态盘异常掉电后的映射表恢复系统,所述固态盘的闪存内包括用于存储奇数快照片段页的奇数通道以及用于存储偶数快照片段页的偶数通道,所述奇数快照片段页内存有奇数逻辑页修改数据,所述偶数快照片段页内存有偶数逻辑页修改数据;所述系统包括:

读取模块,用于当所述固态盘进行掉电恢复时,从所述闪存内读取异常掉电时存储的映射信息以及所述闪存在异常掉电之前最后一次存储的映射表;其中,所述映射信息包括所述最后一次存储的映射表的位置信息以及在所述最后一次存储的映射表开始刷写至所述闪存的时刻之后存入所述闪存的快照片段页的起止地址;

N个CPU,用于根据所述起止地址分别读取奇数快照片段页以及偶数快照片段页;并根据读取得到的奇数快照片段页以及偶数快照片段页对所述最后一次存储的映射表进行更新操作,N为偶数。

本发明提供了一种固态盘异常掉电后的映射表恢复方法及其系统,将快照片段页分为奇数快照片段页以及偶数快照片段页,分别存储奇数逻辑页修改数据以及偶数逻辑页修改数据;且奇数快照片段页以及偶数快照片段页分别存储于闪存内的奇数通道以及偶数通道内;当固态盘进行掉电恢复时,可以采用多个CPU来分别读取奇数快照片段页以及偶数快照片段页并对映射表进行更新。可见,本发明通过奇偶分离的方式增强了掉电恢复时的并行处理程度,进而缩短了掉电恢复的时间,提高了固态盘的可靠性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种固态盘异常掉电后的映射表恢复方法的过程的流程图;

图2为本发明提供的一种固态盘异常掉电后的映射表恢复系统的结构示意图。

具体实施方式

本发明的核心是提供一种固态盘异常掉电后的映射表恢复方法及其系统,能够增强掉电恢复时的并行处理程度,进而缩短掉电恢复的时间,提高固态盘的可靠性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种固态盘异常掉电后的映射表恢复方法,固态盘的闪存内包括用于存储奇数快照片段页的奇数通道以及用于存储偶数快照片段页的偶数通道,奇数快照片段页内存有奇数逻辑页修改数据,偶数快照片段页内存有偶数逻辑页修改数据;参见图1所示,图1为本发明提供的一种固态盘异常掉电后的映射表恢复方法的过程的流程图;该方法包括:

步骤s101:当固态盘进行掉电恢复时,从闪存内读取异常掉电时存储的映射信息以及闪存在异常掉电之前最后一次存储的映射表;其中,映射信息包括最后一次存储的映射表的位置信息以及在最后一次存储的映射表开始刷写至闪存的时刻之后存入闪存的快照片段页的起止地址;

步骤s102:N个CPU根据起止地址分别读取奇数快照片段页以及偶数快照片段页;并根据读取得到的奇数快照片段页以及偶数快照片段页对最后一次存储的映射表进行更新操作,N为偶数。

需要注意的是,偶数个CPU分别读取奇数通道以及偶数通道内的快照片段页。

可以理解的是,在快照技术中,当刷写入闪存内的快照片段页的数量达到预设阈值后,会将内存中的映射表刷写入闪存内,而此时若出现异常掉电情况,很大可能此时刷写入闪存内的快照片段页数量未达到预设阈值(例如每刷写20页存一次映射表,但异常断电时可能只存了10页快照片段页),这种情况下,闪存内存储的是上一次的映射表,而与这10页快照片段页内信息对应的映射表尚未存入闪存而是仍然位于内存内,掉电后则丢失,需要在上电后根据这10页快照片段页对映射表进行更新。故为避免无用操作,在异常掉电时需要记录这部分数量未达到预设阈值的快照片段页的起止地址,供恢复时根据该起止地址找出这部分快照片段页。

作为优选地,根据读取得到的奇数快照片段页以及偶数快照片段页对最后一次存储的映射表进行更新操作的过程具体为:

按照存入闪存的时间由晚至早的顺序读取相应通道内的快照片段页;

判断当前读取的快照片段页中对应的逻辑页数据在此次更新过程中是否已进行过修改,若是,忽略此次对逻辑页数据的修改,若否,按照当前读取的快照片段页对逻辑页数据进行修改。

可以理解的是,采用上述操作,可以尽可能减少不必要的修改写操作,缩短上电后映射表的恢复时间,提高固态盘的可靠性。

具体的,奇数快照片段页存入奇数通道以及偶数快照片段页存入偶数通道的过程具体为:

当接收逻辑页修改数据后,若逻辑页修改数据的页码为奇数,将逻辑页修改数据作为奇数逻辑页修改数据,并生成相应的奇数快照片段;若逻辑页修改数据的页码为偶数,将逻辑页修改数据作为偶数逻辑页修改数据,并生成相应的偶数快照片段;

将生成的奇数快照片段或偶数快照片段分别存储至对应的物理页内;

当存储奇数快照片段的物理页存满后,将物理页作为奇数快照片段页刷写至闪存内的一个奇数通道内;

当存储偶数快照片段的物理页存满后,将物理页作为偶数快照片段页刷写至闪存内的一个偶数通道内;

当固态盘出现异常掉电时,将当前尚未刷写至闪存的奇数快照片段页以及偶数快照片段页分别刷写至对应的奇数通道和偶数通道内。

作为优选地,从闪存内读取异常掉电时存储的映射信息的过程具体为:

从闪存内读取元数据信息;

获取元数据信息内记录的异常掉电时的映射信息。

作为优选地,奇数通道与偶数通道均为2个。

作为优选地,N为2,一个CPU根据起止地址读取奇数快照片段页,并根据读取得到的奇数快照片段页对最后一次存储的映射表进行更新操作;另一个CPU根据起止地址读取偶数快照片段页,并根据读取得到的偶数快照片段页对最后一次存储的映射表进行更新操作。

可以理解的是,在不分奇偶时,内存中设置快照片段页的数量至少为两个,当一个快照片段页存满后写入闪存时,由于需要一定的时间,为避免这段时间内有新的快照片段产生,故还需要有另外一个快照片段页作为替换。故当分奇偶时,内存中至少要设置4个快照片段页,两个作为奇数快照片段页,两个作为偶数快照片段页。对应的,奇数通道和偶数通道分别至少有1个。对应的,CPU的个数至少为两个,分别处理奇数通道和偶数通道内的快照片段页,提高并行处理的能力,减少异常掉电后的恢复时间。

进一步的,当奇数通道与偶数通道均为多个时,CPU可对应的设置多于2个,进一步减少恢复时间。当然,CPU的设置个数根据通道个数以及实际情况决定,本发明对此不作限定。

本发明提供了一种固态盘异常掉电后的映射表恢复方法,将快照片段页分为奇数快照片段页以及偶数快照片段页,分别存储奇数逻辑页修改数据以及偶数逻辑页修改数据;且奇数快照片段页以及偶数快照片段页分别存储于闪存内的奇数通道以及偶数通道内;当固态盘进行掉电恢复时,可以采用多个CPU来分别读取奇数快照片段页以及偶数快照片段页并对映射表进行更新。可见,本发明通过奇偶分离的方式增强了掉电恢复时的并行处理程度,进而缩短了掉电恢复的时间,提高了固态盘的可靠性。

本发明还提供了一种固态盘异常掉电后的映射表恢复系统,固态盘的闪存内包括用于存储奇数快照片段页的奇数通道以及用于存储偶数快照片段页的偶数通道,奇数快照片段页内存有奇数逻辑页修改数据,偶数快照片段页内存有偶数逻辑页修改数据;参见图2所示,图2为本发明提供的一种固态盘异常掉电后的映射表恢复系统的结构示意图。该系统包括:

读取模块11,用于当固态盘进行掉电恢复时,从闪存内读取异常掉电时存储的映射信息以及闪存在异常掉电之前最后一次存储的映射表;其中,映射信息包括最后一次存储的映射表的位置信息以及在最后一次存储的映射表开始刷写至闪存的时刻之后存入闪存的快照片段页的起止地址;

N个CPU12,用于根据起止地址分别读取奇数快照片段页以及偶数快照片段页;并根据读取得到的奇数快照片段页以及偶数快照片段页对最后一次存储的映射表进行更新操作,N为偶数。

需要注意的是,偶数个CPU12分别读取奇数通道以及偶数通道内的快照片段页。

本发明提供了一种固态盘异常掉电后的映射表恢复系统,将快照片段页分为奇数快照片段页以及偶数快照片段页,分别存储奇数逻辑页修改数据以及偶数逻辑页修改数据;且奇数快照片段页以及偶数快照片段页分别存储于闪存内的奇数通道以及偶数通道内;当固态盘进行掉电恢复时,可以采用多个CPU来分别读取奇数快照片段页以及偶数快照片段页并对映射表进行更新。可见,本发明通过奇偶分离的方式增强了掉电恢复时的并行处理程度,进而缩短了掉电恢复的时间,提高了固态盘的可靠性。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1