CN113849347B - Data recovery device, method, system and storage medium - Google Patents
Data recovery device, method, system and storage medium Download PDFInfo
- Publication number
- CN113849347B CN113849347B CN202111140978.4A CN202111140978A CN113849347B CN 113849347 B CN113849347 B CN 113849347B CN 202111140978 A CN202111140978 A CN 202111140978A CN 113849347 B CN113849347 B CN 113849347B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- input voltage
- data recovery
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
The invention discloses a data recovery device, method, system and storage medium, the device includes: the memory is a nonvolatile memory with a voltage activated cross structure and comprises a plurality of memory units formed by dividing a beam with a crisscross structure; and the driving part is connected with each row and column in the memory and is used for controlling the memory to read and write data and recover error data. By implementing the invention, the optimal input voltage is determined by adopting a mode of circularly applying voltage, and the problem of data error caused by overlarge resistance value fluctuation can be avoided by adopting the optimal input voltage. Namely, the data recovery method can reduce the probability of data errors and improve the efficiency of data recovery.
Description
Technical Field
The present invention relates to the field of data processing technologies, and in particular, to a data recovery apparatus, method, system, and storage medium.
Background
Under the background of the era of rapid development of big data internet, the data storage pressure of various devices is increasing, so that reasonable storage management of a large amount of data becomes a crucial problem.
At present, in order to ensure data reliability, some common storage devices divide a group of logically connected user data into smaller data blocks, and store the data blocks in different disks in a storage array of a bottom layer in a scattered manner, so that the problem that when one disk fails, the whole data is lost and cannot be recovered is avoided. Meanwhile, a corresponding coding and decoding mechanism is provided to calculate and code the contents of the data blocks which are logically connected in the storage array, and the judgment of whether the data has errors is assisted. After an error is found, the encoded result may be decoded to recover a certain number of original data blocks.
However, the existing data recovery method needs to transmit the data in the memory to the processor for calculation and encoding, and then transmit the encoding result from the processor back to the memory. When the data recovery task is dense and the data volume is large, a large amount of bandwidth resources are occupied by frequent and large-amount data migration, and the performance of the system is seriously reduced; in addition, the basic codec method needs to consume a large amount of computing resources and generate a long time delay during the computation, and during the period of data recovery by the processor, the state of the memory is unstable, and the corresponding storage unit cannot receive the read/write task, so the longer the time delay is, the greater the influence on the system performance is. Under the current environment that the data volume is increasing and the data processing requirement is increasing, the time delay of data recovery is too long, the computing task is too heavy, the system is blocked or even down, and the processing of other tasks is seriously influenced.
Disclosure of Invention
In view of this, embodiments of the present invention provide a data recovery apparatus, method, system and storage medium, so as to solve the technical problem that frequent data migration in the data recovery method in the prior art occupies a large amount of bandwidth resources and reduces system performance.
The technical scheme provided by the invention is as follows:
a first aspect of an embodiment of the present invention provides a data recovery apparatus, including: the memory is a nonvolatile memory with a voltage activated cross structure and comprises a plurality of memory units formed by dividing a beam with a crisscross structure; and the driving part is connected with each row and column in the memory and is used for controlling the memory to read and write data and recover error data.
Optionally, the data recovery apparatus further includes: the output end of the memory is connected with the amplifying part, the output end of the amplifying part is connected with the switching upper-level part, and the driving part and the switching upper-level part are connected with the I/O buffer space and the control center.
A second aspect of an embodiment of the present invention provides a data recovery method, where the data recovery method is used in the data recovery apparatus according to the first aspect of the embodiment of the present invention, and the data recovery method includes: selecting a group of preset input voltages, and applying the input voltages to a group of memory cells of the memory in a circulating manner; calculating the resistance difference value of each memory cell according to the resistance values of different memory cells under different voltages; taking the input voltage corresponding to the memory cell with the minimum resistance difference value as the optimal input voltage; powering up the memory according to the optimal input voltage.
Optionally, selecting a set of preset input voltages and applying the input voltages to a set of memory cells of the memory cyclically includes: selecting a group of preset input voltages; calculating to obtain a plurality of groups of input voltages according to the cyclic application times and the preset input voltage; the cycles are applied to a group of memory cells of the memory according to a plurality of groups of input voltages.
Optionally, powering up the memory according to the optimal input voltage includes: calculating to obtain a first input voltage and a second input voltage according to the optimal input voltage; periodically powering up the memory according to the first input voltage and the second input voltage.
Optionally, the data recovery method further includes: constructing an auxiliary data block according to the original data of the block and the transformation matrix; and when the number of the fault data blocks is 1, carrying out splicing and XOR operation according to a first auxiliary block in the auxiliary data blocks and a normal data block in the original data to obtain the fault data blocks.
Optionally, the data recovery method further includes: when the number of the fault data blocks is larger than 1, obtaining an inverse transformation matrix according to inversion of the transformation matrix; splicing the normal data block and the auxiliary data block to obtain a first vector; and multiplying the first vector and the inverse transformation matrix to obtain a fault data block.
Optionally, the data recovery method further includes: determining to divide the data blocks into error-prone data blocks and error-difficult data blocks according to the error times in the original data blocks; dividing the memory into a plurality of area blocks according to the position of each storage unit in the memory; and matching the data blocks with the area blocks according to the classification result of the data blocks and the area division of the memory.
A third aspect of the embodiments of the present invention provides a data recovery system, including: the voltage applying module is used for selecting a group of preset input voltages and applying the input voltages to a group of memory cells of the memory in a circulating manner; the resistance value calculation module is used for calculating the resistance value difference of each memory cell according to the resistance values of different memory cells under different voltages; the voltage determining module is used for taking the input voltage corresponding to the memory cell with the minimum resistance difference value as the optimal input voltage; and the power-up module is used for powering up the memory according to the optimal input voltage.
A fourth aspect of the embodiments of the present invention provides a computer-readable storage medium, where computer instructions are stored, and the computer instructions are configured to cause a computer to execute the data recovery method according to any one of the first aspect and the first aspect of the embodiments of the present invention.
The technical scheme provided by the invention has the following effects:
according to the data recovery device, method and system and the storage medium, the optimal input voltage is determined in a mode of circularly applying voltage, and the problem of data errors caused by overlarge resistance value fluctuation can be solved by adopting the optimal input voltage. Namely, the data recovery method can reduce the probability of data errors and improve the efficiency of data recovery.
The data recovery method provided by the embodiment of the invention constructs the transformation matrix and the auxiliary data block, and realizes the data recovery of a single fault data block and a plurality of fault data blocks; meanwhile, based on the error rate of the database and the storage speed area of the memory, the data blocks with high error rate are correspondingly matched in the area for storing the blocks, so that the times of data replacement and the consumed time length are reduced, and the calculation speed and the overall performance of the system are improved. Therefore, the data recovery method can be used for storing a high-performance storage cluster in a whole, distributed storage data recovery equipment and the like.
The data recovery method provided by the embodiment of the invention adopts a novel data recovery calculation method, bypasses the calculation step with large overhead and accelerates the data recovery process. On the basis of the goal of ensuring the data reliability of the memory, the instability time of the memory is reduced, and the system stability is improved.
The data recovery method provided by the embodiment of the invention adopts a device which takes a voltage activated cross structure memory device as bottom hardware, and designs a specific transformation matrix construction method for recovering error data, thereby highly ensuring the reliability of data in the memory device and the stability of a system. The input voltage and the resistance value of the storage unit are controlled within a certain range, so that the possibility of data errors in a hardware layer is reduced; by utilizing the hardware computing power of the memory, the computing operation of error data repair is carried out in the memory, so that the data transmission between the memory and the processor is reduced, and the dependence degree on the processor is reduced; a special transformation matrix is constructed for calculation, and partial calculation steps with large cost are bypassed, so that the data recovery process is greatly accelerated, and the unstable time of the system is reduced; finally, a classification idea is adopted to classify the storage hardware and the data blocks respectively, the hardware speed is matched with the data error frequency according to the classification, a specific data arrangement scheme is designed, and the problem of inconsistent time delay of each unit of the storage device is solved.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and other drawings can be obtained by those skilled in the art without creative efforts.
Fig. 1 is a block diagram of a data recovery apparatus according to an embodiment of the present invention;
FIG. 2 is a flow diagram of a data recovery method according to an embodiment of the invention;
FIG. 3 is a flow diagram of a data recovery method according to another embodiment of the invention;
FIG. 4 is a flow diagram of a data recovery method according to another embodiment of the invention;
FIG. 5 is a flow diagram of a data recovery method according to another embodiment of the invention;
FIG. 6 is a flow diagram of a method of data recovery according to another embodiment of the invention;
fig. 7 is a block diagram of a data recovery system according to an embodiment of the present invention;
FIG. 8 is a schematic structural diagram of a computer-readable storage medium provided in accordance with an embodiment of the present invention;
fig. 9 is a schematic structural diagram of an electronic device provided in an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be obtained by a person skilled in the art without making any creative effort based on the embodiments in the present invention, belong to the protection scope of the present invention.
An embodiment of the present invention provides a data recovery apparatus, as shown in fig. 1, the apparatus includes: the memory is a nonvolatile memory with a voltage activated cross structure and comprises a plurality of memory units formed by dividing a beam with a crisscross structure; and the driving part is connected with each row and column in the memory and is used for controlling the memory to read and write data and recover error data. Specifically, the memory cells of the memory are divided by crossbeams with crisscross structures, each divided lattice point is a memory cell, and each memory cell can store one bit of data. The driver on one side of the memory applies an activation voltage to a certain row to dynamically change the internal resistance of each memory cell of the row, thereby realizing data reading and writing and error data recovery by using the principle of an analog circuit.
The data recovery device provided by the embodiment of the invention adopts the nonvolatile memory with the voltage activated cross structure as a storage structure, and the storage structure can realize a storage function; meanwhile, the voltage activated cross structure memory also has hardware computing capability, so that the computing operation of error data recovery can be performed in the memory, the data transmission between the memory and the processor is reduced, the system energy consumption is reduced, and the running speed is improved. Therefore, the data recovery device avoids frequent data migration between the memory and the processor, and improves the performance of the system.
In one embodiment, the data recovery apparatus further comprises: the output end of the memory is connected with the amplifying part, the output end of the amplifying part is connected with the switching upper-level part, and the driving part and the switching upper-level part are connected with the I/O buffer space and the control center.
Wherein the driving part is connected with each row and column of the crossed cross bars of the memorizer; the amplifying part is connected to the tail end of each column of the memory and is used for amplifying electric signals such as current and voltage signals output by the memory; the output end of the amplifying part is connected in series with the input end of the switching up-shift part, and the driving part is connected to the I/O buffer space and the control center together with the switching up-shift part. Specifically, the switching and uploading component is used for controlling reading and writing of the memory or storing the data block into an I/O cache space; the control center is used for receiving user requests and sending instructions to regulate the components at the lower layer, for example, receiving signals sent by a CPU (central processing unit), or an auxiliary memory realizes read-write functions.
Particularly, through the connection of the driving component and the memory, the driving component powers on the memory, and the calculation of matrix vector multiplication can be efficiently carried out by utilizing the physical characteristics of the memory. For example, input voltage V i Applied to each row of the memory, the voltage and the resistance R at the intersection of each row and column i,j Multiplying and accumulating the reciprocal of (this operation is done automatically by the hardware at power-on), the output current is available at the end of each columnWherein, rownum is the row number of a block of cross structure memory. The magnitude of the current thus obtained is the result of vector multiplication of the vector of input voltage values and the vector of conductance values (the reciprocal of the resistance) of the column.
In practical use, since the conductivity of the memory cell varies according to various factors such as input voltage, even if a group of memory cells is set to a certain resistance value in advance, the actual resistance values of the cells will be different during operation. If the resistance value fluctuation is too large, data errors can be caused directly, so that the preset resistance values which are desirable are required to be known, abnormal sudden changes can not be generated under certain input voltage, and the difference between units in the same group can be controlled as much as possible.
Therefore, an embodiment of the present invention provides a data recovery method, where the data recovery method is used in the data recovery device described in the foregoing embodiment. As shown in fig. 2, the method comprises the steps of:
step S101: a set of predetermined input voltages is selected and applied cyclically to a set of memory cells of the memory.
In one embodiment, the preset input voltage may be selected according to the following formula, that is, the preset input voltage is expressed as: 2+ { 1/(e × cycle) \8230, 1/(e × 4), 1/(e × 3), 1/(e × 2), 1/(e × 1), 2/e } V; and then, applying cycle to the memory according to the preset input voltage, wherein the cycle value can be selected according to the tolerance of hardware, for example, 64 can be adopted, and other values can also be adopted. Specifically, when the cycle takes 64, the voltage may be applied cyclically 64 times. When the voltage is applied for the first time, the cycle takes 1, and a group of preset input voltages are obtained through calculation according to the formula; when the voltage is applied for the second time, the cycle takes 2, and a group of preset input voltages are obtained through calculation according to the formula; and so on until 64 sets of preset input voltages are obtained. The resulting sets of different input voltages may then be applied to each set of memory cells.
Step S102: calculating the resistance difference value of each memory cell according to the resistance values of different memory cells under different voltages; specifically, different voltages are applied to each group of memory cells, resistance change conditions of the different memory cells under different voltages can be collected and recorded, resistance of the different memory cells under different voltages can be collected specifically, and then resistance difference values among the memory cells in one group of memory cells under each voltage are calculated.
Step S103: taking the input voltage corresponding to the memory cell with the minimum resistance difference value as the optimal input voltage; specifically, after calculating the resistance difference value at each voltage, all the resistance difference values may be compared to determine the minimum value of the resistance difference values, and then the corresponding voltage may be used as the optimal input voltage V w . At this time, the average resistance value of each memory cell under the resistance value difference can also be determined.
Step S104: powering up the memory according to the optimal input voltage. Specifically, when the optimum input voltage is calculated, the power-on mode for the memory cell can be set according to the voltage. Among them, there are two power-on modes for controlling the storage process: 1/2V w Mode and 1/3V w Mode(s). The two modes have advantages and disadvantages, and the long-term execution of only selecting a single mode can enlarge the influence of the defects, so that the two modes are periodically and alternately configured by adopting the 1/2V first input voltage when the power is on w And a second input voltage of 1/3V w The memory is powered on periodically. So as to reduce the influence of single mode, wherein the period d is the latest continuous working time of the memory.
According to the data recovery method provided by the embodiment of the invention, the optimal input voltage is determined by adopting a cyclic voltage application mode, and the problem of data errors caused by overlarge resistance value fluctuation can be solved by adopting the optimal input voltage. Namely, the data recovery method can reduce the probability of data errors and improve the efficiency of data recovery.
As an optional implementation manner of the embodiment of the present invention, as shown in fig. 3 and fig. 4, the data recovery method further includes the following steps:
step S201: and constructing an auxiliary data block according to the blocked original data and the transformation matrix.
In one embodiment, when partitioning the original data, the number of blocks into which the original data is partitioned may be set to be blocknum, the number of bits per block of data may be datalen, and the number of blocks of the auxiliary data block may be hellpblocknum.
In one embodiment, the number of rows and columns of the matrix in the transformation matrix may be determined according to the setting parameters. Wherein, the row number of the matrix is matrixrows = blocknum + helpblocknum, and the column number of the matrix is matrixcols = blocknum. To support the data recovery function, the matrix needs to satisfy the invertible requirement. The matrix M can be divided into an upper part and a lower part, the upper part Ma is a block num × block num unit matrix, and the lower part Mb is determined as follows: (1) Multiplying the matrix K by a non-0 vector a to obtain M1, wherein the selection of the a needs to ensure that the number of '1' in the M1 is the maximum and the a is preferentially distributed on a main diagonal; (2) Replacing all elements in the first row of M1 with '1' to obtain Mb; (3) Finally each element in the matrix M is extended to a binary bit representation of w x w, w = log2 (datalen) rounded up. Wherein the matrix K is:
in this matrix K, X = { X = 1 ,x 2 ,…,x R-1 ,x R };Y={y 1 ,y 2 ,…,y M-1 ,y M }. Wherein x i Is the value of i-1 in binary, y i Is 2 in binary L-1 A value of + i-1. x is the number of i And y i Under GF (2) L ) Varying from one another. Where L is the value of datalen, M<2 L-1 And R is<2 L-1 。
In one embodiment, when constructing the auxiliary data block from the original data and the transformation matrix, the obtained transformation matrix M may be multiplied by the original data vector to obtain the auxiliary data block. The auxiliary data block may be denoted as B0, B1, B2, \8230;, bhelpnum-1. Specifically, after obtaining the auxiliary data block, each matrix G therein may be transposed to obtain a matrix G T G is T And (4) arranging the binary matrix elements into storage units with the size of (helpblocknum × datalen), and storing one binary matrix element into one unit. The data blocks are arranged as column vectors to the input end of each row, and the calculation can be carried out by electrifying and activating the related storage row.
Step S202: and when the number of the fault data blocks is 1, carrying out splicing and XOR operation according to a first auxiliary block in the auxiliary data blocks and a normal data block in the original data to obtain the fault data blocks. Specifically, after the auxiliary data block is constructed, the failure data can be obtained by calculation using the auxiliary data block and the normal data block during data recovery. When the auxiliary data block is used for data recovery, the number of the fault data blocks is required to be determined to be not more than the hellpblocknum block. In a particular embodiment, the failed data block may be an erroneous or lost data block.
In one embodiment, when the number of failed data blocks errorblock = 1: assuming that the faulty data block is Di, a first auxiliary block B0 of the auxiliary data blocks is obtained, where the auxiliary block B0 is obtained by multiplying the original data by a row of the matrix Mb, each of which is a unit cell. Then, splicing the normal data blocks of the residual blocknum-1 blocks in the original data with a first auxiliary block B0, and placing the B0 to the position of the lost data block to obtain a vector: { D 0 ,D 1 ,D 2 ,D i-1 ,B 0 ,D i+1 ,…,D blocknum-1 }. And finally, carrying out exclusive OR operation on each component in the vector in sequence to obtain a fault data block Di. Specifically, the exclusive-or operation may be expressed as:when the exclusive-or operation is performed, the above components can be directly arranged to corresponding positions in the cross structure storage unit with the size of blocknum × datalen, and the exclusive-or operation can be realized by powering up and activating the relevant rows.
Step S203: and when the number of the fault data blocks is more than 1, obtaining an inverse transformation matrix according to inversion of the transformation matrix. Specifically, when the number of the fault data blocks is 1<errorblock<If = helpblocknum, the failure data block is assumed to be { Dp0, dp1, dp2 \8230; }. Then inverse transformation is first performed on the generated transformation matrix M, i.e. matrix M is inverted to obtain matrix M -1 。
Step S204: splicing the normal data block and the auxiliary data block to obtain a first vector; specifically, when an error block fault data block exists in an original data block, the remaining normal data block has a block num-error block, then error block auxiliary data blocks are selected from the auxiliary data blocks, and the block num-error block normal data block and the error block auxiliary data blocks are spliced to obtain first vectors { Dh0, dh1, dh2 \8230;, dblock num-1, \8230;, bp0, bp1, bp2, \8230; }.
Step S205: and multiplying the first vector and the inverse transformation matrix to obtain a fault data block. Specifically, when determining a faulty data block, the obtained first vector and the matrix M obtained by inversion are used -1 Multiplying, wherein the obtained result comprises a normal data block and a fault data block, namely the original data block can be directly obtained; the raw data block is denoted as { D0, D1, D2, \8230;, dblocknum-1}. When the first vector and the inverse transformation matrix are multiplied, the matrix M can be directly multiplied -1 The data are directly arranged in the storage unit in a one-to-one correspondence manner, and calculation is carried out in a similar arrangement manner when the auxiliary blocks are constructed.
As is apparent from the data recovery apparatus, it is necessary to apply an activation voltage to the memory cell when performing storage. However, the farther the memory cell is from the driving section, the faster the potential difference falls, and the storage time of the memory is very sensitive to the storage voltage, so it is easy to write data to a group of memory cells at the same time, but the write time varies greatly between the cells. It can be seen that the speed of memory cells having different physical locations in a memory array is not uniform.
When the original data is short, the storage space in the device can accommodate a plurality of data recovery tasks to be processed simultaneously, and if the tasks are not intensive, a part of the storage units can be selected for calculation. Meanwhile, there is also a high-low fraction of the error frequency for a data block. Therefore, data with a high error rate can be associated with a memory area written faster.
Therefore, as an optional implementation manner of the embodiment of the present invention, as shown in fig. 5 and fig. 6, the data recovery method further includes the following steps:
step S301: determining to divide the data blocks into error-prone data blocks and error-uneasy data blocks according to the error times in the original data blocks; specifically, when the original data block is divided, a metric may be set according to the error frequency of the data block.
In one embodiment, the metric is expressed as: wherein insnum W The number of modified instructions, insnum, for the data block within a preset time epoch WR For all instruction numbers of the data block in the epoch, wrong _ block is the error times of the data block in the epoch, and wrong _ all is the total error times of all data blocks in the epoch. The value of the preset time epoch can be adjusted according to actual conditions.
In one embodiment, after determining the metrics, the original data blocks can be divided into two categories according to the metrics: error prone data blocks and error less prone data blocks. Wherein, the error-prone data block can be a measurement index Wrong Frequency > =0.3; the measurement index Wrong Frequency of the data block which is not easy to make errors is less than 0.3.
Step S302: dividing the memory into a plurality of area blocks according to the position of each storage unit in the memory; specifically, in order to correspondingly match the data with a high error rate with the storage area written faster, after the error rate of the data block is calculated, it is necessary to determine how fast the storage area is written.
In one embodiment, the memory unit is divided into n regions with different speeds according to the distance from the memory driving component, and the division standard can be dynamically changed according to actual requirements. For example, when calculations are required, starting with the column closest to the drive, each block num datalen 2 column is a block of regions, and the speed decreases sequentially for regions further away. When storage is needed, when a storage area is divided, the number of area columns is sequentially increased by datalen, 3 datalen, 5 datalen and 7 datalen, \ 8230, (2 i-1) # datalen in a recursion mode, namely, a first block area comprises datalen columns, a second block area comprises 3 datalen columns, and the like, and finally, the storage unit is divided into n blocks.
Step S303: and matching the data blocks with the area blocks according to the classification result of the data blocks and the area division of the memory. Specifically, after dividing the data block and the storage area, selecting error-prone data, sorting the error-prone data in a descending manner according to a measurement index Wrong Frequency, and sequentially and preferentially allocating the error-prone data to the faster area block on the voltage activated cross structure memory. The remaining data blocks of the original data blocks, except for the error-prone data blocks, are then allocated over the remaining area of the memory. The distribution mode of the rest data blocks is as follows: taking the coordinate [ i, j ] of the first data unit of the data block as an allocation reference:
i=(AppTime*EpochTime)mod(SectionRow)
j=(AppTime*EpochTime)mod(SectionCol)
AppTime is the time the current program has been running, sectionalrow is the number of rows in the memory area, and sectionalcol is the number of columns in the memory area. Thus, the allocation of the original data blocks on the memory can be completed in the above manner.
According to the data recovery method provided by the embodiment of the invention, the transformation matrix and the auxiliary data block are constructed, and the data recovery of a single fault data block and a plurality of fault data blocks is realized; meanwhile, based on the error rate of the database and the storage speed area of the memory, the data blocks with high error rate are correspondingly matched in the area for storing the blocks, so that the times of data replacement and the consumed time length are reduced, and the calculation speed and the overall performance of the system are improved. Therefore, the data recovery method can be used for storing a high-performance storage cluster in a whole body, a data recovery device in distributed storage and the like.
The data recovery method provided by the embodiment of the invention adopts a novel data recovery calculation method, bypasses the calculation step with large overhead and accelerates the data recovery process. On the basis of the goal of ensuring the reliability of the data of the memory, the instability time of the memory is reduced, and the system stability is improved.
The data recovery method provided by the embodiment of the invention adopts a device which takes a voltage activated cross structure memory device as bottom hardware, and designs a specific transformation matrix construction method for recovering error data, thereby highly ensuring the reliability of data in the memory device and the stability of a system. The input voltage and the resistance value of the storage unit are controlled within a certain range, so that the possibility of data errors in a hardware layer is reduced; by utilizing the hardware computing capability of the memory, the computing operation of error data recovery is carried out in the memory, so that the data transmission between the memory and the processor is reduced, and the dependence degree on the processor is reduced; a special transformation matrix is constructed for calculation, and partial calculation steps with large cost are bypassed, so that the data recovery process is greatly accelerated, and the unstable time of the system is reduced; finally, a classification idea is adopted to classify the storage hardware and the data blocks respectively, the hardware speed is matched with the data error frequency according to the classification, a specific data arrangement scheme is designed, and the problem of inconsistency of time delay of each unit of the storage device is solved.
An embodiment of the present invention further provides a data recovery system, as shown in fig. 7, the system includes:
the voltage application module is used for selecting a group of preset input voltages and applying the input voltages to a group of storage units of the memory in a circulating manner; for details, refer to the related description of step S101 in the above method embodiment.
The resistance value calculation module is used for calculating the resistance value difference value of each storage unit according to the resistance values of different storage units under different voltages; for details, refer to the related description of step S102 in the above method embodiment.
The voltage determining module is used for taking the input voltage corresponding to the memory cell with the minimum resistance difference value as the optimal input voltage; for details, refer to the related description of step S103 in the above method embodiment.
And the power-up module is used for powering up the memory according to the optimal input voltage. For details, refer to the related description of step S104 in the above method embodiment.
According to the data recovery method provided by the embodiment of the invention, the optimal input voltage is determined by adopting a cyclic voltage application mode, and the problem of data errors caused by overlarge resistance value fluctuation can be solved by adopting the optimal input voltage. Namely, the data recovery method can reduce the probability of data errors and improve the efficiency of data recovery.
In one embodiment, the data recovery apparatus further comprises:
a construction module for constructing an auxiliary data block according to the partitioned original data and the transformation matrix; for details, refer to the related description of step S201 in the above method embodiment.
And the first recovery module is used for performing splicing and exclusive OR operation according to a first auxiliary block in the auxiliary data blocks and a normal data block in the original data to obtain the fault data blocks when the number of the fault data blocks is 1. For details, refer to the related description of step S202 in the above method embodiment.
The inverse transformation module is used for obtaining an inverse transformation matrix according to the inversion of the transformation matrix when the number of the fault data blocks is more than 1; for details, refer to the related description of step S203 in the above method embodiment.
The splicing module is used for splicing the normal data block and the auxiliary data block to obtain a first vector; for details, refer to the related description of step S204 in the above method embodiment.
And the second recovery module is used for multiplying the first vector and the inverse transformation matrix to obtain a fault data block. For details, refer to the related description of step S205 in the above method embodiment.
In one embodiment, the data recovery apparatus further comprises:
the first dividing module is used for determining to divide the data blocks into error-prone data blocks and error-uneasy data blocks according to the error times in the original data blocks; for details, refer to the related description of step S301 in the above method embodiment.
The second dividing module is used for dividing the memory into a plurality of area blocks according to the position of each storage unit in the memory; for details, refer to the related description of step S302 in the above method embodiment.
And the matching module is used for matching the data blocks with the area blocks according to the classification result of the data blocks and the area division of the memory. For details, refer to the related description of step S303 in the above method embodiment.
The data recovery device provided by the embodiment of the invention constructs the transformation matrix and the auxiliary data block, and realizes data recovery of a single fault data block and a plurality of fault data blocks; meanwhile, based on the error rate of the database and the storage speed area of the memory, the data blocks with high error rate are correspondingly matched in the area for storing the blocks, so that the times of data replacement and the consumed time length are reduced, and the calculation speed and the overall performance of the system are improved. Therefore, the data recovery method can be used for storing a high-performance storage cluster in a whole, distributed storage data recovery equipment and the like.
The data recovery device provided by the embodiment of the invention adopts a novel data recovery calculation method, bypasses the calculation step with large overhead and accelerates the data recovery process. On the basis of the goal of ensuring the data reliability of the memory, the instability time of the memory is reduced, and the system stability is improved.
The data recovery device provided by the embodiment of the invention adopts a device which takes a voltage activated cross structure memory device as bottom hardware, and designs a specific transformation matrix construction method for recovering error data, thereby highly ensuring the reliability of data in storage equipment and the stability of a system. The input voltage and the resistance value of the storage unit are controlled within a certain range, so that the possibility of data errors in a hardware layer is reduced; by utilizing the hardware computing capability of the memory, the computing operation of error data recovery is carried out in the memory, so that the data transmission between the memory and the processor is reduced, and the dependence degree on the processor is reduced; a special transformation matrix is constructed for calculation, and partial calculation steps with large overhead are bypassed, so that the data recovery process is greatly accelerated, and the unstable time of the system is reduced; finally, a classification idea is adopted to classify the storage hardware and the data blocks respectively, the hardware speed is matched with the data error frequency according to the classification, a specific data arrangement scheme is designed, and the problem of inconsistent time delay of each unit of the storage device is solved.
For a detailed description of the functions of the data recovery apparatus provided in the embodiment of the present invention, reference is made to the description of the data recovery method in the above embodiment.
An embodiment of the present invention further provides a storage medium, as shown in fig. 8, on which a computer program 601 is stored, where the instructions, when executed by a processor, implement the steps of the data recovery method in the foregoing embodiments. The storage medium is also stored with audio and video stream data, characteristic frame data, an interactive request signaling, encrypted data, preset data size and the like. The storage medium may be a memory supporting memory computation, such as a Resistive random access memory (ReRAM), a Magnetoresistive Random Access Memory (MRAM), a Ferroelectric memory (FeRAM), or the like; the storage medium may also comprise a combination of memories of the kind described above.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by a computer program, which can be stored in a computer-readable storage medium, and when executed, can include the processes of the embodiments of the methods described above. The storage medium may be a memory supporting memory computation, such as a Resistive random access memory (ReRAM), a Magnetoresistive Random Access Memory (MRAM), a Ferroelectric memory (FeRAM), or the like; the storage medium may also comprise a combination of memories of the kind described above.
An embodiment of the present invention further provides an electronic device, as shown in fig. 9, the electronic device may include a processor 51 and a memory 52, where the processor 51 and the memory 52 may be connected through a bus or in another manner, and fig. 9 takes the connection through the bus as an example.
The processor 51 may be a Central Processing Unit (CPU). The Processor 51 may also be other general purpose processors, digital Signal Processors (DSPs), application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs) or other Programmable logic devices, discrete Gate or transistor logic devices, discrete hardware components, or combinations thereof.
The memory 52, which is a non-transitory computer readable storage medium, may be used to store non-transitory software programs, non-transitory computer executable programs, and modules, such as the corresponding program instructions/modules in the embodiments of the present invention. The processor 51 executes various functional applications and data processing of the processor by executing non-transitory software programs, instructions and modules stored in the memory 52, that is, implements the data recovery method in the above-described method embodiment.
The memory 52 may include a storage program area and a storage data area, wherein the storage program area may store an operating device, an application program required for at least one function; the storage data area may store data created by the processor 51, and the like. Further, the memory 52 may include high speed random access memory, and may also include non-transitory memory, such as at least one magnetic disk storage device, flash memory device, or other non-transitory solid state storage device. In some embodiments, the memory 52 may optionally include memory located remotely from the processor 51, and these remote memories may be connected to the processor 51 via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The one or more modules are stored in the memory 52 and when executed by the processor 51 perform the data recovery method in the embodiment shown in fig. 2-6.
The details of the electronic device may be understood by referring to the corresponding descriptions and effects in the embodiments shown in fig. 2 to fig. 6, which are not described herein again.
Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations fall within the scope defined by the appended claims.
Claims (6)
1. A data recovery method is used for a data recovery device comprising a memory and a driving component, wherein the memory is a nonvolatile memory with a voltage activated cross structure, the memory comprises a plurality of memory cells divided by a cross beam with a cross structure, the driving component is connected with each row and column in the memory and controls the memory to carry out data reading and writing and error data recovery, and the data recovery method comprises the following steps:
selecting a group of preset input voltages;
calculating to obtain a plurality of groups of input voltages according to the cyclic application times and the preset input voltage;
cyclically applying a plurality of sets of input voltages to a set of memory cells of the memory;
calculating the resistance difference value of each memory cell according to the resistance values of different memory cells under different voltages;
taking the input voltage corresponding to the memory cell with the minimum resistance difference value as the optimal input voltage;
powering up the memory according to the optimal input voltage;
constructing an auxiliary data block according to the original data of the block and the transformation matrix;
when the number of the fault data blocks is 1, carrying out splicing and XOR operation according to a first auxiliary block in the auxiliary data blocks and a normal data block in the original data to obtain the fault data blocks;
when the number of the fault data blocks is larger than 1, obtaining an inverse transformation matrix according to inversion of the transformation matrix;
splicing the normal data block and the auxiliary data block to obtain a first vector;
and multiplying the first vector and the inverse transformation matrix to obtain a fault data block.
2. The data recovery method of claim 1, wherein powering up the memory according to the optimal input voltage comprises:
calculating to obtain a first input voltage and a second input voltage according to the optimal input voltage;
periodically powering up the memory according to the first input voltage and the second input voltage.
3. The data recovery method of claim 1, further comprising:
determining to divide the data blocks into error-prone data blocks and error-difficult data blocks according to the error times in the original data blocks;
dividing the memory into a plurality of area blocks according to the position of each storage unit in the memory;
and matching the data blocks with the area blocks according to the classification result of the data blocks and the area division of the memory.
4. The data recovery method of claim 1, wherein the data recovery apparatus further comprises: an amplifying part, a switching upshifting part, an I/O buffer space and a control center,
the output end of the memory is connected with the amplifying part, the output end of the amplifying part is connected with the switching up-shift part, and the driving part and the switching up-shift part are connected with the I/O buffer space and the control center.
5. A data recovery system, wherein the data recovery system is used for a data recovery device including a memory and a driving unit, the memory is a nonvolatile memory with a voltage activated cross structure, the memory includes a plurality of memory cells divided by crossbeams with a cross structure, the driving unit is used for connecting with each row and column in the memory and controlling the memory to perform data reading and writing and error data recovery, the data recovery system includes:
the voltage applying module is used for selecting a group of preset input voltages; calculating to obtain a plurality of groups of input voltages according to the cyclic application times and the preset input voltage; cyclically applying a plurality of sets of input voltages to a set of memory cells of the memory;
the resistance value calculation module is used for calculating the resistance value difference value of each storage unit according to the resistance values of different storage units under different voltages;
the voltage determining module is used for taking the input voltage corresponding to the memory cell with the minimum resistance difference value as the optimal input voltage;
the power-up module is used for powering up the memory according to the optimal input voltage;
the data block construction module is used for constructing an auxiliary data block according to the blocked original data and the transformation matrix;
the first operation module is used for carrying out splicing and XOR operation according to a first auxiliary block in the auxiliary data blocks and a normal data block in the original data to obtain fault data blocks when the number of the fault data blocks is 1;
the transformation module is used for obtaining an inverse transformation matrix according to inversion of the transformation matrix when the number of the fault data blocks is larger than 1;
the splicing module is used for splicing the normal data block and the auxiliary data block to obtain a first vector;
and the second operation module is used for multiplying the first vector and the inverse transformation matrix to obtain a fault data block.
6. A computer-readable storage medium storing computer instructions for causing a computer to perform the data recovery method of any one of claims 1-4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111140978.4A CN113849347B (en) | 2021-09-27 | 2021-09-27 | Data recovery device, method, system and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111140978.4A CN113849347B (en) | 2021-09-27 | 2021-09-27 | Data recovery device, method, system and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849347A CN113849347A (en) | 2021-12-28 |
CN113849347B true CN113849347B (en) | 2022-11-11 |
Family
ID=78980732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111140978.4A Active CN113849347B (en) | 2021-09-27 | 2021-09-27 | Data recovery device, method, system and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113849347B (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335220A (en) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | Transaction recovery method and apparatus for storage device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023922A1 (en) * | 2001-07-25 | 2003-01-30 | Davis James A. | Fault tolerant magnetoresistive solid-state storage device |
KR20210037905A (en) * | 2019-09-30 | 2021-04-07 | 에스케이하이닉스 주식회사 | Electronic device |
US11139026B2 (en) * | 2020-02-05 | 2021-10-05 | Intel Corporation | Variable reference based sensing scheme |
-
2021
- 2021-09-27 CN CN202111140978.4A patent/CN113849347B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335220A (en) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | Transaction recovery method and apparatus for storage device |
Also Published As
Publication number | Publication date |
---|---|
CN113849347A (en) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301167B2 (en) | Technologies for providing multiple tier memory media management | |
CN110618895B (en) | Data updating method and device based on erasure codes and storage medium | |
US9823968B1 (en) | Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same | |
US20180358989A1 (en) | Non-volatile Storage Systems With Application-Aware Error-Correcting Codes | |
US11164652B2 (en) | Two-layer code with low parity cost for memory sub-systems | |
WO2015095850A1 (en) | Method to distribute user data and error correction data over different page types by leveraging error rate variations | |
CN112114996A (en) | Techniques for preserving error correction capability in computing near memory operations | |
US20180351582A1 (en) | Adaptive outer code for consistent overprovisioning (op) level | |
EP3754563A1 (en) | Technologies for performing in-memory training data augmentation for artificial intelligence | |
EP3739457B1 (en) | Technologies for performing macro operations in memory | |
KR20110015269A (en) | Memory system and programming method thereof | |
US20190317857A1 (en) | Technologies for providing error correction for row direction and column direction in a cross point memory | |
WO2024159956A1 (en) | Cyclic redundancy check processing method, apparatus and circuit, electronic device, and medium | |
US20140032836A1 (en) | Buffer for raid controller with disabled post write cache | |
US12111731B2 (en) | Cooperative memory subsystem data recovery | |
CN111752744A (en) | Techniques for providing a scalable architecture for performing computing operations in memory | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
CN112131038A (en) | Techniques for providing ECC pre-provisioning and processing for cross-point memory and compute operations | |
CN114968648A (en) | Apparatus and method for using error correction code in memory system | |
US10289348B2 (en) | Tapered variable node memory | |
CN113849347B (en) | Data recovery device, method, system and storage medium | |
TW201526002A (en) | Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency | |
US11023320B2 (en) | Technologies for providing multiple levels of error correction | |
US20190228809A1 (en) | Technologies for providing high efficiency compute architecture on cross point memory for artificial intelligence operations | |
US20190272173A1 (en) | Technologies for providing adaptive memory media management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |