一种数据处理方法及电子设备
技术领域
本发明涉及电子信息技术领域中的存储技术,具体涉及一种数据处理方法及电子设备。
背景技术
目前,固态硬盘(SSD)在使用过程中不可避免的出现坏块,坏块分为:出厂坏块和使用过程中出现的坏块。SSD通过坏块表对坏块进行管理,所述出厂坏块通过坏块表中的标记很容易进行识别;而使用过程中出现的坏块则需要依靠闪存转换层(FTL)中的坏块管理机制进行管理。例如:
当SSD在初始化或进行读、写、擦的使用过程中,操作某一物理块(存储单元)失败时,直接对该块进行标记操作,然后继续寻找下一个可操作的有效块并执行有效页的相关复制操作。这样的坏块管理方法只能在SSD块的读、写、擦操作失败时进行处理,阻塞了正常的数据处理流程。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种数据处理方法及电子设备,以至少解决现有技术存在的上述问题。
本发明实施例提供了一种数据处理方法,应用于电子设备,所述电子设备至少包括存储器,所述存储器中包括至少一个存储单元;所述方法包括:
获取到预设时间段内针对所述存储器中每个存储单元的操作信息;
基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;
基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;
所述标记,用于标识所述存储单元的属性信息。
一个实施例中,该方法还包括:
获取待处理数据的特征;
基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作。
其中,所述基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作,包括:
确定与所述待处理数据的特征对应的标记;
基于所述已确定的标记,选择与所述标记对应的存储单元进行数据写入操作。
其中,所述获取待处理数据的特征,包括:
对所述待处理数据进行分析,确定所述待处理数据的特征;
所述待处理数据的特征至少包括:处理类型特征和处理频率特征。
其中,所述基于所述已确定的标记,选择与所述标记对应的存储单元进行数据写入操作,包括:
选取与所述已确定标记对应的存储单元、或高于所述已确定标记对应的存储单元进行所述数据写入操作。
本发明实施例还提供了一种电子设备,所述电子设备所述电子设备至少包括存储器,所述存储器中包括至少一个存储单元,所述电子设备包括:
第一获取模块,用于获取到预设时间段内针对所述存储器中每个存储单元的操作信息;基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;
标记模块,用于基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;
所述标记,用于标识所述存储单元的属性信息。
一个实施例中,所述电子设备还包括:
第二获取模块,用于获取待处理数据的特征;
写入处理模块,用于基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作。
上述方案中,所述写入处理模块,用于确定与所述待处理数据的特征对应的标记;基于所述已确定的标记,选择与所述标记对应的存储单元进行数据写入操作。
上述方案中,所述第二获取模块,用于对所述待处理数据进行分析,确定所述待处理数据的特征;
所述待处理数据的特征至少包括:处理类型特征和处理频率特征。
上述方案中,所述写入处理模块,用于选取与所述已确定标记对应的存储单元、或高于所述已确定标记对应的存储单元进行所述数据写入操作。
本发明实施例还提供了一种电子设备,所述电子设备包括:
包括至少一个存储单元的存储器,用于存储每个存储单元的操作信息;
控制器,用于获取到预设时间段内所述存储器中存储的每个存储单元的操作信息,并基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;其中,
所述标记,用于标识所述每个存储单元的属性信息。
一个实施例中,所述控制器,还用于获取待处理数据的特征,并基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作。
本发明实施例提供的数据处理方法及电子设备,所述电子设备获取到预设时间段内针对所述存储器中每个存储单元的操作信息,并基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;所述标记,用于标识所述存储单元的属性信息。可见,本发明实施例可对存储器中的每个存储单元进行标记,这样,在数据处理过程中可依据与存储单元对应的标记有针对性地进行相应存储单元的数据处理操作,避免在现有数据处理过程中因遇到坏块而导致的阻塞正常数据处理流程的问题,因此,本发明实施例可相应提高数据处理效率。
附图说明
图1为本发明实施例所述数据处理方法流程示意图一;
图2为本发明实施例所述数据处理方法流程示意图二;
图3为本发明实施例所述数据处理方法流程示意图三;
图4为本发明实施例所述电子设备的结构示意图一;
图5为本发明实施例所述电子设备的结构示意图二;
图6为本发明实施例所述电子设备的结构示意图三。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
实施例一
本发明实施例提供了一种数据处理方法,应用于第一电子设备,所述电子设备至少包括存储器,所述存储器中包括至少一个存储单元;如图1所示,包括:
步骤101:获取到预设时间段内针对所述存储器中每个存储单元的操作信息;
步骤102:基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;
步骤103:基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;所述标记,用于标识所述存储单元的属性信息。
本发明实施例中,所述存储器可以为固态硬盘和机械硬盘,其中固态硬盘采用的存储颗粒可以为单层单元(SLC,SingleLayerCell单层单元)、(MLC,Multi-LevelCell多层单元)或3BIT单元(TLC,Trinary-LevelCell);机械硬盘可以采用单磁碟、双磁碟或多磁碟的存储结构。
其中,所述每个存储单元的操作信息可包括以下信息至少之一:存储单元的错误检查和纠正(ECC,ErrorCorrectingCode)信息;存储单元支持的擦除次数;存储单元的读取和擦除纠错的历史信息。
存储单元可以是存储介质的物理划分,也可是存储介质的逻辑划分;存储单元可以采用存储设备中的最小存储单元,以SSD为例,存储单元可以采用page(4KB),当然也可以采用page容量的整数倍;以机械硬盘为例,存储单元可以为一个扇区(sector)的容量,一般为4KB,当然也可以采用扇区容量的整数倍。
这里,由于针对每个存储单元的操作信息是变化的,因此,需要获取一段时间内的操作信息,例如:可设置每隔1分钟获取一次针对每个存储单元的操作信息。
本发明实施例中,所述存储器中每个存储单元当前对应的参考值,可基于所述获取的操作信息进行计算得到,例如:可以设置损失函数,所述损失函数的参数为上述获取的操作信息,作为一个应用场景,所述损失函数为cost,可表示如下:
其中,所述t为预设时间段的值,所述GlobalWrite表示当前读写操作的存储器(bank)中的所有物理块被写入的次数;所述BlockWrite表示当前物理块被写入的次数;所述GlobalValidPage表示当前读写操作的存储器中总的有效页数;所述BlockValidPage表示当前物理块的有效页数;所述Blockerase表示当前物理块被擦除的次数。
本发明实施例中,所述基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元,包括:
确定所述参考值小于第一预设门限值时,将所述存储单元标记为第一属性,用于表征所述存储单元支持第一预设次数(正常使用频率)的数据读取、擦除或写入操作;
确定所述参考值大于第一预设门限值且小于等于第二预设门限值时,将所述存储单元标记为第二属性,用于表征所述存储单元支持第二预设次数的数据擦除或写入操作,所述第二预设次数小于所述第一预设次数;
确定所述参考值大于第二预设门限值且小于等于第三预设门限值时,将所述存储单元标记为第三属性,用于表征所述存储单元只支持数据读取操作;
确定所述参考值大于第三预设门限值时,将所述存储单元标记为第四属性,用于表征所述存储单元已损坏。
这里,所述第一预设门限值小于第二预设门限值,所述第二预设门限值小于所述第三预设门限值。当然,基于实际的应用场景的不同,这里可设置更多个预设门限值,相应的,可以将所述存储器中的存储单元标记为更多个属性。
作为一个应用场景,基于上述损失函数,所述第一、二、三预设门限值可分别设置为T1,T2,T3,相应的,所述cost≤T1时,将所述存储单元标记为所述第一属性;所述T1<cost≤T2时,将所述存储单元标记为所述第二属性;所述T2<cost≤T3时,将所述存储单元标记为所述第三属性;所述cost>T3时,将所述存储单元标记为所述第四属性。
本发明实施例中,所述存储单元的标记可以写入到每个存储单元的存储空间中,例如使用特定格式编码的符号或数字(如二进制数字的组合)来表征不同的标记,将每个存储单元的标记对应写入到存储单元的起始存储空间中(当然,可以携带存储单元的特定存储空间如最后几位的存储空间中),标记所需的存储空间使标记的种类而定;存储单元的标记也可以写入到存储设备的特定的存储单元中,即预先约定用于存储各存储单元的标记的存储单元,并将各存储单元的标记统一写入,这有利于快速查找存储单元的标记,作为优选方案,存储设备中各存储单元的标记统一写入到存储单元中支持正常使用频率的存储单元中,即:所述存储单元支持的擦写次数高于擦写次数阈值,从而避免存储单元的损坏导致存储设备中各存储单元的标记丢失。
由于标记标识的是存储单元的不同的属性信息,因此可以采用定量或定性的标记来描述存储单元的属性信息;以采用定量的标记为例,存储单元的属性可以采用从10至100等差序列中的元素来表示,其中100表示存储单元的属性最优,10标识存储单元的属性最差;
以采用定性的标记为例,可以采用健康和不健康来描述一个存储单元的状态信息;当然,存储单元的属性信息也可以采用多个定性标记来描述,如使用正常、危险、高危和损坏来描述,其中正常表示存储单元支持正常频率的读取、写入和擦除操作;危险表示存储单元支持的擦写次数低于正常值,不能支持正常频率的擦除和写入,只能支持频率较低的擦除和写入;高危表示存储单元支持的擦写次数接近临界值(如零),不能支持数据的擦除和写入,只能支持数据的读取;损坏表示存储单元已经不能使用。
在实际读、写、擦等数据处理过程失败时,本发明实施例仅将对应的存储单元标记为“损坏”,并将其放入坏块队列,等待系统空闲时集中进行数据处理,因此可降低坏块产生的概率,减少了数据处理的阻塞。
可见,本发明实施例可对存储器中的每个存储单元进行标记,这样,在数据处理过程中可依据与存储单元对应的标记有针对性地进行相应存储单元的数据处理操作,避免在现有数据处理过程中因遇到坏块而导致的阻塞正常数据处理流程的问题,因此,本发明实施例可相应提高数据处理效率。
实施例二
本发明实施例提供了一种数据处理方法,应用于第一电子设备,所述电子设备至少包括存储器,所述存储器中包括至少一个存储单元;如图2所示,包括:
步骤201:获取到预设时间段内针对所述存储器中每个存储单元的操作信息;
步骤202:基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;
步骤203:基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;所述标记,用于标识所述存储单元的属性信息;
步骤204:获取待处理数据的特征;
步骤205:基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作。
其中,所述每个存储单元的操作信息可包括以下信息至少之一:存储单元的错误检查和纠正(ECC,ErrorCorrectingCode)信息;存储单元支持的擦除次数;存储单元的读取和擦除纠错的历史信息。
这里,由于针对每个存储单元的操作信息是变化的,因此,需要获取一段时间内的操作信息,例如:可设置每隔1分钟获取一次针对每个存储单元的操作信息。
本发明实施例中,所述存储器中每个存储单元当前对应的参考值,可基于所述获取的操作信息进行计算得到,例如:可以设置损失函数,所述损失函数的参数为上述获取的操作信息,作为一个应用场景,所述损失函数为cost,可表示如下:
其中,所述t为预设时间段的值,所述GlobalWrite表示当前读写操作的存储器(bank)中的所有物理块被写入的次数;所述BlockWrite表示当前物理块被写入的次数;所述GlobalValidPage表示当前读写操作的存储器中总的有效页数;所述BlockValidPage表示当前物理块的有效页数;所述Blockerase表示当前物理块被擦除的次数。
本发明实施例中,所述基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元,包括:
确定所述参考值小于第一预设门限值时,将所述存储单元标记为第一属性,用于表征所述存储单元支持第一预设次数(正常使用频率)的数据读取、擦除或写入操作;
确定所述参考值大于第一预设门限值且小于等于第二预设门限值时,将所述存储单元标记为第二属性,用于表征所述存储单元支持第二预设次数的数据擦除或写入操作,所述第二预设次数小于所述第一预设次数;
确定所述参考值大于第二预设门限值且小于等于第三预设门限值时,将所述存储单元标记为第三属性,用于表征所述存储单元只支持数据读取操作;
确定所述参考值大于第三预设门限值时,将所述存储单元标记为第四属性,用于表征所述存储单元已损坏。
这里,所述第一预设门限值小于第二预设门限值,所述第二预设门限值小于所述第三预设门限值。当然,基于实际的应用场景的不同,这里可设置更多个预设门限值,相应的,可以将所述存储器中的存储单元标记为更多个属性。
作为一个应用场景,基于上述损失函数,所述第一、二、三预设门限值可分别设置为T1,T2,T3,相应的,所述cost≤T1时,将所述存储单元标记为所述第一属性;所述T1<cost≤T2时,将所述存储单元标记为所述第二属性;所述T2<cost≤T3时,将所述存储单元标记为所述第三属性;所述cost>T3时,将所述存储单元标记为所述第四属性。
本发明实施例中,所述存储单元的标记可以写入到每个存储单元的存储空间中,例如使用特定格式编码的符号或数字(如二进制数字的组合)来表征不同的标记,将每个存储单元的标记对应写入到存储单元的起始存储空间中(当然,可以携带存储单元的特定存储空间如最后几位的存储空间中),标记所需的存储空间使标记的种类而定;存储单元的标记也可以写入到存储设备的特定的存储单元中,即预先约定用于存储各存储单元的标记的存储单元,并将各存储单元的标记统一写入,这有利于快速查找存储单元的标记,作为优选方案,存储设备中各存储单元的标记统一写入到存储单元中支持正常使用频率的存储单元中,即:所述存储单元支持的擦写次数高于擦写次数阈值,从而避免存储单元的损坏导致存储设备中各存储单元的标记丢失。
由于标记标识的是存储单元的不同的属性信息,因此可以采用定量或定性的标记来描述存储单元的属性信息;以采用定量的标记为例,存储单元的属性可以采用从10至100等差序列中的元素来表示,其中100表示存储单元的属性最优,10标识存储单元的属性最差;
以采用定性的标记为例,可以采用健康和不健康来描述一个存储单元的状态信息;当然,存储单元的属性信息也可以采用多个定性标记来描述,如使用正常、危险、高危和损坏来描述,其中正常表示存储单元支持正常频率的读取、写入和擦除操作;危险表示存储单元支持的擦写次数低于正常值,不能支持正常频率的擦除和写入,只能支持频率较低的擦除和写入;高危表示存储单元支持的擦写次数接近临界值(如零),不能支持数据的擦除和写入,只能支持数据的读取;损坏表示存储单元已经不能使用。
本发明实施例中,所述获取待处理数据的特征,包括:对所述待处理数据进行分析,确定所述待处理数据的特征。
作为一个实施例,存储设备可基于接收到的外部的数据处理请求后,对待处理数据进行分析;所述数据处理请求可对需要处理的数据,也即待处理数据、以及处理的类型(包括读取、删除和写入)进行指示。其中,所述待处理数据的特征可包括:待处理数据的处理频率(表征待处理数据的冷热程度)以及待处理数据的类型,也就是待处理数据是需要读取的数据、需要删除的数据还是需要写入的数据。其中,可通过对存储单元中存储的数据响应的历史处理请求进行分析,可以确定需要写入的待处理数据的操作频率,如一个或多个存储单元中存储的某一数据块(可以对应一个文件)被读取的频率。
本发明实施例中,所述基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作,可包括:
确定与所述待处理数据的特征对应的标记;基于所述已确定的标记,选择与所述标记对应的存储单元进行数据写入操作。
作为一个实施例,当待处理数据为待读取的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的量化的标记(如1-10)来对应,其中,10表示存储单元的状态最优,同时表示关联的待处理数据的处理频率最高(即为频繁读取的热数据);1表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔读取的冷数据)。
同样,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的量化的标记(如1-10)来对应,其中,10表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),1表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
作为一个实施例,当待处理数据为待读取的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁读取的热数据);危险表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔读取的冷数据);
同样,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),高危表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
这里,与上文描述相对应,当待处理数据为待读取的数据时,待处理数据的特征与定性标记10对应时,可以选取存储待处理数据的且标记为10的存储单元响应数据处理请求;待处理数据为待读取的数据时,且待读取的数据的特征与定性标记1对应时,可以选取存储有待处理数据的且标记为1(或者大于1)的存储单元响应数据处理请求;
当待处理数据为待写入的数据,且待处理数据的特征与定性的标记正常对应时,可以选取标记为正常的空闲存储单元响应数据处理请求。
可见,本实施例中通过将存储单元的标记与待处理数据的特征对应,实际上将存储单元对数据处理请求的支持能力与不同的待处理数据对应,这样利用对应关系能够准确确定支持对待处理数据的数据处理请求进行响应的存储单元,可避免对属性较差的存储单元的使用寿命加速用尽,相应解决了现有数据处理过程中因遇到坏块而导致的阻塞正常数据处理流程的问题。
实施例三
本发明实施例提供了一种数据处理方法,应用于第一电子设备,所述电子设备至少包括存储器,所述存储器中包括至少一个存储单元;如图3所示,包括:
步骤301:获取到预设时间段内针对所述存储器中每个存储单元的操作信息;
步骤302:基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;
步骤303:基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;所述标记,用于标识所述存储单元的属性信息;
步骤304:获取待处理数据的特征,确定与所述待处理数据的特征对应的标记;
步骤305:选取与所述已确定标记对应的存储单元、或高于所述已确定标记对应的存储单元进行所述数据写入操作。
本发明实施例中,所述每个存储单元的操作信息可包括以下信息至少之一:存储单元的错误检查和纠正(ECC,ErrorCorrectingCode)信息;存储单元支持的擦除次数;存储单元的读取和擦除纠错的历史信息。
这里,由于针对每个存储单元的操作信息是变化的,因此,需要获取一段时间内的操作信息,例如:可设置每隔1分钟获取一次针对每个存储单元的操作信息。
本发明实施例中,所述存储器中每个存储单元当前对应的参考值,可基于所述获取的操作信息进行计算得到,例如:可以设置损失函数,所述损失函数的参数为上述获取的操作信息,作为一个应用场景,所述损失函数为cost,可表示如下:
其中,所述t为预设时间段的值,所述GlobalWrite表示当前读写操作的存储器(bank)中的所有物理块被写入的次数;所述BlockWrite表示当前物理块被写入的次数;所述GlobalValidPage表示当前读写操作的存储器中总的有效页数;所述BlockValidPage表示当前物理块的有效页数;所述Blockerase表示当前物理块被擦除的次数。
本发明实施例中,所述基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元,包括:
确定所述参考值小于第一预设门限值时,将所述存储单元标记为第一属性,用于表征所述存储单元支持第一预设次数(正常使用频率)的数据读取、擦除或写入操作;
确定所述参考值大于第一预设门限值且小于等于第二预设门限值时,将所述存储单元标记为第二属性,用于表征所述存储单元支持第二预设次数的数据擦除或写入操作,所述第二预设次数小于所述第一预设次数;
确定所述参考值大于第二预设门限值且小于等于第三预设门限值时,将所述存储单元标记为第三属性,用于表征所述存储单元只支持数据读取操作;
确定所述参考值大于第三预设门限值时,将所述存储单元标记为第四属性,用于表征所述存储单元已损坏。
这里,所述第一预设门限值小于第二预设门限值,所述第二预设门限值小于所述第三预设门限值。当然,基于实际的应用场景的不同,这里可设置更多个预设门限值,相应的,可以将所述存储器中的存储单元标记为更多个属性。
作为一个应用场景,基于上述损失函数,所述第一、二、三预设门限值可分别设置为T1,T2,T3,相应的,所述cost≤T1时,将所述存储单元标记为所述第一属性;所述T1<cost≤T2时,将所述存储单元标记为所述第二属性;所述T2<cost≤T3时,将所述存储单元标记为所述第三属性;所述cost>T3时,将所述存储单元标记为所述第四属性。
本发明实施例中,所述存储单元的标记可以写入到每个存储单元的存储空间中,例如使用特定格式编码的符号或数字(如二进制数字的组合)来表征不同的标记,将每个存储单元的标记对应写入到存储单元的起始存储空间中(当然,可以携带存储单元的特定存储空间如最后几位的存储空间中),标记所需的存储空间使标记的种类而定;存储单元的标记也可以写入到存储设备的特定的存储单元中,即预先约定用于存储各存储单元的标记的存储单元,并将各存储单元的标记统一写入,这有利于快速查找存储单元的标记,作为优选方案,存储设备中各存储单元的标记统一写入到存储单元中支持正常使用频率的存储单元中,即:所述存储单元支持的擦写次数高于擦写次数阈值,从而避免存储单元的损坏导致存储设备中各存储单元的标记丢失。
由于标记标识的是存储单元的不同的属性信息,因此可以采用定量或定性的标记来描述存储单元的属性信息;以采用定量的标记为例,存储单元的属性可以采用从10至100等差序列中的元素来表示,其中100表示存储单元的属性最优,10标识存储单元的属性最差;
以采用定性的标记为例,可以采用健康和不健康来描述一个存储单元的状态信息;当然,存储单元的属性信息也可以采用多个定性标记来描述,如使用正常、危险、高危和损坏来描述,其中正常表示存储单元支持正常频率的读取、写入和擦除操作;危险表示存储单元支持的擦写次数低于正常值,不能支持正常频率的擦除和写入,只能支持频率较低的擦除和写入;高危表示存储单元支持的擦写次数接近临界值(如零),不能支持数据的擦除和写入,只能支持数据的读取;损坏表示存储单元已经不能使用。
本发明实施例中,所述获取待处理数据的特征,包括:对所述待处理数据进行分析,确定所述待处理数据的特征。
作为一个实施例,存储设备可基于接收到的外部的数据处理请求后,对待处理数据进行分析;所述数据处理请求可对需要处理的数据,也即待处理数据、以及处理的类型(包括读取、删除和写入)进行指示。其中,所述待处理数据的特征可包括:待处理数据的处理频率(表征待处理数据的冷热程度)以及待处理数据的类型,也就是待处理数据是需要读取的数据、需要删除的数据还是需要写入的数据。其中,可通过对存储单元中存储的数据响应的历史处理请求进行分析,可以确定需要写入的待处理数据的操作频率,如一个或多个存储单元中存储的某一数据块(可以对应一个文件)被读取的频率。
本发明实施例中,所述选取与所述已确定标记对应的存储单元、或高于所述已确定标记对应的存储单元进行所述数据写入操作,可包括:
确定与所述待处理数据的特征对应的标记;基于所述已确定的标记,选择与所述标记对应的存储单元进行数据写入操作。
作为一个实施例,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的量化的标记(如1-10)来对应,其中,10表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),1表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
作为一个实施例,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),高危表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
这里,与上文描述相对应,当待处理数据为待写入的数据,且待处理数据的特征与定性标记中的危险(低于最高等级的标记)对应时,可以选取标记为危险的空闲的存储单元进行所述数据写入操作;当然,这里还可以选择标记等级更高的、标记为正常的空闲的存储单元进行所述数据写入操作。如果待处理数据为待写入的数据,且待处理数据的特征与定性标记中的正常(等级最高的标记)对应时,只能选取标记为正常的空闲的存储单元进行所述数据写入操作。
对于读取操作同理,此处不再详述。
可见,本发明实施例选取与已确定标记对应的存储单元进行所述数据写入等操作,而且高于已确定标记对应的存储单元也支持所述数据写入等操作,因此可以选择标记等级较高的存储单元进行数据处理操作,这样,可以避免擦写次数接近临界值的存储单元加速损坏,实现了磨损均衡,保证了对数据处理请求的响应性能。
实施例四
本发明实施例还提供了一种电子设备,所述电子设备包括存储器,所述存储器中包括至少一个存储单元,所述存储器可以为固态硬盘和机械硬盘,其中固态硬盘采用的存储颗粒可以为单层单元(SLC,SingleLayerCell单层单元)、(MLC,Multi-LevelCell多层单元)或3BIT单元(TLC,Trinary-LevelCell);机械硬盘可以采用单磁碟、双磁碟或多磁碟的存储结构。
如图4所示,所述电子设备40包括:
第一获取模块401,用于获取到预设时间段内针对所述存储器中每个存储单元的操作信息;基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;
标记模块402,用于基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;所述标记,用于标识所述存储单元的属性信息。
这里,由于针对每个存储单元的操作信息是变化的,因此,需要获取一段时间内的操作信息,例如:可设置每隔1分钟获取一次针对每个存储单元的操作信息。
本发明实施例中,所述存储器中每个存储单元当前对应的参考值,可基于所述获取的操作信息进行计算得到,例如:可以设置损失函数,所述损失函数的参数为上述获取的操作信息,作为一个应用场景,所述损失函数为cost,可表示如下:
其中,所述t为预设时间段的值,所述GlobalWrite表示当前读写操作的存储器(bank)中的所有物理块被写入的次数;所述BlockWrite表示当前物理块被写入的次数;所述GlobalValidPage表示当前读写操作的存储器中总的有效页数;所述BlockValidPage表示当前物理块的有效页数;所述Blockerase表示当前物理块被擦除的次数。
本发明实施例中,所述基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元,包括:
确定所述参考值小于第一预设门限值时,将所述存储单元标记为第一属性,用于表征所述存储单元支持第一预设次数(正常使用频率)的数据读取、擦除或写入操作;
确定所述参考值大于第一预设门限值且小于等于第二预设门限值时,将所述存储单元标记为第二属性,用于表征所述存储单元支持第二预设次数的数据擦除或写入操作,所述第二预设次数小于所述第一预设次数;
确定所述参考值大于第二预设门限值且小于等于第三预设门限值时,将所述存储单元标记为第三属性,用于表征所述存储单元只支持数据读取操作;
确定所述参考值大于第三预设门限值时,将所述存储单元标记为第四属性,用于表征所述存储单元已损坏。
这里,所述第一预设门限值小于第二预设门限值,所述第二预设门限值小于所述第三预设门限值。当然,基于实际的应用场景的不同,这里可设置更多个预设门限值,相应的,可以将所述存储器中的存储单元标记为更多个属性。
作为一个应用场景,基于上述损失函数,所述第一、二、三预设门限值可分别设置为T1,T2,T3,相应的,所述cost≤T1时,将所述存储单元标记为所述第一属性;所述T1<cost≤T2时,将所述存储单元标记为所述第二属性;所述T2<cost≤T3时,将所述存储单元标记为所述第三属性;所述cost>T3时,将所述存储单元标记为所述第四属性。
一个实施例中,如图5所示,所述电子设备还包括:
第二获取模块403,用于获取待处理数据的特征;
写入处理模块404,用于基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作。
其中,所述写入处理模块404,用于确定与所述待处理数据的特征对应的标记;基于所述已确定的标记,选择与所述标记对应的存储单元进行数据写入操作。
作为一个实施例,当待处理数据为待读取的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的量化的标记(如1-10)来对应,其中,10表示存储单元的状态最优,同时表示关联的待处理数据的处理频率最高(即为频繁读取的热数据);1表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔读取的冷数据)。
同样,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的量化的标记(如1-10)来对应,其中,10表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),1表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
作为一个实施例,当待处理数据为待读取的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁读取的热数据);危险表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔读取的冷数据);
同样,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),高危表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
这里,与上文描述相对应,当待处理数据为待读取的数据时,待处理数据的特征与定性标记10对应时,可以选取存储待处理数据的且标记为10的存储单元响应数据处理请求;待处理数据为待读取的数据时,且待读取的数据的特征与定性标记1对应时,可以选取存储有待处理数据的且标记为1(或者大于1)的存储单元响应数据处理请求;
当待处理数据为待写入的数据,且待处理数据的特征与定性的标记正常对应时,可以选取标记为正常的空闲存储单元响应数据处理请求。
其中,所述第二获取模块403,具体用于对所述待处理数据进行分析,确定所述待处理数据的特征;所述待处理数据的特征至少包括:处理类型特征和处理频率特征。
上述方案中,所述写入处理模块404,还可用于选取与所述已确定标记对应的存储单元、或高于所述已确定标记对应的存储单元进行所述数据写入操作。
作为一个实施例,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),高危表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
这里,与上文描述相对应,当待处理数据为待写入的数据,且待处理数据的特征与定性标记中的危险(低于最高等级的标记)对应时,可以选取标记为危险的空闲的存储单元进行所述数据写入操作;当然,这里还可以选择标记等级更高的、标记为正常的空闲的存储单元进行所述数据写入操作。如果待处理数据为待写入的数据,且待处理数据的特征与定性标记中的正常(等级最高的标记)对应时,只能选取标记为正常的空闲的存储单元进行所述数据写入操作。
实施例五
本发明实施例还提供了一种电子设备,所述电子设备包括存储器,所述存储器中包括至少一个存储单元,所述存储器可以为固态硬盘和机械硬盘,其中固态硬盘采用的存储颗粒可以为单层单元(SLC,SingleLayerCell单层单元)、(MLC,Multi-LevelCell多层单元)或3BIT单元(TLC,Trinary-LevelCell);机械硬盘可以采用单磁碟、双磁碟或多磁碟的存储结构。
如图6所示,所述电子设备50包括:
存储器501,用于存储每个存储单元5011的操作信息;
控制器502,用于获取到预设时间段内所述存储器501中存储的每个存储单元的操作信息,并基于所述操作信息,获取到所述存储器中每个存储单元当前对应的参考值;基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元;其中,
所述标记,用于标识所述每个存储单元的属性信息。
这里,由于针对每个存储单元的操作信息是变化的,因此,需要获取一段时间内的操作信息,例如:可设置每隔1分钟获取一次针对每个存储单元的操作信息。
本发明实施例中,所述存储器中每个存储单元当前对应的参考值,可基于所述获取的操作信息进行计算得到,例如:可以设置损失函数,所述损失函数的参数为上述获取的操作信息,作为一个应用场景,所述损失函数为cost,可表示如下:
其中,所述t为预设时间段的值,所述GlobalWrite表示当前读写操作的存储器(bank)中的所有物理块被写入的次数;所述BlockWrite表示当前物理块被写入的次数;所述GlobalValidPage表示当前读写操作的存储器中总的有效页数;所述BlockValidPage表示当前物理块的有效页数;所述Blockerase表示当前物理块被擦除的次数。
本发明实施例中,所述基于所述存储单元当前对应的参考值以及至少一个预设的门限值,标记所述存储器中的每个存储单元,包括:
确定所述参考值小于第一预设门限值时,将所述存储单元标记为第一属性,用于表征所述存储单元支持第一预设次数(正常使用频率)的数据读取、擦除或写入操作;
确定所述参考值大于第一预设门限值且小于等于第二预设门限值时,将所述存储单元标记为第二属性,用于表征所述存储单元支持第二预设次数的数据擦除或写入操作,所述第二预设次数小于所述第一预设次数;
确定所述参考值大于第二预设门限值且小于等于第三预设门限值时,将所述存储单元标记为第三属性,用于表征所述存储单元只支持数据读取操作;
确定所述参考值大于第三预设门限值时,将所述存储单元标记为第四属性,用于表征所述存储单元已损坏。
这里,所述第一预设门限值小于第二预设门限值,所述第二预设门限值小于所述第三预设门限值。当然,基于实际的应用场景的不同,这里可设置更多个预设门限值,相应的,可以将所述存储器中的存储单元标记为更多个属性。
作为一个应用场景,基于上述损失函数,所述第一、二、三预设门限值可分别设置为T1,T2,T3,相应的,所述cost≤T1时,将所述存储单元标记为所述第一属性;所述T1<cost≤T2时,将所述存储单元标记为所述第二属性;所述T2<cost≤T3时,将所述存储单元标记为所述第三属性;所述cost>T3时,将所述存储单元标记为所述第四属性。
作为一个实施例,所述控制器502,还用于获取待处理数据的特征,并基于所述标记以及待处理数据的特征,控制针对所述每个存储单元的数据写入操作。
作为一个实施例,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的量化的标记(如1-10)来对应,其中,10表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),1表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
作为一个实施例,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),高危表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
这里,与上文描述相对应,当待处理数据为待写入的数据,且待处理数据的特征与定性的标记正常对应时,可以选取标记为正常的空闲存储单元响应数据处理请求。
其中,所述控制器502,具体用于对所述待处理数据进行分析,确定所述待处理数据的特征;所述待处理数据的特征至少包括:处理类型特征和处理频率特征。
上述方案中,所述控制器502,还可用于选取与所述已确定标记对应的存储单元、或高于所述已确定标记对应的存储单元进行所述数据写入操作。
作为一个实施例,当待处理数据为待写入的数据时,待处理数据的特征可以为存储设备的存储单元中存储的数据的处理频率,相应地,不同的待处理数据的特征可以采用与存储单元的定性的标记(如前述的正常、危险、高危和损坏)来对应,其中,正常表示存储单元的状态最优,同时表示待处理数据的处理频率最高(即为频繁写入以进行修改的热数据),高危表示存储单元的状态最差,同时表示关联的待处理数据的处理频率最低(即为偶尔写入以进行修改的冷数据)。
这里,与上文描述相对应,当待处理数据为待写入的数据,且待处理数据的特征与定性标记中的危险(低于最高等级的标记)对应时,可以选取标记为危险的空闲的存储单元进行所述数据写入操作;当然,这里还可以选择标记等级更高的、标记为正常的空闲的存储单元进行所述数据写入操作。如果待处理数据为待写入的数据,且待处理数据的特征与定性标记中的正常(等级最高的标记)对应时,只能选取标记为正常的空闲的存储单元进行所述数据写入操作。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。