KR102387960B1 - 컨트롤러 및 그것의 동작 방법 - Google Patents
컨트롤러 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR102387960B1 KR102387960B1 KR1020180085351A KR20180085351A KR102387960B1 KR 102387960 B1 KR102387960 B1 KR 102387960B1 KR 1020180085351 A KR1020180085351 A KR 1020180085351A KR 20180085351 A KR20180085351 A KR 20180085351A KR 102387960 B1 KR102387960 B1 KR 102387960B1
- Authority
- KR
- South Korea
- Prior art keywords
- invalid data
- program
- data
- memory block
- program state
- Prior art date
Links
Images
Classifications
-
- 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/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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/107—Programming all cells in an array, sector or block to the same state prior to flash erasing
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or 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/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
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile 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/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
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
- G11C11/5635—Erasing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
제 1 메모리 블록과 제 2 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법이 개시된다. 컨트롤러는 제 1 메모리 블록의 무효 데이터를 검출하고, 검출된 무효 데이터가 기준 값 이하인지 여부를 판단하고, 기준 값 이하인지 여부의 판단 결과에 기반하여, 검출된 무효 데이터의 전압 산포를 변화시키는 보안 소거 동작을 실행한다. 본 개시에 의하면, 불휘발성 메모리 장치에 저장되는 데이터의 보안성을 강화시킬 수 있으며, 과도한 물리적 소거를 방지하여, 불휘발성 메모리 장치의 수명을 향상시킬 수 있다.
Description
본 발명은 스토리지 장치에 관한 것으로, 좀 더 상세하게는, 보안성이 향상된 스토리지 장치의 컨트롤러에 관한 것이다.
반도체 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.
특히, 플래시 메모리와 같은 불휘발성 메모리 장치는 오버라이트(overwrite)가 허용되지 않으며, 메모리 블록 단위로 소거 동작이 수행된다. 스토리지 장치의 보안성을 향상시키기 위해서는, 소거하고자 하는 데이터를 물리적으로 소거하는 것이 가장 바람직하지만, 잦은 물리적 소거 동작은 메모리 장치의 수명을 단축시키는 문제가 있다. 그러므로, 스토리지 장치의 보안성을 향상시킴과 동시에, 잦은 물리적 소거에 따른 수명 단축 문제를 해결하는 방안을 마련하는 것이 주요한 문제로 부각되고 있다.
본 개시는 상술된 문제점을 해결하기 위한 것으로, 향상된 보안성을 갖는 스토리지 장치, 및 스토리지 장치의 보안성을 향상시키는 방법을 제공한다.
본 개시의 제 1 메모리 블록과 제 2 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법은, 상기 제 1 메모리 블록의 무효 데이터를 검출하는 단계, 상기 검출된 무효 데이터가 기준 값 이하인지 여부를 판단하는 단계, 그리고 상기 기준 값 이하인지 여부의 판단 결과에 기반하여, 상기 검출된 무효 데이터의 전압 산포를 변화시키는 보안 소거 동작을 실행하는 단계를 포함한다.
본 개시의 제 1 메모리 블록 및 제 2 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하도록 구성되는 컨트롤러는, 상기 제 1 메모리 블록의 무효 데이터를 검출하고, 상기 검출된 무효 데이터의 전압 산포를 변화시키는 보안 소거 동작을 실행하도록 구성되는 무효 블록 관리자를 포함하고, 상기 무효 블록 관리자는, 상기 검출된 무효 데이터의 제 1 프로그램 상태를, 서로 인접한 제 2 및 제 3 프로그램 상태들 사이의 중간 프로그램 상태로 재프로그램 하도록 더 구성된다.
본 개시의 제 1 메모리 블록과 제 2 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법은, 타깃 논리 주소에 대응하는 제 1 페이지의 유효 데이터를 검출하는 단계, 상기 검출 결과에 기반하여, 이용 가능한 제 2 페이지를 할당하는 단계, 상기 제 1 페이지에 저장된 상기 유효 데이터의 전압 산포를 변화시키는 보안 쓰기 동작을 실행하는 단계, 그리고 상기 유효 데이터에 대응하고 외부로부터 수신된 데이터를 상기 제 2 페이지에 기록하는 단계를 포함한다.
본 개시에 의하면, 불휘발성 메모리 장치에 저장된 무효 데이터에 대해 물리적 소거를 실행하는 대신에, 보안 소거 동작을 실행한다. 그러므로, 스토리지 장치의 보안성을 향상시킬 수 있을 뿐만 아니라, 잦은 물리적 소거에 따른 스토리지 장치의 수명 감소를 감지할 수 있다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 구성을 보여준다.
도 2는 도 1에 도시된 컨트롤러의 예시적인 구성을 보여준다.
도 3은 도 1의 불휘발성 메모리 장치의 예시적인 구성을 보여준다.
도 4는 도 3의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 등가 회로도이다.
도 5는 본 개시의 예시적인 실시 예에 따른 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 6 및 도 7은 본 개시의 보안 소거 동작을 보여주기 위한 전압 산포도들이다.
도 8은 보안 소거 동작에서 발생할 수 있는 간섭 현상을 보여주기 위한 문턱 전압 산포도이다.
도 9는 도 4에 도시된 메모리 블록의 제 1 셀 스트링(CS11)을 예시적으로 보여준다.
도 10은 일반적인 프로그램 동작에서의 프로그램 전압들 및 본 개시의 예시적인 실시 예에 따른 보안 소거 동작에서의 재프로그램 전압들을 보여준다.
도 11은 본 개시의 예시적인 실시 예에 따른 보안 소거 동작을 개념적으로 보여준다.
도 12는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다.
도 13은 본 개시의 예시적인 실시 예에 따른 보안 쓰기 동작을 개념적으로 보여준다.
도 14는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다.
도 15는 본 개시의 보안 소거 및/또는 보안 쓰기가 적용된 SSD (Solid State Drive) 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 컨트롤러의 예시적인 구성을 보여준다.
도 3은 도 1의 불휘발성 메모리 장치의 예시적인 구성을 보여준다.
도 4는 도 3의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 등가 회로도이다.
도 5는 본 개시의 예시적인 실시 예에 따른 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 6 및 도 7은 본 개시의 보안 소거 동작을 보여주기 위한 전압 산포도들이다.
도 8은 보안 소거 동작에서 발생할 수 있는 간섭 현상을 보여주기 위한 문턱 전압 산포도이다.
도 9는 도 4에 도시된 메모리 블록의 제 1 셀 스트링(CS11)을 예시적으로 보여준다.
도 10은 일반적인 프로그램 동작에서의 프로그램 전압들 및 본 개시의 예시적인 실시 예에 따른 보안 소거 동작에서의 재프로그램 전압들을 보여준다.
도 11은 본 개시의 예시적인 실시 예에 따른 보안 소거 동작을 개념적으로 보여준다.
도 12는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다.
도 13은 본 개시의 예시적인 실시 예에 따른 보안 쓰기 동작을 개념적으로 보여준다.
도 14는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다.
도 15는 본 개시의 보안 소거 및/또는 보안 쓰기가 적용된 SSD (Solid State Drive) 시스템을 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module) 등의 용어들을 참조하여 설명되는 구성 요소들 및 도면에 도시된 기능 블록들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(MEMS; microelectromechanical system), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.
도 1은 본 개시의 예시적인 실시 예에 따른 스토리지 장치(100)의 구성을 보여준다. 스토리지 장치(100)는 컨트롤러(110) 및 불휘발성 메모리 장치를 포함한다. 나아가, 도면에 도시되지는 않았지만, 스토리지 장치(100)는 불휘발성 메모리 장치(120)로부터 읽혀지거나 불휘발성 메모리 장치(120)에 저장될 데이터를 임시로 저장하기 위한 버퍼를 더 포함할 수 있다.
컨트롤러(110)는 불휘발성 메모리 장치(120)에 대한 읽기 동작 및 쓰기 동작을 제어한다. 이를 위해, 컨트롤러(110)는 커맨드(CMD), 어드레스(ADDR), 및 제어 신호(CTRL)를 불휘발성 메모리 장치(120)로 전달한다. 불휘발성 메모리 장치(120)는 컨트롤러(110)로부터 수신된 신호들에 응답하여, 데이터(DATA)를 저장하거나, 데이터를 컨트롤러(110)로 전달한다.
컨트롤러(110)는 불휘발성 메모리 장치(120)에 저장된 무효 데이터를 관리하도록 구성된다. 이를 위해, 컨트롤러(110)는 무효 블록 관리자(112)를 포함할 수 있다. 무효 블록 관리자(112)는 불휘발성 메모리 장치(120)의 메모리 블록들(BLK1~BLKm) 중 무효 데이터가 저장된 메모리 블록을 관리하도록 구성된다. 무효 데이터 관리의 일환으로서, 컨트롤러(110)는 보안 소거(secure erase) 및 보안 쓰기(secure write)를 수행할 수 있다.
실시 예에 있어서, 무효 블록 관리자(112)는, 보안 소거 실행 시, 단순히 소거될 데이터의 물리 주소와 논리 주소 사이의 맵핑 관계를 해소하는데 그치지 않는다. 나아가, 무효 블록 관리자(112)는 보안 소거의 대상이 되는 무효 데이터(invalid data)의 전압 산포를 변화시킨다. 예를 들어, 무효 블록 관리자(112)는 무효 데이터가 유출되는 것을 방지하기 위해 무효 데이터를 다른 프로그램 상태로 재프로그램할 수 있다. 또는, 무효 블록 관리자(112)는 무효 데이터가 서로 인접한 두 프로그램 상태들 사이의 전압 산포를 갖도록 무효 데이터를 재프로그램 할 수 있다.
실시 예에 있어서, 무효 블록 관리자(112)는, 보안 쓰기 실행 시, 기존에 저장된 데이터의 물리 주소와 논리 주소 사이의 맵핑 관계를 해소하는데 그치지 않는다. 나아가, 무효 블록 관리자(112)는 무효 데이터의 전압 산포를 변화시킨다. 예를 들어, 무효 블록 관리자(112)는 무효 데이터가 유출되는 것을 방지하기 위해 무효 데이터를 다른 프로그램 상태로 재프로그램 할 수 있다. 또는, 무효 블록 관리자(112)는 무효 데이터가 서로 인접한 두 프로그램 상태들 사이의 전압 산포를 갖도록 무효 데이터를 재프로그램 할 수 있다.
이상 간략히 설명된 본 개시의 스토리지 장치에 의하면, 무효 데이터가 온전히 읽히지 않도록 함으로써, 스토리지 장치의 보안성을 향상시킬 수 있다. 뿐만 아니라, 불휘발성 메모리 장치에 저장된 무효 데이터를 물리적으로 소거하는 대신에 보안 소거함으로써, 데이터의 물리적 소거 횟수를 줄일 수 있다. 결국, 스토리지 장치의 수명을 향상시킬 수 있다. 보안 소거 및 보안 쓰기에 대한 구체적인 동작은 상세하게 후술될 것이다.
도 2는 도 1에 도시된 컨트롤러의 예시적인 구성을 보여준다. 컨트롤러(110)는 적어도 하나의 프로세서(111), 무효 블록 관리자(112), ROM(113), 호스트 인터페이스 회로(114), ECC (Error Check and Correction) 회로(115), 및 불휘발성 메모리 인터페이스 회로(116)를 포함한다.
프로세서(111)는 컨트롤러(110)의 전반적인 동작을 제어한다. 프로세서(111)는 불휘발성 메모리 장치(120)를 제어하는데 필요한 다양한 펌웨어/소프트웨어들을 구동할 수 있다. 예를 들어, 프로세서(111)는 불휘발성 메모리 장치(120)의 논리 주소와 물리 주소 사이의 관계를 정의하는 맵핑 테이블을 관리하기 위한 플래시 변환 계층을 구동할 수 있다.
무효 블록 관리자(112)는 전술된 보안 소거 동작 및 보안 쓰기 동작을 수행할 수 있다. 예시적으로, 무효 블록 관리자(112)는 응용 주문형 집적 회로(Application Specific Integrated Circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA), 및/또는 그들의 조합으로 구현될 수 있다. 또는, 무효 블록 관리자(112)는 컨트롤러(110)에 의해 실행되는 플래시 변환 계층(flash translation layer; FTL)의 기능에 포함될 수 있다. 또는 무효 블록 관리자(112)는 컨트롤러(110)에 의해 실행되는, 플래시 변환 계층 이외의 다른 소프트웨어/펌웨어로 구현될 수 있다.
ROM(113)은 스토리지 장치(100)를 부팅하는데 필요한 부트 코드를 저장할 수 있다. 나아가, ROM(113)은 불휘발성 메모리 장치(120)에 저장된 펌웨어를 버퍼 메모리(미도시)로 로딩하기 위한 별도의 펌웨어를 저장할 수 있다. 예를 들어, ROM(113)에 저장된 펌웨어는 스토리지 장치(100)의 부팅 온 시 실행되거나, 스토리지 장치(100)의 런타임 중에 외부(호스트) 또는 내부의 요청에 의해 실행될 수 있다.
호스트 인터페이스 회로(114)는 다양한 통신 규약을 갖는 버스를 이용하여 호스트 장치와 통신을 수행할 수 있다. 예를 들어, 버스 포맷은 USB, SCSI (Small Computer System Interface), PCIe (Peripheral Component Interconnect Express), M-PCIe (Mobile PCIe), ATA (Advanced Technology Attachment), PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), EIDE (Enhanced IDE), NVMe (Nonvolatile Memory Express), UFS (Universal Flash Storage) 등과 같은 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.
ECC 회로(115)는 불휘발성 메모리 장치(120)에 저장될 쓰기 데이터에 대한 에러 정정 코드를 생성할 수 있다. ECC 회로(115)는 불휘발성 메모리 장치(120)로부터 읽혀진 에러 정정 코드에 기반하여 읽기 데이터의 에러를 검출하고 정정할 수 있다.
불휘발성 메모리 인터페이스 회로(116)는 불휘발성 메모리 장치(120)와 통신을 수행할 수 있다.
도 3은 도 1의 불휘발성 메모리 장치(120)의 예시적인 구성을 보여준다. 불휘발성 메모리 장치(120)는 메모리 셀 어레이(121), 어드레스 디코더(122), 페이지 버퍼(123), 입출력 회로(124), 및 제어 로직(125)을 포함할 수 있다. 설명의 이해를 돕기 위해, 도 1을 함께 참조한다.
메모리 셀 어레이(121)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 셀 스트링들을 포함할 수 있다. 복수의 셀 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 워드라인들(WL)과 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 단일 레벨 셀(Single Level Cell; SLC) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(Multi Level Cell; MLC)을 포함할 수 있다.
어드레스 디코더(122)는 복수의 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(121)와 연결된다. 어드레스 디코더(122)는 외부로부터 논리 어드레스를 수신하고, 수신된 논리 어드레스를 디코딩 하여, 복수의 워드라인들(WL)을 구동할 수 있다. 예를 들어, 어드레스(ADDR)는 논리 어드레스로부터 변환된 물리 어드레스를 나타낼 수 있다. 상술된 어드레스 변환 동작은, 예컨대, 컨트롤러(120)에 의해 구동되는 플래시 변환 계층(FTL)에 의해 수행될 수 있다.
페이지 버퍼(123)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(121)와 연결된다. 페이지 버퍼(123)는 제어 로직(125)의 제어 하에 입출력 회로(124)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(121)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(123)는 제어 로직(125)의 제어 하에 메모리 셀 어레이(121)에 저장된 데이터를 읽고, 읽은 데이터를 입출력 회로(124)로 전달할 수 있다. 예시적으로, 페이지 버퍼(123)는 입출력 회로(124)로부터 페이지 단위로 데이터를 수신하거나 메모리 셀 어레이(121)로부터 페이지 단위로 데이터를 읽을 수 있다.
입출력 회로(124)는 외부 장치로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 페이지 버퍼(123)로 전달할 수 있다.
제어 로직(125)은 외부로부터 커맨드(CMD) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(122), 페이지 버퍼(123), 및 입출력 회로(124)를 제어할 수 있다. 예를 들어, 제어 로직(125)은 신호들(CMD, CTRL)에 응답하여 데이터(DATA)가 메모리 셀 어레이(121)에 저장되도록 다른 구성 요소들을 제어할 수 있다. 또는 제어 로직(125)은 신호들(CMD, CTRL)에 응답하여 메모리 셀 어레이(121)에 저장된 데이터(DATA)가 외부 장치로 전송되도록 다른 구성 요소들을 제어할 수 있다. 제어 신호(CTRL)는 컨트롤러(110)가 불휘발성 메모리 장치(120)를 제어하기 위하여 제공하는 신호일 수 있다.
제어 로직(125)은 불휘발성 메모리 장치(120)가 동작하는데 필요한 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직(125)은 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들과 같은 다양한 전압들을 생성할 수 있다. 제어 로직(125)은 생성된 다양한 전압들을 어드레스 디코더(122)로 제공하거나 또는 메모리 셀 어레이(121)의 기판으로 제공할 수 있다.
도 4는 도 3의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 등가 회로도이다. 메모리 블록(BLK)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(charge trap flash; CTF) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC8)은 직렬로 연결되며, 행 방향 및 열 방향에 의해 형성된 평면과 수직 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택 트랜지스터들(GSTa, GSTb) 사이에 제 1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택 트랜지스터들(SSTa, SSTb) 사이에 제 2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 접지 선택 트랜지스터들(GSTa)은 제 1 접지 선택 라인에 연결될 수 있고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 접지 선택 트랜지스터들(GSTa)은 제 2 접지 선택 라인에 연결될 수 있다.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 접지 선택 트랜지스터들(GSTa) 및 제 2 접지 선택 트랜지스터들(GSTb)은 은 제 1 접지 선택 라인 및 제 2 접지 선택 라인에 각각 연결될 수 있다.
기판(또는 접지 선택 트랜지스터(GSTa, GSTb)로부터 동일한 높이의 메모리 셀들은 동일한 워드라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 내지 제 8 메모리 셀들(MC8)은 제 1 내지 제 8 워드라인들(WL1~WL8)에 각각 공통으로 연결된다.
동일한 높이의 제 1 스트링 선택 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제 2 스트링 선택 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제 1 더미 메모리 셀들(DMC1)은 제 1 더미 워드라인(DWL1)과 연결되고, 제 2 더미 메모리 셀들(DMC2)은 제 2 더미 워드라인(DWL2)과 연결된다.
메모리 블록(BLK)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLK)의 하나의 행이 선택될 수 있다.
스트링 선택 라인들(SSL1a, SSL1b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제 1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제 2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결되어 구동된다. 워드라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중 동일한 높이의 메모리 셀들이 선택된다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다.
메모리 블록(BLK)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLK)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 메모리 블록(BLK)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅 될 수 있다.
도시된 메모리 블록(BLK)은 예시적인 것이며, 셀 스트링들의 개수, 그리고 셀 스트링들이 구성하는 행들 및 열들의 개수는 변할 수 있다. 또한, 메모리 블록(BLK)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들은 변할 수 있으며, 셀 트랜지스터들의 개수들에 따라 메모리 블록(BLK)의 높이가 변할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 변할 수 있다.
도 5는 본 개시의 예시적인 실시 예에 따른 컨트롤러의 동작 방법을 보여주는 순서도이다. 도 6 및 도 7은 본 개시의 보안 소거 동작을 보여주기 위한 전압 산포도들이다. 설명의 이해를 돕기 위해, 도 1, 도 5, 도 6, 및 도 7을 함께 참조한다.
S110 단계에서, 보안 소거 커맨드가 실행될 수 있다. 예를 들어, 가비지 컬렉션(garbage collection) 동작, 리드 리클레임(read reclaim) 동작 등에 의해 무효 데이터가 생성되는 경우, 무효 데이터를 포함하는 메모리 블록을 관리 하기 위해 보안 소거 커맨드가 실행될 수 있다.
실시 예에 있어서, 무효 데이터의 생성을 수반하는 가비지 컬렉션 동작, 리드 리클레임 동작 등이 실행되는 경우, 보안 소거를 위한 보안 소거 커맨드가 생성될 수 있다. 또는, 다른 실시 예에 있어서, 무효 데이터의 생성을 수반하는 가비지 컬렉션 동작, 리드 리클레임 동작 등이 실행되는 경우, 보안 소거를 위한 별도의 커맨드 생성 없이 보안 소거가 실행될 수도 있다. 이 경우, 가비지 컬렉션 동작, 리드 리클레임 동작 등과 관련된 제어 신호에, 보안 소거를 실행과 관련된 태그가 부가되거나 또는 필드 값이 생성될 수 있다.
S120 단계에서, 무효 데이터가 재프로그램 된다. 예를 들어, 무효 데이터는 타깃 프로그램 상태를 갖도록 재프로그램 될 수 있다. 여기서 타깃 프로그램 상태는 무효 데이터의 프로그램 상태보다 상위의 프로그램 상태들 중 미리 정해진 (또는 임의의) 프로그램 상태를 의미할 수 있다. 예를 들어, 도 6의 소거 상태(E)를 갖는 무효 데이터는 제 1 프로그램 상태(P1)를 갖도록 재프로그램 되거나, 제 1 프로그램 상태(P1)를 갖는 무효 데이터는 제 3 프로그램 상태(P3)를 갖도록 재프로그램될 수 있다. 다만, 이러한 도시는 예시적인 것이며, 본 개시는 이에 한정되지 않는다.
실시 예에 있어서, 무효 데이터는 서로 인접한 두 프로그램 상태들 사이의 전압 산포에 위치하도록 재프로그램 될 수 있다. 예를 들어, 서로 인접한 두 프로그램 상태들이라 함은, 무효 데이터의 프로그램 상태보다 상위의 프로그램 상태들일 수 있다. 도 6을 참조하여 설명하면, 제 3 프로그램 상태(P3)를 갖는 무효 데이터는 제 4 프로그램 상태(P4)와 제 5 프로그램 상태(P5) 사이의 중간 프로그램 상태(IM)를 갖도록 재프로그램될 수 있다.
이 경우, 중간 프로그램 상태(IM) 중, 제 4 프로그램 상태(P4)의 상한 이하의 문턱 전압(Va)을 갖는 메모리 셀은 제 4 프로그램 상태(P4)의 데이터로 읽혀질 것이다. 중간 프로그램 상태(IM) 중, 제 5 프로그램 상태(P5)의 하한 이상의 문턱 전압(Vb)을 갖는 메모리 셀은 제 5 프로그램 상태(P5)의 데이터로 읽혀질 것이다. 그리고, 중간 프로그램 상태(IM) 중, Va과 Vb 사이의 문턱 전압을 갖는 메모리 셀은 판독 불가능한 상태 (또는, 정정 불가능한 ECC 상태)의 데이터일 것이다.
비록 도면에는 중간 프로그램 상태(IM)의 전압 산포가, 제 4 및 제 5 프로그램 상태들(P4, P5)의 전압 산포들과 일부 오버래핑 되는 것으로 도시되었으나, 중간 프로그램 상태(IM)의 전압 산포는 제 4 및 제 5 프로그램 상태들(P4, P5)의 전압 산포들과 오버래핑 되지 않을 수 있다. 즉, 중간 프로그램 상태(IM)는 서로 인접한 두 전압 산포들(예컨대, P4, P5)의 상한과 하한 사이의 문턱 전압 분포(즉, Va~Vb)를 가질 수 있다.
실시 예에 있어서, 여러 프로그램 상태들에 분포한 데이터들은 하나의 중간 프로그램 상태를 갖도록 재프로그램 될 수 있다. 예를 들어, 도 7의 소거 상태(E), 제 1 내지 제 3 프로그램 상태들(P1~P3)에 분포한 데이터들은 제 1 중간 프로그램 상태(IM1)를 갖도록 재프로그램 될 수 있다. 유사하게, 제 4 내지 제 7 프로그램 상태들(P4~P7)에 분포한 데이터들은 제 2 중간 프로그램 상태(IM2)를 갖도록 재프로그램 될 수 있다. 여기서, 제 1 및 제 2 중간 프로그램 상태들(IM1, IM2)의 산포 범위는 개별적인 프로그램 상태들(즉, P1~P7 중 어느 하나)의 산포 범위보다 클 수 있다.
그러나, 본 개시의 보안 소거 동작에서 실행되는 재프로그램은 도 6과 도 7에 도시된 것에 한정되지 않으며, 도 6과 도 7에 도시된 재프로그램들의 다양한 조합으로 구성될 수 있다.
실시 예에 있어서, 무효 데이터를 프로그램 하는 보안 소거 동작은, 프로그램 전압은 증가형 스텝 펄스 프로그래밍(incremental step pulse programming; ISPP) 방식에 따라 실행될 수 있다. 여기서 초기 N의 값은 1이며, 가장 낮은 전압 레벨을 갖는 최초의 펄스에 의하여 무효 데이터가 프로그램 될 것이다.
S130 단계에서, 프로그램된 무효 데이터가 타깃 프로그램 상태 혹은 정정 불가능한 ECC 상태에 분포하는지 여부가 판단된다. 예를 들어, 본 단계는 무효 데이터가 저장된 메모리 셀에 검증 전압을 인가함으로써 실행될 수 있다. 예를 들어, 검증 전압은, 프로그램된 무효 데이터가 타깃 프로그램 상태에 있는지 여부를 판단하기 위한 것일 수 있다. 또는, 검증 전압은, 프로그램된 무효 데이터가 서로 인접한 두 프로그램 상태들 사이의 전압 산포에 분포하는지 여부를 판단하기 위한 것일 수 있다.
만일, 프로그램된 무효 데이터가 타깃 프로그램 상태 혹은 정정 불가능한 ECC 상태에 분포한다고 판단되는 경우(Yes), 절차는 종료한다. 반면, 그렇지 않은 경우(No), 다음의 전압 레벨을 갖는 프로그램 펄스가 준비된다(S140). 그리고, S120 단계에서, 다음의 전압 레벨을 갖는 프로그램 펄스로 무효 데이터가 프로그램될 것이다.
한편, 전술된 보안 소거 동작은 재프로그램을 수반하고, 재프로그램은 페이지 단위로 수행되기 때문에, 재프로그램에 따른 원치 않는 간섭 현상이 발생할 수 있다. 이러한 예가 도 8 및 도 9에 도시되었다. 도 8은 보안 소거 동작에서 발생할 수 있는 간섭 현상을 보여주기 위한 문턱 전압 산포도이다. 도 9는 도 4에 도시된 메모리 블록의 제 1 셀 스트링(CS11)을 예시적으로 보여준다.
도 8 및 도 9를 참조하면, 제 7 워드 라인(WL7)에 연결된 메모리 셀들에 대해 보안 소거 동작이 실행된다고 가정하자. 그리고, 제 6 및 제 8 워드 라인들(WL6, WL8)에 연결된 메모리 셀들은 유효 데이터(valid data)를 저장하고 있다고 가정하자. 이때, 제 7 워드 라인(WL7)으로 인가되는 전압으로 인하여, 제 6 및 제 8 워드 라인들(WL6, WL8)에 연결된 메모리 셀들의 전압 산포가 변할 수 있다. 즉, 제 6 및 제 8 워드 라인들(WL6, WL8)에 연결된 메모리 셀들로 원치 않는 전하가 유입되므로, 보안 소거 동작이 일어나는 메모리 셀과 인접한 메모리 셀들의 전압 산포가 도 8과 같이 변할 수 있다. 후술될 도 10의 실시 예는 이에 대한 해결책을 제시한다.
도 10은 일반적인 프로그램 동작에서의 프로그램 전압들 및 본 개시의 예시적인 실시 예에 따른 보안 소거 동작에서의 재프로그램 전압들을 보여준다.
도면의 상단에 도시된 그래프는 프로그램 동작시 ISPP 방식에 따라 메모리 셀에 인가되는 전압 펄스들을 나타낸다. 프로그램 동작시, M회의 프로그램 루프들 동안, 제 1 전압 증분(ΔV1)씩 증가하는 전압 펄스들이 메모리 셀에 순차적으로 인가된다. 다만, 도시의 간략화를 위해, 각각의 프로그램 루프에서 실행되는 검증 단계에서의 검증 전압들은 생략되었다. 그러나, 프로그램 루프 횟수가 너무 적거나, 전압 증분이 너무 크다면, 도 8 및 도 9를 통하여 설명한 것과 같은 셀들 간의 간섭이 발생할 수 있다.
반면, 도면의 하단에 도시된 그래프는 보안 소거 동작시 ISPP 방식에 따라 메모리 셀에 인가되는 전압 펄스들을 나타낸다. N회의 프로그램 루프들 동안, 제 2 전압 증분(ΔV2)씩 증가하는 전압 펄스들이 메모리 셀에 순차적으로 인가된다. 예를 들어, N은 M보다 크고, ΔV2는 ΔV1보다 작을 수 있다. 다시 말하면, 셀들 사이의 간섭을 최소화하기 위해, 매 프로그램 루프마다 인가되는 전압 펄스의 크기는 서서히 증가하고, 프로그램 루프의 횟수도 더 늘어날 수 있다. 뿐만 아니라, 보안 소거 동작시의 마지막 루프(M번째 루프)에서의 전압 펄스의 레벨은, 일반적인 프로그램 동작시의 마지막 루프(N번째 루프)에서의 전압 펄스의 레벨보다 낮을 수 있다.
실시 예에 있어서, 보안 소거 동작에서의 프로그램 루프 횟수(N)와, 전압 펄스들의 증분(ΔV2)은 다양하게 설정될 수 있다. 예를 들어, 보안 소거 동작에서의 프로그램 루프 횟수(N)와 전압 펄스들의 증분(ΔV2)는, 보안 소거 동작이 실행되는 메모리 블록의 P/E (program/erase) 사이클 횟수, 재프로그램 하고자 하는 프로그램 상태 등을 고려하여, 가변할 수 있다. 예를 들어, 컨트롤러(도 1, 110) 또는 무효 블록 관리자(도 1, 112)는 불휘발성 메모리 장치의 벤더(vendor) 영역에 저장된 P/E 사이클 횟수에 대한 테이블 값을 참조할 것이다.
도 11은 본 개시의 예시적인 실시 예에 따른 보안 소거 동작을 개념적으로 보여준다. 제 1 메모리 블록(BLK1)은 유효 데이터(Valid1)와 무효 데이터(Invalid)를 포함하는 제 1 페이지를 포함한다. 제 1 메모리 블록(BLK1)은 유효 데이터(Valid2)와 무효 데이터(Invalid)를 포함하는 제 2 페이지를 포함한다. 그리고, 제 1 메모리 블록(BLK1)은 유효 데이터(Valid3)를 포함하는 제 3 페이지를 포함한다.
제 1 내지 제 3 페이지들의 유효 데이터들(Valid1~Valid3)이 제 2 메모리 블록(BLK2)으로 마이그레이션 또는 복사될 수 있다. 예를 들어, 유효 데이터들(Valid1~Valid3)의 마이그레이션 또는 복사는 가비지 컬렉션 동작, 리드 리클레임 동작 등에 의해 수반될 수 있으나, 이에 한정되지 않는다.
유효 데이터들(Valid1~Valid3)의 마이그레이션 또는 복사가 완료된 후, 보안 소거 커맨드가 실행될 수 있다. 보안 소거 커맨드의 실행에 따라, 제 1 메모리 블록(BLK1)의 유효 데이터들(Valid1~ Valid3)이 재프로그램 될 수 있다. 예를 들어, 무효 데이터는, 무효 데이터에 대응하는 프로그램 상태의 상위 상태들 중 어느 하나로 프로그램 될 수 있다. 또는, 무효 데이터는 무효 데이터에 대응하는 프로그램 상태보다 상위의 서로 인접한 두 프로그램 상태들 사이의 문턱 전압을 갖도록 프로그램 될 수 있다.
실시 예에 있어서, 제 1 내지 제 3 페이지들의 무효 데이터들이 본 개시의 보안 소거 동작의 실행 결과 생성된 무효 데이터들이라면(다시 말해, 재프로그램된 무효 데이터들이라면), 제 1 내지 제 3 페이지들의 무효 데이터들은 재프로그램 되지 않을 것이다. 그러나, 제 1 내지 제 3 페이지들의 무효 데이터들이 본 개시의 보안 소거 동작의 실행 결과 생성된 데이터들이 아니라면, 제 1 내지 제 3 페이지들의 무효 데이터들도 함께 재프로그램 될 수도 있다.
한편, 메모리 블록 내에 유효 데이터가 상대적으로 많은 경우라면, 유효 데이터를 다른 메모리 블록으로 마이그레이션 하고, 기존의 메모리 블록에 저장된 유효 데이터를 재프로그램 하는 것이 합리적일 수 있다. 그러나, 메모리 블록 내에 유효 데이터가 상대적으로 적은 경우라면, 유효 데이터의 마이그레이션 후, 기존의 메모리 블록에 저장된 유효 데이터를 물리적으로 소거해도 불휘발성 메모리 장치의 수명에 미치는 영향은 적을 수 있다. 도 12는 이러한 경우의 처리 방법을 제공한다.
도 12는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다. 설명의 이해를 돕기 위해 도 11을 함께 참조한다.
S210 단계에서, 보안 소거 커맨드가 실행될 수 있다. 예를 들어, 가비지 컬렉션 동작, 리드 리클레임 동작 등에 의해 무효 데이터가 생성되는 경우, 무효 데이터를 포함하는 메모리 블록을 관리 하기 위해 보안 소거 커맨드가 실행될 수 있다. 예를 들어, 보안 소거 커맨드는 가비지 컬렉션 동작, 리드 리클레임 동작 등에 수반되는 커맨드일 수 있으나, 이에 한정되지 않는다.
예시적으로, 보안 소거 커맨드는 무효 데이터의 검출에 따라 생성되거나 실행될 수 있다. 예를 들어, 전술된 가비지 컬렉션 동작, 리드 리클레임 동작이 아니더라도, 무효 블록 관리자(도 1, 112)는 불휘발성 메모리 장치에 저장된 무효 데이터를 검출할 수 있다. 예를 들어, 무효 블록 관리자는 사용자의 요청에 의해, 또는 무효 데이터의 속성에 기반하여 보안 소거를 실행할 수 있다.
S220 단계에서, 메모리 블록 내의 유효 데이터의 비율이 기준 값보다 적은지 여부가 판단된다. 이러한 판단을 위해, 플래시 변환 계층에 의해 관리되는, 메모리 블록 별 유효 데이터와 무효 데이터에 관한 테이블이 이용될 수 있다. 만일, 메모리 블록 내의 유효 데이터의 비율이 기준 값보다 큰 경우(No), S230 단계가 실행된다. 실시 예에 있어서, 판단의 기준이 되는 기준 값은, 메모리 블록의 P/E 사이클을 고려하여 다양하게 설정될 수 있다.
S230 단계에서, 보안 소거 동작을 실행하고자 하는 페이지에 유효 데이터가 있는지 여부가 판단된다. 만일 보안 소거 동작을 실행하고자 하는 페이지에 유효 데이터가 있다고 판단되는 경우(Yes), S240 단계가 실행되어, 페이지 내의 유효 데이터가 다른 메모리 블록으로 복사 또는 마이그레이션 된다.
S250 단계에서, 보안 소거 동작을 실행하고자 하는 페이지의 유효 데이터가 다른 메모리 블록으로 복사 또는 마이그레이션 된다. 복사 또는 마이그레이션이 완료된 후, 기존의 메모리 블록에 저장되었던 유효 데이터에 대해 보안 소거 동작이 실행될 수 있다. 즉, 기존의 메모리 블록에 저장되었던 유효 데이터는 상위 프로그램 상태들 중 어느 하나로 재프로그램 될 수 있다. 또는, 기존의 메모리 블록에 저장되었던 유효 데이터는 두 상위 프로그램 상태들 사이의 문턱 전압을 갖도록 재프로그램 될 수 있다.
반면, S230 단계에서, 보안 소거 동작을 실행하고자 하는 페이지에 유효 데이터가 없다고 판단되는 경우(No), 복사 또는 마이그레이션 할 유효 데이터가 없으므로, 곧바로 S250 단계가 실행된다.
한편, S220 단계에서, 메모리 블록 내의 유효 데이터의 비율이 기준 값보다 적은 경우(Yes), S260 단계가 실행되어, 페이지 내의 유효 데이터가 다른 메모리 블록으로 복사 또는 마이그레이션 된다.
S270 단계에서, 기존의 메모리 블록에 대한 물리적 소거 동작이 실행될 수 있다. 메모리 블록 내의 유효 데이터의 비율이 기준 값보다 적다는 것은, 물리적으로 소거할 데이터의 양이 적음을 나타내고, 상대적으로 적은 양의 데이터의 물리적인 소거가 불휘발성 메모리 장치의 수명에 미치는 영향이 적다는 것을 의미할 수 있다. 그러므로, 이 경우, 기존의 블록에 저장된 유효 데이터에 대해 물리적 소거 동작이 실행될 수도 있다.
이상 설명된 동작 방법에 의하면, 블록 내의 유효 데이터의 비율에 따라 보안 소거 동작과 물리적 소거 동작이 적절하게 실행된다. 그러므로, 잦은 물리적 소거에 따른 불휘발성 메모리 장치의 수명 감소를 방지할 수 있을 뿐만 아니라, 보안성을 향상시킬 수 있다.
도 13은 본 개시의 예시적인 실시 예에 따른 보안 쓰기 동작을 개념적으로 보여준다. 보안 쓰기 동작은, 기존의 블록에 저장된 유효 데이터를 포함하는 새로운 유효 데이터를 프로그램 하는 경우에 실행될 수 있다. 예를 들어, 기존의 블록에 저장된 데이터가 업데이트 되는 경우, 오버라이트가 허용되지 않는 불휘발성 메모리 장치의 특성 상, 업데이트 될 데이터는 다른 블록 (또는, 같은 블록의 다른 페이지)에 저장될 수 있다. 이 경우, 기존의 블록에 저장된 유효 데이터에 대한 보안 이슈가 발생할 수 있다.
계속하여 도 13을 참조하면, 제 1 메모리 블록은 유효 데이터(Valid1)를 포함하는 제 1 페이지, 유효 데이터(Valid2)를 포함하는 제 2 페이지, 및 유효 데이터(Valid3)를 포함하는 제 3 페이지를 포함한다. 제 1 메모리 블록(BLK1)에 저장된 유효 데이터가 업데이트 되는 경우, 유효 데이터들(Valid1~Valid4)을 포함하는 쓰기 데이터가 제 2 메모리 블록(BLK2)에 저장될 수 있다. 여기서, 유효 데이터(Valid4)는 업데이트 되는 데이터를 나타낸다. 제 2 메모리 블록(BLK2)에 저장되는 유효 데이터들(Vaild1~Valid3)은 제 1 메모리 블록(BLK1)에 저장된 유효 데이터들과 동일한 데이터일 수 있다. 그러나, 제 2 메모리 블록(BLK2)에 저장되는 유효 데이터들(Vaild1~Valid3)은 제 1 메모리 블록(BLK1)으로부터 유래하지 않을 것이다.
쓰기 데이터가 불휘발성 메모리 장치(도 1, 120)로 전송됨과 동시에, 컨트롤러(도 1, 110)는 보안 쓰기 커맨드를 생성할 수 있다. 제 2 메모리 블록(BLK2)에 쓰기 데이터들이 저장됨으로써 업데이트가 완료되면, 무효 블록 관리자(도 1, 112) 뙤는 플래시 변환 계층은, 제 1 메모리 블록(BLK1)에 저장된 유효 데이터들을 무효 데이터로 처리할 수 있다.
나아가, 데이터의 유출 방지를 위해, 제 1 메모리 블록(BLK1)에 저장된 유효 데이터들이 재프로그램될 수 있다. 예를 들어, 재프로그램 시, 도 6, 도 7, 및 도 10에서 설명된 프로그램 방식이 이용될 수 있다. 예를 들어, 제 1 메모리 블록(BLK1)에 저장된 유효 데이터는 상위 프로그램 상태들 중 어느 하나로 재프로그램 될 수 있다. 또는, 제 1 메모리 블록(BLK1)에 저장된 유효 데이터는 두 상위 프로그램 상태들 사이의 문턱 전압을 갖도록 재프로그램 될 수 있다.
한편, 본 실시 예에서, 업데이트에 따른 쓰기 데이터가 제 2 메모리 블록(BLK2)에 저장되는 것으로 도시되었다. 그러나, 다른 실시 예에서, 업데이트에 따른 쓰기 데이터는 기존의 유효 데이터가 저장된 메모리 블록(즉, BLK1)에 저장될 수도 있다.
도 14는 본 개시의 예시적인 실시 예에 따른 스토리지 장치의 동작 방법을 보여준다. 설명의 이해를 돕기 위해 도 13을 함께 참조한다.
S310 단계에서, 보안 쓰기 커맨드가 실행될 수 있다. 예를 들어, 제 1 메모리 블록(BLK1)에 저장된 유효 데이터를 업데이트하는 경우, 제 1 메모리 블록(BLK1)에 저장된 기존의 유효 데이터를 재프로그램 하기 위한 보안 쓰기 커맨드가 생성되고 실행될 수 있다. 또는, 제 1 메모리 블록(BLK1)에 저장된 기존의 유효 데이터를 재프로그램 하는 동작은, 별도의 쓰기 보안 커맨드 없이, 제 2 메모리 블록(BLK2)에 대한 데이터의 쓰기와 함께 실행될 수 있다.
S320 단계에서, 타깃 논리 주소(logical address; LA)에 유효 데이터가 있는지 여부가 판단된다. 타깃 논리 주소에 유효 데이터가 없는 경우(No), S330 단계와 S340 단계가 순차적으로 실행되어, 통상의 쓰기 동작이 실행된다.
S330 단계에서, 타깃 논리 주소에 대응하는 이용 가능한 페이지(즉, 물리 주소)가 할당된다. 이 경우, 타깃 논리 주소에 대응하는 페이지에 유효 데이터가 저장되어 있지 않으므로, 타깃 논리 주소에 대응하는 페이지가 이용 가능한 페이지로 할당될 수 있다. 이후, S340 단계에서, 할당된 페이지에 데이터가 기록된다.
반면, 타깃 논리 주소에 유효 데이터가 있는 경우(Yes), S350 단계가 실행되어 이용 가능한 페이지가 할당된다. 여기서 이용 가능한 페이지는 기존의 페이지와는 다른 메모리 블록의 페이지이거나, 같은 블록이라도 다른 페이지일 것이다.
S360 단계에서, 기존의 페이지에 대한 보안 쓰기 동작이 실행될 수 있다. 새로이 할당된 페이지에 새로운 데이터(예컨대, 업데이트될 데이터)가 저장되므로, 무효 블록 관리자(도 1, 112) 또는 플래시 변환 계층은 기존의 페이지에 저장된 데이터를 무효 데이터로 처리할 수 있다. 그리고, 무효 데이터는, 무효 데이터에 대응하는 프로그램 상태보다 상위 상태들 중 어느 하나로 프로그램 되거나, 서로 인접한 두 프로그램 상태들 사이의 문턱 전압을 갖도록 프로그램 될 것이다. 그리고, 할당된 페이지에 데이터가 기록될 것이다(S340).
도 15는 본 개시의 보안 소거 및/또는 보안 쓰기가 적용된 SSD (Solid State Drive) 시스템(1000)을 보여주는 블록도이다. 도 15를 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다.
SSD(1200)는 신호 커넥터(1201)를 통해 호스트(1100)와 신호(SIG)를 주고 받고, 전원 커넥터(1202)를 통해 전원(PWR)을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1210), 복수의 플래시 메모리들(1221~122n), 보조 전원 장치(1230), 및 버퍼 메모리(1240)를 포함할 수 있다.
SSD 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(1221~122n)을 제어할 수 있다. 예를 들어, SSD 컨트롤러(1210)는 도 1 내지 도 14를 통하여 설명된 실시 예들에 기반하여, 보안 소거와 보안 읽기를 실행한다.
복수의 플래시 메모리들(1221~122n)은 SSD 컨트롤러(1210)의 제어에 따라 동작할 수 있다. 보조 전원 장치(1230)는 전원 커넥터(1002)를 통해 호스트(1100)와 연결될 수 있다. 보조 전원 장치(1230)는 호스트(1100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(1230)는 호스트(1100)로부터의 전원 공급이 원활하지 않을 경우, SSD(1200)의 전원을 제공할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 스토리지 장치
110: 컨트롤러
112: 무효 블록 관리자
120: 불휘발성 메모리 장치
110: 컨트롤러
112: 무효 블록 관리자
120: 불휘발성 메모리 장치
Claims (20)
- 제 1 메모리 블록과 제 2 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법에 있어서:
상기 제 1 메모리 블록의 무효 데이터를 검출하는 단계;
상기 무효 데이터의 양이 기준 값 이하인지 여부를 판단하는 단계; 그리고
상기 무효 데이터의 상기 양이 상기 기준 값 이하인 것에 응답하여, 상기 무효 데이터의 전압 산포를 변화시키는 보안 소거 동작을 실행하는 단계를 포함하되,
상기 보안 소거 동작은, 상기 무효 데이터의 제 1 프로그램 상태를, 서로 인접한 제 2 및 제 3 프로그램 상태들 사이의 중간 프로그램 상태로 재프로그램 하는 것을 포함하고,
상기 제 2 및 제 3 프로그램 상태들은 상기 제 1 프로그램 상태보다 상위의 프로그램 상태들인 방법. - 제 1 항에 있어서,
상기 중간 프로그램 상태는 상기 제 2 프로그램 상태의 상한보다 크고 상기 제 3 프로그램 상태의 하한보다 작은 문턱 전압 분포를 갖는 방법. - 제 1 항에 있어서,
상기 판단의 결과에 기반하여, 상기 무효 데이터를 포함하는 페이지에 유효 데이터가 있는지 여부를 판단하는 단계를 더 포함하는 방법. - 제 3 항에 있어서,
상기 무효 데이터의 상기 양이 상기 기준 값을 초과하는 경우, 상기 제 1 메모리 블록에 대해 물리적 소거가 실행되는 방법. - 제 4 항에 있어서,
상기 무효 데이터의 상기 양이 상기 기준 값 이하인 경우, 상기 페이지에 유효 데이터가 있는지 여부를 판단하는 단계를 더 포함하는 방법. - 제 5 항에 있어서,
상기 페이지에 상기 유효 데이터가 있는 경우, 상기 유효 데이터는 상기 제 2 메모리 블록으로 복사되고,
상기 페이지에 상기 유효 데이터가 없는 경우, 상기 무효 데이터에 대해 상기 보안 소거 동작이 실행되는 방법. - 제 4 항에 있어서,
상기 제 1 메모리 블록에 대해 상기 물리적 소거가 실행되기에 앞서, 상기 무효 데이터의 상기 양이 상기 기준 값보다 큰 경우, 상기 유효 데이터는 상기 제 2 메모리 블록으로 복사되는 방법. - 제 1 항에 있어서,
상기 재프로그램 하는 것은 ISPP (incremental step pulse programming) 방식에 기반하여 실행되는 방법. - 제 8 항에 있어서,
상기 재프로그램에서의 프로그램 루프들의 횟수는, 상기 불휘발성 메모리 장치에 대한 프로그램 동작에서의 프로그램 루프들의 횟수보다 크고,
상기 재프로그램에서의 프로그램 펄스들의 증분들의 각각은, 상기 불휘발성 메모리 장치에 대한 상기 프로그램 동작에서의 프로그램 펄스들의 증분들보다 작은 방법. - 제 1 항에 있어서,
상기 제 1 메모리 블록의 상기 무효 데이터의 상기 양이 상기 기준 값보다 커질 때까지 상기 중간 프로그램 상태를 유지하는 단계를 더 포함하는 방법. - 제 1 메모리 블록과 제 2 메모리 블록을 포함하는 불휘발성 메모리 장치를 제어하는 컨트롤러를 동작시키는 방법에 있어서:
상기 제 1 메모리 블록의 무효 데이터의 양을 판별하는 단계;
상기 무효 데이터의 상기 양이 기준 값 이하인지 여부를 판별하는 단계; 그리고
상기 판별의 결과에 기반하여, 상기 무효 데이터의 전압 산포를 변화시키는 보안 소거 동작을 실행하는 단계를 포함하되,
상기 보안 소거 동작은, 상기 무효 데이터의 상기 양이 상기 기준 값보다 작을 때, 상기 무효 데이터에 대해 실행되고,
상기 무효 데이터의 상기 양이 상기 기준 값보다 클 때, 상기 제 1 메모리 블록에 대해 물리적 소거가 실행되는 방법. - 제 11 항에 있어서,
상기 보안 소거 동작은 상기 무효 데이터의 제 1 프로그램 상태를, 서로 인접한 제 2 및 제 3 프로그램 상태들 사이의 중간 프로그램 상태로 재프로그램 하는 것을 포함하고,
상기 제 2 및 제 3 프로그램 상태들은 상기 제 1 프로그램 상태보다 상위의 프로그램 상태인 방법. - 제 12 항에 있어서,
상기 재프로그램 하는 것은 ISPP (incremental step pulse programming) 방식에 기반하여 실행되는 방법. - 제 13 항에 있어서,
상기 재프로그램에서의 프로그램 루프들의 횟수는, 상기 불휘발성 메모리 장치에 대한 프로그램 동작에서의 프로그램 루프들의 횟수보다 크고,
상기 재프로그램에서의 프로그램 펄스들의 증분들의 각각은, 상기 불휘발성 메모리 장치에 대한 상기 프로그램 동작에서의 프로그램 펄스들의 증분들보다 작은 방법. - 제 12 항에 있어서,
상기 중간 프로그램 상태는 상기 제 2 프로그램 상태의 상한보다 크고 상기 제 3 프로그램 상태의 하한보다 작은 문턱 전압 분포를 갖는 방법. - 제 12 항에 있어서,
상기 제 1 메모리 블록의 상기 무효 데이터의 상기 양이 상기 기준 값보다 커질 때까지 상기 중간 프로그램 상태를 유지하는 단계를 더 포함하는 방법. - 제 11 항에 있어서,
상기 무효 데이터의 상기 양이 상기 기준 값보다 작은 경우, 상기 무효 데이터를 포함하는 페이지에 유효 데이터가 있는지 여부를 판단하는 단계를 더 포함하는 방법. - 제 17 항에 있어서,
상기 페이지에 상기 유효 데이터가 있는 경우, 상기 유효 데이터는 상기 제 2 메모리 블록으로 복사되고,
상기 페이지에 상기 유효 데이터가 없는 경우, 상기 무효 데이터에 대해 상기 보안 소거 동작이 실행되는 방법. - 제 11 항에 있어서,
상기 제 1 메모리 블록에 대해 상기 물리적 소거가 실행되기에 앞서, 상기 무효 데이터의 양이 상기 기준 값보다 큰 경우, 상기 제 1 메모리 블록의 유효 데이터는 상기 제 2 메모리 블록으로 복사되는 방법. - 불휘발성 메모리 장치를 제어하는 컨트롤러를 동작시키는 방법에 있어서:
상기 불휘발성 메모리 장치의 메모리 블록의 무효 데이터의 양을 판별하는 단계; 그리고
상기 무효 데이터의 상기 양이 기준 값 이하인 경우, 상기 무효 데이터의 전압 산포를 변화시키는 보안 소거 동작을 실행하는 단계를 포함하되,
상기 보안 소거 동작은, 상기 무효 데이터의 제 1 프로그램 상태를, 서로 인접한 제 2 및 제 3 프로그램 상태들 사이의 중간 프로그램 상태로 재프로그램 하는 것을 포함하고,
상기 제 2 및 제 3 프로그램 상태들은 상기 제 1 프로그램 상태보다 상위의 프로그램 상태들인 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180085351A KR102387960B1 (ko) | 2018-07-23 | 2018-07-23 | 컨트롤러 및 그것의 동작 방법 |
US16/364,230 US10818367B2 (en) | 2018-07-23 | 2019-03-26 | Controller and method of operating the same |
CN201910602368.8A CN110751970B (zh) | 2018-07-23 | 2019-07-05 | 控制器及操作控制器的方法 |
US17/026,655 US11183254B2 (en) | 2018-07-23 | 2020-09-21 | Controller and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180085351A KR102387960B1 (ko) | 2018-07-23 | 2018-07-23 | 컨트롤러 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200010813A KR20200010813A (ko) | 2020-01-31 |
KR102387960B1 true KR102387960B1 (ko) | 2022-04-19 |
Family
ID=69162075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180085351A KR102387960B1 (ko) | 2018-07-23 | 2018-07-23 | 컨트롤러 및 그것의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10818367B2 (ko) |
KR (1) | KR102387960B1 (ko) |
CN (1) | CN110751970B (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102387960B1 (ko) * | 2018-07-23 | 2022-04-19 | 삼성전자주식회사 | 컨트롤러 및 그것의 동작 방법 |
US10762946B2 (en) | 2018-12-31 | 2020-09-01 | Micron Technology, Inc. | Memory with partial array refresh |
JP2020144601A (ja) * | 2019-03-06 | 2020-09-10 | 株式会社日立製作所 | ストレージ装置及びストレージ装置のデータ消去方法 |
CN112764662B (zh) * | 2019-10-21 | 2024-04-19 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、设备和计算机程序产品 |
US11062755B2 (en) | 2019-11-25 | 2021-07-13 | Micron Technology, Inc. | Memory with partial bank refresh |
JP7475989B2 (ja) * | 2020-06-26 | 2024-04-30 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR20230000720A (ko) | 2021-06-25 | 2023-01-03 | 삼성전자주식회사 | 안전 소거를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160203053A1 (en) | 2013-09-24 | 2016-07-14 | SanDisk Technologies, Inc. | Systems and methods for storage collision management |
KR101832934B1 (ko) | 2012-01-27 | 2018-02-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법 |
US10818367B2 (en) | 2018-07-23 | 2020-10-27 | Samsung Electronics Co., Ltd. | Controller and method of operating the same |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944063B2 (en) * | 2003-01-28 | 2005-09-13 | Sandisk Corporation | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
US20060002197A1 (en) * | 2004-06-30 | 2006-01-05 | Rudelic John C | Method and apparatus to detect invalid data in a nonvolatile memory following a loss of power |
KR100672172B1 (ko) | 2005-06-30 | 2007-01-19 | 주식회사 하이닉스반도체 | 프로그램 속도를 향상시키는 ispp 방식을 이용한플래시 메모리 장치의 프로그램 방법 |
US7979624B2 (en) * | 2006-03-31 | 2011-07-12 | Intel Corporation | Techniques to truncate data files in nonvolatile memory |
KR100849221B1 (ko) * | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
TWI389125B (zh) * | 2008-07-18 | 2013-03-11 | A Data Technology Co Ltd | 記憶體儲存裝置及其控制方法 |
US8130554B1 (en) | 2008-09-29 | 2012-03-06 | Emc Corporation | Securely erasing flash-based memory |
JP2010198149A (ja) * | 2009-02-24 | 2010-09-09 | Toshiba Storage Device Corp | 記憶装置、その制御方法及びその記憶装置を備える電子装置 |
KR101633018B1 (ko) | 2009-12-28 | 2016-06-24 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 방법 |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
KR101682666B1 (ko) * | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
WO2012129191A2 (en) * | 2011-03-18 | 2012-09-27 | Fusion-Io, Inc. | Logical interfaces for contextual storage |
KR101818046B1 (ko) | 2011-10-18 | 2018-01-12 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치의 프로그램 방법 |
US10133662B2 (en) * | 2012-06-29 | 2018-11-20 | Sandisk Technologies Llc | Systems, methods, and interfaces for managing persistent data of atomic storage operations |
KR101997572B1 (ko) * | 2012-06-01 | 2019-07-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
JP5583185B2 (ja) | 2012-10-12 | 2014-09-03 | ウィンボンド エレクトロニクス コーポレーション | 不揮発性半導体メモリ |
KR102031661B1 (ko) * | 2012-10-23 | 2019-10-14 | 삼성전자주식회사 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
US9098401B2 (en) | 2012-11-21 | 2015-08-04 | Apple Inc. | Fast secure erasure schemes for non-volatile memory |
KR102106866B1 (ko) | 2013-01-29 | 2020-05-06 | 삼성전자주식회사 | 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 |
US9269447B1 (en) * | 2014-09-05 | 2016-02-23 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
KR20160103236A (ko) * | 2015-02-23 | 2016-09-01 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
JP6293692B2 (ja) * | 2015-03-13 | 2018-03-14 | 東芝メモリ株式会社 | メモリシステム |
KR102274280B1 (ko) | 2015-06-22 | 2021-07-07 | 삼성전자주식회사 | 불휘발성 메모리 장치의 동작 방법 |
KR102314135B1 (ko) | 2015-06-22 | 2021-10-18 | 삼성전자 주식회사 | 적응적인 루프를 수행하는 플래시 메모리 장치, 메모리 시스템 및 그 동작방법 |
US9792068B2 (en) * | 2015-09-10 | 2017-10-17 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
KR102437591B1 (ko) * | 2015-12-03 | 2022-08-30 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 및 메모리 컨트롤러의 동작 방법 |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
-
2018
- 2018-07-23 KR KR1020180085351A patent/KR102387960B1/ko active IP Right Grant
-
2019
- 2019-03-26 US US16/364,230 patent/US10818367B2/en active Active
- 2019-07-05 CN CN201910602368.8A patent/CN110751970B/zh active Active
-
2020
- 2020-09-21 US US17/026,655 patent/US11183254B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101832934B1 (ko) | 2012-01-27 | 2018-02-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법 |
US20160203053A1 (en) | 2013-09-24 | 2016-07-14 | SanDisk Technologies, Inc. | Systems and methods for storage collision management |
US10818367B2 (en) | 2018-07-23 | 2020-10-27 | Samsung Electronics Co., Ltd. | Controller and method of operating the same |
Also Published As
Publication number | Publication date |
---|---|
US11183254B2 (en) | 2021-11-23 |
US10818367B2 (en) | 2020-10-27 |
US20200027512A1 (en) | 2020-01-23 |
US20210005273A1 (en) | 2021-01-07 |
KR20200010813A (ko) | 2020-01-31 |
CN110751970B (zh) | 2023-05-26 |
CN110751970A (zh) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102387960B1 (ko) | 컨트롤러 및 그것의 동작 방법 | |
KR102285994B1 (ko) | 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 | |
US9201789B1 (en) | Storage device and operating method of the same | |
CN112447244B (zh) | 存储装置及其操作方法 | |
CN111916130B (zh) | 擦除具有极少编程页面的区块的系统与方法 | |
CN111798901A (zh) | 页缓冲器、具有页缓冲器的存储器装置及其操作方法 | |
KR102635689B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
KR102387956B1 (ko) | 불휘발성 메모리 장치를 포함하는 메모리 시스템 | |
KR20210057355A (ko) | 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 | |
KR102457662B1 (ko) | 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법 | |
KR20210024269A (ko) | 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치 | |
CN112542186A (zh) | 存储器设备和操作存储器设备的方法 | |
KR20220013661A (ko) | 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
KR20220082473A (ko) | 메모리 장치 및 그 동작 방법 | |
CN112885394B (zh) | 存储器装置和操作该存储器装置的方法 | |
US12072809B2 (en) | Memory system, memory controller, and operation method of memory system for loading and updating mapping information to host memory area | |
KR102469958B1 (ko) | 블록 주소 없이 액세스되는 불휘발성 메모리 장치 및 그 동작 방법 | |
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 | |
KR102708947B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 장치 | |
KR102689978B1 (ko) | 저장 장치 및 그 동작 방법 | |
KR20230120930A (ko) | 메모리 장치 및 그 동작 방법 | |
KR20220107578A (ko) | 메모리 장치 및 그 동작 방법 | |
CN114078542A (zh) | 存储器装置及其操作方法 | |
KR20220013260A (ko) | 페이지 버퍼 및 그 동작 방법 | |
US11709610B2 (en) | Memory system, memory controller and operating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |