CN111580750B - Method for solving STT-RAM cache write failure - Google Patents

Method for solving STT-RAM cache write failure Download PDF

Info

Publication number
CN111580750B
CN111580750B CN202010214371.5A CN202010214371A CN111580750B CN 111580750 B CN111580750 B CN 111580750B CN 202010214371 A CN202010214371 A CN 202010214371A CN 111580750 B CN111580750 B CN 111580750B
Authority
CN
China
Prior art keywords
error correction
cache block
data
bit
stt
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.)
Expired - Fee Related
Application number
CN202010214371.5A
Other languages
Chinese (zh)
Other versions
CN111580750A (en
Inventor
章铁飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN202010214371.5A priority Critical patent/CN111580750B/en
Publication of CN111580750A publication Critical patent/CN111580750A/en
Priority to AU2020103371A priority patent/AU2020103371A4/en
Application granted granted Critical
Publication of CN111580750B publication Critical patent/CN111580750B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The invention provides a method for solving STT-RAM cache write failure, which balances the error correction capability and the storage cost of an error correction code. S1, when initiating data writing operation, after determining the target cache block to be written, reading out the old data bitwise of the target cache block and comparing the old data bitwise with the new data bitwise, calculating and counting the total data bit number n of the STT-RAM unit corresponding to the current data bit, which will be switched from 0 to 1; s2, comparing n with a threshold value K th If n is greater than K th Error correction is carried out by adopting the extended error correction code, if n is less than or equal to K th If so, error correction is carried out by adopting a default error correction code; s3, when writing the cache block, setting the flag bit of the target cache block label, and marking the error correction code type of the target cache block; and S4, when the cache block data is read, the flag bit of the cache block label is read at the same time, the adopted error correction code type is determined according to the flag bit, and the cache block is sent to the corresponding error correction code decoder for error correction.

Description

Method for solving STT-RAM cache write failure
Technical Field
The invention relates to a method for solving STT-RAM cache write failure.
Background
Compared with the traditional SRAM memory, the Spin Transfer Torque RAM (STT-RAM) as a novel memory has the advantages of low static energy consumption, high storage density, high reading speed, good compatibility with CMOS technology and the like, so the STT-RAM is expected to become the next-generation on-chip cache of a computer. STT-RAM also has significant disadvantages, including write failures. STT-RAM memory cells are primarily Magnetic Tunnel Junctions (MTJs) that include primarily a reference layer and a free layer. The magnetization direction of the reference layer is fixed horizontally, while the magnetization direction of the free layer is either in the same direction as the reference layer or in the opposite direction. When the magnetization directions of the reference layer and the free layer are opposite or the same, the magnetic tunnel junction presents two resistance states of low or high, which respectively represent logic values 0 or 1. Thus, writing data to the STT-RAM cell essentially changes the magnetization direction of the free layer.
When writing data, if the new data is different from the original data of the STT-RAM memory cell, the magnetization direction of the free layer needs to be changed. Mainly injecting a write current I into an STT-RAM cell write And hold t write The magnetization direction of the free layer is changed in time, but the magnetization direction may not be changed, i.e., there is a certain possibility of failure in the write operation, which is called a write failure. Probability of write failure of a single STT-RAM cellHowever, if the number of data bits of the data written into the cache block is large, the number of data bits in which write failure may occur is also large. In addition, the probability of occurrence of a write failure of an STT-RAM memory cell from a logic value 0 to 1 is 100 times greater than that of a write failure from 1 to 0. Therefore, the number of write-fail data bits of the cache block is proportional to the number of data bits for switching from logic values 0 to 1 between old and new data.
The traditional solution to write failure is to use error correction codes. As long as the number of error data bits which fail to be written in the cache block does not exceed the error correction capability of the error correction code, the write operation is successful; if the number of different data bits between the new data and the old data to be written is large, the number of write failure error bits appearing in the cache block is too large, the error data cannot be corrected by the error correcting code, and the normal operation of the program is influenced. The main reason for the above problems is that the data bit number of the error correcting code of the cache block is fixed, and the error correcting capability is constant; and the different bit numbers of the new data and the old data of the cache block are obviously different. Different cache blocks, different write update states, and error correction codes with different error correction capabilities need to be set. If the error correcting codes with strong error correcting capability are adopted, the storage cost is overlarge; if error correction codes with default error correction capability are adopted, the error correction capability is insufficient.
Disclosure of Invention
The invention aims to overcome the defects in the prior art and provides a method for solving the cache write failure of STT-RAM, which balances the error correction capability of an error correction code and the storage cost.
The technical scheme adopted by the invention for solving the problems is as follows: a method for solving the problem of STT-RAM cache write failure is characterized in that: the method comprises the following steps:
s1, when a data writing operation is initiated, after a target cache block to be written is determined, old data bitwise and new data bitwise of the target cache block are read out and compared, and the total data bit n for counting the switching of 0 to 1 of an STT-RAM unit corresponding to the current data bit is calculated;
s2, comparing n with a threshold value K th If n is greater than K th Then error correction is carried out by adopting the extended error correcting code, if n is less than or equal to K th Then using default error correction codeCorrecting errors;
s3, when writing the cache block, setting the flag bit of the target cache block label, and marking the error correction code type of the target cache block;
and S4, when the cache block data is read, the flag bit of the cache block label is read at the same time, the adopted error correction code type is determined according to the flag bit, and the cache block is sent to the corresponding error correction code decoder for error correction.
The invention calculates and counts the total data bit n of switching from 0 to 1 of an STT-RAM unit corresponding to the current data bit, and comprises the following steps: reading old data in a target cache block, inverting the old data, performing bitwise AND operation on the old data and corresponding new data, if the output value is 1, indicating that the STT-RAM unit corresponding to the current data bit is switched from 0 to 1, and taking the output of each bit as the input of a Hamming distance calculator, wherein the output of the Hamming distance calculator is the total data bit number n of the STT-RAM unit corresponding to the current data bit, which is switched from 0 to 1. The whole calculation circuit is a combinational circuit, so no extra delay is introduced.
Threshold value K of the invention th The calculation steps are as follows: calculating threshold value K th When the system allows the upper limit of the probability of the occurrence of the write failure of the cache block to be e, the error correction capability of the error correction code of the cache block is k data bits, the number of the data bits of the cache block with the write failure is m, and when m is greater than k, the current write operation fails, so that the failure probability of the write operation is P (m is greater than or equal to (k +1)), and the following requirements are met:
P(m≥(k+1))<e,
because the default error correcting code adopts 1-bit error correction, K is 1, and the minimum m value met by calculation according to the Chernov probability formula is K th
The default error correcting code and the extended error correcting code of the invention are both oriented to a cache block with 64bytes, wherein the default error correcting code adopts a SECDED code with 1-bit error correction and 2-bit error detection, and the length of occupied data is 11 bits; the extended error correcting code adopts 4EC5ED codes with 4 bits of error correction and 5 bits of error detection, and the data length is 41 bits.
For the extended error correcting code, the upper limit of the probability of write failure of a cache block allowed by a system is e, the error correcting capability of the cache block is k data bits, the number of the data bits of the cache block with write failure is m, the failure probability of write operation is P (m is more than or equal to (k +1)), and the following requirements are met:
P(m≥(k+1))<e,
aiming at the size of a cache block being 64Bytes, calculating according to a Cherov probability formula to obtain the maximum value of k being 4; to meet the requirements of the system, in the worst case, the extended error correction code only needs to have the capability of correcting 4-bit error data.
For a default error correcting code and an extended error correcting code, the actually updated data bits in a cache block are far smaller than the capacity of 512 bits of the cache block, and the number of write failure data bits of most cache blocks is less than or equal to 1; 80% of the cache blocks in the cache set can be allocated default error correction codes and 20% of the cache blocks can be allocated extended error correction codes.
The step S3 of the present invention specifically includes: when the total data bit number n of the STT-RAM unit corresponding to the current data bit of the target cache block and switching from 0 to 1 is more than K th When the target cache block adopts the extended error correction code, new data is sent to an extended error correction code encoder to generate an error correction code, and meanwhile, the flag bit value of the cache block label is set to be 1; when the total data bit number n of the STT-RAM unit corresponding to the current data bit of the target cache block and switching from 0 to 1 is less than or equal to K th And then, the target cache block adopts a default error correcting code, new data is sent to a default error correcting code encoder to generate an error correcting code, and meanwhile, the flag bit value of the cache block label is set to be 0.
In step S4, if the flag bit has a value of 0, the flag bit is sent to the default ecc decoder to correct possible erroneous data bits; if the flag bit has a value of 1, the data is sent to an ECC decoder to correct a possible erroneous data bit.
Compared with the prior art, the invention has the following advantages and effects: the invention distributes error correcting code resources according to the different bit numbers of new and old data when the cache block writes data, distributes default error correcting codes for the written cache blocks with less different bit numbers, and distributes extended error correcting codes for the written cache blocks with more different bit numbers, the default error correcting code data bit number is less, the error correcting capability is weak, the extended error correcting code data bit number is more, the error correcting capability is strong, thereby obtaining balance between the error correcting capability and the storage cost of the error correcting code.
Drawings
FIG. 1 is a schematic diagram of an embodiment of the invention for calculating a total data bit for counting the switching of 0 to 1 occurring to an STT-RAM cell corresponding to a current data bit.
Fig. 2 is a flowchart of step S2 according to an embodiment of the present invention.
Fig. 3 is a flowchart of step S4 according to an embodiment of the present invention.
Detailed Description
The present invention will be described in further detail below by way of examples with reference to the accompanying drawings, which are illustrative of the present invention and are not to be construed as limiting the present invention.
Referring to fig. 1-3, an embodiment of the present invention includes the steps of:
and S1, when a data writing operation is initiated, after a target cache block to be written is determined, reading out old data bits of the target cache block, comparing the old data bits with new data, and calculating and counting the total data bit number n of switching from 0 to 1 of an STT-RAM unit corresponding to the current data bit.
The step of calculating the total data bit n for switching from 0 to 1 of the STT-RAM unit corresponding to the current data bit is as follows:
reading old data in a target cache block, negating the old data, performing AND operation with corresponding new data according to bits, if the output value is 1, indicating that the STT-RAM unit corresponding to the current data bit is switched from 0 to 1, and taking the output of each bit as the input of a Hamming distance calculator, wherein the output of the Hamming distance calculator is the total data bit number n of the STT-RAM unit corresponding to the current data bit, which is switched from 0 to 1. The whole calculation circuit is a combinational circuit, so no extra delay is introduced.
S2, comparing n with a threshold value K th : if n is greater than K th Then error correction is carried out by adopting the extended error correcting code, if n is less than or equal to K th Then a default error correction code is used for error correction.
Assuming that the hamming distance of the current cache block is n, that is, the total data bit number of switching from 0 to 1 of the STT-RAM unit corresponding to the current data bit is n, and the error correction capability of the error correction code of the cache block is k bits, when the data bit number m of the write failure is greater than k, the current write operation fails. Therefore, the probability of failure of a write operation is P (m ≧ (k + 1)). If the probability of write failure per memory cell is q, the expectation of a write error in switching n data bits is μ — nq. The upper limit of the probability of write failure of the cache block allowed by the system is e, so that the following requirements are met:
P(m≥(k+1))<e (1)
according to the knov probability formula:
Figure BDA0002423899070000041
combining equations (1) and (2) yields:
Figure BDA0002423899070000042
where k +1 is (1+ δ) μ, the maximum value of k may be calculated such that the probability of write failure of the cache block under a write update is less than the upper limit that can be tolerated by the system, given the value of n.
Threshold value K th The calculating steps are as follows: calculating threshold value K th When the system allows the upper limit of the probability of the occurrence of the write failure of the cache block to be e, the error correction capability of the error correction code of the cache block is k data bits, the number of the data bits of the cache block with the write failure is m, and when m is greater than k, the current write operation fails, so that the failure probability of the write operation is P (m is greater than or equal to (k +1)), and the following requirements are met:
P(m≥(k+1))<e,
since the default error correction code adopts 1-bit error correction, k is taken to be 1, and according to the knov probability formula:
Figure BDA0002423899070000043
the minimum m value satisfied by calculation is K th
The default error correcting code and the extended error correcting code both face to a cache block with the size of 64bytes, wherein the default error correcting code adopts a SECDED code with 1-bit error correction and 2-bit error detection, and the length of occupied data is 11 bits; the extended error correction code adopts 4EC5ED codes with 4-bit error correction and 5-bit error detection, and the occupied data length is 41 bits.
For the extended error correcting code, the upper limit of the probability of write failure of a cache block allowed by a system is e, the error correction capability of the cache block is k data bits, the number of the data bits of the cache block with write failure is m, the failure probability of write operation is P (m ≧ k +1)), and the following requirements are met:
P(m≥(k+1))<e,
for a cache block size of 64Bytes, according to the knov probability formula:
Figure BDA0002423899070000051
the maximum value of k obtained by calculation is 4, and the extended error correction code only has the capability of correcting 4-bit error data under the worst condition to meet the requirements of the system.
For the default error correcting code and the extended error correcting code, the actually updated data bits in the cache block are far smaller than the capacity of 512 bits of the cache block, and the number of write failure data bits of most cache blocks is smaller than or equal to 1; 80% of the cache blocks in the cache set can be allocated default error correction codes and 20% of the cache blocks can be allocated extended error correction codes.
S3, setting a flag bit of the target cache block tag when writing the cache block, and identifying an error correction code type of the target cache block, the specific steps are:
when the cache block is written, the total data bit number n of switching from 0 to 1 of the STT-RAM unit corresponding to the current data bit of the target cache block is more than K th When the target cache block is marked, an extended error correction code is adopted, new data is sent to an extended error correction code encoder to generate an error correction code, and meanwhile, the flag bit value of a cache block label is set to be 1; when the total data bit number n of the STT-RAM unit corresponding to the current data bit of the target cache block and switching from 0 to 1 is less than or equal to K th And then, marking the target cache block by adopting a default error correcting code, sending the new data to a default error correcting code encoder to generate an error correcting code, and setting the flag bit value of the cache block label to be 0.
S4, when reading the cache block data, reading the flag bit of the cache block label, determining the type of the adopted error correction code according to the flag bit of the cache block label, and sending the cache block to the corresponding error correction code decoder for error correction; wherein if the flag bit has a value of 0, sending the data to a default ECC decoder to correct possible erroneous data bits; if the flag bit has a value of 1, the data is sent to an ECC decoder to correct a possible erroneous data bit.
In addition, it should be noted that the specific embodiments described in the present specification may be different in the components, the shapes of the components, the names of the components, and the like, and the above description is only an illustration of the structure of the present invention. Equivalent or simple changes in the structure, characteristics and principles of the invention are included in the protection scope of the patent. Various modifications, additions and substitutions for the specific embodiments described may be made by those skilled in the art without departing from the scope of the invention as defined in the accompanying claims.

Claims (7)

1. A method for solving the problem of STT-RAM cache write failure is characterized in that: the method comprises the following steps:
s1, when a data writing operation is initiated, after a target cache block to be written is determined, reading out old data of the target cache block, comparing the old data with new data according to bit, and calculating and counting the number n of data bits of the STT-RAM unit corresponding to the current data bit, wherein the STT-RAM unit is to be switched from 0 to 1;
s2, comparing n with a threshold value K th If n is greater than K th Error correction is carried out by adopting the extended error correction code, if n is less than or equal to K th If so, error correction is carried out by adopting a default error correction code;
calculating threshold value K th When the system allows the cache block to have the probability upper limit of occurrence of write failure, the upper limit of the probability of occurrence of write failure of the cache block is e, the error correction capability of an error correction code of the cache block is k data bits, the number of the data bits of the cache block with write failure is m, and when m is larger than k, the current write operation fails, so that the failure probability of the write operation is
Figure DEST_PATH_IMAGE001
To satisfy:
Figure 745114DEST_PATH_IMAGE002
,
since the default error correcting code adopts 1-bit error correction, K =1 is taken, and the minimum m value met by calculation according to the Chenoff probability formula is K th
S3, when writing the cache block, setting the flag bit of the target cache block label, and marking the error correction code type of the target cache block;
and S4, when the cache block data is read, the flag bit of the cache block label is read at the same time, the adopted error correction code type is determined according to the flag bit, and the cache block is sent to the corresponding error correction code decoder for error correction.
2. The method of addressing STT-RAM cache write failures of claim 1, wherein: the step of calculating the data bit number n of the switching from 0 to 1 of the STT-RAM unit corresponding to the current data bit is as follows: reading old data in a target cache block, negating the old data, performing AND operation with corresponding new data according to bits, if the output value is 1, indicating that the STT-RAM unit corresponding to the current data bit is switched from 0 to 1, and taking the output of each bit as the input of a Hamming distance calculator, wherein the output of the Hamming distance calculator is the total data bit number n of the STT-RAM unit corresponding to the current data bit, which is switched from 0 to 1.
3. The method of addressing STT-RAM cache write failures of claim 1, wherein: the default error correcting code and the extended error correcting code both face to a cache block with the size of 64bytes, wherein the default error correcting code adopts a SECDED code with 1-bit error correction and 2-bit error detection, and the length of occupied data is 11 bits; the extended error correction code adopts 4EC5ED codes with 4-bit error correction and 5-bit error detection, and the occupied data length is 41 bits.
4. The method of addressing STT-RAM cache write failures of claim 1, wherein: for the extended error correction code, the upper limit of the probability of write failure of the cache block allowed by the system is e, the error correction capability of the cache block is k data bits,the number of bits of write failure data in the cache block is m, and the failure probability of the write operation is
Figure 927833DEST_PATH_IMAGE001
To satisfy:
Figure 707570DEST_PATH_IMAGE002
,
aiming at the size of a cache block being 64Bytes, calculating according to a Cherov probability formula to obtain the maximum value of k being 4; to meet the requirements of the system, in the worst case, the extended error correction code only needs to have the capability of correcting 4-bit error data.
5. The method of addressing STT-RAM cache write failures of claim 1, in which: for the default error correcting code and the extended error correcting code, the actually updated data bits in the cache block are smaller than the 512-bit capacity of the cache block, and the write failure data bit number of most cache blocks is smaller than or equal to 1; 80% of the cache blocks in the cache set can be allocated default error correction codes and 20% of the cache blocks can be allocated extended error correction codes.
6. The method of addressing STT-RAM cache write failures of claim 1, wherein: the specific step of step S3 is: when the total data bit number n of the STT-RAM unit corresponding to the current data bit of the target cache block and switching from 0 to 1 is more than K th When the target cache block adopts the extended error correction code, new data is sent to an extended error correction code encoder to generate an error correction code, and meanwhile, the flag bit value of the cache block label is set to be 1; when the total data bit number n of the STT-RAM unit corresponding to the current data bit of the target cache block and switching from 0 to 1 is less than or equal to K th And then, the target cache block adopts a default error correcting code, new data is sent to a default error correcting code encoder to generate an error correcting code, and meanwhile, the flag bit value of the cache block label is set to be 0.
7. The method of addressing STT-RAM cache write failures of claim 1, in which: in step S4, if the flag bit has a value of 0, the flag bit is sent to the default ecc decoder to correct possible erroneous data bits; if the flag bit has a value of 1, the data is sent to an ECC decoder to correct a possible erroneous data bit.
CN202010214371.5A 2020-03-24 2020-03-24 Method for solving STT-RAM cache write failure Expired - Fee Related CN111580750B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010214371.5A CN111580750B (en) 2020-03-24 2020-03-24 Method for solving STT-RAM cache write failure
AU2020103371A AU2020103371A4 (en) 2020-03-24 2020-11-10 Method for Overcoming Write Failure in STT-MRAM On-Chip Cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010214371.5A CN111580750B (en) 2020-03-24 2020-03-24 Method for solving STT-RAM cache write failure

Publications (2)

Publication Number Publication Date
CN111580750A CN111580750A (en) 2020-08-25
CN111580750B true CN111580750B (en) 2022-08-23

Family

ID=72113422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010214371.5A Expired - Fee Related CN111580750B (en) 2020-03-24 2020-03-24 Method for solving STT-RAM cache write failure

Country Status (2)

Country Link
CN (1) CN111580750B (en)
AU (1) AU2020103371A4 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077095A (en) * 2012-12-28 2013-05-01 华为技术有限公司 Error correction method and device for stored data and computer system
CN104541249A (en) * 2012-09-28 2015-04-22 英特尔公司 Endurance aware error-correcting code (ECC) protection for non-volatile memories
CN104538061A (en) * 2013-06-12 2015-04-22 艾沃思宾技术公司 Method for healing reset errors in a spin torque MRAM
CN110333965A (en) * 2019-05-30 2019-10-15 河南文正电子数据处理有限公司 A kind of solid-state hard disk controller device and solid state hard disk data verification method
CN110660421A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Magnetic random access memory with error correction and compression circuit
CN110660422A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Cache system used in cooperation with error correction magnetic random access memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201346922A (en) * 2012-05-14 2013-11-16 Toshiba Kk Memory controller, storage device and error correction method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104541249A (en) * 2012-09-28 2015-04-22 英特尔公司 Endurance aware error-correcting code (ECC) protection for non-volatile memories
CN103077095A (en) * 2012-12-28 2013-05-01 华为技术有限公司 Error correction method and device for stored data and computer system
CN104538061A (en) * 2013-06-12 2015-04-22 艾沃思宾技术公司 Method for healing reset errors in a spin torque MRAM
CN110660421A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Magnetic random access memory with error correction and compression circuit
CN110660422A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Cache system used in cooperation with error correction magnetic random access memory
CN110333965A (en) * 2019-05-30 2019-10-15 河南文正电子数据处理有限公司 A kind of solid-state hard disk controller device and solid state hard disk data verification method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于STT-MRAM的高速Cache设计与实现;梁日泉;《中国优秀硕士学位论文全文数据库(电子期刊·信息科技辑)》;20170315(第3期);第I137-221页 *

Also Published As

Publication number Publication date
CN111580750A (en) 2020-08-25
AU2020103371A4 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
US8429497B2 (en) Method and system of dynamic data storage for error correction in a memory device
US8438457B2 (en) Nonvolatile memory apparatus, memory controller, and memory system
US9214965B2 (en) Method and system for improving data integrity in non-volatile storage
TWI474330B (en) Method for performing memory access management, and associated memory device and controller thereof
JP5658128B2 (en) System, method, and computer program for probabilistic multilayer error correction in NAND flash memory
US7107507B2 (en) Magnetoresistive solid-state storage device and data storage methods for use therewith
US8386890B2 (en) Error correction for multilevel flash memory
US9916254B2 (en) Error detection using a logical address key
US8949689B2 (en) Storage control system with data management mechanism and method of operation thereof
US9772901B2 (en) Memory reliability using error-correcting code
US9171629B1 (en) Storage device, memory controller and memory control method
US20170186500A1 (en) Memory circuit defect correction
TW201320090A (en) Data modification based on matching bit patterns
CN111580750B (en) Method for solving STT-RAM cache write failure
US20030172339A1 (en) Method for error correction decoding in a magnetoresistive solid-state storage device
CN107705817B (en) Decoding method and device using flash memory channel characteristics and data storage system
US20220021403A1 (en) Systems and methods for decoding error correcting codes with historical decoding information
CN111796774B (en) Memory control method, memory storage device and memory controller
CN117497018A (en) Method for adjusting read reference voltage in nonvolatile memory device and memory system controller
US20190294497A1 (en) Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same
US20190081640A1 (en) Faulty word line and faulty bit line information in error correcting coding
CN111651295B (en) Variable-length error correction code method for STT-RAM cache
US11936403B2 (en) Systems and methods for decoding codewords in a same page with historical decoding information
CN111863059A (en) MRAM chip with dynamic redundancy function
US10922019B2 (en) Data writing method, memory controlling circuit unit and memory storage device

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220823