KR20190043043A - 전자장치 - Google Patents

전자장치 Download PDF

Info

Publication number
KR20190043043A
KR20190043043A KR1020170134860A KR20170134860A KR20190043043A KR 20190043043 A KR20190043043 A KR 20190043043A KR 1020170134860 A KR1020170134860 A KR 1020170134860A KR 20170134860 A KR20170134860 A KR 20170134860A KR 20190043043 A KR20190043043 A KR 20190043043A
Authority
KR
South Korea
Prior art keywords
data
parity
error
bit
internal
Prior art date
Application number
KR1020170134860A
Other languages
English (en)
Inventor
이재인
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020170134860A priority Critical patent/KR20190043043A/ko
Priority to TW107111820A priority patent/TWI774749B/zh
Priority to US15/947,438 priority patent/US10552277B2/en
Priority to CN201810359609.6A priority patent/CN109669801B/zh
Publication of KR20190043043A publication Critical patent/KR20190043043A/ko
Priority to US16/723,908 priority patent/US11048602B2/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Sheets, Magazines, And Separation Thereof (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

전자장치는 리드동작 시 데이터가 출력될 때마다 카운팅되는 에러삽입코드를 생성하는 에러발생제어회로; 상기 에러삽입코드에 응답하여 데이터를 변환하여 내부데이터를 생성하는 데이터변환회로; 상기 에러삽입코드에 응답하여 패러티를 변환하여 내부패러티를 생성하는 패러티변환회로; 및 상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함한다.

Description

전자장치{ELECTRONIC DEVICE}
본 발명은 에러정정코드를 사용하는 전자장치에 관한 것이다.
최근 반도체장치의 동작속도를 증가시키기 위해 클럭 사이클(cycle)마다 4비트 또는 8비트의 데이터를 입/출력하는 DDR2, DDR3 방식 등이 사용되고 있다. 데이터의 입/출력 속도가 빨라지는 경우 데이터가 전송되는 과정 중 발생되는 에러의 발생 확률도 증가 되므로, 데이터 전송의 신뢰성을 보장하기 위한 별도의 장치와 방법이 추가적으로 요구되고 있다.
데이터 전송 시마다 에러 발생 여부를 확인할 수 있는 에러코드를 생성하여 데이터와 함께 전송함으로써, 데이터 전송의 신뢰성을 보장하는 방법을 사용하고 있다. 에러코드에는 발생한 에러를 검출할 수 있는 에러검출코드(Error Detection Code, EDC)와, 에러 발생시 이를 자체적으로 정정할 수 있는 에러정정코드(Error Correction Code, ECC) 등이 있다.
본 발명은 에러정정코드를 검증할 수 있는 전자장치를 제공한다.
이를 위해 본 발명은 리드동작 시 데이터가 출력될 때마다 카운팅되는 에러삽입코드를 생성하는 에러발생제어회로; 상기 에러삽입코드에 응답하여 데이터를 변환하여 내부데이터를 생성하는 데이터변환회로; 상기 에러삽입코드에 응답하여 패러티를 변환하여 내부패러티를 생성하는 패러티변환회로; 및 상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함하는 전자장치를 제공한다.
또한, 본 발명은 에러체크매트릭스에 응답하여 데이터에 포함된 비트들 중 선택된 비트들을 논리 연산하여 패러티를 생성하는 패러티생성회로; 에러삽입코드에 응답하여 데이터를 변환하여 내부데이터를 생성하는 데이터변환회로; 에러삽입코드에 응답하여 패러티를 변환하여 내부패러티를 생성하는 패러티변환회로; 및 상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함하는 전자장치를 제공한다.
또한, 본 발명은 에러체크매트릭스에 따라 데이터 및 패러티에 포함된 비트들 중 적어도 하나의 비트에 대응되는 논리레벨조합을 갖는 에러삽입코드를 생성하는 에러발생제어회로; 상기 에러삽입코드의 논리레벨조합에 따라 상기 데이터에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 내부데이터를 생성하는 데이터변환회로; 상기 에러삽입코드의 논리레벨조합에 따라 상기 패러티에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 내부패러티를 생성하는 패러티변환회로; 및 상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함하는 전자장치를 제공한다.
본 발명에 의하면 에러정정코드에 의해 데이터에 에러를 발생시키고, 에러가 발생된 데이터를 통해 생성된 신드롬에 의해 에러정정코드의 정상 동작 여부를 검증할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 전자장치의 구성을 도시한 블록도이다.
도 2는 도 1에 도시된 전자장치에서 사용되는 에러정정코드를 구현하기 위한 에러체크매트릭스의 일 실시예를 도시한 표이다.
도 3은 도 1에 도시된 전자장치에 포함된 패러티생성회로의 일 실시예에 따른 회로도이다.
도 4는 도 1에 도시된 전자장치에 포함된 에러발생제어회로의 일 실시예에 따른 도면이다.
도 5는 도 4에 도시된 에러발생제어회로에서 생성되는 에러삽입코드의 논리레벨조합을 보여주는 표이다.
도 6은 도 1에 도시된 전자장치에 포함된 데이터변환회로의 일 실시예에 따른 회로도이다.
도 7은 도 1에 도시된 전자장치에 포함된 패러티변환회로의 일 실시예에 따른 회로도이다.
도 8은 도 1에 도시된 전자장치에 포함된 신드롬생성회로의 일 실시예에 따른 회로도이다.
도 9는 도 1에 도시된 전자장치에 포함된 검증신호생성회로의 일 실시예에 따른 회로도이다.
도 10 및 도 11은 도 1에 도시된 전자장치가 적용된 전자시스템의 일 실시예에 따른 구성을 도시한 도면이다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전자장치는 패러티생성회로(1), 에러발생제어회로(2), 데이터변환회로(3), 패러티변환회로(4), 신드롬생성회로(5) 및 검증신호생성회로(6)를 포함할 수 있다.
패러티생성회로(1)는 데이터(D<4:1>)를 입력받아 패러티(P<3:1>)를 생성할 수 있다. 패러티생성회로(1)는 데이터(D<4:1>)에 포함된 비트들을 선택적으로 논리 연산하여 패러티(P<3:1>)를 생성할 수 있다. 패러티(P<3:1>)는 해밍코드(Hamming Code)를 이용한 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 생성될 수 있다. 해밍코드(Hamming Code)는 데이터의 에러를 정정하기 위한 에러체크매트릭스에 의해 구현될 수 있다. 패러티생성회로(1)의 보다 구체적인 구성 및 동작은 도 2 및 도 3을 참고하여 후술한다.
에러발생제어회로(2)는 리드신호(RD) 및 컬럼펄스(CASP)에 응답하여 에러삽입코드(EI<3:1>)를 생성할 수 있다. 에러발생제어회로(2)는 리드신호(RD)가 인에이블된 상태에서 컬럼펄스(CASP)가 발생되는 시점에서 카운팅되는 에러삽입코드(EI<3:1>)를 생성할 수 있다. 리드신호(RD)는 리드동작이 수행되는 경우 인에이블될 수 있다. 컬럼펄스(CASP)는 리드동작에서 데이터(D<4:1>)가 메모리셀(미도시)에서 출력될 때마다 발생될 수 있다. 에러발생제어회로(2)의 보다 구체적인 구성 및 동작은 도 4 및 도 5를 참고하여 후술한다.
데이터변환회로(3)는 에러삽입코드(EI<3:1>)에 응답하여 데이터(D<4:1>)로부터 내부데이터(ID<4:1>)를 생성할 수 있다. 데이터변환회로(3)는 데이터(D<4:1>)에 포함된 비트들 중 에러삽입코드(EI<3:1>)의 논리레벨조합에 대응하는 비트를 반전시켜 내부데이터(ID<4:1>)를 생성할 수 있다. 에러삽입코드(EI<3:1>)의 논리레벨조합에 대응하는 데이터(D<4:1>)의 비트는 실시예에 따라서 다양하게 설정될 수 있다. 데이터변환회로(3)의 보다 구체적인 구성 및 동작은 도 6을 참고하여 후술한다.
패러티변환회로(4)는 에러삽입코드(EI<3:1>)에 응답하여 패러티(P<3:1>)로부터 내부패러티(IP<3:1>)를 생성할 수 있다. 패러티변환회로(4)는 패러티(P<3:1>)에 포함된 비트들 중 에러삽입코드(EI<3:1>)의 논리레벨조합에 대응하는 비트를 반전시켜 내부패러티(IP<3:1>)를 생성할 수 있다. 에러삽입코드(EI<3:1>)의 논리레벨조합에 대응하는 패러티(P<3:1>)의 비트는 실시예에 따라서 다양하게 설정될 수 있다. 패러티변환회로(4)의 보다 구체적인 구성 및 동작은 도 7을 참고하여 후술한다.
신드롬생성회로(5)는 내부데이터(ID<4:1>) 및 내부패러티(IP<3:1>)에 응답하여 신드롬(S<3:1>)을 생성할 수 있다. 신드롬생성회로(5)는 내부데이터(ID<4:1>) 및 내부패러티(IP<3:1>)에 포함된 비트들을 선택적으로 논리 연산하여 신드롬(S<3:1>)을 생성할 수 있다. 신드롬(S<3:1>)은 해밍코드(Hamming Code)를 이용한 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 생성될 수 있다. 해밍코드(Hamming Code)는 데이터의 에러를 정정하기 위한 에러체크매트릭스에 의해 구현될 수 있다. 신드롬생성회로(5)의 보다 구체적인 구성 및 동작은 도 8을 참고하여 후술한다.
검증신호생성회로(6)는 에러삽입코드(EI<3:1>) 및 신드롬(S<3:1>)에 응답하여 검증신호(VR)를 생성할 수 있다. 검증신호생성회로(6)는 에러삽입코드(EI<3:1>) 및 신드롬(S<3:1>)이 동일한 경우 제1 로직레벨을 갖는 검증신호(VR)를 생성할 수 있다. 검증신호생성회로(6)는 에러삽입코드(EI<3:1>) 및 신드롬(S<3:1>)이 상이한 경우 제2 로직레벨을 갖는 검증신호(VR)를 생성할 수 있다. 제1 로직레벨은 로직하이레벨로 설정될 수 있고, 제2 로직레벨은 로직로우레벨로 설정될 수 있다. 제1 및 제2 로직레벨은 실시예에 따라서 다르게 설정될 수 있다. 검증신호생성회로(6)의 보다 구체적인 구성 및 동작은 도 9를 참고하여 후술한다.
도 2를 참고하면 본 발명의 일 실시예에 따른 전자장치에서 사용되는 에러체크매트릭스를 확인할 수 있다. 본 발명의 일 실시예에 따른 에러체크매트릭스는 제1 매트릭스(1st MATRIX) 및 제2 매트릭스(2nd MATRIX)를 포함할 수 있다.
제1 매트릭스(1st MATRIX)는 패러티(P<3:1>)에 포함된 비트들에 에러가 있는 지 여부에 대한 정보를 포함할 수 있다. 제1 매트릭스(1st MATRIX)의 첫번째 컬럼의 논리레벨 조합 '0, 0, 1'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 패러티의 제1 비트(P<1>)에 에러가 발생됨이 확인될 수 있다. 신드롬(S<3:1>)이 '0, 0, 1' 논리레벨조합을 갖는 경우라 함은 신드롬의 제1 비트(S<1>)가 로직하이레벨이고, 신드롬의 제2 및 제3 비트(S<2:3>)가 모두 로직로우레벨임을 의미한다. 제1 매트릭스(1st MATRIX)의 두번째 컬럼의 논리레벨 조합 '0, 1, 0'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 패러티의 제2 비트(P<2>)에 에러가 발생됨이 확인될 수 있다. 제1 매트릭스(1st MATRIX)의 세번째 컬럼의 논리레벨 조합 '1, 0, 0'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 패러티의 제3 비트(P<3>)에 에러가 발생됨이 확인될 수 있다. 이하 논리레벨이 '1'이라함은 로직하이레벨임을 의미하고, 논리레벨이 '0'이라함은 '로직로우레벨임을 의미한다.
제2 매트릭스(2nd MATRIX)는 데이터(D<4:1>)에 포함된 비트들에 에러가 있는 지 여부에 대한 정보를 포함할 수 있다. 제2 매트릭스(2nd MATRIX)의 첫번째 컬럼의 논리레벨 조합 '0, 1, 1'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 데이터의 제1 비트(D<1>)에 에러가 발생됨이 확인될 수 있다. 제2 매트릭스(2nd MATRIX)의 두번째 컬럼의 논리레벨 조합 '1, 0, 1'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 데이터의 제2 비트(D<2>)에 에러가 발생됨이 확인될 수 있다. 제2 매트릭스(2nd MATRIX)의 세번째 컬럼의 논리레벨 조합 '1, 1, 0'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 데이터의 제3 비트(D<3>)에 에러가 발생됨이 확인될 수 있다. 제2 매트릭스(2nd MATRIX)의 네번째 컬럼의 논리레벨 조합 '1, 1, 1'과 동일한 논리레벨조합을 갖는 신드롬(S<3:1>)이 생성되는 경우 데이터의 제4 비트(D<4>)에 에러가 발생됨이 확인될 수 있다.
제2 매트릭스(2nd MATRIX)는 패러티(P<3:1>)를 생성하기 위해 데이터(D<4:1>)에 포함된 비트들의 논리레벨 조합에 대한 정보를 포함할 수 있다. 제2 매트릭스(2nd MATRIX)의 첫번째 로우의 논리레벨 조합은 '1, 1, 0, 1'이므로, 패러티의 제1 비트(P<1>)는 데이터의 제1 비트(D<1>), 데이터의 제2 비트(D<2>) 및 데이터의 제4 비트(D<4>)의 배타적논리 연산 수행 결과 생성될 수 있다. 제2 매트릭스(2nd MATRIX)의 두번째 로우의 논리레벨 조합은 '1, 0, 1, 1'이므로, 패러티의 제2 비트(P<2>)는 데이터의 제1 비트(D<1>), 데이터의 제3 비트(D<3>) 및 데이터의 제4 비트(D<4>)의 배타적논리 연산 수행 결과 생성될 수 있다. 제2 매트릭스(2nd MATRIX)의 세번째 로우의 논리레벨 조합은 '0, 1, 1, 1'이므로, 패러티의 제3 비트(P<3>)는 데이터의 제2 비트(D<2>), 데이터의 제3 비트(D<3>) 및 데이터의 제4 비트(D<4>)의 배타적논리 연산 수행 결과 생성될 수 있다.
도 3을 참고하면 패러티생성회로(1)는 제1 패러티생성회로(11), 제2 패러티생성회로(12) 및 제3 패러티생성회로(13)를 포함할 수 있다. 제1 패러티생성회로(11)는 도 2에 도시된 제2 매트릭스(2nd MATRIX)의 첫번째 로우의 논리레벨조합인 '1, 1, 0, 1'에 따라 데이터의 제1 비트(D<1>), 데이터의 제2 비트(D<2>) 및 데이터의 제4 비트(D<4>)의 배타적논리 연산 수행 결과 패러티의 제1 비트(P<1>)를 생성할 수 있다. 제2 패러티생성회로(12)는 도 2에 도시된 제2 매트릭스(2nd MATRIX)의 두번째 로우의 논리레벨조합인 '1, 0, 1, 1'에 따라 데이터의 제1 비트(D<1>), 데이터의 제3 비트(D<3>) 및 데이터의 제4 비트(D<4>)의 배타적논리 연산 수행 결과 패러티의 제2 비트(P<2>)를 생성할 수 있다. 제3 패러티생성회로(13)는 도 2에 도시된 제2 매트릭스(2nd MATRIX)의 세번째 로우의 논리레벨조합인 '0, 1, 1, 1'에 따라 데이터의 제2 비트(D<2>), 데이터의 제3 비트(D<3>) 및 데이터의 제4 비트(D<4>)의 배타적논리 연산 수행 결과 패러티의 제3 비트(P<3>)를 생성할 수 있다.
도 4를 참고하면 에러발생제어회로(2)는 카운팅펄스생성회로(21) 및 카운터회로(22)를 포함할 수 있다. 카운팅펄스생성회로(21)는 리드신호(RD) 및 컬럼펄스(CASP)에 응답하여 카운팅펄스(CNTP)를 생성할 수 있다. 카운팅펄스생성회로(21)는 리드동작이 수행되어 리드신호(RD)가 인에이블된 상태에서 데이터(D<4:1>)가 메모리셀(미도시)에서 출력되어 컬럼펄스(CASP)가 발생될 때마다 카운팅펄스(CNTP)를 발생시킬 수 있다. 카운터회로(22)는 카운팅펄스(CNTP)가 발생될 때마다 순차적으로 카운팅되는 에러삽입코드(EI<3:1>)를 생성할 수 있다.
도 5를 참고하면 도 4에 도시된 에러발생제어회로(2)에서 생성되는 에러삽입코드(EI<3:1>)의 논리레벨조합을 확인할 수 있다. 에러삽입코드(EI<3:1>)가 '0,0,0'의 논리레벨조합으로 설정된 상태에서 첫번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '0, 0, 1'의 논리레벨조합을 갖는다. 에러삽입코드(EI<3:1>)가 '0, 0, 1'의 논리레벨조합을 갖는 경우라 함은 에러삽입코드의 제1 비트(EI<1>)가 로직하이레벨이고, 에러삽입코드의 제2 및 제3 비트(EI<3:2>)가 로직로우레벨임을 의미한다. 두번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '0, 1, 0'의 논리레벨조합을 갖고, 세번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '0, 1, 1'의 논리레벨조합을 갖는다. 네번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '1, 0, 0'의 논리레벨조합을 갖고, 다섯번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '1, 0, 1'의 논리레벨조합을 갖는다. 여섯번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '1, 1, 0'의 논리레벨조합을 갖고, 일곱번째 카운팅펄스(CNTP)가 발생하는 경우 에러삽입코드(EI<3:1>)는 카운팅되어 '1, 1, 1'의 논리레벨조합을 갖는다.
에러삽입코드(EI<3:1>)가 갖는 '0, 0, 1'의 논리레벨조합은 패러티의 제1 비트(P<1>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다. 에러삽입코드(EI<3:1>)가 갖는 '0, 1, 0'의 논리레벨조합은 패러티의 제2 비트(P<2>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다. 에러삽입코드(EI<3:1>)가 갖는 '0, 1, 1'의 논리레벨조합은 데이터의 제1 비트(D<1>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다. 에러삽입코드(EI<3:1>)가 갖는 '1, 0, 0'의 논리레벨조합은 패러티의 제3 비트(P<3>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다. 에러삽입코드(EI<3:1>)가 갖는 '1, 0, 1'의 논리레벨조합은 데이터의 제2 비트(D<2>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다. 에러삽입코드(EI<3:1>)가 갖는 '1, 1, 0'의 논리레벨조합은 데이터의 제3 비트(D<3>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다. 에러삽입코드(EI<3:1>)가 갖는 '1, 1, 1'의 논리레벨조합은 데이터의 제4 비트(D<4>)에 에러가 발생될 때 생성되는 신드롬(S<3:1>)의 논리레벨조합과 동일하다.
도 6을 참고하면 데이터변환회로(3)는 데이터변환신호생성회로(31) 및 제1 내부데이터생성회로(32), 제2 내부데이터생성회로(33), 제3 내부데이터생성회로(34) 및 제4 내부데이터생성회로(35)를 포함할 수 있다.
데이터변환신호생성회로(31)는 에러삽입코드(EI<3:1>)가 갖는 '0, 1, 1'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제1 변환데이터(DV<1>)를 생성할 수 있다. 데이터변환신호생성회로(31)는 에러삽입코드(EI<3:1>)가 갖는 '1, 0, 1'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제2 변환데이터(DV<2>)를 생성할 수 있다. 데이터변환신호생성회로(31)는 에러삽입코드(EI<3:1>)가 갖는 '1, 1, 0'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제3 변환데이터(DV<3>)를 생성할 수 있다. 데이터변환신호생성회로(31)는 에러삽입코드(EI<3:1>)가 갖는 '1, 1, 1'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제4 변환데이터(DV<4>)를 생성할 수 있다.
제1 내부데이터생성회로(32)는 제1 변환데이터(DV<1>)가 로직하이레벨을 갖는 경우 데이터의 제1 비트(D<1>)를 반전시켜 내부데이터의 제1 비트(ID<1>)를 생성할 수 있다. '0, 1, 1'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제1 변환데이터(DV<1>)가 로직하이레벨을 갖는 경우 데이터의 제1 비트(D<1>)를 반전시켜 내부데이터의 제1 비트(ID<1>)에 에러를 발생시킬 수 있다.
제2 내부데이터생성회로(33)는 제2 변환데이터(DV<2>)가 로직하이레벨을 갖는 경우 데이터의 제2 비트(D<2>)를 반전시켜 내부데이터의 제2 비트(ID<2>)를 생성할 수 있다. '1, 0, 1'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제2 변환데이터(DV<2>)가 로직하이레벨을 갖는 경우 데이터의 제2 비트(D<2>)를 반전시켜 내부데이터의 제2 비트(ID<2>)에 에러를 발생시킬 수 있다.
제3 내부데이터생성회로(34)는 제3 변환데이터(DV<3>)가 로직하이레벨을 갖는 경우 데이터의 제3 비트(D<3>)를 반전시켜 내부데이터의 제3 비트(ID<3>)를 생성할 수 있다. '1, 1, 0'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제3 변환데이터(DV<3>)가 로직하이레벨을 갖는 경우 데이터의 제3 비트(D<3>)를 반전시켜 내부데이터의 제3 비트(ID<3>)에 에러를 발생시킬 수 있다.
제4 내부데이터생성회로(35)는 제4 변환데이터(DV<4>)가 로직하이레벨을 갖는 경우 데이터의 제4 비트(D<4>)를 반전시켜 내부데이터의 제4 비트(ID<4>)를 생성할 수 있다. '1, 1, 1'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제4 변환데이터(DV<4>)가 로직하이레벨을 갖는 경우 데이터의 제4 비트(D<4>)를 반전시켜 내부데이터의 제4 비트(ID<4>)에 에러를 발생시킬 수 있다.
도 7을 참고하면 패러티변환회로(4)는 패러티변환신호생성회로(41) 및 제1 내부패러티생성회로(42), 제2 내부패러티생성회로(43) 및 제3 내부패러티생성회로(44)를 포함할 수 있다.
패러티변환신호생성회로(41)는 에러삽입코드(EI<3:1>)가 갖는 '0, 0, 1'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제1 변환패러티(PV<1>)를 생성할 수 있다. 패러티변환신호생성회로(41)는 에러삽입코드(EI<3:1>)가 갖는 '0, 1, 0'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제2 변환패러티(PV<2>)를 생성할 수 있다. 패러티변환신호생성회로(41)는 에러삽입코드(EI<3:1>)가 갖는 '1, 0, 0'의 논리레벨조합을 가질 때 로직하이레벨로 생성되는 제3 변환패러티(PV<3>)를 생성할 수 있다.
제1 내부패러티생성회로(42)는 제1 변환패러티(PV<1>)가 로직하이레벨을 갖는 경우 패러티의 제1 비트(P<1>)를 반전시켜 내부패러티의 제1 비트(IP<1>)를 생성할 수 있다. '0, 0, 1'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제1 변환패러티(PV<1>)가 로직하이레벨을 갖는 경우 패러티의 제1 비트(P<1>)를 반전시켜 내부패러티의 제1 비트(IP<1>)에 에러를 발생시킬 수 있다.
제2 내부패러티생성회로(43)는 제2 변환패러티(PV<2>)가 로직하이레벨을 갖는 경우 패러티의 제2 비트(P<2>)를 반전시켜 내부패러티의 제2 비트(IP<2>)를 생성할 수 있다. '0, 1, 0'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제2 변환패러티(PV<2>)가 로직하이레벨을 갖는 경우 패러티의 제2 비트(P<2>)를 반전시켜 내부패러티의 제2 비트(IP<2>)에 에러를 발생시킬 수 있다.
제3 내부패러티생성회로(44)는 제3 변환패러티(PV<3>)가 로직하이레벨을 갖는 경우 패러티의 제3 비트(P<3>)를 반전시켜 내부패러티의 제3 비트(IP<3>)를 생성할 수 있다. '1, 0, 0'의 논리레벨조합을 갖는 에러삽입코드(EI<3:1>)에 의해 제3 변환패러티(PV<3>)가 로직하이레벨을 갖는 경우 패러티의 제3 비트(P<3>)를 반전시켜 내부패러티의 제3 비트(IP<3>)에 에러를 발생시킬 수 있다.
도 8을 참고하면 신드롬생성회로(5)는 제1 신드롬생성회로(51), 제2 신드롬생성회로(52) 및 제3 신드롬생성회로(53)를 포함할 수 있다.
제1 신드롬생성회로(51)는 내부데이터의 제1 비트(ID<1>), 내부데이터의 제2 비트(ID<2>), 내부데이터의 제4 비트(ID<4>) 및 패러티의 제1 비트(P<1>)의 배타적논리 연산 수행 결과 신드롬의 제1 비트(S<1>)를 생성할 수 있다. 신드롬의 제1 비트(S<1>)를 생성하기 위한 논리 연산식은 제1 매트릭스(1st MATRIX)의 첫번째 로우의 논리레벨조합인 '1, 0, 0'와 제2 매트릭스(2nd MATRIX)의 첫번째 로우의 논리레벨조합인 '1, 1, 0, 1'에 따라 결정된다.
제2 신드롬생성회로(52)는 내부데이터의 제1 비트(ID<1>), 내부데이터의 제4 비트(ID<4>), 내부데이터의 제4 비트(ID<4>) 및 패러티의 제2 비트(P<2>)의 배타적논리 연산 수행 결과 신드롬의 제2 비트(S<2>)를 생성할 수 있다. 신드롬의 제2 비트(S<2>)를 생성하기 위한 논리 연산식은 제1 매트릭스(1st MATRIX)의 첫번째 로우의 논리레벨조합인 '0, 1, 0'와 제2 매트릭스(2nd MATRIX)의 두번째 로우의 논리레벨조합인 '1, 0, 1, 1'에 따라 결정된다.
제3 신드롬생성회로(53)는 내부데이터의 제2 비트(ID<2>), 내부데이터의 제3 비트(ID<3>), 내부데이터의 제4 비트(ID<4>) 및 패러티의 제3 비트(P<3>)의 배타적논리 연산 수행 결과 신드롬의 제3 비트(S<3>)를 생성할 수 있다. 신드롬의 제3 비트(S<3>)를 생성하기 위한 논리 연산식은 제1 매트릭스(1st MATRIX)의 첫번째 로우의 논리레벨조합인 '0, 0, 1'와 제2 매트릭스(2nd MATRIX)의 세번째 로우의 논리레벨조합인 '0, 1, 1, 1'에 따라 결정된다.
도 9를 참고하면 검증신호생성회로(6)는 배타적논리합게이트들(XOR61, XOR62, XOR63) 및 부정논리합게이트(NOR61)를 포함할 수 있다. 배타적논리합게이트(XOR61)는 신드롬의 제1 비트(S<1>) 및 에러삽입코드의 제1 비트(EI<1>)의 배타적논리 연산을 수행할 수 있다. 배타적논리합게이트(XOR61)는 신드롬의 제1 비트(S<1>) 및 에러삽입코드의 제1 비트(EI<1>)가 동일한 경우 로직로우레벨을 출력할 수 있고, 상이한 경우 로직하이레벨을 출력할 수 있다. 배타적논리합게이트(XOR62)는 신드롬의 제2 비트(S<2>) 및 에러삽입코드의 제2 비트(EI<2>)의 배타적논리 연산을 수행할 수 있다. 배타적논리합게이트(XOR62)는 신드롬의 제2 비트(S<2>) 및 에러삽입코드의 제2 비트(EI<2>)가 동일한 경우 로직로우레벨을 출력할 수 있고, 상이한 경우 로직하이레벨을 출력할 수 있다. 배타적논리합게이트(XOR63)는 신드롬의 제3 비트(S<3>) 및 에러삽입코드의 제3 비트(EI<3>)의 배타적논리 연산을 수행할 수 있다. 배타적논리합게이트(XOR63)는 신드롬의 제3 비트(S<3>) 및 에러삽입코드의 제3 비트(EI<3>)가 동일한 경우 로직로우레벨을 출력할 수 있고, 상이한 경우 로직하이레벨을 출력할 수 있다. 부정논리합게이트(NOR61)는 배타적논리합게이트들(XOR61, XOR62, XOR63)의 출력신호들이 모두 로직로우레벨인 경우 로직하이레벨의 검증신호(VR)를 출력할 수 있다. 부정논리합게이트(NOR61)는 배타적논리합게이트들(XOR61, XOR62, XOR63)의 출력신호들 중 적어도 하나가 로직하이레벨인 경우 로직로우레벨의 검증신호(VR)를 출력할 수 있다.
검증신호생성회로(6)는 에러삽입코드(EI<3:1>) 및 신드롬(S<3:1>)이 동일한 논리레벨조합을 갖는 경우 로직하이레벨의 검증신호(VR)를 생성할 수 있다. 검증신호생성회로(6)는 에러삽입코드(EI<3:1>) 및 신드롬(S<3:1>)이 상이한 논리레벨조합을 갖는 경우 로직로우레벨을 갖는 검증신호(VR)를 생성할 수 있다.
본 발명의 전자장치는 에러체크매트릭스를 이용하여 에러삽입코드(EI<3:1>)를 생성하고, 에러삽입코드(EI<3:1>)의 논리레벨조합에 따라 데이터(D<4:1>) 및 패러티(P<3:1>)에 에러를 포함시켜 내부데이터(ID<4:1>) 및 내부패러티(IP<3:1>)를 생성할 수 있다. 본 발명의 전자장치는 에러가 포함된 내부데이터(ID<4:1>) 및 내부패러티(IP<3:1>)에 의해 신드롬(S<3:1>)을 생성하고, 신드롬(S<3:1>)과 에러삽입코드(EI<3:1>)의 동일 여부에 따라 에러체크매트릭스에 의해 에러 정정 동작이 정상적으로 수행되는지 여부를 확인할 수 있다. 즉, 본 발명의 전자장치는 원하는 위치에 에러를 발생시키고 에러 발생 위치가 원하는 위치에서 발생시키는지 여부를 감지하는 방법으로 에러 정정 동작이 정상적으로 수행되는지 여부를 확인할 수 있다.
앞서, 도 1에서 살펴본 전자장치는 메모리시스템, 그래픽시스템, 컴퓨팅시스템 및 모바일시스템 등을 포함하는 전자시스템에 적용될 수 있다. 예를 들어, 도 10을 참고하면 본 발명의 일 실시예에 따른 전자시스템(1000)은 데이터저장부(1001), 메모리컨트롤러(1002), 버퍼메모리(1003) 및 입출력인터페이스(1004)를 포함할 수 있다.
데이터저장부(1001)는 메모리컨트롤러(1002)로부터의 제어신호에 따라 메모리컨트롤러(1002)로부터 인가되는 데이터를 저장하고 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 데이터저장부(1001)는 도 1에 도시된 전자장치를 포함할 수 있다. 한편, 데이터저장부(1001)는 전원이 차단되어도 데이터를 잃지 않고 계속 저장할 수 있는 비휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 플래쉬 메모리(Nor Flash Memory, NAND Flash Memory), 상변환 메모리(Phase Change Random Access Memory; PRAM), 저항 메모리(Resistive Random Access Memory;RRAM), 스핀 주입자화반전 메모리(Spin Transfer Torque Random Access Memory; STTRAM), 자기메모리(Magnetic Random Access Memory; MRAM)로 구현될 수 있다.
메모리컨트롤러(1002)는 입출력인터페이스(1004)를 통해 외부기기(호스트 장치)로부터 인가되는 명령어를 디코딩하고 디코딩된 결과에 따라 데이터저장부(1001) 및 버퍼메모리(1003)에 대한 데이터 입출력을 제어한다. 도 10에서는 메모리컨트롤러(1002)가 하나의 블록으로 표시되었으나, 메모리컨트롤러(1002)는 데이터저장부(1001)를 제어하기 위한 컨트롤러와 휘발성 메모리인 버퍼메모리(1003)를 제어하기 위한 컨트롤러가 독립적으로 구성될 수 있다.
버퍼메모리(1003)는 메모리컨트롤러(1002)에서 처리할 데이터 즉 데이터저장부(1001)에 입출력되는 데이터를 임시적으로 저장할 수 있다. 버퍼메모리(1003)는 제어신호에 따라 메모리컨트롤러(1002)에서 인가되는 데이터(DATA)를 저장할 수 있다. 버퍼메모리(1003)는 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 버퍼메모리(1003)는 DRAM(Dynamic Random Access Memory), Moblie DRAM, SRAM(Static Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다.
입출력인터페이스(1004)는 메모리컨트롤러(1002)와 외부기기(호스트) 사이의 물리적 연결을 제공하여 메모리컨트롤러(1002)가 외부기기로부터 데이터 입출력을 위한 제어신호를 수신하고 외부기기와 데이터를 교환할 수 있도록 해준다. 입출력인터페이스(1004)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 및 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 수 있다.
전자시스템(1000)은 호스트 장치의 보조 기억장치 또는 외부 저장장치로 사용될 수 있다. 전자시스템(1000)은 고상 디스크(Solid State Disk; SSD), USB 메모리(Universal Serial Bus Memory), 씨큐어 디지털 카드(Secure Digital; SD), 미니 씨큐어 디지털 카드(mini Secure Digital card; mSD), 마이크로 씨큐어 디지털 카드(micro SD), 고용량 씨큐어 디지털 카드(Secure Digital High Capacity; SDHC), 메모리 스틱 카드(Memory Stick Card), 스마트 미디어 카드(Smart Media Card; SM), 멀티 미디어 카드(Multi Media Card; MMC), 내장 멀티 미디어 카드(Embedded MMC; eMMC), 컴팩트 플래시 카드(Compact Flash; CF) 등을 포함할 수 있다.
도 11을 참고하면 본 발명의 다른 실시예에 따른 전자시스템(2000)은 호스트(2001), 메모리컨트롤러(2002) 및 데이터저장부(2003)를 포함할 수 있다.
호스트(2001)는 데이터저장부(2003)를 엑세스 하기 위해 메모리컨트롤러(2002)로 리퀘스트 및 데이터를 전송할 수 있다. 메모리컨트롤러(2002)는 리퀘스트에 응답하여 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 데이터저장부(2003)에 제공하고, 이에 응답하여 데이터저장부(2003)는 라이트 또는 리드 동작을 수행하게 할 수 있다. 호스트(2001)는 데이터저장부(2003)로 데이터를 저장시키기 위해 데이터를 메모리컨트롤러(2002)로 전송할 수 있다. 또한 호스트는 데이터저장부(2003)로부터 출력된 데이터를 메모리컨트롤러(2002)를 통해 수신할 수 있다. 호스트(2001)는 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 데이터에 포함된 에러를 정정하는 회로를 포함할 수 있다.
메모리컨트롤러(2002)는 호스트(2001)와 데이터저장부(2003) 사이의 통신을 중계할 수 있다. 메모리컨트롤러(2002)는 호스트(2001)로부터 리퀘스트와 데이터를 수신하고, 데이터저장부(2003)의 동작을 제어하기 위하여 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 생성하여 데이터저장부(2003)로 제공할 수 있다. 또한, 메모리컨트롤러(2002)는 데이터저장부(2003)로부터 출력된 데이터를 호스트(2001)로 제공할 수 있다.
데이터저장부(2003)는 다수의 메모리들을 포함할 수 있다. 데이터저장부(2003)는 메모리컨트롤러(2002)로부터 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 수신하여 라이트 또는 리드 동작을 수행할 수 있다. 데이터저장부(2003)에 포함된 다수의 메모리들은 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 데이터에 포함된 에러를 정정하는 회로를 포함할 수 있다.
호스트(2001)에 포함된 에러를 정정하는 회로 및 다수의 메모리들에 포함된 에러를 정정하는 회로는 실시예에 따라서 모두 동작하거나 선택적으로 동작하도록 구현될 수 있다. 호스트(2001) 및 메모리컨트롤러(2002)는 실시예에 따라서 동일한 칩으로 구현될 수 있다. 메모리컨트롤러(2002) 및 데이터저장부(2003)는 실시예에 따라서 동일한 칩으로 구현될 수 있다.
1: 패러티생성회로 2: 에러발생제어회로
3: 데이터변환회로 4: 패러티변환회로
5: 신드롬생성회로 6: 검증신호생성회로
11: 제1 패러티생성회로 12: 제2 패러티생성회로
13: 제3 패러티생성회로 21: 카운팅펄스생성회로
22: 카운터회로 31: 데이터변환신호생성회로
32: 제1 내부데이터생성회로 33: 제2 내부데이터생성회로
34: 제3 내부데이터생성회로 35: 제4 내부데이터생성회로
41: 패러티변환신호생성회로 42: 제1 내부패러티생성회로
43: 제2 내부패러티생성회로 44: 제3 내부패러티생성회로
51: 제1 신드롬생성회로 52: 제2 신드롬생성회로
53: 제3 신드롬생성회로

Claims (21)

  1. 리드동작 시 데이터가 출력될 때마다 카운팅되는 에러삽입코드를 생성하는 에러발생제어회로;
    상기 에러삽입코드에 응답하여 상기 데이터를 변환하여 내부데이터를 생성하는 데이터변환회로;
    상기 에러삽입코드에 응답하여 패러티를 변환하여 내부패러티를 생성하는 패러티변환회로; 및
    상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함하는 전자장치.
  2. 제 1 항에 있어서, 상기 에러삽입코드는 리드신호 및 컬럼펄스에 응답하여 카운팅펄스가 발생될 때마다 카운팅되는 전자장치.
  3. 제 2 항에 있어서, 상기 리드신호는 상기 리드동작 시 인에이블되고, 상기 컬럼펄스는 상기 데이터가 출력될 때마다 발생되는 전자장치.
  4. 제 1 항에 있어서, 상기 에러삽입코드의 논리레벨조합들 각각은 에러체크매트릭스에 따라 상기 데이터 및 상기 패러티에 포함된 비트들 중 적어도 하나의 비트에 대응되는 전자장치.
  5. 제 1 항에 있어서, 상기 데이터변환회로는 상기 에러삽입코드의 논리레벨조합에 따라 상기 데이터에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 상기 내부데이터를 생성하는 전자장치.
  6. 제 1 항에 있어서, 상기 패러티는 에러체크매트릭스에 응답하여 상기 데이터에 포함된 비트들 중 선택된 비트들을 논리 연산하여 생성되는 전자장치.
  7. 제 1 항에 있어서, 상기 패러티변환회로는 상기 에러삽입코드의 논리레벨조합에 따라 상기 패러티에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 상기 내부패러티를 생성하는 전자장치.
  8. 제 1 항에 있어서, 상기 신드롬은 에러체크매트릭스에 응답하여 상기 내부데이터에 포함된 비트들 중 선택된 비트들과 상기 내부패러티의 논리레벨조합으로 생성되는 전자장치.
  9. 제 1 항에 있어서, 상기 신드롬은 상기 내부데이터에 포함된 비트들 중 상기 데이터에 포함된 비트가 반전되어 생성된 비트의 위치 또는 상기 내부패러티에 포함된 비트들 중 상기 패러티에 포함된 비트가 반전되어 생성된 비트의 위치에 대한 정보를 포함하는 전자장치.
  10. 제 1 항에 있어서, 상기 검증신호생성회로는 상기 신드롬과 상기 에러삽입코드가 동일한 경우 제1 로직레벨을 갖는 검증신호를 생성하고, 상기 신드롬과 상기 에러삽입코드가 상이한 경우 제2 로직레벨을 갖는 검증신호를 생성하는 전자장치.
  11. 에러체크매트릭스에 응답하여 데이터에 포함된 비트들 중 선택된 비트들을 논리 연산하여 패러티를 생성하는 패러티생성회로;
    에러삽입코드에 응답하여 데이터를 변환하여 내부데이터를 생성하는 데이터변환회로;
    에러삽입코드에 응답하여 패러티를 변환하여 내부패러티를 생성하는 패러티변환회로; 및
    상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함하는 전자장치.
  12. 제 11 항에 있어서, 상기 에러삽입코드는 리드신호 및 컬럼펄스에 응답하여 카운팅펄스가 발생될 때마다 카운팅되고, 상기 리드신호는 리드동작 시 인에이블되며, 상기 컬럼펄스는 상기 데이터가 출력될 때마다 발생되는 전자장치.
  13. 제 11 항에 있어서, 상기 에러삽입코드의 논리레벨조합들 각각은 상기 에러체크매트릭스에 따라 상기 데이터 및 상기 패러티에 포함된 비트들 중 적어도 하나의 비트에 대응되는 전자장치.
  14. 제 11 항에 있어서, 상기 데이터변환회로는 상기 에러삽입코드의 논리레벨조합에 따라 상기 데이터에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 상기 내부데이터를 생성하는 전자장치.
  15. 제 11 항에 있어서, 상기 패러티변환회로는 상기 에러삽입코드의 논리레벨조합에 따라 상기 패러티에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 상기 내부패러티를 생성하는 전자장치.
  16. 제 11 항에 있어서, 상기 신드롬은 상기 에러체크매트릭스에 응답하여 상기 내부데이터에 포함된 비트들 중 선택된 비트들과 상기 내부패러티의 논리레벨조합으로 생성되고, 상기 신드롬은 상기 내부데이터에 포함된 비트들 중 상기 데이터에 포함된 비트가 반전되어 생성된 비트의 위치 또는 상기 내부패러티에 포함된 비트들 중 상기 패러티에 포함된 비트가 반전되어 생성된 비트의 위치에 대한 정보를 포함하는 전자장치.
  17. 제 11 항에 있어서, 상기 검증신호생성회로는 상기 신드롬과 상기 에러삽입코드가 동일한 경우 제1 로직레벨을 갖는 검증신호를 생성하고, 상기 신드롬과 상기 에러삽입코드가 상이한 경우 제2 로직레벨을 갖는 검증신호를 생성하는 전자장치.
  18. 에러체크매트릭스에 따라 데이터 및 패러티에 포함된 비트들 중 적어도 하나의 비트에 대응되는 논리레벨조합을 갖는 에러삽입코드를 생성하는 에러발생제어회로;
    상기 에러삽입코드의 논리레벨조합에 따라 상기 데이터에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 내부데이터를 생성하는 데이터변환회로;
    상기 에러삽입코드의 논리레벨조합에 따라 상기 패러티에 포함된 비트들 중 적어도 하나의 비트를 반전시켜 내부패러티를 생성하는 패러티변환회로; 및
    상기 내부데이터와 상기 내부패러티로부터 생성된 신드롬과 상기 에러삽입코드로부터 검증신호를 생성하는 검증신호생성회로를 포함하는 전자장치.
  19. 제 18 항에 있어서, 상기 에러삽입코드는 리드신호 및 컬럼펄스에 응답하여 카운팅펄스가 발생될 때마다 카운팅되고, 상기 리드신호는 리드동작 시 인에이블되며, 상기 컬럼펄스는 상기 데이터가 출력될 때마다 발생되는 전자장치.
  20. 제 18 항에 있어서, 상기 신드롬은 상기 에러체크매트릭스에 응답하여 상기 내부데이터에 포함된 비트들 중 선택된 비트들과 상기 내부패러티의 논리레벨조합으로 생성되고, 상기 신드롬은 상기 내부데이터에 포함된 비트들 중 상기 데이터에 포함된 비트가 반전되어 생성된 비트의 위치 또는 상기 내부패러티에 포함된 비트들 중 상기 패러티에 포함된 비트가 반전되어 생성된 비트의 위치에 대한 정보를 포함하는 전자장치.
  21. 제 18 항에 있어서, 상기 검증신호생성회로는 상기 신드롬과 상기 에러삽입코드가 동일한 경우 제1 로직레벨을 갖는 검증신호를 생성하고, 상기 신드롬과 상기 에러삽입코드가 상이한 경우 제2 로직레벨을 갖는 검증신호를 생성하는 전자장치.
KR1020170134860A 2017-10-17 2017-10-17 전자장치 KR20190043043A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170134860A KR20190043043A (ko) 2017-10-17 2017-10-17 전자장치
TW107111820A TWI774749B (zh) 2017-10-17 2018-04-03 電子設備
US15/947,438 US10552277B2 (en) 2017-10-17 2018-04-06 Electronic devices
CN201810359609.6A CN109669801B (zh) 2017-10-17 2018-04-20 包括验证信号发生电路的电子设备
US16/723,908 US11048602B2 (en) 2017-10-17 2019-12-20 Electronic devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170134860A KR20190043043A (ko) 2017-10-17 2017-10-17 전자장치

Publications (1)

Publication Number Publication Date
KR20190043043A true KR20190043043A (ko) 2019-04-25

Family

ID=66097150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170134860A KR20190043043A (ko) 2017-10-17 2017-10-17 전자장치

Country Status (4)

Country Link
US (1) US10552277B2 (ko)
KR (1) KR20190043043A (ko)
CN (1) CN109669801B (ko)
TW (1) TWI774749B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475971B1 (en) 2021-03-31 2022-10-18 SK Hynix Inc. Semiconductor device and semiconductor system for testing error correction circuit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190086936A (ko) * 2018-01-15 2019-07-24 삼성전자주식회사 메모리 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4149038A (en) * 1978-05-15 1979-04-10 Wescom Switching, Inc. Method and apparatus for fault detection in PCM muliplexed system
US4794597A (en) * 1986-03-28 1988-12-27 Mitsubishi Denki Kabushiki Kaisha Memory device equipped with a RAS circuit
US5502732A (en) * 1993-09-20 1996-03-26 International Business Machines Corporation Method for testing ECC logic
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes
US6983414B1 (en) * 2001-03-30 2006-01-03 Cisco Technology, Inc. Error insertion circuit for SONET forward error correction
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
JP6212396B2 (ja) * 2014-01-08 2017-10-11 ルネサスエレクトロニクス株式会社 データ処理装置
KR20160102738A (ko) * 2015-02-23 2016-08-31 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
DE102015210651B4 (de) 2015-06-10 2022-10-27 Infineon Technologies Ag Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
KR20170050935A (ko) * 2015-11-02 2017-05-11 에스케이하이닉스 주식회사 온 칩 ecc 회로를 포함하는 메모리 장치 및 시스템
KR102429452B1 (ko) * 2016-02-02 2022-08-05 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR20170101368A (ko) * 2016-02-26 2017-09-06 에스케이하이닉스 주식회사 에러 정정 회로 및 에러 정정 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475971B1 (en) 2021-03-31 2022-10-18 SK Hynix Inc. Semiconductor device and semiconductor system for testing error correction circuit

Also Published As

Publication number Publication date
CN109669801B (zh) 2022-06-03
CN109669801A (zh) 2019-04-23
US20190115937A1 (en) 2019-04-18
US10552277B2 (en) 2020-02-04
TW201917575A (zh) 2019-05-01
TWI774749B (zh) 2022-08-21

Similar Documents

Publication Publication Date Title
KR102393427B1 (ko) 반도체장치 및 반도체시스템
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
KR20180019791A (ko) 반도체장치 및 반도체시스템
KR102647418B1 (ko) 반도체장치 및 반도체시스템
US20170286218A1 (en) Semiconductor devices, and semiconductor systems
US10579472B2 (en) Semiconductor devices
US10261860B2 (en) Semiconductor systems
US10319455B2 (en) Semiconductor device
US11080130B2 (en) Semiconductor devices
KR20190060258A (ko) 에러스크럽방법 및 이를 이용한 반도체모듈
KR20190072144A (ko) 에러정정방법 및 이를 이용한 반도체장치
US10552277B2 (en) Electronic devices
US10379786B2 (en) Semiconductor devices
KR102638789B1 (ko) 테스트방법 및 이를 이용한 반도체시스템
US20170344422A1 (en) Semiconductor devices and semiconductor systems
US11429477B2 (en) Semiconductor devices
US10181863B2 (en) Semiconductor devices and semiconductor systems
US9997234B1 (en) Semiconductor devices
KR102686058B1 (ko) 반도체장치
US20170235634A1 (en) Semiconductor devices and semiconductor systems including the same
US11048602B2 (en) Electronic devices
KR102697484B1 (ko) 반도체장치
US10014073B2 (en) Semiconductor devices