KR102505857B1 - 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법 - Google Patents

스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법 Download PDF

Info

Publication number
KR102505857B1
KR102505857B1 KR1020220004333A KR20220004333A KR102505857B1 KR 102505857 B1 KR102505857 B1 KR 102505857B1 KR 1020220004333 A KR1020220004333 A KR 1020220004333A KR 20220004333 A KR20220004333 A KR 20220004333A KR 102505857 B1 KR102505857 B1 KR 102505857B1
Authority
KR
South Korea
Prior art keywords
strong error
read
memory
information
error information
Prior art date
Application number
KR1020220004333A
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/839,369 priority Critical patent/US11886293B2/en
Priority to CN202211000588.1A priority patent/CN116126582A/zh
Priority to EP22191565.5A priority patent/EP4181130A1/en
Application granted granted Critical
Publication of KR102505857B1 publication Critical patent/KR102505857B1/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/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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러의 동작방법은, 노멀 독출 레벨을 이용하여 모니터링 단위의 메모리 셀들로부터 독출된 데이터를 기초로 하드 디시전 정보를 수집하는 단계와, 상기 노멀 독출 레벨과 상이한 하나 이상의 오프셋 독출 레벨들을 이용하여 상기 모니터링 단위로부터 독출된 데이터를 기초로 소프트 디시전 정보를 수집하는 단계와, 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 판단된 제1 스트롱 에러 정보를 상기 메모리 컨트롤러 내의 메모리에 저장하는 단계 및 상기 제1 스트롱 에러 정보가 저장된 이후, 상기 모니터링 단위에 대해 판단된 제2 스트롱 에러 정보를 상기 메모리에 업데이트하는 단계를 구비하고, 호스트로부터의 독출 요청에 응답하여 독출된 데이터의 에러를 정정함에 있어서, 상기 제2 스트롱 에러 정보가 이용되는 것을 특징으로 한다.

Description

스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법{Memory Controller managing strong error information and Operating Method thereof}
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것이며, 더욱 상세하게는, 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법에 관한 것이다.
불휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 메모리 시스템으로서, SSD(Solid State Drive) 및 메모리 카드 등의 플래시 메모리를 포함하는 플래시 메모리 시스템(또는, 스토리지 장치)가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
플래시 메모리의 저장 용량이 증가하고 각각의 메모리 셀 당 저장되는 비트의 수가 증가함에 따라, 메모리 셀들의 문턱전압 산포들의 개수가 증가할 수 있다. 일 예로서, 각각의 메모리 셀이 4 비트 또는 5 비트 이상의 데이터를 저장하는 경우에는 메모리 셀들의 문턱전압 산포들의 간격이 매우 좁아지게 되고, 이에 따라 소정의 단위(예컨대, 에러 정정 단위) 당 발생되는 에러의 개수가 증가될 수 있다. 특히, 문턱전압의 레벨이 상대적으로 크게 변동함에 따라 스트롱 에러를 갖는 메모리 셀들이 많아지는 경우에는 에러 정정이 불가능하여 데이터 신뢰성이 저하될 수 있는 문제가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 주기적 또는 비주기적으로 스트롱 에러 정보를 모니터링하고, 이를 기초로 데이터의 에러를 정정함으로써 데이터 신뢰성을 향상할 수 있는 메모리 컨트롤러 및 그 동작방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러의 동작방법은, 노멀 독출 레벨을 이용하여 모니터링 단위의 메모리 셀들로부터 독출된 데이터를 기초로 하드 디시전 정보를 수집하는 단계와, 상기 노멀 독출 레벨과 상이한 하나 이상의 오프셋 독출 레벨들을 이용하여 상기 모니터링 단위로부터 독출된 데이터를 기초로 소프트 디시전 정보를 수집하는 단계와, 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 판단된 제1 스트롱 에러 정보를 상기 메모리 컨트롤러 내의 메모리에 저장하는 단계 및 상기 제1 스트롱 에러 정보가 저장된 이후, 상기 모니터링 단위에 대해 판단된 제2 스트롱 에러 정보를 상기 메모리에 업데이트하는 단계를 구비하고, 호스트로부터의 독출 요청에 응답하여 독출된 데이터의 에러를 정정함에 있어서, 상기 제2 스트롱 에러 정보가 이용되는 것을 특징으로 특징으로 한다.
한편, 본 개시의 기술적 사상의 다른 일측면에 따른 메모리 컨트롤러의 동작방법은, 노멀 독출 레벨을 이용하여 메모리 셀들로부터 독출된 데이터를 기초로 하드 디시전 정보를 수집하는 단계와, 상기 노멀 독출 레벨과 상이한 하나 이상의 오프셋 독출 레벨들을 이용하여 상기 메모리 셀들로부터 독출된 데이터를 기초로 소프트 디시전 정보를 수집하는 단계와, 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 판단된 제1 스트롱 에러 정보를 상기 메모리 컨트롤러 내의 메모리에 저장하는 단계와, 호스트로부터의 독출 요청에 응답하여 독출된 데이터에 정정 불가능한 에러가 발생됨에 따라, 상기 메모리 셀들에 대한 독출 동작을 재차 수행함으로써 수집된 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 제2 스트롱 에러 정보를 생성하는 단계 및 상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보를 이용하여 상기 독출 요청에 응답하여 독출된 데이터의 에러를 정정하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는, 메모리 장치에 대한 메모리 동작을 제어하는 프로세서와, 상기 메모리 장치로부터 독출된 데이터들에 대한 에러 정정 동작을 수행하고, 상기 메모리 장치의 모니터링 단위에 대해 노멀 독출 레벨을 이용하여 수집되는 하드 디시전 정보와 하나 이상의 오프셋 독출 레벨들을 이용하여 수집되는 소프트 디시전 정보에 기초하여 제1 스트롱 에러 정보를 생성하고, 호스트로부터의 독출 요청에 응답하여 상기 모니터링 단위에 대해 재차 수집된 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 제2 스트롱 에러 정보를 생성하는 ECC 회로 및 상기 제1 스트롱 에러 정보 또는 상기 제2 스트롱 에러 정보를 저장하는 휘발성 메모리를 구비하고, 상기 노멀 독출 레벨과 상기 오프셋 독출 레벨들은 상이한 값을 가지며, 상기 ECC 회로는, 상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보를 이용하여 상기 호스트로부터 독출 요청된 데이터의 에러를 정정하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 컨트롤러 및 메모리 컨트롤러의 동작방법에 따르면, 호스트의 요청에 무관하게 스트롱 에러 정보를 수집하고 관리함에 따라, 스트롱 에러 히스토리를 통해 호스트로부터 독출 요청되는 데이터의 에러를 정정할 수 있으므로, 데이터의 신뢰성을 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 메모리 컨트롤러 및 메모리 컨트롤러의 동작방법에 따르면, 스트롱 에러 정보를 기초로 리드 리클레임 수행 여부를 판단할 수 있으므로 데이터 손실 가능성을 감소할 수 있으며, 다수의 리커버리 알고리즘들 중 최적의 리커버리 알고리즘을 선택할 수 있으므로, 에러 복구에 소요되는 자원을 감소할 수 있는 효과가 있다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예의 스트롱 에러 관리 동작이 소프트웨어에 의해 수행되는 예를 나타내는 블록도이다.
도 4는 본 개시의 일 실시예에 따라 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 5는 도 1의 메모리 셀 어레이를 예시적으로 나타내는 도면이다.
도 6은 도 5의 메모리 블록의 구조의 일 예를 나타내는 사시도이다.
도 7은 메모리 셀 당 5 비트의 데이터가 저장되는 경우 및 스트롱 에러의 예를 나타내는 도면이다.
도 8은 본 개시의 예시적인 스트롱 에러 관리 모듈의 일 구현 예를 나타내는 도면이다.
도 9는 본 개시의 예시적인 실시예에 따라 스트롱 에러 정보가 에러 정정에 이용되는 예를 나타내는 도면이다.
도 10은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
도 11a,b,c는 본 개시의 예시적인 실시예에 따른 모니터링 단위를 나타내는 도면이다.
도 12는 본 개시의 예시적인 실시예에 따른 메모리 시스템의 구체 동작 예를 나타내는 플로우차트이다.
도 13은 본 개시의 다른 예시적인 실시예에 따른 메모리 시스템의 구체 동작 예를 나타내는 플로우차트이다.
도 14는 본 개시의 또 다른 예시적인 실시예에 따른 메모리 컨트롤러의 구체 동작 예를 나타내는 플로우차트이다.
도 15는 본 개시의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있으며, 메모리 장치(200)는 메모리 셀 어레이(210), 전압 생성기(220) 및 제어 로직(230)을 포함할 수 있고, 제어 로직(230)은 전압 제어기(231)를 포함할 수 있다. 도 1의 예에서는 전압 제어기(231)가 제어 로직(230) 내에 구비된 것으로 도시되었으나, 본 개시의 실시예에 따른 전압 제어기(231)는 제어 로직(230) 외부에 별개의 구성 요소로서 구현될 수도 있을 것이다.
예를 들어, 메모리 시스템(10)은 다양한 인터페이스를 통해 호스트와 통신할 수 있고, 일 예로서 메모리 시스템(10)은 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) 등과 같은 다양한 인터페이스를 통해 호스트와 통신할 수 있다.
예시적인 실시예에 따라, 메모리 장치(200)는 플래시 메모리 등의 불휘발성 메모리 장치를 포함할 수 있다. 일부 실시예들에서, 메모리 시스템(10)은 전자 장치에 내장되거나 착탈 가능한 메모리로 구현될 수 있고, 예를 들어, 메모리 시스템(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) 등 다양한 형태로 구현될 수 있다. 또한, 메모리 시스템(10)은 데이터를 불휘발성하게 저장함에 따라 스토리지 장치로 지칭될 수도 있다.
메모리 컨트롤러(100)는 호스트(HOST)로부터의 기록/독출 요청에 응답하여 메모리 장치(200)에 저장된 데이터를 독출하거나 또는 메모리 장치(200)에 데이터를 기록하도록 메모리 장치(200)를 제어할 수 있다. 일 예로서, 메모리 컨트롤러(100)는 프로세서(110)를 구비하고, 프로세서(110)는 메모리 컨트롤러(100) 내부의 전반적인 동작을 제어할 수 있고, 또한 메모리 장치(200)에 대한 메모리 동작을 제어할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 메모리 장치(200)에 어드레스(ADD), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(200)에 대한 기록, 독출 및 소거 동작을 제어할 수 있다. 또한, 메모리 장치(200)에 저장될 데이터(DATA)와 메모리 장치(200)로부터 독출된 데이터(DATA)가 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
메모리 셀 어레이(210)는 복수의 메모리 셀들을 포함할 수 있으며, 예를 들어, 복수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 이하에서는, 복수의 메모리 셀들이 낸드(NAND) 플래쉬 메모리 셀들인 경우를 예로 하여 본 개시의 실시예들을 상술하기로 한다. 그러나, 본 발명은 이에 한정되지 않고, 일부 실시예들에서, 복수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항성 메모리 셀들일 수 있다.
일 실시예에서, 메모리 셀 어레이(210)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있으며, 각 낸드 스트링은 기판 위에 수직으로 적층된 워드라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에서, 메모리 셀 어레이(210)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.
메모리 컨트롤러(100)로부터 독출 커맨드가 메모리 장치(200)로 제공됨에 따라, 제어 로직(230)의 제어에 기초하여 독출 동작이 수행될 수 있다. 일 예로서, 각각의 메모리 셀이 다수 개의 비트들을 저장하는 경우에는, 메모리 셀 어레이(210)의 메모리 셀들은 다수의 문턱전압 산포들을 포함할 수 있으며, 각각의 메모리 셀로부터 두 개 이상의 비트들을 포함하는 데이터가 독출될 수 있다.
전압 생성기(220)는 메모리 장치(200) 내에서 이용되는 각종 전압들을 생성할 수 있으며, 일 예로서 프로그램 동작을 위한 프로그램 전압과 독출 동작을 위한 독출 전압을 생성할 수 있다. 또한, 전압 생성기(220)는 제어 로직(230)의 제어에 기초하여 프로그램 전압 및 독출 전압의 레벨을 다양하게 조절할 수 있다. 예컨대, 전압 생성기(220)는 다수의 문턱전압 산포들을 판별하기 위해 다양한 레벨들을 갖는 독출 전압을 제공할 수 있다. 또한, 어느 하나의 문턱전압 산포를 판별함에 있어서 하나 이상의 독출 레벨을 이용한 독출 동작이 수행될 수 있으며, 본 개시의 예시적인 실시예에 따라 하드 디시전(Hard Decision) 데이터를 수집하기 위한 전압 레벨을 갖는 독출 전압과, 소프트 디시전(Soft Decision) 데이터를 수집하기 위한 전압 레벨을 갖는 독출 전압을 제공할 수 있다. 예컨대, 소프트 디시전 데이터는 상기한 하드 디시전 데이터를 수집하기 위한 독출 전압의 레벨에 비해 소정의 오프셋을 적용한 레벨을 갖는 독출 전압을 이용하여 데이터를 독출함으로써 수집될 수 있다.
또한, 예시적인 실시예에서, 하드 디시전 데이터를 수집하기 위한 독출 전압의 레벨은 호스트의 요청에 따라 수행되는 노멀 독출 동작에서의 독출 레벨에 상응할 수 있다. 이하의 실시예에서, 하드 디시전 정보 수집에 관련된 레벨은 노멀 독출 레벨로 지칭하고, 소프트 디시전 정보 수집에 관련된 레벨은 오프셋 독출 레벨로 지칭한다. 또한, 하드 디시전 데이터는 하드 디시전 정보로 지칭될 수 있고, 소프트 디시전 데이터는 소프트 디시전 정보로 지칭될 수 있다.
제어 로직(230)은 메모리 장치(200)의 전반적인 동작을 제어할 수 있고, 일 예로서 메모리 컨트롤러(100)로부터 수신한 커맨드(CMD), 어드레스(ADD) 및 제어 신호(CTRL)를 기초로, 메모리 셀 어레이(210)에 데이터를 프로그램하거나 메모리 셀 어레이(210)로부터 데이터를 독출하기 위한 각종 내부 제어 신호를 출력할 수 있다. 또한, 제어 로직(230)은 프로그램 동작, 독출 동작 및 소거 동작과 관련하여 전압 생성기(220)로부터 출력되는 각종 전압들의 레벨을 조절하는 전압 제어신호(미도시)를 출력할 수도 있다.
예시적인 실시예에 따라, 메모리 셀 어레이(210)에서 독출된 데이터에 에러가 검출되거나, 또는 정정 불가능한 에러가 발생된 경우에는, 메모리 컨트롤러(100)는 데이터의 에러를 복구하기 위한 리커버리 알고리즘을 수행할 수 있다. 예컨대, 메모리 컨트롤러(100)는 다양한 종류의 리커버리 알고리즘을 수행할 수 있으며, 예시적인 실시예에서 메모리 컨트롤러(100)는 전술한 하드 디시전 정보 및 소프트 디시전 정보를 기초로 판단된 스트롱 에러(Strong Error) 정보에 따라, 에러를 복구하기 위한 최적의 리커버리 알고리즘을 선택할 수 있다.
한편, 본 개시의 예시적인 실시예에 따라, 메모리 컨트롤러(100)는 호스트로부터의 요청에 무관하게 주기적 또는 비주기적으로 스트롱 에러 모니터링(또는, 열화 상태 모니터링)을 수행할 수 있다. 일 예로서, 메모리 셀 어레이(210)의 소정의 단위가 모니터링 단위로 정의될 수 있고, 메모리 컨트롤러(100)는 모니터링 단위의 메모리 셀들에 대한 독출 동작을 제어하고, 상기 모니터링 단위에 대한 하드 디시전 정보 및 소프트 디시전 정보를 기초로 상기 모니터링 단위에 대한 스트롱 에러 정보를 수집할 수 있다. 일 예로서, 리커버리 알고리즘 수행 시에 서로 신뢰성 정보(예컨대, 스트롱 에러 정보)를 공유하는 그룹이 상기 모니터링 단위로 설정될 수 있다.
본 개시의 예시적인 실시예에서의 구체적인 동작 예를 설명하면 다음과 같다.
메모리 컨트롤러(100)는 ECC 회로(120), 스트롱 에러(SE) 관리 모듈(130) 및 스트롱 에러(SE) 저장 회로(140)를 포함할 수 있다. ECC 회로(120)는 메모리 장치(200)로부터 독출된 데이터에 대해 소정의 에러 정정 알고리즘에 기초한 에러 정정 동작을 수행할 수 있다. 일 예로서, ECC 회로(120)는 저밀도 패리티 검사(Low Density Parity Check, LDPC)에 기초하여 에러 정정을 수행함에 따라, 독출 레벨 및 오프셋 독출 레벨에 기초하여 독출된 데이터에 따라 하드 디시전 정보 및 소프트 디시전 정보를 수집할 수 있고, 이에 기초하여 스트롱 에러가 발생된 메모리 셀의 위치를 나타내는 스트롱 에러 정보를 판단 또는 수집할 수 있다. ECC 회로(120)가 LDPC 에 기초한 에러 정정을 수행하는 경우, 하드 디시전 정보 및 소프트 디시전 정보를 이용하여 각 메모리 셀에 대한(또는, 각 비트에 대한) 계수들을 산출하고, 이를 이용한 연산 처리를 통해 에러 정정 동작을 수행할 수 있다.
스트롱 에러 관리 모듈(130)은 스트롱 에러 정보를 기초로 각종 관리 동작을 수행할 수 있다. 일 예로서, 스트롱 에러 관리 모듈(130)은 스트롱 에러 정보에 기초하여 메모리 장치(200)의 열화 정도를 판단할 수 있으며, 수집된 스트롱 에러 정보가 실제 호스트로부터의 요청에 따라 독출된 데이터의 에러 정정에 이용될 수 있도록 관리 동작을 수행할 수 있다. 또한, 스트롱 에러 관리 모듈(130)은 상기 수집된 스트롱 에러 정보가 스트롱 에러 정보 저장회로(140)에 업데이트 되도록 관리 동작을 수행할 수 있으며, 또한 스트롱 에러의 양에 기초하여 리드 리클레임(Read Reclaim) 수행 여부를 판단하거나, 에러 복구를 위한 최적의 리커버리 알고리즘을 선택하는 등의 관리 동작을 수행할 수 있다.
한편, 스트롱 에러 정보 저장회로(140)는 다수의 모니터링 단위들로부터 수집된 스트롱 에러 정보를 저장할 수 있으며, 스트롱 에러 관리 모듈(130)의 제어에 기초하여 스트롱 에러 정보가 업데이트될 수 있다. 스트롱 에러 정보 저장회로(140)는 다양한 종류의 메모리를 포함할 수 있으며, 예컨대 스트롱 에러 정보 저장회로(140)는 휘발성 메모리로서 DRAM 을 포함할 수 있다. 스트롱 에러 정보 저장회로(140)는 각각의 모니터링 단위에서 스트롱 에러를 갖는 메모리 셀의 위치 정보를 상기한 스트롱 에러 정보로서 저장할 수 있고, 시간이 지남에 따라 메모리 장치(200)의 열화 정도가 증가되어 스트롱 에러의 양이 증가하거나 스트롱 에러를 갖는 메모리 셀들의 위치가 변동됨에 따라, 스트롱 에러 정보 저장회로(140)에 저장되는 스트롱 에러 정보가 업데이트될 수 있다.
NAND 등 메모리 장치의 각 메모리 셀이 저장하는 비트의 개수가 증가함에 따라 데이터 신뢰성이 저하될 수 있는데, 상기와 같은 본 개시의 예시적인 실시예에 따르면, 주기적 또는 비주기적으로 스트롱 에러 정보를 수집하고 이를 업데이트하며, 또한 업데이트된 스트롱 에러 정보를 에러 정정에 이용할 수 있으므로 에러 정정 능력을 향상함으로써 데이터 신뢰성을 증가할 수 있다. 또한, 주기적 또는 비주기적으로 수집된 스트롱 에러 정보에 기초하여 최적 리커버리 알고리즘을 선택하거나 리드 리클레임 수행 여부를 판단할 수 있으므로, 에러 복구를 위한 리커버리 동작에 소요되는 시간을 감소할 수 있으며, 리드 리클레임 수행 타이밍을 최적으로 판단할 수 있으므로 데이터가 손실되는 문제를 감소할 수 있다.
한편, 상기한 실시예에서는 스트롱 에러 관리 모듈(130)의 기능이 ECC 회로(120)의 외부에 구현되는 것으로 도시되었으나, 본 개시의 실시예는 이에 국한될 필요가 없으며 스트롱 에러 관리 기능은 ECC 회로(120) 내에 구현될 수도 있을 것이다. 또한, 스트롱 에러 관리 모듈(130)이 메모리 컨트롤러(100) 내의 별도의 기능 블록으로 도시되었으나, 스트롱 에러 관리 모듈(130)은 소프트웨어적으로 구현되어 메모리 컨트롤러(100) 내의 워킹 메모리(미도시)에 로딩되어 실행될 수 있을 것이다. 예시적인 실시예에서, 메모리 시스템(10)이 플래시 메모리 시스템인 경우, 메모리 컨트롤러(100)는 펌웨어를 포함하는 플래시 변환 계층(Flash Translation Layer, FTL)을 구비할 수 있으며, 스트롱 에러 관리 모듈(130)은 플래시 변환 계층(FTL)에 포함될 수 있다.
도 2는 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 2를 참조하면, 메모리 컨트롤러(300)는 호스트 인터페이스(310), 프로세서(320), 워킹 메모리(Working memory, 330), ECC 회로(340), RAM(350), 메모리 인터페이스(360) 및 스트롱 에러 관리 모듈(370)을 포함할 수 있다. 프로세서(320)는 워킹 메모리(330)에 로딩된 펌웨어(firmware)를 실행함으로써 메모리 컨트롤러(300)의 전반적인 동작을 제어할 수 있다. 워킹 메모리(330) 및 RAM(350)은 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, MRAM 들 중 적어도 하나로 구현될 수 있다. 또한, 펌웨어(firmware)의 일 예로서 플래시 변환 계층(FTL)이 워킹 메모리(330)에 로딩될 수 있으며, 플래시 변환 계층(FTL)을 구동함에 의해 플래시 메모리 동작에 관련된 다양한 기능들이 수행될 수 있다.
호스트 인터페이스(310)는 호스트와 전술한 실시예에 따른 다양한 종류의 인터페이스를 통해 호스트와 통신할 수 있다. 또한, 메모리 인터페이스(360)는 메모리 컨트롤러(300)와 메모리 장치(예컨대, 불휘발성 메모리 장치(NVM)) 사이의 물리적 연결을 제공한다. 예컨대 커맨드/어드레스 및 데이터 등이 메모리 인터페이스(360)를 통해 메모리 컨트롤러(300)와 메모리 장치(NVM) 사이에서 송수신될 수 있다.
RAM(350)은 다양한 정보들을 휘발성하게 저장할 수 있다. 예컨대, 호스트로부터 기록 요청되는 데이터와 메모리 장치(NVM)로부터 독출된 데이터는 RAM(350)에 일시 저장될 수 있다. 또한, 본 개시의 예시적인 실시예에 따라, 스트롱 에러 모니터링을 통해 수집된 스트롱 에러 정보는 RAM(350)에 저장될 수 있다.
ECC 회로(340)는 기록 요청되는 데이터에 대한 ECC 인코딩 처리를 수행할 수 있으며, 독출된 데이터에 대한 디코딩 처리를 수행할 수 있다. 본 개시의 예시적인 실시예에 따라, ECC 회로(340)는 하드 디시전 정보 및 소프트 디시전 정보를 수신하고, 이에 기초하여 스트롱 에러 정보를 생성할 수 있다. 또한, 스트롱 에러 관리 모듈(370)은 스트롱 에러 정보에 기초하는 각종 관리 동작을 수행할 수 있으며, 전술한 실시예에 따라 스트롱 에러 정보의 업데이트 동작, 스트롱 에러 정보에 대한 판단을 기초로 리커버리 알고리즘을 선택하는 동작 및 리드 리클레임 여부를 판단하는 동작 등을 관리할 수 있다.
도 3은 본 개시의 예시적인 실시예의 스트롱 에러 관리 동작이 소프트웨어에 의해 수행되는 예를 나타내는 블록도이다.
도 3을 참조하면, 전술한 실시예에서의 스트롱 에러 관리 기능, 리커버리 기능 및 리드 리클레임 기능은 소프트웨어적으로 펌웨어로 구현될 수 있다. 일 구현 예에 따라, 스트롱 에러 관리 기능은 스트롱 에러 관리 모듈(331)의 소프트웨어에 의해 구현되고, 다양한 종류의 리커버리 알고리즘들의 기능은 리커버리 모듈(332)의 소프트웨어에 의해 구현되며, 리드 리클레임 기능은 리드 리클레임 모듈(333)에 의해 구현될 수 있다. 스트롱 에러 관리 모듈(331), 리커버리 모듈(332) 및 리드 리클레임 모듈(333)은 워킹 메모리(330)에 로딩될 수 있으며, 도 2에 도시된 프로세서(320)는 워킹 메모리(330)에 로딩된 각종 소프트웨어를 실행할 수 있다.
도 4는 본 개시의 일 실시예에 따라 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이고, 도 5는 도 1의 메모리 셀 어레이를 예시적으로 나타내는 도면이며, 도 6은 도 5의 셀 블록(또는, 메모리 블록)의 구조의 일 예를 나타내는 사시도이다. 도 4에서는 메모리 장치의 구현 예로서 COP(Cell Over Periphery) 구조가 예시되나, 본 발명의 실시예들은 이에 국한될 필요가 없이 다양한 구조들을 통해 메모리 장치가 구현될 수도 있을 것이다.
도 4를 참조하면, 메모리 장치(200)는 제1 반도체 레이어(L1) 및 제2 반도체 레이어(L2)를 포함할 수 있고, 제1 반도체 레이어(L1)는 제2 반도체 레이어(L2)에 대해 수직 방향(VD)으로 적층될 수 있다. 구체적으로, 제2 반도체 레이어(L2)는 제1 반도체 레이어(L1)에 대해 수직 방향(VD)으로 하부에 배치될 수 있고, 이에 따라, 제2 반도체 레이어(L2)는 기판에 가깝게 배치될 수 있다.
일 실시예에서, 도 1의 메모리 셀 어레이는 제1 반도체 레이어(L1)에 형성될 수 있고, 도 1의 다른 주변 회로들은 제2 반도체 레이어(L2)에 형성될 수 있다. 이에 따라, 메모리 장치(200)는 메모리 셀 어레이가 주변 회로의 상부에 배치된 구조, 즉 COP 구조를 가질 수 있다. COP 구조는 수평 방향 면적을 효과적으로 감소시킬 수 있고, 메모리 장치(200)의 집적도를 향상시킬 수 있다.
일 실시예에서, 제2 반도체 레이어(L2)는 기판을 포함할 수 있고, 기판 상에 트랜지스터들 및 트랜지스터들을 배선하기 위한 메탈 패턴들을 형성함으로써 제2 반도체 레이어(L2)에 주변 회로를 형성할 수 있다. 제2 반도체 레이어(L2)에 주변 회로가 형성된 후, 메모리 셀 어레이를 포함하는 제1 반도체 레이어(L1)가 형성될 수 있고, 메모리 셀 어레이의 워드 라인들(WL) 및 비트 라인들(BL)과 제2 반도체 레이어(L2)에 형성된 주변 회로를 전기적으로 연결하기 위한 메탈 패턴들이 형성될 수 있다. 예를 들어, 비트 라인들(BL)은 제1 수평 방향(HD1)으로 연장되고, 워드 라인들(WL)은 제2 수평 방향(HD2)으로 연장될 수 있다.
한편, 도 5를 참조하면, 메모리 셀 어레이는 복수의 셀 블록들(BLK0 ~ BLKi)을 포함할 수 있고, i는 양의 정수일 수 있다. 복수의 셀 블록들(BLK0 ~ BLKi) 중 각각은 3차원 구조(또는 수직 구조)를 가질 수 있다. 구체적으로, 복수의 셀 블록들(BLK0 ~ BLKi) 중 각각은 수직 방향(VD)을 따라 신장된 복수의 낸드 스트링들을 포함할 수 있다. 이때, 복수의 낸드 스트링들은 제1 및 제2 수평 방향(HD1, HD2)을 따라 특정 거리만큼 이격되어 제공될 수 있다. 복수의 셀 블록들(BLK0 ~ BLKi)은 메모리 장치의 로우 디코더(미도시)에 의해 선택될 수 있다. 예를 들면, 로우 디코더는 복수의 셀 블록들(BLK0 ~ BLKi) 중 블록 어드레스에 대응하는 셀 블록을 선택할 수 있다.
한편, 도 6을 참조하면, 셀 블록(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)이 제공된다.
도 7은 메모리 셀 당 5 비트의 데이터가 저장되는 경우의 문턱전압 산포 및 스트롱 에러의 예를 나타내는 도면이다.
도 7을 참조하면, 플래시 메모리에서 각각의 메모리 셀이 저장하는 비트의 수가 증가함에 따라 메모리 셀들의 문턱전압 산포의 수가 증가할 수 있으며, 메모리 셀이 4 비트의 데이터를 저장하는 QLC(Quad-level cell) 이거나 5 비트의 데이터를 저장하는 PLC(Penta-level cell) 인 경우, 문턱전압 산포 사이의 간격이 매우 좁을 수 있다. 도 7의 (a)에서는 PLC 가 적용된 경우 메모리 셀들의 문턱전압 산포가 32 인 경우가 예시되며, 도 7의 (b)에서는 서로 인접한 두 개의 문턱전압 산포들에서의 스트롱 에러의 예가 도시된다.
문턱전압 산포들 사이의 간격이 좁아짐에 따라 에러가 증가할 수 있으며, 특히 스트롱 에러는 강한 신뢰성을 가지고 있을 것으로 예상되는 위치(예컨대, 문턱전압 레벨의 위치)에서 발생한 에러이기 때문에, LDPC 등에 기초한 에러 정정 동작 시 정정력을 크게 약화시킬 수 있으며, 스트롱 에러를 갖는 메모리 셀들의 개수가 증가할수록 상기한 정정력은 더욱 약화될 수 있다. 일 예로서, 도 7의 (b)에 도시된 문턱전압 산포에서, 좌측의 빗금친 영역에 해당하는 메모리 셀들의 경우, "1"의 데이터를 가질 것으로 신뢰할 수 있으나, 실제 "0"의 데이터를 저장한 메모리 셀들의 문턱전압 레벨이 크게 변동된 경우로서, 상기와 같은 스트롱 에러를 갖는 메모리 셀들의 개수의 증가는 에러 정정력을 저하시키는 문제를 야기할 수 있다.
한편, 도 7의 (b)를 참조하면, 메모리 컨트롤러는 스트롱 에러 정보의 수집을 위해 노멀 독출 레벨을 통해 독출된 데이터를 하드 디시전 정보(HD)로서 수신하고, 오프셋 독출 레벨을 통해 독출된 데이터를 소프트 디시전 정보(SD)로서 수신할 수 있다. 오프셋 독출 레벨은 상기한 노멀 독출 레벨에 비해 제1 오프셋만큼 작은 레벨을 갖는 제1 오프셋 독출 레벨과, 노멀 독출 레벨에 비해 제2 오프셋만큼 큰 레벨을 갖는 제2 오프셋 독출 레벨을 포함할 수 있다. 메모리 컨트롤러는 제1 오프셋 독출 레벨과 제2 오프셋 독출 레벨을 이용하여 독출된 데이터를 각각 소프트 디시전 정보(SD)로서 수신할 수 있다. 또한, 제1 오프셋과 제2 오프셋은 동일할 수도, 또는 상이할 수도 있을 것이다.
상기한 스트롱 에러 정보 생성을 위한 하드 디시전 정보(HD) 및 소프트 디시전 정보(SD)의 수집은 다양한 방식을 기초로 수행될 수 있다. 일 예로서, 본 개시의 실시예에 따른 주기적 또는 비주기적 모니터링 동작에서는, 하드 디시전 정보(HD)를 기초로 에러 정정이 가능한지 여부와 무관하게 소프트 디시전 정보(SD)를 더 수집함으로써 스트롱 에러 정보가 생성될 수 있을 것이다. 또는, 하드 디시전 정보(HD)를 기초로 에러 정정이 가능한 지 판단하고, 에러 정정이 불가능한 경우에 선택적으로 소프트 디시전 정보(SD)를 독출함으로써 스트롱 에러 정보가 생성될 수도 있을 것이다.
한편, 호스트로부터의 독출 요청에 응답하여 스트롱 에러 정보가 생성되는 경우에는, 노멀 독출 동작을 통해 독출된 데이터에 대해 에러 정정 동작이 수행되고, 에러 정정이 불가능한 경우에 선택적으로 스트롱 에러 정보가 생성될 수 있을 것이다. 일 예로서, 메모리 컨트롤러(또는, 메모리 시스템)는, 호스트로부터 독출 요청된 독출 단위를 포함하는 모니터링 단위로 스트롱 에러 정보를 생성할 수 있고, 앞서 수행된 노멀 독출 동작과는 별개로, 노멀 독출 레벨 및 오프셋 독출 레벨에 기초하는 하드 디시전 정보(HD) 및 소프트 디시전 정보(SD)를 수집할 수 있을 것이다. 또는, 다양한 실시예들에서, 메모리 컨트롤러는 앞서 노멀 독출 동작을 통해 독출된 데이터를 하드 디시전 정보(HD)로서 이용하고, 소프트 디시전 정보(SD) 수집을 위해 오프셋 독출 레벨을 이용하는 독출 동작만을 더 수행할 수도 있을 것이다.
한편, 도 7의 (b) 예에서, 문턱전압 레벨의 변화가 오프셋을 초과하지 않는 메모리 셀들은 위크 에러를 갖는 것으로 정의될 수 있으며, 반면에 문턱전압 레벨의 변화가 오프셋을 초과하는 메모리 셀들은 스트롱 에러를 갖는 것으로 정의될 수 있다. LDPC 에 기초하여 에러 정정이 수행되는 경우, 메모리 셀들의 특성(예컨대, 스트롱 에러, 위크 에러 등)에 기초하여 에러 정정 연산에 이용되는 계수 등 각종 파라미터들이 산출될 수 있는데, 실제 스트롱 에러를 갖는 메모리 셀이 강한 신뢰성을 갖는 메모리 셀로 잘못 판단되는 경우에는 에러 정정 능력이 저하될 수 있다. 전술한 실시예에 따라, 스트롱 에러를 갖는 메모리 셀들의 증가는 에러 정정 능력을 더 크게 저하시키는 요인이 된다.
본 개시의 예시적인 실시예에 따르면, 메모리 시스템은 호스트로부터의 독출 요청에 무관하게 주기적 또는 비주기적으로 스트롱 에러 모니터링을 수행할 수 있다. 또한, 시간에 따라 스트롱 에러를 갖는 메모리 셀들이 변동 또는 증가할 수 있고, 스트롱 에러 정보를 업데이트함으로써 스트롱 에러를 갖는 메모리 셀들의 위치가 정확히 판단될 수 있다. 이에 따라, 주기적/비주기적으로 업데이트되는 스트롱 에러 정보를 기초로 리커버리 알고리즘을 수행함으로써, LDPC 등 ECC 디코딩 처리에 이용되는 파라미터가 정확히 산출(또는, 보상)될 수 있고 에러 정정 능력이 향상될 수 있다. 또한, 메모리 시스템은 스트롱 에러 모니터링을 통해 주기적 또는 비주기적으로 스트롱 에러를 갖는 메모리 셀들의 개수(또는, 열화 정도)를 판단하고, 이에 기초하여 리드 리클레임 여부를 판정함으로써 데이터가 손실되기 전에 미리 데이터 신뢰성을 위한 관리 동작이 수행될 수 있다.
도 8a,b는 본 개시의 예시적인 스트롱 에러 관리 모듈의 일 구현 예를 나타내는 도면이다. 본 개시의 예시적인 실시예에서, 스트롱 에러 관리 모듈의 각종 구성요소들은 하드웨어적으로 구현되거나, 소프트웨어적으로 구현되거나, 또는 이들의 조합으로 구현될 수 있을 것이다.
도 8a를 참조하면, 스트롱 에러 관리 모듈(400)은 스트롱 에러 판단기(410), 업데이트 제어기(420), 리드 리클레임 판단기(430) 및 리커버리 알고리즘 선택기(440)를 포함할 수 있다. 스트롱 에러 관리 모듈(400)은 전술한 실시예에서의 하드 디시전 데이터(HD)와 소프트 디시전 데이터(SD)를 이용하여 스트롱 에러를 갖는 메모리 셀의 위치를 판단할 수 있으며, 상기와 같은 판단 동작은 스트롱 에러 판단기(410)에 의해 수행될 수 있다. 또한, 스트롱 에러 판단기(410)는 스트롱 에러의 판단에 기초하여 소정의 모니터링 단위(예컨대, 페이지, 워드라인, 스트라이프 단위 등) 마다 스트롱 에러의 개수를 판단할 수 있고, 이를 기초로 메모리 셀들의 열화 정도를 판단할 수 있다.
스트롱 에러 판단기(410)는 전술한 판단을 기초로 스트롱 에러를 갖는 메모리 셀들의 위치를 나타내는 정보와, 열화 정도를 나타내는 정보를 제공할 수 있다. 업데이트 제어기(420)는 메모리 시스템(또는, 메모리 컨트롤러) 내에 구비되는 RAM(401)에 스트롱 에러 정보를 업데이트할 수 있으며, 이에 따라 시간 경과에 따라 변경되는 스트롱 에러를 갖는 메모리 셀의 위치가 업데이트될 수 있다. 예시적인 실시예에서, RAM(401)에 스트롱 에러 정보를 업데이트하는 동작은 스트롱 에러의 개수(또는, 스트롱 에러의 양)에 기초하여 선택적으로 수행될 수 있고, 모니터링 단위에서의 스트롱 에러 개수가 제1 기준값(Ref 1)을 초과하는 경우에 업데이트 동작이 수행될 수도 있을 것이다.
또한, 리드 리클레임 판단기(430) 및 리커버리 알고리즘 선택기(440)는 각각은 스트롱 에러 판단기(410)로부터의 열화 정보를 기초로 데이터 신뢰성 향상을 위한 관리 동작을 수행할 수 있다. 예컨대, 리드 리클레임 판단기(430)는 메모리 셀들의 열화 정도가 소정의 제2 기준값(Ref 2)을 초과하는 경우, 메모리 셀들의 열화가 증가함에 따라 데이터의 손실 가능성이 있는 것으로 판단하여, 리드 리클레임을 수행할 것을 나타내는 판단 결과(Det_R)를 출력할 수 있다. 또한, 리커버리 알고리즘 선택기(440)는 메모리 셀들의 열화 정도에 따라 에러 복구를 위한 다양한 종류의 리커버리 알고리즘들 중 상기 열화 정도에 최적화된 리커버리 알고리즘을 지시하는 선택 정보(Sel_A)를 출력할 수 있다.
한편, 도 8a에 도시된 실시예에서는, 스트롱 에러 판단기(410)가 하드 디시전 데이터(HD)와 소프트 디시전 데이터(SD)에 기초하여 스트롱 에러 정보를 판단하는 것으로 설명되었으나, 본 개시의 실시예는 이에 국한될 필요가 없다. 예컨대, 전술한 실시예에서와 같이 ECC 회로(미도시)가 스트롱 에러 정보를 생성하는 경우, 스트롱 에러 관리 모듈(400)에서 스트롱 에러 판단기(410)의 기능은 제거될 수도 있을 것이다.
도 8b는 본 개시의 예시적인 실시예에 따른 리커버리 동작의 일 예를 나타낸다.
도 8b를 참조하면, 스트롱 에러 관리 모듈(400)은 RAM(401)에 기 저장된 제1 스트롱 에러 정보(SE_P)와 호스트로부터의 데이터 독출 요청에 응답하여 생성된 제2 스트롱 에러 정보(SE_N)를 기초로, 실제 에러 정정에 이용될 제3 스트롱 에러 정보(SE')를 생성하여 출력할 수 있다. 예컨대, 제1 스트롱 에러 정보(SE_P)와 제2 스트롱 에러 정보(SE_N)와 의 조합에 기초하여, 독출이 요청되는 메모리 셀들의 스트롱 에러 여부가 더 정확히 판단될 수 있으며, 일 예로서 전술한 바에 따라 강한 신뢰성을 가질 것으로 예측되는 메모리 셀이 실제 스트롱 에러를 갖는 경우, 또는 그 반대의 경우를 포함하는 열화 상태의 정보가 제3 스트롱 에러 정보(SE')에 포함될 수 있다.
리커버리 모듈(402)은 선택 정보(Sel_A)에 따른 리커버리 알고리즘을 수행하고, 일 예로서 리커버리 알고리즘이 스트롱 에러 정보를 이용함에 따라 리커버리 모듈(402)은 스트롱 에러 관리 모듈(400)로부터 제3 스트롱 에러 정보(SE')를 수신할 수 있다. 리커버리 모듈(402)은 LDPC 에 기초하여 에러 정정에 이용되는 각종 파라미터들을 생성할 수 있고, 그 정확도가 향상된 제3 스트롱 에러 정보(SE')를 기초로 파라미터들을 포함하는 정보(Info_P)를 생성하고 ECC 회로(미도시)로 제공함에 따라, ECC 회로의 에러 정정 능력은 향상될 수 있다.
도 9는 본 개시의 예시적인 실시예에 따라 스트롱 에러 정보가 에러 정정에 이용되는 예를 나타내는 도면이다.
도 9를 참조하면, 메모리 시스템(500)은 메모리 장치(510)를 포함할 수 있고, 메모리 장치(510)의 일 예로서 NAND 메모리 셀들의 문턱전압 산포들이 예시된다. 전술한 실시예에 따라, 메모리 셀들은 다수의 문턱전압 산포들을 가질 수 있고, 문턱전압의 레벨에 따라 상기 메모리 셀들 중 일부의 메모리 셀들은 스트롱 에러를 가질 수 있다.
메모리 컨트롤러는 에러 정정 및 복구에 관련된 구성요소들을 포함할 수 있고, 에러 정정 및 복구와 관련된 설명의 편의상 ECC 회로/스트롱 에러 관리 모듈(521)이 함께 도시된다. 전술한 실시예에 따라 ECC 회로와 스트롱 에러 관리 모듈은 별개로 구현될 수 있고, 또한 각각은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다.
한편, 메모리 컨트롤러는 메모리 장치(510)에 대해 노멀 독출 레벨을 이용한 독출 커맨드(CMD_R[N])와 오프셋 독출 레벨을 이용한 독출 커맨드(CMD_R[O])를 메모리 장치(510)로 제공하여 하드 디시전 정보(HD) 및 소프트 디시전 정보(SD)를 수집할 수 있다. ECC 회로/스트롱 에러 관리 모듈(521)은 메모리 장치(510)로부터 제공된 하드 디시전 정보(HD) 및 소프트 디시전 정보(SD)를 기초로 스트롱 에러 정보를 생성할 수 있다.
호스트로부터 독출 요청된 데이터의 에러 정정을 위해, 기존에 업데이트되어 메모리 컨트롤러 내의 제2 DRAM(523)에 저장된 스트롱 에러 정보(SE_P)가 ECC 회로/스트롱 에러 관리 모듈(521)로 제공될 수 있고, ECC 회로/스트롱 에러 관리 모듈(521)은 제2 DRAM(523)으로부터 독출된 스트롱 에러 정보(SE_P)와, 메모리 장치(510)로부터 독출된 데이터를 기초로 생성된 스트롱 에러 정보(SE_N)를 기초로 ECC 디코딩 처리를 수행할 수 있다. 또한, 호스트로 제공될 데이터는 메모리 컨트롤러 내의 제1 DRAM(522)에 임시적으로 저장될 수 있으며, 제1 DRAM(522)으로부터 독출된 데이터가 ECC 회로/스트롱 에러 관리 모듈(521)로 제공되어 그 에러가 정정될 수 있다.
한편, 도 9에 도시된 실시예에서, 제2 DRAM(523)에 저장된 정보는 모니터링 단위(예컨대, 페이지)에서 스트롱 에러를 갖는 메모리 셀의 위치를 나타낼 수 있다. 예컨대, 하나의 페이지가 16 K 사이즈를 갖는 경우, 제2 DRAM(523)의 제1 로우(DMA 0)에 저장된 정보로서 도시된 숫자는 상기 하나의 페이지의 메모리 셀들 중 스트롱 에러를 갖는 메모리 셀의 각각의 위치를 나타낼 수 있다.
한편, ECC 회로/스트롱 에러 관리 모듈(521)은 호스트의 요청과 무관하게 주기적 또는 비주기적으로 수집된 스트롱 에러 정보를 제2 DRAM(523)의 대응하는 위치에 업데이트하는 동작을 관리할 수 있다. 또한, ECC 회로/스트롱 에러 관리 모듈(521)은 호스트로부터의 요청에 응답하여 독출된 데이터의 에러 정정이 불가능한 경우, 전술한 실시예들에 따라 스트롱 에러 정보를 생성하고 이를 제2 DRAM(523)의 대응하는 위치에 업데이트할 수 있다. 한편, 스트롱 에러 정보를 기초로 열화 상태를 판단한 결과에 기초하여, 상기 데이터가 독출된 영역을 포함하는 단위(예컨대, 셀 블록)로 리드 리클레임이 수행될 수 있다. 예컨대, 리드 리클레임 처리를 통해, 상기 데이터가 독출된 영역을 포함하는 셀 블록의 데이터들이 다른 셀 블록으로 이동되고, 이 경우 제2 DRAM(523)에서 해당 모니터링 단위에 대응하는 스트롱 에러 정보는 초기화될 수 있다.
도 10은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
메모리 시스템에 구비되는 메모리 컨트롤러는 메모리 장치의 전반적인 동작을 제어하며, 본 개시의 실시예들에 따라 메모리 컨트롤러는 스트롱 에러 정보에 기반한 데이터 신뢰성 향상을 위한 다양한 제어 동작을 수행할 수 있다. 메모리 컨트롤러는 주기적 또는 비주기적으로 스트롱 에러 모니터링 동작을 수행할 수 있고, 일 예로서 호스트로부터의 요청에 무관하게 제1 모니터링 단위에 대한 스트롱 에러 모니터링 동작을 시작할 수 있다(S11).
메모리 컨트롤러는, 제1 모니터링 단위에 대해 노멀 독출 레벨을 기초로 하드 디시전 정보와 오프셋 독출 레벨을 기초로 소프트 디시전 정보를 수집할 수 있고(S12), 전술한 실시예들에 따라 제1 모니터링 단위에 대응하는 제1 스트롱 에러 정보를 생성할 수 있다(S13). 또한, 제1 스트롱 에러 정보는 메모리 컨트롤러에 구비되는 DRAM 에 저장될 수 있고, 일 예로서 제1 모니터링 단위에 대응하는 DRAM 의 제1 위치에 저장될 수 있다.
한편, 메모리 시스템은 호스트로부터 독출 요청을 수신할 수 있고, 독출 요청에 따른 독출 단위는 상기한 모니터링 단위 이하의 사이즈를 가질 수 있다(S14). 호스트로부터의 독출 요청에 응답하여 상기 독출 단위의 데이터가 독출되고, 에러 정정 동작을 통해 정정 불가능한 에러(UECC)의 존재 여부가 판단될 수 있다(S15).
정정 불가능한 에러(UECC)가 존재함에 따라, 상기 독출 단위의 메모리 셀들에 대한 하드 디시전 정보 및 소프트 디시전 정보를 수집하는 동작이 수행될 수 있으며(S16), 상기 수신된 하드 디시전 정보 및 소프트 디시전 정보를 기초로 하여 제2 스트롱 에러 정보가 생성될 수 있다(S17). 일 예로서, 모니터링 단위가 독출 단위에 비해 큰 경우(예컨대, 다수의 페이지들 단위에 상응하는 경우), DRAM 에 저장된 제1 스트롱 에러 정보는 상대적으로 큰 단위로서 신뢰성 정보를 공유하므로, 상기한 독출 단위의 메모리 셀들 중 스트롱 에러를 갖는 메모리 셀의 위치의 정확도를 높일 수 있고, 기존의 저장된 제1 스트롱 에러 정보와 새로이 생성된 제2 스트롱 에러 정보의 조합을 기초로 에러 정정이 수행됨에 따라(S18), 에러 정정 가능성이 향상될 수 있다. 한편, 새로이 생성된 제2 스트롱 에러 정보는 DRAM 에 업데이트될 수 있고, 일 예로서 제1 스트롱 에러 정보가 나타내는 스트롱 에러를 갖는 메모리 셀의 위치가 상기 제2 스트롱 에러 정보에 의해 변동 및 추가될 수 있다.
도 11a,b,c는 본 개시의 예시적인 실시예에 따른 모니터링 단위를 나타내는 도면이다.
메모리 장치의 메모리 셀 어레이는 다수의 셀 블록들을 포함할 수 있고, 각각의 셀 블록은 다수의 셀 스트링들을 포함할 수 있다. 도 11a,b,c에는 제1 내지 제4 스트링 선택 라인들(SSL0 ~ SSL3)이 예시되며, 각각의 스트링 선택 라인들은 다수의 셀 스트링들에 공유될 수 있다. 예컨대, 제1 스트링 선택 라인(SSL0)으로 제공되는 제1 스트링 선택 신호가 활성화됨에 따라, 제1 스트링 선택 라인(SSL0)을 공유하는 다수의 셀 스트링들이 선택될 수 있다.
한편, 각각의 셀 스트링은 다수의 워드라인들(예컨대, WL N-2 ~ WL N+2)에 연결될 수 있으며, 각각의 워드라인에는 다수의 메모리 셀들이 연결될 수 있고, 각각의 워드라인은 다수의 셀 스트링들에 공유될 수 있다. 일 예로서, 제1 스트링 선택 신호가 활성화되고, 다수의 워드라인들(WL N-2 ~ WL N+2) 중 워드라인 WL N 이 선택됨에 따라, 제1 스트링 선택 라인(SSL0)에 연결된 셀 스트링들에서 워드라인 WL N에 연결된 메모리 셀들이 선택될 수 있다.
또한, 각각의 메모리 셀은 다수의 비트들을 저장할 수 있으며, 메모리 셀이 PLC 에 해당하는 경우에는 각각의 메모리 셀은 5 비트의 데이터를 저장할 수 있다. 도 11a에 도시된 예에서, 워드라인 WL N에 연결된 메모리 셀들로부터 독출되는 데이터들이 하나의 페이지를 구성하는 경우, 메모리 셀이 PLC 에 해당하는 경우에는 워드라인 WL N에 연결된 메모리 셀들은 5 개의 페이지들에 상응하는 데이터를 저장할 수 있다.
본 개시의 예시적인 실시예에 따라, 스트롱 에러 정보를 수집하는 모니터링 단위는 다양한 그룹으로 설정될 수 있다. 일 예로서, 모니터링 단위는 에러 정정을 수행함에 있어서 신뢰성 정보를 공유하는 단위일 수 있고, 상기 모니터링 단위에 기초하여 스트롱 에러 정보를 수집하고 이를 에러 정정에 이용함으로써 데이터 신뢰성을 향상할 수 있다. 도 11a에 도시된 예에서는, 하나의 페이지가 모니터링 단위를 구성하는 경우를 나타낸다.
한편, 본 개시의 예시적인 실시예들에 따라, 도 11b에 도시된 바와 같이 하나 이상의 워드라인이 모니터링 단위를 구성할 수 있다. 예컨대, 제1 스트링 선택 라인(SSL0)에 연결된 셀 스트링들에서 하나의 워드라인에 연결된 메모리 셀들이 모니터링 단위를 구성하는 경우, 5 개의 페이지들에 상응하는 사이즈가 모니터링 단위를 구성할 수 있다. 또는, 두 개 이상의 워드라인들(예컨대, 워드라인 WL N-1 내지 워드라인 WL N+1) 이 모니터링 단위를 구성하는 경우, 두 개 이상의 워드라인들에 포함되는 페이지들이 모니터링 단위를 구성할 수도 있을 것이다.
한편, 도 11c 에 도시된 바와 같이, 모니터링 단위는 다수의 채널들에 구비되는 다수의 셀 블록들의 메모리 셀들을 포함할 수 있다. 일 예로서, 메모리 시스템은 메모리 컨트롤러에 다수의 채널들을 통해 연결되는 다수의 메모리 장치들을 포함할 수 있고, 각각의 메모리 장치는 하나 이상의 메모리 칩(예컨대, 플래시 메모리 칩)을 포함할 수 있다.
두 개 이상의 메모리 장치들에 저장된 데이터가 에러 복구를 위한 리커버리 동작의 단위를 구성할 수 있고, 스트롱 에러 정보의 수집과 관련된 모니터링 단위는 상기한 리커버리 단위에 상응할 수 있다. 일 예로서, 적어도 두 개의 메모리 장치에 포함되는 다수의 셀 블록들의 페이지 또는 워드라인이 하나의 모니터링 단위를 구성할 수 있으며, 상기 다수의 셀 블록들의 페이지 또는 워드라인을 포함하는 단위는 스트라이프로 정의될 수 있을 것이다. 예컨대, 다수의 셀 블록들에서 각각의 블록의 하나 이상의 페이지들을 포함하는 스트라이프가 전술한 실시예에서의 스트롱 에러 모니터링의 단위를 구성할 수 있다.
상기와 같은 본 개시의 예시적인 실시예에 따르면, 스트롱 에러의 모니터링 단위를 다양한 사이즈로 가변할 수 있다. 예컨대, 모니터링 단위가 상대적으로 큰 경우에는 신뢰성 정보를 공유하는 단위의 사이즈가 커지게 되고, 리커버리 알고리즘 과정에서 독출 단위에 대응하는 스트롱 에러 정보는 신뢰성 정보를 공유하는 다른 다수의 독출 단위들에 대응하는 스트롱 에러 정보들을 참조함으로써 그 정확도가 향상될 수 있으므로, 스트롱 에러 정보를 이용한 에러 정정 가능성을 높일 수 있다.
도 12는 본 개시의 예시적인 실시예에 따른 메모리 시스템의 구체 동작 예를 나타내는 플로우차트이다.
도 12를 참조하면, 메모리 시스템은 호스트로부터의 요청에 무관하게 스트롱 에러 모니터링을 시작할 수 있으며(S21), 소정의 모니터링 단위의 메모리 셀들에 대해 노멀 독출 레벨을 이용한 독출 동작이 수행될 수 있다(S22). 메모리 컨트롤러는 독출된 데이터에 대해 ECC 디코딩 처리를 수행함으로써, 상기 독출된 데이터가 정정 불가능한 에러(UECC)를 포함하는 지를 판단할 수 있다(S23). 판단 결과, 정정 불가능한 에러(UECC)가 존재하지 않는 경우에는, 상기 모니터링 단위의 메모리 셀들의 에러 정정이 가능한 것으로 판단됨에 따라, 스트롱 에러 정보의 업데이트를 위한 추가의 동작이 수행됨이 없이 모니터링 동작이 종료될 수 있다(S29).
반면에, 상기 독출된 데이터에 정정 불가능한 에러(UECC)가 존재하는 경우에는, 소프트 디시전 정보를 수집하기 위해 오프셋 독출 레벨을 이용하는 독출 동작이 수행될 수 있으며(S24), 소프트 디시전 정보를 더 이용하여 에러 정정이 가능한지 여부가 판단될 수 있다(S25). 도 12의 실시예에서는, 앞서 독출된 독출 동작에 따른 데이터가 하드 디시전 정보로 이용되는 경우가 예시되었으나, 전술한 실시예에서와 같이 노멀 독출 레벨을 이용하여 하드 디시전 정보가 다시 수집될 수도 있을 것이다.
판단 결과, 정정 불가능한 에러(UECC)가 존재하는 경우에는 상기 모니터링 단위의 메모리 셀들의 열화가 큰 정도인 것으로 판단되고, 이에 따라 상기 모니터링 단위를 포함하는 영역을 리드 리클레임 대상으로 등록할 수 있다(S26). 일 동작 예로서, 리드 리클레임 동작이 셀 블록 단위의 데이터를 다른 셀 블록으로 카피함에 의해 수행되는 경우, 상기 모니터링 단위를 포함하는 셀 블록이 리드 리클레임 대상으로 등록될 수 있다. 또한, 상기 모니터링 단위에 대한 리드 리클레임 대상으로 등록이 완료된 후 모니터링 동작이 종료될 수 있으며(S29), 이후 임의의 시점에서 리드 리클레임 동작이 수행될 수 있다.
한편, 하드 디시전 정보 및 소프트 디시전 정보를 이용하여 에러가 정정될 수 있는 경우, 하드 디시전 정보 및 소프트 디시전 정보에 기초하여 판단될 수 있는 스트롱 에러 정보를 통해, 상기 모니터링 단위에서 스트롱 에러를 갖는 메모리 셀들의 개수가 판단될 수 있다. 스트롱 에러 개수를 카운팅한 결과가 소정의 임계값을 초과하는 지가 판단될 수 있고(S27), 스트롱 에러 개수가 임계값을 초과하는 경우에는 상기 모니터링 단위의 메모리 셀들의 열화가 큰 정도인 것으로 판단될 수 있으므로, 상기 모니터링 단위를 포함하는 영역을 리드 리클레임 대상으로 등록할 수 있다(S26). 반면에, 스트롱 에러 개수가 임계값을 초과하지 않는 경우에는, 새로이 판단된 스트롱 에러 정보가 메모리에 업데이트될 수 있고(S28), 업데이트된 스트롱 에러 정보가 차후 에러 정정 과정에 이용될 수 있다.
도 13은 본 개시의 다른 예시적인 실시예에 따른 메모리 시스템의 구체 동작 예를 나타내는 플로우차트이다. 도 13에서는 호스트로부터의 요청에 응답하는 독출 동작을 통해 스트롱 에러 관리를 수행하는 예가 설명된다.
도 13을 참조하면, 호스트의 요청에 따라 독출된 데이터에 정정 불가능한 에러가 발생됨에 따라 리커버리 알고리즘이 수행될 수 있고(S31), 리커버리 알고리즘 실행 과정에서 독출 동작이 수행될 수 있다. 상기 독출 동작이 하드 디시전 정보에 관련된 동작인지 또는 소프트 디시전 정보에 관련된 동작인지가 판단될 수 있다(S32). 호스트의 요청에 따라 먼저 노멀 독출 레벨을 이용한 독출 동작이 수행될 수 있고, 이에 따라 상기 독출된 데이터의 에러가 정정 불가능한지 여부가 판단될 수 있다(S33). 만약, 데이터의 에러를 정정한 경우에는 추가의 동작(예컨대, 리커버리 동작)이 수행됨이 없이 독출 동작이 종료될 수 있다(S36).
한편, 상기한 독출 동작이 오프셋 독출 레벨을 이용하는 소프트 디시전 정보를 수집하기 위한 동작에 해당하는 경우, 독출 동작이 수행된 단위에 대응하는 스트롱 에러 정보(예컨대, 스트롱 에러 히스토리)가 존재하는 지 여부가 판단될 수 있다(S37). 만약, 스트롱 에러 히스토리가 존재하는 경우에는, 독출된 데이터에 대한 에러 정정 동작에 있어서 스트롱 에러 히스토리 정보를 이용하기 위해, 메모리(예컨대, DRAM)에 저장된 스트롱 에러 히스토리 정보가 독출될 수 있다(S38).
상기 수집된 정보를 통해 스트롱 에러 정보가 새로 생성될 수 있고, 새로 생성된 스트롱 에러 정보와 메모리로부터 독출된 스트롱 에러 히스토리 정보를 기초로 에러 정정이 불가능한지 여부가 판단될 수 있다(S39). 만약 에러 정정이 가능한 경우에는, 새로이 생성된 스트롱 에러 정보를 통해 스트롱 에러를 갖는 메모리 셀들의 개수가 소정의 임계값을 초과하는 지 여부가 판단될 수 있다(S40). 만약, 스트롱 에러를 갖는 메모리 셀들의 개수가 임계값을 초과하는 경우에는 상기 독출된 데이터를 포함하는 영역(예컨대, 셀 블록)에 대해 리드 리클레임이 등록될 수 있다(S41). 반면에, 스트롱 에러를 갖는 메모리 셀들의 개수가 임계값을 초과하지 않는 경우에는 앞서 판단된 스트롱 에러 정보가 메모리에 업데이트될 수 있다(S42).
한편, 상기한 하드 디시전 정보 및/또는 소프트 디시전 정보를 이용한 에러 정정 동작에서 정정 불가능한 에러가 발생되는 경우, 에러 복구를 위한 리커버리 동작이 반복 수행될 수 있으며, 일 예로서 문턱전압 산포의 구분을 위한 독출 레벨을 변동하면서 리커버리 동작이 반복 수행될 수 있다. 정정 불가능한 에러가 발생되는 경우 현재 리커버리 동작이 마지막 리커버리 동작인지 여부가 판단될 수 있고(S34), 마지막 리커버리 동작이 아닌 경우에는 다음의 리커버리 동작을 위한 독출 동작이 시작될 수 있다(S31). 반면에, 현재 리커버리 동작이 마지막 리커버리 동작에 해당하는 경우에는, 리커버리 동작을 종료하고 상기 독출된 데이터를 포함하는 영역에 대해 리드 리클레임이 등록될 수 있다(S41).
도 14는 본 개시의 또 다른 예시적인 실시예에 따른 메모리 컨트롤러의 구체 동작 예를 나타내는 플로우차트이다. 도 14에서는 스트롱 에러 정보에 기초하여 리커버리 알고리즘의 최적 선택 예가 도시된다.
호스트로부터의 독출 요청에 따라, 독출된 데이터에 정정 불가능한 에러가 발생됨에 따라 리커버리 동작이 시작될 수 있고(S51), 메모리 컨트롤러(또는, 메모리 시스템)은 독출 요청된 데이터에 대응되고 그 내부의 메모리에 기 저장된 제1 스트롱 에러 정보(SE_P)를 체크할 수 있다(S52). 일 예로서, 체크 결과에 따라 스트롱 에러를 갖는 메모리 셀들의 개수 또는 비율이 소정의 임계값보다 큰 지 체크될 수 있다.
메모리 컨트롤러는 다양한 종류의 리커버리 알고리즘들에 기초하여 에러의 복구를 시도할 수 있다. 도 14에서는 제1 내지 제4 리커버리 알고리즘들이 예시되나, 본 개시의 실시예는 이에 국한될 필요가 없이 더 많은 리커버리 알고리즘들에 대한 선택 동작이 가능할 수 있을 것이다. 또한, 제1 리커버리 알고리즘은 상대적으로 가장 작은 자원 및 시간을 소모하는 반면에, 제4 리커버리 알고리즘은 상대적으로 가장 큰 자원 및 시간을 소모할 수 있다. 일 예로서, 제1 리커버리 알고리즘은 소프트 디시전 및 스트롱 에러 정보를 이용하지 않는 적은 자원을 통해 에러를 복구하는 특성을 가질 수 있으며, 반면에 제2 리커버리 알고리즘은 소프트 디시전 및 스트롱 에러 정보를 이용하여 에러를 복구하는 특성을 가질 수 있다.
메모리 컨트롤러는 상기 S52 단계의 체크 결과에 따라 스트롱 에러의 개수가 상대적으로 적은 경우에는 제1 리커버리 알고리즘을 선택하는 반면에(S53), 스트롱 에러의 개수가 상대적으로 많은 경우에는 제2 리커버리 알고리즘을 선택할 수 있다(S54). 또한, 메모리 컨트롤러가 제1 리커버리 알고리즘을 선택하여 실행함에도 에러가 복구되지 않는 경우에는, 순차적으로 제2 리커버리 알고리즘을 선택할 수 있다.
제2 리커버리 알고리즘의 실행에 의해 에러가 복구되지 않는 경우, 메모리 컨트롤러는 상기 제2 리커버리 알고리즘의 실행에 의해 생성된 제2 스트롱 에러 정보(SE_N)를 체크할 수 있다(S55). 상기 제2 스트롱 에러 정보(SE_N)는 상대적으로 최근에 생성된 정보에 해당하므로, 제1 스트롱 에러 정보(SE_P)에 비해 높은 정확도를 가질 수 있으며, 메모리 컨트롤러는 상기 S55 단계의 체크 결과에 따라 스트롱 에러의 개수가 상대적으로 적은 경우에는 제3 리커버리 알고리즘을 선택하는 반면에(S56), 스트롱 에러의 개수가 상대적으로 많은 경우에는 제4 리커버리 알고리즘을 선택할 수 있다(S57). 제4 리커버리 알고리즘은 제3 리커버리 알고리즘에 비해 더 많은 자원을 소모할 수 있고, 일 구현 예로서, 제3 리커버리 알고리즘은 문턱전압 산포들 사이의 골(valley)을 탐색하는 알고리즘에 상응하고, 제4 리커버리 알고리즘은 호스트로부터 독출 요청된 데이터 이외의 다른 데이터를 독출하고 이를 이용하여 에러를 복구하는 알고리즘(예컨대, RAID(redundant array of independent disks))에 상응할 수 있다. 상기와 같은 리커버리 알고리즘에 의해 에러가 복구되면 리커버리 동작이 종료될 수 있다(S58).
도 15는 본 개시의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 15를 참조하면, SSD 시스템(600)은 호스트(610) 및 SSD(620)를 포함할 수 있다. SSD(620)는 신호 커넥터를 통해 호스트(610)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력받을 수 있다. SSD(620)는 SSD 컨트롤러(621), 보조 전원 장치(622) 및 불휘발성 메모리 장치들(623_1 ~ 623_n)을 포함할 수 있다. 불휘발성 메모리 장치들(623_1 ~ 623_n)은 NAND 플래시 메모리를 포함할 수 있다. 이 때, SSD(620)는 도 1 내지 도 14를 참조하여 상술된 실시예들을 이용하여 구현될 수 있다.
예컨대, SSD(620)에 구비되는 SSD 컨트롤러(621)는 전술한 실시예들에 따른 스트롱 에러 관리 모듈(621_1)과 ECC 회로(미도시)를 포함할 수 있고, ECC 회로는 불휘발성 메모리 장치들(623_1 ~ 623_n)로부터 수신된 하드 디시전 데이터 및/또는 소프트 디시전 데이터를 기초로 에러 정정 동작을 수행할 수 있으며, 또한 스트롱 에러 관리 모듈(621_1)은 전술한 실시예들에 따라 스트롱 에러 정보를 관리할 수 있다. 또한, 스트롱 에러 관리 모듈(621_1)의 제어에 기초하여, SSD 컨트롤러(621)는 스트롱 에러 정보를 주기적 또는 비주기적으로 업데이트할 수 있으며, 업데이트된 스트롱 에러 정보를 ECC 디코딩 처리에 이용할 수 있다. 또한, 스트롱 에러 관리 모듈(621_1)의 제어에 기초하여, SSD 컨트롤러(621)는 스트롱 에러 정보에 기초하여 메모리 셀들의 열화 정도를 판단할 수 있고, 판단 결과에 따라 리드 리클레임 수행 여부를 판단하거나, 다양한 종류의 리커버리 알고리즘들 중 열화 정도에 최적화된 리커버리 알고리즘이 수행되도록 관리 동작을 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들이 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 메모리 장치를 제어하는 메모리 컨트롤러의 동작방법에 있어서,
    노멀 독출 레벨을 이용하여 모니터링 단위의 메모리 셀들로부터 독출된 데이터를 기초로 하드 디시전 정보를 수집하는 단계;
    상기 노멀 독출 레벨과 상이한 하나 이상의 오프셋 독출 레벨들을 이용하여 상기 모니터링 단위로부터 독출된 데이터를 기초로 소프트 디시전 정보를 수집하는 단계;
    상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 판단된 제1 스트롱 에러 정보를 상기 메모리 컨트롤러 내의 메모리에 저장하는 단계; 및
    상기 제1 스트롱 에러 정보가 저장된 이후, 상기 모니터링 단위에 대해 판단된 제2 스트롱 에러 정보를 상기 메모리에 업데이트하는 단계를 구비하고,
    호스트로부터의 독출 요청에 응답하여 독출된 데이터의 에러를 정정함에 있어서, 상기 제2 스트롱 에러 정보가 이용되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  2. 제1항에 있어서,
    상기 오프셋 독출 레벨들은, 상기 하드 디시전 정보의 수집에 이용되는 상기 노멀 독출 레벨에 비해 제1 레벨 만큼 큰 제1 오프셋 독출 레벨과, 상기 노멀 독출 레벨에 비해 제2 레벨 만큼 작은 제2 오프셋 독출 레벨을 포함하고,
    상기 소프트 디시전 정보는, 상기 제1 오프셋 독출 레벨 및 상기 제2 오프셋 독출 레벨을 이용하여 독출된 데이터를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  3. 제1항에 있어서,
    상기 메모리 컨트롤러 내의 메모리는 DRAM 인 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  4. 제1항에 있어서,
    상기 제2 스트롱 에러 정보의 업데이트는, 상기 호스트로부터의 데이터 독출 요청과 무관하게 상기 메모리 컨트롤러가 자체적으로 수행하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  5. 제1항에 있어서,
    상기 메모리 셀들 각각은 4 비트의 데이터를 저장하는 QLC (Quad-level cell)이거나 5 비트의 데이터를 데이터를 저장하는 PLC (Penta-level cell)인 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  6. 제1항에 있어서,
    상기 제2 스트롱 에러 정보는, 상기 호스트로부터의 독출 요청에 응답하여 독출된 데이터에 정정 불가능한 에러가 존재함에 따라, 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 수집함에 의해 생성되고,
    상기 독출된 데이터의 에러를 정정함에 있어서, 상기 제1 스트롱 에러 정보와 상기 제2 스트롱 에러 정보가 함께 이용되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  7. 제6항에 있어서,
    상기 모니터링 단위는, 상기 호스트에 위해 독출 요청된 단위를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  8. 제7항에 있어서,
    상기 모니터링 단위는, 상기 메모리 장치의 하나의 셀 블록에 포함되는 하나의 페이지 단위, 상기 셀 블록에 포함되는 하나의 워드라인 단위, 및 상기 메모리 장치의 다수의 셀 블록들의 페이지들을 포함하는 스트라이프 단위 중 어느 하나에 상응하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  9. 제6항에 있어서,
    상기 메모리 컨트롤러는, 서로 다른 자원을 소모하는 다수의 리커버리 알고리즘들을 실행하고,
    상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보 중 적어도 하나에 기초하여, 상기 다수의 리커버리 알고리즘들 중 상기 독출된 데이터의 에러를 정정하기 위한 리커버리 알고리즘이 선택되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  10. 제1항에 있어서,
    상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보 중 적어도 하나에 기초하여, 상기 모니터링 단위를 포함하는 셀 블록에 대한 리드 리클레임 수행 여부가 판단되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  11. 제1항에 있어서,
    상기 제1 스트롱 에러 정보 또는 상기 제2 스트롱 에러 정보는, 상기 모니터링 단위에서 스트롱 에러를 갖는 메모리 셀들의 위치를 나타내는 정보를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  12. 제1항에 있어서,
    상기 제2 스트롱 에러 정보의 업데이트는, 상기 제2 스트롱 에러 정보에 따라 판단된 스트롱 에러를 갖는 메모리 셀들의 개수가 소정의 임계값을 초과할 때 선택적으로 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  13. 메모리 장치를 제어하는 메모리 컨트롤러의 동작방법에 있어서,
    노멀 독출 레벨을 이용하여 메모리 셀들로부터 독출된 데이터를 기초로 하드 디시전 정보를 수집하는 단계;
    상기 노멀 독출 레벨과 상이한 하나 이상의 오프셋 독출 레벨들을 이용하여 상기 메모리 셀들로부터 독출된 데이터를 기초로 소프트 디시전 정보를 수집하는 단계;
    상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 판단된 제1 스트롱 에러 정보를 상기 메모리 컨트롤러 내의 메모리에 저장하는 단계;
    호스트로부터의 독출 요청에 응답하여 독출된 데이터에 정정 불가능한 에러가 발생됨에 따라, 상기 메모리 셀들에 대한 독출 동작을 재차 수행함으로써 수집된 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 제2 스트롱 에러 정보를 생성하는 단계; 및
    상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보를 이용하여 상기 독출 요청에 응답하여 독출된 데이터의 에러를 정정하는 단계를 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  14. 제13항에 있어서,
    상기 제2 스트롱 에러 정보를 상기 메모리에 업데이트하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  15. 제13항에 있어서,
    상기 제1 스트롱 에러 정보를 상기 메모리에 저장하는 단계는, 상기 호스트로부터의 독출 요청과 무관하게 상기 메모리 컨트롤러가 자체적으로 수행하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  16. 제13항에 있어서,
    상기 제2 스트롱 에러 정보에 따라 판단된 스트롱 에러를 갖는 메모리 셀들의 개수가 소정의 임계값을 초과할 때, 상기 호스트로부터의 독출 요청에 대응하는 단위를 포함하는 셀 블록에 대한 리드 리클레임이 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법
  17. 제13항에 있어서,
    상기 메모리 컨트롤러는, 서로 다른 자원을 소모하는 다수의 리커버리 알고리즘들을 실행하고,
    상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보 중 적어도 하나에 기초하여, 상기 다수의 리커버리 알고리즘들 중 상기 독출된 데이터의 에러를 정정하기 위한 리커버리 알고리즘이 선택되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  18. 메모리 장치에 대한 메모리 동작을 제어하는 프로세서;
    상기 메모리 장치로부터 독출된 데이터들에 대한 에러 정정 동작을 수행하고, 상기 메모리 장치의 모니터링 단위에 대해 노멀 독출 레벨을 이용하여 수집되는 하드 디시전 정보와 하나 이상의 오프셋 독출 레벨들을 이용하여 수집되는 소프트 디시전 정보에 기초하여 제1 스트롱 에러 정보를 생성하고, 호스트로부터의 독출 요청에 응답하여 상기 모니터링 단위에 대해 재차 수집된 상기 하드 디시전 정보 및 상기 소프트 디시전 정보를 기초로 제2 스트롱 에러 정보를 생성하는 ECC(Error correcting code) 회로; 및
    상기 제1 스트롱 에러 정보 또는 상기 제2 스트롱 에러 정보를 저장하는 휘발성 메모리를 구비하고,
    상기 노멀 독출 레벨과 상기 오프셋 독출 레벨들은 상이한 값을 가지며,
    상기 ECC 회로는, 상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보를 이용하여 상기 호스트로부터 독출 요청된 데이터의 에러를 정정하는 것을 특징으로 하는 메모리 컨트롤러.
  19. 제18항에 있어서,
    상기 제1 스트롱 에러 정보 및 상기 제2 스트롱 에러 정보 중 적어도 하나를 기초로, 상기 메모리 장치의 에러 정정에 이용되는 리커버리 알고리즘을 선택하거나 상기 모니터링 단위를 포함하는 셀 블록에 대한 리드 리클레임 수행 여부를 판단하는 스트롱 에러 관리 모듈을 더 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  20. 제19항에 있어서,
    상기 스트롱 에러 관리 모듈은, 상기 제1 스트롱 에러 정보를 상기 휘발성 메모리에 저장한 후, 상기 제2 스트롱 에러 정보를 상기 휘발성 메모리에 업데이트하는 동작을 제어하는 것을 특징으로 하는 메모리 컨트롤러.
KR1020220004333A 2021-11-15 2022-01-11 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법 KR102505857B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/839,369 US11886293B2 (en) 2021-11-15 2022-06-13 Memory controller managing strong error information and operating method thereof
CN202211000588.1A CN116126582A (zh) 2021-11-15 2022-08-19 管理强错误信息的存储器控制器及其操作方法
EP22191565.5A EP4181130A1 (en) 2021-11-15 2022-08-22 Memory controller managing strong error information and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210157082 2021-11-15
KR1020210157082 2021-11-15

Publications (1)

Publication Number Publication Date
KR102505857B1 true KR102505857B1 (ko) 2023-03-06

Family

ID=85510063

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220004333A KR102505857B1 (ko) 2021-11-15 2022-01-11 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법

Country Status (1)

Country Link
KR (1) KR102505857B1 (ko)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955157B1 (ko) * 2008-12-24 2010-04-28 서울대학교산학협력단 메모리 장치 및 메모리 장치의 관리 방법
KR20150074655A (ko) * 2013-12-24 2015-07-02 에스케이하이닉스 주식회사 메모리 시스템
KR20150075170A (ko) * 2013-12-24 2015-07-03 삼성전자주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
KR20170120442A (ko) * 2016-04-21 2017-10-31 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR20180009558A (ko) * 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
KR20200037692A (ko) * 2018-10-01 2020-04-09 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210020689A (ko) * 2019-08-16 2021-02-24 삼성전자주식회사 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
KR20210083466A (ko) * 2019-12-26 2021-07-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955157B1 (ko) * 2008-12-24 2010-04-28 서울대학교산학협력단 메모리 장치 및 메모리 장치의 관리 방법
KR20150074655A (ko) * 2013-12-24 2015-07-02 에스케이하이닉스 주식회사 메모리 시스템
KR20150075170A (ko) * 2013-12-24 2015-07-03 삼성전자주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
KR20170120442A (ko) * 2016-04-21 2017-10-31 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR20180009558A (ko) * 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
KR20200037692A (ko) * 2018-10-01 2020-04-09 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210020689A (ko) * 2019-08-16 2021-02-24 삼성전자주식회사 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
KR20210083466A (ko) * 2019-12-26 2021-07-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Similar Documents

Publication Publication Date Title
KR102585221B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR102102224B1 (ko) 저장 장치 및 그것의 프로그램 방법
US8839080B2 (en) Methods of performing error detection/correction in nonvolatile memory devices
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
US11450400B2 (en) Controller and operating method thereof
KR20170111375A (ko) 메모리 시스템 및 그의 동작 방법
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR20170058676A (ko) 메모리 시스템 및 그의 동작방법
CN111916136A (zh) 存储控制器和存储装置
KR20170099018A (ko) 메모리 시스템 및 그의 동작방법
KR20170076883A (ko) 메모리 시스템 및 그의 동작방법
US12002519B2 (en) Operation method of controller configured to control nonvolatile memory device and operation method of storage device
US20230307062A1 (en) Non-volatile memory device, operating method thereof, controller for controlling the same, and storage device including the same
KR20220008058A (ko) 컨트롤러 및 컨트롤러의 동작방법
KR20160131379A (ko) 메모리 시스템
CN113806254B (zh) 存储器系统、存储器控制器及存储器系统的操作方法
EP4181130A1 (en) Memory controller managing strong error information and operating method thereof
US20230146041A1 (en) Non-volatile memory device including multi-stack memory block and operating method thereof
KR102505857B1 (ko) 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US10984851B2 (en) Memory system and method for operating the same
CN114187949A (zh) 存储器系统及其操作方法
US11966608B2 (en) Memory controller with improved data reliability and memory system including the same
US20230368845A1 (en) Partial block read level voltage compensation to decrease read trigger rates
KR20230071013A (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN115966234A (zh) 半导体存储器装置和操作半导体存储器装置的方法

Legal Events

Date Code Title Description
GRNT Written decision to grant