KR101635446B1 - 반도체 메모리 장치의 블록 병합 방법 - Google Patents

반도체 메모리 장치의 블록 병합 방법 Download PDF

Info

Publication number
KR101635446B1
KR101635446B1 KR1020100048367A KR20100048367A KR101635446B1 KR 101635446 B1 KR101635446 B1 KR 101635446B1 KR 1020100048367 A KR1020100048367 A KR 1020100048367A KR 20100048367 A KR20100048367 A KR 20100048367A KR 101635446 B1 KR101635446 B1 KR 101635446B1
Authority
KR
South Korea
Prior art keywords
block
blocks
data
merging
program
Prior art date
Application number
KR1020100048367A
Other languages
English (en)
Other versions
KR20110128992A (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 KR1020100048367A priority Critical patent/KR101635446B1/ko
Priority to JP2011103615A priority patent/JP5756335B2/ja
Priority to US13/114,262 priority patent/US8812773B2/en
Publication of KR20110128992A publication Critical patent/KR20110128992A/ko
Application granted granted Critical
Publication of KR101635446B1 publication Critical patent/KR101635446B1/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/7202Allocation control and policies
    • 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/7205Cleaning, compaction, garbage collection, erase control

Abstract

반도체 메모리 장치의 블록 병합 방법에 의하면, 복수의 데이터들이 제 1 프로그램 방식으로 적어도 하나 이상의 제 1 블록들에 프로그램(program)되고, 제 1 블록들 중에서 병합의 필요성이 있는 적어도 하나 이상의 병합 대상 블록들이 선택되며, 제 1 블록들 또는 적어도 하나 이상의 제 2 블록들 중에서 병합을 수행하기 위한 병합 수행 블록이 선택되고, 병합 대상 블록들에 위치하는 복수의 병합 대상 데이터들이 제 2 프로그램 방식으로 병합 수행 블록에 프로그램된다. 따라서, 블록 병합을 수행하는 반도체 메모리 장치의 전반적인 성능이 향상될 수 있다.

Description

반도체 메모리 장치의 블록 병합 방법 {METHOD OF MERGING BLOCKS FOR A SEMICONDUCTOR MEMORY DEVICE}
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 반도체 메모리 장치의 블록 병합 방법에 관한 것이다.
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 분류될 수 있다. 최근, 전자 기기가 저전력화 및 소형화됨에 따라 비휘발성 반도체 메모리 장치 중에서도 낸드 플래시 메모리 장치(NAND flash memory device)가 널리 사용되고 있다. 이러한 낸드 플래시 메모리 장치는 프로그램(program) 동작을 페이지(page) 단위로 수행하는 반면, 소거(erase) 동작을 블록(block) 단위로 수행한다.
일반적으로, 낸드 플래시 메모리 장치는 하드 디스크와 달리 데이터 덮어쓰기(overwrite) 동작을 지원하지 않기 때문에, 낸드 플래시 메모리 장치에서의 데이터 수정은 해당 블록 또는 다른 블록 내에 존재하는 자유 페이지에 수정될 페이지 데이터를 프로그램하고, 이를 플래시 변환 계층(Flash Translation Layer; FTL)으로 어드레스 맵핑하는 방식으로 이루어진다. 그 결과, 이전 페이지 데이터가 프로그램되어 있는 페이지는 무효 페이지(invalid page)가 되고, 수정될 페이지 데이터가 프로그램되어 있는 페이지는 유효 페이지(valid page)가 되므로, 하나의 블록 내에는 유효 페이지와 무효 페이지가 병존할 수 있다.
그러므로, 낸드 플래시 메모리 장치는 여러 블록들에 분산되어 있는 유효 페이지들을 병합하고, 불필요한 무효 페이지들을 소거하여 자유 블록들을 확보하기 위한 블록 병합 동작을 수행할 수 있다. 그러나, 블록 병합 동작을 수행함에 따른 시간 지연 등으로 인하여, 낸드 플래시 메모리 장치의 전반적인 성능은 크게 저하될 수 있다. 이에, 블록 병합 동작을 효율적으로 수행하기 위한 알고리즘에 대한 연구가 활발하게 진행되고 있으나, 낸드 플래시 메모리 장치의 성능을 근본적으로 향상시키는 데에는 그 한계가 있다.
본 발명의 일 목적은 블록 병합 동작 시의 프로그램 방식을 일반적인 프로그램 동작 시의 프로그램 방식과는 상이한 프로그램 방식으로 설정하여 반도체 메모리 장치의 전반적인 성능을 향상시킬 수 있는 반도체 메모리 장치의 블록 병합 방법을 제공하는 것이다.
본 발명의 다른 목적은 블록 병합 동작 시와 일반적인 프로그램 동작 시에 서로 상이한 프로그램 방식으로 프로그램을 수행할 수 있는 반도체 메모리 장치를 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 상기 언급된 과제에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 반도체 메모리 장치의 블록 병합 방법은 복수의 데이터들을 제 1 프로그램 방식으로 적어도 하나 이상의 제 1 블록들에 프로그램(program)하고, 상기 제 1 블록들 중에서 병합의 필요성이 있는 적어도 하나 이상의 병합 대상 블록들을 선택하며, 상기 제 1 블록들 또는 적어도 하나 이상의 제 2 블록들 중에서 병합을 수행하기 위한 병합 수행 블록을 선택하고, 상기 병합 대상 블록들에 위치하는 복수의 병합 대상 데이터들을 제 2 프로그램 방식으로 상기 병합 수행 블록에 프로그램할 수 있다.
실시예에 따라, 상기 반도체 메모리 장치의 블록 병합 방법은 상기 병합 대상 블록들에 위치하는 상기 병합 대상 데이터들이 상기 병합 수행 블록에 프로그램된 이후, 상기 병합 대상 블록들에 위치하는 상기 병합 대상 데이터들을 소거(erase)할 수 있다.
실시예에 따라, 상기 반도체 메모리 장치는 복수의 싱글 레벨 메모리 셀(Single Level memory Cell; SLC)들 또는 복수의 멀티 레벨 메모리 셀(Multi Level memory Cell; MLC)들을 구비한 낸드 플래시 메모리 장치(NAND flash memory device)일 수 있다.
실시예에 따라, 상기 데이터들 및 상기 병합 대상 데이터들은 페이지 단위로 프로그램되고, 블록 단위로 소거될 수 있다.
실시예에 따라, 상기 제 1 프로그램 방식과 상기 제 2 프로그램 방식은 서로 상이한 복수의 프로그램 파라미터(program parameter)들에 기초할 수 있다.
실시예에 따라, 상기 제 1 프로그램 방식은 쉐도우 프로그램(shadow program) 방식이고, 상기 제 2 프로그램 방식은 리프로그램(re program) 방식일 수 있다.
실시예에 따라, 상기 병합 대상 데이터들은 상기 병합 대상 블록들로부터 페이지 버퍼부를 경유하여 상기 병합 수행 블록으로 프로그램될 수 있다.
실시예에 따라, 상기 제 1 프로그램 방식은 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램(on chip buffered program) 방식이고, 상기 제 2 프로그램 방식은 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있다.
실시예에 따라, 상기 병합 대상 데이터들은 상기 병합 대상 블록들로부터 페이지 버퍼부 및 싱글 레벨 메모리 셀 블록을 경유하여 상기 병합 수행 블록으로 프로그램될 수 있다.
실시예에 따라, 상기 제 1 증가형 스텝 펄스는 상기 제 2 증가형 스텝 펄스보다 상대적으로 낮은 전압 레벨을 가질 수 있다.
실시예에 따라, 상기 제 1 블록들은 적어도 하나 이상의 데이터 블록(data block)들 및 적어도 하나 이상의 로그 블록(log block)들을 포함할 수 있다.
실시예에 따라, 상기 제 2 블록들은 적어도 하나 이상의 자유 블록(free block)들을 포함할 수 있다.
실시예에 따라, 상기 병합 대상 데이터들이 상기 병합 대상 블록들로부터 소거되면, 상기 병합 대상 블록들은 상기 자유 블록들로 전환되고, 상기 병합 대상 데이터들이 상기 병합 수행 블록에 프로그램되면, 상기 병합 수행 블록은 상기 데이터 블록으로 전환될 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 반도체 메모리 장치는 복수의 메모리 셀들, 복수의 워드 라인들 및 복수의 비트 라인들을 구비하는 메모리 셀 어레이, 반도체 메모리 장치의 동작 모드에 기초하여 기입 드라이버 또는 감지 증폭기로서 동작하는 페이지 버퍼부, 상기 동작 모드에 기초하여 상기 워드 라인들에 인가되는 복수의 워드 라인 전압들을 생성하는 전압 생성기, 로우 어드레스에 기초하여 상기 전압 생성기로부터 제공되는 상기 워드 라인 전압들을 상기 워드 라인들에 인가하는 로우 디코더 및 상기 동작 모드에 따라 프로그램 방식을 전환하고, 상기 페이지 버퍼부, 상기 전압 생성기 및 상기 로우 디코더를 제어하는 프로그램 제어기를 포함할 수 있다.
실시예에 따라, 상기 반도체 메모리 장치는 복수의 싱글 레벨 메모리 셀(Single Level memory Cell; SLC)들 또는 복수의 멀티 레벨 메모리 셀(Multi Level memory Cell; MLC)들을 구비한 낸드 플래시 메모리 장치(NAND flash memory device)일 수 있다.
실시예에 따라, 상기 동작 모드는 기입 동작 모드, 독출 동작 모드, 소거 동작 모드 및 블록 병합 동작 모드를 포함할 수 있다.
실시예에 따라, 상기 프로그램 방식은 제 1 프로그램 방식 및 제 2 프로그램 방식을 포함할 수 있고, 상기 제 1 프로그램 방식과 상기 제 2 프로그램 방식은 서로 상이한 복수의 프로그램 파라미터(program parameter)들에 기초할 수 있다.
실시예에 따라, 상기 기입 동작 모드에서 상기 제 1 프로그램 방식으로 프로그램이 수행되고, 상기 블록 병합 동작 모드에서 상기 제 2 프로그램 방식으로 프로그램이 수행될 수 있다.
실시예에 따라, 상기 제 1 프로그램 방식은 쉐도우 프로그램(shadow program) 방식이고, 상기 제 2 프로그램 방식은 리프로그램(re program) 방식일 수 있다.
실시예에 따라, 상기 제 1 프로그램 방식은 상대적으로 낮은 전압 레벨의 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램(on chip buffered program) 방식이고, 상기 제 2 프로그램 방식은 상대적으로 높은 전압 레벨의 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있다.
본 발명의 실시예들에 따른 반도체 메모리 장치의 블록 병합 방법은 반도체 메모리 장치로 하여금 블록 병합 동작 시와 일반적인 프로그램 동작 시에 서로 상이한 프로그램 방식으로 프로그램을 수행하게 함으로써, 비휘발성 메모리 셀들의 문턱 전압 산포를 개선하고, 반도체 메모리 장치의 동작 속도를 빠르게 할 수 있다.
본 발명의 실시예들에 따른 반도체 메모리 장치는 블록 병합 동작 시와 일반적인 프로그램 동작 시에 서로 상이한 프로그램 방식으로 프로그램을 수행함으로써, 비휘발성 메모리 셀들의 문턱 전압 산포를 개선하고, 빠른 동작 속도를 확보할 수 있다. 따라서, 반도체 메모리 장치의 전반적인 성능은 향상될 수 있다.
다만, 본 발명의 효과는 상기 언급한 효과에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치의 블록 병합 방법을 나타내는 순서도이다.
도 2는 도 1의 블록 병합 방법을 설명하기 위한 반도체 메모리 장치의 블록들을 나타내는 도면이다.
도 3a는 도 1의 블록 병합 방법에 의하여 수행되는 블록 병합 형태의 일 예를 나타내는 도면이다.
도 3b는 도 1의 블록 병합 방법에 의하여 수행되는 블록 병합 형태의 다른 예를 나타내는 도면이다.
도 3c는 도 1의 블록 병합 방법에 의하여 수행되는 블록 병합 형태의 또 다른 예를 나타내는 도면이다.
도 4는 도 1의 블록 병합 방법에서 병합 대상 데이터들이 병합 대상 블록들로부터 병합 수행 블록으로 프로그램되는 병합 과정의 일 예를 나타내는 순서도이다.
도 5는 도 4의 병합 과정을 설명하기 위한 도면이다.
도 6a는 도 1의 블록 병합 방법에서 일반적인 프로그램 동작이 쉐도우 프로그램 방식으로 수행되는 일 예를 나타내는 순서도이다.
도 6b는 도 6a의 쉐도우 프로그램 방식을 설명하기 위한 도면이다.
도 7a는 도 1의 블록 병합 방법에서 블록 병합 동작이 리프로그램 방식으로 수행되는 일 예를 나타내는 순서도이다.
도 7b는 도 7a의 리프로그램 방식을 설명하기 위한 도면이다.
도 8은 도 1의 블록 병합 방법에서 병합 대상 데이터들이 병합 대상 블록들로부터 병합 수행 블록으로 프로그램되는 병합 과정의 다른 예를 나타내는 순서도이다.
도 9는 도 8의 병합 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예들에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 11은 도 10의 반도체 메모리 장치에 구비되는 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 12는 도 10의 반도체 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 13은 도 12의 메모리 시스템이 동작하는 소프트웨어 구조를 나타내는 블록도이다.
도 14는 도 12의 메모리 시스템이 구현되는 일 예를 나타내는 블록도이다.
도 15는 도 12의 메모리 시스템이 구현되는 다른 예를 나타내는 블록도이다.
도 16은 도 12의 메모리 시스템이 구현되는 또 다른 예를 나타내는 블록도이다.
도 17은 도 12의 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치의 블록 병합 방법을 나타내는 순서도이다.
도 1을 참조하면, 반도체 메모리 장치의 블록 병합 방법은 복수의 데이터들을 제 1 프로그램 방식으로 적어도 하나 이상의 제 1 블록들에 프로그램(Step S110)하고, 제 1 블록들 중에서 병합의 필요성이 있는 적어도 하나 이상의 병합 대상 블록들을 선택(Step S120)하며, 제 1 블록들 또는 적어도 하나 이상의 제 2 블록들 중에서 병합을 수행하기 위한 병합 수행 블록을 선택(Step S130)할 수 있다. 이후, 반도체 메모리 장치의 블록 병합 방법은 병합 대상 블록들에 위치하는 복수의 병합 대상 데이터들을 제 2 프로그램 방식으로 병합 수행 블록에 프로그램(Step S140)할 수 있고, 복수의 병합 대상 데이터들이 병합 수행 블록에 프로그램된 이후에, 병합 대상 블록들에 위치하는 병합 대상 데이터들을 소거(Step S150)할 수 있다.
일반적으로, 낸드 플래시 메모리 장치는 하드 디스크 드라이브(hard disk drive) 장치 등과 달리 데이터의 덮어 쓰기(overwrite)가 불가능하기 때문에, 메모리 셀들에 프로그램되어 있는 데이터들을 직접 수정하거나 변경할 수 없다. 따라서, 낸드 플래시 메모리 장치는 데이터의 수정 및 변경 시에 메모리 셀들에 프로그램되어 있는 데이터들을 소거함으로써 메모리 셀들을 프로그램 가능한 초기 상태로 만들어 놓고, 수정하거나 변경되는 데이터들을 다시 메모리 셀들에 프로그램하여야 한다. 이를 소위 프로그램 전 소거 동작(erase before program operation)이라 한다. 그러나, 낸드 플래시 메모리 장치에서는 프로그램 동작 및 독출 동작이 페이지(page) 단위로 수행되는 반면에 소거 동작은 블록(block) 단위로 수행되기 때문에, 하나의 블록에 위치하는 일부 데이터들을 수정하거나 변경하기 위하여 해당 블록에 대해 프로그램 전 소거 동작을 수행하는 것은 효율적이지 않다.
이러한 한계를 극복하기 위하여, 낸드 플래시 메모리 장치는 논리적으로 블록들을 데이터 블록(data block), 로그 블록(log block) 및 자유 블록(free block)으로 구분함으로써, 프로그램 동작, 독출 동작, 소거 동작 및 블록 병합 동작을 수행할 수 있다. 예를 들어, 낸드 플래시 메모리 장치는 데이터들을 데이터 블록에 프로그램하고, 수정하거나 변경되는 데이터들을 로그 블록에 프로그램하며, 플래시 변환 계층(Flash Translation Layer; FTL)으로 어드레스 맵핑을 수행함으로써 데이터들을 관리할 수 있다. 이와 같이, 플래시 변환 계층은 사용자가 낸드 플래시 메모리 장치를 하드 디스크 드라이브 장치처럼 사용 가능하도록 한다. 예를 들어, 플래시 변환 계층은 어드레스 맵핑(address mapping), 블록 병합(block merge), 파워 드롭 관리(power drop management), 배드 블록 관리(bad block management) 및 웨어 레벨링(wear leveling) 등을 수행할 수 있다. 이하, 메모리 시스템이 데이터들을 처리함에 있어서 논리적 어드레스(logical address)를 물리적 어드레스(physical address)로 변환하도록 관리해주는 어드레스 맵핑 및 데이터 블록과 로그 블록에서 유효한 데이터들을 추출하여 저장하고, 유효하지 않은 데이터들을 제거함으로써 자유 블록을 확보하기 위한 블록 병합을 중심으로 설명하기로 한다.
낸드 플래시 메모리 장치에서 페이지 단위의 데이터(이하, 페이지 데이터)들이 데이터 블록에 프로그램되고, 수정하거나 변경되는 페이지 데이터들은 로그 블록에 프로그램되기 때문에, 하나의 블록 내에는 유효한 페이지 데이터를 포함하는 유효 페이지(valid page)와 유효하지 않은 페이지 데이터를 포함하는 무효 페이지(invalid page)가 병존할 수 있다. 따라서, 낸드 플래시 메모리 장치는 플래시 변환 계층을 이용하여 블록 병합 동작을 수행함으로써, 여러 블록들에 분산되어 있는 유효 페이지들을 병합하고, 불필요한 무효 페이지들을 소거할 수 있다. 그 결과, 프로그램 가능한 초기 상태의 자유 페이지(free page)만 포함하는 자유 블록들이 확보될 수 있다. 예를 들어, 낸드 플래시 메모리 장치는 데이터 블록들 및 이와 연계된 로그 블록들에서 유효 페이지들을 하나의 자유 블록으로 이동시켜 새로운 데이터 블록을 생성하고, 이전 데이터 블록 및 이전 로그 블록들을 자유 블록들로 전환시킬 수 있다.
낸드 플래시 메모리 장치에서 이러한 블록 병합 동작이 수행될 때, 병합 대상 블록들(즉, 병합의 필요성이 있는 데이터 블록들 및 이와 연계된 로그 블록들) 내에 있는 유효 페이지들은 복수의 페이지 버퍼들로 구성된 페이지 버퍼부를 거쳐 병합 수행 블록(즉, 병합을 수행하기 위하여 선택된 블록)에 프로그램될 수 있다. 그러나, 종래의 낸드 플래시 메모리 장치는 블록 병합 동작을 수행할 때, 일반적인 프로그램 동작 시의 프로그램 방식과 블록 병합 동작 시의 프로그램 방식을 동일하게 하고 있어, 일반적인 프로그램 동작과 블록 병합 동작에 기인하는 각각의 특수한 환경 및 조건을 제대로 반영하지 못하는 문제점이 있다. 이러한 문제점을 해결하기 위하여, 반도체 메모리 장치의 블록 병합 방법은 일반적인 프로그램 동작과 블록 병합 동작에 기인하는 각각의 특수한 환경 및 조건에 기초하여, 일반적인 프로그램 동작 시의 프로그램 방식과 블록 병합 동작 시의 프로그램 방식을 서로 상이하게 설정할 수 있다. 예를 들어, 증가형 스텝 펄스 프로그램(Incremental Step Pulse Program; ISPP) 조건, 검증 리드 전압(verify read level) 및 센싱 스킴(sensning scheme) 등과 같은 프로그램 파라미터들을 서로 상이하게 설정할 수 있다. 이하, 반도체 메모리 장치의 블록 병합 방법에 대해서 구체적으로 설명하기로 한다.
복수의 데이터들이 제 1 프로그램 방식으로 적어도 하나 이상의 제 1 블록들에 프로그램(Step S110)될 수 있다. 이 때, 제 1 블록들은 복수의 자유 페이지들을 포함하고, 페이지 데이터들이 페이지 단위로 제 1 블록들에 프로그램될 수 있다. 제 1 프로그램 방식은 일반적인 프로그램 동작 시의 프로그램 방식을 의미한다. 일 실시예에서, 제 1 블록들은 적어도 하나 이상의 데이터 블록들 및 적어도 하나 이상의 로그 블록들을 포함할 수 있다. 예를 들어, 낸드 플래시 메모리 장치가 새로운 페이지 데이터들을 제 1 블록들에 프로그램하는 경우에는, 제 1 블록들은 적어도 하나 이상의 데이터 블록들일 수 있고, 낸드 플래시 메모리 장치가 수정하거나 변경되는 페이지 데이터들을 제 1 블록들에 프로그램하는 경우에는, 제 1 블록들은 적어도 하나 이상의 로그 블록들일 수 있다.
낸드 플래시 메모리 장치가 블록 병합 동작을 수행할 필요가 있을 때, 제 1 블록들(즉, 데이터 블록들 및 이와 연계된 로그 블록들) 중에서 병합의 필요성이 있는 적어도 하나 이상의 병합 대상 블록들이 선택(Step S120)될 수 있다. 일 실시예에서, 낸드 플래시 메모리 장치는 유효 페이지 및 무효 페이지를 포함하는 데이터 블록들과 유효 페이지 및/또는 무효 페이지를 포함하는 로그 블록들을 병합의 필요성이 있는 적어도 하나 이상의 병합 대상 블록들로 선택할 수 있다. 상술한 바와 같이, 낸드 플래시 메모리 장치는 새로운 페이지 데이터들을 데이터 블록에 프로그램하고, 수정하거나 변경되는 페이지 데이터들을 로그 블록에 프로그램하기 때문에, 하나의 블록 내에는 유효 페이지와 무효 페이지가 병존할 수 있다. 따라서, 적어도 하나 이상의 병합 대상 블록들은 유효 페이지 및 무효 페이지가 병존하는 데이터 블록들 및 이와 연계된 로그 블록들 중에서 선택될 수 있다.
적어도 하나 이상의 병합 대상 블록들이 선택되면, 적어도 하나 이상의 제 1 블록들 또는 적어도 하나 이상의 제 2 블록들 중에서 병합을 수행하기 위한 병합 수행 블록이 선택(Step S130)될 수 있다. 일 실시예에서, 제 1 블록들은 적어도 하나 이상의 데이터 블록들 및 적어도 하나 이상의 로그 블록들을 포함할 수 있고, 제 2 블록들은 적어도 하나 이상의 자유 블록들을 포함할 수 있다. 즉, 병합 수행 블록은 적어도 하나 이상의 데이터 블록들 및 적어도 하나 이상의 로그 블록들에 상응하는 제 1 블록들, 또는 적어도 하나 이상의 자유 블록들에 상응하는 제 2 블록들 중에서 선택될 수 있다. 예를 들어, 낸드 플래시 메모리 장치의 블록 병합 동작이 교환 병합(switch merge) 형태나 복사 병합(copy merge) 형태로 수행되는 경우에는 병합 수행 블록은 적어도 하나 이상의 데이터 블록들 및 적어도 하나 이상의 로그 블록들에 상응하는 제 1 블록들 중에서 선택될 수 있고, 낸드 플래시 메모리 장치의 블록 병합 동작이 완전 병합(full merge) 형태로 수행되는 경우에는 병합 수행 블록은 적어도 하나 이상의 자유 블록들에 상응하는 제 2 블록들 중에서 선택될 수 있다.
이후, 병합 대상 블록들에 위치하는 복수의 병합 대상 데이터들이 제 2 프로그램 방식으로 병합 수행 블록에 프로그램(Step S140)될 수 있다. 이 때, 병합 수행 블록은 복수의 자유 페이지들을 포함하고, 이러한 병합 대상 데이터들이 페이지 단위로 병합 수행 블록에 프로그램될 수 있다. 제 2 프로그램 방식은 블록 병합 동작 시의 프로그램 방식을 의미한다. 일 실시예에서, 병합 대상 블록들에 위치하는 병합 대상 데이터들이 병합 수행 블록으로 프로그램되기 위하여, 병합 대상 데이터들은 병합 대상 블록들로부터 페이지 버퍼부를 경유하여 병합 수행 블록으로 프로그램될 수 있다. 다른 실시예에서, 병합 대상 블록들에 위치하는 병합 대상 데이터들이 병합 수행 블록으로 프로그램되기 위하여, 병합 대상 데이터들은 병합 대상 블록들로부터 페이지 버퍼부 및 싱글 레벨 메모리 셀 블록을 경유하여 병합 수행 블록으로 프로그램될 수 있다. 이에 대해서는 자세하게 후술하기로 한다.
이와 같이, 반도체 메모리 장치의 블록 병합 방법은 일반적인 프로그램 동작 시의 프로그램 방식과 블록 병합 동작 시의 프로그램 방식을 서로 상이하게 설정함으로써, 메모리 셀들의 문턱 전압 산포를 개선하고, 반도체 메모리 장치의 동작 속도를 빠르게 할 수 있다. 이 때, 일반적인 프로그램 동작 시의 제 1 프로그램 방식과 블록 병합 동작 시의 제 2 프로그램 방식은 서로 상이한 프로그램 파라미터들에 기초할 수 있다. 일 실시예에서, 제 1 프로그램 방식은 쉐도우 프로그램(shadow program) 방식으로 설정되고, 제 2 프로그램 방식은 리프로그램(re program) 방식으로 설정될 수 있다. 다른 실시예에서, 제 1 프로그램 방식은 상대적으로 낮은 전압 레벨의 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램(on chip buffered program) 방식으로 설정될 수 있고, 제 2 프로그램 방식은 상대적으로 높은 전압 레벨의 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식으로 설정될 수 있다. 이러한 프로그램 방식의 설정은 프로그램 파라미터들을 변경함으로써 이루어질 수 있다.
한편, 병합 대상 데이터들이 병합 수행 블록에 프로그램된 이후에, 병합 대상 블록들에 위치하는 병합 대상 데이터들은 소거될 수 있다. 즉, 병합 대상 블록들에 위치하는 유효 페이지들이 병합 수행 블록으로 프로그램됨으로써 새로운 데이터 블록을 생성하였으므로, 낸드 플래시 메모리 장치는 이전 데이터 블록들 및/또는 이전 로그 블록들인 병합 대상 블록들에 위치하는 병합 대상 데이터들을 소거함으로써, 이러한 병합 대상 블록들을 자유 블록들로 전환시킬 수 있다. 상술한 바와 같이, 낸드 플래시 메모리 장치의 소거 동작은 블록 단위로 수행된다. 그 결과, 병합 대상 블록들은 각각 전체(즉, 블록 단위)로서 소거되어 자유 블록들로 전환될 수 있다. 이와 같이, 반도체 메모리 장치의 블록 병합 방법은 반도체 메모리 장치 즉, 낸드 플래시 메모리 장치로 하여금 충분한 자유 블록들을 확보하게 함으로써, 반도체 메모리 장치의 전반적인 성능을 향상시킬 수 있다.
도 2는 도 1의 블록 병합 방법을 설명하기 위한 반도체 메모리 장치의 블록들을 나타내는 도면이다.
도 2를 참조하면, 반도체 메모리 장치의 블록들은 데이터 블록들(10), 로그 블록들(20) 및 자유 블록들(30)을 포함할 수 있다. 다만, 데이터 블록들(10), 로그 블록들(20) 및 자유 블록들(30)은 메모리 셀 어레이에서 물리적으로 구분되는 것이 아니라 논리적으로 구분되는 것이다. 실시예에 따라, 반도체 메모리 장치의 블록들은 블록 병합 동작에 따라 변경되는 어드레스 맵핑 정보를 저장하기 위한 메타 블록들을 더 포함할 수 있다.
반도체 메모리 장치는 복수의 페이지들을 포함하는 복수의 블록들로 구성된 메모리 셀 어레이를 포함할 수 있다. 상술한 바와 같이, 페이지들은 낸드 플래시 메모리 장치에서 독출 동작 및 프로그램 동작의 기본 단위로서, 각각 데이터 영역(data region)과 스페어 영역(spare region)을 포함할 수 있다. 일 실시예에서, 데이터 영역에는 페이지 데이터가 저장될 수 있고, 스페어 영역에는 논리 페이지의 오프셋이 저장될 수 있다. 블록들은 낸드 플래시 메모리 장치에서 소거 동작의 기본 단위로서, 데이터 블록들(10), 로그 블록들(20) 및 자유 블록들(30)로 구분될 수 있다. 이 때, 데이터 블록들(10)은 페이지 데이터들이 프로그램되어 있는 블록들을 의미하고, 로그 블록들(20)은 수정하거나 변경된 페이지 데이터들이 저장되어 있는 블록들을 의미하며, 자유 블록들(30)은 페이지 데이터들이 프로그램되어 있지 않은 프로그램 가능 상태의 블록들을 의미한다. 즉, 데이터 블록들(10)은 페이지 데이터들을 프로그램하기 위해 할당되는 블록들이고, 로그 블록들(20)은 수정하거나 변경되는 페이지 데이터들을 프로그램하기 위해 할당되는 블록들이며, 자유 블록들(30)은 상황에 따라 데이터 블록들(10) 또는 로그 블록들(20)로 전환될 수 있는 블록들이다. 일반적으로, 로그 블록들(20)의 페이지들은 데이터 블록들(10)의 페이지들보다 업데이트된 페이지 데이터들이 프로그램되어 있으므로, 로그 블록들(20)의 페이지들은 데이터 블록들(10)의 페이지들보다 우선적으로 참조될 수 있다. 일 실시예에서, 하나의 로그 블록(20)은 하나의 데이터 블록(10)과 연계될 수 있다.
상술한 바와 같이, 데이터 블록들(10)과 로그 블록들(20)은 내부에 유효 페이지들과 무효 페이지들을 포함할 수 있다. 즉, 낸드 플래시 메모리 장치에서 새로운 페이지 데이터들은 데이터 블록들(10)에 프로그램되고, 수정하거나 변경되는 페이지 데이터들은 로그 블록들(20)에 프로그램되기 때문에, 데이터 블록들(10)과 로그 블록들(20)에는 유효 페이지들과 무효 페이지들이 병존할 수 있다. 예를 들어, 로그 블록들(20)의 일부 페이지들이 데이터 블록들(10)의 일부 페이지들보다 우선적으로 참조되는 경우, 로그 블록들(20)의 일부 페이지들은 유효 페이지들로 판단될 수 있고, 데이터 블록들(10)의 일부 페이지들은 무시되기 때문에 무효 페이지들로 판단될 수 있다. 또한, 로그 블록들(20) 내에서도 페이지 데이터들이 업데이트될 수 있으므로, 로그 블록들(20)의 일부 페이지들이 로그 블록들(20)의 다른 일부 페이지들보다 우선적으로 참조되는 경우, 로그 블록들(20)의 일부 페이지들은 유효 페이지들로 판단될 수 있고, 로그 블록들(20)의 다른 일부 페이지들은 무시되기 때문에 무효 페이지들로 판단될 수 있다. 한편, 블록들은 반도체 메모리 장치의 메모리 셀 어레이에서 논리적으로 데이터 블록들(10), 로그 블록들(20) 및 자유 블록들(30)로 구분되는 것이므로, 물리적으로는 서로 연속적으로 또는 비연속적으로 존재할 수 있다.
도 3a는 도 1의 블록 병합 방법에 의하여 수행되는 블록 병합 형태의 일 예를 나타내는 도면이다.
도 3a를 참조하면, 도 1의 블록 병합 방법에 의하여 수행되는 교환 병합이 도시되어 있다. 여기서, IP는 무효 페이지를 나타내고, VP는 유효 페이지를 나타내며, FP는 자유 페이지를 나타낸다. 또한, 0에서 3까지의 숫자는 논리 페이지의 오프셋을 나타내고, 각 블록의 물리 페이지는 4개로 도시되어 있다. 일반적으로, 교환 병합은 이전 데이터 블록에 무효 페이지(IP)만이 포함되어 있고, 이전 로그 블록에 포함된 유효 페이지(VP)의 개수가 이전 로그 블록의 물리 페이지의 개수와 동일한 경우에 수행될 수 있다. 이러한 교환 병합에서는, 이전 로그 블록이 어드레스 맵핑 정보가 갱신됨으로써 새로운 데이터 블록으로 전환될 수 있다. 또한, 이전 데이터 블록에서 무효 페이지(IP)가 소거됨으로써 이전 데이터 블록이 새로운 자유 블록으로 전환될 수 있다. 일 실시예에서, 교환 병합은 이전 로그 블록이 새로운 데이터 블록으로 전환 시에 어드레스 맵핑 정보만을 갱신하는 방식으로 이루어질 수 있다. 이 경우에, 이전 로그 블록의 유효 페이지(VP)가 새로이 프로그램되는 것은 아니므로, 새로운 데이터 블록의 유효 페이지(VP)의 순서는 이전 로그 블록의 유효 페이지(VP)의 순서와 동일(예를 들어, 3-0-1-2)할 수 있다. 다른 실시예에서, 교환 병합은 이전 로그 블록이 새로운 데이터 블록으로 전환 시에 이전 로그 블록의 유효 페이지(VP)가 선택된 자유 블록에 새로이 프로그램되는 방식으로 이루어질 수 있다. 이 경우에, 새로운 데이터 블록의 유효 페이지(VP)의 순서는 이전 로그 블록의 유효 페이지(VP)가 정렬되는 순서(예를 들어, 0-1-2-3)로 결정될 수 있다. 이 때, 도 1의 블록 병합 방법은 이전 로그 블록의 유효 페이지(VP)를 선택된 자유 블록에 새로이 프로그램할 때, 일반적인 프로그램 동작 시의 제 1 프로그램 방식과는 상이한 제 2 프로그램 방식으로 프로그램할 수 있다.
도 3b는 도 1의 블록 병합 방법에 의하여 수행되는 블록 병합 형태의 다른 예를 나타내는 도면이다.
도 3b를 참조하면, 도 1의 블록 병합 방법에 의하여 수행되는 복사 병합이 도시되어 있다. 마찬가지로, IP는 무효 페이지를 나타내고, VP는 유효 페이지를 나타내며, FP는 자유 페이지를 나타낸다. 또한, 0에서 3까지의 숫자는 논리 페이지의 오프셋을 나타내고, 각 블록의 물리 페이지는 4개로 도시되어 있다. 일반적으로, 복사 병합은 이전 데이터 블록에 유효 페이지(VP)와 무효 페이지(IP)가 병존하고, 이전 로그 블록에서 유효 페이지(VP)의 개수가 이전 로그 블록의 물리 페이지의 개수와 동일하지 않은 경우에 수행될 수 있다. 이러한 복사 병합에서는, 이전 데이터 블록의 유효 페이지(VP)가 이전 로그 블록의 자유 페이지(FP)에 복사된 다음, 이전 로그 블록이 새로운 데이터 블록으로 전환될 수 있다. 또한, 이전 데이터 블록에서 유효 페이지(VP) 및 무효 페이지(IP)가 소거됨으로써 이전 데이터 블록이 새로운 자유 블록으로 전환될 수 있다. 일 실시예에서, 복사 병합은 이전 로그 블록이 새로운 데이터 블록으로 전환되기 이전에, 이전 데이터 블록의 유효 페이지(VP)가 이전 로그 블록에 새로이 프로그램되는 방식으로 이루어질 수 있다. 이 경우에, 새로운 데이터 블록의 유효 페이지(VP)의 순서는 이전 로그 블록의 유효 페이지(VP)에 이어 이전 데이터 블록의 유효 페이지(VP)가 뒤따르는 순서(예를 들어, 2-0-1-3)로 결정될 수 있다. 이 때, 도 1의 블록 병합 방법은 이전 데이터 블록의 유효 페이지(VP)를 이전 로그 블록에 새로이 프로그램할 때, 일반적인 프로그램 동작 시의 제 1 프로그램 방식과는 상이한 제 2 프로그램 방식으로 프로그램할 수 있다.
도 3c는 도 1의 블록 병합 방법에 의하여 수행되는 블록 병합 형태의 또 다른 예를 나타내는 도면이다.
도 3c를 참조하면, 도 1의 블록 병합 방법에 의하여 수행되는 완전 병합이 도시되어 있다. 마찬가지로, IP는 무효 페이지를 나타내고, VP는 유효 페이지를 나타내며, FP는 자유 페이지를 나타낸다. 또한, 0에서 3까지의 숫자는 논리 페이지의 오프셋을 나타내고, 각 블록의 물리 페이지는 4개로 도시되어 있다. 일반적으로, 완전 병합은 이전 데이터 블록에 유효 페이지(VP)와 무효 페이지(IP)가 병존하고, 이전 로그 블록에도 유효 페이지(VP)와 무효 페이지(IP)가 병존하는 경우에 수행될 수 있다. 이러한 완전 병합에서는, 이전 데이터 블록의 유효 페이지(VP) 및 이전 로그 블록의 유효 페이지(VP)가 선택된 자유 블록의 자유 페이지(FP)에 복사된 다음, 선택된 자유 블록이 새로운 데이터 블록으로 전환될 수 있다. 또한, 이전 데이터 블록 및 이전 로그 블록에서 유효 페이지(VP) 및 무효 페이지(IP)가 소거됨으로써 이전 데이터 블록 및 이전 로그 블록이 새로운 자유 블록으로 전환될 수 있다. 일 실시예에서, 완전 병합은 선택된 자유 블록이 새로운 데이터 블록으로 전환되기 이전에, 이전 데이터 블록 및 이전 로그 블록의 유효 페이지(VP)가 선택된 자유 블록에 새로이 프로그램되는 방식으로 이루어질 수 있다. 이 경우에, 새로운 데이터 블록의 유효 페이지(VP)의 순서는 이전 로그 블록 및 이전 데이터 블록의 유효 페이지(VP)가 정렬되는 순서(예를 들어, 0-1-2-3)로 결정될 수 있다. 이 때, 도 1의 블록 병합 방법은 이전 로그 블록 및 이전 데이터 블록의 유효 페이지(VP)를 선택된 자유 블록에 새로이 프로그램할 때, 일반적인 프로그램 동작 시의 제 1 프로그램 방식과는 상이한 제 2 프로그램 방식으로 프로그램할 수 있다.
도 4는 도 1의 블록 병합 방법에서 병합 대상 데이터들이 병합 대상 블록들로부터 병합 수행 블록으로 프로그램되는 병합 과정의 일 예를 나타내는 순서도이다.
도 4를 참조하면, 도 1의 블록 병합 방법은 병합 대상 블록들에 위치하는 병합 대상 데이터들을 병합 수행 블록으로 병합하기 위하여, 병합 대상 데이터들을 병합 대상 블록들로부터 페이지 버퍼부를 경유하여 병합 수행 블록으로 프로그램할 수 있다. 구체적으로, 도 1의 블록 병합 방법은 병합 대상 데이터들을 병합 대상 블록들로부터 페이지 버퍼부로 로딩(Step S141)한 후, 페이지 버퍼부에 로딩된 병합 대상 데이터들을 병합 수행 블록으로 프로그램(Step S142)할 수 있다.
낸드 플래시 메모리 장치는 복수의 싱글 레벨 메모리 셀(SLC)들 또는 복수의 멀티 레벨 메모리 셀(MLC)들을 구비하는 메모리 셀 어레이 및 낸드 플래시 메모리 장치의 동작 모드에 기초하여 메모리 셀 어레이에 대한 기입 드라이버 또는 감지 증폭기로서 동작하는 페이지 버퍼부를 포함할 수 있다. 이러한 페이지 버퍼부는 복수의 페이지 버퍼들로 구성될 수 있다. 도 1의 블록 병합 방법에 의하면, 병합 대상 데이터들은 병합 대상 블록들로부터 페이지 버퍼부로 로딩(Step S141)될 수 있다. 이 때, 페이지 버퍼부는 메모리 셀 어레이에 대한 감지 증폭기로서 동작하며, 병합 대상 데이터들을 병합 대상 블록들로부터 독출하여 내부의 페이지 버퍼들로 로딩한다. 이후, 페이지 버퍼부에 로딩된 병합 대상 데이터들이 병합 수행 블록으로 프로그램(Step S142)될 수 있다. 이 때, 페이지 버퍼부는 메모리 셀 어레이에 대한 기입 드라이버로서 동작하며, 로우 디코더가 전압 생성기에서 출력되는 워드 라인 전압들(예를 들어, 프로그램 전압 및 패스 전압)을 워드 라인들에 인가하면, 로딩된 병합 대상 데이터들을 병합 수행 블록으로 프로그램한다. 일 실시예에서, 메모리 셀 어레이에 포함되는 메모리 셀들이 멀티 레벨 메모리 셀(MLC)들인 경우, 도 1의 블록 병합 방법은 증가형 스텝 펄스 프로그램 방식을 채용한 제 2 프로그램 방식에 기초하여 수행될 수 있다.
상술한 바와 같이, 도 1의 블록 병합 방법은 외부로부터 입력되는 페이지 데이터들을 페이지 버퍼부로 로딩하고, 로딩된 페이지 데이터들을 페이지 버퍼부로부터 대상 블록으로 프로그램하는 반도체 메모리 장치의 일반적인 프로그램 동작에서 제 1 프로그램 방식을 이용하고, 병합 대상 블록들로부터 병합 대상 데이터들을 페이지 버퍼부로 로딩하고, 로딩된 병합 대상 데이터들을 페이지 버퍼부로부터 병합 수행 블록으로 프로그램하는 블록 병합 동작에서 제 1 프로그램 방식과는 상이한 제 2 프로그램 방식을 이용할 수 있다. 이 때, 제 1 프로그램 방식과 제 2 프로그램 방식의 선택은 증가형 스텝 펄스 프로그램 조건, 검증 리드 전압, 센싱 스킴 등과 같은 프로그램 파라미터들을 서로 상이하게 설정하는 형태로 이루어질 수 있다. 일 실시예에서, 제 1 프로그램 방식은 쉐도우 프로그램 방식이고, 제 2 프로그램 방식은 리프로그램 방식일 수 있다. 이와 같이, 도 1의 블록 병합 방법은 일반적인 프로그램 동작 시와 블록 병합 동작 시에 각각의 특수한 환경 및 조건에 따라 서로 상이한 프로그램 파라미터들을 이용하여 프로그램을 수행할 수 있다.
도 5는 도 4의 병합 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 낸드 플래시 메모리 장치는 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))으로 구성된 메모리 셀 어레이(120) 및 페이지 버퍼부(140)를 포함할 수 있다. 설명의 편의상, 낸드 플래시 메모리 장치의 다른 구성 요소는 도시를 생략하였다. 메모리 셀 어레이(120)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))은 각각 복수의 물리 페이지들을 포함할 수 있고, 페이지 버퍼부(140)는 페이지 데이터들(DATA) 및 수정하거나 변경되는 업데이트 페이지 데이터들(UPDATA)을 로딩하기 위한 복수의 페이지 버퍼들을 포함할 수 있다. 이 때, 메모리 셀 어레이(120)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))은 플래시 변환 계층(FTL)에 의하여 데이터 블록들, 로그 블록들 및 자유 블록들로 정의될 수 있다.
낸드 플래시 메모리 장치의 일반적인 프로그램 동작에서는, 외부로부터 페이지 단위의 데이터들 즉, 페이지 데이터들(DATA)이 입력되면, 이러한 페이지 데이터들(DATA)은 페이지 버퍼부(140) 내의 페이지 버퍼들에 로딩(PTA)된 후, 메모리 셀 어레이(120)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 선택된 데이터 블록(예를 들어, BLOCK(m-1))에 제 1 프로그램 방식으로 프로그램(PTB)될 수 있다. 상기 프로그램 과정에 의하여, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 페이지 데이터들(DATA)이 저장되어 있는 블록들은 데이터 블록으로 정의될 수 있다. 나아가, 외부로부터 업데이트 페이지 데이터들(UPDATA)이 입력되면, 이러한 업데이트 페이지 데이터들(UPDATA)도 페이지 버퍼부(140) 내의 페이지 버퍼들에 로딩(PTA)된 후, 메모리 셀 어레이(120)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 선택된 로그 블록 내에 제 1 프로그램 방식으로 프로그램(PTB)될 수 있다. 상기 프로그램 과정에 의하여, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 업데이트 페이지 데이터들(UPDATA)이 저장되어 있는 블록들은 로그 블록으로 정의될 수 있다. 한편, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)이 저장되어 있지 않은 블록들은 자유 블록으로 정의될 수 있다.
상술한 바와 같이, 하나의 데이터 블록 내에서 페이지 데이터들(DATA) 중에서 일부가 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되더라도, 낸드 플래시 메모리 장치가 덮어쓰기(overwrite) 기능을 제공하지 않으므로, 그들은 해당 데이터 블록으로부터 소거되지 않는다. 즉, 페이지 데이터들(DATA) 중에서 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되는 일부는 참조되지 않기 때문에 무효 페이지로 정의될 수 있고, 페이지 데이터들(DATA) 중에서 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되지 않은 다른 일부는 참조되기 때문에 유효 페이지로 정의될 수 있다. 따라서, 하나의 데이터 블록 내에는 유효 페이지와 무효 페이지가 병존할 수 있다. 마찬가지로, 업데이트 페이지 데이터들(UPDATA) 중에서도 다른 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되는 일부는 참조되지 않기 때문에 무효 페이지로 정의될 수 있고, 업데이트 페이지 데이터들(UPDATA) 중에서 다른 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되지 않은 다른 일부는 참조되기 때문에 유효 페이지로 정의될 수 있다. 따라서, 하나의 로그 블록 내에서도 유효 페이지와 무효 페이지가 병존할 수 있다.
낸드 플래시 메모리 장치는 여러 블록들(즉, 데이터 블록들 및/또는 이와 연계된 로그 블록들)에 분산되어 있는 유효 페이지들을 병합하고, 불필요한 무효 페이지들을 소거하여 자유 블록들을 확보하기 위한 블록 병합 동작을 주기적 또는 비주기적으로 수행할 수 있다. 이러한 블록 병합 동작에서는, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 병합 대상 블록들(예를 들어, BLOCK(m-1))로 선택된 데이터 블록들 및/또는 이와 연계된 로그 블록들로부터 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)이 페이지 버퍼부(140) 내의 페이지 버퍼들에 로딩(MTA)된 후, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 선택된 병합 수행 블록(예를 들어, BLOCK(n))에 제 2 프로그램 방식으로 프로그램(MTB)될 수 있다. 이 때, 블록 병합 동작 시의 제 2 프로그램 방식은 일반적인 프로그램 동작 시의 제 1 프로그램 방식과는 상이한 프로그램 파라미터들에 기초하여 결정될 수 있다. 일 실시예에서, 제 1 프로그램 방식은 쉐도우 프로그램 방식이고, 제 2 프로그램 방식은 리프로그램 방식일 수 있다.
도 6a는 도 1의 블록 병합 방법에서 일반적인 프로그램 동작이 쉐도우 프로그램 방식으로 수행되는 일 예를 나타내는 순서도이다.
도 6a를 참조하면, 쉐도우 프로그램 방식은 멀티 레벨 메모리 셀들에 대하여 LSB(least significant bit) 프로그램을 수행(Step S210)한 이후에, 멀티 레벨 메모리 셀들에 대하여 MSB(most significant bit) 프로그램을 수행(Step S220)할 수 있다.
종래에는 하나의 메모리 셀 당 하나의 비트를 저장(즉, SLC 방식)하였으나, 최근에는 하나의 메모리 셀 당 복수의 비트를 저장(즉, MLC 방식)함으로써, 낸드 플래시 메모리 장치는 소형화 및 고집적화를 달성하고 있다. 일반적으로, 하나의 멀티 레벨 메모리 셀에 N 비트가 저장되는 경우, 멀티 레벨 메모리 셀들은 각각 2^N 개로 세분화된 문턱 전압 상태 중에서 하나의 문턱 전압 상태를 가질 수 있다. 예를 들어, 하나의 멀티 레벨 메모리 셀에 2 비트가 저장되면, 멀티 레벨 메모리 셀들은 각각 4 개로 세분화된 문턱 전압 상태 중에서 하나의 문턱 전압 상태를 가질 수 있는데, 멀티 레벨 메모리 셀들이 가질 수 있는 문턱 전압 상태는 낮은 상태부터 '11', '10', '01' 및 '00' 비트 값에 상응할 수 있다. 즉, '00'의 비트 값에 상응하는 문턱 전압 상태를 갖는 멀티 레벨 메모리 셀들은 가장 높은 문턱 전압으로 프로그램된 멀티 레벨 메모리 셀들이고, '11'의 비트 값에 상응하는 문턱 전압 상태를 갖는 멀티 레벨 메모리 셀들은 소거된 채로 남아 있는 멀티 레벨 메모리 셀들일 수 있다.
도 1의 블록 병합 방법은, 낸드 플래시 메모리 장치의 일반적인 프로그램 동작에서 멀리 레벨 메모리 셀들에 페이지 데이터를 프로그램하기 위하여, 쉐도우 프로그램 방식을 제 1 프로그램 방식으로 설정할 수 있다. 쉐도우 프로그램 방식은 멀티 레벨 메모리 셀들에 대하여 LSB 프로그램을 먼저 수행한 이후에, 멀티 레벨 메모리 셀들에 대하여 MSB 프로그램을 수행할 수 있다. 구체적으로, 쉐도우 프로그램 방식은 LSB 프로그램을 수행함으로써 멀티 레벨 메모리 셀들을 각각 N 비트에 상응하는 이전 문턱 전압 상태 중에서 하나의 문턱 전압 상태를 갖도록 만들고, N 비트에 상응하는 이전 문턱 전압 상태에 기초하여 MSB 프로그램을 수행함으로써 멀티 레벨 메모리 셀들을 각각 N+1 비트에 상응하는 최종 문턱 전압 상태 중에서 하나의 문턱 전압 상태를 갖도록 만들 수 있다. 일반적으로, 쉐도우 프로그램 방식은 안정적인 문턱 전압 산포를 형성할 수 있어 낸드 플래시 메모리 장치의 일반적인 프로그램 동작에 적용될 수 있다.
도 6b는 도 6a의 쉐도우 프로그램 방식을 설명하기 위한 도면이다.
도 6b를 참조하면, 쉐도우 프로그램 방식에 의하여 멀티 레벨 메모리 셀들은 8개의 최종 문턱 전압 상태(S1, ..., S8) 중에서 하나의 문턱 전압 상태를 갖도록 각각 프로그램될 수 있다. 이 때, 제 1 최종 문턱 전압 상태(S1)는 가장 높은 문턱 전압으로 프로그램된 멀티 레벨 메모리 셀들이 갖는 문턱 전압 상태를 나타내고, 제 8 최종 문턱 전압 상태(S8)는 프로그램되지 않은 즉, 소거 상태된 채로 남아 있는 멀티 레벨 메모리 셀들이 갖는 문턱 전압 상태를 나타낸다. 도 6b에서는 멀티 레벨 메모리 셀들에 3비트의 데이터가 프로그램되는 것으로 도시되어 있으나 그에 한정되는 것은 아니다.
도 1의 블록 병합 방법은 낸드 플래시 메모리 장치의 일반적인 프로그램 동작에서 쉐도우 프로그램 방식을 제 1 프로그램 방식으로 설정할 수 있다. 먼저, 쉐도우 프로그램 방식은 LSB 프로그램을 수행함으로써 멀티 레벨 메모리 셀들을 각각 4개의 이전 문턱 전압 상태(PS1, ..., PS4) 중에서 하나의 문턱 전압 상태를 갖도록 만들 수 있다. 이 때, LSB 프로그램의 수행은 증가형 스텝 펄스 프로그램 방식에 기초하여 프로그램 및 검증을 반복하는 방식으로 이루어질 수 있는데, LSB 프로그램의 수행 시 검증은 제 1 내지 제 3 LSB 검증 전압(VL1, ..., VL3)에 기초하여 이루어질 수 있다. 이후, 쉐도우 프로그램 방식은 4개의 이전 문턱 전압 상태(PS1, ..., PS4)에 기초하여 MSB 프로그램을 수행함으로써 멀티 레벨 메모리 셀들을 각각 8개의 최종 문턱 전압 상태(S1, ..., S8) 중에서 하나의 문턱 전압 상태를 갖도록 만들 수 있다. 이 때, MSB 프로그램의 수행도 증가형 스텝 펄스 프로그램 방식에 기초하여 프로그램 및 검증을 반복하는 방식으로 이루어질 수 있는데, MSB 프로그램의 수행 시 검증은 제 1 내지 제 7 MSB 검증 전압(VM1, ..., VM7)에 기초하여 이루어질 수 있다.
도 7a는 도 1의 블록 병합 방법에서 블록 병합 동작이 리프로그램 방식으로 수행되는 일 예를 나타내는 순서도이다.
도 7a를 참조하면, 리프로그램 방식은 멀티 레벨 메모리 셀들에 대하여 프리프로그램을 수행(Step S310)한 이후에, 멀티 레벨 메모리 셀들에 대하여 재프로그램(Step S320)을 수행할 수 있다.
도 1의 블록 병합 방법은, 낸드 플래시 메모리 장치의 블록 병합 동작에서 멀리 레벨 메모리 셀들에 페이지 데이터를 프로그램하기 위하여, 리프로그램 방식을 제 2 프로그램 방식으로 설정할 수 있다. 리프로그램 방식은 멀티 레벨 메모리 셀들에 대하여 프리프로그램을 수행한 이후에, 멀티 레벨 메모리 셀들에 대하여 재프로그램을 수행할 수 있다. 구체적으로, 리프로그램 방식은 프리프로그램을 수행함으로써 멀티 레벨 메모리 셀들이 거친 문턱 전압 분포를 갖도록 만들고, 이러한 거친 문턱 전압 분포에 기초하여 재프로그램을 수행함으로써 멀티 레벨 메모리 셀들이 미세 문턱 전압 분포를 갖도록 만들 수 있다. 그 결과, 멀티 레벨 메모리 셀들이 갖는 문턱 전압 상태가 서로 중첩되지 않아, 멀티 레벨 메모리 셀들에 저장된 비트 값은 서로 명확하게 구분될 수 있다. 일반적으로, 리프로그램 방식은 속도가 빨라 낸드 플래시 메모리 장치의 블록 병합 동작에 적용될 수 있다.
도 7b는 도 7a의 리프로그램 방식을 설명하기 위한 도면이다.
도 7b를 참조하면, 리프로그램 방식에 의하여 멀티 레벨 메모리 셀들은 8개의 최종 문턱 전압 상태(S1, ..., S8) 중에서 하나의 문턱 전압 상태를 갖도록 각각 프로그램될 수 있다. 이 때, 제 1 최종 문턱 전압 상태(S1)는 가장 높은 문턱 전압으로 프로그램된 멀티 레벨 메모리 셀들이 갖는 문턱 전압 상태를 나타내고, 제 8 최종 문턱 전압 상태(S8)는 프로그램되지 않은 즉, 소거 상태된 채로 남아 있는 멀티 레벨 메모리 셀들이 갖는 문턱 전압 상태를 나타낸다. 도 7b에서는 멀티 레벨 메모리 셀들에 3비트의 데이터가 프로그램되는 것으로 도시되어 있으나 그에 한정되는 것은 아니다.
도 1의 블록 병합 방법은 낸드 플래시 메모리 장치의 블록 병합 동작에서 리프로그램 방식을 제 2 프로그램 방식으로 설정할 수 있다. 먼저, 리프로그램 방식은 상대적으로 낮은 제 1 내지 제 7 프리 검증 전압(VP1, ..., VP7)에 기초하여 프리프로그램을 수행함으로써 멀티 레벨 메모리 셀들을 각각 8개의 이전 문턱 전압 상태(PS1, ..., PS7) 중에서 하나의 문턱 전압 상태를 갖도록 만들 수 있다. 이 때, 프리프로그램의 수행은 증가형 스텝 펄스 프로그램 방식에 기초하여 프로그램 및 검증을 반복하는 방식으로 이루어질 수 있다. 이후, 리프로그램 방식은 상대적으로 높은 제 1 내지 제 7 최종 검증 전압(VR1, ..., VR7)에 기초하여 재프로그램을 수행함으로써 멀티 레벨 메모리 셀들을 각각 8개의 최종 문턱 전압 상태(S1, ..., S8) 중에서 하나의 문턱 전압 상태를 갖도록 만들 수 있다. 이 때, 재프로그램의 수행도 증가형 스텝 펄스 프로그램 방식에 기초하여 프로그램 및 검증을 반복하는 방식으로 이루어질 수 있다. 이 때, 프리프로그램을 수행할 때보다 재프로그램을 수행할 때, 멀티 레벨 메모리 셀들의 문턱 전압 산포는 상대적으로 덜 이동한다. 이와 같이, 리프로그램 방식은 커플링(coupling)에 의한 영향을 받기 전에, 상대적으로 낮은 제 1 내지 제 7 프리 검증 전압(VP1, ..., VP7)에 기초하여 프리프로그램을 수행하고, 커플링에 의한 영향을 받은 후에, 제 1 내지 제 7 최종 검증 전압(VR1, ..., VR7)에 기초하여 재프로그램을 수행함으로써, 멀티 레벨 메모리 셀들의 문턱 전압 산포를 크게 개선할 수 있다.
도 8은 도 1의 블록 병합 방법에서 병합 대상 데이터들이 병합 대상 블록들로부터 병합 수행 블록으로 프로그램되는 병합 과정의 다른 예를 나타내는 순서도이다.
도 8을 참조하면, 도 1의 블록 병합 방법은 병합 대상 블록들에 위치하는 병합 대상 데이터들을 병합 수행 블록으로 병합하기 위하여, 병합 대상 데이터들을 병합 대상 블록들로부터 페이지 버퍼부 및 싱글 레벨 메모리 셀 블록을 경유하여 병합 수행 블록으로 프로그램할 수 있다. 구체적으로, 도 1의 블록 병합 방법은 병합 대상 데이터들을 병합 대상 블록들로부터 페이지 버퍼부로 로딩(Step S143)한 후, 페이지 버퍼부에 로딩된 병합 대상 데이터들을 페이지 버퍼부로부터 싱글 레벨 메모리 셀 블록으로 로딩(Step S144)한다. 이후, 싱글 레벨 메모리 셀 블록에 로딩된 병합 대상 데이터들을 싱글 레벨 메모리 셀 블록으로부터 페이지 버퍼부로 로딩(Step S145)한 후, 페이지 버퍼부에 로딩된 병합 대상 데이터들을 병합 수행 블록으로 프로그램(Step S146)할 수 있다.
낸드 플래시 메모리 장치는 복수의 싱글 레벨 메모리 셀들 또는 복수의 멀티 레벨 메모리 셀들을 구비하는 메모리 셀 어레이 및 낸드 플래시 메모리 장치의 동작 모드에 기초하여 메모리 셀 어레이에 대한 기입 드라이버 또는 감지 증폭기로서 동작하는 페이지 버퍼부를 포함할 수 있다. 이러한 페이지 버퍼부는 복수의 페이지 버퍼들로 구성될 수 있다. 또한, 낸드 플래시 메모리 장치는 온칩 버퍼드 프로그램(on chip buffered program) 방식의 반도체 메모리 장치로서, 메모리 셀 어레이는 낸드 플래시 메모리 장치를 제어하는 메모리 컨트롤러 내에 일반적으로 포함되어 있는 버퍼(예를 들어, 에스램(SRAM) 버퍼)를 대체하는 싱글 레벨 메모리 셀 블록을 더 포함할 수 있다. 따라서, 낸드 플래시 메모리 장치는 버퍼가 포함되지 않은 메모리 컨트롤러와 연동하여 동작할 수 있다.
도 1의 블록 병합 방법에 의하면, 병합 대상 데이터들은 병합 대상 블록들로부터 페이지 버퍼부로 로딩(Step S143)될 수 있다. 이 때, 페이지 버퍼부는 메모리 셀 어레이에 대한 감지 증폭기로서 동작하며, 병합 대상 데이터들을 병합 대상 블록들로부터 독출하여 내부의 페이지 버퍼들로 로딩한다. 이후, 페이지 버퍼부에 로딩된 병합 대상 데이터들이 페이지 버퍼부로부터 싱글 레벨 메모리 셀 블록으로 로딩(Step S144)될 수 있고, 싱글 레벨 메모리 셀 블록에 로딩된 병합 대상 데이터들은 싱글 레벨 메모리 셀 블록으로부터 다시 페이지 버퍼부로 로딩(Step S145)될 수 있다. 이 때, 페이지 버퍼부의 최소 프로그램 단위와 싱글 레벨 메모리 셀 블록의 최소 프로그램 단위는 서로 상이하다. 일 실시예에서, 페이지 버퍼부의 최소 프로그램 단위가 싱글 레벨 메모리 셀 블록의 최소 프로그램 단위보다 상대적으로 클 수 있다. 이후, 페이지 버퍼부에 로딩된 병합 대상 데이터들이 병합 수행 블록으로 프로그램(Step S146)될 수 있다. 이 때, 페이지 버퍼부는 메모리 셀 어레이에 대한 기입 드라이버로서 동작하며, 로우 디코더가 전압 생성기에서 출력되는 워드라인 전압들(예를 들어, 프로그램 전압 및 패스 전압)을 워드 라인들에 인가하면, 로딩된 병합 대상 데이터들을 병합 수행 블록으로 프로그램한다. 일 실시예에서, 메모리 셀 어레이에 포함되는 메모리 셀들이 멀티 레벨 메모리 셀들인 경우, 도 1의 블록 병합 방법은 증가형 스텝 펄스 프로그램 방식을 채용한 제 2 프로그램 방식에 기초하여 수행될 수 있다.
상술한 바와 같이, 도 1의 블록 병합 방법은 외부로부터 입력되는 페이지 데이터들을 페이지 버퍼부로 로딩하고, 페이지 버퍼부에 로딩된 페이지 데이터들을 싱글 레벨 메모리 셀 블록으로 로딩하며, 싱글 레벨 메모리 셀 블록에 로딩된 페이지 데이터들을 다시 페이지 버퍼부로 로딩하여 대상 블록으로 프로그램하는 반도체 메모리 장치의 일반적인 프로그램 동작에서 제 1 프로그램 방식을 이용하고, 병합 대상 블록들로부터 병합 대상 데이터들을 페이지 버퍼부로 로딩하고, 페이지 버퍼부에 로딩된 병합 대상 데이터들을 싱글 레벨 메모리 셀 블록으로 로딩하며, 싱글 레벨 메모리 셀 블록에 로딩된 병합 대상 데이터들을 다시 페이지 버퍼부로 로딩하여 병합 수행 블록으로 프로그램하는 블록 병합 동작에서 제 1 프로그램 방식과는 상이한 제 2 프로그램 방식을 이용할 수 있다. 이 때, 제 1 프로그램 방식과 제 2 프로그램 방식의 선택은 증가형 스텝 펄스 프로그램 조건, 검증 리드 전압, 센싱 스킴 등과 같은 프로그램 파라미터들을 서로 상이하게 설정하는 형태로 이루어질 수 있다. 일 실시예에서, 제 1 프로그램 방식은 상대적으로 낮은 전압 레벨의 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식이고, 제 2 프로그램 방식은 상대적으로 높은 전압 레벨의 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있다. 이와 같이, 도 1의 블록 병합 방법은 일반적인 프로그램 동작 시와 블록 병합 동작 시에 각각의 특수한 환경 및 조건에 따라 서로 상이한 프로그램 파라미터들을 이용하여 프로그램을 수행할 수 있다.
도 9는 도 8의 병합 과정을 설명하기 위한 도면이다.
도 9를 참조하면, 낸드 플래시 메모리 장치는 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 및 싱글 레벨 메모리 셀 블록(SLC BLOCK)으로 구성된 메모리 셀 어레이(220)와 페이지 버퍼부(240)를 포함할 수 있다. 설명의 편의상, 낸드 플래시 메모리 장치의 다른 구성 요소는 도시를 생략하였다. 메모리 셀 어레이(220)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))은 각각 복수의 물리 페이지들을 포함할 수 있고, 페이지 버퍼부(240)는 페이지 데이터들(DATA) 및 수정하거나 변경되는 업데이트 페이지 데이터들(UPDATA)을 로딩하기 위한 복수의 페이지 버퍼들을 포함할 수 있다. 또한, 메모리 셀 어레이(220)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))은 복수의 멀티 레벨 메모리 셀들을 포함할 수 있다. 이 때, 메모리 셀 어레이(220)의 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))은 플래시 변환 계층(FTL)에 의하여 데이터 블록들, 로그 블록들 및 자유 블록들로 정의될 수 있다.
낸드 플래시 메모리 장치는 온칩 버퍼드 프로그램 방식으로 일반적인 프로그램 동작 및 블록 병합 동작을 수행할 수 있다. 이를 위하여, 메모리 셀 어레이(220)는 멀티 레벨 메모리 셀들을 포함하는 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 및 싱글 레벨 메모리 셀들을 포함하는 싱글 레벨 메모리 셀 블록(SLC BLOCK)을 포함할 수 있다. 싱글 레벨 메모리 셀 블록(SLC BLOCK)은 고속으로 동작하고 저집적도로 제조되는 블록으로서, 싱글 레벨 메모리 셀들을 포함하여 하나의 메모리 셀당 하나의 비트를 저장하게 할 수 있다. 반면에, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m))은 저속으로 동작하고 고집적도로 제조되는 블록으로서, 멀티 레벨 메모리 셀들을 포함하여 하나의 메모리 셀당 복수의 비트를 저장하게 할 수 있다. 상술한 바와 같이, 온칩 버퍼드 프로그램 방식을 채용한 낸드 플래시 메모리 장치는 메모리 컨트롤러 내부의 버퍼 역할을 메모리 셀 어레이(220)의 싱글 레벨 메모리 셀 블록(SLC BLOCK)이 수행하도록 할 수 있다.
온칩 버퍼드 프로그램 방식을 채용한 낸드 플래시 메모리 장치의 일반적인 프로그램 동작에서는, 외부로부터 페이지 단위의 데이터들 즉, 페이지 데이터들(DATA)이 입력되면, 최소 프로그램 단위의 페이지 데이터들(DATA)은 페이지 버퍼부(240) 내의 페이지 버퍼들에 로딩(PTA)된 후, 메모리 셀 어레이(220)의 싱글 레벨 메모리 셀 블록(SLC BLOCK)으로 로딩(PTB)될 수 있다. 일 실시예에서, 외부로부터 입력되는 페이지 데이터들(DATA)에 대하여 인터리브 동작이 수행되고, 인터리브 동작이 수행된 최소 프로그램 단위의 페이지 데이터들(DATA)이 페이지 버퍼부(240) 내의 페이지 버퍼들에 로딩(PTA)된 후, 메모리 셀 어레이(220)의 싱글 레벨 메모리 셀 블록(SLC BLOCK)으로 로딩(PTB)될 수 있다. 이 때, 최소 프로그램 단위는 요구되는 조건(예를 들어, 프로그램 방식, 셀당 비트 수, 인터리브 여부 등)에 따라 다양하게 설정될 수 있다. 예를 들어, 인터리브 동작이 수행되지 않는 경우에 최소 프로그램 단위는 하나의 페이지 데이터(DATA)에 상응할 수 있다.
싱글 레벨 메모리 셀 블록(SLC BLOCK)에 페이지 데이터들(DATA)이 로딩되면, 싱글 레벨 메모리 셀 블록(SLC BLOCK)에 로딩된 페이지 데이터들(DATA)은 페이지 버퍼부(240) 내의 페이지 버퍼들에 로딩(PTC)될 수 있다. 이 때, 페이지 버퍼부(240)의 최소 프로그램 단위는 싱글 레벨 메모리 셀 블록(SLC BLOCK)의 최소 프로그램 단위보다 상대적으로 클 수 있다. 이후, 페이지 버퍼부(240)에 로딩된 페이지 데이터들(DATA)은 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 선택된 데이터 블록(예를 들어, BLOCK(m-1))에 제 1 프로그램 방식으로 프로그램(PTD)될 수 있다. 상기 프로그램 과정에 의하여, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 페이지 데이터들(DATA)이 저장되어 있는 블록들은 데이터 블록으로 정의될 수 있다. 나아가, 외부로부터 업데이트 페이지 데이터들(UPDATA)이 입력되면, 이러한 업데이트 페이지 데이터들(UPDATA)도 상기와 같은 방식으로 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 선택된 로그 블록에 제 1 프로그램 방식으로 프로그램될 수 있다. 상기 프로그램 과정에 의하여, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 업데이트 페이지 데이터들(UPDATA)이 저장되어 있는 블록들은 로그 블록으로 정의될 수 있다. 한편, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)이 저장되어 있지 않은 블록들은 자유 블록으로 정의될 수 있다.
상술한 바와 같이, 하나의 데이터 블록 내에서 페이지 데이터들(DATA) 중에서 일부가 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되더라도, 낸드 플래시 메모리 장치가 덮어쓰기(overwrite) 기능을 제공하지 않으므로, 그들은 해당 데이터 블록들로부터 소거되지 않는다. 즉, 페이지 데이터들(DATA) 중에서 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되는 일부는 참조되지 않기 때문에 무효 페이지로 정의될 수 있고, 페이지 데이터들(DATA) 중에서 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되지 않은 다른 일부는 참조되기 때문에 유효 페이지로 정의될 수 있다. 따라서, 하나의 데이터 블록 내에는 유효 페이지와 무효 페이지가 병존할 수 있다. 마찬가지로, 업데이트 페이지 데이터들(UPDATA) 중에서도 다른 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되는 일부는 참조되지 않기 때문에 무효 페이지로 정의될 수 있고, 업데이트 페이지 데이터들(UPDATA) 중에서 다른 업데이트 페이지 데이터들(UPDATA)에 의하여 수정하거나 변경되지 않은 다른 일부는 참조되기 때문에 유효 페이지로 정의될 수 있다. 따라서, 하나의 로그 블록 내에서도 유효 페이지와 무효 페이지가 병존할 수 있다.
온칩 버퍼드 프로그램 방식을 채용한 낸드 플래시 메모리 장치는 여러 블록들(즉, 데이터 블록들 및/또는 이와 연계된 로그 블록들)에 분산되어 있는 유효 페이지들을 병합하고, 불필요한 무효 페이지들을 소거하여 자유 블록들을 확보하기 위한 블록 병합 동작을 주기적 또는 비주기적으로 수행할 수 있다. 이러한 블록 병합 동작에서는, 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 병합 대상 블록들(예를 들어, BLOCK(m-1))로 선택된 데이터 블록들 및/또는 이와 연계된 로그 블록들로부터 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)이 페이지 버퍼부(240) 내의 페이지 버퍼들에 로딩(MTA)되고, 페이지 버퍼부(240)에 로딩된 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)은 싱글 레벨 메모리 셀 블록(SLC BLOCK)에 로딩(MTB)될 수 있다. 이후, 싱글 레벨 메모리 셀 블록(SLC BLOCK)에 로딩된 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)은 페이지 버퍼부(240)의 페이지 버퍼들에 다시 로딩(MTC)되고, 페이지 버퍼부(240)에 로딩된 페이지 데이터들(DATA) 및 업데이트 페이지 데이터들(UPDATA)은 제 1 내지 제 m 블록(BLOCK(1), ..., BLOCK(m)) 중에서 선택된 병합 수행 블록(예를 들어, BLOCK(n))에 제 2 프로그램 방식으로 프로그램(MTD)될 수 있다. 이 때, 블록 병합 동작 시의 제 2 프로그램 방식은 일반적인 프로그램 동작 시의 제 1 프로그램 방식과는 상이한 프로그램 파라미터들에 기초하여 결정될 수 있다. 일 실시예에서, 제 1 프로그램 방식은 상대적으로 낮은 전압 레벨의 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식이고, 제 2 프로그램 방식은 상대적으로 높은 전압 레벨의 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있다.
도 10은 본 발명의 실시예들에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 10을 참조하면, 반도체 메모리 장치(300)는 메모리 셀 어레이(310), 페이지 버퍼부(320), 로우 디코더(330), 전압 생성기(340) 및 프로그램 제어기(350)를 포함할 수 있다. 실시예에 따라, 반도체 메모리 장치(300)는 증가형 스텝 펄스 프로그램에서의 문턱 전압 상태를 검증하기 위한 패스-패일 검출기를 더 포함할 수 있다. 도 10에서는 반도체 메모리 장치(300)를 낸드 플래시 메모리 장치로 설명하였지만, 본 발명은 그에 한정되는 것이 아니다. 따라서, 반도체 메모리 장치(300)는 페이지 단위의 데이터를 메모리 셀 어레이에 프로그램할 수 있는 반도체 메모리 장치(300)로 해석되어야 한다.
메모리 셀 어레이(310)는 워드 라인들 및 비트 라인들에 연결된 복수의 메모리 셀들을 포함할 수 있다. 일 실시예에서, 메모리 셀들은 각각 복수의 비트를 저장할 수 있는 멀티 레벨 메모리 셀일 수 있다. 메모리 셀 어레이(310) 내부의 메모리 셀들은 반도체 메모리 장치(300)의 일반적인 프로그램 동작에서 제 1 프로그램 방식으로 프로그램될 수 있고, 반도체 메모리 장치(300)의 블록 병합 동작에서는 제 1 프로그램 방식과는 상이한 제 2 프로그램 방식으로 프로그램될 수 있다. 즉, 제 1 프로그램 방식과 제 2 프로그램 방식은 증가형 스텝 펄스 프로그램 조건, 검증 리드 전압, 센싱 스킴 등과 같은 프로그램 파라미터들이 서로 상이할 수 있다. 일 실시예에서, 제 1 프로그램 방식은 쉐도우 프로그램 방식일 수 있고, 제 2 프로그램 방식은 리프로그램 방식일 수 있다. 다른 실시예에서, 제 1 프로그램 방식은 상대적으로 낮은 전압 레벨의 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있고, 제 2 프로그램 방식은 상대적으로 높은 전압 레벨의 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있다.
페이지 버퍼부(320)는 반도체 메모리 장치(300)의 동작 모드에 기초하여 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 페이지 버퍼부(320)는 외부로부터 입력되는 페이지 데이터를 로딩하거나 또는 병합 대상 블록들로부터 유효 페이지에 상응하는 페이지 데이터를 로딩하기 위한 복수의 페이지 버퍼들(321)을 포함할 수 있다. 페이지 버퍼부(320) 내의 페이지 버퍼들(321) 각각은 비트 라인들에 연결되는 복수의 데이터 래치들을 포함할 수 있다. 구체적으로, 페이지 버퍼부(320)는 반도체 메모리 장치(300)의 독출 동작 모드에서 감지 증폭기로서 동작할 수 있고, 반도체 메모리 장치(300)의 기입 동작 모드에서 기입 드라이버로서 동작할 수 있으며, 반도체 메모리 장치(300)의 블록 병합 동작 모드에서는 감지 증폭기 및 기입 드라이버로서 동작할 수 있다. 실시예에 따라, 페이지 버퍼부(320)는 비트 라인들을 선택하기 위한 컬럼 디코더의 기능을 수행할 수 있고, 반도체 메모리 장치(300)가 증가형 펄스 스텝 프로그램 방식을 채용하는 경우에는 문턱 전압을 검증하기 위한 패스-패일 검출기의 기능도 수행할 수 있다.
로우 디코더(330)는 로우 어드레스(row address)에 기초하여 전압 생성기(340)로부터 제공되는 워드 라인 전압들(WLV)을 워드 라인들에 인가할 수 있다. 구체적으로, 로우 디코더(330)는 전압 생성기(340)로부터 제공되는 프로그램 전압, 패스 전압, 검증 전압, 독출 전압 등과 같은 워드 라인 전압들(WLV)을 워드 라인들에 인가할 수 있다. 예를 들어, 로우 디코더(330)는 반도체 메모리 장치(300)의 기입 동작 모드에서 선택된 워드 라인에 프로그램 전압을 인가하고 비선택된 워드 라인들에는 패스 전압을 인가할 수 있고, 증가형 펄스 스텝 프로그램 방식에서는 검증 시에 워드 라인들에 검증 전압을 인가할 수 있다. 또한, 로우 디코더(330)는 반도체 메모리 장치(300)의 독출 동작 모드에서 워드 라인들에 독출 전압을 인가할 수 있다. 한편, 반도체 메모리 장치(300)의 블록 병합 모드는 독출 동작 모드, 기입 동작 모드 및 소거 동작 모드가 연속적으로 조합되어 있는 모드이므로, 로우 디코더(330)는 반도체 메모리 장치(300)의 블록 병합 모드의 일부로서 조합된 독출 동작 모드, 기입 동작 모드 및 소거 동작 모드에 따라 각각 요구되는 워드 라인 전압들(WLV)을 워드 라인들에 인가할 수 있다.
전압 생성기(340)는 반도체 메모리 장치(300)의 동작 모드에 기초하여 워드 라인들에 인가될 워드 라인 전압들(WLV)을 생성할 수 있다. 구체적으로, 전압 생성기(340)는 프로그램 제어기(350)에서 출력되는 제어 신호들(CTL2)에 기초하여 프로그램 전압, 패스 전압, 검증 전압, 독출 전압 등과 같은 워드 라인 전압들(WLV)을 생성할 수 있다. 예를 들어, 전압 생성기(340)는 반도체 메모리 장치(300)의 기입 동작 모드에서 프로그램 전압, 패스 전압 및/또는 검증 전압을 생성할 수 있고, 반도체 메모리 장치(300)의 독출 동작 모드에서 독출 전압을 생성할 수 있다. 한편, 반도체 메모리 장치(300)의 블록 병합 모드는 독출 동작 모드, 기입 동작 모드 및 소거 동작 모드가 연속적으로 조합되어 있는 모드이지만, 일반적인 기입 동작 모드에서의 프로그램 방식과 블록 병합 모드의 일부로서의 기입 동작 모드에서의 프로그램 방식은 서로 상이할 수 있다. 따라서, 전압 생성기(340)는 제어 신호들(CTL2)에 기초하여 일반적인 기입 동작 모드에서의 워드 라인 전압들(WLV)과 블록 병합 모드의 일부로서의 기입 동작 모드에서의 워드 라인 전압들(WLV)을 서로 상이하게 생성할 수 있다.
프로그램 제어기(350)는 반도체 메모리 장치(300)의 동작 모드에 따라 프로그램 방식을 전환하고, 페이지 버퍼부(320), 전압 생성기(330) 및 로우 디코더(330)에 제어 신호들(CTL1, CTL2, CLT3)을 출력함으로써 이들을 제어할 수 있다. 상술한 바와 같이, 반도체 메모리 장치(300)의 블록 병합 모드는 독출 동작 모드, 기입 동작 모드 및 소거 동작 모드가 연속적으로 조합되어 있는 모드이지만, 반도체 메모리 장치(300)는 일반적인 기입 동작 모드에서는 제 1 프로그램 방식으로 메모리 셀들을 프로그램하고, 블록 병합 모드의 일부로서의 기입 동작 모드에서는 제 2 프로그램 방식으로 메모리 셀들을 프로그램할 수 있다. 즉, 반도체 메모리 장치(300)는 일반적인 기입 동작 모드와 블록 병합 모드의 일부로서의 기입 동작 모드의 증가형 스텝 펄스 프로그램 조건, 검증 리드 전압, 센싱 스킴 등과 같은 프로그램 파라미터들을 서로 상이하게 설정할 수 있다. 이를 위하여, 프로그램 제어기는 페이지 버퍼부(320), 전압 생성기(330) 및 로우 디코더(330)에 제어 신호들(CTL1, CTL2, CTL3)을 출력하여 프로그램 파라미터들을 제어함으로써, 반도체 메모리 장치(300)의 동작 모드에 따라 프로그램 방식을 전환할 수 있다.
도 11은 도 10의 반도체 메모리 장치에 구비되는 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 11을 참조하면, 메모리 셀 어레이(310)는 스트링 선택 트랜지스터들(311), 접지 선택 트랜지스터들(312) 및 메모리 셀들(313)을 포함할 수 있다. 실시예에 따라, 메모리 셀들(313)은 2차원 어레이(array) 구조로 배열될 수 있고, 3차원 수직 어레이 구조로 배열될 수도 있다.
스트링 선택 트랜지스터들(311)은 비트 라인들(BL(1), ..., BL(m))에 연결되고, 접지 선택 트랜지스터들(312)은 공통 소스 라인(CSL)에 연결될 수 있다. 스트링 선택 트랜지스터들(311)과 접지 선택 트랜지스터들(312) 사이에는 메모리 셀들(313)이 직렬로 연결될 수 있다. 동일한 행에 배열된 메모리 셀들(313)은 워드 라인(WL(1), ..., WL(n))에 각각 공통으로 연결될 수 있다. 예를 들어, 스트링 선택 라인(SSL)과 접지 선택 라인(GSL) 사이에는 16개, 32개 또는 64개의 복수의 워드 라인들이 배열될 수 있다. 스트링 선택 트랜지스터들(311)은 스트링 선택 라인(SSL)에 연결되어, 스트링 선택 라인(SSL)으로부터 인가되는 전압에 의하여 제어될 수 있고, 접지 선택 트랜지스터들(312)은 접지 선택 라인(GSL)에 연결되어, 접지 선택 라인(GSL)으로부터 인가되는 전압에 의하여 제어될 수 있다. 메모리 셀들(313)은 워드 라인들(WL(1), ..., WL(n))로부터 인가되는 전압에 의하여 제어될 수 있다. 일 실시예에서, 메모리 셀들(313)이 멀티 레벨 메모리 셀들인 경우, 메모리 셀들(313)에는 복수의 비트가 저장될 수 있다. 한편, 페이지 버퍼부(320) 내의 페이지 버퍼들(321)은 각각 짝수 비트 라인과 홀수 비트 라인이 하나씩 연결될 수 있다. 이 경우, 짝수 비트 라인들은 짝수 페이지를 형성하고, 홀수 비트 라인들은 홀수 페이지를 형성하며, 메모리 셀들(313)에 대한 프로그램은 짝수 페이지와 홀수 페이지가 번갈아가며 순차적으로 수행될 수 있다. 상술한 바와 같이, 반도체 메모리 장치(300)는 일반적인 프로그램 동작 시의 제 1 프로그램 방식과 블록 병합 동작 시의 제 2 프로그램 방식을 서로 상이하게 설정할 수 있고, 이러한 프로그램 방식의 설정은 반도체 메모리 장치(300)의 프로그램 제어기(350)가 증가형 스텝 펄스 프로그램 조건, 검증 리드 전압, 센싱 스킴 등과 같은 프로그램 파라미터들 변경함으로써 이루어질 수 있다.
도 12는 도 10의 반도체 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 12를 참조하면, 메모리 시스템(500)은 반도체 메모리 장치(520) 및 메모리 컨트롤러(540)를 포함할 수 있다.
반도체 메모리 장치(520)는 도 10에 도시된 메모리 셀 어레이(310), 페이지 버퍼부(320), 로우 디코더(330), 전압 생성기(340) 및 프로그램 제어기(350)를 포함할 수 있다. 실시예에 따라, 반도체 메모리 장치(520)는 증가형 스텝 펄스 프로그램에서의 문턱 전압 상태를 검증하기 위한 패스-패일 검출기를 더 포함할 수 있다. 반도체 메모리 장치(520)는 낸드 플래시 메모리 장치일 수 있지만 그에 한정되는 것은 아니다. 상술한 바와 같이, 반도체 메모리 장치(520)는 일반적인 기입 동작 모드에서는 제 1 프로그램 방식으로 메모리 셀들을 프로그램하고, 블록 병합 모드의 일부로서의 기입 동작 모드에서는 제 2 프로그램 방식으로 메모리 셀들을 프로그램할 수 있다. 즉, 반도체 메모리 장치(520)는 일반적인 기입 동작 모드와 블록 병합 모드의 일부로서의 기입 동작 모드의 증가형 스텝 펄스 프로그램 조건, 검증 리드 전압, 센싱 스킴 등과 같은 프로그램 파라미터들을 서로 상이하게 설정할 수 있다. 일 실시예에서, 제 1 프로그램 방식은 쉐도우 프로그램 방식이고, 제 2 프로그램 방식은 리프로그램 방식일 수 있다. 다른 실시예에서, 제 1 프로그램 방식은 상대적으로 낮은 전압 레벨의 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식이고, 제 2 프로그램 방식은 상대적으로 높은 전압 레벨의 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식일 수 있다. 다만, 이에 대해서는 상술한 바 있으므로, 중복되는 설명은 생략하기로 한다.
메모리 컨트롤러(540)는 중앙 처리부(541), 메모리부(542), 호스트 인터페이스(543) 및 메모리 인터페이스(544)를 포함할 수 있다. 메모리 컨트롤러(540)는 반도체 메모리 장치(520)를 제어할 수 있고, 외부의 호스트장치와 반도체 메모리 장치(520) 사이의 데이터 송수신을 수행할 수 있다. 중앙 처리부(541)는 데이터 송수신을 위하여 메모리부(542), 호스트 인터페이스(543) 및 메모리 인터페이스(544)를 제어할 수 있다. 메모리부(542)는 호스트 장치로부터 제공되는 데이터 또는 반도체 메모리 장치(520)로부터 제공되는 데이터를 일시적으로 저장할 수 있다. 실시예에 따라, 메모리부(542)는 디램(Dynamic Random Access Memory; DRAM), 에스램(Static Random Access Memory; SRAM), 피램(Phase Random Access Memory; PRAM), 에프램(Ferroelectric Random Access Memory; FRAM), 알램(Resistive Random Access Memory; RRAM) 및/또는 엠램(Magnetic Random Access Memory; MRAM)으로 구현될 수 있다. 호스트 인터페이스(543)는 호스트 장치와 연결되어 통신을 수행하고, 메모리 인터페이스(544)는 반도체 메모리 장치(520)와 연결되어 통신을 수행할 수 있다. 나아가, 중앙 처리부(541)는 메모리 인터페이스(544)를 통하여 반도체 메모리 장치(520)를 제어할 수도 있다.
실시예에 따라, 호스트 인터페이스(543)는 호스트 장치와 범용 직렬 버스(USB), 멀티미디어 카드(MMC), 피씨아이(PCI), 피씨아이-익스프레스(PCI-Express), 에이티에이(ATA), 직렬-에이티에이(S-ATA), 병렬-에이티에이(P-ATA), 스카시(SCSI), 이에스디아이(ESDI), 에스에이에스(SAS) 및 아이디이(IDE) 등과 같은 표준 프로토콜을 이용하여 데이터 통신을 수행할 수 있다. 메모리 인터페이스(544)는 반도체 메모리 장치(520)와 낸드 인터페이스 프로토콜 등과 같은 표준 프로토콜을 이용하여 데이터 통신을 수행할 수 있다. 한편, 메모리 컨트롤러(540)는 반도체 메모리 장치들(520)에 빌트 인(built-in)되어 구현될 수 있는데, 메모리 컨트롤러(540)가 빌트 인되어 구현된 반도체 메모리 장치(520)를 소위 원낸드 메모리 장치(One-NAND memory device)라 명명할 수 있다.
메모리 시스템(500)은 메모리 카드(memory card), 솔리드 스테이트 드라이브(solid state drive) 등과 같은 형태로 구현될 수 있다. 메모리 시스템(500)은 다양한 형태들의 패키지를 이용하여 구현될 수 있는데, 예를 들어, 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) 등과 같은 패키지를 이용하여 구현될 수 있다.
도 13은 도 12의 메모리 시스템이 동작하는 소프트웨어 구조를 나타내는 블록도이다.
도 13을 참조하면, 메모리 시스템(500)이 동작하는 소프트웨어 구조(400)는 어플리케이션(410), 파일 시스템(420), 플래시 변환 계층(430) 및 낸드 플래시 메모리 장치(440)를 포함할 수 있다. 도 13에서는 낸드 플래시 메모리 장치(440)가 도시되었지만, 본 발명은 낸드 플래시 메모리 장치(440)로 한정되지 않고, 페이지 단위로 메모리 셀들에 프로그램을 수행할 수 있는 다양한 반도체 메모리 장치에 적용될 수 있다.
메모리 시스템(500)이 동작하는 소프트웨어 구조(400)는 어플리케이션(410), 파일 시스템(420), 플래시 변환 계층(430) 및 플래시 메모리 장치(440) 순으로 이루어진 계층 구조(hierarchical structure)를 가질 수 있다. 구체적으로, 어플리케이션(410)이 각각의 동작에 요구되는 커맨드(CMD)를 파일 시스템(420)으로 출력하면, 파일 시스템(420)은 이러한 커맨드(CMD)에 기초하여 낸드 플래시 메모리 장치(440)의 각각의 메모리 셀들에 접근하기 위한 논리적 어드레스(LA)를 출력할 수 있다. 플래시 변환 계층(430)은 파일 시스템(420)으로부터 논리적 어드레스(LA)를 입력받고, 내부에 구비된 어드레스 맵핑 테이블(address mapping table)에 기초하여 논리적 어드레스(LA)를 물리적 어드레스(PA)로 변환하며, 물리적 어드레스(PA)를 낸드 플래시 메모리 장치(440)에 제공할 수 있다. 일 실시예에서, 어드레스 맵핑 테이블은 논리 블록 번호를 물리 블록 번호로 변환하기 위한 블록 맵핑 테이블 및/또는 논리 페이지 번호를 물리 페이지 번호로 변환하기 위한 페이지 맵핑 테이블을 포함할 수 있다. 낸드 플래시 메모리 장치(440)는 플래시 변환 계층(430)으로부터 제공되는 물리적 어드레스(PA)에 기초하여 각각의 메모리 셀들에 직접 접근할 수 있다. 플래시 변환 계층(430)의 어드레스 맵핑 방식은 맵핑 단위에 따라 다양하게 구분될 수 있다. 예를 들어, 플래시 변환 계층(430)의 어드레스 맵핑 방식은 페이지 단위로 어드레스 맵핑을 수행하는 페이지 맵핑 방식, 블록 단위로 어드레스 맵핑을 수행하는 블록 맵핑 방식 및 페이지 맵핑 방식과 블록 맵핑 방식을 혼용하는 혼합 맵핑 방식으로 구분될 수 있다.
도 14는 도 12의 메모리 시스템이 구현되는 일 예를 나타내는 블록도이다.
도 14를 참조하면, 메모리 시스템(600)은 호스트 장치(620), 메모리 컨트롤러(630) 및 적어도 하나 이상의 낸드 플래시 메모리 장치들(640)을 포함할 수 있다.
메모리 시스템(600)에서 호스트 장치(620)와 적어도 하나 이상의 낸드 플래시 메모리 장치들(640) 사이에 메모리 컨트롤러(630)가 위치한다. 일 실시예에서, 적어도 하나 이상의 낸드 플래시 메모리 장치들(640)은 단일 채널 또는 멀티 채널을 구성할 수 있다. 메모리 컨트롤러(630)는 호스트 장치(620) 및 적어도 하나 이상의 낸드 플래시 메모리 장치들(640)과 물리적으로 분리되어 구현되기 때문에, 메모리 컨트롤러(630)는 도 12에 도시된 중앙 처리부(541), 메모리부(542), 호스트 인터페이스(543) 및 메모리 인터페이스(544)를 포함할 수 있다. 일 실시예에서, 호스트 인터페이스(543)가 호스트 장치(620)와 범용 직렬 버스(USB), 멀티미디어 카드(MMC), 피씨아이(PCI), 피씨아이-익스프레스(PCI-Express), 에이티에이(ATA), 직렬-에이티에이(S-ATA), 병렬-에이티에이(P-ATA), 스카시(SCSI), 이에스디아이(ESDI), 에스에이에스(SAS) 및 아이디이(IDE) 등과 같은 표준 프로토콜을 이용하여 인터액션(interaction)을 수행할 수 있고, 메모리 인터페이스(544)가 적어도 하나 이상의 낸드 플래시 메모리 장치들(640)과 낸드 인터페이스 프로토콜을 이용하여 인터액션을 수행할 수 있다. 이러한 구현 형태는, 메모리 컨트롤러(630)가 호스트 인터페이스(543)를 이용하여 호스트 장치(620)에 의하여 이미 지원되는 표준 프로토콜을 사용하고, 메모리 인터페이스(544)를 이용하여 적어도 하나 이상의 낸드 플래시 메모리 장치들(640)에 의하여 이미 지원되는 표준 프로토콜을 사용하기 때문에 범용적이라는 장점이 있다.
도 15는 도 12의 메모리 시스템이 구현되는 다른 예를 나타내는 블록도이다.
도 15를 참조하면, 메모리 시스템(700)은 메모리 컨트롤러(730)가 빌트 인되어 구현된 호스트 장치(720) 및 적어도 하나 이상의 낸드 플래시 메모리 장치들(740)을 포함할 수 있다.
메모리 시스템(700)에서 메모리 컨트롤러(730)는 호스트 장치(720)에 위치한다. 일 실시예에서, 적어도 하나 이상의 낸드 플래시 메모리 장치들(740)은 단일 채널 또는 멀티 채널을 구성할 수 있다. 메모리 컨트롤러(730)는 호스트 장치(720)에 빌트 인되어 구현되기 때문에, 도 12의 호스트 인터페이스(543)가 구비되지 않거나, 또는 독자적인 프로토콜을 이용하여 인터액션을 수행할 수 있다. 나아가, 메모리 컨트롤러(730)가 도 12의 중앙 처리부(541)를 구비하지 않는 경우, 호스트 장치(720)의 호스트 프로세서에 의하여 해당 기능이 수행될 수 있다. 일 실시예에서, 호스트 인터페이스(543)가 호스트 장치(720)의 내부에서 독자적인 프로토콜을 이용하여 인터액션을 수행할 수 있고, 메모리 인터페이스(544)가 적어도 하나 이상의 낸드 플래시 메모리 장치들(740)과 낸드 인터페이스 프로토콜을 이용하여 인터액션을 수행할 수 있다. 이러한 구현 형태는, 메모리 컨트롤러(730)가 호스트 장치(720)와의 관계에서 이미 지원되는 표준 프로토콜보다 메모리 시스템(700)에 적합한 독자적인 프로토콜을 사용할 수 있고, 호스트 장치(720) 내부에서 인터액션이 수행되기 때문에 고속 동작이 가능하다는 장점이 있다.
도 16은 도 12의 메모리 시스템이 구현되는 또 다른 예를 나타내는 블록도이다.
도 16을 참조하면, 메모리 시스템(800)은 호스트 장치(820) 및 메모리 컨트롤러(830)가 빌트 인되어 각각 구현된 적어도 하나 이상의 낸드 플래시 메모리 장치들(840)을 포함할 수 있다.
메모리 시스템(800)에서 메모리 컨트롤러(830)는 적어도 하나 이상의 플래시 메모리 장치들(840)에 각각 위치한다. 일 실시예에서, 적어도 하나 이상의 낸드 플래시 메모리 장치들(840)은 단일 채널 또는 멀티 채널을 구성할 수 있다. 메모리 컨트롤러(830)는 적어도 하나 이상의 플래시 메모리 장치들(840)에 각각 빌트 인되어 구현되기 때문에, 도 12의 메모리 인터페이스(544)가 구비되지 않거나, 또는 독자적인 프로토콜을 이용하여 인터액션을 수행할 수 있다. 나아가, 메모리 컨트롤러(830)의 중앙 처리부는 적어도 하나 이상의 플래시 메모리 장치들(840)을 제어하는 기능까지 수행할 수 있다. 일 실시예에서, 호스트 인터페이스(543)가 호스트 장치(820)와 범용직렬버스(USB), 멀티미디어 카드(MMC), 피씨아이(PCI), 피씨아이-익스프레스(PCI-Express), 에이티에이(ATA), 직렬-에이티에이(S-ATA), 병렬-에이티에이(P-ATA), 스카시(SCSI), 이에스디아이(ESDI), 에스에이에스(SAS) 및 아이디이(IDE) 등과 같은 표준 프로토콜을 이용하여 인터액션을 수행할 수 있고, 메모리 인터페이스(544)가 적어도 하나 이상의 낸드 플래시 메모리 장치들(840)의 내부에서 각각 독자적인 프로토콜을 이용하여 인터액션을 수행할 수 있다. 이러한 구현 형태는, 메모리 컨트롤러(830)가 적어도 하나 이상의 낸드 플래시 메모리 장치들(840)과의 관계에서 이미 지원되는 표준 프로토콜보다 메모리 시스템(800)에 적합한 독자적인 프로토콜을 사용할 수 있고, 적어도 하나 이상의 낸드 플래시 메모리 장치들(840) 각각의 내부에서 인터액션이 수행되기 때문에 고속 동작이 가능하다는 장점이 있다. 예를 들어, 메모리 컨트롤러(830)가 빌트 인되어 구현되는 적어도 하나 이상의 플래시 메모리 장치들(840)은 소위 원낸드 메모리 장치(One-NAND memory device)로 명명될 수 있다.
도 17은 도 12의 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 17을 참조하면, 컴퓨팅 시스템(900)은 프로세서(910), 메모리 장치(920), 사용자 인터페이스(930), 파워 서플라이(940) 및 메모리 시스템(950)을 포함할 수 있다.
프로세서(910)는 특정 계산들 또는 태스크들을 실행하는 특정 소프트웨어를 실행하는 것과 같이 다양한 컴퓨팅 기능들을 실행할 수 있다. 일 실시예에서, 프로세서(910)는 마이크로프로세서(microprocessor) 또는 중앙 처리 장치(CPU)일 수 있는데, 어드레스 버스, 제어 버스 및/또는 데이터 버스를 통하여 다른 구성 요소들에 연결될 수 있다. 메모리 장치(920)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM), 또는 이피롬(Erasable Programmable Read-only Memory; EPROM), 이이피롬(Electrically Erasable Programmable Read-Only Memory; EEPROM) 및 플래시 메모리 장치를 포함하는 모든 형태의 비휘발성 메모리 장치일 수 있다. 한편, 프로세서(910)는 PCI 버스와 같은 확장 버스에 연결될 수 있다. 따라서, 프로세서(910)는 키보드 또는 마우스와 같은 하나 이상의 입력 장치, 프린터 또는 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함하는 사용자 인터페이스(930)를 제어할 수 있다. 사용자 인터페이스(930)는 사용자와 컴퓨팅 시스템(900)과의 인터페이싱을 수행할 수 있다. 파워 서플라이(940)는 컴퓨팅 시스템(900)이 동작하기 위한 전원을 공급할 수 있다. 실시예에 따라, 컴퓨팅 시스템(900)은 응용 칩셋, 카메라 이미지 프로세서, 모바일 디램 등을 더 포함할 수 있다. 메모리 시스템(950)은 도 12에 도시된 반도체 메모리 장치(520) 및 메모리 컨트롤러(540)를 포함할 수 있고, 반도체 메모리 장치(520)는 일반적인 프로그램 동작 시와 블록 병합 동작 시에 프로그램 방식을 서로 상이하게 설정할 수 있다. 다만, 메모리 시스템(950)에 대해서는 상술한 바 있으므로, 중복되는 설명을 생략하기로 한다.
이상, 본 발명의 실시예들에 따른 반도체 메모리 장치의 블록 병합 방법에 대하여 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다. 예를 들어, 본 발명의 실시예들에 따른 반도체 메모리 장치의 블록 병합 방법과 관련하여, 상기에서는 반도체 메모리 장치로서 플래시 메모리 장치 특히, 낸드 플래시 메모리 장치를 참조하여 설명하였지만, 본 발명의 반도체 메모리 장치는 낸드 플래시 메모리 장치에만 한정되는 것은 아니다. 즉, 페이지 단위의 데이터를 메모리 셀 어레이에 프로그램할 수 있는 다양한 반도체 메모리 장치에 모두 적용될 수 있다. 또한, 반도체 메모리 장치의 블록 병합 동작은 반도체 메모리 장치의 카피백(copy-back) 동작을 포함하는 것으로 이해되어야 할 것이다.
본 발명은 반도체 메모리 장치(예를 들어, 플래시 메모리 장치 등)를 이용하는 다양한 시스템에 적용될 수 있다. 따라서, 본 발명은 반도체 메모리 장치를 구비하는 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 메모리 카드 등과 같은 전자 기기에 확대 적용될 수 있을 것이다.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
300: 반도체 메모리 장치 310: 메모리 셀 어레이
320: 페이지 버퍼부 330: 로우 디코더
340: 전압 생성기 350: 프로그램 제어기

Claims (10)

  1. 복수의 데이터들을 제 1 프로그램 방식으로 적어도 하나 이상의 제 1 블록들에 프로그램(program)하는 단계;
    상기 제 1 블록들 중에서 병합의 필요성이 있는 적어도 하나 이상의 병합 대상 블록들을 선택하는 단계;
    상기 제 1 블록들 또는 적어도 하나 이상의 제 2 블록들 중에서 병합을 수행하기 위한 병합 수행 블록을 선택하는 단계; 및
    상기 병합 대상 블록들에 위치하는 복수의 병합 대상 데이터들을 제 2 프로그램 방식으로 상기 병합 수행 블록에 프로그램하는 단계를 포함하고,
    상기 제 1 프로그램 방식과 상기 제 2 프로그램 방식은 서로 상이한 복수의 프로그램 파라미터(program parameter)들에 기초하는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  2. 제 1 항에 있어서,
    상기 병합 대상 블록들에 위치하는 상기 병합 대상 데이터들을 소거(erase)하는 단계를 더 포함하는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  3. 삭제
  4. 제 1 항에 있어서, 상기 제 1 프로그램 방식은 쉐도우 프로그램(shadow program) 방식이고, 상기 제 2 프로그램 방식은 리프로그램(re program) 방식인 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  5. 제 4 항에 있어서, 상기 병합 대상 데이터들은 상기 병합 대상 블록들로부터 페이지 버퍼부를 경유하여 상기 병합 수행 블록으로 프로그램되는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  6. 제 1 항에 있어서, 상기 제 1 프로그램 방식은 제 1 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램(on chip buffered program) 방식이고, 상기 제 2 프로그램 방식은 제 2 증가형 스텝 펄스를 이용하는 온칩 버퍼드 프로그램 방식인 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  7. 제 6 항에 있어서, 상기 병합 대상 데이터들은 상기 병합 대상 블록들로부터 페이지 버퍼부 및 싱글 레벨 메모리 셀 블록을 경유하여 상기 병합 수행 블록으로 프로그램되는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  8. 제 7 항에 있어서, 상기 제 1 증가형 스텝 펄스는 상기 제 2 증가형 스텝 펄스보다 상대적으로 낮은 전압 레벨을 갖는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  9. 제 1 항에 있어서, 상기 제 1 블록들은 적어도 하나 이상의 데이터 블록(data block)들 및 적어도 하나 이상의 로그 블록(log block)들을 포함하는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
  10. 제 9 항에 있어서, 상기 제 2 블록들은 적어도 하나 이상의 자유 블록(free block)들을 포함하는 것을 특징으로 하는 반도체 메모리 장치의 블록 병합 방법.
KR1020100048367A 2010-05-25 2010-05-25 반도체 메모리 장치의 블록 병합 방법 KR101635446B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100048367A KR101635446B1 (ko) 2010-05-25 2010-05-25 반도체 메모리 장치의 블록 병합 방법
JP2011103615A JP5756335B2 (ja) 2010-05-25 2011-05-06 半導体メモリ装置のブロック併合方法
US13/114,262 US8812773B2 (en) 2010-05-25 2011-05-24 Method of merging blocks in a semiconductor memory device, and semiconductor memory device to perform a method of merging blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100048367A KR101635446B1 (ko) 2010-05-25 2010-05-25 반도체 메모리 장치의 블록 병합 방법

Publications (2)

Publication Number Publication Date
KR20110128992A KR20110128992A (ko) 2011-12-01
KR101635446B1 true KR101635446B1 (ko) 2016-07-04

Family

ID=45023074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100048367A KR101635446B1 (ko) 2010-05-25 2010-05-25 반도체 메모리 장치의 블록 병합 방법

Country Status (3)

Country Link
US (1) US8812773B2 (ko)
JP (1) JP5756335B2 (ko)
KR (1) KR101635446B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481135B2 (en) 2019-09-02 2022-10-25 SK Hynix Inc. Storage device and method of operating the storage device

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5066241B2 (ja) * 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
TWI451249B (zh) * 2011-12-15 2014-09-01 Phison Electronics Corp 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN103176910B (zh) * 2011-12-26 2015-10-14 群联电子股份有限公司 用于非易失性存储器的数据合并方法、控制器与储存装置
US8797799B2 (en) * 2012-01-05 2014-08-05 Conversant Intellectual Property Management Inc. Device selection schemes in multi chip package NAND flash memory system
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
KR20140078893A (ko) * 2012-12-18 2014-06-26 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
US10763752B1 (en) 2019-06-25 2020-09-01 Chengdu Monolithic Power Systems Co., Ltd. Zero-voltage-switching flyback converter
US9626288B2 (en) * 2013-08-14 2017-04-18 Skyera, Llc Address translation for a non-volatile memory storage device
KR102166924B1 (ko) * 2013-12-26 2020-10-16 삼성전자주식회사 저장 장치의 구동 방법
KR102384344B1 (ko) * 2015-06-03 2022-04-07 삼성전자주식회사 모바일 장치 및 모바일 장치의 동작 방법
KR102498248B1 (ko) * 2016-02-04 2023-02-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
CN107704466B (zh) * 2016-08-09 2020-12-11 上海川源信息科技有限公司 数据储存系统
US20180261281A1 (en) * 2017-03-10 2018-09-13 Micron Technology, Inc. Methods for mitigating power loss events during operation of memory devices and memory devices employing the same
KR102410306B1 (ko) * 2018-01-29 2022-06-20 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200071955A (ko) 2018-12-12 2020-06-22 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법, 스토리지 장치의 동작 방법 및 스토리지 장치
CN109979508A (zh) * 2019-03-15 2019-07-05 合肥沛睿微电子股份有限公司 固态硬盘装置与相关的固态硬盘控制电路
CN111144300B (zh) * 2019-12-26 2021-06-01 杭州费尔斯通科技有限公司 一种基于图像识别的pdf表格结构识别方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101437091B1 (ko) * 2008-06-17 2014-09-05 삼성전자주식회사 비대칭 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
JP2005078378A (ja) 2003-08-29 2005-03-24 Sony Corp データ記憶装置及び不揮発性メモリに対するデータ書き込み方法
US7002843B2 (en) * 2004-01-27 2006-02-21 Sandisk Corporation Variable current sinking for coarse/fine programming of non-volatile memory
JP4237648B2 (ja) 2004-01-30 2009-03-11 株式会社東芝 不揮発性半導体記憶装置
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
KR100719368B1 (ko) * 2005-06-27 2007-05-17 삼성전자주식회사 플래시 메모리 장치의 적응적 프로그램 방법 및 장치
JP2008146253A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
KR101143397B1 (ko) * 2009-07-29 2012-05-23 에스케이하이닉스 주식회사 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481135B2 (en) 2019-09-02 2022-10-25 SK Hynix Inc. Storage device and method of operating the storage device

Also Published As

Publication number Publication date
JP2011248873A (ja) 2011-12-08
US20110296087A1 (en) 2011-12-01
US8812773B2 (en) 2014-08-19
JP5756335B2 (ja) 2015-07-29
KR20110128992A (ko) 2011-12-01

Similar Documents

Publication Publication Date Title
KR101635446B1 (ko) 반도체 메모리 장치의 블록 병합 방법
US8904090B2 (en) Non-volatile memory device, devices having the same, and method of operating the same
KR102094334B1 (ko) 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법
CN107450845B (zh) 存储器系统及其操作方法
US9281068B2 (en) Nonvolatile memory and related reprogramming method
US20150347291A1 (en) Flash memory based storage system and operating method
US11262939B2 (en) Memory system, memory controller, and operation method
KR20130008300A (ko) 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법
CN112015329A (zh) 存储系统及其操作方法
KR20220077691A (ko) 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법
KR20210097353A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
CN111580744A (zh) 存储器控制器及其操作方法
US20210365382A1 (en) Memory system, memory controller, and operation method thereof
CN112349315B (zh) 存储器系统、存储器控制器和操作方法
CN111338978B (zh) 存储装置以及操作存储装置的方法
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
CN113010096A (zh) 存储装置及其操作方法
KR20210079552A (ko) 메모리 시스템 및 메모리 컨트롤러
KR20210041233A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20210012123A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11307942B2 (en) Memory system, memory controller and method for operating memory controller
US11182108B2 (en) Memory system, memory controller, and operation method
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN112199037A (zh) 存储器控制器及其操作方法
US11237767B2 (en) Memory system, memory controller and method for operating memory controller

Legal Events

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

Payment date: 20190530

Year of fee payment: 4