KR20230000690A - 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 - Google Patents
적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 Download PDFInfo
- Publication number
- KR20230000690A KR20230000690A KR1020210083119A KR20210083119A KR20230000690A KR 20230000690 A KR20230000690 A KR 20230000690A KR 1020210083119 A KR1020210083119 A KR 1020210083119A KR 20210083119 A KR20210083119 A KR 20210083119A KR 20230000690 A KR20230000690 A KR 20230000690A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- erase
- safe
- read
- storage device
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 65
- 238000011017 operating method Methods 0.000 title description 2
- 230000015654 memory Effects 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000009826 distribution Methods 0.000 claims description 50
- 230000006866 deterioration Effects 0.000 claims description 33
- 230000015556 catabolic process Effects 0.000 claims description 25
- 238000006731 degradation reaction Methods 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 8
- 239000010410 layer Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 11
- 238000013403 standard screening design Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 239000000758 substrate Substances 0.000 description 7
- 230000007423 decrease Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 239000012535 impurity Substances 0.000 description 2
- 239000011810 insulating material Substances 0.000 description 2
- 229910052814 silicon oxide Inorganic materials 0.000 description 2
- 239000002210 silicon-based material Substances 0.000 description 2
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 다수의 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 구비하고, 상기 컨트롤러는, 호스트로부터의 안전 소거 요청에 응답하여 상기 다수의 블록들에 대한 안전 소거 동작을 제어하고, 상기 다수의 블록들 중 적어도 2 회 이상 안전 소거 동작이 요청된 블록에 대응하는 플래그 값이 제1 값을 갖도록 상기 다수의 블록들에 대응하는 플래그 값들을 설정하는 안전 소거 제어 로직 및 상기 호스트로부터 기록 또는 독출이 요청된 제1 블록에 대해, 상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에 상기 기록 또는 독출 동작 중 적어도 하나의 동작 조건이 노멀한 기록 또는 독출 동작에 비해 변경되도록 제어 동작을 수행하는 적응 제어 로직을 포함하는 것을 특징으로 한다.
Description
본 개시의 기술적 사상은 스토리지 장치에 관한 것이며, 더욱 상세하게는, 안전 소거 동작을 수행하는 컨트롤러, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. SSD 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있으며, 스토리지 장치는 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
스토리지 장치가 다양한 분야에서 널리 이용됨에 따라, 스토리지 장치에 저장된 데이터의 보안성이 중요한 문제로 대두된다. 특히, 스토리지 장치가 채용된 컴퓨팅 시스템에서, 사용자가 데이터를 삭제하더라도 해당 정보가 물리적으로 스토리지 장치에 남아있을 수 있는 문제가 있다. 일반적인 경우에서, 데이터를 안전하게 삭제하기 위해 데이터를 물리적으로 소거하는 경우에, 그 소거하는 빈도가 증가함에 따라 문턱전압 산포의 특성이 열화될 수 있으며, 이 경우 상기 블록에 데이터를 프로그램하거나 데이터를 독출하는 과정에서 그 신뢰성이 저하될 수 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 데이터의 안전 소거 기능을 제공함에 있어서, 안전 소거 동작이 반복되어 열화된 블록의 데이터 신뢰성 저하를 감소할 수 있는 스토리지 장치 및 그 동작방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 다수의 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 구비하고, 상기 컨트롤러는, 호스트로부터의 안전 소거 요청에 응답하여 상기 다수의 블록들에 대한 안전 소거 동작을 제어하고, 상기 다수의 블록들 중 적어도 2 회 이상 안전 소거 동작이 요청된 블록에 대응하는 플래그 값이 제1 값을 갖도록 상기 다수의 블록들에 대응하는 플래그 값들을 설정하는 안전 소거 제어 로직 및 상기 호스트로부터 기록 또는 독출이 요청된 제1 블록에 대해, 상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에 상기 기록 또는 독출 동작 중 적어도 하나의 동작 조건이 노멀한 기록 또는 독출 동작에 비해 변경되도록 제어 동작을 수행하는 적응 제어 로직을 포함하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치의 동작방법은, 호스트로부터의 안전 소거 요청에 응답하여 불휘발성 메모리 장치의 다수의 블록들에 대한 안전 소거 동작을 수행하는 단계와, 상기 다수의 블록들 중 적어도 2 회 이상 연속하여 안전 소거 동작이 요청된 블록에 대응하는 플래그 값이 제1 값을 갖도록 다수의 블록들에 대응하는 플래그 값들을 설정하는 단계 및 상기 호스트로부터 기록 또는 독출이 요청된 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에, 노멀한 기록 또는 독출 동작에 비해 적어도 하나의 동작 조건을 변경하여 상기 제1 블록에 대한 기록 또는 독출 동작을 수행하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 다른 일측면에 따른 스토리지 장치의 동작방법은, 호스트로부터의 안전 소거 요청에 응답하여 불휘발성 메모리 장치의 다수의 블록들에 대한 안전 소거 동작을 수행하는 단계와, 상기 다수의 블록들의 상기 안전 소거 동작이 수행된 횟수를 나타내는 카운팅 동작을 수행하는 단계 및 상기 호스트로부터 기록 요청된 제1 블록에 대한 카운팅 값을 기초로, 상기 제1 블록에 대해 노멀한 기록 동작 및 동작 조건이 변경된 기록 동작 중 어느 하나를 수행하는 단계를 구비하고, 상기 호스트로부터의 기록 요청에 응답하여 상기 제1 블록에 대해 소거 동작 및 프로그램 동작이 순차적으로 수행되고, 상기 동작 조건의 변경에 따라 소거 전압 및 프로그램 전압 중 적어도 하나가 변경되는 것을 특징으로 한다.
본 발명의 기술적 사상의 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법에 따르면, 안전 소거가 반복 수행된 블록의 열화 정도에 따라 적응적인 기록 및 독출 동작을 수행할 수 있으므로, 데이터의 신뢰성을 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법에 따르면, 안전 소거가 반복 수행된 블록의 열화 정도에 따라 최적의 독출 레벨을 이용하여 독출 동작이 수행될 수 있으므로, 에러 정정을 위한 방어 코드로 진입하는 빈도가 감소될 수 있고, 이에 따라 메모리 동작의 레이턴시를 감소할 수 있는 효과가 있다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 도 1의 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 실시예들에 따른 불휘발성 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라 도 4의 셀 블록(BLK1)을 나타내는 사시도이다.
도 6 및 도 7은 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작방법을 나타내는 플로우차트이다.
도 8은 스토리지 장치의 각 상태에 따른 문턱전압 산포의 예를 나타내는 도면이다.
도 9a,b는 블록의 열화 정도를 판단하는 일 예를 나타내는 도면이다.
도 10은 본 개시의 다른 예시적인 실시예에 따른 컨트롤러를 나타내는 블록도이다.
도 11 및 도 12a,b는 독출 동작에서의 적응 제어 방법을 나타낸다.
도 13 내지 도 15는 기록 동작에서의 적응 제어 방법을 나타낸다.
도 16a,b는 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작 예를 나타내는 도면이다.
도 2는 도 1의 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 실시예들에 따른 불휘발성 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라 도 4의 셀 블록(BLK1)을 나타내는 사시도이다.
도 6 및 도 7은 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작방법을 나타내는 플로우차트이다.
도 8은 스토리지 장치의 각 상태에 따른 문턱전압 산포의 예를 나타내는 도면이다.
도 9a,b는 블록의 열화 정도를 판단하는 일 예를 나타내는 도면이다.
도 10은 본 개시의 다른 예시적인 실시예에 따른 컨트롤러를 나타내는 블록도이다.
도 11 및 도 12a,b는 독출 동작에서의 적응 제어 방법을 나타낸다.
도 13 내지 도 15는 기록 동작에서의 적응 제어 방법을 나타낸다.
도 16a,b는 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작 예를 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 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) 및 적응 제어 로직(112)을 포함할 수 있다. 안전 소거 제어 로직(111) 및 적응 제어 로직(112) 각각은 하드웨어로 또는 소프트웨어로 구현되거나, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있다. 일 예로서, 안전 소거 제어 로직(111) 및 적응 제어 로직(112) 각각이 펌웨어를 포함하는 소프트웨어로 구현되는 경우, 컨트롤러(110)는 소프트웨어를 실행하는 하나 이상의 프로세서들(미도시) 및 소프트웨어를 저장하는 메모리(미도시)를 포함할 수 있으며, 안전 소거 제어 로직(111) 및 적응 제어 로직(112) 각각은 소프트웨어 형태로 상기 메모리에 로딩될 수 있다. 일 실시예에 따라, 컨트롤러(110)는 FTL(Flash Translation Layer)를 포함하고, 안전 소거 제어 로직(111) 및 적응 제어 로직(112) 각각의 기능의 적어도 일부는 FTL에 포함될 수 있다.
본 개시의 예시적인 실시예에서, 적응 제어라는 용어는 2 회 이상의 안전 소거 동작에 의해 열화된 블록에 대해 기록 및 독출 동작이 수행되는 경우, 그 동작 조건을 변경함에 관련된 다양한 제어 동작들을 포함하는 개념일 수 있으며, 본 개시의 실시예들을 설명함에 있어서 상기 제어 동작들을 포함하는 개념은 상기 적응 제어라는 용어 이외에 다른 다양한 용어들로 정의될 수도 있을 것이다.
안전 소거 제어 로직(111)은 안전 소거 제어 신호(Ctrl_SE)를 출력할 수 있고, 사용자에 의해 선택된 데이터를 안전하게 소거하기 위한 일련의 동작들을 제어할 수 있다. 예컨대, 호스트(11)로부터 하나 이상의 블록들에 대한 안전 소거 요청(Req_SE)이 수신되는 경우, 안전 소거 제어 로직(111)은 상기 하나 이상의 블록들에 저장된 데이터의 소거 동작을 제어할 수 있다. 일 예로서, 안전 소거 제어 로직(111)은 블록에 대한 소거 동작을 수행한 후에, 상기 블록의 메모리 셀들을 임의의 문턱전압 산포로 프로그램하기 위한 프로그램 동작(예컨대, 원 샷 프로그램)이 수행되도록 제어 동작을 수행할 수 있다.
또한, 본 개시의 예시적인 실시예에 따라, 적응(Adaptive) 제어 로직(112)은 기록 및/또는 독출 동작 등의 메모리 동작을 적응적으로 조절하기 위한 제어 동작을 수행할 수 있고, 일 예로서, 기록 또는 독출 요청되는 블록의 안전 소거 상태 및/또는 열화 정도를 판단함에 기초하여 기록 및/또는 독출 동작에서의 동작 조건을 다르게 제어하기 위한 적응 제어 신호(Ctrl_AD)를 출력할 수 있다. 컨트롤러(110)는 안전 소거 제어 로직(111) 및 적응 제어 로직(112)의 제어 결과를 기초로 커맨드/어드레스(CMD/ADD), 안전 소거 제어신호(Ctrl_SE) 및 적응 제어 신호(Ctrl_AD)를 불휘발성 메모리 장치(120)로 제공함으로써, 불휘발성 메모리 장치(120)에 대한 안전 소거 동작, 기록/독출 동작을 제어할 수 있다.
일반적으로, 스토리지 장치(100)는 호스트(11)로부터 안전 소거 요청(Req_SE)이 수신될 때마다, 호스트(11)로부터 안전 소거가 요청된 블록에 대해 물리적인 소거 동작을 반복하여 수행할 수 있다. 이때, 동일한 블록에 대해 다수의 안전 소거 동작이 반복하여 수행되는 경우에는, 상기 블록의 메모리 셀들의 문턱전압 산포가 점차 변동될 수 있고(또는, 문턱전압 산포가 좌측으로 쉬프트될 수 있고), 상기한 문턱전압 산포의 변동은 차후 상기 블록에 대한 기록 및 독출 동작을 수행하는 경우에 그 데이터 신뢰성을 저하하는 문제를 야기할 수 있다.
본 개시의 실시예들을 제1 블록을 참조하여 설명하면, 제1 블록에 대해 다수의 안전 소거 동작이 수행되었는지를 나타내는 정보(예컨대, 플래그 값(미도시))가 스토리지 장치(100) 내에 저장될 수 있다. 예컨대, 안전 소거 제어 로직(111)은 제1 블록에 대해 연속하여 2 회 이상의 안전 소거가 요청되었는지(또는, 수행되었는지를)를 판단할 수 있고, 판단 결과에 기초하여 제1 블록에 대응하는 플래그 값을 "1"의 값으로 설정할 수 있다. 2 회 이상의 안전 소거의 요청 여부는 다양하게 판단될 수 있고, 일 예로서 제1 블록에 대해 안전 소거 요청(Req_SE)이 2 회 연속하여 수신되는 경우를 나타낼 수 있다. 그러나, 본 개시의 실시예들은 이에 국한될 필요가 없으며, 하나의 안전 소거 요청(Req_SE)의 수신 이후, 제1 블록의 문턱전압 산포를 변경하지 않는 요청(예컨대, 독출 요청)이 수신된 이후에 다시 안전 소거 요청(Req_SE)이 수신되는 경우에도, 제1 블록에 대응하는 플래그 값이 "1"의 값으로 설정될 수 있을 것이다. 또한, 플래그 값을 "1"로 설정하기 위한 안전 소거 동작의 횟수는 2 회 또는 그 이상의 다양한 값으로서 정의될 수도 있을 것이다.
한편, 제1 블록에 대한 기록 요청이나 독출 요청이 수신되면, 제1 블록의 안전 소거 상태 및/또는 제1 블록의 열화 여부를 판단하고, 이에 기초하여 기록 동작이나 독출 동작이 적응적으로 조절될 수 있다. 예컨대, 전술한 바와 같이 제1 블록에 대해 다수의 안전 소거 동작이 수행됨에 따라 문턱전압 산포의 열화가 발생된 경우, 기록 동작을 적응적으로 조절함으로써 문턱전압 산포가 적절한 위치로 이동되도록 제어될 수 있으며, 또한 독출 동작을 적응적으로 조절함으로써 최적의 독출 레벨을 이용하여 데이터의 독출 동작이 수행되도록 제어될 수 있다.
예시적인 실시예에서, 제1 블록의 열화 여부를 판단하기 위해 상기한 플래그 값이 참조될 수 있다. 또한, 제1 블록의 메모리 셀들의 문턱전압 산포를 분석함에 의해 제1 블록의 열화 정도가 판단될 수 있다. 일 동작 예로서, 제1 블록에 대응하는 플래그 값이 "1"인 경우, 제1 블록의 메모리 셀들의 문턱전압 산포를 기초로 열화 정도가 판단되고, 판단된 열화 정도에 따라 제1 블록에 대한 적응적인 기록 및/또는 독출 동작이 수행될 수 있을 것이다.
상기와 같은 본 개시의 예시적인 실시예에 따르면, 연속적인 안전 소거 동작이 수행됨에 따라 그 특성이 열화된 블록에 대해, 안전 소거 상태 및/또는 열화 정도를 판단함에 기초하여 기록 및 독출 동작이 적응적으로 수행될 수 있으므로, 프로그램 동작을 통해 문턱전압 산포를 적절하게 위치시킬 수 있고 또한 최적의 독출 레벨을 이용하여 독출 동작이 수행될 수 있으므로, 데이터의 신뢰성을 향상할 수 있다. 또한, 데이터의 독출 동작에서 정정 불가능한 에러가 발생되는 경우가 감소되고, 이에 따라 데이터의 에러를 복구하기 위한 동작(예컨대, 방어 코드로의 진입)의 빈도가 감소될 수 있으므로, 메모리 동작에서 레이턴시가 감소될 수 있다.
도 2는 도 1의 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 2를 참조하면, 컨트롤러(110)는 안전 소거 제어 로직(111), 적응 제어 로직(112) 및 플래그 저장 회로(113)를 포함할 수 있다. 안전 소거 제어 로직(111)은 전술한 예에 따라 블록들에 대한 안전 소거 동작을 제어할 수 있고, 또한 안전 소거 동작을 수행함에 있어서 다수의 블록들 각각에 대한 안전 소거 횟수를 판단할 수 있는 구성(예컨대, 카운터)을 포함할 수 있다. 일 예로서, 안전 소거 제어 로직(111)은 안전 소거가 요청되는 블록의 위치를 판단할 수 있고, 안전 소거가 요청되는 블록에 대응하는 카운터가 카운팅 동작을 수행할 수 있다.
안전 소거 제어 로직(111)은 전술한 실시예에 따라 카운팅 값이 "2" 또는 그 이상의 설정된 값을 갖는 블록에 대응하는 플래그 값(Flag)을 제1 값(예컨대, "1")로 변경할 수 있고, 플래그 값(Flag)은 플래그 저장 회로(113)에 저장될 수 있다. 반면에, 카운팅 값이 1 이하인 블록의 경우 플래그 값(Flag)을 제2 값(예컨대, 0")으로 유지될 수 있다. 즉, 플래그 저장 회로(113)에 저장된 다수의 블록들에 대응하는 플래그 값을 참조함에 의해, 각각의 블록에 대해 2 회 이상의 안전 소거 동작이 수행되었는지 여부가 판단될 수 있다.
한편, 적응 제어 로직(112)은 플래그 판단기(112_1), 열화 판단기(112_2) 및 적응 제어기(112_3)를 포함할 수 있다. 플래그 판단기(112_1)는 플래그 값(Flag)을 판단함으로써 각각의 블록에 대해 2 회 이상의 안전 소거 동작이 수행되었는지를 나타내는 신호를 출력할 수 있다. 또한, 열화 판단기(112_2)는 하나 이상의 정보들을 기초로 각각의 블록의 열화 정도를 나타내는 신호를 출력할 수 있고, 일 예로서 소정의 독출 레벨을 기준으로 하여 각각의 블록의 적어도 하나의 페이지의 메모리 셀들 중 오프 셀(Off cell)의 개수를 카운팅한 카운팅 값(CNT_OC)을 기초로 열화 정도를 판단할 수 있다. 예컨대, 제1 블록을 참조하면, 제1 블록의 열화 정도에 따라 그 문턱전압 산포가 좌측으로 쉬프트될 수 있으므로, 적어도 하나의 페이지의 메모리 셀들 중 오프 셀(Off cell)의 개수가 소정의 기준값과 비교되고, 오프 셀의 개수가 소정의 기준값 보다 작은 경우에 제1 블록의 열화 정도가 상대적으로 큰 것으로 판단될 수 있다.
적응 제어기(112_3)는 상기한 판단 결과를 수신하고 적응 제어 신호(Ctrl_AD)를 출력할 수 있다. 예컨대, 기존에 안전 소거 동작이 수행된 제1 블록에 대한 기록 요청이 수신되는 경우에는, 제1 블록에 대해 메모리 셀들의 문턱전압 산포를 소거 상태로 이동하기 위한 소거 동작과, 기록될 데이터에 상응하는 프로그램 상태로 이동하기 위한 프로그램 동작이 일련하게 수행될 수 있으며, 제1 블록에 대응하는 플래그 값(Flag)이 1 에 해당하는 경우에는 제1 블록의 열화 정도에 따라 프로그램 전압 및 소거 전압 중 적어도 하나의 레벨이 조절되거나, 또는 프로그램 시간(또는, 프로그램 루프 횟수) 및 소거 시간(또는, 소거 루프 횟수) 중 적어도 하나가 조절될 수 있다. 또는, 데이터의 기록 과정에서 제1 블록에 대해 소거 동작 및 프로그램 동작을 포함하는 다수의 동작들의 플로우를 조절함으로써 기록 동작이 수행될 수 있다.
또는, 상기한 적응적인 기록 동작이 적용되지 않는 경우를 가정하면, 노멀한 동작 조건에 의해 유저 데이터가 기록된 제1 블록에 대해 독출 동작이 요청되면, 전술한 실시예에서의 판단 결과를 기초로 적응적인 독출 동작이 수행될 수 있다. 일 예로서, 특성이 열화된 제1 블록에 데이터가 기록되면, 제1 블록의 메모리 셀들의 문턱전압 산포는 특성이 열화되지 않은 블록에 데이터가 기록된 경우에 비해 그 문턱전압 산포 특성이 달라질 수 있으며, 본 개시의 실시예에 따라 최적의 독출 레벨을 이용하여 데이터가 독출될 수 있도록 적응적인 독출 동작이 수행될 수 있을 것이다.
한편, 도 2에 도시된 실시예에서는 오프 셀의 카운팅 결과를 기초로 열화 여부를 판단하는 경우가 예시되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없이 온 셀의 카운팅 결과를 기초로 판단 동작이 수행될 수도 있을 것이다. 또한, 상기한 적응적인 기록 과정에서, 제1 블록의 문턱전압 산포가 안전 소거 상태에서 유저 데이터의 문턱전압 산포로 변동됨에 따라, 상기 제1 블록에 대응하는 플래그 값은 리셋될 수 있을 것이다.
도 3은 본 개시의 예시적인 실시예에 따른 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3을 참조하면, 컨트롤러(200)는 호스트 인터페이스(210), 프로세서(220), RAM(230), ECC 회로(240), 버퍼(250) 및 메모리 인터페이스(260)를 포함할 수 있다. 또한, RAM(230)은 동작 메모리(Working memory)로서 이용될 수 있으며, 프로세서(220)는 RAM(230)에 로딩된 펌웨어(firmware)를 실행함으로써 메모리 컨트롤러(200)의 전반적인 동작을 제어할 수 있다. RAM(230)은 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나로 구현될 수 있다. 또한, 펌웨어(firmware)의 일 예로서 플래시 변환 계층(FTL)이 RAM에 로딩될 수 있으며, 플래시 변환 계층(Flash Translation Layer, FTL)을 구동함에 의해 플래시 메모리 동작에 관련된 다양한 기능들이 수행될 수 있다.
호스트 인터페이스(210)는 호스트와 전술한 실시예에 따른 다양한 종류의 인터페이스를 통해 호스트와 통신할 수 있다. 또한, 메모리 인터페이스(260)는 컨트롤러(200)와 불휘발성 메모리 장치(NVM) 사이의 물리적 연결을 제공한다. 예컨대 커맨드/어드레스 및 데이터 등이 메모리 인터페이스(260)를 통해 컨트롤러(200)와 불휘발성 메모리 장치(NVM) 사이에서 송수신될 수 있다. 호스트로부터 기록 요청되는 데이터와 불휘발성 메모리 장치(NVM)로부터 독출된 데이터는 버퍼(250)에 일시 저장될 수 있다. 또한, ECC 회로(240)는 기록 요청되는 데이터와 독출된 데이터에 대한 ECC 인코딩 및 디코딩 처리를 수행할 수 있고, 이에 따라 데이터의 에러를 검출 및 정정할 수 있다.
한편, 전술한 안전 소거 제어 동작 및 적응 제어 동작이 소프트웨어 기반으로 수행되는 경우에는, 안전 소거 제어 모듈(231) 및 적응 제어 모듈(232)은 펌웨어로서 하나 이상의 프로그램들을 포함할 수 있고, RAM(230)에 로딩되어 프로세서(220)에 의해 실행될 수 있다.
도 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_OC)를 수신하고, 이를 기초로 메모리 셀 어레이(310)에 대한 안전 소거 동작 및 적응적인 기록/독출 동작을 수행할 수 있다. 일 예로서, 적응 제어 신호(Ctrl_OC)에 따라, 불휘발성 메모리 장치(300)는 노멀한 기록/독출 동작을 수행하거나, 또는 변경된 동작 조건을 기초로 기록/독출 동작을 수행할 수 있을 것이다.
도 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을 참조하면, 스토리지 장치는 컨트롤러와 불휘발성 메모리 장치를 포함하고, 스토리지 장치는 호스트로부터 안전 소거 요청을 수신할 수 있다(S11). 또한, 스토리지 장치는 이에 응답하여 불휘발성 메모리 장치에 포함되는 하나 이상의 블록들에 대한 안전 소거 동작을 수행할 수 있다(S12). 예시적인 실시예에서, 스토리지 장치는 호스트로부터의 요청에 응답하여 하나 이상의 블록들에 대한 안전 소거 동작을 수행할 수 있으며, 안전 소거 요청이 수신된 하나 이상의 블록들의 안전 소거 횟수를 나타내는 카운팅 동작을 수행할 수 있다(S13).
스토리지 장치는 상기 카운팅 결과를 기초로, 다수의 블록들 중 N 이상의 카운팅 값을 갖는 블록을 판단할 수 있다(S14). 상기 N 은 2 이상의 정수 값에 해당할 수 있고, 다수의 블록들 중 N 보다 작은 카운팅 값을 갖는 블록들에 대해서는 플래그 값이 0으로 유지될 수 있다(S15). 반면에, 다수의 블록들 중 N 이상의 카운팅 값을 갖는 블록들에 대해서는 플래그 값이 1 로 변경될 수 있다(S16).
한편, 도 7을 참조하면, 스토리지 장치는 호스트로부터 제1 블록에 대한 기록/독출 요청을 수신하고(S21), 제1 블록에 대응하는 플래그 값을 확인함으로써 상기 플래그 값이 1 에 해당하는 지를 판단할 수 있다(S22). 판단 결과, 플래그 값이 1이 아닌 경우(또는, 0 인 경우)에는, 제1 블록이 안전 소거 상태를 갖지 않거나, 1 회 또는 상대적으로 적은 횟수의 안전 소거 동작만이 수행된 경우를 나타낼 수 있고, 이 경우 상기 제1 블록에 대해서는 노멀한 동작 조건에 따라 기록 및 독출 동작이 수행될 수 있다.
반면에, 제1 블록에 대응하는 플래그 값이 1 에 해당하는 경우에는, 전술한 실시예에서의 열화 판단 방법에 기초하여 제1 블록의 열화 정도가 판단될 수 있다(S24). 또한, 판단된 열화 정도에 따라, 제1 블록에 대해 상기한 노멀한 동작 조건과는 상이한 동작 조건을 기초로 적응적인 기록/독출 동작이 수행될 수 있다(S25).
이하에서는, 본 개시의 실시예들에 따른 구체적인 동작 예들이 설명된다.
도 8은 스토리지 장치의 각 상태에 따른 문턱전압 산포의 예를 나타내는 도면이다. 도 8에서는 스토리지 장치의 메모리 셀들이 트리플 레벨 셀(TLC)에 해당함에 따라 유저 데이터가 유효하게 저장된 경우에는 메모리 셀들이 8 개의 문턱전압 산포들을 포함하는 예가 도시된다. 또한, 본 개시의 실시예에서, 안전 소거 동작은 소거 동작과 함께 원 샷 프로그램 동작을 포함하는 경우가 예시된다.
도 8의 (a)에 도시된 바와 같이, 메모리 셀들에 유저 데이터가 유효하게 저장된 경우, 메모리 셀들은 서로 다른 문턱전압(Vth) 레벨을 갖는 다수의 문턱전압 산포들을 포함할 수 있다. 또한, 도 8의 (b)에 도시된 바와 같이, 메모리 셀들이 소거된 상태인 경우, 메모리 셀들은 소거 상태에 해당하는 하나의 문턱전압 산포를 가질 수 있다. 또한, 도 8의 (c)에 도시된 바와 같이, 메모리 셀들이 안전 소거된 상태인 경우, 메모리 셀들에 대해 소거 동작이 수행된 후 원 샷 프로그램 동작이 수행됨에 따라, 메모리 셀들은 소거 상태보다 큰 문턱전압 레벨을 갖는 하나의 문턱전압 산포를 가질 수 있다. 상기 원 샷 프로그램 동작이 적용된 안전 소거 동작이 수행된 블록의 경우, 차후 상기 블록에 대한 데이터 기록이 요청될 때, 상기 블록에 대해 소거 동작이 수행되고, 그 이후에 실제 유저 데이터에 상응하는 문턱전압 산포를 형성하기 위한 프로그램 동작이 수행될 수 있다.
도 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에서는 플래그 값을 설정함이 없이 카운팅 동작에 기반하여 전술한 각종 판단이 수행되는 예가 도시된다. 도 10에 도시된 각종 구성 요소들은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있고, 도 10에 도시된 각종 구성 요소들 중 적어도 일부는 프로세서에 의해 실행 가능한 펌웨어로 구현될 수 있을 것이다.
도 10을 참조하면, 스토리지 장치, 또는 스토리지 장치에 구비되는 컨트롤러(400)는 안전 소거 카운터(410) 및 적응 제어 로직(420)을 포함할 수 있다. 도 10에 도시되지는 않았으나, 컨트롤러(400)는 전술한 실시예에서의 안전 소거 제어 로직을 더 포함할 수 있다.
안전 소거 카운터(410)는 카운팅 동작에 기반하여 불휘발성 메모리 장치의 다수의 블록들(예컨대, z 개의 블록들)에 대한 안전 소거 동작의 횟수를 나타내는 카운팅 값(CNT[1:z]))을 적응 제어 로직(420)으로 출력할 수 있다. 일 예로서, 안전 소거 카운터(410)는 안전 소거 정보(Info_SE)와 블록 어드레스(ADD_B)를 수신할 수 있고, 블록 어드레스(ADD_B)에 대응하는 블록의 안전 소거 동작의 횟수를 카운팅할 수 있다.
적응 제어 로직(420)은 카운팅 값(CNT[1:z]))을 기초로 전술한 실시예들에 따른 적응 제어 동작을 위한 적응 제어 신호(Ctrl_AD)를 출력할 수 있다. 일 예로서, 적응 제어 로직(420)은 소거 상태 판단기(421), 열화 판단기(422) 및 적응 제어기(423)를 포함할 수 있다. 소거 상태 판단기(421)는 카운팅 값(CNT[1:z]))을 기초로 각각의 블록이 그 이후의 데이터 기록/독출 과정에서 적응 제어가 적용될 것인지를 판단할 수 있고, 일 예로서 어느 하나의 블록의 카운팅 값이 소정의 값으로서 N 이상인 경우에는(N은 2 이상의 정수) 적응 제어가 적용될 것임을 나타내는 신호를 출력할 수 있다. 또한, 열화 판단기(422)는 카운팅 값(CNT[1:z]))을 기초로 각각의 블록의 열화 정도를 판단한 신호를 출력할 수 있다. 예컨대, 카운팅 값(CNT[1:z]))이 증가할수록 블록의 열화 정도가 더 크게 발생한 것으로 판단될 수 있다.
적응 제어기(423)는 소거 상태 판단기(421) 및 열화 판단기(422)로부터의 신호를 기초로 적응 제어 신호(Ctrl_AD)를 출력함으로써 상기 블록에 대한 기록/독출 동작에서의 동작 조건을 변경할 수 있다. 일 구현 예에 따라, 적응 제어기(423)는 기록 및 독출 동작 중 적어도 하나의 동작 조건들에 관련된 정보를 테이블 형태로 저장하는 테이블을 포함할 수 있고, 테이블에 저장된 정보를 기초로 적응 제어 신호(Ctrl_AD)를 출력할 수 있을 것이다.
이하의 실시예들에서는 본 개시의 예시적인 실시예에 따라 기록 및 독출 동작에서 적응 제어가 적용되는 예가 설명된다.
도 11 및 도 12a,b는 독출 동작에서의 적응 제어 방법을 나타낸다.
도 11을 참조하면, 스토리지 장치는 다수의 블록들 중 어느 하나의 블록(예컨대, 제N 블록)의 페이지에 대한 독출 요청(또는, 독출 커맨드)을 수신하고(S31), 제N 블록에 대응하는 플래그 값이 1 인지 여부가 판단될 수 있다(S32). 판단 결과, 제N 블록에 대응하는 플래그 값이 1 이 아닌 경우에는 노멀한 동작 조건을 기초로 제N 블록의 페이지에 대한 독출 동작이 수행될 수 있다.
반면에, 제N 블록에 대응하는 플래그 값이 1 인 경우에는, 제N 블록에 대한다양한 방식을 기초로 열화 정도가 판단될 수 있으며(S34), 일 예로서 제N 블록의 문턱전압 산포를 분석한 결과를 기초로 제N 블록의 열화 정도가 판단될 수 있다. 또한, 스토리지 장치는 적응 제어와 관련된 다양한 정보를 저장하는 기 정의 테이블(Pre Defined Table, PDT)로부터 독출 조건에 관련된 정보를 독출할 수 있고, PDT 로부터 독출된 정보를 기초로 상기 페이지에 대한 독출 동작을 수행할 수 있다. 예컨대, 상기 열화 정도에 따라, 서로 다른 독출 레벨을 기준으로 상기 페이지에 대한 독출 동작이 수행될 수 있다.
도 12a,b를 참조하면, 도 12a는 PDT 에 저장된 정보의 일 예를 나타내고, 도 12b는 멀티 레벨 셀(예컨대, TLC)에서 각 상태 별 적응적인 독출 레벨의 일 예를 나타낸다. 예컨대, 도 12a에서는 노멀한 동작 조건에서의 각 상태 별 독출 레벨은 디폴트 독출 레벨로 정의되고, 적응적인 독출 레벨로서의 수치는 상기 디폴트 독출 레벨과의 차이(오프셋)를 나타낸다.
전술한 실시예들에 따라, 제N 블록에 대응하는 플래그 값이 1 로 판단된 경우에는, PDT 에 저장된 적응적인 독출 레벨의 정보를 기초로 각 상태(P0~P6)가 판단될 수 있다. 예컨대, 문턱전압 산포들 중 가장 좌측의 제1 산포의 상태(P0)는 대응하는 디폴트 독출 레벨 보다 200mV 큰 독출 레벨을 이용한 독출 동작을 통해 판단될 수 있다. 또한, 제2 산포의 상태(P1)는 대응하는 디폴트 독출 레벨 보다 100mV 큰 독출 레벨을 이용한 독출 동작을 통해 판단될 수 있으며, 제7 산포의 상태(P6)의 경우 실질적으로 문턱전압 산포의 변동 정도가 작음에 따라 디폴트 독출 레벨에 상응하는 독출 레벨을 이용한 독출 동작을 통해 그 산포가 판단될 수 있다.
도 13 내지 도 15는 기록 동작에서의 적응 제어 방법을 나타낸다.
도 13을 참조하면, 스토리지 장치는 다수의 블록들 중 어느 하나의 블록(예컨대, 제N 블록)의 페이지에 대한 기록 요청(또는, 기록 커맨드)을 수신하고(S41), 제N 블록에 대응하는 플래그 값이 1 인지 여부가 판단될 수 있다(S42). 판단 결과, 제N 블록에 대응하는 플래그 값이 1 이 아닌 경우에는 노멀한 동작 조건을 기초로 제N 블록의 페이지에 대한 프로그램 동작이 수행될 수 있다(S43).
반면에, 제N 블록에 대응하는 플래그 값이 1 인 경우에는, 전술한 실시예들에 따라 제N 블록에 대한 다양한 방식을 기초로 열화 정도가 판단될 수 있으며(S44), 스토리지 장치는 PDT 에 저장된 기록 동작과 관련한 정보를 이용하여 상기 페이지에 대한 기록 동작을 수행할 수 있다. 예컨대, 기록 동작은 제N 블록에 대한 소거 동작 및 프로그램 동작을 포함할 수 있고, 소거 동작 및 프로그램 동작 중 적어도 하나에서 적응적인 제어가 적용될 수 있다. 예컨대, 소거 전압, 프로그램 전압, 소거 시간(또는, 소거 루프 횟수) 및 프로그램 시간(또는, 프로그램 루프 횟수) 중 적어도 하나의 조건이 변경될 수 있으며, 상기 판단된 열화 정도에 따라 선택된 조건에 기초하여 기록 동작이 수행될 수 있다.
도 14는 본 개시의 예시적인 실시예에 따른 기록 동작에 관련된 테이블 정보의 일 예를 나타낸다. 도 14에서는 열화 정도를 나타내는 기준으로서 안전 소거 동작의 횟수가 예시되며, 도 14에 도시된 수치는 노멀한 안전 소거 동작에서의 소거 전압, 프로그램 전압 및 소거/프로그램 시간과의 차이를 나타내는 오프셋 값에 해당할 수 있다.
도 14를 참조하면, 연속적인 안전 소거 동작이 수행된 블록의 경우 그 문턱전압 산포가 좌측으로 쉬프트되는 경향이 있고, 이에 따라 적응적인 기록 동작을 수행하는 경우 노멀한 기록 동작에 비해 그 문턱전압 산포가 더 우측에 위치하도록 동작 조건이 설정될 수 있다. 일 예로서, 노멀한 안전 소거 동작에서의 소거 전압(Vers), 소거 시간, 프로그램 전압(Vpgm) 및 프로그램 시간의 값을 디폴트 값으로 정의할 때, 안전 소거에 의한 블록의 열화 정도에 따라 오프셋 값이 다르게 설정될 수 있다. 예컨대, 제1 블록에 대해 기존에 안전 소거 동작이 수행되지 않은 경우에는, 디폴트 값에 상응하는 소거 전압(Vers), 소거 시간, 프로그램 전압(Vpgm) 및 프로그램 시간에 따라 안전 소거 동작이 수행될 수 있다.
반면에, 기록이 요청된 블록의 열화가 증가함에 따라, 소거 전압(Vers)의 레벨이 디폴트 값에 비해 감소될 수 있다. 예컨대, 도 14의 예에서는 소거 전압(Vers)의 레벨이 디폴트 값에 비해 100mV 또는 200 mV 감소되는 경우가 예시되며, 소거 전압(Vers)의 레벨이 감소함에 따라 소거 동작에서 메모리 셀들의 문턱전압 산포가 좌측으로 이동되는 정도가 감소될 수 있다. 또한, 블록의 열화가 증가함에 따라 소거 시간(또는, 소거 루프 횟수)이 감소될 수 있으며, 소거 시간이나 소거 루프 횟수가 감소함에 따라 소거 동작에서 메모리 셀들의 문턱전압 산포가 좌측으로 이동되는 정도가 감소될 수 있다.
또한, 블록의 열화가 증가함에 따라, 프로그램 전압(Vpgm)의 레벨이 디폴트 값에 비해 증가될 수 있다. 예컨대, 도 14의 예에서는 프로그램 전압(Vpgm)의 레벨이 디폴트 값에 비해 50mV 또는 100 mV 증가되는 경우가 예시되며, 프로그램 전압(Vpgm)의 레벨이 증가함에 따라 프로그램 동작에서 메모리 셀들의 문턱전압 산포가 우측으로 이동되는 정도가 증가될 수 있다. 또한, 블록의 열화가 증가함에 따라 프로그램 시간(또는, 프로그램 루프 횟수)이 증가될 수 있으며, 프로그램 시간이나 프로그램 루프 횟수가 증가함에 따라 프로그램 동작에서 메모리 셀들의 문턱전압 산포가 우측으로 이동되는 정도가 증가될 수 있다.
도 15는 적응적인 기록 동작을 수행함에 있어서 기록 과정에서의 동작 플로우를 조절하는 예를 나타낸다.
도 15를 참조하면, 스토리지 장치는 다수의 블록들 중 어느 하나의 블록(예컨대, 제N 블록)의 페이지에 대한 기록 요청(또는, 기록 커맨드)을 수신하고(S51), 제N 블록에 대응하는 플래그 값이 1 인지 여부가 판단될 수 있으며(S52), 판단 결과, 제N 블록에 대응하는 플래그 값이 1 이 아닌 경우에는 노멀한 동작 조건을 기초로 제N 블록의 페이지에 대한 프로그램 동작이 수행될 수 있다(S53). 반면에, 제N 블록에 대응하는 플래그 값이 1 인 경우에는, 전술한 실시예들에 따라 제N 블록에 대한 다양한 방식을 기초로 열화 정도가 판단될 수 있다(S54).
제N 블록의 열화 정도에 따라 적응적인 기록 과정에서 각종 동작들이 일련하게 수행될 수 있고, 예컨대 제N 블록에 대한 소거 동작이 수행됨에 따라 제N 블록의 메모리 셀들이 소거 상태에 상응하는 문턱전압 산포를 가질 수 있다(S55). 이후, 제N 블록의 적어도 일부의 워드라인에 연결된 메모리 셀들의 문턱전압을 임의의 산포로 프로그램하기 위한 프로그램 동작(예컨대, 더미 프로그램)이 수행될 수 있으며, 또는 제N 블록의 워드라인들 중 특정한 워드라인(예컨대, 더미 워드라인)에 대해서만 더미 프로그램 동작이 수행될 수 있다(S56). 일 예로서, 제N 블록에 대한 더미 프로그램은, 상기 제N 블록의 메모리 셀들의 문턱전압 산포를 열화가 발생되지 않은 경우에서의 산포로 이동하기 위한 프로그램 동작을 포함할 수 있다. 또는, 더미 워드라인에 대한 더미 프로그램 동작은, 더미 워드라인에 연결된 메모리 셀들의 문턱전압 레벨을 열화가 발생되기 전의 산포로 증가시키는 프로그램 동작을 포함할 수 있다.
상기와 같은 더미 프로그램 동작이 완료된 후, 제N 블록에 유효한 유저 데이터를 저장하기 위한 소거 동작(S57)과 데이터 프로그램 동작(S57)이 일련하게 수행될 수 있다. 본 개시의 예시적인 실시예는, 상기한 S55 단계에서의 제N 블록에 대한 소거 동작은 상기한 적응적인 기록 과정에 포함되지 않는 경우도 포함할 수 있을 것이다.
도 16a,b는 본 개시의 예시적인 실시예들에 따른 스토리지 장치의 동작 예를 나타내는 도면이다. 도 16a,b에서는 스토리지 장치의 백그라운드 동작에서 플래그 값이 이용되는 경우가 예시된다.
스토리지 장치는 유저 데이터의 기록 및 독출 등이 수행되지 않는 임의의 구간에서 데이터의 신뢰성 향상에 관련된 백그라운드 동작을 수행할 수 있으며, 일 예로서 백그라운드 동작으로서 가비지 컬렉션, 배드 블록 관리, 리드 리클레임 및 리드 리플레이스먼트 등의 다양한 동작들이 수행될 수 있다. 이 때, 백그라운드 동작은 열화된 데이터의 신뢰성을 향상하기 위한 동작들을 포함하는 바, 본 개시의 실시예들에서 블록들의 플래그 값을 참조하여 블록의 열화 가능성이 상대적으로 높은 블록들에 대해 우선적으로 백그라운드 동작이 수행되는 예가 설명된다.
스토리지 장치의 컨트롤러는, 제1 내지 제N 블록들에 대한 백그라운드 동작의 시작 여부를 판단할 수 있다(S61). 상기 제1 내지 제N 블록들에 대한 백그라운드 동작이 시작됨에 따라, 컨트롤러는 제1 내지 제N 블록들에 대응하는 플래그 값들을 판단하고(S62), 플래그 값의 판단 결과를 기초로 제1 내지 제N 블록들의 백그라운드 동작의 순서를 설정할 수 있다. 예컨대, 제N 블록의 플래그 값이 1 이 아닌 경우에는 제N 블록에 대한 백그라운드 순서가 연기되는 반면에(S64), 제N 블록의 플래그 값이 1 인 경우에는 제N 블록에 대한 백그라운드 순서가 앞당겨질 수 있다(S65).
상기와 같이 제1 내지 제N 블록들의 플래그 값에 따라 순서가 연기 또는 앞당겨진 정보가 머지되고(S66), 이를 통해 제1 내지 제N 블록들의 백그라운드 순서가 결정될 수 있다. 그리고, 상기 결정된 순서에 따라 제1 내지 제N 블록들에 대한 백그라운드 동작이 수행될 수 있다. 도 16b의 예에서는 제1 내지 제4 블록들(BLK1 ~ BLK4)에 대해 백그라운드 동작이 순차적으로 수행되는 경우와, 본 개시의 예시적인 실시예에 따라 플래그 정보에 기초하여 백그라운드 동작이 제1 블록(BLK1), 제4 블록(BLK4), 제2 블록(BLK2) 및 제3 블록(BLK3)의 순서로 변경된 예가 도시된다.
도 17은 본 개시의 실시예들에 따른 스토리지 장치를 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 17을 참조하면, 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 내지 도 16을 참조하여 상술된 실시예들을 이용하여 구현될 수 있다. 즉, SSD(520)에 구비되는 SSD 컨트롤러(521)는 전술한 실시예들에 따른 안전 소거 제어 로직(521_1) 및 적응 제어 로직(521_2)을 포함할 수 있고, 안전 소거 제어 로직(521_1)은 호스트(510)로부터의 안전 소거 요청에 응답하여 불휘발성 메모리 장치들(523_1 ~ 523_n)에 대한 안전 소거 동작을 제어할 수 있으며, 적응 제어 로직(521_2)은 블록들의 열화 여부에 따라 적응적인 기록 및 독출 동작을 제어할 수 있다. 전술한 실시예들에 따라, 적응 제어 로직(521_2)은 데이터 기록 및 독출에 관련된 적응적인 제어를 위한 다양한 정보들을 저장하는 테이블을 포함할 수 있고, 테이블에 저장된 정보를 기초로 제어 동작을 수행할 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 다수의 블록들을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 구비하고,
상기 컨트롤러는,
호스트로부터의 안전 소거 요청에 응답하여 상기 다수의 블록들에 대한 안전 소거 동작을 제어하고, 상기 다수의 블록들 중 적어도 2 회 이상 안전 소거 동작이 요청된 블록에 대응하는 플래그 값이 제1 값을 갖도록 상기 다수의 블록들에 대응하는 플래그 값들을 설정하는 안전 소거 제어 로직; 및
상기 호스트로부터 기록 또는 독출이 요청된 제1 블록에 대해, 상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에 상기 기록 또는 독출 동작 중 적어도 하나의 동작 조건이 노멀한 기록 또는 독출 동작에 비해 변경되도록 제어 동작을 수행하는 적응 제어 로직을 포함하는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서, 상기 컨트롤러는,
상기 다수의 블록들에 대응하는 플래그 값들을 저장하는 플래그 저장 회로를 더 구비하는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서, 상기 컨트롤러는,
상기 제1 블록에 대해 2 회 이상 연속하여 상기 안전 소거 요청이 수신될 때, 상기 제1 블록에 대응하는 플래그 값을 상기 제1 값으로 설정하는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서,
상기 안전 소거 제어 로직은, 상기 제1 블록에 대해 상기 변경된 동작 조건에 기초한 기록 동작이 수행된 후에, 상기 제1 블록에 대응하는 플래그 값을 제2 값으로 리셋하는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서, 상기 적응 제어 로직은,
상기 플래그 값에 기초하여 상기 블록들의 열화 여부를 판단하는 플래그 판단기와, 상기 블록들의 메모리 셀들의 문턱전압 산포에 따라 각각의 블록의 열화 정도를 판단하는 열화 판단기를 포함하고,
상기 제1 블록에 대해 판단된 열화 정도에 따라, 상기 제1 블록에 대한 상기 동작 조건을 다르게 변경하는 것을 특징으로 하는 스토리지 장치. - 제5항에 있어서,
상기 제1 블록은 적어도 하나의 더미 워드라인과 다수의 워드라인들을 포함하고,
상기 제1 블록에서, 상기 더미 워드라인에 연결된 메모리 셀들의 문턱전압 산포가 좌측으로 쉬프트된 정도에 따라 상기 열화 정도가 판단되는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서,
상기 적응 제어 로직은, 상기 동작 조건에 관련된 하나 이상의 정보들을 저장하는 테이블을 포함하고,
상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에, 상기 독출 동작에서 데이터 상태 판별을 위한 독출 레벨이 상기 테이블에 저장된 정보를 참조하여 변경되는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서,
상기 적응 제어 로직은, 상기 동작 조건에 관련된 하나 이상의 정보들을 저장하는 테이블을 포함하고,
상기 기록 동작은, 상기 제1 블록의 메모리 셀들에 대한 소거 동작과, 상기 소거 동작이 수행된 후 상기 제1 블록의 적어도 하나의 페이지의 메모리 셀들을 프로그램하는 프로그램 동작을 포함하고,
상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에, 상기 기록 동작에서 소거 전압 및 프로그램 전압 중 적어도 하나가 상기 테이블에 저장된 정보를 참조하여 변경되는 것을 특징으로 하는 스토리지 장치. - 제8항에 있어서,
상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에, 상기 노멀한 기록 동작에 비해 상기 소거 전압의 레벨이 감소되거나 상기 프로그램 전압의 레벨이 증가되는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서,
상기 동작 조건은 상기 기록 요청에 응답하는 다수의 동작들의 플로우에 해당하고,
상기 제1 블록에 대응하는 플래그 값이 상기 제1 값을 갖는 경우에, 상기 기록 요청에 응답하여 상기 제1 블록의 적어도 하나의 페이지에 대한 더미 프로그램 동작, 상기 제1 블록에 대한 소거 동작, 상기 제1 블록의 기록 요청된 하나 이상의 페이지에 대한 프로그램 동작이 일련하게 수행되는 것을 특징으로 하는 스토리지 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210083119A KR20230000690A (ko) | 2021-06-25 | 2021-06-25 | 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 |
US17/579,902 US11869598B2 (en) | 2021-06-25 | 2022-01-20 | Nonvolatile memory devices having adaptive write/read control to improve read reliability and methods of operating the same |
CN202210259765.1A CN115525210A (zh) | 2021-06-25 | 2022-03-16 | 存储设备及其操作方法、操作非易失性存储器装置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210083119A KR20230000690A (ko) | 2021-06-25 | 2021-06-25 | 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230000690A true KR20230000690A (ko) | 2023-01-03 |
Family
ID=84541193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210083119A KR20230000690A (ko) | 2021-06-25 | 2021-06-25 | 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11869598B2 (ko) |
KR (1) | KR20230000690A (ko) |
CN (1) | CN115525210A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680089B (zh) * | 2023-08-03 | 2023-11-14 | 上海登临科技有限公司 | 一种访存控制结构、方法、内存系统、处理器及电子设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996768B2 (en) | 2012-05-31 | 2015-03-31 | Sandisk Technologies Inc. | Method and storage device for assessing execution of trim commands |
US20160034217A1 (en) | 2014-07-31 | 2016-02-04 | Samsung Electronics Co., Ltd. | Memory controller configured to control data sanitization and memory system including the same |
US9972375B2 (en) | 2016-04-15 | 2018-05-15 | Via Alliance Semiconductor Co., Ltd. | Sanitize-aware DRAM controller |
US9633738B1 (en) * | 2016-06-28 | 2017-04-25 | Sandisk Technologies Llc | Accelerated physical secure erase |
KR102609177B1 (ko) | 2016-07-04 | 2023-12-06 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 및 불휘발성 메모리 장치의 동작 방법 |
TWI639918B (zh) | 2017-05-11 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
KR102027543B1 (ko) | 2017-05-30 | 2019-10-01 | 한국과학기술원 | 플래시메모리의 영구적 데이터 삭제 및 저장장치의 재사용을 가능케 하는 하드웨어 기반의 보안 장치 및 방법 |
US11216218B2 (en) | 2019-07-15 | 2022-01-04 | Micron Technology, Inc. | Unmap data pattern for coarse mapping memory sub-system |
US11462273B2 (en) * | 2020-05-14 | 2022-10-04 | Intel Corporation | SSD with reduced secure erase time and endurance stress |
-
2021
- 2021-06-25 KR KR1020210083119A patent/KR20230000690A/ko active Search and Examination
-
2022
- 2022-01-20 US US17/579,902 patent/US11869598B2/en active Active
- 2022-03-16 CN CN202210259765.1A patent/CN115525210A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220415404A1 (en) | 2022-12-29 |
CN115525210A (zh) | 2022-12-27 |
US11869598B2 (en) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102302187B1 (ko) | 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치 | |
US10930358B2 (en) | Memory system and method of operating the same | |
KR102139323B1 (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
JP5505922B2 (ja) | メモリシステム及びその読み出し方法 | |
KR101944793B1 (ko) | 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법 | |
KR102585221B1 (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 | |
KR101891164B1 (ko) | 프로그램 스케줄러를 포함하는 플래시 메모리 장치 | |
KR20170097267A (ko) | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 | |
KR102452994B1 (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
US11145357B2 (en) | Memory system, memory controller and method for operating memory system | |
CN115910171A (zh) | 存储器控制器、存储器系统以及存储器控制器的操作方法 | |
KR101642930B1 (ko) | 더미 셀을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
KR20210079555A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US11315650B2 (en) | Memory system, memory controller, and method of operating memory system | |
US10679705B2 (en) | Controller and operating method thereof | |
US11216208B1 (en) | Memory system, memory controller, and operation method of memory system | |
US11869598B2 (en) | Nonvolatile memory devices having adaptive write/read control to improve read reliability and methods of operating the same | |
CN110277132B (zh) | 存储器控制器、其操作方法以及包括其的存储装置 | |
US11848054B2 (en) | Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device | |
US11061615B2 (en) | Memory system, memory controller and operating method thereof | |
US11941271B2 (en) | Storage devices performing secure erase and operating methods thereof | |
US11656790B2 (en) | Memory system, memory controller, and operation method of memory system | |
US20230195367A1 (en) | Memory system, memory controller, and operation method of memory system | |
US20240161838A1 (en) | Media management scanning with unified criteria to alleviate fast and latent read disturb | |
CN110806947B (zh) | 预测错误校正装置、其操作方法和用该装置的存储器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |