KR101852919B1 - 에러 정정 능력을 테스트하기 위한 회로 및 방법 - Google Patents

에러 정정 능력을 테스트하기 위한 회로 및 방법 Download PDF

Info

Publication number
KR101852919B1
KR101852919B1 KR1020160071795A KR20160071795A KR101852919B1 KR 101852919 B1 KR101852919 B1 KR 101852919B1 KR 1020160071795 A KR1020160071795 A KR 1020160071795A KR 20160071795 A KR20160071795 A KR 20160071795A KR 101852919 B1 KR101852919 B1 KR 101852919B1
Authority
KR
South Korea
Prior art keywords
data word
error correction
error
bit
component
Prior art date
Application number
KR1020160071795A
Other languages
English (en)
Other versions
KR20160145503A (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 KR20160145503A publication Critical patent/KR20160145503A/ko
Application granted granted Critical
Publication of KR101852919B1 publication Critical patent/KR101852919B1/ko

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/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
    • 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
    • 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
    • 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/0751Error or fault detection not based on redundancy
    • 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/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
    • 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/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/015Simulation or testing of codes, e.g. bit error rate [BER] measurements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

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)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

데이터 에러 정정을 위한 그리고 회로(100)의 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 검사하기 위한 회로(100)가 제공된다. 회로(100)는 입력 데이터 워드를 수신하기 위한 입력 인터페이스(110)를 포함한다. 더욱이, 회로(100)는 테스트 데이터 워드의 하나 이상의 비트를 조작하여, 수정된 데이터 워드를 얻기 위한 데이터 조작기(120)를 포함하며, 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나, 상기 입력 데이터 워드로부터 도출된다. 더구나, 회로(100)는 상기 수정된 데이터 워드를 처리하기 위한 상기 에러 정정 컴포넌트(130)를 포함한다. 더욱이, 회로(100)는 에러 정정 컴포넌트(130)에 의한 수정된 데이터 워드의 처리에 따라 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 평가하기 위한 평가 컴포넌트(140)를 포함한다.

Description

에러 정정 능력을 테스트하기 위한 회로 및 방법{CIRCUITRY AND METHOD FOR TESTING AN ERROR-CORRECTION CAPABILITY}
본 발명은 에러 없는 테스트 데이터를 필요로 하지 않고서 동작 동안 메모리의 에러 정정 코드 회로를 테스트하기 위한 개념들을 제공한다.
종래 기술에서는, (이중 프로그래밍에 의해) 잘못된 에러 정정 코드를 테스트 코드로 이용하여 (비휘발성) 플래시 메모리 내의 단일 비트 에러 또는 이중 비트 에러의 에러 정정의 올바른 실행을 검사하기 위해, 공지된 결함 테스트 데이터가 생성된다. 특히, 이러한 방법은 다음의 단점들을 갖는다.
각각의 메모리 부분을 미리 테스트하여 에러가 없는지를 확인해야 한다. 본질적으로 에러가 없는 것으로 추정되는 메모리 부분들은 테스트 코드를 위해 사용될 수 없는데, 이는 예상되는 단일 비트 에러들 및 이중 비트 에러들의 정확한 지식이 에러 정정 코드 기능을 평가하기 위해 달리 사용될 수 없기 때문이다.
게다가 열 지향 버스트 길이 에러가 수반되는 경우, 동작 시에 테스트 코드는 비의도적으로 교란된다. 테스트 소프트웨어가 교란된 테스트 코드를 에러 내성 방식으로 처리하지 못하는 경우, 컴포넌트는 비의도적인 에러 신호를 생성한다.
표준 에러 처리를 피하기 위해, 엄격한 에러 검출 알고리즘이 완화되거나, 대안 메모리 부분들이 지정되고, 이들을 또한 다수결 결정을 위해 테스트된다. 결과적인 단점은 추가 메모리 부분들이 다중 비교를 위해 할당되어야 한다는 것이다.
더구나, 종래 기술에서, 사용자는 데이터 및 에러 정정 코드를 개별적으로 구체적 에러 방식으로 프로그래밍하기 위한 수단을 제공받지 못한다. 단일 비트 에러 또는 이중 비트 에러를 갖는 테스트 코드가 대신 단지 사용자 모드에서 프로그래밍될 수 있다. 현재, 플래시 메모리와 같은 비휘발성 메모리의 경우, 컴포넌트는 사용자 모드에서 두 번 프로그래밍되며, 이에 의해 에러 정정 코드들은 OR 연산이 수행되는 것처럼 관련된다(사전 삭제 없는 이중 프로그래밍). 그러한 절차가 컴포넌트에 의해 허용되지 않음에 따라, 그러한 연산이 적절히 동작하고 있는지가 테스트되지 못하였다. 더욱이, 휘발성 메모리들에서는, ECC의 수정을 허용하지 않고서 하나의 ECC 워드 내에 데이터 콘텐츠와 무관한 ECC 콘텐츠를 구성하는 것도 불가능하다.
에러 정정 코드 에러 검출을 위해 모든 데이터 비트들을 테스트하기 위해, 전용화된 메모리 부분이 프로그래밍된 후에 제2의 적절한 코드가 이중 프로그래밍된다. 이중 프로그래밍이 원하지 않는 방식으로 에러 정정 코드 콘텐츠를 수정하지 않으며, 의도된 비트 편차를 제외하고는 결과가 최초 프로그래밍과 동일하도록, 데이터가 선택된다.
더욱이, 에러 정정 테스트 코드의 다중 프로그래밍은 어드레스 에러 정정 코드 사용에 의해 복잡해질 수 있다. 어드레스 에러 정정 코드를 사용할 때, 데이터에 더하여 데이터의 어드레스도 에러 정정 코드 계산을 위해 사용된다. 따라서, 잘못 어드레싱되지만 올바른 에러 정정 코드 메모리 콘텐츠를 검출하는 것이 가능하다. 이 경우, 어드레스 독립 에러 정정 테스트 코드는 메모리 부분에 의존하며, 더 이상의 유연하게 사용될 수 없다.
더구나, 종래 기술에서, 테스트 코드는 제조자에 의해 사전 설정된다. 사용자는 에러 정정 코드 워드들을 단독으로 선택하기 위한 수단을 제공받지 못한다. 에러 정정 코드 워드를 위해 그리고 사전 정의된 에러 정정 코드 데이터 워드를 위해 에러 정정 코드 워드를 위한 사용자 데이터 워드(사용자 데이터 및 에러 정정 코드 바이트)를 결정하기 위한 보조 수단 또는 가능성도 제공되지 않는다.
에러 정정 코드 회로를 테스트하기 위한 개선된 개념들이 제공된다면 매우 유리할 것이다.
발명의 요약
데이터 에러 정정을 위한 그리고 회로의 에러 정정 컴포넌트의 에러 정정 능력의 정확성을 검사하기 위한 회로가 제공된다. 회로는 입력 데이터 워드를 수신하기 위한 입력 인터페이스를 포함한다. 더욱이, 회로는 테스트 데이터 워드의 하나 이상의 비트를 조작하여, 수정된 데이터 워드를 얻기 위한 데이터 조작기를 포함하며, 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나, 상기 입력 데이터 워드로부터 도출된다. 더구나, 회로는 상기 수정된 데이터 워드를 처리하기 위한 상기 에러 정정 컴포넌트를 포함한다. 더욱이, 회로는 에러 정정 컴포넌트에 의한 수정된 데이터 워드의 처리에 따라 에러 정정 컴포넌트의 에러 정정 능력의 정확성을 평가하기 위한 평가 컴포넌트를 포함한다.
더욱이, 데이터 에러 정정을 위한 그리고 에러 정정 컴포넌트의 에러 정정 능력의 정확성을 검사하기 위한 방법이 제공된다. 방법은
- 입력 인터페이스에 의해 입력 데이터 워드를 수신하는 단계;
- 데이터 조작기에 의해 테스트 데이터 워드의 하나 이상의 비트를 조작하여, 수정된 데이터 워드를 획득하는 단계 - 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나, 상기 입력 데이터 워드로부터 도출됨 -;
- 상기 에러 정정 컴포넌트에 의해 수정된 데이터 워드를 처리하는 단계; 및
- 평가 컴포넌트에 의해, 에러 정정 컴포넌트에 의한 수정된 데이터 워드의 처리에 따라 에러 정정 컴포넌트의 에러 정정 능력의 정확성을 평가하는 단계
를 포함한다.
더구나, 컴퓨터 또는 신호 프로세서 상에서 실행될 때 전술한 방법을 구현하기 위한 컴퓨터 프로그램이 제공된다. 더구나, 컴퓨터 또는 프로세서 상에서 실행될 때 전술한 방법을 구현하기 위한 컴퓨터 프로그램을 포함하는 비일시적 디지털 저장 매체가 제공된다.
첨부 도면들을 이용하여 본 발명의 실시예들을 상세히 설명하기 전에, 도면들에서는 동일한 또는 기능적으로 동일한 요소들에 동일한 참조 번호들이 부여되며, 동일한 참조 번호들을 갖는 요소들에 대한 반복 설명은 생략된다는 점에 주목해야 한다. 따라서, 동일한 참조 번호들을 갖는 요소들에 대해 제공되는 설명들은 서로 교환 가능하다.
도 1은 일 실시예에 따른, 데이터 에러 정정을 위한 그리고 회로의 에러 정정 컴포넌트의 에러 정정 능력의 정확성을 검사하기 위한 회로를 나타낸다.
도 2는 일 실시예에 따른 회로를 나타내며, 여기서 에러 정정 컴포넌트는 입력 인터페이스로부터 입력 데이터 워드를 수신하도록 배열된다.
도 3은 일 실시예에 따른 회로를 나타내며, 회로는 정상 동작 모드를 활성화하기 위한 모드 스위처를 더 포함한다.
도 4는 일 실시예에 따른 회로를 나타내며, 회로는 도 1 내지 3의 컴포넌트들 외에 사용자 인터페이스를 더 포함한다.
도 5는 일 실시예에 따른 회로를 나타내며, 여기서 테스트 데이터 워드는 사용자 데이터 비트들, 에러 정정 비트들 및 메모리 내의 사용자 데이터 비트들의 위치를 지정하기 위한 어드레스 비트들을 포함한다.
도 6은 일 실시예에 따른 회로를 나타내며, 회로 자체는 메모리를 더 포함한다.
도 7은 특정 실시예에 따른 회로를 나타내며, 회로는 메모리 및 수정되어야 하는 메모리 내의 어드레스에 의해 지시되는 하나 이상의 어드레싱 가능 비트를 지정하기 위한 사용자 인터페이스를 포함한다. 어드레스는 명시적으로 적용되거나 암시적으로 참조된다.
도 8은 일 실시예에 따른 데이터 조작기를 나타내며, 데이터 조작기는 회로 요소, 추가 회로 요소 및 비트 레지스터를 포함한다. 도 8의 데이터 조작기는 1 스테이지 XOR을 갖는다. 시프트 또는 회전과 같은 단일 비트 수정들이 개별 스테이지에서 미리 적용될 수 있다. 일부 실시예들에 따르면, 양 비트 조작 단계들은 예로서 도 18, 19 및 20에 도시된 바와 같이 2 스테이지 조작 내에 포함될 수 있다.
도 9는 판독 경로 및 기록 경로에 의한 랜덤 액세스를 갖는 실시예들에 따른 에러 정정 코드 메모리를 나타낸다.
도 10은 CPU와 메모리 사이의 데이터 경로 내에 실현되는 에러 정정 코드 회로를 나타낸다. 더욱이, 사용되는 어드레스 레지스터들이 도시된다.
도 11은 동작 동안 회로 정정 검사를 지원하기 위한 소형 레지스터 세트 확장을 나타낸다.
도 12는 에러 정정 코드 능력을 갖는 의도적으로 이중 프로그래밍된 플래시 메모리에 대한 에러 정정 능력의 기능을 초기화, 동작 및 평가하기 위한 흐름도를 나타낸다.
도 13은 에러 정정 코드 기능을 수동으로 검사하기 위한 흐름도를 나타낸다.
도 14는 에러 정정 코드 기능을 반자동으로 검사하기 위한 흐름도를 나타낸다.
도 15는 에러 정정 코드의 기능을 완전 자동으로 연속 검사하기 위한 흐름도를 나타낸다.
도 16은 에러 정정 코드 기능을 완전 자동으로 연속 검사하기 위한 레지스터 세트를 나타낸다.
도 17은 에러 정정 코드 기능 검사를 나타낸다.
도 18은 일 실시예에 따른 하드웨어 구현을 나타낸다.
도 19는 일 실시예에 따른, 에러 정정 코드 테스트 유한 상태 기계의 구성의 세 가지 절차(초기화, 활성화, 자율적 모니터링)를 나타낸다.
도 20은 일 실시예에 따른, 단일 비트 에러들 및 이중 비트 에러들을 강제 및 카운트하는 것을 나타내는 일례를 도시한다.
도 1은 일 실시예에 따른, 데이터 에러 정정을 위한 그리고 회로(100)의 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 검사하기 위한 회로(100)를 나타낸다.
회로(100)는 입력 데이터 워드를 수신하기 위한 입력 인터페이스(110)를 포함한다.
더욱이, 회로(100)는 테스트 데이터 워드의 하나 이상의 비트를 조작하여 수정된 데이터 워드를 획득하기 위한 데이터 조작기(120)를 포함하며, 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나 상기 입력 데이터 워드로부터 도출된다.
더구나, 회로(100)는 수정된 데이터 워드를 처리하기 위한 상기 에러 정정 컴포넌트(130)를 포함한다.
더욱이, 회로(100)는 에러 정정 컴포넌트(130)에 의한 수정된 데이터 워드의 처리에 따라 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 평가하기 위한 평가 컴포넌트(140)를 포함한다.
데이터 조작기(120)의 목적은 특정 에러들이 수정된 데이터 워드 내에 의도적으로 생성될 수 있는 것이다. 테스트 데이터 워드가 에러를 갖지 않는 것으로 가정하면, 테스트 데이터 워드의 하나의 비트를 수정하는 것은 정확히 단일 비트 에러를 갖는 수정된 데이터 워드를 생성한다. 이어서, 에러 정정 코드가 수정된 데이터 워드를 정확하게 처리하는지가 평가 컴포넌트(140)에 의해 평가될 수 있다.
일부 실시예들에서, 평가 유닛(140)은 예로서 평가 컴포넌트(140)가 에러 정정 컴포넌트(130)의 에러 정정이 정확하지 않다는 것을 검출한 경우에 회로(100)를 비활성화하거나 알람 또는 알람 메시지를 출력하도록 구성될 수 있다.
상이한 실시예들에서, 에러 정정 컴포넌트의 정확한 처리를 평가하는 상이한 기준들이 적용된다.
일 실시예에 따르면, 평가 컴포넌트(140)는 에러 정정 컴포넌트가 수정된 데이터 워드가 에러를 갖는다는 것을 정확하게 검출하는 경우에 그리고 에러 정정 컴포넌트가 그 데이터 워드의 에러를 정확하게 정정하는 경우에 에러 정정 컴포넌트의 처리를 정확한 것으로 간주한다.
그러한 실시예는 에러 정정 컴포넌트의 에러 검출만이 아니라 에러 정정도 검사되는 장점을 갖는다.
다른 실시예에서, 평가 컴포넌트(140)는 에러 정정 컴포넌트가 수정된 데이터 워드가 에러를 갖는다는 것을 정확하게 검출하는 경우에 에러 정정 컴포넌트의 처리를 정확한 것으로 간주하고, 수정된 데이터 워드의 정정이 성공적인지를 테스트하지 않는다. 그러한 실시예들 중 일부에서, 에러 정정 회로는 수정된 데이터 워드를 정정하는 것이 아니라, 수정된 데이터 워드의 정정이 필요한지만을 결정한다.
그러한 실시예는 수정된 데이터 워드를 정정하는 데 필요한 처리 시간이 절약되는 장점을 갖는다. 특히, 이것은 상이한 수정들을 갖는 다수의 수정된 데이터 워드가 정확한 에러 정정도 테스트하는 실시예들에 비해 더 짧은 시간에 정확한 에러 검출을 위해 테스트될 수 있는 것을 가능하게 한다. 그러한 실시예들의 기본 가정은 검출되어야 하는 모든 에러들이 실제로 검출되는 한은 에러 정정 컴포넌트(130)에 의해 에러 정정이 정확하게 수행될 것이라는 것이다.
전술한 바와 같이, 일부 실시예들에 따르면, 에러 정정의 결과가 정확한지가 테스트된다. 일부 실시예들에서, 정정이 발생하는 경우, 예를 들어 단일 비트 에러 지시자 또는 이중 비트 에러 지시자가 설정될 수 있다.
추가 실시예에 따르면, 에러 정정 컴포넌트(130)는 예로서 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성될 수 있다. 에러 정정 컴포넌트(130)가 수정된 데이터 워드가 에러를 갖는 것으로 결정한 경우, 에러 정정 컴포넌트(130)는 예로서 수정된 데이터 워드를 정정하여 사용자 데이터 비트들 및 에러 정정 비트들을 포함하는 정정된 데이터 워드를 획득하도록 구성될 수 있다. 평가 컴포넌트(140)는 예로서 정정된 데이터 워드의 사용자 데이터 비트들에 따라 그리고 정정된 데이터 워드의 에러 정정 비트들에 따라 정정된 데이터 워드가 에러를 갖는지를 결정하도록 구성될 수 있다. 정정된 데이터 워드가 에러를 갖는 경우, 평가 컴포넌트(140)는 에러 정정 컴포넌트(130)의 에러 정정 능력이 부정확한 것으로 결정하도록 구성된다.
따라서, 검출된 에러의 정정을 수행한 후, 정정된 데이터 워드 내에 에러가 존재하는지를 결정하기 위해 다른 테스트가 수행된다. 수행된 정정이 성공적인 경우, 정정된 데이터 워드 내에는 에러가 존재하지 않아야 한다. 그렇지 않은 경우, 에러 정정 컴포넌트(130)가 부정확한 것으로 결정된다.
테스트 데이터 워드의 비트를 수정하는 것은 예로서 테스트 데이터 워드를 반전시킴으로써, 예로서 비트 값을 "0"에서 "1"로 변경함으로써 또는 비트 값을 "-1"에서 "0"으로 변경함으로써 수행될 수 있다.
일 실시예에 따르면, 에러 정정 컴포넌트(130)는 예로서 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성될 수 있다(그리고 예로서 플래깅에 의해 지시하도록 구성될 수 있다). 그러한 실시예에서, 평가 컴포넌트(140)는 예로서 에러 정정 컴포넌트(130)에 의해 수행된 검사의 결과인 수정된 데이터 워드가 에러를 갖는지의 여부에 따라 에러 정정 컴포넌트(130)의 에러 정정 능력(예로서, 에러 플래깅 및/또는 데이터 정정 적용)의 정확성을 평가하도록 구성될 수 있다.
일 실시예에 따르면, 에러 정정 컴포넌트(130)는 예로서 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성될 수 있다. 그러한 실시예에서, 에러 정정 컴포넌트(130)가 수정된 데이터 워드가 에러를 갖는 것으로 결정한 경우, 에러 정정 컴포넌트(130)는 예로서 수정된 데이터 워드를 정정하여 정정된 데이터 워드를 획득하도록 구성될 수 있다. 더욱이, 그러한 실시예에서, 평가 컴포넌트(140)는 예로서 정정된 데이터 워드가 예상 데이터 워드와 동일한지를 결정하도록 구성될 수 있다. 더구나, 그러한 실시예에서, 정정된 데이터 워드가 예상 데이터 워드와 다른 경우, 평가 컴포넌트(140)는 예로서 에러 정정 컴포넌트(130)의 에러 정정 능력이 부정확한 것으로 결정하도록 구성될 수 있다.
다른 실시예들에서, 테스트 데이터 워드 자체가 수정 없이 에러 정정 컴포넌트(130) 내로 공급될 수 있다. 평가 컴포넌트(140)는 에러 정정 컴포넌트(130)가 테스트 데이터 워드가 에러를 갖는 것으로 간주하지만 실제로는 테스트 데이터 워드가 에러를 갖지 않는 경우에 에러 정정 컴포넌트(130)를 잘못된 것으로 간주할 수 있다.
더 일반적으로, 일부 실시예들에서, 예로서 에러 없는 데이터 워드가 에러 정정 컴포넌트(130) 내로 공급될 수 있다. 평가 컴포넌트(140)는 에러 정정 컴포넌트(130)가 에러 없는 데이터 워드가 에러를 갖는 것으로 간주하는 경우에 에러 정정 컴포넌트(130)를 잘못된 것으로 간주할 수 있다.
도 2는 일 실시예에 따른 회로(100)를 나타내며, 여기서 에러 정정 컴포넌트(130)는 입력 인터페이스(110)로부터 입력 데이터 워드를 수신하도록 배열된다. 그러한 실시예에서, 에러 정정 컴포넌트(130)는 예로서 입력 데이터 워드가 에러를 갖는지를 검사하도록 구성될 수 있다.
도 2에서 에러 정정 컴포넌트(130)가 입력 데이터 워드가 에러를 갖는 것으로 결정하는 경우, 에러 정정 컴포넌트(130)는 예로서 입력 데이터 워드를 정정하여 사전 정정된 데이터 워드를 획득하도록 구성될 수 있고, 예로서 사전 정정된 데이터 워드를 상기 테스트 데이터 워드로서 데이터 조작기(120) 내로 공급하도록 구성될 수 있다.
에러 정정 컴포넌트(130)가 입력 데이터 워드가 에러를 갖지 않는 것으로 결정하는 경우, 에러 정정 컴포넌트(130)는 예로서 입력 데이터 워드를 상기 테스트 데이터 워드로서 데이터 조작기(120) 내로 공급하도록 구성될 수 있다.
도 2의 실시예는 특히, 입력 데이터의 정확성이 에러 정정 컴포넌트(130)에 의해 검사된 후에 그리고 아마도 입력 데이터 워드의 정정이 수행된 후에 데이터 조작기 내로 공급되는 테스트 데이터 워드가 에러를 갖지 않을 가능성이 증가하는 장점을 갖는다.
도 2에 대한 대안 실시예는 입력 인터페이스(110)로부터의 입력 데이터 워드를 직접 데이터 조작기(130) 내로 공급한다. 그러한 실시예는 특히 입력 데이터 워드를 검사하고 아마도 정정할 때 어떠한 처리 시간도 소비되지 않는 장점을 갖는다.
도 3은 일 실시예에 따른 회로를 나타내며, 회로(100)는 정상 동작 모드를 활성화하기 위한 모드 스위처(150)를 더 포함한다. 그러한 실시예에서, 정상 동작 모드가 활성화되는 경우, 모드 스위처(150)는 데이터 조작기(120) 및 평가기를 비활성화하도록 구성되며, 따라서 정상 동작 모드가 활성화될 때, 데이터 조작기(120)는 예로서 상기 테스트 데이터 워드의 상기 하나 이상의 비트를 조작하지 않도록 구성될 수 있고, 정상 동작 모드가 활성화될 때, 상기 평가 컴포넌트(140)는 예로서 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 평가하지 않도록 구성될 수 있다.
구체적으로, 도 3은 "1"에 의해 지시되는 정상 동작 모드 및 "2"에 의해 지시되는 테스트 모드를 나타낸다. 도 3에서, 정상 동작 모드에서, 입력 데이터 워드가 입력 인터페이스(110)로부터 에러 정정 컴포넌트(130)로 공급되며, 입력 데이터 워드는 정확성에 대해 검사되고, 필요한 경우에 정정된다. 이어서, (아마도 정정된) 데이터 워드가 에러 정정 컴포넌트(130)에 의해 출력된다.
도 3에서 "2"에 의해 지시되는 테스트 모드에서, 회로(100)는 도 1 및 2를 참조하여 설명된 바와 같이 동작한다.
바람직한 실시예들에서, 2개의 동작 모드, 예로서 정상 동작 모드 및 테스트 모드가 존재한다. 테스트 모드는 에러 정정 컴포넌트 또는 프로세서가 데이터를 처리하지 않을 때만 활성화된다.
도 4는 일 실시예에 따른 회로(100)를 나타내며, 회로(100)는 도 1 내지 3의 컴포넌트들 외에 사용자가 조작되어야 하는 테스트 데이터 워드의 하나 이상의 비트를 지정하는 것을 가능하게 하도록 구성되는 사용자 인터페이스(160)를 더 포함한다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 사용자 인터페이스(160)를 통해 사용자에 의해 지정된 테스트 데이터 워드의 상기 하나 이상의 비트를 조작하도록 구성될 수 있다.
종래 기술과 달리, 사용자는 사전 결정된 테스트 절차에 의존할 필요가 없으며, 그가 테스트하기를 원하는 특정 비트 에러들을 생성하기 위해 테스트 데이터 워드를 어떻게 수정할지를 스스로 지정할 수 있다. 사용자의 특정 요구들에 대한 테스트의 개별화가 가능해진다.
일 실시예에서, 테스트 데이터 워드는 예로서 사용자 데이터 비트들 및 에러 정정을 위한 에러 정정 비트들을 포함할 수 있다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 테스트 데이터 워드의 에러 정정 비트들 중 적어도 하나의 비트를 조작하도록 구성될 수 있다.
따라서, 에러 있는 사용자 데이터 또는 에러 있는 에러 정정 비트들을 갖는 수정된 데이터 워드들을 테스트하는 것이 가능할 뿐만 아니라, 에러 있는 에러 정정 비트들을 포함하는 수정된 데이터 워드들을 테스트하는 것도 가능해진다.
일 실시예에 따르면, 회로(100)의 사용자 인터페이스(160)는 예로서 사용자가 테스트 데이터 워드의 에러 정정 비트들 중 상기 적어도 하나의 비트를 지정하는 것을 가능하게 하도록 구성될 수 있다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 사용자 인터페이스(160)를 통해 사용자에 의해 지정된 테스트 데이터 워드의 에러 정정 비트들 중 상기 적어도 하나의 비트를 조작하도록 구성될 수 있다.
도 5는 일 실시예에 따른 회로(100)를 나타내며, 여기서 테스트 데이터 워드는 예로서 사용자 데이터 비트들, 에러 정정 비트들 및 메모리(200) 내의 사용자 데이터 비트들의 위치를 지정하기 위한 어드레스 비트들을 포함할 수 있다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 테스트 데이터 워드의 어드레스 비트들 중 적어도 하나의 비트를 조작하도록 구성될 수 있다.
일 실시예에 따르면, 사용자 인터페이스(160)는 예로서 사용자가 테스트 데이터 워드의 어드레스 비트들 중 상기 적어도 하나의 비트를 지정하는 것을 가능하게 하도록 구성될 수 있다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 사용자 인터페이스(160)를 통해 사용자에 의해 지정된 테스트 데이터 워드의 어드레스 비트들 중 상기 적어도 하나의 비트를 조작하도록 구성될 수 있다.
따라서, 에러 있는 사용자 데이터를 갖는 수정된 데이터 워드들을 테스트하는 것이 가능할 뿐만 아니라, 에러 있는 어드레스 비트들을 포함하는 수정된 데이터 워드들을 테스트하는 것도 가능해진다.
도 6은 일 실시예에 따른 회로(100)를 나타내며, 회로(100) 자체는 메모리(170)를 더 포함한다. 그러한 실시예에서, 입력 인터페이스(110)는 예로서 메모리(170)로부터 입력 데이터 워드를 로딩하도록 구성될 수 있다.
일 실시예에서, 상기 메모리(170)는 예로서 플래시 메모리 또는 임의의 다른 유형의 비휘발성 메모리들일 수 있다.
일반적으로, 플래시 메모리 자체에서, 플래시 메모리의 비트들은 특정 제1 비트 값으로부터 특정 제2 비트 값으로만 변경될 수 있고, 특정 제2 비트 값으로부터 특정 제1 비트 값으로는 변경되지 못한다. (예로서, 특정 예에서, 특정 플래시 메모리에서, 비트 값 "0"은 프로그램 동작 동안 비트 값 "1"로 변경될 수 있지만, 비트 값 "1"은 소거 동작 없이는 비트 값 "0"으로 변경될 수 없다.) 실시예들은 플래시 값 자체를 변경하는 것이 아니라 플래시 메모리 밖에서 하나 이상의 수정된 데이터 워드를 생성한다. 따라서, "0"에서 "1"로의 또한 "1"에서 "0"으로의 비트 값들의 임의의 변경들이 가능하다.
일 실시예에서, 테스트 데이터 워드는 예로서 사용자 데이터 비트들, 에러 정정 비트들, 및 메모리(200)에 대해 전술한 바와 같이 회로(100)의 메모리(170) 내의 사용자 데이터 비트들의 위치를 지정하기 위한 어드레스 비트들을 포함할 수 있다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 테스트 데이터 워드의 어드레스 비트들 중 적어도 하나의 비트를 조작하도록 구성될 수 있다.
도 7은 특정 실시예에 따른 회로(100)를 나타내며, 회로(100)는 메모리(170) 및 수정되어야 하는 회로(100)의 메모리(170) 내의 어드레스를 지시하는 하나 이상의 어드레스 비트를 지정하기 위한 사용자 인터페이스(160)를 포함한다.
일 실시예에 따르면, 데이터 조작기(120)는 예로서 2개 이상의 수정된 데이터 워드를 생성하도록 구성될 수 있으며, 상기 수정된 데이터 워드는 2개 이상의 데이터 워드 중 하나이며, 따라서 2개 이상의 수정된 데이터 워드 중 각각의 수정된 데이터 워드는 2개 이상의 수정된 데이터 워드 중 각각의 다른 수정된 데이터 워드와 다르다. 그러한 실시예에서, 데이터 조작기(120)는 예로서 테스트 데이터 워드의 적어도 하나의 비트를 수정함으로써 2개 이상의 수정된 데이터 워드 각각을 생성하도록 구성될 수 있다. 더욱이, 그러한 실시예에서, 2개 이상의 수정된 데이터 워드 중 각각의 수정된 데이터 워드에 대해, 에러 정정 컴포넌트(130)는 예로서 상기 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성될 수 있다. 더구나, 그러한 실시예에서, 평가 컴포넌트(140)는 예로서 2개 이상의 수정된 데이터 워드의 검사의 결과에 따라 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 평가하도록 구성될 수 있다.
일 실시예에서, 평가 컴포넌트(140)는 예로서 2개 이상의 수정된 데이터 워드 중 얼마나 많은 수정된 데이터 워드가 에러를 갖는 것으로 에러 정정 컴포넌트(130)가 평가하는지를 지시하는 에러를 갖는 단어들의 수를 결정하도록 구성될 수 있다. 그러한 실시예에서, 평가 컴포넌트(140)는 예로서 상기 에러를 갖는 단어들의 수가 2개 이상의 수정된 데이터 워드 중 얼마가 실제로 에러를 갖는지를 지시하는 예상 에러 수와 동일한지를 결정하도록 구성될 수 있다.
일 실시예에 따르면, 데이터 조작기(120)는 예로서 테스트 데이터 워드의 정확히 하나의 비트를 수정함으로써 2개 이상의 수정된 데이터 워드 각각을 생성하도록 구성될 수 있다.
그러한 실시예는 테스트 데이터 워드가 에러를 갖지 않는다는 가정하에 정확히 1 비트 에러(단일 비트 에러)를 갖는 수정된 데이터 워드들을 테스트한다.
일 실시예에서, 데이터 조작기(120)는 예로서 테스트 데이터 워드의 정확히 2개의 비트를 수정함으로써 2개 이상의 수정된 데이터 워드 각각을 생성하도록 구성될 수 있다.
그러한 실시예는 테스트 데이터 워드가 에러를 갖지 않는다는 가정하에 정확히 2 비트 에러(이중 비트 에러)를 갖는 수정된 데이터 워드들을 테스트한다.
도 8은 일 실시예에 따른 데이터 조작기(120)를 나타내며, 데이터 조작기는 XOR 회로 요소(122), 추가 회로 요소(124) 및 비트 레지스터(126)를 포함한다.
그러한 실시예에서, 비트 레지스터(126)는 예로서 테스트 데이터 워드의 각각의 비트 위치에 대한 비트를 포함할 수 있다. 더욱이, 그러한 실시예에서, 비트 레지스터(126)는 예로서 2개 이상의 수정된 데이터 워드 중 제1의 수정된 데이터 워드를 생성하도록 반전되어야 하는 테스트 데이터 워드의 비트 위치에 할당되는 비트 레지스터(126) 내의 각각의 비트가 비트 레지스터(126) 내에서 제1 비트 값을 갖게 하도록 구성될 수 있다. 더구나, 그러한 실시예에서, 비트 레지스터는 예로서 제1의 수정된 데이터 워드를 생성하도록 반전되지 않아야 하는 테스트 데이터 워드의 비트 위치에 할당되는 비트 레지스터(126) 내의 각각의 비트가 비트 레지스터(126) 내에서 제2 비트 값을 갖게 하도록 구성될 수 있으며, 상기 제2 비트 값은 제1 비트 값과 다르다.
더욱이, 그러한 실시예에서, XOR 회로 요소(122)는 예로서 테스트 데이터 워드를 제1 입력으로서 수신하도록 배열될 수 있다. 더구나, 그러한 실시예에서, XOR 회로 요소(126)는 예로서 비트 레지스터(126) 내의 비트들의 비트 값들을 초기 제2 입력으로서 수신하여 2개 이상의 수정된 데이터 워드 중 제1의 수정된 데이터 워드를 생성하도록 배열될 수 있다.
더욱이, 그러한 실시예에서, 추가 회로 요소(124)는 예로서 제1의 수정된 데이터 워드가 생성된 후에 1 비트 위치만큼 비트 레지스터(126) 내의 비트들의 비트 값들을 시프트 또는 회전시켜 비트 레지스터(126) 내의 비트들의 갱신된 비트 값들을 얻도록 구성될 수 있다. 더구나, 그러한 실시예에서, XOR 회로 요소(122)는 예로서 비트 레지스터(126) 내의 비트들의 갱신된 비트 값들을 갱신된 제2 입력으로서 수신하여 2개 이상의 수정된 데이터 워드 중 제2의 수정된 데이터 워드를 생성하도록 배열될 수 있다.
그러한 실시예는 복수의 수정된 데이터 워드를 효율적으로 생성함으로써 복수의 에러를 갖는 수정된 데이터 워드를 테스트하는 데에 특히 적합하다.
더욱이, 예로서 후속의 수정된 데이터 워드들을 생성하기 위해 회전이 사용되는 경우, 비트 에러가 시프트되지만, 일반적으로 비트 에러들의 수는 후속 데이터 워드들에 동일하게 유지되는 것으로 가정될 수 있다.
아래에서는 특정 실시예들이 상세히 설명된다.
실시예들에 따르면, 사용자로 하여금 테스트 데이터를 판독한 후에 에러 정정이 어느 비트 위치들에서 판독 결과를 변조(반전)하는지를 결정하는 것을 가능하게 하는 하나 이상의 사용자 레지스터가 사용자를 위해 제공된다.
이것은 "1"의 값을 갖는 비트 위치들을 반전하는 XOR 콘텐츠를 초기화함으로써 발생한다. 실시예들에 따르면, 에러 정정 테스트 코드는 에러가 없거나 적어도 에러 정정 코드가 정정 가능한 경우에만 프로그래밍된다. 아마도 정정된 판독 테스트 워드의 비트 단위 수정은 에러 정정 코드 정정 없이 에러 셀 필드를 판독한 직후에는 물론, 정정 후에도 수행될 수 있다.
실시예들에 따르면, 판독 데이터의 변조는 판독 테스트 데이터의 에러 정정 코드 계산 직전에 회로에 기초하여 바람직하게 수행된다. 어떤 방식으로 어느 비트 위치들에서 테스트 데이터를 수정할지는 에러 정정 코드 계산의 테스트 전에 초기화되는 레지스터 세트에 의해 결정된다.
에러 정정 코드 테스트 워드를 사용하는 목적은 잘못 해석된 0 또는 1 비트에 대해 에러 정정 코드 논리 내에 선택적 에러를 삽입한 후에 에러 정정 코드 생성 경로를 선택적으로 테스트하는 것이다. 바람직하게, 하나 이상의 비트 스위칭 수단이 제2 스테이지에서 제어 방식으로 생성되며, 이어서 능동적으로 시작되는 에러 정정 코드 반응이 평가된다.
일 실시예에 따르면, 에러 정정 코드 능력의 검사는 예로서 4 단계로 수행될 수 있다. 제1 단계에서, 에러 정정 코드 테스트 판독은 예를 들어 테스트 판독의 어느 비트가 어느 방식으로 반전되어야 하는지 그리고 아마도 어드레스 에러 정정 코드의 경우에 데이터가 어느 메모리 어드레스와 관련되는지를 결정함으로써 초기화된다. 제2 단계에서, 정정 가능 에러 정정 코드 워드에서 비트 스위칭이 수행되고, 셀 필드로부터 데이터를 다시 로딩하지 않고서 방금 유발된 정정 단계 동안 에러 정정 코드 계산이 수행된다. 이전에 로딩되고 비트 단위로 수정된 데이터에 대한 에러 정정의 반응이 사용자에 의해 알려진 통상의 레지스터들 및 플래그들을 이용하여 마지막 단계에서 수행된다.
실시예들에 따르면, 데이터 버스의 에러 정정 코드 회로의 예상 기능을 검사하기 위해 에러 정정 코드 회로에 할당되는 레지스터 세트가 제공된다. 에러 정정 회로는 휘발성 또는 비휘발성 메모리에 할당될 수 있다.
일 실시예에서, 프로그래밍 가능 레지스터 세트로부터의 로딩이 수행되며, 로딩된 에러 정정 코드 데이터의 사용자 데이터, 판독 어드레스 및 에러 정정 코드 데이터의 비트들 중 어느 것이 수정되어야 하는지가 결정된다.
일 실시예에 따르면, 수정될 비트들의 수정은 하나 이상의 비트를 설정하고, 하나 이상의 비트를 삭제하고/하거나, 하나 이상의 비트를 반전시킴으로써 수행될 수 있다.
실시예들에서, 선택사항으로서, 어드레스 에러 정정 코드 계산의 경우에 사용자 및 에러 정정 코드 데이터 비트들에 더하여 어드레스 비트들도 설정, 삭제 및/또는 반전되는지가 결정될 수 있다.
일 실시예에 따르면, 메모리 판독 액세스를 위해 테스트 데이터 및 판독 어드레스가 이미 결정되었고, 다음 판독 액세스가 상기 특정 셀 필드에 액세스하지 않을 것임을 지시하는 비트 설정이 지시될 수 있다.
일 실시예에 따르면, 선택사항으로서, 셀 필드에 액세스하지 않고서 비트 조작을 이용하는 제2 판독 명령이 제1 판독 명령 직후에 수행되어야 하는지가 결정될 수 있다.
일 실시예에 따르면, 선택사항으로서, 에러 플래그 시그니처가 수집되거나 결과 레지스터 내에 로딩되어야 하는지가 결정될 수 있다.
일 실시예에 따르면, 선택사항으로서, 에러 시그니처의 발생은 (예로서, 초기화 가능한) 카운터 레지스터 내에 축적될 수 있다.
실시예들에서, 에러 정정 코드 기능 검사 및 예상 거동과 비교되는 에러 시그니처의 평가는 단계적으로, 반자동으로 그리고/또는 연속적으로(아마도 예로서 하나 이상의 인터럽트를 이용하여) 수행될 수 있다.
실시예들은 다음의 장점들 중 하나, 일부 또는 전부를 갖는데, 실시예들에 따르면, 에러를 갖는 이중 프로그래밍이 필수적인 것은 아니므로, 비휘발성 메모리들의 에러 정정 코드 기능은 동작 중에도 테스트될 수 있다.
메모리 컴포넌트 및 에러 정정 회로는 단일 컴포넌트 상에 통합될 필요가 없다. 각각의 에러 정정 코드 유닛은 유닛이 자신을 테스트하는 자기 테스트를 수행할 수 있다.
에러를 갖는 데이터의 명시적인 메모리 할당이 필요하지 않다. 어드레스 에러 정정 코드 방법의 경우, 메모리 어드레스는 알려질 필요가 없으며, 자유롭게 선택 가능한 어드레스 소스들을 결정하는 것이 가능하다. 다중 비교를 위한 테스트 데이터의 다중 저장이 필요하지 않다.
실시예들에서, 제1 판독은 예로서 추가적인 셀 에러들이 발생하는 경우에도 셀 에러 정정 가능성과 무관한 메모리 에러 정정을 정확한 방식으로 수행하기 위해 에러 정정 코드 정정을 이용하여 수행될 수 있다.
처음 획득된 판독 결과가 검사를 위해 후속 단계에서 수정되는 경우, 제2 에러 정정 코드 테스트 판독은 추가 지연(대기 상태) 없이 특정 비트 조작을 이용하여 수행될 수 있다.
회로별 비트 조작을 위해 단일 레지스터 세트만이 구현되는 경우, 에러 정정 코드 테스트 판독은 통상의 제1 판독과 동일한 회로를 이용하여 수행될 수 있다. 이것은 테스트 회로의 레이아웃에서 공간 절약을 유발하며, 에러 정정 코드 테스트 판독 자체에 대한 회로의 테스트 능력도 추가 공간을 필요로 하지 않는다.
에러 정정 코드 결과를 병렬로 확인하고 그 자신이 동작 동안 검사되어야 하는 제2 에러 정정 코드 회로가 필요하지 않다.
선택사항인 추가 실시예들은 예로서 에러 정정 코드 테스트 프로그램을 제어 방식으로 또는 자동으로 수행할 수 있다. 기능 검사를 자동으로 수행하는 경우, 이것은 반자동으로 또는 연속적으로 조종하면서 수행될 수 있다.
특정 실시예를 설명하기 위해, 판독 경로 및 기록 경로에 의한 랜덤 액세스를 갖는 일 실시예에 따른 에러 정정 코드 메모리를 나타내는 도 9가 제공된다.
더욱이, 도 10은 CPU와 메모리 사이의 데이터 경로 내에 실현된 에러 정정 코드 회로를 나타낸다.
도 11에는, 일 실시예에 따른, 동작 동안 회로 정정 검사를 지원하기 위한 소형 레지스터 세트 확장이 도시된다.
"어드레스 XOR"은 예로서 어드레스 비트 반전을 위한 32 비트 레지스터일 수 있다.
"ECCR XOR"은 예로서 ECC 판독 반전(ECCR 반전)을 위한 8 비트 레지스터일 수 있다.
"데이터 XOR"은 예로서 데이터 반전을 위한 64 비트 레지스터일 수 있다.
"FSR"은 플래시 상태 레지스터를 의미한다.
도 12는 에러 정정 코드 능력을 갖는 의도적으로 이중 프로그래밍된 플래시 메모리에 대한 에러 정정 능력의 기능을 초기화, 동작 및 평가하기 위한 흐름도를 나타낸다. 구체적으로, 도 12는 통상적인 이중 프로그래밍 방법을 나타낸다.
도 13에는, 일 실시예에 따른, 에러 정정 코드 기능을 수동으로 검사하기 위한 흐름도가 도시된다. 구체적으로, 도 13은 수동 단일 비트 응답 테스트(상태 "CleaN" 또는 "CleaR"?)를 나타낸다.
도 14는 일 실시예에 따른, 에러 정정 코드 기능을 반자동으로 검사하기 위한 흐름도를 나타낸다. 구체적으로, 도 14는 완전한 단일 반자동 에러 정정 코드 응답 테스트를 나타낸다.
도 15에는, 완전 자동으로 에러 정정 코드의 기능을 연속 검사하기 위한 흐름도가 도시된다. 구체적으로, 도 15는 인터럽트 조종 연속 에러 정정 코드 테스트 루틴을 나타낸다.
도 16은 일 실시예에 따른, 완전 자동으로 에러 정정 코드 기능을 연속 검사하기 위한 레지스터 세트를 나타낸다. 구체적으로, 도 16은 상이한 에러 예들("X")을 커버한다("X": 단일 비트 에러 = SBE = S, 이중 비트 에러 = DBE = D, 다중 비트 에러 = MBE = M).
아래에서는, 본 발명의 추가 실시예들이 더 상세히 설명된다. 그러나 그전에 이 분야의 기술 수준이 더 면밀하게 조사된다.
이 분야의 기술 수준에서, 에러 정정 코드 기능 검사를 수행하기 위해, 고객은 실행 시간에서의 메모리 액세스의 데이터 경로 정정 능력의 에러 정정 코드 기능에 대한 확인을 필요로 한다. 특정한 의도적으로 변조된 에러 정정 코드 워드들을 처리함으로써 에러 정정 코드 테스트가 수행된다. 상기 에러 정정 코드 워드들은 메모리로부터, 예로서 플래시 메모리로부터 로딩된 입력 데이터 워드들로부터 도출되었을 수 있다.
eFlash에서, 에러 정정 코드 에러들은 소거(강제된 실패 시그니처) 없이 이중 프로그래밍에 의해 인위적으로 저장된다. 검출된 에러 플래깅은 예상 에러 플래깅("패스 사례")과 비교된다. 이것은 도 17에 도시된다.
한 가지 문제는 에러 정정 코드 실패 카운트 오해이다. 정정 가능 메모리 비트 실패들은 단일 결함들로 인한 예측되지 않는 강제 실패 시그니처의 오해를 유발한다. 예들은 예로서 단일 비트플립들 및/또는 로컬/글로벌 버스트 길이 결함들이다.
이것은 비의도적인 비트플립들이 예상되는 에러 정정 코드 실패 플래깅 카운트 시그니처의 시그니처에 영향을 준다는 것을 의미한다.
에러 정정 코드 실패 시그니처 변경이 발생할 수 있다.
도 18은 일 실시예에 따른 하드웨어 솔루션을 나타낸다. 메모리 판독 경로를 통해 또는 직접 레지스터 설정에 의해 획득되는 에러 정정 코드 일관성 데이터 세트(어드레스/데이터/에러 정정 코드)의 강제 실패 시그니처를 제어하기 위한 레지스터 세트가 고객에게 제공된다.
메모리로부터의 판독 동안, 임의의 예측되지 않는 정정 가능 비트 에러들은 데이터 세트에서 에러 정정 코드에 의해 일관성 있게 제거된다. 수행되는 에러 정정은 예로서 고객에 고유할 수 있다.
데이터 세트는 단일 에러 정정 코드 계산 단계에서 비트플립 패턴을 적용할 수 있는 테스트 패턴으로서 사용된다.
비트플립 시퀀스는 비트플립 패턴 회전을 제어하고 비트 에러/이중 비트 에러 이벤트들을 기록하는 간이 상태 기계에 의해 반복/자동화될 수 있다. 상태 기계는 레지스터 세트에 의해 제어된다.
도 19는 일 실시예에 따른 다른 예를 나타낸다. 구성의 세 가지 단계, 예로서 초기화, 활성화, 모니터링이 가능할 수 있다.
도 20은 다른 실시예에 따른 더 추가적인 예를 나타낸다.
실시예들은 또한 ECC FSM(FSM = 유한 상태 기계) 테스트 엔진의 다양한 이익들을 갖는다.
실행 시간 동안의 안전 양태들의 에러 정정 코드 기능 테스트들에 대한 개방된 고객 테스트 특징이 실현된다. 실시예들은 (플래시로 제한되는 것이 아니라) 모든 에러 정정 코드 정정 가능 메모리들에 적용될 수 있다.
에러 정정 코드 일관성 데이터 세트 구성에 대한 지식은 필요하지 않다.
실시예들에 따르면, 동일 경로 상에서 그리고 메모리 판독에서와 동일한 논리를 이용하여 에러 정정 코드 유닛 테스트가 가능하다.
실시예들에서, RAM/eFlash에 대한 강제 실패 패턴 시그니처의 정의는 필요하지 않다.
실시예들에 따르면, 강제 실패 패턴 생성의 어드레스 위치 및 시퀀스의 정확한 정의는 필요하지 않다.
실시예들은 아래의 발견들에 기초한다.
강제 실패들을 이용하여 에러 정정이 유효한지를 검사한다.
비휘발성 메모리들, 예로서 플래시가 특히 중요하다. 플래시 메모리는 이중 프로그래밍에 적합할 수 있다. 에러 정정 코드와 관련하여, 예로서 64개의 사용자 데이터 비트가 8개의 정정 데이터 비트를 수반할 수 있다.
이중 프로그래밍할 때, 예로서 제1 프로그래밍 및 제2 프로그래밍 결과는 논리적인 비트별 OR에 의해 연결될 수 있다.
CPU는 에러 정정 코드(ECC)가 유효한지를 테스트한다. 예로서 S-런들(S-runs)이 테스트될 수 있다. 예를 들어, 에어백 응용들이 특히 중요하다. 에러 정정 코드 유닛이 에러를 갖는지가 밝혀져야 한다. 에러 정정 코드는 시간 경과에 따라 악화될 수 있다. 테스트들은 예로서 사용자에 의해 초기화되거나 자동으로 시작될 수 있다.
예로서 단일 셀만이 테스트되거나, 더 많은 셀이 테스트되는 것이 예로서 프로그래밍 가능할 수 있다.
통상적으로, 메모리는 메모리를 테스트하기 위한 단일 에러 정정 코드 유닛을 가질 수 있다.
테스트들은 통상적으로 유휴 시간들 동안에만 수행될 수 있다.
어드레스 개시기 및 에러 정정 코드의 초기화가 필요할 수 있다.
의사 무작위 테스트들이 수행될 수 있다.
전술한 바와 같이, 응용 분야들은 예로서 자동차 산업일 수 있다.
일 실시예에 따르면, 플래그가 에러 정정이 수행되었는지를 지시하는지를 결정함으로써 에러 정정이 수행된다. 플래그들의 수가 카운트될 수 있고, 플래그들의 수는 수행된 에러 정정들의 수를 지시한다. 이어서, 수행된 에러 정정들의 수가 예상 에러 정정들의 수와 동일한지가 테스트된다.
다른 실시예에서, 에러 정정이 수행될 때마다, 정정된 비트들이 예상 비트들과 동일한지가 테스트된다.
일부 양태들이 기기와 관련하여 설명되었지만, 이러한 양태들은 대응하는 방법의 설명도 나타내며, 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 대응한다는 것이 명백하다. 유사하게, 방법 단계와 관련하여 설명된 양태들은 대응하는 기기의 대응하는 블록 또는 아이템 또는 특징의 설명도 나타낸다. 방법 단계들 중 일부 또는 전부는 예로서 마이크로프로세서, 프로그래밍 가능 컴퓨터 또는 전자 회로와 같은 하드웨어 기기에 의해(또는 이를 이용하여) 실행될 수 있다. 일부 실시예들에서, 가장 중요한 방법 단계들 중 하나 이상은 그러한 기기에 의해 실행될 수 있다.
소정의 구현 요구들에 따라, 본 발명의 실시예들은 하드웨어로 또는 소프트웨어로 또는 적어도 부분적으로 하드웨어로 또는 적어도 부분적으로 소프트웨어로 구현될 수 있다. 구현은 각각의 방법이 수행되도록 프로그래밍 가능 컴퓨터 시스템과 협력하는(또는 협력할 수 있는) 전자적으로 판독 가능한 제어 신호들을 저장한 디지털 저장 매체, 예로서 플로피 디스크, DVD, 블루레이, CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리를 이용하여 수행될 수 있다. 따라서, 디지털 저장 매체는 컴퓨터에 의해 판독될 수 있다.
본 발명에 따른 일부 실시예들은 본 명세서에서 설명되는 방법들 중 하나가 수행되도록 프로그래밍 가능 컴퓨터 시스템과 협력할 수 있는 전자적으로 판독 가능한 제어 신호들을 갖는 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때 방법들 중 하나를 수행하도록 동작한다. 프로그램 코드는 예로서 기계 판독 가능 캐리어 상에 저장될 수 있다.
다른 실시예들은 기계 판독 가능 캐리어 상에 저장되는, 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
즉, 본 발명의 방법의 일 실시예는 따라서 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법들의 추가 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 그에 기록된 컴퓨터 프로그램을 포함하는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터 판독 가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록된 매체는 통상적으로 유형적이고/이거나 비일시적이다.
따라서, 본 발명의 방법의 추가 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호들의 시퀀스이다. 데이터 스트림 또는 신호들의 시퀀스는 예로서 데이터 통신 접속을 통해, 예로서 인터넷을 통해 전송되도록 구성될 수 있다.
추가 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하도록 구성되거나 적응되는 처리 수단, 예로서 컴퓨터 또는 프로그래밍 가능 논리 장치를 포함한다.
추가 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 추가 실시예는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기로 (예로서, 전자적으로 또는 광학적으로) 전송하도록 구성되는 기기 또는 시스템을 포함한다. 수신기는 예로서 컴퓨터, 이동 장치, 메모리 장치 등일 수 있다. 기기 또는 시스템은 예로서 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예들에서, 프로그래밍 가능 논리 장치(예로서, 필드 프로그래머블 게이트 어레이)를 이용하여, 본 명세서에서 설명되는 방법들의 기능들의 일부 또는 전부를 수행할 수 있다. 일부 실시예들에서, 필드 프로그래머블 게이트 어레이는 본 명세서에서 설명되는 방법들 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법들은 임의의 하드웨어 기기에 의해 바람직하게 수행된다.
본 명세서에서 설명되는 기기는 하드웨어 기기를 이용하여 또는 컴퓨터를 이용하여 또는 하드웨어 기기와 컴퓨터의 조합을 이용하여 구현될 수 있다.
본 명세서에서 설명되는 방법들은 하드웨어 기기를 이용하여 또는 컴퓨터를 이용하여 또는 하드웨어 기기와 컴퓨터의 조합을 이용하여 구현될 수 있다.
전술한 실시예들은 본 발명의 원리들을 예시할 뿐이다. 본 명세서에서 설명되는 배열들 및 상세들의 수정들 및 변경들이 이 분야의 다른 기술자들에게 명백할 것임을 이해한다. 따라서, 본 명세서에서의 실시예들의 서술 및 설명을 통해 제공되는 특정 상세들에 의해서가 아니라 임박한 특허 청구항들의 범위에 의해서만 한정되는 것을 의도한다.
청구항 세트에 관련하여, 본 발명은 청구항들의 임의의 상상 가능한 조합도 커버한다.

Claims (22)

  1. 회로(100)로서,
    데이터 에러 정정을 위한 그리고 상기 회로(100)의 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 검사하기 위한 상기 회로(100)는
    입력 데이터 워드를 수신하기 위한 입력 인터페이스(110);
    테스트 데이터 워드의 하나 이상의 비트를 조작하여, 수정된 데이터 워드를 얻기 위한 데이터 조작기(120) - 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나, 상기 입력 데이터 워드로부터 도출됨 -;
    상기 수정된 데이터 워드를 처리하기 위한 상기 에러 정정 컴포넌트(130); 및
    상기 에러 정정 컴포넌트(130)에 의한 상기 수정된 데이터 워드의 상기 처리에 따라 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력의 상기 정확성을 평가하기 위한 평가 컴포넌트(140)
    를 포함하고,
    상기 에러 정정 컴포넌트(130)는 상기 입력 인터페이스(110)로부터 상기 입력 데이터 워드를 수신하도록 배열되고,
    상기 에러 정정 컴포넌트(130)는 상기 입력 데이터 워드가 에러를 갖는지를 검사하도록 구성되고,
    상기 에러 정정 컴포넌트(130)가 상기 입력 데이터 워드가 에러를 갖는 것으로 결정하는 경우, 상기 에러 정정 컴포넌트(130)는 상기 입력 데이터 워드를 정정하여, 사전 정정된 데이터 워드를 획득하도록 구성되고, 상기 사전 정정된 데이터 워드를 상기 데이터 조작기(120) 내에 상기 테스트 데이터 워드로서 공급하도록 구성되며,
    상기 에러 정정 컴포넌트(130)가 상기 입력 데이터 워드가 에러를 갖지 않는 것으로 결정하는 경우, 상기 에러 정정 컴포넌트(130)는 상기 입력 데이터 워드를 상기 데이터 조작기(120) 내에 상기 테스트 데이터 워드로서 공급하도록 구성되는 회로(100).
  2. 제1항에 있어서,
    상기 에러 정정 컴포넌트(130)는 상기 수정된 데이터 워드가 에러를 갖는지를 검사하고, 플래깅(flagging)에 의해 지시하도록 구성되고,
    상기 평가 컴포넌트(140)는 상기 에러 정정 컴포넌트(130)에 의해 수행된 상기 검사의 결과인 상기 수정된 데이터 워드가 에러를 갖는지의 여부에 따라 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력의 상기 정확성을 평가하도록 구성되는 회로(100).
  3. 제1항 또는 제2항에 있어서,
    상기 에러 정정 컴포넌트(130)는 상기 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성되고,
    상기 에러 정정 컴포넌트(130)가 상기 수정된 데이터 워드가 에러를 갖는 것으로 결정한 경우, 상기 에러 정정 컴포넌트(130)는 상기 수정된 데이터 워드를 정정하여, 정정된 데이터 워드를 획득하도록 구성되고,
    상기 평가 컴포넌트(140)는 상기 정정된 데이터 워드가 예상 데이터 워드와 동일한지를 결정하도록 구성되고,
    상기 정정된 데이터 워드가 상기 예상 데이터 워드와 다른 경우, 상기 평가 컴포넌트(140)는 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력이 부정확한 것으로 결정하도록 구성되는 회로(100).
  4. 제1항 또는 제2항에 있어서,
    상기 에러 정정 컴포넌트(130)는 상기 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성되고,
    상기 에러 정정 컴포넌트(130)가 상기 수정된 데이터 워드가 에러를 갖는 것으로 결정한 경우, 상기 에러 정정 컴포넌트(130)는 상기 수정된 데이터 워드를 정정하여, 사용자 데이터 비트들 및 에러 정정 비트들을 포함하는 정정된 데이터 워드를 획득하도록 구성되고,
    상기 평가 컴포넌트(140)는 상기 정정된 데이터 워드의 상기 사용자 데이터 비트들에 따라 그리고 상기 정정된 데이터 워드의 상기 에러 정정 비트들에 따라 상기 정정된 데이터 워드가 에러를 갖는지를 결정하도록 구성되고,
    상기 정정된 데이터 워드가 에러를 갖는 경우, 상기 평가 컴포넌트(140)는 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력이 부정확한 것으로 결정하도록 구성되는 회로(100).
  5. 삭제
  6. 제1항 또는 제2항에 있어서,
    상기 회로(100)는 정상 동작 모드를 활성화하기 위한 모드 스위처(150)를 더 포함하고,
    상기 정상 동작 모드가 활성화되는 경우, 상기 모드 스위처(150)는 상기 데이터 조작기(120) 및 평가기를 비활성화하도록 구성되며, 따라서 상기 정상 동작 모드가 활성화될 때, 상기 데이터 조작기(120)는 상기 테스트 데이터 워드의 상기 하나 이상의 비트를 조작하지 않도록 구성되고, 상기 정상 동작 모드가 활성화될 때, 상기 평가 컴포넌트(140)는 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력의 상기 정확성을 평가하지 않도록 구성되는 회로(100).
  7. 제1항 또는 제2항에 있어서,
    상기 회로(100)는 사용자가 조작되어야 하는 상기 테스트 데이터 워드의 하나 이상의 비트를 지정하는 것을 가능하게 하도록 구성되는 사용자 인터페이스(160)를 더 포함하고,
    상기 데이터 조작기(120)는 상기 사용자 인터페이스(160)를 통해 상기 사용자에 의해 지정된 상기 테스트 데이터 워드의 상기 하나 이상의 비트를 조작하도록 구성되는 회로(100).
  8. 제1항 또는 제2항에 있어서,
    상기 테스트 데이터 워드는 사용자 데이터 비트들 및 에러 정정을 위한 에러 정정 비트들을 포함하고,
    상기 데이터 조작기(120)는 상기 테스트 데이터 워드의 상기 에러 정정 비트들 중 적어도 하나의 비트를 조작하도록 구성되는 회로(100).
  9. 제8항에 있어서,
    상기 회로(100)는 사용자가 상기 테스트 데이터 워드의 상기 에러 정정 비트들 중 상기 적어도 하나의 비트를 지정하는 것을 가능하게 하도록 구성되는 사용자 인터페이스(160)를 더 포함하고,
    상기 데이터 조작기(120)는 상기 사용자 인터페이스(160)를 통해 상기 사용자에 의해 지정된 상기 테스트 데이터 워드의 상기 에러 정정 비트들 중 상기 적어도 하나의 비트를 조작하도록 구성되는 회로(100).
  10. 제8항에 있어서,
    상기 테스트 데이터 워드는 상기 사용자 데이터 비트들 및 상기 에러 정정 비트들, 및 메모리(200) 내의 상기 사용자 데이터 비트들의 위치를 지정하기 위한 어드레스 비트들을 포함하고,
    상기 데이터 조작기(120)는 상기 테스트 데이터 워드의 상기 어드레스 비트들 중 적어도 하나의 비트를 조작하도록 구성되는 회로(100).
  11. 제10항에 있어서,
    상기 회로(100)는 사용자가 상기 테스트 데이터 워드의 상기 어드레스 비트들 중 상기 적어도 하나의 비트를 지정하는 것을 가능하게 하도록 구성되는 사용자 인터페이스(160)를 더 포함하고,
    상기 데이터 조작기(120)는 상기 사용자 인터페이스(160)를 통해 상기 사용자에 의해 지정된 상기 테스트 데이터 워드의 상기 어드레스 비트들 중 상기 적어도 하나의 비트를 조작하도록 구성되는 회로(100).
  12. 제1항 또는 제2항에 있어서,
    상기 회로(100)는 메모리(170)를 더 포함하고,
    상기 입력 인터페이스(110)는 상기 메모리(170)로부터 상기 입력 데이터 워드를 로딩하도록 구성되는 회로(100).
  13. 제10항에 있어서,
    상기 회로(100)는 제10항의 상기 메모리(200)를 더 포함하고,
    상기 입력 인터페이스(110)는 상기 메모리(200)로부터 상기 입력 데이터 워드를 로딩하도록 구성되는 회로(100).
  14. 제12항에 있어서,
    상기 메모리(170)는 플래시 메모리인 회로(100).
  15. 제1항 또는 제2항에 있어서,
    상기 평가 컴포넌트(140)가 상기 에러 정정 컴포넌트(130)의 상기 에러 정정이 부정확하다는 것을 검출한 경우에, 상기 평가 컴포넌트(140)는 상기 회로(100)를 비활성화하거나 알람 또는 알람 메시지를 출력하도록 구성되는 회로(100).
  16. 회로(100)로서,
    데이터 에러 정정을 위한 그리고 상기 회로(100)의 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 검사하기 위한 상기 회로(100)는
    입력 데이터 워드를 수신하기 위한 입력 인터페이스(110);
    테스트 데이터 워드의 하나 이상의 비트를 조작하여, 수정된 데이터 워드를 얻기 위한 데이터 조작기(120) - 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나, 상기 입력 데이터 워드로부터 도출됨 -;
    상기 수정된 데이터 워드를 처리하기 위한 상기 에러 정정 컴포넌트(130); 및
    상기 에러 정정 컴포넌트(130)에 의한 상기 수정된 데이터 워드의 상기 처리에 따라 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력의 상기 정확성을 평가하기 위한 평가 컴포넌트(140)
    를 포함하고,
    상기 데이터 조작기(120)는 2개 이상의 수정된 데이터 워드를 생성하도록 구성되고, 상기 수정된 데이터 워드는 상기 2개 이상의 수정된 데이터 워드 중 하나이며, 따라서 상기 2개 이상의 수정된 데이터 워드 중 각각의 수정된 데이터 워드는 상기 2개 이상의 수정된 데이터 워드 중 각각의 다른 수정된 데이터 워드와 다르며,
    상기 데이터 조작기(120)는 상기 테스트 데이터 워드의 적어도 하나의 비트를 수정함으로써 상기 2개 이상의 수정된 데이터 워드 각각을 생성하도록 구성되고,
    상기 2개 이상의 수정된 데이터 워드 중 각각의 수정된 데이터 워드에 대해, 상기 에러 정정 컴포넌트(130)는 상기 수정된 데이터 워드가 에러를 갖는지를 검사하도록 구성되고,
    상기 평가 컴포넌트(140)는 상기 2개 이상의 수정된 데이터 워드의 상기 검사의 결과에 따라 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력의 상기 정확성을 평가하도록 구성되는 회로(100).
  17. 제16항에 있어서,
    상기 평가 컴포넌트(140)는 상기 2개 이상의 수정된 데이터 워드 중 얼마나 많은 수정된 데이터 워드가 에러를 갖는 것으로 상기 에러 정정 컴포넌트가 평가하는지를 지시하는 에러를 갖는 단어들의 수를 결정하도록 구성되고,
    상기 평가 컴포넌트(140)는 상기 에러를 갖는 단어들의 수가 상기 2개 이상의 수정된 데이터 워드 중 얼마가 실제로 에러를 갖는지를 지시하는 예상 에러 수와 동일한지를 결정하도록 구성되는 회로(100).
  18. 제16항에 있어서,
    상기 데이터 조작기(120)는 상기 테스트 데이터 워드의 정확히 하나의 비트를 수정함으로써 상기 2개 이상의 수정된 데이터 워드 각각을 생성하도록 구성되는 회로(100).
  19. 제16항에 있어서,
    상기 데이터 조작기(120)는 상기 테스트 데이터 워드의 정확히 2개의 비트를 수정함으로써 상기 2개 이상의 수정된 데이터 워드 각각을 생성하도록 구성되는 회로(100).
  20. 제16항에 있어서,
    상기 데이터 조작기(120)는 XOR 회로 요소(122), 추가 회로 요소(124) 및 비트 레지스터(126)를 포함하고,
    상기 비트 레지스터(126)는 상기 테스트 데이터 워드의 각각의 비트 위치에 대한 비트를 포함하고,
    상기 비트 레지스터(126)는 상기 2개 이상의 수정된 데이터 워드 중 제1의 수정된 데이터 워드를 생성하도록 반전되어야 하는 상기 테스트 데이터 워드의 비트 위치에 할당되는 상기 비트 레지스터(126) 내의 각각의 비트가 상기 비트 레지스터(126) 내에서 제1 비트 값을 갖게 하도록 구성되고,
    상기 비트 레지스터(126)는 상기 제1의 수정된 데이터 워드를 생성하도록 반전되지 않아야 하는 상기 테스트 데이터 워드의 비트 위치에 할당되는 상기 비트 레지스터(126) 내의 각각의 비트가 상기 비트 레지스터(126) 내에서 제2 비트 값을 갖게 하도록 구성되고, 상기 제2 비트 값은 상기 제1 비트 값과 다르며,
    상기 XOR 회로 요소(122)는 상기 테스트 데이터 워드를 제1 입력으로서 수신하도록 배열되고,
    상기 XOR 회로 요소(122)는 상기 비트 레지스터(126) 내의 상기 비트들의 상기 비트 값들을 초기 제2 입력으로서 수신하여 상기 2개 이상의 수정된 데이터 워드 중 상기 제1의 수정된 데이터 워드를 생성하도록 배열되고,
    상기 추가 회로 요소(124)는 상기 제1의 수정된 데이터 워드가 생성된 후에 1 비트 위치만큼 상기 비트 레지스터(126) 내의 상기 비트들의 상기 비트 값들을 시프트 또는 회전시켜 상기 비트 레지스터(126) 내의 상기 비트들의 갱신된 비트 값들을 얻도록 구성되고,
    상기 XOR 회로 요소(122)는 상기 비트 레지스터(126) 내의 상기 비트들의 상기 갱신된 비트 값들을 갱신된 제2 입력으로서 수신하여 상기 2개 이상의 수정된 데이터 워드 중 제2의 수정된 데이터 워드를 생성하도록 배열되는 회로(100).
  21. 데이터 에러 정정을 위한 그리고 에러 정정 컴포넌트(130)의 에러 정정 능력의 정확성을 검사하기 위한 방법으로서,
    입력 인터페이스(110)에 의해 입력 데이터 워드를 수신하는 단계;
    데이터 조작기(120)에 의해 테스트 데이터 워드의 하나 이상의 비트를 조작하여, 수정된 데이터 워드를 획득하는 단계 - 상기 테스트 데이터 워드는 상기 입력 데이터 워드이거나, 상기 입력 데이터 워드로부터 도출됨 -;
    상기 에러 정정 컴포넌트(130)에 의해 상기 수정된 데이터 워드를 처리하는 단계; 및
    평가 컴포넌트(140)에 의해, 상기 에러 정정 컴포넌트(130)에 의한 상기 수정된 데이터 워드의 상기 처리에 따라 상기 에러 정정 컴포넌트(130)의 상기 에러 정정 능력의 상기 정확성을 평가하는 단계
    를 포함하고,
    상기 에러 정정 컴포넌트(130)는 상기 입력 인터페이스(110)로부터 상기 입력 데이터 워드를 수신하도록 배열되고,
    상기 에러 정정 컴포넌트(130)는 상기 입력 데이터 워드가 에러를 갖는지를 검사하도록 구성되고,
    상기 에러 정정 컴포넌트(130)가 상기 입력 데이터 워드가 에러를 갖는 것으로 결정하는 경우, 상기 에러 정정 컴포넌트(130)는 상기 입력 데이터 워드를 정정하여, 사전 정정된 데이터 워드를 획득하도록 구성되고, 상기 사전 정정된 데이터 워드를 상기 데이터 조작기(120) 내에 상기 테스트 데이터 워드로서 공급하도록 구성되며,
    상기 에러 정정 컴포넌트(130)가 상기 입력 데이터 워드가 에러를 갖지 않는 것으로 결정하는 경우, 상기 에러 정정 컴포넌트(130)는 상기 입력 데이터 워드를 상기 데이터 조작기(120) 내에 상기 테스트 데이터 워드로서 공급하도록 구성되는 방법.
  22. 컴퓨터 판독가능한 기록매체로서,
    컴퓨터 또는 신호 프로세서 상에서 실행될 때 제21항의 방법을 구현하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독가능한 기록매체.
KR1020160071795A 2015-06-10 2016-06-09 에러 정정 능력을 테스트하기 위한 회로 및 방법 KR101852919B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015210651.9 2015-06-10
DE102015210651.9A DE102015210651B4 (de) 2015-06-10 2015-06-10 Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit

Publications (2)

Publication Number Publication Date
KR20160145503A KR20160145503A (ko) 2016-12-20
KR101852919B1 true KR101852919B1 (ko) 2018-04-30

Family

ID=57395064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160071795A KR101852919B1 (ko) 2015-06-10 2016-06-09 에러 정정 능력을 테스트하기 위한 회로 및 방법

Country Status (4)

Country Link
US (1) US20160364280A1 (ko)
JP (1) JP6290303B2 (ko)
KR (1) KR101852919B1 (ko)
DE (1) DE102015210651B4 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108512B2 (en) * 2016-04-01 2018-10-23 Intel Corporation Validation of memory on-die error correction code
KR20190043043A (ko) 2017-10-17 2019-04-25 에스케이하이닉스 주식회사 전자장치
US11048602B2 (en) 2017-10-17 2021-06-29 SK Hynix Inc. Electronic devices
DE102019132153B3 (de) * 2019-11-27 2021-02-18 Infineon Technologies Ag Integrierte schaltung
EP4120083A1 (en) 2021-07-13 2023-01-18 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242515A (ja) 1999-02-19 2000-09-08 Nec Eng Ltd Ecc機能検証回路及びecc機能検証方法
JP2003529998A (ja) 2000-03-31 2003-10-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ エラー訂正集積回路および方法
US20040225943A1 (en) 2003-05-09 2004-11-11 Brueggen Christopher M. Systems and methods for providing error correction code testing functionality
US20060282747A1 (en) 2005-05-19 2006-12-14 Klaus Hummler ECC flag for testing on-chip error correction circuit
US8281219B2 (en) 2007-08-16 2012-10-02 Invensas Corporation Error correction code (ECC) circuit test mode

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5362936A (en) * 1976-11-17 1978-06-05 Toshiba Corp Memory control device
JPS59200349A (ja) * 1983-04-27 1984-11-13 Nec Corp 誤り訂正回路用診断回路
JPS62226353A (ja) * 1986-03-28 1987-10-05 Mitsubishi Electric Corp Ras回路付記憶装置
US4794597A (en) * 1986-03-28 1988-12-27 Mitsubishi Denki Kabushiki Kaisha Memory device equipped with a RAS circuit
JPH01140356A (ja) * 1987-11-27 1989-06-01 Fujitsu Ltd Ecc回路チェック方式
JPH02166700A (ja) 1988-12-15 1990-06-27 Samsung Electron Co Ltd エラー検査及び訂正装置を内蔵した不揮発性半導体メモリ装置
JPH0346047A (ja) * 1989-07-14 1991-02-27 Nec Corp 検査回路
JP2806856B2 (ja) * 1996-01-29 1998-09-30 甲府日本電気株式会社 誤り検出訂正回路の診断装置
JPH10228388A (ja) * 1997-02-13 1998-08-25 Nec Eng Ltd データ誤り検出回路
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes
US7020811B2 (en) * 2001-04-24 2006-03-28 Sun Microsystems, Inc. System and method for verifying error detection/correction logic
JP2003007085A (ja) * 2001-06-19 2003-01-10 Nec Microsystems Ltd エラー訂正機能付きメモリ
WO2007096997A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited メモリ制御装置およびメモリ制御方法
DE102008026568A1 (de) 2008-06-03 2010-04-08 Qimonda Ag Halbleiterbauelement, Speichermodul und Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf ein Speicherbauelement
US9419651B2 (en) * 2008-12-31 2016-08-16 Stmicroelectronics, Inc. Non-polynomial processing unit for soft-decision error correction coding
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9535119B2 (en) * 2014-06-30 2017-01-03 Intel Corporation Duty cycle based timing margining for I/O AC timing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242515A (ja) 1999-02-19 2000-09-08 Nec Eng Ltd Ecc機能検証回路及びecc機能検証方法
JP2003529998A (ja) 2000-03-31 2003-10-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ エラー訂正集積回路および方法
US20040225943A1 (en) 2003-05-09 2004-11-11 Brueggen Christopher M. Systems and methods for providing error correction code testing functionality
US20060282747A1 (en) 2005-05-19 2006-12-14 Klaus Hummler ECC flag for testing on-chip error correction circuit
US8281219B2 (en) 2007-08-16 2012-10-02 Invensas Corporation Error correction code (ECC) circuit test mode

Also Published As

Publication number Publication date
DE102015210651B4 (de) 2022-10-27
DE102015210651A1 (de) 2016-12-15
US20160364280A1 (en) 2016-12-15
JP2017004588A (ja) 2017-01-05
KR20160145503A (ko) 2016-12-20
JP6290303B2 (ja) 2018-03-07

Similar Documents

Publication Publication Date Title
KR101852919B1 (ko) 에러 정정 능력을 테스트하기 위한 회로 및 방법
US7971112B2 (en) Memory diagnosis method
US20080016415A1 (en) Evaluation system and method
KR20130031888A (ko) 데이터 메모리의 모니터링 방법
US8332727B2 (en) Error correction circuit, flash memory system including the error correction circuit, and operating method of the error correction circuit
JP2005242797A (ja) エラー訂正回路
US20080270842A1 (en) Computer operating system handling of severe hardware errors
US11822934B2 (en) Processing system, related integrated circuit, device and method
CN111176884A (zh) 用于fpga配置存储器的sec校验方法和装置
CN111221675B (zh) 用于ram错误检测逻辑的自诊断的方法和装置
JP6341795B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
US20130219246A1 (en) Method and Apparatus for Detecting Free Page and a Method and Apparatus for Decoding Error Correction Code Using the Method and Apparatus for Detecting Free Page
CN113742123A (zh) 内存故障信息记录方法及设备
US7484147B2 (en) Semiconductor integrated circuit
US10613918B2 (en) Data register monitoring
JP2018022277A (ja) プログラマブルロジックデバイス、情報処理装置、ソフトエラー記録方法、及びソフトエラー記録プログラム
US20060090105A1 (en) Built-in self test for read-only memory including a diagnostic mode
US8032720B2 (en) Memory access monitoring apparatus and related method
JP7379932B2 (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
US7321996B1 (en) Digital data error insertion methods and apparatus
TWI437572B (zh) 運用錯誤控制碼於記憶元件的存取方法與系統
US7389445B2 (en) Circuit for detecting abnormal operation of memory and integrated circuit and method for detecting abnormal operation
JPS59148954A (ja) 制御記憶パトロ−ル方式
JPH02146200A (ja) 電気的に消去可能なプログラマブルロム装置
CN117234789A (zh) 校验纠错方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant