一种数据处理方法及装置的制造方法

文档序号:10724494阅读:485来源:国知局
一种数据处理方法及装置的制造方法
【专利摘要】本发明实施例提供一种数据处理方法及装置,其中,所述方法包括:获取存储设备中各存储块中数据的数据特征;从所述各存储块中选择至少一个活动存储区域;迁移需要进行数据处理的存储块中的第一数据至所述至少一个活动存储区域,其中,所述第一数据的数据特征满足预定条件。
【专利说明】
一种数据处理方法及装置
技术领域
[0001 ]本发明涉及数据存储技术领域,具体涉及一种数据处理方法及装置。
【背景技术】
[0002] 静态(Static)损耗均衡(WL,Wear Leveling)算法会对所有的存储块执行损耗平 衡,包括那些没有需要数据更新的存储块,这样的好处是使可用于损耗均衡的存储块的数 量更多,减少存放静态数据(例如mp3)存储块和存放动态数据(例如日志文件)存储块之间 的不平均损耗问题,增加整个固态硬盘(SSD,Solid State Drives)的耐久度。
[0003] 如果某块上存放的都是更新频率很低的静态数据(称为冷数据),甚至是上层应用 程序的只读数据区域,则此块上的数据被选中更新的频率就会非常低,故其上出现的无效 数据页(即脏页)很少,在垃圾回收器(GC,Garbage Collector)进行垃圾回收时就很少被选 中擦除,结果这个块的擦除次数要明显小于其他块,导致损耗的不均衡性,故需要使用静态 损耗均衡算法。静态损耗均衡算法通过一定的方法观察冷数据的存在,将冷数据转移到擦 除次数较高的块上,原来存放冷数据的块用于存放经常更新的数据,这样这些块就能得到 较多的擦除机会。而由于数据块中含有无效数据页,所以在冷数据块搬移的过程中会有空 白页产生。这样,在多次搬移之后会造成很多块都存在空白页,而由于这些块以后都用不到 只能等待GC的垃圾回收,这样既会增加垃圾回收的负载,也会造成资源浪费。

【发明内容】

[0004] 有鉴于此,本发明实施例期望提供一种数据处理方法及装置,不会造成空白页的 产生,能减少资源浪费,避免给垃圾回收造成负载,延缓存储设备的使用寿命。
[0005]为达到上述目的,本发明的技术方案是这样实现的:
[0006] 本发明实施例提供了一种数据处理方法,所述方法包括:
[0007] 获取存储设备中各存储块中数据的数据特征;
[0008] 从所述各存储块中选择至少一个活动存储区域;
[0009] 迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存储区域,其 中,所述第一数据的数据特征满足预定条件。
[0010] 上述方案中,可选地,所述方法还包括:
[0011] 待所述至少一个活动存储区域被写满后将所述需要进行数据处理的存储块作为 新的活动存储区域。
[0012] 上述方案中,可选地,所述至少一个活动存储区域包括第一活动存储区域和第二 活动存储区域时,
[0013] 所述迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存储区 域,包括:
[0014] 按照预设算法选中需要进行数据处理的第一存储块和第二存储块;
[0015] 确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据;
[0016] 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处 理的数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应 的活动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。
[0017] 上述方案中,可选地,所述待所述至少一个活动存储区域被写满后将所述需要进 行数据处理的存储块作为新的活动存储区域,包括:
[0018] 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区 域;
[0019] 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区 域;
[0020] 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储 块中的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作 次数和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次 数。
[0021] 上述方案中,可选地,所述按照预设算法选中需要进行数据处理的第一存储块和 第二存储块,包括:
[0022] 获取各个存储区域中数据的写操作次数和/或擦除操作次数;
[0023] 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数 据处理的两个存储区域。
[0024] 上述方案中,可选地,所述至少一个活动存储区域包括第一活动存储区域和第二 活动存储区域时,
[0025] 当所述第一活动存储区域被写满时,所述方法还包括:
[0026] 将第一逻辑页号(LPN,Logical Page Number)列表写入所述第一活动存储区域的 最后一页上,若第一存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的要 处理数据存到与所述第一存储块对应的新的第一活动存储区域中;
[0027] 当所述第二活动存储区域被写满时,所述方法还包括:
[0028] 将第二LPN列表写入所述第二活动存储区域的最后一页上,若第二存储块中还存 在尚未被处理的要处理数据,则将所述尚未被处理的要处理数据存到与所述第二存储块对 应的新的第二活动存储区域中。
[0029] 上述方案中,可选地,所述方法还包括:
[0030] 当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效 数据,等待被擦除或被重新写入新的数据。
[0031] 本发明实施例还提供了一种数据处理装置,所述数据处理装置包括:
[0032] 闪存介质,用于存储数据;
[0033] 处理器,用于获取存储设备中各存储块中数据的数据特征;从所述各存储块中选 择至少一个活动存储区域;迀移需要进行数据处理的存储块中的第一数据至所述至少一个 活动存储区域,其中,所述第一数据的数据特征满足预定条件。
[0034] 上述方案中,可选地,所述处理器,还用于:
[0035]待所述至少一个活动存储区域被写满后将所述需要进行数据处理的存储块作为 新的活动存储区域。
[0036] 上述方案中,可选地,所述处理器,还用于:所述至少一个活动存储区域包括第一 活动存储区域和第二活动存储区域时,
[0037]按照预设算法选中需要进行数据处理的第一存储块和第二存储块;
[0038]确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据;
[0039] 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处 理的数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应 的活动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。
[0040] 上述方案中,可选地,所述处理器,还用于:
[0041] 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区 域;
[0042] 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区 域;
[0043] 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储 块中的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作 次数和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次 数。
[0044] 上述方案中,可选地,所述处理器,还用于:
[0045] 获取各个存储区域中数据的写操作次数和/或擦除操作次数;
[0046] 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数 据处理的两个存储区域。
[0047] 上述方案中,可选地,所述处理器,还用于:
[0048]所述至少一个活动存储区域包括第一活动存储区域和第二活动存储区域时,
[0049]当所述第一活动存储区域被写满时,将第一逻辑页号(LPN,Logical Page Number)列表写入所述第一活动存储区域的最后一页上,若第一存储块中还存在尚未被处 理的要处理数据,则将所述尚未被处理的要处理数据存到与所述第一存储块对应的新的第 一活动存储区域中;
[0050]当所述第二活动存储区域被写满时,将第二LPN列表写入所述第二活动存储区域 的最后一页上,若第二存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的 要处理数据存到与所述第二存储块对应的新的第二活动存储区域中。
[0051 ] 上述方案中,可选地,所述处理器,还用于:
[0052]当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效 数据,等待被擦除或被重新写入新的数据。
[0053]本发明实施例还提供了一种数据处理装置,所述装置包括:
[0054]获取单元,用于获取存储设备中各存储块中数据的数据特征;
[0055]选择单元,用于从所述各存储块中选择至少一个活动存储区域;
[0056]处理单元,用于迀移需要进行数据处理的存储块中的第一数据至所述至少一个活 动存储区域,其中,所述第一数据的数据特征满足预定条件。
[0057]采用本发明实施例所述技术方案,获取存储设备中各存储块中数据的数据特征; 从所述各存储块中选择至少一个活动存储区域;迀移需要进行数据处理的存储块中的数据 特征满足预定条件的第一数据至所述至少一个活动存储区域;如此,不会造成空白页的产 生,能减少资源浪费,避免给垃圾回收造成负载,延缓存储设备的使用寿命。
【附图说明】
[0058]图1为本发明实施例提供的数据处理方法的实现流程示意图;
[0059]图2为本发明实施例提供的数据处理装置的组成结构示意图一;
[0060]图3为本发明实施例提供的数据处理装置的组成结构示意图二。
【具体实施方式】
[0061]为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实 现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
[0062] 实施例一
[0063]本发明实施例提供一种数据处理方法,所述方法应用于存储设备,如图1所示,所 述方法包括:
[0064] 步骤101、获取存储设备中各存储块中数据的数据特征。
[0065] 其中,所述数据特征是指数据的写操作次数和/或擦除操作次数。
[0066] 在一实施方式中,所述数据至少包括第一类数据(冷数据)、第二类数据(热数据)。
[0067] 具体地,所述第一类数据是指数据的写操作次数和/或擦除操作次数小于或等于 第一阈值。
[0068] 具体地,所述第二类数据是指数据的写操作次数和/或擦除操作次数大于或等于 第二阈值;其中,所述第二阈值大于第一阈值。
[0069]在一实施方式中,所述数据还包括第三类数据(温数据)。
[0070] 具体地,所述第三类数据是指数据的写操作次数和/或擦除操作次数大于第一阈 值且小于第二阈值。
[0071] 如此,能够判断出每个存储块中存储的是冷数据,还是热数据;并找出存储有写操 作次数和/或擦除操作次数最低的冷数据的存储块,以及存储有写操作次数和/或擦除操作 次数最高的热数据的存储块。
[0072] 步骤102、从所述各存储块中选择至少一个活动存储区域。
[0073] -般来说,存储块中存储的数据包括两大类:一类是有效数据,另一类是无效数 据。
[0074] 其中,所述活动存储区域用于存储需要进行数据处理的存储块中的第一数据;所 述第一数据的数据特征满足预定条件。所述预定条件表征该数据含有有效数据的标识。例 如,所述第一数据是指冷数据存储块中有效的冷数据,或热数据存储块中有效的热数据。
[0075] 在一实施例中,待所述至少一个活动存储区域被写满后将所述需要进行数据处理 的存储块作为新的活动存储区域。
[0076] 也就是说,在执行第一次WL运算时,需指定活动存储区域;在执行第二次WL运算 时,根据执行第一次WL运算的执行结果判断是否需要选择新的活动存储区域,当执行第一 次WL运算的执行结果为活动存储区域被写满时,则选择新的活动存储区域。
[0077] 如此,能够保证活动存储区域被充分利用,不会造成空白页,减少资源浪费。
[0078]步骤103、迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存 储区域,其中,所述第一数据的数据特征满足预定条件。
[0079]其中,所述第一数据的数据特征满足预定条件。所述预定条件表征该数据含有有 效数据的标识。例如,所述第一数据是指冷数据存储块中有效的冷数据,或热数据存储块中 有效的热数据。
[0080] 在一实施方式中,所述至少一个活动存储区域包括第一活动存储区域和第二活动 存储区域时,所述迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存储 区域,包括:
[0081] 按照预设算法选中需要进行数据处理的第一存储块和第二存储块;
[0082] 确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据;
[0083] 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处 理的数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应 的活动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。
[0084] -般来说,存储块中存储的数据包括两大类:一类是有效数据,另一类是无效数 据。其中,所述要处理的数据是指有效数据。
[0085] 在一【具体实施方式】中,所述按照预设算法选中需要进行数据处理的第一存储块和 第二存储块,包括:
[0086] 获取各个存储区域中数据的写操作次数和/或擦除操作次数;
[0087] 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数 据处理的两个存储区域。
[0088] 在一【具体实施方式】中,所述待所述至少一个活动存储区域被写满后将所述需要进 行数据处理的存储块作为新的活动存储区域,包括:
[0089] 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区 域;
[0090] 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区 域;
[0091] 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储 块中的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作 次数和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次 数。
[0092] 如此,能够将选中的冷数据池中的数据搬移到热数据块上,且搬移到热数据池中 的活动存储区域上;将选中的热数据池中的数据搬移到冷数据块上,且搬移到冷数据池中 的活动存储区域上。
[0093] 在一实施方式中,所述至少一个活动存储区域包括第一活动存储区域和第二活动 存储区域时,
[0094] 当所述第一活动存储区域被写满时,所述方法还包括:
[0095] 将第一逻辑页号(LPN,Logical Page Number)列表写入所述第一活动存储区域的 最后一页上,若第一存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的要 处理数据存到与所述第一存储块对应的新的第一活动存储区域中;
[0096] 当所述第二活动存储区域被写满时,所述方法还包括:
[0097] 将第二LPN列表写入所述第二活动存储区域的最后一页上,若第二存储块中还存 在尚未被处理的要处理数据,则将所述尚未被处理的要处理数据存到与所述第二存储块对 应的新的第二活动存储区域中。
[0098] 如此,当各自的当前活动存储区域写满时再将当前的搬移块作为新的活动存储区 域继续搬移,不会造成空白页的产生,能减少资源浪费,避免给垃圾回收造成负载,延缓存 储设备使用寿命。
[0099]上述方案中,所述方法还包括:
[0100] 当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效 数据,等待被擦除或被重新写入新的数据。
[0101] 如此,能降低数据碎片,降低WL中的写放大,避免给垃圾回收造成负载。
[0102] 本实施例所述技术方案,在WL算法的冷数据池和热数据池中分别设置当前活动存 储区域,这样,进行WL算法时,将选中的冷数据池中的冷数据搬移到热数据块上时,先往当 前的热数据池中的活动存储区域上搬移;同理,热数据池上的热数据搬移到冷数据块上时, 先往当前的冷数据池中的活动存储区域上搬移;当各自的当前活动存储区域写满时再将当 前的搬移块作为新的活动存储区域继续搬移,不会造成空白页的产生,能减少资源浪费;降 低数据碎片,减少数据搬移过程中中间块的擦除次数;降低WL中的写放大,避免给垃圾回收 造成负载,延缓存储设备使用寿命。
[0103] 下面,将对上述实施例所述数据处理方法做举例说明。
[0104] 首先,通过第一轮WL运算,选择出需要进行冷热交换的两个存储块。
[0105] 具体地,根据所选择出的两个存储块中是否含有数据可以归纳为两种搬移方式: (1)存储块与存储块进行有效数据交换;(2)存储块中的有效数据往空白块上搬移。
[0106] 其中,具体选择哪一种搬移方式,可以结合当前数据存储块的擦写次数与预搬移 的数据存储块的擦写次数,来进行结合考虑。
[0107] 假设:E数据存储块中有多个页,F数据存储块中也有多个页。其中,E数据存储块 中,被擦写次数最多的次数为1000,最小的为800;那么,E数据存储块可以往空白块上搬移; 其中,空白块上也包含有多个页,最大的搬移次数为10,最小的搬移次数为2。即,选择第二 种搬移方式。
[0108] 假设:G数据存储块中有多个页,Η数据存储块中也有多个页。其中,G数据存储块 中,被擦写次数最多的次数为800,最小的为400;Η数据存储块中,被擦写次数最多的次数为 200,最小的为100;那么,G数据存储块中的数据可与Η数据存储块进行数据交换。即,选择第 一种搬移方式。如此,擦写次数高的与擦写次数低的进行交换,以防止某一块因被擦写次数 达到峰值而导致整个硬盘损坏。
[0109] 其次,介绍一下数据交换的过程。
[0110]假设通过第一轮WL运算,选择出需要进行冷热交换的两个存储块为Α块和Β块;且 选择第一种搬移方式,即存储块与存储块进行有效数据交换。设表1为冷数据存储块,称为A 块;设表2为热数据存储块,称为B块。A块是指定的热数据存储块的活动存储区域,B块是指 定的冷数据存储块的活动存储区域。其中,在存储块中,Val id表示有效数据,Inval id表示 无效数据。
[0115] 表2
[0116] 那么,A块与B块进行数据交换后,A块由表1变成表3,B块由表2变成表4。
[0120] 表4
[0121] 此时,A块存储的是原B块中的有效数据;B块存储的是原A块中的有效数据。可见,A 块作为冷数据池的活动存储区域,尚未存满,故此时不写入LPN list;同理,B块作为热数据 池的活动存储区域,也尚未存满,故此时不写入LPN 1 i s t。
[0122] 那么,进行第二轮的WL运算,选择出两个存储块。具体地,表5为冷数据存储块,称 为C块;假设表6为热数据存储块,称为D块。因此,需要将C块中的有效数据搬移至热数据池 的活动存储区域;将D块中的有效数据搬移至冷数据池的活动存储区域。
[0126] 表6
[0127] 由于第一次数据搬移时,作为冷数据池的活动存储区域的A块,尚未存满,因此,尚 不需要选择新的冷数据池的活动存储区域;同理,由于第一次数据搬移时,作为热数据池的 活动存储区域的B块,尚未存满,因此,尚不需要选择新的热数据池的活动存储区域。
[0128] 因此,无需将C块和D块中的有效数据进行数据交换;只需继续将C块中的有效数据 搬移至B块中的空白页上,继续将D块中的有效数据搬移至A块中的空白页上,直至写满,写 满时将LPN list写到最后一页,剩下没写完的数据搬移至冷数据池的新的活动存储区域 中,即搬移至C块中,并将C块设为当前冷数据池的活动存储区域;D块可直接被GC收回。搬移 后,A块由表3变成表7,B块由表4变成表8。C块由表5变成表9,D块由表6变成表10。此时,A块、 B块、C块、D块的状态分别是:A块被写满,B块仍为活动存储区域,C块已变为活动存储区域,D 块上的数据全部变为无效数据,等待被擦除。
[0129]

[0137] 表1〇
[0138] 然后,进行第三轮的WL运算,继续按照上述方法进行数据处理,直至不再进行WL运 算,在此不再赘述。
[0139] 实施例二
[0140] 基于上述实施例所述技术方案,本发明实施例提供了一种数据处理装置,如图2所 示,所述数据处理装置包括:
[0141] 闪存介质21,用于存储数据;
[0142] 处理器22,用于获取存储设备中各存储块中数据的数据特征;从所述各存储块中 选择至少一个活动存储区域;迀移需要进行数据处理的存储块中的第一数据至所述至少一 个活动存储区域,其中,所述第一数据的数据特征满足预定条件。
[0143] 可选地,所述处理器22,还用于:
[0144] 待所述至少一个活动存储区域被写满后将所述需要进行数据处理的存储块作为 新的活动存储区域。
[0145] 可选地,所述处理器22,还用于:
[0146] 所述至少一个活动存储区域包括第一活动存储区域和第二活动存储区域时,
[0147] 按照预设算法选中需要进行数据处理的第一存储块和第二存储块;
[0148] 确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据;
[0149] 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处 理的数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应 的活动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。
[0150] -般来说,存储块中存储的数据包括两大类:一类是有效数据,另一类是无效数 据。其中,所述要处理的数据是指有效数据。
[0151] 可选地,所述处理器22,还用于:
[0152] 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区 域;
[0153] 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区 域;
[0154] 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储 块中的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作 次数和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次 数。
[0155] 可选地,所述处理器22,还用于:
[0156] 获取各个存储区域中数据的写操作次数和/或擦除操作次数;
[0157] 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数 据处理的两个存储区域。
[0158] 可选地,所述处理器22,还用于:
[0159] 所述至少一个活动存储区域包括第一活动存储区域和第二活动存储区域时,
[0160] 当所述第一活动存储区域被写满时,将第一LPN列表写入所述第一活动存储区域 的最后一页上,若第一存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的 要处理数据存到与所述第一存储块对应的新的第一活动存储区域中;
[0161] 当所述第二活动存储区域被写满时,将第二LPN列表写入所述第二活动存储区域 的最后一页上,若第二存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的 要处理数据存到与所述第二存储块对应的新的第二活动存储区域中。
[0162] 可选地,所述处理器22,还用于:
[0163] 当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效 数据,等待被擦除或被重新写入新的数据。
[0164] 本领域技术人员应当理解,本发明实施例的数据处理装置中各处理模块的功能, 可参照前述数据处理方法的相关描述而理解,本发明实施例的数据处理装置中各处理模 块,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施 例所述的功能的软件在智能终端上的运行而实现。
[0165] 其中,所述处理器42在实际应用中,均可由数据处理装置中的中央处理器(CPU, Central Processing Unit)、微处理器(MCU,Micro Controller Unit)、数字信号处理器 (DSP,Digital Signal Processing)或可编程逻辑器件(PLC,Programmable Logic Contro 11 er)等实现。
[0166] 本实施例所述数据处理装置,不会造成空白页的产生,能减少资源浪费,避免给垃 圾回收造成负载,延缓存储设备的使用寿命。
[0167] 实施例三
[0168] 基于上述实施例所述技术方案,本发明实施例提供了一种数据处理装置,如图3所 示,所述数据处理装置包括:
[0169] 获取单元31,用于获取存储设备中各存储块中数据的数据特征;
[0170] 选择单元32,用于从所述各存储块中选择至少一个活动存储区域;
[0171]处理单元33,用于迀移需要进行数据处理的存储块中的第一数据至所述至少一个 活动存储区域,其中,所述第一数据的数据特征满足预定条件。
[0172] 可选地,所述选择单元32,还用于:
[0173] 待所述至少一个活动存储区域被写满后将所述需要进行数据处理的存储块作为 新的活动存储区域。
[0174] 可选地,所述选择单元32在所述至少一个活动存储区域被写满后将所述需要进行 数据处理的存储块作为新的活动存储区域,包括:
[0175] 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区 域;
[0176] 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区 域;
[0177] 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储 块中的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作 次数和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次 数。
[0178]可选地,所述处理单元33迀移需要进行数据处理的存储块中的第一数据至所述至 少一个活动存储区域,包括:
[0179]所述至少一个活动存储区域包括第一活动存储区域和第二活动存储区域时,
[0180]按照预设算法选中需要进行数据处理的第一存储块和第二存储块;
[0181]确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据;
[0182] 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处 理的数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应 的活动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。
[0183] -般来说,存储块中存储的数据包括两大类:一类是有效数据,另一类是无效数 据。其中,所述要处理的数据是指有效数据。
[0184] 可选地,所述处理单元33按照预设算法选中需要进行数据处理的第一存储块和第 二存储块,包括:
[0185] 获取各个存储区域中数据的写操作次数和/或擦除操作次数;
[0186] 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数 据处理的两个存储区域。
[0187] 可选地,所述处理单元33,还用于:
[0188] 所述至少一个活动存储区域包括第一活动存储区域和第二活动存储区域时,
[0189] 当所述第一活动存储区域被写满时,将第一LPN列表写入所述第一活动存储区域 的最后一页上,若第一存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的 要处理数据存到与所述第一存储块对应的新的第一活动存储区域中;
[0190] 当所述第二活动存储区域被写满时,将第二LPN列表写入所述第二活动存储区域 的最后一页上,若第二存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的 要处理数据存到与所述第二存储块对应的新的第二活动存储区域中。
[0191] 可选地,所述处理单元33,还用于:
[0192] 当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效 数据,等待被擦除或被重新写入新的数据。
[0193] 本领域技术人员应当理解,本实施例的数据处理装置中各单元的功能,可参照前 述数据处理方法的相关描述而理解,本实施例的数据处理装置中各单元,可通过实现本实 施例所述的功能的模拟电路而实现,也可以通过执行本实施例所述的功能的软件在智能终 端上的运行而实现。
[0194] 实际应用中,上述获取单元31、选择单元32、处理单元33的具体结构均可对应于处 理器。所述处理器具体的结构可以为CPU、MCU、DSP或PLC等具有处理功能的电子元器件或电 子元器件的集合。其中,所述处理器包括可执行代码,所述可执行代码存储在存储介质中, 所述处理器可以通过总线等通信接口与所述存储介质中相连,在执行具体的各单元的对应 功能时,从所述存储介质中读取并运行所述可执行代码。所述存储介质用于存储所述可执 行代码的部分优选为非瞬间存储介质。
[0195] 所述获取单元31、选择单元32、处理单元33可以集成对应于同一处理器,或分别对 应不同的处理器;当集成对应于同一处理器时,所述处理器采用时分处理所述获取单元31、 选择单元32、处理单元33对应的功能。
[0196] 本实施例所述存储装置可应用于SSD中。
[0197]本实施例所述的数据处理装置,不会造成空白页的产生,能减少资源浪费,避免给 垃圾回收造成负载,延缓存储设备的使用寿命。
[0198]在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其 它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为 一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或 可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部 分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合 或通信连接,可以是电性的、机械的或其它形式的。
[0199] 上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显 示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单 元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0200] 另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可 以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述 集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0201] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在 执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存 储器(Read-Only Memory,R0M)、随机存取存储器(Random Access Memory,RAM)、磁碟或者 光盘等各种可以存储程序代码的介质。
[0202] 或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品 销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施 例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以 是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。 而前述的存储介质包括:移动存储设备、R〇M、RAM、磁碟或者光盘等各种可以存储程序代码 的介质。
[0203] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1. 一种数据处理方法,其特征在于,所述方法包括: 获取存储设备中各存储块中数据的数据特征; 从所述各存储块中选择至少一个活动存储区域; 迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存储区域,其中, 所述第一数据的数据特征满足预定条件。2. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 待所述至少一个活动存储区域被写满后将所述需要进行数据处理的存储块作为新的 活动存储区域。3. 根据权利要求2所述的方法,其特征在于,所述至少一个活动存储区域包括第一活动 存储区域和第二活动存储区域时, 所述迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存储区域,包 括: 按照预设算法选中需要进行数据处理的第一存储块和第二存储块; 确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据; 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处理的 数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应的活 动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。4. 根据权利要求3所述的方法,其特征在于,所述待所述至少一个活动存储区域被写满 后将所述需要进行数据处理的存储块作为新的活动存储区域,包括: 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区域; 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区域; 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储块中 的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作次数 和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次数。5. 根据权利要求3所述的方法,其特征在于,所述按照预设算法选中需要进行数据处理 的第一存储块和第二存储块,包括: 获取各个存储区域中数据的写操作次数和/或擦除操作次数; 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数据处 理的两个存储区域。6. 根据权利要求3所述的方法,其特征在于,所述至少一个活动存储区域包括第一活动 存储区域和第二活动存储区域时, 当所述第一活动存储区域被写满时,所述方法还包括: 将第一逻辑页号LPN列表写入所述第一活动存储区域的最后一页上,若第一存储块中 还存在尚未被处理的要处理数据,则将所述尚未被处理的要处理数据存到与所述第一存储 块对应的新的第一活动存储区域中; 当所述第二活动存储区域被写满时,所述方法还包括: 将第二LPN列表写入所述第二活动存储区域的最后一页上,若第二存储块中还存在尚 未被处理的要处理数据,则将所述尚未被处理的要处理数据存到与所述第二存储块对应的 新的第二活动存储区域中。7. 根据权利要求3所述的方法,其特征在于,所述方法还包括: 当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效数 据,等待被擦除或被重新写入新的数据。8. -种数据处理装置,其特征在于,所述数据处理装置包括: 闪存介质,用于存储数据; 处理器,用于获取存储设备中各存储块中数据的数据特征;从所述各存储块中选择至 少一个活动存储区域;迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动 存储区域,其中,所述第一数据的数据特征满足预定条件。9. 根据权利要求8所述的装置,其特征在于,所述处理器,还用于: 待所述至少一个活动存储区域被写满后将所述需要进行数据处理的存储块作为新的 活动存储区域。10. 根据权利要求9所述的装置,其特征在于,所述处理器,还用于:所述至少一个活动 存储区域包括第一活动存储区域和第二活动存储区域时, 按照预设算法选中需要进行数据处理的第一存储块和第二存储块; 确定所述第一存储块要处理的数据以及所述第二存储块中要处理的数据; 将所述第一存储块要处理的数据存到第一活动存储区域,将所述第二存储块要处理的 数据存到所述第二活动存储区域;其中,所述第一活动存储区域为与第一存储块对应的活 动存储区域,所述第二活动存储区域为与第二存储块对应的活动存储区域。11. 根据权利要求10所述的装置,其特征在于,所述处理器,还用于: 待所述第一活动存储区域被写满后以所述第一存储块作为新的第一活动存储区域; 待所述第二活动存储区域被写满后以所述第二存储块作为新的第二活动存储区域; 其中,所述第一存储块中的数据的写操作次数和/或擦除操作次数低于第二存储块中 的数据的写操作次数和/或擦除操作次数;所述第一活动存储区域中的数据的写操作次数 和/或擦除操作次数高于第二活动存储区域中的数据的写操作次数和/或擦除操作次数。12. 根据权利要求10所述的装置,其特征在于,所述处理器,还用于: 获取各个存储区域中数据的写操作次数和/或擦除操作次数; 基于所述各个存储区域中数据的写操作次数和/或擦除操作次数选中需要进行数据处 理的两个存储区域。13. 根据权利要求10所述的装置,其特征在于,所述处理器,还用于: 所述至少一个活动存储区域包括第一活动存储区域和第二活动存储区域时, 当所述第一活动存储区域被写满时,将第一 LPN列表写入所述第一活动存储区域的最 后一页上,若第一存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的要处 理数据存到与所述第一存储块对应的新的第一活动存储区域中; 当所述第二活动存储区域被写满时,将第二LPN列表写入所述第二活动存储区域的最 后一页上,若第二存储块中还存在尚未被处理的要处理数据,则将所述尚未被处理的要处 理数据存到与所述第二存储块对应的新的第二活动存储区域中。14. 根据权利要求10所述的装置,其特征在于,所述处理器,还用于: 当存储块中的要处理数据全部处理成功时,将存储块中的所有数据全部变为无效数 据,等待被擦除或被重新写入新的数据。15. -种数据处理装置,其特征在于,所述装置包括: 获取单元,用于获取存储设备中各存储块中数据的数据特征; 选择单元,用于从所述各存储块中选择至少一个活动存储区域; 处理单元,用于迀移需要进行数据处理的存储块中的第一数据至所述至少一个活动存 储区域,其中,所述第一数据的数据特征满足预定条件。
【文档编号】G06F3/06GK106095344SQ201610479942
【公开日】2016年11月9日
【申请日】2016年6月27日
【发明人】张红蕾, 李志刚
【申请人】联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1