KR20090018027A - 개선된 프로그래밍 속도를 위해 프로그램 전압의 함수로서 프로그램 시간 조절 - Google Patents

개선된 프로그래밍 속도를 위해 프로그램 전압의 함수로서 프로그램 시간 조절 Download PDF

Info

Publication number
KR20090018027A
KR20090018027A KR1020087025529A KR20087025529A KR20090018027A KR 20090018027 A KR20090018027 A KR 20090018027A KR 1020087025529 A KR1020087025529 A KR 1020087025529A KR 20087025529 A KR20087025529 A KR 20087025529A KR 20090018027 A KR20090018027 A KR 20090018027A
Authority
KR
South Korea
Prior art keywords
program
pulses
charge
charge pump
programming
Prior art date
Application number
KR1020087025529A
Other languages
English (en)
Other versions
KR101312503B1 (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/392,265 external-priority patent/US7327608B2/en
Priority claimed from US11/391,811 external-priority patent/US7330373B2/en
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20090018027A publication Critical patent/KR20090018027A/ko
Application granted granted Critical
Publication of KR101312503B1 publication Critical patent/KR101312503B1/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
    • 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/32Timing circuits

Landscapes

  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)

Abstract

비휘발성 메모리 시스템에서, 프로그램 펄스에 대해 할당된 프로그래밍 기간은 전하 저장소자를 요구되는 임계전압으로 프로그램하는데 요구되는 반복적인 펌프 펄스들의 총 수가 감소되도록 요구되는 펌프 펄스의 전압 레벨의 함수로서 조절된다. 예를 들면, 프로그래밍 기간은 요구되는 펌프 펄스의 전압 레벨에 증가에 따라 증가될 수 있다. 이것은 요망되는 프로그래밍 전압에 도달하게 보다 높은 진폭 프로그램 펄스들에 대해 요구되는 증가된 충전시간을 보상하는 값까지 프로그램 펄스의 프로그래밍 기간이 증가될 수 있게 한다.

Description

개선된 프로그래밍 속도를 위해 프로그램 전압의 함수로서 프로그램 시간 조절{PROGRAM TIME ADJUSTMENT AS FUNCTION OF PROGRAM VOLTAGE FOR IMPROVED PROGRAMMING SPEED}
이 발명은 일반적으로 비휘발성 메모리 시스템들에 관한 것으로, 특히 프로그래밍 시간 제어를 구비한 비휘발성 메모리 시스템에 관한 것이다.
비휘발성 메모리의 메모리 셀들 혹은 전하저장 소자들(두 용어들이 여기에서는 상호교환적으로 사용된다)은 전형적으로 부분적인 혹은 완전한 한 로우(row)의 셀들이 병렬로 한번에 프로그램된다. 프로그래밍 전압펄스들은 한 로우의 선택된 셀들 각각의 임계전압이 프로그래밍 사이클에서 소정의 전압 범위(셀의 최종 요망되는 상태일 수도 있고 혹은 아닐 수도 있는) 소정의 전압 범위 내의 값으로 프로그램될 때까지 선택된 한 로우의 메모리 셀들에 인가된다. 각각의 프로그래밍 사이클 동안, 전압레벨 혹은 진폭(Vpgm)의 프로그래밍 전압 펄스들의 시간 시퀀스가 소정의 시간간격들, 이를테면 주기적인 시간간격들로 인가되며, 각각의 프로그래밍 펄스의 진폭은 시퀀스에서 바로 전의 프로그래밍 펄스의 진폭과 비교해서 고정된 전압 스텝 ΔVpgm (예를 들면 0.2 V)만큼 증분되었다. 위의 방식으로 프로그램되는 한 어레이의 메모리 셀들 혹은 전하저장 소자들의 예는 NAND 셀 어레이이다.
프로그래밍 전압펄스들간에 시간 기간들에서, 프로그램-검증 동작들이 수행된다. 즉, 병렬로 프로그램되는 각각의 전하 저장소자(예를 들면, 전하 저장 트랜지스터)의 프로그램되는 레벨은 프로그램되고 있는 적어도 검증 전압 레벨인지를 판정하기 위해 각각의 프로그램 펄스 후에 판독된다. 주어진 전하 저장소자의 임계전압이 검증 전압 레벨을 초과한 것으로 판정된다면, 이러한 전하 저장소자의 프로그래밍은 특정 전하 저장소자가 접속되는 비트라인의 전압을 낮은 전압(전형적으로 0볼트)에서 하이 혹은 금지 레벨(전형적으로 Vdd)로 상승시킴으로써 중지된다. 병렬로 프로그램되는 다른 전하 저장소자들의 프로그래밍은 이들 소자들이 이들의 검증 전압 레벨들에 도달할 때까지 계속된다. 각각의 프로그램 검증동작 후에, 임계전압이 아직 검증 전압레벨에 도달하지 않은 병렬로 프로그램되는 하나 이상이 전하저장 소자들이 아직 있다면, 프로그래밍 펄스의 진폭은 소정의 스텝 크기만큼 증가되고 병렬로 프로그램되는 전하 저장소자들에 다시 인가되며, 이에 이어 프로그램 검증 동작이 이어진다. 다음 프로그래밍 동작 후에 증가된 프로그래밍 펄스가 아직, 병렬로 프로그램되는 모든 전하 저장소자들의 임계전압을 검증 전압레벨에 도달하게 하지 않았다면, 프로그래밍 펄스의 진폭은 다음 시간간격동안 소정의 동일 스텝 크기만큼 다시 증가되고 이 프로세스는 병렬로 프로그램되는 모든 전하 저장소자들의 임계전압이 검증 전압 레벨에 도달할 때까지 반복된다. 이것은 특정 프로그래밍 사이클의 끝을 마크한다.
위의 설명으로부터 명백하게 되는 바와 같이, 위에서 프로그래밍 프로세스는 프로그램 펄스로 셀들을 프로그래밍하고 이에 이은 프로그램 검증 동작을 반복하여 요구한다. 그러므로, 이 프로세스는 시간 소모적일 수 있다. 그러므로, 메모리 셀들 혹은 전하 저장소자들이 가능한 한 짧은 시간 내에 요망되는 임계전압들로 프로그램될 수 있도록 각각의 프로그래밍 펄스의 인가를 위한 프로그램 시간은 짧은 기간을 갖는 것이 바람직하다.
전하 저장소자들을 프로그램하는데 사용되는 프로그래밍 펄스들의 시간 시퀀스가 도 2a에 도시되었고, 여기에 13개의 이러한 연속한 펄스들이 도시되었는데, 그러나 임의의 특정한 임계전압으로 소자들을 프로그램하기 위한 더 많은 혹은 더 적은 수의 펄스들을 채용하는 것이 가능하다. 전압 펄스들은 15볼트와 같은 초기 프로그램 펄스 레벨에서 시작하여 매 펄스마다 0.2볼트와 같은 소정의 스텝 크기만큼 증가할 수 있다.
도 2a에서, 전하 저장소자들을 프로그램하는데 사용되는 시퀀스에 프로그래밍 펄스들은 실질적으로 수직한 상승 및 하강에지들을 갖는 것으로 도시되었다. 실제로, 프로그래밍 펄스들의 펄스 형상은 기준전압 레벨에서 요구되는 Vpgm 레벨까지 전압출력을 증가시키기 위해 충전 펌프가 전형적으로 충전 시간을 요구하고 펄스의 하강에지의 기준레벨로 다시 감소시키기 위한 기간을 펄스가 요구하기 때문에, 도시된 것들과는 다르다. 이것이 도 1 및 도 2b에 도시되었다.
도 1에 도시된 바와 같이, 시간 t0에서, 충전 펌프는 접지레벨과 같은 시작 기준레벨에서 전압출력을 증가시키는 것을 시작하고, 출력을 선택된 제어 게이트 라인 혹은 워드라인에 인가한다. 그러나, 시간 t1후에야 충전 펌프의 출력은 도 1에 도시된 바와 같이 트랜지스터 임계전압을 변경하는데 유효한 요구되는 전압레 벨(Vpgm)에 도달한다. 충전 펌프의 출력이 시간 t1에서 요구되는 전압레벨에 도달한 후에, 이 전압 레벨은 요구되는 프로그램 전압 레벨(Vpgm)에 충전 펌프의 출력이 유지되는 기간의 끝을 마크하는 시간(t2)까지 유지된다. 그후에, 충전 펌프 출력은 시간(t3)에 의해 기준 레벨로 다시 감쇄한다. 이에 따라, 제어 게이트 라인 혹은 워드라인을 프로그램하기 위해 할당된 총 프로그램 시간은 3개의 기간들 중 2개인, t0-t1 (혹은 T)와 t1-t2와의 합이며, 메모리는 다음 프로그램 펄스로 혹은 t3 후에 프로그램 검증으로 진행한다. t0-t1 혹은 T의 기간은 요구되는 프로그램 전압 레벨(Vpgm)을 전달하기 위하여 충전 펌프에 요구되는 충전시간이다. 기간 t1-t2는 펄스 폭이고 이것은 유효 프로그램 시간으로서, 이 동안에, 선택된 제어 게이트 라인 혹은 워드라인의 전압은 전하 저장 소자들의 임계 전압을 변경하는데 유효한 요망되는 Vpgm 레벨까지 증가(ramped)된다.
이에 따라, 도 2a를 참조하면, 1 내지 13으로 표기한 13 펄스들 각각은 실제로 도 1에 도시된 것과 유사한 형상을 갖는다. 도 2a에 도시된 바와 같이, 충전 펌프에 의해 전달되게 하는데 요구되는 Vpgm 레벨은 새로운 충전 펌프 펄스가 발생될 때마다 ΔVpgm만큼 증가하며, 따라서 요구되는 프로그램 전압 혹은 Vpgm 레벨은 도 2a에 도시된 바와 같이 펄스 1에서 펄스 13으로 더 커지는 방향으로 간다. 보다 큰 Vpgm 레벨은 도 2b에 도시된 바와 같이 더 낮은 Vpgm에 비해 더 긴 충전 시간을 요구한다.
충전 펌프 제어를 위한 종래의 설계들에서, 선택된 제어 게이트 라인 혹은 워드라인을 프로그램하기 위해 할당된 총 프로그램 시간은 고정되어 있고 요구되는 증가하는 프로그램 전압 레벨(Vpgm)에 따라 변하지 않는다. 이 상황이 도 2b에 도시되었다. 이에 따라 도 2a 및 도 2b를 참조하면, 도 2a에 펄스 1에 대해서, Vpgm1에서 충전 펌프에 의해 전달되는데 요구되는 전압레벨은 여전히 비교적 낮으므로 충전시간 T1은 비교적 짧아, 충전 펌프가 제어 게이트라인 혹은 워드라인을 요구되는 전압 레벨(Vpgm1)까지 증가(ramp up)하기 위해서 종래의 방법들에서는 고정된 프로그램 시간의 대부분을 사용할 수 있게 한다. 그러나, 펄스 5에 있어서, 충전 펌프에 의해 전달될 필요가 있는 Vpgm5 레벨은 펄스 1보다 높으므로 더 긴 충전시간 T5가 요구되어, Vpgm5 레벨로 증가(ramped up)된 전압을, 선택된 제어 게이트 라인 혹은 워드라인에 의해 제어되는 전하 저장소자들의 임계 전압을 변경하는데 유효한 이 선택된 제어 게이트라인 혹은 워드라인에 인가하기 위해 보다 짧은 시간이 사용될 수 있게 한다. 펄스 10에 있어서, 요구되는 전압 펌프 펄스 레벨(Vpgm10)은 훨씬 더 높으므로 훨씬 더 긴 충전시간(T10)이 요구되어 전하 저장소자들의 임계전압을 변경하기 위해 Vpgm10의 충전 펌프 출력에 대해 고정된 프로그램 시간 중 훨씬 더 작은 부분이 사용될 수 있게 한다. 이것은 충전 펌프 펄스의 요구되는 프로그래밍 전압이 증가됨에 따라, 유효 프로그램 시간 혹은 펄스 폭은 점점 더 짧아지게 되고 따라서 검증 전압 레벨에 도달하기 위해 전하 저장 소자들을 프로그래밍함에 있어 점점 덜 유효하게 됨을 의미한다. 순 결과는 더 많은 수의 프로그래밍 펄스들이, 병렬로 프로그램되는 모든 셀들을 프로그램하기 위해 인가되어야 한다는 것이다. 이것은 메모리 시스템의 성능을 감소시키기 때문에 바람직하지 못하다.
위에서 프로그래밍 동작은 바이너리-레벨 전하 저장소자들 혹은 메모리 셀들뿐만 아니라 복수-레벨 전하 저장소자들 모두에 적용한다. 복수-레벨 전하 저장소자들에 위에 프로그래밍 및 프로그램-검증 동작들의 예는 전체를 참조로 여기 포함시키는 특허 6,522,580에 기술되어 있다.
위에 문제에 대한 한 해결책은 프로그래밍을 위해 할당되는 고정된 시간을 증가시켜 높은 프로그래밍 전압들에서도, 할당된 증가된 프로그램 시간이, 증가된 충전시간 후에도 전하 저장소자 임계전압들을 변경하기 위한 적절한 시간동안, 요구된 고 Vpgm의 충전 펌프 출력이 이러한 레벨에 머물러 있을 수 있게 하는 것이다. 위에 언급된 바와 같이, 증가된 성능을 위해서 프로그래밍 펄스들이 인가되는 각각의 프로그래밍 사이클의 프로그래밍 시간을 최소화하는 것이 바람직할 것이다. 더 긴 프로그래밍 시간을 할당하는 것은 높은 프로그래밍 전압들(즉, 고 Vpgm 레벨들의)에서 만이 아니라 낮은 프로그래밍 전압들에서도 필요로 되기 때문에, 프로그래밍 사이클 동안 모든 충전 펌프 펄스들의 생성 및 인가를 위한 고정된 프로그램 시간을 증가시키는 것은 총 프로그래밍 시간도 증가시키기 때문에 이 또한 바람직하지 못할 것이다. 그러므로 위에 기술된 곤란들이 완화되는 비휘발성 메모리 시스템을 제공하는 것이 바람직하다.
발명의 요약
이상적으로, 프로그램 펄스들을 위한 전압 출력들을 완화하기 위해 낮게 공급하는 것이 충전 펌프에 요구될 때, 할당된 프로그램 기간이 프로그램 사이클의 시간부분동안 가능한 한 짧은 것이 바람직하다. 프로그래밍 사이클이 진행됨에 따라, 더 높은 진폭 프로그래밍 전압들이 요구될 때, 초기에 사용되는 짧은 기간 대신 더 긴 프로그램 기간들이 사용되는 것이 바람직하다.
이 발명은 프로그램 펄스들을 위해 고 전압 출력을 공급할 것이 충전 펌프에 요구될 때 전압 펌프 펄스들에 대해 할당되는 프로그램 기간이 증가될 수 있다는 인식에 기초한다. 일 실시예에서, 전압 펌프 펄스들의 인가를 위해 할당되는 프로그램 시간은 전하 저장소자들을 소정의 상태로(즉 소자들이 소정 범위의 임계 전압들 내에 있는 상태) 프로그램하기 위한 펄스들의 수를 줄이는 값들까지 복수회 조절된다. 이 실시예의 일 구현에서, 할당되는 프로그램 시간은 특정 프로그래밍 사이클동안 충전 펌프에 의해 발생된 프로그램 펄스들의 수의 함수로서 제어된다. 이 실시예의 또 다른 구현에서, 할당되는 프로그램 시간은 충전 펌프의 어떠한 출력도 사용함이 없이 충전 펌프에 의해 제공되는 펄스들의 진폭 혹은 진폭들의 함수로서 제어된다.
다른 실시예에서, 전압 펌프 펄스들의 인가를 위해 할당되는 적어도 한 프로그램 시간은 충전 펌프에 의해 제공되는 펄스들의 진폭 혹은 진폭들을 나타내는 적어도 한 인디케이터 신호에 응하여 발생된다. 이 실시예에서, 인디케이터 신호 혹은 신호들은 충전 펌프의 어떠한 출력의 진폭도 사용함이 없이 발생되고 있다. 이러한 실시예의 일 구현에서, 인디케이터 신호 혹은 신호들은 충전 펌프에 의해 제공되는 펌프 펄스들의 전압 레벨도 제어하며, 할당된 프로그램 시간을 제어하는 프로그램 전압 제어 로직에 의해 제공된다. 이 실시예의 또 다른 구현에서, 인디케이 터 신호 혹은 신호들은 특정 프로그래밍 사이클동안 충전 펌프에 의해 발생된 프로그램 펄스들의 수를 나타낸다.
도 1은 발명의 면을 도시하는데 유용한 충전 펌프에 의해 발생된 전압 펌프 펄스의 타이밍도이다.
도 2a는 발명의 면을 도시하는데 유용한 증가하는 전압(Vpgm) 레벨들의 13개의 전압 펌프 펄스들의 시간 시퀀스의 타이밍도이다.
도 2b는 발명의 면을 도시하는데 유용한 것으로 더 높은 전압 레벨의 전압 펌프 펄스가 더 긴 충전시간을 요구한다는 사실을 도시한 3개의 전압 펌프 펄스들의 타이밍도이다.
도 3은 호스트 장치 및 호스트 장치에 접속된 플래시 EEPROM 시스템을 포함하는 시스템의 블록도이다.
도 4는 발명의 일 실시예를 예시하기 위해 도 3의 플래시 EEPROM 시스템의 제어기 및 전압 발생부의 블록도이다.
도 5는 발명의 실시예를 예시하기 위해 도 4에 제어 로직의 프로그램 시간 제어회로 및 일부 성분들의 개략적인 회로도이다.
도 6은 발명의 실시예를 예시하기 위해 도 4에 제어 로직의 프로그램 시간 제어회로 및 일부 성분들의 개략적인 회로도이다.
도 7은 셀이 타겟의 임계전압(Vt)에 도달하도록 NAND 셀을 프로그램하는데 요구되는 전압 펌프 펄스들의 수에 대해 작도된 전하 저장소자들의 타겟 임계전 압(Vt)의 그래픽도이다. 양의 기울기를 가진 점선은 일정 펄스 폭(즉, 일정 유효 프로그램 시간)에서 프로그래밍 속도를 나타내고 실선 곡선은 프로그래밍을 위해 할당된 일정 프로그램에서 프로그래밍 속도를 나타낸다.
도 8은 발명을 예시하는데 유용한 것으로 다른 전압 레벨들을 갖지만 동일 펄스 폭을 가진 3개의 전압 펌프 펄스들의 그래픽도이다.
도 9는 발명의 실시예들을 예시하기 위해 요구되는 프로그램 전압의 함수로서 프로그램 시간을 증가시키기 위한 3개의 서로 다른 선택들로 달성되는 임계 전압들의 그래픽도이다.
설명의 단순성을 위해서, 이 출원에서 동일 구성요소들을 동일 참조부호들로 표기하였다.
도 3은 호스트 장치(10)(예를 들면, 컴퓨터, 카메라, 휴대폰(cellular phone), PDA(personal digital assitant), 게임 제어기들, 및 MP3 플레이어들과 같은 미디어 플레이들)과 통신하는 플래시 메모리 시스템(20)(플러그-인 카드 혹은 모듈 형태일 수 있음)의 블록도이다. 플래시 메모리 시스템(20)은 플래시 EEPROM 모듈(30) 및 제어기(40)를 포함하며, 이 제어기는 메모리(41) 및 프로세서(43)를 포함한다. 제어기(40)는 호스트 컴퓨터(10)로부터 수신된 명령들을 해석하여 이들은 대응하는 판독, 기입 및 이외 플래시 EEPROM 모듈(30)에 대한 동작들을 호스트 컴퓨터(10)가 알 수 있게 번역한다.
도 4는 예로서, 충전 펌프 전압 펄스들의 생성에 관계된 플래시 EEPROM 시스 템(20)의 부분들의 간이화한 블록도이다. 이 출원에서, "전압 펌프 펄스들", "펌프 펄스들", "충전 펌프 전압 펄스들", "프로그래밍 펄스들" 및 "프로그램 펄스들"이라는 용어들은 상호교환적으로 사용된다. 도 4에 도시된 바와 같이, 공급전압(Vsys)은 호스트(10)에 의해 제어기(40)에 그리고 선택적인 전압 레귤레이터(45)를 통해 인가되고, 아마도 다른 전압 레벨(Vdd)이 모듈(30)에 인가된다. 프로세서(43)는 명령들 및 데이터를 모듈(30)에 인가하고 충전 펌프(32)는 제어 로직(58)으로부터의 제어신호들에 응하여 전압(Vdd)로부터 프로그래밍 펄스들을 발생한다. 실제로는 메모리의 상세한 동작을 제어하기 위해 비휘발성 메모리(30)에 제어 로직(58)엔 통상 충분한 로직이 있어, 이러한 의무감으로부터 프로세서(43)를 경감시킨다. 통상적으로 디코드 모듈(56)은 기정의된 프로토콜을 사용하여 프로세서(43)로부터 명령들을 해석하는데 충분한 로직으로 구성되고, 제어 로직(58)은 전용 시퀀서, 펄스 카운터 및 Vpgm 제어 로직으로 구성되고 아마도 일부 파라미터들은 어레이(54) 내 별도의 ROM(도시되지 않음) 에 저장되고 기동시 독출된다. 제어로직(58) 내 펄스 카운터는 각 프로그래밍 사이클의 시작시 0으로 리셋되고 0부터 시작하여 시퀀서에 의해 기동된 프로그램 펄스들의 수를 카운트한다. 펄스 카운터의 펄스 카운트 출력을 사용하여, 시퀀서는 어떤 루프부터 프로그램 검증들을 시작할 것인지 및/또는 어떤 루프에서 프로그램 실패 상태로 프로그램 루프를 종료할 것인지를 결정한다. 제어 로직(58) 내 Vpgm 제어 로직은 각 프로그램 펄스의 Vpgm 레벨을 계산한다. 그러나, 본 발명은 위에 회로 블록들의 물리적 위치나 이들이 어떻게 접속되어 있는가에 의존하지 않고 다른 구성들도 사용될 수 있다. 프로그래밍 펄스 들은 메모리 셀 어레이(54)에 인가된다. 어레이(54)는 메모리 셀들의 로우들 및 컬럼들을 포함한다. 설명을 간단하게 하기 위해서, 메모리 어레이에 대해서 다른 제어들뿐만 아니라 로우 및 컬럼 제어를 위한 각종의 제어회로들은 도 4에서 생략되었다.
회로(52)는 펄스들의 진폭을 나타내는 제어 로직(58)으로부터의 인디케이터 신호의 함수로서 충전 펌프(32)에 의해 발생된 펄스들의 프로그래밍 시간을 제어한다. 프로그램 시간 제어회로(52)는 프로그램 시간 제어신호들(66 또는 74)을 발생하고 이러한 신호들을 제어 로직(58)에 인가하여, 이를테면 전하 저장 트랜지스터들을 어떤 소정의 범위 내 임계전압으로 프로그램하는 것과 같이 전하 저장소자들을 소정의 전하 상태로 프로그래밍하는데 요구되는 펄스들의 수를 줄이도록, 충전 펌프(32)로부터 어레이(54) 내 전하 저장소자들에 전압 펌프 펄스들의 인가를 위해 할당된 프로그램 시간들이 조정되게 한다. 이들 프로그램 시간 제어신호들은 어레이(54)에 전압 펌프 펄스들의 인가를 위해 할당된 프로그램 시간의 길이를 제어하기 위한 제어 로직(58)에 공급된다.
도 5는 도 4의 프로그램 시간 제어 방법의 일 실시예의 개략적인 회로도이다. 회로(52')는 도 4의 회로(52)의 일 구현이다. 펄스 카운터(64) 및 시퀀서(68)는 도 4의 제어로직(58)의 부분들이다. 위에 설명된 바와 같이, 로직(58) 내 펄스 카운터(64)는 각 프로그래밍 사이클의 시작에서 0으로 리셋되고 0부터 시작하여 시퀀서에 의해 기동된 프로그램 펄스들의 수를 카운트한다. 펄스 카운터(64)는 이러한 프로그래밍 사이클의 시작부터 프로그램 펄스 카운트를 나타내는 펄스 카운트 신호(64a)를 출력한다. 이 펄스 카운트 신호는 룩업 테이블을 구현하는 로직회로들을 포함할 수 있는 프로그램 시간 제어 로직 회로(52')에 공급된다. 이 룩업 테이블은 카운터(64)로부터 펄스 카운트 수에 대응하는 프로그램 시간의 값을 제공한다.
도 2a에 도시된 바와 같이, 충전 펌프는 프로그래밍 펄스의 전압 레벨을 프로그래밍 펄스 바로 전의 전압 레벨보다 전압 증분 ΔVpgm만큼 증가시키고, 따라서 특정 프로그래밍 사이클 동안 제공되었던 프로그래밍 펄스들의 총 수를 알고 있다면, 요망되는 Vpgm 레벨이 이러한 수로부터 계산될 수 있게 된다. 도 1 및 위에 이에 관련한 논의로부터, 요망되는 임의의 주어진 프로그래밍 전압 레벨 Vpgm에 대해서, 충전시간(t0-t1)과 요망되는 유효 프로그램 시간 혹은 펄스 폭(t1-t2)과의 합에 대한 대응하는 값이 존재하고, 요망되는 Vpgm 값이 더 높을수록 충전시간(t0-t1)은 더 크게 될 것임이 명백하다. Vpgm이 증가됨에 따라 충전시간(t0-t1)의 값의 증가를 보상하기 위해서, 대응하는 프로그램 시간이 대응하는 량만큼 증가되고, 이것은 계산 혹은 캘리브레이션에 의해 얻어질 수 있다. 이와 같이 Vpgm의 어떤 값에 대응하는 프로그램 시간을 조절함으로써, 서로 다른 Vpgm 및 펄스 카운트 값들에 대해 요망되는 Vpgm에 프로그램 전압이 유지되는 실질적으로 일정한 유효 프로그램 시간(혹은 펄스 폭)을 유지하기 위해서, 한 세트의 Vpgm 값들, 따라서 한 세트의 대응하는 펄스 카운트 값들에 대응하는 한 세트의 프로그램 시간들에 도달하는 것이 가능하다.
위에 기술된 프로세스에 의해서, 매 펄스 카운트마다, 이러한 펄스 카운트에 대응하는 한 특정한 Vpgm 값을 갖는 임의의 한 특정한 프로그래밍 펄스에 대해 요구되는 충전시간을 고려하는 고유 대응 프로그램 시간이 있을 것이다. 이 프로그램 시간 값은 프로그램 시간 제어 신호출력(66)에서 시퀀스(68)에 제공되고 그러면 이 시퀀서(68)는 이러한 프로그램 시간 제어 신호를 라인(53) 상의 충전펌프(32)에 공급한다. 그러면 충전 펌프(32)는 신호(53)에 대응하는 프로그래밍 기간동안 다음 펌프 펄스를 제공한다. 이 프로세스는 펌프(32)로부터 하나 이상의 펌프 펄스들의 프로그램 시간들을 제어하기 위한 하나 이상의 프로그램 시간 제어신호들을 생성하기 위해 반복된다. 이러한 펌프 펄스 프로그램 시간 제어의 효과가 도 7 및 도 8에 도시되었다.
도 7은 도 2a에 도시된 것들과 같은 한 시퀀스의 펄스 프로그래밍 펄스들에서 전압 펌프 펄스들의 대응하는 수(수평 축 상에)의 인가에 의해서 달성되는 전하 저장소자들의 임계전압(수직축 상에)의 그래픽도이다. 한 특정의 전하 상태가 달성될 타겟 임계전압(Vt)이 수평 점선(82)으로서 도시되었다. 점선의 경사진 선(84)은 달성될 수 있는 전하 저장소자들의 임계전압을 도시한 것으로 최적의 프로그래밍 속도를 달성하기 위해서 프로그램 전압 Vpgm이 증가될 때 펄스 폭 혹은 유효 프로그램 시간(이 동안에 펄스 전압은 요망되는 프로그램 전압에 유지된다)이 일정한 값으로 유지된다. 그러나, 종래의 프로그래밍 제어에서 수행되는 바와 같이, 요망되는 전압 레벨(Vpgm)에 무관하게 프로그래밍 펄스에 대해 동일 시간량이 할당된다면, 펄스들의 수에 대응하여 달성될 수 있는 전하 저장소자들의 임계전압은 실선 곡선(86)으로서 도시되었다. 도 7에 도시된 바와 같이, 선(82)은 선(84)과의 교차 점의 우측에 점에서 곡선(86)과 교차하여, 일정 프로그램 시간 할당에 의해 달성되는 프로그래밍 속도가 다수의 더 많은 프로그래밍 펄스들의 인가를 요구하고 이에 따라 유효 프로그램 시간 혹은 펄스 폭이 일정하게 유지되는 것에 비해 더 느리게 됨을 나타낸다.
도 8은 3개의 서로 다른 값들의 Vpgm에서 3개의 서로 다른 프로그래밍 펄스들의 그래픽도이다. 도 5 및 도 6에 도시된 것들과 같은 실시예들에 의해서, 3개의 펄스들이 사실상 도 8에 도시된 바와 동일한 펄스 폭을 갖도록 이들 3개의 펄스들의 프로그램 시간을 제어하는 것이 가능하다. 도 8에 그래프로 도시된 바와 같이, 요구되는 프로그램 전압 레벨 Vpgm이 증가됨에 따라, 할당된 프로그램 시간량도 대응하여 증가되며, 따라서 유효 프로그램 시간 혹은 펄스 폭은 실질적으로 일정한 상태에 있게 된다. 이에 따라, 도 7에 점선(84)을 따라, 전하 저장소자들이 타겟의 임계전압(Vt)에 도달되게 최소수의 프로그래밍 펄스들을 사용하여, 최적의 프로그래밍 속도가 달성될 수 있게 된다.
이에 따라, 한 프로그래밍 펄스에서 다음 프로그램 펄스로 프로그램 전압(Vpgm)이 증가될 때, 최적 프로그래밍 속도는 전압 펌프 펄스의 인가를 위해 할당된 프로그램 시간이, 도 7 및 도 9에 선(84)으로 도시되고 도 9에 선택1로 표기된 바와 같이, 펄스의 진폭이 증가될 때마다 증가될 때 달성된다. 이와 같이 하여, 프로그래밍 펄스들의 유효 펄스 폭은 실질적으로 일정하게 유지될 수 있어 최적의 프로그래밍 속도를 달성할 수 있다.
그러나, 프로그래밍 전압이 증가할 때마다, 할당된 프로그램 시간을 조정해 야 하는 것은 빈번한 프로그램 시간 조절을 요구한다. 어떤 적용들에 있어서, 프로그래밍 전압이 증가될 때마다(이를테면 매 펄스의 인가 후에) 펌프 펄스의 인가에 의해, 할당된 프로그램 시간을 증가시키는 것이 필요하지 않을 수도 있다. 예를 들면, 매 펄스의 인가 후에 전압 펌프 펄스의 인가를 위해 할당되는 프로그램 시간을 증가시키는 대신, 이것은 매 X 수의 펄스들 후에 행해질 수 있고, 여기서 X는 2 이상의 정수이다. 도 9에서, 이것은 점선(92)으로 도시되었고 도 9에 선택2로 표기되었다. 선택2에서, 전압 펌프 펄스의 인가를 위해 할당된 프로그램 시간은 매 X 펄스들의 인가 후에 증가된다.
도 9에 선택3으로 표기된 또 다른 선택으로서, 전압 펌프 펄스들의 인가를 위해 할당된 프로그램 시간은 프로그래밍 사이클에서 Y 수의 펌프 펄스들이 인가될 때까지 일정값으로 유지된다. 이에 따라, 도 9에 도시된 바와 같이, Y 수의 펄스들이 인가되기 전에, 달성될 수 있는 임계전압은 선택3에서 동일하고 곡선(86)에서는 도 7의 종래의 방법들에서 얻어진다. 그러나, 펌프 펄스들의 인가를 위해 할당된 프로그램 시간이 Y 수의 펄스들 후에 한번 증가된 후에, 선택3의 곡선(94)은 곡선(86)에서 벗어나 타겟의 임계 Vt를 달성하는데 요구되는 총 펄스 수는 도 9에 도시된 종래의 방법들에 비해 감소된다. 도 9에 도시된 바와 같이, 곡선(94)은 곡선(86)이 선(82)과 교차하는 경우에 비해 수직축에 더 가까운 지점에서 수평선(82)과 교차한다.
위에 선택들과는 또 다른 가능한 선택으로서, 할당되는 프로그램 시간은, Y 수의 펄스들의 인가가 발생하기 전은 아니고 이들이 인가된 후에만 프로그래밍 전 압이 증가될 때마다(이를테면 매 펄스이 인가 후와 같이) 증가될 수 있다. 그러므로 이 선택은 이전의 선택1과 선택3과의 조합이다. 이러한 조합에 대해서 펄스 수에 대한 임계전압 그래프는 종래의 방법들의 곡선(86)을 따라, Y 수의 펄스들이 전하 저장 트랜지스터들에 인가될 때까지의 점까지, 그러나 이러한 점 이후엔 도 9에 선(84)과 실질적으로 동일한 기울기를 갖는 선(도시되지 않음)을 따라 존재할 것이다. Vpgm 레벨이 비교적 낮을 때 충전시간은 현저하지 않을 수 있기 때문에, 매 프로그램 펄스 후에 이러한 Vpgm 레벨들에 대해 프로그램 시간을 증가시키는 효과는 그만큼 현저하지 않으므로, 도 7 및 도 9에서 곡선(86)으로 도시된 바와 같은 종래의 방법들에 비해 프로그램 시간을 증가시킴에 의한 프로그래밍 효율에 큰 이득은 없다. 그러나, 요망되는 Vpgm 레벨이 비교적 크기 때문에, 매 프로그램 펄스 후에 이러한 Vpgm 레벨들에 대해 프로그램 시간을 증가시키는 효과는 현저할 것이다. 이에 따라, Y 수의 펄스들이 인가된 후에만 매 프로그램 펄스 후에 이러한 Vpgm 레벨들에 대해 프로그램 시간을 증가시킴으로써, 프로그램 시간이 조절되는 횟수를 감소시키면서도, 프로그래밍 효율에 현저한 이득을 달성할 것이다.
위에 선택들과는 또 다른 가능한 선택으로서, 할당되는 프로그램 시간은, Y 수의 펌프 펄스들의 인가가 발생하기 전은 아니고 이들이 인가된 후에, X 수의 프로그래밍 펄스들이 인가될 때마다 증가될 수 있고, 여기서 X는 2이상의 정수이다. 따라서 이 선택은 이전의 선택 2와 선택 3과의 조합이다. 이 선택은 선택들 1 및 3이 조합될 때의 선택들과 유사한 잇점들을 갖는데, 프로그램 시간 조절 횟수가 더욱 감소되는 추가의 잇점을 갖는다. 이러한 조합에 대해서 펄스들의 수에 대한 임 계 전압 그래프는 종래의 방법들의 곡선(86)을 따라서 그리고 Y 수의 펄스들이 전하 저장 트랜지스터들에 인가될 때까지의 점까지, 그러나 이러한 점 이후엔 도 9에 선(92)과 실질적으로 형상과 기울기가 동일한 곡선(도시되지 않음)을 따라 존재할 것이다.
충전 펌프로부터 펄스들의 수를 카운트하는 대신, 프로그램 시간은 요망되는 Vpgm 레벨의 함수로서, 그러나 펌프 펄스들의 어떠한 카운트에도 전혀 응답함이 없이, 조절될 수 있다. 도 6의 회로(52")는 도 4의 회로(52)의 또 다른 실시예이다. 도 6의 실시예는 인디케이터 신호(72a)에 프로그램 전압 레벨(Vpgm 레벨)을 프로그램 시간 제어 로직(52")에 제공하는 프로그램 제어 로직(72)(도 4의 로직회로(58) 내)을 포함한다. 도 5의 프로그램 시간 제어로직(52')과 유사하게, 프로그램 시간 제어로직(52")은 룩업 테이블을 구현한다. 로직(52")은 입력되는 Vpgm 레벨(72a)에 대응하는 프로그램 시간을 나타내는 프로그램 시간 제어신호(74)를 제공한다. 이 프로그램 제어 시간신호(74)는 이러한 신호를 선(53)을 따라 충전 펌프(32)에 제공하는 시퀀서(68)(도 4의 로직회로(58) 내)에 제공된다. 또한 로직(72)은 같은 Vpgm 레벨신호(72a)를 신호라인(98)(도 4엔 도시되지 않음)을 따라 충전 펌프(32)에 제공하며, 따라서 충전 펌프는 이러한 Vpgm 전압레벨을 갖는 전압 펌프 펄스를 발생한다. 회로(52")는 하나 이상의 펄스들의 인가 후에 프로그램 시간을 증가시키는 대신에 로직(72)에 의해 요구되는 Vpgm 레벨에 따라 프로그램 시간이 증가되는 것을 제외하곤, 도 9에 도시된 3개의 서로 다른 선택들을 구현하는데 사용될 수 있다. 도 6의 실시예의 일 구현에서, 프로그램 시간은 매 n 증분의 증가들(즉, nΔ Vpgm)마다 증가되며, 여기서 n은 1이상의 정수이다. n이 값 1인 경우에, 프로그래밍 속도는 매 펌프 펄스 후에, 즉 도 7 및 도 9에서 선(84)을 따라 프로그램 시간이 증가되는 경우와 동일할 것이다. n이 1보다 큰 값인 경우, 프로그래밍 속도는 매 n 펌프 펄스들 후에, 즉 도 9에서 점선(92)을 따라 프로그램 시간이 증가되는 경우와 동일할 것이다. 프로그램 시간이 m 증분의 증가들 후에 한번만 증가되는 경우에, 결과는 도 9에 선택3 및 선(94)에 의해 도시되었다.
도 5의 실시예에 대해서 위에서 선택1 및 선택3과 선택2 및 선택3의 조합과 유사하게, 유사한 조합들이 도 6의 실시예에 대해 구현될 수 있다. 이에 따라, 프로그램 시간은 매 n 증분의 증가들마다(즉, nΔVpgm), n은 1이상의 정수, 그러나 Y 증분의 증가들이 일어나기 전은 아니고 이 증가들 후에만 증가될 수 있다. n이 값 1인 경우, 프로그래밍 속도는 도 5의 실시예에 대해 위에서 선택1 및 선택3이 조합된 경우와 동일할 것이다. n이 1보다 큰 값인 경우, 프로그래밍 속도는 도 5의 실시예에 대해 위에서 선택2 및 선택3이 조합된 경우와 동일할 것이다. 이들 조합들은 도 5의 실시예를 참조하여 대응하는 조합에 대해 위에 설명된 것들과 실질적으로 동일한 잇점들을 갖는다.
도 6의 실시예의 또 다른 구현에서, 프로그램 시간은 Vpgm의 어떤 값들로 증가되고, 여기서 이들 값들은 시스템을 최적화하기 위해 선택될 수 있고, 위에 설명된 바와 같이 선택들1-3 및 이들의 조합들에 대응할 수 있다. 선택1 하에서, 프로그램 시간은 Vpgm이 증가될 때마다 증가될 수 있다. 선택2 하에서, 프로그램 시간은 Vpgm의 어떤 값들에 대응하는 값들로 설정되고, 여기서 이들 값들은 선택2에서 매 X 수의 펄스들에 대응할 수 있다. 대안적으로, 프로그램 시간은 Vpgm의 어떤 값들에 대응하는 값들로 설정될 수 있고, 이들 값들은 선택2에서 매 X 수의 펄스들에 대응하지 않는다. 선택3 하에서, 프로그램 시간은 Vpgm이 한 특정한 소정의 값을 초과할 때까지 프로그래밍 사이클에서 일정하게 유지될 수 있고, 이때 프로그램 시간은 프로그래밍 사이클의 끝까지 변경되지 않은 상태에 있는 또 다른 값으로 증가된다.
이상으로부터, 프로그램 제어신호는 도 6의 로직(72)으로부터 Vpgm 레벨에 응하여 발생되는 경우, 이에 따라 프로그램 제어 신호는 충전 펌프(32)의 출력을 이용함이 없이 제공됨이 명백하다. 도 6의 실시예에서, 펌프 펄스들은 회로(52")에 공급되지 않는다. 이것은 도 5의 실시예에서 그러하며, 이 경우 펌프 펄스들은 회로(52')에 공급되지 않는다. 따라서 회로(52')는 충전 펌프 출력으로부터 펄스들의 수 혹은 진폭을 이용하지 않으며 아니면 측정 혹은 감지하지 않으며, 대신 로직(58) 내 카운터(64)에 의해 제공되는 펄스 카운트로부터 필요로 되는 프로그램 시간을 간단히 도출한다. 충전 펌프 출력으로부터 프로그램 펄스들의 수 혹은 진폭을 측정해야 할 필요없이 프로그램 시간을 조절하는 잇점은 프로그램 시간 제어의 구현을 단순화시킨다.
발명이 다양한 실시예들을 참조로 하여 위에 기술되었으나, 첨부된 청구항들 및 이들의 등가물에 의해서만 정의되는 것인 발명의 범위 내에서 변경들 및 수정들이 행해질 수 있음을 알 것이다. 여기 언급된 모든 참조문헌들은 참조로 포함시킨다.

Claims (57)

  1. 복수의 전하 저장소자들을 포함하는 비휘발성 메모리 시스템을 프로그램하는 방법에 있어서,
    충전 펌프에 의해 순차적으로 프로그램 펄스들을 제공하는 단계로서, 상기 펄스들의 적어도 일부의 각각의 진폭은 상기 복수의 전하 저장소자들을 프로그램하기 위한 프로그래밍 사이클 동안 이전 펄스에 대해 증가되는, 단계; 및
    상기 충전 펌프에 의해 제공된 상기 펄스들의 서로 다른 진폭들을 나타내는 신호들에 응하여 복수의 프로그램 시간 제어 신호들을 발생하는 단계로서, 상기 프로그램 시간 제어신호들은 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위한 할당되는 프로그램 시간들이, 상기 복수의 전하 저장 소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수를 감소시키는 값들로 복수회 조절되게 하는, 단계를 포함하는, 비휘발성 메모리 시스템 프로그램 방법.
  2. 제1항에 있어서, 상기 발생단계는 상기 프로그래밍 사이클 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 상기 펄스들의 수 혹은 진폭을 나타내는 복수의 인디케이터 신호들을 발생하고, 상기 인디케이터 신호들은 상기 충전 펌프의 어떠한 출력의 진폭도 사용함이 없이 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  3. 제2항에 있어서, 상기 복수의 인디케이터 신호들은 상기 프로그래밍 사이클 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 수를 나타내는, 비휘발성 메모리 시스템 프로그램 방법.
  4. 제3항에 있어서, 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 양의 정수인 매 n개의 프로그램 펄스들에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하도록 상기 인디케이터 신호들에 응하여 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  5. 제4항에 있어서, n은 1의 값을 갖는, 비휘발성 메모리 시스템 프로그램 방법.
  6. 제4항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 소정 수의 펄스들이 상기 복수의 전하 저장소자들을 프로그램하기 위해 제공된 후에 상기 충전 펌프에 의해 제공되는 매 n개의 프로그램 펄스들에 대해 증가되는, 비휘발성 메모리 시스템 프로그램 방법.
  7. 제6항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 상기 복수의 전하 저장소자들을 프로그램하기 위해 상기 소정 개수의 프로그램 펄스들이 제공된 후까지 증가되지 않는, 비휘발성 메모리 시스템 프로그램 방법.
  8. 제3항에 있어서, 상기 복수의 인디케이터 신호들은 상기 충전 펌프의 출력들에 응하여 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  9. 제2항에 있어서, 상기 복수의 인디케이터 신호들은 상기 프로그래밍 사이클 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 진폭을 나타내며, 상기 복수의 인디케이터 신호들은 상기 충전 펌프의 임의의 출력에 응하여 발생되지 않는, 비휘발성 메모리 시스템 프로그램 방법.
  10. 제9항에 있어서, 상기 인디케이터 신호들에 응하여 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 양의 정수인 프로그램 펄스들의 진폭에 매 n개의 증분적 증가(들)에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템 프로그램 방법.
  11. 제10항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템 프로그램 방법.
  12. 제10항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그 램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭에 소정 개수의 증분적 증가(들)이 일어난 후에 상기 충전 펌프에 의해 제공되는 프로그램 펄스들의 진폭에 매 n개의 증분적 증가(들)에 대해 증가되는, 비휘발성 메모리 시스템 프로그램 방법.
  13. 제12항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭에 소정 개수의 증분적 증가(들)이 일어난 후까지 증가되지 않은, 비휘발성 메모리 시스템 프로그램 방법.
  14. 제2항에 있어서, 상기 복수의 인디케이터 신호들은 상기 충전 펌프의 출력에 응하지 않고 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  15. 제2항에 있어서, 상기 프로그램 펄스들은 상기 복수의 인디케이터 신호들에 응하여 상기 충전 펌프에 의해 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  16. 복수의 전하 저장소자들을 포함하는 비휘발성 메모리 시스템을 프로그램하는 방법에 있어서,
    충전 펌프에 의해 순차적으로 프로그램 펄스들을 제공하는 단계로서 상기 펄스들의 적어도 일부의 각각의 진폭은 상기 복수의 전하 저장소자들을 프로그램하기 위한 프로그래밍 사이클 동안 이전 펄스에 대해 증가되는, 단계; 및
    상기 충전 펌프에 의해 제공되는 상기 펄스들의 진폭(들)을 나타내는 적어도 하나의 인디케이터 신호들을 발생하는 단계로서, 상기 인디케이터 신호(들)은 상기 충전 펌프의 어떠한 출력의 진폭도 사용함이 없이 발생되는, 단계;
    상기 인디케이터 신호(들)에 응하여 하나 이상의 프로그램 시간 제어신호들을 발생하여, 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위해 할당된 적어도 하나의 프로그램 시간이 상기 복수의 전하 저장소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수를 감소시키는 값(들)으로 조절되게 하는, 단계를 포함하는, 비휘발성 메모리 시스템 프로그램 방법.
  17. 제16항에 있어서, 상기 적어도 하나의 인디케이터 신호는 상기 프로그래밍 사이클 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 수 혹은 진폭을 나타내는, 비휘발성 메모리 시스템 프로그램 방법.
  18. 제17항에 있어서, 상기 적어도 하나의 인디케이터 신호에 응하여 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 양의 정수인 매 n개의 프로그램 펄스들에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템 프로그램 방법.
  19. 제18항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템 프로그램 방법.
  20. 제18항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 상기 복수의 전하 저장소자들을 프로그램하기 위해 소정 개수의 펄스들이 제공된 후에 상기 충전 펌프에 의해 제공되는 매 n개의 프로그램 펄스들에 대해 증가되는, 비휘발성 메모리 시스템 프로그램 방법.
  21. 제20항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 상기 소정 개수의 펄스들이 상기 복수의 전하 저장소자들을 프로그램하기 위해 제공된 후까지 증가되지 않는, 비휘발성 메모리 시스템 프로그램 방법.
  22. 제16항에 있어서, 상기 적어도 하나의 인디케이터 신호는 상기 충전 펌프의 출력에 응하여 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  23. 제16항에 있어서, 상기 적어도 하나의 인디케이터 신호는 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 진폭을 나타내는, 비휘발성 메모리 시스템 프로그램 방법.
  24. 제23항에 있어서, 상기 인디케이터 신호(들)에 응하여 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 진폭에 양의 정수인 매 n개의 증분적 증가(들)에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템 프로그램 방법.
  25. 제24항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템 프로그램 방법.
  26. 제24항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭에 소정 개수의 증분적 증가(들)이 일어난 후에 상기 충전 펌프에 의해 제공되는 프로그램 펄스들의 진폭에 매 n개의 증분적 증가(들)에 대해 증가되는, 비휘발성 메모리 시스템 프로그램 방법.
  27. 제26항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭에 소정 개수의 증분적 증가(들)이 일어난 후까지 증가되지 않는, 비휘발성 메모리 시스템 프로그램 방법.
  28. 제16항에 있어서, 상기 적어도 하나의 인디케이터 신호는 상기 충전 펌프의 출력에 응하지 않고 발생되는, 비휘발성 메모리 시스템 프로그램 방법.
  29. 제16항에 있어서, 상기 적어도 하나의 인디케이터 신호 및 상기 하나 이상의 프로그램 시간 제어신호들은 상기 복수의 전하 저장 소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수가 감소되도록, 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 상기 프로그램 사이클 동안 단지 한번 더 높은 값으로 조절되게 하는, 비휘발성 메모리 시스템 프로그램 방법.
  30. 비휘발성 메모리 시스템에 있어서,
    복수의 전하 저장소자들;
    프로그램 펄스들을 순차적으로 제공하는 충전 펌프로서, 상기 펄스들의 적어도 일부의 각각의 진폭은 상기 복수의 전하 저장소자들을 프로그램하기 위한 프로그래밍 사이클 동안 이전 펄스에 대해 증가되는 것인, 상기 충전 펌프; 및
    상기 충전 펌프에 의해 제공된 상기 펄스들의 서로 다른 진폭들을 나타내는 신호들에 응하여 복수의 프로그램 시간 제어 신호들을 발생하는 장치로서, 상기 프로그램 시간 제어신호들은 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위한 할당되는 프로그램 시간들이, 상기 복수의 전하 저장 소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수를 감소시키는 값들로 복수회 조절되게 하는 것인, 상기 장치를 포함하는, 비휘발성 메모리 시스템.
  31. 제30항에 있어서, 상기 장치는,
    상기 충전 펌프에 의해 제공되는 상기 펄스들의 진폭들을 나타내는 복수의 인디케이터 신호들을 발생하는 제1 회로로서, 상기 인디케이터 신호들은 상기 충전 펌프의 임의의 출력의 진폭을 사용함이 없이 발생되는 것인, 상기 제1 회로; 및
    상기 인디케이터 신호들에 응하여 상기 복수의 프로그램 시간 제어신호들을 발생하여, 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위해 할당된 적어도 한 프로그램 시간이 상기 복수의 전하 저장소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수를 감소시키는 값들로 조절되게 하는, 제2 프로그램 시간 제어회로를 포함하는, 비휘발성 메모리 시스템.
  32. 제31항에 있어서, 상기 복수의 인디케이터 신호들은 상기 프로그래밍 사이클 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 상기 펄스들의 수를 나타내는, 비휘발성 메모리 시스템.
  33. 제32항에 있어서, 상기 인디케이터 신호들에 응하여 상기 제2 프로그램 시간 제어회로에 의해 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 양의 정수인 매 n개의 프로그램 펄스들에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템.
  34. 제33항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템.
  35. 제33항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 소정의 개수의 펄스들이 상기 복수의 전하 저장소자들을 프로그램하기 위해 제공된 후에 상기 충전 펌프에 의해 제공되는 매 n개의 프로그램 펄스들에 대해 증가되는, 비휘발성 메모리 시스템.
  36. 제35항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 상기 복수의 전하저장 소자들을 프로그램하기 위해 상기 소정 개수의 프로그램 펄스들이 제공된 후까지 증가되지 않은, 비휘발성 메모리 시스템.
  37. 제32항에 있어서, 상기 제1 회로는 상기 충전 펌프의 출력들에 응하여 상기 복수의 인디케이터 신호들을 발생하는, 비휘발성 메모리 시스템.
  38. 제31항에 있어서, 상기 제1 회로는 상기 충전 펌프의 어떤 출력에도 응하지 않고 상기 복수의 인디케이터 신호들을 발생하는, 비휘발성 메모리 시스템.
  39. 제38항에 있어서, 상기 인디케이터 신호들에 응하여 발생된 상기 제2 프로그램 시간 제어신호들에 의해 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 진폭에 양의 정수인 매 n개의 증분적 증가(들)에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템.
  40. 제39항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템.
  41. 제39항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭들에 소정의 수의 증분적 증가(들)이 일어난 후에 상기 충전 펌프에 의해 제공되는 프로그램 펄스들의 증폭에 매 n개의 증분적 증가(들)에 대해 증가되는, 비휘발성 메모리 시스템.
  42. 제41항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭들에 소정의 수의 증분적 증가(들)이 일어난 후까지 증가되지 않는, 비휘발성 메모리 시스템.
  43. 제38항에 있어서, 상기 충전 펌프는 상기 복수의 인디케이터 신호들에 응하여 상기 프로그램 펄스들을 발생하는, 비휘발성 메모리 시스템.
  44. 비휘발성 메모리 시스템에 있어서,
    복수의 전하 저장소자들;
    프로그램 펄스들을 순차적으로 제공하는 충전 펌프로서, 상기 펄스들의 적어도 일부의 각각의 진폭은 상기 복수의 전하 저장소자들을 프로그램하기 위한 프로그래밍 사이클 동안 이전 펄스에 대해 증가되는 것인, 상기 충전 펌프; 및
    상기 충전 펌프에 의해 제공되는 상기 펄스들의 진폭(들)을 나타내는 적어도 한 인디케이터 신호를 발생하는 제1 회로로서, 상기 인디케이터 신호(들)은 상기 충전 펌프의 임의의 출력의 진폭을 사용함이 없이 발생되는 것인, 상기 제1 회로;
    상기 인디케이터 신호(들)에 응하여 하나 이상의 프로그램 시간 제어신호들을 발생하여, 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위해 할당된 적어도 하나의 프로그램 시간이 상기 복수의 전하 저장소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수를 감소시키는 값(들)로 조절되게 하는, 제2 프로그램 시간 제어회로를 포함하는, 비휘발성 메모리 시스템.
  45. 제44항에 있어서, 상기 적어도 한 인디케이터 신호는 상기 프로그래밍 사이클 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 수를 나타내는, 비휘발성 메모리 시스템.
  46. 제45항에 있어서, 상기 적어도 한 인디케이터 신호에 응하여 발생된 상기 제2 프로그램 시간 제어회로에 의해 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 양의 정수인 매 n개의 프로그램 펄스들에 대해, 상기 프로그램 펄스 들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템.
  47. 제46항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템.
  48. 제46항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당되는 상기 프로그램 시간은 상기 프로그램 사이클 동안 상기 복수의 전하 저장소자들을 프로그램하기 위해 소정 수의 펄스들이 제공된 후에 상기 충전 펌프에 의해 제공되는 매 n 개의 프로그램 펄스들에 대해 증가되는, 비휘발성 메모리 시스템.
  49. 제48항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당되는 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 상기 복수의 전하 저장소자들을 프로그램하기 위해서 상기 소정 수의 펄스들이 제공된 후까지 증가되지 않는, 비휘발성 메모리 시스템.
  50. 제45항에 있어서, 상기 제1 회로는 상기 충전 펌프의 출력에 응하여 상기 적어도 한 인디케이터 신호를 발생하는, 비휘발성 메모리 시스템.
  51. 제44항에 있어서, 상기 제1 회로는 상기 충전 펌프의 어떤 출력에도 응하지 않고 상기 적어도 하나의 인디케이터 신호를 발생하는, 비휘발성 메모리 시스템.
  52. 제51항에 있어서, 상기 인디케이터 신호(들)에 응하여 상기 제2 프로그램 시간 제어회로에 의해 발생된 상기 프로그램 시간 제어신호들은 상기 프로그래밍 사이클의 적어도 일부 동안 상기 충전 펌프에 의해 상기 전하 저장소자들에 제공되는 프로그램 펄스들의 진폭에 양의 정수인 매 n 증분적 증가(들)에 대해, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 증가하게 하는, 비휘발성 메모리 시스템.
  53. 제52항에 있어서, n은 값 1을 갖는, 비휘발성 메모리 시스템.
  54. 제52항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭들에 소정의 수의 증분적 증가(들)이 일어난 후에 상기 충전 펌프에 의해 제공되는 프로그램 펄스들의 증폭에 매 n개의 증분적 증가(들)에 대해 증가되는, 비휘발성 메모리 시스템.
  55. 제54항에 있어서, 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간은 상기 프로그래밍 사이클 동안 프로그램 펄스들의 진폭에 소정 수의 증분적 증가(들)이 일어난 후까지 증가되지 않는, 비휘발성 메모리 시스템.
  56. 제44항에 있어서, 상기 충전 펌프는 상기 하나 이상의 프로그램 시간 제어신 호들에 응하여 상기 프로그램 펄스들을 발생하는, 비휘발성 메모리 시스템.
  57. 제44항에 있어서, 상기 적어도 한 인디케이터 신호 및 상기 하나 이상의 프로그램 시간 제어신호들은 상기 복수의 전하 저장 소자들을 소정의 상태로 프로그램하기 위한 펄스들의 수가 감소되도록, 상기 전하 저장소자들에 상기 프로그램 펄스들의 인가를 위해 할당된 상기 프로그램 시간이 상기 프로그램 사이클 동안 단지 한번 더 높은 값으로 조절되게 하는, 비휘발성 메모리 시스템.
KR1020087025529A 2006-03-28 2007-03-15 개선된 프로그래밍 속도를 위해 프로그램 전압의 함수로서 프로그램 시간 조절 KR101312503B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/392,265 2006-03-28
US11/391,811 2006-03-28
US11/392,265 US7327608B2 (en) 2006-03-28 2006-03-28 Program time adjustment as function of program voltage for improved programming speed in programming method
US11/391,811 US7330373B2 (en) 2006-03-28 2006-03-28 Program time adjustment as function of program voltage for improved programming speed in memory system
PCT/US2007/064064 WO2007112213A2 (en) 2006-03-28 2007-03-15 Program time adjustment as function of program voltage for improved programming speed

Publications (2)

Publication Number Publication Date
KR20090018027A true KR20090018027A (ko) 2009-02-19
KR101312503B1 KR101312503B1 (ko) 2013-10-16

Family

ID=38541790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087025529A KR101312503B1 (ko) 2006-03-28 2007-03-15 개선된 프로그래밍 속도를 위해 프로그램 전압의 함수로서 프로그램 시간 조절

Country Status (6)

Country Link
EP (1) EP2005439B1 (ko)
JP (1) JP4669065B2 (ko)
KR (1) KR101312503B1 (ko)
AT (1) ATE515035T1 (ko)
TW (1) TWI340389B (ko)
WO (1) WO2007112213A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130090574A (ko) * 2012-02-06 2013-08-14 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 프로그램 방법과 이를 이용하는 데이터 처리 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7330373B2 (en) 2006-03-28 2008-02-12 Sandisk Corporation Program time adjustment as function of program voltage for improved programming speed in memory system
US11694751B2 (en) * 2019-11-30 2023-07-04 Semibrain Inc. Logic compatible flash memory programming with a pulse width control scheme

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3807744B2 (ja) * 1995-06-07 2006-08-09 マクロニクス インターナショナル カンパニイ リミテッド 可変プログラムパルス高及びパルス幅によるページモードフラッシュメモリ用自動プログラミングアルゴリズム
US5991201A (en) * 1998-04-27 1999-11-23 Motorola Inc. Non-volatile memory with over-program protection and method therefor
JP4170682B2 (ja) * 2002-06-18 2008-10-22 株式会社東芝 不揮発性半導体メモリ装置
US7110298B2 (en) * 2004-07-20 2006-09-19 Sandisk Corporation Non-volatile system with program time control
JP2007115359A (ja) * 2005-10-21 2007-05-10 Oki Electric Ind Co Ltd 半導体メモリのデータ書込方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130090574A (ko) * 2012-02-06 2013-08-14 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 프로그램 방법과 이를 이용하는 데이터 처리 시스템

Also Published As

Publication number Publication date
TW200805384A (en) 2008-01-16
JP4669065B2 (ja) 2011-04-13
EP2005439A2 (en) 2008-12-24
EP2005439B1 (en) 2011-06-29
ATE515035T1 (de) 2011-07-15
TWI340389B (en) 2011-04-11
KR101312503B1 (ko) 2013-10-16
WO2007112213A3 (en) 2008-03-27
WO2007112213A2 (en) 2007-10-04
JP2009531806A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
US7330373B2 (en) Program time adjustment as function of program voltage for improved programming speed in memory system
KR101039238B1 (ko) 프로그램 시간 제어를 하는 비-휘발성 메모리 시스템
JP4975310B2 (ja) リップルフリー高電圧発生回路及び方法、及びこれを具備した半導体メモリ装置
KR100805839B1 (ko) 고전압 발생기를 공유하는 플래시 메모리 장치
US7327608B2 (en) Program time adjustment as function of program voltage for improved programming speed in programming method
KR100879385B1 (ko) 플래시 메모리 장치 및 그것의 멀티 레벨 셀 프로그램 방법
KR101184866B1 (ko) 불휘발성 메모리 장치 및 이의 동작 방법
KR101705294B1 (ko) 플래시 메모리 및 그 프로그램 방법
KR101212739B1 (ko) 비휘발성 메모리장치 및 이의 동작방법
US8553465B2 (en) Semiconductor memory device and method of programming the same
US20210166765A1 (en) Methods of programming memory device
KR101003878B1 (ko) 불휘발성 메모리 장치의 동작 방법
KR101312503B1 (ko) 개선된 프로그래밍 속도를 위해 프로그램 전압의 함수로서 프로그램 시간 조절
KR20070052403A (ko) 낸드 플래시 메모리의 프로그램 방법
KR20220141229A (ko) 반도체 장치 및 소거 방법
US10262748B1 (en) Non-volatile memory and program method thereof
KR20070035277A (ko) 스텝형 컨버전스 프로그램 스킴을 구비한 플래시 메모리장치

Legal Events

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

Payment date: 20160818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 6