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

Method for solving STT-RAM cache write failure Download PDF

Info

Publication number
CN111580750A
CN111580750A CN202010214371.5A CN202010214371A CN111580750A CN 111580750 A CN111580750 A CN 111580750A CN 202010214371 A CN202010214371 A CN 202010214371A CN 111580750 A CN111580750 A CN 111580750A
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.)
Granted
Application number
CN202010214371.5A
Other languages
Chinese (zh)
Other versions
CN111580750B (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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Detection And Correction Of Errors (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 the total data bit n of the STT-RAM unit corresponding to the current data bit to be switched from 0 to 1; s2, comparing n with a threshold value KthIf n is greater than KthError correction is carried out by adopting the extended error correction code, if n is less than or equal to KthIf 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; s4, when reading the cache block data, reading the flag bit of the cache block label at the same time, and reading the flag bit according to the flag bitAnd determining the type of the adopted error correction code, and transmitting the cache block to a 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 cellwriteAnd hold twriteThe 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. The probability of write failure of a single STT-RAM unit is small, but when the number of data bits of the data written into the cache block is larger than that of the old data, the number of data bits with the possibility of write failure is also larger. 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 problem 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 KthIf n is greater than KthError correction is carried out by adopting the extended error correction code, if n is less than or equal to KthIf 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.
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 inventionthThe calculation steps are as follows: calculating threshold value KthWhen the system allows the cache block to have the upper limit of the probability of write failure occurrence as e, the error correction capability of the error correction code of the cache block is k data bits, the number of the data bits with write failure occurrence of the cache block is m, and when m is larger than k, the current write operation fails, so that the failure probability of the write operation is P (m is greater than k)≧ (k +1)), satisfying:
P(m≥(k+1))<e,
because the default error correcting code adopts 1-bit error correction, K is 1, and K is the minimum m value met by calculation according to the Chernov probability formulath
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 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 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 ≧ (k +1)), and the requirements are as follows:
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 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.
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 KthWhen 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 KthWhen the target cache block adopts the default error correcting code, the new data is sent to the default error correcting code encoder to generate the error correcting code, and meanwhile, the mark of the cache block label is setThe flag value is 0.
In step S4, if the flag bit has a value of 0, the data is sent to the default ecc decoder to correct the 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 diagram illustrating an embodiment of the present invention for calculating a total data bit for switching an STT-RAM cell from 0 to 1 according 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, 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.
S2, comparing n with a threshold value Kth: if n is greater than KthError correction is carried out by adopting the extended error correction code, if n is less than or equal to KthThen 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)). The probability of write failure per memory cell is q, and the expectation of a write error in switching of 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 KthThe calculation steps are as follows: calculating threshold value KthWhen the probability upper limit of the cache block write failure occurrence allowed by the system is e, the error correction capability of the cache block error correction code is k data bits, the number of the data bits of the cache block write failure occurrence is m, when m is more than k,the current write operation fails, so the failure probability of the write operation is P (m ≧ (k +1)), and it is satisfied that:
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 Kth
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 writing a cache block, a 0 to 1 switch occurs in the STT-RAM cell corresponding to the current data bit of the target cache blockTotal number of data bits n greater than KthWhen 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 KthAnd 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 (8)

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, old data of the target cache block is read out and compared with new data according to bits, and the number n of data bits of an STT-RAM unit corresponding to the current data bits, which is to be switched from 0 to 1, is calculated and counted;
s2, comparing n with a threshold value KthIf n is greater than KthError correction is carried out by adopting the extended error correction code, if n is less than or equal to KthIf 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.
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, 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.
3. The method of addressing STT-RAM cache write failures of claim 1, wherein: threshold value KthThe calculation steps are as follows: calculating threshold value KthWhen 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 K is the minimum m value met by calculation according to the Chernov probability formulath
4. 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.
5. The method of addressing STT-RAM cache write failures of claim 1, wherein: 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,
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.
6. The method of addressing STT-RAM cache write failures of claim 1, wherein: 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.
7. The method of addressing STT-RAM cache write failures of claim 1, wherein: the specific steps of step S3 are: 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 KthWhen 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 current data bit of the target cache blockThe total data bit number n of the corresponding STT-RAM unit which is switched from 0 to 1 is less than or equal to KthAnd 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.
8. The method of addressing STT-RAM cache write failures of claim 1, wherein: in step S4, if the flag bit has a value of 0, the data is sent to the default ecc decoder to correct the 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 true CN111580750A (en) 2020-08-25
CN111580750B 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 (7)

* 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
US20130305120A1 (en) * 2012-05-14 2013-11-14 Osamu Torii Memory controller, storage device and error correction method
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
CN110660422A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Cache system used in cooperation with error correction magnetic random access memory
CN110660421A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Magnetic random access memory with error correction and compression circuit

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130305120A1 (en) * 2012-05-14 2013-11-14 Osamu Torii Memory controller, storage device and error correction method
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
CN110660422A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Cache system used in cooperation with error correction magnetic random access memory
CN110660421A (en) * 2018-06-29 2020-01-07 上海磁宇信息科技有限公司 Magnetic random access memory with error correction and compression circuit
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设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊·信息科技辑)》 *

Also Published As

Publication number Publication date
AU2020103371A4 (en) 2021-01-28
CN111580750B (en) 2022-08-23

Similar Documents

Publication Publication Date Title
TWI750517B (en) Error correcting memory systems
TWI407446B (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
JP5658128B2 (en) System, method, and computer program for probabilistic multilayer error correction in NAND flash memory
KR100845529B1 (en) Ecc controller for use in flash memory device and memory system including the same
TWI474330B (en) Method for performing memory access management, and associated memory device and controller thereof
WO2014130556A1 (en) Method and system for improving data integrity in non-volatile storage
US8386890B2 (en) Error correction for multilevel flash memory
US9772901B2 (en) Memory reliability using error-correcting code
US9916254B2 (en) Error detection using a logical address key
IE71652B1 (en) Byte write error method and apparatus
US10186302B2 (en) Semiconductor systems performing double-write operations and methods of operating the same
US20170186500A1 (en) Memory circuit defect correction
CN109753377A (en) Polarization code decoding apparatus and method
WO2016179309A1 (en) Error correction code management of write-once memory codes
TW201320090A (en) Data modification based on matching bit patterns
CN111580750B (en) Method for solving STT-RAM cache write failure
US20220021403A1 (en) Systems and methods for decoding error correcting codes with historical decoding information
JP7186262B2 (en) Content Aware Decoding Using Shared Data Statistics
US10504608B2 (en) Linked-list interlineation of data
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
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
US20190081640A1 (en) Faulty word line and faulty bit line information in error correcting coding

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