KR101134691B1 - 다중-레벨 비트 플래시 메모리 소거 알고리즘 - Google Patents

다중-레벨 비트 플래시 메모리 소거 알고리즘 Download PDF

Info

Publication number
KR101134691B1
KR101134691B1 KR1020077000365A KR20077000365A KR101134691B1 KR 101134691 B1 KR101134691 B1 KR 101134691B1 KR 1020077000365 A KR1020077000365 A KR 1020077000365A KR 20077000365 A KR20077000365 A KR 20077000365A KR 101134691 B1 KR101134691 B1 KR 101134691B1
Authority
KR
South Korea
Prior art keywords
sector
threshold voltage
memory cells
cells
erase
Prior art date
Application number
KR1020077000365A
Other languages
English (en)
Other versions
KR20070024707A (ko
Inventor
에드워드 흐시아
달린 해밀톤
파티마 바툴
마사토 호리케
Original Assignee
스펜션 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 스펜션 엘엘씨 filed Critical 스펜션 엘엘씨
Publication of KR20070024707A publication Critical patent/KR20070024707A/ko
Application granted granted Critical
Publication of KR101134691B1 publication Critical patent/KR101134691B1/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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3409Circuits or methods to recover overerased nonvolatile memory cells detected during erase verification, usually by means of a "soft" programming step

Landscapes

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

Abstract

3개 이상의 데이터 상태들(100, 200)을 갖는 다중-레벨 플래시 메모리 셀들(MLB)의 섹터를 하나의 데이터 상태(1000)로 소거하는 방법들(400)이 제공된다. 본 발명은 매우 조밀한 데이터 상태 분포들(300, 1000)을 달성하기 위해 2개 이상의 소거 단계들로 섹터를 반복적으로 소거하고(410, 440), 검증하며(416), 소프트 프로그램하며(420, 450), 그리고 프로그램하는(430) 상호작용(interactive) 섹터 소거 알고리즘(400)을 이용한다. 일 예에서, 이 알고리즘(400)은 제 1 단계에서 상호작용하는 소거, 소프트 프로그래밍 및 프로그래밍 펄스들을 이용하여 필수적으로 섹터의 모든 MLB 셀들을 중간 상태(410, 600) 및 대응하는 문턱 전압 값으로 소거한다. 이후에 제 2 단계에서(440, 450), 셀들의 원하는 최종 문턱 전압 값(1000)에 대응하는 최종 데이터 상태에 도달할 때까지, 이 알고리즘은 추가적인 상호작용하는 소거(440) 및 소프트 프로그래밍 펄스들(450)을 사용하여 섹터의 모든 MLB 셀들을 더 소거한다. 선택적으로, 이 알고리즘(400)은 후속 프로그래밍 동작들을 준비함에 있어서 섹터의 메모리 셀들을 조밀한 공통 소거 상태(1000)로 연속적으로 가져오는 유사한 동작들의 하나 이상의 추가적인 단계들을 포함할 수 있다. 본 방법의 일 양상에서, 이러한 단계들에 대해 선택된 실제 문턱 값들 및/또는 데이터 상태들은 사용자에 의해 사전에 결정되어 메모리 디바이스에 입력될 수 있다.
다중-레벨 플래시 메모리, 섹터 소거, 프로그래밍.

Description

다중-레벨 비트 플래시 메모리 소거 알고리즘{ERASE ALGORITHM FOR MULTI-LEVEL BIT FLASH MEMORY}
본 발명은 일반적으로 메모리 디바이스들 등에 관한 것으로서, 특히 플래시 메모리 디바이스들에서 다중-레벨 데이터 상태들을 갖는 셀들의 섹터들을 소거하는 방법에 관한 것이다.
컴퓨터들 및 유사한 타입의 시스템들을 위한 데이터를 저장하기 위한 많은 서로 다른 타입들 및 스타일들의 메모리가 존재한다. 예를 들어, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 판독 전용 메모리(ROM), 프로그램가능 판독 전용 메모리(PROM), 전기적으로 프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능한 프로그램가능 판독 전용 메모리(EEPROM) 및 플래시 메모리가 모두 데이터 저장에 현재 이용가능하다.
각 타입의 메모리는 자신의 특정 이점들 및 단점들을 갖는다. 예를 들어, DRAM 및 SRAM은 개별 데이터 비트들이 한 번에 하나씩 소거되게 하지만, 이러한 메모리는 전원이 제거되는 때에 그 데이터를 손실한다. 대안적으로, EEPROM은 추가적인 외부 장비없이 쉽게 소거될 수 있지만, 데이터 저장 밀도를 감소시켰으며, 보다 저속이며, 보다 고비용이 되었다. 대조적으로, EPROM은 보다 덜 비싸며, 보다 높은 밀도를 갖지만 소거가 용이하지 않다.
플래시 메모리는 대중적인 타입의 메모리가 되었는데, 이는 EPROM의 고밀도 및 저비용과 EEPROM의 전기적 소거가능성의 이점들을 결합시키기 때문이다. 플래시 메모리는 재기입될 수 있으며, 전원 없이 그 콘텐츠를 보유할 수 있으며, 이에 따라 비휘발성이다. 이는 핸드폰들, 휴대용 컴퓨터들, 보이스 레코더(voice recorder)들 등과 같은 많은 휴대용 전자 제품들뿐만 아니라 자동차들, 비행기들, 산업 제어 시스템들 등과 같은 많은 보다 대형의 전자 시스템들에서 사용된다.
플래시 메모리는 일반적으로 많은 메모리 셀들로 구성되는데, 여기서, 하나의 데이터 비트들은 각 메모리 셀들에 저장됨과 아울러 판독된다. 셀들은 일반적으로 핫 전자 주입에 의해 프로그램되며, 파울러-노드하임 터널링(Fowler-Nordheim tunneling) 또는 다른 메커니즘들에 의해 소거된다. 반도체 산업의 많은 양상들에서와 같이, 보다 높은 디바이스 패킹 밀도들을 달성함과 아울러 반도체 웨이퍼상의 메모리 셀들의 개수를 증가시키기 위한 계속적인 소망 및 노력이 있다. 유사하게, 또한 보다 많은 데이터가 보다 작은 메모리 디바이스들상에 저장되도록, 디바이스 속도 및 성능 향상이 요구된다.
개별 플래시 메모리 셀들은 개별적으로 어드레스가능한 유닛들 또는 그룹들로 조직화되는데, 이들은 판독, 프로그램, 또는 소거 동작들을 위해 어드레스 디코딩 회로를 통해 액세스된다. 전형적으로, 개별 메모리 셀들은 데이터 비트를 저장하도록 적응된 반도체 구조로 구성되며, 그리고 적절한 디코딩 및 그룹 선택 회로뿐만 아니라 동작중의 셀들에 전압들을 제공하는 회로를 포함한다.
소거, 프로그램, 및 판독 동작들은 메모리 셀의 일정한 단자들에 적절한 전압의 인가에 의해 일반적으로 수행된다. 소거 또는 기입 동작에서, 전하가 메모리 셀에서 제거 또는 저장되도록 적절한 전압들이 인가된다. 판독 동작에서, 전류가 셀에 흐르도록 적절한 전압들이 인가되는데, 이러한 전류량은 셀에 저장된 데이터 값을 표시한다. 메모리 디바이스는 내부에 저장된 데이터를 결정하기 위해 결과적인 셀 전류를 감지하는 적절한 회로를 포함하는데. 이는 이후에 메모리 디바이스가 이용되는 시스템의 다른 디바이스들에 의한 액세스를 위해 디바이스의 데이터 버스 단자들에 제공된다.
프로그래밍 회로는 제어 게이트로서 동작하는 워드라인에 신호를 인가함과 아울러 비트라인 연결들을 변경하여 비트가 소스 및 드레인 연결들에 의해 저장되게 함으로써 셀의 비트를 제어한다. 열 전자 주입과 같은 적합한 메커니즘을 이용한 셀의 프로그래밍은 일반적으로 셀의 문턱 전압을 증가시킨다. 소거는 블랭킷(blanket) 동작으로 수행되는데, 여기서, 셀들의 어레이 또는 섹터는 동시에 소거됨과 아울러 전형적으로 셀에 보다 낮은 문턱 전압을 발생시킬 수 있다.
플래시 메모리의 블랭킷 소거(blanket erasing)에서, 어레이 또는 섹터 내의 셀들은 전형적으로 동시에 소거되며, 하나 이상의 짧은 소거 펄스들의 인가에 의해 수행될 수 있다. 각 소거 펄스 이후에, 어레이의 각 셀이 지금 "소거되어"(블랭크) 있는지, 또는 아직 "비-소거(un-erased)" 또는 "부족-소거(under-erased)"인지(예를 들어, 셀이 소정의 한계 이상의 문턱 전압을 갖는지)가 결정되도록 소거 검증 또는 판독이 수행될 수 있다. 만일 부족-소거 셀이 검출되는 경우에, 모든 셀들이 충분히 소거될 때까지, 추가적인 소거 펄스가 전체 어레이에 인가될 수 있다. 그러나, 이러한 소거 과정에 있어서, 일부 셀들은 다른 셀들이 충분히 소거되기 이전에 "초과-소거(over-erased)"될 수 있다. 예를 들어, 소정의 한계 이하로 소거된 문턱 전압을 갖는 메모리 셀은 일반적으로 초과-소거되는 것으로 지칭될 수 있다. 여러 이유들로 인해, 메모리 셀이 초과-소거 상태에서 남아있는 것은 바람직하지 않다.
이용되는 플래시 아키텍처에 상관없이, 다중 레벨 플래시 셀들의 정확한 소거 및 프로그래밍은 특히 대응하는 Vt 레벨로부터 데이터 상태를 정확하게 판독하고 결정하도록 좁은 Vt 분포들을 유지하는 부수적인 복잡도들에 민감할 수 있다. 추가적으로, 심지어 다양한 다중 레벨들에 대해 이러한 좁은 분포들이 달성되는 경우에, 메모리 셀들의 섹터들이 수락가능한 한계들 내에서 신속하고, 효율적이며 신뢰성있게 소거될 수 없게 되면, 경쟁력 있는 이점은 거의 획득되지 않을 것이다.
상술한 내용의 견지에서, 다중-레벨 플래시 메모리 셀들의 섹터 또는 어레이를 소거하는 개선된 방법이 필요하다.
하기 내용은 본 발명의 일부의 양상들의 기본적인 이해를 제공하기 위한 본 발명의 간략화된 요약을 제시한다. 이러한 요약은 본 발명의 포괄적인 개관이 아니다. 본 발명의 중요 또는 핵심 요소들을 확인하거나 본 발명의 범주를 묘사하도록 의도되지 않는다. 오히려, 그 주요 목적은 이하에서 제시되는 보다 상세한 설명의 전주로서 간략화된 형태로 단순히 본 발명의 하나 이상의 사상들을 제시하는 것이다.
본 발명은 보다 조밀한 Vt 분포들을 달성하기 위해 2개 이상의 소거 단계들(또는 타이어들(tiers))로 섹터를 소거, 검증, 소프트 프로그램, 및 프로그램하는 상호작용하는(interactive) 섹터 소거 알고리즘을 적용함으로써 다중-레벨 비트 플래시 메모리 셀들(MLB)의 섹터 또는 어레이를 하나의 비트 상태(데이터 상태)로 소거한다. 이 알고리즘은 일부 전통적인 하나의 단계의 방법들로 획득가능한 것 이상의 개선된 시그마(sigma)를 갖는 Vt 분포들을 제공한다. 일 예에서, 이 알고리즘은 제 1 단계에서 상호작용하는 소거, 소프트 프로그래밍 및 프로그래밍 펄스들을 이용하여 섹터의 모든 MLB 셀들을 중간 문턱 전압 값에 대응하는 중간 상태로 소거한다. 제 1 단계는 메모리 셀들이 동일 논리 상태가 되며, 동일한 문턱 전압에 보다 가까워지도록 한다. 이후에, 제 2 단계에서, 알고리즘은 문턱 전압 레벨들의 분포를 최종 데이터 상태 주위에서 더욱 조밀하게 하는데에 사용된다. 본 발명의 제 2 단계에서, 알고리즘은 최종 데이터 상태에 대응하는 셀들의 원하는 최종 문턱 전압 값이 달성될 때까지 추가적인 상호작용하는 소거 및 소프트 프로그래밍 펄스들을 이용하여 다시 섹터의 모든 MLB 셀들을 소거한다.
본 발명의 다중-레벨 비트(MLB) 플래시 메모리 셀은 3개 이상의 데이터 상태들에 대응하는 3개 이상의 레벨들로 프로그램될 수 있는 하나의 물리적 비트를 포함할 수 있다. 대안적으로, MLB 셀은 각각이 4개와 같은 다중 레벨들로 프로그램될 수 있는 2개의 물리적으로 구별되는 비트들을 갖는 듀얼-비트 또는 미러(mirror)-비트 셀을 포함할 수 있는데, 여기서, 이후에 16개의 가능한 상태들이 이용가능하다. 상기 방법은 단일 비트 및 듀얼 비트 EEPROM을 포함하는 다양한 플래시 메모리 아키텍처들 및 전기적으로 소거될 수 있는 기타 이러한 단일 비트 또는 다중-비트 메모리 아키텍처들로 적합하게 수행될 수 있으며, 모든 이러한 셀 또는 변형물은 본 발명의 범주 내에 드는 것으로 여겨진다.
본 발명 알고리즘의 추가적인 양상은 메모리 셀들의 문턱 전압 분포들을 더 조밀하게 하는데에 사용될 수 있는 유사한 소거 및 소프트 프로그램 동작들의 추가적인 단계를 포함한다. 추가적인 단계에서, 제 2 중간 논리 상태가 중간 논리 상태와 최종 상태 사이에서 선택된다. 셀들이 중간 상태로 소거, 프로그래밍 및 소프트 프로그래밍된 이후에, 셀들은 제 2 중간 상태로 소거 및 소프트 프로그래밍되며, 이후에 최종적으로 유사한 방식으로 최종 데이터 상태로 된다. 임의의 개수의 이러한 중간 단계들이 본 방법에 이용될 수 있는데, 이는 MLB 메모리 셀들의 섹터 또는 어레이에 의해 이용되는 데이터 상태들의 총 개수를 포함한다.
이러한 방식으로, 메모리 셀들은 후속 프로그래밍 및 판독 동작들을 준비함에 있어서 좁은 Vt 분포를 갖는 공통 소거 상태로 소거된다. 방법의 일 양상에서, 이들 단계에 대해 선택된 실제 문턱 값들 및 데이터 상태들은 사용자에 의해 결정되어 메모리 디바이스에 입력될 수 있다.
본 발명의 일 방법 및 구현에서, 섹터의 메모리 셀들은 예를 들어, 각 4개의 문턱 전압 값들에 대응하는 4개의 데이터 상태들(L1, L2, L3 및 L4)을 갖는다. 상기 방법은 제 1 단계 동작에서 메모리 셀들을 L2 데이터 상태에 대응하는 중간 문턱 전압 값으로 소거하며, 이후에 제 2 단계 동작에서 메모리 셀들을 L1 데이터 상태에 대응하는 최종 문턱 전압 값으로 소거한다.
본 발명의 섹터 소거 알고리즘의 또 하나의 양상에 따르면, 메모리 셀들은 초기에 다양한 상태들로 프로그래밍된다. 본 발명의 또 하나의 양상은 전체 어레이를 포함하는 어레이의 다중 섹터들을 소거하는 방법을 제공한다. 본 발명은 디바이스 내구성 및 신뢰성 상태를 유지하면서 최소 소거 시간을 이용하여 양호하게 제어되는 낮은 시그마 Vt 분포를 산출하는 MLB 메모리 셀들의 어레이의 섹터를 소거하는 방법을 제공한다.
상기 목적 및 관련 목적들을 달성하기 위해, 하기의 설명 및 첨부 도면들은 본 발명의 일정한 예시적인 양상들 및 구현들을 상세히 제시한다. 이들은 본 발명의 하나 이상의 양상들이 이용될 수 있는 단지 몇가지 다양한 방식들을 나타낸다. 본 발명의 기타 양상들, 이점들 및 신규한 특성들은 첨부 도면들을 참조하여 고려하는 때에 하기의 본 발명의 상세한 설명으로부터 자명하게 될 것이다.
도 1은 본 발명의 일 양상에 따른 4 레벨 다중-레벨 셀의 Vt 분포이다.
도 2는 본 발명의 일 양상에 따른 8 레벨 다중-레벨 셀의 Vt 분포이다.
도 3은 도 1 및 2에서 도시된 바와 같은 본 발명의 양상에 따른 일 셀의 하나의 예시적인 레벨의 Vt 분포인데, 여기서, 상기 분포는 타겟 Vt 주위에서 중심화되며, 상위 및 하위 모집단(population) 바운더리 레벨들(boundary levels)을 갖는다.
도 4A는 본 발명의 일 양상에 따라 메모리 셀들을 상호동작으로 소거하기 위한 2 단계의 알고리즘을 포함하는 MLB 메모리 셀들의 섹터 또는 어레이를 소거하는 예시적인 방법을 도시하는 흐름도이다.
도 4B 내지 4F는 도 4A의 MLB 섹터 소거 방법에 따라 MLB 메모리 셀들의 섹터 또는 어레이를 소거하는 예시적인 방법의 다양한 부분들의 추가적인 상세사항들을 도시하는 흐름도들이다.
도 5는 본 발명의 방법에 의한 섹터 소거에 적합하게 될 수 있는 바와 같은 다양한 초기 논리 상태들 및 대응하는 Vt 레벨들로 프로그래밍된 MLB 메모리 셀들의 섹터 또는 어레이의 여러 예시적인 메모리 셀들의 Vt 레벨들의 플롯이다.
도 6 내지 10은 도 4A의 2 단계 알고리즘을 이용하여 본 발명의 MLB 섹터 소거 방법의 처리 단계들로부터 발생하는 도 5의 예시적인 메모리 셀들의 Vt 레벨들의 플롯이다.
본 발명의 하나 이상의 양상들은 도면들을 참조하여 설명되는데, 여기서, 동일 참조 번호는 전반적으로 전체에서 동일한 요소들을 가리키며, 다양한 구조들은 반드시 스케일에 맞게 도시될 필요가 없다. 하기의 설명에서, 설명을 위해, 수많은 특정 상세사항들은 본 발명의 하나 이상의 양상들의 철저한 이해를 제공하도록 제시된다. 그러나, 본 발명의 하나 이상의 양상들은 보다 적은 정도의 이러한 특정 세부사항들로 실시될 수 있다. 다른 경우들에서, 공지된 구조들 및 디바이스들이 본 발명의 하나 이상의 양상들의 설명을 용이하게 하도록 블록도 형태로 도시된다.
메모리 디바이스들의 밀도 개선은 메모리 용량의 증가를 가져온다. 밀도 및 그에 따른 용량은 메모리 디바이스들의 제조 비용 및 시장성에서 주요한 고려사항이며, 이는 직접적으로 반도체 칩상에 비트 정보를 저장하는데에 사용되는 면적과 관련된다. 밀도는 예를 들어, 소정의 크기 칩상에 보다 많은 메모리 셀 트랜지스터들을 수용하여 고밀도를 달성하기 위해 피쳐(feature) 크기를 축소함으로써 증가될 수 있다. 밀도를 증가시킴과 아울러 제조 비용들을 감소하기 위한 또 하나의 기법은 다중-레벨 셀 기술의 사용을 통한 것이다.
다중-레벨 셀들은 셀과 관련된 데이터 상태들 또는 가능한 논리 상태들의 개수를 증가시켜, 하나의 메모리 셀로 하여금 하나 이상의 데이터 비트에 대응하는 정보를 저장하게 함으로써 셀 밀도를 증가시킨다. 이것을 수행한 하나의 방식은 셀 당 복수의 데이터 상태들에 대응하는 복수의(셀 레벨들 및 상태들의 환경에서, 3개 이상의) 문턱 전압(Vt) 레벨들을 사용함으로써 된다. 이는 전통적인 플래시 메모리 셀들에서 사용되는 2개의 상태들 및 레벨들에 대비된다. 따라서, 일 예에서, 하나의 미러 비트 셀이 4개의 논리 상태들에 대응하는 4개의 Vt 레벨들에서 데이터의 2개의 물리적 비트들을 각각 저장할 수 있다. 그러나, 다중 레벨들을 갖는 셀들은, 특히 보다 많은 데이터 비트 양이 고려됨에 따라 Vt 레벨들의 분포를 양호하게 또는 조밀하게 유지하려 하는 것에 있어서 새로운 많은 문제들을 가져온다.
이러한 경향들의 결과로서, 특히 하나의 셀의 보다 높은 비트 용량들이 기대되는 때에, 이러한 다중-레벨 셀들의 레벨들의 정확한 소거 및 결정이 계속적으로 요구되고 있다. 따라서, 다중-레벨 메모리 셀들은 소거 동작들 시간 및 전력 소모를 저감시키기 위해 신속하고 효율적으로 소거될 필요가 있다. 이에 추가하여, 후속 프로그램 동작들이 또한 좁은 프로그램 Vt 분포들을 발생하게 됨을 보증하도록, 셀들은 양호하게 제어되는 좁은 소거 분포(조밀한 비트 콤팩트화)로 소거될 필요가 있다. 이러한 디바이스 요건들 및 문제들은 디바이스 피쳐들이 계속적으로 축소함과 아울러 메모리 셀들 밀도가 증가함에 따라 증가하게 될 것이다.
메모리 디바이스 제조업자들은 종종 특정 값들의 속도, 내구성, 신뢰성 및 다양한 동작 모드들 동안에 소모되는 전력을 보증한다. 이러한 디바이스 사양들 또는 동작 파라메터들은 디바이스가 의도된 대로 수행됨을 보증하기에 사용자에게 유익하다. 따라서, 본 발명의 목적은 적합한 MLB 플래시 메모리 셀들의 섹터 또는 어레이를 소거하는 방법을 제공하는 것인데, 이는 상술한 요건들을 달성하면서 또한 특정 값들의 속도, 내구성, 신뢰성 및 적용가능한 동작 모드들 동안에 소모되는 전력을 제공한다.
섹터 소거 알고리즘은 다중-레벨 플래시 메모리 셀들(MLB) 어레이의 특정 섹터 또는 복수의 섹터들을 하나의 데이터 상태로 소거하는데에 사용될 수 있다. 본 발명의 소거 알고리즘은 예를 들어, 2개 이상의 소거 단계들(또는 타이어들)에 적용될 수 있다. 이 알고리즘은 일부 전통적인 하나의 단계의 방법들에 비해 양호하게 제어되는 조밀한 Vt 분포들을 달성한다. 상기 방법은 단일 비트 및 듀얼 비트 EEPROM을 포함하는 다양한 플래시 메모리 아키텍처들 및 전기적으로 소거될 수 있는 기타 이러한 단일 비트 또는 다중-비트 메모리 아키텍처들에서 적합하게 수행될 수 있으며, 모든 이러한 셀 또는 변형물은 본 발명의 범주 내에 드는 것으로 여겨진다.
제 1 단계에서, 본 발명의 알고리즘은 섹터 또는 셀 그룹의 모든 MLB 셀들을 중간 문턱 전압 값에 대응하는 중간 상태로 소거하며, 이후에 상호작용하는 소거, 소프트 프로그램 및 프로그램 펄스들을 인가한다. 이 제 1 단계는 메모리 셀들이 동일한 논리 상태가 되며 동일한 문턱 전압에 보다 가깝게 되도록 한다. 이후에, 제 2 단계에서, 알고리즘은 문턱 전압 레벨들 분포를 최종 데이터 상태 주위로 더 조밀하게 하는데에 사용된다. 본 발명의 제 2 단계에서, 알고리즘은 셀들이 최종 데이터 상태에 대응하는 원하는 최종 문턱 전압 값을 달성할 때까지 추가적인 상호작용하는 소거, 및 소프트 프로그래밍 펄스들을 이용하여 다시 섹터의 모든 MLB 셀들을 소거한다.
우선 도 1을 참조하면, 본 발명의 일 양상에 따른 4 레벨 MLB 셀의 부호 없는 Vt 분포(100)가 도시된다. Vt 분포(100)는 4개의 개별 타겟 문턱 전압들 주위에서 중심화된 메모리 셀 문턱 전압들의 모집단을 표시한다. 각 타겟 문턱 전압은 레벨들(L1, L2, L3 및 L4) 각각에 의해 지정되는 Vt 값들의 범위를 차지한다. 이상적으로, 각 레벨은 상부 및 하부 한계들(예를 들어, Vt0, Vt1, Vt2, Vt3 및 Vt4) 사이에서 중심화될 것이다. 사용자에 의해 원해지는 바와 같이, 다양한 레벨들에 대응하는 바이너리 상태들이 임의적으로 할당(예를 들어, L1=11, L2=10, L3=01 및 L4=00, 또는 L1=00, L2=01, L3=10, 및 L4=11)될 수 있다. 분포(100)와 관련된 4 레벨 MLB 셀은 4개의 레벨들로 프로그래밍될 수 있는 하나의 물리적 비트들을 포함할 수 있거나, 대안적으로 각각이 4와 같은 다중 레벨들로 프로그래밍될 수 있는 2개의 물리적으로 구별되는 비트들을 갖는 듀얼-비트 또는 미러-비트 셀을 포함할 수 있는데, 여기서, 이후에 16개의 가능한 상태들이 이용가능하다.
본 발명의 방법은 임의의 포지티브 및 네거티브 Vt 분포들의 조합을 갖는 MLB 메모리 디바이스들에서 적합하게 수행된다. 예를 들어, 도 1에서, 본 발명의 방법은 Vt0, Vt4, 또는 기타 이러한 Vt 한계가 메모리 셀들의 제로(0) 전압 전위 또는 또 하나의 기준 전위로서 사용되는 지에 관계없이 동일하게 적용가능하다. 도 1의 4 레벨의, 단일-비트 메모리 셀의 예를 고려하는 때에, 본 발명의 방법은 제 1 단계 동작에서 초기에 L3 및 L4 데이터 상태들로 프로그래밍된 모든 메모리 셀들을 L2 데이터 상태에 대응하는 중간 문턱 전압 값으로 소거하는데에 사용될 수 있다. 이후에 제 2 동작 단계에서, 상기 방법은 하기에서 더욱 상세히 설명될 바와 같이 메모리 셀들을 L1 데이터 상태에 대응하는 최종 문턱 전압 값으로 소거하는데에 사용된다. 상기 예가 L1 레벨이 소거 상태에 대응하는 것임을 의미하는 것으로서 보이지만, L1, L4 또는 임의의 기타 레벨이 소거 상태를 나타낼 수 있다.
도 2는 본 발명의 일 양상에 따라 단일-비트 8 레벨 셀의 또 하나의 예시적인 부호 없는 Vt 분포(200)를 도시한다. 도 2의 Vt 분포(200)는 8개의 개별의 타겟 문턱 전압들 주위에서 중심화된 메모리 셀 문턱 전압들의 모집단을 나타낸다. 각 타겟 문턱 전압은 레벨들(L1 내지 L8)로 지정된 Vt 값들의 범위를 차지한다. 이상적으로, 각 레벨은 상위 및 하위 Vt 한계들(예를 들어, Vt0 내지 Vt8) 사이에서 중심화될 것이다. 사용자에 의해 원해지는 바와 같이, 바이너리 상태들(예를 들어, L1=111, L2=110, L3=101 내지 L8=000, 또는 L1=000, L2=001, L3=010 내지 L8=111)에 대응하는 다양한 레벨들이 임의적으로 할당될 수 있다. 다시, 어떠한 극성이 Vt 분포(200)에 할당되지 않는데, 이는 본 발명 방법이 임의의 포지티브 및 네거티브 Vt 분포들 모두의 조합을 갖는 MLB 메모리 디바이스들에서 적합하게 수행되기 때문이다. (2개의 물리적으로 구별되는 비트 위치들을 갖는) 듀얼-비트 셀이 이용되는 경우에, 8 레벨 셀이 64개의 이용가능한 데이터 상태들에 대응할 것이다.
도 3은 도 1 및 2에서 도시된 바와 같은 본 발명에 따라 다중-레벨 셀의 일 예시적인 레벨에서의 Vt 값들의 모집단의 Vt 분포들(300)을 도시한다. Vt 분포(300)의 예시적인 레벨(LX)은 이상적으로 상위 및 하위 모집단 바운더리 레벨들(LU 및 LL) 각각을 갖는 타겟(Vt)(타겟) 주위에서 중심화된다. Vt 값들의 모집단은 상위 및 하위 Vt 한계들(VtX-1 및 VtX) 사이에서 더 이상적으로 중심화되지만, 가변될 수 있다. 본 발명의 방법의 목적은 모집단 바운더리 레벨들(LU 및 LL)이 서로에 대해 더욱 가깝게 좁히거나 "조밀하게" 하는 것이다. 시그마(sigma)는 종종 이러한 모집단의 표준 편차를 기호화하는데에 사용되는데, 이는 모집단의 가변성의 척도이다. 따라서, 보다 작은 시그마가 모집단의 보다 좁은 가우시안 분포를 나타내는바, 이는 보다 많은 셀 문턱 전압들이 타겟 Vt(타겟)의 보다 근처에서 군집 되는 것으로 표시한다.
본 발명의 고안자들은, MLB 셀들로부터 예측가능하고 양호하게-제어되는 프로그램된 Vt 분포를 획득하기 위한 한가지 솔루션은 그룹 내의 모든 셀들을 우선 예측가능하게 잘 제어되는 소거된 Vt 분포를 갖는 공통 소거 상태가 되게하는 것임을 인식하게 되었다. 본 발명의 고안자들은 동작이 메모리 셀들의 특정 그룹상에서 수행되는 때마다, 그룹이 점차적으로 조밀하게 되거나 동일한 Vt 전위에 보다 가깝게 되도록 스스로 필터링하는 경향이 있음을 추가적으로 관찰하고 이해하게 되었다. 따라서, 본 발명자들은 2개 이상의 개별 Vt 레벨 값들 사이에서 2개 이상의 단계들로 셀들을 반복적으로 소거, 프로그래밍, 및 소프트 프로그래밍하는 상호작용하는 방법을 고안하였다. 이러한 반복 동작들은 점차적으로 셀 분포들로 하여금 셀들이 공통 데이터 상태로 좁혀지고 조밀하게 하는 경향이 있다.
예를 들어, 본 발명의 일 양상에서, 소거 동작들은 가장 느린 소거 비트들이 Vt<=LU 레벨에 일치하는것임을 보증하도록 사용되며, 프로그래밍 및 소프트 프로그래밍 동작들은 가장 느린 Vt 비트들이 Vt>=LL 레벨에 일치하는것임을 보증하도록 사용된다. 다른 말로 하면, 본 발명의 일 양상에서, 소거 동작들은 LU 바운더리에서 셀들의 Vt 모집단(Vt population)을 타겟 Vt(타겟) 값으로 감소시키는데에 사용될 수 있으며, 또 하나의 방법 양상에서, 프로그래밍 및 소프트 프로그래밍은 LL 바운더리에서 셀들의 Vt 모집단을 타겟 Vt(타겟) 값으로 증가시키는데에 사용될 수 있다. 결과적으로, 본 발명자들은, Vt 모집단의 시그마가 감소하며, 유익하게 Vt를 반대 방향들로 이동(예를 들어, 소거 동작 이후의 소프트 프로그램 동작, 이후의 소거 등)시키려고 시도하는 각각의 연속적인 교호 동작(successive alternate operation)으로 비트들을 조밀화한다는 것을 관찰하였다. 본 발명의 방법은 셀들의 Vt 분포 모집단이 각 연속적인 동작으로 타겟 Vt(타겟) 값으로 점차적으로 미세-조정된다는 점에서 연속적인 근사화 기법과 유사성이 있다. 결과적으로, 본 방법은 일부 기타 전통적인 하나의 단계의 방법들보다 빠르고 에너지 효율적일 수 있다.
적합한 플래시 MLB 플래시 메모리 셀들 어레이의 하나 이상의 섹터들 또는 그룹들에서 수행되는 섹터 또는 그룹 소거 알고리즘이 본 발명의 방법을 용이하게 한다. 본 발명의 알고리즘은 예를 들어, 2개 이상의 소거 단계들(또는 타이어들)에 적용될 수 있으며, 후속 프로그래밍 동작들의 개선을 위해 선택된 섹터(들)를 하나의 데이터 상태로 소거한다. 알고리즘은 다중-레벨 메모리 셀들의 양호하게 제어되는 조밀한 Vt 분포들을 달성함으로써, 결과적으로 소거 속도 및 효율성을 개선하면서, 보다 높은 디바이스 밀도 및 메모리 용량(memory capacity)을 갖게 한다. 본 발명의 소거 알고리즘 및 방법은 어레이의 각 섹터에 걸쳐 2개의 단계로 상호동작하도록 적용되며 균일하게 분산된다.
비록 상기 방법이 하기에서 일련의 동작들 또는 이벤트들로서 예시되고 설명되지만, 본 발명은 이러한 예시된 동작들 또는 이벤트들의 순서에 국한되지 않음이 이해될 것이다. 예를 들어, 일부 동작들은 상기 본원에서 예시된 것들 및/또는 설명된 것들 이외에 다른 동작들 또는 이벤트들과 다른 순서들로 그리고/또는 동시에 발생할 수 있다. 이에 추가하여, 모든 예시된 단계들이 본 발명의 하나 이상의 양상들에 따라 방법을 수행하는데에 요구되지 않을 수 있다. 더욱이, 하나 이상의 동작들은 하나 이상의 개별 동작들 또는 단계들로 수행될 수 있다.
도 4A는 본 발명에 따라 MLB 플래시 메모리 셀들의 섹터 또는 어레이를 소거하는 예시적인 방법(400)의 흐름도를 도시한다. 용어 "섹터"가 명세서에서 사용되는 때에, 이러한 용어는 셀들의 일 특정 그룹에 국한되는 것으로서 해석되지 않아야 하며, MLB 셀들의 임의의 그룹에 적용될 수 있음을 이해해야 한다. 도 4B 내지 4F는 도 4A의 MLB 섹터 소거 방법(400)의 다양한 동작들의 상세사항들의 흐름도들을 더 예시한다. 도 4B 내지 4F의 하기의 방법 설명 및 예들을 위해, 도 1의 것과 유사한 4 레벨 플래시 메모리 셀에서 L1은 블랭크 또는 소거 상태를 표시하며, L4는 최고 레벨을 표시하는 것으로 가정한다. 비록 L1이 본 예에서 소거 상태를 표시할 것이지만, 방법(400)은 MLB 메모리 셀들의 모든 레벨 할당들 및 Vt 분포 극성들에 대해 동작하며, 이러한 변형물들은 본 발명의 범주 내에 드는 것으로 여겨짐을 인식해야 한다.
예를 들어, 도 4A의 방법(400)은 본 발명에 따라 메모리 셀들을 상호작용으로 소거하기 위한 2 단계 알고리즘을 포함한다. 예를 들어, 방법(400)의 제 1 단계는 단계들(402, 410, 420 및 430)을 포함하며, 제 2 단계는 단계들(440, 450 및 460)을 포함한다. 방법(400)의 제 1 단계에서, 셀들은 필수적으로 중간 문턱 전압 값(IV)(예를 들어, 도 1의 4개의 레벨들 중 L2)으로 되며, 제 2 단계에서, 셀들은 최종 문턱 값(FV)으로 더 소거된다(L1이 소거 상태로서 사용되는 것으로 가정하면, 예를 들어, 도 1의 4개의 레벨들 중 L1).
예를 들어, MLB 섹터 소거 방법(400)의 제 1 단계는 (402)에서 시작하는데, 여기서, 섹터 또는 어레이의 서로 다른 부분들은 초기에 서로다른 레벨들로(예를 들어, 일부는 도 1의 L1, L2, L3 또는 L4 레벨들로) 프로그래밍될 수 있다. 단계(410)에서, 어레이의 선택된 섹터 또는 섹터들 내의 모든 메모리 셀들은 중간 값(IV)으로 소거된다. 도 4B의 동작(410)은 섹터의 모든 메모리 셀들이 적어도 중간 문턱 전압 값(IV)으로 소거된 것으로(예를 들어, 도 1의 모든 셀들을 L2로 소거한 때에, Vt<=IV) 단계(416)에서 결정될 때까지 단계(414)에서, 반복적으로 소거 펄스들을 섹터에 적용함으로써 섹터의 모든 메모리 셀들을 상호동작으로 소거 및 테스트하는 일 구현을 도시한다.
단계(420)에서, 단계(410)의 소거 동작으로부터 초과-소거 셀들은 최종 값(FV)으로 소프트 프로그램된다(예를 들어, 초과-소거 셀들을 도 1의 L1으로 소프트 프로그램한다). 도 4C의 동작(420)은 단계(424)에서, 선택된 셀이 초과-소거 되었는지(Vt<FV)를 반복적으로 검증하고, 이후에 단계(426)에서 소프트 프로그램 펄스를 아직 초과-소거된 셀에 인가하며, 그리고 단계(424)에서 다시 셀을 재검증함으로써 초과-소거 셀들을 최종 값으로 소프트 프로그램하는 일 예를 도시한다. 이 소프트-프로그램 및 검증 과정은 단계(428)에서, 모든 초과-소거들이 최종 값(FV)(도 1의 L1)으로 복원된 것으로 결정될 때까지 각 초과-소거 셀에서 반복적으로 계속된다.
단계(430)에서, 섹터의 모든 셀들이 하나의 상태로 되도록, 모든 잔여의 최종 값(FV)(예를 들어, L1)의 셀들이 중간 값(예를 들어, 도 1의 L2)으로 프로그램된다. 도 4D의 동작(430)은 (434)에서, 선택된 셀이 여전히 FV(Vt=FV)에 있는지를 반복적으로 검증하고, 이후에 셀이 FV(예를 들어, L1)에서 남아있는 경우에, (436)에서 프로그램 펄스를 인가하며, 그리고 (434)에서 셀을 재검증함으로써 모든 최종 값(FV) 셀들을 중간 값(IV)으로 프로그램하는 일 예를 도시한다. 이 프로그래밍 및 검증 과정은 (438)에서, 모든 FV 레벨 셀들이 중간 값(IV)(예를 들어, 도 1의 L2)으로 프로그램된 것으로 결정될 때까지 각 FV 레벨 셀에서 반복적으로 계속된다. 이 시점(즉, 제 1 단계의 종료)에서, 모든 셀들은 동일한 중간값 상태로 되며, 적당한 Vt 분포 시그마를 갖는다. 본 예에서, 용어 "최종 값 셀들"은 전체 섹터가 결국에 소거될 상태로 초기에 프로그래밍된 셀들을 지칭한다. 본 예에서, 이는 소거 방법(400)의 시작부에서 이미 L1으로 프로그램된 셀들에 대응한다.
MLB 섹터 소거 방법(400)의 제 2 단계에서, Vt 분포의 시그마는 더 개선될 것이다. 도 4A의 (440)에서, 어레이의 선택된 섹터 또는 섹터들 내의 모든 메모리 셀들은 다시 소거되며, 이번에는 최종 값(FV)(예를 들어, 도 1의 L1)으로 된다. 도 4E의 동작(440)은 (446)에서, 섹터의 모든 메모리 셀들이 적어도 최종 값(FV)으로 소거된 것으로(예를 들어, 모든 셀들을 도 1의 L1으로 소거하는 때에, Vt<=FV) 결정될 때까지 (444)에서 소거 펄스들을 섹터에 반복적으로 인가함으로써 섹터의 모든 메모리 셀들을 반복적으로 소거하고 테스트하는 일 예를 도시한다.
(450)에서, 다시 한번, (440)의 소거 동작으로부터의 초과-소거 셀들(예를 들어, Vt<FV)이 최종 값(FV)으로 복원되도록 소프트 프로그램된다(예를 들어, 초과-소거 셀들을 도 1의 L1으로 소프트 프로그램한다). 도 4F의 동작(450)은 (454)에서 선택된 셀이 초과-소거(Vt<FV)되었는지를 반복적으로 검증하고, 이후에 (456)에서 소프트 프로그램 펄스를 아직 초과-소거된 셀에 인가하며, 그리고 다시 (454)에서 셀을 재검증함으로써 초과-소거 셀들을 최종 값으로 소프트 프로그래밍하는 일 예를 도시한다. 이 소프트 프로그래밍 및 검증 과정은 (458)에서, 모든 초과-소거들이 최종 값(FV)(예를 들어, 도 1의 L1)으로 복원된 것으로 결정될 때까지 각 초과-소거 셀에서 반복적으로 계속된다. 이후에, 방법(400)은 (460)에서 종료되는데, 여기서, 어레이의 하나 이상의 섹터들의 모든 MLB 플래시 메모리 셀들은 동일한 데 이터 상태로 되며, 최종 값(FV) 주위에서 중심화된 소거 상태에서 좁은 Vt 모집단 분포 내로 들어가게 된다.
본 발명의 또다른 양상에 따르면, 방법(400)의 소거, 프로그램 및 소프트 프로그램 동작들에서 사용되는 다양한 전압들은 알고리즘의 추가적인 최적화 및 신속화와 비트들의 조밀화(compacting)를 위해 조정될 수 있다.
도 5는 본 발명의 방법에 의한 섹터 소거에 적합할 수 있는 바와 같은 다양한 초기 논리 상태들 및 대응하는 Vt 레벨들로 프로그램된 MLB 플래시 메모리 셀들의 섹터 또는 어레이의 여러 예시적인 메모리 셀들의 Vt 레벨들의 플롯이다. 도 6 내지 10은 예를 들어, 도 4A의 2 단계 알고리즘 및 방법(400)을 사용한 본 발명의 MLB 섹터 소거 방법의 다양한 처리 단계들로부터 발생된 도 5의 예시적인 메모리 셀들의 Vt 레벨들의 플롯들이다.
예를 들어, 도 5는 메모리 셀들의 섹터 또는 어레이의 서로 다른 부분들로부터의 6개의 메모리 셀들(Cell1, Cell2, Cell3, Cell4, Cell5, 및 Cell6)의 랜덤 선택 및 프로그래밍(500)을 도시한다. Cell들(1 내지 6)은 처음에, 예를 들어, 단일 비트 4-레벨 MLB 메모리 셀의 4개의 논리 상태들 중 하나에 대응하는 다양한 Vt 레벨들(예를 들어, 도 1의 L1, L2, L3 및 L4)로 프로그램된다. 도 5의 예에서 도시된 바와 같이, Cell1은 L4로, Cell2는 L4로, Cell3은 L3로, Cell4는 L2로, Cell5는 L1으로, 그리고 Cell6은 L1으로 프로그램된다.
도 6은 방법(400)의 제 1 단계의 소거 동작(410)의 결과들(600)을 도시하는데, 여기서, 하나 이상의 섹터들의 모든 셀들은 중간 문턱 전압 값(IV)(예를 들어, L2 레벨)으로 소거된다. 본 발명자들은 셀들이 전반적으로 자신이 기원한 레벨로 다소 비율적으로 소거되는 것임을 관찰하였다. 예를 들어, "상위" L4 레벨로부터 기원한 셀들은 전반적으로 L3, L2 및 L1 레벨들과 같은 "하위" 레벨들로부터 기원한 셀들보다 셀에 인가된 소거 펄스 및 전위에 의해 더욱 많이 변경될 것이다. 따라서, 도 6은 하나 이상의 소거 펄스들 이후에, 셀들이 "하향"으로 이동하였으며, L3 및 L4로부터 기원한 셀들이 L1 및 L2 레벨들로부터 기원한 것들보다 높은 퍼센트로 이동하였음을 보여준다.
변함없이, 하나 이상의 셀들(예를 들어, Cell2)은 조금 더 큰 포스트-소거(post-erase) 문턱 전압을 가질 수 있으며, 최종적으로 L2 레벨에 대응하는 데이터 상태에 도달하기 위해 보다 많은 소거 펄스들(또는 보다 많은 소거 전위)을 요구할 수 있다. 그러나, 소거 동작(410)이 거대한 동작이기 때문에, L1으로부터 기원한 Cell5 및 Cell6은 Cell2가 충분히 L2 레벨로 소거되기 이전에, 결과적으로 도 6에서 도시된 바와 같이 초과-소거(예를 들어, Vt<FV)될 수 있다. 이러한 셀들은 후속의 단계(420)에 의해 대처되는 바와 같이 초과-소거 상태를 보정하기 위해 일정한 레벨의 프로그래밍 및/또는 소프트 프로그래밍을 요구한다.
도 7은 도 4A 방법(400)의 제 1 단계의 소프트 프로그래밍 동작(420)의 결과들(700)을 도시한다. 예를 들어, 초과-소거 셀들(Cell5 및 Cell6)은 최종 값(FV)(예를 들어, 도 1의 L1)으로 복원되도록 소프트 프로그램된다(예를 들어, 도 4C 참조).
도 8은 도 4A 방법(400)의 제 1 단계의 프로그래밍 동작(430)의 결과들(800) 을 도시한다. (430)에서, 모든 잔여의 최종 값 FV 셀들(예를 들어, Cell3, Cell4, Cell5, Cell6을 포함하는 L1에서의 또는 L1 근처에서의 셀들)은 섹터의 모든 셀들이 하나의 상태(예를 들어, L2)로 되도록 중간 상태로 프로그래밍된다. 상술한 바와 같이, 이는 셀이 중간 값(IV)(예를 들어, 도 1의 L2)이 될 때까지 셀을 반복적으로 검증함과 아울러 프로그램 펄스들을 인가함으로써 수행될 수 있다. 이 시점(즉, 제 1 단계의 종료)에서, 모든 셀들은 도 8에서 도시된 바와 같이 동일한 중간값 상태로 되며, 적당한 Vt 분포 시그마를 갖게 된다.
도 9는 도 4A의 방법(400)의 제 2 단계의 제 2 소거 동작(440)의 결과들(900)을 도시한다. 제 2 단계에서, Vt 분포의 시그마는 더 개선된다(감소된다). (440)에서, 어레이(Cell1 내지 Cell6)의 선택된 섹터 또는 섹터들 내의 모든 메모리 셀들은 다시 소거되는데, 이번에는 최종 값(FV)(예를 들어, L1)으로 된다. 섹터의 모든 메모리 셀들은 모든 메모리 셀들이 적어도 최종 값(FV)(예를 들어, 도 1의 L1)으로 소거된 것으로 결정될 때까지 소거 펄스들의 반복적인 인가(예를 들어, 도 4E 참조)를 수신한다. 그러나, Cell 5가 나타내듯이, 만일 섹터의 다른 셀들보다 인가된 소거 전압들에 보다 민감하게 반응하는 경우에, 이는 다시 한번 셀이 초과-소거되게 할 수 있다.
도 10은 방법(400)의 제 2 단계의 제 2 소프트 프로그래밍 동작(450)의 결과들(1000)을 도시한다. (450)에서, (440)의 소거 동작으로부터의 초과-소거 셀들(예를 들어, Vt<FV)은 최종 값(FV)(예를 들어, L1)으로 복원되도록 다시 한번 소프트 프로그램된다. 예를 들어, Cell5가 셀이 최종 값(FV)(예를 들어, 도 1의 L1)으로 복원된 것으로 결정될 때까지 반복적으로 검증되고, 소프트 프로그램 펄스로 소프 트 프로그램되며, 그리고 재검증될 수 있다.
이후에, 방법(400)은 종료되는데, 어레이의 하나 이상의 섹터들의 모든 예시적인 MLB 플래시 메모리 셀들(Cell1 내지 Cell6)은 동일한 데이터 상태로 소거되며, 최종 값(FV)(예를 들어, L1) 주위에서 중심화된 소거 상태에서 좁은 Vt 모집단 분포 내에 들게 된다.
추가적인 단계들이 중간값(IV)과 최종 값(FV) 사이의 선택된 추가적인 중간 레벨값들 사이에서 사용될 수 있음을 주목해야 한다. 예를 들어, 8-레벨 MLB 메모리 셀들이 사용된 경우에, 제 1의 IV는 L6에서, 제 2의 IV는 L4에서, 제 3의 IV는 L2에서, 그리고 최종 값(FV)은 L1에서 설정될 수 있다. 또 하나의 예에서, 8-레벨 MLB 메모리 셀들이 사용된 경우에, 소거 상태로서 제 1의 IV는 L3에서, 제 2의 IV는 L5에서, 그리고 최종 값(FV)은 L6에서 설정될 수 있다.
비록 본 발명이 하나 이상의 구현들에 관하여 도시되고 설명되었지만, 등가의 변화들 및 변형들은 본 명세서 및 첨부 도면들을 읽고 이해함으로써 기술분야의 당업자들에게 자명하게 될 것이다. 본 발명은 모든 이러한 변형들 및 변화들을 포함하며, 그리고 본 발명은 하기의 청구범위의 범주에 의해서만 한정된다. 특히, 상술한 구성요소들(어셈블리들, 디바이스들, 회로들 등)에 의해 수행되는 다양한 기능들에 관하여, 이러한 구성요소들을 설명하는데에 사용되는 용어들("수단"에 대한 참조를 포함함)은 이와 달리 표시되지 않는 한, 상술한 구성요소의 특정 기능을 수행하는(즉, 기능적으로 등가인) 임의의 구성요소(비록, 본 발명의 상술한 예시적인 구현들의 기능을 수행하는 개시된 구조와 기능적으로 등가하지는 않지만은)에 대응하는 것으로 의도된다. 이에 추가하여, 본 발명의 특징적인 특성이 여러 구현들 중 하나에만 관하여 설명되었지만, 이러한 특성은 임의의 소정의 또는 특정 응용에 대해 원해지며 유익한 바와 같이 기타 구현들의 하나 이상의 특성들과 결합될 수 있다. 더욱이, 용어들 "구성되는", "구비하는", "~을 갖는", 또는 그 변형물들이 상세한 설명 또는 청구범위에서 사용되는 범위에 관하여, 이러는 용어들은 용어 "포함하는"과 유사한 방식인 포괄적인 것으로 의도된다.
상기 시스템들 및 방법들은 다중-레벨 데이터 상태들을 갖는 플래시 메모리 디바이스들의 셀들의 섹터들을 소거하는 방법을 제공하도록 반도체 제조 분야에서 이용될 수 있다.

Claims (10)

  1. 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법 - 여기서 상기 메모리 셀들은 동작시, 상호작용(interactive) 섹터 소거 알고리즘(400) 이용하여 상기 메모리 셀들을 구동하는 메모리 셀 구동 회로와 연결되고, 3개 이상의 문턱 전압(threshold voltage) 값들(100, 200)에 대응하는 3개 이상의 데이터 상태들(100, 200)을 가지며 - 으로서,
    상기 상호작용 섹터 소거 알고리즘(400)에 따라 상기 메모리 셀 구동회로가,
    상기 메모리 셀들의 섹터에 대해, 상기 섹터의 모든 셀들이 중간값(intermediate value)에 대응하는 문턱 전압으로 소거될 때까지 블록 소거 동작을 수행하는 단계(410)와;
    상기 섹터의 초과-소거(over-erased) 메모리 셀에 대해, 상기 초과-소거 메모리 셀의 문턱 전압이 최종 값(final value)에 대응할 때까지 소프트 프로그래밍 동작을 수행하는 단계(420)와;
    상기 최종 값에 대응하는 문턱 전압에 있는 것으로 결정된 섹터의 메모리 셀들을, 상기 메모리 셀들의 상기 문턱 전압이 상기 중간값에 대응할 때까지 프로그래밍하는 단계(430)와;
    상기 섹터의 모든 셀들이 상기 최종 값에 대응하는 상기 문턱 전압으로 소거될 때까지, 상기 섹터에 대해 상기 블록 소거 동작을 재수행하는 단계(440)와; 그리고
    상기 최종 값에 대응하는 상기 문턱 전압에 도달할 때까지, 상기 섹터의 초과-소거 메모리 셀에 대해 소프트 프로그래밍 동작을 재수행하는 단계(450)를 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  2. 제 1항에 있어서, 상기 메모리 셀들의 섹터에 대해 상기 섹터의 모든 셀들이 중간값에 대응하는 문턱 전압으로 소거될 때까지 블록 소거 동작을 수행하는 단계(410)는,
    상기 메모리 셀들의 문턱 전압이 상기 중간값에 대응하는지를 식별함으로써 상기 메모리 셀들의 블록 소거 동작을 검증하는 단계(416)와; 그리고
    상기 섹터의 모든 셀들이 상기 중간값에 대응하는 문턱 전압을 갖는 것으로 결정될 때까지, 상기 메모리 셀들의 섹터에 대해 상기 블록 소거 동작을 재수행하는 단계(414)를 더 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  3. 제 2항에 있어서, 상기 블록 소거 동작을 검증하는 단계(416)는, 상기 섹터의 각 메모리 셀들의 비트들에 대응하는 문턱 전압 값들을 측정함과 아울러 상기 측정된 문턱 전압 값들과 최소의 소거 문턱 전압 값을 비교함으로써, 소거된 메모리 셀들을 식별하는 단계를 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  4. 제 1항에 있어서, 상기 섹터의 초과-소거 메모리 셀에 대해 상기 초과-소거 메모리 셀의 문턱 전압이 최종 값에 대응할 때까지 소프트 프로그래밍 동작을 수행하는 단계(420)는,
    상기 섹터에서 초과-소거 메모리 셀을 식별하는 단계(424)와;
    상기 초과-소거 메모리 셀에 대해 소프트 프로그래밍 동작을 수행하는 단계(426)와;
    상기 초과-소거 메모리 셀의 문턱 전압이 상기 최종 값에 대응하는지를 식별함으로써 상기 초과-소거 메모리 셀의 상기 소프트 프로그래밍 동작을 검증하는 단계(424)와; 그리고
    상기 섹터의 초과-소거 메모리 셀이 상기 최종 값에 대응하는 문턱 전압을 갖는 것으로 결정될 때(428)까지, 상기 초과-소거 메모리 셀에 대해 상기 소프트 프로그래밍 동작을 재수행하는 단계(426)를 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  5. 제1 항에 있어서, 상기 최종 값에 대응하는 문턱 전압에 있는 것으로 결정된 섹터의 메모리 셀들을 상기 메모리 셀들의 상기 문턱 전압이 상기 중간값에 대응할 때까지 프로그래밍하는 단계(430)는,
    상기 최종 값에 대응하는 문턱 전압을 갖는 상기 섹터 내의 잔여 메모리 셀들의 그룹을 식별하는 단계(434)와;
    상기 최종 값에 대응하는 문턱 전압에 있는 것으로 결정되는 상기 섹터의 모든 잔여 메모리 셀들을 프로그래밍하는 단계(436)와;
    상기 메모리 셀들의 문턱 전압이 상기 중간값에 대응하는지를 식별함으로써 상기 메모리 셀들의 프로그래밍 동작을 검증하는 단계(434)와; 그리고
    상기 최종 값에 대응하는 문턱 전압에 있는 것으로 결정된 상기 섹터의 상기 잔여 메모리 셀들을, 상기 메모리 셀들이 상기 중간값에 대응하는 문턱 전압을 갖는 것으로 결정될 때까지(438) 재프로그래밍하는 단계(436)를 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  6. 제 1항에 있어서, 상기 섹터의 모든 셀들이 상기 최종 값에 대응하는 상기 문턱 전압으로 소거될 때까지 상기 섹터에 대해 상기 블록 소거 동작을 재수행하는 단계(440)는,
    상기 메모리 셀들의 문턱 전압이 상기 최종 값에 대응하는지를 식별함으로써 상기 메모리 셀들의 블록 소거 동작을 검증하는 단계(446)와; 그리고
    상기 섹터의 모든 셀들이 상기 최종 값에 대응하는 문턱 전압을 갖는 것으로 결정될 때까지, 상기 메모리 셀들의 섹터에 대해 상기 블록 소거 동작을 재수행하는 단계(444)를 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  7. 제 1항에 있어서, 상기 최종 값에 대응하는 상기 문턱 전압에 도달할 때까지 상기 섹터의 초과-소거 메모리 셀에 대해 소프트 프로그래밍 동작을 재수행하는 단계(450)는,
    상기 초과-소거 메모리 셀들의 문턱 전압이 상기 최종 값에 대응하는지를 식별함으로써 상기 초과-소거 메모리 셀들의 상기 소프트 프로그래밍 동작을 검증하는 단계(454)와; 그리고
    상기 섹터의 초과-소거 메모리 셀들이 상기 최종 값에 대응하는 문턱 전압을 갖는 것으로 결정될 때(458)까지, 상기 초과-소거 메모리 셀들에 대해 상기 소프트 프로그래밍 동작을 재수행하는 단계(456)를 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  8. 제 1항에 있어서, 상기 중간 문턱 전압 값 및 최종 문턱 전압 값 각각은 3개 이상의 문턱 전압 값들(100, 200)에 대응하는 3개 이상의 데이터 상태들 중 하나에 대응하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  9. 제 1항에 있어서, 추가적인 비트 조밀화를 제공하기 위해, 상기 메모리 셀들의 문턱 전압이 상기 중간 문턱 전압 값과 최종 문턱 전압 값 사이의 하나 이상의 추가적인 문턱 전압 값들(100, 200)이 되도록, 상기 메모리 셀들에 대한 추가적인 소거(410) 및 소프트 프로그래밍(420) 동작들을 더 포함하는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
  10. 제 1항에 있어서, 상기 중간 문턱 전압 값 및 최종 문턱 전압 값은 메모리 디바이스 사용자에 의해 사전에 결정되는 것을 특징으로 하는 메모리 셀들의 섹터를 단일 데이터 상태(1000)가 되게 소거하는 방법(400).
KR1020077000365A 2004-06-10 2005-02-11 다중-레벨 비트 플래시 메모리 소거 알고리즘 KR101134691B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/864,947 US7251158B2 (en) 2004-06-10 2004-06-10 Erase algorithm for multi-level bit flash memory
US10/864,947 2004-06-10
PCT/US2005/004539 WO2006001850A1 (en) 2004-06-10 2005-02-11 Erase algorithm multi-level bit flash memory

Publications (2)

Publication Number Publication Date
KR20070024707A KR20070024707A (ko) 2007-03-02
KR101134691B1 true KR101134691B1 (ko) 2012-04-09

Family

ID=34960907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077000365A KR101134691B1 (ko) 2004-06-10 2005-02-11 다중-레벨 비트 플래시 메모리 소거 알고리즘

Country Status (8)

Country Link
US (1) US7251158B2 (ko)
JP (1) JP4630902B2 (ko)
KR (1) KR101134691B1 (ko)
CN (1) CN1965371A (ko)
DE (1) DE112005001325B4 (ko)
GB (1) GB2430291B (ko)
TW (1) TWI363345B (ko)
WO (1) WO2006001850A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100705220B1 (ko) * 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
DE602006009662D1 (de) * 2006-08-24 2009-11-19 St Microelectronics Srl Verfahren zur Einengung der Schwellspannungsverteilung gelöschter Flash-Speicherzellen während Schreiboperationen
WO2008033693A2 (en) * 2006-09-12 2008-03-20 Sandisk Corporation Non-volatile memory and method for linear estimation of initial programming voltage
US7593259B2 (en) 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
US7986553B2 (en) * 2007-06-15 2011-07-26 Micron Technology, Inc. Programming of a solid state memory utilizing analog communication of bit patterns
KR100885784B1 (ko) * 2007-08-08 2009-02-26 주식회사 하이닉스반도체 불휘발성 메모리 장치의 소프트 프로그램 방법
CN101430935B (zh) * 2007-11-08 2011-03-23 中芯国际集成电路制造(上海)有限公司 闪存中过擦除存储单元的检测方法
US7852680B2 (en) * 2008-01-22 2010-12-14 Macronix International Co., Ltd. Operating method of multi-level memory cell
KR101391361B1 (ko) * 2008-01-28 2014-05-07 삼성전자주식회사 플래시 메모리 장치 및 그것의 소거 방법
US7907455B2 (en) * 2008-09-22 2011-03-15 Spansion Llc High VT state used as erase condition in trap based nor flash cell design
US7881105B2 (en) * 2008-09-22 2011-02-01 Spansion Llc Quad+bit storage in trap based flash design using single program and erase entity as logical cell
US8004888B2 (en) * 2008-09-22 2011-08-23 Spansion Llc Flash mirror bit architecture using single program and erase entity as logical cell
US7864596B2 (en) * 2008-09-22 2011-01-04 Spansion Llc Sector configure registers for a flash device generating multiple virtual ground decoding schemes
US7804713B2 (en) * 2008-09-22 2010-09-28 Spansion Llc EEPROM emulation in flash device
US7791954B2 (en) * 2008-09-22 2010-09-07 Spansion Llc Dynamic erase state in flash device
US8098530B2 (en) * 2008-11-14 2012-01-17 Micron Technology, Inc. Systems and methods for erasing a memory
US8228727B2 (en) * 2009-11-20 2012-07-24 Macronix International Co., Ltd. Method for programming multi-level cell and memory apparatus
KR101821604B1 (ko) * 2011-07-25 2018-01-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US9588883B2 (en) 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
US8737132B2 (en) * 2012-01-06 2014-05-27 Sandisk Technologies Inc. Charge cycling by equalizing the source and bit line levels between pulses during no-verify write operations for NAND flash memory
US8737139B2 (en) 2012-04-11 2014-05-27 Micron Technology, Inc. Determining soft data for combinations of memory cells
CN103425587B (zh) * 2012-05-18 2016-12-14 北京兆易创新科技股份有限公司 一种非易失性存储器的擦写方法及擦写装置
KR102140512B1 (ko) 2013-10-16 2020-08-03 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 시스템 및 불휘발성 메모리 시스템의 동작 방법
US9461623B2 (en) 2014-05-15 2016-10-04 Macronix International Co., Ltd. Method and circuit for temperature dependence reduction of a RC clock circuit
KR102274280B1 (ko) * 2015-06-22 2021-07-07 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
US10128794B2 (en) 2016-09-29 2018-11-13 Macronix International Co., Ltd. Feedback compensated oscillator
JP6951852B2 (ja) 2017-03-27 2021-10-20 古河電気工業株式会社 光ファイバ及び光ファイバの製造方法
US10991433B2 (en) * 2019-09-03 2021-04-27 Silicon Storage Technology, Inc. Method of improving read current stability in analog non-volatile memory by limiting time gap between erase and program
KR102644830B1 (ko) * 2021-10-20 2024-03-08 한양대학교 산학협력단 다치화를 구현한 3차원 플래시 메모리 및 그 동작 방법
WO2023068833A1 (ko) * 2021-10-20 2023-04-27 한양대학교 산학협력단 3차원 플래시 메모리 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11273374A (ja) 1998-01-22 1999-10-08 St Microelectronics Srl メモリ装置とくにアナログおよび多重レベルのフラッシュeeprom装置における制御された消去方法
JP2001307492A (ja) 2000-04-24 2001-11-02 Samsung Electronics Co Ltd 不揮発性半導体メモリ装置の消去方法
JP2003162896A (ja) 2001-09-12 2003-06-06 Toshiba Corp 半導体集積回路装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07320488A (ja) * 1994-05-19 1995-12-08 Hitachi Ltd 一括消去型不揮発性記憶装置とその消去方法
US5953255A (en) * 1997-12-24 1999-09-14 Aplus Flash Technology, Inc. Low voltage, low current hot-hole injection erase and hot-electron programmable flash memory with enhanced endurance
US6711065B2 (en) * 1999-09-30 2004-03-23 Infineon Technologies Ag 1 T flash memory recovery scheme for over-erasure
US6628544B2 (en) * 1999-09-30 2003-09-30 Infineon Technologies Ag Flash memory cell and method to achieve multiple bits per cell
JP2001357680A (ja) * 2000-06-15 2001-12-26 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置のデータ消去方法
JP4559606B2 (ja) * 2000-09-28 2010-10-13 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
US6621741B2 (en) * 2002-01-30 2003-09-16 Fujitsu Limited System for programming verification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11273374A (ja) 1998-01-22 1999-10-08 St Microelectronics Srl メモリ装置とくにアナログおよび多重レベルのフラッシュeeprom装置における制御された消去方法
JP2001307492A (ja) 2000-04-24 2001-11-02 Samsung Electronics Co Ltd 不揮発性半導体メモリ装置の消去方法
JP2003162896A (ja) 2001-09-12 2003-06-06 Toshiba Corp 半導体集積回路装置

Also Published As

Publication number Publication date
TWI363345B (en) 2012-05-01
JP2008503028A (ja) 2008-01-31
WO2006001850A1 (en) 2006-01-05
GB0623569D0 (en) 2007-01-03
DE112005001325T5 (de) 2012-02-09
US7251158B2 (en) 2007-07-31
CN1965371A (zh) 2007-05-16
TW200615950A (en) 2006-05-16
GB2430291A (en) 2007-03-21
KR20070024707A (ko) 2007-03-02
US20050276120A1 (en) 2005-12-15
DE112005001325B4 (de) 2013-10-17
GB2430291B (en) 2008-02-13
JP4630902B2 (ja) 2011-02-09

Similar Documents

Publication Publication Date Title
KR101134691B1 (ko) 다중-레벨 비트 플래시 메모리 소거 알고리즘
US7599223B2 (en) Non-volatile memory with linear estimation of initial programming voltage
JP4646534B2 (ja) 不揮発性メモリの振舞いに基づくプログラミング
US7369440B2 (en) Method, circuit and systems for erasing one or more non-volatile memory cells
US7453731B2 (en) Method for non-volatile memory with linear estimation of initial programming voltage
US7038950B1 (en) Multi bit program algorithm
US7558115B2 (en) Program method of flash memory device
JP3860573B2 (ja) ブロック消去機能を有する不揮発性メモリ
US7606091B2 (en) Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US6055184A (en) Semiconductor memory device having programmable parallel erase operation
EP2062265B1 (en) Non-volatile memory and method for reduced erase/write cycling during trimming of initial programming voltage
US6700820B2 (en) Programming non-volatile memory devices
US7606077B2 (en) Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US8023330B2 (en) Method of erasing a nonvolatile memory device
EP2074626B1 (en) Non-volatile memory and method for linear estimation of initial programming voltage
JP2005506653A (ja) メモリセルを消去するための方法
US20110255341A1 (en) Programming methods for a memory device
EP1527458A1 (en) A system and method for erase voltage control during multiple sector erase of a flash memory device
JPH1196774A (ja) 不揮発性半導体メモリセルのデータ書き込み方法
CN113892141A (zh) 存储器、存储器的编程方法及编程验证方法、存储器系统
US20240071533A1 (en) Adaptive gidl voltage for erasing non-volatile memory
US20240029804A1 (en) Adaptive fail bits threshold number for erasing non-volatile memory
US6282125B1 (en) Method for erasing and rewriting non volatile memory cells and particularly flash cells
US6370065B1 (en) Serial sequencing of automatic program disturb erase verify during a fast erase mode

Legal Events

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

Payment date: 20160504

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee