KR20140059821A - 메모리 리프레시 방법 및 장치 - Google Patents

메모리 리프레시 방법 및 장치 Download PDF

Info

Publication number
KR20140059821A
KR20140059821A KR20147007711A KR20147007711A KR20140059821A KR 20140059821 A KR20140059821 A KR 20140059821A KR 20147007711 A KR20147007711 A KR 20147007711A KR 20147007711 A KR20147007711 A KR 20147007711A KR 20140059821 A KR20140059821 A KR 20140059821A
Authority
KR
South Korea
Prior art keywords
memory
block
error
refresh
controller
Prior art date
Application number
KR20147007711A
Other languages
English (en)
Other versions
KR102000307B1 (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 KR20140059821A publication Critical patent/KR20140059821A/ko
Application granted granted Critical
Publication of KR102000307B1 publication Critical patent/KR102000307B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Abstract

파워 온 되고 있는 메모리 디바이스에 응답하여 에러에 대해 메모리 디바이스의 일부를 체크하고, 에러에 대해 비휘발성 메모리의 일부를 체크할 때 에러가 발견되면 메모리 디바이스에 정정된 데이터를 재프로그래밍하는 것을 포함하는 것들과 같은 메모리 리프레시 방법 및 장치가 개시된다. 다른 메모리 리프레시 방법 및 장치가 개시된다.

Description

메모리 리프레시 방법 및 장치{MEMORY REFRESH METHODS AND APPARATUSES}
우선권 출원
본 출원은 2011년 8월 31일자 미국 출원 제13/222,282호로부터의 우선권 이익을 주장한다.
다양한 컴퓨터 시스템 및 전자 디바이스는 비휘발성 메모리를 사용한다. 다시 말하면, 메모리는 전력이 접속해제될 때 저장된 데이터를 잃지 않는다. 이들 비휘발성 메모리는 전자적으로 프로그래밍, 읽기 및 소거될 수 있고, 디지털 오디오 플레이어에서의 음악, 디지털 카메라에서의 사진 및 셀룰러 전화에서의 구성 데이터와 같은 다양한 데이터를 저장하는데 잘 맞다. 그러한 메모리는, 부분적으로는 그것이 프로그래밍되기 전에 플래시 동작이 메모리 셀의 블록의 컨텐트를 소거하는데 사용되기 때문에 흔히 플래시 메모리라고 명명되어 알려져 있는 디바이스를 포함한다. 이러한 유형의 메모리는 흔히 콤팩트플래시 메모리 카드, USB 플래시 메모리 드라이브 및 다른 그러한 디바이스와 같은 제품에서 소비자 사용을 위해 패키징된다.
전형적으로 플래시 메모리는 다수의 셀을 포함하고, 각각 적어도 2개의 데이터 상태 중 하나로 프로그래밍가능한데, 각각의 데이터 상태는 데이터의 디지트(예컨대, 비트) 또는 디지트들과 같은 데이터 값을 표현할 수 있다. 전형적 플래시 메모리 셀은 메모리 셀의 소스와 드레인 영역 사이의 전기적 도전을 제어하는 부동 게이트 또는 전하 트랩과 같은 전기적으로 격리된 전하 저장 구조를 갖는 전계 효과 트랜지스터를 포함한다. 데이터는 전하 저장 구조에 저장된 전하, 및 소스와 드레인 영역 사이에 관찰된 결과적 도전성 변화에 의해 표현된다.
전하 저장 구조는 메모리 셀의 소스와 드레인 영역으로부터 제어 게이트를 분리한다. 전하 저장 구조에 저장된 전자는 터널 산화물과 같이, 유전체 재료에 의해 드레인 및 소스와 제어 게이트로부터 전기적으로 절연된다. 메모리 셀이 지정된 전압을 제어 게이트에 놓음으로써 읽혀질 때, 디바이스의 소스와 드레인 사이의 전기적 임피던스는, 메모리 셀의 유효 임계 전압(Vt)에 따라, 전류가 흐르게 또는 흐르지 않게 할 것이다. 저장된 전하는 제어 게이트에 의해 만들어진 전계를 부분적으로 상쇄 또는 수정하여, 메모리 셀의 유효 임계 전압(Vt) 변화의 결과를 초래한다. 제어 게이트에 가해진 특정 전압에 반응하여 전류의 존재 또는 부재는 메모리 셀이 일 또는 영 값과 같은 특정 데이터 값을 표현하는 특정 데이터 상태에 있는 지 결정하도록 감지 및 사용될 수 있다.
일부 플래시 메모리 셀은 3개 이상의 데이터 상태 중 하나로 프로그래밍될 수 있고, 흔히 다중-레벨 메모리 셀이라고 지칭된다. 예컨대, 4개 상태 중 하나로 프로그래밍될 수 있는 다중-레벨 메모리 셀은 셀마다 2개 데이터 비트를 저장할 수 있어서, 관용적 단일-비트 메모리 셀에 비해 저장될 수 있는 데이터의 양을 두 배로 한다.
전형적으로 메모리 셀은 2-차원 어레이의 로우 및 칼럼으로 배열되는데, 로우의 메모리 셀은 액세스 라인을 통해 결합되고, 흔히 워드라인이라 부르고, 칼럼의 메모리 셀은 데이터 라인에 결합되고, 흔히 비트라인이라고 부른다. 워드라인 및 비트라인은 (때때로 "쓰기"라고 지칭되는) 프로그래밍을 위해 특정 메모리 셀을 선택하거나 읽기를 위해 특정 메모리 셀을 선택하는 데이터 프로그램 및 읽기 기능 동안 사용된다.
메모리 셀은 우주선, 읽기-유발 간섭, 및 플래시 메모리 셀의 전하 저장 구조에 저장된 전하를 바꿀 수 있는 다른 인자와 같이, 저장된 데이터의 정확도에 영향을 줄 수 있는 다양한 인자에 민감하다. 유발된 전계 또는 자계, 용량성 결합, 및 도체 및 절연체의 유한 저항은 또한 비트라인과 워드라인 사이의 원치않는 결합 또는 간섭을 야기할 수 있다.
이들 인자 중 어느 것도 메모리 셀 읽기의 정확도를 줄일 수 있다. 이들과 같은 인자는, 가능한 데이터 상태의 수가 증가함에 따라 인접하는 데이터 상태 사이의 차이가 정확히 알아보기 더 어려워지기 때문에, 메모리 셀마다 2개의 가능한 데이터 상태보다 더 많이 갖는 다중-레벨 메모리에서 더더욱 중요할 수 있다.
도 1은 본 발명의 일부 실시예를 실시하는데 사용될 수 있는 비휘발성 메모리 셀의 횡단면도;
도 2는 본 발명의 일부 실시예와 일치하는, NAND 플래시 메모리 구성의 비휘발성 메모리 셀의 스트링의 개략도;
도 3은 본 발명의 일부 실시예와 일치하는, NAND 플래시 비휘발성 메모리의 블록의 개략도;
도 4는 본 발명의 일부 실시예와 일치하는, 비휘발성 메모리의 블록 선도;
도 5는 본 발명의 일부 실시예와 일치하는, 파워 사이클-기반 비휘발성 메모리 리프레시 방법을 예시하는 흐름도;
도 6은 본 발명의 일부 실시예와 일치하는, 백그라운드 비휘발성 메모리 리프레시 방법을 예시하는 흐름도;
도 7은 본 발명의 일부 실시예와 일치하는, 비휘발성 메모리 리프레시 방법을 채용하도록 동작가능한 다양한 디바이스도.
본 발명의 예시적 실시예의 이하의 상세한 설명에 있어서, 도면 및 예시의 방식으로 본 발명의 특정 예의 실시예를 참조한다. 이들 예는 당업자가 본 발명을 실시할 수 있도록 충분히 상세하게 설명되고, 본 발명이 다양한 목적 또는 실시예에 어떻게 적용될 수 있는지 예시하도록 역할한다. 본 발명의 다른 실시예가 존재하고 본 발명의 범위 내에 있고, 논리적, 기계적, 전기적 및 다른 변경이 본 발명의 범위 또는 주제로부터 벗어남이 없이 이루어질 수 있다. 그렇지만, 본 명세서에서 설명된 발명의 다양한 실시예의 특징 또는 한정은 그것들이 편입되는 예시의 실시예에 필수적이지만, 본 발명의 다른 실시예 또는 발명 전체를 한정하는 것이 아니며, 본 발명, 그 엘리먼트, 동작 및 애플리케이션에 대한 어떠한 참조도 본 발명을 전체적으로 한정하는 것은 아니며 이들 예시의 실시예를 정의하는 역할을 할 뿐이다. 그래서, 이하의 상세한 설명은 본 발명의 다양한 실시예의 범위를 한정하지 않으며, 첨부 청구범위에 의해서만 정의될 뿐이다.
도 1은 예시의 비휘발성 메모리 셀을 예시한다. 소스(101) 및 드레인(102)이 p-형 반도체 재료와 같이, 기판(103)에 형성된다. 소스(101), 드레인(102) 및 기판(103)은 일부 실시예에서는 실리콘으로 형성되고, 실리콘에서의 전자 농도를 증가시키기 위해 인, 비소 또는 안티몬과 같은 5개의 원자가 전자를 갖는 도판트를 갖고 있거나 또는 정공 농도를 증가시키기 위해 붕소, 갈륨, 인듐 또는 알루미늄과 같은 3개의 원자가 전자를 갖는 도판트를 갖고 있다. 도판트는 전형적으로는 적은, 제어된 수량으로 부가되어 반도체 재료에서의 소망 정공 또는 전자 농도를 만들어내어, 소스(101)와 드레인(102)에서와 같이 전자의 과잉이 존재하면 n-형 재료의 결과를 초래하고 기판 재료(103)에서와 같이 정공의 초과가 존재하면 p-형 재료의 결과를 초래한다.
실리콘 산화물(SiO2)과 같은 절연체 재료는 금속 또는 도전성 폴리실리콘과 같은 도체, 또는 전하 트랩(예컨대, 질화물 재료로부터 형성)으로부터 제조된, 부동 게이트(105)와 같은 전하 저장 구조를 내부에 매립한 절연 층(104)을 형성하도록 사용된다. 제어 게이트(106)는 도전성 재료로 유사하게 형성된다. 부동 게이트(105)는 메모리 셀의 또 다른 도전성 엘리먼트에 직접 전기적 결합되지는 않지만, 절연 재료(104) 내에서 "부동"이다. 부동 게이트(105)는 절연 층(104)(예컨대, 실리콘 이산화물(SiO2) 및/또는 산화물, 질화물 및 산화물의 조합(ONO))의 터널 유전체 부분과 같이, 절연 층(104)의 얇은 (예컨대, 10 나노미터) 부분에 의해 소스(101)와 드레인(102) 사이의 p-형 기판 재료(103)의 영역으로부터 분리된다.
동작에 있어서, 전하 저장 구조(105)는 메모리 셀의 다른 컴포넌트로부터의 그 전기적 격리에 기인하여 전하를 저장할 수 있다. 전하 저장 구조(105)의 전하 레벨을 프로그래밍 또는 소거하는 것은 Fowler-Nordheim 터널링으로 알려져 있는 터널링 프로세스를 통해 수행될 수 있는데, 기판(103)으로부터 전하 저장 구조(105)를 분리시키는 유전체 재료(104)의 부분을 통해 전자가 터널링하는 것이다. 기판(103)으로부터 전하 저장 구조(105)를 분리시키는 유전체 재료 또는 재료들의 부분은 관용적으로 터널 유전체라고 지칭된다.
대부분의 플래시 메모리 디바이스는, 읽기, 프로그램 및 소거 동작을 수행하는데 사용되는 회로 또는 메모리 셀의 배열에 기반하여 NOR 플래시 또는 NAND 플래시로서 카테고리가 분류된다.
NOR 플래시 메모리에 있어서 메모리 셀 프로그래밍의 일례에 있어서, 소스(101)는 접지될 수 있고 6 볼트와 같은 공급 전압은 드레인(102)에 가해질 수 있다. 일 실시예에 있어서, 드레인 전압은 프로그래밍될 메모리 셀을 식별하도록 사용된 비트라인을 통해 가해진다. 12 볼트와 같은 더 높은 전압이 또한 메모리 셀의 제어 게이트(106)에 놓여, 양으로 대전된 제어 게이트로의 전자의 인력에 기인하여 반전 영역이 p-형 기판에 형성하게 강제한다. p-형 재료에서의 반전 영역과 조합하여 소스와 드레인 사이의 전압 차이는, 106에서의 제어 게이트 전압에 의해 발생된 전계 및 전자의 운동 에너지가 전하 저장 구조(105)로의 그리고 터널 유전체를 가로지르는 고-에너지("핫"으로도 알려져 있음) 전자의 Fowler-Nordheim 터널링의 결과를 초래하게 되도록, p-형 기판(103)의 반전 영역을 통해 소스(101)와 드레인(102) 사이에 상당한 전자가 흐르게 초래한다.
전하 저장 구조는 그로써 소스(101)와 드레인(102) 사이의 기판(103)의 영역 상에서의 어떠한 제어 게이트 양 전하의 효과에 반작용하는 음 전하를 채택하여, p-형 기판 재료(103)에서의 반전 영역을 가로지르는 도전의 결과를 초래하도록 워드라인을 통해 제어 게이트(106)에 가해져야 하는 전압을 올린다. 다시 말하면, 읽기 동작 동안 워드라인의 전압이 고 전압(5 볼트 등)으로 갈 때, 셀은 프로그램 동작 동안 전하 저장 구조(105)에 저장된 전자의 결과로서 더 높은 임계 전압에 기인하여 턴 온 하지 않을 것이다. 제어 게이트에 가해진 읽기 전압은 소거된 메모리 셀의 임계 전압(Vt)보다 더 크지만, 프로그래밍되어 있는 셀의 기판(103)에서의 반전 영역을 가로지르는 도전을 허용하기에는 충분히 크지 않다.
NAND 플래시에서의 메모리 셀을 프로그래밍하는 일례에 있어서, 도 1의 메모리 셀의 소스(101) 및 드레인(102)이 접지될 수 있고, 제어 게이트(106)가 어쩌면 20 볼트의 전압으로 갈 수 있다. 이러한 전압은, 더 높은 전압이 메모리 셀의 소스와 드레인 사이에 슬로잉하는 "핫" 전자의 부재를 보상하기 때문에, NOR 플래시 방법을 사용하여 동일 메모리 셀을 프로그래밍하도록 사용된 12 볼트 제어 게이트 전압보다 상당히 더 높다.
NOR 플래시 메모리 회로를 사용하는 메모리 셀의 소거의 일례에 있어서, 유사한 전자 터널링이 전하 저장 구조(105)로부터 메모리 셀의 소스(101)로 일어날 수 있다. 소스(101)는 일부 실시예에서는 소거 성능을 강화하기 위해 드레인보다 더 깊게 확산된다. (12 볼트와 같은) 양의 전압이 소스(101)에 가해질 수 있고, 제어 게이트(106)가 접지될 수 있고, 드레인(102)이 일례에서는 소거 동작을 수행하도록 접속해제되어 남아있을 수 있다. 소스(101)에서의 큰 양의 전압은 음으로 대전된 전자를 끌어당겨, 그것들이 절연 층(104)을 통해 터널링하여 부동 게이트(105)를 떠나게 야기한다. 소거 동작 동안 소스(101)와 드레인(102) 사이에 흐르는 전류는 매우 작기 때문에, 소거 동작을 수행하는 것은 매우 작은 전류가 들고 비교적 작은 전력을 소비한다.
또 다른 예에 있어서, NAND 메모리 구성, 소스(101) 및 드레인(102)에서의 메모리 셀 소거 동작은 부동으로 남겨질 수 있지만 기판 재료(103)는 높은 양의 전압(20 볼트 등)으로 가서, 음으로 대전된 전자를 끌어당기고 그것들이 전하 저장 구조(105)로부터 산화물 절연 층(104)을 통해 기판 재료(103)로 터널링하게 야기한다. 이러한 방법은, 기판 재료(103)에서의 채널 영역이 전자 저장 구조(105)로부터 전자를 수신하기 때문에, 때로는 "채널 소거"라고 알려져 있다.
도 1에 도시된 것과 같은 메모리 셀은 워드라인으로 알려져 있는 액세스 라인, 및 비트라인으로 알려져 있는 데이터 라인을 통해 어드레싱되는 어레이에 배열될 수 있고, 도 2에 도시된 바와 같다. 도 2는 단일 비트라인에 선택적으로 결합될 수 있는 메모리 셀의 스트링을 포함하는 NAND 플래시 메모리 어레이의 부분을 나타내는데, 스트링에 도시된 메모리 셀의 각각은 워드라인(202)을 통해 더 선택가능하다.
메모리 셀(0-31)의 스트링은 소스 라인(203)에 스트링의 다른 사이드 상에서 선택적으로 결합될 수 있다. 스트링은 각자의 선택 트랜지스터(204)의 동작에 의해 비트 라인(201) 및 소스 라인(203)에 결합(또는 그로부터 격리)될 수 있다.
일례에 있어서 선택된 단일-레벨 메모리 셀(202)의 읽기 동작을 수행하기 위해, 워드 라인 및 그래서 선택된 메모리 셀(202)의 제어 게이트는 낮지만 양의 전압 레벨로 유지될 수 있는 한편 선택되지 않은 메모리 셀의 워드 라인은 충분히 높은 전압으로 가서 선택되지 않은 메모리 셀이 개개의 메모리 셀의 전하 저장 구조에 있을 수 있는 어떠한 전하에도 무관하게 도전하도록 야기할 수 있다. 선택된 메모리 셀이 대전되지 않은 전하 저장 구조를 가지면 그것은 제어 게이트에서의 낮은 양의 전압 레벨의 결과로서 도전할 것이지만, 전하 저장 구조가 음의 전하를 가지면 그것은 셀이 도전하지 않게 되도록 제어 게이트에 가해진 낮은 양의 전압 위로 메모리 셀(202)의 임계 전압을 올릴 것이다. 그래서, 예컨대, 메모리 셀의 전하 저장 구조의 데이터 상태는 비트라인(201)과 소스 라인(203) 사이에 흐르는 전류 또는 도전성을 모니터링함으로써 결정될 수 있다.
일례에서는 선택된 메모리 셀(202)을 프로그래밍하기 위해, 비트라인(201)과 소스 라인(203)이 접지된 비트라인(201)과 소스 라인(203)에 스트링을 결합하는 라인 선택 트랜지스터(204)를 통해 접지될 수 있다. 선택 트랜지스터(204)의 게이트는 그래서 다시 트랜지스터가 도전하게 되도록 전압 소스에 결합된다. 프로그래밍되고 있지 않은 메모리 셀의 제어 게이트는 그들 메모리 셀의 우연한 프로그래밍을 금하도록 충분히 높은 전압(예컨대, 10 볼트)으로 간다. 선택된 메모리 셀(202)의 제어 게이트는, 전자가 전하 저장 구조 상으로 터널링하게 되도록, 20 볼트와 같은 상당히 더 높은 전압에 결합된다.
그렇지만, 우주선, 프로그램-유발 장애 및 읽기-유발 장애와 같은 외부 인자는 저장된 전하가 시간에 따라 바뀌게 야기하여, 읽기 에러 및 다른 부정적 효과를 야기할 수 있는 프로그래밍된 메모리 셀의 임계 전압(Vt) 변동의 결과를 초래한다.
도 2의 것들과 같은 메모리 셀의 스트링은, 블록이 플래시 메모리의 가장 작은 소거가능한 유닛이도록, 블록으로 편성될 수 있다. 도 3은 NAND 플래시 메모리의 블록을 나타내는데, 본 발명의 일부 실시예를 실시하도록 사용될 수 있다. 여기서, 301로 도시된 64개의 별개의 워드 라인은 블록에서 메모리의 64개의 별개로 어드레싱가능한 물리적 페이지를 제공하고, 각각의 페이지는 에러 정정 코드(ECC) 데이터와 같이, (때로는 스페어 비트라고 지칭되는) 오버헤드 데이터의 128 바이트 및 사용자 데이터의 4096 바이트를 저장할 수 있는 것이다. ECC 데이터는 일부 메모리 에러를 검출 및/또는 정정하도록 사용될 수 있다. 이러한 예의 실시예에 있어서, 블록은 그래서 오버헤드 데이터의 8kB 더하기 사용자 데이터의 256kB를 저장할 수 있다. 관용적 플래시 메모리 디바이스는 많은 그러한 블록을 포함하고, 예를 들어, 1024 블록 메모리 디바이스는 사용자 데이터 저장의 256MB를 제공한다.
그러한 메모리 디바이스의 더 상세한 예는 도 4에 도시되어 있는데, 도 3에 도시된 블록과 같은 블록의 다중 플레인을 예시하는 바, 본 발명의 일부 실시예를 실시하는데 사용될 수 있다. 여기서, 401에 도시된 바와 같은 플레인(0)은 짝수 번호의 메모리 블록을 포함하는 한편, 402에 도시된 플레인(1)은 홀수-번호의 메모리 블록을 포함하고, 총 1024 블록에 대한 것이다. 메모리를 2개 이상의 플레인으로 분할하는 것은 더 빠른 메모리 동작을 제공할 수 있지만, 짝수 및 홀수-번호 플레인을 동시에 읽기, 프로그래밍, 및 소거하는 것으로 메모리 동작을 제한할 수 있다. 예컨대, 플레인(0)의 블록(0)에 수행된 소거 동작은 또한 플레인(1)의 블록(1) 소거를 포함하고, 플레인(0)의 블록(1022)에 페이지를 프로그래밍하는 것은 플레인(1)의 블록(1023)에서 대응하는 페이지를 또한 프로그래밍하는 결과를 초래할 수 있다.
프로그래밍 동작 및 읽기 동작은 그것이 쓰기 동작에서는 쓰이고 있는 메모리 셀에 또는 읽기 동작에서는 메모리 셀 스트링에서의 비-선택된 셀에 전압을 인가하는 것을 포함한다는 점에서 유사하기 때문에, 다중 읽기, 프로그램 및/또는 소거 동작은 결국에는 프로그래밍된 메모리 셀의 데이터 상태에 영향을 미칠 수 있다. 예컨대, 관용적 NAND 플래시 메모리는 페이지마다 수만 또는 수십만의 읽기 후에 손상된 그 프로그래밍된 메모리 셀의 데이터 상태를 가질 수 있다.
메모리에 저장된 에러 정정 데이터를 사용하여 일부 에러가 정정될 수 있기는 하지만, 더 신뢰할 수 있고 효율적인 메모리 동작을 제공하기 위해 그리고 다중-비트 또는 다른 회복불능 에러를 방지하기 위해 일어나는 읽기 에러의 수를 제한하는 것이 바람직할 수 있다. 예컨대, 도 3에 도시된 바와 같은 64개 페이지의 메모리 블록은 64번째 페이지가 읽히기 전에 처음 63개 페이지를 읽도록 블록에 수행된 수백만의 읽기 동작을 가져서, 64번째 페이지에 회복불능 읽기 에러의 상당한 가능성을 초래할 수 있다.
그래서 본 발명의 일부 실시예는 저장된 데이터의 손상 또는 손실을 방지하기 위해 시간에 걸쳐 메모리를 리프레시(예컨대, 복사 및 재프로그래밍)함으로써 메모리 에러의 빈도를 줄이려고 한다. 메모리를 리프레시하는 것은 프로그래밍 이후 시간의 경과, 읽기 에러 임계값 초과, 또는 메모리 디바이스 또는 메모리 컨트롤러 파워 온(직접적으로, 또는 간접적으로, 메모리 디바이스에 결합된 메모리 컨트롤러를 파워 온하는 것에 의해서 등) 과 같은 인자의 결과로서 수행될 수 있다.
더 상세한 예시의 실시예에 있어서, 메모리 컨트롤러는 어떤 임계값을 초과하는 메모리 에러 레벨을 갖는 블록을 검출하도록 시스템적으로 메모리를 통독하고, 에러가 회복불능으로 되기 전에 블록을 리프레시한다. 메모리 셀이 프로그래밍되는 횟수를 제한하는 것이 바람직할 수 있기 때문에, 최소 에러 임계값이 초과되지 않으면 데이터를 리프레시하지 않음으로써 불필요한 프로그래밍이 회피될 수 있다. 예컨대, 에러 정정 데이터가 페이지에서 24 비트의 정정을 가능하게 하면, 블록은, 블록에서 수행된 페이지 읽기 동작에서 정정가능한 비트의 반(이 예에서는 12 비트)이 에러 있는 것으로 발견되면, 리프레시될 수 있을 뿐이다.
휴대용 게임 시스템, 스마트폰, 휴대용 미디어 디바이스, 및 다른 그러한 디바이스와 같은 일부 디바이스는 비교적 빈번하게 파워 사이클링(즉, 파워 온 및 파워 오프)되어, 모든 메모리를 스캔해 내고 잠재적 읽기 에러를 효과적으로 관리하는 디바이스의 능력을 감소시킨다. 그래서 본 발명의 일부 실시예는 파워 사이클을 사용하여 메모리 스캔을 트리거링하고 동작을 리프레시하고 이들 동작을 세립 레벨 상에서 수행함으로써와 같이, 파워 사이클링을 사용하여 비휘발성 메모리에서의 에러를 관리한다.
단일 메모리 스캔 및 리프레시 동작의 영향은 일례에서는 단일 블록에 저장된 아마도 수메가바이트의 데이터의 복사 및 재프로그래밍이 예컨대 수백 밀리초로 완료될 수 있게 되도록 블록 레벨 상에서 스캔 및 리프레시함으로써 최소화될 수 있다. 추가적 예에 있어서, 적어도 하나의 다른 블록이 각각의 파워 온에 응답하여 스캐닝되어, 메모리의 그 블록이 정기적으로 필요하면 스캔 및 리프레시됨을 보장한다.
디바이스 동작 동안, 스캔은 백그라운드 태스크로서 블록-대-블록 기준으로 계속할 수 있고, 어떠한 필요한 리프레시도 백그라운드 태스크의 일부로서 또는 디바이스의 다음 파워 사이클의 일부로서 완료되도록 큐잉된다. 파워가 상실되면, 디바이스 재시작 프로세스는 일례에서는 (예컨대, 리프레시를 위해 마크된 블록을 리프레시하는 것이 파워가 상실되기 전에 완료되지 않았을 때 등) 디바이스로부터의 메모리의 블록이 이미 리프레시를 위해 마크되어 있는지 결정하는 것을 포함한다. 이 방법은 추가적 예에서는 추적 메커니즘에 의해 보충될 수 있는데, 각각의 블록에 수행된 읽기를 추적하고 (예컨대, 천번의 읽기마다) 주기적으로 에러에 대해 블록의 수개의 페이지를 체크한다.
에러에 대해 체크되고 있는 현재 블록의 신원은, 레지스터에 또는 메모리 어레이 자체의 일부에와 같이, 비휘발성 메모리에 저장될 수 있고, 백그라운드 태스크로서 수행되거나 파워 사이클링에 의해 트리거링되는 블록 체크가 각각의 파워 사이클에 대해 동일 블록에서 재시작하기보다는 메모리 모두를 통해 진행함을 보장하도록 사용될 수 있다. 리프레시는, 큐잉되거나 미완료 블록 리프레시가 파워 온 시퀀스 완료 후에 디바이스 동작 동안 또는 파워 온 시퀀스의 일부로서 완료될 수 있도록, 리프레시를 위한 블록을 마크함으로써 파워 사이클링을 가로질러 더 추적될 수 있다. 추가적 예에 있어서, 비휘발성 메모리는 또한 디바이스 또는 블록마다 페이지 읽기 수를 저장하여, 빈번하게 리부팅하는 디바이스가 디바이스 파워 오프 때 페이지 읽기의 카운트를 상실하기보다는 파워 사이클을 가로질러 누적된 읽기 동작을 카운트 가능하게 한다.
도 5는 본 발명의 일례의 실시예와 일관하여, 파워 온 시퀀스에 의해 트리거링되는 메모리 에러를 관리하는 방법을 예시하는 흐름도이다. 단계(501)에서는, 디바이스가 파워 온 되고 파워-온 시퀀스를 시작하는데, 블록 정보에 대한 비휘발성 메모리 로케이션(예컨대, 레지스터)를 체크함으로써 또는 메모리 블록과 연관된 플래그를 체크함으로써 등 메모리의 어느 블록이 리프레시를 위해 이미 마크되어 있는지 결정하는 것을 포함한다. 메모리 블록이 (502)에서 리프레시를 위한 어떤 방식으로 마크되어 있으면, 블록에 저장된 데이터는 (503)에서 복사 및 재프로그래밍된다.
(502)에서 어느 블록도 리프레시를 위해 마크되어 있지 않으면, 메모리의 식별된 블록이 (504)에서 읽혀진다. 일부 실시예에 있어서, 메모리 블록은, 방법이 각각의 파워 온 시퀀스에서 동일 메모리 블록으로 재시작하기보다는 파워 사이클을 가로질러 메모리를 통해 진행하도록, 파워 사이클-기반 메모리 리프레시에 있어서 다음의 미체크 메모리 블록으로의 포인터를 룩업함으로써 식별된다.
블록이 읽혀짐에 따라, 페이지당 에러의 수는 ECC를 사용하여 카운트되고, (505)에서 에러의 수가 임계값을 초과하는지 결정된다. 추가적 일례에 있어서, 저장된 ECC 데이터를 사용하여 페이지당 24 비트까지 정정할 수 있는 메모리는 블록의 어느 페이지에서 12 비트(예컨대, 대략 정정가능한 비트 수의 반)가 에러 있고 정정될 필요가 있으면 그 허용가능한 에러 수를 초과한다. 다른 실시예에서는 정정가능한 비트 수의 3분의 1과 같은 다른 임계값이 사용될 수 있다. 임계값은 메모리의 연령, 또는 메모리의 일생에서 구현된 동작 수와 같은 인자에 기반하여 달라질 수 있다.
(505)에서 에러 수가 읽기 에러에 대한 허용가능한 임계값을 초과하면, (506)에서 블록을 리프레시를 위해 마크된다. 그 후 블록의 데이터는 복사되고, 에러 정정 코드 데이터는 정정가능한 에러를 고치도록 사용되고, 데이터는 (507)에서 재프로그래밍된다. 디바이스가 파워 오프되거나 그렇지 않으면 그 방법이 복사 및 재프로그래밍이 (507)에서 완료할 수 있기 전에 인터럽트되면, 블록의 데이터는 디바이스가 다시 파워 온 될 때 ((502, 503)에서와 같이) 계속 복사 및 재프로그래밍되도록 블록은 복사 및 재프로그래밍 전 리프레시를 위해 마크될 수 있다. 그래서 이 예에서는 (507)에서의 복사 및 재프로그래밍이 완료될 때까지 (506)에서 리프레시를 위해 블록을 마크하는 플래그는 치워지지 않는다.
(508)에서, 메모리는 정상 동작 준비가 되어 있다. 일부 실시예에 있어서, 메모리 블록이 파워 온 때 리프레시를 위해 마크되어 있으면 수행되는 (503)에서의 복사 및 재프로그래밍은 완료 때 준비 상태의 결과를 초래하지 않지만, 대신에 메모리 디바이스가 준비되기 전에 적어도 하나의 새로운 블록이 읽혀지는 (504)로 진행하여, 적어도 하나의 새로운 블록이 각각의 정상 파워 사이클 상에서 읽혀짐을 보장할 수 있다.
도 5에 예시된 방법은 적어도 하나의 블록이 각각의 파워 사이클 상에서 체크 또는 리프레시됨을 보장하는데 사용될 수 있지만, 하나의 블록만이 파워 온 사이클의 일부로서 리프레시되도록 구성될 수 있다. 전형적 블록을 읽는 것은 현재 일부 기술을 사용하여 밀리초 차수로 취하긴 하지만, 블록을 재프로그래밍하는 것은 현재 수백 밀리초의 차수로 취하고, 그래서 수개 블록을 재프로그래밍하는 것은 파워 온 시퀀스 동안 메모리 가용성을 상당히 지연시킬 수 있다. JEDEC 플래시 메모리 표준과 같은 일부 표준은, 일초 내와 같이, 파워 온 후 특정 시간 기간 내 메모리가 동작 준비될 것을 요구한다. 이러한 이유로, 도 5에 도시된 예와 같은 일부 실시예는, 메모리가 정기적 액세스 동작 준비가 되기 전에 하나의 블록만이 재프로그래밍됨을 보장함으로써와 같이, 디바이스 스타트업 방법의 일부로서 일어나는 프로그래밍 동작의 수를 제한할 수 있다.
도 5의 파워 온 리프레시 방법은, 도 6에 도시된 바와 같이, 백그라운드 메모리 리프레시 방법에 의해 추가적 예에서 보충될 수 있다. 그러한 일례의 방법에 의하면, (601)에서, 읽기 커맨드 수신 후에 읽기가 수행되고, (602)에서 (예컨대, 업-카운터를 증분 또는 다운-카운터를 감분함으로써) 읽기 카운터가 업데이트된다. 읽기 커맨드는 다중 페이지가 읽혀지는 결과를 초래할 수 있기 때문에, 카운터는, 페이지가 읽혀진 횟수의 정확한 카운트가 유지될 수 있음을 보장하기 위해서와 같이, 읽혀진 커맨드보다는 읽혀진 페이지의 수를 카운트할 수 있다. 읽혀진 페이지의 수가 임계값에 도달(예컨대, 페이지 읽기 수가 (603)에 예시된 바와 같이 1024 페이지에 도달)할 때, 리프레시 스캔이 개시된다. 예컨대, (604)에서, 리프레시 블록 포인터에 의해 식별된 메모리의 블록의 특정 수의 페이지(예컨대, 16개의 페이지)는 (604)에서 읽혀지고 에러에 대해 체크된다. 다른 실시예에 있어서는, 다른 적합한 읽기 임계값 및 읽혀질 페이지 수가 사용될 것이다.
(604)에서 읽혀진 데이터의 16개의 페이지 중 어느 것이, ECC가 페이지에서 24 비트까지 정정할 수 있는 경우 페이지에서의 12 이상의 에러와 같이, 임계값(즉, 소정 허용가능한 에러 레이트)을 초과하는 에러 수를 포함하면, 리프레시 블록 포인터에 의해 식별된 블록은 (606)에서 리프레시를 위해 마크된다. 그 후 블록의 데이터는, 정정되고 새로 프로그래밍된 데이터로 메모리에 저장된 데이터를 업데이트하기 위해서와 같이, (607)에 도시된 바와 같이 재프로그래밍(예컨대, 페이지 대 페이지)을 위해 읽혀지고 (예컨대, 버퍼 메모리에) 복사된다. 블록의 데이터가 성공적으로 재프로그래밍되었을 때, 블록이 재프로그래밍될 것임을 나타내는 플래그는 치워진다. 그래서 블록 복사 및 재프로그래밍은, 블록이 재프로그래밍될 것임을 나타내는 플래그가 계속 설정되어 있을 때, 그것이 다음 파워 사이클이 일어나기 전에 성공적으로 완료되지 않으면 다음 파워 사이클에서 반복될 수 있다.
그 후 백그라운드 리프레시 방법은 (608)에서 계속하고, 페이지 읽기 카운터는 (예컨대, 영으로) 리셋된다. 일부 실시예에서는, 페이지 읽기의 임계값은 특정 메모리 구성, 메모리 디바이스 밀도 및 다른 그러한 인자에 대한 읽기 장애 시험과 같은 인자에 기반할 수 있다.
이 예에서는, (606)에서 리프레시를 위해 블록이 마크될 때, 블록에서의 어떠한 페이지도 블록 전체가 복사될 때 리프레시 스캔의 일부분으로서 더 읽혀질 필요가 없다. 일부 실시예에 있어서, 블록의 데이터는 마모-평준화 방법의 일부분으로서 물리적 메모리에서의 다른 블록 로케이션에 재배치되어, 허용불가능한 읽기 에러 레이트를 갖는다고 이미 결정된 메모리의 물리적 블록 상에서의 추가적 마모를 줄인다.
이 예에서 (606-607)에서의 블록 리프레시 방법은, 리프레시를 위해 마크된 블록의 누적을 방지하기 위해, 추가적 리프레시 스캔 읽기가 (604)에서 일어나기 전에 완료된다. 또 다른 실시예에 있어서, 도 6에 예시된 방법은 한번에는 기껏해야 하나의 블록만이 리프레시를 위해 마크되도록 동작한다.
리프레시 스캔 방법의 일부분으로서 읽혀지고 있는 현재 블록 및 페이지는 일부 실시예에서는 비휘발성 메모리를 포함하는 메모리에 저장된다. 그래서 백그라운드 리프레시 방법의 메모리 로케이션은 파워 사이클 동안 상실되지 않는다. 추가적 예에 있어서, 백그라운드 리프레시 방법의 블록 로케이션만이 그것이 비교적 덜 빈번하게 업데이트될 때 비휘발성 메모리에 저장되고, (604)에 반영된 바와 같이, 스캔할 블록의 특정 16개의 페이지를 가리키는 페이지 로케이션은 (램 또는 RAM과 같은) 휘발성 메모리에 저장된다. 디바이스가 파워 사이클을 겪어야 하면, 백그라운드 리프레시 방법은 비휘발성 메모리에서 마크된 블록의 시작에서 재시작해서, 블록의 나머지 부분을 스캔하여 백그라운드 리프레시 프로세스가 최근 스캔하지 않은 비휘발성 메모리로 진행하기 전에 많아야 블록의 일부의 스캔을 반복할 것이다.
에러 임계값 레벨, 리프레시 레이트, 및 다른 그러한 파라미터는 추가적 실시예에서는 디바이스의 언더-리프레시 또는 오버-리프레시를 회피하도록 선택될 수 있다. 정정불가능한 읽기 에러가 일어날 수 있는 포인트까지 에러가 누적되게 하는 것은 대체로 바람직하지 않기는 하지만, 비휘발성 메모리 셀 상의 불필요한 마모는 예컨대 메모리 디바이스의 단축된 수명을 초래할 수 있으므로, 비휘발성 메모리를 너무 자주 리프레시하는 것 또한 대체로 바람직하지 않다.
리프레시 레이트는 또한 페이지가 리프레시될 수 있기 전에 일어나는 정정불가능한 읽기 장애 에러의 가능성을 줄이도록 선택될 수 있다. 일례로서 1024 총 블록 및 블록당 256 페이지를 갖는 비휘발성 메모리를 생각한다. 블록에서의 읽기 장애가 합리적으로 가능하게 되는데 그 블록에서의 페이지당 100,000 읽기가 필요하면, 페이지당 100,000 읽기 곱하기 블록당 256 페이지는 읽기 장애 이벤트가 합리적으로 가능하게 되도록 블록에서의 대략 26 백만 읽기의 결과를 초래한다. 1024 블록에 의해 나누어진 블록당 26백만 읽기는 읽기 장애 에러가 합리적으로 가능성 없게 만들기 위해 26,000 페이지 읽기마다 리프레시되어야 한다. 하나의 블록 16,000 페이지 읽기마다 등 더 빠른 레이트로 리프레시하는 것은 얼마간의 여분의 안전 마진을 제공한다.
이전에 논의된 바와 같이, 읽기를 수행하는데 걸린 시간도 특정 애플리케이션에 알맞을 리프레시 파라미터를 선택하는데 인자가 될 수 있다. 백그라운드 리프레시 방법의 일부분으로서 한번에 블록 전체를 읽는 것은 현재 약 100 밀리초가 걸릴 수 있는데, 파워-온 때에는 허용가능하지만 동작 동안에는 바람직하지 않을 수 있다. 리프레시 스캔을 위해 한번에 단일 페이지를 읽는 것은 현재 약 일 밀리초가 걸릴 수 있지만, 위 예에서는 하나의 블록이 16,000 사용자 페이지 읽기마다 리프레시되면 64 사용자 페이지 읽기마다 수행될 수 있다. 유사하게, 리프레시 스캔을 위해 16 페이지를 읽는 것은 대략 8 밀리초가 걸리고, 16,000 사용자 페이지 읽기마다 블록 전체를 리프레시하기 위해 1024 사용자 페이지 읽기마다 수행될 수 있다.
현재 블록을 읽고 프로그래밍하는 것은 대략 500 밀리초가 걸리고, 그래서 블록을 읽어서 에러를 체크하고 그 후 블록을 읽고 재프로그래밍하는데 조합된 총 시간은 이 예에서는 대략 600 밀리초이다. 1024 사용자 페이지 읽기마다 16 페이지가 리프레시 스캔을 위해 읽혀지면, 사용자에 대한 총 영향은 1024 페이지 읽기마다 대략 8ms 지연 더하기, 각각의 블록을 스캔하는 것이 완료될 때 비휘발성 메모리에서의 액티브 블록 어드레스를 업데이트하기 위한 2-3ms일 것이다. 리프레시가 필요한 드문 이벤트에서, 블록을 복사 및 재프로그래밍하기 위해 부가적 500ms 지연이 일어날 것이다. 이것은 대부분의 실제 세계 애플리케이션에서 흔치 않은 빈도로 예상되고 회복불능 읽기-유발 메모리 에러에는 바람직하므로, 이분의 일 초 지연이 대부분의 애플리케이션에 대해 허용가능하여야 한다. 500ms 지연을 용인할 수 없는 애플리케이션에 대해, 블록의 리프레시는 다중 동작으로 쪼개질 수 있다. 예컨대, 16 페이지를 재프로그래밍하는 16개의 동작은 시간에 걸쳐 256 페이지 블록을 복사하지만, 어느 하나의 시스템 메모리 액세스에 최대 약 32ms 지연만을 야기할 것이다. 또 다른 일례에 있어서, 메모리 디바이스는 정상 메모리 액세스가 블록 복사를 인터럽트하고, 정상 액세스를 수행하고, 그 후 복사를 재개하여 정상 동작에 최소 지연을 제공하도록 감안할 수 있다.
본 명세서에서 설명된 리프레시 방법은 일부 실시예에서는 플래시 메모리 카드의 일부분을 형성하는 것과 같이 메모리 디바이스에 일체인 메모리 컨트롤러에 의해 관리되지만, 다른 실시예에서는 위에서 설명된 방법이 규격품 비휘발성 메모리 디바이스와 채용될 수 있도록 메모리 디바이스 외부에 구현된다. 도 7은 본 명세서에서 설명된 것들과 같은 방법을 채용하도록 동작가능한 다양한 디바이스를 도시하고 있다.
(701)에는 플래시 메모리 집적 회로와 같은 비휘발성 메모리 집적 회로이다. 일부 실시예에서는, 집적 회로는 일체형 컨트롤러를 포함하지만, 다른 실시예에서는 외부 메모리 컨트롤러가 메모리 리프레시 동작을 수행한다. 플래시 메모리 카드는 (702)에서 유사하게 도시되어 있는데(예컨대, 시큐어 디지털(SD) 메모리 카드), 또 일체형 컨트롤러를 포함할 수 있거나 (예컨대, 하드웨어, 펌웨어 및/또는 소프트웨어와 같이) 외부 컨트롤러에 의해 리프레시될 수 있다.
썸 드라이브 또는 USB 플래시 드라이브라고 흔히 알려져 있는 플래시 메모리 드라이브는 (703)에 도시되어 있고, 흔히 수십 기가바이트 이상의 범위에 이르는 대용량 휴대용 비휘발성 메모리를 채용한다. 소비자는 흔히, 저장된 문서, 멀티미디어 파일 등과 같이, 컴퓨터 사이에서 데이터를 저장하고 옮기기 위해 그러한 드라이브를 사용한다. 디지털 카메라는 (704)에 도시되어 있는데, 흔히 사진, 비디오 및 다른 데이터를 저장하기 위한 ((702)에 도시된 바와 같은) 플래시 메모리 카드뿐만 아니라 펌웨어 및 다른 데이터를 저장하기 위한 내부 플래시 메모리 둘 다 포함한다.
본 명세서에서 설명된 것들과 같은 리프레시 방법은 또한 (705)에 도시된 바와 같이 스마트폰, 휴대용 게이밍 시스템, 퍼스널 디지털 어시스턴트(PDAs) 또는 다른 그러한 디바이스에서 유용하다. 이들 디바이스는 프로그램 및 다른 데이터를 저장하기 위해 플래시 메모리와 같은 비휘발성 메모리를 사용한다. 비휘발성 메모리는 또한, 솔리드-스테이트 드라이브(SSD)에서 뿐만 아니라, 구성 데이터 및 펌웨어 같은 데이터를 저장하기 위해서도, (706)에 도시된 바와 같은 퍼스널 컴퓨터에서 고성능 옵션으로서 점점 흔하게 되고 있다. 솔리드-스테이트 드라이브는 상당한 마진에 의해 전형적 하드 디스크 드라이브를 능가하기 때문에, 솔리드 스테이트 드라이브의 사용은 컴퓨터 반응성 및 속도를 개선시켜, 부팅, 애플리케이션 론치, 또는 절전 상태로부터의 복구와 같은 태스크를 최종 사용자에 대해 더 빠르게 만들 수 있다.
도 7의 이들 전자 메모리 디바이스는 특히 도시된 디바이스가 빈번한 파워 사이클에 민감할 때 본 명세서에서 설명된 리프레시 방법이 개선된 메모리 신뢰도 및 데이터 무결성을 제공할 수 있는 환경을 예시하고 있다. 특정 실시예가 본 명세서에서 예시 및 설명되었지만, 당업자는 동일 목적, 구조 또는 기능을 달성하는 어떠한 배열도 도시된 특정 실시예를 대신할 수 있음을 인식할 것이다. 이러한 애플리케이션은 본 명세서에서 설명된 발명의 실시예의 어떠한 변형 또는 적응도 포함하려는 의도이다. 본 발명은 청구범위 및 그 균등물의 전 범위에 의해서만 한정됨을 의도한다.

Claims (60)

  1. 방법으로서,
    파워 온 되고 있는 메모리 디바이스에 응답하여 상기 메모리 디바이스의 메모리의 일부를 에러에 대해 체크하는 단계; 및
    에러가 발견되면 상기 메모리에 정정된 데이터를 재프로그래밍하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 에러에 대해 체크된 상기 메모리의 상기 일부는 상기 메모리의 블록 이하를 포함하는 것인 방법.
  3. 제1항에 있어서, 에러에 대해 메모리의 일부를 체크하는 단계는 상기 메모리의 상기 일부가 상기 디바이스를 파워 온 할 때 이미 리프레시를 위해 마크되어 있는지 결정하는 단계를 포함하는 것인 방법.
  4. 제3항에 있어서, 상기 일부가 이미 마크되어 있다고 결정되면 상기 메모리의 상기 일부를 리프레시하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서, 에러에 대해 메모리의 일부를 체크하는 방법은 상기 메모리의 상기 일부를 읽고 에러 정정 코드를 사용하여 에러의 존재를 결정하는 단계를 포함하는 것인 방법.
  6. 제1항에 있어서, 에러가 발견되면 상기 메모리에 정정된 데이터를 재프로그래밍하는 단계는 발견된 에러가 에러 임계값을 초과하는 때에만 정정된 데이터를 재프로그래밍하는 단계를 포함하는 것인 방법.
  7. 제1항에 있어서, 상기 메모리의 동작 동안 에러에 대해 상기 메모리의 부가적 부분을 체크하는 단계를 더 포함하는 방법.
  8. 제7항에 있어서, 동작 동안 에러에 대해 상기 메모리의 부가적 부분을 체크하는 단계는 소정 수의 메모리 페이지 읽기에 의해 트리거링되는 것인 방법.
  9. 제1항에 있어서, 읽기 에러에 대해 체크될 메모리 블록을 식별하는 리프레시 블록 포인터를 유지하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서, 상기 메모리에 정정된 데이터를 재프로그래밍하는 단계는 리프레시를 위해 상기 메모리의 상기 일부를 마크하는 단계, 상기 메모리의 상기 일부의 데이터를 복사하는 단계, 상기 복사된 데이터를 재프로그래밍하는 단계 및 상기 메모리의 상기 일부를 마크제거하는 단계를 포함하는 것인 방법.
  11. 장치로서,
    메모리 셀의 어레이; 및
    파워 온 되고 있는 상기 장치의 적어도 일부에 응답하여 에러에 대해 상기 메모리 셀의 일부를 체크하고, 에러가 발견되면 상기 메모리 셀에 정정된 데이터를 재프로그래밍하도록 동작가능한 컨트롤러를 포함하는 장치.
  12. 제11항에 있어서, 비휘발성 메모리의 상기 어레이는 NAND 플래시 메모리를 포함하는 것인 장치.
  13. 제11항에 있어서, 상기 컨트롤러는 파워 온 되고 있는 상기 장치의 상기 적어도 일부에 응답하여 상기 메모리의 일부가 리프레시를 위해 마크되어 있는지 결정하고, 상기 일부가 리프레시를 위해 마크되어 있다고 상기 컨트롤러가 결정하면 메모리의 상기 일부를 리프레시하도록 더 동작가능한 것인 장치.
  14. 제11항에 있어서, 에러에 대해 상기 메모리 셀의 일부를 체크하도록 동작가능한 상기 컨트롤러는 상기 메모리 셀의 상기 일부로부터 읽혀진 사용자 데이터와 연관된 에러 정정 코드 데이터를 사용하여 상기 읽혀진 사용자 데이터에 에러가 존재하는지 결정하도록 동작가능한 상기 컨트롤러를 포함하는 것인 장치.
  15. 제11항에 있어서, 정정된 데이터를 재프로그래밍하도록 동작가능한 상기 컨트롤러는 발견된 에러가 에러 임계값을 초과하면 상기 메모리 셀에 데이터 정정된 데이터를 재프로그래밍하도록 동작가능한 상기 컨트롤러를 포함하는 것인 장치.
  16. 제11항에 있어서, 상기 컨트롤러는 상기 메모리 셀의 동작 동안 에러에 대해 상기 메모리 셀의 부가적 부분을 체크하도록 더 동작가능한 것인 장치.
  17. 제16항에 있어서, 동작 동안 에러에 대해 상기 메모리 셀의 부가적 부분을 체크하도록 동작가능한 상기 컨트롤러는 동작 동안 읽혀지고 있는 소정 수의 페이지에 응답하여 에러에 대해 상기 메모리 셀의 부가적 부분을 체크하도록 동작가능한 상기 컨트롤러를 포함하는 것인 장치.
  18. 제11항에 있어서, 에러에 대해 아직 체크되지 않은 상기 메모리의 블록을 식별하는 저장된 리프레시 블록 포인터를 더 포함하는 장치.
  19. 제11항에 있어서, 비휘발성 메모리의 상기 부분을 재프로그래밍하도록 동작가능한 상기 컨트롤러는 리프레시를 위해 상기 메모리의 상기 일부를 나타내는 마커를 저장하고, 메모리의 상기 부분을 복사하고, 상기 메모리에 상기 데이터를 재프로그래밍하고, 재프로그래밍이 완료될 때 메모리의 상기 부분을 나타내는 상기 저장된 마커를 제거하도록 더 동작가능한 상기 컨트롤러를 포함하는 것인 장치.
  20. 제11항에 있어서, 메모리 셀의 상기 어레이는 다-레벨 메모리 셀의 어레이를 포함하는 것인 장치.
  21. 파워 온 되고 있는 컨트롤러에 응답하여 에러에 대해 메모리의 일부를 체크하고, 에러에 대해 상기 일부를 체크할 때 발견된 에러에 응답하여 상기 메모리의 상기 일부를 리프레시하도록 동작가능한 컨트롤러.
  22. 제21항에 있어서, 상기 컨트롤러는 파워 온 되고 있는 것에 응답하여 상기 메모리의 일부가 리프레시를 위해 마크되어 있는지 결정하고 마크되어 있으면 상기 메모리의 일부를 리프레시하도록 더 동작가능한 것인 컨트롤러.
  23. 제21항에 있어서, 상기 컨트롤러는 에러 정정 코드를 비휘발성 메모리의 읽혀진 부분에 적용하여 상기 에러의 존재를 검출하고 비휘발성 메모리의 상기 부분으로부터 상기 에러를 제거하도록 더 동작가능한 것인 컨트롤러.
  24. 제21항에 있어서, 상기 컨트롤러는 리프레시를 위해 비휘발성 메모리의 상기 일부를 마크하고, 비휘발성 메모리의 상기 일부를 복사하고, 메모리의 상기 일부에서 발견된 상기 에러를 정정하고, 정정된 데이터를 상기 메모리에 재프로그래밍하고, 메모리의 상기 부분을 마크제거하도록 더 동작가능한 것인 컨트롤러.
  25. 제21항에 있어서, 상기 컨트롤러는 상기 메모리가 정상 액세스 동작에 이용가능한 동안 백그라운드 방법으로서 에러에 대해 상기 메모리를 체크하도록 더 동작가능한 것인 컨트롤러.
  26. 제25항에 있어서, 상기 컨트롤러는 소정 수의 메모리 페이지 읽기에 기반하여 백그라운드 프로세스로서 에러에 대해 상기 비휘발성 메모리 디바이스를 체크하도록 동작가능한 것인 컨트롤러.
  27. 제21항에 있어서, 상기 컨트롤러는 발견된 에러가 에러 임계값을 초과하는 때에만 상기 비휘발성 메모리의 상기 일부를 리프레시하도록 동작가능한 것인 컨트롤러.
  28. 장치로서,
    파워 온 되고 있는 상기 장치의 적어도 일부에 응답하여 에러에 대해 메모리의 일부를 체크하고 에러에 대해 상기 메모리의 상기 일부를 체크할 때 발견된 에러에 응답하여 상기 메모리의 상기 일부를 리프레시하도록 동작가능한 컨트롤러를 포함하는 장치.
  29. 제28항에 있어서, 상기 메모리를 포함하는 메모리 디바이스를 더 포함하는 장치.
  30. 제29항에 있어서, 상기 메모리 디바이스는 플래시 메모리 카드를 포함하는 것인 장치.
  31. 제28항에 있어서, 상기 컨트롤러는 상기 메모리의 일부가 리프레시를 위해 마크되어 있는지 결정하고 파워 온 되고 있는 상기 장치의 상기 적어도 일부에 응답하여 상기 메모리의 상기 마크된 부분을 리프레시하도록 더 동작가능한 것인 장치.
  32. 제28항에 있어서, 상기 컨트롤러는 상기 메모리가 정상 동작에 이용가능한 동안 에러에 대해 상기 메모리의 부가적 부분을 체크하고 에러 있는 부분을 리프레시하도록 더 동작가능한 것인 장치.
  33. 제32항에 있어서, 상기 컨트롤러는 소정 수의 메모리 페이지 읽기에 기반하여 에러에 대해 상기 메모리의 부가적 부분을 체크하도록 더 동작가능한 것인 장치.
  34. 제28항에 있어서, 상기 컨트롤러는 리프레시될 필요가 있는 것으로 상기 메모리의 상기 부분을 마크하고, 메모리의 상기 부분의 데이터를 복사하고, 메모리의 상기 부분에서의 어떠한 정정가능한 에러도 정정하고, 상기 정정된 데이터를 상기 메모리에 재프로그래밍하고, 리프레시될 필요가 있는 것으로 되어 있는 메모리의 상기 부분을 마크제거하도록 더 동작가능한 것인 장치.
  35. 제28항에 있어서, 상기 장치는 휴대용 게이밍 디바이스, 스마트폰, 디지털 카메라, 퍼스널 디지털 어시스턴트, 솔리드 스테이트 플래시 드라이브, 또는 컴퓨터를 포함하는 것인 장치.
  36. 방법으로서,
    파워 온 되고 있는 메모리 디바이스에 응답하여 에러에 대해 상기 메모리 디바이스의 메모리의 일부를 체크하는 단계; 및
    에러가 발견될 때, 메모리의 상기 일부를 리프레시하는 단계를 포함하는 방법.
  37. 제36항에 있어서, 에러에 대해 상기 메모리의 일부를 체크하는 단계는 상기 메모리 디바이스를 파워 온 하는 것에 응답하여 리프레시될 필요가 있는 상기 메모리의 일부를 식별하는 마커를 체크하는 단계를 포함하는 것인 방법.
  38. 제36항에 있어서, 상기 메모리 디바이스의 정상 동작 동안 에러에 대해 상기 메모리의 부가적 부분을 체크하는 단계를 더 포함하는 방법.
  39. 제36항에 있어서, 상기 메모리 디바이스에서 읽기 에러에 대해 체크될 메모리 블록을 식별하는 리프레시 블록 포인터를 저장하는 단계 및 상기 메모리 블록에서 읽기 에러에 대해 체크될 메모리 페이지를 식별하는 리프레시 페이지 포인터를 저장하는 단계를 더 포함하는 방법.
  40. 방법으로서,
    메모리 디바이스를 파워 온 하는 것에 응답하여, 상기 메모리 디바이스의 메모리의 식별된 블록의 데이터를 읽는 단계;
    메모리의 상기 식별된 블록의 상기 읽혀진 데이터가 임계값을 초과하는 소정 수의 에러를 포함하는지 결정하는 단계; 및
    상기 소정 수의 에러가 상기 임계값을 초과하면, 리프레시를 위해 상기 식별된 블록을 마크하는 단계를 포함하는 방법.
  41. 제40항에 있어서, 상기 식별된 블록의 데이터를 읽기 전에, 상기 메모리 디바이스의 메모리의 블록이 이미 리프레시를 위해 마크되어 있는지 결정하는 단계, 및 블록이 이미 리프레시를 위해 마크되어 있으면, 상기 이미 마크된 블록을 리프레시하는 단계를 더 포함하는 방법.
  42. 제41항에 있어서, 리프레시를 위해 어느 블록도 이미 마크되어 있지 않으면, 상기 식별된 블록의 상기 데이터는 읽혀지기만 하는 것인 방법.
  43. 제41항에 있어서, 상기 식별된 블록의 상기 데이터를 읽는 단계는 상기 이미 마크된 블록을 리프레시하는 단계에 더 응답하는 것인 방법.
  44. 제41항에 있어서, 메모리의 블록이 이미 리프레시를 위해 마크되어 있는지 결정하는 단계는 비휘발성 메모리에서의 로케이션을 체크하는 단계를 포함하는 것인 방법.
  45. 제41항에 있어서, 메모리의 블록이 이미 리프레시를 위해 마크되어 있는지 결정하는 단계는 메모리의 상기 블록과 연관된 플래그를 체크하는 단계를 포함하는 것인 방법.
  46. 제40항에 있어서, 리프레시를 위해 상기 식별된 블록을 마크하는 단계에 응답하여 상기 식별된 블록을 리프레시하는 단계를 더 포함하는 것인 방법.
  47. 제46항에 있어서, 상기 식별된 블록을 리프레시하는 단계는 상기 식별된 블록의 상기 데이터를 복사하는 단계 및 상기 식별된 블록의 상기 데이터를 재프로그래밍하는 단계를 포함하는 것인 방법.
  48. 제40항에 있어서, 메모리의 상기 식별된 블록의 상기 읽혀진 데이터가 임계값을 초과하는 소정 수의 에러를 포함하는지 결정하는 단계는 상기 식별된 블록으로부터 읽혀진 데이터의 페이지당 에러의 수를 카운트하는 단계를 포함하는 것인 방법.
  49. 제40항에 있어서, 상기 메모리 디바이스의 메모리의 식별된 블록의 데이터를 읽는 단계는 상기 메모리 디바이스를 파워 온 하는 단계에 응답하여 미리-식별된 블록으로의 포인터를 룩업하고 그 후 상기 식별된 블록의 데이터를 읽는 단계를 포함하는 것인 방법.
  50. 제49항에 있어서, 상기 식별된 블록을 리프레시하는 단계에 응답하여 상기 포인터에 의해 식별된 블록을 변경하는 단계를 더 포함하는 방법.
  51. 제40항에 있어서, 상기 메모리 디바이스의 메모리의 식별된 블록의 데이터를 읽는 단계는 메모리의 단일 식별된 블록의 데이터를 읽는 단계를 포함하는 것인 방법.
  52. 제40항에 있어서, 메모리의 상기 식별된 블록의 상기 읽혀진 데이터가 임계값을 초과하는 소정 수의 에러를 포함하는지 결정하는 단계는 상기 식별된 블록으로부터 읽혀진 데이터의 어느 페이지에서의 소정 수의 에러가 임계값을 초과하는지 결정하는 단계를 포함하는 것인 방법.
  53. 제46항에 있어서, 상기 식별된 블록을 리프레시하는 단계는,
    상기 식별된 블록의 상기 데이터를 복사하는 단계;
    상기 복사된 데이터에서의 정정가능한 에러를 정정하는 단계; 및
    상기 정정된 데이터를 재프로그래밍하는 단계를 포함하는 것인 방법.
  54. 방법으로서,
    소정 수의 메모리 페이지 읽기가 임계값을 초과하는지 결정하는 단계;
    상기 소정 수의 메모리 페이지 읽기가 상기 임계값을 초과하면, 메모리의 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계; 및
    상기 읽혀진 데이터에서의 소정 수의 에러가 임계값을 초과하면, 리프레시를 위해 메모리의 상기 블록을 마크하는 단계를 포함하는 방법.
  55. 제54항에 있어서, 소정 수의 메모리 페이지 읽기가 임계값을 초과하는지 결정하는 단계는,
    메모리의 페이지를 읽는 단계에 응답하여 업-카운터를 증분하는 단계; 및
    상기 증분된 업-카운터의 값이 특정 값을 초과하는지 결정하는 단계를 포함하는 것인 방법.
  56. 제54항에 있어서, 소정 수의 메모리 페이지 읽기가 임계값을 초과하는지 결정하는 단계는,
    메모리의 페이지를 읽는 단계에 응답하여 다운-카운터를 감분하는 단계; 및
    상기 감분된 다운-카운터의 값이 특정 값 아래에 있는지 결정하는 단계를 포함하는 것인 방법.
  57. 제54항에 있어서, 메모리의 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계는 메모리의 식별된 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계를 포함하는 것인 방법.
  58. 제57항에 있어서, 메모리의 식별된 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계는 메모리의 단일 식별된 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계를 포함하는 것인 방법.
  59. 제57항에 있어서, 메모리의 식별된 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계는 리프레시 블록 포인터에 의해 식별된 메모리의 블록의 특정 수의 메모리 페이지에 저장된 데이터를 읽는 단계를 포함하는 것인 방법.
  60. 제54항에 있어서, 리프레시를 위해 메모리의 상기 블록을 마크하는 단계는 상기 읽혀진 데이터의 어느 페이지에서의 소정 수의 에러가 임계값을 초과하면 리프레시를 위해 메모리의 상기 블록을 마크하는 단계를 포함하는 것인 방법.
KR1020147007711A 2011-08-31 2012-08-28 메모리 리프레시 방법 및 장치 KR102000307B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/222,282 2011-08-31
US13/222,282 US9176800B2 (en) 2011-08-31 2011-08-31 Memory refresh methods and apparatuses
PCT/US2012/052687 WO2013033107A2 (en) 2011-08-31 2012-08-28 Memory refresh methods and apparatuses

Publications (2)

Publication Number Publication Date
KR20140059821A true KR20140059821A (ko) 2014-05-16
KR102000307B1 KR102000307B1 (ko) 2019-07-15

Family

ID=47745458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147007711A KR102000307B1 (ko) 2011-08-31 2012-08-28 메모리 리프레시 방법 및 장치

Country Status (6)

Country Link
US (3) US9176800B2 (ko)
EP (1) EP2751809B1 (ko)
JP (1) JP5901771B2 (ko)
KR (1) KR102000307B1 (ko)
CN (2) CN103843069B (ko)
WO (1) WO2013033107A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160091499A (ko) * 2015-01-23 2016-08-03 삼성전자주식회사 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
US9703628B2 (en) 2015-03-12 2017-07-11 SK Hynix Inc. Memory device and system including the same
US10416971B2 (en) 2017-06-12 2019-09-17 TmaxData Co., Ltd. Method of creating the balanced parse tree having optimized height
WO2020145742A1 (ko) * 2019-01-11 2020-07-16 주식회사 엘지화학 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176800B2 (en) 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
US9256526B2 (en) * 2012-02-23 2016-02-09 National Taiwan University Flash memory storage system and access method
US9430735B1 (en) 2012-02-23 2016-08-30 Micron Technology, Inc. Neural network in a memory device
KR102025193B1 (ko) * 2013-02-19 2019-09-25 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
JP2014241057A (ja) * 2013-06-12 2014-12-25 ソニー株式会社 インターフェース制御回路、メモリシステム、および、インターフェース制御回路の制御方法
TWI490870B (zh) * 2013-08-06 2015-07-01 Silicon Motion Inc 資料儲存裝置及其資料維護方法
CN104346236B (zh) 2013-08-06 2018-03-23 慧荣科技股份有限公司 数据储存装置及其数据维护方法
JP6270377B2 (ja) * 2013-08-27 2018-01-31 キヤノン株式会社 画像形成装置
CN104978998B (zh) * 2014-04-01 2019-05-31 北京兆易创新科技股份有限公司 一种非易失存储器的处理方法及装置
DE102014104717B4 (de) * 2014-04-03 2019-08-01 Hyperstone Gmbh Verfahren und Vorrichtung zur Datenerneuerung für eine Erhöhung der Zuverlässigkeit von Flashspeichern
JP6226830B2 (ja) * 2014-07-24 2017-11-08 株式会社東芝 情報処理装置、データアクセス方法およびプログラム
CN105374389B (zh) * 2014-08-07 2018-09-07 华邦电子股份有限公司 存储器电路及其刷新方法
KR20160042224A (ko) 2014-10-07 2016-04-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9678827B2 (en) * 2014-10-07 2017-06-13 SK Hynix Inc. Access counts for performing data inspection operations in data storage device
US9552171B2 (en) * 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
KR20160063726A (ko) * 2014-11-27 2016-06-07 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US9595342B2 (en) * 2015-01-20 2017-03-14 Sandisk Technologies Llc Method and apparatus for refresh programming of memory cells based on amount of threshold voltage downshift
US9558064B2 (en) * 2015-01-28 2017-01-31 Micron Technology, Inc. Estimating an error rate associated with memory
US9772901B2 (en) * 2015-05-08 2017-09-26 Nxp Usa, Inc. Memory reliability using error-correcting code
US9852795B2 (en) 2015-09-24 2017-12-26 Samsung Electronics Co., Ltd. Methods of operating nonvolatile memory devices, and memory systems including nonvolatile memory devices
KR102359979B1 (ko) 2015-11-16 2022-02-08 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
US11481126B2 (en) * 2016-05-24 2022-10-25 Micron Technology, Inc. Memory device error based adaptive refresh rate systems and methods
US10248499B2 (en) * 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
US9747158B1 (en) * 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) * 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
KR20180092422A (ko) * 2017-02-09 2018-08-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10019332B1 (en) * 2017-03-10 2018-07-10 Western Digital Technologies, Inc. Non-volatile memory with program failure recovery
CN109215715B (zh) * 2017-07-05 2020-06-26 中国科学院微电子研究所 一种闪存存储电路的抗总剂量辐照加固方法
US10140042B1 (en) 2017-09-13 2018-11-27 Toshiba Memory Corporation Deterministic read disturb counter-based data checking for NAND flash
KR20200067848A (ko) 2017-09-30 2020-06-12 마이크론 테크놀로지, 인크. 우선적 유휴 시간 판독 스캔
US10269445B1 (en) * 2017-10-22 2019-04-23 Nanya Technology Corporation Memory device and operating method thereof
TWI646535B (zh) * 2017-12-27 2019-01-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
CN108564981B (zh) * 2018-03-27 2021-10-01 深圳忆联信息系统有限公司 一种存储装置数据安全动态监控方法
US11245583B2 (en) * 2018-05-03 2022-02-08 Micron Technology, Inc. Determining whether a vehicle should be configured for a different region
KR20200079851A (ko) * 2018-12-26 2020-07-06 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10867654B2 (en) * 2019-01-17 2020-12-15 Xerox Corporation Method for testing a memory device
US11004534B2 (en) * 2019-08-06 2021-05-11 Micron Technology, Inc. Preemptive read refresh in memories with time-varying error rates
JP2021071776A (ja) 2019-10-29 2021-05-06 キオクシア株式会社 メモリシステム
US11200113B2 (en) * 2020-01-14 2021-12-14 Intel Corporation Auto-increment write count for nonvolatile memory
KR20210100790A (ko) 2020-02-06 2021-08-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11809743B2 (en) 2020-09-21 2023-11-07 Advanced Micro Devices, Inc. Refresh management list for DRAM
US11461025B2 (en) * 2020-11-05 2022-10-04 Macronix International Co., Ltd. Data retention in memory devices
CN112634978A (zh) * 2020-12-23 2021-04-09 江苏国科微电子有限公司 一种NVMe固态硬盘异常处理方法、装置及集成芯片
US11914887B2 (en) * 2021-04-14 2024-02-27 Macronix International Co., Ltd. Storage device and data accessing method using multi-level cell
US11500578B2 (en) 2021-04-19 2022-11-15 Micron Technology, Inc. Memory access threshold based memory management
US20220404968A1 (en) * 2021-06-18 2022-12-22 Micron Technology, Inc. Read performance techniques for time retention

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100630996B1 (ko) * 2003-04-22 2006-10-09 가부시끼가이샤 도시바 데이터 기억 시스템
JP2011128751A (ja) * 2009-12-16 2011-06-30 Clarion Co Ltd データ記録装置およびデータ記録装置の制御方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6022438B2 (ja) * 1980-05-06 1985-06-01 松下電器産業株式会社 不揮発性メモリのリフレッシュ方式
JP2892590B2 (ja) 1994-07-15 1999-05-17 秀信 甕 土瓦塀風囲い用支持ブロック
JP3176019B2 (ja) * 1995-04-05 2001-06-11 株式会社東芝 不揮発性半導体記憶部を含む記憶システム
JPH09204367A (ja) 1996-01-25 1997-08-05 Mitsubishi Electric Corp フラッシュディスクカードにおけるフラッシュメモリデータのリフレッシュ方法
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US7035155B2 (en) 2002-09-26 2006-04-25 Xware Technology, Inc. Dynamic memory management
JP2004259144A (ja) 2003-02-27 2004-09-16 Renesas Technology Corp 半導体記憶装置
US7321951B2 (en) * 2003-11-17 2008-01-22 Micron Technology, Inc. Method for testing flash memory power loss recovery
US20070204107A1 (en) * 2004-02-24 2007-08-30 Analog Devices, Inc. Cache memory background preprocessing
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
KR100802059B1 (ko) 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
JP2008090778A (ja) 2006-10-05 2008-04-17 Matsushita Electric Ind Co Ltd 不揮発性メモリ用メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、不揮発性メモリのメモリ制御方法
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
US7840837B2 (en) * 2007-04-27 2010-11-23 Netapp, Inc. System and method for protecting memory during system initialization
KR101043013B1 (ko) * 2007-07-18 2011-06-21 후지쯔 가부시끼가이샤 메모리 리프레시 장치 및 메모리 리프레시 방법
US8060798B2 (en) 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
US7937647B2 (en) * 2007-07-27 2011-05-03 Actel Corporation Error-detecting and correcting FPGA architecture
US7770079B2 (en) 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
JP2009087509A (ja) 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
US8499229B2 (en) * 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8161356B2 (en) * 2008-03-28 2012-04-17 Intel Corporation Systems, methods, and apparatuses to save memory self-refresh power
JP4267682B1 (ja) 2008-06-04 2009-05-27 株式会社ハギワラシスコム Nandフラッシュメモリのリフレッシュ方法
US20090327581A1 (en) 2008-06-30 2009-12-31 Coulson Richard L Nand memory
JP2010067010A (ja) 2008-09-11 2010-03-25 Fuji Electric Systems Co Ltd 組み込み機器、不揮発性メモリの自動リフレッシュ方法およびプログラム
US8982653B2 (en) 2008-11-11 2015-03-17 Memory Technologies Llc Method and device for temperature-based data refresh in non-volatile memories
US8281229B2 (en) 2008-12-30 2012-10-02 Intel Corporation Firmware verification using system memory error check logic
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
JP5185156B2 (ja) * 2009-02-24 2013-04-17 株式会社東芝 メモリコントローラおよび半導体記憶装置
KR20110026578A (ko) 2009-09-08 2011-03-16 엘지전자 주식회사 시스템 메모리의 에러 보정 장치 및 방법
JP2011107851A (ja) * 2009-11-13 2011-06-02 Toshiba Corp メモリシステム
US8756474B2 (en) * 2011-03-21 2014-06-17 Denso International America, Inc. Method for initiating a refresh operation in a solid-state nonvolatile memory device
US9176800B2 (en) 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100630996B1 (ko) * 2003-04-22 2006-10-09 가부시끼가이샤 도시바 데이터 기억 시스템
JP2011128751A (ja) * 2009-12-16 2011-06-30 Clarion Co Ltd データ記録装置およびデータ記録装置の制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160091499A (ko) * 2015-01-23 2016-08-03 삼성전자주식회사 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
US9703628B2 (en) 2015-03-12 2017-07-11 SK Hynix Inc. Memory device and system including the same
US10416971B2 (en) 2017-06-12 2019-09-17 TmaxData Co., Ltd. Method of creating the balanced parse tree having optimized height
WO2020145742A1 (ko) * 2019-01-11 2020-07-16 주식회사 엘지화학 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
US11899951B2 (en) 2019-01-11 2024-02-13 Lg Energy Solution, Ltd. Error restoring method, microcontroller unit using the same, and battery device including the microcontroller unit

Also Published As

Publication number Publication date
JP2014525634A (ja) 2014-09-29
US20160019974A1 (en) 2016-01-21
EP2751809B1 (en) 2020-04-01
CN107402832A (zh) 2017-11-28
US9176800B2 (en) 2015-11-03
US10290359B2 (en) 2019-05-14
US10109357B2 (en) 2018-10-23
EP2751809A2 (en) 2014-07-09
EP2751809A4 (en) 2014-12-31
US20170352429A1 (en) 2017-12-07
CN103843069A (zh) 2014-06-04
CN107402832B (zh) 2020-11-27
WO2013033107A2 (en) 2013-03-07
US20130055046A1 (en) 2013-02-28
CN103843069B (zh) 2017-07-11
WO2013033107A3 (en) 2013-04-25
KR102000307B1 (ko) 2019-07-15
JP5901771B2 (ja) 2016-04-13

Similar Documents

Publication Publication Date Title
KR102000307B1 (ko) 메모리 리프레시 방법 및 장치
US7751238B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
US9983916B2 (en) Memory system and operating method thereof
US9053790B1 (en) Counter for write operations at a data storage device
CN105551521B (zh) 存储系统及其操作方法
US9384845B2 (en) Partial erase of nonvolatile memory blocks
US11714757B2 (en) Firmware loading for a memory controller
US20170177242A1 (en) Memory system and operation method for the same
US11016705B2 (en) Electronic apparatus and method of managing read levels of flash memory
US9792058B2 (en) System and method of selecting source and destination blocks for wear-leveling
US11538535B2 (en) Apparatus for rapid data destruction
US11829268B2 (en) Data recovery management for memory
CN109254723B (zh) 非易失性存储器中的存储器扇区注销的方法和系统
US20200211670A1 (en) Bit scan method for partial page program and nonvolatile memory
US20240069768A1 (en) Host-initiated and auto-initiated non-volatile memory refresh
CN115705908A (zh) 存储设置数据的存储器件及其操作方法
CN113764027A (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