KR102634700B1 - 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 - Google Patents

불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR102634700B1
KR102634700B1 KR1020180094844A KR20180094844A KR102634700B1 KR 102634700 B1 KR102634700 B1 KR 102634700B1 KR 1020180094844 A KR1020180094844 A KR 1020180094844A KR 20180094844 A KR20180094844 A KR 20180094844A KR 102634700 B1 KR102634700 B1 KR 102634700B1
Authority
KR
South Korea
Prior art keywords
read
memory
voltage
read voltage
memory area
Prior art date
Application number
KR1020180094844A
Other languages
English (en)
Other versions
KR20200019385A (ko
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 KR1020180094844A priority Critical patent/KR102634700B1/ko
Priority to US16/356,182 priority patent/US11004517B2/en
Priority to CN201910733387.4A priority patent/CN110827907A/zh
Publication of KR20200019385A publication Critical patent/KR20200019385A/ko
Application granted granted Critical
Publication of KR102634700B1 publication Critical patent/KR102634700B1/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/26Sensing or reading circuits; Data output circuits
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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/5671Digital 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 trapping in an insulator
    • 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

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)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법에 관한 것이다. 본 발명의 실시예에 따른 스토리지 장치는 메모리 블록을 포함하는 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함한다. 메모리 블록은 제1 워드 라인과 연결된 제1 메모리 영역, 및 제2 워드 라인과 연결된 제2 메모리 영역을 포함한다. 메모리 컨트롤러는 제1 메모리 영역의 제1 읽기 전압에 기초하여 읽기 블록 전압을 설정한다. 메모리 컨트롤러는 읽기 블록 전압 및 변이 정보에 기초하여 제2 메모리 영역의 제2 읽기 전압을 결정한다. 본 발명의 실시예에 따르면, 열화에 따른 워드 라인별 동작 상태를 고려하여, 읽기 동작의 성공률을 향상시킬 수 있다.

Description

불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법{STORAGE DEVICE INCLUDING NONVOLATILE MEMORY DEVICE AND OPERATING METHOD THEREOF}
본 발명은 데이터를 저장하는 장치에 관한 것으로, 좀 더 상세하게는 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법에 관한 것이다.
스토리지 장치(예를 들면, SSD)는 불휘발성 메모리를 포함한다. 스토리지 장치는 전원이 차단되어도 저장된 데이터를 유지할 수 있으며, 따라서 장기간의 데이터 저장에 유리하다. 스토리지 장치는 컴퓨터, 스마트폰, 스마트 패드 등과 같은 다양한 전자 장치들에서 주 저장소로 사용되고 있다.
스토리지 장치의 불휘발성 메모리는 다양한 원인에 의해서 열화되며, 열화의 정도에 따라 동작 조건을 가변하는 방식으로 열화에 대응할 수 있다. 스토리지 장치는 스토리지 장치 내에 동작 조건에 따른 읽기 전압의 레벨을 조정하는 방식으로 열화에 대응할 수 있다. 일반적으로, 읽기 전압의 레벨은 메모리 블록 단위로 조정되고 있다. 그러나, 메모리 블록 내에 서로 다른 워드 라인에 연결된 메모리 영역들은 열화에 따라, 서로 다른 읽기 전압의 변화가 나타날 수 있다. 스토리지 장치의 구동의 신뢰성을 확보하기 위하여, 읽기 전압을 좀더 정밀하게 조절하기 위한 요구가 제기되고 있다.
본 발명은 불휘발성 메모리 장치의 열화에 따른 동작 상태의 변화를 고려하여, 신뢰성을 확보할 수 있는 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법을 제공할 수 있다.
본 발명의 실시예에 따른 스토리지 장치는 불휘발성 메모리 및 메모리 컨트롤러를 포함한다. 불휘발성 메모리 장치는 제1 워드 라인과 연결된 제1 메모리 영역, 제2 워드 라인과 연결된 제2 메모리 영역을 포함하는 메모리 블록을 포함한다. 메모리 컨트롤러는 제1 메모리 영역으로 인가되는 제1 읽기 전압에 기초하여 메모리 블록에 대응되는 읽기 블록 전압을 설정하고, 제1 및 제2 메모리 영역들에 대한 변이 정보 및 읽기 블록 전압에 기초하여 제2 메모리 영역에 인가되는 제2 읽기 전압을 결정한다. 변이 정보는 불휘발성 메모리 장치의 열화에 따른 제1 메모리 영역의 읽기 전압의 변화 및 제2 메모리 영역의 읽기 전압의 변화에 기초하여 생성된다.
본 발명의 실시예에 따른 스토리지 장치의 동작 방법은 타겟 워드 라인과 연결된 메모리 영역에 대한 읽기 요청을 수신하는 단계, 읽기 요청에 응답하여, 메모리 영역을 포함하는 메모리 블록에 대응되는 읽기 블록 전압을 검색하는 단계, 및 읽기 블록 전압 및 변이 정보에 기초하여 타겟 워드 라인에 제공되는 타겟 읽기 전압을 계산하는 단계를 포함한다. 변이 정보는 메모리 블록의 열화에 따른 복수의 워드 라인들 각각에 제공되는 읽기 전압들의 예측값들에 기초하여 생성된다.
본 발명의 실시예에 따른 스토리지 장치는 메모리 블록을 포함하는 불휘발성 메모리, 및 읽기 동작이 성공한 워드 라인에 제공되는 읽기 전압 및 워드 라인의 위치 정보에 기초하여 메모리 블록에 대한 읽기 블록 전압을 설정하고, 읽기 블록 전압 및 읽기 요청된 메모리 영역과 연결된 타겟 워드 라인의 위치 정보에 기초하여 타겟 워드 라인에 제공되는 타겟 읽기 전압을 결정하는 메모리 컨트롤러를 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법은 열화에 따른, 워드 라인별 동작 상태의 변화를 고려하는 변이 정보를 이용하여, 읽기 동작의 성공률을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 스토리지 장치의 블록도이다.
도 2는 도 1의 메모리 블록의 예시적인 회로도이다..
도 3은 도 2에 도시된 메모리 셀의 문턱 전압 분포의 변화를 예시적으로 설명하기 위한 그래프이다.
도 4는 도 2에 도시된 메모리 셀의 문턱 전압 분포의 변화를 워드 라인별로 예시적으로 설명하기 위한 그래프이다.
도 5는 도 1의 읽기 전압 제어 모듈을 구체화한 블록도이다.
도 6은 본 발명의 실시예에 따른 스토리지 장치의 데이터를 읽는 방법에 대한 순서도이다.
도 7은 도 6의 데이터를 읽는 방법의 일 실시예에 대한 순서도이다.
도 8은 변이 정보가 복수의 테이블들을 포함할 때, 테이블들을 구분하는 과정을 설명하기 위한 도면이다.
도 9는 도 6의 데이터를 읽는 방법의 일 실시예에 대한 순서도이다.
도 10은 도 9의 변이 테이블을 선택하는 과정을 구체화한 도면이다.
도 11은 도 6의 데이터를 읽는 방법의 일 실시예에 대한 순서도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.
도 1은 본 발명의 실시예에 따른 스토리지 장치의 블록도이다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리 장치(110), 메모리 컨트롤러(120), 및 버퍼 메모리(130)를 포함한다. 스토리지 장치(100)는 솔리드 스테이트 드라이브(SSD), 메모리 카드, eMMC(ebedded Multi Media Card), 또는 UFS(Universal Flash Storage) 등의 형태로 구성될 수 있으나, 이에 제한되지 않는다.
불휘발성 메모리 장치(110)는 메모리 컨트롤러(120)의 제어에 따라, 쓰기 동작, 읽기 동작, 및 소거 동작을 수행할 수 있다. 불휘발성 메모리 장치(110)는 메모리 컨트롤러(120)로부터 쓰기 커맨드, 어드레스, 및 데이터를 수신하고, 어드레스에 의해 식별되는 저장 공간에 데이터를 쓸 수 있다. 불휘발성 메모리 장치(110)는 메모리 컨트롤러(120)로부터 읽기 커맨드 및 어드레스를 수신하고, 어드레스에 의해 식별되는 저장 공간으로부터 데이터를 읽고, 읽혀진 데이터를 메모리 컨트롤러(120)로 출력할 수 있다. 불휘발성 메모리 장치(110)는 메모리 컨트롤러(120)로부터 소거 커맨드 및 어드레스를 수신하고, 어드레스에 의하여 식별되는 저장 공가의 데이터를 소거할 수 있다.
불휘발성 메모리 장치(110)는 복수의 메모리 블록들(BLK1~BLKz)을 포함할 수 있다. 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들은 불휘발성 메모리 장치(110)의 저장 공간을 형성할 수 있다. 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 메모리 셀들을 개별적으로 선택하도록 지원하는 선택 트랜지스터들을 더 포함할 수 있다. 복수의 메모리 블록들(BLK1~BLKz)은 불휘발성 메모리 장치(110)의 동작상의 특징 또는 구조적 특징에 따라 구별될 수 있다.
불휘발성 메모리 장치(110)는 플래시 메모리, 상 변화 랜덤 액세스 메모리(PRAM, Phase-change Random Access Memory), 강유전체 랜덤 액세스 메모리(FeRAM, Ferroelectric RAM), 자기 랜덤 액세스 메모리(MRAM, Magnetic RAM), 저항성 랜덤 액세스 메모리(RRAM, Resistive RAM) 등을 포함할 수 있다.
메모리 컨트롤러(120)는 불휘발성 메모리 장치(110) 및 버퍼 메모리(130)를 액세스할 수 있다. 메모리 컨트롤러(120)는 외부의 호스트 장치의 요청에 따라, 쓰기 동작, 읽기 동작, 또는 소거 동작을 수행할 수 있다. 메모리 컨트롤러(120)는 쓰기 요청된 데이터를 불휘발성 메모리 장치(110)에 쓰고, 읽기 요청된 데이터를 불휘발성 메모리 장치(110)로부터 읽어낼 수 있다.
메모리 컨트롤러(120)는 버퍼 메모리(130)를 이용하여 스토리지 장치(100)를 관리할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리 장치(110)에 쓰여질 데이터 또는 불휘발성 메모리 장치(110)로부터 읽혀진 데이터를 버퍼 메모리(130)에 임시로 저장할 수 있다. 메모리 컨트롤러(120)는 불휘발성 메모리 장치(110)를 관리하는데 필요한 메타 데이터를 버퍼 메모리(130)에 로드할 수 있다.
메모리 컨트롤러(120)는 중앙 처리 장치(이하, CPU)(121), 호스트 인터페이스(124), 버퍼 제어 회로(125), 메모리 인터페이스(126), 및 버스(128)를 포함할 수 있다.
CPU(121)는 메모리 컨트롤러(120)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. CPU(121)는 호스트 인터페이스(124)를 통하여 외부의 호스트 장치와 통신하고, 메모리 인터페이스(126)를 통하여 불휘발성 메모리(110)와 통신하고, 버퍼 제어 회로(125)를 통하여 버퍼 메모리(130)와 통신할 수 있다. CPU(121)는 버퍼 메모리(130)를 사용하여 스토리지 장치(100)를 제어할 수 있다. CPU(121)는 버퍼 메모리(130)에 로드되는 읽기 전압 제어 모듈(131)을 실행할 수 있다. 읽기 동작 시에, 읽기 전압 제어 모듈(131)의 실행에 따라, 메모리 컨트롤러(120)는 불휘발성 메모리 장치(110)에 대한 읽기 전압을 결정할 수 있다. CPU(121)는 복수의 코어들을 포함하는 멀티 코어 프로세서로 제공될 수 있다.
호스트 인터페이스(124)는 CPU(121)의 제어에 따라, 호스트 장치와 통신하도록 구성된다. 호스트 인터페이스(124)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
버퍼 제어 회로(125)는 CPU(121)의 제어에 따라, 버퍼 메모리(130)를 제어하도록 구성된다. 버퍼 제어 회로(125)는 불휘발성 메모리 장치(110)와 호스트 장치가 교환하는 데이터를 일시적으로 저장하도록 버퍼 메모리(130)를 제어한다.
메모리 인터페이스(126)는 CPU(121)의 제어에 따라, 불휘발성 메모리 장치(110)와 통신하도록 구성된다. 메모리 인터페이스(126)는 입출력 채널을 통해, 커맨드, 어드레스, 및 데이터를 불휘발성 메모리 장치(110)와 통신할 수 있다. 메모리 인터페이스(126)는 제어 채널을 통해 제어 신호를 불휘발성 메모리 장치(110)와 통신할 수 있다.
메모리 인터페이스(126)는 에러 정정 블록(127)을 포함할 수 있다. 에러 정정 블록(127)은 에러 정정 코드(ECC)를 포함할 수 있다. 에러 정정 블록(127)은 에러 정정을 수행할 수 있다. 에러 정정 블록(127)은 메모리 인터페이스(126)를 통해 불휘발성 메모리 장치(110)에 쓰여질 데이터에 기초하여, 에러 정정 인코딩을 수행할 수 있다. 에러 정정 인코딩된 데이터는 메모리 인터페이스(126)를 통하여 불휘발성 메모리 장치(110)로 전달될 수 있다. 에러 정정 블록(127)은 불휘발성 메모리 장치(110)로부터 메모리 인터페이스(126)를 통해 수신되는 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다.
버스(128)는 메모리 컨트롤러(120)의 구성 요소들 사이에서 통신 경로를 제공한다. CPU(121), 호스트 인터페이스(124), 버퍼 제어 회로(125), 및 메모리 인터페이스(126)는 버스(128)를 통해 서로 데이터를 교환할 수 있다. 버스(128)는 메모리 컨트롤러(120)에 이용되는 다양한 유형의 통신 포맷을 지원하도록 구성될 수 있다.
버퍼 메모리(130)는 CPU(121)가 실행하는 코드들 및 명령들을 저장할 수 있다. 버퍼 메모리(130)은 CPU(121)에 의하여 처리되는 데이터를 저장할 수 있다. 버퍼 메모리(130)는 랜덤 액세스 메모리(RAM)일 수 있다. 플래시 변환 계층(FTL) 또는 다양한 메모리 관리 모듈이 버퍼 메모리(130)에 저장될 수 있다. 플래시 변환 계층(FTL)은 불휘발성 메모리 장치(110)와 호스트 장치 사이의 인터페이스를 위하여 수행되는 어드레스 맵핑, 가비지 컬렉션, 웨어 레벨링 등을 수행할 수 있다.
읽기 전압 제어 모듈(131)은 버퍼 메모리(130)에 저장될 수 있다. 읽기 전압 제어 모듈(131)은 CPU(121)에 의하여 실행될 수 있다. CPU(121)에 의한 읽기 전압 제어 모듈(131)의 실행에 따라, 메모리 컨트롤러(120)는 불휘발성 메모리 장치(110)에서 발생되는 다양한 열화에 따른 읽기 레벨의 변화에 맞추어, 읽기 전압을 결정할 수 있다. 읽기 전압 제어 모듈(131)의 실행에 따라, 메모리 컨트롤러(120)는 읽기 블록 전압을 복수의 메모리 블록들(BLK1~BLKz)별로 설정하고, 설정된 읽기 블록 전압과 변이 정보에 기초하여 불휘발성 메모리 장치(110)의 읽기 전압을 결정할 수 있다. 변이 정보는 불휘발성 메모리 장치(110)의 열화에 따른 읽기 전압의 변화를 예측한 값일 수 있다. 읽기 전압을 결정하는 구체적인 내용은 후술된다.
도 2는 도 1의 메모리 블록의 예시적인 회로도이다. 도 2를 참조하면, 복수의 셀 스트링들(CS)이 기판(SUB) 위에서 행들 및 열들로 배치될 수 있다. 복수의 셀 스트링들(CS)은 기판(SUB) 상에(또는 안에) 형성되는 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. 메모리 블록(BLKa)의 구조의 이해를 돕기 위하여, 기판(SUB)의 위치가 예시적으로 표시되어 있다. 셀 스트링들(CS)의 하단에 공통 소스 라인(CSL)이 연결되는 것으로 도시되어 있다. 그러나 공통 소스 라인(CSL)은 셀 스트링들(CS)의 하단에 전기적으로 연결되는 것으로 충분하며, 물리적으로 셀 스트링들(CS)의 하단에 위치하는 것으로 한정되지 않는다. 예시적으로, 셀 스트링들(CS)은 4X4로 배열되는 것으로 도시되나 메모리 블록(BLKa)은 더 적은 또는 더 많은 수의 셀 스트링들을 포함할 수 있다.
각 행의 셀 스트링들은 제 1 내지 제 4 접지 선택 라인들(GSL1~GSL4) 중 대응하는 접지 선택 라인 그리고 제 1 내지 제 4 스트링 선택 라인들(SSL1~SSL4) 중 대응하는 스트링 선택 라인에 연결될 수 있다. 각 열의 셀 스트링들은 제 1 내지 제 4 비트 라인들(BL1~BL4) 중 대응하는 비트 라인에 연결될 수 있다. 도면이 복잡해지는 것을 방지하기 위하여, 제 2 및 제 3 접지 선택 라인들(GSL2, GSL3) 또는 제 2 및 제 3 스트링 선택 라인들(SSL2, SSL3)에 연결된 셀 스트링들은 옅게 도시되어 있다.
각 셀 스트링은 대응하는 접지 선택 라인에 연결되는 적어도 하나의 접지 선택 트랜지스터(GST), 제 1 더미 워드 라인(DWL1)에 연결되는 제 1 더미 메모리 셀(DMC1), 복수의 워드 라인들(WL1~WL8)에 각각 연결되는 복수의 메모리 셀들(MC), 제 2 더미 워드 라인(DWL2)에 연결되는 제 2 더미 메모리 셀(DMC2), 그리고 스트링 선택 라인들(SSL)에 각각 연결되는 스트링 선택 트랜지스터들(SST)을 포함할 수 있다. 각 셀 스트링에서, 접지 선택 트랜지스터(GST), 제 1 더미 메모리 셀(DMC1), 메모리 셀들(MC), 제 2 더미 메모리 셀(DMC2) 및 스트링 선택 트랜지스터들(SST)은 기판과 수직인 방향을 따라 직렬 연결되고, 기판과 수직인 방향을 따라 순차적으로 적층될 수 있다.
예시적으로, 도 3에 도시된 바와 같이, 각 셀 스트링(CS)에서 접지 선택 트랜지스터(GST) 및 메모리 셀들(MC) 사이에 하나 또는 그보다 많은 더미 메모리 셀들이 제공될 수 있다. 각 셀 스트링(CS)에서, 스트링 선택 트랜지스터들(SST) 및 메모리 셀들(MC) 사이에 하나 또는 그보다 많은 더미 메모리 셀들이 제공될 수 있다. 각 셀 스트링(CS)에서, 메모리 셀들의 사이에 하나 또는 그보다 많은 더미 메모리 셀들이 제공될 수 있다. 더미 메모리 셀들은 메모리 셀들(MC)과 동일한 구조를 가지며, 프로그램되지 않거나(예를 들어, 프로그램이 금지되거나) 또는 메모리 셀들(MC)과 다르게 프로그램될 수 있다. 예를 들어, 메모리 셀들(MC)이 둘 또는 그보다 많은 개수의 문턱 전압 산포를 갖도록 프로그램될 때, 더미 메모리 셀들은 하나의 문턱 전압 산포 범위나 메모리 셀들(MC)보다 적은 개수의 문턱 전압 산포를 갖도록 프로그램될 수 있다.
기판(SUB) 또는 접지 선택 트랜지스터(GST)로부터 동일한 높이(또는 순서)에 위치한 셀 스트링들(CS)의 메모리 셀들은 전기적으로 공통으로 연결될 수 있다. 기판(SUB) 또는 접지 선택 트랜지스터(GST)로부터 상이한 높이(또는 순서)에 위치한 셀 스트링들(CS)의 메모리 셀들은 전기적으로 분리될 수 있다. 예시적으로, 도 2에서, 동일한 높이의 메모리 셀들은 동일한 워드 라인에 연결되는 것으로 도시되어 있으나, 동일한 높이의 메모리 셀들은 메모리 셀들이 형성된 높이의 평면에서 직접 연결되거나 또는 메탈층과 같은 다른 층을 통해 서로 간접 연결될 수 있다.
하나의 스트링(또는 접지) 선택 라인 및 하나의 워드 라인에 대응하는 메모리 셀들은 하나의 페이지를 형성할 수 있다. 쓰기 동작 및 읽기 동작은 각 페이지의 단위로 수행될 수 있다. 각 페이지의 각 메모리 셀은 둘 이상의 비트들을 저장할 수 있다. 각 페이지의 메모리 셀들에 기입되는 비트들은 논리 페이지들을 형성한다. 예를 들어, 각 페이지의 메모리 셀들에 기입되는 k번째 비트들은 k번째 논리 페이지를 형성할 수 있다.
메모리 블록(BLKa)은 3차원 메모리 어레이로 제공된다. 3차원 메모리 어레이는, 실리콘 기판(SUB) 및 메모리 셀들(MC)의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들(MC)의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. 메모리 셀들(MC)의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다.
일례로, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 셀 스트링들(CS)(또는 NAND 스트링들)을 포함한다. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. 각 셀 스트링은 메모리 셀들(MC) 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. 적어도 하나의 선택 트랜지스터는 메모리 셀들(MC)과 동일한 구조를 갖고, 메모리 셀들(MC)과 함께 획일적으로 형성된다.
도 3은 도 2에 도시된 메모리 셀의 문턱 전압 분포의 변화를 예시적으로 설명하기 위한 그래프이다. 도 3은 특정 열화 인자에 따라, 문턱 전압 분포가 변화하는 예시들을 설명하기 위한 도면이다. 도 3을 참조하면, 가로축은 메모리 셀의 문턱 전압(Vth)으로 정의되고, 세로축은 메모리 셀의 개수로 정의된다. 설명의 편의상, 메모리 셀은 싱글 레벨 셀(SLC)인 것으로 가정한다. 싱글 레벨 셀은 문턱 전압에 따라 소거 상태(E) 또는 프로그램 상태(P)를 갖는다. 설명의 편의상 도 1의 도면 부호를 참조하여, 도 3이 설명된다.
도 3의 (i) 내지 (iii) 그래프를 참조하면, 실선은 문턱 전압 분포의 초기 상태를 나타낸다. 소거 상태(E)와 프로그램 상태(P)는 초기 읽기 전압(Vr)을 사용하여 식별될 수 있다. 초기 상태에서, 소거 상태(E)와 프로그램 상태(P)사이에 서로의 상태를 식별하기 충분할 정도의 읽기 마진이 확보된다.
점선은 스토리지 장치(100)의 사용 단계에서의 열화로 인하여, 문턱 전압 산포가 변화하는 예를 나타낸다. 스토리지 장치(100)의 제조 단계 또는 스토리지 장치(100)의 사용 단계에서 메모리 셀에 불량이 발생할 수 있다. 스토리지 장치(100)의 사용 단계에서 불휘발성 메모리 장치(110)의 열화로 인한 불량이 발생될 수 있고, 열화로 인하여 메모리 셀의 문턱 전압 산포가 변화할 수 있다.
도 3의 (i) 그래프를 참조하면, 프로그램 상태(P)의 문턱 전압이 감소하는 방향으로 산포 변형이 발생된다. 일례로, 불휘발성 메모리(110)의 동작 온도가 증가하면, 트랩(trap)되어 있던 전하가 유실되어 프로그램 상태(P)의 문턱 전압이 감소할 수 있다. 그 결과, 초기 읽기 전압(Vr)으로 소거 상태(E)와 프로그램 상태(P)를 식별하는 것이 부적절해진다. 따라서, 초기 읽기 전압(Vr)은 제1 읽기 전압(Vrl)으로 조절될 수 있다. 불휘발성 메모리(110)의 동작 온도는 문턱 전압을 변화시키는 열화 인자일 수 있다.
도 3의 (ii) 그래프를 참조하면, 소거 상태(E)의 문턱 전압이 증가하는 방향으로 산포 변형이 발생된다. 일례로, 메모리 셀의 읽기 회수가 증가하면, 읽기 교란(disturb)에 의하여 소거 상태의 셀에 전하 트랩이 발생되어, 소거 상태(E)의 문턱 전압이 증가할 수 있다. 일례로, 메모리 셀의 쓰기 회수가 증가하면, 터널 옥사이드(tunnel oxide)에 의한 열화가 발생되어, 소거 상태(E)의 문턱 전압이 증가할 수 있다. 그 결과, 초기 읽기 전압(Vr)으로 소거 상태(E)와 프로그램 상태(P)를 식별하는 것이 부적절해진다. 따라서, 초기 읽기 전압(Vr)은 제2 읽기 전압(Vrm)으로 조절될 수 있다. 불휘발성 메모리(110)의 읽기 회수 및 쓰기 회수는 문턱 전압을 변화시키는 열화 인자일 수 있다.
도 3의 (iii)의 그래프를 참조하면, 소거 상태(E) 및 프로그램 상태(P)의 문턱 전압 범위가 넓어지도록 산포 변형이 발생된다. 일례로, 불휘발성 메모리 장치(110)의 프로그램/소거 사이클(PE Cycle)이 증가하는 경우, 리텐션(retention) 시간이 증가하는 경우, 메모리 셀에 포획된 전하들이 유출되어, 문턱 전압 범위가 변화될 수 있다. 그 결과, 초기 읽기 전압(Vr)으로 소거 상태(E)와 프로그램 상태(P)를 식별하는 것이 부적절해진다. 따라서, 초기 읽기 전압(Vr)은 제3 읽기 전압(Vrn)으로 조절될 수 있다. 불휘발성 메모리(110)의 프로그램/소거 사이클 및 리텐션 시간은 문턱 전압을 변화시키는 열화 인자일 수 있다.
본 발명의 실시예에 따른 스토리지 장치(100)는 상술된 열화 인자들에 의한 읽기 전압의 변화를 예측하여 변이 정보를 생성하고, 변이 정보에 기초하여, 읽고자하는 메모리 영역의 읽기 전압을 결정할 수 있다. 변이 정보는 상술된 다양한 열화 인자에 대한 동작 조건별로 불휘발성 메모리(110)를 평가하여 결정될 수 있다. 변이 정보에 대한 구체적인 내용은 후술된다.
도 4는 도 2에 도시된 메모리 셀의 문턱 전압 분포의 변화를 워드 라인별로 예시적으로 설명하기 위한 그래프이다. 도 4는 특정 열화 인자에 따라, 문턱 전압 분포가 워드 라인 단위로 변화하는 예시들을 설명하기 위한 도면이다. 도 4를 참조하면, 가로축은 메모리 셀의 문턱 전압(Vth)으로 정의되고, 세로축은 메모리 셀의 개수로 정의된다. 메모리 셀은 멀티 레벨 셀(MLC)일 수 있으며, 설명의 편의상 두 개의 프로그램 상태들(Pa, Pb)에 대응되는 문턱 전압 분포만을 도시한다. 멀티 레벨 셀은 문턱 전압에 따라 제1 프로그램 상태(Pa) 또는 제2 프로그램 상태(Pb)를 가질 수 있다. 설명의 편의상 도 1의 도면 부호를 참조하여, 도 4가 설명된다.
도 4의 그래프들을 참조하면, 제1 워드 라인(WL1)에 연결된 메모리 셀들에 대한 문턱 전압 분포, 제2 워드 라인(WL2)에 연결된 메모리 셀들에 대한 문턱 전압 분포, 및 제3 워드 라인(WL3)에 연결된 메모리 셀들에 대한 문턱 전압 분포가 각각 도시된다. 제1 워드 라인(WL1)에 연결된 메모리 셀들에 대하여, 제1 프로그램 상태(Pa)와 제2 프로그램 상태(Pb)는 제1 읽기 전압(Vr1)을 사용하여 식별될 수 있다. 제2 워드 라인(WL2)에 연결된 메모리 셀들에 대하여, 제1 프로그램 상태(Pa)와 제2 프로그램 상태(Pb)는 제2 읽기 전압(Vr2)을 사용하여 식별될 수 있다. 제3 워드 라인(WL3)에 연결된 메모리 셀들에 대하여, 제1 프로그램 상태(Pa)와 제2 프로그램 상태(Pb)는 제3 읽기 전압(Vr3)을 사용하여 식별될 수 있다.
동일한 메모리 블록에 포함된 메모리 셀들일지라도, 문턱 전압 분포는 서로 다를 수 있다. 예를 들어, 제1 내지 제3 워드 라인들(WL1~WL3) 각각에 대응되는 문턱 전압 분포는 서로 다를 수 있다. 이 경우, 제1 프로그램 상태(Pa)와 제2 프로그램 상태(Pb)를 식별하기 위한 최적의 읽기 전압은 워드 라인별로 다를 수 있다. 즉, 제1 내지 제3 읽기 전압들(Vr1~Vr3)은 서로 다를 수 있다. 불휘발성 메모리 장치(110)에 포함된 메모리 셀들에 동일한 읽기 전압을 제공하는 경우, 메모리 셀에 따라, 제1 프로그램 상태(Pa) 또는 제2 프로그램 상태(Pb)를 식별하지 못할 수 있다.
일례로, 메모리 셀의 위치에 따라 문턱 전압 분포는 서로 다를 수 있다. 예를 들어, 도 2를 참조하여 설명하면, 셀 스트링(CS)의 제조 공정에서, 기판(SUB)의 상부 면과 평행한 단면적은 필라의 폭을 고려할 때, 기판(SUB)과의 거리가 감소할수록 작게 형성될 수 있다. 따라서, 워드 라인을 통하여 기판(SUB)에 인접한 메모리 셀에 전압이 인가될 때, 기판(SUB)에 인접한 메모리 셀에 형성되는 전기장이 기판(SUB)과 먼 메모리 셀에 형성되는 전기장보다 클 수 있다. 이는 읽기 교란에 영향을 주게 되고, 워드 라인 단위로 서로 다른 열화 상태를 발생시킬 수 있다.
이외에도, 리텐션 시간, 프로그램/소거 사이클, 온도 등 다양한 열화 인자에 의한 열화 정도가 메모리 셀의 위치에 따라 다를 수 있다. 동일한 워드 라인에 연결된 메모리 셀들은 기판과의 거리, 인접한 필라의 폭 등이 거의 일정하므로, 서로 대체로 유사한 열화 상태를 가질 수 있다. 또한, 워드 라인들 각각의 거리는 거의 일정하므로, 서로 다른 워드 라인에 연결된 메모리 영역들 각각은 열화에 따라 일정한 상관관계를 가질 수 있다.
본 발명의 실시예에 따른 스토리지 장치(100)는 상술된 워드 라인별 읽기 전압의 차이를 예측하여 변이 정보를 생성하고, 변이 정보에 기초하여, 읽고자 하는 메모리 영역의 읽기 전압을 결정할 수 있다. 변이 정보는 워드 라인 단위로 다양한 열화 인자에 대한 읽기 전압의 변화를 평가하여 결정될 수 있다. 변이 정보에 대한 구체적인 내용은 후술된다.
도 5는 도 1의 읽기 전압 제어 모듈을 구체화한 블록도이다. 도 5를 참조하면, 읽기 전압 제어 모듈(131)은 상태 관리기(131_1), 최적 읽기 전압 관리기(131_2), 및 워드 라인 변이 관리기(131_3)를 포함한다. 읽기 전압 제어 모듈(131)은 CPU(121)의 제어 하에, 버퍼 메모리(130)에 로드되어 실행될 수 있다. 일례로, 읽기 전압 제어 모듈(131)은 펌웨어로 구현되는 경우, 불휘발성 메모리 장치(110)에 저장되었다가, 메모리 버퍼(130)에 로딩되어, CPU(121)에 의하여 실행될 수 있다. 또는, 읽기 전압 제어 모듈(131)은 ASIC(application specific integrated circuit), FPGA(field programmable gate array) 등에 의하여 하드웨어로 구현될 수 있다. 설명의 편의상, 도 1의 도면 부호를 참조하여, 도 5가 설명된다.
상태 관리기(131_1)는 메모리 블록의 열화에 따른 복수의 워드 라인들 각각에 제공되는 읽기 전압들의 예측값들을 예측 또는 관리할 수 있다. 상태 관리기(131_1)는 버퍼 메모리(130)로부터 상태 정보(SI)를 수신할 수 있다. 상태 정보(SI)는 메모리 블록에 포함되는 복수의 메모리 영역들에 대한 상태 정보들을 포함할 수 있다. 여기에서, 복수의 메모리 영역들 각각은 동일한 워드 라인과 연결된 메모리 셀들을 포함할 수 있다.
상태 정보(SI)는 불휘발성 메모리 장치(110)의 에이징 상태에 대한 정보를 포함할 수 있다. 또한, 상태 정보(SI)는 불휘발성 메모리 장치(110)의 열화에 따른 읽기 전압의 변화를 평가한 결과에 대한 정보를 더 포함할 수 있다. 이러한 평가는 사전에 수행될 수 있고, P/E Cycle, 리텐션 시간, 읽기 교란 등 다양한 열화 인자의 조건에 따른 읽기 전압의 변화에 대한 평가가 메모리 영역별로 사전에 수행될 수 있다. 일례로, 메모리 컨트롤러(120)는 에이징 상태에 대한 정보 또는 읽기 전압의 변화를 사전에 평가한 결과에 대한 정보를 별도로 관리하지 않을 수 있다. 이 경우, 메모리 컨트롤러(120)는 상태 정보(SI)에 기초하여 생성된 변이 정보만 저장할 수도 있다.
일례로, 상태 정보(SI)는 현재의 열화 상태에 기초한 메모리 영역들의 상태에 대한 정보를 포함할 수 있다. 예시적으로, 메모리 컨트롤러(120)는 웨어 레벨링(wear leveling)을 위하여 관리되는 불휘발성 메모리 장치(110)의 메모리 블록별 프로그램/소거 회수, 메모리 영역별 읽기 회수, 온도, 리텐션 시간 등을 저장하고 업데이트할 수 있다. 이러한 현재의 열화 상태에 대한 정보는 추후 읽고자 하는 메모리 영역에 대한 읽기 전압을 계산하는데 이용될 수 있다.
최적 읽기 전압 관리기(131_2)는 메모리 블록들 각각에 대한 읽기 블록 전압을 설정할 수 있다. 특정 메모리 블록에 포함된 메모리 영역에 대한 읽기 요청이 수신된 경우, 읽기 블록 전압은 해당 메모리 영역에 대한 읽기 전압을 계산하기 위하여 참조되는 전압 레벨을 나타낼 수 있다. 동일한 메모리 블록 내에서, 동일한 읽기 블록 전압이 이용될 수 있다.
최적 읽기 전압 관리기(131_2)는 읽기 블록 전압을 생성하기 위하여, 최적의 읽기 전압을 검색할 수 있다. 여기에서, 최적의 읽기 전압은, 특정 메모리 영역에 대한 읽기 동작을 수행할 때, 모든 프로그램 상태들에 대하여 에러가 발생되지 않고 식별 가능한 읽기 전압들의 집합일 수 있다. 예를 들어, 최적의 읽기 전압은 과거의 특정 메모리 영역에 대한 읽기 동작이 요청될 때, 읽기 동작이 성공한 읽기 전압들의 집합일 수 있다. 최적 읽기 전압 관리기(131_2)는 검색된 최적의 읽기 전압에 기초하여, 읽기 블록 전압을 생성하고, 저장할 수 있다. 읽기 블록 전압의 생성에 대한 구체적인 실시예들은 후술된다.
읽기 블록 전압이 설정된 이후에, 스토리지 장치(100)는 호스트 장치로부터 읽기 요청을 수신할 수 있다. 이 경우, 최적 읽기 전압 관리기(131_2)는 읽기 요청에 대응되는 메모리 블록에 대한 정보인 블록 정보(BI)를 수신할 수 있다. 최적 읽기 전압 관리기(131_2)는 블록 정보(BI)에 기초하여, 읽기 요청에 대응되는 메모리 블록의 읽기 블록 전압을 워드 라인 변이 관리기(131_3)에 출력할 수 있다.
워드 라인 변이 관리기(131_3)는 상태 관리기(131_1)에서 저장된 메모리 영역들 각각에 대응되는 읽기 전압의 예측값들에 기초하여, 변이 정보를 생성하고 저장할 수 있다. 워드 라인 변이 관리기(131_3)는 열화에 따른 메모리 영역들 각각에 대한 상관관계를 추출할 수 있고, 추출된 상관관계에 기초하여, 변이 정보를 생성할 수 있다. 이러한 변이 정보는 테이블, 관계식, 결정 트리, 또는 인공 신경망의 가중치 등으로 구현될 수 있다.
워드 라인 변이 관리기(131_3)는 설정된 변이 정보에 기초하여, 읽기 요청에 대응되는 메모리 영역의 읽기 전압을 결정할 수 있다. 워드 라인 변이 관리기(131_3)는 최적 읽기 전압 관리기(131_2)로부터 제공된 읽기 블록 전압을 변이 정보에 적용하여 읽기 전압을 계산할 수 있다. 읽기 전압을 계산하기 위하여, 읽기 요청된 메모리 영역에 대응되는 워드 라인의 위치 정보, 및 읽기 블록 전압을 생성하는데 이용된 워드 라인의 위치 정보가 이용될 수 있다.
예를 들어, 워드 라인 변이 관리기(131_3)는 읽기 블록 전압에 대응되는 워드 라인과 읽고자 하는 워드 라인 사이의 상관관계를 변이 정보를 통하여 계산할 수 있다. 그리고, 이러한 상관관계에 따라, 읽기 블록 전압의 보정값이 계산될 수 있다. 워드 라인 변이 관리기(131_3)는 읽기 블록 전압에 보정값을 반영하여, 최종적인 읽기 전압을 계산할 수 있다. 일례로, 워드 라인 변이 관리기(131_3)는 상태 관리기(131_1)가 현재의 열화 상태에 대한 정보를 생성한 경우, 이러한 정보를 더 고려하여, 읽기 전압을 계산할 수 있다. 계산된 읽기 전압을 불휘발성 메모리 장치(110)의 해당 워드 라인에 제공하기 위하여, 워드 라인 변이 관리기(131_3)는 워드 라인 전압 정보(WI)를 불휘발성 메모리 장치(110)에 제공할 수 있다.
도 6은 본 발명의 실시예에 따른 스토리지 장치의 데이터를 읽는 방법에 대한 순서도이다. 도 6을 참조하면, 데이터를 읽는 방법은 도 1의 메모리 컨트롤러(120)에서 수행될 수 있다. 설명의 편의상, 도 1의 도면 부호를 참조하여, 도 6이 설명된다.
S110 단계에서, 메모리 컨트롤러(120)는 외부의 호스트 장치로부터 읽기 요청을 수신할 수 있다. 읽기 요청은 호스트 인터페이스(124)를 통하여 수신될 수 있다.
S120 단계에서, 메모리 컨트롤러(120)는 읽기 요청된 데이터가 쓰여진 불휘발성 메모리 장치(110)의 메모리 블록을 판단할 수 있다. 메모리 컨트롤러(120)는 해당 메모리 블록에 대응되는 최적의 읽기 블록 전압이 존재하는지 검색할 수 있다. 예를 들어, 최적의 읽기 블록 전압은 읽기 요청을 수신하기 전에, 읽기 동작이 성공한 워드 라인에 제공되는 읽기 전압에 기초하여 설정될 수 있다. 읽기 블록 전압이 존재하는 경우, S130 단계가 진행되고, 읽기 블록 전압이 존재하지 않는 경우, S140 단계가 진행된다.
S130 단계에서, 메모리 컨트롤러(120)는 읽기 블록 전압 및 변이 정보 기초하여 읽기 요청된 메모리 영역에 대응되는 읽기 전압을 계산할 수 있다. 변이 정보는 열화에 따른 메모리 영역별 읽기 전압의 변화량에 기초하여 생성될 수 있다. 메모리 컨트롤러(120)는 읽기 블록 전압에, 해당 메모리 영역의 열화에 따른 읽기 전압의 변화량을 적용하여, 읽기 전압을 계산할 수 있다.
S140 단계에서, 읽기 블록 전압이 존재하지 않으므로, 메모리 컨트롤러(120)는 읽기 전압을 기설정된 초기 전압으로 결정할 수 있다. 여기에서, 초기 전압은 디폴트 값일 수 있다.
S150 단계에서, 메모리 컨트롤러(120)는 S130 단계 또는 S140 단계에서 결정된 읽기 전압에 기초하여 읽기 동작을 수행할 수 있다. 메모리 컨트롤러(120)는 읽기 요청된 데이터를 읽기 위하여, 불휘발성 메모리 장치(110)에 읽기 커맨드 및 어드레스를 전달할 수 있다. 불휘발성 메모리 장치(110)는 읽기 커맨드 및 어드레스에 응답하여 메모리 셀로부터 데이터를 센싱할 수 있다. 센싱된 데이터는 메모리 컨트롤러(120)에 출력될 수 있다.
S150 단계에서, 메모리 컨트롤러(120)는 수행된 읽기 동작의 성공여부를 판별할 수 있다. 일례로, 메모리 컨트롤러(120)는 결정된 읽기 전압에 기초하여 읽혀진 데이터의 에러를 검출 및 정정하여 UECC(Uncorrectable Error Correction Code)가 발생되었는지 판단할 수 있다. UECC는 메모리 컨트롤러(120)의 에러 정정 블록(127)에 의하여 정정되지 않은 에러를 포함한 상태를 가리킬 수 있다. 에러 정정 블록(127)은 불휘발성 메모리 장치(110)로부터 수신된 데이터에 대한 에러 정정 디코딩 중, UECC를 검출할 수 있다. UECC가 검출된 경우, S160 단계가 진행된다. UECC가 검출되지 않은 경우, 읽기 동작은 성공한 것으로 판단되고, 읽기 동작이 종료된다.
S160 단계에서, 메모리 컨트롤러(120)는 UECC가 검출되어, 읽기 동작이 성공하지 못하였으므로, 다른 방법으로 읽기 전압을 보정한다. 일례로, 메모리 컨트롤러(120)는 불휘발성 메모리 장치(110)의 현재의 열화 상태에 대한 정보를 수신하고, 현재의 열화 상태에 기초하여, 읽기 전압을 보정할 수 있다. 일례로, 메모리 컨트롤러(120)는 열화 상태에 따른 읽기 전압의 변화를 기계 학습하여 생성된 예측 모델을 실행할 수 있고, 생성된 예측 모델에 기초하여, 읽기 전압을 예측할 수 있다. 메모리 컨트롤러(120)는 예측된 읽기 전압으로 이전에 설정된 읽기 전압을 보정할 수 있다. 다른 방법으로 읽기 전압을 보정하는 방법은 제한되지 않고, 결정 트리, 인공 신경망 등 다양한 방식이 적용될 수 있다. 보정된 읽기 전압은 메모리 컨트롤러(120)에 의하여 관리되고, 버퍼 메모리(130)에 저장될 수 있다. 보정된 읽기 전압에 기초하여, 메모리 컨트롤러(120)는 읽기 블록 전압을 업데이트할 수 있다.
도 7은 도 6의 데이터를 읽는 방법의 일 실시예에 대한 순서도이다. 도 7을 참조하면, 데이터를 읽는 방법은 도 1의 메모리 컨트롤러(120)에서 수행될 수 있다. 도 1의 불휘발성 메모리 장치(110)에 포함된 메모리 셀은 멀티 레벨 셀(MLC)로 가정한다. 메모리 셀은 복수의 프로그램 상태들을 가질 수 있고, 복수의 프로그램 상태들 각각은 제1 내지 제3 읽기 전압들(RP1~RP3) 등을 사용하여 식별될 수 있다. 설명의 편의상 도 1의 도면 부호를 참조하여, 도 7이 설명된다.
S210 단계에서, 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 수행될 수 있다. 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 성공적으로 수행된 것으로 가정한다. 제2 워드 라인(WL2)에 연결된 메모리 영역에 대응되는 읽기 전압(Vr2)은 (aa, bb, cc)인 것으로 가정한다.
S220 단계에서, 메모리 컨트롤러(120)는 제2 워드 라인(WL2) 및 제3 워드 라인(WL3)이 연결되는 메모리 블록에 대한 읽기 블록 전압(Vro)을 계산할 수 있다. S220 단계는 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 수행된 후에 진행될 수 있다. 읽기 블록 전압은 읽기 동작이 성공한 메모리 영역에 제공되는 읽기 전압에 기초하여 설정될 수 있다.
읽기 블록 전압(Vro)은 변이 정보에 기초하여 생성될 수 있다. 도 7에서 변이 정보는 변이 오프셋 테이블(Tb)과 같은 형태로 관리될 수 있다. 변이 오프셋 테이블(Tb)은 메모리 블록의 열화에 따른 워드 라인들 각각에 제공되는 읽기 전압의 예측값들에 기초하여 생성될 수 있다. 이러한 예측값들은 사전에 평가될 수 있고, 프로그램/소거 회수, 리텐션 시간 등 다양한 열화 인자들의 조건을 불휘발성 메모리 장치(110)에 부여하여, 생성될 수 있다.
변이 오프셋 테이블(Tb)은 기준 워드 라인의 예측값에 대한 나머지 워드 라인들의 예측값들의 차이에 기초하여 생성될 수 있다. 예를 들어, 기준 워드 라인은 제1 워드 라인(WL1)으로 가정하면, 제1 워드 라인(WL1)에 대응되는 테이블 값들 (제1 오프셋 정보)은 0으로 설정될 수 있다. 제2 워드 라인(WL2)에 대응되는 테이블 값들 (제2 오프셋 정보)은 제1 워드 라인(WL1)에 대응되는 예측값들과 제2 워드 라인(WL2)에 대응되는 예측값들의 상대적인 차이일 수 있다. 마찬가지로, 제3 워드 라인(WL3)에 대응되는 테이블 값들 (제3 오프셋 정보)은 제1 워드 라인(WL1)에 대응되는 예측값들과 제3 워드 라인(WL3)에 대응되는 예측값들의 상대적인 차이일 수 있다. 즉, 변이 오프셋 테이블(Tb)은 특정 열화 조건(예를 들어, 특정된 프로그램/소거 회수의 범위)에 따른, 워드 라인들별 읽기 전압의 상대적인 관계를 나타낼 수 있다.
다시, S220 단계를 참조하면, 읽기 블록 전압(Vro)은 변이 오프셋 테이블(Tb)을 참조하여 계산될 수 있다. 읽기 동작에 성공한 읽기 전압(Vr2)의 값들 (aa, bb, cc)에 제2 오프셋 정보, (10, 0, -20)이 반영되어 읽기 블록 전압(Vro)이 계산될 수 있다. (aa, bb, cc)와 (10, 0, -20) 사이의 뺄셈 연산이 수행될 수 있고, 읽기 블록 전압(Vro)은 (aa-10, bb, cc+20)으로 계산될 수 있다.
S230 단계에서, 메모리 컨트롤러(120)는 계산된 읽기 블록 전압(Vro)을 관리 및 저장할 수 있다. 읽기 블록 전압(Vro)은 버퍼 메모리(130)에 저장될 수 있다. 일례로, 메모리 컨트롤러(120)는 계산된 읽기 블록 전압(Vro)뿐만 아니라, 읽기 블록 전압(Vro)을 생성하는데 사용된 워드 라인의 위치 정보를 함께 관리할 수 있으나, 이에 제한되지 않는다. 도 7의 실시예에서, 저장된 읽기 블록 전압(Vro)은 이미 변이 오프셋 테이블(Tb)의 오프셋 값들을 반영하여 관리되므로, 별도의 워드 라인의 위치 정보가 관리되지 않을 수 있다.
S240 단계에서, 메모리 컨트롤러(120)는 설정된 읽기 블록 전압(Vro) 및 변이 오프셋 테이블(Tb)에 기초하여, 다른 메모리 영역에 대한 읽기 전압을 계산할 수 있다. 제2 워드 라인(WL2)과 연결된 메모리 영역의 읽기 동작이 수행된 후, 제3 워드 라인(WL3)에 연결된 메모리 영역에 대한 읽기 동작이 수행되는 것으로 가정한다. 제3 워드 라인(WL3)에 연결된 메모리 영역에 대한 읽기 요청에 따라, 메모리 컨트롤러(120)는 읽기 블록 전압(Vro)이 존재하는지 판단할 수 있다.
도 7에서, 읽기 블록 전압(Vro)이 존재하므로, 메모리 컨트롤러(120)는 읽기 블록 전압(Vro)에 변이 오프셋 테이블(Tb)의 제3 오프셋 정보인 (-5, -10, -5)을 반영하여 읽기 전압을 계산할 수 있다. (aa-10, bb, cc+20)과 (-5, -10, -5)의 덧셈 연산이 수행될 수 있고, 읽기 전압(Vr3)은 (aa-15, bb-10, cc+15)로 계산될 수 있다. 메모리 컨트롤러(120)는 계산된 읽기 전압(Vr3)에 기초하여, 제3 워드 라인(WL3)에 연결된 메모리 영역에 대한 읽기 동작을 수행할 수 있다.
읽기 블록 전압(Vro) 및 변이 오프셋 테이블(Tb)을 이용함으로써, 열화에 따른 읽기 전압의 변화가 메모리 블록 단위가 아닌 워드 라인 단위로 대처될 수 있다. 또한, 열화에 따른 읽기 전압의 워드 라인별 상대적인 변화가 변이 오프셋 테이블(Tb)에서 오프셋 값으로 관리됨으로써, 읽기 전압을 제어하기 위한 리소스가 감소될 수 있다. 또한, 읽기 블록 전압(Vro)이 설정될 때, 변이 오프셋 테이블(Tb)을 반영하여 설정되므로, 추후 읽기 동작시에, 단순한 덧셈 연산으로 읽기 전압이 결정될 수 있다. 즉, 읽기 전압을 결정하기 위한 연산 속도가 향상될 수 있다.
도 7은 하나의 변이 오프셋 테이블(Tb)을 이용하여, 읽기 전압을 결정하는 것으로 도시되었으나, 변이 오프셋 테이블(Tb)은 복수로 제공될 수 있다. 복수의 변이 오프셋 테이블들 각각은 리텐션 시간, 온도, 프로그램/소거 회수, 읽기 회수, 읽기 교란 등 다양한 열화 인자 중 적어도 하나를 기준으로 구분되는 조건들에 대응될 수 있다. 복수의 변이 오프셋 테이블들을 사용하는 경우, 열화 조건에 따라 사용된 변이 오프셋 테이블이 구분될 수 있으므로, 읽기 전압의 정확성이 증가할 수 있다.
도 8은 변이 정보가 복수의 테이블들을 포함할 때, 테이블들을 구분하는 과정을 설명하기 위한 도면이다. 예를 들어, 복수의 테이블들 각각은 도 7의 변이 오프셋 테이블(Tb)일 수 있다. 다만, 이에 제한되지 않고, 복수의 테이블들 각각은 예를 들어, 워드 라인별 상대적인 오프셋 값이 아닌, 열화에 따른 읽기 전압의 예측값일 수도 있다. 테이블들을 구분하는 과정은 스토리지 장치(100)에서 수행될 수도 있으나, 이에 제한되지 않고, 별도의 테스트 장치를 통하여, 테이블들이 구분될 수 있다. 이 경우, 구분된 결과들은 스토리지 장치(100)의 메모리 컨트롤러(120)에 설정될 수 있고, 추후 스토리지 장치(100)의 읽기 동작시에 활용될 수 있다.
도 8을 참조하면, 열화에 따른 불휘발성 메모리 장치(110)의 읽기 전압이 사전에 평가된다. 다양한 열화 인자별로, 불휘발성 메모리 장치(110)의 읽기 전압이 평가될 수 있다. 이러한 열화 인자는 예를 들어, 메모리 블록의 프로그램/소거 회수, 읽기 회수, 리텐션 시간, 온도, 및 읽기 교란 중 적어도 하나를 포함할 수 있다. 평가 결과, 열화 조건에 따라 구분되는 읽기 전압 데이터(RD)가 생성될 수 있다. 읽기 전압 데이터(RD)는 식별할 프로그램 상태들에 따라 복수의 읽기 전압들(RP1, RP2, …)로 구분되고, 복수의 워드 라인들(WL1, WL2, WL3, …)에 대응되는 메모리 영역들로 구분될 수 있다.
읽기 전압 데이터(RD)는 열화 인자의 조건에 따라 복수의 그룹들로 구분될 수 있다. 우선, 읽기 전압 데이터(RD)는 제1 열화 인자의 조건에 따라 제1 읽기 전압 데이터 그룹(RD1) 및 제2 읽기 전압 데이터 그룹(RD2)으로 구분될 수 있다. 데이터 그룹들의 개수는 예시적인 것으로 2개와 다를 수 있음은 자명하게 이해될 것이다. 예시적으로, 제1 열화 인자는 프로그램/소거 회수일 수 있다. 프로그램/소거 회수가 제1 조건(PE1)인 읽기 전압 데이터(RD)는 제1 읽기 전압 데이터 그룹(RD1)에 포함되고, 제2 조건(PE2)인 읽기 전압 데이터(RD)는 제2 읽기 전압 데이터 그룹(RD2)에 포함될 수 있다.
예를 들어, 프로그램/소거 회수의 제1 조건(PE1)은 기준 회수보다 작은 프로그램/소거 회수일 수 있고, 제1 읽기 전압 데이터 그룹(RD1)은 제1 조건(PE1) 하에서 평가된 읽기 전압 데이터(RD)를 포함할 수 있다. 프로그램/소거 회수의 제2 조건(PE2)은 기준 회수 이상의 프로그램/소거 회수일 수 있고, 제2 읽기 전압 데이터 그룹(RD2)은 제2 조건(PE2) 하에서 평가된 읽기 전압 데이터(RD)를 포함할 수 있다. 기준 회수는 설계자에 의하여 임의로 설정될 수 있다. 또는, 읽기 전압 데이터(RD)에 클러스터링을 적용함으로써, 최적화된 기준 회수가 생성될 수 있다. 예시적으로, 클러스터링은 기계 학습을 통하여 수행될 수 있고, 데이터 양이 많은 경우, 데이터양을 줄이기 위한 차원 축소 과정이 수행될 수 있다.
제1 및 제2 읽기 전압 데이터 그룹들(RD1, RD2)은 제1 열화 인자와 다른 제2 열화 인자의 조건에 따라, 제1 내지 제4 읽기 전압 서브 데이터 그룹들(RDa~RDd)로 구분될 수 있다. 서브 데이터 그룹들의 개수는 예시적인 것으로 4개와 다를 수 있음은 자명하게 이해될 것이다. 예시적으로, 제2 열화 인자는 리텐션 시간일 수 있다. 제1 읽기 전압 데이터 그룹(RD1)에서, 리텐션 시간이 제1 조건(Ret1)인 읽기 전압 데이터(RD)는 제1 읽기 전압 서브 데이터 그룹(RDa)에 포함되고, 제2 조건(Ret2)인 읽기 전압 데이터(RD)는 제2 읽기 전압 서브 데이터 그룹(RDb)에 포함될 수 있다. 제2 읽기 전압 데이터 그룹(RD2)에서, 리텐션 시간이 제1 조건(Ret1)인 읽기 전압 데이터(RD)는 제3 읽기 전압 서브 데이터 그룹(RDc)에 포함되고, 제2 조건(Ret2)인 읽기 전압 데이터(RD)는 제4 읽기 전압 서브 데이터 그룹(RDd)에 포함될 수 있다.
예를 들어, 리텐션 시간의 제1 조건(Ret1)은 기준 시간보다 작은 시간일 수 있고, 제1 및 제3 읽기 전압 서브 데이터 그룹들(RDa, RDc)은 제1 조건(Ret1) 하에서 평가된 읽기 전압 데이터(RD)를 포함할 수 있다. 리텐션 시간의 제2 조건(Ret2)은 기준 시간 이상의 시간일 수 있고, 제2 및 제4 읽기 전압 서브 데이터 그룹들(RDb, RDd)은 제2 조건(Ret2) 하에서 평가된 읽기 전압 데이터(RD)를 포함할 수 있다. 기준 시간는 설계자에 의하여 임의로 설정될 수 있다. 또는, 읽기 전압 데이터(RD)에 클러스터링을 적용함으로써, 최적화된 기준 시간이 생성될 수 있다. 예시적으로, 클러스터링은 기계 학습을 통하여 수행될 수 있고, 경우에 따라 차원 축소 과정이 수행될 수 있다.
제1 내지 제4 읽기 전압 서브 데이터 그룹들(RDa~RDd) 각각은 하나의 변이 테이블을 생성하는데 이용될 수 있다. 예를 들어, 제1 내지 제4 읽기 전압 서브 데이터 그룹들(RDa~RDd) 각각의 대표값이 열화 인자의 조건별 변이 테이블에 포함된 값으로 설정될 수 있다. 여기에서, 대표값은 그룹들 내에 포함된 데이터의 평균값, 중앙값, 또는 최빈값일 수 있으며, 이에 제한되지 않고, 읽기 전압을 선정하기 위한 다양한 값들이 대표값으로 설정될 수 있다. 아울러, 생성되는 테이블이 변이 오프셋 테이블인 경우, 기준 워드 라인(예를 들어, 제1 워드 라인(WL1))에 대응되는 값들을 읽기 전압 데이터에서 차감함으로써, 변이 오프셋 테이블에 포함된 예측값들을 설정할 수 있다.
도 9는 도 6의 데이터를 읽는 방법의 일 실시예에 대한 순서도이다. 도 9는 도 8의 과정을 통하여, 복수의 변이 테이블들(Tb1~Tb3)이 생성된 경우, 복수의 변이 테이블들(Tb1~Tb3)을 이용하여 데이터를 읽는 방법을 도시한다. 도 9를 참조하면, 데이터를 읽는 방법은 도 1의 메모리 컨트롤러(120)에서 수행될 수 있다. 도 1의 불휘발성 메모리 장치(110)에 포함된 메모리 셀은 멀티 레벨 셀(MLC)로 가정한다. 메모리 셀은 복수의 프로그램 상태들을 가질 수 있고, 복수의 프로그램 상태들 각각은 제1 내지 제3 읽기 전압들(RP1~RP3) 등을 사용하여 식별될 수 있다. 설명의 편의상 도 1의 도면 부호를 참조하여, 도 9가 설명된다.
S310 단계에서, 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 수행될 수 있다. 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 성공적으로 수행된 것으로 가정한다. 제2 워드 라인(WL2)에 연결된 메모리 영역에 대응되는 읽기 전압(Vr2)은 (aa, bb, cc)인 것으로 가정한다.
S320 단계에서, 메모리 컨트롤러(120)는 읽기 블록 전압(Vro)을 설정하고, 추후의 읽기 동작을 수행하기 위한 변이 테이블을 선택할 수 있다. 도 8의 과정에 기초하여, 복수의 변이 테이블들(Tb1~Tb3)이 생성될 수 있다. 메모리 컨트롤러(120)는 제2 워드 라인(WL2)에 연결된 메모리 영역에 대응되는 읽기 전압(Vr2)과 제1 내지 제3 변이 테이블들(Tb1~Tb3) 각각에 포함된 제2 워드 라인(WL2)에 대응되는 읽기 전압을 비교할 수 있다. 비교 결과, 가장 유사한 읽기 전압(Vr2)을 갖는 변이 테이블이 선택될 수 있다. 다만, 이에 제한되지 않고, 메모리 컨트롤러(120)는 현재 열화 상태를 불휘발성 메모리 장치(110)로부터 수신하고, 현재 열화 상태의 조건을 만족하는 변이 테이블을 선택할 수 있다. 예시적으로 제1 변이 테이블(Tb1)이 선택된 것으로 가정한다.
S330 단계에서, 메모리 컨트롤러(120)는 읽기 블록 전압(Vro)을 계산할 수 있다. 읽기 블록 전압(Vro)은 선택된 변이 테이블인 제1 변이 테이블(Tb1)을 참조하여 계산될 수 있다. S330 단계는 도 7의 S220 단계와 실질적으로 동일하므로, 구체적인 설명이 생략된다. (aa, bb, cc)와 제1 변이 테이블(Tb1)의 제2 워드 라인(WL2)에 대한 정보인 (aa2, bb2, cc2)의 뺄셈 연산에 기초하여, 읽기 블록 전압(Vro)은 (aa-aa2, bb-bb2, cc-cc2)로 계산될 수 있다.
S340 단계에서, 메모리 컨트롤러(120)는 계산된 읽기 블록 전압(Vro)을 관리 및 저장할 수 있다. 읽기 블록 전압(Vro)은 버퍼 메모리(130)에 저장될 수 있다. S340 단계는 도 7의 S230 단계와 실질적으로 동일하므로, 구체적인 설명이 생략된다.
S350 단계에서, 메모리 컨트롤러(120)는, 읽기 요청에 따라, 설정된 읽기 블록 전압(Vro) 및 선택된 제1 변이 테이블(Tb1)에 기초하여, 제3 워드 라인(WL3)에 연결된 메모리 영역의 읽기 전압(Vr3)을 계산할 수 있다. S350 단계는 도 7의 S240 단계와 실질적으로 동일하므로, 구체적인 설명이 생략된다. (aa-aa2, bb-bb2, cc-cc2)와 제1 변이 테이블(Tb1)의 제3 워드 라인(WL3)에 대한 정보인 (aa3, bb3, cc3)의 덧셈 연산에 기초하여, 읽기 블록 전압(Vro)은 (aa-aa2+aa3, bb-bb2+bb3, cc-cc2+cc3)로 계산될 수 있다.
도 10은 도 9의 변이 테이블을 선택하는 과정을 구체화한 도면이다. 도 10을 참조하면, 읽기 동작이 성공적으로 수행된 읽기 전압(Vr2), 제1 내지 제3 변이 테이블들(Tb1~Tb3)에 포함된 데이터는 수치값을 갖는 것으로 도시되었으며, 이러한 수치는 단순히 설명의 편의상 설정된 것으로 이해될 것이다. 변이 테이블을 선택하는 과정은 도 1의 메모리 컨트롤러(120)에서 수행될 수 있다.
읽기 전압(Vr2)은 제1 내지 제3 변이 테이블들(Tb1~Tb3)과 각각 비교될 수 있다. 도 8에서 읽기 전압(Vr2)은 제2 워드 라인(WL2)에 대응되므로, 읽기 전압(Vr2)에 포함된 값들은 제1 내지 제3 변이 테이블들(Tb1~Tb3) 각각에 포함된 제2 워드 라인(WL2)에 대응되는 읽기 전압의 값들과 비교될 수 있다.
메모리 컨트롤러(120)는 상기 비교에 따른 결과를 계산할 수 있다. 메모리 컨트롤러(120)는 읽기 전압(Vr2)에 포함된 값들과 제1 내지 제3 변이 테이블들(Tb1~Tb3) 각각에 포함된 값들의 차이를 계산할 수 있다. 이러한 차이는 절대값으로 표현될 수 있다. 읽기 전압(Vr2)과 제1 변이 테이블(Tb1)의 비교 결과, (50-65, 0-10, -30+30)이 계산되므로, 제1 변이 테이블(Tb1)에 대응되는 오프셋 값은 (15, 10, 0)으로 계산될 수 있다. 읽기 전압(Vr2)과 제2 변이 테이블(Tb2)의 비교 결과, (50-80, 0-20, -30+20)이 계산되므로, 제2 변이 테이블(Tb2)에 대응되는 오프셋 값은 (30, 20, 10)으로 계산될 수 있다. 읽기 전압(Vr2)과 제3 변이 테이블(Tb3)의 비교 결과, (50-50, 0+10, -30+60)이 계산되므로, 제3 변이 테이블(Tb3)에 대응되는 오프셋 값은 (0, 10, 30)으로 계산될 수 있다.
계산된 오프셋 값들은 변이 테이블 별로 비교될 수 있다. 비교 결과, 읽기 블록 전압 및 추후 읽기 요청에 따른 읽기 전압을 계산하기 위한, 최종적인 변이 테이블이 선택될 수 있다. 예시적으로, 메모리 컨트롤러(120)는 minMax 연산에 기초하여 변이 테이블을 선택할 수 있다. minMax 연산을 이용하는 경우, 메모리 컨트롤러(120)는 제1 변이 테이블(Tb1), 제2 변이 테이블(Tb2), 및 제3 변이 테이블(Tb3) 각각에 대응되는 오프셋 값들 중 최대값을 선택하고, 최대값이 가장 작은 변이 테이블을 선택할 수 있다.
도 10을 참조하면, 제1 내지 제3 변이 테이블들(Tb1~Tb3) 각각의 최대값은 15, 30, 30이고, 15로 가장 작은 최대값을 갖는 제1 변이 테이블(Tb1)이 선택될 수 있다. 다만, 이에 제한되지 않고, 다양한 방식으로 변이 테이블이 선택될 수있으며, 예를 들어, 변이 테이블들 별 비용함수를 계산하여, 최종 변이 테이블이 선택될 수도 있다.
도 11은 도 6의 데이터를 읽는 방법의 일 실시예에 대한 순서도이다. 도 11은 열화에 따른 워드 라인별 상관관계를 관계식으로 설정하고, 이러한 관계식에 대한 계수 모델(CM)을 이용하여 데이터를 읽는 방법을 도시한다. 도 11을 참조하면, 데이터를 읽는 방법은 도 1의 메모리 컨트롤러(120)에서 수행될 수 있다. 도 1의 불휘발성 메모리 장치(110)에 포함된 메모리 셀은 멀티 레벨 셀(MLC)로 가정한다. 메모리 셀은 복수의 프로그램 상태들을 가질 수 있고, 복수의 프로그램 상태들 각각은 제1 내지 제3 읽기 전압들(RP1~RP3) 등을 사용하여 식별될 수 있다. 설명의 편의상 도 1의 도면 부호를 참조하여, 도 11이 설명된다.
S410 단계에서, 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 수행될 수 있다. 제2 워드 라인(WL2)에 연결된 메모리 영역에 대한 읽기 동작이 성공적으로 수행된 것으로 가정한다. 제2 워드 라인(WL2)에 연결된 메모리 영역에 대응되는 읽기 전압(Vr2)은 (aa, bb, cc)인 것으로 가정한다.
S420 단계에서, 메모리 컨트롤러(120)는 읽기 블록 전압(Vro)을 관리 및 저장할 수 있다. 예시적으로, 읽기 블록 전압(Vro)은 읽기 전압(Vr2)과 동일한 것으로 도시되었으나, 이에 제한되지 않는다. 예를 들어, 메모리 컨트롤러(120)에 도 7 또는 도 9와 같이 오프셋 기준이 마련된 경우에는, 메모리 컨트롤러(120)는 읽기 전압(Vr2)에 오프셋 기준을 반영하여 읽기 블록 전압(Vro)이 계산될 수 있다.
S430 단계에서, 메모리 컨트롤러(120)는 설정된 읽기 블록 전압(Vro) 및 계수 모델(CM)에 기초하여, 다른 메모리 영역에 대한 읽기 전압을 계산할 수 있다. 예를 들어, 제3 워드 라인(WL3)에 대응되는 메모리 영역의 읽기 요청 시에, 메모리 컨트롤러(120)는 해당 메모리 영역에 대한 읽기 전압(Vr3)을 계산할 수 있다.
계수 모델(CM)은 열화에 따른 워드 라인들별 상관관계에 기초하여, 생성될 수 있다. 열화에 따른 워드 라인들별 상관관계는 관계식으로 정의될 수 있다. 도 11은 예시적으로 이러한 관계식이 1차식으로 표현될 수 있는 경우를 나타낸다. 관계식은 y=ax+b로 정의될 수 있다. x는 입력되는 읽기 블록 전압(Vro), a는 기울기, b는 절편, y는 읽기 요청에 따라 제공될 읽기 전압(Vr3)일 수 있다. 기울기 및 절편은 계수 모델을 참조하여, 설정될 수 있다.
메모리 컨트롤러(120)는 읽기 블록 전압(Vro)에 대응되는 워드 라인과 읽고자 하는 메모리 영역에 대응되는 워드 라인에 기초하여, 기울기값 및 절편값을 계수 모델(CM)로부터 검색할 수 있다. 예를 들어, 읽기 블록 전압(Vro)에 대응되는 워드 라인은 제2 워드 라인(WL2)이고, 읽고자 하는 메모리 영역에 대응되는 워드 라인은 제3 워드 라인(WL3)이므로, 메모리 컨트롤러(120)는 두 가지 워드 라인에 대응되는 기울기값 및 절편값을 추출할 수 있다. 추출된 기울기값 및 절편값은 관계식에 적용될 수 있다. 그 결과, 읽기 전압(Vr3)이 계산될 수 있다.
계수 모델(CM)을 이용하여 읽기 전압(Vr3)을 결정하는 경우, 모든 열화 상황에서의 읽기 전압의 변화 추이가 고려될 수 있는 장점을 가질 수 있다. 도 11은 계수 모델(CM)이 하나의 관계식에 대응되는 기울기 및 절편에 대한 모델을 포함하는 것으로 도시하였으나, 이에 제한되지 않고, 열화 인자의 조건별 다양한 계수 모델(CM)들이 제공될 수도 있다. 또한, 관계식이 다항식인 경우, 계수 모델(CM)은 다항식의 계수들의 개수에 의존하여, 더 많은 모델들을 포함할 수 있다.
도 7, 도 9, 및 도 11을 참조하면, 변이 정보는 변이 오프셋 테이블(Tb), 복수의 변이 테이블들(Tb1~Tb3), 및 계수 모델(CM) 등으로 구현될 수 있다. 이 외에도, 변이 정보는 결정 트리 또는 인공 신경망에 의한 예측 모델로 구현될 수 있다. 이 경우, 읽기 전압은 수식으로 표현되지 않는 워드 라인들 간의 상관관계를 고려하여 결정될 수 있고, 런타임 중에 능동적으로 읽기 전압이 결정될 수 있다. 결정 트이 또는 인공 신경망을 이용하는 경우, 읽기 블록 전압, 읽기 블록 전압을 설정하는데 사용되는 워드 라인의 위치 정보, 읽고자 하는 메모리 영역에 대응되는 워드 라인의 위치 정보 등이 예측 모델에 입력될 수 있다. 또한, 현재의 열화 상태가 예측 모델에 더 입력될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100: 스토리지 시스템 110: 불휘발성 메모리 장치
120: 메모리 컨트롤러 130: 버퍼 메모리

Claims (10)

  1. 제1 워드 라인과 연결된 제1 메모리 영역, 및 제2 워드 라인과 연결된 제2 메모리 영역을 포함하는 메모리 블록을 포함하는 불휘발성 메모리 장치; 및
    상기 제1 메모리 영역에 인가되는 제1 읽기 전압에 기초하여 상기 메모리 블록에 대응되는 읽기 블록 전압을 설정하고, 상기 제1 및 제2 메모리 영역들에 대한 변이 정보 및 상기 읽기 블록 전압에 기초하여 상기 제2 메모리 영역으로 인가되는 제2 읽기 전압을 결정하는 메모리 컨트롤러를 포함하되,
    상기 변이 정보는 상기 불휘발성 메모리 장치의 열화에 따른 상기 제1 메모리 영역의 읽기 전압의 변화 및 상기 제2 메모리 영역의 읽기 전압의 변화에 기초하여 생성되고,
    상기 메모리 블록은 기준 워드 라인과 연결된 기준 메모리 영역을 더 포함하고,
    상기 변이 정보는,
    상기 열화에 따른, 상기 기준 메모리 영역의 예측된 읽기 전압과 상기 제1 메모리 영역의 예측된 읽기 전압 사이의 차이에 기초하여 생성되는 제1 오프셋 정보; 및
    상기 열화에 따른, 상기 기준 메모리 영역의 상기 예측된 읽기 전압과 상기 제2 메모리 영역의 예측된 읽기 전압 사이의 차이에 기초하여 생성되는 제2 오프셋 정보를 포함하는 스토리지 장치.
  2. 삭제
  3. 제1 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제1 읽기 전압 및 상기 제1 오프셋 정보에 기초하여 상기 읽기 블록 전압을 계산하는 스토리지 장치.
  4. 제1 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 읽기 블록 전압 및 상기 제2 오프셋 정보에 기초하여 상기 제2 읽기 전압을 계산하는 스토리지 장치.
  5. 제1 항에 있어서,
    상기 변이 정보는,
    적어도 하나의 열화 인자를 기준으로 구분되는 복수의 조건들의 각각에 대응되는 복수의 변이 테이블들을 더 포함하고,
    상기 복수의 변이 테이블들의 각각은,
    상기 복수의 변이 테이블들의 상기 각각에 대응되는 조건에 따른, 상기 제1 메모리 영역의 예측된 읽기 전압에 기초하여 생성되는 제1 워드 라인 정보; 및
    상기 복수의 변이 테이블들의 상기 각각에 대응되는 조건에 따른, 상기 제2 메모리 영역의 예측된 읽기 전압에 기초하여 생성되는 제2 워드 라인 정보를 포함하는 스토리지 장치.
  6. 제5 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제1 읽기 전압과 상기 복수의 변이 테이블들의 상기 각각에 포함된 상기 제1 워드 라인 정보를 비교하여, 상기 복수의 변이 테이블들 중 하나의 변이 테이블을 선택하는 스토리지 장치.
  7. 제1 항에 있어서,
    상기 변이 정보는,
    상기 열화에 따른, 상기 제1 메모리 영역의 예측된 읽기 전압과 상기 제2 메모리 영역의 예측된 읽기 전압 사이의 관계식에 대한 계수 정보를 더 포함하고,
    상기 메모리 컨트롤러는,
    상기 관계식, 상기 계수 정보, 및 상기 읽기 블록 전압에 기초하여 상기 제2 읽기 전압을 계산하는 스토리지 장치.
  8. 제1 항에 있어서,
    상기 변이 정보는,
    상기 열화에 따른, 상기 제1 메모리 영역의 읽기 전압에 대한 상기 제2 메모리 영역의 예측된 읽기 전압의 관계를 학습하여 생성된 예측 모델 정보를 더 포함하는 스토리지 장치.
  9. 스토리지 장치의 동작 방법에 있어서,
    타겟 워드 라인과 연결된 메모리 영역에 대한 읽기 요청을 수신하는 단계;
    상기 읽기 요청에 응답하여, 상기 메모리 영역을 포함하는 메모리 블록에 대응되는 읽기 블록 전압을 검색하는 단계; 및
    상기 읽기 블록 전압 및 변이 정보에 기초하여 상기 타겟 워드 라인에 제공되는 타겟 읽기 전압을 계산하는 단계를 포함하되,
    상기 변이 정보는 상기 메모리 블록의 열화에 따른 복수의 워드 라인들의 각각에 제공되는 읽기 전압들의 예측값들에 기초하여 생성되고,
    상기 메모리 블록은 기준 워드 라인과 연결된 기준 메모리 영역을 더 포함하고,
    상기 변이 정보는,
    상기 열화에 따른, 상기 기준 메모리 영역의 예측된 읽기 전압과 제1 메모리 영역의 예측된 읽기 전압 사이의 차이에 기초하여 생성되는 제1 오프셋 정보; 및
    상기 열화에 따른, 상기 기준 메모리 영역의 상기 예측된 읽기 전압과 제2 메모리 영역의 예측된 읽기 전압 사이의 차이에 기초하여 생성되는 제2 오프셋 정보를 포함하는 방법.
  10. 제9 항에 있어서,
    상기 읽기 요청을 수신하기 전에, 읽기 동작이 성공한 워드 라인에 제공되는 읽기 전압에 기초하여 상기 읽기 블록 전압을 설정하는 단계를 더 포함하는 방법.
KR1020180094844A 2018-08-14 2018-08-14 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 KR102634700B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180094844A KR102634700B1 (ko) 2018-08-14 2018-08-14 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법
US16/356,182 US11004517B2 (en) 2018-08-14 2019-03-18 Storage device including nonvolatile memory device and operating method thereof
CN201910733387.4A CN110827907A (zh) 2018-08-14 2019-08-08 包括非易失性存储器器件的储存设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180094844A KR102634700B1 (ko) 2018-08-14 2018-08-14 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200019385A KR20200019385A (ko) 2020-02-24
KR102634700B1 true KR102634700B1 (ko) 2024-02-13

Family

ID=69523336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180094844A KR102634700B1 (ko) 2018-08-14 2018-08-14 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US11004517B2 (ko)
KR (1) KR102634700B1 (ko)
CN (1) CN110827907A (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11164634B2 (en) * 2019-06-24 2021-11-02 Western Digital Technologies, Inc. Non-volatile storage system with fast SLC operation
JP2021149995A (ja) * 2020-03-23 2021-09-27 キオクシア株式会社 メモリシステム
US11923025B2 (en) * 2020-12-22 2024-03-05 Kioxia Corporation Generation of programming parameters for non-volatile memory device based on physical device parameters
US11705193B2 (en) 2021-02-01 2023-07-18 Micron Technology, Inc. Error avoidance based on voltage distribution parameters
KR20220122826A (ko) 2021-02-26 2022-09-05 삼성전자주식회사 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치의 리드 방법
US11735254B2 (en) * 2021-03-30 2023-08-22 Micron Technology, Inc. Error avoidance based on voltage distribution parameters of blocks
US11443830B1 (en) 2021-03-30 2022-09-13 Micron Technology, Inc. Error avoidance based on voltage distribution parameters of block families
US11587627B2 (en) 2021-04-16 2023-02-21 Micron Technology, Inc. Determining voltage offsets for memory read operations
US11656789B2 (en) * 2021-08-25 2023-05-23 Western Digital Technologies, Inc. Asymmetric read sense
KR20230035820A (ko) * 2021-09-06 2023-03-14 삼성전자주식회사 비휘발성 메모리 장치의 신뢰성 열화 감소 방법 및 이를 이용한 비휘발성 메모리 장치
US11735286B2 (en) * 2021-09-30 2023-08-22 Innogrit Technologies Co., Ltd. Selecting read reference voltage using historical decoding information
US11663074B1 (en) * 2021-11-17 2023-05-30 Macronix International Co., Ltd. Determining read voltages for memory systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US9195586B2 (en) 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
KR102215741B1 (ko) * 2014-06-23 2021-02-17 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
KR102358463B1 (ko) * 2014-10-20 2022-02-07 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9916237B2 (en) * 2014-12-12 2018-03-13 Sandisk Technologies Llc Model based configuration parameter management
US9785357B2 (en) * 2015-10-20 2017-10-10 Sandisk Technologies Llc Systems and methods for sampling data at a non-volatile memory system
US10347331B2 (en) 2016-06-13 2019-07-09 SK Hynix Inc. Read threshold optimization in flash memories
KR20180027710A (ko) * 2016-09-06 2018-03-15 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
JP2020009513A (ja) * 2018-07-10 2020-01-16 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
KR20200019385A (ko) 2020-02-24
US11004517B2 (en) 2021-05-11
CN110827907A (zh) 2020-02-21
US20200058359A1 (en) 2020-02-20

Similar Documents

Publication Publication Date Title
KR102634700B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법
CN108573722B (zh) 操作非易失性存储器件的方法和非易失性存储器件
US10216422B2 (en) Storage device including nonvolatile memory device and access method for nonvolatile memory device
KR102435873B1 (ko) 스토리지 장치 및 그것의 리드 리클레임 방법
KR102606490B1 (ko) 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US9690654B2 (en) Operation method of nonvolatile memory system
US20170371559A1 (en) Systems and Methods for Optimizing Media Read Times
US10114575B2 (en) Storage device and operating method thereof
KR102284658B1 (ko) 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 상기 비휘발성 메모리 장치의 동작 방법
KR20180027710A (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
CN107039082B (zh) 非易失性存储器***的操作方法
KR20210068894A (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
CN108694989B (zh) 存储设备及其坏块指派方法
KR102387960B1 (ko) 컨트롤러 및 그것의 동작 방법
KR102599117B1 (ko) 블록들의 온 셀 카운트들을 모니터링하고 저장하는 스토리지 장치 및 그것의 동작 방법
CN112099730B (zh) 存储器件及其访问方法
US11409441B2 (en) Operation method of a storage controller configured to control a nonvolatile memory device
KR102306853B1 (ko) 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same
KR20230090598A (ko) 히스토리 데이터를 사용하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
KR20210143612A (ko) 비휘발성 메모리 및 비휘발성 메모리의 동작 방법
CN111798913A (zh) 存储器***、存储器控制器及其操作方法
US20240078018A1 (en) Storage devices calculating a wordline gap value, and methods of operating the same
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right