KR102457662B1 - 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법 - Google Patents

메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법 Download PDF

Info

Publication number
KR102457662B1
KR102457662B1 KR1020170143158A KR20170143158A KR102457662B1 KR 102457662 B1 KR102457662 B1 KR 102457662B1 KR 1020170143158 A KR1020170143158 A KR 1020170143158A KR 20170143158 A KR20170143158 A KR 20170143158A KR 102457662 B1 KR102457662 B1 KR 102457662B1
Authority
KR
South Korea
Prior art keywords
invalid
block
pattern
memory
invalid block
Prior art date
Application number
KR1020170143158A
Other languages
English (en)
Other versions
KR20190048310A (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 KR1020170143158A priority Critical patent/KR102457662B1/ko
Priority to US16/023,706 priority patent/US10726931B2/en
Priority to CN201811235301.7A priority patent/CN109726143B/zh
Publication of KR20190048310A publication Critical patent/KR20190048310A/ko
Application granted granted Critical
Publication of KR102457662B1 publication Critical patent/KR102457662B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3409Circuits or methods to recover overerased nonvolatile memory cells detected during erase verification, usually by means of a "soft" programming step
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • 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
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices
    • 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
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/30EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region

Landscapes

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

Abstract

본 발명에 따른 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러의 동작 방법은 복수의 메모리 블록들 중 무효 블록(invalid block)을 검출하는 단계, 무효 블록의 상태를 기반으로 무효 패턴을 결정하는 단계, 및 무효 블록이 무효 패턴을 갖도록 무효 블록에 대한 무효 패턴 동작을 수행하는 단계를 포함한다.

Description

메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법{OPERATION METHOD OF MEMORY CONTROLLER AND OPERATION METHOD OF STORAGE DEVICE}
본 발명은 반도체 메모리에 관한 것으로, 좀 더 상세하게는 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법에 관한 것이다.
반도체 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.
플래시 메모리 장치는 메모리 셀들의 문턱 전압을 변화시킴으로써, 데이터를 저장한다. 메모리 셀들의 문턱 전압들은 다양한 요인에 의해 시간이 흐름에 따라 변화할 수 있다. 메모리 셀들의 문턱 전압이 변화하는 경우, 플래시 메모리 장치에 저장된 데이터가 정상적으로 식별되지 않을 수 있다. 즉, 메모리 셀들의 문턱 전압들의 변화는 플래시 메모리 장치에 저장된 데이터의 신뢰성을 저하시킨다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 향상된 신뢰성을 갖는 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법이 제공된다.
본 발명의 실시 예에 따른 복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러의 동작 방법은 상기 복수의 메모리 블록들 중 무효 블록(invalid block)을 검출하는 단계, 상기 무효 블록의 상태를 기반으로 무효 패턴을 결정하는 단계, 및 상기 무효 블록이 상기 무효 패턴을 갖도록 상기 무효 블록에 대한 무효 패턴 동작을 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 복수의 메모리 블록들을 포함하는 저장 장치의 동작 방법은 상기 복수의 메모리 블록들 중 무효 블록을 검출하는 단계, 상기 무효 블록의 상태를 기반으로 무효 패턴을 결정하는 단계, 및 상기 무효 블록이 상기 무효 패턴을 갖도록 상기 무효 블록에 대한 무효 패턴 동작을 수행하는 단계를 포함한다.
복수의 메모리 블록들을 포함하는 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러의 동작 방법은 상기 복수의 메모리 블록들 중 무효 블록(invalid block)을 검출하는 단계, 상기 무효 블록의 상태를 기반으로 무효 패턴을 결정하는 단계, 및 상기 불휘발성 메모리 장치로 상기 무효 블록에 대한 무효 패턴 커맨드 및 상기 무효 블록에 대한 어드레스를 전송하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 불휘발성 메모리 장치에 포함된 무효 블록이 특정 패턴(즉, 무효 패턴)을 갖게 함으로써, 이후에 무효 블록에 프로그램되는 데이터의 신뢰성을 향상시킬 수 있다. 따라서, 향상된 신뢰성을 갖는 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 2는 도 1의 메모리 컨트롤러를 상세하게 보여주는 블록도이다.
도 3은 도 1의 불휘발성 메모리 장치를 보여주는 블록도이다.
도 4는 도 3의 제1 메모리 블록을 예시적으로 보여주는 등가 회로도이다.
도 5는 도 4의 제1 및 제2 메모리 셀들의 구조를 예시적으로 보여주는 단면도이다.
도 6a 및 도 6b는 메모리 블록의 상태(즉, 전하 증가 상태 및 전하 손실 상태)에 따른 메모리 셀들의 문턱 전압 변화를 보여주는 산포도들이다.
도 7은 도 1의 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 8a 및 도 8b는 무효 패턴을 설명하기 위한 산포도들이다.
도 9a 및 도 9b는 다양한 무효 패턴 동작을 설명하기 위한 산포도들이다.
도 10은 도 1의 메모리 컨트롤러의 동작을 보여주는 순서도이다.
도 11은 무효 블록의 P/E 사이클 횟수에 대응하는 무효 패턴을 보여주는 룩-업 테이블이다.
도 12는 도 11의 룩-업 테이블에 포함된 무효 패턴들 각각에 대응하는 문턱 전압 산포를 보여주는 산포도들이다.
도 13은 도 1의 메모리 컨트롤러의 동작을 보여주는 블록도이다.
도 14는 도 13의 에러 상태를 검출하는 예시적인 동작을 설명하기 위한 산포도들이다.
도 15는 도 13의 에러 속성을 검출하는 예시적인 동작을 설명하기 위한 블록도이다.
도 16은 도 1의 메모리 컨트롤러의 동작을 보여주는 순서도이다.
도 17 및 도 18은 도 16의 동작 방법을 좀 더 상세하게 설명하기 위한 도면이다.
도 19는 도 1의 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 20은 도 19의 동작 방법에 따른 무효 블록의 재사용 동작을 보여주는 도면이다.
도 21은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 22는 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 23은 본 발명에 따른 저장 장치가 적용된 SSD(Solid State Drive) 시스템을 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 저장 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 저장 장치(100)는 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)를 포함한다. 저장 장치(100)는 SSD(solid state drive), 메모리 카드, 메모리 스틱과 같은 대용량 저장 매체일 수 있다.
메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 데이터(DATA)를 저장하거나 또는 불휘발성 메모리 장치(120)에 저장된 데이터(DATA)를 읽기 위하여 커맨드(CMD), 어드레스(ADDR), 및 제어 신호(CTRL)를 불휘발성 메모리 장치(120)로 전송할 수 있다. 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 수신된 신호들에 응답하여, 데이터(DATA)를 저장하거나 또는 저장된 데이터(DATA)를 메모리 컨트롤러(110)로 제공할 수 있다.
예시적으로, 메모리 컨트롤러(110)는 무효 블록 관리자(111)를 포함할 수 있다. 무효 블록 관리자(111)는 불휘발성 메모리 장치(120)에 포함된 복수의 메모리 블록들(BLK1~BLKm) 중 무효 메모리 블록(이하에서, "무효 블록(invalid block)"이라 칭함.)을 관리하도록 구성될 수 있다. 무효 블록은 무효 데이터(invalid data)를 저장한 메모리 블록을 가리킨다. 또는 무효 블록은 유효 데이터(valid data)를 저장하지 않은 메모리 블록을 가리킨다. 무효 블록 관리자(111)는 저장 장치(100)의 신뢰성을 향상시키기 위해, 무효 블록의 상태를 기반으로 무효 블록이 무효 패턴을 갖도록 할 수 있다. 예시적으로, 무효 패턴은 무효 블록의 메모리 셀들의 문턱 전압 산포를 가리킬 수 있다.
예시적으로, 무효 블록은 메모리 컨트롤러(110)의 유지 관리 동작에 의해 생성될 수 있다. 예를 들어, 메모리 컨트롤러(110)는 가비지 콜렉션 동작을 통해 소스 블록들에 저장된 유효 데이터를 목표 블록으로 이동시킬 수 있다. 또는 메모리 컨트롤러(110)는 리드 리클레임 동작을 통해, 특정 수준 이상의 에러를 포함하는 데이터가 저장된 소스 블록의 유효 데이터를 목표 블록으로 이동시킬 수 있다. 가비지 콜렉션 동작 또는 리드 리클레임 동작이 수행됨으로써, 소스 블록의 유효 데이터가 모두 목표 블록으로 이동된 이후에, 소스 블록에 저장된 데이터는 무효 데이터로 처리되며, 무효 데이터를 저장한 소스 블록은 무효 블록으로 간주될 수 있다. 즉, 상술된 바와 같이, 무효 블록은 무효 데이터만을 저장하는 메모리 블록 또는 유효 데이터를 저장하지 않은 메모리 블록을 가리킨다.
메모리 컨트롤러(110)에 의해 재사용되기 전까지, 무효 블록은 무효 데이터를 저장 또는 유지할 수 있다. 무효 블록이 메모리 컨트롤러(110)에 의해 재사용되는 경우, 메모리 컨트롤러(110)는 무효 블록을 소거하고, 소거된 무효 블록에 새로운 데이터를 프로그램할 수 있다. 이하에서, 특정 메모리 블록이 무효 블록이 된 시점으로부터 메모리 컨트롤러(110)에 의해 재사용되는 시점까지의 시간을 방치 시간(leaving time)이라 칭한다.
무효 블록에 프로그램된 데이터 및 방치 시간에 따라, 무효 블록의 신뢰성 특성이 달라질 수 있다. 예를 들어, 특정 메모리 블록(즉, 무효 블록)이 소거 상태로 방치된 이후에, 메모리 컨트롤러에 의해 무효 블록이 소거되고 유효 데이터가 기입되는 경우, 유효 데이터가 기입된 시점으로부터 시간이 경과함에 따라 특정 메모리 블록에 기입된 유효 데이터에 에러가 포함될 수 있다. 이는 시간이 경과함에 따라 제1 메모리 블록의 메모리 셀들의 문턱 전압이 낮아지기 때문이다. 이하에서, 이러한 메모리 셀들의 문턱 전압이 낮아지는 현상은 "전하 손실(charge loss)"이라 칭하고, 전하 손실이 발생하는 메모리 블록의 상태를 "전하 손실 상태(charge loss state)"라 칭한다.
또는 특정 메모리 블록(즉, 무효 블록)이 최상위 프로그램 상태로 방치된 이후에, 메모리 컨트롤러에 의해 특정 메모리 블록이 소거되고 유효 데이터가 기입되는 경우, 유효 데이터가 기입된 시점으로부터 시간이 경과함에 따라 특정 메모리 블록에 기입된 데이터에 에러가 포함될 수 있다. 이는 시간이 경과함에 따라 특정 메모리 블록의 메모리 셀들의 문턱 전압이 높아지기 때문이다. 이하에서, 이러한 메모리 셀들의 문턱 전압이 높아지는 현상은 "전하 증가(charge gain)"이라 칭하고, 전하 증가가 발생하는 메모리 블록의 상태를 "전하 증가 상태(charge gain state)"라 칭한다. 상술된 전하 손실 및 전하 증가는 도 5, 도 6a 및 도 6b를 참조하여 더욱 상세하게 설명된다.
상술된 바와 같이, 무효 블록의 상태(즉, 전하 손실 상태 또는 전하 증가 상태)에 따라 이후에 프로그램되는 데이터의 신뢰성이 낮아질 수 있다. 본 발명에 따른 무효 블록 관리자(111)는 무효 블록의 상태에 따라 무효 패턴을 결정하고, 무효 블록이 결정된 무효 패턴을 갖도록 무효 블록에 대하여 무효 패턴 동작을 수행할 수 있다. 예시적으로, 무효 패턴 동작은 프로그램, 재프로그램, 약한-프로그램(soft-program), 소거, 또는 약한-소거(soft-erase)의 동작을 포함할 수 있다.
예를 들어, 무효 블록이 전하 증가 상태인 경우, 무효 블록 관리자(111)는 무효 블록이 제1 무효 패턴을 갖도록 무효 블록을 프로그램 또는 소거할 수 있다. 무효 블록이 전하 손실 상태인 경우, 무효 블록 관리자(111)는 무효 블록이 제2 무효 패턴을 갖도록 무효 블록을 프로그램 또는 소거 할 수 있다. 이 때, 제1 및 제2 무효 패턴들 각각은 무효 블록의 메모리 셀들의 문턱 전압 산포의 패턴을 가리키고, 제1 무효 패턴의 하한 값, 상한 값 또는 중간 값은 각각 제2 무효 패턴의 하한 값, 상한 값 또는 중간 값보다 낮을 수 있다.
즉, 전하 증가 상태의 무효 블록을 제1 무효 패턴으로 방치시킴으로써, 이후의 전하 증가(또는 전하 증가 현상)을 감소 또는 상쇄시킬 수 있고, 전하 손실 상태의 무효 블록을 제2 무효 패턴으로 방치시킴으로써, 이후의 전하 손실(또는 전하 손실 현상)을 감소 또는 상쇄시킬 수 있다.
상술된 바와 같이, 무효 블록이 대응하는 무효 패턴을 갖는 상태로 방치됨으로써, 이후에 프로그램되는 메모리 셀들의 문턱 전압의 변화가 감소될 수 있다. 따라서, 저장 장치(100)의 신뢰성이 향상된다.
도 2는 도 1의 메모리 컨트롤러(110)를 상세하게 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 메모리 컨트롤러(110)는 무효 블록 관리자(111), 프로세서(112), 램(113), 에러 정정 코드(ECC; Error Correction Code) 회로(114), 호스트 인터페이스(115), 및 플래시 인터페이스(116)를 포함할 수 있다.
무효 블록 관리자(111)는 불휘발성 메모리 장치(120)의 복수의 메모리 블록들(BLK1~BLKm) 중 무효 블록을 관리하도록 구성될 수 있다. 무효 블록 관리자(111)는 도 1을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다. 비록 도면에 도시되지는 않았으나, 무효 블록 관리자(111)는 메모리 컨트롤러의 FTL(Flash Translation Layer)에 포함될 수 있다.
프로세서(112)는 메모리 컨트롤러(110)의 제반 동작을 제어할 수 있다. 램(113)은 메모리 컨트롤러(110)의 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로써 사용될 수 있다. 램(113)은 메모리 컨트롤러(110)가 동작하는데 필요한 다양한 정보 또는 다양한 소프트웨어 구성을 포함할 수 있다.
예시적으로, 무효 블록 관리자(111)는 소프트웨어 구성, 하드웨어 구성, 또는 그것들의 조합의 형태로 구현될 수 있다. 무효 블록 관리자(111)가 소프트웨어 구성으로 구현되는 경우, 무효 블록 관리자(111)는 램(113)에 저장될 수 있고, 램(113)에 저장된 무효 블록 관리자(111)는 프로세서(112)에 의해 구동 또는 실행될 수 있다.
ECC 회로(114)는 불휘발성 메모리 장치(120)에 저장될 데이터에 대한 에러 정정 코드를 생성할 수 있다. ECC 회로(114)는 불휘발성 메모리 장치(120)에 저장된 데이터 및 에러 정정 코드를 읽고, 읽은 에러 정정 코드를 기반으로 읽은 데이터의 에러를 검출 및 정정할 수 있다.
메모리 컨트롤러(110)는 호스트 인터페이스(115)를 통해 호스트(또는 외부 장치)와 통신할 수 있다. 예시적으로, 호스트 인터페이스(115)는 DDR(Double Data Rate), USB (Universal Serial Bus), MMC (multimedia card), eMMC(embedded 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) 등과 같은 인터페이스들 중 적어도 하나를 포함할 수 있다. 메모리 컨트롤러(110)는 플래시 인터페이스(116)를 통해 불휘발성 메모리 장치(120)와 통신할 수 있다.
도 3은 도 1의 불휘발성 메모리 장치(120)를 보여주는 블록도이다. 도 1 및 도 3을 참조하면, 불휘발성 메모리 장치(120)는 메모리 셀 어레이(121), 어드레스 디코더(122), 제어 로직 회로(123), 페이지 버퍼 회로(124), 및 입출력 회로(125)를 포함할 수 있다.
메모리 셀 어레이(121)는 복수의 메모리 블록들(BLK1~BLKm)을 포함할 수 있다. 복수의 메모리 블록들(BLK1~BLKm) 각각은 복수의 셀 스트링들을 포함할 수 있고, 복수의 셀 스트링들 각각은 직렬 연결된 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 워드라인들(WL)과 각각 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 SLC(single level cell) 또는 적어도 2-비트를 저장하는 MLC(multi-level cell)일 수 있다.
어드레스 디코더(122)는 스트링 선택 라인들(SSL), 워드라인들(WL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(121)와 연결될 수 있다. 어드레스 디코더(122)는 메모리 컨트롤러(110)로부터 어드레스(ADDR)를 수신하고, 수신된 어드레스(ADDR)를 기반으로 스트링 선택 라인들(SSL), 워드라인들(WL), 및 접지 선택 라인들(GSL)의 전압을 제어할 수 있다.
제어 로직 회로(123)는 메모리 컨트롤러(110)로부터 커맨드(CMD) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들을 기반으로 어드레스 디코더(122), 페이지 버퍼 회로(124), 및 입출력 회로(125)를 제어할 수 있다.
페이지 버퍼 회로(124)는 비트라인들(BL)을 통해 메모리 셀 어레이(121)와 연결된다. 페이지 버퍼 회로(124)는 데이터 라인들(DL)을 통해 입출력 회로(125)로부터 데이터(DATA)를 수신하여 임시 저장할 수 있다. 또는 페이지 버퍼 회로(124)는 메모리 셀 어레이(121)로부터 비트라인들(BL)을 통해 데이터(DATA)를 읽고, 읽은 데이터(DATA)를 데이터 라인들(DL)을 통해 입출력 회로(125)로 제공할 수 있다. 입출력 회로(125)는 메모리 컨트롤러(110)와 데이터(DATA)를 주고 받을 수 있다.
도 4는 도 3의 제1 메모리 블록(BLK1)을 예시적으로 보여주는 등가 회로도이다. 도 4를 참조하여, 제1 메모리 블록(BLK1)이 예시적으로 설명되나, 다른 메모리 블록들 또한 제1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.
예시적으로, 도 4에 도시된 메모리 블록은 불휘발성 메모리 장치(100)의 물리적 소거 단위일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 소거 단위는 페이지 단위, 워드라인 단위, 서브 블록 단위 등으로 변형될 수 있다.
도 4를 참조하면, 제1 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC6), 접지 선택 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC6)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평면과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인들(BL1, BL2) 사이에 제공된다. 접지 선택 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC6) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC6) 및 접지 선택 트랜지스터들(GSTa, GSTb) 사이에 제1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC6) 및 스트링 선택 트랜지스터들(SSTa, SSTb) 사이에 제2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 접지 선택 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결될 수 있고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 접지 선택 트랜지스터들(GSTa)은 제2 접지 선택 라인에 연결될 수 있다.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다.
기판 또는 접지 선택 트랜지스터(GSTa, GSTb)으로부터 동일한 높이의 메모리 셀들은 동일한 워드 라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드 라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 내지 제6 메모리 셀들(MC1~MC6)은 제1 내지 제6 워드라인들(WL1~WL6)에 각각 공통으로 연결된다.
동일한 높이의 제1 스트링 선택 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제2 스트링 선택 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제1 더미 메모리 셀들(DMC1)은 제1 더미 워드라인(DWL1)과 연결되고, 제2 더미 메모리 셀들(DMC2)은 제2 더미 워드라인(DWL2)과 연결된다.
예시적으로, 도 4에 도시된 제1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 메모리 블록(BLK)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들은 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
도 5는 도 4의 제1 및 제2 메모리 셀들의 구조를 예시적으로 보여주는 단면도이다. 예시적으로, 도 5의 단면도는 기판과 수직한 방향에 따른 제1 및 제2 메모리 셀들(MC1, MC2)의 단면도이다. 예시적으로, 도 5를 참조하여, 앞서 설명된 전하 손실 및 전하 증가에 대한 구체적인 설명이 제공된다. 도 5에 도시된 메모리 셀들의 구조는 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한, 전하 손실 및 전하 증가에 대해 설명하는데 불필요한 구성 요소들은 도 5에서 생략된다.
도 4 및 도 5를 참조하면, 제1 및 제2 메모리 셀들(MC1, MC2)은 기판(미도시)과 수직한 방향으로 적층될 수 있다. 제1 메모리 셀(MC1)은 제1 워드라인(WL1)과 연결되고, 제2 메모리 셀(MC2)은 제2 워드라인(WL2)과 연결된다. 제1 및 제2 메모리 셀들(MC1, MC2)의 제1 및 제2 저장 영역들(SA1, SA2)에 전하(electron)(또는 정공(hole))가 누적됨에 따라 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압들이 바뀔 수 있다.
즉, 제1 및 제2 메모리 셀들(MC1, MC2)에 저장될 데이터에 따라 제1 및 제2 워드라인들(WL1, WL2)의 전압들을 제어함으로써, 제1 및 제2 저장 영역들(SA1, SA2)에 전하(또는 정공)가 누적되고, 이에 따라 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압이 달라질 수 있다. 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압을 기반으로, 제1 및 제2 메모리 셀들(MC1, MC2)에 저장된 데이터가 감지될 수 있다.
예시적으로, 제1 및 제2 메모리 셀들(MC1, MC2)에 데이터가 저장된 상태로 시간이 흐를 경우, 제1 및 제2 저장 영역들(SA1, SA2)에 누적된 전하(또는 정공)이 제1 및 제2 메모리 셀들(MC1, MC2) 사이의 공간(SP; space)(또는 채널)으로 확산될 수 있다. 즉, 제1 및 제2 메모리 셀들(MC1, MC2)의 상태에 따라, 공간(SP)에 전하 또는 정공이 누적될 수 있다. 공간(SP)에 전하 또는 정공이 누적된 상태로 제1 및 제2 메모리 셀들(MC1, MC2)이 다시 프로그램될 경우, 공간(SP)에 누적된 전하 또는 정공은 제1 및 제2 메모리 셀들(MC1, MC2)의 제1 및 제2 저장 영역들(SA1, SA2)에 누적된 전하 또는 정공에 영향을 줄 수 있고, 이로 인하여, 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압이 달라질 수 있다. 즉, 공간(SP)에 누적된 전하 또는 정공으로 인해 제1 및 제2 메모리 셀들(MC1, MC2)에 저장된 데이터의 신뢰성이 저하될 수 있다.
좀 더 상세한 예로써, 먼저, 공간(SP)에 전하(electron)가 누적된 것으로 가정한다. 이 때, 제1 및 제2 메모리 셀들(MC1, MC2)에 데이터가 프로그램될 수 있다. 이후에, 시간이 흐름에 따라 공간(SP)에 누적된 전하(electron)에 의해 제1 및 제2 메모리 셀들(MC1, MC2)의 제1 및 제2 저장 영역들(SA1, SA2)에 전하(electron)가 추가적으로 누적될 수 있다. 제1 및 제2 저장 영역들(SA1, SA2)에 누적된 전하로 인하여, 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압이 상승할 수 있다. 이 경우, 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압이 상승함에 따라 제1 및 제2 메모리 셀들(MC1, MC2)에 저장된 데이터가 정상적으로 감지되지 않을 수 있다. 이러한 현상은 앞서 설명된 "전하 증가(C/G Charge Gain) 현상"일 수 있다.
다음으로, 공간(SP)에 정공(hole)이 누적된 것으로 가정한다. 이 때, 제1 및 제2 메모리 셀들(MC1, MC2)에 데이터가 프로그램될 수 있다. 이후에, 시간이 흐름에 따라 공간(SP)에 누적된 정공(hole)에 의해 제1 및 제2 메모리 셀들(MC1, MC2)의 제1 및 제2 저장 영역들(SA1, SA2)에 전하(electron)가 감소 또는 확산될 수 있다. 제1 및 제2 저장 영역들(SA1, SA2)의 전하 감소 또는 전하 확산으로 인하여, 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압이 낮아질 수 있다. 이 경우, 제1 및 제2 메모리 셀들(MC1, MC2)의 문턱 전압이 낮아짐에 따라 제1 및 제2 메모리 셀들(MC1, MC2)에 저장된 데이터가 정상적으로 감지되지 않을 수 있다. 이러한 현상은 앞서 설명된 "전하 손실(Charge Loss(C/L) 현상"일 수 있다.
즉, 제1 메모리 블록(BLK1)에서, 메모리 셀들 사이의 공간(SP)에 전하(electron)가 누적된 경우, 제1 메모리 블록(BLK1)에 데이터가 프로그램된 이후에, 시간이 경과함에 따라 제1 메모리 블록(BLK1)의 메모리 셀들의 문턱 전압이 상승할 수 있다. 반면에, 제1 메모리 블록(BLK1)에서, 메모리 셀들 사이의 공간(SP)에 정공(hole)이 누적된 경우, 제1 메모리 블록(BLK1)에 데이터가 프로그램된 이후에, 시간이 경과함에 따라 제1 메모리 블록(BLK1)의 메모리 셀들의 문턱 전압이 감소할 수 있다. 메모리 셀들 사이의 공간(SP)에 전하(electron)가 누적된 상태는 앞서 설명된 "전하 증가 상태"일 수 있고, 메모리 셀들 사이의 공간(SP)에 정공(hole)이 누적된 상태는 앞서 설명된 "전하 손실 상태"일 수 있다.
도 6a 및 도 6b는 메모리 블록의 상태(즉, 전하 증가 상태 및 전하 손실 상태)에 따른 메모리 셀들의 문턱 전압 변화를 보여주는 산포도들이다. 도 6a 및 도 6b의 X축들은 메모리 셀의 문턱 전압(Vth)을 가리키고, Y축들은 메모리 셀들의 개수를 가리킨다. 설명의 편의를 위하여, 메모리 셀들 각각은 3-비트의 데이터를 저장하는 TLC(triple level cell)인 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
먼저 도 4 내지 도 6b를 참조하면, 제1 메모리 블록(BLK1)의 메모리 셀들 각각은 소거 상태(E) 및 제1 내지 제7 프로그램 상태들(P1~P7) 중 어느 하나를 갖도록 프로그램될 수 있다. 프로그램된 메모리 셀들은, 도 6a 및 도 6b에서 실선으로 도시된 바와 같이, 소거 상태(E) 및 제1 내지 제7 프로그램 상태들(P1~P7)을 가질 것이다.
제1 메모리 블록(BLK1)이 "전하 증가 상태(C/G state; Charge Gain state)인 경우(즉, 메모리 셀들 사이의 공간에 전하가 누적된 상태인 경우), 시간이 경과함에 따라, 제1 메모리 블록(BLK1)의 메모리 셀들의 문턱 전압 산포는, 도 6a의 점선으로 도시된 바와 같이, 변화할 것이다. 즉, 메모리 셀들의 문턱 전압이 전체적으로 상승할 것이다.
제1 메모리 블록(BLK1)이 "전하 손실 상태(C/L state; Charge Loss state)인 경우(즉, 메모리 셀들 사이의 공간에 정공이 누적된 상태인 경우), 시간이 경과함에 따라, 제1 메모리 블록(BLK1)의 메모리 셀들의 문턱 전압 산포는, 도 6b의 점선으로 도시된 바와 같이, 변화할 것이다. 즉, 메모리 셀들의 문턱 전압이 전체적으로 낮아질 것이다.
상술된 경우들에서, 메모리 셀들로부터 소거 상태(E) 및 제1 내지 제7 프로그램 상태들(P1~P7)이 정확하게 구분되지 않기 때문에, 메모리 셀들로부터 정상적으로 데이터가 감지되지 않을 것이다. 상술된 바와 같이, 제1 메모리 블록(BLK1)의 상태(전하 증가 상태 또는 전하 손실 상태)에 따라, 메모리 셀들의 문턱 전압들이 증가 또는 감소할 수 있다. 이로 인하여, 제1 메모리 블록(BLK1)에 저장된 데이터의 신뢰성이 저하될 수 있다.
도 7은 도 1의 메모리 컨트롤러(110)의 동작 방법을 보여주는 순서도이다. 도 8a 및 도 8b는 무효 패턴을 설명하기 위한 산포도들이다. 도 1, 도 7, 도 8a, 및 도 8b를 참조하면, S110 단계에서, 메모리 컨트롤러(110)는 무효 블록을 감지할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 메모리 컨트롤러(110)의 유지 관리 동작(예를 들어, 가비지 콜렉션 동작, 리드 리클레임 동작 등)에 의해 무효 블록이 생성될 수 있다. 메모리 컨트롤러(110)는 생성된 무효 블록을 감지할 수 있다.
S120 단계에서, 메모리 컨트롤러(110)는 무효 블록의 상태를 기반으로 무효 패턴(invalid pattern)을 결정할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 다양한 방식을 통해 무효 블록이 전하 증가 상태인지 또는 전하 손실 상태인지 검출할 수 있다. 메모리 컨트롤러(110)는 무효 블록의 상태를 기반으로 무효 패턴을 결정할 수 있다.
S130 단계에서, 메모리 컨트롤러(110)는 결정된 무효 패턴을 기반으로, 무효 블록에 대하여 무효 패턴 동작을 수행할 수 있다. 예를 들어, 메모리 컨트롤러(110)는, 무효 블록이 무효 패턴을 갖도록, 무효 블록에 대한 프로그램 동작, 재프로그램 동작, 약한-프로그램 동작, 소거 동작, 약한-소거 동작, 소거 후 프로그램 동작, 재프로그램 후 소거 동작 등을 수행할 수 있다. 이하에서, 설명의 편의를 위하여, 무효 블록이 무효 패턴을 갖도록(다시 말해서, 무효 블록의 메모리 셀들이 무효 패턴과 대응되는 문턱 전압 산포를 갖도록) 하는 동작을 무효 패턴 동작(invalid pattern operation)이라 칭한다. 무효 패턴 동작은 무효 블록에 대한 상술된 동작들을 포함할 수 있다.
예시적으로, 무효 블록이 결정된 무효 패턴을 갖게 함으로써, 무효 블록의 상태(즉, 전하 손실 상태 또는 전하 증가 상태)를 상쇄시킬 수 있다. 예를 들어, 도 8a에 도시된 바와 같이, 무효 블록이 전하 증가 상태인 경우, 무효 블록의 메모리 셀들 각각은 소거 상태(E') 및 프로그램 상태들(P1'~P7') 중 하나를 가질 수 있다.
이 경우, 무효 블록(BLK1)이 제1 무효 패턴(IP1)을 갖도록, 무효 패턴 동작이 수행될 수 있다. 제1 무효 패턴(IP1)은 제1 하한 값(VLOW1), 제1 상한값(VUP1), 및 제1 중간 값(VMID1)을 갖는 문턱 전압 산포일 수 있다. 제1 하한 값(VLOW1), 제1 상한 값(VUP1), 및 제1 중간 값(VMID1)은 상대적으로 낮은 전압 값일 수 있다. 즉, 메모리 컨트롤러(110)는 무효 블록에 대한 약한-소거 동작(soft erase operation)을 수행하여 무효 블록이 제1 무효 패턴(IP1)을 갖도록 할 수 있다.
전하 증가 상태의 무효 블록이 제1 무효 패턴(IP1)의 상태로 방치됨으로써, 메모리 셀들 사이의 공간에 누적된 전하들이 감소 또는 상쇄될 수 있다. 예를 들어, 제1 무효 패턴(IP1)은 상대적으로 낮은 문턱 전압 산포이므로, 제1 무효 패턴(IP1)을 갖는 무효 블록의 메모리 셀들의 각 저장 영역에, 상대적으로 적은 개수의 전하(또는 상대적으로 많은 개수의 정공)이 포함될 수 있다. 이러한 상태로 무효 블록이 방치됨에 따라, 무효 블록의 메모리 셀들 사이에 누적된 전하가 상쇄될 수 있다. 따라서, 이후에 무효 블록에 데이터가 프로그램될 경우, 무효 블록의 메모리 셀들 사이에 누적된 전하가 감소되므로, 전하 증가 현상이 감소 또는 상쇄될 수 있다.
다음으로, 도 8b에 도시된 바와 같이, 무효 블록이 전하 감소 상태인 경우, 무효 블록의 메모리 셀들 각각은 소거 상태(E") 및 프로그램 상태들(P1"~P7") 중 하나를 가질 수 있다. 무효 블록이 제2 무효 패턴(IP2)을 갖도록, 무효 패턴 동작이 수행될 수 있다. 제2 무효 패턴(IP2)은 제2 하한 값(VLOW2), 제2 상한 값(VUP2), 및 제2 중간 값(VMID2)을 갖는 문턱 전압 산포일 수 있다. 제2 하한 값(VLOW2), 제2 상한 값(VUP2), 및 제2 중간 값(VMID2)은 상대적으로 높은 전압 값일 수 있다. 즉, 메모리 컨트롤러(110)는 무효 블록에 대한 재프로그램 동작(reprogram operation)(이 때, 소거 동작은 수행되지 않을 수 있음)을 수행하여 무효 블록이 제2 무효 패턴(IP2)을 갖도록 할 수 있다.
전하 감소 상태의 무효 블록이 제2 무효 패턴(IP2)의 상태로 방치됨으로써, 메모리 셀들 사이의 공간에 누적된 정공들이 감소 또는 상쇄될 수 있다. 예를 들어, 제2 무효 패턴(IP2)은 상대적으로 높은 문턱 전압 산포이므로, 제2 무효 패턴(IP2)을 갖는 무효 블록의 메모리 셀들의 각 저장 영역에, 상대적으로 많은 개수의 전하가 포함될 수 있다. 이러한 상태로 무효 블록이 방치됨에 따라, 무효 블록의 공간에 누적된 정공이 상쇄될 수 있다. 따라서, 이후에 무효 블록에 데이터가 프로그램될 경우, 무효 블록의 메모리 셀들 사이에 누적된 정공이 감소되므로, 전하 손실 현상이 감소 또는 상쇄될 수 있다.
상술된 바와 같이, 무효 블록이 전하 손실 상태 또는 전하 증가 상태에 따른 무효 패턴을 갖도록 하여 방치함으로써, 이후에 무효 블록에 프로그램되는 데이터의 신뢰성을 보장할 수 있다.
도 9a 및 도 9b는 다양한 무효 패턴 동작을 설명하기 위한 산포도들이다. 도 9a 및 도 9b의 산포도들의 X축들은 메모리 셀의 문턱 전압(Vth)을 가리키고, Y축들은 메모리 셀들의 개수를 가리킨다. 예시적으로, 도 8a 및 도 8b를 설명하여, 약한 소거 동작(soft-erase operation) 및 재프로그램 동작(reprogram operation)이 설명되었다. 도 9a 및 도 9b를 참조하여 다른 무효 패턴 동작이 설명된다.
먼저, 도 9a를 참조하면, 무효 블록이 전하 증가 상태인 경우, 무효 블록의 메모리 셀들 각각은 소거 상태(E') 및 프로그램 상태들(P1'~P7') 중 하나를 가질 수 있다. 이 경우, 무효 패턴 동작이 수행되면, 무효 블록의 메모리 셀들은 소거 상태(E)를 갖도록 먼저 소거되고, 이후에, 제3 무효 패턴(IP3)을 갖도록 후-프로그램(post-program)할 수 있다. 이 때, 제3 무효 패턴(IP3)은 제3 하한 값(VLOW3), 제3 상한 값(VUP3), 및 제3 중간 값(VMID3)을 가질 수 있다.
다음으로, 도 9b를 참조하면, 무효 블록이 전하 감소 상태인 경우, 무효 블록의 메모리 셀들 각각은 소거 상태(E") 및 프로그램 상태들(P1"~P7") 중 어느 하나를 가질 수 있다. 이 경우, 무효 패턴 동작이 수행되면, 무효 블록의 메모리 셀들은 제7 프로그램 상태(P7)를 갖도록 먼저 재프로그램되고(이 때 소거 동작은 수행되지 않음), 이후에, 제4 소거 패턴(IP4)을 갖도록 후-소거(post-erase)될 수 있다. 이 때, 제4 무효 패턴(IP4)은 제4 하한 값(VLOW4), 제4 상한 값(VUP4), 및 제4 중간 값(VMID4)을 가질 수 있다.
상술된 무효 패턴 동작은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 무효 패턴 동작은 무효 블록이 결정된 무효 패턴을 갖도록 다양한 방식을 통해 수행될 수 있다. 예시적으로, 무효 패턴 동작은 무효 블록에 대한 프로그램 동작, 약한-프로그램 동작, 재프로그램 동작, 소거 동작, 약한-소거 동작, 소거 후 약한 프로그램 동작, 프로그램 후 약한 소거 동작 등과 같은 다양한 동작들을 포함할 수 있다.
도 10은 도 1의 메모리 컨트롤러(110)의 동작을 보여주는 순서도이다. 도 1 및 도 10을 참조하면, S210 단계에서, 메모리 컨트롤러(110)는 무효 블록을 검출할 수 있다. S210 단계의 동작은 도 7의 S110 단계와 동일하므로, 이에 대한 상세한 설명은 생략된다.
S220 단계에서, 메모리 컨트롤러(110)는 무효 블록의 프로그램/소거(P/E; program/erase) 사이클 횟수(the number of P/E cycles)를 검출할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)의 복수의 메모리 블록들(BLK1~BLKm)의 마모도를 관리하기 위하여, 복수의 메모리 블록들(BLK1~BLKm) 각각에 대한 P/E 사이클 횟수에 대한 정보를 관리할 수 있다. 메모리 컨트롤러(110)는 P/E 사이클 횟수에 대한 정보를 기반으로 무효 블록에 대한 P/E 사이클 횟수를 검출할 수 있다.
S230 단계에서, 메모리 컨트롤러(110)는 무효 블록의 P/E 사이클 횟수를 기반으로 무효 패턴을 결정할 수 있다. 예를 들어, 메모리 블록의 P/E 사이클이 증가할수록 메모리 블록의 공간(SP)(도 5 참조)에 누적되는 정공이 증가할 수 있다. 즉, 무효 블록의 P/E 사이클 횟수가 증가함에 따라, 무효 블록의 상태가 더욱 강한 전하 손실 상태로 바뀔 수 있다.
예시적으로, 더욱 강한 전하 손실 상태는 프로그램된 이후에 메모리 셀들의 문턱 전압이 더욱 빠르게 또는 더욱 많이 감소되는 상태를 가리킨다. 예를 들어, 제1 전하 손실 상태에서, 제1 시간 동안 제1 값만큼 메모리 셀의 문턱 전압이 감소되는 것으로 가정하면, 제1 전하 손실 상태보다 강한 제2 전하 손실 상태에서, 제1 시간 동안 제1 값보다 큰 제2 값만큼 메모리 셀의 문턱 전압이 감소될 것이다. 즉, 전하 손실 상태가 강할수록 메모리 블록의 공간에 누적된 정공의 개수 또는 양이 많음을 의미한다.
상술된 바와 같이, 메모리 컨트롤러(110)는 무효 블록의 P/E 사이클이 증가할수록, 무효 패턴(IP)의 하한 값, 상한 값, 또는 중간 값을 증가시킴으로써, 무효 블록의 상태를 상쇄 또는 감소시킬 수 있다.
이후에, 메모리 컨트롤러(110)는 S240 단계의 동작을 수행할 수 있다. S240 단계의 동작은 도 7의 S130 단계와 유사하므로, 이에 대한 상세한 설명은 생략된다.
도 11은 무효 블록의 P/E 사이클 횟수에 대응하는 무효 패턴을 보여주는 룩-업 테이블이다. 도 12는 도 11의 룩-업 테이블에 포함된 무효 패턴들 각각에 대응하는 문턱 전압 산포를 보여주는 산포도들이다.
도 1, 및 도 10 내지 도 12를 참조하면, 메모리 컨트롤러(110)는 무효 블록의 P/E 사이클 횟수를 검출할 수 있다. 앞서 설명된 바와 같이, 메모리 컨트롤러(110)는 복수의 메모리 블록들(BLK1~BLKm) 각각에 대한 P/E 사이클 횟수에 대한 정보로부터 무효 블록의 P/E 사이클 횟수를 검출할 수 있다.
메모리 컨트롤러(110)는 검출된 P/E 사이클 횟수를 기반으로, 룩-업 테이블(LUT)로부터 대응하는 무효 패턴을 결정할 수 있다. 예를 들어, 룩-업 테이블(LUT)은 복수의 P/E 사이클 횟수들(P/E1~P/En) 각각에 대응하는 복수의 무효 패턴들(IP1~IPn)에 대한 정보를 포함할 수 있다. 예시적으로, 복수의 P/E 사이클 횟수들(P/E1~P/En) 각각은 P/E 사이클의 특정 값을 가리키거나 또는 P/E 사이클의 범위를 가리킬 수 있다. 예시적으로, 룩-업 테이블(LUT)은 메모리 컨트롤러(110)의 램(113)(도 2 참조) 또는 별도의 저장 회로에 저장될 수 있다.
검출된 P/E 사이클 횟수가 제1 P/E 사이클(P/E1)보다 작은 경우, 메모리 컨트롤러(110)는 무효 블록에 형성될 무효 패턴을 제1 무효 패턴(IP1)으로 결정할 수 있다. 이 때, 제1 무효 패턴(IP1)은 도 11 및 도 12에 도시된 바와 같이, 제1 하한 값(VLOW1), 제1 상한 값(VUP1), 및 제1 중간 값(VMID1)을 가질 수 있다.
검출된 P/E 사이클 횟수가 제1 P/E 사이클 횟수(P/E1)보다 크고, 제2 P/E 사이클 횟수(P/E2)보다 작은 경우, 메모리 컨트롤러(110)는 무효 블록에 형성될 무효 패턴을 제2 무효 패턴(IP2)으로 결정할 수 있다. 이 때, 제2 무효 패턴(IP2)은 제2 하한 값(VLOW2), 제2 상한 값(VUP2), 및 제2 중간 값(VMID2)을 가질 수 있다. 도 12에 도시된 바와 같이, 제2 무효 패턴(IP2)의 제2 하한 값(VLOW2), 제2 상한 값(VUP2), 및 제2 중간 값(VMID2)은 각각 제1 무효 패턴(IP1)의 제1 하한 값(VLOW1), 제1 상한 값(VUP1), 및 제1 중간 값(VMID1)보다 클 수 있다.
마찬가지로, 검출된 P/E 사이클 횟수가 제n-1 P/E 사이클 횟수(P/En-1)보다 크고, 제n P/E 사이클 횟수(P/En)보다 작은 경우, 메모리 컨트롤러(110)는 무효 블록에 형성될 무효 패턴을 제n 무효 패턴(IPn)으로 결정할 수 있다. 앞서 설명된 바와 유사하게, 제n 무효 패턴(IPn)은 제n 하한 값(VLOWn), 제n 상한 값(VUPn), 및 제n 중간 값(VMIDn)을 가질 수 있고, 제n 하한 값(VLOWn), 제n 상한 값(VUPn), 및 제n 중간 값(VMIDn)은 각각 제n-1 하한 값(VLOWn-1), 제n 상한 값(VUPn-1), 및 제n 중간 값(VMIDn-1)보다 클 수 있다. 예시적으로, 제n P/E 사이클 횟수(P/En)는 메모리 블록의 수명을 가리키는 P/E 사이클 횟수일 수 있다.
상술된 바와 같이, 메모리 컨트롤러(110)는 무효 블록의 P/E 사이클 횟수가 증가할수록, 높은 하한 값, 높은 상한 값, 또는 높은 중간 값을 갖는 무효 패턴을 결정할 수 있다. 또는 메모리 컨트롤러(110)는 P/E 사이클 횟수 및 대응하는 무효 패턴에 대한 정보를 포함하는 룩-업 테이블(LUT)을 기반으로, 무효 패턴을 결정할 수 있다.
비록 도면에 도시되지는 않았으나, 룩-업 테이블(LUT)은 무효 패턴의 하한 값, 상한 값, 또는 중간 값 중 일부만 미리 정해질 수 있다. 예를 들어, 룩-업 테이블(LUT)은 무효 패턴의 미리 결정된 중간 값(VMID)만 포함할 수 있다. 또는 룩-업 테이블(LUT)은 무효 패턴의 미리 결정된 하한 값(VLOW)만 포함할 수 있다. 또는 룩-업 테이블(LUT)은 무효 패턴의 미리 결정된 상항 값(VUP)만 포함할 수 있다. 또는, 무효 패턴의 레벨에 따라, 룩-업 테이블(LUT)은 하한 값만 포함하거나, 상한 값만 포함하거나, 중간 값만 포함하거나, 또는 그것들의 조합만을 포함할 수 있다.
도 13은 도 1의 메모리 컨트롤러(110)의 동작을 보여주는 블록도이다. 도 1 및 도 13을 참조하면, S310 단계에서, 메모리 컨트롤러(110)는 무효 블록을 검출할 수 있다. S310 단계는 도 7의 S110 단계와 유사하므로 이에 대한 상세한 설명은 생략된다.
S320 단계에서, 메모리 컨트롤러(110)는 무효 블록의 에러 속성을 기반으로 무효 블록의 상태를 검출할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 셀-카운팅 동작을 통해 무효 블록이 상위 프로그램 상태에 대한 에러인지, 또는 하위 프로그램 상태에 대한 에러인지(즉, 에러 속성)를 판별할 수 있다. 또는 메모리 컨트롤러(110)는 ECC 회로(114)(도 2 참조)를 통해 무효 블록으로부터 읽은 데이터에 대한 에러 검출을 수행하고, 검출된 에러가 상위 프로그램 상태에서 에러인지, 또는 하위 프로그램 상태에서 에러인지(즉, 에러 속성)를 판별할 수 있다.
메모리 컨트롤러(110)는 판별된 에러 속성을 기반으로 무효 블록의 상태를 검출할 수 있다. 예를 들어, 판별된 에러 속성이 상위 프로그램 상태에 대한 에러인 것을 가리키는 경우 메모리 컨트롤러(110)는 무효 블록이 전하 손실 상태인 것으로 결정하고, 판별된 에러 속성이 하위 프로그램 상태에 대한 에러인 것을 가리키는 경우, 메모리 컨트롤러(110)는 무효 블록이 전하 증가 상태인 것으로 결정할 수 있다.
이후에, 메모리 컨트롤러(110)는 S330 단계 및 S340 단계의 동작들을 수행할 수 있다. S330 단계 및 S340 단계의 동작들은 도 7의 S120 단계의 S130 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다.
도 14는 도 13의 에러 상태를 검출하는 예시적인 동작을 설명하기 위한 산포도들이다. 간결한 설명을 위하여, 무효 블록이 전하 증가 상태인 경우 및 무효 블록이 전하 감소인 상태의 경우가 설명된다. 예시적으로, 무효 블록에서 셀 카운팅이 수행되는 특정 페이지 또는 특정 워드라인에 저장된 데이터는 랜더마이징된 데이터인 것으로 가정한다. 또한, 카운팅 전압(Vc)은 제3 프로그램 상태(P3) 및 제4 프로그램 상태(P4)의 밸리 값(valley value)인 것으로 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 1, 도 13, 및 도 14를 참조하면, 메모리 컨트롤러(110)는 무효 블록의 특정 페이지 또는 특정 워드라인에 셀-카운팅 전압(Vc)을 인가하여, 온-셀 개수 또는 오프-셀 개수를 검출할 수 있다. 도 14에 도시된 바와 같이, 무효 블록이 정상 상태(normal state)인 경우(즉, 전하 손실 상태 또는 전하 증가 상태가 아닌 경우), 메모리 셀들의 문턱 전압의 변화가 실질적으로 없을 것이다. 이 경우, 도 14에 도시된 바와 같이, 카운팅 전압(Vc)에 의해 턴-온되는 메모리 셀들의 개수(ON)(즉, 온-셀 개수) 및 턴-오프되는 메모리 셀들의 개수(OFF)(즉, 오프-셀 개수)는 실질적으로 동일할 것이다.
무효 블록이 전하 증가 상태인 경우, 카운팅 전압(Vc)에 의해 턴-온되는 메모리 셀들의 개수(ON)는 턴-오프되는 메모리 셀들의 개수(OFF)보다 적을 수 있다. 이는, 전하 증가 상태인 무효 블록에서, 시간이 흐름에 따라 메모리 셀들의 문턱 전압이 높아지기 때문이다. 예시적으로, 전하 증가 상태에서, 소거 상태(E) 또는 하위 프로그램 상태(예를 들어, P1, P2 등)를 갖는 메모리 셀들의 문턱 전압 증가량이 상위 프로그램 상태(예를 들어, P6, P7 등)를 갖는 메모리 셀들의 문턱 전압 증가량보다 클 수 있다. 즉, 전하 증가 상태인 경우, 하위 프로그램 상태에 대한 에러가 더 크게 발생할 것이다.
무효 블록이 전하 감소 상태인 경우, 카운팅 전압(Vc)에 의해 턴-온되는 메모리 셀들의 개수(ON)는 턴-오프되는 메모리 셀들의 개수(OFF)보다 많을 수 있다. 이는, 전하 감소 상태인 무효 블록에서, 시간이 흐름에 따라 메모리 셀들의 문턱 전압이 낮아지기 때문이다. 예시적으로, 전하 증가 상태에서, 소거 상태(E) 또는 하위 프로그램 상태(예를 들어, P1, P2 등)를 갖는 메모리 셀들의 문턱 전압 증가량이 상위 프로그램 상태(예를 들어, P6, P7 등)를 갖는 메모리 셀들의 문턱 전압 증가량보다 클 수 있다. 즉, 전하 감소 상태인 경우, 상위 프로그램 상태에 대한 에러가 더 크게 발생할 것이다.
상술된 바와 같이, 무효 블록이 전하 증가 상태인지 또는 전하 감소 상태인지에 따라, 무효 블록이 에러 속성이 다를 수 있다. 메모리 컨트롤러(110)는 상술된 바와 같이, 셀-카운팅 동작을 통해 무효 블록의 에러 속성을 판별하고, 판별된 에러 속성을 기반으로 무효 블록의 상태를 결정할 수 있다.
비록 도면에 도시되지는 않았으나, 메모리 컨트롤러(110)는 다른 카운팅 전압을 사용할 수 있다. 예를 들어, 카운팅 전압은 제1 및 제2 프로그램 상태들(P2, P3)의 밸리 값으로 설정될 수 있다. 이 경우, 메모리 컨트롤러(110)는 카운팅 전압을 사용하여 셀-카운팅 동작을 수행하고, 셀-카운팅 결과가 미리 정해진 값보다 큰지 또는 작은지를 판별함으로써, 에러 속성을 판별할 수 있다.
또는, 메모리 컨트롤러(110)는 적어도 2개의 카운팅 전압을 기반으로 셀-카운팅 동작을 수행할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제1 및 제2 프로그램 상태들(P1, P2)의 밸리 값, 제3 및 제4 프로그램 상태들(P3, P4)의 밸리 값, 및 제6 및 제7 프로그램 상태들(P6, P7)의 밸리 값을 카운팅-전압들로서 사용할 수 있다. 메모리 컨트롤러(110)는 상술된 카운팅-전압들을 사용하여, 카운팅 전압들 사이의 문턱 전압을 갖는 메모리 셀들의 개수를 카운팅하고, 카운팅된 결과를 기반으로 무효 블록의 상태를 결정할 수 있다.
도 15는 도 13의 에러 속성을 검출하는 예시적인 동작을 설명하기 위한 블록도이다. 도면의 간결성을 위하여, 에러 속성을 검출하는 동작을 설명하는데 불필요한 구성 요소들은 생략된다.
도 1, 도 13, 및 도 15를 참조하면, 메모리 컨트롤러(110)는 무효 블록의 특정 페이지, 특정 워드라인, 임의의 페이지, 또는 임의의 워드라인으로부터 데이터를 읽을 수 있다. 메모리 컨트롤러(110)의 ECC 회로(114)는 읽은 데이터(DATA)의 에러를 검출할 수 있다. 무효 블록 관리자(111)는 ECC 회로(114)로부터 검출된 에러에 대한 정보(EA)를 수신하고, 수신된 에러 정보(EA)를 기반으로 에러 속성을 판별할 수 있다. 예를 들어, 무효 블록 관리자(111)는 수신된 에러 정보(EA)를 기반으로 상위 프로그램 상태에 대한 에러인지 또는 하위 프로그램 상태에 대한 에러인지를 판별할 수 있다. 무효 블록 관리자(111)는 판별된 에러 속성을 기반으로 무효 블록의 상태를 판별하고, 판별된 무효 블록의 상태를 기반으로 무효 패턴을 결정할 수 있다.
무효 블록 관리자(111)는 결정된 무효 패턴을 기반으로 무효 블록에 대한 무효 패턴 동작을 수행할 수 있다. 무효 패턴 동작을 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
상술된 바와 같이, 메모리 컨트롤러(110)는 무효 블록의 에러 속성을 검출하고, 검출된 에러 속성을 기반으로 무효 블록의 상태를 결정할 수 있다. 메모리 컨트롤러(110)는 무효 블록의 상태를 기반으로 무효 블록에 대한 무효 패턴 동작을 수행함으로써, 무효 블록에 이후에 프로그램되는 데이터의 신뢰성을 향상시킬 수 있다.
도 16은 도 1의 메모리 컨트롤러(110)의 동작을 보여주는 순서도이다. 도 16을 참조하면, S410 단계에서, 메모리 컨트롤러(110)는 무효 블록을 검출할 수 있다. S410 단계의 동작은 도 7의 S110 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S420 단계에서, 메모리 컨트롤러(110)는 블록 특성 테이블(BCT; Block characteristic Table)을 기반으로 무효 패턴을 결정할 수 있다. 예를 들어, 도 4 및 도 5에 도시된 바와 같이, 하나의 메모리 블록에 포함된 메모리 셀들 각각은 기판으로부터 수직한 높이에 따라 물리적으로 다른 특성을 가질 수 있다. 도 5에 도시된 바와 같이, 제1 메모리 셀(MC1)의 크기는 제2 메모리 셀(MC2)의 크기보다 작을 수 있고, 이에 따라, 제1 메모리 셀(MC1)의 동작 특성은 제2 메모리 셀(MC2)과 다를 수 있다. 또한, 동일한 높이의 메모리 셀들(예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 메모리 셀들 중 제1 워드라인(WL1)과 연결된 메모리 셀들)은 서로 다른 형태의 모양을 가질 수 있다. 이러한 각 메모리 셀, 각 워드라인, 각 메모리 블록의 서로 다른 물리적 특성으로 인하여, 각각에 대한 동작 특성이 다를 수 있다.
블록 특성 테이블(BCT)은 불휘발성 메모리 장치(120)의 복수의 메모리 블록들(BLK1~BLKm) 각각에 대한 물리적 특성 또는 복수의 워드라인들 각각에 대한 물리적 특성 또는 복수의 셀들 각각에 대한 물리적 특성에 기반된 무효 패턴의 정보를 포함할 수 있다. 즉, 블록 특성 테이블(BCT)의 구현 방식에 따라 각 메모리 블록 또는 각 워드라인 또는 각 메모리 셀에 대응하는 무효 패턴은 서로 다를 수 있다. 메모리 컨트롤러(110)는 블록 특성 테이블(BCT)을 기반으로 무효 블록과 대응되는 무효 패턴을 결정할 수 있다.
이후에, 메모리 컨트롤러(110)는 S430 단계의 동작을 수행할 수 있고, S430 단계의 동작은 도 7의 S130 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
도 17 및 도 18은 도 16의 동작 방법을 좀 더 상세하게 설명하기 위한 도면이다. 간결한 설명을 위하여, 도 16의 동작 방법을 설명하는데 불필요한 구성 요소들은 생략된다. 또한, 제1 메모리 블록(BLK1)은 무효 블록(invalid block)이고, 제1 내지 제6 워드라인들(WL1~WL6)을 포함하는 것으로 가정한다. 또한, 도 17의 블록 특성 테이블(BCT)은 각 워드라인에 대응하는 무효 패턴의 정보를 포함하는 것으로 가정한다.
도 1, 도 16, 및 도 17을 참조하면, 블록 특성 테이블(BCT)은 복수의 메모리 블록들(BLK1~BLKm) 각각의 제1 내지 제6 워드라인들(WL1~WL6) 각각에 대한 무효 패턴의 정보를 포함할 수 있다. 예시적으로, 블록 특성 테이블(BCT)은 사전 평가를 통해 결정될 수 있고, 메모리 컨트롤러(110)의 램(113) 또는 별도의 저장 회로에 저장될 수 있다.
메모리 컨트롤러(110)는 블록 특성 테이블(BCT)을 기반으로 무효 블록인 제1 메모리 블록(BLK1)에 대한 무효 패턴을 결정할 수 있다. 도 17에 도시된 바와 같이, 블록 특성 테이블(BCT)은 제1 메모리 블록(BLK1)의 제1 내지 제6 워드라인들(WL1~WL6)에 대하여 각각 제1 내지 제6 무효 패턴(IP1~IP6)에 대한 정보를 포함할 수 있다. 즉, 메모리 컨트롤러(110)는 블록 특성 테이블(BCT)을 기반으로 무효 블록인 제1 메모리 블록(BLK1)의 제1 내지 제6 워드라인들(WL1~WL6)이 각각 제1 내지 제6 무효 패턴들(IP1~IP6)을 갖도록 무효 패턴 동작을 수행할 수 있다.
예시적으로, 제1 워드라인(WL1)이 기판과 가장 인접한 워드라인이고, 제6 워드라인(WL6)이 기판으로부터 가장 높은 워드라인인 것으로 가정하면, 무효 패턴 동작 이후에, 제1 내지 제6 워드라인들(WL1~WL6)은 각각 도 17에 도시된 바와 같이 제1 내지 제6 무효 패턴들(IP1~IP6)을 가질 수 있다. 이 때, 도 17에 도시된 바와 같이, 제1 무효 패턴(IP1)은 제2 무효 패턴(IP1)보다 높은 레벨이고, 제2 무효 패턴(IP2)은 제3 무효 패턴(IP3)보다 높은 레벨이다. 마찬가지로, 제3 무효 패턴(IP3)은 제4 무효 패턴(IP4)보다 높은 레벨이고, 제4 무효 패턴(IP4)은 제5 무효 패턴(IP5)보다 높은 레벨이고, 제5 무효 패턴(IP5)은 제6 무효 패턴(IP6)보다 높은 레벨이다.
이는 기판으로부터의 워드라인의 높이가 낮아질수록 전하 손실 특성이 강하기 때문에, 기판으로부터의 높이가 낮아질수록 무효 패턴의 레벨을 증가시킴으로써, 전하 손실 특성을 상쇄시킬 수 있다.
다음으로, 도 18을 참조하면, 블록 특성 테이블(BCT')은 복수의 메모리 블록들(BLK1~BLKm) 각각의 제1 내지 제3 워드라인 존들(WLZ1~WLZ3)에 대한 무효 패턴 정보를 포함할 수 있다. 예시적으로, 제1 워드라인 존(WLZ1)은 제1 및 제2 워드라인들(WL1, WL2)을 포함하고, 제2 워드라인 존(WLZ2)은 제3 및 제4 워드라인들(WL3, WL4)을 포함하고, 제3 워드라인 존(WLZ3)은 제5 및 제6 워드라인들(WL5, WL6)을 포함할 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
메모리 컨트롤러(110)는 블록 특성 테이블(BCT')을 기반으로 무효 블록인 제1 메모리 블록(BLK1)에 대한 무효 패턴을 결정하고, 결정된 무효 패턴을 기반으로 무효 패턴 동작을 수행할 수 있다. 도 18에 도시된 바와 같이, 무효 패턴 동작 이후에, 제1 메모리 블록(BLK1)의 제1 워드라인 존(WLZ1)은 제1 무효 패턴(IP1)을 갖고, 제2 워드라인 존(WLZ2)은 제2 무효 패턴(IP2)을 갖고, 제3 워드라인 존(WLZ3)은 제3 무효 패턴(IP3)을 가질 수 있다. 제1 내지 제3 무효 패턴들(IP1~IP3)은 앞서 설명된 바와 유사하게, 기판으로부터의 워드라인의 높이에 따라 서로 다른 레벨을 가질 수 있다. 이와 관련된 설명은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
예시적으로, 도 17 및 도 18을 참조하여, 블록 특성 테이블들(BCT, BCT')은 워드라인의 높이를 기반으로 무효 패턴이 서로 다를 수 있음이 설명되었다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 앞서 설명된 바와 같이, 동일한 높이의 워드라인과 연결된 메모리 셀들 각각은 필라의 모양, 형태, 크기, 왜곡 등과 같이 서로 다른 물리적 특성을 갖고, 이로 인하여, 각 메모리 셀의 동작 특성(예를 들어, 셀 속도)이 서로 다를 수 있다. 이 경우, 하위 워드라인에 대응하는 무효 패턴이 상위 워드라인에 대응하는 무효 패턴보다 높은 레벨을 가질 수 있다. 또는 동일한 워드라인에 연결된 메모리 셀들이 셀 스트링에 따라 서로 다른 무효 패턴을 가질 수 있다.
상술된 바와 같이, 메모리 컨트롤러(110)는 사전 평가 등을 통해 미리 정해진 블록 특성 테이블(BCT)을 기반으로 무효 블록에 대한 무효 패턴을 결정할 수 있다. 이 때, 무효 패턴은 무효 블록의 각 워드라인, 각 메모리 셀마다 서로 다를 수 있다.
도 19는 도 1의 메모리 컨트롤러(110)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 19를 참조하면, 메모리 컨트롤러(110)는 S510 단계 내지 S530 단계의 동작들을 수행할 수 있다. S510 단계 내지 S530 단계의 동작들은 도 7의 S110 단계 내지 S130 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다. 예시적으로, S510 단계 내지 S530 단계의 동작들은 도 10의 S210 단계 내지 S240 단계의 동작들 또는 도 13의 S310 단계 내지 S340 단계의 동작들 또는 도 16의 S410 단계 내지 S430 단계의 동작들로 대체될 수 있다. 즉, 메모리 컨트롤러(110)는 다양한 방식을 통해, 무효 블록에 대한 무효 패턴을 결정하고, 결정된 무효 패턴을 기반으로 무효 패턴 동작을 수행할 수 있다.
S540 단계에서, 메모리 컨트롤러(110)는 무효 블록의 상태를 기반으로 유지 시간(holding-time)을 결정할 수 있다. 유지 시간은 특정 블록이 무효 블록으로 된 시점으로부터 특정 블록이 재사용(즉, 소거 이후 프로그램)되는 시점까지의 시간을 가리킨다. 즉, 유지 시간은 무효 블록인 상태로 유지되는 시간을 가리킨다.
앞서 설명된 바와 같이, 전하 손실 상태 또는 전하 증가 상태는 무효 블록의 공간(SP)(도 5 참조)에 누적된 전하 또는 정공의 개수 또는 양에 따라 강도가 다를 수 있다. 즉, 공간(SP)에 전하가 많이 누적될수록, 전하 증가 상태의 강도가 강해질 수 있고, 공간(SP)에 정공이 많이 누적될수록, 전하 감소 상태의 강도가 강해질 수 있다. 앞서 설명된 바와 같이, 전하 증가 상태 또는 전하 손실 상태의 강도가 강해지는 것은 메모리 셀들의 문턱 전압 변화량이 크다는 것을 의미한다. 무효 블록의 공간(SP)에 누적된 전하 또는 정공을 상쇄 또는 감소시킴으로써, 전하 손실 상태 또는 전하 증가 상태의 강도를 약화시킬 수 있다.
예시적으로, 무효 패턴을 갖는 무효 블록의 방치 시간이 증가할수록, 무효 블록의 공간(SP)에 누적된 전하 또는 정공의 양이 감소할 수 있다. 즉, 전하 손실 상태 또는 전하 증가 상태가 강할수록, 무효 블록으로 유지되는 유지 시간을 증가시킴으로써, 무효 블록의 특성을 상쇄시킬 수 있다. 따라서, 메모리 컨트롤러(110)는 무효 블록의 상태를 기반으로 유지 시간을 결정할 수 있다.
S550 단계에서, 메모리 컨트롤러(110)는 경과 시간이 유지 시간을 경과하는지 판별할 수 있다. 경과 시간은 특정 블록이 무효 블록으로 된 시점으로부터 현재 시점까지의 시간을 가리킨다. 즉, 메모리 컨트롤러(110)는 특정 블록이 무효 블록으로 된 시점으로부터 유지 시간이 경과하였는지 판별할 수 있다.
유지 시간이 경과한 경우, S560 단계에서, 메모리 컨트롤러(110)는 무효 블록을 자유 블록으로서 사용할 수 있다. 예를 들어, 메모리 컨트롤러(110)는, 새로운 데이터를 기입하기 위하여, 무효 블록을 소거한 이후에, 소거된 무효 블록에 새로운 데이터를 기입할 수 있다.
상술된 바와 같이, 메모리 컨트롤러(110)는 무효 블록의 상태에 따라, 무효 블록의 유지 시간을 다르게 함으로써, 각 무효 블록의 전자 증가 상태 또는 전자 감소 상태를 효과적으로 상쇄시킬 수 있다. 따라서, 저장 장치의 신뢰성이 향상된다.
도 20은 도 19의 동작 방법에 따른 무효 블록의 재사용 동작을 보여주는 도면이다. 도 1, 도 19, 및 도 20을 참조하면, 제1 시점(t1)에서, 제1 및 제2 메모리 블록들(BLK1, BLK2)은 무효 블록으로 검출될 수 있다. 메모리 컨트롤러(110)의 무효 패턴 동작에 의해 제1 및 제2 메모리 블록들(BLK1, BLK2)은 제1 무효 패턴(IP1, IP2)을 갖는 것으로 가정한다. 이 때, 제1 및 제2 메모리 블록들(BLK1, BLK2)은 전자 증가 상태이되, 제2 메모리 블록(BLK2)은 제1 메모리 블록(BLK1)보다 강한 전자 증가 상태를 갖는 것으로 가정한다.
이 경우, 제1 메모리 블록(BLK1)에 대한 유지 시간은 제1 시간(T1)으로 결정될 수 있고, 제2 메모리 블록(BLK2)에 대한 유지 시간은 제2 시간(T2)으로 결정될 수 있다. 이 때, 제1 시간(T1)은 제2 시간(T2)보다 짧을 수 있다. 즉, 제1 메모리 블록(BLK1)은 제1 시점(t1)으로부터 제1 시간(T1)이 경과한 제2 시점(t2)에서, 자유 블록으로서 사용될 수 있고, 제2 메모리 블록(BLK2)은 제1 시점(t1)으로부터 제2 시간(T2)이 경과한 제3 시점(t3)에서, 자유 블록으로서 사용될 수 있다.
상술된 바와 같이, 무효 블록의 상태에 따라, 무효 블록의 유지 시간(또는 방치 시간)을 다르게 함으로써, 데이터 신뢰성에 영향을 주는 무효 블록의 상태(즉, 전자 증가 상태 또는 전자 감소 상태)를 상쇄시킬 수 있다. 따라서, 저장 장치의 성능이 향상된다.
도 21은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다. 도 21을 참조하면, 저장 장치(200)는 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 무효 블록 관리자(211)를 포함할 수 있다. 메모리 컨트롤러(210), 불휘발성 메모리 장치(220), 및 무효 블록 관리자(211)는 도 1 내지 도 20을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
불휘발성 메모리 장치(220)는 온도 센서(221)를 더 포함할 수 있다. 온도 센서(221)는 불휘발성 메모리 장치(220)의 온도를 검출하고, 검출된 온도에 대한 정보(즉, 온도 정보(TEMP))를 메모리 컨트롤러(210)의 무효 블록 관리자(211)로 제공할 수 있다.
무효 블록 관리자(211)는 도 1 내지 도 20을 참조하여 설명된 바와 같이, 무효 블록의 상태를 기반으로, 무효 패턴을 결정할 수 있다. 이 때, 무효 블록 관리자(211)는 결정된 무효 패턴에 온도 정보(TEMP)를 반영할 수 있다. 예를 들어, 불휘발성 메모리 장치(220)의 온도가 증가할수록, 무효 블록의 공간(SP)(도 5 참조)에 누적된 전자 또는 정공이 빠르게 상쇄될 수 있다. 이에 따라, 온도가 증가할 경우, 무효 패턴의 레벨을 높이거나 또는 낮추더라도, 데이터 신뢰성에 영향을 주는 무효 블록의 상태가 상쇄될 수 있다.
또는 무효 블록 관리자(211)는 온도 정보(TEMP)를 반영하여, 무효 블록의 유지 시간(holding time)을 결정할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 불휘발성 메모리 장치(220)의 온도가 증가할수록, 무효 블록의 공간(SP)(도 5 참조)에 누적된 전자 또는 정공이 빠르게 상쇄될 수 있다. 이에 따라, 온도가 증가할 경우, 무효 블록의 유지 시간을 감소시키더라도, 데이터 신뢰성에 영향을 주는 무효 블록의 상태가 상쇄될 수 있다.
상술된 바와 같이, 무효 블록 관리자(211)는 무효 블록의 상태 및 불휘발성 메모리 장치(220)의 온도를 기반으로 무효 패턴을 결정하거나 또는 무효 블록의 유지 시간을 결정할 수 있다.
도 22는 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다. 도 22를 참조하면, 저장 장치(300)는 메모리 컨트롤러(310) 및 불휘발성 메모리 장치(320)를 포함할 수 있다. 메모리 컨트롤러(310)는 무효 블록 관리자(311)를 포함할 수 있다. 메모리 컨트롤러(310), 불휘발성 메모리 장치(320), 및 무효 블록 관리자(311)는 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
메모리 컨트롤러(310)는 무효 블록에 대한 무효 패턴 동작을 수행하기 위하여, 무효 패턴 커맨드(CMD_IP), 무효 블록 어드레스(ADDR_IP), 무효 패턴 데이터(DATA_IP), 및 제어 신호(CTRL)를 불휘발성 메모리 장치(320)로 전송할 수 있다.
무효 패턴 커맨드(CMD_IP)는 무효 블록에 대한 프로그램 동작, 약한-프로그램 동작, 재프로그램 동작, 소거 동작, 약한-소거 동작, 소거 후 약한 프로그램 동작, 프로그램 후 약한 소거 동작 등을 수행하기 위한 커맨드일 수 있다. 예시적으로, 무효 패턴 커맨드(CMD_IP)는 메모리 컨트롤러(310) 및 불휘발성 메모리 장치(320) 사이의 인터페이스에 의해 규약된 커맨드이거나 또는 제조사 특정 커맨드(vendor specific command)일 수 있다. 무효 블록 어드레스(ADDR_IP)는 무효 패턴 동작이 수행될 무효 블록에 대한 물리적 어드레스일 수 있다.
무효 데이터(DATA_IP)는 무효 블록에 형성될 무효 패턴과 대응하는 데이터일 수 있다. 예를 들어, 무효 블록에 형성될 무효 패턴의 하한 값은 소거 상태의 하한 값이고, 상한 값은 제1 프로그램 상태의 상한 값인 것으로 가정하자. 이 경우, 무효 패턴 동작이 수행된 이후에, 무효 블록의 메모리 셀들로부터 데이터를 읽을 경우, 소거 상태 또는 제1 프로그램 상태와 대응되는 데이터가 읽힐 것이다. 다시 말해서, 무효 패턴 데이터(DATA_IP)로서 소거 상태 또는 제1 프로그램 상태와 대응되는 데이터를 불휘발성 메모리 장치(220)로 제공함으로써, 불휘발성 메모리 장치(220)는 무효 블록이 무효 패턴을 갖도록 무효 패턴 동작을 수행할 수 있다.
도 22를 참조하여 설명된 실시 예는 예시적인 것이며, 무효 패턴 커맨드(CMD_IP)가 무효 블록 어드레스에 대한 정보 또는 무효 패턴에 대한 정보를 포함할 경우, 무효 블록 어드레스(ADDR_IP) 또는 무효 데이터(DATA_IP)는 생략될 수 있다.
도 23은 본 발명에 따른 저장 장치가 적용된 SSD(Solid State Drive) 시스템(1000)을 보여주는 블록도이다. 도 23을 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함한다.
SSD(1200)는 신호 커넥터(1201)를 통해 호스트(1100)와 신호(SIG)를 주고 받고, 전원 커넥터(1202)를 통해 전원(PWR)을 입력 받는다. SSD(1200)는 SSD 컨트롤러(1210), 복수의 플래시 메모리들(1221~122n), 보조 전원 장치(1230), 및 버퍼 메모리(1240)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(1221~122n)을 제어할 수 있다. 예시적으로, SSD 컨트롤러(1210)는 도 1 내지 도 22를 참조하여 설명된 동작 방법을 기반으로, 복수의 플래시 메모리들(1221~122n)에서 발생된 무효 블록들을 관리할 수 있다.
복수의 플래시 메모리들(1221~122n)은 SSD 컨트롤러(1210)의 제어에 따라 동작할 수 있다. 보조 전원 장치(1230)는 전원 커넥터(1002)를 통해 호스트(1100)와 연결된다. 보조 전원 장치(1230)는 호스트(1100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(1230)는 호스트(1100)로부터의 전원 공급이 원활하지 않을 경우, SSD(1200)의 전원을 제공할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 저장 장치
110: 메모리 컨트롤러
111: 무효 블록 관리자
120: 불휘발성 메모리 장치

Claims (20)

  1. 복수의 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러의 동작 방법에 있어서,
    상기 복수의 메모리 블록들 중 무효 블록(invalid block)을 검출하는 단계;
    상기 무효 블록의 상태를 기반으로 무효 패턴을 결정하는 단계; 및
    상기 무효 블록이 상기 무효 패턴을 갖도록 상기 무효 블록에 대한 무효 패턴 동작을 수행하는 단계를 포함하고,
    상기 무효 패턴은 상기 무효 블록에 포함된 메모리 셀들의 문턱 전압 산포를 가리키고,
    상기 무효 패턴 동작은 상기 무효 블록에 대한 소거 동작, 약한-소거 동작(soft-erase operation), 프로그램 동작(program operation), 재프로그램 동작(reprogram operation), 또는 약한-프로그램 동작(soft-program operation) 중 적어도 하나이고,
    상기 무효 블록의 상태를 기반으로 무효 패턴을 결정하는 단계는:
    적어도 하나의 카운팅 레벨을 기반으로, 상기 무효 블록의 메모리 셀들에 대한 셀-카운팅 동작을 수행하는 단계; 및
    상기 셀-카운팅 동작의 결과를 기반으로, 상기 무효 패턴을 결정하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 무효 블록의 프로그램/소거 사이클 횟수를 판별하는 단계를 더 포함하고,
    상기 무효 블록의 상기 프로그램/소거 사이클 횟수가 제1 횟수보다 작거나 같은 경우, 상기 무효 패턴은 제1 패턴으로 결정되고,
    상기 무효 블록의 상기 프로그램/소거 사이클 횟수가 제1 횟수보다 큰 제2 횟수보다 크거나 같은 경우, 상기 무효 패턴은 상기 제1 패턴과 다른 제2 패턴으로 결정되는 동작 방법.
  3. 제 2 항에 있어서,
    상기 무효 블록이 상기 제1 패턴을 갖는 경우, 상기 무효 블록에 포함된 메모리 셀들의 문턱 전압들이 제1 하한 값 내지 제1 상한 값 사이의 범위에 포함되도록 상기 무효 패턴 동작이 수행되고,
    상기 무효 블록이 상기 제2 패턴을 갖는 경우, 상기 무효 블록에 포함된 상기 메모리 셀들의 상기 문턱 전압들이 상기 제1 하한 값보다 큰 제2 하한 값 내지 상기 제1 상한 값보다 큰 제2 상한 값 사이의 범위에 포함되도록 상기 무효 패턴 동작이 수행되는 동작 방법.
  4. 제 2 항에 있어서,
    상기 무효 블록이 상기 제1 패턴을 갖는 경우, 상기 무효 블록에 포함된 메모리 셀들의 문턱 전압들의 중간 값이 제1 값을 갖도록 상기 무효 패턴 동작이 수행되고,
    상기 무효 블록이 상기 제2 패턴을 갖는 경우, 상기 무효 블록에 포함된 상기 메모리 셀들의 상기 문턱 전압들의 중간 값이 상기 제1 값보다 큰 제2 값을 갖도록 상기 무효 패턴 동작이 수행되는 동작 방법.
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    상기 무효 블록의 워드라인들 각각에 대응하는 패턴 정보를 포함하는 블록 특성 테이블을 기반으로 상기 무효 패턴이 결정되는 동작 방법.
  8. 제 7 항에 있어서,
    상기 무효 블록의 상기 워드라인들 중 제1 워드라인과 연결된 메모리 셀들은 제1 패턴을 갖고, 상기 무효 블록의 상기 워드라인들 중 제2 워드라인과 연결된 메모리 셀들은 제2 패턴을 갖도록 상기 무효 패턴 동작이 수행되고,
    상기 제1 워드라인 및 상기 제2 워드라인은 기판으로부터 서로 다른 높이에 위치한 동작 방법.
  9. 제 8 항에 있어서,
    상기 제1 워드라인과 연결된 상기 메모리 셀들의 문턱 전압들은 제1 하한 값 내지 제1 상한 값 사이에 포함되고, 상기 제2 워드라인과 연결된 상기 메모리 셀들의 문턱 전압들은 제2 하한 값 내지 제2 상한 값 사이에 포함되고, 상기 제2 하한 값 및 상기 제2 상한 값은 상기 제1 하한 값 및 상기 제1 상한 값보다 작은 동작 방법.
  10. 제 1 항에 있어서,
    상기 무효 블록의 상태를 기반으로 유지 시간을 결정하는 단계; 및
    상기 무효 블록이 검출된 시점으로부터 상기 유지 시간이 경과된 이후에, 상기 무효 블록을 자유 블록으로서 사용하는 단계를 더 포함하는 동작 방법.


  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020170143158A 2017-10-31 2017-10-31 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법 KR102457662B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170143158A KR102457662B1 (ko) 2017-10-31 2017-10-31 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
US16/023,706 US10726931B2 (en) 2017-10-31 2018-06-29 Operation method of memory controller and operation method of storage device
CN201811235301.7A CN109726143B (zh) 2017-10-31 2018-10-23 存储器控制器的操作方法和储存设备的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170143158A KR102457662B1 (ko) 2017-10-31 2017-10-31 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190048310A KR20190048310A (ko) 2019-05-09
KR102457662B1 true KR102457662B1 (ko) 2022-10-25

Family

ID=66242930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170143158A KR102457662B1 (ko) 2017-10-31 2017-10-31 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법

Country Status (3)

Country Link
US (1) US10726931B2 (ko)
KR (1) KR102457662B1 (ko)
CN (1) CN109726143B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR20200125231A (ko) * 2019-04-26 2020-11-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN110908826B (zh) * 2019-10-16 2021-04-20 长江存储科技有限责任公司 数据处理方法及相关产品
KR20220021992A (ko) * 2020-08-14 2022-02-23 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법, 그것을 제어하는 제어기, 및 그것을 포함하는 저장 장치
US20220393975A1 (en) * 2021-06-07 2022-12-08 Microsoft Technology Licensing, Llc Transmitting multi-dimensional data between devices

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101464255B1 (ko) * 2008-06-23 2014-11-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
KR101506336B1 (ko) 2008-10-10 2015-03-27 삼성전자주식회사 산화막 복구 기능을 갖는 비휘발성 메모리 장치 그리고 그것의 블록 관리 방법
US8595593B2 (en) 2008-12-24 2013-11-26 Hynix Semiconductor Inc. Nonvolatile memory device having a copy back operation and method of operating the same
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
KR20130037555A (ko) * 2011-10-06 2013-04-16 삼성전자주식회사 불휘발성 메모리 장치의 제어 방법
KR101620025B1 (ko) 2010-02-19 2016-05-24 삼성전자주식회사 데이터 저장 시스템 및 그것의 오픈 블록 관리 방법
US9158670B1 (en) * 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
DE102013100596B4 (de) * 2012-01-27 2023-09-07 Samsung Electronics Co. Ltd. Nichtflüchtiges Speichersystem mit Programmier- und Löschverfahren und Blockverwaltungsverfahren
KR101975406B1 (ko) * 2012-07-11 2019-05-07 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
DE102013108491A1 (de) * 2012-08-10 2014-02-13 Samsung Electronics Co., Ltd. Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
KR102285462B1 (ko) * 2014-03-26 2021-08-05 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR102292183B1 (ko) 2014-11-07 2021-08-25 삼성전자주식회사 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
US9563504B2 (en) 2014-12-05 2017-02-07 Sandisk Technologies Llc Partial block erase for data refreshing and open-block programming
KR102211868B1 (ko) 2014-12-15 2021-02-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102294848B1 (ko) 2015-06-30 2021-08-31 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
KR102393323B1 (ko) 2015-08-24 2022-05-03 삼성전자주식회사 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법
US9875803B2 (en) * 2015-09-10 2018-01-23 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
US10303536B2 (en) 2015-10-28 2019-05-28 Via Technologies, Inc. Non-volatile memory device and control method thereof
KR102437591B1 (ko) * 2015-12-03 2022-08-30 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법 및 메모리 컨트롤러의 동작 방법

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
미국등록특허 제9158670호(2015.10.13.) 1부.*
한국공개특허 제10-2013-0037555호(2013.04.16.) 1부.*
한국공개특허 제10-2014-0008705호(2014.01.22.) 1부.*
한국공개특허 제10-2015-0112074호(2015.10.07.) 1부.*
한국등록특허 제10-1678909호(2016.11.23.) 1부.*

Also Published As

Publication number Publication date
US10726931B2 (en) 2020-07-28
CN109726143B (zh) 2024-02-23
KR20190048310A (ko) 2019-05-09
CN109726143A (zh) 2019-05-07
US20190129655A1 (en) 2019-05-02

Similar Documents

Publication Publication Date Title
KR102457662B1 (ko) 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
CN107015917B (zh) 储存装置和其读取回收方法
KR102633029B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 읽기 방법
KR102285994B1 (ko) 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
TWI574270B (zh) 記憶體裝置之平均抹寫
KR102016041B1 (ko) 비휘발성 메모리 장치의 프로그램 방법
KR102387960B1 (ko) 컨트롤러 및 그것의 동작 방법
JP5196965B2 (ja) 不揮発性半導体記憶装置
US9875802B2 (en) Access line management in a memory device
KR20160087431A (ko) 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법
CN111798901A (zh) 页缓冲器、具有页缓冲器的存储器装置及其操作方法
KR102671402B1 (ko) 문턱전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
KR102387956B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템
KR20210024269A (ko) 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치
KR20160086474A (ko) 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
KR20220138961A (ko) 메모리 장치 및 메모리 장치의 동작 방법
KR20200138894A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 장치
US11709610B2 (en) Memory system, memory controller and operating method
KR20240059431A (ko) 메모리 장치 및 그 동작 방법
KR20220103853A (ko) 불휘발성 메모리 장치의 데이터 보존성 개선을 위한 장치 및 방법
KR20220013260A (ko) 페이지 버퍼 및 그 동작 방법
KR20220144102A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

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
GRNT Written decision to grant