[go: up one dir, main page]

KR20090087077A - Ecc-유닛 및 부가 프로세싱 장치를 갖는 메모리 시스템 - Google Patents

Ecc-유닛 및 부가 프로세싱 장치를 갖는 메모리 시스템 Download PDF

Info

Publication number
KR20090087077A
KR20090087077A KR1020097012802A KR20097012802A KR20090087077A KR 20090087077 A KR20090087077 A KR 20090087077A KR 1020097012802 A KR1020097012802 A KR 1020097012802A KR 20097012802 A KR20097012802 A KR 20097012802A KR 20090087077 A KR20090087077 A KR 20090087077A
Authority
KR
South Korea
Prior art keywords
error
memory
information
errors
operable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
KR1020097012802A
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 프리스케일 세미컨덕터, 인크.
Publication of KR20090087077A publication Critical patent/KR20090087077A/ko
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G06F11/1016Error in accessing a memory location, i.e. addressing 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/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
    • G06F11/1024Identification of the type of error
    • 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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • 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
    • G11C2029/1208Error catch memory
    • 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
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터를 저장하기 위한 제 1 메모리(101) 및 상기 메모리를 액세스하고 상기 제 1 메모리로부터 검색된 데이터에서 에러들을 검출하기 위한 ECC(Error Correction Code) 유닛(105)을 포함하고, 에러 부가 프로세싱 장치(108)는 상기 ECC 유닛에 의해 검출된 에러들을 프로세싱하도록 동작가능하고, 상기 에러 부가 프로세싱 장치는 상기 검출된 에러들에 관한 정보를 기록하기 위한 제 2 메모리(109)를 포함하는 것을 특징으로 하는 메모리 시스템(100)이 개시된다. 또한, 메모리 시스템(100)에서의 동작 방법이 개시된다.
Figure P1020097012802
에러 부가 프로세싱 장치, 메모리 시스템, 에러 프로세싱 로직, 룩업 테이블, 테이블 룩업 유닛

Description

ECC-유닛 및 부가 프로세싱 장치를 갖는 메모리 시스템{Memory system with ECC-unit and further processing arrangement}
본 발명은 메모리 시스템 및 메모리 시스템의 동작 방법에 관한 것이다. 특히, 본 발명은 ECC(Error Correction Code) 유닛을 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템의 연관된 메모리 내에 저장된 데이터 워드들에서 에러들을 검출하기 위해, ECC 유닛으로서 알려진 기능적 유닛이 채용된 메모리 시스템들이 공지되어 있다. ECC 유닛은 저장된 데이터를 판독하고 이러한 데이터로부터 체크섬(checksum)을 계산하고, 계산된 체크섬을 저장된 패리티 정보(parity information)와 비교함으로써 동작한다. ECC 유닛은 또한 검출된 에러들을 정정할 수 있다. ECC 유닛의 검출 및 보정 성능은, 일반적으로 ECC 유닛에 의해 프로세싱되는 실제 워드 크기에 관련하여 이용되는 '검출 N-비트 및 보정 M-비트'의 형태의 표현에 의해 기재된다. N 및 M은 ECC 유닛에 의해 각각 검출 및 보정되는 워드 내의 에러들의 수를 나타내는 정수들이다. 가장 일반적인 N 및 M의 값들은, 32 또는 64 비트들의 크기를 갖는 데이터 워드들에 대해 2 (검출된 에러들에 대해) 및 1 (보정된 에러들에 대해)이다. N이 2이고 M이 1인 그러한 지정에 의해 식별되는 ECC 유닛은, 최대 2 개의 부정확한 비트들을 갖는 임의의 데이터 워드를 검출하도록 보장되고 그러한 워드들에서 임의의 단일 비트 에러를 보정하는 기능을 갖는다는 것이다. 2 개 이상의 부정확한 비트들을 갖는 에러들의 인스턴스들이 또한 그러한 유닛에 의해 검출될 수 있다. 그러나, 다양한 변화된 비트들이 우연히 체크섬 정보와 매칭할 수 있기 때문에, 그러한 검출의 어떠한 보증도 없다. M 이상의 부정확한 비트들의 자동 보정은 메모리 시스템의 보전(integrity)을 위태롭게 하지 않는다면 일반적으로 불가능하다.
부정확한 데이터 워드들이 ECC 유닛에 의해 보정될 때, 수반된 에러들은 에러들을 포함하는 데이터를 후속으로 이용하는 임의의 애플리케이션에서 볼 수 없다.
본 발명의 제 1 양태에 따라, 첨부한 특허청구범위의 제 1 항에 규정된 메모리 시스템이 제공된다.
본 발명의 제 2 양태에 따라, 첨부한 특허청구범위의 제 23 항에 규정된 동작 방법이 제공된다.
본 발명의 또 다른 특징들은 첨부한 종속항들에서 규정되고, 이하에 기재된 본 발명의 실시예들에서 개시된다.
본 발명의 실시예들은 첨부한 도면을 참조하여 예시의 방법으로 기재될 것이다.
도 1은 본 발명을 구현한 메모리 시스템의 간략한 블록도.
후술될 본 발명의 실시예들과 연관하여, 메모리 시스템에서 ECC 유닛에 의해 검출 및 보정된 에러들에 관한 정보 및 통계 데이터를 기록하는 것이 이롭다는 것은 인지되어 왔다. 그러한 기능은, 예를 들어 상당히 오래되거나 덜 신뢰되는 메모리 장치를 식별하는 데 이용될 수 있다. 그러한 메모리 장치가 식별되는 경우에, 메모리 장치에 의지하는 데이터 애플리케이션은, 메모리 장치가 영구적인 고장을 보여주기 시작하기 전에 대체를 제안하는 표시를 제공하기 위한 결정권을 가질 수 있다. 또한, 이미 알려진 에러들로부터 새롭게 검출된 에러들을 구별하는 것이 이롭다는 것은 인지되어 왔다. 알려진 에러들의 예들은 장치의 제조 시에 발생하는 결점들에 의해 야기되는 에러들, 본원에서 '제작 에러들(fabrication errors)' 및 상기 메모리를 포함하는 시스템의 초기 실행 동안에 검출된 에러들을 포함한다.
도 1은 본 발명을 구현한 예시적인 메모리 시스템(100)의 간략한 블록도이다. 메모리 시스템(100)은 데이터 프로세서, 예를 들어, 반도체 집적 회로 칩의 형태로 임베딩된 시스템에 통합될 수 있다. 메모리 시스템(100)은, 데이터가 저장될 수 있고 데이터가 사용 시에 액세스 및 검색될 수 있는 메인 메모리(101), 및 대응하는 패리티 데이터를 보관하는 패리티 메모리(103)를 포함한다. 메인 메모리(101) 및 패리티 메모리(103) 각각은 반도체 집적 회로 칩, 예를 들어, 플래시 또는 NVRAM(Non-Volatile Random Access Memory), 또는 DRAM(Dynamic Random Access Memory)에 통합될 수 있는 임의의 종류의 메모리일 수 있다. 메인 메모리(101) 및 패리티 메모리(103)는 개별적인 기능 유닛들일 수 있으며, 단일 메모리 장치의 개별 기능들에 의해 제공될 수 있다. 메모리 시스템(100)은 메인 메모리(101) 및 패리티 메모리(103) 모두에 결합된 ECC 유닛(105)을 또한 포함한다. 시스템(100) 내의 버스(107)(예를 들어, 시스템 버스일 수 있음)는 ECC 유닛(105)을 통해 관련 데이터를 전송하도록 채용된다.
메인 메모리(101)에 저장될 데이터는 버스(107)에 의해 전달되고, ECC 유닛(105)에 의해 메인 메모리(101)에 전송된다. ECC 유닛(105)은 또한 데이터의 대응하는 패리티 정보를 계산하고, 이를 패리티 메모리(103)에 저장한다.
예를 들어, 데이터 프로세싱 애플리케이션(도시되지 않음)에서 이용하기 위해 판독될 데이터는 ECC 유닛(105)으로부터 버스(107)에 의해 요청된다. 그후, ECC 유닛(105)은 메인 메모리(101)를 액세스하고 메인 메모리(101)로부터 요청된 데이터를 검색한다. 후속으로 ECC 유닛(105)은 이러한 데이터로부터 체크섬을 계산하고, 패리티 메모리(103)로부터 동시에 검색된 대응하는 패리티 정보와 체크섬을 비교한다. 계산된 체크섬이 검색된 패리티 정보와 매칭할 경우, 판독된 데이터는 정확한 것으로 가정되고, 버스(107)로 전송된다. 그렇지 않다면, 후속 프로세싱은 주어진 워드에서 부정확한 비트들의 수에 의존한다. M 비트들의 미스매치들에 의해 도시된 에러들(일반적으로 단지 단일 비트 에러들)은 ECC 유닛(105)에 의해 정정되고, 이후 버스(107)로 전송될 것이다. M 비트들 이상을 포함하는 미스매치들에 의해 도시된 에러들은 종래 기술에서 복구 불가능하다고 가정되고, 에러 상태의 표시를 전송하게 될 것이다. 보정된 데이터가 메모리 시스템(100)을 채용하는 시스템의 다른 부분들(도시되지 않음)에 의해 정확한 데이터로부터 구별될 수 없기 때문에, 메모리 시스템(100)은 도 1에서 라인(117)에 의해 표시된 바와 같이, 시스템에서 버스(107) 또는 다른 목적지로 전달되는 부가적 신호를 선택적으로 채용할 수 있으며, 부가적 신호는 데이터가 보정되었다는 것을 나타내는 정보를 제공한다. 일반적으로 이러한 정보는, 전달된 데이터를 채용하는 실행 애플리케이션에서 소프트웨어에 의해 부가 프로세싱된다. 부가 프로세싱은 임베딩된 시스템에서 시간을 소비하는 태스크일 수 있다.
상술된 시스템(100)의 구성요소들의 구조 및 동작은 공지되어 있다. 본 발명을 구현한 메모리 시스템(100)은, ECC 유닛(105)과 병렬로 동작하는 에러 부가 프로세싱 장치(108)를 부가적으로 제공하도록 새롭게 확장되고, 에러 부가 프로세싱 장치는 몇몇 부가적 기능 유닛들을 포함할 수 있다. ECC 유닛(105)은 에러 부가 프로세싱 장치(108)와 협력하도록 변경될 수 있다. 이러한 부가들 및 변경들이 구조화될 수 있고, 후술된 방식으로 동작할 수 있다.
에러 부가 프로세싱 장치(108)는, 이미 알려진 에러들을 기록 및 식별하기 위해 메모리 시스템(100)에 부가된 유닛들을 포함한다. 이러한 부가된 유닛들은 에러 테이블(109) 및 테이블 룩업 유닛(111)을 포함한다. 테이블 룩업 유닛(111)은 에러 테이블(109) 및 ECC 유닛(105)에 결합된다. 에러 부가 프로세싱 장치(108)는 또한, 에러 부가 프로세싱 장치(108)에 의해 제어 및 구성 정보를 수신하고 버스(107)를 통해 에러 부가 프로세싱 장치(108)로부터의 정보의 검색을 허용하도록 레지스터들을 제공하는 레지스터 인터페이스(115)를 포함한다. 에러 부가 프로세싱 장치(108)는 또한, 레지스터 인터페이스(115)에 결합된 에러 프로세싱 로직(113), 테이블 룩업 유닛(111), ECC 유닛(105) 및 버스(107)를 포함한다. 에러 프로세싱 로직(113)은, 에러 프로세싱 로직이 접속된 다양한 소스들로부터 에러 상태들의 표시들을 나타내는 정보를 수신하고, 레지스터 인터페이스(115)에 의해 제공된 구성 정보에 따라 에러 표시 정보를 프로세싱하는 것을 담당한다.
에러 테이블(109)은 메인 메모리(101)에 관련하여 알려지고 검출된 에러들에 관한 정보를 기록 및 저장하는 메모리를 포함한다. 기록된 정보는, 워드에서 에러가 검출되면 워드가 보정될 수 있도록 허용하기 위해 정보와 함께 실패 워드의 메인 메모리(101) 내의 어드레스를 포함하는 것이 바람직하다. 이러한 정보는 이러한 어드레스에 대한 정확한 데이터 워드를 포함할 수 있다. 이것은 바람직한 실시예에서의 이용을 위해 선택된 단지 하나의 가능한 구현이며; 에러 테이블(109)에서 다른 콘텐츠 및/또는 데이터 구성들이 또한 가능하다.
알려진 에러들은, 메인 메모리 및 패리티 메모리 모두가 메모리 시스템(100)의 동작에 투입되기 전에 메인 메모리(101) 및 패리티 메모리(103)에 적용된 테스팅 절차의 동작에 의해 검출될 수 있는 제작 에러들을 포함할 수 있다. 에러 테이블(109)의 콘텐트는 그러한 알려진 제작 에러들에 관한 정보를 저장할 수 있으며, 메인 메모리(101)의 동작 이용 동안에 식별되어 왔던 다른 에러들에 관한 정보와 확장될 수 있다. 동작 이용 동안에 에러 테이블(109)의 콘텐츠를 확장하는 것은, (i) 레지스터 인터페이스(115)를 통해 관련 제어 정보를 제공함으로써 애플리케이션 제어 하에서; 또는 (ii) 실패 동작에 의해 검출된 에러에 대해, 에러 테이 블(109)에서 에러 관련 정보의 기록 및 저장을 제어하는 데 이용되는 신호를 ECC 유닛(105)이 장치(108)에 자동적으로 제공함으로써 수행될 수 있다. 또한, 에러 테이블(109)에서 특정 에러에 대해 저장된 각각의 정보 세트와 부가적 태그들을 가짐으로써 에러들의 상이한 부류들을 구별하는 것이 가능하다. 이후, 이러한 태그들은 에러 프로세싱 로직(113)에 의해 에러 엔트리에 관한 정보에 적용될 상이한 프로세싱 절차들을 식별하는 데 이용될 수 있다. 이로써, 에러 테이블(109)은, 알려진 에러들의 상이한 부류들을 구별하고 가장 적절한 방식으로 에러들을 취급하는 맞춤식 방법을 제공하는 고도의 편의 수단을 제공한다.
따라서, 에러 테이블(109)은 시스템(100) 내에 부가적 메모리 기능을 포함한다. 부가적 메모리 기능은 다음과 같은 상이한 방법들로 제공될 수 있다. 부가적 메모리 기능은 이미 기존의 메모리의 새롭게 지정된 부분에 의해 제공될 수 있다. 이러한 목적을 위해 이용될 수 있는 기존의 메모리들은 예를 들어, 시스템(100) 내에 임의의 메모리, 예를 들면, 메인 메모리(101) 또는 패리티 메모리(103) 또는 프로세싱 장치의 임의의 다른 메모리, 예를 들면, 마이크로칩 또는 시스템(100)의 부분인 시스템을 포함한다. 또한, 부가적 메모리 기능은 새롭게 부가된 메모리 또는 새롭게 부가된 메모리들, 예를 들면, 시스템(100)의 공지된 구성요소들 내에서 이미 이용되지 않은 전용 메모리 장치 또는 시스템(100)의 일부인 임의의 장치 또는 시스템에 의해 제공될 수 있다. 에러 테이블(109)을 구현하기 위해 새롭게 부가된 전용 메모리를 이용하는 것은, 에러 테이블(109)을 액세스하는 프로세스가 상기 메모리를 액세스하는데 필요한 다른 프로세스들과 경쟁할 필요가 없다는 이점을 갖는 다. 기존 메모리의 전용 부분을 이용하는 것은, 이미 이용 가능한 리소스들을 최대로 이용할 수 있고 에러 테이블(109)의 구현 비용을 감소시킬 수 있다. 기존의 메모리 또는 새롭게 부가된 전용 메모리가 제공되든지 간에, 부가적 메모리 기능은 메모리가 다수의 기능들 중 단지 하나의 기능인 장치 구성의 부분일 수 있다는 것은 가능하다. 또한, 부가적 메모리 기능에 대해, 가능한 메모리 유형들, 즉, 기존 메모리 및 새롭게 부가된 전용 메모리의 임의의 조합을 이용하는 것이 가능하다. 예를 들어, 전용의 새롭게 부가된 메모리는 어드레스들의 저장을 위해 채용될 수 있고, 기존 메모리의 부분, 예를 들면, 메인 메모리(101)는 에러 테이블(109)의 에러 엔트리들의 다른 정보를 보관하도록 채용될 수 있다.
주어진 어드레스와 매칭하는 기록된 어드레스의 에러 테이블(109)에서 엔트리를 식별하는데 걸리는 시간은, 본 발명을 구현하는 에러 부가 프로세싱 장치(108)의 가장 중요한 파라미터들 중 하나일 수 있다. 따라서, 어드레스들의 저장을 위한 전용 기능 메모리 유닛을 이용하는 것이 바람직하며, 그러한 유닛은 신속한 어드레스 룩업을 용이하게 하기 위한 고속 액세스를 위해 적절히 적응될 수 있기 때문이다. 에러 테이블(109)의 실제 구현은, 에러 테이블(109)에서 엔트리를 식별하는 시간을 최소화하기 위해 특히, 어드레스들의 저장에 대해 기능 유닛들의 계층 또는 하드웨어 블록들을 포함할 수 있다.
에러 테이블(109)은 테이블 룩업 유닛(111)에 의해 액세스되고, 테이블 룩업 유닛(111)은 ECC 유닛(105)에 의한 메인 메모리(101)의 액세스들과 개별적으로 동작할 수 있다. 정상적으로, ECC 유닛(105)이 메인 메모리(101)로부터 데이터 워드 를 검색하고 공지된 절차에 따라 데이터 워드에 대한 계산된 체크섬과 저장된 패리티 정보를 비교하는 경우에, ECC 유닛(105)이 에러 상태를 검출할 때, 테이블 룩업 유닛(111)이 활성화될 수 있다. ECC 유닛(105)은, 그러한 에러 상태를 표시하고 실패 워드가 검색되는 메인 메모리(101) 내의 어드레스를 포함하여 에러에 관한 정보를 주기 위해 에러 표시 신호를 유닛(111)에 전달할 수 있다. 에러 표시 신호에 의해 활성화될 때, 테이블 룩업 유닛(111)은 실패 워드의 어드레스에 관련된 에러 테이블(109) 내의 엔트리가 존재하는지 여부를 체크한다. 이것은 테이블 룩업 유닛(111)의 '재활성(reactive)' 이용이다. 또한, 테이블 룩업 유닛(111)의 '프로액티브(proactive)' 이용이 있을 수 있으며, 여기서 테이블 룩업 유닛(111)은 요청된 데이터 워드에서 매칭 에러 엔트리들을 식별하기 위해 ECC 유닛(105)에 의한 메인 메모리(101)에 대한 액세스들로 동시에 실행한다. '프로액티브' 버전의 구현은 상당히 더 높은 하드웨어 비용의 불이익을 가지며; 따라서, '재활성' 버전이 바람직하다.
모든 구현들에서, 테이블 룩업 유닛(111)은, ECC 유닛(105)에 의한 메인 메모리(101)의 액세스들에 관련된 에러들이 이전에 에러 테이블(109)에 기록되었는지의 여부를 식별하는 것을 담당한다. 테이블 룩업 유닛(111)은 또한, 레지스터 인터페이스(115)에 의해 제공된 데이터를 갖는 애플리케이션 제어 하에서 또는 ECC 유닛(105)에 의한 요청 시에 또는 ECC 유닛(105)에 의해 트리거되는 경우에, 에러 테이블(109)에서 새로운 엔트리들을 구성하고 그러한 새로운 엔트리들에 관련된 모든 정보를 저장한다. 이러한 정황에 있어서, 새로운 엔트리들은 에러 테이블(109)에 이전에 기록되지 않은 에러들에 관련된 엔트리들이다.
테이블 룩업 유닛(111)은 바람직한 실시예에서, 에러 테이블(109) 내의 엔트리들의 정렬된 리스트에서 매칭 어드레스를 갖는 에러 엔트리를 식별하기 위해 (하드웨어 보조) 이진 검색 알고리즘(binary search algorithm)을 이용할 수 있다. 이진 검색 알고리즘은 정렬된 리스트들을 이용하여 다음과 같이 정상적으로 동작하는 공지된 알고리즘이다. 각각의 리스트에서 검색은 리스트의 중간에서 시작한다. 리스트의 선택된 데이터는 검색된 데이터와 비교된다. 선택된 데이터가 검색된 데이터의 검색 기준보다 더 큰 검색 기준을 갖는 경우에, 리스트의 더 낮은 부분이 검색된다. 선택된 데이터가 검색된 데이터보다 더 작은 검색 기준을 갖는 경우에, 리스트의 상위 부분이 검색된다. 검색은 매치가 발견될 때까지 각각의 리스트에 대해 계속된다. 매칭 어드레스를 갖는 에러 엔트리를 식별하기 위해 이진 검색을 이용하는 것은 몇몇 이점들을 갖는다. 2 개의 가장 중요한 이점들은: (i) 에러 테이블(109)에 대한 액세스들의 최소한의 수로 매우 빠른 수렴; 및 (ii) 엔트리들을 찾기 위한 에러 테이블(109)에 대한 액세스들의 보장된 최대수이다. 두가지 특성들은 메모리 시스템(100)의 고성능 및 결정론적 거동을 위해 바람직하다. 또한 또는 부가하여, 콘텐트 어드레싱 가능한 메모리(Content Addressable Memory; CAM)와 같은 다른 하드웨어 기반 구현들은 테이블 룩업 유닛(111)의 기능성을 제공할 수 있고, 본 발명을 구현한 시스템(100)에서 채용될 수 있다. 그러나, 그러한 다른 구현들은 이진 검색 알고리즘의 바람직한 이용보다 매우 높은 하드웨어 비용을 초래할 수 있다.
이진 검색 알고리즘 이용 시에, 에러 테이블(109) 내의 엔트리들의 수가 비용 및 성능 이유들로 인해 실제적으로 제한된다는 것은 인지된다. 그러나, 성능에 대한 제한은 ECC 유닛(105)에 의해 검출된 에러들의 경우에 임의의 이벤트에서 최소 응답 시간을 주장하는데 요구된다. 또한, 이러한 제한들은 임의의 경우에 또 다른 더 많은 하드웨어 기반 접근법들에 적용될 수 있다.
성능 이유들에 대해, 테이블 룩업 유닛(111)의 구현에서 이진 검색 알고리즘의 하드웨어 보조 버전을 이용하는 것이 바람직하다. 어드레스 룩업 절차에서 이용하기 위한 검색 포인트들 중 일부는, 어드레스 룩업 절차의 속도를 높이기 위해 하드웨어에 의해 평가된 내부 비교 레지스터들에 편리하게 미리 기록될 수 있다. 실제 구현들의 예들은 3 개의 비교 레지스터들을 갖는 16-엔트리 또는 8-엔트리 와이드 에러 테이블, 또는 7 개의 비교 레지스터들을 갖는 32 엔트리들을 갖는 테이블이다. 다른 조합들이 또한 가능하지만, 물론 그들의 적합성은 이용 가능한 하드웨어의 기능에 의존한다.
일반적으로, 에러 테이블(109) 내의 허용된 엔트리들의 최대수는 조정 가능하고 시스템(100)의 다른 동작 파라미터들, 예를 들면, 메인 메모리(101)의 크기, 시스템에서 임계적 에러를 식별하는 데 허용된 최대 지연 및 나머지들에 의존한다. 그러나, 에러 테이블(109) 내의 허용된 엔트리들의 최대수는 조심하여 선택되어, 에러 부가 프로세싱 장치(108)에 의해 야기되는 프로세싱 오버헤드 및 에러 테이블(109)에 대한 새로운 엔트리들에 관한 부가 정보에 대해 수용 가능한 제한들이 규정된다.
에러 프로세싱 로직(113)은 ECC 유닛(105)에서 테이블 룩업 유닛(111)으로의 요청들의 우선 순위를 매기고 부가 소비를 위해 테이블 룩업 유닛(111)에 의해 수집된 정보의 사후 프로세싱을 제공하는 것을 담당한다. 에러 프로세싱 로직(113)은 레지스터 인터페이스(115)에 의해 제공된 레지스터들에 사후 프로세싱으로부터 계산된 정보를 기록 및 저장한다. 에러 프로세싱 로직(113)은 레지스터 인터페이스(115)에 의해 제공된 구성 정보에 기초하여 구성 가능할 수 있다. 또한, 이것은, 에러 테이블(109) 내의 후속 저장을 위해 애플리케이션 제어 하에서 생성된 에러 엔트리들을 레지스터 인터페이스(115)로부터 테이블 룩업 유닛(111)으로 전송하는 것을 담당한다.
레지스터 인터페이스(115)는 제어 및 데이터 레지스터들의 세트 및 버스(107) 또는 또 다른 버스(도시되지 않음)에 접속될 수 있는 대응 제어 로직을, 예를 들어 레지스터 인터페이스(115)가 통합되는 장치 내에 포함한다. 레지스터 인터페이스(115)는, ECC 프로세서(105)에 의해 메인 메모리(101)로부터 검색된 데이터를 이용하여 애플리케이션의 소프트웨어에 대해 가시적일 수 있다. 레지스터 인터페이스(115)는:
(i) 에러 부가 프로세싱 장치(108)에 의해 에러들의 프로세싱에 영향을 주기 위해 제어 정보를 저장하고;
(ii) 에러 부가 프로세싱 장치(108)에 현재 동작 상태를 식별하기 위해 상태 레지스터들을 제공하고;
(iii) 에러 부가 프로세싱 장치(108)에 의해 수집된 데이터를 기록하고;
(iv) 에러 부가 프로세싱 장치(108) 내의 에러 테이블(109) 내에서 공지된 에러 엔트리들을 변경 또는 생성하기 위해 데이터 및 제어 레지스터들을 제공하는 몇몇 기능들을 제공하는 레지스터들을 포함할 수 있으며, 이에 제한되지 않는다.
이러한 레지스터들을 돕기 위해, 레지스터 인터페이스(115)는: 에러 테이블(109)에 대한 엔트리들의 부가를 허용하고; 그러한 엔트리들을 판독 또는 변경하고; 또는 에러 프로세싱 로직(113)을 제어함으로써 그러한 엔트리들의 프로세싱을 수정할 수 있다. 레지스터 인터페이스(115)는 검출된 에러들에 관한 보유된 통계 정보에 대한 메모리 시스템(100) 외부의 애플리케이션에 의한 액세스를 위해 포털(portal)을 제공하고, 그러한 정보의 기록 및 검색을 구성하는데 요구되는 제어 정보를 제공한다.
메인 메모리(101)로부터 검색된 데이터에서 ECC 유닛(105)에 의해 어떠한 에러도 검출되지 않으면, 시스템(100)에서 임의의 에러 정보의 어떠한 부가 프로세싱도 요구되지 않는다. 그러나, 레지스터 인터페이스(115)는 통계 목적들을 위해 메인 메모리(101)에서 ECC 유닛(105)에 의해 이루어진 성공적인 액세스들의 수를 계산하기 위한 카운터를 포함할 수 있다. 그러한 카운터는 이루어진 성공적인 액세스 각각을 나타내기 위해 ECC 유닛(105)으로부터 신호를 수신할 수 있다.
상술된 바와 같이, 에러 부가 프로세싱 장치(108)는, ECC 유닛(105)이 메인 메모리(101)로부터 데이터 워드 내의 에러들을 검출할 때 동작하게 된다. 이러한 에러의 부가 프로세싱은 다음과 같이 알려진 에러의 유형에 의존한다.
검출된 에러가 완전히 보정될 수 있는 에러, 즉, 단일 비트 에러, 또는 일반 적인 용어로 임의의 M-비트 에러(M은 이전에 규정됨)인 경우, ECC 유닛(105)은 즉시 부정확한 비트(들)을 보정하고, 보정된 데이터를 버스(107)에 제공할 것이다. 식별된 에러에 관한 정보는 또한 ECC 유닛(105)에 의해 테이블 룩업 유닛(111) 및 에러 프로세싱 로직(113)으로 전송될 것이다. 이러한 정보를 제공한 후에, ECC 유닛(105)은 에러를 포함하는 워드를 완전히 프로세싱하고, 버스(107)로부터의 다음 요청을 서비스하도록 이용 가능하다. ECC 유닛(105)으로부터 에러 정보를 수신할 때, 테이블 룩업 유닛(111)은 우선 이러한 정보를 기록하고, 에러 프로세싱 로직(113)이 이러한 정보를 테이블 룩업 유닛이 부가 프로세싱하게 하는 것을 대기한다. 에러 프로세싱 로직(113)은, 초기 또는 더 높은 우선 순위의 태스크들을 프로세싱하기 위한 최적의 지연을 주장하기 위해 테이블 룩업 유닛(111)에 의한 M-비트 에러의 프로세싱을 중단 또는 지연시킬 수 있다. 에러 프로세싱 로직(113)에 의해 인에이블될 때, 테이블 룩업 유닛(111)은 관련된 에러 정보와 에러 테이블(109)에 저장된 정보를 비교한다. 매칭 엔트리가 존재할 경우, 이것은 공지된 에러를 나타내고, 공지된 에러는 다음과 같이 프로세싱된다. 관련 에러 정보는 테이블 룩업 유닛(111)에 의해 에러 프로세싱 로직(113)에 전송되고, 에러 프로세싱 로직은 요구된 임의의 연관 활동들을 수행한다. 이러한 활동들은 통계 목적들을 위한 평가, 애플리케이션 이용을 위한 에러 정보의 기록, 및/또는 새로운 에러 엔트리로서 정보를 에러 테이블(109)에 저장하는 것을 포함할 수 있다. 에러 프로세싱 로직(113)에 의해 요구된 활동들은 레지스터 인터페이스(115)에 저장된 제어 정보에 의해 규정된 활동들일 수 있다. 후속으로, 에러 프로세싱 로직(113)은 또한 레지스터 인터페 이스(115)에 저장된 관련 정보를 업데이트할 수 있다. 지정되고, 사용자가 규정 가능한 제한(그러한 에러들의 수에 관하여 레지스터 인터페이스(115) 내에서 규정될 수 있음)에 도달할 때, 에러 프로세싱 로직(113)은 또한 관련 데이터를 이용하여 경보 신호를 애플리케이션에 전송할 수 있다. 그러한 경보 신호는 애플리케이션에 자동적인 인터럽션을 제공할 수 있고, 애플리케이션에 의한 부가 활동을 요청할 수 있다. 경보 신호의 제공은 도 1의 라인(119)에 의해 표시된다.
ECC 프로세서(105)에 의해 새롭게 검출된 에러가 ECC 유닛(105)에 의해 자동적으로 완전히 정정될 수 없는 경우에, 예를 들면, 여기서, 에러는 2-비트 또는 멀티플-비트 에러이고, 또는 일반적인 용어로 M-비트보다 큰 임의의 비트이고, ECC 유닛(105)은 새롭게 검출된 에러에 관한 모든 정보를 테이블 룩업 유닛(111) 및 에러 프로세싱 로직(113)에 즉시 전송한다. 에러 프로세싱 로직(113)은, 새롭게 발견된 에러를 즉시 프로세싱하기 위해 테이블 룩업 유닛(111)에게 현재 실행중인 임의의 프로세싱 동작을 중지하도록 요청할 수 있다. 테이블 룩업 유닛(111)은 매칭 엔트리를 식별하기 위해 수신된 에러 정보와 에러 테이블(109)의 콘텐트를 비교한다. 어떠한 매칭 엔트리도 존재하지 않는 경우에, 이것은 에러가 복구 불가능한 에러라는 것을 나타내고, ECC 유닛(105)에 의한 부가 프로세싱은 상술된 종래 기술에서 알려진 방식일 수 있다. 또한, 에러 프로세싱 로직(113)은 예를 들어, 애플리케이션 소프트웨어에 의한 이용을 위해 예를 들어 관련 에러 정보를 기록하도록 활성화될 수 있다. 에러 테이블(109)에 저장된 매칭 엔트리가 존재하는 경우에, 테이블 룩업 유닛(111)은 에러가 보정될 수 있도록 허용하여 에러 테이블(109)로부터 정보 를 검색하고, 정보를 ECC 유닛(105)에 전달한다. 바람직하게는, 에러 테이블(109) 내의 각각의 엔트리는 완전하고 정확한 워드 및 관련 패리티 데이터를 포함하고, 이는 부정확한 비트의 수와 상관없이 실패 워드에서 발견된 임의의 검출 가능한 에러의 보정을 허용한다. 이후, ECC 유닛(105)은, 예를 들어 실패 데이터 워드를 정확한 워드로 대체함으로써 실패 워드를 보정하기 위해 에러 테이블(109)로부터 정보를 이용할 수 있다. ECC 유닛(105)은, 보정된 데이터의 무결성(integrity)을 확인하기 위해 보정된 워드에 대한 체크섬 정보를 계산하고 이를 관련된 패리티 정보와 비교함으로써 에러 테이블(109)로부터 검색된 데이터 워드의 부가 ECC 체크를 유용하게 수행할 수 있다. 시스템(100)이 구현되는 방법에 따라, 패리티 정보는 패리티 메모리(102) 또는 대안으로 에러 테이블(109)에 저장될 수 있다.
또한, 에러 테이블(109) 내의 에러 엔트리는, ECC 유닛(105) 및 에러 프로세싱 로직(113)에 의한 검출된 에러 및 에러 유형의 가장 적절한 프로세싱을 부가 조정하는 데 이용될 수 있는 하나 이상의 관련 속성들을 포함할 수 있다.
ECC 유닛(105)에 의해 검출된 에러에 관한 정보의 프로세싱의 완료 시에, 테이블 룩업 유닛(111)은 부가 에러가 검출될 때 재시작에 대한 준비가 설정될 수 있고, 또는 초기 프로세싱 동작이 중지되는 경우에, 초기 프로세싱 동작을 계속할 수 있다. 테이블 룩업 유닛(111)에 의한 임의의 프로세싱은 에러 프로세싱 로직(113)의 제어 하에서 이루어지고, 메모리 시스템(100)의 임의의 부가 활동들과 동시에 실행한다.
본 발명을 구현하는 시스템(100) 내의 에러 부가 프로세싱 장치(108)는 기존 의 ECC 유닛에 대한 확장의 형태로 또는 하나 이상의 부가적 데이터 프로세싱 모듈로서 제공될 수 있다. 어느 한 경우에서, 장치(108)는 다음과 같은 몇몇 이점들을 제공하는 새롭게 부가된 장치이다.
ECC 유닛(105)에 의해 자동적으로 보정되었던 에러들에 관한 통계 정보를 수집하는 것은 시스템(100)의 사용자들에게 상당히 이롭다. 상술된 바와 같이, ECC 보호 메모리에 의해 자동적으로 보정된 에러들은 메모리로부터 검색된 데이터를 이용하는 시스템의 다른 부분들에 대해 기본적으로 볼 수 없다. 현재 이용 가능한 ECC 보호 메모리들의 많은 사용자들은, 보정된 에러들이 얼마나 자주 발생하는지 및 따라서 보호된 메모리를 얼마나 신뢰할 수 있는지를 알지 못하는 것에 대해 상당한 우려를 가진다. 따라서, 에러 프로세싱 장치(108)에 의해 수집된 통계 정보는, 메인 메모리(101)에 의해 저장되고 메인 메모리(101)로부터 검색되는 데이터의 신뢰도의 척도를 주기 위해 시스템(100)의 사용자들에게 매우 유용하다. 신뢰도의 인식은 일부 특정 애플리케이션들, 예를 들어, 브레이킹 시스템 제어 및 에어백 동작 제어와 같이 자동차 및 다른 이동 수단들과 같은 안전 임계적 제어 애플리케이션들에서 극단적으로 중요할 수 있다. 시스템 개발자들은 또한, 메모리 또는 지금 막 실패하려는 메모리 내의 영역을 식별하기 위해 통계 정보를 이용할 수 있고, 이후 그러한 실패를 회피하기 위해 방어적 척도들을 선택할 수 있다.
일부 알려진 시스템들에서, 보정된 에러들의 발생을 시스템에 공지하는 부가적 수단이 때때로 제공된다. 일반적으로, 이것은, 보정된 에러에 관하여 애플리케이션에 공지하기 위해 실행중인 애플리케이션의 소프트웨어를 인터럽트하는 제외 표시자(exception indicator)에 의해 이루어진다. 애플리케이션 소프트웨어는 부가 이용을 위해 대응하는 정보를 기록하는 것을 담당한다. 그러나, 소프트웨어 인터럽트들을 이용하는 것은 에러들에 관한 통계 정보를 획득하는 값비싼 방법이고, 애플리케이션 소프트웨어의 다른 실시간 요구사항들과 충돌하는 고유한 위험을 갖는다.
따라서, 데이터 에러들에 관한 통계 정보를 수집하는 것이 또 다른 목적을 위해 실행되는 애플리케이션 소프트웨어의 수반 없이 수행될 수 있다면 이롭다. 본 발명의 실시예들은, 에러 통계 데이터의 수집 및 제공이 낮은 부가 프로세싱 오버헤드 및 데이터 애플리케이션의 최소의 연루로 에러 프로세싱 장치(108)에 의해 비싸지 않게 성취되도록 허용한다. 종래 기술에 공지된 값비싼 제외 기반 경보 절차들이 회피될 수 있다.
또한, 본 발명의 실시예들에서, 예를 들어, 애플리케이션 소프트웨어에 의한 정보의 부가 프로세싱을 위해 애플리케이션 소프트웨어에 의해 요구된 검출된 에러들에 관한 정보의 제공은, 다른 더 중요한 애플리케이션 소프트웨어의 태스크들을 방해하지 않고 관련 정보를 프로세싱하기 위한 이용 가능한 시간이 존재할 때까지 지연될 수 있다.
또한, 본 발명의 실시예들의 이용에 의해, 알려진 에러들로부터 새롭게 검출된 에러들, 및 가능하게는 알려진 에러들의 유형, 예를 들면, 에러 테이블(109)에 이전에 기록된 제작 에러들 또는 런타임 에러들을 구별하는 것이 가능하다. 에러 프로세싱 로직(113)은 ECC 유닛(105)에 의해 동작 시에 발견된 런타임 에러들의 인스턴트들에 관한 정보를 컴파일한다. 레지스터 인터페이스(115) 내에 위치한 레지 스터들은, 정보가 적절하거나 요청될 때마다 에러 프로세싱 로직(113)에 의해 수집된 정보를 애플리케이션에 전달할 수 있다.
에러 부가 프로세싱 장치(108)를 포함하는 시스템(100)의 매우 중요한 장점은, 에러 테이블(109)에 이미 기록된 알려진 에러들인 메인 메모리(101) 또는 패리티 메모리(103) 내의 에러들을 식별 및 보정하는 기능이다. 그러한 기능은 일부 에러들, 예를 들면, 종래 기술에서 복구될 수 없는 에러들인 일부 2 이상의 비트 에러들의 보정을 허용한다. 또 다른 장점은 제작 에러와 메인 메모리(101)의 정상 이용 동안에 발생하는 에러들을 구별하는 에러 부가 프로세싱 장치(108)의 기능이다. 또 다른 중요한 장점은, 특정 유형의 에러들, 예를 들면 동작 시에 검출된 에러들에 관한 통계 정보를 컴파일하고, 또 다른 특정 유형의 에러들, 예를 들면, 제작 에러들에 관한 정보를 제외하는 에러 프로세싱 장치(108)의 기능이다.
메인 메모리(101) 또는 패리티 메모리(103) 내의 알려진 에러들을 식별 및 정정하는 기능은 매우 중요한데, 이는 ECC 유닛(105)의 주요 목적, 즉, 알려진 에러들의 경우에서조차 메인 메모리(101) 내에 저장된 데이터의 보전을 확보하는 주된 목적을 유지하기 때문이다. 이러한 기능은 메인 메모리(101)를 채용하는 장치의 제조자뿐만 아니라 그러한 장치가 통합되는 시스템의 제조자에게 이롭다. 이러한 기능의 이용에 의해 획득될 수 있는 중요한 애플리케이션 개선들의 예들은 다음과 같다.
1) 일부 장치 제조자들은 제품 제조 산출량을 개선하기 위해 ECC 유닛을 이용하고, 이는 메인 메모리 내에 단일 비트 에러들을 가질 수 있는 장치들의 생산을 기본적으로 수반한다. 일반적으로 이러한 에러들은 무해할 것이며, ECC 유닛이 이러한 에러들을 보정할 것이기 때문이다. 그러나, ECC 유닛의 원칙적으로 의도된 이용이 메인 메모리의 데이터 콘텐트의 보정을 주장하는 것이기 때문에, 이는 이러한 에러들을 보정하고, 그렇지 않다면 무시하는 ECC 기능성의 오용이다. 제작 에러인 기존의 에러와 메인 메모리의 정상 이용 시에 일어나는 에러 간에 차이가 없다는 것이 문제이다. 제작 에러가 메인 메모리 내의 특정 위치에 이미 수용되는 경우에, 동일한 메모리 위치 내의 부가적 에러는 메모리 시스템의 비극적이고 복구 불가능한 에러를 일으킬 수 있다. 결과적으로, 그러한 시스템의 적응성은 어떠한 제작 에러들로 갖지 않는 시스템과 비교하여 감소된다. 알려진 제작 에러들을 식별 및 보정하는 기능을 갖는다면 이러한 문제를 완전히 극복한다.
2) 새로운 에러들이 메인 메모리(101)의 정상 동작 동안에 발생할 때, 이들은 메인 메모리(101)를 통합한 장치 또는 그러한 장치를 통합한 완전한 시스템조차도 대체하지 않고 복구될 수 있다. 예를 들면, 자동차는 그의 제어 유닛들 중 하나에서 채용되는 그러한 장치를 가질 수 있다. 임의의 단일 비트 에러를 복구하는 것은, 메인 메모리(101)의 데이터 콘텐트와 예상된 데이터 콘텐트를 비교하고 임의의 차이들을 에러 테이블(109)에 기록하는 보수 관리 유닛(maintenance unit)을 부착함으로써 이루어질 수 있다. 부정확한 데이터가 메인 메모리(101)로부터 검색될 때마다, 데이터 내의 에러가 ECC 유닛(105)에 의해 검출되고, 정확한 데이터가 상술된 방식으로 에러 테이블(109)로부터 검색된다. 그러한 기능 없이는, 상기 장치 또는 완전한 시스템조차도 대체되어야 할 것이다. 그러한 대체는 매우 값이 비쌀 수 있다.
3) 메인 메모리(101)의 정상 동작 동안에 에러 엔트리들을 기록하는 기능을 갖는다는 것은, 또한 본 발명을 구현한 메모리 시스템(100)이 통합된 장치 또는 시스템의 가용성을 상당히 증가시킬 수 있다. 에러 프로세싱 로직(113)이 잘못된 액세스들의 특정 문턱값에 의존하여 방어적 수단으로서 계속적으로 실패하는 단일 비트 에러에 대해 에러 테이블(109)(정확한 워드 포함) 내에 대응하는 특별 엔트리를 생성하는 상황을 고려해보자. 동일한 메모리 위치가 제 2 에러를 보여주면, 상기 시스템은 고장날 것인 공지된 시스템들에 반하여 여전히 동작할 것이다. 또한, 기록 동작을 수행한 후에, 메모리들에 대한 기록 액세스들을 검증하는 특정 하드웨어 메카니즘들, 예를 들면, 플래시 블록의 기록 검증 단계, 또는 SRAM/DRAM 내의 재판독 검증 하드웨어를 제공 또는 재이용하는 것이 가능하다. 그러한 메카니즘이 에러 테이블(109) 내의 엔트리의 생성을 트리거할 때, 대응 워드를 기록하는 기능이 없는 것은 시스템이 기능 고장이 일어나게 하지 않을 것이다.
4) 본 발명의 실시예의 이용은, 포괄적이거나 다른 방사(radiation)에 의해 일어나는 에러를 견디는 애플리케이션의 가능성을 증가시킬 수 있다. 예를 들어, 미래의 자동차 제어 애플리케이션들에서의 이용을 위해 예견되는 X-바이-와이어 애플리케이션들 내의 안전 임계적 모듈들은 통상적으로, 동작 시에 및 실패가 허용되지 않으면서 상기 모듈이 중성자들로 조사되는 테스트를 통과할 필요가 있다. 그러한 요구사항들에 관한 보다 상세한 사항들은 http://www.automotivedesignline.com/howto/188700110에서 획득될 수 있다.
이들은, 제작 산출량, 시스템 복구 및 개선된 가용성에 대해 많은 이점들을 갖고, 본 발명을 구현하는 시스템(100)의 에러 부가 프로세싱 장치(108)의 이용에 의해 획득될 수 있는 애플리케이션들 상의 개선들의 4 개의 예들이다. 물론, 또 다른 가능성이 존재하고, 제공된 예들은 본 발명을 구현한 시스템(100)에서 에러 부가 프로세싱 장치(108)의 이용에 의해 가능하게 이루어지는 개선들의 철저한 리스트는 아니다.

Claims (27)

  1. 데이터를 저장하기 위한 제 1 메모리(101) 및 상기 메모리를 액세스하고 상기 제 1 메모리로부터 검색된 데이터에서 에러들을 검출하기 위한 ECC(error correction code) 유닛(105)을 포함하는 메모리 시스템(100)에 있어서,
    에러 부가 프로세싱 장치(108)는 상기 ECC 유닛에 의해 검출된 에러들을 프로세싱하도록 동작가능하고, 상기 에러 프로세싱 장치는 상기 검출된 에러들에 관한 데이터를 기록하기 위한 제 2 메모리(109)를 포함하는 것을 특징으로 하는, 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 제 2 메모리는 상기 제 1 메모리의 지정된 부분 또는 상기 제 1 메모리와 별개의 메모리인, 메모리 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 메모리는 상기 제 1 메모리의 동작 동안에 발생하는 에러들뿐만 아니라 상기 제 1 메모리의 제작 결점들(fabrication defects)로부터 발생하는 에러들에 관한 데이터를 기록하도록 동작가능한, 메모리 시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 2 메모리는 에러들에 관한 데이터를 룩업 테이블(lookup table)의 형태로 기록하도록 동작가능한, 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 룩업 테이블은 부정확한 데이터 워드들이 존재하는 위치들의 상기 제 1 메모리의 어드레스들에 관한 엔트리들을 보관하도록 동작가능한, 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 룩업 테이블은 상기 어드레스들과 함께 상기 부정확한 워드들의 에러들이 보정 또는 분류되게 하는 정보를 보관하도록 동작가능한, 메모리 시스템.
  7. 제 6 항에 있어서,
    상기 부정확한 워드들의 에러들이 보정되게 하는 상기 정보는 그러한 어드레스들에 대해 정확한 워드들을 포함하는, 메모리 시스템.
  8. 제 4 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 에러 부가 프로세싱 장치는 상기 ECC 유닛에 의해 검출된 에러가 상기 룩업 테이블 내에 이전에 기록되었는지의 여부를 확인하기 위해 상기 룩업 테이블을 검색하도록 동작가능한 테이블 룩업 유닛(111)을 포함하는, 메모리 시스템.
  9. 제 6 항에 있어서,
    상기 테이블 룩업 유닛은 그가 그러한 에러가 상기 룩업 테이블 내에 이전에 기록되지 않았다는 것을 확인하면, 검출된 에러에 관한 데이터를 상기 룩업 테이블에 기록하는 것을 적용하도록 더 동작가능한, 메모리 시스템.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 에러 부가 프로세싱 장치는 상기 ECC 유닛에 의해 검출된 에러를 포함하는 워드가 상기 제 2 메모리 내에 이전에 기록된 것으로 확인되는 경우, 상기 검출된 에러를 포함하는 상기 워드가 보정되도록 허용하기 위해 정보를 상기 ECC 유닛에 전달하도록 동작가능한, 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 에러 부가 프로세싱 장치는 상기 검출된 에러를 포함하는 상기 워드를 대체하기 위해 상기 제 2 메모리로부터 검색된 보정된 워드를 상기 ECC 유닛에 전달하도록 동작가능한, 메모리 시스템.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 ECC 유닛은 상기 검출된 에러를 포함하는 상기 워드를 보정된 워드로 대체하도록 더 동작가능한, 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 ECC 유닛은 상기 보정된 워드에 대해 ECC 체크를 수행하도록 더 동작가능한, 메모리 시스템.
  14. 제 8 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 에러 프로세싱 장치는 상기 ECC 유닛에 의해 검출된 에러들의 인스턴스들을 기록 및/또는 부가 프로세싱하도록 동작가능한 에러 프로세싱 로직(113)을 포함하는, 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 에러 프로세싱 로직은 상기 테이블 룩업 유닛에 결합되고, 상기 ECC 유닛에 의해 검출된 에러에 관한 정보가 상기 제 2 메모리 내에 이전에 기록되었는지의 여부를 나타내는 신호를 상기 테이블 룩업 유닛으로부터 수신하도록 동작가능하고, 상기 에러 프로세싱 로직은 에러의 인스턴스를 기록하도록 동작가능한, 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 에러 프로세싱 로직은 상기 관련된 에러가 상기 제 2 메모리에 의해 이전에 기록되었는지의 여부를 나타내는 정보를 또한 기록하도록 동작가능한, 메모리 시스템.
  17. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 에러 프로세싱 로직은 상기 ECC 유닛에 의해 검출된 에러들의 수에 관한 통계 데이터를 시간의 함수 또는 프로세싱된 데이터의 레이트의 함수로서 기록하도록 동작가능한, 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 에러 프로세싱 장치는 상기 통계 데이터와 상기 제 1 메모리에 관한 위상적(topological) 또는 다른 정보를 교차-링크하도록 동작가능한, 메모리 시스템.
  19. 제 17 항 또는 제 18 항에 있어서,
    상기 에러 프로세싱 장치는 상기 에러 프로세싱 로직에 의해 통계 데이터의 저장소(storage)를 구성하도록 동작가능한 레지스터 인터페이스(115)를 포함하는, 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 레지스터 인터페이스는 상기 에러 프로세싱 로직에 의해 기록된 통계 데이터를 검색하고 상기 메모리 시스템 외부의 데이터 애플리케이션에 제공하도록 더 동작가능한, 메모리 시스템.
  21. 제 1 항 내지 제 20 항 중 어느 한 항에 있어서,
    상기 에러 부가 프로세싱 장치는:
    (i) 정보의 저장소를 상기 제 2 메모리 내에 구성하고;
    (ii) 상기 정보를 상기 제 2 메모리 내에 저장하고;
    (iii) 상기 제 2 메모리로부터 상기 정보를 검색하는 동작들 중 하나 이상을 수행하도록 동작가능한 레지스터 인터페이스(115)를 포함하는, 메모리 시스템.
  22. 제 1 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 메모리 시스템은 하나 이상의 다른 디바이스들 또는 시스템들을 선택적으로 포함하는 반도체 집적 회로 칩의 형태인, 메모리 시스템.
  23. 제 1 항 내지 제 22 항 중 어느 한 항에 따른 메모리 시스템에서의 동작 방법으로서, 상기 메모리 시스템은, 상기 제 1 메모리를 액세스하고 상기 제 1 메모리로부터 검색된 데이터에서 에러를 검출하는 상기 ECC 유닛을 포함하는, 상기 메모리 시스템에서의 동작 방법에 있어서,
    상기 에러 부가 프로세싱 장치가 상기 제 2 메모리를 참조하여 상기 검출된 에러를 부가 프로세싱하는 것을 특징으로 하는, 메모리 시스템에서의 동작 방법.
  24. 제 23 항에 있어서,
    상기 에러 프로세싱 장치가 상기 검출된 에러에 관한 정보가 상기 제 2 메모 리 내에 이미 기록되었는지의 여부를 확인하고, 그러한 정보가 이미 기록되어 있지 않다면, 상기 검출된 에러에 관한 정보를 기록하는 단계를 포함하는, 메모리 시스템에서의 동작 방법.
  25. 제 23 항 또는 제 24 항에 있어서,
    상기 에러 부가 프로세싱 장치는 정보를 상기 ECC 유닛에 제공하여 그러한 정보 없이 상기 ECC 유닛에 의해 복구 불가능한 에러들을 상기 ECC 유닛이 동적으로 보정하게 하는, 메모리 시스템에서의 동작 방법.
  26. 제 25 항에 있어서,
    상기 제공된 정보는 상기 ECC 유닛에 의해 검출된 적어도 2 개의 부정확한 비트들을 갖는 워드에 관련되고, 상기 ECC 유닛은 상기 워드를 보정하고 상기 보정된 워드를 데이터 애플리케이션에 전달하기 위해 상기 제공된 정보를 이용하는, 메모리 시스템에서의 동작 방법.
  27. 제 26 항에 있어서,
    상기 ECC 유닛은 상기 정보를 전달하기 전에 상기 보정된 워드에 대해 ECC 체크를 수행하는, 메모리 시스템에서의 동작 방법.
KR1020097012802A 2006-11-21 2006-11-21 Ecc-유닛 및 부가 프로세싱 장치를 갖는 메모리 시스템 Withdrawn KR20090087077A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2006/068715 WO2008061558A1 (en) 2006-11-21 2006-11-21 Memory system with ecc-unit and further processing arrangement

Publications (1)

Publication Number Publication Date
KR20090087077A true KR20090087077A (ko) 2009-08-14

Family

ID=38462429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097012802A Withdrawn KR20090087077A (ko) 2006-11-21 2006-11-21 Ecc-유닛 및 부가 프로세싱 장치를 갖는 메모리 시스템

Country Status (5)

Country Link
US (1) US8812931B2 (ko)
EP (1) EP2095234B1 (ko)
KR (1) KR20090087077A (ko)
TW (1) TW200837550A (ko)
WO (1) WO2008061558A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160023151A (ko) * 2014-08-21 2016-03-03 삼성전자주식회사 에러 알림 기능이 있는 메모리 장치
KR20220146140A (ko) * 2021-04-23 2022-11-01 매그나칩 반도체 유한회사 Crc를 이용한 sram 동적 고장 처리 시스템 및 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009090502A1 (en) 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
CN101615145B (zh) * 2009-07-24 2011-12-07 中兴通讯股份有限公司 一种提高存储器数据缓存可靠性的方法和装置
US8397134B2 (en) * 2010-08-30 2013-03-12 Hamilton Sundstrand Corporation System for handling of permanent bit errors in memory devices
EP2608211A1 (en) * 2011-12-22 2013-06-26 Fluiditech IP Limited Method of testing a flash memory
US9230620B1 (en) * 2012-03-06 2016-01-05 Inphi Corporation Distributed hardware tree search methods and apparatus for memory data replacement
US9262263B2 (en) 2013-11-25 2016-02-16 Qualcomm Incorporated Bit recovery system
US9378081B2 (en) 2014-01-02 2016-06-28 Qualcomm Incorporated Bit remapping system
US9454422B2 (en) 2014-01-30 2016-09-27 International Business Machines Corporation Error feedback and logging with memory on-chip error checking and correcting (ECC)
US10891185B2 (en) 2014-08-08 2021-01-12 Hewlett Packard Enterprise Development Lp Error counters on a memory device
KR102189780B1 (ko) 2014-08-11 2020-12-11 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US10002043B2 (en) * 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US10002044B2 (en) * 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US9983972B2 (en) 2015-06-01 2018-05-29 Cisco Technology, Inc. Predictive in-field memory repair scheme
US9916091B2 (en) 2015-07-13 2018-03-13 Samsung Electronics Co., Ltd. Memory system architecture
US10297335B2 (en) 2016-09-02 2019-05-21 International Business Machines Corporation Tracking address ranges for computer memory errors
US10353669B2 (en) * 2016-09-02 2019-07-16 International Business Machines Corporation Managing entries in a mark table of computer memory errors
US10304560B2 (en) 2016-09-02 2019-05-28 International Business Machines Corporation Performing error correction in computer memory
US11144385B2 (en) * 2018-08-21 2021-10-12 Micron Technology, Inc. Transmission failure feedback schemes for reducing crosstalk
FR3100346B1 (fr) 2019-09-04 2022-07-15 St Microelectronics Rousset Détection d'erreurs
FR3100347B1 (fr) 2019-09-04 2022-07-22 St Microelectronics Rousset Détection d'erreurs
CN112181712B (zh) * 2020-09-28 2022-02-22 中国人民解放军国防科技大学 一种提高处理器核可靠性的方法及装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4107650A (en) * 1976-08-13 1978-08-15 The Johns Hopkins University Error correction encoder and decoder
US4058851A (en) * 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
US4209846A (en) 1977-12-02 1980-06-24 Sperry Corporation Memory error logger which sorts transient errors from solid errors
US4414665A (en) * 1979-11-21 1983-11-08 Nippon Telegraph & Telephone Public Corp. Semiconductor memory device test apparatus
US4335459A (en) 1980-05-20 1982-06-15 Miller Richard L Single chip random access memory with increased yield and reliability
US4380066A (en) * 1980-12-04 1983-04-12 Burroughs Corporation Defect tolerant memory
GB2107496B (en) * 1981-09-30 1985-11-20 Hitachi Ltd Error flag processor
JPS595497A (ja) * 1982-07-02 1984-01-12 Hitachi Ltd 半導体rom
US4608687A (en) * 1983-09-13 1986-08-26 International Business Machines Corporation Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition
JPS6150293A (ja) * 1984-08-17 1986-03-12 Fujitsu Ltd 半導体記憶装置
US4654847A (en) * 1984-12-28 1987-03-31 International Business Machines Apparatus for automatically correcting erroneous data and for storing the corrected data in a common pool alternate memory array
US4782487A (en) * 1987-05-15 1988-11-01 Digital Equipment Corporation Memory test method and apparatus
US4905242A (en) * 1987-06-09 1990-02-27 The United States Of America As Represented By The Secretary Of The Air Force Pipelined error detection and correction apparatus with programmable address trap
JPH0290816A (ja) * 1988-09-28 1990-03-30 Hitachi Ltd 誤り訂正方法および回路
JP2664236B2 (ja) * 1989-02-01 1997-10-15 富士通株式会社 半導体記憶装置
EP0675502B1 (en) * 1989-04-13 2005-05-25 SanDisk Corporation Multiple sector erase flash EEPROM system
KR920005798A (ko) * 1990-04-18 1992-04-03 미타 가쓰시게 반도체 집적회로
JPH0498342A (ja) * 1990-08-09 1992-03-31 Mitsubishi Electric Corp 半導体記憶装置
US5233614A (en) * 1991-01-07 1993-08-03 International Business Machines Corporation Fault mapping apparatus for memory
US5956352A (en) 1992-04-24 1999-09-21 Digital Equipment Corporation Adjustable filter for error detecting and correcting system
KR0168896B1 (ko) * 1993-09-20 1999-02-01 세키자와 다다시 패리티에 의해 에러를 수정할 수 있는 반도체 메모리장치
US5883903A (en) * 1993-09-20 1999-03-16 Fujitsu Limited Semiconductor memory of XN type having parity corresponding to n×m bits
US5907660A (en) * 1994-09-21 1999-05-25 Mitsubishi Denki Kabushiki Kaisha Digital video signal playback device with special playback data being in the form of a still image slice data
US5774647A (en) 1996-05-15 1998-06-30 Hewlett-Packard Company Management of memory modules
JP3749354B2 (ja) * 1997-08-11 2006-02-22 富士通株式会社 不揮発性半導体記憶装置
US6560725B1 (en) 1999-06-18 2003-05-06 Madrone Solutions, Inc. Method for apparatus for tracking errors in a memory system
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
JP4017177B2 (ja) * 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
EP1402365A1 (en) * 2001-06-21 2004-03-31 Koninklijke Philips Electronics N.V. Method and circuit arrangement for memory error processing
US7085971B2 (en) 2001-10-25 2006-08-01 International Business Machines Corporation ECC based system and method for repairing failed memory elements
DE10206689B4 (de) * 2002-02-18 2004-03-18 Infineon Technologies Ag Integrierter Speicher und Verfahren zum Betrieb eines integrierten Speichers
JP3984096B2 (ja) * 2002-05-08 2007-09-26 株式会社東芝 交替処理方法及び交替処理装置
US7073099B1 (en) * 2002-05-30 2006-07-04 Marvell International Ltd. Method and apparatus for improving memory operation and yield
JP4111762B2 (ja) * 2002-07-03 2008-07-02 株式会社ルネサステクノロジ 半導体記憶装置
US6781898B2 (en) * 2002-10-30 2004-08-24 Broadcom Corporation Self-repairing built-in self test for linked list memories
US7447950B2 (en) * 2003-05-20 2008-11-04 Nec Electronics Corporation Memory device and memory error correction method
US7193876B1 (en) * 2003-07-15 2007-03-20 Kee Park Content addressable memory (CAM) arrays having memory cells therein with different susceptibilities to soft errors
JP2005174386A (ja) * 2003-12-08 2005-06-30 Elpida Memory Inc 半導体集積回路装置
US7304875B1 (en) * 2003-12-17 2007-12-04 Integrated Device Technology. Inc. Content addressable memory (CAM) devices that support background BIST and BISR operations and methods of operating same
US7197670B2 (en) * 2003-12-31 2007-03-27 Intel Corporation Methods and apparatuses for reducing infant mortality in semiconductor devices utilizing static random access memory (SRAM)
JP2006048777A (ja) * 2004-08-02 2006-02-16 Toshiba Corp Nandフラッシュメモリおよびデータ書き込み方法
US7730384B2 (en) * 2005-02-28 2010-06-01 Agere Systems Inc. Method and apparatus for evaluating performance of a read channel
JP4734003B2 (ja) * 2005-03-17 2011-07-27 富士通株式会社 ソフトエラー訂正方法、メモリ制御装置及びメモリシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160023151A (ko) * 2014-08-21 2016-03-03 삼성전자주식회사 에러 알림 기능이 있는 메모리 장치
KR20220146140A (ko) * 2021-04-23 2022-11-01 매그나칩 반도체 유한회사 Crc를 이용한 sram 동적 고장 처리 시스템 및 방법

Also Published As

Publication number Publication date
EP2095234B1 (en) 2014-04-09
EP2095234A1 (en) 2009-09-02
TW200837550A (en) 2008-09-16
US8812931B2 (en) 2014-08-19
WO2008061558A1 (en) 2008-05-29
US20100058144A1 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
KR20090087077A (ko) Ecc-유닛 및 부가 프로세싱 장치를 갖는 메모리 시스템
US8001432B2 (en) Uninitialized memory detection using error correction codes and built-in self test
US20050188249A1 (en) Error correction within a cache memory
US20090132876A1 (en) Maintaining Error Statistics Concurrently Across Multiple Memory Ranks
US20090150721A1 (en) Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System
US8190973B2 (en) Apparatus and method for error correction of data values in a storage device
EP3483732B1 (en) Redundant storage of error correction code (ecc) checkbits for validating proper operation of a static random access memory (sram)
US20080181035A1 (en) Method and system for a dynamically repairable memory
US20130191701A1 (en) Method for monitoring a data memory
US6108753A (en) Cache error retry technique
US20070240021A1 (en) Method, system and program product for autonomous error recovery for memory devices
US6842867B2 (en) System and method for identifying memory modules having a failing or defective address
EP2715541A1 (en) Mram field disturb detection and recovery
US9086990B2 (en) Bitline deletion
US7003701B2 (en) System for facilitated analysis of PCI bus malfunction
US6567952B1 (en) Method and apparatus for set associative cache tag error detection
US8074120B2 (en) Method for recognizing a power failure in a data memory and recovering the data memory
US20210294691A1 (en) Data processing device and data processing method
US8595570B1 (en) Bitline deletion
US8108740B2 (en) Method for operating a memory device
US20040059985A1 (en) Method and apparatus for tracking address of memory errors
JP2000305840A (ja) キャッシュメモリ及びその障害検出方法
JPH1011284A (ja) 制御記憶装置
JP5916204B2 (ja) メモリ装置及びメモリパトロールによるデータ化け回避方法
JPH0496844A (ja) キャッシュメモリ制御回路

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20090619

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid