KR20150047394A - 저장 장치 및 그것의 프로그램 방법 - Google Patents

저장 장치 및 그것의 프로그램 방법 Download PDF

Info

Publication number
KR20150047394A
KR20150047394A KR1020130127421A KR20130127421A KR20150047394A KR 20150047394 A KR20150047394 A KR 20150047394A KR 1020130127421 A KR1020130127421 A KR 1020130127421A KR 20130127421 A KR20130127421 A KR 20130127421A KR 20150047394 A KR20150047394 A KR 20150047394A
Authority
KR
South Korea
Prior art keywords
page
word line
pages
data
open
Prior art date
Application number
KR1020130127421A
Other languages
English (en)
Other versions
KR102117919B1 (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 KR1020130127421A priority Critical patent/KR102117919B1/ko
Priority to US14/336,343 priority patent/US9466386B2/en
Publication of KR20150047394A publication Critical patent/KR20150047394A/ko
Application granted granted Critical
Publication of KR102117919B1 publication Critical patent/KR102117919B1/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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/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

Abstract

본 발명에 따른 저장 장치의 프로그램 방법은: 메모리 블록에 적어도 하나의 오픈 페이지가 존재하는 지를 판별하는 단계; 상기 적어도 하나의 오픈 페이지가 존재할 때, 더미 패턴 프로그램 동작을 통하여 상기 적어도 하나의 오픈 페이지를 클로징하는 단계; 및 상기 메모리 블록에 이어 쓰기를 수행하는 단계를 포함한다.

Description

저장 장치 및 그것의 프로그램 방법{STORAGE DEVICE AND PROGRAMMING METHOD THEREOF}
본 발명은 저장 장치 및 그것의 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 비휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 기반으로 하는 데이터 저장 장치가 광범위하게 사용되고 있다. 플래시 메모리를 기반으로 하는 데이터 저장 장치에는 기존의 하드 디스크를 대체하고 있는 솔리드 스테이트 드라이브(SSD), SD 카드나 MMC 등과 같은 메모리 카드 등이 있다.
본 발명의 목적은 오픈 페이지를 클로징하기 위하여 저장 공간을 최소화시키는 저장 장치 및 프로그램 방법을 제공하는데 있다.
적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은: 메모리 블록에 적어도 하나의 오픈 페이지가 존재하는 지를 판별하는 단계; 상기 적어도 하나의 오픈 페이지가 존재할 때, 더미 패턴 프로그램 동작을 통하여 상기 적어도 하나의 오픈 페이지를 클로징하는 단계; 및 상기 메모리 블록에 이어 쓰기를 수행하는 단계를 포함한다.
실시 예에 있어서, 서든 파워 오프(sudden power-off) 발생시 상기 적어도 하나의 오픈 페이지가 존재하는 지가 판별된다.
실시 예에 있어서, 상기 메모리 블록에 쓰기 요청시 상기 적어도 하나의 오픈 페이지가 존재하는 지가 판별된다.
실시 예에 있어서, 상기 이어 쓰기는 어드레스 스크램블에 따라 수행되고, 상기 적어도 하나의 오픈 페이지를 클로징시키는 단계는, 적어도 하나의 더미 워드라인에 관련된 적어도 하나의 페이지 및 상기 적어도 하나의 오픈 페이지를 사전에 결정된 순서에 따라 더미 패턴의 데이터를 프로그램 시키는 단계를 더 포함한다.
실시 예에 있어서, 상기 사전에 결정된 순서는 상기 어드레스 스크램블이다.
실시 예에 있어서, 상기 적어도 하나의 페이지는 전체 페이지들이고, 상기 사전에 결정된 순서는 상기 어드레스 스크램블이다.
실시 예에 있어서, 상기 적어도 하나의 더미 워드라인은 제 1 더미 워드라인 및 제 2 더미 워드라인을 포함하고, 상기 적어도 하나의 페이지는 상기 제 1 더미 워드라인에 관련된 전체 페이지들이 아닌 적어도 하나의 페이지 및 상기 제 2 더미 워드라인에 관련된 전체 페이지들을 포함하고, 상기 사전에 결정된 순서는 상기 어드레스 스크램블이다.
실시 예에 있어서, 상기 적어도 하나의 더미 워드라인은 제 1 더미 워드라인 및 제 2 더미 워드라인을 포함하고, 상기 적어도 하나의 페이지는 상기 제 1 더미 워드라인에 관련된 전체 페이지들 및 상기 제 2 더미 워드라인에 관련된 전체 페이지들을 포함하고, 상기 사전에 결정된 순서는 상기 어드레스 스크램블이다.
실시 예에 있어서, 상기 적어도 하나의 페이지는 전체 페이지들이 아닌 복수의 페이지들이고, 상기 복수의 페이지들은 한꺼번에 상기 더미 패턴의 데이터로 프로그램 된다.
실시 예에 있어서, 상기 적어도 하나의 페이지는 전체 페이지들이고, 상기 전체 페이지들은 한꺼번에 상기 더미 패턴의 데이터로 프로그램된다.
실시 예에 있어서, 상기 더미 패턴 프로그램 동작을 위하여 상기 더미 패턴의 데이터를 발생하는 단계를 더 포함한다.
실시 예에 있어서, 상기 더미 패턴의 데이터는 랜덤 데이터 발생기에 의해 발생된다.
실시 예에 있어서, 상기 더미 패턴의 데이터는 고정된 값으로 발생된다.
실시 예에 있어서, 상기 더미 패턴 프로그램 동작의 프로그램 속도는 상기 이어 쓰기의 프로그램 동작의 빠른 프로그램 속도를 갖는다.
실시 예에 있어서, 상기 이어 쓰기는 어드레스 스크램블에 따라 TLC(tree level cell) 프로그램 동작을 수행한다.
본 발명의 다른 실시 예에 따른 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은: 메모리 블록에 적어도 하나의 오픈 페이지가 존재하는 지 여부를 판별하는 단계; 상기 적어도 하나의 오픈 페이지에 대응하는 프로그램된 페이지 데이터를 버퍼 영역에 플러싱하는 단계; 및 상기 메모리 블록에 상기 적어도 하나의 오픈 페이지를 클로징하면서 상기 플러싱된 페이지 데이터 및 사용자 데이터를 이용한 이어 쓰기를 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 버퍼 영역은 SLCs(single level cells)로 구성되고, 상기 SLCs에 상기 프로그램된 페이지 데이터를 프로그램 시킨다.
실시 예에 있어서, 상기 버퍼 영역은 상기 메모리 제어기에 포함된 버퍼 메모리이다.
실시 예에 있어서, 상기 적어도 하나의 오픈 페이지는 상기 플러싱된 데이터 혹은 상기 사용자 데이터를 프로그램 시킴으로써 클로징된다.
실시 예에 있어서, 상기 이어 쓰기는 어드레스 스크램블에 따라 수행된다.
본 발명의 또 다른 실시 예에 따른 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은: 메모리 블록에 제 1 QLC(quad level cell) 프로그램 동작을 수행하는 단계; 상기 메모리 블록의 적어도 하나의 더미 워드라인에 관련된 적어도 하나의 페이지에 더미 패턴 프로그램 동작을 수행하는 단계; 및 상기 더미 패턴 프로그램 동작 이후에 상기 메모리 블록에 이어 쓰기를 수행함으로써 제 2 QLC 프로그램 동작을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 및 제 2 QLC 프로그램 동작은 새도우(shadow) 프로그램 방식을 이용한다.
실시 예에 있어서, 상기 제 1 및 제 2 QLC 프로그램 동작은 재프로그램(reprogram) 방식을 이용한다.
실시 예에 있어서, 상기 저장 장치는 eMMC(embedded multimedia card)이다.
본 발명의 실시 예에 따른 저장 장치는, 복수의 페이지들로 구성된 복수의 메모리 블록들을 포함하는 적어도 하나의 비휘발성 메모리 장치; 및 상기 적어도 하나의 비휘발성 메모리 장치는 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는, 상기 복수의 메모리 블록들 중 메모리 블록에 적어도 하나의 오픈 페이지가 발생할 때, 적어도 하나의 더미 워드라인에 관련된 적어도 하나의 페이지 및 상기 적어도 하나의 오픈 페이지에 더미 패턴의 데이터를 프로그램 시킴으로써 상기 적어도 하나의 오픈 페이지를 클로징 시키고, 상기 오픈 페이지를 클로징 시킨 후에 상기 메모리 블록에 어드레스 스크램블에 따라 이어 쓰기를 수행한다.
본 발명의 실시 예에 따른 저장 장치 및 그것의 프로그램 방법은 메모리 블록에 오픈 페이지가 발생하더라도 오픈 페이지를 이어 쓰기가 가능한 상태로 처리한 뒤에, 동일한 메모리 블록에 이어 쓰기를 진행할 수 있다. 이로써 본 발명은 오픈 페이지 발생에 따른 저장 공간의 손실을 최소화시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다.
도 2는 도 1에 도시된 메모리 블록을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 1 실시 예를 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 2 실시 예를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 3 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 4 실시 예를 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 5 실시 예를 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 6 실시 예를 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 7 실시 예를 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 저장 장치의 오픈 페이지 처리 방법에 대한 제 8 실시 예를 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 13은 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 3 실시 예를 보여주는 흐름도이다.
도 14는 본 발명의 실시 예에 따른 VNAND 블록을 예시적으로 보여주는 도면이다.
도 15 내지 도 18은 본 발명의 응용 예들을 보여주는 블록도들이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
먼저, 설명의 편의를 위하여 클린 페이지(clean page), 오픈 페이지(open page), 클로즈드 페이지(closed page)를 정의하겠다. 버진(virgin) 상태의 메모리 블록 혹은 소거된 메모리 블록은 클린 페이지들로 구성된다. 워드라인에 관련된 페이지들에 전혀 프로그램되지 않은 상태에서, 클린 페이지는 워드라인에 관련된 모든 페이지들 각각이다. 워드라인에 관련된 페이지들 중 모든 페이지들이 아닌 일부에 프로그램된 상태에서, 오픈 페이지는 모든 페이지들 중에서 프로그램되지 않은 페이지이다. 워드라인에 관련된 페이지들 중 모든 페이지들이 프로그램된 상태에서, 클로즈드 페이지는 모든 페이지들 각각이다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치는 메모리 블록의 적어도 하나의 오픈 페이지(open page)를 처리한 뒤(혹은, 클로징 시킨 후), 메모리 블록에 이어 쓰기(continuous writing)를 수행할 수 있다.
본 발명의 비휘발성 메모리 장치는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치가 낸드 플래시 메모리 장치라고 하겠다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다. 도 1을 참조하면, 저장 장치(10)는 적어도 하나의 비휘발성 메모리 장치(100) 및 그것을 제어하는 메모리 제어기(200)를 포함한다.
비휘발성 메모리 장치(100)는 비휘발성 메모리 장치를 관리하기 위한 관리 정보를 저장하는 메타 영역(111) 및 사용자 데이터를 저장하는 사용자 데이터 영역(112)을 포함한다.
메타 영역(111)은 사용자 데이터 영역(112)의 메모리 블록들(MB1 ~ MBi) 각각과 동일한 구조의 적어도 하나의 메모리 블록들로 구현될 수 있다. 예를 들어, 메타 영역(111)은 어느 하나의 메모리 블록에 포함된 페이지들의 프로그램 완료 여부에 관련된 정보를 테이블 형태로 저장할 수 있다.
사용자 데이터 영역(112)은 복수의 메모리 블록들(MB1 ~ MBi, i는 2 이상의 정수)를 포함한다. 메모리 블록들(MB1 ~ MBi) 각각은 오픈 페이지를 클로징(closing) 한 뒤 혹은 오픈 페이지를 클로징 하면서 이어 쓰기(continuous writing)를 수행할 수 있다. 실시 예에 있어서, 이어 쓰기는 멀티-비트 데이터 프로그램 동작이거나 싱글-비트 데이터 프로그램 동작일 수 있다.
메모리 제어기(200)는 이어 쓰기를 수행하기 전에 메모리 블록의 오픈 페이지를 처리하거나, 이어 쓰기를 수행하면서 오픈 페이지를 처리할 수 있다. 메모리 제어기(200)는 이어 쓰기 판별기(220) 및 오픈 페이지 처리기(240)를 포함한다.
이어 쓰기 판별기(220)는 메모리 블록에 대한 이어 쓰기 여부를 판별할 수 있다. 실시 예에 있어서, 이어 쓰기 판별기(220)는 메모리 블록에 대한 쓰기 요청시 메모리 블록의 오픈 페이지 유무를 판별하고, 오픈 페이지가 존재할 때 이어 쓰기를 결정할 수 있다. 여기서 메모리 블록에서 오픈 페이지의 유무는 페이지의 프로그램 완료 여부를 지시하는 맵 테이블(메타 영역에 저장)을 이용하여 판별될 수 있다. 다른 실시 예에 있어서, 이어 쓰기 판별기(220)는 서든 파워 오프(sudden power-off) 발생시 메모리 블록의 오픈 페이지 유무를 판별할 수 있다.
오픈 페이지 처리기(240)는 메모리 블록의 오픈 페이지를 클로징 시킬 수 있다. 예를 들어, 오픈 페이지 처리기(240)는 오픈 페이지에 더미 패턴의 데이터(혹은, 더미 데이터)로 프로그램 시킴으로써(같은 말, 더미 패턴 프로그램 동작을 수행함으로써) 오픈 페이지를 클로징 시킬 수 있다. 실시 예에 있어서, 더미 패턴의 데이터는 랜덤 데이터일 수 있다. 다른 실시 예에 있어서, 더미 패턴의 데이터는 고정된 값일 수도 있다.
실시 예에 있어서, 이어 쓰기는 어드레스 스크램블(address scramble)에 따라 수행될 수 있다.
실시 예에 있어서, 오픈 페이지 처리기(240)는 어드레스 스크램블에 따라 발생된 오픈 페이지들에 더미 패턴의 데이터를 프로그램 시킬 수 있다.
한편, 오픈 페이지 처리기(240)는 이어 쓰기 판별기(220)의 요청 없이도 오픈 페이지를 처리하도록 구현될 수도 있다. 예를 들어, 서든 파워 오프 발생시 오픈 페이지가 존재하는지 판별되면, 오픈 페이지 처리기(240)는 곧바로 더미 패턴 프로그램 동작을 수행함으로써 오픈 페이지를 클로징 시킬 수 있다.
일반적인 저장 장치는 메모리 블록에 오픈 페이지가 발생할 때 클로징 시킨 뒤에, 메모리 블록에 프로그램된 데이터를 새로운 메모리 블록으로 저장함으로써 이어 쓰기를 수행하였다. 이에 오픈 페이지에 따른 저장 공간이 손실이 발생 되는 문제점이 야기된다.
반면에, 본 발명의 실시 예에 따른 저장 장치(10)는 메모리 블록에 오픈 페이지가 발생하더라도 발생된 오픈 페이지를 이어 쓰기가 가능한 상태로 처리함으로써, 동일한 메모리 블록에 이어 쓰기를 수행할 수 있다. 이에 본 발명은 오픈 페이지 발생에 따른 저장 공간의 손실을 최소화시킬 수 있다.
도 2는 도 1에 도시된 메모리 블록을 예시적으로 보여주는 도면이다. 도 2를 참조하면, 메모리 블록(MB)은 복수의 비트라인들(BL1 ~ BLn, n는 2 이상의 정수)에 연결된 스트링들을 포함한다. 여기서 스트링들 각각은 비트라인과 공통 소스 라인(common source line; CSL) 사이에 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 ~ MCm, m은 2 이상의 정수), 적어도 하나의 접지 선택 트랜지스터(GST)를 포함한다. 메모리 셀들(MC1 ~ MCm) 각각은 적어도 하나의 비트 이상의 데이터를 저장할 수 있다.
워드라인들(WL1 ~ WLm) 각각에는 복수의 메모리 셀들이 연결될 수 있다. 워드라인들(WL1 ~ WLm) 각각에 연결된 복수의 메모리 셀들을 통칭하여 페이지라 부른다. 워드라인들(WL1 ~ WLm) 각각에는 구동에 필요한 워드라인 전압들(프로그램 전압, 패스 전압, 읽기 전압, 읽기 패스 전압, 등)이 인가될 수 있다. 스트링 선택 라인(SSL)에는 스트링 선택 트랜지스터(SST)를 제어하기 위한 스트링 선택 전압이 인가될 수 있다. 접지 선택 라인(GSL)에는 접지 선택 트랜지스터(GST)를 제어하기 위한 접지 선택 전압이 인가될 수 있다.
아래에서는 설명의 편의를 위하여 새도우(shadow) 프로그램 방식에 따른 3-비트 프로그램 동작에서의 오픈 페이지 처리 방법들을 설명하도록 하겠다. 본 발명은 3-비트 프로그램 동작에 제한되지 않는다. 본 발명은 새도우 프로그램 방식에 따른 멀티-비트 프로그램 동작에 이용될 수 있다. 또한, 본 발명은 새도우 프로그램 방식에 제한되지 않는다. 본 발명은 재프로그램(reprogram) 방식에 따른 멀티-비트 프로그램 동작에 이용될 수 있다.
도 3은 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 1 실시 예를 보여주는 도면이다. 도 3을 참조하면, 메모리 블록에 어드레스 스크램블(1 → 2 → 3 ... →9)에 따라 프로그램 시퀀스가 수행될 것이다. 제 5 워드라인(WL5)에 관련된 제 1 페이지(1st Page) 프로그램 동작 중 갑자기 프로그램 시퀀스가 종료되었다고 가정하겠다. 예를 들어, 프로그램 시퀀스는 서든 파워 오프(sudden power-off)에 따라 종료될 수 있다. 이때, 도 3에 도시된 바와 같이, 제 3 워드라인(WL3)에 관련된 제 3 페이지(3rd Page) 그리고 제 4 워드라인에 관련된 제 2 페이지(2nd Page) 및 제 3 페이지(3rd Page)가 오픈 페이지가 될 것이다.
실시 예에 있어서, 제 1 페이지(1st Page) 프로그램 동작은 싱글-비트 프로그램 동작이고, 제 2 페이지(2nd Page) 프로그램 동작은 2-비트 프로그램 동작이고, 제 3 페이지(3rd Page) 프로그램 동작은 3-비트 프로그램 동작일 수 있다.
메모리 블록에 대한 이어 쓰기를 수행하기 전에, 발생된 오픈 페이지들이 클로징 될 것이다. 오픈 페이지 클로징(Open Page Closing)은, 도 3에 도시된 바와 같이, 제 5 워드라인(WL5)에 관련된 페이지 일부와 오픈 페이지들을 어드레스 스크램블에 따라 더미 패턴의 데이터로 순차적으로 프로그램시킬 것이다. 아래에서는 제 5 워드라인(WL5)은 더미 워드라인(dummy wordline)으로 부르겠다. 더미 워드라인(WL5)은 오픈 페이지가 발생된 최상위 워드라인(WL4)에 인접한 상부(upper) 워드라인 일 수 있다.
오픈 페이지 클로징 이후에, 더미 워드라인(WL5)으로부터 상부 워드라인들(WL6, WL7, WL8, ...)에 관련된 페이지들에 어드레스 스크램블에 따라 이어 쓰기가 수행될 수 있다.
본 발명의 실시 예에 따른 오픈 페이지 클로징은 더미 워드라인(WL5)에 관련된 페이지들의 일부와 오픈 페이지들을 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킴으로써 수행될 수 있다.
한편, 본 발명의 실시 예에 따른 오픈 페이지 클로징은 도 3에서는 더미 워드라인(WL5)의 페이지들 중 일부만 더미 패턴의 데이터를 프로그램 시켰다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은 더미 워드라인(WL5)의 모든 페이지들에 더미 패턴의 데이터를 프로그램 시킬 수도 있다.
도 4는 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 2 실시 예를 보여주는 도면이다. 도 4를 참조하면, 오픈 페이지 처리 방법은, 도 3에 도시된 오픈 페이지 처리 방법과 비교하여 더미 워드라인(WL5)에 관련된 모든 페이지들(1st, 2nd, 3rd)에 더미 패턴의 데이터를 프로그램시키는 차이점을 갖는다. 즉, 오픈 페이지들과 더미 워드라인(WL5)에 관련된 페이지들을 클로징 시킨 후, 이어 쓰기가 진행될 수 있다.
본 발명의 실시 예에 따른 오픈 페이지 클로징은 더미 워드라인(WL5)에 관련된 모든 페이지들과 오픈 페이지들을 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킴으로써 수행될 수 있다.
한편, 도 3 및 도 4에 도시된 오픈 페이지 클로징은 하나의 더미 워드라인(WL5)에 관련된 적어도 하나의 페이지를 프로그램 시켰다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은 적어도 2개의 더미 워드라인들에 관련된 페이지들에 더미 패턴의 데이터를 프로그램 시킬 수도 있다.
도 5는 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 3 실시 예를 보여주는 도면이다. 도 5를 참조하면, 오픈 페이지 처리 방법은, 도 3 혹은 도 4에 도시된 오픈 페이지 처리 방법과 비교하여 2개의 더미 워드라인들(WL5, WL6)의 페이지들에 더미 패턴의 데이터를 프로그램시키는 차이점을 갖는다. 즉, 오픈 페이지들, 제 1 더미 워드라인(WL5)에 관련된 페이지들, 및 제 2 더미 워드라인(WL6)에 관련된 적어도 하나의 페이지를 더미 패턴의 데이터로 프로그램 시킴으로써 오픈 페이지를 클로징한 뒤에, 이어 쓰기가 진행될 수 있다.
실시 예에 있어서, 제 2 더미 워드라인(WL6)은 제 1 더미 워드라인(WL5)으로부터 상부에 배치될 수 있다.
본 발명의 실시 예에 따른 오픈 페이지 클로징은 제 1 더미 워드라인(WL5)에 관련된 모든 페이지들, 제 2 더미 워드라인(WL6)에 관련된 적어도 하나의 페이지, 및 오픈 페이지들을 사전에 결정된 순서에 따라 더미 패턴의 데이터를 프로그램 시킬 것이다. 여기서 사전에 결정된 순서는, 도 5에 도시된 바와 같이, 오픈 페이지들이 클로징 될 때까지(Open Page Closing: 2,3,6) 어드레스 스크램블을 이용하는 순서이고, 이후부터는 제 1 더미 워드라인(WL5)에 관련된 페이지들을 클로징시키는 순서이다.
한편, 도 5에 도시된 오픈 페이지 클로징은, 오픈 페이지들이 클로징 될 때까지만 어드레스 스크램블을 이용하였다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은, 오픈 페이지들, 더미 워드라인들에 관련된 페이지들을 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킬 수도 있다.
도 6은 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 4 실시 예를 보여주는 도면이다. 도 6을 참조하면, 오픈 페이지들, 제 1 더미 워드라인(WL5)에 연결된 모든 페이지들, 제 2 더미 워드라인(WL6)에 연결된 페이지들의 일부에 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킴으로써 오픈 페이지를 클로징 한 뒤에, 이어 쓰기가 진행될 수 있다.
한편, 도 6에 도시된 오픈 페이지 클로징은, 제 2 더미 워드라인(WL6)에 관련된 페이지들 중 일부만 더미 패턴의 데이터로 프로그램 시켰다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은, 모든 더미 워드라인들에 연결된 페이지들을 더미 패턴의 데이터로 프로그램 시킬수 도 있다.
도 7은 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 5 실시 예를 보여주는 도면이다. 도 7을 참조하면, 오픈 페이지들, 제 1 더미 워드라인(WL5)에 관련된 모든 페이지들, 제 2 더미 워드라인(WL6)에 관련된 모든 페이지들에 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킴으로써 오픈 페이지를 클로징 한 뒤에, 이어 쓰기가 진행될 수 있다.
한편, 도 3 내지 도 7에 도시된 오픈 페이지 클로징은 더미 워드라인(WL5 혹은 WL6)에 관련된 페이지들 각각을 사전에 결정된 순서에 따라 프로그램 시켰다. 하지만, 본 발명이 반드시 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은 더미 워드라인에 관련된 적어도 2개의 페이지들을 한꺼번에 프로그램 시킬 수도 있다.
도 8은 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 6 실시 예를 보여주는 도면이다. 도 8을 참조하면, 먼저 더미 워드라인(WL5)에 관련된 제 1 및 제 2 페이지들에 더미 패턴의 데이터로 한꺼번에 프로그램 시키고, 오픈 페이지들에 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킴으로써 오픈 페이지가 클로징될 것이다. 이 후에, 이어 쓰기가 진행될 수 있다.
한편, 도 8에 도시된 오픈 페이지 클로징은, 더미 워드라인(WL5)에 연결된 2개의 페이지들만 한꺼번에(혹은, 동시에) 더미 패턴의 데이터로 프로그램 시켰다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은, 더미 워드라인에 연결된 모든 페이지들을 한꺼번에 더미 패턴의 데이터로 프로그램 시킬 수도 있다.
도 9는 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 7 실시 예를 보여주는 도면이다. 도 9를 참조하면, 먼저 더미 워드라인(WL5)에 관련된 모든 페이지들에 더미 패턴의 데이터로 한꺼번에 프로그램 시키고, 오픈 페이지들에 어드레스 스크램블에 따라 더미 패턴의 데이터를 프로그램 시킴으로써 오픈 페이지가 클로징 될 것이다. 이 후에, 이어 쓰기가 진행될 수 있다.
한편, 도 3 내지 도 9에 도시된 오픈 페이지 클로징은, 적어도 하나의 더미 워드라인에 관련된 적어도 하나의 페이지에 더미 패턴 프로그램 동작을 수행하였다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은, 더미 워드라인에 아무런 프로그램 동작을 수행하지 않을 수도 있다.
또한, 도 3 내지 도 9에 도시된 오픈 페이지 클로징은, 적어도 하나의 더미 워드라인을 이용하였다. 하지만, 본 발명이 반드시 여기에 제한되지 않을 것이다. 본 발명의 오픈 페이지 클로징은 더미 워드라인을 이용하지 않고, 오픈 페이지 상태로 종료처리 될 수도 있다.
도 10은 본 발명의 실시 예에 따른 저장 장치(10)의 오픈 페이지 처리 방법에 대한 제 8 실시 예를 보여주는 도면이다. 도 10을 참조하면, 예기치 않은 프로그램 시퀀스의 종료에 따라 제 3 및 제 4 워드라인들에 오픈 페이지들이 발생될 수 있다. 오픈 페이지 발생 시, 제 3 및 제 4 워드라인들에 클로징된 페이지들(4, 7, 8)로부터 데이터를 읽고, 읽혀진 데이터를 버퍼 영역에 저장시킨다.
여기서 버퍼 영역은 버퍼 워드라인들(Buffer WL1 ~ WL3)에 연결된 메모리 셀들일 수 있다.실시 예에 있어서, 버퍼 워드라인들(Buffer WL1 ~ WL3)에 연결된 메모리 셀들 각각은 싱글 레벨 셀일 수 있다. 다른 실시 예에 있어서, 버퍼 영역은 메모리 제어기(도 1 참조, 200)의 내부의 버퍼 메모리(DRAM, PRAM, SRAM 등) 일 수 있다.
메모리 제어기(도 1 참조, 200)는 오픈 페이지 상태로 종료 처리하고, 프로그램 시퀀스가 다시 시작되면, 버퍼 영역으로부터 데이터 읽어오고, 읽혀진 데이터를 어드레스 스크램블에 따라 이어 쓰기를 수행할 수 있다. 여기서 읽혀진 데이터는 제 3 및 제 4 워드라인들에 클로징된 페이지들에 대한 데이터이다. 즉, 오픈 페이지 발생 이전의 제 4, 제 8, 제 9 페이지들에 각각에 데이터가 이어 쓰기를 통하여 제 1, 제 2, 제 3 페이지에 저장될 것이다.
본 발명의 실시 예에 따른 오픈 페이지 클로징은, 프로그램 완료된 소정 개수의 페이지 데이터를 버퍼 영역에 플러싱(flushing) 해두었다가, 플러싱된 데이터부터 순차적으로 이어 쓰기를 수행할 수 있다. 즉, 오픈 페이지들에는 플러싱된 데이터가 프로그램 되거나 혹은 사용자 데이터가 프로그램 될 수 있다.
정리하면, 본 발명의 실시 예에 따른 오픈 페이지 클로징은, 오픈 페이지에 관련된 클로징된 페이지 데이터를 버퍼링하고, 버퍼링된 데이터로 이어 쓰기를 시작함으로써, 더미 워드라인 혹은 더미 패턴의 데이터를 이용하지 않고도 이어 쓰기를 진행하면서 동시에 오픈 페이지들을 클로징시킬 수 있다.
도 11은 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다. 도 1 내지 도 9 및 도 11을 참조하면, 프로그램 방법은 다음과 같다.
메모리 제어기(도 1 참조, 200)는 메모리 블록에 적어도 하나의 오픈 페이지가 발생되었는 지를 판별한다(S110). 예를 들어, 서든 파워 오프 발생시, 메모리 제어기(200)는 프로그램 동작과 관련된 맵 테이블을 이용하여 해당 메모리 블록에 오픈 페이지가 발생되었는 지를 판별할 수 있다. 이후, 해당 메모리 블록에 쓰기 요청이 들어오면, 메모리 제어기(200)는 도 3 내지 도 9에서 설명된 적어도 하나의 방법을 이용하여 오픈 페이지를 처리한다. 즉, 더미 패턴 프로그램 동작을 이용하여 오픈 페이지들이 클로징된다(S120). 실시 예에 있어서, 더미 패턴 프로그램 동작은 고속 프로그램 동작 모드(high speed program mode; HSP)로 진행될 수 있다. 여기서 고속 프로그램 동작 모드는 정상 프로그램 동작 모드와 비교하여 프로그램 속도가 빠른 것이다. 이후, 해당 메모리 블록에 대한 이어 쓰기가 수행된다(S130).
본 발명의 실시 예에 따른 프로그램 방법은, 더미 패턴 프로그램 동작을 통하여 오픈 페이지를 클로징 시킨 후에 이어 쓰기를 수행할 수 있다.
도 12는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 1, 도 2, 도 10 및 도 12를 참조하면, 프로그램 방법은 다음과 같다.
메모리 제어기(도 1 참조, 200)는 메모리 블록에 적어도 하나의 오픈 페이지가 발생되었는 지를 판별한다(S210). 이후, 해당 메모리 블록에 쓰기 요청이 들어오면, 메모리 제어기(200)는 도 10에서 설명된 방법을 이용하여 오픈 페이지를 처리한다. 버퍼 영역으로 오픈 페이지에 대응하는 프로그램된 데이터가 플러싱된다(S220). 이후, 플러싱된 데이터부터 해당 메모리 블록에 대한 이어 쓰기가 수행된다(S230). 그 결과로써 이어 쓰기를 수행하면서 오픈 페이지가 클로징 된다.
본 발명의 실시 예에 따른 프로그램 방법은, 프로그램된 완료된 소정의 페이지 데이터를 미리 플러싱시키고, 플러싱된 데이터부터 순차적으로 이어 쓰기를 수행할 수 있다.
도 13은 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 1 내지 도 10 및 도 13을 참조하면, 프로그램 방법은 다음과 같다. 여기서 메모리 셀은 QLC(quad level cell)이라고 가정하겠다. 프로그램 시퀀스에 따라 메모리 블록에 QLC 프로그램 동작이 수행된다(S310). 실시 예에 있어서, QLC 프로그램 동작은 새도우(shadow) 프로그램 방식에 따라 수행되거나 재프로그램 방식(reprogram)에 따라 수행될 수 있다. 프로그램 시퀀스가 갑자기 종료된 후, 오픈 페이지들의 클로징을 위하여 메모리 블록에 더미 패턴 프로그램 동작이 수행된다(S320). 여기서 더미 패턴 프로그램 동작은 QLC 프로그램 동작이거나, 혹은 TLC 프로그램 동작이거나, MLC 프로그램 동작이거나, SLC 프로그램 동작일 수 있다. 이후에, 이어 쓰기를 이용하여 다른 프로그램 시퀀스에 따라 메모리 블록에 QLC 프로그램 동작이 수행된다(S330).
한편, 본 발명은 재프로그램(reprogram) 방식으로 멀티 비트 프로그램 동작을 수행할 때 오픈 페이지 처리 방법에도 적용 가능하다. 여기서 재프로그램 방식에서 오픈 페이지는, 최종적인 파인 프로그램 동작이 수행되지 않는 페이지를 의미할 것이다. 재프로그램 방식에 따른 오픈 페이지 처리 방법은, 더미 패턴의 데이터 혹은 버퍼링된 데이터를 이용하여 오픈 페이지를 클로징 시킨 후, 재프로그램 방식에 따른 이어 쓰기를 진행할 것이다.
본 발명의 실시 예에 따른 프로그램 방법은 더미 패턴 프로그램 동작 이후에 이어 쓰기를 수행할 수 있다.
본 발명은 VNAND에 적용 가능하다.
도 14는 본 발명의 실시 예에 따른 VNAND 블록을 예시적으로 보여주는 도면이다. 도 14를 참조하면, 기판(111) 위에 4개의 서브 블록들이 형성된다. 각각의 서브 블록들은 기판 위에 워드라인 컷들 사이에 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)이 판 형태로 적층됨으로써 형성된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리된다. 여기서 각각의 워드라인 컷들은, 도시되지 않았지만 공통 소스 라인(Common Source Line: CSL)을 포함한다. 실시 예에 있어서, 각각의 워드라인 컷에 포함된 공통 소스 라인(CSL)은 공통으로 연결된다. 비트라인에 연결된 필라(113)가 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)을 관통함으로써, 스트링이 형성된다.
도 14에서는 워드라인 컷들 사이의 대상을 서브 블록으로 도시하였는데, 본 발명이 반드시 여기에 제한되지 않는다. 본 발명의 서브 블록은 워드라인 컷과 스트링 선택 라인 컷 사이의 대상을 서브 블록으로 명명할 수 있다.
본 발명의 실시 예에 따른 블록(MBi)은 두 개의 워드라인들이 하나로 병합된 구조, 다른 말로 워드라인 병합 구조(merged wordline structure)로 구현될 수 있다.
본 발명은 SSD(solid state drive)에 적용 가능하다.
도 15는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 메모리 블록도이다. 도 15를 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다. SSD(1000)는 도 1에 도시된 저장 장치(10)로 구현될 수 있다.
비휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. SSD 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 더미 데이터 발생기(1240), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다. SSD 제어기(1200)는 도 1 내지 도 13에 도시된 바와 같이 오픈 페이지를 처리한 뒤 혹은 처리하면서 이어 쓰기를 하도록 구현될 수 있다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 구동에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 여기서 복수의 메모리 라인들은 캐시 라인들(1212)에 다양한 방법으로 맵핑 될 수 있다. 또한, 버퍼 메모리(1220)는 쓰기 요청시 파인 프로그램 동작에 이용될 데이터를 버퍼링해 놓을 수 있다. 도 19에서 버퍼 메모리(1220)는 SSD 제어기(1200) 내부에 존재하지만, 반드시 여기에 제한되지 않을 것이다. 버퍼 메모리는 SSD 제어기(1200)의 외부에 별도로 존재할 수도 있다.
에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 구동하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
더미 데이터 발생기(1240)는 씨드 값을 이용하여 랜덤 데이터를 발생함으로써 더미 패턴의 데이터를 발생할 수 있다. 특히, 랜덤 데이터 발생기(1240)는 더미 프로그램 동작이 수행되는 어드레스를 씨드 값으로 이용하여 더미 패턴의 데이터를 발생할 수 있다. 다른 실시 예에 있어서, 더미 데이터 발생기(1240)는 고정된 더미 패턴의 데이터를 발생할 수 있다. 예를 들어, "10101010....10" 형태 혹은 "010101...01" 형태의 더미 패턴의 데이터가 발생 될 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다.
본 발명의 실시 예에 따른 SSD(1000)는 크게 줄일 수 있다.
본 발명은 eMMC(embedded multimedia card, moviNAND, iNAND)에도 적용 가능하다.
도 16은 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 메모리 블록도이다. 도 16을 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다. eMMC(2000)은 도 1에 도시된 저장 장치(10)로 구현될 수 있다.
낸드 플래시 메모리 장치(2100)는 도 1에 도시된 바와 같이 이어 쓰기가 가능한 메모리 블록들을 구비할 수 있다. 메모리 제어기(2200)는 복수의 채널들을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2260)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(2200)에 제공된다. 실시 예에 있어서, eMMC(2000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명의 실시 예에 따른 eMMC(2000)는 오픈 페이지를 처리하여 이어 쓰기를 수행함으로써 데이터의 신뢰성 및 수명 향상을 꾀할 수 있다.
본 발명은 UFS(uiversal flash storage)에도 적용 가능하다.
도 17은 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 메모리 블록도이다. 도 17은 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 착탈형 UFS 카드(3400)를 포함할 수 있다. UFS 호스트(3100)는 모바일 장치의 어플리케이션 프로세서일 수 있다. UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 각각은 UFS 프로토콜에 의하여 외부의 장치들과 통신할 수 있다. UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 중 적어도 하나는 도 1에 도시된 저장 장치(10)로 구현될 수 있다.
한편, 임베디드 UFS 장치(3300)와 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC,SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
본 발명은 모바일 장치에도 적용 가능하다.
도 18은 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 메모리 블록도이다. 도 18을 참조하면, 모바일 장치(4000)는 어플리케이션 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 저장 장치(4400), 및 모바일 램(4500)를 포함한다.
어플리케이션 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작을 제어한다. 통신 모듈(4200)은 외부와의 유선/무선 통신을 제어하도록 구현될 것이다. 디스플레이/터치 모듈(4300)은 어플리케이션 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 1에 도시된 저장 장치(10)를 포함할 수 있다.
모바일 램(4500)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다.
본 발명의 실시 예에 따른 모바일 장치(4000)는 주기적인 서든 파워 오프에 대응하여 효율적으로 오픈 페이지들을 처리함으로써 전체적인 시스템 성능 향상을 꾀할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 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), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10: 저장 장치
100: 비휘발성 메모리 장치
200: 메모리 제어기
220: 이어 쓰기 판별기
240: 오픈 페이지 처리기

Claims (10)

  1. 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법에 있어서:
    메모리 블록에 적어도 하나의 오픈 페이지가 존재하는 지를 판별하는 단계;
    상기 적어도 하나의 오픈 페이지가 존재할 때, 더미 패턴 프로그램 동작을 통하여 상기 적어도 하나의 오픈 페이지를 클로징하는 단계; 및
    상기 메모리 블록에 이어 쓰기를 수행하는 단계를 포함하는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 이어 쓰기는 어드레스 스크램블에 따라 수행되고,
    상기 적어도 하나의 오픈 페이지를 클로징시키는 단계는,
    적어도 하나의 더미 워드라인에 관련된 적어도 하나의 페이지 및 상기 적어도 하나의 오픈 페이지를 사전에 결정된 순서에 따라 더미 패턴의 데이터를 프로그램 시키는 단계를 더 포함하는 프로그램 방법.
  3. 제 2 항에 있어서,
    상기 사전에 결정된 순서는 상기 어드레스 스크램블인 프로그램 방법.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 페이지는 전체 페이지들이고,
    상기 사전에 결정된 순서는 상기 어드레스 스크램블인 프로그램 방법.
  5. 제 2 항에 있어서,
    상기 적어도 하나의 더미 워드라인은 제 1 더미 워드라인 및 제 2 더미 워드라인을 포함하고,
    상기 적어도 하나의 페이지는 상기 제 1 더미 워드라인에 관련된 전체 페이지들이 아닌 적어도 하나의 페이지 및 상기 제 2 더미 워드라인에 관련된 전체 페이지들을 포함하고,
    상기 사전에 결정된 순서는 상기 어드레스 스크램블인 프로그램 방법.
  6. 제 2 항에 있어서,
    상기 적어도 하나의 더미 워드라인은 제 1 더미 워드라인 및 제 2 더미 워드라인을 포함하고,
    상기 적어도 하나의 페이지는 상기 제 1 더미 워드라인에 관련된 전체 페이지들 및 상기 제 2 더미 워드라인에 관련된 전체 페이지들을 포함하고,
    상기 사전에 결정된 순서는 상기 어드레스 스크램블인 프로그램 방법.
  7. 제 2 항에 있어서,
    상기 적어도 하나의 페이지는 전체 페이지들이 아닌 복수의 페이지들이고,
    상기 복수의 페이지들은 한꺼번에 상기 더미 패턴의 데이터로 프로그램 되는 프로그램 방법.
  8. 제 2 항에 있어서,
    상기 적어도 하나의 페이지는 전체 페이지들이고,
    상기 전체 페이지들은 한꺼번에 상기 더미 패턴의 데이터로 프로그램되는 프로그램 방법.
  9. 제 1 항에 있어서,
    상기 더미 패턴 프로그램 동작의 프로그램 속도는 상기 이어 쓰기의 프로그램 동작의 빠른 프로그램 속도를 갖는 프로그램 방법.
  10. 복수의 페이지들로 구성된 복수의 메모리 블록들을 포함하는 적어도 하나의 비휘발성 메모리 장치; 및
    상기 적어도 하나의 비휘발성 메모리 장치는 제어하는 메모리 제어기를 포함하고,
    상기 메모리 제어기는, 상기 복수의 메모리 블록들 중 메모리 블록에 적어도 하나의 오픈 페이지가 발생할 때, 적어도 하나의 더미 워드라인에 관련된 적어도 하나의 페이지 및 상기 적어도 하나의 오픈 페이지에 더미 패턴의 데이터를 프로그램 시킴으로써 상기 적어도 하나의 오픈 페이지를 클로징 시키고, 상기 오픈 페이지를 클로징 시킨 후에 상기 메모리 블록에 어드레스 스크램블에 따라 이어 쓰기를 수행하는 저장 장치.


KR1020130127421A 2013-10-24 2013-10-24 저장 장치 및 그것의 프로그램 방법 KR102117919B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130127421A KR102117919B1 (ko) 2013-10-24 2013-10-24 저장 장치 및 그것의 프로그램 방법
US14/336,343 US9466386B2 (en) 2013-10-24 2014-07-21 Storage device and related programming method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130127421A KR102117919B1 (ko) 2013-10-24 2013-10-24 저장 장치 및 그것의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20150047394A true KR20150047394A (ko) 2015-05-04
KR102117919B1 KR102117919B1 (ko) 2020-06-02

Family

ID=52995273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130127421A KR102117919B1 (ko) 2013-10-24 2013-10-24 저장 장치 및 그것의 프로그램 방법

Country Status (2)

Country Link
US (1) US9466386B2 (ko)
KR (1) KR102117919B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170071126A (ko) * 2015-12-15 2017-06-23 삼성전자주식회사 저장 장치의 동작 방법
KR20170084460A (ko) * 2016-01-12 2017-07-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10529427B2 (en) 2017-12-21 2020-01-07 SK Hynix Inc. Memory system and operation method with partial memory block detector
KR20200045347A (ko) * 2018-10-22 2020-05-04 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
US10650897B2 (en) 2018-03-21 2020-05-12 SK Hynix Inc. Storage device and method for operating the same
US11049577B2 (en) 2018-03-30 2021-06-29 Samsung Electronics Co., Ltd. Memory device having improved data reliability by varying program intervals, and method of operating the same
US11157210B2 (en) 2018-12-03 2021-10-26 SK Hynix Inc. Memory system performing dummy program operation during normal program operation
US11205485B2 (en) 2018-03-30 2021-12-21 Samsung Electronics Co., Ltd. Three-dimensional NAND flash memory device having improved data reliability by varying program intervals, and method of operating the same
US11797202B2 (en) 2019-12-24 2023-10-24 SK Hynix Inc. Storage device and method for foggy and fine programming

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102065665B1 (ko) * 2013-10-17 2020-01-13 삼성전자 주식회사 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9798657B2 (en) 2014-10-15 2017-10-24 Samsung Electronics Co., Ltd. Data storage device including nonvolatile memory device and operating method thereof
KR20160061704A (ko) * 2014-11-24 2016-06-01 삼성전자주식회사 페이지 상태 알림 기능이 있는 메모리 장치
US9547571B2 (en) * 2015-05-20 2017-01-17 Sandisk Technologies Llc Block behavior tracking in a memory system
TWI571742B (zh) * 2015-10-07 2017-02-21 慧榮科技股份有限公司 資料儲存裝置及資料維護方法
KR20200053018A (ko) 2018-11-07 2020-05-18 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 장치를 액세스하는 방법
KR20200076946A (ko) * 2018-12-20 2020-06-30 삼성전자주식회사 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) * 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
KR20220020717A (ko) * 2020-08-12 2022-02-21 삼성전자주식회사 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템
KR20230094622A (ko) 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 슈퍼 메모리 블록의 프로그램 상태를 기초로 타깃 동작을 실행하는 메모리 시스템 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200531A (ja) * 2006-01-24 2007-08-09 Samsung Electronics Co Ltd メモリシステム
US7545673B2 (en) * 2007-09-25 2009-06-09 Sandisk Il Ltd. Using MLC flash as SLC by writing dummy data
KR20110095706A (ko) * 2010-02-19 2011-08-25 삼성전자주식회사 데이터 저장 시스템 및 그것의 오픈 블록 관리 방법
US20130034830A1 (en) * 2010-04-16 2013-02-07 Young Wan Song Injector for dental implants
US20150006939A1 (en) * 2013-07-01 2015-01-01 Samsung Electronics Co., Ltd. Management method for nonvolatile memory system following power-off
US20150095558A1 (en) * 2013-10-01 2015-04-02 Kyungryun Kim Storage and programming method thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7443726B2 (en) 2005-12-29 2008-10-28 Sandisk Corporation Systems for alternate row-based reading and writing for non-volatile memory
KR100816154B1 (ko) 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 어드레스 스케쥴링 방법
KR100885783B1 (ko) 2007-01-23 2009-02-26 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
US8140825B2 (en) 2008-08-05 2012-03-20 International Business Machines Corporation Systems and methods for selectively closing pages in a memory
US8132045B2 (en) 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
KR101027687B1 (ko) 2009-09-17 2011-04-12 주식회사 하이닉스반도체 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법
KR101734204B1 (ko) 2010-06-01 2017-05-12 삼성전자주식회사 프로그램 시퀀서를 포함하는 플래시 메모리 장치 및 시스템, 그리고 그것의 프로그램 방법
KR20130058533A (ko) 2011-11-25 2013-06-04 에스케이하이닉스 주식회사 상 변화 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20130060687A (ko) 2011-11-30 2013-06-10 삼성전자주식회사 멀티 레벨 셀의 프로그램 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200531A (ja) * 2006-01-24 2007-08-09 Samsung Electronics Co Ltd メモリシステム
US7545673B2 (en) * 2007-09-25 2009-06-09 Sandisk Il Ltd. Using MLC flash as SLC by writing dummy data
KR20110095706A (ko) * 2010-02-19 2011-08-25 삼성전자주식회사 데이터 저장 시스템 및 그것의 오픈 블록 관리 방법
US20130034830A1 (en) * 2010-04-16 2013-02-07 Young Wan Song Injector for dental implants
US20150006939A1 (en) * 2013-07-01 2015-01-01 Samsung Electronics Co., Ltd. Management method for nonvolatile memory system following power-off
US20150095558A1 (en) * 2013-10-01 2015-04-02 Kyungryun Kim Storage and programming method thereof
KR20150039000A (ko) * 2013-10-01 2015-04-09 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170071126A (ko) * 2015-12-15 2017-06-23 삼성전자주식회사 저장 장치의 동작 방법
KR20170084460A (ko) * 2016-01-12 2017-07-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10529427B2 (en) 2017-12-21 2020-01-07 SK Hynix Inc. Memory system and operation method with partial memory block detector
US10650897B2 (en) 2018-03-21 2020-05-12 SK Hynix Inc. Storage device and method for operating the same
US11049577B2 (en) 2018-03-30 2021-06-29 Samsung Electronics Co., Ltd. Memory device having improved data reliability by varying program intervals, and method of operating the same
US11205485B2 (en) 2018-03-30 2021-12-21 Samsung Electronics Co., Ltd. Three-dimensional NAND flash memory device having improved data reliability by varying program intervals, and method of operating the same
US11315646B2 (en) 2018-03-30 2022-04-26 Samsung Electronics Co., Ltd. Memory device having improved data reliability by varying program sequences
KR20200045347A (ko) * 2018-10-22 2020-05-04 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
US11157210B2 (en) 2018-12-03 2021-10-26 SK Hynix Inc. Memory system performing dummy program operation during normal program operation
US11797202B2 (en) 2019-12-24 2023-10-24 SK Hynix Inc. Storage device and method for foggy and fine programming

Also Published As

Publication number Publication date
KR102117919B1 (ko) 2020-06-02
US9466386B2 (en) 2016-10-11
US20150117100A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
KR102117919B1 (ko) 저장 장치 및 그것의 프로그램 방법
US9875793B2 (en) Storage and programming method thereof
US9818485B2 (en) Nonvolatle memory device and memory system having the same, and related memory management, erase and programming methods
US9824761B2 (en) Storage device and a write method including a coarse program operation and fine program operation
KR102154620B1 (ko) 비휘발성 메모리 장치의 소거 방법 및 그것을 포함하는 저장 장치
KR102564563B1 (ko) 메모리 시스템 및 그 동작 방법
KR102210520B1 (ko) 비휘발성 메모리 장치 및 그것의 소거 방법
KR102248267B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 및 읽기 방법들
KR102222463B1 (ko) 저장 장치 및 그것의 타이머 설정 방법 및 구동 방법들
US8891315B2 (en) Nonvolatile memory device and erase method thereof
CN109388578B (zh) 存储装置及其操作方法
KR20150091667A (ko) 비휘발성 메모리 장치 및 그것의 워드라인 구동 방법
US9466390B2 (en) Nonvolatile memory system and programming method including a reprogram operation using a page buffer to reduce data load operations
KR20150003571A (ko) 저장 장치, 그것의 쓰기 방법 및 읽기 방법
KR20160038160A (ko) 불 휘발성 메모리 장치 및 그것의 동작 방법
KR102133362B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 및 그것의 프로그램 방법
US9053011B2 (en) Selective protection of lower page data during upper page write
US20230418742A1 (en) Out-of-order programming of first wordline in a physical unit of a memory device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant