WO2012119447A1 - 复用编码器的编译码存储装置及方法 - Google Patents

复用编码器的编译码存储装置及方法 Download PDF

Info

Publication number
WO2012119447A1
WO2012119447A1 PCT/CN2011/079912 CN2011079912W WO2012119447A1 WO 2012119447 A1 WO2012119447 A1 WO 2012119447A1 CN 2011079912 W CN2011079912 W CN 2011079912W WO 2012119447 A1 WO2012119447 A1 WO 2012119447A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
memory
data
edac
bit data
Prior art date
Application number
PCT/CN2011/079912
Other languages
English (en)
French (fr)
Inventor
王一奇
韩郑生
Original Assignee
中国科学院微电子研究所
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 中国科学院微电子研究所 filed Critical 中国科学院微电子研究所
Priority to US14/004,100 priority Critical patent/US9032270B2/en
Publication of WO2012119447A1 publication Critical patent/WO2012119447A1/zh

Links

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3776Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using a re-encoding step during the decoding process
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Definitions

  • the present invention relates to the field of semiconductor industry storage technologies, and in particular, to a codec storage device and method for a multiplexing encoder. Background technique
  • the single-event flipping effect can only cause a large transient current, and this large current is usually maintained for a short period of time, so that the storage node cannot jump to the flip level in such a short time.
  • this method also has its own inherent disadvantages. It increases the RC delay and increases the time required to write information.
  • the large capacitance and impedance on the storage node also increase the memory cell area and increase the bit line. The upper capacitor increases the access time.
  • the present invention provides a codec storage device and method for a multiplex encoder, which reduces the circuit complexity and the required area and power consumption by multiplexing the coder.
  • a codec storage device of a multiplexing encoder includes an error detection and correction EDAC encoder, a memory and an EDAC decoder.
  • an EDAC encoder for encoding an M-bit check based on the N-bit information bit data acquired from the input terminal In the encoding phase: an EDAC encoder for encoding an M-bit check based on the N-bit information bit data acquired from the input terminal.
  • Bit data where M ⁇ N ; memory, forward connection with EDAC encoder for storing N-bit information bit data and M-bit check bit data;
  • EDAC encoder for obtaining from memory
  • the N-bit information bit data is encoded to output M-bit check bit data;
  • the EDAC decoder is forward-connected to the memory and the EDAC encoder for the M-bit check bit data and the slave memory output according to the EDAC encoder
  • the read M-bit check bit data is subjected to data error correction for the N-bit information bit data read from the memory, and the N-bit information bit data after the error correction is output.
  • the codec storage device of the technical solution further comprises: a path controller connected to the EDAC encoder, the memory and the EDAC decoder, wherein: in the encoding phase, the path controller turns on the data flow path of the EDAC encoder to the memory , turning off the data flow path of the memory to the EDAC encoder, and the data flow path of the memory to the EDAC decoder; in the decoding stage, the path controller turns on the data flow path of the memory to the EDAC encoder, and the memory to the EDAC decoder The data flow path turns off the data flow path from the EDAC encoder to the memory.
  • a path controller connected to the EDAC encoder, the memory and the EDAC decoder, wherein: in the encoding phase, the path controller turns on the data flow path of the EDAC encoder to the memory , turning off the data flow path of the memory to the EDAC encoder, and the data flow path of the memory to the EDAC decoder; in the decoding stage, the path controller turns on the data flow path of the
  • the EDAC encoder when the memory is a 32-bit memory, the EDAC encoder is used for a codec check matrix using Hayes HSIAO encoding, according to 32
  • the bit information bit data is encoded to output 7-bit check bit data; and the EDAC decoder is used to encode and verify the matrix using the HSIAO code, according to the 7-bit check bit data and the slave memory output by the EDAC encoder
  • the 7-bit check bit data is read, and data correction correction is performed on the 32-bit information bit data read from the memory.
  • the EDAC encoder includes five 14-input XOR gates and two 13-input XOR gates; each XOR gate selects preset bits from 32-bit information bit data respectively. Data input, and output 1 bit of check bit data.
  • the EDAC decoder is composed of 7 2-input XOR gates, 32 7-input AND gates, 32 2-input XOR gates, and 7 2-input XOR gates.
  • the 7-bit check bit data read from the memory and the 7-bit check bit data output by the EDAC encoder are XORed in sequence to obtain 7-bit primary error correction signals; 32 7-input AND gates, and 7 2 input XOR gate connection, used to perform 32 kinds of AND operations on the positive and negative values of the 7-bit primary error correction signal respectively, and obtain 32 secondary error correction signals; 32 2-input XOR gates, and 32 7
  • the input AND gate is connected to perform an exclusive-OR operation on the 32-bit information bit data read from the memory according to the 32 secondary error correction signals, and perform error detection on the 32-bit information bit data read from the memory. Correction; Output error detection and corrected 32-bit information bit data.
  • a codec storage method of a multiplexing encoder comprises: at the encoding stage, the EDAC encoder encodes the M-bit check bit data according to the N-bit information bit data acquired from the input end, wherein M ⁇ N; N-bit information bit data and M-bit check bit data Stored in a memory connected to the EDAC encoder in the forward direction; in the decoding stage, the EDAC encoder encodes the N-bit information bit data obtained from the memory and outputs M-bit check bit data; the EDAC decoder is based on the EDAC encoder The output M-bit check bit data and the M-bit check bit data read from the memory perform data error correction on the N-bit information bit data read from the memory, and output the error-corrected N-bit information bit. data.
  • the encoder can be reused in the decoding process without adding additional decoding hardware, so that the area of the decoder is greatly reduced;
  • the invention adopts the error correction code theory of one bit error correction two-bit error detection, so that the anti-single-particle flipping capability of the memory is greatly improved, and in the case that one bit is inverted in the same byte, It is corrected completely, and the correct data is output, and in the case of a two-fold flip, it can be detected and partially corrected.
  • FIG. 1 is a schematic structural diagram of a codec storage device according to an embodiment of the present invention.
  • FIG. 2 is a logic circuit diagram of an EDAC encoder in a codec storage device according to an embodiment of the present invention
  • FIG. 3 is a logic circuit diagram of an EDAC decoder in a codec storage device according to an embodiment of the present invention
  • FIG. 4 is a codec storage device according to an embodiment of the present invention
  • a logic circuit diagram of a secondary decoding circuit of a medium EDAC decoder is detailed description
  • FIG. 1 is a schematic structural diagram of a codec storage device according to an embodiment of the present invention.
  • the codec storage device includes an error detection and correction EDAC encoder, a memory, and an EDAC decoder.
  • EDAC encoder used to encode M-bit check bit data according to N-bit information bit data acquired from the input, where M ⁇ N; memory, forward connection with EDAC encoder for storage N-bit information bit data and M-bit check bit data.
  • an EDAC encoder for encoding the M-bit check bit data after encoding according to the N-bit information bit data acquired from the memory; the EDAC decoder is forward-connected to the memory and the EDAC encoder for The M-bit check bit data output by the EDAC encoder and the M-bit check bit data read from the memory perform data error correction on the N-bit information bit data read from the memory, and the output error correction is corrected. N-bit information bit data.
  • the encoder can be reused in the decoding process without adding additional hardware, so that the area of the decoder is greatly reduced.
  • the encoding code storage device of this embodiment may further include a path controller.
  • the path controller is coupled to an EDAC encoder, memory, and EDAC decoder.
  • the unfilled arrows indicate the path controller's control of the data flow path of the EDAC encoder, memory, and EDAC decoder.
  • the signal flow direction is filled; the arrow filling the solid point indicates the data flow direction in the encoding stage in the codec storage device; and the filled ruled line indicates the data flow direction in the decoding stage in the codec storage device.
  • the path controller turns on the data path of the EDAC encoder to the memory, turns off the data stream path from the memory to the EDAC encoder, and the data stream path from the memory to the EDAC decoder.
  • the path controller turns on the data stream path from the memory to the EDAC encoder, the data stream path from the memory to the EDAC decoder, and turns off the data stream path from the EDAC encoder to the memory.
  • the connection described in the present invention generally refers to a one-way connection.
  • the above coding phase flows through the controller to enable the EDAC encoder to the data flow path of the memory, but only illustrates the EDAC encoder to the memory.
  • the connection is turned on, and its reverse connection, that is, the connection from the memory to the EDAC encoder is not turned on.
  • the memory may be any bit of memory, and the number of bits M of the check bit data can be reasonably set according to the number of bits N of the information bit data of the memory.
  • N 8-bit memory
  • the EDAC encoder and the EDAC decoder in the codec storage device of the present invention will be described in detail below by taking a 32-bit memory as an example.
  • Hammer code HSIAO CODE
  • HAMMING CODE Hamming code
  • Reference 1 An optimal class of optimal minimum odd-weight-column SEC-DED codes, MY Hsiao. IBM Journal of Research and Development, Vol. 14, No. 4. (1970), pp. 395-401
  • Document 2 Error Control Coding in Computers, EiJiwara et al., Computer, July 1990).
  • (39, 32) HSIAO codec check matrix See Reference 1 Figure 4. See the compiled code check matrix as follows. It should be noted that the EDAC encoder shown in FIG. 2, the EDAC decoder shown in FIG. 3, and the decoder secondary decoding circuit shown in FIG. 4 all have a corresponding relationship with the codec check matrix. The correspondence will be explained before introducing the specific circuit. Code check matrix
  • ⁇ C 7 is the check bit data output of the encoder
  • 0 ⁇ 31 is the information bit data input In ⁇ 0> ⁇ In ⁇ 31>
  • the corresponding relationship is that the information bit data of each row of the HSIAO code is XORed to be equal to the corresponding parity data, for example, the first row: C1 on the right is equal to 1 on the left side of the first row.
  • the input bit data is XORed.
  • the circuit corresponding to the encoding process is shown in Figure 2.
  • FIG. 2 is a logic circuit diagram of an EDAC encoder in a codec storage device according to an embodiment of the present invention.
  • the logic circuit diagram is derived from the HSIAO code matrix of FIG.
  • the EDAC encoder section includes five 14-input XOR gates and two 13-input XOR gates. Input information bit data In ⁇ 0> ⁇ In ⁇ 31>, each XOR gate selects specific bit data from 32-bit information bit data (see the data bits in the lower left corner of each XOR gate in Fig. 3), and finally The 7-bit check bit data C ⁇ 0> ⁇ C ⁇ 6> is output in a certain order.
  • the EDAC encoder inputs the 32-bit information bit data together with the 7-bit check bit data into the memory.
  • the EDAC encoder inputs the 7-bit check bit data to the EDAC decoder. .
  • each check digit data is (" ⁇ " indicates a logical XOR operation):
  • C ⁇ 2> In ⁇ 3>
  • € ⁇ 3> ⁇ 2> ⁇ ⁇ 6> ⁇ ⁇ 10> ⁇ ⁇ 13> ⁇ ⁇ 15> ⁇ ⁇ 16> ⁇ ⁇ 24> ⁇ ⁇ 25> ⁇ ⁇ 2 6> ⁇ ⁇ 27> ⁇ ⁇ 28> ⁇ ⁇ 29> ⁇ ⁇ 30> ⁇ ⁇ 31> ;
  • C ⁇ 6> In ⁇ 0 > A In ⁇ 1> ⁇ ⁇ ⁇ 3> ⁇ ⁇ ⁇ 4> ⁇ ⁇ ⁇ 8> ⁇ ⁇ ⁇ 9> ⁇ ⁇ ⁇ 10> ⁇ ⁇ ⁇ 11> ⁇ ⁇ ⁇ 17> ⁇ ⁇ ⁇ 23> ⁇ ⁇ 25> ⁇ ⁇ 27> ⁇ ⁇ 3 1>.
  • the decoding process is also obtained by compiling the code check matrix.
  • the multiplexer (as described in the above encoding process) obtains C ⁇ 0> ⁇ C ⁇ 6>, and then stores the 7-bit check bit data stored in the memory. 01 ⁇ 32> ⁇ 01 ⁇ 38> respectively obtains error correction signals C1 ⁇ 0> ⁇ Cl ⁇ 6> and their inverted signals C1B ⁇ 0> ⁇ C1B ⁇ 6>, and then according to the condition of each column of the check matrix
  • the corresponding 32-bit secondary error correction signal is obtained, and the corresponding relationship with the coded check matrix is:
  • the secondary error correction signal for 0 ⁇ n> (0 n 31) is according to the check matrix.
  • the 7th data of the n-1th column is obtained, and the left side of the check matrix 1 ⁇ 7 corresponds to C ⁇ 0> ⁇ C ⁇ 6>, and the corresponding relationship is as follows: for the first, 6, 7 behavior 1 in the first column, Then the corresponding 7 data bits C1 ⁇ 0>, Cl ⁇ 5>, (:1 ⁇ 6> and C1B ⁇ 1>, C1B ⁇ 2>, C1B ⁇ 3>, C1B ⁇ 4>, perform the data 7
  • the input and operation obtain the secondary error correction signal of ⁇ 0>, and then the data bit information is corrected by the secondary error correction signal.
  • the decoding circuit corresponding to the process is shown in FIG. 3 and FIG. 4.
  • FIG. 3 is a logic circuit diagram of an EDAC decoder in a codec storage device according to an embodiment of the present invention.
  • the EDAC decoder consists of two 2-input XOR gates and an EDAC decoder secondary circuit.
  • the operation of the EDAC decoder is also divided into two phases: Steps to Acquire the Primary Error Correction Signal And the step of verifying the information as data according to the primary error correction signal.
  • the EDAC decoder reads the 7-bit check bit data (01 ⁇ 32> ⁇ 01 ⁇ 38>) from the memory and the 7-bit check bit output after multiplexing the EDAC encoder.
  • Data (C ⁇ 0> ⁇ C ⁇ 6>) XOR operation in sequence to obtain 7-bit primary error correction signal
  • the secondary decoding circuit is composed of 32 7-input AND gates and 32 2-input XOR gates, and the positive and negative values of the 7-bit error correction signals are respectively passed through the 7-input AND gates (C1 ⁇ 0>).
  • ⁇ C1 ⁇ 6>, C1B ⁇ 0> ⁇ C1B ⁇ 6> 32 kinds of AND operations are performed, and finally 32 secondary error correction signals are obtained; then the 32 secondary error correction signals are sequentially and 32-bit information bit data respectively.
  • ⁇ 0> ⁇ 0> ⁇ (C1 ⁇ 0>&Cl ⁇ 5>&Cl ⁇ 6>&C1B ⁇ 1>&C1B ⁇ 2>&C1B ⁇ 3>&C1B ⁇ 4>);
  • 0 ⁇ 1> 01 ⁇ 1> ⁇ (C1 ⁇ 0>&Cl ⁇ 4>&Cl ⁇ 6>&C1B ⁇ 1>&C1B ⁇ 2>&C1B ⁇ 3>&C1B ⁇ 5>);
  • 0 ⁇ 2> 01 ⁇ 2> A (C1 ⁇ 0>&Cl ⁇ 3>&Cl ⁇ 4>&C1B ⁇ 1>&C1B ⁇ 2>&C1B ⁇ 5>&C1B ⁇ 6>) ;
  • 0 ⁇ 3> 01 ⁇ 3> ⁇ (C1 ⁇ 0>&Cl ⁇ 2>&Cl ⁇ 6>&C1B ⁇ 1>&C1B ⁇ 3>&C1B ⁇ 4>&C1B ⁇ 5>);
  • 0 ⁇ 4> 01 ⁇ 4> ⁇ (C1 ⁇ 0>&C1 ⁇ 1>&Cl ⁇ 6>&C1B ⁇ 2>&C1B ⁇ 3>&C1B ⁇ 4>&C1B ⁇ 5>);
  • 0 ⁇ 5> 01 ⁇ 5> ⁇ (C1 ⁇ 0>&Cl ⁇ 4>&Cl ⁇ 5>&C1B ⁇ 1>&C1B ⁇ 2>&C1B ⁇ 3>&C1B ⁇ 6>);
  • 0 ⁇ 6> 01 ⁇ 6> ⁇ (C1 ⁇ 0>&Cl ⁇ 3>&Cl ⁇ 5>&C1B ⁇ 1>&C1B ⁇ 2>& C1B ⁇ 4>&C1B ⁇ 6>);
  • 0 ⁇ 7> 01 ⁇ 7> ⁇ (C1 ⁇ 0>&C1 ⁇ 1>&Cl ⁇ 4>&C1B ⁇ 2>&C1B ⁇ 3>&C1B ⁇ 5>&C1B ⁇ 6>);
  • O ⁇ 10> Ol ⁇ 10> A C1 ⁇ 1>&Cl ⁇ 3>& C 6>&C1B ⁇ 0>&C1B ⁇ 2>&C1B ⁇ 4>&C1B ⁇ 5>)
  • O ⁇ 20> Ol ⁇ 20> ⁇ Cl ⁇ 2>&Cl ⁇ 4>&Cl ⁇ 5>&C1B ⁇ 0>&C1B ⁇ 1>&C1B ⁇ 3>&C1B ⁇ 6>)
  • 0 ⁇ 21> 01 ⁇ 21> ⁇ C1 ⁇ 1>&Cl ⁇ 2>&Cl ⁇ 4>&C1B ⁇ 0>&C1B ⁇ 3>& C1B ⁇ 5>&C1B ⁇ 6>);
  • 0 ⁇ 22> 01 ⁇ 22> ⁇ (C1 ⁇ 0>&Cl ⁇ 2>&Cl ⁇ 4>&C1B ⁇ 1>&C1B ⁇ 3>&C1B ⁇ 5>&C1B ⁇ 6>);
  • 0 ⁇ 24> 01 ⁇ 24> ⁇ C1 ⁇ 0>&C1 ⁇ 1>&Cl ⁇ 3>&C1B ⁇ 2>&C1B ⁇ 4>&C1B ⁇ 5>&C1B ⁇ 6>);
  • 0 ⁇ 29> 01 ⁇ 29> ⁇ C1 ⁇ 1>&Cl ⁇ 2>&Cl ⁇ 3>&C1B ⁇ 0>&C1B ⁇ 4>&C1B ⁇ 5>&C1B ⁇ 6>);
  • O ⁇ 30> Ol ⁇ 30> ⁇ C1 ⁇ 0>&Cl ⁇ 2>&Cl ⁇ 3>&C1B ⁇ 1>&C1B ⁇ 4>&C1B ⁇ 5>&C1B ⁇ 6>);
  • 0 ⁇ 31> 01 ⁇ 31> ⁇ C1 ⁇ 0>&Cl ⁇ 3>&Cl ⁇ 6>&C1B ⁇ 1>&C1B ⁇ 2>&C1B ⁇ 4>&C1B ⁇ 5>).
  • the one-bit error correction two-bit error detection method of the present invention is only suitable for correcting one bit error when one secondary error correction signal is 1, if two or more (including two) occur. In the case where the secondary error correction signal is 1, it is not always possible to correct the error.
  • a codec storage method of a multiplexing encoder there is also provided.
  • the method comprises: at the encoding stage, the EDAC encoder encodes the M-bit check bit data according to the N-bit information bit data acquired from the input end, wherein M ⁇ N ; N-bit information bit data and M-bit check bit data Stored in a memory that is connected in the forward direction to the EDAC encoder; during the decoding phase, the EDAC encoder encodes based on the N-bit information bit data acquired from the memory.
  • the EDAC decoder After outputting the M-bit check bit data; the EDAC decoder reads the N-bit information read from the memory according to the M-bit check bit data output by the EDAC encoder and the M-bit check bit data read from the memory. The bit data is corrected for data error correction, and the N-bit information bit data after error correction is output.
  • a path controller for data path control is added.
  • the path controller is connected to the EDAC encoder, EDAC decoder and memory.
  • the path controller turns on the EDAC encoder to memory data stream path, turns off the memory to the EDAC data stream path, and the memory to the EDAC decoder's data stream path.
  • the path controller turns on the data stream path from the memory to the EDAC encoder, the data stream path from the memory to the EDAC decoder, and turns off the data stream path from the EDAC encoder to the memory.
  • the codec storage apparatus and method of the present invention can repeatedly use the encoder in the decoding process without adding additional hardware, so that the area of the EDAC decoder is greatly reduced.
  • the codec storage device of the present invention greatly improves the anti-single-event flipping capability of the memory by using a one-bit error correction two-bit error detection error code theory, in the case where one bit flip occurs in the same byte. Can be corrected all, output correct data, and in the case of two-fold flip, can be detected and partially corrected.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

复用编码器的编译码存储装置及方法 技术领域
本发明涉及半导体行业存储技术领域, 尤其涉及一种复用编码器的 编译码存储装置及方法。 背景技术
随着空间技术的不断进步, 人类空间活动范围不断扩大, 各国相继 推出空间探索计划来开发利用太空。 在电磁环境比较恶劣的太空, 一些 大规模集成电路常常会受到千扰, 导致不能正常工作。像 RAM这种利用 双稳态进行存储的器件, 往往会在强干扰下发生翻转, 使原来存储的 "0" 变为 " 1 ", 或者 " 1 "变为 "0", 这种现象称为单粒子翻转。 而单粒子翻 转造成的后果往往是很严重的, 例如导致一些控制程序跑飞, 存储的关 键数据出错等等。 目前, 随着芯片集成度的增加, 发生错误的可能性也 逐渐增大。
最初, 业界采用增加存储节点的电容和阻抗的方法来提高电路抗单 粒子翻转的性能, 这是因为存储节点的电容和阻抗增加, 使得存储节点 跳变到翻转电平的 R.C延时大大增加,而通常单粒子翻转效应只能造成瞬 态的大电流, 而这个大电流通常维持的时间比较短, 这样存储节点无法 在这么短时间内跳变到翻转电平。 不过这个方法也有个自身所固有的缺 点, 增大了 RC延时的同时也增加了写入信息所需的时间, 而且存储节点 上大的电容和阻抗也增加了存储单元面积, 增加了位线上的电容, 使得 存取时间增加。
后来, 业界开始采用增加冗余存储节点的方法来提高其抗单粒子翻 转性能, 比如七管、 八管、 十二管等多管单元, 但是同样存在上面的写 入时间长, 面积增大造成位线电容增加, 存取时间变长等问题。
目前, 研究开发人员开始从系统逻辑层次上提高存储器的抗单粒子 翻转性能,即使存储信息发生翻转,通过错误检测与纠正(Error Detection and correction, 简称 EDAC) 电路的逻辑操作也能使发生翻转的错误信息 位恢复正常。 开始人们在编译码存储装置中采用三态表决电路进行逻辑 判断, 但是这种方法需要三倍的存储面积, 电路复杂且功耗较大, 不适 合大规模存储电路。 发明内容
(一) 要解决的技术问题
为克服现有技术中的上述缺陷, 本发明提供了一种复用编码器的编 译码存储装置及方法, 通过复用编码器的方式减小其电路复杂度及所需 的面积、 功耗。
(二) 技术方案
根据本发明的一个方面, 提供了一种复用编码器的编译码存储装置。 该编译码存储装置包括错误检测与纠正 EDAC编码器、 存储器和 EDAC 译码器, 在编码阶段: EDAC编码器, 用于根据从输入端获取的 N位信 息位数据进行编码后输出 M位校检位数据,其中 M<N;存储器,与 EDAC 编码器正向连接, 用于存储 N位信息位数据和 M位校检位数据; 在译码 阶段: EDAC编码器, 用于根据从存储器获取的 N位信息位数据进行编 码后输出 M位校检位数据; EDAC译码器, 与存储器和 EDAC编码器正 向连接, 用于根据 EDAC编码器所输出的 M位校检位数据和从存储器中 读取的 M位校检位数据, 对从存储器中读取的 N位信息位数据进行数据 纠错改正, 输出纠错改正后的 N位信息位数据。
优选地, 本技术方案编译码存储装置还包括: 与 EDAC编码器、 存 储器和 EDAC译码器相连接的路径控制器, 其中: 在编码阶段, 路径控 制器开启 EDAC编码器至存储器的数据流路径, 关断存储器至 EDAC编 码器的数据流路径、存储器至 EDAC译码器的数据流路径; 在译码阶段, 路径控制器开启存储器至 EDAC编码器的数据流路径、 存储器至 EDAC 译码器的数据流路径, 关断 EDAC编码器至存储器的数据流路径。
优选地, 本技术方案编译码存储装置中, 存储器为 8位存储器或 32 位存储器; 当存储器为 8位存储器时, N=8, M=4; 或当存储器为 32位 存储器时, N=32, M=7o
优选地,本技术方案编译码存储装置中,当存储器为 32位存储器时, EDAC编码器, 用于采用海斯 HSIAO编码的编译码校验矩阵, 根据 32 位信息位数据进行编码后输出 7位校检位数据; 和 EDAC译码器, 用于 采用 HSIAO编码的编译码校检矩阵,根据 EDAC编码器所输出的 7位校 检位数据和从存储器中读取的 7位校检位数据, 对从存储器中读取的 32 位信息位数据进行数据纠错改正。
优选地, 本技术方案编译码存储装置中, EDAC编码器包括 5个 14 输入异或门和 2个 13输入异或门; 每个异或门分别从 32位信息位数据 中挑选预设位的数据输入, 并输出 1位校检位数据。
优选地, 本技术方案编译码存储装置中, EDAC译码器由 7个 2输 入异或门、 32个 7输入与门、 32个 2输入异或门; 7个 2输入异或门, 用于从存储器里读取的 7位校检位数据和 EDAC编码器输出的 7位校检 位数据按顺序分别进行异或操作, 得到 7位初级纠错信号; 32个 7输入 与门, 与 7个 2输入异或门相连接, 用于分别对这 7位初级纠错信号的 正负值进行 32种与操作, 得到 32个次级纠错信号; 32个 2输入异或门, 与 32个 7输入与门相连接, 用于根据 32个次级纠错信号与从存储器中 读取的 32位信息位数据进行异或操作, 对从存储器中读取的 32位信息 位数据的进行检错与纠正; 输出检错与纠正后的 32位信息位数据。
根据本发明的另一个方面, 还提供了一种复用编码器的编译码存储 方法。 该方法包括: 在编码阶段, EDAC 编码器根据从输入端获取的 N 位信息位数据进行编码后输出 M位校检位数据, 其中 M<N; N位信息 位数据和 M位校检位数据存储于与 EDAC编码器正向连接的存储器; 在 译码阶段, EDAC编码器根据从存储器获取的 N位信息位数据进行编码 后输出 M位校检位数据; EDAC译码器根据 EDAC编码器所输出的 M位 校检位数据和从存储器中读取的 M位校检位数据, 对从存储器中读取的 N位信息位数据进行数据纠错改正,输出纠错改正后的 N位信息位数据。
(三) 有益效果
本发明具有下列有益效果:
1 ) 本发明的编译码存储装置及方法中, 在译码过程能够重复利用编 码器, 而不需要增加额外的译码硬件, 使得译码器的面积大大减小;
2) 本发明通过采用一位纠错两位检错的纠错码理论, 使得存储器的 抗单粒子翻转能力大幅度提高, 在同字节发生一位翻转的情况下, 能够 被全部纠正, 输出正确数据, 而在发生两位翻转的情况下, 能够被检测 到, 并被部分纠正。 附图说明
图 1为本发明实施例编译码存储装置的结构示意图;
图 2为本发明实施例编译码存储装置中 EDAC编码器的逻辑电路图; 图 3为本发明实施例编译码存储装置中 EDAC译码器的逻辑电路图; 图 4为本发明实施例编译码存储装置中 EDAC译码器次级译码电路 的逻辑电路图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚明白, 以下结合具体 实施例, 并参照附图, 对本发明进一步详细说明。
在本发明的一个示例性实施例中, 提供了一种可复用编码器的编译 码存储装置。 图 1为本发明实施例编译码存储装置的结构示意图。如图 1 所示, 该编译码存储装置包括错误检测与纠正 EDAC编码器、 存储器和 EDAC译码器。在编码阶段: EDAC编码器, 用于根据从输入端获取的 N 位信息位数据进行编码后输出 M位校检位数据, 其中 M<N; 存储器, 与 EDAC编码器正向连接,用于存储 N位信息位数据和 M位校检位数据。 在译码阶段: EDAC编码器, 用于根据从存储器获取的 N位信息位数据 进行编码后输出 M位校检位数据; EDAC译码器, 与存储器和 EDAC编 码器正向连接, 用于根据 EDAC编码器所输出的 M位校检位数据和从存 储器中读取的 M位校检位数据, 对从存储器中读取的 N位信息位数据进 行数据纠错改正, 输出纠错改正后的 N位信息位数据。 本实施例中, 在 译码过程能够重复利用编码器, 而不需要增加额外的硬件, 使得译码器 的面积大大减小。
为了增强 EDAC编码器、 EDAC译码器和存储器的数据流向控制, 本实施例编译码存储装置还可以包括路径控制器。该路径控制器与 EDAC 编码器、 存储器和 EDAC译码器相连接。 在图 1中, 未填充的箭头表示 路径控制器对 EDAC编码器、 存储器和 EDAC译码器的数据流路径的控 制信号流向; 填充实心点的箭头表示在该编译码存储装置中编码阶段的 数据流向; 填充方格线的表示该编译码存储装置中译码阶段的数据流向。 在编码阶段: 路径控制器开启 EDAC编码器至存储器的数据流路径, 关 断存储器至 EDAC编码器的数据流路径、 存储器至 EDAC译码器的数据 流路径。 在译码阶段: 路径控制器开启存储器至 EDAC编码器的数据流 路径、 存储器至 EDAC译码器的数据流路径, 关断 EDAC编码器至存储 器的数据流路径。 需要说明的是, 本发明所述的连接, 一般是指单向连 接, 例如, 上述编码阶段流经控制器开启 EDAC编码器至存储器的数据 流路径中, 只是说明了 EDAC编码器至存储器的单向连接开启, 而其反 向连接, 即存储器至 EDAC编码器的连接则并没有开启。
本实施例中, 存储器可以为任意位的存储器, 根据该存储器的信息 位数据的位数 N, 可以合理设置其校验位数据的位数 M。 以 8位存储器 或 32位存储器为例, 当存储器为 8位存储器时, N=8, M=4; 当存储器 为 32位存储器时, N=32, M=7。
以下将以 32位存储器为例对本发明编译码存储装置中的 EDAC编码 器和 EDAC译码器进行详细说明。对于 32位存储器的情况, 采用了汉明 编码 (HAMMING CODE) 改进后的海斯编码 (HSIAO CODE) 进行信 息位数据和校检位数据的编解码。 关于 HSIAO编码及相应校验矩阵的相 关内容见参考文献 1-一种最优小型奇权列编译码 (A class of optimal minimum odd-weight-column SEC-DED codes, M. Y. Hsiao. IBM Journal of Research and Development, Vol. 14, No. 4. ( 1970), pp. 395-401 ); 文 献 2-计算机中的纠错编码 (Error Control Coding in Computers, EiJiwara et al., Computer, July 1990)。 本发明实施例编译码存储装置中 (39, 32) HSIAO编译码校验矩阵 (见参考文献 1 图 4) 见如下编译码校验矩阵。 需要说明的是, 图 2所示的 EDAC编码器、 图 3所示的 EDAC译码器及 图 4所示的译码器次级译码电路都与该编译码校验矩阵存在对应关系, 具体对应关系将在介绍具体电路之前进行说明。 编译码校验矩阵
0 1 3 4 5 6 7 8 9 mi2 415 l6 n i819202U223242526272829303i C2C3C4CsC6 :7
1 1 15
I ί I I 15
1 I 15
15 15
I 1 14
I 14
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4
6 5 5 3 2 5 4 2 6 5 4 3 5 4 1 4 4 7 2 1 5 2 1 5 1 5 3 3 5 2 1 1
? 7 4 7 7 6 6 5 7 7 7 7 6 6 6 5 5 6 6 6 6 5 5 7 2 7 5 7 6 3 3 7 此外,在上述编译码校验矩阵中,用(^〜(37来表示 7位的校验位数据, 而在本文中以 C<0>~C<6>来表示校验位数据, 其中只是表示方法上的差 别, 即编译码校验矩阵中校验位 对应本文中校验位 C<0>, 依次类推。 编译码校验矩阵中 HSIAO编码中 〜C7即为编码器的校验位数据输出, 而 0〜31为信息位数据输入 In<0>〜In<31>, 对应的关系为 HSIAO编码中 每一行的 1 的信息位数据进行异或操作后等于相应的校验位数据, 例如 第一行: 右边 C1等于对第一行左边所有标识为 1的输入位数据进行 "异 或"运算。 该编码过程对应的电路如图 2所示。
图 2为本发明实施例编译码存储装置中 EDAC编码器的逻辑电路图。 该逻辑电路图是由图 2的 HSIAO编码矩阵得到的。 如图 2所示, EDAC 编码器部分包括 5个 14输入异或门和 2个 13输入异或门。 输入信息位 数据 In<0>〜 In<31>, 每个异或门从 32位信息位数据中挑选特定位数据 (见图 3中每个异或门左下角处的数据位)输入, 最后按一定顺序输出 7 位校检位数据 C<0>~C<6>。 在编码阶段, 该 EDAC编码器将这 32位信 息位数据和 7位校检位数据一起输入到存储器, 在译码阶段, 该 EDAC 编码器将这 7位校检位数据输入到 EDAC译码器。 结合图 2所示的编译 码校验矩阵, 各校验位数据为 ("Λ"表示逻辑 "异或"运算):
C<0>=In<0>AIn< 1 >ΛΙη<2>ΛΙη<3>ΛΙη<4>ΛΙη<5>ΛΙη<6>ΛΙη<7>ΛΙη< 14>ΛΙη< 19>ΛΙη<22>ΛΙη<24>ΛΙη<30>ΑΙη<31 >
C< 1 >=Ιη<4>ΛΙη<7>ΛΙη<8>ΛΙη<9>ΛΙη< 10>ΛΙη< 11 >ΛΙη< 12>ΛΙη< 13>ΛΙη< 14> ΛΙη<15>ΛΙη< 18>ΛΙη<21 >ΛΙη<24>ΛΙη<29>;
C<2>=In<3>AIn< 11 >ΛΙη< 16>ΛΙη< 17>ΛΙη< 18>ΛΙη< 19>ΛΙη<20>ΛΙη<21 >ΛΙη< 22>ΛΙη<23>ΛΙη<26>ΛΙη<27>ΑΙη<29>ΛΙη<30>; €<3>=Ιη<2>ΛΙη<6>ΛΙη<10>ΛΙη<13>ΛΙη<15>ΛΙη<16>ΛΙη<24>ΛΙη<25>ΛΙη<2 6>ΛΙη<27>ΛΙη<28>ΛΙη<29>ΛΙη<30>ΛΙη<31>;
C<4>=In< 1 >ΛΙη<2>ΛΙη<5>ΛΙη<7>ΛΙη<9>ΛΙη< 12>ΛΙη< 15>ΛΙη<20>ΛΙη<21 >Λ Ιη<22>ΛΙη<23>ΛΙη<25>ΛΙη<26>ΛΙη<28>;
0<5>=Ιη<0>ΛΙη<5>ΛΙη<6>ΛΙη<8>ΛΙη< 12>ΛΙη< 13>ΛΙη< 14>ΛΙη< 16>ΛΙη< 17> ΛΙη< 18>ΛΙη<19>ΛΙη<20>ΛΙη<28>;
C<6>=In<0>AIn< 1 >ΛΙη<3 >ΛΙη<4>ΛΙη<8>ΛΙη<9>ΛΙη< 10>ΛΙη< 11 >ΛΙη< 17>ΛΙ η<23>ΛΙη<25>ΛΙη<27>ΛΙη<3 1>。
同样, 译码过程也通过编译码校检矩阵得到, 首先复用编码器 (如 上面编码过程所述) 得到 C<0>〜C<6>, 然后和存储器中存储的 7位校检 位数据 01<32>〜01<38>分别异或后得到纠错信号 C1<0>〜 Cl<6>和其反 相信号 C1B<0>〜 C1B<6>, 然后根据校检矩阵每一列的情况进行 7输入 与操作后得到相应的 32位次级纠错信号, 其和编译码校检矩阵的对应关 系即: 对于 0<n> (0 n 31)的次级纠错信号是按照校检矩阵第 n-1列的 7个数据得到, 校检矩阵左边 1〜7对应 C<0>〜C<6>, 其对应关系如下所 示:对于第一列中第 1, 6, 7行为 1,则对应的 7个数据位 C1<0>, Cl<5>, (:1<6>和 C1B<1>, C1B<2>, C1B<3>, C1B<4>, 对这 Ί个数据进行 7 输入与操作得到 Ο<0>的次级纠错信号, 然后通过这个次级纠错信号对数 据位信息进行纠错。 该过程对应的译码电路如图 3和图 4所示。
图 3为本发明实施例编译码存储装置中 EDAC译码器的逻辑电路图。 如图 3所示, EDAC译码器由 Ί个 2输入异或门和 EDAC译码器次级电 路构成, 该 EDAC译码器的工作过程相应也分为两个阶段: 获取初级纠 错信号步骤和根据初级纠错信号对信息为数据进行校验的步骤。
首先, 如图 3所示, 该 EDAC译码器从存储器里读取的 7位校检位 数据 (01<32> 〜 01<38>) 和复用 EDAC编码器后输出的 7位校检位数 据 (C<0> ~ C<6>) 按顺序分别进行异或操作, 得到 7位初级纠错信号
( C 0>〜C1<6>) 和它的负信号 (C1B<0>〜 C1B<6>)。 正确情况下, 这 7位初级纠错信号都为 0, 但是在发生软错误的情况下, 这 7位初级纠 错信号就会出现非零值, 然后将这 7 位初级纠错信号的正负信号输入 EDAC译码器次级电路。 其中, "-"表示对信号取负: C1<0>= =01<32>AC<0>; C1B<0>=- (OK32>AC<0>);
C1<1>= =01<33>AC<1>; C1B<1>= - (01<33>AC<1>);
Cl<2>= =01<34>AC<2>; C1B<0>=- (01<34>AC<2>);
Cl<3>= =01<35>AC<3>; C1B<0>=- (01<35>AC<3>);
Cl<4>= =01<36>AC<4>; C1B<0>=- (01<36>AC<4>);
Cl<5>= =01<37>AC<5>: C1B<0>=- (01<37>AC<5>);
Cl<6>= =01<38>AC<6>; C1B<0>=- (OK38>AC<6> ) o
图 4为本发明实施例编译码存储装置中 EDAC译码器次级译码电路 的逻辑电路图。如图 4所示, 次级译码电路为 32个 7输入与门和 32个 2 输入异或门构成,通过 7输入与门分别对这 7位纠错信号的正负值 (C1<0> 〜 C1<6>, C1B<0> ~ C1B<6>)进行 32种与操作, 最后得到 32个次级纠 错信号;然后这 32个次级纠错信号按顺序分别与 32位信息位数据 (Ol<0> 〜 01<31>)进行异或操作, 如果有 1个次级纠错信号是 0, 则说明所对应 的信息位数据是正确的, 进行异或操作后还是原先值; 如果有 1 个次级 纠错信号是 1, 则说明所对应的信息位数据是错误的, 错误值在进行异或 操作后变为正确, 最后输出正确的 32位数据 (0<0> 〜 0<31>)。 具体来 讲-
Ο<0> = ΟΚ0> Λ (C1<0> & Cl<5> & Cl<6> & C1B<1> & C1B<2> & C1B<3> & C1B<4>);
0<1> = 01<1> Λ (C1<0> & Cl<4> & Cl<6> & C1B<1> & C1B<2> & C1B<3> & C1B<5>);
0<2> = 01<2> A (C1<0> & Cl<3> & Cl<4> & C1B<1> & C1B<2> & C1B<5> & C1B<6>);
0<3> = 01<3> Λ (C1<0> & Cl<2> & Cl<6> & C1B<1> & C1B<3> & C1B<4> & C1B<5>);
0<4> = 01<4> Λ (C1<0> & C1<1> & Cl<6> & C1B<2> & C1B<3> & C1B<4> & C1B<5>);
0<5> = 01<5> Λ (C1<0> & Cl<4> & Cl<5> & C1B<1> & C1B<2> & C1B<3> & C1B<6>);
0<6> = 01<6> Λ (C1<0> & Cl<3> & Cl<5> & C1B<1> & C1B<2> & C1B<4>&C1B<6>);
0<7> = 01<7> Λ (C1<0> & C1<1> & Cl<4> & C1B<2> & C1B<3> & C1B<5>&C1B<6>);
0<8> = 01<8> Λ (C1<1> & Cl<5> & Cl<6> & CIBO & C1B<2> & C1B<3>&C1B<4>);
0<9> = 01<9> A (C1<1> & Cl<4〉 & Cl<6> & C1B<0> & C1B<2> & C1B<3>&C1B<5>);
O<10> = Ol<10> A C1<1> & Cl<3> & C 6> & C1B<0> & C1B<2> & C1B<4>&C1B<5>)
0<11> = 01<11> Λ C1<1> & Cl<2> & Cl<6> & C1B<0> & C1B<3> & C1B<4>&C1B<5>)
0<12> = 01<12> Λ C1<1> & Cl<4> & Cl<5> & C1B<0> & C1B<2> & C1B<3>&C1B<6>)
0<13> = 01<13> Λ C1<1> & Cl<3> & Cl<5> & C1B<0> & C1B<2> & C1B<4>&C1B<6>)
0<14> = 01<14> Λ C1<0> & C1<1> & Cl<5> & C1B<2> & C1B<3> & C1B<4>&C1B<6>)
0<15> = 01<15> Λ C1<1> & Cl<3> & Cl<4> & C1B<0> & C1B<2> & C1B<5>&C1B<6>)
0<16> = 01<16> Λ Cl<2> & Cl<3> & Cl<5> & C1B<0> & C1B<1> & C1B<4>&C1B<6>)
0<17> = OK17> A Cl<2> & Cl<5> & Cl<6> & C1B<0> & C1B<1> & C1B<3>&C1B<4>)
0<18> = 01<18> Λ C1<1> & Cl<2> & Cl<5> & C1B<0> & C1B<3> & C1B<4>&C1B<6>)
0<19> = OK19> Λ C1<0> & Cl<2> & Cl<5> & C1B<1> & C1B<3> & C1B<4>&C1B<6>)
O<20> = Ol<20> Λ Cl<2> & Cl<4> & Cl<5> & C1B<0> & C1B<1> & C1B<3>&C1B<6>)
0<21> = 01<21> Λ C1<1> & Cl<2> & Cl<4> & C1B<0> & C1B<3> & C1B<5>&C1B<6>);
0<22> = 01<22> Λ (C1<0> & Cl<2> & Cl<4> & C1B<1> & C1B<3> & C1B<5>&C1B<6>);
0<23> = 01<23> Λ Cl<2> & Cl<4> & Cl<6> & C1B<0> & C1B<1> & C1B<3>&C1B<5>);
0<24> = 01<24> Λ C1<0> & C1<1> & Cl<3> & C1B<2> & C1B<4> & C1B<5>&C1B<6>);
0<25> = 01<25> Λ Cl<3> & Cl<4> & Cl<6> & C1B<0> & C1B<1> & C1B<2>&C1B<5>);
0<26> = 01<26> Cl<2> & Cl<3> & Cl<4> & C1B<0> & C1B<1> & C1B<5>&C1B<6>);
0<27> = OK27> Λ Cl<2> & Cl<3> & Cl<6> & C1B<0> & C1B<1> & C1B<4>&C1B<5>);
0<28> = 01<28> Cl<3> & Cl<4> & Cl<5> & C1B<0> & C1B<1> & C1B<2>&C1B<6>);
0<29> = 01<29> Λ C1<1> & Cl<2> & Cl<3> & C1B<0> & C1B<4> & C1B<5>&C1B<6>);
O<30> = Ol<30> Λ C1<0> & Cl<2> & Cl<3> & C1B<1> & C1B<4> & C1B<5>&C1B<6>);
0<31> = 01<31> Λ C1<0> & Cl<3> & Cl<6> & C1B<1> & C1B<2> & C1B<4>&C1B<5>)。
其中, "&"表示逻辑 "与"运算。 需要说明的是, 本发明这种一位 纠错两位检错的纠错方式只适合出现一个次级纠错信号是 1 的情况下纠 正一位错误, 如果出现两个以上 (包括两个) 次级纠错信号是 1的情况, 则不一定能将错误纠正。 - 根据本发明的另一个方面, 还提供了一种复用编码器的编译码存储 方法。 该方法包括: 在编码阶段, EDAC 编码器根据从输入端获取的 N 位信息位数据进行编码后输出 M位校检位数据, 其中 M<N; N位信息 位数据和 M位校检位数据存储于与 EDAC编码器正向连接的存储器; 在 译码阶段, EDAC编码器根据从存储器获取的 N位信息位数据进行编码 后输出 M位校检位数据; EDAC译码器根据 EDAC编码器所输出的 M位 校检位数据和从存储器中读取的 M位校检位数据, 对从存储器中读取的 N位信息位数据进行数据纠错改正,输出纠错改正后的 N位信息位数据。
同上文中的装置实施例对应, 在本发明优选地方法实施例中, 增加 了对数据路径控制的路径控制器。该路径控制器与 EDAC编码器, EDAC 译码器和存储器相连接。 在编码阶段: 路径控制器开启 EDAC编码器至 存储器的数据流路径, 关断存储器至 EDAC 的数据流路径、 存储器至 EDAC 译码器的数据流路径。 在译码阶段: 路径控制器开启存储器至 EDAC编码器的数据流路径、 存储器至 EDAC译码器的数据流路径, 关 断 EDAC编码器至存储器的数据流路径。 本实施例为上述装置实施例对 应的方法实施例, 具有上述装置实施例的全部有益效果, 此处不再赘述。
综上所述, 本发明的编译码存储装置和方法在译码过程能够重复利 用编码器, 而不需要增加额外的硬件, 使得 EDAC译码器的面积大大减 小。 此外, 本发明的编译码存储装置, 通过采用一位纠错两位检错的纠 错码理论, 使得存储器的抗单粒子翻转能力大幅度提高, 在同字节发生 一位翻转的情况下, 能够被全部纠正, 输出正确数据, 而在发生两位翻 转的情况下, 能够被检测到, 并被部分纠正。 以上所述的具体实施例, 对本发明的目的、 技术方案和有益效果进 行了进一步详细说明, 所应理解的是, 以上所述仅为本发明的具体实施 例而己, 并不用于限制本发明, 凡在本发明的精神和原则之内, 所做的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要 求
1、 一种复用编码器的编译码存储装置, 其特征在于, 该编译码 存储装置包括错误检测与纠正 EDAC编码器、 存储器和 EDAC译码 器,
在编码阶段: 所述 EDAC编码器, 用于根据从输入端获取的 N 位信息位数据进行编码后输出 M位校检位数据, 其中 M<N; 所述 存储器, 与所述 EDAC编码器正向连接, 用于存储所述 N位信息位 数据和所述 M位校检位数据;
在译码阶段: 所述 EDAC编码器, 用于根据从所述存储器获取 的 N位信息位数据进行编码后输出 M位校检位数据; 所述 EDAC译 码器, 与所述存储器和所述 EDAC 编码器正向连接, 用于根据所述 EDAC编码器所输出的 M位校检位数据和从所述存储器中读取的 M 位校检位数据, 对从所述存储器中读取的 N位信息位数据进行数据 纠错改正, 输出纠错改正后的 N位信息位数据。
2、 根据权利要求 1所述的编译码存储装置, 其特征在于, 该编 译码存储装置还包括: 与所述 EDAC编码器、 存储器和 EDAC译码 器相连接的路径控制器, 其中:
在编码阶段, 所述路径控制器开启 EDAC 编码器至存储器的数 据流路径, 关断存储器至 EDAC 编码器的数据流路径、 存储器至 EDAC译码器的数据流路径;
在译码阶段, 所述路径控制器开启存储器至 EDAC 编码器的数 据流路径、 存储器至 EDAC译码器的数据流路径, 关断 EDAC编码 器至存储器的数据流路径。
3、 根据权利要求 1所述的编译码存储装置, 其特征在于, 所述 存储器为 8位存储器或 32位存储器;
当所述存储器为 8位存储器时, 所述 N=8, 所述 M=4; 或 当所述存储器为 32位存储器时, 所述 N=32, 所述 M=7。
4、 根据权利要求 3所述的编译码存储装置, 其特征在于, 当所 述存储器为 32位存储器时:
所述 EDAC编码器, 用于采用海斯 HSIAO编码的编译码校检矩 阵, 根据 32位信息位数据进行编码后输出 7位校检位数据; 禾口 所述 EDAC译码器, 用于采用所述 HSIAO编码的编译码校检矩 阵, 根据所述 EDAC编码器所输出的 7位校检位数据和从所述存储 器中读取的 7位校检位数据, 对从所述存储器中读取的 32位信息位 数据进行数据纠错改正。
5、 根据权利要求 4所述的编译码存储装置, 其特征在于, 所述 EDAC编码器包括 5个 14输入异或门和 2个 13输入异或门;
每个所述异或门分别从 32位信息位数据中挑选预设位的数据输 入进行异或操作, 输出 1位校检位数据。
6、 根据权利要求 5所述的编译码存储装置, 其特征在于, 所述 EDAC译码器由 7个 2输入异或门、 32个 7输入与门、 32个 2输入 异或门;
所述 7个 2输入异或门,用于从所述存储器里读取的 7位校检位 数据和对应的所述 EDAC编码器输出的 7位校检位数据按顺序分别 进行异或操作, 得到 7位初级纠错信号及其负信号;
所述 32个 7输入与门, 与所述 7个 2输入异或门相连接, 用于 分别对这 7位初级纠错信号及其负信号进行 32种与操作,得到 32个 次级纠错信号;
所述 32个 2输入异或门, 与所述 32个 7输入与门相连接, 用于 根据所述 32个次级纠错信号与从所述存储器中读取的 32位信息位数 据进行异或操作, 对从所述存储器中读取的 32位信息位数据的进行 检错与纠正; 输出检错与纠正后的 32位信息位数据。
7、 一种复用编码器的编译码存储方法, 应用于权利要求 1所述 的编译码存储装置, 其特征在于, 该方法包括:
在编码阶段, EDAC编码器根据从输入端获取的 N位信息位数 据进行编码后输出 M位校检位数据, 其中 M<N; 所述 N位信息位 数据和所述 M位校检位数据存储于与所述 EDAC编码器正向连接的 存储器; 在译码阶段, 所述 EDAC编码器根据从所述存储器获取的 N位 信息位数据进行编码后输出 M位校检位数据; 所述 EDAC译码器根 据所述 EDAC编码器所输出的 M位校检位数据和从所述存储器中读 取的 M位校检位数据, 对从所述存储器中读取的 N位信息位数据进 行数据纠错改正, 输出纠错改正后的 N位信息位数据。
8、 根据权利要求 7所述的编译码存储方法, 其特征在于, 在编码阶段, 路径控制器开启 EDAC编码器至存储器的数据流 路径, 关断存储器至 EDAC的数据流路径、 存储器至 EDAC译码器 的数据流路径;
在译码阶段, 所述路径控制器开启存储器至 EDAC 编码器的数 据流路径、 存储器至 EDAC译码器的数据流路径, 关断 EDAC编码 器至存储器的数据流路径。
9、 根据权利要求 8所述的编译码存储方法, 其特征在于, 所述 存储器为 8位存储器或 32位存储器;
当所述存储器为 8位存储器时, 所述 N=8, 所述 M=4; 或 当所述存储器为 32位存储器时, 所述 N=32, 所述 M=7。
10、 根据权利要求 9所述的编译码存储方法, 其特征在于, 当所 述存储器为 32位存储器时,
所述 EDAC编码器根据从输入端获取的 N位信息位数据进行编 码后输出 M位校检位数据的步骤包括: EDAC编码器采用海斯 HSIAO 编码, 根据 32位信息位数据进行编码后输出 7位校检位数据; 和 所述 EDAC译码器根据所述 EDAC编码器所输出的 M位校检位 数据和从所述存储器中读取的 M位校检位数据对从所述存储器中读 取的 N位信息位数据进行数据纠错改正的步骤包括: EDAC译码器 采用 HSIAO编码的校检矩阵, 根据所述 EDAC编码器所输出的 7位 校检位数据和从所述存储器中读取的 7 位校检位数据对从所述存储 器中读取的 32位信息位数据进行数据纠错改正, 获取纠错改正后的 32位信息位数据。
PCT/CN2011/079912 2011-03-10 2011-09-21 复用编码器的编译码存储装置及方法 WO2012119447A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/004,100 US9032270B2 (en) 2011-03-10 2011-09-21 Device and method for storing encoded and/or decoded codes by re-using encoder

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2011100581985A CN102682826A (zh) 2011-03-10 2011-03-10 复用编码器的编译码存储装置及方法
CN201110058198.5 2011-03-10

Publications (1)

Publication Number Publication Date
WO2012119447A1 true WO2012119447A1 (zh) 2012-09-13

Family

ID=46797455

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/079912 WO2012119447A1 (zh) 2011-03-10 2011-09-21 复用编码器的编译码存储装置及方法

Country Status (3)

Country Link
US (1) US9032270B2 (zh)
CN (1) CN102682826A (zh)
WO (1) WO2012119447A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617811B (zh) * 2013-12-03 2017-08-29 中国科学院微电子研究所 一种sram型存储器的纠错电路
CN116185745B (zh) * 2023-04-26 2023-06-27 中国民航大学 用于北斗信号处理复杂运算芯片的快速软错误检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211667A (zh) * 2006-12-29 2008-07-02 三星电子株式会社 降低误纠概率的纠错电路和方法和包括该电路的存储设备
US20110004807A1 (en) * 2009-07-02 2011-01-06 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4072853A (en) * 1976-09-29 1978-02-07 Honeywell Information Systems Inc. Apparatus and method for storing parity encoded data from a plurality of input/output sources
JP5772192B2 (ja) * 2011-04-28 2015-09-02 富士通株式会社 半導体装置、情報処理装置およびエラー検出方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211667A (zh) * 2006-12-29 2008-07-02 三星电子株式会社 降低误纠概率的纠错电路和方法和包括该电路的存储设备
US20110004807A1 (en) * 2009-07-02 2011-01-06 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN, WEI: "Research and Implementation of Key Techniques of High Reliable Microprocessor Designs.", ENGINEERING MASTER'S THESIS, 31 December 2006 (2006-12-31), pages 35 - 36 *
HUANG, LIN ET AL.: "Design and Realization of Error Detection and Correction Circuit in S698M SoC.", CHINA INTEGRATED CIRCUIT., 30 September 2008 (2008-09-30), pages 52 - 53 *

Also Published As

Publication number Publication date
US20130346828A1 (en) 2013-12-26
US9032270B2 (en) 2015-05-12
CN102682826A (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
TWI631570B (zh) 錯誤檢查糾正解碼方法與裝置
US11025274B2 (en) Memory controller and method of data bus inversion using an error detection correction code
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
WO2017113333A1 (zh) 一种fpga电路和其配置文件处理方法
JP2008165805A (ja) フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
JPS6346615B2 (zh)
CN103839594A (zh) 固态储存装置及其联合编解码方法
US10848184B2 (en) Method for controlling storage device with aid of error correction and associated apparatus
US9584159B1 (en) Interleaved encoding
WO2012119447A1 (zh) 复用编码器的编译码存储装置及方法
US20160056842A1 (en) In-band status encoding and decoding using error correction symbols
US8239726B2 (en) Apparatuses and methods for encoding and decoding
WO2020052672A1 (zh) Turbo乘积码的译码方法、装置、译码器及计算机存储介质
WO2023020114A1 (zh) 一种数据处理方法及装置
US9515682B2 (en) Device for correcting two errors with a code of hamming distance three or four
JP2732862B2 (ja) データ伝送試験装置
CN102684841A (zh) 一种编码计算单元及解码数据校验方法
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로
US20190294497A1 (en) Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same
Faraj ’Design Error Detection and Correction System based on Reed_Muller Matrix for Memory Protection’
CN110489267B (zh) 存储器及加固待存储数据的方法
WO2014146488A1 (zh) 用于将数据写入存储器的过程的方法
TWI706416B (zh) 多個記憶體裝置共用的錯誤更正系統
Gherman et al. Sequential Decoders for Binary Linear Block ECCs
Li et al. A 1/10000 lower error rate achievable SSD controller with Message-Passing Error Correcting Code architecture and Parity Area Combined scheme

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11860561

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14004100

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11860561

Country of ref document: EP

Kind code of ref document: A1