KR102147628B1 - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR102147628B1
KR102147628B1 KR1020130006567A KR20130006567A KR102147628B1 KR 102147628 B1 KR102147628 B1 KR 102147628B1 KR 1020130006567 A KR1020130006567 A KR 1020130006567A KR 20130006567 A KR20130006567 A KR 20130006567A KR 102147628 B1 KR102147628 B1 KR 102147628B1
Authority
KR
South Korea
Prior art keywords
block
sub
memory
area
flash memory
Prior art date
Application number
KR1020130006567A
Other languages
English (en)
Other versions
KR20140094170A (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 KR1020130006567A priority Critical patent/KR102147628B1/ko
Priority to US14/155,960 priority patent/US9190155B2/en
Publication of KR20140094170A publication Critical patent/KR20140094170A/ko
Application granted granted Critical
Publication of KR102147628B1 publication Critical patent/KR102147628B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Abstract

메모리 시스템이 제공된다. 상기 메모리 시스템은 서로 다른 제1 서브 블록과 제2 서브 블록을 포함하되, 상기 제2 서브 블록은 프리 페이지(free page)만으로 구성되는 블록을 포함하는 플래시 메모리, 및 상기 서브 블록 단위로 상기 플래시 메모리를 소거하고, 가비지 컬렉션(garbage collection)이 필요한 경우, 상기 제1 서브 블록의 유효 페이지(valid page)의 데이터를 상기 제2 서브 블록에 카피하는 컨트롤러를 포함한다.

Description

메모리 시스템{Memory system}
본 발명은 메모리 시스템에 관한 것이다.
메모리 장치는 크게 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분된다. 휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등을 포함한다. 비휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 비휘발성 메모리 장치는 플래시 메모리 장치, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 저항성 메모리 장치(예를 들어, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), RRAM(Resistive RAM)) 등을 포함한다.
플래시 메모리의 블록의 크기가 증가하게 되면(예를 들어, 페이지에 2 Kbyte가 저장되는 경우) 전체 블록 머지(full block merge)의 수행 시간이 증가하게 된다. 특히, 타임아웃(time-out)이 존재하는 메모리 시스템의 경우, 머지(merge)를 수행하는 빈도수가 증가한다. 또한, 동일 밀도(density)에서, 블록의 크기가 증가함에 따라, 블록의 개수는 감소하기 때문에, 컨트롤러가 관리할 수 있는 프리 블록(free block)의 개수가 감소하게 된다. 이와 같은 이유로 인해, 플래시 메모리의 쓰기 성능이 저하되고, 블록 운용에 문제점이 발생하게 된다.
본 발명이 해결하려는 과제는, 플래시 메모리의 저장 공간을 효율적으로 관리하는 저장 장치를 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 메모리 시스템의 일 태양은 서로 다른 제1 서브 블록과 제2 서브 블록을 포함하되, 상기 제2 서브 블록은 프리 페이지(free page)만으로 구성되는 블록을 포함하는 플래시 메모리, 및 상기 서브 블록 단위로 상기 플래시 메모리를 소거하고, 가비지 컬렉션(garbage collection)이 필요한 경우, 상기 제1 서브 블록의 유효 페이지(valid page)의 데이터를 상기 제2 서브 블록에 카피하는 컨트롤러를 포함한다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 제2 서브 블록의 개수가 기준 개수보다 작은 경우, 상기 가비지 컬렉션이 필요한 것으로 판단할 수 있다.
본 발명의 몇몇 실시예에서, 상기 블록은 상기 제1 서브 블록을 포함하는 제1 영역과, 상기 제2 서브 블록을 포함하는 제2 영역을 포함하고, 상기 컨트롤러는 상기 유효 페이지의 데이터가 카피된 상기 제2 서브 블록을 상기 제1 영역으로 편입시켜 메타 데이터를 기록할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 유효 페이지의 데이터를 상기 제2 서브 블록에 카피한 후, 상기 제1 서브 블록을 소거할 수 있다.
본 발명의 몇몇 실시예에서, 상기 블록은 상기 제1 서브 블록을 포함하는 제1 영역과, 상기 제2 서브 블록을 포함하는 제2 영역을 포함하고, 상기 컨트롤러는 상기 소거된 상기 제1 서브 블록을 상기 제2 영역으로 편입시켜 메타 데이터를 기록할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 서브 블록 또는 상기 제2 서브 블록은 적어도 하나의 페이지를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 서브 블록은 파일 시스템에 제공되는 영역이고, 상기 제2 서브 블록은 상기 파일 시스템에 비제공되는 영역일 수 있다.
상기 과제를 해결하기 위한 본 발명의 메모리 시스템의 다른 태양은 복수의 블록을 포함하는 플래시 메모리, 및 상기 플래시 메모리에 데이터를 저장하는 컨트롤러를 포함하되, 상기 각 블록은 파일 시스템에 제공되는 제1 영역과 상기 파일 시스템에 비제공되는 제2 영역을 포함한다.
본 발명의 몇몇 실시예에서, 상기 제1 영역은 유효 페이지(valid page) 및 무효 페이지(invalid page)로 구성된 제1 서브 블록을 포함하고, 상기 제2 영역은 프리 페이지(free page)로 구성된 제2 서브 블록을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 유효 페이지의 데이터를 상기 제2 서브 블록에 카피하여 가비지 컬렉션(garbage collection)을 수행할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 제2 서브 블록의 개수가 기준 개수보다 작은 경우, 상기 가비지 컬렉션을 수행할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 유효 페이지의 데이터를 상기 제2 서브 블록에 카피한 후, 상기 제1 서브 블록을 소거할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 상기 제2 서브 블록을 상기 제1 영역으로 편입시켜 메타 데이터를 기록하고, 상기 소거된 제1 서브 블록을 상기 제2 영역으로 편입시켜 메타 데이터를 기록할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 서브 블록 또는 상기 제2 서브 블록은 적어도 하나의 페이지를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 컨트롤러는 적어도 하나의 페이지 단위로 상기 플래시 메모리를 소거할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 저장 장치의 컨트롤러를 설명하기 위한 블록도이다.
도 3은 도 1의 저장 장치의 플래시 메모리를 설명하기 위한 개념도이다.
도 4는 도 3의 메모리 블록을 설명하기 위한 사시도이다.
도 5는 도 3의 메모리 블록을 설명하기 위한 등가 회로도이다.
도 6은 도 1의 메모리 시스템의 저장 장치의 메모리 블록의 구조를 설명하기 위한 도면이다.
도 7은 도 6의 메모리 블록의 페이지의 구조를 설명하기 위한 도면이다.
도 8은 본 발명의 다른 일 실시예에 따른 메모리 시스템의 저장 장치의 메모리 블록의 구조를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 10은 도 9의 메모리 시스템의 동작 방법의 컴팩션(compaction)을 설명하기 위한 도면이다.
도 11은 본 발명의 실시예에 따른 메모리 시스템의 응용예를 설명하기 위한 블록도이다.
도 12는 도 11의 메모리 시스템을 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이고, 도 2는 도 1의 저장 장치의 컨트롤러를 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템(1)은 호스트(host)와 저장 장치(100)를 포함한다.
저장 장치(100)는 데이터를 저장하는 플래시 메모리(120; flash memory)와 플래시 메모리(120)를 제어하는 컨트롤러(110; controller)를 포함할 수 있다.
컨트롤러(110)는 호스트 및 플래시 메모리(120)에 연결된다. 컨트롤러(110)는 호스트의 요청에 응답하여, 플래시 메모리(120)를 액세스(access)할 수 있다. 예를 들어, 컨트롤러(110)는 플래시 메모리(120)의 읽기(read), 쓰기(write), 소거(erase), 그리고 배경(background) 동작을 제어할 수 있다.
컨트롤러(110)는 플래시 메모리(120) 및 호스트 사이에 인터페이스를 제공한다. 컨트롤러(110)는 플래시 메모리(120)를 제어하기 위한 펌웨어(firmware)를 구동할 수 있다.
플래시 메모리(120)는 데이터가 기록되는 복수의 메모리 셀을 포함하도록 구성된다. 플래시 메모리(120)는 예를 들어, 하나의 메모리 셀에 하나의 비트 데이터가 기록되는 싱글 레벨 셀(Single Level Cell; SLC) 메모리일 수 있으나, 본 발명이 이에 한정되는 것은 아니고, 둘 이상의 비트 데이터가 기록될 수 있는 멀티 레벨 셀(Multi Level Cell; MLC) 메모리일 수 있다. 예시적으로, 플래시 메모리(120)는 낸드(NAND) 플래시 메모리(120)일 수 있으며, 후술하는 바와 같이 블록의 크기가 큰(예를 들어, 페이지에 2 Kbyte가 저장될 수 있는) 라지 블록 낸드(Large Block NAND) 플래시 메모리(120)일 수 있다.
플래시 메모리(120)는 복수의 메모리 셀로 구성된 메모리 셀 어레이(memory cell array)를 포함한다. 메모리 셀 어레이는 2차원 어레이 구조 또는 3차원 어레이 구조를 갖도록 구성될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 플래시 메모리(120)는 수직형(vertical) NAND 플래시 메모리 셀 어레이 구조로 제공될 수 있다.
도 2를 참조하면, 예시적으로, 컨트롤러(110)는 호스트 인터페이스(111; host I/F), 메모리 인터페이스(114; memory I/F), 메모리 모듈(113; memory module), 프로세서(112; processor)를 포함할 수 있다.
호스트 인터페이스(111)는 호스트 및 컨트롤러(110) 사이의 데이터/커맨드 등의 교환을 수행하기 위한 프로토콜을 포함한다. 컨트롤러(110)는 예를 들어, USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E(PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(호스트)와 통신하도록 구성된다.
메모리 인터페이스(114)는 플래시 메모리(120)와 인터페이싱한다. 메모리 인터페이스(114)는 예를 들어, 낸드 인터페이스를 포함한다.
메모리 모듈(113)은 프로세서(112)의 동작 메모리, 플래시 메모리(120) 및 호스트 사이의 캐시 메모리, 플래시 메모리(120) 및 호스트 사이의 버퍼 메모리 중 적어도 하나로서 사용될 수 있다. 메모리 모듈(113)은 플래시 메모리(120)에 쓸 데이터 또는 플래시 메모리(120)로부터 읽어진 데이터를 임시 저장할 수 있다. 메모리 모듈(113)은 예를 들어, SRAM을 포함할 수 있으나, 이에 한정되는 것은 아니다.
프로세서(112)는 컨트롤러(110)의 제반 동작을 제어한다.
한편, 명확하게는 도시하지 않았으나, 컨트롤러(110)는 오류 정정 블록을 추가적으로 포함하도록 구성될 수 있다. 오류 정정 블록은 오류 정정 코드(ECC)를 이용하여 플래시 메모리(120)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성될 수 있다.
예시적으로, 오류 정정 블록은 컨트롤러(110)의 구성 요소로서 제공될 수 있다. 오류 정정 블록은 플래시 메모리(120)의 구성 요소로서 제공될 수도 있다.
한편, 명확하게는 도시하지 않았으나, 예시적으로, 호스트는 호스트 프로세서(host processor), 인터페이스 모듈(interface module)을 포함할 수 있다. 또는, 호스트는 RAM, ROM, 기타 구성요소 등을 더 포함할 수 있다.
호스트 프로세서는 호스트의 제반 동작을 제어한다. 호스트 프로세서는 어플리케이션(application) 등의 요청에 응답하여, 저장 장치(100)에 쓰기(write) 커맨드, 읽기(read) 커맨드, 소거(erase) 커맨드 등을 전송할 수 있다. 호스트 프로세서는 저장 장치(100)에 저장된 파일을 관리하기 위한 파일 시스템을 구동할 수 있다.
인터페이스 모듈은 저장 장치(100)의 호스트 인터페이스(111)와 통신하기 위한 용도로 사용된다. 호스트는 예를 들어, USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E(PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(저장 장치(100))와 통신하도록 구성된다.
도 3은 도 1의 저장 장치의 플래시 메모리를 설명하기 위한 개념도이고, 도 4는 도 3의 메모리 블록을 설명하기 위한 사시도이다.
도 3을 참조하면, 플래시 메모리(120)의 메모리 셀 어레이는, 다수의 메모리 블록(BLK0~BLKi, 단, i는 자연수)를 포함할 수 있다. 각 메모리 블록(BLK0~BLKi)은 제1 내지 제3 방향(D1, D2, D3)으로 연장될 수 있다. 제1 내지 제3 방향(D1, D2, D3)은 도시된 것과 같이, 서로 교차하는 방향이고, 서로 다른 방향일 수 있다. 예를 들어, 제1 내지 제3 방향(D1, D2, D3)은 서로 직각으로 교차하는 방향일 수 있으나, 이에 한정되는 것은 아니다.
도 4를 참조하면, 메모리 블록(BLKi, 단, i는 자연수)은 기판(121) 상에 형성된 다수의 중간 배선 구조체(123), 다수의 층간 절연막(124), 다수의 게이트 패턴(126a~126i), 블록층(125; block layer), 다수의 비트라인(128a~128c)을 포함할 수 있다.
기판(121)에는 복수의 도핑 영역(122)들이 제공될 수 있다.
다수의 층간 절연막(124)은 기판(121) 상에 제2 방향(D2)으로 서로 이격되어 순차적으로 적층될 수 있다. 도 4에 도시된 바와 같이, 다수의 층간 절연막(124) 각각은 제1 방향(D1)으로 길게 연장되도록 형성될 수 있다. 이러한 층간 절연막(124)은 산화물일 수 있으나, 이에 한정되는 것은 아니다.
중간 배선 구조체(123)는 정보 저장 패턴(123a), 채널 패턴(123b)을 포함할 수 있다. 채널 패턴(123b)과 게이트 패턴(126a~126i)이 교차하는 영역에서, 플래시 메모리 셀이 정의될 수 있다.
채널 패턴(123b)은 제2 방향(D2)으로 길게 연장되어 형성되고, 다수의 게이트 패턴(126a~126i)은 제1 방향(D1)으로 길게 연장되어 형성된다. 구체적으로, 채널 패턴(123b)은 기판(121) 상에 필러(pillar) 형태로 배치되어, 적층된 다수의 층간 절연막(124)을 관통하도록 형성된다. 다수의 게이트 패턴(126a~126i)은 적층된 다수의 층간 절연막(124) 사이에 각각 형성되고, 채널 패턴(123b)과 이격되어 배치될 수 있다. 다수의 게이트 패턴(126a~126i)은 채널 패턴(123b)과 교차되도록 형성될 수 있다. 다수의 게이트 패턴(126a~126i)은 서로 같은 두께를 같은 것으로 도시하였으나, 서로 다른 두께를 가질 수도 있다.
채널 패턴(123b)은 예를 들어, 단결정 실리콘과 같은 반도체 물질일 수 있으나, 이에 한정되는 것은 아니다. 다수의 게이트 패턴(126a~126i)은 도전성 물질로 형성될 수 있는데, 예를 들어, 텅스텐(W), 코발트(Co), 니켈(Ni) 등의 도전성 물질이나 실리콘과 같은 반도체 물질로 형성될 수 있는데 이에 한정되는 것은 아니다.
채널 패턴(123b)의 측벽에 정보 저장 패턴(123a)이 형성될 수 있다. 정보 저장 패턴(123a)은 터널층과 트랩층의 적층물로 형성될 수 있다. 터널층, 트랩층은 다수의 게이트 패턴(126a~126i)과 채널 패턴(123b) 사이에 배치될 수 있다. 구체적으로, 터널층, 트랩층은 채널 패턴(123b)을 따라서, 다수의 층간 절연막(124)을 관통하도록 형성될 수 있다.
터널층은 전하가 통과되는 부분으로, 예를 들어, 실리콘 산화막, 또는 실리콘 산화막과 실리콘 질화막의 이중층으로 형성될 수 있다.
트랩층은 터널층을 통과한 전하가 저장되는 부분이다. 예를 들어, 트랩층은 질화막 또는 고유전율(high-k)막으로 형성될 수 있다. 질화막은 예를 들어 실리콘 질화물(silicon nitride), 실리콘 산화질화물(silicon oxynitride), 하프늄 산화질화물(hafnium oxynitride), 지르코늄 산화질화물(zirconium oxynitride), 하프늄 실리콘 산화질화물(hafnium silicon oxynitride), 또는 하프늄 알루미늄 산화질화물(hafnium aluminum oxynitride) 중에서 하나 이상을 포함할 수 있다. 고유전율막은 예를 들어, 하프늄 산화물(hafnium oxide), 하프늄 실리콘 산화물(hafnium silicon oxide), 란타늄 산화물(lanthanum oxide), 란타늄 알루미늄 산화물(lanthanum aluminum oxide), 지르코늄 산화물(zirconium oxide), 지르코늄 실리콘 산화물(zirconium silicon oxide), 탄탈륨 산화물(tantalum oxide), 티타늄 산화물(titanium oxide), 바륨 스트론튬 티타늄 산화물(barium strontium titanium oxide), 바륨 티타늄 산화물(barium titanium oxide), 스트론튬 티타늄 산화물(strontium titanium oxide), 이트륨 산화물(yttrium oxide), 알루미늄 산화물, 납 스칸듐 탄탈륨 산화물(lead scandium tantalum oxide), 또는 납 아연 니오브산염(lead zinc niobate) 중에서 하나 이상을 포함할 수 있다.
블록층(125)은 채널 패턴(123b)과 다수의 게이트 패턴(126a~126i) 사이에 각각 배치될 수 있다. 블록층(125)은 제1 방향(D1)으로 길게 연장되어 형성될 수 있다. 또한, 블록층(125)은 제2 방향(D2)으로 지그재그(zigzag) 형태로 형성될 수 있다.
블록층(125)은 위쪽에 배치된 층간 절연막(124)과 게이트 패턴(126a~126i) 사이, 아래쪽에 배치된 층간 절연막(124)과 게이트 패턴(126a~126i) 사이, 채널 패턴(123b)(또는 트랩층)과 게이트 패턴(126a~126i) 사이에 형성될 수 있다. 즉, 블록층(125)은 층간 절연막(124)과 채널 패턴(123b)의 형상에 따라 컨포말하게(conformal) 형성될 수 있다.
이러한 블록층(125)은 단층 또는 다층일 수 있다. 블록층(125)은 실리콘 산화물 또는 실리콘 산화물보다 큰 유전상수를 가지는 절연성 금속 산화물을 포함할 수 있다. 예를 들어, 알루미늄 산화물(aluminum oxide), 하프늄 산화물(hafnium oxide), 란타늄 산화물(lanthanum oxide), 탄탈륨 산화물(tantalum oxide), 티타늄 산화물(titanium oxide), 란타늄 하프늄 산화물(lanthanum hafnium oxide), 란타늄 알루미늄 산화물(lanthanum aluminum oxide), 또는 디스프로슘 스칸듐 산화물(dysprosium scandium oxide)와 같은 고유전율 물질 또는 이들의 조합으로 적층된 복합층으로 형성할 수 있다. 도면에서는 블록층(125)이 1개층인 경우를 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 블록층(125)는 실리콘 산화물과, 알루미늄 산화물의 적층물일 수 있다.
한편, 도 4에 도시된 정보 저장 패턴(123a), 블록층(125)의 구성은 예시적인 것에 불과하다. 예를 들어, 정보 저장 패턴(123a), 블록층(125)이 채널 패턴(123b)의 길이 방향을 따라 배치될 수도 있다.
채널 패턴(123b)은 제1 방향(D1) 및 제3 방향(D3)으로 서로 이격되어 배열될 수 있다. 즉, 채널 패턴(123b)은 매트릭스 형태로 배열될 수 있다. 도 4에서는, 채널 패턴(123b)이 3 × 3으로 배열된 것으로 도시하였으나, 이에 한정되는 것은 아니다. 제3 방향(D3)으로 배열된 채널 패턴(123b) 사이에, 다수의 층간 절연막(124) 내에 분리 공간이 형성될 수 있다.
다수의 채널 패턴(123b) 상에는 드레인 영역(127)이 제공될 수 있다. 비트라인(128a~128c)은 드레인 영역(127)을 통해서 다수의 채널 패턴(123b)에 접속될 수 있다. 제3 방향(D3)으로 배열된 다수의 채널 패턴(123b)은 비트라인(128a~128c)에 의해서 서로 전기적으로 연결될 수 있다.
도 5는 도 3의 메모리 블록을 설명하기 위한 등가 회로도이다.
도 5를 참조하면, 비트 라인들(BL<1>, BL<2>, BL<3>)과 공통 소스 라인(CSL) 사이에 셀 스트링들(NS11~NS33)이 형성된다.
제 1 비트 라인(BL<1>) 및 공통 소스 라인(CSL) 사이에 셀 스트링들(NS11, NS21, NS31)이 형성된다. 제 2 비트 라인(BL<2>) 및 공통 소스 라인(CSL) 사이에 셀 스트링들(NS12, NS22, NS32)이 형성된다. 제 3 비트 라인(BL<3>) 및 공통 소스 라인(CSL) 사이에 셀 스트링들(NS13, NS23, NS33)이 형성된다. 제 1 내지 제 3 비트 라인들(BL<1>~BL<3>)은 도 4를 참조하여 설명한 비트라인(128a~128c)에 각각 대응될 수 있다.
셀 스트링들(NSs)의 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL)과 연결된다. 셀 스트링들(NSs)의 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)과 연결된다. 셀 스트링(NSs)의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST) 사이에 메모리 셀들(MC0~MC11)이 제공된다.
이하에서는, 행 및 열 단위로 셀 스트링들(NS)을 구분하기로 한다. 하나의 비트 라인에 공통으로 연결된 셀 스트링들(NS)은 하나의 열을 형성한다. 예를 들면, 제 1 비트 라인(BL<1>)에 연결된 셀 스트링들(NS11~NS31)은 제 1 열에 대응할 것이다. 제 2 비트 라인(BL<2>)에 연결된 셀 스트링들(NS12~NS32)은 제 2 열에 대응할 것이다. 제 3 비트 라인(BL<3>)에 연결된 셀 스트링들(NS13~NS33)은 제 3 열에 대응할 것이다.
하나의 스트링 선택 라인(SSL)에 연결되는 셀 스트링들(NS)은 하나의 행을 형성한다. 예를 들면, 제 1 스트링 선택 라인(SSL<1>)에 연결된 셀 스트링들(NS11~NS13)은 제 1 행을 형성한다. 제 2 스트링 선택 라인(SSL<2>)에 연결된 셀 스트링들(NS21~NS23)은 제 2 행을 형성한다. 제 3 스트링 선택 라인(SSL<3>)에 연결된 셀 스트링들(NS31~NS33)은 제 3 행을 형성한다.
셀 스트링들(NSs) 각각은 접지 선택 트랜지스터(GST)를 포함한다. 접지 선택 트랜지스터(GST)들은 하나의 접지 선택 라인(GSL)에 의해서 제어될 수 있다. 또는 명확하게 도시되지는 않았으나, 각 행들에 대응하는 셀 스트링들은 서로 다른 접지 선택 라인들에 의해서 제어될 수도 있다.
동일한 반도체 층에 대응하는 메모리 셀들(MC)은 워드 라인(WL)을 공유한다. 워드 라인(WL<0>)에는 셀 스트링들(NS11~NS33) 각각의 메모리 셀(MC0)이 연결될 것이다. 그리고 동일한 행의 셀 스트링들(NS)은 스트링 선택 라인(SSL)을 공유한다. 상이한 행의 셀 스트링들(NS)은 상이한 스트링 선택 라인들(SSL<1>, SSL<2>, SSL<3>)에 각각 연결된다. 공통 소스 라인(CSL)은 셀 스트링들(NSs)에 공통으로 연결된다. 예를 들면, 도 4를 참조하여 설명한 도핑 영역(122)들이 서로 연결되어 공통 소스 라인(CSL)을 형성할 수 있다.
메모리 블록(BLKi)은 그보다 작은 복수의 서브-블록들(SB0, SB1, SB2)로 구분될 수 있다. 각각의 서브-블록들(SB0, SB1, SB2)은 워드 라인 방향으로 구분될 수 있다. 어떤 기준으로 서브-블록들이 구분되든지, 각각의 서브-블록은 메모리 블록(BLKi) 내에서 다른 서브-블록들과는 독립적으로 소거될 수 있어야 한다.
예시적으로, 서브-블록(SB0)은 메모리 블록(BLKi)에 포함된 메모리 셀들 중에서 워드 라인들(WL<0>, WL<1>, WL<2>, WL<3>)에 연결된 메모리 셀들을 포함할 수 있다. 서브-블록(SB1)은 메모리 블록(BLKi)에 포함된 메모리 셀들 중에서 워드 라인들(WL<4>, WL<5>, WL<6>, WL<7>)에 연결된 메모리 셀들을 포함할 수 있다. 서브-블록(SB2)은 메모리 블록(BLKi)에 포함된 메모리 셀들 중에서 워드 라인들(WL<8>, WL<9>, WL<10>, WL<11>)에 연결된 메모리 셀들을 포함할 수 있다. 그리고, 서브-블록(SB0)에 포함된 메모리 셀들은 나머지 서브-블록들(SB1, SB2)과는 별개로 선택되어 소거 가능하다. 즉, 서브-블록들(SB0, SB1, SB2)은 하나 또는 둘 이상이 동시에 선택되어 소거될 수 있다. 이를 위해서, 플래시 메모리 장치(120)는 서브-블록(SB) 단위로 메모리 셀들을 소거하기 위한 바이어스를 제공할 수 있어야 한다.
도 6에서는 하나의 메모리 블록(BLKi)의 내부에서 정의되는 서브-블록의 구분 방법을 예시적으로 설명하였다. 그러나, 서브-블록의 구분 기준은 도 6의 도시된 예에만 한정되지 않는다. 즉, 하나의 메모리 블록(BLKi)이 3개의 서브-블록으로 구분되는 예가 설명되었으나, 하나의 메모리 블록(BLKi)은 2개나 또는 4개 이상의 서브-블록들로 구분될 수 있다. 또한, 하나의 서브-블록(SB)은 2개 또는 3개의 워드 라인들을 포함할 수 있으며, 5개 이상의 워드 라인들을 포함할 수 있을 것이다.
한편, 명확하게 도시하지 않았으나, 메모리 블록(BLKi)은 서브-블록들(SB0, SB1, SB2)보다 작은 복수의 페이지들로 구분될 수도 있다. 각각의 페이지들은 워드 라인 방향으로 구분될 수 있고, 각각의 페이지들은 메모리 블록(BLKi) 내에서 다른 페이지들과 독립적으로 소거될 수 있다.
예시적으로, 각 페이지는 메모리 블록(BLKi)에 포함된 메모리 셀들 중에서 동일한 워드 라인에 연결된 메모리 셀들을 포함할 수 있다. 그리고, 각 페이지에 포함된 메모리 셀들은 나머지 페이지들과는 별개로 선택되어 소거 가능하다. 즉, 페이지들은 하나 또는 둘 이상이 동시에 선택되어 소거될 수 있다. 이를 위해서, 플래시 메모리 장치(120)는 페이지 단위로 메모리 셀들을 소거하기 위한 바이어스를 제공할 수 있어야 한다.
이상에서는 하나의 메모리 블록(BLKi)의 내부에서 정의되는 페이지의 구분 방법을 예시적으로 설명하였다. 그러나, 페이지의 구분 기준은 이상에서 설명한 예에만 한정되지 않는다. 하나의 페이지는 2개 이상의 워드 라인들을 포함할 수도 있다.
도 6은 도 1의 메모리 시스템의 저장 장치의 메모리 블록의 구조를 설명하기 위한 도면이고, 도 7은 도 6의 메모리 블록의 페이지의 구조를 설명하기 위한 도면이다.
도 6을 참조하면, 각 블록(BLKi)은 복수의 페이지를 포함하고, 각 페이지는 복수의 메모리 셀을 포함할 수 있다. 예시적으로, 각 블록(BLKi)은 100 개의 페이지를 포함할 수 있으나, 이에 한정되는 것은 아니다.
페이지는 프리 페이지(free page), 유효 페이지(valid page), 무효 페이지(invalid page)로 구분될 수 있다. 프리 페이지는 데이터를 저장하지 않고 있으며, 새로운 데이터를 기록할 수 있는 상태를 말한다. 유효 페이지는 갱신된 데이터를 저장하고 있는 상태를 말하며, 무효 페이지는 갱신 전 데이터(예를 들어, 가비지(garbage))를 저장하고 있는 상태를 말한다. 유효 페이지와 무효 페이지는 저장된 데이터가 추가적으로 이용(예를 들어, 읽기)될 수 있는지 유무로 구별될 수 있다.
각 블록(BLKi)은 유저 페이지 영역(user pages)과 예비 페이지 영역(reserved pages)을 포함할 수 있다. 예시적으로, 각 블록(BLKi)의 90 개의 페이지는 유저 페이지 영역으로 할당되고, 10 개의 페이지는 예비 페이지 영역으로 할당될 수 있으나, 이에 한정되는 것은 아니다. 본 발명의 실시예에서는 예비 페이지 영역의 할당율이 10%인 것을 예로 들어 설명한다.
유저 페이지 영역은 사용자의 데이터를 저장하기 위한 공간이고, 예비 페이지 영역은 예를 들어, 플래시 변환 계층의 배경 동작을 수행하기 위해 확보된 Over-Provisioning 공간일 수 있다. 이를 위해, 예비 페이지 영역은 프리 페이지만으로 구성된다. 유저 페이지 영역은 사용자, 예를 들어 파일 시스템(file system)에 제공되나, 예비 페이지 영역은 파일 시스템에 제공되지 않는다. 즉, 유저 페이지 영역은 파일 시스템에 의해 액세스될 수 있으나, 예비 페이지 영역은 파일 시스템에 의해 액세스될 수 없다. 본 발명의 일 실시예에 따르면, Over-Provisioning 공간이 페이지 단위로 각 블록에 할당되는 것이다.
컨트롤러(110)는 가상 어드레스를 이용하여 메모리 셀 어레이의 블록들을 관리할 수 있다. 예시적으로, 메모리 셀 어레이의 블록들에는 각각 대응하는 가상 어드레스가 할당될 수 있다. 각 블록에 할당된 가상 어드레스는 가상 블록 어드레스라고 불리워질 수 있다. 컨트롤러(110)는 외부(호스트)로부터 제공되는 논리 블록 어드레스와 가상 블록 어드레스를 매핑(mapping)하여 관리할 수 있다. 논리 블록 어드레스와 가상 블록 어드레스의 매핑은 예를 들어, 플래시 변환 계층(Flash Translation Layer; FTL)과 같은 컨트롤러(110)의 펌웨어를 통해서 관리될 수 있다. 플래시 변환 계층은 예를 들어, 웨어 레벨링(wear leveling), 가비지 컬렉션(garbage collection) 등의 배경 동작을 수행할 수 있으나, 이에 한정되는 것은 아니다.
호스트의 요청에 따라 데이터가 기록되고, 가상 블록 어드레스가 매핑되는 블록을 로그 블록(log block)이라고 한다. 본 발명의 실시예에서는 메모리 어레이의 모든 블록을 로그 블록으로 사용하는 것으로 설명하기로 한다. 그러나, 본 발명이 이에 한정되는 것은 아니다.
다른 예로, 컨트롤러(110)는 가상 어드레스를 이용하여 메모리 셀 어레이의 페이지들을 관리할 수 있다. 블록의 페이지들에는 각각 대응하는 가상 어드레스가 할당될 수도 있다.
도 7을 참조하면, 각 페이지(Pakek, 단, k는 자연수)는 데이터를 저장하는 복수의 메모리 셀을 포함할 수 있다. 복수의 메모리 셀은 데이터 영역과 스페어 영역으로 구분될 수 있다. 데이터 영역은 l Kbyte이고, 스페어 영역은 m byte일 수 있다. 예시적으로, 데이터 영역은 2 Kbyte이고, 스페어 영역은 64 byte일 수 있으나, 이에 한정되는 것은 아니다.
데이터 영역에는 사용자 데이터가 저장될 수 있으며, 스페어 영역에는 데이터 영역의 관리 정보가 저장될 수 있다. 스페어 영역에는 예를 들어, 배드 블록 정보(bad block indicator), 에러 정정 코드(Error Correcting Code; ECC), 페이지의 메타 데이터 등이 저장될 수 있으나, 이에 한정되는 것은 아니다. 여기서, 메타 데이터는 페이지의 관리 정보를 나타내며, 이하에서는 사용자의 데이터와 구별하기 위하여 편의상 “메타”라고 약칭하여 설명하기로 한다.
예시적으로, 데이터 영역과 스페어 영역은 하나의 페이지 내에서 구분될 수 있다. 다른 예로서, 데이터 영역과 스페어 영역은 블록 단위로 구분될 수도 있다. 또 다른 예로서, 데이터 영역과 스페어 영역은 플래시 메모리(120)의 저장 공간에 혼재될 수도 있다.
또는, 배드 블록 정보, 에러 정정 코드, 페이지의 메타 데이터 등은 컨트롤러(110)의 메모리 모듈(113)에 저장될 수도 있다.
한편, 명확하게는 도시하지 않았지만, 플래시 메모리(120)는 메모리 셀 어레이에 액세스하기 위해 잘 알려진 구성요소들, 예를 들어 로우 디코더 회로, 리트/쓰기 회로, 제어 로직, 전압 발생 회로, 컬럼 디코더 회로, 입출력 인터페이스 등을 더 포함할 수 있다.
플래시 메모리(120)는 쓰기 전 소거(erase-before-write) 특성을 갖는다. 플래시 메모리(120)의 특정 페이지에 데이터를 쓸려면, 쓰기 동작 전에 특정 페이지를 포함하는 블록의 소거 동작이 요구된다. 일반적인 플래시 메모리(120)는, 쓰기 동작은 페이지 단위로 수행되고, 소거 동작은 블록 단위로 수행되기 때문이다.
일반적인 플래시 메모리는 블록 단위로 유저 블록(user block) 영역과 예비 블록(reserved block) 영역을 관리한다. 여기서, 유저 블록 영역은 사용자의 데이터를 저장하기 위한 공간이고, 예비 블록 영역은 예를 들어, 플래시 변환 계층의 배경 동작을 수행하기 위해 확보된 Over-Provisioning 공간일 수 있다. 유저 블록 영역은 사용자, 예를 들어 파일 시스템에 제공되나, 예비 블록 영역은 파일 시스템에 제공되지 않는다. 즉, 유저 블록 영역은 파일 시스템에 의해 액세스될 수 있으나, 예비 블록 영역은 파일 시스템에 의해 액세스될 수 없다.
일반적인 플래시 메모리(120)의 경우, 배드 블록(bad block) 등으로 인해 유저 블록 영역의 프리 블록(free block)이 부족한 경우, 예비 블록 영역의 프리 블록을 유저 블록 영역으로 할당하게 된다. 이 때, 할당하는 크기가 블록 단위(또는, 둘 이상의 블록 단위)이기 때문에, 요구되는 저장 공간에 비해 큰 공간을 할당하게 된다. 또한, 비교적 빠른 시간 내에 예비 블록 영역의 프리 블록이 부족해져서, 플래시 변환 계층은 프리 블록의 확보를 위해 가비지 컬렉션과 같은 배경 동작을 수행하게 된다.
가비지 컬렉션은 메모리 어레이에서 특정 블록을 선택하고, 특정 블록의 유효 페이지(valid page)를 프리 블록으로 카피(copy)한 후, 해당 블록을 삭제하여 프리 블록으로 만드는 작업이다. 삭제된 블록은 추후 데이터를 기록할 때 이용될 수 있다.
그러나, 이와 같은 플래시 메모리(120)의 저장 공간의 관리 방법에 따르면, 플래시 메모리의(특히, 블록 크기가 큰 라지 블록 플래시 메모리(120)의 경우) 쓰기 성능이 저하되고, 블록 운용에 문제점이 발생하게 된다.
본 발명의 일 실시예에서는, 플래시 메모리(120)의 소거 동작이 적어도 하나의 페이지 단위로 수행되는 것을 가정한다. 따라서, 플래시 메모리(120)의 Over-Provisioning 공간이 상술한 바와 같이 페이지 단위로 각 블록에 할당되도록 할 수 있다.
본 발명의 일 실시예에서는, 후술하는 바와 같이 가비지 컬렉션이 필요한 경우, 예비 페이지 영역의 프리 페이지를 이용하여 컴팩션을 수행하게 된다. 이에 따라, 컴팩션 비용(cost)이 블록의 소거 없이 데이터의 카피만으로 구성되므로, 상술한 문제점을 완화하고, 플래시 메모리(120)의 저장 공간을 효율적으로 관리할 수 있다.
다시, 도 1을 참조하면, 컨트롤러(110) 및 플래시 메모리(120)는 하나의 반도체 장치로 집적될 수도 있다. 예시적으로, 컨트롤러(110) 및 플래시 메모리(120)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(110) 및 플래시 메모리(120)는 하나의 반도체 장치로 집적되어 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS), PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱 등과 같은 메모리 카드로 구성될 수 있다.
다른 예로서, 컨트롤러(110) 및 플래시 메모리(120)는 하나의 반도체 장치로 집적되어 솔리드 스테이트 드라이브(SSD, Solid State Drive)를 구성될 수 있다. 솔리드 스테이트 드라이브(SSD)는 반도체 메모리에 데이터를 저장하도록 구성되는 저장 장치를 포함한다.
한편, 메모리 시스템(1)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
한편, 예시적으로, 플래시 메모리(120), 저장 장치(100), 또는 메모리 시스템(1)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들면, 플래시 메모리(120), 저장 장치(100), 또는 메모리 시스템(1)은 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) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
도 8은 본 발명의 다른 일 실시예에 따른 메모리 시스템의 저장 장치의 메모리 블록의 구조를 설명하기 위한 도면이다. 설명의 편의를 위해, 도 6과 차이점을 중점으로 하여 설명하기로 한다.
도 8을 참조하면, 각 블록(BLKi)은 복수의 서브 블록(sub-block)을 포함할 수 있다. 예시적으로, 각 블록은 20 개의 서브 블록을 포함할 수 있으나, 이에 한정되는 것은 아니다. 서브 블록은 적어도 하나의 페이지를 포함할 수 있다. 예시적으로, 서브 블록은 5 개의 페이지를 포함할 수 있으나, 이에 한정되는 것은 아니다.
각 블록은 유저 영역(user area)과 예비 영역(reserved area)을 포함할 수 있다. 예시적으로, 각 블록의 18 개의 서브 블록은 유저 영역으로 할당되고, 2 개의 페이지는 예비 영역으로 할당될 수 있으나, 이에 한정되는 것은 아니다. 본 발명의 실시예에서는 예비 영역의 할당율이 10%인 것을 예로 들어 설명한다.
유저 영역은, 도 6을 참조하여 설명한 유저 페이지 영역과 실질적으로 동일하게, 사용자의 데이터를 저장하기 위한 공간이고, 예비 영역은, 도 6을 참조하여 설명한 예비 페이지 영역과 실질적으로 동일하게, 플래시 변환 계층의 배경 동작을 수행하기 위해 확보된 Over-Provisioning 공간일 수 있다. 이를 위해, 예비 영역은 프리 페이지만으로 구성된다. 유저 영역은 사용자, 예를 들어 파일 시스템(file system)에 제공되나, 예비 페이지 영역은 파일 시스템에 제공되지 않는다. 즉, 유저 영역은 파일 시스템에 의해 액세스될 수 있으나, 예비 영역은 파일 시스템에 의해 액세스될 수 없다. 본 발명의 다른 일 실시예에 따르면, Over-Provisioning 공간이 서브 블록 단위로 각 블록에 할당되는 것이다.
본 발명의 다른 일 실시예에서는, 플래시 메모리(120)의 소거 동작이 서브 블록 단위로 수행되는 것을 가정한다. 따라서, 플래시 메모리(120)의 Over-Provisioning 공간이 상술한 바와 같이 서브 블록 단위로 각 블록에 할당되도록 할 수 있다.
본 발명의 다른 일 실시예에서는, 후술하는 바와 같이 가비지 컬렉션이 필요한 경우, 예비 영역의 프리 서브 블록(free sub-block)을 이용하여 컴팩션을 수행하게 된다.
이하에서는 앞서 설명한 메모리 시스템의 동작 방법을 도 9 내지 도 10을 참조하여 설명하기로 한다. 앞서 설명한 내용과 중첩되는 내용에 관하여는 상세한 설명은 생략하기로 한다.
도 9는 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이고, 도 10은 도 9의 메모리 시스템의 동작 방법의 컴팩션(compaction)을 설명하기 위한 도면이다.
도 9를 참조하면, 먼저, 컨트롤러(110)는 가비지 컬렉션(garbage collection)이 필요한지 판단한다(S210). 컨트롤러(110)는 예비 영역의 서브 블록의 개수가 기준 개수보다 작은 경우(예를 들어 예비 영역의 서브 블록이 1 개인 경우), 가비지 컬렉션이 필요한 것으로 판단할 수 있다.
이어서, 가비지 컬렉션이 필요한 경우, 컨트롤러(110)는 컴팩션(compactin)이 가능한 서브 블록(sub-block)을 선정한다(S220). 도 10을 참조하면, 유저 영역의 복수의 서브 블록 중 제2 서브 블록(sub-block 1)이 3 개의 무효 페이지(invalid page)와 2 개의 유효 페이지(valid page)로 구성되므로, 희생 서브 블록(sacrifice sub-block)으로 선정될 수 있다.
이어서, 컨트롤러(110)는 컴팩션을 수행한다(S230). 도 10을 참조하면, 컨트롤러(110)는 소거 동작의 개입없이(without erase intervention), 유저 영역의 제2 서브 블록(sub-block 1)의 유효 페이지의 데이터를 예비 영역의 제20 서브 블록(sub-block 19)의 프리 페이지에 카피한다. 이후, 컨트롤러(110)는 제2 서브 블록(sub-block 1)을 소거할 수 있다.
본 발명의 실시예에 따르면, 가비지 컬렉션을 실행하는 경우, 각 블록 내에서 컴팩션(compaction)을 수행함으로써, 전체 블록 머지(full block merge)를 회피할 수 있다. 전체 블록 머지는 컴팩션과 달리, 사전에 프리 블록을 확보하기 위래 소거 동작을 필요로 한다. 즉, 전체 블록 머지 비용(cost)에는 블록의 소거가 추가적으로 구성된다. 본 발명의 실시예에서는, 예비 영역의 서브 블록에 프리 페이지가 할당되어 있기 때문에, 전체 블록 머지를 회피할 수 있다.
이어서, 컨트롤러(110)는 메타를 업데이트한다(S240). 컨트롤러(110)는 메타를 기록하여 제20 서브 블록(sub-block 19)을 유저 영역으로 편입하고, 소거한 제2 서브 블록(sub-block 1)을 예비 영역으로 편입한다.
한편, 도 9 내지 도 10에서 설명한 바와 실질적으로 동일하게, 서브 블록(sub-block)을 페이지 단위로 치환하여 메모리 시스템을 동작시킬 수 있음은, 본 발명이 속하는 기술 분야의 통상의 기술자에게 자명하게 이해될 것이다.
도 11은 본 발명의 실시예에 따른 메모리 시스템의 응용예를 설명하기 위한 블록도이다.
도 11을 참조하면, 메모리 시스템(2)은 저장 장치(300) 및 호스트(200)를 포함한다.
저장 장치(300)는 복수의 플래시 메모리 칩들(320)을 포함한다. 복수의 플래시 메모리 칩들(320)은 복수의 그룹들로 분할된다. 복수의 플래시 메모리 칩들(320)의 각 그룹은 하나의 공통 채널을 통해 컨트롤러(310)와 통신하도록 구성된다. 예를 들어, 복수의 플래시 메모리 칩들(320)은 제 1 내지 제 k 채널들(CH1~CHk)을 통해 컨트롤러(310)와 통신할 수 있다.
각 플래시 메모리 칩은 도 1 내지 도 5를 참조하여 설명한 플래시 메모리(120)와 동일하게 구성된다.
도 11에서는, 하나의 채널에 복수의 플래시 메모리 칩들(320)이 연결되는 것으로 도시하였으나, 하나의 채널에 하나의 플래시 메모리 칩이 연결되도록 메모리 시스템(2)이 변형될 수 있음은, 본 발명이 속하는 기술 분야의 통상의 기술자에게 자명하게 이해될 것이다.
도 12는 도 11의 메모리 시스템을 포함하는 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 12를 참조하면, 컴퓨팅 시스템(3)은 중앙 처리 장치(410; cpu), 램(420; Random Access Memory; RAM), 사용자 인터페이스(430; user interface), 전원 공급 장치(450; power supply), 메모리 시스템(440)을 포함한다.
메모리 시스템(440)은 시스템 버스(460)를 통해, 중앙처리장치(410), 램(420), 사용자 인터페이스(430), 그리고 전원 장치(450)에 전기적으로 연결된다. 사용자 인터페이스(430)를 통해 제공되거나, 중앙 처리 장치(410)에 의해서 처리된 데이터는 메모리 시스템(440)에 저장된다.
도 12에서는, 플래시 메모리 장치(320)는 컨트롤러(310)를 통해 시스템 버스(460)에 연결되는 것으로 도시하였으나, 플래시 메모리 장치(320)는 시스템 버스(460)에 직접 연결되도록 구성될 수도 있다.
도 12에서는, 도 11을 참조하여 설명한 메모리 시스템(2)이 제공되는 것으로 도시되어 있다. 그러나, 메모리 시스템은 도 1을 참조하여 설명한 메모리 시스템(1)으로 대체될 수도 있다.
예시적으로, 컴퓨팅 시스템(3)은 도 1 및 도 11을 참조하여 설명한 메모리 시스템들을 모두 포함하도록 구성될 수도 있다.
본 발명의 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 컴퓨터로 읽을 수 있는 기록 매체에 상주할 수도 있다. 예시적인 기록 매체는 프로세서에 커플링되며, 그 프로세서는 기록 매체로부터 정보를 판독할 수 있고 기록 매체에 정보를 기입할 수 있다. 다른 방법으로, 기록 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 저장 장치 110: 컨트롤러
111: 호스트 인터페이스 112: 프로세서
113: 메모리 모듈 114: 메모리 인터페이스
120: 플래시 메모리

Claims (10)

  1. 복수의 메모리 블록을 포함하되, 상기 복수의 메모리 블록 각각은 제1 서브 블록과 상기 제1 서브 블록과 다르고 프리 페이지(free page)만으로 구성되는 제2 서브 블록을 포함하는 3차원 플래시 메모리; 및
    가비지 컬렉션(garbage collection)을 실행하는 경우, 데이터를 포함하는 상기 제1 서브 블록 중 하나에 접근하여 상기 제2 서브 블록 중 적어도 하나의 상기 프리 페이지에 상기 제1 서브 블록의 유효 페이지(valid page)의 데이터를 상기 제2 서브 블록에 카피하고, 상기 카피된 유효 페이지의 데이터를 갖는 상기 제1 서브 블록을 소거하는 컨트롤러를 포함하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 복수의 메모리 블록 각각은 상기 제1 서브 블록을 포함하는 제1 영역과, 상기 제2 서브 블록을 포함하는 제2 영역을 포함하고,
    상기 컨트롤러는 상기 유효 페이지의 데이터가 카피된 상기 제2 서브 블록을 상기 제1 영역으로 편입시켜 메타 데이터를 기록하는 메모리 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 복수의 메모리 블록 각각은 상기 제1 서브 블록을 포함하는 제1 영역과, 상기 제2 서브 블록을 포함하는 제2 영역을 포함하고,
    상기 컨트롤러는 상기 소거된 상기 제1 서브 블록을 상기 제2 영역으로 편입시켜 메타 데이터를 기록하는 메모리 시스템.
  5. 제1항에 있어서,
    상기 제1 서브 블록은 파일 시스템에 제공되는 영역이고, 상기 제2 서브 블록은 상기 파일 시스템에 비제공되는 영역인 메모리 시스템.
  6. 복수의 메모리 블록을 포함하는 플래시 메모리; 및
    상기 플래시 메모리에 데이터를 저장하는 컨트롤러를 포함하되,
    상기 복수의 메모리 블록 각각은 파일 시스템에 제공되는 제1 영역과 상기 파일 시스템에 비제공되는 제2 영역을 포함하고,
    상기 제1 영역은 제1 서브 블록을 포함하고, 상기 제2 영역은 프리 페이지(free page)만으로 구성된 제2 서브 블록을 포함하고,
    상기 컨트롤러는 상기 제1 서브 블록의 유효 페이지(valid page)의 데이터를 상기 제2 서브 블록에 카피하고 상기 카피된 유효 페이지의 데이터를 갖는 상기 제1 서브 블록을 소거하여 가비지 컬렉션(garbage collection)을 수행하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 제1 서브 블록은 상기 유효 페이지 및 무효 페이지(invalid page)로 구성되는 메모리 시스템.
  8. 삭제
  9. 삭제
  10. 제6항에 있어서,
    상기 컨트롤러는 상기 제2 서브 블록을 상기 제1 영역으로 편입시켜 메타 데이터를 기록하고, 상기 소거된 제1 서브 블록을 상기 제2 영역으로 편입시켜 메타 데이터를 기록하는 메모리 시스템.
KR1020130006567A 2013-01-21 2013-01-21 메모리 시스템 KR102147628B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130006567A KR102147628B1 (ko) 2013-01-21 2013-01-21 메모리 시스템
US14/155,960 US9190155B2 (en) 2013-01-21 2014-01-15 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130006567A KR102147628B1 (ko) 2013-01-21 2013-01-21 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20140094170A KR20140094170A (ko) 2014-07-30
KR102147628B1 true KR102147628B1 (ko) 2020-08-26

Family

ID=51207554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130006567A KR102147628B1 (ko) 2013-01-21 2013-01-21 메모리 시스템

Country Status (2)

Country Link
US (1) US9190155B2 (ko)
KR (1) KR102147628B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10365859B2 (en) 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9990279B2 (en) * 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
KR102301772B1 (ko) * 2015-03-09 2021-09-16 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법
KR20170015760A (ko) 2015-07-31 2017-02-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170056767A (ko) 2015-11-13 2017-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102333361B1 (ko) 2015-11-23 2021-12-06 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170060206A (ko) 2015-11-23 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9880743B1 (en) * 2016-03-31 2018-01-30 EMC IP Holding Company LLC Tracking compressed fragments for efficient free space management
KR102475798B1 (ko) 2016-07-14 2022-12-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102596407B1 (ko) * 2018-03-13 2023-11-01 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20190124015A (ko) * 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 저항 변화 메모리 장치를 포함하는 메모리 시스템 및 그 동작 방법
KR102649131B1 (ko) * 2018-08-14 2024-03-19 에스케이하이닉스 주식회사 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
WO2021015175A1 (ja) * 2019-07-25 2021-01-28 株式会社ソニー・インタラクティブエンタテインメント ストレージ管理装置、ストレージ管理方法およびプログラム
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11282567B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
KR20210079104A (ko) * 2019-12-19 2021-06-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20220096013A (ko) 2020-12-30 2022-07-07 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101521995B1 (ko) * 2008-06-13 2015-05-22 삼성전자주식회사 불휘발성 메모리 시스템 및 불휘발성 메모리 장치의 액세스방법
US20060256623A1 (en) 2005-05-12 2006-11-16 Micron Technology, Inc. Partial string erase scheme in a flash memory device
JP4842563B2 (ja) * 2005-05-16 2011-12-21 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
KR101552207B1 (ko) * 2008-10-07 2015-09-14 삼성전자주식회사 예비 영역을 가지는 반도체 메모리 장치
JP5390918B2 (ja) 2009-04-14 2014-01-15 シャープ株式会社 不揮発性半導体記憶装置とその製造方法
KR20110046243A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
JP5558090B2 (ja) 2009-12-16 2014-07-23 株式会社東芝 抵抗変化型メモリセルアレイ
KR20110093309A (ko) 2010-02-12 2011-08-18 주식회사 하이닉스반도체 3차원 구조의 비휘발성 메모리 소자 및 그 제조 방법
KR101692520B1 (ko) * 2010-02-17 2017-01-04 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR20120001405A (ko) * 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
JP2012028590A (ja) 2010-07-23 2012-02-09 Toshiba Corp 半導体装置および半導体装置の製造方法
CN101976676A (zh) 2010-09-13 2011-02-16 北京大学 一种三维结构非易失存储器阵列及其制备方法
JP2012074542A (ja) 2010-09-29 2012-04-12 Hitachi Ltd 不揮発性記憶装置およびその製造方法
KR101811308B1 (ko) 2010-11-10 2017-12-27 삼성전자주식회사 저항 변화 체를 갖는 비 휘발성 메모리 소자 및 그 제조방법
KR101202199B1 (ko) 2010-12-27 2012-11-16 광주과학기술원 3차원 저항 변화 메모리 소자, 이를 포함하는 저항 변화 메모리 소자 어레이 및 전자제품
KR101997572B1 (ko) * 2012-06-01 2019-07-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법

Also Published As

Publication number Publication date
KR20140094170A (ko) 2014-07-30
US9190155B2 (en) 2015-11-17
US20140204672A1 (en) 2014-07-24

Similar Documents

Publication Publication Date Title
KR102147628B1 (ko) 메모리 시스템
US9032138B2 (en) Storage device based on a flash memory and user device including the same
US9383927B2 (en) Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device
KR102050729B1 (ko) 메모리 시스템
JP6134205B2 (ja) 記憶装置のデータ書き込み方法
KR102517129B1 (ko) 메모리 시스템 및 그의 동작방법
CN107102815B (zh) 存储器系统及其操作方法
KR102295208B1 (ko) 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
CN106708744B (zh) 存储系统和存储系统的操作方法
US20160154594A1 (en) Method for managing address map for fast open operation and memory system
CN106776352B (zh) 存储器系统和存储器系统的操作方法
KR20160008365A (ko) 저장 매체, 메모리 시스템 및 메모리 시스템에서의 저장 영역 관리 방법
CN106610904B (zh) 存储系统及其操作方法
TWI686814B (zh) 記憶體系統和記憶體系統的操作方法
KR20130084846A (ko) 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
US20120297117A1 (en) Data storage device and data management method thereof
KR20170050953A (ko) 메모리 시스템 및 그의 동작방법
US20150186065A1 (en) Memory system and bad block management method
KR20160132204A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20170059049A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170061218A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN105718378A (zh) 存储系统及其操作方法
CN106560781B (zh) 数据处理系统
KR20170078315A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20130138869A1 (en) Nonvolatile memory and memory device including the same

Legal Events

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