KR20160137501A - 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍 - Google Patents

고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍 Download PDF

Info

Publication number
KR20160137501A
KR20160137501A KR1020160157730A KR20160157730A KR20160137501A KR 20160137501 A KR20160137501 A KR 20160137501A KR 1020160157730 A KR1020160157730 A KR 1020160157730A KR 20160157730 A KR20160157730 A KR 20160157730A KR 20160137501 A KR20160137501 A KR 20160137501A
Authority
KR
South Korea
Prior art keywords
memory cell
memory cells
programmed
cell
programmed state
Prior art date
Application number
KR1020160157730A
Other languages
English (en)
Inventor
안토인 코우에이르
바룬 보디
로드니 버질 보우맨
Original Assignee
시게이트 테크놀로지 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시게이트 테크놀로지 엘엘씨 filed Critical 시게이트 테크놀로지 엘엘씨
Publication of KR20160137501A publication Critical patent/KR20160137501A/ko

Links

Images

Classifications

    • 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
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • 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
    • G11C11/5621Digital 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 using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • 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/10Programming or data input 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
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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
    • 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/0069Writing or programming circuits or methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

플래시 메모리 어레이와 같은 메모리에서 데이터를 관리하기 위한 방법 및 장치. 일부 실시예들에 따라, 고체 상태 비휘발성 메모리 셀들의 세트에서의 각각의 메모리 셀이 연관된 초기 프로그램된 상태로 기록되도록, 데이터가 고체 상태 비휘발성 메모리 셀들의 세트에 기록된다. 세트에서의 선택된 메모리 셀들의 프로그램된 상태에서의 드리프트가 검출되고, 선택된 메모리 셀이 부분적으로 재프로그램되어 선택된 메모리 셀이 연관된 초기 프로그램된 상태로 리턴된다.

Description

고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍{PARTIAL REPROGRAMMING OF SOLID-STATE NON-VOLATILE MEMORY CELLS}
본 개시물의 다양한 실시예들은 일반적으로 메모리, 예컨대 플래시 메모리 어레이에서 데이터의 관리에 관한 것이다.
일부 실시예들에 따라, 고체 상태 비휘발성 메모리 셀들의 세트에 있는 각각의 메모리 셀이 연관된 초기 프로그램된 상태에 대해 기록되도록, 고체 상태 비휘발성 메모리 셀들의 세트에 데이터가 기록된다. 이 세트에서 선택된 메모리 셀의 프로그램된 상태에서의 드리프트(drift)가 검출되고, 선택된 메모리 셀은 부분적으로 재프로그램되어 선택된 메모리 셀이 연관된 초기 프로그램된 상태로 리턴된다.
다양한 실시예들을 특징으로 하는 이러한 그리고 다른 특징들은, 하기 상세한 설명 및 첨부 도면들을 고려하여 이해될 수 있다.
도 1은 다양한 실시예들에 따라 호스트 디바이스와 통신하도록 배열된 데이터 저장 디바이스(data storage device)의 기능 블록도를 제공한다.
도 2는 몇몇 실시예들에 따른 도 1의 데이터 저장 디바이스의 블록도를 도시한다.
도 3은 도 1의 디바이스에 사용될 수 있는 플래시 메모리 셀 구성을 도시한다.
도 4는 도 3의 셀들을 사용하는 플래시 메모리 어레이의 일부의 개략도이다.
도 5는 소거 블록에 대한 예시적인 포맷을 도시한다.
도 6은 가비지 콜렉션 유닛(garbage collection unit)(GCU)으로 소거 블록들의 배열을 도시한다.
도 7은 도 6으로부터의 메모리 셀들에 대한 전하 밀도 파퓰레이션(charge density population)들을 도시한다.
도 8은 도 7의 선택된 파퓰레이션에서 전하 드리프트를 도시한다.
도 9는 다양한 실시예들에 따라 도 8의 전하 드리프트를 수정하도록 동작하는 데이터 저장 디바이스의 부분적 재프로그래밍 회로이다.
도 10은 데이터 저장 디바이스의 판독/기록/소거 회로의 판독 부분이다.
도 11은 판독/기록/소거 회로의 기록 부분이다.
도 12는 프로그래밍 드리프트를 평가하기 위한, 메모리 셀들의 파퓰레이션에 상이한 전압 감지 임계치들의 적용을 도시한다.
도 13은 정상 프로그래밍 및 부분 프로그래밍 활동들 동안 도 11의 기록 부분에 의해 적용된 정상 프로그래밍 증분들 및 부분 프로그래밍 증분들을 각각 도시한다.
도 14는 부분 프로그래밍 시퀀스이다.
도 15는 몇몇 실시예들에 따른 부분 프로그래밍 루틴에 대한 흐름도이다.
본 개시는 일반적으로 데이터 저장 디바이스의 플래시 메모리 어레이(이것으로 제한되지 않음)와 같은 메모리 모듈에 저장된 데이터를 관리하는 것에 관한 것이다.
광범위한 비-휘발성 데이터 저장 메모리들은 기술 분야에 알려져 있다. 몇몇 비-휘발성 메모리들은 플래시 메모리, PRAM(resistive random access memory), STRAM(spin-torque transfer random access memory), PCRAM(phase change random access memory) 등과 같은 고체-상태 메모리 셀들의 형태를 취한다.
이들 및 다른 타입들의 메모리 셀들은 반도체 구성을 취하고 셀들의 프로그래밍된 전기, 기계 및/또는 구조적 양상들에 관련하여 데이터를 저장한다. 명목상 프로그래밍된 상태가 확장된 시간 기간동안 유지되는 비-휘발성이지만, 메모리 셀들은 프로그래밍된 상태에서 변동들(프로그래밍 드리프트)을 유도하는 다양한 효과들에 영향을 받을 수 있다. 이들 효과들은 판독 방해, 기록 방해, 전하 드리프트, 온도 열화, 자기소거, 축적된 기록/소거 사이클들, 마모 등을 포함할 수 있고, 상기 효과들은 시간에 따라 셀의 프로그래밍된 무결성에 영향을 미칠 수 있다.
프로그래밍 드리프트가 프로그래밍된 데이터의 신뢰적인 복구를 방해할 정도로 상당히(sufficiently) 진전되기 이전에, 기존 셀들을 재프로그래밍하거나 새로운 세트의 셀들에 데이터를 기록하기 위해서 현재 저장되어 있는 데이터에 대해 리프레쉬(refresh) 동작을 수행하는 것이 일반적이다. 일부 메모리 셀들은 그 셀들에 데이터를 재기록하기 이전에 중간(intervening) 소거 동작을 필요로 한다. 가비지 콜렉션 동작들은 이용가능한 할당 풀(pool)로 메모리의 블록을 리턴시키기 위해서, 현재 데이터를 새로운 장소들에 재기록하는 것과 그에 후속하여 메모리의 블록을 소거하거나 그렇지 않으면 리셋하는 것을 포함할 수 있다.
동작가능한 동안에, 현재 리프레쉬 동작들(가비지 콜렉션 동작들을 포함하지만 이것으로 제한되지 않음)로 인한 문제점은, 데이터의 재기록, 및 필요시, 메모리 셀들의 소거가 메모리 셀들의 전체적인 동작 수명을 감소시킬 수 있다는 점이다. 일부 타입들의 플래시 메모리 셀들은, 예를 들어, 약 5,000 기록/소거 사이클들만큼 적은 사이클 이후에 마모된다(wear out). 반복된 기록 및/또는 소거들로 인해 다른 타입들의 메모리 셀들도 유사한 마모 민감도를 경험할 수 있다.
기록 증폭은 플래시 메모리 셀들을 포함하는 고체-상태 비-휘발성 메모리 셀들과 연관된 관련 현상이다. 기록 증폭은 일반적으로 특정 세트의 데이터가 메모리 내에 기록되는 총 횟수들에 관련한다. 이상적인 기록 증폭 값은 1과 동일할 것인데, 그 이유는 최적으로는, 일단 수신되면, 한 세트의 데이터가 메모리에 단지 한번 기록될 것이기 때문이다. 그러나, 실제 실행에 있어, 가비지 콜렉션 및 다른 리프레쉬 동작들은 종종 데이터가 이동되거나, 재기록되거나, 복사되거나, 또는 그렇지 않으면 어레이 내에서 여러번 복제되게 한다. 일부 현세대의 고체-상태 드라이브(SSD)들은 3 또는 그 초과의 통상적인 기록 증폭 값들을 나타내는데, 이는 호스트로부터 수신되는 각 세트의 데이터가 결국은 수신시 초기 기록된 이후, 적어도 추가로 두번은 메모리 내에 재기록된다는 것을 의미한다.
인식될 수 있듯이, 고레벨들의 기록 증폭은 메모리의 동작 수명을 감소시킬 수 있고, 다수의 세트들의 동일한 데이터가 현재 메모리 내의 상이한 장소들에 상주하는 경우 새로운 데이터를 수용할 능력을 또한 감소시킬 수 있다.
따라서, 본 발명의 다양한 실시예들은 일반적으로 기록 증폭을 감소시키는 방식으로 고체-상태 비-휘발성 메모리 내의 데이터를 관리하기 위한 장치 및 방법에 관련된다. 아래에서 설명되는 바와 같이, 메모리 셀들의 블록은 초기 프로그래밍 상태로 프로그래밍된다. 메모리 셀들 중 하나 또는 그 초과의 것은 추정되거나 검출되는 프로그래밍 드리프트의 결과로서 부분적인 재프로그래밍에 대한 후보로서 식별된다.
프로그래밍 노력의 비교적 적은 증분들, 예컨대 전하의 적은 증분들을 메모리 셀들에 적용함으로써 하나 또는 그보다 많은 메모리 셀들에 부분적 재프로그래밍이 적용되어, 셀들을 이전에 적용된 프로그래밍 상태로 회복시킨다. 셀들이 재프로그래밍되었음을 나타내기 위해, 셀들에는 시간/날짜 스탬프 또는 다른 표시 데이터가 마킹될 수 있다. 이런 식으로, 메모리 어레이 내의 데이터를 옮기는데 필요한 오버헤드 시간 및 자원들이 감소될 수 있고, 불필요한 소거들 및 기록 동작들로 인한 메모리 어레이의 마모가 방지될 수 있다.
일부 실시예들에서, 셀의 인가 전압 임계치들 또는 비트 에러율들을 판독함으로써 측정되는 것과 같은, 시간에 따라 플래시 메모리 셀이 상실하는 전하량을 기초로 플래시 메모리 환경에서 부분적 재프로그래밍이 실행된다. 다음에, 셀이 우선적으로 부분적 재프로그래밍되어, 셀을 그 원래의 상태로 복원시킨다. 이는 데이터를 새로운 프레시(fresh) 블록으로 복사하여 이전 블록을 재사용할 필요성을 없앤다.
감소된 프로그래밍 전압들, 펄스들 등을 사용하여 부분적 재프로그래밍이 실행될 수 있다. 플래시 메모리 셀들, PCRAM 셀들, STRAM 셀들, RRAM 셀들 등을 비롯한 서로 다른 타입들의 메모리 셀들이 부분적으로 재프로그래밍될 수 있다. 플래시 메모리 셀과 관련하여, 셀의 전압 임계치를 그 원래의 프로그래밍된 상태로 q복원시키기 위해 실질적으로 필요한 만큼만 전자들이 플로팅 게이트 경계를 거쳐 이동된다.
추가 실시예들에서, 주어진 메모리 셀에 대한 적절한 보충 프로그래밍 노력들을 결정하기 위해 룩업 테이블 또는 전달 함수와 같은 다른 메커니즘이 사용될 수 있다. 플래시 메모리 셀에서의 전하 손실에 영향을 줄 수 있는 변수들은 온도, 시간 및 프로그램/소거 사이클들을 포함한다. 디바이스는 이러한 그리고 다른 변수들을 추적하여 프로그래밍 상태들을 명시된 파퓰레이션 톨러런스(population tolerance)들 내에서 유지하기 위해 백그라운드에서의 부분적 재프로그래밍의 적용을 스케줄링할 수 있다.
호스트 디바이스(102)에 연결된 데이터 저장 디바이스(100)를 특징으로 하는 데이터 처리 시스템의 단순화된 블록도를 제공하는 도 1의 검토를 시작으로, 다양한 실시예들의 이러한 그리고 다른 특징들이 이해될 수 있다. 각각의 저장 디바이스(100) 및 호스트(102)는 임의의 적당한 형태를 취할 수 있다. 일부 실시예들에서, 호스트(102)는 데스크톱 컴퓨터, 서버, 휴대용 전자 디바이스, 스마트폰, 랩톱, 태블릿, 게임 시스템 등과 같은 네트워크 액세스 가능 컴퓨팅 디바이스이다. 저장 디바이스(100)는 호스트(102)에 통합될 수 있거나, 또는 로컬로 또는 네트워크를 통해 호스트에 접속되어 호스트(102)에 대한 휘발성 및/또는 비휘발성 메모리 데이터 저장 능력들을 제공할 수도 있다.
도 2는 몇몇 실시예들에 따른 도 1의 저장 디바이스(102)에 대한 예시적인 구성을 예시한다. 디바이스(102)는 제어 모듈(104) 및 메모리 모듈(106)을 포함한다. 제어 모듈(104)은 데이터 핸들링 시스템을 위한 최상위 레벨 제어를 제공하고, 메모리 모듈(106)은 메인 데이터 저장부(store)를 제공한다. 메모리 모듈(106)은, 제어/메모리 모듈 통신 인터페이스(105)를 통해 제어 모듈(104)에 의해 메모리 모듈(106)에 발행되는 커맨드들을 수신, 프로세싱 및 실행하도록 적응된다.
각각의 모듈들(104, 106)은 다수의 형태들을 가질 수 있다. 고체-상태 드라이브(SSD) 애플리케이션은, 제어 모듈(104) 및 메모리 모듈(106) 둘 다를, 집적된 독립형 어셈블리에 통합할 수 있다. 하이브리드 디스크 드라이브 애플리케이션에서, 메모리 모듈(106)은 플래시 및 디스크-기반 메모리 둘 다를 포함할 수 있다. 메모리 카드 애플리케이션은 제어 모듈 기능 중 일부 또는 전부를 호스트 디바이스(102)(도 1)에 통합할 수 있다.
도 2의 예시적인 제어 모듈(104)은 제어기(108), 인터페이스(I/F) 회로(110) 및 메모리 버퍼(112)를 포함하는 것으로 도시된다. 제어기(108)는, 호스트(102)와 메모리 모듈(106) 사이에서 데이터의 전송들을 지시하는 것을 비롯하여, 디바이스(100)에 대한 전반적인 제어 기능들을 제공한다. I/F 회로(108)는 호스트와의 그리고 메모리 모듈(106)과의 인터페이스 통신들을 제공한다. 버퍼(112)는, 제어기(108)에 의해 이용되는 프로그래밍 및 제어 데이터를 위한 저장 위치뿐만 아니라 데이터 액세스 동작들 동안 데이터의 일시적 저장을 제공할 수 있다. 도 2에는 구체적으로 도시되지 않았지만, 제어 모듈(104)은, 암호화, 에러 검출 및 정정, 및 다른 신호 프로세싱 능력들을 포함하는 추가적인 기능을 또한 포함할 수 있다.
메모리 모듈(106)은 판독/기록/소거(R/W/E) 회로(114) 및 하나 또는 그 초과의 플래시 메모리 어레이들(116)을 포함하는 것으로 도시된다. R/W/E 회로(114)는, 제어 모듈(104)로부터의 제어 입력들에 대한 응답으로 플래시 메모리 어레이들(116)에 대한 판독, 기록 및 소거 기능들을 수행하도록 동작한다. 메모리는 플래시 메모리를 활용하지만, 다수의 타입들의 메모리(예를 들어, 플래쉬, RRAM, STRAM, PCRAM 등)를 갖는 하이브리드 시스템들을 포함하는 임의의 수의 상이한 타입들의 고체-상태 비휘발성 메모리가 이용될 수 있기 때문에, 이것은 단지 예시적이고 이로 제한되지 않는다.
플래시 메모리 어레이들(116)은, 일반적으로 도 3에 도시된 바와 같은 별개의 플래시 메모리 셀들(118)로 형성될 수 있다. 플래시 메모리 셀(118)은 이격된 n+ 도핑된 영역들(122)을 갖는 반도체 기판(120) 상에 형성된다. 게이트 구조(124)는, 플래시 셀이 일반적인 nMOS 트랜지스터 구성을 취하도록 인접한 도핑된 영역들의 쌍에 걸쳐 있다. 부가적인 플래시 셀들은, 연관된 게이트 구조(124)가 도핑된 영역들(122)의 각각의 인접한 쌍에 제공되도록 기판 상에 형성될 수 있다.
게이트 구조(124)는 전기적으로 전도성인 게이트들(126, 128) 및 전기적으로 절연성인 영역들(130, 132)이 교번하는 스택을 제공한다. 데이터는, 플로팅 게이트(FG)로서 특징화되는 하위 게이트(126) 상에 저장된 상대적인 양의 전하와 관련하여 각각의 셀(118)에 의해 저장된다.
플로팅 게이트(126)는, 제어 게이트(CG)로서 특징화되는 상위 게이트(128) 및 인접한 도핑된(드레인 및 소스) 영역들(122)로의 적절한 전압들의 선택된 인가에 의해 프로그래밍 동작 동안에 전하를 축적한다. 이러한 인가된 전압들은 절연 영역(130)을 통해 반도체 기판(120)의 채널(CH) 부분으로부터 플로팅 게이트(126)로의 전하의 제어된 이동을 유도한다.
초기 소거 상태에서, 일반적으로 플로팅 게이트 상에 실질적으로 어떠한 축적된 전하도 존재하지 않을 것이다. 이러한 상태에서, 셀은 일반적으로 제어 게이트로의 전압의 인가 없이 채널을 통한 드레인-소스 전도성을 나타내려는 경향을 가질 것이다. 일단 전하가 플로팅 게이트 상에 축적되었다면, 충분히 높은 게이트 제어 전압이 제어 게이트에 인가되지 않는 경우에 ― 이러한 포인트에서 셀이 전도성이 됨 ― , 드레인-소스 경로는 비전도성일 것이다. 셀의 프로그래밍된 상태는, 일반적으로 플로팅 게이트 상의 축적된 전하의 양과 상관되는, 드레인-소스 전류가 셀을 통과하도록 허용하는데 요구된 제어 게이트 전압의 레벨을 관측함으로써 결정될 수 있다.
셀(118)은 단일-레벨 셀(SLC) 또는 멀티-레벨 셀(MLC)로서 구성될 수 있다. SLC는 단일 비트를 저장하는데, 보통의 관행은 1의 논리 비트 값을 소거된 셀(실질적으로 어떠한 축적된 전하도 없음)에 할당하고, 0의 논리 비트 값을 프로그래밍된 셀(축적된 전하의 선택된 임계치가 존재함)에 할당하는 것이다. MLC는 2 비트들과 같은 다수의 비트들을 저장한다. 일반적으로, n 비트들은 2n 개의 저장 상태들을 사용하여 저장될 수 있다. 보통의 관행은 다중-비트 논리 값(11)을 전하 C0을 갖는 소거된 셀(실질적으로 어떠한 축적된 전하도 없음)에 할당하고, 이어서 순차적으로 남아있는 다중-비트 논리 값들(01, 00 및 10)을 점점 더 높은 전하 레벨들(C1, C2 및 C3)에 할당하는 것이다.
특수한 소거 동작은 일반적으로, 플로팅 게이트(126)로부터 누산된 전하를 제거하도록 요구된다. 소거는, 플로팅 게이트로부터 다시 채널로의 전하의 이동을 야기하기 위하여, 제어 게이트로의 비교적 높은 전압의 인가에 의해 수행될 수 있다. 상이한 세트의 전압들이 셀에 인가될 수도 있어 이후, 데이터 기록 동작 동안 플로팅 게이트에 전하가 부가된다.
도 3의 (118)과 같은 메모리 셀들은 도 4에 일반적으로 도시된 바와 같이, 메모리 셀들의 로우들 및 컬럼들의 어레이로서 메모리 모듈(106)에 배열될 수 있다. 인접한 셀들의 각각의 컬럼은 하나 또는 그 초과의 비트 라인들(BL)(134)을 통해 커플링될 수 있다. 각각의 로우를 따른 셀들(118)의 제어 게이트들(128)은 개별 워드 라인들(WL)(136)을 통해 상호접속될 수 있다.
도 4에 도시된 메모리 셀들의 어레이는 도 5 및 도 6에 도시된 바와 같이, 소거 블록들(140)로 그룹화될 수도 있다. 각각의 소거 블록(140)은 메모리의 별개로 어드레싱가능한 블록일 수도 있으며, 한번에 동시 소거될 수 있는 메모리의 가장 작은 유닛을 표현한다. 각각의 소거 블록(140)은 메모리 셀들의 복수의 로우들(142)로서 배열될 수도 있으며, 각각의 로우는 공통 워드 라인(도 4)을 공유하고, 사용자 데이터의 선택된 양의 저장을 수용한다. 셀들의 다른 내부 배열들 및 상호접속들이 원하는 바와 같이 이용될 수 있다.
블록-레벨 마모 레벨링은, 다양한 블록들(140)의 소거 및 기록 상태를 추적하는데 이용될 수도 있다. 새로운 블록들은, 새로 수신된 데이터를 수용하도록 요구되는 바와 같이 사용을 위해 할당될 것이다. 몇몇 실시예들에서, 블록들(140)의 그룹들은, 하나의 유닛으로서 할당, 사용 및 소거되는 더 큰 가비지 콜렉션 유닛(GCU)들(144)로 축적될 수도 있다. GCU들(144)은 임의의 적절한 사이즈를 취할 수도 있다.
적어도 몇몇 실시예들에서, 페이지로서 종종 지칭되는 데이터의 고정 사이즈 세트는 한번에 각각의 로우(142)에 기록된다. 페이지 사이즈는 로직 섹터에 대응할 수도 있거나, 다수의 사용자 섹터들은 데이터의 각각의 페이지의 분량(worth)으로 통합될 수도 있다. 섹터들 각각은, 로직 블록 어드레스(LBA)와 같은 연관된 로직 어드레스를 가질 수도 있다. 패리티 비트들 또는 리드 솔로몬 코드들과 같은 에러 정정 코드들은, 데이터의 풀 페이지 분량이 리트리브되는 때에 에러들을 정정하기 위해 페이지 레벨에서 통합될 수도 있다. 메타데이터 및 다른 제어 정보는, 각각의 소거 블록(140)에 저장되거나, 이러한 목적에 전용된 특정한 블록들과 같은 임의의 장소에 저장될 수도 있다.
도 7은 도 6의 어레이에서 다양한 플래시 메모리 셀들(118) 상에 저장된 전하의 상이한 레벨들에 대해 예시적인 정규화된 전하 분포들(150, 152, 154 및 156)을 예시한다.
분포들은 전압 크기를 표시하는 공통 x-축(158) 및 셀 파퓰레이션 카운트를 표시하는 공통 y-축(159)에 대하여 도시된다.
분포들(150, 152, 154 및 156)은 명목 축적 전하 상태들 C0<C1<C2<C3에 관한 변화들을 표현하고, MLC 프로그래밍된 상태들 11, 01, 00 및 10에 대응한다. 다른 인코딩 방식들이 사용될 수 있다. 분포(150)는 상태 11로 프로그래밍된 어레이의 메모리 셀들 상의 전하량의 변화를 표현하고, 분포(152)는 상태 01에 대응하고, 분포(154)는 상태 00에 대응하며, 분포(156)는 상태 10에 대응한다. 파퓰레이션(156) 내의 셀들은 최대 축적 전하를 갖고, 파퓰레이션(150) 내의 셀들은 최소 축적 전하를 갖는다.
프로그래밍된 상태들 11, 01, 00 및 10은 각각의 셀에서 데이터의 두 개의 상이한 페이지들(블록들)에 대한 데이터를 표현할 수 있다. 이 경우, 프로그래밍된 상태의 최하위 비트(LSB:least significant bit)는 제1 페이지에 대한 비트 값을 제공할 수 있고, 프로그래밍된 상태의 최상위 비트(MSB:most significant bit)는 제2 페이지에 대한 비트 값을 제공할 수 있다.
각각의 전하 분포들(150-156)은 이상적으로 겹쳐지지 않아, 적절한 판독-임계치 전압들(T1, T2, T3 및 T4)의 인가가 허용되고, 다양한 프로그래밍된 상태들 간이 구별된다. 임계치(T1)는 명목상, 분포(150)에서 메모리 셀들 전부를 소스-드레인 전도성 상태로 배치시키기에 충분하지만, 분포들(152, 154 및 156)에서 셀들을 전도성 상태로 배치시키기에는 불충분한 전압 레벨을 제공한다. 임계치(T4)는 일반적으로, 각자의 프로그래밍된 상태와 관계없이, 셀들 전부를 전도성 상태로 배치시키기에 충분히 크다.
선택된 플래시 메모리 셀의 프로그래밍된 상태는, 선택된 셀에 대한 비트 라인(134)(도 4)을 적절한 포워드 전압(예컨대, +3 V 등)으로 둠으로써, 그리고 나머지 선택되지 않은 비트 라인들을 어떤 다른 더 낮은 기준 전압(예컨대, 0 V)으로 둠으로써 판독될 수 있다. 선택된 셀을 포함하지 않는 로우들에 대한, 선택되지 않은 워드 라인들(136)은 최고 임계치(T4)로 놓일 수 있고, 그래서 선택된 셀 이외에 선택된 컬럼에 있는 셀들 전부가 소스-드레인 전도성 상태로 놓인다.
하나 또는 둘 이상의 판독 임계치 전압들은 이후, 선택된 셀과 연관된 WL(136)에 인가될 수 있고, 선택된 셀의 프로그래밍된 상태는 전류가 비트 라인(134)을 통해 흐르는지 선택된 컬럼(column)에서의 다른 셀들을 통해 흐르는지에 관련하여 결정될 수 있다. 따라서, 판독 동작은 주어진 판독 임계치 전압이 전도성 상태에 선택된 셀을 배치하기에 충분한지 여부를 평가하고, 컬럼을 통한 전류 흐름을 획득하도록 요구되는 인가된 전압이 더 높을수록, 더 높은 양의 축적된 전하가 플로팅 게이트(floating gate) 상에 제공된다.
일부 실시예들에서, 데이터의 제 1 페이지는 SLC 모드에서 선택된 로우(row)의 셀들을 따라 셀들에 기록된다. 데이터의 제 1 페이지는 논리 0들 및 1들의 비트 시퀀스를 어떤 순서로(예를 들어, 00101111010000100 …) 구성할 것이다. 각각의 셀에 1 비트가 저장될 것이다. 논리 1이 저장될 이러한 셀들은 "11" 분포(150) 내에 속하는 전하 레벨을 갖기 위해서 어떠한 프로그래밍 활동(programming effort)(또는 최소의 프로그래밍 노력)도 수신하지 않을 수 있다. 논리 0이 저장될 이러한 셀들은 "00" 분포(154) 내에 속하게 전하 레벨을 상승시키기에 충분한 프로그래밍 노력을 수신할 것이다.
SLC들로부터 저장된 비트 시퀀스를 다시 판독하기 위해서, 판독 임계치 전압 T2는 결국 각각의 셀에 인가될 수 있고, 셀이 인가된 판독 임계치 전압의 결과로서 전도성 상태로 배치되는지의 여부에 관련하여 저장된 상태(논리 1 또는 0)가 결정될 수 있다.
그 후에, 셀들을 MLC 형태로 변환하기 위해, 데이터의 제 2 페이지가 SLC 셀들에 중복기록(overwrite)될 수 있다. 이전과 같이, 데이터의 제 2 페이지는 논리 0들 및 1들의 비트 시퀀스를 구성할 것이고, 각각의 셀에 데이터의 제 2 페이지로부터의 1 비트가 저장될 것이다. 논리 1이 저장될 이러한 셀들은 추가적인 프로그래밍된 노력을 수신하지 않을 것이다. 논리 0이 저장될 이러한 셀들은 다음의 더 높은 분포로 전하 레벨을 증분시키기에 충분한 추가적인 전하를 수신할 것이다.
논리 1이 "11" 분포(150)에서 프로그래밍된 메모리 셀에 기록될 것이면, 추가적인 전하는 셀을 "01" 분포(152)로 트랜지션할 것이다. 유사하게, 논리 1이 "00" 분포(154)에서 프로그래밍된 메모리 셀에 기록될 것이면, 추가 전하는 셀을 "10" 분포(156)로 트랜지션할 것이다. 각각의 경우, 프로그래밍된 셀의 LSB(가장 우측 비트)는 데이터의 제 1 페이지에 대한 비트 값을 표시하고, 프로그래밍된 셀의 MSB(가장 좌측 비트)는 데이터의 제 2 페이지에 대한 비트 값을 표시한다.
이론적으로, 각각의 파퓰레이션들(150-156)은, 다양한 임계치들(T1-T4)이 셀들의 프로그래밍된 상태들을 정확하게 분별하는 것을 가능하게 하기 위해 충분한 분리를 유지한다. 그러나, 시간에 걸쳐, 마모, 판독 방해, 기록 방해, 온도, 전하 드리프트, 제조 톨러런스들 등과 같은 다양한 영향들은, 도 8의 파퓰레이션(152)의 점선 시프트된 표현들에 의해 도시되는 바와 같이, 주어진 파퓰레이션 내의 셀들이 드리프트되도록 초래할 수 있다. 시프트된 파퓰레이션들(152)의 메모리 셀들 중 몇몇이, 실제 프로그래밍된 상태(01)보다는 프로그래밍된 상태(11)에 저장된 것으로서 검출될 것이라는 것이 확인될 수 있다. 전하 드리프트는, 도 8의 우측으로의 파퓰레이션 시프트가 또한 발생할 수 있도록, 축전된 전하의 총량의 증가들 또는 감소들을 초래할 수 있다.
도 9는 메모리 셀(162)의 프로그래밍 드리프트를 정정하기 위해 다양한 실시예들에 따라 동작가능한 부분적 재프로그래밍 회로(160)를 예시한다. 프로그래밍 드리프트는 플래시 메모리 셀에 대해 도 8에 예시된 바와 같은 전하 드리프트의 형태일 수 있다. 대안적으로, 메모리 셀은, PCRAM 셀, RRAM 셀, STRAM 셀 등과 같은 상이한 형태를 취할 수 있고, 프로그래밍 드리프트는 위상 변경 드리프트, 저항 드리프트, 자기소거(demagnetization) 등의 형태일 수 있다.
부분적 재프로그래밍 회로(160)는, 셀을 이전에 프로그래밍된 상태로 복원(restore)하기 위해 재프로그래밍 노력들을 메모리 셀(162)에 적용한다. 재프로그래밍 노력들은, 시간, 펄스 폭, 전하 전달량, 적용된 필드 세기 등의 측면에서 정상 프로그래밍 노력보다 더 적다. 이러한 방식으로, 회로(160)는 프로그래밍 분포를 더 엄격하게 하기 위해 기존의 프로그래밍 상태를 "조정(tweak)"한다.
몇몇 실시예들에서, 부분적 재프로그래밍 회로(160)는 제어기(108) 또는 판독/기록/소거(R/W/E) 회로(114)의 부분을 형성하거나, 또는 이들 다른 회로들과 인터페이싱하는 독립형 회로이다. 회로(160)는, 재프로그래밍 노력들이 적용되어야 하는 후보 메모리 셀들을 식별하기 위해, 검출된 또는 추정된 비트 에러율들(BER들), 시간 정보, 온도 측정들, 축적된 기록/소거(W/E) 카운트들 등을 포함하는 다수의 제어 입력들을 이용할 수 있다. 룩업 테이블(164)은, 회로(160)가 다양한 환경 조건들 또는 상황들 하에서 특정 셀을 재프로그래밍하는 것을 가능하게 하기 위해 이용될 프로파일 정보를 저장할 수 있다.
도 10은, MLC들의 그룹으로부터, 예를 들어, 선택된 로우를 따라, 데이터의 2개의 페이지들(블록들)을 판독하기 위해 동작가능한 도 2의 판독/기록/소거 회로(114)의 판독 부분(170)을 도시한다. 커맨드 디코더 블록(172)은, 판독 커맨드를 프로세싱하여, 하나 또는 그 초과의 디지털 판독 임계치 값들 T을 디지털-투-아날로그(DAC)/드라이버 회로(174)에 출력한다. DAC/드라이버(174)는, 결과적으로 대응하는 아날로그 게이트 전압을 (도 9로부터 메모리 셀(162)에 의해 표현된) 각각의 셀에 출력한다. 소스(176)에 의해 소스 전압 Vs가 인가된다. 셀의 전도 상태는, 비교기(178), 및 소스(180)로부터의 적합한 기준 전압 Vr을 이용하여 감지된다. 감지된 데이터는, 저장된 데이터를 별도로 (페이지 1 및 페이지 2 각각) 저장하는 출력 버퍼(182)에 제공된다.
각각의 셀의 저장 상태를 감지하기 위해 다수의 임계치들이 요구될 수 있다. MSB 페이지 1 데이터의 저장 상태를 감지하기 위해 전압 임계치 T2가 초기에 인가될 수 있다. 전압 임계치들 T1 및 T3이, LSB 페이지 2 데이터의 저장 상태를 감지하기 위해 후속하여 인가될 수 있다. 임계치 T2가 셀을 전도성으로 렌더링했다면, 그 셀이 파퓰레이션들(150 또는 152) 내에 포함되는지 여부를 결정하기 위해 T1이 후속하여 인가될 수 있다. 유사하게, 임계치 T2가 그 셀을 전도 상태로 위치시키기에 실패했다면, T3의 인가가, 셀이 파퓰레이션들(154 또는 156) 내에 포함되는지 여부를 결정할 것이다.
이에 따라, 저장 상태(11, 01, 00 또는 10)는 쉽게 결정될 수 있을 것이며, 여기서 제 1 (MSB) 비트는 제 1 페이지에 있는 비트를 나타내고, 제 2 (LSB) 비트는 제 2 페이지에 있는 비트를 나타낸다. 각각의 MLC에 대해 전술한 단계들을 반복하는 것은, 결과적으로, 제 1 및 제 2 페이지들에 대해 복원된 비트 시퀀스들을 생성할 것이다.
도 10에 예시된 바와 같이, 판독/기록/소거 회로(114)의 기록 회로 부분(190)에 의해 셀들의 프로그래밍이 수행될 수 있다. 전하 펌프 배열이 이용되며, 이에 의해, 축적 전하의 이산 양자들(discrete quanta)이 선택된 셀(162)에 순차적으로 전달되어 전체 축적 전하량을 원하는 프로그래밍 분포로 상승시킨다.
전압 소스(192)는 커패시터(194) 또는 다른 전하 저장 엘리먼트에 프로그래밍 전압을 공급한다. 전력 MOSFET 또는 다른 적합한 디바이스의 형태를 취할 수 있고 선택적으로 활성화되는 스위치(196)는, 커패시터(194)로부터 선택된 메모리 셀(162)로의 축적 전하의 전달을 허용하기 위해 주기적으로 폐쇄한다.
도 10에서의 판독 회로(170)는 전하의 축적(accumulation) 동안 셀에 수 개의 프로그램 검증(PV) 판독 임계치 전압들을 주기적으로 인가하기 위해 사용될 수 있다. 몇몇 실시예들에서, 도 11의 프로그램 프로세싱은, 셀(162)이 더 이상 특정된 PV 판독 임계치 값에 전도성 반응을 보이지 않을 때까지 지속되며, 이때, 선택된 셀에서의 프래그래밍 동작은 종결된다.
도 12는 프래그래밍된 메모리 셀들의 파퓰레이션에 대한 다른 파퓰레이션 곡선(198)을 제공한다. 파퓰레이션의 사이즈 및 형상을 결정하기 위해 일련의 전압 임계치들이 적용될 수 있다. 도 12에 도시된 바와 같이, 더 낮은 베이스라인(baseline) 임계치 Va는, 파퓰레이션 곡선(198)의 더 낮은 경계를 특성화하도록 베이스라인 임계치(예를 들어, +/- 5% 등)보다 미세하게 더 낮거나 그리고 더 높을 수도 있는 증분된 임계치들(Va-, Va+)을 따라 적용될 수 있다. 유사하게, 더 높은 베이스라인 임계치 Vb 및 연관된 증분된 임계치들 Vb-, Vb+는 파퓰레이션 곡선(198)의 상위 경계를 특성화하도록 적용될 수 있다.
도 13은, 정상 프로그래밍 및 부분 프로그래밍 동작들 동안, 도 11의 기록 회로(190)에 의해 적용되고 도 10의 판독 회로(170)에 의해 감지될 수 있는 프래그래밍 증분들의 상이한 사이즈들을 도시한다. 축적된 전하의 상대적으로 더 큰 프로그래밍 증분들(200)은 메모리 셀을 초기 상태로 프로그래밍하기 위해 기록 회로(190)에 의해 적용될 수도 있고, 그 후, 축적된 전하의 상대적으로 더 작은 재프로그래밍 증분들(202)이 셀을 초기에 프로그래밍된 상태로 리턴시키기 위해 기록 회로(190)에 의해 후속하여 적용될 수도 있다.
예를 들어, 다시 도 7을 참조하면, 11의 초기 프로그래밍된 상태를 갖는 소거된 메모리 셀은, 축적된 전하의 총량을 전압들 V2 및 V3에 의해 셋팅된 임계치 값들 사이에 있는 레벨까지 이르게 하기 위해, 증분들(200) 중 5 또는 6(5-6)에 영향을 받음으로써 00 상태로 프로그래밍될 수도 있다.
그 후에, 메모리 셀의 플로팅 게이트에서 전하가 누설되고 V2 임계치를 향한 방향으로 전하의 총량이 드리프트한 경우, 축적된 전하의 상대적으로 더 작은 부분 프로그래밍 증분들(202) 중 하나 또는 그 초과가, 메모리 셀을 그 자신의 이전에 프로그래밍되었던 상태로(예를 들어, 축전된 전하의 총량이 명목상 이전과 동일한 상태로) 되돌리기 위해 적용될 수 있다.
이러한 부분적인 프로그래밍 시퀀스가 도 14에 의해 도시된다. 파퓰레이션 분포 곡선(204)에 의해 나타낸 바와 같이, 셀들의 초기 파퓰레이션은 특정 상태로 프로그램된다. 시간이 경과함에 따라, 곡선(206)에 의해 나타낸 바와 같이, 셀들 중 적어도 일부가 전하를 잃고 드리프트된 파퓰레이션 분포를 제공한다.
곡선(208)에 의해 나타낸 바와 같이, 부분적인 프로그래밍 증분(increment)들(202)의 적용은 전체적인 분포에 있어서의 증가를 야기한다. 증분들(202)이 계속해서 적용됨에 따라, 최종의 부분적인 프로그래밍 분포(곡선 210)은 초기 곡선(204)과 명목상 일치(match)할 것이다.
도 14의 메모리 셀들을 부분적으로 재프로그래밍함으로써, 소거와 프로그래밍의 풀 사이클(full cycle)이 회피될 수 있으며, 이에 의해 메모리 모듈 내에서의 데이터의 카피들의 총 개수를 줄일 수 있을 뿐 아니라, 셀들에 대한 마모(wear)를 줄일 수 있다.
도 15는 다양한 실시예들에 따라 수행되는 단계들을 설명하기 위한 부분적 재프로그래밍(PARTIAL REPROGRAMMING) 루틴(220)에 대한 흐름도이다. 예시를 목적으로, 루틴(220)은 도 2-6에 도시된 플래시 메모리 어레이에 대해 설명될 것이다. 이는 단지 예시적인 것이며, 제한적인 것이 아니다.
단계(222)에서, 메모리 셀이 선택된 상태로 프로그램된다. 이는 SLC 상태 또는 MLC 상태일 수 있으며, 이에 따라, 프로그램되는 상태는, 요구되는 바에 따라, 데이터의 단일 페이지, 또는 데이터의 다수의 페이지들에 대응한다. 프로그램되는 상태는 도 7의 분포 곡선들에서 나타낸 상태들(예를 들어, 11, 01, 00 또는 10) 중에서 선택되는 하나일 수 있다.
얼마간의 선택된 시간 간격 이후, 단계(224)에서, 셀은 부분적 재프로그래밍에 대한 후보로서 식별된다. 이는 다양한 방법들로 수행될 수 있다. 메모리 셀에 대한 보유 시간은 경과된 시간 기간으로서 계산될 수 있으며, 이러한 경과된 시간 기간 동안, 셀은 과도한 열화(undue degradation)없이 프로그램된 상태를 유지할 수 있다. 셀이 자신의 프로그램된 상태를 유지한 실제 시간이 계산된 보유 시간과 같거나 또는 초과한다면, 그 셀은 부분적인 재프로그래밍에 대한 후보로서 마크될 수 있다.
대안적으로, 셀은 판독 동작에 영향을 받을 수 있으며, 그 셀을 포함하는 메모리의 블록(들)에 대한 비트 에러 레이트(BER)는 미리 결정된 임계치를 초과할 수 있다. 다른 실시예들에서, 블록에 대한 기록/소거 카운트들은 셀이 평가(evaluate)되어야 함을 나타내는 특정 임계치에 도달할 수 있다. 또 다른 실시예들에서, 데이터 판독 교란 가능성을 나타내기 위해, 셀들 및/또는 인접하는 셀들에 대해 충분히 많은 개수의 판독 동작들이 달성될 수 있다. 스케쥴된 것에 입각한 모든 셀들의 주기적인 재프로그래밍을 포함하는, 부분적인 재프로그래밍에 대한 후보로서 셀을 식별하기 위해, 임의의 다른 적합한 팩터들, 파라미터들, 측정치들 또는 다른 표시(indicia)가 이용될 수 있다.
다음으로, 단계(226)에서, 선택된 메모리 셀에 대해 전압 임계치 테스트가 수행된다. 이는, 셀의 프로그래밍된 상태를 확인(ascertain)하기 위해, 도 12에 도시된 바와 같이, 하나 또는 그 초과의 전압 임계치들의 인가를 포함할 수 있다.
셀이 충분한 프로그래밍 저하(degradation)를 나타내는 경우에, 루틴은, 판정 단계(228)로부터 단계(230)로 진행하고, 단계(230)에서, 전하의 하나 또는 그 초과의 증분들이 셀에 인가된다. 이는, 도 11의 회로(190)를 사용하는, 도 13으로부터의 작은 증분(202)의 인가를 포함할 수 있으며, 그 후에, 단계(232)에서 표시된 바와 같이, 도 12의 회로(180)에 의한 적합한 판독/프로그램 검증 전압 임계치의 인가가 후속된다. 프로세스는, 셀이 적절한 레벨로 복원될 때까지, 판정 단계(234)에 의해 표시된 바와 같이 계속된다. 그 후에, 단계(236)에서, 셀은 재프로그래밍된 것으로서 마킹된다. 이는, 메모리 셀에 대한 연관된 메타데이터에서의 표기(notation)를 포함할 수 있으며, 셀이 재프로그래밍된 시기를 표시하기 위해 날짜/시간 스탬프를 포함할 수 있다. 그 후에, 단계(238)에서 루틴이 종료된다.
본원에서 제시되는 바와 같은 부분적인 재프로그래밍의 적용은 데이터 재기록들 및 소거들의 발생 정도를 감소시킬 수 있다는 것을 알 수 있다. 가비지 콜렉션 동작들은, 요구되는 대로, 그러나, 데이터 리프레쉬를 필요로 하기 보다는(즉, 프로그래밍 드리프트를 겪었을 정도로 충분히 오래됨), 주어진 GCU에서의 데이터가 상당히 낡은(largely stale)것(즉, 개정(revision)을 벗어남) 것임에 기초하여, 여전히 수행될 수 있다.
모든 셀이 반드시, 프로그래밍된 셀들의 초기 세트로부터 재프로그래밍될 필요는 없다. 그보다는, 비트 에러들을 나타내는 셀들이 평가 및 프로그래밍에 영향을 받을 수 있고, 나머지는 방치될(left alone) 수 있다. 유사하게, 프로그램 드리프트를 경험할 가능성이 더 큰 프로그래밍 상태들을 갖는 셀들(예를 들어, "10"으로 프로그래밍된 셀들 등)이 부분적으로 재프로그래밍될 수 있고, 나머지는 방치될 수 있다. 다른 경우들에서, 메모리 셀들의 로우(row)에서 셀들 모두가 프로그래밍 드리프트에 대해 평가되고, X 워스트(worst) 퍼센트(예를 들어, 워스트 20 % 등)가 부분적으로 재프로그래밍되고, 나머지는 방치된다.
플래시 메모리 셀들과 연관된 본원에 개시된 다양한 실시예들이 드리프트 메커니즘으로서 전하 레벨의 감소를 고려하였지만, 몇몇 상황들에서, 과도한 판독들의 맥락에서와 같이, 전하의 증가가 경험될 수 있다는 것이 고려된다. 전하의 부가적인 양이 게이트에 부가되는 것보다, 플로팅 게이트로부터 전하의 작은 부분이 제거되게 프로그래밍 전압들의 상이한 세트가 인가되도록 기록 회로를 구성하는 것이 가능하다. 유사하게, 다른 타입들의 메모리 셀들에 대한 양방향성 프로그래밍 조정들이 또한 적용될 수 있다.
본 개시의 다양한 실시예들의 다수의 특성들 및 이점들이, 다양한 실시예들의 기능 및 구조의 세부사항들과 함께, 전술한 설명에서 제시되었지만, 이러한 상세한 설명은 단지 예시적일 뿐이며, 첨부된 청구항들이 표현되는 용어들의 넓은 일반적인 의미에 의해 표시되는 전체 범위까지, 특히, 본 개시의 원리들 내의 부분들의 배열들 및 구조에 관하여, 변화들이 상세히 이루어질 수 있다는 것이 이해되어야 한다.

Claims (20)

  1. 방법으로서,
    고체-상태 비휘발성 메모리 셀들의 세트에 있는 각각의 메모리 셀이 연관된 초기 프로그램 상태에 기록되도록, 상기 고체-상태 비휘발성 메모리 셀들의 세트에 데이터를 기록하는 단계;
    상기 세트에서 선택된 메모리 셀의 프로그램된 상태에서의 드리프트(drift)를 검출하는 단계; 및
    상기 선택된 메모리 셀이 상기 연관된 초기 프로그램된 상태로 리턴되도록, 상기 선택된 메모리 셀을 부분적으로 재프로그래밍하는 단계
    를 포함하며, 상기 세트에 있는 적어도 하나의 다른 메모리 셀은 부분적으로 재프로그램되지 않는, 방법.
  2. 제 1 항에 있어서,
    상기 고체-상태 비휘발성 메모리 셀들의 세트는, 플래시 메모리 셀들 각각의 플로팅 게이트 상에 전하를 축적함으로써 한 페이지 분량(a page worth)의 데이터를 동시에 저장하도록 프로그램되는 플래시 메모리 셀들의 로우를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 플래시 메모리 셀들 각각은, 2 페이지 분량의 데이터가 상기 메모리 셀들에 의해 저장되도록, 멀티-레벨 셀(MLC)로 구성되는, 방법.
  4. 제 1 항에 있어서,
    각각의 메모리 셀을 상기 연관된 초기 프로그램된 상태로 프로그램하기 위해 제 1 기록 펄스 지속기간이 적용되며, 그 후에, 선택된 메모리 셀을 그의 연관된 프로그램된 상태로 재프로그램하기 위해 제 2 기록 펄스 지속기간이 적용되며, 상기 제 2 기록 펄스 지속기간은 상기 제 1 기록 펄스 지속기간 보다 ?F은, 방법.
  5. 제 1 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는 상기 선택된 메모리 셀에 전압 임계치를 적용함으로써 검출되는, 방법.
  6. 제 1 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는 상기 선택된 메모리 셀과 연관된 비트 에러율(BER)에 응답하여 검출되는, 방법.
  7. 제 1 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는, 상기 선택된 메모리 셀이 상기 연관된 초기 프로그램된 상태로 프로그램된 이후 경과된 시간에 응답하여 검출되는, 방법.
  8. 제 1 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는, 상기 선택된 메모리 셀과 연관된 온도 측정에 응답하여 검출되는, 방법.
  9. 제 1 항에 있어서,
    상기 선택된 메모리 셀을 상기 초기 프로그램된 상태로 프로그램하기 위해 다수의 전하 증분들이 적용되며, 그 후에, 상기 선택된 메모리 셀을 다시 상기 초기 프로그램된 상태로 부분적으로 재프로그램하기 위해 다수의 더 작은 전하 증분들이 적용되는, 방법.
  10. 제 1 항에 있어서,
    상기 메모리 셀은 RRAM(resistive random access memory) 셀, PCRAM(phase change random access memory) 셀 또는 STRAM(spin-torque transfer random access memory) 중 선택된 메모리 셀인, 방법.
  11. 제 1 항에 있어서,
    상기 선택된 메모리 셀과 연관된 제어 데이터에 재프로그램된 것으로 상기 선택된 메모리 셀을 마킹하는 단계를 더 포함하는, 방법.
  12. 장치로서,
    어드레스가능 유닛들에 배열되는 고체 상태 비휘발성 메모리 셀들의 어레이;
    선택된 어드레스가능 유닛에서의 각각의 메모리 셀이 연관된 초기 프로그램된 상태를 갖도록, 메모리에 대해 선택된 어드레스가능 유닛에 데이터를 기록하도록 적응되는, 기록 회로; 및
    상기 선택된 어드레스가능 유닛에서의 메모리 셀들 중 적어도 하나의 메모리 셀의 프로그램된 상태에서의 드리프트를 검출하고, 상기 연관된 초기 프로그램 상태들로 상기 선택된 어드레스가능 유닛에서의 메모리 셀들 중 일부(less than all)를 부분적으로 재프로그램하게 상기 기록 회로를 지시(direct)하도록 적응되는, 부분적 재프로그래밍 회로
    를 포함하는, 장치.
  13. 제 12 항에 있어서,
    상기 선택된 어드레스가능 유닛은 플래시 메모리 셀들의 로우이며, 상기 기록 회로는 상기 로우에 한 페이지의 데이터를 기록하기 위해 제 1 전하 증분들을 축적하여 상기 플래시 메모리 셀들에 전달하며, 상기 기록 회로는 상기 로우의 플래시 메모리 셀들을 부분적으로 재프로그램하기 위해 상기 제 1 전하 증분들 보다 작은 제 2 전하 증분들을 축적하여 전달하는, 장치.
  14. 제 12 항에 있어서,
    각각의 메모리 셀을 상기 연관된 초기 프로그램된 상태로 프로그램하기 위해 제 1 기록 펄스 지속기간이 적용되며, 그 후에, 상기 선택된 메모리 셀을 그의 연관된 프로그램된 상태로 재프로그램하기 위해 제 2 기록 펄스 지속기간이 적용되며, 상기 제 2 기록 펄스 지속기간은 상기 제 1 기록 펄스 지속기간보다 짧은, 장치.
  15. 제 12 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는 상기 선택된 메모리 셀에 전압 임계치를 인가함으로써 검출되는, 장치.
  16. 제 12 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는 상기 선택된 메모리 셀과 연관된 비트 에러율(BER)에 응답하여 검출되는, 장치.
  17. 제 12 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는 상기 선택된 메모리 셀이 상기 연관된 초기 프로그램된 상태로 프로그램된 이후 경과된 시간에 응답하여 검출되는, 장치.
  18. 제 12 항에 있어서,
    상기 프로그램된 상태에서의 드리프트는 상기 선택된 메모리 셀과 연관되는 온도 측정에 응답하여 검출되는, 장치.
  19. 장치로서,
    유닛으로서 소거되고 할당되는 다수의 GCU(garbage collection unit)들에 배열되는 비휘발성 플래시 메모리 셀들을 포함하는 플래시 메모리 어레이;
    각각, 선택된 GCU로부터 데이터를 판독하고, 상기 선택된 GCU에 데이터를 기록하고, 그리고 상기 선택된 GCU를 소거하도록 적응되는, R/W/E(read/write/erasure) 회로; 및
    프로그래밍 드리프트가 경험됨에 따라 상기 선택된 GCU에서의 프로그램된 플래시 메모리 셀들의 세트를 식별하고, 상기 선택된 GCU의 중간 소거(intervening erasure)의 적용 없이 상기 메모리 셀들을 그들의 초기 프로그램된 상태들로 복원하기 위해, 프로그램된 플래시 메모리 셀들의 세트로 전기 전하가 전달되도록 상기 프로그램된 플래시 메모리 셀들의 세트를 부분적으로 재프로그램하도록 지시하는, 부분적 재프로그래밍 회로
    를 포함하는, 장치.
  20. 제 19 항에 있어서,
    상기 부분적 재프로그래밍 회로는 추가로, 상기 부분적 재프로그래밍 동작 이전에 각각의 프로그램된 상태를 평가(assess)하기 위해, 상기 프로그램된 플래시 메모리 셀들의 세트에 하나 또는 그 초과의 전압 임계치들을 인가하도록 상기 R/W/E 회로를 지시하는, 장치.
KR1020160157730A 2013-07-16 2016-11-24 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍 KR20160137501A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/943,441 2013-07-16
US13/943,441 US9378830B2 (en) 2013-07-16 2013-07-16 Partial reprogramming of solid-state non-volatile memory cells

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20140089781A Division KR20150009478A (ko) 2013-07-16 2014-07-16 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍

Publications (1)

Publication Number Publication Date
KR20160137501A true KR20160137501A (ko) 2016-11-30

Family

ID=52343461

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20140089781A KR20150009478A (ko) 2013-07-16 2014-07-16 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍
KR1020160157730A KR20160137501A (ko) 2013-07-16 2016-11-24 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20140089781A KR20150009478A (ko) 2013-07-16 2014-07-16 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍

Country Status (4)

Country Link
US (1) US9378830B2 (ko)
JP (1) JP6027059B2 (ko)
KR (2) KR20150009478A (ko)
CN (1) CN104332178B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020028818A1 (en) * 2018-08-03 2020-02-06 Micron Technology, Inc. Fast non-volatile storage device recovery techniques
KR20200121347A (ko) * 2018-03-14 2020-10-23 실리콘 스토리지 테크놀로지 인크 심층 학습 신경망에서 아날로그 비휘발성 메모리를 위한 데이터 리프레쉬 방법 및 장치

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) * 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9576649B2 (en) * 2015-03-31 2017-02-21 Seagate Technology Llc Charge loss compensation through augmentation of accumulated charge in a memory cell
KR102449337B1 (ko) * 2015-12-14 2022-10-04 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
US10254969B2 (en) * 2016-05-13 2019-04-09 Seagate Technology Llc Data refresh in flash memory
KR102565888B1 (ko) 2016-09-12 2023-08-11 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US10262743B2 (en) * 2016-10-25 2019-04-16 Sandisk Technologies Llc Command sequence for first read solution for memory
US9952944B1 (en) 2016-10-25 2018-04-24 Sandisk Technologies Llc First read solution for memory
US10026486B1 (en) 2017-03-06 2018-07-17 Sandisk Technologies Llc First read countermeasures in memory
CN108694979B (zh) * 2017-04-06 2023-08-01 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
US10347315B2 (en) 2017-10-31 2019-07-09 Sandisk Technologies Llc Group read refresh
US10706920B2 (en) 2017-11-02 2020-07-07 Samsung Electronics Co., Ltd. Memory device
KR102467075B1 (ko) * 2017-11-13 2022-11-11 삼성전자주식회사 메모리 장치 및 그의 리클레임 방법
KR102651129B1 (ko) 2018-12-21 2024-03-26 삼성전자주식회사 메모리 장치의 데이터 재기입 방법, 상기 메모리 장치를 제어하는 메모리 컨트롤러 및 상기 메모리 컨트롤러의 제어 방법
KR102161833B1 (ko) * 2018-12-31 2020-10-05 성균관대학교산학협력단 온도 정보를 활용한 멀티 레벨 셀 상변화 메모리 스크러빙 장치
CN114400035A (zh) * 2021-12-02 2022-04-26 长江存储科技有限责任公司 存储器的编程方法、存储器及存储系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815439A (en) 1996-04-30 1998-09-29 Agate Semiconductor, Inc. Stabilization circuits and techniques for storage and retrieval of single or multiple digital bits per memory cell
US6424569B1 (en) * 2000-02-25 2002-07-23 Advanced Micro Devices, Inc. User selectable cell programming
US6343033B1 (en) * 2000-02-25 2002-01-29 Advanced Micro Devices, Inc. Variable pulse width memory programming
US7184307B2 (en) 2001-08-28 2007-02-27 Samsung Electronics Co., Ltd. Flash memory device capable of preventing program disturbance according to partial programming
US6751146B1 (en) * 2003-01-07 2004-06-15 Advanced Micro Devices, Inc. System and method for charge restoration in a non-volatile memory device
JP2004259144A (ja) * 2003-02-27 2004-09-16 Renesas Technology Corp 半導体記憶装置
DE102005009700B4 (de) * 2004-02-26 2009-02-05 Samsung Electronics Co., Ltd., Suwon Programmierverfahren und nichtflüchtiger Speicher
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
JP2007058966A (ja) * 2005-08-23 2007-03-08 Renesas Technology Corp 半導体装置
JP2009536423A (ja) 2006-05-05 2009-10-08 ハネウェル・インターナショナル・インコーポレーテッド 不揮発性メモリをリフレッシュする方法
KR100816162B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 낸드 플래시 메모리 장치 및 셀 특성 개선 방법
WO2009042298A1 (en) 2007-09-26 2009-04-02 Rambus Inc. Flash memory refresh
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
KR101406279B1 (ko) * 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
JP5478855B2 (ja) 2008-08-08 2014-04-23 ルネサスエレクトロニクス株式会社 不揮発性メモリ制御方法及び半導体装置
US8238157B1 (en) * 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
KR20130071686A (ko) * 2011-12-21 2013-07-01 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US9355024B2 (en) * 2012-10-10 2016-05-31 Apple Inc. Systems and methods for nonvolatile memory performance throttling
US9182924B2 (en) * 2013-01-11 2015-11-10 Seagate Technology Llc Modifying logical addressing at a requestor level

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200121347A (ko) * 2018-03-14 2020-10-23 실리콘 스토리지 테크놀로지 인크 심층 학습 신경망에서 아날로그 비휘발성 메모리를 위한 데이터 리프레쉬 방법 및 장치
WO2020028818A1 (en) * 2018-08-03 2020-02-06 Micron Technology, Inc. Fast non-volatile storage device recovery techniques
US10733104B2 (en) 2018-08-03 2020-08-04 Micron Technology, Inc. Fast non-volatile storage device recovery techniques

Also Published As

Publication number Publication date
US20150023097A1 (en) 2015-01-22
KR20150009478A (ko) 2015-01-26
US9378830B2 (en) 2016-06-28
CN104332178B (zh) 2018-10-19
CN104332178A (zh) 2015-02-04
JP2015022788A (ja) 2015-02-02
JP6027059B2 (ja) 2016-11-16

Similar Documents

Publication Publication Date Title
KR20160137501A (ko) 고체-상태 비휘발성 메모리 셀들의 부분적 재프로그래밍
US9263158B2 (en) Determining data retention time in a solid-state non-volatile memory
US9263142B2 (en) Programming a memory cell using a dual polarity charge pump
US8923045B2 (en) Multi-level cell (MLC) update with protected mode capability
US9330790B2 (en) Temperature tracking to manage threshold voltages in a memory
US9099185B2 (en) Using different programming modes to store data to a memory cell
CN102667945B (zh) 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法
US8811074B2 (en) Parametric tracking to manage read disturbed data
US8838881B2 (en) Transfer command with specified sense threshold vector component
US9501400B2 (en) Identification and operation of sub-prime blocks in nonvolatile memory
US8705291B2 (en) Sanitizing a non-volatile memory through charge accumulation
KR101905266B1 (ko) 데이터 보유 충전 손실 센서
US9342401B2 (en) Selective in-situ retouching of data in nonvolatile memory
KR20210079555A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11630726B2 (en) Memory system and operating method thereof
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
KR20210101785A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US11693745B2 (en) Error-handling flows in memory devices based on bins
US11307942B2 (en) Memory system, memory controller and method for operating memory controller
CN105761754B (zh) 存储单元编程方法、存储器控制电路单元与存储装置
KR20210071314A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
US11500771B2 (en) Memory system, memory controller, and method of operating memory system
US9576649B2 (en) Charge loss compensation through augmentation of accumulated charge in a memory cell

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Withdrawal due to no request for examination