KR102053958B1 - 불휘발성 메모리 장치 및 그것의 재프로그램 방법 - Google Patents

불휘발성 메모리 장치 및 그것의 재프로그램 방법 Download PDF

Info

Publication number
KR102053958B1
KR102053958B1 KR1020130059856A KR20130059856A KR102053958B1 KR 102053958 B1 KR102053958 B1 KR 102053958B1 KR 1020130059856 A KR1020130059856 A KR 1020130059856A KR 20130059856 A KR20130059856 A KR 20130059856A KR 102053958 B1 KR102053958 B1 KR 102053958B1
Authority
KR
South Korea
Prior art keywords
program
memory cells
selected memory
verify
buffer
Prior art date
Application number
KR1020130059856A
Other languages
English (en)
Other versions
KR20140139335A (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 KR1020130059856A priority Critical patent/KR102053958B1/ko
Priority to US14/217,538 priority patent/US9281068B2/en
Publication of KR20140139335A publication Critical patent/KR20140139335A/ko
Priority to US15/007,266 priority patent/US20160141036A1/en
Application granted granted Critical
Publication of KR102053958B1 publication Critical patent/KR102053958B1/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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/344Arrangements for verifying correct erasure or for detecting overerased cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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/7201Logical to physical mapping or translation of blocks or pages

Landscapes

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

Abstract

본 발명의 실시 예에 따른 복수 스텝의 재프로그램 동작들에 의해서 선택된 메모리 셀들 각각에 적어도 3-비트를 기입하는 불휘발성 메모리 장치의 어느 하나의 스텝에 대응하는 재프로그램 방법은, 상기 선택된 메모리 셀들 각각의 비트 라인에 연결되는 페이지 버퍼의 제 1 및 제 2 래치들의 논리값에 따라 상기 선택된 메모리 셀들 각각의 비트 라인을 셋업하는 단계, 상기 선택된 메모리 셀들에 프로그램 펄스를 공급하는 단계, 상기 제 1 및 제 2 래치를 사용하여 상기 선택된 메모리 셀들에 대한 프로그램 검증 동작을 수행하는 단계, 그리고 상기 프로그램 검증 동작의 결과에 따라 상기 선택된 메모리 셀들에 대한 예측 프로그램 동작을 수행하는 단계를 포함하되, 상기 예측 프로그램 동작에서는 상기 선택된 메모리 셀들 각각에 대응하는 상기 페이지 버퍼의 제 3 래치의 논리값에 따라 상기 메모리 셀들의 비트 라인들이 셋업된다.

Description

불휘발성 메모리 장치 및 그것의 재프로그램 방법{NONVOLATILE MEMORY DEVICE AND REPROGRAM METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치 및 그것의 재프로그램 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에, 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 저장하는 데 쓰인다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, 스마트폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다. 최근, 스마트폰과 같은 모바일 장치들에 탑재하기 위하여 불휘발성 메모리 장치의 고용량, 고속 입출력, 저전력화 기술들이 활발하게 연구되고 있다.
본 발명의 목적은 온칩 버퍼 프로그래밍(On-chip Buffered Programming) 방식으로 구동되는 불휘발성 메모리 장치에서 프로그램 속도 향상 또는 데이터 신뢰성을 높이기 위한 재프로그램 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 복수 스텝의 재프로그램 동작들에 의해서 선택된 메모리 셀들 각각에 적어도 3-비트를 기입하는 불휘발성 메모리 장치의 어느 하나의 스텝에 대응하는 재프로그램 방법은, 상기 선택된 메모리 셀들 각각의 비트 라인에 연결되는 페이지 버퍼의 제 1 및 제 2 래치들의 논리값에 따라 상기 선택된 메모리 셀들 각각의 비트 라인을 셋업하는 단계, 상기 선택된 메모리 셀들에 프로그램 펄스를 공급하는 단계, 상기 제 1 및 제 2 래치를 사용하여 상기 선택된 메모리 셀들에 대한 프로그램 검증 동작을 수행하는 단계, 그리고 상기 프로그램 검증 동작의 결과에 따라 상기 선택된 메모리 셀들에 대한 예측 프로그램 동작을 수행하는 단계를 포함하되, 상기 예측 프로그램 동작에서는 상기 선택된 메모리 셀들 각각에 대응하는 상기 페이지 버퍼의 제 3 래치의 논리값에 따라 상기 메모리 셀들의 비트 라인들이 셋업된다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 불휘발성 메모리 장치는, 버퍼 영역 및 상기 버퍼 영역에 저장된 데이터가 복수의 재프로그램 스텝들에 의해서 기입되는 메인 영역을 포함하는 셀 어레이, 행 어드레스에 따라 상기 셀 어레이의 워드 라인을 선택하는 행 디코더, 상기 버퍼 영역으로부터 독출된 복수의 페이지 데이터를 저장하고, 상기 복수의 페이지 데이터를 상기 메인 영역의 선택된 메모리 셀들에 상기 복수의 재프로그램 스텝들에 의거하여 기입하는 페이지 버퍼, 그리고 상기 선택된 메모리 셀들에 대한 복수의 재프로그램 스텝들 중 첫 번째 프로그램 스텝에서, 제 1 및 제 2 페이지 데이터를 참조하여 검증 동작을 수행하고, 제 3 페이지 데이터를 참조하여 적어도 3개의 페이지 데이터를 프로그램하도록 상기 행 디코더 및 페이지 버퍼를 제어하는 제어 로직을 포함한다.
본 발명에 따른 불휘발성 메모리 장치는 재프로그램 동작시 소요되는 프로그램 펄스의 수를 저감할 수 있어 프로그램 속도를 높일 수 있다. 또는 본 발명의 실시 예에 따른 불휘발성 메모리 장치는 프로그램 펄스의 감소분에 대응하는 시간을 산포의 개선에 사용할 수 있어, 읽기 마진을 높일 수 있다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다.
도 2a 및 도 2b는 도 1의 불휘발성 메모리 장치에서 수행되는 온칩 버퍼 프로그램(OBP)을 보여주는 블록도이다.
도 3a 및 도 3b는 재프로그램 방식으로 수행되는 메인 프로그램 동작에서 형성되는 메모리 셀들의 산포를 보여주는 도면들이다.
도 4는 본 발명의 실시 예에 따른 페이지 버퍼를 보여주는 블록도이다.
도 5는 본 발명의 제 1 스텝 재프로그램을 간략히 보여주는 도면이다.
도 6은 본 발명의 페이지 버퍼 회로의 래치들을 간략히 보여주는 표이다.
도 7은 본 발명의 실시 예에 따른 제 1 스텝 재프로그램 방법을 보여주는 순서도이다.
도 8은 도 7의 예측 프로그램 방법을 구체적으로 보여주는 순서도이다.
도 9는 본 발명의 제 1 스텝 재프로그램 동작에서 워드 라인 전압을 개략적으로 보여주는 파형도이다.
도 10은 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. 동일한 구성 요소들은 동일한 참조번호를 이용하여 인용될 것이다. 유사한 구성 요소들은 유사한 참조번호들을 이용하여 인용될 것이다. 아래에서 설명될 본 발명에 따른 플래시 메모리 장치의 회로 구성과, 그것에 의해 수행되는 읽기 동작은 예를 들어 설명한 것에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다.
더불어, 본 발명의 특징 및 기능을 설명하기 위한 불휘발성 저장 매체로서 플래시 메모리 장치를 한 예로서 사용할 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 예를 들면, 본 발명의 기술은 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등에도 사용될 수 있다.
본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명에 따른 실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다. 도 1을 참조하면, 불휘발성 메모리 장치(100)의 셀 어레이(110)는 버퍼 영역(112)과 메인 영역(114)을 포함한다. 불휘발성 메모리 장치(100)는 버퍼 영역(112)에 저장된 데이터를 다시 메인 영역(114)으로 프로그램할 수 있다. 이러한 프로그램 동작을 온칩 버퍼 프로그램(On-Chip Buffered Programming: 이하, OBP)이라 한다.
셀 어레이(110)는 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)을 통해 행 디코더(120)에 연결된다. 셀 어레이(110)는 비트 라인(BL)을 통해서 페이지 버퍼(130)에 연결된다. 셀 어레이(110)는 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함한다. 특히, 셀 어레이(110)를 구성하는 메모리 영역은 버퍼 영역(112)과 메인 영역(114)으로 크게 분류될 수 있다. 프로그램 동작시, 먼저 데이터는 버퍼 영역(112)에 기입된 후, 메인 영역(114)에 프로그램된다. 버퍼 영역(112)에 데이터를 프로그램하는 동작을 버퍼 프로그램(Buffer Programming), 그리고 메인 영역(114)에 데이터를 프로그램하는 동작을 메인 프로그램(Main Program)이라 칭하기로 한다. 메인 프로그램은 다양한 방식으로 구현될 수 있다. 특히, 복수의 페이지를 프로그램하기 위해서 메인 프로그램은 3개의 스텝들로 구성되는 재프로그램 방식(Reprogram scheme)으로 구현될 수 있다.
재프로그램 동작은 버퍼 영역(112)에 저장된 데이터와 관련된 어드레스 정보에 따라 수행될 것이다. 예시적으로, 버퍼 영역(112)에 대한 최소 프로그램 단위와 메인 영역(114)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 저장되는 데이터 비트 수 등에 따라 다양하게 결정될 수 있다. 본 발명의 실시 예에 따르면, 버퍼 영역(112)에 대한 최소 프로그램 단위와 메인 영역(114)에 대한 최소 프로그램 단위는 서로 다를 것이다.
여기에서, 메모리 영역들(112 및 114)은 물리적인 것이 아니라 논리적으로 구분될 수 있음은 잘 이해될 것이다. 즉, 메모리 영역들(112 및 114)은 논리적으로 가변 가능할 것이다. 버퍼 영역(112)에 속한 메모리 블록들은 메인 영역(114)에 속한 메모리 블록들과 다른 방식으로 프로그램될 것이다. 예를 들면, 버퍼 영역(112)에 속한 메모리 블록들은 싱글 레벨 셀(SLC) 프로그램 방식(이하, SLC 프로그램 방식이라 칭함)에 따라 프로그램될 수 있다. 반면, 메인 영역(114)에 속한 메모리 블록들은 멀티 레벨 셀(MLC)이나 트리플 레벨 셀(TLC) 프로그램 방식에 따라 프로그램될 수 있을 것이다.
다른 예로써, 버퍼 영역(112)에 속한 메모리 블록들과 메인 영역(114)에 속한 메모리 블록들은 MLC 프로그램 방식에 따라 프로그램될 것이다. 예를 들면, 버퍼 영역(112)에 속한 메모리 셀들 각각은 2-비트 데이터를 저장하고, 메인 영역(114)에 속한 메모리 셀들 각각은 N-비트 데이터들(N은 3 또는 그보다 큰 정수)을 저장할 것이다. 또한, 버퍼 영역(112)에 속한 메모리 셀들 각각은 메인 영역(114)에 속한 메모리 셀들 각각에 저장되는 N-비트(N은 3 또는 그보다 큰 정수)보다 작은 수의 데이터 비트들을 저장할 것이다.
행 디코더(120)는 어드레스(ADD)에 응답하여 셀 어레이(110)의 메모리 블록들 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드 라인들 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드 라인들에 워드 라인 전압(VWL)을 전달한다. 행 디코더(120)는 선택된 메모리 블록의 선택 라인들(예를 들면, SSL이나 GSL)에 선택 신호들을 전달한다. 행 디코더(120)는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm)과 검증 전압(VR)을, 비선택 워드 라인(Unselected WL)에는 패스 전압(Vpass)을 전달할 수 있다.
페이지 버퍼(130)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 프로그램 동작시, 페이지 버퍼(130)는 셀 어레이(110)의 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 전달한다. 읽기 동작시, 페이지 버퍼(130)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지한다. 페이지 버퍼(130)는 감지된 데이터를 래치하여 외부로 출력할 수 있다.
페이지 버퍼(130)는 재프로그램 동작시에 버퍼 영역(112)으로부터 복수의 페이지 데이터를 독출한다. 그리고 페이지 버퍼(130)는 독출된 복수의 페이지 데이터를 메인 영역(114)에 재프로그램한다. 메인 영역(114)으로의 재프로그램 동작에서, 페이지 버퍼(130)는 독출된 데이터를 내부 래치들에 저장하여 재구성한다. 재구성된 데이터에 의해서 선택된 메모리 셀들은 프로그램될 것이다.
입출력 버퍼(140)는 프로그램 동작시에 입력받는 쓰기 데이터를 페이지 버퍼 (130)에 전달한다. 입출력 버퍼(140)는 읽기 동작시에 페이지 버퍼(130)로부터 제공되는 읽기 데이터를 외부로 출력한다. 입출력 버퍼(140)는 입력되는 어드레스 또는 명령어를 제어 로직(150)이나 행 디코더(120)에 전달한다.
제어 로직(150)은 입출력 버퍼(140)로부터 전달되는 명령어(CMD) 및 어드레스(ADD)에 응답하여 행 디코더(120) 또는 페이지 버퍼(130)를 제어한다. 제어 로직(150)은 입출력 버퍼(140)를 통해서 제공되는 쓰기 명령, 읽기 명령, 소거 명령에 응답하여 선택된 메모리 영역을 액세스하기 위한 제어 동작을 수행한다. 특히, 외부의 명령에 응답하여 제어 로직(150)은 재프로그램 동작을 수행하기 위하여 행 디코더(120) 및 페이지 버퍼(130)를 제어할 수 있다.
제어 로직(150)은 메인 프로그램 절차에 따라 버퍼 영역(112)으로부터 읽혀진 복수의 페이지 데이터를 메인 영역(114)의 타깃 영역에 프로그램한다. 이때, 메인 프로그램을 위해서 적어도 3개 스텝의 재프로그램 동작이 수행될 수 있다. 특히, 3개 스텝의 재프로그램 동작들 각각에 의해서 형성되는 메모리 셀들의 타깃 산포의 수는 동일하다. 예를 들면, 메인 프로그램을 위해서 선택된 메모리 셀들이 트리플 레벨 셀(TLC)인 경우, 메모리 셀들은 재프로그램 스텝들 각각에서 8개의 문턱 전압 산포를 갖도록 프로그램될 것이다. 특히, 제 1 스텝의 재프로그램 동작에서 선택된 메모리 셀들은 처음부터 8개 문턱 전압 산포들을 갖도록 프로그램될 수 있다.
이상에서 설명된 불휘발성 메모리 장치(100)는 메인 프로그램 동작의 제 1 스텝에서부터 선택된 메모리 셀들을 8 또는 그 이상의 문턱 전압 산포들을 갖도록 프로그램할 수 있다. 따라서, 메인 프로그램에 소요되는 시간을 줄일 수 있다. 또는, 메인 프로그램에 소요되는 시간 단축을 통해서 확보된 시간을 읽기 마진을 높이는 동작에 사용할 수 있을 것이다. 따라서, 본 발명의 불휘발성 메모리 장치(100)에 따르면 메인 프로그램 속도를 높이거나, 높은 데이터 신뢰성을 확보할 수 있다.
도 2a 및 도 2b는 도 1의 불휘발성 메모리 장치에서 수행되는 온칩 버퍼 프로그램(OBP)을 간략히 보여주는 블록도이다. 도 2a는 버퍼 프로그램 동작을 보여주고, 도 2b는 메인 프로그램 동작을 보여준다.
도 2a를 참조하면, 불휘발성 메모리 장치(100)는 외부에서 제공되는 쓰기 데이터(Write data)를 버퍼 영역(112)에 프로그램한다. 버퍼 영역(112)에 할당되는 메모리 셀들은 싱글 레벨 셀(SLC)로 사용될 수 있다. 따라서, 버퍼 영역(112)에 대응하는 메모리 셀들 각각에는 1-비트의 데이터가 저장된다. 싱글 레벨 셀(SLC)로 사용되는 버퍼 영역(112)에 대한 쓰기 속도나 데이터 신뢰성(Data integrity)은 멀티 레벨 셀(MLC) 또는 트리플 레벨 셀(TLC)로 관리되는 메인 영역(114)보다 높은 편이다. 따라서, 버퍼 영역(112)에 데이터가 기입되는 버퍼 프로그램 동작의 속도는 상대적으로 높다.
버퍼 프로그램 동작을 위해서 외부로부터 쓰기 데이터(Write data)가 입력된다. 쓰기 데이터(Write data)는 먼저 페이지 버퍼(130)에 로드될 것이다. 외부로부터 입력된 쓰기 데이터가 페이지 버퍼(130)에 로드되는 경로는 데이터 경로(①)로 표시되어 있다. 버퍼 프로그램을 위해서 외부에서는 페이지 단위로 쓰기 데이터를 입력할 것이다.
페이지 버퍼(130)에 저장된 쓰기 데이터는 버퍼 영역(112)에 프로그램된다. 페이지 단위(예를 들면, 2K Byte)의 데이터가 페이지 버퍼(130)에 로드되면, 페이지 버퍼(130)는 버퍼 영역(112)에 로드된 데이터를 프로그램한다. 이때, 버퍼 영역(112)에 프로그램되는 데이터는 싱글 레벨 셀(SLC) 방식에 의거하여 기입될 수 있다. 또는, 버퍼 영역(112)의 메모리 셀들의 셀당 저장되는 비트 수가 메인 영역(114)의 메모리 셀들과 동일하지만, 셀당 1-비트의 데이터만을 저장하도록 관리될 수 있다. 이러한 방식으로 복수의 페이지 데이터가 버퍼 영역(112)에 프로그램될 수 있다. 이러한 프로그램 절차는 데이터 경로(②)로 표시되어 있다.
여기서, 버퍼 영역(112)에 포함된 메모리 셀들의 셀당 저장되는 데이터 비트 수는 1-비트 또는 2-비트 이상일 수도 있다. 다만, 버퍼 영역(112)의 메모리 셀들의 셀당 저장 비트 수는 메인 영역(114)에 포함되는 메모리 셀들의 셀당 저장 비트 수보다 적을 것이다.
도 2b를 참조하면, 버퍼 영역(112)에 저장된 데이터를 다시 메인 영역(114)으로 프로그램하는 메인 프로그램의 절차가 도시되어 있다. 버퍼 영역(112)에 저장된 복수의 페이지 단위의 데이터를 메인 영역(114)의 타깃 영역으로 프로그램하기 위해서는 버퍼 영역(112)에 대한 읽기 동작이 우선되어야 한다. 따라서, 버퍼 영역(112)에 저장된 복수의 페이지들이 페이지 버퍼(130)에 의해서 센싱된다. 이러한 동작은 데이터 경로(③)로 도시되어 있다. 센싱된 복수의 페이지 데이터는 페이지 버퍼(130)의 내부에 구비되는 복수의 래치들(미도시됨)에 저장될 것이다. 버퍼 영역(112)에 대한 읽기 동작은 불휘발성 메모리 장치(100)의 외부 명령에 의해서 제어될 것이다.
버퍼 영역(112)에 대한 읽기가 완료되면, 불휘발성 메모리 장치(100)는 읽혀진 복수의 페이지들을 메인 영역(114)에 프로그램하기 위한 쓰기 명령을 제공받는다. 쓰기 명령에는 타깃 영역(115, Target Area)에 대응하는 타깃 어드레스(Target address)가 포함될 것이다. 이때, 페이지 버퍼(130)는 멀티 레벨 셀(MLC) 방식에 따라 타깃 영역(Target Area)에 복수의 페이지를 프로그램할 수 있다. 예를 들면, 버퍼 영역(112)으로부터 읽어낸 복수의 페이지를 한꺼번에 프로그램할 수 있다. 그리고 페이지 버퍼(130)는 이러한 메인 프로그램 동작을 복수 스텝으로 구성되는 재프로그램 절차를 통해서 수행할 수 있다. 이러한 절차는 데이터 경로(④)로 표시되어 있다.
이상에서는 버퍼 영역(112)이 싱글 레벨 셀(SLC) 방식으로 관리되는 것으로 설명되었으나, 본 발명은 여기에 국한되지 않는다. 즉, 버퍼 영역(112)의 셀당 저장되는 비트 수가 메인 영역(114)의 셀당 저장되는 비트 수보다 적은 불휘발성 메모리 장치들에 본 발명이 적용될 수 있을 것이다. 더불어, 버퍼 영역(112)에 대한 최소 프로그램 단위와 메인 영역(114)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 저장되는 비트 수 등에 따라 다양하게 결정될 수 있다. 본 발명의 실시 예에 따르면, 버퍼 영역(112)에 대한 최소 프로그램 단위와 메인 영역(114)에 대한 최소 프로그램 단위는 서로 다를 것이다.
도 3a 및 도 3b는 재프로그램 방식으로 수행되는 메인 프로그램 동작에서 형성되는 메모리 셀들의 산포를 보여주는 도면들이다. 이하에서는, 메인 영역(114)의 메모리 셀들이 TLC(Triple Level Cell)인 경우를 예로 본 발명의 특징들이 설명될 것이다. 하지만, 메인 영역(114)의 메모리 셀들은 셀당 4-비트 이상을 저장하는 셀들일 수도 있음을 잘 이해될 것이다.
도 3a는 제 1 스텝 재프로그램 동작에서 메모리 셀들 각각에 2-비트가 프로그램되는 예를 보여준다. 그리고 제 2 내지 3 스텝 재프로그램 동작에서 메모리 셀들 각각에 3-비트가 프로그램된다. 즉, 제 1 스텝 재프로그램 동작에서 메모리 셀들의 문턱 전압은 4개의 산포들(E0, Q1, Q2, Q3)을 형성하게 될 것이다.
먼저, 제 1 스텝 재프로그램에서 선택된 메모리 셀들(115, 도 2b 참조)에는 2개의 페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 저장될 것이다. 제 1 스텝 재프로그램 이전에는 선택된 메모리 셀들은 소거 상태(E0)에 해당하는 문턱 전압을 가질 것이다. 선택된 메모리 셀들은 제 1 스텝 재프로그램(1st Step Reprogramming)의 실행에 따라 4개의 산포들(E0, Q1, Q2, Q3) 중 적어도 하나의 산포를 갖게 될 것이다.
제 1 스텝 재프로그램 동작 동안, 선택된 메모리 셀들의 워드 라인에는 프로그램 전압(Vpgm)과 검증 전압(VR11, VR12, VR13)이 제공될 것이다. 산포(Q1)에 대응하는 문턱 전압으로 재프로그램되는 메모리 셀들은 검증 전압(VR11)에 의해서 프로그램 완료 여부가 판정될 것이다. 산포(Q2)에 대응하는 문턱 전압으로 재프로그램되는 메모리 셀들은 검증 전압(VR12)에 의해서 프로그램 완료 여부가 판정될 것이다. 산포(Q3)에 대응하는 문턱 전압으로 재프로그램되는 메모리 셀들은 검증 전압(VR13)에 의해서 프로그램 완료 여부가 판정될 것이다.
제 1 스텝(1st Step) 재프로그램 동작이 완료되면, 선택된 메모리 셀들(115)은 제 2 스텝(2nd Step) 재프로그램 동작에 따라 8개의 산포들(E0, P21, P22, P23, P24, P25, P26, P27)로 프로그램된다. 즉, 제 2 스텝(2nd Step)의 재프로그램 동작부터는 선택된 메모리 셀들에는 3-비트의 데이터가 기입될 것이다. 제 2 스텝(2nd Step)의 재프로그램 동작 동안, 선택된 메모리 셀들의 워드 라인에는 프로그램 전압(Vpgm)과 검증 전압들(VR21, VR22, VR23, VR24, VR25, VR26, VR27)이 제공될 것이다. 검증 전압들(VR21, VR22, VR23, VR24, VR25, VR26, VR27)에 의해서 선택된 메모리 셀들 각각의 문턱 전압이 타깃 산포들(P21, P22, P23, P24, P25, P26, P27)로 변화되었는지 검출될 것이다. 여기서, 검증 전압들(VR21, VR22, VR23, VR24, VR25, VR26, VR27)은 읽기 마진을 고려하지 않은 타깃 산포들(P21, P22, P23, P24, P25, P26, P27)로 프로그램하기 위한 전압들이다. 따라서, 제 2 스텝(2nd Step) 재프로그램을 통해서 선택된 메모리 셀들에는 3-비트의 데이터가 개략적으로 프로그램(Coarse Program)된다.
제 3 스텝(3rd Step) 재프로그램 동작에서는, 읽기 마진을 확보하기 위한 파인 프로그램(Fine Program)이 수행된다. 즉, 제 3 스텝(3rd Step) 재프로그램에서 페이지 버퍼(130)에 설정되는 프로그램 데이터는 제 2 스텝(2nd Step) 재프로그램 동작에서와 동일하다. 하지만, 제 3 스텝(3rd Step) 재프로그램 동작에서 선택된 메모리 셀들의 워드 라인으로 검증 전압들(VR31, VR32, VR33, VR34, VR35, VR36, VR37)이 인가된다. 검증 전압들(VR31, VR32, VR33, VR34, VR35, VR36, VR37)에 의해서 선택된 메모리 셀들의 문턱 전압은 산포들(E0, P31, P32, P33, P34, P35, P36, P37)로 형성될 것이다. 제 3 스텝(3rd Step)의 재프로그램 동작을 통해서 선택된 메모리 셀들은 읽기 마진을 확보할 수 있게 된다.
이상에서는 선택된 메모리 셀들은 제 1 스텝(1st Step) 재프로그램 동작에서 4개의 산포들(E0, Q1, Q2, Q3)을 형성하고, 제 2 내지 제 3 스텝 재프로그램 동작에서 8개의 산포들을 형성하는 메인 프로그램 방식이 설명되었다. 이러한 메인 프로그램 방식을 '4-8-8' 재프로그램 방식이라고도 한다.
도 3b를 참조하면, 본 발명의 실시 예에 따른 메인 프로그램 절차가 도시되어 있다. 여기서, 제 1 내지 제 3 스텝(1st Step ~ 3rd Step) 각각의 재프로그램 동작에서 3-비트 데이터가 프로그램되는 '8-8-8' 재프로그램 방식이 예시적으로 설명될 것이다.
먼저, 선택된 워드 라인의 메모리 셀들에는 3개의 페이지 데이터가 저장되는 제 1 스텝(1st Step) 재프로그램 동작이 진행될 것이다. 제 1 스텝(1st Step) 재프로그램 동작을 통해서 선택된 메모리 셀들의 문턱 전압은 8개의 상태들(E0, P11, P12, P13, P14, P15, P16, P17) 중 어느 하나에 대응하는 값을 가질 것이다. 제 1 스텝(1st Step) 재프로그램 동작에 의해서 형성되는 메모리 셀들의 문턱 전압 분포는 상대적으로 넓을 수 있다. 이러한 프로그램 방식을 인접한 메모리 셀들로부터 받는 영향에 따라 이후에 넓어질 수 있기 때문이다.
본 발명의 실시 예에 따른 제 1 스텝(1st Step) 재프로그램 동작에 따르면, 복수의 프로그램 루프가 진행되는 동안, 검증 동작은 검증 전압들(VR11, VR12, VR13)에 의해서 수행된다. 제 1 스텝(1st Step) 재프로그램 동작의 각 프로그램 루프들에서는 3개의 타깃 산포들(P12, P14, P16)로의 프로그램 완료 여부만 검출된다. 즉, 제 1 스텝(1st Step) 재프로그램 동작에서, 2-비트 데이터에 대해서 프로그램 검증 동작이 활성화된다. 그러나 제 1 스텝(1st Step) 재프로그램 동작의 마지막 루프에서 타깃 산포들(P11, P13, P15, P17)에 해당되는 메모리 셀들에 대한 예측 프로그램(Predictive Program)이 실시된다. 예측 프로그램에서는 별도의 프로그램 검증 동작은 생략될 것이다.
제 1 스텝(1st Step) 재프로그램 동작에 후속되는 제 2 내지 제 3 스텝(2nd Step ~3rd Step)의 재프로그램 동작에서는 읽기 마진을 확보하기 위해서, 또는 프로그램 속도를 높이기 위한 프로그램 동작이 수행될 수 있다. 예를 들면, 프로그램 속도를 높이기 위해서는 프로그램 펄스의 증가폭을 상향할 수 있다. 이런 경우에는 높은 프로그램 속도를 달성할 수 있다. 반면, 제 2 내지 제 3 스텝(2nd Step ~3rd Step)의 재프로그램 동작에서 읽기 마진을 충분히 확보하기 위한 조작들이 수행될 수 있다. 예를 들면, 프로그램 펄스의 증가폭을 하향하여 프로그램 루프 수를 증가시킬 수 있을 것이다. 하지만, 제 1 스텝(1st Step) 재프로그램 동작에서 확보된 8개 문턱 전압 산포들에 의해서 제 2 내지 제 3 스텝(2nd Step ~3rd Step) 재프로그램 동작에 소요되는 시간은 대폭 감소될 것이다. 이 경우에는 높은 데이터 신뢰성을 달성할 수 있다.
이상에서 설명된 본 발명의 재프로그램 방법에 따르면, 제 1 스텝(1st Step)의 재프로그램 동작에서 메모리 셀에 2-비트의 데이터를 프로그램하는 검증 방식을 사용하면서도 3-비트의 데이터를 프로그램하는 효과를 얻을 수 있다. 따라서, 후속되는 제 2 내지 제 3 스텝(2nd Step~3rd Step)에서의 프로그램 부담을 획기적으로 줄일 수 있다.
도 4는 본 발명의 실시 예에 따른 페이지 버퍼(130)를 간략히 보여주는 블록도이다. 도 4를 참조하면, 페이지 버퍼(130)는 비트 라인들(BL0~BLm-1) 각각에 연결되는 복수의 페이지 버퍼 회로들(131, 132, 133, …, 134)을 포함한다.
메인 영역(114)에는 복수의 메모리 블록들이 포함될 것이다. 도면에는 하나의 메모리 블록으로 메인 영역(114)을 도시하였으나, 복수의 메모리 블록들 각각에 대해서도 도시된 구조가 적용됨은 잘 이해될 것이다. 만일, 워드 라인(WL<0>)에 연결되는 메모리 셀들이 메인 프로그램을 위해서 선택되는 경우를 가정하자. 그러면, 제 1 내지 제 3 스텝(1st Step ~ 3rd Step) 재프로그램 동작에 의해서 페이지 버퍼(130)에 로드되는 3개의 페이지 데이터가 선택된 메모리 셀들에 프로그램될 것이다.
페이지 버퍼 회로들(131, 132, 133, …, 134) 각각은 복수의 래치들(A, B, C, …)을 포함한다. 버퍼 프로그램(Buffer Program)이나 메인 프로그램 동작시 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 래치들에는 프로그램될 데이터가 로드된다. 메인 프로그램 동작을 위해서, 버퍼 영역(112)으로부터 복수의 페이지 데이터가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 래치들(A, B, C)에 순차적으로 저장될 것이다. 예를 들면, 버퍼 영역(112)에 저장된 제 1 페이지(page1)가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 A 래치에 저장될 것이다. 버퍼 영역(112)에 저장된 제 2 페이지(page2)가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 B 래치에 저장될 것이다. 버퍼 영역(112)에 저장된 제 3 페이지(page3)가 센싱되어 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각의 C 래치에 저장될 것이다. 페이지 버퍼 회로들(131, 132, 133, …, 134) 각각은 센싱 래치, 캐시 래치 등의 추가적인 래치 회로들을 포함할 수 있으나, 여기에서는 이것들에 대한 설명은 생략하기로 한다.
제 1 스텝(1st Step) 재프로그램 동작시, 선택된 메모리 셀들 각각은 래치들(A, B, C, …) 중에서 2개의 래치들(A, B)에 저장된 비트에 따라 4개의 상태들 중 어느 하나로 분류된다. 즉, 선택된 메모리 셀들은 검증 전압(VR11, VR12, VR13) 각각에 의해서 검증 읽기를 위해 선택되는 그룹들로 분류된다. 그리고 제 1 스텝(1st Step) 재프로그램 동작의 마지막 루프에서는 선택된 메모리 셀들 각각은 C 래치에 저장된 비트값에 따라서 예측 프로그램(Predictive Program)될 수 있다. 즉, C 래치에 저장된 비트에 따라서 선택된 메모리 셀들의 비트 라인이 셋업될 것이다. 그리고 마지막 프로그램 펄스에 의해서 선택된 메모리 셀들의 문턱 전압은 개략적으로 8개의 산포들을 형성하게 될 것이다.
도 5는 본 발명의 제 1 스텝 재프로그램을 간략히 보여주는 도면이다. 도 5를 참조하면, 제 1 스텝(1st Step) 재프로그램 동작의 마지막 루프에서 예측 프로그램(Predictive Program)이 실시된다.
제 1 스텝(1st Step) 재프로그램 동작에서, 선택된 메모리 셀들은 페이지 버퍼 회로에 로드된 2-비트 데이터에 의해서 4개의 그룹으로 분류된다. 예를 들면, 선택된 메모리 셀들은 래치들(A, B)에 저장된 비트값에 따라서 4개의 타깃 상태들(160, 162, 164, 166)로 분류될 수 있다. 그리고 제 1 스텝(1st Step) 프로그램 동작의 N-1 루프(N은 자연수)까지 4개의 상태들(160, 162, 164, 166)에 대응하는 문턱 전압 산포를 갖도록 프로그램-검증(Program-Verify) 절차가 반복될 것이다. 이때, 선택된 메모리 셀들에 제공되는 검증 전압들(VR11, VR12, VR13)에 의해서 4개의 타깃 상태들(160, 162, 164, 166)로의 프로그램 완료 여부가 검출될 것이다.
선택된 메모리 셀들이 4개의 타깃 상태들(160, 162, 164, 166) 각각으로 프로그램 완료된 것으로 검증되면, 제 1 스텝(1st Step) 재프로그램 동작의 마지막 N 루프가 실시될 것이다. 이때에는 페이지 버퍼 회로의 C 래치가 참조된다. C 래치의 논리값에 따라 선택된 메모리 셀들 각각은 예측 프로그램될 셀인지 프로그램 금지될 셀인지 결정될 것이다.
만일, A 및 B 래치 각각의 논리값이 논리 '1'이고, C 래치의 논리값이 논리 '1'인 경우, 선택된 메모리 셀은 예측 프로그램에서 프로그램 금지로 설정될 수 있을 것이다. 예측 프로그램 결과, 선택된 메모리 셀은 소거 상태(E0)로 유지될 수 있을 것이다. 반면, A 및 B 래치 각각의 논리값이 논리 '1'이고, C 래치의 논리값이 논리 '0'인 경우, 선택된 메모리 셀은 예측 프로그램에서 P1 상태로 프로그램되도록 설정될 것이다. 즉, 제 1 스텝 재프로그램 동작의 마지막 N 루프에서, 선택된 메모리 셀의 비트 라인은 0V로 셋업될 수 있을 것이다. 예측 프로그램이 진행되면, 선택된 메모리 셀은 P1 상태로 프로그램될 수 있다. 예측 프로그램에서는 프로그램 검증 동작 이전에 C 래치의 데이터는 논리 '1'로 강제적으로 설정된다. 따라서, 검증 읽기 동작이 수행되더라도 마지막 N 프로그램 루프에서는 무조건 검증 패스(Verify Pass)로 판정될 수 있도록 페이지 버퍼(130)의 래치들이 설정되어야 할 것이다.
도 6은 본 발명의 페이지 버퍼 회로의 래치들을 간략히 보여주는 표이다. 도 6을 참조하면, 제 1 스텝 재프로그램 동작에서, 하나의 선택된 메모리 셀은 페이지 버퍼 회로의 A, B 래치의 논리값에 따라서 4개의 그룹들(160, 162, 164, 166) 중 어느 하나로 결정될 수 있다. 그리고 예측 프로그램(Predictive Program)은 C 래치의 논리값에 의거하여 수행된다.
A 래치와 B 래치에 저장된 논리값에 따라서 메모리 셀들의 제 1 스텝에서의 적용되는 그룹이 구분될 수 있다. 예를 들면, A와 B 래치에 저장된 논리값이 논리 '11'인 경우는 제 1 그룹(160)으로 분류될 수 있다. A와 B 래치에 저장된 논리값이 논리 '00'인 경우는 제 2 그룹(162)으로 분류될 수 있다. A와 B 래치에 저장된 논리값이 논리 '01'인 경우는 제 3 그룹(164)으로 분류될 수 있다. A와 B 래치에 저장된 논리값이 논리 '10'인 경우는 제 4 그룹(160)으로 분류될 수 있다. 제 1 스텝(1st Step)의 재프로그램 동작의 N-1 루프까지는 각각의 그룹 단위로 검증 동작이 발생할 것이다. 따라서, 제 2 그룹(162)의 메모리 셀들에 대한 검증 읽기 동작은 검증 전압(VR11)에 의해서 실시될 수 있을 것이다. 제 3 그룹(164)의 메모리 셀들에 대한 검증 읽기 동작은 검증 전압(VR12)에 의해서 실시될 수 있다. 제 4 그룹(166)의 메모리 셀들은 검증 전압(VR13)에 의해서 이루어질 수 있다.
그리고 검증 전압들(VR11, VR12, VR13)에 의한 선택된 메모리 셀들의 검증이 완료되면, C 래치에 저장된 논리값에 따라 예측 프로그램이 실시된다. 예를 들면, 제 1 그룹(160)에 속하지만, C 래치에 저장된 데이터의 논리값이 논리 '0'인 메모리 셀은 이후 P1 상태로 이동하기 위한 예측 프로그램이 적용될 것이다. 예측 프로그램 동작은 다음과 같다. C 래치에 저장된 논리값에 따라 선택된 메모리 셀의 비트 라인이 셋업된다. 그리고 프로그램 전압이 인가된 후에 C 래치의 논리값은 다시 논리 '1'로 리셋된다. 이러한 설정을 통해서 예측 프로그램된 메모리 셀에 대해서 강제적으로 프로그램 금지로 설정된다. 따라서, 예측 프로그램 동작이 제 1 스텝(1st Step) 재프로그램 동작의 마지막 루프가 될 것이다. 이러한 래치 설정은 P3, P5, P7로 예측 프로그램되는 메모리 셀들의 C 래치에서도 동일하게 적용될 것이다.
도 7은 본 발명의 실시 예에 따른 제 1 스텝 재프로그램 방법을 보여주는 순서도이다. 도 7을 참조하면, A 래치와 B 래치의 논리값에 근거하여 프로그램되는 동작들과 C 래치에 저장된 논리값에 근거하여 진행되는 예측 프로그램에 대응하는 루프들이 제 1 스텝 재프로그램 동작에 포함된다.
S110 단계에서, 버퍼 영역(112)에 대한 읽기 동작이 실시된다. 예를 들면, 메인 프로그램을 통해서 3개의 페이지 데이터가 프로그램되는 경우, 버퍼 영역(112)으로부터 재프로그램될 3개의 페이지 데이터가 읽혀질 것이다. 그리고 읽혀진 데이터는 페이지 버퍼(130)의 래치들에 순차적으로 저장된다.
S120 단계에서, 데이터 쿠킹(Data cooking)이 실시된다. 데이터 쿠깅에 의해서 페이지 버퍼 회로에 A, B, C 래치의 데이터들이 배열된다. 데이터 쿠킹을 통해서, 프로그램될 3-비트 데이터가 A, B, C 래치에 할당될 것이다. 데이터 쿠킹은 프로그램 상태들(E0, P1, P2, P3, P4, P5, P6, P7) 각각에 대한 비트 할당에 의거하여 수행된다. 즉, 인접한 프로그램 상태들끼리는 1-비트의 차이만 갖도록 래치들이 설정될 것이다.
S130 단계에서, A 래치 및 B 래치의 논리값에 의거하여 선택된 메모리 셀들에 대한 비트 라인 셋업(BL Setup)이 실시된다. 예를 들면, 4개의 그룹들(160, 162, 164, 166) 중에서 제 1 그룹(160)에 대응하는 메모리 셀들의 비트 라인은 프로그램 금지를 위한 전압으로 셋업된다. 즉, 타깃 상태가 소거 상태나 프로그램 상태(P1)인 메모리 셀들의 비트 라인은 프로그램 금지 전압(예를 들면, Vcc)으로 셋업될 것이다. 반면, 나머지 그룹들(162, 164, 166)로 분류된 메모리 셀들의 비트 라인은 0V로 셋업될 수 있을 것이다.
S140 단계에서, 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)이 인가된다. 첫 번째 프로그램 루프에서는 가장 낮은 레벨의 프로그램 펄스(Vpgm1)가 인가될 것이다.
S150 단계에서, 프로그램 펄스의 인가에 뒤따라 선택된 메모리 셀들의 워드 라인으로는 검증 전압들(VR11, VR12, VR13)이 인가될 것이다.
S160 단계에서, 검증 전압들(VR11, VR12, VR13) 각각에 의해서 읽혀진 데이터를 참조하여 선택된 메모리 셀들에 대한 프로그램 완료 여부가 검출된다. 만일, 검증 읽기 동작에 의해서 래치들(A, B)에 설정되는 데이터가 모두 논리 '1'인 경우, 4개의 그룹들 각각에 대한 프로그램은 완료된다. 이 경우, 절차는 S180 단계로 이동할 것이다. 반면, 검증 읽기 동작에 의해서 래치들(A, B)이 모두 논리 '1'로 변하지 않는 경우, 절차는 다음 프로그램 루프를 수행하기 위한 S170 단계로 이동할 것이다.
S170 단계에서, 루프 카운트(Loop_cnt)가 카운트 업(Count up)된다. 그리고 절차는 증가된 루프 카운트에 대응하는 프로그램 동작을 실시하기 위한 S130 단계로 복귀한다.
S180 단계에서, C 래치의 논리값을 참조하여 예측 프로그램이 실시된다. 즉, C 래치의 논리값에 따라 선택된 메모리 셀들의 문턱 전압은 프로그램 상태들(E0, P2, P4, P6)로 유지되거나, 프로그램 상태들(P1, P3, P5, P7)로 이동할 것이다. 예측 프로그램 동작에서는 프로그램 펄스의 제공은 1회에 한한다. 그리고 예측 프로그램 동작에서는 프로그램 결과를 판단하기 위한 프로그램 검증 동작은 스킵(Skip)될 것이다. 예측 프로그램에 대해서는 후술하는 도 8에서 좀더 구체적으로 설명될 것이다.
이상에서는 제 1 스텝 재프로그램 동작이 개략적으로 설명되었다. 제 1 스텝 재프로그램에서 수행되는 예측 프로그램을 통해서 8개의 문턱 전압 산포의 형성이 가능하다. 여기서, 프로그램 상태(P1)로 프로그램될 메모리 셀들은 제 1 스텝 재프로그램 동작의 첫 번째 루프에서부터 예측 프로그램을 적용할 수도 있을 것이다. 또는, 프로그램 상태(P1)로 프로그램될 메모리 셀들은 비트 라인 포싱 방식으로 제어될 수 있다. 비트 라인 포싱 방식은 비트 라인에 프로그램 금지 전압(Program inhibit)보다 낮은 전압으로 셋업하는 방식을 의미한다. 이러한 별도의 제어를 통해서 프로그램 펄스의 크기에 따라 발생하는 프로그램 속도 차이를 해소할 수 있다.
도 8은 도 7의 예측 프로그램 방법을 구체적으로 보여주는 순서도이다. 도 8을 참조하면, 예측 프로그램은 C 래치에 로드되는 데이터를 참조하여 비트 라인을 셋업하고, 검증 읽기가 수행되기 이전에 C 래치의 데이터를 강제로 논리 '1'로 설정한다. 이러한 절차를 통해서 예측 프로그램은 1회의 프로그램 루프 동안 실시될 수 있다.
S181 단계에서, 각각의 그룹들(160, 162, 164, 166)에 포함되는 메모리 셀들에 대해서 페이지 버퍼(130)의 C 래치의 논리값에 따라 비트 라인 셋업이 실시된다. 즉, 제 1 그룹(160)의 메모리 셀들 중에서 C 래치의 논리값이 논리 '0'인 메모리 셀들의 비트 라인은 0V로 셋업될 수 있다. 반면, 제 1 그룹(160)의 메모리 셀들 중에서 C 래치의 논리값이 논리 '1'인 메모리 셀들의 비트 라인은 프로그램 금지 전압(예를 들면, Vcc)으로 셋업될 수 있다. 이러한 비트 라인 셋업은 나머지 그룹들(162, 164, 166)에 대응하는 메모리 셀들에 대해서도 적용될 것이다. 여기서, 제 1 그룹(160)의 메모리 셀들 중에서 타깃 상태(P1)로 프로그램될 메모리 셀들에 대해서는 비트 라인 포싱 방식으로 비트 라인 전압이 제공될 수도 있다.
S182 단계에서, 선택된 메모리 셀들의 워드 라인으로 프로그램 펄스가 제공된다.
S183 단계에서, 검증 읽기 동작이 시작되기 이전에 C 래치에 대한 프로그램 금지(Program Inhibit) 설정이 수행된다. 일반적으로는 프로그램 검증 동작의 결과로 C 래치의 논리값이 논리 '1'로 토글링되지만, 본 발명의 예측 프로그램에서는 무조건 프로그램 성공으로 래치들을 설정하기 위해서 C 래치의 데이터값이 강제로 논리 '1'로 변환된다.
S184 단계에서 검증 읽기 동작이 수행될 수 있다. 예를 들면, 검증 전압들(VR11, VR12, VR13)이 제공되고, 선택된 메모리 셀들에 대한 센싱이 수행될 것이다. 하지만, 이미 C 래치의 논리값은 논리 '1'로 설정되어 있기 때문에 검증 전압들(VR11, VR12, VR13)에 의한 예측 프로그램에서의 검증 읽기 동작은 무조건 프로그램 패스로 판정될 것이다. 따라서, 검증 읽기의 결과에 관계없이 예측 프로그램 동작은 종료될 것이다.
여기서, S183 단계 및 S184 단계는 예측 프로그램 동작에서 수행되는 더미 검증 동작에 대응한다. 즉, 선택된 메모리 셀들에 대해서 검증 전압들(VR11, VR12, VR13)은 제공되지만, 더미 검증 동작에 의해서 선택된 메모리 셀들은 프로그램 완료 여부에 관계없이 검증 패스(Verify Pass)로 간주된다.
도 9는 본 발명의 제 1 스텝 재프로그램 동작에서 워드 라인 전압을 개략적으로 보여주는 파형도이다. 도 9를 참조하면, 제 1 스텝(1st Step)의 재프로그램 동작에서 제공되는 검증 전압의 레벨은 4개의 타깃 상태들에 대응한다. 하지만, 마지막 루프에 대응하는 예측 프로그램을 통해서 8개의 타깃 상태들이 형성될 수 있다.
프로그램 동작시 각각의 루프(Loop_cnt)에서는 프로그램 전압(VpgmN, N은 자연수)과 이어지는 검증 전압들(VR11, VR12, VR13)이 제공된다. 여기서, 매 루프마다 제공되는 검증 전압들의 레벨은 '8-8-8' 재프로그램 방식에서 적용되는 예시에 불과하다. 이러한 프로그램 루프들이 반복되고, 선택된 메모리 셀들의 문턱 전압이 검증 전압들(VR11, VR12, VR13) 각각에 대해서 검증 패스(Verify pass)로 판정되면, 마지막 프로그램 루프(Loop count N)가 진행된다. 마지막 프로그램 루프는 예측 프로그램에 대응한다.
예측 프로그램에서 선택된 메모리 셀들에는 프로그램 전압(VpgmN)이 인가된다. 그리고 검증 읽기 동작이 수행되기 이전에 C 래치의 논리값은 논리 '1'로 강제 셋팅된다. 그러면, 예측 프로그램에서의 검증 읽기 결과는 무조건 검증 패스(Verify Pass)로 결정된다. 즉, 검증 읽기 동작을 위한 검증 전압이 제공되기는 하지만, 실질적으로 검증 읽기 동작의 결과에 관계없이 예측 프로그램은 종료된다. 즉, 예측 프로그램에서 수행되는 검증 동작은 더미 검증 동작에 대응한다. 이러한 예측 프로그램을 통해서 메모리 셀들의 문턱 전압 산포는 4개의 상태에서 8개의 상태로 증가하게 될 것이다.
도 10은 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다. 도 10을 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(1210)는 불휘발성 메모리 장치(1230)를 액세스한다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 불휘발성 메모리 장치(1230)는 실질적으로 도 1의 불휘발성 메모리 장치(100)와 동일하다. 즉, 불휘발성 메모리 장치(1230)는 메인 프로그램의 첫 번째 스텝에 대응하는 재프로그램 동작에서 8개의 산포를 형성할 수 있다. 따라서, 불휘발성 메모리 장치(1230)는 높은 프로그램 속도 또는 높은 데이터 신뢰성(Data Integrity)를 제공할 수 있다.
저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 불휘발성 메모리 장치(1230)는 버퍼 프로그램 동작을 위한 버퍼 영역과 메인 프로그램 동작을 위한 메인 영역을 포함한다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110 : 셀 어레이 112 : 버퍼 영역
114 : 메인 영역 120 : 행 디코더
130 : 페이지 버퍼 140 : 입출력 버퍼
150 : 제어 로직 1100 : 호스트
1200 : SSD 1210 : SSD 컨트롤러
1220 : 버퍼 메모리 1230 : 불휘발성 메모리 장치

Claims (10)

  1. 복수 스텝의 재프로그램 동작들에 의해서 선택된 메모리 셀들 각각에 적어도 3-비트를 기입하는 불휘발성 메모리 장치의 어느 하나의 스텝에 대응하는 재프로그램 방법에 있어서:
    상기 선택된 메모리 셀들 각각의 비트 라인에 연결되는 페이지 버퍼의 제 1 및 제 2 래치들의 논리값에 따라 상기 선택된 메모리 셀들 각각의 비트 라인을 셋업하는 단계;
    상기 선택된 메모리 셀들에 프로그램 펄스를 공급하는 단계;
    상기 제 1 및 제 2 래치를 사용하여 상기 선택된 메모리 셀들에 대한 프로그램 검증 동작을 수행하는 단계; 그리고
    상기 프로그램 검증 동작의 결과에 따라 상기 선택된 메모리 셀들에 대한 예측 프로그램 동작을 수행하는 단계를 포함하되,
    상기 예측 프로그램 동작에서는 상기 선택된 메모리 셀들 각각에 대응하는 상기 페이지 버퍼의 제 3 래치의 논리값에 따라 상기 메모리 셀들의 비트 라인들이 셋업되는 재프로그램 방법.
  2. 제 1 항에 있어서,
    상기 프로그램 검증 동작을 수행하는 단계에서, 상기 선택된 메모리 셀들의 워드 라인에 제공되는 검증 전압은 서로 다른 3개의 레벨로 제공되는 재프로그램 방법.
  3. 제 1 항에 있어서,
    상기 프로그램 검증 동작을 수행하는 단계에서, 상기 선택된 메모리 셀들의 워드 라인에 제공되는 검증 전압은 상기 제 1 및 제 2 래치에 저장된 논리값에 의해서 식별되는 복수의 그룹들 단위로 제공되는 재프로그램 방법.
  4. 제 1 항에 있어서,
    상기 예측 프로그램 동작을 수행하는 단계는, 상기 프로그램 검증 동작에서 상기 선택된 메모리 셀들이 검증 패스로 판정된 이후에 수행되는 재프로그램 방법.
  5. 제 1 항에 있어서,
    상기 예측 프로그램 동작을 수행하는 단계에서, 상기 선택된 메모리 셀들에 대한 검증 동작은 프로그램 완료 여부에 관계없이 검증 패스로 강제적으로 설정되는 재프로그램 방법.
  6. 제 1 항에 있어서,
    상기 예측 프로그램 동작을 수행하는 단계는:
    상기 제 3 래치의 논리값에 따라 상기 선택된 메모리 셀들 각각의 비트 라인을 셋업하는 단계;
    상기 선택된 메모리 셀들에 프로그램 펄스를 공급하는 단계; 그리고
    상기 제 3 래치의 논리값을 프로그램 금지 값으로 재설정하는 단계를 포함하는 재프로그램 방법.
  7. 제 6 항에 있어서,
    상기 재설정하는 단계가 완료되면, 상기 선택된 메모리 셀들에 대한 더미 검증 동작을 수행하는 단계를 포함하는 재프로그램 방법.
  8. 제 1 항에 있어서,
    상기 어느 하나의 스텝은 상기 복수의 재프로그램 스텝들 중에서 첫 번째 수행되는 재프로그램 동작에 해당하는 재프로그램 방법.
  9. 제 8 항에 있어서,
    상기 예측 프로그램 동작을 수행하는 단계는, 상기 첫 번째 수행되는 스텝의 재프로그램 동작의 마지막 루프에 대응하는 재프로그램 방법.
  10. 버퍼 영역 및 상기 버퍼 영역에 저장된 데이터가 복수의 재프로그램 스텝들에 의해서 기입되는 메인 영역을 포함하는 셀 어레이;
    행 어드레스에 따라 상기 셀 어레이의 워드 라인을 선택하는 행 디코더;
    상기 버퍼 영역으로부터 독출된 복수의 페이지 데이터를 저장하고, 상기 복수의 페이지 데이터를 상기 메인 영역의 선택된 메모리 셀들에 상기 복수의 재프로그램 스텝들에 의거하여 기입하는 페이지 버퍼; 그리고
    상기 선택된 메모리 셀들에 대한 복수의 재프로그램 스텝들 중 첫 번째 프로그램 스텝에서, 제 1 및 제 2 페이지 데이터를 참조하여 검증 동작을 수행하고, 제 3 페이지 데이터를 참조하여 적어도 3개의 페이지 데이터를 프로그램하도록 상기 행 디코더 및 페이지 버퍼를 제어하는 제어 로직을 포함하는 불휘발성 메모리 장치.
KR1020130059856A 2013-05-27 2013-05-27 불휘발성 메모리 장치 및 그것의 재프로그램 방법 KR102053958B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130059856A KR102053958B1 (ko) 2013-05-27 2013-05-27 불휘발성 메모리 장치 및 그것의 재프로그램 방법
US14/217,538 US9281068B2 (en) 2013-05-27 2014-03-18 Nonvolatile memory and related reprogramming method
US15/007,266 US20160141036A1 (en) 2013-05-27 2016-01-27 Nonvolatile memory and related reprogramming method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130059856A KR102053958B1 (ko) 2013-05-27 2013-05-27 불휘발성 메모리 장치 및 그것의 재프로그램 방법

Publications (2)

Publication Number Publication Date
KR20140139335A KR20140139335A (ko) 2014-12-05
KR102053958B1 true KR102053958B1 (ko) 2019-12-10

Family

ID=51936177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130059856A KR102053958B1 (ko) 2013-05-27 2013-05-27 불휘발성 메모리 장치 및 그것의 재프로그램 방법

Country Status (2)

Country Link
US (2) US9281068B2 (ko)
KR (1) KR102053958B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102053958B1 (ko) * 2013-05-27 2019-12-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 재프로그램 방법
US9177654B2 (en) * 2014-03-26 2015-11-03 Burst Corporation Solid-state memory device with plurality of memory cards
KR102126760B1 (ko) * 2014-04-07 2020-06-25 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
KR20160149463A (ko) * 2015-06-18 2016-12-28 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
KR102356523B1 (ko) * 2015-08-04 2022-02-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102503169B1 (ko) * 2015-11-03 2023-02-24 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US20170277629A1 (en) * 2016-03-25 2017-09-28 Alibaba Group Holding Limited Extending the useful lifespan of nonvolatile memory
US10153021B1 (en) 2017-06-09 2018-12-11 Micron Technology, Inc. Time-based access of a memory cell
US10153022B1 (en) 2017-06-09 2018-12-11 Micron Technology, Inc Time-based access of a memory cell
KR20190000562A (ko) * 2017-06-23 2019-01-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10157650B1 (en) 2017-07-26 2018-12-18 Micron Technology, Inc. Program operations in memory
TWI663600B (zh) * 2017-09-08 2019-06-21 旺宏電子股份有限公司 編程非揮發性記憶體的方法及記憶體系統
KR20200076524A (ko) 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20200116265A (ko) * 2019-04-01 2020-10-12 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작 방법
KR20210069257A (ko) 2019-12-03 2021-06-11 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007157315A (ja) 2005-11-11 2007-06-21 Toshiba Corp 半導体記憶装置
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US20080310224A1 (en) 2007-06-15 2008-12-18 Micron Technology, Inc. Coarse and fine programming in a solid state memory
US20110222342A1 (en) 2010-03-09 2011-09-15 Samsung Electronics Co., Ltd. Data storage system having multi-bit memory device and operating method thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3590270B2 (ja) 1998-08-26 2004-11-17 株式会社東芝 半導体記憶装置
JP2000163977A (ja) 1998-11-20 2000-06-16 Sony Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
JP3905990B2 (ja) 1998-12-25 2007-04-18 株式会社東芝 記憶装置とその記憶方法
USRE40110E1 (en) 1999-09-20 2008-02-26 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device for storing multivalued data
JP2001093288A (ja) 1999-09-20 2001-04-06 Toshiba Corp 不揮発性半導体記憶装置
JP4768298B2 (ja) 2005-03-28 2011-09-07 株式会社東芝 不揮発性半導体記憶装置
JP2009059453A (ja) 2007-09-03 2009-03-19 Toshiba Corp 不揮発性半導体記憶装置及びメモリシステム
KR101448851B1 (ko) * 2008-02-26 2014-10-13 삼성전자주식회사 비휘발성 메모리 장치에서의 프로그래밍 방법
KR100965029B1 (ko) 2008-05-13 2010-06-21 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 프로그램 검증 방법
US8482976B2 (en) 2008-12-09 2013-07-09 Kabushiki Kaisha Toshiba Semiconductor memory device and semiconductor memory system storing multilevel data
KR101633018B1 (ko) 2009-12-28 2016-06-24 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
KR20110101642A (ko) * 2010-03-09 2011-09-16 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
KR101727707B1 (ko) 2010-07-26 2017-04-19 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법과, 상기 방법을 수행할 수 있는 장치들
KR101772578B1 (ko) 2011-04-19 2017-08-30 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
KR101903091B1 (ko) * 2011-10-05 2018-10-02 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR20130060795A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
KR102053958B1 (ko) * 2013-05-27 2019-12-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 재프로그램 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007157315A (ja) 2005-11-11 2007-06-21 Toshiba Corp 半導体記憶装置
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US20080310224A1 (en) 2007-06-15 2008-12-18 Micron Technology, Inc. Coarse and fine programming in a solid state memory
US20110222342A1 (en) 2010-03-09 2011-09-15 Samsung Electronics Co., Ltd. Data storage system having multi-bit memory device and operating method thereof

Also Published As

Publication number Publication date
US20140351487A1 (en) 2014-11-27
US20160141036A1 (en) 2016-05-19
US9281068B2 (en) 2016-03-08
KR20140139335A (ko) 2014-12-05

Similar Documents

Publication Publication Date Title
KR102053958B1 (ko) 불휘발성 메모리 장치 및 그것의 재프로그램 방법
KR101975406B1 (ko) 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
KR102053953B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9224483B2 (en) Nonvolatile memory device, system and programming method with dynamic verification mode selection
KR102226367B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템
KR102174030B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
JP5513289B2 (ja) プログラミングの間にプログラム禁止電圧が変化する不揮発性メモリ装置及びそのプログラミング方法
KR102025193B1 (ko) 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
KR102005888B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
US9343158B2 (en) Methods of programming multi-level cell nonvolatile memory devices and devices so operating
US8976592B2 (en) Nonvolatile memory device with flag cells and user device including the same
US20100195387A1 (en) Non-volatile memory device and ispp programming method
KR101895605B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
US9524781B2 (en) Nonvolatile memory device and operating method thereof
KR102025251B1 (ko) 메모리 시스템 및 그것의 프로그램 방법
US20200135283A1 (en) Memory controller and method of operating the same
KR20100107294A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치의 프로그램 방법
KR20110006137A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8345484B2 (en) Nonvolatile memory device and system, and method of programming a nonvolatile memory device
US8339847B2 (en) Nonvolatile memory device and system, and method of programming a nonvolatile memory device
US8549214B2 (en) Protection against data corruption for multi-level memory cell (MLC) flash memory
KR20120046846A (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
KR20100011198A (ko) 불휘발성 메모리 장치의 프로그램 방법
KR102180595B1 (ko) 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 시스템
KR20120056113A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법, 그리고 불휘발성 메모리 장치를 포함하는 메모리 시스템

Legal Events

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