KR101464255B1 - 플래시 메모리 장치 및 그것을 포함한 시스템 - Google Patents

플래시 메모리 장치 및 그것을 포함한 시스템 Download PDF

Info

Publication number
KR101464255B1
KR101464255B1 KR1020080059067A KR20080059067A KR101464255B1 KR 101464255 B1 KR101464255 B1 KR 101464255B1 KR 1020080059067 A KR1020080059067 A KR 1020080059067A KR 20080059067 A KR20080059067 A KR 20080059067A KR 101464255 B1 KR101464255 B1 KR 101464255B1
Authority
KR
South Korea
Prior art keywords
loops
program
memory
page
memory device
Prior art date
Application number
KR1020080059067A
Other languages
English (en)
Other versions
KR20090132878A (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 삼성전자주식회사
Priority to KR1020080059067A priority Critical patent/KR101464255B1/ko
Priority to US12/457,416 priority patent/US7995393B2/en
Priority to JP2009148655A priority patent/JP5652586B2/ja
Publication of KR20090132878A publication Critical patent/KR20090132878A/ko
Priority to US13/067,746 priority patent/US8305804B2/en
Priority to JP2014046741A priority patent/JP5916155B2/ja
Application granted granted Critical
Publication of KR101464255B1 publication Critical patent/KR101464255B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/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/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3486Circuits or methods to prevent overprogramming of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Abstract

여기에는 플래시 메모리 장치를 포함하는 메모리 시스템의 동작 방법이 제공되며, 이 동작 방법은 상기 플래시 메모리 장치의 선택된 메모리 블록에 속하는 적어도 하나의 페이지를 프로그램하는 단계와; 그리고 상기 프로그램된 페이지의 루프 횟수가 기준 루프 범위를 벗어났는 지의 여부에 따라, 상기 선택된 메모리 블록 또는 상기 플래시 메모리 장치를 무효한 것으로 결정하는 단계를 포함한다.

Description

플래시 메모리 장치 및 그것을 포함한 시스템{FLASH MEMORY DEVICE AND SYSTEM INCLUDING THE SAME}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치 및 그것을 포함한 시스템에 관한 것이다.
일반적인 불 휘발성 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도가 도 1에 도시되어 있고, 셀 당 1-비트 데이터와 2-비트 데이터를 저장하는 불휘발성 메모리 장치의 문턱 전압 분포들을 보여주는 도면이 도 2에 도시되어 있다. 이하, 일반적인 불 휘발성 메모리 장치의 프로그램 방법이 도 1 및 도 2를 참조하여 설명될 것이다.
설명에 앞서, 도 1에 도시된 흐름도는 U.S. Patent No. 7,352,630에 "Nonvolatile Memory Device Having Improved Program Speed And Associated Programming Method"라는 제목으로 게재되어 있다.
프로그램 동작이 개시되면, S1 단계에서, 프로그램될 데이터가 불 휘발성 메모리 장치에 로드된다. 일단 프로그램될 데이터의 로드가 완료되면, S2 단계에서, 로드된 데이터는 잘 알려진 프로그램 방식에 따라 불 휘발성 메모리 장치의 메모리 셀 어레이에 프로그램된다. 다음의 S3 단계에서, 프로그램된 메모리 셀들이 원하는 문턱 전압을 갖는 지의 여부를 판별하기 위해서 검증 읽기 동작이 수행된다. 검증 읽기 동작에 따라 읽혀진 데이터는 레지스터 내에 임시 저장된다. 레지스터 내에 저장된 데이터는 일정 단위로 순차적으로 선택되고, 선택된 데이터는 내부 데이터 버스에 실린다(S4). 이러한 동작은 "열 스캔 동작(column scan operation)"이라 불린다. S5 단계에서, 내부 데이터 버스 상에 실린 일정 단위의 데이터 비트들이 프로그램 패스 데이터 값을 갖는 지의 여부가 판별된다. 즉, 프로그램 동작이 성공하였는 지의 여부가 판별된다. 만약 내부 데이터 버스 상에 실린 일정 단위의 데이터 비트들 중 적어도 하나의 데이터 비트가 프로그램 페일 데이터 값을 가지면, 다음의 S6 단계에서, 현재의 프로그램 루프가 최대 프로그램 루프인 지의 여부가 판별된다. 만약 현재의 프로그램 루프가 최대 프로그램 루프가 아니면, 절차는 S2 단계로 진행한다. 만약 현재의 프로그램 루프가 최대 프로그램 루프이면, S7 단계에서, 프로그램 동작이 프로그램 페일로서 처리되고, 프로그램 절차가 종료된다. S5 단계로 돌아가면, 만약 내부 데이터 버스 상에 실린 일정 단위의 데이터 비트들이 모두 프로그램 패스 데이터 값을 가지면, S8 단계에서, 프로그램 동작은 프로그램 패스로서 처리되고, 프로그램 절차가 종료된다.
앞서의 설명에서 알 수 있듯이, 프로그램 동작은 다수의 프로그램 루프들을 통해 수행되며, 각 프로그램 루프는 프로그램 구간(S2)과 프로그램 검증 구간(S3∼S5)으로 구성된다. 프로그램 루프는 선택된 메모리 셀들이 모두 프로그램될 때까지 최대 프로그램 루프 횟수 내에서 반복적으로 수행된다. 잘 알려진 바와 같이, 프로 그램 전압은 프로그램 루프가 반복될 때 정해진 증가분만큼 증가될 것이다. 즉, 프로그램 동작은 ISPP(Incremental Stepping Pulse Program) 스킴을 이용하여 수행될 것이다. 프로그램될 데이터 비트들 중 일부(예를 들면, 하나의 데이터 비트)가 프로그램되지 않은 경우에도 프로그램 루프는 최대 프로그램 루프 횟수까지 반복될 것이다. 프로그램 루프의 증가에 따라 프로그램 전압이 증가하기 때문에, 고전압들(예를 들면, 프로그램 전압, 패스 전압, 등)이 인가되는 메모리 셀들이 과도하게 프로그램될 수 있다. 즉, 프로그램 교란(program distrubance) 그리고/또는 패스 전압 교란(pass voltage disturbance)이 생길 수 있다. 이는, 도 2에 도시된 바와 같이, 문턱 전압 분포의 넓어짐 그리고/또는 문턱 전압 분포의 이동을 초래할 것이다. 비록 프로그램 동작이 프로그램 패스로 판별되더라도, 메모리 셀들의 과도한 프로그램은 문턱 전압 분포의 넓어짐 및 문턱 전압 분포의 이동으로 인해 읽기 에러를 유발할 것이다. 결과적으로, 불 휘발성 메모리 장치가 사용될 수 없는 디바이스 페일(device fail)이 야기될 수 있다.
본 발명의 목적은 메모리 셀들의 오버-프로그램 현상을 방지할 수 있는 플래시 메모리 장치 및 그것을 포함한 메모리 시스템을 제공하는 것이다.
본 발명의 예시적인 실시예들은 플래시 메모리 장치를 포함하는 메모리 시스템의 동작 방법을 제공하며, 이 동작 방법은 상기 플래시 메모리 장치의 선택된 메 모리 블록에 속하는 적어도 하나의 페이지를 프로그램하는 단계와; 그리고 상기 프로그램된 페이지의 루프 횟수가 기준 루프 범위를 벗어났는 지의 여부에 따라, 상기 선택된 메모리 블록 또는 상기 플래시 메모리 장치를 무효한 것으로 결정하는 단계를 포함한다.
본 발명의 다른 예시적인 실시예들은 플래시 메모리 장치를 포함하는 메모리 시스템의 동작 방법을 제공하며, 이 동작 방법은 파워-업시 상기 플래시 메모리 장치로부터 마모도 정보를 읽는 단계와; 상기 마모도 정보에 따라 결정된 프로그램 전압의 시작 레벨로 상기 플래시 메모리 장치를 설정하는 단계를 포함한다.
본 발명에 의하면, 디바이스 페일을 방지함으로써 신뢰성을 향상시킬 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 반도체 메모리 장치로서 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
본 발명의 예시적인 실시예들에 따른 메모리 시스템은 메모리 셀들이 프로그램 전압 그리고/또는 패스 전압의 반복적인 인가로 인해 과도하게 프로그램되는 현상(이하, '오버-프로그램 현상'이라 칭함)을 줄임으로써 디바이스 페일을 방지하도록 구성될 것이다. 좀 더 구체적으로는, 오버-프로그램 현상은 프로그램 동작이 성공적으로 완료된 메모리 셀들로부터 읽혀진 데이터가 읽기 에러 데이터로서 판별되게 한다. 메모리 셀들의 오버 프로그램 현상은 다양한 원인들로 인해 생길 수 있다. 예를 들면, 상대적으로 빠른 프로그램 속도를 갖는 메모리 셀들은 상대적으로 느린 프로그램 속도를 갖는 메모리 셀들로 인해 과도하게 프로그램될 수 있다. 이와 더불어, PE 사이클링(Program/Erase cycling)에 따라 각 메모리 셀의 산화막에 전하가 트랩되며, 그 결과 메모리 셀의 문턱 전압은 예상되는 문턱 전압보다 높게 증가될 것이다. 이러한 문턱 전압의 증가는 프로그램 루프의 반복에 따라 결국 메모리 셀들이 과도하게 프로그램되게 한다.
기본적으로, 본 발명은 마모도 정보(예를 들면, PE 사이클 수)에 따라 프로그램 전압의 시작 레벨을 조정하는 기능, 마모도 정보(예를 들면, PE 사이클 수)에 따라 각 메모리 블록/페이지/칩의 목표 루프 횟수를 조정하는 기능, 각 메모리 블록의 루프 횟수 산포에 따라 각 메모리 블록을 조기에 배드 블록으로 처리하는 기능, 각 메모리 블록의 루프 횟수에 따라 각 메모리 블록을 조기에 배드 블록으로 처리하는 기능, 그리고/또는 그것한 기능들의 선택적인 조합을 수행하도록 구성될 것이다. 이는 이후 상세히 설명될 것이다. 이러한 기능들 중 어느 하나 또는 그것의 선택적인 조합을 통해 메모리 셀들이 과도하게 프로그램됨에 따라 야기될 수 있는 디바이스 페일을 방지하는 것이 가능할 것이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이고, 도 4는 도 3에 도시된 메모리 셀 어레이의 일부를 보여주는 회로도이다.
도 3을 참조하면, 본 발명의 예시적인 실시예에 따른 메모리 시스템은 메모리 제어기(100)와 플래시 메모리 장치(200)를 포함할 것이다. 도 3에는 단지 하나의 플래시 메모리 장치(200)가 도시되어 있다. 하지만, 복수의 플래시 메모리 장치들이 하나의 메모리 제어기(100)에 의해서 제어되도록 메모리 시스템이 구현될 수 있다. 메모리 제어기(100)는 외부(예를 들면, 호스트)로부터의 요청에 응답하여 플래시 메모리 장치(200)를 제어할 것이다. 메모리 제어기(100)는 플래시 메모리 장치(200)의 마모도 정보(wear count information)(또는, PE 사이클 정보)를 관리하도록 구성될 것이다. 그러한 마모도 정보는 메모리(110)에 저장될 것이다. 메모리(110)는 DRAM 또는 SRAM과 같은 랜덤 액세스 메모리일 것이다. 메모리(110)는 하나 또는 그 보다 많은 메모리들로 구성될 수 있다. 메모리(110)에 저장된 마모도 정보는 필요에 따라 플래시 메모리 장치(200)에 재저장/백업될 것이다(또는, 저장될 것이다). 메모리 제어기(100)는 플래시 메모리 장치(200) 또는 플래시 메모리 장치(200)의 각 메모리 블록에 대한 프로그램 전압의 시작 레벨이 조정되도록 마모 도 정보에 의거하여 플래시 메모리 장치(200)를 제어할 것이다. 또는, 메모리 컨트롤러(100)는 플래시 메모리 장치(200) 또는 플래시 메모리 장치(200)의 각 메모리 블록에 대한 프로그램 루프 횟수(이하, '목표 루프 횟수'라 칭함)가 조정되도록 마모도 정보에 의거하여 플래시 메모리 장치(200)를 제어할 것이다. 또는, 메모리 컨트롤러(100)는 플래시 메모리 장치(200) 또는 플래시 메모리 장치(200)의 각 메모리 블록의 루프 횟수 산포가 기준 산포를 초과하는 지의 여부에 따라 각 메모리 블록이 조기에 배드 블록으로 처리되도록 플래시 메모리 장치(200)를 제어할 것이다. 또는, 메모리 제어기(100)는 프로그램 동작이 수행된 페이지/메모리 블록의 프로그램 루프 횟수에 따라 메모리 블록이 조기에 배드 블록으로 처리되록 플래시 메모리 장치(200)를 제어할 것이다. 앞서 언급된 메모리 제어기(100)의 기능들은 단독으로 수행되거나 그러한 기능들은 선택적인 조합을 통해 수행될 수 있다. 이는 이후 상세히 설명될 것이다.
계속해서 도 3을 참조하면, 플래시 메모리 장치(200)는 메모리 셀 어레이(210), 읽기/쓰기 회로(220), 프로그램 전압 발생 회로(230), 입출력 인터페이스(240), 그리고 제어 로직(250)을 포함할 것이다. 메모리 셀 어레이(210)는 행들(예를 들면, 워드 라인들)과 열들(예를 들면, 비트 라인들)의 교차 영역들에 배열된 메모리 셀들을 포함하며, 각 메모리 셀은 1-비트 데이터 그리고/또는 M-비트 데이터(M은 2 또는 그 보다 큰 정수)를 저장할 것이다. 메모리 셀들은 복수의 메모리 블록들을 구성하도록 배열될 것이다. 예시적인 실시예에 있어서, 메모리 블록은, 도 4에 도시된 바와 같이, 복수의 스트링들(또는, 낸드 스트링들)(111)을 포함할 것이다. 각 스트링(111)은 스트링 선택 라인(SSL)에 연결된 스트링 선택 트랜지스터(SST), 접지 선택 라인(GSL)에 연결된 접지 선택 트랜지스터(GST), 그리고 대응하는 워드 라인들(WL0∼WLi-1)에 각각 연결된 복수의 메모리 셀들(MC0∼MCi-1)로 구성될 것이다. 각 스트링(111)은 대응하는 비트 라인과 공통 소오스 라인(CSL) 사이에 연결될 것이다.
다시 도 3을 참조하면, 읽기/쓰기 회로(220)는 제어 로직(250)에 의해서 제어되며, 메모리 셀 어레이(210)에 대한 읽기 및 쓰기 동작들을 수행할 것이다. 예를 들면, 읽기 동작 동안, 읽기/쓰기 회로(220)는 메모리 셀 어레이(210)로부터 데이터를 읽고, 읽혀진 데이터를 입출력 인터페이스(240)를 통해 메모리 제어기(100)로 출력할 것이다. 쓰기 동작 동안, 읽기/쓰기 회로(200)는 입출력 인터페이스(240)를 통해 메모리 제어기(100)로부터 데이터를 입력받고, 입력된 데이터를 메모리 셀 어레이(210)에 저장할 것이다. 여기서, 쓰기 동작은 이 분야에 잘 알려진 소거 동작과 프로그램 동작을 포함할 것이다. 프로그램 전압 발생 회로(230)는 제어 로직(250)의 제어에 응답하여 동작하며, 프로그램 동작에 필요한 전압들을 발생할 것이다. 그렇게 발생된 전압들은 메모리 셀 어레이(210) 그리고/또는 읽기/쓰기 회로(220)에 공급될 것이다. 제어 로직(250)은 플래시 메모리 장치(200)의 전반적인 동작을 제어하도록 구성될 것이다.
도 5는 본 발명의 예시적인 실시예에 따른 도 3에 도시된 제어 로직을 개략적으로 보여주는 블록도이다.
도 5를 참조하면, 본 발명에 따른 제어 로직(250)은 읽기/프로그램/소거 스 케쥴러(251), 루프 카운터(252), 프로그램 레지스터(253), 그리고 상태 레지스터(254)를 포함할 것이다.
읽기/프로그램/소거 스케쥴러(251)(이하, '스케쥴러'라 칭함)는 입력 명령에 응답하여 플래시 메모리 장치(200)의 읽기, 프로그램, 그리고 소거 동작들을 제어하도록 구성될 것이다. 하지만, 스케쥴러(251)의 기능이 여기에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 외부(예를 들면, 메모리 제어기)로부터 상태 레지스터(254)에 대한 액세스 동작이 요청될 때, 스케쥴러(251)는 그러한 요청에 응답하여 상태 레지스터(254)에 저장된 데이터가 외부로 출력되게 할 것이다. 상태 레지스터(254)에는 스케쥴러(251)의 제어하에 프로그램 결과 즉, 프로그램 패스(상태 패스) 또는 프로그램 페일(상태 페일)을 나타내는 정보, 루프 카운터(252)의 마지막 프로그램 루프 횟수를 나타내는 정보, 등이 저장될 수 있다.
루프 카운터(252)는 스케쥴러(251)의 제어에 따라 프로그램 루프 횟수를 카운트할 것이다. 프로그램 레지스터(253)는 스케쥴러(251)의 제어에 따라 프로그램 루프 횟수를 저장하도록 구성될 것이다. 본 발명의 경우, 그러한 프로그램 루프 횟수는 목표 루프 횟수로서 최대 루프 횟수가 될 것이다. 즉, 본 발명의 경우, 목표 루프 횟수로서 최대 루프 횟수는 가변될 것이다. 프로그램 레지스터(253)는, 또한, 스케쥴러(251)의 제어에 따라 프로그램 전압 발생 회로(230)에 의해서 생성될 프로그램 전압의 시작 레벨을 결정하기 위한 정보를 저장하도록 구성될 것이다. 스케쥴러(251)는 프로그램 동작시 프로그램 레지스터(253)에 저장된 프로그램 전압의 시 작 레벨을 결정하기 위한 정보에 따라 스텝 제어 코드를 프로그램 전압 발생 회로(230)로 제공할 것이다. 스텝 제어 코드는 스케줄러(251)의 제어하에 프로그램 루프의 반복에 따라 증가/감소될 것이다. 또는, 프로그램 레지스터(253)는 메모리 셀 어레이(210)에 속하는 메모리 블록들에 대한 마모도 정보를 저장하도록 구성될 수도 있다.
프로그램 레지스터(253)에는 목표 루프 횟수를 나타내는 정보, 프로그램 전압의 시작 레벨을 결정하기 위한 정보, 등이 파워-업시 조정 정보(trim information)로서 메모리 셀 어레이(210)의 특정 영역으로부터 로드될 수 있다. 그러한 정보는 테스트 과정을 통해 메모리 셀 어레이(210)의 특정 영역에 저장될 수 있다. 본 발명의 경우, 오버-프로그램 현상을 줄이기 위해서, 프로그램 레지스터(253)에 저장되는 정보는 외부(예를 들면, 메모리 제어기)의 요청에 따라 변경될 수 있으며, 이는 이후 상세히 설명될 것이다.
본 발명의 예시적인 실시예들에 있어서, 제어 로직(250)의 프로그램 레지스터(253)에 저장되는 프로그램 전압의 시작 레벨을 나타내는 데이터는 다양한 방법들을 통해 설정될 수 있다. 예를 들면, 프로그램 전압의 시작 레벨은 메모리 블록 단위 또는 칩 단위로 설정될 수 있다. 칩 단위로 프로그램 전압의 시작 레벨이 설정되는 경우, 프로그램 전압의 시작 레벨은 칩 즉, 플래시 메모리 장치의 평균(최대/최소) PE 사이클 수(범위)에 따라 가변될 수 있다. 이는 메모리 제어기(100)를 통해 테이블 형식으로 관리될 것이다. 그러한 테이블 정보 즉, 플래시 메모리 장치의 평균(최대/최소) PE 사이클 수(범위)와 프로그램 전압의 시작 레벨 사이의 관계 를 나타내는 정보는 플래시 메모리 장치(200)에 저장되며, 파워-업시 메모리 제어기(100)의 메모리(110)에 로드될 것이다. 이러한 경우 프로그램 전압의 시작 레벨은 다음과 같이 설정될 것이다.
본 발명의 예시적인 실시예들에 따른 메모리 시스템의 프로그램 전압의 시작 레벨을 설정하는 방법을 보여주는 도 6a를 참조하면, 먼저, 전원이 메모리 시스템에 공급될 것이다(S10), 파워-업시, 플래시 메모리 장치(200)에서 메모리 제어기(100)의 메모리(110)로 테이블 정보 즉, 플래시 메모리 장치의 평균(최대/최소) PE 사이클 수(범위)와 프로그램 전압의 시작 레벨 사이의 관계를 나타내는 정보가 로드될 것이다. 메모리 제어기(100)는 로드된 테이블 정보에 의거하여 플래시 메모리 장치(200)의 프로그램 전압의 시작 레벨을 설정할 것이다(S12). 이후, 외부(즉, 호스트)로부터 요청된 프로그램 동작이 수행될 것이다(S14).
이에 반해서, 메모리 블록 단위로 프로그램 전압의 시작 레벨이 설정되는 경우, 프로그램 전압의 시작 레벨은 각 메모리 블록의 PE 사이클 수(범위)에 따라 가변될 수 있다. 이는 메모리 제어기(100)를 통해 테이블 형식으로 관리될 것이다. 그러한 테이블 정보 즉, 플래시 메모리 장치(200)의 각 메모리 블록의 PE 사이클 수(범위)와 프로그램 전압의 시작 레벨 사이의 관계를 나타내는 정보는 플래시 메모리 장치(200)에 저장되며, 파워-업시 메모리 제어기(100)의 메모리(110)에 로드될 것이다. 이러한 경우 프로그램 전압의 시작 레벨은 다음과 같이 설정될 것이다.
본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 프로그램 전압의 시작 레벨을 설정하는 방법을 보여주는 도 6b를 참조하면, 파워-업시, 플래시 메모 리 장치(200)에서 메모리 제어기(100)의 메모리(110)로 테이블 정보 즉, 각 메모리 블록의 PE 사이클 수(범위)와 프로그램 전압의 시작 레벨 사이의 관계를 나타내는 정보가 로드될 것이다. 이후, 외부(예를 들면, 호스트)로부터 프로그램 동작이 요청될 것이다(S20). 프로그램 동작이 요청되면, 메모리 제어기(100)는 메모리(110)에 저장된 테이블 정보에 의거하여 플래시 메모리 장치(200)의 프로그램 전압의 시작 레벨을 설정할 것이다(S22). 즉, 메모리 제어기(100)는 프로그램될 메모리 블록에 대응하는 프로그램 전압의 시작 레벨을 나타내는 데이터를 플래시 메모리 장치(200)로 전송하고, 플래시 메모리 장치(200)는 입력된 데이터(프로그램 전압의 시작 레벨을 나타냄)를 프로그램 레지스터(253)에 저장할 것이다. 그 다음에, 요청된 프로그램 동작이 수행될 것이다(S24).
프로그램 전압의 시작 레벨은 또한 프로그램된 페이지의 루프 횟수를 참조하여 변경될 수 있다. 예를 들면, 프로그램 동작이 종료된 후 플래시 메모리 장치로부터 읽혀진 루프 횟수가 특정 루프 횟수보다 적은 지의 여부에 따라 플래시 메모리 장치/각 메모리 블록의 프로그램 전압의 시작 레벨이 메모리 제어기(100)의 제어에 따라 조정될 수 있다.
도 7은 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
설명에 앞서, 메모리 제어기(100)는 플래시 메모리 장치(200)의 마모도를 관리하도록 구성될 것이다. 이는, 예시적인 실시예에 있어서, 플래시 메모리 장치(200)의 메모리 블록들에 대한 소거 카운트 값들(또는, PE 사이클 값들)이 메모 리 제어기(100)에 의해서 관리됨을 의미한다. 그러한 PE 사이클 값들은 플래시 메모리 장치(200)의 메모리 셀 어레이(210)에 저장되며, 파워-업시 메모리 제어기(100)의 메모리(110)에 로드될 것이다.
본 발명에 따른 메모리 시스템은 프로그램 동작이 완료된 후 프로그램된 페이지의 루프 횟수를 읽도록 구성될 것이다. 오버-프로그램 현상으로 인한 디바이스 페일을 방지하기 위해서, 본 발명의 예시적인 실시예에 따른 메모리 시스템은 읽혀진 루프 횟수에 따라 프로그램된 페이지를 포함한 메모리 블록을 배드 블록으로 처리할 것이다. 좀 더 구체적으로 설명하면 다음과 같다.
이 분야의 통상적인 지식을 습득한 자들에게 잘 이해될 수 있는 바와 같이, 프로그램 동작 동안 반복된 프로그램 루프들의 횟수는 최종적으로 플래시 메모리 장치(200)의 루프 카운터(252)에 저장되어 있다. 프로그램 동작이 완료되면, 메모리 제어기(100)는 프로그램 루프 횟수를 읽기 위한 명령을 플래시 메모리 장치(200)로 출력할 것이다. 즉, 메모리 제어기(100)는 플래시 메모리 장치(200)로부터 루프 횟수를 읽는다(S100). 그 다음에, 메모리 제어기(100)는 메모리(110)에 저장된 프로그램된 메모리 블록의 PE 사이클 값을 검사한다(S110).
여기서, 메모리(110)에는 PE 사이클 값(또는, PE 사이클 범위) 및 그에 대응하는 특정 루프 횟수들(또는, 특정 루프 범위)(예를 들면, 하한 루프 횟수 및 상한 루프 횟수)이 저장되며, 이는 메모리 제어기(100)에 의해서 관리될 것이다.
메모리 제어기(100)는 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 하한 루프 횟수보다 적은 지 또는 상한 루프 횟수보다 많은 지의 여부를 판별할 것 이다(S120). 다시 말해서, 메모리 제어기(100)는 읽혀진 루프 횟수가 하한 및 상한 루프 횟수들에 의해서 정의되는 기준 루프 범위를 벗어났는 지의 여부를 판별할 것이다. 만약 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 하한 루프 횟수보다 적은 것으로 판별되면 또는 만약 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 상한 루프 횟수보다 많은 것으로 판별되면, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 메모리 제어기(100)는 프로그램된 메모리 블록을 배드 블록으로 처리할 것이다. 이에 반해서, 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 하한 루프 횟수보다 많은 것으로 판별되거나, 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 상한 루프 횟수보다 적은 것으로 판별되는 경우, 절차는 종료될 것이다.
예시적인 실시예에 있어서, 프로그램된 메모리 블록 즉, 프로그램된 페이지의 프로그램 루프 횟수가 적다는 것은 프로그램된 페이지의 메모리 셀들이 빠른 프로그램 특성을 가짐을 의미한다. 그러한 까닭에, 그러한 메모리 셀들은 다른 페이지에 대한 프로그램 동작 동안 패스 전압 교란으로 인해 과도하게 프로그램될 수 있다. 또한, 프로그램된 메모리 블록 즉, 프로그램된 페이지의 프로그램 루프 횟수가 많다는 것은 프로그램된 페이지의 메모리 셀들이 느린 프로그램 특성을 가짐을 의미한다. 이는 다른 페이지의 메모리 셀들이 느린 프로그램 특성을 갖는 메모리 셀들의 프로그램 동작 동안 패스 전압 교란으로 인해 과도하게 프로그램될 수 있음을 의미한다. 또는, 동일한 행에 연결된 메모리 셀들은 느린 프로그램 특성을 갖는 메모리 셀들의 반복적인 프로그램 동작 즉, 프로그램 교란으로 인해 과도하게 프로 그램될 수 있다. 따라서, 오버-프로그램 현상을 유발할 수 있는 페이지 또는 그를 포함하는 메모리 블록을 조기에 제거함으로써 디바이스 페일을 방지하는 것이 가능하다.
예시적인 실시예에 있어서, 도 7에서 설명된 동작(즉, 루프 횟수를 읽는 동작)은 플래시 메모리 장치(200)의 평균 PE 사이클 값(또는, 최소/최대 PE 사이클 값)이 미리 설정된 PE 사이클 값을 초과할 때, PE 사이클 값에 무관하게 항상, 또는 특정 시간이 초과될 때 수행될 수 있다. 하지만, 본 발명이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 8은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다. 도 8에서, S200 내지 S220 단계들은 도 7의 S100 내지 S120 단계들과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
S220 단계를 참조하면, 만약 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 하한 루프 횟수보다 적은 것으로 판별되면 또는 만약 읽혀진 루프 횟수가 검사된 PE 사이클 값에 대응하는 상한 루프 횟수보다 많은 것으로 판별되면, 절차는 S230 단계로 진행할 것이다. S230 단계에서, 메모리 제어기(100)는 프로그램된 페이지에 대한 읽기 동작이 수행되도록 플래시 메모리 장치(200)를 제어할 것이다. 즉, 프로그램된 페이지로부터 읽혀진 데이터는 플래시 메모리 장치(200)에서 메모리 제어기(100)로 출력될 것이다. 메모리 제어기(100)의 에러 검사 정정 회로(이하, 'ECC 회로'라 칭함)(미도시됨)는 플래시 메모리 장치(200)로부터 출력된 데이 터의 에러를 검출하고, 검출된 에러가 ECC 회로의 에러 정정 범위를 벗어나는 지의 여부를 판별할 것이다(S240). 만약 검출된 에러가 ECC 회로의 에러 정정 범위를 벗어나지 않은 것으로 판별되면, 절차는 종료될 것이다. 이에 반해서, 검출된 에러가 ECC 회로의 에러 정정 범위를 벗어나는 것으로 판별되는 경우, 절차는 S250 단계로 진행할 것이다. S250 단계에서, 메모리 제어기(100)는 프로그램 페이지 또는 그것을 포함한 메모리 블록을 배드 블록으로 처리할 것이다.
예시적인 실시예에 있어서, 앞서 설명된 동작은 칩 단위 또는 페이지 단위로 수행될 수도 있다. 게다가, 읽혀진 루프 횟수가 기준 루프 범위를 벗어나지 않을 때 그리고 읽혀진 루프 횟수가 하위 루프 횟수 이하일 때, 프로그램 전압의 시작 레벨이 메모리 제어기(100)의 제어에 따라 앞서 설명된 방식으로 조정될 수도 있다.
느리게 프로그램되는 메모리 셀들은 반복적인 프로그램 루프의 실행을 필요로 하며, 이는 빠르게 프로그램되는 메모리 셀들의 오버-프로그램 현상을 유발할 것이다. 이에 반해서, 빠르게 프로그램되는 메모리 셀들은 다른 메모리 셀들의 프로그램 동작 동안 프로그램 교란 또는 패스 전압 교란으로 인해 과도하게 프로그램될 수 있다. 따라서, 프로그램 루프 횟수가 미리 설정된 루프 범위(하한 및 상한 루프 횟수들에 의해서 결정됨)를 벗어나는 프로그램 루프 횟수를 갖는 페이지 또는 그것을 포함한 메모리 블록은 향후 디바이스 페일을 유발할 수 있다. 그러한 까닭에, 그러한 페이지 또는 그것을 포함한 메모리 블록을 조기에 배드 블록으로 처리함으로써 디바이스 페일을 방지하는 것이 가능하다.
도 9는 본 발명의 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이다.
프로그램 동작을 설명하기에 앞서, 본 발명의 예시적인 실시예에 따르면, 목표 루프 횟수는 제어 로직(253)의 프로그램 레지스터(253)에 저장되며, 목표 루프 횟수가 메모리 제어기(100)의 제어에 따라 가변 가능하다는 것에 유의하여야 할 것이다. 예를 들면, 목표 루프 횟수는 파워-업시 또는 매 프로그램 동작 이전에 메모리 제어기(100)의 제어에 따라 프로그램 레지스터(253)에 저장될 수 있다.
프로그램될 데이터는 입출력 인터페이스(240)를 통해 읽기/쓰기 회로(220)에 로드되며, 로드된 데이터는 제어 로직(250)의 제어에 따라 읽기/쓰기 회로(220)를 통해 메모리 셀 어레이(210)에 프로그램될 것이다(S300). 프로그램 동작이 수행된 후, 프로그램 동작이 성공적으로 수행되었는 지의 여부가 판별될 것이다(S310). 프로그램 동작이 성공적으로 수행되었는 지의 여부는 검증 읽기 동작과 열 스캔 동작을 통해 판별될 수 있다. 검증 읽기 동작 동안, 읽기/쓰기 회로(220)는 프로그램된 메모리 셀들로부터 데이터를 읽는다. 열 스캔 동작 동안, 읽기/쓰기 회로(220)는 읽혀진 데이터를 소정 단위로 선택되고 선택된 데이터 비트들이 프로그램 패스 데이터인 지의 여부를 판별한다. 판별 결과는 제어 로직(250)으로 전달될 것이다. 만약 선택된 데이터 비트들 중 적어도 하나가 프로그램 페일 데이터이면, 다시 말해서, 판별 결과가 프로그램 페일을 나타내면, 제어 로직(250)은 열 스캔 동작이 중지되도록 읽기/쓰기 회로(220)를 제어할 것이다. 만약 프로그램된 메모리 셀들로부터 읽혀진 데이터 모두 프로그램 패스 데이터이면, 제어 로직(250)은 프로그램 패 스를 나타내는 상태 데이터를 상태 레지스터(254)에 저장하며, 절차는 종료될 것이다.
만약 선택된 데이터 비트들 중 적어도 하나가 프로그램 페일 데이터이면, 다시 말해서, 판별 결과가 프로그램 페일을 나타내면, 제어 로직(240) 즉, 스케쥴러(251)는 루프 카운터(252)의 루프 카운트 값이 프로그램 레지스터(253)에 저장된 목표 루프 횟수에 도달하였는 지의 여부를 판별할 것이다(S320). 만약 루프 카운터(252)의 루프 카운트 값이 프로그램 레지스터(253)에 저장된 목표 루프 횟수에 도달하지 않은 것으로 판별되면, 루프 카운터(252)의 루프 카운트 값은 스케쥴러(251)의 제어에 따라 1만큼 증가될 것이다(S330). 그 다음에, 절차는 S300 단계로 진행할 것이다.
만약 루프 카운터(252)의 루프 카운트 값이 프로그램 레지스터(253)에 저장된 목표 루프 횟수에 도달한 것으로 판별되면, 절차는 S340 단계로 진행할 것이다. S340 단계에서는 페일 비트 수가 카운트될 것이다. 읽기/쓰기 회로(220)는 검증 읽기 동작을 통해 읽혀진 데이터 중 마지막으로 선택된 데이터(프로그램 페일을 유발한 데이터) 및 선택되지 않은 데이터에 포함된 페일 비트 수를 카운트할 것이다. 그 다음에, S350 단계에서, 제어 로직(252)은 카운트된 페일 비트 수가 메모리 제어기(100)의 에러 정정 가능한 비트 수를 초과하는 지의 여부를 판별할 것이다. 만약 카운트된 페일 비트 수가 메모리 제어기(100)의 에러 정정 가능한 비트 수를 초과하지 않는 것으로 판별되면, 프로그램 동작은 프로그램 패스로서 종료될 것이다. 만약 카운트된 페일 비트 수가 메모리 제어기(100)의 에러 정정 가능한 비트 수를 초과하는 것으로 판별되면, 프로그램 동작은 프로그램 페일로서 종료될 것이다(S360).
앞서 설명된 페일 비트 수를 카운트하는 동작 및 회로의 예시적인 실시예가 앞서 언급된 U.S. Patent No. 7,352,630에 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
제어 로직(250)의 프로그램 레지스터(253)에 저장되는 목표 루프 횟수는 다양한 방법들을 통해 설정될 수 있다. 예를 들면, 목표 루프 횟수는 메모리 블록 단위 또는 칩 단위로 설정될 수 있다. 칩 단위로 목표 루프 횟수가 설정되는 경우, 목표 루프 횟수는 칩 즉, 플래시 메모리 장치의 평균(최대/최소) PE 사이클 수(범위)에 따라 가변될 수 있다. 이는 메모리 제어기(100)를 통해 테이블 형식으로 관리될 것이다. 그러한 테이블 정보 즉, 플래시 메모리 장치의 평균(최대/최소) PE 사이클 수(범위)와 목표 루프 횟수 사이의 관계를 나타내는 정보는 플래시 메모리 장치(200)에 저장되며, 파워-업시 메모리 제어기(100)의 메모리(110)에 로드될 것이다. 이러한 경우 목표 루프 횟수는 다음과 같이 설정될 것이다.
본 발명의 예시적인 실시예들에 따른 메모리 시스템의 목표 루프 횟수를 설정하는 방법을 보여주는 도 10a를 참조하면, 먼저, 전원이 메모리 시스템에 공급될 것이다(S400), 파워-업시, 플래시 메모리 장치(200)에서 메모리 제어기(100)의 메모리(110)로 테이블 정보 즉, 플래시 메모리 장치의 평균(최대/최소) PE 사이클 수(범위)와 목표 루프 횟수 사이의 관계를 나타내는 정보가 로드될 것이다. 메모리 제어기(100)는 로드된 테이블 정보에 의거하여 플래시 메모리 장치(200)의 목표 루 프 횟수를 설정할 것이다(S410). 이후, 외부(즉, 호스트)로부터 요청된 프로그램 동작이 수행될 것이다. 프로그램 동작은 도 9에서 설명된 방식으로 수행되거나, 이 분야에 잘 알려진 방식으로 수행될 것이다.
이에 반해서, 메모리 블록 단위로 목표 루프 횟수가 설정되는 경우, 목표 루프 횟수는 각 메모리 블록의 PE 사이클 수(범위)에 따라 가변될 수 있다. 이는 메모리 제어기(100)를 통해 테이블 형식으로 관리될 것이다. 그러한 테이블 정보 즉, 플래시 메모리 장치(200)의 각 메모리 블록의 PE 사이클 수(범위)와 목표 루프 횟수 사이의 관계를 나타내는 정보는 플래시 메모리 장치(200)에 저장되며, 파워-업시 메모리 제어기(100)의 메모리(110)에 로드될 것이다. 이러한 경우 목표 루프 횟수는 다음과 같이 설정될 것이다.
본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 목표 루프 횟수를 설정하는 방법을 보여주는 도 10b를 참조하면, 파워-업시, 플래시 메모리 장치(200)에서 메모리 제어기(100)의 메모리(110)로 테이블 정보 즉, 각 메모리 블록의 PE 사이클 수(범위)와 목표 루프 횟수 사이의 관계를 나타내는 정보가 로드될 것이다. 이후, 외부(예를 들면, 호스트)로부터 프로그램 동작이 요청될 것이다(S500). 프로그램 동작이 요청되면, 메모리 제어기(100)는 메모리(110)에 저장된 테이블 정보에 의거하여 플래시 메모리 장치(200)의 목표 루프 횟수를 설정할 것이다(S510). 즉, 메모리 제어기(100)는 프로그램될 메모리 블록에 대응하는 목표 루프 횟수를 플래시 메모리 장치(200)로 전송하고, 플래시 메모리 장치(200)는 입력된 목표 루프 횟수를 프로그램 레지스터(253)에 저장할 것이다. 그 다음에, 요청된 프로그램 동작이 수행될 것이다(S520). 프로그램 동작은 도 9에서 설명된 방식으로 수행되거나, 이 분야에 잘 알려진 방식으로 수행될 것이다.
목표 루프 횟수가 외부(예를 들면, 메모리 제어기)의 관여없이 설정될 수도 있다. 예를 들면, 각 메모리 블록의 PE 사이클 수를 나타내는 데이터가 파워-업시 제어 로직(250)의 프로그램 레지스터(253)에 로드되고, 액세스된 메모리 블록의 어드레스 정보에 의거하여 목표 루프 횟수가 결정될 수도 있다.
일반적으로, 프로그램 루프 횟수는 PE 사이클 횟수가 증가함에 따라 감소한다. 이는 전하 트랩으로 인해 문턱 전압이 증가되기 때문이다. 앞서 설명된 목표 루프 횟수를 조정하여 오버 프로그램 현상으로 인한 디바이스 페일을 방지할 수 있다. 또는, 프로그램 전압의 시작 레벨을 조정함으로써 오버 프로그램 현상으로 인한 디바이스 페일을 방지할 수 있다. 예를 들면, 메모리 제어기(100)는 각 페이지/메모리 블록/칩의 PE 사이클 횟수(범위)와 그에 대응하는 프로그램 전압의 시작 레벨 간의 관계를 테이블 형식으로 관리하고, 그러한 테이블을 이용하여 각 페이지/메모리 블록/칩의 프로그램 전압의 시작 레벨을 플래시 메모리 장치(200)에 제공할 것이다. 페이지/메모리 블록 단위로 프로그램 전압의 시작 레벨이 관리되는 경우, 프로그램 동작이 요청될 때마다 프로그램 전압의 시작 레벨을 나타내는 데이터가 플래시 메모리 장치(200)에 제공될 것이다. 이에 반해서, 칩 단위로 프로그램 전압의 시작 레벨이 관리되는 경우, 파워-업시 프로그램 전압의 시작 레벨을 나타내는 데이터가 플래시 메모리 장치(200)에 제공될 것이다. 플래시 메모리 장치(200)에 제공되는 데이터는 제어 로직(250)의 프로그램 레지스터(253)에 저장될 것이다.
또는, 플래시 메모리 장치(200)는 메모리 제어기(100)의 관여없이 자체적으로 프로그램 전압의 시작 레벨을 관리하도록 구성될 수도 있다. 예를 들면, 파워-업 이후 그리고 프로그램 동작 이전에 프로그램 레지스터(253)에 각 메모리 블록/페이지의 PE 사이클 수가 저장될 수 있다. 메모리 블록/페이지에 대한 프로그램 동작이 요청될 때, 제어 로직(250)은 프로그램 레지스터(253)에 저장된 PE 사이클 정보에 의거하여 시작 레벨을 결정하기 위한 데이터를 프로그램 전압 발생 회로(230)에 제공할 것이다. 프로그램 전압 발생 회로(230)는 입력된 데이터에 따라 결정되는 프로그램 전압을 발생할 것이다.
본 발명의 다른 예시적인 실시예들에 따르면, 루프 횟수 산포를 관리함으로써 오버 프로그램 현상으로 인한 디바이스 페일을 방지하는 것이 가능하다. 좀 더 구체적인 설명은 다음과 같다.
도 11은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이며, 도 12는 본 발명의 예시적인 실시예들에 따른 각 페이지와 그것의 루프 횟수 사이의 관계를 보여주는 도면이다.
먼저, 플래시 메모리 장치(200)에 대한 프로그램 동작이 수행될 것이다(S600). 프로그램 동작이 완료되면, 메모리 제어기(100)는 플래시 메모리 장치(200)로부터 프로그램된 페이지의 루프 횟수를 읽는다(S610). 이는 앞서 설명된 것과 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다. 읽혀진 루프 횟수는, 도 12에 도시된 바와 같이, 메모리 제어기(100)에 의해서 테이블 형식으로 관리될 것이다. 그러한 테이블을 이후 '델타 산포 테이블'(delta distribution table)이라 칭한다. 플래시 메모리 장치(200)로부터 루프 횟수가 읽혀짐에 따라, 델타 산포 테이블은 메모리 제어기(100)에 의해서 갱신될 것이다(S620). 델타 산포 테이블은 메모리 제어기(100)의 메모리(110)에 저장되며, 필요시에 플래시 메모리 장치(200)에 재저장/백업될 것이다. 플래시 메모리 장치(200)에 저장된 델타 산포 테이블은 파워-업시 메모리 제어기(100)의 메모리(110)에 로드될 것이다.
S630 단계에서, 메모리 제어기(100)는 델타 산포 테이블에 의거하여 각 메모리 블록의 델타 산포 값이 기준 델타 산포 값을 초과하는 지의 여부를 판별할 것이다. 다시 말해서, 메모리 제어기(100)는 델타 산포 테이블에 기준 델타 산포 값으로서 기준 루프 범위를 벗어나는 루프 횟수가 존재하는 지의 여부를 판별할 것이다. 여기서, 각 메모리 블록의 델타 산포 값은 최소의 루프 횟수와 최대 루프 횟수의 차를 의미한다. 예를 들면, 도 12를 참조하면, 메모리 블록(BLK0)은 최소 루프 횟수가 '1'이고 최대 루프 횟수가 '6'이라고 가정하면 '5'의 델타 산포 값을 갖는다. 또는, 메모리 블록(BLK1)은 최소 루프 횟수가 '1'이고 최대 루프 횟수가 '4'이라고 가정하면 '3'의 델타 산포 값을 갖는다. 예시적인 실시예에 있어서, 기준 델타 산포 값이 '3'이라 가정하자. 이러한 가정에 의하면, 메모리 블록(BLK0)의 델타 산포 값이 기준 델타 산포 값을 초과하기 때문에, 메모리 블록(BLK0)은 배드 블록으로 처리될 것이다(S640). 만약 각 델타 산포 값이 기준 델타 산포 값을 초과하지 않는 것으로 판별되면, 절차는 종료될 것이다.
예시적인 실시예에 있어서, 프로그램 동작이 종료될 때마다 델타 산포 테이 블이 갱신되는 반면에, 각 메모리 블록의 델타 산포 값이 기준 델타 산포 값을 초과하는 지의 여부는 다른 시점에 수행될 수도 있다.
델타 산포 값이 기준 델타 산포 값을 초과하는 경우, 적은 루프 횟수(예를 들면, 1회 또는 2회)를 갖는 페이지의 메모리 셀들은 큰 루프 횟수(예를 들면, 5회 또는 6회)를 갖는 페이지의 프로그램 동작 동안 과도하게 프로그램될 수 있다. 그러한 메모리 셀들로 인해 디바이스 페일이 유발될 수 있기 때문에, 조기에 그러한 페이지를 갖는 메모리 블록을 배드 블록으로 처리함으로써 디바이스 페일을 방지하는 것이 가능하다.
도 13은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다. 도 13에 있어서, S700 단계 내지 S730 단계는 도 11에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
S730 단계를 참조하면, 만약 각 델타 산포 값이 기준 델타 산포 값을 초과하지 않는 것으로 판별되면, 절차는 S750 단계로 진행할 것이다. S750 단계에서, 메모리 제어기(100)는 델타 산포 테이블에 의거하여 특정 루프 횟수(예를 들면, 1회 또는 2회)보다 적은 루프 횟수를 포함하는 페이지(들)이 존재하는 지의 여부를 판별할 것이다. 여기서, 특정 루프 횟수 내에서 프로그램되는 메모리 셀들은 다른 페이지들의 프로그램 동작 동안 스트레스를 받으며, 그 결과 특정 루프 횟수 내에서 프로그램되는 메모리 셀들은 과도하게 프로그램될 수 있다. 다시 말해서, 그러한 메모리 셀들은 빠른 속도로 프로그램될 것이다. 특정 루프 횟수 내에서 프로그램되 는 메모리 셀들의 오버 프로그램 현상을 방지하기 위해서 프로그램 전압의 시작 레벨이 조정될 것이다(S760). 즉, 특정 루프 횟수(예를 들면, 1회 또는 2회)보다 적은 루프 횟수를 포함하는 페이지(들)이 존재하는 것으로 판별되면, S760 단계에서, 프로그램 전압의 시작 레벨이 조정될 것이다. 이는 앞서 설명된 방식에 따라 수행될 수 있으며, 그것에 대한 설명은 그러므로 생략될 것이다.
앞서의 설명에 따르면, 델타 산포 테이블이 루프 횟수를 통해 관리된다. 하지만, 본 발명이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 프로그램 동작이 수행되는 동안, 도 14에 도시된 바와 같이, 메모리 제어기(100)는 플래시 메모리 장치(200)의 각 메모리 블록에 속한 페이지들 각각의 제어 신호(예를 들면, R/nB)의 활성화 시간을 측정할 것이다. 메모리 제어기(100)는 그렇게 측정된 시간을 이용하여 델타 산포 테이블을 구성하고, 그러한 델타 산포 테이블은 도 11 및 도 13에서 설명된 동작 방법에 사용될 수 있다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템이 도 15에 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템은 버스(2001)에 전기적으로 연결된 마이크로프로세서(2100), 사용자 인터페이스(2200), 베이스밴드 칩 셋(baseband chipset)과 같은 모뎀(2300), 메모리 제어기(2400), 그리고 플래시 메모리 장치(2500)를 포함한다. 메모리 제어기(2400)는 도 1에 도시된 메모리 제어기에 대응하며, 플래시 메모리 장치(2500)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(2500)에는 마이크로프로세서(2100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기(2400)와 플래시 메모리 장치(2500)는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 제어기(2400)와 플래시 메모리 장치(2500)는 데이터를 저장하는 데 불 휘발성 메모리를 메모리 카드를 구성할 수 있다.
도 16은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템을 보여주는 블록도이다.
도 16에 도시된 메모리 시스템은 메모리(510)와 메모리 제어기(520)가 카드(530)를 구성하도록 구현된다는 점을 제외하면 도 3과 유사하다. 예를 들면, 카드(530)는 플래시 메모리 카드와 같은 메모리 카드일 수 있다. 즉, 카드(530)는 디 지털, 카메라, 개인 컴퓨터 등과 같은 전자 장치를 사용하기 위한 어떤 산업 표준을 만족하는 카드일 수 있다. 메모리 제어기(520)가 카드(530)에 의해 또 다른 (예를 들면, 외부) 장치로부터 수신된 제어 신호들에 기초하여 메모리(510)를 제어할 수 있다는 것이 이해될 것이다.
도 17은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템을 보여주는 블록도이다.
도 17에 도시된 시스템은 휴대용 장치(6000)를 나타낸다. 휴대용 장치(6000)는 MP3 플레이어, 비디오 플레이어, 콤비네이션 비디오 및 오디오 플레이어 등일 수 있다. 도시된 바와 같이, 휴대용 장치(6000)는 메모리(510) 및 메모리 제어기(520)를 포함한다. 휴대용 장치(6000)는 또한 인코더 및 디코더(610), 프리젠테이션 구성요소들(620) 및 인터페이스(630)를 포함할 수 있다.
인코더 및 디코더(EDC)(610)에 의해 처리된 데이터(비디오, 오디오, 등)는 메모리 제어기(520)를 통해 메모리(510)로 입력되고 메모리(510)로부터 출력될 수 있다. 도 16에서 점선들에 의해 도시된 바와 같이, 데이터는 EDC(610)로부터 메모리(510)로 직접 입력되고 그리고/또는 메모리(510)로부터 EDC(610)로 직접 출력될 수 있다.
EDC(610)는 메모리(510)에 저장하기 위해 데이터를 인코딩할 수 있다. 예를 들면, EDC(610)는 메모리(510)에 저장하기 위해 오디오 데이터에 대해 MP3 인코딩을 수행할 수 있다. 다른 방법으로, EDC(610)는 메모리(510)에 저장하기 위해 비디오 데이터에 대해 MPEG 인코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 인코딩하기 위한 복수의 인코더들을 포함할 수 있다. 예를 들면, EDC(610)는 오디오 데이터를 위한 MP3 인코더 및 비디오 데이터를 위한 MPEG 인코더를 포함할 수 있다.
EDC(610)는 메모리(510)로부터의 출력을 디코딩할 수 있다. 예를 들면, EDC(610)는 메모리(510)로부터 출력된 오디오 데이터에 대해 MP3 디코딩을 수행할 수 있다. 다른 방법으로, EDC(610)는 메모리(510)로부터 출력된 비디오 데이터에 대해 MPEG 디코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 디코딩하기 위한 복수의 디코더들을 포함할 수 있다. 예를 들면, EDC(610)는 오디오 데이터를 위한 MP3 디코더 및 비디오 데이터를 위한 MPEG 디코더를 포함할 수 있다.
EDC(610)가 디코더들만을 포함할 수 있다는 것이 또한 이해될 것이다. 예를 들면, 이미 인코딩된 데이터는 EDC(610)에 의해 수신될 수 있고 메모리 제어기(520) 및/또는 메모리(510)로 패스될 수 있다.
EDC(610)는 인터페이스(630)를 통해 인코딩을 위한 데이터를 수신하거나 이미 인코딩된 데이터를 수신할 수 있다. 인터페이스(630)는 알려진 표준(예를 들면, 펌웨어, USB, 등)에 따를 수 있다. 인터페이스(630)는 또한 하나 이상의 인터페이스를 포함할 수 있다. 예를 들면, 인터페이스(630)는 펌웨어 인터페이스, USB 인터페이스, 등을 포함할 수 있다. 메모리(510)로부터의 데이터는 인터페이스(630)를 통해 출력될 수도 있다.
프리젠테이션 구성요소들(620)은 메모리로부터 출력되고 그리고/또는 EDC(610)에 의해 디코딩된 데이터를 사용자에게 표시할 수 있다. 예를 들면, 프리젠테이션 구성요소들(620)은 오디오 데이터를 출력하기 위한 스피커 잭, 비디오 데이터를 출력하기 위한 디스플레이 스크린, 등을 포함할 수 있다.
도 18은 호스트 시스템(7000)이 도 16의 카드(530)에 연결되는 실시 예들을 보여준다. 실시 예들에서, 메모리 제어기(520)가 메모리(510)의 동작을 제어하도록 호스트 시스템(7000)은 제어 신호들을 카드(530)로 인가할 수 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물 의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 일반적인 불 휘발성 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이다.
도 2는 셀 당 1-비트 데이터와 2-비트 데이터를 저장하는 불휘발성 메모리 장치의 문턱 전압 분포들을 보여주는 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 4는 도 3에 도시된 메모리 셀 어레이의 일부를 보여주는 회로도이다.
도 5는 본 발명의 예시적인 실시예에 따른 도 3에 도시된 제어 로직을 개략적으로 보여주는 블록도이다.
도 6a 및 도 6b는 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 프로그램 전압의 시작 레벨을 설정하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이다.
도 10a 및 도 10b는 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 목표 루프 횟수를 설정하는 방법을 보여주는 흐름도이다.
도 11은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 12는 본 발명의 예시적인 실시예들에 따른 각 페이지와 그것의 루프 횟수 사이의 관계를 보여주는 도면이다.
도 13은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 14는 도 13의 메모리 시스템의 동작 방법에 따른 델타 산포 테이블을 설명하기 위한 도면이다.
도 15는 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템을 보여주는 블록도이다.
도 16은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템을 보여주는 블록도이다.
도 17은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템을 보여주는 블록도이다.
도 18은 호스트 시스템이 도 16의 카드에 연결되는 실시예들을 보여준다.

Claims (20)

  1. 플래시 메모리 장치를 포함하는 메모리 시스템의 동작 방법에 있어서:
    상기 플래시 메모리 장치의 선택된 메모리 블록에 속하는 적어도 하나의 페이지를 프로그램하는 단계와; 그리고
    상기 프로그램된 페이지의 루프 횟수가 기준 루프 범위를 벗어났는 지의 여부에 따라, 상기 선택된 메모리 블록 또는 상기 플래시 메모리 장치를 무효한 것으로 결정하는 단계를 포함하며,
    상기 기준 루프 범위는 상기 플래시 메모리 장치에 저장된 하위 또는 상위 루프 횟수들을 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  2. 제 1 항에 있어서,
    상기 프로그램된 페이지의 루프 횟수가 기준 루프 범위를 벗어났는 지의 여부는
    상기 플래시 메모리 장치로부터 상기 프로그램된 페이지의 루프 횟수를 읽고, 상기 선택된 메모리 블록의 마모도 정보에 대응하는 상기 하위 및 상위 루프 횟수들을 상기 기준 루프 범위로서 검사하고, 상기 읽혀진 루프 횟수가 상기 하위 루프 횟수보다 작은 지 또는 상기 읽혀진 루프 횟수가 상기 상위 루프 횟수보다 큰 지의 여부를 판별함으로써 결정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  3. 제 2 항에 있어서,
    상기 프로그램된 페이지의 루프 횟수가 상기 기준 루프 범위를 벗어나지 않을 때 혹은 상기 프로그램된 페이지의 루프 횟수가 상기 하위 루프 횟수보다 작은 것으로 판별될 때, 상기 플래시 메모리 장치의 프로그램 전압의 시작 레벨을 조정하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  4. 제 2 항에 있어서,
    상기 읽혀진 루프 횟수가 상기 하위 루프 횟수보다 작은 것으로 또는 상기 읽혀진 루프 횟수가 상기 상위 루프 횟수보다 큰 것으로 판별될 때, 상기 프로그램된 페이지의 데이터가 에러 정정 범위를 초과하였는 지의 여부를 판별하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  5. 제 4 항에 있어서,
    상기 프로그램된 페이지의 데이터가 에러 정정 범위를 초과하지 않는 것으로 판별될 때, 상기 프로그램된 페이지를 포함한 메모리 블록은 유효한 것으로 결정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  6. 제 4 항에 있어서,
    상기 프로그램된 페이지의 데이터가 에러 정정 범위를 초과하는 것으로 판별될 때, 상기 프로그램된 페이지를 포함한 메모리 블록은 무효한 것으로 결정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  7. 제 1 항에 있어서,
    상기 프로그램된 페이지의 루프 횟수가 기준 루프 범위를 벗어났는 지의 여부는
    상기 플래시 메모리 장치로부터 상기 프로그램된 페이지의 루프 횟수를 읽고, 상기 읽혀진 루프 횟수를 이용하여 델타 산포 테이블을 구성하고, 상기 델타 산포 테이블에 의거하여 상기 선택된 메모리 블록의 델타 산포 값이 기준 델타 산포 값을 초과하는 지의 여부를 판별함으로써 결정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  8. 제 7 항에 있어서,
    상기 선택된 메모리 블록의 델타 산포 값이 상기 기준 델타 산포 값을 초과하는 것으로 판별될 때, 상기 기준 델타 산포 값을 초과하는 델타 산포 값을 갖는 메모리 블록을 무효한 것으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  9. 제 8 항에 있어서,
    상기 선택된 메모리 블록의 델타 산포 값이 상기 기준 델타 산포 값을 초과하지 않는 것으로 판별될 때, 상기 델타 산포 테이블에 특정 루프 횟수 이하의 루프 횟수가 포함되는 지의 여부를 메모리 블록 단위로 판별하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  10. 제 9 항에 있어서,
    상기 델타 산포 테이블에 특정 루프 횟수 이하의 루프 횟수가 포함되는 것으로 판별될 때, 상기 특정 루프 횟수 이하의 루프 횟수를 포함하는 메모리 블록에 대한 프로그램 전압의 시작 레벨을 조정하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  11. 제 1 항에 있어서,
    상기 메모리 시스템은 메모리 카드, 에스에스디, 휴대용 장치의 저장 매체, 그리고 컴퓨팅 장치의 저장 매체 중 어느 하나인 것을 특징으로 하는 메모리 시스템의 동작 방법.
  12. 제 1 항에 있어서,
    상기 프로그램된 페이지의 루프 횟수가 기준 루프 범위를 벗어났는 지의 여부는 상기 플래시 메모리 장치로부터 출력되는 레디/비지 신호의 활성화 시간을 측정함으로써 결정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  13. 제 1 항에 있어서,
    상기 플래시 메모리 장치의 선택된 메모리 블록에 속하는 적어도 하나의 페이지를 프로그램하는 단계는
    상기 페이지에 속한 메모리 셀들을 로드된 데이터로 프로그램하는 단계와;
    상기 페이지의 메모리 셀들이 정상적으로 프로그램되었는 지의 여부를 판별하는 단계와;
    상기 페이지의 메모리 셀들 중 적어도 하나가 정상적으로 프로그램되지 않은 것으로 판별될 때, 현재의 루프 횟수가 가변 가능한 목표 루프 회수에 도달하였는 지의 여부를 판별하는 단계와;
    현재의 루프 횟수가 가변 가능한 목표 루프 회수에 도달한 것으로 판별되면, 상기 프로그램된 페이지에 포함된 페일 비트 수가 정정 가능한 비트 수를 초과하는 지의 여부를 판별하는 단계와; 그리고
    상기 페이지에 포함된 페일 비트 수가 정정 가능한 비트 수를 초과하지 않는 것으로 판별될 때, 프로그램 절차를 상태 패스로서 종료하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  14. 제 13 항에 있어서,
    상기 가변 가능한 목표 루프 횟수는 상기 선택된 메모리 블록의 마모도 정보에 따라 파워-업시 설정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  15. 제 13 항에 있어서,
    상기 가변 가능한 목표 루프 횟수는 상기 선택된 메모리 블록의 마모도 정보에 따라 상기 선택된 메모리 블록에 대한 프로그램 동작이 요청될 때마다 설정되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020080059067A 2008-06-23 2008-06-23 플래시 메모리 장치 및 그것을 포함한 시스템 KR101464255B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020080059067A KR101464255B1 (ko) 2008-06-23 2008-06-23 플래시 메모리 장치 및 그것을 포함한 시스템
US12/457,416 US7995393B2 (en) 2008-06-23 2009-06-10 Flash memory device and system including the same
JP2009148655A JP5652586B2 (ja) 2008-06-23 2009-06-23 メモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカード
US13/067,746 US8305804B2 (en) 2008-06-23 2011-06-23 Flash memory device and system including the same
JP2014046741A JP5916155B2 (ja) 2008-06-23 2014-03-10 メモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080059067A KR101464255B1 (ko) 2008-06-23 2008-06-23 플래시 메모리 장치 및 그것을 포함한 시스템

Publications (2)

Publication Number Publication Date
KR20090132878A KR20090132878A (ko) 2009-12-31
KR101464255B1 true KR101464255B1 (ko) 2014-11-25

Family

ID=41431130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080059067A KR101464255B1 (ko) 2008-06-23 2008-06-23 플래시 메모리 장치 및 그것을 포함한 시스템

Country Status (3)

Country Link
US (2) US7995393B2 (ko)
JP (2) JP5652586B2 (ko)
KR (1) KR101464255B1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100908299B1 (ko) * 2008-10-16 2009-07-17 (주)참빛 다이오드 패키지용 리드프레임 기판 및 이를 구비한다이오드 패키지
US8358540B2 (en) * 2010-01-13 2013-01-22 Micron Technology, Inc. Access line dependent biasing schemes
US8737141B2 (en) * 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8638632B2 (en) 2010-09-23 2014-01-28 Micron Technology, Inc. Access line management in a memory device
JP2012155806A (ja) 2011-01-28 2012-08-16 Toshiba Corp 不揮発性半導体記憶装置
US8451662B2 (en) * 2011-03-03 2013-05-28 Micron Technology, Inc. Reading memory cell history during program operation for adaptive programming
US8379454B2 (en) * 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US20130185612A1 (en) * 2012-01-18 2013-07-18 Samsung Electronics Co., Ltd. Flash memory system and read method of flash memory system
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
US20130346812A1 (en) * 2012-06-22 2013-12-26 Micron Technology, Inc. Wear leveling memory using error rate
KR102025240B1 (ko) 2013-04-01 2019-11-04 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
JP2015008029A (ja) 2013-06-26 2015-01-15 マイクロン テクノロジー, インク. 半導体装置
US8891308B1 (en) 2013-09-11 2014-11-18 Sandisk Technologies Inc. Dynamic erase voltage step size selection for 3D non-volatile memory
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
KR102314135B1 (ko) 2015-06-22 2021-10-18 삼성전자 주식회사 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level
KR102449196B1 (ko) 2016-01-15 2022-09-29 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
KR20180009246A (ko) 2016-07-18 2018-01-26 에스케이하이닉스 주식회사 비휘발성 메모리 장치, 데이터 저장 장치 및 그것의 동작 방법
KR20180062158A (ko) 2016-11-30 2018-06-08 삼성전자주식회사 루프 상태 정보를 생성하는 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US10678633B2 (en) * 2017-11-30 2020-06-09 SK Hynix Inc. Memory system and operating method thereof
KR20180100984A (ko) * 2017-03-03 2018-09-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102457662B1 (ko) * 2017-10-31 2022-10-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
KR102460526B1 (ko) 2018-01-04 2022-11-01 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치, 불휘발성 메모리 장치, 그리고 스토리지 장치의 동작 방법
KR102461099B1 (ko) * 2018-08-07 2022-11-01 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 저장 장치 및 그 동작 방법
US10741256B2 (en) * 2018-09-18 2020-08-11 Western Digital Technologies, Inc. Data storage systems and methods for improved recovery after a write abort event
KR20200043814A (ko) * 2018-10-18 2020-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20210092860A (ko) 2020-01-16 2021-07-27 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
CN114582402A (zh) * 2022-02-28 2022-06-03 东芯半导体股份有限公司 非易失性存储器及其编程方法、计算机系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070012582A (ko) * 2005-07-23 2007-01-26 삼성전자주식회사 비휘발성 메모리의 기입/독출 내구력 개선 장치 및 그 방법

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63200399A (ja) * 1987-02-16 1988-08-18 Hitachi Ltd デ−タ処理システム
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JPH05166390A (ja) * 1991-12-13 1993-07-02 Ricoh Co Ltd メモリカードとそのデータの書き込み,消去方法
JP2647321B2 (ja) * 1991-12-19 1997-08-27 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた記憶システム
JPH05314754A (ja) * 1992-05-08 1993-11-26 Toshiba Corp メモリカード装置
JP3135673B2 (ja) * 1992-05-08 2001-02-19 株式会社東芝 メモリのデータ書き込み装置
JPH0750558B2 (ja) * 1992-09-22 1995-05-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリ
JP3737525B2 (ja) * 1994-03-11 2006-01-18 株式会社東芝 半導体記憶装置
JPH07272493A (ja) * 1994-03-31 1995-10-20 Fuji Film Micro Device Kk 半導体デバイスへのプログラム
JPH08124392A (ja) * 1994-10-20 1996-05-17 Toshiba Corp 半導体記憶装置の過剰書込み修正方法
JP3636228B2 (ja) * 1995-07-15 2005-04-06 株式会社東芝 不揮発性半導体記憶装置
JP3941149B2 (ja) * 1996-12-03 2007-07-04 ソニー株式会社 半導体不揮発性記憶装置
JPH1040176A (ja) * 1996-07-25 1998-02-13 Canon Inc 電子機器におけるメモリ管理システム,メモリ管理方法およびコンピュータで読み出し可能なメモリ管理プログラムを格納した記憶媒体
JPH10320984A (ja) * 1997-05-15 1998-12-04 Sharp Corp 記憶装置
JPH11232887A (ja) * 1998-02-18 1999-08-27 Denso Corp 電子装置
KR100280474B1 (ko) 1998-04-30 2001-02-01 김영환 메모리 반도체의 라이트장치 및 방법
JP3854025B2 (ja) * 1998-12-25 2006-12-06 株式会社東芝 不揮発性半導体記憶装置
JP2000207897A (ja) * 1999-01-12 2000-07-28 Nec Corp 電気的書換可能な不揮発性メモリのテスト方法および電気的書換可能な不揮発性メモリのテストプログラムを記録した情報記録媒体
JP2001273792A (ja) * 2000-03-27 2001-10-05 Nec Microsystems Ltd フラッシュメモリの書き込み・消去制御方法
JP4413406B2 (ja) * 2000-10-03 2010-02-10 株式会社東芝 不揮発性半導体メモリ及びそのテスト方法
JP3799269B2 (ja) * 2001-12-10 2006-07-19 株式会社東芝 不揮発性半導体記憶装置
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2004025623A (ja) * 2002-06-25 2004-01-29 Matsushita Electric Works Ltd 板素材の選別方法
KR100550789B1 (ko) * 2002-07-18 2006-02-08 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램/소거 전압 공급 회로
JP2004225571A (ja) 2003-01-21 2004-08-12 Hisao Igawa 排気ガス浄化装置
JP2004241045A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置
JP2005353242A (ja) * 2004-06-14 2005-12-22 Toshiba Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
JP2006048783A (ja) 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード
JP4261462B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 不揮発性メモリシステム
JP4261461B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 半導体集積回路装置、及びそれを用いた不揮発性メモリシステム
JP4786171B2 (ja) * 2004-12-10 2011-10-05 株式会社東芝 半導体記憶装置
KR100621636B1 (ko) * 2005-06-01 2006-09-07 삼성전자주식회사 워드 라인 전압 발생 회로 및 그것을 갖는 불 휘발성메모리 장치
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
JP2007004892A (ja) * 2005-06-23 2007-01-11 Toshiba Corp 半導体集積回路装置
KR100648290B1 (ko) * 2005-07-26 2006-11-23 삼성전자주식회사 프로그램 속도를 향상시킬 수 있는 불 휘발성 메모리 장치및 그것의 프로그램 방법
US7023737B1 (en) * 2005-08-01 2006-04-04 Sandisk Corporation System for programming non-volatile memory with self-adjusting maximum program loop
JP2007133968A (ja) * 2005-11-10 2007-05-31 Sharp Corp 不揮発性半導体記憶装置
JP4909670B2 (ja) * 2006-01-24 2012-04-04 株式会社東芝 不揮発性半導体記憶装置及びそれを用いた不揮発性メモリシステム
US7495966B2 (en) * 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment
JP4901348B2 (ja) * 2006-07-20 2012-03-21 株式会社東芝 半導体記憶装置およびその制御方法
US7679961B2 (en) * 2007-04-25 2010-03-16 Micron Technology, Inc. Programming and/or erasing a memory device in response to its program and/or erase history

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070012582A (ko) * 2005-07-23 2007-01-26 삼성전자주식회사 비휘발성 메모리의 기입/독출 내구력 개선 장치 및 그 방법

Also Published As

Publication number Publication date
KR20090132878A (ko) 2009-12-31
JP5916155B2 (ja) 2016-05-11
US20110255338A1 (en) 2011-10-20
US20090316483A1 (en) 2009-12-24
JP2010003401A (ja) 2010-01-07
US7995393B2 (en) 2011-08-09
US8305804B2 (en) 2012-11-06
JP2014132511A (ja) 2014-07-17
JP5652586B2 (ja) 2015-01-14

Similar Documents

Publication Publication Date Title
KR101464255B1 (ko) 플래시 메모리 장치 및 그것을 포함한 시스템
US9406394B2 (en) Flash memory device using adaptive program verification scheme and related method of operation
TWI506633B (zh) 快閃記憶體裝置及其程式化方法
US9691486B2 (en) Data storage device and method of programming memory cells
US8179718B2 (en) Memory device and memory programming method
US8144505B2 (en) Nonvolatile memory devices supporting memory cells having different bit storage levels and methods of operating the same
JP5632210B2 (ja) 非揮発性メモリ装置及びそのプログラム方法
US8665649B2 (en) Non-volatile memory device and ISPP programming method
US8499217B2 (en) Memory device and error control codes decoding method
KR101938659B1 (ko) 불 휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
US9281068B2 (en) Nonvolatile memory and related reprogramming method
US8422292B2 (en) Nonvolatile memory device and program method thereof
US20110044113A1 (en) Nonvolatile memory device, method for programming same, and memory system incorporating same
JP5773367B2 (ja) メモリ装置およびメモリプログラミング方法
KR20120076787A (ko) 비휘발성 메모리 장치의 프로그램 방법
US9021338B2 (en) Memory system and data storage method
KR20140006596A (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
KR101513714B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
CN106205695B (zh) 半导体器件及其操作方法
KR101565974B1 (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 6