KR101154563B1 - 메모리 디바이스 프로그램 윈도우 조정 - Google Patents

메모리 디바이스 프로그램 윈도우 조정 Download PDF

Info

Publication number
KR101154563B1
KR101154563B1 KR1020107008372A KR20107008372A KR101154563B1 KR 101154563 B1 KR101154563 B1 KR 101154563B1 KR 1020107008372 A KR1020107008372 A KR 1020107008372A KR 20107008372 A KR20107008372 A KR 20107008372A KR 101154563 B1 KR101154563 B1 KR 101154563B1
Authority
KR
South Korea
Prior art keywords
memory
erase
threshold voltage
program
programming
Prior art date
Application number
KR1020107008372A
Other languages
English (en)
Other versions
KR20100068451A (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 KR20100068451A publication Critical patent/KR20100068451A/ko
Application granted granted Critical
Publication of KR101154563B1 publication Critical patent/KR101154563B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

하나 이상의 실시예에서, 메모리 디바이스가 복수의 프로그래밍가능 레벨들을 갖는 조정가능한 프로그래밍 윈도우를 갖는 것으로 개시된다. 프로그래밍 윈도우는, 메모리 디바이스가 프로그램 윈도우를 변화시키는 소거/프로그램 사이클들과 같은 팩터들을 경험할 때, 달성가능한 신뢰성 있는 프로그램 및 소거 문턱값들에서의 변화들을 보상하도록 이동된다. 초기 프로그래밍 윈도우는 초기 소거/프로그램 사이클 전에 결정된다. 그 후 프로그래밍 레벨들은, 복수의 프로그래밍가능 레벨들이 상기 프로그램 윈도우 내에 여전히 남아 있고 상기 프로그램 윈도우 변화들을 이용하여 추적되도록, 상기 프로그래밍 윈도우가 변화할 때 이동된다.

Description

메모리 디바이스 프로그램 윈도우 조정{MEMORY DEVICE PROGRAM WINDOW ADJUSTMENT}
본 개시물은 일반적으로 반도체 메모리에 관한 것으로, 더욱 구체적으로는 비휘발성 메모리 디바이스들에 관한 것이다.
메모리 디바이스들은 일반적으로 컴퓨터들 또는 그외의 전자 디바이스들의 내부, 반도체, 집적 회로들로서 제공된다. RAM(random-access memory), ROM(read only memory), DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), 및 비휘발성/플래시 메모리를 포함하는 많은 상이한 유형들의 메모리가 존재한다.
플래시 메모리 디바이스들은 넓은 범위의 전자 응용들을 위한 비휘발성 메모리의 대중적인 원천으로 개발되고 있다. 플래시 메모리 디바이스들은 일반적으로 고 메모리 밀도들, 고 신뢰성, 및 저 전력 소모를 허용하는 1-트랜지스터 메모리 셀을 이용한다. 플래시 메모리에 대한 일반적인 용도는 퍼스널 컴퓨터들, PDA들(personal digital assistants), 디지털 카메라들, 및 휴대 전화들을 포함한다. BIOS(basic input/output system)과 같은 프로그램 코드 및 시스템 데이터는 일반적으로 퍼스널 컴퓨터 시스템들에서의 이용을 위해 플래시 메모리 디바이스들에 저장된다.
비휘발성 메모리 디바이스의 각 셀은 셀 당 단일 비트로서(즉, 단일 레벨 셀(single level cell) - SLC) 또는 셀 당 다중 비트들로서(즉, 멀티레벨 셀(multilevel cell) - MLC) 프로그래밍될 수 있다. 각 셀의 문턱 전압(Vth)은 셀에 저장된 데이터를 결정한다. 예를 들면, SLC에서, 0.5V의 Vth는 프로그래밍된 셀을 나타낼 수 있는 한편, -0.5V의 Vth는 소거된 셀을 나타낼 수 있다. MLC는, 각각이 상이한 상태를 나타내는, 다수의 포지티브 Vth 분포들을 갖는 반면, 네거티브 분포는 일반적으로 소거 상태를 나타낸다. MLC는 비트 패턴을 셀에 대해 저장되는 특정 전압 범위에 할당함으로써 전통적인 플래시 셀의 아날로그 성질을 이용한다. 분포들은 더 큰 프로그래밍 윈도우(즉, 메모리 디바이스가 프로그래밍가능한 전압 범위)의 일부분이고, 예를 들면, 네 개의 상태들을 저 전압 메모리 디바이스 내로 피팅하는(fitting) 제한들에 기인하여 비교적 작은 전압 공간 또는 마진에 의해 분리된다.
플래시 메모리 셀들이 다수의 소거/프로그램 사이클들을 반복할 때, 그들은 특정 네거티브 전압으로 소거되는 그들의 능력을 잃는다. 이것은 전자가 기판으로부터 전하 저장 층(예를 들면, 플로팅 게이트(floating gate))을 분리하는 터널 산화물(tunnel oxide)에 잡힌(trap) 결과이다. 이것은 더 많은 상태들이 프로그래밍 윈도우 내에 저장되도록 요구되는 MLC 기술에서 특히 바람직하지 않다. 순환한 후의 더 작은 프로그래밍 윈도우는 메모리 디바이스에서 이용가능한 MLC 프로그램 상태들의 양(quantity)을 제한할 수 있다.
도 1은 일반적인 비휘발성 메모리 디바이스에 대한 프로그래밍 문턱 전압 변화들을 나타내는 그래프를 나타낸다. 이 도면은 y 축을 따라 비휘발성 메모리 셀들의 문턱 전압들을 나타내고 x 축을 따라 소거/프로그램 사이클들의 양을 나타낸다.
처음에, 메모리 셀은 소거/프로그램 사이클들의 양이 낮은 y 축에 더 근접하여 도시되는 바와 같이 -3.0V의 최대 소거된 상태(maximum erased state) 및 3.0V의 최대 프로그래밍된 상태(maximum programed state)를 가질 수 있다. 사이클들이 10k 사이클들에 접근함에 따라, 최대 프로그래밍된 상태 문턱 전압이 5.0V로 증가되는 동안, 최대 소거 상태 문턱 전압이 0V로 증가되는 것을 알 수 있다. 따라서, 이 그래프에서 가장 신뢰성 있는 프로그램 윈도우는 0V와 3V 사이에 있는 것으로 고정된다. 이것은 비휘발성 메모리 디바이스에 대한 동작들을 감지하기 위해 이용되는 고정된 프로그램 윈도우이다.
전술한 이유들로 인해, 그리고 본 명세서를 읽고 이해함에 따라 본 기술 분야에 숙련된 자들에게 명백하게 될 후술되는 그외의 이유들로 인해, 비휘발성 메모리 디바이스의 프로그램 윈도우에 대한 소거/프로그램 순환의 효과들을 조정하는 방법이 본 기술 분야에서 필요하다.
도 1은 메모리 셀 문턱 전압들(Vt) 대 소거/프로그램 사이클들의 양의 그래프를 나타내는 도면.
도 2는 프로그래밍 동안의 프로그램 윈도우 조정 방법의 일 실시예의 흐름도를 나타내는 도면.
도 3은 조정된 프로그램 레벨들에서의 데이터 검색 방법의 일 실시예의 흐름도를 나타내는 도면.
도 4는 도 1 및 2의 방법들에 따른 레벨 변환 테이블의 일 실시예를 나타내는 도면.
도 5는 프로그램 윈도우 조정 방법의 대안 실시예의 흐름도를 나타내는 도면.
도 6은 본 개시물의 프로그램 윈도우 조정 방법을 구체화한 메모리 시스템의 일 실시예의 블록도를 나타내는 도면.
본 발명의 이하의 상세한 설명에서는, 본 발명의 일부분을 형성하고, 본 발명이 실시될 수 있는 특정 실시예들이, 예시로써, 도시되는 첨부되는 도면들에 대해 참조가 행해진다. 도면들에서, 유사한 참조번호들은 몇몇 도면들에 걸쳐 실질적으로 유사한 구성요소들을 나타낸다. 이들 실시예들은 본 기술 분야에 숙련된 자들이 본 발명을 실시할 수 있도록 충분히 상세히 설명된다. 그외의 실시예들이 이용될 수 있고, 구조적, 논리적 및 전기적 변경들이 본 발명의 범주를 벗어나지 않고 행해질 수 있다. 이하의 상세한 설명은, 따라서, 제한하는 의미로 취해져서는 안 되며, 본 발명의 범주는 첨부된 청구항들 및 그의 등가물들에 의해서만 정의된다.
도 2는 프로그래밍 동안의 프로그램 윈도우 조정 방법의 일 실시예의 흐름도를 나타낸다. 블록 소거 동작은 프로그래밍되어질 메모리 블록에서 수행된다(201). 소거 동작은 기판보다 더 네거티브인 메모리 셀들의 각각의 로우에 연결된 워드 라인을 만드는 것으로 구성된다. 예를 들면, 더 큰 네거티브 전압(예를 들면, -20V)을 포함하는 소거 펄스로 각 워드 라인을 바이어싱(biasing)하는 것은 블록 내의 메모리 셀들의 문턱 전압들을 네거티브 레벨로 이동시키는 데에 이용될 수 있다. 각 소거 펄스 후에, 메모리 셀들이 충분히 소거되었는지를 결정하도록 소거 검증 동작이 수행된다.
소거된 메모리 블록의 소거 문턱 전압들은 그 후 감지 동작을 이용하여 판독된다(203). 이것은 메모리 블록에 대한 새로운 소거 문턱 전압들을 메모리 제어기에 제공한다. 일 실시예에서, 각 메모리 셀에 대한 최대 소거 문턱 전압은 메모리 블록에 대한 신뢰성 있는 소거 문턱 전압으로서 식별된다(205). 이 문턱값은 도 4에 도시되고 후술되는 바와 같이 레벨 변환 테이블을 생성하는 데에 이용된다(207).
최대 신뢰성 있는 프로그램 문턱값은 메모리 디바이스에 대한 최소 프로그래밍 문턱값으로서 식별된다. 다시 말해, 메모리 디바이스의 수명의 주어진 포인트에서의 최대 프로그래밍 문턱값은, 즉 4V는, 전압의 그러한 고점이 디바이스의 수명을 넘어 정확히 충분한 레벨로 프로그래밍가능하지 않을 수 있기 때문에, 프로그래밍하기 위한 신뢰성 있는 문턱 전압이 아닐 수 있다. 따라서, 디바이스의 수명을 넘어 정확히 프로그래밍될 수 있는 신뢰성 있는 문턱 전압은 최대 프로그래밍 문턱값으로서 식별된다.
업데이트된 레벨 변환 테이블은 참조 문턱 전압 레벨들을 소거된 메모리 블록과 연관된 참조 셀들로 프로그래밍하는 데에 이용되고 및/또는 레벨 변환 데이터는 메모리 위치로 프로그래밍된다(209). 메모리 디바이스가 디지털 도메인에서 동작하면, 각 참조 셀은, 도 4의 네 번째 열에 도시된 바와 같은, 각각의 프로그래밍 가능한 레벨을 나타내는 업데이트된 변환된 데이터 비트 패턴과 연관되는 참조 고정 비트 패턴에 따라 프로그래밍된다.
일 실시예에서, 단 하나의 참조 셀이 프로그래밍 레벨 당 이용된다. 대안 실시예들은 그외의 양들의 참조 셀들을 이용할 수 있다. 예를 들면, 일 실시예는 프로그래밍 레벨 당 다수의 참조 셀들을 이용하고, 평균화 프로세스로부터 최상위 및 최하위 문턱 참조 셀을 제거한 후에, 감지하는 목적들을 위해 셀들로 프로그래밍된 전압들의 평균을 취할 수 있다.
또 다른 실시예에서, 소거 블록에 대한 업데이트된 레벨 변환 테이블의 변환 정보가 메모리 셀들에 프로그래밍된다. 변환 정보를 갖는 메모리 셀들은 동일한 블록 또는 또 다른 미리 결정된 위치에 있을 수 있다. 변환 정보는 메모리 블록을 판독할 때마다 이러한 위치로부터 판독되고 변환 테이블은 실제 데이터 비트들을 판독된 데이터 비트들로부터 검색하는 데에 이용된다.
레벨 변환 테이블의 일 실시예가 도 4에 도시된다. 제1 열(401)은 특정 메모리 디바이스에 대한 문턱 전압들의 범위를 구성하는 문턱 전압 레벨들로 구성된다. 이 테이블은 -3.75V의 최대 소거된 레벨에서 시작하고 0.25V의 증분으로 4.00V의 최대 프로그래밍된 레벨까지 상승한다.
제2 열(402)은, 메모리 디바이스에 대한 각각의 상이한 문턱 전압 레벨들에 대해, 각각이 별개의 5-비트 고정 비트 패턴으로 할당된, 참조 상태를 리스트한다. 가장 네거티브 문턱 전압은 "00000"의 비트 패턴으로 할당되고, 문턱 전압 범위의 가장 포지티브 문턱 전압은 "11111"이다. 각각의 비트 변화는 0.25V 문턱 전압 증분을 나타낸다.
참조 고정 비트 패턴들은 메모리 어레이 제어기에 의해 생성되고 디지털 도메인에서 동작하는 일 실시예에서 이용된다. 다시 말해, 판독 동작이 메모리 어레이에 수행될 때, 어레이는, 문턱 전압 대신에, 판독되는 각 셀에 대한 5-비트 참조 고정 비트 패턴들 중 하나에 대응하는 신호를 출력한다. 아날로그 도메인에서 동작하는 대안 실시예에서, 판독되는 각 메모리 셀의 실제 문턱 전압은 디지털 비트 패턴 대신 출력된다.
도 4의 테이블의 제3 열(403)은 임의의 소거/프로그램 사이클링 전의 정확한 변환된 데이터 비트 패턴들을 리스트한다. 이들 4-비트, 순환-전(pre-cycle) 비트 패턴들은 각각이 메모리 디바이스의 특정 참조 디지털 고정 비트 패턴을 나타내며, 각각이 5-비트 "참조" 패턴들 중 별개의 하나에 대응한다. 예를 들면, "00101"에 대응하는 순환-전 변환된 데이터 비트 패턴은 "0000"이다. 이것은 또한 -2.50V의 문턱 전압 레벨을 갖는 메모리 셀의 소거된 레벨을 나타내는 순환-전 변환된 비트 패턴이다. "11000"에 대응하는 순환-전 변환된 데이터 비트 패턴은 "1111"이고 2.25V의 문턱 전압을 나타낸다.
도 4의 실시예에서, "1111"에 의해 표현된 프로그래밍된 상태는 메모리 블록의 메모리 셀들에 대한 최대 프로그래밍된 문턱 전압 레벨에 대응하고 프로그램 윈도우의 상부를 나타낸다. 비트 패턴 "0000"은 메모리 블록의 소거된 레벨에 대응하고 프로그램 윈도우의 바닥부를 나타낸다.
도 4의 테이블의 제4 열(404)은 순환-후(post-cycling) 시나리오에서 발생할 수 있는 변환된 데이터 비트 패턴들을 리스트한다. 프로그램 윈도우의 바닥부(즉, "0000")는 식별된 신뢰성 있는 문턱 전압 레벨(예를 들면, -1.50V)을 나타내는 고정된 비트 패턴 "01001"에 대응하도록 상향 천이되는 것을 알 수 있다. 프로그램 윈도우의 상부(즉, "1111")는 3.25V의 문턱 전압 레벨을 나타내는 고정된 비트 패턴 "11100"에 대응하도록 상향 천이된다.
도 4의 프로그램 레벨 변환 테이블은 메모리 제어기에 의해 생성되고 메모리 판독 동작들 중에 미래의 이용을 위해 메모리에 저장될 수 있다. 일 실시예에서, 테이블은 모든 소거 동작에서 업데이트된다. 대안 실시예들은 상이한 인터벌들에서 테이블을 업데이트할 수 있다. 일정한 업데이트들은, 메모리 제어기가 메모리 셀들이 순환될 때 메모리 셀들의 변화를 추적하게 하고 그에 따라 프로그램 윈도우를 조정하게 한다.
도 3은 데이터 검색 방법의 일 실시예의 흐름도를 나타낸다. 이 방법은 도 4의 변환된 데이터 비트 패턴(404)의 열로부터 조정된 프로그램 레벨들을 이용한다.
조정된 프로그램 레벨들로 프로그래밍되었던 메모리 블록 참조 셀들이 판독된다(301). 이들 참조 셀 비트 패턴들은 데이터 셀들의 판독 동안 이용되는 변환 테이블을 생성하는 데에 이용된다(303). 변환 테이블은 판독된 참조 셀 비트 패턴과 기대된 참조 셀 비트 패턴 사이의 차이들을 포함한다. 기대된 참조 셀 비트 패턴은 임의의 소거/프로그램 사이클들 전에 메모리 셀의 각각의 문턱 전압 레벨에 처음에 할당되었던 비트 패턴이다.
예를 들면, 도 4에 따른, "0000"의 (순환-전) 초기 변환된 데이터 비트 패턴은 -2.50V 및 "00101"의 고정된 비트 패턴(즉, 기대된 참조 셀 비트 패턴)에 할당된다. 순환 후에, "0000" 상태는 이제 -1.50V 및 "01001"의 고정된 비트 패턴(즉, 판독된 참조 셀 비트 패턴)에 할당된다. 이것은 변환 테이블에 저장되는 1.0V 참조 셀 비트 패턴 차이를 제공한다.
데이터 셀들이 판독될 때(305), 데이터는 변환 테이블에 저장된 참조 셀 비트 패턴 차이들에 의해 표시되는 바와 같은 프로그램 윈도우에서의 차이들에 대해 조정된다(307). 메모리 디바이스의 메모리 어레이가 디지털 도메인에서 동작하면, 제어기는 셀들의 프로그래밍된 상태들을 결정하기 위해 판독된 각 메모리 셀에 대한 4 비트 디지털 비트 패턴에 대응하는 디지털 신호를 판독한다.
도 3에 예시된 방법은, 메모리 디바이스가 증가한 양의 소거/프로그램 사이클들을 경험할 때 프로그래밍 윈도우에서의 변화들을 이용하여 메모리 셀들로부터 판독된 데이터를 조정하는 능력을 갖는 감지 동작을 제공한다. 도 4의 레벨 변환 테이블에 도시된 바와 같이, 임의의 순환 전에 메모리 셀로부터 판독된 데이터는 다수의 순환 동작들 후에 판독된 데이터와는 다른, 주어진 문턱 레벨과 연관된 참조 고정 비트 패턴을 가질 것이다.
도 5는 전술한 프로그램 윈도우 조정 방법의 대안 실시예의 흐름도를 나타낸다. 도 2의 실시예는 소거 레벨들을 추적함으로써 프로그램 윈도우를 조정한다. 도 5의 대안 실시예는 소거 및 프로그래밍된 레벨들 양쪽 모두를 추적함으로써 프로그램 윈도우를 조정한다.
이 방법이 또한 프로그래밍된 레벨들을 추적하기 때문에, 그것은 프로그램 동작(501)이 후속하는 블록 소거(500)를 수행함으로써 시작한다. 프로그램 동작은 디바이스의 최대 프로그래밍 레벨이 달성될 때까지 수행된다. 그 후 이 최대 문턱 전압은 판독된다(503). 그 후 블록 소거 동작은 최대 소거 문턱 전압을 달성하기 위해 수행된다(505). 그 후 소거 문턱 전압들이 판독된다(507).
최대 신뢰성 있는 프로그래밍가능 문턱 전압 및 최대 신뢰성 있는 소거가능 문턱 전압은 그 후 메모리 디바이스에 대한 이용가능한 프로그램 윈도우를 생성하는 데에 이용된다(509). 이전의 실시예에서와 같이, 이 윈도우는 그 후 모든 프로그래밍가능한 레벨들이 윈도우 내부에 꼭 맞게 되도록 메모리 어레이의 프로그래밍가능한 범위를 정의한다.
비트 패턴들에 의해 표현된 바와 같은, 프로그래밍가능한 레벨들 사이의 마진들은, 이용가능한 프로그램 윈도우의 이용을 최대화하도록 조정된다(511). 다시 말해, 일단 상위 및 하위 경계들이 최소 프로그램 문턱값 및 최대 소거 문턱값에 의해 확립되면, (비트 패턴들에 의해 표현되는) 프로그래밍가능한 상태들은 윈도우의 전체에 걸쳐 분포된다. 제어기는 또한 메모리 셀들의 블록의 실제 프로그래밍 전에 윈도우에 신뢰성 있게 알맞을 프로그램 레벨들의 수를 확립할 수 있다. 변환 테이블이 이용되면, 그것은 이 포인트에서도 생성되고 메모리에 저장될 수 있다(513). 대안 실시예에서는, 소거된 블록과 연관된 참조 셀들이 조정된 프로그램 레벨들로 프로그래밍된다(513). 또 다른 실시예에서는, 변환 테이블도 생성되고 참조 셀들도 프로그래밍된다(513).
메모리 셀들로부터 판독된 데이터는 조정된 프로그램 윈도우에 기초하여 조정된다. 이것은 기대된 참조 셀 비트 패턴 및 참조 셀들로부터 판독된 실제 비트 패턴으로부터 변환 테이블을 생성함으로써 달성된다. 변환 테이블은 또한 대안 실시예에서 메모리에 저장된 변환 정보를 판독하는 것으로부터 생성될 수 있다. 초기 참조 고정 비트 패턴과 최근에 조정된 참조 셀 비트 패턴들 사이의 차이가 그 후 결정된다. 변환 테이블은 실제 데이터를 얻기 위해 메모리 셀들로부터의 판독된 데이터 비트 패턴들에 적용된다.
도 5에 예시된 실시예는 메모리 디바이스의 메모리 제어기에 의해 수행될 수 있다. 일 실시예에서, 그것은 모든 프로그램 동작 전에 수행된다. 대안 실시예들은 특정 수의 소거/프로그램 사이클들이 수행된 후에 본 방법을 수행한다.
도 6은 본 발명의 메모리 셀들을 통합할 수 있는 메모리 디바이스(600)의 기능적 블록도를 나타낸다. 메모리 디바이스(600)는 프로세서(610)에 연결된다. 프로세서(610)는 메모리 제어기, 마이크로프로세서 또는 그외의 다른 유형의 제어 회로일 수 있다. 메모리 디바이스(600) 및 프로세서(610)는 메모리 시스템(620)의 일부분을 형성한다. 메모리 디바이스(600)는 본 발명을 이해하는 데 도움을 주는 메모리의 피쳐들에 초점을 맞추도록 간략화된다.
메모리 디바이스는 플래시 메모리 셀들 또는 다른 유형들의 비휘발성 반도체 셀들일 수 있는 비휘발성 메모리 셀들의 어레이(630)를 포함한다. 메모리 어레이(630)는 로우들 및 컬럼들의 뱅크들에 배열된다. 메모리 셀들의 각 로우의 제어 게이트들은 워드라인과 연결되는 한편, 메모리 셀들의 드레인 및 소스 커넥션들은 비트라인들에 연결된다. 본 기술 분야에 공지된 바와 같이, 비트라인들에의 셀들의 커넥션은 어레이가 NAND 아키텍쳐인지 또는 NOR 아키텍쳐인지에 의존한다. 본 발명의 메모리 셀들은 NAND 또는 NOR 아키텍쳐 중 어느 하나뿐만 아니라, 전술한 바와 같이, 그외의 아키텍쳐들로 배열될 수 있다.
어드레스 버퍼 회로(640)는 어드레스 입력 커넥션들 A0 - Ax(642)에 제공된 어드레스 신호들을 래치하기 위해 제공된다. 어드레스 신호들은 메모리 어레이(630)를 액세스하기 위해 로우 디코더(644) 및 컬럼 디코더(646)에 의해 수신되고 디코딩된다. 본 설명의 이익에 따라, 어드레스 입력 커넥션들의 수가 메모리 어레이(630)의 밀도 및 아키텍쳐에 의존한다는 것은 본 기술 분야에 숙련된 자에 의해 이해될 것이다. 즉, 어드레스들의 수는 증가된 메모리 셀 카운트들 및 증가된 뱅크 및 블록 카운트들 양쪽 모두와 함께 증가한다.
메모리 디바이스(600)는 감지 증폭기/버퍼 회로(650)를 이용하여 메모리 어레이 컬럼들의 전압 또는 전류 변화들을 감지함으로써 메모리 어레이(630)의 데이터를 판독한다. 감지 증폭기/버퍼 회로는, 일 실시예에서, 메모리 어레이(630)로부터 데이터의 로우를 판독 및 래치하기 위해 연결된다. 데이터 입력 및 출력 버퍼 회로(660)는 복수의 데이터 커넥션들(662)을 통한 제어기(610)와의 양방향 데이터 통신을 위해 포함된다. 기입 회로(655)는 메모리 어레이에 데이터를 기입하기 위해 제공된다.
제어 회로(670)는 프로세서(610)로부터 제어 커넥션들(672)에 제공된 신호들을 디코딩한다. 이들 신호들은, 데이터 판독, 데이터 기입, 및 소거 동작들을 포함하는, 메모리 어레이(630)에 대한 동작들을 제어하는 데에 이용된다. 제어 회로(670)는 상태 머신, 시퀀서(sequencer), 또는 그외의 다른 유형의 제어기일 수 있다. 제어 회로(670)는 전술한 프로그래밍 윈도우 조정 실시예들을 수행하도록 적응된다. 제어 회로(670)는 도시된 바와 같이 메모리 디바이스(600)의 일부분이거나 또는 메모리 디바이스(600)로부터 분리될 수 있다.
도 6에 도시된 플래시 메모리 디바이스는 메모리의 피쳐들의 기본적인 이해를 용이하게 하도록 간략화되고 예시의 목적을 위한 것일 뿐이다. 플래시 메모리들의 내부 회로 및 기능들의 더욱 상세한 이해는 본 기술 분야에 숙련된 자들에 공지되어 있다. 도 6의 블록도가 메모리 디바이스 집적 회로(600)의 일부분으로서 제어 회로를 도시하지만, 대안 실시예들은 제어 회로로부터 분리된 메모리 어레이를 가질 수 있다.
일 실시예에서, 모든 데이터 조작, 프로그래밍, 및 판독은 디지털 데이터 비트 패턴들을 그들의 등가 전압 레벨들로 변환하지 않고 디지털 도메인에서 수행된다. 대안 실시예는 별개의 제어기에 의한 조작 전에 아날로그-디지털 변환기들을 이용하여 변환되는 전압들로서 이들 기능들을 수행한다. 제어기는 그 후 어드레스된 메모리 셀 또는 셀들로 프로그래밍하기 위해 디지털-아날로그 변환기에 의해 아날로그 신호의 전압 레벨로 변환된 비트 패턴에 대응하는 디지털 신호를 생성한다.
결론
요약하면, 본 개시물의 하나 이상의 실시예는, 최대 신뢰성 있는 소거 문턱 전압 및 최대 신뢰성 있는 프로그램 문턱 전압이 소거/프로그램 사이클링 또는 그외의 메커니즘들에 기인하여 변화할 때 메모리 디바이스 프로그래밍 윈도우의 연속적인 조정을 제공한다. 본 실시예들은 윈도우 변화들을 프로그래밍하는 것에 응답하여 후속 프로그래밍 윈도우들을 생성한다.
본 실시예들은 메모리 디바이스의 많은 블록들에 걸쳐 프로그램 윈도우를 최적화한다. 예를 들면, 하나의 메모리 블록은 -2V에서 +3V까지의 프로그램 윈도우를 갖는 반면, 동일한 메모리 디바이스의 또 다른 프로그램 블록은 -3.5V에서 +4V까지의 프로그램 윈도우를 가질 수 있다. 본 실시예들은 메모리 블록들의 차이들에 기인하여 초기 프로그램 윈도우들을 메모리 디바이스에 걸쳐 더욱 균일하게 만든다.
본 개시물의 실시예들은 조정된 프로그램 윈도우의 레벨들 사이의 마진들을 변화시킬 수 있을 뿐만 아니라 레벨들의 양도 조정될 수 있다. 프로그램 윈도우가 확장하거나 또는 수축할 때, 그 윈도우 내의 레벨들의 양도 요망되는 대로 확장되거나 또는 수축될 수 있다.
특정 실시예들이 본원에서 예시되고 설명되었지만, 동일한 목적을 달성하기 위해 의도된 임의의 배열이 도시된 특정 실시예들을 대신할 수 있다는 것은 본 기술 분야에 통상의 지식을 가진 자들에 의해 이해될 것이다. 본 발명의 많은 적응들은 본 기술 분야에 통상의 지식을 가진 자들에 명백할 것이다. 따라서, 본 출원은 본 발명의 임의의 적응들 또는 변종들을 포함하도록 의도된다. 본 발명이 이하의 청구항들 및 그의 등가물들에 의해서만 제한된다는 것은 명백히 의도된다.

Claims (20)

  1. 메모리 디바이스에서의 프로그래밍 윈도우 조정을 위한, 메모리 디바이스에 의해 수행되는 방법으로서,
    소거/프로그램 사이클 전에 메모리 셀에 대한 프로그래밍 윈도우를 결정하는 단계; 및
    소거/프로그램 사이클 또는 메모리 블록들 사이의 프로그램 윈도우 차이들 중 하나에 응답하여 상기 프로그래밍 윈도우를 조정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 프로그래밍 윈도우를 결정하는 단계는 초기 소거/프로그램 사이클 전에 초기 소거 문턱 전압 레벨(erase threshold voltage level)을 결정하는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 프로그래밍 윈도우는 최대 신뢰성 있는 소거 문턱 전압으로 구성되는 방법.
  4. 제3항에 있어서, 상기 프로그래밍 윈도우를 이동시키는 것은 상기 최대 신뢰성 있는 소거 문턱 전압을 증가시키는 것을 포함하는 방법.
  5. 제1항에 있어서, 모든 소거/프로그램 사이클 후에 상기 프로그래밍 윈도우를 조정할지 여부를 평가하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서, 다수의 소거/프로그램 사이클들 후에 상기 프로그래밍 윈도우를 조정하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 메모리 디바이스의 메모리 셀들의 그룹을 소거하는 단계;
    소거/프로그램 사이클을 수행하기 전에 상기 메모리 셀들의 그룹 내에서 메모리 셀들의 초기 소거 문턱 전압을 결정하는 단계;
    상기 초기 소거 문턱 전압에 응답하여 초기 프로그래밍 윈도우를 생성하는 단계;
    적어도 하나의 소거/프로그램 사이클 후에 상기 메모리 셀들의 후속 소거 문턱 전압을 결정하는 단계; 및
    상기 후속 소거 문턱 전압에 응답하여 후속 프로그래밍 윈도우를 생성하는 단계
    를 더 포함하는 방법.
  8. 제7항에 있어서, 상기 후속 프로그래밍 윈도우는, 상기 메모리 셀들의 그룹의 메모리 셀의 프로그래밍가능한 상태를 각각 나타내는 복수의 문턱 전압 레벨들로 구성되고 상기 복수의 문턱 전압들 각각은 변환된 비트 패턴에 의해 표현되는 방법.
  9. 제8항에 있어서, 상기 후속 소거 문턱 전압에 응답하여 상기 복수의 문턱 전압들의 특정 문턱 전압을 나타내는 상기 변환된 비트 패턴을 변경하는 단계를 더 포함하는 방법.
  10. 제8항에 있어서, 상기 메모리 셀들의 그룹의 각각의 참조 메모리 셀을 상기 후속 프로그래밍 윈도우 내의 문턱 전압 레벨에 대응하는 참조 고정 비트 패턴(reference fixed bit pattern)으로 프로그래밍하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 메모리 디바이스의 메모리 블록에 대한 프로그래밍 동작을 최대 신뢰성 있는 프로그래밍가능 문턱 전압으로 수행하는 단계;
    상기 메모리 블록의 블록 소거를 최대 신뢰성 있는 소거 문턱 전압으로 수행하는 단계; 및
    상기 최대 신뢰성 있는 프로그래밍가능 문턱 전압과 상기 최대 신뢰성 있는 소거 문턱 전압 사이에서 프로그래밍 윈도우를 생성하는 단계
    를 더 포함하는 방법.
  12. 제11항에 있어서, 상기 프로그래밍 윈도우는 복수의 프로그래밍가능 레벨들로 구성되고, 상기 방법은 상기 프로그래밍 윈도우 내의 인접한 프로그래밍가능 레벨들의 각각의 쌍 사이에서 마진들을 조정하는 단계를 더 포함하는 방법.
  13. 제11항에 있어서, 상기 프로그래밍 윈도우는 복수의 프로그래밍가능 레벨들로 구성되고, 상기 방법은 상기 프로그래밍 윈도우 내의 상기 복수의 프로그래밍가능 레벨들의 양을 조정하는 단계를 더 포함하는 방법.
  14. 제12항에 있어서, 상기 프로그래밍 윈도우의 상기 복수의 프로그래밍가능 레벨들에 응답하여 상기 메모리 블록으로부터 판독된 데이터 비트 패턴들을 조정하는 단계를 더 포함하는 방법.
  15. 메모리 디바이스로서,
    복수의 메모리 셀들을 포함하는 메모리 어레이; 및
    상기 메모리 어레이의 동작을 제어하기 위해 상기 메모리 어레이에 연결된 메모리 제어기 ? 상기 메모리 제어기는 소거/프로그램 사이클 전에 메모리 셀에 대한 초기 소거 문턱 전압 레벨을 결정하고, 적어도 하나의 소거/프로그램 사이클에 응답하여 상기 초기 소거 문턱 전압을 후속 소거 문턱 전압으로 조정하도록 구성됨 ?
    를 포함하는 메모리 디바이스.
  16. 제15항에 있어서, 상기 메모리 어레이는 NAND 아키텍쳐 또는 NOR 아키텍쳐 중 하나로 구성되는 메모리 디바이스.
  17. 제15항에 있어서, 상기 복수의 메모리 셀들 각각은, 변환된 데이터 비트 패턴에 의해 각각 표현되는 복수의 프로그래밍가능 상태들로 구성되고, 각각의 변환된 데이터 비트 패턴은 참조 고정 비트 패턴에 할당되고, 각각의 참조 고정 비트 패턴은 상이한 프로그래밍가능한 문턱 전압을 나타내는 메모리 디바이스.
  18. 제17항에 있어서, 상기 메모리 제어기는 상기 후속 소거 문턱 전압에 응답하여 상이한 변환된 데이터 비트 패턴을 상기 참조 고정 비트 패턴들 중 미리 결정된 패턴에 할당하도록 더 구성되는 메모리 디바이스.
  19. 제15항에 있어서,
    상기 메모리 제어기는,
    메모리 블록의 참조 셀들 또는 상기 메모리 블록에 관한 변환 데이터로부터 참조 비트 패턴들 중 하나를 판독하고;
    상기 변환 데이터, 또는 상기 판독된 참조 비트 패턴들과, 임의의 소거/프로그램 사이클들 전에 상기 참조 셀들에 처음에 할당되었던 참조 비트 패턴들 사이의 차이들을 포함하는 변환 테이블을 생성하고;
    데이터 셀들로부터 프로그래밍된 상태들을 판독하고;
    상기 변환 테이블에 응답하여 상기 판독된 프로그래밍된 상태들을 해석하도록 더 구성되는 메모리 디바이스.
  20. 제19항에 있어서, 상기 메모리 제어기는 소거/프로그램 사이클들의 양에 응답하여 상기 변환 테이블을 업데이트하도록 더 구성되는 메모리 디바이스.
KR1020107008372A 2007-10-17 2008-10-16 메모리 디바이스 프로그램 윈도우 조정 KR101154563B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/873,894 US8117375B2 (en) 2007-10-17 2007-10-17 Memory device program window adjustment
US11/873,894 2007-10-17

Publications (2)

Publication Number Publication Date
KR20100068451A KR20100068451A (ko) 2010-06-23
KR101154563B1 true KR101154563B1 (ko) 2012-06-08

Family

ID=40564637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107008372A KR101154563B1 (ko) 2007-10-17 2008-10-16 메모리 디바이스 프로그램 윈도우 조정

Country Status (5)

Country Link
US (3) US8117375B2 (ko)
KR (1) KR101154563B1 (ko)
CN (2) CN101821812B (ko)
TW (2) TWI502592B (ko)
WO (1) WO2009052273A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8014196B2 (en) * 2008-08-28 2011-09-06 Agere Systems Inc. Reduced-power programming of multi-level cell (MLC) memory
US8386884B2 (en) * 2009-07-14 2013-02-26 Macronix International Co., Ltd. Memory apparatus with multi-level cells and operation method thereof
KR101617810B1 (ko) 2009-08-24 2016-05-03 삼성전자주식회사 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
KR101655306B1 (ko) 2010-02-24 2016-09-07 삼성전자주식회사 메모리 시스템 및 그것의 액세스 방법
CN102456405A (zh) * 2010-11-02 2012-05-16 上海华虹集成电路有限责任公司 一种应用于Flash EEPROM的动态参考源电路
US20130006896A1 (en) * 2011-06-28 2013-01-03 Seagate Technology Llc Training Datasets for Memory Devices
US8687431B2 (en) * 2011-07-06 2014-04-01 Micron Technology, Inc. Programming methods and memories
US8902648B2 (en) 2011-07-26 2014-12-02 Micron Technology, Inc. Dynamic program window determination in a memory device
US9076547B2 (en) 2012-04-05 2015-07-07 Micron Technology, Inc. Level compensation in multilevel memory
US9030870B2 (en) 2011-08-26 2015-05-12 Micron Technology, Inc. Threshold voltage compensation in a multilevel memory
CN102298971B (zh) * 2011-08-29 2014-05-21 南京大学 一种非挥发性快闪存储器高密度多值存储的操作方法
US8990644B2 (en) * 2011-12-22 2015-03-24 Micron Technology, Inc. Apparatus and methods of programming memory cells using adjustable charge state level(s)
WO2013100958A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Cycling endurance extending for memory cells of a non-volatile memory array
US9430322B2 (en) * 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US8971128B2 (en) 2013-01-31 2015-03-03 Sandisk Technologies Inc. Adaptive initial program voltage for non-volatile memory
US8879324B2 (en) * 2013-02-01 2014-11-04 Lsi Corporation Compensation loop for read voltage adaptation
KR102127105B1 (ko) 2013-11-11 2020-06-29 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
US9312010B1 (en) 2014-10-07 2016-04-12 Sandisk Technologies Inc. Programming of drain side word line to reduce program disturb and charge loss
CN105679368A (zh) * 2016-01-15 2016-06-15 上海华虹宏力半导体制造有限公司 一种通过调整SONOS字线读电压增加flash窗口的方法
JP6249504B1 (ja) 2016-08-24 2017-12-20 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11081170B2 (en) 2018-12-19 2021-08-03 Micron Technology, Inc. Apparatus and methods for programming memory cells responsive to an indication of age of the memory cells
CN110176269B (zh) * 2019-04-16 2020-11-17 华中科技大学 一种精确调控非易失性存储单元状态的方法及系统
US11443818B2 (en) 2019-05-31 2022-09-13 Micron Technology, Inc. Safety and correctness data reading and programming in a non-volatile memory device
CN113906508A (zh) * 2019-05-31 2022-01-07 美光科技公司 用于检查存储器装置的擦除阶段的方法
US11004525B1 (en) * 2020-02-20 2021-05-11 Sandisk Technologies Llc Modulation of programming voltage during cycling
US11776629B2 (en) * 2020-08-17 2023-10-03 Micron Technology, Inc. Threshold voltage based on program/erase cycles
US11017142B1 (en) * 2020-09-02 2021-05-25 Arm Limited Methods and apparatuses of configurable integrated circuits

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060221708A1 (en) 2005-03-31 2006-10-05 Masaaki Higashitani Erasing non-volatile memory utilizing changing word line conditions to compensate for slower erasing memory cells
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb
US7230854B2 (en) 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3346274B2 (ja) * 1998-04-27 2002-11-18 日本電気株式会社 不揮発性半導体記憶装置
GB2383455B (en) * 2001-12-21 2004-02-25 Motorola Inc Non-volatile memory and method for operating a non-volatile memory
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6917542B2 (en) * 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
KR100632940B1 (ko) * 2004-05-06 2006-10-12 삼성전자주식회사 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치
US7130210B2 (en) * 2005-01-13 2006-10-31 Spansion Llc Multi-level ONO flash program algorithm for threshold width control
US7149121B2 (en) * 2005-01-26 2006-12-12 Macronix International Co., Ltd. Method and apparatus for changing operating conditions of nonvolatile memory
US7339834B2 (en) 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7495966B2 (en) 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
JP2008047273A (ja) * 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060221708A1 (en) 2005-03-31 2006-10-05 Masaaki Higashitani Erasing non-volatile memory utilizing changing word line conditions to compensate for slower erasing memory cells
US7230854B2 (en) 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb

Also Published As

Publication number Publication date
TW200926173A (en) 2009-06-16
TWI502592B (zh) 2015-10-01
WO2009052273A1 (en) 2009-04-23
KR20100068451A (ko) 2010-06-23
CN101821812A (zh) 2010-09-01
US8713246B2 (en) 2014-04-29
CN103425593A (zh) 2013-12-04
CN103425593B (zh) 2016-11-09
TW201333960A (zh) 2013-08-16
CN101821812B (zh) 2013-09-25
TWI410973B (en) 2013-10-01
US20120117313A1 (en) 2012-05-10
US20120331217A1 (en) 2012-12-27
US20090106482A1 (en) 2009-04-23
US8307152B2 (en) 2012-11-06
US8117375B2 (en) 2012-02-14

Similar Documents

Publication Publication Date Title
KR101154563B1 (ko) 메모리 디바이스 프로그램 윈도우 조정
US7738294B2 (en) Programming multilevel cell memory arrays
KR101312887B1 (ko) 메모리 디바이스에서의 다중 레벨 프로그램 검증
US7830718B2 (en) Mitigation of data corruption from back pattern and program disturb in a non-volatile memory device
US8385123B2 (en) Programming to mitigate memory cell performance differences
US9349459B2 (en) Programming memory cells using smaller step voltages for higher program levels
US11404125B2 (en) Memory cell programming applying a programming pulse having different voltage levels
US8174894B2 (en) Program method of flash memory device
JP4534211B2 (ja) 信頼性が改善された多値セルメモリデバイス
JP5545552B2 (ja) メモリ・デバイスにおけるデータ転送およびプログラミング

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: 20150430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180518

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190603

Year of fee payment: 8