KR20140051864A - Mram 장 교란 검출 및 복구 - Google Patents

Mram 장 교란 검출 및 복구 Download PDF

Info

Publication number
KR20140051864A
KR20140051864A KR1020137034683A KR20137034683A KR20140051864A KR 20140051864 A KR20140051864 A KR 20140051864A KR 1020137034683 A KR1020137034683 A KR 1020137034683A KR 20137034683 A KR20137034683 A KR 20137034683A KR 20140051864 A KR20140051864 A KR 20140051864A
Authority
KR
South Korea
Prior art keywords
ecc
bit error
double bit
bits
reference bits
Prior art date
Application number
KR1020137034683A
Other languages
English (en)
Other versions
KR101983651B1 (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 KR20140051864A publication Critical patent/KR20140051864A/ko
Application granted granted Critical
Publication of KR101983651B1 publication Critical patent/KR101983651B1/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • 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/44Indication or identification of errors, e.g. for repair
    • 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/11Error 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 using multiple parity bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Mram Or Spin Memory Techniques (AREA)

Abstract

방법 및 메모리 디바이스는 복수의 메모리 디바이스 비트들과 연관된 복수의 참조 비트들의 ECC 워드로부터 데이터를 판독하고 더블 비트 에러가 ECC 워드에 존재하는지를 결정하기 위해 제공된다. ECC 워드는 먼저 두번 토글링(toggling)될 수 있고 참조 비트들은 더블 비트 에러의 검출 시에 재설정된다.

Description

MRAM 장 교란 검출 및 복구{MRAM FIELD DISTURB DETECTION AND RECOVERY}
관련된 출원들에 대한 상호-참조
이 출원은 2011년 5월 31일에 출원된 미국 임시 출원 번호 제 61/491,761호의 잇점을 주장한다.
여기서 설명된 예시적인 실시예들은 일반적으로 메모리 디바이스들에서의 에러 검출에 관한 것이고, 특히 예를 들면, 자기저항 랜덤 액세스 메모리(magnetoresistive random access memory; MRAM) 디바이스들과 관련되어 이용된 참조 비트들의 에러 검출에 관한 것이다.
어레이 내부의 메모리 비트의 상태를 결정하기 위해, 어레이 비트의 상태를 미리-설정된 참조의 상태와 비교하는 것이 일반적인 관례이다. 예를 들면, 중간-지점 참조 신호는 하나는 높은 신호 상태에 있고, 하나는 낮은 신호 상태에 있는 2개의 참조 비트들로부터 신호를 평균화함으로써 생성될 수 있다.
메모리 디바이스들은 공통적으로 출력 로직 회로에서의 일부 형태의 에러 정정 코드(ECC)를 포함한다. 메모리 비트가 그것의 원하는 상태로부터 교란되거나, 그렇지 않으면 부정확하게 판독되면, ECC는 메모리 출력을 탐색하고 가능하게 정정하기 위해 이용될 수 있다. 참조 비트들이 처리, 패키징(packaging) 동안, 및/또는 임의의 다른 시간에서 교란되는 것(부정확한 상태로 변화되는 것)은 드문 것이 아니다. 참조 비트가 그것의 원래 상태로부터 교란되면, 상기 참조 비트와 비교하여 메모리 비트들은 대단히 많은 판독 에러들을 겪을 수 있다.
종래 기술의 메모리 시스템들은 하나 이상의 교란된 참조 비트들의 존재로부터 효율적으로 복구할 수 없다. 따라서, 대부분의 노력들은 메모리 디바이스들을 더 강건하게 만드는데 즉, 참조 비트 교란들이 발생할 레이트를 낮추는데 집중된다.
외부 장이 MRAM 데이터를 조작할 가능성(potential)은 핵심 및/또는 안전한 데이터를 갖는 애플리케이션들에 대한 우려이다. 상기 많은 애플리케이션들에 대해, 그들이 데이터가 교란될 때를 검출하는 것은 필수지만; 반드시 데이터가 복구가능해야할 필요는 없다. 2차적인 우려는 충분하게 강한 외부 장이 MRAM를 영구적으로 비-기능적으로 만들 것이라는 점이다. 둘 모두가 나머지의 증가된 불량 레이트를 야기하는, 높은 외부 장으로부터 발생하는 2개의 공통 불량 모드들은 클래딩된 라인 교란들(cladded line disturbs)이고 참조 비트 교란들이다. 상기 이벤트들 중 하나의 발생 후에 기능성을 복구하는 것이 바람직할 것이다.
ECC 워드에서의 더블 비트 불량의 발생은 그것이 액세스된 ECC 워드가 탬퍼링(tampering)되는 양호한 표시자인 충분히 낮은 확률을 갖는다. 그러나, 디바이스에 걸쳐 넓은 범위의 자화율(susceptibility)이 존재할 것이고 다른 워드들은 모니터링된 워드가 정확하게 유지되는 동안 더블 비트 불량들을 축적할 수 있기 때문에, 단일 워드를 모니터링(monitoring)하는 것은 충분하지 않을 수 있다. 게다가, 공지된 더블 비트 에러 검출 방식은 2개 이상의 모든 불량들을 검출하도록 보장되지 않는다(그러나, 일반적으로 임의의 짝수개의 불량들을 검출할 것이다). 그것은 심각한 교란 조건이 검출가능하지 않은 수의 불량들을 야기한 단일 ECC 워드를 모니터링할 때 가능할 수 있다. ECC 워드들의 일정 범위를 모니터링함으로써, 탬퍼링하는 제 1 사인들(signs) 뿐만 아니라, 심각한 교란들을 검출하는 확률이 증가된다.
따라서, 자기-회복 참조 비트 방법들을 통합하는 메모리 디바이스(예를 들면, MRAM 메모리 디바이스)에 대한 요구가 존재한다. 또한, 예시적인 실시예들의 다른 바람직한 특징들 및 특성들은 첨부된 도면들 및 상기 기술분야 및 배경기술과 결부하여 취해진, 다음의 상세한 설명 및 첨부된 청구항들로부터 명백해질 것이다.
자기-회복 참조 비트를 통합하는 메모리 디바이스를 위한 방법 및 구조가 제공된다.
일 예시적인 실시예에서, 방법은 ECC 워드를 두번 토글링(toggling)하는 단계; ECC 워드를 판독하는 단계; 및 ECC 워드를 판독하는 단계가 더블 비트 에러를 나타내면 탬퍼링이 발생하였음을 나타내는 단계를 포함한다.
또 다른 예시적인 실시예에서, 방법은 복수의 참조 비트들의 ECC 워드로부터 데이터를 판독하는 단계; 및 ECC 워드에 더블 비트 에러가 존재하는지를 결정하는 단계를 포함한다.
또 다른 예시적인 실시예에서, 어레이는 복수의 어레이 비트들; ECC 워드를 포함하는 복수의 참조 비트들; 및 ECC 워드로부터 데이터를 판독하고; 더블 비트 에러가 ECC 워드에서 표시되면 템퍼링이 발생하였음을 나타내도록 구성된 검출 모듈을 포함한다.
본 발명은 이하에 유사한 부호들이 유사한 요소들을 나타내는 다음의 도면들과 결부하여 설명될 것이다.
도 1은 일 예시적인 비트 어레이 및 연관된 참조 비트들의 개념도.
도 2는 교란된 높은 참조 비트를 갖는 도 1의 비트 어레이를 도시한 도면.
도 3은 교란된 낮은 참조 비트를 갖는 도 1의 비트 어레이를 도시한 도면.
도 4는 하나의 실시예에 따른 메모리에서의 에러 검출을 위한 방법을 도시하는 흐름도.
도 5는 또 다른 실시예에 따른 메모리에서의 에러 검출을 위한 방법을 도시하는 흐름도.
도 6은 하나의 실시예에 따른 반도체 메모리의 개념적인 블록도.
다음의 상세한 설명은 단지 사실상 예시적이고 본 주제 또는 본 출원의 실시예들 및 이러한 실시예들의 이용들을 제한하도록 의도되지 않는다. 예시적으로서 여기서 설명된 임의의 구현은 반드시 다른 구현들에 걸쳐 바람직하거나 이로운 것으로서 해석될 필요는 없다. 또한, 앞선 기술분야, 배경기술, 발명의 내용, 또는 다음의 상세한 설명에 제시된 임의의 표현되거나 함축된 이론에 의해 제한될 의도는 전혀 없다.
기법들 및 기술들은 기능적이고/기능적이거나 논리적인 블록 구성요소들에 관하여, 및 다양한 계산 구성요소들 또는 디바이스들에 의해 수행될 수 있는 동작들, 처리 작업들, 및 기능들의 상징적인 표현들에 대하여 여기서 설명될 수 있다. 이러한 동작들, 작업들, 및 기능들은 때때로 컴퓨터-실행되고, 컴퓨터화되고, 소프트웨어-구현되거나, 컴퓨터-구현되는 것으로서 언급된다. 실제로, 하나 이상의 처리기 디바이스들은 시스템 메모리에서의 메모리 위치들에서 데이터 비트들을 표현하는 전기 신호들을 조작함으로써 뿐만 아니라, 신호들의 다른 처리에 의해 설명된 동작들, 작업들, 및 기능들을 실행할 수 있다. 데이터 비트들이 유지되는 메모리 위치들은 데이터 비트들에 대응하는 특정한 전기, 자기, 광, 또는 유기적 속성들을 갖는 물리적인 위치들이다. 도면들에서 도시된 다양한 클록 구성요소들이 명시된 기능들을 수행하도록 구성된 임의의 수의 하드웨어, 소프트웨어, 및/또는 펌웨어 구성요소들에 의해 실현될 수 있음을 인식해야 한다. 예를 들면, 시스템 또는 구성요소의 일 실시예는 다양한 집적 회로 구성요소들 예를 들면, 메모리 요소들, 디지털 신호 처리 요소들, 로직 요소들, 룩-업 테이블들, 등을 이용할 수 있고, 상기 다양한 집적 회로 구성요소들은 하나 이상의 마이크로처리기들 또는 다른 제어 디바이스들의 제어 하에 다양한 기능들을 실행할 수 있다.
간결성을 위해, 특정 시스템들 및 하위시스템들(및 그의 각각의 동작 구성요소들)의 기능적인 양태들에 관련된 종래의 기법들은 여기서 상세하게 설명되지 않을 수 있다. 또한, 여기서 포함된 다양한 도면들에서 도시된 접속 라인들은 다양한 요소들 사이의 예시적인 기능적인 관계들 및/또는 물리적인 결합들을 표현하도록 의도된다. 많은 대안적이거나 부가적인 기능적인 관계들 또는 물리적인 접속들은 본 주제의 일 실시예에서 존재할 수 있음을 유의해야 한다.
도 1을 참조하면, 비트들의 한 세트(100)는 한 어레이(예를 들면, 비트들(102(a) 내지 102(f))의 복수의 비트들(102)("어레이 비트들" 또는 단순하게 "비트들") 및 그와 연관된 하나 이상의 참조 비트들(104)(예를 들면, 참조 비트들(104(a) 및 104(b))을 포함한다. 하나의 참조 비트(104(a))는 "L"로 지정되고 공칭적으로 "낮은" 신호(예를 들면, MRAM 메모리에서의 낮은 컨덕턴스 값)를 갖고, 다른 참조 비트(104(b))는 "H"로 지정되고 공칭적으로 "높은" 신호(예를 들면, MRAM 메모리에서의 높은 컨덕턴스 값)를 갖는다. 참조 비트들(104)은 그들이 비트들(102)에 대해 수행된 판독 동작 동안 참조들로서 이용되는 점에서 볼 때 비트들(102)과 "연관된다".
도 1에서, 2개의 참조 비트들(104)이 도시된다. 그러나, 본 발명은 그렇게 제한되지 않고, 단일 참조 비트들 또는 임의의 다른 수의 참조 비트들을 이용하는 메모리들에서 구현될 수 있다. 예를 들면, 참조 쌍 당 16 내지 32 어레이 비트들일 수 있다. 또한, 여기서 설명된 시스템들 및 방법들은 참조 비트들에 대해 중간지점 생성 방식을 이용하는 MRAM 또는 임의의 메모리 디바이스와 관련하여 이용될 수 있다.
도 1의 예시적인 실시예의 구성요소들과 유사한 도 2 및 도 3에서 도시된 바와 같은 이 예시적인 실시예들의 모든 구성요소들은 유사한 숫자들로 지정됨을 유의해야 한다.
참조 비트들이 처리, 패키징 동안, 및/또는 임의의 다른 시간에서 교란되는 것(부정확한 상태로 변화되는 것)은 드문 것이 아니다. 따라서, 도 2에서 도시된 바와 같이, - 전형적으로 "높은" 신호를 가질 - 참조 비트(104(b))는 "낮은" 신호 상태로 토글링될 수 있다. 마찬가지로, 도 3에서 도시된 바와 같이, 비트(104(a))는 그것의 정상적인 "낮은" 신호 상태로부터 "높은" 신호 상태로 토글링될 수 있다.
도 1에서, 참조 비트들(104)의 평균 신호는 (L+H)/2이다. 그러나, 도 2에서 도시된 에러 조건에 대해, 참조 비트들(104)의 평균 신호는 (L+L)/2로 감소된다. 이러한 경우에서, 하나 이상의 낮은 비트들(102)은 부정확하게 "높음"으로서 판독될 수 있다. 평균적으로, 판독된 비트들의 절반은 잘못 판독될 것이다. 유사하게, 도 3에서, 참조 비트들(104)의 평균 신호는 비정상적으로 높다 - 즉, (H+H)/2이다. 이것은 부정확하게 "낮음"으로서 판독되는 하나 이상의 높은 비트들(102)을 야기할 것이다. 명백해질 바와 같이, 심지어 하나의 교란된 참조 비트(104)의 존재는 교란된 참조 비트(104)와 연관된 임의의 비트들(102)에 대해 다수의 판독 에러들을 초래할 것이다.
예시적인 실시예들에 따라, 더블 비트 에러의 검출 시에, 교란이 발생하거나 기록 동작이 외부 장에 대한 노출에 의해 저하되었음이 가정된다. 불량 ECC 워드에서의 데이터가 분실될지라도, 새로운 데이터를 갖는 부분의 기능성을 되찾기 위한 요구가 존재한다. 교란된 참조 비트는 연관된 ECC 워드들을 비-기능적으로 만들 것이다. 더블 비트 불량의 검출 시에 참조 비트들을 재설정하기 위한 동작을 수행함으로써, 디바이스가 기능성을 되찾는 것이 가능하다.
참조 비트들을 재설정하는 것이 디바이스를 완전한 동작으로 리턴시키는데 성공적이지 않으면, 기록 동작은 클래딩된 라인 교란들에 의해 저하되었을 확률이 크다. 외부 장이 MRAM에서의 기록 라인의 클래딩을 교란시킬 때, 기록 에러 레이트는 증가되지만, 반드시 더블 비트 에러가 높은 발생 확률을 갖는 지점까지 증가되는 것은 아니다. 클래딩된 라인 교란은 단지 높은 외부 장의 이용을 통해 고정될 수 있지만, 낮은 주파수 애플리케이션들에 대해, 기록 검증 시퀀스를 이용함으로써 클래딩된 라인 교란을 고정하지 않고 낮은 에러 레이트를 성취하는 것이 가능할 수 있다. 더블 비트 에러의 확률이 매우 낮으면, 그것은 어떠한 더블 비트 에러도 존재하지 않음을 검증하기 위해 각각의 기록 후 판독을 수행한 다음, 더블 비트 에러가 검출되면 데이터를 재기록함으로써 상당히 감소될 수 있다. 더블 비트 불량이 두번 발생하는 확률은 그것이 한번 발생하는 확률보다 훨씬 낮다.
MRAM가 기록 동작들 동안 가장 외부 장에 영향을 받기 쉽기 때문에, 일 대안으로 외부 장 교란을 검출하는 더 민감한 수단은 주기적으로 2개의 토글 동작들(토글 MRAM는 데이터를 이전 판독 동작 없이 반대 상태로 스위칭하게 한다)을 수행하고, 다음에 판독 동작이 뒤따른다. 2개의 비트들이 그들의 원래 상태로 되돌아오는데 실패했으면(두번 토글링한다), 더블 비트 에러가 발생할 것이고 검출될 것이다. 이전에 설명된 바와 같이, 다수의 ECC 워드들에 걸쳐 이 방법을 수행하는 것은 탬퍼링하는 제 1 사인들 뿐만 아니라, 극심한 교란들을 검출하는 확률을 증가시킨다. 또 다른 예시적인 실시예에서 예를 들면, 스핀-토크 MRAM, 토글 동작은 비트 상태들을 판독한 다음 반대 상태를 기록하는 단계를 포함한다.
단일 비트 에러들이, 각각의 단일 비트 에러들의 이용이 정상적으로 기대된 에러 레이트로부터 탬퍼 상황(tamper situation)을 분리하는데 충분하지 않은 상당히 충분한 레이트로 발생할 것이 기대됨에 유의하는 것은 중요하다. 또한, 단일 비트 에러들은 ECC로 정정될 것이고; 따라서, 임의의 데이터 손실의 표시가 아니다. 탬퍼링 없는 더블 에러 검출의 극도로 낮은 발생 확률 및 데이터 손실과의 상기 더블 에러 검출의 연관으로 인한 탬퍼링을 식별하는 수단으로서의 상기 더블 에러 검출의 이용이 설명된다. 단지 디바이스에 대한 몇몇 ECC 워드들만이 더블 비트 에러들을 가질 수 있고 제 3 에러가 임의의 ECC 워드에 대해 존재할 가능성이 지극히 높지 않는, 탬퍼링의 제 1 사인에서, 모든 손상된 워드들은 더블 에러 검출 회로에 의해 식별가능할 것이다. 단지 제 3 에러가 ECC 워드에 대해 존재할 때에만, 상기 워드가 정확한 것으로서 잘못 해석될 수 있지만; 다수의 다른 ECC 워드들이 이것이 발생하기 전에 검출가능한 더블 비트 에러들을 가질 가능성이 지극히 높고, 이는 유효한 것으로서 데이터를 수용하기 전에 다수의 ECC 워드들로부터 데이터를 판독하는 것이 여기서 교시되는 이유다. 가장 극심한 교란들에서, 전형적인 더블 비트 에러 검출 회로는 임의의 단일 ECC 워드의 임의의 랜덤 손상을 검출하는 50퍼센트의 확률보다 높은 확률을 갖는다.
하나의 예시적인 실시예는 1) 언제 액세스된 워드가 2개의 불량들에 도달하는지를 식별하기 위한 더블 비트 에러 검출 ECC의 이용, 2) 어떠한 탬퍼링도 발생하지 않음을 보장하기 위한 상이한 ECC 워드들로부터의 다수의 판독들의 이용, 3) 대안적으로, 더 양호한 민감성을 위한 다수의 ECC 워드들에 대한 더블 강제적인 기록들의 이용, 4) 최소의 검출 레이트를 성취하기 위한 다수의 ECC 워드들의 타겟팅(targeting), 5) 탬퍼링의 검출 시에 참조 비트 프로그래밍 시퀀스의 이용, 및 6) 클래딩된 라인 변환의 동작 하의 강건한 거동(robust behavior)을 제공하기 위한 기록 검증 시퀀스의 이용.
예시적인 실시예들은 안전한 애플리케이션들에서의 탬퍼링을 식별하기 위해 이용되고, 복구 및 지속된 이용을 지원한다. 다수의 ECC 워드들로부터의 판독은 탬퍼링을 감지하는 확률을 증가시킨다.
도 4 및 도 5는 여기서 개시된 에러 검출 방식의 예시적인 실시예들을 도시하는 흐름도들이다. 처리들(400 및 500)과 관련되어 수행된 다양한 작업들은 소프트웨어, 하드웨어, 펌웨어, 또는 그의 임의의 조합에 의해 수행될 수 있다. 예시적인 목적을 위해, 처리들(400 및 500)의 다음 설명은 도 1 내지 도 3과 관련하여 상기 언급된 요소들을 언급할 수 있다. 실제로, 처리들(400 및 500)의 일부들은 설명된 시스템 예를 들면, 처리기 또는 검출 모듈의 상이한 요소들에 의해 수행될 수 있다. 처리들(400 및 500)은 임의의 수의 부가적이거나 대안적인 작업들을 포함할 수 있고, 도 4 및 도 5에서 도시된 작업들은 도시된 순서로 수행될 필요가 없고, 처리들(400 및 500)은 여기서 상세하게 도시되지 않은 부가적인 기능성을 가지는 더 포괄적인 절차 또는 처리로 통합될 수 있음을 인식해야 한다. 게다가, 도 4 및 도 5에서 도시된 하나 이상의 작업들은 의도된 전체적인 기능성이 온전하게 남아 있는 한 처리들(400 및 500)의 일 실시예로부터 생략될 수 있다.
도 4는 하나의 실시예에 따라 참조 비트 에러들을 검출하기 위한 방법을 도시한 흐름도이다. 상기 단계들은 메모리 내의 또는 메모리 외부의 모듈에 의해 수행될 수 있고, 하드웨어, 소프트웨어, 펌웨어, 또는 그의 조합을 통해 구현될 수 있다.
초기에, 데이터는 복수의 판독 동작들 각각에 대해 복수의 참조 비트들의 복수의 ECC 워드들로부터 판독된다(단계(402)). 본 분야에서 공지된 바와 같이, ECC 방식들은 연관된 데이터 비트들에 관한 정보를 저장하기 위해 알고리즘 및 부가적인 비트들을 이용한다. 이 부가된 정보는 상기 데이터 비트들에서의 에러들을 결정하기 위해 이용될 수 있다. ECC 메모리는 예를 들면, 블록 코드들(예를 들면, 해밍 코드들) 및 돌림형 트리 코드들(convolutional tree codes)을 이용할 수 있고, 하드웨어, 소프트웨어, 펌웨어, 또는 그의 임의의 조합으로 구현될 수 있다. ECC는 에러-검출 양태 뿐만 아니라, 에러-정정 양태를 갖는다. 따라서, 특정한 ECC는 다수의 비트 에러들을 검출할 수 있을 뿐만 아니라, 단일 에러의 위치를 찾고 이를 정정할 수 있다. ECC 알고리즘들은 예를 들면, 단일-비트 에러 정정(SEC) 알고리즘들 및 단일-비트 에러 정정/더블 에러 검출(SECDED) 알고리즘들을 포함한다. 이러한 ECC 알고리즘들은 본 분야에 잘 공지되고, 여기서 상세하게 설명될 필요가 없다.
이용된 특정한 ECC에 상관 없이, ECC의 출력은 전형적으로 판독되는 데이터 비트 또는 비트들의 상태에 관련된 특정 정보 즉, 에러들의 수의 카운트(count) 뿐만 아니라, 에러들의 위치들(즉, 물리적인 위치들)을 포함할 것이다. 대응하는 참조 비트(들)(104)의 위치가 또한 공지될 것이다. 따라서, 단계(404)에서, 하나 이상의 판독 동작들이 ECC 워드들에서 더블 비트 에러를 식별하면, 탬퍼링이 발생한 표시가 만들어지고, 단계(406)에서, 참조 비트들은 더블 비트 에러의 검출 시에 재설정된다.
판독 동작은 데이터가 복수의 기록 동작들 각각에 대해 정확한지를 검증하기 위해 수행되고(단계(408)), 데이터는 판독 동작이 더블 비트 에러를 나타내면, 적어도 한번 재기록된다(단계(410)). 에러들이 두번 이상의 재기록들 후에 발생하면, 탬퍼링이 발생한 또 다른 표시가 만들어진다(단계(412)).
도 5는 참조 쌍 당 2개 이상의 비트들이 단일 동작으로 판독될 수 있음이 가정되는 일 대안적인 실시예를 도시한 흐름도이다. 이 실시예에서, ECC 워드들은 두번 토글링되고(502), 판독된다(504). ECC 워드들의 판독이 더블 비트 에러를 나타내면, 탬퍼링이 발생한 표시가 만들어지고(506), 참조 비트들은 더블 비트 에러의 검출 시에 재설정된다(508).
하나의 실시예에 따라서, 참조 비트들의 검출 및/또는 리페어(repair)는 정기적인 메모리 동작들 동안 수행되어, 메모리의 투명한 처리 및 교란되지 않은 동작을 허용한다. 예를 들면, ECC 검출 단계(402)는 임의의 편리한 판독 동작 동안 수행될 수 있다. 유사하게, 참조 비트를 토글링하는 단계들(단계(506))은 임의의 편리한 기록 동작 동안 수행될 수 있다. 이 처리에서, 참조 비트들은 실질적으로 지속적으로 체크되고 리페어된다. 이것은 교란된 참조 비트들이 판독 신뢰성에 영향을 미치지 않도록 도움을 준다.
흐름 및/또는 영향을 받은 어드레스들에 단계를 저장하기 위해 이용된 로그는 휘발성 또는 비-휘발성 요소들을 이용하여 구현될 수 있다. 비-휘발성 요소들의 이용은 파워 다운 이벤트가 검출 및 정정 시퀀스를 인터럽트(interrupt)하는 것을 방지할 것이지만, 대부분의 애플리케이션들에 대해서 필요하지 않다. 참조 쌍들과의 연관을 요구하는 비-휘발성 요소들이 이용되면, 로그와 연관된 비트들은 이용된 ECC 및 참조 검출 방식에 포함될 수 있다.
상기 설명된 기능성은 하드웨어, 소프트웨어, 펌웨어, 등의 임의의 조합에 의해 제공될 수 있다. 예를 들면, 도 6에서 도시된 개념적인 블록도를 참조하면, 일 예시적인 반도체 메모리(600)는 한 세트의 참조 비트들(104)와 연관된 한 세트의 어레이 비트들(102)을 포함한다. 검출 모듈(602)은 어레이 비트들(102)을 갖는 에러들의 존재를 검출하고 상기 설명된 바와 같이, ECC 에러 검출 단계와 연관된 에러 카운트가 미리 결정된 임계값보다 크면, 참조 비트들(104) 중 하나를 하나의 상태로부터 제 2 상태로 토글링하기 위해 하나 이상의 ECC 에러 검출 단계들을 수행하도록 구성된다.
검출 모듈(602)은 범용 처리기, 콘텐트 어드레싱가능한 메모리, 디지털 신호 처리기, 주문형 반도체, 필드 프로그래밍가능한 게이트 어레이, 임의의 적합한 프로그래밍가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소들, 또는 여기서 설명된 기능들을 수행하도록 설계된 임의의 조합으로 구현되거나 실현될 수 있다. 처리기 디바이스는 마이크로처리기, 제어기, 마이크로제어기, 또는 상태 머신으로서 실현될 수 있다. 게다가, 처리기 디바이스는 계산 디바이스들의 조합 예를 들면, 디지털 신호 처리기 및 마이크로처리기, 복수의 마이크로처리기들, 디지털 신호 처리기 코어와 결부한 하나 이상의 마이크로처리기들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
잇점들, 다른 장점들, 및 문제점들에 대한 해결책들은 특정한 실시예들에 관해서 상기 설명되었다. 그러나, 잇점들, 장점들, 문제점들에 대한 해결책들, 및 임의의 잇점, 장점, 또는 해결책을 발생하게 하거나 더 확고하게 되도록 할 수 있는 임의의 요소(들)는(은) 임의의 청구항 또는 모든 청구항들의 중요하고, 요구되거나, 필수적인 특징 또는 요소로서 해석되지 않아야 한다. 여기서 이용된 바와 같이, 용어들 "포함하다", "포함하는", 또는 그의 다른 임의의 변형은 처리, 방법, 조항, 또는 한 리스트의 요소들을 포함하는 장치가 단지 상기 요소들만을 포함하지 않고 명시적으로 리스트되지 않거나 이러한 처리, 방법, 조항, 또는 장치에 고유한 다른 요소들을 포함할 수 있도록, 비-배타적인 포함을 커버하도록 의도된다.
적어도 하나의 예시적인 실시예가 상기 상세한 설명에 제시될지라도, 많은 수의 변형들이 존재함을 인식해야 한다. 예시적인 실시예 또는 예시적인 실시예들은 단지 예들이고, 임의의 방식으로 본 발명의 범위, 적용가능성, 또는 구성을 제한하도록 의도되지 않음을 또한 인식해야 한다. 오히려, 상기 상세한 설명은 당업자들에게 본 발명의 일 예시적인 실시예를 구현하기 위한 편리한 지침을 제공할 것이고, 첨부된 청구항들에서 진술된 것처럼 본 발명의 범위를 벗어나지 않고 일 예시적인 실시예에서 설명된 요소들의 기능 및 배열에서의 다양한 변화들이 행해질 수 있음이 이해된다.
102: 비트들 104: 참조 비트들
600: 반도체 메모리 602: 검출 모듈

Claims (19)

  1. ECC 워드를 두번 토글링(toggling)하는 단계;
    상기 ECC 워드를 판독하는 단계; 및
    상기 ECC 워드를 판독하는 단계가 더블 비트 에러를 나타내면 탬퍼링(tampering)이 발생하였음을 나타내는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 ECC 워드는 복수의 참조 비트들과 연관되고, 상기 방법은:
    상기 더블 비트 에러의 검출 시에 상기 참조 비트들을 재설정하는 단계를 추가로 포함하는, 방법.
  3. 제 2 항에 있어서,
    복수의 판독 동작들 각각에 대해 상기 복수의 참조 비트들의 ECC 워드로부터 데이터를 판독하는 단계; 및
    하나 이상의 판독 동작들이 상기 ECC 워드들에서 더블 비트 에러를 식별하면, 탬퍼링이 발생하였음을 나타내는 단계를 추가로 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 토글링하는 단계는 복수의 ECC 워드들을 토글링하는 단계를 포함하고, 상기 판독하는 단계는 상기 ECC 워드들을 판독하는 단계를 포함하고, 상기 나타내는 단계는 상기 ECC 워드들을 판독하는 단계가 더블 비트 에러를 나타내면 탬퍼링이 발생하였음을 나타내는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    복수의 판독 동작 각각에 대해 복수의 참조 비트들의 복수의 ECC 워드들로부터 데이터를 판독하는 단계; 및
    하나 이상의 판독 동작들이 상기 ECC 워드들에서 더블 비트 에러를 식별하면, 탬퍼링이 발생하였음을 나타내는 단계를 추가로 포함하는, 방법
  6. 제 5 항에 있어서,
    더블 비트 에러의 검출 시에 상기 참조 비트들을 재설정하는 단계를 추가로 포함하는, 방법.
  7. 제 5 항에 있어서,
    복수의 기록 동작들 각각에 대해 상기 데이터가 정확함을 검증하기 위해 판독 동작을 수행하는 단계;
    상기 판독 동작이 더블 비트 에러를 나타내면 상기 데이터를 적어도 한번 재기록하는 단계; 및
    에러들이 2번 이상의 재기록들 후에 발생하면, 탬퍼링이 발생하였음을 나타내는 단계를 추가로 포함하는, 방법.
  8. 복수의 참조 비트들의 ECC 워드로부터 데이터를 판독하는 단계; 및
    상기 ECC 워드에 더블 비트 에러가 존재하는지를 결정하는 단계를 포함하는, 방법.
  9. 제 8 항에 있어서,
    복수의 ECC 워드들을 토글링하는 단계를 추가로 포함하고, 상기 판독하는 단계는 상기 ECC 워드들을 판독하는 단계를 포함하고, 상기 결정하는 단계는 상기 ECC 워드들의 판독이 더블 비트 에러를 나타내면 탬퍼링이 발생하였음을 나타내는 단계를 포함하는, 방법.
  10. 제 8 항에 있어서,
    상기 더블 비트 에러의 검출 시에 상기 참조 비트들을 재설정하는 단계를 추가로 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 데이터가 정확함을 검증하기 위해 판독 동작을 수행하는 단계;
    상기 판독 동작이 더블 비트 에러를 나타내면 상기 데이터를 적어도 한번 재기록하는 단계; 및
    더블 비트 에러가 2번 이상의 재기록들 후에 발생하는지를 결정하는 단계를 추가로 포함하는, 방법.
  12. 제 8 항에 있어서,
    상기 ECC 워드를 초기에 두번 토글링하는 단계를 추가로 포함하는, 방법.
  13. 제 12 항에 있어서,
    더블 비트 에러의 검출 시에 상기 참조 비트들을 재설정하는 단계를 추가로 포함하는, 방법.
  14. 메모리 디바이스에 있어서:
    복수의 메모리 디바이스 비트들;
    ECC 워드를 포함하는 복수의 참조 비트들; 및
    검출 모듈로서:
    상기 ECC 워드로부터 데이터를 판독하고;
    더블 비트 에러가 상기 ECC 워드에서 표시되면 템퍼링이 발생하였음을 나타내도록 구성되는, 상기 검출 모듈을 포함하는, 메모리 디바이스.
  15. 제 14 항에 있어서,
    상기 검출 모듈은 또한 상기 ECC 워드로부터 데이터를 판독하기 이전에 상기 ECC 워드를 두번 토글링하도록 구성되는, 메모리 디바이스.
  16. 제 15 항에 있어서,
    상기 검출 모듈은 또한 더블 비트 에러의 검출 시에 상기 참조 비트들을 재설정하도록 구성되는, 메모리 디바이스.
  17. 제 14 항에 있어서,
    상기 검출 모듈은 또한 복수의 판독 동작들 각각에 대해 상기 ECC 워드로부터 데이터를 판독하고;
    하나 이상의 상기 판독 동작들이 더블 비트 에러를 식별하면, 탬퍼링이 발생하였음을 나타내도록 구성되는, 메모리 디바이스.
  18. 제 14 항에 있어서,
    상기 참조 비트들은 복수의 ECC 워드들을 포함하고 상기 검출 모듈은 또한:
    복수의 판독 동작들 각각에 대해 상기 ECC 워드들로부터 데이터를 판독하고;
    하나 이상의 상기 복수의 판독 동작들이 더블 비트 에러를 식별하면, 탬퍼링이 발생하였음을 나타내도록 구성되는, 메모리 디바이스.
  19. 제 18 항에 있어서,
    상기 검출 모듈은 또한 더블 비트 에러의 검출 시에 상기 참조 비트들을 재설정하도록 구성되는, 메모리 디바이스.
KR1020137034683A 2011-05-31 2012-05-31 Mram 장 교란 검출 및 복구 KR101983651B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161491761P 2011-05-31 2011-05-31
US61/491,761 2011-05-31
PCT/US2012/040196 WO2012166910A1 (en) 2011-05-31 2012-05-31 Mram field disturb detection and recovery

Publications (2)

Publication Number Publication Date
KR20140051864A true KR20140051864A (ko) 2014-05-02
KR101983651B1 KR101983651B1 (ko) 2019-05-29

Family

ID=47259850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034683A KR101983651B1 (ko) 2011-05-31 2012-05-31 Mram 장 교란 검출 및 복구

Country Status (5)

Country Link
US (1) US8984379B2 (ko)
EP (1) EP2715541B1 (ko)
KR (1) KR101983651B1 (ko)
CN (1) CN103703447B (ko)
WO (1) WO2012166910A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170052576A (ko) * 2014-09-26 2017-05-12 인텔 코포레이션 메모리와 호스트 시스템 간의 ecc 메타데이터 교환

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014124271A1 (en) * 2013-02-08 2014-08-14 Everspin Technologies, Inc. Tamper detection and response in a memory device
US9218509B2 (en) 2013-02-08 2015-12-22 Everspin Technologies, Inc. Response to tamper detection in a memory device
US10146601B2 (en) 2013-06-12 2018-12-04 Everspin Technologies, Inc. Methods and devices for healing reset errors in a magnetic memory
US10449811B2 (en) 2015-06-15 2019-10-22 Infineon Technologies Ag Tire monitoring system and method
WO2017058111A1 (en) * 2015-09-28 2017-04-06 Agency For Science, Technology And Research Method of error detection in a toggle electric field magnetic random access memory (tef-ram) device and tef-ram device
TWI670717B (zh) * 2016-09-13 2019-09-01 東芝記憶體股份有限公司 記憶裝置及記憶體系統
DE102017124313B4 (de) 2017-10-18 2021-03-18 Infineon Technologies Ag Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
US11621026B2 (en) 2020-12-01 2023-04-04 International Business Machines Corporation Write driver with magnetic field compensation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US20070260962A1 (en) * 2006-05-02 2007-11-08 Wise Loren J Methods and apparatus for a memory device with self-healing reference bits
US20090125787A1 (en) * 2005-10-18 2009-05-14 Noboru Sakimura Operation Method of Mram
US8495438B2 (en) * 2007-12-28 2013-07-23 Texas Instruments Incorporated Technique for memory imprint reliability improvement

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6331943B1 (en) * 2000-08-28 2001-12-18 Motorola, Inc. MTJ MRAM series-parallel architecture
TW200502959A (en) 2003-01-14 2005-01-16 Koninkl Philips Electronics Nv Tamper-resistant packaging and approach using magnetically-set data
US7320100B2 (en) 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7536612B2 (en) 2003-08-29 2009-05-19 International Business Machines Corporation Field spike monitor for MRAM
JP2007513502A (ja) 2003-11-24 2007-05-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 磁界センサを有するmramチップの不均一シールド
DE602004009605T2 (de) 2003-11-24 2008-02-07 Nxp B.V. Verfahren und einrichtung zur verhinderung einer falschen programmierung eines magnetoresistiven speicherelements
US7543211B2 (en) * 2005-01-31 2009-06-02 Everspin Technologies, Inc. Toggle memory burst
US8677221B2 (en) 2008-01-02 2014-03-18 Apple Inc. Partial voltage read of memory
US8255758B2 (en) 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
US8296626B2 (en) * 2008-11-07 2012-10-23 Spansion Llc Error correction for flash memory
US8111544B2 (en) 2009-02-23 2012-02-07 Taiwan Semiconductor Manufacturing Company, Ltd. Programming MRAM cells using probability write
KR101688051B1 (ko) * 2010-11-08 2016-12-20 삼성전자 주식회사 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US20090125787A1 (en) * 2005-10-18 2009-05-14 Noboru Sakimura Operation Method of Mram
US20070260962A1 (en) * 2006-05-02 2007-11-08 Wise Loren J Methods and apparatus for a memory device with self-healing reference bits
US7747926B2 (en) * 2006-05-02 2010-06-29 Everspin Technologies, Inc. Methods and apparatus for a memory device with self-healing reference bits
US8495438B2 (en) * 2007-12-28 2013-07-23 Texas Instruments Incorporated Technique for memory imprint reliability improvement

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170052576A (ko) * 2014-09-26 2017-05-12 인텔 코포레이션 메모리와 호스트 시스템 간의 ecc 메타데이터 교환

Also Published As

Publication number Publication date
WO2012166910A1 (en) 2012-12-06
KR101983651B1 (ko) 2019-05-29
CN103703447A (zh) 2014-04-02
US20120311396A1 (en) 2012-12-06
CN103703447B (zh) 2017-02-08
US8984379B2 (en) 2015-03-17
EP2715541B1 (en) 2017-12-20
EP2715541A1 (en) 2014-04-09
EP2715541A4 (en) 2014-11-26

Similar Documents

Publication Publication Date Title
KR101983651B1 (ko) Mram 장 교란 검출 및 복구
US10019312B2 (en) Error monitoring of a memory device containing embedded error correction
US8504884B2 (en) Threshold voltage techniques for detecting an imminent read failure in a memory array
CN106803429B (zh) 具有用于存储器的故障监测的电子设备及相关联的方法
US10564866B2 (en) Bank-level fault management in a memory system
US20110107160A1 (en) Time-based techniques for detecting an imminent read failure in a memory array
US8949694B2 (en) Address error detection
US9189330B2 (en) Stale data detection in marked channel for scrub
US9965346B2 (en) Handling repaired memory array elements in a memory of a computer system
KR20140105393A (ko) 메모리 회로들, 메모리에 액세스하는 방법 및 메모리를 복구하는 방법
US20180067803A1 (en) Selective error coding
US20070260962A1 (en) Methods and apparatus for a memory device with self-healing reference bits
US9086990B2 (en) Bitline deletion
US9104568B2 (en) Detection of memory cells that are stuck in a physical state
US10140186B2 (en) Memory error recovery
US8595570B1 (en) Bitline deletion

Legal Events

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