KR20090007298A - 임계 전압의 치밀한 분배가 가능한 비활성 메모리의 비 실시간 재 프로그래밍 방법 - Google Patents

임계 전압의 치밀한 분배가 가능한 비활성 메모리의 비 실시간 재 프로그래밍 방법 Download PDF

Info

Publication number
KR20090007298A
KR20090007298A KR1020087023383A KR20087023383A KR20090007298A KR 20090007298 A KR20090007298 A KR 20090007298A KR 1020087023383 A KR1020087023383 A KR 1020087023383A KR 20087023383 A KR20087023383 A KR 20087023383A KR 20090007298 A KR20090007298 A KR 20090007298A
Authority
KR
South Korea
Prior art keywords
reprogramming
programming
storage elements
page
word line
Prior art date
Application number
KR1020087023383A
Other languages
English (en)
Other versions
KR101075253B1 (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
Priority claimed from US11/425,790 external-priority patent/US7486561B2/en
Priority claimed from US11/425,794 external-priority patent/US7489549B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20090007298A publication Critical patent/KR20090007298A/ko
Application granted granted Critical
Publication of KR101075253B1 publication Critical patent/KR101075253B1/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/10Programming or data input 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
    • 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/5642Sensing 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/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
    • G11C16/08Address circuits; Decoders; Word-line control 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
    • 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/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

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

Abstract

한 세트의 비활성 저장 소자는 초기 프로그래밍이 실행되고, 그 후 더 높은 검증 레벨을 갖는 재 프로그래밍이 비 실시간으로 실행된다. 비 실시간은 콘트롤이 대기 모드로 들어갈 때 다른 읽기 또는 쓰기 태스크가 펜딩되어 있지 않을 때와 같은 것이다. 재 프로그래밍은 페이지를 한 번에 하나를 그 세트에 프로그램할 수 있는데, 다른 읽기 또는 쓰기가 펜딩되어 있을 때 페이지 경계에서 중지하고 콘트롤이 다시 이용가능할 때 다시 시작한다. 페이지 및/또는 세트가 재 프로그래밍을 완료했는지를 확인하기 위해서 상태 플래그가 제공된다. 다른 측면에서, 재 프로그래밍 동안 비선택 워드 라인에는 더 높은 패스 전압이 인가된다. 또 다른 측면에서, 디폴트 세트의 읽기 전압을 이용하여 에러 카운트가 결정되고, 댜른 세트의 읽기 전압은 카운트가 임계치를 초과하면 선택된다.

Description

임계 전압의 치밀한 분배가 가능한 비활성 메모리의 비 실시간 재 프로그래밍 방법{METHOD FOR NON-REAL TIME REPROGRAMMING OF NON-VOLATILE MEMORY TO ACHIEVE DISTRIBUTION OF THRESHOLD VOLTAGES}
본 발명은 비활성 메모리에 관한 것이다.
반도체 메모리는 다양한 전자 부품에서 그 사용이 증가하고 있다. 예를들어, 비활성 반도체 메모리는 셀룰러 폰, 디지털 카메라, PDA(personal digital assistants), 모바일 컴퓨팅 장치, 고정 컴퓨팅 장치 등에 사용된다. EEPROM(Electrically Erasable Programmable Read Only Memory)와 플래시 메모리는 가장 흔한 비활성 반도체 메모리이다. EEPROM은 물론, 플래시 메모리의 경우, 전체 메모리 어레이 또는 메모리 일부의 내용은 하나의 단계에서 지워질 수 있는데, 종래의 전 기능(full-featured) EEPROM과는 구별된다.
종래의 EEPROM과 플래시 메모리는 플로팅 게이트를 이용하는데, 플로팅 게이트는 반도체 기판의 채널 영역 위에 절연되어 위치한다. 플로팅 게이트는 소스 영역과 드레인 영역의 사이에 위치한다. 콘트롤 게이트는 플로팅 게이트 위에 절연되어 구비된다. 이렇게 구성된 트랜지스터의 임계 전압(threshold voltage)은 플로팅 게이트에 존재하는 전하량으로 제어된다. 즉, 소소와 드레인을 전기적으로 연결하 기 위해서 트랜지스터가 턴온되기 전에 콘트롤 게이트에 인가되어야 하는 최소 전압은 플로팅 게이트의 전하량 레벨로 제어된다.
몇몇 EEPROM과 플래시 메모리 장치는 2가지 범위의 전하량을 저장하기 위하여 플로팅 게이트를 사용하는 저장 소자를 갖고 있어서, 2가지 상태 즉 지워진 상태와 프로그램된 상태에서 프로그램되고/지워질 수 있다. 그러한 플래시 메모리 장치는 바이너리 플래시 메모리 장치로 불리기도 하는데, 그 이유는 각 저장 소자가 1 비트의 데이터를 저장할 수 있기 때문이다.
다중-상태(또는 다중-레벨) 플래시 메모리 장치는 다수의 구별되는 허용/유효한 프로그램 임계전압 범위를 확인함으로써 구현된다. 각각의 다른 임계 전압 범위는 메모리 장치에 인코딩된 데이터 비트의 세트에 대해 정해진 소정값에 대응한다. 예를들면, 저장 소자가 4개의 다른 임계전압 범위에 대응하는 4개의 다른 전하량 밴드 중 하나에 위치할 때, 각 저장 소자는 2 비트의 데이터를 저장할 수 있다.
보통, 프로그램 동작 중에 콘트롤 게이트에 인가된 프로그램 전압(Vpgm)이 시간에 따라 크기가 증가하는 일련의 펄스로 인가된다. 하나의 가능한 형태로, 펄스의 크기가 미리 정해진 단계 폭(step size), 예를들어 0.4V로 각각 연속적인 펄스로 증가된다. Vpgm 은 플래시 저장 소자의 콘트롤 게이트에 인가될 수 있다. 프로그램 펄스들의 사이에서 검증 작업이 실행된다. 즉, 병렬로 프로그램되는 한 세트의 저장 소자들 각각의 프로그래밍 레벨은 연속적인 프로그래밍 펄스들 사이에서 읽혀져, 그것이 저장 소자가 프로그램되는 검증 레벨과 같거나 큰 지를 결정하게 된다. 다중-상태 플래시 저장 소자의 어레이에서, 검증 단계는 저장 소자의 각 상태에 대해 실행되어 저장 소자가 그것의 데이터 관련 검증 레벨에 이르렀는지를 결정하게 된다. 예를들어, 4가지 상태로 데이터를 저장할 수 있는 다중-상태 조장 소자는 3개의 비교 포인트에 대해 검증 작업을 실행할 필요가 있을 수 있다.
NAND 플래시 메모리 장치와 같은 플래시 메모리 장치나 EEPROM을 프로그래밍할 때, 보통 프로그램 전압은 콘트롤 게이트에 인가되고 비트 라인은 접지되는데, 이는 전자가 저장 소자의 채널로부터 플로팅 게이트 내로 주입되게 한다. 전자가 플로팅 게이트에 축적되면 플로팅 게이트는 음으로 충전되고 저장 소자의 임계 전압은 올라가게 되어 저장 소자는 프로그램된 상태에 놓이게 된다. 이러한 프로그래밍에 대한 더 많은 정보는 미국특허 제6,859,397 "Source Side Self Boosting Technique For Non-Volatile Memory"와 미국특허 제6,917,542 "Detecting Over Programmed Memory"에 기재되어 있는데, 두 자료 전체는 참고자료로 원용한다.
그러나, 선택된 저장 소자를 프로그래밍할 때, 이웃 저장 소자들은 그들의 충전 상태를 변화시킬 수 있는데, 이는 미국특허 제5,867,429 "High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates"에 기재된 전계효과(field effect coupling) 때문이다. 미국특허 제5,867,429호는 여기에 참고자료로 원용한다. 일반적으로, 전계효과에서, 저장 소자의 임계 전압에 변동(shift)이 발생하는데, 이는 이웃 저장 소자에 저장된 전하량에 변화가 있기 때문이다. 예를들어, 특정 워드 라인 상의 저장 소자는 동일 워드 라인과 이웃 워드 라인들의 저장 소자로부터 용량성 커플링에 의 해 영향을 받을 수 있다. 커플링은 이웃 조장 소자로부터 가장 강하며, 커플링은 이전에 프로그램된 저장 소자의 임계 전압을 더 높게 변화시킨다. 한 세트의 저장 소자들의 임계 전압 분배도 마찬가지로 확장된다. 이는 특히 다중 레벨 저장 소자에 대해서 바람직하지 않은데, 그 이유는 다중 레벨 저장 소자에서는 더 치밀한 임계 전압 분배가 유리하기 때문이다.
본 발명은 용량성 커플링을 줄이는 방식으로 비활성 저장매체를 동작시키는 방법을 제공함으로써 위에서 제시한 문제를 처리하고 있다.
한 예에서, 비활성 저장매체의 동작은 워드 라인을 통해 비활성 저장 소자를 프로그램하는데 초기 프로그래밍에서 첫 번째 워드 라인에서 시작하여 다음 워드 라인으로 순차적으로 마지막 워드 라인까지 진행한다. 초기 프로그래밍이 완료된 후, 비활성 저장 소자는 워드 라인을 통해 재 재 프로그래밍된다. 초기 프로그래밍과 재 프로그래밍은 예를들어 비활성 저장 소자의 블록에 대해서 행해질 수 있다.
비활성 저장 소자는 초기 프로그래밍과 재 프로그래밍 각각에서 제1 및 제2 세트의 임계 전압(VTH)검증 레벨을 이용해서 프로그램될 수 있다. 여기서, 제2 세트의 VTH 전압 검증 레벨은 제1 세트의 VTH 전압 검증 레벨의 대응 레벨보다 높다. 이와같이, 저장 소자의 VTH 는 프로그래밍에서 증가하도록 변동된다. 더구나, 연산 부하를 제어하기 위해서, 재 프로그래밍은 콘트롤 회로에 의해서 배경 프로세서로 실행될 수 있는데, 만약 그렇지 않다면 그것은 대기 모드에 있을 수 있다. 게다가, 재 프로그래밍은 콘트롤 회로의 성능에 따라 하나 이상의 개시-연기-재시작 사이클로 시작되고, 일시적으로 연기되고, 이후에 다시 시작될 수 있다. 재 프로그래밍은 페이지마다 이루어질 수 있고, 그래서 재 프로그래밍은 페이지 데이터의 끝에서 연기되고 다음 페이지의 시작에서 다시 실행될 수 있다. 플래그 비트는 재 프로그래밍이 각 페이지에 대해서 실행되는지를 나타내는데 사용될 수 있는데, 이를 통해 각 페이지의 프로그램 상태를 트래킹(tracking)할 수 있게 된다. 플래그 비트는 블록 레벨에서 사용되어 블록 레벨 트래킹을 가능하게 할 수도 있다. 페이지 레벨의 플래그 비트도 블록 레벨 트래킹을 제공할 수 있다.
또한, 초기 프로그래밍에서보다 재 프로그래밍에서 더 높은 패스 전압(Vpass)이 미선택 워드 라인에 인가될 수 있다. 재 프로그래밍 중에 드레인 측 워드 라인 아래에 존재하는 저장 소자는 더 이상 지워지지 않기 때문에 전위를 증가시키는Vpass 의 더 많은 부분이 높은 임계 전압으로 프로그램되는 이러한 저장 소자에 대해서 반전 조건에 도달하는데 소비되어야 한다. 따라서, 증가된 Vpass 는 재 프로그래밍 중에 도움이 될 수 있다.
다른 예에서, 비활성 저장매체의 동작은 제1 VTH 읽기 레벨들을 이용해서 한 세트의 비활성 저장 소자의 제1 부분을 읽는 단계, 에러 정정 및/또는 검출 코드를 이용하는 것과 같이 읽는 단계로부터 에러 카운트를 측정하는 단계, 그리고 에러 카운트가 임계값을 초과하는 경우 제1 VTH 읽기 레벨과 다른 제2 VTH 읽기 레벨을 이용하여 비활성 저장 소자의 제1 부분을 다시 읽는 단계로 구성된다. 이와같이, 하나의 가정이 만들어질 수 있는데, 그것은 비활성 저장 소자의 제1 부분이 초기 프로그래밍에서만 처리된다는 것에 관한 것이고, 그 경우 제1 부분이 제1 VTH 읽기 레벨이 아닌 제2 VTH 읽기 레벨로 읽혀진다면 많은 에러가 검출될 것이다. 또는, 비활성 저장 소자의 제1 부분이 재 프로그래밍에서 다루어진다고 가정할 수 있는데, 이 경우 제1 부분이 제2 VTH 읽기 레벨이 아닌 제1 VTH 읽기 레벨로 읽혀진다면 많은 에러가 검출될 수 있다. 만약 가정이 정확하지 않다면, 비활성 저장 소자의 제1 부분은 다른 VTH 읽기 레벨로 다시 읽혀진다. 또한, 제1 부분을 읽을 때 올바르다고 확인된 VTH 읽기 레벨과 같은 것을 이용하여 비활성 저장 소자의 제2 부분이 초기 읽기 시도에서 읽혀질 수 있다. 비활성 저장 소자의 부분들은 각각의 데이터 페이지를 저장할 수 있고, 그래서 프로그래밍은 페이지마다 진행될 수 있으며, 또한 각 페이지에 대해서 정당한 VTH 읽기 레벨이 결정되고 사용된다.
또 다른 예에서, 비활성 저장 소자의 동작은 초기 프로그래밍에서 워드 라인을 통해 비활성 저장 소자를 프로그래밍하여 특정 워드 라인에 연관된 비활성 저장 소자를 프로그래밍할 때 제1 패스 전압이 적어도 하나의 다른 워드 라인에 인가되도록 하고, 그리고 초기 프로그래밍이 완료된 후에 워드 라인을 통해 비활성 저장 소자를 재 프로그래밍하여 위의 특정 워드 라인에 연관된 비활성 저장 소자를 재 프로그래밍할 때 제1 패스 전압과 다른 제2 패스 전압이 위의 적어도 하나의 다른 워드 라인에 인가되도록 하는 것을 포함한다. 예를들어, 제2 패스 전압은 위에서 언급된 이유로 제1 패스 전압보다 높을 수 있다.
비활성 저장 소자의 동작에 상응하는 방법과 그 시스템을 개시한다. 비활성 저장 시스템은 한 세트의 비활성 저장 소자들과, 한 세트의 비활성 저장 소자를 제어하는 하나 이상의 회로로 구성된다.
도1은 NAND 스트링의 평면도이다.
도2는 도1의 NAND 스트링에 대한 등가 회로도이다.
도3은 도1의 NAND 스트링에 대한 단면도이다.
도4는 3개의 NAND 스트링을 보여주는 회로도이다.
도5는 본 발명의 하나 이상의 실시예를 구현하는 데 사용될 수 있는 예시 플래시 메모리 시스템의 블록도이다.
도6은 메모리 어레이가 블록으로 조직화한 예를 도시하고 있다.
도7A는 지움 상태에서 프로그램 상태로 직접 프로그래밍한 다중 상태 장치에서 임계 전압 분배의 예시 세트를 도시하고 있다.
도7B는 재 프로그래밍한 후의 도7A의 임계 전압 분배의 세트를 도시하고 있다.
도8은 비활성 저장 매체를 프로그래밍하기 위한 일련의 프로그래밍 펄스를 도시하고 있다.
도9는 비활성 저장 소자의 선형 및 비선형 프로그래밍 레짐(regime)을 도시 하고 있다.
도10은 2개의 다른 데이터 페이지에 대한 데이터를 저장하는 다중 상태 저장 소자를 프로그래밍하는 2-패스 기술의 예를 도시하고 있다.
도11A-11C는 제1 단계에서 지움 상태에서 중간 상태로, 그리고 제2단계에서 지움 상태에서 제1 상태 "A", 그리고 중간 상태에서 제2 상태 "B" 또는 제3 상태 "C"로 하는 2-단계 프로그래밍을 갖는 다중 상태 장치에서 임계 전압 분배의 세트 예를 도시하고 있다.
도12는 초기 프로그래밍과 재 프로그래밍을 이용하여 비활성 저장 소자의 블록을 프로그래밍하기 위한 프로세스의 한 예를 보여주는 플로우챠트이다.
도13은 일련의 프로그래밍 펄스를 이용하여 비활성 저장매체를 프로그래밍하기 위한 프로세스의 한 예를 보여주는 플로우챠트이다.
도14A-F는 초기 프로그래밍과 재 프로그래밍을 위하여 다른 패스 전압을 사용하는 부스팅 기술(boosting techniques)을 도시하고 있다.
도15는 플래그를 이용하여 비활성 저장매체의 블록에서 데이터 페이지를 읽기 위한 프로세스의 한 예를 보여주는 플로우챠트이다.
도16은 에러 카운트를 이용하여 비활성 저장매체의 블록에서 데이터 페이지를 읽기 위한 프로세스의 한 예를 보여주는 플로우챠트이다.
본 발명을 구현하는데 적절한 비활성 메모리 시스템의 예는 NAND 플래시 메모리 구조를 사용하는데, 그 구조에서 다수의 트랜지스터가 NAND 스트링 내의 2개 셀렉트 게이트 사이에 직렬로 배열된다. 도1은 하나의 NAND 스트링을 보여주는 평면도이다. 도2는 도1의 등가 회로이다. 도1과 2에 도시된 NAND 스트링은 4개의 트랜지스터(100,102,104,106)를 포함하고, 제1 셀렉트 게이트(120)와 제2 셀렉트 게이트(122) 사이에 직렬로 샌드위치되어 있다. 셀렉트 게이트(120,122)는 NAND 스트링을 비트 라인 콘택(126)가 소스 라인 콘택(128)에 각각 연결된다. 셀렉트 게이트(120,122)는 콘트롤 게이트(120CG,122CG)에 각각 적절한 전압을 인가함으로써 제어된다. 트랜지스터(100,102,104,106) 각각은 콘트롤 게이트와 플로팅 게이트를 갖는다. 특히, 트랜지스터(100)는 콘트롤 게이트(100CG)와 플로팅 게이트(100FG)를 갖고, 트랜지스터(102)는 콘트롤 게이트(102CG)와 플로팅 게이트(102FG)를 갖고, 트랜지스터(104)는 콘트롤 게이트(104CG)와 플로팅 게이트(104FG)를 갖고, 그리고 트랜지스터(106)는 콘트롤 게이트(106CG)와 플로팅 게이트(106FG)를 갖는다. 콘트롤 게이트(100CG,102CG,104CG,106CG)는 워드 라인(WL3,WL2,WL1,WL0)에 각각 연결된다. 하나의 가능한 설계에서, 트랜지스터(100,102,104,106)은 각자 저장 소자이며, 또한 셀이나 저장 소자로 불린다. 다른 설계에서, 저장 소자는 다수의 트랜지스터를 가질 수 있고, 도1과 도2에 도시된 것들과 다를 수 있다. 셀렉트 게이트(120)는 드레인 셀렉트 라인(SGD)에 연결되고, 한편 셀렉트 게이트(122)는 소스 셀렉트 라인(SGS)에 연결된다.
도3은 위에서 설명한 NAND 스트링의 단면도이다. NAND 스트링의 트랜지스터들은 P-웰 영역(140)에 형성된다. 각 트랜지스터는 적층 게이트 구조를 갖는데, 적층 게이트 구조는 콘트롤 게이트(100CG,102CG,104CG,106CG)와 플로팅 게이 트(100FG,102FG,104FG,106FG)를 포함한다. 플로팅 게이트는 산화막이나 다른 절연막 위의 P-웰 표면에 형성된다. 콘트롤 게이트는 플로팅 게이트 위에 있는데, 콘트롤 게이트와 플로팅 게이트를 분리하는 삽입 폴리실리콘(inter-polysilicon) 절연막을 갖는다. 저장 소자의 콘트롤 게이트(100,102,104,106)는 워드 라인을 형성한다. N+ 도핑층(130,132,134,136,138)은 이웃 저장 소자 사이에 공유되고, 이로인해 저장 소자는 직렬로 다른 저장 소자와 연결되어 NAND 스트링을 형성한다. 이러한 N+ 도핑층은 각 저장 소자의 소소와 드레인을 형성한다. 예를들어, N+ 도핑층(130)은 트랜지스터(122)의 드레인 및 트랜지스터(106)의 소소로 기능하고, N+ 도핑층(132)은 트랜지스터(106)의 드레인 및 트랜지스터(104)의 소소로 기능하고, N+ 도핑층(134)은 트랜지스터(104)의 드레인 및 트랜지스터(102)의 소소로 기능하고, N+ 도핑층(136)은 트랜지스터(102)의 드레인 및 트랜지스터(100)의 소소로 기능하고, 그리고 N+ 도핑층(138)은 트랜지스터(100)의 드레인 및 트랜지스터(120)의 소소로 기능한다. N+ 도핑층(126)은 NAND 스트링의 비트 라인에 연결되고, N+ 도핑층(128)은 다중 NAND 스트링의 공통 소스 라인에 연결된다.
도1-3의 NAND 스트링에서 4개의 트랜지스터를 사용한 것은 단지 하나의 예를 제시한 것인데, 여기 개시한 기술에서 사용된 NAND 스트링은 4개 이하 또는 이상의 저장 소자를 가질 수 있다. 예를들어, 몇몇 NAND 스트링은 8개, 16개, 32개, 64개 또는 그 이상의 저장 소자를 포함한다.
본 발명은 예를들어 Fowler-Nordheim 터널링으로 프로그래밍되고 지워지는 장치에 사용될 수 있다. 본 발명은 또한 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물(ONO)로 구성된 절연체와 같은 3중 절연막을 사용하는 장치에도 응용될 수 있는데, 이는 플로팅 게이트 대신에 전하량을 저장한다. ONO로 구성된 3중 절연막은 저장 소자 채널 위에 전도 콘트롤 게이트와 반도체 기판 사이에 샌드위치된다. 본 발명은 플로팅 게이트 대신에 전하 저장 영역으로서 나노 크리스탈과 같은 전도 물질의 작은 영역(small islands)을 사용하는 장치에도 응용될 수 있다. 그러한 메모리 장치는 플로팅 게이트 기반의 NAND 플래시 장치와 유사한 방식으로 프로그래밍되고 지워질 수 있다.
도4는 3개의 NAND 스트링을 보여주는 회로도이다. NAND 구조를 이용하는 플래시 메모리 시스템의 일반적 구조는 여러 NAND 스트링을 포함할 것이다. 예를들어, 3개의 NAND 스트링(420,440,460)은 보다 많은 NAND 스트링을 갖는 메모리 어레이에서 볼 수 있다. 각 NAND 스트링은 2개의 셀렉트 트랜지스터와 4개의 저장 소자를 포함한다. 예를들어, NAND 스트링(420)은 셀렉트 트랜지스터(422,427)와 저장 소자(423-426)를 포함하고, NAND 스트링(440)은 셀렉트 트랜지스터(442,447)와 저장 소자(443-446)를 포함하고, NAND 스트링(460)은 셀렉트 트랜지스터(462,467)와 저장 소자(463-466)를 포함한다. 각 NAND 스트링은 자신의 셀렉트 트랜지스터(예를들어 셀렉트 트랜지스터 427,447또는 467)에 의해 소스 라인에 연결된다. 셀렉션 라인(SGS)은 소스 측 셀렉트 게이트를 제어하는데 이용된다. 여러 NAND 스트링(420,440 및 460)은 셀렉트 트랜지스터(422,442,462 등)에 의해 각각의 비트 라인(421,441 및 461)에 연결되고, 셀렉트 트랜지스터는 드레인 셀렉트 라인(SGD)으로 제어된다. 다른 실시예에서, 셀렉트 라인은 반드시 공통일 필요는 없다. 워드 라인(WL2)은 저장 소자(424,444 및 464)를 위해서 콘트롤 게이트에 연결된다. 워드 라인(WL1)은 저장 소자(425,445 및 465)를 위해서 콘트롤 게이트에 연결된다. 워드 라인(WL0)은 저장 소자(426,446 및 466)를 위해서 콘트롤 게이트에 연결된다. 볼 수 있듯이, 각 비트 라인과 각각의 NAND 스트링은 저장 소자 세트 또는 어레이의 칼럼(columns)으로 구성된다. 워드 라인(WL3,WL2,WL1 및 WL0)은 어레이나 세트의 로우(rows)로 구성된다. 각 워드 라인은 로우에서 각 저장 소자의 콘트롤 게이트와 접속한다. 예를들어, 워드 라인(WL2)는 저장 소자(424,444 및 464)를 위하여 콘트롤 게이트에 연결된다. 실제로, 하나의 워드 라인에는 수천 개의 저장 소자가 있을 수 있다.
각 저장 소자는 데이터를 저장할 수 있다. 예를들어, 한 비트의 디지털 데이터를 저장할 때, 저장 소자의 임계 전압(VTH)의 가능 범위는 로직 데이터 "1"과 "0"이 할당된 2개 범위로 나누어진다. NAND 타입의 플래시 메모리의 한 예에서, VTH 는 저장 소자가 지워진 후에 네거티브이고, 로직 "1"로 정의된다. 프로그래밍 동작 후의 VTH 는 포지티브이고, 로직 "0"으로 정의된다. VTH 가 네거티브이고 읽기가 시도되면, 저장 소자는 로직 "1"이 저장되고 있음을 나타내기 위해 턴온할 것이다. VTH 가 포지티브이고 읽기가 시도되면, 저장 소자는 턴온되지 않을 것인데, 이는 로직 "0"이 저장되어 있음을 나타낸다. 저장 소자는 다수 레벨의 정보를 저장할 수도 있는데, 예를들면 다중 비트의 디지털 데이터가 그것이다. 이 경우, VTH 값의 범위는 데이터의 레벨 수로 나누어진다. 예를들어, 4개 레벨의 정보가 저장되면, 데이터 값 "11","10","01" 및 "00"에 할당된 4개의 VTH 범위가 있게 될 것이다. NAND 타입 메모리의 한 예에서, 지움 동작 후의 VTH 값은 네거티브이고 "11"로 정의된다. 포지티브 VTH 값은 "10","01" 및 "00"의 상태를 위해 사용된다. 저장 소자에 프로그램된 데이터와 소자의 임계 전압 범위의 특정 관계는 저장 소자에 대해 채택된 데이터 인코딩 체계에 달려 있다. 예를들어, 본 발명은 미국특허 제6,222,762호와 미국특허공개 2004/0255090를 참고자료로 원용하는데, 이들은 다중 상태 플래시 저장 소자에 대한 다양한 데이터 인코딩 체계를 설명하고 있다.
NAND 타입 플래시 메모리와 그 동작의 관련 예는 미국특허 제5,386,422호, 5,522,580호, 5,570,315호, 5,774,397호, 6,046,935호, 6,456,528호 및 6,522,580호에 설명되어 있는데, 본 발명은 이들을 참고자료로 원용한다.
플래시 저장 소자를 프로그래밍할 때, 프로그래밍 전압은 저장 소자의 콘트롤 게이트에 인가되고, 그리고 저장 소자에 연관된 비트 라인은 접지되어 있다. 채널의 전자는 플로팅 게이트로 주입된다. 전자가 플로팅 게이트에 축적되면, 플로팅 게이트는 네거티브로 충전되고, 저장 소자의 VTH 는 상승한다. 프로그램 전압을 프로그래밍되는 저장 소자의 콘트롤 게이트에 인가하기 위해서, 프로그램 전압은 적절한 워드 라인에 인가된다. 위에서 설명한 바와같이, 워드 라인은 같은 워드 라인을 공유하는 다른 NAND 스트링 각각에 있는 하나의 저장 소자에도 연결된다. 예를들어, 도4의 저장 소자(424)를 프로그래밍할 때, 프로그램 전압은 저장 소자(444 및 464)의 콘트롤 게이트에도 인가될 것이다.
그러나, 저장 소자에 저장된 전하량의 변동이 일어날 수 있다. 이것은 특정 저장 소자와 그 특정 저장 소자와 어느 정도의 커플링을 다른 저장 소자, 예를들어 같은 워드 라인이나 비트 라인을 공유하는 저장 소자들을 프로그래밍하고 읽을 때 발생한다. 특히, 저장된 전하량 레벨에서 변동이 일어나는데, 이것은 저장 소자들 사이의 필드 커플링 때문이다. 집적회로 제조기술의 발달에 따라 저장 소자들 사이의 공간이 감소하면서 그 문제는 더 악화된다. 그 문제는 시간을 달리하여 프로그래밍되는 2개 그룹의 이웃하는 저장 소자들 사이에 가장 분명하게 발생한다. 한 그룹의 저장 소자는 한 세트의 데이터에 상응하는 한 레벨의 전하량을 추가하기 위해서 프로그래밍된다. 두 번째 그룹의 저장 소자들이 두 번째 세트의 데이터를 가지고 프로그래밍된 후, 첫 번째 그룹의 저장 소자들로부터 읽혀진 전하량 레벨은 프로그램된 것과 다르게 종종 나타나는데, 이는 첫 번째 그룹의 저장 소자들에 대한 두 번째 그룹의 저장 소자들 전하의 용량성 커플링 때문이다. 이와같이, 커플링 효과는 저장 소자들이 프로그래밍되는 순서에 달려 있으며, 그래서 프로그래밍 중에 워드 라인이 트래버스된다. NAND 스트링은 항상 그런 것은 아니지만 일반적으로 소스 측에서 드레인 측으로 프로그래밍되는데, 소스 측 워드 라인에서 시작하여 한번에 한 워드 라인씩 드레인 측 워드 라인까지 나아간다.
특정 저장 소자에서의 용량성 커플링 효과는 예를들어 같은 워드 라인 그리고 같은 NAND 스트링에서 다른 저장 소자들에 의해 야기된다. 예를들어, 저장 소자(444)는 첫 번째 그룹의 저장 소자들의 부분일 수 있는데, 그것은 워드 라 인(WL2)을 따라서 교호하는 다른 저장 소자들을 포함하며, 그것은 한 페이지의 데이터를 저장한다. 저장 소자(424 및 464)는 다른 페이지의 데이터를 저장하는 두 번째 그룹의 저장 소자들의 일부일 수 있다. 저장 소자(444) 이후 두 번째 그룹의 저장 소자들이 프로그래밍될 때, 저장 소자(444)에 대하여 용량성 커플링이 존재할 것이다. 그 커플링은 워드 라인 상에서 직접 이웃하는 저장 소자들로부터 가장 강하다. 여기서, 직접 이웃하는 저장 소자는 저장 소자(424 및 464)이다.
마찬가지로, 같은 NAND 스트링 상에 있는 저장 소자들이 저장 소자(444) 후에 프로그래밍된다면, 그것들의 프로그래밍에 의해 저장 소자(444)는 영향을 받을 수 있다. 저장 소자(444)의 경우, NAND 스트링 상에서 직접 이웃하는 저장 소자들, 즉 저장 소자(443 및/또는 445)로부터가 가장 강하다. 예를들어, NAND 스트링(440)의 저장 소자들이 446,445,444,443의 순서로 프로그래밍되면, 저장 소자(444)는 저장 소자(443)으로부터 커플링에 의한 영향을 받을 수 있다. 일반적으로, 저장 소자(444)에 대해서 대각선으로 배열된 저장 소자들, 즉 저장 소자들(423,463,425 및 465)는 저장 소자(444)에 대해 약 20%의 커플링을 제공하며, 반면 같은 워드 라인 또는 NAND 스트링 상에서 직접 이웃하는 저장 소자들(424와 464, 그리고 443과 445)는 약 80%의 커플링을 제공한다. 커플링은 몇몇 경우에서 저장 소자의 VTH 를 약 0.5V 만큼 변동시키기에 충분하며, 이는 읽기 에러를 유발하기에 충분하고 한 그룹의 저장 소자들의 VTH 분배를 확장시키기에도 충분하다.
도5는 플래시 메모리 시스템의 한 실시예에 대한 블록도인데, 이 시스템은 본 발명의 하나 이상의 실시예를 구현하는데 이용될 수 있다. 다른 시스템과 구현들도 이용될 수 있다. 저장 소자 어레이(502)는 칼럼 콘트롤 회로(504), 로우 콘트롤 회로(506), c-소스 콘트롤 회로(510) 그리고 p-웰 콘트롤 회로(508)에 의해 제어된다. 칼럼 콘트롤 회로(504)는 저장 소자 어레이(502)의 비트 라인에 연결되어, 저장 소자들에 저장된 데이터를 읽어내고, 비트 라인의 전위 레벨을 제어하여 프로그래밍 및 지움을 촉진하거나 제한한다. 로우 콘트롤 회로(506)는 워드 라인에 연결되어 워드 라인 중 하나를 선택하고, 읽기 전압을 인가하며, 칼럼 콘트롤 회로(504)로 제어되는 비트 라인 전위 레벨에 연동된 프로그램 전압을 인가하며, 그리고 지움 전압을 인가한다. c-소스 콘트롤 회로(510)는 저장 소자들에 연결된 공통 소스 라인(도7에서 "c-소스"로 표시)을 제어한다. p-웰 콘트롤 회로(508)은 p-웰 전압을 제어한다.
저장 소자에 저장된 데이터는 칼럼 콘트롤 회로(504)로 읽혀져서, 데이터 입출력 버퍼(512)를 통해 외부 I/O 라인으로 출력된다. 저장 소자에 저장될 프로그램 데이터는 외부 I/O 라인을 통해 데이터 입출력 버퍼(512)로 입력되고, 칼럼 콘트롤 회로(504)로 전송된다. 외부 I/O 라인은 콘트롤러(518)에 연결된다.
플래시 메모리 장치를 제어하는 명령 데이터는 콘트롤러(518)로 입력된다. 명령 데이터는 플래시 메모리에 어떤 동작이 요청되는지를 알린다. 입력 명령은 상태 머신(516)에 전달되는데, 상태 머신(516)은 콘트롤 회로(515)의 부분이다. 상태 머신(516)은 칼럼 콘트롤 회로(504), 로우 콘트롤 회로(506), c-소스 콘트롤 회로(510), p-웰 콘트롤 회로(508), 그리고 데이터 입출력 버퍼(512)를 제어한다. 상 태 머신(516)은 READY/BUSY 또는 PASS/FAIL 과 같은 플래시 메모리의 상태 데이터를 출력할 수도 있다.
콘트롤러(518)는 퍼스널 컴퓨터, 디지털 카메라, PDA 등과 같은 호스트 시스템에 연결되거나 연결될 수 있다. 그것은 호스트와 통신하여 명령, 예를들어 메모리 어레이(502)로/부터 데이터를 저장/읽기 위한 명령을 초기화하고, 그리고 그러한 데이터를 제공하거나 수신한다. 콘트롤러(518)는 그러한 명령을 명령 신호로 변환하는데, 명령 신호는 콘트롤 회로(515)의 일부인 명령 회로(514)에 의해 해석되고 실행될 수 있다. 명령 회로(514)는 상태 머신(516)과 통신한다. 콘트롤러(518)는 보통 버퍼 메모리를 포함하는데, 이는 사용자 데이터가 저장 소자 어레이(502)로/부터 쓰여지거나 읽혀지도록 한다.
한 예시의 메모리 시스템은 하나의 집적 회로를 갖는데, 이는 콘트롤러(518), 그리고 각각 메모리 어레이와 관련 제어, 입출력 및 상태 머신 회로를 갖는 하나 이상의 집적 회로 칩을 포함한다. 메모리 어레이와 시스템 콘트롤러 회로를 하나 이상의 집적 회로 칩에 함께 집적하는 경향이 있다. 메모리 시스템은 호스트 시스템의 일부로 내장될 수 있고, 분리 가능하게 호스트 시스템에 삽입되는 메모리 카드나 다른 패키지에 포함될 수 있다. 그러한 카드는 예를들어 콘트롤러, 또는 단지 주변 회로에 연관되는 메모리 어레이를 포함하는 전체 메모리 시스템을, 호스트에 내장되는 콘트롤러 또는 콘트롤 기능과 함께 포함할 수 있다. 이와같이, 콘트롤러는 호스트에 내장될 수 있고, 또는 제거 가능한 메모리 시스템에 포함될 수 있다.
몇몇 구현 예에서, 도5의 몇몇 구성요소들은 결합될 수 있다. 또한, 다른 설계에서, 도5의 하나 이상의 구성요소들은, 저장 소자 어레이(502)와 달리, 제어 회로(managing curcuit)로 여겨질 수 있다. 예를들어, 하나 이상의 제어 회로는 콘트롤 회로, 명령 회로, 상태 머신, 로우 콘트롤 회로, 칼럼 콘트롤 회로, 웰 콘트롤 회로, 소스 콘트롤 회로 및 데이터 I/O 회로의 어떤 하나 또는 결합을 포함할 수 있다.
도6은 도5의 저장 소자 어레이(502)의 예시 구조를 보여주고 있다. NAND 플래시 EEPROM은 1,024 블록으로 분할되는 것으로 설명된다. 데이터는 다른 블록에 프로그램될 수 있고 동시에 다른 블록으로부터 읽혀질 수 있다. 지움 동작에서, 각 블록에 저장된 데이터는 동시에 지워진다. 한 설계에서, 블록은 동시에 지워지는 최소 단위의 저장 소자들이다. 이 예의 각 블록에는 짝수 칼럼과 홀수 칼럼으로 나누어지는 8,512 칼럼이 있다. 비트 라인도 짝수 비트 라인(BLe)과 홀수 비트 라인(BLo)로 나누어진다. 4개의 저장 소자가 직렬로 연결되어 하나의 NAND 스트링을 구성하는 것으로 도시되어 있다. 4개의 저장 소자가 각 NAND 스트링에 포함되는 것으로 도시되어 있지만, 4개 이상 또는 4개 이하의 저장 소자들이 사용될 수 있다. 보통, 각 NAND 스트링에는 32개 또는 64개 까지의 저장 소자들이 구비될 수 있다. NAND 스트링의 한 단자는 셀렉트 트랜지스터(SGD)를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 셀렉트 트랜지스터(SGS)를 통해 c-소스 라인에 연결된다.
한 배열의 읽기 및 프로그래밍 동작 중에 4,256 저장 소자가 동시에 선택된다. 선택된 저장 소자들은 같은 워드 라인과 같은 비트 라인(예를들어 짝수 또는 홀수)를 갖는다. 그러므로, 하나의 로직 페이지를 구성하는 532 바이트의 데이터는동시에 읽혀지거나 프로그래밍될 수 있고, 한 블록의 메모리는 적어도 8개의 로직 페이지(4개 워드 라인, 각각 짝수 및 홀수 페이지를 가짐) 를 저장할 수 있다. 다중 상태 저장 소자들의 경우, 각 저장 소자는 2비트의 데이터를 저장하는데, 여기서 각 비트는 다른 페이지에 저장되고, 한 볼록은 16개의 로직 페이지를 저장한다. 다른 크기의 블록과 페이지도 사용될 수 있다. 또한, 도5와 다른 구조도 사용될 수 있다. 예를들어, 한 설계에서, 비트 라인은 짝수 및 홀수 비트 라인으로 나누지 않아 모든 비트 라인이 동시에(또는 동시가 아니게) 프로그래밍되고 읽혀질 수 있다.
저장 소자들은 p-웰을 지움 전압(예를들어 20V)로 높이고 선택된 블록의 워드 라인을 접지시킴으로써 지워질 수 있다. 소스 및 비트 라인은 플로팅이다. 지움은 전체 메모리 어레이, 부분 블록, 또는 메모리 장치의 일부인 다른 유닛의 저장 소자들에 대해 실행될 수 있다. 전자는 저장 소자의 플로팅 게이트에서 p-웰 영역으로 이동하여, 저장 소자의 VTH 가 네거티브가 된다.
읽기 및 검증 동작에서, 셀렉트 게이트(SGD 및 SGS)는 2.5 내지 4.5V 범위의 전압에 연결되고, 선택되지 않은 워드 라인(예를들어, WL2가 선택된 워드 라인일 때 WL0,WL1 및 WL3)은 읽기 패스 전압(보통 4.5 내지 6V 범위의 전압)까지 상승되어 트랜지스터들을 패스 게이트로 동작하게 한다. 선택된 워드 라인(WL2)은 각 읽기 및 검증 동작에 특정된 레벨인 하나의 전압에 연결되어 관련 저장 소자의 VTH 가 그러한 레벨보다 높은지 또는 낮은지를 결정한다. 예를들어, 2 레벨 저장 소자에 대한 읽기 동작에서, 선택된 워드 라인(WL2)은 접지되고, VTH 가 0V보다 높은지가 측정된다. 2 레벨 검증 동작에서, 선택된 워드 라인(WL2)은 예를들어 0.8V에 연결되고, VTH 가 적어도 0.8V에 도달했는지가 검증된다. 소스 및 p-웰은 0V이다. 짝수 비트 라인(BLe)으로 가정되는 선택된 비트 라인은 예를들어 0.7V의 레벨로 미리 충전된다. VTH 가 워드 라인 상의 읽기 및 검증 레벨보다 높으면, 관련 저장 소자에 연관된 비트 라인(BLe)의 전위 레벨은 비전도 저장 소자 때문에 하이 레벨을 유지한다. 한편, VTH 가 읽기 및 검증 레벨보다 낮으면, 관련 비트 라인(BLe)의 전위 레벨은 예를들어 0.5V보다 낮은 로우 레벨로 떨어진다. 이는 전도 저장 소자가 비트 라인을 방전하기 때문이다. 이렇게 해서, 비트 라인에 연결되는 전압 비교기 센스 증폭기에 의해 저장 소자의 상태가 검출된다.
위에 설명된 지움, 읽기 및 검증 동작은 이 분야의 알려진 기술에 따라 실행될 수 있다. 따라서, 설명한 세부 내용의 많은 부분은 당업자가 변경할 수 있다. 이 분야의 다른 지움, 읽기 및 검증 기술도 이용될 수 있다.
위에서 설명한 바와같이, 각 블록은 다수의 페이지로 분할될 수 있다. 한 예로, 페이지는 프로그래밍의 단위이다. 몇몇의 구현에서, 각 페이지는 세그먼트로 분할될 수 있고, 그 세그먼트는 기본적인 프로그래밍 동작으로 한번에 쓰여지는 최소수의 저장 소자들을 포함한다. 하나 또는 그 이상의 데이터 페이지는 보통 한 로우의 저장 소자들에 저장된다. 한 페이지는 하나 또는 그 이상의 섹터를 저장한다. 섹터는 사용자 데이터 및 오버헤드 데이터, 즉 섹터의 사용자 데이터로부터 계 산되는 에러정정코드(ECC : Error Correcting Code)와 같은 것을 포함한다. 콘트롤러의 일부는 데이터가 어레이로 프로그래밍될 때 ECC를 계산하고, 또한 데이터가 어레이로부터 읽혀질 때 ECC를 이용하여 그 데이터를 체크한다. 대안적으로, ECC 및/또는 다른 오버헤드 데이터는 그들이 관계하는 사용자 데이터와 다르게 페이지 또는 심지어 블록에 저장된다. 다른 설계에서, 상태 머신과 같은 메모리 장치의 다른 부분들이 ECC를 계산할 수 있다.
사용자 데이터의 섹터는 보통 512 바이트인데, 이는 마그네틱 디스크 장치의 섹터 사이즈에 대응한다. 오버헤드 데이터는 보통 추가적인 16-20 바이트이다. 블록은 예를들어 8, 32, 64 또는 그 이상의 다수의 페이지를 포함할 수 있다.
재 프로그래밍
프로그래밍 기술이 제공되는데, 여기서 한 세트의 저장 소자들이 초기 프로그래밍되고, 이어서 적어도 한번 재 프로그래밍된다. 예를들어, 그 세트는 하나의 유닛으로 지워질 수 있는 한 블록의 저장 소자들일 수 있다. 또는, 그 세트는 반드시 하나의 유닛으로 지워야 하는 것은 아닌 한 세트의 워드 라인에 관련될 수 있다. 초기 프로그래밍에서, 저장 소자들 세트가 프로그래밍된다. 또한, 저장 소자들은 초기 프로그래밍과 재 프로그래밍에서 다른 VTH 레벨로 프로그래밍될 수 있다. 어떤 프로그래밍 기술도 초기 프로그래밍과 재 프로그래밍 과정에 이용될 수 있고, 그러한 프로그래밍 기술에는 도7A 및 B, 도10, 그리고 도11A-C와 관련하여 아래에 설명하는 것들이 포함된다. 저장 소자 세트가 초기 프로그래밍에서 프로그래밍된 후, 재 프로그래밍이 이루어지는데, 여기서 세트의 소자들은 예를들어 원하는 최종 VTH 까지 프로그래밍된다. 저장 소자들은 초기 프로그래밍과 재 프로그래밍 사이에서는 지워지지 않는다.
저장 소자로부터 데이터를 읽을 때, 하나의 방법으로, 초기 프로그래밍에서 단지 한 번만 프로그래밍된 저장 소자에 대해 제1 세트의 VTH 읽기 레벨이 사용될 수 있다. 한편, 제2 세트의 VTH 읽기 레벨은 재 프로그래밍된 저장 소자들에 대해 사용될 수 있다. 제2 세트의 대응 값은 제1 세트보다 높을 수 있다. 대안적으로, 각 경우에, 같은 세트의 VTH 읽기 레벨이 사용될 수 있다. 또한, 2개의 이웃하는 VTH 상태 사이의 전압 마진은 커플링, 프로그래밍 노이즈, 그리고 장시간 전하 유지와 같은 많은 기생 현상을 감당할 수 있을 정도로 커야 한다. 다른 기생 현상으로 데이터 패턴 민감 효과가 있는데, 이는 특정 데이터 값, 예를들어 이미 프로그래밍된 저장 소자의 VTH 값의 영향에 관계한다. 재 프로그래밍은 이웃하는 VTH 상태 사이의 줄어든 마진을 허용하는데, 이는 적어도 커플링과 오버슈트가 감소될 것이기 때문이고, 그리고 아직 재 프로그래밍되지 않은 페이지는 곧 재 프로그래밍될 것인데 그 결과 어떤 추가 마진도 프로그래밍되지 않은 페이지를 장시간 유지 문제에 매몰되어서는 안된다. 또한, 재 프로그래밍된 페이지는 보다 치밀한 VTH 분배를 제공하는데, 이는 그러한 페이지에 대한 마진에 여유를 갖게 한다(open up). 최종 효과는 메모리 VTH 윈도우가 감소될 수 있고, 이러함으로써 프로그래밍 전압을 작게 하고 프로그램 방해를 줄인다.
도7A는 지움 상태에서 프로그램 상태로 직접 프로그래밍하는 다중 상태 장치의 VTH 분배 세트의 예를 도시하고 있다. 이 경우, 각 저장 소자는 E,A,B 및 C로 표현된 4개 데이터 상태로 2 비트의 데이터를 저장한다. E는 지워진 저장 소자에 대한 제1 VTH 분배를 나타내고, 반면 A,B 및 C는 프로그램된 저장 소자에 대한 3개의 VTH 분배를 나타낸다. 한 설계에서, E분배의 VTH 값은 네거티브이고, A,B 및 C분배의 VTH 값은 포지티브이다. 각각 다른 VTH 범위는 그 세트의 데이터 비트에 대하여 미리 정한 특정값에 대응한다. 저장 소자에 프로그램된 데이터와 저장 소자의 VTH 레벨 사이의 특별한 관계는 저장 소자에 대해 채택한 데이터 인코딩 체계에 달려 있다. 하나의 예는 "11"을 VTH 범위 E(상태 E), "10"을 VTH 범위 A(상태 A),"00"을 VTH 범위 B(상태 B),그리고 "10"을 VTH 범위 C(상태 C)로 할당한다. 그러나, 다른 설계에서 다른 체계가 사용된다.
3개의 읽기 기준 전압으로 된 세트, 즉 Vra1, Vrb1 그리고 Vrc1이 초기 프로그래밍 후에 저장 소자로부터 데이터를 읽기 위해 사용된다. 특정 저장 소자의 VTH 가 Vra1, Vrb1 그리고 Vrc1 이상인 지를 테스트함으로써, 시스템은 저장 소자의 상태를 확인할 수 있다. 3개의 검증 기준 임계 전압으로 된 세트, 즉 Vva1, Vvb1 그리고 Vvc1은 초기 프로그래밍 중에 사용되고, 또한 표시된다. 상태 A,B 또는 C로 저장 소자를 프로그래밍할 때, 시스템은 저장 소자가 Vva1, Vvb1 또는 Vvc1 각각보 다 크거나 같은 VTH 를 가지고 있는지를 테스트할 것이다.
전체 시퀀스 프로그래밍으로 알려진 한 예에서, 저장 소자는 지움 상태 E로부터 직접 프로그램된 상태 A,B 또는 C의 어떤 것으로 프로그래밍될 수 있는데, 이는 곡선 화살표로 도시되어 있다. 예를들어, 블록과 같은 일정 집단의 저장 소자들은 먼저 지워져서 그 집단 내의 모든 저장 소자들이 지움 상태 E에 있게 된다. 몇몇 저장 소자들이 상태 E에서 상태 A로 프로그래밍되는 동안, 다른 저장 소자들은 상태 E에서 상태 B, 및/또는 상태 E에서 상태 C로 프로그래밍된다.
언급한 대로, 커플링과 다른 효과들은 특정 저장 소자의 VTH 를 상승시키는 경향이 있고, 이것은 예를들어 블록 내의 한 세트의 저장 소자들의 VTH 분배를 상승시키고 확장시킨다. 이것은 도7B와 비교하여 도7A의 상대적으로 넓은 VTH 분배를 통해 알 수 있다.
도7B는 재 프로그래밍 후에 도7A의 VTH 분배 세트의 예를 도시하고 있다. 재 프로그래밍 중에, 제2 세트의 VTH 검증 레벨, 즉 Vva2, Vvb2 그리고 Vvc2는 Vva1, Vvb1 그리고 Vvc1 각각보다 예를들어 0.4V 차이로 점점 더 높게 사용될 수 있다. 초기 프로그래밍과 재 프로그래밍 사이의 각 상태의 검증 전압에서의 오프셋은 메모리 특성화(characterization)로 결정될 수 있다. 예를들어, 오프셋은 각 상태의 임계 전압 분배의 약 절반일 수 있다. 그러므로, 상태 "A"의 임계 전압 분배가 보통 0.8V 폭이면, O.4V 오프셋이 사용될 수 있다. 따라서, Vva1이 0.6V이면, Vva2는 1.0V일 수 있다. 검증 레벨 사이의 증분은 각 상태에 대해 같을 필요는 없다. 재 프로그래밍 후, 각 상태에 대해 VTH 분배의 낮은 끝이 점점 더 높아지는 임계 전압 검증 레벨에 따라 위로 이동되고, 그래서 VTH 분배는 치밀해진다. 이와같이, 한 세트의 저장 소자들은 초기에 프로그램될 수 있고, 그리고 초기 프로그래밍이 완료된 후에 그 세트의 저장 소자들은 도7B의 치밀한 VTH 분배를 얻기 위하여 재 프로그램될 수 있다.
특히, 재 프로그래밍은 커플링이 야기하는 각 상태의 VTH 값 확산을 줄이는데, 이는 초기 프로그래밍 중에 추가되는 양과 비교하여 더 적은 양의 전하가 저장 소자에 가해지기 때문이다. 게다가, 만약 커플링 때문에 저장 소자의 VTH 가 저장 소자가 원래 프로그램되어 있어서 초기 프로그램 중에 폐쇄되어 있을 때보다 지금 더 높다면, 저장 소자는 폐쇄되기 전에 재 프로그래밍 중에 더 적게 프로그래밍하는 것을 필요로 할 것이다. 또한, 특정 저장 소자의 이웃들은 재 프로그래밍 중에 그들의 VTH 값에서 커플링이 야기하는 상당한 정도의 변동을 겪지는 않을 것이다. 그 결과, 저장 소자는 재 프로그래밍에서 원하는 최종 VTH 로 보다 정확하게 프로그래밍될 수 있다. 재 프로그래밍은 그것이 워드 라인 사이의 커플링이든, 비트 라인 사이의 커플링이든, 또는 대각선 방향의 이웃하는 저장 소자들 사이의 커플링이든 모든 종류의 커플링 효과를 완화시킨다. 더구나, 저장 소자가 프로그래밍 동작의 불일치 또는 최종 검증 동작에 연관된 노이즈로 인해 과 프로그래밍된다면, 원하는 최종 상태에 도달하기 위해서는 재 프로그래밍 중에 더 적은 수의 프로그래밍 펄스를 필요로 할 것이다. 재 프로그래밍은 프로그래밍되는 각 저장 소자에 적은 양의 전하를 위치시키기만 할 것이다. 재 프로그래밍 중의 VTH 변화가 적기 때문에, 폐쇄 조차 보통 더 일찍 발생하며, 초기 프로그래밍 중 보다 더 낮은 콘트롤 게이트 프로그램 펄스에서 발생한다. 재 프로그래밍의 이점은 도8과 9를 통해 더 이해할 수 있다.
도8은 비활성 저장매체를 프로그래밍하기 위한 일련의 프로그래밍을 도시하고 있다. 보통의 프로그래밍에서, 프로그래밍 전압(Vpgm)은 일련의 펄스로 저장 소자의 콘트롤 게이트에 인가된다. 한 예로서, 펄스의 크기는 각 연속 펄스에서 소정의 단계 폭, 예를들어 0.4V로 증가된다. Vpgm는 플래시 메모리 소자의 콘트롤 게이트(또는 몇몇 경우에는 스티어링 게이트)에 인가된다. Vpgm는 시간에 따라 일정 크리로 증가하는 일련의 펄스로 제공된다. 프로그램 펄스 사이에는, 검증 동작이 실행된다. 즉, 워드 라인 상의 특정 저장 소자와 같이 병렬로 프로그래밍되는 한 세트의 각 저장 소자의 프로그래밍 레벨은 그것이 저장 소자가 프로그래밍되는 검증 레벨과 같거나 더 큰 지를 결정하기 연속 프로그래밍 펄스 사이에서 읽혀진다. 다중 상태 플래시 메모리 소자의 어레이의 경우, 검증 단계는 저장 소자가 그것의 데이터-관련 검증 레벨에 도달했지는지를 결정하기 위하여 저장 소자의 각 상태에 대해 수행된다. 예를들어, 4개 상태의 데이터를 저장할 수 있는 다중 상태 메모리 소자는 3개의 비교 포인트에 대해 검증 동작을 실행할 필요가 있을 수 있다.
저장 소자는 기존에 정해진 소정 수의 펄스 이후에 원하는 프로그램 레벨에 도달하지 못하면, 에러 상태가 선언된다. 초기 값을 포함해서 Vpgm 크기의 선택은 에러 상태를 선언하기 전에 인가하는 펄스의 최대 수와 적용가능하다면 전압 단계 폭은 여러 팩터들 사이에서 조정을 포함한다. 특히, 초기 값이나 단계 폭이 너무 크다면, 몇몇 메모리 저장 소자는 과 프로그래밍될 수 있고, 그 결과 부정확한 VTH 로 이어지면, 한편 초기값이나 단계 폭이 더 작다면 더 긴 프로그래밍 시간으로 이어질 것이다. 보통, 비활성 메모리의 사용자들은 메모리가 빨리 프로그래밍하는 것을 원한다. 게다가, 다른 메모리 저장 소자를 원하는 상태로 프로그래밍하는데 필요한 펄스의 수도 다를 수 있다. 더 느린 메모리 소자는 보다 많은 펄스를 필요로 할 것이고, 한편 빠른 메모리 소자는 더 적은 수의 펄스를 필요로 할 것이다. 합격 수율(die-sort yield)이 허용할 만한 충분한 마진이나 쿠션을 갖기 위해서, 비교적 큰 수의 Vpgm 펄스가 보통 허용된다. 예를들어, 90nm 장치에서, 다중 상태의 메모리 소자 장치에서 가장 상부 페이지가 18개 펄스 내에서 프로그래밍될 수 있지만, 펄스의 최대 허용 수는 예를들어 24에서 정해지는데, 이는 6개 펄스의 마진을 제공한다.
예를들어, 초기 프로그래밍에서, 특정 저장 소자가 검증 레벨에 도달하여 16번째 프로그램 펄스에서 그 이상의 Vpgm 펄스를 수신하는 것이 폐쇄되는 것을 가정해 보자. 각 Vpgm 펄스를 갖는 저장 소자의 임계 전압(△VTH)의 변화는 도9에서 이해될 수 있는데, 도9는 평균 비활성 저장 소자의 선형 및 비선형 프로그래밍 레짐 을 도시하고 있다. 초기 Vpgm 펄스들 중에, 저장 소자는 비선형 레짐에 있는데, 여기서 VTH 의 증가는 그 수의 프로그래밍 펄스에 대해서 비선형이다. 특히, 콘트롤 게이트에 인가되는 전압은 터널링을 야기할 만큼 충분하지 않다. 추가 Vpgm 펄스가 인가되면서, △VTH 는 그것이 선형 프로그래밍 레짐에 도달할 때까지 천천히 증가하고, 여기 선형 프로그래밍 레짐에서 △VTH 는 이후의 Vpgm 펄스들과 거의 일정하다. 이 레짐에서, 이론적으로 Vpgm의 1V 증가는 VTH 의 1V 증가로 이어진다. 프로그래밍 노이즈와 읽기 노이즈는 VTH 증가량에서 불규칙한 경향을 보인다. 또한, 공핍 효과(depletion effects)는 선형 레짐의 △VTH 를 Vpgm의 1V증가당 1V보다 적은 값으로 감소시키는 경향이 있다. 예를들어, 선형 레짐에서, △VTH /△Vpgm 은 0.8에 가까울 수 있다. 그럼에도 불구하고, 일단 선형 레짐에서는, 저장 소자는 초기 프로그래밍 중에 각 추가 Vpgm 펄스를 갖는 폐쇄 VTH (검증 레벨)에 빨리 도달한다. 보다 빠른 프로그래밍 저장 소자는 더 느린 저장 소자보다 더 빨리 선형 레짐에 도달할 것이다. 초기 Vpgm의 값에 의존해서, 몇몇 대단히 빠른 저장 소자는 속도가 떠어져 선형 레짐에 도달할 때까지 처음의 몇몇 Vpgm 펄스들에 대해 훨씬 빠른 속도로 프로그래밍할 수 있다. 초기 Vpgm은 이것을 피할만큼 충분히 낮게 설정되는 것이 바람직하다.
재 프로그래밍 중에, 저장 소자의 VTH 는 비교적 적은 값, 예를들어 0.4V로 증가할 필요가 있다. 보통, 저장 소자는 재 프로그래밍 중에 비선형 레짐에 있을 것이다. 대부분의 경우, 초기 프로그래밍에서 보다 재 프로그래밍에서 더 높은 폐쇄 VTH 에 도달하는데 하나 또는 그 이상의 보다 적은 수의 프로그래밍 펄스가 필요할 것으로 예상된다. 주어진 예에서, 저장 소자는 재 프로그래밍 중에 15번째 Vpgm 펄스에서 폐쇄 VTH 에 도달하는데, 이는 초기 프로그래밍에서보다 한 펄스 빠르다.
예를들어, 이 예에서, 초기 프로그래밍과 재 프로그래밍에서 각각 테이블 1과 2에 표시한 Vpgm으로 VTH 가 변한다고 가정하자. 저장 소자는 재 프로그래밍을 위해 -2V의 VTH 를 갖는 상태 E로부터 1.1V의 폐쇄 VTH (Vva1, 도7A)를 갖는 상태 A로 프로그래밍될 것이다. 이 예에서 간단히 하기 위해서, Vpgm의 단계 폭은 0.1V이다. 보는 바와같이, 저장 소자는 초기 프로그래미에서 16번째 펄스에서 폐쇄되고, 이 때 그것의 VTH 는 처음으로 1.1V를 초과한다. 저장 소자는 재 프로그래밍에서 15번째 펄스에서 폐쇄되는데, 이 때 그것의 VTH 는 처음으로 1.3V를 넘어서게 된다.
테이블 1
Vpgm 펄스 # 펄스 VTH (V) △VTH (V), 펄스 대
1-12 -2 0
13 -1.5 0.5
14 -0.75 0.75
15 0.25 1.0
16 1.25 1.0
테이블 2
Vpgm 펄스 # 펄스 VTH (V) △VTH (V), 펄스 대
1-14 1.25 0
15 1.35 0.1
이와같이, 재 프로그래밍 중에 비 선형 레짐에서 동작하면서, 그 효과는 더 적은 Vpgm 단계 폭을 사용하는 것과 유사한데, 이는 VTH 가 초기 프로그래밍에서보다 더 적은 단계로 원하는 값까지 다가가기 때문이다. 이는 오버슈트를 피하고 더 섬세한 VTH 의 제어가 가능하다. 그 결과, 보다 치밀하고 보다 정확한 VTH 분배가 얻어질 수 있다.
사용될 수 있는 프로그래밍 기술의 추가적 예는 도10과 도11A-C에서 설명된다.
도10은 2개의 다른 데이터 페이지, 즉 하부 페이지와 상부 페이징에 대해 데이터를 저장하는 다중 상태 저장 소자를 프로그래밍하는 2-패스 기술의 예이다. 4개 상태, 즉 상태 E(11), 상태 A(10), 상태 B(00), 그리고 상태 C(01)가 도시되어 있다. 상태 E에 대해, 양 페이지는 "1"를 저장한다. 상태 A에 대해, 하부 페이지는 "0"을 저장하고, 상부 페이지는 "1"를 저장한다. 상태 B에 대해, 양 페이지는 "0"을 저장한다. 상태 C에 대해, 하부 페이지는 "1"을 저장하고, 상부 페이지는 "0"을 저장한다. 특정 비트 패턴이 각 상태에 할당되어 있지만, 다른 비트 패턴이 할당될 수도 있다. 처음 프로그래밍 패스에서, 저장 소자의 VTH 레벨은 낮은 로직 페이지로 프로그래밍되는 비트에 따라 설정된다. 그 비트가 로직 "1"이면, VTH 는 변하지 않은데, 이는 이미 지워진 결과로서의 적절한 상태에 있기 때문이다. 그러나, 프로그래밍되는 비트가 로직 "0"이면, 저장 소자의 임계 레벨은 화살표 1110으로 표시한 바와같이 상태 A로 증가된다.
두 번째 패스에서, 저장 소자의 VTH 레벨은 상부 로직 페이지로 프로그래밍되는 비트에 따라 설정된다. 상부 로직 페이지 비트가 로직 "1"을 저장하는 것이라면, 프로그래밍은 일어나지 않는다. 이는 저장 소자가 상태 E 또는 A에 있기 때문인데, 여기서 각 상태는 하부 페이지 비트의 프로그래밍에 의존하고 "1"의 상부 페이지 비트를 캐리한다(carry). 상부 페이지 비트는 로직 "0"으로 되면, VTH 는 변동된다. 저장 소자에서 결과된 첫 번째 단계가 지워진 상태 E로 남아 있다면, 두 번째 단계에서 저장 소자는 화살표 1130으로 표시한 바와같이 상태 C 내에 있기 위애 VTH 가 증가되도록 저장 소자는 프로그래밍된다. 저자 소자가 첫 번째 프로그래밍 패스의 결과로 상태 A로 프로그래밍되면, 화살표 1120으로 표시한 바와같이 VTH 가 상태 B 내에 있도록 저장 소자가 증가되기 위해서 저장 소자는 더 프로그래밍된다. 두 번째 패스의 결과는 하부 페이지에 대한 데이터를 변화시키지 않으면서 상부 페이지에 대해 로직 "0"을 저장하도록 지정된 상태로 저장 소자를 프로그래밍하는 것이다.
한 예에서, 충분한 데이터가 전체 페이지를 채우도록 쓰여진다면 전체 시퀀스 쓰기를 수행하도록 시스템이 셋업될 수 있다. 하나의 전체 페이지에 대해 충분하지 않은 데이터가 쓰여진다면, 프로그래밍 프로세스는 수신된 데이터를 가지고 하부 페이지를 프로그래밍할 수 있다. 이후의 데이터가 수신되면, 시스템은 하부 페이지를 프로그래밍하는 모드에서 쓰기를 시작할 수 있고, 워드 라인의 저장 소자 의 모두 또는 대부분을 채우기 위해 충분한 데이터가 이후 수신된다면 전체 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 접근의 상세한 내용은 2004년 12월 14일에 발명자 Sergy A. Gorobets와 Yan Li에 의해 출원된 미국특허출원 11/013,125 "Pipelined Programming of Non-Volatile Momories Using Early Data"에 개시되어 있는데, 본 발명은 이를 참고자료로 원용한다.
일단 초기 프로그래밍이 완료되면, 도10의 비교적 넓은 VTH 분배는 도7A의 그것과 유사하다. 그 결과, 재 프로그래밍은 수행될 수 있고, 이것에 의해 도10의 비교적 넓은 VTH 분배를 도7B의 그것과 유사하게 치밀화시킬 수 있다.
도11A-C는 비활성 메모리를 프로그래밍하는 다른 프로세스를 도시하고 있는데, 이는 이전 페이지에 대해 이웃하는 저장 소자로 쓰는 것에 이어서 어떤 특정 저장 소자에 대해서 특정 페이지와 관련하여 그 특정 저장 소자에 씀으로써 플로팅 게이트 대 플로팅 게이트 커플링을 줄인다. 도시된 프로세스는 초기 프로그래밍과 재 프로그래밍 둘 모두에 대해 수행된다.
한 구현 예에서, 비활성 저장 소자의 각각은 4개 데이터 상태를 이용하여 2비트 데이터를 저장한다. 예를들어, 상태 E가 지워진 상태이고 상태 A,B 및 C가 프로그램된 상태라고 하자. 상태 E는 데이터 11를 저장하고, 상태 A는 데이터 01를 저장하고, 상태 B는 데이터 10을 저장하고, 그리고 상태 C는 데이터 00을 저장한다. 이것은 비-그레이 코딩의 한 예인데, 왜냐하면 둘 비트 모두 이웃 상태 A와 B 사이에서 변하기 때문이다. 데이터를 물리적 데이터 상태로 엔코딩하는 다른 방법 도 사용될 수 있다. 각 저장 소자는 2개의 데이터 페이지로부터 비트를 저장한다. 참고 목적으로, 이들 데이터 페이지는 상부 페이지와 하부 페이지로 불릴 것이다. 그러나, 그들은 다른 레이블로 주어질 수 있다. 상태 A에 대해, 상부 페이지는 비트 0을 저장하고 하부 페이지는 비트 1을 저장한다. 상태 C에 대해, 2 페이지 모두는 비트 데이터 0을 저장한다. 프로그래밍 프로세스는 초기 프로그래밍과 재 프로그래밍 모두에서 일어나는 2 단계를 갖는다. 첫 번째 단계에서, 하부 페이지가 프로그래밍된다. 하부 페이지가 데이터 1을 유지하면, 저장 소자 상태는 상태 E로 유지된다. 데이터가 0으로 프로그래밍되면, 저장 소자의 VTH 는 저장 소자가 상태 B'로 프로그래밍되도록 상승한다. 도11A는 저장 소자를 상태 E에서 상태 B'로 프로그래밍하는 것을 보여주는데, 상태 B'는 중간 상태 B를 나타낸다. 그러므로, 검증 포인트는 Vvb'로 도시되고, 그것은 도11C에 도시된 것처럼 Vvb1보다 낮다.
한 설계에서, 저장 소자가 상태 E에서 상태 B'로 프로그래밍된 후, 이웃 워드 라인 상에 있는 그것의 이웃 저장 소자는 그것의 하부 페이지에 대해서 프로그래밍된다. 이웃 저장 소자를 프로그래밍한 후, 플로팅 게이트 대 플로팅 게이트 커플링 효과는 고려 중인 상태 B'에 있는 저장 소자의 식별가능한 VTH 를 상승시킬 것이다. 이것은 상태 B'에 대한 VTH 분배를 도11B에 도시된 것으로 넓히는 효과를 가질 것이다. VTH 분배의 뚜렷한 확장은 상부 페이지를 프로그래밍할 때 적어도 부분적으로 개선될 것이다.
도11C는 상부 페이지를 프로그래밍하는 프로세스를 도시하고 있다. 저장 소 자가 지워진 상태 E에 있고, 상부 페이지가 1로 유지되고 있으면, 저장 소자는 상태 E에 남아 있게 될 것이다. 저장 소자가 상태 E에 있고, 그것의 상부 페이지 데이터가 0으로 프로그로래밍되면, 저장 소자의 VTH 는 상승되어 저장 소자가 상태 A에 있게 된다. 저장 소자가 중간 VTH 분배를 갖는 상태 B'에 있고 상부 페이지 데이터가 1인 경우, 저장 소자는 최종 상태 B로 프로그래밍될 것이다. 저장 소자가 중간 VTH 분배를 갖는 상태 B'에 있고 상부 페이지 데이터가 데이터 0으로 되면, 저장 소자의 VTH 는 상승되어 저장 소자는 상태 C에 있게 된다. 도11A-C에 도시된 프로세스는 플로팅 게이트 대 플로팅 게이트 커플링 효과를 줄이는데, 이는 단지 이웃 저장 소자의 상부 페이지 프로그래밍이 특정 저장 소자의 뚜렷한 VTH 에 영향을 미칠 것이다. 다른 상태 코딩의 예는 상부 페이지 데이터가 1일 때 중간 VTH 분배로부터 상태 C로 이동시키고, 그리고 상부 페이지 데이터가 0일 때 상태 B로 이동시키는 것이다. 도11A-C가 4개 데이터 상태와 2 페이지 데이터에 대한 예를 제공하고 있지만, 그 개념은 4개 상태보다 많거나 적은 그리고 2 페이지보다 많거나 적은 경우의 다른 구현예에도 적용될 수 있다. 여러 프로그래밍 체계와 플로팅 게이트 대 플로팅 게이트 커플링에 대한 상세한 내용은 2005년 4월 5일에 출원된 미국특허출원 11/099,133 "Compensating For Coupling During Read Operations of Non-Volatile Memory"에 개시되어 있다.
도11A-C의 프로그래밍 기술이 커플링 효과를 줄이기는 하지만, 몇몇 커플링 은 여전히 영향을 미치는데, 이는 이웃 저장 소자의 상부 페이지 프로그래밍 때문이다. 따라서, 도11C의 VTH 분배는 필요보다 훨씬 더 넓다. 이를 처리하기 위해, 일단 초기 프로그래밍이 완료되면, 재 프로그래밍이 수행될 수 있는데, 이는 도7B의 그것과 유사하게 보다 치밀한 VTH 분배를 낳는다.
도12는 초기 프로그래밍과 재 프로그래밍을 이용하여 비활성 저장 소자의 블록을 프로그래밍하기 위한 프로세스의 일 예를 설명하는 플로우챠트이다. 프로세스가 한 블록의 저장 소자들에 대해 설명되고 있지만, 이것은 어떤 세트의 저장 소자들에 대해서도 적용가능하다. 단계 1200에서, 데이터를 저장하기 위한 명령에 응답하는 것과 같이, 한 블록에 대한 초기 프로그래밍이 시작한다. 단계 1205에서, 첫 번째의 하부 세트의 임계 전압(VTH) 검증 레벨, 즉 Vva1, Vvb1 및 Vvc1(도7A)은 예를들어 그것들을 콘트롤의 워킹 메모리 내로 로딩함으로써 이용된다. 초기 프로그래밍과 재 프로그래밍 중에 다른 패스 전압의 사용은 도14A-F를 참조하여 아래에서 더 설명된다. 단계 1201에서, 블록 내의 첫 번째 페이지 데이터가 프로그래밍되고, 그 결과로 단계 1215에서 플래그 비트(페이지 플래그 1)이 그 페이지에 대해 설정된다. 한 예에서, 페이지 플래그는 단계 1210에서 첫 번째 페이지 데이터를 프로그래밍하는 중에 설정될 수 있다.
가능한 예로서, 하나 이상의 플래그와 같은 정보는 페이지와 같은 블록의 부분들의 프로그래밍 상태를 추적하는데 사용될 수 있다. 그러한 플래그는 일종의 프로그래밍 상태 정보이다. 프로그래밍 상태 정보는 어떤 페이지가 재 프로그래밍될 필요가 있는지 그리고 어떤 페이지가 건너뛸 수 있는지를 콘트롤이 결정할 수 있도록 페이지가 프로그래밍 및/또는 재 프로그래밍을 겪었는지를 나타낼 수 있다. 플래그는 원하는 정보를 포함하기 위해서 충분한 정밀도(granularity)를 가져야 한다. 예를들어, 페이지 당 한 비트는 단지 하나의 재 프로그래밍 사이클만 존재할 때 재 프로그래밍이 그 페이지에 대해 일어났는지를 나타내는데 충분하다. 플래그는 예를들어 페이지가 저장되는 워드 라인의 저장 소자들 중의 하나에 저장될 수 있다. 각 페이지에 대한 플래그 또는 플래그들은 한 비트 또는 한 세트의 비트일 수 있다.
추가적으로 또는 대안적으로, 블록 레벨의 플래그는 재 프로그래밍이 그 블록에 대해 또는 전체로서 다른 유닛의 저장 매체들에 대해 완료되었는지를 나타내는데 제공될 수 있다. 한 예에서, 블록 플래그는 2 비트일 수 있는데, 여기서 한 비트는 초기 프로그래밍이 완료되었는지를 나타내고 다른 비트는 재 프로그래밍이 완료되었는지를 나타낸다. 더 많은 재 프로그래밍이 수행된다면, 추가 비트는 각각의 추가 재 프로그래밍에 대해 사용될 수 있다. 블록 플래그는 블록 플래그가 프로그램된 블록의 외부에 저장될 때 사용될 수 있다.
일반적으로, 한 블록에서 첫 번째와 마지막 프로그램된 페이지의 페이지 플래그가 한 블록이 프로그램되었는지 재 프로그램되었는지를 나타내는데 사용될 수 있을 때, 블록 플래그는 필요하지 않다. 예를들어, 첫 번째 프로그램된 페이지의 첫 번째 비트, 그리고 마지막 프로그램된 페이지의 상응하는 첫 번째 비트는 초기 프로그래밍이 일어났는지를 나타낼 수 있다. 첫 번째 프로그램된 페이지의 비트가 초기 프로그래밍이 해당 첫 번째 프로그램된 페이지에 대해 수행되지 않았음을 나타낸다면, 초기 프로그래밍이 해당 블록의 어떤 부분에 대해 수행되지 않았다고 결론지을 수 있다. 초기 프로그래밍이 첫 번째 프로그램된 페이지에 대해 수행되고 마지막 페이지에 대해서는 수행되지 않았음을 비트가 나타내고 있다면, 해당 블록의 한 부분에 대해 초기 프로그래밍이 수행되었다고 결론지을 수 있다. 마지막 프로그램된 페이지의 비트가 그 마지막 페이지에 대해 초기 프로그래밍이 수행되었음을 나타내고 있다면, 초기 프로그래밍이 전체 블록에 대해 수행되었다고 결론지을 수 있다.
유사하게, 첫 번째 프로그램된 페이지의 두 번째 비트, 그리고 마지막 프로그램된 페이지의 상응하는 두 번째 비트가 재 프로그래밍이 일어났는지를 나타낼 수 있다. 첫 번째 프로그램된 페이지의 비트가 재 프로그래밍이 해당 첫 번째 프로그램된 페이지에 대해 수행되지 않았음을 나타낸다면, 재 프로그래밍이 해당 블록의 어떤 부분에 대해 수행되지 않았다고 결론지을 수 있다. 재 프로그래밍이 첫 번째 프로그램된 페이지에 대해 수행되고 마지막 페이지에 대해서는 수행되지 않았음을 비트가 나타내고 있다면, 해당 블록의 한 부분에 대해 재 프로그래밍이 수행되었다고 결론지을 수 있다. 마지막 프로그램된 페이지의 비트가 그 마지막 페이지에 대해 재 프로그래밍이 수행되었음을 나타내고 있다면, 재 프로그래밍이 전체 블록에 대해 수행되었다고 결론지을 수 있다.
전체 블록이 아직 재 프로그램되지 않았을 때는 낮은 읽기 전압이 사용되고, 전체 블록이 재 프로그램된 경우에는 높은 읽기 전압이 사용된다. 블록이 부분적으 로 재 프로그램될 때, 페이지를 읽는데 사용하는 적당한 워드 라인 읽기 전압을 결정하기 위하여 콘트롤은 바이너리 인코딩된 플래그 저장 소자의 바이너리 읽기를 수행할 수 있다. 한 예에서, 재 프로그램되지 않은 페이지에 대해서는 낮은 읽기 전압이 사용되고, 재 프로그램된 페이지에 대해서는 높은 읽기 전압이 사용된다.
단일 다중 레벨 저장 소자의 다른 상태 각각은 프로그래밍 상태 정보를 저장하는데 사용되어 다수의 플래그 값이 디자인될 수 있도록 한다. 또한, 블록 플래그는 블록이 재 프로그램되었는지를 나타내는 단일 비트를 사용할 수 있다. 일반적으로, 블록 플래그는 바이너리 또는 다중 레벨의 저장 소자에 인코딩될 수 있고, 같은 블록, 예를들어 블록의 첫 번째 페이지 또는 다른 블록이나 로케이션 내에 위치할 수 있다. 다중 레벨 저장 소자의 경우, 플래그 비트는 상태 E와 C를 사용할 수 있는데, 예를들면 그것은 가장 떨어진 상태인데 이는 하나의 예에서 가장 큰 신뢰를 제공한다.
이와같이, 단계 1215에서, 페이지 플래그 (페이지 플래그 1)는 현재의 프로그램된 페이지가 프로그래밍 상태를 나타내도록 설정된다. 페이지 플래그를 설정하는 것은 그것으로 정의된 프로그래밍 상태 정보가 옳다고 하면 플래그를 그것의 현존 상태로 내버려두는 것을 포함한다. 예를들어, 하나의 비트가 페이지가 재 프로그램되지 않았음을 나타낼 수 있다. 초기 프로그래밍 후, 비트는 이 상태로 남겨질 수 있다. 재 프로그래밍 후, 비트는 제로 값으로 변경될 수 있다.
결정 단계 1220에서, 결정은 초기 프로그래밍이 그 블록에 대해 완료되었는지에 대해 행해진다. 이것은 예를들어 NAND 스트링의 한 블록에 있는 드레인 측 워 드 라인과 같은 블록 내의 마지막 워드 라인 상의 저장 소자들이 프로그램되었는지를 결정함에 의해 정해질 수 있다. 초기 프로그래밍이 아직 완료되지 않았다면, 다음 페이지의 데이터는 단계 1225에서 프로그램되고, 페이지 플래그(페이지 플래그 1)은 단계 1215에서 그 다음 페이지 데이터에 대해 설정되는데, 이는 초기 프로그래밍만이 수행되었음을 나타낸다. 즉, 재 프로그래밍은 아직 수행되지 않았다. 각 연속 페이지는 초기 프로그래밍이 해당 블록에 대해 완료될 때까지 프로그램되고, 이 때 블록 플래그(블록 플래그 1)는 단계 1230에서 그 블록에 대해 설정될 수 있고, 단계 1235에서 재 프로그래밍이 시작된다. 이러한 블록 플래그는 일종의 프로그래밍 상태 정보이다. 대안적으로, 블록 플래그는 이전에 설명된 것처럼 사용될 필요는 없다. 한 예에서, 블록 플래그는 마지막 페이지 데이터의 프로그래밍 중에 설정될 수 있다(단계 1225). 단계 1240에서, 두 번째의 높은 세트의 임계 전압(VTH) 검증 레벨, 즉 Vva2, Vvb2 및 Vvc2(도7B)가 사용된다. 덧붙여, 두 번째의 높은 패스 전압, Ppass2, 또는 패스 전압 세트가 사용된다.
결정 단계 1245에서, 결정은 다른 태스크가 펜딩되어 있는지에 대해 행해진다. 다른 태스크 펜딩이 있다면, 다른 태스크 펜딩이 없을 때까지 단계 1250에서 대기가 시작된다. 일반적으로, 실행상 불이익(performance penalty)을 피하기 위해서, 재 프로그래밍은 비 실시간 기반으로 이루어지는데, 이 때 도5의 콘트롤 회로(515)와 같이 블록의 프로그래밍을 제어하는 적어도 하나의 회로가 대기 모드로 들어가서 다른 태크스 펜딩을 가지지 않거나 우선권이 높은 적어도 하나의 다른 태 스크 펜딩을 가지지 않는다. 즉, 재 프로그래밍은 초기 프로그래밍을 바로 따를 필요는 없으며, 일단 시작하면 모든 저장 소자를 재 프로그래밍할 때 중단하지 않고 진행할 필요가 없다. 예를들어, 정수의 데이터 페이지, 예를들어 하나 또는 그 이상의 페이지는 다음 페이지 데이터를 재 프로그래밍할 때 일시적으로 중단하고 나중에 다시 시작하기 전에 한 번에 재 프로그램될 수 있다. 중단과 재시작은 블록이 재 프로그래밍을 완료하기 전에 여러 번 발생할 수 있다. 이와같이,블록 프로그래밍을 제어하는 적어도 하나의 회로 또는 비활성 저장 소자의 다른 유닛이 대기 모드로 들어간 후, 및/또는 우선권이 높은 다른 태스크 펜딩이 없을 때, 재 프로그래밍은 다른 시간들에서 실행될 수 있다. 대안적으로, 재 프로그래밍은 실시간 기반으로 발생할 수 있는데, 초기 프로그래밍을 바로 뒤따라서 및/또는 처음부터 끝까지 계속해서 진행하는 식이 그것이다.
특히, 재 프로그래밍은 데이터를 읽거나 쓰기 위한 다른 요청 펜딩이 없을 때 또는 쓰레기 수집이나 조각 처리를 포함하는 태스크와 같은 우선권이 높은 다른 태스크 펜딩이 없을 때 이루어진다. 그러므로, 재 프로그래밍은 리소스가 이용가능할 때 실행되는, 리소스가 허용할 때 시작하고 중단하는 배경 프로세스로 이루어질 수 있다. 사용자가 사진을 찍을 때, 콘트롤러는 초기 프로그래밍에서 비활성 저장 매체의 적어도 첫 블록에 이미지 데이터를 저장하는데 바쁠 것이고, 이후 사용자가 다른 사진을 찍을 때까지 보통 대기 시간이 있게 된다. 재 프로그래밍은 이러한 대기 시간에 수행될 수 있다. 재 프로그래밍이 완료되기 전에 사용자가 다른 사진을 찍으면, 재 프로그래밍은 일시적으로 연기되어 새로운 이미지 데이터가 예를들어 두 번째 블록의 초기 프로그래밍에 쓰여지도록 허용하게 된다. 이것이 완료되면, 첫 번째 블록의 재 프로그래밍이 재시작될 수 있다. 이어서, 두 번째 블록의 재 프로그래밍이 시작될 수 있다. 재 프로그래밍은 하나 이상의 블록에 대해 병렬적으로 이루어질 수도 있다. 유사하게, 사용자가 카메라 전원을 끌 경우, 카메라에 전원이 다시 공급되고 다른 태스크로 바쁠지 않을 때까지 재 프로그래밍을 일시적으로 연기될 수 있다.
단계 1255에서, 첫 번째 페이지 데이터가 새로운 VTH 검증 레벨과 패스 전압을 사용하여 프로그래밍되고, 단계 1260에서 페이지 플래그(페이지 플래그 2)는 그 페이지에 대해 예를들어 그 페이지에 대해 재 프로그래밍이 일어났음을 나타내도록 설정된다. 페이지 플래그는 일종의 프로그래밍 상태 정보이다. 한 예에서, 단계 1255에서 페이지 플래그는 한 페이지의 플래그를 프로그래밍하는 중에 설정될 수 있다. 결정 단계 1265에서, 해당 블록에 대해 재 프로그래밍이 완료되면, 블록 플래그(블록 플래그 2)는 단계 1270에서 그 블록에 대해 설정되고, 그리고 재 프로그래밍이 완료된다. 블록 플래그는 일종의 프로그래밍 상태 정보이다. 대안적으로, 블록 플래그는 한 페이지의 데이터를 프로그래밍하는 중에 설정될 수 있다. 달리, 다음 페이지의 데이터는 결정 단계 1275에서 다른 태스크가 펜딩되어 있지 않다면 단계 1285에서 재 프로그래밍되는데, 이 경우 대기는 단계 1280에서 구현된다. 블록의 각 연속 페이지는 재 프로그래밍되고 그리고 그 블록에 대한 재 프로그래밍이 완료될 때까지 단계 1260에서 설정된 페이지 플래그를 갖는다. 일반적으로, 재 프 로그래밍은 연기되고 페이지 경계에서 다시 시작한다. 페이지를 프로그래밍하는 중에 사용자가 장치를 중지시키면, 현재 페이지의 프로그래밍이 끝날 때까지 중지는 연기된다. 실제로, 이 시간 간격은 초의 일부이어서 사용자에게 뚜렷하게 나타나지 않는다. 도13은 일련의 프로그래밍 펄스를 이용하여 비활성 저장 매체를 프로그래밍하기 위한 프로세스의 일 예를 도시하는 플로우 챠트이다. 프로세스는 한 페이지의 데이터를 프로그래밍하는데 사용될 수 있는데, 예를들어 도12의 단계 1210, 1225, 1255 및 1285에 나타낸 바와 같다. 지움 프로세스는 보통 같은 시간에 블록과 같은 다수의 워드 라인에서 실행되고, 한편 프로그래밍은 워드 라인 마다 행해진다. 또한, 도5를 참조하여, 단계 1300에서, "데이터 로드" 명령이 콘트롤 회로(515)에 의해 발해지고 명령 회로(514)로 입력되어, 데이터가 데이터 입출력 버퍼(512)로 입력되게 한다. 입력 데이터는 명령으로 인식되고, 명령 회로(514)에 입력된 명령 래치 신호를 통해 상태 머신(516)에 의해 래치된다. 단계 1305에서, 페이지 어드레스를 지정하는 어드레스 데이터는 콘트롤러 또는 호스트로부터 로우 콘트롤러 또는 디코더(506)로 입력된다. 입력 데이터는 페이지 어드레스로 인식되고, 명령 회로(514)에 입력된 어드레스 래치 신호에 의해 영향을 받는 상태 머신(516)를 통해 래치된다. 단계 1310에서, 어드레스된 페이지에 대한 한 페이지의 프로그램 데이터는 프로그래밍을 위해 데이터 입출력 버퍼(512)로 입력된다. 예를들어, 한 예에서 532 바이트의 데이터가 입력될 수 있다. 그 데이터는 선택된 비트 라인에 대해 적절한 레지스터에서 래치된다. 몇몇 예에서, 데이터는 선택된 비트 라인이 검증 동작에 사용되도록 두 번째 레지스터에서 래치되기도 한다. 단계 1315에 서, "프로그램" 명령은 콘트롤러에 의해 발해지고, 데이터 입출력 버퍼(512)로 입력된다. 명령은 명령 회로(514)에 입력된 명령 래치 신호를 통해 상태 머신(516)에 의해 래치된다.
"프로그램" 명령에 의해 트리거되면, 단계 1315에서 래치된 데이터는 도8에 도시된 바와같이 적적한 워드 라인에 인가된 스텝 펄스를 이용하여 상태 머신(516)으로 제어되는 선택된 저장 소자로 프로그램될 것이다. 단계 1320에서, Vpgm, 선택된 워드 라인에 인가된 프로그래밍 펄스 전압 레벨은 시작 펄스(예를들어 12V)로 초기화되고, 상태 머신(516)에 의해 유지되는 프로그램 카운터 PC는 0으로 초기화된다. 초기 프로그램 펄스의 크기는 예를들어 차지 펌프(charge pump)를 적절하게 프로그래밍함으로써 설정된다. 단계 1325에서, 첫 번째 Vpgm 펄스는 선택된 워드 라인에 인가된다. 상응하는 저장 소자가 프로그램되어야 함을 나타내는 특정 데이터 래치에 로직 "0"이 저장되면, 상응하는 비트 라인은 접지된다. 한편, 상응하는 저장 소자가 현재 데이터 상태로 유지되어야 함을 나타내는 특정 래치에 로직 "1"이 저장되면, 상응하는 비트 라인은 VDD 에 연결되어 프로그래밍을 저지한다.
단계 1330에서, 선택된 저장 소자의 상태가 검증된다. 선택된 셀의 목표 임계 전압이 적절한 레벨에 도달한 것으로 확인되면, 상응하는 데이터 래치에 저장된 데이터는 로직 "1"로 변경된다. 임계 전압이 적절한 레벨에 도달하지 않은 것으로 확인되면, 상응하는 데이터 래치에 저장된 데이터는 변경되지 않는다. 이러한 식으로, 그것의 상응하는 데이터 래치에 저장된 로직 "1"을 갖는 비트 라인은 플로그램 될 필요는 없다. 모든 데이터 래치가 로직 "1"을 저장하고 있을 때, 상태 머신은 모든 선택된 셀이 프로그램되었음을 안다. 단계 1335에서, 모든 데이터 래치가 로직 "1"을 저장하고 있는지를 체크된다. 그렇다면, 프로그래밍 프로세스는 완료되고 성공적이다. 왜냐하면, 모든 선택된 저장 소자가 그들의 목표 상태로 프로그램되고 검증되었기 때문이다. "PASS" 상태는 단계 1340에서 보고된다. 미리 정해진 부분의 저장 소자들이 프로그램되고 검증된다면 패스가 보고될 수도 있다.
선택적으로, 몇몇 메모리 소자가 그들의 원하는 상태에 도달하지 않을 때에도 패스가 단계 1335에서 선언될 수 있다. 이와같이, 어떤 수의 셀이 원하는 상태에 도달할 수 없음에도, 최대 수의 루프가 도달되기 전에 프로그래밍이 중지할 수 있다.
단계 1335에서, 데이터 래치 모두가 로직 "1"을 저장하고 있는 것은 아니라면, 프로그래밍 프로세스는 계속한다. 단계 1345에서, 프로그램 카운터 PC는 프로그램 한계값(PCmax)에 대해서 체크된다. 프로그램 한계값의 한 예는 20 펄스이지만, 다른 값도 여러 구현 예에서 사용될 수 있다. 프로그램 카운터 PC가 PCmax에 도달하면, 프로그램 프로세스는 장애(fail)로 플래그되고 단계 1350에서 장애 상태가 보고된다. 예를들어, 장애 상태는 성공적으로 프로그램되지 않은 비트의 수가 특정 수를 초과하는 경우 발생한다. 프로그램 카운터 PC가 PCmax보다 작은 경우, Vpgm 레벨은 단계 폭만큼 증가되고, 프로그램 카운터 PC는 단계 1355에서 증분된다. 프로세스는 단계 1325로 돌아가서 다음 Vpgm 펄스를 인가한다.
플로우 챠트는 바이너리 저장 소자에 사용될 수 있는 프로그래밍 방법을 도 시하고 있다. 다중 레벨 저장 매체에서, 예를들어 도10과 도11A-C에서 설명된 바와같은 다수 프로그래밍 또는 검증 단계는 단일 반복의 플로우 챠트에서 이용될 수 있다. 단계 1320-1355는 각 단계의 프로그래밍 동작에 대해 실행될 수 있다. 첫 번째 단계에서, 하나 또는 그 이상의 프로그래밍 펄스가 인가될 수 있고, 그 결과는 셀이 적절한 중간 상태에 있는지를 결정하기 위해 검증될 수 있다. 두 번째 단계에서, 하나 또는 그 이상의 펄스가 인가될 수 있고, 그 결과는 셀이 적절한 최종 상태에 있는지를 결정하기 위해 검증될 수 있다. 성공적 프로그램 프로세스의 끝에서, 저장 소자의 임계 전압은 프로그램된 저장 소자에 대한 하나 또는 그 이상의 임계 전압 분포 내 또는 지워진 저장 소자에 대한 임계 전압의 분포 내에 있어야 한다.
승압 기술( boosting techniques )
도14A-F는 초기 프로그래밍과 재 프로그래밍에 대해 다른 패스 전압을 사용하는 승압 기술을 도시하고 있다. 이 기술은 프로그래밍 중에 패스 전압 Vpass을 선택되지 않은 워드 라인에 인가하는 것을 포함한다. 일반적으로, 재 프로그래밍 중에, 초기 프로그래밍에 사용된 패스 전압 Vpass1과 비교하여 패스 전압 Vpass2를 증가시키는 것이 도움이 될 수 있는데, 이는 재 프로그래밍 중에 드레인 측 워드 라인 아래의 저장 소자들은 더 이상 지워지지 않기 때문이다. 그 결과, Vpass 승압 전위의 많은 부분이 높은 임계 전압으로 프로그램되는 저장 소자들을 위한 반전 조건에 도달하는데 소비되어야 한다. 상승된 Vpass 전압은 off-row-disturb 로 알려진 프로세스에서 선택되지 않은 워드 라인 아래의 지워진 저장 소자를 우연적으로 프로그래밍하는 것으로 나타날 수 있다. 그러나, 블록 재 프로그래밍의 이점으로 인해 저장 소자 VTH 윈도우는 감소되면, 이것은 더 높은 Vpass 전압의 효과를 오프셋할 수 있다. 예를들어, Vpass2는 Vpass1을 0.5V만큼 초과할 수 있다. 가능한 한 예에서, Vpass2는 7-10V일 수 있고, 반면 Vpass1은 6.5-9.5V일 수 있다. 일반적으로, 같거나 다른 Vpass 값이 다른 워드 라인에 인가될 수 있다. 예를들어, 선택되지 않은 워드 라인에 인가된 Vpass는 선택된 워드 라인에 대해서 및/또는 블록의 경계에 대해서 선택되지 않은 워드 라인의 위치 기능일 수 있으며, 추가적으로 초기 또는 프로그래밍이 실행되었는지에 대한 기능일 수 있다.
도14A와 도14B는 자기 승압 기술에 대해서 초기 프로그래밍과 재 프로그래밍 각각에 대한 워드 라인 인가 전압을 보여주고 있다. 자기 승압의 경우, 선택되지 않은 비트 라인에 관련된 채널은 절연되어 있고, 패스 전압 Vpass1 또는 Vpass2는 프로그래밍 중에 선택되지 않은 워드 라인에 인가된다. 선택되지 않은 워드 라인은 해당 미선택 워드 라인에 관련된 채널과 커플링하여, 전압(예를들어 각각 초기 프로그래밍과 재 프로그래밍 중에 7.5 또는 8V)이 미선택 비트 라인의 채널에 존재하게 한다. 이와같이, 자기 승압은 터널 산화물 사이의 전압을 낮추어 프로그램 방해를 줄이는 경향이 있는 채널 내에 전압 상승을 존재하게 한다. 예를들어, 간단한 예로 4개의 워드 라인 WL0-WL3이 있고, WL2 상의 저장 소자들이 프로그래밍 전압 Vpgm으로 현재 프로그래밍되고 있다고 하자. 이 경우, 자기 승압은 Vpass1 또는 Vpass2를 WL0, WL1 및 WL3에 인가함으로써 얻어진다. 실제로, 전압은 교호하는 워 드 라인의 반대편 끝에 인가될 수 있다.
도14C와 도14D는 로컬 자기-승압(Local self-boosting : LSB) 기술에 대해 초기 프로그래밍과 재 프로그래밍 각각을 위한 워드 라인 인가 전압을 보여주고 있다. 도14E와 도14F는 지움 영역 자기-승압(Erased area self-boosting : EASB) 기술에 대해 초기 프로그래밍과 재 프로그래밍 각각을 위한 워드 라인 인가 전압을 보여주고 있다. LSB와 EASB는 종래의 자기 승압의 단점을 처리하기 위한 것으로, 이전에 프로그램된 저장 소자의 채널과 금지되는 저장 소자의 채널을 분리시킨다. 예를들어, 도4를 참조하면, 저장 소자(424)가 프로그래밍되고 있다면, LSB와 EASB는 저장 소자(444)의 채널과 이전의 프로그램된 저장 소자(445와 446)을 분리시킴으로써 저장 소자(444)에 프로그래밍하는 것을 저지한다. SB, EASB 및 LSB 승압 방법과 다른 변형들에 대해, 프로그래밍되는 저장 소자의 비트 라인은 접지되거나 0V에 가까운, 보통은 0-1V 범위의 다른 전압에 연결되고, 한편 금지되는 저장 소자를 갖는 NAND 스트링의 비트 라인은 Vdd, 보통 약 1.5-3V이다. 프로그램 전압 Vpgm(예를들어 20V)는 선택된 워드 라인에 연결된다. LSB에 대해서는, 선택된 워드 라인과 이웃하는 워드 라인은 OV이거나 0V에 가깝고, 한편 나머지 비선택 워드 라인은 Vpass1 또는 Vpass2이다. 예를들어, 비트 라인(421)은 0V이고, 한편 비트 라인(441)은 Vdd이다. 드레인 셀렉트(SCG)는 Vsgd(보통 2.5-4.5V)이고, 소스 셀렉트(SGS)는 0V이다. 도14C와 도14D를 참조하면, 선택된 워드 라인 WL2는 Vpgm이고, 한편 이웃하는 워드 라인 (WL1 및 WL3)은 0V이며, 그리고 워드 라인(예를들어 WL0)은 Vpass1 또는 Vpass2이다.
LSB 모드의 단점은 선택된 워드 라인 아래의 승압된 채널 전압은 대단히 높을 수 있는데, 이는 그 부분의 채널이 선택되지 않은 워드 라인 아래의 다른 채널 영역과 분리되어 있어서 그 결과 승압 전압이 주로 높은 프로그래밍 전압 Vpgm에 의해 결정되기 때문이다. 높은 승압으로 인해, OV로 바이어스된 워드 라인 근처에서 밴드 대 밴드 터널링 또는 GIDL이 일어날 수 있다. 채널 승압의 양은 EASB를 사용하여 낮은 값으로 제한할 수 있다. EASB는 단지 소스 측 이웃 워드 라인이 0V인 것을 제외하면 LSB와 유사하다. 예를들어, 도14E와 14F를 참조하면, 선택된 워드 라인 WL2는 Vpgm에 있고, 한편 소스 측 이웃 워드 라인 WL1은 0V에 있고, 그리고 다른 워드 라인(예를들어 WL0와 WL3)은 Vpass1 또는 Vpass2에 있다. 이 예에서, 선택된 워드 라인 아래의 채널 영역과 선택된 저장 소자의 드레인 측 이웃 워드 라인 아래의 채널 영역은 연결되어, LSB 경우와 같이 채널 승압은 Vpgm에 의하지 않고 비선택 워드 라인에 인가되는 패스 전압에 의해 주로 결정된다. Vpass 가 너무 낮으면, 채널 내의 승압은 프로그램 방해를 저지하기에 충분하지 않을 것이다. Vpass1 또는 Vpass2가 너무 높으면, 선택된 NAND 스트링(비트 라인 상에 0V를 갖는)의 비선택 워드 라인은 프로그램되거나, 또는 GIDL로 인한 프로그램 방해가 일어날 수 있다.
적절한 읽기 전압을 결정하기 위한 플래그의 사용
도15는 플래그를 이용해서 비활성 저장 매체의 블록에서 페이지 데이터를 읽기 위한 프로세스의 실시 예를 설명하는 플로우 챠트이다. 프로세스가 한 블록의 저장 소자에 대해 설명되고 있지만, 어떤 세트의 저장 소자에도 적용할 수 있다. 블록의 데이터는 종종 요구되는 대로 읽혀진다. 데이터는 초기 프로그래밍 및/또는 재 프로그래밍을 완료한 블록의 페이지로부터 읽혀질 수 있다. 높은 VTH 검증 레벨이 재 프로그래밍에서 사용될 때, 높은 읽기 레벨이 데이터를 읽을 때 사용된다. 이와같이, 읽기 전에 페이지의 프로그래밍 상태를 아는 것이 바람직하다.
이러한 목적에, 각 페이지는 같은 페이지에 존재하는 전용 바이너리 인코드 저장 소자를 가질 수 있는데, 예를들어 그것의 바이너리 상태는 플래그로 사용된다. 읽기 동작이 새로운 블록으로 진행할 때, 그 블록의 첫 번째 페이지는 그 페이지가 재 프로그램된 블록이라는 가정하에 읽혀질 수 있다. 읽기 결과가 다르게 나타나면, 그 페이지는 더 낮은 세트의 읽기 레벨을 가지고 다시 읽혀질 수 있다. 다음 페이지는 아마도 첫 번째 플래그와 같은 프로그래밍 상태(재 프로그램된 또는 그렇지 않은)를 가질 것이다. 그러므로, 그들은 에러 정정 코드(ECC) 에러가 잘못된 페이지 상태를 사용했을 가능성을 증가시킬 때까지 첫 번째 페이지에 상응하는 모드에서 읽혀질 수 있으며, 이 경우 그 페이지와 그 블록의 그 후의 모든 페이지는 교호하는 읽기 전압 하에서 읽혀질 수 있다. 게다가, 어떤 페이지를 읽은 후, 그것의 플래그 상태는 가정된 읽기 전압에 대해 체크될 수 있고, 그리고 모순이 발견되면 그 페이지는 교호하는 읽기 전압을 이용하여 다시 읽혀질 수 있다. 이것은 첫 번째의 부적절한 읽기가 ECC 에러를 결과하지 않아도 행해질 수 있다.
구현 예의 단계 1500에서, 콘트롤은 페이지 데이터를 읽기 시작한다. 단계 1505에서, 그 페이지가 위치하는 그 블록의 블록 플래그는 프로그래밍 상태를 결정 하기 위해 읽힌다. 대안적으로, 하나 또는 그 이상의 페이지 플래그는 도12와 관련하여 설명된 바와같이 프로그래밍 상태를 결정하기 위해 읽혀질 수 있다. 단계 1510에서, 블록/페이지 플래그 또는 플래그들이 재 프로그래밍이 그 블록에 대해 완료되었음을 나타내고 있다면, 두 번째의 높은 세트의 VTH 읽기 레벨이 단계 1535에서 사용된다. 예를들어, 이것들은 도7B로부터의 Vra2, Vrb2 및 Vrc2일 수 있다. 단계 1540에서, 그 페이지의 데이터는 두 번째의 높은 세트의 VTH 읽기 레벨을 이용해서 읽혀진다. 그 블록의 추가 페이지는 단계 1545에서 읽혀질 것이고, 그리고 재 프로그래밍은 완료되고(단계 1510), 추가 페이지의 데이터는 단계 1535에서 얻어진 두 번째의 높은 세트의 VTH 읽기 레벨을 이용하여 단계 1540에서 읽혀진다. 읽어야 할 더 이상의 페이지가 없다면, 읽기 프로세스는 단계 1550에서 종료된다.
한편, 블록/페이지 플래그 또는 플래드들이 재 프로그래밍이 그 블록에 대해 단계 1510에서 완료되었음을 나타내지 않는다면, 단계 1530에서 그 페이지에 대해 단지 초기 프로그래밍만 완료되었는지를 결정하기 위해, 단계 1515에서 페이지 플래그가 읽혀진다. 단지 초기 프로그래밍만이 완료되었다면, 첫 번째의 낮은 세트의 VTH 읽기 레벨이 단계 1525에서 사용된다. 예를들어, 이것들은 도7A로부터의 Vra1, Vrb1 및 Vrc1일 수 있다 또한 재 프로그래밍도 완료되었다면, 두 번째의 높은 세트의 VTH 읽기 레벨은 단계 1535에서 사용되고, 이미 설명한 바와같이 그 페이지의 데이터는 단계 1540에서 읽혀진다. 프로세스는 읽혀질 더 이상의 페이지가 없을 때 까지 반복된다. 이와같이, 적절한 읽기 레벨은 연관된 프로그래밍 상태에 기반하여 그 블록 내의 각 페이지에 대해 사용될 수 있다.
적절한 읽기 전압을 결정하기 위한 에러 카운트의 이용
도16은 비활성 저장 매체의 블록에서 페이지 데이터를 읽는데 에러 카운트를 이용하는 프로세스의 실시예를 도시하는 플로우 챠트이다. 프로세스가 한 블록의 저장 소자에 대해 설명되고 있지만, 어떤 세트의 저장 소자에 대해서도 적용할 수 있다. 이 예에서, 페이지 또는 블록 레벨 플래그들은 페이지 또는 블록 각각의 프로그래밍 상태를 확인할 필요가 없다. 대신, 콘트롤 회로는 특정 프로그래밍 상태, 예를들어 초기 프로그래밍만이 완료되었거나 재 프로그래밍도 완료되었는가를 가정하여 페이지를 읽을 수 있고, 그리고 그 가정이 옳은지를 결정하기 위하여 에러 카운트에 의존한다. 그 가정이 옳지 않다고 확인되고 잘못된 읽기 전압이 사용되었다면, 다른 세트의 읽기 전압이 그 저장 소자를 다시 읽기 위하여 사용된다.
구현 예의 단계 1600에서, 콘트롤은 페이지 데이터를 읽기 시작한다. 단계 1605에서, VTH 읽기 레벨의 디폴트 세트가 사용되는데, 예를들어 도7A로부터의 낮은 레벨 Vra1, Vrb1 및 Vrc1이거나, 도7B로부터의 Vra2, Vrb2 및 Vrc2이다. 단계 1615에서, 페이지는 디폴트 또는 가정된 VTH 읽기 레벨을 이용하여 읽혀지고, 단계 1620에서 그 페이지에 대한 에러 카운트가 결정된다. 예를들어, 에러 카운트는 에러 정정 또는 검출 코드로 검출된 에러에 기초할 수 있다. 해밍 코드와 같은 에러 정정 코드는 몇몇 에러를 검출해서 정정할 수 있고, 한편 패리티 비트 또는 체크섬을 용 하는 것과 같은 에러 검출 코드는 그들을 정정함이 없이 단지 에러를 검출만 할 수 있다. 예를들어, 도6와 관련하여 설명한 바와같이, 페이지는 ECC 데이터와 관련된 다수의 데이터 섹터를 포함할 수 있다. 섹터가 저장 소자에 쓰여질 때, 추가적인 에러 정정 또는 검출 비트가 쓰여진다. 이들 비트는 에러 정정 또는 검출 코드를 이용하는 그 섹터의 데이터로부터 생성된다. 그 결과, 섹터가 읽혀 질 때, 수반하는 에러 정정 또는 검출 비트도 읽혀진다. 출력이 에러 정정 또는 검출 코드와 일치하는지를 보기 위해서, 섹터 데이터는 에러 정정 또는 검출 코드를 통해 처리된다. 출력이 일치하지 않는다면, 그 섹터에는 에러가 있다. 따라서, 에러 카운트는 섹터 또는 다른 유닛에 대해 검출된 다수의 에러에 기초해 생성될 수 있다. 그 카운트는 모든 검출된 에러를 포함할 수 있고, 거기에는 정정될 수 있는 것들, 또는 정정될 수 없는 에러만을 포함할 수 있다. 카운트는 숫자 그대로, 퍼센티지 또는 다른 계량법으로 표현될 수 있다.
단계 1625에서, 에러 카운트가 임계치를 초과하면, 사용된 VTH 읽기 레벨의 디폴트 세트는 옳지 않은 것으로 결론지어질 수 있다. 이 경우, 대안 세트의 VTH 읽기 레벨이 단계 1630에서 사용된다. 예를들어, 디폴트 세트가 도7A로부터의 낮은 읽기 레벨 Vra1, Vrb1 및 Vrc1를 포함한다면, 다른 세트는 도7B로부터의 높은 읽기 레벨 Vra2, Vrb2 및 Vrc2를 포함할 수 있다. 반대로, 디폴트 세트가 높은 읽기 레벨을 포함한다면, 다른 세트는 낮은 읽기 레벨을 포함할 수 있다. 그 접근은 하나 이상의 다른 세트의 읽기 레벨로 확장될 수 있다. 단계 1635에서, 페이지는 다른 읽기 레벨로 다시 읽혀진다. 단계 1640에서 읽어야 할 추가 페이지가 없으면, 페이지는 가장 최근에 사용된 세트의 읽기 레벨을 이용하여 단계 1615에서 읽혀지고, 그리고 에러 카운트는 단계 1620에서 결정된다. 그런 다음, 프로세스는 설명한 바와같이 진행한다. 단계 1625에서 에러 카운트가 임계치를 초과하지 않고 단계 1640에서 읽어야 할 추가 페이지가 없다면, 단계 1645에서 프로세스는 종료된다. 단계 1640에서 읽어야 할 추가 페이지가 있다면, 단계 1615에서 페이지는 가장 최근에 사용된 세트의 읽기 레벨을 이용하여 읽혀진다.
에러 임계치가 특정 메모리 장치에 관한 경험에 기초한 하나의 레벨로 설정될 수 있으며, 이는 옳은 읽기 레벨이 사용될 때 보통 경험되는 에러 카운트를 고려한다. 옳은 읽기 레벨이 사용될 때 보통 경험되는 에러 카운트에서 미리 정해된 양만큼 벗어날 때, 에러 카운트는 옳지 않은 읽기 레벨을 나타내는 것으로 간주될 수 있다. 테스팅, 모델링 및 실험이 적절한 임계치를 결정하는데 이용될 수 있다. 또한, 다른 읽기 레벨이 사용될 때의 에러 카운트를 결정하고 그것을 디폴트 읽기 레벨이 사용될 때의 에러 카운트와 비교하는 것도 가능하다. 낮은 에러 카운트를 낳는 읽기 레벨은 최종 읽기 레벨로 사용될 수 있다.
이상의 본 발명의 상세 설명은 묘사와 설명의 목적으로 제시된 것이다. 개시한 형태 그대로 본 발명을 한정하거나 제한하는 의도는 없다. 위에서 개시한 내용에 비추어 보면, 많은 수정과 변형이 가능하다. 설명된 실시예는 본 발명의 원리와 실제 적용례를 가장 잘 설명하기 위하여 선택된 것이며, 이를 통해 당업자가 다양한 실시예로 본 발명을 활용할 수 있게 하고, 특정 용도에 적당한 변형이 생각되어 질 수 있게 한다. 본 발명의 권리범위는 첨부된 청구범위로 결정된다.

Claims (28)

  1. 비활성 저장매체(non-volatile storage)를 동작시키는 방법에 있어서,
    다수의 워드 라인을 통해 다수의 비활성 저장 소자를 프로그래밍할 때, 초기 프로그래밍에서 상기 다수의 워드 라인 중 첫 번째 워드 라인에서 시작하여 다음의 각 워드 라인으로 순차적으로 마지막 워드 라인까지 진행하는 초기 프로그래밍 단계: 그리고
    상기 초기 프로그래밍이 완료된 후, 상기 다수의 워드 라인을 통해 상기 다수의 비활성 저장 소자를 재 프로그래밍하는 재 프로그래밍 단계를 포함하는 것을 특징으로 하는 비활성 저장매체 동작방법.
  2. 제1항에 있어서,
    상기 다수의 비활성 저장 소자는 상기 다수의 워드 라인 중 첫 번째 워드 라인에서 다시 시작하여 다음의 각 워드 라인으로 순차적으로 마지막 워드 라인까지 진행하여 재 프로그래밍되는 것을 특징으로 하는 비활성 저장매체 동작방법.
  3. 제1항에 있어서,
    초기 프로그래밍에서 상기 다수의 워드 라인 중 특정 워드 라인에 연관된 비활성 저장 소자를 프로그래밍할 때 상기 다수의 워드 라인의 적어도 하나의 다른 워드 라인에 제1 패스 전압을 인가하는 단계와,
    재 프로그래밍에서 상기 다수의 워드 라인 중 상기 특정 워드 라인에 연관된 비활성 저장 소자를 프로그래밍할 때 상기 다른 워드 라인에 상기 제1 패스 전압과 다른 제2 패스 전압을 인가하는 단계를 더 포함하는 것을 특징으로 하는 비활성 저장매체 동작방법.
  4. 제3항에 있어서,
    상기 제2 패스 전압은 상기 제1 패스 전압보다 높은 것을 특징으로 하는 비활성 저장매체 동작방법.
  5. 제1항에 있어서,
    상기 다수의 비활성 저장 소자는 상기 초기 프로그래밍에서 제1 임계 전압 검증 레벨들을 이용하여 프로그래밍되고, 그리고 상기 재 프로그래밍에서 상기 제1 임계 전압 검증 레벨들 중 대응하는 검증 레벨들보다 높은 제2 임계 전압 검증 레벨들을 이용하여 프로그래밍되는 것을 특징으로 하는 비활성 저장매체 동작방법.
  6. 제1항에 있어서,
    상기 초기 프로그래밍과 상기 재 프로그래밍은 다수의 비활성 저장 소자가 배열된 블록에 대해 실행되는 것을 특징으로 하는 비활성 저장매체 동작방법.
  7. 제6항에 있어서,
    상기 재 프로그래밍이 상기 블록에 대해 완료되었는지를 나타내는 프로그래밍 상태 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 비활성 저장매체 동작방법.
  8. 제1항에 있어서,
    상기 다수의 비활성 저장 소자의 프로그래밍을 제어하는 적어도 하나의 회로가 대기 모드에 들어간 후 다른 시간들에서 상기 재 프로그래밍을 실행하는 것을 특징으로 하는 비활성 저장매체 동작방법.
  9. 제1항에 있어서,
    더 높은 우선 순위의 다른 펜딩 태스크가 없는 다른 시간들에서 재 프로그래밍을 실행하는 것을 특징으로 하는 비활성 저장매체 동작방법.
  10. 제1항에 있어서,
    더 높은 우선 순위의 다른 펜딩 태스크가 없을 때 상기 재 프로그래밍에서 상기 다수의 비활성 저장 소자의 일부를 프로그래밍하고, 이후 우선 순위가 더 높은 다른 태스크를 서비스하도록 상기 재 프로그래밍을 연기하고, 이후 우선 순위가 더 높은 다른 태스크가 다시 없을 때 상기 재 프로그래밍을 다시 시작하는 것을 특징으로 하는 비활성 저장매체 동작방법.
  11. 제1항에 있어서,
    상기 다수의 비활성 저장 소자는 각각 하나의 유닛으로 프로그래밍되는 다수의 데이터 페이지를 저장하고, 그리고
    상기 각 페이지에 대해서, 상기 페이지가 재 프로그래밍되어 있는지를 나타내는 프로그래밍 상태 정보가 저장되는 것을 특징으로 하는 비활성 저장매체 동작방법.
  12. 제1항에 있어서,
    상기 다수의 비활성 저장 소자는 한번에 한 페이지씩 데이터 페이지로 재 프로그래밍되고, 각 페이지는 하나의 유닛으로 프로그램 가능한 것을 특징으로 하는 비활성 저장매체 동작방법.
  13. 제1항에 있어서,
    상기 재 프로그래밍이 상기 다수의 비활성 저장 소자에 대해 완료되었는지를 나타내는 프로그래밍 상태 정보를 저장하는 단계를 더 포함하는 것을 특징으로 한는 비활성 저장매체 동작방법.
  14. 비활성 저장 시스템에 있어서,
    다수의 비활성 저장 소자; 그리고
    초기 프로그래밍에서 다수의 워드 라인 중 첫 번째 워드 라인에서 시작하여 다음의 각 워드 라인으로 순차적으로 마지막 워드 라인까지 진행하면서 상기 다수의 비활성 저장 소자를 프로그래밍하고, 그리고 초기 프로그래밍이 완료된 후 상기 다수의 워드 라인을 통해 상기 다수의 비활성 저장 소자를 재 프로그래밍하는 하나 이상의 회로를 포함하는 것을 특징으로 비활성 저장 시스템.
  15. 제14항에 있어서,
    상기 다수의 비활성 저장 소자는 상기 다수의 워드 라인 중 첫 번째 워드 라인에서 다시 시작하여 다음의 각 워드 라인으로 순차적으로 마지막 워드 라인까지 진행하여 재 프로그래밍되는 것을 특징으로 하는 비활성 저장 시스템.
  16. 제14항에 있어서,
    상기 하나 이상의 회로는 초기 프로그래밍에서 상기 다수의 워드 라인 중 특정 워드 라인에 연관된 비활성 저장 소자를 프로그래밍할 때 상기 다수의 워드 라인의 적어도 하나의 다른 워드 라인에 제1 패스 전압을 인가하고, 그리고 재 프로그래밍에서 상기 다수의 워드 라인 중 상기 특정 워드 라인에 연관된 비활성 저장 소자를 프로그래밍할 때 상기 다른 워드 라인에 상기 제1 패스 전압과 다른 제2 패스 전압을 인가하는 것을 특징으로 하는 비활성 저장 시스템.
  17. 제16항에 있어서,
    상기 제2 패스 전압은 상기 제1 패스 전압보다 높은 것을 특징으로 하는 비 활성 저장 시스템.
  18. 제14항에 있어서,
    상기 다수의 비활성 저장 소자는 상기 초기 프로그래밍에서 제1 임계 전압 검증 레벨들을 이용하여 프로그래밍되고, 그리고 상기 재 프로그래밍에서 상기 제1 임계 전압 검증 레벨들 중 대응하는 검증 레벨들보다 높은 제2 임계 전압 검증 레벨들을 이용하여 프로그래밍되는 것을 특징으로 하는 비활성 저장 시스템.
  19. 제14항에 있어서,
    상기 초기 프로그래밍과 상기 재 프로그래밍은 다수의 비활성 저장 소자가 배열된 블록에 대해 실행되는 것을 특징으로 하는 비활성 저장 시스템.
  20. 제19항에 있어서,
    상기 재 프로그래밍이 상기 블록에 대해 완료되었는지를 나타내는 프로그래밍 상태 정보가 저장되는 것을 특징으로 하는 비활성 저장 시스템.
  21. 제14항에 있어서,
    상기 재 프로그래밍은 적어도 하나의 회로가 대기 모드에 들어간 후 다른 시간들에서 실행되는 것을 특징으로 하는 비활성 저장 시스템.
  22. 제14항에 있어서,
    상기 재 프로그래밍은 더 높은 우선 순위의 다른 펜딩 태스크가 없는 다른 시간들에서 실행되는 것을 특징으로 하는 비활성 저장 시스템.
  23. 제14항에 있어서,
    상기 하나 이상의 회로는 더 높은 우선 순위의 다른 펜딩 태스크가 없을 때 상기 재 프로그래밍에서 상기 다수의 비활성 저장 소자의 일부를 프로그래밍하고, 이후 우선 순위가 더 높은 다른 태스크를 서비스하도록 상기 재 프로그래밍을 연기하고, 이후 우선 순위가 더 높은 다른 태스크가 다시 없을 때 상기 재 프로그래밍을 다시 시작하는 것을 특징으로 하는 비활성 저장 시스템.
  24. 제14항에 있어서,
    상기 다수의 비활성 저장 소자는 각각 하나의 유닛으로 프로그래밍되는 다수의 데이터 페이지를 저장하고, 그리고
    상기 각 페이지에 대해서, 상기 페이지가 재 프로그래밍되어 있는지를 나타내는 프로그래밍 상태 정보가 저장되는 것을 특징으로 하는 비활성 저장 시스템.
  25. 제14항에 있어서,
    상기 다수의 비활성 저장 소자는 한번에 한 페이지씩 데이터 페이지로 재 프로그래밍되고, 각 페이지는 하나의 유닛으로 프로그램 가능한 것을 특징으로 하는 비활성 저장 시스템.
  26. 제14항에 있어서,
    상기 재 프로그래밍이 상기 다수의 비활성 저장 소자에 대해 완료되었는지를 나타내는 프로그래밍 상태 정보가 저장되는 것을 특징으로 하는 비활성 저장 시스템.
  27. 제14항에 있어서,
    상기 다수의 비활성 저장 소자는 다중-레벨 저장 소자로 구성되는 것을 특징으로 하는 비활성 저장 시스템.
  28. 제14항에 있어서,
    상기 다수의 비활성 저장 소자는 NAND 스트링으로 배열되는 것을 특징으로 하는 비활성 저장 시스템.
KR1020087023383A 2006-06-22 2007-05-25 임계 전압의 치밀한 분포가 가능한 비휘발성 메모리의 비 실시간 재 프로그래밍 방법 KR101075253B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/425,790 2006-06-22
US11/425,794 2006-06-22
US11/425,790 US7486561B2 (en) 2006-06-22 2006-06-22 Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US11/425,794 US7489549B2 (en) 2006-06-22 2006-06-22 System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages

Publications (2)

Publication Number Publication Date
KR20090007298A true KR20090007298A (ko) 2009-01-16
KR101075253B1 KR101075253B1 (ko) 2011-10-20

Family

ID=38834212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087023383A KR101075253B1 (ko) 2006-06-22 2007-05-25 임계 전압의 치밀한 분포가 가능한 비휘발성 메모리의 비 실시간 재 프로그래밍 방법

Country Status (6)

Country Link
EP (1) EP2030205B1 (ko)
JP (1) JP4994447B2 (ko)
KR (1) KR101075253B1 (ko)
AT (1) ATE515771T1 (ko)
TW (1) TWI337746B (ko)
WO (1) WO2007149677A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675415B2 (en) 2010-05-17 2014-03-18 Samsung Electronics Co., Ltd Nonvolatile memory device having selectable sensing modes, memory system having the same and programming method thereof
KR20150000572A (ko) * 2013-06-25 2015-01-05 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
US9378824B2 (en) 2014-09-17 2016-06-28 SK Hynix Inc. Memory system and operation method thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITRM20080114A1 (it) * 2008-02-29 2009-09-01 Micron Technology Inc Compensazione della perdita di carica durante la programmazione di un dispositivo di memoria.
US7924614B2 (en) 2009-01-19 2011-04-12 Macronix International Co., Ltd. Memory and boundary searching method thereof
US8504759B2 (en) * 2009-05-26 2013-08-06 Micron Technology, Inc. Method and devices for controlling power loss
JP2011159364A (ja) * 2010-02-02 2011-08-18 Toshiba Corp 不揮発性半導体記憶装置および不揮発性半導体記憶装置の駆動方法
JP2011198419A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 不揮発性半導体記憶装置およびその書き込み方法
JP2012190523A (ja) 2011-03-14 2012-10-04 Toshiba Corp 不揮発性半導体記憶装置
US9092320B2 (en) 2012-10-15 2015-07-28 Hitachi, Ltd. Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
JP6453718B2 (ja) * 2015-06-12 2019-01-16 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10460816B2 (en) 2017-12-08 2019-10-29 Sandisk Technologies Llc Systems and methods for high-performance write operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3930074B2 (ja) * 1996-09-30 2007-06-13 株式会社ルネサステクノロジ 半導体集積回路及びデータ処理システム
KR100257868B1 (ko) * 1997-12-29 2000-06-01 윤종용 노어형 플래시 메모리 장치의 소거 방법
JP3957985B2 (ja) * 2001-03-06 2007-08-15 株式会社東芝 不揮発性半導体記憶装置
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP3863485B2 (ja) * 2002-11-29 2006-12-27 株式会社東芝 不揮発性半導体記憶装置
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
US7212436B2 (en) * 2005-02-28 2007-05-01 Micron Technology, Inc. Multiple level programming in a non-volatile memory device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675415B2 (en) 2010-05-17 2014-03-18 Samsung Electronics Co., Ltd Nonvolatile memory device having selectable sensing modes, memory system having the same and programming method thereof
US9349466B2 (en) 2010-05-17 2016-05-24 Samsung Electronics Co., Ltd. Nonvolatile memory device having selectable sensing modes, memory system having the same and programming method thereof
KR20150000572A (ko) * 2013-06-25 2015-01-05 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
US9378824B2 (en) 2014-09-17 2016-06-28 SK Hynix Inc. Memory system and operation method thereof

Also Published As

Publication number Publication date
EP2030205B1 (en) 2011-07-06
WO2007149677A2 (en) 2007-12-27
EP2030205A2 (en) 2009-03-04
TWI337746B (en) 2011-02-21
WO2007149677A3 (en) 2008-05-22
TW200814084A (en) 2008-03-16
ATE515771T1 (de) 2011-07-15
JP4994447B2 (ja) 2012-08-08
JP2009541909A (ja) 2009-11-26
KR101075253B1 (ko) 2011-10-20

Similar Documents

Publication Publication Date Title
US7633802B2 (en) Non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7489549B2 (en) System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
KR101075253B1 (ko) 임계 전압의 치밀한 분포가 가능한 비휘발성 메모리의 비 실시간 재 프로그래밍 방법
EP1886319B1 (en) Starting program voltage shift with cycling of non-volatile memory
KR100952235B1 (ko) 비휘발성 메모리에서 프로그램 금지 방안들의 선택적인적용
KR100966357B1 (ko) 수정된 패스 전압들을 사용하여 프로그램 디스터브가감소한 비-휘발성 메모리를 프로그래밍하는 방법
KR100751579B1 (ko) 비휘발성 메모리 프로그래밍
KR101012129B1 (ko) 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍
EP2446443B1 (en) Forecasting program disturb in memory by detecting natural threshold voltage distribution
TWI451422B (zh) 非揮發性記憶體中改良讀取操作之程式化不同大小邊限及在選擇狀態補償感測之方法和系統
TWI389124B (zh) 於非揮發性記憶體中使用不同參考位準以改良感測之粗略/精細程式化確認方法及系統
KR101314306B1 (ko) 스마트 검증을 이용한 다중 상태 비휘발성 메모리프로그래밍 방법
JP2008535145A (ja) マルチレベルセル型フラッシュメモリに高位レベル状態をより迅速にプログラミングする方法
KR101016432B1 (ko) 타이밍 정보를 이용한 리버스 커플링 효과
JP2009533794A (ja) 読み出し中におけるプログラム外乱による影響の軽減
EP1958206B1 (en) Reducing read disturb for non-volatile storage

Legal Events

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

Payment date: 20141001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee