一种数据处理方法、装置及闪存设备与流程

文档序号:16916467发布日期:2019-02-19 19:00阅读:150来源:国知局
一种数据处理方法、装置及闪存设备与流程

本发明涉及闪存设备技术领域,具体涉及一种数据处理方法、装置及闪存设备。



背景技术:

固态硬盘(solidstatedrives,ssd),简称固盘,为用固态电子存储芯片阵列制成的硬盘。ssd被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。市面上,常见的ssd的容量一般有60/64gb、120/128gb、240/256gb、480/512gb、960g/1024g,斜线左边的数值为用户可用空间容量,右边的数值为ssd的物理空间容量,两者之间的差值为冗余空间(overprovisioning,op),通常这部分空间用户不可操作,容量大小一般由主控决定。op一般被用来做优化操作,包括磨损平衡,垃圾回收和坏块映射等。冗余比即为冗余空间容量与用户可用空间容量之间的比值,业界典型的冗余比为7%和28%:以1024gb物理空间容量为例,当用户可用空间容量为960gb时,对应的冗余比为7%,即(1024-960)/960;当用户可用空间容量为800gb时,对应的冗余比为28%,即(1024-800)/800。冗余比越大随机写入性能越高,性能波动越小,使用寿命越长,但是冗余比越大意味着成本越高。

由于ssd中的闪存必须先擦除才能再写入,读写是以页为单位而擦除是以块为单位,导致实际写入的数据量比主机写入的数据量大很多。写入放大(writeamplification,wa),即实际写入数据量与主机写入数据量的比值。wa越大,冗余比越小,使用寿命越短,随机写入性能越低。

目前,ssd厂商对一定容量的ssd提供多种冗余比,用户根据自己的需求选择一种固定的冗余比。一旦冗余比固定,该ssd的各项参数也就随之固定,同时该ssd的性能、使用寿命也就随之固定,该ssd只能以该固定冗余比运行,导致ssd的性能、使用寿命难以进一步优化。



技术实现要素:

本发明实施例提供一种数据处理方法、装置及闪存设备,能够动态调整冗余比,提高闪存设备的可靠性和性能稳定性,从而延长闪存设备的使用寿命。

本发明实施例第一方面提供一种数据处理方法,所述方法应用于存储系统中,所述存储系统包括主机和闪存设备,所述闪存设备的物理存储空间根据多个不同的冗余比配置多个冗余等级,每个冗余等级对应一段用户存储空间容量的区间,每个用户存储空间容量的区间对应不同的调整参数,所述冗余比为冗余空间容量与所述用户存储空间容量的比值,所述冗余空间容量为所述物理存储空间的容量与所述用户存储空间容量的差值,所述方法由所述闪存设备执行包括:

接收所述主机发送的操作指令,根据所述操作指令对所述闪存设备中存储的数据进行操作,并确定操作后的所述闪存设备中用户存储的数据量;

根据所述操作后的所述闪存设备中用户存储的数据量以及所述每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级;

根据所述目标冗余等级以及所述每个冗余等级与调整参数之间的对应关系,确定目标调整参数;

按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小。

在本发明实施例第一方面的第一种可能的实现方式中,所述接收所述主机发送的操作指令,根据所述操作指令对所述闪存设备中存储的数据进行操作,并确定操作后的所述闪存设备中用户存储的数据量,包括:

接收所述主机发送的写入指令,根据所述写入指令确定待添加数据;

将所述待添加数据添加至所述闪存设备中,并将所述待添加数据添加至所述闪存设备后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

在本发明实施例第一方面的第二种可能的实现方式中,所述接收所述主机发送的操作指令,根据所述操作指令对所述闪存设备中存储的数据进行操作,并确定操作后的所述闪存设备中用户存储的数据量,包括:

接收所述主机发送的删除指令,根据所述删除指令确定待删除数据;

将所述待删除数据从所述闪存设备中删除,并将所述待删除数据被删除后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

结合本发明实施例第一方面的第一种可能的实现方式中,在本发明实施例第三种可能的实现方式中,所述将所述待添加数据添加至所述闪存设备中之前,还包括:

对所述待添加数据进行压缩,所述待添加数据是压缩后的数据。

结合本发明实施例第一方面的第一种至第三种可能的实现方式中,在本发明实施例第四种可能的实现方式中,在所述按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小的步骤之后,还包括:

根据所述目标调整参数中的目标垃圾回收调整参数对所述闪存设备存储的数据进行垃圾回收处理。

结合本发明实施例第一方面的第一种至第三种可能的实现方式中,在本发明实施例第五种可能的实现方式中,在所述按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小的步骤之后,还包括:

根据所述目标调整参数中的目标磨损平衡调整参数对所述闪存设备存储的数据进行磨损平衡处理。

本发明实施例第二方面提供一种数据处理装置,所述数据处理装置应用于存储系统中的闪存设备中,所述存储系统还包括主机,所述闪存设备的物理存储空间根据多个不同的冗余比配置多个冗余等级,每个冗余等级对应一段用户存储空间容量的区间,每个用户存储空间容量的区间对应不同的调整参数,所述冗余比为冗余空间容量与所述用户存储空间容量的比值,所述冗余空间容量为所述物理存储空间的容量与所述用户存储空间容量的差值,所述数据处理装置包括:

接收单元,用于接收所述主机发送的操作指令,根据所述操作指令对所述闪存设备中存储的数据进行操作,并确定操作后的所述闪存设备中用户存储的数据量;

确定单元,用于根据所述操作后的所述闪存设备中用户存储的数据量以及所述每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级;

所述确定单元还用于根据所述目标冗余等级以及所述每个冗余等级与调整参数之间的对应关系,确定目标调整参数;

调整单元,用于按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小。

在本发明实施例第二方面的第一种可能的实现方式中,所述接收单元具体用于接收所述主机发送的写入指令,根据所述写入指令确定待添加数据,将所述待添加数据添加至所述闪存设备中,并将所述待添加数据添加至所述闪存设备后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

在本发明实施例第二方面的第二种可能的实现方式中,所述接收单元具体用于接收所述主机发送的删除指令,根据所述删除指令确定待删除数据,将所述待删除数据从所述闪存设备中删除,并将所述待删除数据被删除后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

结合本发明实施例第二方面的第一种可能的实现方式中,在本发明实施例第三种可能的实现方式中,所述接收单元还用于对所述待添加数据进行压缩,所述待添加数据是压缩后的数据。

结合本发明实施例第二方面的第一种至第三种可能的实现方式中,在本发明实施例第四种可能的实现方式中,还包括:

处理单元,用于根据所述目标调整参数中的目标垃圾回收调整参数对所述闪存设备存储的数据进行垃圾回收处理。

结合本发明实施例第二方面的第一种至第三种可能的实现方式中,在本发明实施例第五种可能的实现方式中,所述处理单元还用于根据所述目标调整参数中的目标磨损平衡调整参数对所述闪存设备存储的数据进行磨损平衡处理。

本发明实施例第三方面提供一种闪存设备,包括本发明实施例第二方面提供的数据处理装置。

在本发明实施例中,通过接收主机发送的操作指令,根据操作指令对闪存设备中存储的数据进行操作,并确定操作后的闪存设备中用户存储的数据量,然后根据操作后的闪存设备中用户存储的数据量以及每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级,并根据目标冗余等级以及每个冗余等级与调整参数之间的对应关系,确定目标调整参数,最后按照目标调整参数调整闪存设备的冗余空间容量的大小,从而实现根据存储的数据量大小动态调整闪存设备的冗余比,进而提高闪存设备的可靠性和性能稳定性,同时延长闪存设备的使用寿命。

附图说明

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

图1为现有技术中的存储系统的网络架构示意图;

图2为本发明实施例提供的配置冗余等级的示意图;

图3为本发明实施例提供的一种闪存设备的结构示意图;

图4为本发明实施例提供的一种数据处理方法的流程示意图;

图5为本发明实施例提供的另一种数据处理方法的流程示意图;

图6为本发明实施例提供的一种数据处理装置的结构示意图。

具体实施方式

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

为了更好理解本发明实施例公开的一种数据处理方法、装置及闪存设备,下面先对现有技术中的存储系统的网络构架进行描述。请参见图1,为现有技术中的存储系统的网络构架示意图。图1所示的存储系统包括主机和闪存设备,需要说明的是,现有技术中的存储系统中包括多个主机和多个闪存设备,本发明实施例对存储系统中的一个主机和一个闪存设备进行介绍。其中,所述主机可以包括但不限于台式电脑、笔记本电脑、服务器等设备,所述主机通过发送一系列的指令对所述闪存设备进行控制。所述闪存设备根据所述主机发送的指令执行相应的操作,例如,读、写、删除等操作。所述闪存设备的物理存储空间包括冗余空间和用户存储空间,所述物理存储空间即所述闪存设备的总容量空间,所述用户存储空间用于存储用户通过主机输入的数据。本发明实施例提供一种数据处理方法、装置及闪存设备,可以应用于图1所示的存储系统中,具体可以应用于调整闪存设备冗余空间的场景。本发明实施例中的数据处理装置位于闪存设备中。

本发明实施例中的闪存设备可以包括但不限于固态硬盘(solidstatedisk,ssd)、移动硬盘、软盘、u盘、sd卡等具有与非门闪存(nandflash)的存储设备。需要说明的是,本发明实施例中的闪存设备主要针对固态硬盘进行介绍,其他闪存设备也可以应用本发明实施例。

固态硬盘ssd主要由主控制器和nandflash组成。其中,nandflash是一种非易失性随机访问存储介质,其特点是断电后数据不消失,它不同于传统的易失性随机访问存储介质和挥发性闪存设备,如动态随机存取存取器dram和动态随机存取存取器sram等,因此可以作为外部闪存设备使用。nandflash分为单阶储存单元(singlelevelcell,slc)和多阶储存单元(multilevelcell,mlc)两种类型,它们的区别主要是结构不同。目前市场上的nandflash多采用mlc芯片。

nandflash器件本身通常由一个内部寄存器和存储矩阵组成,存储矩阵包括若干块,每个块又包含若干页,每个页包含若干字节。对nandflash的操作最主要是读、写和擦除。由于flash闪存设备是一个非易失性的半导体,对nandflash的读写都是以页为单位的,而擦除是以块为单位的。在进行写入操作之前必须先进行页面擦除操作。一般nandflash的使用顺序是:擦除->编程->多次读取->擦除……

冗余空间(overprovisioning,op)为用户不可操作的容量,大小为ssd的物理空间容量减去用户可用空间容量,op区域一般被用于优化操作,如:磨损平衡,垃圾回收和坏块映射等。

磨损平衡(wearleveling,wl)为确保闪存每个块被写入的次数相等的一种机制。用户逻辑地址空间里的数据更新速度是不同的,有些区域会经常更新,有些则不常更新。显而易见的,那些经常更新的数据所占用的闪存块会被快速的磨损掉,而不常更新的数据占用的闪存块磨损就小得多。采用磨损平衡机制便能很好地解决这个问题,让每个闪存块的编程次数尽可能保持一致。

垃圾回收(garbagecollection,gc)把一个闪存块里的有效页数据复制到一个空白块里,然后把这个块完全擦除。gc是ssd里的一个非常关键的操作,其效率对性能有决定性影响。闪存块里有效页的数量对gc效率有决定性的影响,有效页的数量越少,需要复制的页就越少,花费的时间也越少,从而提高垃圾回收的效率。

写入放大(writeamplification,wa)为nandflash实际写入数据量与主机写入数据量的比值。因为nandflash必须先擦除才能写入,在执行这些操作的时候,移动或覆盖用户数据不止一次。这些重复的操作,不但增加了写入数据量,减少了ssd的使用寿命,而且消耗了nandflash的带宽,并间接影响了ssd的随机写入性能。例如:要写入一个4kb的数据,最坏的情况就是,一个块里已经没有干净空间了,但是有无效的数据可以擦除,所以主控制器就把所有的数据读到缓存,擦除块,缓存里更新整个块的数据,再把新数据写回去,这个操作带来的写入放大就是:实际写4k的数据,造成了整个块(共1024kb)的写入操作,那就是放大了256倍。同时还带来了原本只需要简单一步写入4kb的操作变成:闪存读取(1024kb)→缓存改(4kb)→闪存擦除(1024kb)→闪存写入(1024kb),共四步操作,造成了延迟大大增加,减慢写入的速度。所以写入放大是影响ssd随机写入性能和寿命的关键因素。

本发明实施例中的所述闪存设备的物理存储空间根据多个不同的冗余比配置了多个冗余等级,具体的,请参见图2所示的配置冗余等级的示意图。需要说明的是,图2中的数值只是举例,具体数值可由闪存设备的制造厂商设定,在此不做限定。图2以物理存储空间容量为1024g的闪存设备为例,若某个冗余比为7%,那么960g即为用户存储空间容量,1024g与960g的差值空间容量64g即为该闪存设备的冗余空间。本发明实施例根据多个不同的荣誉比对该闪存设备的物理存储空间1024g进行配置,配置了5个冗余等级,分别为level0、level1、level2、level3、level4和level5,对应的用户存储空间容量的区间分别为(800g,960g]、(720g,800g]、(660g,720g]、(520g,660g]、(400g,520g]、[0g,400g]。本发明实施例还为每个用户存储空间容量配置了对应的调整参数,所述调整参数包括冗余空间调整参数、垃圾回收gc调整参数、磨损平衡wl调整参数、写入放大wa、冷热数据交换频率等参数。由于每个冗余等级对应一段用户存储空间容量的区间,并且每个用户存储空间容量的区间对应不同的调整参数,因此可以推出每个冗余等级与调整参数之间的对应关系。现有技术中,通常闪存设备的制造厂商在制造ssd闪存设备时会根据客户的需求为客户提供一种固定冗余比,一旦冗余比固定,该ssd闪存设备的性能、各项参数以及使用寿命等都难以进一步优化。

基于图1所示的网络架构,请参见图3,为本发明实施例提供了一种闪存设备的结构示意图。如图3所示,该闪存设备包括:至少一个处理器1001,例如cpu,通信接口1003,存储器1004,至少一个通信总线1002。可选的,所述处理器1001为该闪存设备的主控制器。其中,所述通信接口1003用于接收与该闪存设备位于同一存储系统中的主机发送的操作指令。其中,通信总线1002用于实现这些组件之间的连接通信。其中,存储器1005可以是nandflash存储器,用于存储数据。所述存储器1005的物理存储空间根据多个不同的冗余比配置多个冗余等级,每个冗余等级对应一段用户存储空间容量的区间,每个用户存储空间容量的区间对应不同的调整参数,所述冗余比为冗余空间容量与所述用户存储空间容量的比值,所述冗余空间容量为所述物理存储空间的容量与所述用户存储空间容量的差值。

下面将结合附图3-附图5对本发明实施例提供的数据处理方法进行详细介绍。

请参见图4,为本发明实施例提供了一种数据处理方法的流程示意图。结合图3所述的闪存设备,存储器1005中存储一组程序代码,且处理器1001调用存储器1005中存储的程序代码,用于执行所述数据处理方法,可以包括以下步骤s101-步骤s104。

s101,接收主机发送的操作指令,根据所述操作指令对闪存设备中存储的数据进行操作,并确定操作后的所述闪存设备中用户存储的数据量。

可选的,所述处理器1001根据所述通信接口1003接收到的主机发送的操作指令对存储器1005中存储的数据进行操作,并确定操作后的所述存储器1005中用户存储的数据量。所述通信接口1003在接收到所述操作指令时,所述处理器1001首先判断所述操作指令是否已被执行。若判断的结果为否,即所述处理器1001未执行过所述操作指令,则对所述存储器1005存储的数据进行操作。在所述处理器1001执行操作之前,所述存储器1005中可能存储了一部分数据,将这部分数据作为所述闪存设备的初始数据量,执行操作可能改变所述初始数据量,因此所述闪存设备需确定操作后的所述存储器1005中用户存储的数据量,并根据所述操作后的所述存储器1005中用户存储的数据量判断是否需要调整所述闪存设备的冗余等级。若所述处理器1001已执行过所述操作指令,可以理解的是所述处理器1001已根据所述操作指令对所述存储器1005存储的数据进行了操作,此时不对所述闪存设备进行处理。

其中,所述操作指令包括写入指令或删除指令。具体的,当所述操作指令为所述写入指令时,所述处理器1001首先判断所述写入指令是否被写过,若否则确定待添加数据,并将所述待添加数据添加至所述闪存设备中,使得所述初始数据量在原基础上增大了,因此将所述初始数据量与所述待添加数据的数据量之和确定为所述操作后的所述存储器1005中用户存储的数据量;当所述操作指令为所述删除指令时,所述处理器1001首先判断所述删除指令是否被执行过,若否则确定待删除数据,并将所述待删除数据从所述存储器1005中删除,使得所述初始数据量在原基础上减小了,因此将所述初始数据量与所述待删除数据的数据量之差确定为所述操作后的所述存储器1005中用户存储的数据量。

s102,根据所述操作后的所述闪存设备中用户存储的数据量以及每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级。

可选的,由于所述闪存设备根据不同的冗余比配置了多个冗余等级,每个冗余等级对应一段用户存储空间容量的区间,因此所述处理器1001根据所述操作后的所述存储器1005中用户存储的数据量以及每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级。若所述操作后的所述存储器1005中用户存储的数据量为500g,根据图2可知,此时对应的用户存储空间容量的区间为(400g,520g],对应的冗余等级为level4,则将level4确定为目标冗余等级。若所述闪存设备未被使用过或被格式化,则默认将所述冗余等级设置为level5。

s103,根据所述目标冗余等级以及所述每个冗余等级与调整参数之间的对应关系,确定目标调整参数。

可选的,由于所述闪存设备根据不同的冗余比配置了多个冗余等级,每个冗余等级对应一段用户存储空间容量的区间,每个用户存储空间容量的区间对应不同的调整参数,因此可以推出所述每个冗余等级与调整参数之间的对应关系,即所述闪存设备为所述每个冗余等级配置不同的调整参数。所述处理器1001根据所述目标冗余等级以及所述每个冗余等级与调整参数之间的对应关系,确定目标调整参数。所述目标调整参数可能与在接收到所述操作指令之前的调整参数相同,也可能不相同,由所述操作后的所述存储器1005中用户存储的数据量确定,若所述操作后的所述存储器1005中用户存储的数据量与所述初始数据量属于同一个用户存储空间容量的区间,则所述目标调整参数与所述初始数据量对应的调整参数相同,否则不相同。所述处理器1001在每次所述存储器1005中用户存储的数据量发生改变时,都需重新确定目标冗余等级和目标调整参数。现有技术中由于冗余比固定,冗余空间的容量固定,因此不管所述存储器1005中用户存储的数据量如何变化,所述处理器1001都是以固定的调整参数对用户存储的数据进行调整,这样便在一定程度上影响所述闪存设备的可靠性和性能稳定性。

s104,按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小。

可选的,所述处理器1001按照所述目标调整参数调整所述存储器1005的冗余空间容量的大小。现有技术中,每个闪存设备的冗余空间容量在出厂时便以确定,使得所述闪存设备的处理性能有一定的局限性。本发明实施例中的所述存储器1005的冗余空间并不是固定不变,而是随着所述存储器1005中用户存储的数据量的变化而变化,并根据调整参数对所述存储器1005的冗余空间容量进行相应的调整,以使所述闪存设备处于最佳运行状态。例如,所述目标调整参数为level4对应的调整参数,根据所述目标调整参见将此时对应的冗余空间为调整为1024g-520g=504g,相比现有技术中固定冗余比为7%的闪存设备对应的冗余空间64g而言,增大了冗余空间,有利于减小wa,因此,与现有技术相比,本发明实施例中的闪存设备的可靠性更高、性能稳定性更强。

其中,所述目标调整参数包括目标垃圾回收调整参数和目标磨损平衡调整参数。在调整所述存储器1005的冗余空间容量的大小之后,所述处理器1001根据所述目标垃圾回收调整参数对所述闪存设备存储的数据进行垃圾回收处理,根据所述目标磨损平衡调整参数对所述闪存设备存储的数据进行磨损平衡调节处理。

需要说明的是,现有技术中的冗余空间是固定的,用户不可访问的,但是本发明实施例的冗余空间是可以动态变化的,针对某个冗余等级下的冗余空间是固定的,但是当冗余等级由一个等级跨越到另一个等级时,冗余空间也将随之变化。

在本发明实施例中,通过接收主机发送的操作指令,根据操作指令对闪存设备中存储的数据进行操作,并确定操作后的闪存设备中用户存储的数据量,然后根据操作后的闪存设备中用户存储的数据量以及每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级,并根据目标冗余等级以及每个冗余等级与调整参数之间的对应关系,确定目标调整参数,最后按照目标调整参数调整闪存设备的冗余空间容量的大小,从而实现根据存储的数据量大小动态调整闪存设备的冗余比,进而提高闪存设备的可靠性和性能稳定性,同时延长闪存设备的使用寿命。

请参见图5,为本发明实施例提供了另一种数据处理方法的流程示意图。结合图3所述的闪存设备,存储器1005中存储一组程序代码,且处理器1001调用存储器1005中存储的程序代码,用于执行所述数据处理方法,可以包括以下步骤s201-步骤s210。

s201,接收主机发送的写入指令,根据所述写入指令确定待添加数据。

可选的,所述通信接口1003接收主机发送的写入指令,并通过所述通信总线1002将所述写入指令传输至所述处理器1001,所述处理器1001根据所述写入确定待添加数据。所述处理器1001在接收到所述写入指令时,判断所述写入指令是否已被执行。所述主机与闪存设备位于存储系统中,所述主机控制所述闪存设备运行的主机,可以包括但不限于台式电脑、笔记本电脑、服务器等设备。由于所述处理器1001接收到的所述写入指令可能已被执行过,因此所述处理器1001需判断所述写入指令是否已被执行。若所述写入指令未被执行过,可以理解的是所述处理器1001并未根据所述写入指令向所述存储器1005中添加数据。若所述写入指令已被执行,可以理解的是所述处理器1001已经执行了根据所述写入指令向所述存储器1005添加数据的操作,若再次接收到所述写入指令,并不会改变所述存储器1005存储的数据量大小,因此此时不对所述闪存设备进行处理。确定所述待添加数据包括确定所述待添加数据的内容和数据量大小。

s202,对所述待添加数据进行压缩。

可选的,所述处理器1001对所述待添加数据进行压缩。由于有些ssd具有压缩功能,使得用户真实添加至ssd的数据量为对添加数据压缩后的数据量,因此所述待添加数据为压缩后的所述待添加数据。

需要说明的是,本发明实施例中的步骤s202在ssd具有压缩功能时执行,若ssd不具有压缩功能,则不执行步骤s202,直接执行步骤s203。

s203,将所述待添加数据添加至闪存设备中,并将所述待添加数据添加至所述闪存设备后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

可选的,所述处理器1001将所述待添加数据添加至所述存储器1005中,从而在所述存储器1005之前用户存储的数据量的基础上增加了新的数据量,将所述待添加数据添加至所述存储器1005后的用户存储的数据量确定为操作后的所述存储器1005中用户存储的数据量。

s204,接收主机发送的删除指令,根据所述删除指令确定待删除数据。

可选的,所述处理器1001接收主机发送的删除指令,并通过所述通信总线1002将所述删除指令传输至所述处理器1001,所述处理器1001根据所述删除指令确定待删除数据所述处理器1001在接收到所述删除指令时,判断所述删除指令是否已被执行。其中,所述删除指令为修剪(trim)指令,本发明实施例实施的前提条件是所述闪存设备能够支持所述trim指令,所述trim指令用于操作系统在删除某个文件或者格式化后,告诉ssd主控制器这个数据块不再需要了。当某些文件被删除或者格式化了整个分区时,操作系统把所述trim指令和在操作中更新的逻辑地址一起发给ssd主控制器(其中包含了无效数据地址),这样在之后的垃圾回收处理中,无效数据就能被清空了,用户存储空间容量和冗余空间容量相应的变大了,从而减少了写入放大wa,同时也提升了性能。本发明实施例还要求所述主机尽可能多下发所述trim指令,以使所述闪存设备能够反向调整空间冗余等级。由于所述处理器1001接收到指令可能已被执行过,因此所述处理器1001需判断所述删除指令是否已被执行。若所述删除指令未被执行过,可以理解的是所述处理器1001并未根据所述删除指令向所述闪存设备中删除数据。若所述删除指令已被执行,可以理解的是所述处理器1001已经执行了根据所述删除指令从所述存储器1005删除数据的操作,若再次接收到所述删除指令,并不会改变所述存储器1005存储的数据量大小,因此此时不对所述闪存设备进行处理。确定所述待删除数据包括确定所述待删除数据的内容和数据量大小,可以理解的是确定需要被无效的数据或者被擦除的数据块。

s205,将所述待删除数据从闪存设备中删除,并将所述待删除数据被删除后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

可选的,所述处理器1001将所述待删除数据从所述存储器1005中删除,从而在所述存储器1005之前用户存储的数据量的基础上减少了数据量,所述处理器1001将所述待删除数据被删除后的用户存储的数据量确定为操作后的所述存储器1005中用户存储的数据量。

s206,根据所述操作后的所述闪存设备中用户存储的数据量以及每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级。

s207,根据所述目标冗余等级以及所述每个冗余等级与调整参数之间的对应关系,确定目标调整参数。

s208,按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小。

本发明实施例中的步骤s206-步骤s208的具体实现过程可参见图3所示实施例中的步骤s102-步骤s104的具体描述,在此不再赘述。

s209,根据所述目标调整参数中的目标垃圾回收调整参数对所述闪存设备存储的数据进行垃圾回收处理。

可选的,所述处理器1001根据所述目标调整参数中的目标垃圾回收调整参数对所述闪存设备存储的数据进行垃圾回收处理。垃圾回收,由ssd的主控制器把那些包含“无效”数据的块里的所有“有效”数据合并起来放到新的“空白块”里,并删除“无效”数据块来增加备用的“空白块”数量,可见,垃圾回收一方面减少了无效数据的数据量,另一方面增加了空白块的数量,从而为用户提供了更多的可用空白块。

由于垃圾回收会对ssd产生大量负载,因此垃圾回收可分闲置垃圾回收及被动垃圾回收。闲置垃圾回收就是让ssd主控在系统闲置时提前进行垃圾回收操作,产生一定数量的空白块,让垃圾回收操作不至于明显影响用户使用感受,但缺点是会因此造成额外的写入放大,因为刚垃圾回收的有效数据可能会因为用户更新而变无效。被动垃圾回收则是所有ssd一定具备的,ssd主控性能对被动垃圾回收效率有决定性影响,因为此时ssd需要同时进行垃圾回收及用户要求的数据操作,主控性能不足就会让用户发觉ssd的性能下降。被动垃圾回收即根据关联主机发送的trim指令执行垃圾回收操作,触发ssd产生更多的无效页数据,减轻垃圾回收的压力,从而减少用户发觉ssd性能下降的机会。

垃圾回收调整参数用于确定什么时候对所述闪存设备进行垃圾回收处理操作,即启动垃圾回收的参数。现有技术中,在固定冗余比的情况下,不管ssd中存储的数据量为多少,该ssd都以固定的垃圾回收参数对ssd进行垃圾回收处理,影响ssd的性能和可靠性。由于本发明实施例为不同空间冗余等级分别配置了最佳的调整参数,因此本发明实施例能够根据存储数据量的大小进行适当的垃圾回收处理,以优化ssd的性能。

s210,根据所述目标调整参数中的目标磨损平衡调整参数对所述闪存设备存储的数据进行磨损平衡处理。

可选的,所述处理器1001根据所述目标调整参数中的目标磨损平衡调整参数对所述闪存设备存储的数据进行磨损平衡处理,确保每个块被写入的次数相等。磨损平衡算法有动态及静态两种,简单来说动态磨损平衡是每次都挑最年轻的闪存块使用,老闪存块尽量不用。静态磨损平衡就是把长期没有修改的老数据从年轻的闪存块里搬出来,重新找个最老的闪存块存放,这样年轻的闪存块就能再次被经常使用。不管是动态磨损平衡还是静态磨损平衡都需要一个启动粒度,磨损平衡调整参数就是用来确定什么时候启动磨损平衡处理操作的参数。各个空间冗余等级下的磨损调整参数各不相同,冗余比越大的冗余等级下的启动粒度越高。

在本发明实施例中,通过接收主机发送的操作指令,根据操作指令对闪存设备中存储的数据进行操作,并确定操作后的闪存设备中用户存储的数据量,然后根据操作后的闪存设备中用户存储的数据量以及每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级,并根据目标冗余等级以及每个冗余等级与调整参数之间的对应关系,确定目标调整参数,最后按照目标调整参数调整闪存设备的冗余空间容量的大小并根据目标调整参数对闪存设备进行相应的调节,从而实现根据存储的数据量大小动态调整闪存设备的冗余比,进而提高闪存设备的可靠性和性能稳定性,延长闪存设备的使用寿命,同时提高闪存设备的主动性。

下面将结合附图6对本发明实施例提供的数据处理装置进行详细介绍。需要说明的是,附图6所示的数据处理装置,用于执行本发明图4和图5所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图4和图5所示的实施例。

本发明实施例中的数据处理装置应用于图1所示存储系统中的闪存设备中,所述闪存设备的物理存储空间根据多个不同的冗余比配置多个冗余等级,每个冗余等级对应一段用户存储空间容量的区间,每个用户存储空间容量的区间对应不同的调整参数,所述冗余比为冗余空间容量与所述用户存储空间容量的比值,所述冗余空间容量为所述物理存储空间的容量与所述用户存储空间容量的差值。

请参见图6,为本发明提供的一种数据处理装置的结构示意图,该数据处理装置10可包括:接收单元101、确定单元102和调整单元103。

接收单元101,用于接收所述主机发送的操作指令,根据所述操作指令对所述闪存设备中存储的数据进行操作,并确定操作后的所述闪存设备中用户存储的数据量。

确定单元102,用于根据所述操作后的所述闪存设备中用户存储的数据量以及所述每个冗余等级对应的用户存储空间容量的区间,确定目标冗余等级。

所述确定单元102还用于根据所述目标冗余等级以及所述每个冗余等级与调整参数之间的对应关系,确定目标调整参数。

调整单元103,用于按照所述目标调整参数调整所述闪存设备的冗余空间容量的大小。

本发明实施例和图4所示方法实施例基于同一构思,其带来的技术效果也相同,具体原理请参照图4所示实施例的描述,此处不再赘述。

可选的,所述接收单元101具体用于接收所述主机发送的写入指令,根据所述写入指令确定待添加数据,将所述待添加数据添加至所述闪存设备中,并将所述待添加数据添加至所述闪存设备后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

所述接收单元101具体用于接收所述主机发送的删除指令,根据所述删除指令确定待删除数据,将所述待删除数据从所述闪存设备中删除,并将所述待删除数据被删除后的用户存储的数据量确定为操作后的所述闪存设备中用户存储的数据量。

所述接收单元101还用于对所述待添加数据进行压缩,所述待添加数据是压缩后的数据。

所述数据处理装置10还包括:

处理单元,用于根据所述目标调整参数中的目标垃圾回收调整参数对所述闪存设备存储的数据进行垃圾回收处理。

所述处理单元还用于根据所述目标调整参数中的目标磨损平衡调整参数对所述闪存设备存储的数据进行磨损平衡处理。

本发明实施例和图5所示方法实施例基于同一构思,其带来的技术效果也相同,具体原理请参照图5所示实施例的描述,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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