KR20230000720A - 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 - Google Patents

안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 Download PDF

Info

Publication number
KR20230000720A
KR20230000720A KR1020210083186A KR20210083186A KR20230000720A KR 20230000720 A KR20230000720 A KR 20230000720A KR 1020210083186 A KR1020210083186 A KR 1020210083186A KR 20210083186 A KR20210083186 A KR 20210083186A KR 20230000720 A KR20230000720 A KR 20230000720A
Authority
KR
South Korea
Prior art keywords
block
safe
erase
safe erase
erase operation
Prior art date
Application number
KR1020210083186A
Other languages
English (en)
Inventor
김유환
이지화
이경덕
안호성
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020210083186A priority Critical patent/KR20230000720A/ko
Priority to US17/583,713 priority patent/US11941271B2/en
Priority to CN202210253717.1A priority patent/CN115527590A/zh
Publication of KR20230000720A publication Critical patent/KR20230000720A/ko

Links

Images

Classifications

    • 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/0653Monitoring storage devices or systems
    • 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
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure of nonvolatile memory cells

Abstract

안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법이 개시된다. 상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 다수의 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 구비하고, 상기 컨트롤러는, 상기 다수의 블록들에 대한 안전 소거 동작을 제어하고, 상기 다수의 블록들 중 제1 블록에 대한 호스트로부터의 안전 소거 요청에 응답하여 상기 제1 블록의 안전 소거 상태 및 상기 제1 블록의 열화 상태 중 적어도 하나를 판단함에 기초하여 상기 제1 블록에 대한 안전 소거 동작이 스킵되도록 제어 동작을 수행하는 안전 소거 제어 로직을 포함하는 것을 특징으로 한다.

Description

안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법{Storage device performing secure erase and Operating method thereof}
본 개시의 기술적 사상은 스토리지 장치에 관한 것이며, 더욱 상세하게는, 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법에 관한 것이다.
불휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. SSD 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
스토리지 장치가 다양한 분야에서 널리 이용됨에 따라, 스토리지 장치에 저장된 데이터의 보안성이 중요한 문제로 대두된다. 특히, 스토리지 장치가 채용된 컴퓨팅 시스템에서, 사용자가 데이터의 삭제를 요청하더라도 해당 정보가 물리적으로 스토리지 장치에 남아있을 수 있는 문제가 있다. 일반적인 경우에서, 데이터를 안전하게 삭제하기 위해 데이터를 물리적으로 소거하는 경우에, 동일 블록에 대한 물리적인 소거 동작의 빈도가 증가함에 따라 메모리 셀들의 열화가 발생됨과 함께 문턱전압 산포의 쉬프트로 인한 신뢰성 저하가 발생될 수 있는 문제가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 데이터의 안전 소거 기능을 제공함에 있어서, 안전 소거가 요청되는 블록의 다양한 특성을 판단함에 기초하여 블록에 대한 안전 소거 동작을 다양하게 제어함으로써, 메모리 셀들의 열화 및 데이터의 신뢰성 저하를 방지함에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 다수의 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 구비하고, 상기 컨트롤러는, 상기 다수의 블록들에 대한 안전 소거 동작을 제어하고, 상기 다수의 블록들 중 제1 블록에 대한 호스트로부터의 안전 소거 요청에 응답하여 상기 제1 블록의 안전 소거 상태 및 상기 제1 블록의 열화 상태 중 적어도 하나를 판단함에 기초하여 상기 제1 블록에 대한 안전 소거 동작이 스킵되도록 제어 동작을 수행하는 안전 소거 제어 로직을 포함하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치의 동작방법은, 호스트로부터 다수의 블록들 중 제1 블록에 대한 안전 소거 요청을 수신하는 단계와, 상기 제1 블록의 적어도 하나의 워드라인에 연결된 메모리 셀들의 문턱전압 산포에 기초하여 상기 제1 블록의 안전 소거 상태를 판단하는 단계 및 상기 판단 결과에 따라, 상기 제1 블록이 안전 소거가 수행되지 않은 상태를 갖는 경우, 상기 제1 블록에 대한 안전 소거 요청에 응답하여 상기 제1 블록에 대해 노멀한 동작 조건에 따라 안전 소거 동작을 수행하는 단계를 구비하고, 상기 제1 블록이 상기 안전 소거 상태를 갖는 경우, 상기 제1 블록에 대한 안전 소거 요청에 응답하여 상기 제1 블록에 대한 상기 안전 소거 동작이 스킵되는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 다른 일측면에 따른 스토리지 장치의 동작방법은, 호스트로부터 안전 소거 요청을 수신하는 단계와, 상기 안전 소거 요청에 응답하여 적어도 하나의 블록에 대해 안전 소거 동작이 수행됨에 따라, 다수의 블록들의 안전 소거 동작의 수행 횟수를 나타내는 카운팅 동작을 수행하는 단계와, 상기 호스트로부터 상기 다수의 블록들 중 제1 블록에 대한 안전 소거 요청을 수신하는 단계 및 상기 제1 블록에 대응하는 카운팅 값에 따라, 상기 제1 블록에 대한 상기 안전 소거 동작을 수행하거나 스킵하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법에 따르면, 안전 소거가 요청되는 블록의 안전 소거 상태 여부를 기초로 안전 소거 동작이 스킵될 수 있으므로, 동일한 블록에 대해 물리적인 소거 동작이 반복되는 경우가 방지될 수 있고, 이에 따라 메모리 셀들의 열화 가능성과 데이터의 신뢰성 저하 가능성을 감소할 수 있으며, 또한 메모리 동작과 관련한 레이턴시를 감소할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법에 따르면, 안전 소거가 요청되는 블록의 열화 정도를 판단함에 기초하여 적응적인 안전 소거 동작이 수행되므로, 특정 블록에 안전 소거 요청이 반복하여 수신되더라도 상기 특정 블록의 문턱전압 산포 상태를 최적화할 수 있는 효과가 있다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 도 1의 안전 소거 제어 로직의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 실시예들에 따른 불휘발성 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라 도 4의 셀 블록을 나타내는 사시도이다.
도 6 및 도 7은 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작방법을 나타내는 플로우차트이다.
도 8은 스토리지 장치의 각 상태에 따른 문턱전압 산포의 예를 나타내는 도면이다.
도 9a,b는 블록의 열화 정도를 판단하는 일 예를 나타내는 도면이다.
도 10은 본 개시의 예시적인 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 11 내지 도 13은 도 10에 도시된 스토리지 장치의 일 동작 예를 나타내는 도면이다.
도 14a,b는 본 개시의 예시적인 실시예에 따라, 적응적인 안전 소거 동작에서의 동작 조건의 일 예를 나타내는 도면이다.
도 15는 본 개시의 실시예들에 따른 스토리지 장치를 SSD 시스템에 적용한 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(11)를 포함하고, 스토리지 장치(100)는 컨트롤러(110) 및 불휘발성 메모리 장치(Non Volatile Memory Device, NVM(120))를 포함할 수 있다. 스토리지 장치(100)는 다양한 인터페이스를 통하여 호스트(11)와 통신할 수 있다. 예를 들어, 호스트(11)는 AP(Application Processor) 또는 SoC(System-On-Chip)를 포함할 수 있으며, 스토리지 장치(100)는 USB(Universal Serial Bus), MMC(multimedia card), eMMC(embeded MMC), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe(Nonvolatile Memory express) 등과 같은 다양한 인터페이스를 통해 호스트(11)와 통신할 수 있다.
불휘발성 메모리 장치(120)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드(Vertical NAND) 플래시 메모리, 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory), 상변화 메모리(Phase-Change Memory), 자기저항 메모리(Magnetoresistive Random Access Memory) 등과 같은 불휘발성 메모리를 포함할 수 있다.
컨트롤러(110)는 호스트(11)로부터의 각종 요청에 응답하여 불휘발성 메모리 장치(120)에 데이터를 기록하거나, 또는 불휘발성 메모리 장치(120)에 저장된 데이터를 독출하도록 제어 동작을 수행할 수 있다. 예컨대, 컨트롤러(110)는 불휘발성 메모리 장치(120)에 대한 데이터 기록 및 독출 동작을 제어하거나, 불휘발성 메모리 장치(120)에 저장된 데이터를 소거(Erase)하는 소거 동작을 제어할 수 있다.
불휘발성 메모리 장치(120)는 메모리 셀 어레이(Memory Cell Array, MCA)를 포함할 수 있고, 메모리 셀 어레이(MCA)는 다수의 메모리 블록들(BLK1 ~ BLKz)을 포함할 수 있다. 또한, 각각의 메모리 블록(예컨대, 제1 메모리 블록(BLK1))은 복수의 워드라인들과 하나 이상의 더미 워드라인을 포함할 수 있다. 예컨대, 각각의 워드라인에 연결되는 메모리 셀들은 하나의 페이지를 구성할 수 있고, 복수의 워드라인들에 대응하는 페이지에는 유저 데이터가 저장되는 반면에, 하나 이상의 더미 워드라인에 대응하는 페이지에는 데이터가 저장되지 않을 수 있다.
컨트롤러(110)는 다양한 단위들을 기초로 불휘발성 메모리 장치(120)에 대한 제어 동작을 수행할 수 있다. 일 예로서, 메모리 블록은 소거 단위이고, 페이지는 기록 단위 및 독출 단위일 수 있다. 컨트롤러(110)는 호스트(11)로부터의 다양한 요청들을 수행하기 위해 커맨드/어드레스(CMD/ADD)를 불휘발성 메모리 장치(120)로 제공할 수 있다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지, IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
본 개시의 예시적인 실시예에 따라, 스토리지 장치(100)는 호스트(11)로부터 데이터의 안전 소거 요청(Req_SE)을 수신하고, 이에 응답하여 스토리지 장치(100)는 사용자가 선택한 데이터를 복구가 불가능한 수준으로 안전하게 소거하는 기능을 지원한다. 예컨대, 스토리지 장치(100)는 다양한 종류의 인터페이스를 통해 호스트(11)로부터 안전 소거 요청(Req_SE)을 수신할 수 있고, 일 예로서 NVMe 인터페이스에서 정의되는 Secure Erase Settings(SES) 필드의 값을 기초로 안전 소거와 관련된 각종 요청을 수신할 수 있다.
호스트(11)로부터 안전 소거 요청(Req_SE)이 수신되면, 스토리지 장치(100)는 사용자에 의해 선택된 데이터를 물리적으로 소거하기 위한 일련의 처리 동작을 수행할 수 있다. 일 구현 예에 따라, 호스트(11)는 사용자가 안전하게 소거를 원하는 데이터를 선택하기 위한 구성을 포함할 수 있고, 일 예로서 호스트(11)에는 안전 소거의 요청을 생성할 수 있는 호스트 어플리케이션이 설치되고, 사용자는 호스트 어플리케이션을 실행하고 안전 소거를 필요로하는 데이터를 선택할 수 있다. 본 개시의 실시예들에 의해 데이터를 안전하게 소거하는 일련의 처리 동작들은 다양한 용어로서 정의될 수 있으나, 설명의 편의상 이하의 실시예들에서는 상기 일련의 처리 동작들이 안전 소거 동작에 포함되는 것으로 정의될 것이다.
본 개시의 예시적인 실시예에 따라, 컨트롤러(110)는 안전 소거 제어 로직(111)을 포함할 수 있다. 안전 소거 제어 로직(111)은 하드웨어로 구현되거나 또는 소프트웨어로 구현될 수 있다. 또는, 안전 소거 제어 로직(111)은 하드웨어와 소프트웨어의 조합으로 구현될 수도 있다. 일 예로서, 안전 소거 제어 로직(111)이 펌웨어를 포함하는 소프트웨어로 구현되는 경우, 컨트롤러(110)는 소프트웨어를 실행하는 하나 이상의 프로세서들(미도시) 및 소프트웨어를 저장하는 메모리(미도시)를 포함할 수 있으며, 안전 소거 제어 로직(111)은 소프트웨어 형태로 상기 메모리에 로딩될 수 있다. 일 실시예에 따라, 컨트롤러(110)는 FTL(Flash Translation Layer)를 포함하고, 안전 소거 제어 로직(111)의 기능의 적어도 일부는 FTL에 포함될 수 있다.
안전 소거 제어 로직(111)은 사용자에 의해 선택된 데이터를 안전하게 소거하기 위한 일련의 동작들을 제어할 수 있다. 예컨대, 호스트(11)로부터 하나 이상의 블록들에 대한 안전 소거 요청(Req_SE)이 수신되는 경우, 안전 소거 제어 로직(111)은 상기 하나 이상의 블록들에 저장된 데이터의 소거 동작을 제어할 수 있다.
제1 블록에 대한 안전 소거 동작을 참조하면, 안전 소거 제어 로직(111)은 제1 블록의 안전 소거 상태 및/또는 열화 여부(또는, 열화 정도)를 판단할 수 있고, 판단 결과에 따라 제1 블록에 대한 안전 소거 동작이 스킵되거나, 또는 제1 블록에 대한 안전 소거 동작을 수행되도록 제어 동작을 수행할 수 있다. 또한, 안전 소거 제어 로직(111)은 제1 블록의 열화 정도를 판단한 결과를 기초로, 제1 블록에 대해 노멀한 동작 조건을 기초로 안전 소거 동작을 수행할 지 또는 노멀한 동작 조건에 비해 변경된 동작 조건을 기초로 안전 소거 동작을 수행할 지 여부를 판단할 수 있다. 컨트롤러(110)는 안전 소거 제어 로직(111)의 제어 결과를 기초로 커맨드/어드레스(CMD/ADD) 및 안전 소거 제어신호(Ctrl_SE)를 불휘발성 메모리 장치(120)로 제공함으로써, 불휘발성 메모리 장치(120)에 저장된 데이터를 안전하게 소거하기 위한 동작을 제어할 수 있다.
일반적으로, 스토리지 장치(100)는 호스트(11)로부터 안전 소거 요청(Req_SE)이 수신될 때마다, 호스트(11)로부터 소거가 요청된 블록에 대해 물리적인 소거 동작을 반복하여 수행할 수 있다. 이때, 호스트(11)로부터 동일한 블록에 대해 다수의 안전 소거 요청(Req_SE)이 수신되는 경우에는, 상기 블록에 다수의 물리적인 소거 동작이 반복됨에 따라, 상기 블록의 메모리 셀들의 문턱전압 산포는 1 회의 안전 소거 동작이 수행된 경우의 문턱전압 산포에 비해 더 낮은 레벨로 변동될 수 있고, 이는 차후 상기 블록에 데이터를 기록하는 경우에 그 데이터 신뢰성을 저하하는 문제를 야기할 수 있다.
일 동작 예로서, 안전 소거 동작은 블록에 대해 소거 동작을 완료한 후에, 소거된 메모리 셀들의 문턱전압 레벨을 임의의 산포로 변동하기 위한 프로그램 동작(예컨대, 원 샷 프로그램)을 포함할 수 있다. 이 때, 상기 블록에 대해 다수의 안전 소거가 요청되는 경우에는, 상기 블록의 메모리 셀들의 문턱전압 산포가 상기 임의의 산포에 대응하는 문턱전압 레벨에 비해 더 낮은 방향(예컨대, 좌측)으로 쉬프트되는 현상이 발생될 수 있고, 이는 차후 상기 블록에 데이터를 저장하는 과정에서 그 신뢰성을 저하시키는 요인으로 작용할 수 있다. 또한, 안전 소거 동작의 경우 동작 시간을 단축시키기 위해 일반적인 소거 동작 및 프로그램 동작과는 다른 조건을 기반으로 수행될 수 있으며, 일 예로 루프(LooP) 제한이나 동작 전압이 변경될 수 있다. 그러나, 안전 소거 수행을 위한 가속 동작으로 인해 메모리 셀들의 수명 감소 및 열화를 크게 야기할 수 있다.
본 개시의 실시예들에 따라, 제1 블록에 대한 안전 소거 동작을 수행하기 전에 제1 블록의 상태를 판단하고 이에 기초하여 안전 소거 동작을 수행할 수 있다. 예컨대, 제1 블록이 안전 소거 상태가 아니라 유효한 데이터를 저장하고 있는 경우, 컨트롤러(110)는 제1 블록에 대해서는 노멀한 동작 조건에 기초하는 안전 소거 동작(예컨대, 노멀한 안전 소거 동작)을 수행함으로써 데이터가 물리적으로 소거되도록 제어 동작을 수행할 수 있다.
반면에, 제1 블록이 안전 소거 상태인 경우에는, 컨트롤러(110)는 제1 블록의 열화 정도를 판단함에 기초하여 제1 블록에 대해 안전 소거 동작이 스킵되거나, 또는 노멀한 안전 소거 동작에 비해 그 동작 조건을 변경하여 제1 블록에 대한 안전 소거 동작이 수행되도록 제어 동작을 수행할 수 있다. 예컨대, 컨트롤러(110)는 제1 블록의 메모리 셀들의 문턱전압 산포를 분석하거나, 제1 블록에 대해 수행된 안전 소거 횟수에 기초하여 제1 블록의 열화 정도를 판단할 수 있다. 만약, 제1 블록에 대해 안전 소거가 수행된 횟수가 상대적으로 적음에 따라 열화 정도가 작은 경우에는, 안전 소거 상태를 갖는 제1 블록에 대해서는 안전 소거 동작이 스킵될 수 있다.
반면에, 제1 블록에 대해 안전 소거가 수행된 횟수가 상대적으로 많음에 따라 열화 정도가 큰 경우에는, 제1 블록의 메모리 셀들의 문턱전압 산포 상태를 열화되지 않은 상태(예컨대, 안전 소거 동작이 수행된 후 문턱전압의 산포가 변경되지 않은 상태)로 만들기 위해 그 동작 조건이 변경된 안전 소거 동작이 수행될 수 있다. 예컨대, 동작 조건이 변경된 안전 소거 동작이 수행된 결과에 따른 문턱전압의 산포는 노멀한 안전 소거 동작이 수행된 결과에 따른 문턱전압의 산포에 비해 우측에 위치하도록(문턱전압의 레벨이 커지도록), 소거 동작 및 프로그램 동작 중 적어도 하나의 동작 조건이 변경될 수 있다.
상기와 같은 본 개시의 예시적인 실시예에 따르면, 소정의 조건에 따라 해당 블록에 대한 안전 소거 동작이 스킵될 수 있으므로 메모리 동작과 관련된 레이턴시를 감소시킬 수 있으며, 동일한 블록에 대해 중복하여 안전 소거 동작이 수행되는 것이 방지될 수 있음에 따라 메모리 셀들의 열화 및 수명 저하를 감소시킬 수 있다. 또한, 소정의 조건에 따라 그 동작 조건을 변경함에 의해 안전 소거 동작이 수행될 수 있으므로, 문턱전압 산포를 적절하게 위치시킬 수 있고 데이터의 신뢰성을 향상할 수 있다.
도 2는 도 1의 안전 소거 제어 로직(111)의 일 구현 예를 나타내는 블록도이다.
도 2를 참조하면, 안전 소거 제어 로직(111)은 소거 상태 판단기(111_1), 열화 판단기(111_2) 및 안전 소거 제어기(111_3)를 포함할 수 있다. 제1 블록에 대해 안전 소거 요청이 수신된 경우, 소거 상태 판단기(111_1)는 각종 수신되는 정보를 기초로 제1 블록이 안전 소거 상태에 해당하는 지를 판단할 수 있다. 예컨대, 소거 상태 판단기(111_1)는, 소정의 독출 레벨(이하, 제1 독출 레벨로 지칭함)을 기준으로 제1 블록의 적어도 하나의 페이지의 메모리 셀들 중 오프 셀(Off cell)의 개수를 카운팅한 제1 카운팅 값(CNT1)을 제1 기준값(Ref1)과 비교함으로써, 제1 블록의 안전 소거 상태 여부를 판단할 수 있다. 만약, 제1 블록이 유효한 데이터를 저장하고 있는 경우에는 다수의 문턱전압 산포들이 존재할 수 있고, 이에 따라 오프 셀의 개수를 카운팅한 제1 카운팅 값(CNT1)은 제1 기준값(Ref1)보다 클 수 있다. 반면에, 제1 블록이 안전 소거 상태인 경우에는, 제1 블록은 어느 하나의 특정한 문턱전압 산포를 가질 수 있고, 상기 제1 독출 레벨이 상기 특정한 문턱전압 산포에 비해 큰 값을 갖는 경우에는 제1 카운팅 값(CNT1)은 제1 기준값(Ref1)보다 작을 수 있다. 소거 상태 판단기(111_1)는 상기한 판단 결과를 기초로 제1 판단 신호(Det_E)를 출력할 수 있다.
한편, 열화 판단기(111_2)는 제2 독출 레벨을 기준으로 제1 블록의 적어도 하나의 페이지의 메모리 셀들 중 오프 셀(Off cell)의 개수를 카운팅한 제2 카운팅 값(CNT2)을 제2 기준값(Ref2)과 비교함으로써, 제1 블록의 열화 정도를 판단할 수 있다. 예컨대, 제1 블록에 대해 안전 소거 동작이 반복 수행됨에 따라 열화가 크게 발생된 경우 그 문턱전압 산포가 좌측으로 쉬프트될 수 있고, 이에 따라 제2 독출 레벨을 기준으로 오프 셀(Off cell)의 개수를 카운팅한 제2 카운팅 값(CNT2)은 열화 정도에 따라 달라질 수 있다. 열화 판단기(111_2)는 제2 카운팅 값(CNT2)과 제2 기준값(Ref2)을 비교한 결과를 기초로, 제1 블록의 열화 여부 또는 열화 정도를 나타내는 제2 판단 신호(Det_D)를 출력할 수 있다.
안전 소거 제어기(111_3)는 제1 판단 신호(Det_E)와 제2 판단 신호(Det_D)를 기초로 안전 소거 동작을 제어하기 위한 안전 소거 제어 신호(Ctrl_SE)를 출력할 수 있다. 예컨대, 전술한 실시예에 따라, 제1 블록이 유효한 데이터를 저장하고 있는 상태인 경우에는 제1 블록에 대해 안전 소거 동작이 수행되도록 제어하는 소거 제어 신호(Ctrl_SE)를 출력할 수 있다. 반면에, 제1 블록이 안전 소거 상태이면서 그 열화 정도가 작은 경우에는, 제1 블록에 대해 안전 소거 동작이 스킵되도록 제어하는 소거 제어 신호(Ctrl_SE)를 출력할 수 있다. 또한, 제1 블록이 안전 소거 상태이면서 그 열화 정도가 큰 경우에는, 제1 블록에 대해 노멀한 안전 소거 동작에 비해 변경된 동작 조건을 기초로 안전 소거 동작이 수행되도록 제어하는 소거 제어 신호(Ctrl_SE)를 출력할 수 있다.
한편, 도 2에 도시된 실시예에서는 오프 셀의 카운팅 결과를 기초로 안전 소거 상태 및 열화 여부를 판단하는 경우가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없이 온 셀의 카운팅 결과를 기초로 판단 동작이 수행될 수도 있을 것이다.
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3을 참조하면, 컨트롤러(200)는 호스트 인터페이스(210), 프로세서(220), 안전 소거 제어 모듈(230), ECC 회로(240), 버퍼(250) 및 메모리 인터페이스(260)를 포함할 수 있다. 또한, 도 3에는 도시되지 않았으나, 컨트롤러(200)는 각종 정보를 일시적으로 저장하기 위한 RAM 및 각종 정보를 불휘발성하게 저장하기 위한 ROM 등 다른 다양한 구성들을 더 포함할 수 있다. RAM 은 동작 메모리(Working memory)로서 이용될 수 있으며, 프로세서(220)는 RAM 에 로딩된 펌웨어(firmware)를 실행함으로써 메모리 컨트롤러(200)의 전반적인 동작을 제어할 수 있다. RAM 은 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나로 구현될 수 있다. 또한, 펌웨어(firmware)의 일 예로서 플래시 변환 계층(FTL)이 RAM에 로딩될 수 있으며, 플래시 변환 계층(Flash Translation Layer, FTL)을 구동함에 의해 플래시 메모리 동작에 관련된 다양한 기능들이 수행될 수 있다.
호스트 인터페이스(210)는 호스트와 전술한 실시예에 따른 다양한 종류의 인터페이스를 통해 호스트와 통신할 수 있다. 또한, 메모리 인터페이스(260)는 컨트롤러(200)와 불휘발성 메모리 장치(NVM) 사이의 물리적 연결을 제공한다. 예컨대 커맨드/어드레스 및 데이터 등이 메모리 인터페이스(260)를 통해 컨트롤러(200)와 불휘발성 메모리 장치(NVM) 사이에서 송수신될 수 있다. 호스트로부터 기록 요청되는 데이터와 불휘발성 메모리 장치(NVM)로부터 독출된 데이터는 버퍼(250)에 일시 저장될 수 있다. 또한, ECC 회로(240)는 기록 요청되는 데이터와 독출된 데이터에 대한 ECC 인코딩 및 디코딩 처리를 수행할 수 있고, 이에 따라 데이터의 에러를 검출 및 정정할 수 있다.
한편, 안전 소거 제어 모듈(230)은 전술한 실시예들에 따른 안전 소거 제어 동작을 제어하기 위한 구성들을 포함할 수 있고, 일 예로서 상기한 안전 소거 제어 동작이 소프트웨어 기반으로 수행되는 경우에는 안전 소거 제어 모듈(230)은 펌웨어로서 하나 이상의 프로그램들을 포함할 수 있고, 컨트롤러(200) 내의 RAM에 로딩되어 프로세서(220)에 의해 실행될 수 있다. 예컨대, 프로세서(220)가 안전 소거 제어 모듈(230)을 실행함에 따라, 안전 소거가 요청된 블록의 소거 상태 여부, 열화 여부 등이 판단될 수 있고, 또한 안전 소거 동작을 스킵하거나 또는 변경된 동작 조건을 기초로 안전 소거 동작이 수행되도록 제어 동작이 수행될 수 있을 것이다.
도 4는 본 개시의 실시예들에 따른 불휘발성 메모리 장치의 일 구현 예를 나타내는 블록도이다. 도 4는 불휘발성 메모리 장치로서 플래시 메모리 장치의 일 구현 예를 나타낸다.
도 4를 참조하면, 불휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 전압 생성기(320), 제어 로직(330), 로우 디코더(340) 및 페이지 버퍼(350)를 포함할 수 있다. 메모리 셀 어레이(310)는 복수의 블록들(BLK1 ~ BLKz)을 포함하고, 블록들(BLK1 ~ BLKz)의 메모리 셀들은 워드라인들(WL), 스트링 선택 라인들(SSL), 접지 선택 라인들(GSL) 및 비트라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(310)는 워드라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 로우 디코더(340)에 연결되고, 비트라인들(BL)을 통해 페이지 버퍼(350)에 연결될 수 있다. 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있으며, 일 예로서 각 메모리 셀은 멀티 레벨 셀(Multi Level Cell, MLC), 트리플 레벨 셀(Triple Level Cell, TLC) 또는 쿼드 레벨 셀(Quad Level Cell, QLC)에 해당할 수 있다.
제어 로직(330)은 컨트롤러로부터 수신한 커맨드(CMD), 어드레스(ADD) 및 제어 신호를 기초로, 메모리 셀 어레이(310)에 프로그램, 독출 및 소거 동작을 제어하기 위한 각종 내부 제어 신호를 출력할 수 있다. 일 예로서, 제어 로직(330)은 전압 생성기(320)에서 생성되는 각종 전압들의 레벨을 제어하기 위한 전압 제어신호(CTRL_vol)를 출력할 수 있으며, 로우 디코더(340)에 로우 어드레스(X-ADD)를 제공할 수 있으며, 페이지 버퍼(350)에 칼럼 어드레스(Y-ADD)를 제공할 수 있다. 또한, 전압 생성기(320)는 불휘발성 메모리 장치(300) 내에서 이용되는 각종 전압들을 생성할 수 있으며, 일 예로서 프로그램 동작에 이용되는 프로그램 전압(Vpgm), 소거 동작에 이용되는 소거 전압(Vers)을 생성할 수 있다.
예시적인 실시예에 따라, 제어 로직(330)은 컨트롤러로부터 안전 소거 제어신호(Ctrl_SE)를 수신하고, 이를 기초로 안전 소거 동작을 수행할 수 있다. 예컨대, 전술한 실시예들에 따라 컨트롤러는 블록에 대한 안전 소거 동작을 수행하거나 안전 소거 동작이 스킵되도록 안전 소거 제어신호(Ctrl_SE)를 제공할 수 있으며, 또한 변경된 동작 조건을 기초로 안전 소거 동작이 수행되도록 안전 소거 제어신호(Ctrl_SE)를 제공할 수 있다. 예컨대, 제어 로직(330)은 소거 제어신호(Ctrl_SE)를 기초로 프로그램 전압(Vpgm) 및/또는 소거 전압(Vers)의 레벨을 조절하기 위한 전압 제어신호(CTRL_vol)를 출력할 수 있을 것이다.
도 5는 본 개시의 일 실시예에 따라 도 4의 셀 블록(BLK1)을 나타내는 사시도이다.
도 5를 참조하면, 셀 블록(BLK1)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제2 수평 방향(HD2)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제2 수평 방향(HD2)을 따라 신장되는 복수의 절연막들(IL)이 수직 방향(VD)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 수직 방향(VD)을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 수평 방향(HD1)을 따라 순차적으로 배치되며, 수직 방향(VD)을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars)(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 '터널링 절연층'이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL0 ~ WL7)과 같은 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제1 수평 방향(HD1)으로 신장되고 제2 수평 방향(HD2)을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 ~ BL3)이 제공된다.
도 5에는 도시되지 않았으나, 셀 블록(BLK1)은 적어도 하나의 더미 워드라인을 포함할 수 있다. 예컨대, 셀 블록(BLK1)은 워드 라인들(WL0 ~ WL7)의 상부에 위치하는 하나 이상의 더미 워드라인(상부 더미 워드라인)과, 워드 라인들(WL0 ~ WL7)의 하부에 위치하는 하나 이상의 더미 워드라인(하부 더미 워드라인)을 더 포함할 수 있다. 만약, 더미 워드라인에 연결된 메모리 셀들의 열화되어 그 문턱전압이 좌측으로 쉬프트되는 경우, 데이터 프로그램 시 더미 워드라인에 연결된 메모리 셀들이 과도한 턴 온 상태를 가질 수 있고, 이에 따라 열화가 적은 경우에 비하여 상대적으로 큰 전류가 흐름에 따라, 워드 라인들(WL0 ~ WL7)에 연결된 메모리 셀들의 문턱전압 산포 특성이 저하되는 문제가 발생될 수 있다.
본 개시의 예시적인 실시예들에 따라, 변경된 동작 조건을 기초로 안전 소거 동작이 수행되는 경우, 상기 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포를 변동하기 위한 프로그램 동작이 안전 소거 동작에 더 포함될 수 있을 것이다.
도 6 및 도 7은 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작방법을 나타내는 플로우차트이다.
도 6을 참조하면, 스토리지 장치는 컨트롤러와 불휘발성 메모리 장치를 포함하고, 스토리지 장치는 호스트로부터의 요청에 응답하여 불휘발성 메모리 장치에 포함되는 하나 이상의 블록들에 대한 안전 소거 동작을 제어할 수 있다. 예시적인 실시예에서, 스토리지 장치는 호스트로부터의 요청에 응답하여 두 개 이상의 블록들에 대한 안전 소거 동작을 수행할 수 있으며, 제1 블록에 대한 안전 소거 동작이 수행되는 경우가 예시된다.
스토리지 장치는 호스트로부터 제1 블록에 대한 안전 소거 요청을 수신하고(S11), 제1 블록에 관련된 각종 정보들을 확인하거나 또는 제1 블록의 메모리 셀들의 문턱전압 산포를 분석함에 기반하여 제1 블록의 안전 소거 상태를 판단할 수 있다(S12). 예컨대, 제1 블록에 대해 기존에 안전 소거 동작이 수행된 경우에는, 제1 블록의 메모리 셀들은 어느 하나의 임의의 문턱전압 산포를 가질 수 있다. 만약 안전 소거 동작이 메모리 셀들에 대한 소거 동작 후에 임의의 문턱전압 상태로 프로그램을 수행하는 동작을 포함하는 경우에는, 제1 블록의 메모리 셀들의 문턱전압 산포는 소거 동작이 완료된 직후의 문턱전압 산포에 비해 우측에 위치할 수 있다. 반면에, 제1 블록에 대해 안전 소거 동작이 수행됨이 없이 제1 블록이 유효한 데이터를 저장하는 경우에는, 제1 블록의 메모리 셀들은 다수의 문턱전압 산포들을 가질 수 있다.
예시적인 실시예에서, 제1 블록의 하나 이상의 페이지들의 데이터를 독출하고 메모리 셀들의 오프 셀(또는, 온 셀)의 개수를 판단함을 기초로 제1 블록의 안전 소거 상태 여부가 판단될 수 있다. 예컨대, 특정한 독출 레벨을 갖는 전압을 기초로 제1 블록의 데이터를 독출한 경우, 제1 블록이 안전 소거 상태인 경우와 유효한 데이터를 저장한 상태에서 오프 셀(또는, 온 셀)의 개수는 서로 상이할 수 있다. 만약, 특정한 독출 레벨이 상기 안전 소거 동작에 따른 문턱전압 산포에 비해 그 레벨이 큰 경우에는, 제1 블록이 안전 소거 상태인 경우에는 오프 셀이 존재하지 않거나 그 개수가 상대적으로 적은 반면에, 제1 블록이 유효한 데이터를 저장하는 경우에는 오프 셀의 개수가 상대적으로 많을 수 있다.
상기와 같은 판단 결과를 기초로, 제1 블록에 대한 안전 소거 동작이 스킵될 수 있다(S13). 예컨대, 제1 블록이 안전 소거 상태인 경우에는 제1 블록에 대한 안전 소거 동작을 재차 수행함이 없이 스킵을 적용함으로써, 이미 안전 소거 상태를 갖는 제1 블록에 대해 안전 소거를 반복하여 수행함으로써 제1 블록이 열화되는 것을 감소 또는 방지할 수 있다. 반면에, 제1 블록이 유효한 데이터를 저장한 상태인 경우에는, 제1 블록에 대해 안전 소거 동작을 수행함으로써 제1 블록의 데이터가 물리적으로 소거될 수 있다.
한편, 도 7은 본 개시의 예시적인 실시예에 따라 적응적인(Adaptive) 안전 소거 동작이 수행되는 경우를 나타낸다. 전술한 실시예에 따라, 도 6에 도시된 안전 소거 동작을 노멀한 안전 소거 동작으로 정의할 때, 적응적인 안전 소거 동작은 노멀한 안전 소거 동작에 비해 소거 동작 및 프로그램 동작 중 적어도 하나의 동작 조건이 달리 설정될 수 있다. 이를 통해, 적응적인 안전 소거 동작을 수행함에 의한 문턱전압 산포의 변동은, 노멀한 안전 소거 동작을 수행함에 의한 문턱전압 산포의 변동과 상이할 수 있다.
도 7을 참조하면, 스토리지 장치는 호스트로부터 제1 블록에 대한 안전 소거 요청을 수신하고(S21), 전술한 실시예들에 따라 제1 블록의 안전 소거 상태를 판단하기 위한 일련의 동작들(예컨대, 오프 셀 카운팅 및 비교 동작 등)이 수행될 수 있다(S22). 상기 일련의 동작들을 기초로 제1 블록이 안전 소거 상태인지 여부가 확인될 수 있고(S23), 제1 블록이 안전 소거 상태가 아닌 경우(또는, 유효한 데이터를 저장한 상태인 경우)에는 제1 블록에 대한 안전 소거 동작이 수행될 수 있다(S24).
반면에, 제1 블록이 안전 소거 상태인 경우에는, 제1 블록의 열화 정도를 판단하기 위한 일련의 동작들이 수행될 수 있다(S25). 예컨대, 전술한 실시예들에 따라 제1 블록에 대해 많은 횟수의 안전 소거 동작이 반복하여 수행된 경우에는 제1 블록의 메모리 셀들의 문턱전압 산포의 쉬프트 정도가 더 클 수 있으며, 이에 따라 제1 블록의 메모리 셀들의 문턱전압 산포를 분석함을 기초로 제1 블록의 열화 정도가 판단될 수 있다.
제1 블록의 열화 정도가 소정의 임계값을 초과하는 지가 판단될 수 있고(S26), 제1 블록의 열화 정도가 소정의 임계값을 초과하지 않는 경우에는 제1 블록이 아직 많이 열화되지 않는 것으로 판단됨에 따라 제1 블록에 대한 안전 소거 동작이 스킵될 수 있다(S27). 반면에, 제1 블록의 열화 정도가 소정의 임계값을 초과하는 경우에는 제1 블록이 많이 열화된 것으로 판단됨에 따라, 다른 동작 조건을 기초로 안전 소거 동작이 수행될 수 있다(S28). 예컨대, 제1 블록이 많이 열화된 경우에는 제1 블록의 메모리 셀들의 문턱전압 산포가 좌측으로 쉬프트된 상태일 수 있고, 이에 따라 안전 소거 동작을 수행한 후의 제1 블록의 메모리 셀들의 문턱전압 산포가 열화되지 않은 산포(예컨대, 열화 정도가 임계값 미만을 갖는 산포)로 이동되도록 동작 조건이 설정될 수 있을 것이다.
이하에서는, 본 개시의 실시예들에 따른 구체적인 동작 예들이 설명된다.
도 8은 스토리지 장치의 각 상태에 따른 문턱전압 산포의 예를 나타내는 도면이다. 도 8에서는 스토리지 장치의 메모리 셀들이 트리플 레벨 셀(TLC)에 해당함에 따라 유저 데이터가 유효하게 저장된 경우에는 메모리 셀들이 8 개의 문턱전압 산포들을 포함하는 예가 도시된다. 또한, 본 개시의 실시예에서, 안전 소거 동작은 소거 동작과 함께 원 샷 프로그램 동작을 포함하는 경우가 예시된다.
도 8의 (a)에 도시된 바와 같이, 메모리 셀들에 유저 데이터가 유효하게 저장된 경우, 메모리 셀들은 서로 다른 문턱전압(Vth) 레벨을 갖는 다수의 문턱전압 산포들을 포함할 수 있다. 또한, 도 8의 (b)에 도시된 바와 같이, 메모리 셀들이 소거된 상태인 경우, 메모리 셀들은 소거 상태에 해당하는 하나의 문턱전압 산포를 가질 수 있다. 또한, 도 8의 (c)에 도시된 바와 같이, 메모리 셀들이 안전 소거된 상태인 경우, 메모리 셀들에 대해 소거 동작이 수행된 후 원 샷 프로그램 동작이 수행됨에 따라, 메모리 셀들은 소거 상태보다 큰 문턱전압 레벨을 갖는 하나의 문턱전압 산포를 가질 수 있다. 상기 원 샷 프로그램 동작이 적용된 안전 소거 동작이 수행된 블록의 경우, 차후 상기 블록에 대한 데이터 기록이 요청될 때, 상기 블록에 대해 소거 동작이 수행되고, 그 이후에 실제 유저 데이터에 상응하는 문턱전압 산포를 형성하기 위한 프로그램 동작이 수행될 수 있다.
전술한 실시예들에 따라 안전 소거가 요청된 블록(예컨대, 제1 블록)의 상태를 판단하기 위해, 소정의 값을 갖는 독출 레벨을 이용하여 제1 블록(또는, 제1 블록의 하나 이상의 페이지)에 대한 독출 동작을 수행하고, 독출된 데이터를 기초로 오프 셀 또는 온 셀의 개수를 카운팅하는 동작이 수행될 수 있다. 예컨대, 도 8에 도시된 예에서의 독출 레벨이 적용되는 경우, 제1 블록이 유저 데이터를 저장한 상태인 경우에는 오프 셀의 개수가 상대적으로 많은 반면에, 제1 블록이 기존에 안전 소거가 수행된 상태인 경우에는 오프 셀이 존재하지 않거나 또는 오프 셀의 개수가 상대적으로 적을 수 있다.
도 9a,b는 블록의 열화 정도를 판단하는 일 예를 나타내는 도면이다. 도 9a,b는 블록에 구비되는 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포의 예를 나타낸다.
도 9a를 참조하면, 더미 워드라인의 경우 안전 소거 과정에서 소거 동작이나 프로그램 동작이 수행되지 않으며, 이에 따라 더미 워드라인에 연결된 메모리 셀들은 어느 하나의 임의의 문턱전압(Vth) 산포를 가질 수 있다. 이 때, 블록에 대한 안전 소거 동작이 반복하여 수행됨에 따라, 더미 워드라인에 연결된 메모리 셀들에 간섭(interference)이 발생되고, 이에 따라 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포는 좌측으로 쉬프트될 수 있다. 예컨대, 블록에 대한 안전 소거 동작이 수행된 횟수가 N 회(N 은 2 이상의 정수)로 증가함에 따라, 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포의 쉬프트 양이 증가할 수 있다.
도 9b는 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포를 기초로 블록의 열화 정도를 판단하는 예를 나타낸다. 도 9b의 예에서는, 더미 워드라인에 대해 디폴트 독출 레벨을 기초로 하여, 독출 레벨을 변경시키면서 더미 워드라인에 연결된 메모리 셀들을 독출하고, 독출 결과에 따른 오프 셀의 카운팅이 수행되는 예가 도시된다.
도 9b에 도시된 바와 같이, 블록에 대해 수행된 안전 소거 횟수가 증가함에 따라 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포는 좌측으로 쉬프트될 수 있고, 특정한 독출 레벨을 기준으로 할 때 더미 워드라인에 연결된 메모리 셀들의 열화 정도에 따라 그 오프 셀의 개수가 다르게 카운팅될 수 있다. 일 예로서, 열화 정도를 판단함에 있어서, 디폴트 독출 레벨을 기준으로 하는 오프 셀의 개수와 그 값이 변경된 독출 레벨을 기준으로 하는 오프 셀의 개수의 차이가 소정의 값(일 예로서, 본 실시예에서 상기 소정의 값은 100 으로 정의됨) 이상이 되도록 하는 상기 독출 레벨을 판단함으로써, 블록에 대한 열화 정도가 판단될 수 있다.
일 예로서, 도 9b에 도시된 독출 레벨의 수치는 상기한 디폴트 독출 레벨과 관련된 오프셋 값에 해당할 수 있다. 블록에 대해 안전 소거가 수행되지 않은 경우에는, 도 9b에 도시된 예에서 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포는 가장 우측에 위치하고, 독출 레벨을 변경시키면서 독출 동작을 수행하는 과정에서 디폴트 독출 레벨보다 0.1 V 큰 독출 레벨을 이용하여 독출을 수행한 경우에 오프 셀의 개수의 차이가 100 개 이상의 값을 갖는 것으로 판단될 수 있다. 반면에, 블록에 대해 안전 소거가 수행됨에 따라 열화가 발생되는 경우에는, 오프 셀의 개수의 차이가 100 개 이상의 값을 갖게 되는 독출 레벨은 점차 감소하게 되고, 블록에 대해 1 회 안전 소거가 수행된 경우에는 디폴트 독출 레벨보다 0.3 V 작은 독출 레벨을 이용하여 독출을 수행한 경우에 오프 셀의 개수의 차이가 100 개 이상의 값을 가질 수 있다.
이와 유사하게, 블록에 대해 2 회 안전 소거가 수행된 경우에는 디폴트 독출 레벨보다 0.5 V 작은 독출 레벨을 이용하여 독출을 수행한 경우에 오프 셀의 개수의 차이가 100 개 이상의 값을 가질 수 있으며, 블록에 대해 3 회 안전 소거가 수행된 경우에는 디폴트 독출 레벨보다 0.7 V 작은 독출 레벨을 이용하여 독출을 수행한 경우에 오프 셀의 개수의 차이가 100 개 이상의 값을 가질 수 있으며, 블록에 대해 4 회 안전 소거가 수행된 경우에는 디폴트 독출 레벨보다 0.8 V 작은 독출 레벨을 이용하여 독출을 수행한 경우에 오프 셀의 개수의 차이가 100 개 이상의 값을 가질 수 있다.
상기와 같은 방식에 따라 판단된 독출 레벨을 기초로 더미 워드라인에 연결된 메모리 셀들의 열화 정도가 판단될 수 있다. 더미 워드라인에 연결된 메모리 셀들의 열화 정도가 큰 경우에는 이를 포함하는 블록의 열화 정도가 큰 것으로 판단될 수 있고, 판단 결과를 기초로 전술한 실시예들에 따른 적응적인 안전 소거 동작이 수행될 수 있다.
한편, 도 9a,b에 도시된 예에서는 어느 하나의 케이스에서의 수치가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없으며 다른 다양한 방식, 그리고 다른 다양한 수치들을 기초로 상기한 열화 정도가 판단될 수 있을 것이다. 예컨대, 독출 레벨을 변경함이 없이, 특정한 하나 또는 소수의 독출 레벨을 이용하여 오프 셀을 카운팅하고, 그 카운팅 값을 기초로 열화 정도가 판단될 수도 있을 것이다. 또한, 도 9a,b에 도시된 예에서는 더미 워드라인에 연결된 메모리 셀들의 오프 셀을 카운팅하는 경우가 예시되었으나, 본 개시의 실시예들은 더미 워드라인에 연결된 메모리 셀들의 온 셀을 카운팅하거나, 노멀 워드라인에 연결된 메모리 셀들의 오프 셀(또는, 온 셀)을 카운팅하는 경우를 포함할 수도 있을 것이다.
이하에서는, 본 개시의 실시예들에 따라, 플래그 및 안전 소거 횟수의 카운팅 동작에 기반하여 안전 소거 동작의 스킵 또는 적응적인 안전 소거 동작이 수행되는 경우가 예시된다. 도 10은 본 개시의 예시적인 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 10을 참조하면, 스토리지 장치(400), 또는 스토리지 장치에 구비되는 컨트롤러는 플래그 설정기(410), 플래그 저장 회로(420), 안전 소거 카운터(430) 및 안전 소거 제어 로직(440)을 포함할 수 있다. 도 10에 도시된 각종 구성 요소들은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있고, 도 10에 도시된 각종 구성 요소들 중 적어도 일부는 프로세서에 의해 실행 가능한 펌웨어로 구현될 수 있을 것이다.
플래그 설정기(410)는 안전 소거 요청이 수신되었음을 나타내는 안전 소거 정보(Info_SE)와 안전 소거 대상의 블록을 나타내는 블록 어드레스(ADD_B)를 수신할 수 있고, 이를 기초로 플래그 저장 회로(420)에 저장되는 플래그 값(Flag)을 변경하기 위한 플래그 제어신호(Ctrl_F)를 출력할 수 있다. 일 예로서, 스토리지 장치의 불휘발성 메모리 장치는 다수의 블록들을 포함할 수 있고, 상기 다수의 블록들 각각에 대해 안전 소거 동작이 수행되었는지 여부를 나타내는 플래그 값(Flag)이 플래그 저장 회로(420)에 저장될 수 있다. 예컨대, 다수의 블록들 중 제1 블록이 기존에 안전 소거 동작이 수행된 경우에는 제1 블록에 대응하는 플래그 값(Flag)은 1 로 설정되는 반면에, 제1 블록이 기존에 안전 소거 동작이 수행되지 않은 경우에는 제1 블록에 대응하는 플래그 값(Flag)은 0 으로 설정될 수 있다. 본 개시의 예시적인 실시예에서, 다수의 블록들에 대한 플래그 값들은 불휘발성 메모리 장치의 소정의 저장 영역(예컨대, 메타 영역)에 저장될 수 있고, 불휘발성 메모리 장치로부터 독출된 플래그 값(Flag)들이 플래그 저장 회로(420)에 로딩될 수도 있을 것이다.
한편, 안전 소거 카운터(430)는 상기한 다수의 블록들 각각에 대해 안전 소거 동작이 수행된 횟수를 카운팅하기 위한 다수의 카운터들을 포함할 수 있다. 예컨대, 안전 소거 카운터(430)는 안전 소거 정보(Info_SE)와 블록 어드레스(ADD_B)를 수신할 수 있고, 블록 어드레스(ADD_B)에 대응하는 블록의 안전 소거 동작의 횟수를 카운팅할 수 있다. 또한, 안전 소거 카운터(430)는 각각의 블록에 대해 수행된 카운팅 결과를 나타내는 카운팅 값(CNT)을 출력할 수 있다.
안전 소거 제어 로직(440)은 플래그 값(Flag)과 카운트 값(CNT)을 기초로 하여 전술한 실시예들에 따른 안전 소거 동작을 제어하기 위한 안전 소거 제어 신호(Ctrl_SE)를 출력할 수 있다. 일 예로서, 안전 소거 제어 로직(440)은 플래그 값(Flag)을 기초로 제1 블록이 기존에 안전 소거 동작이 수행되었는지 여부를 판단할 수 있으며, 이를 기초로 안전 소거 동작이 수행되거나 스킵되도록 안전 소거 제어 신호(Ctrl_SE)를 출력할 수 있다. 또한, 안전 소거 제어 로직(440)은 카운팅 값(CNT)을 기초로 제1 블록이 안전 소거 동작의 반복 수행에 의해 그 열화 정도가 증가하였는지 여부를 판단할 수 있으며, 이를 기초로 노멀한 안전 소거 동작이 수행되거나 적응적인 안전 소거 동작이 수행되도록 안전 소거 제어 신호(Ctrl_SE)를 출력할 수 있다.
한편, 도 10의 예에서는 스토리지 장치(400)가 플래그 값(Flag) 및 카운팅 값(CNT)을 함께 이용하여 안전 소거 동작을 제어하는 경우가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없다. 예컨대, 스토리지 장치(400)는 플래그 값(Flag)에 관련된 구성 요소만을 포함하거나, 또는 카운팅 값(CNT)에 관련된 구성 요소만을 포함할 수 있으며, 이를 기초로 안전 소거 동작을 제어할 수도 있을 것이다.
도 11 내지 도 13은 도 10에 도시된 스토리지 장치의 일 동작 예를 나타내는 도면이다. 도 11 내지 도 13에 도시된 실시예에서, 스토리지 장치는 플래그 값(Flag)에 관련된 구성 요소 및 카운팅 값(CNT)에 관련된 구성 요소 중 적어도 하나를 기초로 각종 판단 동작이 수행될 수 있을 것이다.
도 10 및 도 11을 참조하면, 제1 블록(BLK1), 제2 블록(BLK2) 및 제3 블록(BLK3)에 대한 플래그 값(Flag) 및 카운트 값(CNT)이 예시되며, 일 예로서 제1 블록(BLK1)에 대응하는 플래그 값(Flag)이 "0" 에 해당하거나, 또는 제1 블록(BLK1)에 대응하는 카운팅 값(CNT)이 "0" 에 해당하는 경우에는, 제1 블록(BLK1)에는 안전 소거 동작이 수행되지 않음과 함께, 제1 블록(BLK1)에는 유효한 유저 데이터가 저장되어 있음을 나타낼 수 있고, 제1 블록(BLK1)의 메모리 셀들은 다수의 문턱전압 산포들을 포함할 수 있다. 또한, 제1 블록(BLK1)에 포함된 더미 워드라인들에 연결된 메모리 셀들의 문턱전압은 어느 하나의 산포를 포함할 수 있으며, 상기 더미 워드라인들의 문턱전압 산포는 좌측으로 쉬프트되지 않았거나, 또는 좌측으로의 쉬프트 양이 매우 작을 수 있다.
한편, 제2 블록(BLK2)에 대응하는 플래그 값(Flag)이 "1"에 해당하거나, 또는 제2 블록(BLK2)에 대응하는 카운트 값(CNT)이 "1"에 해당하는 경우에는, 제2 블록(BLK2)에 대해 1 회 안전 소거 동작이 수행되었음을 나타낼 수 있고, 이에 따라 제2 블록(BLK2)의 메모리 셀들은 안전 소거 상태에 상응하는 문턱전압 산포를 포함할 수 있다. 또한, 제2 블록(BLK2)에 포함된 더미 워드라인들에 연결된 메모리 셀들의 문턱전압은, 안전 소거 동작이 수행되지 않은 제1 블록(BLK1)의 더미 워드라인들에 비해 좌측으로 쉬프트된 상태를 가질 수 있다.
한편, 제3 블록(BLK3)에 대응하는 카운트 값(CNT)이 2 이상의 값을 갖는"K"에 해당하는 경우에는, 제3 블록(BLK3)에 대해 2 회 이상의 안전 소거 동작이 수행되었음을 나타낼 수 있고, 이에 따라 제3 블록(BLK3)의 메모리 셀들은 안전 소거 상태에 상응하는 문턱전압 산포를 포함할 수 있다. 또한, 제3 블록(BLK3)의 경우 다수 회의 안전 소거 동작의 수행에 따라 그 열화 정도가 상대적으로 클 수 있으며, 이에 따라 제3 블록(BLK3)에 포함된 더미 워드라인들에 연결된 메모리 셀들의 문턱전압은, 안전 소거 동작이 수행되지 않은 제1 블록(BLK1)의 더미 워드라인들과 1 회의 안전 소거 동작이 수행된 제2 블록(BLK1)의 더미 워드라인들에 비해 좌측으로 더 쉬프트된 상태를 가질 수 있다.
도 12는 플래그 값에 기초하여 안전 소거 동작을 제어하는 예를 나타내는 플로우차트이다.
도 12를 참조하면, 제1 블록에 대해 안전 소거 요청이 수신됨에 따라(S31), 스토리지 장치 내에 저장된 다수 블록들 중 상기 제1 블록에 대응하는 플래그 값이 확인될 수 있다(S32). 상기 제1 블록에 대응하는 플래그 값이 1 인지의 여부가 판단될 수 있으며(S33), 만약 제1 블록에 대응하는 플래그 값이 1 이 아닌 경우(또는, 0 인 경우), 제1 블록은 기존에 안전 소거 동작이 수행되지 않은 블록(또는, 유효한 유저 데이터가 저장된 블록)에 해당함에 따라 제1 블록에 대해 안전 소거 동작이 수행될 수 있다(S34). 반면에, 제1 블록에 대응하는 플래그 값이 1 인 경우에는, 제1 블록은 기존에 안전 소거 동작이 수행된 블록에 해당함에 따라 제1 블록에 대해 안전 소거 동작이 스킵될 수 있다(S35).
도 13은 카운팅 값에 기초하여 안전 소거 동작을 제어하는 예를 나타내는 플로우차트이다.
도 13을 참조하면, 제1 블록에 대해 안전 소거 요청이 수신됨에 따라(S41), 스토리지 장치 내의 다수 블록들에 대해 수행된 안전 소거 동작의 횟수를 나타내는 카운팅 값들 중 상기 제1 블록에 대응하는 카운팅 값이 확인될 수 있다(S42). 상기 제1 블록에 대응하는 카운팅 값이 기준 값 이상인지의 여부가 판단될 수 있으며(S43), 만약 제1 블록에 대응하는 카운팅 값이 기준 값 미만인 경우, 제1 블록은 기존에 안전 소거 동작이 수행되지 않았거나 또는 적은 횟수의 안전 소거 동작만이 수행된 블록에 해당함에 따라, 제1 블록에 대해 안전 소거 동작(예컨대, 노멀한 안전 소거 동작)이 수행될 수 있다(S44). 반면에, 제1 블록에 대응하는 카운팅 값이 기준 값 이상인 경우에는, 제1 블록은 상대적으로 많은 횟수의 안전 소거 동작이 수행된 블록에 해당함에 따라, 제1 블록에 대해서는 전술한 실시예에서의 적응적인 안전 소거 동작에 따라, 다른 동작 조건을 기초로 안전 소거 동작이 수행될 수 있다(S45).
한편, 예시적인 실시예에서, 상기한 다른 동작 조건을 기초로 안전 소거 동작이 수행된 이후에는 상기 제1 블록의 열화 정도가 감소하게 되고, 이에 따라 카운팅 값이 리셋되거나 또는 변경될 수 있다. 예컨대, 상기한 다른 동작 조건을 기초로 안전 소거 동작이 수행됨에 따라, 제1 블록이 1 회의 안전 소거 동작이 수행된 경우에 상응하는 문턱전압 산포를 갖는 경우, 상기 제1 블록에 대응하는 카운팅 값은 1로 변경될 수 있을 것이다.
도 14a,b는 본 개시의 예시적인 실시예에 따라, 적응적인 안전 소거 동작에서의 동작 조건의 일 예를 나타내는 도면이다. 도 14a에서는 안전 소거 횟수의 카운트 값에 따라 안전 소거 동작에서의 동작 조건으로서 소거 전압, 프로그램 전압 및 소거/프로그램 시간이 조절되는 경우가 예시된다. 또한, 도 14a에 도시된 수치는 노멀한 안전 소거 동작에서의 소거 전압, 프로그램 전압 및 소거/프로그램 시간과의 차이를 나타내는 오프셋 값에 해당할 수 있다. 또한, 도 14b의 예에서는, 적응적인 안전 소거 동작에서 더미 워드라인에 대한 재프로그램 동작이 수행되는 경우가 예시된다.
도 14a를 참조하면, 적응적인 안전 소거 동작에서 소거 동작 및 프로그램 동작이 수행될 수 있으며, 또한 소거 동작 및 프로그램 동작은 각각 소정의 시간 동안(또는, 소정 횟수의 루프 동안) 수행될 수 있다. 전술한 본 개시의 실시예에서와 같이, 적응적인 안전 소거 동작을 수행함에 있어서, 노멀한 안전 소거 동작을 수행함에 비해 메모리 셀들의 문턱전압 산포가 우측에 위치하도록 동작 조건이 설정될 수 있다.
일 예로서, 전술한 바와 같이 제1 블록에 대해 수행된 안전 소거 동작의 횟수가 증가함에 따라, 메모리 셀들의 문턱전압 산포의 좌측으로의 쉬프트 정도가 증가될 수 있다. 이에 따라, 안전 소거 동작의 횟수가 증가할수록, 안전 소거 동작이 수행된 후의 메모리 셀들의 문턱전압 산포가 노멀한 안전 소거 동작이 수행된 경우에 비해 우측에 위치하도록 동작의 동작 조건이 설정될 수 있다.
일 예로서, 노멀한 안전 소거 동작에서의 소거 전압(Vers), 소거 시간, 프로그램 전압(Vpgm) 및 프로그램 시간의 값을 디폴트 값으로 정의할 때, 안전 소거 동작의 횟수에 따라 오프셋 값이 다르게 설정될 수 있다. 예컨대, 제1 블록에 대해 기존에 안전 소거 동작이 수행되지 않은 경우(카운팅 값이 0인 경우)에는, 디폴트 값에 상응하는 소거 전압(Vers), 소거 시간, 프로그램 전압(Vpgm) 및 프로그램 시간에 따라 안전 소거 동작이 수행될 수 있다.
반면에, 안전 소거 동작이 수행될 블록의 카운팅 값이 증가함에 따라, 소거 전압(Vers)의 레벨이 디폴트 값에 비해 감소될 수 있다. 예컨대, 도 14a의 예에서는 소거 전압(Vers)의 레벨이 디폴트 값에 비해 100mV 또는 200 mV 감소되는 경우가 예시되며, 소거 전압(Vers)의 레벨이 감소함에 따라 소거 동작에서 메모리 셀들의 문턱전압 산포가 좌측으로 이동되는 정도가 감소될 수 있다. 또한, 안전 소거 동작이 수행될 블록의 카운팅 값이 증가함에 따라 소거 시간(또는, 소거 루프 횟수)이 감소될 수 있으며, 소거 시간이나 소거 루프 횟수가 감소함에 따라 소거 동작에서 메모리 셀들의 문턱전압 산포가 좌측으로 이동되는 정도가 감소될 수 있다.
또한, 안전 소거 동작이 수행될 블록의 카운팅 값이 증가함에 따라, 프로그램 전압(Vpgm)의 레벨이 디폴트 값에 비해 증가될 수 있다. 예컨대, 도 14a의 예에서는 프로그램 전압(Vpgm)의 레벨이 디폴트 값에 비해 50mV 또는 100 mV 증가되는 경우가 예시되며, 프로그램 전압(Vpgm)의 레벨이 증가함에 따라 프로그램 동작에서 메모리 셀들의 문턱전압 산포가 우측으로 이동되는 정도가 증가될 수 있다. 또한, 안전 소거 동작이 수행될 블록의 카운트 값이 증가함에 따라 프로그램 시간(또는, 프로그램 루프 횟수)이 증가될 수 있으며, 프로그램 시간이나 프로그램 루프 횟수가 증가함에 따라 프로그램 동작에서 메모리 셀들의 문턱전압 산포가 우측으로 이동되는 정도가 증가될 수 있다.
한편, 도 14b는 적응적인 안전 소거 동작이 수행되는 경우 더미 워드라인에 대한 재프로그램 동작이 더 수행되는 경우를 나타낸다.
일 예로서, 제1 블록에 대응하는 카운팅 값이 K 에 해당함에 따라 상기 제1 블록에 대해 적응적인 안전 소거 동작이 수행되는 경우, 상기 제1 블록에 포함되는 더미 워드라인에 연결된 메모리 셀들에 대한 재프로그램 동작이 수행될 수 있다. 즉, 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포가 좌측으로 많이 쉬프트되었음에 따라, 더미 워드라인에 연결된 메모리 셀들을 재프로그램함으로써 상기 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포가 제1 블록에 대해 안전 소거 동작이 수행되지 않은 경우(또는, 카운팅 값이 0 인 경우)에서의 문턱전압 산포와 동일하거나 이에 유사하도록 재프로그램 동작이 수행될 수 있다. 즉, 본 개시의 예시적인 실시예에서, 적응적인 안전 소거 동작은 노멀 워드라인들에 대한 소거 동작 및 원 샷 프로그램 동작과 함께, 더미 워드라인에 대한 재프로그램 동작을 포함할 수 있다.
도 14a,b에 도시된 예에서는 어느 하나의 케이스에서의 수치가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없으며 다른 다양한 방식, 그리고 다른 다양한 수치들을 기초로 적응적인 안전 소거 동작이 수행될 수 있을 것이다. 또한, 도 14a,b에 도시된 예에서는 소거 전압(Vers) 및 프로그램 전압(Vpgm)의 레벨 등의 동작 조건들이 예시되었으나, 본 개시의 실시예에 따르면 검증 전압의 레벨을 조절하는 등 다른 다양한 요소들을 조절함으로써 적응적인 안전 소거 동작이 수행될 수도 있을 것이다.
도 15는 본 개시의 실시예들에 따른 스토리지 장치를 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 15를 참조하면, SSD 시스템(500)은 호스트(510) 및 SSD(520)를 포함할 수 있다. SSD(520)는 신호 커넥터를 통해 호스트(510)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력받을 수 있다. SSD(520)는 SSD 컨트롤러(521), 보조 전원 장치(522) 및 불휘발성 메모리 장치들(523_1 ~ 523_n)을 포함할 수 있다. 불휘발성 메모리 장치들(523_1 ~ 523_n)은 NAND 플래시 메모리를 포함할 수 있다. 이 때, SSD(520)는 도 1 내지 도 14를 참조하여 상술된 실시예들을 이용하여 구현될 수 있다. 즉, SSD(520)에 구비되는 SSD 컨트롤러(521)는 전술한 실시예들에 따른 안전 소거 제어 로직(521_1)를 포함할 수 있고, 안전 소거 제어 로직(521_1)은 호스트(510)로부터의 안전 소거 요청에 응답하여 불휘발성 메모리 장치들(523_1 ~ 523_n)에 대한 안전 소거 동작을 제어할 수 있다. 또한, 전술한 실시예들에 따라, 안전 소거 제어 로직(521_1)은 불휘발성 메모리 장치들(523_1 ~ 523_n)의 블록들의 문턱전압 산포 상태, 플래그 값, 카운팅 값 등을 기초로, 안전 소거 동작이 스킵되거나 적응적인 안전 소거 동작이 수행되도록 제어 동작을 수행할 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 다수의 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 구비하고,
    상기 컨트롤러는,
    상기 다수의 블록들에 대한 안전 소거 동작을 제어하고, 상기 다수의 블록들 중 제1 블록에 대한 호스트로부터의 안전 소거 요청에 응답하여 상기 제1 블록의 안전 소거 상태 및 상기 제1 블록의 열화 상태 중 적어도 하나를 판단함에 기초하여 상기 제1 블록에 대한 안전 소거 동작이 스킵되도록 제어 동작을 수행하는 안전 소거 제어 로직을 포함하는 것을 특징으로 하는 스토리지 장치.
  2. 제1항에 있어서, 상기 컨트롤러는,
    상기 제1 블록의 메모리 셀들의 문턱전압 산포를 판단한 결과에 따라, 상기 제1 블록이 유효한 데이터를 저장한 상태인 경우에 상기 제1 블록에 대해 상기 안전 소거 동작을 수행하는 것을 특징으로 하는 스토리지 장치.
  3. 제2항에 있어서, 상기 컨트롤러는,
    상기 제1 블록의 메모리 셀들의 문턱전압 산포를 판단한 결과에 따라, 상기 제1 블록이 기존에 안전 소거가 수행된 상태를 갖는 경우에 상기 제1 블록에 대해 상기 안전 소거 동작을 스킵하는 것을 특징으로 하는 스토리지 장치.
  4. 제1항에 있어서, 상기 컨트롤러는,
    상기 제1 블록의 적어도 하나의 제1 워드라인에 연결된 메모리 셀들의 문턱전압 산포가 좌측으로 쉬프트된 정도에 따라 상기 열화 상태를 판단하고, 상기 제1 블록이 열화된 경우 상기 제1 블록에 대한 상기 안전 소거 동작에서의 동작 조건을 변경하는 것을 특징으로 하는 스토리지 장치.
  5. 제4항에 있어서,
    상기 제1 블록은 적어도 하나의 더미 워드라인과 다수의 워드라인들을 포함하고,
    상기 제1 워드라인은 상기 적어도 하나의 더미 워드라인인 것을 특징으로 하는 스토리지 장치.
  6. 제4항에 있어서,
    상기 안전 소거 동작은, 상기 제1 블록의 메모리 셀들에 대한 소거 동작과, 상기 소거 동작이 수행된 후 상기 제1 블록의 메모리 셀들을 임의의 문턱전압 상태로 프로그램하는 프로그램 동작을 포함하고,
    상기 컨트롤러는, 상기 제1 블록의 열화 상태가 증가함에 따라, 상기 소거 동작에서 소거 전압의 레벨을 감소시키거나 상기 프로그램 동작에서 프로그램 전압의 레벨을 증가시키는 것을 특징으로 하는 스토리지 장치.
  7. 제1항에 있어서,
    상기 컨트롤러는, 상기 다수의 블록들의 안전 소거 상태들을 나타내는 플래그 값들을 저장하는 플래그 저장 회로를 더 구비하고,
    상기 다수의 블록들 중 안전 소거가 수행된 블록에 대응하는 플래그 값은 제1 값을 가지고, 안전 소거가 수행되지 않은 블록에 대응하는 플래그 값은 제2 값을 가지며,
    상기 안전 소거 제어 로직은, 상기 제1 블록에 대응하는 플래그 값을 판단함에 기초하여 상기 제1 블록의 안전 소거 상태를 판단하는 것을 특징으로 하는 스토리지 장치.
  8. 제1항에 있어서,
    상기 컨트롤러는, 상기 다수의 블록들 각각에 대해 안전 소거 동작이 수행된 횟수를 카운팅하는 안전 소거 카운터를 더 구비하고,
    상기 안전 소거 제어 로직은, 상기 제1 블록에 대응하는 카운팅 값을 판단함에 기초하여 상기 제1 블록의 열화 상태를 판단하는 것을 특징으로 하는 스토리지 장치.
  9. 스토리지 장치의 동작방법에 있어서, 상기 스토리지 장치는 컨트롤러와 다수의 블록들을 포함하는 불휘발성 메모리 장치를 구비하고,
    호스트로부터 상기 다수의 블록들 중 제1 블록에 대한 안전 소거 요청을 수신하는 단계;
    상기 제1 블록의 적어도 하나의 워드라인에 연결된 메모리 셀들의 문턱전압 산포에 기초하여 상기 제1 블록의 안전 소거 상태를 판단하는 단계; 및
    상기 판단 결과에 따라, 상기 제1 블록이 안전 소거가 수행되지 않은 상태를 갖는 경우, 상기 제1 블록에 대한 안전 소거 요청에 응답하여 상기 제1 블록에 대해 노멀한 동작 조건에 따라 안전 소거 동작을 수행하는 단계를 구비하고,
    상기 제1 블록이 상기 안전 소거 상태를 갖는 경우, 상기 제1 블록에 대한 안전 소거 요청에 응답하여 상기 제1 블록에 대한 상기 안전 소거 동작이 스킵되는 것을 특징으로 하는 스토리지 장치의 동작방법.
  10. 제9항에 있어서,
    상기 안전 소거 상태에서 상기 메모리 셀들의 문턱전압 산포는 어느 하나의 임의의 산포를 가지며,
    상기 안전 소거 상태를 판단하는 단계는, 소정의 독출 레벨을 기준으로 상기 메모리 셀들 중 오프 셀 또는 온 셀의 개수를 카운팅하고, 카운팅 값을 소정의 기준 값과 비교하는 동작을 포함하는 것을 특징으로 하는 스토리지 장치의 동작방법.
KR1020210083186A 2021-06-25 2021-06-25 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 KR20230000720A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210083186A KR20230000720A (ko) 2021-06-25 2021-06-25 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법
US17/583,713 US11941271B2 (en) 2021-06-25 2022-01-25 Storage devices performing secure erase and operating methods thereof
CN202210253717.1A CN115527590A (zh) 2021-06-25 2022-03-15 执行安全擦除的存储设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210083186A KR20230000720A (ko) 2021-06-25 2021-06-25 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법

Publications (1)

Publication Number Publication Date
KR20230000720A true KR20230000720A (ko) 2023-01-03

Family

ID=84540970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210083186A KR20230000720A (ko) 2021-06-25 2021-06-25 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법

Country Status (3)

Country Link
US (1) US11941271B2 (ko)
KR (1) KR20230000720A (ko)
CN (1) CN115527590A (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101049A1 (en) 2005-10-17 2007-05-03 Simpletech, Inc. Redundant purge for flash storage device
JP5658574B2 (ja) 2011-01-25 2015-01-28 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
US9293194B2 (en) 2011-01-27 2016-03-22 Apple Inc. Programming and erasure schemes for analog memory cells
KR20140020154A (ko) * 2012-08-08 2014-02-18 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 소거 방법
US9317363B2 (en) 2013-11-06 2016-04-19 International Business Machines Corporation Management of a secure delete operation in a parity-based system
US9633738B1 (en) * 2016-06-28 2017-04-25 Sandisk Technologies Llc Accelerated physical secure erase
KR102609177B1 (ko) 2016-07-04 2023-12-06 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법 및 불휘발성 메모리 장치의 동작 방법
KR20180093153A (ko) 2017-02-09 2018-08-21 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
KR102387960B1 (ko) 2018-07-23 2022-04-19 삼성전자주식회사 컨트롤러 및 그것의 동작 방법

Also Published As

Publication number Publication date
CN115527590A (zh) 2022-12-27
US11941271B2 (en) 2024-03-26
US20220413701A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR102058664B1 (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR102314136B1 (ko) 비휘발성 메모리 장치, 메모리 시스템 및 그것의 동작 방법
KR102085127B1 (ko) 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치
KR20130033017A (ko) 불휘발성 메모리 장치의 동작 방법
US20140043901A1 (en) Nonvolatile memory device and operating method with variable memory cell state definitions
KR20140031556A (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
US9361221B1 (en) Write amplification reduction through reliable writes during garbage collection
KR20200129467A (ko) 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치
KR20160150553A (ko) 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법
KR20220105303A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210079555A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
US10679705B2 (en) Controller and operating method thereof
US11630764B2 (en) Memory system, memory controller, and method for operating same
US11869598B2 (en) Nonvolatile memory devices having adaptive write/read control to improve read reliability and methods of operating the same
KR20220049397A (ko) 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US11061615B2 (en) Memory system, memory controller and operating method thereof
KR20230000720A (ko) 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법
US11656790B2 (en) Memory system, memory controller, and operation method of memory system
US20230195367A1 (en) Memory system, memory controller, and operation method of memory system
US11636007B2 (en) Memory system and operating method thereof for flushing data in data cache with parity