KR102460717B1 - 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 - Google Patents

최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 Download PDF

Info

Publication number
KR102460717B1
KR102460717B1 KR1020210108179A KR20210108179A KR102460717B1 KR 102460717 B1 KR102460717 B1 KR 102460717B1 KR 1020210108179 A KR1020210108179 A KR 1020210108179A KR 20210108179 A KR20210108179 A KR 20210108179A KR 102460717 B1 KR102460717 B1 KR 102460717B1
Authority
KR
South Korea
Prior art keywords
read
cell count
level
memory
counting
Prior art date
Application number
KR1020210108179A
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 KR1020210108179A priority Critical patent/KR102460717B1/ko
Priority to US17/685,024 priority patent/US20230057932A1/en
Priority to EP22168453.3A priority patent/EP4138081A1/en
Priority to TW111118386A priority patent/TW202309909A/zh
Priority to CN202210540102.7A priority patent/CN115910171A/zh
Application granted granted Critical
Publication of KR102460717B1 publication Critical patent/KR102460717B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/30Power supply 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output 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/26Sensing or reading circuits; Data output circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는, 메모리 장치에 대한 메모리 동작을 제어하는 프로세서 및 다수의 독출 레벨들을 이용하여 독출된 데이터에 대한 카운팅 동작에 기초하여 생성되는 N 개의 독출 레벨들에 대응하는 N 개의 카운팅 값들을 수신하고, 상기 N 개의 독출 레벨들 중에서 선택된 일부의 독출 레벨들을 입력으로 하고 상기 선택된 독출 레벨들에 대응하는 카운팅 값들을 출력으로 하는 적어도 2 개의 셀 카운트 함수들을 모델링하며, 상기 모델링된 셀 카운트 함수들 중 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨을 산출하는 독출 레벨 산출 모듈을 구비하고, 상기 N 개의 카운팅 값들은 적어도 4 개의 서로 다른 독출 레벨들에 대응하는 카운팅 값들을 포함하는 것을 특징으로 한다.

Description

최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법{Memory Controller calculating optimal read level, Memory System having the same and Operating Method of Memory Controller}
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것이며, 더욱 상세하게는, 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 관한 것이다.
불휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. SSD 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
플래시 메모리의 데이터 저장 용량이 증가하고 각각의 메모리 셀 당 저장되는 비트의 수가 증가함에 따라, 다수의 문턱전압 산포들 사이의 마진이 감소할 수 있다. 이에 따라, 데이터 독출 과정에서 에러를 최소화하기 위해서는 다수의 문턱전압 산포들을 판별할 수 있는 최적의 독출 레벨 산출이 필요로 된다. 그러나, 상기와 같이 다수의 문턱전압 산포들 사이의 마진이 감소함과 함께, 독출 과정에서 발생될 수 있는 노이즈로 인하여 최적의 독출 레벨을 산출하는 데는 한계가 발생될 수 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 최적의 독출 레벨을 산출할 수 있는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는, 메모리 장치에 대한 메모리 동작을 제어하는 프로세서 및 다수의 독출 레벨들을 이용하여 독출된 데이터에 대한 카운팅 동작에 기초하여 생성되는 N 개의 독출 레벨들에 대응하는 N 개의 카운팅 값들을 수신하고, 상기 N 개의 독출 레벨들 중에서 선택된 일부의 독출 레벨들을 입력으로 하고 상기 선택된 독출 레벨들에 대응하는 카운팅 값들을 출력으로 하는 적어도 2 개의 셀 카운트 함수들을 모델링하며, 상기 모델링된 셀 카운트 함수들 중 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨을 산출하는 독출 레벨 산출 모듈을 구비하고, 상기 N 개의 카운팅 값들은 적어도 4 개의 서로 다른 독출 레벨들에 대응하는 카운팅 값들을 포함하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는, 다수의 독출 동작들을 통해 독출된 데이터들을 기초로, 다수의 독출 레벨들에 대응하는 다수의 카운팅 값들을 산출하는 단계와, 상기 다수의 독출 레벨들 중에서 선택된 일부의 독출 레벨들을 입력으로 하고, 상기 선택된 독출 레벨들에 대응하는 카운팅 값들을 출력으로 하여 모델링된 다수 개의 셀 카운트 함수들 중에서 어느 하나의 셀 카운트 함수를 최적 카운트 함수로서 선택하는 단계 및 상기 최적 셀 카운트 함수를 기초로 산출된 최적 독출 레벨에 관련된 정보를 출력하는 단계를 구비하고, 상기 다수 개의 셀 카운트 함수들 각각에서 상기 다수의 독출 레벨들 중 적어도 일부를 입력으로 하는 함수 값들이 산출되고, 상기 산출된 함수 값들과 상기 다수의 카운팅 값들을 비교함에 의해 상기 최적 셀 카운트 함수가 선택되는 것을 특징으로 한다.
본 개시의 기술적 사상의 일측면에 따른 메모리 시스템에 있어서, 상기 메모리 시스템은 메모리 장치를 구비하고, 상기 메모리 장치는, 다수의 메모리 셀들을 포함하는 메모리 셀 어레이와, 상기 메모리 셀 어레이에 대한 독출 동작에 이용되는 다수의 독출 레벨들을 갖는 다수의 독출 전압들을 생성하는 전압 생성기 및 상기 메모리 셀 어레이에 대해 독출된 데이터에 에러가 발생됨에 따라 상기메모리 셀 어레이에 대해 상기 다수의 독출 레벨들을 이용하는 재독출 동작을 제어하고, 상기 재독출 동작에서 독출된 데이터에 대한 카운팅 동작에 기초하여 N 개의 독출 레벨들에 대응하는 N 개의 카운팅 값들을 생성하는 제어 로직을 구비하고, 상기 N 개의 카운팅 값들은, 상기 N 개의 독출 레벨들 중 일부를 입력으로 갖는 적어도 두 개의 셀 카운트 함수를 모델링하기 위한 정보를 포함하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 따르면, 최적의 독출 레벨을 산출함에 있어서 노이즈가 존재하는 환경에서의 독출 결과의 영향을 감소 또는 제거할 수 있으므로, 정확한 최적 독출 레벨의 산출이 가능하고 데이터의 에러 가능성을 감소시킬 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 따르면, 다수의 독출 레벨들 및 이에 대응하는 카운팅 값을 이용함에 있어서, 다수의 독출 레벨들 중에서 일부의 독출 레벨을 선택함으로써 다양한 종류의 셀 카운트 함수들이 모델링될 수 있고, 또한 각각의 종류에 대해 다수의 셀 카운트 함수들이 모델링될 수 있으므로, 독출 재시도 동작에서의 독출 성공 가능성을 향상할 수 있는 효과가 있다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 메모리 컨트롤러에 구비되는 독출 레벨 산출 모듈의 일 구현 예를 나타내는 블록도이다.
도 3a,b은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 실시예들에 따른 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 6은 도 1의 메모리 셀 어레이를 예시적으로 나타내는 도면이다.
도 7은 도 6의 메모리 블록의 구조의 일 예를 나타내는 사시도이다.
도 8a,b는 본 개시의 실시예들이 적용되지 않는 경우와 적용되는 경우에서의 셀 카운트 함수의 모델링 예를 나타내는 도면이다.
도 9는 본 개시의 다양한 실시예들에 따라 셀 카운팅 값을 산출하는 예를 나타내는 도면이다.
도 10 및 도 11은 본 개시의 예시적인 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 12는 도 11의 실시예에서의 모델링 적합 여부 판단 및 추가의 카운팅 값을 획득하는 예를 나타내는 도면이다.
도 13은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 14는 본 개시의 실시예들에서의 셀 카운트 함수가 3차 함수로 모델링되는 경우를 나타내는 도면이다.
도 15는 본 개시의 실시예들에 따른 메모리 시스템을 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 16은 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 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)에 어드레스(ADDR), 커맨드(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)는 다수의 문턱전압 산포들을 판별하기 위해 다양한 레벨들을 갖는 독출 전압을 제공할 수 있다. 또한, 어느 하나의 문턱전압 산포를 판별함에 있어서 하나 이상의 독출 레벨을 이용한 독출 동작이 수행될 수 있으며, 본 개시의 예시적인 실시예에 따라 어느 하나의 문턱전압 산포를 판별하기 위해 다수의 독출 동작들이 수행될 수 있고, 전압 생성기(220)는 전압 제어기(231)의 제어에 기초하여 상기한 다수의 독출 동작들에서 독출 전압의 레벨을 변경하여 출력할 수 있다.
제어 로직(230)은 메모리 장치(200)의 전반적인 동작을 제어할 수 있고, 일 예로서 메모리 컨트롤러(100)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로, 메모리 셀 어레이(210)에 데이터를 프로그램하거나 메모리 셀 어레이(210)로부터 데이터를 독출하기 위한 각종 내부 제어 신호를 출력할 수 있다. 또한, 제어 로직(230)은 프로그램 동작, 독출 동작 및 소거 동작과 관련하여 전압 생성기(220)로부터 출력되는 각종 전압들의 레벨을 조절하는 전압 제어신호(미도시)를 출력할 수도 있다.
예시적인 실시예에 따라, 메모리 셀 어레이(210)에서 독출된 데이터에 에러가 검출되거나, 또는 정정 불가능한 에러가 발생된 경우에는, 메모리 컨트롤러(100)는 메모리 셀 어레이(210)에 대한 독출을 재시도할 수 있다. 예컨대, 메모리 컨트롤러(100)는 에러 발생을 최소화할 수 있는 최적의 독출 레벨을 산출하기 위한 각종 내부 처리 동작을 수행할 수 있으며, 또한 독출을 재시도하는 과정에서 메모리 장치(200) 내에서의 독출 동작에 관련하여 각종 제어 동작을 수행할 수 있다.
예시적인 실시예에 따라, 독출 재시도 과정에서 다수의 독출 레벨들을 이용한 독출 동작이 수행될 수 있고, 상기한 다수의 독출 레벨들을 이용하여 독출된 데이터를 기초로 최적 독출 레벨이 산출될 수 있다. 본 개시의 실시예에 따라, 최적 독출 레벨 산출과 관련하여, 메모리 장치(200)는 다수 개(예컨대, M 개)의 독출 레벨들을 이용하여 독출된 독출 데이터들(RD[1:M])을 메모리 컨트롤러(100)로 제공할 수 있다. 또한, 본 개시의 예시적인 실시예에서, 상기 독출 데이터들(RD[1:M])은 서로 다른 레벨들을 갖는 적어도 4 개의 독출 레벨들을 이용하여 독출된 데이터들일 수 있다.
한편, 본 개시의 예시적인 실시예에 따라, 최적 독출 레벨은 상기한 독출 데이터들(RD[1:M])에 대한 카운팅 결과를 기초로 카운팅 값들을 산출하고, 상기 산출된 카운팅 값들의 조합을 이용한 다수의 셀 카운트 함수들을 모델링함에 기반하여 산출될 수 있다. 예컨대, 메모리 컨트롤러(100)는 카운팅 로직(130)을 포함할 수 있고, 카운팅 로직(130)은 상기 다수의 독출 레벨들을 이용하여 독출된 독출 데이터들(RD[1:M])에 대한 카운팅 동작(예컨대, 온 셀 또는 오프 셀 카운팅)을 수행할 수 있다. 일 예로서, N 개의 독출 레벨들에 대응하는 카운팅 값(CNT[1:N])이 카운팅 로직(130)에 의해 생성될 수 있다. 다양한 실시예들에 따라, 독출 데이터들(RD[1:M])의 생성에 이용된 독출 레벨들의 개수(예컨대, M 개)와, 산출된 카운팅 값(CNT[1:N])의 개수(예컨대, N 개)는 동일할 수 있으며, 또한 상이할 수도 있다. 즉, 본 개시의 실시예들에서, 독출 데이터들(RD[1:M])을 이용한 카운팅 값(CNT[1:N])의 생성 동작은 다양하게 구현될 수 있을 것이다.
본 개시의 실시예에 따라, 메모리 컨트롤러(100)는 독출 레벨 산출 모듈(120)을 포함할 수 있다. 또한, 상기 산출된 카운팅 값(CNT[1:N])은 독출 레벨 산출 모듈(120)로 제공될 수 있다. 독출 레벨 산출 모듈(120)은 카운팅 값(CNT[1:N])) 및 적어도 하나의 정보를 기초로 문턱전압 산포를 판별하기 위한 최적 독출 레벨을 산출할 수 있고, 메모리 컨트롤러(100)는 산출된 최적 독출 레벨에 따라 데이터가 독출되도록 상기 산출된 최적 독출 레벨에 관련된 정보(이하, 독출 레벨 정보로 지칭함(Info_ORL))를 메모리 장치(200)로 제공할 수 있다. 예컨대, 메모리 컨트롤러(100)가 상기 산출 결과를 기초로 독출 전압의 레벨을 제어하기 위한 제어신호를 제공하거나, 또는 상기 최적 독출 레벨에 관련된 정보가 메모리 장치(200)로 제공되고, 메모리 장치(200)는 이를 기초로 독출 전압의 레벨을 제어하기 위한 내부 제어신호를 생성할 수도 있을 것이다.
본 개시의 예시적인 실시예에서의 구체적인 동작 예를 설명하면 다음과 같다.
서로 인접한 문턱전압 산포들 사이의 마진이 감소하는 경우, 데이터 독출 과정에서 에러 발생 가능성이 높으며, 에러가 검출되거나 정정 불가능한 에러가 발생된 경우에는 상기한 서로 인접한 문턱전압 산포들 사이의 최적의 독출 레벨을 산출하기 위한 동작(예컨대, 방어 코드)이 수행될 수 있다.
독출 레벨 산출 모듈(120)은 N 개의 카운팅 값(CNT[1:N]) 중 적어도 3 개의 카운팅 값들을 이용하여 하나의 셀 카운트 함수를 모델링할 수 있으며, 일 예로서 독출 레벨을 입력으로 하고 카운팅 값을 출력으로 하는 2차 함수를 모델링할 수 있다. 또한, 카운팅 값(CNT[1:N])이 4 개 이상인 경우에는, 독출 레벨 산출 모듈(120)은 상기 카운팅 값(CNT[1:N])의 다양한 조합들에 기초하여 두 개 이상의 셀 카운트 함수들을 모델링할 수 있다.
독출 레벨 산출 모듈(120)은 상기 모델링된 다수의 셀 카운트 함수들 중 어느 하나의 최적 셀 카운트 함수를 선택할 수 있다. 예컨대, 각각의 셀 카운트 함수를 통해 각각의 독출 레벨을 입력으로 하는 카운팅 값(이하, 함수 값 또는 추정 카운팅 값으로 지칭함)이 산출될 수 있고, 카운팅 값(CNT[1:N])과 상기 산출된 추정 카운팅 값의 비교를 기초로 하여 최적 셀 카운트 함수가 선택될 수 있다. 예컨대, 각각의 셀 카운트 함수에 대해, N 개의 카운팅 값(CNT[1:N])에 대응하는 N 개의 독출 레벨을 입력으로 하여 N 개의 추정 카운팅 값이 산출될 수 있으며, 카운팅 값(CNT[1:N])과 상기 산출된 추정 카운팅 값의 차이에 기초하여, 그 차이가 상대적으로 가장 작은 셀 카운트 함수가 최적 셀 카운트 함수로서 선택될 수 있다. 만약, 카운팅 값(CNT[1:N])과 추정 카운팅 값의 차이가 상대적으로 작은 경우에는, 해당 셀 카운트 함수가 실제 메모리 셀들의 문턱전압 산포를 적절히 반영하는 것으로 판단될 수 있고, 상기 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨이 산출될 수 있다.
상기와 같은 본 개시의 예시적인 실시예에 따르면, 다수의 셀 카운트 함수들이 모델링될 수 있도록, 서로 다른 다수의 독출 레벨들에 대응하는 카운팅 값(CNT[1:N])을 이용하여 다수의 셀 카운트 함수들이 모델링되고, 상기 모델링된 다수의 셀 카운트 함수들 중에서 최적의 셀 카운트 함수가 선택될 수 있으므로, 데이터 독출 동작에 노이즈가 있는 환경에서 상기 노이즈의 영향을 최소화할 수 있다. 예컨대, 상기한 다수의 독출 레벨들 중 일부에서 데이터 독출 과정에 노이즈가 발생된 경우에도, 노이즈 영향이 상대적으로 작은 다른 독출 레벨들을 기초로 모델링된 셀 카운트 함수가 선택될 수 있으므로, 상기한 노이즈 환경에서도 최적의 독출 레벨이 산출될 수 있다.
또한, 상기와 같은 본 개시의 예시적인 실시예에 따르면, NAND 등 메모리 장치의 공정 미세화로 인해 메모리 셀들 사이의 간섭이 증가하고, 각 메모리 셀이 저장하는 비트의 개수가 증가함에 따라 문턱전압 산포들 사이의 거리가 감소하는 등, 메모리 장치의 집적도가 높아질수록 노이즈 발생 빈도 및 강도가 강해질 수 있는데, 본 개시의 예시적인 실시예에서의 메모리 시스템(10)은 노이즈 환경에도 불구하고 최적의 독출 레벨이 산출될 수 있다.
한편, 상기한 실시예에서는 카운팅 값(CNT[1:N])이 메모리 컨트롤러(100)에서 생성되는 경우가 예시되었으나, 본 개시의 실시예는 이에 국한될 필요가 없다. 예컨대, 메모리 장치(200)에 카운팅 로직이 구비됨에 따라 다수의 독출 레벨들을 이용하여 독출된 데이터에 대한 카운팅 동작이 메모리 장치(200)에서 수행될 수 있고, 메모리 장치(200)는 상기한 실시예에서의 카운팅 값(CNT[1:N])을 메모리 컨트롤러(100)로 제공할 수도 있을 것이다.
도 2는 도 1의 메모리 컨트롤러에 구비되는 독출 레벨 산출 모듈의 일 구현 예를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 독출 레벨 산출 모듈(120)은 모델링 모듈(121), 에러 비교 모듈(122), 연산 모듈(123)을 포함할 수 있고, 상기 도 2에 도시된 각종 모듈들은 하드웨어로 또는 소프트웨어로 구현되거나, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있다. 일 예로서, 독출 레벨 산출 모듈(120)이 펌웨어를 포함하는 소프트웨어로 구현되는 경우, 메모리 컨트롤러(100)는 소프트웨어를 저장하는 메모리(미도시)를 포함할 수 있으며, 독출 레벨 산출 모듈(120)은 소프트웨어 형태로 상기 메모리에 로딩되어 프로세서(110)에 의해 실행될 수 있다. 일 실시예에 따라, 메모리 컨트롤러(100)는 FTL(Flash Translation Layer)를 포함하고 독출 레벨 산출 모듈(120)의 기능의 적어도 일부는 FTL에 포함될 수 있다.
독출 레벨 산출 모듈(120)은 전술한 카운팅 값(CNT[1:N]) 및 적어도 하나의 정보를 기초로 최적 독출 레벨에 관련된 독출 레벨 정보(Info_ORL)를 생성할 수 있다. 메모리 컨트롤러(100)는 독출 레벨 정보(Info_ORL)를 처리하여 독출 전압의 레벨을 변경하기 위한 전압 제어신호를 메모리 장치(200)로 제공하거나, 또는 메모리 장치(200)가 독출 레벨 정보(Info_ORL)를 수신하고 이를 처리하여 전압 제어신호를 생성할 수도 있을 것이다.
독출 레벨 산출 모듈(120)은 전술한 카운팅 값(CNT[1:N])과 함께, 제1 정보(Info_RLN) 및 제2 정보(Info_RL)를 기초로 독출 레벨 정보(Info_ORL)를 생성할 수 있다. 제1 정보(Info_RLN)는 상기 카운팅 값(CNT[1:N])에 대응하는 다수의 독출 레벨들의 개수에 관련된 정보일 수 있고, 제2 정보(Info_RL)는 다수의 독출 레벨들에 대응하는 전압 레벨에 관련된 정보일 수 있다. 예시적인 실시예에서, 제1 정보(Info_RLN)는 카운팅 값(CNT[1:N])의 개수에 관련된 정보로도 정의될 수 있을 것이다. 즉, 독출 레벨 산출 모듈(120)은 셀 카운트 함수들을 모델링함에 있어서, 독출 레벨들에 상응하는 전압 레벨들이 입력에 해당하고, 상기 카운팅 값(CNT[1:N])이 출력에 해당하는 셀 카운트 함수들을 모델링할 수 있다. 또한, 2 차 함수에 해당하는 셀 카운트 함수를 모델링하는 경우 3 개의 독출 레벨들 및 이에 대응하는 카운팅 값을 통해 셀 카운트 함수가 모델링될 수 있으며, 독출 레벨 산출 모듈(120)은 독출 레벨들의 개수에 관련된 정보를 참조하여 다수의 셀 카운트 함수들을 모델링할 수 있다.
한편, 상기한 제1 정보(Info_RLN) 및 제2 정보(Info_RL)는 메모리 컨트롤러(100) 내에서 생성되는 정보일 수 있다. 예컨대, 독출 레벨 산출 모듈(120)의 실행에 기초하여 최적 독출 레벨을 산출하기 위한 각종 조건들이 판단될 수 있고, 최적 독출 레벨의 산출에 이용되는 다수의 독출 레벨들의 개수와 전압 레벨의 판단을 기초로 제1 정보(Info_RLN) 및 제2 정보(Info_RL)가 생성될 수 있다.
모델링 모듈(121)은 전술한 바와 같이 다수의 셀 카운트 함수들을 모델링할 수 있으며, 예컨대 다수의 셀 카운트 함수들 각각의 계수들을 산출할 수 있다. 구체적으로, 2차 함수의 수식은
Figure 112021094529905-pat00001
로 정의될 수 있으며, 모델링 모듈(121)은 다수의 셀 카운트 함수들 각각의 계수값으로서 a, b, c를 산출할 수 있다. 상기 계수 a, b, c는, 임의의 선택된 3 개의 독출 레벨들을 x 에 대입하고, 이에 대응하는 카운팅 값들을 y 에 대입함으로써 산출될 수 있다. 또한, N 개의 독출 레벨들 중 임의의 3 개의 독출 레벨들이 선택되어 하나의 셀 카운트 함수가 모델링될 수 있으므로, 모델링 모듈(121)은 상기 N 개의 독출 레벨들 중 선택될 수 있는 3 개의 독출 레벨들은 다수 개의 조합들을 가질 수 있으며, 이에 따라 모델링 모듈(121)은 다수 개의 셀 카운트 함수들을 모델링할 수 있다.
에러 비교 모듈(122)은 상기 모델링된 다수의 셀 카운트 함수들 중 최적의 셀 카운트 함수를 선택할 수 있다. 예컨대, 에러 비교 모듈(122)은 상기 모델링된 다수의 셀 카운트 함수들의 x 에 독출 레벨을 대입함으로써 y 값을 산출할 수 있고, 상기 산출된 y 값은 추정 카운팅 값으로 지칭될 수 있다. 예컨대, 에러 비교 모듈(122)은 각각의 셀 카운트 함수에 대해 상기한 N 개의 독출 레벨들을 x 에 대입할 수 있고, 이에 따른 함수 값(또는, y 값)으로서 N 개의 추정 카운팅 값을 산출할 수 있다. 또한, 본 개시의 예시적인 실시예에서, 각각의 셀 카운트 함수에 대해 상기한 N 개의 독출 레벨들이 모두 대입될 수 있으며, 또는 N 개의 독출 레벨들 중 적어도 일부만이 대입될 수도 있을 것이다.
에러 비교 모듈(122)은 각각의 셀 카운트 함수에 대해 산출된 추정 카운팅 값과, 상기한 카운팅 값(CNT[1:N], 이하, 실제 카운팅 값으로 지칭함)에 대한 비교 동작을 수행할 수 있다. 예컨대, 다수의 셀 카운트 함수 모델들 중에서, 추정 카운팅 값과 실제 카운팅 값의 차이가 적은 셀 카운트 함수 모델이 실제 메모리 셀들의 문턱전압 산포 특성을 최적으로 반영하고 있는 것으로 판단될 수 있다.
최적 셀 카운트 함수를 선택함에 있어서, N 개의 독출 레벨들이 각각의 셀 카운트 함수에 대입되는 것으로 가정하면, 에러 비교 모듈(122)은 카운팅 값(CNT[1:N])과 N 개의 추정 카운팅 값에 대한 차이를 기초로 해당 셀 카운트 함수의 에러(예컨대, 평균 에러)를 산출할 수 있다. 에러 비교 모듈(122)은 다수의 셀 카운트 함수들 중 가장 작은 평균 에러를 갖는 셀 카운트 함수를 최적 셀 카운트 함수로서 선택할 수 있다. 상기 평균 에러의 산출은 다양한 방법 및 수식들을 통해 산출될 수 있으며, 일 예로서 MAE(Mean Absolute Error), MSE(Mean Square Error) 등에 기초하여 산출 동작이 가능할 것이다.
한편, 연산 모듈(123)은 상기 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨을 산출할 수 있다. 예컨대, 2 차 함수 형태의 셀 카운트 함수에서 y 값이 가장 작도록 하는 x 값(예컨대, 독출 레벨)의 경우에는, 상기 x 값을 기준으로 좌우 측으로 셀 카운트의 변화가 작음을 나타낼 수 있고, 이에 따라 셀 카운트의 변화가 작은 위치의 독출 레벨이 서로 다른 인접한 두 개의 문턱전압 산포들을 구분하는 최적의 위치에 해당할 수 있다. 이에 따라, 최적 셀 카운트 함수에서 y 값(또는, 추정 카운팅 값)이 가장 작도록 하는 x 값의 위치가 최적 독출 레벨로 산출될 수 있을 것이다. 예컨대, 2 차 함수 형태의 셀 카운트 함수에 대한 미분 연산을 통해 최적 독출 레벨이 산출되거나, y 의 최소값 산출을 수행하는 연산을 통해 최적 독출 레벨이 산출될 수 있을 것이다.
도 3a,b은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3a,b를 참조하면, 메모리 컨트롤러(300)는 호스트 인터페이스(310), 프로세서(320), RAM(330), ECC 회로(340), 버퍼(350), 메모리 인터페이스(360) 및 카운팅 로직(370)을 포함할 수 있다. 또한, RAM(330)은 동작 메모리(Working memory)로서 이용될 수 있으며, 프로세서(320)는 RAM(330)에 로딩된 펌웨어(firmware)를 실행함으로써 메모리 컨트롤러(300)의 전반적인 동작을 제어할 수 있다. RAM(330)은 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나로 구현될 수 있다. 또한, 펌웨어(firmware)의 일 예로서 플래시 변환 계층(FTL)이 RAM에 로딩될 수 있으며, 플래시 변환 계층(Flash Translation Layer, FTL)을 구동함에 의해 플래시 메모리 동작에 관련된 다양한 기능들이 수행될 수 있다.
전술한 실시예에서, 독출 레벨 산출 모듈은 모델링 모듈(331), 에러 비교 모듈(332) 및 연산 모듈(333)을 포함할 수 있고, 독출 레벨 산출 모듈이 펌웨어로서 소프트웨어로 구현되는 경우, 도 3b에 도시된 바와 같이 모델링 모듈(331), 에러 비교 모듈(332) 및 연산 모듈(333)은 RAM(330)에 로딩되어 프로세서(320)에 의해 실행될 수 있다. 예컨대, 독출 레벨 산출 모듈은 메모리 장치(NVM)에 불휘발성하게 저장되고, 메모리 시스템의 초기 구동시 메모리 장치로부터 독출된 독출 레벨 산출 모듈이 메모리 컨트롤러(300)의 RAM(330) 에 로딩될 수 있다.
호스트 인터페이스(310)는 호스트와 전술한 실시예에 따른 다양한 종류의 인터페이스를 통해 호스트와 통신할 수 있다. 또한, 메모리 인터페이스(360)는 메모리 컨트롤러(300)와 메모리 장치(NVM) 사이의 물리적 연결을 제공한다. 예컨대 커맨드/어드레스 및 데이터 등이 메모리 인터페이스(360)를 통해 메모리 컨트롤러(300)와 메모리 장치(NVM) 사이에서 송수신될 수 있다. 호스트로부터 기록 요청되는 데이터와 메모리 장치(NVM)로부터 독출된 데이터는 버퍼(350)에 일시 저장될 수 있다. 또한, ECC 회로(340)는 기록 요청되는 데이터와 독출된 데이터에 대한 ECC 인코딩 및 디코딩 처리를 수행할 수 있고, 이에 따라 데이터의 에러를 검출 및 정정할 수 있다.
ECC 회로(340)는 메모리 장치(NVM)로부터 독출된 데이터에 대해 에러 검출 및 정정 동작을 수행할 수 있고, 에러가 발생되거나 또는 에러가 정정되지 않는 경우에 전술한 실시예들에 따른 독출 레벨 산출 모듈이 실행될 수 있다. 예컨대, 메모리 컨트롤러(300)의 제어에 기초하여 메모리 장치(NVM)에서 다수의 독출 레벨들을 이용한 독출 동작이 수행되고, 독출된 다수의 데이터들이 메모리 컨트롤러(300)로 제공될 수 있으며, 카운팅 로직(370)은 수신된 데이터에 대한 카운팅 동작에 기반하여 다수의 독출 레벨들에 대응하는 다수의 카운팅 값을 산출할 수 있다. 또한, 독출 레벨 산출 모듈의 실행에 기반하여 다수의 셀 카운트 함수들의 모델링, 최적 셀 카운트 함수의 산출 및 최적 독출 레벨의 산출 동작이 수행될 수 있다.
도 4는 본 개시의 실시예들에 따른 메모리 장치의 일 구현 예를 나타내는 블록도이다. 도 4는 메모리 장치로서 플래시 메모리 장치의 일 구현 예를 나타낸다.
도 4를 참조하면, 메모리 장치(400)는 메모리 셀 어레이(410), 전압 생성기(420), 제어 로직(430), 로우 디코더(440) 및 페이지 버퍼(450)를 포함할 수 있다. 메모리 셀 어레이(410)의 메모리 셀들은 워드라인들(WL), 스트링 선택 라인들(SSL), 접지 선택 라인들(GSL) 및 비트라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(410)는 워드라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 로우 디코더(440)에 연결되고, 비트라인들(BL)을 통해 페이지 버퍼(450)에 연결될 수 있다. 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있으며, 일 예로서 각 메모리 셀은 멀티 레벨 셀(Multi Level Cell, MLC), 트리플 레벨 셀(Triple Level Cell, TLC) 또는 쿼드 레벨 셀(Quad Level Cell, QLC)에 해당할 수 있다.
제어 로직(430)은 메모리 컨트롤러로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로, 메모리 셀 어레이(410)에 프로그램, 독출 및 소거 동작을 제어하기 위한 각종 내부 제어 신호를 출력할 수 있다. 일 예로서, 제어 로직(430)은 전압 제어기(431)를 포함하고, 전압 생성기(420)에서 생성되는 각종 전압들의 레벨을 제어하기 위한 전압 제어신호(CTRL_vol)를 출력할 수 있으며, 로우 디코더(440)에 로우 어드레스(X-ADDR)를 제공할 수 있으며, 페이지 버퍼(450)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있다.
제어 로직(430)은 최적 독출 레벨을 산출하기 위해 서로 다른 독출 레벨로서 다수의 독출 동작이 수행되도록 전압 제어신호(CTRL_vol)를 출력할 수 있고, 전압 생성기(420)는 전압 제어신호(CTRL_vol)에 기초하여 다수의 독출 전압들(Vol_R[1:M])을 생성할 수 있다. 일 예로서, 제어 로직(430)은 어느 하나의 독출 레벨을 시작 위치로 하여 소정의 레벨 간격에 따라 독출 레벨이 변동되도록 전압 제어신호(CTRL_vol)를 출력할 수 있다. 또한, 제어 로직(430)은 전술한 실시예에 따라 산출된 최적 독출 레벨에 관련된 정보를 포함하는 독출 레벨 정보(Info_ORL)를 수신하고, 최적 독출 레벨에 따라 데이터가 독출되도록 전압 생성기(420)를 제어할 수 있다.
예시적인 실시예에 따라, 제어 로직(430)은 카운팅 로직(432)를 포함할 수 있다. 예컨대, 전술한 실시예에서 설명된 다수의 독출 레벨들에 대응하는 카운팅 값(CNT[1:N])은 메모리 장치(400)에서 생성되어 메모리 컨트롤러로 제공되도록 메모리 시스템이 구현될 수도 있을 것이다. 본 개시의 다양한 실시예들에 따라, 독출 전압들(Vol_R[1:M])의 개수와 카운팅 값들(CNT[1:N])은 동일하게 구현될 수도 있고, 또는 다르게 구현될 수도 있을 것이다. 즉, 본 개시의 실시예들에 따라 다수의 독출 레벨들을 이용한 독출 동작과 이에 기초하는 카운팅 값의 산출은 다양한 형태로 구현될 수 있으며, 그 구현 예는 차후에 서술될 것이다.
도 5는 본 개시의 일 실시예에 따라 도 1의 메모리 장치의 구조를 개략적으로 나타내는 도면이고, 도 6은 도 1의 메모리 셀 어레이를 예시적으로 나타내는 도면이며, 도 7은 도 6의 메모리 블록의 구조의 일 예를 나타내는 사시도이다. 도 5에서는 메모리 장치의 구현 예로서 COP(Cell Over Periphery) 구조가 예시되나, 본 발명의 실시예들은 이에 국한될 필요가 없이 다양한 구조들을 통해 메모리 장치가 구현될 수도 있을 것이다.
도 5를 참조하면, 메모리 장치(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)으로 연장될 수 있다.
한편, 도 6을 참조하면, 메모리 셀 어레이는 복수의 메모리 블록들(BLK0 ~ BLKi)을 포함할 수 있고, i는 양의 정수일 수 있다. 복수의 메모리 블록들(BLK0 ~ BLKi) 중 각각은 3차원 구조(또는 수직 구조)를 가질 수 있다. 구체적으로, 복수의 메모리 블록들(BLK0 ~ BLKi) 중 각각은 수직 방향(VD)을 따라 신장된 복수의 낸드 스트링들을 포함할 수 있다. 이때, 복수의 낸드 스트링들은 제1 및 제2 수평 방향(HD1, HD2)을 따라 특정 거리만큼 이격되어 제공될 수 있다. 복수의 메모리 블록들(BLK0 ~ BLKi)은 로우 디코더(도 1의 240)에 의해 선택될 수 있다. 예를 들면, 로우 디코더는 복수의 메모리 블록들(BLK0 ~ BLKi) 중 블록 어드레스에 대응하는 메모리 블록을 선택할 수 있다.
한편, 도 7을 참조하면, 메모리 블록(BLK0)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제2 수평 방향(HD2)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제2 수평 방향(HD2)을 따라 신장되는 복수의 절연막들(IL)이 수직 방향(VD)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 수직 방향(VD)을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 수평 방향(HD1)을 따라 순차적으로 배치되며, 수직 방향(VD)을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars)(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 '터널링 절연층'이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL0 ~ WL7)과 같은 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제1 수평 방향(HD1)으로 신장되고 제2 수평 방향(HD2)을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 ~ BL3)이 제공된다.
도 8a,b는 본 개시의 실시예들이 적용되지 않는 경우와 적용되는 경우에서의 셀 카운트 함수의 모델링 예를 나타내는 도면이다.
도 8a를 참조하면, 본 개시의 실시예가 적용됨이 없이, 특정한 3 개의 독출 레벨들을 이용하여 하나의 셀 카운트 함수를 모델링한 경우를 나타내며, 예컨대 a 위치의 독출 레벨에서의 셀 카운팅 값, b 위치의 독출 레벨에서의 셀 카운팅 값, c 위치의 독출 레벨에서의 셀 카운팅 값을 기초로 하나의 셀 카운트 함수가 모델링될 수 있다. 이 때, c 위치의 독출 레벨을 이용한 독출 동작에서 노이즈가 발생된 경우, c 위치의 독출 레벨에서의 셀 카운팅 값은 노이즈가 존재하지 않는 경우 정상적으로 판별되는 셀 카운팅 값과 다른 값을 가질 수 있으며, 도 8a에 도시된 예에서는 c 위치의 독출 레벨에서의 셀 카운팅 값은 정상인 경우에 비해 크게 산출되는 경우가 예시된다.
도 8a에 도시된 예에서, 상기와 같은 노이즈 환경에 대응하기 위해 각각의 독출 레벨에서 다수의 독출 동작들이 수행되고, 이를 통해 산출된 다수의 셀 카운팅 값들의 평균 값을 해당 독출 레벨에서의 셀 카운팅 값으로 정의하는 방법이 적용될 수 있으나, 이러한 방법의 경우에도 노이즈 환경에서 산출된 셀 카운팅 값이 최적의 독출 레벨을 산출하는데 이용되기 때문에 그 노이즈 영향을 감소시키는 데 한계가 발생하게 된다.
반면에, 도 8b에 도시된 본 개시의 실시예에 따르면, 다수의 독출 레벨들(예컨대, d 내지 k) 각각에 대응하는 셀 카운팅 값이 산출될 수 있고, 상기 다수의 독출 레벨들(예컨대, d 내지 k)의 개수는 4 개 이상일 수 있다. 또한, 예시적인 실시예에서, 하나의 독출 레벨에 대해 1 회의 독출 동작만이 수행되고, 이에 따라 하나의 독출 레벨에 대응하여 하나의 셀 카운팅 값이 산출될 수 있다.
도 8b에 도시된 실시예에서 독출 레벨 k 를 이용한 독출 동작에서 노이즈가 발생된 것으로 가정하면, 독출 레벨 k 에 대응하는 셀 카운팅 값을 이용하지 않은 셀 카운트 함수(예컨대, 제1 모델)가 모델링될 수 있고, 또한 독출 레벨 k 에 대응하는 셀 카운팅 값을 이용한 셀 카운트 함수(예컨대, 제2 모델)가 모델링될 수 있다. 도 8b에 도시된 바와 같이, 제1 모델에 따른 셀 카운트 함수는 다수의 독출 레벨들에 대해 실제 산출된 셀 카운팅 값과 함수 값을 이용한 추정 카운팅 값의 차이가 작을 수 있다. 반면에, 제2 모델에 따른 셀 카운트 함수는 다수의 독출 레벨들 중 일부(예컨대, 노이즈가 발생된 독출 레벨에 인접한 독출 레벨들)에서 실제 산출된 셀 카운팅 값과 함수 값을 이용한 추정 카운팅 값의 차이가 상대적으로 클 수 있다.
본 개시의 예시적인 실시예에 따라, 실제 산출된 셀 카운팅 값과 함수 값을 이용한 추정 카운팅 값의 차이를 기초로 다수의 셀 카운트 모델들 중 최적 셀 카운트 모델이 선택될 수 있다. 도 8b의 예에서는 제1 모델이 최적 셀 카운트 모델로 선택될 수 있고, 상기 선택된 셀 카운트 모델을 기초로 최적 독출 레벨(예컨대, 제1 독출 레벨)이 산출될 수 있다. 즉, 제2 모델에 따른 셀 카운트 함수로부터 최적 독출 레벨이 산출되는 경우에는 제2 독출 레벨이 최적 독출 레벨에 상응할 수 있으나, 도 8b의 예에서는 본 개시의 실시예들에 따라 산출된 제1 독출 레벨이 상기한 제2 독출 레벨에 비해 더 정확한 값을 갖는 경우가 예시된다.
도 9는 본 개시의 다양한 실시예들에 따라 셀 카운팅 값을 산출하는 예를 나타내는 도면이다. 도 9에서는 세 개의 독출 레벨들에 대응하는 세 개의 셀 카운팅 값들(CNT1, CNT2, CNT3)이 예시된다.
본 개시의 실시예들에서, 각각의 셀 카운팅 값은 어느 하나의 독출 레벨에서의 온 셀의 개수(또는, 오프 셀의 개수)와 다른 하나의 독출 레벨에서의 온 셀의 개수(또는, 오프 셀의 개수)의 차이 값에 상응할 수 있다. 예를 들면, 제1 카운팅 값(CNT1)은 제1 독출 레벨(RL1)로 데이터를 독출한 경우에서의 온 셀의 개수에서, 제2 독출 레벨(RL2)로 데이터를 독출한 경우에서의 온 셀의 개수를 뺀 값에 상응할 수 있다. 이와 유사하게, 제2 카운팅 값(CNT2)은 제2 독출 레벨(RL2)로 데이터를 독출한 경우에서의 온 셀의 개수에서, 제3 독출 레벨(RL3)로 데이터를 독출한 경우에서의 온 셀의 개수를 뺀 값에 상응할 수 있다.
메모리 셀들의 문턱전압 산포들을 고려하면, 소정의 독출 레벨을 기준으로 문턱전압이 좌측에 위치한(또는, 문턱전압이 독출 레벨보다 작은) 메모리 셀들은 온 셀에 해당할 수 있으며, 소정의 독출 레벨을 기준으로 문턱전압이 우측에 위치한(또는, 문턱전압이 독출 레벨보다 큰) 메모리 셀들은 오프 셀에 해당할 수 있다. 이에 따라, 독출 레벨을 소정 구간 낮추어 독출 동작을 수행하는 경우에는, 독출 레벨이 높은 경우에 비해 그 온 셀의 개수가 작게 산출될 수 있다. 이에 따라, 도 9에 도시된 제1 카운팅 값(CNT1)과 제2 카운팅 값(CNT2)은 각각 0 이상의 값을 가질 수 있다.
한편, 두 개의 문턱전압 산포들 사이에 위치하는 최적 독출 레벨을 이용하여 데이터를 독출하는 경우에는 데이터의 에러가 최소화될 수 있다. 예컨대, 상기 두 개의 문턱전압 산포들을 정확하게 판별할 수 있는 위치에서의 두 개의 인접한 독출 레벨들을 이용하여 데이터를 독출하는 경우에는, 상기 두 개의 독출 레벨들을 이용하여 판단된 온 셀들의 개수가 서로 동일 또는 유사할 수 있고, 이에 따라 도 9의 방식을 적용하여 산출된 카운팅 값은 가장 작은 값을 가질 수 있다. 일 예로서, 제3 독출 레벨(RL3)로 데이터를 독출한 경우에서의 온 셀의 개수에서, 제4 독출 레벨(RL4)로 데이터를 독출한 경우에서의 온 셀의 개수를 뺀 값에 상응하는 제3 카운팅 값(CNT3)이 가장 작은 값을 갖는 것으로 가정될 수 있다.
전술한 본 개시의 실시예들에서, 독출 레벨에 대응하는 카운팅 값은 다양하게 정의될 수 있다. 예컨대, 제1 독출 레벨(RL1)과 제2 독출 레벨(RL2) 중 어느 하나가 제1 카운팅 값(CNT1)에 대응하는 독출 레벨로 정의될 수 있다. 또는, 제1 독출 레벨(RL1)과 제2 독출 레벨(RL2) 사이에 위치하는 어느 하나의 독출 레벨이 제1 카운팅 값(CNT1)에 대응하는 독출 레벨로 정의되거나, 또는 제1 독출 레벨(RL1)과 제2 독출 레벨(RL2)의 평균 레벨이 제1 카운팅 값(CNT1)에 대응하는 독출 레벨로 정의될 수도 있을 것이다.
한편, 전술한 실시예들에 따라 최적 셀 카운트 함수가 선택되면, 상기 선택된 셀 카운트 함수로부터 최적 독출 레벨이 산출될 수 있다. 만약, 도 9에 도시된 모델의 셀 카운트 함수가 최적 셀 카운트 함수에 해당하고, 제3 카운팅 값(CNT3)에 대응하는 독출 레벨을 최적 셀 카운트 함수에 대입하였을 때 함수 값이 가장 작은 값을 갖는 경우에는, 상기 산출되는 최적 독출 레벨은 제3 독출 레벨(RL3) 또는 제4 독출 레벨(RL4)을 갖거나, 또는 제3 독출 레벨(RL3)과 제4 독출 레벨(RL4) 사이의 값을 가질 수 있을 것이다.
한편, 상기한 바와 같이 카운팅 값은 다양하게 정의되어 산출될 수 있고, 도 9에 도시된 실시예에서, 제1 및 제2 독출 레벨들(RL1, RL2)에 기초하여 산출된 제1 카운팅 값(CNT1)은 제1 독출 레벨(RL1, 또는 제2 독출 레벨(RL2))에 대응하는 것으로 정의하고, 제2 및 제3 독출 레벨들(RL2, RL3)에 기초하여 산출된 제2 카운팅 값(CNT2)은 제2 독출 레벨(RL2, 또는 제3 독출 레벨(RL3))에 대응하는 것으로 정의될 수도 있다. 이 경우, N 개의 카운팅 값들을 산출함에 있어서, N+1 개의 독출 레벨들을 이용한 N+1 회의 독출 동작이 수행될 수 있을 것이다.
도 10 및 도 11은 본 개시의 예시적인 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 10을 참조하면, 메모리 시스템은 메모리 컨트롤러와 메모리 장치(예컨대, 플래시 메모리 장치)를 포함할 수 있고, 메모리 장치의 소정의 독출 단위(예컨대, 페이지)에서 독출된 데이터에 에러가 검출되거나 정정 불가능한 에러가 발생된 경우, 본 개시의 실시예들에 따른 셀 카운트 함수 모델링에 기반한 최적 독출 레벨 산출 동작이 수행될 수 있다. 예컨대, 상기 독출 단위에 대해 4 개 이상의 서로 다른 독출 레벨(RL)들을 이용하여 데이터가 독출될 수 있다(S11).
메모리 장치는, 4 개 이상의 서로 다른 독출 레벨(RL)들을 이용하여 독출된 데이터를 기초로 온 셀(또는, 오프 셀) 카운팅 동작에 기반하여 카운팅 값을 산출할 수 있다(S12). 전술한 실시예에 따라, 상기 카운팅 값은 다양하게 산출이 가능하고, 상기 카운팅 값은 서로 인접한 두 개의 독출 레벨들을 이용하여 판단된 온 셀의 개수의 차이 값에 상응할 수 있다. 또한, 산출된 카운팅 값에 대응하는 독출 레벨은, 상기한 두 개의 독출 레벨들 중 어느 하나에 상응하거나, 또는 상기한 두 개의 독출 레벨들 사이의 어느 하나의 레벨에 상응할 수 있을 것이다.
상기와 같은 카운팅 값이 산출되면, 산출된 다수의 카운팅 값들을 기초로 2 개 이상의 셀 카운트 함수들이 모델링될 수 있다(S13). 예컨대, 셀 카운트 함수가 2차 함수로 모델링되는 경우, 3 개의 독출 레벨들 및 이에 대응하는 카운팅 값들을 기초로, 셀 카운트 함수의 3 개의 계수들이 산출될 수 있다.
또한, 모델링된 다수의 셀 카운트 함수들 각각에 대해, 독출 레벨을 입력으로 하여 그 함수 값으로서 추정 카운팅 값을 산출할 수 있으며, 상기 산출된 카운팅 값과 함수 값(또는, 추정 카운팅 값)을 비교하여 최적 셀 카운트 함수가 선택될 수 있다(S14). 예컨대, 각각의 셀 카운트 함수에 대해 8 개의 독출 레벨들 및 이에 대응하는 8 개의 카운팅 값들이 존재하는 경우, 각각의 셀 카운트 함수에 대해 상기 8 개의 독출 레벨들을 입력으로 하는 함수 값들이 산출될 수 있고, 상기한 8 개의 카운팅 값들과 상기 셀 카운트 함수로부터 산출된 함수 값들의 비교에 기반하여 최적 셀 카운트 함수가 선택될 수 있다. 전술한 실시예에 따라, 상기 비교 동작은 카운팅 값과 함수 값 사이의 에러(또는, 차이)에 대해 MAE(Mean Absolute Error) 또는 MSE(Mean Square Error) 등 다양한 연산을 적용하여 수행될 수 있을 것이다.
상기와 같이 최적 셀 카운트 함수가 선택되면, 선택된 셀 카운트 함수를 기초로 최적 독출 레벨이 산출될 수 있으며(S15), 일 예로서 전술한 바와 같이 셀 카운트 함수의 출력 값이 최소 값을 갖는 독출 레벨이 산출되거나, 또는 셀 카운트 함수를 미분하여 미분 값이 0 을 갖는 독출 레벨이 산출되는 등, 다양한 산출 방식이 최적 독출 레벨을 산출하는 데 이용될 수 있을 것이다.
한편, 전술한 실시예들에서는 셀 카운트 함수가 2차 함수에 기반하는 것으로 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없다. 예컨대, 더 많은 개수의 독출 레벨들 및 이에 대응하는 카운팅 값들을 기초로 3 차 또는 4 차 함수 형태로 함수가 모델링될 수도 있을 것이며, 또는 다른 다양한 형태의 함수의 모델링이 가능할 것이다. 이 때, 모델링되는 함수에 따라서 본 개시의 실시예들에 따른 독출 레벨들은 다양한 위치에서 다양한 개수로 설정될 수 있을 것이며, 또한 독출 레벨들을 기초로 카운팅 값을 산출하는 동작 또한 모델링 함수의 종류에 따라 다양하게 수행될 수 있을 것이다.
한편, 도 11을 참조하면, 메모리 컨트롤러는 메모리 장치로부터 독출된 데이터에 에러가 존재하거나 에러가 정정되지 않는 경우에는, 전술한 실시예들에 따라 최적 독출 레벨을 산출하여 데이터를 독출하기 위한 독출 재시도 동작을 제어할 수 있다. 예컨대, 다수의 카운팅 값들을 산출하기 위해 다수의 독출 레벨들을 이용하여 데이터가 독출되도록 제어 동작을 수행할 수 있고, 일 예로서 다수의 독출 레벨들을 설정하기 위한 연산이 수행될 수 있다. 예컨대, 독출 레벨의 시작 지점이 연산되고(S21), 상기 시작 지점으로부터 소정의 간격에 따라 독출 레벨이 조절될 수 있다.
메모리 컨트롤러가 카운팅 값들을 산출하는 경우, 메모리 컨트롤러는 다수의 독출 레벨들을 이용하여 독출된 데이터들을 수신하고, 카운팅 동작(예컨대, 전술한 실시예에서의 온 셀 개수의 카운팅 동작)을 기초로 다수의 독출 레벨들에 대응하는 다수의 카운팅 값을 획득할 수 있다(S22). 또한, 메모리 컨트롤러는 획득된 카운팅 값이 본 개시의 실시예들에 따른 셀 카운트 함수의 모델링에 적합한 지 여부를 판단할 수 있다.
상기 셀 카운트 함수의 모델링에 적합한 지 여부는 다양한 방식에 따라 구현될 수 있으며, 일 예로서 2 차 함수의 모델링을 예로 들면, 독출 레벨들 및 이에 대응하는 카운팅 값이 2 차 함수 형태의 적절한 값을 갖는 지가 판단될 수 있다. 예컨대, 2 차 함수의 경우 최소 값을 갖는 소정의 독출 레벨을 기준으로 대칭되는 형태를 가질 수 있고, 상기 획득된 카운팅 값이 상기 독출 레벨을 기준으로 대칭되는 형태를 갖는 지가 판단될 수 있다.
판단 결과(S24), 상기 모델링에 적합하지 않은 것으로 판단된 경우 추가의 독출 레벨들이 더 선택되고, 상기 추가로 선택된 독출 레벨들을 이용하여 독출된 데이터를 기초로 추가의 카운팅 값이 획득될 수 있다(S25). 반면에, 상기 모델링에 적합한 것으로 판단된 경우에는, 전술한 실시예들에 따라 다수의 셀 카운트 함수들이 모델링되고, 모델링된 다수의 셀 카운트 함수들 중에서 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨이 산출될 수 있다(S26).
도 12는 도 11의 실시예에서의 모델링 적합 여부 판단 및 추가의 카운팅 값을 획득하는 예를 나타내는 도면이다.
도 12를 참조하면, 다수의 독출 레벨들에 대응하는 카운팅 값이 산출될 수 있고, 2 차 함수 형태의 최적 셀 카운트 함수가 산출되기 위해서는 최적 독출 레벨을 기준으로 좌측 및 우측으로 적절한 개수의 독출 레벨들이 설정되고, 이에 대응하는 카운팅 값이 산출될 필요가 있다. 전술한 실시예에서, 산출된 셀 카운팅 값들이 셀 카운트 함수 모델링에 적합한 지 여부는, 최소의 카운팅 값에 대응되는 독출 레벨을 기준으로, 그 우측에 위치하는 독출 레벨들에 대응하는 카운팅 값들과, 그 좌측에 위치하는 독출 레벨들에 대응하는 카운팅 값들의 비교를 기초로 수행될 수 있다.
예컨대, 우측에 위치하는 독출 레벨들 중 일부에 대응하는 카운팅 값들(CNT_a, CNT_b)과 좌측에 위치하는 독출 레벨들 중 일부에 대응하는 카운팅 값들(CNT_c)의 비교를 통해, 카운팅 값 CNT_c 가 카운팅 값 CNT_a, CNT_b에 비해 매우 작은 경우(또는, 소정의 임계값을 초과하는 차이인 경우)에는 함수 모델링에 적합하지 않은 것으로 판단될 수 있다. 이 경우, 메모리 컨트롤러의 제어에 기반하여 다른 독출 레벨들을 이용한 추가의 독출 동작이 수행될 수 있고, 추가로 독출된 데이터에 대한 카운팅 동작에 기반하여 추가의 카운팅 값들(CNT_d, CNT_e, CNT_f)이 산출될 수 있다. 이를 통해, 셀 카운트 함수의 모델링에 적합한 카운팅 값들이 산출될 수 있고, 이를 기초로 최적 셀 카운트 함수의 선택 및 최적 독출 레벨 산출 동작이 수행될 수 있다.
도 13은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 13을 참조하면, 메모리 컨트롤러(500)는 모델링 및 에러 비교 모듈(510), 업데이트 제어 모듈(520), 저장 회로(530) 및 연산 모듈(540)을 포함할 수 있다. 및 에러 비교 모듈(510), 업데이트 제어 모듈(520) 및 연산 모듈(540) 각각은 하드웨어, 또는 소프트웨어, 또는 이들의 조합으로 구현이 가능할 것이다. 또한, 도 13에 도시된 구성요소들 중 적어도 일부는 전술한 실시예에서의 독출 레벨 산출 모듈에 포함되는 구성일 수 있다.
모델링 및 에러 비교 모듈(510)은 전술한 실시예에서의 카운팅 값(CNT[1:N]), 제1 정보(Info_RLN) 및 제2 정보(Info_RL)를 기초로 다수의 셀 카운트 함수들을 모델링할 수 있고, 또한 최적의 셀 카운트 함수를 선택하기 위한 전술한 실시예에서의 에러 비교 동작을 수행할 수 있다. 모델링 및 에러 비교 모듈(510)은 각각의 셀 카운트 함수의 계수 값들(모델 계수)과, 해당 셀 카운트 함수로부터 산출된 에러 비교 결과에 대한 정보를 업데이트 제어 모듈(520)로 제공할 수 있다.
업데이트 제어 모듈(520)는 모델링 및 에러 비교 모듈(510)로부터 제공된 정보를 기초로 저장 회로(530)에 대한 정보 업데이트 동작을 수행할 수 있다. 예컨대, 업데이트 제어 모듈(520)는 각각의 셀 카운트 함수에 관련된 평균 에러 값과 모델 계수를 수신하고, 평균 에러 값이 저장 회로(530)에 저장된 기존의 에러 값보다 작은 경우에는, 해당 셀 카운트 함수에 대응하는 모델 계수를 최적 모델 계수로서 저장 회로(530)에 업데이트할 수 있으며, 또한 상기 셀 카운트 함수에 대응하는 평균 에러 값을 저장 회로(530)에 업데이트할 수 있다.
상기와 같은 업데이트 제어 동작에 따라, 저장 회로(530)에 저장된 정보는 최적 셀 카운트 함수에 관련된 정보에 상응할 수 있으며, 연산 모듈(540)은 저장 회로(530)에 저장된 정보를 기초로 하여 최적 셀 카운트 함수를 이용한 연산 처리를 통해 최적 독출 레벨을 산출하고 이에 관련된 독출 레벨 정보(Info_ORL)를 출력할 수 있다.
도 14는 본 개시의 실시예들에서의 셀 카운트 함수가 3차 함수로 모델링되는 경우를 나타내는 도면이다. 도 14에서는 3차 함수의 모델링이 예시되었으나, 전술한 바와 같이 본 개시의 실시예들은 다양한 종류의 함수로 모델링될 수도 있을 것이다.
각각의 셀당 다수의 비트들이 저장되는 메모리 셀들의 경우, 그 문턱전압 산포에 따라 특정 위치의 산포(예컨대, 소거 상태)에 대한 최적 독출 레벨을 찾는 과정에서는 전술한 실시예들에 따라 산출되는 카운팅 값이 비대칭 형태를 가질 수 있다. 이에 따라, 도 14에 도시된 바와 같이, 특정 문턱전압 산포에 대한 독출 과정에서 2 차 함수 형태의 모델링은 최적 독출 레벨의 산출에 적합하지 않고, 3 차 함수의 형태로 모델링될 필요가 있다.
3 차 함수 형태의 모델링을 위해, 다수의 독출 레벨들 중 선택된 4 개의 독출 레벨들과 이에 대응하는 카운팅 값을 기초로 하나의 셀 카운트 함수가 모델링될 수 있으며, 또한 본 개시의 실시예들에 따라 적어도 5 개 이상의 독출 레벨들에 대응하는 카운팅 값들이 산출됨에 따라, 두 개 이상의 셀 카운트 함수가 모델링될 수 있다. 도 14에 도시된 실시예에서는, 노이즈가 포함되지 않은 카운팅 값을 이용하여 모델링된 셀 카운트 함수(예컨대, 제1 모델)와 노이즈가 포함된 카운팅 값을 이용하여 모델링된 셀 카운트 함수(예컨대, 제2 모델)이 예시되며, 또한 제1 모델이 최적 셀 카운트 함수로 선택됨에 따라 제1 독출 레벨이 최적 독출 레벨로 산출되는 경우가 예시된다. 또한, 제1 모델을 기초로 산출된 제1 독출 레벨이 제2 모델을 기초로 산출되는 경우에서의 제2 독출 레벨에 비해 그 정확도가 높음이 예시된다.
도 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)을 포함할 수 있고, 독출 레벨 산출 모듈(621_1)은 불휘발성 메모리 장치들(623_1 ~ 623_n)에 대한 최적 독출 레벨 산출 동작을 제어할 수 있다. 전술한 실시예들에 따라, SSD 컨트롤러(621)는 불휘발성 메모리 장치들(623_1 ~ 623_n)로부터 독출되는 다수의 데이터들을 기초로 카운팅 값을 산출하는동작과, 다수의 셀 카운트 함수들의 모듈링 동작, 및 최적 셀 카운트 함수에 기초하는 최적 독출 레벨 산출 동작을 수행할 수 있을 것이다.
도 16은 본 개시의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 16을 참조하면, 메모리 시스템(700)은 메모리 컨트롤러(710) 및 메모리 장치(720)를 포함할 수 있다. 메모리 장치(720)는 복수의 채널들 중 하나를 기반으로 메모리 컨트롤러(710)와 통신하는 비휘발성 메모리 장치들 중 하나에 대응할 수 있다. 예를 들어, 메모리 장치(720)는 도 1의 메모리 장치(200)에 대응할 수 있고, 메모리 컨트롤러(710)는 도 1의 메모리 컨트롤러(100)에 대응할 수 있다.
메모리 장치(720)는 제1 내지 제8 핀들(P11~P18), 메모리 인터페이스 회로(721), 제어 로직 회로(722), 및 메모리 셀 어레이(723)를 포함할 수 있다. 메모리 인터페이스 회로(721)는 제1 핀(P11)을 통해 메모리 컨트롤러(710)로부터 칩 인에이블 신호(nCE)를 수신할 수 있다. 메모리 인터페이스 회로(721)는 칩 인에이블 신호(nCE)에 따라 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(710)와 신호들을 송수신할 수 있다. 예를 들어, 칩 인에이블 신호(nCE)가 인에이블 상태(예를 들어, 로우 레벨)인 경우, 메모리 인터페이스 회로(721)는 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(710)와 신호들을 송수신할 수 있다.
메모리 인터페이스 회로(721)는 제2 내지 제4 핀들(P12~P14)을 통해 메모리 컨트롤러(710)로부터 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 쓰기 인에이블 신호(nWE)를 수신할 수 있다. 메모리 인터페이스 회로(721)는 제7 핀(P17)을 통해 메모리 컨트롤러(710)로부터 데이터 신호(DQ)를 수신하거나, 메모리 컨트롤러(710)로 데이터 신호(DQ)를 전송할 수 있다. 데이터 신호(DQ)를 통해 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA)가 전달될 수 있다.
메모리 인터페이스 회로(721)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드 래치 인에이블 신호(CLE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 커맨드(CMD)를 획득할 수 있다. 메모리 인터페이스 회로(721)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 어드레스(ADDR)를 획득할 수 있다.
메모리 인터페이스 회로(721)는 제5 핀(P15)을 통해 메모리 컨트롤러(710)로부터 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스 회로(721)는 제6 핀(P16)을 통해 메모리 컨트롤러(710)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 컨트롤러(710)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 인터페이스 회로(721)는 제8 핀(P18)을 통해 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(710)로 전송할 수 있다. 메모리 인터페이스 회로(721)는 레디/비지 출력 신호(nR/B)를 통해 메모리 장치(720)의 상태 정보를 메모리 컨트롤러(710)로 전송할 수 있다. 메모리 장치(720)가 비지 상태인 경우(즉, 메모리 장치(720) 내부 동작들이 수행 중인 경우), 메모리 인터페이스 회로(721)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(710)로 전송할 수 있다. 메모리 장치(720)가 레디 상태인 경우(즉, 메모리 장치(720) 내부 동작들이 수행되지 않거나 완료된 경우), 메모리 인터페이스 회로(721)는 레디 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(710)로 전송할 수 있다.
제어 로직 회로(722)는 메모리 장치(720)의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(722)는 메모리 인터페이스 회로(721)로부터 획득된 커맨드/어드레스(CMD/ADDR)를 수신할 수 있다. 제어 로직 회로(722)는 수신된 커맨드/어드레스(CMD/ADDR)에 따라 메모리 장치(720)의 다른 구성 요소들을 제어하기 위한 제어 신호들을 생성할 수 있다. 예를 들어, 제어 로직 회로(722)는 메모리 셀 어레이(723)에 데이터(DATA)를 프로그램하거나, 또는 메모리 셀 어레이(723)로부터 데이터(DATA)를 독출하기 위한 각종 제어 신호들을 생성할 수 있다.
메모리 컨트롤러(710)는 제1 내지 제8 핀들(P21~P28), 및 컨트롤러 인터페이스 회로(711)를 포함할 수 있다. 메모리 컨트롤러(710)의 제1 내지 제8 핀들(P21~P28)은 메모리 장치(720)의 제1 내지 제8 핀들(P11~P18)에 대응할 수 있다.
본 개시의 예시적인 실시예에 따라, 메모리 컨트롤러(710)는 독출 레벨 산출 모듈(미도시)을 포함함에 따라, 전술한 실시예들에 따른 최적 독출 레벨 산출 동작을 수행할 수 있다. 일 예로서, 다수의 독출 레벨들을 이용하여 독출된 독출 데이터들(RD[1:M])이 제7 핀들(P17, P27)을 통해 메모리 장치(720)로부터 메모리 컨트롤러(710)로 제공될 수 있다. 또한, 메모리 컨트롤러(710)에서 생성된 독출 레벨 정보(Info_ORL)가 제7 핀들(P17, P27)을 통해 메모리 컨트롤러(710)로부터 메모리 장치(720)로 제공될 수 있다.
또한, 본 개시의 실시예들에 따른 카운팅 동작은 메모리 컨트롤러(710) 또는 메모리 장치(720)에서 수행될 수 있으며, 일 예로서 카운팅 동작이 메모리 장치(720)에서 수행되는 경우에는 카운팅 값(CNT[1:N])이 제7 핀들(P17, P27)을 통해 메모리 장치(720)로부터 메모리 컨트롤러(710)로 제공될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 메모리 장치를 제어하는 메모리 컨트롤러에 있어서,
    상기 메모리 장치에 대한 메모리 동작을 제어하는 프로세서; 및
    다수의 독출 레벨들을 이용하여 독출된 데이터에 대한 카운팅 동작에 기초하여 생성되는 N 개의 독출 레벨들에 대응하는 N 개의 카운팅 값들을 수신하고, 상기 N 개의 독출 레벨들 중에서 선택된 일부의 독출 레벨들을 입력으로 하고 상기 선택된 독출 레벨들에 대응하는 카운팅 값들을 출력으로 하는 적어도 2 개의 셀 카운트 함수들을 모델링하며, 상기 모델링된 셀 카운트 함수들 중 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨을 산출하는 독출 레벨 산출 모듈을 구비하고,
    상기 N 개의 카운팅 값들은 적어도 4 개의 서로 다른 독출 레벨들에 대응하는 카운팅 값들을 포함하며,
    상기 적어도 2 개의 셀 카운트 함수들 각각에 대하여, 상기 N 개의 독출 레벨들 중 일부를 입력으로 하여 산출되는 추정 카운팅 값들과 상기 입력에 상응하는 독출 레벨들에 대응하는 카운팅 값들 사이의 차이 값을 산출한 결과에 따라, 상기 적어도 2 개의 셀 카운트 함수들 중 상기 최적 셀 카운트 함수가 선택되는 것을 특징으로 하는 메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 적어도 2 개의 셀 카운트 함수들 중에서, 상기 차이 값이 가장 작은 것으로 산출된 셀 카운트 함수가 상기 최적 셀 카운트 함수로서 선택되는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1항에 있어서,
    상기 적어도 2 개의 셀 카운트 함수들 각각은 2 차 함수에 해당하고,
    상기 N 개의 독출 레벨들 중 선택된 3 개의 독출 레벨들과, 상기 선택된 3 개의 독출 레벨들에 대응하는 카운팅 값들을 기초로 각각의 셀 카운트 함수가 모델링되는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제3항에 있어서,
    상기 적어도 2 개의 셀 카운트 함수들의 개수는, 상기 N 개의 독출 레벨들 중에서 선택 가능한 임의의 3 개의 독출 레벨들의 모든 조합들의 개수에 상응하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제1항에 있어서,
    상기 N 개의 카운팅 값들 중 제1 카운팅 값은, 제1 레벨을 이용하여 독출된 데이터의 온 셀 개수와, 제2 레벨을 이용하여 독출된 데이터의 온 셀 개수의 차이 값에 해당하고,
    상기 제2 레벨은 상기 제1 레벨보다 작은 것을 특징으로 하는 메모리 컨트롤러.
  6. 제5항에 있어서,
    상기 제1 카운팅 값에 대응하는 제1 독출 레벨은, 상기 제1 레벨 및 상기 제2 레벨 중 어느 하나의 레벨이거나, 상기 제1 레벨과 상기 제2 레벨 사이의 어느 하나의 임의의 레벨인 것을 특징으로 하는 메모리 컨트롤러.
  7. 제1항에 있어서,
    상기 메모리 장치로부터 독출된 데이터의 에러를 검출하는 ECC 회로를 더 구비하고,
    상기 독출 레벨 산출 모듈은, 상기 메모리 장치로부터 독출된 데이터에 정정 불가능한 에러가 발생된 경우에 상기 최적 독출 레벨을 산출하는 동작을 수행하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제1항에 있어서, 상기 독출 레벨 산출 모듈은,
    상기 N 개의 독출 레벨들 및 이에 대응하는 상기 N 개의 카운팅 값들을 기초로 상기 적어도 2 개의 셀 카운트 함수들을 모델링하는 모델링 모듈;
    상기 적어도 2 개의 셀 카운트 함수들 각각에 대해, 상기 N 개의 독출 레벨들을 입력으로 하여 산출되는 추정 카운팅 값들과 상기 N 개의 카운팅 값들 사이의 차이 값에 기초하여, 상기 적어도 2 개의 셀 카운트 함수들 중 어느 하나를 최적 셀 카운트 함수로서 선택하는 에러 비교 모듈; 및
    상기 선택된 최적 셀 카운트 함수에 대한 연산을 기초로 상기 최적 독출 레벨을 산출하는 연산 모듈을 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  9. 제1항에 있어서,
    상기 프로세서에 의해 실행되는 프로그램들을 저장하는 동작 메모리를 더 구비하고,
    상기 독출 레벨 산출 모듈은 상기 최적 독출 레벨을 산출을 위한 프로그램들을 포함하고, 상기 독출 레벨 산출 모듈이 상기 동작 메모리에 로딩되어 상기 프로세서에 의해 실행되는 것을 특징으로 하는 메모리 컨트롤러.
  10. 제1항에 있어서,
    상기 독출 레벨 산출 모듈은, 상기 최적 셀 카운트 함수의 출력이 최소값을 갖도록 하는 입력에 상응하는 독출 레벨을 상기 최적 독출 레벨로서 산출하는 것을 특징으로 하는 메모리 컨트롤러.
  11. 제1항에 있어서,
    상기 메모리 장치로부터 상기 다수의 독출 레벨들을 이용하여 독출된 데이터를 수신하고, 상기 카운팅 동작에 기초하여 상기 N 개의 카운팅 값들을 생성하는 카운팅 로직을 더 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  12. 메모리 컨트롤러의 동작방법에 있어서,
    다수의 독출 동작들을 통해 메모리 장치로부터 독출된 데이터들을 기초로, 다수의 독출 레벨들에 대응하는 다수의 카운팅 값들을 산출하는 단계;
    상기 다수의 독출 레벨들 중에서 선택된 일부의 독출 레벨들을 입력으로 하고, 상기 선택된 독출 레벨들에 대응하는 카운팅 값들을 출력으로 하여 모델링된 다수 개의 셀 카운트 함수들 중에서 어느 하나의 셀 카운트 함수를 최적 셀 카운트 함수로서 선택하는 단계; 및
    상기 최적 셀 카운트 함수를 기초로 산출된 최적 독출 레벨에 관련된 정보를 출력하는 단계를 구비하고,
    상기 다수 개의 셀 카운트 함수들 각각에서 상기 다수의 독출 레벨들 중 적어도 일부를 입력으로 하는 함수 값들이 산출되고, 상기 산출된 함수 값들과 상기 입력에 상응하는 독출 레벨들에 대응하는 카운팅 값들 사이의 차이 값에 기초하여, 상기 다수 개의 셀 카운트 함수들 중 상기 최적 셀 카운트 함수가 선택되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  13. 제12항에 있어서,
    상기 다수 개의 셀 카운트 함수들 각각은 2 차 함수에 해당하고,
    상기 다수 개의 셀 카운트 함수들의 개수는, 상기 다수의 독출 레벨들 중에서 선택 가능한 임의의 3 개의 독출 레벨들의 모든 조합들의 개수에 상응하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  14. 제12항에 있어서,
    상기 다수의 카운팅 값들 중 제1 카운팅 값은, 제1 레벨을 이용하여 독출된 데이터의 온 셀 개수와, 제2 레벨을 이용하여 독출된 데이터의 온 셀 개수의 차이 값에 해당하고,
    상기 제2 레벨은 상기 제1 레벨보다 작은 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  15. 제14항에 있어서,
    상기 제1 카운팅 값에 대응하는 제1 독출 레벨은, 상기 제1 레벨 및 상기 제2 레벨 중 어느 하나의 레벨이거나, 상기 제1 레벨과 상기 제2 레벨 사이의 어느 하나의 임의의 레벨인 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  16. 제12항에 있어서,
    상기 메모리 장치로부터 독출된 데이터에 대한 에러 검출을 수행하는 단계를 더 구비하고,
    상기 독출된 데이터에 에러가 존재하는 경우, 상기 최적 독출 레벨을 산출하는 동작이 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  17. 제12항에 있어서,
    상기 다수 개의 셀 카운트 함수들 중에서, 상기 산출된 함수 값들과 상기 카운팅 값들 사이의 차이 값이 최소인 셀 카운트 함수가 상기 최적 셀 카운트 함수로서 선택되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  18. 메모리 시스템에 있어서, 상기 메모리 시스템은 메모리 장치를 구비하고,
    상기 메모리 장치는,
    다수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    상기 메모리 셀 어레이에 대한 독출 동작에 이용되는 다수의 독출 레벨들을 갖는 다수의 독출 전압들을 생성하는 전압 생성기; 및
    상기 메모리 셀 어레이에 대해 독출된 데이터에 에러가 발생됨에 따라 상기 메모리 셀 어레이에 대해 상기 다수의 독출 레벨들을 이용하는 재독출 동작을 제어하고, 상기 재독출 동작에서 독출된 데이터에 대한 카운팅 동작에 기초하여 N 개의 독출 레벨들에 대응하는 N 개의 카운팅 값들을 생성하는 제어 로직을 구비하고,
    상기 N 개의 카운팅 값들 중 선택된 제1 조합의 카운팅 값들은 제1 셀 카운트 함수를 모델링하기 위한 정보를 포함하고, 상기 N 개의 카운팅 값들 중 선택된 제2 조합의 카운팅 값들은 제2 셀 카운트 함수를 모델링하기 위한 정보를 포함하며, 상기 제1 조합의 카운팅 값들에 대응하는 독출 레벨들과 상기 제2 조합의 카운팅 값들에 대응하는 독출 레벨들 중 적어도 하나는 서로 상이한 것을 특징으로 하는 메모리 시스템(단, N 은 4 이상의 정수).
  19. 제18항에 있어서,
    상기 메모리 시스템은 상기 메모리 장치를 제어하는 메모리 컨트롤러를 더 구비하고,
    상기 메모리 컨트롤러는
    상기 N 개의 카운팅 값들을 수신하고, 상기 N 개의 독출 레벨들 중에서 선택된 일부의 독출 레벨들을 입력으로 하고 상기 선택된 독출 레벨들에 대응하는 카운팅 값들을 출력으로 하는 상기 제1 및 제2 셀 카운트 함수들을 모델링하며, 상기 모델링된 셀 카운트 함수들 중 선택된 최적 셀 카운트 함수를 기초로 최적 독출 레벨을 산출하는 독출 레벨 산출 모듈을 구비하고,
    상기 독출 레벨 산출 모듈은, 상기 제1 및 제2 셀 카운트 함수들 각각에서 상기 N 개의 독출 레벨들 중 일부를 입력으로 하는 함수 값들을 산출하고, 상기 산출된 함수 값들과 상기 입력에 상응하는 독출 레벨들에 대응하는 카운팅 값들 사이의 차이 값에 기초하여 상기 최적 셀 카운트 함수를 선택하며,
    상기 산출된 최적 독출 레벨에 관련된 정보를 상기 메모리 장치로 제공하는 것을 특징으로 하는 메모리 시스템.
  20. 제19항에 있어서, 상기 제어 로직은,
    상기 재독출 동작에서 상기 N 개의 독출 레벨들을 갖는 독출 전압들이 생성되도록 전압 제어신호를 제공하는 전압 제어기; 및
    상기 재독출 동작에서 독출된 데이터에 대한 카운팅 동작에 기초하여 상기 N 개의 카운팅 값들을 생성하는 카운팅 로직을 포함하는 것을 특징으로 하는 메모리 시스템.
KR1020210108179A 2021-08-17 2021-08-17 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 KR102460717B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210108179A KR102460717B1 (ko) 2021-08-17 2021-08-17 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US17/685,024 US20230057932A1 (en) 2021-08-17 2022-03-02 Memory controller calculating optimal read level, memory system including the same, and operating method of memory controller
EP22168453.3A EP4138081A1 (en) 2021-08-17 2022-04-14 Memory controller calculating optimal read level, memory system including the same, and operating method of memory controller
TW111118386A TW202309909A (zh) 2021-08-17 2022-05-17 計算最佳讀取位準的記憶體控制器、包括記憶體控制器的記憶體系統以及記憶體控制器的操作方法
CN202210540102.7A CN115910171A (zh) 2021-08-17 2022-05-17 存储器控制器、存储器***以及存储器控制器的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210108179A KR102460717B1 (ko) 2021-08-17 2021-08-17 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Publications (1)

Publication Number Publication Date
KR102460717B1 true KR102460717B1 (ko) 2022-10-31

Family

ID=81580504

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210108179A KR102460717B1 (ko) 2021-08-17 2021-08-17 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Country Status (5)

Country Link
US (1) US20230057932A1 (ko)
EP (1) EP4138081A1 (ko)
KR (1) KR102460717B1 (ko)
CN (1) CN115910171A (ko)
TW (1) TW202309909A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10452480B2 (en) * 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10990466B2 (en) 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170084733A (ko) * 2016-01-12 2017-07-21 삼성전자주식회사 비선형 필터링 방식을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR20180042889A (ko) * 2016-10-18 2018-04-27 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR20200057827A (ko) * 2018-11-14 2020-05-27 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
KR20210020689A (ko) * 2019-08-16 2021-02-24 삼성전자주식회사 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
KR20210024912A (ko) * 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210082875A (ko) * 2019-12-26 2021-07-06 삼성전자주식회사 머신 러닝을 이용한 비휘발성 메모리 장치의 동작 제어 방법 및 스토리지 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365030B1 (en) * 2009-03-30 2013-01-29 Samsung Electronics Co., Ltd. Nonvolatile memory devices and error correction methods thereof
KR102038408B1 (ko) * 2012-10-25 2019-10-30 삼성전자주식회사 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR102397016B1 (ko) * 2014-11-24 2022-05-13 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
US11163483B2 (en) * 2018-12-31 2021-11-02 SK Hynix Inc. Robust detection techniques for updating read voltages of memory devices
KR102318060B1 (ko) 2020-02-25 2021-10-26 이태근 가스 도용 방지를 위한 봉인구

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170084733A (ko) * 2016-01-12 2017-07-21 삼성전자주식회사 비선형 필터링 방식을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR20180042889A (ko) * 2016-10-18 2018-04-27 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR20200057827A (ko) * 2018-11-14 2020-05-27 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
KR20210020689A (ko) * 2019-08-16 2021-02-24 삼성전자주식회사 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
KR20210024912A (ko) * 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210082875A (ko) * 2019-12-26 2021-07-06 삼성전자주식회사 머신 러닝을 이용한 비휘발성 메모리 장치의 동작 제어 방법 및 스토리지 시스템

Also Published As

Publication number Publication date
EP4138081A1 (en) 2023-02-22
US20230057932A1 (en) 2023-02-23
TW202309909A (zh) 2023-03-01
CN115910171A (zh) 2023-04-04

Similar Documents

Publication Publication Date Title
KR102302187B1 (ko) 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
KR102289598B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 그리고 그것의 프로그램 방법
KR102460717B1 (ko) 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR101944793B1 (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
KR101406279B1 (ko) 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
CN101833996B (zh) 非易失性存储设备及其读取方法
CN107305791B (zh) 存储装置和存储***
KR102608958B1 (ko) 스토리지 장치 및 이의 동작 방법
KR102360211B1 (ko) 메모리 시스템의 동작 방법
KR20160055309A (ko) 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
KR20160062298A (ko) 불휘발성 메모리 시스템의 동작 방법
KR20180001303A (ko) 메모리 시스템 및 그 동작 방법
CN113223593B (zh) 存储单元的读取电压优化方法、3d存储器的控制器及其操作方法
CN109493895B (zh) 半导体存储器装置及其操作方法
KR20200117746A (ko) 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템
KR20180065268A (ko) 반도체 메모리 장치 및 그 동작 방법
US11315649B2 (en) Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
KR20230025273A (ko) 반도체 메모리 장치 및 그 동작 방법
US10679705B2 (en) Controller and operating method thereof
KR20230000690A (ko) 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법
EP4180962A1 (en) Memory controller with improved data reliability and memory system including the same
KR20130027153A (ko) 불휘발성 메모리 장치의 제어 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant