KR20150111692A - 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템 - Google Patents

메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20150111692A
KR20150111692A KR1020140035369A KR20140035369A KR20150111692A KR 20150111692 A KR20150111692 A KR 20150111692A KR 1020140035369 A KR1020140035369 A KR 1020140035369A KR 20140035369 A KR20140035369 A KR 20140035369A KR 20150111692 A KR20150111692 A KR 20150111692A
Authority
KR
South Korea
Prior art keywords
block
data
bad
memory device
page
Prior art date
Application number
KR1020140035369A
Other languages
English (en)
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 KR1020140035369A priority Critical patent/KR20150111692A/ko
Priority to US14/338,361 priority patent/US20150277792A1/en
Publication of KR20150111692A publication Critical patent/KR20150111692A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 메모리 장치의 배드 영역 관리를 하는 메모리 컨트롤러의 구동방법은, 프로그램 또는 리드 동작 수행이 실패된 배드 페이지를 확인하고, 상기 배드 페이지 저장된 데이터의 종류를 확인하여, 상기 데이터의 종류가 메타 데이터일때, 배드 페이지를 포함하는 제 1 블록에 저장된 데이터를 복사하여 제 2 블록으로 프로그램하고, 제 1 블록을 이레이즈하는 것을 포함한다.

Description

메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템{The operating method of memory controller and the memory system including it}
본 발명은 비휘발성 메모리를 제어하는 메모리 컨트롤러 구동방법 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템에 관한 것이다.
메모리 장치는 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 분류된다. 휘발성 메모리 장치는 전원(power)이 제거될 때 데이터는 유지되지 않는다. 그러나, 비휘발성 메모리 장치는 전원이 제거되더라도 데이터는 유지된다.
비휘발성 메모리 장치의 예들로서 ROM(read only memory), 또는 EEPROM (Electrically Erasable Programmable Read-Only Memory) 등이 있다.
플래시(flash) EEPROM으로 소개된 플래시 메모리 장치의 구조와 동작은 종래의 EEPROM의 구조와 동작과 서로 다르다. 플래시 메모리 장치는 블락(block) 단위로 전기적 소거(electric erase) 동작을 수행하고 비트 단위로 프로그램 동작을 수행할 수 있다.
본 발명이 해결하려는 기술적 과제는, 효율적으로 비휘발성 메모리 장치의 배드 영역을 관리하는 메모리 컨트롤러 구동방법을 제공하는 것이다.
본 발명이 해결하려는 다른 기술적 과제는, 효율적으로 비휘발성 메모리 장치의 배드 영역을 관리하는 메모리 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 메모리 컨트롤러의 구동방법의 몇몇 태양(aspect)들은 제1 블록과 제2 블록을 포함하되, 각 블록은 복수의 페이지를 포함하는 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법에 있어서; 메타 데이터(meta data)가 저장되는 제1 블록에서 배드 페이지가 발생하고, 상기 제1 블록의 노말 페이지에 저장되어 있던 메타 데이터와, 상기 배드 페이지에 대응되는 오리지널 메타 데이터를 상기 제2 블록으로 복사하고, 상기 제1 블록을 이레이즈하며, 그리고 상기 제1 블록에 유저 데이터(user data)를 프로그램하는 것을 포함한다..
상기 과제를 해결하기 위한 본 발명의 복수개의 페이지를 포함하는 블록을 적어도 하나 이상 포함하는 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 구동방법의 다른 태양(aspect)은 제1 블록과 제2 블록을 포함하되, 각 블록은 복수의 페이지를 포함하는 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법에 있어서; 프로그램 또는 리드 동작 수행이 실패된 배드 페이지를 판단하고, 상기 배드 페이지에 저장된 데이터의 종류를 확인하되, 상기 데이터의 종류가 메타 데이터일 때, 상기 배드 페이지를 포함하는 제 1 블록에 저장된 데이터를 복사하여 제 2 블록으로 프로그램하고, 상기 제 1 블록을 이레이즈하고, 상기 이레이즈된 제 1 블록은 메타 데이터는 저장하지 않고 유저 데이터를 저장한다. 본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 몇몇 실시예에 따른 메모리 시스템의 메모리 컨트롤러는, 비휘발성 메모리 장치에 배드 페이지가 발생한 경우, 데이터 종류에 따라서, 배드 영역 관리를 선택적으로 페이지 단위 또는 블록 단위로 수행할 수 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 비휘발성 메모리 시스템을 보여준다.
도 2는 MLC 비휘발성 메모리 장치의 로직컬 페이지를 보여주는 개념도이다.
도 3은 도 1에 도시된 메모리 컨트롤러를 구체적으로 도시한 보여주는 블록도이다.
도 4는 비휘발성 메모리 장치의 메모리 셀 어레이를 구체적으로 도시한 블록도이다.
도 5는 본 발명의 몇몇 실시예들에 따른 배드 영역 관리 방법을 개념적으로 도시한 개념도이다.
도 6은 도 3에서 도시한 프리 블록 테이블을 구체적으로 도시한 개념도이다.
도 7 내지 도 10은 비휘발성 메모리 장치를 3차원으로 구현한 예를 보여준다.
도 11은 본 발명의 몇몇 실시예들에 따른 메모리 컨트롤러의 배드 영역 관리 동작을 보여주는 순서도이다.
도 12는 본 발명의 다른 실시예에 따른 메모리 컨트롤러의 배드 영역 관리 동작을 보여주는 순서도이다.
도 13은 본 발명의 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 14은 본 발명의 다른 실시예에 따른 메모리 컨트롤러및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 15은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 16는 본 발명의 또 다른 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 17은 본 발명의 또 다른 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 18는 도 17에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 메모리 시스템을 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 메모리 시스템(1000)은 전자 장치로 구현될 수 있다. 전자 장치는 이동 전화기, 스마트 폰(smart phone), 태블릿 (tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라 (digital video camera), PMP (portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
메모리 시스템(1000)은 호스트(1002)와 저장 장치(1001)를 포함한다. 저장 장치(1001)는 비휘발성 메모리 장치(1100)와 메모리 컨트롤러(1200)를 포함한다.
호스트(1002)는 메모리 컨트롤러(1200)로 오리지널 메타 데이터를 제공할 수 있다. 메모리 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 전반적으로 제어 한다. 비휘발성 메모리 장치(1100)는 메모리 컨트롤러(1200)의 제어에 따라 이레이즈, 프로그램 또는 리드 동작 등을 수행할 수 있다.
이를 위해 비휘발성 메모리 장치(1100)는 입출력 라인을 통해 커맨드(CMD), 어드레스(ADDR), 그리고 데이터(DATA)를 입력 받는다. 또한, 비휘발성 메모리 장치(1100)는 전원 라인을 통해 전원(PWR)을 입력 받고, 제어 라인을 통해 제어 신호(CTRL)를 입력받는다. 제어 신호(CTRL)은 예를 들어, 커맨드 래치 인에이블(CLE), 어드레스 래치 인에이블(ALE), 칩 인에이블(nCE), 쓰기 인에이블(nWE), 읽기 인에이블(nRE) 등이 포함할 수 있다.
비휘발성 메모리 장치(1100)는 플래시 메모리(Flash Memory), EEPROM(electrically Erasable Programmable Read-Only Memory), FRAM(ferroelectrics random access memory), PRAM(phase change random access memory), MRAM(magneto resistive random access memory)를 포함한다. 도 1에서는 예시적으로 낸드 플래시 메모리 장치를 도시하였으나, 이에 한정된 것은 아니다. 비휘발성 메모리 장치(1100)는 메모리 컨트롤러(1200)부터 제공받은 데이터를 저장하는 스토리지 유닛(storage unit) 역할을 할 수 있다. 비휘발성 메모리 장치(1100)는 데이터를 저장하는 복수개의 셀 어레이를 포함할 수 있다.
비휘발성 메모리 장치(1100)는 데이터를 저장하는 셀 어레이(1110)를 포함한다. 셀 어레이(1110)는 이레이즈 단위인 다수의 블록(BLK1~BLK3)을 포함하며, 각각의 블록(BLK1~BLK3)은 복수개의 워드라인(WL1~WLk)을 포함한다. 각각의 블록(BLK1~BLK3)은 저장장치의 정보를 나타내는 메타 데이터(meta data)를 저장할 수 있고, 또한 호스트(1002)로부터 제공받은 유저 데이터(user data)를 저장할 수 있다. 워드라인(WL1~WLk)은 프로그램 및 리드의 단위인 복수개의 페이지를 포함한다. 각각의 워드라인(WL1~WLk)은 적어도 하나 이상의 페이지 데이터를 저장할 수 있다.
셀 어레이(1110)는 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함한다. 각각의 셀 스트링들은 수직 또는 수평 방향으로 채널을 형성할 수 있다. 셀 어레이(1110)에는 복수의 워드 라인들이 수직 방향으로 적층될 수 있다.
비휘발성 메모리 장치(1100)는 스캘링 다운으로 메모리 셀들간의 간격이 좁아짐에 따라, 데이터 패턴에 따른 신뢰성 열화 문제가 나타나고, 프로그램 또는 리드 동작 실패한 배드 영역이 발생할 수 있다.
도 1을 참조하면, 메모리 컨트롤러(1200)는 배드 영역 관리 유닛(1230)을 포함한다. 배드 영역 관리 유닛(1230)은 프로그램 또는 리드 동작 수행이 실패된 배드 페이지를 확인한다. 그리고, 배드 영역 관리 유닛(1230)은 배드 페이지에 저장된 데이터의 종류를 확인하고, 데이터의 종류에 따라서, 선택적으로 배드 페이지 관리방법을 선택적으로 결정한다. 데이터의 종류가 어드레스 맵핑 정보 등을 포함하는 메타 데이터(meta data)이면, "배드 블록 관리 방식"으로 배드 영역을 관리한다. 또한, 데이터의 종류가 유저 데이터(user data)이면, "배드 페이지 관리 방식"으로 배드 영역을 관리한다. 이에 대해서는 도 2 이하에서 구체적으로 설 명하도록 한다.
도 2는 MLC 비휘발성 메모리 장치의 로직컬 페이지를 보여주는 개념도이다.
도 2를 참조하면, MLC 비휘발성 메모리 장치(1100)의 경우, 하나의 메모리 셀에 k개의 비트를 프로그램 하려면, 2k 개의 문턱 전압들 중 어느 하나가 메모리 셀에 형성되어야 한다. 다수의 메모리 셀들 간의 미세한 전기적 특성의 차이로 인해, 동일한 데이터가 프로그램 된 메모리 셀들 각각의 문턱 전압들 각각은 일정한 범위의 문턱전압 산포(threshold voltage distribution)를 형성할 수 있다. 각각의 문턱전압 산포 k개의 비트에 의해 생성될 수 있는 2k 개의 데이터 값 각각에 대응될 수 있다.
예를 들어, 3 비트 MLC 메모리 장치의 경우, 7개의 프로그램 상태(state)의 문턱전압의 산포(P1, P2, …, P7)와 하나의 이레이즈 상태(state)의 문턱전압 산포(E)가 형성된다. 즉, 3 비트 MLC 비휘발성 메모리 장치는 7개의 프로그램 스테이트와 1개의 이레이지 스테이트를 가진다. 도 2에 도시된 것과 같이, 하나의 워드라인(예를 들어, 제k 워드라인(WLk))은 3개의 로직컬 페이지를 포함할 수 있다. 따라서, 3개의 로직컬 페이지에 저장된 데이터들은, 7개의 프로그램 스테이트 및 1개의 이레이즈 스테이트를 형성한다.
도 3은 도 1에 도시된 메모리 컨트롤러를 보여주는 예시적인 블록도이다.
도 3을 참조하면, 메모리 컨트롤러(1200)는 호스트 인터페이스(1210), 비휘발성 메모리 인터페이스(1220), 배드 영역 관리 유닛(1230), 마이크로 프로세서(microprocessor; 1240), 롬(ROM; 1250), ECC 엔진(1260) 및 램(RAM; 1270)을 포함한다. 그리고, 메모리 컨트롤러(1200)의 구성요소들(1210, 1220, 1230, 1220, 1240, 1250, 1260, 1270)은 버스(bus)를 통해서 전기적으로 연결될 수 있다.
호스트 인터페이스(host interface; 1210)는 미리 결정된 프로토콜에 따라서 메모리 컨트롤러(1200)를 포함한 저장 장치(1001)과 호스트(1002) 사이의 인터페이스를 수행할 수 있다. 호스트 인터페이스(1210)는 외부 호스트(1002)와 USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) 등을 통해서 통신할 수 있다.
비휘발성 메모리 인터페이스(1220)는 메모리 컨트롤러(1200)와 비휘발성 메모리 장치(1100) 사이에 인터페이스를 수행할 수 있다. 비휘발성 메모리 인터페이스(1220)를 통해서 마이크로프로세서(1240)가 요구하는 명령어가 비휘발성 메모리 장치(1100)로 제공될 수 있으며, 또한 메모리 컨트롤러(1200)로부터 비휘발성 메모리 장치(1100)로 데이터가 전송될 수 있다. 또한, 비휘발성 메모리 장치(1100)로부터 제공되는 데이터는 비휘발성 메모리 인터페이스(1220)를 통해서 메모리 컨트롤러(1200)로 제공된다. 마이크로프로세서(microprocessor; 1240)는 회로, 로직, 코드 또는 이들의 조합으로 구현할 수 있다. 메모리 컨트롤러(1200)를 포함한 저장 장치(1001)의 동작을 전반적으로 제어한다. 저장 장치(1001)에 전원이 인가되면, 마이크로 프로세서는 롬(1250)에 저장된 메모리 시스템(1000) 동작을 위한 펌웨어(firmware)를 램(1270) 상에서 구동시킴으로써 메모리 시스템(1000)의 전반적인 동작을 제어할 수 있다. 또한, 마이크로프로세서(1240)는 호스트에서 인가되는 명령어를 해석하고, 해석 결과에 따라 비휘발성 메모리 장치(1100)의 전반적인 동작을 제어할 수 있다. 그리고, 마이크로 프로세서는 호스트로부터 수신되는 로직컬 어드레스를 피지컬 어드레스로 변환시키는 처리를 수행한다.
롬(1250)은 저장 장치(1001)의 구동 펌웨어 코드 및 메모리 컨트롤러(1200) 동작에 필요한 코드들을 저장할 수 있으며, 본 발명의 범위가 이에 한정되는 것은 아니다. 펌웨어 코드는 롬(1250) 이외의 다양한 비휘발성 메모리 장치(1100), 예를 들면, 플래시 메모리 장치에 저장될 수도 있다.
따라서, 마이크로 프로세서(1240)의 제어 또는 개입이란, 마이크로 프로세서(1240)의 하드웨어적인 직접적 제어뿐만 아니라, 마이크로프로세서(1240)에 의해서 구동되는 소프트웨어인 펌웨어의 간섭도 포함 할 수 있다.
그리고, 램(1270)은 버퍼(buffer)역할을 하는 메모리로, 호스트 인터페이스를 통하여 입력되는 최초 명령어, 데이터, 각종 변수들 또는 비휘발성 메모리 장치(1100)로부터 출력되는 데이터들을 저장할 수 있다. 그리고, 비휘발성 메모리 장치(1100)로 입력되고 출력되는 데이터, 각종 파라미터 및 변수들을 저장할 수 있다. 비휘발성 메모리 장치(1100)에 저장되는 데이터는 예시적으로 유저 데이터(user data)와 메타 데이터(meta data)를 포함한다. 유저 데이터는 호스트(1002)로부터 제공된 데이터가 될 수 있다. 그리고, 메타 데이터는 비휘발성 메모리 장치(1100)를 관리하기 위하여 메모리 컨트롤러(1200)에서 생성된 정보일 수 있다. 관리 정보인 메타 데이터에는 로직컬 어드레스(Logical Address)를 메모리 장치의 피지컬 어드레스(Physical Address)로 변환시키는데 이용되는 매핑(mapping) 테이블 정보가 포함되어 있다. 일 예로서, 매핑 테이블 정보는 페이지 단위로 로직컬 어드레스를 피지컬 어드레스로 매핑 처리를 수행하는데 필요한 정보로 구성될 수 있다. 또한, 메타 데이터에는 비휘발성 메모리 장치(1100)의 저장 공간을 관리하기 위한 정보들도 포함될 수 있다.
또한, 램(1270)은 비휘발성 메모리 장치의 프리 블록(free block) 정보를 나타내는 프리 블록 테이블(free block table; 1271)을 포함할 수 있다.
배드 영역 관리 유닛(bad area management unit; 1230)은 프로그램 또는 리드 동작 수행이 실패한 배드 페이지를 확인한다. 그리고 배드 영역 관리 유닛(1230)은 배드 페이지의 데이터 종류를 판단한다. 배드 영역 관리 유닛(1230)은 배드 페이지의 데이터 종류에 따라서 관리 방법을 달리한다.
구체적으로, 배드 영역 관리 유닛(1230)은 배드 페이지의 데이터 종류에 따라서, 배드 페이지 관리(bad page management)를 수행할건지, 배드 블록 관리(bad block management)를 수행할지 여부를 판단한다.
예를 들면, 배드 페이지 데이터의 종류가 메타 데이터일 때, 배드 영역 관리 유닛(1230)은 배드 블록 관리를 수행한다. 즉, 배드 영역 관리 유닛(1230)은 배드 페이지에 저장된 데이터가 메타 데이터인 경우, 배드 페이지를 포함하는 제 1 블록에 저장된 데이터는 제 2 블록으로 복사(copy)된다. 그리고, 배드 영역 관리 유닛(1230)은 제 1 블록을 이레이즈한다. 이레이즈된 제 1 블록은 유저 블록이 프로그램 되는 프리 블록이 된다. 따라서, 이레이즈된 제 1 블록 정보는 램(1270)에 저장된 프리 블록 테이블에 업데이트된다. 메타 데이터는 별도의 로직컬 어드레스에서 피직컬 어드레스로 맵핑 동작을 할 필요가 없다. 다만, 제 2 블록은 메타 데이터가 저장된 블록임을 나타내는 정보는 램(1270) 또는 비휘발성 메모리 장치(1100)에 저장될 수 있다.
이레이즈된 제 1 블록은 유저 데이터가 저장되는 프리 블록이 된다. 배드 페이지는 프로그램이 실패한 페이지 또는 리드가 실패한 페이지를 말한다.
메타 데이터는 비휘발성 메모리 장치(1100)를 관리하기 위하여 메모리 컨트롤러(1200)에서 생성된 정보이다. 따라서, 비휘발성 메모리 시스템(1000)을 구동하는데 필수적인 데이터인바, 배드 페이지 발생이 예상되는 블록에는 저장하지 않을 수 있다.
또한, 배드 페이지 데이터의 종류가 예시적으로 유저 데이터일 때, 배드 영역 관리 유닛(1230)은 배드 페이지 관리를 수행한다. 예를 들면, 프로그램 실패로 배드 페이지가 발생한다고 가정한다. 프로그램 실패란 베리파이 동작에서 실패한 것을 의미할 수 있다. 배드 페이지 관리 유닛(1230)은 배드 페이지를 무효화(invalid)시킨다. 그리고, 예를 들면, 배드 페이지 관리 유닛(1230)은 배드 페이지에 인접한 워드라인에 무효화된 페이지에 프로그램할 데이터를 다시 프로그램 할 수 있다. 그리고, 배드 페이지 관리 유닛(1230)은 마이크로프로세서(1240) 제어 하에, 배드 페이지를 새로이 프로그램 된 페이지로 페이지 맵핑을 수행하여, 맵핑 테이블에 업데이트 할 수 있다.
또 다른 예를 들면, 비휘발성 메모리 장치(1100)는 리드 실패로 배드 페이지가 발생한다고 가정한다. 리드 실패란, 예를 들면, ECC 디코딩 실패를 의미할 수 있다. 배드 페이지 관리 유닛(1230)은 배드 페이지를 폐기(discard) 시킬 수 있다.
ECC 엔진(error correction code unit; 1260)은 에러 비트 정정을 수행한다. 도 3을 참조하면, ECC 엔진(1260)은 ECC 인코더(1261)와 ECC 디코더(1262)를 포함한다.
ECC 인코더(1261)는 비휘발성 메모리 장치로 제공되는 데이터의 오류정정 인코딩을 하여, 패리티(parity) 비트가 부가된 코드워드(codeword)를 생성한다. 코드워드는 비휘발성 메모리 장치(1100)에 저장될 수 있다.
ECC 디코더(1262)는 출력된 데이터에 대하여 에러 정정 디코딩을 수행하고 수행 결과에 따라 상기 에러 정정 디코딩의 성공 여부를 판단하고 판단 결과에 따라 지시 신호를 출력한다. 리드한 데이터는 ECC 디코더(1262)로 전송되고, ECC 디코더(1262)는 페리티(parity) 비트를 사용하여 데이터의 에러 비트를 정정 할 수 있다. 에러 비트 개수가 정정 가능한 에러 비트 한계치 이상 발생하면, ECC 디코더(1262)는 에러 비트를 정정할 수 없고, 에러 정정 실패(failure)가 발생한다. 리드 실패는 에러 정정 실패를 의미할 수 있다.
ECC 인코더(1261)와 ECC 디코더(1262)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 할 수 있으며 이에 한정되는 것은 아니다.
ECC 인코더(1261) 및 ECC 디코더(1262)는 오류정정화를 위한 회로, 시스템 또는 장치를 모두 포함할 수 있다.
도 4는 비휘발성 메모리 장치의 메모리 셀 어레이를 구체적으로 도시한 블록도이다.
도 4를 참조하면, 메모리 셀 어레이는 복수개의 블록(BLK1~BLKn)을 포함하고, 각 블록(BLK1~BLKn)은 복수개의 페이지들(page1~pageN)을 포함할 수 있다. MLC 비휘발성 메모리 장치의 경우 복수개의 페이지는 하나의 피지컬 워드라인에 포함될 수 있다.
도 5는 본 발명의 몇몇 실시예들에 따른 배드 영역 관리 방법을 개념적으로 도시한 개념도이다.
도 3 내지 도 5를 참조하면, 제 1 블록(BLK1)은 메타 데이터가 저장된 블록이고, 제 2 블록(BLK2)은 프리 블록일 수 있다. 제 1 블록(BLK1)의 제 2 페이지(Page2)를 리드한다고 가정한다. 리드한 제 2 페이지 데이터는 ECC 디코더(1262)로 전송된다. ECC 디코더(1262)는 에러 비트 정정을 수행하고, 에러 비트 정정에 실패하면, 배드 영역 관리 유닛(1230)은 제 2 페이지 데이터가 유저 데이터인지 메타 데이터인지 확인을 한다. 제 2 페이지 데이터가 메타 데이터인 경우, 배드 영역 관리 유닛(1230)은 제 2 페이지를 포함하는 제 1 블록 데이터를 프리 블록인 제 2 블록(BLK2)으로 복사한다. 예를 들어, 제1 블록(BLK1) 내의 노말 페이지(normal page)에 저장되어 있는 메타 데이터를 제2 블록(BLK2)에 복사한다. 제1 블록(BLK1)의 배드 페이지(즉, 제2 페이지 데이터)는 램(RAM) 상에 저장되어 있던 오리지널 메타 데이터를 이용하여, 제2 블록(BLK2)에 프로그램한다. 그 결과, 제 2 블록(BLK2)은 메타 데이터를 저장하는 블록이 된다. 그리고, 제 1 블록(BLK1)은 이레이즈되어 프리 블록이 된다. 여기서, 노말 페이지는 배드 페이지가 아닌 정상적인 페이지를 의미한다.
한편, 제1 블록(BLK1)에 저장된 메타 데이터는 예를 들면, 제 3 블록(BLK3)에도 동일하게 저장되어 있을 수 있다. 즉, 예를 들어, 미러링 방식(mirroring)을 사용하여 제1 블록(BLK1)과 제3 블록(BLK3)에 동시에 데이터를 저장시킬 수 있다. 이러한 경우, 전술한 예에서 리드 실패한 메타 데이터(제2 페이지 데이터)는 제3 블록(BLK3)에도 저장되어 있을 수 있다. 배드 영역 관리 유닛(1230)은 제1 블록(BLK1)에 저장된 제2 페이지 데이터(메타 데이터)에 대응하는 제3 블록(BLK3)에 저장된 페이지 데이터(메타 데이터)를 제2 블록(BLK2)으로 복사한다.
또는, 배드 영역 관리 유닛(1230)은 리드 실패인 배드 페이지를 제 2 블록(BLK2)으로 복사 하지 않을 수도 있다. 배드 영역 관리 유닛(1230)은 배드 페이지를 제외한 제 1 블록(BLK1)의 나머지 메타 데이터를 제 2 블록(BLK2)으로 복사할 수 있다. 그리고, 마이크로 프로세서(1240)는 메타 데이터를 리드시, 제3 블록(BLK3)에 저장되고 배드 페이지와 대응되는 메타 데이터를 리드하여 시스템 데이터로 사용 할 수 있다.
프리 블록인 제 1 블록(BLK1)은 프리 블록 테이블(1271)에 업데이트될 수 있다.
메타 데이터는 호스트(1002)로부터 제공받은 데이터가 아니고, 비휘발성 메모리 장치(1100)를 관리하기 위하여 메모리 컨트롤러(1200)에서 생성된 정보이다. 따라서, 메타 데이터를 프로그램할 때 별도의 어드레스 맵핑, 예를 들면, 로직컬 어드레스에서 피직컬 어드레스로 맵핑은 수행하지 않는다.
도 6은 도 3에서 도시한 프리 블록 테이블을 구체적으로 도시한 개념도이다.
도 6을 참조하면, 프리 블록 테이블(1271)은 프리 블록 대상이 되는 비휘발성 메모리 장치(1100)의 피지컬 주소를 나타내고 있다. 도 3 및 도 6을 참조하면, 메타 데이터를 저장하는 제 1 블록(BLK1)에서 배드 페이지가 발생하면, 제 1 블록(BLK1)은 이레이즈된다. 이레이즈된 제 1 블록(BLK1)은 프리 블록이 되어, 프리 블록 테이블(1271)에 업데이트 된다. 프리 블록 테이블(1271)에 업데이트된 제 1 블록(BLK1)은 유저 데이터를 저장 할 수 있다.
도 7 내지 도 10은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 3차원으로 구현한 예를 보여준다. 도 7 내지 도 8은 도 1에 도시된 메모리 셀 어레이(1110)가 3차원으로 형성된 것을 보여준다. 도 8은 메모리 블록(BLKi)을 예시적으로 보여주는 사시도이고, 도 9은 메모리 블록(BLKi)의 선(Ⅰ-Ⅰ')에 따른 단면도이다. 각 메모리 블록(BLKi)은 3차원 구조(또는 수직 구조)를 갖는다. 각 메모리 블록(BLKi)은 제 2 방향을 따라 신장된 복수의 낸드 스트링들(NS)을 포함한다. 제 1 및 제 3 방향들을 따라 복수의 낸드 스트링들(NS)이 제공될 것이다. 각 낸드 스트링(NS)은 비트 라인(BL), 적어도 하나의 스트링 선택 라인(SSL), 적어도 하나의 접지 선택 라인(GSL), 복수의 워드 라인들(WL), 적어도 하나의 더미 워드 라인(DWL), 그리고 공통 소스 라인(CSL)에 연결된다. 즉, 각 메모리 블록은 복수의 비트 라인들(BL), 복수의 스트링 선택 라인들(SSL). 복수의 접지 선택 라인들(GSL), 복수의 워드 라인들(WL), 복수의 더미 워드 라인들(DWL), 그리고 복수의 공통 소스 라인(CSL)에 연결될 것이다. 도 9 및 도 10을 참조하면, 메모리 블록(BLKi)은 제 1 내지 제 3 방향들을 따라 신장된 구조물들을 포함한다.
우선, 기판(111)이 제공된다. 예시적으로, 기판(111)은 제 1 타입 불순물로 도핑된 실리콘 물질을 포함할 것이다. 예를 들면, 기판(111)은 p 타입 불순물로 도핑된 실리콘 물질을 포함하거나, p 타입 웰(예를 들면, 포켓 p 웰)일 수 있고, p-타입 웰을 둘러싸는 n-타입 웰을 더 포함할 수 있다. 이하에서, 기판(111)은 p 타입 실리콘인 것으로 가정한다. 그러나, 기판(111)은 p 타입 실리콘으로 한정되지 않는다.
기판(111) 상에, 제 1 방향을 따라 신장된 복수의 도핑 영역들(311~314)이 제공된다. 예를 들면, 복수의 도핑 영역들(311~314)은 기판(111)과 상이한 제 2 타입을 가질 것이다. 예를 들면, 복수의 도핑 영역들(311~314)은 n-타입을 가질 것이다. 이하에서, 제 1 내지 제 4 도핑 영역들(311~314)은 n-타입들인 것으로 가정한다. 그러나, 제 1 내지 제 4 도핑 영역들(311~314)은 n-타입들인 것으로 한정되지 않는다.
제 1 및 제 2 도핑 영역들(311, 312) 사이에 대응하는 기판(111) 상의 영역에서, 제 1 방향을 따라 신장되는 복수의 절연 물질들(112)이 제 2 방향을 따라 순차적으로 제공된다. 예를 들면, 복수의 절연 물질들(112) 및 기판(111)은 제 2 방향을 따라 미리 설정된 거리만큼 이격되어 제공될 것이다. 예를 들면, 복수의 절연 물질들(112)은 각각 제 2 방향을 따라 미리 설정된 거리만큼 이격되어 제공될 것이다. 예시적으로, 절연 물질들(112)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 것이다.
제 1 및 제 2 도핑 영역들(311, 312) 사이에 대응하는 기판(111) 상의 영역에서, 제 1 방향을 따라 순차적으로 배치되며 제 2 방향을 따라 절연 물질들(112)을 관통하는 복수의 필라들(113)이 제공된다. 예시적으로, 복수의 필라들(113) 각각은 절연 물질들(112)을 관통하여 기판(111)과 연결될 것이다.
예시적으로, 각 필라(113)는 복수의 물질들로 구성될 것이다. 예를 들면, 각 필라(113)의 표면층(114)은 제 1 타입으로 도핑된 실리콘 물질을 포함할 것이다. 예를 들면, 각 필라(113)의 표면층(114)은 기판(111)과 동일한 타입으로 도핑된 실리콘 물질을 포함할 것이다. 이하에서, 각 필라(113)의 표면층(114)은 p-타입 실리콘을 포함하는 것으로 가정한다. 그러나, 각 필라(113)의 표면층(114)은 p-타입 실리콘을 포함하는 것으로 한정되지 않는다.
각 필라(113)의 내부층(115)은 절연 물질로 구성된다. 예를 들면, 각 필라(113)의 내부층(115)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 충진될 것이다.
제 1 및 제 2 도핑 영역들(311, 312) 사이의 영역에서, 절연 물질들(112), 필라들(113), 그리고 기판(111)의 노출된 표면을 따라 절연막(116)이 제공된다. 예시적으로, 절연막(116)의 두께는 절연 물질들(112) 사이의 거리의 1/2 보다 작을 것이다. 즉, 절연 물질들(112) 중 제 1 절연 물질의 하부 면에 제공된 절연막(116), 그리고 제 1 절연 물질 하부의 제 2 절연 물질의 상부 면에 제공된 절연막(116) 사이에, 절연 물질들(112) 및 절연막(116) 이외의 물질이 배치될 수 있는 영역이 제공될 것이다.
제 1 및 제 2 도핑 영역들(311, 312) 사이의 영역에서, 절연막(116)의 노출된 표면 상에 도전 물질들(211~291)이 제공된다. 예를 들면, 기판(111)에 인접한 절연 물질(112) 및 기판(111) 사이에 제 1 방향을 따라 신장되는 도전 물질(211)이 제공된다. 더 상세하게는, 기판(111)에 인접한 절연 물질(112)의 하부 면의 절연막(116) 및 기판(111) 사이에, 제 1 방향으로 신장되는 도전 물질(211)이 제공된다.
절연 물질들(112) 중 특정 절연 물질 상부 면의 절연막(116) 및 특정 절연 물질 상부에 배치된 절연 물질의 하부 면의 절연막(116) 사이에, 제 1 방향을 따라 신장되는 도전 물질이 제공된다. 예시적으로, 절연 물질들(112) 사이에, 제 1 방향으로 신장되는 복수의 도전 물질들(221~281)이 제공된다. 또한, 절연 물질들(112) 상의 영역에 제 1 방향을 따라 신장되는 도전 물질(291)이 제공된다. 예시적으로, 제 1 방향으로 신장된 도전 물질들(211~291)은 금속 물질일 것이다. 예시적으로, 제 1 방향으로 신장된 도전 물질들(211~291)은 폴리 실리콘 등과 같은 도전 물질들일 것이다.
제 2 및 제 3 도핑 영역들(312, 313) 사이의 영역에서, 제 1 및 제 2 도핑 영역들(311, 312) 상의 구조물과 동일한 구조물이 제공될 것이다. 예시적으로, 제 2 및 제 3 도핑 영역들(312, 313) 사이의 영역에서, 제 1 방향으로 신장되는 복수의 절연 물질들(112), 제 1 방향을 따라 순차적으로 배치되며 제 3 방향을 따라 복수의 절연 물질들(112)을 관통하는 복수의 필라들(113), 복수의 절연 물질들(112) 및 복수의 필라들(113)의 노출된 표면에 제공되는 절연막(116), 그리고 제 1 방향을 따라 신장되는 복수의 도전 물질들(212~292)이 제공된다.
제 3 및 제 4 도핑 영역들(313, 314) 사이의 영역에서, 제 1 및 제 2 도핑 영역들(311, 312) 상의 구조물과 동일한 구조물이 제공될 것이다. 예시적으로, 제 3 및 제 4 도핑 영역들(312, 313) 사이의 영역에서, 제 1 방향으로 신장되는 복수의 절연 물질들(112), 제 1 방향을 따라 순차적으로 배치되며 제 3 방향을 따라 복수의 절연 물질들(112)을 관통하는 복수의 필라들(113), 복수의 절연 물질들(112) 및 복수의 필라들(113)의 노출된 표면에 제공되는 절연막(116), 그리고 제 1 방향을 따라 신장되는 복수의 도전 물질들(213~293)이 제공된다.
복수의 필라들(113) 상에 드레인들(320)이 각각 제공된다. 예시적으로, 드레인들(320)은 제 2 타입으로 도핑된 실리콘 물질들일 것이다. 예를 들면, 드레인들(320)은 n 타입으로 도핑된 실리콘 물질들일 것이다. 이하에서, 드레인들(320)는 n-타입 실리콘을 포함하는 것으로 가정한다. 그러나, 드레인들(320)은 n-타입 실리콘을 포함하는 것으로 한정되지 않는다. 예시적으로, 각 드레인(320)의 폭은 대응하는 필라(113)의 폭 보다 클 수 있다. 예를 들면, 각 드레인(320)은 대응하는 필라(113)의 상부면에 패드 형태로 제공될 수 있다.
드레인들(320) 상에, 제 3 방향으로 신장된 도전 물질들(331~333)이 제공된다. 도전 물질들(331~333)은 제 1 방향을 따라 순차적으로 배치된다. 도전 물질들(331~333) 각각은 대응하는 영역의 드레인들(320)과 연결된다. 예시적으로, 드레인들(320) 및 제 3 방향으로 신장된 도전 물질(333)은 각각 콘택 플러그들(contact plug)을 통해 연결될 수 있다. 예시적으로, 제 3 방향으로 신장된 도전 물질들(331~333)은 금속 물질들일 것이다. 예시적으로, 제 3 방향으로 신장된 도전 물질들(331~333)은 폴리 실리콘 등과 같은 도전 물질들일 것이다.
도 8 및 도 9에서, 각 필라(113)는 절연막(116)의 인접한 영역 및 제 1 방향을 따라 신장되는 복수의 도체 라인들(211~291, 212~292, 213~293) 중 인접한 영역과 함께 스트링을 형성한다. 예를 들면, 각 필라(113)는 절연막(116)의 인접한 영역 및 제 1 방향을 따라 신장되는 복수의 도체 라인들(211~291, 212~292, 213~293) 중 인접한 영역과 함께 낸드 스트링(NS)을 형성한다. 낸드 스트링(NS)은 복수의 트랜지스터 구조들(TS)을 포함한다.
메모리 블록(BLKi)은 복수의 필라들(113)을 포함한다. 즉, 메모리 블록(BLKi)은 복수의 낸드 스트링들(NS)을 포함한다. 더 상세하게는, 메모리 블록(BLKi)은 제 2 방향(또는 기판과 수직한 방향)으로 신장된 복수의 낸드 스트링들(NS)을 포함한다.
각 낸드 스트링(NS)은 제 2 방향을 따라 배치되는 복수의 트랜지스터 구조들(TS)을 포함한다. 각 낸드 스트링(NS)의 복수의 트랜지스터 구조들(TS) 중 적어도 하나는 스트링 선택 트랜지스터(SST)로 동작한다. 각 낸드 스트링(NS)의 복수의 트랜지스터 구조들(TS) 중 적어도 하나는 접지 선택 트랜지스터(GST)로 동작한다.
게이트들(또는 제어 게이트들)은 제 1 방향으로 신장된 도전 물질들(211~291, 212~292, 213~293)에 대응한다. 즉, 게이트들(또는 제어 게이트들)은 제 1 방향으로 신장되어 워드 라인들, 그리고 적어도 두 개의 선택 라인들(예를 들면, 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL))을 형성한다.
제 3 방향으로 신장된 도전 물질들(331~333)은 낸드 스트링들(NS)의 일단에 연결된다. 예시적으로, 제 3 방향으로 신장된 도전 물질들(331~333)은 비트 라인들(BL)로 동작한다. 즉, 하나의 메모리 블록(BLKi)에서, 하나의 비트 라인(BL)에 복수의 낸드 스트링들이 연결된다.
제 1 방향으로 신장된 제 2 타입 도핑 영역들(311~314)이 낸드 스트링들의 타단에 제공된다. 제 1 방향으로 신장된 제 2 타입 도핑 영역들(311~314)은 공통 소스 라인들(CSL)로 동작한다.
요약하면, 메모리 블록(BLKi)은 기판(111)에 수직한 방향(제 2 방향)으로 신장된 복수의 낸드 스트링들을 포함하며, 하나의 비트 라인(BL)에 복수의 낸드 스트링들(NS)이 연결되는 낸드 플래시 메모리 블록(예를 들면, 전하 포획형)으로 동작한다.
도 8 내지 도 9에서, 제 1 방향으로 신장되는 도체 라인들(211~291, 212~292, 213~293)은 9개의 층에 제공되는 것으로 설명되었다. 그러나, 제 1 방향으로 신장되는 도체 라인들(211~291, 212~292, 213~293)은 9개의 층에 제공되는 것으로 한정되지 않는다. 예를 들면, 제 1 방향으로 신장되는 도체 라인들은 8개의 층, 16개의 층, 또는 복수의 층에 제공될 수 있다. 즉, 하나의 낸드 스트링에서, 트랜지스터는 8개, 16개, 또는 복수 개일 수 있다.
도 8 내지 도 9에서, 하나의 비트 라인(BL)에 3 개의 낸드 스트링들(NS)이 연결되는 것으로 설명되었다. 그러나, 하나의 비트 라인(BL)에 3개의 낸드 스트링들(NS)이 연결되는 것으로 한정되지 않는다. 예시적으로, 메모리 블록(BLKi)에서, 하나의 비트 라인(BL)에 m 개의 낸드 스트링들(NS)이 연결될 수 있다. 이때, 하나의 비트 라인(BL)에 연결되는 낸드 스트링들(NS)의 수만큼, 제 1 방향으로 신장되는 도전 물질들(211~291, 212~292, 213~293)의 수 및 공통 소스 라인들(311~314)의 수 또한 조절될 것이다.
그리고, 제 1 방향으로 신장된 하나의 도전 물질에 3 개의 낸드 스트링들(NS)이 연결되는 것으로 설명되었다. 그러나, 제 1 방향으로 신장된 하나의 도전 물질에 3 개의 낸드 스트링들(NS)이 연결되는 것으로 한정되지 않는다. 예를 들면, 제 1 방향으로 신장된 하나의 도전 물질에, n 개의 낸드 스트링들(NS)이 연결될 수 있다. 이때, 제 1 방향으로 신장된 하나의 도전 물질에 연결되는 낸드 스트링들(NS)의 수만큼, 비트 라인들(331~333)의 수 또한 조절될 것이다.
도 10은 도 8 내지 도 9를 참조하여 설명된 메모리 블록(BLKi)의 등가 회로를 보여주는 회로도이다. 도 8 내지 도 10을 참조하면, 제 1 비트 라인(BL1) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11~NS31)이 제공된다. 제 1 비트 라인(BL1)은 제 3 방향으로 신장된 도전 물질(331)에 대응할 것이다. 제 2 비트 라인(BL2) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 제공된다. 제 2 비트 라인(BL2)은 제 3 방향으로 신장된 도전 물질(332)에 대응할 것이다. 제 3 비트 라인(BL3) 및 공통 소스 라인(CSL) 사이에, 낸드 스트링들(NS13, NS23. NS33)이 제공된다. 제 3 비트 라인(BL3)은 제 3 방향으로 신장된 도전 물질(333)에 대응할 것이다.
각 낸드 스트링(NS)의 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL)과 연결된다. 각 낸드 스트링(NS)의 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)과 연결된다. 각 낸드 스트링(NS)의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST) 사이에 메모리 셀들(MC)이 제공된다.
이하에서, 행 및 열 단위로 낸드 스트링들(NS)을 정의한다. 하나의 비트 라인에 공통으로 연결된 낸드 스트링들(NS)은 하나의 열을 형성한다. 예를 들면, 제 1 비트 라인(BL1)에 연결된 낸드 스트링들(NS11~NS31)은 제 1 열에 대응할 것이다. 제 2 비트 라인(BL2)에 연결된 낸드 스트링들(NS12~NS32)은 제 2 열에 대응할 것이다. 제 3 비트 라인(BL3)에 연결된 낸드 스트링들(NS13~NS33)은 제 3 열에 대응할 것이다. 하나의 스트링 선택 라인(SSL)에 연결되는 낸드 스트링들(NS)은 하나의 행을 형성한다. 예를 들면, 제 1 스트링 선택 라인(SSL1)에 연결된 낸드 스트링들(NS11~NS13)은 제 1 행을 형성한다. 제 2 스트링 선택 라인(SSL2)에 연결된 낸드 스트링들(NS21~NS23)은 제 2 행을 형성한다. 제 3 스트링 선택 라인(SSL3)에 연결된 낸드 스트링들(NS31~NS33)은 제 3 행을 형성한다.
각 낸드 스트링(NS)에서, 높이가 정의된다. 예시적으로, 각 낸드 스트링(NS)에서, 접지 선택 트랜지스터(GST)에 인접한 메모리 셀(MC1)의 높이는 1이다. 각 낸드 스트링(NS)에서, 스트링 선택 트랜지스터(SST)에 인접할수록 메모리 셀의 높이는 증가한다. 각 낸드 스트링(NS)에서, 스트링 선택 트랜지스터(SST)에 인접한 메모리 셀(MC7)의 높이는 7이다.
동일한 행의 낸드 스트링들(NS)의 스트링 선택 트랜지스터들(SST)은 스트링 선택 라인(SSL)을 공유한다. 상이한 행의 낸드 스트링들(NS)의 스트링 선택 트랜지스터들(SST)은 상이한 스트링 선택 라인들(SSL1, SSL2, SSL3)에 각각 연결된다.
동일한 행의 낸드 스트링들(NS)의 동일한 높이의 메모리 셀들은 워드 라인(WL)을 공유한다. 동일한 높이에서, 상이한 행의 낸드 스트링들(NS)의 메모리 셀들(MC)에 연결된 워드 라인들(WL)은 공통으로 연결된다. 동일한 행의 낸드 스트링들(NS)의 동일한 높이의 더미 메모리 셀들(DMC)은 더미 워드 라인(DWL)을 공유한다. 동일한 높이에서, 상이한 행의 낸드 스트링들(NS)의 더미 메모리 셀들(DMC)에 연결된 더미 워드 라인들(DWL)은 공통으로 연결된다.
예시적으로, 워드 라인들(WL) 또는 더미 워드 라인들(DWL)은 제 1 방향으로 신장되는 도전 물질들(211~291 212~292, 213~293)이 제공되는 층에서 공통으로 연결될 수 있다. 예시적으로, 제 1 방향으로 신장되는 도전 물질들(211~291 212~292, 213~293)은 콘택을 통해 상부 층에 연결될 것이다. 상부 층에서 제 1 방향으로 신장되는 도전 물질들(211~291 212~292, 213~293)이 공통으로 연결될 수 있다. 동일한 행의 낸드 스트링들(NS)의 접지 선택 트랜지스터들(GST)은 접지 선택 라인(GSL)을 공유한다. 상이한 행의 낸드 스트링들(NS)의 접지 선택 트랜지스터들(GST)은 접지 선택 라인(GSL)을 공유한다. 즉, 낸드 스트링들(NS11~NS13, NS21~NS23, NS31~NS33)은 접지 선택 라인(GSL)에 공통으로 연결된다.
공통 소스 라인(CSL)은 낸드 스트링들(NS)에 공통으로 연결된다. 예를 들면, 기판(111) 상의 활성 영역에서, 제 1 내지 제 4 도핑 영역들(311~314)이 연결될 것이다. 예를 들면, 제 1 내지 제 4 도핑 영역들(311~314)은 콘택을 통해 상부 층에 연결될 것이다. 상부 층에서 제 1 내지 제 4 도핑 영역들(311~314)이 공통으로 연결될 수 있다.
도 10에 도시된 바와 같이, 동일 깊이의 워드 라인들(WL)은 공통으로 연결된다. 따라서, 특정 워드 라인(WL)이 선택될 때, 특정 워드 라인(WL)에 연결된 모든 낸드 스트링들(NS)이 선택될 것이다. 상이한 행의 낸드 스트링들(NS)은 상이한 스트링 선택 라인(SSL)에 연결된다. 따라서, 스트링 선택 라인들(SSL1~SSL3)을 선택함으로써, 동일 워드 라인(WL)에 연결된 낸드 스트링들(NS) 중 비선택 행의 낸드 스트링들(NS)이 비트 라인들(BL1~BL3)로부터 분리될 수 있다. 즉, 스트링 선택 라인들(SSL1~SSL3)을 선택함으로써, 낸드 스트링들(NS)의 행이 선택될 수 있다. 그리고, 비트 라인들(BL1~BL3)을 선택함으로써, 선택 행의 낸드 스트링들(NS)이 열 단위로 선택될 수 있다.
각 낸드 스트링(NS)에서, 더미 메모리 셀(DMC)이 제공된다. 더미 메모리 셀(DMC) 및 접지 선택 라인(GST) 사이에 제 1 내지 제 3 메모리 셀들(MC1~MC3)이 제공된다. 더미 메모리 셀(DMC) 및 스트링 선택 라인(SST) 사이에 제 4 내지 제 6 메모리 셀들(MC4~MC6)이 제공된다. 이하에서, 각 낸드 스트링(NS)의 메모리 셀들(MC)은 더미 메모리 셀(DMC)에 의해 메모리 셀 그룹들로 분할되는 것으로 가정한다. 분할된 메모리 셀 그룹들 중 접지 선택 트랜지스터(GST)에 인접한 메모리 셀들(예를 들면, MC1~MC3)을 하부 메모리 셀 그룹이라 부르기로 한다. 그리고, 분할된 메모리 셀 그룹들 중 스트링 선택 트랜지스터(SST)에 인접한 메모리 셀들(예를 들면, MC4~MC6)을 상부 메모리 셀 그룹이라 부르기로 한다.
3차원 비휘발성 메모리 장치는 메모리 셀들이 기판으로부터 수직 방향으로 적층이 되었으므로, 하나의 블록의 저장용량이 커지게 된다. 따라서, 배드 페이지가 발생한 경우, 메모리 컨트롤러(1200)는 데이터 종류에 따라서, 배드 영역 관리를 선택적으로 페이지 단위 또는 블록 단위로 수행할 수 있다. 그러므로, 본 발명의 실시예들에 따르면, 메모리 컨트롤러(1200)는 비휘발성 메모리 장치의 저장 공간을 효율적으로 사용할 수 있다.
도 11은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 배드 영역 관리 동작을 보여주는 순서도이다.
도 11을 참조하면, 비휘발성 메모리 장치는 리드 또는 프로그램 동작을 실패한다.(S100) 메모리 컨트롤러는 리드 또는 프로그램 동작이 실패한 배드 페이지를 확인한다.(S110) 그리고, 메모리 컨트롤러는 배드 페이지의 데이터 종류를 결정한다.(S120) 메모리 컨트롤러는 배드 페이지 데이터가 메타 데이터이면, 배드 페이지를 포함하는 제 1 블록에 저장된 데이터는 제 2 블록으로 복사되어, 프로그램된다.(S130) 메타 데이터는 도 1 및 도 3에서 설명되었다. 그리고, 제 1 블록은 이레이즈 되어서, 프리 블록으로 되고, 유저 데이터가 프로그램된다.
도 12는 본 발명의 다른 실시예에 따른 메모리 컨트롤러의 배드 영역 관리 동작을 보여주는 순서도이다.
도 12를 참조하면, 비휘발성 메모리 장치는 프로그램 동작을 실패한다.(S200) 메모리 컨트롤러는 프로그램 실패한 배드 페이지를 확인한다.(S210) 그리고, 메모리 컨트롤러는 배드 페이지 데이터가 메타 데이터인지 확인한다. (S220) 배드 페이지 데이터가 메타 데이터이면, 배드 페이지를 포함하는 제 1 블록은 카피되고, 제 2 블록으로 프로그램 된다. (S230) 그리고, 배드 페이지 데이터가 메타 데이터가 아니고, 베드 페이지가 유저 데이터일때, 배드 페이지는 무효(invalid)된다.(S240) 무효된 배드 페이지 주소는 메모리 컨트롤러의 램에 저장되고, 무효된 페이지는 더 이상 사용되지 않는다.
도 13은 본 발명의 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 13을 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 태블릿(tablet) PC와 같은 전자 장치(10000)는 플래시 메모리 장치로 구현될 수 있는 비휘발성 메모리 장치(16000)와, 비휘발성 메모리 장치(16000)의 동작을 제어할 수 있는 메모리 컨트롤러(15000)를 포함할 수 있다.
비휘발성 메모리 장치(16000)는 도 1에서 도시한 비휘발성 메모리 장치(1100)를 의미할 수 있다. 비휘발성 메모리 장치(16000)는 랜덤 데이터를 저장 할 수 있다.
메모리 컨트롤러(15000)는 전자 장치의 전반적인 동작을 제어하는 프로세서(11000)에 의하여 제어된다.
비휘발성 메모리 장치(16000)에 저장된 데이터는 프로세서(11000)의 제어에 따라 동작하는 메모리 컨트롤러(15000)의 제어에 따라 디스플레이(13000)를 통하여 디스플레이될 수 있다.
무선 송수신기(12000)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(12000)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(11000)가 처리할 수 있는 신호로 변환할 수 있다. 따라서 프로세서(11000)는 무선 송수신기(12000)로부터 출력된 신호를 처리하고, 처리된 신호를 메모리 컨트롤러(15000)를 통하여 비휘발성 메모리 장치(16000)에 저장하거나 또는 디스플레이(13000)를 통하여 디스플레이할 수 있다.
무선 송수신기(12000)는 프로세서(11000)로부터 출력된 신호를 무선 신호로 변환하고, 변환된 무선 신호를 안테나(ANT)를 통하여 외부로 출력할 수 있다.
입력 장치(14000)는 프로세서(11000)의 동작을 제어하기 위한 제어 신호 또는 프로세서(11000)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(11000)는 비휘발성 메모리 장치(16000)로부터 출력된 데이터, 무선 송수신기(12000)로부터 출력된 무선 신호, 또는 입력 장치(14000)로부터 출력된 데이터가 디스플레이(13000)를 통하여 디스플레이될 수 있도록 디스플레이(13000)를 제어할 수 있다.
도 14은 본 발명의 다른 실시예에 따른 메모리 컨트롤러(24000)및 비휘발성 메모리 장치(25000)를 포함하는 전자 장치(20000)의 블록도를 나타낸다.
도 14을 참조하면, PC(personal computer), 태블릿 컴퓨터(tablet computer), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(20000)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(25000)와, 비휘발성 메모리 장치(25000)의 동작을 제어할 수 있는 메모리 컨트롤러(24000)를 포함한다.
비휘발성 메모리 장치(25000)는 도 1 및 도 13에서 도시한 비휘발성 메모리 장치를 의미할 수 있다. 비휘발성 메모리 장치(25000)는 랜덤 데이터를 저장 할 수 있다.
전자 장치(20000)는 전자 장치(20000)의 전반적인 동작을 제어하기 위한 프로세서(21000)를 포함할 수 있다. 메모리 컨트롤러(24000)는 프로세서(21000)에 의하여 제어된다.
프로세서(21000)는 입력 장치(22000)에 의하여 발생한 입력 신호에 따라 비휘발성 메모리 장치에 저장된 데이터를 디스플레이를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(22000)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
도 15은 본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치(34000)를 포함하는 전자 장치(30000)의 블록도를 나타낸다.
도 15을 참조하면, 전자 장치(30000)는 카드 인터페이스(31000), 메모리 컨트롤러(32000), 및 비휘발성 메모리 장치(34000), 예컨대 플래시 메모리 장치를 포함한다.
전자 장치(30000)는 카드 인터페이스(31000)를 통하여 호스트(HOST)와 데이터를 주거나 받을 수 있다. 실시예에 따라, 카드 인터페이스(31000)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(31000)는 전자 장치(30000)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(32000) 사이에서 데이터 교환을 인터페이스할 수 있다.
메모리 컨트롤러(32000)는 전자 장치(30000)의 전반적인 동작을 제어하며, 카드 인터페이스(31000)와 비휘발성 메모리 장치(34000) 사이에서 데이터의 교환을 제어할 수 있다. 또한 메모리 컨트롤러(32000)의 버퍼 메모리(325)는 카드 인터페이스(31000)와 비휘발성 메모리 장치(34000) 사이에서 주고받는 데이터를 버퍼링할 수 있다.
메모리 컨트롤러(32000)는 데이터 버스(DATA) 및 어드레스 버스(ADDRESS)를 통하여 카드 인터페이스(31000)와 비휘발성 메모리 장치(34000)와 접속된다. 실시예에 따라 메모리 컨트롤러(32000)는 카드 인터페이스(31000)로부터 리드 또는 라이트하고자 하는 데이터의 어드레스를 어드레스 버스(ADDRESS)를 통하여 수신하고 이를 비휘발성 메모리 장치(34000)로 전송한다.
또한, 메모리 컨트롤러(32000)는 카드 인터페이스(31000) 또는 비휘발성 메모리 장치(34000) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 또는 라이트하고자 하는 데이터를 수신하거나 전송한다.
비휘발성 메모리 장치(34000)는 도 1에서 도시한 비휘발성 메모리 장치를 의미할 수 있다. 비휘발성 메모리 장치(34000)는 랜덤 데이터를 저장 할 수 있다.
도 15의 전자 장치(30000)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(31000)와 메모리 컨트롤러(32000)를 통하여 비휘발성 메모리 장치(34000)에 저장된 데이터를 주거나 받을 수 있다.
도 16는 본 발명의 또 다른 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 16를 참조하면, 전자 장치(40000)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(45000), 비휘발성 메모리 장치(45000)의 데이터 처리 동작을 제어하기 위한 메모리 컨트롤러(44000), 및 전자 장치(40000)의 전반적인 동작을 제어할 수 있는 이미지 센서(41000)를 포함한다.
비휘발성 메모리 장치(45000)는 도 1 및 도 17에서 도시한 비휘발성 메모리 장치를 의미할 수 있다.
전자 장치(40000)의 이미지 센서(42000)는 광학 신호를 디지털 신호로 변환하고, 변환된 디지털 신호는 이미지 센서(41000)의 제어하에 비휘발성 메모리 장치(45000)에 저장되거나 또는 디스플레이(43000)를 통하여 디스플레이된다. 또한, 비휘발성 메모리 장치(45000)에 저장된 디지털 신호는 이미지 센서(41000)의 제어하에 디스플레이(43000)를 통하여 디스플레이된다.
도 17은 본 발명의 또 다른 실시예에 따른 메모리 컨트롤러(61000) 및 비휘발성 메모리 장치(62000A, 62000B, 62000C)를 포함하는 전자 장치(60000)의 블록도를 나타낸다.
도 17을 참조하면, 전자 장치(60000)는 SSD(solid state drive)와 같은 데이터 저장 장치로 구현될 수 있다.
전자 장치(60000)는 다수개의 비휘발성 메모리 장치들(62000A, 62000B, 62000C)과, 다수개의 비휘발성 메모리 장치들(62000A, 62000B, 62000C) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(61000)를 포함할 수 있다.
전자 장치(60000)는 메모리 시스템 또는 메모리 모듈로 구현될 수 있다.
비휘발성 메모리 장치(62000A, 62000B, 62000C)는 도 1 및 도 17에서 도시한 비휘발성 메모리 장치를 의미할 수 있다. 비휘발성 메모리 장치(62000A, 62000B, 62000C)는 랜덤 데이터를 저장 할 수 있다.
실시예에 따라 메모리 컨트롤러(61000)는 전자 장치(60000)의 내부 또는 외부에 구현될 수 있다.
도 18은 도 17에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
도 17과 도 18을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(70000)는 RAID 컨트롤러(71000)와, 다수개의 메모리 시스템들(72000A, 72000B ~72000N; N는 자연수)을 포함할 수 있다.
다수개의 메모리 시스템들(72000A, 72000B ~ 72000N) 각각은 도 15에 도시된 전자 장치 (700)일 수 있다. 다수개의 메모리 시스템들(72000A, 72000B ~72000N)은 RAID 어레이를 구성할 수 있다. 데이터 저장 장치(70000)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작 동안, RAID 컨트롤러(71000)는 호스트로부터 출력된 프로그램 데이터를 다수개의 RAID 레벨들 중에서 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라 다수개의 메모리 시스템들(72000A, 72000B ~72000N) 중에서 어느 하나의 메모리 시스템으로 출력할 수 있다.
또한, 리드 동작 동안, RAID 컨트롤러(71000)는 다수개의 RAID 레벨들 중에서 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라서 다수개의 메모리 시스템중(72000A, 72000B ~72000N)에서 어느 하나의 메모리 시스템으로부터 리드된 데이터를 호스트로 전송할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1000: 비휘발성 메모리 시스템
1100: 비휘발성 메모리 장치
1200: 메모리 컨트롤러
1230: 배드 영역 관리 유닛
1260 : ECC 엔진
1270 : 램(RAM)

Claims (10)

  1. 제1 블록과 제2 블록을 포함하되, 각 블록은 복수의 페이지를 포함하는 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법에 있어서;
    메타 데이터(meta data)가 저장되는 제1 블록에서 배드 페이지가 발생하고,
    상기 제1 블록의 노말 페이지에 저장되어 있던 메타 데이터와, 상기 배드 페이지에 대응되는 오리지널 메타 데이터를 상기 제2 블록으로 복사하고, 상기 제1 블록을 이레이즈하며, 그리고
    상기 제1 블록에 유저 데이터(user data)를 프로그램하는 것을 포함하는 방법.
  2. 제1항에 있어서,
    상기 이레이즈 후에, 상기 제 1 블록은 프리 블록으로 되어, 프리 블록 테이블에 업데이트되는 방법.
  3. 제 1항에 있어서,
    상기 배드 페이지는 리드 또는 프로그램 실패인 페이지인 방법.
  4. 제 3항에 있어서,
    상기 제1 블록에 저장된 메타 데이터는 상기 제3 블록에 동일하게 저장되어 있고,
    상기 오리지널 메타 데이터를 상기 제2 블록에 복사하는 것은, 상기 제3 블록에 저장되고 상기 배드 페이지에 대응되는 오리지널 메타 데이터를 상기 제2 블록에 복사하는 방법.
  5. 제 3항에 있어서,
    상기 오리지널 메타 데이터는 호스트로부터 제공받은 데이터인 방법.
  6. 제1 블록과 제2 블록을 포함하되, 각 블록은 복수의 페이지를 포함하는 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법에 있어서;
    프로그램 또는 리드 동작 수행이 실패된 배드 페이지를 판단하고,
    상기 배드 페이지에 저장된 데이터의 종류를 확인하되,
    상기 데이터의 종류가 메타 데이터일 때, 상기 배드 페이지를 포함하는 제 1 블록에 저장된 데이터를 복사하여 제 2 블록으로 프로그램하고, 상기 제 1 블록을 이레이즈하고, 상기 이레이즈된 제 1 블록은 메타 데이터는 저장하지 않고 유저 데이터를 저장하는 방법.
  7. 제 6항에 있어서,
    상기 이레이즈된 제 1 블록은 프리 블록이 되고, 프리 블록 테이블(free block table)에 업데이트 되는 방법.
  8. 제 7 항에 있어서,
    상기 제 2 블록에 프로그램하는 것은 어드레스 맵핑을 하지 않고, 상기 제 1 블록의 데이터를 복사(copy)하는 방법.
  9. 메모리 셀들이 기판으로부터 수직 방향으로 적층되고, 적어도 하나 이상의 메타 데이터 블록 및 적어도 하나 이상의 유저 데이터 블록을 포함하는 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고, 상기 컨트롤러는 메타 데이터 블록 및 데이터 블록의 배드 영역을 관리하는 배드 영역 관리 유닛을 포함하고, 상기 배드 영역 관리 유닛은 상기 메타 블록에서 배드 페이지가 발생하면, 상기 메타 데이터 블록을 유저 데이터 블록으로 전환하는 비휘발성 메모리 시스템.
  10. 복수개의 페이지를 포함하는 블록을 포함하는 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법에 있어서;
    프로그램 동작이 실패한 배드 페이지를 확인하고,
    상기 데이터의 종류에 따라서, 선택적으로 배드 페이지 관리방법을 결정하되,
    상기 데이터가 유저 데이터인 때에는 상기 배드 페이지는 폐기(discard)되고, 상기 데이터가 메타 데이터인 때에는 상기 배드 페이지를 포함하는, 제 1 블록에 저장된 데이터를 복사하여, 제 2 블록으로 프로그램하는 방법.
KR1020140035369A 2014-03-26 2014-03-26 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템 KR20150111692A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140035369A KR20150111692A (ko) 2014-03-26 2014-03-26 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템
US14/338,361 US20150277792A1 (en) 2014-03-26 2014-07-23 Memory controller, memory system, and related method of operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140035369A KR20150111692A (ko) 2014-03-26 2014-03-26 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20150111692A true KR20150111692A (ko) 2015-10-06

Family

ID=54190407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140035369A KR20150111692A (ko) 2014-03-26 2014-03-26 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US20150277792A1 (ko)
KR (1) KR20150111692A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170012674A (ko) * 2015-07-22 2017-02-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 저장 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102231441B1 (ko) * 2014-12-17 2021-03-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9934858B2 (en) * 2015-04-30 2018-04-03 Sandisk Technologies Llc Use of dummy word lines for metadata storage
KR20170000108A (ko) * 2015-06-23 2017-01-02 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US20160378151A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing
KR20180020706A (ko) * 2016-08-19 2018-02-28 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
KR20210039185A (ko) * 2019-10-01 2021-04-09 에스케이하이닉스 주식회사 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치
KR20240002571A (ko) * 2022-06-29 2024-01-05 에스케이하이닉스 주식회사 메모리 장치, 메모리 장치를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850515B1 (ko) * 2007-01-24 2008-08-05 삼성전자주식회사 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US8495465B1 (en) * 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
JP2011128998A (ja) * 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
US8478796B2 (en) * 2010-03-23 2013-07-02 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
KR20120037786A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 저장 장치, 그것의 락 모드 관리 방법, 및 그것을 포함하는 메모리 시스템
US20120117303A1 (en) * 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer
JP5377526B2 (ja) * 2011-01-13 2013-12-25 株式会社東芝 不揮発性半導体記憶装置
US9235502B2 (en) * 2011-09-16 2016-01-12 Apple Inc. Systems and methods for configuring non-volatile memory
US9201784B2 (en) * 2012-09-07 2015-12-01 Kabushiki Kaisha Toshiba Semiconductor storage device and method for controlling nonvolatile semiconductor memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170012674A (ko) * 2015-07-22 2017-02-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 저장 장치

Also Published As

Publication number Publication date
US20150277792A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
CN105989885B (zh) 存储系统及其操作方法
CN106776353B (zh) 存储器系统及其操作方法
CN105719703B (zh) 存储系统及其操作方法
KR102137934B1 (ko) 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템
CN105739914B (zh) 数据处理系统及其操作方法
KR102110767B1 (ko) 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
CN105988938B (zh) 存储系统及其操作方法
CN106708744B (zh) 存储系统和存储系统的操作方法
CN105719701B (zh) 半导体存储器设备及其操作方法
CN106776352B (zh) 存储器系统和存储器系统的操作方法
KR102085127B1 (ko) 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치
CN106920570B (zh) 存储器系统及其操作方法
KR20150111692A (ko) 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템
CN106910521B (zh) 存储器系统及其操作方法
CN106960679B (zh) 存储器系统及存储器系统的操作方法
CN105551521B (zh) 存储系统及其操作方法
KR20150024141A (ko) 메모리 컨트롤러 및 그것의 동작 방법
CN106610904B (zh) 存储系统及其操作方法
CN110390984B (zh) 存储器系统和存储器系统的操作方法
CN105718378B (zh) 存储系统及其操作方法
KR20160132204A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20160143259A (ko) 메모리 시스템 및 그의 동작방법
KR20170111193A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170076878A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170061218A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid