KR20230071013A - 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 - Google Patents

데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20230071013A
KR20230071013A KR1020220023832A KR20220023832A KR20230071013A KR 20230071013 A KR20230071013 A KR 20230071013A KR 1020220023832 A KR1020220023832 A KR 1020220023832A KR 20220023832 A KR20220023832 A KR 20220023832A KR 20230071013 A KR20230071013 A KR 20230071013A
Authority
KR
South Korea
Prior art keywords
data
memory
block
blocks
raid
Prior art date
Application number
KR1020220023832A
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 US17/895,318 priority Critical patent/US11966608B2/en
Priority to EP22195533.9A priority patent/EP4180962A1/en
Priority to CN202211257542.8A priority patent/CN116126583A/zh
Publication of KR20230071013A publication Critical patent/KR20230071013A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1052RAID padding, i.e. completing a redundancy group with dummy data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러의 동작방법은, 블록들에 대한 열화 영역의 위치를 나타내는 열화 정보를 기초로, 제1 블록에 저장된 데이터들에 대해, RAID 의 유저 데이터를 제2 블록의 상기 열화 영역 이외의 노멀 영역에 카피하는 단계와, 상기 제1 블록에 저장된 데이터들 중 상기 RAID 의 패리티 데이터를 상기 제2 블록의 열화 영역에 카피하는 단계 및 어느 하나의 RAID 를 구성하는 데이터들 사이의 맵핑 정보를 업데이트하여 상기 메모리 장치로 전송하는 단계를 구비하고, 상기 열화 정보는, 상기 다수의 블록들 각각에서 상기 열화 영역에 포함되는 특정 위치의 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 한다.

Description

데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템{Non-volatile memory device improving data reliability and Operating method thereof}
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것으로서, 상세하게는 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 관한 것이다.
불휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 메모리 시스템으로서, SSD(Solid State Drive) 및 메모리 카드 등의 플래시 메모리를 포함하는 플래시 메모리 시스템(또는, 스토리지 장치)가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
플래시 메모리 장치는 다수의 블록들을 포함하고, 각각의 블록은 다수의 워드라인들을 포함할 수 있다. 플래시 메모리 장치 구조상 상대적으로 데이터의 저장 특성이 낮은 영역(예컨대, 열화 영역)이 존재할 수 있으며, 특정 위치의 워드라인들에 연결된 메모리 셀들은 다른 위치의 워드라인들에 연결된 메모리 셀들에 비해 그 특성이 낮을 수 있다. 또한, 데이터의 신뢰성을 높이기 위하여 플래시 메모리 장치의 데이터 신뢰성을 향상하기 위해 패리티를 이용한 에러 정정/복구 기법(예컨대, RAID(Redundant Array of Inexpensive Disks) 등)이 적용될 수 있는데, 플래시 메모리 장치의 집적도가 증가함에 따라 열화 정도도 증가될 수 있으므로, 열화에 대응하여 신뢰성을 확보하기 위한 관리가 필요하다.
본 발명의 기술적 사상이 해결하려는 과제는, 플래시 메모리 장치에 존재할 수 있는 열화 영역에 대응하여 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템을 제공함에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러의 동작방법은, 블록들에 대한 열화 영역의 위치를 나타내는 열화 정보를 기초로, 제1 블록에 저장된 데이터들에 대해, RAID 의 유저 데이터를 제2 블록의 상기 열화 영역 이외의 노멀 영역에 카피하는 단계와, 상기 제1 블록에 저장된 데이터들 중 상기 RAID 의 패리티 데이터를 상기 제2 블록의 열화 영역에 카피하는 단계 및 어느 하나의 RAID 를 구성하는 데이터들 사이의 맵핑 정보를 업데이트하여 상기 메모리 장치로 전송하는 단계를 구비하고, 상기 열화 정보는, 상기 다수의 블록들 각각에서 상기 열화 영역에 포함되는 특정 위치의 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는, 프로세서와, 상기 프로세서에 의해 실행되는 플래시 변환 계층을 저장하는 워킹 메모리 및 상기 메모리 장치와 통신하는 메모리 인터페이스를 구비하고, 상기 메모리 장치에 대한 백그라운드 동작에서, 상기 메모리 장치에 저장되고 RAID 를 구성하는 다수의 유저 데이터들 및 이에 대응하는 패리티 데이터에 대해, 상기 메모리 인터페이스는 상기 다수의 유저 데이터들이 상기 다수의 블록들의 노멀 영역에 카피되도록 제1 어드레스를 출력하고, 상기 패리티 데이터가 상기 다수의 블록들의 열화 영역에 카피되도록 제2 어드레스를 출력하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 메모리 시스템은 메모리 장치를 구비하고, 상기 메모리 장치는, 다수의 블록들을 포함하는 메모리 셀 어레이와, 상기 메모리 셀 어레이에 대한 데이터의 기록 및 독출 동작을 제어하는 제어 로직 및 메모리 컨트롤러와 각종 신호들을 송수신하는 인터페이스 회로를 구비하고, 상기 인터페이스 회로는, 상기 다수의 블록들 각각에서 열화 영역에 포함되는 특정 위치의 하나 이상의 워드라인들의 정보를 포함하는 열화 정보를 상기 메모리 컨트롤러로 출력하고, 상기 메모리 컨트롤러의 제어에 기초하여, 상기 메모리 셀 어레이에 저장되고 RAID(Redundant Array of Inexpensive Disks) 를 구성하는 다수의 유저 데이터들 및 이에 대응하는 패리티 데이터에 대해, 상기 다수의 유저 데이터들을 상기 다수의 블록들의 노멀 영역에 카피하고, 상기 패리티 데이터를 상기 다수의 블록들의 상기 열화 영역에 카피하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 따르면, 데이터의 억세스 빈도에 따른 데이터 타입을 판단함에 기초하여, 억세스 빈도가 낮은 데이터를 독출 디스터브에 민감한 영역에 카피하므로, 독출 디스터브에 따른 독출 에러 발생 가능성을 감소시키고 데이터의 신뢰성을 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 메모리 컨트롤러 및 이를 포함하는 메모리 시스템에 따르면, 데이터 카피를 수반하는 백그라운드 동작에서 억세스 빈도가 낮은 패리티 데이터를 독출 디스터브에 민감한 영역에 카피하므로, 유저 데이터의 독출 에러의 발생 가능성을 감소할 수 있는 효과가 있다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 메모리 셀 어레이에서의 열화 영역의 설정 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 예시적인 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 6은 도 1의 메모리 셀 어레이를 예시적으로 나타내는 도면이다.
도 7은 도 6의 셀 블록의 구조의 일 예를 나타내는 사시도이다.
도 8은 본 개시의 예시적인 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 9a,b는 데이터의 카피 동작 및 맵핑 정보의 일 예를 나타내는 도면이다.
도 10 및 도 11은 리클레임 동작 및 가비지 컬렉션 동작에서의 본 개시의 카피 동작의 일 예를 나타내는 플로우차트이다.
도 12는 데이터 기록 과정에서 본 개시의 실시예가 적용되는 경우를 나타내는 플로우차트이다.
도 13 및 도 14는 본 개시의 예시적인 실시예들에 따른 카피 동작의 구체적인 구현 예를 나타내는 도면이다.
도 15는 메모리 컨트롤러와 메모리 장치의 인터페이스의 일 예를 나타내는 도면이다.
도 16은 본 개시의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 컨트롤러(110) 및 메모리 장치(120)를 포함할 수 있으며, 메모리 장치(120)는 메모리 셀 어레이(121)를 포함할 수 있다. 도 1에 도시되지는 않았으나, 메모리 장치(120)는 메모리 셀 어레이(121)에 포함된 메모리 셀들에 대한 기록/독출/소거 동작을 제어하기 위한 다양한 주변 회로들을 포함할 수 있고, 일 예로서 로우 디코더, 전압 생성기 및 제어 로직(이상, 미도시)을 더 포함할 수 있다.
예를 들어, 메모리 시스템(100)은 다양한 인터페이스를 통해 호스트(HOST)와 통신할 수 있고, 일 예로서 메모리 시스템(100)은 USB(Universal Serial Bus), MMC(multimedia card), eMMC(embeded MMC), 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), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe(Nonvolatile Memory express) 등과 같은 다양한 인터페이스를 통해 호스트와 통신할 수 있다.
예시적인 실시예에 따라, 메모리 장치(120)는 플래시 메모리 등의 불휘발성 메모리 장치를 포함할 수 있다. 일부 실시예들에서, 메모리 시스템(100)은 전자 장치에 내장되거나 착탈 가능한 메모리로 구현될 수 있고, 예를 들어, 메모리 시스템(100)은 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), SSD(Solid State Drive), UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 형태로 구현될 수 있다. 또한, 메모리 시스템(100)은 데이터를 불휘발성하게 저장함에 따라 스토리지 장치로 지칭될 수도 있다.
또한, 예시적인 실시예에서, 메모리 장치(120)는 다수의 플래시 메모리 칩들을 포함할 수 있다. 메모리 컨트롤러(110)는 하나 이상의 채널들을 통해 메모리 장치(120)와 통신할 수 있다. 이에 따라, 메모리 셀 어레이(121)는 하나 이상의 플래시 메모리 칩들에 포함되는 메모리 셀 어레이를 포함하는 개념일 수 있다.
메모리 컨트롤러(110)는 호스트로부터의 기록/독출 요청에 응답하여 메모리 장치(120)에 저장된 데이터를 독출하거나 또는 메모리 장치(120)에 데이터를 기록하도록 메모리 장치(120)를 제어할 수 있다. 일 예로서, 메모리 컨트롤러(100)는 메모리 장치(120)에 커맨드/어드레스(CMD/ADD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(120)에 대한 기록, 독출 및 소거 동작을 제어할 수 있다. 또한, 메모리 장치(120)에 저장될 데이터(DATA)와 메모리 장치(120)로부터 독출된 데이터(DATA)가 메모리 컨트롤러(110)와 메모리 장치(120) 사이에서 송수신될 수 있다.
메모리 셀 어레이(121)는 다수의 메모리 셀들을 포함할 수 있으며, 예를 들어, 다수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 이하에서는, 다수의 메모리 셀들이 낸드(NAND) 플래쉬 메모리 셀들인 경우를 예로 하여 본 개시의 실시예들을 상술하기로 한다. 그러나, 본 발명은 이에 한정되지 않고, 일부 실시예들에서, 다수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항성 메모리 셀들일 수 있다.
메모리 셀 어레이(121)는 다수의 블록들을 포함할 수 있고, 각각의 블록은 다수의 셀 스트링들을 포함할 수 있으며, 각각의 셀 스트링은 다수의 워드라인들에 연결될 수 있다. 또한, 각각의 워드라인에는 다수의 메모리 셀들이 연결될 수 있고, 각각의 메모리 셀은 하나 이상의 데이터 비트를 저장할 수 있다. 플래시 메모리 장치에서, 데이터의 기록/독출 단위를 페이지로 정의할 때, 각각의 워드라인에 연결된 메모리 셀들은 하나 이상의 페이지들을 구성할 수 있으며, 또한 상기한 블록은 데이터의 소거 단위로 정의될 수 있다. 이하, 본 개시의 실시예들에서 메모리 셀 어레이(121)의 열화 영역을 설명함에 있어서, 열화 영역은 데이터 저장 특성이 상대적으로 낮은 하나 이상의 워드라인들에 연결된 메모리 셀들을 포함하는 개념으로 정의될 수 있으며, 또는 설명의 편의 상 하나 이상의 워드라인들이 열화 영역을 구성하는 것으로 지칭될 수도 있을 것이다.
본 개시의 예시적인 실시예에 따라, 메모리 컨트롤러(110)는 플래시 변환 계층(Flash Translation Layer, FTL(111)) 및 카피 관리 모듈(112)을 포함할 수 있다. FTL(111)은 플래시 메모리 장치의 기록, 독출 및 소거 동작 등에 대한 관리를 수행하는 소프트웨어(또는, 펌웨어)를 포함하고, 메모리 컨트롤러(110) 내의 동작 메모리(미도시)에 로딩될 수 있다. 상기 FTL(111)에 포함되는 소프트웨어는 메모리 컨트롤러(110) 내에 구비되는 프로세서(미도시)에 의해 실행될 수 있다.
메모리 컨트롤러(110)는 FTL(111)의 실행에 기초하여 메모리 장치(120)에 대한 다양한 동작들을 제어할 수 있다. 일 예로서, 메모리 컨트롤러(110)는 호스트로부터의 데이터 억세스 요청에 따라, 호스트로부터의 논리적 어드레스를 물리적 어드레스로 변환하여 메모리 장치(120)로 제공할 수 있다. 또한, FTL(111)은 메모리 셀 어레이(120)에 구비되는 다양한 셀 영역들(예컨대, 칩 단위, 블록 단위 및 페이지 단위 등)에 대한 관리 동작을 수행하며, 예컨대 메모리 장치(120)에 구비되는 메모리 셀 어레이(121)의 다수의 블록들에 대한 리클레임 동작 및 가비지 컬렉션 동작 등의 백그라운드 동작을 수행할 수 있다.
백그라운드 동작은 어느 하나의 블록에 저장된 데이터를 하나 이상의 다른 블록들에 카피하는 동작을 포함할 수 있다. 일 예로서, 리클레임 동작은 특정 블록이 열화됨에 따라 데이터 손실 가능성이 존재하는 경우, 상기 특정 블록에 저장된 데이터(예컨대, 유효 데이터 및 무효 데이터)를 하나 이상의 다른 블록들에 카피하는 동작을 포함할 수 있다. 또한, 가비지 컬렉션 동작은 두 개 이상의 소스 블록들에 저장된 유효 데이터들을 하나 이상들의 목적 블록들에 카피하는 동작을 포함할 수 있다. 본 개시의 예시적인 실시예에서, 카피 관리 모듈(112)은 리클레임 동작 및/또는 가비지 컬렉션 동작 등의 백그라운드 동작에서 데이터의 카피를 관리할 수 있으며, 일 예로서 데이터들의 카피 위치를 나타내는 어드레스(예컨대, 카피 어드레스)를 생성할 수 있다.
본 개시의 예시적인 실시예에서의 구체적인 동작 예를 설명하면 다음과 같다.
메모리 셀 어레이(121)에 구비되는 각각의 셀 스트링은 다수의 메모리 셀들을 포함할 수 있으며, 각각의 셀 스트링에서 다수의 메모리 셀들은 스트링 선택 트랜지스터와 접지 선택 트랜지스터 사이에 직렬하게 배치될 수 있다. 스트링 선택 트랜지스터는 비트라인에 연결되고, 접지 선택 트랜지스터는 공통 소스 라인에 연결될 수 있으며, 메모리 셀 어레이(121)의 블록이 3차원 구조(또는 수직 구조)를 갖는 경우, 셀 스트링은 반도체 기판(미도시)으로부터 수직한 방향으로 신장되게 구현될 수 있다. 이에 따라 각각의 셀 스트링은 반도체 기판을 기준으로 수직하게 위치하는 다수 개의 다수의 메모리 셀들을 포함할 수 있다.
어느 하나의 블록을 예로 들면, 워드라인들 각각은 상기 블록에 포함되는 다수의 셀 스트링들에 공통하게 연결될 수 있으며, 메모리 셀 어레이(121)의 구조에 따라 열화 영역은 하나 이상의 워드라인들(또는, 하나 이상의 워드라인들에 연결된 메모리 셀들)을 포함할 수 있다. 열화 영역은 다양한 원인들에 의해 발생될 수 있으며, 일 예로서 메모리 장치(120)의 구조나 구동 방식 등 다양한 원인에 의해 일부의 워드라인들이 열화 영역에 해당할 수 있다.
메모리 셀 어레이(121)의 각 블록에서, 열화 영역은 다수의 워드라인들 중 특정 위치의 워드라인들을 포함할 수 있다. 일 예로서, 셀 스트링의 메모리 셀들이 반도체 기판 상부에 수직하게 배치된 경우를 가정할 때, 반도체 기판에 인접하게 위치한(또는, 접지 선택 트랜지스터에 인접하게 위치한) 하나 이상의 워드라인들이 열화 영역에 포함될 수 있다. 열화 영역에 포함된 메모리 셀들은 노멀 영역의 워드라인들에 연결된 메모리 셀들에 비해 독출 디스터브(Read Disturb)에 민감함에 따라 독출 동작시 에러 발생 가능성이 상대적으로 높을 수 있으며, 열화 영역에 저장된 데이터의 손실 가능성은 상대적으로 크고 이에 따른 신뢰성 저하의 문제가 발생될 수 있다.
본 개시의 예시적인 실시예에 따라, 메모리 시스템(100)은 메모리 셀 어레이(121)의 열화 영역을 나타내는 열화 정보(Info_D)를 저장할 수 있다. 일 예로서, 메모리 장치(120)의 제조 과정에서 메모리 셀 어레이(121)에 대한 테스트가 수행되고, 테스트 결과에 따른 열화 정보(Info_D)가 메모리 시스템(100) 내에 불휘발성하게 저장될 수 있다. 도 1에 도시된 실시예에서는 메모리 셀 어레이(121)의 일부 영역에 열화 정보(Info_D)가 저장되는 예가 도시되었으나, 본 개시의 실시예는 이에 국한될 필요가 없다. 예컨대, 열화 정보(Info_D)는 메모리 컨트롤러(110) 내의 저장 회로에 불휘발성하게 저장되어 카피 위치 산출 동작에 이용될 수도 있으며, 또는 메모리 장치(120)의 메모리 셀 어레이(121) 외부의 저장 회로에 저장될 수도 있을 것이다.
본 개시의 예시적인 실시예에 따라, 열화 정보(Info_D)는 각 블록에서 특정 위치의 하나 이상의 워드라인들의 정보를 포함할 수 있으며, 일 예로서 기판에 상대적으로 가까이 위치함에 따라 독출 디스터브에 민감한 하나 이상의 워드라인들의 어드레스 정보를 포함할 수 있다. 또는, 각 블록의 워드라인들에 대한 테스트 결과에 따라 각 워드라인에서 발생된 에러 정도가 모니터링될 수 있고, 열화 정보(Info_D)는 상대적으로 에러 발생 정도가 큰 하나 이상의 워드라인들의 어드레스 정보를 포함할 수 있다.
메모리 컨트롤러(110)는 메모리 장치(120)에 대한 관리 동작으로서 리클레임 동작 및 가비지 컬렉션 동작 등에서 데이터의 카피 동작을 제어할 수 있다. 예시적인 실시예에서, 메모리 컨트롤러(110)는 메모리 장치(120)에 저장된 데이터의 타입을 판별하고, 판별된 데이터의 타입을 기초로 데이터의 카피 동작을 제어할 수 있다. 데이터는 다양한 기준들에 기초하여 다수의 타입들로 분류될 수 있고, 특정 타입의 데이터는 노멀 영역에 카피되고, 다른 타입의 데이터는 열화 영역에 카피되도록 카피 동작이 제어될 수 있다. 예컨대, 호스트에 의한 억세스 빈도가 상대적으로 높은 데이터는 제1 타입 데이터로 분류되고, 억세스 빈도가 상대적으로 낮은 데이터는 제2 타입 데이터로 분류될 수 있으며, 상기한 제1 타입 데이터는 노멀 영역에 카피되고 제2 타입 데이터는 열화 영역에 카피될 수 있다.
데이터의 기록/독출 등 억세스 빈도가 높은 경우에는 데이터를 저장하는 메모리 셀들의 열화 정도가 증가할 수 있고, 이에 따라 상대적으로 독출 디스터브에 민감한 워드라인에 저장된 데이터의 억세스가 증가되는 경우에는 데이터의 손실 가능성이 더욱 증대될 수 있다. 그러나, 본 개시의 예시적인 실시예들에 따르면, 억세스 빈도를 기초로 데이터의 타입을 분류하고, 억세스 빈도가 상대적으로 낮은 타입의 데이터를 열화 영역에 카피함에 따라 독출 디스터브에 의한 데이터 손실 가능성을 감소할 수 있는 효과가 있다.
한편, 데이터의 에러 정정/복구 과정에서, 소정 단위의 데이터는 적어도 하나의 패리티 데이터를 이용하여 그 에러가 복구될 수 있다. 일 예로서, RAID(Redundant Array of Inexpensive Disks)를 예로 들면, 서로 다른 위치에 저장되는 하나 이상의 데이터들(이하, 유저 데이터로 지칭함)과 패리티 데이터가 RAID 를 구성할 수 있다. 이 때, 유저 데이터는 호스트의 요청에 의한 억세스 빈도가 상대적으로 높은 반면에, 패리티 데이터는 억세스 빈도가 상대적으로 낮을 수 있다. 본 개시의 예시적인 실시예에서, 유저 데이터는 제1 타입 데이터로 분류되고, 패리티 데이터는 제2 타입 데이터로 분류될 수 있으며, 상기한 유저 데이터는 노멀 영역에 카피되고 패리티 데이터는 열화 영역에 카피될 수 있다.
카피 관리 모듈(112)은 억세스 빈도가 상대적으로 높은 제1 타입 데이터는 노멀 영역에 카피되는 반면에, 억세스 빈도가 상대적으로 낮은 제2 타입 데이터는 열화 영역에 카피되도록 카피 어드레스를 생성할 수 있다.
한편, RAID를 구성하는 유저 데이터와 패리티 데이터는 하나 이상의 메모리 칩들의 블록들의 특정 위치(예컨대, 동일한 위치의 워드라인들)에 저장될 수 있고, 이에 따라 별도의 어드레스 정보를 이용함이 없이 RAID를 구성하는 유저 데이터와 패리티 데이터가 독출될 수 있다. 반면에, 본 개시의 실시예들에 따르면, RAID를 구성하는 유저 데이터와 패리티 데이터는 카피 동작에 기반하여 블록 내에서 저장되는 위치가 변동될 수 있으며, 이에 따라 본 개시의 실시예들에 따라 RAID를 구성하는 유저 데이터와 패리티 데이터 사이의 맵핑 정보가 생성 및 관리될 수 있으며, 또한 카피 동작이 수행된 이후에는 맵핑 정보가 업데이트될 수 있다. 메모리 컨트롤러(110)는 맵핑 정보(Info_M)를 생성하고 메모리 장치(120)로 제공할 수 있다.
한편, 상기한 실시예에서의 카피 관리 모듈(112)의 기능은 하드웨어적 회로, 또는 소프트웨어적으로 구현될 수 있으며, 또는 하드웨어 및 소프트웨어의 조합을 기초로 구현될 수 있다. 예컨대, 카피 관리 모듈(112)이 하드웨어적으로 구현되는 경우, 열화 정보(Info_D)를 기초로 데이터가 카피되는 위치를 지시하는 카피 어드레스를 소정의 연산을 통해 생성할 수 있다. 또는, 카피 관리 모듈(112)이 소프트웨어적으로 구현되는 경우, 카피 관리 모듈(112)의 기능을 수행하는 소프트웨어가 메모리 컨트롤러(110) 내에 저장될 수 있으며, 일 예로서 카피 관리 모듈(112)의 기능을 수행하는 소프트웨어가 FTL(111)에 포함될 수 있을 것이다.
도 2는 메모리 셀 어레이(121)에서의 열화 영역의 설정 예를 나타내는 블록도이다. 도 2에서는 메모리 셀 어레이(121)가 제1 내지 제N 블록들(BLK 1 ~ BLK N)을 포함하고 각 블록이 제1 내지 제K 워드라인들(WL 1 ~ WL K)을 포함하는 경우가 예시되며, 상기한 제1 내지 제N 블록들(BLK 1 ~ BLK N)은 하나 이상의 플래시 메모리 칩들에 구비되는 블록일 수 있다.
도 2를 참조하면, 본 개시의 예시적인 실시예에서 열화 영역은 다양한 단위로 설정될 수 있고, 일 예로서 어느 하나의 블록에 포함되는 하나 이상의 워드라인들이 열화 영역으로 설정될 수 있다. 또한, 각각의 블록은 다수 개의 영역들로 분류될 수 있고, 독출 디스터브가 민감한 정도에 따라 다수 개의 열화 영역들이 블록에 포함될 수도 있다. 도 2에서는, 제1 블록(BLK 1)이 독출 디스터브 정도에 따라 A 개의 영역들로 분류되고, 제N 블록(BLK N)이 독출 디스터브 정도에 따라 B 개의 영역들로 분류되는 경우가 예시되며, 제1 블록(BLK 1)에서는 제1 영역(Reg_1)이 가장 독출 디스터브 민감도가 크고, 제A 영역(Reg_A)이 가장 독출 디스터브 민감도가 작은 영역에 해당할 수 있다. 또한, 제N 블록(BLK N)에서는 제1 영역(Reg_1)이 가장 독출 디스터브 민감도가 크고, 제B 영역(Reg_B)이 가장 독출 디스터브 민감도가 작은 영역에 해당할 수 있다.
본 개시의 예시적인 실시예에 있어서, 열화 영역은 다양한 기준을 통해 정의될 수 있다. 예컨대, 제1 블록(BLK 1)의 A 개의 영역들 중 제1 영역(Reg_1)을 포함하여 상대적으로 큰 독출 디스터브 민감도를 갖는 하나 이상의 영역들이 열화 영역으로 정의될 수 있다. 이와 동일하게, 제N 블록(BLK N)의 B 개의 영역들 중 제1 영역(Reg_1)을 포함하여 상대적으로 큰 독출 디스터브 민감도를 하나 이상의 영역들이 열화 영역으로 정의될 수 있다. 즉, 본 개시의 예시적인 실시예에서, 각 블록이 다수의 영역들로 분류될 때, 열화 영역에 포함되는 영역들은 다양한 기준들(일 예로서, 워드라인 높이, 비트 에러율 등)을 기초로 정의될 수 있을 것이다.
도 2를 참조하면, 각각의 블록에서 제1 영역(Reg_1)이 열화 영역인 것으로 가정하면, 블록이 3차원 메모리 셀 어레이로 구현되는 경우 상대적으로 하부에 위치한 워드라인들(또는, 반도체 기판에 인접하게 위치한)이 열화 영역으로 정의될 수 있다. 예컨대, 각 블록에서 소정 개수의 워드라인들이 열화 영역으로 정의될 수 있으며, 도 2에서는 제1 및 제2 워드라인(WL1, WL2)이 열화 영역으로 정의되는 경우가 예시된다.
예시적인 실시예에서, 열화 영역은 메모리 장치에 대한 테스트 과정에서 판단될 수 있다. 예컨대, 메모리 장치의 제조 과정에서 메모리 장치의 다수의 워드라인들에 대한 테스트 동작을 통해 각 워드라인에 대한 문턱전압 산포 특성을 기초로 에러 발생 정도가 판단될 수 있고, 상대적으로 문턱전압 산포 특성이 좋지 않음에 따라 에러 발생 빈도가 높은 하나 이상의 워드라인들이 열화 영역으로 판단되며, 해당 워드라인들의 위치를 나타내는 열화 정보가 메모리 장치 내에 저장될 수 있다. 일 예로서, 동일한 메모리 셀들에 대해 다수의 독출 전압들(예컨대, 하드 디시전 전압 및 소프트 디시전 전압)을 이용하여 문턱전압 산포의 쉬프트 정도가 판단될 수 있으며, 상대적으로 문턱전압 레벨이 크게 이동한 메모리 셀들은 스트롱 에러(strong error)를 갖는 것으로 판단될 수 있다.
본 개시의 예시적인 실시예에서, 열화 영역은 각 워드라인에 발생되는 스트롱 에러의 개수(SE #)를 기초로 판단될 수 있다. 예컨대, 각 워드라인에 발생된 스트롱 에러의 개수(SE #)는 소정의 기준값(Ref)과 비교될 수 있고, 스트롱 에러의 개수(SE #)가 기준값(Ref)을 초과하는 워드라인은 열화 영역으로 정의될 수 있다. 예컨대, 도 2에서는 하위의 일부의 워드라인들이 열화 영역으로 정의되는 경우가 예시되었으나, 각 워드라인의 에러 특성(또는, 문턱전압 산포 특성)에 따라 열화 영역이 정의되는 경우에는, 각 블록에서 임의의 위치의 워드라인이 열화 영역으로 정의될 수 있을 것이다. 또한, 스트롱 에러의 개수(SE #)는 다수의 기준값들과 비교될 수 있고, 이를 기초로 각 블록에서 열화 정도가 서로 상이한 다수 개의 열화 영역들이 정의될 수도 있을 것이다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3을 참조하면, 메모리 컨트롤러(200)는 프로세서(210), 워킹 메모리(Working memory, 220), 호스트 인터페이스(230), 메모리 인터페이스(240), ECC 회로(250) 및 ROM(260)을 포함할 수 있다. 프로세서(210)는 메모리 컨트롤러(200)의 전반적인 동작을 제어할 수 있고, 일 예로서 워킹 메모리(220)에 로딩된 펌웨어(firmware)를 실행함으로써 메모리 컨트롤러(200)의 전반적인 동작을 제어할 수 있다. 워킹 메모리(220)는 다양한 종류의 메모리를 포함할 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM 등 휘발성 메모리를 포함할 수 있다. 또한, 펌웨어의 일 예로서 플래시 변환 계층(FTL)이 워킹 메모리(220)에 로딩될 수 있으며, 플래시 변환 계층(FTL)에 포함되는 다양한 모듈들을 실행함에 의해 플래시 메모리 동작에 관련된 다양한 기능들이 수행될 수 있다. 한편, ROM(read only memory, 260)은 메모리 시스템이 채용된 장치의 초기 부팅에 필요한 코드 데이터를 저장할 수 있다.
호스트 인터페이스(230)는 다양한 종류의 인터페이스를 통해 호스트와 통신할 수 있다. 또한, 메모리 인터페이스(240)는 메모리 컨트롤러(200)와 메모리 장치 사이의 물리적 연결을 제공할 수 있다. 예컨대, 커맨드/어드레스 및 데이터 등이 메모리 인터페이스(240)를 통해 메모리 컨트롤러(200)와 메모리 장치 사이에서 송수신될 수 있다. 또한, ECC 회로(250)는 기록 요청되는 데이터에 대한 ECC 인코딩 처리를 수행할 수 있으며, 독출된 데이터에 대한 ECC 디코딩 처리를 수행할 수 있다.
본 개시의 예시적인 실시예에 따라 워킹 메모리(220)는 각각 펌웨어를 포함하는 다양한 모듈들을 저장할 수 있고, 일 예로서 카피 관리 모듈(221), 리클레임 모듈(222), 가비지 컬렉션 모듈(223) 및 어드레스 변환 모듈(224)을 저장할 수 있다. 전술한 실시예에 따라, 메모리 장치의 특정 블록이 열화됨에 따라 데이터 손실 가능성이 존재하는 경우, 프로세서(210)는 리클레임 모듈(222)을 실행함으로써 열화된 블록의 데이터들을 다른 블록에 카피하는 동작을 제어할 수 있다. 또한, 하나 이상의 프리 블록들을 생성하기 위해, 프로세서(210)는 가비지 컬렉션 모듈(223)을 실행함으로써 두 개 이상의 소스 블록들에 저장된 유효 데이터들을 다른 하나 이상들의 목적 블록들에 카피하는 동작을 제어할 수 있다.
또한, 메모리 컨트롤러(200)는 호스트로부터의 논리적 어드레스를 메모리 장치의 물리적 위치를 나타내는 물리적 어드레스로 변환할 수 있으며, 일 예로서 프로세서(210)는 어드레스 변환 모듈(224)을 실행함으로써 논리적 어드레스와 물리적 어드레스의 맵핑 정보를 관리할 수 있다. 예컨대, 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보는 워킹 메모리(220)에 저장될 수 있다.
본 개시의 예시적인 실시예에서, 데이터의 카피 동작을 수행함에 있어서 데이터의 타입에 기초하여 카피 위치가 산출될 수 있다. 예컨대, 프로세서(210)는 카피 관리 모듈(221)을 실행함으로써 특정 타입의 데이터를 블록의 열화 영역에 카피하기 위한 카피 어드레스를 생성할 수 있다.
RAID 를 예로 들면, RAID 를 구성하는 다수의 유저 데이터들 및 패리티 데이터는 메모리 장치 내의 다수의 블록들 중 서로 다른 블록들에 위치할 수 있다. 리클레임 동작 및 가비지 컬렉션 동작 등에 의해 제1 블록에 저장된 데이터가 다른 블록에 카피되는 경우, 제1 블록에 저장된 유저 데이터는 다른 블록(예컨대, 제2 블록)의 노멀 영역에 카피되는 반면에, 제1 블록에 저장된 패리티 데이터는 제2 블록의 열화 영역에 카피되도록 카피 어드레스가 생성될 수 있다.
한편, 어느 하나의 유저 데이터에 에러가 발생된 경우에는, RAID를 구성하는 나머지 유저 데이터들 및 패리티 데이터가 독출되고, 이를 통해 에러가 복구될 수 있다. 본 개시의 예시적인 실시예에서, 데이터의 카피 동작에 따라 유저 데이터 및 패리티 데이터의 블록 내에서의 저장 위치가 변동되므로, RAID를 구성하는 유저 데이터들과 패리티 데이터 사이의 맵핑 정보가 관리될 수 있다. 일 예로서, 카피 관리 모듈(221)은 RAID를 구성하는 유저 데이터들과 패리티 데이터 사이의 맵핑 정보를 관리할 수 있으며, 또한 카피 동작이 수행될 때마다 맵핑 정보를 업데이트할 수 있다. 예시적인 실시예에서, 유저 데이터들과 패리티 데이터 사이의 맵핑 정보는 워킹 메모리(220)에 저장될 수 있고, 주기적 또는 비주기적으로 유저 데이터들과 패리티 데이터 사이의 맵핑 정보가 메모리 장치로 제공되어 저장될 수 있다.
도 4는 본 개시의 예시적인 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 4를 참조하면, 메모리 장치(300)는 메모리 셀 어레이(310), 제어 로직(320), 전압 생성기(330), 로우 디코더(340) 및 페이지 버퍼(350)를 포함할 수 있다. 도 4에 도시되지는 않았으나, 메모리 장치(300)는 데이터 입출력 회로 또는 입출력 인터페이스 등 메모리 동작에 관련된 다른 다양한 구성 요소들을 더 포함할 수 있다.
메모리 셀 어레이(310)는 다수의 메모리 셀들을 포함하고, 워드라인들(WL), 스트링 선택 라인들(SSL), 접지 선택 라인들(GSL) 및 비트라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(310)는 워드라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 로우 디코더(340)에 연결되고, 비트라인들(BL)을 통해 페이지 버퍼(350)에 연결될 수 있다. 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있으며, 일 예로서 각 메모리 셀은 멀티 레벨 셀(Multi Level Cell, MLC), 트리플 레벨 셀(Triple Level Cell, TLC) 또는 그 이상의 비트들을 저장하는 셀에 해당할 수 있다.
일 실시예에서, 메모리 셀 어레이(310)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 다수의 셀 스트링들을 포함할 수 있다. 또한, 일 실시예에 따라, 메모리 셀 어레이(310)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 다수의 셀 스트링들을 포함할 수 있으며, 각 셀 스트링은 기판 위에 수직으로 적층된 워드라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3차원 메모리 셀 어레이가 다수 레벨로 구성되고 워드라인들 및/또는 비트라인들이 레벨들 간에 공유되어 있는 3차원 메모리 셀 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
제어 로직(320)은 메모리 컨트롤러로부터 수신한 커맨드(CMD), 어드레스(ADD) 및 제어 신호(CTRL)를 기초로, 메모리 셀 어레이(310)에 데이터를 프로그램하거나 메모리 셀 어레이(310)로부터 데이터를 독출하기 위한 각종 내부 제어 신호를 출력할 수 있다. 제어 로직(320)은, 수신된 어드레스(ADD)를 기초로, 로우 디코더(340)에 로우 어드레스(X-ADD)를 제공할 수 있으며, 페이지 버퍼(350)에 칼럼 어드레스(Y-ADD)를 제공할 수 있다. 또한, 전압 생성기(330)는 메모리 장치(200) 내에서 이용되는 각종 전압들을 생성할 수 있으며, 일 예로서 프로그램, 독출 및 소거 동작과 관련하여 다양한 레벨을 갖는 워드라인 전압(VWL)을 제공할 수 있다. 제어 로직(320)은 전압 생성기(330)로부터 생성되는 워드라인 전압(VWL)의 레벨을 제어하기 위한 전압 제어신호(CTRL_vol)를 출력할 수 있다.
한편, 메모리 셀 어레이(310)는 메타 영역(311) 및 스토리지 영역(312)을 포함할 수 있다. 메타 영역(311)은 스토리지 영역(312)에 저장되는 데이터를 관리하기 위한 각종 정보들을 저장할 수 있다. 본 개시의 예시적인 실시예에 따라, 메모리 장치(300)의 제조 과정에서 메모리 셀 어레이(310)의 다수의 블록들에 대한 테스트가 수행될 수 있고, 각 블록에서 열화 영역에 포함되는 하나 이상의 워드라인들의 위치를 나타내는 열화 정보(Info_D)가 메타 영역(311)에 불휘발성하게 저장될 수 있다. 메모리 시스템의 초기 구동시 메타 영역(311)으로부터 독출된 열화 정보(Info_D)는 메모리 컨트롤러로 제공될 수 있다. 메모리 컨트롤러는 카피가 수행될 데이터의 타입을 판단하고, 메모리 장치(300)로부터 수신된 열화 정보(Info_D)를 기초로, 특정 타입의 데이터가 각 블록의 열화 영역에 카피되도록 카피 동작을 제어할 수 있다.
도 5는 본 개시의 일 실시예에 따라 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이고, 도 6은 도 1의 메모리 셀 어레이를 예시적으로 나타내는 도면이며, 도 7은 도 6의 셀 블록(또는, 메모리 블록)의 구조의 일 예를 나타내는 사시도이다. 도 5에서는 메모리 장치의 구현 예로서 COP(Cell Over Periphery) 구조가 예시되나, 본 발명의 실시예들은 이에 국한될 필요가 없이 다양한 구조들을 통해 메모리 장치가 구현될 수도 있을 것이다.
도 5를 참조하면, 메모리 장치(120)는 제1 반도체 레이어(L1) 및 제2 반도체 레이어(L2)를 포함할 수 있고, 제1 반도체 레이어(L1)는 제2 반도체 레이어(L2)에 대해 수직 방향(VD)으로 적층될 수 있다. 구체적으로, 제2 반도체 레이어(L2)는 제1 반도체 레이어(L1)에 대해 수직 방향(VD)으로 하부에 배치될 수 있고, 이에 따라, 제2 반도체 레이어(L2)는 기판에 가깝게 배치될 수 있다.
일 실시예에서, 도 1의 메모리 셀 어레이(121)는 제1 반도체 레이어(L1)에 형성될 수 있고, 도 1의 주변 회로들은 제2 반도체 레이어(L2)에 형성될 수 있다. 이에 따라, 메모리 장치(120)는 메모리 셀 어레이가 주변 회로의 상부에 배치된 구조, 즉 COP 구조를 가질 수 있다. COP 구조는 수평 방향 면적을 효과적으로 감소시킬 수 있고, 메모리 장치(120)의 집적도를 향상시킬 수 있다.
일 실시예에서, 제2 반도체 레이어(L2)는 기판을 포함할 수 있고, 기판 상에 트랜지스터들 및 트랜지스터들을 배선하기 위한 메탈 패턴들을 형성함으로써 제2 반도체 레이어(L2)에 주변 회로를 형성할 수 있다. 제2 반도체 레이어(L2)에 주변 회로가 형성된 후, 메모리 셀 어레이를 포함하는 제1 반도체 레이어(L1)가 형성될 수 있고, 메모리 셀 어레이의 워드라인들(WL) 및 비트라인들(BL)과 제2 반도체 레이어(L2)에 형성된 주변 회로를 전기적으로 연결하기 위한 메탈 패턴들이 형성될 수 있다. 예를 들어, 비트라인들(BL)은 제1 수평 방향(HD1)으로 연장되고, 워드라인들(WL)은 제2 수평 방향(HD2)으로 연장될 수 있다.
한편, 도 6을 참조하면, 메모리 셀 어레이는 다수의 블록들(BLK0 ~ BLKi)을 포함할 수 있고, i는 양의 정수일 수 있다. 다수의 블록들(BLK0 ~ BLKi) 중 각각은 3차원 구조(또는 수직 구조)를 가질 수 있다. 구체적으로, 다수의 블록들(BLK0 ~ BLKi) 각각은 수직 방향(VD)을 따라 신장된 다수의 셀 스트링들을 포함할 수 있다. 이 때, 다수의 셀 스트링들은 제1 및 제2 수평 방향(HD1, HD2)을 따라 특정 거리만큼 이격되어 제공될 수 있다. 다수의 블록들(BLK0 ~ BLKi)은 메모리 장치의 로우 디코더(미도시)에 의해 선택될 수 있다. 예를 들면, 로우 디코더는 다수의 블록들(BLK0 ~ BLKi) 중 블록 어드레스에 대응하는 블록을 선택할 수 있다.
한편, 도 7을 참조하면, 블록(BLK0)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제2 수평 방향(HD2)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제2 수평 방향(HD2)을 따라 신장되는 다수의 절연막들(IL)이 수직 방향(VD)을 따라 순차적으로 제공되며, 다수의 절연막들(IL)은 수직 방향(VD)을 따라 특정 거리만큼 이격된다. 예를 들어, 다수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 수평 방향(HD1)을 따라 순차적으로 배치되며, 수직 방향(VD)을 따라 다수의 절연막들(IL)을 관통하는 다수의 필라들(pillars)(P)이 제공된다. 예를 들어, 다수의 필라들(P)은 다수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 '터널링 절연층'이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드라인들(WL0 ~ WL7)과 같은 게이트 전극(GE)이 제공된다.
다수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제1 수평 방향(HD1)으로 신장되고 제2 수평 방향(HD2)을 따라 특정 거리만큼 이격되어 배치된 비트라인들(BL1 ~ BL3)이 제공된다.
도 8은 본 개시의 예시적인 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 8을 참조하면, 메모리 시스템은 메모리 컨트롤러와 메모리 장치를 포함하고, 메모리 시스템이 초기 구동된다(S11). 초기 구동 과정에서, 메모리 장치의 불휘발성 메모리(NVM)에 저장된 열화 정보가 독출되어 메모리 컨트롤러로 전송될 수 있고(S12), 초기 구동이 완료된 이후 메모리 시스템은 호스트의 요청에 따른 메모리 동작을 수행할 수 있다.
주기적 또는 비주기적으로 메모리 시스템은 메모리 장치에 대한 관리 동작을 수행할 수 있고, 일 예로서 데이터 카피 동작을 포함하는 백그라운드 동작을 수행할 수 있다(S13). 전술한 실시예들에 따라, 백그라운드 동작은 리클레임 동작 및 가비지 컬렉션 동작 등 다양한 관리 동작들을 포함할 수 있다.
본 개시의 예시적인 실시예에서, 제1 블록의 데이터들을 제2 블록에 카피함에 있어서, 제1 블록의 데이터들의 타입을 판단한 결과를 기초로 제2 블록에의 카피 위치가 산출될 수 있다. 일 예로서, 데이터의 타입에 따라, 제2 블록의 노멀 영역의 워드라인을 지시하는 어드레스가 산출되거나, 또는 열화 영역의 워드라인을 지시하는 어드레스가 산출될 수 있다.
제1 블록에 저장되고 상대적으로 억세스 빈도가 높은 제1 타입의 데이터는 제2 블록의 노멀 영역에 카피될 수 있다(S14). 또한, 제1 블록에 저장되고 상대적으로 억세스 빈도가 낮은 제2 타입의 데이터는 제2 블록의 열화 영역에 카피될 수 있다(S15). 예컨대, RAID 를 구성하는 다수의 유저 데이터들은 제1 타입의 데이터로 판단될 수 있고, 패리티 데이터는 제2 타입의 데이터로 판단될 수 있다.
예시적인 실시예에서, 제2 블록이 하나의 노멀 영역과 하나의 열화 영역으로 분류되는 경우, 제1 타입의 데이터는 노멀 영역의 임의의 워드라인에 카피될 수 있으며, 또한 제2 타입의 데이터는 열화 영역의 임의의 워드라인에 카피될 수 있다. 또는, 메모리 셀 어레이가 3차원 구조를 가지며, 노멀 영역 및 열화 영역 각각이 다수의 워드라인들을 포함하는 경우, 제1 타입의 데이터는 노멀 영역의 하위 워드라인부터 순차적으로 카피되거나, 제2 타입의 데이터는 열화 영역의 하위 워드라인부터 순차적으로 카피될 수도 있을 것이다.
한편, 본 개시의 예시적인 실시예에서, 상기한 카피 동작에서 생성된 카피 어드레스에 따라 맵핑 정보가 업데이트될 수 있다(S16). 예컨대, 제1 블록의 어느 하나의 데이터는 다른 블록들의 데이터들과 RAID 를 구성할 수 있고, 맵핑 정보는 RAID 단위로 구성될 수 있다. 또한, 제1 블록에 저장된 데이터가 제2 블록에 카피되어 그 저장 위치가 변동됨에 따라, 맵핑 정보에 포함된 제1 블록의 데이터에 대응하는 어드레스는 상기한 카피 어드레스로 업데이트될 수 있다. 이후, 메모리 동작에서, 어느 하나의 유저 데이터에 에러가 발생된 경우에는, 상기 업데이트된 맵핑 정보를 기초로 하여 에러 복구 동작이 수행될 수 있을 것이다.
상기와 같은 본 개시의 실시예들에 따르면, 워드라인 별로 독출 디스터브에 민감한 정도를 고려하여 영역을 정의하고, 데이터의 타입에 기초하여 데이터의 카피 위치가 지정될 수 있으므로, 억세스 빈도가 높은 데이터는 독출 디스터브에 강한 워드라인에 카피하고, 억세스 빈도가 낮은 데이터는 상대적으로 독출 디스터브에 민감한 워드라인에 카피함으로써, 전체적인 데이터 신뢰성을 향상할 수 있다.
도 9a,b는 데이터의 카피 동작 및 맵핑 정보의 일 예를 나타내는 도면이다. 도 9a,b에 도시된 실시예에서, RAID 를 구성하는 다수의 유저 데이터들 및 이에 대응하는 패리티 데이터는 서로 다른 메모리 장치(또는, 플래시 메모리 칩)의 블록에 저장되는 것으로 가정될 수 있다. 예컨대, 다수의 플래시 메모리 칩들에는 다수의 RAID 들(예컨대, 제1 및 제2 RAID 들(RAID 1, RAID 2))을 구성하는 데이터들이 저장될 수 있다. 제1 RAID (RAID 1)를 예로 들면, 제1 유저 데이터(DATA 1)는 제1 플래시 메모리 칩에 저장되고, 제2 유저 데이터(DATA 2)는 제2 플래시 메모리 칩에 저장되며, 패리티 데이터(PAR)는 제3 플래시 메모리 칩에 저장되는 것으로 가정된다. 또한, 리클레임 동작과 관련하여, 카피가 수행될 데이터를 저장하는 블록은 제1 블록으로 지칭되고, 데이터가 카피될 블록은 제2 블록으로 지칭된다.
도 9a를 참조하면, 제1 내지 제L 유저 데이터들(DATA 1 ~ DATA L)과 이에 대응하는 패리티 데이터(PAR)가 제1 RAID (RAID 1)를 구성하고, 제1 유저 데이터(DATA 1)는 제1 플래시 메모리 칩의 제1 블록(BLK 11)에 저장되고, 제2 유저 데이터(DATA 2)는 제2 플래시 메모리 칩의 제1 블록(BLK 21)에 저장되며, 패리티 데이터(PAR)는 제3 플래시 메모리 칩의 제1 블록(BLK 31)에 저장될 수 있다. 또한, 각각의 블록은 제1 내지 제K 워드라인들(WL 1 ~ WL K)을 포함할 수 있고, 워드라인의 높이에 따라 제1 워드라인(WL 1)은 상대적으로 독출 디스터브에 민감한 반면에, 제K 워드라인(WL K)은 상대적으로 독출 디스터브에 강한 워드라인에 상응할 수 있다. 이에 따라, 제1 워드라인(WL 1)을 포함하는 하나 이상의 워드라인들은 각 블록에서 열화 영역으로 정의되고, 제K 워드라인(WL K)을 포함하는 하나 이상의 워드라인들은 각 블록에서 노멀 영역으로 정의될 수 있다.
제1 플래시 메모리 칩의 제1 블록(BLK 11)에 대해 리클레임 동작이 수행됨에 따라, 제1 플래시 메모리 칩의 제1 유저 데이터(DATA 1)는 제2 블록(BLK 12)에 카피될 수 있다. 이 때, 제1 유저 데이터(DATA 1)는 제1 타입의 데이터로 판단됨에 따라, 제2 블록(BLK 12)의 노멀 영역의 워드라인(예컨대, 제K 워드라인(WL K))에 카피될 수 있다.
반면에, 제3 플래시 메모리 칩의 제1 블록(BLK 31)에 대해 리클레임 동작이 수행됨에 따라, 제3 플래시 메모리 칩의 패리티 데이터(PAR)는 제2 블록(BLK 32)에 카피될 수 있다. 이 때, 패리티 데이터(PAR)는 제2 타입의 데이터로 판단됨에 따라, 제2 블록(BLK 32)의 열화 영역의 워드라인(예컨대, 제1 워드라인(WL 1))에 카피될 수 있다.
상기한 도 9a의 실시예에서는, 각 유저 데이터 또는 패리티 데이터를 카피함에 있어서, 제1 블록의 데이터는 동일한 플래시 메모리 칩의 제2 블록에 카피하는 것으로 예시되었으나, 리클레임 동작 및/또는 가비지 컬렉션 동작에서 상기한 유저 데이터 또는 패리티 데이터는 서로 다른 플래시 메모리 칩에 포함된 블록에 카피될 수도 있을 것이다.
한편, 도 9b를 참조하면, RAID 단위로 맵핑 정보가 관리될 수 있고, 이에 따라 상기한 카피 동작에 의해 제1 RAID (RAID 1)의 제1 내지 제L 유저 데이터들(DATA 1 ~ DATA L)과 패리티 데이터(PAR) 사이의 맵핑 정보가 업데이트될 수 있다. 예컨대, 메모리 컨트롤러는 제1 RAID (RAID 1)를 구성하는 데이터들 각각의 저장 위치를 나타내는 블록 및 워드라인의 어드레스를 맵핑 정보로서 관리할 수 있다. 일 예로서, 제1 RAID (RAID 1)를 구성하는 제1 유저 데이터(DATA 1) 및 패리티 데이터(PAR)의 카피 어드레스가 맵핑 정보에 업데이트될 수 있다.
도 10 및 도 11은 리클레임 동작 및 가비지 컬렉션 동작에서의 본 개시의 카피 동작의 일 예를 나타내는 플로우차트이다.
도 10을 참조하면, 특정 메모리 장치(또는, 플래시 메모리 칩)의 제1 블록이 소거/기록 사이클이 증가하는 등의 이유로 열화됨에 따라, 제1 블록에 저장된 데이터들을 하나 이상의 다른 블록들에 카피되는 리클레임 동작이 수행될 수 있으며(S21), 제1 블록에 저장된 데이터들이 제2 블록에 카피하는 것으로 가정된다. 메모리 컨트롤러의 카피 관리 모듈(미도시)은 제1 블록에 저장된 각각의 데이터의 타입을 판단할 수 있고(S22), 이에 따라 각 데이터가 패리티 데이터에 해당하는 지를 판단할 수 있다(S23). 패리티 데이터의 판단 여부는 다양한 방식에 따라 수행될 수 있고, 일 예로서 데이터 기록 과정에서 패리티 데이터가 저장되는 위치가 메모리 컨트롤러에 의해 관리될 수 있으며, 카피 대상의 데이터가 저장된 위치를 기초로 패리티 데이터에 해당하는 지 여부가 판단될 수 있다.
카피 대상의 데이터가 패리티 데이터에 해당하는 경우, 패리티 데이터는 제2 블록의 하나 이상의 워드라인들을 포함하는 열화 영역에 카피될 수 있다(S25). 반면에, 카피 대상의 데이터가 유저 데이터에 해당하는 경우, 유저 데이터는 제2 블록의 다른 하나 이상의 워드라인들을 포함하는 노멀 영역에 카피될 수 있다(S24). 상기와 같은 리클레임 동작에 따라 RAID 를 구성하는 유저 데이터 및/또는 패리티 데이터의 저장 위치가 변동될 수 있고, 이에 따라 RAID 를 구성하는 데이터들의 맵핑 정보가 업데이트될 수 있다(S26).
본 개시의 예시적인 실시예에서, 리클레임 동작에서 제1 블록에 저장된 유효한 유저 데이터(이하, 유효 데이터로 지칭함) 및 무효한 유저 데이터(이하, 무효 데이터로 지칭함)가 모두 카피될 수 있다. 이 때, 무효 데이터는 실제로 억세스가 수행되지 않을 수 있으며, 이에 따라 카피 대상의 데이터가 유효 데이터 또는 무효 데이터에 해당하는 지가 더 판단될 수 있다. 또한, 노멀 영역은 상대적으로 독출 디스터브에 더 강한 제1 노멀 영역과 제1 노멀 영역에 비해 독출 디스터브에 민감한 제2 노멀 영역으로 분류될 수 있고, 유효 데이터는 제1 노멀 영역에 카피되고, 무효 데이터는 제2 노멀 영역에 카피되도록 카피 동작이 제어될 수도 있을 것이다.
한편, 도 11을 참조하면, 하나 이상의 프리 블록들을 생성하기 위해, 적어도 두 개의 소스 블록들의 유효 데이터가 목적 블록에 카피될 수 있고, 제1 및 제2 블록들이 소스 블록에 해당하고, 제3 블록이 목적 블록에 해당하는 것으로 가정한다. 이에 따라, 제1 및 제2 블록들에 대한 가비지 컬렉션 동작이 수행될 수 있다(S31).
제1 및 제2 블록들에 저장된 데이터들 중 유효 데이터들 및 패리티 데이터가 선택적으로 제3 블록에 카피될 수 있으며, 카피가 수행될 데이터의 타입이 판단될 수 있다(S32). 일 예로서 각 데이터가 패리티 데이터에 해당하는 지가 판단될 수 있다(S33). 카피 대상의 데이터가 패리티 데이터에 해당하는 경우, 패리티 데이터는 제3 블록의 하나 이상의 워드라인들을 포함하는 열화 영역에 카피될 수 있다(S35). 반면에, 카피 대상의 데이터가 유효 데이터에 해당하는 경우, 유효 데이터는 제3 블록의 다른 하나 이상의 워드라인들을 포함하는 노멀 영역에 카피될 수 있다(S34). 상기와 같은 가비지 컬렉션 동작에 따라 RAID 를 구성하는 유저 데이터 및/또는 패리티 데이터의 저장 위치가 변동될 수 있고, 이에 따라 RAID 를 구성하는 데이터들의 맵핑 정보가 업데이트될 수 있다(S36).
도 12는 데이터 기록 과정에서 본 개시의 실시예가 적용되는 경우를 나타내는 플로우차트이다.
도 12를 참조하면, 데이터의 기록 과정에서 본 개시의 실시예들이 적용됨에 따라 특정 타입의 데이터가 블록의 열화 영역에 저장될 수 있다. 예컨대, 메모리 컨트롤러는 호스트로부터 데이터 기록 요청 및 제1 유저 데이터를 수신할 수 있다(S41).
메모리 컨트롤러는, 제1 유저 데이터와 함께 하나의 RAID 를 구성하는 유저 데이터로서 제2 내지 제L 유저 데이터들을 메모리 장치로부터 독출할 수 있으며, 호스트로부터의 제1 유저 데이터와 메모리 장치로부터 독출된 제2 내지 제L 유저 데이터들을 이용하여 패리티 데이터를 생성할 수 있다(S42). 또한, 메모리 컨트롤러는 제1 유저 데이터와 패리티 데이터의 기록 동작을 제어할 수 있으며, 본 개시의 실시예들에 따른 열화 정보를 판단할 수 있다(S43).
메모리 컨트롤러는, 열화 정보를 판단한 결과를 기초로 제1 유저 데이터와 패리티 데이터가 저장될 위치를 나타내는 어드레스를 산출할 수 있으며, 제1 유저 데이터와 패리티 데이터는 서로 다른 블록들에 저장될 수 있다. 예컨대, 제1 유저 데이터는 메모리 장치의 제1 블록의 노멀 영역에 저장되는 반면에(S44), 패리티 데이터는 메모리 장치의 제2 블록의 열화 영역에 저장될 수 있다(S45). 또한, 상기한 기록 동작을 기초로, RAID 를 구성하는 데이터들 사이의 맵핑 정보가 관리될 수 있다(S46).
상기와 같은 실시예에 따르면, 데이터의 기록 과정에서 데이터의 타입에 따라 유저 데이터가 노멀 영역에 기록되고, 패리티 데이터가 열화 영역에 기록될 수 있으며, 이에 따라 데이터의 기록 과정에서 독출 디스터브의 민감도를 고려하여 상대적으로 억세스 빈도가 낮은 패리티 데이터를 각 블록의 열화 영역에 저장할 수 있다. 즉, 본 개시의 실시예들에 따른 카피 위치 산출 동작은, 호스트의 요청에 따른 데이터의 기록 과정에서 생성되는 패리티 데이터의 위치를 저장하는 데 이용될 수도 있을 것이다.
도 13 및 도 14는 본 개시의 예시적인 실시예들에 따른 카피 동작의 구체적인 구현 예를 나타내는 도면이다. 도 13 및 도 14에서는 다수의 칩들 각각에 구비되는 어느 하나의 블록에 저장된 데이터가 예시되며, RAID를 구성하는 소정 단위의 유저 데이터 및 패리티 데이터 각각은 어느 하나의 워드라인에 저장된 데이터를 나타낼 수 있다.
도 13을 참조하면, 리클레임 동작에서는 데이터의 시퀀셜(Sequential) 특성을 보장하기 위하여, 블록에 포함된 모든 유저 데이터들(유효 데이터(user) 및 무효 데이터(Invalid))에 대한 카피 동작이 수행될 수 있다. 본 개시의 예시적인 실시예에 따라, 리클레임 동작에서 데이터를 카피함에 있어서, RAID 를 구성하는 데이터들 중 유효 데이터가 많은 RAID의 유저 데이터들이 독출 디스터브에 강한 워드라인들에 카피될 수 있다. 예컨대, 메모리 장치에 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3)이 구비되고, 각각의 메모리 칩의 메모리 셀 어레이는 3차원 구조를 가지며, 각 블록에서 하위 워드라인들이 독출 디스터브에 민감하고, 상위 워드라인들이 독출 디스터브에 강한 특성을 갖는 경우가 예시된다. 또한, 도 13에 도시된 도면은, 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3) 각각에서의 하나의 블록을 나타내고, 각 블록에서의 4 개의 워드라인들이 예시된다.
하나의 RAID 를 구성하는 유저 데이터들 및 패리티 데이터가 서로 상이한 플래시 메모리 칩들의 블록들에서 특정 위치(예컨대, 동일한 높이의 워드라인)에 저장되고, 패리티 데이터가 특정 칩(예컨대, 제4 플래시 메모리 칩(Chip3))에 저장된 경우를 예로 들면, 도 13의 좌측에 도시된 바와 같이 제1 내지 제4 RAID들(RAID 1 ~ RAID 4) 를 구성하는 유저 데이터들은 블록의 독출 디스터브에 민감한 워드라인들 및 독출 디스터브에 강한 워드라인들에 고르게 저장될 수 있다.
본 개시의 예시적인 실시예들에 따라 리클레임 동작을 수행함에 있어서, 유효 데이터가 상대적으로 많은 제2 및 제4 RAID 들(RAID 2, RAID 4)의 유저 데이터가 상대적으로 독출 디스터브에 강한 워드라인들에 카피되고, 제1 내지 제4 RAID 들(RAID 1 ~ RAID 4)의 패리티 데이터는 독출 디스터브에 민감한 열화 영역의 워드라인들에 카피될 수 있다. 도 13을 참조하면, 그 일 예로서, 상대적으로 많은 유효 데이터를 갖는 제2 및 제4 RAID 들(RAID 2, RAID 4)의 유저 데이터들이 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3) 각각의 상부 영역의 워드라인들에 카피될 수 있고, 상대적으로 적은 유효 데이터를 갖는 제1 및 제3 RAID 들(RAID 1, RAID 3)의 유저 데이터들이 그 하위 워드라인들에 카피될 수 있다.
도 13의 실시예에 따르면, 각각의 RAID 를 구성하는 유저 데이터들 및 패리티 데이터가 서로 다른 플래시 메모리 칩에 저장되되, 각각의 RAID 를 구성하는 유저 데이터들 및 패리티 데이터의 블록 내에서의 저장 위치는 리클레임 동작에 의해 변동되므로, 리클레임 수행 결과에 따른 맵핑 정보가 업데이트되고 저장되는 관리 동작이 수행될 수 있다. 예컨대, 도 13의 오른쪽에 도시된 바와 같이, 기존에 노멀 영역의 워드라인에 저장되었던 제1 RAID (RAID 1)의 패리티 데이터는 열화 영역의 워드라인에 카피될 수 있다.
한편, 도 14를 참조하면, 가비지 컬렉션 동작이 수행됨에 따라, 적어도 두 개의 소스 블록들에서 유효 데이터들만이 선택적으로 하나 이상의 목적 블록들에 카피될 수 있다. 도 14에서는 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3) 각각에 위치한 두 개의 소스 블록들의 유효 데이터가 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3) 각각의 어느 하나의 목적 블록에 카피되는 경우가 예시되며, 또한 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3)의 소스 블록들에 제1 및 제8 RAID 들(RAID 1 ~ RAID 8)을 구성하는 데이터들이 저장된 경우가 예시된다.
가비지 컬렉션 동작에서는 유효 데이터만이 선택적으로 목적 블록에 카피되며, 이에 따라 RAID 를 구성하는 데이터 중 무효 데이터는 목적 블록에 카피되지 않는다. 이에 따라, 가비지 컬렉션 동작이 수행되는 경우에는 RAID 가 새로이 구성될 수 있고, 패리티 데이터는 새로 산출될 수 있다.
본 개시의 예시적인 실시예에서, 도 14에 도시된 바와 같이, 제1 내지 제8 RAID 들(RAID 1 ~ RAID 8)에 포함된 유저 데이터들 중 유효 데이터들이 선택적으로 목적 블록에 카피됨에 따라, 제2 및 제4 RAID 들(RAID 2, RAID 4)의 유저 데이터는 모두 목적 블록들에 카피될 수 있고, 이에 따라 제2 및 제4 RAID 들(RAID 2, RAID 4)의 패리티 데이터는 목적 블록의 열화 영역의 워드라인들에 카피될 수 있다.
한편, 유효 데이터를 포함하지 않는 제5 및 제7 RAID 들(RAID 5, RAID 7)의 유저 데이터는 목적 블록들에 카피되지 않음에 따라, 제5 및 제7 RAID 들(RAID 5, RAID 7)은 제거될 수 있다.
한편, 유효 데이터 및 무효 데이터를 함께 포함하는 제1, 제3, 제6 및 제8 RAID 들(RAID 1, RAID 3, RAID 6, RAID 8)의 경우, 유효 데이터가 선택적으로 목적 블록들에 카피됨에 따라, 하나 이상의 RAID 들이 새로 구성될 수 있고, 각 RAID 에 대응하는 패리티 데이터가 새로 산출될 수 있다. 예컨대, 제1, 제3, 제6 및 제8 RAID 들(RAID 1, RAID 3, RAID 6, RAID 8)의 유효 데이터들이 목적 블록들에 카피되고, 목적 블록들에 카피된 유효 데이터들이 제9 및 제10 RAID 들(RAID 9, RAID 10)을 구성할 수 있다. 또한, 제9 및 제10 RAID 들(RAID 9, RAID 10) 각각에 대응하는 패리티 데이터가 새로 산출될 수 있고, 상기한 제2 및 제4 RAID 들(RAID 2, RAID 4)의 패리티 데이터 및 제9 및 제10 RAID 들(RAID 9, RAID 10)의 패리티 데이터가 목적 블록들의 열화 영역의 워드라인들에 카피될 수 있다.
상기와 같이 가비지 컬렉션 동작에 따라 패리티 데이터의 재산출 및 열화 영역에의 카피 동작이 수행되므로, 가비지 컬렉션 수행 결과에 따른 맵핑 정보가 업데이트되고 저장되는 관리 동작이 수행될 수 있다.
한편, 도 14에 도시된 실시예에서는, 각 플래시 메모리 칩에서의 두 개의 소스 블록들의 유효 데이터가 하나의 목적 블록에 카피되는 경우가 예시되었으나, 각 칩의 블록에서의 워드라인들의 개수, RAID 를 구성하는 데이터들을 저장하는 플래시 메모리 칩들의 개수에 따라 다양한 방식에 따른 RAID 구성 및 패리티 데이터의 재산출이 수행될 수 있을 것이다. 예컨대, 가비지 컬렉션 동작에서 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3)의 일부의 유효 데이터들은 다른 플래시 메모리 칩에 카피되어 새로운 RAID 를 구성할 수 있을 것이다. 또한, 다른 플래시 메모리 칩에 저장된 유효 데이터가 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3)에 카피됨에 따라, 다른 플래시 메모리 칩으로부터 카피된 유효 데이터가 제1 내지 제4 플래시 메모리 칩들(Chip0 ~ Chip3)에서 새로운 RAID 를 구성할 수도 있을 것이다.
도 15는 메모리 컨트롤러와 메모리 장치의 인터페이스의 일 예를 나타내는 도면이다.
도 15를 참조하면, 메모리 시스템(400)은 메모리 장치 및 메모리 컨트롤러를 포함하고, 메모리 장치는 제1 인터페이스 회로(421)를 포함하고, 메모리 컨트롤러는 제2 인터페이스 회로(422)를 포함할 수 있다. 제1 인터페이스 회로(421)는 제1 내지 제8 핀들(P11~P18)을 포함하고, 제2 인터페이스 회로(422)는 제9 내지 제16 핀들(P21~P28)을 포함할 수 있다. 또한, 메모리 장치 및 메모리 컨트롤러 사이의 통신과 관련하여 적어도 하나의 정보를 사이드 밴드(side band) 통신에 기반하여 송수신하기 위한 적어도 하나의 핀이 더 배치될 수 있으며, 예컨대 제17 핀 및 제18 핀(P31, P41)이 예시된다.
도 15를 참조하면, 칩 인에이블 신호(nCE)가 활성화됨에 따라(예를 들어, 로우 레벨), 각종 신호들이 제1 인터페이스 회로(421)와 제2 인터페이스 회로(422) 사이에서 송수신될 수 있다. 일 예로서, 기록 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드 래치 인에이블 신호(CLE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 커맨드가 제1 인터페이스 회로(421)로 제공될 수 있다. 또한, 기록 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 어드레스가 제1 인터페이스 회로(421)로 제공될 수 있다. 즉, 기록 인에이블 신호(nWE)는 커맨드 및 어드레스가 전송되는 구간에서 토글할 수 있다. 이와 함께, 제1 인터페이스 회로(421)는 데이터 스트로브 신호(DQS)를 수신하고 이를 기초로 데이터(DQ)를 수신할 수 있다.
한편, 독출 동작에서, 제1 인터페이스 회로(421)는 토글하는 읽기 인에이블 신호(nRE)를 수신하고, 읽기 인에이블 신호(nRE)의 토글링에 기초하여 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 또한, 제1 인터페이스 회로(421)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터(DQ)를 컨트롤러 인터페이스 회로(22)로 전송할 수 있다. 한편, 프로그램 및 독출 동작에서 제1 인터페이스 회로(21)와 제2 인터페이스 회로(422) 사이에서 레디/비지 출력 신호(nR/B)가 전송될 수 있고, 메모리 장치가 비지 상태인 경우(즉, 메모리 장치에서 내부 동작들이 수행 중인 경우), 제1 인터페이스 회로(421)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러로 전송할 수 있다.
본 개시의 예시적인 실시예에 따라, 각종 정보들이 제1 인터페이스 회로(421) 및 제2 인터페이스 회로(422)를 통해 송수신될 수 있다. 일 예로서, 본 개시의 실시예들에 따른 각종 정보들은 인 밴드 통신 및/또는 사이드 밴드 통신을 통해 송수신될 수 있다. 도 15에서는 열화 정보(Info_D)가 사이드 밴드 통신을 통해 제2 인터페이스 회로(422)로 제공되고, RAID 를 구성하는 데이터들의 맵핑 정보(MI)가 인 밴드 통신에 기반하여 데이터(DQ)를 전송하는 핀들을 통해 제1 인터페이스 회로(421)로 전송되는 경우가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없이 다양한 방식을 통해 정보의 송수신이 가능할 것이다.
전술한 실시예들에 따라, 메모리 시스템(400)의 초기 구동시에는 열화 정보(Info_D)가 메모리 컨트롤러로 제공되며, 메모리 컨트롤러는 이를 통해 메모리 장치에 구비되는 블록의 열화 영역을 판단할 수 있고, 데이터 카피 동작을 수반하는 백그라운드 동작 시에 데이터 타입 별로 그 카피 위치를 산출하기 위한 제어 동작을 수행할 수 있으며, 카피 결과에 따른 맵핑 정보를 업데이트하고 메모리 장치로 제공할 수 있을 것이다.
도 16은 본 개시의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 16을 참조하면, SSD 시스템(500)은 호스트(510) 및 SSD(520)를 포함할 수 있다. SSD(520)는 신호 커넥터를 통해 호스트(510)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력받을 수 있다. SSD(520)는 SSD 컨트롤러(521), 보조 전원 장치(522) 및 불휘발성 메모리 장치들(523_1 ~ 523_n)을 포함할 수 있다. 불휘발성 메모리 장치들(523_1 ~ 523_n)은 NAND 플래시 메모리를 포함할 수 있다. 이 때, SSD(520)는 도 1 내지 도 15를 참조하여 상술된 실시예들을 이용하여 구현될 수 있다.
예컨대, SSD(520)에 구비되는 SSD 컨트롤러(521)는 전술한 실시예들에 따른 카피 관리 모듈(521_1)을 포함할 수 있고, 불휘발성 메모리 장치들(523_1 ~ 523_n)로부터 각 블록에서 상대적으로 독출 디스터브에 민감한 하나 이상의 워드라인들의 정보를 포함하는 열화 정보를 수신할 수 있다. 또한, SSD 컨트롤러(521)는 불휘발성 메모리 장치들(523_1 ~ 523_n)에 대한 백그라운드 동작으로서 리클레임 동작 및 가비지 컬렉션 동작들을 제어할 수 있고, 상기한 백그라운드 동작을 수행함에 있어서 전술한 본 개시의 실시예들이 적용될 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 다수의 블록들을 구비하는 메모리 장치를 제어하는 메모리 컨트롤러의 동작방법에 있어서,
    상기 블록들에 대한 열화 영역의 위치를 나타내는 열화 정보를 기초로, 제1 블록에 저장된 데이터들에 대해, RAID(Redundant Array of Inexpensive Disks) 의 유저 데이터를 제2 블록의 상기 열화 영역 이외의 노멀 영역에 카피하는 단계;
    상기 제1 블록에 저장된 데이터들 중 상기 RAID 의 패리티 데이터를 상기 제2 블록의 열화 영역에 카피하는 단계; 및
    어느 하나의 RAID 를 구성하는 데이터들 사이의 맵핑 정보를 업데이트하여 상기 메모리 장치로 전송하는 단계를 구비하고,
    상기 열화 정보는, 상기 다수의 블록들 각각에서 상기 열화 영역에 포함되는 특정 위치의 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  2. 제1항에 있어서,
    상기 메모리 장치의 불휘발성 메모리로부터 독출된 상기 열화 정보를 수신하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  3. 제1항에 있어서,
    상기 블록이 3차원 메모리 구조를 가짐에 따라, 상기 열화 정보는 상기 블록에서 기판에 인접하는 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  4. 제1항에 있어서,
    상기 열화 정보는, 상기 다수의 블록들 각각에 대한 테스트 과정을 통해, 스트롱 에러를 갖는 메모리 셀들의 개수가 소정의 기준값을 초과하는 것으로 판단된 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  5. 제1항에 있어서,
    상기 다수의 블록들은 상기 제1 블록 및 제2 내지 제L 블록들을 포함하고(단, L은 3 이상의 정수),
    상기 제1 내지 제(L-1) 블록들에 저장된 제1 내지 제(L-1) 유저 데이터들과, 상기 제L 블록에 저장된 제1 패리티 데이터가 제1 RAID를 구성하고,
    상기 제1 블록에 대해 리클레임 동작이 수행됨에 따라 상기 제1 유저 데이터를 제(L+1) 블록의 노멀 영역에 카피하는 단계; 및
    상기 제L 블록에 대해 리클레임 동작이 수행됨에 따라 상기 제1 패리티 데이터를 제(L+2) 블록의 열화 영역에 카피하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  6. 제5항에 있어서,
    상기 제1 내지 제L 블록들은 서로 다른 플래시 메모리 칩들에 포함되고,
    상기 제(L+1) 블록은 상기 제1 블록과 상이한 플래시 메모리 칩에 구비되고, 상기 제(L+2) 블록은 상기 제L 블록과 상이한 플래시 메모리 칩에 구비되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  7. 제5항에 있어서,
    상기 제1 내지 제(L-1) 유저 데이터들은 유효 데이터 및 무효 데이터를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  8. 제1항에 있어서,
    상기 열화 정보는 인 밴드 통신 또는 사이드 밴드 통신을 통해 상기 메모리 컨트롤러로 전송되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  9. 제1항에 있어서,
    상기 메모리 컨트롤러는, 프로세서; 및 플래시 변환 계층(Flash Translation Layer, FTL)을 포함하고,
    상기 FTL 은, 상기 열화 정보를 기초로 상기 패리티 데이터가 상기 제2 블록의 열화 영역의 워드라인에 카피되도록 카피 어드레스를 산출하는 카피 관리 모듈을 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  10. 제1항에 있어서,
    상기 다수의 블록들은 상기 제1 블록 및 제2 내지 제L 블록들을 포함하고(단, L은 3 이상의 정수),
    상기 제1 내지 제(L-1) 블록들에 저장된 제1 내지 제(L-1) 유저 데이터들과, 상기 제L 블록에 저장된 제1 패리티 데이터가 제1 RAID를 구성하고,
    상기 다수의 블록들에 대한 가비지 컬렉션 동작이 수행됨에 따라 상기 제1 내지 제(L-1) 유저 데이터들 중 유효한 유저 데이터들을 적어도 하나의 제1 목적 블록들의 노멀 영역들에 카피하는 단계; 및
    상기 카피된 유효한 유저 데이터들에 대응하는 패리티 데이터를 새로 산출하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  11. 제10항에 있어서,
    상기 새로 산출된 패리티 데이터를 제2 목적 블록의 열화 영역에 카피하는 단계를 더 구비하고,
    상기 카피된 유효한 유저 데이터들과 상기 새로 산출된 패리티 데이터가 새로운 RAID 를 구성하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  12. 다수의 블록들을 구비하는 메모리 장치를 제어하는 메모리 컨트롤러에 있어서,
    프로세서;
    상기 프로세서에 의해 실행되는 플래시 변환 계층(Flash Translation Layer, FTL)을 저장하는 워킹 메모리; 및
    상기 메모리 장치와 통신하는 메모리 인터페이스를 구비하고,
    상기 메모리 장치에 대한 백그라운드 동작에서, 상기 메모리 장치에 저장되고 RAID(Redundant Array of Inexpensive Disks) 를 구성하는 다수의 유저 데이터들 및 이에 대응하는 패리티 데이터에 대해, 상기 메모리 인터페이스는 상기 다수의 유저 데이터들이 상기 다수의 블록들의 노멀 영역에 카피되도록 제1 어드레스를 출력하고, 상기 패리티 데이터가 상기 다수의 블록들의 열화 영역에 카피되도록 제2 어드레스를 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  13. 제12항에 있어서,
    상기 메모리 인터페이스는 상기 메모리 장치로부터 열화 정보를 수신하고,
    상기 열화 정보는, 상기 다수의 블록들 각각에서 상기 열화 영역에 포함되는 특정 위치의 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  14. 제13항에 있어서,
    상기 블록이 3차원 메모리 구조를 가짐에 따라, 상기 열화 정보는 상기 블록에서 기판에 인접하는 하나 이상의 워드라인들의 정보를 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  15. 제12항에 있어서,
    상기 메모리 컨트롤러는 상기 워킹 메모리에 로딩되는 카피 관리 모듈을 더 구비하고,
    상기 프로세서가 상기 카피 관리 모듈을 실행함에 따라, 상기 패리티 데이터가 상기 다수의 블록들의 상기 열화 영역에 카피되도록 상기 제2 어드레스가 생성되는 것을 특징으로 하는 메모리 컨트롤러.
  16. 제12항에 있어서,
    상기 RAID 를 구성하는 상기 유저 데이터들 및 상기 패리티 데이터에 대한 카피가 수행됨에 따라, 상기 메모리 인터페이스는 상기 유저 데이터들 및 상기 패리티 데이터 사이의 업데이트된 맵핑 정보를 상기 메모리 장치로 전송하는 것을 특징으로 하는 메모리 컨트롤러.
  17. 제12항에 있어서,
    상기 백그라운드 동작은 리클레임 동작 및 가비지 컬렉션 동작을 포함하고,
    상기 리클레임 동작에서, 상기 유저 데이터들에 포함되는 유효 데이터 및 무효 데이터가 모두 카피되고,
    상기 가비지 컬렉션 동작에서, 상기 유저 데이터들에 포함되는 유효 데이터 및 무효 데이터 중 상기 유효 데이터가 선택적으로 카피되는 것을 특징으로 하는 메모리 컨트롤러.
  18. 메모리 시스템에 있어서, 상기 메모리 시스템은 메모리 장치를 구비하고,
    상기 메모리 장치는,
    다수의 블록들을 포함하는 메모리 셀 어레이;
    상기 메모리 셀 어레이에 대한 데이터의 기록 및 독출 동작을 제어하는 제어 로직; 및
    메모리 컨트롤러와 각종 신호들을 송수신하는 인터페이스 회로를 구비하고,
    상기 인터페이스 회로는, 상기 다수의 블록들 각각에서 열화 영역에 포함되는 특정 위치의 하나 이상의 워드라인들의 정보를 포함하는 열화 정보를 상기 메모리 컨트롤러로 출력하고,
    상기 메모리 컨트롤러의 제어에 기초하여, 상기 메모리 셀 어레이에 저장되고 RAID(Redundant Array of Inexpensive Disks) 를 구성하는 다수의 유저 데이터들 및 이에 대응하는 패리티 데이터에 대해, 상기 다수의 유저 데이터들을 상기 다수의 블록들의 노멀 영역에 카피하고, 상기 패리티 데이터를 상기 다수의 블록들의 상기 열화 영역에 카피하는 것을 특징으로 하는 메모리 시스템.
  19. 제18항에 있어서,
    상기 메모리 시스템 내에 상기 메모리 컨트롤러가 구비되고,
    상기 메모리 컨트롤러는, 상기 열화 정보를 기초로 상기 다수의 유저 데이터들이 상기 노멀 영역에 카피되도록 제1 어드레스를 생성하고, 상기 패리티 데이터가 상기 열화 영역에 카피되도록 제2 어드레스를 생성하는 카피 관리 모듈을 구비하는 것을 특징으로 하는 메모리 시스템.
  20. 제18항에 있어서,
    상기 인터페이스 회로는, 상기 RAID 를 구성하는 상기 유저 데이터들 및 상기 패리티 데이터가 카피됨에 따라, 상기 유저 데이터들 및 상기 패리티 데이터 사이의 업데이트된 맵핑 정보를 수신하는 것을 특징으로 하는 메모리 시스템.
KR1020220023832A 2021-11-15 2022-02-23 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 KR20230071013A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/895,318 US11966608B2 (en) 2021-11-15 2022-08-25 Memory controller with improved data reliability and memory system including the same
EP22195533.9A EP4180962A1 (en) 2021-11-15 2022-09-14 Memory controller with improved data reliability and memory system including the same
CN202211257542.8A CN116126583A (zh) 2021-11-15 2022-10-14 用于控制存储器装置的存储器控制器及其操作方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210157080 2021-11-15
KR20210157080 2021-11-15

Publications (1)

Publication Number Publication Date
KR20230071013A true KR20230071013A (ko) 2023-05-23

Family

ID=86544517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220023832A KR20230071013A (ko) 2021-11-15 2022-02-23 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템

Country Status (1)

Country Link
KR (1) KR20230071013A (ko)

Similar Documents

Publication Publication Date Title
KR102102224B1 (ko) 저장 장치 및 그것의 프로그램 방법
KR102117919B1 (ko) 저장 장치 및 그것의 프로그램 방법
CN111696608A (zh) 存储器装置及其操作方法
KR20190017511A (ko) 저장 장치 및 그 동작 방법
CN112650442B (zh) 存储器系统、存储器控制器及操作方法
US20190179746A1 (en) Storage device that restores data lost during a subsequent data write
KR20180062246A (ko) 재분배기를 포함하는 메모리 시스템
KR20200117746A (ko) 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템
KR20190102431A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN114067870A (zh) 存储器系统、存储器装置以及用于操作存储器装置的方法
CN113539331A (zh) 存储器装置及其操作方法
CN115910171A (zh) 存储器控制器、存储器系统以及存储器控制器的操作方法
CN114579486A (zh) 配置为控制非易失性存储器件的控制器的操作方法和储存设备的操作方法
CN114489466A (zh) 存储器系统及其操作方法
CN111445939B (zh) 存储装置及其操作方法
CN112447238A (zh) 存储器控制器及其操作方法
CN114078529A (zh) 用于对多页数据进行编程的非易失性存储器设备的操作方法
KR20220021992A (ko) 비휘발성 메모리 장치, 그것의 동작 방법, 그것을 제어하는 제어기, 및 그것을 포함하는 저장 장치
CN113409854A (zh) 数据存储装置及其操作方法
US20210049067A1 (en) Memory device and method of operating the same
CN114187949A (zh) 存储器系统及其操作方法
CN114792541A (zh) 存储器设备和操作该存储器设备的方法
CN114090473A (zh) 存储器系统、存储器控制器及操作存储器系统的方法
KR20230071013A (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
EP4180962A1 (en) Memory controller with improved data reliability and memory system including the same