WO2023101097A1 - Memory device capable of dynamically switching error correction and error detection in on-die error correction code - Google Patents

Memory device capable of dynamically switching error correction and error detection in on-die error correction code Download PDF

Info

Publication number
WO2023101097A1
WO2023101097A1 PCT/KR2021/019871 KR2021019871W WO2023101097A1 WO 2023101097 A1 WO2023101097 A1 WO 2023101097A1 KR 2021019871 W KR2021019871 W KR 2021019871W WO 2023101097 A1 WO2023101097 A1 WO 2023101097A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
unit
error correction
digital signal
data
Prior art date
Application number
PCT/KR2021/019871
Other languages
French (fr)
Korean (ko)
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 서울대학교산학협력단
Publication of WO2023101097A1 publication Critical patent/WO2023101097A1/en

Links

Images

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
    • 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
    • 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
    • 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
    • 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/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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

Definitions

  • the present invention relates to an error correction code (ECC) that increases data reliability of a memory including DRAM (Dynamic Random Access Memory).
  • ECC error correction code
  • a memory semiconductor is a semiconductor used for storing information
  • a system semiconductor is a semiconductor that interprets, calculates, and processes data.
  • Processing-in-memory technology can solve the bottleneck between the processor and memory by reducing data transfer between the processor and memory by performing operations previously performed by the processor near or inside the memory.
  • the processing-in-memory technology utilizes the large bandwidth inside the memory to perform calculations and demonstrates improved calculation performance.
  • it shows the feature of reducing energy consumption by reducing the data transmission distance between the calculator and memory.
  • processing-in-memory technology that is, processing-in-memory (PIM) technology
  • PIM processing-in-memory
  • the present invention is a problem in which the error correction capability of the on-die error correction code is not high in processing many bits of errors due to the inability to detect errors of several bits in the processing-in-memory (PIM) technology that operates inside the memory chip. want to solve
  • a memory device capable of dynamically switching between error correction and error detection in the on-die error correction code of the present invention generates parity bits from data bits input from a memory control unit to generate data bits and parity data bits in a memory cell array.
  • an error correction code encoder including a parity generator that writes a codeword including bits and a syndrome generator that reads data bits and codewords including parity bits written in the memory cell array, and generates syndrome data through operation;
  • the syndrome decoding unit decodes the syndrome data generated through the syndrome generation unit and generates error location bits indicating the location of error bits, and the data bits and error location bits generated by the syndrome decoding unit are received from the memory cell array, the data bit An error correcting unit that generates correcting bit data by comparing and operating each bit for each position of the error location bit, and after receiving the syndrome data output from the syndrome generating unit, a logical sum operation is performed, and a digital signal '1' or a digital signal as an operation value A PIM that outputs either a digital signal '0' or a digital signal '1', controlled by the memory control unit, including an error detector outputting a signal '0' and a digital signal '0' and a digital signal '1'.
  • a PIM enable switch unit is provided which outputs correction bit data output from the error correction unit when the digital signal '0' is received from the PIM enable unit, and outputs data bits when the digital signal '1' is received from the PIM enable unit. It includes an error correcting code decoder.
  • the syndrome generator may receive a codeword from the memory cell array when the memory performs a read operation.
  • the syndrome generation unit includes a first parity module including a plurality of exclusive OR gates to read the data bits of the codeword and calculates a new parity bit, and a plurality of exclusive OR gates including parity bits received through the memory cell array and It may include a second parity module that receives parity bits output from the first parity module and executes an exclusive OR operation.
  • the first parity module and the second parity module may include the same number of XOR gates.
  • the syndrome decoding unit decodes the syndrome data input to the input side into a decimal number, outputs a digital signal '1' to the output terminal corresponding to the value of the decoded decimal number, and outputs a digital signal to the output terminal located at the remaining position. It can output '0'.
  • the error correcting unit may include an exclusive OR gate for performing an exclusive OR operation by receiving a codeword at a first input terminal and receiving a digital signal output from a syndrome decoding unit at a second input terminal.
  • the error detection unit may include a logical sum gate that outputs an error signal when any one digital signal '1' is input among the syndrome data input from the syndrome generation unit.
  • the present invention enables error correction and error detection to be dynamically switched in an on-die error correction code, thereby securing high reliability for error detection of multiple bits in PIM (Processing-In-memory) technology that operates inside a memory chip. make it possible In addition, error data is detected through a simplified path, so that detected error bits are later corrected and latency for error correction codes can be reduced.
  • PIM Processing-In-memory
  • the present invention is formed in a structure in which only the PIM enable unit and the PIM enable switch unit are added to the existing on-die ECC engine, so that the reusability of the existing on-die ECC engine can be increased.
  • FIG. 1 is a block diagram of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
  • FIG. 2 is a flowchart of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
  • FIG. 3 is a structural diagram of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
  • 4 and 5 are diagrams illustrating codewords used in a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
  • 6 to 14 are diagrams showing the states of the data bits of FIG. 3 expressed in binary and which data bits are received by the first parity module according to the states expressed in binary.
  • 15 is a diagram showing an operating state of the syndrome generating unit of FIG. 7 .
  • 16 to 18 are views showing which data bits are received by each XOR gate (#1 to #8) of the first parity module of FIG.
  • 19 and 20 are diagrams showing an operating state of the syndrome generating unit of FIG. 3 .
  • 21 and 22 are views showing an operating state of the syndrome decoding unit of FIG. 3 .
  • FIG. 23 is a diagram showing an operating state of the error detection unit of FIG. 3 .
  • 24 and 25 are diagrams illustrating an operating state of the PIM enable switch unit of FIG. 3 .
  • the present invention relates to a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code.
  • FIGS. 1 to 25 a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention will be described with reference to FIGS. 1 to 25 .
  • FIGS. 1 and 2 so that the description of a memory device capable of dynamically switching error correction and error detection in an on-die error correction code according to an embodiment of the present invention is concise and clear. explain in general.
  • components of the present invention will be described with reference to the description and FIG. 3 . And based on FIGS. 4 to 25, the operation of the components of the present invention will be described in detail.
  • FIG. 1 is a flowchart of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention
  • FIG. 2 is an on-die error correction code according to an embodiment of the present invention. It is a structural diagram of a memory device capable of dynamically switching error correction and error detection in
  • the present invention is a memory device 1 capable of dynamically switching between error correction and error detection by including a memory cell array and an on-die ECC engine.
  • the present invention can dynamically switch between error correction and error detection in an on-die error correction code, thereby increasing data reliability in processing-in-memory (PIM) technology that operates inside a memory chip.
  • PIM processing-in-memory
  • the present invention allows error data to be detected through a simplified path when switching to error detection, and the detected error data to be corrected later, so that error processing can be quickly processed in a memory device.
  • the memory device 1 interfaces with the memory controller A, and its operation can be generally controlled according to signals transmitted from the memory controller A.
  • the memory controller A applies commands and addresses, controls the overall operation of the memory device, and enables the memory device to read or write data. That is, the memory control unit (A) allows the memory device to 'Read' data from the memory cell array (E) or 'Write' data to the memory cell array (E).
  • the memory control unit (A) controls the PIM enable unit 250 through a Reserved for future use (RFU) command in the interface between the memory control unit and the memory (DRAM) or registers the PIM input in the mode register of the memory.
  • REU Reserved for future use
  • the PIM enable module 250 can control to read PIM enable information from a corresponding mode register.
  • the memory control unit (A) controls the PIM enable unit 250 in this way so that a digital signal '1' or a digital signal '0' is output.
  • the output digital signal is applied to the PIM enable switch unit 260.
  • the present invention writes the code word D-1 while the on-die ECC engine, that is, the error correction code encoder 10 operates when the memory controller A writes in the memory.
  • the error correction code decoder 20 operates while the memory cell After reading the codeword (D-2) written in the array (E), an error generated in the codeword can be detected while performing an operation by comparing the parity bit generated through the data bits with the read parity bit. Also, detected errors may be corrected.
  • Such a memory device 1 of the present invention may be an improved DRAM device from existing DRAM devices.
  • the memory device 1 of the present invention may be a DDR5 SDRAM (Double Data Rate Fifth Synchronous Dynamic Random Access Memory) device.
  • a memory device 1 capable of dynamically switching error correction and error detection in an on-die error correction code includes a memory cell array E, an error correction code encoder 10, and an error correction code. It includes a decoder 20 and the like as components.
  • the memory cell array E may be a storage device used with the existing on-die ECC engine, and the present invention enables PIM included in the error correction code decoder 20 in the existing on-die ECC engine.
  • Only the unit 250 and the PIM enable switch unit 260 may be formed in an additional structure. As described above, based on the structural feature in which only the PIM enable unit 250 and the PIM enable switch unit 260 are added, the present invention can increase the reusability of the existing on-die ECC engine.
  • FIG. 3 is a structural diagram of a memory device 1 capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
  • the memory cell array E stores data bits and parity bits generated by the error correction code encoder 10, and the error correction code decoder 20 uses the error correction code encoder 10 Data bit and parity bit stored or written by can be read. That is, the memory cell array E becomes a device capable of inputting and outputting data bits and parity bits.
  • the error correction code encoder 10 generates a parity bit C from the data bit B-1 input from the memory controller A to form a memory cell array E , Cell Array) to write the codeword (D-1).
  • the error correction code encoder 10 may include the parity generator 110 to generate parity bits C corresponding to the data bits based on the data bits received from the memory controller A.
  • parity bits (C) can be P1, P2, P3, P4, P5, P6, P7, P8, and all of these parity bits (C) can be digital signals '0' or '1'. .
  • the error correcting code decoder 20 reads the codeword D-2 written in the memory cell array E, detects an error in the data read and written by the user, that is, an error in the codeword, and then in the PIM enable module Depending on the output digital signal, the detected error is corrected or the detected error is output as it is.
  • the error correction code decoder 20 includes a syndrome generator 210, a syndrome decoding unit 220, an error correction unit 230, an error detection unit 240, a PIM enable unit ( 250) and a PIM enable switch unit 260 as components.
  • Components included in the error correcting code decoder 20 may be the most essential components of the present invention.
  • the syndrome generator 210 generates a parity bit (C) with a data bit read from the memory cell array (E) and compares the parity bit (C) with the parity bit read from the memory cell array (E). to generate syndrome data (G).
  • the syndrome generating unit 210 generates syndrome data G containing location information of a data error based on a code word to be read from the memory cell array E.
  • the syndrome generator 210 includes a first parity module 211 including a plurality of exclusive OR gates (#1XOR Gate to #16XOR Gate) and a plurality of exclusive OR gates (#9 to #16 ) may include a second parity module 212 including.
  • the first parity module 211 and the second parity module 212 may be composed of the same characteristics and the same number of XOR gates.
  • Such a syndrome generator 210 can read the data bit B-2 included in the code word D-2 through the first parity module 211, and can read the code word B-2 through the second parity module 212.
  • Syndrome data (G) may be generated by receiving the parity bit (F) included in the word (D-2) and the parity bit (C) output from the first parity module 211. Then, the generated syndrome data may be applied to the syndrome decoding unit 220 .
  • the syndrome decoding unit 220 may decode the syndrome data G generated through the syndrome generating unit 210 to generate error location bits H. As an embodiment, the syndrome decoding unit 220 may generate an error location by performing one-hot encoding on the syndrome data and outputting only the number of bits corresponding to the size of the data.
  • one-hot encoding means enumerating categorical variables and displaying all items that are not applicable as 0 and applicable items as 1.
  • the error correction unit 230 When the error correction unit 230 receives the data bit B-2 from the memory cell array E and the error location bit H generated by the syndrome decoding unit 220, the data bit B-2 and the error Correction bit data (I) is generated by comparing and calculating each bit for each position of the position bit (H).
  • the error correction unit 230 includes a plurality of exclusive OR gates and performs an exclusive OR operation on the received digital signal.
  • the error correcting unit 230 receives the data bit B-2 received at the first input terminal of a plurality of exclusive OR gates, that is, the XOR gate, and the digital signal output from the syndrome decoding unit 220 at the second input terminal, thereby generating exclusive
  • the logical sum operation is performed and the read data can be corrected based on the error location bit (H). For example, if the data bit is a digital signal '0' and the digital signal '0' output from the syndrome decoding unit 220, the digital signal '0' may be output by performing an exclusive OR operation on the data bit. Alternatively, if the data bit is a digital signal '1' and the digital signal '0' output from the syndrome decoding unit 220, the digital signal '1' may be output by performing an exclusive OR operation on the data bit.
  • the error detection unit 240 receives the syndrome data G output from the syndrome generator 210, performs a logical OR operation, and outputs a digital signal '1' or a digital signal '0' as an operation value.
  • the error detection unit 240 includes a logical sum gate 241, and when any one digital signal '1' is input among the syndrome data G input from the syndrome generator 210, the error detection signal, that is, an error signal can be output.
  • the error detector 240 performs a logical sum operation on the syndrome data G output from the syndrome generator 210, and if any one bit of the received syndrome data is 1, it can output a signal indicating that an error has occurred. .
  • the error detection unit 240 may detect that a maximum of two errors occur in a codeword according to a result of an OR reduction operation of syndrome data due to the characteristics of Hamming codes having a minimum Hamming distance of 3.
  • OR reduction is to perform a OR operation on all bits. For example, This means that the 8 bits output from the second parity module 212 are subjected to a OR operation at the OR gate 241.
  • the minimum hamming distance means the minimum number of bits that differ between codewords. If the minimum Hamming distance is 3, single-error correction and double-error detection may be possible.
  • the error detection unit 240 may be used as a function of single-error correction or a function of double-error detection.
  • the present invention can operate in a mode of correcting error bits in data bits or in a mode of detecting error bits.
  • the PIM enable unit 250 Since the PIM enable unit 250 stores digital signal '0' and digital signal '1', it is controlled by the memory control unit A and sent to the PIM enable switch unit 260 as digital signal '0' or digital signal '1'. ' can be output.
  • the PIM enable switch unit 260 may vary the signal applied to the memory controller A.
  • the PIM enable switch unit 260 includes a multiplexer (MUX) corresponding to the number of data bits, and when the digital signal '0' is input from the PIM enable unit 250, the error correction unit 230 outputs the output. outputs the correcting bit data (I).
  • MUX multiplexer
  • the data bit B-2 is output as it is.
  • the syndrome generator 210, the error correction unit 230, the error detection unit 240, the PIM enable unit 250, and the PIM enable switch unit 260 are limited to the digital devices shown in FIG. 3, It may be formed by being transformed into another semiconductor element within the range of exhibiting the above-mentioned characteristics.
  • FIGS. 4 to 25 are diagrams illustrating codewords used in a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention
  • FIGS. 6 to 14 3 is a diagram showing which data bits are received by the first parity module according to the states expressed in binary and the states expressed in binary.
  • 15 is a diagram showing an operating state of the syndrome generating unit of FIG. 7 .
  • 16 to 18 are views showing which data bits are received by each XOR gate of the first parity module of FIG. 19 to 20 are diagrams showing operating states of the syndrome generating unit of FIG. 3 .
  • 21 and 22 are diagrams showing operating states of the syndrome decoding unit of FIG. 3 .
  • 23 is a diagram showing an operating state of the error detection unit of FIG. 3 .
  • 24 and 25 are diagrams illustrating an operating state of the PIM enable switch unit of FIG. 3 .
  • the code word D-2 written in the memory cell array E becomes a code combining a message and extra information.
  • the codeword D-2 includes a first parity bit P1, a second parity bit P2, and first data.
  • bit D1 third parity bit P3, second data bit D2 to fourth data bit D4, fourth parity bit P4, and fifth data bit D5 to eleventh.
  • the data bit D57 and the 7th parit bit P7 and the 58th data bit D58 to the 127th data bit D127 and the 57th data bit D57 and the 8th parit bit P8 and the 129th It may be formed of a linear code including data bits D129 to 136th data bits D136.
  • data bits become messages, and parity bits can be redundant information.
  • the parity bit may be positioned at 2 ⁇ n positions in the order of bits shown in FIG. 4 .
  • P1 is located in the order of number 1, which is the place of 2 ⁇ 0
  • P2 is located in the order of number 2, which is the place of 2 ⁇ 1
  • P3 is located in the order of number 4, which is the place of 2 ⁇ 2
  • P4 is located in the order of number 2, which is the place of 2 ⁇ 2.
  • P5 is located in the 8th order of 2 ⁇ 3 place
  • P5 is located in the 16th order of 2 ⁇ 4 place
  • P6 is located in the 32nd order of 2 ⁇ 5 place
  • P7 is located in the 64th order of 2 ⁇ 6 place position
  • P8 is located at position 128, which is the position of 2 ⁇ 7.
  • the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) of the first parity module 211 are data bits as shown in FIGS. 6 to 14 in the memory cell array E, respectively. can be read.
  • each of the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) outputs '1' if the number of '1' is odd, and ' If the number of 1' is an even number, '0' can be output.
  • the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) of the first parity module 211 generate 136-bit data obtained by adding 8-bit parity bits to 128-bit data.
  • the first exclusive OR gate (#1XOR Gate) is D1, D2, D4, D5, D7, D9, D11, D12, D14, D16, D18, D20, D22, D24, D26, D27, D29, D31, D33, D35, D37, D39, D41, D43, D45, D47, D49, D51, D53, D55, D57, D58, D60, D62, D64, D66, D68, D70, D72, D74, D76, D78, D80, D82, D84, D86, D88, D90, D92, D94, D96, D98, D100, D102, D104, D106, D108, D110, D112, D114,
  • the second exclusive OR gate (#2XOR Gate) is D1, D3, D4, D6, D7, D10, D11, D13, D14, D17, D18, D21, D22, D25, D26, D28, D29, D32, D33, D36, D37, D39, D40, D41, D44, D45, D48, D49, D52, D53, D56, D57, D59, D60, D63, D64, D67, D68, D71, D72, D75, D76, D79, D83, D84, D87, D88, D91, D92, D95, D96, D99, D100, D103, D104, D107, D108, D111, D112, D115, D116, D119, D120, D122, D123, D126, 67 digital signals can be input by reading D127.
  • the third exclusive OR gate is D2, D3, D4, D8, D9, D10, D11, D15, D16, D17, D18, D20, D22, D23, D24, D25, D23, D24, D25, D26, D30, D31, D32, D33, D38, D40, D41, D46, D47, D48, D49, D54, D55, D56, D57, D61, D62, D64, D69, D70, D71, D72, D77, D78, D79, D80, D85, D86, D87, D88, D93, D94, D95, D96, D101, D102, D103, D104, D109, D110, D111, D112, D117, D118, D119, D120, D124, D125, D126, 67 digital signals can be input by reading D127.
  • the fourth exclusive OR gate (#4XOR Gate) is D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128 are read and 63 digital signals are read. can be entered.
  • the fifth exclusive OR gate (#5XOR Gate) is D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120 are read and 65 digital signals are read. can be entered.
  • the sixth exclusive OR gate (#6XOR Gate) is D27, D28, D29, D30, D31, D32, D33, D34, D35, D36, D37, D38, D39, D40, D41, D42, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D89, D90, D91, D92, D93, D94, D95, D96, D97, D98, D99, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120 are read and 63 digital signals are read. can be entered.
  • the seventh exclusive OR gate is D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128 are read and 63 digital signals are read. can be entered.
  • the eighth exclusive OR gate (#8XOR Gate) is D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120 are read and 59 digital signals can be input.
  • the binary numbers of the digits of D1 to D128 are the same as the binary numbers of FIGS. 6 to 14 .
  • D1 to D128 all become digital signals '0' when no error occurs so that the description of the data bits can be concise and clear. And it is assumed that the error occurs only in one D1 and that the digital signal of D1 is from ‘0’ to ‘1’.
  • all of the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) may output a digital signal '1'.
  • signals output from the ninth exclusive OR gate (#9XOR Gate) to the sixteenth exclusive OR gate (#16XOR Gate) may output a digital signal '0 0 0 0 0 0 0 0 0'.
  • the ninth exclusive OR gate (#9XOR Gate) to the sixteenth exclusive OR gate (#16XOR Gate) of the second parity module 212 are the first exclusive OR gate (# 1XOR Gate) to the 8th exclusive OR gate (#8XOR Gate) and the parity bit (F) read from the memory cell array (E), that is, the default input signal shown in the figure is different from each other, digital Signal '1' can be output. Accordingly, signals output from the ninth exclusive OR gate (#9XOR Gate) to the sixteenth exclusive OR gate (#16XOR Gate) may output a digital signal '1 1 0 0 0 0 0 0'.
  • the syndrome decoding unit 220 when the syndrome decoding unit 220 receives the digital signal '0 0 0 0 0 0 0 0 1 1' from the second parity module 212, it converts the received binary number into a decimal number, '3' may be output, and a digital signal '1' may be output to the third output pod corresponding to the decimal number '3'. And when ‘1 0 0 0 1 0 0 0’ is received, a digital signal ‘1’ can be output to the 128th output pod based on the method of converting binary numbers to decimal numbers.
  • the syndrome decoding unit 220 decodes the syndrome data (G) input to the input side into a decimal number, outputs a digital signal '1' to the output terminal corresponding to the value of the decoded decimal number, and A digital signal '0' can be output to the output terminal at the position.
  • the syndrome decoding unit 220 may apply a digital signal '1' or a digital signal '0' output to the error correcting unit 230.
  • the error detection unit 240 performs a logical sum operation on the syndrome data G output from the syndrome generation unit 210, and if any one of the received syndrome data is 1, it generates a signal indicating that an error has occurred. can be printed out.
  • the error detection unit 240 may detect that a maximum of two errors occur in a codeword according to a result of an OR reduction operation of syndrome data due to the characteristics of Hamming codes having a minimum Hamming distance of 3.
  • Each of the Y3-th exclusive OR gate (#Y3XOR Gate) to the Y3-th exclusive-OR gate (#Y136XOR Gate) of the error correction unit 230 performs syndrome decoding with data bits read from the memory cell array E, that is, D1 to D128.
  • a signal output from the unit 220 may be received, an exclusive OR operation may be performed, and an erroneous data bit may be corrected and output.
  • the error correcting unit 230 receives a signal '0' from the memory cell array E and the syndrome decoding unit 220 when D1 to D128 come in as normal signals.
  • the error correcting unit 230 when D1 among D1 to D128 comes as an error signal, the Y1-th exclusive OR gate (#Y1XOR Gate) is a memory cell array ( E) Then, the digital signal '1' is received through the Y3 output port of the syndrome decoding unit 220.
  • the remaining Y5th exclusive OR gate (#Y5XOR Gate) to Y136th exclusive OR gate (#Y136XOR Gate) receive the digital signal '0' through the memory cell array E and the output port of the syndrome decoding unit 220. .
  • the Y3th exclusive OR gate (#Y3XOR Gate) may perform an exclusive OR operation on the received signal and output a digital signal '0'.
  • the Y5th exclusive OR gate (#Y5XOR Gate) to the Y136th exclusive OR gate (#Y136XOR Gate) also perform an exclusive OR operation on the received signal and output a digital signal '0'.
  • the error correcting unit 230 receives the position signal to be corrected through the syndrome decoding unit 220, and the data bit with the error is '0000...'. Even if '0000' is entered, it is correctly '0000...'. 0001'.
  • the PIM enable switch unit 260 receives correction bit data output from the error correction unit 230 when the digital signal '0' is input from the PIM enable unit 250. (I) '0000 ... 0000' is output. On the other hand, as shown in (B) of FIG. 25, the PIM enable switch unit 260 transmits the uncorrected data bit B-2 as it is when the digital signal '0' is received from the PIM enable unit 250. print out For example, ‘0000 ... which is the data bit in error. 0000’ can be output as it is.
  • the PIM enable switch unit 260 corrects data (Corrected data) is output, so it can be used as single-error correction in the same way as before.
  • the PIM enable signal is a digital signal '1'
  • the PIM enable switch unit 260 outputs the input data as it is and outputs an error signal as it is, quickly detecting the error with only a simplified procedure, and then In this step, erroneous data is processed to be corrected, and the time of data processing can be shortened.
  • the memory device 1 capable of dynamically switching error correction and error detection in the on-die error correction code of the present invention includes a syndrome generator 210, a syndrome decoder 220, and an error correction unit in case of general DRAM Read. It is possible to solve the problem that it takes a long time to process the input data because correction data is output only when all of the steps 230 are passed.
  • the memory device 1 capable of dynamically switching between error correction and error detection in the on-die error correction code of the present invention simultaneously detects errors of several bits based on the characteristics of the error detection unit 240 shown in FIG. and can show high reliability for error detection of data bits being processed.
  • the present invention can be formed in a structure in which only the PIM enable unit 250 and the PIM enable switch unit are added to the existing on-die ECC engine, so that the existing DDR5 SDRAM (Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory), as well as memory to which on-die ECC is applied, and enhances the reusability of the existing on-die ECC engine.
  • DDR5 SDRAM Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory
  • first parity module 212 second parity module
  • PIM enable unit 260 PIM enable switch unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

The present invention relates to a memory device, which dynamically switches error correction and error detection so that error correction and error detection can be selected according to circumstances. The present invention comprises: an error correction code encoder comprising a parity generation unit, which generates parity bits from data bits input from a memory control unit, so as to write, on a memory cell array, a codeword including the data bits and the parity bits; and an error correction code decoder comprising a syndrome generation unit, which reads the codeword including the data bits and the parity bits written on the cell array, and then computes the codeword to generate syndrome data, a syndrome decoding unit, which decodes the syndrome data generated by the syndrome generation unit so as to generate error location bits indicating the location of an error bit, an error correction unit, which generates correction bit data by comparing and computing respective bits per location of the data bits and the error location bits if the data bits from the memory cell array and the error location bits generated by the syndrome decoding unit are received, an error detection unit, which receives the syndrome data output from the syndrome generation unit, and then performs an OR calculation and outputs a digital signal "1" or a digital signal "0" as an calculation value, a PIM enable unit, which includes the digital signal "0" and the digital signal "1" so as to output either the digital signal "0' or the digital signal "1" while controlled by means of the memory control unit, and a PIM enable switch unit, which receives the data bits from the memory cell array, receives the correction bit data from the error correction unit, receives either the digital signal "0" or the digital signal "1" from the PIM enable unit so as to output the correction bit data output from the error correction unit if the digital signal "0" is received from the PIM enable unit and output the data bits if the digital signal "1" is received from the PIM enable unit.

Description

온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치Dynamically switchable memory device between error correction and error detection in on-die error correction code
본 발명은 디램(DRAM: Dynamic Random Access Memory)을 포함하는 메모리의 데이터 신뢰도를 높이는 오류정정코드(ECC: Error Correction Code)와 관련된 기술이다.The present invention relates to an error correction code (ECC) that increases data reliability of a memory including DRAM (Dynamic Random Access Memory).
반도체에는 메모리 반도체와 시스템 반도체 두 종류가 있다. 메모리 반도체는 정보를 저장하는 용도로 사용되는 반도체이고, 시스템 반도체는 데이터를 해석, 계산, 처리하는 반도체이다.There are two types of semiconductors: memory semiconductors and system semiconductors. A memory semiconductor is a semiconductor used for storing information, and a system semiconductor is a semiconductor that interprets, calculates, and processes data.
기존의 메모리 반도체와 시스템 반도체는 따로 떨어져 있어, 둘 사이에 정보가 오가는 과정에서 병목 현상이 발생되는 문제가 발생되고 있다. 이러한 문제는 최근에 급격하게 성장하는 빅데이터 처리 산업 및 인공지능과 관련된 산업 성장에 걸림돌이 되고 있다.Existing memory semiconductors and system semiconductors are separated, so there is a problem that a bottleneck occurs in the process of information passing between the two. These problems have recently become an obstacle to the growth of the rapidly growing big data processing industry and AI-related industries.
이러한 문제를 해결할 수 있는 방안으로 프로세싱 인 메모리(Processing-in-Memory)기술이 제시되었다. 프로세싱 인 메모리 기술(Processing-in-Memory)은 기존에 메모리 근처 혹은 내부에서 프로세서에서 수행하던 연산들을 수행하여 프로세서와 메모리 간 데이터 전송을 줄여 프로세서와 메모리 간 병목현상을 해결할 수 있다. 그리고 프로세싱 인 메모리 기술은 메모리 내부의 큰 대역폭(Bandwidth)을 활용해 연산을 수행하며 향상된 연산 성능을 발휘한다. 또한, 연산기와 메모리 간 데이터 전송 거리를 줄여 에너지 소비량을 줄이는 특징을 나타낸다.As a way to solve this problem, processing-in-memory technology has been proposed. Processing-in-Memory technology can solve the bottleneck between the processor and memory by reducing data transfer between the processor and memory by performing operations previously performed by the processor near or inside the memory. In addition, the processing-in-memory technology utilizes the large bandwidth inside the memory to perform calculations and demonstrates improved calculation performance. In addition, it shows the feature of reducing energy consumption by reducing the data transmission distance between the calculator and memory.
이에 따라, 프로세싱 인 메모리 기술 즉, PIM(Processing-In-Memory)기술에 대한 연구 개발이 활발하게 진행되고 있다.Accordingly, research and development on processing-in-memory technology, that is, processing-in-memory (PIM) technology, is actively progressing.
그러나, 현재까지 PIM(Processing-In-Memory)기술에서 발생하는 문제 일례로, 메모리 근처에서 연산을 수행하기 때문에 프로세서 쪽에서 수행하던 기존의 데이터의 오류 검출 및 정정이 PIM 기술에 적용되지 못하는 문제가 있었다. 특히, PIM 기술에 메모리 칩 내부에서 수행하는 온-다이 오류 정정 코드(On-die ECC)를 적용할 수 있으나, 적용된 온-다이 오류 정정코드는 프로세서 쪽에서 수행하던 오류 정정 코드보다 오류 정정 능력이 낮은 문제를 나타내고 있다.However, as an example of a problem that has occurred in the PIM (Processing-In-Memory) technology so far, since the operation is performed near the memory, the existing data error detection and correction performed on the processor side cannot be applied to the PIM technology. . In particular, on-die error correction code (On-die ECC) performed inside the memory chip can be applied to the PIM technology, but the applied on-die error correction code has lower error correction capability than the error correction code performed on the processor side. indicates a problem.
[선행기술문헌] 대한민국 공개특허 제10-2021-0142213호(공개일자: 2020.12.22)[Prior art literature] Republic of Korea Patent Publication No. 10-2021-0142213 (published date: 2020.12.22)
본 발명은 메모리 칩 내부에서 연산하는 PIM(Processing-In-memory)기술에서 여러 비트의 오류 검출을 하지 못해 많은 비트의 오류를 처리하는데 있어, 온-다이 오류 정정 코드의 오류 정정 능력이 높지 못한 문제를 해결하고자 한다.The present invention is a problem in which the error correction capability of the on-die error correction code is not high in processing many bits of errors due to the inability to detect errors of several bits in the processing-in-memory (PIM) technology that operates inside the memory chip. want to solve
본 발명의 기술적 과제는 이상에서 언급한 과제들로 제한되지 않으며 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problem of the present invention is not limited to the above-mentioned problems, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.
상기 기술적 과제를 달성하기 위한 본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치는 메모리제어부에서 입력되는 데이터비트에서 패리티비트를 생성하여 메모리 셀어레이에 데이터비트와 패리티비트를 포함하는 코드워드를 쓰는 패리티생성부를 포함하는 오류정정코드부호기 및 메모리 셀어레이에 쓰여진 데이터비트와 패리티비트를 포함하는 코드워드를 읽어온 후, 연산하여 신드롬데이터를 생성하는 신드롬생성부와, 신드롬생성부를 통해 생성된 신드롬데이터를 복호화 하여 오류 비트의 위치를 나타내는 오류위치비트를 생성하는 신드롬복호화부와, 메모리 셀어레이에서 데이터비트와 신드롬복호화부에서 생성된 오류위치비트를 수신하면, 데이터비트와 오류위치비트의 위치 별 각 비트를 비교 연산하여 정정비트데이터를 생성하는 오류정정부와, 신드롬생성부에서 출력된 신드롬데이터를 수신한 후, 논리합 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력하는 오류검출부와, 디지털 신호 ‘0’과 디지털 신호 ‘1’을 포함하여, 메모리제어부에서 제어되며 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력하는 PIM인에이블부와, 메모리 셀어레이를 통해 데이터비트를 수신하고, 오류정정부를 통해 정정비트데이터를 수신하고, PIM인에이블부에서 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 수신하여, PIM인에이블부에서 디지털 신호 ‘0’이 수신되면 오류정정부에서 출력되는 정정비트데이터를 출력하고, PIM인에이블부에서 디지털 신호 ‘1’이 수신되면 데이터비트를 출력하는 PIM인에이블스위치부가 구비된 오류정정코드복호기를 포함한다.In order to achieve the above technical problem, a memory device capable of dynamically switching between error correction and error detection in the on-die error correction code of the present invention generates parity bits from data bits input from a memory control unit to generate data bits and parity data bits in a memory cell array. an error correction code encoder including a parity generator that writes a codeword including bits and a syndrome generator that reads data bits and codewords including parity bits written in the memory cell array, and generates syndrome data through operation; When the syndrome decoding unit decodes the syndrome data generated through the syndrome generation unit and generates error location bits indicating the location of error bits, and the data bits and error location bits generated by the syndrome decoding unit are received from the memory cell array, the data bit An error correcting unit that generates correcting bit data by comparing and operating each bit for each position of the error location bit, and after receiving the syndrome data output from the syndrome generating unit, a logical sum operation is performed, and a digital signal '1' or a digital signal as an operation value A PIM that outputs either a digital signal '0' or a digital signal '1', controlled by the memory control unit, including an error detector outputting a signal '0' and a digital signal '0' and a digital signal '1'. Receiving data bits through the enable unit and the memory cell array, receiving corrected bit data through the error correction unit, and receiving either digital signal '0' or digital signal '1' from the PIM enable unit, A PIM enable switch unit is provided which outputs correction bit data output from the error correction unit when the digital signal '0' is received from the PIM enable unit, and outputs data bits when the digital signal '1' is received from the PIM enable unit. It includes an error correcting code decoder.
여기서, 신드롬생성부는 메모리가 읽기 동작을 수행할 때, 메모리 셀에레이로부터 코드워드를 수신할 수 있다. 그리고 신드롬생성부는 복수 개의 배타적 논리합 게이트를 포함하여 코드워드의 데이터비트를 읽어 새로운 패리트비트를 연산하는 제1패리티모듈과, 복수 개의 배타적 논리합 게이트를 포함하여 메모리 셀어레이를 통해 수신된 패리티비트와 제1패리티모듈에서 출력되는 패리트비트를 수신하여 배타적 논리합 연산을 실행하는 제2패리티모듈을 포함할 수 있다. 이때, 제1패리티모듈과 제2패리티모듈은 동일한 개수의 배타적 논리합 게이트(XOR Gate)를 포함할 수 있다.Here, the syndrome generator may receive a codeword from the memory cell array when the memory performs a read operation. The syndrome generation unit includes a first parity module including a plurality of exclusive OR gates to read the data bits of the codeword and calculates a new parity bit, and a plurality of exclusive OR gates including parity bits received through the memory cell array and It may include a second parity module that receives parity bits output from the first parity module and executes an exclusive OR operation. In this case, the first parity module and the second parity module may include the same number of XOR gates.
그리고, 신드롬복호화부는 입력측에 입력되는 신드롬데이터를 10진수로 복호화 한 후, 복호화된 10진수의 값에 대응하는 위치에 있는 출력단에 디지털 신호 ‘1’을 출력하고, 나머지 위치에 있는 출력단에는 디지털 신호 ‘0’을 출력할 수 있다. 그리고 오류정정부는 제1입력단이 코드워드를 수신하고, 제2입력단이 신드롬복호화부에서 출력된 디지털 신호를 수신하여, 배타적 논리합 연산을 실행하는 배타적 논리합 게이트를 포함할 수 있다. 그리고 오류검출부는 신드롬생성부에서 입력되는 신드롬데이터 가운데, 어느 하나의 디지털 신호 ‘1’이 입력되면 오류신호를 출력하는, 논리합 게이트를 포함할 수 있다.Then, the syndrome decoding unit decodes the syndrome data input to the input side into a decimal number, outputs a digital signal '1' to the output terminal corresponding to the value of the decoded decimal number, and outputs a digital signal to the output terminal located at the remaining position. It can output '0'. The error correcting unit may include an exclusive OR gate for performing an exclusive OR operation by receiving a codeword at a first input terminal and receiving a digital signal output from a syndrome decoding unit at a second input terminal. The error detection unit may include a logical sum gate that outputs an error signal when any one digital signal '1' is input among the syndrome data input from the syndrome generation unit.
본 발명은 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적으로 전환할 수 있게 하여 메모리 칩 내부에서 연산하는 PIM(Processing-In-memory)기술에서 여러 비트의 오류 검출에 대한 높은 신뢰성을 확보할 수 있도록 한다. 그리고 오류 데이터를 간소화된 경로로 검출하여, 검출된 오류 비트가 추후 정정되도록 하며 오류 정정 코드에 대한 지연시간(latency)을 줄일 수 있도록 한다.The present invention enables error correction and error detection to be dynamically switched in an on-die error correction code, thereby securing high reliability for error detection of multiple bits in PIM (Processing-In-memory) technology that operates inside a memory chip. make it possible In addition, error data is detected through a simplified path, so that detected error bits are later corrected and latency for error correction codes can be reduced.
또한, 본 발명은 기존의 온-다이 ECC엔진에 PIM인에이블부 및 PIM인에이블스위치부만이 추가된 구조로 형성되어 기존의 온-다이 ECC엔진의 재활용성을 높일 수 있도록 한다.In addition, the present invention is formed in a structure in which only the PIM enable unit and the PIM enable switch unit are added to the existing on-die ECC engine, so that the reusability of the existing on-die ECC engine can be increased.
도 1은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 블록도이다.1 is a block diagram of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 흐름도이다.2 is a flowchart of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 구조도이다.3 is a structural diagram of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
도 4 및 도 5는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에서 사용되는 코드워드(Codeword)를 나타낸 도면이다.4 and 5 are diagrams illustrating codewords used in a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
도 6 내지 도 14는 도 3의 데이터비트가 2진법으로 표현된 상태와 2진법으로 표현된 상태에 따라 제1패리티모듈에 어떠한 데이터비트를 수신하는지를 나타낸 도면이다.6 to 14 are diagrams showing the states of the data bits of FIG. 3 expressed in binary and which data bits are received by the first parity module according to the states expressed in binary.
도 15는 도 7의 신드롬생성부의 작동 상태를 나타낸 도면이다.15 is a diagram showing an operating state of the syndrome generating unit of FIG. 7 .
도 16 내지 도 18은 도 3의 제1패리티모듈의 각 XOR게이트(#1~#8)가 어떠한 데이터비트를 수신하는지를 나타낸 도면이다.16 to 18 are views showing which data bits are received by each XOR gate (#1 to #8) of the first parity module of FIG.
도 19 및 도 20은 도 3의 신드롬생성부의 작동 상태를 나타낸 도면이다.19 and 20 are diagrams showing an operating state of the syndrome generating unit of FIG. 3 .
도 21 및 도 22는 도 3의 신드롬복호화부의 작동 상태를 나타낸 도면이다.21 and 22 are views showing an operating state of the syndrome decoding unit of FIG. 3 .
도 23은 도 3의 오류검출부의 작동 상태를 나타낸 도면이다.23 is a diagram showing an operating state of the error detection unit of FIG. 3 .
도 24 및 도 25는 도 3의 PIM인에이블스위치부의 작동 상태를 나타낸 도면이다.24 and 25 are diagrams illustrating an operating state of the PIM enable switch unit of FIG. 3 .
본 발명의 이점 및 특징 그리고 그것들을 달성하기 위한 방법들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.Advantages and features of the present invention and methods for achieving them will become clear with reference to the detailed description of the following embodiments in conjunction with the accompanying drawings.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 이에, 발명을 실시하기 위한 구체적인 내용에 기재된 내용은 여러 실시예들 가운데 하나의 실시 예만이 기재되었다. 개시된 실시예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위함이다.However, the present invention is not limited to the embodiments disclosed below and may be implemented in a variety of different forms. Accordingly, only one embodiment among several embodiments has been described in the specific contents for carrying out the invention. The disclosed embodiments are intended to completely inform the scope of the invention to those skilled in the art to which the present invention belongs.
본 발명에 대한 정의는 오로지 청구항에 의해 정의된다. 명세서 전체에 걸쳐 동일 참조부호는 동일 구성요소를 지칭한다.The definition of the invention is solely defined by the claims. Like reference numerals designate like elements throughout the specification.
본 발명은 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에 관한 것이다.The present invention relates to a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code.
이하, 도 1 내지 도 25를 참조하여, 본 발명의 일 실시예에 의한 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에 대해 설명한다.Hereinafter, a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention will be described with reference to FIGS. 1 to 25 .
다만, 본 발명의 일 실시예에 의한 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에 대해 설명이 간결하고 명확해질 수 있도록 도 1 및 도 2를 참조하여 본 발명에 대해 개괄적으로 설명한다. 이후, 설명된 내용과 도 3을 참조하여 본 발명에 대한 구성요소를 설명한다. 그리고 도 4 내지 도 25를 바탕으로 본 발명에 대한 구성요소들의 작동에 대해 구체적으로 설명한다.However, the present invention is described with reference to FIGS. 1 and 2 so that the description of a memory device capable of dynamically switching error correction and error detection in an on-die error correction code according to an embodiment of the present invention is concise and clear. explain in general. Hereinafter, components of the present invention will be described with reference to the description and FIG. 3 . And based on FIGS. 4 to 25, the operation of the components of the present invention will be described in detail.
도 1은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 흐름도이고, 도 2는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 구조도이다.1 is a flowchart of a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention, and FIG. 2 is an on-die error correction code according to an embodiment of the present invention. It is a structural diagram of a memory device capable of dynamically switching error correction and error detection in
본 발명은 메모리 셀 어레이와 on-die ECC Engine을 포함하여 오류 정정과 오류 검출을 동적으로 전환할 수 있도록 하는 메모리 장치(1)이다.The present invention is a memory device 1 capable of dynamically switching between error correction and error detection by including a memory cell array and an on-die ECC engine.
본 발명은 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적으로 전환할 수 있어 메모리 칩 내부에서 연산하는 PIM(Processing-In-memory)기술에서 데이터에 대한 신뢰성을 높일 수 있다. 또한, 본 발명은 오류 검출로 전환했을 때 간소화된 경로로 오류 데이터가 검출되도록 하고, 검출된 오류데이터가 추후 정정되도록 함으로써, 메모리 장치 내에서 신속하게 오류 처리를 처리할 수 있도록 한다.The present invention can dynamically switch between error correction and error detection in an on-die error correction code, thereby increasing data reliability in processing-in-memory (PIM) technology that operates inside a memory chip. In addition, the present invention allows error data to be detected through a simplified path when switching to error detection, and the detected error data to be corrected later, so that error processing can be quickly processed in a memory device.
이러한 메모리 장치(1)는 메모리제어부(A)와 인터페이싱 하며 메모리제어부(A)에서 전송하는 신호에 따라 작동이 전반적으로 제어될 수 있다. 이때, 메모리제어부(A)는 명령 및 주소를 인가하며 메모리 장치의 전반적인 작동을 제어하며 메모리 장치가 데이터를 읽을 수 있도록 하거나 쓸 수 있도록 한다. 즉, 메모리제어부(A)는 메모리 장치가 메모리 셀 어레이(E)에서 데이터를 ‘Read’ 하거나 메모리 셀 어레이(E)에 데이터를 ‘Write’ 할 수 있도록 한다. 또한, 메모리제어부(A)는 메모리제어부와 메모리(DRAM)사이의 인터페이스에서 RFU (Reserved for future use) 명령어를 통해 PIM인에이블부(250)를 제어하거나 메모리의 모드 레지스터 (mode register)에 PIM인에이블의 정보를 저장하여 PIM인에이블모듈(250)이 해당 모드 레지스터로부터 PIM인에이블의 정보를 읽을 수 있도록 제어할 수 있다. 이때, 메모리제어부(A)는 이와 같이 PIM인에이블부(250)를 제어하여 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’ 이 출력되도록 한다. 이때, 출력된 디지털 신호는 PIM인에이블스위치부(260)에 인가된다.The memory device 1 interfaces with the memory controller A, and its operation can be generally controlled according to signals transmitted from the memory controller A. At this time, the memory controller A applies commands and addresses, controls the overall operation of the memory device, and enables the memory device to read or write data. That is, the memory control unit (A) allows the memory device to 'Read' data from the memory cell array (E) or 'Write' data to the memory cell array (E). In addition, the memory control unit (A) controls the PIM enable unit 250 through a Reserved for future use (RFU) command in the interface between the memory control unit and the memory (DRAM) or registers the PIM input in the mode register of the memory. By storing enable information, the PIM enable module 250 can control to read PIM enable information from a corresponding mode register. At this time, the memory control unit (A) controls the PIM enable unit 250 in this way so that a digital signal '1' or a digital signal '0' is output. At this time, the output digital signal is applied to the PIM enable switch unit 260.
본 발명은 도 2에 도시된 바와 같이, 메모리제어부(A)에 의해 메모리에서 Write를 수행할 시 on-die ECC Engine 즉, 오류정정코드부호기(10)가 동작하면서 코드워드(D-1)를 생성하고, 생성된 코드워드(D-1)가 메모리 셀 어레이(E)에 작성되도록 하고, 메모리제어부(A)에 의해 메모리에서 Read를 수행할 시 오류정정코드복호기(20)가 동작하면서 메모리 셀 어레이(E)에 작성된 코드워드(D-2)를 읽어 온 후, 데이터비트를 통해 생성한 패리티비트와 읽은 패리티비트를 비교하며 연산하면서 코드워드에 발생된 오류를 검출할 수 있다. 그리고 검출된 오류를 정정할 수도 있다.As shown in FIG. 2, the present invention writes the code word D-1 while the on-die ECC engine, that is, the error correction code encoder 10 operates when the memory controller A writes in the memory. When the generated codeword (D-1) is written in the memory cell array (E) and read from the memory by the memory control unit (A), the error correction code decoder 20 operates while the memory cell After reading the codeword (D-2) written in the array (E), an error generated in the codeword can be detected while performing an operation by comparing the parity bit generated through the data bits with the read parity bit. Also, detected errors may be corrected.
이와 같은 본 발명의 메모리 장치(1)는 기존의 DRAM 디바이스에서 개량된 DRAM 디바이스가 될 수 있다. 일례로, 본 발명의 메모리 장치(1)는 DDR5 SDRAM(Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory) 디바이스가 될 수 있다.Such a memory device 1 of the present invention may be an improved DRAM device from existing DRAM devices. For example, the memory device 1 of the present invention may be a DDR5 SDRAM (Double Data Rate Fifth Synchronous Dynamic Random Access Memory) device.
이와 같은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 메모리 셀 어레이(E), 오류정정코드부호기(10), 오류정정코드복호기(20) 등을 구성요소로 포함한다. 이때, 메모리 셀 어레이(E)는 기존의 온-다이 ECC엔진과 함께 사용되는 저장 장치가 될 수 있으며 본 발명은 기존의 온-다이 ECC엔진에 오류정정코드복호기(20)에 포함되는 PIM인에이블부(250) 및 PIM인에이블스위치부(260)만이 추가된 구조로 형성될 수 있다. 이와 같이, PIM인에이블부(250) 및 PIM인에이블스위치부(260)만이 추가된 구조적 특징에 기반하여 본 발명은 기존의 온-다이 ECC엔진의 재활용성을 높일 수 있다.A memory device 1 capable of dynamically switching error correction and error detection in an on-die error correction code according to an embodiment of the present invention includes a memory cell array E, an error correction code encoder 10, and an error correction code. It includes a decoder 20 and the like as components. At this time, the memory cell array E may be a storage device used with the existing on-die ECC engine, and the present invention enables PIM included in the error correction code decoder 20 in the existing on-die ECC engine. Only the unit 250 and the PIM enable switch unit 260 may be formed in an additional structure. As described above, based on the structural feature in which only the PIM enable unit 250 and the PIM enable switch unit 260 are added, the present invention can increase the reusability of the existing on-die ECC engine.
이하, 앞서 설명한 도 2와 도 3을 참조하여 본 발명을 구성하는 구성요소에 대해 구체적으로 설명한다.Hereinafter, the components constituting the present invention will be described in detail with reference to FIGS. 2 and 3 described above.
도 3은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)의 구조도이다.3 is a structural diagram of a memory device 1 capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention.
메모리 셀 어레이(E)는 오류정정코드부호기(10)에 의해 생성된 데이터비트(Data bit)와 패리티비트(Parity bit)를 저장하고, 오류정정코드복호기(20)가 오류정정코드부호기(10)에 의해 저장 또는 쓰여진 데이터비트(Data bit)와 패리티비트(Parity bit)를 읽어 올 수 있도록 한다. 즉, 메모리 셀 어레이(E)는 데이터비트(Data bit)와 패리티비트(Parity bit)가 입력 및 출력 가능한 장치가 된다.The memory cell array E stores data bits and parity bits generated by the error correction code encoder 10, and the error correction code decoder 20 uses the error correction code encoder 10 Data bit and parity bit stored or written by can be read. That is, the memory cell array E becomes a device capable of inputting and outputting data bits and parity bits.
오류정정코드부호기(10, Error Correction Code encoder)는 도 2에 도시된 바와 같이, 메모리제어부(A)에서 입력되는 데이터비트(B-1)로부터 패리티비트(C)를 생성하여 메모리 셀어레이(E, Cell Array)에 코드워드(D-1)를 작성한다. 이와 같은 오류정정코드부호기(10)는 패리티생성부(110)를 포함하여 메모리제어부(A)에서 수신한 데이터 비트를 기반으로 이 데이터 비트에 상응하는 패리티비트(C)를 생성할 수 있다. 이때, 패리트비트(C)는 P1, P2, P3, P4, P5, P6, P7, P8이 될 수 있으며 이러한 패리트비트(C)는 모두 디지털 신호 ‘0’또는 ‘1’이 될 수 있다.As shown in FIG. 2, the error correction code encoder 10 generates a parity bit C from the data bit B-1 input from the memory controller A to form a memory cell array E , Cell Array) to write the codeword (D-1). The error correction code encoder 10 may include the parity generator 110 to generate parity bits C corresponding to the data bits based on the data bits received from the memory controller A. At this time, parity bits (C) can be P1, P2, P3, P4, P5, P6, P7, P8, and all of these parity bits (C) can be digital signals '0' or '1'. .
오류정정코드복호기(20)는 메모리 셀 어레이(E)에 쓰여진 코드워드(D-2)를 읽어와 사용자들이 읽고 쓰는 데이터에 대한 오류 즉, 코드워드의 오류를 감지한 후, PIM인에이블모듈에서 출력되는 디지털 신호에 따라 감지된 오류를 정정하거나 감지된 오류를 그대로 출력한다.The error correcting code decoder 20 reads the codeword D-2 written in the memory cell array E, detects an error in the data read and written by the user, that is, an error in the codeword, and then in the PIM enable module Depending on the output digital signal, the detected error is corrected or the detected error is output as it is.
이러한 오류정정코드복호기(20)는 전술한 특징을 원활하게 구현할 수 있도록 신드롬생성부(210), 신드롬복호화부(220), 오류정정부(230), 오류검출부(240), PIM인에이블부(250), PIM인에이블스위치부(260)를 구성요소로 포함할 수 있다. 오류정정코드복호기(20)에 포함되는 구성요소들은 본 발명의 가장 핵심적인 구성요소가 될 수 있다. 여기서, 신드롬생성부(210)는 메모리 셀어레이(E)에서 읽어온 데이터비트로 패리트비트(C)를 생성하고 이 패리티비트(C)와 메모리 셀어레이(E)에서 읽어온 패리트비트를 비교하여 신드롬데이터(G)를 생성한다. The error correction code decoder 20 includes a syndrome generator 210, a syndrome decoding unit 220, an error correction unit 230, an error detection unit 240, a PIM enable unit ( 250) and a PIM enable switch unit 260 as components. Components included in the error correcting code decoder 20 may be the most essential components of the present invention. Here, the syndrome generator 210 generates a parity bit (C) with a data bit read from the memory cell array (E) and compares the parity bit (C) with the parity bit read from the memory cell array (E). to generate syndrome data (G).
이와 같은 신드롬생성부(210)는 메모리 셀 어레이(E)에서 read하려는 코드워드를 기반으로 데이터오류의 위치 정보를 담고 있는 신드롬데이터(G)를 생성한다. 신드롬생성부(210)는 도 3에 도시된 바와 같이 복수 개의 배타적 논리합 게이트(#1XOR Gate ~ #16XOR Gate)를 포함하는 제1패리티모듈(211)과 복수 개의 배타적 논리합 게이트(#9 ~ #16)를 포함하는 제2패리티모듈(212)을 포함할 수 있다. 여기서, 제1패리티모듈(211)과 제2패리티모듈(212)은 동일한 특징 그리고 동일한 개수의 배타적 논리합 게이트(XOR Gate)로 구성될 수 있다.The syndrome generating unit 210 generates syndrome data G containing location information of a data error based on a code word to be read from the memory cell array E. As shown in FIG. 3, the syndrome generator 210 includes a first parity module 211 including a plurality of exclusive OR gates (#1XOR Gate to #16XOR Gate) and a plurality of exclusive OR gates (#9 to #16 ) may include a second parity module 212 including. Here, the first parity module 211 and the second parity module 212 may be composed of the same characteristics and the same number of XOR gates.
이와 같은 신드롬생성부(210)는 제1패리티모듈(211)을 통해 코드워드(D-2)에 포함되는 데이터비트(B-2)를 읽을 수 있고, 제2패리티모듈(212)을 통해 코드워드(D-2)에 포함되는 패리티비트(F)와 제1패리티모듈(211)에서 출력되는 패리트비트(C)를 수신하여 신드롬데이터(G)를 생성할 수 있다. 그리고 생성된 신드롬데이터를 신드롬복호화부(220)에 인가할 수 있다.Such a syndrome generator 210 can read the data bit B-2 included in the code word D-2 through the first parity module 211, and can read the code word B-2 through the second parity module 212. Syndrome data (G) may be generated by receiving the parity bit (F) included in the word (D-2) and the parity bit (C) output from the first parity module 211. Then, the generated syndrome data may be applied to the syndrome decoding unit 220 .
신드롬복호화부(220)는 신드롬생성부(210)를 통해 생성된 신드롬데이터(G)를 복호화하여 오류위치비트(H)를 생성할 수 있다. 일 실시예로, 신드롬복호화부(220)는 신드롬데이터를 원-핫 인코딩(one-hot encoding)을 하되 데이터의 크기에 해당하는 비트 수만 출력하여 오류 위치를 생성할 수 있다. 여기서, 원-핫 인코딩(one-hot encoding)은 범주형 변수를 열거하고 해당하지 않는 모든 항목은 0으로 해당하는 항목은 1로 표시하는 것을 의미한다.The syndrome decoding unit 220 may decode the syndrome data G generated through the syndrome generating unit 210 to generate error location bits H. As an embodiment, the syndrome decoding unit 220 may generate an error location by performing one-hot encoding on the syndrome data and outputting only the number of bits corresponding to the size of the data. Here, one-hot encoding means enumerating categorical variables and displaying all items that are not applicable as 0 and applicable items as 1.
오류정정부(230)는 메모리 셀어레이(E)에서 데이터비트(B-2)와 신드롬복호화부(220)에서 생성된 오류위치비트(H)를 수신하면, 데이터비트(B-2)와 오류위치비트(H)의 위치 별 각 비트를 비교 연산하여 정정비트데이터(I)를 생성한다. 이와 같은 오류정정부(230)는 복수 개의 배타적 논리합 게이트를 포함하여 수신되는 디지털 신호를 배타적 논리합 연산 한다.When the error correction unit 230 receives the data bit B-2 from the memory cell array E and the error location bit H generated by the syndrome decoding unit 220, the data bit B-2 and the error Correction bit data (I) is generated by comparing and calculating each bit for each position of the position bit (H). The error correction unit 230 includes a plurality of exclusive OR gates and performs an exclusive OR operation on the received digital signal.
오류정정부(230)는 복수 개의 배타적 논리합 게이트 즉, XOR 게이트의 제1입력단에 수신되는 데이터비트(B-2)와 제2입력단에 신드롬복호화부(220)에서 출력된 디지털 신호를 수신하여 배타적 논리합 연산을 실행하며 오류위치비트(H)를 기반으로 읽어온 데이터를 정정할 수 있다. 일례로, 데이터 비트가 디지털 신호 ‘0’이고 신드롬복호화부(220)에서 출력된 디지털 신호 ‘0’이면 이를 배타적 논리합 연산하여 디지털 신호 ‘0’을 출력할 수 있다. 또는 데이터 비트가 디지털 신호 ‘1’이고 신드롬복호화부(220)에서 출력된 디지털 신호 ‘0’이면 이를 배타적 논리합 연산하여 디지털 신호 ‘1’을 출력할 수 있다.The error correcting unit 230 receives the data bit B-2 received at the first input terminal of a plurality of exclusive OR gates, that is, the XOR gate, and the digital signal output from the syndrome decoding unit 220 at the second input terminal, thereby generating exclusive The logical sum operation is performed and the read data can be corrected based on the error location bit (H). For example, if the data bit is a digital signal '0' and the digital signal '0' output from the syndrome decoding unit 220, the digital signal '0' may be output by performing an exclusive OR operation on the data bit. Alternatively, if the data bit is a digital signal '1' and the digital signal '0' output from the syndrome decoding unit 220, the digital signal '1' may be output by performing an exclusive OR operation on the data bit.
오류검출부(240)는 신드롬생성부(210)에서 출력된 신드롬데이터(G)를 수신한 후, 논리합(OR) 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력한다. 일례로, 오류검출부(240)는 논리합 게이트(241)를 포함하여 신드롬생성부(210)에서 입력되는 신드롬데이터(G) 가운데, 어느 하나의 디지털 신호 ‘1’이 입력되면 error detection signal 즉, 오류신호를 출력할 수 있다.The error detection unit 240 receives the syndrome data G output from the syndrome generator 210, performs a logical OR operation, and outputs a digital signal '1' or a digital signal '0' as an operation value. For example, the error detection unit 240 includes a logical sum gate 241, and when any one digital signal '1' is input among the syndrome data G input from the syndrome generator 210, the error detection signal, that is, an error signal can be output.
이를 통해, 오류검출부(240)는 신드롬생성부(210)에서 출력되는 신드롬데이터(G)를 논리합 연산하여, 수신되는 신드롬데이터 중 어느 한 비트라도 1이 있으면 오류가 발생되었다는 신호를 출력할 수 있다.Through this, the error detector 240 performs a logical sum operation on the syndrome data G output from the syndrome generator 210, and if any one bit of the received syndrome data is 1, it can output a signal indicating that an error has occurred. .
이러한 오류검출부(240)는 최소 해밍 거리가 3인 해밍 코드의 특성상 신드롬데이터의 논리합 축소(Reduction) 연산결과에 따라 코드워드에 최대 두 개의 오류가 발생했다는 것을 검출할 수 있다.The error detection unit 240 may detect that a maximum of two errors occur in a codeword according to a result of an OR reduction operation of syndrome data due to the characteristics of Hamming codes having a minimum Hamming distance of 3.
여기서, 논리합 축소는 모든 Bit를 논리합 연산하는 것이다. 일례로, 제2패리티모듈(212)에서 출력되는 8비트를 논리합 게이트(241)에서 논리합 연산하는 것을 의미한다. 그리고 최소 해밍 거리 (minimum hamming distance)는 코드워드들 간차이가 나는 최소의 비트 수를 의미한다. 최소 해밍 거리가 3이면 single-error correction 및 double-error detection이 가능할 수 있다.Here, OR reduction is to perform a OR operation on all bits. For example, This means that the 8 bits output from the second parity module 212 are subjected to a OR operation at the OR gate 241. And, the minimum hamming distance means the minimum number of bits that differ between codewords. If the minimum Hamming distance is 3, single-error correction and double-error detection may be possible.
따라서, 오류검출부(240)는 single-error correction 하는 기능으로 사용될 수도 있고, double-error detection 하는 기능으로도 사용될 수 있다.Therefore, the error detection unit 240 may be used as a function of single-error correction or a function of double-error detection.
이를 통해, 본 발명은 데이터비트에서 오류비트를 정정하는 모드로 작동되도록 하거나, 오류비트를 검출하는 모드로 작동되도록 할 수 있다.Through this, the present invention can operate in a mode of correcting error bits in data bits or in a mode of detecting error bits.
PIM인에이블부(250)는 디지털 신호 ‘0’과 디지털 신호 ‘1’을 저장하고 있어 메모리제어부(A)에서 제어되어 PIM인에이블스위치부(260)로 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력할 수 있다.Since the PIM enable unit 250 stores digital signal '0' and digital signal '1', it is controlled by the memory control unit A and sent to the PIM enable switch unit 260 as digital signal '0' or digital signal '1'. ' can be output.
PIM인에이블스위치부(260)는 메모리제어부(A)에 인가되는 신호를 달리할 수 있다. PIM인에이블스위치부(260)는 데이터 비트에 대응하는 개수의 다중화기(MUX, Multiplexer)를 포함하여 PIM인에이블부(250)에서 디지털 신호 ‘0’이 입력되면 오류정정부(230)에서 출력되는 정정비트데이터(I)를 출력한다.The PIM enable switch unit 260 may vary the signal applied to the memory controller A. The PIM enable switch unit 260 includes a multiplexer (MUX) corresponding to the number of data bits, and when the digital signal '0' is input from the PIM enable unit 250, the error correction unit 230 outputs the output. outputs the correcting bit data (I).
반면, PIM인에이블부(250)에서 디지털 신호 ‘1’이 수신되면 데이터비트(B-2)를 그대로 출력한다. 이와 같이 신드롬생성부(210), 오류정정부(230), 오류검출부(240), PIM인에이블부(250), PIM인에이블스위치부(260)는 도 3에 도시된 디지털소자로 한정되고, 전술 한 특징을 나타내는 범위에 한에서 다른 반도체소자로 변형되어 형성될 수 있다.On the other hand, when the digital signal '1' is received from the PIM enable unit 250, the data bit B-2 is output as it is. As described above, the syndrome generator 210, the error correction unit 230, the error detection unit 240, the PIM enable unit 250, and the PIM enable switch unit 260 are limited to the digital devices shown in FIG. 3, It may be formed by being transformed into another semiconductor element within the range of exhibiting the above-mentioned characteristics.
이하, 도 4 내지 25를 참조하여 본 발명에 대한 구성요소들의 작동에 대해 구체적으로 설명한다. 도 4 및 도 5는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에서 사용되는 코드워드(Codeword)를 나타낸 도면이고, 도 6 내지 도 14는 도 3의 데이터비트가 2진법으로 표현된 상태와 2진법으로 표현된 상태에 따라 제1패리티모듈에 어떠한 데이터비트를 수신하는지를 나타낸 도면이다. 그리고 도 15는 도 7의 신드롬생성부의 작동 상태를 나타낸 도면이다. 그리고 도 16 내지 도 18은 도 3의 제1패리티모듈의 각 XOR게이트가 어떠한 데이터비트를 수신하는지를 나타낸 도면이다. 그리고 도 19 내지 도 20은 도 3의 신드롬생성부의 작동 상태를 나타낸 도면이다. 그리고 도 21 내지 도 22는 도 3의 신드롬복호화부의 작동 상태를 나타낸 도면이다. 그리고 도 23은 도 3의 오류검출부의 작동 상태를 나타낸 도면이다. 그리고 도 24 및 도 25는 도 3의 PIM인에이블스위치부의 작동 상태를 나타낸 도면이다.Hereinafter, operations of the components of the present invention will be described in detail with reference to FIGS. 4 to 25 . 4 and 5 are diagrams illustrating codewords used in a memory device capable of dynamically switching between error correction and error detection in an on-die error correction code according to an embodiment of the present invention, and FIGS. 6 to 14 3 is a diagram showing which data bits are received by the first parity module according to the states expressed in binary and the states expressed in binary. 15 is a diagram showing an operating state of the syndrome generating unit of FIG. 7 . 16 to 18 are views showing which data bits are received by each XOR gate of the first parity module of FIG. 19 to 20 are diagrams showing operating states of the syndrome generating unit of FIG. 3 . 21 and 22 are diagrams showing operating states of the syndrome decoding unit of FIG. 3 . 23 is a diagram showing an operating state of the error detection unit of FIG. 3 . 24 and 25 are diagrams illustrating an operating state of the PIM enable switch unit of FIG. 3 .
메모리 셀 어레이(E)에 쓰여지는 코드워드(D-2)는 메시지와 여분의 정보를 합친 코드가 된다. 일례로, 코드워드(D-2)는 도 4 및 도 5에 도시된 바와 같이, 코드워드(D-2)는 제1패리티비트(P1), 제2패리티비트(P2), 그리고 제1데이터비트(D1), 제3패리트비트(P3), 제2데이터비트(D2) 내지 제4데이터비트(D4) 그리고 제4패리트비트(P4), 그리고 제5데이터비트(D5) 내지 제11데이터비트(D11) 그리고 제5패리트비트(P5) 그리고 제12데이터비트(D12) 내지 제26데이터비트(D26) 그리고 제6패리트비트(P6) 그리고 제27데이터비트(D27) 내지 제57데이터비트(D57) 그리고 제7패리트비트(P7) 그리고 제58데이터비트(D58) 내지 제127데이터비트(D127) 그리고 제57데이터비트(D57) 그리고 제8패리트비트(P8) 그리고 제129데이터비트(D129) 내지 제136데이터비트(D136)를 포함하는 리니어코드로 형성될 수 있다. 여기서, 데이터비트는 메시지가 되고, 패리트비트는 여분의 정보가 될 수 있다. 여기서, 패리트비트는 도 4에 도시된 비트의 순서에서 2^n 자리에 위치할 수 있다.The code word D-2 written in the memory cell array E becomes a code combining a message and extra information. For example, as shown in FIGS. 4 and 5, the codeword D-2 includes a first parity bit P1, a second parity bit P2, and first data. bit D1, third parity bit P3, second data bit D2 to fourth data bit D4, fourth parity bit P4, and fifth data bit D5 to eleventh. The data bit D11, the 5th parity bit P5, the 12th data bit D12 to the 26th data bit D26, the 6th parit bit P6, and the 27th data bit D27 to the 57th The data bit D57 and the 7th parit bit P7 and the 58th data bit D58 to the 127th data bit D127 and the 57th data bit D57 and the 8th parit bit P8 and the 129th It may be formed of a linear code including data bits D129 to 136th data bits D136. Here, data bits become messages, and parity bits can be redundant information. Here, the parity bit may be positioned at 2^n positions in the order of bits shown in FIG. 4 .
따라서, 패리트비트는 P1은 2^0의 자리인 1번 순서에 위치하고, P2는 2^1의 자리인 2번 순서에 위치하고, P3은 2^2의 자리인 4번 순서에 위치하고, P4는 2^3의 자리인 8번째 순서에 위치하고, P5는 2^4의 자리인 16번 순서에 위치하고, P6은 2^5의 자리인 32번 순서에 위치하고, P7은 2^6의 자리인 64번 자리에 위치하고, P8은 2^7의 자리인 128번째 자리에 위치한다.Therefore, for the parity bit, P1 is located in the order of number 1, which is the place of 2^0, P2 is located in the order of number 2, which is the place of 2^1, P3 is located in the order of number 4, which is the place of 2^2, and P4 is located in the order of number 2, which is the place of 2^2. P5 is located in the 8th order of 2^3 place, P5 is located in the 16th order of 2^4 place, P6 is located in the 32nd order of 2^5 place, P7 is located in the 64th order of 2^6 place position, and P8 is located at position 128, which is the position of 2^7.
제1패리티모듈(211)의 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)는 각각 메모리 셀 어레이(E)에서 도 6 내지 도 14에 도시된 바와 같은 데이터 비트를 읽어올 수 있다. 이때, 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate) 각각은 도 15에 도시된 바와 같이,‘1’ 의 개수가 홀수 개이면 ‘1’을 출력하고, ‘1’의 개수가 짝수 개이면 ‘0’을 출력할 수 있다. 일례로, 제1패리티모듈(211)의 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)가 128-bit의 data에 8-bit의 패리티비트를 더한 136-bit의 코드워드를 읽으면, 제1배타적 논리합 게이트(#1XOR Gate)는 메모리 셀어레이(E)에서 D1, D2, D4, D5, D7, D9, D11, D12, D14, D16, D18, D20, D22, D24, D26, D27, D29, D31, D33, D35, D37, D39, D41, D43, D45, D47, D49, D51, D53, D55, D57, D58, D60, D62, D64, D66, D68, D70, D72, D74, D76, D78, D80, D82, D84, D86, D88, D90, D92, D94, D96, D98, D100, D102, D104, D106, D108, D110, D112, D114, D116, D118, D120, D121, D123, D125, D127을 읽어오며 67개의 디지털 신호가 입력될 수 있다.The first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) of the first parity module 211 are data bits as shown in FIGS. 6 to 14 in the memory cell array E, respectively. can be read. At this time, as shown in FIG. 15, each of the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) outputs '1' if the number of '1' is odd, and ' If the number of 1' is an even number, '0' can be output. For example, the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) of the first parity module 211 generate 136-bit data obtained by adding 8-bit parity bits to 128-bit data. When the codeword of is read, the first exclusive OR gate (#1XOR Gate) is D1, D2, D4, D5, D7, D9, D11, D12, D14, D16, D18, D20, D22, D24, D26, D27, D29, D31, D33, D35, D37, D39, D41, D43, D45, D47, D49, D51, D53, D55, D57, D58, D60, D62, D64, D66, D68, D70, D72, D74, D76, D78, D80, D82, D84, D86, D88, D90, D92, D94, D96, D98, D100, D102, D104, D106, D108, D110, D112, D114, D116, D118, D120, D121, D123, D125, D127 are read and 67 digital signals can be input.
제2배타적 논리합 게이트(#2XOR Gate)는 메모리 셀어레이(E)에서 D1, D3, D4, D6, D7, D10, D11, D13, D14, D17, D18, D21, D22, D25, D26, D28, D29, D32, D33, D36, D37, D39, D40, D41, D44, D45, D48, D49, D52, D53, D56, D57, D59, D60, D63, D64, D67, D68, D71, D72, D75, D76, D79, D83, D84, D87, D88, D91, D92, D95, D96, D99, D100, D103, D104, D107, D108, D111, D112, D115, D116, D119, D120, D122, D123, D126, D127을 읽어오며 67개의 디지털 신호가 입력될 수 있다.The second exclusive OR gate (#2XOR Gate) is D1, D3, D4, D6, D7, D10, D11, D13, D14, D17, D18, D21, D22, D25, D26, D28, D29, D32, D33, D36, D37, D39, D40, D41, D44, D45, D48, D49, D52, D53, D56, D57, D59, D60, D63, D64, D67, D68, D71, D72, D75, D76, D79, D83, D84, D87, D88, D91, D92, D95, D96, D99, D100, D103, D104, D107, D108, D111, D112, D115, D116, D119, D120, D122, D123, D126, 67 digital signals can be input by reading D127.
제3배타적 논리합 게이트(#3XOR Gate)는 메모리 셀어레이(E)에서 D2, D3, D4, D8, D9, D10, D11, D15, D16, D17, D18, D20, D22, D23, D24, D25, D26, D30, D31, D32, D33, D38, D40, D41, D46, D47, D48, D49, D54, D55, D56, D57, D61, D62, D64, D69, D70, D71, D72, D77, D78, D79, D80, D85, D86, D87, D88, D93, D94, D95, D96, D101, D102, D103, D104, D109, D110, D111, D112, D117, D118, D119, D120, D124, D125, D126, D127을 읽어오며 67개의 디지털 신호가 입력될 수 있다.The third exclusive OR gate (#3XOR Gate) is D2, D3, D4, D8, D9, D10, D11, D15, D16, D17, D18, D20, D22, D23, D24, D25, D23, D24, D25, D26, D30, D31, D32, D33, D38, D40, D41, D46, D47, D48, D49, D54, D55, D56, D57, D61, D62, D64, D69, D70, D71, D72, D77, D78, D79, D80, D85, D86, D87, D88, D93, D94, D95, D96, D101, D102, D103, D104, D109, D110, D111, D112, D117, D118, D119, D120, D124, D125, D126, 67 digital signals can be input by reading D127.
제4배타적 논리합 게이트(#4XOR Gate)는 메모리 셀어레이(E)에서 D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128을 읽어오며 63개의 디지털 신호가 입력될 수 있다.The fourth exclusive OR gate (#4XOR Gate) is D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128 are read and 63 digital signals are read. can be entered.
제5배타적 논리합 게이트(#5XOR Gate)는 메모리 셀어레이(E)에서 D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120를 읽어오며 65개의 디지털 신호가 입력될 수 있다.The fifth exclusive OR gate (#5XOR Gate) is D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120 are read and 65 digital signals are read. can be entered.
제6배타적 논리합 게이트(#6XOR Gate)는 메모리 셀어레이(E)에서 D27, D28, D29, D30, D31, D32, D33, D34, D35, D36, D37, D38, D39, D40, D41, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D89, D90, D91, D92, D93, D94, D95, D96, D97, D98, D99, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120을 읽어오며 63개의 디지털 신호가 입력될 수 있다.The sixth exclusive OR gate (#6XOR Gate) is D27, D28, D29, D30, D31, D32, D33, D34, D35, D36, D37, D38, D39, D40, D41, D42, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D89, D90, D91, D92, D93, D94, D95, D96, D97, D98, D99, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120 are read and 63 digital signals are read. can be entered.
제7배타적 논리합 게이트(#7XOR Gate)는 메모리 셀어레이(E)에서 D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128을 읽어오며 63개의 디지털 신호가 입력될 수 있다.The seventh exclusive OR gate (#7XOR Gate) is D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128 are read and 63 digital signals are read. can be entered.
제8배타적 논리합 게이트(#8XOR Gate)는 메모리 셀어레이(E)에서 D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120을 읽어오며 59개의 디지털 신호가 입력될 수 있다.The eighth exclusive OR gate (#8XOR Gate) is D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120 are read and 59 digital signals can be input.
여기서, D1 내지 D128의 자리번호의 이진수는 도 6 내지 도 14의 이진법으로 표시된 수와 같다. 그리고 본 명세서 상에서는 데이터 비트에 대한 설명이 간결하고 명확할 수 있도록 D1 내지 D128는 오류가 발생되지 않는 경우 모두 디지털 신호 ‘0’이 되는 것으로 한다. 그리고 오류는 D1 하나에만 발생하여 D1의 디지털 신호가 ‘0’에서 ‘1’인 것으로 가정한 후, 설명한다. 이와 같은 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)는 도 19에 도시된 바와 같이 모두 디지털 신호 ‘1’을 출력할 수 있다.Here, the binary numbers of the digits of D1 to D128 are the same as the binary numbers of FIGS. 6 to 14 . And, in this specification, it is assumed that D1 to D128 all become digital signals '0' when no error occurs so that the description of the data bits can be concise and clear. And it is assumed that the error occurs only in one D1 and that the digital signal of D1 is from ‘0’ to ‘1’. As shown in FIG. 19, all of the first exclusive OR gate (#1XOR Gate) to the eighth exclusive OR gate (#8XOR Gate) may output a digital signal '1'.
제2패리티모듈(212)의 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)는 도 20의 (a)에 도시된 바와 같이 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)에서 출력되는 디지털 신호와 메모리 셀 어레이(E)에서 읽어오는 패리티비트(F) 즉, 도면에 도시된 Default Input의 신호가 동일한 경우 디지털 신호 ‘0’을 출력할 수 있다. 이에, 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)가 출력하는 신호는 디지털 신호 ‘0 0 0 0 0 0 0 0’을 출력할 수 있다.As shown in (a) of FIG. ) to the eighth exclusive OR gate (#8XOR Gate) and the parity bit (F) read from the memory cell array (E), that is, the signal of the default input shown in the figure, the digital signal '0' can output Accordingly, signals output from the ninth exclusive OR gate (#9XOR Gate) to the sixteenth exclusive OR gate (#16XOR Gate) may output a digital signal '0 0 0 0 0 0 0 0'.
반면, 제2패리티모듈(212)의 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)는 도 20의 (b)에 도시된 바와 같이 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)에서 출력되는 디지털 신호와 메모리 셀 어레이(E)에서 읽어오는 패리티비트(F) 즉, 도면에 도시된 Default Input의 신호가 서로 다른 경우, 디지털 신호 ‘1’을 출력할 수 있다. 이에, 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)가 출력하는 신호는 디지털 신호 ‘1 1 0 0 0 0 0 0’을 출력할 수 있다.On the other hand, the ninth exclusive OR gate (#9XOR Gate) to the sixteenth exclusive OR gate (#16XOR Gate) of the second parity module 212 are the first exclusive OR gate (# 1XOR Gate) to the 8th exclusive OR gate (#8XOR Gate) and the parity bit (F) read from the memory cell array (E), that is, the default input signal shown in the figure is different from each other, digital Signal '1' can be output. Accordingly, signals output from the ninth exclusive OR gate (#9XOR Gate) to the sixteenth exclusive OR gate (#16XOR Gate) may output a digital signal '1 1 0 0 0 0 0 0'.
신드롬복호화부(220)는 도 21에 도시된 바와 같이 제2패리티모듈(212)에서 디지털 신호 ‘0 0 0 0 0 0 1 1’을 수신한 경우, 수신된 2진수를 10진수로 변환하여 십진수 ‘3’을 출력하고, 십진수 ‘3’에 대응하는 3번째 출력 포드에 디지털 신호 ‘1’을 출력할 수 있다. 그리고 ‘1 0 0 0 1 0 0 0’을 수신한 경우, 2진수를 10진수로 변환하는 방법에 근거하여 128번째 출력 포드에 디지털 신호 ‘1’을 출력할 수 있다. 즉, 신드롬복호화부(220)는 입력측에 입력되는 신드롬데이터(G)를 10진수로 복호화 한 후, 복호화된 10진수의 값에 대응하는 위치에 있는 출력단에 디지털 신호 ‘1’을 출력하고, 나머지 위치에 있는 출력단에는 디지털 신호 ‘0’을 출력할 수 있다.As shown in FIG. 21, when the syndrome decoding unit 220 receives the digital signal '0 0 0 0 0 0 0 1 1' from the second parity module 212, it converts the received binary number into a decimal number, '3' may be output, and a digital signal '1' may be output to the third output pod corresponding to the decimal number '3'. And when ‘1 0 0 0 1 0 0 0’ is received, a digital signal ‘1’ can be output to the 128th output pod based on the method of converting binary numbers to decimal numbers. That is, the syndrome decoding unit 220 decodes the syndrome data (G) input to the input side into a decimal number, outputs a digital signal '1' to the output terminal corresponding to the value of the decoded decimal number, and A digital signal '0' can be output to the output terminal at the position.
신드롬복호화부(220)는 도 22에 도시된 바와 같이, 오류정정부(230)에 출력되는 디지털 신호 ‘1’또는 디지털 신호 ‘0’을 인가할 수 있다.As shown in FIG. 22, the syndrome decoding unit 220 may apply a digital signal '1' or a digital signal '0' output to the error correcting unit 230.
오류검출부(240)는 도 23에 도시된 바와 같이, 신드롬생성부(210)에서 출력되는 신드롬데이터(G)를 논리합 연산하여, 수신되는 신드롬데이터 중 어느 하나라도 1이 있으면 오류가 발생되었다는 신호를 출력할 수 있다. 이러한 오류검출부(240)는 최소 해밍 거리가 3인 해밍 코드의 특성상 신드롬데이터의 논리합 축소(Reduction) 연산결과에 따라 코드워드에 최대 두 개의 오류가 발생했다는 것을 검출할 수 있다.As shown in FIG. 23, the error detection unit 240 performs a logical sum operation on the syndrome data G output from the syndrome generation unit 210, and if any one of the received syndrome data is 1, it generates a signal indicating that an error has occurred. can be printed out. The error detection unit 240 may detect that a maximum of two errors occur in a codeword according to a result of an OR reduction operation of syndrome data due to the characteristics of Hamming codes having a minimum Hamming distance of 3.
오류정정부(230)의 제Y3배타적 논리합 게이트(#Y3XOR Gate) 내지 제Y3배타적 논리합 게이트(#Y136XOR Gate)는 각각은 메모리 셀 어레이(E)에서 읽어 온 데이터 비트 즉, D1 내지 D128와 신드롬복호화부(220)에서 출력되는 신호를 수신하여 배타적 논리합으로 연산하며 오류가 있는 데이터 비트를 정정해 출력할 수 있다. 일례로, 오류정정부(230)는 도 24의 (A)에 도시된 바와 같이, D1 내지 D 128이 정상적인 신호로 들어오면 메모리 셀 어레이(E) 그리고 신드롬복호화부(220)로부터 신호 ‘0’을 수신할 수 있다. 그리고 수신된 디지털 신호 ‘0’을 배타적 논리합 연산하여 ‘0000 … 0000’을 출력할 수 있다. 반면, 오류정정부(230)는 도 24의 (B)에 도시된 바와 같이, D1 내지 D128 가운데 D1이 오류가 발생한 신호로 들어오면, 제Y1배타적 논리합 게이트(#Y1XOR Gate)는 메모리 셀 어레이(E) 그리고 신드롬복호화부(220)의 Y3 출력 포트를 통해 디지털 신호 ‘1’을 수신한다. Each of the Y3-th exclusive OR gate (#Y3XOR Gate) to the Y3-th exclusive-OR gate (#Y136XOR Gate) of the error correction unit 230 performs syndrome decoding with data bits read from the memory cell array E, that is, D1 to D128. A signal output from the unit 220 may be received, an exclusive OR operation may be performed, and an erroneous data bit may be corrected and output. For example, as shown in (A) of FIG. 24, the error correcting unit 230 receives a signal '0' from the memory cell array E and the syndrome decoding unit 220 when D1 to D128 come in as normal signals. can receive Then, the received digital signal ‘0’ is subjected to an exclusive OR operation to obtain ‘0000 … 0000' can be output. On the other hand, as shown in (B) of FIG. 24, the error correcting unit 230, when D1 among D1 to D128 comes as an error signal, the Y1-th exclusive OR gate (#Y1XOR Gate) is a memory cell array ( E) Then, the digital signal '1' is received through the Y3 output port of the syndrome decoding unit 220.
그리고 나머지 제Y5배타적 논리합 게이트(#Y5XOR Gate) 내지 제Y136배타적 논리합 게이트(#Y136XOR Gate)는 메모리 셀 어레이(E) 그리고 신드롬복호화부(220)의 출력 포트를 통해 디지털 신호 ‘0’을 수신한다. 이때, 제Y3배타적 논리합 게이트(#Y3XOR Gate)는 수신한 신호를 배타적 논리합 연산하여 디지털 신호 ‘0’을 출력할 수 있다. 그리고 제Y5배타적 논리합 게이트(#Y5XOR Gate) 내지 제Y136배타적 논리합 게이트(#Y136XOR Gate) 또한 수신한 신호를 배타적 논리합 연산하여 디지털 신호‘0’을 출력한다. 이를 통해, 오류정정부(230)는 신드롬복호화부(220)를 통해 정정될 위치신호를 수신하여 오류가 발생된 데이터 비트가‘0000 … 0000’을이 입력되더라도 이를 올바르게‘0000 … 0001’로 정정할 수 있다.The remaining Y5th exclusive OR gate (#Y5XOR Gate) to Y136th exclusive OR gate (#Y136XOR Gate) receive the digital signal '0' through the memory cell array E and the output port of the syndrome decoding unit 220. . At this time, the Y3th exclusive OR gate (#Y3XOR Gate) may perform an exclusive OR operation on the received signal and output a digital signal '0'. The Y5th exclusive OR gate (#Y5XOR Gate) to the Y136th exclusive OR gate (#Y136XOR Gate) also perform an exclusive OR operation on the received signal and output a digital signal '0'. Through this, the error correcting unit 230 receives the position signal to be corrected through the syndrome decoding unit 220, and the data bit with the error is '0000...'. Even if '0000' is entered, it is correctly '0000...'. 0001'.
이때, PIM인에이블스위치부(260)는 도 25의 (A)에 도시된 바와 같이 PIM인에이블부(250)에서 디지털 신호 ‘0’이 입력되면 오류정정부(230)에서 출력되는 정정비트데이터(I)인 ‘0000 … 0000’을 출력한다. 반면, PIM인에이블스위치부(260)는 도 25의 (B)에 도시된 바와 같이 PIM인에이블부(250)에서 디지털 신호 ‘0’이 수신되면 정정되지 않은 데이터비트(B-2)를 그대로 출력한다. 일례로 오류가 발생된 데이터 비트인 ‘0000 … 0000’을 그대로 출력할 수 있다.At this time, the PIM enable switch unit 260, as shown in (A) of FIG. 25, receives correction bit data output from the error correction unit 230 when the digital signal '0' is input from the PIM enable unit 250. (I) '0000 ... 0000' is output. On the other hand, as shown in (B) of FIG. 25, the PIM enable switch unit 260 transmits the uncorrected data bit B-2 as it is when the digital signal '0' is received from the PIM enable unit 250. print out For example, ‘0000 … which is the data bit in error. 0000’ can be output as it is.
본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 PIM인에이블신호가 디지털 신호 ‘0’인 경우, PIM인에이블스위치부(260)에서 정정된 데이터(Corrected data)를 출력하므로 기존과 동일하게 싱글-오류 정정(Single-error correction)으로 사용될 수 있다. 반면, PIM인에이블신호가 디지털 신호 ‘1’인 경우, PIM인에이블스위치부(260)에서는 입력된 데이터를 그대로 출력하며 오류 신호를 그대로 출력하며 오류를 간소화된 절차 만으로 신속하게 검출한 후 추후의 단에서 오류가 있는 데이터가 정정되도록 처리되도록 하며, 데이터 처리의 시간을 단축시킬 수 있다.In the on-die error correction code of the present invention, in the memory device 1 capable of dynamically switching between error correction and error detection, when the PIM enable signal is a digital signal '0', the PIM enable switch unit 260 corrects data (Corrected data) is output, so it can be used as single-error correction in the same way as before. On the other hand, when the PIM enable signal is a digital signal '1', the PIM enable switch unit 260 outputs the input data as it is and outputs an error signal as it is, quickly detecting the error with only a simplified procedure, and then In this step, erroneous data is processed to be corrected, and the time of data processing can be shortened.
이를 통해, 본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 일반 DRAM Read의 경우 신드롬생성부(210), 신드롬복호화부(220), 오류정정부(230)를 모두 지나야만 정정데이터가 출력되어 입력데이터를 처리하는데 오랜 시간이 걸리는 문제를 해결할 수 있다.Through this, the memory device 1 capable of dynamically switching error correction and error detection in the on-die error correction code of the present invention includes a syndrome generator 210, a syndrome decoder 220, and an error correction unit in case of general DRAM Read. It is possible to solve the problem that it takes a long time to process the input data because correction data is output only when all of the steps 230 are passed.
또한, 본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 도 25에 도시된 오류검출부(240)의 특징에 기반하여 여러 비트의 오류 검출을 동시에 감지하며 처리되는 데이터 비트의 오류 검출에 대한 높은 신뢰도를 나타낼 수 있다.In addition, the memory device 1 capable of dynamically switching between error correction and error detection in the on-die error correction code of the present invention simultaneously detects errors of several bits based on the characteristics of the error detection unit 240 shown in FIG. and can show high reliability for error detection of data bits being processed.
또한, 본 발명은 기존의 온-다이 ECC엔진에 PIM인에이블부(250) 및 PIM인에이블스위치부만이 추가된 구조로 형성될 수 있어, 기존의 DDR5 SDRAM(Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory) 뿐만 아니라 온-다이 ECC를 적용하는 메모리에 용이하게 적용되며 기존의 온-다이 ECC엔진의 재활용성을 높일 수 있도록 한다.In addition, the present invention can be formed in a structure in which only the PIM enable unit 250 and the PIM enable switch unit are added to the existing on-die ECC engine, so that the existing DDR5 SDRAM (Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory), as well as memory to which on-die ECC is applied, and enhances the reusability of the existing on-die ECC engine.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시 적인 것이며 한정적이 아닌 것으로 이해해야 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can be implemented in other specific forms without changing the technical spirit or essential features of the present invention. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.
[부호의 설명][Description of code]
1: 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치1: Dynamically switchable memory device for error correction and error detection in on-die error correction code
10: 오류정정코드부호기10: Error correction code encoder
110: 패리티생성부110: parity generator
20: 오류정정코드복호기20: Error correction code decoder
210: 신드롬생성부 210: syndrome generator
220: 신드롬복호화부220: syndrome decoding unit
221: 제1패리티모듈 212: 제2패리티모듈221: first parity module 212: second parity module
230: 오류정정부 230: error correction unit
240: 오류검출부240: error detection unit
241: 논리합 게이트241: OR gate
250: PIM인에이블부 260: PIM인에이블스위치부250: PIM enable unit 260: PIM enable switch unit
A: 메모리제어부 B-1, B-2: 데이터비트A: memory control unit B-1, B-2: data bit
C, F: 패리트비트 D-1, D-2: 코드워드C, F: parity bit D-1, D-2: code word
E: 메모리 셀어레이 G: 신드롬데이터E: memory cell array G: syndrome data
H: 오류위치비트 I: 정정비트데이터H: Error location bit I: Correction bit data

Claims (7)

  1. 메모리제어부(A)에서 입력되는 데이터비트(B-1)에서 패리티비트(C)를 생성하여 메모리 셀어레이(E, Cell Array)에 데이터비트(B-1)와 패리티비트(C)를 포함하는 코드워드(D-1)를 쓰는 패리티생성부(110)를 포함하는 오류정정코드부호기(10, Error Correction Code encoder) 및A parity bit (C) is generated from the data bit (B-1) input from the memory controller (A), and the memory cell array (E, Cell Array) includes the data bit (B-1) and the parity bit (C). An error correction code encoder (10, Error Correction Code encoder) including a parity generator 110 that writes a code word (D-1), and
    메모리 셀어레이(E)에 쓰여진 데이터비트(B-2)와 패리티비트(F)를 포함하는 코드워드(D-2)를 읽어온 후, 연산하여 신드롬데이터(G)를 생성하는 신드롬생성부(210)와, 신드롬생성부(210)를 통해 생성된 신드롬데이터(G)를 복호화 하여 오류 비트의 위치를 나타내는 오류위치비트(H)를 생성하는 신드롬복호화부(220)와,Syndrome generation unit for generating syndrome data (G) by reading the code word (D-2) including the data bit (B-2) and parity bit (F) written in the memory cell array (E), and performing an operation ( 210) and a syndrome decoding unit 220 that decodes the syndrome data (G) generated through the syndrome generating unit 210 to generate error location bits (H) indicating the location of error bits;
    메모리 셀어레이(E)에서 데이터비트(B-2)와 신드롬복호화부(220)에서 생성된 오류위치비트(H)를 수신하면, 데이터비트(B-2)와 오류위치비트(H)의 위치 별 각 비트를 비교 연산하여 정정비트데이터(I)를 생성하는 오류정정부(230)와,When the data bit (B-2) and the error location bit (H) generated by the syndrome decoding unit 220 are received from the memory cell array (E), the positions of the data bit (B-2) and the error location bit (H) An error correcting unit 230 that generates corrected bit data (I) by comparing and calculating each bit of each star;
    신드롬생성부(210)에서 출력된 신드롬데이터(G)를 수신한 후, 논리합 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력하는 오류검출부(240)와,An error detection unit 240 that receives the syndrome data (G) output from the syndrome generator 210, performs a logical sum operation, and outputs a digital signal '1' or a digital signal '0' as an operation value;
    디지털 신호 ‘0’과 디지털 신호 ‘1’을 포함하여, 메모리제어부(A)에서 제어되며 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력하는 PIM인에이블부(250)와,A PIM enable unit 250 that includes digital signal '0' and digital signal '1' and is controlled by the memory controller A and outputs either digital signal '0' or digital signal '1';
    메모리 셀어레이(E)를 통해 데이터비트(B-2)를 수신하고, 오류정정부(230)를 통해 정정비트데이터(I)를 수신하고, PIM인에이블부(250)에서 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 수신하여, PIM인에이블부(250)에서 디지털 신호 ‘0’이 수신되면 오류정정부(230)에서 출력되는 정정비트데이터(I)를 출력하고, PIM인에이블부(250)에서 디지털 신호 ‘1’이 수신되면 데이터비트(B-2)를 출력하는 PIM인에이블스위치부(260)가 구비된 오류정정코드복호기(20)를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.The data bit (B-2) is received through the memory cell array (E), the corrected bit data (I) is received through the error correction unit 230, and the digital signal '0' is received from the PIM enable unit 250. Alternatively, when receiving any one of the digital signal '1' and receiving the digital signal '0' from the PIM enable unit 250, the corrected bit data (I) output from the error correcting unit 230 is output, and the PIM An on-die error including an error correction code decoder 20 equipped with a PIM enable switch unit 260 that outputs a data bit (B-2) when a digital signal '1' is received from the enable unit 250. A memory device capable of dynamically switching between error correction and error detection in correcting code.
  2. 제1항에 있어서, 신드롬생성부(210)는,The method of claim 1, wherein the syndrome generator 210,
    메모리(1)가 읽기 동작을 수행할 때, 메모리 셀에레이(E)로부터 코드워드(D-2)를 수신하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.A memory device capable of dynamically switching between error correction and error detection in an on-die error correction code, which receives a codeword (D-2) from a memory cell array (E) when the memory (1) performs a read operation.
  3. 제2항에 있어서, 신드롬생성부(210)는,The method of claim 2, wherein the syndrome generator 210,
    복수 개의 배타적 논리합 게이트(#1~#8)를 포함하여 코드워드(D-2)의 데이터비트(B-2)를 읽어 새로운 패리트비트(C)를 연산하는 제1패리티모듈(211)과,A first parity module 211 including a plurality of exclusive OR gates (#1 to #8) to read the data bit (B-2) of the codeword (D-2) and calculate a new parity bit (C); ,
    복수 개의 배타적 논리합 게이트(#9~#16)를 포함하여 메모리 셀어레이(E, Cell Array)를 통해 수신된 패리티비트(F)와 제1패리티모듈(211)에서 출력되는 패리트비트(C)를 수신하여 배타적 논리합 연산을 실행하는 제2패리티모듈(212)을 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.A parity bit (F) received through a memory cell array (E) including a plurality of exclusive OR gates (#9 to #16) and a parity bit (C) output from the first parity module 211 A memory device capable of dynamically switching between error correction and error detection in an on-die error correction code, including a second parity module 212 that receives and executes an exclusive OR operation.
  4. 제3항에 있어서,According to claim 3,
    제1패리티모듈(211)과 제2패리티모듈(212)은 동일한 개수의 배타적 논리합 게이트(XOR Gate)를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.A memory device capable of dynamically switching between error correction and error detection in an on-die error correction code, wherein the first parity module 211 and the second parity module 212 include the same number of XOR gates.
  5. 제3항에 있어서, 신드롬복호화부(220)는,The method of claim 3, wherein the syndrome decoding unit 220,
    입력측에 입력되는 신드롬데이터(G)를 10진수로 복호화 한 후, 복호화된 10진수의 값에 대응하는 위치에 있는 출력단에 디지털 신호 ‘1’을 출력하고, 나머지 위치에 있는 출력단에는 디지털 신호 ‘0’을 출력하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.After decoding the syndrome data (G) input to the input side into decimal numbers, the digital signal '1' is output to the output terminal corresponding to the value of the decoded decimal number, and the digital signal '0' is output to the output terminal located in the remaining position. A memory device capable of dynamically switching between error correction and error detection in an on-die error correction code, outputting '.
  6. 제5항에 있어서, 오류정정부(230)는,The method of claim 5, wherein the error correction unit 230,
    제1입력단이 코드워드(D-2)를 수신하고,The first input terminal receives the codeword (D-2),
    제2입력단이 신드롬복호화부(220)에서 출력된 디지털 신호를 수신하여, 배타적 논리합 연산을 실행하는 배타적 논리합 게이트를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.A memory device capable of dynamically switching between error correction and error detection in an on-die error correction code, including an exclusive OR gate for receiving the digital signal output from the syndrome decoding unit 220 and performing an exclusive OR operation on the second input terminal. .
  7. 제1항에 있어서, 오류검출부(240)는,The method of claim 1, wherein the error detection unit 240,
    신드롬생성부(210)에서 입력되는 신드롬데이터(G) 가운데, 어느 하나의 디지털 신호 ‘1’이 입력되면 오류신호를 출력하는, 논리합 게이트(241)를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.Among the syndrome data (G) input from the syndrome generating unit 210, if any one digital signal '1' is input, an error signal is output in the on-die error correction code including the OR gate 241, which outputs an error signal. Dynamically switchable memory devices for correction and error detection.
PCT/KR2021/019871 2021-12-03 2021-12-24 Memory device capable of dynamically switching error correction and error detection in on-die error correction code WO2023101097A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210171922A KR20230083689A (en) 2021-12-03 2021-12-03 Memory device capable of dynamically switching between error correction code and error detection code in on-die Error Correction Code
KR10-2021-0171922 2021-12-03

Publications (1)

Publication Number Publication Date
WO2023101097A1 true WO2023101097A1 (en) 2023-06-08

Family

ID=86612511

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/019871 WO2023101097A1 (en) 2021-12-03 2021-12-24 Memory device capable of dynamically switching error correction and error detection in on-die error correction code

Country Status (2)

Country Link
KR (1) KR20230083689A (en)
WO (1) WO2023101097A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116524992A (en) * 2023-06-29 2023-08-01 上海飞斯信息科技有限公司 High-capacity high-speed solid-state memory capacity management system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006179131A (en) * 2004-12-22 2006-07-06 Fujitsu Ltd Memory system and semiconductor storage device
KR20130004045A (en) * 2011-07-01 2013-01-09 삼성전자주식회사 Semiconductor memory device having an error correction function and memory system including the same
KR20200133808A (en) * 2018-04-20 2020-11-30 마이크론 테크놀로지, 인크 Error correction using hierarchical decoder
KR20200142213A (en) * 2019-06-12 2020-12-22 삼성전자주식회사 Error correction circuit of semiconductor memory device, semiconductor memory device and memory system
KR20210092391A (en) * 2020-01-16 2021-07-26 삼성전자주식회사 Error correction circuits of semiconductor memory devices and semiconductor memory devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006179131A (en) * 2004-12-22 2006-07-06 Fujitsu Ltd Memory system and semiconductor storage device
KR20130004045A (en) * 2011-07-01 2013-01-09 삼성전자주식회사 Semiconductor memory device having an error correction function and memory system including the same
KR20200133808A (en) * 2018-04-20 2020-11-30 마이크론 테크놀로지, 인크 Error correction using hierarchical decoder
KR20200142213A (en) * 2019-06-12 2020-12-22 삼성전자주식회사 Error correction circuit of semiconductor memory device, semiconductor memory device and memory system
KR20210092391A (en) * 2020-01-16 2021-07-26 삼성전자주식회사 Error correction circuits of semiconductor memory devices and semiconductor memory devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116524992A (en) * 2023-06-29 2023-08-01 上海飞斯信息科技有限公司 High-capacity high-speed solid-state memory capacity management system
CN116524992B (en) * 2023-06-29 2023-09-15 上海飞斯信息科技有限公司 High-capacity high-speed solid-state memory capacity management system

Also Published As

Publication number Publication date
KR20230083689A (en) 2023-06-12

Similar Documents

Publication Publication Date Title
US7412642B2 (en) System and method for tolerating communication lane failures
US7844880B2 (en) Error correction for flash memory
EP0540450B1 (en) ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US7231585B2 (en) Error correction for flash memory
US5922080A (en) Method and apparatus for performing error detection and correction with memory devices
US8880970B2 (en) Error detection method and a system including one or more memory devices
KR102231294B1 (en) Information processing apparatus and system providing plurality of levels of error correction, and operating method thereof
JP2008299855A (en) Memory system provided with multichannel error correction coder using embedded memory and method thereof
CN109697176B (en) Storage device and interface chip thereof
CN1530836A (en) Nonvolatile memory device and data processing system
WO2023101097A1 (en) Memory device capable of dynamically switching error correction and error detection in on-die error correction code
WO2014137202A1 (en) Error correction processing circuit in memory and error correction processing method
EP0147336B1 (en) Error correcting and detecting system
WO2018223899A1 (en) Encoding method and device, decoding method and device, and display device
US7752527B2 (en) Microcontroller and RAM
JP2008005419A (en) Information processing apparatus and information processing method
CN1146116C (en) Shortened fire code error-trapping decoding method and apparatus
US6438726B1 (en) Method of dual use of non-volatile memory for error correction
EP0527025B1 (en) Circuit and method of error detection and correction in data words with checkbits
WO2014137033A1 (en) Apparatus and method for controlling memory in mobile communication system
US5539754A (en) Method and circuitry for generating syndrome bits within an error correction and detection circuit
US8683308B2 (en) Semiconductor device, information processing apparatus, and method of detecting error
US11467760B1 (en) Selective erasure decoding for memory devices
KR20080022630A (en) Data path in semiconductor memory device including error correction code
CN1167222C (en) Method for error correction and error detection of data transmission between optical large scale memory and host computer

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: 21966523

Country of ref document: EP

Kind code of ref document: A1