一种数据恢复装置、方法、系统及存储介质

文档序号:28219556发布日期:2021-12-28 23:48阅读:62来源:国知局
一种数据恢复装置、方法、系统及存储介质

1.本发明涉及数据处理技术领域,具体涉及一种数据恢复装置、方法、系统及存储介质。


背景技术:

2.在大数据互联网迅速发展的时代背景之下,各类设备的数据存储压力日益增强,因而对大量的数据进行合理的存储管理成为了一个至关重要的问题。
3.目前,一些常用的存储设备为了保证数据可靠性,会将逻辑上相连的一组用户数据分成较小的数据块,分散存储到底层的存储阵列内不同的磁盘中,避免一个磁盘出现故障时,导致整条数据丢失,不可恢复。同时,会提供相应的编解码机制,对存储阵列中逻辑相连的数据块内容进行计算编码,辅助判断数据是否出错。在发现错误后,可以对编码结果进行解码来恢复一定数量的原始数据块。
4.然而,现有的数据恢复方法需要将存储器中的数据传输到处理器中进行计算编码,再将编码结果从处理器传回存储器。当数据恢复任务密集、数据量较大时,频繁大量的数据迁移会占用大量带宽资源,严重拉低系统的性能;另外,基础的编解码方式在计算时需要消耗大量计算资源并产生较长的时间延迟,在处理器进行数据恢复的这段时间内,存储器的状态是不稳定的,相应的存储单元无法接收读写任务,所以这个时间延迟越长,对系统性能的影响越大。在目前数据量日益增大,数据处理需求日益密集的环境下,数据恢复的时延太长、计算任务过于繁重,可能会导致系统卡顿甚至宕机,严重对影响其他任务的处理。


技术实现要素:

5.有鉴于此,本发明实施例提供了涉及一种数据恢复装置、方法、系统及存储介质,以解决现有技术中的数据恢复方法频繁的数据迁移会占用大量带宽资源拉低系统性能的技术问题。
6.本发明提出的技术方案如下:
7.本发明实施例第一方面提供一种数据恢复装置,包括:存储器,所述存储器为电压激活式交叉结构的非易失性存储器,所述存储器包括多个由纵横交叉结构的横梁分割而成的存储单元;驱动部件,用于和所述存储器中的每一行列连接,控制所述存储器进行数据读写以及错误数据恢复。
8.可选地,该数据恢复装置还包括:放大部件、切换上档部件、i/o缓存空间以及控制中枢,所述存储器的输出端连接所述放大部件,所述放大部件的输出端连接所述切换上档部件,所述驱动部件和所述切换上档部件连接所述i/o缓存空间以及控制中枢。
9.本发明实施例第二方面提供一种数据恢复方法,所述数据恢复方法用于本发明实施例第一方面所述的数据恢复装置,所述数据恢复方法包括:选取一组预设输入电压,将输入电压循环施加到存储器的一组存储单元上;根据不同存储单元在不同电压下的阻值计算各存储单元的阻值差值;根据阻值差值最小的存储单元对应的输入电压作为最优输入电
压;根据所述最优输入电压对所述存储器进行加电。
10.可选地,选取一组预设输入电压,将输入电压循环施加到存储器的一组存储单元上,包括:选取一组预设输入电压;根据循环施加次数以及预设输入电压计算得到多组输入电压;根据多组输入电压循环施加到存储器的一组存储单元上。
11.可选地,根据所述最优输入电压对所述存储器进行加电,包括:根据所述最优输入电压计算得到第一输入电压和第二输入电压;根据所述第一输入电压和所述第二输入电压周期性对所述存储器加电。
12.可选地,该数据恢复方法还包括:根据分块的原始数据以及变换矩阵构造辅助数据块;当故障数据块个数为1时,根据所述辅助数据块中的第一辅助块以及原始数据中的正常数据块进行拼接和异或操作,得到故障数据块。
13.可选地,该数据恢复方法还包括:当故障数据块个数大于1时,根据所述变换矩阵求逆得到逆变换矩阵;将正常数据块与所述辅助数据块进行拼接,得到第一向量;根据所述第一向量和所述逆变换矩阵相乘得到故障数据块。
14.可选地,该数据恢复方法还包括:根据原始数据块中出错次数确定将数据块分为易出错数据块以及不易出错数据块;根据存储器中各存储单元的位置将存储器分为多个区域块;根据数据块的分类结果以及存储器的区域划分将数据块和区域块进行匹配。
15.本发明实施例第三方面提供一种数据恢复系统,包括:电压施加模块,用于选取一组预设输入电压,将输入电压循环施加到存储器的一组存储单元上;阻值计算模块,用于根据不同存储单元在不同电压下的阻值计算各存储单元的阻值差值;电压确定模块,用于根据阻值差值最小的存储单元对应的输入电压作为最优输入电压;加电模块,用于根据所述最优输入电压对所述存储器进行加电。
16.本发明实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的数据恢复方法。
17.本发明提供的技术方案,具有如下效果:
18.本发明实施例提供的数据恢复装置、方法、系统及存储介质,采用循环施加电压的方式确定了最优输入电压,采用该最优输入电压,可以避免阻值波动过大导致数据出错的问题。即采用该数据恢复方法,可以降低数据出错的概率,提高数据恢复的效率。
19.本发明实施例提供的数据恢复方法,构造了变换矩阵以及辅助数据块,实现了对单块故障数据块以及多块数据故障块的数据恢复;同时基于数据库的出错率以及存储器的存储快慢区域,将出错率高的数据块对应匹配在存储较块的区域中,减少数据替换的次数和耗费的时长,提高计算速度与系统整体性能。由此,该数据恢复方法可以用于存算一体的高性能存储集群、分布式存储的数据恢复设备等。
20.本发明实施例提供的数据恢复方法,采用新型的数据恢复计算方法,绕过大开销的计算步骤,加速数据恢复过程。在保证存储器数据可靠的目标之上,减少存储器的不稳定时间,提高系统稳定性。
21.本发明实施例提供的数据恢复方法,采用以电压激活式交叉结构存储器件为底层硬件的装置,并设计了特异性的变换矩阵构造方法用于恢复错误数据,高度保证了存储设备中数据的可靠性、以及系统的稳定性。其中,将输入电压与存储单元的阻值控制在一定范
围内,减小了硬件层直接出现数据错误的可能性;利用存储器本身的硬件计算能力,在存储器内做错误数据修复的计算操作,减少了和处理器之间的数据传输,降低了对处理器的依赖程度;构造了特殊的变换矩阵进行计算,绕过了部分大开销的计算步骤,大大加速了数据恢复过程,减少了系统的不稳定时间;最后采取了分类思想,对存储硬件与数据块分别进行分类,针对类别将硬件速度与数据出错频率进行匹配,设计了特定的数据编排方案,削减了存储器件各单元时延的不一致问题。
附图说明
22.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是根据本发明实施例的数据恢复装置的结构框图;
24.图2是根据本发明实施例的数据恢复方法的流程图;
25.图3是根据本发明另一实施例的数据恢复方法的流程图;
26.图4是根据本发明另一实施例的数据恢复方法的流程图;
27.图5是根据本发明另一实施例的数据恢复方法的流程图;
28.图6是根据本发明另一实施例的数据恢复方法的流程图;
29.图7是根据本发明实施例的数据恢复系统的结构框图;
30.图8是根据本发明实施例提供的计算机可读存储介质的结构示意图;
31.图9是根据本发明实施例提供的电子设备的结构示意图。
具体实施方式
32.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.本发明实施例提供一种数据恢复装置,如图1所示,该装置包括:存储器,所述存储器为电压激活式交叉结构的非易失性存储器,所述存储器包括多个由纵横交叉结构的横梁分割而成的存储单元;驱动部件,用于和所述存储器中的每一行列连接,控制所述存储器进行数据读写以及错误数据恢复。具体地,存储器的存储单元由纵横交叉结构的横梁分割而成,分割出来的每一个格点即一个存储单元,每个存储单元内可存储一个比特的数据。由在存储器一侧的驱动器对某行施加激活电压来动态改变该行每个存储单元内部的电阻,从而利用模拟电路原理实现数据读写以及错误数据恢复。
34.本发明实施例提供的数据恢复装置,采用电压激活式交叉结构的非易失性存储器作为存储结构,该存储结构不仅能实现存储功能;同时,电压激活式交叉结构存储器还具备硬件计算能力,由此可以在存储器内做错误数据恢复的计算操作,减少存储器与处理器之间的数据传输,降低系统能耗,提高运行速度。因此,该数据恢复装置避免了的存储器和处理器之间的频繁数据迁移,提高了系统的性能。
35.在一实施方式中,该数据恢复装置还包括:放大部件、切换上档部件、i/o缓存空间以及控制中枢,存储器的输出端连接所述放大部件,所述放大部件的输出端连接所述切换上档部件,所述驱动部件和所述切换上档部件连接所述i/o缓存空间以及控制中枢。
36.其中,驱动部件与存储器交叉横杆的每一行列相连;放大部件连接在存储器每一列的末端,用于对存储器输出的电流、电压信号等电信号进行放大;放大部件的输出端串行连接在切换上档部件的输入端,驱动部件与切换上档部件一起连接到i/o缓存空间和控制中枢。具体地,切换上档部件用于对存储器的读写进行控制,或者用于将数据块存储到i/o缓存空间;控制中枢用于接收用户请求,以及发出指令调控下层的部件,例如,接收cpu发出的信号,或者辅助存储器实现读写功能。
37.具体地,通过驱动部件和存储器连接,驱动部件对存储器加电激活,利用该存储器的物理特性,还可以高效进行矩阵向量乘法的计算。例如,将输入电压v
i
施加给存储器的每一行,该电压与每一个行列交叉格点处的电阻r
i,j
的倒数相乘并累加(此操作在通电时硬件会自动完成),则可以在每一列的末端得到输出电流其中,rownum为一块交叉结构存储器的行数。由此,得到的该电流大小即为输入的电压值向量与该列的电导值(电阻的倒数)向量做向量乘法运算的结果。
38.在实际使用过程中,由于该存储器存储单元的导电能力会因输入电压等各种因素的不同而变化,所以即使预先将一组存储单元设置为某一电阻值,但在运行时各个单元的实际阻值仍会有所差异。若阻值波动过大则会直接导致数据出错,因此需要知道哪些是可取的预设电阻值,这些值在一定的输入电压下不会产生异常的突变,同组单元之间的差距能够尽量得到控制。
39.由此,本发明实施例提供一种数据恢复方法,该数据恢复方法用于上述实施例所述的数据恢复装置。如图2所示,该方法包括如下步骤:
40.步骤s101:选取一组预设输入电压,将输入电压循环施加到存储器的一组存储单元上。
41.在一实施方式中,可以按照如下公式选取预设输入电压,即预设输入电压表示为:2+{1/(e*cycle)

,1/(e*4),1/(e*3),1/(e*2),1/(e*1),2/e}v;然后根据以上预设输入电压对存储器循环施加cycle次,cycle值可根据硬件的耐受度来选择,例如可以取64,也可以取其他数值。具体地,当cycle取64时,可以循环施加电压64次。其中,施加第一次时,cycle取1,根据上述公式计算得到一组预设输入电压;施加第二次时,cycle取2,根据上述公式计算得到一组预设输入电压;以此类推,直到得到64组预设输入电压。之后可以将得到的多组不同的输入电压施加到每一组存储单元上。
42.步骤s102:根据不同存储单元在不同电压下的阻值计算各存储单元的阻值差值;具体地,将不同的电压施加到每一组存储单元上,可以采集并记录不同电压下不同存储单元的阻值变化情况,具体可以采集不同存储单元在不同电压下的阻值,然后计算在每一电压下,一组存储单元中各存储单元之间的阻值差值。
43.步骤s103:根据阻值差值最小的存储单元对应的输入电压作为最优输入电压;具体地,在计算每一电压下的阻值差值后,可以将所有的阻值差值进行比较,确定阻值差值中的最小值,然后将其对应的电压作为最优输入电压v
w
。此时,还可以确定该阻值差值下,各
存储单元的平均阻值。
44.步骤s104:根据所述最优输入电压对所述存储器进行加电。具体地,当计算得到最优输入电压后,可以根据该电压设置对存储单元的加电模式。其中,于控制存储过程的加电模式有两种:1/2v
w
模式和1/3v
w
模式。这两种模式各有其优缺点,只选取单一模式长期执行会扩大其缺陷的影响,因此,在加电时,周期性的将两种模式交替配置,即采用第一输入电压1/2v
w
和第二输入电压1/3v
w
周期性对所述存储器加电。以缩小单一模式的影响,其中的周期d为该存储器最近一次连续工作时长。
45.本发明实施例提供的数据恢复方法,采用循环施加电压的方式确定了最优输入电压,采用该最优输入电压,可以避免阻值波动过大导致数据出错的问题。即采用该数据恢复方法,可以降低数据出错的概率,提高数据恢复的效率。
46.作为本发明实施例的一种可选地实施方式,如图3及图4所示,该数据恢复方法还包括如下步骤:
47.步骤s201:根据分块的原始数据以及变换矩阵构造辅助数据块。
48.在一实施方式中,在对原始数据进行分块时,可以设置原始数据被切分成的块数为blocknum,每块数据的比特位数为datalen,辅助数据块的块数为helpblocknum。
49.在一实施方式中,变换矩阵中矩阵的行数和列数可以按照上述设置参数确定。其中,矩阵的行数matrixrows=blocknum+helpblocknum,列数matrixcols=blocknum。为了支持数据恢复功能,该矩阵需要满足可逆的要求。矩阵m可以分为上下两部分,上半部分ma为一个blocknum*blocknum的单位阵,下半部分mb按照如下方式确定:(1)将矩阵k乘以一个非0向量a得到m1,a的选取需满足让m1中的“1”个数最多且优先分布在主对角线上;(2)再将m1的第一行全部元素替换为“1”,得到mb;(3)最后将矩阵m中的每个元素扩展为w*w的二进制位表示,w=log2(datalen)向上取整。其中,矩阵k为:
[0050][0051]
在该矩阵k中,x={x1,x2,

,x
r
‑1,x
r
};y={y1,y2,

,y
m
‑1,y
m
}。其中x
i
是二进制下的i

1的值,y
i
是二进制下的2
l
‑1+i

1的值。x
i
与y
i
在gf(2
l
)上各不相同。此处l即为datalen的值,m<2
l
‑1且r<2
l
‑1。
[0052]
在一实施方式中,在根据原始数据和变换矩阵构造辅助数据块时,可以将得到的变换矩阵m和原始数据向量相乘,得到辅助数据块。该辅助数据块可以表示为{b0,b1,b2,

,bhelpnum

1}。具体地,在得到辅助数据块后,可以将其中的每个矩阵g转置得到矩阵g
t
,将g
t
编排到大小为(helpblocknum*datalen)*(blocknum*datalen)的存储单元中,一个二进制矩阵元素存入一个单元中。数据块作为列向量编排到每一行的输入端,对相关存储行加电激活即可计算。
[0053]
步骤s202:当故障数据块个数为1时,根据所述辅助数据块中的第一辅助块以及原
始数据中的正常数据块进行拼接和异或操作,得到故障数据块。具体地,在构造辅助数据块之后,在数据恢复时,可以采用该辅助数据块与正常数据块计算即可得到故障数据。其中,采用该辅助数据块进行数据恢复时,需要确定故障数据块的个数不超过helpblocknum块。在一具体实施方式中,该故障数据块可以是出错或者丢失的数据块。
[0054]
在一实施方式中,当故障数据块个数errorblock=1时:假设故障数据块为di,获取上述辅助数据块中的第一辅助块b0,该辅助块b0是由原始数据与矩阵mb中均为单位元的一行相乘得到的。然后将原始数据中剩余blocknum

1块正常数据块与第一辅助块b0进行拼接,将b0放到丢失的数据块位置,可以得到向量:{d0,d1,d2,d
i
‑1,b0,d
i+1
,

,d
blocknum
‑1}。最后,将该向量中的每个分量依次做异或操作即可得到故障数据块di。具体地,该异或操作可以表示为:其中,在进行异或操作时,可以将以上各分量直接编排到blocknum*datalen大小的交叉结构存储单元中相应的位置,加电激活相关行即可实现异或操作。
[0055]
步骤s203:当故障数据块个数大于1时,根据所述变换矩阵求逆得到逆变换矩阵。具体地,当故障数据块个数1<errorblock<=helpblocknum时,假设故障数据块为{dp0,dp1,dp2

}。则首先对上述生成的变换矩阵m进行逆变换,即对矩阵m求逆得到矩阵m
‑1。
[0056]
步骤s204:将正常数据块与所述辅助数据块进行拼接,得到第一向量;具体地,当原始数据块中有errornum块故障数据块,则剩余的正常数据块有blocknum

errornum块,然后从辅助数据块中选择errorblock个辅助数据块,将blocknum

errornum块正常数据块与errorblock个辅助数据块进行拼接,得到第一向量{dh0,dh1,dh2

,,

,dblocknum

1,

,bp0,bp1,bp2,

}。
[0057]
步骤s205:根据所述第一向量和所述逆变换矩阵相乘得到故障数据块。具体地,在确定故障数据块时,将上述得到的第一向量和上述求逆得到的矩阵m
‑1相乘,得到的结果中包括正常数据块和故障数据块,即可以直接得到原始数据块;该原始数据块表示为{d0,d1,d2,
……
,dblocknum

1}。其中,在将第一向量和逆变换矩阵进行相乘时,可以直接将矩阵m
‑1直接一一对应地编排到存储单元中,类似于构造辅助块时的编排方式进行计算。
[0058]
由上述数据恢复装置可知,在进行存储时,需要对存储单元施加激活电压。但是,距离驱动部件越远的存储单元,电势差下降得越快,并且该存储器的存储时间对存储电压非常敏感,所以容易出现同时向一组存储单元写入数据,但各单元之间的写入时间差异很大的情况。由此可以看出,在一块存储阵列上,物理位置不同的存储单元,其速度不均匀。
[0059]
当原始数据较短时,该装置中的存储空间可以容纳多个数据恢复任务同时处理,如果任务不密集,则可以选择用哪一部分存储单元做计算。同时,对于数据块而言,也存在出错频率的高低之分。因此,可以将高出错率的数据与写入较快的存储区域对应。
[0060]
由此,作为本发明实施例的一种可选的实施方式,如图5及图6所述,该数据恢复方法还包括如下步骤:
[0061]
步骤s301:根据原始数据块中出错次数确定将数据块分为易出错数据块以及不易出错数据块;具体地,在对原始数据块进行划分时,可以根据数据块的出错频率设置衡量指标。
[0062]
在一实施方式中,该衡量指标表示为:
其中,insnum
w
为预设时间epochtime内对该数据块修改的指令条数,insnum
wr
为epochtime内包含该数据块的全部指令条数,wrong_block为epochtime内该数据块的出错次数,wrong_all为epochtime所有数据块出错的总次数。预设时间epochtime的值可根据实际情况进行调整。
[0063]
在一实施方式中,当确定衡量指标后,对于原始数据块,可以根据上述衡量指标分为两类:易出错数据块以及不易出错数据块。其中,易出错数据块可以是衡量指标wrong frequency>=0.3;不易出错的数据块其衡量指标wrong frequency<0.3。
[0064]
步骤s302:根据存储器中各存储单元的位置将存储器分为多个区域块;具体地,为了将高出错率的数据与写入较快的存储区域对应匹配,在对数据块的出错率进行计算之后,还需要确定存储区域的写入快慢。
[0065]
在一实施方式中,根据离存储器驱动部件距离的远近,将存储单元按列划分为n块速度相异的区域,划分标准可以根据实际需求动态变化。例如,在需要进行计算时,以最靠近驱动的列为起点,每blocknum*datalen*2列为一块区域,越远的区域速度依次递减。在需要进行存储时,划分存储区域时,区域列数依次以datalen、3*datalen、5*datalen、7*datalen,

,(2*i

1)*datalen递推增长,即第一块区域包含datalen列,第二块区域包含3*datalen列,以此类推,最终将存储单元划分为n块。
[0066]
步骤s303:根据数据块的分类结果以及存储器的区域划分将数据块和区域块进行匹配。具体地,在划分数据块和存储区域后,选择易出错的数据,将该易出错的数据按照衡量指标wrong frequency递减排序,依次优先分配到电压激活式交叉结构存储器上越快速的区域块。然后将原始数据块中除易出错数据块以外的剩余数据块在存储器的剩余区域上进行分配。剩余数据块的分配方式为:以该数据块第一个数据单元的坐标[i,j]为分配基准:
[0067]
i=(apptime*epochtime)mod(sectionrow)
[0068]
j=(apptime*epochtime)mod(sectioncol)
[0069]
apptime为当前程序已经运行的时间,sectionrow为该存储区域的行数,sectioncol为该存储区域的列数。由此,采用上述方式可以完成原始数据块在存储器上的分配。
[0070]
本发明实施例提供的数据恢复方法,构造了变换矩阵以及辅助数据块,实现了对单块故障数据块以及多块数据故障块的数据恢复;同时基于数据库的出错率以及存储器的存储快慢区域,将出错率高的数据块对应匹配在存储较块的区域中,减少数据替换的次数和耗费的时长,提高计算速度与系统整体性能。由此,该数据恢复方法可以用于存算一体的高性能存储集群、分布式存储的数据恢复设备等。
[0071]
本发明实施例提供的数据恢复方法,采用新型的数据恢复计算方法,绕过大开销的计算步骤,加速数据恢复过程。在保证存储器数据可靠的目标之上,减少存储器的不稳定时间,提高系统稳定性。
[0072]
本发明实施例提供的数据恢复方法,采用以电压激活式交叉结构存储器件为底层硬件的装置,并设计了特异性的变换矩阵构造方法用于恢复错误数据,高度保证了存储设备中数据的可靠性、以及系统的稳定性。其中,将输入电压与存储单元的阻值控制在一定范
围内,减小了硬件层直接出现数据错误的可能性;利用存储器本身的硬件计算能力,在存储器内做错误数据修复的计算操作,减少了和处理器之间的数据传输,降低了对处理器的依赖程度;构造了特殊的变换矩阵进行计算,绕过了部分大开销的计算步骤,大大加速了数据恢复过程,减少了系统的不稳定时间;最后采取了分类思想,对存储硬件与数据块分别进行分类,针对类别将硬件速度与数据出错频率进行匹配,设计了特定的数据编排方案,削减了存储器件各单元时延的不一致问题。
[0073]
本发明实施例还提供一种数据恢复系统,如图7所示,该系统包括:
[0074]
电压施加模块,用于选取一组预设输入电压,将输入电压循环施加到存储器的一组存储单元上;详细内容参见上述方法实施例中步骤s101的相关描述。
[0075]
阻值计算模块,用于根据不同存储单元在不同电压下的阻值计算各存储单元的阻值差值;详细内容参见上述方法实施例中步骤s102的相关描述。
[0076]
电压确定模块,用于根据阻值差值最小的存储单元对应的输入电压作为最优输入电压;详细内容参见上述方法实施例中步骤s103的相关描述。
[0077]
加电模块,用于根据所述最优输入电压对所述存储器进行加电。详细内容参见上述方法实施例中步骤s104的相关描述。
[0078]
本发明实施例提供的数据恢复方法,采用循环施加电压的方式确定了最优输入电压,采用该最优输入电压,可以避免阻值波动过大导致数据出错的问题。即采用该数据恢复方法,可以降低数据出错的概率,提高数据恢复的效率。
[0079]
在一实施方式中,该数据恢复装置还包括:
[0080]
构造模块,用于根据分块的原始数据以及变换矩阵构造辅助数据块;详细内容参见上述方法实施例中步骤s201的相关描述。
[0081]
第一恢复模块,用于当故障数据块个数为1时,根据所述辅助数据块中的第一辅助块以及原始数据中的正常数据块进行拼接和异或操作,得到故障数据块。详细内容参见上述方法实施例中步骤s202的相关描述。
[0082]
逆变换模块,用于当故障数据块个数大于1时,根据所述变换矩阵求逆得到逆变换矩阵;详细内容参见上述方法实施例中步骤s203的相关描述。
[0083]
拼接模块,用于将正常数据块与所述辅助数据块进行拼接,得到第一向量;详细内容参见上述方法实施例中步骤s204的相关描述。
[0084]
第二恢复模块,用于根据所述第一向量和所述逆变换矩阵相乘得到故障数据块。详细内容参见上述方法实施例中步骤s205的相关描述。
[0085]
在一实施方式中,该数据恢复装置还包括:
[0086]
第一划分模块,用于根据原始数据块中出错次数确定将数据块分为易出错数据块以及不易出错数据块;详细内容参见上述方法实施例中步骤s301的相关描述。
[0087]
第二划分模块,用于根据存储器中各存储单元的位置将存储器分为多个区域块;详细内容参见上述方法实施例中步骤s302的相关描述。
[0088]
匹配模块,用于根据数据块的分类结果以及存储器的区域划分将数据块和区域块进行匹配。详细内容参见上述方法实施例中步骤s303的相关描述。
[0089]
本发明实施例提供的数据恢复装置,构造了变换矩阵以及辅助数据块,实现了对单块故障数据块以及多块数据故障块的数据恢复;同时基于数据库的出错率以及存储器的
存储快慢区域,将出错率高的数据块对应匹配在存储较块的区域中,减少数据替换的次数和耗费的时长,提高计算速度与系统整体性能。由此,该数据恢复方法可以用于存算一体的高性能存储集群、分布式存储的数据恢复设备等。
[0090]
本发明实施例提供的数据恢复装置,采用新型的数据恢复计算方法,绕过大开销的计算步骤,加速数据恢复过程。在保证存储器数据可靠的目标之上,减少存储器的不稳定时间,提高系统稳定性。
[0091]
本发明实施例提供的数据恢复装置,采用以电压激活式交叉结构存储器件为底层硬件的装置,并设计了特异性的变换矩阵构造方法用于恢复错误数据,高度保证了存储设备中数据的可靠性、以及系统的稳定性。其中,将输入电压与存储单元的阻值控制在一定范围内,减小了硬件层直接出现数据错误的可能性;利用存储器本身的硬件计算能力,在存储器内做错误数据修复的计算操作,减少了和处理器之间的数据传输,降低了对处理器的依赖程度;构造了特殊的变换矩阵进行计算,绕过了部分大开销的计算步骤,大大加速了数据恢复过程,减少了系统的不稳定时间;最后采取了分类思想,对存储硬件与数据块分别进行分类,针对类别将硬件速度与数据出错频率进行匹配,设计了特定的数据编排方案,削减了存储器件各单元时延的不一致问题。
[0092]
本发明实施例提供的数据恢复装置的功能描述详细参见上述实施例中数据恢复方法描述。
[0093]
本发明实施例还提供一种存储介质,如图8所示,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中数据恢复方法的步骤。该存储介质上还存储有音视频流数据,特征帧数据、交互请求信令、加密数据以及预设数据大小等。其中,存储介质可为支持存内计算的存储器,如电阻式随机存取存储器(resistive random-access memory,reram),磁阻随机存取存储器(magnetoresistive random-access memory,mram)、铁电存储器(ferroelectric ram,feram)等;所述存储介质还可以包括上述种类的存储器的组合。
[0094]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为支持存内计算的存储器,如电阻式随机存取存储器(resistive random-access memory,reram),磁阻随机存取存储器(magnetoresistive random-access memory,mram)、铁电存储器(ferroelectric ram,feram)等;所述存储介质还可以包括上述种类的存储器的组合。
[0095]
本发明实施例还提供了一种电子设备,如图9所示,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图9中以通过总线连接为例。
[0096]
处理器51可以为中央处理器(central processing unit,cpu)。处理器51还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0097]
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通
过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的数据恢复方法。
[0098]
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0099]
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图2-6所示实施例中的数据恢复方法。
[0100]
上述电子设备具体细节可以对应参阅图2至图6所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0101]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1