KR102166924B1 - 저장 장치의 구동 방법 - Google Patents

저장 장치의 구동 방법 Download PDF

Info

Publication number
KR102166924B1
KR102166924B1 KR1020130163613A KR20130163613A KR102166924B1 KR 102166924 B1 KR102166924 B1 KR 102166924B1 KR 1020130163613 A KR1020130163613 A KR 1020130163613A KR 20130163613 A KR20130163613 A KR 20130163613A KR 102166924 B1 KR102166924 B1 KR 102166924B1
Authority
KR
South Korea
Prior art keywords
block
memory device
valid pages
data
volatile memory
Prior art date
Application number
KR1020130163613A
Other languages
English (en)
Other versions
KR20150075551A (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 KR1020130163613A priority Critical patent/KR102166924B1/ko
Priority to US14/579,179 priority patent/US9772940B2/en
Publication of KR20150075551A publication Critical patent/KR20150075551A/ko
Application granted granted Critical
Publication of KR102166924B1 publication Critical patent/KR102166924B1/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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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

Abstract

저장 장치의 구동 방법에서, 제1 휘발성 메모리 장치에 기초하여, 복수의 비휘발성 메모리 장치들에 대해 설정된 제1 블록에 포함된 제1 유효 페이지들을 제1 래치부에 복사한다. 제1 휘발성 메모리 장치에 기초하여, 제1 블록에 포함된 제2 유효 페이지들을 제2 래치부에 복사한다. 제1 래치부에 복사된 제1 유효 페이지들 및 제2 래치부에 복사된 제2 유효 페이지들을 복수의 비휘발성 메모리 장치들에 대해 설정된 제2 블록에 복사한다.

Description

저장 장치의 구동 방법{METHOD OF OPERATING STORAGE DEVICE}
본 발명은 저장 장치에 관한 것으로서, 더욱 상세하게는 휘발성 메모리 장치 및 비휘발성 메모리 장치를 포함하는 저장 장치의 구동 방법에 관한 것이다.
최근에는 메모리 장치를 이용하는 메모리 카드 및 솔리드 스테이트 드라이브(solid state drive; SSD)와 같은 데이터 저장 장치가 널리 사용되고 있다. 상기와 같은 데이터 저장 장치는 기계적인 구동부가 없어 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 상기와 같은 데이터 저장 장치는 비휘발성 메모리 장치 및 휘발성 메모리 장치를 포함할 수 있다. 상기 비휘발성 메모리 장치는 데이터를 저장하는 저장 매체로서 이용될 수 있으며, 상기 휘발성 메모리 장치는 데이터의 기입/독출 요청을 처리하는 버퍼, 즉 캐시로서 이용될 수 있다.
본 발명의 일 목적은 가비지 컬렉션(garbage collection) 동작을 효과적으로 수행할 수 있는 저장 장치의 구동 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 제1 휘발성 메모리 장치에 기초하여, 복수의 비휘발성 메모리 장치들에 대해 설정된 제1 블록에 포함된 제1 유효 페이지들을 제1 래치부에 복사한다. 상기 제1 휘발성 메모리 장치에 기초하여, 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 래치부에 복사한다. 상기 제1 래치부에 복사된 상기 제1 유효 페이지들 및 상기 제2 래치부에 복사된 상기 제2 유효 페이지들을 상기 복수의 비휘발성 메모리 장치들에 대해 설정된 제2 블록에 복사한다.
일 실시예에서, 상기 제1 유효 페이지들을 상기 제1 래치부에 복사하는데 있어서, 상기 제1 유효 페이지들에 저장된 제1 데이터를 상기 제1 휘발성 메모리 장치에 축적할 수 있다. 상기 제1 휘발성 메모리 장치에 축적된 상기 제1 데이터를 상기 제1 래치부에 저장할 수 있다.
상기 제1 데이터는 적어도 하나의 제3 래치부를 경유하여 상기 제1 휘발성 메모리 장치에 축적될 수 있다.
상기 제2 유효 페이지들을 상기 제2 래치부에 복사하는데 있어서, 상기 제2 유효 페이지들에 저장된 제2 데이터를 상기 제1 휘발성 메모리 장치에 축적할 수 있다. 상기 제1 휘발성 메모리 장치에 축적된 상기 제2 데이터를 상기 제2 래치부에 저장할 수 있다.
상기 제1 및 제2 유효 페이지들을 상기 제2 블록에 복사하는데 있어서, 상기 제1 래치부에 저장된 상기 제1 데이터를 상기 제2 블록에 저장하는 제1 프로그램 동작을 수행할 수 있다. 상기 제2 래치부에 복사된 상기 제2 데이터를 상기 제2 블록에 저장하는 제2 프로그램 동작을 수행할 수 있다. 상기 제1 프로그램 동작이 완료되기 이전에 상기 제2 프로그램 동작이 시작될 수 있다.
상기 제1 래치부는 상기 복수의 비휘발성 메모리 장치들 중에서 제1 비휘발성 메모리 장치에 포함되며, 상기 제2 래치부는 상기 복수의 비휘발성 메모리 장치들 중에서 제2 비휘발성 메모리 장치에 포함될 수 있다.
상기 제1 블록에 포함되는 복수의 제1 메모리 셀들은 복수의 데이터 비트들을 저장하는 멀티 레벨 메모리 셀(multi level memory cell; MLC)들이며, 상기 제2 블록에 포함되는 복수의 제2 메모리 셀들은 하나의 데이터 비트를 저장하는 싱글 레벨 메모리 셀(single level memory cell; SLC)들일 수 있다.
일 실시예에서, 상기 제1 블록에 대한 소거 동작을 수행하는 단계, 및 상기 제2 블록에 복사된 상기 제1 및 제2 유효 페이지들을 제3 블록에 복사하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 제1 휘발성 메모리 장치에 기초하여, 상기 제1 블록에 포함된 제3 유효 페이지들을 제3 래치부에 복사하는 단계, 상기 제1 휘발성 메모리 장치에 기초하여, 상기 제1 블록에 포함된 제4 유효 페이지들을 제4 래치부에 복사하는 단계, 및 상기 제3 래치부에 복사된 상기 제3 유효 페이지들 및 상기 제4 래치부에 복사된 상기 제4 유효 페이지들을 상기 제2 블록에 복사하는 단계를 더 포함할 수 있다.
일 실시예에서, 제2 휘발성 메모리 장치에 기초하여, 상기 제1 블록에 포함된 제3 유효 페이지들을 제3 래치부에 복사하는 단계, 상기 제2 휘발성 메모리 장치에 기초하여, 상기 제1 블록에 포함된 제4 유효 페이지들을 제4 래치부에 복사하는 단계, 및 상기 제3 래치부에 복사된 상기 제3 유효 페이지들 및 상기 제4 래치부에 복사된 상기 제4 유효 페이지들을 상기 제2 블록에 복사하는 단계를 더 포함할 수 있다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 복수의 비휘발성 메모리 장치들에 대해 설정된 제1 블록에 포함된 제1 유효 페이지들을 제1 휘발성 메모리 장치 및 적어도 하나의 제1 래치부에 분리하여 복사한다. 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 휘발성 메모리 장치 및 적어도 하나의 제2 래치부에 분리하여 복사한다. 상기 제1 휘발성 메모리 장치와 상기 적어도 하나의 제1 래치부에 분리하여 복사된 상기 제1 유효 페이지들 및 상기 제2 휘발성 메모리 장치와 상기 적어도 하나의 제2 래치부에 분리하여 복사된 상기 제2 유효 페이지들을 상기 복수의 비휘발성 메모리 장치들에 대해 설정된 제2 블록에 복사한다.
일 실시예에서, 상기 제1 유효 페이지들을 분리하여 복사하는데 있어서, 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제1 비트들에 상응하는 제1 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적할 수 있다. 상기 제1 휘발성 메모리 장치에 축적된 상기 제1 비트 데이터를 상기 적어도 하나의 제1 래치부에 저장할 수 있다. 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제2 비트들에 상응하는 제2 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적할 수 있다.
상기 제2 유효 페이지들을 분리하여 복사하는데 있어서, 상기 제2 유효 페이지들에 저장된 상기 제2 데이터의 제1 비트들에 상응하는 제3 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적할 수 있다. 상기 제2 휘발성 메모리 장치에 축적된 상기 제3 비트 데이터를 상기 적어도 하나의 제2 래치부에 저장할 수 있다. 상기 제2 유효 페이지들에 저장된 제2 데이터의 제2 비트들에 상응하는 제4 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적할 수 있다.
상기 제1 및 제2 유효 페이지들을 상기 제2 블록에 복사하는데 있어서, 상기 제1 및 제2 비트 데이터들에 기초하여 상기 제1 데이터를 상기 제2 블록에 저장하는 제1 프로그램 동작을 수행할 수 있다. 상기 제3 및 제4 비트 데이터들에 기초하여 상기 제2 데이터를 상기 제2 블록에 저장하는 제2 프로그램 동작을 수행할 수 있다. 상기 제1 프로그램 동작이 완료되기 이전에 상기 제2 프로그램 동작이 시작될 수 있다.
상기 복수의 비휘발성 메모리 장치들 각각은 복수의 워드 라인들이 수직으로 적층된 수직형 메모리 장치일 수 있다. 상기 제1 및 제2 블록들에 포함되는 복수의 메모리 셀들은 각각 복수의 데이터 비트들을 저장하는 멀티 레벨 메모리 셀(multi level memory cell; MLC)들일 수 있다.
상기와 같은 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 비휘발성 메모리 장치들이 온-칩 버퍼드 프로그램을 수행하도록 구현되는 경우에 비휘발성 메모리 장치들보다 적은 개수의 휘발성 메모리 장치 및 비휘발성 메모리 장치들 내부의 래치부들을 이용하여 가비지 컬렉션 동작을 수행하며, 비휘발성 메모리 장치들이 수직형 메모리 장치들이고 HSP를 수행하도록 구현되는 경우에 비휘발성 메모리 장치들과 동일한 개수의 휘발성 메모리 장치들 및 내부의 래치부들을 이용하여 가비지 컬렉션 동작을 수행할 수 있다. 따라서, 저장 장치의 성능이 향상되고 크기가 감소될 수 있다.
도 1은 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 2는 도 1의 방법에 따라 구동되는 저장 장치를 포함하는 컴퓨팅 시스템의 일 예를 나타내는 블록도이다.
도 3은 도 2의 저장 장치에 포함되는 비휘발성 메모리 장치의 일 예를 나타내는 블록도이다.
도 4는 도 3의 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 5a, 5b 및 5c는 도 1의 저장 장치의 구동 방법에 포함되는 단계들의 일 예를 나타내는 순서도들이다.
도 6a, 6b, 6c, 6d, 6e, 6f, 6g 및 6h는 도 1의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 7a, 7b, 7c, 7d, 7e 및 7f는 도 1의 저장 장치의 구동 방법의 다른 예를 설명하기 위한 도면들이다.
도 8은 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 9a, 9b, 9c 및 9d는 도 8의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 10은 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 11a, 11b, 11c 및 11d는 도 10의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 12는 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 13a, 13b, 13c 및 13d는 도 12의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 14는 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 15는 도 14의 방법에 따라 구동되는 저장 장치를 포함하는 컴퓨팅 시스템의 일 예를 나타내는 블록도이다.
도 16은 도 15의 저장 장치에 포함되는 비휘발성 메모리 장치의 일 예를 나타내는 블록도이다.
도 17은 도 16의 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 18a, 18b 및 18c는 도 14의 저장 장치의 구동 방법에 포함되는 단계들의 일 예를 나타내는 순서도들이다.
도 19a, 19b, 19c, 19d 및 19e는 도 14의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 20a, 20b 및 20c는 도 14의 저장 장치의 구동 방법에 포함되는 단계들의 다른 예를 나타내는 순서도들이다.
도 21a, 21b, 21c, 21d 및 21e는 도 14의 저장 장치의 구동 방법의 다른 예를 설명하기 위한 도면들이다.
도 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동 방법을 나타내는 순서도이다.
도 23은 본 발명의 실시예들에 따른 저장 장치가 메모리 카드에 응용된 예를 나타내는 도면이다.
도 24는 본 발명의 실시예들에 따른 저장 장치가 솔리드 스테이트 드라이브에 응용된 예를 나타내는 도면이다.
도 25는 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 1에 도시된 저장 장치의 구동 방법은, 적어도 하나의 휘발성 메모리 장치 및 복수의 비휘발성 메모리 장치들을 포함하는 저장 장치를 구동하기 위하여 이용될 수 있으며, 특히 상기 저장 장치 내에서 사용할 수 없게 된 저장 영역을 사용 가능하도록 전환하는 가비지 컬렉션(garbage collection) 동작을 수행하기 위하여 이용될 수 있다. 예를 들어 도 23 및 24를 참조하여 후술하는 바와 같이, 상기 저장 장치는 메모리 카드, 솔리드 스테이트 드라이브(solid state drive; SSD) 등과 같은 임의의 저장 장치일 수 있다.
도 1을 참조하면, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 제1 휘발성 메모리 장치에 기초하여 제1 블록에 포함된 제1 유효 페이지들을 제1 래치부에 복사한다(단계 S110). 상기 제1 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 래치부에 복사한다(단계 S120). 상기 제1 래치부에 복사된 상기 제1 유효 페이지들 및 상기 제2 래치부에 복사된 상기 제2 유효 페이지들을 제2 블록에 복사한다(단계 S150). 상기 제1 블록 및 상기 제2 블록은 복수의 비휘발성 메모리 장치들에 대해 설정된다. 예를 들어, 상기 제1 블록은 상기 가비지 컬렉션 동작을 위한 소스(source) 블록이고, 상기 제2 블록은 상기 가비지 컬렉션 동작을 위한 목적(destination) 블록일 수 있다.
도 3을 참조하여 후술하는 바와 같이, 상기 복수의 비휘발성 메모리 장치들 각각은 적어도 하나의 래치부를 포함하여 구현될 수 있다. 일 실시예에서, 상기 제1 및 제2 래치부들은 서로 다른 비휘발성 메모리 장치에 포함될 수 있다. 예를 들어, 상기 제1 래치부는 상기 복수의 비휘발성 메모리 장치들 중에서 제1 비휘발성 메모리 장치에 포함되며, 상기 제2 래치부는 상기 복수의 비휘발성 메모리 장치들 중에서 제2 비휘발성 메모리 장치에 포함될 수 있다.
또한, 도 3을 참조하여 후술하는 바와 같이, 상기 복수의 비휘발성 메모리 장치들 각각에 포함되는 메모리 셀 어레이는 복수의 데이터 비트들을 저장하는 멀티 레벨 메모리 셀(multi level memory cell; MLC)들 및 하나의 데이터 비트를 저장하는 싱글 레벨 메모리 셀(single level memory cell; SLC)들을 포함하여 구현될 수 있다. 이 경우, 상기 복수의 비휘발성 메모리 장치들 각각은 SLC들을 경유하여 MLC들에 데이터를 저장하는 온-칩 버퍼드(on-chip buffered) 프로그램을 수행하도록 구현될 수 있다. 일 실시예에서, 상기 제1 블록에 포함되는 복수의 제1 메모리 셀들은 상기 MLC들이며, 상기 제2 블록에 포함되는 복수의 제2 메모리 셀들은 상기 SLC들일 수 있다.
도 6a 내지 6h를 참조하여 후술하는 바와 같이, 단계 S110이 완료된 이후에 단계 S120이 수행될 수 있으며, 단계 S110 및 S120이 완료된 이후에 단계 S150이 수행될 수 있다.
본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 비휘발성 메모리 장치들보다 적은 개수의 휘발성 메모리 장치를 이용하여 가비지 컬렉션 동작을 효과적으로 수행한다. 예를 들어, 소스 블록에 포함된 복수의 유효 페이지들이 복수의 휘발성 메모리 장치들을 경유하여 목적 블록으로 복사되지 않으며, 상기 복수의 유효 페이지들이 상기 소스 블록에서 적어도 하나의 휘발성 메모리 장치를 경유하여 복수의 내부 래치부들로 순차적으로 복사된 이후에, 상기 복수의 유효 페이지들이 상기 복수의 내부 래치부들에서 상기 목적 블록으로 복사될 수 있다. 따라서 휘발성 메모리 장치의 사용량이 감소되어 저장 장치의 성능이 향상될 수 있으며, 휘발성 메모리 장치가 차지하는 면적이 감소되어 저장 장치의 크기가 감소될 수 있다.
도 2는 도 1의 방법에 따라 구동되는 저장 장치를 포함하는 컴퓨팅 시스템의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 컴퓨팅 시스템(100a)은 호스트(110) 및 저장 장치(200)를 포함한다.
호스트(110)는 특정 계산들 및/또는 태스크들을 수행하는 것과 같이 다양한 컴퓨팅 기능들을 수행하거나 운영 체제(operating system; OS) 및/또는 애플리케이션과 같은 다양한 응용 프로그램들을 실행할 수 있다. 도시하지는 않았으나, 호스트(110)는 프로세서, 메인 메모리 및 버스 등을 포함하여 구현될 수 있다.
저장 장치(200)는 컨트롤러(210), 적어도 하나의 휘발성 메모리 장치(220) 및 복수의 비휘발성 메모리 장치들(300)을 포함한다.
컨트롤러(210)는 호스트(110)로부터 커맨드를 수신하고, 상기 커맨드에 응답하여 저장 장치(200)의 동작을 제어할 수 있다. 한편, 컨트롤러(210)는 호스트(110)로부터 수신되는 커맨드와 무관하게 저장 장치(200)의 가비지 컬렉션 동작을 제어할 수 있다. 예를 들어, 복수의 비휘발성 메모리 장치들(300)에 포함되는 무효 페이지들의 개수가 기준 개수를 초과하는 경우에 또는 미리 정해진 기준 구동 시간이 경과한 이후에 상기 가비지 컬렉션 동작이 수행될 수 있다.
적어도 하나의 휘발성 메모리 장치(220)는 호스트(110)로부터 제공된 데이터를 일시적으로 저장하는 기입 버퍼 및/또는 복수의 비휘발성 메모리 장치들(300)로부터 출력된 데이터를 일시적으로 저장하는 독출 캐시로 동작할 수 있다. 예를 들어, 휘발성 메모리 장치(220)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM) 또는 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM)를 포함할 수 있다. 도 2에는 휘발성 메모리 장치(220)가 컨트롤러(210)의 외부에 위치한 예가 도시되어 있으나, 실시예에 따라서 휘발성 메모리 장치(220)는 컨트롤러(210)의 내부에 위치할 수도 있다.
복수의 비휘발성 메모리 장치들(300)은 호스트(110)로부터 제공된 데이터를 저장하거나 저장된 데이터를 출력할 수 있다. 복수의 비휘발성 메모리 장치들(300)은 전원 공급이 차단되더라도 저장된 데이터를 유지할 수 있다. 예를 들어, 복수의 비휘발성 메모리 장치들(300) 각각은 플래시 메모리(Flash Memory), 상변화 랜덤 액세스 메모리(Phase change Random Access Memory; PRAM), 강유전체 랜덤 액세스 메모리(Ferroelectric Random Access Memory; FRAM), 저항 랜덤 액세스 메모리(Resistive Random Access Memory; RRAM), 또는 강자성 랜덤 액세스 메모리(Magnetic Random Access Memory; MRAM)를 포함할 수 있다.
도 3은 도 2의 저장 장치에 포함되는 비휘발성 메모리 장치의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 비휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 로우 디코더(320), 페이지 버퍼 회로(330), 래치 회로(340), 전압 발생기(350), 입출력 버퍼 회로(360) 및 제어 회로(370)를 포함한다.
메모리 셀 어레이(310)는 복수의 워드 라인들 및 복수의 비트 라인들에 각각 연결되는 복수의 메모리 셀들을 포함할 수 있다. 도 4를 참조하여 후술하는 바와 같이, 상기 복수의 메모리 셀들 각각은 NAND 플래시 메모리 셀일 수 있으며, 상기 복수의 메모리 셀들은 2차원 어레이(array) 구조로 배열될 수 있다. 한편, 도 17을 참조하여 후술하는 바와 같이, 상기 복수의 메모리 셀들은 3차원 수직 어레이 구조로 배열될 수도 있다. 또한, 도시하지는 않았지만, 상기 복수의 메모리 셀들 각각은 NOR 플래시 메모리 셀일 수도 있다.
일 실시예에서, 메모리 셀 어레이(310)는 SLC들(312) 및 MLC들(314)을 포함하여 구현될 수 있다. 다시 말하면, 상기 복수의 메모리 셀들은 SLC들(312) 또는 MLC들(314)일 수 있다. 비휘발성 메모리 장치(300)는 온-칩 버퍼드 프로그램 방식에 기초하여 메모리 셀 어레이(310)에 기입 데이터를 프로그램할 수 있다.
래치 회로(340)는 복수의 래치부들(342)을 포함할 수 있다. 일 실시예에서, 복수의 래치부들(342) 중 적어도 일부는 가비지 컬렉션 동작 시에 유효 페이지들에 저장된 데이터를 임시로 저장할 수 있다. 다른 실시예에서, 복수의 래치부들(342) 중 적어도 일부는 프로그램 동작 시에 MLC들(314)에 프로그램 될 기입 데이터의 비트들 중 하나를 임시로 저장할 수 있다. 또 다른 실시예에서, 복수의 래치부들(342) 중 적어도 일부는 독출 동작 시에 에러 정정 회로(미도시) 및/또는 펌웨어에 의해 수행되는 에러 정정 기능을 수행하는데 이용될 수 있다. 도 3에는 복수의 래치부들(342)이 페이지 버퍼 회로(330)의 외부에 위치한 예가 도시되어 있으나, 실시예에 따라서 복수의 래치부들(342)은 페이지 버퍼 회로(330)의 내부에 위치할 수도 있다.
페이지 버퍼 회로(330)는 상기 복수의 비트 라인들에 연결되고, 메모리 셀 어레이(310)에 프로그램 될 기입 데이터를 저장하거나 혹은 메모리 셀 어레이(310)로부터 독출된 독출 데이터를 저장할 수 있다. 다시 말하면, 페이지 버퍼 회로(330)는 비휘발성 메모리 장치(300)의 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 페이지 버퍼 회로(330)는 프로그램 모드에서 기입 드라이버로서 동작하고, 독출 모드에서 감지 증폭기로서 동작할 수 있다.
입출력 버퍼 회로(360)는 외부의 컨트롤러(예를 들어, 도 2의 210)로부터 메모리 셀 어레이(310)에 프로그램 될 기입 데이터를 수신하고, 메모리 셀 어레이(310)로부터 독출된 독출 데이터를 상기 외부의 컨트롤러로 전송할 수 있다.
로우 디코더(320)는 상기 복수의 워드 라인들에 연결되고, 로우 어드레스에 응답하여 상기 복수의 워드 라인들 중 적어도 하나를 선택할 수 있다. 전압 발생기(350)는 제어 회로(370)의 제어에 따라 프로그램 전압, 프로그램 패스 전압, 검증 전압, 소거 전압, 독출 전압, 독출 패스 전압과 같은 워드 라인 전압들을 생성할 수 있다. 제어 회로(370)는 메모리 셀 어레이(310)에 대한 데이터 프로그램, 소거 및 독출 동작을 수행하도록 로우 디코더(320), 페이지 버퍼 회로(330), 래치 회로(340), 전압 발생기(350) 및 입출력 버퍼 회로(360)를 제어할 수 있다.
도 4는 도 3의 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 4를 참조하면, 메모리 셀 어레이(310)는 스트링 선택 트랜지스터들(SST), 접지 선택 트랜지스터들(GST) 및 메모리 셀들(MC)을 포함할 수 있다. 스트링 선택 트랜지스터들(SST)은 비트 라인들(BL(1), ..., BL(m))에 연결되고, 접지 선택 트랜지스터들(GST)은 공통 소스 라인(CSL)에 연결될 수 있다. 동일한 열에 배열된 메모리 셀들(MC)은 비트 라인들(BL(1), ..., BL(m)) 중 하나와 공통 소스 라인(CSL) 사이에 직렬로 배치될 수 있으며, 동일한 행에 배열된 메모리 셀들(MC)은 워드 라인들(WL(1), WL(2), WL(3), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 다시 말하면, 스트링 선택 트랜지스터들(SST)과 접지 선택 트랜지스터들(GST) 사이에 메모리 셀(MC2)들이 직렬로 연결될 수 있으며, 스트링 선택 라인(SSL)과 접지 선택 라인(GSL) 사이에는 16개, 32개 또는 64개의 복수의 워드 라인들이 배열될 수 있다.
스트링 선택 트랜지스터들(SST)은 스트링 선택 라인(SSL)에 연결되어, 스트링 선택 라인(SSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있다. 접지 선택 트랜지스터들(GST)은 접지 선택 라인(GSL)에 연결되어, 접지 선택 라인(GSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있다. 메모리 셀들(MC)은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
메모리 셀 어레이(310)를 포함하는 비휘발성 메모리 장치는 NAND 플래시 메모리 장치일 수 있다. 상기 NAND 플래시 메모리 장치는 페이지(PG) 단위로 프로그램 동작 및 독출 동작을 수행하며, 블록(BLK) 단위로 소거 동작을 수행할 수 있다. 한편, 실시예에 따라서, 페이지 버퍼들은 각각 짝수 비트 라인과 홀수 비트 라인이 하나씩 연결될 수 있다. 이 경우, 짝수 비트 라인들은 짝수 페이지를 형성하고, 홀수 비트 라인들은 홀수 페이지를 형성하며, 메모리 셀들(MC)에 대한 기입 동작은 짝수 페이지와 홀수 페이지가 번갈아가며 순차적으로 수행될 수 있다.
도 5a, 5b 및 5c는 도 1의 저장 장치의 구동 방법에 포함되는 단계들의 일 예를 나타내는 순서도들이다. 도 5a는 도 1의 단계 S110의 일 예를 나타내고, 도 5b는 도 1의 단계 S120의 일 예를 나타내며, 도 5c는 도 1의 단계 S150의 일 예를 나타낸다.
도 5a를 참조하면, 상기 제1 유효 페이지들을 상기 제1 래치부에 복사하는데 있어서, 상기 제1 유효 페이지들에 저장된 제1 데이터를 상기 제1 휘발성 메모리 장치에 축적하고(단계 S111), 상기 제1 휘발성 메모리 장치에 축적된 상기 제1 데이터를 상기 제1 래치부에 저장할 수 있다(단계 S113).
도 5b를 참조하면, 상기 제2 유효 페이지들을 상기 제2 래치부에 복사하는데 있어서, 상기 제2 유효 페이지들에 저장된 제2 데이터를 상기 제1 휘발성 메모리 장치에 축적하고(단계 S121), 상기 제1 휘발성 메모리 장치에 축적된 상기 제2 데이터를 상기 제2 래치부에 저장할 수 있다(단계 S123).
도 5c를 참조하면, 상기 제1 및 제2 유효 페이지들을 상기 제2 블록에 복사하는데 있어서, 상기 제1 래치부에 저장된 상기 제1 데이터를 상기 제2 블록에 저장하는 제1 프로그램 동작을 수행하고(단계 S151), 상기 제2 래치부에 복사된 상기 제2 데이터를 상기 제2 블록에 저장하는 제2 프로그램 동작을 수행할 수 있으며(단계 S153), 상기 제1 프로그램 동작이 완료되기 이전에 상기 제2 프로그램 동작이 시작될 수 있다.
도 6a, 6b, 6c, 6d, 6e, 6f, 6g 및 6h는 도 1의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 6a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(220a), 제1 비휘발성 메모리 장치(300a) 및 제2 비휘발성 메모리 장치(300b)를 포함할 수 있다. 제1 비휘발성 메모리 장치(300a)는 제1 SLC들(312a), 제1 MLC들(314a) 및 제1 래치부(342a)를 포함하며, 제2 비휘발성 메모리 장치(300b)는 제2 SLC들(312b), 제2 MLC들(314b) 및 제2 래치부(342b)를 포함할 수 있다. 상기 가비지 컬렉션 동작을 위한 제1 블록(SRCB1)이 제1 및 제2 MLC들(314a, 314b)에 대하여 설정되고, 상기 가비지 컬렉션 동작을 위한 제2 블록(DSTB1)이 제1 및 제2 SLC들(312a, 312b)에 대하여 설정될 수 있다. 도시의 편의상, 비휘발성 메모리 장치들(300a, 300b)에 포함되는 다른 구성요소들(예를 들어, 로우 디코더, 페이지 버퍼 회로, 입출력 버퍼 회로 등)은 생략하였다.
제1 블록(SRCB1)은 유효 페이지들(VP)과 무효 페이지들(IP)을 포함하며, 제2 블록(DSTB1)은 프리 페이지들(FP)을 포함할 수 있다. 유효 페이지들(VP)에는 데이터들(D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22)이 저장될 수 있다.
본 발명의 실시예들에 따른 저장 장치의 구동 방법에 기초하여 가비지 컬렉션 동작이 수행되는 경우에, 제1 블록(SRCB1)에 포함된 복수의 페이지들 중에서 유효 페이지들(VP)만이 제2 블록(DSTB1)에 복사될 수 있다.
도 6b를 참조하면, 제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 제1 유효 페이지들에 저장된 제1 데이터(D1, D2, D3, D4)가 제1 휘발성 메모리 장치(220a)에 축적될 수 있다. 도 6c를 참조하면, 제1 휘발성 메모리 장치(220a)에 축적된 제1 데이터(D1~D4)가 제1 래치부(342a)에 저장될 수 있다. 도시하지는 않았지만, 제1 데이터(D1~D4)가 제1 래치부(342a)에 저장된 이후에 제1 휘발성 메모리 장치(220a)에 축적된 제1 데이터(D1~D4)는 삭제될 수 있다.
도 6d를 참조하면, 제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 제2 유효 페이지들에 저장된 제2 데이터(D5, D6, D7, D8)가 제1 휘발성 메모리 장치(220a)에 축적될 수 있다. 도 6e를 참조하면, 제1 휘발성 메모리 장치(220a)에 축적된 제2 데이터(D5~D8)가 제2 래치부(342b)에 저장될 수 있다. 도시하지는 않았지만, 제2 데이터(D5~D8)가 제2 래치부(342b)에 저장된 이후에, 제1 휘발성 메모리 장치(220a)에 축적된 제2 데이터(D5~D8)는 삭제될 수 있다.
도 6f를 참조하면, 제1 및 제2 래치부들(342a, 342b)에 저장된 제1 및 제2 데이터들(D1~D8)이 제2 블록(DSTB1)에 저장될 수 있다. 이 때, 도 6g에 도시된 것처럼, 시간 t1에서 제1 래치부(342a)에 저장된 제1 데이터(D1~D4)를 제2 블록(DSTB1)에 저장하는 제1 프로그램 동작이 시작되고, 상기 제1 프로그램 동작이 완료되기 이전에 시간 t2에서 제2 래치부(342b)에 저장된 제2 데이터(D5~D8)를 제2 블록(DSTB1)에 저장하는 제2 프로그램 동작이 시작될 수 있다. 상기와 같이 제1 프로그램 동작이 완료되기 이전에 제2 프로그램 동작이 시작되는 방식을 인터리빙(interleaving) 방식이라 부를 수 있다.
제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 상기 제1 및 제2 유효 페이지들을 제외한 나머지 유효 페이지들에 대해서도 도 6b 내지 6g를 참조하여 상술한 동작들이 순차적으로 수행될 수 있다. 최종적으로, 도 6h에 도시된 것처럼, 제1 블록(SRCB1)의 모든 유효 페이지들(VP)이 제2 블록(DSTB1)에 복사되며, 유효 페이지들(VP)에 저장된 데이터들(D1~D22)이 제2 블록(DSTB1)에 순차적으로 저장될 수 있다.
도시의 편의상, 제1 및 제2 데이터들(D1~D8)이 제1 블록(SRCB1)에서 제1 휘발성 메모리 장치(220a)로 직접 전송되고(도 6b, 6d), 제1 휘발성 메모리 장치(220a)에서 제1 및 제2 래치부들(342a, 342b)로 직접 전송되며(도 6c, 6e), 제1 및 제2 래치부들(342a, 342b)에서 제2 블록(DSTB1)으로 직접 전송되는 것(도 6f)으로 도시하였으나, 상기와 같은 데이터 전송 과정들은 비휘발성 메모리 장치에 포함되는 페이지 버퍼 회로(예를 들어, 도 3의 330) 및/또는 입출력 버퍼 회로(예를 들어, 도 3의 360)를 이용하여 수행될 수 있다.
도 7a, 7b, 7c, 7d, 7e 및 7f는 도 1의 저장 장치의 구동 방법의 다른 예를 설명하기 위한 도면들이다.
도 7a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(220a), 제1 비휘발성 메모리 장치(300c) 및 제2 비휘발성 메모리 장치(300d)를 포함할 수 있다. 도 7a의 제1 비휘발성 메모리 장치(300c)는 래치부들(344a, 346a)을 더 포함하는 것을 제외하면 도 6a의 제1 비휘발성 메모리 장치(300a)와 실질적으로 동일할 수 있고, 도 7a의 제2 비휘발성 메모리 장치(300d)는 래치부들(344b, 346b)을 더 포함하는 것을 제외하면 도 6a의 제2 비휘발성 메모리 장치(300b)와 실질적으로 동일할 수 있다.
도 7b를 참조하면, 제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 제1 유효 페이지들에 저장된 제1 데이터(D1, D2, D3, D4)가 제1 휘발성 메모리 장치(220a)에 축적될 수 있다. 이 때, 제1 데이터(D1~D4)는 제1 래치부(342a)와 다른 적어도 하나의 래치부, 즉 래치부들(344a, 346a, 344b, 346b)을 경유하여 제1 휘발성 메모리 장치(220a)에 축적될 수 있다. 도 3을 참조하여 상술한 것처럼, 래치부들(344a, 346a, 344b, 346b)은 에러 정정 기능을 수행하는데 이용될 수 있으며, 제1 데이터(D1~D4)가 래치부들(344a, 346a, 344b, 346b)을 경유하여 제1 휘발성 메모리 장치(220a)에 축적됨으로써 제1 데이터(D1~D4)에 대한 에러가 정정될 수 있다. 도 7c를 참조하면, 제1 휘발성 메모리 장치(220a)에 축적된 제1 데이터(D1~D4)가 제1 래치부(342a)에 저장될 수 있다.
도 7d를 참조하면, 제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 제2 유효 페이지들에 저장된 제2 데이터(D5, D6, D7, D8)가 제1 휘발성 메모리 장치(220a)에 축적될 수 있다. 이 때, 제2 데이터(D5~D8)는 제2 래치부(342b)와 다른 적어도 하나의 래치부, 즉 래치부들(344a, 346a, 344b, 346b)을 경유하여 제1 휘발성 메모리 장치(220a)에 축적될 수 있으며, 이에 따라 제2 데이터(D5~D8)에 대한 에러가 정정될 수 있다. 도 7e를 참조하면, 제1 휘발성 메모리 장치(220a)에 축적된 제2 데이터(D5~D8)가 제2 래치부(342b)에 저장될 수 있다.
도 7f를 참조하면, 제1 및 제2 래치부들(342a, 342b)에 저장된 제1 및 제2 데이터들(D1~D8)이 제2 블록(DSTB1)에 저장될 수 있다. 이 때, 도 6g를 참조하여 상술한 것처럼, 제1 데이터(D1~D4)에 대한 상기 제1 프로그램 동작과 제2 데이터(D5~D8)에 대한 상기 제2 프로그램 동작이 인터리빙 방식으로 수행될 수 있다. 최종적으로, 도 6h를 참조하여 상술한 것과 유사하게, 제1 블록(SRCB1)의 모든 유효 페이지들(VP)이 제2 블록(DSTB1)에 복사될 수 있다.
도 8은 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 8을 참조하면, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 제1 휘발성 메모리 장치에 기초하여 제1 블록에 포함된 제1 유효 페이지들을 제1 래치부에 복사한다(단계 S110). 상기 제1 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 래치부에 복사한다(단계 S120). 상기 제1 래치부에 복사된 상기 제1 유효 페이지들 및 상기 제2 래치부에 복사된 상기 제2 유효 페이지들을 제2 블록에 복사한다(단계 S150). 상기 제1 블록 및 상기 제2 블록은 복수의 비휘발성 메모리 장치들에 대해 설정된다. 도 8의 단계 S110, S120 및 S150은 도 1의 단계 S110, S120 및 S150과 각각 실질적으로 동일하며, 도 5a, 5b 및 5c를 참조하여 상술한 바와 같이 수행될 수 있다.
상기 제1 및 제2 데이터들을 상기 제2 블록에 복사한 이후에, 상기 제1 블록에 대한 소거 동작을 수행하고(단계 S210), 상기 제2 블록에 복사된 상기 제1 및 제2 유효 페이지들을 제3 블록에 복사한다(단계 S220). 예를 들어, 상기 제3 블록은 상기 가비지 컬렉션 동작을 위한 목표(target) 블록일 수 있다.
일 실시예에서, 상기 제1 블록에 포함되는 복수의 제1 메모리 셀들은 상기 MLC들이고, 상기 제2 블록에 포함되는 복수의 제2 메모리 셀들은 상기 SLC들이며, 상기 제3 블록에 포함되는 복수의 제3 메모리 셀들은 상기 MLC들일 수 있다.
도 9a, 9b, 9c 및 9d는 도 8의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 9a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(220a), 제1 비휘발성 메모리 장치(300e) 및 제2 비휘발성 메모리 장치(300f)를 포함할 수 있다. 제1 비휘발성 메모리 장치(300e)는 제1 SLC들(312a), 제1 MLC들(314e) 및 제1 래치부(342a)를 포함하며, 제2 비휘발성 메모리 장치(300f)는 제2 SLC들(312b), 제2 MLC들(314f) 및 제2 래치부(342b)를 포함할 수 있다. 상기 가비지 컬렉션 동작을 위한 제1 블록(SRCB1)이 제1 및 제2 MLC들(314e, 314f)의 일부에 대하여 설정되고, 상기 가비지 컬렉션 동작을 위한 제2 블록(DSTB1)이 제1 및 제2 SLC들(312a, 312b)에 대하여 설정되며, 상기 가비지 컬렉션 동작을 위한 제3 블록(TGTB1)이 제1 및 제2 MLC들(314e, 314f)의 일부에 대하여 설정될 수 있다.
도 9b를 참조하면, 도 6a 내지 6h를 참조하여 상술한 것과 유사한 동작을 수행하여 제1 블록(SRCB1)의 모든 유효 페이지들(VP)이 제2 블록(DSTB1)에 복사되며, 유효 페이지들(VP)에 저장된 데이터들(D1~D22)이 제2 블록(DSTB1)에 순차적으로 저장될 수 있다. 한편, 도시하지는 않았지만, 비휘발성 메모리 장치들(300e, 300f)은 래치부들(342a, 342b) 이외에 적어도 하나의 래치부를 더 포함할 수 있으며, 이 경우 도 7a 내지 7f를 참조하여 상술한 것과 유사한 동작을 수행하여 제1 블록(SRCB1)의 유효 페이지들(VP)이 제2 블록(DSTB1)에 복사될 수 있다.
도 9c를 참조하면, 제1 블록(SRCB1)에 대한 소거 동작이 수행되며, 이에 따라 제1 블록(SRCB1)에 포함되었던 유효 페이지들(VP) 및 무효 페이지들(IP)이 프리 페이지들(FP)로 전환될 수 있다. 또한 모든 유효 페이지들(VP)이 제2 블록(DSTB1)에서 제3 블록(TGTB1)으로 복사되며, 유효 페이지들(VP)에 저장된 데이터들(D1~D22)이 제3 블록(TGTB1)에 순차적으로 저장될 수 있다.
도 9d를 참조하면, 제2 블록(DSTB1)에 대한 소거 동작이 수행되며, 이에 따라 제2 블록(DSTB1)에 포함되었던 유효 페이지들(VP)이 프리 페이지들(FP)로 전환될 수 있다.
상술한 바와 같이, SLC들을 경유하여 MLC들에 멀티 비트 데이터를 저장하는 온-칩 버퍼드 프로그램 방식을 기초로 제1 블록(SRCB1)에 저장된 데이터들(D1~D22)을 제2 블록(DSTB1)을 경유하여 제3 블록(TGTB1)에 저장하고, 제1 블록(SRCB1) 및 제2 블록(DSTB1)에 대한 소거 동작을 수행함으로써, 저장 장치에 대한 가비지 컬렉션 동작이 완료될 수 있다.
도 10은 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 10을 참조하면, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 제1 휘발성 메모리 장치에 기초하여 제1 블록에 포함된 제1 유효 페이지들을 제1 래치부에 복사한다(단계 S110). 상기 제1 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 래치부에 복사한다(단계 S120). 상기 제1 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제3 유효 페이지들을 제3 래치부에 복사한다(단계 S130). 상기 제1 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제4 유효 페이지들을 제4 래치부에 복사한다(단계 S140). 상기 제1 블록은 복수의 비휘발성 메모리 장치들에 대해 설정된다. 도 10의 단계 S110 및 S120은 도 1의 단계 S110 및 S120과 각각 실질적으로 동일하며, 도 10의 단계 S130 및 S140은 도 10의 단계 S110 및 S120과 유사하게 수행될 수 있다.
상기 제1 내지 제4 유효 페이지들을 제2 블록에 복사한다(단계 S170). 구체적으로, 상기 제1 래치부에 복사된 상기 제1 유효 페이지들 및 상기 제2 래치부에 복사된 상기 제2 유효 페이지들을 상기 제2 블록에 복사하며(단계 S150), 상기 제3 래치부에 복사된 상기 제3 유효 페이지들 및 상기 제4 래치부에 복사된 상기 제4 유효 페이지들을 상기 제2 블록에 복사한다(단계 S160). 상기 제2 블록은 상기 복수의 비휘발성 메모리 장치들에 대해 설정된다. 도 10의 단계 S150은 도 1의 단계 S150과 실질적으로 동일하며, 도 10의 단계 S160은 단계 S150과 유사하게 수행될 수 있다.
일 실시예에서, 상기 제1 내지 제4 래치부들은 서로 다른 비휘발성 메모리 장치에 포함될 수 있다. 예를 들어, 상기 제1 래치부는 제1 비휘발성 메모리 장치에 포함되고, 상기 제2 래치부는 제2 비휘발성 메모리 장치에 포함되고, 상기 제3 래치부는 제3 비휘발성 메모리 장치에 포함되며, 상기 제4 래치부는 제4 비휘발성 메모리 장치에 포함될 수 있다. 일 실시예에서, 상기 복수의 비휘발성 메모리 장치들 각각은 온-칩 버퍼드 프로그램을 수행하도록 구현될 수 있으며, 상기 제1 블록에 포함되는 복수의 제1 메모리 셀들은 MLC들이고 상기 제2 블록에 포함되는 복수의 제2 메모리 셀들은 SLC들일 수 있다.
도 11a 내지 11d를 참조하여 후술하는 바와 같이, 단계 S110이 완료된 이후에 단계 S120이 수행되고, 단계 S120이 완료된 이후에 단계 S130이 수행되며, 단계 S130이 완료된 이후에 단계 S140이 수행될 수 있다. 단계 S110 내지 S140이 완료된 이후에 단계 S170이 수행될 수 있다.
도 11a, 11b, 11c 및 11d는 도 10의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 11a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(220b), 제1 비휘발성 메모리 장치(300g), 제2 비휘발성 메모리 장치(300h), 제3 비휘발성 메모리 장치(300i) 및 제4 비휘발성 메모리 장치(300j)를 포함할 수 있다. 제1 내지 제4 비휘발성 메모리 장치들(300g, 300h, 300i, 300j) 각각은 제1 내지 제4 SLC들(312g, 312h, 312i, 312j) 중 하나, 제1 내지 제4 MLC들(314g, 314h, 314i, 314j) 중 하나 및 제1 내지 제4 래치부들(342g, 342h, 342i, 342j) 중 하나를 포함할 수 있다. 상기 가비지 컬렉션 동작을 위한 제1 블록(SRCB2)이 제1 내지 제4 MLC들(314g, 314h, 314i, 314j)에 대하여 설정되고, 상기 가비지 컬렉션 동작을 위한 제2 블록(DSTB2)이 제1 내지 제4 SLC들(312g, 312h, 312i, 312j)에 대하여 설정될 수 있다.
제1 블록(SRCB2)은 유효 페이지들(VP)과 무효 페이지들(IP)을 포함하고, 제2 블록(DSTB2)은 프리 페이지들(FP)을 포함하며, 유효 페이지들(VP)에는 데이터들(D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, D32, D33, D34, D35, D36, D37, D38, D39, D40, D41, D42)이 저장될 수 있다.
도 11b를 참조하면, 제1 블록(SRCB2)의 유효 페이지들(VP) 중에서 제1 내지 제4 유효 페이지들에 저장된 제1 내지 제4 데이터들(D1~D16)이 제1 휘발성 메모리 장치(220b)를 경유하여 제1 내지 제4 래치부들(342g, 342h, 342i, 342j)에 순차적으로 저장될 수 있다.
예를 들어, 상기 제1 유효 페이지들에 저장된 제1 데이터(D1~D4)가 제1 휘발성 메모리 장치(220b)에 축적되고(도 11b의 ①), 제1 휘발성 메모리 장치(220b)에 축적된 제1 데이터(D1~D4)가 제1 래치부(342g)에 저장될 수 있다(도 11b의 ②). 상기 제2 유효 페이지들에 저장된 제2 데이터(D5~D8)가 제1 휘발성 메모리 장치(220b)에 축적되고(도 11b의 ③), 제1 휘발성 메모리 장치(220b)에 축적된 제2 데이터(D5~D8)가 제2 래치부(342h)에 저장될 수 있다(도 11b의 ④). 상기 제3 유효 페이지들에 저장된 제3 데이터(D9~D12)가 제1 휘발성 메모리 장치(220b)에 축적되고(도 11b의 ⑤), 제1 휘발성 메모리 장치(220b)에 축적된 제3 데이터(D9~D12)가 제3 래치부(342i)에 저장될 수 있다(도 11b의 ⑥). 상기 제1 유효 페이지들에 저장된 제4 데이터(D13~D16)가 제1 휘발성 메모리 장치(220b)에 축적되고(도 11b의 ⑦), 제1 휘발성 메모리 장치(220b)에 축적된 제4 데이터(D13~D16)가 제4 래치부(342j)에 저장될 수 있다(도 11b의 ⑧).
도 11c를 참조하면, 제1 내지 제4 래치부들(342g, 342h, 342i, 342j)에 저장된 제1 내지 제4 데이터들(D1~D16)이 제2 블록(DSTB2)에 저장될 수 있다. 이 때, 도 11d에 도시된 것처럼, 시간 ta에서 제1 데이터(D1~D4)에 대한 제1 프로그램 동작이 시작되고, 상기 제1 프로그램 동작이 완료되기 이전에 시간 tb에서 제2 데이터(D5~D8)에 대한 제2 프로그램 동작이 시작되고, 상기 제2 프로그램 동작이 완료되기 이전에 시간 tc에서 제3 데이터(D9~D12)에 대한 제3 프로그램 동작이 시작되며, 상기 제3 프로그램 동작이 완료되기 이전에 시간 td에서 제4 데이터(D13~D16)에 대한 제4 프로그램 동작이 시작될 수 있다.
제1 블록(SRCB2)의 유효 페이지들(VP) 중에서 상기 제1 내지 제4 유효 페이지들을 제외한 나머지 유효 페이지들에 대해서도 도 11b 내지 11d를 참조하여 상술한 동작들이 순차적으로 수행될 수 있으며, 최종적으로 제1 블록(SRCB2)의 모든 유효 페이지들(VP)이 제2 블록(DSTB2)에 복사될 수 있다.
도 12는 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 12를 참조하면, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 제1 휘발성 메모리 장치에 기초하여 제1 블록에 포함된 제1 유효 페이지들을 제1 래치부에 복사한다(단계 S110). 제2 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 래치부에 복사한다(단계 S120a). 상기 제1 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제3 유효 페이지들을 제3 래치부에 복사한다(단계 S130). 상기 제2 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제4 유효 페이지들을 제4 래치부에 복사한다(단계 S140). 상기 제1 블록은 복수의 비휘발성 메모리 장치들에 대해 설정된다. 도 12의 단계 S110 및 S130은 도 10의 단계 S110 및 S130과 각각 실질적으로 동일하며, 도 12의 단계 S120a 및 S140a는 제2 휘발성 메모리 장치에 기초하여 수행되는 것을 제외하면 도 10의 단계 S120 및 S140과 각각 실질적으로 동일할 수 있다.
상기 제1 내지 제4 유효 페이지들을 제2 블록에 복사한다(단계 S170). 구체적으로, 상기 제1 및 제2 유효 페이지들을 상기 제2 블록에 복사하며(단계 S150), 상기 제3 및 제4 유효 페이지들을 상기 제2 블록에 복사한다(단계 S160). 상기 제2 블록은 상기 복수의 비휘발성 메모리 장치들에 대해 설정된다. 도 12의 단계 S150, S160 및 S170은 도 10의 단계 S150, S160 및 S170과 각각 실질적으로 동일할 수 있다.
도 13a 내지 13d를 참조하여 후술하는 바와 같이, 단계 S110 및 S120a가 실질적으로 동시에 수행되고, 단계 S110 및 S120a가 완료된 이후에 단계 S130 및 S140a가 실질적으로 동시에 수행될 수 있다. 단계 S110 내지 S140a가 완료된 이후에 단계 S170이 수행될 수 있다.
도 13a, 13b, 13c 및 13d는 도 12의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 13a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(220b), 제2 휘발성 메모리 장치(220c), 제1 비휘발성 메모리 장치(300g), 제2 비휘발성 메모리 장치(300h), 제3 비휘발성 메모리 장치(300i) 및 제4 비휘발성 메모리 장치(300j)를 포함할 수 있다. 도 13a의 저장 장치는 제2 휘발성 메모리 장치(220c)를 더 포함하는 것을 제외하면 도 11a의 저장 장치와 실질적으로 동일할 수 있다.
도 13b를 참조하면, 제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 제1 및 제2 유효 페이지들에 저장된 제1 및 제2 데이터들(D1~D8)이 제1 및 제2 휘발성 메모리 장치들(220b, 220c)을 경유하여 제1 및 제2 래치부들(342g, 342h)에 저장될 수 있다. 예를 들어, 상기 제1 유효 페이지들에 저장된 제1 데이터(D1~D4)가 제1 휘발성 메모리 장치(220b)에 축적되며, 이와 동시에 상기 제2 유효 페이지들에 저장된 제2 데이터(D5~D8)가 제2 휘발성 메모리 장치(220c)에 축적될 수 있다(도 13b의 ①). 이후에 제1 휘발성 메모리 장치(220b)에 축적된 제1 데이터(D1~D4)가 제1 래치부(342g)에 저장되며, 이와 동시에 제2 휘발성 메모리 장치(220c)에 축적된 제2 데이터(D5~D8)가 제2 래치부(342h)에 저장될 수 있다(도 13b의 ②).
도 13c를 참조하면, 제1 블록(SRCB1)의 유효 페이지들(VP) 중에서 제3 및 제4 유효 페이지들에 저장된 제3 및 제4 데이터들(D9~D16)이 제1 및 제2 휘발성 메모리 장치들(220b, 220c)을 경유하여 제3 및 제4 래치부들(342i, 342j)에 저장될 수 있다. 예를 들어, 상기 제3 유효 페이지들에 저장된 제3 데이터(D9~D12)가 제1 휘발성 메모리 장치(220b)에 축적되며, 이와 동시에 상기 제4 유효 페이지들에 저장된 제4 데이터(D13~D16)가 제2 휘발성 메모리 장치(220c)에 축적될 수 있다(도 13c의 ③). 이후에 제1 휘발성 메모리 장치(220b)에 축적된 제3 데이터(D9~D12)가 제3 래치부(342i)에 저장되며, 이와 동시에 제2 휘발성 메모리 장치(220c)에 축적된 제4 데이터(D13~D16)가 제4 래치부(342j)에 저장될 수 있다(도 13b의 ④).
도 13d를 참조하면, 제1 내지 제4 래치부들(342g, 342h, 342i, 342j)에 저장된 제1 내지 제4 데이터들(D1~D16)이 제2 블록(DSTB2)에 저장될 수 있다. 이 때, 도 11d를 참조하여 상술한 것처럼, 제1 데이터(D1~D4)에 대한 상기 제1 프로그램 동작, 제2 데이터(D5~D8)에 대한 상기 제2 프로그램 동작, 제3 데이터(D9~D12)에 대한 상기 제3 프로그램 동작 및 제4 데이터(D13~D16)에 대한 상기 제4 프로그램 동작이 인터리빙 방식으로 수행될 수 있다. 최종적으로, 제1 블록(SRCB2)의 모든 유효 페이지들(VP)이 제2 블록(DSTB2)에 복사될 수 있다.
한편, 도 11a 내지 11d와 도 13a 내지 13d에 도시하지는 않았지만, 비휘발성 메모리 장치들(300g, 300h, 300i, 300j)은 래치부들(342g, 342h, 342i, 342j) 이외에 적어도 하나의 래치부를 더 포함할 수 있으며, 이 경우 도 7a 내지 7f를 참조하여 상술한 것과 유사한 동작을 수행하여 제1 블록(SRCB2)의 모든 유효 페이지들(VP)이 제2 블록(DSTB2)에 복사될 수도 있다. 또한, 도 11a 내지 11d와 도 13a 내지 13d에 도시하지는 않았지만, 제1 블록(SRCB2)의 모든 유효 페이지들(VP)이 제2 블록(DSTB2)에 복사된 이후에, 도 9a 내지 9d를 참조하여 상술한 것과 유사하게 제1 블록(SRCB2)에 대한 소거 동작 및 모든 유효 페이지들(VP)을 제3 블록(예를 들어, 목표 블록)에 복사하는 동작을 더 수행할 수도 있다.
이상, 저장 장치가 하나의 휘발성 메모리 장치와 두 개의 비휘발성 메모리 장치들을 포함하는 경우, 저장 장치가 하나의 휘발성 메모리 장치와 네 개의 비휘발성 메모리 장치들을 포함하는 경우 및 저장 장치가 두 개의 휘발성 메모리 장치들과 네 개의 비휘발성 메모리 장치들을 포함하는 경우에 기초하여 본 발명의 실시예들을 설명하였으나, 본 발명의 실시예들에 따른 저장 장치의 구동 방법은 비휘발성 메모리 장치들보다 적은 개수의 휘발성 메모리 장치를 포함하는 임의의 저장 장치에 대하여 적용될 수 있다. 예를 들어, 저장 장치가 하나의 휘발성 메모리 장치와 세 개, 다섯 개 또는 일곱 개의 비휘발성 메모리 장치들을 포함하는 경우들, 저장 장치가 하나, 두 개 또는 세 개의 휘발성 메모리 장치와 여섯 개의 비휘발성 메모리 장치들을 포함하는 경우들, 및 저장 장치가 하나, 두 개 또는 네 개의 휘발성 메모리 장치와 여덟 개의 비휘발성 메모리 장치들을 포함하는 경우들 등에 대하여 본 발명의 실시예들에 따른 저장 장치의 구동 방법이 적용될 수 있다. 또한, 저장 장치가 한 번에 네 개의 유효 페이지들을 복사하는 경우에 기초하여 본 발명의 실시예들을 설명하였으나, 저장 장치가 한 번에 복사하는 유효 페이지들의 개수는 다양하게 변경될 수 있다.
도 14는 본 발명의 실시예들에 따른 저장 장치의 구동 방법을 나타내는 순서도이다.
도 14에 도시된 저장 장치의 구동 방법은, 복수의 휘발성 메모리 장치들 및 복수의 비휘발성 메모리 장치들을 포함하는 저장 장치를 구동하기 위하여 이용될 수 있으며, 특히 상기 저장 장치 내에서 사용할 수 없게 된 저장 영역을 사용 가능하도록 전환하는 가비지 컬렉션 동작을 수행하기 위하여 이용될 수 있다.
도 14를 참조하면, 본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 제1 블록에 포함된 제1 유효 페이지들을 제1 휘발성 메모리 장치 및 적어도 하나의 제1 래치부에 분리하여 복사(separately copy)한다(단계 S310). 상기 제1 블록에 포함된 제2 유효 페이지들을 제2 휘발성 메모리 장치 및 적어도 하나의 제2 래치부에 복사한다(단계 S320). 상기 제1 휘발성 메모리 장치와 상기 적어도 하나의 제1 래치부에 분리하여 복사된 상기 제1 유효 페이지들 및 상기 제2 휘발성 메모리 장치와 상기 적어도 하나의 제2 래치부에 분리하여 복사된 상기 제2 유효 페이지들을 제2 블록에 복사한다(단계 S350). 상기 제1 블록 및 상기 제2 블록은 복수의 비휘발성 메모리 장치들에 대해 설정된다. 예를 들어, 상기 제1 블록은 상기 가비지 컬렉션 동작을 위한 소스 블록이고, 상기 제2 블록은 상기 가비지 컬렉션 동작을 위한 목적 블록일 수 있다.
도 16을 참조하여 후술하는 바와 같이, 상기 복수의 비휘발성 메모리 장치들 각각은 적어도 하나의 래치부를 포함하여 구현될 수 있다. 일 실시예에서, 상기 적어도 하나의 제1 래치부 및 상기 적어도 하나의 제2 래치부는 서로 다른 비휘발성 메모리 장치에 포함될 수 있다. 예를 들어, 상기 적어도 하나의 제1 래치부는 상기 복수의 비휘발성 메모리 장치들 중에서 제1 비휘발성 메모리 장치에 포함되며, 상기 적어도 하나의 제2 래치부는 상기 복수의 비휘발성 메모리 장치들 중에서 제2 비휘발성 메모리 장치에 포함될 수 있다.
또한, 도 16 및 17을 참조하여 후술하는 바와 같이, 상기 복수의 비휘발성 메모리 장치들 각각은 메모리 셀 어레이에 포함되는 복수의 워드 라인들이 수직으로 적층된 수직형 메모리 장치일 수 있다. 일 실시예에서, 상기 제1 및 제2 블록들에 포함되는 복수의 메모리 셀들은 복수의 데이터 비트들을 저장하는 MLC들일 수 있다. 상기 복수의 비휘발성 메모리 장치들 각각은 상기 MLC들에 프로그램 될 기입 데이터의 비트들을 분리하여 임시 저장한 이후에 상기 기입 데이터의 분리된 비트들을 한꺼번에 모아서 상기 MLC들에 저장하는 고속 프로그램(High Speed Program; HSP)을 수행하도록 구현될 수 있다.
도 19a 내지 19e를 참조하여 후술하는 바와 같이, 단계 S310 및 S320은 실질적으로 동시에 수행될 수 있으며, 단계 S310 및 S320이 완료된 이후에 단계 S350이 수행될 수 있다.
본 발명의 실시예들에 따른 저장 장치의 구동 방법에서는, 비휘발성 메모리 장치들과 동일한 개수의 휘발성 메모리 장치들을 이용하여 가비지 컬렉션 동작을 효과적으로 수행한다. 예를 들어, 소스 블록에 포함된 복수의 유효 페이지들이 복수의 비휘발성 메모리 장치들보다 많은 개수의 휘발성 메모리 장치들로 분리하여 복사되지 않으며, 상기 복수의 유효 페이지들이 상기 복수의 비휘발성 메모리 장치들과 동일한 개수의 휘발성 메모리 장치들 및 복수의 내부 래치부들로 분리하여 복사(예를 들어, 비트 단위로 분리하여 복사)된 이후에, 상기 분리하여 복사된 유효 페이지들에 기초하여 상기 복수의 유효 페이지들이 목적 블록으로 복사될 수 있다. 따라서 휘발성 메모리 장치의 사용량이 감소되어 저장 장치의 성능이 향상될 수 있으며, 휘발성 메모리 장치가 차지하는 면적이 감소되어 저장 장치의 크기가 감소될 수 있다.
도 15는 도 14의 방법에 따라 구동되는 저장 장치를 포함하는 컴퓨팅 시스템의 일 예를 나타내는 블록도이다.
도 15를 참조하면, 컴퓨팅 시스템(100b)은 호스트(110) 및 저장 장치(400)를 포함한다.
호스트(110)는 다양한 컴퓨팅 기능들을 수행하거나 다양한 응용 프로그램들을 실행할 수 있으며, 도 2의 호스트(110)와 실질적으로 동일할 수 있다.
저장 장치(400)는 컨트롤러(410), 복수의 휘발성 메모리 장치들(420) 및 복수의 비휘발성 메모리 장치들(500)을 포함한다.
컨트롤러(410)는 호스트(110)로부터 수신되는 커맨드에 응답하여 저장 장치(400)의 동작을 제어하거나, 호스트(110)로부터 수신되는 커맨드와 무관하게 저장 장치(400)의 가비지 컬렉션 동작을 제어할 수 있다. 복수의 휘발성 메모리 장치들(420)은 호스트(110)로부터 제공된 데이터에 대한 기입 버퍼 및/또는 복수의 비휘발성 메모리 장치들(500)로부터 출력된 데이터에 대한 독출 캐시로 동작할 수 있다. 복수의 비휘발성 메모리 장치들(500)은 호스트(110)로부터 제공된 데이터를 저장하거나 저장된 데이터를 출력할 수 있다. 도 15의 컨트롤러(410), 복수의 휘발성 메모리 장치들(420) 및 복수의 비휘발성 메모리 장치들(500)은 각각 도 2의 컨트롤러(210), 적어도 하나의 휘발성 메모리 장치(220) 및 복수의 비휘발성 메모리 장치들(300)과 유사하게 구현될 수 있다.
도 16은 도 15의 저장 장치에 포함되는 비휘발성 메모리 장치의 일 예를 나타내는 블록도이다.
도 16을 참조하면, 비휘발성 메모리 장치(500)는 메모리 셀 어레이(510), 로우 디코더(520), 페이지 버퍼 회로(530), 래치 회로(540), 전압 발생기(550), 입출력 버퍼 회로(560) 및 제어 회로(570)를 포함한다.
메모리 셀 어레이(510)는 복수의 워드 라인들 및 복수의 비트 라인들에 각각 연결되는 복수의 메모리 셀들을 포함할 수 있다. 도 17을 참조하여 후술하는 바와 같이, 상기 복수의 메모리 셀들 각각은 NAND 플래시 메모리 셀일 수 있으며, 상기 복수의 메모리 셀들은 3차원 수직 어레이 구조로 배열될 수 있다.
일 실시예에서, 메모리 셀 어레이(510)는 MLC들을 포함하여 구현될 수 있으며, 비휘발성 메모리 장치(500)는 HSP 방식에 기초하여 메모리 셀 어레이(510)에 기입 데이터를 프로그램할 수 있다. 한편, 도 3을 참조하여 상술한 바와 같이, 메모리 셀 어레이(510)는 SLC들 및 MLC들을 포함하여 구현될 수도 있으며, 이 경우 비휘발성 메모리 장치(500)는 온-칩 버퍼드 프로그램 방식, 쉐도우 프로그램 방식 또는 리프로그램 방식에 기초하여 메모리 셀 어레이(510)에 기입 데이터를 프로그램할 수도 있다.
래치 회로(540)는 복수의 래치부들(542)을 포함할 수 있다. 복수의 래치부들(542) 중 적어도 일부는 가비지 컬렉션 동작 시에 유효 페이지들에 저장된 데이터의 일부(예를 들어, 멀티 비트 데이터의 제1 비트들 또는 제2 비트들)를 임시로 저장할 수 있다. 페이지 버퍼 회로(530)는 메모리 셀 어레이(510)에 프로그램 될 기입 데이터 또는 메모리 셀 어레이(510)로부터 독출된 독출 데이터를 저장할 수 있다. 입출력 버퍼 회로(560)는 외부의 컨트롤러(예를 들어, 도 15의 410)로부터 상기 기입 데이터를 수신하고, 상기 독출 데이터를 상기 외부의 컨트롤러로 전송할 수 있다. 로우 디코더(520)는 로우 어드레스에 응답하여 상기 복수의 워드 라인들 중 적어도 하나를 선택할 수 있다. 전압 발생기(550)는 제어 회로(570)의 제어에 따라 워드 라인 전압들을 생성할 수 있다. 제어 회로(570)는 로우 디코더(520), 페이지 버퍼 회로(530), 래치 회로(540), 전압 발생기(550) 및 입출력 버퍼 회로(560)를 제어할 수 있다. 도 15의 로우 디코더(520), 페이지 버퍼 회로(530), 래치 회로(540), 전압 발생기(550), 입출력 버퍼 회로(560) 및 제어 회로(570)는 도 3의 로우 디코더(320), 페이지 버퍼 회로(330), 래치 회로(340), 전압 발생기(350), 입출력 버퍼 회로(360) 및 제어 회로(370)와 각각 유사하게 구현될 수 있다.
도 17은 도 16의 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이의 일 예를 나타내는 도면이다.
도 17을 참조하면, 메모리 셀 어레이(510)는 수직 구조를 가지는 복수의 스트링(511)들을 포함할 수 있다. 스트링(511)은 제2 방향(D2)을 따라 복수 개로 형성되어 스트링 열을 형성할 수 있으며, 상기 스트링 열은 제3 방향(D3)을 따라 복수 개로 형성되어 스트링 어레이를 형성할 수 있다. 복수의 스트링(511)들은 비트 라인들(BL(1), ..., BL(m))과 공통 소스 라인(CSL) 사이에 제1 방향(D1)을 따라 직렬로 배치되는 접지 선택 트랜지스터(GSTV)들, 메모리 셀(MCV)들 및 스트링 선택 트랜지스터(SSTV)들을 각각 포함할 수 있다.
접지 선택 트랜지스터(GSTV)들은 접지 선택 라인들(GSL11, GSL12, ..., GSLi1, GSLi2)에 각각 연결되고, 스트링 선택 트랜지스터(SSTV)들은 스트링 선택 라인들(SSL11, SSL12, ..., SSLi1, SSLi2)에 각각 연결될 수 있다. 동일한 층에 배열되는 메모리 셀(MCV)들은 워드 라인들(WL(1), WL(2), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 접지 선택 라인들(GSL11, ..., GSLi2) 및 스트링 선택 라인들(SSL11, ..., SSLi2)은 제2 방향(D2)으로 연장되며 제3 방향(D3)을 따라 복수 개로 형성될 수 있다. 워드 라인들(WL(1), ..., WL(n))은 제2 방향(D2)으로 연장되며 제1 방향(D1) 및 제3 방향(D3)을 따라 복수 개로 형성될 수 있다. 비트 라인들(BL(1), ..., BL(m))은 제3 방향(D3)으로 연장되며 제2 방향(D2)을 따라 복수 개로 형성될 수 있다. 메모리 셀(MCV)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
메모리 셀 어레이(510)를 포함하는 수직형 메모리 장치는 NAND 플래시 메모리 셀들을 포함하는 NAND 플래시 메모리 장치이므로, 페이지 단위로 기입 동작 및 독출 동작을 수행하며, 블록 단위로 소거 동작을 수행한다.
실시예에 따라서, 하나의 스트링(511)에 포함되는 두 개의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 연결되고 하나의 스트링에 포함되는 두 개의 접지 선택 트랜지스터들은 하나의 접지 선택 라인에 연결되도록 구현될 수도 있다. 또한, 실시예에 따라서, 하나의 스트링은 하나의 스트링 선택 트랜지스터 및 하나의 접지 선택 트랜지스터를 포함하여 구현될 수도 있다.
도 18a, 18b 및 18c는 도 14의 저장 장치의 구동 방법에 포함되는 단계들의 일 예를 나타내는 순서도들이다. 도 18a는 도 14의 단계 S310의 일 예를 나타내고, 도 18b는 도 14의 단계 S320의 일 예를 나타내며, 도 18c는 도 14의 단계 S350의 일 예를 나타낸다. 도 18a, 18b 및 18c의 실시예에서, 상기 제1 유효 페이지들에 저장된 상기 제1 데이터 및 상기 제2 유효 페이지들에 저장된 상기 제2 데이터는 2비트 데이터일 수 있다.
도 18a를 참조하면, 상기 제1 유효 페이지들을 분리하여 복사하는데 있어서, 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제1 비트들에 상응하는 제1 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적하고(단계 S311), 상기 제1 휘발성 메모리 장치에 축적된 상기 제1 비트 데이터를 제1 래치부에 저장하며(단계 S313), 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제2 비트들에 상응하는 제2 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적할 수 있다(단계 S315).
도 18b를 참조하면, 상기 제2 유효 페이지들을 분리하여 복사하는데 있어서, 상기 제2 유효 페이지들에 저장된 상기 제2 데이터의 제1 비트들에 상응하는 제3 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적하고(단계 S321), 상기 제2 휘발성 메모리 장치에 축적된 상기 제3 비트 데이터를 제2 래치부에 저장하며(단계 S323), 상기 제2 유효 페이지들에 저장된 제2 데이터의 제2 비트들에 상응하는 제4 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적할 수 있다(단계 S325).
도 18c를 참조하면, 상기 제1 및 제2 유효 페이지들을 상기 제2 블록에 복사하는데 있어서, 상기 제1 및 제2 비트 데이터들에 기초하여 상기 제1 데이터를 상기 제2 블록에 저장하는 제1 프로그램 동작을 수행하고(단계 S351), 상기 제3 및 제4 비트 데이터들에 기초하여 상기 제2 데이터를 상기 제2 블록에 저장하는 제2 프로그램 동작을 수행할 수 있으며(단계 S353), 상기 제1 프로그램 동작이 완료되기 이전에 상기 제2 프로그램 동작이 시작될 수 있다.
도 19a, 19b, 19c, 19d 및 19e는 도 14의 저장 장치의 구동 방법의 일 예를 설명하기 위한 도면들이다.
도 19a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(420a), 제2 휘발성 메모리 장치(420b), 제1 비휘발성 메모리 장치(500a) 및 제2 비휘발성 메모리 장치(500b)를 포함할 수 있다. 제1 비휘발성 메모리 장치(500a)는 제1 메모리 셀 어레이(510a) 및 제1 래치부(542a)를 포함하며, 제2 비휘발성 메모리 장치(500b)는 제2 메모리 셀 어레이(510b) 및 제2 래치부(542b)를 포함할 수 있다. 제1 및 제2 메모리 셀 어레이들(510a, 510b)은 MLC들을 포함하며, 도 17을 참조하여 상술한 것처럼 3차원 수직 어레이 구조로 구현될 수 있다. 상기 가비지 컬렉션 동작을 위한 제1 블록(SRCB3)이 제1 및 제2 메모리 셀 어레이들(510a, 510b)의 일부에 대하여 설정되고, 상기 가비지 컬렉션 동작을 위한 제2 블록(DSTB3)이 제1 및 제2 메모리 셀 어레이들(510a, 510b)의 일부에 대하여 설정될 수 있다. 도시의 편의상, 비휘발성 메모리 장치들(500a, 500b)에 포함되는 다른 구성요소들(예를 들어, 로우 디코더, 페이지 버퍼 회로, 입출력 버퍼 회로 등)은 생략하였다.
제1 블록(SRCB3)은 유효 페이지들(VP)과 무효 페이지들(IP)을 포함하며, 제2 블록(DSTB3)은 프리 페이지들(FP)을 포함할 수 있다. 유효 페이지들(VP)에는 2비트 데이터들(D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22)이 저장될 수 있다.
도 19b를 참조하면, 제1 블록(SRCB3)의 유효 페이지들(VP) 중에서 제1 유효 페이지들에 저장된 제1 데이터(D1, D2, D3, D4)의 제1 비트들에 상응하는 제1 비트 데이터(D1', D2', D3', D4')가 제1 휘발성 메모리 장치(420a)에 축적될 수 있다. 이와 동시에, 제1 블록(SRCB3)의 유효 페이지들(VP) 중에서 제2 유효 페이지들에 저장된 제2 데이터(D5, D6, D7, D8)의 제1 비트들에 상응하는 제3 비트 데이터(D5', D6', D7', D8')가 제2 휘발성 메모리 장치(420b)에 축적될 수 있다. 예를 들어, 제1 비트 데이터(D1'~D4')는 제1 데이터(D1~D4)의 최하위 비트(Least Significant Bit; LSB)들에 상응하며, 제3 비트 데이터(D5'~D8')는 제2 데이터(D5~D8)의 LSB들에 상응할 수 있다.
도 19c를 참조하면, 제1 휘발성 메모리 장치(420a)에 축적된 제1 비트 데이터(D1'~D4')가 제1 래치부(542a)에 저장될 수 있다. 이와 동시에, 제2 휘발성 메모리 장치(420b)에 축적된 제3 비트 데이터(D5'~D8')가 제2 래치부(542b)에 저장될 수 있다. 도시하지는 않았지만, 제1 및 제2 비트 데이터들(D1'~D8')이 제1 및 제2 래치부들(542a, 542b)에 저장된 이후에, 제1 및 제2 휘발성 메모리 장치들(420a, 420b)에 축적된 제1 및 제2 비트 데이터들(D1'~D8')은 삭제될 수 있다.
도 19d를 참조하면, 상기 제1 유효 페이지들에 저장된 제1 데이터(D1~D4)의 제2 비트들에 상응하는 제2 비트 데이터(D1", D2", D3", D4")가 제1 휘발성 메모리 장치(420a)에 축적될 수 있다. 이와 동시에, 상기 제2 유효 페이지들에 저장된 제2 데이터(D5~D8)의 제2 비트들에 상응하는 제4 비트 데이터(D5", D6", D7", D8")가 제2 휘발성 메모리 장치(420b)에 축적될 수 있다. 예를 들어, 제2 비트 데이터(D1"~D4")는 제1 데이터(D1~D4)의 최상위 비트(Most Significant Bit; MSB)들에 상응하며, 제4 비트 데이터(D5"~D8")는 제2 데이터(D5~D8)의 MSB들에 상응할 수 있다.
도 19e를 참조하면, 제1 및 제2 데이터들(D1~D8)이 제2 블록(DSTB3)에 저장될 수 있다. 예를 들어, 제1 비트 데이터(D1'~D4') 및 제2 비트 데이터(D1"~D4")를 기초로 HSP를 수행하여 제1 데이터(D1~D4)가 제2 블록(DSTB3)에 저장되고, 제3 비트 데이터(D5'~D8') 및 제4 비트 데이터(D5"~D8")를 기초로 HSP를 수행하여 제2 데이터(D5~D8)가 제2 블록(DSTB3)에 저장될 수 있다. 이 때, 제1 데이터(D1~D4) 및 제2 데이터(D5~D8)는 인터리빙 방식으로 프로그램될 수 있다. 다시 말하면, 제1 데이터(D1~D4)에 대한 제1 프로그램 동작이 완료되기 이전에 제2 데이터(D5~D8)에 대한 제2 프로그램 동작이 시작될 수 있다.
제1 블록(SRCB3)의 유효 페이지들(VP) 중에서 상기 제1 및 제2 유효 페이지들을 제외한 나머지 유효 페이지들에 대해서도 도 19b 내지 19e를 참조하여 상술한 동작들이 순차적으로 수행될 수 있다. 최종적으로, 제1 블록(SRCB3)의 모든 유효 페이지들(VP)이 제2 블록(DSTB3)에 복사되며, 유효 페이지들(VP)에 저장된 데이터들(D1~D22)이 제2 블록(DSTB3)에 순차적으로 저장될 수 있다.
도 20a, 20b 및 20c는 도 14의 저장 장치의 구동 방법에 포함되는 단계들의 다른 예를 나타내는 순서도들이다. 도 20a는 도 14의 단계 S310의 다른 예를 나타내고, 도 20b는 도 14의 단계 S320의 다른 예를 나타내며, 도 20c는 도 14의 단계 S350의 다른 예를 나타낸다. 도 20a, 20b 및 20c의 실시예에서, 상기 제1 유효 페이지들에 저장된 상기 제1 데이터 및 상기 제2 유효 페이지들에 저장된 상기 제2 데이터는 3비트 데이터일 수 있다.
도 20a를 참조하면, 상기 제1 유효 페이지들을 분리하여 복사하는데 있어서, 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제1 비트들에 상응하는 제1 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적하고(단계 S311), 상기 제1 휘발성 메모리 장치에 축적된 상기 제1 비트 데이터를 제1 래치부에 저장하고(단계 S313), 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제2 비트들에 상응하는 제2 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적하고(단계 S315), 상기 제1 휘발성 메모리 장치에 축적된 상기 제2 비트 데이터를 제2 래치부에 저장하며(단계 S317), 상기 제1 유효 페이지들에 저장된 상기 제1 데이터의 제3 비트들에 상응하는 제3 비트 데이터를 상기 제1 휘발성 메모리 장치에 축적할 수 있다(단계 S319).
도 20b를 참조하면, 상기 제2 유효 페이지들을 분리하여 복사하는데 있어서, 상기 제2 유효 페이지들에 저장된 상기 제2 데이터의 제1 비트들에 상응하는 제4 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적하고(단계 S321a), 상기 제2 휘발성 메모리 장치에 축적된 상기 제4 비트 데이터를 제3 래치부에 저장하고(단계 S323a), 상기 제2 유효 페이지들에 저장된 제2 데이터의 제2 비트들에 상응하는 제5 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적하고(단계 S325a), 상기 제2 휘발성 메모리 장치에 축적된 상기 제5 비트 데이터를 제4 래치부에 저장하며(단계 S327), 상기 제2 유효 페이지들에 저장된 상기 제2 데이터의 제3 비트들에 상응하는 제6 비트 데이터를 상기 제2 휘발성 메모리 장치에 축적할 수 있다(단계 S329).
도 20c를 참조하면, 상기 제1 및 제2 유효 페이지들을 상기 제2 블록에 복사하는데 있어서, 상기 제1 내지 제3 비트 데이터들에 기초하여 상기 제1 데이터를 상기 제2 블록에 저장하는 제1 프로그램 동작을 수행하고(단계 S351a), 상기 제4 내지 제6 비트 데이터들에 기초하여 상기 제2 데이터를 상기 제2 블록에 저장하는 제2 프로그램 동작을 수행할 수 있으며(단계 S353a), 상기 제1 프로그램 동작이 완료되기 이전에 상기 제2 프로그램 동작이 시작될 수 있다.
도 21a, 21b, 21c, 21d 및 21e는 도 14의 저장 장치의 구동 방법의 다른 예를 설명하기 위한 도면들이다.
도 21a를 참조하면, 상기 저장 장치는 제1 휘발성 메모리 장치(420a), 제2 휘발성 메모리 장치(420b), 제1 비휘발성 메모리 장치(500c) 및 제2 비휘발성 메모리 장치(500d)를 포함할 수 있다. 도 21a의 제1 비휘발성 메모리 장치(500c)는 래치부(542c)를 더 포함하는 것을 제외하면 도 19a의 제1 비휘발성 메모리 장치(500a)와 실질적으로 동일할 수 있고, 도 21a의 제2 비휘발성 메모리 장치(500d)는 래치부(542d)를 더 포함하는 것을 제외하면 도 19a의 제2 비휘발성 메모리 장치(500b)와 실질적으로 동일할 수 있다.
도 21b를 참조하면, 제1 블록(SRCB3)의 유효 페이지들(VP) 중에서 제1 유효 페이지들에 저장된 제1 데이터(D1, D2, D3, D4)의 제1 비트들에 상응하는 제1 비트 데이터(D1', D2', D3', D4')가 제1 휘발성 메모리 장치(420a)에 축적되며, 이와 동시에 제1 블록(SRCB3)의 유효 페이지들(VP) 중에서 제2 유효 페이지들에 저장된 제2 데이터(D5, D6, D7, D8)의 제1 비트들에 상응하는 제4 비트 데이터(D5', D6', D7', D8')가 제2 휘발성 메모리 장치(420b)에 축적될 수 있다(도 21b의 ①). 또한, 제1 휘발성 메모리 장치(420a)에 축적된 제1 비트 데이터(D1'~D4')가 제1 래치부(542a)에 저장되고, 이와 동시에 제2 휘발성 메모리 장치(420b)에 축적된 제4 비트 데이터(D5'~D8')가 제2 래치부(542b)에 저장될 수 있다(도 21b의 ②). 예를 들어, 제1 비트 데이터(D1'~D4')는 제1 데이터(D1~D4)의 LSB들에 상응하며, 제4 비트 데이터(D5'~D8')는 제2 데이터(D5~D8)의 LSB들에 상응할 수 있다.
도 21c를 참조하면, 상기 제1 유효 페이지들에 저장된 제1 데이터(D1~D4)의 제2 비트들에 상응하는 제2 비트 데이터(D1", D2", D3", D4")가 제1 휘발성 메모리 장치(420a)에 축적되며, 이와 동시에 상기 제2 유효 페이지들에 저장된 제2 데이터(D5~D8)의 제2 비트들에 상응하는 제5 비트 데이터(D5", D6", D7", D8")가 제2 휘발성 메모리 장치(420b)에 축적될 수 있다(도 21c의 ③). 또한, 제1 휘발성 메모리 장치(420a)에 축적된 제2 비트 데이터(D1"~D4")가 제1 래치부(542a)에 저장되고, 이와 동시에 제2 휘발성 메모리 장치(420b)에 축적된 제5 비트 데이터(D5"~D8")가 제2 래치부(542b)에 저장될 수 있다(도 21c의 ④). 예를 들어, 제2 비트 데이터(D1"~D4")는 제1 데이터(D1~D4)의 중간 비트(Central Significant Bit; CSB)들에 상응하며, 제5 비트 데이터(D5"~D8")는 제2 데이터(D5~D8)의 CSB들에 상응할 수 있다.
도 21d를 참조하면, 상기 제1 유효 페이지들에 저장된 제1 데이터(D1~D4)의 제3 비트들에 상응하는 제3 비트 데이터(D1"', D2"', D3"', D4"')가 제1 휘발성 메모리 장치(420a)에 축적되며, 이와 동시에 상기 제2 유효 페이지들에 저장된 제2 데이터(D5~D8)의 제3 비트들에 상응하는 제6 비트 데이터(D5"', D6"', D7"', D8"')가 제2 휘발성 메모리 장치(420b)에 축적될 수 있다(도 21d의 ⑤). 예를 들어, 제3 비트 데이터(D1"'~D4"')는 제1 데이터(D1~D4)의 MSB들에 상응하며, 제6 비트 데이터(D5"'~D8"')는 제2 데이터(D5~D8)의 MSB들에 상응할 수 있다.
도 21e를 참조하면, 제1 및 제2 데이터들(D1~D8)이 제2 블록(DSTB3)에 저장될 수 있다. 예를 들어, 제1 비트 데이터(D1'~D4'), 제2 비트 데이터(D1"~D4") 및 제3 비트 데이터(D1"'~D4"')를 기초로 HSP를 수행하여 제1 데이터(D1~D4)가 제2 블록(DSTB3)에 저장되고, 제4 비트 데이터(D5'~D8'), 제5 비트 데이터(D5"~D8") 및 제6 비트 데이터(D5"'~D8"')를 기초로 HSP를 수행하여 제2 데이터(D5~D8)가 제2 블록(DSTB3)에 저장될 수 있다. 이 때, 제1 데이터(D1~D4) 및 제2 데이터(D5~D8)는 인터리빙 방식으로 프로그램될 수 있다. 최종적으로, 제1 블록(SRCB3)의 모든 유효 페이지들(VP)이 제2 블록(DSTB3)에 복사될 수 있다.
이상, 저장 장치가 2비트 데이터 및 3비트 데이터를 저장하는 경우에 기초하여 본 발명의 실시예들을 설명하였으나, 본 발명의 실시예들에 따른 저장 장치의 구동 방법은 2비트 이상의 멀티 비트 데이터를 저장하는 임의의 저장 장치에 대하여 적용될 수 있다. 또한, 저장 장치가 두 개의 휘발성 메모리 장치와 두 개의 비휘발성 메모리 장치들을 포함하는 경우에 기초하여 본 발명의 실시예들을 설명하였으나, 본 발명의 실시예들에 따른 저장 장치의 구동 방법은 비휘발성 메모리 장치들과 동일한 개수의 휘발성 메모리 장치들을 포함하는 임의의 저장 장치에 대하여 적용될 수 있다. 또한, 저장 장치가 한 번에 네 개의 유효 페이지들을 복사하는 경우에 기초하여 본 발명의 실시예들을 설명하였으나, 저장 장치가 한 번에 복사하는 유효 페이지들의 개수는 다양하게 변경될 수 있다.
도 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동 방법을 나타내는 순서도이다.
도 22에 도시된 비휘발성 메모리 장치의 구동 방법은, 외부에 배치된 적어도 하나의 휘발성 메모리 장치와 연관하여 동작하는 비휘발성 메모리 장치를 구동하기 위하여 이용될 수 있으며, 특히 MMC, SSD 등과 같은 임의의 저장 장치에 포함되는 비휘발성 메모리 장치에 대한 가비지 컬렉션 동작을 수행하기 위하여 이용될 수 있다.
도 22를 참조하면, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 구동 방법에서는, 외부의 휘발성 메모리 장치에 기초하여 메모리 셀 어레이의 제1 블록에 포함된 제1 유효 페이지들을 내부의 제1 래치부에 복사한다. 구체적으로, 상기 제1 블록에 포함된 상기 제1 유효 페이지들을 상기 외부의 휘발성 메모리 장치에 복사하고(단계 S410), 상기 외부의 휘발성 메모리 장치에 복사된 상기 제1 유효 페이지들을 상기 내부의 제1 래치부에 복사한다(단계 S420). 또한, 상기 외부의 휘발성 메모리 장치에 기초하여 상기 제1 블록에 포함된 제2 유효 페이지들을 내부의 제2 래치부에 복사한다. 구체적으로, 상기 제1 블록에 포함된 상기 제2 유효 페이지들을 상기 외부의 휘발성 메모리 장치에 복사하고(단계 S430), 상기 외부의 휘발성 메모리 장치에 복사된 상기 제2 유효 페이지들을 상기 내부의 제2 래치부에 복사한다(단계 S440). 상기 내부의 제1 래치부에 복사된 상기 제1 유효 페이지들 및 상기 내부의 제2 래치부에 복사된 상기 제2 유효 페이지들을 상기 메모리 셀 어레이의 제2 블록에 복사한다(단계 S450).
일 실시예에서, 상기 메모리 셀 어레이는 복수의 MLC들 및 복수의 SLC들을 포함하여 구현될 수 있다. 이 경우, 상기 비휘발성 메모리 장치는 온-칩 버퍼드 프로그램을 수행하도록 구현될 수 있으며, 상기 제1 블록에 포함되는 복수의 제1 메모리 셀들은 상기 MLC들이고 상기 제2 블록에 포함되는 복수의 제2 메모리 셀들은 상기 SLC들일 수 있다. 또한 이 경우, 제1 블록에 대한 소거 동작을 수행하는 단계 및 상기 제2 블록에 복사된 상기 제1 및 제2 유효 페이지들을 제3 블록에 복사하는 단계를 더 수행할 수 있다.
도 23은 본 발명의 실시예들에 따른 저장 장치가 메모리 카드에 응용된 예를 나타내는 도면이다.
도 23을 참조하면, 메모리 카드(900)는 복수의 접속 핀들(910), 메모리 컨트롤러(920), 적어도 하나의 휘발성 메모리 장치(930) 및 복수의 비휘발성 메모리 장치들(940)을 포함한다.
호스트(미도시)와 메모리 카드(900) 사이의 신호들이 송수신되도록 복수의 접속 핀들(910)은 상기 호스트에 연결될 수 있다. 복수의 접속 핀들(910)은 클록 핀, 커맨드 핀, 데이터 핀 및/또는 리셋 핀을 포함할 수 있다.
메모리 컨트롤러(920)는, 상기 호스트로부터 데이터를 수신하고 상기 수신된 데이터를 휘발성 메모리 장치(930)를 경유하여 복수의 비휘발성 메모리 장치들(940)에 저장할 수 있으며, 복수의 비휘발성 메모리 장치들(940)로부터 출력된 데이터를 휘발성 메모리 장치(930)를 경유하여 상기 호스트에 제공할 수 있다. 또한, 메모리 컨트롤러(920)는 휘발성 메모리 장치(930)를 이용하여 복수의 비휘발성 메모리 장치들(940)에 대한 가비지 컬렉션 동작을 수행할 수 있다.
메모리 카드(900)는 도 1 내지 22를 참조하여 상술한 본 발명의 실시예들에 따른 저장 장치의 구동 방법에 따라 동작할 수 있다. 구체적으로, 비휘발성 메모리 장치들(940)이 온-칩 버퍼드 프로그램을 수행하도록 구현되는 경우에 메모리 카드(900)는 비휘발성 메모리 장치들(940)보다 적은 개수의 휘발성 메모리 장치(930) 및 비휘발성 메모리 장치들(940) 내부의 래치부들을 이용하여 가비지 컬렉션 동작을 수행하며, 비휘발성 메모리 장치들(940)이 수직형 메모리 장치들이고 HSP를 수행하도록 구현되는 경우에 메모리 카드(900)는 비휘발성 메모리 장치들(940)과 동일한 개수의 휘발성 메모리 장치(930)들 및 내부의 래치부들을 이용하여 가비지 컬렉션 동작을 수행할 수 있다. 따라서, 메모리 카드(900)의 성능이 향상되고 메모리 카드(900)의 크기가 감소될 수 있다.
예를 들어, 메모리 카드(900)는 멀티미디어 카드(MultiMedia Card; MMC), 임베디드 멀티미디어 카드(embedded MultiMedia Card; eMMC), 하이브리드 임베디드 멀티미디어 카드(hybrid embedded MultiMedia Card; hybrid eMMC), SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA(Personal Computer Memory Card International Association) 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card)등과 같은 메모리 카드일 수 있다.
실시예에 따라서, 메모리 카드(900)는 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 호스트에 장착될 수 있다.
도 24는 본 발명의 실시예들에 따른 저장 장치가 솔리드 스테이트 드라이브에 응용된 예를 나타내는 도면이다.
도 24를 참조하면, SSD(1000)는 메모리 컨트롤러(1010), 적어도 하나의 휘발성 메모리 장치(1020) 및 복수의 비휘발성 메모리 장치들(1030)을 포함한다.
메모리 컨트롤러(1010)는 호스트(미도시)로부터 데이터를 수신하고, 상기 수신된 데이터를 복수의 비휘발성 메모리 장치들(1030)에 저장할 수 있다. 적어도 하나의 휘발성 메모리 장치(1020)는 상기 호스트와 복수의 비휘발성 메모리 장치들(1030) 사이에서 교환되는 데이터를 일시 저장할 수 있다.
SSD(1000)는 도 1 내지 22를 참조하여 상술한 본 발명의 실시예들에 따른 저장 장치의 구동 방법에 따라 동작할 수 있다. 구체적으로, 비휘발성 메모리 장치들(1030)이 온-칩 버퍼드 프로그램을 수행하도록 구현되는 경우에 SSD(1000)는 비휘발성 메모리 장치들(1030)보다 적은 개수의 휘발성 메모리 장치(1020) 및 비휘발성 메모리 장치들(1030) 내부의 래치부들을 이용하여 가비지 컬렉션 동작을 수행하며, 비휘발성 메모리 장치들(1030)이 수직형 메모리 장치들이고 HSP를 수행하도록 구현되는 경우에 SSD(1000)는 비휘발성 메모리 장치들(1030)과 동일한 개수의 휘발성 메모리 장치(1020)들 및 내부의 래치부들을 이용하여 가비지 컬렉션 동작을 수행할 수 있다. 따라서, SSD(1000)의 성능이 향상되고 SSD(1000)의 크기가 감소될 수 있다.
실시예에 따라서, SSD(1000)는 컴퓨터, 노트북, 핸드폰, 스마트 폰, MP3 플레이어, PDA, PMP, 디지털 TV, 디지털 카메라, 포터블 게임 콘솔 등과 같은 호스트에 장착될 수 있다.
도 25는 본 발명의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 25를 참조하면, 컴퓨팅 시스템(1100)은 프로세서(1110), 메모리 장치(1120), 사용자 인터페이스(1130), 버스(1150) 및 저장 장치(1160)를 포함한다. 실시예에 따라, 컴퓨팅 시스템(1100)은 베이스밴드 칩 셋(baseband chipset)과 같은 모뎀(1140)을 더 포함할 수 있다.
프로세서(1110)는 특정 계산들 또는 태스크들을 실행할 수 있다. 예를 들어, 프로세서(1110)는 마이크로프로세서 또는 중앙 처리 장치(CPU)일 수 있다. 프로세서(1110)는 어드레스 버스, 제어 버스 및/또는 데이터 버스와 같은 버스(1150)를 통하여 메모리 장치(1120)에 연결될 수 있다. 예를 들어, 메모리 장치(1120)는 DRAM, 모바일 DRAM, SRAM, PRAM, FRAM, RRAM 및/또는 MRAM으로 구현될 수 있다. 또한, 프로세서(1110)는 주변 구성요소 상호연결(peripheral component interconnect, PCI) 버스와 같은 확장 버스에 연결될 수 있다. 이에 따라, 프로세서(1110)는 키보드 또는 마우스와 같은 하나 이상의 입력 장치, 프린터 또는 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함하는 사용자 인터페이스(1130)를 제어할 수 있다. 모뎀(1140)은 외부 장치와 무선으로 데이터를 송수신할 수 있다.
저장 장치(1160)의 비휘발성 메모리 장치들(1190)에는 프로세서(1110)에 의해 처리된 데이터 또는 모뎀(1140)을 통하여 수신된 데이터 등이 메모리 컨트롤러(1170) 및 휘발성 메모리 장치(1180)를 통해 저장될 수 있다. 저장 장치(1160)는 본 발명의 실시예들에 따른 구동 방법에 따라 동작함으로써, 성능이 향상되고 크기가 감소될 수 있다.
실시예에 따라서, 컴퓨팅 시스템(1100)은 동작 전압을 공급하기 위한 파워 서플라이를 더 포함할 수 있다. 또한, 실시예에 따라서, 컴퓨팅 시스템(1100)은 응용 칩셋(application chipset), 카메라 이미지 프로세서(camera image processor, CIS) 등을 더 포함할 수 있다.
본 발명은 휘발성 메모리 장치 및 비휘발성 메모리 장치를 구비하는 저장 장치와 이를 포함하는 임의의 장치 및 전자 기기에 적용될 수 있다. 특히, 본 발명은 메모리 카드, SSD, eMMC, 유니버설 플래시 스토리지, 하이브리드 유니버설 플래시 스토리지, 컴퓨터, 디지털 카메라, 3차원 카메라, 휴대폰, PDA, 스캐너, 차량용 네비게이션 등에 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 제1 유효 페이지들을 복수의 비휘발성 메모리 장치들에 대해 설정된 제1 블록에서 제1 휘발성 메모리 장치로 복사하는 단계;
    상기 제1 유효 페이지들을 상기 제1 휘발성 메모리 장치에서 상기 복수의 비휘발성 메모리 장치들에 포함된 제1 래치부로 복사하는 단계;
    제2 유효 페이지들을 상기 제1 블록에서 상기 제1 휘발성 메모리 장치로 복사하는 단계;
    상기 제2 유효 페이지들을 상기 제1 휘발성 메모리 장치에서 상기 복수의 비휘발성 메모리 장치들에 포함된 제2 래치부로 복사하는 단계;
    상기 제1 유효 페이지들을 상기 제1 래치부에서 상기 복수의 비휘발성 메모리 장치들에 대해 설정되고 상기 제1 블록과 다른 제2 블록에 기입하는 제1 프로그램 동작을 수행하는 단계; 및
    상기 제2 유효 페이지들을 상기 제2 래치부에서 상기 제2 블록에 기입하는 제2 프로그램 동작을 수행하는 단계를 포함하고,
    상기 제2 프로그램 동작은 상기 제1 프로그램 동작이 완료되기 이전에 시작되는 저장 장치의 구동 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 제1 블록에 포함되는 복수의 제1 메모리 셀들은 복수의 데이터 비트들을 저장하는 멀티 레벨 메모리 셀(multi level memory cell; MLC)들이며, 상기 제2 블록에 포함되는 복수의 제2 메모리 셀들은 하나의 데이터 비트를 저장하는 싱글 레벨 메모리 셀(single level memory cell; SLC)들인 것을 특징으로 하는 저장 장치의 구동 방법.
  6. 제 1 항에 있어서,
    상기 제1 블록에 대한 소거 동작을 수행하는 단계; 및
    상기 제2 블록에 기입된 상기 제1 및 제2 유효 페이지들을 상기 복수의 비휘발성 메모리 장치들에 대해 설정되고 상기 제1 및 제2 블록들과 다른 제3 블록에 복사하는 단계를 더 포함하는 것을 특징으로 하는 저장 장치의 구동 방법.
  7. 제 1 항에 있어서,
    제3 유효 페이지들을 상기 제1 블록에서 제2 휘발성 메모리 장치로 복사하는 단계;
    상기 제3 유효 페이지들을 상기 제2 휘발성 메모리 장치에서 상기 복수의 비휘발성 메모리 장치들에 포함된 제3 래치부로 복사하는 단계;
    제4 유효 페이지들을 상기 제1 블록에서 상기 제2 휘발성 메모리 장치로 복사하는 단계;
    상기 제4 유효 페이지들을 상기 제2 휘발성 메모리 장치에서 상기 복수의 비휘발성 메모리 장치들에 포함된 제4 래치부로 복사하는 단계;
    상기 제3 유효 페이지들을 상기 제3 래치부에서 상기 제2 블록으로 복사하는 단계; 및
    상기 제4 유효 페이지들을 상기 제4 래치부에서 상기 제2 블록으로 복사하는 단계를 더 포함하는 것을 특징으로 하는 저장 장치의 구동 방법.
  8. 제1 유효 페이지들을 복수의 비휘발성 메모리 장치들에 대해 설정된 제1 블록에서 제1 휘발성 메모리 장치로 복사하는 단계;
    상기 제1 유효 페이지들을 상기 제1 휘발성 메모리 장치에서 상기 복수의 비휘발성 메모리 장치들에 포함된 제1 래치부로 복사하는 단계;
    제2 유효 페이지들을 상기 제1 블록에서 제2 휘발성 메모리 장치로 복사하는 단계;
    상기 제2 유효 페이지들을 상기 제2 휘발성 메모리 장치에서 상기 복수의 비휘발성 메모리 장치들에 포함된 제2 래치부로 복사하는 단계;
    상기 제1 유효 페이지들을 상기 제1 래치부에서 상기 복수의 비휘발성 메모리 장치들에 대해 설정되고 상기 제1 블록과 다른 제2 블록에 기입하는 제1 프로그램 동작을 수행하는 단계; 및
    상기 제2 유효 페이지들을 상기 제2 래치부에서 상기 제2 블록에 기입하는 제2 프로그램 동작을 수행하는 단계를 포함하고,
    상기 제2 프로그램 동작은 상기 제1 프로그램 동작이 완료되기 이전에 시작되는 저장 장치의 구동 방법.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 복수의 비휘발성 메모리 장치들 각각은 복수의 워드 라인들이 수직으로 적층된 수직형 메모리 장치이며,
    상기 제1 및 제2 블록들에 포함되는 복수의 메모리 셀들은 각각 복수의 데이터 비트들을 저장하는 멀티 레벨 메모리 셀(multi level memory cell; MLC)들인 것을 특징으로 하는 저장 장치의 구동 방법.
KR1020130163613A 2013-12-26 2013-12-26 저장 장치의 구동 방법 KR102166924B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130163613A KR102166924B1 (ko) 2013-12-26 2013-12-26 저장 장치의 구동 방법
US14/579,179 US9772940B2 (en) 2013-12-26 2014-12-22 Storage device comprising volatile and nonvolatile memory devices, and related methods of operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130163613A KR102166924B1 (ko) 2013-12-26 2013-12-26 저장 장치의 구동 방법

Publications (2)

Publication Number Publication Date
KR20150075551A KR20150075551A (ko) 2015-07-06
KR102166924B1 true KR102166924B1 (ko) 2020-10-16

Family

ID=53481804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130163613A KR102166924B1 (ko) 2013-12-26 2013-12-26 저장 장치의 구동 방법

Country Status (2)

Country Link
US (1) US9772940B2 (ko)
KR (1) KR102166924B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6448570B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US10101942B1 (en) * 2017-04-17 2018-10-16 Sandisk Technologies Llc System and method for hybrid push-pull data management in a non-volatile memory
TWI628543B (zh) * 2017-09-07 2018-07-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN109002259B (zh) * 2018-06-28 2021-03-09 苏州浪潮智能科技有限公司 一种归置组所属硬盘分配方法、系统、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20080098165A1 (en) * 2006-10-13 2008-04-24 Naoharu Shinozaki Semiconductor device and method of controlling the same
US20100318839A1 (en) * 2009-06-16 2010-12-16 Sandisk Corporation Data recovery in multi-level cell nonvolatile memory
US20110296087A1 (en) * 2010-05-25 2011-12-01 Samsung Electronics Co., Ltd. Method of merging blocks in a semiconductor memory device, and semiconductor memory device to perform a method of merging blocks
US20120079167A1 (en) * 2010-09-24 2012-03-29 Kabushiki Kaisha Toshiba Memory system
US20130227203A1 (en) * 2008-11-12 2013-08-29 Micron Technology, Inc. Dynamic slc/mlc blocks allocations for non-volatile memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4050548B2 (ja) 2002-04-18 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
US7624137B2 (en) 2004-01-05 2009-11-24 International Business Machines Corporation Method and apparatus for scheduling and performing garbage collection in a real-time system with guaranteed space bounds
KR100765786B1 (ko) 2006-06-12 2007-10-12 삼성전자주식회사 플래시 메모리 시스템, 그 프로그램을 위한 호스트 시스템및 프로그램 방법
KR100754226B1 (ko) 2006-08-22 2007-09-03 삼성전자주식회사 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치
US7444463B2 (en) 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
US8738841B2 (en) * 2007-12-27 2014-05-27 Sandisk Enterprise IP LLC. Flash memory controller and system including data pipelines incorporating multiple buffers
KR101026634B1 (ko) 2009-12-18 2011-04-04 성균관대학교산학협력단 하이브리드 플래시 메모리의 데이터 저장 방법
KR101774496B1 (ko) 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
US20120297121A1 (en) 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions
US8930614B2 (en) * 2011-07-29 2015-01-06 Kabushiki Kaisha Toshiba Data storage apparatus and method for compaction processing
KR20130057086A (ko) 2011-11-23 2013-05-31 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20080098165A1 (en) * 2006-10-13 2008-04-24 Naoharu Shinozaki Semiconductor device and method of controlling the same
US20130227203A1 (en) * 2008-11-12 2013-08-29 Micron Technology, Inc. Dynamic slc/mlc blocks allocations for non-volatile memory
US20100318839A1 (en) * 2009-06-16 2010-12-16 Sandisk Corporation Data recovery in multi-level cell nonvolatile memory
US20110296087A1 (en) * 2010-05-25 2011-12-01 Samsung Electronics Co., Ltd. Method of merging blocks in a semiconductor memory device, and semiconductor memory device to perform a method of merging blocks
US20120079167A1 (en) * 2010-09-24 2012-03-29 Kabushiki Kaisha Toshiba Memory system

Also Published As

Publication number Publication date
US9772940B2 (en) 2017-09-26
US20150186054A1 (en) 2015-07-02
KR20150075551A (ko) 2015-07-06

Similar Documents

Publication Publication Date Title
US11137912B2 (en) Memory controller and method of operating the same
US8812773B2 (en) Method of merging blocks in a semiconductor memory device, and semiconductor memory device to perform a method of merging blocks
US20130132644A1 (en) Method of programming a nonvolatile memory device
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US8593900B2 (en) Method and apparatus for performing multi-block access operation in nonvolatile memory device
US20130024608A1 (en) Flash memory apparatus
US10936508B2 (en) Storage device and method of operating the same
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
CN111177020B (zh) 存储装置及其操作方法
KR102166924B1 (ko) 저장 장치의 구동 방법
CN112035055A (zh) 存储设备及其操作方法
US20200081656A1 (en) Apparatus and method for processing data in memory system
CN114860622A (zh) 存储装置及操作存储装置的方法
CN111078583A (zh) 存储器系统及其操作方法
CN112346650A (zh) 存储装置及其操作方法
CN112748874A (zh) 执行主机感知性能增强模式的存储器控制器及其操作方法
KR20130055062A (ko) 비휘발성 메모리 장치의 데이터 독출 방법 및 구동 방법
CN110716880B (zh) 存储器系统及其操作方法
CN110716881B (zh) 存储器系统及其操作方法
US11055019B2 (en) Storage device and method of operating the same
US10996881B2 (en) Storage device and method of operating the same
US20130318419A1 (en) Flash memory system including read counter logic
CN114388038A (zh) 存储器设备及其操作方法
CN114489467A (zh) 存储器控制器及其操作方法
US20210124528A1 (en) Memory device and method of operating the same

Legal Events

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