KR20220054096A - 패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20220054096A
KR20220054096A KR1020200138599A KR20200138599A KR20220054096A KR 20220054096 A KR20220054096 A KR 20220054096A KR 1020200138599 A KR1020200138599 A KR 1020200138599A KR 20200138599 A KR20200138599 A KR 20200138599A KR 20220054096 A KR20220054096 A KR 20220054096A
Authority
KR
South Korea
Prior art keywords
page
sub
parity
data
codewords
Prior art date
Application number
KR1020200138599A
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 KR1020200138599A priority Critical patent/KR20220054096A/ko
Priority to US17/244,195 priority patent/US11562803B2/en
Priority to EP21180131.1A priority patent/EP3989070B1/en
Priority to CN202111079168.2A priority patent/CN114496054A/zh
Publication of KR20220054096A publication Critical patent/KR20220054096A/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
    • 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/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • 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
    • 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/26Sensing or reading circuits; Data output circuits
    • 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/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices

Abstract

본 개시의 기술적 사상의 일측면에 따른 크리스탈 메모리 장치는, 다수의 페이지들을 포함하는 셀 어레이 및 상기 셀 어레이에 대한 프로그램 및 독출 동작을 제어하는 제어 로직을 구비하고, 상기 제어 로직은, 페이지 단위의 프로그램 명령에 응답하여, 상기 다수의 페이지들 중 제1 페이지에 제1 내지 제N 코드워드들을 저장함과 함께, 상기 제1 내지 제N 코드워드들에 공통하게 대응되는 페이지 패리티를 상기 제1 페이지에 프로그램하고, 서브 페이지 단위의 독출 명령에 응답하여, 상기 제1 내지 제N 코드워드들 중 제1 코드워드를 선택적으로 독출하도록 상기 프로그램 및 독출 동작을 제어하며, 제1 코드워드는 제1 서브 페이지 데이터와 이에 대응하는 제1 서브 패리티를 포함하고, 상기 제1 서브 패리티는 코드워드 별로 독립하게 수행되는 ECC 디코딩 처리를 통해 상기 제1 서브 페이지 데이터의 에러를 정정하는 정보를 포함하는 것을 특징으로 한다.

Description

패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템{Memory Device storing parity and Memory System having the same}
본 개시의 기술적 사상은 메모리 장치에 관한 것으로서, 더욱 상세하게는 에러 정정에 관련된 패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
메모리 장치로서 불휘발성 메모리 장치는 데이터를 불휘발성하게 저장하는 다수의 메모리 셀들을 포함한다. 불휘발성 메모리 장치의 일 예로서, 플래시 메모리 장치는 휴대폰, 디지털 카메라, 휴대용 정보 단말기(PDA), 이동식 컴퓨터 장치, 고정식 컴퓨터 장치 및 기타 장치에서 사용될 수 있다.
반도체 제조 기술이 발전되면서, 메모리 장치의 고집적화 및 그에 따른 대용량화가 지속적으로 진행되고 있다. 메모리 장치의 고집적화로 인해 스토리지 장치의 스케일이 감소하면서, 메모리 장치에 저장된 데이터의 에러율이 증가하고 있다. 데이터의 에러 정정과 관련하여 에러 정정 코드(Error Correction Code, ECC) 기법이 이용되고 있으나, 에러 능력을 향상하기 위해 패리티를 저장하기 위한 공간이 증가하거나 에러 정정 처리에 소요되는 시간이 증가하는 등의 문제가 발생될 수 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 에러 정정 능력을 개선함과 함께, 호스트로부터의 독출 요청에 대응하는 독출 동작을 빠르게 수행할 수 있는 메모리 장치 및 이를 포함하는 메모리 시스템을 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 크리스탈 메모리 장치는, 다수의 페이지들을 포함하는 셀 어레이 및 상기 셀 어레이에 대한 프로그램 및 독출 동작을 제어하는 제어 로직을 구비하고, 상기 제어 로직은, 페이지 단위의 프로그램 명령에 응답하여, 상기 다수의 페이지들 중 제1 페이지에 제1 내지 제N 코드워드들을 저장함과 함께, 상기 제1 내지 제N 코드워드들에 공통하게 대응되는 페이지 패리티를 상기 제1 페이지에 프로그램하고, 서브 페이지 단위의 독출 명령에 응답하여, 상기 제1 내지 제N 코드워드들 중 제1 코드워드를 선택적으로 독출하도록 상기 프로그램 및 독출 동작을 제어하며, 제1 코드워드는 제1 서브 페이지 데이터와 이에 대응하는 제1 서브 패리티를 포함하고, 상기 제1 서브 패리티는 코드워드 별로 독립하게 수행되는 ECC 디코딩 처리를 통해 상기 제1 서브 페이지 데이터의 에러를 정정하는 정보를 포함하는 것을 특징으로 한다.
본 개시의 기술적 사상의 메모리 장치 및 이를 포함하는 메모리 시스템에 따르면, 서브 페이지 단위로 독립적인 ECC 디코딩 처리가 가능하도록 서브 패리티를 생성함과 함께, 다수의 코드워드들에 대한 페이지 패리티를 생성함으로써 에러 정정 능력을 향상할 수 있는 효과가 있다.
또한, 본 개시의 기술적 사상의 메모리 장치 및 이를 포함하는 메모리 시스템에 따르면, 페이지 단위로 프로그램을 수행하고 서브 페이지 단위로 독출을 수행하며, 호스트로부터의 독출 요청에 대해 서브 페이지 단위로 서브 패리티를 이용한 ECC 디코딩 처리를 수행함으로써, 독출 동작시 에러 정정된 데이터를 제공할 수 있는 속도를 향상할 수 있는 효과가 있다.
도 1은 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 프로그램 및 독출 동작의 일 예를 나타내는 도면이다.
도 4 및 도 5는 본 개시의 예시적인 실시예들에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 6은 본 개시의 일 실시예에 따라, 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 7은 본 개시의 일 실시예에 따라, 도 1의 셀 어레이를 예시적으로 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따라, 도 7의 셀 블록(BLKa)을 나타내는 사시도이다.
도 9 및 도 10은 본 개시의 예시적인 실시예에 따른 페이지 단위의 프로그램 예를 나타내는 도면이다.
도 12 및 도 13a,b는 도 11에 도시된 실시예의 메모리 시스템에서 ECC 인코딩 처리 및 ECC 디코딩 처리의 일 예를 나타내는 플로우차트이다.
도 14는 본 개시의 예시적인 실시예에 따른 메모리 시스템의 일 구현 예를 나타내는 블록도이다.
도 15a,b는 본 개시의 예시적인 실시예에 따라 LDPC 에 기반한 패리티 구현 예를 나타내는 도면이다.
도 16은 본 개시의 다양한 실시예들에 따른 독출 단위를 나타내는 도면이다.
도 17은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 18a,b,c는 본 개시의 다양한 실시예들에 따른 페이지 패리티의 생성 예를 나타내는 도면이다.
도 19a,b,c는 메모리 컨트롤러와 메모리 장치의 인터페이스의 일 예를 나타내는 도면이다.
도 20은 본 개시의 실시예들에 따른 메모리 장치를 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 21은 본 개시의 일 실시예에 따른 메모리 장치를 나타내는 단면도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 메모리 시스템(10)을 나타내는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있으며, 메모리 장치(200)는 메모리 셀 어레이(210), 페이지 버퍼(220) 및 제어 로직(230)를 포함할 수 있다. 또한, 메모리 컨트롤러(100)는 프로세서(110)와 ECC(Error Correction Code) 회로(120)를 포함할 수 있고, ECC 회로(120)는 ECC 인코더(121) 및 ECC 디코더(122)를 포함할 수 있다.
일 실시예에 따라, 메모리 장치(200)는 불휘발성 메모리 장치를 포함할 수 있다. 일 예로서, 메모리 장치(200)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드(Vertical NAND) 플래시 메모리, 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory), 상변화 메모리(Phase-Change Memory), 자기저항 메모리(Magnetoresistive Random Access Memory) 등과 같은 불휘발성 메모리 장치를 포함할 수 있다. 일부 실시예들에서, 메모리 장치(200) 또는 메모리 시스템(10)은 전자 장치에 내장되는 임베디드 메모리로 구현되거나, 또는 전자 장치에 착탈 가능한 외장 메모리로 구현될 수 있다. 일 예로서, 메모리 장치(200) 또는 메모리 시스템(10)은 임베디드 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)는 호스트(HOST)로부터의 기록/독출 요청에 응답하여 메모리 장치(200)에 저장된 데이터를 독출하거나 또는 메모리 장치(200)에 데이터를 기록(또는, 프로그램)하도록 메모리 장치(200)를 제어할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 메모리 장치(200)에 어드레스(ADD) 및 커맨드(CMD)를 제공함으로써, 메모리 장치(200)에 대한 프로그램, 독출 및 소거 동작을 제어할 수 있다. 또한, 메모리 장치(200)에 기록될 데이터(DATA)와 메모리 장치(200)로부터 독출된 데이터(DATA)가 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
메모리 셀 어레이(210)는 다수의 셀 블록들을 포함할 수 있다. 또한, 다수의 셀 블록들 각각은 다수의 페이지들을 포함할 수 있으며, 각각의 페이지는 다수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(210)에서, 데이터의 소거 동작은 셀 블록 단위로 수행될 수 있으며, 또한 데이터의 프로그램 및 독출 동작은 페이지의 적어도 일부의 단위로 수행될 수 있다. 본 개시의 예시적인 실시예에 따라, 메모리 장치(200)는 서로 다른 사이즈를 갖는 단위로서 프로그램 동작과 독출 동작을 수행할 수 있다. 일 구현 예로서, 페이지는 다수의 서브 페이지들을 포함할 수 있고, 메모리 장치(200)는 페이지 단위로 프로그램을 수행하는 반면에, 서브 페이지 단위로 독출을 수행할 수 있다.
프로세서(110)는 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 일 예로서, 프로세서(110)는 메모리 컨트롤러(100) 내에 저장되는 명령어를 실행함으로써 메모리 컨트롤러(100) 내부의 동작을 제어하거나 데이터 소거/프로그램/독출에 관련된 각종 동작들을 제어할 수 있다. 또한, 프로세서(110)의 제어에 기반하여 ECC 회로(120)의 ECC 인코딩 동작 및 ECC 디코딩 동작이 제어될 수 있다. 또한, 본 개시의 예시적인 실시예에 따라, 프로세서(110)의 제어에 기반하여 데이터의 프로그램 동작 및 독출 동작이 서로 다른 사이즈를 갖는 단위로서 수행되도록 제어 동작이 수행될 수 있다.
메모리 컨트롤러(100)는 호스트(HOST)로부터 소정의 단위로 데이터의 억세스를 요청받을 수 있으며, 일 예로서 상기 페이지의 사이즈보다 작은 단위로서 억세스를 요청받을 수 있다. 예컨대, 메모리 셀 어레이(210)의 페이지의 사이즈가 16 KB에 해당하고, 서브 페이지의 사이즈가 4 KB에 해당하는 것으로 가정할 때, 각각의 페이지는 4 개의 서브 페이지들을 포함할 수 있으며, 호스트(HOST)로부터의 억세스 요청은 4 KB 이하의 사이즈에 상응하는 단위로 제공될 수 있다. 예시적인 실시예에 따라, 호스트(HOST)는 512B 단위로서 데이터의 억세스를 요청할 수 있고, 메모리 컨트롤러(100)는 다수의 기록 데이터들을 포함하는 페이지의 단위로서 상기한 프로그램 동작을 수행할 수 있다. 또한, 호스트(HOST)로부터 독출 요청이 수신될 때, 다수의 서브 페이지들 중 요청된 데이터를 포함하는 서브 페이지의 데이터에 대해 선택적으로 독출 동작이 수행될 수 있다.
예시적인 실시예에 따라, ECC 인코더(121)는 서브 페이지 단위의 데이터(이하, 서브 페이지 데이터로 지칭됨)에 대해 ECC 인코딩을 수행하여, 서브 페이지 데이터에 대응하는 서브 페이지 패리티(이하, 서브 패리티로 지칭됨)를 생성할 수 있다. 서브 페이지 데이터와 이에 대응하는 서브 패리티를 포함하는 정보는 코드워드로 지칭될 수 있다. 또한, ECC 인코더(121)는 두 개 이상의 서브 페이지 데이터들에 대응하는 공통 패리티를 생성할 수 있으며, 일 예로서 하나의 페이지에 포함되는 전체 서브 페이지 데이터들에 대응하는 공통 패리티(이하, 페이지 패리티(PAR_P)로 지칭됨)를 생성할 수 있다. 또한, 메모리 컨트롤러(100)는 상기와 같이 생성된 코드워드들과 페이지 패리티(PAR_P)를 포함하는 페이지 단위로 프로그램을 수행할 수 있다.
본 개시의 실시예들에서 각종 용어들은 다양하게 정의될 수 있다. 일 예로서, 서브 페이지 데이터와 이에 대응하는 서브 패리티를 포함하는 개념은 코드워드 또는 서브 코드워드로 지칭될 수 있으나, 설명의 편의상 이하에서는 코드워드로 지칭될 것이다. 또한, 본 개시의 실시예들을 설명함에 있어서 코드워드와 서브 페이지 데이터의 용어는 혼용될 수도 있을 것이며, 일 예로서 서브 페이지 데이터를 독출한다 함은 코드워드를 독출하는 의미를 나타낼 수 있으며, 또한 서브 페이지에 서브 페이지 데이터를 저장한다 함은, 상기 서브 페이지에 코드워드를 저장함을 나타낼 수도 있을 것이다. 또한, 페이지 패리티(PAR_P)는 각각의 코드워드에서 적어도 일부의 정보를 이용하여 생성될 수 있으며, 페이지 패리티(PAR_P)는 다수의 서브 페이지 데이터들로부터 생성되거나 또는 다수의 코드워드들로부터 생성되는 것으로 지칭될 수 있을 것이다. 또한, 하나의 페이지가 N 개의 서브 페이지들을 포함할 때, 각각의 서브 페이지에는 하나의 코드워드가 저장되고, 상기 페이지에는 N 개의 코드워드들 및 이에 대응하는 페이지 패리티(PAR_P)가 저장되는 것으로 가정될 것이다.
한편, ECC 디코더(122)는 메모리 장치(200)로부터 독출된 데이터에 대한 ECC 디코딩 처리를 수행할 수 있다. 일 예로서, ECC 디코더(122)는 서브 페이지 단위로 독출된 코드워드를 수신하고, 서브 패리티를 이용한 ECC 디코딩 처리를 통해 서브 페이지 데이터의 에러를 정정할 수 있다. 예컨대, ECC 디코더(122)는 코드워드 별로 독립적으로 ECC 디코딩 처리를 수행함으로써 서브 페이지 데이터의 에러를 정정할 수 있다. 상기 코드워드에 대한 ECC 디코딩 처리가 성공함에 따라, 호스트(HOST)로부터의 요청에 따른 단위(예컨대, 서브 페이지 이하의 단위)의 데이터가 메모리 컨트롤러(100)로부터 호스트(HOST)로 출력될 수 있다.
한편, 서브 패리티를 이용한 에러 정정이 실패하는 경우에는, ECC 디코더(122)는 페이지에 포함되는 나머지 코드워드들과 함께 페이지 패리티(PAR_P)를 수신하고, 이를 이용하여 페이지 단위의 ECC 디코딩 처리를 수행할 수 있다. 예컨대, 어느 하나의 서브 페이지 데이터(예컨대, 제1 서브 페이지 데이터)에 정정 불가능한 에러가 존재하는 경우, 나머지 서브 페이지 데이터들 및 페이지 패리티(PAR_P)를 이용한 ECC 디코딩 처리를 수행함으로써 상기 제1 서브 페이지 데이터의 에러가 정정될 수 있다.
한편, 셀 어레이(210)는 다수의 페이지들을 포함할 수 있다. 예컨대, 제1 페이지(page 1)는 제1 내지 제N 서브 페이지(Sub page 1 ~ Sub page N)를 포함할 수 있고, 제1 내지 제N 서브 페이지(Sub page 1 ~ Sub page N)에는 제1 내지 제N 코드워드들(CW 1 ~ CW N)이 저장될 수 있다. 또한, 각각의 서브 페이지에는 서브 페이지 데이터와 서브 패리티가 저장될 수 있고, 일 예로서 제1 서브 페이지(Sub page 1)에는 제1 서브 페이지 데이터(DATA_S1)와 제1 서브 패리티(PAR_S1)가 저장되는 예가 도시된다. 또한, 제1 페이지(page 1)에는 전술한 페이지 패리티(PAR_P)가 더 저장될 수 있다.
본 개시의 예시적인 실시예에 따른 프로그램/독출 동작에 따라, 페이지 버퍼(220)에는 기록될 데이터 또는 독출된 데이터가 저장될 수 있고, 페이지 버퍼(220)에는 페이지 단위의 데이터가 저장되어 셀 어레이(210)로 제공될 수 있다. 반면에, 데이터 독출 동작 시에는 서브 페이지 단위로 독출된 데이터가 페이지 버퍼(220)에 저장되고, 상기 페이지 버퍼(220)에 저장된 서브 페이지 데이터가 메모리 컨트롤러(100)로 제공될 수 있다. 상기한 실시예에 따라, 메모리 컨트롤러(100)는 서브 페이지 단위를 기초로 ECC 디코딩 처리를 수행하고, 에러가 존재하지 않거나 에러가 정정되는 경우에는 제1 페이지(page 1)에 대한 추가의 독출 동작을 수행함이 없이 서브 페이지 데이터를 호스트(HOST)로 제공할 수 있다.
반면에, 어느 하나의 코드워드(예컨대, 제1 코드워드)에서 서브 페이지 데이터의 에러가 정정되지 않은 경우, 제1 페이지(page 1)의 제2 내지 제N 코드워드들(CW 2 ~ CW N)과 함께 페이지 패리티(PAR_P)가 독출되어 페이지 버퍼(220)에 저장되고 메모리 컨트롤러(100)로 제공될 수 있다. ECC 디코더(122)는 페이지 패리티(PAR_P)를 이용한 ECC 디코딩 처리를 통해 제1 서브 페이지 데이터의 에러를 정정하고, 에러 정정된 제1 서브 페이지 데이터를 호스트(HOST)로 제공할 수 있다.
제어 로직(230)은 메모리 동작과 관련하여 메모리 장치(200)의 전반적인 동작을 제어할 수 있다. 일 예로서, 제어 로직(230)은 메모리 컨트롤러(100)로부터의 제어 신호(미도시)를 기초로 메모리 장치(200)의 내부 제어 동작을 위한 내부 제어 신호를 생성할 수 있다. 본 개시의 예시적인 실시예에 따라, 제어 로직(230)은 페이지 단위로 데이터가 페이지 버퍼(220)로부터 셀 어레이(210)로 제공되도록 내부 제어 동작을 수행할 수 있고, 또한 서브 페이지 단위로 데이터가 페이지 버퍼(220)로부터 메모리 컨트롤러(100)로 제공되도록 내부 제어 동작을 수행할 수 있다.
상기와 같은 본 개시의 예시적인 실시예에 따르면, 서브 페이지 단위 및 페이지 단위에 대해 패리티를 제공하여 에러 정정 동작을 수행함으로써, 메모리 시스템(10)의 오류 수준을 개선하고 높은 데이터 신뢰성을 달성할 수 있다. 또한, 동일 페이지 내에서 서브 페이지 데이터(또는, 코드워드) 단위로 서로 독립적인 ECC 디코딩 처리가 가능하므로, 호스트(HOST)로부터 독출 요청된 서브 페이지 데이터를 포함하는 코드워드만을 선택적으로 독출하여 에러 정정 동작이 수행될 수 있다.
즉, 일반적인 경우 ECC 처리 단위가 커질수록 더 많은 수의 에러를 정정할 수 있으나, ECC 처리 단위가 커질수록 ECC 처리에 소요되는 시간이 증가하거나 호스트(HOST)로부터 요청되는 독출 단위보다 큰 사이즈의 데이터를 독출하여 ECC 처리를 수행해야 함으로써 메모리 시스템(10)의 자원을 비효율적으로 사용되는 문제가 발생되었으나, 본 개시의 예시적인 실시예에 따르면 에러 정정 능력을 향상시키면서 호스트(HOST)로부터의 독출 요청을 처리하는 시간을 단축시킬 수 있고 메모리 시스템(10)의 자원을 효율적으로 사용할 수 있는 효과가 있다. 또한, 기존의 경우에는 ECC 단위의 에러 정정이 불가능한 경우 리드 리트라이(read retry) 모드로 진입한 후 에러를 복구하는 과정이 수행되고 이에 의한 소요 시간이 크게 발생되었으나, 본 개시의 예시적인 실시예에 따라 페이지 패리티에 기반한 ECC 처리를 통해 에러를 정정할 수 있다.
한편, ECC 회로(120)는 다양한 종류의 ECC 인코딩 및 ECC 디코딩 처리를 수행할 수 있다. 일 예로서, 일부의 실시예들에서 저밀도 패리티 코드(Low Density Parity Code, LDPC)가 예시되나, 본 개시의 실시예들은 이에 국한될 필요가 없이 BCH 코드(Bose-Chadhuri-Hocquenghem code), RS 코드(Reed Solomon code) 다른 다양한 종류의 에러 정정 알고리즘을 이용하여 패리티를 생성할 수 있을 것이다. 또한, 본 개시에서 서브 패리티와 페이지 패리티(PAR_P)는 동일한 에러 정정 알고리즘을 이용하여 생성되거나, 또는 서로 다른 에러 정정 알고리즘을 이용하여 생성될 수도 있을 것이다. 또한, 도 1의 실시예에서는 ECC 회로(120)가 메모리 컨트롤러(100)에 구비되어 있는 것으로 설명되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없으며, ECC 회로(120)는 메모리 장치(200)에 구비되도록 메모리 시스템(10)이 구현될 수도 있을 것이다. 또는, ECC 회로(120)의 기능 중 일부가 메모리 장치(200)에 채용될 수도 있을 것이며, 일 예로서 ECC 인코딩/디코딩 동작과 관련하여 ECC 기능이 메모리 장치(200)에 채용될 수도 있으며, 또는 서브 페이지/페이지 단위와 관련하여 ECC 기능이 메모리 장치(200)에 채용될 수도 있을 것이다.
도 2는 도 1의 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 메모리 컨트롤러(100)는 프로세서(110), ECC 회로(120), 버퍼(130), RAM(Random Access Memory, 140), 호스트 인터페이스(150), 메모리 인터페이스(160) 및 AES(advanced encryption standard, 170)를 포함할 수 있다. 프로세서(110)는 버스를 통하여 메모리 컨트롤러(100) 내의 각종 구성 요소들과 전기적으로 연결되고 이에 대한 제어 동작을 수행할 수 있다.
프로세서(110)는 호스트(HOST)로부터 수신되는 요청을 해독하고, 해독된 결과에 따른 동작을 수행하도록 메모리 시스템(10)을 제어할 수 있다. 프로세서(110)는 프로그램 동작과 독출 동작에서 서로 다른 단위로 데이터 억세스가 수행되도록 제어 동작을 수행할 수 있다. 또한, 프로세서(110)는 RAM(140)에 저장된 명령어들을 실행하거나 RAM(140)에 저장된 메타 데이터를 이용하여 메모리 시스템(10)의 전반적인 제어 동작을 수행할 수 있다. 일 예로서, RAM(140)에는 논리적 주소(Logical Address)를 메모리 장치(200)의 물리적 주소(Physical Address)로 변환시키는데 이용되는 매핑(mapping) 정보가 저장될 수 있고, 매핑(mapping) 정보를 이용하여 페이지 단위의 프로그램 및 서브 페이지 단위의 독출 동작이 수행될 수 있다.
버퍼(130)에는 호스트(HOST)로부터 전송된 기록 데이터가 임시로 저장되거나 메모리 장치(200)로부터 독출된 독출 데이터가 임시로 저장될 수 있다. 예시적인 실시예에 따라, 호스트(HOST)로부터 서브 페이지 단위 이하의 사이즈를 갖는 기록 데이터가 제공되는 경우, 버퍼(130)에는 하나의 페이지를 구성할 수 있는 다수 개의 기록 데이터들이 저장될 수 있고, 버퍼(130)에 저장된 데이터를 이용하여 서브 페이지 단위에 대한 ECC 인코딩 및 페이지 단위에 대한 ECC 인코딩 처리가 수행될 수 있다. 또한, 호스트(HOST)로부터 데이터의 독출이 요청되는 경우, 독출 요청된 서브 페이지 데이터가 버퍼(130)에 저장될 수 있고, 버퍼(130)에 저장된 서브 페이지 데이터에 대한 ECC 디코딩 처리가 수행되며, ECC 디코딩 처리가 완료된 서브 페이지 데이터가 호스트(HOST)로 제공될 수 있다.
호스트 인터페이스(150)는 소정의 인터페이스에 따라 호스트(HOST)와 통신할 수 있다. 호스트 인터페이스(150)는 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 또는 SAS(Serial Attached Small Computer System) 인터페이스, SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card) 인터페이스, UFS(Unix File System) 인터페이스를 포함할 수 있으나 이는 예시일 뿐 이에 제한되는 것은 아니다.
메모리 인터페이스(160)는 메모리 장치(200)와 전기적으로 연결될 수 있다. 일 예시에서, 메모리 인터페이스(160)는 NAND 플래시 메모리 칩 또는 NOR 플래시 메모리 칩과의 인터페이스를 지원하도록 구성될 수 있다. 예시적인 실시예에 따라, 메모리 인터페이스(160)는 페이지 단위의 기록 데이터(DATA_P)를 메모리 장치(200)로 제공할 수 있고, 서브 페이지 단위의 독출 데이터(DATA_S)를 메모리 장치(200)로부터 수신할 수 있다.
ECC 회로(120)는 전술한 실시예들에 따른 ECC 인코딩 및 ECC 디코딩 처리를 수행할 수 있다. 일 예로서, ECC 인코더(121)는 버퍼(130)에 저장된 페이지 단위의 데이터를 기초로 서브 패리티 및 페이지 패리티(PAR_P)를 생성할 수 있다. 또한, ECC 디코더(122)는 버퍼(130)에 저장된 서브 페이지 단위의 데이터를 기초로 서브 패리티를 이용한 ECC 디코딩 처리를 수행할 수 있고, 에러 정정된 서브 페이지 데이터가 호스트 인터페이스(150)를 통해 호스트(HOST)로 제공될 수 있다.
한편, AES(170)는 메모리 컨트롤러(100)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를 수행할 수 있으며, 다양한 종류의 암/복호화 알고리즘(예컨대, 대칭 키 알고리즘(symmetric-key algorithm))를 이용하여 수행할 수 있다.
도 3은 본 개시의 예시적인 실시예에 따른 프로그램 및 독출 동작의 일 예를 나타내는 도면이다. 도 3에서는 페이지 버퍼가 소정의 사이즈(16 KB)를 가지고, 페이지 버퍼는 4 kB 사이즈의 서브 페이지들을 포함하며, 데이터 프로그램이 페이지 버퍼 사이즈의 단위로 수행되고, 데이터 독출은 다양한 사이즈의 단위로 수행되는 예가 도시된다. 한편, 호스트는 다양한 사이즈의 단위로 메모리 시스템에 대한 데이터 기록 및 독출을 요청할 수 있으며, 일 예로서 512B의 배수에 상응하는 사이즈로서 기록 및 독출을 요청할 수 있다.
도 3의 (a)를 참조하면, ECC 인코더는 페이지(또는, 페이지 버퍼) 단위의 ECC 인코딩을 수행할 수 있다. 일 예로서, ECC 인코더는 전술한 서브 페이지 데이터에 대한 서브 패리티를 생성함과 함께, 다수의 서브 페이지 데이터들에 대해 페이지 버퍼 단위의 ECC 인코딩 처리를 수행함으로써 페이지 패리티를 생성하고, 상기 페이지 패리티를 포함하는 ECC 인코딩 데이터가 NAND 등을 포함하는 메모리 장치로 제공될 수 있다. 일 예로서, 페이지 버퍼 단위의 ECC 인코딩 데이터는 4 개의 서브 페이지들에 대한 코드워드들과 함께, 상기한 페이지 패리티를 포함할 수 있다.
한편, NAND에 대한 독출 동작은 페이지 버퍼의 사이즈에 상응하는 16 KB 이하의 단위로서 수행될 수 있고, 일 예로서 4 KB 사이즈에 상응하는 서브 페이지 단위로 데이터가 독출되고 ECC 디코더로 제공될 수 있다. ECC 디코더는 서브 페이지 데이터와 서브 패리티를 포함하는 코드워드를 수신하고 이에 대한 ECC 디코딩 처리를 수행할 수 있으며, 에러가 정정된 서브 페이지 데이터가 호스트로 제공될 수 있다. 한편, 독출된 서브 페이지 데이터의 에러가 정정되지 않는 경우, NAND에 대해 더 큰 사이즈의 단위로서 독출 동작이 수행될 수 있고, 일 예로서 나머지 12 KB 사이즈 단위로 다수의 서브 페이지 데이터들과 페이지 데이터가 독출되어 페이지 단위의 ECC 디코딩 처리가 수행될 수 있다. 다양한 실시예들에 따라, 어느 하나의 서브 페이지 데이터의 에러가 정정되지 않는 경우에는, 상기 서브 페이지 데이터를 포함하는 16 KB 사이즈 단위로 데이터가 독출되어 페이지 단위의 ECC 디코딩 처리가 수행될 수도 있을 것이다.
도 3에 도시된 실시예에 따라, 메모리 시스템은 호스트로부터 소정의 사이즈(예컨대, 512B)의 데이터 기록 요청을 다수 회 수신하고, 16 KB 사이즈의 데이터에 대해 전술한 실시예들에 따라 서브 패리티 및 페이지 패리티를 생성하며, 페이지 버퍼 단위의 ECC 인코딩 데이터를 NAND에 프로그램할 수 있다. 반면에, 메모리 시스템은 호스트로부터 512B 사이즈의 데이터 독출 요청을 수신할 수 있고, 호스트에 의해 지시되는 위치를 포함하며 독립적인 ECC 디코딩 처리 단위에 해당하는 서브 페이지 데이터를 독출하고, 서브 페이지 단위의 ECC 디코딩 처리를 수행한 후, 에러가 존재하지 않거나 에러 정정된 서브 페이지 데이터를 호스트로 제공할 수 있다.
상기와 같은 실시예에 따라, 페이지 단위의 패리티를 제공함으로써 에러 정정 능력을 향상함과 함께, 호스트의 독출 요청에 대해 독립적인 단위로서 서브 페이지에 대한 ECC 디코딩 처리를 통해, 에러 정정의 속도를 향상함과 함께 호스트로 독출 데이터가 제공되는 속도를 향상할 수 있다.
한편, 도 3의 실시예에서는 데이터 버퍼의 사이즈가 16 KB 인 경우가 예시되었으나, 상기 데이터 버퍼의 사이즈는 더 큰 값(4KB의 배수)을 가질 수 있다. 이 경우, 메모리 시스템은 호스트로부터의 더 많은 개수의 기록 데이터들을 기초로 페이지 패리티를 생성할 수 있고, 더 큰 사이즈의 단위로서 프로그램 동작을 수행할 수 있을 것이다.
한편, 예시적인 실시예에 따라, 호스트로부터 독출 요청이 수신되면 메모리 장치는 페이지 버퍼 단위로 데이터를 독출하고, 페이지 버퍼에 저장된 페이지 단위의 데이터 중 호스트로부터 독출이 요청된 서브 페이지 단위의 데이터가 메모리 컨트롤러로 제공될 수도 있다. 일 예로서, 메모리 장치는 페이지 단위로 데이터를 독출하여 페이지 버퍼에 저장하고, 서브 페이지 단위로 메모리 컨트롤러로 데이터를 제공하며, 메모리 컨트롤러로부터 에러가 정정되지 않음을 나타내는 정보를 수신하면 페이지 버퍼에 저장된 나머지 데이터들을 메모리 컨트롤러로 제공할 수 있을 것이다.
도 4 및 도 5는 본 개시의 예시적인 실시예들에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 4를 참조하면, 호스트는 기록 요청과 함께 소정의 사이즈를 갖는 기록 데이터를 메모리 시스템으로 전송할 수 있다. 메모리 시스템은 메모리 컨트롤러와 메모리 장치를 포함할 수 있고, 메모리 컨트롤러는 호스트로부터의 다수의 기록 요청들에 대응하는 다수의 기록 데이터들을 저장할 수 있고, 페이지 단위의 기록 데이터에 대해 ECC 인코딩 처리를 수행할 수 있다. 일 예로서, 서브 페이지 단위로 에러 정정이 가능하도록 각각의 서브 페이지 데이터에 대한 ECC 인코딩 처리가 수행되고(S11), 또한 어느 하나의 서브 페이지 데이터의 에러가 다른 서브 페이지 데이터를 기초로 정정될 수 있도록 페이지 단위의 ECC 인코딩 처리가 수행될 수 있다(S12). 또한, 메모리 컨트롤러는 상기와 같은 ECC 인코딩 처리가 수행된 후 페이지 단위에 기반한 프로그램 명령을 메모리 장치로 제공할 수 있다(S13). 상기 프로그램 명령과 함께, 다수의 코드워드들과 페이지 패리티가 메모리 장치로 제공될 수 있다.
메모리 장치는 프로그램 명령에 응답하여 페이지 단위의 프로그램 동작을 수행할 수 있다(S14). 일 동작 예로서, 메모리 장치는 페이지 버퍼에 메모리 컨트롤러로부터 제공된 다수의 코드워드들과 페이지 패리티를 저장할 수 있고, 셀 어레이의 어느 하나의 페이지에 다수의 코드워드들과 페이지 패리티를 함께 프로그램할 수 있다.
한편, 호스트로부터 소정 단위의 데이터의 독출이 요청될 수 있으며, 메모리 컨트롤러는 호스트로부터 독출 요청에 따른 데이터가 독출되도록 독출 명령을 메모리 시스템으로 전송할 수 있다(S15). 상기 독출이 요청되는 데이터는 전술한 실시예에서의 서브 페이지 단위보다 작을 수 있으며, 메모리 장치는 독출이 요청된 데이터를 포함하는 서브 페이지 데이터를 독출하여 이를 메모리 컨트롤러로 전송할 수 있다(S16). 메모리 컨트롤러는 수신된 데이터에 대해 서브 페이지 단위의 ECC 디코딩 처리를 수행할 수 있으며(S17), 서브 페이지 단위의 ECC 디코딩 처리 결과에 따라 에러 정정된 데이터를 호스트로 전송할 수 있다.
도 5는 ECC 디코딩 처리와 관련한 일 동작 예를 나타낸다.
도 5를 참조하면, 메모리 컨트롤러는 호스트로부터 독출 요청을 수신할 수 있고, 호스트로부터 요청된 데이터를 포함하는 제1 서브 페이지 데이터를 독출하기 위한 독출 명령을 메모리 장치로 전송할 수 있다(S21). 메모리 장치는 독출 명령에 응답하여 제1 서브 페이지 데이터를 포함하는 코드워드를 독출하고 이를 메모리 컨트롤러로 제공할 수 있다.
메모리 컨트롤러는, 전술한 실시예들에 따라 서브 페이지 단위의 ECC 디코딩 처리를 수행할 수 있으며, 처리 결과에 따라 ECC 디코딩이 실패했음을 판단할 수 있다(S23). 제1 서브 페이지 데이터의 에러가 정정되지 않음에 따라, 메모리 컨트롤러는 제1 서브 페이지 데이터와 동일한 페이지에 포함되는 제2 내지 제N 서브 페이지 데이터와 페이지 패리티에 대한 독출 명령을 전송할 수 있다(S24). 메모리 장치는 독출 명령에 응답하여 독출된 제2 내지 제N 서브 페이지 데이터를 메모리 컨트롤러로 제공하고(S25), 또한 상기 독출 명령에 응답하여 독출된 페이지 패리티를 메모리 컨트롤러로 제공할 수 있다(S26). 메모리 컨트롤러는 추가로 수신된 제2 내지 제N 서브 페이지 데이터와 페이지 패리티를 이용한 ECC 디코딩 처리를 통해 제1 서브 페이지 데이터의 에러를 정정할 수 있고(S27), 에러 정정된 제1 서브 페이지 데이터를 호스트로 전송할 수 있다.
도 6은 본 개시의 일 실시예에 따라, 도 1의 메모리 장치(200)의 구조를 개략적으로 나타내는 도면이다. 도 6에서는 메모리 장치(200)의 구현 예로서 COP(Cell Over Periphery) 구조가 예시되나, 본 발명의 실시예들은 이에 국한될 필요가 없이 다양한 구조들을 통해 메모리 장치(200)가 구현될 수도 있을 것이다.
도 1 및 도 6을 참조하면, 메모리 장치(200)는 제1 반도체 층(L1) 및 제2 반도체 층(L2)을 포함할 수 있고, 제1 반도체 층(L1)은 제2 반도체 층(L2)에 대해 수직 방향(VD)으로 적층될 수 있다. 구체적으로, 제2 반도체 층(L2)은 제1 반도체 층(L1)에 대해 수직 방향(VD)으로 하부에 배치될 수 있고, 이에 따라, 제2 반도체 층(L2)은 기판에 가깝게 배치될 수 있다.
일 실시예에서, 도 1의 셀 어레이(210)는 제1 반도체 층(L1)에 형성될 수 있고, 도 1의 페이지 버퍼(220) 및 제어 로직(230)을 포함하는 주변 회로는 제2 반도체 층(L2)에 형성될 수 있다. 이에 따라, 메모리 장치(200)는 셀 어레이(210)가 주변 회로의 상부에 배치된 구조, 즉 COP 구조를 가질 수 있다. COP 구조는 수평 방향 면적을 효과적으로 감소시킬 수 있고, 메모리 장치(200)의 집적도를 향상시킬 수 있다.
일 실시예에서, 제2 반도체 층(L2)은 기판을 포함할 수 있고, 기판 상에 트랜지스터들 및 트랜지스터들을 배선하기 위한 메탈 패턴들을 형성함으로써 제2 반도체 층(L2)에 주변 회로를 형성할 수 있다. 제2 반도체 층(L2)에 주변 회로가 형성된 후, 셀 어레이(210)를 포함하는 제1 반도체 층(L1)이 형성될 수 있고, 셀 어레이(210)의 워드 라인들(WL) 및 비트 라인들(BL)과 제2 반도체 층(L2)에 형성된 주변 회로를 전기적으로 연결하기 위한 메탈 패턴들이 형성될 수 있다. 예를 들어, 비트 라인들(BL)은 제1 수평 방향(HD1)으로 연장되고, 워드 라인들(WL)은 제2 수평 방향(HD2)으로 연장될 수 있다.
도 7은 본 개시의 일 실시예에 따라, 도 1의 셀 어레이(210)를 예시적으로 나타내는 도면이다.
도 7을 참조하면, 셀 어레이(210)는 복수의 셀 블록들(BLK0 ~ BLKi)을 포함할 수 있고, i는 양의 정수일 수 있다. 복수의 셀 블록들(BLK0 내지 BLKi) 중 각각은 3차원 구조(또는 수직 구조)를 가질 수 있다. 구체적으로, 복수의 셀 블록들(BLK0 ~ BLKi) 중 각각은 수직 방향(VD)을 따라 신장된 복수의 낸드 스트링들을 포함할 수 있다. 이때, 복수의 낸드 스트링들은 제1 및 제2 수평 방향(HD1, HD2)을 따라 특정 거리만큼 이격되어 제공될 수 있다. 복수의 셀 블록들(BLK0 ~ BLKi)은 로우 디코더(미도시)에 의해 선택될 수 있다. 예를 들면, 로우 디코더는 복수의 셀 블록들(BLK0 ~ BLKi) 중 블록 어드레스에 대응하는 셀 블록을 선택할 수 있다.
도 8은 본 개시의 일 실시예에 따라, 도 7의 셀 블록(BLKa)을 나타내는 사시도이다.
도 8을 참조하면, 셀 블록(BLKa)은 기판(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)이 제공된다.
도 9 및 도 10은 본 개시의 예시적인 실시예에 따른 페이지 단위의 프로그램 예를 나타내는 도면이다. 도 9 및 도 10에서는 하나의 페이지가 4 개의 서브 페이지들을 포함하고, 또한 메모리 셀 각각이 4 비트의 데이터를 저장하는 QLC(Quan Level Cell)에 해당함에 따라, 하나의 워드 라인에 연결된 메모리 셀들에는 4 개의 페이지들의 데이터가 저장되는 예가 도시된다.
도 9를 참조하면, 각각의 서브 페이지에는 서브 페이지 데이터와 이에 대응하는 서브 패리티가 저장될 수 있고, 일 예로서 제1 내지 제4 서브 페이지 데이터(DATA_S1 ~ DATA_S4)와 제1 내지 제4 서브 패리티(PAR_S1 ~ PAR_S4)가 동일한 페이지에 저장될 수 있다. 또한, 상기 제1 내지 제4 서브 페이지 데이터(DATA_S1 ~ DATA_S4)에 대응하는 페이지 패리티(PAR_P)가 상기 페이지에 함께 저장될 수 있다.
한편, 도 10을 참조하면, 메모리 컨트롤러의 제어에 기반하여, 페이지 단위의 데이터는 메모리 장치의 다수의 페이지들에 걸쳐 저장될 수 있다. 일 예로서, 제1 서브 페이지 데이터(DATA_S1) 및 이에 대응하는 제1 서브 패리티(PAR_S1)는 제1 페이지에 저장될 수 있고, 이와 유사하게 다른 서브 페이지 데이터와 이에 대응하는 서브 패리티는 동일한 워드 라인의 다른 페이지에 저장될 수 있다. 전술한 실시예들에 따라 생성된 페이지 패리티(PAR_P)는 어느 하나의 페이지에 저장될 수 있으며, 도 10에서는 상기 페이지 패리티(PAR_P)가 제4 서브 페이지 데이터(DATA_S4) 및 이에 대응하는 제4 서브 패리티(PAR_S4)와 함께 제4 페이지에 저장되는 예가 도시된다.
도 10에 도시된 실시예에서와 같이, 메모리 셀 각각에 다수의 비트들의 데이터가 저장됨에 따라 하나의 워드 라인에 다수의 페이지들의 데이터가 저장될 수 있으며, 페이지 패리티(PAR_P)를 포함하는 페이지 단위의 데이터는 적어도 두 개 이상의 페이지들에 걸쳐 다양한 형태로 저장될 수 있다. 이에 따라, 페이지 별로 그 열화 정도가 달라 특정 페이지에 에러 발생 빈도가 증가하더라도, 다수의 서브 페이지의 데이터들이 다수의 페이지들에 분산되어 저장될 수 있으므로 페이지 단위의 데이터에서 에러 발생 빈도를 균등화할 수 있고, 이에 따라 페이지 단위의 에러 정정 성능을 강화할 수 있다.
도 11은 본 개시의 예시적인 실시예에 따른 페이지 패리티의 생성 예를 나타내는 개념도이다. 도 11에서는 하나의 페이지가 제1 내지 제N 서브 페이지들을 포함하고, 서브 페이지 데이터는 K 비트를 포함하고, 서브 패리티는 P 비트를 포함하는 예가 도시된다. 또한, 도 11의 실시예에서 각각의 코드워드의 적어도 일부의 비트들로부터 생성되는 추가 패리티 및 페이지 패리티가 각각 4 비트를 포함하는 것으로 예시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다.
도 11을 참조하면, 제1 내지 제N 서브 페이지들 각각에 대해 추가 패리티가 생성될 수 있으며, 일 예로서 제1 서브 페이지 데이터(DATA_S1) 및 제1 서브 패리티(PAR_S1)의 적어도 일부의 비트들을 기초로 제1 추가 패리티(Ex-P_1)가 생성될 수 있다. 이와 유사하게, 제N 서브 페이지 데이터(DATA_SN) 및 제N 서브 패리티(PAR_SN)의 적어도 일부의 비트들을 기초로 제N 추가 패리티(Ex-P_N)가 생성될 수 있다. 상기한 추가 패리티는 소정의 설정되는 다양한 연산들을 통해 생성될 수 있다. 예컨대, 제1 추가 패리티(Ex-P_1)는 에러 정정 알고리즘에 기반하여 제1 서브 페이지 데이터(DATA_S1)의 에러를 정정할 수 있는 정보를 포함하도록 생성될 수 있고, 제1 내지 제N 추가 패리티(Ex-P_1 ~ Ex-P_N)를 이용하여 전술한 페이지 패리티(PAR_P)가 생성될 수 있다.
일 구현 예로서, 제1 내지 제N 추가 패리티(Ex-P_1 ~ Ex-P_N)는 메모리 시스템 내에 저장될 필요가 없이, 제1 내지 제N 추가 패리티(Ex-P_1 ~ Ex-P_N) 각각은 대응하는 서브 페이지 데이터(또는, 코드워드)로부터 산출될 수 있다. 또한, 페이지 패리티는 제1 내지 제N 추가 패리티(Ex-P_1 ~ Ex-P_N)에 대한 컴퍼넌트 와이즈 XOR 연산 등 다양한 방식의 연산을 통해 페이지 패리티(PAR_P)가 생성될 수 있으며, 본 개시의 실시예들은 특정 방식의 연산에 한정될 필요가 없을 것이다.
도 12 및 도 13a,b는 도 11에 도시된 실시예의 메모리 시스템에서 ECC 인코딩 처리 및 ECC 디코딩 처리의 일 예를 나타내는 플로우차트이다.
도 11 및 도 12를 참조하면, 메모리 컨트롤러는 호스트로부터 제1 내지 제N 서브 페이지 데이터를 수신하고(S31), 서브 페이지 단위의 ECC 인코딩 처리를 통해 각각의 서브 페이지 데이터에 대한 서브 패리티를 생성할 수 있다(S32). 이에 따라, 각각의 서브 페이지는 ECC 디코딩 처리 단위를 구성할 수 있고, 호스트로부터 데이터의 독출 요청이 수신되면, 서브 페이지 단위로 ECC 디코딩 처리를 수행하여 에러 정정 동작이 수행될 수 있다.
한편, 페이지 패리티를 생성하기 위해, 제1 내지 제N 서브 페이지 데이터 각각에 대한 연산을 통해 추가 패리티가 산출될 수 있고, 이에 따라 제1 내지 제N 서브 페이지 데이터에 대응하는 제1 내지 제N 추가 패리티가 산출될 수 있다(S33), 각각의 추가 패리티는 이에 대응하는 서브 페이지 데이터(또는, 코드워드)의 에러를 정정하기 위한 정보를 포함할 수 있다.
한편, 제1 내지 제N 추가 패리티에 대한 소정의 연산을 기초로 상기 제1 내지 제N 서브 페이지 데이터에 공통하게 대응되는 페이지 패리티가 생성될 수 있으며(S34), 전술한 실시예들에 따라 페이지 단위의 프로그램 동작을 통해 제1 내지 제N 서브 페이지 데이터(또는, 제1 내지 제N 코드워드들) 및 페이지 패리티가 메모리 장치에 저장될 수 있다(S35). 예시적인 실시예에 따라, 상기 산출된 제1 내지 제N 추가 패리티는 메모리 장치에 저장되지 않을 수 있다.
한편, 도 11 및 도 13a를 참조하면, 전술한 실시예들에 따라 제1 내지 제N 서브 페이지 데이터들을 포함하는 페이지 단위의 데이터가 메모리 장치의 어느 하나의 페이지에 저장될 수 있고, 호스트로부터 제1 서브 페이지 데이터에 대한 독출 요청이 수신되며, 이에 따라 제1 서브 페이지 데이터에 대한 독출 동작이 수행될 수 있다(S41). 일 예로서, 호스트로부터의 독출 요청의 데이터 사이즈는 상기 제1 서브 페이지의 사이즈보다 작거나 동일할 수 있으며, 메모리 장치는 기 설정된 서브 페이지 단위로서 데이터를 독출할 수 있다.
메모리 컨트롤러는 제1 서브 페이지 데이터를 메모리 장치로부터 수신하고, 제1 서브 패리티를 이용한 ECC 디코딩 처리를 수행할 수 있다(S42). 또한, ECC 디코딩 처리를 통한 에러 정정이 성공하였는 지가 판단될 수 있으며(S43), 에러 정정이 성공한 경우에는 제1 서브 페이지 데이터를 호스트로 출력할 수 있다.
한편, 에러 정정이 실패한 것으로 판단된 경우에는, 동일한 페이지를 구성하는 다른 서브 페이지 데이터로서 제2 내지 제N 서브 페이지 데이터가 독출되고(S45), 독출된 제2 내지 제N 서브 페이지 데이터에 대해 제2 내지 제N 서브 패리티를 이용한 ECC 디코딩 처리를 수행함으로써(S46), 제2 내지 제N 서브 페이지 데이터 각각의 에러를 정정할 수 있다. 또한, 서브 페이지 단위의 ECC 디코딩 처리를 통해 각 서브 페이지의 에러가 정정되면, 제2 내지 제N 서브 페이지 데이터를 이용하여 전술한 실시예에서의 추가 패리티 산출을 위한 연산을 수행함으로써 제2 내지 제N 추가 패리티가 산출될 수 있다(S47).
이후, 상기 산출된 제2 내지 제N 추가 패리티와 메모리 장치로부터 독출된 페이지 패리티를 이용하여 상기 제1 서브 페이지 데이터에 대응하는 제1 추가 패리티가 산출될 수 있으며(S48), 제1 추가 패리티를 이용한 ECC 디코딩 처리를 통해 제1 서브 페이지의 에러가 정정될 수 있다(S49).
한편, 상기한 실시예에서는 페이지 패리티가 각 서브 페이지 데이터에 관련된 추가 패리티를 이용하여 생성되는 예가 설명되었으나, 본 개시의 실시예는 이에 국한될 필요가 없다. 예컨대, 서브 페이지 데이터들 각각으로부터 적어도 일부의 비트들이 선택되고, 상기 선택된 비트들을 포함하는 단위에 대해 별도의 ECC 인코딩 처리를 수행하여 생성된 패리티를 상기한 페이지 패리티로서 이용할 수도 있을 것이다.
한편, ECC 인코딩 처리와 관련하여 다양한 형태로 패리티가 생성될 수 있으며, 일 예로서 체계적인(Systematic) 방식에 의해 서브 페이지 데이터와 서브 패리티가 별개로 구분되도록 ECC 인코딩 처리가 수행될 수 있고, 또는 비 체계적인(nonsystematic) 방식에 의해 ECC 인코딩 처리가 수행됨에 따라 서브 페이지 데이터의 비트 값이 변경된 코드워드가 생성될 수도 있을 것이다.
도 13b는 에러 정정에 관련된 다양한 실시예를 나타낸다. 일 예로서, 도13b를 참조하면, 호스트로부터의 요청에 따라 독출된 제1 서브 페이지에 대한 에러 정정 동작이 수행되고, 에러 정정이 실패한 것으로 판단될 수 있다(S51). 전술한 실시예들에 따라, 제1 서브 페이지의 에러 정정을 위해 제2 내지 제N 서브 페이지들의 데이터가 독출될 수 있고(S52), 독출된 제2 내지 제N 서브 페이지들의 서브 페이지를 이용하여 ECC 디코딩 처리가 수행될 수 있다(S53).
예시적인 실시예들에 따라, 다양한 알고리즘(예컨대, 에러 정정 알고리즘)을 이용하여 추가 패리티가 산출될 수 있고, 어느 하나의 서브 페이지의 추가 패리티는 나머지 서브 페이지들 중 일부의 서브 페이지의 추가 패리티를 선택적으로 이용하여 산출될 수 있다. 즉, 적용되는 알고리즘에 따라 다양한 종류의 연산들을 기초로 추가 패리티가 산출될 수 있고, 본 개시의 예시적인 실시예에 따른 메모리 시스템은 상기한 제2 내지 제N 서브 페이지들 중 선택된 일부의 서브 페이지의 추가 패리티를 기초로 제1 서브 페이지에 대한 추가 패리티가 산출될 수 있다.
제2 내지 제N 서브 페이지들에 대한 ECC 디코딩 처리를 통해, 제2 내지 제N 서브 페이지들 중 적어도 일부는 에러가 존재하지 않거나 또는 에러가 정정될 수 있다. 예시적인 실시예에 따라, 제2 내지 제N 서브 페이지들 중 에러가 없는(또는, 에러가 정정된) 하나 이상의 서브 페이지의 추가 패리티가 산출될 수 있고(S54), 상기 산출된 추가 패리티 및 전술한 실시예에서의 페이지 패리티를 이용하여 제1 서브 페이지의 제1 추가 패리티가 산출될 수 있으며(S55), 제1 추가 패리티를 이용하여 제1 서브 페이지 데이터의 에러가 정정될 수 있다(S56).
상기와 같은 본 개시의 예시적인 실시예에 따르면, 에러가 존재하지 않는 서브 페이지를 기초로 생성된 추가 패리티를 이용하여 에러가 발생된 서브 패리티에 대한 추가 패리티가 생성될 수 있고, 이를 기초로 서브 패리티의 에러가 정정될 수 있으므로 에러 정정 정확도를 향상할 수 있다.
도 14는 본 개시의 예시적인 실시예에 따른 메모리 시스템의 일 구현 예를 나타내는 블록도이다. 도 14에서는 메모리 컨트롤러(310)가 다수의 채널들(ch0 ~ ch3)을 통해 메모리 장치로서 다수의 NAND들(321 ~ 324)에 연결되고, 다수의 NAND들(321 ~ 324)에 대응하여 ECC 인코딩 및 ECC 디코딩 처리를 수행하는 다수의 ECC 회로들(311 ~ 314)이 배치되는 예가 도시된다. 또한, 도 14에서는 제2 NAND(322)에 대한 ECC 인코딩 처리 및 ECC 디코딩 처리 예가 도시된다.
예시적인 구현 예에 따라, 페이지 패리티(PAR_P)를 생성하는 페이지 패리티 생성기(315)는 다수의 채널들(ch0 ~ ch3)에 공통하게 배치될 수 있다. 즉, 페이지 패리티 생성기(315)는 다수의 NAND들(321 ~ 324)에 공유되는 구조를 가질 수 있다.
제2 ECC 회로(312)의 동작을 예로 들면, 제2 NAND(322)의 페이지 단위의 프로그램 동작이 수행되고, 제2 ECC 회로(312)는 제1 내지 제N 서브 페이지 데이터들에 대한 ECC 인코딩 처리를 통해 제1 내지 제N 코드워드들(CW 1 ~ CW N)을 생성할 수 있다. 또한, 제1 내지 제N 코드워드들(CW 1 ~ CW N)은 페이지 패리티 생성기(315)로 제공될 수 있고, 페이지 패리티 생성기(315)는 전술한 실시예에 따라 제1 내지 제N 코드워드들(CW 1 ~ CW N) 각각에 대한 추가 패리티를 산출하고, 산출된 추가 패리티를 이용한 연산을 통해 페이지 패리티(PAR_P)를 생성하여 제2 ECC 회로(312)로 제공할 수 있다. 상기와 같이 생성된 제1 내지 제N 코드워드들(CW 1 ~ CW N) 및 페이지 패리티(PAR_P)는 제2 NAND(322)에 페이지 단위로 프로그램될 수 있다.
한편, 호스트(HOST)의 요청에 따라 제2 NAND(322)의 서브 페이지 단위의 독출이 수행되고, 제1 코드워드(CW 1)가 독출되어 메모리 컨트롤러(310)로 제공될 수 있다. 제2 ECC 회로(312)는 제1 코드워드(CW 1)에 포함된 서브 패리티를 이용하여 서브 페이지 단위의 ECC 디코딩 처리를 수행할 수 있고, 에러 정정이 실패한 경우에는 메모리 컨트롤러(310)의 제어에 기반하여 제2 내지 제N 코드워드들(CW 2 ~ CW N) 및 페이지 패리티(PAR_P)가 제2 NAND(322)로부터 독출되어 메모리 컨트롤러(310)로 제공될 수 있다.
추가로 독출된 제2 내지 제N 코드워드들(CW 2 ~ CW N) 및 페이지 패리티(PAR_P)는 페이지 패리티 생성기(315)로 제공될 수 있고, 페이지 패리티 생성기(315)는 제2 내지 제N 코드워드들(CW 2 ~ CW N)로부터 산출된 추가 패리티와 페이지 패리티(PAR_P)를 이용한 연산을 통해 제1 코드워드(CW 1)에 대응하는 추가 패리티를 산출할 수 있다. 또한, 산출된 추가 패리티를 통해 제1 코드워드(CW 1)의 서브 페이지 데이터에 발생된 에러가 정정될 수 있고, 정정된 서브 페이지 데이터가 호스트 인터페이스(316)를 통해 호스트(HOST)로 제공될 수 있다.
한편, 도 14에는 페이지 패리티 생성기(315)가 다수의 NAND들(321 ~ 324)에 공유되는 구조가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없다. 일 예로서, 페이지 패리티 생성기(315)는 다수의 NAND들(321 ~ 324) 각각에 대응하여 배치되고, 대응하는 NAND에 저장되는 데이터와 독출되는 데이터와 관련하여 페이지 패리티(PAR_P)를 생성할 수도 있을 것이다.
도 15a,b는 본 개시의 예시적인 실시예에 따라 LDPC 에 기반한 패리티 구현 예를 나타내는 도면이다. 도 15a는 서브 패리티 및 페이지 패리티의 구현 예가 도시되며, 도 15b는 제1 및 제4 페이지에 발생된 에러를 LDPC 에 기반하는 ECC 디코딩 처리를 통해 정정하는 개념을 나타내는 도면이다.
도 15a를 참조하면, LDPC 에 기반한 패리티는 패리티 체크 매트릭스(parity-check matrix, H matrix)를 포함할 수 있고, LDPC 에 기반한 ECC 인코딩 처리를 통해 제1 내지 제4 서브 페이지 데이터 각각에 대한 패리티 체크 매트릭스(예컨대, 서브 H 매트릭스)와 함께, 페이지 데이터에 대한 패리티 체크 매트릭스가 생성될 수 있다. 서브 페이지 단위 및 페이지 단위의 패리티 체크 매트릭스 각각은 부(sub)행열 및/또는 영(zero)행열로 구성될 수 있다. 전술한 실시예들에 따라, 서브 페이지 데이터에 대한 패리티 체크 매트릭스의 정보는 전술한 서브 패리티에 상응하게 저장될 수 있고, 또한 페이지 데이터에 대한 패리티 체크 매트릭스의 정보는 전술한 페이지 패리티에 상응하게 저장될 수 있다.
한편, 도 15a에서 제2 및 제3 서브 페이지 데이터의 에러는 정정된 반면에, 제1 및 제4 서브 페이지 데이터의 에러가 정정되지 않는 경우가 가정될 수 있다. 패리티 체크 매트릭스의 값에 의해 정의되는 다수의 체크 노드(check node)들과 다수의 변수 노드(variable node)들 사이의 상관 관계를 기초로 데이터의 에러가 정정될 수 있으며, 도 15b에 도시된 바와 같이 에러-프리 데이터를 반영하여 체크 노드의 정보가 초기화된 패리티 체크 매트릭스가 재 생성될 수 있다. 일 예로서, 재 생성된 패리티 체크 매트릭스는 제1 및 제4 서브 페이지 데이터에 대응하는 서브 H 매트릭스의 적어도 일부의 정보와 상기한 페이지 데이터에 대한 패리티 체크 매트릭스의 적어도 일부의 정보에 기초할 수 있고, 이를 통해 제1 및 제4 서브 페이지 데이터에 대한 ECC 디코딩 처리를 수행할 수 있다.
한편, 도 15a,b에서는 중첩 행렬(superposition matrix) 기반의 부분적으로 디코딩 가능한(Partially-Decodable) LDPC 구조가 적용되고, 정정된 서브 페이지의 개수만큼의 에러를 정정할 수 있는 예가 도시되었으나, 본 개시의 실시예들은 특정한 방식에 한정될 필요는 없을 것이다.
도 16은 본 개시의 다양한 실시예들에 따른 독출 단위를 나타내는 도면이다. 도 16에서는 하나의 페이지가 16 KB의 사이즈를 가지고, 하나의 페이지가 3 개의 서브 페이지들을 포함하는 예가 도시된다.
도 16을 참조하면, 전술한 실시예들에 따라 어느 하나의 페이지는 다수의 코드워드들 및 이에 대응하는 페이지 패리티(PAR_P)를 저장할 수 있다. 도 16에는 다수의 코드워드들로서 제1 내지 제3 코드워드들(CW 1 ~ CW 3)이 페이지에 저장되고, 제1 및 제3 코드워드들(CW 1, CW 3)은 4 KB의 사이즈를 가지고 제2 코드워드(CW 2)는 8 KB의 사이즈를 갖는 예가 도시된다.
제1 내지 제3 코드워드들(CW 1 ~ CW 3)를 생성함에 있어서, 제1 서브 패리티(PAR_S1), 제3 서브 패리티(PAR_S3)는 각각 4 KB 사이즈의 서브 페이지 데이터(DATA_S1, DATA_S3)의 에러를 정정하기 위한 정보를 포함할 수 있고, 제2 서브 패리티(PAR_S2)는 8 KB 사이즈의 서브 페이지 데이터(DATA_S2)의 에러를 정정하기 위한 정보를 포함할 수 있다. 또한, 제1 내지 제3 코드워드들(CW 1 ~ CW 3)를 기초로 페이지 패리티(PAR_P)가 생성될 수 있다.
한편, 본 개시의 예시적인 실시예에 따라 독출 단위가 가변될 수 있다. 일 예로서, 호스트의 독출 요청의 단위가 4 KB 이하인 경우, 호스트의 요청에 응답하여 제1 내지 제3 코드워드들(CW 1 ~ CW 3) 중 어느 하나의 코드워드가 선택적으로 독출되고, 독출된 코드워드에 포함된 서브 패리티를 이용하여 서브 페이지 단위의 ECC 디코딩 처리가 수행될 수 있다. 본 실시예에 따르면, 제1 내지 제3 코드워드들(CW 1 ~ CW 3)의 사이즈가 서로 상이할 수 있고, 이에 따라 서브 페이지 단위의 ECC 디코딩 처리에서 서브 페이지 별로 에러 정정 능력이 상이할 수 있다. 예컨대, 제2 코드워드(CW 2)의 사이즈는 상대적으로 크고, 이에 따라 제2 코드워드(CW 2)의 제2 서브 패리티(PAR_S2)를 이용한 에러 정정 성능은 다른 코드워드들에 비해 상대적으로 높을 수 있다.
상기한 실시예에서는 어느 하나의 페이지에서 코드워드 별로 그 사이즈가 상이한 예가 설명되었으나, 본 개시의 실시예들은 다양한 형태로 구현이 가능하다. 예컨대, 일부의 페이지는 4 KB 단위의 서브 페이지들을 포함하는 반면에, 다른 일부의 페이지는 8 KB 단위의 서브 페이지들을 포함할 수 있으며, 이에 따라 페이지 별로 서브 페이지 단위의 에러 정정 성능이 상이하게 구현될 수 있다. 또한, 상기한 에러 정정 성능을 고려하여 데이터의 저장 동작이 제어될 수도 있으며, 일 예로서 메타 데이터 등 중요도가 높은 데이터는 에러 정정 성능이 높은 영역에 저장되도록 저장 동작이 제어될 수도 있을 것이다.
도 17은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 17을 참조하면, 메모리 시스템(400)은 메모리 컨트롤러(410) 및 메모리 장치(420)를 포함할 수 있으며, 메모리 장치(420)는 메모리 셀 어레이(421), 페이지 버퍼(422) 및 제어 로직(423)를 포함할 수 있다. 또한, 메모리 컨트롤러(410)는 프로세서(411)와 제1 ECC(Error Correction Code) 회로(412) 및 제2 ECC 회로(413)를 포함할 수 있다. 도 17에 도시된 구성 요소들 중 전술한 실시예들에서 설명된 구성 요소에 대해서는 자세한 설명이 생략된다.
프로세서(411)는 메모리 시스템(400)의 전반적인 동작을 제어할 수 있고, 또한 전술한 실시예들에 따라 다양한 단위의 프로그램 동작 및 독출 동작을 제어할 수 있다. 또한, 제1 ECC 회로(412)는 서브 페이지 단위의 ECC 인코딩 및 ECC 디코딩 처리를 수행할 수 있으며, 또한 제2 ECC 회로(413)는 페이지 단위의 ECC 인코딩 및 ECC 디코딩 처리를 수행할 수 있다.
호스트로부터 하나 이상의 기록 데이터들에 의해 서브 페이지 데이터가 구성되면, 제1 ECC 회로(412)는 전술한 실시예들에 따라 서브 페이지 단위의 ECC 인코딩을 처리하고 서브 패리티를 생성할 수 있다. 또한, 서브 페이지 단위의 ECC 인코딩 처리를 통해 생성된 코드워드는 제2 ECC 회로(413)로 제공될 수 있다.
제1 ECC 회로(412)로부터 하나의 페이지를 구성하는 다수 개의 코드워드들이 제2 ECC 회로(413)로 제공되면, 제2 ECC 회로(413)는 페이지 단위의 ECC 인코딩을 처리할 수 있으며, 이에 따라 전술한 실시예들에 따른 페이지 패리티(PAR_P)가 생성될 수 있다.
한편, 데이터 독출 동작시, 전술한 실시예들에 따라 서브 페이지 단위로 데이터가 독출되고, 제1 ECC 회로(412)는 서브 패리티를 이용한 ECC 디코딩 처리를 수행하여 서브 페이지 데이터의 에러를 정정할 수 있다. 서브 페이지 데이터의 에러가 정상적으로 정정된 경우에는 제2 ECC 회로(413)를 이용한 추가의 ECC 디코딩 처리를 수행함이 없이 서브 페이지 데이터가 호스트로 제공될 수 있다. 반면에, 서브 페이지 데이터의 에러가 정정되지 않는 경우에는, 제2 ECC 회로(413)로 하나의 페이지를 구성하는 다른 코드워드들 및 페이지 패리티(PAR_P)가 제공되고, 페이지 단위의 ECC 디코딩 처리가 수행될 수 있다.
도 17에 도시된 실시예의 제1 ECC 회로(412) 및 제2 ECC 회로(413)는 서로 동일한 에러 정정 알고리즘을 이용하여 패리티를 생성하거나, 또는 서로 다른 에러 정정 알고리즘을 이용하여 패리티를 생성할 수도 있을 것이다.
도 18a,b,c는 본 개시의 다양한 실시예들에 따른 페이지 패리티의 생성 예를 나타내는 도면이다.
도 18a를 참조하면, 하나의 페이지는 다수의 서브 페이지들을 포함하고, 일부의 서브 페이지들(예컨대, 제1 및 제2 서브 페이지들)은 4 KB의 사이즈를 가지며, 다른 일부의 서브 페이지(예컨대, 제3 서브 페이지)은 8 KB의 사이즈를 갖는 예가 도시된다. 예시적인 실시예에 따라, 페이지 패리티(PAR_P)는 페이지의 일부의 서브 페이지들에 대응할 수 있고, 일 예로서 4 KB의 사이즈에 해당하는 서브 페이지 데이터들(또는 코드워드들)을 기초로 페이지 패리티(PAR_P)가 생성될 수 있다. 예컨대, 페이지의 다수의 서브 페이지들은 서로 상이한 에러 정정 능력을 가질 수 있고, 페이지 패리티(PAR_P)의 생성에 이용되는 서브 페이지는 상기한 에러 정정 능력을 기초로 선택될 수 있다.
한편, 도 18b는 하나의 페이지에 대응하여 적어도 두 개의 페이지 패리티들(PAR_P1, PAR_P2)이 생성되는 예가 도시되며, 일 예로서 하나의 페이지 내의 제1 내지 제4 서브 페이지들과 관련하여, 제1 페이지 패리티(PAR_P1)는 제1 및 제3 서브 페이지들을 기초로 생성되고, 제2 페이지 패리티(PAR_P2)는 제2 및 제4 서브 페이지들을 기초로 생성되는 예가 도시된다. 서브 페이지 단위의 ECC 디코딩 처리를 통해 제1 서브 페이지 데이터의 에러가 정정되지 않은 경우, 일부의 서브 페이지가 선택적으로 독출됨과 함께 상기한 제1 페이지 패리티(PAR_P1)가 독출되어 제1 서브 페이지 데이터의 에러가 정정될 수 있을 것이다.
한편, 도 18c는 페이지 패리티의 다양한 구현 예를 나타내며, 일 예로서 일부의 서브 페이지들(예컨대, 제1 및 제2 서브 페이지들)에 대해 제1 페이지 패리티(PAR_P1)가 생성되고, 다른 일부의 서브 페이지(예컨대, 제3 및 제4 서브 페이지)에 대해 제2 페이지 패리티(PAR_P2)가 생성될 수 있다. 도 18c의 실시예에서 제1 페이지 패리티(PAR_P1) 및 제2 페이지 패리티(PAR_P2) 각각은 페이지의 일부의 사이즈에 대응하는 패리티일 수 있으나, 에러 정정과 관련하여 전술한 실시예들에 따른 페이지 패리티에 상응할 수 있으므로 제1 페이지 패리티(PAR_P1) 및 제2 페이지 패리티(PAR_P2) 각각은 페이지 패리티로 지칭된다.
한편, 페이지(예컨대, 제1 및 제4 서브 페이지들)에 대해 제3 페이지 패리티(PAR_P3)가 생성될 수 있다. 상기와 같은 구현 예에 따라, 어느 하나의 페이지에서 일부의 서브 페이지들(예컨대, 제1 및 제2 서브 페이지들) 단위로 페이지 패리티에 기초한 에러 정정과, 다른 일부의 서브 페이지들(예컨대, 제3 및 제4 서브 페이지들) 단위로 페이지 패리티에 기초한 에러 정정이 별개로 수행될 수 있고, 전술한 실시예들에 따른 에러 정정 동작이 효율적으로 수행될 수 있다. 또한, 어느 하나의 페이지 패리티를 이용하여 페이지의 일부 단위에 대해 에러 정정이 수행되지 않는 경우에는, 페이지의 다른 단위와 상기한 제3 페이지 패리티(PAR_P3)를 이용한 에러 정정 동작이 재차 수행될 수 있으므로, 에러 정정의 정확도가 향상될 수 있다.
도 19a,b,c는 메모리 컨트롤러와 메모리 장치의 인터페이스의 일 예를 나타내는 도면이다.
도 19a를 참조하면, 메모리 시스템(20)은 메모리 장치 및 메모리 컨트롤러를 포함하고, 메모리 장치는 메모리 인터페이스 회로(21)를 포함하고, 메모리 컨트롤러는 컨트롤러 인터페이스 회로(22)를 포함할 수 있다. 메모리 인터페이스 회로(21)는 제1 내지 제8 핀들(P11~P18)을 포함하고, 컨트롤러 인터페이스 회로(22)는 제9 내지 제16 핀들(P21~P28)을 포함할 수 있다.
본 개시의 예시적인 실시예에 따라, 프로그램과 독출의 단위가 서로 다름에 따라 프로그램 동작과 독출 동작에서 메모리 인터페이스 회로(21)와 컨트롤러 인터페이스 회로(22) 사이에서 송수신되는 데이터의 사이즈가 상이할 수 있다. 도 19b는 프로그램 동작에서의 신호 파형 예를 나타내고, 도 19c는 독출 동작에서의 신호 파형 예를 나타낸다. 도 19b,c에서는 설명의 편의 상 데이터(DQ)의 송수신의 예가 도시되었으나, 프로그램 및 독출 동작에서 커맨드와 어드레스가 전송될 수도 있으며, 일 구현 예에 따라 커맨드와 어드레스는 데이터(DQ) 버스를 통해 전송될 수도 있을 것이다.
도 19b,c를 참조하면, 칩 인에이블 신호(nCE)가 활성화됨에 따라(예를 들어, 로우 레벨), 각종 신호들이 메모리 인터페이스 회로(21)와 컨트롤러 인터페이스 회로(22) 사이에서 송수신될 수 있다. 일 예로서, 기록 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드 래치 인에이블 신호(CLE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 커맨드가 메모리 인터페이스 회로(21)로 제공될 수 있다. 또한, 기록 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 어드레스가 메모리 인터페이스 회로(21)로 제공될 수 있다. 즉, 기록 인에이블 신호(nWE)는 커맨드 및 어드레스가 전송되는 구간에서 토글할 수 있다. 도 19b,c에 도시된 예에서는, 설명의 편의상 커맨드 및 어드레스의 전송 동작이 생략되므로, 기록 인에이블 신호(nWE)의 토글링은 도시되지 않을 수 있다. 이와 함께, 메모리 인터페이스 회로(21)는 데이터 스트로브 신호(DQS)를 수신하고 이를 기초로 데이터를 수신할 수 있다.
한편, 독출(또는, 데이터 출력) 동작에서, 메모리 인터페이스 회로(21)는 토글하는 읽기 인에이블 신호(nRE)를 수신하고, 읽기 인에이블 신호(nRE)의 토글링에 기초하여 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 또한, 메모리 인터페이스 회로(21)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터(DQ)를 컨트롤러 인터페이스 회로(22)로 전송할 수 있다.
한편, 프로그램 및 독출 동작에서 메모리 인터페이스 회로(21)와 컨트롤러 인터페이스 회로(22) 사이에서 레디/비지 출력 신호(nR/B)가 전송될 수 있고, 메모리 장치가 비지 상태인 경우(즉, 메모리 장치에서 내부 동작들이 수행 중인 경우), 메모리 인터페이스 회로(21)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러로 전송할 수 있다. 예를 들어, 메모리 장치가 페이지 버퍼에 저장된 데이터를 페이지에 기록하거나, 페이지로부터 독출된 데이터를 페이지 버퍼에 저장하는 동안, 메모리 인터페이스 회로(21)는 비지 상태(예를 들어, 로우 레벨)를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러로 전송할 수 있다.
한편, 도 19b,c에 도시된 바와 같이 프로그램 동작에서 데이터는 데이터 스트로브 신호(DQS)에 동기하여 페이지 단위의 사이즈의 데이터(D0~DMN)가 메모리 인터페이스 회로(21)로 전송되는 반면에, 독출 동작에서 데이터(DQ)는 데이터 스트로브 신호(DQS)에 동기하여 서브 페이지 단위의 사이즈의 데이터(D0~DM)에 해당하는 사이즈가 컨트롤러 인터페이스 회로(22)로 전송될 수 있다. 즉, 도 19b,c에 도시된 파형 예에 따라 각종 신호들의 전송과 함께 데이터가 메모리 인터페이스 회로(21)와 컨트롤러 인터페이스 회로(22) 사이에서 송수신될 수 있고, 본 개시의 예시적인 실시예에 따라 프로그램 동작에서의 데이터(D0~DMN)는 독출 동작에서의 데이터(D0~DM)에 비해 그 사이즈가 클 수 있다. 한편, 도 19c에 도시된 예에서는, 독출 동작에서 하나의 서브 페이지 단위의 데이터(D0~DM)가 출력된 후, 메모리 컨트롤러가 이에 대해 ECC 디코딩 처리를 수행하며, 에러가 정정되지 않은 경우 이를 나타내는 에러 정보(ERR)를 메모리 장치로 제공하는 예가 도시된다. 예컨대, 제1 서브 페이지의 에러 정정이 실패하고, 메모리 장치는 활성화된 에러 정보(ERR)를 수신함에 따라 페이지 단위에 속하는 다른 서브 페이지(예컨대, 제2 내지 제N 서브 페이지)의 데이터들을 메모리 컨트롤러로 출력할 수 있고, 전술한 실시예들에 따라 메모리 컨트롤러는 특정 서브 페이지의 에러를 정정할 수 있다. 또한, 도 19c에서는 별도의 에러 정보(ERR)가 도시되었으나, 별도의 에러 정보(ERR)가 전송됨이 없이 도 19b,c에 도시된 각종 신호들의 조합을 기초로 에러가 발생되었음이 메모리 장치로 통보될 수도 있을 것이다.
도 20은 본 개시의 실시예들에 따른 메모리 장치를 SSD 시스템(500)에 적용한 예를 나타내는 블록도이다.
도 20을 참조하면, 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 내지 도 19를 참조하여 상술된 실시예들을 이용하여 구현될 수 있다. 즉, SSD(520)에 구비되는 SSD 컨트롤러(521)는 전술한 실시예들에 따른 ECC 회로(521_1)를 포함할 수 있고, 서브 페이지 단위의 ECC 인코딩/디코딩 처리 및 페이지 단위의 ECC 인코딩/디코딩 처리를 수행할 수 있고, 메모리 장치들(523_1 ~ 523_n) 각각은 페이지 단위의 프로그램을 수행하고 서브 페이지 단위의 독출을 수행할 수 있을 것이다.
도 21은 본 개시의 일 실시예에 따른 메모리 장치를 나타내는 단면도이다.
도 21을 참조하면, 메모리 장치(600)는 C2C(chip to chip) 구조일 수 있다. C2C 구조는 제1 웨이퍼 상에 셀 영역(CELL)을 포함하는 상부 칩을 제작하고, 제1 웨이퍼와 다른 제2 웨이퍼 상에 주변 회로 영역(PERI)을 포함하는 하부 칩을 제작한 후, 상기 상부 칩과 상기 하부 칩을 본딩(bonidng) 방식에 의해 서로 연결하는 것을 의미할 수 있다. 일례로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈을 서로 전기적으로 연결하는 방식을 의미할 수 있다. 예컨대, 상기 본딩 메탈이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-Cu 본딩 방식일 수 있으며, 상기 본딩 메탈은 알루미늄 혹은 텅스텐으로도 형성될 수 있다. 도 1 내지 도 20에 예시된 실시예들은 메모리 장치(600)에 구현될 수 있고, 예를 들어, 도 1 내지 도 20을 참조하여 상술된 페이지 버퍼 회로는 주변 회로 영역(PERI)에 배치될 수 있다.
메모리 장치(600)의 주변 회로 영역(PERI)과 셀 영역(CELL) 각각은 외부 패드 본딩 영역(PA), 워드라인 본딩 영역(WLBA), 및 비트라인 본딩 영역(BLBA)을 포함할 수 있다. 주변 회로 영역(PERI)은 제1 기판(710), 층간 절연층(715), 제1 기판(710)에 형성되는 복수의 회로 소자들(720a, 720b, 720c), 복수의 회로 소자들(720a, 720b, 720c) 각각과 연결되는 제1 메탈층(730a, 730b, 730c), 제1 메탈층(730a, 730b, 730c) 상에 형성되는 제2 메탈층(740a, 740b, 740c)을 포함할 수 있다. 일 실시예에서, 제1 메탈층(730a, 730b, 730c)은 상대적으로 저항이 높은 텅스텐으로 형성될 수 있고, 제2 메탈층(740a, 740b, 740c)은 상대적으로 저항이 낮은 구리로 형성될 수 있다.
본 명세서에서는 제1 메탈층(730a, 730b, 730c)과 제2 메탈층(740a, 740b, 740c)만 도시되고 설명되나, 이에 한정되는 것은 아니고, 제2 메탈층(740a, 740b, 740c) 상에 적어도 하나 이상의 메탈층이 더 형성될 수도 있다. 제2 메탈층(740a, 740b, 740c)의 상부에 형성되는 하나 이상의 메탈층 중 적어도 일부는, 제2 메탈층(740a, 740b, 740c)을 형성하는 구리보다 더 낮은 저항을 갖는 알루미늄 등으로 형성될 수 있다.
층간 절연층(715)은 복수의 회로 소자들(720a, 720b, 720c), 제1 메탈층(730a, 730b, 730c), 및 제2 메탈층(740a, 740b, 740c)을 커버하도록 제1 기판(710) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.
워드라인 본딩 영역(WLBA)의 제2 메탈층(740b) 상에 하부 본딩 메탈(771b, 772b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(771b, 772b)은 셀 영역(CELL)의 상부 본딩 메탈(871b, 872b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있으며, 하부 본딩 메탈(771b, 772b)과 상부 본딩 메탈(871b, 872b)은 알루미늄, 구리, 혹은 텅스텐 등으로 형성될 수 있다. 셀 영역(CELL)의 상부 본딩 메탈(871b, 872b)은 제1 메탈 패드들이라고 지칭될 수 있고, 주변 회로 영역(PERI)의 하부 본딩 메탈(771b, 772b)은 제2 메탈 패드들이라고 지칭할 수 있다.
셀 영역(CELL)은 적어도 하나의 메모리 블록을 제공할 수 있다. 셀 영역(CELL)은 제2 기판(810)과 공통 소스 라인(820)을 포함할 수 있다. 제2 기판(810) 상에는, 제2 기판(810)의 상면에 수직하는 방향(VD)을 따라 복수의 워드라인들(831-838; 830)이 적층될 수 있다. 워드라인들(830)의 상부 및 하부 각각에는 스트링 선택 라인들과 접지 선택 라인이 배치될 수 있으며, 스트링 선택 라인들과 접지 선택 라인 사이에 복수의 워드라인들(830)이 배치될 수 있다.
비트라인 본딩 영역(BLBA)에서, 채널 구조체(CH)는 제2 기판(810)의 상면에 수직하는 방향으로 연장되어 워드라인들(830), 스트링 선택 라인들, 및 접지 선택 라인을 관통할 수 있다. 채널 구조체(CH)는 데이터 저장층, 채널층, 및 매립 절연층 등을 포함할 수 있으며, 채널층은 제1 메탈층(850c) 및 제2 메탈층(860c)과 전기적으로 연결될 수 있다. 예컨대, 제1 메탈층(850c)은 비트라인 컨택일 수 있고, 제2 메탈층(860c)은 비트라인일 수 있다. 일 실시예에서, 비트라인은 제2 기판(810)의 상면에 평행한 제1 수평 방향(HD1)을 따라 연장될 수 있다.
도 21에 도시한 일 실시예에서, 채널 구조체(CH)와 비트라인 등이 배치되는 영역이 비트라인 본딩 영역(BLBA)으로 정의될 수 있다. 비트라인은 비트라인 본딩 영역(BLBA)에서 주변 회로 영역(PERI)에서 페이지 버퍼(893)를 제공하는 회로 소자들(720c)과 전기적으로 연결될 수 있다. 일 예로서, 비트라인은 주변 회로 영역(PERI)에서 상부 본딩 메탈(871c, 872c)과 연결되며, 상부 본딩 메탈(871c, 872c)은 페이지 버퍼(893)의 회로 소자들(720c)에 연결되는 하부 본딩 메탈(771c, 772c)과 연결될 수 있다. 본 발명의 예시적인 실시예에서, 페이지 버퍼(893)에 페이지 단위의 기록 데이터가 저장됨에 따라 페이지 단위로 프로그램이 수행되고, 페이지 버퍼(893)에 서브 페이지 단위의 독출 데이터가 저장됨에 따라 서브 페이지 단위로 데이터가 출력될 수 있다. 또한, 프로그램 동작과 독출 동작에서, 비트라인을 통해 함께 전달되는 데이터의 단위는 서로 상이할 수 있다.
워드라인 본딩 영역(WLBA)에서, 워드라인들(830)은 제2 기판(810)의 상면에 평행한 제2 수평 방향(HD2)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(841-847; 840)와 연결될 수 있다. 워드라인들(830)과 셀 컨택 플러그들(840)은, 제2 수평 방향을 따라 워드라인들(830) 중 적어도 일부가 서로 다른 길이로 연장되어 제공하는 패드들에서 서로 연결될 수 있다. 워드라인들(830)에 연결되는 셀 컨택 플러그들(840)의 상부에는 제1 메탈층(850b)과 제2 메탈층(860b)이 차례로 연결될 수 있다. 셀 컨택 플러그들(840)은 워드라인 본딩 영역(WLBA)에서 셀 영역(CELL)의 상부 본딩 메탈(871b, 872b)과 주변 회로 영역(PERI)의 하부 본딩 메탈(771b, 772b)을 통해 주변 회로 영역(PERI)과 연결될 수 있다.
셀 컨택 플러그들(840)은 주변 회로 영역(PERI)에서 로우 디코더(894)를 제공하는 회로 소자들(720b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더(894)를 제공하는 회로 소자들(720b)의 동작 전압은, 페이지 버퍼(893)를 제공하는 회로 소자들(720c)의 동작 전압과 다를 수 있다. 일례로, 페이지 버퍼(893)를 제공하는 회로 소자들(720c)의 동작 전압이 로우 디코더(894)를 제공하는 회로 소자들(720b)의 동작 전압보다 클 수 있다.
외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그(880)가 배치될 수 있다. 공통 소스 라인 컨택 플러그(880)는 금속, 금속 화합물, 또는 폴리실리콘 등의 도전성 물질로 형성되며, 공통 소스 라인(820)과 전기적으로 연결될 수 있다. 공통 소스 라인 컨택 플러그(880) 상부에는 제1 메탈층(850a)과 제2 메탈층(860a)이 차례로 적층될 수 있다. 일례로, 공통 소스 라인 컨택 플러그(880), 제1 메탈층(850a), 및 제2 메탈층(860a)이 배치되는 영역은 외부 패드 본딩 영역(PA)으로 정의될 수 있다.
한편 외부 패드 본딩 영역(PA)에는 입출력 패드들(705, 805)이 배치될 수 있다. 도 21을 참조하면, 제1 기판(710)의 하부에는 제1 기판(710)의 하면을 덮는 하부 절연막(701) 이 형성될 수 있으며, 하부 절연막(701) 상에 제1 입출력 패드(705)가 형성될 수 있다. 제1 입출력 패드(705)는 제1 입출력 컨택 플러그(703)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(720a, 720b, 720c) 중 적어도 하나와 연결되며, 하부 절연막(701)에 의해 제1 기판(710)과 분리될 수 있다. 또한, 제1 입출력 컨택 플러그(703)와 제1 기판(710) 사이에는 측면 절연막이 배치되어 제1 입출력 컨택 플러그(703)와 제1 기판(710)을 전기적으로 분리할 수 있다.
도 21을 참조하면, 제2 기판(810)의 상부에는 제2 기판(810)의 상면을 덮는 상부 절연막(801)이 형성될 수 있으며, 상부 절연막(801) 상에 제2 입출력 패드(805)가 배치될 수 있다. 제2 입출력 패드(805)는 제2 입출력 컨택 플러그(803)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(720a, 720b, 720c) 중 적어도 하나와 연결될 수 있다.
실시예들에 따라, 제2 입출력 컨택 플러그(803)가 배치되는 영역에는 제2 기판(810) 및 공통 소스 라인(820) 등이 배치되지 않을 수 있다. 또한, 제2 입출력 패드(805)는 제3 방향(Z축 방향)에서 워드라인들(830)과 오버랩되지 않을 수 있다. 도 20을 참조하면, 제2 입출력 컨택 플러그(803)는 제2 기판(810)의 상면에 평행한 방향에서 제2 기판(810)과 분리되며, 셀 영역(CELL)의 층간 절연층(815)을 관통하여 제2 입출력 패드(805)에 연결될 수 있다.
실시예들에 따라, 제1 입출력 패드(705)와 제2 입출력 패드(805)는 선택적으로 형성될 수 있다. 일례로, 메모리 장치(600)는 제1 기판(710)의 상부에 배치되는 제1 입출력 패드(705)만을 포함하거나, 또는 제2 기판(810)의 상부에 배치되는 제2 입출력 패드(805)만을 포함할 수 있다. 또는, 메모리 장치(600)가 제1 입출력 패드(705)와 제2 입출력 패드(805)를 모두 포함할 수도 있다.
셀 영역(CELL)과 주변 회로 영역(PERI) 각각에 포함되는 외부 패드 본딩 영역(PA)과 비트라인 본딩 영역(BLBA) 각각에는 최상부 메탈층의 메탈 패턴이 더미 패턴(dummy pattern)으로 존재하거나, 최상부 메탈층이 비어있을 수 있다.
메모리 장치(600)는 외부 패드 본딩 영역(PA)에서, 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(872a)에 대응하여 주변 회로 영역(PERI)의 최상부 메탈층에 셀 영역(CELL)의 상부 메탈 패턴(872a)과 동일한 형태의 하부 메탈 패턴(773a)을 형성할 수 있다. 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(773a)은 주변 회로 영역(PERI)에서 별도의 콘택과 연결되지 않을 수 있다. 이와 유사하게, 외부 패드 본딩 영역(PA)에서 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴에 대응하여 셀 영역(CELL)의 상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴과 동일한 형태의 상부 메탈 패턴을 형성할 수도 있다.
워드라인 본딩 영역(WLBA)의 제2 메탈층(740b) 상에는 하부 본딩 메탈(771b, 772b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(771b, 772b)은 셀 영역(CELL)의 상부 본딩 메탈(871b, 872b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있다.
또한, 비트라인 본딩 영역(BLBA)에서, 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(752)에 대응하여 셀 영역(CELL)의 최상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴(752)과 동일한 형태의 상부 메탈 패턴(892)을 형성할 수 있다. 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(892) 상에는 콘택을 형성하지 않을 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 다수의 페이지들을 포함하는 셀 어레이; 및
    상기 셀 어레이에 대한 프로그램 및 독출 동작을 제어하는 제어 로직을 구비하고,
    상기 제어 로직은,
    페이지 단위의 프로그램 명령에 응답하여, 상기 다수의 페이지들 중 제1 페이지에 제1 내지 제N 코드워드들을 저장함과 함께, 상기 제1 내지 제N 코드워드들에 공통하게 대응되는 페이지 패리티를 상기 제1 페이지에 프로그램하고(단, N은 2 이상의 정수),
    서브 페이지 단위의 독출 명령에 응답하여, 상기 제1 내지 제N 코드워드들 중 제1 코드워드를 선택적으로 독출하도록 상기 프로그램 및 독출 동작을 제어하며,
    제1 코드워드는 제1 서브 페이지 데이터와 이에 대응하는 제1 서브 패리티를 포함하고, 상기 제1 서브 패리티는 코드워드 별로 독립하게 수행되는 ECC 디코딩 처리를 통해 상기 제1 서브 페이지 데이터의 에러를 정정하는 정보를 포함하는 메모리 장치.
  2. 제1항에 있어서,
    상기 독출 명령에 응답하여 상기 제1 코드워드를 독출하여 상기 메모리 컨트롤러로 출력하고,
    상기 제1 서브 페이지 데이터의 에러가 정정되지 않은 경우, 상기 제2 내지 제N 코드워드들 및 상기 페이지 패리티를 더 독출하여 상기 메모리 컨트롤러로 출력하는 것을 특징으로 하는 메모리 장치.
  3. 제1항에 있어서,
    메모리 컨트롤러로부터의 상기 페이지 단위의 프로그램 명령에 응답하여, 상기 제1 내지 제N 코드워드들 및 페이지 패리티를 저장하고, 저장된 상기 제1 내지 제N 코드워드들 및 페이지 패리티를 함께 상기 셀 어레이로 제공하는 페이지 버퍼를 더 구비하는 것을 특징으로 하는 메모리 장치.
  4. 제3항에 있어서,
    상기 페이지 버퍼는 상기 서브 페이지 단위의 독출 명령에 응답하여 독출된 상기 제1 코드워드를 저장하고,
    상기 페이지 버퍼에 저장된 제1 코드워드가 상기 서브 페이지 단위로서 상기 메모리 컨트롤러로 출력되는 것을 특징으로 하는 메모리 장치.
  5. 제1항에 있어서,
    상기 서브 페이지에 상응하는 단위로서 제공되는 호스트로부터의 기록 요청 및 독출 요청에 응답하여 상기 프로그램 및 상기 독출이 수행되고,
    상기 제1 내지 제N 코드워드들 각각은 상기 호스트로부터의 각각의 기록 요청에 대응하는 기록 데이터를 포함하고, 다수 개의 기록 요청들에 대응하여 하나의 프로그램 동작을 통해 상기 제1 내지 제N 코드워드들이 상기 제1 페이지에 프로그램되고, 하나의 독출 요청에 대응하여 하나의 독출 동작을 통해 상기 제1 코드워드가 상기 호스트로 제공되는 것을 특징으로 하는 메모리 장치.
  6. 제1항에 있어서,
    상기 셀 어레이의 각각의 메모리 셀은 M 개의 비트들을 저장함에 따라, 하나의 워드라인에 연결되는 다수의 메모리 셀들은 상기 제1 페이지와 함께 제2 내지 제M 페이지들을 구성하며(단, M은 2 이상의 정수),
    상기 제1 내지 제N 서브 페이지들 및 상기 페이지 패리티는 상기 제1 내지 제M 페이지들 중 어느 하나의 페이지에 저장되는 것을 특징으로 하는 메모리 장치.
  7. 제1항에 있어서,
    상기 셀 어레이의 각각의 메모리 셀은 M 개의 비트들을 저장함에 따라, 하나의 워드라인에 연결되는 다수의 메모리 셀들은 상기 제1 페이지와 함께 제2 내지 제M 페이지들을 구성하며(단, M은 2 이상의 정수),
    상기 페이지 패리티는 제(N+1) 내지 제K 코드워드들에 더 대응되며(단, K는 N보다 큰 정수),
    상기 제(N+1) 내지 제K 코드워드들은 상기 제2 내지 제M 페이지들에 분산되어 저장되는 것을 특징으로 하는 메모리 장치.
  8. 제1항에 있어서,
    상기 페이지 패리티는, 상기 제1 내지 제N 코드워드들과 관련하여 저밀도 패리티 코드(LDPC)에 기반하는 정보를 포함하는 것을 특징으로 하는 메모리 장치.
  9. 제1항에 있어서,
    상기 페이지 패리티는 상기 제1 내지 제N 코드워드들 각각에 대해 소정의 연산을 통해 산출된 제1 내지 제N 추가 패리티들을 이용하여 생성된 정보이고,
    상기 제1 내지 제N 추가 패리티는 상기 셀 어레이에 저장되지 않는 것을 특징으로 하는 메모리 장치.
  10. 다수의 페이지들을 포함하는 셀 어레이를 포함하는 메모리 장치; 및
    상기 메모리 장치와 통신하는 메모리 인터페이스와, 서브 페이지 데이터에 대한 제1 ECC(Error Correction Code) 인코딩 처리를 통해 서브 패리티를 포함하는 코드워드를 생성하고, 상기 제1 ECC 인코딩 처리를 통해 생성된 제1 내지 제N 코드워드들에 대한 제2 ECC 인코딩 처리를 통해 페이지 패리티를 생성하는 ECC 회로를 포함하는 메모리 컨트롤러를 구비하고,
    상기 메모리 컨트롤러는,
    호스트로부터의 기록 요청에 응답하여, 페이지 단위의 프로그램 명령을 상기 메모리 장치로 전송하여 상기 제1 내지 제N 코드워드들 및 상기 페이지 패리티를 상기 셀 어레이의 제1 페이지에 함께 프로그램하고(단, N은 2 이상의 정수),
    상기 호스트로부터 독출 요청에 응답하여, 서브 페이지 단위의 독출 명령을 상기 메모리 장치로 전송하여 상기 제1 코드워드를 선택적으로 독출하는 메모리 시스템.
  11. 제10항에 있어서,
    상기 메모리 컨트롤러는 상기 호스트로부터 상기 서브 페이지 이하의 단위의 기록 요청을 수신하고,
    상기 제1 내지 제N 코드워드들은 상기 호스트로부터의 다수의 기록 요청들에 대응하는 다수의 기록 데이터들을 포함하는 것을 특징으로 하는 메모리 시스템.
  12. 제10항에 있어서,
    상기 제1 코드워드는 제1 서브 페이지 데이터와 이에 대응하는 제1 서브 패리티를 포함하고, 상기 제1 서브 페이지 데이터는 코드워드 별로 독립하게 수행되는 ECC 디코딩 처리를 통해 에러가 정정되는 것을 특징으로 하는 메모리 시스템.
  13. 제12항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1 서브 페이지 데이터의 에러가 정정되지 않은 경우 상기 제2 내지 제N 코드워드들 및 상기 페이지 패리티를 더 독출하고, 상기 독출된 상기 제2 내지 제N 코드워드들 및 상기 페이지 패리티를 이용하여 상기 제1 서브 페이지 데이터의 에러를 정정하는 것을 특징으로 하는 메모리 시스템.
  14. 제12항에 있어서,
    상기 메모리 컨트롤러는, 상기 제1 내지 제N 코드워드들 각각에 대해 소정의 연산을 수행하여 제1 내지 제N 추가 패리티를 산출하고, 상기 생성된 제1 내지 제N 추가 패리티를 이용하여 페이지 패리티를 생성하며,
    상기 제1 내지 제N 추가 패리티는 상기 메모리 장치에 저장되지 않는 것을 특징으로 하는 메모리 시스템.
  15. 제12항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1 서브 페이지 데이터에 에러가 발생된 경우, 상기 제2 내지 제N 코드워드들을 독출하여 상기 제2 내지 제N 추가 패리티를 산출하고, 상기 제2 내지 제N 추가 패리티와 상기 페이지 패리티에 기초하여 상기 제1 추가 패리티를 산출하며,
    상기 산출된 제1 추가 패리티를 이용하여 상기 제1 서브 페이지 데이터의 에러를 정정하는 것을 특징으로 하는 메모리 시스템.
  16. 호스트로부터 다수의 기록 요청들 및 이에 대응하는 다수의 기록 데이터들을 수신하는 단계;
    하나 이상의 기록 데이터를 포함하는 서브 페이지 단위의 제1 ECC 인코딩 처리를 수행하여 코드워드를 생성하는 단계;
    상기 제1 ECC 인코딩 처리를 통해 생성된 제1 내지 제N 코드워드들을 기초로 ECC 인코딩 처리를 수행하여 페이지 패리티를 생성하는 단계(단, N은 2 이상의 정수);
    페이지 단위의 프로그램에 따라, 상기 제1 내지 제N 코드워드들 및 상기 페이지 패리티를 메모리 장치의 제1 페이지에 프로그램하는 단계; 및
    상기 호스트로부터의 독출 요청에 응답하여, 상기 제1 페이지로부터 상기 제1 코드워드를 선택적으로 독출하는 단계를 구비하고,
    상기 제1 코드워드는 제1 서브 페이지 데이터와 이에 대응하는 제1 서브 패리티를 포함하고, 상기 제1 서브 페이지 데이터는 코드워드 별로 독립하게 수행되는 ECC 디코딩 처리를 통해 에러가 정정되는 메모리 시스템의 동작방법.
  17. 제16항에 있어서,
    상기 호스트로부터의 다수의 기록 요청들에 대응하는 다수의 기록 데이터들을 포함하는 페이지 단위로서 상기 프로그램이 수행되고,
    상기 호스트로부터의 하나의 독출 요청에 대응하여 상기 제1 서브 페이지 데이터가 상기 호스트로 출력되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  18. 제17항에 있어서,
    상기 메모리 시스템은 메모리 컨트롤러와 메모리 장치를 포함하고,
    상기 호스트로부터의 하나의 독출 요청에 대응하여 상기 제1 내지 제N 코드워드들 및 상기 페이지 패리티를 포함하는 페이지 단위의 데이터가 독출되어 상기 메모리 장치의 페이지 버퍼에 저장되고,
    상기 페이지 버퍼에 저장된 상기 제1 내지 제N 코드워드들 중 상기 제1 코드워드가 선택적으로 상기 메모리 컨트롤러로 출력되는 것을 특징으로 하는 메모리 시스템의 동작방법.
  19. 제18항에 있어서,
    상기 제1 서브 페이지 데이터의 에러가 정정되지 않은 경우, 상기 페이지 버퍼에 저장된 상기 제2 내지 제N 코드워드들 및 상기 페이지 패리티가 상기 메모리 컨트롤러로 더 출력되고,
    상기 독출된 제2 내지 제N 코드워드들 중 적어도 일부 및 상기 페이지 패리티를 이용하여 상기 제1 서브 페이지 데이터의 에러를 정정하는 단계를 더 구비하는 것을 특징으로 하는 메모리 시스템의 동작방법.
  20. 제19항에 있어서,
    상기 제2 내지 제N 코드워드들에 대해 ECC 디코딩 처리가 수행되고, 상기 제2 내지 제N 코드워드들 중 에러가 존재하지 않거나 에러가 정정된 코드워드들이 상기 제1 서브 페이지 데이터의 에러를 정정하기 위해 선택적으로 이용되는 것을 특징으로 하는 메모리 시스템의 동작방법.

KR1020200138599A 2020-10-23 2020-10-23 패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템 KR20220054096A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200138599A KR20220054096A (ko) 2020-10-23 2020-10-23 패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템
US17/244,195 US11562803B2 (en) 2020-10-23 2021-04-29 Memory device storing parity and memory system including the same
EP21180131.1A EP3989070B1 (en) 2020-10-23 2021-06-17 Memory device storing parity and memory system including the same
CN202111079168.2A CN114496054A (zh) 2020-10-23 2021-09-15 存储奇偶性的存储器设备和包括其的存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200138599A KR20220054096A (ko) 2020-10-23 2020-10-23 패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20220054096A true KR20220054096A (ko) 2022-05-02

Family

ID=76553479

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200138599A KR20220054096A (ko) 2020-10-23 2020-10-23 패리티를 저장하는 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (4)

Country Link
US (1) US11562803B2 (ko)
EP (1) EP3989070B1 (ko)
KR (1) KR20220054096A (ko)
CN (1) CN114496054A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022188572A (ja) * 2021-06-09 2022-12-21 キオクシア株式会社 半導体装置、メモリシステム、及びチップ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7428610B2 (en) * 2006-02-14 2008-09-23 Atmel Corporation Writing to flash memory
JP2008077810A (ja) 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
US9032269B2 (en) 2011-07-22 2015-05-12 Sandisk Technologies Inc. Systems and methods of storing data
US8977937B2 (en) 2012-03-16 2015-03-10 Lsi Corporation Systems and methods for compression driven variable rate decoding in a data processing system
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9124300B2 (en) 2013-02-28 2015-09-01 Sandisk Technologies Inc. Error correction coding in non-volatile memory
US9654144B2 (en) 2014-09-30 2017-05-16 Micron Technology, Inc. Progressive effort decoder architecture
KR101711056B1 (ko) 2015-04-02 2017-02-28 한국외국어대학교 연구산학협력단 에러 정정 코드 생성방법 및 장치
KR20170001777A (ko) 2015-06-25 2017-01-05 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US9984771B2 (en) 2016-01-11 2018-05-29 Sandisk Technologies Llc Multi-level raid-type encoding with random correction capability
KR20200138599A (ko) 2019-06-01 2020-12-10 오유미 위험상황을 빠르게 알아채는 마스크

Also Published As

Publication number Publication date
EP3989070B1 (en) 2023-09-27
CN114496054A (zh) 2022-05-13
US11562803B2 (en) 2023-01-24
EP3989070A1 (en) 2022-04-27
US20220130485A1 (en) 2022-04-28

Similar Documents

Publication Publication Date Title
US9647697B2 (en) Method and system for determining soft information offsets
US10725906B2 (en) Storage device that restores data lost during a subsequent data write
US11309051B2 (en) Memory system that uses NAND flash memory as a memory chip
US20160104540A1 (en) Non-volatile memory device and operating method thereof
US10692579B2 (en) Memory controller and operating method thereof
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
KR20180062246A (ko) 재분배기를 포함하는 메모리 시스템
US20150332783A1 (en) Method of operating semiconductor device
CN111798910A (zh) 存储装置及其操作方法
US11815982B2 (en) Operating method of a nonvolatile memory device for programming multipage data
CN112951301A (zh) 存储系统的操作方法
CN108461099B (zh) 半导体存储装置
KR102608815B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20170025714A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
EP3989070B1 (en) Memory device storing parity and memory system including the same
US10102071B2 (en) Storage device that restores data lost during a subsequent data write
KR20170110408A (ko) 메모리 장치 및 이의 동작 방법
KR20170089069A (ko) 메모리 시스템 및 그의 동작방법
CN116206653A (zh) 控制非易失性存储器件的控制器及其操作方法
US11216363B2 (en) Controller to control semiconductor memory device to perform garbage collection operation and method of operating the same
CN112395128A (zh) 存储器控制器的操作方法、存储设备及其操作方法
US20230015496A1 (en) Nonvolatile memory device, controller for controlling the same, storage device having the same, and method of operating the same
KR20230166453A (ko) 컨트롤러 및 그 동작 방법
KR20230071013A (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR20230075645A (ko) 반도체 장치 내 신호 간섭을 줄이기 위한 장치 및 방법