一种动态容量调整过程中安全平滑的方法与流程

文档序号:15557293发布日期:2018-09-29 01:25阅读:124来源:国知局

本发明涉及存储技术领域,尤其涉及一种动态容量调整过程中安全平滑的方法。



背景技术:

nandflash是当今使用的最广泛的一种存贮介质,在存储设备中的得到了大量的使用。由于工艺和材料的原因nandflash在出厂时会有一些坏块,在后来的使用过程中也会产生新的坏块。在基于nnadflash固态存储设备中,由于nandflash必须要先擦除才能写入数据,所以设备中需要有超出设备标称容量的冗余空间来对已存储空间进行垃圾回收。当一个设备中的坏块超过一定的数量的时候,冗余空间不够时,会导致垃圾回收效率变低,甚至当坏块足够多时,出现根本回收不出空间的状况。当出现这种情况时,要么整个盘不可用了,要么降低容量使用,对于一般消费级产品来说,降低容量以获取足够的冗余空间是一个经济的方法,但是由于这时候可能有些数据还在超出新容量的空间之外,如果直接把这些数据丢弃,就有可能会导致系统数据丢失,因此业界的做法往往是让设备先进入只读状态,等待设备重新格式化,然后才能降低容量使用。



技术实现要素:

针对以上缺陷,本发明目的在于如何解决出现大量坏块在固定冗余空间情况出现数据丢失的问题。

为了实现上述目的,本发明提供了一种动态容量调整过程中安全平滑的方法,其特征在于每次固态硬盘上电时系统进行复位,获取设备初始用户容量信息和当前用户容量信息,根据当前容量和冗余空间计算确定冗余空间下限,当系统发现出现新的坏块时,检查当前的冗余空间是否小于冗余空间下限,如果小于则从当前用户容量中分配一部分空间补充到冗余空间,保证冗余空间不小于冗余空间下限。

所述的动态容量调整过程中安全平滑的方法,其特征在于增加命令识别模块判断当前命令是否为写命令,如果是先判断当前命令的地址空间是否超出当前用户容量空间,如果是则返回失败,结束本次写命令,否则继续执行本次命令;如果为非写命令,则增加判断当前命令的地址空间是否超出初始用户容量空间,如果是则返回失败,结束本次写命令,否则继续执行本次命令。

本发明通过动态容量,并设定冗余空间的上限和下限和禁止向新容量以外的空间写入数据,原来写过数据的空间仍然可以进行读访问的方法,让存储设备不需要重新格式化就可以平滑的转换到新容量,从而更方便消费者的使用。

附图说明

图1是动态容量参数初始化流程图;

图2是动态容量调整的触发流程图;

图3是动态容量存储设备命令执行过程流程图。

具体实施方式

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

本技术提出了一种平滑过渡的动态容量调整方法,通过设定冗余空间的上限和下限和禁止向新容量以外的空间写入数据,原来写过数据的空间仍然可以进行读访问的方法,让存储设备不需要重新格式化就可以平滑的转换到新容量,从而更方便消费者的使用。具体调整过程如下:

图1是动态容量参数初始化流程图;存储设备出厂时,根据原生容量,设定初始用户容量空间的大小以及冗余空间的下限,冗余空间的下限是厂商依据设备产品的性能要求确定的,它是能够确保存储设备正常运行的并能保证一定性能条件下最少系统需要的冗余空间。在于每次固态硬盘上电时系统进行复位,获取设备初始用户容量信息和当前用户容量信息,根据当前容量和冗余空间计算确定冗余空间下限,并根据当前坏块数量确定当前冗余空间的大小。

图2是动态容量调整的触发流程图;当坏块增加到一定程度,导致冗余空间大小低于冗余下限时,设备应该进行态容量的调整,在容量调整时,应该使得在新容量下,冗余空间的大小不低于下限。因此增加当系统发现出现新的坏块时,当前冗余空间大小减去坏块造成的空间损失,获得当前实际冗余空间,检查当前的实际冗余空间是否小于冗余空间下限,如果小于则从当前用户容量中分配一部分空间补充到冗余空间,保证冗余空间不小于冗余空间下限。

图3是动态容量存储设备命令执行过程流程图;容量调整后,新容量在设备的设备信息中更新,主机通过查询可以知道。在新容量下,主机不允许对超出新容量空间外的数据进行写操作,但是允许主机对超出新容量空间但仍在初始用户容量空间内的数据进行读取和擦除(或者trim)操作。具体为通过增加命令识别模块判断当前命令是否为写命令,如果是先判断当前命令的地址空间是否超出当前用户容量空间,如果是则返回失败,结束本次写命令,否则继续执行本次命令;如果为非写命令,则增加判断当前命令的地址空间是否超出初始用户容量空间,如果是则返回失败,结束本次写命令,否则继续执行本次命令。

以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。



技术特征:

技术总结
本发明公开了一种动态容量调整过程中安全平滑的方法,其特征在于每次固态硬盘上电时系统进行复位,获取设备初始用户容量信息和当前用户容量信息,根据当前容量和冗余空间计算确定冗余空间下限,当系统发现出现新的坏块时,检查当前的冗余空间是否小于冗余空间下限,如果小于则从当前用户容量中分配一部分空间补充到冗余空间,保证冗余空间不小于冗余空间下限。本发明通过动态容量,并设定冗余空间的上限和下限和禁止向新容量以外的空间写入数据,原来写过数据的空间仍然可以进行读访问的方法,让存储设备不需要重新格式化就可以平滑的转换到新容量,从而更方便消费者的使用。

技术研发人员:李招远
受保护的技术使用者:记忆科技(深圳)有限公司;东莞记忆存储科技有限公司
技术研发日:2018.03.29
技术公布日:2018.09.28
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1