KR101793368B1 - 비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템 - Google Patents

비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101793368B1
KR101793368B1 KR1020160034301A KR20160034301A KR101793368B1 KR 101793368 B1 KR101793368 B1 KR 101793368B1 KR 1020160034301 A KR1020160034301 A KR 1020160034301A KR 20160034301 A KR20160034301 A KR 20160034301A KR 101793368 B1 KR101793368 B1 KR 101793368B1
Authority
KR
South Korea
Prior art keywords
look
data
ahead
bit
stored
Prior art date
Application number
KR1020160034301A
Other languages
English (en)
Other versions
KR20160140357A (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 KR20160140357A publication Critical patent/KR20160140357A/ko
Application granted granted Critical
Publication of KR101793368B1 publication Critical patent/KR101793368B1/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/14Implementation of control logic, e.g. test mode decoders
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/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
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • 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/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Detection And Correction Of Errors (AREA)
  • Semiconductor Memories (AREA)

Abstract

메모리 시스템은 데이터 및 오류 정정 코드(ECC) 비트를 저장하도록 구성된 저항성 비휘발성 메모리 어레이 및 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 저장된 룩-어헤드 비트 중 오류의 수를 검출하고, 룩-어헤드 비트 오류의 수를 비트 오류의 임계 수와 비교하고, 룩-어헤드 비트 오류의 수가 임계치와 같거나 초과하면 저항성 비휘발성 메모리 어레이에 저장된 데이터 및 룩-어헤드 비트의 강한 리프레시를 수행하고, 그리고 룩-어헤드 비트 오류의 수가 임계치보다 더 적으면 데이터 비트 오류를 갖는 저장된 데이터의 유닛 및 룩-어헤드 비트 오류를 갖는 룩-어헤드 비트만을 리프레시함으로써 데이터 및 룩-어헤드 비트의 약한 리프레시를 수행하도록 구성된다.

Description

비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템{METHODS AND SYSTEMS FOR DETECTING AND CORRECTING ERRORS IN NONVOLATILE MEMORY}
본 발명은 일반적으로는 비휘발성 메모리에 관한 것이다. 더 구체적으로는, 국한되는 것은 아니지만, 본 명세서에서 설명되는 예의 실시예는 비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템에 관한 것이다.
비휘발성 반도체 메모리는 일반적으로는 전력이 공급되지 않을 때에도 저장된 데이터를 보유한다. 플래시 메모리 및 전기적 소거가능 프로그래밍가능 롬(EEPROM)과 같은 트랜지스터-기반 비휘발성 메모리는 고속 판독 액세스 시간 및 쇼크 내성을 제공하여 그것들이 다양한 애플리케이션에서 바람직하게 한다. 비휘발성 메모리의 일부 애플리케이션은 컴퓨팅 디바이스, 모바일 폰, 휴대용 오디오 플레이어, 및 다른 소비자 전자 제품 상의 데이터 저장소를 포함한다.
도 1은 일례의 트랜지스터-기반 비휘발성 메모리 어레이(100)의 회로 선도를 예시하고 있다. 트랜지스터-기반 비휘발성 메모리 어레이(100)는 복수의 트랜지스터-기반 비휘발성 메모리 셀(110)을 포함한다. 각각의 트랜지스터-기반 비휘발성 메모리 셀(110)은 워드 라인(예컨대, WL0 내지 WLn) 및 비트 라인(예컨대, BL0 내지 BLm)과 연관되어 있다. 트랜지스터-기반 비휘발성 메모리 어레이(100)는 저장 소자로서 하나 이상의 트랜지스터를 사용하여 데이터를 저장하는 비휘발성 메모리에 의해 형성될 수 있다. 트랜지스터-기반 비휘발성 메모리는 프로그래밍가능 롬(PROM), 전기적 프로그래밍가능 롬(EPROM), EEPROM 메모리, 플래시 메모리 또는 eFUSE 메모리를 포함한다.
도 1에 도시된 바와 같이, 트랜지스터-기반 비휘발성 메모리 어레이(100)는 EPROM, EEPROM 또는 플래시 메모리를 사용하여 구현되며, 각각의 트랜지스터-기반 비휘발성 메모리 셀(110)은 부동-게이트 금속-산화막 반도체 전계-효과 트랜지스터(MOSFET)를 포함한다. 부동-게이트 MOSFET(FGMOS)는 전기적으로 격리된 부동 게이트에 전하를 저장할 수 있다. 전기적 격리는 부동 게이트가 전력 없이 확장된 시간 기간 동안 전하를 보유할 수 있게 한다. 완전히 충전된 부동 게이트는 논리 "0" 상태를 표현할 수 있고 충전되지 않은 부동 게이트는 논리 "1" 상태를 표현할 수 있거나, 또는 그 역일 수도 있다.
신생 비휘발성 메모리 기술은 플래시 메모리와 같은 트랜지스터-기반 비휘발성 메모리와 연관된 다양한 제한을 다루도록 개발되고 있다. 예컨대, 가장 상업적으로 이용가능한 플래시 메모리는 비교적 낮은 기록 내구성으로 시달린다. 전형적 플래시 메모리는 1x105 기록 사이클(프로그래밍/소거 사이클이라고도 지칭됨)까지 견딜 능력이 있을 수 있는 반면; 자성 램(MRAM)과 같은 일부 신생 비휘발성 메모리는 1x1012 기록 사이클까지 견딜 능력이 있을 수 있다. 다른 일례로서, 플래시 메모리 어레이는 판독 방해(인근 셀이 시간이 흐르면서 변화하게 야기하는 순차적 판독 사이클) 및 기록 내구성 감축과 같은 스케일링 문제로 시달릴 수 있다.
그렇지만, 신생 비휘발성 메모리는 단점을 갖는다. 예컨대, 높은 동작 온도는 저항성 비휘발성 메모리와 같은 일부 신생 비휘발성 메모리에서는 플리핑된 비트(flipped bit)와 같은 데이터 오류를 야기할 수 있다. 그러한 데이터 오류는 시스템 충돌, 데이터 손상 및/또는 보안 취약성을 초래할 수 있다. 더욱, 신생 비휘발성 메모리가 높은 제조 및 저장 온도를 받게 하는 것은 계통적 데이터 드리프트, 데이터 손실, 유의미한 데이터 손상, 및 데이터 보유 시간 감소와 같은 데이터 보유 문제를 야기할 수 있다.
일례의 실시예에 의하면, 메모리 시스템은 데이터 및 룩-어헤드 비트(look-ahead bit)를 저장하도록 구성된 저항성 비휘발성 메모리 어레이 및 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 저장된 룩-어헤드 비트 중 오류의 수를 결정하고, 룩-어헤드 비트 오류의 수를 비트 오류의 임계 수와 비교하고, 룩-어헤드 비트 오류의 수가 임계치와 같거나 초과하면 저항성 비휘발성 메모리 어레이에 저장된 데이터 및 룩-어헤드 비트의 강한 리프레시를 수행하고, 그리고 룩-어헤드 비트 오류의 수가 임계치보다 더 적을 때 데이터 비트 오류를 갖는 저장된 데이터의 유닛 및 룩-어헤드 비트 오류를 갖는 룩-어헤드 비트만을 리프레시함으로써 데이터 및 룩-어헤드 비트의 약한 리프레시를 수행하도록 구성된다.
다른 일례의 실시예에 의하면, 메모리 시스템에서의 오류를 정정하기 위한 방법은 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 중 오류의 수를 검출하는 단계; 룩-어헤드 비트 오류의 수를 비트 오류의 임계 수와 비교하는 단계; 룩-어헤드 비트 오류의 수가 임계치와 같거나 초과하면 저항성 비휘발성 메모리 어레이에 저장된 데이터 및 룩-어헤드 비트의 강한 리프레시를 수행하는 단계; 및 룩-어헤드 비트 오류의 수가 임계치보다 더 적으면 데이터 비트 오류를 갖는 저장된 데이터의 유닛 및 룩-어헤드 비트 오류를 갖는 룩-어헤드 비트만을 리프레시함으로써 데이터 및 룩-어헤드 비트의 약한 리프레시를 수행하는 단계를 포함한다.
또 다른 일례의 실시예에 의하면, 메모리 시스템은 비휘발성 메모리 어레이를 포함한다. 비휘발성 메모리 어레이는 데이터를 저장하도록 구성된 저항성 메모리 셀, 저장된 데이터의 유닛에서의 데이터 비트 오류를 정정하기 위한 오류 정정 코드(ECC) 비트로서의 ECC 비트를 저장하도록 구성된 저항성 메모리 셀, 및 저장된 데이터의 계통적 드리프트(systematic drift)를 검출하기 위한 룩-어헤드 비트로서의 룩-어헤드 비트를 저장하도록 구성된 저항성 메모리 셀을 포함한다.
본 발명의 소정 실시예를 상세하게 설명하기 전에, 본 발명은 이하의 설명에서 제시되거나 도면에서 예시되는 컴포넌트의 배열 및 구성의 상세로 그 적용이 한정되지는 않음을 이해하여야 한다. 본 발명은 설명된 것들에 부가하는 실시예가 가능하고 다양한 방식으로 실시 및 수행될 수 있다. 또한, 요약에서뿐만 아니라 본 명세서에서 채용되는 어구 및 술어는 설명의 목적을 위한 것이며 한정적인 것으로 간주되어서는 안 됨을 이해하여야 한다.
그와 같이, 당업자는 본 발명이 기반하는 개념 및 특징이 본 발명의 수개의 목적을 수행하기 위한 다른 구조, 방법 및 시스템을 설계하기 위한 기초로서 쉽게 이용될 수 있음을 인식할 것이다. 더욱, 청구범위는 그러한 균등 구성을, 그것들이 본 발명의 취지 및 범위로부터 벗어나지 않는 한, 포함하는 것으로 간주되어야 한다.
본 명세서에 편입되어 그 일부분을 이루고 있는 수반 도면은, 그 설명과 함께, 다양한 대표적 실시예의 원리를 예시하고 설명하는 역할을 한다.
도 1은 일례의 트랜지스터-기반 비휘발성 메모리 어레이의 회로 선도;
도 2는 본 발명과 일관된 실시예를 구현하기 위한 일례의 저항성 비휘발성 메모리 어레이의 회로 선도;
도 3은 본 발명과 일관된 실시예를 구현하기 위한 일례의 저항성 비휘발성 메모리 어레이의 블록 선도;
도 4는 본 발명과 일관된 실시예를 구현하기 위한 일례의 메모리 시스템의 블록 선도;
도 5는 본 발명의 실시예와 일관된 메모리 시스템에서의 오류를 정정하기 위한 일례의 방법을 묘사하는 순서도;
도 6은 본 발명의 실시예와 일관된 메모리 시스템에서의 오류를 정정하기 위한 다른 일례의 방법을 묘사하는 순서도;
도 7은 본 발명의 실시예와 일관된 강한 리프레시 연산을 수행하기 위한 일례의 방법을 묘사하는 순서도;
도 8은 본 발명의 실시예와 일관된 약한 리프레시 연산을 수행하기 위한 일례의 방법을 묘사하는 순서도; 및
도 9는 본 발명의 실시예와 일관된 정규 판독 연산과 마진 판독 연산 간 비교의 예시도.
본 발명의 실시예는 신생 비휘발성 메모리에서 오류의 검출 및 정정을 위한 개선된 방법 및 시스템을 제공한다. 많은 신생 비휘발성 메모리는 기록 속도 및 내구성, 전력 소모, 데이터 보유, 데이터 보안, 및 바이트-레벨 랜덤 액세스의 관점에서 트랜지스터-기반 비휘발성 메모리보다 유의미한 이점을 갖는다. 그렇지만, 저항성 비휘발성 메모리와 같은 일부 신생 비휘발성 메모리는 고온 및/또는 전자기 간섭(EMI)에 기인하여 데이터 보유 및 손상 문제에 취약할 수 있다. 저항성 비휘발성 메모리는, 예컨대, 여러 다른 저항 상태를 사용하여 데이터를 저장하는 어느 비휘발성 메모리라도 포함할 수 있다. 저항성 비휘발성 메모리의 예는 상-변화 램(PCRAM), 자성 램(MRAM), 도전성-브리징 램(CBRAM)과 같은 PMC(programmable metallization cell) 메모리, 및 저항성 램(RRAM)을 포함한다.
PCRAM은 칼코게나이드-기반 재료의 비정질 상과 결정질 상 간 저항 차이를 사용함으로써 데이터를 저장한다. 비정질 상은 고-저항 상에 대응하고 결정질 상은 저-저항 상에 대응한다. MRAM은 여러 다른 저항 상태 간 스위칭하도록 2개의 강자성 층 간 터널 배리어 층을 사용함으로써 데이터를 저장한다. 저-저항 상태는 2개의 강자성 층의 자화 방향이 평행일 때 달성된다. 고-저항 상태는 2개의 강자성 층의 자화 방향이 역평행일 때 달성된다. CBRAM 셀은 2개의 고체 금속 전극 간 전해질의 박막을 포함한다. CBRAM 셀은 전해질 막에서 금속 전극들 간 나노와이어를 형성함으로써 여러 다른 저항 상태에서 데이터를 저장한다. 나노와이어의 부재는 고-저항 상태에 대응하고 나노와이어의 존재는 저-저항 상태에 대응한다. RRAM은 전이 금속 산화물에서 저항성 스위칭에 기반하여 2개 이상의 저항 상태로서 데이터를 저장한다. CBRAM 셀과 유사하게, RRAM 셀은 금속-절연체-금속 구조를 포함한다. 여러 다른 논리 상태는 절연체 층에서 도전 결함 트레일("필라멘트"라고도 지칭됨)을 산출함으로써 표현된다. 필라멘트의 부재는 고-저항 상태에 대응하고 필라멘트의 존재는 저-저항 상태에 대응한다. 다양한 저항성 메모리의 각각의 고저항 상태 및 저저항 상태는 제1 및 제2 논리값, 예컨대, "0" 및 "1"을 표현하는 데이터를 저장하는 역할을 한다.
비휘발성 메모리는 다양한 온도 범위 내에서 동작하도록 레이팅될(rated) 수 있다. 예컨대, 비휘발성 메모리는 0 내지 85℃(상업용 레이팅), -40 내지 125℃(산업용/자동차용 레이팅) 또는 -55 내지 125℃(군사용 레이팅)의 주변 온도 내에서 동작하도록 레이팅될 수 있다. 저장 온도 레이팅은 전형적으로 150℃까지의 범위에 이른다. 비휘발성 메모리는 또한 IC 기판 실장 동안 고온을 경험할 수 있다. 예컨대, 전형적 웨이브 솔더 프로세스는 250℃까지의 온도에 도달할 수 있다. 저항성 비휘발성 메모리는 이들 동작 범위의 상위 부분 근처에서는 저하된 성능을 경험할 수 있다. 예컨대, 저항성 비휘발성 메모리 셀에서는 높은 주변 동작 온도에서 비트 플리핑과 같은 데이터 오류가 일어날 수 있다. 더욱, 웨이브 솔더링 프로세스에 의해 야기되는 것과 같은 고온에 노출 전에 저항성 비휘발성 메모리에 기록된 데이터는 계통적 데이터 드리프트 및 데이터 보유 시간 감소와 같은 유의미한 데이터 오류를 경험할 수 있다.
본 발명의 실시예는 저항성 비휘발성 메모리에서의 고온 메모리 연산 및 데이터 보유에서 개선점을 제공하여, 그로써 그러한 메모리를 구체화하는 시스템 및/또는 집적 회로(IC)에서 성능 개선을 가능하게 한다. 본 발명의 실시예는 오류 정정 코드(ECC)를 사용하여 그 저장된 데이터를 갱신하도록 구성되는 저항성 비휘발성 메모리를 제공한다. 데이터 갱신은, 파워업 초기화 또는 유휴 모드 동안, 또는 시스템 커맨드에 응답하여서와 같이, 메모리 시스템 동작의 다양한 포인트에서 수행된다. 데이터 갱신은 저장된 데이터를 판독하고, 정정하고, 다시 기록함으로써 수행될 수 있다. 일부 실시예는 불충분한 ECC 비트 또는 계통적 데이터 드리프트의 경우에 더 강한 다시 기록이 수행되는 강화된 데이터 갱신을 위해 제공된다. 강화된 데이터 갱신은 기판 실장 및/또는 고온 저장 후에 메모리 마진이 회복되도록 저항성 메모리에 저장된 데이터 전체를 리프레시할 수 있다. 다른 실시예는 데이터 갱신 기술의 조합을 제공할 수 있다.
본 발명에 따라 구현된 대표적 실시예를 이제 상세히 참조할 것이며, 그 예는 수반 도면에 예시된다. 가능한 곳 어디에서라도, 동일한 참조 번호는 도면 곳곳에서 동일 또는 유사한 부분을 지칭하도록 사용될 것이다.
도 2는 본 발명과 일관된 실시예를 구현하기 위한 일례의 저항성 비휘발성 메모리 어레이(200)의 회로 선도를 예시하고 있다. 저항성 비휘발성 메모리 어레이(200)는, PCRAM, RRAM, MRAM 또는 CBRAM과 같은, 위에서 설명된 저항성 비휘발성 메모리 중 어느 것이라도 사용하여 형성될 수 있다. 더욱, 저항성 비휘발성 메모리 어레이(200)는 2-차원 메모리 어레이 또는 3-차원 메모리 어레이를 포함할 수 있다.
도 2에 도시된 바와 같이, 저항성 비휘발성 메모리 어레이(200)는 복수의 워드 라인(WL0 내지 WLn), 비트 라인(BL0 내지 BLm) 및 저항성 메모리 셀(210)을 포함한다. 각각의 저항성 메모리 셀(210)은 소정 워드 라인 및 소정 비트 라인과 연관되어 있다. 각각의 저항성 메모리 셀(210)은 선택 소자(212) 및 저항성 저장 소자(214)를 포함한다. 저항성 메모리 셀(210)은, PCRAM 셀, RRAM 셀, MRAM 셀 또는 CBRAM 셀과 같은, 위에서 설명된 저항성 비휘발성 메모리 중 어느 것에 의해서라도 구현될 수 있다. 선택 소자(212)는 저항성 메모리 셀(210)로의 액세스를 제어하도록 선택 스위치로서 거동한다. 선택 소자(212)는, 예컨대, 다이오드, 금속-산화막 반도체 전계-효과 트랜지스터(MOSFET) 또는 바이폴라 접합 트랜지스터(BJT)에 의해 구현될 수 있다. 일부 실시예에 있어서, 선택 소자(212)는, 예컨대 저항성 메모리 셀(210)이 RRAM 셀에 의해 구현되는 경우, 선택사항일 수 있다.
도 3은 본 발명과 일관된 실시예를 구현하기 위한 저항성 비휘발성 메모리 어레이(200)의 블록 선도를 예시하고 있다. 도 3에 도시된 바와 같이, 저항성 비휘발성 메모리 어레이(200)는 복수의 셀 유형을 포함한다. 예컨대, 데이터 셀(310)은 데이터 비트를 저장하도록 구성된다. 각각의 데이터 셀(310)은 하나 이상의 데이터 비트를 저장한다. 데이터 비트는, 페이지, 블록, 섹터, 워드, 또는 당업계에 알려져 있는 어느 다른 저장 구성과 같은, 다양한 저장 유닛으로 기록 및 액세스될 수 있다. 각각의 저장 유닛은 어느 수의 데이터 비트라도 포함할 수 있다.
일부 실시예에 있어서, 저항성 비휘발성 메모리 어레이(200)는 ECC 셀(320)을 포함한다. 각각의 ECC 셀(320)은 데이터 셀(310) 및 룩-어헤드 셀(330)에 저장된 결함 있는 데이터 비트 또는 오류를 검출 및 정정하기 위한 ECC 비트(또는 비트들)를 저장하도록 구성된다. 오류는, 예컨대, EMI, 고온 연산, 고온 저장, 기판 실장 웨이브 솔더 온도 등에 의해 야기되는 소프트 오류일 수 있다. 소프트 오류는 전형적으로는 과도적이고 항상 반복되지는 않는다. 오류는 메모리 셀에서의 하드웨어 결함에 의해 야기되는 하드 오류일 수 있다. 하드 오류는 전형적으로는 반복될 수 있고 틀린 결과를 일관되게 반환한다. 저장된 ECC 비트는 해밍 코드(Hamming code), BCH(Bose, Chaudhuri, Hocquenghem) 코드, 패리티 비트, 리드-솔로몬 코드(Reed-Solomon code), 터보 코드, 저-밀도 패리티-체크 코드(LDPC), 컨벌루션 코드, 또는 당업계에 알려져 있는 어느 다른 오류 정정 코드를 포함할 수 있다.
ECC 셀(320)에 저장된 ECC 비트의 수는 ECC 코딩 기법에 의존한다. ECC 코딩 기법은 저장된 데이터의 저장 유닛당(예컨대, 페이지당, 블록당, 섹터당, 워드당, 바이트당, 비트당 등) 소정 수의 ECC 비트를 할당할 수 있다. 예컨대, 16개의 데이터 워드가 데이터 셀(310)에 저장되고 ECC 코딩 기법이 데이터 워드당 4개의 ECC 비트를 할당하는 경우, ECC 셀(320)에 저장된 총 ECC 비트의 수는 64이고, ECC 셀(320)당 하나 이상의 ECC 비트이다. 각각의 저장 유닛에 할당된 ECC 비트의 수는 융통성이 있을 수 있고 설계 요건, 시스템 능력, 타이밍 및 처리량 요건 등에 의존할 수 있다. 저장된 ECC 비트에 의해 정정가능한 데이터 비트 오류의 수는 i가 각각의 저장 유닛에 할당된 ECC 비트의 수인 경우 i-1로서 결정된다. 예컨대, ECC 셀(320)이 데이터 워드당 3개의 ECC 비트를 저장하는 경우, 3개의 ECC 비트는 데이터 워드당 2개의 데이터 비트 오류를 정정할 수 있다.
일부 실시예에 있어서, 저항성 비휘발성 메모리 어레이(200)는 또한 룩-어헤드 셀(330)을 포함한다. 룩-어헤드 셀(330)은 데이터 셀(310)에 저장된 데이터의 실질적 데이터 손상 또는 계통적 데이터 드리프트를 검출하기 위한 룩-어헤드 비트를 저장하도록 구성된다. 각각의 룩-어헤드 셀(330)은 하나 이상의 룩-어헤드 비트를 저장하도록 구성된다. 룩-어헤드 셀(330)에 저장된 룩-어헤드 비트는, 예컨대, 저항성 비휘발성 메모리 어레이(200)의 고온 저장, 기판 실장 웨이브 솔더 온도 또는 EMI에 기인하는 계통적 드리프트 또는 데이터 손상의 표시자로서 역할한다. 환언하면, 저장된 룩-어헤드 비트에서의 유의미한 오류의 존재는 데이터 셀(310)에 저장된 데이터도 유의미한 오류를 포함하고 있음을 나타낼 가능성이 있다.
룩-어헤드 셀(330)에 저장된 룩-어헤드 비트의 수는 저항성 비휘발성 메모리 어레이(200)에 포함된 메모리 셀의 총 수, 데이터 셀(310)에 저장된 데이터 비트의 총 수, 메모리 시스템 신뢰도의 중요성, 계통적 드리프트 검출에 할당가능한 메모리 시스템 처리량의 양 등과 같은 여러 인자에 의존한다. 룩-어헤드 셀(330)에 저장된 룩-어헤드 비트의 총 수의 예는 16 비트 또는 32 비트를 포함한다. 룩-어헤드 셀(330)에 저장된 룩-어헤드 비트의 총 수는 데이터 셀(310)에 저장된 데이터 비트의 수에 비해 작을 수 있다. 따라서, 다수의 데이터 비트의 품질에 대한 프록시로서 작은 수의 룩-어헤드 비트를 사용하는 것은 메모리 시스템 효율을 개선하고 오류 검출에 필요한 메모리 시스템 자원의 양을 감축한다.
일부 실시예에 있어서, 데이터 셀(310), ECC 셀(320) 및/또는 룩-어헤드 셀(330)은 셀당 다수의 비트를 저장하도록 구성된다. 예컨대, 멀티-레벨 셀이 저항성 메모리 어레이(200)에서 사용될 수 있다. 멀티-레벨 셀은 2개 이상의 데이터 비트를 저장하도록 3개 이상의 다른 저항 상태를 사용한다. 예컨대, 4개의 다른 저항 상태를 갖는 멀티-레벨 셀이 2 비트를 저장하며, 각각의 비트는 논리 "0" 및 "1"을 표현하도록 2개의 저항 상태를 사용할 수 있다. 그렇지만, 셀당 저장되는 비트의 수를 증가시키는 것은 더 큰 비트 오류율을 초래하고 그리하여 그들 오류를 정정하도록 저장 유닛당 더 많은 수의 ECC 비트를 요건으로 할 수 있다.
데이터 셀(310), ECC 셀(320) 및 룩-어헤드 셀(330)은 동일한 저항성 비휘발성 메모리 어레이(200)에 포함되거나, 동일한 반도체 다이 상에 형성된 여러 다른 저항성 비휘발성 메모리 어레이(200)에 저장되거나, 동일한 집적 회로(IC) 패키지에 포함된 별개의 반도체 다이 상에 형성된 여러 다른 저항성 비휘발성 메모리 어레이(200)에 저장되거나, 별개의 IC 패키지에 포함된 별개의 반도체 다이 상에 형성된 여러 다른 저항성 비휘발성 메모리 어레이(200)에 저장되거나 등일 수 있다.
도 4는 본 발명과 일관된 실시예를 구현하기 위한 일례의 메모리 시스템(400)의 블록 선도를 예시하고 있다. 도 4에 도시된 바와 같이, 메모리 시스템(400)은 저항성 비휘발성 메모리 어레이(200) 및 메모리 컨트롤러(410)를 포함한다. 이들 컴포넌트의 수 및 배열은 단지 대표적인 것일 뿐이고 예시의 목적으로 제공됨을 본 개시로부터 인식할 것이다. 컴포넌트의 다른 배열 및 수가 본 발명의 교시 및 실시예로부터 벗어남이 없이 이용될 수 있다. 일례로서, 메모리 컨트롤러(410) 및 저항성-기반 비휘발성 메모리 어레이(200)는 동일한 반도체 다이 상에, 동일한 IC 패키지에 포함된 별개의 반도체 다이 상에, 별개의 IC 패키지에 포함된 별개의 반도체 다이 상에, 또는 당업계에 알려져 있는 어느 구성으로라도 형성될 수 있다. 다른 일례로서, 메모리 컨트롤러(410)는 다수의 저항성 비휘발성 메모리 어레이(200) 또는 트랜지스터-기반 비휘발성 메모리 어레이와 저항성 비휘발성 메모리 어레이(200)의 조합을 제어할 수 있다.
일부 실시예에 있어서, 메모리 컨트롤러(410)는 입/출력 인터페이스(I/O)(411), 행 디코더(워드 라인 디코더라고도 지칭됨)(412), 열 디코더(413), 감지 증폭기 및 기록 드라이버(414), 오류 정정 코드(ECC) 컨트롤러(415) 및 룩-어헤드 컨트롤러(416)를 포함한다. 메모리 컨트롤러(410)에 포함된 컴포넌트(411 내지 416)는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 예컨대, 컴포넌트(411 내지 416)는 마이크로프로세서, 주문형 반도체(ASIC), 프로그래밍가능 게이트 어레이(PGA) 또는 필드-프로그래밍가능 게이트 어레이(FPGA), 전기 회로, 또는 그 어느 조합에 의해서라도 구현될 수 있다. 더욱, 컴포넌트(411 내지 416)의 기능 중 일부 또는 전부는 동일한 하드웨어/소프트웨어 조합에 의해 수행될 수 있다. 예컨대, ECC 컨트롤러(415) 및 룩-어헤드 컨트롤러(416)의 기능은 동일한 마이크로프로세서, ASIC, PGA, FPGA, CPLD 또는 커스텀 논리 회로에 의해 수행될 수 있고, 모든 컨트롤러가 동일한 기록 알고리즘을 공유할 수도 있고 그렇지 않을 수도 있다.
I/O(411)는 외부 소스로부터 입력 신호를 수신하고 그 입력 신호를 그것들이 메모리 컨트롤러(410)에 포함된 컴포넌트에 의해 이해 및 수락될 수 있도록 변환한다. 예컨대, I/O(411)는 판독 커맨드, 기록 커맨드, 데이터 갱신 커맨드 등과 같은 커맨드를 수신할 수 있다.
정규 판독 연산에서, I/O(411)는 행 및 열 좌표를, 각각, 행 디코더(412) 및 열 디코더(413)에 송신한다. 행 디코더(412)는 행 좌표를 디코딩하고 감지 전압을 대응하는 워드 라인에 제공한다. 감지 전압은 워드 라인에 접속된 각각의 저항성 메모리 셀(210)의 선택 소자(212)를 활성화한다. 열 디코더(413)는 열 좌표를 디코딩하고 대응하는 비트 라인을 감지 증폭기 및 기록 드라이버(414)에 접속시킨다. 감지 증폭기 및 기록 드라이버(414)는 판독 회로 및 기록 회로를 포함한다. 판독 회로는 적합한 워드 라인/비트 라인 교차부에서 저항성 메모리 셀(210)을 통하는 전류를 측정하고 측정된 전류에 대응하는 논리값을 결정한다. 판독 사이클 동안, 메모리 셀 전류는 임계 전류 값(전형적으로는 감지 전류라고 지칭됨)의 어느 일측 상에 분포된다. 임계 값보다 더 큰 전류 값은 논리 "0"에 대응하고 임계 값보다 더 작은 전류 값은 논리 "1"에 대응하거나, 또는 그 역이다. 따라서, 감지 증폭기 및 기록 드라이버(414)는 저항성 메모리 셀(210)을 통하는 전류를 측정하고, 측정된 전류를 하나 이상의 임계 전류 값과 비교하고, 측정된 전류가 임계 전류 값보다 더 큰지 더 작은지에 기반하여 논리값을 식별한다. 감지 증폭기 및 기록 드라이버(414)는 판독 연산으로부터의 출력으로서 I/O(411)에 식별된 논리값을 제공한다. I/O(411)는 출력을 외부 수신지에 송신하거나 또는 외부 소스에 의해 요청될 때까지 그 출력을 붙잡고 있는다. 일부 실시예에 있어서, 동일한 활성화된 워드 라인과 연관된 복수의 저항성 메모리 셀(210)은 단일 판독 연산으로 판독될 수 있다. 행 디코더(412)가 대응하는 워드 라인에 감지 전압을 제공하면, 그 워드 라인 상의 각각의 저항성 메모리 셀(210)이 활성화된다. 그리하여, 판독 회로는 그들 셀과 연관된 비트 라인 상의 각각의 활성화된 저항성 메모리 셀(210)을 통하는 전류를 측정한다.
일부 실시예에 있어서, 메모리 컨트롤러(410)는 더 큰 메모리 신뢰도 및 판독 정밀도가 요망될 때 메모리 셀(210) 상에 마진 판독 연산(margin read operation)을 수행한다. 예컨대, 메모리 컨트롤러(410)는 룩-어헤드 셀(330)로부터 판독할 때 마진 판독 연산을 수행한다. 룩-어헤드 비트는 다수의 데이터 비트의 품질에 대한 프록시로서 역할하므로, 마진 판독은 룩-어헤드 비트 품질에서의 저하(및 그래서 데이터 손상이 임박함)의 검출을 개선하도록 사용된다. 다른 일례로서, 메모리 컨트롤러(410)는 데이터 셀(310)이 성공적으로 리프레시되었음을 검증하기 위해 (도 7 및 도 8을 참조하여 아래에서 설명되는) 강한 또는 약한 리프레시 연산 후에 데이터 셀(310) 상에 마진 판독 연산을 수행한다.
단일 임계 전류 값을 사용하는 대신에, 감지 증폭기 및 기록 드라이버(414)는 마진 판독 연산 동안 복수의 임계 전류 값과 측정된 전류를 비교함으로써 측정된 전류에 대응하는 논리값을 결정한다. 임계 전류 값은 상위 임계 전류 값 및 하위 임계 전류 값을 포함한다. 상위 및 하위 임계 전류 값은 정규 임계 전류 값의 어느 일측 상에 분포된다. 예컨대, 정규 기록 사이클의 임계 전류 값이 25㎂로서 선택되는 경우, 상위 및 하위 임계 전류 값은, 각각, 40㎂ 및 10㎂로서 선택될 수 있다. 상위 임계 전류 값보다 더 큰 측정된 전류 값은 논리 "0"에 대응하고 하위 임계 전류 값보다 더 작은 측정된 전류 값은 논리 "1"에 대응하거나, 또는 그 역이다.
정규 기록 연산에서, I/O(411)는 외부 소스로부터의 데이터 및 데이터가 저장되게 되는 저항성 메모리 셀(210) 주소를 수신한다. I/O(411)는 주소를 행 및 열 좌표로 변환하고 그 좌표를, 각각, 행 디코더(412) 및 열 디코더(413)에 보낸다. 행 디코더(412)는 행 좌표를 디코딩하고 기록 전압을 대응하는 워드 라인에 제공한다. 열 디코더(413)는 열 좌표를 디코딩하고 대응하는 비트 라인을 감지 증폭기 및 기록 드라이버(414)에 접속시킨다. I/O(411)는 활성화된 워드 라인 및 비트 라인의 교차부에 위치하는 저항성 메모리 셀(210)에 "0" 또는 "1" 중 어느 하나를 기록하라는 명령어를 감지 증폭기 및 기록 드라이버(414)에 송신한다. 감지 증폭기 및 기록 드라이버(414)의 기록 회로는 저장되게 되는 것이 "1"인지 "0"인지에 의존하여 저항성 소자(212)의 저항을 고-저항 상태 또는 저-저항으로 변화시킨다.
일부 실시예에 있어서, 메모리 컨트롤러(410)는 ECC 컨트롤러(415)를 포함한다. ECC 컨트롤러(415)는 데이터 셀(310)에 저장된 데이터 중 데이터 비트 오류 및 룩-어헤드 셀(330)에 저장된 비트 중 룩-어헤드 비트 오류를 검출한다. 위에서 설명된 기록 연산에서, ECC 컨트롤러(415)는 저항성 메모리 셀(210)에 기록되게 되는 데이터에 대응하는 ECC 비트를 발생시킨다. ECC 컨트롤러(415)는 저항성 메모리 셀(210)에 기록되게 되는 룩-어헤드 비트에 대응하는 ECC 비트를 또한 발생시킨다. 데이터 또는 룩-어헤드 비트의 각각의 저장 유닛에 대해 발생되는 ECC 비트의 수는 위에서 설명된 ECC 코딩 기법 중 하나에 따라 결정된다. 발생된 ECC 비트는 ECC 컨트롤러(415)로부터 감지 증폭기 및 기록 드라이버(414)로 송신된다. 감지 증폭기 및 기록 드라이버(414)의 기록 회로는 데이터를 데이터 셀(310)에, 룩-어헤드 비트를 룩-어헤드 셀(330)에, 그리고 발생된 ECC 비트를 ECC 셀(320)에 기록한다.
위에서 설명된 판독 연산에서, ECC 컨트롤러(415)는 데이터 셀(310)에 저장된 데이터 및 ECC 셀(320)에 저장된 대응하는 ECC 비트를 판독한다. ECC 컨트롤러(415)는 판독된 데이터 상에 오류 검출을 수행하여 데이터 비트 오류를 검출하도록 ECC 비트를 사용한다. 일 실시예에 있어서, ECC 컨트롤러(415)는 데이터의 저장 유닛당 데이터 비트 오류의 수를 결정한다. 저장 유닛당 데이터 비트 오류의 수가 저장 유닛에 대응하는 ECC 비트의 수보다 더 적으면, ECC 컨트롤러(415)는 데이터 비트 오류를 정정하도록 ECC 비트를 사용한다. ECC 컨트롤러(415)는 정정된 데이터를 감지 증폭기 및 기록 드라이버(414)에 송신하고 기록 회로는 그 데이터를 다시 각각의 데이터 셀(310) 및 ECC 셀(320)에 기록한다. 일부 실시예에 있어서, 기록 회로는, 정정된 데이터 비트를 포함하는, 데이터의 저장 유닛 전체를 데이터 셀(310)에 기록한다. 다른 실시예에 있어서, 기록 회로는 정정된 비트만을 데이터 셀(310)에 기록한다.
일부 실시예에 있어서, 메모리 컨트롤러(410)는 룩-어헤드 컨트롤러(416)를 포함한다. 룩-어헤드 컨트롤러(416)는 데이터 셀(310)에 저장된 데이터의 유의미한 데이터 손상 및/또는 계통적 데이터 드리프트를 검출한다. 예컨대, 룩-어헤드 컨트롤러(416)는 룩-어헤드 셀(330)에 저장된 룩-어헤드 비트 및 ECC 셀(320)에 저장된 대응하는 ECC 비트를 판독하고, ECC 비트를 사용하여 룩-어헤드 셀(330)에 저장된 룩-어헤드 비트 오류의 수를 결정한다. 룩-어헤드 비트 오류의 수가 비트 오류의 임계 수와 같거나 초과하면, 룩-어헤드 컨트롤러(416)는 데이터 셀(310)에 저장된 데이터의 강한 리프레시를 개시한다. 룩-어헤드 비트 오류의 일례의 임계 수는 룩-어헤드 셀(330)에 저장된 룩-어헤드 비트의 50%일 수 있다. 그리하여, 본 예에 있어서, 룩-어헤드 셀(330)에 저장된 32 룩-어헤드 비트가 있을 때, 룩-어헤드 비트 오류의 수가 16 비트보다 크거나 같다고 룩-어헤드 컨트롤러(416)가 결정하면 룩-어헤드 컨트롤러(416)는 강한 리프레시를 개시한다.
강한 리프레시는 저항성 비휘발성 메모리 어레이(200)에 저장된 데이터 및 룩-어헤드 비트 전부를 판독해 내는 것, 어느 정정가능한 비트 오류라도 정정하는 것, 정정불가능한 오류를 갖는 어느 비트라도 교체하는 것, 및 모든 데이터 및 룩-어헤드 비트(정정된 비트 및 교체된 비트를 포함함)를 다시 저항성 비휘발성 메모리 어레이(200)에 기록하는 것을 포함한다. 구체적으로, 오류를 갖고 있지 않는 데이터 및 룩-어헤드 비트 역시 강한 리프레시 연산에서 리프레시된다. 저장된 룩-어헤드 비트가 유의미한 오류를 포함하고 있고, 그로써 데이터 셀(310)에 저장된 데이터도 유의미한 오류를 포함하고 있을 가능성이 있다고 나타낼 때, 오류를 갖고 있지 않는 데이터 및 룩-어헤드 비트 역시 유의미한 메모리 셀 마진을 잃었을 수 있고 그래서 실패에 가까울 수 있다. 따라서, 강한 리프레시 연산은 데이터 및 룩-어헤드 비트를 저장하고 있는 메모리 셀 내 마진을 복원하기 위해 저항성 비휘발성 메모리 어레이(200)에 저장된 데이터 및 룩-어헤드 비트 전체를 리프레시한다. 강한 리프레시 연산은 도 7을 참조하여 아래에서 더 상세히 논의된다.
룩-어헤드 비트 오류의 수가 오류의 임계 수보다 더 적으면, 룩-어헤드 컨트롤러(416)는 데이터 셀(310)에 저장된 데이터의 약한 리프레시를 개시한다. 약한 리프레시는 저항성 비휘발성 메모리 어레이(200)에 저장된 데이터 및 룩-어헤드 비트 전부를 판독해 내는 것, 어느 정정가능한 비트 오류라도 정정하는 것, 정정불가능한 오류를 갖는 어느 비트라도 교체하는 것, 및 정정된/교체된 데이터 및 룩-어헤드 비트만을 다시 저항성 비휘발성 메모리 어레이(200)에 기록하는 것을 포함한다. 따라서, 저장된 룩-어헤드 비트가 유의미한 오류를 포함하고 있지 않을 때, 리프레시 연산을 수행하는데 사용된 메모리 시스템 자원은 데이터 및 룩-어헤드 비트의 저항성 비휘발성 메모리 어레이(200) 전체 대신에 정정된/교체된 데이터 및 룩-어헤드 비트만을 기록함으로써 최소화될 수 있다. 약한 리프레시 연산은 도 8을 참조하여 아래에서 더 상세히 논의된다.
도 5는 본 발명의 일부 실시예 및 태양과 일관된 일례의 방법(500)의 순서도를 묘사하고 있다. 방법(500)은, 예컨대, 저항성 비휘발성 메모리에서의 오류를 검출 및 정정하도록 구현될 수 있다. 일부 실시예에 있어서, 방법(500)은, 예컨대, 도 4에 예시된 메모리 시스템(400)과 같은 메모리 시스템에 의해 구현될 수 있다.
일부 실시예에 있어서, 예시의 방법(500)은 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 상에 마진 판독 연산을 수행하는 단계(510)를 포함한다. 메모리 시스템에 포함된 메모리 컨트롤러(예컨대, 도 4의 메모리 컨트롤러(410))는 도 4를 참조하여 위에서 설명된 마진 판독 연산을 사용하여 저항성 메모리 어레이(예컨대, 도 2 내지 도 4의 저항성 메모리 어레이(200))의 메모리 셀에(예컨대, 도 3의 룩-어헤드 셀(330)에) 저장된 룩-어헤드 비트를 판독한다. 메모리 컨트롤러는 페이지, 블록, 섹터, 워드, 또는 당업계에 알려져 있는 어느 다른 저장 유닛과 같은 다양한 저장 유닛으로 룩-어헤드 비트를 판독한다. 각각의 저장 유닛은 어느 수의 룩-어헤드 비트라도 포함할 수 있다.
일부 실시예에 있어서, 예시의 방법(500)은 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 중 오류의 수를 결정하는 단계(520)를 포함한다. 메모리 컨트롤러는 저항성 메모리 어레이의 메모리 셀(예컨대, 도 3의 ECC 셀(320))에 저장된 ECC 비트를 판독하고 그 저장된 ECC 비트를 사용하여 룩-어헤드 비트에서의 오류를 검출한다. 메모리 컨트롤러는 어느 룩-어헤드 비트가 고온 또는 EMI에 기인하여 (예컨대, 논리 "1"로부터 논리 "0"으로 그리고 그 역으로) 논리 상태를 플리핑하였는지 결정함으로써 오류를 검출한다. 저장된 ECC 비트는 해밍 코드, BCH 코드, 패리티 비트, 리드-솔로몬 코드, 터보 코드, 저-밀도 패리티-체크 코드(LDPC), 컨벌루션 코드, 또는 당업계에 알려져 있는 어느 다른 오류 정정 코드를 포함할 수 있다.
일부 실시예에 있어서, 메모리 컨트롤러는 저장된 룩-어헤드 비트를 패턴과 비교함으로써 저장된 룩-어헤드 비트 중 오류를 검출한다. 메모리 컨트롤러는 교번 논리 상태(예컨대, 01010101)의 체커보드 패턴과 같은 수많은 패턴 중 하나로 저항성 메모리 어레이에 룩-어헤드 비트를 기록한다. 메모리 컨트롤러는 패터닝된 룩-어헤드 비트를 판독하고 그것들을 예상된 패턴과 비교하도록 더 프로그래밍된다. 오류는 룩-어헤드 비트에서 판독해 낸 패턴이 예상된 패턴과 매칭하지 않을 때 발생한다.
메모리 컨트롤러는 메모리 시스템 동작의 다양한 단계 동안 룩-어헤드 비트 오류의 수를 결정한다. 예컨대, 메모리 컨트롤러는 판독 사이클 동안, 메모리 시스템의 파워업에 응답하여, 메모리 시스템의 유휴 모드 동안, 또는 수신된 커맨드에 응답하여 룩-어헤드 비트 오류의 수를 결정할 수 있다. 유휴 모드의 경우에 있어서, 메모리 컨트롤러는 단일 유휴 모드 동안 또는 미리 결정된 수의 유휴 모드 동안 룩-어헤드 비트 오류의 수를 결정할 수 있다. 따라서, 메모리 컨트롤러는 시스템 성능에 대한 충격이 최소한일 때 오류 검출을 수행한다. 파워업의 경우에 있어서, 메모리 컨트롤러는 단일 파워업 또는 미리 결정된 수의 파워업에 응답하여 룩-어헤드 비트 오류의 수를 결정할 수 있다. 파워업의 미리 결정된 수는 다양한 기준을 사용하여 결정될 수 있다. 예컨대, 파워업의 수는 메모리 시스템이 생산 테스트 동안 경험할 파워 사이클의 예상된 수에 기반하여 결정될 수 있다. 따라서, 생산 동안 메모리 시스템에 프리로딩되는 데이터에서의 어느 계통적 결함이라도 생산 설비로부터 출하되기 전에 자동으로 정정될 수 있다. 수신된 커맨드의 경우에 있어서, 메모리 시스템은 메모리 시스템에 통신 결합된 프로세싱 시스템으로부터, 시스템 오퍼레이터 또는 테스트 기술자/엔지니어와 같은 사용자로부터, 그리고/또는 개발 또는 생산 테스트 시스템과 같은 테스트 시스템으로부터 커맨드를 수신할 수 있다. 커맨드는 오류 검출 및 정정을 수행하라는 커맨드, 판독 커맨드, 시스템 리셋 커맨드, 파워-온 리셋(POR) 커맨드 또는 웨이크-업 커맨드일 수 있다.
일부 실시예에 있어서, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 중 오류의 수를 결정하는 룩-어헤드 컨트롤러(예컨대, 도 4의 룩-어헤드 컨트롤러(416))를 포함한다. 예컨대, 룩-어헤드 컨트롤러는 저항성 메모리 어레이로부터 룩-어헤드 비트를 판독하고 룩-어헤드 비트 중 오류의 수를 결정한다.
일부 실시예에 있어서, 예시의 방법(500)은 룩-어헤드 비트 오류의 수를 룩-어헤드 비트 오류의 임계 수와 비교하는 단계(530)를 포함한다. 임계치는, 예컨대, 메모리 시스템의 신뢰도 요건, 안전 요건, 고객 요건, 메모리 시스템 자원의 가용성, 저항성 메모리 어레이의 사이즈 등을 포함하는 여러 인자에 기반하여 결정될 수 있다. 룩-어헤드 비트 오류의 일례의 임계 수는 저항성 비휘발성 메모리 어레이의 룩-어헤드 셀에 저장된 룩-어헤드 비트의 50%이다. 룩-어헤드 비트 오류의 수가 룩-어헤드 비트 오류의 임계 수보다 더 적다고 메모리 컨트롤러가 결정하면((530)-예), 메모리 컨트롤러는 데이터 비트 오류를 갖는 데이터의 저장 유닛만의 약한 리프레시를 수행한다(540). 룩-어헤드 비트 오류의 수가 룩-어헤드 비트 오류의 임계 수보다 크거나 같다고 메모리 컨트롤러가 결정하면((530)-아니오), 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이에 저장된 모든 룩-어헤드 비트 및 데이터의 강한 리프레시를 수행한다(550).
도 6은 본 발명의 일부 실시예 및 태양과 일관된 일례의 방법(600)의 순서도를 묘사하고 있다. 방법(600)은, 예컨대, 저항성 비휘발성 메모리에서의 오류를 검출 및 정정하도록 구현될 수 있다. 일부 실시예에 있어서, 방법(600)은, 예컨대, 도 4에 예시된 메모리 시스템(400)과 같은 메모리 시스템에 의해 구현될 수 있다.
예시의 방법(500)과 유사하게, 예시의 방법(600)은 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 상에 마진 판독 연산을 수행하는 단계(610) 및 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 중 오류의 수를 결정하는 단계(620)를 포함한다. 일부 실시예에 있어서, 예시의 방법(600)은 룩-어헤드 비트 오류의 수를 룩-어헤드 비트 오류의 제1 임계 수와 비교하는 단계(630)를 포함한다. 룩-어헤드 비트 오류의 수가 룩-어헤드 비트 오류의 제1 임계 수보다 더 적다고 메모리 컨트롤러가 결정하면((630)-예), 메모리 컨트롤러는 리프레시 연산을 수행하지 않는다(640). 룩-어헤드 비트 오류의 수가 룩-어헤드 비트 오류의 제1 임계 수보다 크거나 같다고 메모리 컨트롤러가 결정하면((630)-아니오), 메모리 컨트롤러는 룩-어헤드 비트 오류의 수를 룩-어헤드 비트 오류의 제2 임계 수와 비교한다(650). 룩-어헤드 비트 오류의 제2 임계 수는 제1 임계치보다 더 크다. 메모리 컨트롤러는 룩-어헤드 비트 오류의 수가 룩-어헤드 비트 오류의 제2 임계 수보다 더 적을 때((650)-예) 저항성 비휘발성 메모리 어레이에 저장된 데이터의 약한 리프레시를 수행하고(660) 룩-어헤드 비트 오류의 수가 룩-어헤드 비트 오류의 제2 임계 수보다 크거나 같을((650)-아니오) 때 저항성 비휘발성 메모리 어레이에 저장된 모든 룩-어헤드 비트 및 데이터의 강한 리프레시를 수행한다(670).
상위 및 하위 룩-어헤드 비트 임계치가 사용될 때, 메모리 시스템이 제1 임계치 아래의 룩-어헤드 비트 오류의 수에 부응하도록 구성되기 때문에 메모리 시스템은 더 적은 자원을 사용한다. 따라서, 리프레시 연산은 룩-어헤드 셀이 제1 임계치 위의 오류를 포함하고 있는 경우에만 수행된다. 메모리 시스템의 오퍼레이터는, 예컨대, 메모리 시스템의 신뢰도 요건, 안전 요건, 고객 요건, 메모리 시스템 자원의 가용성, 저항성 메모리 어레이의 사이즈 등을 포함하는 여러 인자에 기반하여 제1 임계치를 커스터마이징할 수 있다.
도 7은 본 발명의 일부 실시예 및 태양과 일관된 일례의 방법(700)의 순서도를 묘사하고 있다. 방법(700)은, 예컨대, 저항성 비휘발성 메모리 어레이에 저장된 모든 룩-어헤드 비트 및 데이터의 강한 리프레시를 수행하도록 구현될 수 있다. 일부 실시예에 있어서, 방법(700)은, 예컨대, 도 4에 예시된 메모리 시스템(400)과 같은 메모리 시스템에 의해 구현될 수 있다.
일부 실시예에 있어서, 예시의 방법(700)은 ECC 정정으로 데이터를 판독해 내고 저항성 비휘발성 메모리 어레이에 저장된 데이터 중 데이터 비트 오류를 검출하는 단계(710)를 포함한다. 메모리 시스템에 포함된 메모리 컨트롤러(예컨대, 도 4의 메모리 컨트롤러(410))는 위에서 설명된 정규 판독 연산을 사용하여 저항성 메모리 어레이(예컨대, 도 2 내지 도 4의 저항성 메모리 어레이(200))의 메모리 셀(예컨대, 도 3의 데이터 셀(310))에 저장된 데이터를 판독한다. 메모리 컨트롤러는 페이지, 블록, 섹터, 워드, 또는 당업계에 알려져 있는 어느 다른 저장 유닛과 같은 다양한 저장 유닛으로 데이터를 판독한다. 각각의 저장 유닛은 어느 수의 데이터 비트라도 포함할 수 있다. 더욱, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이의 메모리 셀(예컨대, 도 3의 ECC 셀(320))에 저장된 ECC 비트를 판독하고 그 저장된 ECC 비트를 사용하여 데이터의 저장 유닛에서의 데이터 비트 오류를 검출한다. 메모리 컨트롤러는 어느 데이터 비트가 고온 또는 EMI에 기인하여 (예컨대, 논리 "1"로부터 논리 "0"으로 그리고 그 역으로) 논리 상태를 플리핑하였는지 결정함으로써 데이터의 저장 유닛에서의 데이터 비트 오류를 검출한다. 저장된 ECC 비트는 해밍 코드, BCH 코드, 패리티 비트, 리드-솔로몬 코드, 터보 코드, 저-밀도 패리티-체크 코드(LDPC), 컨벌루션 코드, 또는 당업계에 알려져 있는 어느 다른 오류 정정 코드를 포함할 수 있다.
메모리 컨트롤러는 메모리 시스템 동작의 다양한 단계 동안 데이터 비트 오류의 수를 결정한다. 예컨대, 메모리 컨트롤러는 판독 사이클 동안, 메모리 시스템의 파워업에 응답하여, 메모리 시스템의 유휴 모드 동안, 또는 수신된 커맨드에 응답하여 데이터 비트 오류의 수를 결정할 수 있다. 유휴 모드의 경우에 있어서, 메모리 컨트롤러는 단일 유휴 모드 동안 또는 미리 결정된 수의 유휴 모드 동안 데이터 비트 오류의 수를 결정할 수 있다. 따라서, 메모리 컨트롤러는 시스템 성능에 대한 충격이 최소한일 때 오류 검출을 수행한다. 파워업의 경우에 있어서, 메모리 컨트롤러는 단일 파워업 또는 미리 결정된 수의 파워업에 응답하여 데이터 비트 오류의 수를 결정할 수 있다. 파워업의 미리 결정된 수는 다양한 기준을 사용하여 결정될 수 있다. 예컨대, 파워업의 수는 메모리 시스템이 생산 테스트 동안 경험할 파워 사이클의 예상된 수에 기반하여 결정될 수 있다. 따라서, 제조 동안 메모리 시스템에 프리로딩되는 데이터에서의 어느 오류라도 생산 설비로부터 출하되기 전에 자동으로 정정될 수 있다. 수신된 커맨드의 경우에 있어서, 메모리 시스템은 메모리 시스템에 통신 결합된 프로세싱 시스템으로부터, 시스템 오퍼레이터 또는 테스트 기술자/엔지니어와 같은 사용자로부터, 그리고/또는 개발 또는 생산 테스트 시스템과 같은 테스트 시스템으로부터 커맨드를 수신할 수 있다. 커맨드는 오류 검출 및 정정을 수행하라는 커맨드, 판독 커맨드, 시스템 리셋 커맨드, 파워-온 리셋(POR) 커맨드 또는 웨이크-업 커맨드일 수 있다.
일부 실시예에 있어서, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이에 저장된 데이터에서의 데이터 비트 오류의 수를 결정하는 ECC 컨트롤러(예컨대, 도 4의 ECC 컨트롤러(415))를 포함한다. 예컨대, ECC 컨트롤러는 저항성 메모리 어레이로부터 데이터 및 ECC 비트를 판독하고 ECC 코딩 기법에 기반하여 데이터 비트 오류의 수를 결정한다.
일부 실시예에 있어서, 예시의 방법(700)은 저항성 비휘발성 메모리 어레이의 데이터 및 룩-어헤드 비트의 강한 기록을 수행하고 기록된 데이터를 검증 판독 연산으로 검증하는 단계(720)를 포함한다. 메모리 컨트롤러는 메모리 셀에 대한 전류 분포가 정규 기록 사이클에 대해서보다 더 크게 되도록 데이터 및 룩-어헤드 비트를 다시 메모리 셀에 기록함으로써 강한 기록 연산을 수행한다. 메모리 셀에 대한 전류 분포를 증가시키기 위해, 메모리 컨트롤러는 메모리 셀로부터 판독된 전류 값이 정규 기록 사이클에 대해서보다 임계 값으로부터 더 변위되도록 그 메모리 셀에 대한 논리값을 프로그래밍한다. 메모리 셀 내 전류 분포를 증가시키는 것은 메모리 컨트롤러에 의한 부가적 기록 시간 및 에너지 소모를 필요로 하지만 메모리 셀 마진을 증가시킴으로써 데이터 및 룩-어헤드 비트를 손상되는 것으로부터 보호하는 것을 돕는다. 따라서, 메모리 셀 내 전류 분포를 증가시키는 것은 메모리 셀이 논리 상태를 플리핑하는 것을 더 어렵게 함으로써 결함 내성을 개선한다.
강한 기록 연산을 수행하기 위해, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이로부터 판독된 데이터 비트 오류 및/또는 룩-어헤드 비트 오류를 정정하는데 필요한 ECC 비트의 수를 결정한다. 저항성 비휘발성 메모리 어레이에 저장된 ECC 비트의 수는 ECC 코딩 기법에 의존한다. 예컨대, ECC 코딩 기법은 저장 유닛당(예컨대, 페이지당, 블록당, 섹터당, 워드당 등) 소정 수의 ECC 비트를 할당할 수 있다. 각각의 저장 유닛에 할당된 ECC 비트의 수는 융통성이 있을 수 있고 설계 요건, 시스템 능력, 타이밍 및 처리량 요건 등에 의존한다. 메모리 컨트롤러 또는 ECC 컨트롤러는 저장 유닛에서의 데이터 비트 오류를 정정하는데 필요한 각각의 저장 유닛에 할당되는 ECC 비트의 수를 결정한다. 예컨대, 5개의 ECC 비트가 저항성 비휘발성 메모리 어레이에 저장된 데이터의 각각의 주소에 할당된다. 그리하여, 본 예에 있어서, 메모리 컨트롤러 또는 ECC 컨트롤러는 5개의 ECC 비트 중 얼마나 많은 것이 데이터의 대응하는 주소에서의 데이터 비트 오류를 정정하는데 필요로 되는지 결정한다. 메모리 컨트롤러 또는 ECC 컨트롤러는 룩-어헤드 비트 오류를 정정하는데 필요한 각각의 룩-어헤드 비트(또는 저장 유닛 또는 룩-어헤드 비트들)에 할당되는 ECC 비트의 수를 더 결정한다.
메모리 컨트롤러 또는 ECC 컨트롤러는 룩-어헤드 비트 오류 및/또는 각각의 저장 유닛에 대한 데이터 비트 오류를 정정하는데 필요한 ECC 비트의 수가 ECC 비트의 임계 수보다 더 적은지를 결정한다. ECC 비트의 임계 수는 보통은 메모리 컨트롤러 또는 ECC 컨트롤러에 의해 구현된 ECC 코딩 기법의 오류 정정 용량에 기반하여 결정된다. 그렇지만, ECC 비트의 임계 수를 결정할 때 다른 인자가 고려될 수 있다.
저장 유닛에서의 데이터 오류를 정정하는데 또는 룩-어헤드 비트 오류를 정정하는데 ECC 비트가 필요로 되지 않는다(즉, 저장 유닛에서의 데이터 비트 오류가 없다 또는 룩-어헤드 비트 오류가 없다)고 결정되면, 그때 메모리 컨트롤러는 데이터의 저장 유닛 또는 룩-어헤드 비트를 판독하고 강한 기록 연산을 사용하여 다시 저항성 비휘발성 메모리 어레이에 그 저장 유닛 또는 룩-어헤드 비트를 기록한다. 오류를 포함하고 있지 않은 데이터 및 룩-어헤드 비트를 판독하고 강한 기록 연산을 사용하여 다시 저항성 비휘발성 메모리 어레이에 그것들을 기록하는 것은 데이터 및 룩-어헤드 비트를 저장하는 메모리 셀 내 마진을 증가시킨다.
저장 유닛에서의 데이터 오류를 정정하는데 또는 룩-어헤드 비트 오류를 정정하는데 ECC 비트가 필요로 되고, 그리고 필요로 된 ECC 비트의 수가 ECC 비트의 임계 수 미만이라고 메모리 컨트롤러가 결정하면, 메모리 컨트롤러 또는 ECC 컨트롤러는 오류를 정정하고 강한 기록 연산을 사용하여 저항성 비휘발성 메모리 어레이에 정정된 비트를 기록한다. 메모리 컨트롤러 또는 ECC 컨트롤러는 데이터 비트 또는 룩-어헤드 비트의 값을 역전시킴으로써 오류를 정정한다. 그리하여, 예컨대, 데이터 셀 또는 룩-어헤드 셀이 논리값 "0"을 포함하고 메모리 컨트롤러 또는 ECC 컨트롤러가 ECC 비트를 사용하여 그 논리값이 틀리다고 결정하면, 그때 메모리 컨트롤러 또는 ECC 컨트롤러는 그 논리값을 "1"로 역전시킨다.
메모리 컨트롤러는 정정된 비트를 감지 증폭기 및 기록 드라이버(예컨대, 도 4의 감지 증폭기 및 기록 드라이버(414))에 송신함으로써 저항성 비휘발성 메모리 어레이에 정정된 비트를 기록한다. 메모리 컨트롤러는 정정된 비트를 메모리 시스템 동작의 다양한 단계 동안 기록할 수 있다. 예컨대, 일 실시예에 있어서, 메모리 컨트롤러는 메모리 시스템의 후속 파워업(예컨대, 다음 파워업)에 응답하여 또는 메모리 시스템의 후속 유휴 모드(예컨대, 다음 유휴 모드) 동안 기록을 수행한다. 메모리 컨트롤러가 정정된 비트를 후속 파워업에 응답하여 기록할 때, 기록은 파워업 초기화 동안 또는 그 직후에 수행된다. 파워업에 응답하여 또는 유휴 모드 동안과 같이, 최소한의 시스템 사용이 최소한일 때까지 정정된 비트를 기록하는 것을 기다리는 것은, 메모리 시스템 성능에 대한 충격을 최소화한다.
저장 유닛에서의 데이터 오류를 정정하는데 또는 룩-어헤드 비트 오류를 정정하는데 ECC 비트가 필요로 된다고 메모리 컨트롤러가 결정하고, 필요한 ECC 비트의 수가 ECC 비트의 임계 수보다 크거나 같을 때, 메모리 컨트롤러 또는 ECC 컨트롤러는 저장 유닛 또는 룩-어헤드 비트를 교체한다. 데이터의 저장 유닛 또는 룩-어헤드 비트를 교체하는 것은 데이터의 저장 유닛 또는 룩-어헤드 비트를 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 대응하는 데이터의 저장 유닛 또는 룩-어헤드 비트로 교체하는 것을 포함한다. 트랜지스터-기반 비휘발성 메모리는, 예컨대, 프로그래밍가능 롬(PROM), 플래시 메모리, 전기적 소거가능 프로그래밍가능 롬(EEPROM), 또는 eFUSE 메모리를 포함한다.
트랜지스터-기반 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 또는 데이터의 저장 유닛은 교체되고 있는 저항성 비휘발성 메모리 어레이에서의 룩-어헤드 비트 또는 데이터의 저장 유닛의 사본(즉, 백업 룩-어헤드 비트 또는 백업 저장 유닛)일 수 있다. 메모리 컨트롤러는 백업 데이터의 저장 유닛 및 룩-어헤드 비트를 생성하기 위해 저항성 메모리 어레이에 저장된 데이터 및 룩-어헤드 비트를 트랜지스터-기반 비휘발성 메모리 어레이에 기록한다. 기록은 메모리 시스템 동작의 다양한 단계 동안 일어날 수 있다. 예컨대, 메모리 컨트롤러는 고온 열 사이클(예컨대, 기판 실장 웨이브 솔더 프로세스) 전에, 데이터 및 룩-어헤드 비트가 저항성 비휘발성 메모리 어레이에 기록된 후에, 메모리 시스템의 유휴 상태 동안, 수신된 커맨드에 응답하여, 또는 메모리 시스템의 파워업에 응답하여 트랜지스터-기반 비휘발성 메모리 어레이에 데이터 및 룩-어헤드 비트를 기록할 수 있다.
메모리 컨트롤러는 교체 프로세스의 일부분으로서 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 백업 저장 유닛 또는 백업 룩-어헤드 비트를 판독한다. 일부 실시예에 있어서, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이도 그리고 트랜지스터-기반 비휘발성 메모리 어레이도 제어한다. 그러한 실시예에 있어서, 메모리 컨트롤러는 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 데이터를 직접 판독한다. 다른 실시예에 있어서, 트랜지스터-기반 비휘발성 메모리 어레이는 별개의 메모리 컨트롤러에 의해 제어된다. 그러한 실시예에 있어서, 저항성 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러는 트랜지스터-기반 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러에 요청을 송신한다. 트랜지스터-기반 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러는 요청을 수신하고, 저장된 백업 데이터의 저장 유닛 또는 백업 룩-어헤드 비트를 검색하도록 판독 연산을 수행하고, 검색된 백업을 저항성 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러에 송신한다.
메모리 컨트롤러는 강한 기록 연산을 사용하여 저항성 비휘발성 메모리 어레이에 백업 저장 유닛 또는 백업 룩-어헤드 비트를 기록한다. 메모리 컨트롤러는 메모리 시스템 동작의 다양한 단계에서 데이터의 저장 유닛 또는 룩-어헤드 비트를 교체한다. 예컨대, 메모리 컨트롤러는 오류를 정정하는데 필요한 ECC 비트의 수가 임계 ECC 비트의 수와 같거나 초과한다고 결정한 직후에 데이터의 저장 유닛 또는 룩-어헤드 비트를 교체할 수 있다. 다른 일례로서, 메모리 컨트롤러는 메모리 시스템의 후속 파워업(예컨대, 다음 파워업)에 응답하여 또는 메모리 시스템의 후속 유휴 모드(예컨대, 다음 유휴 모드) 동안 데이터의 저장 유닛 또는 룩-어헤드 비트를 교체할 수 있다.
강한 기록 연산이 데이터 비트 또는 룩-어헤드 비트에 대해 수행되고 나면, 메모리 컨트롤러는 도 4를 참조하여 위에서 설명된 마진 판독 연산을 수행함으로써 강한 기록 연산이 성공적으로 수행되었음을 검증한다. 마진 판독 연산은 기록된 데이터 또는 룩-어헤드 비트의 전류 분포가 증가되었음을 검증하도록 기록된 데이터 또는 룩-어헤드 비트의 전류 분포를 상위 및/또는 하위 임계 전류 값과 비교한다. 메모리 컨트롤러가 강한 기록 연산이 성공적으로 수행되었음을 검증하고 나면, 메모리 컨트롤러는 모든 데이터 셀 및 룩-어헤드 셀이 리프레시되었는지 결정한다(730). 메모리 컨트롤러가 모든 데이터 셀 및 룩-어헤드 셀이 리프레시되었다고 결정하면((730)-예), 그때 강한 리프레시 연산은 완료된다(740). 메모리 컨트롤러가 일부 데이터 셀 또는 룩-어헤드 셀이 여전히 리프레시될 필요가 있다고 결정하면((730)-아니오), 그때 메모리 컨트롤러는 다음 데이터/룩-어헤드 셀로 이동하고 강한 리프레시 연산을 계속한다(750).
도 8은 본 발명의 일부 실시예 및 태양과 일관된 일례의 방법(800)의 순서도를 묘사하고 있다. 방법(800)은, 예컨대, 저항성 비휘발성 메모리 어레이에 저장된 데이터의 약한 리프레시를 수행하도록 구현될 수 있다. 약한 리프레시는 데이터 비트 오류를 갖는 데이터의 저장 유닛만을 리프레시하는 것을 포함한다. 일부 실시예에 있어서, 방법(800)은, 예컨대, 도 4에 예시된 메모리 시스템(400)과 같은 메모리 시스템에 의해 구현될 수 있다.
일부 실시예에 있어서, 예시의 방법(800)은 ECC 정정으로 데이터를 판독해 내고 저항성 비휘발성 메모리 어레이에 저장된 데이터 중 데이터 비트 오류를 검출하는 단계(810)를 포함한다. 메모리 시스템에 포함된 메모리 컨트롤러(예컨대, 도 4의 메모리 컨트롤러(410))는 저항성 메모리 어레이(예컨대, 도 2 내지 도 4의 저항성 메모리 어레이(200))의 메모리 셀(예컨대, 도 3의 데이터 셀(310))에 저장된 데이터를 판독한다. 메모리 컨트롤러는 페이지, 블록, 섹터, 워드, 또는 당업계에 알려져 있는 어느 다른 저장 유닛과 같은 다양한 저장 유닛으로 데이터를 판독한다. 각각의 저장 유닛은 어느 수의 데이터 비트라도 포함할 수 있다. 더욱, 메모리 컨트롤러는 저항성 메모리 어레이의 메모리 셀(예컨대, 도 3의 ECC 셀(320))에 저장된 ECC 비트를 판독하고 그 저장된 ECC 비트를 사용하여 저장된 데이터에서의 데이터 비트 오류를 검출한다. 메모리 컨트롤러는 어느 데이터 비트가 고온 또는 EMI에 기인하여 (예컨대, 논리 "1"로부터 논리 "0"으로 그리고 그 역으로) 논리 상태를 플리핑하였는지 결정함으로써 데이터의 저장 유닛에서의 데이터 비트 오류를 검출한다. 저장된 ECC 비트는 해밍 코드, BCH 코드, 패리티 비트, 리드-솔로몬 코드, 터보 코드, 저-밀도 패리티-체크 코드(LDPC), 컨벌루션 코드, 또는 당업계에 알려져 있는 어느 다른 오류 정정 코드를 포함할 수 있다.
메모리 컨트롤러는 메모리 시스템 동작의 다양한 단계 동안 데이터 비트 오류를 검출한다. 예컨대, 메모리 컨트롤러는 판독 사이클 동안, 메모리 시스템의 파워업에 응답하여, 메모리 시스템의 유휴 모드 동안, 또는 수신된 커맨드에 응답하여 데이터 비트 오류를 검출할 수 있다. 유휴 모드의 경우에 있어서, 메모리 컨트롤러는 단일 유휴 모드 동안 또는 미리 결정된 수의 유휴 모드 동안 데이터 비트 오류를 검출할 수 있다. 따라서, 메모리 컨트롤러는 시스템 성능에 대한 충격이 최소한일 때 오류 검출을 수행한다. 파워업의 경우에 있어서, 메모리 컨트롤러는 단일 파워업 또는 미리 결정된 수의 파워업에 응답하여 데이터 비트 오류를 검출할 수 있다. 파워업의 미리 결정된 수는 다양한 기준을 사용하여 결정될 수 있다. 예컨대, 파워업의 수는 메모리 시스템이 생산 테스트 동안 경험할 파워 사이클의 예상된 수에 기반하여 결정될 수 있다. 따라서, 제조 동안 메모리 시스템에 프리로딩되는 데이터에서의 어느 결함이라도 생산 설비로부터 출하되기 전에 자동으로 정정될 수 있다. 수신된 커맨드의 경우에 있어서, 메모리 시스템은 메모리 시스템에 통신 결합된 프로세싱 시스템으로부터, 시스템 오퍼레이터 또는 테스트 기술자/엔지니어와 같은 사용자로부터, 그리고/또는 개발 또는 생산 테스트 시스템과 같은 테스트 시스템으로부터 커맨드를 수신할 수 있다. 커맨드는 오류 검출 및 정정을 수행하라는 커맨드, 판독 커맨드, 시스템 리셋 커맨드, 파워-온 리셋(POR) 커맨드 또는 웨이크-업 커맨드일 수 있다.
일부 실시예에 있어서, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이에 저장된 데이터에서의 데이터 비트 오류를 검출하는 ECC 컨트롤러(예컨대, 도 4의 ECC 컨트롤러(415))를 포함한다. 예컨대, ECC 컨트롤러는 저항성 메모리 어레이로부터 데이터 및 ECC 비트를 판독하고 ECC 코딩 기법에 기반하여 데이터 비트 오류를 검출한다.
일부 실시예에 있어서, 방법(800)은 데이터 비트 오류를 정정하는데 필요한 ECC 비트의 수를 결정하는 단계(820)를 포함한다. 저항성 비휘발성 메모리 어레이에 저장된 ECC 비트의 수는 ECC 코딩 기법에 의존한다. 예컨대, ECC 코딩 기법은 저장 유닛당(예컨대, 페이지당, 블록당, 섹터당, 워드당 등) 소정 수의 ECC 비트를 할당할 수 있다. 각각의 저장 유닛에 할당된 ECC 비트의 수는 융통성이 있을 수 있고 설계 요건, 시스템 능력, 타이밍 및 처리량 요건 등에 의존한다. 메모리 컨트롤러 또는 ECC 컨트롤러는 저장 유닛에서의 데이터 비트 오류를 정정하는데 필요한 각각의 저장 유닛에 할당되는 ECC 비트의 수를 결정한다. 예컨대, 5개의 ECC 비트가 저항성 비휘발성 메모리 어레이에 저장된 데이터의 각각의 주소에 할당된다. 그리하여, 본 예에 있어서, 메모리 컨트롤러 또는 ECC 컨트롤러는 5개의 ECC 비트 중 얼마나 많은 것이 데이터의 대응하는 주소에서의 데이터 비트 오류를 정정하는데 필요로 되는지 결정한다.
메모리 컨트롤러 또는 ECC 컨트롤러는 각각의 저장 유닛에 대한 데이터 비트 오류를 정정하는데 필요한 ECC 비트의 수가 ECC 비트의 임계 수보다 더 적은지를 결정한다(830). 약한 리프레시 연산에 대하여, ECC 비트의 임계 수는 메모리 컨트롤러 또는 ECC 컨트롤러에 의해 구현된 ECC 코딩 기법의 최대 ECC 비트 오류 정정 용량보다 더 적도록 선택된다. 저장된 룩-어헤드 비트가 유의미한 오류를 포함하고 있지 않다고 결정된((530)-예) 이후, 약한 리프레시 연산을 수행하는데 사용된 메모리 시스템 자원은 데이터의 저항성 비휘발성 메모리 전체를 기록하는 대신에 유의미한 오류 또는 손상을 갖는 데이터만을 기록함으로써 최소화될 수 있다.
저장 유닛에서의 데이터 오류를 정정하는데 필요한 ECC 비트의 수가 임계치보다 더 적다고 메모리 컨트롤러가 결정하면((830)-예), 메모리 컨트롤러 및/또는 ECC 컨트롤러는 데이터의 약한 리프레시를 수행하지 않고 다음 데이터 셀로 계속한다(840).
저장 유닛에서의 데이터 오류를 정정하는데 필요한 ECC 비트의 수가 임계치보다 크거나 같다고 메모리 컨트롤러가 결정하고((830)-아니오), 필요한 ECC 비트의 수가 오류 정정에 이용가능한 최대 ECC 비트보다 더 적으면, 메모리 컨트롤러 또는 ECC 컨트롤러는 오류를 정정하고 정정된 비트를 저항성 비휘발성 메모리 어레이에 기록함으로써 약한 리프레시 기록을 수행한다(850). 메모리 컨트롤러 또는 ECC 컨트롤러는 데이터 비트 오류의 값을 역전시킴으로써 오류를 정정한다. 그리하여, 예컨대, 데이터 셀이 논리값 "0"을 포함하고 메모리 컨트롤러 또는 ECC 컨트롤러가 ECC 비트를 사용하여 그 논리값이 틀리다고 결정하면, 그때 메모리 컨트롤러 또는 ECC 컨트롤러는 그 논리값을 "1"로 역전시킨다.
메모리 컨트롤러는 도 4를 참조하여 위에서 설명된 정규 기록 연산을 사용하여 저항성 비휘발성 메모리 어레이에 정정된 데이터 비트를 기록한다. 메모리 컨트롤러는 정정된 비트를 감지 증폭기 및 기록 드라이버(예컨대, 도 4의 감지 증폭기 및 기록 드라이버(414))에 송신함으로써 저항성 비휘발성 메모리 어레이에 정정된 비트를 기록한다. 메모리 컨트롤러는 정정된 비트를 메모리 시스템 동작의 다양한 단계 동안 기록할 수 있다. 예컨대, 일 실시예에 있어서, 메모리 컨트롤러는 메모리 시스템의 후속 파워업(예컨대, 다음 파워업)에 응답하여 또는 메모리 시스템의 후속 유휴 모드(예컨대, 다음 유휴 모드) 동안 기록을 수행한다. 메모리 컨트롤러가 정정된 비트를 후속 파워업에 응답하여 기록할 때, 기록은 파워업 초기화 동안 또는 그 직후에 수행된다. 파워업에 응답하여 또는 유휴 모드 동안과 같이, 최소한의 시스템 사용이 최소한일 때까지 정정된 비트를 기록하는 것을 기다리는 것은, 메모리 시스템 성능에 대한 충격을 최소화한다. 다른 일 실시예에 있어서, 메모리 컨트롤러는 데이터 비트 오류를 정정한 직후에 기록을 수행한다. 저항성 비휘발성 메모리 셀의 기록 시간은 전형적으로는 트랜지스터-기반 비휘발성 메모리 셀(예컨대, 플래시 메모리 셀)의 기록 시간보다 훨씬 더 짧다. 데이터 비트 오류를 갖는 데이터의 저장 유닛만이 약한 리프레시 동안 기록되므로, 약한 리프레시는 메모리 시스템에 악영향을 미침이 없이 정규 메모리 시스템 동작 동안 수행될 수 있다.
저장 유닛에서의 데이터 오류를 정정하는데 필요한 ECC 비트의 수가 임계치보다 크거나 같다고 메모리 컨트롤러가 결정하고((830)-아니오), 필요한 ECC 비트의 수가 오류 정정에 이용가능한 최대 ECC 비트보다 크거나 같으면, 메모리 컨트롤러 또는 ECC 컨트롤러는 저장 유닛을 교체함으로써 약한 리프레시 기록을 수행한다(850). 데이터의 저장 유닛을 교체하는 것은 데이터의 저장 유닛을 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 대응하는 데이터의 저장 유닛으로 교체하는 것을 포함한다. 트랜지스터-기반 비휘발성 메모리는, 예컨대, 프로그래밍가능 롬(PROM), 플래시 메모리, 전기적 소거가능 프로그래밍가능 롬(EEPROM), 또는 eFUSE 메모리를 포함한다.
트랜지스터-기반 비휘발성 메모리 어레이에 저장된 데이터의 저장 유닛은 교체되고 있는 저항성 비휘발성 메모리 어레이에서의 데이터의 저장 유닛의 사본(즉, 백업 저장 유닛)일 수 있다. 메모리 컨트롤러는 백업 데이터의 저장 유닛을 생성하기 위해 저항성 메모리 어레이에 저장된 데이터를 트랜지스터-기반 비휘발성 메모리 어레이에 기록할 수 있다. 기록은 메모리 시스템 동작의 다양한 단계 동안 일어날 수 있다. 예컨대, 메모리 컨트롤러는 고온 열 사이클(예컨대, 기판 실장 웨이브 솔더 프로세스) 전에, 데이터가 저항성 비휘발성 메모리 어레이에 기록된 후에, 메모리 시스템의 유휴 상태 동안, 수신된 커맨드에 응답하여, 또는 메모리 시스템의 파워업에 응답하여 트랜지스터-기반 비휘발성 메모리 어레이에 데이터를 기록할 수 있다.
메모리 컨트롤러는 교체 프로세스의 일부분으로서 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 백업 저장 유닛을 판독한다. 일부 실시예에 있어서, 메모리 컨트롤러는 저항성 비휘발성 메모리 어레이도 그리고 트랜지스터-기반 비휘발성 메모리 어레이도 제어한다. 그러한 실시예에 있어서, 메모리 컨트롤러는 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 데이터를 직접 판독한다. 다른 실시예에 있어서, 트랜지스터-기반 비휘발성 메모리 어레이는 별개의 메모리 컨트롤러에 의해 제어된다. 그러한 실시예에 있어서, 저항성 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러는 트랜지스터-기반 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러에 요청을 송신한다. 트랜지스터-기반 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러는 요청을 수신하고, 저장된 백업 데이터의 저장 유닛 또는 백업 룩-어헤드 비트를 검색하도록 판독 연산을 수행하고, 검색된 백업을 저항성 비휘발성 메모리 어레이와 연관된 메모리 컨트롤러에 송신한다.
메모리 컨트롤러는 도 4를 참조하여 위에서 설명된 정규 기록 연산을 사용하여 저항성 비휘발성 메모리 어레이에 백업 저장을 기록한다. 메모리 컨트롤러는 메모리 시스템 동작의 다양한 단계에서 데이터의 저장 유닛을 교체한다. 예컨대, 메모리 컨트롤러는 오류를 정정하는데 필요한 ECC 비트의 수가 임계 ECC 비트의 수와 같거나 더 크고, 그리고 필요한 ECC 비트의 수가 오류 정정에 이용 가능한 최대 ECC 비트와 같거나 더 크다고 결정한 직후에 데이터의 저장 유닛을 교체할 수 있다. 다른 일례로서, 메모리 컨트롤러는 메모리 시스템의 후속 파워업(예컨대, 다음 파워업)에 응답하여 또는 메모리 시스템의 후속 유휴 모드(예컨대, 다음 유휴 모드) 동안 데이터의 저장 유닛을 교체할 수 있다.
약한 리프레시 연산이 데이터 비트 또는 룩-어헤드 비트에 대해 수행되고 나면, 메모리 컨트롤러는 도 4를 참조하여 위에서 설명된 마진 판독 연산을 수행함으로써 약한 리프레시 연산이 성공적으로 수행되었음을 검증한다. 약한 리프레시 연산에 대한 마진 판독은 강한 기록 연산의 마진 판독에 대해서보다 정규 임계 전류 값에 더 가까운 상위 및 하위 임계 전류 값을 사용한다. 약한 리프레시 연산이 데이터 셀에 대해 완료(850)되고 나면, 메모리 컨트롤러 및/또는 ECC 컨트롤러는 다음 데이터 셀로 이동하고 약한 리프레시 연산은 계속된다.
도 9는 본 발명의 실시예와 일관된 정규 판독 연산과 마진 판독 연산 간 비교를 예시하고 있다. 도 9에 도시된 바와 같이, 정규 임계 전류(910)는 메모리 셀의 전류 분포를 2개의 영역: 상위 영역 및 하위 영역으로 분할한다. 상위 영역 및 하위 영역은 서로 다른 논리값(예컨대, 논리 "0" 및 논리 "1")에 대응한다. 정규 기록 연산에서, 메모리 컨트롤러(예컨대, 도 4의 메모리 컨트롤러(410))는 셀의 전류 분포가 정규 임계 전류(910)의 어느 일측 상에 들도록 메모리 셀을 프로그래밍한다. 정규 판독 연산에서, 메모리 컨트롤러는 메모리 셀을 통하는 전류를 측정하고 그것을 정규 임계 전류(910)와 비교하여 메모리 셀의 논리값을 결정한다.
약한 리프레시 연산에서, 메모리 컨트롤러는 하위 약한 임계 전류(920a) 및 상위 약한 임계 전류(920b)를, 각각, 하위 영역 및 상위 영역에 대한 경계로서 사용한다. 도 9에 도시된 바와 같이, 하위 약한 임계 전류(920a) 및 상위 약한 임계 전류(920b)는 정규 임계 전류(910)와 약한 임계 전류(920a, 920b)의 각각 사이에 마진이 있게 되도록 정규 임계 전류(910)의 어느 일측 상에 분포된다. 약한 리프레시 기록에서, 메모리 컨트롤러는 셀의 전류 분포가 하위 약한 임계 전류(920a)보다 더 작거나 상위 약한 임계 전류(920b)보다 더 크도록 메모리 셀을 프로그래밍한다.
약한 검증 판독 연산(예컨대, 마진 판독)에서, 메모리 컨트롤러는 메모리 셀을 통하는 전류를 측정하고 그것을 하위 약한 임계 전류(920a) 및 상위 약한 임계 전류(920b)와 비교하여 메모리 셀의 논리값을 결정한다.
강한 리프레시 연산에서, 메모리 컨트롤러는 하위 강한 임계 전류(930a) 및 상위 강한 임계 전류(930b)를, 각각, 하위 영역 및 상위 영역에 대한 경계로서 사용한다. 도 9에 도시된 바와 같이, 하위 강한 임계 전류(930a) 및 상위 강한 임계 전류(930b)는 정규 임계 전류(910)와 2개의 강한 임계 전류(930a, 930b)의 사이에 마진이 있게 되도록 정규 임계 전류(910)의 어느 일측 상에 분포된다. 더욱, 하위 강한 임계 전류(930a) 및 상위 강한 임계 전류(930b)는, 각각, 하위 약한 임계 전류(920a) 및 상위 약한 임계 전류(920b)보다 정규 임계 전류(910)로부터 더 멀리 떨어져 분포된다. 강한 리프레시 기록에서, 메모리 컨트롤러는 셀의 전류 분포가 하위 강한 임계 전류(930a)보다 더 작거나 상위 강한 임계 전류(930b)보다 더 크도록 메모리 셀을 프로그래밍한다. 따라서, 강한 리프레시 기록 연산은 약한 리프레시 기록 연산보다 더 많은 메모리 셀 마진을 제공한다.
강한 검증 판독 연산(예컨대, 마진 판독)에서, 메모리 컨트롤러는 메모리 셀을 통하는 전류를 측정하고 그것을 하위 강한 임계 전류(930a) 및 상위 강한 임계 전류(930b)와 비교하여 메모리 셀의 논리값을 결정한다.
강한 임계 전류(930a, 930b)는 메모리 셀의 전류 분포에서의 시프트를 검출하도록 사용될 수 있다. 예컨대, 하위 강한 임계 전류(930a) 및 상위 강한 임계 전류(930b)를 사용하는 마진 판독 연산은 메모리 셀의 전류 분포가 정규 임계 전류(910)에 더 가까이 시프트되었음 및 그래서 메모리 셀에 저장된 데이터의 품질이 저하되고 있음을 검출할 수 있다. 데이터 품질 저하의 조기 검출은, 예컨대, 더 큰 수량의 데이터의 표시자로서 룩-어헤드 비트 오류를 사용할 때 룩-어헤드 비트의 품질에서의 저하는 대응하는 데이터의 품질도 저하되고 있고 그래서 리프레시되어야 함을 나타내기 때문에 유용하다.
도 9는 셀의 전류 분포에 비해 메모리 셀에 저장된 비트 수를 도시하는 예시의 분포 곡선(940a, 940b)을 더 예시하고 있다. 분포 곡선(940a, 940b)은 단지 예시일 뿐이고 당업자는 다른 분포 곡선이 가능함을 인식할 것이다.
선행하는 명세서에서, 다양한 대표적 실시예 및 태양이 수반 도면을 참조하여 설명되었다. 그렇지만, 이하의 청구범위에서 제시되는 바와 같은 본 발명의 더 넓은 범위로부터 벗어남이 없이, 다양한 수정 및 변경이 거기에 이루어질 수 있고 부가적 실시예 및 태양이 구현될 수 있음은 명백할 것이다. 따라서, 명세서 및 도면은 제한적 의미라기보다는 예시적인 것으로 간주되는 것이다.
청구범위에서의 구성요소는 청구범위에서 채용된 언어에 기반하여 넓게 해석되는 것이고 본 명세서에서 또는 출원 경과 동안 설명된 예들로 한정되어서는 안 되며, 그 예들은 비-배타적인 것으로 해석되어야 한다. 더욱, 당업자는, 연산 순서 변경 및/또는 연산 삽입 또는 삭제에 의하는 것을 포함하여, 개시된 방법의 연산이 어느 방식으로라도 수정될 수 있음을 위 개시로부터 이해할 것이다. 그래서, 명세서 및 예는 단지 예로서만 생각되며, 이하의 청구범위 및 균등물의 그 전 범위가 참 범위 및 취지를 나타내려는 의도이다.

Claims (15)

  1. 메모리 시스템으로서,
    데이터 및 룩-어헤드 비트(look-ahead bits)를 저장하도록 구성된 저항성 비휘발성 메모리 어레이; 및
    메모리 컨트롤러를 포함하되,
    상기 룩-어헤드 비트의 전체의 수는 데이터 비트의 전체의 수보다 더 적고,
    상기 메모리 컨트롤러는,
    저장된 데이터의 유닛에서의 데이터 비트 오류 및 저장된 룩-어헤드 비트 중의 룩-어헤드 비트 오류를 검출하고;
    상기 룩-어헤드 비트 오류의 수를 검출하고;
    상기 룩-어헤드 비트 오류의 수를 상기 룩-어헤드 비트 오류의 임계 수와 비교하고;
    상기 룩-어헤드 비트 오류의 수가 상기 룩-어헤드 비트 오류의 상기 임계 수와 같거나 초과하면 상기 저항성 비휘발성 메모리 어레이에 저장된 상기 데이터 및 상기 룩-어헤드 비트의 강한 리프레시를 수행하고, 그리고
    상기 룩-어헤드 비트 오류의 수가 상기 룩-어헤드 비트 오류의 상기 임계 수보다 더 적으면 데이터 비트 오류를 갖는 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트 오류를 갖는 저장된 룩-어헤드 비트만을 리프레시함으로써 상기 저장된 데이터 및 상기 룩-어헤드 비트의 약한 리프레시를 수행하도록 구성되는, 메모리 시스템.
  2. 제1항에 있어서, 상기 저항성 비휘발성 메모리 어레이는 상 변화 램(PCRAM), 저항성 램(RRAM) 또는 도전성-브리징 램(CBRAM) 중 적어도 하나를 포함하는, 메모리 시스템.
  3. 제1항에 있어서, 트랜지스터-기반 비휘발성 메모리 어레이를 더 포함하고,
    상기 저항성 비휘발성 메모리 어레이는 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트에 대응하는 오류 정정 코드(ECC) 비트를 저장하도록 더 구성되고, 그리고
    상기 메모리 컨트롤러는,
    상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수를 결정하고, 그리고
    상기 ECC 비트의 수를 상기 ECC 비트의 임계 수와 비교하도록 더 구성되며;
    상기 메모리 컨트롤러는,
    상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 영보다 더 크고 상기 ECC 비트의 상기 임계 수보다 더 적을 때 상기 저장된 데이터의 상기 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하고 정정된 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 상기 저항성 비휘발성 메모리 어레이에 기록하고;
    상기 저장된 데이터의 상기 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 상기 ECC 비트의 상기 임계 수와 같거나 더 크면 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 상기 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 대응하는 데이터의 유닛 및 룩-어헤드 비트로 교체하고; 그리고
    데이터 비트 오류를 갖지 않는 상기 저장된 데이터의 유닛 및 룩-어헤드 비트 오류를 갖지 않는 룩-어헤드 비트를 판독하고 상기 데이터 비트 오류를 갖지 않는 저장된 데이터의 유닛 및 상기 룩-어헤드 비트 오류를 갖지 않는 룩-어헤드 비트를 다시 상기 저항성 비휘발성 메모리 어레이에 기록함으로써 상기 강한 리프레시를 수행하도록 더 구성되는, 메모리 시스템.
  4. 제3항에 있어서, 상기 메모리 컨트롤러는,
    정정된 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 기록하고, 상기 데이터 비트 오류를 갖는 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트 오류를 갖는 상기 룩-어헤드 비트를 교체하고, 그리고 상기 저항성 비휘발성 메모리 어레이의 메모리 셀에 대한 전류 분포가 상기 약한 리프레시에 대해서보다 더 크게 되도록 상기 데이터 비트 오류를 갖지 않는 저장된 데이터의 유닛 및 상기 룩-어헤드 비트 오류를 갖지 않는 룩-어헤드 비트를 기록함으로써 상기 강한 리프레시를 수행하도록 구성되는, 메모리 시스템.
  5. 제3항에 있어서, 상기 메모리 컨트롤러는,
    상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 영보다 더 크고 상기 ECC 비트의 상기 임계 수보다 더 적을 때 상기 저장된 데이터의 상기 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하고 정정된 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 상기 저항성 비휘발성 메모리 어레이에 기록함으로써; 그리고
    상기 저장된 데이터의 상기 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 상기 ECC 비트의 상기 임계 수와 같거나 더 크면 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 상기 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 대응하는 데이터의 유닛 및 룩-어헤드 비트로 교체함으로써,
    상기 약한 리프레시를 수행하도록 더 구성되는, 메모리 시스템.
  6. 제1항에 있어서, 상기 데이터 및 룩-어헤드 비트는 각각 반도체 다이 상에 형성된 여러 다른 저항성 비휘발성 메모리 어레이에 저장되거나, 집적 회로(IC) 패키지에 포함된 별개의 반도체 다이 상에 형성된 여러 다른 저항성 비휘발성 메모리 어레이에 저장되거나, 또는 별개의 IC 패키지에 포함된 별개의 반도체 다이 상에 형성된 여러 다른 저항성 비휘발성 메모리 어레이에 저장되는, 메모리 시스템.
  7. 저항성 비휘발성 메모리 어레이를 포함하는 메모리 시스템에서의 오류를 정정하기 위한 방법으로서,
    상기 저항성 비휘발성 메모리 어레이에 저장된 데이터의 유닛에서의 데이터 비트 오류 및 상기 저항성 비휘발성 메모리 어레이에 저장된 룩-어헤드 비트 중에서의 룩-어헤드 비트 오류의 수를 검출하는 단계로서, 상기 룩-어헤드 비트의 전체의 수는 데이터 비트의 전체의 수보다 더 적은, 단계;
    상기 룩-어헤드 비트의 수를 검출하는 단계;
    상기 룩-어헤드 비트 오류의 수를 상기 룩-어헤드 비트 오류의 임계 수와 비교하는 단계;
    상기 룩-어헤드 비트 오류의 수가 상기 룩-어헤드 비트 오류의 상기 임계 수와 같거나 초과하면 상기 저항성 비휘발성 메모리 어레이에 저장된 데이터 및 상기 룩-어헤드 비트의 강한 리프레시를 수행하는 단계; 및
    상기 룩-어헤드 비트 오류의 수가 상기 룩-어헤드 비트 오류의 상기 임계 수보다 더 적으면 상기 데이터 비트 오류를 갖는 상기 저장된 데이터의 상기 유닛 및 룩-어헤드 비트 오류를 갖는 상기 룩-어헤드 비트만을 리프레시함으로써 상기 데이터 및 상기 룩-어헤드 비트의 약한 리프레시를 수행하는 단계를 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  8. 제7항에 있어서, 상기 저항성 비휘발성 메모리 어레이는 상 변화 램(PCRAM), 저항성 램(RRAM) 또는 도전성-브리징 램(CBRAM) 중 적어도 하나를 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  9. 제7항에 있어서, 상기 룩-어헤드 비트 오류의 수를 검출하는 단계는, 상기 메모리 시스템의 파워업에 응답하여, 상기 메모리 시스템의 유휴 모드 동안, 또는 수신된 커맨드에 응답하여 수행되는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  10. 제7항에 있어서, 상기 룩-어헤드 비트 오류의 수를 검출하는 단계는, 미리 결정된 수의 파워업에 응답하여, 미리 결정된 수의 유휴 모드 동안, 또는 미리 결정된 수의 수신된 커맨드에 응답하여 수행되는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  11. 제7항에 있어서,
    상기 저장된 데이터의 유닛에서의 상기 데이터 비트 오류를 검출하는 단계;
    상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 오류 정정 코드(ECC) 비트의 수를 결정하는 단계로서, 상기 ECC 비트는 상기 저항성 비휘발성 메모리 어레이에 저장되고 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트에 대응하는, 상기 결정하는 단계; 및
    상기 ECC 비트의 수를 상기 ECC 비트의 임계 수와 비교하는 단계를 더 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  12. 제11항에 있어서, 상기 강한 리프레시를 수행하는 단계는,
    상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 영보다 더 크고 상기 ECC 비트의 상기 임계 수보다 더 적을 때 상기 저장된 데이터의 상기 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하고 정정된 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 상기 저항성 비휘발성 메모리 어레이에 기록하는 단계;
    상기 저장된 데이터의 상기 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 상기 ECC 비트의 상기 임계 수와 같거나 더 크면 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 대응하는 데이터의 유닛 및 룩-어헤드 비트로 교체하는 단계; 및
    상기 저항성 비휘발성 메모리 어레이로부터, 상기 데이터 비트 오류를 갖지 않는 저장된 데이터의 유닛 및 룩-어헤드 비트 오류를 갖지 않는 상기 룩-어헤드 비트를 판독하고, 상기 데이터 비트 오류를 갖지 않는 저장된 데이터의 유닛 및 상기 룩-어헤드 비트 오류를 갖지 않는 룩-어헤드 비트를 다시 상기 저항성 비휘발성 메모리 어레이에 기록하는 단계를 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  13. 제12항에 있어서, 상기 강한 리프레시를 수행하는 단계는,
    정정된 상기 저장된 데이터의 상기 유닛 및 룩-어헤드 비트를 기록하고, 상기 저장된 데이터의 상기 유닛 및 상기 룩-어헤드 비트를 교체하고, 그리고 상기 저항성 비휘발성 메모리 어레이의 메모리 셀에 대한 전류 분포가 상기 약한 리프레시에 대해서보다 더 크게 되도록 상기 데이터 비트 오류를 갖지 않는 저장된 데이터의 유닛 및 룩-어헤드 비트 오류를 갖지 않는 룩-어헤드 비트를 기록하는 단계를 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  14. 제11항에 있어서, 상기 약한 리프레시를 수행하는 단계는,
    상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 영보다 더 크고 상기 ECC 비트의 상기 임계 수보다 더 적을 때 상기 저장된 데이터의 유닛에서의 데이터 비트 오류 및 룩-어헤드 비트 오류를 정정하고 정정된 상기 저장된 데이터의 유닛 및 룩-어헤드 비트를 상기 저항성 비휘발성 메모리 어레이에 기록하는 단계; 및
    상기 저장된 데이터의 유닛에서의 상기 데이터 비트 오류 및 상기 룩-어헤드 비트 오류를 정정하는데 필요한 상기 ECC 비트의 수가 상기 ECC 비트의 상기 임계 수와 같거나 더 크면 저장된 데이터의 유닛 및 룩-어헤드 비트를 트랜지스터-기반 비휘발성 메모리 어레이에 저장된 대응하는 데이터의 유닛 및 룩-어헤드 비트로 교체하는 단계를 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
  15. 제7항에 있어서, 상기 강한 리프레시 또는 약한 리프레시를 수행하는 단계는 상기 메모리 시스템의 파워업에 응답하여 또는 상기 메모리 시스템의 유휴 모드 동안 상기 강한 리프레시 또는 상기 약한 리프레시를 수행하는 단계를 포함하는, 메모리 시스템에서의 오류를 정정하기 위한 방법.
KR1020160034301A 2015-05-29 2016-03-22 비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템 KR101793368B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/724,899 2015-05-29
US14/724,899 US9836349B2 (en) 2015-05-29 2015-05-29 Methods and systems for detecting and correcting errors in nonvolatile memory

Publications (2)

Publication Number Publication Date
KR20160140357A KR20160140357A (ko) 2016-12-07
KR101793368B1 true KR101793368B1 (ko) 2017-11-02

Family

ID=55542531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160034301A KR101793368B1 (ko) 2015-05-29 2016-03-22 비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템

Country Status (7)

Country Link
US (1) US9836349B2 (ko)
EP (1) EP3098815B1 (ko)
JP (1) JP6194390B2 (ko)
KR (1) KR101793368B1 (ko)
CN (1) CN106205683B (ko)
ES (1) ES2721751T3 (ko)
TW (1) TWI604459B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558525B2 (en) * 2016-06-30 2020-02-11 Taiwan Semiconductor Manufacturing Company, Ltd. Method of correcting errors in a memory array and a system for implementing the same
US10372566B2 (en) 2016-09-16 2019-08-06 Micron Technology, Inc. Storing memory array operational information in nonvolatile subarrays
KR20180090422A (ko) * 2017-02-02 2018-08-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN109509496B (zh) 2017-09-15 2020-12-22 华邦电子股份有限公司 电阻式存储器元件的操作方法
US10163515B1 (en) * 2017-09-25 2018-12-25 SK Hynix Inc. Memory system having feature boosting and operating method thereof
US10446246B2 (en) * 2018-03-14 2019-10-15 Silicon Storage Technology, Inc. Method and apparatus for data refresh for analog non-volatile memory in deep learning neural network
US10475519B2 (en) 2018-03-23 2019-11-12 Micron Technology, Inc. Methods for detecting and mitigating memory media degradation and memory devices employing the same
CN110473581B (zh) * 2018-05-09 2020-12-29 建兴储存科技(广州)有限公司 固态储存装置及其相关控制方法
US10585625B2 (en) * 2018-07-12 2020-03-10 Micron Technology, Inc. Determination of data integrity based on sentinel cells
WO2020031435A1 (ja) 2018-08-06 2020-02-13 ソニーセミコンダクタソリューションズ株式会社 記憶制御装置、記憶装置および記憶制御方法
TWI676988B (zh) * 2018-08-30 2019-11-11 黃志仁 應用於記憶體的讀出電路
DE102018219877A1 (de) * 2018-11-20 2020-05-20 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
TWI671750B (zh) * 2018-11-28 2019-09-11 華邦電子股份有限公司 記憶體的控制方法及非暫態電腦可讀媒體
US10573364B1 (en) * 2018-12-13 2020-02-25 Nxp Usa, Inc. Magnetic disturb diagnostic system for MRAM
CN111752768B (zh) * 2019-03-29 2024-01-23 华邦电子股份有限公司 存储器装置及其错误检测方法
US10936209B2 (en) * 2019-06-06 2021-03-02 Micron Technology, Inc. Memory error indicator for high-reliability applications
CN112151104B (zh) * 2019-06-28 2023-08-15 华邦电子股份有限公司 存储器存放装置及其动态数据修复的方法
US10942655B2 (en) * 2019-07-09 2021-03-09 Seagate Technology Llc Mitigating data errors in a storage device
KR20210063561A (ko) * 2019-11-25 2021-06-02 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
CN113284533B (zh) * 2020-02-20 2023-10-13 华邦电子股份有限公司 存储器装置和调整用于存储器装置的参数的方法
US11663124B2 (en) * 2020-02-25 2023-05-30 Micron Technology, Inc. Apparatuses and methods for interfacing on-memory pattern matching
JP7471883B2 (ja) 2020-03-19 2024-04-22 キオクシア株式会社 メモリシステム
CN111784342B (zh) * 2020-06-28 2023-08-25 广东金宇恒软件科技有限公司 一种基于大数据集中支付动态监控管理系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008118705A1 (en) 2007-03-28 2008-10-02 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US20100153628A1 (en) 2008-12-15 2010-06-17 Samsung Electronics Co., Ltd. Method of fabricating systems including heat-sensitive memory devices
JP2013134595A (ja) 2011-12-26 2013-07-08 Toshiba Corp 半導体記憶装置
US20130336047A1 (en) 2012-04-24 2013-12-19 Being Advanced Memory Corporation Cell Refresh in Phase Change Memory
US20150049538A1 (en) * 2013-08-19 2015-02-19 Sony Corporation Storage control device, storage device, information processing system, and storage control method

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1286360A3 (en) * 2001-07-25 2006-12-06 Hewlett-Packard Company Manufacturing test for a fault tolerant magnetoresistive solid-state storage device
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
US6704230B1 (en) 2003-06-12 2004-03-09 International Business Machines Corporation Error detection and correction method and apparatus in a magnetoresistive random access memory
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7099221B2 (en) * 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US7900120B2 (en) * 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
KR20080080882A (ko) 2007-03-02 2008-09-05 삼성전자주식회사 Ecc용 레이어를 구비하는 다층 구조 반도체 메모리 장치및 이를 이용하는 에러 검출 및 정정 방법
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US8028211B1 (en) 2007-03-29 2011-09-27 Integrated Device Technology, Inc. Look-ahead built-in self tests with temperature elevation of functional elements
US7877657B1 (en) 2007-03-29 2011-01-25 Integrated Device Technology, Inc. Look-ahead built-in self tests
KR101291721B1 (ko) 2007-12-03 2013-07-31 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치, 이를 포함하는메모리 시스템
KR20090086815A (ko) 2008-02-11 2009-08-14 삼성전자주식회사 메모리 장치 및 메모리 열처리 방법
JP4489127B2 (ja) * 2008-02-29 2010-06-23 株式会社東芝 半導体記憶装置
KR20120059569A (ko) 2009-08-21 2012-06-08 램버스 인코포레이티드 인-시츄 메모리 어닐링
KR101649395B1 (ko) * 2009-12-02 2016-08-19 마이크론 테크놀로지, 인크. 비휘발성 메모리에 대한 리프레시 아키텍처 및 알고리즘
KR20110105257A (ko) 2010-03-18 2011-09-26 삼성전자주식회사 적층 구조를 갖는 반도체 메모리 장치 및 에러 정정 방법
KR101188263B1 (ko) * 2010-10-14 2012-10-05 에스케이하이닉스 주식회사 반도체 메모리 장치
KR101796116B1 (ko) * 2010-10-20 2017-11-10 삼성전자 주식회사 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법
JP2012208537A (ja) * 2011-03-29 2012-10-25 Nec Saitama Ltd メモリ制御装置およびメモリ制御方法
JP5703939B2 (ja) * 2011-04-28 2015-04-22 株式会社バッファロー 記憶装置、コンピュータ装置、コンピュータの制御方法、およびコンピュータプログラム
US20130268717A1 (en) 2012-04-09 2013-10-10 Ross S. Scouller Emulated electrically erasable memory having sector management
JP5853906B2 (ja) * 2012-08-24 2016-02-09 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
US9183091B2 (en) 2012-09-27 2015-11-10 Intel Corporation Configuration information backup in memory systems
KR20140045168A (ko) 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9087614B2 (en) * 2012-11-27 2015-07-21 Samsung Electronics Co., Ltd. Memory modules and memory systems
US20140229655A1 (en) 2013-02-08 2014-08-14 Seagate Technology Llc Storing Error Correction Code (ECC) Data In a Multi-Tier Memory Structure
KR20140113191A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 반도체 메모리 장치 및 이의 리프레쉬 방법
US9342443B2 (en) 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system
US9342401B2 (en) * 2013-09-16 2016-05-17 Sandisk Technologies Inc. Selective in-situ retouching of data in nonvolatile memory
US9552244B2 (en) * 2014-01-08 2017-01-24 Qualcomm Incorporated Real time correction of bit failure in resistive memory
US9324426B2 (en) * 2014-06-02 2016-04-26 Integrated Silicon Solution, Inc. Method for improving sensing margin of resistive memory
DE102014211111A1 (de) * 2014-06-11 2015-12-17 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
KR102116980B1 (ko) * 2014-07-02 2020-05-29 삼성전자 주식회사 리던던시 메모리 셀의 리프레쉬 동작을 제어하는 반도체 메모리 장치
US10353598B2 (en) * 2014-10-06 2019-07-16 Sandisk Technologies Llc System and method for refreshing data in a memory device
US9959059B2 (en) * 2014-10-20 2018-05-01 Sandisk Technologies Llc Storage error management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008118705A1 (en) 2007-03-28 2008-10-02 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US20100153628A1 (en) 2008-12-15 2010-06-17 Samsung Electronics Co., Ltd. Method of fabricating systems including heat-sensitive memory devices
JP2013134595A (ja) 2011-12-26 2013-07-08 Toshiba Corp 半導体記憶装置
US20130336047A1 (en) 2012-04-24 2013-12-19 Being Advanced Memory Corporation Cell Refresh in Phase Change Memory
US20150049538A1 (en) * 2013-08-19 2015-02-19 Sony Corporation Storage control device, storage device, information processing system, and storage control method

Also Published As

Publication number Publication date
CN106205683A (zh) 2016-12-07
US9836349B2 (en) 2017-12-05
CN106205683B (zh) 2019-04-02
EP3098815A1 (en) 2016-11-30
JP6194390B2 (ja) 2017-09-06
ES2721751T3 (es) 2019-08-05
JP2016225007A (ja) 2016-12-28
US20160350178A1 (en) 2016-12-01
KR20160140357A (ko) 2016-12-07
TW201642276A (zh) 2016-12-01
EP3098815B1 (en) 2019-01-30
TWI604459B (zh) 2017-11-01

Similar Documents

Publication Publication Date Title
KR101793368B1 (ko) 비휘발성 메모리에서의 오류를 검출 및 정정하기 위한 방법 및 시스템
KR101767813B1 (ko) 비휘발성 메모리 데이터 관리를 위한 방법 및 시스템
US9583183B2 (en) Reading resistive random access memory based on leakage current
US10452471B2 (en) Non-volatile memory with dynamic write abort detection and recovery
US10153046B1 (en) Non-volatile memory with backing up of programmed data
US10915394B1 (en) Schemes for protecting data in NVM device using small storage footprint
US20180089024A1 (en) Non-volatile memory with read modes
US20080215952A1 (en) Hybrid flash memory device, memory system, and method controlling errors
US11036582B2 (en) Uncorrectable error correction code (UECC) recovery time improvement
US20160132388A1 (en) Semiconductor memory device and ecc method thereof
US10074427B2 (en) Shaped data associated with an erase operation
TW201633300A (zh) 半導體儲存裝置
US9711227B1 (en) Non-volatile memory with in field failure prediction using leakage detection
JP2014110071A (ja) エラー訂正パリティビットによるmramスマートビット書き込みアルゴリズムの方法および装置
US9734903B2 (en) Disturb condition detection for a resistive random access memory
US11062756B2 (en) Extending operating temperature of storage device
US11003551B2 (en) Non-volatile storage system with program failure recovery
US11455210B1 (en) Error detection and correction in memory
TW202217828A (zh) 用於監測及管理記憶體裝置之系統及方法

Legal Events

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